登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

SeaRiver Blog

实力才是你一生最好的依靠!

 
 
 

日志

 
 

mtu值引起的ftp上传慢问题  

2010-02-21 16:09:05|  分类: FTP |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

最近公司同事反映通过ftp往公司服务器上传文件时速度非常慢,基本为O,通过测试发现的确如此。其它应用都正常,ftp下载速度也不慢,往别的 ftp上传速度也不慢,就是往我们自己的ftp服务器上传的时候速度非常慢,几乎为0,但从别的地方往我们的ftp上传速度也不慢。两头都没问题,陷入深深的苦恼中……
公司的网关是一台windows2003+ISA2006,外网卡直接连ISP的路由器。以前上传都很正常,近期内部没有做过调整,又排除了ftp服务器端的问题,所以问题只能出在互联网的某一个结点上。找ISP的工程师来测试也找不出原因,只能估计是ISP之间互相限速导致(公司办公接入和主机托管属于不同的ISP)。
这个问题很头疼,加上又忙于公司网站改版的事情,就把这个问题丢给年轻的同事去解决了。
该同事通过修改网关服务器的MTU值解决了这个问题。原因可能是网关服务器发送的数据包的MTU值大于某台路由器的MTU值,导致数据包碎片增加,数据传输出错。(前段时间听说托管主机的ISP调整过网络,可能原因就在这)

以下内容来自互联网
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的值。填写前请先把基数设为十进制。

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

 

引自:http://fuller810.blog.163.com/blog/static/7810612008880515563/

 

--------------------------------------------------------------------------------------------

LINUX手动查看和修改MTU值的方法

网卡的MTU值是保存在/sys/class/net/eth0/mtu文件中,所以可以通过查看和修改文件达到修改MTU的目的:

 

以下以查看和修改eth0为例:

1. 查看MTU值

# cat /sys/class/net/eth0/mtu

 

2.  修改MTU值

# echo "1460" > /sys/class/net/eth0/mtu

 

顺便说一句,在/sys/class/net/eth0/目录中还有很多文件,对应了eth0的各个参数,可以手动的修改里面的值达到配置网卡参数的目的。

  评论这张
 
阅读(1925)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018