功能介绍
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的主要优势如下:
- 握手建连更快
QUIC建连时间大约0~1 RTT,在两方面做了优化:
- 传输层使用UDP,减少1个RTT三次握手的延迟。
- 加密协议采用TLS 协议的最新版本TLS 1.3,相对之前的TLS 1.1-1.2,TLS1.3允许客户端无需等待TLS握手完成就开始发送应用程序数据的操作,可以支持1RTT和0RTT。
对于QUIC协议,客户端第一次建连的握手协商需1RTT,而已建连的客户端重新建连可以使用之前协商好的缓存信息来恢复TLS连接,仅需0RTT时间。因此QUIC建连时间大部分0RTT、极少部分1RTT,相比HTTPS的3RTT的建连,具有极大的优势。
- 避免队首阻塞的多路复用
QUIC同样支持多路复用,相比HTTP/2,QUIC的流与流之间完全隔离,互相没有时序依赖。如果某个流出现丢包,不会阻塞其他流的数据传输和应用层处理,所以这个方案并不会造成队首阻塞。
- 支持连接迁移
当你用手机使用蜂窝网络参加远程会议,当你把网络切换到WLAN时,会议客户端会立马重连,视频同时出现瞬间卡顿。这是因为,TCP采用四元组(包括源站IP、源站端口、目标地址、目标端口)标识一个连接,在网络切换时,客户端的IP发生变化,TCP连接被瞬间切断然后重连。连接迁移就是当四元组中任一值发生变化时,连接依旧能保持,不中断业务。QUIC支持连接迁移,它用一个(一般是64位随机数)ConnectionID标识连接,这样即使源的IP或端口发生变化,只要ConnectionID一致,连接都可以保持,不会发生切断重连。
- 可插拔的拥塞控制
QUIC是应用层协议,用户可以插拔式选择像Cubic、BBR、Reno等拥塞控制算法,也可以根据具体的场景定制私有算法。
- 前向纠错(FEC)
QUIC支持前向纠错,弱网丢包环境下,动态地增加一些FEC数据包,可以减少重传次数,提升传输效率。
工作原理
目前,天翼云CDN加速产品开放使用的是七层协议的QUIC,其工作原理如下图所示,主要应用在客户端与CDN加速平台边缘节点的交互,主要适用于弱网环境下的传输优化。
客户端要求
QUIC属于双边协议,需客户端支持才可发起,客户端要求如下:
- 浏览器:如果您使用浏览器接入,请使用支持QUIC协议的浏览器,如Chrome、Microsoft Edge等。
- 自研App:您使用自研App接入,则App需要自行实现QUIC协议栈或者集成支持QUIC协议的网络库,例如:quic-go、ngtcp2、quiche、quant、kwik、aioquic、picoquic等。
适用场景
如果您希望在弱网环境下拥有更高的性能,如更快的首屏、首包,更快的传输效率,可以使用QUIC接入CDN加速平台。
配置说明
该功能暂不支持客户自助配置,如需使用,请通过提交工单给天翼云客服,由其人工操作开启。
提交工单时,请您提供如下信息:
参数名 | 说明 |
---|---|
QUIC版本号 | 配置需开启的QUIC版本,例如:H3-v1 |
注意事项
目前,天翼云CDN加速产品同时支持IETF QUIC和GOOGLE QUIC,以方便不同的客户接入。
- GOOGLE QUIC支持的版本号为Q43、Q46、Q50。
- IETF QUIC支持的版本号为H3-29和H3-v1,IETF QUIC是互联网标准版本,建议您使用IETF QUIC。