- TCP報文格式
源端口:數據發送方的端口號
目的端口:數據接收方的端口號
序號:本數據報文中的第一個字節的序號(在數據流中每個字節都對應一個序號)
確認號:希望收到的下一個數據報文中的第一個字節的序號
數據偏移:表示本報文數據段距離報文段有多遠
保留:顧名思義,用來保留給以后用的
緊急比特URG:當值為1時表示次報文段中有需要緊急處理
確認比特ACK:值為1時確認號有效,值為0時確認號無效。
復位比特RST:值為1時表示TCP連接存在嚴重的錯誤,需要重新進行連接
同步比特SYN:值為1時表示這是一個連接請求或連接接收報文。
終止比特FIN:值為1時表示要發送的數據報已經發送完畢,需要釋放傳送連接
窗口字段:TCP連接的一端根據緩存空間的大小來確定自己接收窗口的大小,限制發送方的窗口上限
校驗和:用來校驗首部和數據兩部分的正確性
緊急指針字段:本報文緊急數據的最后一個字節的序號
- UDP報文格式
源端口號:數據發送方的端口號
目的端口號:數據接收方的端口號
UDP長度:UDP報文的字節長度(包括首部和數據)
UDP校驗和:校驗UDP首部和數據部分的正確性
- IP頭部報文格式
版本:指IP協議的版本
服務類型:可見下圖
其中優先級用來區別優先級不同的IP報文
D表示要求有更低的時延
T表示要求有更高的吞吐量
R表示要求有更高的可靠性
總長度:報文的長度
標識:由於數據報長度超過傳輸網絡的MTU(最大傳輸單元)而必須分片,這個標識字段的值被復制到所有數據報分片的標識字段中,使得這些分片在達到最終的目的地時可以依照標識字段的內容重新組成原先的數據報。
標志:最低位是MF,MF=1時,表示后面還有分片。
中間位的DF,DF=1時,表示不能分片。
片偏移: 和前面的數據分片相關,是本分片在原先數據報文中相對首位的偏移位。
生存時間:數據報在網絡中存活的時間,所允許通過的路由器的最大數量,沒通過一個路由器,該值自動減一,如果數值為0,路由器就可以把該數據報丟棄。
協議: 指出數據報攜帶的數據是使用何種協議,以便目的主機的IP層能知道次數據報上交到哪一個進程(不同協議有一個專門不同的進程處理)。
首部校驗位和:對首部進行校驗運算。
校驗方法 : 在發送端,將IP數據報首部划分為多個16位的二進制序列,並將首部校驗和字段置為0,用反碼運算將所有16位序列對位相加后,將得到多的和的反碼寫入首部校驗和字段。接收端接收到數據報后,將數據報首部的所有字段組織成多個16位的二進制序列,再使用反碼運算相加一次,將得到的結果取反。如果結果為0代表沒出錯,否則出錯。
源地址:發送數據報的節點地址。
目的地址:接受數據報的節點地址。