NetTap: an efficient and reliable PC-based platform for network programming

NetTap: an efficient and reliable PC-based platform for network programming NetTap is a new platform for prototyping, field testing, and deploying network services. NetTap is based on a PC running FreeBSD, and can be configured as a bridge, router, or host. NetTap’s API allows user level network applications to send or receive packets on standard network adapters without copying or system call overheads. NetTap’s watchdog timer and simple bypass switch can be configured to preserve network connectivity in case of NetTap failure. Experiments demonstrate substantial performance advantages of the NetTap API over FreeBSD’s network programming APIs (Berkeley packet filters, ipfv, and divert sockets). In particular, NetCounter, an application for capturing and aggregating IP network billing records, achieves greater throughput on NetTap at user level than does FreeBSD’s IP forwarding at kernel level.