背景
- Read the fucking source code! --By 鲁迅
- A picture is worth a thousand words. --By 高尔基
说明:
- KVM版本:5.9.1
- QEMU版本:5.0.0
- 工具:Source Insight 3.5, Visio
概述
- 从本文开始将研究一下virtio;
- 本文会从一个网卡虚拟化的例子来引入virtio,并从大体架构上进行介绍,有个宏观的认识;
- 细节的阐述后续的文章再跟进;
1. 网卡
1.1 网卡工作原理
先来看一下网卡的架构图(以Intel的82540为例):
- OSI模型,将网络通信中的数据流划分为7层,最底下两层为物理层和数据链路层,对应到网卡上就是PHY和MAC控制器;
- PHY:对应物理层,负责通信设备与网络媒介(网线)之间的互通,它定义传输的光电信号、线路状态等;
- MAC控制器:对应数据链路层,负责网络寻址、错误侦测和改错等;
PHY和MAC通过MII/GMII(Media Independent Interface)和MDIO(Management Data In