CN110380992B - 报文处理方法、装置及网络流量采集设备 - Google Patents

报文处理方法、装置及网络流量采集设备 Download PDF

Info

Publication number
CN110380992B
CN110380992B CN201910674365.5A CN201910674365A CN110380992B CN 110380992 B CN110380992 B CN 110380992B CN 201910674365 A CN201910674365 A CN 201910674365A CN 110380992 B CN110380992 B CN 110380992B
Authority
CN
China
Prior art keywords
network
message
virtual
network message
buffer queue
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.)
Active
Application number
CN201910674365.5A
Other languages
English (en)
Other versions
CN110380992A (zh
Inventor
陈闯
黄晶晶
崔保勋
潘飚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Zhongfu Information Technology Co Ltd
Original Assignee
Nanjing Zhongfu Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing Zhongfu Information Technology Co Ltd filed Critical Nanjing Zhongfu Information Technology Co Ltd
Priority to CN201910674365.5A priority Critical patent/CN110380992B/zh
Publication of CN110380992A publication Critical patent/CN110380992A/zh
Application granted granted Critical
Publication of CN110380992B publication Critical patent/CN110380992B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling

Abstract

本发明提供了一种报文处理方法、装置及网络流量采集设备,涉及数据处理技术领域,该方法包括:获取待处理的网络报文;将该网络报文发送至预先创建的至少两个缓冲队列;其中,缓冲队列与预先创建的虚拟网络设备一一对应,不同的虚拟网络设备对应不同的报文收发模式;控制各虚拟网络设备按照对应的报文收发模式从对应的缓冲队列中读取并转发该网络报文。该方法通过将待处理的网络报文发送至至少两个缓冲队列,控制与缓冲队列一一对应的虚拟网络设备从对应的缓冲队列中读取并转发该网络报文,其中不同的虚拟网络设备采用的报文收发模式是不同的,实现了同一网络报文对多种报文收发模式的兼容,从而提升了应对复杂网络环境风险的能力。

Description

报文处理方法、装置及网络流量采集设备
技术领域
本发明涉及数据处理技术领域,尤其是涉及一种报文处理方法、装置及网络流量采集设备。
背景技术
随着网络用户群不断的增长以及应用业务的多元化,网络流量持续增长,网络环境也越来越复杂。为了实现对网络异常的监测,通常需要对特定网络节点的网络流量进行数据采集,并以报文的形式转发给用于分析处理报文的设备,以便于后续的异常分析处理。网络流量的持续增长,给诸如网络流量采集设备的报文转发性能提出了新的挑战。
随着科技的发展,报文的收发处理模式逐渐由基于Linux系统中的tap设备的tap模式(也即传统模式)向DPDK(Data Plane Development Kit,数据平面开发套件)模式过渡。其中,tap设备是操作系统内核中的虚拟网络设备,也被称为虚拟网卡;DPDK是用于快速数据包处理的函数库与驱动集合,可以极大提高数据处理性能和吞吐量。tap模式下,tap设备从传统网络设备(如网桥)接收报文并进行相应的转发处理;DPDK模式下,DPDK虚拟设备从网卡接收报文并进行相应的转发处理。
由于tap模式和DPDK模式二者的应用程序是两套不同的、独立的程序,两种报文收发模式下对报文的收发操作是不一样的,从网卡接收的报文无法通过tap模式处理,因此存在两种报文收发模式的兼容问题。并且随着网络环境的复杂化,基于tap模式或DPDK模式的报文收发方法应对复杂网络环境风险的能力较差。
发明内容
本发明的目的在于提供一种报文处理方法、装置及网络流量采集设备,以实现多种报文收发模式的兼容,提升应对复杂网络环境风险的能力。
本发明提供了一种报文处理方法,包括:获取待处理的网络报文;将所述网络报文发送至预先创建的至少两个缓冲队列;其中,所述缓冲队列与预先创建的虚拟网络设备一一对应,不同的所述虚拟网络设备对应不同的报文收发模式;控制各所述虚拟网络设备按照对应的报文收发模式从对应的所述缓冲队列中读取并转发所述网络报文。
进一步地,所述获取待处理的网络报文包括:接收预先绑定的网卡发送的网络报文,并将接收到的所述网络报文确定为待处理的网络报文。
进一步地,所述至少两个缓冲队列包括第一环形缓冲队列和第二环形缓冲队列,所述虚拟网络设备包括与DPDK模式对应的DPDK虚拟设备和与tap模式对应的tap设备,所述第一环形缓冲队列与所述DPDK虚拟设备对应,所述第二环形缓冲队列与所述tap设备对应。
进一步地,在控制各所述虚拟网络设备按照对应的报文收发模式从对应的所述缓冲队列中读取并转发所述网络报文之前,所述方法还包括:将所述网络报文存储在初始化后的大页内存中,得到所述网络报文的存储地址;将所述网络报文的引用计数加一,以便在所述DPDK虚拟设备和所述tap设备均从对应的所述环形缓冲队列中读取到所述网络报文后,从所述大页内存中释放所述网络报文。
进一步地,所述将所述网络报文发送至预先创建的至少两个缓冲队列,包括:将所述网络报文的存储地址分别发送至所述第一环形缓冲队列和所述第二环形缓冲队列。
进一步地,所述控制各所述虚拟网络设备按照对应的报文收发模式从对应的所述缓冲队列中读取并转发所述网络报文,包括:触发所述DPDK虚拟设备和所述tap设备工作,使所述DPDK虚拟设备从所述第一环形缓冲队列获取所述网络报文的存储地址,基于所述网络报文的存储地址按照所述DPDK模式读取并转发所述网络报文,以及使所述tap设备从所述第二环形缓冲队列获取所述网络报文的存储地址,基于所述网络报文的存储地址按照所述tap模式读取并转发所述网络报文。
本发明提供了一种报文处理装置,包括:获取模块,用于获取待处理的网络报文;发送模块,用于将所述网络报文发送至预先创建的至少两个缓冲队列;其中,所述缓冲队列与预先创建的虚拟网络设备一一对应,不同的所述虚拟网络设备对应不同的报文收发模式;控制模块,用于控制各所述虚拟网络设备按照对应的报文收发模式从对应的所述缓冲队列中读取并转发所述网络报文。
进一步地,所述至少两个缓冲队列包括第一环形缓冲队列和第二环形缓冲队列,所述虚拟网络设备包括与DPDK模式对应的DPDK虚拟设备和与tap模式对应的tap设备,所述第一环形缓冲队列与所述DPDK虚拟设备对应,所述第二环形缓冲队列与所述tap设备对应;
所述装置还包括:存储模块,用于将所述网络报文存储在初始化后的大页内存中,得到所述网络报文的存储地址;修改模块,用于将所述网络报文的引用计数加一,以便在所述DPDK虚拟设备和所述tap设备均从对应的所述环形缓冲队列中读取到所述网络报文后,从所述大页内存中释放所述网络报文。
本发明提供了一种网络流量采集设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的报文处理方法。
本发明提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述的报文处理方法。
本发明提供的报文处理方法、装置及网络流量采集设备中,该方法包括:获取待处理的网络报文;将该网络报文发送至预先创建的至少两个缓冲队列;其中,缓冲队列与预先创建的虚拟网络设备一一对应,不同的虚拟网络设备对应不同的报文收发模式;控制各虚拟网络设备按照对应的报文收发模式从对应的缓冲队列中读取并转发该网络报文。该方法通过将待处理的网络报文发送至至少两个缓冲队列,控制与缓冲队列一一对应的虚拟网络设备从对应的缓冲队列中读取并转发该网络报文,其中不同的虚拟网络设备采用的报文收发模式是不同的,实现了同一网络报文对多种报文收发模式的兼容,从而提升了应对复杂网络环境风险的能力。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种报文处理方法实现环境的框架结构示意图;
图2为本发明实施例提供的一种报文处理方法的流程示意图;
图3为本发明实施例提供的另一种报文处理方法的流程示意图;
图4为本发明实施例提供的一种报文处理装置的结构示意图;
图5为本发明实施例提供的另一种报文处理装置的结构示意图;
图6为本发明实施例提供的一种网络流量采集设备的结构示意图。
具体实施方式
下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前无法实现不同报文收发模式的兼容,现有的报文收发方法应对复杂网络环境风险的能力较差,基于此,本发明实施例提供的一种报文处理方法、装置及网络流量采集设备,可以实现多种报文收发模式的兼容,提升应对复杂网络环境风险的能力。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种报文处理方法进行详细介绍。
参见图1所示的一种报文处理方法实现环境的框架结构示意图,在本发明提供的一种报文处理方法的一个实施例中,其实现环境包括:网卡(可以为一个,也可以为多个,图1中仅以多个网卡为例)和与各网卡连接的网络流量采集设备,网络流量采集设备包括DPDK虚拟设备和tap设备,DPDK虚拟设备对应DPDK模式,tap设备对应tap模式;DPDK虚拟设备和tap设备均为应用程序。本发明在网络流量采集设备中增加了一个应用程序(即图1中的兼容处理器),由兼容处理器将各网卡的网络报文发送到DPDK虚拟设备和tap设备,使DPDK虚拟设备和tap设备能够同时处理一份网络报文,也即实现了通过tap模式处理从网卡接收的网络报文。需要说明的是,本实施例中,两个虚拟网络设备分别为DPDK虚拟设备和tap设备,对应的两种报文收发模式分别为DPDK模式和tap模式,但本发明的保护范围不限于此,根据需要,可以采用其他类型的虚拟网络设备以及对应的其他报文收发模式。
图2为本发明实施例提供的一种报文处理方法的流程示意图,该方法有图1中的兼容处理器执行。如图2所示,该方法包括如下步骤:
步骤S202,获取待处理的网络报文。
如果目的是要实现通过tap模式处理从网卡接收的网络报文,则兼容处理器可以接收预先绑定的网卡发送的网络报文,并将接收到的网络报文确定为待处理的网络报文。当然,如果目的是要实现通过DPDK模式处理从网桥接收的网络报文,则兼容处理器可以接收预先绑定的网桥发送的网络报文,并将接收到的网络报文确定为待处理的网络报文。
步骤S204,将上述网络报文发送至预先创建的至少两个缓冲队列;其中,缓冲队列与预先创建的虚拟网络设备一一对应,不同的虚拟网络设备对应不同的报文收发模式。
在本实施例中,至少两个缓冲队列包括第一环形缓冲队列和第二环形缓冲队列,虚拟网络设备包括与DPDK模式对应的DPDK虚拟设备和与tap模式对应的tap设备,第一环形缓冲队列与DPDK虚拟设备对应,第二环形缓冲队列与tap设备对应。基于此,兼容处理器可以将上述网络报文分别发送至第一环形缓冲队列和第二环形缓冲队列。
需要说明的是,本实施例中采用的是环形缓冲队列,但本发明的保护范围不限于此,根据需要,在其他实施例中可以采用其他类型的缓冲队列。
步骤S206,控制各虚拟网络设备按照对应的报文收发模式从对应的缓冲队列中读取并转发该网络报文。
在将上述网络报文发送至各缓冲队列之后,兼容处理器可以触发各虚拟网络设备工作。在本实施例中,兼容处理器通过触发DPDK虚拟设备和tap设备工作,使DPDK虚拟设备按照DPDK模式从第一环形缓冲队列读取并转发该网络报文,以及使tap设备按照tap模式从第二环形缓冲队列读取并转发该网络报文。这样可以将网卡上接收到的网络报文同时为DPDK虚拟设备和tap设备使用,从而提升应对复杂网络环境的能力。
本发明实施例中,获取待处理的网络报文;将该网络报文发送至预先创建的至少两个缓冲队列;其中,缓冲队列与预先创建的虚拟网络设备一一对应,不同的虚拟网络设备对应不同的报文收发模式;控制各虚拟网络设备按照对应的报文收发模式从对应的缓冲队列中读取并转发该网络报文。该报文处理方法通过将待处理的网络报文发送至至少两个缓冲队列,控制与缓冲队列一一对应的虚拟网络设备从对应的缓冲队列中读取并转发该网络报文,其中不同的虚拟网络设备采用的报文收发模式是不同的,实现了同一网络报文对多种报文收发模式的兼容,从而提升了应对复杂网络环境风险的能力。
为了便于理解,下面以兼容DPDK模式和tap模式为例,对兼容处理器在执行上述报文处理方法时的实际运行情况进行详细介绍。
在兼容处理器执行上述方法之前,需要先设置大页内存(huge page)、编译DPDK库以及绑定网卡。其中,大内存页有助于Linux系统进行虚拟内存管理,在虚拟内存管理中,内核维护一个将虚拟内存地址映射到物理地址的表,对于每个页面操作,内核都需要加载相关的映射;大内存页可以大大减少由内核加载的映射表的数量,提高内核级别的性能,最终有利于应用程序的性能。当然,本发明的保护范围不限于使用大页内存。而编译DPDK库以及绑定网卡是DPDK模式的通用步骤,这里不再赘述。
具体地,网络报文可以采用数据包形式。设置大页内存是为了在大页内存中存放图1中各网卡的属性信息(如吞吐量等)、兼容处理器接收的数据包、环形缓冲队列的属性信息以及tap设备中tap端口等信息。
参见图3所示的另一种报文处理方法的流程示意图,该方法包括如下步骤:
步骤S302,从网卡读取待处理的网络报文。
在执行步骤S302之前,兼容处理器需要先初始化大页内存,创建内存池,设置网卡队列,然后启动网卡,使网卡开始接收数据包(即上述的待处理的网络报文)。其中,初始化大页内存是为后续的创建内存池提供存放地址空间;可以通过以下过程来初始化大页内存:根据各网卡的吞吐量等设置各网卡使用的内存大小,生成相应的配置文件并存储在大页内存中。设置网卡队列是为了配置网卡使用队列的个数和长度,网卡队列通常包括网卡接收队列和网卡发送队列,本实施例中仅涉及网卡接收队列,兼容处理器通过网卡接收队列从网卡获取数据包。
在执行步骤S302之前,兼容处理器还需要创建ringA队列(即上述的第一环形缓冲队列)和ringB队列(即上述的第二环形缓冲队列),将ringA队列与DPDK虚拟设备绑定,ringB队列与tap设备绑定。兼容处理器通过ring队列(ringA队列和ringB队列)实现DPDK虚拟设备和tap设备的解耦合。
基于上述内容,执行步骤S302的过程可以为:兼容处理器从网卡接收队列读取网卡接收的数据包。
步骤S304,将上述网络报文存储在初始化后的大页内存中,得到网络报文的存储地址。
步骤S306,将上述网络报文的引用计数加一。
待处理的网络报文通常引用计数为1,被处理后引用计数会被减一,引用计数为0时会对该网络报文进行释放。基于此,将该网络报文的引用计数加一,以便在DPDK虚拟设备和tap设备均从对应的环形缓冲队列中读取到网络报文后,从大页内存中释放该网络报文。通过增加引用计数的方式可以减少复制操作,从而提高运行速度,提升整体性能。需要说明的是,如果是n个虚拟网络设备,则将上述网络报文的引用计数加(n-1)。
步骤S308,将上述网络报文的存储地址分别发送至ringA队列和ringB队列。
步骤S310,触发DPDK虚拟设备和tap设备工作,使DPDK虚拟设备从ringA队列获取网络报文的存储地址,基于该网络报文的存储地址按照DPDK模式读取并转发该网络报文,以及使tap设备从ringB队列获取网络报文的存储地址,基于该网络报文的存储地址按照tap模式读取并转发该网络报文。
在一种可能的实现方式中,对于DPDK虚拟设备:首先,DPDK虚拟设备通过初始化大页内存,获取兼容处理器在启动网卡前所创建的大页内存的虚拟地址,并使用初始化大页内存生成的内存空间,以保证从网卡接收的数据包的地址空间相同。然后通过该大页内存的虚拟地址查找ringA队列的虚拟地址,根据ringA队列的虚拟地址获取网络报文的存储地址(虚拟地址)。最后根据网络报文的存储地址来读取和处理该网络报文。
对于tap设备:兼容处理器需要先查找tap端口,如果tap端口不存在,则创建tap端口;如果tap端口存在,则在Linux网络设备中可以查找到名称为“dtap0”(仅为示例)的网络设备(即tap设备),通过“dtap0”与其他Linux系统的网桥端口通信。
tap设备首先通过初始化大页内存,获取兼容处理器在启动网卡前所创建的大页内存的虚拟地址,以保证从网卡接收的数据包的地址空间相同。然后通过该大页内存的虚拟地址查找ringB队列的虚拟地址,根据ringB队列的虚拟地址获取网络报文的存储地址(虚拟地址)。最后根据网络报文的存储地址将该网络报文发送到该tap设备的tx端口(发送端口),也即将该网络报文写入tap设备的tap文件中,此时tap设备的发送端将会有该网络报文,其他Linux网络端口就可以从tap设备的发送端获取网络报文,从而实现了Linux系统中的传统设备(tap设备)与DPDK虚拟设备兼容的情景。
通过上面具体步骤可以得知,兼容处理器通过创建ring队列将DPDK虚拟设备和tap设备连接起来,再将接收的网络报文的引用计数加一,实现两个虚拟网络设备可以同时使用一份网络报文,处理网络报文与发送到tap端口可以并行处理,避免了从网卡上接收的网络报文不可以同时实现网络报文兼容DPDK模式与tap模式的情况,提升了应对复杂网络环境的能力。
本发明实施例还提供了一种报文处理装置,该报文处理装置主要用于执行本发明实施例上述内容所提供的报文处理方法,以下对本发明实施例提供的报文处理装置做具体介绍。
参见图4所示的一种报文处理装置的结构示意图,该报文处理装置包括:
获取模块42,用于获取待处理的网络报文;
发送模块44,用于将网络报文发送至预先创建的至少两个缓冲队列;其中,缓冲队列与预先创建的虚拟网络设备一一对应,不同的虚拟网络设备对应不同的报文收发模式;
控制模块46,用于控制各虚拟网络设备按照对应的报文收发模式从对应的缓冲队列中读取并转发网络报文。
可选地,上述获取模块42具体用于:接收预先绑定的网卡发送的网络报文,并将接收到的网络报文确定为待处理的网络报文。
可选地,上述至少两个缓冲队列包括第一环形缓冲队列和第二环形缓冲队列,虚拟网络设备包括与DPDK模式对应的DPDK虚拟设备和与tap模式对应的tap设备,第一环形缓冲队列与DPDK虚拟设备对应,第二环形缓冲队列与tap设备对应。
进一步地,参见图5所示的另一种报文处理装置的结构示意图,在图4的基础上,上述报文处理装置还包括:
存储模块52,用于将网络报文存储在初始化后的大页内存中,得到该网络报文的存储地址;
修改模块54,用于将网络报文的引用计数加一,以便在DPDK虚拟设备和tap设备均从对应的环形缓冲队列中读取到网络报文后,从大页内存中释放该网络报文。
可选地,上述发送模块44具体用于:将上述网络报文的存储地址分别发送至第一环形缓冲队列和第二环形缓冲队列。
可选地,上述控制模块46具体用于:触发DPDK虚拟设备和tap设备工作,使DPDK虚拟设备从第一环形缓冲队列获取网络报文的存储地址,基于网络报文的存储地址按照DPDK模式读取并转发该网络报文,以及使tap设备从第二环形缓冲队列获取网络报文的存储地址,基于网络报文的存储地址按照tap模式读取并转发该网络报文。
本发明实施例中,获取模块42获取待处理的网络报文;发送模块44将该网络报文发送至预先创建的至少两个缓冲队列;其中,缓冲队列与预先创建的虚拟网络设备一一对应,不同的虚拟网络设备对应不同的报文收发模式;控制模块46控制各虚拟网络设备按照对应的报文收发模式从对应的缓冲队列中读取并转发该网络报文。该报文处理装置通过将待处理的网络报文发送至至少两个缓冲队列,控制与缓冲队列一一对应的虚拟网络设备从对应的缓冲队列中读取并转发该网络报文,其中不同的虚拟网络设备采用的报文收发模式是不同的,实现了同一网络报文对多种报文收发模式的兼容,从而提升了应对复杂网络环境风险的能力。
本实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
参见图6,本发明实施例还提供一种网络流量采集设备100,包括:处理器60,存储器61,总线62和通信接口63,所述处理器60、通信接口63和存储器61通过总线62连接;处理器60用于执行存储器61中存储的可执行模块,例如计算机程序。
其中,存储器61可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口63(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线62可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器61用于存储程序,所述处理器60在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器60中,或者由处理器60实现。
处理器60可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器60中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器60可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器61,处理器60读取存储器61中的信息,结合其硬件完成上述方法的步骤。
本发明实施例提供的报文处理装置及网络流量采集设备,与上述实施例提供的报文处理方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
在这里示出和描述的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制,因此,示例性实施例的其他示例可以具有不同的值。
附图中的流程图和框图显示了根据本发明的多个实施例的方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本发明实施例所提供的进行报文处理方法的计算机程序产品,包括计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行前面方法实施例中所述的方法。具体实现可参见方法实施例,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置和设备,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种报文处理方法,其特征在于,包括:
获取待处理的网络报文;
将所述网络报文发送至预先创建的至少两个缓冲队列;其中,所述缓冲队列与预先创建的虚拟网络设备一一对应,不同的所述虚拟网络设备对应不同的报文收发模式;所述虚拟网络设备包括与DPDK模式对应的DPDK虚拟设备和与tap模式对应的tap设备;
控制各所述虚拟网络设备按照对应的报文收发模式从对应的所述缓冲队列中读取并转发所述网络报文。
2.根据权利要求1所述的方法,其特征在于,所述获取待处理的网络报文包括:
接收预先绑定的网卡发送的网络报文,并将接收到的所述网络报文确定为待处理的网络报文。
3.根据权利要求1所述的方法,其特征在于,所述至少两个缓冲队列包括第一环形缓冲队列和第二环形缓冲队列,所述第一环形缓冲队列与所述DPDK虚拟设备对应,所述第二环形缓冲队列与所述tap设备对应。
4.根据权利要求3所述的方法,其特征在于,在控制各所述虚拟网络设备按照对应的报文收发模式从对应的所述缓冲队列中读取并转发所述网络报文之前,所述方法还包括:
将所述网络报文存储在初始化后的大页内存中,得到所述网络报文的存储地址;
将所述网络报文的引用计数加一,以便在所述DPDK虚拟设备和所述tap设备均从对应的所述环形缓冲队列中读取到所述网络报文后,从所述大页内存中释放所述网络报文。
5.根据权利要求4所述的方法,其特征在于,所述将所述网络报文发送至预先创建的至少两个缓冲队列,包括:
将所述网络报文的存储地址分别发送至所述第一环形缓冲队列和所述第二环形缓冲队列。
6.根据权利要求5所述的方法,其特征在于,所述控制各所述虚拟网络设备按照对应的报文收发模式从对应的所述缓冲队列中读取并转发所述网络报文,包括:
触发所述DPDK虚拟设备和所述tap设备工作,使所述DPDK虚拟设备从所述第一环形缓冲队列获取所述网络报文的存储地址,基于所述网络报文的存储地址按照所述DPDK模式读取并转发所述网络报文,以及使所述tap设备从所述第二环形缓冲队列获取所述网络报文的存储地址,基于所述网络报文的存储地址按照所述tap模式读取并转发所述网络报文。
7.一种报文处理装置,其特征在于,包括:
获取模块,用于获取待处理的网络报文;
发送模块,用于将所述网络报文发送至预先创建的至少两个缓冲队列;其中,所述缓冲队列与预先创建的虚拟网络设备一一对应,不同的所述虚拟网络设备对应不同的报文收发模式;所述虚拟网络设备包括与DPDK模式对应的DPDK虚拟设备和与tap模式对应的tap设备;
控制模块,用于控制各所述虚拟网络设备按照对应的报文收发模式从对应的所述缓冲队列中读取并转发所述网络报文。
8.根据权利要求7所述的装置,其特征在于,所述至少两个缓冲队列包括第一环形缓冲队列和第二环形缓冲队列,所述第一环形缓冲队列与所述DPDK虚拟设备对应,所述第二环形缓冲队列与所述tap设备对应;
所述装置还包括:
存储模块,用于将所述网络报文存储在初始化后的大页内存中,得到所述网络报文的存储地址;
修改模块,用于将所述网络报文的引用计数加一,以便在所述DPDK虚拟设备和所述tap设备均从对应的所述环形缓冲队列中读取到所述网络报文后,从所述大页内存中释放所述网络报文。
9.一种网络流量采集设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-6中任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行权利要求1-6中任一项所述的方法。
CN201910674365.5A 2019-07-24 2019-07-24 报文处理方法、装置及网络流量采集设备 Active CN110380992B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910674365.5A CN110380992B (zh) 2019-07-24 2019-07-24 报文处理方法、装置及网络流量采集设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910674365.5A CN110380992B (zh) 2019-07-24 2019-07-24 报文处理方法、装置及网络流量采集设备

Publications (2)

Publication Number Publication Date
CN110380992A CN110380992A (zh) 2019-10-25
CN110380992B true CN110380992B (zh) 2021-01-29

Family

ID=68255755

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910674365.5A Active CN110380992B (zh) 2019-07-24 2019-07-24 报文处理方法、装置及网络流量采集设备

Country Status (1)

Country Link
CN (1) CN110380992B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111431757B (zh) * 2020-02-18 2023-03-24 平安科技(深圳)有限公司 虚拟网络的流量采集方法及装置
CN112003797B (zh) * 2020-07-16 2022-06-21 苏州浪潮智能科技有限公司 一种虚拟化dpdk网络性能提高方法、系统、终端及存储介质
CN111988244B (zh) * 2020-08-20 2022-10-18 珠海市一知安全科技有限公司 网络数据调度分配方法、计算机装置及计算机可读存储介质
CN112925581A (zh) * 2021-02-22 2021-06-08 百果园技术(新加坡)有限公司 Dpdk容器的启动方法、装置及电子设备
CN113518074B (zh) * 2021-05-11 2023-04-18 北京物芯科技有限责任公司 一种数据报文转发方法、装置、设备及存储介质
CN113382014B (zh) * 2021-06-23 2022-12-06 中移(杭州)信息技术有限公司 协商处理方法、装置、终端设备以及存储介质
CN113535433B (zh) * 2021-07-21 2023-08-11 广州市品高软件股份有限公司 基于Linux系统的控制转发分离方法、装置、设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7411911B2 (en) * 2005-04-08 2008-08-12 Cisco Technology, Inc. Network availability status detection device and method
CN107294865A (zh) * 2017-07-31 2017-10-24 华中科技大学 一种软件交换机的负载均衡方法及软件交换机
CN108512780A (zh) * 2017-02-28 2018-09-07 华为技术有限公司 定时器实现方法及相关装置
CN108628684A (zh) * 2017-03-20 2018-10-09 华为技术有限公司 一种基于dpdk的报文处理方法及计算机设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7411911B2 (en) * 2005-04-08 2008-08-12 Cisco Technology, Inc. Network availability status detection device and method
CN108512780A (zh) * 2017-02-28 2018-09-07 华为技术有限公司 定时器实现方法及相关装置
CN108628684A (zh) * 2017-03-20 2018-10-09 华为技术有限公司 一种基于dpdk的报文处理方法及计算机设备
CN107294865A (zh) * 2017-07-31 2017-10-24 华中科技大学 一种软件交换机的负载均衡方法及软件交换机

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
OpenFlow-based Virtual TAP using Open vSwitch and DPDK;Seyeon Jeong等;《IEEE》;20181231;全文 *

Also Published As

Publication number Publication date
CN110380992A (zh) 2019-10-25

Similar Documents

Publication Publication Date Title
CN110380992B (zh) 报文处理方法、装置及网络流量采集设备
US11012411B2 (en) Network interface device
JP6109186B2 (ja) 状態機械格子におけるカウンタ動作
CN111984395B (zh) 一种数据迁移方法、系统及计算机可读存储介质
KR20190040884A (ko) 데이터 저장 장치들 내의 인-스토리지 가속을 제공하기 위한 시스템 및 방법
CN110727697B (zh) 数据的处理方法和装置、存储介质、电子装置
US11449456B2 (en) System and method for scheduling sharable PCIe endpoint devices
US10936283B2 (en) Buffer size optimization in a hierarchical structure
CN113468090B (zh) 一种PCIe通信方法、装置、电子设备及可读存储介质
CN113467964A (zh) 接入用户态协议栈的实现方法、系统、装置及存储介质
US11354094B2 (en) Hierarchical sort/merge structure using a request pipe
US20190163441A1 (en) Multi-cycle key compares for keys and records of variable length
WO2021046102A1 (en) Flexible datapath offload chaining
US10361715B1 (en) Decompression circuit
US10896022B2 (en) Sorting using pipelined compare units
CN113691466A (zh) 一种数据的传输方法、智能网卡、计算设备及存储介质
CN114780353B (zh) 一种文件日志监控方法、系统及计算设备
US11507378B1 (en) Hardware engine with configurable instructions
CN113328948B (zh) 资源管理方法、装置、网络设备及计算机可读存储介质
CN114625502A (zh) 一种投词任务处理方法、装置、存储介质和电子设备
US11223703B2 (en) Instruction initialization in a dataflow architecture
CN116136790A (zh) 任务处理方法和装置
CN117422024B (zh) 数据位宽转换方法、装置、计算机设备及介质
WO2023173912A1 (zh) 一种处理单元pe阵列的配置方法和相关设备
CN114124850B (zh) 一种网络通信方法及装置、存储介质

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