龙蜥白皮书精选:面向 HTTP 3.0 时代的高性能网络协议栈

简介: ExpressUDP 利用龙蜥 OS 在业界首次实现了 virtio_net 的发送方向的零拷贝。

文/高性能网络 SIG

01 背景概述

随着互联网特别是移动互联网的快速发展,对互联网通信协议提出了新的诉求。经过多年的发展,QUIC 协议在 2021 年正式被 IEFT 标准化,成为 HTTP 3 的标准传输层协议。QUIC 是基于 UDP 实现的面向连接可靠有序的传输协议。相比于 TCP 在内核态实现,QUIC 基于 UDP 在用户态实现大大降低了部署成本,并且可将拥塞控制算法/参数调控到连接的粒度,灵活适应不同业务场景的网络需求。此外,QUIC 还具备多路复用 /0-RTT 握手/连接迁移等多种优点。

02 轻量、高性能、标准化的 HTTP 3.0 解决方案:XQUIC + ExpressUDP

XQUIC 是一个轻量、高性能、标准化的跨平台 IETF QUIC 协议库,内部包含了 QUIC-Transport(传输层)、QUIC-TLS(加密层、与 TLS/1.3对接)和HTTP/3.0(应用层)的实现,为应用提供可靠、安全、高效的数据传输功能,在 IETF 开发者社区进行了比较充分的互通性验证,支持 Linux/Android/iOS/Mac/Windows 等平台,在 Android/iOS 双端的编译产物均小于 400KB,适用于需要高性 能但同时又对包大小敏感的移动端 APP 场景,可以方便地部署到移动设备和各种嵌入式设备中。在服务端方面,基于阿里内部广泛 使用的Tengine,开发了 ngx_xquic_module 和 ngx_xudp_module 模块用于适配 Tengine 服务端。

XQUIC 还添加了对多路径传输的能力支持,可以同时利用 cellular 和 wifi 双通道进行数据传输。多路径 QUIC 草案已经被 IETF 工作组正式接收纳入标准,我们与达摩院 XG 实验室共同研发的 XLINK 多路传输技术,相关论文「XLINK:QoE-driven multi-path QUIC transport in large-scale video services」已经发表在网络顶会 SIGCOMM 2021 上。

ExpressUDP 是一个基于 Linux XDP Socket 和 XDP 实现的高性能用户态 UDP 通信库。利用 XDP 和 XDP Socket 封装了一套高性能 UDP 通信接口,为应用提供了一种高性能 UDP 通信编程框架。可以为高 PPS UDP 通信场景带来显著的网络性能提升。ExpressUDP 具有与 软件结合简单,不影响软件本身框架的特点,具备高吞吐,低延时,开发方便,部署简单等优点。利用蜥 OS 在业界首次实现了 virtio_net 的发送方向的零拷贝,UDP PPS 相比非零拷贝提升 4 倍,相比普通内核 UDP 提升 7 倍以上,接收方向相比内核 UDP 提升 3 倍以上。

03 应用场景

XQUIC 已经在手淘 Android/iOS 双端正式版本,XQUIC + ExpressUDP 已经在阿里巴巴集团统一接入网关大规模应用。在 RPC 请求场 景降低网络耗时 15%,在短视频场景下降低 20% 卡顿率,在上传场景提升 25% 上传速率(相对于TCP)。在服务器端性能上,经过 ExpressUDP 适配改造,E2E QUIC 性能提升了 30%~50%。

更多龙蜥白皮书精选内容:

【1】面向 DPU 场景的软硬协同协议栈

【2】敏捷开发场景下的调度器热升级 SDK

【3】跨云-边-端的只读文件系统 EROFS

【4】龙蜥全面支持 Intel 第四代可扩展处理器 SPR 平台

【5】面向异构计算的加速器 SDK

【6】基于 SM4 算法的文件加密(fscrypt)实践

【7】CentOS 迁移场景的平滑迁移方案

【8】利用 io_uring 提升数据库系统性能

【9】开源 RISC-V 技术支持软硬件全栈平台

【10】Ancert——硬件兼容性验证与守护

【11】面向芯片研发和验证的操作系统 SiliconFastOS

