java mtu_MTU简介和检测

MTU是Maximum Transmission Unit的缩写,即最大传输单元。是指链路层(TCP/IP四层结构中的最底层:链路层 Link Layer)所能传送数据帧的最大长度。MTU的单位是字节。 大部分网络设备的MTU都是1500,即IP数据报的长度不能超过1500字节。表1列出了几种常见的MTU值。

表1 几种常见的最大传输单元

网  络

MTU字节

超通道

16 Mb/s令牌环(IBM)

4 Mb/s令牌环(IEEE 802.5)

FDDI

以太网

IEEE802.3/802.2

X.25

点对点(低延时)

65536

17914

4464

4352

1500

1492

576

296

如果本机的MTU比网关的MTU大,大的数据报就会被拆开来传送,这样会产生很多数据报碎片,增加丢包率,降低网络速度。把本机的MTU设成比网关的MTU小或相同,就可以减少丢包。

如何检测网关的MTU。 在XP下面,进入命令提示符(开始-运行:输入cmd),执行:

ping -f -l 1472 192.168.1.175

其中192.168.1.175是另外一台局域网内主机的IP地址,本机IP地址为192.168.1.209(IP地址为192.168.×.×的为局域网专用IP,是不能在公网上显示的,主要是基于缓解IP地址资源紧张而提出的一种解决方法)。1472 是数据报的长度。1472是通过这样计算出来的:由于以太网的MTU为1500,这个长度是包括IP包头长度(一般为20字节),以及传输层的报头长度 (TCP一般为20字节,UDP为8字节)。由于Ping程序发送的数据长度是UDP数据,因此,可以发送至以太网最大的UDP数据长度为1500-20 -8=1472字节。

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

以下是执行ping -f -l 1472 192.168.1.175的输出结果:

Pinging 192.168.1.175 with 1472 bytes of data:

Reply from 192.168.1.175: bytes=1472 time=2ms TTL=128

Reply from 192.168.1.175: bytes=1472 time=1ms TTL=128

Reply from 192.168.1.175: bytes=1472 time=1ms TTL=128

Reply from 192.168.1.175: bytes=1472 time=1ms TTL=128

Ping statistics for 192.168.1.175:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

Minimum = 1ms, Maximum = 2ms, Average = 1ms

这首先说明当IP数据报的长度为1500字节的时候,网关可以顺利的发送出去,而不用将数据报拆分,即分组。下面我们将测试IP数据包为1501字节是,即UDP数据长度为1473时执行ping -f -l 1473 192.168.1.175的输出结果:Pinging 192.168.1.175 with 1473 bytes of data:

Packet needs to be fragmented but DF set.

Packet needs to be fragmented but DF set.

Packet needs to be fragmented but DF set.

Packet needs to be fragmented but DF set.

Ping statistics for 192.168.1.175:

Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

这说明当IP数据报的长度为1501字节时,数据报就需要分组。由此可以看出,网关的MTU应该是1500字节。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值