温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

QUIC协议是什么意思

发布时间:2021-11-23 14:23:30 来源:亿速云 阅读:410 作者:柒染 栏目:互联网科技

这篇文章将为大家详细讲解有关QUIC协议是什么意思,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

QUIC的全称是 Quick UDP Internet Connections protocol,由 Google 设计提出,目前由 IETF 工作组推动进展,其设计的目标是替代 TCP 成为 HTTP/3 的数据传输层协议。熹乐科技在物联网(IoT)和边缘计算(Edge Computing)场景也一直在打造底层基于 QUIC 通讯协议的边缘计算微服务框架YoMo,长时间关注 QUIC 协议的发展,本文章简单介绍了 QUIC 协议的特点和术语。

QUIC 是一种多路复用和安全的通用传输协议,它提供:

  • 流(stream)多路复用

  • 流(stream)和连接(connection)级别的流量控制

  • 建立低延迟连接(1-RTT 或者 0-RTT)

  • 连接迁移(Connection migration)和弹性 NAT 重绑定

  • 经过身份验证和加密的头部(header) 和有效载荷(payload)

QUIC 建立了客户端(client)和服务端(server)之间有状态的交互连接。连接的主要目的是通过应用协议支持结构化的数据交换。

应用协议通过 QUIC 连接的流(streams)交换信息,流(stream)是有序序列的字节(bytes)。可以创建两种类型的流:双向流(bidirectional streams),允许客户端和服务端互相发送数据。单向流(unidirectional streams),允许单个端点(endpoint)发送数据。一个基于信用的方案(credit-based scheme)用于限制流的创建并限制可发送的数据量。

QUIC 连接中的流(streams)是互相独立的,如果某个流(stream)出现丢包,不会影响连接中的其他正常传输的流。这样可以避免 TCP 协议中的队头阻塞(Head-of-Line blocking)。

QUIC协议是什么意思

QUIC 握手(handshake)合并了加密和传输参数的协商,只需要 1-RTT 即可可以完成握手,提升了建立连接到交换应用程序数据的速度。第二次连接时,可以通过第一次连接时获取到的预共享密钥(pre-shared secret)立即发送数据(0-RTT)。

QUIC协议是什么意思

QUIC 连接并不是严格地绑定到一个单一的网络路径(IP:Port)。连接迁移(Connection migration)使用连接 ID 来允许连接转移到新的网络路径。比如手机网络从蜂窝网络(cellular)切换到 WIFI 时,IP地址改变了,QUIC 可以通过连接迁移(connection migration)来避免连接中断。

QUIC 使用帧(frames)进行端到端的通信。一个或多个帧(frame)被组装成一个 QUIC 包(packet)。QUIC对所有数据包进行身份验证,并尽可能加密,增加了端到端传输的安全性。QUIC 数据包用 UDP 数据报(datagrams)进行传输,而不是创建一个全新的传输层协议,这是因为现有的网络设备和系统支持 TCP 和 UDP 协议,其中 TCP 有队头阻塞等缺点,所以 UDP 成为 QUIC 协议的选择,这可以更快的在现有系统和网络中部署。QUIC 是在用户空间(user space)中,相比 TCP(kernel space,操作系统内核)可以更快的迭代更新。

QUIC协议是什么意思

连接建立之后,可以通过多个选项关闭连接:应用程序可以管理正常(graceful)关闭、端点(endpoints)可以协商超时时间、错误可以导致立即断开连接、无状态(stateless机制提供了在一个端点失去状态后终止连接的功能。

QUIC 协议常见的术语:

数据包(Packet):QUIC 协议中一个完整可处理的单元,可以封装在 UDP 数据报(datagram)中。多个 QUIC 数据包(packets)可以封装在一个 UDP 数据报(datagram)中。

帧(Frame):QUIC 数据包(packet)的有效载荷(payload)。

端点(Endpoint):在 QUIC 连接中生成、接收和处理 QUIC 数据包(packets)。QUIC 中只有两种端点(endpoints):客户端(client)和服务端(server)。

客户端(Client): 创建 QUIC 连接的端点。

服务端(Server): 接收 QUIC 连接的端点。

地址(Address):未经限定使用时,表示网络路径一端的 IP 版本、IP 地址和 UDP 端口号的元组。

连接 ID(Connection ID): 用于标识端点 QUIC 连接的一种标识符。每个端点(endpoint)为其对端(peer)选择一个或多个连接 ID,将其包含在发送到该端点的数据包(packets)中。这个值对 peer 不透明。

流(Stream):QUIC 连接中有序字节的单向(unidirectional)或双向(bidirectional)通道。一个 QUIC 连接可以同时携带多个流。

应用程序(Application):使用 QUIC 发送或者接收数据的实体。

关于QUIC协议是什么意思就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI