GA使用HTTP/3协议提升应用系统访问体验

QUIC协议是一种基于UDP的低延迟传输协议,而HTTP/3协议建立在QUIC协议之上,无需重连即可实现多路复用,提升资源的访问效率。在弱网络、Wi-Fi和移动网络频繁切换、高延迟丢包率高等场景下,您在用GA服务进行加速时可使用HTTP/3协议,加速应用访问、提升系统性能并改善用户体验。

功能简介

QUICHTTP/3协议及其特性

QUIC协议(Quick UDP Internet Connections,快速UDP互联网连接协议)是一种基于UDP的低延迟传输协议,旨在提供更快、更安全的互联网连接。QUIC的设计目标主要是为了解决TCPTLS在现代网络环境中的性能瓶颈问题,特别是在高延迟网络和多路复用连接方面。

由于其性能优势,QUIC被广泛认为是未来互联网传输协议的重要方向之一,也是HTTP/3协议的基础传输层协议。随着各大浏览器和Web服务器开始支持QUIC,它正逐渐成为现代互联网基础设施的一部分。

为什么使用QUICHTTP/3协议?

HTTP/3通过采用QUIC作为传输层协议,并结合一系列优化措施,在性能、安全性和可靠性方面相较于HTTP/1HTTP/2有了显著提升,特别是在高延迟、丢包率高的网络环境中表现更为出色。

以下是QUIC协议的一些关键优势与特性:

  • 降低延迟:

    • 多路复用:TCP建立连接需要三次握手,而TLS安全协商也需要额外的往返,这在高延迟网络环境下会显著增加连接建立时间。QUIC允许在一个单一的UDP流上同时处理多个独立的双向数据流,这有助于降低建立多个TCP连接带来的延迟,并且可以更好地应对丢包情况。

  • 传输可靠:

    • 快速重传和拥塞控制:QUIC实现了自己的拥塞控制机制和快速重传策略。当检测到数据包丢失时,QUIC能够迅速重传丢失的数据,同时根据网络状况动态调整数据发送速率,避免网络拥塞,保证数据传输的高效和可靠。

    • 前向纠错:QUIC可以使用前向纠错技术,在数据包发送时加入冗余信息,使得接收端即使在部分数据包丢失的情况下,也能够通过这些冗余信息恢复原始数据,而无需进行重传请求,从而提高传输的可靠性。

  • 加密安全:

    • 基于TLS:QUIC从一开始就将加密作为协议的一部分,每个QUIC连接都强制使用TLS进行加密,包括握手过程和之后的所有数据传输,这确保了数据的机密性和完整性。

    • 全流量加密:TCP数据传输易受中间环节如防火墙规则和NAT设备影响,安全性受限。相比之下,QUIC基于UDP,并通过全流量加密增强了数据包在整个传输路径中的完整性和私密性,消除中间节点干扰。

HTTP/3协议使用场景

  • 改善网页浏览体验:对于网页浏览而言,HTTP/3可以减少页面加载时间,特别是对于那些需要加载多个资源的复杂网页。通过QUIC提供的多路复用等能力,用户能更快地看到网页内容。

  • 实时通信应用:如即时通讯、视频会议和在线游戏等对延迟非常敏感的应用程序可以从HTTP/3中获益。QUIC的低延迟特性和快速错误恢复机制有助于保持流畅的实时通信体验。

  • 移动设备上的应用:移动网络环境下的连接往往不稳定,HTTP/3通过QUIC的无损恢复机制和对网络变化的更好适应性,能够为移动用户提供更稳定的连接体验。

  • 流媒体服务:对于视频和音频流媒体服务,例如短视频、直播等行业,HTTP/3可以提供更连续的播放体验,减少缓冲和中断的情况,提升用户满意度。

  • 高并发场景:例如大型电商平台、社交媒体平台在高流量时段,HTTP/3的多路复用能力可以有效处理大量并发请求,而不会像HTTP/2那样容易遇到队头阻塞的问题。

GA支持的协议版本与客户端要求

GA支持的HTTP/3协议版本为h3。需要确保客户端支持的HTTP/3版本与GA的版本适配:

  • 对应的Chrome浏览器版本为Chrome 87及以上版本。如果使用其他浏览器,需要确保浏览器支持HTTP/3。

  • 如果您使用其他客户端例如自研APP,则客户端必须集成支持QUIC协议的网络库,例如:lsquic-client、cronet网络库、ngtcp2quiche等。

GA与客户端如何协商HTTP/3

在服务器与客户端建立HTTP/3连接前,由于UDP的无连接特性,客户端通常会先通过TLS 1.3握手与服务器建立安全连接,并在这个过程中自动协商使用HTTP/3,而不需要用户或开发者明确指定。

