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

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

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

  

转载于:https://www.cnblogs.com/zhuzhu2016/p/5797534.html

你可能感兴趣的:(TCP报文的最大负载和报文的最小长度)