在3G / UMTS上令人困惑的TCP性能
我使用3G作为主要的互联网连接,而与此相关的TCP每天都变得越来越令人困惑。例如: 从kernel.org下载太快了: $wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.6.8.tar.bz2 几秒钟后增加到〜500kB / s! 某些服务器的运行速度非常慢,例如www.graphic-pc.com:同样,用wget下载大文件的速度约为30kB / s,一瞬间,然后崩溃到5-10k,甚至更糟。 Web浏览是不错的,但是有些不可靠。随机地,页面将花费很长时间才能加载甚至无法加载,但是重新加载几乎可以立即成功。 现在,偶然地,我开始在3G连接之上使用基于UDP的OpenVPN,而OMG突然之间一切都变得非常快!相同的www.graphic-pc.com现在以100-200kB / s的速度拍摄! 这里发生了什么 ??? 为什么使用VPN会比没有使用VPN更好呢? 当kernel.org飞行时,为什么graphic-pc.com会爬行?与我的tcp堆栈(或服务器)有关,或介于两者之间的一些越野车? 笔记: 安装程序是运行Ubuntu Lucid的笔记本电脑和华为3G软件狗(直接pppd连接)。 我几乎可以在一天中的任何时间重现此图像,而且我也不动,所以显然不是手机环境或网络拥塞。(尽管没有VPN的kernel.org有时在晚上会变得更糟,大约60kB-但是使用VPN还是500kB!) 对于2),wireshark显示重发的数据包,重复确认包,有时甚至乱序。 我尝试使用不同的/ proc / sys / net / ipv4参数(tcp_rmem,window_scaling,tcp_congestion ...)似乎没有什么不同。 更新: 在Windows 7(无VPN)下进行了尝试,并得到了一些有趣的结果: tcp settings : default tcp_optimizer kernel.org : 10 kB/s 20 kB/s graphic-pc.com: 8 kB/s 70 …