tcp傳輸控制協議 報文格式

2021-08-22 13:37:44 字數 2289 閱讀 6599

tcp傳輸控制協議

linux網路協議基礎支援 參考:

1.tcp的首部

t c p資料被封裝在乙個i p資料報中:

t c p首部的資料格式。如果不計任選字段,它通常是 2 0個位元組。

/*tcp頭定義,共20個位元組*/

typedef struct _tcp_header

__attribute__((packed))tcp_header, *ptcp_header;

/*tcp頭中的選項定義

kind(8bit)+length(8bit,整個選項的長度,包含前兩部分)+內容(如果有的話)

kind =

1表示 無操作nop,無後面的部分

2表示 maximum segment 後面的length就是maximum segment選項的長度(以byte為單位,1+1+內容部分長度)

3表示 windows scale 後面的length就是 windows scale選項的長度(以byte為單位,1+1+內容部分長度)

4表示 sack permitted length為2,沒有內容部分

5表示這是乙個sack包 length為2,沒有內容部分

8表示時間戳,length為10,含8個位元組的時間戳

*/

1. 源埠和目的埠

各佔2位元組,埠號加上ip位址,共同構成socket。互相通訊的程序使用一對socket,包括協議、源ip、源埠、目的ip、目的埠,這五個元素唯一確定乙個tcp連線。

2. 序號

佔4位元組,是tcp段所傳送的資料部分第乙個位元組的序號。在tcp傳送的資料流中,每乙個位元組都有乙個序號。建立連線時,傳送方將初始序號(initial sequence number, isn)填寫到第乙個傳送的tcp段序號中。

3. 確認號

佔4位元組,是期望收到對方下次傳送的資料的第乙個位元組的序號,也就是期望收到的下乙個tcp段的首部中的序號,等於已經成功收到的tcp段的最 後乙個位元組序號加1。確認號在ack標誌為1時有意義,除了主動發起連線的第乙個tcp段不設定ack標誌外,其後傳送的tcp段都會設定ack標誌。

4. 資料偏移

佔4位元,表示資料開始的地方離tcp段的起始處有多遠。實際上就是tcp段首部的長度。由於首部長度不固定,因此資料偏移欄位是必要的。資料偏移以32位為長度單位,因此tcp首部的最大長度是60(15*4)個位元組。

5. 控制位

一共6個,佔6位元,設定為1時有效。按順序依次為:urg、ack、psh、rst、syn、fin。

urg緊急位,為1時,首部中的緊急指標有效

ack確認位,為1時,首部中的確認號有效

psh推位,為1時,要求把資料盡快交給應用程式

rst復位標誌,為1時,復位連線,一般在出錯或關閉連線時使用

syn同步位,在建立連線時使用,當syn=1而ack=0時,表明這是乙個連線請求報文段。對方若同意建立連線,在發回的報文段中使syn=1和ack=1

fin結束位,為1時,表示傳送方完成了資料傳送

6. 視窗

佔2位元組,表示報文段傳送方期望接收的位元組數,可接收的序號範圍是從接收方的確認號開始到確認號加上視窗大小之間的資料。

7. 校驗和

校驗和包含了偽首部、tcp首部和資料,校驗和是tcp強制要求的,由傳送方計算,接收方驗證。

8. 緊急指標

urg標誌為1時,緊急指標有效,表示資料需要優先處理。緊急指標指出在tcp段中的緊急資料的最後乙個位元組的序號,使接收方可以知道緊急資料共有多長。

9. 選項

最常用的選項是最大段大小(maximum segment size,mss),向對方通知本機可以接收的最大tcp段長度。mss選項只在建立連線的請求中傳送。

每個tcp段都包含源端和目的端的埠號,用於尋找發端和收端應用程序。這兩個值加上ip首部中的源端ip位址和目的端ip位址唯一確定乙個tcp連線。

有時,乙個 ip位址和乙個埠號也稱為乙個插口(socket),插口對(socket pair) (包含客戶ip位址、客戶端口號、伺服器 ip位址和伺服器端口號的四元組 )可唯一確定網際網路絡中每個tcp連線的雙方。

總結:tcp提供了一種可靠的面向連線的位元組流運輸層服務。 tcp將使用者資料打包構成報文段;它傳送資料後啟動乙個定時器;另一端對收到的資料進行確認,對失序的資料重新排序,丟棄重複資料;tcp提供端到端的流量控制,並計算和驗證乙個強制性的端到端檢驗和。許多流行的應用程式如 telnet、rlogin、ftp和smtp都使用tcp。

TCP協議 報文格式

tcp協議報文格式 固定首部長度為20位元組,可變部分0 40位元組,各欄位解釋 source port number 源埠,16bits,範圍0 65525。target port number 目的埠,16bits,範圍同上。sequence number 資料序號,32bits,tcp 連線中...

TCP報文格式

傳輸控制協議 tcp 向上與使用者應用程式程序介面,向下與網路層協議ip介面。使用者應用程式採用首先呼叫tcp 或udp 然後將應用程式資料遞交給tcp這一方式,在ip網路上傳送資料。tcp將這些資料打包分段並呼叫ip模組向目的主機傳送每個資料段。接收方的tcp將段中的資料放入接收緩衝器,然後將段重...

TCP報文格式

tcp transmission control protocol 傳輸控制協議是一種面向連線的 可靠的 基於位元組流的傳輸層協議 tcp報文格式 源埠號 2位元組 d5 df 54751 目的埠號 2位元組 tcp報頭中的源埠號和目的埠號同ip資料報中的源ip與目的ip唯一確定一條tcp連線 序號...