带你读《2022技术人的百宝黑皮书》——淘宝自研标准化协议库XQUIC正式开源!(3)

简介: 带你读《2022技术人的百宝黑皮书》——淘宝自研标准化协议库XQUIC正式开源!(3)

带你读《2022技术人的百宝黑皮书》——淘宝自研标准化协议库XQUIC正式开源!(2) https://developer.aliyun.com/article/1242690?groupCode=taobaotech




拥塞控制算法框架


image.png


拥塞控制算法模块,在传输协议栈中承担了发动机的职能。为了能够方便地实现多套拥塞控制算法、并方便针对各类典型场景进行优化,我们将拥塞控制算法流程抽象成7个回调接口,其中最核心的两个接口onAck和onLost用于让算法实现收到报文ack和检测到丢包时的处理逻辑。XQUIC内部实现了多套拥塞控制算法,包括最常见的Cubic、New Reno,以及时下比较流行的BBR v1和v2,每种算法都只需要实现这7个回调接口即可实现完整算法逻辑。


为了方便用数据驱动网络体验优化,我们将连接的丢包率、RTT、带宽等信息通过采样和分析的方式,结合每个版本的算法调整进行效果分析。同时在实验环境下模拟真实用户的网络环境分布,更好地预先评估算法调整对于网络体验的改进效果。


传输层能力和应用协议协商


XQUIC提供两套接口,分别是使用标准HTTP3的7层接口和直接使用传输层能力的4层接口,同时XQUIC支持ALPN[6]协商机制,可以通过向ALPN接口注册新的应用层协议回调,并通过握手期间的协商实现多套应用层协议的兼容。


image.png


7层协议的扩展能力和易用性:XQUIC的接口中,将QUIC Transport事件归类为通用传输层事件和面向应用层协议的事件。连接会话、Stream事件面向Application-Layer-Protocol定义;而剩余的通用传输层事件,因为在不同的应用层协议之间,具备高度共性,可以复用。这种设计保证了在扩展多种7层协议的时候,开发者只需要关注7层协议对于连接会话、Stream数据的处理,而不需要重复对QUIC传输层通用事件进行开发。




带你读《2022技术人的百宝黑皮书》——淘宝自研标准化协议库XQUIC正式开源!(4) https://developer.aliyun.com/article/1242687?groupCode=taobaotech

相关文章
|
中间件 开发工具 Android开发
带你读《2022技术人的百宝黑皮书》——跨全端SDK技术演进(2)
带你读《2022技术人的百宝黑皮书》——跨全端SDK技术演进(2)
112 0
|
开发工具 C++ 容器
带你读《2022技术人的百宝黑皮书》——跨全端SDK技术演进(1)
带你读《2022技术人的百宝黑皮书》——跨全端SDK技术演进(1)
118 0
|
IDE Java 开发工具
带你读《2022技术人的百宝黑皮书》——跨全端SDK技术演进(6)
带你读《2022技术人的百宝黑皮书》——跨全端SDK技术演进(6)
|
开发工具 Android开发 开发者
带你读《2022技术人的百宝黑皮书》——跨全端SDK技术演进(5)
带你读《2022技术人的百宝黑皮书》——跨全端SDK技术演进(5)
115 0
|
数据采集 监控 安全
带你读《2022技术人的百宝黑皮书》——打造淘宝极简包的轻量化框架(3)
带你读《2022技术人的百宝黑皮书》——打造淘宝极简包的轻量化框架(3)
|
移动开发 安全 API
带你读《2022技术人的百宝黑皮书》——打造淘宝极简包的轻量化框架(4)
带你读《2022技术人的百宝黑皮书》——打造淘宝极简包的轻量化框架(4)
|
移动开发 缓存 前端开发
带你读《2022技术人的百宝黑皮书》——打造淘宝极简包的轻量化框架(1)
带你读《2022技术人的百宝黑皮书》——打造淘宝极简包的轻量化框架(1)
125 0
|
移动开发 开发工具 容器
带你读《2022技术人的百宝黑皮书》——打造淘宝极简包的轻量化框架(2)
带你读《2022技术人的百宝黑皮书》——打造淘宝极简包的轻量化框架(2)
|
运维
带你读《2022技术人的百宝黑皮书》——打造淘宝极简包的轻量化框架(6)
带你读《2022技术人的百宝黑皮书》——打造淘宝极简包的轻量化框架(6)
|
安全
带你读《2022技术人的百宝黑皮书》——打造淘宝极简包的轻量化框架(5)
带你读《2022技术人的百宝黑皮书》——打造淘宝极简包的轻量化框架(5)