[网络虚拟化技术(二): TUN/TAP MACVLAN MACVTAP] https://blog.kghost.info/2013/03/27/linux-network-tun/
TUN 设备是一种虚拟网络设备,通过此设备,程序可以方便得模拟网络行为。先来看看物理设备是如何工作的:
From right to left
wf1

所有物理网卡收到的包会交给内核的 Network Stack 处理,然后通过 Socket API 通知给用户程序。下面看看 TUN 的工作方式:
From right to left

wf2

普通的网卡通过网线收发数据包,但是 TUN 设备通过一个文件收发数据包。所有对这个文件的写操作会通过 TUN 设备转换成一个数据包送给内核;当内核发送一个包给 TUN 设备时,通过读这个文件可以拿到包的内容。

如果我们使用 TUN 设备搭建一个基于 UDP VPN,那么整个处理过程就是这样:

From right to left

wf3

数据包会通过内核网络栈两次。但是经过 App 的处理后,数据包可能已经加密,并且原有的 ip 头被封装在 udp 内部,所以第二次通过网络栈内核看到的是截然不同的网络包。

linux TUN 虚拟网卡设备相关推荐

  1. linux没有网卡装置,基于Linux的虚拟网卡实现方法、装置、设备及介质与流程

    技术特征: 1.一种基于linux的虚拟网卡实现方法,其特征在于:包括以下步骤: s1,vpn系统通过ppp接口获取带有ppp协议的网络封包,从该网络封包中读取ppp协议数据,从该ppp协议数据中提取 ...

  2. sstap tun虚拟网卡没有安装_虚拟设备之TUN和TAP

    前言 最近尝试了下 Zerotier,感觉还挺好用的, 比较好奇它的实现原理,查了下,遂有了下文. TAP与TUN是什么 不同于硬件物理网卡,TAP/TUN 是在 Linux 内核 2.4.x 版本之 ...

  3. tun虚拟网卡该怎么玩不该怎么玩

    tun设备多用来在用户态模拟网络转发设备,比如隧道的端点,路由器,NAT网关等,但作为转发设备的模拟,其编程模型和作为数据始发站的服务器编程模型有着大不同. 我们先看一下最简单的tun程序模型: tu ...

  4. 隐藏在计算机网卡怎样删除,如何卸载电脑中隐藏的虚拟网卡设备

    虚拟网卡主要是建立远程计算机间的局域网,在此虚拟的局域网上能进行所有物理存在的局域网的操作,可以互相访问,可以联网玩游戏.当需要卸载电脑系统中的虚拟网卡时,在设备管理器中无法查看到虚拟网卡设备,那么怎 ...

  5. linux里添加网卡,Linux添加虚拟网卡的多种方法

    Linux添加虚拟网卡的多种方法有时候,一台服务器需要设置多个ip,但又不想添加多块网卡,那就需要设置虚拟网卡.这里介绍几种方式在linux服务器上添加虚拟网卡.我们 有时候,一台服务器需要设置多个i ...

  6. win10装linux没有虚拟网卡,windows 10 64位系统安装虚拟网卡失败

    虚拟网卡及其驱动是我们自己开发的.安装虚拟网卡及其驱动时有用到 .sys,.inf,.cat 和devcon.exe等文件. sys文件和cat文件都带有有效数字签名. 在其他windows操作系统, ...

  7. Linux创建虚拟块设备并格式化为文件系统

    环境 为了方便学习文件系统的原理和原始数据的分析,需要创建虚拟块设备并格式化为ext4文件系统: Linux创建虚拟块设备 losetup命令     -a 显示所有已经使用的回环设备状态     - ...

  8. 服务器虚拟网卡卸载不掉,怎么彻底卸载虚拟网卡设备。 彻底卸载虚拟网卡设备的方法。...

    今天给大家带来怎么彻底卸载虚拟网卡设备.,彻底卸载虚拟网卡设备的方法.,让您轻松解决问题.网友求助:求助如何卸载虚拟网卡? 具体方法如下:1 使用Win+R调出运行,在其中输入:devmgmt.msc ...

  9. linux 虚拟网卡 源码,Linux的虚拟网卡TUN和TAP

    TUN/TAP 提供了给用户空间程序的包的接收和传输,它可以看成是简单的点对点设备或是 以太网设备.它不是从物理设备接收包,而是从用户空间程序接收包.它发送包不是通过物 理设备来发送包,而是将这些包写 ...

最新文章

  1. 洛谷P2380 狗哥采矿
  2. linux6用户t密码,linux系统 用户和组管理类命令的使用方法
  3. 第二次做HDOJ 1051
  4. 常用的数据结构_三分钟了解区块链常用数据结构「默克尔树」
  5. Leetcode 3:无重复字符的最长子串
  6. minitab怎么算西格玛水平_六西格玛黑带培训工具因子分析的使用
  7. 遍历WinForm窗体 根据语言类型设置其控件Text显示
  8. 【嵌入式Linux】嵌入式Linux应用开发基础知识之网络通信
  9. 2019 GNU Tools Cauldron 参会观感
  10. 企业微信h5开发(即JS-SDK),一不小心,就会掉进坑,进入死胡同
  11. DBSCAN 聚类算法详解
  12. android连接php还是asp,ASP或PHP如何判断是从电脑还是手机客户端访问页面的思路...
  13. 火车采集器采集多页内容的抓取方法
  14. fcpx绘制遮罩_FCPX插件6组画面冻结定帧静止转场介绍效果 Freeze Frame Transitions【资源分享1542】...
  15. python高逼格动态图_微信编辑哪里找高逼格 GIF 动图?
  16. 尼尔 android,尼尔转生wiki官网版
  17. iis8+php环境搭建问题
  18. iOS 解决报错 Module file /Users/anmo/Library/Developer/Xcode/DerivedData/ModuleCache.noindex/3FOJ1MTM...
  19. C站 APP 搜索工具使用体验与对比
  20. 聚类分析实验报告作业

热门文章

  1. Django - Xadmin (四) Filter
  2. docker 笔记(2) -- 镜像
  3. Python 字典 dict() 函数
  4. 【网络流24题】 No.3 最小路径覆盖问题 (网络流|匈牙利算法 -最大二分匹配)...
  5. CSS Margin(外边距)
  6. MySQL MHA 搭建测试
  7. hadoop-集群管理(3)——不常用参数
  8. IIS设置的解决方案
  9. 我们需要什么样的字段类型?
  10. python面试题之你如何管理不同版本的代码?