路由:Buffalo WZR-HP-AG300H
固件:OpenWRT CHAOS CALMER (Bleeding Edge, r44541)
我在linode达拉斯的一台主机上搭了ss,但是发现看油管360p都卡(用windows客户端)。客服让我做iperf测试。我先在路由器上(当时还在运行12.09)做了测试,结果如下:
Client connecting to xxx.xxx.xxx.xxx, TCP port 5001
[ 3] local yyy.yyy.yyy.yyy port 38902 connected with xxx.xxx.xxx.xxx port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.2 sec 16.1 MBytes 13.3 Mbits/sec
可以看到iperf跑满了带宽。
然后我在LAN上的一台PC(运行win 7)上也做了测试,得到如下结果:
Client connecting to xxx.xxx.xxx.xxx, TCP port 5001
[ 3] local 192.168.1.2 port 1610 connected with xxx.xxx.xxx.xxx port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.7 sec 3.38 MBytes 2.65 Mbits/sec
可以看到只跑满了1/5的带宽。
然后我在LAN上的另一台电脑(运行XP)和我的手机(运行Android)上做了同样的测试,也是只跑到1/5的带宽。
然后我又在路由器,两台PC和手机上测试了到linode主机的udp连接,均能跑满带宽。可见问题出在TCP连接上。这也能解释为什么我用openvpn看1080P一点也不卡。
然后我在openwrt上建了一个iperf服务器,在局域网的机器上做了测试。两台PC都能跑到200多Mbps。
然后我升级了openwrt到最新版,问题依旧。
我本以为是openwrt的问题,但是刚才我在国内的另一台主机上也建了一个iperf服务器。分别在路由器,两台PC上做TCP连接测试,结果都能跑满带宽。
那为什么在用国外主机做服务器时会出现路由器和LAN上设备TCP传输速度不一致的问题呢?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.