Hacker News new | past | comments | ask | show | jobs | submit login
Revisiting Network I/O APIs: The netmap Framework (2012) (acm.org)
29 points by yankcrime on Aug 25, 2015 | hide | past | favorite | 3 comments



Netmap is cool (and proves that you don't have to be 100% userspace to get good performance), but it's basically packet I/O. Most programs want sockets, not packets.

IX https://www.usenix.org/conference/osdi14/technical-sessions/... and Seastar http://www.seastar-project.org/ have revisited the socket API to provide high-level high-performance networking.


That's intentional, see http://wanproxy.org/libuinet.shtml for an example of a layered socket stack and application using it all.


The idea is to run most of the networking stack in user space. This means that context switches aren't required on a per-packet basis anymore.

The idea is not that you do your own packet processing in every app (although big gains can be had that way, fucking with TCP can pay off big, and avoids firewall issues with UDP protocols). But there are standard libraries for doing standard TCP and UDP over this. There are even libraries for doing non-standard (multipath) TCP with the netmap framework.

Also there is network interface hardware that effectively implements the netmap framework.

Plus think of the other advantages of this : userspace firewalls/deep packet inspection/proxys/... (that therefore can't ever crash the kernel, run with minimal privileges and when blown up can just be restarted)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: