让互联网感觉更快的悄悄计划
工程师和大公司正在推动一种名为L4S的技术,他们称这种技术可以让网络速度大幅提升。但是怎么做到的呢?
几个月前,我将我的互联网速度降级,从900Mbps的套餐降到了200Mbps。现在,我发现有时网站加载起来要花很长时间,高清的YouTube视频在我跳跃观看时需要停下来缓冲,视频通话也会出现烦人的卡顿。
换句话说,几乎什么都没变。即使在我拥有接近千兆下载速度的服务时,我也遇到过完全相同的问题,我可能不是唯一一个。我相信很多人也有过这样的经历,当一个“速度测试”显示你的互联网应该能同时播放数十个4K Netflix流时,你会因加载缓慢的网站而发出咒骂,更加困惑。那是怎么回事呢?
像任何问题一样,有许多因素在起作用。但一个主要因素是延迟,或者说你的设备发送数据到服务器并接收数据所需的时间——如果你的数据包(在网络上传输的小数据包)卡在某个地方,你拥有多少带宽都没关系。尽管人们对延迟的工作原理有一些了解,这要归功于流行的速度测试,包括“ping”指标,但衡量它的常见方法并没有总是提供一个完整的图片。
好消息是,几乎消除延迟的计划已经出台,像苹果、谷歌、康卡斯特、特许经营权、英伟达、瓦尔维、诺基亚、爱立信、T-Mobile母公司德国电信等大公司已经表现出兴趣。这是一个名为L4S的新互联网标准,已于一月份最终确定并发布,它可能会大大减少我们等待网页或流加载的时间,并减少视频通话中的故障。它还可以帮助改变我们对互联网速度的看法,并帮助开发人员创建在当前互联网现实中不可能实现的应用程序。
不过在谈论L4S之前,我们应该先打下一些基础。
为什么我的互联网这么慢?
有很多潜在原因。互联网是一系列管道,连接您的设备和某个服务器(通常是多个服务器)的庞大网络,其中包括互连的路由器、交换机、光纤等。如果在这条路径的任何一个点出现瓶颈,您的上网体验就会受到影响。而且可能存在很多潜在瓶颈 —— 您想观看的视频所在的服务器可能只能提供有限的上传容量,互联网基础设施的重要部分可能出现故障,导致数据需要更长的距离才能到达您的设备,您的电脑可能难以处理数据等等。
真正的关键在于,链条中最低容量的环节决定了可能性的极限。即使您通过8Gbps的连接连接到最快的服务器,如果您的路由器一次只能处理10Mbps的数据,那么您的速度也会受到限制。而且,每一次延迟都会累积,所以如果您的电脑增加了20毫秒的延迟,您的路由器增加了50毫秒的延迟,您最终至少要等待70毫秒才能发生什么事情。(这些只是完全随意的例子,但您明白我的意思。)
近年来,网络工程师和研究人员开始对网络设备不会被过载的流量管理系统提出了担忧,因为这些系统可能实际上会让事情变得更慢。问题的一部分在于所谓的“缓冲区膨胀”。
这听起来像是《最后生还者》里的僵尸敌人,对吧?但要理解缓冲膨胀到底是什么,我们首先得了解缓冲区是什么。就像我们已经提到的那样,网络通信就像一场舞蹈;网络的每个部分(比如交换机、路由器、调制解调器等)都有自己能处理多少数据的限制。但因为连接到网络的设备以及它们要处理的流量不断变化,我们的手机或电脑根本不知道一次性发送多少数据才合适。
为了弄清楚这一点,它们通常会以一定的速率开始发送数据。如果一切顺利,它们会再次增加速率,直到出现问题。传统上,出现问题通常是数据包被丢弃;某个路由器在某个地方接收到的数据比它发送出去的速度更快,于是就说:“哦,不好了,我现在处理不了这些数据”,然后就把数据丢掉。这感觉真是太有共鸣了。
虽然丢包通常不会导致数据丢失——我们确保计算机足够聪明,如果需要的话就重新发送那些数据包——但这绝对不是理想的情况。因此,发送方收到数据包被丢弃的消息后,会暂时降低数据速率,然后立即加速,以防过去的几毫秒内出现了变化。
这是因为有时导致数据包丢失的数据过载只是暂时的;也许你的网络中有人正试图在Discord上发送一张图片,如果你的路由器能够坚持下去,直到图片传输完成,你就可以继续进行视频通话而不会出现问题。这也是为什么许多网络设备都内置了缓冲区的原因之一。如果某个设备一次性接收了太多数据包,它可以暂时存储这些数据包,将它们放入队列以便发送。这样可以让系统处理大量数据并平滑处理可能会引起问题的突发流量。
我不明白——这听起来像是一件好事
是的!但一些人担心的问题是,为了确保一切顺利,缓冲区变得非常大。这意味着数据包可能需要在(有时甚至是字面上的)等待一段时间才能继续它们的旅程。对于某些类型的流量来说,这没什么大不了的;YouTube 和 Netflix 在您的设备上也有缓冲区,因此您不需要立即获得下一部分视频。但如果您正在进行视频通话或使用类似 GeForce Now 的游戏流媒体服务,缓冲区(或者在链路中的多个缓冲区)引入的延迟实际上可能会成为一个真正的问题。

