TCP报文的最大负载和报文的最小长度

转载:
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

猜你喜欢

转载自blog.csdn.net/Jailman/article/details/85763739