TCP報文格式

TCP報文格式

僅介紹tcp協定的報文格式。

基本介紹

  • 中文名:TCP報文格式
定義,原理,

定義

傳輸控制協定(英語:Transmission Control Protocol,縮寫:TCP)是一種面向連線的、可靠的、基於位元組流的傳輸層通信協定,由IETF的RFC 793定義。在簡化的計算機網路OSI模型中,它完成第四層傳輸層所指定的功能。用戶數據報協定(UDP)是同一層內另一個重要的傳輸協定。

原理

  • 來源連線連線埠(16位長)-識別傳送連線連線埠
  • 目的連線連線埠(16位長)-識別接收連線連線埠
  • 序列號(seq,32位長)
  • 如果含有同步化旗標(SYN),則此為最初的序列號;第一個數據比特的序列碼為本序列號加一。
  • 如果沒有同步化旗標(SYN),則此為第一個數據比特的序列碼。
確認號(ack,32位長)—期望收到的數據的開始序列號。也即已經收到的數據的位元組長度加1。
數據偏移(4位長)—以4位元組為單位計算出的數據段開始地址的偏移值。
保留(3比特長)—須置0
標誌符(9比特長)
  • 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表示傳送方沒有數據要傳輸了,要求釋放連線。
視窗(WIN,16位長)—表示從確認號開始,本報舉格朵文的傳送方可以接收的位元組數,即接收視窗大小。用於流量控制。
校驗和(Checksum,16位長)—對整個的TCP報文段,包括TCP頭部和TCP數據,以16位字進行計算所得。這是一個強制性的欄位。
緊急指針(16位長)—本報文段中的緊急數據的最後一個位元組的序院兵疊號。
選項欄位—最多40位元組。每個選項的開始是1位元組的kind欄位,說明選項的類型。
  • 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位元組)

相關詞條

熱門詞條

聯絡我們