一个10G网卡,掀开了USB-C的协议暗面

一个10G网卡,掀开了USB-C的协议暗面

硬件USB-Cinfrastructure

数据源:HN + web research · HN

Jeff Geerling 把一个 WisdPi 10G 以太网扩展卡插进 Framework 13 的扩展槽,跑 iperf3,看到的结果是 7.4 Gbps。

标称 10G 的网卡,在「应该」支持 USB 3.2 Gen 2x2(20 Gbps)的端口上,跑出了不到八成的速率。Framework 官方文档写明端口 1 和端口 3 支持 Gen 2x2,lsusb 也确认协商速率为 20000 Mbps。但最终打出来的带宽就是不到 8 Gbps。

这个故事表面上是关于一块网卡的评测,底下却是 USB-C 生态里一个被反复踩中却始终没有解决的坑。

问题出在协议层,不是硬件

WisdPi 这块扩展卡使用的是 Realtek RTL8159 以太网控制器。这个芯片本身走的是 USB 3.2 Gen 2x2 协议——需要在物理层使用两对差分信号线同时传输,才能凑出 20 Gbps 的理论带宽。去掉 USB 协议开销和以太网帧封装损耗之后,真正的有效吞吐大约在 9.4 Gbps 左右,刚好覆盖 10G 以太网的需求。

问题在于:USB 3.2 Gen 2x2 是整个 USB 家族里最不受待见的那一个。

它诞生于 USB-IF 在命名混乱时期的产物——它属于传统 USB 3.x 体系下的一个「双通道」变体,与 USB4 和 Thunderbolt 走的是完全不同的协议路径。绝大多数笔记本的 USB-C 端口要么是 USB 3.2 Gen 2x1(单通道 10 Gbps),要么直接跳到 USB4 或 Thunderbolt 4。Gen 2x2 恰好卡在一个尴尬的中间地带:比单通道快,却不像 USB4 那样自带 PCIe 隧道能力。

也就是说,如果你不能确定自己的端口确切支持 Gen 2x2,那么这块网卡的实际吞吐会被单通道的 10 Gbps 上限卡在 7-8 Gbps——正如 Geerling 测出来的那样。

官方文档也不靠谱

Geerling 在 Framework 13(AMD Ryzen AI 5 340)上测试时发现,Framework 自己的端口规格表写着端口 1 和 3 支持 Gen 2x2。他又换到 Framework 12(Intel 13 代),同样在 lsusb 里看到了 20000 Mbps 的协商速率。

但在两台机器上,Linux 内核自带的驱动都只能推到 7 Gbps。

这里暴露了 USB-C 生态的第二个问题:硬件协商出某个速率是一回事,软件栈能不能利用它是另一回事。Windows 11 上安装 Realtek 官方驱动后,Geerling 终于看到了 9.4+ Gbps——但 Linux 下尝试编译 Realtek 驱动却在 Ubuntu 26.04(内核 7.x)上报错,根本装不上。

一边是 Windows 靠厂商驱动走通,另一边是 Linux 用户被新内核的 API 变动卡住。这个落差本身就是 USB-C 外设生态碎片化的缩影——同一个硬件在不同操作系统上的表现可以天差地别,而且出问题时很难判断是协议问题、驱动问题还是芯片问题。

热到能烤腿

跑通 9.4 Gbps 之后,另一个麻烦冒了出来:这块扩展卡在持续传输时表面温度接近 70°C。

Geerling 用热成像仪拍下了这个数字,并且专门去找 WisdPi 求证。厂商的回复引用了 IEC 62368-1 温度安全标准,表示不超过 10 秒的皮肤接触在合规范围内。但这是一台笔记本——用户经常会放在腿上使用。Geerling 自己就是在沙发上用这台机器写的那篇测评。

HN 讨论区有评论一针见血:「10G 铜缆以太网本身就以功耗高著称,这也是为什么 90% 以上的 10G 端口走的是 SFP+ 光纤。期待它在笔记本里安静地跑满速,热管理上就不现实。」另一位评论者补充说,所有 PCIe 10G 网卡都带着散热片,部分还配了小风扇——把同等功耗塞进一个没有主动散热的塑料模块里,温度失控几乎是必然的。

社区怎么看

HN 上这篇帖子的讨论热度不低——315 分、178 条评论。讨论走向大致分几类:

一部分人认为 USB 3.2 Gen 2x2 本身就是个「设计失误」,USB-IF 当年为了给传统的蓝色 USB-A 接口续命搞出这个东西,如今极少有设备支持它,让厂商基于 Gen 2x2 做产品是个奇怪的决定。

另一部分人对「10G 以太网在笔记本上」这个需求本身表示怀疑。一条评论说:「在扩展坞上用 10G 合理,在笔记本侧面插一个突出来的模块跑 10G,99% 的时候你都在用 WiFi。」还有人直说 10G 的意义被高估了——「1G 以太网偶尔还会协商到 100Mbps,能稳定跑出标称带宽的 3/4 已经不错了。」

也有一条评论点出了关键背景:这个扩展卡是第三方厂商 WisdPi 设计的兼容配件,Framework 扩展槽走的是 USB-C 协议而非 PCIe——这个设计决定让扩展卡获得了热插拔的便利,代价则是带宽和协议兼容性的妥协。

USB-C 的「万能接口」幻觉

把这个案例放大来看,它戳破了一个流行叙事:USB-C 是一个统一的、无所不能的接口。

物理上,所有的 USB-C 插头看起来都一样。但协议层面,同一个 Type-C 端口可以跑 USB 2.0、USB 3.2 Gen 1、Gen 2、Gen 2x2、USB4、Thunderbolt 3/4/5,支持或不支持 DisplayPort Alt Mode、PCIe 隧道、Power Delivery 的不同功率档位。这十几种组合混在一起,普通用户没有任何办法从外观判断一个端口到底能干什么。

Framework 的扩展卡设计恰好放大了这个矛盾——它鼓励用户「想插什么插什么」,但底层的 USB-C 协议却并不真的支持「插什么都能跑满」。

Geerling 最终的购买建议很直白:大多数用户应该买那块 $40 的 2.5G 以太网扩展卡,而不是 $99 的 10G 版本。除非你确切知道自己的端口支持 Gen 2x2,而且愿意只在插电、不放腿上的场景下使用它——满足这些条件之后,10G 扩展卡才能兑现它的标称性能。


本文的素材来自公开信息和社区讨论。如果你对这个话题有更深入的一手经验,欢迎指出文中的不足。