TAPTUN摘要

it2026-01-03  10

TUN适用于IP帧。Tap适用于以太网帧。TAP摸拟一个以太网设备(以arp广播MAC识别),它操作第二层数据包如以太网数据帧。 TUN模拟了网络层ip设备(以点对点的方式,使用ip标识),操作第三层数据包比如IP数据封包。
TUN/TAP口就相当于是一个以太网卡,只是虚拟出来的东西。

  如上图所示。实体网卡是通过网线来进行收发报文,也就是说在实体网线上传输的是已经完全封装好的报文格式,也就是完整的以态帧。 而对于TAP/TUN就有点区别了,我们知道它是虚拟出来的,那么它们就不是实体网卡。 那么问题来了,那么它们收到的报文是从哪里传送过来的? 当然还是得有 “网线”了,但是这里说的“网线”并不是真正的网线,而是 文件描述符。 TAP/TUN在用户态的接口也与实体网卡一样的,也就通过ifconfig可以配置和管理的网络接口,通过socket绑定到这些 接口上收到的数据就是用户态的数据,也就是剥离最外层二三层的数据。

openvpn有dev tun和dev tap模式的区别。

   cookbook的解释是:A TUN device is used mostly for VPN tunnels where only IP-traffic is used. A TAP device allows full Ethernet frames to be passed over the OpenVPN tunnel. hence providing support for non-ip based protocols such as IPX and AppleTalk.   

   简单的翻译一下:一个TUN设备大多时候,被用于基于IP协议的通讯。一个TAP设备允许完整的以太网帧通过Openvpn隧道,因此提供非ip协议的支持,比如IPX协议和AppleTalk协议。

再简单的说一下,如果在互联网上使用,那肯定是基于ip协议的,用tun没错,如果是在一个以太网内使用,那么tap可能是一个更好的选择。



  像这种模式,就是VPN的典型应用场景了。 这也是开源项目Vtun ( https://www.baidu.com/link?url=B1lrbVq7LfKNRpTES4l1YfWdisEF2WgMPUdXQWdMX02yW7oit3SG1ZsjykABfdbV&wd=&eqid=940a6e3c0008c916000000045847770d ) 的模型                                      

null

转载于:https://www.cnblogs.com/yml435/p/6140254.html

相关资源:数据结构—成绩单生成器
最新回复(0)