简介:众所周知,QUIC(Quick UDP Internet Connection)是谷歌制定的一种互联网传输层协议,它基于UDP传输层协议,同时兼具TCP、TLS、HTTP/2等协议的可靠性与安全性,可以有效减少连接与传输延迟,更好地应对当前传输层与应用层的挑战。目前阿里云CDN线上提供GQUIC版本服务,已经有Tbps级别的流量承载,并对客户来带了显著的延迟收益。本文将由低向上分层讨论QUIC协议的特点。
众所周知,QUIC(Quick UDP Internet Connection)是谷歌制定的一种互联网传输层协议,它基于UDP传输层协议,同时兼具TCP、TLS、HTTP/2等协议的可靠性与安全性,可以有效减少连接与传输延迟,更好地应对当前传输层与应用层的挑战。目前阿里云CDN线上提供GQUIC版本服务,已经有Tbps级别的流量承载,并对客户来带了显著的延迟收益。本文将由低向上分层讨论QUIC协议的特点。
作者:黎叔
QUIC协议是一系列协议的集合,主要包括:
- 传输协议(Transport)
- 丢包检测与拥塞控制(Recovery)
- 安全传输协议(TLS)
- HTTP3协议
- HTTP头部压缩协议(QPACK)
- 负载均衡协议(Load Balance)
本文针对QUIC的系列协议进行科普性简单介绍,细节读者仍然需要通读协议原文。本文基于quic的讨论均基于quic-34系列版本。
QUIC协议类似快递公司,在收到用户数据后,将数据打包,传输到对端,再进行拆包,将用户数据交给了最终目标用户。QUIC是基于UDP协议,实现了类似TCP的可靠传输,并在此基础上,结合HTTP3/QPACK,更好地服务互联网上海量的HTTP Request/Response需求。如其名发音,QUIC(quick),其目标就是希望比基于TCP的HTTP交互有更好的体验。
QUIC/HTTP3的特点:
- 有序传输:用stream的概念,确保数据有序。不同的stream或者packet,不保证有序到达。
- 报文压缩,提高荷载比率:比如QUIC引入了variable-length integer encoding。又比如引入QPACK进行头部压缩
- 可靠传输:支持丢包检测和重传
- 安全传输:TLS 1.3安全协议
分层的协议
QUIC是在UDP的基础上,构建类似TCP的可靠传输协议。HTTP3则在QUIC基础上完成HTTP事务。
网络总是分层讨论的,在此我们由低向上分层讨论quic协议
- UDP层: 在UDP层传输的是UDP报文,此处关注的是UDP报文荷载内容是什么,以及如何高效发送UDP报文
- Connection层: Connection通过CID来确认唯一连接,connection对packet进行可靠传输和安全传输
- Stream层: Stream在相应的Connection中,通过StreamID进行唯一流确认,stream对stream frame进行传输管理
- HTTP3层:HTTP3建立在QUIC Stream的基础上,相对于HTTP1.1和HTTP2.0,HTTP3提供更有效率的HTTP事务传输。HTTP3中通过QPACK协议进行头部压缩
UDP层
本章节讨论QUIC发包的UDP部分的相关问题。
UDP荷载大小
荷载大小受限于3个对象:QUIC协议规定;路径MTU;终端接受能力
1、QUIC不能运行在不支持1200字节的单个UDP传输网络路径上 QUIC有规定initial包大小不得小于1200,如果数据本身不足1200(比如initial ack),那么需要用padding方式至少填充到1200字节
2、QUIC不

QUIC是谷歌制定的互联网传输层协议,基于UDP,融合TCP、TLS和HTTP/2的优点,旨在减少延迟并提高安全性。阿里云CDN已实现GQUIC服务,带来显著的延迟优化。本文深入探讨QUIC的UDP层、连接层、Stream层、HTTP3层以及安全传输、可靠传输和流控等方面,展示了QUIC如何提升网络性能。
最低0.47元/天 解锁文章
4037

被折叠的 条评论
为什么被折叠?



