QUIC(Quick UDP Internet Connections)协议能帮助您大幅提升客户端访问速度,尤其是在弱网络、Wi-Fi和移动网络频繁切换等场景下,无需重连即可实现多路复用,提升资源的访问效率,同时保障数据传输的安全性。
QUIC协议介绍
QUIC协议又被称为快速UDP互联网连接协议,提供与SSL相同的安全性,同时具备多路复用等多种优势,具有极佳的弱网性能,在丢包和网络延迟严重的情况下仍可提供可用的服务。QUIC协议在应用程序层面可以实现不同的拥塞控制算法,不需要操作系统和内核支持,相比于传统的TCP协议,拥有了更好的改造灵活性,适合用于在TCP协议优化遇到瓶颈的业务。
随着短视频、直播等新兴业务的飞速发展,流媒体传输对于带宽和延迟提出了双重要求,QUIC协议可以有效解决网络、视频卡顿的问题,提升音视频资源的访问效率,同时保障数据传输的安全性。
支持的QUIC协议类型
ALB支持gQUIC和iQUIC。HTTP/3协议是以iQUIC协议为基础构建的应用层协议,它主要依赖iQUIC来实现多路复用、拥塞控制、损失检测和重新传输等功能。HTTP/3协议可以更快地启动客户端连接,消除了多路复用流中的队头阻塞。
应用型负载均衡ALB支持的gQUIC协议版本有Q46、Q43、Q39,支持的HTTP/3协议版本为h3。
如何协商HTTP/3
开启QUIC升级后,ALB将向客户端通告HTTP/3和gQUIC协议,优先通告HTTP/3,让支持HTTP/3的客户端优先尝试与ALB建立连接。
客户端在无法建立HTTP/3连接时始终回退为使用HTTPS或HTTP/2。
支持HTTP/3的客户端使用与HTTP/3有关的缓存Cookie。
启用或停用“QUIC升级”不会影响ALB连接到客户端的能力。
在 Alt-Svc HTTP 响应标头中通告支持,alt-svc 标头值:
Alt-Svc : h3=":$quic_port"; ma=3600,quic=":$quic_port"; v="46,43,39"; ma=3600
当“开启QUIC升级” 时,某些情况会导致您的客户端回退为使用HTTPS或HTTP/2而不是协商 HTTP/3。其中包括:
客户端支持的HTTP/3版本与ALB支持的HTTP/3版本不兼容。
ALB检测到UDP流量阻塞或速率受限以致HTTP/3无法工作。
客户端完全不支持HTTP/3,因此不尝试协商HTTP/3连接。
客户端要求
如果您使用Chrome浏览器,支持直接对ALB发起QUIC协议请求。
使用Chrome浏览器访问QUIC,需要使用指定的Chrome浏览器版本:
ALB支持的gQUIC协议最高版本是Q46,对应的Chrome浏览器版本为Chrome 74-81。
ALB支持的HTTP/3协议最高版本是h3,对应的Chrome浏览器版本为Chrome 87及以上。
如果您使用其他客户端例如自研APP,则客户端必须集成支持QUIC协议的网络库,例如:lsquic-client、cronet网络库、ngtcp2和quiche等。
场景示例
使用Chrome浏览器访问ALB实例时,ALB会根据配置的监听所绑定的证书域名example.com
访问后端服务器。主要有以下两种应用场景:
当同时配置了HTTPS监听和QUIC监听时,系统会优先使用QUIC监听,此时在Chrome浏览器中输入证书绑定的域名
example.com
,ALB实例将通过配置的QUIC监听将客户端的请求转发至默认后端服务器组RS1。当QUIC监听不可用时,系统会自动切换到关联的HTTPS监听,此时在Chrome浏览器中输入证书绑定的域名
example.com
,ALB实例将会通过配置的HTTPS监听将客户端的请求转发至默认后端服务器组RS1。
前提条件
已创建ALB实例。具体操作,请参见创建和管理ALB实例。
已创建服务器组RS1。具体操作,请参见创建和管理服务器组。
已在服务器组RS1中添加ECS01实例,并在ECS01实例中部署了Nginx的视频服务。
您已经在ALB实例上部署了SSL服务器证书,该证书已绑定了域名
example.com
。
步骤一:创建QUIC监听
- 登录应用型负载均衡ALB控制台。
在顶部菜单栏,选择ALB实例所属的地域。
在实例页面,找到目标实例,单击目标实例ID。在监听页签,单击创建监听。
在配置监听配置向导,完成以下配置,然后单击下一步。
此处仅列出和本文强相关的配置项,其余参数可保持默认值或根据实际情况修改。更多信息,请参见添加QUIC监听。
监听配置
说明
监听配置
说明
选择监听协议
选择监听的协议类型。
本示例选择QUIC。
监听端口
输入用来接收请求并向后端服务器进行请求转发的监听端口。
端口范围为1~65535。
同一个ALB实例内,相同协议的监听端口不能重复,且HTTP和HTTPS监听端口互不重复。
在配置SSL证书配置向导,选择服务器证书,然后单击下一步。
在选择服务器组配置向导,选择服务器类型,然后选择服务器组并查看后端服务器信息,单击下一步。
在配置审核配置向导,确认配置信息,单击提交。
步骤二:创建HTTPS监听
创建HTTPS监听时,请开启QUIC升级,并关联已创建的QUIC监听。
在实例页面,找到在步骤一中创建了QUIC监听的实例,单击该实例ID。
在实例详情页签,单击监听页签,单击创建监听。
在配置监听配置向导,完成以下配置,然后单击下一步。
此处仅列出和本文强相关的配置项,其余参数可保持默认值或根据实际情况修改。更多信息,请参见添加HTTPS监听。
监听配置
说明
监听配置
说明
选择监听协议
选择监听的协议类型。
本示例选择HTTPS。
监听端口
输入用来接收请求并向后端服务器进行请求转发的监听端口,通常HTTP协议使用80端口,HTTPS协议使用443端口。
端口范围为1~65535。
本示例输入443。
在同一个负载均衡实例内,监听端口不可重复。
高级配置
单击修改展开高级配置。
开启QUIC升级
选择是否开启QUIC升级。
本示例开启QUIC升级,并在关联的QUIC监听下拉列表中选择已创建的QUIC监听。
在配置SSL证书配置向导,选择服务器证书,然后单击下一步。
如果您要设置TLS安全策略,单击高级配置后的修改。
在选择服务器组配置向导,选择服务器类型,然后选择服务器组,查看后端服务器信息,然后单击下一步。
在配置审核页面,确认配置信息,单击提交。
步骤三:配置域名解析
将example.com
通过CNAME域名解析的方式解析到ALB实例的公网服务域名上。
登录应用型负载均衡控制台。
在顶部菜单栏选择地域。
选择要进行域名解析的ALB实例,复制其对应的DNS名称。
执行以下步骤添加CNAME解析记录。
对于非阿里云注册域名,需先将域名添加到云解析控制台,才可以进行域名解析设置。具体操作,请参见域名管理。如果您是阿里云注册的域名,请直接执行以下步骤。
登录域名解析控制台。
在权威域名解析页面,找到目标域名,在操作列单击解析设置。
在解析设置页面,单击添加记录。
在添加记录面板,配置以下信息完成CNAME解析配置,然后单击确定。
配置
说明
配置
说明
记录类型
在下拉列表中选择CNAME。
主机记录
您的域名的前缀。
解析请求来源
选择默认。
记录值
输入域名对应的CNAME地址,即您复制的ALB实例的DNS名称。
TTL
全称Time To Live,表示DNS记录在DNS服务器上的缓存时间,本文使用默认值。
新增CNAME记录实时生效,修改CNAME记录取决于本地DNS缓存的解析记录的TTL到期时间,默认为10分钟。
添加时如遇添加冲突,请换一个解析域名。更多信息请参见解析记录冲突规则。
步骤四:结果验证
本文以Windows客户端为例说明。在浏览器中输入example.com
可访问到ALB实例,本文在服务器组RS1对应的后端服务器ECS01上使用Nginx搭建了视频服务。
当同时配置了HTTPS监听和QUIC监听时,在浏览器中输入证书绑定的域名
example.com
,并按F12
可以查看当前网页的协议为HTTP/3,耗时93毫秒。如下图所示:
当QUIC监听不可用时,在浏览器中输入证书绑定的域名
example.com
,并按F12
可以查看当前网页的协议为HTTP/2,耗时148毫秒。如下图所示:
经测试,ALB使用HTTP/3协议大幅提升了客户端访问后端服务器视频的速度。
- 本页导读 (1)
- QUIC协议介绍
- 支持的QUIC协议类型
- 如何协商HTTP/3
- 客户端要求
- 场景示例
- 前提条件
- 步骤一:创建QUIC监听
- 步骤二:创建HTTPS监听
- 步骤三:配置域名解析
- 步骤四:结果验证