下载本文的PDF版本 PDF

关于带宽,你一窍不通

如果你是一家 ISP,并且所有客户都讨厌你,请振作起来。现在这是一个可以解决的问题。

David Collier-Brown

想象一下,你是一家拥有大量居家办公员工的公司,他们都讨厌当地的 ISP。视频会议是最糟糕的:人们听不清对方的声音,他们的声音会随机变得像达斯·维达,而且他们偶尔会从对话中消失。

或者你是一家小型 ISP,你的客户说他们讨厌你。

当你与你的 ISP 或供应商交谈时,他们会说:“购买更多带宽。”当你的客户向他们的 ISP 投诉时,他们也会得到同样的答复。但是,当你测量一天中最繁忙时段你使用的带宽时,只有 30% 或 50%。

从某种意义上说,供应商是正确的:带宽确实是连接你和你的员工或客户之间的“管道直径”。如果它太小,你真的被拖慢速度。

但是,一旦你没有填满管道,当你只使用 50% 的带宽时,你需要查看软件,看看是什么阻止你的数据包在合理的时间内到达。例如,我曾经测量过从我在郊区的家庭办公室向多伦多市中心发送“ping”的时间。到达市中心并返回需要 0.13 秒。这与大约 8,000 公里外的土耳其伊斯坦布尔的正常 ping 时间相同 (https://wondernetwork.com/pings/Toronto/Istanbul)。

这是一个纯粹的软件问题,它被称为高延迟

 

带宽是容量,延迟是速度

如果你将互联网想象成一系列管道,那么带宽就是你可以通过管道发送多少数据。它是图 1 中的直径。

You Dont Know Jack about Bandwidth

如果你购买了一条狭窄的小管道,你肯定会遇到糟糕的性能:你将无法在任何合理的时间内将所有数据通过它。你将使自己陷入困境。

如果你购买了一条足够容纳你的数据的管道,那就没问题了。数据将直接流入管道,而无需等待先前的字节挤入管道。

但是,如果你购买了一条直径是你需要的两倍的管道,那也没用。你的数据仍然会毫无延迟地流入其中,但速度不会更快。它不会超过光速。互联网上没有“曲速”可用。

 

但为什么会慢呢?

延迟是数据出现的速度(或慢速)。你可以拥有的最小延迟等于管道的长度除以光速。

考虑一个外发的 Zoom 通话。它是一堆图片和声音的短片段,经过良好压缩,每个片段之间有一段时间间隔,如图 2 所示。

You Dont Know Jack about Bandwidth

每个音频和视频小切片都单独穿过管道,为其他切片留出空间。要使 Zoom 通话失败,你需要同时存在大量其他流量,足以填满管道:如果你在家工作,这可能意味着你的家人正在流式传输电影或从手机上传照片。

这会导致争用,如图 3 所示,照片(顶部的长切片)抢在 Zoom 小切片之前挤入管道。

You Dont Know Jack about Bandwidth

如果你的路由器软件很糟糕,Zoom 小切片将不得不坐在队列(缓冲区)中等待照片完成。由于 Zoom 小切片被延迟,Zoom 通话中的其他人可能会看到你卡顿或口吃。有时你的声音听起来像从井底喊叫。在糟糕的日子里,你甚至会掉线。

 

糟糕的路由器软件

在家庭中,问题出在家庭路由器上的软件中,该路由器连接到更广泛的互联网。这个错误被称为缓冲区膨胀1,Phillipa Harrison 在“缓冲区膨胀的路由器?如何预防和提高性能”2 中对此进行了描述。在这个错误中,发送方会缓冲照片,并在网络可用时立即全部发送。在执行此操作时,它无法发送视频会议切片,因此它会延迟它们,并在照片完成后才发送它们。

这对于计算机来说可能没问题,但讨论事情的人类需要他们的语言按正确的顺序到来,没有延迟或中断。照片应与视频会议公平地共享网络,而不是窃取所有带宽。

 

优秀的路由器软件

在最理想的世界中,互联网上的每个路由器都将运行具有最新更改的软件,以最大限度地减少延迟,通常是 fq_codel 或 CAKE。不幸的是,并非每个人都能像他们希望的那样频繁地更新,路由器制造商通常在重写其专有操作系统以包含最新修复程序方面落后多年。有些甚至回到了 PIE,CAKE 的一个古老的前身。

家用调制解调器/路由器/Wi-Fi 盒子的情况更糟。它们被制造出来、使用,并在报废时被丢弃。它们永远不会得到更新。最终结果是互联网上存在大量旧的、有缺陷的软件,以及大量数据包坐在队列中,百无聊赖地等待被发送的机会。

个人通过在他们的家庭和他们的 ISP 的调制解调器/路由器/Wi-Fi 盒子之间添加一个更智能的路由器来控制这个问题。智能路由器使数据尽可能快地流动,当您家庭网络中的任何机器发送过多数据时,会发送旧软件可以理解的“我正在发生争用”信号。

 

修复 ISP

在家中添加设备无法扩展。如果你是一家公司,你买不起为你每位员工购买一个新的家用路由器。如果你是一家 ISP,你不能仅仅拆除昂贵的骨干路由器来安装更新的路由器。

答案不是拆除路由器,而是采用家庭中使用的技术。如果你的客户讨厌你,请在你的路由器下游,在通往客户的路径上放置一台具有现代软件的设备。

这种设备专门用于处理缓冲、膨胀和争用。这也降低了价格,因为一台旧的单路 Xeon,配备八个核心,可以处理 10 Gbps 的流量

ISP 设备的软件名称是 LibreQoS (https://libreqos.io/),其中 QoS 的意思是 服务质量。它来自同一个团队,该团队率先开发了 fq_codel 和 CAKE 软件,解决了家庭路由器端的问题。

他们从互联网端看待问题,并着手帮助 ISP 和其他无法轻易购买更多带宽,而是必须更好地利用现有带宽的公司。

他们的解决方案是将一套完整的修复程序应用于 IP 网络,其中包括

• 公平队列

• 带宽整形

• 主动队列管理

• 区分服务处理

• ACK 过滤

• 网络拓扑感知

• 并行处理

• 绕过 Linux 网桥开销

• 内置往返时间测量以显示改进

所有这些修复程序协同工作,以找到不会使系统中最慢部分过载的最高速率。这意味着数据包不必像在家中等待图像上传的视频会议数据包那样,在 ISP 的队列中等待被发送的机会。

第一个修复程序是来自 fq_codel 的公平队列和延迟控制。

然后 CAKE 添加了主动队列管理。AQM 执行与普通 TCP 相同的带宽探测,但添加了带内拥塞信号,以便尽快检测到拥塞。传输速率缓慢提高,直到收到拥塞信号,然后降低。一旦降低,它又开始增加,不断搜索它可以在不导致队列积压的情况下使用的最高速率。使用的算法是 fq_codel 的扩展。

公平性组件可防止特定流被其他流(例如我们的照片示例)或主机启动大量流以试图窃取尽可能多的网络带宽而剥夺资源。

区分服务是一种将数据包标记为交互式(高优先级)到批量(低优先级)的机制,因此可以识别批量文件传输并防止其延迟视频会议。与此相关但不属于区分服务本身的一部分是一种检测和正确优先化稀疏流的算法,因此它们不会被剥夺资源。

ACK 过滤完全删除仅携带已接收数据确认的数据包,只要有足够多的非空数据包以相同方式流动以接管该任务。

接下来,我们来谈谈 LibreQoS 本身,它添加了特定于在网络 ISP 端运行的组件。第一个组件是网络拓扑树,因为 ISP 将有许多通往其客户的路由,每个路由都有自己的最大速率,必须由其自身的流整形代码实例发现和处理。

在此之上是一个分层令牌桶分类器,它将传入的数据包分类到正确的 CPU 核心和正确的“整形器”规则。CAKE 使用的标准 Linux 整形器是单线程的,并且在高于 6 Gbps 时容易耗尽容量。LibreQoS 整形器仅受 CPU 核心和网卡数量和速度的限制。

LibreQoS 1.4 引入了一种新的快速以太网桥,基于 XDP (eXpress Data Path) 和 eBPF (extended Berkeley Packet Filter),以避免在内核中的 ksoftirqd 线程上形成瓶颈。

当他们完成性能工作后,LibreQoS 团队添加了软件来测量和管理改进:一个新的低开销往返时间传感器、一个数据包捕获系统以及一套实时程序,用于测量和可视化大量路由和客户的性能。

这是一项成熟的技术,可在普通设备上运行,例如 ISP 可能已经拥有的设备。作为一个具体的例子,一家向其客户提供 1Gb/s 服务计划且总吞吐量高达 10Gb/s 的 ISP 将需要一个 CPU,例如具有八个内核的 Intel Xeon E-2388G、16 GB 内存和一个双端口 10G 以太网卡——这是一台非常普通的 2021 年的 1u 尺寸机器。

现在,性能不佳的公司可以要求其 ISP 修复它,并指出已经使用过它的软件和人员。如果 ISP 已经知道它存在性能投诉,它可以主动实施 LibreQoS 来抢先解决问题。

 

证明

如果你已经使用 LibreQoS 解决了问题,你可以实时看到修复的发生。在图 4 中,一位客户通过 100Mbps 链路同时下载暗黑破坏神 2 和暗黑破坏神 4。链路在吞吐量图中显示为完全饱和,但延迟很小:1.7 毫秒,峰值达到 3.1 毫秒。公平队列将延迟保持在人类或 Zoom 可以检测到的水平以下。

You Dont Know Jack about Bandwidth

如果你是那些拥有无膨胀路由器的幸运儿之一,也可以从家庭办公室进行测量。使用 Waveform 互联网速度测试,网址为 https://www.waveform.com/tools/bufferbloat,我对本地 ISP 的未经处理的连接在其成绩单上获得了“D”(图 5):不适合视频游戏、视频会议,甚至仅音频的 VoIP 通话。而且,在我将无膨胀家用路由器放在 ISP 的设备之前,它的表现非常糟糕。

You Dont Know Jack about Bandwidth

相反,具有无膨胀路由器的相同 150/15 Mbps 连接获得了 A+ 等级、延迟较小的速度报告,并且在实践中多年来一直提供出色的视频会议性能。

 

结论

当你的员工或客户说他们的互联网性能很糟糕时,带宽可能不是问题所在。一旦他们拥有 50 到 100 Mbps 范围内的带宽,问题就是延迟——ISP 的路由器处理他们的流量需要多长时间。

如果你是一家 ISP,并且所有客户都讨厌你,请振作起来。现在这是一个可以解决的问题,这要归功于一群敬业的人,他们追踪到这个问题,解决了它,然后在家用路由器中验证了他们的解决方案。

 

参考文献

1. Gettys, J., Nichols, K. 2011. Bufferbloat: dark buffers in the Internet. acmqueue 9(11); https://queue.org.cn/detail.cfm?id=2071893.

2. Harrison, P. 2023. Buffer-bloated router? How to prevent it and improve performance. Communications of the 66(6), 73–77; https://cacm.acm.org/magazines/2023/6/273224-buffer-bloated-router-how-to-prevent-it-and-improve-performance/fulltext.

3. Høiland-Jørgensen, T. 2018. Bufferbloat and beyond: removing performance barriers in real-world networks. Doctoral thesis. Karlstad University Studies; https://www.diva-portal.org/smash/get/diva2:1251705/FULLTEXT01.pdf.

 

David Collier-Brown 是一位作家和系统程序员,曾就职于 Sun Microsystems,目前主要在多伦多的家中从事性能和容量方面的工作。

版权所有 © 2024 归所有者/作者所有。出版权已授权给 。

acmqueue

最初发表于 Queue 第 22 卷,第 3 期
数字图书馆 中评论本文





更多相关文章

Geoffrey H. Cooper - 使用 FDO 和不可信安装程序模型的设备入职
设备的自动入职是处理正在安装的越来越多的“边缘”和物联网设备的重要技术。设备的入职与大多数设备管理功能不同,因为设备的信任从工厂和供应链转移到目标应用程序。为了加快自动入职流程,必须在设备中正式确定供应链中的信任关系,以实现自动化过渡。


Brian Eaton, Jeff Stewart, Jon Tedesco, N. Cihan Tas - 通过关键路径追踪进行分布式延迟分析
低延迟是许多 Google 应用程序(如搜索)的重要功能,延迟分析工具在维持大规模低延迟方面起着至关重要的作用。对于复杂的分布式系统,其中包括功能和数据不断发展的服务,将总体延迟保持在最低限度是一项具有挑战性的任务。在大型、真实的分布式系统中,现有的工具(如 RPC 遥测、CPU 分析和分布式追踪)对于理解整个系统的子组件很有价值,但在实践中不足以执行端到端延迟分析。


David Crawshaw - 一切 VPN 又焕然一新
VPN(虚拟专用网络)已有 24 年历史。这个概念是为与我们今天所知的互联网截然不同的互联网而创建的。随着互联网的发展和变化,VPN 用户和应用程序也随之发展。VPN 在 2000 年代的互联网中经历了尴尬的青春期,与其他广泛流行的抽象概念互动不良。在过去的十年中,互联网再次发生了变化,这个新的互联网为 VPN 提供了新的用途。一种全新的协议 WireGuard 的开发,为构建这些新的 VPN 提供了技术基础。


Yonatan Sompolinsky, Aviv Zohar - 比特币的潜在激励机制
激励机制对于比特币协议的安全至关重要,并有效地驱动其日常运行。矿工们竭尽全力最大化他们的收入,并且经常找到创造性的方法来实现这一目标,有时这与协议相悖。加密货币协议应建立在更强大的激励基础上。还有许多领域有待改进,从挖矿奖励的基础知识及其如何与共识机制互动,到矿池中的奖励,一直到交易费用市场本身。





© 保留所有权利。

© . All rights reserved.