如何查MTU值

2024-12-16 05:46:47
推荐回答(2个)
回答1:

MTU值的意思是网络上传送的最大数据包,单位是字节。不同的接入方式,MTU值是不一样的,如果值太大就会产生很多数据包碎片,增加丢包率,降低网络速度。平常使用的宽带PPPoE连接方式,其MTU值最大为1492,解决的办法就是在注册表中对MaxMTU值逐步调低,直到网络最正常为止。MaxMTU在注册表中的位置是:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\sNetTrans\00yy,键名为“MaxMTU”,其中“yy”是TCP/IP的入口,随设置的不同而不同,一般在00到30之间。

那么又如何判定某个MTU值是最适合的呢?进入DOS环境,输入以下命令行:

ping -f -l 1492 192.168.0.1.

提示:其中“192.168.0.1”是网关IP地址,1492为数据包的长度,参数“-l”中是小写的L.如果出现下面信息:Packet needs to be fragmented but DF set,那就表示MTU值太大了。

而如果出现:Reply from 192.168.0.1: bytes=1492 time<10ms TTL=128则表示此MTU值是可行的,不过还是建议多试几个找到最佳值。

问题总结:这也是使用宽带路由器上网的一个小小弊端。通过对网速的实测证明,在ADSL接入电脑之间安装宽带路由器后,在多台电脑同时在线的情况下,由于路由器在地址解析、路由分发等方面的耽误,实际到达电脑的速度比单机直接连入ADSL线路要稍慢一些。

回答2:

MTU是Maximum Transmission Unit的缩写。意思是网络上传送的最大数据包。MTU的单位是字节。 大部分网络设备的MTU都是1500。如果本机的MTU比网关的MTU大,大的数据包就会被拆开来传送,这样会产生很多数据包碎片,增加丢包率,降低网络速度。把本机的MTU设成比网关的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? 修改方法如下: (1)、运行regedit (2)、浏览到: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces 如图2 (3)、Interfaces下有多个子项,每个子项对应一个网卡。请按如下方法选择网卡: (a)确定本机用来连接Internet的网卡或拨号连接的IP,如192.168.0.19; (b)用鼠标点击Interfaces上的子项,查看键值列表中的IPAddress项; (c)如果IPAddress的键值与(a)中的IP相同,即192.168.0.19,则该子项就是要找的网卡。 (4)、进入该子项,在右边的窗口里按鼠标右键,选择“新建”->“双字节值”,输入名称“MTU”,按回车。再用鼠标双击“MTU”,弹出修改窗口: 如图3: 填入MTU的值。填写前请先把基数设为十进制。 设置好后,需要重启机器才能生效。