首页 > 编程知识 正文

互联网通俗解释(互联网的概念)

时间:2023-05-05 03:41:08 阅读:95230 作者:1633

前言

说到互联网,你会想到CPU、服务器、操作系统、APP (app )、小程序、网页(HTML )等。 但是,另一个因素经常被忽略,但最重要的是网卡。 如果没有网卡,所有的主机都会孤立,无法相互通信,互联网也就不存在了。 两台主机之间必须实现通信,相互发送接收消息。 最下层的基础设施是除了传输链路(光纤、网线等)之外,还设置在主机中的网卡,将主机上的APP应用软件生成的数据分组化,从物理链路进行发送。 同样,也可以从物理链路接收消息,发送到主机上的APP。

在本文中,我们可以了解网卡的相关概念和网卡的工作原理,包括什么是中断、什么是PCIe、什么是uio、什么是igb_uio、什么是pmd、什么是DPDK等。

物理网卡

这里以Intel网卡为例,有10G、25G、100G等,显示了最大的传输速度、单位Gbit/s。 网卡有一个端口或多个端口。

你对网卡驱动器了解多少

从英特尔买来网卡后,直接连接电脑就可以使用了吗? 答案是否定的。 从一张物理网卡到真正实现消息的收发,途中还有很多工作要做。

PCIePCIe是一种高速串行点对点双通道高带宽、计算机扩展总线标准,目前已发展到第四代。 简单地说,这是用于将网卡插入计算机主板的插槽。 将网卡插入主板插槽时,将为一个网卡的每个端口分配PCIe ID。 这是网卡端口的物理id。 其中,PCI是PCIe的前一种形式。

首先,请明确网卡的收发是通过中断来实现的。 中断是什么?

中断是指外部设备向处理器请求的事件,但这不是本质。 更本质的理解是处理器向外部开放的实时控制接口。 中断不是由硬件代替软件进行轮询,而是由硬件结构决定的。 当某个针脚的级别变低(或变高)时,CPU会中断并从特定地址运行。 例如,当CPU重置被拉下时,它总是被重置,并从某个特定地址重新开始执行。 这是由硬件的结构决定的。

uiouio是操作系统提供的内核模块——内核框架,支持用户空间的I/O技术。 众所周知的DPDK开源组件是实现依赖于内核空间的uio框架的用户状态I/O技术。

pmd

PMD(pollmodedriver )是DPDK在用户状态下实现的网卡驱动程序,准确地说,它应该是能够将Intel各种网卡的实际驱动程序加载到用户状态的接口。

pmd有什么功能? 配置网卡的硬件,例如,设置网卡的接收缓冲区、发送缓冲区的大小等。 设置网卡是指设置网卡的寄存器。 每个网卡都有自己的配置空间,支持很多寄存器,每个寄存器负责不同的功能。 例如,用于向网卡发送接收包接收控制寄存器; 中断寄存器。 设置允许发生中断事件(如链接中断)的位置。

igb_uioigb_uio,即DPDK提供的igb_uio.ko是DPDK用于与uio进行交互的内核模块,通过igb_uio使用指定的PCI网卡设备igb_uio通过使用uio技术拦截中断并重置中断回调行为,绕过内核协议栈的后续处理过程。 然后,igb_uio在内核初始化的过程中将网卡硬件寄存器映射到用户状态。

i40e、ixgbe等i40e驱动程序支持Intel x700系列网卡。 这是Intel提供的,是网卡的真正驱动程序。 Linux操作系统必须将i40e.ko加载到内核中,才能识别此物理网卡。 ixgbe是Intel 82599系列的网卡驱动程序。

虚拟网卡这一概念随着虚拟机(vm )的产生而出现的是虚拟机上的网卡。 可以与主机的物理网卡配合使用。

总结

一旦获得了Intel的网卡,就可以加载和使用i40e、ixgbe等对应的网卡驱动程序。 但是,要通过DPDK实现用户状态的网卡收发包,需要下载Intel等开源代码- DPDK。 内核必须加载igb_uio,用户状态的pmd驱动器框架必须加载librte_i40e.so等。

Linux系统中DPDK编程常用的指令

ifconfig

/sys/config/net-scripts/下的文件可以用于配置eth端口的ip地址等

IP链接显示

lspci //有很多可选参数

lsmod

su modprobe uio

固态硬盘igb _ uio

dpdk主目录/usrtools/下的dpdk-devbind.py、dpdk-setup.sh等附带了脚本

linux用户空间和内核空间的通信通过sysfs实现

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。