一、找出最合适的MTU值
在默认情况下,TCP/IP在网络中的最大传输单元为1500.这是什么意思呢?我们知道网络传输数据是按数据包的形式来传送的,例如默认的MTU值为1500字节,那么当传送的数据大于1500时,则会以此为标准,将其分封个若干个1500字节,然后进行封包、解包操作。由此看来,MTU值的大小会影响到封包和解包操作的频率。
那么我们是不是将MTU的值设的越大越好呢?当然不是,首先值过小,那么会在网络中进行频繁的封包和解包,其影响显而易见;而设置的值过大那么适合局域网内部的高速传输,但是接入Internet则会影响稳定性。因此我们需要寻找最合适的MTU值。
寻找MTU合适大小的方法是借助Ping工具来完成的。在运行窗口中输入“cmd”后回车打开命令提示符窗口,输入“ping -f -l MTU值 网关IP”,其中-f表示不进行碎片整理,-l表示指定MTU的值,而最终朱则试我们一般是拿网关为标准。
在测试时,我们可以先取一个基准数据,例如默认设置1500,如果命令执行之后返回的提示信息是“Packet needs to be fragmented but DF set.”时,那则说明我们设置的MTU值过大,不适合当前的网络(图1);当不适合时则需要重新执行该命令并将MTU值改小,而返回的信息变成“Reply from 192.168.1.254: bytes=1472 time=1ms TTL=64”的时候(图2),那么则可以将MTU值再增大,一直找到在两种状态之间的那个MTU值,这个数值就是当前环境下最合适的MTU值了。知道了这个数值后,我们才好进行后面的工作。
图1
图2
二、修改MTU值
尽管找到了最合适的MTU值大小,但是怎么去修改呢?因为Windows系统默认都已经设置好了,并没有给我们提供修改的选项。
不要紧张,系统的参数设置都是保存在注册表中的,因此我们可以通过修改注册表的方法来实现修改MTU的值。打开运行窗口,输入“regedit”后回车打开注册表编辑器,然后依次选择“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces”,在该项下会看到很多接口,单击其中的每个接口,在右侧则都会有一个“IPAddress”的键,查看它的值,如果它的值与当前网卡的IP地址相同,那么就表示这个接口为当前使用的(图3)。
图3
这样只要在该接口上单击鼠标右键,选择弹出菜单中的“新建——Dword值”,创建一个名为“MTU”的Dword主键,然后将其值设为前面获取的MTU值即可(图4)。
图4
最后提醒大家,在修改注册表之前,最好做好备份之后再修改,以避免修改出错导致系统产生故障。
三、应用实例
修改了MTU值后,只要数值大小合适,那么网络性能一般都会有所提高。尤其是传送较大容量的数据时效果会比较明显。但是在实际的使用中,仍然有一些情况需要我们注意。下面笔者继续向大家作一介绍。
1.启用MTU路径检测
前面我们知道,MTU的值是要讲究环境的,很多朋友会说,我确定最适合的MTU值时是以本地网关为参照的,如果出了局域网进入互联网该怎么办呢?不要紧,我们只要启用MTU路径检测,那么TCP/IP协议就会自动检测到达目标远程主机路径中所经过的网络MTU值并自动作出调整,从而避免冲突。
打开注册后,依次选择“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\”,然后在右侧创建一个名为“enablepmtudiscovery”的Dword值,再把它的值设为设为1表示启用MTU路径检测(图5)。
图5
2.启用默认路由
我们知道,Windows 2000/XP/2003在某种情况下可以充当路由器来使用,但是默认状态下该功能却是关闭的。如果启用该功能,那则可允许内置的路由缓冲和队列来优化TCP/IP网络。因此我们可以打开注册表,定位到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\”,然后新建一个“ipenablerouter”的Dword值,并设为1即可。
经过上面的优化,我们既能享受到Windows系统带来的操作简单