计算机科学

首页 > 计算机科学

TUN与TAP

2018-09-07 09:29:18

在计算机网络中,TUNTAP是操作系统内核中的虚拟网络设备。不同于普通靠硬件网路板卡实现的设备,这些虚拟的网络设备全部用软件实现,并向运行于操作系统上的软件提供与硬件的网络设备完全相同的功能。

TAP 等同于一个以太网设备,它操作第二层数据包如以太网数据帧。TUN模拟了网络层设备,操作第三层数据包比如IP数据封包。

操作系统通过TUN/TAP设备向绑定该设备的用户空间的程序发送数据,反之,用户空间的程序也可以像操作硬件网络设备那样,通过TUN/TAP设备发送数据。在后种情况下,TUN/TAP设备向操作系统的网络栈投递(或“注入”)数据包,从而模拟从外部接受数据的过程。

TUN/TAP被用于:

  • 虚拟私有网络
    • OpenVPN,Ethernet/IP over TCP/UDP;encrypted, compressed
    • tinc (protocol) 1, Ethernet/IPv4/IPv6 over TCP/UDP; encrypted, compressed
    • VTun 2, Ethernet/IP/serial/Unix pipe over TCP; encrypted, compressed, traffic shaping
    • OpenSSH
    • ICMPTX 3, IP over ICMP (ping)
    • NSTX 4, IP over DNS
    • HTun 5, IP over HTTP
    • coLinux,Ethernet/IP over TCP/UDP
    • Hamachi
    • VPN-X 用Java封装的TAP驱动,并实现了P2P/SSL VPN
  • virtual machine networking
    • Bochs
    • coLinux
    • QEMU
    • Hercules (S/390 emulator)

TUN/TAP设备驱动程序能支持如下平台:

  • FreeBSD
  • Mac OS X
  • Linux,starting around version 2.1.60
  • Microsoft Windows 2000及后续版本
  • OpenBSD
  • NetBSD
  • Solaris Operating System

外部链接

  • http://vtun.sourceforge.net/
  • http://www.kernel.org/pub/linux/kernel/people/marcelo/linux-2.4/Documentation/networking/tuntap.txt

相关推荐