HTTP/3是一个全新的协议,它不是直接在HTTP/1.1HTTP/2之上的更新或扩展,而是基于QUIC协议。由于这个根本性的改变,HTTP/3与之前的HTTP版本在协议层面并不直接兼容。为了确保向后兼容,Web服务器和浏览器通常会实现多种HTTP版本,包括HTTP/1.1、HTTP/2HTTP/3,并且能够根据客户端和服务器的支持情况自动协商使用最适合的协议版本。这意味着,虽然HTTP/3本身不直接兼容旧版HTTP,但通过现代的客户端与服务器实现,用户和开发者通常无需担心兼容性问题,因为技术层面上会自动处理协议的选择和降级。

GA与客户端协商HTTP/3的过程:

  1. GA实例的HTTPS监听中,HTTP协议的最大版本配置为HTTP/3之后,GA将向客户端通告HTTP/3支持。在HTTP响应标头Alt-Svc中通告支持,Alt-Svc标头值为:Alt-Svc : h3=":$quic_port"; ma=3600

  2. 客户端尝试与GA建立HTTP连接。需要注意:

    • 客户端在无法建立HTTP/3连接时,始终回退为使用HTTP/1.1HTTP/2。

    • 客户端支持使用HTTP/3有关的缓存Cookie。

    • 无法建立HTTP/3连接的场景:

      • 客户端支持的HTTP/3版本与GA支持的HTTP/3版本不兼容。

      • GA检测到UDP流量阻塞或速率受限以致HTTP/3无法工作。

      • 客户端完全不支持HTTP/3,因此不尝试协商HTTP/3连接。

  3. 启用或停用GAHTTP/3配置不会影响GA连接到客户端的能力。

场景示例

某公司的总部在德国(法兰克福),总部的一台应用服务器上部署了一个网站用于提供视频服务。客户端主要分布在华北(北京)地域。

该公司的网站服务面临以下挑战:

  • 希望从HTTP快速升级到HTTP/3协议对外提供服务,提升服务质量与系统能力。

  • 跨国公网不稳定,经常出现延迟、抖动、丢包等网络问题。

使用GA开启HTTP/3协议后,能够充分利用HTTP/3基于QUIC的高效传输机制,减少延迟、增强连接可靠性,改善在网络状况不佳时的数据传输性能。

此外,结合HTTPS加密措施,不仅能确保华北(北京)用户通过全球加速节点安全地访问服务器上的资源,而且还能在优化传输效率的同时,有力保障敏感信息在跨越广阔地理区域传输过程中的安全性,从而全面提升公司网站的服务质量和数据安全。

image

使用限制

  • GA使用HTTP/3协议,需要在配置HTTPS监听时选择HTTP协议的最大版本HTTP/3

  • 仅标准型按量付费GA实例支持配置HTTP/3。标准型包年包月GA实例、基础型GA实例暂不支持。

    如果您的按量付费GA实例不支持配置HTTP协议的最大版本,可能是由于实例版本不支持。如需使用,请向商务经理申请升级实例。

前提条件

  • 总部应用服务器已完成部署配置,可正常对外提供HTTP服务。

    测试服务配置示例参考

    本文使用德国(法兰克福)地域的ECS服务器用于测试,操作系统为CentOS 7.9。

    服务部署命令示例如下:

    说明

    需要将测试视频文件上传至服务器,并且将下面第四行命令的视频文件路径修改为正确的文件路径。

    示例中是将mp4文件上传到index.html同级目录下。

    yum install -y nginx
    systemctl start nginx.service
    cd /usr/share/nginx/html/
    echo "<video src="GA.mp4" controls=""></video>" > index.html
    
  • 已经注册域名并完成备案。具体操作,请参见注册阿里云域名ICP备案流程

  • 已购买证书或者上传第三方证书到SSL证书服务并绑定域名。关于创建证书,请参见正式证书快速入门

操作步骤

步骤一:配置GA实例并开启HTTP/3

  1. 登录全球加速管理控制台

  2. 实例列表页面,单击左上角创建加速实例 > 标准型按量计费

  3. 实例基础配置页面,自定义GA实例名称。完成后单击下一步

  4. 配置加速区域页面,加速区域选择华北2(北京),其他参数可保持默认值或根据实际情况修改。完成后单击下一步

    重要

    如果带宽峰值设置过低,可能出现限速从而导致流量被丢弃,请合理规划带宽峰值,确保和业务需求匹配。

    image

  5. 配置监听页面,配置以下信息,其他参数可保持默认值或根据实际情况修改。完成后单击下一步

    配置

    说明

    协议

    选择HTTPS

    HTTP协议的最大版本

    选择HTTP/3

    说明
    • 如果您的按量付费GA实例不支持配置HTTP协议的最大版本,可能是由于实例版本不支持。如需使用,请向商务经理申请升级实例。

    • 若客户端不支持HTTP/3,全球加速同时支持HTTP/2HTTP/1.1请求接入。

    端口

    选择HTTPS默认端口443

    服务器证书

    选择您的域名对应的SSL证书。

    image

  6. 配置终端节点组页面,配置以下信息,其他参数可保持默认值或根据实际情况修改。完成后单击下一步

    配置

    说明

    地域

    选择德国(法兰克福)

    终端节点配置

    • 后端服务类型选择ECS

    • 后端服务选择您的应用服务器。

    端口映射

    监听端口和应用服务端口不相同时,需要配置端口映射关系。

    本文监听端口配置为443,终端节点端口配置为80

    跨境服务配置

    本文场景下,业务配置涉及中国内地与非中国内地之间,或其他国家和地区之间的跨境访问加速时,需阅读并选中数据跨境合规承诺

    image

    跨境合规

  7. 配置审核页面,审核无误后单击提交,等待实例完成创建与配置。

