设置 MTU 大小是一个反复试验的过程: 由最大值 1500 开始下降,直至问题解决。使用下列值之一或许能解决一些由MTU值引起的问题:
    • 1500: 以太网 信息包最大值,也是默认值。是没有PPPoE和××× 的 网络连接的典型设置。是 UCOM 路由器、网络适配器和交换机的默认设置
    • 1492: PPPoE 的最佳值
    • 1472: 使用 ping的最大值 (大于此值的信息包会先被分解) 
    • 1468: DHCP 的最佳值
    • 1430: ××× 和 PPTP 的最佳值
    • 576:  拨号连接到 ISP的标准值

     如何得出最佳的MTU值
    1、进入 MS-DOS 模式; 
    2、打入 C:\WINDOWS>ping -f -l 1500 192.168.1.1。
其中192.168.1.1是网关IP地址,1500是 数据包的长度。请注意,上面的参数是“-l”(小写的L),而不是“-1”。
如果出现下面信息:Packet needs to be fragmented but DF set,那表示MTU值太大了,需要更小的 MTU 值才行! 
    3、下面假设我们使用1464测试。C:\WINDOWS>ping -f -l 1464 192.168.1.1,出现的回应信息为:Reply from 192.168.1.1: bytes=1464 time<10ms TTL=128,此时能够Ping通,表示数据包不需要拆包, 可以通过网关发送出去。这个MTU值是可行的。不过,建议多试几个值,找出可行的最大MTU值,这可以达到最佳的网络速率。
    4、找出 MTU 值:利用上面这个方法找到的数值并不是MTU值,上面这个值加上数据包头28字节,才是我们需要的MTU值,所以,在上面的例子中,我们所需要的MTU 值是 1464+28=1492
 
MTU值的正确设定


当电脑连接网络传送 资料时,资料会分割为不同大小的封包,MTU值设定。MTU是英文Maximum Transmission 

Unit的缩写,意为“最大传输单位”。也就是通过TCP/IP协议所传输的数据包最大有多少字节, 

MTU值越大,封包就越大,理论上可 增加传送速率,但MTU值又不能设得太大,因为封包太大,传送时出现错误的 机会大增。一般默认的设置,PPPoE连接的最高MTU值是1492, 

而以太网(Ethernet)的最高MTU值则是1500,而在Internet上,默认的MTU大小是576字节, 

为什么会有这种差别呢?一般而言,LAN就不说了吧,为充分发挥LAN的效能,MTU可以稍微大一点。Internet的情况恰好相反,对拨号用户来说,那叫一个慢呀。因此,对于Internet,应当采用较小的数据包。 

MTU值设定与宽带接入方式的不同也会影响上网速度,通常推荐的MTU配置是:对于拨号用户,设置成576;对于使用PPPoE的DSL用户,设置成1400;对于其他用户,设置成1500。
ping 


[url]www.sina.com.cn[/url]


-f -l 1480

出现Packet needs to be fragmented but DF 

set.就说明该大小的(1480字节)数据包超过了ISP的MaxMTU,产生了数据冲突碎片,那么我们就降低Ping 命令中的数据包大小,比如说是1460一直到返回信息是Reply 

from 220.194.57.26: bytes=1460 time=134ms 

TTL=115才算正常,那个这个1460数据包大小的值就是ISP的PPPoE协议的MaxMTU值


9X系统中如下设定,运行==regedit回车,进入注册表。依次展开HKEY_LOCAT_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\,会看到包含几个000X的子项,寻找含有键名为“DriverDesc”,键值为“TCP/IP”的000X主键,该键里有该计算机的网络属性设置,如IP地址192.168.0.XX,网关 

192.168.0.1,子网掩码255.255.255.0等。在该键下新建“DWORD值”,命名为“MaxMtu”,修改键值为十进制的1460,

Win95,98系统:
打开注册表编辑器,找到位置 
“HKEY_LOCAT_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\000x”, 

“x”表示为数字,假如电脑安装了多个通讯协议,就会出现“0001”、“0002”、“0003”等 项目,只要打开该项目,就会看见 

“DriverDesc”是“TCP/IP”,即网卡的“Registry”设置,用户在这里可按鼠标右键新增一个“MaxMTU”的DWORD值,修改键值为十进制的1460,重启。 


Win2000,NT,XP,2003系统可以采用如下2种方法之一,建议采用第一种,如果不行,依次往下试验 


1、启用PMTUD的backhole传输

打开REGEDIT,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\主键下,找到主键 

EnablePMTUBHDetect ,如果没有则创建这个Dword值,将其键值设置为1,保存后重起计算机,并测试故障是否解决? 


2、手工设置网卡的MTU值

打开REGEDIT,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\主键下,下面会有几个文件夹,分别代表机器的安装的每一块网卡,依次浏览每个文件夹,并察看窗口右边IPAddress的键值,如果其值为你连接Internet所用网卡的ip,则需要修改的就是这个文件夹。
进入此文件夹,找到一个名为MTU的主键,如果没有则创建这个Dword值,修改键值为十进制的1460,重启。
===========================================================
MTU值修改方法
 
1、什么情况下需要改MTU?
  如果您的动态域名网站不能被正常访问,很难连接,连接上也非常慢,请试试把DirectSend设为“总是关闭”。如果关闭后可以正常访问,这种情况就需要修改MTU。如果您的网站连接正常,只是下载速度慢,就不必改MTU了。请跳过这一节。

2、什么是MTU?

  MTU是Maximum Transmission Unit的缩写。意思是网络上传送的最大数据包。MTU的单位是字节。

  大部分网络设备的MTU都是1500。如果本机的MTU比网关的MTU大,大的数据包就会被拆开来传送,这样会产生很多数据包碎片,增加丢包率,降低网络速度。把本机的MTU设成比网关的MTU小或相同,就可以减少丢包。

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”,弹出修改窗口:

 填入MTU的值。填写前请先把基数设为十进制。

    设置好后,需要重启机器才能生效。