TCP報文的最大負載和報文的最小長度

大囚長發表於2019-01-04

轉載:
https://www.cnblogs.com/zhuzhu2016/p/5797534.html

  • MTU:最大傳輸單元,乙太網的MTU為1500Bytes
  • MSS:最大分解大小,為每次TCP資料包每次傳輸的最大資料的分段大小,由傳送端通知接收端,傳送大於MTU就會被分片。
  • MSS預設最小為536B,最小的MTU576B,MSS = MTU - IP頭(20B)- TCP頭(20B)

TCP最小資料長度為1460Bytes

乙太網的最大資料幀是1518Bytes

乙太網的幀頭148Bytes:MAC目的地址48bit(6B),MAC源地址48bit(6B),Type域2B,一共14B

幀尾校驗4Bytes

資料域只剩:1518-14-4 = 1500Bytes

TCP資料包大小 1500 - IP頭(20B)- TCP頭(20B) = 1460B 這也是最大的MSS

(UDP資料包 1500 - IP頭(20B) - UDP頭(8B) = 1472B)

TCP最大負載65535-40B

TCP報文段的最大負載為65495位元組,因為每個資料段必須適合IP的載荷能力,不能超過65535位元組,IP頭20B,TCP包頭20B,

故最大負載為65535- 20-20=65495B

ack欄位大小為84B

前導碼 8 + 目的MAC 6 + 源MAC 6 + 型別 2 + IP首部 20 + TCP首部 20 + 使用者資料 0 + 填充字元 6 + CRC 4 + 分組間隙 12 = 84B

TCP:64B

乙太網幀首部  14B:MAC目的地址48bit(6B),MAC源地址48bit(6B),Type域2B,一共14B

乙太網幀尾部  4B

IP  20B

TCP  20B  (UDP  8B)

填充  6B   (UDP填充  18B)

一共58B,不夠64B ,填充6B。

TCP最小長度
是預設的MSS產生536B,還是ACK的長度84B,還是TCP總長(加IP,MAC)的64B

相關文章