案例库 · 软件与 IT · 技术决策 · 2012-2021
谷歌的QUIC将传输层迁移到UDP并在其中构建TLS,最终成为HTTP/3
QUIC在UDP之上运行多路复用加密传输,Web将其采纳为HTTP/3。
那一手
TCP服务Web数十年,但它的缺陷已深深嵌入操作系统和中间设备:队头阻塞——一个数据包丢失,该连接上的所有后续数据都得停下;还有多轮往返握手的开销。要修TCP,就得升级每一个内核和网络设备。
谷歌的QUIC在UDP之上实现自己的可靠性和流多路复用,因此无需改动整个操作系统的TCP栈。它把TLS 1.3并入同一次握手,建连时间缩短到大约一个往返,并用连接ID而非IP来标识连接,所以从Wi-Fi切到蜂窝网络也能保持连接不断。
让它真正可行的关键选择是在UDP之上运行。谷歌在Chrome和自己服务器上部署QUIC,验证了低延迟优势,然后将其交给IETF,IETF将其标准化为HTTP/3的传输层。
为什么管用
- 由于QUIC基于UDP,谷歌可以在自己的浏览器和服务器上部署它,无需等待任何内核或运营商升级。
- 多路复用流意味着某条拥塞的流不再阻塞整个连接的其他流,解决了TCP的队头阻塞问题。
- 将TLS 1.3合入握手过程,将连接建立时间从多次往返缩短到约一次。
- 连接迁移让会话能在网络切换时存活,这对移动端至关重要,即使在IP改变时也能保持标识。
值了多少亲自在UDP之上、内部集成TLS来推出传输层协议。聪明
可以搬走什么
如果现有的传输层被困在无法控制的内核和运营商升级中,那就把传输层移到数据报层,这样你就能在自己的客户端里推出它。
后来呢
QUIC在2021年5月被标准化为RFC 9000,HTTP/3定义于RFC 9114,如今所有主流浏览器默认启用。云服务商和CDN均支持,特别有利于移动网络和丢包严重的网络。但调优基于UDP的传输比TCP更困难,这是一个真实存在的运维成本。
资料来源
发现哪里写错了?告诉我们。