|
编者按:
本篇是“METAVERSE读本”的第三部分,将报告网络的三个核心领域——带宽、延迟和可靠性——对大多数读者来说可能是最无趣的 Metaverse 组成部分。然而,网络层的约束和进化塑造了我们如何设计 Metaverse 的产品和服务,何时可以使用它们,以及我们可以做什么(还有什么永远无法做)。本文英文原文作者为Matthew Ball,由Max Zhou周喆吾(MetaApp)举行系列编译。
目录:
【Metaverse读本】第一篇:Metaverse的理论框架
【Metaverse读本第二篇】将世界链接到底需要什么硬件?
Bandwidth (带宽)
带宽通常被认为是“网速”,但它实际上是在一个单位时间内可以传输多少数据。Metaverse 对带宽的要求远高于大多数互联网应用和游戏。下文通过微软飞行模拟器(Microsoft Flight Simulator)管窥。
微软飞行模拟器是汗青上最现实、最广泛的消耗者仿真。它包括2万亿棵单独渲染的树木,15亿栋建筑,以及全球几乎每一条道路、山脉、城市和机场,所有这些看起来像“真实的东西”,是因为它们是基于对真实事物的高质量扫描。但为了做到这一点,微软飞行模拟器需要超过2.5PB的数据,也就是2,500,000GB。消耗级终端 (甚至大多数企业设备) 都无法存储此数量级的数据。
即使他们可以存储这么多数据,微软飞行模拟器 是一个实时服务,它根据现实世界的天气和空中路况实时更新(包括准确的风速和方向,温度,湿度及照明)。你可以字面意义上的飞到现实世界中的飓风和风暴中、或者跟踪 IRL 商业客机的准确飞行路线。
微软飞行模拟器 的工作原理是在本地设备上仅仅存储核心的数据(与任何主机游戏一样,游戏运行在本地,与Stadia等基于云的游戏流服务不同)。但当用户在线时,微软会根据需要向本地玩家的设备传输海量数据。但当用户在线时,微软就会根据需要向本地玩家的设备传输海量数据。就像一个真实世界的飞行员,当他越过一座山或绕过一个弯道时,新的光信息流进入他的视网膜,指明前面有什么。
许多玩家认为所有在线多人游戏都是这么做的。但是事实上,大多数游戏服务只发送位置数据,玩家输入数据(如射击,投掷炸弹),和总结级数据(例如,玩家留在大逃杀)给每个玩家。所有的资源和渲染数据已经在您的本地设备上,因此下载和安装的时间很长。【编者按:虽然占硬盘,但是玩起来网络用量没那么大】
通过按需加载渲染数据,游戏可以有更多的道具、资源和更大的环境多样性。按需加载,就可以不需要延迟下载和安装、批量更新和占用大量硬盘空间。因此,现在很多游戏都在拥抱这种本地存储信息加数据流的混合模式。这种模式对于面向Metaverse的平台尤为重要。以 Roblox 这样的 Metaverse 游戏为例,与 Mario Kart(马里奥赛车)或 Call of Duty(使命召唤)这样的传统游戏相比,它更需要(也更受益于)道具、资源和环境的多样性。
随着虚拟仿真的复杂性和重要性的增加,需要传输的数据量将增加。Roblox目前的许多 Prefabs(预制件)和资源是大量复用和微调的。因此,Roblox 只需要流式加载一些本地预制件的小 diff(“改变”)。但最终级的虚拟平台将需要几乎无限多的分列和创造(几乎无法被完美预测)。
数字孪生平台(也称为“镜像世界”),如 微软飞行模拟器,已经需要重新创建类似现实世界中几乎无限的多样性。这意味着发送的数据要比 “dark cloud here(这里的乌云)” 或 “一个95%像乌云C-95一样的乌云” 多得多。要发的数据要描述是一片像这样的乌云。最重要的是,这些数据是实时变化的。最后一点很关键。如果我们想要在一个大的、实时的、共享的、持久的虚拟环境中交互,我们将需要接收大量的云数据流。
此中一张图不是真的
把“真实世界”跟 Fortnite 的地图做对比。地球上的每一个人都在同一时间处于同样的“模拟”中,并且具有永世性。如果我砍倒一棵树,那棵树就无可挽回地消失了,对每个人来说都是如此。反过来,当你玩Fortnite时,只能通过固定的时间点版本的地图玩它。你在地图中所做的一切都只与少数用户共享,并且在重置前的一小段时间内共享。砍一棵树?它将在 1 - 25 分钟内被重置,它只曾经对其他99个用户暂时消失了。地图只有在 Epic Games 发出新版本时才会真正改变。如果 Epic Games 想把你的世界发送给其他人,他们会选择你的时间,无视其他玩家的,并在特定的时间点上固定你们的世界。对于许多虚拟体验来说,这是很好的。对于许多特定于虚拟世界的体验,它也会很好。但是这不够。一些重要的体验将需要在所有用户之间、在任何时候都具有持久性。
如果我们想要在不同的虚拟世界之间无缝跳转,云数据流也是必不可少的。Fortnite 的 Travis Scott 演唱会涉及到将玩家从游戏的核心地图无缝运送到从未见过的海洋深处,然后到从未见到过的行星,然后深入外太空。为了实现这一目标, Epic 公司在活动前几个小时就,通过标准的 Fortnite 补丁发送了这些用户的世界(当然,这意味着如果用户在活动开始前没有下载并安装更新,他们将无法参与此中)。然后,在每个片场演出的同时,每个玩家的设备在后台同步加载好下一个片场的资源。这个系统工作得很好,但它需要一个开发商知道用户下一个想去哪个世界。如果想让用户能选择广泛的目的地,你必须要么下载所有潜在的选项(这是不可能的),或云流他们。【编者按:刚刚重新看了《黑客帝国》,先知和建筑师的矛盾点就是人类是否可以有自主选择命运的权利】
除了增量的环境数据外,还要思量增量的玩家数据。当你今天在Fortnite上看到你的朋友时,Fortnite 服务器只需向你发送关于你的朋友在哪里以及他们想要做什么的信息;你的朋友们的动画 (例如装弹或坠落) 已经提前下载到你的设备上了,只需要收到指令的时候播放就好。
但是,当你的朋友想把实时动作被映射自己的化身上【编者按:参考楼上这个视频】,就不是发一个指令这么简单了 —— 系统要发送这个动作的详细描述信息。如果你想在这个游戏中观看视频文件,那么这也需要被投放到虚拟世界里。听到一群人的空间感音频?感觉到一个路人划过你的触觉体衣的肩膀?都一样是需要耗费大量网络传输的。
对于只需要位置和 io 数据的上一代网络游戏,很多玩家都已经在为带宽和网络卡顿而发愁了。Metaverse 只会加剧这些需求。好消息是,宽带普及率和带宽在全球范围内都在不断提高。《Metaverse读本》第四部 将详细讨论的算力也在改进,它可以通过预测下一步应该发生什么,来帮助平滑带宽有限的数据传输。
Latency(延迟)
网络层最大的也是最不被理解的挑战:延迟。延迟是指数据从一点传输到另一点并返回所需的时间(Rount trip time)。
与网络带宽和可靠性相比,延迟通常被认为是最不重要的KPI。这是因为大多数互联网流量是单向或异步的。在发送一条 WhatsApp 消息和接收一条已读回执之间,无论是 100 ms 照旧 200 ms ,甚至是 2 秒的延迟,都没有关系。如果你从点击个YouTube 的暂停按钮直到视频停止你需要 20 毫秒或 150 毫秒或 300 毫秒的时间,也没关系。看 Netflix 时,媒体的流通播放(不卡)比即刻播放视频更重要。为此,Netflix 会人为地延迟视频流的启动,这样你的设备就可以在你观看视频的那一刻前提前下载媒体视频。这样,如果你的网络出现了一两次问题,你就不会注意到了。
即使是同步和持久连接的视频调用,对延迟的容忍度也相对较高。视频是通话中最不重要的部分,因此音频作为最“轻便”的数据,如果网络出现问题,视频通话软件通常会优先处理音频。如果你的延迟暂时增加——甚至是几秒钟,而不是几毫秒 —— 软件可以通过提高积压音频的播放速度和快速编辑掉空白来提高用户体验。此外,参与者很容易克服延迟 —— 只需稍稍等待一下。
然而,最具沉浸感的 3A 在线多人游戏需要较低的延迟。这是因为延迟决定了一个玩家接收信息的时效性(例如,玩家在哪里,是否有人扔了手榴弹或踢了足球),以及他们的反应传递给其他玩家的速度。换句话说,延迟决定了你是赢照旧输,是杀敌照旧最后被击杀。这就是为什么大多数现代游戏均匀帧率比看视频要高 2~4倍。高帧率是竞技性游戏必备的。
与其他媒体相比,在游戏中人们对延迟的忍耐度非常低。下文会对比视频和电子游戏。
对于视频播放器来说,音画不同步有两个阈值。用户能注意到音画不同步,当且仅当声音提前播放超过45毫秒,或者延后播放超过125毫秒 (总共170毫秒的无感知阈值)。用户表示可接受的阈值甚至更宽,声音可以快 90毫秒 或慢 185毫秒 (总共 275毫秒 的可接受阈值)。对 Youtube 的视频暂停按钮,只有 200-250毫秒 之后看到没有响应,我们才会认为点击失败了。
反观 3A 游戏,狂热的玩家在 50毫秒 时会感到沮丧,即使是非游戏玩家在 110毫秒 时也会感到受挫。150毫秒延迟的游戏是不可玩的。Subspace发现,均匀每增加10毫秒的延迟,每周的游戏时长就会减少6%。这是一个极高的网络质量要求,而且是其他行业所不需要面对的。
思量到以上的参考值,让我们来对标一下全球网络均匀延迟。在美国,数据从一个城市发送到另一个和返回的均匀往返时间是 35 毫秒。许多城市间的配对(Round Trip Time/RTT)超过这一点,特别是高密度和强烈的需求高峰城市(如在晚上从旧金山连接纽约)。然后是“城市到用户”的时间,这是特别容易慢的部分。密集的城市、社区或公寓很容易网络拥挤。如果你是通过手机玩的,4G 技能现在均匀还要再加 40毫秒。如果你住在一个重要的城市中心以外,你的数据可能要再传输 100 英里,而且要在陈旧、维护不善的有线基础设施上传输。在全球范围内,城市之间的交付延迟中位数为 100 - 200 毫秒。
为了控制延迟,在线游戏行业已经开发了一些部分解决方案。然而,没有一个规模化得特别好。
例如,大多数高仿真多人游戏是只‘匹配’用户地理位置周围的服务器。通过最小化那些居住在美国东北部,或西欧,或东南亚的玩家名册,游戏开发商能够最大限度地在地理基础上减少延迟。
由于游戏是一种休闲活动,通常与1~3个朋友一起玩,这种集群效果就足够好了。毕竟,你不可能和几个时区之外的人一起玩游戏。而且你反正也不会真的在意你那些不认识的对手(通常连语言都不通)住在哪里。不过, Subspace 发现,在中东地区,大约四分之三的网络延迟落在可玩延迟水平之外;而在美国和欧洲,四分之一不可玩。这重要反映了宽带基础设施的不够普及。
多人在线游戏也使用“网络代码”解决方案,以确保同步和一致性,并保持玩家玩。基于延迟的网络代码将告诉玩家的设备(例如 PlayStation 5 )人为地延迟其呈现其所有者的输入,直到网速更慢的玩家(即他们的对手)的输入抵达。这会让那些肌肉记忆调成低延迟的玩家很恼火,但很管用。回滚网络代码更复杂。如果对手的输入被延迟,玩家的设备将根据其预期的情况举行。如果发现对手做了一些不一样的事情,设备会尝试解除进程中的动画,然后“正确”地重播它们。
这些解决方案适用于1v1游戏(如2D战斗机)、比较小的延迟(如±40ms),以及具有有限范围高度可预测动作(如驾驶类,2D战斗机类)的游戏。但是当我们扩展到更多玩家、延迟变化更大、场景更动态的 Metaverse 体验时,这些解决方案就没啥用了。我们很难连贯和正确地预测十几个玩家,并非破坏性地提供“回滚”体验。相反,可能更应该做的只是断开一个网速最慢的玩家。对比视频通话,虽然视频通话有很多参与者,但一次只有一个真正重要(说的那个),因此存在一个“核心”延迟。在一个游戏中,从所有玩家那里获得正确的信息都很重要,而延迟的复杂性就指数上升了。
低延迟对大多数游戏来说都不是什么问题。像 Hearthstone 和 Words with Friends 这样的游戏要么是回合制,要么是异步的,而 Honour of Kings 或Candy Crush 等热门游戏既不需要像素完美,也不需要毫秒级的准确输入。
然而,虽然 Metaverse 不是一个要高速操作的 3A 游戏,它的社交属性意味着它将需要低延迟。轻微的面部活动对人类对话极其重要——我们对面部表情的一点点传输错误和同步出问题都非常敏感(因此 CGI 中出现了恐怖谷效应)。
同时,社交产品必须是不能受地理限制的。试想一下,如果 FaceTime 或 Facebook 只有你的朋友或家人在 500 英里内才能用;或者只在你在家连宽带才能和家人连,那是不可想象的。进一步说,如果我们想在虚拟世界中使用外国或远程劳动力,我们需要的就不但仅是多余的带宽,而是需要低延迟。
不幸的是,延迟是所有网络属性中最难也最慢变好的。如上文所述,这部分归因于需要超低延迟交付的服务和应用非常少。这从无利可图的角度限制了任何网络运营商发展以低延迟为重点的 CDN 业务。
延迟也与物理学的基本规律相冲突。纽约市到东京或孟买的距离是 11 , 000 - 12 , 500 公里,光速单程都需要 40 - 45 毫秒。这将将符合低延迟阈值。然而,虽然大多数的互联网骨干是光纤,光纤电缆一般比光速慢 30%,因为它很少在真空中(+损耗通常为 3.5dB/km)。铜线和同轴电缆在距离上的延迟衰减更严重,带宽更有限,这意味着拥塞和延迟传输的风险更大。在住宅和商业建筑内部以及社区中发现的电缆中,这些电缆仍占较大的比例。此外,这些电缆没有一根是按直线铺设的。
我们通常认为的“互联网骨干网”实际上是一个松散的私有网络联盟,没有一个完全提供数据包(或者有动机与拥有一两个更快网段的竞争对手举行权衡)。因此,一对服务器或服务器与客户机之间的网络距离可以大大大于它们的地理距离。此外,网络拥塞可能导致流量路由更不直接,以确保可靠和持续的交付,而不是尽量减少延迟。这就是为什么从纽约到东京的均匀网络延迟超过了光在两个城市之间传播所需时间的 3 倍;从纽约市到孟买的均匀延时比光速慢 4 - 5 倍。
升级或中继任何基于电缆的基础设施都是非常昂贵和困难的,特别是如果目标是最小化地理距离。它还需要相当多的羁系或当局批准。当然无线更容易修。5G 当然有帮助,因为它均匀减少了 4G 的 20-40 ms (并且承诺低至 1 ms 的延迟)。不过,这只是帮助最后几百米的数据传输那一小段。重要的路程照旧依靠传统的骨干网。
SpaceX 的卫星互联网星座公司 Starlink 承诺将在美国全境提供高带宽、低延迟的互联网服务,并最终覆盖全球。但这并不能解决超低的延迟,尤其是在远距离时。虽然 Starlink 验证了从你的房子到卫星往返只要 18 - 35 毫秒的旅行时间,但从纽约到洛杉矶往返要久得多。毕竟,这需要通过多个卫星中继。在某些情况下,Starlink 甚至增加了数据包的传输距离。从纽约到费城的直线距离约为 100 英里,有线电视的距离可能为 125 英里,但在低轨道卫星上运行并返回时则超过 700 英里。
此外,光纤电缆比通过大气传输的光损耗小得多,特别是在阴天。密集的城市地区也很多信号源,因此容易受到干扰。在 2020 年,埃隆·马斯克( Elon Musk )强调, Starlink 专注于“最难服务的客户,电信公司很难接触到的那些客户”。从这个意义上说,它只能给 Metaverse 带来更多用户,而不是提高现有用户的体验。
全新的技能,业务线和服务也正在出现,以满足不断增长的实时带宽应用程序的需求。Subspace(Matthew Ball披露:我基金的被投公司)把硬件部署在数百个城市,并开发出“天气地图”的低延迟网络寻路,操作一个网络栈,然后和谐低延迟应用程序的需求与许多第三方组成这条路径,还建立了一个光纤网络集群,拼接了各种光纤网络以进一步收缩服务器之间的距离,并尽量减少使用非光纤电缆。
同期, Fastly 提供了一个针对低延迟应用优化的 CDN,而不但仅优化交付可靠性和带宽。该公司使用“基础设施即代码”的方法,允许客户定制公司计算集群的几乎每一个方面,承诺一个软件应用程序可以在 150 ms 内清除和替换所有这些集群的所有缓存内容,并可以实时缓存和加速单个区块链的买卖业务。
可靠性
可靠性的需求是很显然的。我们转向虚拟劳动和教育的可行性直接依赖于可靠的服务质量。这涉及到系统可用性,以及其他属性的一致性,如下载或上传带宽和延迟。对今天许多“生活在网上”的人来说,上述大部分似乎是危言耸听。Netflix 以 1080p 或即使是 4K 大部分时间也完全没问题!然而,Netflix 等服务的可靠性解决方案对于游戏或 Metaverse 的特定应用并不适用。
像 Netflix 这样的非直播视频服务在向观众提供服务前几个小时到几个月就收到了视频源文件。这允许他们举行广泛的分析,以便通过分析帧数据来确定哪些信息可以丢弃来压缩文件大小。Netflix 的算法会“观察”一个有蓝色天空的场景,然后决定,如果观看者的网络速度下降, 500 种不同色调的蓝色可以简化为 200 种、 50 种或 25 种。流媒体的分析甚至在剧情上下文的基础上做到这一点,认识到对话的场景观众可以容忍比那些快节奏的动作场景更大的压缩比。这就是多通路编码。如前所述, Netflix 还使用空闲带宽在用户需要之前将视频发送到用户的设备上——因此,如果连接出现临时下降或延迟增加,终端用户的体验不会发生变化。此外, Netflix 会在本地节点预下载内容,以是当你要看最新一集的 Stranger Things 时,要读取的文件实际上就在几个街区之外。这对于实时创建的视频或数据来说是不可能的,根据上文提到的需求,它们还要更快到达。这就是为什么 1 GB 的 Stadia 比 1 GB Netflix 更难实现云传输。
因此,即使 Metaverse 和 3A 游戏不一定有竞争关系,我们应该认为 Metaverse 对网络的各个方面的要求 —— 延迟,可靠性和带宽 —— 都跟 3A 游戏一样高。如果你的设备不能及时接收到 Metaverse 运行所需要的所有信息,那么本地计算能力再强大也不顶用。
以上是由九个部分组成的《Metaverse 读本》的第三部分。 |
|