前言
说到互联网 , 大家很容易想到的有 CPU、服务器、操作系统、应用程序(APP)、小程序、网页(HTML)等 。然而 , 还有一个要素是很容易被忽略的 , 却是最重要的 , 那就是网卡 。如果没有网卡 , 那么所有的主机将会是孤立的 , 没法实现相互间通信 , 也就不存在互联网了 。两台主机之间要实现通信 , 互相收发报文 , 最底层的基础设施 , 除了传输链路(光纤、网线等) , 就是安装在主机上的网卡了 , 它将主机上应用软件产生的数据打包 , 然后从物理链路上发送出去 , 同理 , 它还可以从物理链路上接收报文 , 送往主机上的应用程序 。
在这篇文章中 , 你将会了解到什么是中断 , 什么是 PCIe , 什么是 uio , 什么是 igb_uio , 什么是 pmd , 什么是 DPDK 等一系列与网卡相关的概念及网卡工作的原理 。
文章插图
物理网卡
这里以 Intel 网卡为例 , 有 10G、25G、100G 等 , 表示最大的传输速度 , 单位 Gbit/s 。网卡可以有一个端口 , 也可以有多个端口 。
网卡驱动知多少
假如我们从 Intel 买回来一张网卡 , 是不是直接插到电脑上 , 就可以用呢?答案是否定的 。从一张物理网卡到真正能够实现收发报文 , 中间可是有一堆工作要做的 。
- PCIe
- 中断
所谓中断 , 就是外部设备向处理器发起的请求事件 , 但这还不够本质 。更本质的理解是处理器对外开放的实时受控接口 。中断绝对不是硬件代替软件去轮询 , 而是硬件的结构决定了 , 当某个管脚电平变低(或者变高)的时候 , CPU 就会被打断 , 并从特定地址开始执行 。比如 , 当 CPU 的 RESET 被拉低的时候一定会复位并从某个特定地址重新开始执行 , 这是由硬件的结构决定的 。
- uio
文章插图
- pmd
pmd 有哪些功能呢?比如对网卡硬件进行一些配置 , 例如设置网卡接收缓冲区 , 发送缓冲区的大小 。所谓对网卡进行配置 , 也就是对网卡寄存器进行配置 。每个网卡都有自己的配置空间 , 对应了很多寄存器 , 每种寄存器各自负责不同的功能 。比如接收控制寄存器 , 用于对网卡收发包的一些设置; 中断寄存器 , 用于设置允许哪里产生中断事件 , 例如链路中断 。
- igb_uio
- i40e、ixgbe 等
- 虚拟网卡
总结
我们拿到 Intel 的一张网卡时 , 一般加载其对应的网卡驱动就可以使用了 , 比如 i40e、ixgbe 等 。但如果我们要用 DPDK 实现用户态网卡收发包 , 就需要下载 Intel 等开源代码 - DPDK , 内核需要加载 igb_uio , 用户态 pmd 驱动框架需要加载 librte_i40e.so 等 。
Linux 系统中 DPDK 编程常用命令
【为什么说网卡是互联网世界的基石 互联网网卡是什么意思】
ifconfig/sys/config/net-scripts/ 下的文件可以用来配置 eth 口的 ip 地址等ip link showlspci // 有很多可选参数lsmodsu modprobe uiosu insmod igb_uiodpdk主目录/usrtools/ 下的 dpdk-devbind.py、dpdk-setup.sh 等自带脚本linux 用户空间和内核空间通信通过 sysfs 实现
- 这些防疫新词英语怎么说 防疫的英语怎么说
- 为什么会推行户口合并 为什么要户口合并
- 【游戏世界】炉石传说:纳鲁的赐福可以完美地替代治疗之环吗?
- 玻璃反光风水说法
- 海尔冰吧排水孔位置图 海尔冰吧使用说明书
- 葡萄酒醒酒最快方法 葡萄酒为什么要醒酒?何时需要醒酒?
- 【历史故事】很多美军在越战后回国都睡不着,为什么?一些越南女性手段太狠
- 女子耳朵痣相图解
- 女人断眉面相有什么说法
- 【游戏世界】魔兽世界tbc怀旧服:奶骑的坑位去哪了?现在打团为什么需要?