To generate packets under linux and reach line rate bandwidth you where often forced to use the in-kernel packet generator, called pktgen. A patch from Daniel Borkmann and Jesper Dangaard Brouer added a new socket option to bypass the Linux internal QDISC to the driver directly and speed up things by bypassing a larger stack component.
This component makes less sense if used with a standard STREAM or DGRAM socket.
Rather a RAW (
PF_PACKET) socket is main user for this option, especially
bundled with an
mmaped memory area. The advantage over the pktgen generator
is that packets can be generated/modified in userspace.
Check out the d346a3fae3 the patch for more detail.