As known the typical packet processing in the TCP/IP is not a zero-copy. This means that in addition to one copy Ethernet-card --> CPU-RAM, there are an additional operations of copy: of frames, packets, or parts thereof. Stack TCP/IP includes 5 layers: Physical, Datalink, Network, Transport, Application
- The first two layers (Physical, Datalink) have at least 1 copy: Ethernet-card --> CPU-RAM (buffer in kernel-space).
- The next two layers (Network, Transport) have at least 1 copy (kernel-space buffer --> user-space socket buffer) and 1 read (to calculate check-sum).
- We do not consider the late (Application) layer, because there is always the developer himself controls the amount of copying
And how much in total operations of copy and of read occur in the processing of data in the stack TCP/IP for TCP and UDP?
At how many times TCP/IP slower than zero-copy RDMA (SDP/uDAPL), i.e. at how many times it makes more extra software?