串流不息

本文由 Coxxs 原创,转载须注明原文链接:https://coxxs.me/1049

常常有人跟我说,某个网站又上不去了。通常,当我确认网站确实正常,然后提示他检查网络的时候,他就会回应说,他用的是 666 Mbps 的豪华光纤!..哇,你竟然有 666 Mbps 的豪华光纤,好厉害!

高带宽不代表网络质量一定好,也不代表想上的网站一定上的去。网络如同一条河道,河道再宽,天天泥石流还咋川流不息啊。

好在,随着应用对网络越来越高的要求,用户也在逐渐意识到这一点。毕竟,看着X者荣耀上不断跳动的ping值和自己莫名死亡的角色,以及几秒一卡的网络直播,用户终能意识到,自己 666 Mbps 的豪华光纤或许并不那么的靠谱。

值得一提的是最近流行的云游戏(或是 Remote Play),这算是民用级别里对网络质量要求很高的应用了。云游戏相当于是超低延时的串流,用户的操作要快速准确传到云端,而云端的画面数据也要快速传到客户端。河道里的任何一点泥沙,都会直接展现在用户面前(音画撕裂、操作延迟、连接断开),对用户体验造成伤害。

对于民用网络,要评价网络质量有许多标准,比如延时与抖动、丢包、连通性,以及.. 嗯.. 666 Mbps 的下行带宽。

延时与抖动

延时,就是俗称的 ping 值 / RTT。不少游戏界面上可以调出延时的显示,用户也可以通过 ping 目标IP或域名的命令来测试自己设备与目标服务器的延时。而抖动,则是指延时的变化。

FPS游戏中,玩家的操作要过一会才会显示在别人的电脑上,而玩家看到的对方角色也是一段时间前的了,这个“一段时间”即是延时。不过,只要你能顺利打中你看到的A的脑袋,即使A此时已经跑远了,游戏通常还是会判定你成功爆头了。但反之亦然,B此时可能也打中了一段时间前的你,而你才刚看到B对准了你.. 许多行为会受延时的影响,让玩家无法快速准确地看到对方,做出反馈。

而抖动对于FPS的影响则更严重,小幅的抖动游戏可以通过算法克服(以增加延时的代价),但大幅的抖动则通常被视为丢包,服务端不知道你此时在干啥,你也不知道此时别人在干啥,典型的后果就是你看到别人在瞬移,别人看到你的角色做出怪异行为(然后顺手开了一枪)..

在文件下载中,无抖动的高延时会影响下载速率增加的速度,但不会影响满速下载。而严重的抖动则可能影响满速下载,视流量控制算法而定。

丢包

丢包是指数据包来回传输的过程中发生丢失的现象。丢包可能是因为你已经用满了所有的带宽,ISP 丢掉了超过带宽的数据包,也可能是因为线路中其他人为或非人为的故障所引起的。

丢包对于FPS游戏的影响不言而喻,玩家的某个操作没能传达给服务器,或是服务器没能把对方的位置反馈给玩家,等客户端/服务器识别到丢包时,已经过去一段时间了,此时再重发弥补,往往为时已晚。而且这“重发”可能又再次被丢。

丢包对于简单的网页访问也会造成严重的影响,举个例子:

客户端发给服务器一个网页请求,结果服务器没收到… 客户端察觉的时候,已过了一会儿,于是客户端再重发…
服务端终于收到请求,把一个网页分成了10个包,编号1~10后。服务端不知道客户端的带宽多大,决定第一批只发1、2、3三个包给客户端…
结果客户端只收到1、3两个。再等几秒,客户端问服务器,我只收到了1,你2呢?…
结果这句“你2呢”也被丢了。于是又过了一会,客户端再发“我有1,你2呢”…

这听起来确实很蠢,然而这就是浏览网页所用到的TCP协议的运作方式。更糟的是,过去的流量控制算法认为,丢包代表着网络拥塞(比如之前提到过,用满了带宽也会造成丢包),因此服务端/客户端不敢加快发包的速度,甚至还会针对丢包放慢速度,对于例子而言,就是服务器一直只敢一次发3个。这造成了网页访问缓慢,也造成了文件下载低速。

好在,诸如BBR一类的流量控制算法应声而出,通过“探测”线路的最大带宽,来改善一定丢包率下的网络速率。不过,如果丢包率实在太高,例如超过20%,BBR也无力回天。此外,BBR对延时敏感的游戏,即使能够应用,也是没有太大用处的。

连通性

在全世界绝大多数国家,用户如果不能访问某个网站,各个环节出问题的概率是差不多的。例如,可能是用户设备配置错误,可能是网络提供商出问题,可能是海缆断开、备用线路拥堵,亦或是网站本身出现了问题。

不过在其他国家,如果用户不能访问某个网站,无论是长期不能访问、还是有时不能访问,各个环节的故障基本都集中在一个地方,就是该地区的国际出口处。此外,不同地区、不同运营商在国际出口处出问题的概率也不同。

666 Mbps 的下行带宽

说完上面这些,或许你已经发现了,对于家庭用户,单纯的高带宽并不代表什么。不代表打游戏流畅,不代表访问网页快,也不代表各种网站都能上,仅仅是最大下载速度高而已。仅此而已。

大多数国家的宽带,连接到全球大多数位置,都可以做到稳定的延时、较低的丢包或无丢包。其他国家的一些宽带,连接海外大多数地区都是高抖动、高丢包,只有连接国内时正常;而这些国家的另一些宽带,则连国内的连通性都无法保证,尽管标着看似不错的“最大带宽”,但实际体验却十分糟糕。

串流不息

随着云游戏越来越普及,上面提及的延时、抖动、丢包这些影响云游戏的体验参数,会将网络问题暴露在更多用户面前。或许是路由器的问题,或许是运营商的问题,亦或是国际出口的问题。

也希望随着更多高要求网络应用的普及,用户能逐渐关注到网络质量的各项指标,而不仅仅是将带宽与网络质量画等价。希望能有一天,我能够轻松地连接一些网站,不用加钱去改善丢包与延时,也不用再担心串流被打断。

Coxxs

《串流不息》上有4条评论

家鳖大帝进行回复 取消回复

电子邮件地址不会被公开。 必填项已用*标注