3 ms·
Well I think the main reason is that you don't want to have hardware dependencies in your software. You instead depend on the kernel socket interface, and the
by chubot 10y ago
Well I think the main reason is that you don't want to have hardware dependencies in your software. You instead depend on the kernel socket interface, and the kernel abstracts over hardware.
Most of the situations mentioned are where you explicitly have control over the hardware:
- embedded devices
- high frequency trading -- obviously they control their own hardware
- Google -- ditto, data centers have very specific hardware
My understanding is that you can rely on Intel network cards having a similar programming interface, but there is still a fair bit of diversity in other hardware (correct me if I'm wrong)
I think there's no open source user space TCP stack because then you would have to recreate all the portability of the Linux kernel in user space... although I could be wrong about this.
- virtuallynathan 10y agoThere are DPDK drivers for a large number of NICs, not just Intel ones. Either the Kernel or DPDK needs drivers anyhow, just depends how they are written.