tcp/ip協議是乙個比較複雜的協議集,有很多專業書籍介紹。在此,我僅介紹其與程式設計密切相關的部分:乙太網上tcp/ip協議的分層結構及其報文格式。我們知道tcp/ip協議採用分層結構,其分層模型及協議如下表:
傳 輸 層
(transport)
tcp、udp
網 間 網層
(internet)
ip【arp、rarp、icmp】
網路介面層
(network)
ethernet、x.25、slip、ppp
任何通訊協議都有獨特的報文格式,tcp/ip協議也不例外。對於通訊協議程式設計,我們首先要清楚其報文格式。由於tcp/ip協議採用分層模型,各層都有專用的報頭,以下就簡單介紹乙太網下tcp/ip各層報文格式。
乙太網幀格式如下圖:
8位元組的前導用於幀同步,crc域用於幀校驗。這些使用者不必關心其由網絡卡晶元自動新增。目的位址和源位址是指網絡卡的實體地址,即mac位址,具有唯一性。幀型別或協議型別是指資料報的高階協議,如 0x0806表示arp協議,0x0800表示ip協議等。
arp/rarp(位址解析/反向位址解析)報文格式如下圖:
「硬體型別」域指傳送者本機網路介面型別(值「1」代表乙太網)。「協議型別」域指傳送者所提供/請求的高階協議位址型別(「0x0800」代表ip協議)。「操作」域指出本報文的型別(「1」為arp請求,「2」為arp響應,「3」為rarp請求,「4」為rarp響應)。
我們用微控制器實現tcp/ip協議要作一些簡化,不考慮資料分片和優先權。因此,在此我們不討論服務型別和標誌偏移域,只需填「0」 即可。協議「版本」為4,「頭長度」單位為32bit,「總長度」以位元組為單位,表示整個ip資料報長度。「標識」是資料報的id號,用於識別不同的ip資料報。「生存時間」 ttl是個數量及的概念,防止無用資料報一直存在網路中。一般每經過路由器時減一,因此通過ttl 可以算出資料報到達目的地所經過的路由器個數。「協議」域表示建立該資料報的高階協議型別。如 1表示icmp協議,6表示tcp協議,17表示 udp協議等。ip資料報為簡化資料**時間,僅採用頭校驗的方法,資料正確性由高層協議保證。
icmp(網間網控制報文協議)協議應用廣泛。在此僅給出最常見的回應請求與應答報文格式,使用者命令ping便是利用此報文來測試信宿機的可到達性。報文格式如下圖所示:
型別0 為回應應答報文,8 為回應請求報文。整個資料報均參與檢驗。注意icmp封裝在ip資料報裡傳送。
udp報文格式如下圖:
tcp報文格式如下圖:
tcp 是面向連線的可靠資料傳輸協議,因此比較複雜,在此僅作簡單介紹。「序號」指資料在傳送端資料流中的位置。「確認號」指出本機希望下乙個接收的位元組的序號。與ip校驗不同的是tcp,udp校驗採用偽頭標加整個報文一同校驗的方法。tcp協議工作原理另行介紹。
ip資料報頭格式如下圖:
協議採用分層結構,因此,資料報文也採用分層封裝的方法。下面以應用最廣泛的乙太網為例說明其資料報文分層封裝,如下圖所示:
TCP IP報文格式
tcp ip報文格式 2009 09 28 22 03 21 分類 1 ip報文格式 ip協議是tcp ip協議族中最為核心的協議。它提供不可靠 無連線的服務,也即依賴其他層的協議進行差錯控制。在區域網環境,ip協議往往被封裝在乙太網幀 見本章1.3節 中傳送。而所有的tcp udp icmp ig...
ip報文格式 TCP IP簡介
本文參考atul kahate編著的 金銘等翻譯的 cryptography and network security 中文名密碼學與網路安全 本文僅限於個人學習,研究,交流,不得用於其他商業用途!internet 是基於傳送控制協議 網際協議 tcp ip 協議族的,tcp ip協議族分為5層 應...
RTP協議的報文頭格式結構
rtp頭格式如圖2所示 開始12個八進位制出現在每個rtp包中,而csrc標識列表僅出現在混合器插入時。各段含義如下 版本 v 2位,標識rtp版本。填充標識 p 1位,如設定填充位,在包尾將包含附加填充字,它不屬於有效載荷。填充的最後乙個八進位制包含應該忽略的八進位制計數。某些加密演算法需要固定大...