极资讯

  • 关于我们
  • 全栈AI助手
极资讯
这里有好的科技资讯
  1. 首页
  2. 互联网
  3. 正文

QUIC和互联网传输的未来

2022 年 6 月 10 日 5843点热度 0人点赞 0条评论

本文来自 Compira Labs,作者为 Ravid Hadar。

▲扫描图中二维码了解音视频技术大会更多信息▲

影音探索 #011#——QUIC

当上世纪 70 年代 TCP 被发明的时候,我想没有人会预料到 50 年之后我们仍然在使用它。但事实是,我们现在还在使用 TCP。

在过去几十年中,TCP 不断发展,并新增了与可靠数据传输、流量控制、拥塞控制等相关的各种特性。但许多研究者以及包括我在内的从业者都认为 TCP 已至末路。自从 TCP 发明以来,互联网已经成为社会生活中非常重要的组成部分,但遗憾的是,TCP 并没有与时俱进以满足不断增长的需求。

不过鼓舞人心的消息是,在代替 TCP 方面,有一位最重要的 “候选人”—— 它能够使互联网传输继续发展,并解决许多困扰互联网多年的问题。具体来说,这个有可能替代 TCP 的协议被人们称为 QUIC,人们对 QUIC 的出现激动不已。但这种激动是否合理,我们将在今后的文章说明。本文我们将来了解发明 QUIC 的原因以及 QUIC 的使用人群。

什么是 QUIC?

QUIC 是一种通用、安全、多路复用的传输层新型网络协议。它的目的是替代 TCP(目前是互联网上用于数据传输的主流协议)。2012 年,QUIC 协议由当时还在谷歌任职的 Jim Roskind 开发。2013 年,QUIC 正式对外公布。

2015 年,QUIC 被提交给 IETF 进行标准化,但是直到六年以后,也就是 2021 年 5 月,IETF 才发布了第一版标准化的 QUIC,被命名为 RFC 9000。同时,IETF 还发布使用了 QUIC 的 HTTP/3 标准化版本。

QUIC 吸纳了很多与 TCP 类似的属性,还有 TLS 加密,将它们置于 UDP 传输之上的应用层中。

为什么需要 QUIC?

虽然 TCP 已经 “英勇地” 服务多年,但它很可能已经走到了尽头。它最初设计用于有线互联网,根本没有想到今天的无线互联网会发展到如此容量和规模。许多专家很清楚,它无法适应今日互联网的发展。而 QUIC 的出现可以使网络更快、更高效、更安全,而最重要的是,可以不断发展。

在 QUIC 出现以前,TCP 的主要替代选择是 UDP。简而言之,TCP 提供了可靠的互联网传输,其中可以确保数据的传输,而 UDP 提供了更快、但却非可靠的传输。QUIC 的目的就是结合 TCP 的最佳特性和 UDP 传输层。

TCP 的主要限制包括:

TCP 仅定义了 40 字节的可选位,且几乎全部填满。结果就是,没有新特性的位置了。

许多中间件(如防火墙)假设 TCP 数据包将以某种确定方式构造。如果数据包与它们的预期相差太大,就会被拒绝或者延迟,这使得 TCP 协议几乎无法发展。

由于 TCP 在内核里实现,那么任何 TCP 传输的更新都需要经过新的内核修改。对于一些基础设施相对陈旧的公司来说,需要耗费数年才能采用新的特性。

TCP 是传输层,没有内置加密(即 TLS),所以它需要在上层增加。导致的结果就是需要很长时间才能建立安全连接,并且一些通过 TCP 传输的数据(比如数据包头部)没有被加密,从而产生安全漏洞。

QUIC 和 HTTP/3 一起使用的目的就是代替 HTTP/1(或 2)和 TCP 的组合,以及解决 TCP 协议所带来的一些已知问题。

QUIC 如何解决 TCP 所带来的挑战?

首先,在 UDP 之上构建 QUIC 这一务实的决定所带来的优势相当明显。UDP 在互联网上被广泛部署,所以无需从零开始定义传输层(如从零开始,可能要耗费几十年)。

相较于 TCP,UDP 的开销要少很多,这个特点使它更快速、更简单也更高效。但它存在一个重大缺陷,那就是缺乏可靠性。UDP 无法确保每个通过它发送的数据包传输,也无法确保数据包以准确顺序发送给接收方。

QUIC 继承了 TCP 的特性,将它们构建于 UDP 之上,并添加了更多其他特性。TCP 是传输层,TLS 和 HTTP2 位于其上方的应用层,QUIC 同时包含了应用层和传输层机制。因此,它的目的就是代替 TCP 传输层。

