如何拥有最佳MTU?

日期: 2011-10-31 来源:TechTarget中国

  MTU是什么?

  MTU的英文全称为Maximum Transmission Unit,中文是意思是最大传输单元。MTU就是指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位)。最大传输单元这个参数通常与通信接口有关(网络接口卡、串口等)。

  什么时候更改MTU值?

  对于一般的路由器设备,最佳的MTU值通常都是默认值。有时,更改MTU值可提高设备工作性能。做起来很简单,但事实上,这样做往往会导致出现其他问题。最好保持MTU不变,除非有以下情况出现:

  ·当连接不到ISP或者不能使用其他的因特网服务时,且他们的技术支持人员建议更改MTU值。

  ·当您使用VPN,遇到性能问题时可以考虑更改MTU。

  ·为了提高网络的某些性能,使用了可优化MTU值的应用程序,而这引起了连通性和其他性能方面的问题。

  一个信息包被发送到MTU值较小的设备时,将被分解为若干小块。理论上,在所有电脑、交换机、路由器及您能访问到的因特网的所有设备上的MTU值应该设置为同一大小。但是您不能控制因特网上的MTU值,而事实上在一个局域网中的最佳MTU值取决于硬件、软件、无线接口等等。

  ·在一种情形下修改MTU的大小可使设备很好地工作, 但在其他方面却可能引起性能和连接性问题。

  ·当具有不同MTU值的设备相互通信时,信息包将会被分成多个以便能传给具有最小的MTU值的设备。

  ·Windows XP自动设置MTU,换句话说,它使MTU对于各种应用综合性能最优化。微软的文章解释了使用Windows XP的宽带用户不能连接到ISP的原因。

  ·一旦网络设备分解了一个信息包,此信息包在到达目的地前一直保持分解的状态。

  各种应用下的最佳MTU值

  设置MTU大小是一个反复试验的过程: 由最大值1500开始下降,直至问题解决。使用下列值之一或许能解决一些由MTU值引起的问题:

  ·1500: 是以太网信息包最大值,也是默认值。是没有PPPoE和VPN的网络连接的典型设置。是一些路由器、网络适配器和交换机的默认设置。

  ·1492: 是PPPoE的最佳值。

  ·1472: 是使用ping的最大值(大于此值的信息包会先被分解)。

  ·1468: 是DHCP的最佳值。

  ·1430: 是VPN和PPTP 的最佳值。

  ·576: 是拨号连接到ISP的标准值。

  如何利用Ping命令测试本地最佳MTU值的方法

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

  测试步骤:

  1. 接入网络,并打开“开始”菜单→“程序→附件→命令提示符”。

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

  * –l 14xx参数:发送一个定长数据包,14xx是要测试的包大小,如前所述,ADSL的MTU一般在1450与1492之间,第3步中将每次更换一次该值。上面的命令中,-l是英文字母L的小写。

  * –f 参数:通知路由器不能私自更改该数据包大小。

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

  观察反馈结果并判断ISP的MTU值。

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

  提示数据包过大,需要分包,因此判断该数值(1492)大于ISP的MTU,应降低包大小。

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

  将数据包大小降为1480,提示数据包过大,因此判断该值(1480)仍大于ISP的MTU,还应继续降低。

  下面继续观察

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

  将数据包大小降为1470,提示该数据包可以正常传输,因此判断ISP的MTU值在1470~1480之间。

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

  将数据包大小提升为1475,提示数据包过大,因此判断MTU数值在1470~1475之间。

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

  将数据包大小提升为1472,提示可正常传输,因此判断MTU数值在1472~1475之间。

  6) 第六次发送数据包,包长1473

  数据包大小升为1473,提示因数据包过大无法传输,因此,判断出该ISP的MTU值为1472。

  修改路由器的MTU值

  上面得到的MTU值不能直接用于本地设置上,还应在此基础上加上28(数据包头大小28字节),因此最终在WAN设置页面修改MTU大小为1500。

  总结:可提高路由工作性能,也会导致负面问题。

  经过测试,通过修改路由器中的MTU值可以成功解决通过路由器上网后“能上QQ不能打开网页”、“部分网站或链接打不开”、“MSN登录不了”(请将MTU置为1500)、“Email无法发送附件”等问题。但要注意,如果组网为单层路由结构,那么更改MTU值后,数据包直接从WAN口转发到LAN口,不会出现问题。操作系统对它也可以进行自动处理。但如果有再向下接一层的路由组网结构,则会导致你底层路由有连接速度缓慢或丢包等现象,建议在有必要时再修改路由器中的MTU值。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

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

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。