相关链接:

高性能网络 SIG 主页:

https://openanolis.cn/sig/high-perf-network

更多龙蜥技术特性解析可移步《龙蜥特性百科》:

https://anolis.gitee.io/anolis_features/

2022 龙蜥社区全景白皮书(或公众号【OpenAnolis龙蜥】回复关键字“白皮书”获取)

https://openanolis.cn/openanoliswhitepaper

—— 完 ——

加入龙蜥社群

加入微信群:添加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;加入钉钉群:扫描下方钉钉群二维码。

关于龙蜥

龙蜥社区是立足云计算打造面向国际的 Linux  服务器操作系统开源根社区及创新平台。龙蜥操作系统(Anolis OS)是龙蜥社区推出的 Linux 发行版,拥有三大核心能力:提效降本、更加稳定、更加安全。

目前,Anolis OS 8.8 已发布,更多龙蜥自研特性,支持 X86_64 、RISC-V、Arm64、LoongArch 架构,完善适配 Intel、兆芯、鲲鹏、龙芯等芯片,并提供全栈国密支持。

加入我们,一起打造面向云时代的操作系统!

相关实践学习
CentOS 8迁移Anolis OS 8
Anolis OS 8在做出差异性开发同时,在生态上和依赖管理上保持跟CentOS 8.x兼容,本文为您介绍如何通过AOMS迁移工具实现CentOS 8.x到Anolis OS 8的迁移。
目录
打赏
0
0
0
0
1175
分享
相关文章
网络通讯技术:HTTP POST协议用于发送本地压缩数据到服务器的方案。
总的来说,无论你是一名网络开发者,还是普通的IT工作人员,理解并掌握POST方法的运用是非常有价值的。它就像一艘快速,稳定,安全的大船,始终为我们在网络海洋中的冒险提供了可靠的支持。
53 22
|
10天前
|
网络问题解析:如何解决CondaHTTPError HTTP 000 CONNECTION FAILED错误。
以上就是斯诺普为你准备的解决Conda出现HTTP连接错误的手术室。希望这辆小车可以顺利驶出棘手的泥潭,再次在自由的大路上疾驰。一切的尝试和努力,只为更好的探索与开发。
48 17
掌握网络通信协议和技术:开发者指南
本文探讨了常见的网络通信协议和技术,如HTTP、SSE、GraphQL、TCP、WebSocket和Socket.IO,分析了它们的功能、优劣势及适用场景。开发者需根据应用需求选择合适的协议,以构建高效、可扩展的应用程序。同时,测试与调试工具(如Apipost)能助力开发者在不同网络环境下优化性能,提升用户体验。掌握这些协议是现代软件开发者的必备技能,对项目成功至关重要。
智能体竟能自行组建通信网络,还能自创协议提升通信效率
《一种适用于大型语言模型网络的可扩展通信协议》提出创新协议Agora,解决多智能体系统中的“通信三难困境”,即异构性、通用性和成本问题。Agora通过标准协议、结构化数据和自然语言三种通信格式,实现高效协作,支持复杂任务自动化。演示场景显示其在预订服务和天气预报等应用中的优越性能。论文地址:https://arxiv.org/pdf/2410.11905。
52 6
【网络原理】——HTTP协议、fiddler抓包
HTTP超文本传输,HTML,fiddler抓包,URL,urlencode,HTTP首行方法,GET方法,POST方法
【网络原理】——HTTP请求头中的属性
HTTP请求头,HOST、Content-Agent、Content-Type、User-Agent、Referer、Cookie。
鸿蒙应用开发从入门到入行 - 篇7:http网络请求
在本篇文章里,您将掌握鸿蒙开发工具DevEco的基本使用、ArkUI里的基础组件,并通过制作一个简单界面掌握使用
136 8
HTTP代理IP纯净度 提升用户网络体验的核心竞争力
随着互联网发展,使用HTTP动态代理IP的需求日益增加。高纯净度的代理IP在隐私与安全、网络体验和业务运营方面至关重要。它能保护用户信息、提高数据安全性、确保访问速度和连接稳定,并提升业务效率与信誉度。
79 2

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等