您当前的位置:首页 > 电脑百科 > 网络技术 > 网络硬件

为什么说网卡是互联网世界的基石?通俗解释网卡收发包原理

时间:2021-01-11 14:09:18  来源:  作者:

前言

说到互联网,大家很容易想到的有 CPU、服务器、操作系统、应用程序(App)、小程序、网页(html)等。然而,还有一个要素是很容易被忽略的,却是最重要的,那就是网卡。如果没有网卡,那么所有的主机将会是孤立的,没法实现相互间通信,也就不存在互联网了。两台主机之间要实现通信,互相收发报文,最底层的基础设施,除了传输链路(光纤、网线等),就是安装在主机上的网卡了,它将主机上应用软件产生的数据打包,然后从物理链路上发送出去,同理,它还可以从物理链路上接收报文,送往主机上的应用程序。

在这篇文章中,你将会了解到什么是中断,什么是 PCIe,什么是 uio,什么是 igb_uio,什么是 pmd,什么是 DPDK 等一系列与网卡相关的概念及网卡工作的原理。

为什么说网卡是互联网世界的基石?通俗解释网卡收发包原理

 

物理网卡

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

网卡驱动知多少

假如我们从 Intel 买回来一张网卡,是不是直接插到电脑上,就可以用呢?答案是否定的。从一张物理网卡到真正能够实现收发报文,中间可是有一堆工作要做的。

  1. PCIe

PCIe 是一种高速串行点对点双通道高带宽、计算机扩展总线标准,现在已经发展到第四代了。简单理解,就是计算机主板上用来插网卡的槽位。当网卡插入主板上的槽位时,一块网卡上的每个端口都对应了一个 PCIe ID,这是网卡端口的物理身份标识。这里提一句,PCI 是 PCIe 的上一个形态。

  1. 中断

首先,你要明确一点:网卡收发报通过中断实现。什么是中断呢?

所谓中断,就是外部设备向处理器发起的请求事件,但这还不够本质。更本质的理解是处理器对外开放的实时受控接口。中断绝对不是硬件代替软件去轮询,而是硬件的结构决定了,当某个管脚电平变低(或者变高)的时候,CPU 就会被打断,并从特定地址开始执行。比如,当 CPU 的 RESET 被拉低的时候一定会复位并从某个特定地址重新开始执行,这是由硬件的结构决定的。

  1. uio

uio,是一个内核框架(操作系统提供的内核模块),作用就是支持用户空间的 I/O 技术。而大家所熟知的 DPDK 开源组件就是实现用户态 I/O 技术,它依赖内核空间的 uio 框架。

为什么说网卡是互联网世界的基石?通俗解释网卡收发包原理

 

  1. pmd

pmd(poll mode driver,轮询模式驱动)是 DPDK 在用户态实现的网卡驱动程序,准确来说,它应该是个接口,它可以把 Intel 各种网卡的真正驱动程序加载到用户态。

pmd 有哪些功能呢?比如对网卡硬件进行一些配置,例如设置网卡接收缓冲区,发送缓冲区的大小。所谓对网卡进行配置, 也就是对网卡寄存器进行配置。每个网卡都有自己的配置空间,对应了很多寄存器,每种寄存器各自负责不同的功能。比如接收控制寄存器,用于对网卡收发包的一些设置; 中断寄存器,用于设置允许哪里产生中断事件,例如链路中断。

  1. igb_uio

igb_uio(也就是 DPDK 提供的 igb_uio.ko),是 DPDK 用于与 uio 交互的内核模块,通过 igb_uio 来 bind 指定的 PCI 网卡设备给到用户态的 pmd 使用。igb_uio 借助 uio 技术来截获中断,并重设中断回调行为,从而绕过内核协议栈后续的处理流程。并且 igb_uio 会在内核初始化的过程中将网卡硬件寄存器映射到用户态。

  1. i40e、ixgbe 等

i40e 驱动对应 Intel x700 系列网卡,这是由 Intel 提供的,是网卡真正的驱动,需要加载 i40e.ko 到内核,linux 操作系统才能识别这张物理网卡。而 ixgbe 是 Intel 82599 系列网卡驱动。

  1. 虚拟网卡

