4 ms·
With modern network cards, at the endpoints, the CPU overhead is zero because of TCP segmentation offload and generic receive offload. And routers use ASICs, no
by patrakov 4y ago
With modern network cards, at the endpoints, the CPU overhead is zero because of TCP segmentation offload and generic receive offload. And routers use ASICs, not CPUs.
- shaklee3 4y agothis is not true at all. All modern routers use a combination of ASICs and CPUs. some of the data plane even runs through the CPU, depending on the protocol. also, TCP segmentation offload does not mean that the entire TCP protocol is offloaded onto the NIC. only a small part of it is and the rest of it still goes through CPU.
- richardwhiuk 4y agoWith TSO and GRO, the CPU deals with jumbo frames and the NIC handles splitting and combining them. You are correct that intermediate boxes all take a perf hit for the extra packets, because routers and other boxes are usually packets per second bound at some point, rather than bandwidth.
- tomohawk 4y agoHTTP/3 uses UDP. GSO can help with UDP, but is considerably more limited than TSO for TCP. The TCP interface to the kernel allows arbitrarily large buffers of data to be provided by the app, which the kernel/driver/card can segment. The UDP interface caps this at 64K