高性能网络SIG双月动态:加速 SMC eBPF 透明替换特性上游化进程,并与上游深度研讨新特性

简介: 高性能网络SIG项目的动态进展一览。

01、整体进展

本次双月报总结了 SIG 在 1 月和 2 月的工作进展,工作聚焦在 ANCK CVE 和稳定性问题修复,以及上游 SMC eBPF 透明替换特性推进和多个话题讨论上。

本月关键进展:

1. 推进 SMC eBPF 透明替换特性上游化,更新至 V7;开展上游会议与 SMC Maintainer 探讨 SMC 抓包、流量控制等新特性。

2. 完成 ANCK 5.10 中多个稳定性问题和 CVE 的修复。

02、ANCK 通用内核网络协议栈

修复

ANCK 5.10 内核修复了若干稳定性问题,以下问题预计随 019 版本发布:

  • 修正 cake qdisc 的一处可能的越界访问。(PR3836)
  • 修正了 ets qdisc 的一处潜在 OOB 问题。(PR4561)
  • 修复了 tca 一处潜在的 OOB 问题。(PR4562)

安全

ANCK 5.10 修复了如下 CVE,预计随 019 版本发布:

CVE-2022-48675(PR4381)

CVE-2022-49014(PR4426)

CVE-2024-47685(PR4425)

CVE-2024-49948(PR4279)

CVE-2024-46782(PR4278)

CVE-2024-46828(PR4277)

CVE-2024-44944(PR4437)

CVE-2024-56688(PR4649)

CVE-2024-56694(PR4650)

CVE-2024-56751(PR4651)

CVE-2024-53174(PR4419)

CVE-2024-56605(PR4417)

CVE-2024-56606(PR4440)

CVE-2024-56600(PR4410)

CVE-2024-56614(PR4648)

CVE-2024-56644(PR4415)

CVE-2024-56642(PR4414)

CVE-2024-56637(PR4412)

CVE-2024-56664(PR4647)

CVE-2024-50036(PR4427)

CVE-2024-50045(PR4284)

CVE-2024-49978(PR4633)

CVE-2024-50083(PR4428)

CVE-2024-46763(PR4632)

CVE-2024-43817(PR4631)

CVE-2024-50304(PR4657)

CVE-2024-50256(PR4641)

CVE-2024-50251(PR4439)

CVE-2024-50258(PR4642)

CVE-2024-50264(PR4260)

CVE-2024-53122(PR4640)

CVE-2024-26641(PR4630)

CVE-2024-53140(PR4251)

CVE-2024-53119(PR4436)

CVE-2024-53124(PR4644)

 

03、SMC

本双月 SIG 在 SMC 上的工作主要集中在推动 SMC eBPF 透明替换功能的上游化,以及与上游讨论多个 SMC 特性。

eBPF 透明替换

上游 SMC 提供了 smc_run 这一进程维度透明替换 TCP 的功能,但这种方式存在静态链接程序不可用以及替换维度单一的问题。SIG 持续推动基于 eBPF 的 SMC 灵活替换方案,支持多种维度下的透明替换和基于 IP/端口等策略的快速回退能力。本双月 SIG 在上游更新了 4 个版本,最新版本为 v7[1]

https://lore.kernel.org/bpf/20250123015942.94810-1-alibuda@linux.alibaba.com/

上游社区会议

本双月 SIG 与上游 SMC Maintainer 开展了一轮社区会议讨论:

1. SMC eBPF 透明替换特性,见上述。

2. SMC 抓包功能。目前 RDMA 网络抓包依赖设备提供的能力,SIG 提出一种在 SMC 协议栈内对 SMC-R/D 均适用的抓包手段,正在推进代码评审中。

3. SMC 流量控制功能。SMC 在容器场景中相较 TCP 缺少流量整形能力,为此 SIG 评估并提出了一种 SMC 流量控制方案,正在与上游社区沟通中。


