然而并不一定会更快,不要迷信 offload
使用专用芯片 offload 是会损失可用性的,而且在链路层设备上访问上层数据是很肮脏且(有可能会)违反网络中立性原则的。这可能导致性能反而下降!
比如 Intel(R) Ethernet 10 Gigabit PCI Express Family of Adapters 的驱动程序手册中的警告信息显示:使用 IP 转发或桥接时,如果不禁用 LRO,可能导致吞吐量很低甚至内核恐慌(
https://downloadmirror.intel.com/14687/eng/readme.txt )
而且 offload 会大大降低可用性。例如,如果你的网卡仅支持 IPv4 Checksuming Offload,你怎么办?为了 IPv6,你只你禁用此项 offload。
对于无线网卡这种标准和新策略变化更快的设备上,这种效应就更明显了。Full-MAC 设备性能可能通常情况下更好,但一旦新的机制出现,可能能解决的办法只有更换硬件(当没有高质量 Soft-MAC 驱动程序时)。使用 Soft-MAC 友好的无线网卡,就可以通过软件在旧硬件上实施 WPA3 新的、更强的加密协议,MESH 网状网络等等而无需更换硬件。
计算机网络为何分层设计,打破分层获得一时的速度是否真的值得。而且现代的 CPU 已经非常强大,这点消耗其实并不大。
这也是对”机制“和”策略“分离的考虑。将机制和策略分离损失一些性能获得更高的可用性,还是糅合在一起获得最大性能但一旦需要对策略的改变都将动摇机制。