网络协议学习笔记-数据链路层-MTU、路径MTU和串行线路吞吐量计算

时间:2024-03-08 09:45:16

最大传输单元 (Maximum Transmission Unit,MTU):是指一种通信协议的某一层上面所能通过的最大数据报大小(以字节为单位)。最大传输单元这个参数通常与通信接口有关(网络接口卡、串口等)。

以太网和802.3对数据帧的长度都有一个限制,其最大值分别是1500和1492,不同类型的网络大多数都有一个上限。

点到点的链路层(如SLIP和PPP)的MTU并非指的物理限制,而是一种逻辑限制,目的是为交互使用提供足够快的响应时间(数据量过大则必然导致传输时间过长)。

如何检测网关的MTU:在本机打开dos窗口,执行: ping -f -l 1472 192.168.0.1 其中192.168.0.1是网关IP地址,1472是数据包的长度。请注意,上面的参数是“-l”(小写的L),而不是“-1”。 如果能ping通,表示数据包不需要拆包,可以通过网关发送出去。 如果出现: Packet needs to be fragmented but DF set. 表示数据包需要拆开来发送。此时,减少数据包长度,再执行上面的ping命令。从1400到1472之间多试几次,就能找到合适的数据包长度了。把数据包长度加上数据包头28字节,就得到MTU的值。 如果检测到网关的MTU值是1500,不需要修改。 如果网关有防火墙ping不通,可以试试直接把MTU设为1400。

修改MTU参阅百度百科。

 

路径MTU:定义为从源地址到目的地址所经过“路径”上的所有IP跳的最大传输单元的最小值。或者从另外一个角度来看,就是无需进一步分片就能穿过这条“路径”的最大传输单元的最大值。

路径MTU发现方法:这是一种确定两个IP主机之间路径最大传输单元的技术,其目的是为了避免IP分片。在这项技术中,源地址将数据报的DF(Don\'t Fragment,不要分片)位置位,再逐渐增大发送的数据报的大小——路径上任何需要将分组进行分片的设备都会将这种数据报丢弃并返回一个“数据报过大”的ICMP响应到源地址——这样,源主机就“学习”到了不用进行分片就能通过这条路径的最大的最大传输单元了。

串行线路吞吐量的计算:如果线路速率是9600 b/s,而一个字节有8bit,加上一个起始比特和一个停止比特,那么线路的速率就是9600 / ( 8 + 2 ) = 960 B/s(字节/秒)。如果传输1024字节就需要1024 / 960 = 1066 ms。