带你读《2022技术人的百宝黑皮书》——HTTP3 RFC标准正式发布, QUIC会成为传输技术的新一代颠覆者吗?(2)

简介: 带你读《2022技术人的百宝黑皮书》——HTTP3 RFC标准正式发布, QUIC会成为传输技术的新一代颠覆者吗?(2)

带你读《2022技术人的百宝黑皮书》——HTTP3 RFC标准正式发布, QUIC会成为传输技术的新一代颠覆者吗?(1)https://developer.aliyun.com/article/1340580?groupCode=taobaotech


如何应用QUIC/HTTP3来提升传输性能表现

 

这次IETF发布的RFC9114和9204分别描述的是HTTP/3.0和配套的Header压缩算法QPACK的协议机制。HTTP/3.0相对于HTTP/2到底有什么本质提升?这需要从HTTP/3底层的QUIC传输机制讲起。

 

 

 

我们都知道,QUIC基于UDP之上的多流(Stream)传输,实现解决原来TCP大管道下的Head-of-Line问题[3],同时0-RTT等握手机制可以保证连接会话的快速建立和首包的加速。QUIC提供了两种传输模式,基于Steam的可靠传输,和基于Datagram的非可靠传输。基于Stream的模式下,发送方和接收方基于Steam的Offset进行流   数据的重排和有序还原,并确保投递给应用层的是有序可靠数据。基于Datagram的模式则适用于实时流媒体类型的场景,针对延迟有强诉求的同时不要求数据完全可靠有序的这类场景,Datagram提供了一种数据封装和ACK通  知的方式,帮助半可靠诉求的场景实现数据的快速投递,并向应用层反馈送达情况。

 

image.png

[3]   TCP  Head-of-line头部阻塞问题:原因是TCP是一条大的传输管道,基于TCP传输的数据,由于TCP的传输机制,需要等待前面的数据包完成送达,后续的数据包才能被完成送达和向应用层投递。这在多路复用的场景下, 会导致不同的流数据之间互相block,这在HTTP/2是一个没有被完全解决的问题。

QUIC在丢包检测和重传机制方面也有较大革新。在丢包检测方面,QUIC提供了两大类丢包检测方式,基于packet  number的阈值检测,和基于定时器的超时丢包检测。这两类机制相对于传统的TCP检测方式可以带来更快的丢包感知和恢复。在重传恢复方面,QUIC针对每一个packet分配独立的packet number,避免了过去TCP因重传包和原始包复用相同的sequence,导致的RTT测量不准确的问题。准确测量的RTT,作为拥塞控制算法的一维   重要输入,能够使得算法对瓶颈段拥塞状况的检测更加准确。

 

这次发布的HTTP3 RFC,则是在QUIC基础之上,描述了HTTP请求如何通过跟QUIC steam的映射,实现完整的HTTP语义,以及针对基于UDP的多流机制设计的专用头部压缩。因此所有QUIC在UDP之上实现的传输机制革新,HTTP3都可以享受到红利。

 

那么如何把这项革新的技术用起来呢?XQUIC针对QUIC和HTTP/3协议栈提供了完整的能力实现,并且完全符合IETF标准,并通过了IETF工作组的互通性验证[4]。在手机淘宝我们提供了整套的网络解决方案,包含客户端的SDK和服务端网关的能力支持,各类业务场景核心关注开关和放量情况即可。对于外部开发者,可以移步到XQUIC在github的开源仓库[5],开源仓库有相对完整的文档说明和RFC译文,同时后续开源版本我们也将逐步更

 

 

 

新IETF工作组版本的Multipath[8]多路传输能力,以及Tengine相关的适配版本和模块,方便外部开发者能够更方便地使用。

 

带你读《2022技术人的百宝黑皮书》——HTTP3 RFC标准正式发布, QUIC会成为传输技术的新一代颠覆者吗?(3)https://developer.aliyun.com/article/1340578?groupCode=taobaotech

相关文章
|
15天前
|
网络协议 Python
Python实现HTTP 传输的断点续传机制
使用Python `requests`库实现HTTP断点续传下载大文件,通过设置`Range`头部从上次中断的位置开始继续下载。示例代码展示了一个名为`resume_download`的函数,它接收URL、文件名和最后字节位置参数,以追加方式打开文件并逐块写入内容。要启用HTTP长连接,可添加`Connection: keep-alive`到请求头。
|
26天前
|
编解码 自然语言处理 算法
技术心得:前端学HTTP之字符集
技术心得:前端学HTTP之字符集
15 0
|
26天前
|
缓存 开发框架 网络协议
必知的技术知识:HTTP协议和SOCKS5协议
必知的技术知识:HTTP协议和SOCKS5协议
|
2月前
|
前端开发 安全 JavaScript
HTTP的系统登录页面,如何避免明文传输用户密码?
该文讨论了登录页面中密码安全传输的问题。当使用HTTP时,密码以明文形式传输,存在风险。在示例中,前端使用JavaScript的CryptoJS库和当前时间戳作为动态加密key对密码进行DES加密。后端接收到密文后,利用相同的时间戳解密。为了增强安全性,文章还建议使用RSA等非对称加密算法。
152 7
|
1月前
|
缓存 网络协议 应用服务中间件
深入理解 web 协议(一)- http 包体传输
深入理解 web 协议(一)- http 包体传输
|
1月前
|
缓存 安全 网络协议
|
2月前
|
Go
深度探讨 Golang 中并发发送 HTTP 请求的最佳技术
深度探讨 Golang 中并发发送 HTTP 请求的最佳技术
|
2月前
|
前端开发 API UED
AngularJS的$http服务:深入解析与进行HTTP请求的技术实践
【4月更文挑战第28天】AngularJS的$http服务是核心组件,用于发起HTTP请求与服务器通信。$http服务简化了通信过程,通过深入理解和实践,能构建高效、可靠的前端应用。
|
2月前
|
存储 缓存 开发框架
Flutter的网络请求:使用Dart进行HTTP请求的技术详解
【4月更文挑战第26天】了解Flutter网络请求,本文详述使用Dart进行HTTP请求
|
2月前
|
安全 网络协议 算法
【计算机网络】http协议的原理与应用,https是如何保证安全传输的
【计算机网络】http协议的原理与应用,https是如何保证安全传输的