diff --git a/SUMMARY.md b/SUMMARY.md index 3bceadd52ea71ae4d2882de7a00a201e1a1d12e8..742bdf0ed3caf38f31cb0854101a7b0fa0a82998 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -17,6 +17,7 @@ * [SysOM :一站式运维管理平台](./devops_perf/sysom.md) * [利用io_uring提升数据库系统性能](./devops_perf/io_uring_igraph.md) * [Coolbpf:一站式eBPF开发编译平台](./devops_perf/coolbpf.md) + * [面向HTTP 3.0时代的高性能网络协议栈](./devops_perf/high_performance_proto_stack_for_http3.md) * [软硬件协同](./sw_hw_codesign/README.md) * [面向芯片研发和验证的操作系统 SiliconFastOS](./sw_hw_codesign/siliconfastos.md) * [安全可信](./security_trust/README.md) diff --git a/devops_perf/high_performance_proto_stack_for_http3.md b/devops_perf/high_performance_proto_stack_for_http3.md new file mode 100644 index 0000000000000000000000000000000000000000..7d6f58f3fab1cd29380caeedff54dc3e8b57b6bd --- /dev/null +++ b/devops_perf/high_performance_proto_stack_for_http3.md @@ -0,0 +1,12 @@ +#面向HTTP 3.0时代的高性能网络协议栈 +tags: 运维与性能,Anolis8,Anolis23 + ##背景概述 随着互联网特别是移动互联网的快速发展,对互联网通信协议提出了新的诉求。经过多年的发展,QUIC协议在2021年正式被IEFT标 准化,成为HTTP 3的标准传输层协议。QUIC是基于UDP实现的面向连接可靠有序的传输协议。相比于TCP在内核态实现,QUIC基于 UDP在用户态实现大大降低了部署成本,并且可将拥塞控制算法/参数调控到连接的粒度,灵活适应不同业务场景的网络需求。此 外,QUIC还具备多路复用/0-RTT握手/连接迁移等多种优点。 ##轻量、高性能、标准化的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服务端。 + +![overview](../materials/imgs/devops_perf/high_performance_proto_stack_for_http3/overview.png) + +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 倍 以上。 + +##应用场景 XQUIC已经在手淘Android/iOS双端正式版本,XQUIC + ExpressUDP已经在阿里巴巴集团统一接入网关大规模应用。在RPC请求场 景降低网络耗时15%,在短视频场景下降低20%卡顿率,在上传场景提升25%上传速率(相对于TCP)。在服务器端性能上,经过 ExpressUDP适配改造,E2E QUIC性能提升了30%~50%。 + +![partner](../materials/imgs/devops_perf/high_performance_proto_stack_for_http3/partner.png) \ No newline at end of file diff --git a/materials/imgs/devops_perf/high_performance_proto_stack_for_http3/overview.png b/materials/imgs/devops_perf/high_performance_proto_stack_for_http3/overview.png new file mode 100644 index 0000000000000000000000000000000000000000..be4da8029764340f37bed1c24dc4f63d00f016e3 Binary files /dev/null and b/materials/imgs/devops_perf/high_performance_proto_stack_for_http3/overview.png differ diff --git a/materials/imgs/devops_perf/high_performance_proto_stack_for_http3/partner.png b/materials/imgs/devops_perf/high_performance_proto_stack_for_http3/partner.png new file mode 100644 index 0000000000000000000000000000000000000000..23db049c9d9f89ffde9ceaa4f2f70a821fe45fe8 Binary files /dev/null and b/materials/imgs/devops_perf/high_performance_proto_stack_for_http3/partner.png differ