加路由器后网络上传速度变慢怎么解决
  • 作者:佚名
  • 时间:2015-08-05

 

 

      自从加了路由器后上传速度变得非常慢了,以前直接拨号上网的时候就很快的。最近突然发现自己电脑的FTP上传变得非常奇怪,使用FTP时4kb的文件都无法正常上传到服务器上,flashfxp总是显示从最高速度传输慢慢的将为 0.0kb/s,然后很久才有反应开始缓慢的上传下一个文件。同时其他涉及到向网络发送数据的操作如上传文件,提交表单数据等都变得异常缓慢。

       这是怎么回事,我开始逐一排查问题:
       首先怀疑的ftp软件的问题,更换了多款ftp软件测试后,排除了软件问题。
       其次怀疑本机、路由器的防火墙问题,关闭后,问题依旧。
       最后怀疑到路由的MTU值的设定上了,因为出现问题的都是发送数据操作,而本机网络接受数据的速度一切正常。
      登陆到我的TL-Link路由器,在网络参数-WAN口设置-高级设置 中 查到 路由器设定的MTU值为1492

打开命令行 输入 ping -f -l 1480 xxbin.com 测试是否能发送长度为1480的数据到服务器,结果显示Packet needs to be fragmented but DF set,意味发送1480的数据包需要拆开来发送。


看来我这电信的MTU值要低于1480,逐降低MTU值继续使用ping 命令测试,一番测试后发现只要MTU小于等于1380就能ping通服务器了。再次登陆到路由器,修改MTU为1380后重新链接ADSL,问题解决!

 

 

当然要测试MTU什么值最合适要在直接PPOE拨号后测试,测试最大能ping通值之后再连接路由器修改为这个值+28就行了。

 

昨天重新上传了视频,白天在办公室上传准备有半天的时间就搞定,结果上传速度慢到无法让人接受,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
结果:

 

数据包大小为1500

 

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

 

数据包大小为1460

 

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

 

数据包大小为1472

 

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

 

相关推荐