QUIC 使用 UDP 作为底层传输协议,同时内置 TLS 加密,并结合了 TCP 的可靠性相关特性。QUIC 在应用层(即用户空间)获得进一步实现。因此,无需更新内核,你就可以进行大量修改。

谁在使用 QUIC?

作为一种通用传输协议,QUIC 可以用于许多基于互联网的工作流,但部署的第一步就是将网页浏览转移到 QUIC,因为它所带来的最直接的好处就是基于 HTTPS 的 Web 浏览。

作为 TCP 的继任者,QUIC 只能与 HTTP/3 一起使用。为了使用该协议,客户端和网站都需要支持它,但因为只有少数网站使用 HTTP/3,所以这也成为了 QUIC 协议被广泛采用道路上的一个阻碍。根据 W3Tech [1],截止 2021 年 10 月 2 日,约 35% 的网站仍然在使用 HTTP/1;约 45% 的网站迁移到了 HTTP/2,而只有大约 20% 的网站正在使用 HTTP/3 和 QUIC。

截止 2021 年中旬,QUIC 占据了互联网流量的 12%。谷歌是第一家(也是最有名的)采用 QUIC 协议的公司(毫不意外,毕竟 QUIC 协议是由谷歌员工开发的)。在其生态中,谷歌拥有自己的服务器、应用程序、服务和客户端,所以它很容易实现 QUIC,并将众多应用迁移到新的框架。30% 的 YouTube 流量已经转移到了 QUIC。

接着是 Facebook(现更名为 Meta),它已经将 70% 的流量迁移到了 QUIC。Facebook 和 Instagram 移动应用程序都已经在最大限度地使用 QUIC。

这就是 QUIC 协议采用所面临的现状。微软只有少量流量使用了 QUIC;在流媒体领域,只有 YouTube 和 Facebook Live 支持了 QUIC。流媒体视频接近 80% 的 Web 流量,大部分依然使用的是 TCP。流媒体巨头公司 Netflix 和 Amazon Prime 都没有支持 QUIC。不过,微软有将其 VPN 产品从 TCP 迁移到 QUIC 的倾向 [2]。

目前支持 QUIC 的生态包括:

浏览器: Chrome(默认)、Edge、Firefox、Safari 和其他默认使用 TCP 的浏览器(但将 QUIC 作为可选选项)。

应用: 所有来自谷歌的应用,如 Gmail 和 YouTube;Facebook 的应用;Uber。

服务器 / CDN: Akamai、微软、Apple、谷歌、Cloudflare、Fastly、Caddy 和 NetApp。其中一些 CDN 已经验证了 QUIC 的实现,但几乎它们所有的流量都还在使用 TCP。

Web 服务器: LiteSpeed、H20、Ngnix 和 Apache。

负载均衡器: LiteSpeed 和 F5 BIG-IP。

技术社区项目: 基于 chromium 实现的 libquic、反向代理(充当反向代理服务器的 Docker 镜像)。

