最近发现在在家里上传到FTP的速度很不正常,小文件上传简直就是悲剧,一上传速度就变成0,测试了大文件一开始速度正常然后开始变慢,速度到0,过几秒钟后速度才恢复。一开始以为是ftp服务器故障,检查了很多设置,包括重新编译依然无效。但是发现在单位正常。之后查阅了很多相关资料,发现居然和MTU值有关,默认ADSL的MTU值是1492.但是发现实际电信这里改了这个值。相应修改路由器拨号的MTU值到1400后发现一切正常。



转一个网上修改MTU值得方法
-- 在WindowsNT4.0/Windows 2000/Windows XP的客户机上
定位于主键 HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters/Interfaces 找到与当前使用网卡的ID键(方法和在98下基本相同,只要找到包含所要修改的网络的IP地址的键值,那么这个ID就是你要修改的),为该键建立新值 项:MTU,类型: DWORD,值:1450或者更低(十进制).
备注:您可以通过查看IPADRESS(若是指定IP,改值应为192.168.0.x)或DHCPDOMAIN(若是动态获得IP,该值为DHCP Server名)来选择正确的ID键.



Windows系统上的检测



  1.进入DOS命令提示符




  2.输入ping -f -l <bytes> IP
    如:ping -f -l 1500 192.168.1.2




    bytes是本机送出去的数据包大小,IP是GateWay的IP,使用-f,所以数据包没有办法重新组合.




    如果结果表明出现响应了,就表示这个MTU是可行的,不过建议找出可行的最大MTU值,就可以达到最优的网络传输.




  3.MTU值的计算




    如ping -f -l 1464 192.168.1.2,找到的数据是数据包的大小,但每个数据包都具有包头,这个包头部分占去28个字节,所以最终的MTU数值其实是:1464+28=1492.




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



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