谷歌的QUIC协议会取代TCP吗? - levelup

21-12-06 banq

在过去几年中,QUIC 已成为 Google 服务网络通信的默认协议。从 Chrome 网络浏览器到 Google 服务器的所有连接中,有一半以上使用 QUIC。Microsoft Edge、Firefox 和 Opera 也正式支持它。

谷歌在开发它时考虑到了网络安全,并用更先进和最新的技术取代了几个过时的标准。换句话说,QUIC 可能代表了互联网的未来,这就是理解它如此重要的原因。

那么,让我们深入了解 Google 的 QUIC 协议,并介绍您需要了解的所有相关信息。

QUIC的历史

QUIC 最初代表“ Quick UDP Internet Connections”,尽管该术语不再用作首字母缩写词。现在,“QUIC”用于描述谷歌设计的通用传输层网络协议。

  • 2012年,最初实施部署。
  • 2013 年,随着IETF会议上实验范围的扩大,它被公开宣布。
  • 2015 年 6 月,针对其规范的Internet 草案提交给 IETF 以进行标准化。
  • 2016年,QUIC工作组成立。
  • 2018 年 10 月,基于 QUIC 的 HTTP 映射开始被称为“ HTTP/3 ”,使得 QUIC 势必成为全球标准。
  • 2021 年 5 月,IETF 终于在RFC 9000 中对其进行了标准化。

 

什么是QUIC?

Google 的 QUIC 是一种基于 UDP 的低延迟互联网传输协议,该协议常用于游戏、流媒体和 VoIP 服务。[…]UDP 比 TCP 轻得多,但作为回报,它提供的纠错服务比 TCP 少得多。[…]通过 QUIC,Google 旨在将 UDP 和 TCP 的一些最佳功能与现代安全工具相结合。—谷歌希望通过其 QUIC 协议加速网络

 

QUIC 与 TCP

TCP不同的是,QUIC 协议只允许以加密形式进行通信。由于 QUIC 中未加密的通信形式被设计禁止,隐私和安全本质上是 QUIC 数据传输的一部分。这在网络安全方面绝对是一个加分项,但在不严格要求加密时也可能代表无用的开销。

但真正的突破在于与 TCP + TLS相比,QUIC 建立安全连接所需的时间。换句话说,QUIC 的主要目标是大大减少连接建立期间的开销。

 

这要归功于 QUIC 的设计方式。事实上,QUIC 使交换配置密钥和支持的协议成为初始握手过程的一部分。具体来说,当发送方打开连接时,响应数据包中还包含以后需要使用加密的数据包所需的数据。此步骤无需建立 TCP 连接,然后通过其他数据包协商安全协议。这会导致更高的连接速度和响应的显着下降,甚至在主机间重新连接期间下降到 0ms,这称为“零 RTT 连接建立”

如您所见,典型的安全 TCP 连接需要两到三趟往返,然后发送方才能真正开始接收数据。这可能需要长达 300 毫秒的时间。通过使用 QUIC,发送方可以立即开始与之前已经与之交谈过的接收方交谈。

UPD相比,QUIC 成为赢家,因为它具有一些 TCP 功能,例如UPD 没有的拥塞控制自动重传。这使得它本质上比纯 UDP 更可靠。详细地说,QUIC虽然使用UDP作为基础,但它涉及丢失恢复。这是因为 QUIC 的行为类似于 TCP,并在数据丢失时单独检查每个流重新传输数据。

此外,如果一个流发生错误,QUIC 可以继续独立地为其他流服务。此功能对于提高易出错链路的性能非常有用,因为在 TCP 通知丢失或丢失的数据包之前可能会收到大量额外的数据。在 QUIC 中,可以在修复流的同时自由处理这些数据。

QUIC 还提高了网络切换事件期间的性能,例如当移动设备用户从 Wi-Fi 网络移动到移动网络时。当同样的事情通过 TCP 发生时,将执行一个漫长的过程,其中每个现有连接一次断开一个,然后按需重新建立。为了解决这个问题及其在性能方面的后果,QUIC 包含一个连接 ID 到接收器,而不管来源如何。这允许通过重新发送单个数据包来重新建立连接,该数据包始终包含此 ID,即使发送方的 IP 地址已更改,接收方也将认为该数据包有效。

那么,这足以让 QUIC 取代 TCP 吗?

 

结论

在这里,我们研究了 Google 的 QUIC 协议是什么,它是如何工作的,以及为什么它可能代表互联网协议的未来。QUIC 是由谷歌设计的,旨在取代许多过时的标准,并可能在未来几年真正改变游戏规则。

2
猜你喜欢