资料1
巧测MTU,加快网页打开速度
2009-03-27 10:29
2007-05-27 作者: 来源:硅谷动力
      在我们常用的Windows XP操作系统中,系统默认的MTU值为1500,这是一个标准以太网的设置值,并不适合宽带网络,而一般ADSL宽带的MTU14501492之间,系统与ISP之间MTU的不符就会直接导致数据在网络传输过程中不断地进行分包、组包,浪费了宝贵的传输时间,也严重影响了宽带的工作效率。这就要求我们必须将本机MTU值设为与ISP所使用的MTU值一样后才能快速浏览网页、下载数据。但是,每个地区的ISP所使用的MTU值都不相同,同时ISP也会不定期地更改局端MTU大小,这给我们设置本机MTU带来了很大的不便,那么我们怎样才能知道ISPMTU是多少呢?其实,我们平时最常用的Ping命令就能很方便地帮我们测试出本地ISPMTU大小,如果大家感兴趣,就请跟随笔者一起来看看吧。

  测试思路

  在广域网上,大小超出ISP要求的数据包将无法传输,而操作系统则会根据本机MTU值自动将大小不符合要求的数据进行分包处理再进行传输,所以我们可以通过向Internet上的某台主机发送一个定长数据包,并且不允许操作系统更改其大小的方式去检查该数据包能否被正常传输,如果数据包小于或等于ISPMTU值时,传输就能正常进行,而如果发送的数据包大于ISP使用的MTU值时,传输就会失败,这样我们就能通过不断发送不同大小的数据包最终得到ISP端的MTU大小,而这个数据再加上28字节的包头信息就是我们需要的最终MTU值。

  测试步骤

  1. 拨号上网,并打开开始菜单→“程序附件命令提示符

  2. 输入命令“ping –l 14xx –f www.163”,这里我们解释一下命令参数的含义

  * –l 14xx参数:发送一个定长数据包,14xx是要测试的包大小,如前所述,ADSLMTU一般在14501492之间,第3步中将每次更换一次该值

  * –f 参数:通知操作系统不能私自更改该数据包大小

  * www.163:任意一台Internet上的主机,也可使用其它主机名或IP地址

  3. 观察反馈结果并判断ISPMTU值(请注意图中标黄框部分)

  1) 第一次发送测试包,包长1450

  如图1,提示数据包过大,需要分包,因此判断该数值(1450)大于ISPMTU,应降低包大小

  2) 第二次发送测试包,包长1440

  如图2,数据包大小降为1440,提示应为数据包过大,因此判断该值(1440)仍大于ISPMTU,还应继续降低

  3) 第三次发送测试包,包长1430

  如图3,数据包大小降为1430,提示该数据包可以正常传输,因此判断ISPMTU值在1440~1430之间

  4) 第四次发送测试包,包长1435

  如图4,数据包大小升为1435,提示仍然可以正常传输,因此判断MTU数值在1440~1435之间

  5) 第五次发送测试包,包长1438

  如图5,数据包大小升为1438,提示可正常传输,因此判断MTU数值在1440~1438之间
  6) 第六次发送数据包,包长1439

  如图6,数据包大小升为1439,提示因数据包过大无法传输,因此,判断出该ISPMTU值为1438

 4. 计算本地电脑的MTU

  上面得到的MTU值不能直接用于本地设置上,还应在此基础上加上28(包头大小),因此最终的MTU数值为1466

  5. 修改本机MTU王凯值

  修改本机默认的MTU值可以通过注册表来进行,但更直观稳妥的方法是使用一些系统优化软件,如超级兔子“Windows优化大师等,本例使用超级兔子 V6.25”进行演示。如图7是进入魔法设置网络设置标签的画面,首先选中使用最大传输单元前面的勾,然后再从后面的数据栏中输入计算出的MTU值(1466)后点击确定并重启电脑即可。

  总结

  如上所述,整个过程可能看起来挺烦琐,但思路十分简单,而且效果不错。笔者的电脑设置了MTU值后,浏览器打开页面的速度较未设置前提高了15%,效果还是很明显的。 朔ㄖ皇视糜赑PPOE的拨号ADSL,对于光纤接入或ISDN接入的宽带网络不适用此法。
