TUN provides a virtual point-to-point network interfaces
IP packets written to the /dev/tun0 character device will be received by the kernel from the tun0 interface
IP packets sent by the kernel through the tun0 interface can be read through /dev/tun0
TAP provides a similar virtual ethernet interface, via the tap0 interface and /dev/tap0
Mostly portable among Linux, FreeBSD, and Solaris
Ideal for writing VPN and proxy server clients
Was developed and written for VTun (Virtual Tunnels)
PPP could easily be implemented using TUN