写点什么

HTTP/3 为什么正迅速吞噬世界?

作者 | Robin Marx 

  • 2023-11-12
    北京
  • 本文字数:2263 字

    阅读完需:约 7 分钟

大小:1.18M时长:06:54
HTTP/3为什么正迅速吞噬世界?

超文本传输协议(HTTP)作为互联网的基石,一直在网页加载、视频流传输、应用获取数据等方方面面发挥重要作用。

 

去年,负责定义互联网技术的互联网工程任务组(IETF)将该协议的最新版本 HTTP/3 定为标准。在此之后,HTTP.3 及相关 QUIC 协议在公共网络上迅速普及。尽管不同来源和测量方法给出的结果略有差别,但目前普遍认为全球 19%到 50%的 Web 服务器和网络均已支持 HTTP/3。

 

由于这些新协议得到谷歌和 Meta 等大公司的广泛应用,我们认为,当前互联网流量中已经有很大一部分在使用 HTTP/3。

 

在本篇文章中,我将介绍一些背景信息,介绍 HTTP/3 解决了哪些问题、它是如何执行的、为什么能够得到迅速普及,以及 HTTP/3 仍然面临哪些有待克服的障碍。

 

我们为什么需要 HTTP/3?

 

网络协议所描述的,是数据如何在网络上的两个实体之间(通常是用户设备和 Web 服务器)进行通信。因为市场上有多家公司在为网络开发软件,因此通信协议必须确保标准化,以便所有软件之间都可以“互操作”。换句话说,各软件能够在遵循相同规则的基础之上相互理解。

 

在实践当中,我们往往不会使用单一某种协议,而是同时使用多种协议的组合。其中各项协议都有自己的作用和规则(详见图一)。这样的设计是为了保障灵活性和可复用性——无论大家使用的是 Wi-Fi、固网还是 4G/5G,都能使用完全相同的 HTTP 逻辑。



图 1 HTTP/2 与 HTTP/3 的协议栈,如何将多项协议组合起来以提供完整的互联网功能

 

不少初期互联网协议早在上世纪 80、90 年代就已经被定为标准,这意味着它们在设计上考虑的是几十年前的需求和限制。虽然其中一些协议经受住了时间的考验,但也有不少已经明显有些过时了。大多数问题倒是可以通过变通和一些小技巧进行解决,可也有一些到了不得不变的时候。其中最典型的就是传输控制协议(TCP),它的作用是确保数据能够可靠地在互联网上往来传输。

 

为什么说 TCP 已经不适合如今的 Web

 

HTTP/1.1 和 HTTP/2 正常运作的前提,就是以 TCP 为基础。具体来讲,在客户端和服务器间交换 HTTP 请求/响应之前,必须先建立起 TCP 连接。

 

随着时间推移,人们做出了不少努力来更新 TCP,并解决其中一些影响效率的问题——例如,TCP 会将网页视为单个文件,而非由数百个独立文件构成的集合。虽然部分更新已经取得成功,但多数影响较大的更新(例如 TCP 多路径和 TCP Fast Open)花了近十年时间才在公共互联网上实际落地。

 

革新 TCP 的主要挑战,在于互联网上成千上万的设备各有各的 TCP 协议实现。除了大家第一时间能想到的手机、笔记本电脑和服务器,还有路由器、防火墙、负载均衡器等其他类型的“中间装置”。也就是说,如果我们想要更新 TCP,就必须等待这些设备中的大部分都对自己的协议实现做更新,而这明显是个需要耗时数年的艰辛过程。

 

QUIC 解决方案

 

面对这个几乎无解的问题,最靠谱的办法反而是直接出台一种全新方案、直接替换掉 TCP。这套替代方案就是 QUIC 协议,但也有不少人半开玩笑地将其称为 TCP 2.0。这个昵称其实并无不妥,因为 QUIC 中确实包含许多与 TCP 相同的高级功能,只是做了一系列关键性调整。

 

其中最大的变化就是 QUIC 与传输层安全(TLS)协议的深度集成。TLS 负责加密网络上的敏感数据,也就是 HTTPS 中的 S(安全)。在 TCP 协议下,TLS 仅加密实际 HTTP 数据(参见图二);对于 QUIC,TLS 还会对 QUIC 协议本身的大部分内容进行加密。也就是说,TCP 当中对所有中间件均可见(且可更改)的元数据(例如数据包编号、连接关闭信号等),在现在的 QUIC 中将仅供客户端和服务器使用。

 


图 2 TCP+TLS 与 QUIC 之间的加密差异。可以看到,QUIC 中被加密的不仅仅是 HTTP 数据

 

此外,由于 QUIC 的加密程度更高,所以对它的变更或新功能添加要比 TCP 简单得多——即只需要更新客户端和服务器,因为中间件无论如何也无法解密元数据。这就让 QUIC 成为一种面向未来的协议,能帮助我们快速解决种种新兴挑战。

 

当然,这种额外的加密机制也有助于增强新协议的总体安全性和隐私性。虽然 TCP+TLS 非常适合保护信用卡或电子邮件内容等个人敏感数据,但却仍容易受到复杂(隐私)攻击的影响。而且随着 AI 技术的快速发展,这些攻击的实施门槛也越来越低。通过进一步加密此类元数据,QUIC 协议无疑能够更好地应对精心策划的恶意攻击。

 

QUIC 还包含诸多其他与安全相关的功能,包括防御分布式拒绝服务(DDoS)攻击、以及防放大和 RETRY 数据包等功能。

 