Linux系统下的检测
在终端输入:ping -c <number> -M do -s <bytes> IP

如果发现数值为1472,那么MTU=1472+28=1500
修改MTU
windows98

修改注册表:HKEY_Local_Macchine>System>CurrentControlSet>Services>Class>NetTrans>000n
最后一个n是数字,看看下面有没有网卡的相关信息,如果有,在选择的网卡接口后按下"编辑">"新建">"选择新增DWORD",将新增的项命名为MaxMTM,并右击选择"修改",选中"十进制",输入到的MTU,:1492.
windows 2000
  选择:HKEY_Local_Macchine>System>CurrentControlSet>Services>Tcpip>Parameters>interface
在下面有多个接口,会有一个与网卡设置相同的接口,在选择的网卡接口后按下"编辑">"新建">"选择新增DWORD",将新增的项命名为MTU,并右击选择"修改",选中"十进制",输入到的MTU.
Linux

使用ifconfigmtu参数即可:
ifconfig eth0 met 1500:就可以了

资料2
现在Windows服务器是众多用户的首先,以其使用方法、配置简单赢得了大家一致的好评。而现在网络上通行的协议就是TCP/IP协议,在Windows系统中配置TCP/IP非常简单,只要指定IP地址、掩码、网关、DNS等选项后就能够让其进行工作。而我们在学习TCP/IP的时候,所了解的情况并不是如此简单的。之所以出现两种截然相反的情况,是因为对于TCP/IP很多参数,Windows采用了默认的设置。我们知道一般默认的设置都讲究“不求有功,但求无过”的思想,即采用保守的配置以满意大部分用户的一般需求。对于追求性能的用户来说,就需要手工进行调整了。在对TCP/IP调整的过程中,最重要有效的就是调整最大传输单元MTU的值。下面我们就向大家介绍具体的优化过程。

  一、出最合适的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值了。知道了这个数值后,我们才好进行后面的工作。 二、修改MTU

  尽管到了最合适的MTU值大小,但是怎么去修改呢?因为Windows系统默认都已经设置好了,并没有给我们提供修改的选项。

  不要紧张,系统的参数设置都是保存在注册表中的,因此我们可以通过修改注册表的方法来实现修改MTU的值。打开运行窗口,输入“regedit”后回车打开注册表编辑器,然后依次选择“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces”,在该项下会看到很多接口,单击其中的每个接口,在右侧则都会有一个“IPAddress”的键,查看它的值,如果它的值与当前网卡的IP地址相同,那么就表示这个接口为当前使用的。  这样只要在该接口上单击鼠标右键,选择弹出菜单中的“新建——Dword值”,创建一个名为“MTU”的Dword主键,然后将其值设为前面获取的MTU值即可 最后提醒大家,在修改
注册表之前,最好做好备份之后再修改,以避免修改出错导致系统产生故障。三、应用实例

  修改了MTU值后,只要数值大小合适,那么网络性能一般都会有所提高。尤其是传送较大容量的数据时效果会比较明显。但是在实际的使用中,仍然有一些情况需要我们注意。下面笔者继续向大家作一介绍。

  1.启用MTU路径检测

  前面我们知道,MTU的值是要讲究环境的,很多朋友会说,我确定最适合的MTU值时是以本地网关为参照的,如果出了局域网进入互联网该怎么办呢?不要紧,我们只要启用MTU路径检测,那么TCP/IP协议就会自动检测到达目标远程主机路径中所经过的网络MTU值并自动作出调整,从而避免冲突。

  打开注册后,依次选择“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
\Tcpip\Parameters\”,然后在右侧创建一个名为“enablepmtudiscovery”的Dword值,再把它的值设为设为1表示启用MTU路径检测.
  2.启用默认路由

  我们知道,Windows 2000/XP/2003在某种情况下可以充当路由器来使用,但是默认状态下该功能却是关闭的。如果启用该功能,那则可允许内置的路由缓冲和队列来优化TCP/IP网络。因此我们可以打开注册表,定位到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\”,然后新建一个“ipenablerouter”的Dword值,并设为1即可。