FTP上传速度非常慢的原因之一—-MTU值的设定

昨天重新上传了新的网站程序,白天在办公室上传准备有半天的时间就搞定,结果上传速度慢到无法让人接受,20K的文件需要近20分钟的时间才能上传完成。等晚上下班回家,打开电脑上传,狂晕,家里1M的ADSL,上传速度也是一样的慢。观察一下发现,上传时一开始的瞬间,速度有20K左右,但是维持不住,几秒中就掉到1K以下。几年前曾出现过这样的问题,当时也是用ADSL上网,接了一个无线路由,使用路由后就出现这个问题。后来反复测试找原因,终于发现是路由器中的MTU值设定不符合当时的ADSL线路的要求,将值改到1044后才合适。后来搬家了网速也没有太大的问题,也就没有再改动这个设置。

今天又出现这个问题,是不是MTU值又出问题了呢?。进入路由器的设置,将MTU值先设为1492 ,保存重起路由器。再次FTP,速度终于恢复了,上传到我的空间可以有60多K的速度了。

MTU就是Maximum Transmission Unit,此值设定TCP/IP协议传输数据报时的最大传输单元。设置合适的MTU值可以得到更好的上网速度。 就目前来说MTU的最大值就是1500,如果是千兆设备互连时有可能将这个值增大,比如改到4096。目前常用的几种连接里面MTU有如下的默认值:

? 1500. 以太网Ethernet信息包最大值,一般的设备(系统)也是默认值。

? 1492. PPPoE 的最佳值

? 1472. 使用 ping 的最大值 (大于此值的信息包会先被分解)

? 1468. DHCP的最佳值

? 1430. VPN和PPTP 的最佳值

? 576. 拨号连接到ISP的标准值

设置时可以使用这些默认值,但是有些时候对方可能会改动MTU默认值,比如几年前我的ADSL线路的MTU值是1044 。如何获知MTU的值方法有多种,最简单的是直接询问下技术人员,让他告诉你,但有时这个方法行不通。可以自行测试一下MTU值,使用常用的ping命令,但是还要加上“-f ,-l size”两个参数。“-f ”表示你所发送的数据包不被路由器折开即使超过单个数据包的最大值;“-l size”表示设定发送数据包的大小。首先使用最大值来测试,以太网的用1500,ADSL的用1492 。这样可以减少几次测试。使用如下命令:

ping -f -l 1500 www.163.com

结果:FTP上传速度非常慢的原因之一—-MTU值的设定 - 任老石 - 任老石的博客

数据包大小为1500

ping之后出现“Packet needs to be fragmented but DF set”表明MTU值要比我们发送的数据包小,可以适当减少数据包的大小,使用如下命令:
ping -f -l 1460 www.163.com
结果:

FTP上传速度非常慢的原因之一—-MTU值的设定 - 任老石 - 任老石的博客

由此可见MTU值应该是在1460–1500之间了,其实这个结论是错误的,因为我们使用的数据包大小并不直接等于MTU值,在ping命令发送数据时还要在这个包的前面加上一个28字节的报头,最终发送出去的数据包的大小就是我们设定的测试值加上28 。一开始用1500,实际发送的数据包大小为1528,本地连接是100M的Ethernet,当然测试通不过了。我们应该使用1472来测试1500这个MTU最大值
ping -f -l 1472 www.163.com
结果:

FTP上传速度非常慢的原因之一—-MTU值的设定 - 任老石 - 任老石的博客

这样就可以测出现用的网络的MTU值,设定好路由器,就可以享受较好的网速了。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值