MSS和MTU

3274阅读 3评论2011-04-15 lijianweiabcde
分类:网络与安全


RFC 894(以太网)
  以太网帧报头为目的地址6+源地址6+类型2+CRC 4=18byte
MTU: Maxitum Transmission Unit 最大传输单元
MSS: Maxitum Segment Size 
最大分段大小
以太网最大的数据帧是1518Bytes,刨去以太网帧的帧头(DMAC目的地址MAC48bit=6Bytes+SMACMAC地址48bit=6Bytes+Type2bytes14Bytes和帧尾CRC校验部分4Bytes(这个部门有时候大家也把它叫做FCS),那么剩下承载上层协议的地方也就是Data域最大就只能有1500Bytes. 这个值我们就把它称之为MTU 
以太网的MTU1500,再减去PPP的包头包尾的开销(8Bytes),就变成1492
 
MSS就是TCP数据包每次能够传输的最大数据分段。为了达到最佳的传输效能
TCP协议在建立连接的时候通常要协商双方的MSS值,这个值TCP协议在实现的
时候往往用MTU值代替(需要减去IP数据包包头的大小20BytesTCP数据段的
包头20Bytes)所以往往MSS1460。通讯双方会根据双方提供的MSS值得最小
值确定为这次连接的最大MSS值。

每个以太网帧都有最小的大小64bytes,最大不能超过1518bytes,对于小于或者大于这个限制的以太网帧我们都可以视之为错误的数据帧,一般的以太网转发设备会丢弃这些数据帧。(注:小于64Bytes的数据帧一般是由于以太网冲突产生的“碎片”或者线路干扰或者坏的以太网接口产生的,对于大于1518Bytes的数据帧我们一般把它叫做Giant帧,这种一般是由于线路干扰或者坏的以太网口产生)

上一篇:linux内核模块编程起步
下一篇:ip分片与linux实现(整理自网络)

文章评论