扒一扒能加速互联网的QUIC协议

QUIC是谷歌制定的互联网传输层协议,基于UDP,融合TCP、TLS和HTTP/2的优点,旨在减少延迟并提高安全性。阿里云CDN已实现GQUIC服务,带来显著的延迟优化。本文深入探讨QUIC的UDP层、连接层、Stream层、HTTP3层以及安全传输、可靠传输和流控等方面,展示了QUIC如何提升网络性能。
简介:众所周知,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不

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值