4 ms·
See Intel's DPDK and Tilera's mPIPE. You can't really do this with TCP though, without changing the hardware. Most modern network adapters support only a scat
by colanderman 10y ago
See Intel's DPDK and Tilera's mPIPE.
You can't really do this with TCP though, without changing the hardware. Most modern network adapters support only a scatter/gather list mechanism for receiving/sending packets, but this doesn't work for receiving TCP payloads into contiguous locations, since TCP's data model is a byte stream.
With UDP and SCTP you can do full zero-copy just fine.
- gpderetta 10y agoAn option is to expose the the fragmented packets to the application and let it handle it. For some applications, application levels packets are rarely fragmented in the tcp stream so 0 copy handling of the incoming tcp stream is possible and fall back once in a while to a compacting copy is an option. A bigger problem is that on the send side you can't reuse the a 0 copy buffer until the remote ack has arrived for that tcp segment which complicates the interface between the application and the tcp stack.