写点什么

QUIC 协议在天翼云 CDN 全站加速产品中的应用

  • 2023-05-09
    北京
  • 本文字数:1364 字

    阅读完需:约 4 分钟

本文分享自天翼云开发者社区《QUIC 协议在天翼云 CDN 全站加速产品中的应用》,作者:郭****迎

https://www.ctyun.cn/developer/article/410988086165573


1、什么是 QUIC 协议

QUIC 全称:Quick UDP Internet Connections,是一种实验性传输层网络协议,提供与 TLS/SSL 相当的安全性,同时具有更低的连接和传输延迟。QUIC 目前的主要应用于 http 协议,基于 QUIC 的 HTTP/3 协议(RFC9114),除了拥有 HTTP/2 的各项优点,同时由于 QUIC 的特性,在弱网环境下拥有更强大的性能优势。QUIC 由 Google 自研,2012 年部署上线,2013 年提交 IETF,2021 年 5 月,IETF 推出标准版 RFC9000。

QUIC 的主要优势如下:

1)握手建连更快

QUIC 建连时间大约 0~1 RTT,在两方面做了优化:

传输层使用了 UDP,减少了 1 个 RTT 三次握手的延迟。

 

加密协议采用了 TLS 协议的最新版本 TLS 1.3,相对之前的 TLS 1.1-1.2,3 允许客户端无需等待 TLS 握手完成就开始发送应用程序数据的操作,可以支持 1 RTT 和 0RTT。

 

对于 QUIC 协议,客户端第一次建连的握手协商需 1-RTT,而已建连的客户端重新建连可以使用之前协商好的缓存信息来恢复 TLS 连接,仅需 0-RTT 时间。因此 QUIC 建连时间大部分 0-RTT、极少部分 1-RTT,相比 HTTPS 的 3-RTT 的建连,具有极大的优势。


2)避免队首阻塞的多路复用

QUIC 同样支持多路复用,相比 HTTP/2,QUIC 的流与流之间完全隔离的,互相没有时序依赖。如果某个流出现丢包,不会阻塞其他流数据的传输和应用层处理,所以这个方案并不会造成队首阻塞。


3)支持连接迁移

什么是连接迁移?举个例子,当你用手机使用蜂窝网络参加远程会议,当你把网络切换到 WLAN 时,会议客户端会立马重连,视频同时出现一瞬间的卡顿。这是因为,TCP 采用四元组(包括源 IP、源端口、目标地址、目标端口)标识一个连接,在网络切换时,客户端的 IP 发生变化,TCP 连接被瞬间切断然后重连。连接迁移就是当四元组中任一值发生变化时,连接依旧能保持,不中断业务。QUIC 支持连接迁移,它用一个(一般是 64 位随机数)ConnectionID 标识连接,这样即使源的 IP 或端口发生变化,只要 ConnectionID 一致,连接都可以保持,不会发生切断重连。


4)可插拔的拥塞控制

QUIC 是应用层协议,用户可以插拔式选择像 Cubic、BBR、Reno 等拥塞控制算法,也可以根据具体的场景定制私有算法。


5)前向纠错(FEC)

QUIC 支持前向纠错,弱网丢包环境下,动态的增加一些 FEC 数据包,可以减少重传次数,提升传输效率。

 

2、QUIC 协议在天翼云全站加速产品中的应用

目前,天翼云全站加速产品已开放使用了七层协议的 QUIC,其工作原理如下图所示,主要应用在客户端与全站加速平台边缘节点的交互,主要适用于弱网环境下的传输优化。



3、适用场景

如果您希望在弱网环境下拥有更高的性能,如更快的首屏、首包,更快的传输效率,可以使用 QUIC 接入全站加速平台。

 

4、全站加速产品支持的 QUIC 类型

目前,天翼云全站加速产品同时支持 IETF QUIC 和 GOOGLE QUIC,以方便不同的客户接入。

· GOOGLE QUIC 支持的版本号为 Q043、Q046、Q050。

· IETF QUIC 支持的版本号为 h3-29 和 h3-v1,IETF QUIC 是互联网标准版本,强烈建议您使用 IETF QUIC。


5、注意事项

如果您使用浏览器接入,请使用支持 QUIC 协议的浏览器,如 Chrome、Microsoft Edge 等。

如果您使用自研 App 接入,则 App 需要自行实现 QUIC 协议栈或者集成支持 QUIC 协议的网络库,例如:quic-go、ngtcp2、quiche、quant、kwik、aioquic、picoquic 等。

用户头像

还未添加个人签名 2022-02-22 加入

天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。

评论

发布
暂无评论
QUIC协议在天翼云CDN全站加速产品中的应用_云计算_天翼云开发者社区_InfoQ写作社区