僅介紹tcp協定的報文格式。
基本介紹
- 中文名:TCP報文格式
定義
原理
- 來源連線連線埠(16位長)-識別傳送連線連線埠
- 目的連線連線埠(16位長)-識別接收連線連線埠
- 序列號(seq,32位長)
- 如果含有同步化旗標(SYN),則此為最初的序列號;第一個數據比特的序列碼為本序列號加一。
- 如果沒有同步化旗標(SYN),則此為第一個數據比特的序列碼。
- NS—ECN-nonce。ECN顯式擁塞通知(Explicit Congestion Notification)是對TCP的擴展,定義於RFC 3540(2003)。ECN允許擁塞控制的端對端通知而避免丟包。ECN為一項可選功能,如果底層網路設施支持,則可能被啟用ECN的兩個端點使用。在想樂碑頁ECN成功協商的情況下,ECN感知路由器可以在IP頭中設定一個標記來代替判戒丟棄數據包,以標明阻塞即將發生。數據包的接收端回應傳送端的表示,降低其傳輸速率,就如同在往常中檢測到包丟失那樣。
- CWR—Congestion Window Reduced,定義於RFC 3168(2001)。
- ECE—ECN-Echo有兩種意思,取決於SYN標誌的值,雅套墊提定義於RFC 3168(2001)。
- URG—為1表示高優先權數據包,緊急指針欄位有效。
- ACK—為1表示確認號欄位有效
- PSH—為1表示是帶有PUSH標誌的數據,指示接收方巴故擔應該儘快將這個報文段交給套用層而不用等待緩衝區裝滿。
- RST—為1表示出現嚴重差錯。可能需要重新創建TCP連線。還可以用於拒絕非法的報文段和拒絕連線請求。
- SYN—為1表示這是連線請求或是連線接受請求,用於創建連線和使順序號同步
- FIN—為1表示傳送方沒有數據要傳輸了,要求釋放連線。
- 0:選項表結束(1位元組)
- 1:無操作(1位元組)用於選項欄位之間的字邊界對齊。
- 2:最大報文段長度(4位元組,Maximum Segment Size,MSS)通常在創建連線而設定SYN標誌的數據包中指明這個選項,指明本端所能接收的最大長度的報文段。通常將MSS設定為(MTU-40)位元組,攜帶TCP報文段的IP數據報的長度就不會超過MTU(MTU最大長度為1518位元組,最短為64位元組),從而避免本機發生IP分片。只能出現在同步報文段中,否則將被忽略。
- 3:視窗擴大因子(3位元組,wscale),取值0-14。用來把TCP的視窗的值左移的位數,使視窗值乘倍。只能出現在同步報文段中,否則將被忽略。這是因為現在的TCP接收數據緩衝區(接收視窗)的長度通常大於65535位元組。
- 4:sackOK—傳送端支應催提持並同意使用SACK選項。
- 5:SACK實際工作的選項。
- 8:時間戳(10位元組,TCP Timestamps Option,TSopt)
- 傳送端的時間戳(Timestamp Value field,TSval,4位元組)
- 時間戳回顯應答(Timestamp Echo Reply field,TSecr,4位元組)