最后,与 TCP 相比,QUIC 还带来了大量效率和性能改进,包括更快的连接握手(参见图三)、消除“队头阻塞”问题、更好的数据包丢失检测/恢复,以及处理用户切换网络的方法(我们将在后续文章中具体介绍)。



图 3 QUIC 在设置上拥有更快的连接速度,因为它能将“传输”三向握手与 TLS 加密会话相结合,性能优于 TCP+TLS 中的两个独立过程

 

我们真正需要的并不是 HTTP/3,而是 QUIC

 

最初,我们也曾尝试保留 HTTP/2 并进行增量式调整,希望能在底层用上 QUIC(毕竟当初保留这么多协作元素和可复用协议,意义也就在于此)。但很明显,QUIC 与 TCP 之间存在着巨大差异,HTTP/2 根本无法全部兼容。因此,互联网工程任务组才决定专门为 QUIC 制作新的 HTTP 版本,这就是现在的 HTTP/3。

 

HTTP/3 与 HTTP/2 几乎相同,二者的主要区别就体现在 QUIC/TCP 之上各项功能的技术实现。但由于 HTTP/3 能够使用 QUIC 的全部新功能,因此在加载网页和流媒体视频时将带来更好的性能表现。也正是这个优势,让 HTTP/3 得到了市场的广泛认可和快速接纳。

 

原文链接:


https://blog.apnic.net/2023/09/25/why-http-3-is-eating-the-world/


相关阅读:


HTTP/3 发布了,我们来谈谈 HTTP/3

基于 QUIC 协议的 HTTP/3 正式发布

从 HTTP 到 HTTP/3 的发展简史

HTTP/3 与 HTTP/2 的性能对比

2023-11-12 08:007047

评论 1 条评论

发布
用户头像
真正推进很难吧,毕竟大量的基建(路由器之类的)都是支持tcp类型的,QUIC道阻且长
2023-11-23 10:44 · 北京
回复
没有更多了
发现更多内容

构建区块链生态系统:公链、浏览器、钱包与节点搭建全攻略

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 钱包开发 代币开发

NFTScan | 10.21~10.27 NFT 市场热点汇总

NFT Research

NFT\

最好学的编程语言一览,建议收藏

高端章鱼哥

HDFS 统一存储实战经验|京东零售技术实践

京东零售技术

大数据 数据

1688跨境寻原通数据接口对接:跨境电商卖家必看!

tbapi

1688API 1688代采系统 1688跨境寻源通 1688跨境代采

公链实体矿机矿池搭建系统开发指南

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 钱包开发 代币开发

聊聊jvm的内存结构, 以及各种结构的作用

EquatorCoco

Java JVM 开发语言

【活动预告】Apache TsFile 干货总结在 COSCON'24 等你~!

Apache IoTDB

如何通过事件溯源实现百万TPS全内存撮合交易引擎

Damon

事件溯源 撮合交易系统 全内存

威睿能源:赋能绿色转型,打造低碳未来

科技热闻

JVM 调优深度剖析:优化 Java 应用的全方位攻略(一)

王中阳Go

Java JVM

专业的RAW转换器Capture One Pro 21 for Mac

Mac相关知识分享

图像编辑器

图像生成新范式:智源推出全能视觉生成模型 OmniGen

智源研究院

淘宝商品评价API的获取与应用

科普小能手

API 接口 API 测试 淘宝API接口 淘宝API 淘宝商品评价接口

功能强大的文件查找工具Find Any File (FAF) for Mac

Mac相关知识分享

软件

阿里云消息团队创新论文被软件工程顶会 FM 2024 录用

阿里巴巴云原生

阿里云 云原生 消息队列

ppt文字描边怎么设置?用这2个软件轻松制作!

职场工具箱

职场 PPT 办公软件 AI生成PPT

如何技术上配置对接Teams Direct Routing

cts喜友科技

通讯 云通讯 通讯通信

软件工程师如何有效推动大型项目:全面指南

爱吃小舅的鱼

软件工程 项目 软件工程师

解锁热带雨林:Mint Expedition 第四季正式开启!

NFT Research

blockchain NFT\ #Web3

Dropzone 4 for mac(文件拖拽增强工具)

Mac相关知识分享

文件管理工具

Combination of IPQ5322 and QCN9274: Unlock the high performance potential of WiFi 7

wifi6-yiyi

WiFi7

如何与上级保持良好关系

老张

职场 升职加薪 沟通方式

拼多多的数字农业三部曲:新技术、新农人、新商路

Alter

数字农业

资源成本降低60%,揭秘Serverless的省钱秘籍

华为云开发者联盟

容器 运维 #Serverless CCE

哪些项目管理软件值得一试?9款推荐清单

爱吃小舅的鱼

项目协同进度软件

无代码时代来临,程序员面临淘汰?

积木链小链

程序员 IT 无代码 无代码平台

利用 EMQX ECP 实现边缘服务配置的版本管理与参数化下发

EMQ映云科技

边缘计算 智能IoT边缘服务 emqx EMQX ECP

雷鸟发布 AR 眼镜雷鸟 Air 3:售价 1699 元;苹果 M4 版 iMac 发布 10999 元起丨 RTE 开发者日报

声网

【FAQ】HarmonyOS SDK 闭源开放能力 —Push Kit(4)

HarmonyOS SDK

HarmonyOS

Java面试最常见的1309 道 BAT 大厂 java 面试题(附答案分享)

采菊东篱下

java面试

HTTP/3为什么正迅速吞噬世界?_架构/框架_InfoQ精选文章