这张来自诺基亚贝尔实验室演示的可视化图表相当好地展示了我们当前所面临的问题。
目前有一些方法来处理这个问题,过去也有相当多的尝试编写算法来控制拥塞,同时考虑吞吐量(或者数据传输量)和更低的延迟。但是其中很多方法并不太适用于当前广泛使用的拥塞控制系统,这意味着在某些互联网部分推行这些方法可能会对其他部分造成伤害。
我购买了千兆宽带,为什么还会有延迟问题?
这是互联网服务提供商(ISP)营销的一个技巧。当用户说他们想要“更快”的互联网时,他们的意思是希望从他们提出请求到得到回应的时间更短。然而,互联网提供商出售的是连接容量:你一次能吸收多少数据。
比特与字节
谈论下载文件所需的时间会提出另一个与互联网服务营销方式有关的问题。通常,我们会以字节为单位来考虑文件大小 — 一首歌是10兆字节,一部电影是25吉字节。但是互联网服务提供商以比特来评估连接速度。如果你没有意识到这个区别,你可能会以为一秒钟提供1吉比特的服务计划可以让你在25秒内下载一部电影。然而,比特比字节小8倍 — 1吉比特(Gb)相当于125兆字节(MB),或者0.125吉字节(GB)。所以假设条件完美,下载这部电影将需要超过三分钟的时间。
(顺便说一句,如果你意识到小写的b和大写的B是它们缩写形式中区分这两个单位的方法,那就给自己颁个奖吧。)
曾经,增加带宽确实能减少你等待的时间。如果你从一个完全合法的网站下载一个九兆字节的MP3文件,用56千比特每秒的拨号上网,那将需要大约21分30秒。升级到一个飞快的10Mbps的连接,你应该在不到10秒的时间内就能下载完这首歌。
但随着吞吐量的增加,数据传输所需的时间变得越来越不明显;你不会注意到以100Mbps的速度下载一首歌需要0.72秒和以250Mbps的速度下载需要0.288秒之间的差异,尽管从技术上讲,后者的时间不到前者的一半。(此外,实际上,所需的时间比这还要长,因为下载一首歌的过程不仅仅涉及数据传输)。当你下载更大的文件时,数字就变得更重要了,但在某个点上你仍会遇到收益递减;以比你观看速度快30倍的速度流媒体播放一部4K电影和比你观看速度快5倍的速度播放之间的差异并不特别重要。
我们的互联网“速度”(通常人们所指的是吞吐量 —— 问题不是交付卡车的速度有多快,而是它在一次旅行中能携带多少货物)与我们体验高带宽连接的方式之间的脱节在简单的网页加载缓慢时变得明显;理论上,我们应该能以闪电般的速度加载文本、图像和JavaScript。然而,加载一个网页意味着我们的设备和服务器之间进行了数轮来回通信,因此延迟问题会被放大。数据包卡住25毫秒的情况在必须进行10次或20次的行程时会真正累积起来。我们通过互联网连接一次能移动的数据量不是瓶颈 —— 瓶颈是我们的数据包在设备之间来回传输所花费的时间。因此,增加带宽并不能帮上忙。
L4S是什么,它怎么样能让我的互联网更快呢?
L4S代表低延迟、低丢包、可扩展吞吐量,它的目标是尽量减少数据包在排队时无谓等待的时间,从而提高互联网速度。为了做到这一点,它致力于缩短延迟反馈循环;一旦拥塞开始发生,L4S能让你的设备几乎立即知道并开始采取措施来解决问题。通常情况下,这意味着稍微减少发送数据的量。
正如我们之前讨论过的,我们的设备不断加速、减速,并且不断重复这个过程,因为网络中处理的数据量不断变化。但是数据包丢失并不是一个好的信号,特别是在缓冲区也参与其中的情况下——你的设备直到发送了太多的数据才意识到发送了太多数据,这意味着它必须严格限制发送的数据量。

