MTU、IPMTU、TCPMSS设置上的区别及联系
1.MTU是⼀个⼆层的概念,即最⼤传输单元(Maximum Transmission Unit,MTU);以太⽹最⼤的mtu就是1500(它是不包含⼆层头部的,加上头部应该为1518 bytes,2bit的以太⽹类型+6bit的DMAC+6bit的SMAC+4bit的FCS),每个以太⽹帧都有最⼩的⼤⼩64bytes,最⼤不能超过1518bytes
注:
1)⼩于64Bytes的数据帧⼀般是由于以太⽹冲突产⽣的 “碎⽚”或者线路⼲扰或者坏的以太⽹接⼝产⽣的,对于⼤于1518Bytes的数据帧我们⼀般把它叫做Giant帧,这种⼀般是由于线路⼲扰或者坏的以太⽹⼝产⽣
2)以太⽹EthernetII最⼤的数据帧是1518Bytes,是指包含以太⽹帧的帧头(DMAC⽬的MAC地址 48bit=6Bytes+SMAC源MAC地址
48bit=6Bytes+Type域2bytes)14Bytes和帧尾CRC校验部分4Bytes (这个部份有时候⼤家也把它叫做FCS)
2.IP MTU是⼀个三层概念,它包含了三层头部及所有载荷,根据下层为上层服务的,上层基于下层才能做进⼀步的扩展的原则,尽管IP MTU的变化范围很⼤(68-65535),但也不得不照顾以太⽹MTU的限制,说⽩了就是ip对以太⽹的妥协。
⽹络层IP协议会检查每个从上层协议下来的数据包的⼤⼩,并根据本机MTU的⼤⼩决定是否作“分⽚”处理
3.MSS是TCP⾥⾯的⼀个概念,它是TCP数据包每次能够传输的最⼤数据分段,不包含包头部分,它与IP MTU满⾜如下关系:
IP MTU=MSS+20bytes(IP包头)+20bytes(TCP包头)
当然,如果传输的时候还承载有其他协议,还要加些包头在前⾯。
注:为了达到最佳的传输效能,TCP协议在建⽴连接的时候通常要协商双⽅的MSS值,这个值TCP协议在实现的时候往往⽤MTU值代替(需要减去IP数据包报头的⼤⼩20Bytes和TCP数据段的包头20Bytes),所以往往MSS为1460。通讯双⽅会根据双⽅提供的MSS值得最⼩值确定为这次连接的最⼤MSS值。
tcp ip协议4和64.简⾔之,mtu就是总的最后发出去的报⽂⼤⼩,MSS就是需要发出去的数据⼤⼩,⽐如PPPoE,就是在以太⽹上承载PPP协议(点到点连接协议),它包括6bytes的PPPoE头部和2bytes的PPP协议ID号,此时,由于以太⽹的MTU值为1500,所以上层PPP负载数据不能超过1492字节,也就是相当于在PPPOE环境下的MTU是1492字节,MSS是1452字节(1492字节-20-20)。
重点:
MTU 不包含帧头(18byte)指帧头后⾯的所有负载,与ip mtu的区别就是在帧头和ip头之间可能会有其他协议头(⽐如GRE头、pppoe 头、MPLS标签,这些协议头都是在帧头后ip头前)
ip MTU 包含 ip头(20byte)指ip头本⾝及后⾯的所有负载,⼀个普通的以太⽹数据包mtu=ip mut,只有封装了其他协议头部时mtu=ip
mut+其他协议头部+负载(tcp头+tcp-mss)
TCP-MSS 不包含 tcp头(20byte)指tcp头后⾯的所有负载
IP MTU=tcp-MSS+20bytes(IP包头)+20bytes(TCP包头)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论