我有一个运行最新版OpenwRT的Ubiquity RouterStation Pro。
通过电线直接连接到路由器或通过交换机,无论是我的本地网络还是Internet,我都能获得预期的速度。到本地网络的千兆位,到Internet的速度约为1.2兆字节/秒。
通过无线G连接进行连接,我得到了本地服务器所期望的速度,大约是3兆字节/秒(当然,它可能会更好,但还不错)。
但是,当我使用与上述完全相同的无线连接并从Internet下载某些内容时,我的最大速度约为30-60 KB /秒。使用ping时,没有明显的数据包丢失。
上面的速度测试是通过通过http或ssh(通过scp和rsync)下载文件进行的。但是,使用工具iperf进行网络性能测试,我可以获得在任何端口上进行任何连接的完整Internet速度,甚至可以通过无线进行。
我真的很困惑。有什么帮助吗?
编辑
经过一番思考之后,我认为问题可能与数据包大小有关(我之前在其他网络上也看到过类似的情况)。为了测试这一点,我使用了ping -f -c 500 -s $SIZE
(即:发送各种大小的ping)。小于约220的数据包大小时,ping的丢弃率几乎为0%。在此之上,丢弃率迅速攀升,达到512字节大小的30%。
使用此数据,我修改了便携式计算机上的路由表,将MSS设置为220,据我了解,这将TCP / IP数据包的大小限制为大约该大小。然后,我进行了速度测试,得到600-700KB / s。好多了!我将与有线连接相比速度降低归因于具有如此可怜的数据包大小。
我不认为这是固定的,而只是解决方法。我仍然想了解为什么会发生这种情况,以及如何解决它。