什麼是 TCP 段首部?


每個 TCP 段都包含一個 20 位元組的固定格式首部。首部選項可能位於固定首部之後。帶有一個首部,以便它可以標記最多 65535 個數據位元組。

TCP 首部格式如下所示:

源埠

這是一個 16 位的源埠號,接收方用來回復。

目標埠

這是一個 16 位的目標埠號。

序列號

此段中第一個資料位元組的序列號。在 SYN 控制位被設定時,序列號為 n,第一個資料位元組為 n + 1。

確認號

如果 ACK 控制位被設定,則此欄位包含接收方期望接收的下一個序號。

資料偏移量

TCP 首部中幾個 32 位字顯示使用者資料從哪裡開始。

保留 (6 位)

保留供將來使用。

URG

它指示緊急指標欄位,資料型別是否緊急。

ACK

它表示段中的確認欄位具有重要意義,如前所述。

PUSH

PUSH 標誌根據傳送的資料型別立即傳送或不傳送而設定或重置。

RST
 
它重置連線。

SYN

它同步序列號。

FIN

這表示傳送方不再有資料。

視窗

它用於確認段。它指定接收方準備接受的資料位元組數,從確認號欄位中指示的一個開始。

校驗和

它用於錯誤檢測。

選項

IP 資料報選項提供額外的準確性。它可以在 TCP 傳送方和接收方之間使用多個可選引數。這取決於所使用的選項。欄位的長度可能會有所不同,但由於首部欄位的大小為 4 位,因此它不能大於 40 位元組。

最典型的選項是最大分段大小 MASS 選項。TCP 接收方使用此選項向 TCP 傳送方傳達它可以接受的分段的總長度。其他各種選項用於流量控制和擁塞控制,每個選項在表中都有說明。

選項表

TCP 段首部中的選項表如下所示:

種類
長度
含義
                       0
                        -
         選項列表結束
                       1
                        -
         無操作
                       2
                        4
 最大分段大小
                       3
                        3
         視窗縮放
                       4
                        2
         允許 Sack
                       5
                       X
            Sack
                       8
                      10
           時間戳

填充

每個選項的大小可能不同,並且可能需要用零“填充”TCP 首部,以便該段根據標準以 32 位字邊界結束。

資料

儘管在某些情況下(例如,反向方向上沒有資料的確認段),可變長度欄位承載來自發送方到接收方的應用程式資料。此欄位與 TCP 首部欄位一起構成一個 TCP 段。

更新於:2021 年 5 月 5 日

29K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告