网络信息:什么是QUIC?

安毅娥
导读 今天,我们就来谈谈QUIC是什么的一些信息。很多朋友对QUIC是什么的一些信息感兴趣。边肖今天整理了一些资料,希望能帮助到有需要的朋友。QU

今天,我们就来谈谈QUIC是什么的一些信息。很多朋友对QUIC是什么的一些信息感兴趣。边肖今天整理了一些资料,希望能帮助到有需要的朋友。

QUIC(快速UDP网络连接)是一种实验性的网络传输协议,位于OSI模型的传输层。由谷歌开发,2013年实施。QUIC使用UDP协议,在两个端点之间创建连接,并支持多路连接。

QUIC(快速UDP互联网连接)是一种实验性的网络传输协议,位于OSI模型的传输层。由谷歌开发,2013年实施。QUIC使用UDP协议,在两个端点之间创建连接,并支持多路连接。

在设计之初,QUIC希望提供相当于SSL/TLS级别的网络安全保护,减少数据传输和连接创建的延迟时间,控制双向带宽,避免网络拥塞。谷歌希望用这种协议取代TCP,加快网页的传输速度。它计划向互联网工程任务组(IETF)提交QUIC,并使其成为下一代的官方网络规范。

2015年6月,QUIC的网络草案正式提交给互联网工程任务组。

2018年10月,互联网工程任务组HTTP和QUIC工作组正式将基于QUIC协议的HTTP(英文:HTTP over QUIC)更名为HTTP/3,为下一代规范的建立做准备。

介绍

QUIC旨在提供与TCP连接几乎相同的可靠性,但延迟大大降低。它主要通过理解HTTP流量的两种行为来实现这一点。

第一个变化是大大减少了连接创建期间的开销。由于大多数HTTP连接需要TLS,QUIC将协商密钥和支持的协议作为初始握手过程的一部分。当客户端打开连接时,服务器响应的数据包包含未来数据包加密所需的数据。这消除了首先在TCP上连接并通过附加数据包协商安全协议的需要。其他协议可以以相同的方式服务,并将多个步骤合并到一个请求中。然后,这些数据可以用于初始设置中的后续请求以及将来的请求。

QUIC使用UDP协议作为其基础,不包括丢失恢复。相反,每个QUIC流被单独控制,丢失的数据在QUIC层而不是UDP层重传。这意味着,如果一个流发生错误,协议栈可以继续独立地为其他流提供服务。这对于提高易出错链路的性能非常有用,因为在大多数情况下,在TCP协议通知数据包丢失或损坏之前,可能会收到大量正常数据,但在错误纠正之前,其他正常请求会等待甚至重新传输。QUIC在修复单个流时可以自由处理其他数据,也就是说,即使一个请求出现错误,也不会影响其他请求。

QUIC包括许多其他更常见的变化,也可以优化整体延迟和吞吐量。比如每个包都是单独加密的,加密数据的时候就不需要等一些包了。在TCP下通常不可能做到这一点,因为加密是以字节流的形式记录的,协议栈不知道这个流中更高层的边界。这些可以通过运行在更高层的协议来协商,但是QUIC的目标是通过一个握手过程来完成。

QUIC的另一个目标是提高网络切换期间的性能,例如当移动设备的用户从WiFi热点切换到移动网络时会发生什么。当TCP上发生这种情况时,一个漫长的过程就开始了:每个现有的连接逐个超时,然后根据需要重新建立。有一个很大的延迟,因为新的连接直到旧的连接超时才会建立。为了解决这个问题,QUIC包含一个连接标识符,它唯一地标识客户机和服务器之间的连接,而不管源IP地址。这样,你只需要发送一个包含这个ID的数据包就可以重新创建连接,因为即使用户的IP地址发生变化,原来的连接ID仍然有效。

QUIC是在应用程序空间中实现的,而不是在操作系统内核中。当数据在应用程序之间移动时,由于上下文切换,这通常需要额外的开销。但是在QUIC下,协议栈被设计为由单个应用程序使用,并且每个应用程序使用QUIC来通过UDP托管它自己的连接。最终,差别可能非常小,因为整个HTTP/2栈的大部分已经存在于应用程序中(或者更常见的库)。剩下的放在这些库中基本就是纠错,对HTTP/2栈的大小或者整体复杂度影响不大。

QUIC允许更容易地进行未来的更改,因为它可以在不改变内核的情况下进行更新。QUIC的长期目标之一是增加前向纠错和改进拥塞控制。

从TCP迁移到UDP的一个问题是,TCP被广泛采用,互联网基础设施中的许多中间设备被调整为限制甚至阻止UDP。Google对此进行了一些探索性的实验来描述,发现只有少数连接存在这个问题。所以Chromium的网络栈同时开放QUIC和传统TCP连接,在QUIC连接失败时零延迟回退到TCP连接。

GGUIC和iQUIC

由 Google 创建并以 QUIC 的名称提交给 IETF 的协议与随后在 IETF 中创建的 QUIC 完全不同(尽管名称相同)。 最初的 Google QUIC(也称为 gQUIC)严格来说是通过加密 UDP 发送 HTTP/2 帧的协议,而 IETF 创建的 QUIC 是通用传输协议,也就是说 HTTP 以外的其他协议(如 SMTP、DNS、SSH、Telnet、NTP)也可以使用它。重要的是要注意并记住其差异。 自 2012 年以来,Google 在其服务及 Chrome 中使用的 QUIC 版本(直到 2019 年 2 月)为 Google QUIC。随着时间的推移,它正在逐渐变得类似于 IETF QUIC(也称为 iQUIC)。

以上就是关于QUIC 是什么对比这方面的一些信息了 小编整理的这些讯息希望对童鞋们有所帮助。

标签:

免责声明:本文由用户上传,如有侵权请联系删除!

上一篇网络信息:什么是谷歌应用引擎(GAE)

下一篇Chrome即将推出的下载UI重新设计准备了拖放支持