点击上方“LiveVideoStack”关注我们
翻译:Alex 技术审校:刘连响 本文来自Compira Labs,作者为Ravid Hadar。
▲扫描图中二维码或点击阅读原文▲
了解音视频技术大会更多信息
QUIC
影音探索
#012#
当计算机科学家注意到TCP的限制性使它无法继续支持新的、更加先进的互联网服务时,他们对QUIC的兴趣便与日俱增。作为传输协议,QUIC是替代TCP的最重要“候选人”,它将有可能为互联网数据传输打开新的局面。
在昨天的文章中,我们讨论了什么是QUIC、它的目的以及工作原理。现在我们要回答一个稍许不同的问题:它真的值得采用吗?接下来,本文将深入探索使用QUIC的优势和劣势。
5∕切换网络时的性能提升 切换网络时,QUIC可以实现平稳过渡。比如,如果你使用家里的wifi观看手机上的视频,然后你走出家门,家里的wifi便切换到LTE,或者当你一直忙于观看视频,在不同的移动基站间移动时。 在以上这些场景中,TCP将切断连接,并通过新的网络创建新的连接,进而影响到你的观看体验。而QUIC则能够实现无缝连接。 6∕提升的安全性和隐私保护 QUIC在传输层中内置了加密功能,从而验证整个负载(包括header)。TCP在header中不包含加密,使它非常容易受到攻击。QUIC默认支持安全的TLS,意味着端到端完全安全。
TCP发明时,网络都是有线连接,而且相当可靠。但显然,情况已经发生改变。QUIC对非可靠、无法预测的无线连接进行了改进,但并没有改变互联网传输的本质,它的局限性导致它只能改变某些特定使用场景。下面列举了一些额外的QUIC局限性:
1∕迁移app面临巨大挑战
将app从HTTP/2迁移到HTTP/3(或者从TCP迁移到UDP)要费很大力气。整个过程需要将整个应用层实现和传输层实现转移到UDP,并在服务端和客户端构建全新的解决方案。
这对于流媒体领域中资源相对有限的小厂商而言无疑挑战重重,同时也解释了谷歌和微软这样的科技巨头可以率先采用QUIC协议的原因。
2∕采用受限
QUIC的最大问题就是它的采用依然受限。几乎每个浏览器都接受使用QUIC进行简单的网页浏览,但是除了chromium,没有浏览器将它设置为默认选项。
除此之外,在流媒体领域,除了谷歌和Facebook(现更名为Meta)之外,少有公司使用QUIC。只有少数CDN提供商支持QUIC,而其中的一些也只是验证了QUIC的实现,并没有为大规模部署准备好。这就带来了问题:如果你推出了使用multi-CDN并基于QUIC的新服务,那么将只有20%的访问使用QUIC,因为你无法向用户证明它对用户体验的显著影响。
3∕QUIC包含TCP回退
QUIC之所以被构建在UDP之上,部分原因是极少有中间件和网络设备拦截UDP。但确实存在被拦截的风险,所以基于QUIC的app必须设计成能够回退到TCP,以防万一。
这意味着app(基于QUIC)的开发者要同时开发和维护两个不同的版本(由于TCP回退和受到限制的采用率),导致他们的负担很重。
好消息是,随着最新的DEVOPS结构与HTTP的Alt-Svc标签的使用,支持两种协议要比以前简单得多。
4∕无法检查数据包
网络防火墙无法解密QUIC流量来检查数据包,所以潜在的恶意流量非常有可能没有被标准安全功能检测出来而进入网络。因此,思科和Palo Alto Networks等安全厂商通常会在端口80(Web服务器)和443(TSL)拦截QUIC数据包(认为它们包含恶意软件),迫使客户端回退使用HTTP/2和TCP协议。
但上述操作并不会显著影响内容用户体验,因为正确实现的流媒体服务会默认回退到TCP+TLS,但这种操作可能会阻止率先部署QUIC的想法。只有解决这一挑战,QUIC才能被各大企业广泛接受。
5∕不具备某些TCP特性
人们理所当然地使用TCP中所默认包含的一些特性(比如Throttling)。但使用QUIC,你可能需要自己构建这些特性。
除此之外,HTTP/3缺乏一些采用某些特定协议时所需的特性。比如,HTTP/3仍然不支持成块传输(chunked transfer,即将视频切片分割为小块的能力),但HTTP1.1却支持该特性。这就限制了用于基于QUIC的视频传输的协议数量。
因此,尽管QUIC支持大部分常见传输协议(如HLS、MPEG-DASH),但目前它无法支持更多新的协议,这些协议主要用于降低glass-to-glass延迟,比如依赖于成块传输的LL CMAF(Low Latency Common Media Format)。
glass-to-glass延迟:指显示器屏幕和相机镜片之间的延迟,也可以叫做“端到端延迟”,意思是开始( 捕获)并结束(显示)之间整个传输管道上的延迟[1]。
6∕更容易被fingerprinting
恶意行为者很可能嗅探到互联网用户与所访问网站之间的网络流量,并通过被发现的数据包创建与特定网站相对应的不同模式,这种操作被称为web fingerprinting。在早期流量连接阶段,TCP+HTTPS似乎更能抵御fingerprinting。
7∕QUIC可能需要更高的CPU使用率
一些观点认为QUIC所需的HTTP/3在客户端和服务端都占用了更多的CPU资源。然而,谷歌却持相反观点,认为QUIC有助于延长电池寿命。
无论如何,一旦QUIC进入主流技术栈,这一问题预计不会有太大影响。
8∕需要实现的协议众多
由于IETF历经5年多才发布第一版QUIC,所以目前市面上有60种QUIC版本实现,都开发于QUIC标准之前。因此,大部分QUIC版本或不支持完整的QUIC标准,或只支持自己版本的实现。只有当不同版本的QUIC与官方标准保持一致时,它才能被广泛采用。
9∕互联网依然针对TCP进行优化
TCP传输已经存在几十年,多年以来,TCP应用通过在软件(如操作系统内核)和硬件(如网络接口和智能NIC)中构建卸载性能而彻底得到了优化。而QUIC却不具备这一能力。它基于UDP,位于用户空间内,所以它的端点,以及一些中间件功能在现阶段存在明显的劣势。不过,一旦QUIC被广泛采用,就会得到这种优化,所以这对于QUIC而言只是暂时性问题。
QUIC vs TCP:对于质量体验的影响
QUIC支持某些独特的特性并在新的特性实现方面提供了更多灵活性。因此,对比TCP,基于QUIC的应用有望在QoE方面带来更多优势。
下面是两个QUIC带来QoE优势的常见用例:
QUIC也许是“改进者”,不是“颠覆者”
QUIC确实为互联网用户带来了渐进式的增益,但对于它是否是真正的“颠覆者”这一观点还存在争议。目前存在充分的理由采用QUIC,但QUIC所带来的问题以及早期采用者所遇到的挑战都在“鼓励”一种观望态度。
注释:
[1]https://cloud.tencent.com/developer/article/1346159
致谢:
本文已获得作者Ravid Hadar授权翻译和发布,特此感谢。
原文链接:
https://www.compiralabs.com/post/quic-is-it-the-game-changer-for-internet-delivery
延伸阅读:
IETF访谈:HTTP/3全球份额持续增长,QUIC前景一片光明
IETF:QUIC Version 1 (RFC 9000) 作为标准化版本现已发布
喜欢我们的内容就点个“在看”吧!
本文分享自 LiveVideoStack 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!