ITPub博客

首页 > 应用开发 > Html/css > 龙蜥白皮书精选:面向 HTTP 3.0 时代的高性能网络协议栈

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

原创 Html/css 作者:OpenAnolis小助手 时间:2023-07-14 16:43:51 0 删除 编辑

文/高性能网络 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%。


更多龙蜥白皮书精选内容及相关链接可移步龙蜥公众号(OpenAnolis龙蜥)2023年6月28日相同推送查看。

—— 完 ——


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70004278/viewspace-2964306/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
龙蜥社区(OpenAnolis)-面向国际的 AI 原生操作系统开源根社区。以“AI × OS × 云”深度融合为主线,打造下一代 Agentic 操作系统的技术与生态底座。 社区官网:openanolis.cn|微信公众号:OpenAnolis龙蜥

注册时间:2021-07-28

  • 博文量
    1005
  • 访问量
    596181