多队列网卡

  • 1.网卡硬件支持
  • 队列会通过PCI总线通知CPU(中断)
  • vmxnet3是通过软件代码虚拟出来的硬件
  • 2.内核支持多队列
  • 网卡本身就支持多队列
  • 多队列网卡的接收与发送
  • NAPI和QDisc
  • NAPI
  • 接收数据之前,得知道有数据可以接收(通过网卡中断 硬中断,有数据会触发)
  • 问题:当触发特别频繁时候如 1s几千次
  • 解决方式:(类似epoll用来接收)就是不是来数据就触发去读,而是去通知,收到通知就一直读
  • 调用发送函数(send)
  • 网卡把数据发送出去是两个过程,中间有个东西叫做队列,这个发送send只是把数据放进发送队列中,网卡再把数据发送出去。
  • QDisc
  • 1.队列的先进先出 (多进程发送会有问题)这个可以设置的
  • 2.根据四元组,相同放在一起,检索后的一起发

sk_buffer 数据包发送和接收的东西

  • 3.dpdk

虚拟化
1.CPU虚拟化

  • CPU完全虚拟化
    在这里插入图片描述
    vmware
    CPU通过软件虚拟出来,可以软件修改CPU

  • 硬件辅助级虚拟化 vsphere
    在这里插入图片描述

  • CPU的半虚拟化 docker
    通过new生成新的虚拟机
    在这里插入图片描述
    虚拟化技术
    intel:vt-d
    amd:vt-x
    北桥和南桥
    2.内存虚拟化
    虚拟机中的虚拟内存和物理内存

桥接和NAT 都是在一个物理网卡
虚拟机网络处理时候有没有经过物理机再到网卡设备?
3.IO虚拟化

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