0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

发明QUIC的原因以及QUIC的使用人群

LiveVideoStack 来源:Compira Labs 作者:Ravid Hadar 2022-06-08 10:13 次阅读

当上世纪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)。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 网络协议
    +关注

    关注

    3

    文章

    243

    浏览量

    21419
  • Quic
    +关注

    关注

    0

    文章

    24

    浏览量

    7245

原文标题:QUIC和互联网传输的未来

文章出处:【微信号:livevideostack,微信公众号:LiveVideoStack】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    谷歌Chrome浏览器抗量子加密算法被指破坏TLS握手,导致部分网站无法被访问

    谷歌自去年8月起便开始测试后量子安全TLS密钥封装机制,通过采用TLS 1.3及QUIC连接的Kyber768抗量子密钥协商算法,以提升ChromeTLS流量的安全性。
    的头像 发表于 04-30 14:22 273次阅读

    华为武云骥:5.5G智能分组核心网,迈向体验经营新时代

    (Intelligent Personalized Experience)体验专线和MoQ(Media over Quic)新媒体网络技术,助力运营商实现经营模式转型。
    的头像 发表于 02-29 16:20 312次阅读

    使用相序识别仪时,常见故障原因以及处理方式概述

    使用相序识别仪时,常见故障原因以及处理方式概述  相序识别仪(Phase Sequence Relay)是一种用于工业和家庭电气系统中的设备,主要用于检测和纠正电源的相序错误。然而,相序识别
    的头像 发表于 12-19 15:04 781次阅读

    QUIC在零信任解决方案的落地实践

    一 前言 ZTNA为以“网络为中心”的传统企业体系架构向以“身份为中心”的新型企业安全体系架构转变,提供解决方案。随着传统网络边界不断弱化,企业SaaS规模化日益增多,给终端安全访问接入创造了多元化的空间。其中BYOD办公方式尤为突出,移动化办公确实为个人提升了效率,为组织节省了成本;但是给业务系统的安全接入,业务处理及时响应上带来了成本和挑战。需要我们思考是否引入非传统的技术点来解决用户需求侧的痛点,同时保障整体方
    的头像 发表于 12-18 11:41 232次阅读
    <b class='flag-5'>QUIC</b>在零信任解决方案的落地实践

    网宿基于QUIC的技术方案实践

    网宿基于业务场景和网络环境的实战也发现,QUIC优化效果明显。以直播业务为例,使用同一服务器,推两路1M码率的直播流到同一边缘节点,在丢包20%的情况下,QUIC的流畅度比TCP高20%,首包时间比TCP少0.2-0.8秒,传输性能显著提升。
    发表于 12-05 13:56 247次阅读
    网宿基于<b class='flag-5'>QUIC</b>的技术方案实践

    通俗易懂的PCB爆板原因以及玻璃转换温度

    【科普】通俗易懂的PCB爆板原因以及玻璃转换温度
    的头像 发表于 11-24 16:01 562次阅读
    通俗易懂的PCB爆板<b class='flag-5'>原因</b><b class='flag-5'>以及</b>玻璃转换温度

    华为发布5.5G新一代用户面产品Intelligent UDG

    。 华为分组核心网领域总裁武云骥发表主题演讲 武云骥表示:“下一代移动互联网内容形式从2D到3D,内容生成从人工生成到智能化生成,内容传输从TCP到QUIC。华为5.5G新一代用户面产品
    的头像 发表于 11-14 23:45 1054次阅读
    华为发布5.5G新一代用户面产品Intelligent UDG

    UDP的特性与应用场景

    一、UDP的特性与应用场景 采用UDP有3个关键点: 网络带宽需求较小,而实时性要求高 大部分应用无需维持连接 需要低功耗 应用场景: 网页浏览:新浪微博就已经用了QUIC协议 流媒体:WebRTC
    的头像 发表于 11-13 15:34 559次阅读
    UDP的特性与应用场景

    物联网MQTT消息传输标准协议技术介绍

    QUIC(Quick UDP Internet Connections)是由 Google 开发的一种新的传输协议,运行于 UDP 之上,旨在减少建立新连接所带来的延迟,提高数据传输速率,并解决 TCP 的一些限制。
    发表于 11-13 12:36 528次阅读
    物联网MQTT消息传输标准协议技术介绍

    电感啸叫的常见原因以及解决方法

    电子发烧友网站提供《电感啸叫的常见原因以及解决方法.docx》资料免费下载
    发表于 10-15 11:03 2次下载

    MQTT over QUIC:EMQ 携手英特尔、上海交大与全球名校共同探索下一代物联网协议

    MQTT over QUIC 将传统 MQTT 协议中基于 TCP 的传输层协议替换为了 QUIC(Quick UDP Internet Connections)。与 TCP 不同,QUIC
    的头像 发表于 09-27 17:16 976次阅读
    MQTT over <b class='flag-5'>QUIC</b>:EMQ 携手英特尔、上海交大与全球名校共同探索下一代物联网协议

    QUIC协议的特性、原理及应用场景

    QUIC(Quick UDP Internet Connection,快速UDP网络连接)发音同 "quick",是 Google 公司在 2012 年提出的使用 UDP 进行多路并发传输的协议。
    的头像 发表于 09-15 11:21 3829次阅读
    <b class='flag-5'>QUIC</b>协议的特性、原理及应用场景

    蓄电池内部短路原因、发热原因以及起火控制方法探讨

    蓄电池内部短路原因、发热原因以及起火控制方法探讨UPS供电系统是动力系统稳定运行的关键部分,而蓄电池的监测和管理对于UPS供电系统的稳定性和可靠性至关重要。为了更加科学、实时地管理蓄电池,蓄电池在线
    的头像 发表于 09-06 09:53 1147次阅读
    蓄电池内部短路<b class='flag-5'>原因</b>、发热<b class='flag-5'>原因</b><b class='flag-5'>以及</b>起火控制方法探讨

    一文读懂QUIC协议:更快、更稳、更高效的网络通信

    HTTP/3 是第三个主要版本的 HTTP 协议。与其前任 HTTP/1.1 和 HTTP/2 不同,在 HTTP/3 中,弃用 TCP 协议,改为使用基于 UDP 协议的 QUIC 协议实现。所以
    的头像 发表于 08-24 15:43 1045次阅读
    一文读懂<b class='flag-5'>QUIC</b>协议:更快、更稳、更高效的网络通信

    QUIC是如何工作的?为什么HTTP/3要选择QUIC协议?

    QUIC发布之前,HTTP 使用 TCP 作为传输数据的底层协议。随着移动互联网的不断发展,人们对实时交互和多样化网络场景的需求越来越大。
    的头像 发表于 08-10 17:21 1509次阅读
    <b class='flag-5'>QUIC</b>是如何工作的?为什么HTTP/3要选择<b class='flag-5'>QUIC</b>协议?