分享

MTU

 xn00 2014-08-12
MTUMaximum Transmission Unit),是指能在网络上传输的最大数据包大小,常见的默认MTU如下:

PPP:296;IEEE 802.3:1492;以太网:1500;FDDI:4352;超通道:65535;

这里引用的PPP的MTU是指传统在Modem到电话局之间链路上使用PPP的场景,不是目前流行的PPPoE(PPP over Ethernet),同时296并不是实际PPP最大的包大小,而是一个建议值,因为考虑了线路使用者的感受,即在960B/S线路中,使用这个建议值,可以有较好的感受,也就是等待时间可以在忍受范围内(注:以上PPP部分根据后面几位热心兄弟的建议进行了修改)

人一般可以忍受的等待时长在0.1秒到0.2秒以下。
对 于960字节/秒的PPP网络,传送一个字节需要 1 / 960 = 0.01秒,传送1024字节需要 1024 / 960 = 1.067秒,如果一个数据包的大小就是1024字节的话,则平均等待时长为(1.067 + 0.1)/ 2 = 0.538秒,约为传送所有数据时间的一般。根据相同公式,要使PPP满足平均等待时长在0.1秒到0.2秒之间,则每包长度应在960 * 0.1 * 2到960 * 0.2 * 2之间,即192字节到384字节之间,同时考虑吞吐量(有效数据/数据包长度),296则是一个比较合适的MTU.

对于其他网络,个人理解就是数据帧格式中定义的最大数据长度,如以太网帧(Ethernet II):




目的地址


源地址


类型


数据


CRC


6字节


6字节


2字节


46字节~1500字节


4字节




对于超通道,其实就是IP帧格式中数据长度字段(16字节)计算而来:2的16次方 – 1 = 65535字节。实际应用中,还是会被链路层协议分片。如由以太网承载IP,就会被分片成小于1500字节的包。

当数据包在网络中传输时,如果经过某段网络的MTU比数据包的长度小,数据包则会从该段网络起被分片传送。但数据发送端总是期望发送的数据包越大越好,同 时又期望每个数据包在传送过程中尽量不被分片(分片会降低数据包传送的可靠性),因而发送端使用网络中最小MTU发送数据是最为合适的。

UDP数据包一般采用512Bytes的大小发送数据,而TCP则根据两端协商的最小的MTU进行数据传输。这种方式,可以使绝大多数的UDP和TCP传输不进行分片。

但在个别情况下,还是有可能存在网络路径的某段MTU比发送报文长度还小,这时就得依赖网络路径MTU的发现机制了。有一种简单的实现方法,就是在发送端 发送数据包时置上报文不可分片的标记。当报文经过MTU小于报文长度的路由器时,报文会被丢失,同时路由器返回ICMP差错报文,发送端收到差错报文后, 进行发送报文的大小的调整,使发送报文最终达到网络中最小的MTU。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多