CH398X 巨型帧(Jumbo Frame)应用
CH398 是沁恒微电子推出的 USB 3.0 转千兆以太网控制器,内置自研 RISC-V 处理器,集成 USB3.2 Gen1 及 10/100/1000M 自适应以太网 PHY。本文验证其硬件巨型帧功能——最大支持 9KB MTU,在大数据量传输场景下提升有效吞吐量并降低中断频率。
1. 技术原理与价值
1.1 解决什么问题
千兆以太网标准 MTU 1500,每个帧的以太网头+IP头+TCP头固定吃掉 58 字节——接近 4% 的带宽被帧头占据。跑满千兆时就是白白扔掉 40 Mbps,同时每秒触发 8 万次硬件中断。
CH398 硬件支持最大 9KB 巨型帧。MTU 拉到 9000 后,帧头占比从 3.9% 压缩到 0.6%,在千兆线速下多挤出约 44 Mbps,报文数量减少 83%。
1.2 帧头效率:巨型帧的直接收益
| MTU | 有效载荷 | 总帧长 | 效率 | 千兆有效带宽 |
|---|---|---|---|---|
| 1500 | 1460 字节 | 1518 字节 | 94.9% | 949 Mbps |
| 9000 | 8960 字节 | 9018 字节 | 99.1% | 991 Mbps |
4.2 个百分点的效率差约等于 42 Mbps 理论增益。
1.3 中断数量:最被低估的收益
帧头省带宽只是巨型帧收益的一半。另一半来自报文数量的指数级下降:
| MTU | 传输 1GB 需报文数 | 千兆线速 pps |
|---|---|---|
| 1500 | ~684,000 | ~79,000 |
| 9000 | ~114,000 | ~14,000 |
每收发一个帧至少触发一次软硬件中断。报文少 83%。MTU 1500 每 8.5μs 一次中断,MTU 9000 拉长到 48.5μs——在 ARM 嵌入式平台上,这个差距可能就是系统能不能同时处理其他实时任务的关键。
CH398 同时支持 TSO(TCP 分段卸载):CPU 一次提交 ≤64KB 数据块,芯片硬件切包+算校验。配 9KB 巨型帧后 TSO 拆分次数更少,大块数据利用更充分。
2. 实测验证
测试拓扑:Ubuntu 22.04 + CH398(eth1)← 直连 → Windows 11(Realtek 2.5G,iperf3 server)。
CH398 最大 MTU 9000。
2.1 巨型帧连通性
-M do禁止分片——全链路 MTU 一致性验证:
ping -M do -s 8972 -I eth1.10 192.168.190.1010 发 10 收,0% 丢包,avg 2.83ms。
2.2 吞吐量对比
相同环境,唯一变量是 MTU:
| 指标 | MTU 1500 | MTU 9000 | Δ |
|---|---|---|---|
| TCP 吞吐量 | 947 Mbps | 991 Mbps | +44 Mbps |
| 帧效率 | 94.9% | 99.1% | +4.2% |
| 重传 | 0 | 0 | — |
+44 Mbps 与理论值 42 Mbps 吻合——收益全来自帧头占比降低。
2.3 中断实际减少量
ethtool -S eth1读芯片包计数器,各测 10 秒 iperf3 取增量:
| 10 秒增量 | MTU 1500 | MTU 9000 | 减少 |
|---|---|---|---|
| tx_packets | 805,093 | 137,897 | -82.9% |
| rx_packets | 376,327 | 68,560 | -81.8% |
1GB 文件传输:MTU 1500 约 68 万次中断,MTU 9000 约 11 万次——少 57 万次。
2.4 CPU 开销
| MTU 1500 | MTU 9000 |
|---|---|
| 10.8% | 11.5% |
4 核 x86 + USB 3.0 环境下差异不大,瓶颈在 USB 总线。但在 ARM 嵌入式平台或虚拟化环境(每次中断可能触发 VM Exit),83% 的中断减少能释放显著的 CPU 资源。
3. 注意事项
- 链路两端必须一致:CH398、交换机、对端网卡都必须开启巨型帧且设相同 MTU。任一跳不支持即导致丢包
- 厂商驱动必备:内核 CDC-NCM 免驱不支持巨型帧。CH398 的高级网络功能依赖 ch397.ko / WCH USB NIC Driver
- 与 TSO 配合更佳:巨型帧 + TSO = 大块数据 + 大帧 + 硬件分段,构成完整发送加速流水线
- Windows 配置:设备管理器 → 网卡属性 → 高级 → Jumbo Frame → 选择 4K 或 9K
Linux 一条命令:
sudo ip link set dev eth0 mtu 90004. 小结
开 9KB 巨型帧的配置成本几乎为零,换来 44 Mbps 额外带宽和 83% 中断减少——对于文件密集型传输和 CPU 资源敏感场景,是性价比极高的优化。