高性能网络 SIG(Special Interest Group)在这个万物互联的时代,云上的网络通信效率对各种服务至关重要,高性能网络兴趣组致力于利用 XDP、RDMA、VIRTIO 等新高效通信技术,结合软硬件一体化的思想,打造高性能网络协议栈,提升云计算时代数据中心应用的网络性能。

高性能网络 SIG 主页:https://openanolis.cn/sig/high-perf-network

相关文章
|
4月前
|
C++
基于Reactor模型的高性能网络库之地址篇
这段代码定义了一个 InetAddress 类,是 C++ 网络编程中用于封装 IPv4 地址和端口的常见做法。该类的主要作用是方便地表示和操作一个网络地址(IP + 端口)
282 58
|
4月前
|
网络协议 算法 Java
基于Reactor模型的高性能网络库之Tcpserver组件-上层调度器
TcpServer 是一个用于管理 TCP 连接的类,包含成员变量如事件循环(EventLoop)、连接池(ConnectionMap)和回调函数等。其主要功能包括监听新连接、设置线程池、启动服务器及处理连接事件。通过 Acceptor 接收新连接,并使用轮询算法将连接分配给子事件循环(subloop)进行读写操作。调用链从 start() 开始,经由线程池启动和 Acceptor 监听,最终由 TcpConnection 管理具体连接的事件处理。
169 2
|
4月前
基于Reactor模型的高性能网络库之Tcpconnection组件
TcpConnection 由 subLoop 管理 connfd,负责处理具体连接。它封装了连接套接字,通过 Channel 监听可读、可写、关闭、错误等
154 1
|
4月前
|
负载均衡 算法 安全
基于Reactor模式的高性能网络库之线程池组件设计篇
EventLoopThreadPool 是 Reactor 模式中实现“一个主线程 + 多个工作线程”的关键组件,用于高效管理多个 EventLoop 并在多核 CPU 上分担高并发 I/O 压力。通过封装 Thread 类和 EventLoopThread,实现线程创建、管理和事件循环的调度,形成线程池结构。每个 EventLoopThread 管理一个子线程与对应的 EventLoop(subloop),主线程(base loop)通过负载均衡算法将任务派发至各 subloop,从而提升系统性能与并发处理能力。
264 3
|
4月前
基于Reactor模式的高性能网络库github地址
https://github.com/zyi30/reactor-net.git
121 0
|
4月前
基于Reactor模型的高性能网络库之Poller(EpollPoller)组件
封装底层 I/O 多路复用机制(如 epoll)的抽象类 Poller,提供统一接口支持多种实现。Poller 是一个抽象基类,定义了 Channel 管理、事件收集等核心功能,并与 EventLoop 绑定。其子类 EPollPoller 实现了基于 epoll 的具体操作,包括事件等待、Channel 更新和删除等。通过工厂方法可创建默认的 Poller 实例,实现多态调用。
288 60
|
4月前
|
安全 调度
基于Reactor模型的高性能网络库之核心调度器:EventLoop组件
它负责:监听事件(如 I/O 可读写、定时器)、分发事件、执行回调、管理事件源 Channel 等。
284 57
|
4月前
基于Reactor模型的高性能网络库之时间篇
是一个用于表示时间戳(精确到微秒)**的简单封装类
197 57
|
2月前
|
监控 前端开发 安全
Netty 高性能网络编程框架技术详解与实践指南
本文档全面介绍 Netty 高性能网络编程框架的核心概念、架构设计和实践应用。作为 Java 领域最优秀的 NIO 框架之一,Netty 提供了异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。本文将深入探讨其 Reactor 模型、ChannelPipeline、编解码器、内存管理等核心机制,帮助开发者构建高性能的网络应用系统。
223 0
|
4月前
|
缓存 索引
基于Reactor模式的高性能网络库之缓冲区Buffer组件
Buffer 类用于处理 Socket I/O 缓存,负责数据读取、写入及内存管理。通过预分配空间和索引优化,减少内存拷贝与系统调用,提高网络通信效率,适用于 Reactor 模型中的异步非阻塞 IO 处理。
184 3