QUIC相对于TCP的优势,会取代TCP吗?

395 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。


互联网工程任务组 (IETF) 透露 HTTP-over-QUIC 协议将更名为 HTTP/3。 顾名思义,HTTP/3 将使用 QUIC 作为底层传输协议,而不是 TCP。 那么什么是QUIC,它有什么好处呢? 这些是我们将在这篇文章中探讨的问题。

QUIC 最初是谷歌在 2012 年的一项实验,然后在 2015 年作为标准草案提出。最初它的名称是“Quick UDP Internet Connections”的首字母缩写词,尽管该首字母缩写词现在已被 IETF 删除。

QUIC 在 UDP 之上实现,提供与 TCP 类似的功能,但没有一些痛点。 这意味着,通过使用 QUIC 而不是 TCP 作为其基础,HTTP/3 可以利用它提供的许多好处。

没有队头阻塞

例如,虽然 HTTP/2(建立在 TCP 之上)目前允许多路复用,但它受到所谓的“行头阻塞”的影响。 每个物理连接都可用于流式传输多个资源,但如果其中一个资源出现故障,则该连接上的所有其他资源将被暂停,同时重新传输丢失的数据包。

使用 QUIC,仍然可以进行多路复用,但如果一个资源在此过程中丢失数据包,则只有该资源会受到影响,而不是所有其他资源。

更快的连接建立

QUIC 还减少了建立连接所需的时间。 通过自己处理安全特性——而不是将它们交给像 TLS 这样的更高层协议——QUIC 减少了建立连接所需的往返次数。 新的安全连接不需要两次往返,而是只需要一次往返 (1-RTT)。 在某些情况下,它还提供了零往返连接 (0-RTT) 的可能性。

减少建立连接所需的往返次数在低延迟网络上可能不是那么明显,但在高延迟网络上,它可能会产生明显的差异。

网络之间更好的传输

QUIC 不需要为每个请求的源和目标提供 IP 地址,而是使用唯一的连接 ID 来确保所有数据包都被传递到正确的位置。 使用这些连接 ID 而不是 IP 地址的好处是,即使您在连接中间切换网络,这些 ID 也将保持不变。

例如,如果您的手机连接到本地 wifi 网络,然后它切换连接以使用 LTE,则 IP 地址的更改不会影响 QUIC 连接。 如果您正在下载,即使您切换网络,该下载也可以继续。 HTTP/2 目前不是这种情况。

谁将会受益

从性能的角度来看,移动用户似乎将获得最大的收益,尤其是那些在延迟较高的网络上的用户。 在谷歌进行的一些测试中,他们发现:

在糟糕的网络条件下,QUIC 胜过 TCP,将最慢的 1% 连接的 Google 搜索页面加载时间缩短了整整一秒。

通过使用 QUIC 作为其基础,HTTP/3 旨在提供更快的连接和更平滑的网络之间的转换。 尽管使用慢速网络的移动用户可能最能注意到这种差异,但这些好处是每个人都能体会到的。