TCP/IP 報文頭詳解

一、IP報文頭:

IP報文頭的長度一般在20到60個字節之間,報文頭前20個字節是固定的,後面的可變。

版本:佔4bit,表示IP協議的版本號,一般爲IPV4。

首部長度:佔4bit,表示IP報文頭的長度。20-60個字節。

服務類型:佔8bit,用來獲取更好的服務。前3位表示報文優先級,後幾位表示要求更低時延、更高的吞吐量、更高的可靠性、更低的路由代價等。對應位爲1即有相應要求,爲0則不要求。 

總長度:佔16bit,表示報文總長度。一個IP報文的最大長度爲65535個字節。

標識:佔16bit,標記當前分片爲第幾個分片。

標誌:佔3bit,表示該報文是否爲分片,後續是否還有分片。

片偏移:佔13bit,表示當前分片在原報文中的相對位置。

生存時間:佔8bit,表示報文還能生存多久。每經過1ms或者一個網關,TTL的值自動減1,當生存時間爲0時,報文將被認爲目的主機不可到達而丟棄。使用過Ping命令的用戶應該有印象,在windows中輸入ping命令,在返回的結果中即有TTL的數值。 

協議:佔8bit,表示上層使用的協議,可能是TCP、UDP、ICMP。

首部校驗和:佔16bit,用於檢驗IP報文頭部在傳播的過程中是否出錯,主要檢驗報文頭中是否有某個或幾個bit被修改。

源IP地址:佔32bit,4個字節,每個字節爲0~255之間的整數。

目IP地址:佔32bit。

 

二、TCP報文頭:

源目端口:各佔16bit。

序列號:佔32bit,TCP通信過程中,通過序列號保證傳輸過程中數據的有序性。

確認號:佔32bit,用於響應TCP報文段,給收到的TCP報文段的序號加1。

頭部長度:佔4bit,表示TCP報文首部的長度。

保留:佔6bit,今後使用。

標誌:佔6bit,URG(緊急指針是否有效)ACK(表示確認號是否有效)PSH(提示接收端應用程序應該立即從TCP接收緩衝區讀走數據)RST(表示要求對方重新建立連接)SYN(表示請求建立一個連接)FIN(表示通知對方本端要關閉連接)

窗口大小:佔16bit,用於TCP流量控制,告訴對端TCP緩衝區還能容納多少字節。

校驗和:佔16bit,發送端填充,接收端對報文段執行CRC算法以檢驗TCP報文段在傳輸中是否損壞。

緊急指針:佔16bit,在URG標誌設置了時纔有效。與序號字段的值相加後表示最後一個緊急數據的下一字節的序號,可以說這個字段是緊急指針相對當前序號的偏移。

選項:長度不定,但長度必須以是32bits的整數倍。常見的選項包括MSS、SACK、Timestamp等等。

 

 

轉載:

https://www.cnblogs.com/xsiedu/articles/1741584.html

https://www.cnblogs.com/fantastic123/p/8968132.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章