• 关于tap设备


    $QEMU_PATH 
    -nographic  
    -drive file=./rootfs.ext4,format=raw 
    -net nic,vlan=0 -net tap,vlan=0,ifname=tap0,script=no,downscript=no 
    -S -gdb tcp::7852
    

    在这个qemu的配置中,-net nic,vlan=0 是客户机中的前端,-net tap,vlan=0,ifname=tap0,script=no,downscript=no是位于host机中的后端。

    这是我qemu的配置,试着理解下这个配置中网络部分的原理,qemu是qemu中使用的一种虚拟的网络设备,当虚机中发生了网络行为的时候,网络数据会发送到用户态,然后用户态写入到tap设备中去,然后tap设备作为一个二层设备。这么说吧,普通的二层设备一层连实际的网络,一层连网络层;现在的tap设备,一层连用户态,一层连网络层;都是负责发包的。

    同理推测下 TUN 设备是干嘛的?刚才说TAP是一个二层的设备,然后会把数据传递给网络层,关键点就是这个网络层了,

    【网络层会干吗?发送数据的时候很简单,填充好自己的IP地址,然后根据路由的信息,填上目的地址,发出去;接收数据呢?接收数据会根据自己的,IP数据报可能分段,在IP层可能会发生一个合并,合并好之后,传递给TCP层?tap设备会直接给】

    介绍 TAP/TUN,使用TAP设备的应用程序相当于另外一台计算机【这不就是qemu的网络虚拟化么......】

    https://www.cnblogs.com/yml435/p/5917628.html
    

    tun设备:

    https://www.cnblogs.com/woshiweige/p/4532207.html
    

    所以这样就基本就串起来了,启动了qumu之后,其实我们在客户机中看到的设备是一个三层设备,tun设备,当在客户机中往这个三层设备写数据时,qemu用户态可以直接感知到这些数据了,qemu得到这些数据之后,就把数据写入到tap0,tap0作为一个虚拟的二层设备,然后将数据并入到内核中真正的网络协议栈中去。qemu的这部分真是绝了!那么qemu相关配置中的vlan又是啥咧。

  • 相关阅读:
    在Arduino IDE中安装ESP32 Filesystem Uploader
    人工智能必备数学基础:线性代数基础(1)
    人工智能必备数学基础:高等数学基础(3)
    迟到的=2020=年终总结
    常用软件-官方下载地址
    海康、大华的RTSP地址规则说明及通道问题(重点)
    各类服务器性能的瓶颈分析
    分析影响流媒体服务器性能的硬件瓶颈
    linux下程序、动态库、静态库内部添加版本号和编译时间与Windows下Qt 如何给程序添加版本信息
    css link import 两者之间的区别
  • 原文地址:https://www.cnblogs.com/honpey/p/8141309.html
Copyright © 2020-2023  润新知