编程语言: Go(quic-go)、Quic.NET(C#)。

如你所见,基于 Web 的基础设施已经开始向 QUIC 迁移,但是在大多数情况下,QUIC 还不是默认选项,而且一些大公司依然没有支持 QUIC。

为什么这么久才推出 QUIC?

QUIC 依然是一个新标准,它的目的是重新设计互联网的诸多方面。而对如此众多的特性进行标准化需要时间。虽然 QUIC 在 2013 年首次提交给 IETF,但直到 2021 年 5 月才正式推出,所以它仍然没有获得不同生态的完全支持。

QUIC 首次公布与正式标准化之间相隔时间太久,这使得很多厂商开始开发自己的协议版本。他们在获取到最初发布的 QUIC 后,将自己的版本构建在其上。但是他们所使用的协议不同于最终及官方版本。因此,QUIC 有很多不同的版本,其中一些并不支持官方版本的必备特性,且不同的厂商需要时间将自己的版本调整为与 2021 官方版本保持一致。我们可以看到,这种过渡还处在早期阶段,比如实现了自己的 gQUIC 版本的谷歌正在迁移到 IETF 发布的 QUIC 版本。

也就是说,更加广泛的 QUIC 采用依然要面临许多挑战,包括企业安全规定对 QUIC 的接受度、支持 TCP 回退的请求以及规范依然相当基础这一事实。我将在后续文章中更加详细地说明其中一些挑战。

QUIC 拥有互联网传输的潜力

TCP 是为过去的互联网时代所设计的协议,它无法适用于今日的互联网,而 QUIC 的目的是解决 TCP 的许多问题,使互联网变得更安全、更灵敏并且可以不断发展。需要谨记的是,我们现在仍处在 QUIC 协议部署的早期阶段,接下来的几年我们将见证它是否能够完成成为 TCP 继任者的使命。QUIC 的潜力不仅仅是成为 TCP 的替代方案,它在实时协议上的一些标准化举措有可能使其代替在视频会议和云游戏中使用的实时通信协议(如 WebRTC)。

注释:

[1]https://w3techs.com/technologies/details/ce-http3

[2]https://techcommunity.microsoft.com/t5/storage-at-microsoft/smb-over-quic-is-now-in-public-preview/ba-p/2482964

致谢:

本文已获得作者 Ravid Hadar 授权翻译和发布,特此感谢。

原文链接:

https://www.compiralabs.com/post/quic-and-the-future-of-internet-transport/

----------------------------------------------

历时五年,HTTP/3 终于标准化了!

昨日,IETF QUIC 和 HTTP 工作组成员 Robin Mark 在推特上宣布,历时 5 年,HTTP/3 终于被标准化为 RFC 9114!详情参见:

https://www.rfc-editor.org/rfc/rfc9114.html

同时, HTTP/2 也被更新为新的 RFC 9113,详情参见:

https://www.rfc-editor.org/rfc/rfc9113.html

Robin 写道,新发布的 HTTP/3 标准将与 RFC 9204(QPACK header 压缩) 和 RFC 9218(可扩展的优先级)一起为 Web 打开重要的新篇章。

Related Posts:

  • HTTP/3 标准化了,什么时候 QUIC 能插遍全球?
  • 基于 QUIC 协议的 HTTP/3 正式发布
  • 字节跳动开源 Go HTTP 框架 Hertz 设计实践
标签: HTTP HTTP3 QUIC
最后更新:2022 年 6 月 10 日

admin

这个人很懒,什么都没留下

点赞
⇦Web3.0,不是资本的玩物
三分钟读懂NFT和数字藏品 ⇨

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

最新 热点 随机
最新 热点 随机
阿里云服务器“镜像”怎么选择?看这一篇文章就够了! 积极贯彻落实《公司法》 推动存量公司依法调整注册资本 更新版!一些有趣或实用的生成器! 整理一波写作必备网站,供大家参考 远离抑郁症的方法之一:增强多巴胺、内啡肽、血清素、催产素的神经质地分泌 网络社区这种模式为什么注定会失败 靠着AI自动生成视频撸自媒体收益,赚了包辣条~ 有钱人是如何面对美色诱惑的 失业的中年人在北京过得真的有多心酸 最年轻的“十八罗汉”,阿里巴巴的新CEO-吴泳铭
疯狂的「垃圾分类回收」,下一个风口? 前Deepin CTO 王勇评价各种编程语言 GitHub CEO:AI 无法取代程序员 开源php官方团队解散,php语言大厦将倾? 抖音来客正式上线KTV预售券功能 简化预约交易模式 微信全面开放“一物一码”功能,每个商品都是小程序入口 短视频12大流量密码 不用再填验证码:iOS 16可自动向网站证明不是机器人 英特尔研究院发布全新 AI 扩散模型,可根据文本提示生成 360 度全景图 28岁的Linux 的28个不为人知的事实
归档
  • 2024 年 10 月
  • 2024 年 2 月
  • 2024 年 1 月
  • 2023 年 12 月
  • 2023 年 11 月
  • 2023 年 10 月
  • 2023 年 9 月
  • 2023 年 8 月
  • 2023 年 7 月
  • 2023 年 6 月
  • 2023 年 5 月
  • 2023 年 4 月
  • 2023 年 3 月
  • 2023 年 2 月
  • 2022 年 12 月
  • 2022 年 11 月
  • 2022 年 10 月
  • 2022 年 9 月
  • 2022 年 8 月
  • 2022 年 7 月
  • 2022 年 6 月
  • 2019 年 8 月
  • 2019 年 7 月
  • 2019 年 6 月
分类
  • AI
  • IT
  • 云计算
  • 互联网
  • 创业
  • 开发
  • 开源资讯
  • 未分类
  • 概念
  • 科技
  • 移动互联网
  • 自媒体
  • 趋势
标签聚合
AIGC 程序员 golang web3.0 短视频 AI 电商 开发 人工智能 小红书 ChatGPT 编程 AI绘画 元宇宙 iphone 直播 Linux 编程语言 抖音 软件

COPYRIGHT © 2022-2025 极资讯. ALL RIGHTS RESERVED.

京ICP备18039103号-2