苹果在典型网络上测试了L4S,并看到往返传输时间大幅改善。稍后再详细介绍。图片:苹果
然而,L4S消除了问题开始和链中每个设备了解问题之间的延迟。这样可以更轻松地保持良好的数据吞吐量,而不会增加传输数据所需的时间。
好吧,但它是怎么做到的?这是魔法吗?
不,不是魔法,虽然技术上足够复杂,我有点希望它是魔法,因为那样我就可以不用管它了。如果你真的想了解(并且对网络有很多了解),你可以在互联网工程任务组的网站上阅读规范文件。
L4S让数据包告诉您的设备它们的传输情况如何。
对于其他人,我会尽量简化,但不会掩盖太多细节。 L4S标准向数据包添加了一个指示器,表明它们在从一个设备到另一个设备的传输过程中是否经历了拥塞。如果它们顺利通过,那就没有问题,什么也不会发生。但如果它们不得不在队列中等待的时间超过指定的时间,它们就会被标记为经历了拥塞。这样,设备可以立即开始调整以防止拥塞恶化,并有可能完全消除拥塞。这样可以尽可能快地保持数据流动,并消除可能导致其他系统延迟的中断和缓解措施。
我们需要L4S吗?
在减少互联网延迟方面,根据研发公司CableLabs的技术专家格雷格·怀特的说法,L4S或类似的东西是“非常必要的”。他表示:“这种缓冲延迟通常达到数百毫秒,甚至在某些情况下达到数千毫秒。对缓冲膨胀的早期修复将其降至数十毫秒,但L4S将其降至个位数毫秒。”
这显然有助于使人们在日常使用互联网时的体验更愉快。他说:“对于大多数人来说,网页浏览更多地受到往返时间的限制,而不是连接的容量。在大约每秒六到十兆位之后,延迟在确定网页加载速度方面起着更大的作用。”
然而,超低延迟对潜在的未来用例可能至关重要。我们已经谈到了游戏流媒体,如果延迟太大,可能会变得一团糟,但想象一下,如果你试图流式传输一个VR游戏,会发生什么。在这种情况下,太多的延迟可能不仅仅会使游戏玩起来不那么有趣,甚至可能会让你作呕。
L4S做不到什么?
嗯,它不能违反物理定律。数据只能以一定的速度传输,有时候必须走很长的路。举个例子,如果我试图与澳大利亚珀斯的某人进行视频通话,至少每个方向会有51毫秒的延迟——这就是光线从我居住地到那里直线传播所需要的时间,假设它是在真空中传播。实际上,会花费更长的时间。光在光纤电缆中传播速度稍慢一些,数据会沿着路径多走几步,因为实际上从我家到珀斯并没有直接的路径,据我所知。
这就是为什么大多数不涉及实时数据的服务会尝试将数据缓存到您所在的附近。如果您在Netflix或YouTube上观看热门内容,即使离这些公司的主要数据中心很远,很可能您也是从相对靠近您所在地的服务器获取数据。
L4S无法解决这种物理延迟。但它可以阻止很多额外的延迟被添加在其上。
那么我什么时候能用上它?
这是任何网络技术的重大问题,特别是在IPv6之后,这是一种升级的方式,使计算机在互联网上相互发现,已经有名声了十多年才得以部署。所以,这里有个坏消息:在大多数情况下,L4S还没有在野外使用。
然而,有一些重要的名字参与了它的开发。当我们与CableLabs的White交谈时,他说今天已经有大约20个支持它的有线调制解调器,并且像Comcast、Charter和Virgin Media这样的几家ISP已经参与了旨在测试预发布硬件和软件与L4S配合工作的活动。诺基亚、Vodafone和谷歌等公司也参加了,因此显然是有一些兴趣的。
在WWDC 2023上,苹果更是将L4S置于更大的聚光灯下,将其包含在iOS 16和macOS Ventura的测试版中。这段视频解释了,当开发人员使用一些现有的框架时,L4S支持会自动内置,而不需要更改任何代码。苹果正在逐步向一组随机用户推出L4S,而开发人员可以在测试中启用它。

