發(fā)送TCP數(shù)據(jù)包設計說明書_第1頁
發(fā)送TCP數(shù)據(jù)包設計說明書_第2頁
發(fā)送TCP數(shù)據(jù)包設計說明書_第3頁
發(fā)送TCP數(shù)據(jù)包設計說明書_第4頁
發(fā)送TCP數(shù)據(jù)包設計說明書_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1 發(fā)送 據(jù)包設計說明書 一 課程設計準備 程 設計 目的 輸控制協(xié)議)是一種面向連接的、可靠的傳輸層協(xié)議。 議在網(wǎng)絡層 議的基礎上,向應用層用戶進程提供可靠的、全雙工的數(shù)據(jù)傳輸流。本課程設計的目的就是設計一個發(fā)送 據(jù)包的程序,并根據(jù)本設計說明 據(jù)包的結構以及 議與 議的關系,使學生對議的工作原理有更深入的認識。 程 設計 的要求 本程序的功能是填充一個 據(jù)包,并發(fā)送給目的主機。 1) 以命令行形式運行: 中, 程序名; 源端 址; 源埠;目的 址; 目的埠。 2) 其它的 部參數(shù)請自行設定。 3) 數(shù)據(jù)字段為“ is my of am 。 4) 發(fā)送成功后在屏幕上輸出 ”K”。 2 關 知 識 編制本程序前要對 議有一定的了解。當應用程序有報文需要通過送時,它就將此應用 層報文傳送給執(zhí)行 議的傳輸實體。 頭,形成 據(jù)包,在 據(jù)包上增加 部,形成 。下圖顯示的是 據(jù)包和 的關系。 議的傳輸單元為報文段,其格式如圖所示。報文段報頭的長度為20B60B。其中固定長度為 20B,報文段長度最多為 40B。 文段主要包括以下字段。 埠 號 :埠 號 字段包括源埠 號 和目的埠 號 。每 個 埠 號 的 長 度是 16 位,分別 表示 發(fā) 送 該 用 進 程的埠 號 和接收 該 的 應 用 進 程的埠 號 。 序號 : 長 度 為 32 位。由于 議 是面向 數(shù) 據(jù)流的,它所 傳 送的 報 文段可以 視為連續(xù)的數(shù) 據(jù)流,因此需要 給 每一 個 字 節(jié)編號 。 序號 字段的“ 序號 ”指的是本 報 文段 數(shù) 據(jù)的第一 個 字 節(jié) 的 順序號 。 部 數(shù)據(jù) 0 15 16 31 源端口號 目的端口號 序號 確認號 報頭長度 保留 口大小 校驗和 緊急指針 選項及填充 確 認號 : 該 字段 的 長 度 為 32 位,它表示接收端希望接收的下一 個 字 節(jié) 的 序號 。 頭 據(jù) 據(jù) 頭 3 報頭長 度: 該 字段 長 度 為 4 位。 頭長 度是以 4B 為 一 個單 元 來計算的, 實際 上 報頭長 度在 20B60B 子間。因此這個字段的值在 515 之間。 保留: 長 度 為 6位,留作今后使用,目前全部置 0。 控制: 這個 字段定 義 了 6種不同的 標 志,每 個標 志占一位,在同一 時間可 以設 置一位或多位。 1 時 ,表明有需要 緊急處 理的 數(shù) 據(jù)。 1時 ,表明確 認號 的字段有效。 為 1 時 ,表明要 強 制 切斷連 接。 時 ,表明有確 立連 接的 請 求, 這時 ,把 序號 字段的初始值作 為序號 字段的值,以便 開始 通信。 時 ,表明 發(fā) 送方已 經沒 有 資 料 發(fā) 送了。 窗口大?。?長 度 為 16 位,窗口 對應 的 數(shù) 據(jù)是以字 節(jié)為單 位的 數(shù) 據(jù),因此最多能 夠傳 送的 數(shù) 據(jù) 為 65535B。 緊 急指 針 : 該 字段的 長 度 為 16 位,指向必 須緊急處 理的 數(shù) 據(jù)的位置,只有 當標 志 時緊 急指 針 才有效。 從 面的 報文資 料 開始 ,到緊 急指 針 所指出的 長 度的 數(shù) 據(jù),就是必 須緊急處 理的 數(shù) 據(jù)。 選項 : 該 字段可以多 達 40B,包括 單 字 節(jié)選項 和多字 節(jié)選項 。 校 驗 和: 該 字段 長 度多 達 16 位,校 驗 和的 校 驗 范 圍包 括 偽頭 部、 應 用 層來 的 數(shù) 據(jù)。其 計 算方法與 議頭 部的校 驗 的 計 算方法一樣 。 偽頭 部 為 12B,它本身并不是 包的真正 頭 部,只是 在計 算校 驗和 時 , 臨時 和 包 連 接在一起。 偽頭 部的格式如下 圖 所示。 源 目的 址 00000000 協(xié)議號 ( 6) 作 環(huán) 境 軟 件: + 件: 4 二 課程設計分析 本課程設計的目標是發(fā)送一個 料包,可以利用原始套接字來完成這個工作。整個程 序由初始化原始套接字和發(fā)送 據(jù)包兩個部分組成。 用原始套接字 或者: , 這里,我們設置了 志,表示我們聲明的是一個原始套接字類型。 為 使 用 發(fā) 送 接 收 超 時 設 置 , 必 須 將 標 志 位 置 位 置 為本課程設計中,發(fā)送 時隱藏了自己的 址,因此我們要自己填充 ,設置 操作選項。其中 置為 設定 項,表明自己來構造 。注意,如果設置 項,那么必須具有 限,要不就必須修改注冊表: 修改鍵: 型為 把值修改 為 1。如果沒有,就添加。 5 ()&; 000; &; 在這里我們使用基本套接字 置 示使用發(fā)送超時設置,超時時間設置為 1000 2 2 定 義 、 部和 偽頭 部的 數(shù) 據(jù) 結 構 /定 義 /4位首部 長 度 +4位 /8位服 務類 型 /16 位 總長 度(字 節(jié) ) /16 位 標識 ; /8位生存 時間 /8位 協(xié)議 (其它 ) /16位 和 /32位源 /32位目的 6 /定 義 首部 /源地址 /目的地址 /沒 用 /協(xié)議類 型 / 度 /定 義 部 /16 位源埠 /16 位目的端口 /32 位 序列號 /32 位確 認號 /4位首部 長 度 /6位保留字 /6位 標 志位 /16位窗口大小 /16位校 驗 和 /16位 緊 急 數(shù) 據(jù)偏移量 7 算校 驗 和的子函 數(shù) 在填充數(shù)據(jù)包的過程中,需要調用計算校驗和的函數(shù) 次,分別用于校驗 和 部 (加上偽頭部),其實現(xiàn)代碼如下: ; 1) *; = if( = *( ( 16) + ( 0 = (16); 8 序流程圖 開始 結束 構造原始套接字,并初始化 發(fā)送 料報 計 算 部校驗和 填充 部 計算 部校驗和 構造 頭部 填充 部 9 三 源代碼 # # # # # 4 /議預定 #5500 /發(fā)送緩沖區(qū)最大值 /定義 部 /4 位首部長度 ,4 位 本號 /8 位服務類型 /16 位 總長度(字節(jié)) /16 位標識 /3 位標志位 /8 位生存時間 /8 位協(xié)議 (其它 ) /16 位 部校驗和 /32 位源 址 /32 位目的 址 /源地址 /目的地址 /沒用 /協(xié)議類型 10 /度 /16 位源埠 /16 位目的端口 /32 位序列號 /32 位確認號 /4 位首部長度 /6 位保留字 /6 位標志位 /16 位窗口大小 /16 位校驗和 /16 位緊急數(shù)據(jù)偏移量 /算校驗和的子函數(shù) ; 1) *; = if( = *( ( 16) + ( 0 = (16); ) 11 /發(fā)送緩沖區(qū) /檢驗和緩沖區(qū) =is my of am ; 5) n); ,2), &=0) n); , = n); if(&= n); 12 000; (&= n); /填充 部 4 | ; ; ; ; /16 位標識 ; /3 位標志位 28; /8 位生存時間 ; /檢驗和暫時為 0 ); /32 位源 址 ); /32 位目的 址 /計算 部檢驗和 , ; ; /構造 首部 ; ; 13 /填充 部 ); /16 位目的端口號 ); /16 位源埠號 ; /列號 ; /列號置為 0 /度和保留位 4|0); ; /修改這里來實現(xiàn)不同的標志位探測, 2 是 1是 /16 是 測 等等 6384); /窗口大小 ; /偏移大小 ; /檢驗和暫時填為0 /計算 驗和 , ; &; ; ; /填充發(fā)送緩沖區(qū) , ; &; ; /發(fā)送數(shù)據(jù)報的目的地址 14 ,; ); ); 0,(&; %dn,); n); ; ; 四 運行結果與運行情 況 在 + 編寫 源程序,然后 調試 成功后 運 行,生成可執(zhí)行檔 為該 程序是 帶參數(shù) 的,所以 進 入 進 入到該可執(zhí) 行文件的目 錄 下后在命令提示行下 輸 入: 9 0,回 車運 行, 運 行 結 果如下: 15 五 自我 評 析和 總結 這次 的 課 程 設計讓 我們 學到 了很多 東 西。最大的收 獲 是 學會 了 據(jù)包的填充 和發(fā) 送。在 對 包 進 行填充 時 ,首先需 要我們 去充分了解它的 數(shù) 據(jù) 結 構,在 這個過 程中可以了解相 應 字 節(jié) 上 應該 存放的 內 容和它 們 的 16 功能。在 實現(xiàn) 包 的發(fā) 送中,第一次深深接觸了網(wǎng) 絡編 程接口 知 識 , 雖然 本次的 課 程 設計 只用到了其中一小部分知 識 ,但 這并不 會 影 響對這方 面知 識 的全面了解。 總 之 這次 的 課 程 設計 ,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論