我有一台运行最新版本的 OpenwRT 的 Ubiquity RouterStation Pro。
通过有线方式直接连接到路由器或通过交换机,我得到的网速完全符合我的预期,无论是本地网络还是互联网。本地网络为千兆位,互联网为约 1.2 兆字节/秒。
通过无线 G 连接,我获得的速度与我期望的本地服务器速度完全一致,约为 3 兆字节/秒(当然,它可以更好,但还不错)。
但是,当我使用与上述完全相同的无线连接并从互联网上下载某些内容时,我的最大速度约为 30-60 千字节/秒。使用 ping 时没有明显的数据包丢失。
上述速度测试是通过 http 或 ssh(通过 scp 和 rsync)下载文件进行的。但是,使用进行网络性能测试的工具 iperf,我可以在任何端口上的任何连接(甚至通过无线)获得完整的互联网速度。
我真的很困惑。有什么可以帮忙的吗?
编辑
经过一番思考,我认为问题可能与数据包大小有关(我之前在另一个网络上看到过类似情况)。为了测试这一点,我使用了ping -f -c 500 -s $SIZE
,(即:发送各种大小的 ping)。当数据包大小低于约 220 时,ping 的丢包率几乎为 0%。当数据包大小高于 220 时,丢包率迅速上升,在大小为 512 字节时达到 30%。
利用这些数据,我修改了笔记本电脑上的路由表,将 MSS 设置为 220,据我所知,这会将 TCP/IP 数据包的大小限制在该大小左右。然后我进行了速度测试,结果为 600-700KB/s。好多了!我认为与有线连接相比,速度下降是因为数据包大小太小了。
我不认为这个问题已经解决,而只是一种解决方法。我仍然想知道为什么会发生这种情况,以及如何解决它。
答案1
我猜你正面临无线干扰的问题,因此降低数据包长度可以最大限度地减少丢失数据包造成的损害以及重新发送数据包所需的时间。
如果问题出在您家外面的干扰,您可以使用无线网络检测器来检测您周围的网络和使用的信道。一些这样的产品是进网或者命运。然后,您可以选择一个不会与邻居发生冲突的频道。如果可能的话,应该优先选择频道 11,因为它是最强的。
您家或邻居家的大型家用电器(如洗碗机)运行时也可能造成干扰。这仅适用于有效网络速度波动的情况。
无线路由器的放置位置非常重要。应将其放置在远离金属或电气元件和地板的位置。您可以尝试放置它的各种位置,看看这是否有任何效果。使用它的计算机不应放置得太远或在其范围的末端。
另一种可能是您家里的某个无线网卡出现故障,导致整个网络混乱。它可能用数据包“轰炸”网络并导致冲突。尝试以可控的方式打开计算机并测试网络速度(通过拔掉电源线关闭计算机)。
最后,您的无线路由器可能有问题。尝试使用另一个路由器进行测试。
答案2
听起来像是流量整形问题。请尝试执行以下操作:
- 您是否安装了 qos-scripts?
如果不知道,请检查文件/etc/config/qos
并查看是否有针对无线接口的特定规则。 - 你使用的 OpenWRT 版本是哪个?最新主干、最新稳定版本、最新 LTS?如果是最新主干,请尝试回滚到最新稳定版本。