如何在 iPhone 上启用 L4S 进行测试。图片:苹果
与 WWDC 大约同时,康卡斯特宣布与苹果、英伟达和Valve 合作进行了业界首个L4S现场试验。这样一来,内容提供商可以标记他们的流量(比如英伟达的GeForce Now 游戏流媒体),而在具有兼容硬件(如 Xfinity 10G Gateway XB7 / XB8、Arris S33 或 Netgear CM1000v2 网关)的试验市场中的客户可以立即体验到这一点。
根据康卡斯特的技术政策、产品和标准副总裁Jason Livingood的说法(也是首先让我们注意到 L4S 的人),“低延迟 DOCSIS(LLD)是 Xfinity 10G 网络的关键组成部分”,其中包括 L4S,并且该公司从试验中学到了很多东西,明年可以用来实施调整,为最终推出做准备。
要使用L4S,你需要一个支持它的操作系统、路由器和服务器
L4S之所以受到帮助的另一个因素是它与当今使用的拥塞控制系统广泛兼容。使用它和旧协议的流量可以共存,而不会使彼此的体验变得更糟,而且由于它不是全有或全无的命题,它可以逐步推出。这比要求每个人同时进行重大改变的修复更有可能发生。
不过,在你的下一个Zoom通话几乎没有延迟之前,还有很多工作要做。并不是每一个网络中转点都必须支持L4S才能产生影响,但通常是瓶颈的那些必须支持。 (White表示,在美国,这通常意味着你的Wi-Fi路由器或你的“接入网络”中的链接,也就是你用来连接到你的ISP以及你的ISP用来连接到其他人的设备。)另一端也很重要;你连接的服务器也必须支持它。
就个别应用程序而言,它们不应该需要太多更改来支持它,特别是如果它们将处理网络细节的任务交给了你设备的操作系统。 (尽管这假定你的操作系统也支持L4S,这对于每个人来说并不一定是真的。)然而,一些为了获得最大性能而编写自己网络代码的公司可能需要重写代码来支持L4S——尽管可能需要付出努力,但考虑到可能实现的收益,这很可能是值得的。
当然,我们已经看到了其他有前途的技术最终未能实现,而且在开发生命周期的早期阶段可能很难克服存在的先有鸡还是先有蛋的情况。当没有互联网流量使用它时,为什么网络运营商要费力支持L4S呢?如果没有网络运营商支持它,为什么生成该流量的应用程序和服务要费心实施它呢?
我怎么知道L4S会不会让我的互联网变得更好?
这个问题很好。最大的指标将是你在日常生活中已经经历了多少延迟。正如我之前提到的,有时ping被用来衡量延迟,但仅仅找到你的平均ping并不一定会告诉你整个故事。真正重要的是在你的网络被使用时你的ping是多少以及它会突然变高到多少。
幸运的是,一些速度测试应用程序开始展示这些数据。在2022年5月,Ookla在Speedtest中增加了对延迟的更真实的概述,这是最流行的用来测试你的互联网速度的工具之一。要查看它,进行一次测试,然后点击“详细结果”,看看“响应速度”部分。我做了一个测试,它告诉我在几乎没有其他活动时我的ping是17,这看起来相当不错。但在下载测试期间,当我实际使用我的连接时,它最高达到了855毫秒——几乎整整一秒,如果我等待网页加载的话会感觉像是一辈子,特别是如果在通信的往返过程中这种延迟被多次放大。
(我邀请任何用过拨号上网的人告诉我我是多么娇气,并怀念每个网站加载需要10秒的日子,无论是往上还是往下都是在雪地里。)
如果你在互联网上一次只做一件事,并且使用几乎没有其他人使用的网站,那么也许L4S在最终到来时对你来说不会有太大作用。但这并不是一个现实的场景。如果我们能把这项技术应用到越来越繁忙的家庭网络中,而我们使用这些网络去访问和其他人一样的网站,那么它有可能成为网络用户体验中的一场静悄悄的革命。一旦大多数人拥有了它,人们就可以开始开发一些在超低延迟下才能存在的应用程序。