这个概念是伴随着 vm(虚拟机)的产生而出现的,就是虚拟机上的网卡。我们可以将它和 host(物理机)上的物理网卡进行绑定。

总结

我们拿到 Intel 的一张网卡时,一般加载其对应的网卡驱动就可以使用了,比如 i40e、ixgbe 等。但如果我们要用 DPDK 实现用户态网卡收发包,就需要下载 Intel 等开源代码 - DPDK,内核需要加载 igb_uio,用户态 pmd 驱动框架需要加载 librte_i40e.so 等。

Linux 系统中 DPDK 编程常用命令

ifconfig
/sys/config/net-scripts/ 下的文件可以用来配置 eth 口的 ip 地址等
ip link show
lspci // 有很多可选参数
lsmod
su modprobe uio
su insmod igb_uio
dpdk主目录/usrtools/ 下的 dpdk-devbind.py、dpdk-setup.sh 等自带脚本
linux 用户空间和内核空间通信通过 sysfs 实现


Tags:网卡   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
步骤1、配置 /etc/sysconfig/network-scripts/ifcfg-eth0 里的文件。it动力的CentOS下的ifcfg-eth0的配置详情:[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifc...【详细内容】
2021-12-24  Tags: 网卡  点击:(9)  评论:(0)  加入收藏
当你所处的网络环境比较复杂,既有小局域网(192.168.XXX.XXX)、政务网(10.10.XXXX.XXX),也有互联网时,需要同时访问三类网络,又不希望来回切换网络,可以通过多网卡和route命令进行设...【详细内容】
2021-12-07  Tags: 网卡  点击:(19)  评论:(0)  加入收藏
随着网络通讯技术的不断发展,人们对于网络传输速率的要求也在不断提高,为了日益增长的网络数据传输需求,以太网卡在网卡端口类型和传输速率等方面也发生很大变化。由最初的100M...【详细内容】
2021-11-03  Tags: 网卡  点击:(23)  评论:(0)  加入收藏
家里最近网络莫名卡顿,经过学习研究发现几个问题,也许很普遍,特地分享给大家。一,信道家用2.4gwifi有13个信道,第一个和最后一个尽量别用,延迟比较严重,也许和带宽边界有关。我的网...【详细内容】
2021-08-20  Tags: 网卡  点击:(76)  评论:(0)  加入收藏
网络是云计算绕不开的话题,其中主机内部网络性能开销最大的就是数据拷贝,那么通常情况下,当网卡接收到数据后,要经过几次拷贝才能被应用程序接收呢 ?下图是一个网卡接收数据的整...【详细内容】
2021-07-04  Tags: 网卡  点击:(300)  评论:(0)  加入收藏
本文主要介绍服务器的概念、常见的服务器技术和架构组成,此外将详细介绍磁盘、RAID知识,网卡概念、分类和主流厂商和产品,内容大致分为3部分。 第1章、服务器通用基础知识简单...【详细内容】
2021-06-21  Tags: 网卡  点击:(114)  评论:(0)  加入收藏
网卡驱动是我们上网重要的组件,最近有用户反映在重装系统后遇到了没有网络的情况,这让很多用户很苦恼,那么Win7纯净版无网卡驱动出现问题该怎么解决呢?下面与大家分享win7纯净版...【详细内容】
2021-01-22  Tags: 网卡  点击:(267)  评论:(0)  加入收藏
前言说到互联网,大家很容易想到的有 CPU、服务器、操作系统、应用程序(APP)、小程序、网页(HTML)等。然而,还有一个要素是很容易被忽略的,却是最重要的,那就是网卡。如果没有网卡,那...【详细内容】
2021-01-11  Tags: 网卡  点击:(139)  评论:(0)  加入收藏
大家好,我是大明、现在智能手机的功能非常的强大,摇身一变就可以成为我们生活中的一些工具,例如“测温计”,“遥控器”,“摄像头”,“照相机”,“U盘”,“电脑系统盘”等等,但是手机...【详细内容】
2020-12-22  Tags: 网卡  点击:(226)  评论:(0)  加入收藏
在某些场景中,我们希望在 Linux 服务器(CentOS/RHEL)的同一块以太网卡(NIC)上分配来自不同 VLAN 的多个 IP。这个可以通过使用 VLAN 标记接口来实现。• 来源:linux.cn &bull...【详细内容】
2020-12-18  Tags: 网卡  点击:(134)  评论:(0)  加入收藏
▌简易百科推荐
这是不少新老网工工作中常会遇到的一个问题,不少萌新容易纠结。当然,交换机的选型,有很多的重要技术参数需要考虑,硬件上包括百兆/千兆/万兆速率的端口、电口/光口/PoE口、端口...【详细内容】
2021-12-22  网络工程师俱乐部    Tags:交换机   点击:(11)  评论:(0)  加入收藏
作者丨皮特潘编辑丨极市平台前言本文盘点一些CNN网络中设计比较精巧而又实用的“插件”。所谓“插件”,就是不改变网络主体结构, 可以很容易嵌入到主流网络当中,提高网络提取特...【详细内容】
2021-12-14  极市平台    Tags:CNN网络设计   点击:(21)  评论:(0)  加入收藏
出色的Wi-Fi 6体验AX2是一款Wi-Fi 6智能路由器,在双频模式下,最大理论数据传输速率为1501Mbps,比Wi-Fi 5路由器更快,后者只能支持1200Mbps的最高速度。该路由器采用真正的双频技...【详细内容】
2021-11-01  小牛仔科技    Tags:路由   点击:(42)  评论:(0)  加入收藏
老配置文件导到新交换机上,SSH不能登陆,会提示Received disconnect from 192.168.2.163: 2: The connection is closed by SSH ServerCurrent FSM is SSH_Main_VersionMatch其...【详细内容】
2021-10-26  Xiao工    Tags:h3c   点击:(157)  评论:(0)  加入收藏
以太网端口有 3种链路类型:access、trunk、hybirdAccess类型端口:只能属于1个VLAN,一般用于连接计算机端口;Trunk类型端口:可以允许多个VLAN通过,可以接收和发送多个VLAN 报文,一...【详细内容】
2021-10-15  弱电干货    Tags:交换机   点击:(120)  评论:(0)  加入收藏
为了让你上网更爽,路由器这些年都经历了啥不得不说,互联网的发展实在是神速,想想初中的时候还在用腾讯3G版“在线观看”诸如NBA等赛事的文字直播,现在只要家里的宽带给力,在线4K...【详细内容】
2021-10-09    中关村在线  Tags:WiFi6   点击:(61)  评论:(0)  加入收藏
光纤操作时不小心弄断了怎么办?这个在弱电项目日常操作中是常有的事情。最近也有朋友问到过这个问题。 如果是光纤断了,要把两根光纤线接在一起,那需要光纤热熔机,因为光纤是石...【详细内容】
2021-09-02  弱电    Tags:光纤   点击:(130)  评论:(0)  加入收藏
移动wifi和随身wifi都是目前大家接触非常多的网络电子产品,但是经常还是有很多网友会咨询这两者到底是有什么区别,是不是都可以随时随地的上网;为了讲明白两者的区别,我把这两者...【详细内容】
2021-08-04  自发自乐    Tags:wifi   点击:(317)  评论:(0)  加入收藏
一.为什么要使用摄像头为了安全,可以随时随地看的家里的情况,比如农村外出打工的人比较多,家里老人孩子就比较让人担心,安装摄像头可以随时照看,还可以看家护院。家用摄像头品牌来...【详细内容】
2021-07-16  弱电工程设计和施工    Tags:家用摄像头   点击:(88)  评论:(0)  加入收藏
监控系统在这里特指对数据中心的监控,主要针对数据中心内的硬件和软件进行监控和告警。企业的 IT 架构逐步从传统的物理服务器,迁移到以虚拟机为主导的 IaaS 云。无论基础架构...【详细内容】
2021-07-12  高薪实战爱好者    Tags:监控系统   点击:(183)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条