步骤二:配置域名解析

您需要将自有域名通过DNS解析到全球加速的CNAME地址,访问请求才能转发到全球加速服务,实现加速效果。

  1. 登录全球加速管理控制台

  2. 选择要进行域名解析的GA实例,复制其对应的CNAME地址。

  3. 完成以下步骤来添加CNAME解析记录。

    1. 域名解析页面,找到目标自有域名,在操作列单击解析设置

      说明

      对于非阿里云注册域名,需先添加域名到云解析控制台,才可以进行域名解析设置。

    2. 在解析设置页面单击添加记录

    3. 添加记录面板配置以下信息完成CNAME解析配置,然后单击确认

      配置

      说明

      记录类型

      在下拉列表中选择CNAME

      主机记录

      您的域名的前缀。

      解析请求来源

      选择默认。

      TTL时间

      全称Time To Live,表示DNS记录在DNS服务器上的缓存时间,本文使用默认值。

      记录值

      输入域名对应的CNAME地址,即您复制的GA实例的CNAME地址。

步骤三:验证HTTP/3以及加速效果

以华北2(北京)加速区域的客户端访问为例,测试视频加速效果。

  1. 测试使用了HTTP/3GA加速效果:

    浏览器打开开发者工具,访问https://<自有域名>,可以正常访问后端服务。您可以通过禁用浏览器缓存避免缓存对HTTP/3协商的影响,例如在Chrome中勾选Disable cache

    image

  2. 测试不使用HTTP/3时的GA加速效果:

    修改GA实例的HTTPS监听配置参数,将HTTP协议的最大版本修改为HTTP/2。

    浏览器打开开发者工具,访问https://<自有域名>,可以正常访问后端服务。

    image

  3. 测试未使用GA进行加速的效果:

    应用服务器如果没有公网IP地址,可先绑定弹性公网IP。

    浏览器打开开发者工具,直接访问http://<公网IP地址>:<端口>,可以正常访问后端服务。

    image

  4. 加速效果对比:

    汇总如上测试数据,可以看出使用GA加速并且使用HTTP/3之后,提升了客户端访问后端服务器视频的速度。

    场景

    页面预加载(3.3MB)耗时

    视频全量加载完成(112MB)耗时

    页面预加载数据对比

    (提升时长/提升百分比)

    视频全量加载数据对比

    (提升时长/提升百分比)

    场景一:使用GA加速并且使用HTTP/3

    16.86

    3.8分钟

    相比场景二,提升0.78秒/提升4.42%

    相比场景二,提升0.4分钟/提升9.52%

    场景二:使用GA加速但不使用HTTP/3

    17.64

    4.2分钟

    相比场景三,提升48.36秒/提升73.27%

    相比场景三,提升34.4分钟/提升89.12%

    场景三:不使用GA加速

    1.1分钟

    38.6分钟

    /

    /

    说明

    本文示例与数据仅供参考。实际加速效果请以您的实际业务测试为准。

常见问题

为什么控制台没有HTTP/3配置选项?

如果您的按量付费GA实例不支持配置HTTP协议的最大版本,可能是由于实例版本不支持。如需使用,请向商务经理申请升级实例。

为什么客户端无法使用HTTP/3?

GA与客户端协商HTTP/3不成功时,会回退为使用HTTP/1.1HTTP/2,协商机制请参见GA与客户端如何协商HTTP/3

相关文档

对于跨境场景,默认采用精品带宽跨境加速。如果需要追求更高的网络质量,可以使用联通跨境专线加速,详情可参考加速配置选型

API文档参考:

  • CreateListener:为全球加速实例创建监听。通过HttpVersion参数修改HTTP/3配置。

  • UpdateListener:修改全球加速实例下指定监听的配置。通过HttpVersion参数修改HTTP/3配置。

  • DeleteListener:删除全球加速实例下指定的监听。