我正在用一台配有“Meteor Lake”处理器的新机器来替换我的笔记本电脑。
我最初通过以太网将该机器与其前身连接,以获得最大的文件传输速度。在这样做的时候,我注意到新机器上的 Wi-Fi 链接只能以 26 Mbps 的速度连接,而另一台机器上的链接速度约为 580 Mbps(两台机器并排放置)。
但还没等我担心这个问题,我就看到新机器的连接速度快了很多。所以我以为问题解决了。但重启后,机器重新连接到 Wi-Fi 的速度为 26 Mbps。为了看看情况有多糟糕,我在一个网站上做了一个速度测试……结果为 340 Mbps!查看 Wi-Fi 链接速度时,我发现它已经跳升至 390 Mbps。我可以随意重现这种情况。初始连接始终为 26 Mbps,但任何严重使用网络都会降低速度。
那么,这是否是一种自适应方案,也许可以节省能源?
运行搭载 Ubuntu 24.04 的 Lenovo P1 Gen7
2
最佳答案
2
自 802.11g 以来,几乎所有的 Wi-Fi 实现都使用基于各种标准的动态速率选择——这是必要的,因为一旦有人从您身边走过并吸收部分信号等,链路条件就会发生变化。
例如,在最基本的层面上,NIC 会通过切换到更高的速率(并使用重传计数器来决定是否坚持新模式)来定期探测链路质量;搜索Minstrel algorithm
一个广泛使用的例子。
接入点在向各个站传输时也做同样的事情,因此速率通常在两个方向上是不对称的。
现代 Wi-Fi 连接可能具有更多功能,包括动态通道宽度选择(例如,如果 AP 提供“80 MHz”,则实际上是四个 20 MHz 宽通道的组合,并且设备可能坚持仅使用基本 20 MHz 模式,或者它可能使用完整的 80 MHz 模式)——查看“MCS 索引”表——以及其他我不知道的东西。(我听说 802.11ax 有一种称为“穿孔”的东西,它是上述通道宽度选择的更动态的扩展。)
|
Wi-Fi 硬件设计始终会针对每次传输的具体情况自动选择最佳的PHY 速率(物理信令速率)。
这意味着它可以从一个数据包变为另一个数据包,也意味着您的 AP(无线路由器)在将最新数据包传输到您的笔记本电脑时使用的速率通常与您的笔记本电脑在将其最新数据包传输到 AP 时使用的速率不同;也就是说,不能保证您的“来自 AP”PHY 速率与“到 AP”PHY 速率相同。两台设备之间可以使用的一组可能速率是在笔记本电脑与 AP 关联时确定的,但任一设备都可以单方面且无需事先通知就从该组中选择任何速率来进行任何给定的传输。
标准并未指定速率选择算法。它留作实现细节。虽然我们中的一些人可以讲述我们熟悉的产品专有实现细节的趣闻轶事,但我不知道有任何可靠的经验数据来源可以告诉我们“通常”会做什么。
正如人们所料,优化吞吐量通常是速率选择算法中最重要的因素,但设计几乎总是将节能考虑在内。
请注意,由于 PHY 速率可能会因数据包的不同而波动,并且会因方向的不同而波动,因此没有“当前链路速度”的明确概念:
- 这是笔记本电脑传输的最后一个数据包的 PHY 速率吗?
- 这是笔记本电脑收到的最后一个数据包的 PHY 速率吗?
- 这是这两个的平均值吗?
- 它是单向还是双向最后n 个数据包的平均值?
- 或者也许它应该只报告在关联时确定的集合中的最大 PHY 速率?
没有明确的定义,因此如果某个芯片组或操作系统声称在某处报告“当前链接速度”,则不清楚它到底报告了什么。我会说“检查您的产品文档”,但大多数供应商都懒得记录这么详细的事情。
还要注意,AP 传输的多播/广播数据包的 PHY 速率通常比单播数据包低得多。因此,根据您的实现如何计算“当前链路速度”的概念,如果您从 AP 收到的最后一个数据包(或者您收到的最后n 个数据包中的许多数据包)是多播或广播,则它看起来可能真的很低,如果链路大部分时间处于空闲状态,情况可能就是如此。
这就是无需了解 AP 和笔记本电脑中 Wi-Fi 实现的专有实现细节即可可靠地陈述的全部内容。
2
-
2OP 运行 Ubuntu,其中内核分别报告 rx 和 tx 速率;NetworkManager 仅在 GUI 中显示 NL80211_STA_INFO_TX_BITRATE 字段,而不对 RX_BITRATE 执行任何操作。对于当前的 Intel NIC,它带有“FW 报告的最后速率”,无论它是什么意思(驱动程序中有一条注释说“如果我们尚未收敛(流量太少)或探索其他调制,则根据 rssi 和 STA 上限报告最佳速率”,这可能是 OP 首先看到的)。
– -
1@grawity_u1686 该评论应该是你的答案,因为这是迄今为止最好的解释。
–
|
–
–
|