什么是MTU

1、MTU是Maximum Transmission Unit的缩写。意思是网络上传送的最大数据包。MTU的单位是字节。
大部分网络设备的MTU都是1500。如果本机的MTU比网关的MTU大,大的数据包就会被拆开来传送,这样会产生很多数据包碎片,增加丢包率,降低网络速度。把本机的MTU设成比网关的MTU小或相同,就可以减少丢包。
2、MTU定义了基于IP协议在网络中传输的每一个IP包所含的最大字节数。例如,常见的Ethernet局域网的MTU是1500字节,xDSL的MTU大部分是1492或者1464、1450字节,普通Modem拨号的MTU则小的多,一般只有576字节。
Windows默认的MTU是1500,在xDSL上就不适合,因为xDSL本身会占据8个字节,所以有的ADSL驱动就默认为1492。但是,这个并不完全准确,许多情况下,仍然会有网站不能访问、信件不能从POP3收下来等等问题发生。测试一个网络连接所能承受的最大MTU,可以使用命令:ping -f -l size hostname 来测试。发现对于xDSL来说,MTU=1450是个相对比较合理的数值。
3、如何检测网关的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。
4、如何修改本机的MTU?
修改方法如下:
(1)、运行regedit
(2)、浏览到:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces
(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的值。填写前请先把基数设为十进制。
设置好后,需要重启机器才能生效。

留下评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据