龙蜥白皮书精选:面向 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 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
相关文章
|
17天前
|
负载均衡 网络协议 算法
|
22天前
|
大数据 云计算
中国网络大会专题论坛 | 下一代超大规模高性能公共云网络
中国计算机学会ChinaNet上,阿里云洛神云网络将与知名学术届代表一起共话下一代超大规模高性能公共云网络的关键技术。
|
8天前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
38 3
|
8天前
|
存储 网络协议 安全
30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场
本文精选了 30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场。
25 2
|
11天前
|
网络虚拟化
生成树协议(STP)及其演进版本RSTP和MSTP,旨在解决网络中的环路问题,提高网络的可靠性和稳定性
生成树协议(STP)及其演进版本RSTP和MSTP,旨在解决网络中的环路问题,提高网络的可靠性和稳定性。本文介绍了这三种协议的原理、特点及区别,并提供了思科和华为设备的命令示例,帮助读者更好地理解和应用这些协议。
30 4
|
19天前
|
网络协议 安全 Go
Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
【10月更文挑战第28天】Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
46 13
|
10天前
|
消息中间件 编解码 网络协议
Netty从入门到精通:高性能网络编程的进阶之路
【11月更文挑战第17天】Netty是一个基于Java NIO(Non-blocking I/O)的高性能、异步事件驱动的网络应用框架。使用Netty,开发者可以快速、高效地开发可扩展的网络服务器和客户端程序。本文将带您从Netty的背景、业务场景、功能点、解决问题的关键、底层原理实现,到编写一个详细的Java示例,全面了解Netty,帮助您从入门到精通。
44 0
|
19天前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
20天前
|
网络协议 算法 网络性能优化
计算机网络常见面试题(一):TCP/IP五层模型、TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议
计算机网络常见面试题(一):TCP/IP五层模型、应用层常见的协议、TCP与UDP的区别,TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议、ARP协议

热门文章

最新文章

下一篇
无影云桌面