CN112422453A - 一种报文处理的方法、装置、介质及设备 - Google Patents
一种报文处理的方法、装置、介质及设备 Download PDFInfo
- Publication number
- CN112422453A CN112422453A CN202011432741.9A CN202011432741A CN112422453A CN 112422453 A CN112422453 A CN 112422453A CN 202011432741 A CN202011432741 A CN 202011432741A CN 112422453 A CN112422453 A CN 112422453A
- Authority
- CN
- China
- Prior art keywords
- network card
- virtual network
- message
- protocol stack
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本公开提供了一种报文处理的方法、装置、设备及介质,应用于网络设备,所述网络设备配置有虚拟网卡驱动,所述网络设备还包括用户态协议栈和内核协议栈,所述方法包括:基于所述虚拟网卡驱动在系统内核中创建虚拟网卡,并将所述虚拟网卡信息发送给所述用户协议栈;在接收到报文时,基于所述用户态协议栈对所述报文进行过滤处理;若所述报文为控制报文,则所述用户协议栈基于所述虚拟网卡信息将所述控制报文通过所述虚拟网卡转发给所述内核协议栈进行处理;若所述报文为业务报文,则所述用户协议栈对所述业务报文进行处理。应用本公开的方法,可以使网卡在用户态协议栈高性能处理业务报文,又可使网卡通过linux内核协议栈来实现对控制面协议的支持。
Description
技术领域
本公开涉及互联网技术领域,更为具体来说,本公开涉及一种报文处理的方法、装置、介质及设备。
背景技术
随着网卡硬件的带宽逐步提升,linux内核中断收发包的模式下频繁的中断切换和数据报在内核与用户态之间的拷贝成为了网络性能的主要瓶颈。为此,基于用户态网卡驱动的用户态网络协议栈应运而生,其工作在用户态,使用轮询的方式进行收发包,避免了中断切换和数据报在内核与用户态之间的拷贝,对网络的时延和带宽带来了很大的性能提升。但是当前的用户态协议栈对于大多数控制面协议未进行实现,而该类报文收发频率不是很高。现有技术使用两张不同的网卡分别工作在内核态协议栈和用户态协议栈下,对于用户态协议栈不能支持的报文使用工作在内核态协议栈的网卡进行支持。现有技术需使用两张网卡来实现对用户态协议栈和内核协议栈的支持,增加了硬件成本;同时现有技术对设备的网卡槽位增大了消耗。
发明内容
为解决现有技术的硬件成本高,消耗大的技术问题。
为实现上述技术目的,本公开提供了一种报文处理的方法,应用于网络设备,所述网络设备配置有虚拟网卡驱动,所述网络设备还包括用户态协议栈和内核协议栈,所述方法包括:
基于所述虚拟网卡驱动在系统内核中创建虚拟网卡,并将所述虚拟网卡信息发送给所述用户协议栈;
在接收到报文时,基于所述用户态协议栈对所述报文进行过滤处理;
若所述报文为控制报文,则所述用户协议栈基于所述虚拟网卡信息将所述控制报文通过所述虚拟网卡转发给所述内核协议栈进行处理;
若所述报文为业务报文,则所述用户协议栈对所述业务报文进行处理。
进一步,基于所述虚拟网卡驱动在系统内核中创建虚拟网卡的步骤包括:
基于用户触发的虚拟网卡创建命令,在所述系统内核中创建设备文件;
基于所述用户态协议栈打开所述设备文件,并获取打开所述设备文件时返回的文件描述符,以及通过所述文件描述符向所述虚拟网卡驱动发送ioctl命令,以使得所述虚拟网卡驱动根据所述ioctl命令,调用对应的ioctl执行函数创建虚拟网卡。
进一步,所述创建虚拟网卡的步骤包括:
构建虚拟网卡,分配虚拟网卡的收发包队列,定义虚拟网卡的接口管理函数和定义虚拟网卡的收发包函数。
进一步,所述虚拟网卡信息包括:
虚拟网卡的收发包队列信息,虚拟网卡的接口管理函数信息和虚拟网卡的收发包函数信息。
进一步,还包括:
在接收到用户触发的报文过滤功能关闭指令时,基于所述用户协议栈对接收到的报文进行处理。
为实现上述技术目的,本公开还能够提供一种报文处理的装置,应用于网络设备,所述网络设备配置有虚拟网卡驱动,所述网络设备还包括用户态协议栈和内核协议栈,所述装置包括:
虚拟网卡创建模块,用于基于所述虚拟网卡驱动在系统内核中创建虚拟网卡,并将所述虚拟网卡信息发送给所述用户协议栈;
过滤模块,用于在接收到报文时,基于所述用户态协议栈对所述报文进行过滤处理;
报文处理模块,用于对接收到的报文进行报文类别判断,
若所述报文为控制报文,则所述用户协议栈基于所述虚拟网卡信息将所述控制报文通过所述虚拟网卡转发给所述内核协议栈进行处理;
若所述报文为业务报文,则所述用户协议栈对所述业务报文进行处理。
进一步,所述虚拟网卡创建模块具体包括:
设备文件创建模块,用于基于用户触发的虚拟网卡创建命令,在所述系统内核中创建设备文件;
处理模块,用于基于所述用户态协议栈打开所述设备文件,并获取打开所述设备文件时返回的文件描述符,以及通过所述文件描述符向所述虚拟网卡驱动发送ioctl命令,以使得所述虚拟网卡驱动根据所述ioctl命令,调用对应的ioctl执行函数创建虚拟网卡。
进一步,还包括:
关闭过滤模块,用于在接收到用户触发的报文过滤功能关闭指令时,基于所述用户协议栈对接收到的报文进行处理。
为实现上述技术目的,本公开还能够提供一种计算机存储介质,其上存储有计算机程序,计算机程序被处理器执行时用于实现上述的报文处理的方法的步骤。
为实现上述技术目的,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述的报文处理的方法的步骤。
本公开的有益效果为:
1、可以使网卡在用户态协议栈高性能处理业务报文,又可使网卡通过linux内核协议栈来实现对控制面协议的支持,弥补用户态协议栈对控制面协议的缺失;
2、在实际项目开发中,上层应用模块可选择继续沿用linux内核协议栈,不必进行使用用户态协议栈的改造,使协议栈从内核态到用户态的变迁能够平稳过渡。
附图说明
图1示出了本公开的实施例1的流程示意图;
图2示出了本公开的实施例1的优选实施方式的结构示意图;
图3示出了本公开的实施例2的结构示意图;
图4示出了本公开的实施例4的结构示意图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在附图中示出了根据本公开实施例的各种结构示意图。这些图并非是按比例绘制的,其中为了清楚表达的目的,放大了某些细节,并且可能省略了某些细节。图中所示出的各种区域、层的形状以及它们之间的相对大小、位置关系仅是示例性的,实际中可能由于制造公差或技术限制而有所偏差,并且本领域技术人员根据实际所需可以另外设计具有不同形状、大小、相对位置的区域/层。
本公开涉及的术语解释:
[1]带宽:每秒传输的数据量;
[2]中断收发包:由网卡发起中断请求内核进行收发数据包;
[3]轮询收发包:由CPU循环查询网卡是否需要收发包进行数据包的收发;
[4]设备文件:linux中设备驱动程序的接口,创建设备文件后会出现对应的文件;
[5]文件描述符:打开现存文件或新建文件时,内核会返回一个文件描述符,用于对该打开或新建的文件进行访问;
[6]ioctl:一种用户态通过设备文件的文件描述符与内核通过命令关键字通信的机制,命令的类型和命令的执行动作由内核在创建设备文件时进行指定;
[7]linux系统接口:由linux系统实现,提供特定功能的函数;
[8]协议栈:对网络上的数据进行传输控制的软件实现;
[9]网卡收发包队列:网卡缓存收发数据包的队列的地址,网卡收发数据包时,从网卡硬件获取数据包到收包队列,将发包队列的数据包交网卡硬件发送到网络链路;
[10]控制面协议:对设备进行控制管理的协议,如ssh、telnet等协议栈;
[11]驱动:提供对设备进行访问和操作的方法的软件实现模块;
[12]app:在本场景下为从协议栈获取网络数据和向协议栈发送网络数据的应用;
[13]dpdk:一种实现用户态网卡驱动的用户态网络io开发套件;
[14]vswitch:虚拟网络交换技术;
[15]ssh:一种远程管理设备的控制协议。
实施例一:
如图1所示:
本公开提供了
一种报文处理的方法,应用于网络设备,所述网络设备配置有虚拟网卡驱动,所述网络设备还包括用户态协议栈和内核协议栈,所述方法包括:
S1:基于所述虚拟网卡驱动在系统内核中创建虚拟网卡,并将所述虚拟网卡信息发送给所述用户协议栈;
具体地,虚拟网卡驱动ioctl命令执行函数根据ioctl命令传入的信息进行虚拟网卡创建、分配虚拟网卡收发包队列、定义虚拟网卡接口管理和收发包函数,将虚拟网卡的信息返回给用户态协议栈,这样在用户态协议栈就可以访问虚拟网卡的收发包队列。
所述虚拟网卡收发包队列为网卡缓存收发数据包的队列的地址,网卡收发数据包时,从网卡硬件获取数据包到收包队列,将发包队列的数据包交网卡硬件发送到网络链路。
S2:在接收到报文时,基于所述用户态协议栈对所述报文进行过滤处理;
若所述报文为控制报文,则所述用户协议栈基于所述虚拟网卡信息将所述控制报文通过所述虚拟网卡转发给所述内核协议栈进行处理;
若所述报文为业务报文,则所述用户协议栈对所述业务报文进行处理。
具体地,执行报文过滤命令,在用户态协议栈进行报文过滤,将过滤出的控制报文通过虚拟网卡交使用linux内核协议栈的app进行报文处理,完成用户态协议栈通过虚拟网卡将控制报文发往linux内核协议栈的实现;
用户态协议栈获取虚拟网卡上linux内核协议栈回复的控制报文,并通过对应物理网卡设备将报文发出,完成用户态协议栈通过虚拟网卡获取linux内核协议栈的控制报文的实现;
对于非控制报文,直接由用户态协议栈进行处理,将报文交运行于用户态协议栈的app。
进一步,基于所述虚拟网卡驱动在系统内核中创建虚拟网卡的步骤包括:
基于用户触发的虚拟网卡创建命令,在所述系统内核中创建设备文件;
具体地,新增虚拟网卡驱动模块在linux内核创建设备文件,指定设备文件的打开、关闭和ioctl命令执行函数;
所述设备文件为linux中设备驱动程序的接口,创建设备文件后会出现对应的文件;
所述ioctl命令为一种用户态通过设备文件的文件描述符与内核通过命令关键字通信的机制,ioctl命令的类型和命令的执行动作由内核在创建设备文件时进行指定。
基于所述用户态协议栈打开所述设备文件,并获取打开所述设备文件时返回的文件描述符,以及通过所述文件描述符向所述虚拟网卡驱动发送ioctl命令,以使得所述虚拟网卡驱动根据所述ioctl命令,调用对应的ioctl执行函数创建虚拟网卡。
具体地,在用户态协议栈中打开设备文件,通过打开设备文件返回的文件描述符下发虚拟网卡创建命令,调虚拟网卡驱动的ioctl命令执行函数。
所述文件描述符为打开现存文件或新建文件时,内核会返回一个文件描述符,用于对该打开或新建的文件进行访问。
进一步,所述创建虚拟网卡的步骤包括:
构建虚拟网卡,分配虚拟网卡的收发包队列,定义虚拟网卡的接口管理函数和定义虚拟网卡的收发包函数。
进一步,所述虚拟网卡信息包括:
虚拟网卡的收发包队列信息,虚拟网卡的接口管理函数信息和虚拟网卡的收发包函数信息。
进一步,还包括:
在接收到用户触发的报文过滤功能关闭指令时,基于所述用户协议栈对接收到的报文进行处理。
应用本公开的报文处理方法,可以使网卡在用户态协议栈高性能处理业务报文,又可使网卡通过linux内核协议栈来实现对控制面协议的支持,弥补用户态协议栈对控制面协议的缺失;在实际项目开发中,上层应用模块可选择继续沿用linux内核协议栈,不必进行使用用户态协议栈的改造,使协议栈从内核态到用户态的变迁能够平稳过渡。
如图2所示,示出了本公开的实施例1的优选实施方式的结构示意图:
在用户态协议栈上,根据用户下发的创建虚拟网卡指令,下发ioctl命令在虚拟网卡驱动模块中进行设备文件的创建以实现虚拟网卡的创建;
同时,根据用户下发的创建虚拟网卡指令在用户态协议栈内部建立用户态记录虚拟网卡信息的结构体;
所述用户态记录虚拟网卡信息的结构体用于将报文入队到收包队列以及将报文从发包队列出队;
虚拟网卡中包括虚拟网卡收包函数和虚拟网卡发包函数,分别用于接收入队到收包队列的报文并将报文转交到内核协议栈进行处理以及用于接收内核协议栈处理后入队到虚拟网卡发包队列的报文;
上述用户态记录虚拟网卡信息的结构体入队到收包队列的报文由所述虚拟网卡收包函数接收以及上述用户态记录虚拟网卡信息的结构体接收所述虚拟网卡发包函数发出的发包队列并接收报文并将报文从发包队列出队;
上述的用户态协议栈内部还包括:由网卡收包函数和网卡发包函数组成的用户态网卡驱动;所述用户态网卡驱动利用所述网卡收包函数和网卡发包函数与实际的物理网卡进行交互;
所述网卡收包函数控制报文交内核协议栈并将报文入队到收包队列;
所述网卡发包函数获取从发包队列出队的内核协议报文;
在所述网卡收包函数控制报文交内核协议栈并将报文入队到收包队列的过程中还包括:通过IP层进行报文过滤,可以通过用户设置报文过滤功能开启/关闭的命令;
经过报文过滤的非控制报文交用户态协议栈经传输层后传输给与系统相连接的软件终端app上。
实施例二:
如图3所示:
本公开还提供了一种报文处理的装置,包括:
虚拟网卡创建模块301,用于基于所述虚拟网卡驱动在系统内核中创建虚拟网卡,并将所述虚拟网卡信息发送给所述用户协议栈;
过滤模块302,用于在接收到报文时,基于所述用户态协议栈对所述报文进行过滤处理;
若所述报文为控制报文,则所述用户协议栈基于所述虚拟网卡信息将所述控制报文通过所述虚拟网卡转发给所述内核协议栈进行处理;
若所述报文为业务报文,则所述用户协议栈对所述业务报文进行处理。
本公开所述的报文处理的装置中,所述虚拟网卡创建模块301与所述过滤模块302相连接。
进一步,所述虚拟网卡创建模块具体包括:
设备文件创建模块,用于基于用户触发的虚拟网卡创建命令,在所述系统内核中创建设备文件;
处理模块,用于基于所述用户态协议栈打开所述设备文件,并获取打开所述设备文件时返回的文件描述符,以及通过所述文件描述符向所述虚拟网卡驱动发送ioctl命令,以使得所述虚拟网卡驱动根据所述ioctl命令,调用对应的ioctl执行函数创建虚拟网卡。
进一步,所述创建虚拟网卡的步骤包括:
构建虚拟网卡,分配虚拟网卡的收发包队列,定义虚拟网卡的接口管理函数和定义虚拟网卡的收发包函数。
进一步,所述虚拟网卡信息包括:
虚拟网卡的收发包队列信息,虚拟网卡的接口管理函数信息和虚拟网卡的收发包函数信息。
进一步,还包括:
关闭过滤模块,用于在接收到用户触发的报文过滤功能关闭指令时,基于所述用户协议栈对接收到的报文进行处理。
实施例三:
本公开还能够提供一种计算机存储介质,其上存储有计算机程序,计算机程序被处理器执行时用于实现上述的报文处理的方法的步骤。
本公开的计算机存储介质可以采用半导体存储器、磁芯存储器、磁鼓存储器或磁盘存储器实现。
半导体存储器,主要用于计算机的半导体存储元件主要有Mos和双极型两种。Mos元件集成度高、工艺简单但速度较慢。双极型元件工艺复杂、功耗大、集成度低但速度快。NMos和CMos问世后,使Mos存储器在半导体存储器中开始占主要地位。NMos速度快,如英特尔公司的1K位静态随机存储器的存取时间为45ns。而CMos耗电省,4K位的CMos静态存储器存取时间为300ns。上述半导体存储器都是随机存取存储器(RAM),即在工作过程中可随机进行读出和写入新内容。而半导体只读存储器(ROM)在工作过程中可随机读出但不能写入,它用来存放已固化好的程序和数据。ROM又分为不可改写的熔断丝式只读存储器──PROM和可改写的只读存储器EPROM两种。
磁芯存储器,具有成本低,可靠性高的特点,且有20多年的实际使用经验。70年代中期以前广泛使用磁芯存储器作为主存储器。其存储容量可达10位以上,存取时间最快为300ns。国际上典型的磁芯存储器容量为4MS~8MB,存取周期为1.0~1.5μs。在半导体存储快速发展取代磁芯存储器作为主存储器的位置之后,磁芯存储器仍然可以作为大容量扩充存储器而得到应用。
磁鼓存储器,一种磁记录的外存储器。由于其信息存取速度快,工作稳定可靠,虽然其容量较小,正逐渐被磁盘存储器所取代,但仍被用作实时过程控制计算机和中、大型计算机的外存储器。为了适应小型和微型计算机的需要,出现了超小型磁鼓,其体积小、重量轻、可靠性高、使用方便。
磁盘存储器,一种磁记录的外存储器。它兼有磁鼓和磁带存储器的优点,即其存储容量较磁鼓容量大,而存取速度则较磁带存储器快,又可脱机贮存,因此在各种计算机系统中磁盘被广泛用作大容量的外存储器。磁盘一般分为硬磁盘和软磁盘存储器两大类。
硬磁盘存储器的品种很多。从结构上,分可换式和固定式两种。可换式磁盘盘片可调换,固定式磁盘盘片是固定的。可换式和固定式磁盘都有多片组合和单片结构两种,又都可分为固定磁头型和活动磁头型。固定磁头型磁盘的容量较小,记录密度低存取速度高,但造价高。活动磁头型磁盘记录密度高(可达1000~6250位/英寸),因而容量大,但存取速度相对固定磁头磁盘低。磁盘产品的存储容量可达几百兆字节,位密度为每英寸6 250位,道密度为每英寸475道。其中多片可换磁盘存储器由于盘组可以更换,具有很大的脱体容量,而且容量大,速度高,可存储大容量情报资料,在联机情报检索系统、数据库管理系统中得到广泛应用。
实施例四:
本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述的报文处理的方法的步骤。
图4为一个实施例中电子设备的内部结构示意图。如图4所示,该电子设备包括通过系统总线连接的处理器、存储介质、存储器和网络接口。其中,该计算机设备的存储介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种报文处理的方法。该电设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种报文处理的方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
该电子设备包括但不限于智能电话、计算机、平板电脑、可穿戴智能设备、人工智能设备、移动电源等。
所述处理器在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器是所述电子设备的控制核心(Control Unit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器内的程序或者模块(例如执行远端数据读写程序等),以及调用存储在所述存储器内的数据,以执行电子设备的各种功能和处理数据。
所述总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器以及至少一个处理器等之间的连接通信。
图4仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图4示出的结构并不构成对所述电子设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
例如,尽管未示出,所述电子设备还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
进一步地,所述电子设备还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该电子设备与其他电子设备之间建立通信连接。
可选地,该电子设备还可以包括用户接口,用户接口可以是显示器(Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备中处理的信息以及用于显示可视化的用户界面。
进一步地,所述计算机可用存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。本公开的范围由所附权利要求及其等价物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (10)
1.一种报文处理的方法,其特征在于,应用于网络设备,所述网络设备配置有虚拟网卡驱动,所述网络设备还包括用户态协议栈和内核协议栈,所述方法包括:
基于所述虚拟网卡驱动在系统内核中创建虚拟网卡,并将所述虚拟网卡信息发送给所述用户协议栈;
在接收到报文时,基于所述用户态协议栈对所述报文进行过滤处理;
若所述报文为控制报文,则所述用户协议栈基于所述虚拟网卡信息将所述控制报文通过所述虚拟网卡转发给所述内核协议栈进行处理;
若所述报文为业务报文,则所述用户协议栈对所述业务报文进行处理。
2.根据权利要求1所述的方法,其特征在于,基于所述虚拟网卡驱动在系统内核中创建虚拟网卡的步骤包括:
基于用户触发的虚拟网卡创建命令,在所述系统内核中创建设备文件;
基于所述用户态协议栈打开所述设备文件,并获取打开所述设备文件时返回的文件描述符,以及通过所述文件描述符向所述虚拟网卡驱动发送ioctl命令,以使得所述虚拟网卡驱动根据所述ioctl命令,调用对应的ioctl执行函数创建虚拟网卡。
3.根据权利要求1或2所述的方法,其特征在于,所述创建虚拟网卡的步骤包括:
构建虚拟网卡,分配虚拟网卡的收发包队列,定义虚拟网卡的接口管理函数和定义虚拟网卡的收发包函数。
4.根据权利要求1或2所述的方法,其特征在于,所述虚拟网卡信息包括:
虚拟网卡的收发包队列信息,虚拟网卡的接口管理函数信息和虚拟网卡的收发包函数信息。
5.根据权利要求1或2所述的方法,其特征在于,还包括:
在接收到用户触发的报文过滤功能关闭指令时,基于所述用户协议栈对接收到的报文进行处理。
6.一种报文处理的装置,其特征在于,应用于网络设备,所述网络设备配置有虚拟网卡驱动,所述网络设备还包括用户态协议栈和内核协议栈,所述装置包括:
虚拟网卡创建模块,用于基于所述虚拟网卡驱动在系统内核中创建虚拟网卡,并将所述虚拟网卡信息发送给所述用户协议栈;
过滤模块,用于在接收到报文时,基于所述用户态协议栈对所述报文进行过滤处理;
若所述报文为控制报文,则所述用户协议栈基于所述虚拟网卡信息将所述控制报文通过所述虚拟网卡转发给所述内核协议栈进行处理;
若所述报文为业务报文,则所述用户协议栈对所述业务报文进行处理。
7.根据权利要求6所述的装置,其特征在于,所述虚拟网卡创建模块具体包括:
设备文件创建模块,用于基于用户触发的虚拟网卡创建命令,在所述系统内核中创建设备文件;
处理模块,用于基于所述用户态协议栈打开所述设备文件,并获取打开所述设备文件时返回的文件描述符,以及通过所述文件描述符向所述虚拟网卡驱动发送ioctl命令,以使得所述虚拟网卡驱动根据所述ioctl命令,调用对应的ioctl执行函数创建虚拟网卡。
8.根据权利要求6或7所述的装置,其特征在于,还包括:
关闭过滤模块,用于在接收到用户触发的报文过滤功能关闭指令时,基于所述用户协议栈对接收到的报文进行处理。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1~5任一项中所述的报文处理的方法的步骤。
10.一种计算机存储介质,其上存储有计算机程序指令,其特征在于,所述程序指令被处理器执行时用于实现权利要求1~5任一项中所述的报文处理的方法对应的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011432741.9A CN112422453B (zh) | 2020-12-09 | 2020-12-09 | 一种报文处理的方法、装置、介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011432741.9A CN112422453B (zh) | 2020-12-09 | 2020-12-09 | 一种报文处理的方法、装置、介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112422453A true CN112422453A (zh) | 2021-02-26 |
CN112422453B CN112422453B (zh) | 2022-05-24 |
Family
ID=74775896
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011432741.9A Active CN112422453B (zh) | 2020-12-09 | 2020-12-09 | 一种报文处理的方法、装置、介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112422453B (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113242261A (zh) * | 2021-06-10 | 2021-08-10 | Oppo广东移动通信有限公司 | 共享数据网络的方法、装置、电子设备及存储介质 |
CN113726577A (zh) * | 2021-09-01 | 2021-11-30 | 网络通信与安全紫金山实验室 | 基于应用和用户态协议栈的网络管理方法及网络架构 |
CN114205848A (zh) * | 2021-12-08 | 2022-03-18 | 深圳技德智能科技研究院有限公司 | 虚拟wifi上网方法、装置、计算机设备和存储介质 |
CN114244560A (zh) * | 2021-11-10 | 2022-03-25 | 奇安信科技集团股份有限公司 | 流量处理方法及装置 |
CN114640515A (zh) * | 2022-03-09 | 2022-06-17 | 京东科技信息技术有限公司 | 基于流量阻断的数据处理方法、装置及相关设备 |
CN114697391A (zh) * | 2022-04-08 | 2022-07-01 | 北京百度网讯科技有限公司 | 数据处理方法、装置、设备以及存储介质 |
CN115022167A (zh) * | 2022-07-01 | 2022-09-06 | 天翼数字生活科技有限公司 | 一种用于家庭网关业务流控的方法及系统 |
CN115242711A (zh) * | 2022-07-14 | 2022-10-25 | 天翼云科技有限公司 | 一种报文传输方法及装置 |
CN115334156A (zh) * | 2021-04-26 | 2022-11-11 | 深信服科技股份有限公司 | 报文的处理方法、装置、设备、存储介质 |
WO2022251998A1 (zh) * | 2021-05-31 | 2022-12-08 | 华为技术有限公司 | 支持多协议栈的通信方法及系统 |
CN115460024A (zh) * | 2022-09-02 | 2022-12-09 | 鹏城实验室 | 网卡驱动优化方法、装置、设备及存储介质 |
CN115473811A (zh) * | 2022-09-21 | 2022-12-13 | 西安超越申泰信息科技有限公司 | 一种网络性能优化方法、装置、设备及介质 |
CN116599917A (zh) * | 2023-05-31 | 2023-08-15 | 中科驭数(北京)科技有限公司 | 网口确定方法、装置、设备及存储介质 |
CN117041379A (zh) * | 2023-07-10 | 2023-11-10 | 中科驭数(北京)科技有限公司 | 同时监听用户态协议栈和内核态协议栈新建连接的方法及装置 |
CN117424739A (zh) * | 2023-10-31 | 2024-01-19 | 中科驭数(北京)科技有限公司 | 基于dpu的报文转发方法和系统、用户态协议栈和ip核 |
WO2024104095A1 (zh) * | 2022-11-18 | 2024-05-23 | 华为技术有限公司 | 一种数据传输方法、装置及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110535813A (zh) * | 2018-05-25 | 2019-12-03 | 网宿科技股份有限公司 | 内核态协议栈与用户态协议栈并存处理方法和装置 |
CN110602154A (zh) * | 2018-06-13 | 2019-12-20 | 网宿科技股份有限公司 | Web服务器及其处理数据报文的方法 |
CN111182063A (zh) * | 2019-12-30 | 2020-05-19 | 奇安信科技集团股份有限公司 | 应用于电子设备的数据处理方法、电子设备及介质 |
WO2020113817A1 (zh) * | 2018-12-07 | 2020-06-11 | 网宿科技股份有限公司 | 一种基于用户态协议栈的网络隔离方法和装置 |
-
2020
- 2020-12-09 CN CN202011432741.9A patent/CN112422453B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110535813A (zh) * | 2018-05-25 | 2019-12-03 | 网宿科技股份有限公司 | 内核态协议栈与用户态协议栈并存处理方法和装置 |
CN110602154A (zh) * | 2018-06-13 | 2019-12-20 | 网宿科技股份有限公司 | Web服务器及其处理数据报文的方法 |
WO2020113817A1 (zh) * | 2018-12-07 | 2020-06-11 | 网宿科技股份有限公司 | 一种基于用户态协议栈的网络隔离方法和装置 |
CN111182063A (zh) * | 2019-12-30 | 2020-05-19 | 奇安信科技集团股份有限公司 | 应用于电子设备的数据处理方法、电子设备及介质 |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115334156A (zh) * | 2021-04-26 | 2022-11-11 | 深信服科技股份有限公司 | 报文的处理方法、装置、设备、存储介质 |
WO2022251998A1 (zh) * | 2021-05-31 | 2022-12-08 | 华为技术有限公司 | 支持多协议栈的通信方法及系统 |
CN113242261A (zh) * | 2021-06-10 | 2021-08-10 | Oppo广东移动通信有限公司 | 共享数据网络的方法、装置、电子设备及存储介质 |
CN113242261B (zh) * | 2021-06-10 | 2023-04-07 | Oppo广东移动通信有限公司 | 共享数据网络的方法、装置、电子设备及存储介质 |
CN113726577A (zh) * | 2021-09-01 | 2021-11-30 | 网络通信与安全紫金山实验室 | 基于应用和用户态协议栈的网络管理方法及网络架构 |
CN113726577B (zh) * | 2021-09-01 | 2023-10-24 | 网络通信与安全紫金山实验室 | 基于应用和用户态协议栈的网络管理方法及网络架构 |
CN114244560A (zh) * | 2021-11-10 | 2022-03-25 | 奇安信科技集团股份有限公司 | 流量处理方法及装置 |
CN114244560B (zh) * | 2021-11-10 | 2024-04-16 | 奇安信科技集团股份有限公司 | 流量处理方法及装置,电子设备,存储介质 |
CN114205848A (zh) * | 2021-12-08 | 2022-03-18 | 深圳技德智能科技研究院有限公司 | 虚拟wifi上网方法、装置、计算机设备和存储介质 |
CN114205848B (zh) * | 2021-12-08 | 2024-01-09 | 深圳技德智能科技研究院有限公司 | 虚拟wifi上网方法、装置、计算机设备和存储介质 |
CN114640515A (zh) * | 2022-03-09 | 2022-06-17 | 京东科技信息技术有限公司 | 基于流量阻断的数据处理方法、装置及相关设备 |
CN114697391A (zh) * | 2022-04-08 | 2022-07-01 | 北京百度网讯科技有限公司 | 数据处理方法、装置、设备以及存储介质 |
CN114697391B (zh) * | 2022-04-08 | 2023-08-18 | 北京百度网讯科技有限公司 | 数据处理方法、装置、设备以及存储介质 |
CN115022167A (zh) * | 2022-07-01 | 2022-09-06 | 天翼数字生活科技有限公司 | 一种用于家庭网关业务流控的方法及系统 |
CN115022167B (zh) * | 2022-07-01 | 2024-03-01 | 天翼数字生活科技有限公司 | 一种用于家庭网关业务流控的方法及系统 |
CN115242711A (zh) * | 2022-07-14 | 2022-10-25 | 天翼云科技有限公司 | 一种报文传输方法及装置 |
CN115460024A (zh) * | 2022-09-02 | 2022-12-09 | 鹏城实验室 | 网卡驱动优化方法、装置、设备及存储介质 |
CN115460024B (zh) * | 2022-09-02 | 2024-05-28 | 鹏城实验室 | 网卡驱动优化方法、装置、设备及存储介质 |
CN115473811A (zh) * | 2022-09-21 | 2022-12-13 | 西安超越申泰信息科技有限公司 | 一种网络性能优化方法、装置、设备及介质 |
WO2024104095A1 (zh) * | 2022-11-18 | 2024-05-23 | 华为技术有限公司 | 一种数据传输方法、装置及系统 |
CN116599917A (zh) * | 2023-05-31 | 2023-08-15 | 中科驭数(北京)科技有限公司 | 网口确定方法、装置、设备及存储介质 |
CN116599917B (zh) * | 2023-05-31 | 2024-03-01 | 中科驭数(北京)科技有限公司 | 网口确定方法、装置、设备及存储介质 |
CN117041379A (zh) * | 2023-07-10 | 2023-11-10 | 中科驭数(北京)科技有限公司 | 同时监听用户态协议栈和内核态协议栈新建连接的方法及装置 |
CN117041379B (zh) * | 2023-07-10 | 2024-04-19 | 中科驭数(北京)科技有限公司 | 同时监听用户态协议栈和内核态协议栈新建连接的方法及装置 |
CN117424739A (zh) * | 2023-10-31 | 2024-01-19 | 中科驭数(北京)科技有限公司 | 基于dpu的报文转发方法和系统、用户态协议栈和ip核 |
CN117424739B (zh) * | 2023-10-31 | 2024-10-18 | 中科驭数(北京)科技有限公司 | 基于dpu的报文转发方法和系统、用户态协议栈和ip核 |
Also Published As
Publication number | Publication date |
---|---|
CN112422453B (zh) | 2022-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112422453B (zh) | 一种报文处理的方法、装置、介质及设备 | |
US10860511B1 (en) | Integrated network-attachable controller that interconnects a solid-state drive with a remote server computer | |
KR101159448B1 (ko) | 논리적 파티션들 사이의 네트워크 어댑트 리소스 할당 | |
US8990801B2 (en) | Server switch integration in a virtualized system | |
TW201939305A (zh) | 主機系統及其方法和加速模組 | |
US7694310B2 (en) | Method for implementing MPI-2 one sided communication | |
CN102567109A (zh) | 中断分配方案 | |
CN106325758B (zh) | 一种队列存储空间管理方法及装置 | |
CN107678835A (zh) | 一种数据传输方法及系统 | |
CN111858228B (zh) | 用于存储装置中的加速内核的状态监测的方法及系统 | |
CN114662136B (zh) | 一种基于pcie通道的多算法ip核的高速加解密系统及方法 | |
CN114546913B (zh) | 一种基于pcie接口的多主机之间数据高速交互的方法和装置 | |
US7809068B2 (en) | Integrated circuit capable of independently operating a plurality of communication channels | |
WO2022271239A1 (en) | Queue scaling based, at least, in part, on processing load | |
WO2022032990A1 (zh) | 一种命令信息传输方法、系统、装置及可读存储介质 | |
CN115878301A (zh) | 一种数据库网络负载性能的加速框架、加速方法及设备 | |
CN102843435A (zh) | 一种在集群系统中存储介质的访问、响应方法和系统 | |
CN112231107B (zh) | 防火墙的报文限速系统、方法、设备及介质 | |
CN109062857A (zh) | 一种能高速实现多处理器间通信的新型消息控制器及其通信方法 | |
CN105893036A (zh) | 一种嵌入式系统的兼容式加速器扩展方法 | |
CN103678244B (zh) | 一种不使用应用处理器的智能设备 | |
US20220321434A1 (en) | Method and apparatus to store and process telemetry data in a network device in a data center | |
CN109933435A (zh) | 控制方法、装置及计算机设备 | |
CN108415779A (zh) | 用于通过主机结构接口的队列管理的技术 | |
CN112751786A (zh) | 基于可编程交换机的slb加速系统、方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |