CN116418700A - 一种基于dpdk的分布式数据捕获方法 - Google Patents
一种基于dpdk的分布式数据捕获方法 Download PDFInfo
- Publication number
- CN116418700A CN116418700A CN202310478318.XA CN202310478318A CN116418700A CN 116418700 A CN116418700 A CN 116418700A CN 202310478318 A CN202310478318 A CN 202310478318A CN 116418700 A CN116418700 A CN 116418700A
- Authority
- CN
- China
- Prior art keywords
- data
- task
- network
- information
- nodes
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 230000008569 process Effects 0.000 claims description 23
- 238000012545 processing Methods 0.000 claims description 20
- 230000005540 biological transmission Effects 0.000 claims description 6
- 239000011159 matrix material Substances 0.000 claims description 6
- 230000008859 change Effects 0.000 claims description 4
- 238000013481 data capture Methods 0.000 claims description 4
- 238000009825 accumulation Methods 0.000 claims description 3
- 230000001174 ascending effect Effects 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 claims description 3
- 230000002085 persistent effect Effects 0.000 claims description 3
- 238000006243 chemical reaction Methods 0.000 claims 1
- 238000005516 engineering process Methods 0.000 description 6
- 239000000872 buffer Substances 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 238000004454 trace mineral analysis Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- 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/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- 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
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6275—Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于DPDK的分布式数据捕获方法,包括:1)数据流信息采集;2)任务分配;3)数据转储。这种方法能够在负载均衡网络上进行数据采集、能提高系统的吞吐量,能提高数据的存储速度。
Description
技术领域
本发明涉及计算机和信息科技技术,具体是一种基于DPDK的分布式数据捕获方法。
背景技术
数据捕获是对网络中传输的数据流数据包进行拦截和记录的过程。数据包在网络中传输时,捕获装置会对每一个数据包进行捕获,并对数据包进行存储,以便采用网络数据分析器对网络中的流量数据进行分析与审计。流量捕获对于网络流量分析、网络安全审计和网络取证等许多领域非常关键。
传统的流量捕获方法是采用操作系统的内核协议栈或对操作系统的内核协议栈进行修改来进行的,如Tcpdump、Wireshark等。Tcpdump是一种基于libpcap的命令行流量捕获和网络监控工具,它可以帮助用户捕获当前设备的网络流量并进行存储。libpcap在主机端或路由器等设备的内核网络协议栈中运行,通过内核网络协议栈的过滤器与旁路机制,构建一个过滤器对所有流经目标网卡的数据包进行监听,对监听到的数据包进行拷贝,并按照用户定义的规则进行过滤,然后将捕获到的数据交给相关的用户空间上层应用。Wireshark是一种网络协议分析器与数据包嗅探器,能够执行数据包的实时捕获以及对协议和数据包内容的深度离线分析。Shane等人提出了一个名为libtrace的网络数据包捕获和处理的C语言库,libtrace提供了简单易用的函数接口,有助于开发更易用、更可靠的网络跟踪分析和监控工具。然而这种方式具有内核空间到用户空间的中断以及内存拷贝造成的开销,造成了一定的性能浪费。
部分研究人员采用零拷贝的方法减少数据传输造成的延迟。Luig等人提出了一种名为Netmap的数据包处理框架,Netmap通过内存映射等手段,将捕获到的数据包的缓冲区映射到用户空间,并在用户空间实现了主要的程序结构。Netmap通过内存映射、内存预分配等手段,消除了从内核空间到用户空间的系统调用、内存申请、内存拷贝等开销,使得框架具有零拷贝的特点,极大的提升了数据包的捕获性能;Jiawei等人提出了一种基于PF_RING的自适应数据包捕获方案,可以根据网络中数据量的大小,动态的对缓冲区进行分配,提升了数据包捕获的性能,当网络中的流量变化较为明显时,可以自动增加或减少内核中的缓存空间大小,确保在数据包捕获的过程中不会产生因为缓冲区不足而导致的数据包丢失现象,使得该方案与原始PF_RING相比极大的降低了丢包现象的发生率,同时缓解了内存资源的浪费;Paul等人提出了一种数据包捕获和存储方案,该方案将数据包缓存在内存中的环形队列中,并在指定的事件发生时将数据包写入磁盘以提升写入效率;Hyun等人提出一种基于DNS sinkhole的恶意数据包捕获方法,以提高恶意数据包的捕获比例;Martino等人提出一种数据包捕获与分析方案,将英特尔数据平面开发框架与流量分析器相结合以提高数据的处理速度。
近年来,部分研究人员提出采用专用的硬件设备进行数据包的捕获。Siyi等人提出了一种基于现场可编程逻辑门阵列FPGA(Field-Programmable Gate Array,简称FPGA)的网络流量捕获与重放解决方案,可以确保捕获数据包时间戳的上的高精度和高吞吐量。Salvatore等人提出一种在硬件中构建有状态数据包处理功能的框架,框架支持复杂网络功能,并且对程序员隐藏了低级硬件实现;Jakub等人提出了一种基于FPGA的网络流量捕获方案,可通过PCI-E以400Gbps的传输将数据包写入主机的内存中;Han等人提出了一种基于FPGA的网络流量捕获方案FPC-NM,该方案分为硬件和软件两部分,硬件部分基于FPGA实现,对数据包进行时间戳、负载均衡分配、TCP段重组等预处理,软件部分根据硬件部分的预处理结果,将不同数据流交给不同CPU进行进一步处理,该方案采用软件与硬件结合的方式,较大的提升了处理性能。
然而随着网络技术的高速发展,云计算、大数据等越来越多的新兴技术对网络的依赖程度也越来越高。随着新兴技术多网络依赖程度的提高与应用规模的扩大,与此同时网络中产生了大量的数据流量。在云计算、大数据等场景下,单一的网络链路已经不足以负载如此巨大的流量,因此网络管理者通常使用流负载均衡来提高整个网络的负载能力。
流量的负载均衡关联通过流重新分配和流分割等方式提高网络资源的利用率,流重新分配技术是指通过一定的算法,根据当前的网络环境动态为网络流重新计算出一条合适的转发路径,最终实现网络的负载均衡与网络资源利用率的提高。流分割技术是指针对不同规模的流量采用不同的转发路径,并将规模较大的数据流进行分割成规模较小的子流,并将子流按照不同的路径进行转发,提高了网络的可靠性和可用性。
在负载均衡场景下,流重新分配和流分割都会改变数据流的传输路径,同一条数据流中的数据包从源节点到达目的节点的路径是不确定的,如果在负载均衡分流之前进行流量捕获,现有的流量捕获方法不足以承担巨大的网络流量;如果在负载均衡分流之后进行流量捕获,则可能造成数据流不完整的情况发生。综上所述,传统的流量捕获方法已经不适用于负载均衡场景下的流量捕获。
发明内容
本发明的目的是针对现有技术的不足,而提供一种基于DPDK的分布式数据捕获方法。这种方法能够在负载均衡网络上进行数据采集、能提高系统的吞吐量,能提高数据的存储速度。
实现本发明目的的技术方案是:
一种基于DPDK的分布式数据捕获方法,所述方法适用于负载均衡网络,其中,单个节点由流规则管理、数据流信息采集、任务分配、数据流认证、数据包处理、网络数据捕获组成,所述方法上层是用来通讯的区块链网络和基于区块链网络的分布式SDN控制器,下层是基于DPDK开发的具有流量捕获的软件路由器,所述方法包括如下步骤:
1)数据流信息采集:网络状态采集位于路由器节点上,周期性的对当前节点的状态信息进行采集,并通过区块链网络通告给其它节点,数据流信息采集过程采集当前时间段内经过当前路由器的数据包,按照数据流特征对当前时间段内的转发数据包数目、转发总字节数进行分类统计,并与时间戳、时间段长度、系统负载时序数据共同组织成结构化消息、并通过区块链网络进行广播发布,首先,数据流转发模块根据匹配规则转发数据流,并且在转发数据流的同时,对数据流的信息进行记录,转发模块根据匹配规则获取存储网络数据的数据块,并更新数据块的相关信息,数据采集模块定时获取转发模块转储的数据流状态信息,将状态信息打包成特定的数据结构,并通过区块链进行广播,具体地,数据流信息采集过程如下:首先获取当前时间,从数据流信息获取存储当前时间段信息的存储对象,并计算当前时间段的持续时间,如果当前时间段的持续时间超过预定义的时间段长度,则将当前时间段的数据信息更新到数据流信息上,并产生数据流状态事件,通过区块链网络向所有路由器节点进行广播,同时生成清空当前时间段信息的存储对象,并重设时间段开始时间,然后将当前时间段接收数据包数目和收到的字节数根据数据包信息进行累加;
2)任务分配:任务分配算法通过区块链订阅当前网络中所有节点的状态信息,并根据网络的拓扑信息和网络当前的状态信息,依据下述任务分配算法计算出当前每个节点的任务安排,任务分配算法通过区块链网络获取网络拓扑与数据流信息,首先,任务分配算法对网络拓扑进行遍历,获取每个路由器节点的负载能力的初始值,并将负载能力初始值存储在数组Rload中,其次,任务分配算法通过区块链网络获取当前网络状态信息,计算出每一条数据捕获任务的处理开销,并将任务处理开销存储在Fcost中,然后,根据步骤1数据流信息采集过程所采集到的信息,遍历网络中的所有数据流信息,对数据流路径上的节点进行标记,表示该数据流的捕获任务可以在被标记节点上执行,并将遍历结果存储在二维数组V中,最后,将节点负载能力Rload、数据流所需开销Fcost、任务分配的可选矩阵V作为参数传入捕获任务分配算法中,得到任务分配结果Froute,任务分配对网络中的数据流信息进行监听,当数据流规模变化超过单个节点所能处理数据的上限时,任务分配算法部分重新进行任务分配,得到新的任务分配方案,对各个路由器节点的性能与处理数据流所需的负载进行量化,假设单个路由器节点route在单位时间内所能转储数据包的最大数目为该节点的负载能力,如公式(1)所示,路由器节点负载能力的集合为:
假设数据流flow在单位时间所需要处理的数据包数目为该流所需的负载,如公式(2)所示,数据流所需负载的集合为:
假设用viai,j表示数据流flowj途经路由器routei,则采用符号V表示数据捕获任务分配的可选矩阵,如公式(3)所示:
当整个网络中只有一条数据流或网络中的所有数据流的路径都不重合时,应当选取该数据流所经过节点中负载能力最大的节点作为任务的执行节点,当整个网络中的数据流的传输路径都相同时,数据捕获任务由该数据流经过的任意节点进行捕获,此时采用贪心算法,即根据捕获任务的开销与节点的负载能力,依次选取负载能力最大的节点执行开销最大的任务,并重新计算该节点的负载能力,直到任务全部分配完毕,将任务均匀的分配到路径上的节点,任务分配算法将可选任务执行节点数量相对较少的数据流优先进行分配,防止出现因为任务分配顺序不当而出现的分配失败问题,任务分配过程将可选任务执行节点数量相对较少的任务称为低热度任务、将可选任务执行节点数量较多的任务称为高热度任务,数据流的最大可用负载与数据流开销之比表示数据流的冷热程度,并采用冷热程度作为优先级进行节点选择,当所有任务最大可用负载相同时,任务分配过程退化为按照开销进行优先级排序:
假设用flowpath表示数据流flow所经过的路由器路径,则数据流冷热程度flowpop的计算方法如公式(4)所示:
数据流冷热程度的集合如公式(5)所示:
算法计算所有任务的最大可用负载与数据流开销之比,并将所有数据捕获任务加入优先级队列,并按照任务所需的最大可用负载与数据流开销之比进行升序排序,使得低热度的任务优先分配,保证算法不会发生高热度任务堆积在个别节点导致的节点余量不足,造成任务分配失败的问题,其次,将每个任务的可选节点按照负载能力大小进行排序,使得高性能节点优先进行任务选择,然后,根据优先级队列对所有节点的候选任务进行遍历,选出合适的任务安排方案,选取位于任务队列对头的任务,对该任务的可选节点按照优先级进行选择,依次判断节点是否符合条件,如果任务所需负载小于或等于节点的剩余负载能力,则将该任务分配当前节点,并重新计算节点的剩余负载,结束当前循环,否则继续遍历下一个节点,当任务队列为空时结束循环,并返回算法执行结果;
3)数据转储:数据转储采用DPDK框架与内存文件系统,数据转储利用DPDK的多核架构与CPU与线程绑定特点,为每一个线程都分配一个特定的逻辑核心,使得每个数据流的处理过程都在一个特定的核心上进行,同时,数据转储对于已将采集到的数据文件采用内存-硬盘多级缓存,工作流程:首先,当数据包到达当前节点时,数据流转发模块根据数据流的元组信息获取该数据流的权限信息,如果该数据流被标记为捕获数据流,则将该数据包和存储该数据流的数据结构推入队列中,数据转储从队列中获取数据包与数据流信息,并根据数据流信息得到该数据流转储文件的文件句柄,通过文件句柄将数据包写入数据转储文件,在写入文件之后计算转储当前数据包后的转储文件大小,判断文件大小是否超过上限(64M或128M),如果文件超过上限,则创建新的转储文件用来代替当前文件,重新配置数据流的转储对象,并将文件移动至磁盘中进行持久化存储。
本技术方案用于处理工业控制网络中的负载均衡场景下的流量捕获问题,对网络中的未认证数据流或由网络管理员指定的数据流进行捕获,本技术方案周期性采集网络中的数据流信息,并根据网络流量信息生成最大限度地利用各节点性能的捕获任务分配方案,以实现网络中流量捕获设备资源的最大化利用,并有效应对突发事件,此外,基于DPDK技术进行设计,能够充分利用多核处理器的性能,从而显著提高系统的吞吐量,利用用户空间驱动技术实现数据包的高速捕获,绕过内核的网络协议栈,有效地减少数据包处理的延迟,提高数据包捕获的效率和速度,同时,采用内存-磁盘多级存储策略,有效提高数据的存储速度。
这种方法能够在负载均衡网络上进行数据采集、能提高系统的吞吐量,能提高数据的存储速度。
附图说明
图1为实施例中的节点的架构示意图;
图2为实施例中的数据转储流程示意图;
图3为实施例中的网络架构示意图。
具体实施方式
下面结合附图和实施例对本发明的内容做进一步的阐述,但不是对本发明的限定。
实施例:
一种基于DPDK的分布式数据捕获方法,所述方法适用于负载均衡网络,其中,如图1所示,单个节点由流规则管理、数据流信息采集、任务分配、数据流认证、数据包处理、网络数据捕获组成,所述方法上层是用来通讯的区块链网络和基于区块链网络的分布式SDN控制器,下层是基于DPDK开发的具有流量捕获的软件路由器,所述方法包括如下步骤:
1)数据流信息采集:网络状态采集位于路由器节点上,周期性的对当前节点的状态信息进行采集,并通过区块链网络通告给其它节点,数据流信息采集过程采集当前时间段内经过当前路由器的数据包,按照数据流特征对当前时间段内的转发数据包数目、转发总字节数进行分类统计,并与时间戳、时间段长度、系统负载时序数据共同组织成结构化消息、并通过区块链网络进行广播发布,首先,数据流转发模块根据匹配规则转发数据流,并且在转发数据流的同时,对数据流的信息进行记录,转发模块根据匹配规则获取存储网络数据的数据块,并更新数据块的相关信息,数据采集模块定时获取转发模块转储的数据流状态信息,将状态信息打包成特定的数据结构,并通过区块链进行广播,具体地,数据流信息采集过程如下:首先获取当前时间,从数据流信息获取存储当前时间段信息的存储对象,并计算当前时间段的持续时间,如果当前时间段的持续时间超过预定义的时间段长度,则将当前时间段的数据信息更新到数据流信息上,并产生数据流状态事件,通过区块链网络向所有路由器节点进行广播,同时生成清空当前时间段信息的存储对象,并重设时间段开始时间,然后将当前时间段接收数据包数目和收到的字节数根据数据包信息进行累加;
2)任务分配:任务分配算法通过区块链订阅当前网络中所有节点的状态信息,并根据网络的拓扑信息和网络当前的状态信息,依据下述任务分配算法计算出当前每个节点的任务安排,任务分配算法通过区块链网络获取网络拓扑与数据流信息,首先,任务分配算法对网络拓扑进行遍历,获取每个路由器节点的负载能力的初始值,并将负载能力初始值存储在数组Rload中,其次,任务分配算法通过区块链网络获取当前网络状态信息,计算出每一条数据捕获任务的处理开销,并将任务处理开销存储在Fcost中,然后,根据步骤1数据流信息采集过程所采集到的信息,遍历网络中的所有数据流信息,对数据流路径上的节点进行标记,表示该数据流的捕获任务可以在被标记节点上执行,并将遍历结果存储在二维数组V中,最后,将节点负载能力Rload、数据流所需开销Fcost、任务分配的可选矩阵V作为参数传入捕获任务分配算法中,得到任务分配结果Froute,任务分配对网络中的数据流信息进行监听,当数据流规模变化超过单个节点所能处理数据的上限时,任务分配算法部分重新进行任务分配,得到新的任务分配方案,对各个路由器节点的性能与处理数据流所需的负载进行量化,假设单个路由器节点route在单位时间内所能转储数据包的最大数目为该节点的负载能力,如公式(1)所示,路由器节点负载能力的集合为:
假设数据流flow在单位时间所需要处理的数据包数目为该流所需的负载,如公式(2)所示,数据流所需负载的集合为:
假设用viai,j表示数据流flowj途经路由器routei,则采用符号V表示数据捕获任务分配的可选矩阵,如公式(3)所示:
当整个网络中只有一条数据流或网络中的所有数据流的路径都不重合时,应当选取该数据流所经过节点中负载能力最大的节点作为任务的执行节点,当整个网络中的数据流的传输路径都相同时,数据捕获任务由该数据流经过的任意节点进行捕获,此时采用贪心算法,即根据捕获任务的开销与节点的负载能力,依次选取负载能力最大的节点执行开销最大的任务,并重新计算该节点的负载能力,直到任务全部分配完毕,将任务均匀的分配到路径上的节点,任务分配算法将可选任务执行节点数量相对较少的数据流优先进行分配,防止出现因为任务分配顺序不当而出现的分配失败问题,任务分配过程将可选任务执行节点数量相对较少的任务称为低热度任务、将可选任务执行节点数量较多的任务称为高热度任务,数据流的最大可用负载与数据流开销之比表示数据流的冷热程度,并采用冷热程度作为优先级进行节点选择,当所有任务最大可用负载相同时,任务分配过程退化为按照开销进行优先级排序:
假设用flowpath表示数据流flow所经过的路由器路径,则数据流冷热程度flowpop的计算方法如公式(4)所示:
数据流冷热程度的集合如公式(5)所示:
算法计算所有任务的最大可用负载与数据流开销之比,并将所有数据捕获任务加入优先级队列,并按照任务所需的最大可用负载与数据流开销之比进行升序排序,使得低热度的任务优先分配,保证算法不会发生高热度任务堆积在个别节点导致的节点余量不足,造成任务分配失败的问题,其次,将每个任务的可选节点按照负载能力大小进行排序,使得高性能节点优先进行任务选择,然后,根据优先级队列对所有节点的候选任务进行遍历,选出合适的任务安排方案,选取位于任务队列对头的任务,对该任务的可选节点按照优先级进行选择,依次判断节点是否符合条件,如果任务所需负载小于或等于节点的剩余负载能力,则将该任务分配当前节点,并重新计算节点的剩余负载,结束当前循环,否则继续遍历下一个节点,当任务队列为空时结束循环,并返回算法执行结果;
3)数据转储:如图2所示,数据转储采用DPDK框架与内存文件系统,数据转储利用DPDK的多核架构与CPU与线程绑定特点,为每一个线程都分配一个特定的逻辑核心,使得每个数据流的处理过程都在一个特定的核心上进行,同时,数据转储对于已将采集到的数据文件采用内存-硬盘多级缓存,工作流程:首先,当数据包到达当前节点时,数据流转发模块根据数据流的元组信息获取该数据流的权限信息,如果该数据流被标记为捕获数据流,则将该数据包和存储该数据流的数据结构推入队列中,数据转储从队列中获取数据包与数据流信息,并根据数据流信息得到该数据流转储文件的文件句柄,通过文件句柄将数据包写入数据转储文件,在写入文件之后计算转储当前数据包后的转储文件大小,判断文件大小是否超过上限,本例取128M,如果文件超过上限,则创建新的转储文件用来代替当前文件,重新配置数据流的转储对象,并将文件移动至磁盘中进行持久化存储。
本例中,具体地,如图3所示,当网络中的数据流的路径部分重合时,网络中会出现部分数据流可选任务执行节点相对较多、部分数据流可选任务执行节点相对较少的情况,此时如果以数据捕获的开销作为优先级进行选择,则可能出现部分数据流因为缺少资源而不能进行捕获的情况,据流flow1的路径为{route1,route2,route3,route5}、数据流flow1的路径为{route6,route3,route2,route4}、数据流flow1的路径为{route3,route2},三条数据流的路径重合在{route2,route3},如果数据流flow1与flow2的优先级较高,并且数据流flow1与flow2的捕获任务分别分派到了路由器节点route2和route3上,使得节点route2和route3剩余负载不足以执行flow3的捕获任务,导致任务分配失败,此时应当将数据流flow3的捕获任务优先进行分配,本例方法应当将可选任务执行节点数量相对较少的数据流优先进行分配,防止出现因为任务分配顺序不当而出现的分配失败等问题,本例方法将可选任务执行节点数量相对较少的任务称为低热度任务、将可选任务执行节点数量较多的任务称为高热度任务,数据流的最大可用负载与数据流开销之比表示数据流的冷热程度,并使用冷热程度作为优先级进行节点选择,当所有任务最大可用负载相同时,本例方法退化为按照开销进行优先级排序的方法。
Claims (1)
1.一种基于DPDK的分布式数据捕获方法,所述方法适用于负载均衡网络,其中,单个节点由流规则管理、数据流信息采集、任务分配、数据流认证、数据包处理、网络数据捕获组成,所述方法上层是用来通讯的区块链网络和基于区块链网络的分布式SDN控制器,下层是基于DPDK开发的具有流量捕获的软件路由器,其特征在于,所述方法包括如下步骤:
1)数据流信息采集:网络状态采集位于路由器节点上,周期性的对当前节点的状态信息进行采集,并通过区块链网络通告给其它节点,数据流信息采集过程采集当前时间段内经过当前路由器的数据包,按照数据流特征对当前时间段内的转发数据包数目、转发总字节数进行分类统计,并与时间戳、时间段长度、系统负载时序数据共同组织成结构化消息、并通过区块链网络进行广播发布,首先,数据流转发模块根据匹配规则转发数据流,并且在转发数据流的同时,对数据流的信息进行记录,转发模块根据匹配规则获取存储网络数据的数据块,并更新数据块的相关信息,数据采集模块定时获取转发模块转储的数据流状态信息,将状态信息打包成特定的数据结构,并通过区块链进行广播,具体地,数据流信息采集过程如下:首先获取当前时间,从数据流信息获取存储当前时间段信息的存储对象,并计算当前时间段的持续时间,如果当前时间段的持续时间超过预定义的时间段长度,则将当前时间段的数据信息更新到数据流信息上,并产生数据流状态事件,通过区块链网络向所有路由器节点进行广播,同时生成清空当前时间段信息的存储对象,并重设时间段开始时间,然后将当前时间段接收数据包数目和收到的字节数根据数据包信息进行累加;
2)任务分配:任务分配算法通过区块链订阅当前网络中所有节点的状态信息,并根据网络的拓扑信息和网络当前的状态信息,依据下述任务分配算法计算出当前每个节点的任务安排,任务分配算法通过区块链网络获取网络拓扑与数据流信息,首先,任务分配算法对网络拓扑进行遍历,获取每个路由器节点的负载能力的初始值,并将负载能力初始值存储在数组Rload中,其次,任务分配算法通过区块链网络获取当前网络状态信息,计算出每一条数据捕获任务的处理开销,并将任务处理开销存储在Fcost中,然后,根据步骤1数据流信息采集过程所采集到的信息,遍历网络中的所有数据流信息,对数据流路径上的节点进行标记,表示该数据流的捕获任务可以在被标记节点上执行,并将遍历结果存储在二维数组V中,最后,将节点负载能力Rload、数据流所需开销Fcost、任务分配的可选矩阵V作为参数传入捕获任务分配算法中,得到任务分配结果Froute,任务分配对网络中的数据流信息进行监听,当数据流规模变化超过单个节点所能处理数据的上限时,任务分配算法部分重新进行任务分配,得到新的任务分配方案,对各个路由器节点的性能与处理数据流所需的负载进行量化,假设单个路由器节点route在单位时间内所能转储数据包的最大数目为该节点的负载能力,如公式(1)所示,路由器节点负载能力的集合为:
假设数据流flow在单位时间所需要处理的数据包数目为该流所需的负载,如公式(2)所示,数据流所需负载的集合为:
假设用viai,j表示数据流flowj途经路由器routei,则采用符号V表示数据捕获任务分配的可选矩阵,如公式(3)所示:
当整个网络中只有一条数据流或网络中的所有数据流的路径都不重合时,选取该数据流所经过节点中负载能力最大的节点作为任务的执行节点,当整个网络中的数据流的传输路径都相同时,数据捕获任务由该数据流经过的任意节点进行捕获,此时采用贪心算法,即根据捕获任务的开销与节点的负载能力,依次选取负载能力最大的节点执行开销最大的任务,并重新计算该节点的负载能力,直到任务全部分配完毕,将任务均匀的分配到路径上的节点,任务分配算法将可选任务执行节点数量相对较少的数据流优先进行分配,任务分配过程将可选任务执行节点数量相对较少的任务称为低热度任务、将可选任务执行节点数量较多的任务称为高热度任务,数据流的最大可用负载与数据流开销之比表示数据流的冷热程度,并采用冷热程度作为优先级进行节点选择,当所有任务最大可用负载相同时,任务分配过程退化为按照开销进行优先级排序:
假设用flowpath表示数据流flow所经过的路由器路径,则数据流冷热程度flowpop的计算方法如公式(4)所示:
数据流冷热程度的集合如公式(5)所示:
算法计算所有任务的最大可用负载与数据流开销之比,并将所有数据捕获任务加入优先级队列,并按照任务所需的最大可用负载与数据流开销之比进行升序排序,使得低热度的任务优先分配,保证算法不会发生高热度任务堆积在个别节点导致的节点余量不足,造成任务分配失败的问题,其次,将每个任务的可选节点按照负载能力大小进行排序,使得高性能节点优先进行任务选择,然后,根据优先级队列对所有节点的候选任务进行遍历,选出合适的任务安排方案,选取位于任务队列对头的任务,对该任务的可选节点按照优先级进行选择,依次判断节点是否符合条件,如果任务所需负载小于或等于节点的剩余负载能力,则将该任务分配当前节点,并重新计算节点的剩余负载,结束当前循环,否则继续遍历下一个节点,当任务队列为空时结束循环,并返回算法执行结果;
3)数据转储:数据转储采用DPDK框架与内存文件系统,数据转储利用DPDK的多核架构与CPU与线程绑定特点,为每一个线程都分配一个特定的逻辑核心,使得每个数据流的处理过程都在一个特定的核心上进行,同时,数据转储对于已将采集到的数据文件采用内存-硬盘多级缓存,工作流程:首先,当数据包到达当前节点时,数据流转发模块根据数据流的元组信息获取该数据流的权限信息,如果该数据流被标记为捕获数据流,则将该数据包和存储该数据流的数据结构推入队列中,数据转储从队列中获取数据包与数据流信息,并根据数据流信息得到该数据流转储文件的文件句柄,通过文件句柄将数据包写入数据转储文件,在写入文件之后计算转储当前数据包后的转储文件大小,判断文件大小是否超过上限,上限为64M或128M,如果文件超过上限,则创建新的转储文件用来代替当前文件,重新配置数据流的转储对象,并将文件移动至磁盘中进行持久化存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310478318.XA CN116418700A (zh) | 2023-04-28 | 2023-04-28 | 一种基于dpdk的分布式数据捕获方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310478318.XA CN116418700A (zh) | 2023-04-28 | 2023-04-28 | 一种基于dpdk的分布式数据捕获方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116418700A true CN116418700A (zh) | 2023-07-11 |
Family
ID=87057879
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310478318.XA Pending CN116418700A (zh) | 2023-04-28 | 2023-04-28 | 一种基于dpdk的分布式数据捕获方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116418700A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116938907A (zh) * | 2023-09-14 | 2023-10-24 | 中兴通讯股份有限公司 | 一种实时音视频传输网络的数据传输方法及系统 |
CN117155871A (zh) * | 2023-10-31 | 2023-12-01 | 山东衡昊信息技术有限公司 | 一种港口工业互联网点位低时延并发处理方法 |
-
2023
- 2023-04-28 CN CN202310478318.XA patent/CN116418700A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116938907A (zh) * | 2023-09-14 | 2023-10-24 | 中兴通讯股份有限公司 | 一种实时音视频传输网络的数据传输方法及系统 |
CN116938907B (zh) * | 2023-09-14 | 2024-02-23 | 中兴通讯股份有限公司 | 一种实时音视频传输网络的数据传输方法及系统 |
CN117155871A (zh) * | 2023-10-31 | 2023-12-01 | 山东衡昊信息技术有限公司 | 一种港口工业互联网点位低时延并发处理方法 |
CN117155871B (zh) * | 2023-10-31 | 2024-01-12 | 山东衡昊信息技术有限公司 | 一种港口工业互联网点位低时延并发处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116418700A (zh) | 一种基于dpdk的分布式数据捕获方法 | |
US8997109B2 (en) | Apparatus and method for managing data stream distributed parallel processing service | |
Yan et al. | ACC: Automatic ECN tuning for high-speed datacenter networks | |
US8099493B2 (en) | Method and apparatus for packet analysis in a network | |
US9191325B2 (en) | Method and system for processing network traffic flow data | |
US9178824B2 (en) | Method and system for monitoring and analysis of network traffic flows | |
US20020108059A1 (en) | Network security accelerator | |
US9652295B2 (en) | Runtime fusion of operators based on processing element workload threshold and programming instruction compatibility | |
CN106972985B (zh) | 加速dpi设备数据处理与转发的方法和dpi设备 | |
Kotenko et al. | Aggregation of elastic stack instruments for collecting, storing and processing of security information and events | |
CN103152352A (zh) | 一种基于云计算环境的全信息安全取证监听方法和系统 | |
CN106959820B (zh) | 一种数据提取方法和系统 | |
Emmerich et al. | FlowScope: Efficient packet capture and storage in 100 Gbit/s networks | |
CN116389365B (zh) | 一种交换机数据处理方法及系统 | |
CN106571978B (zh) | 数据包捕获方法及装置 | |
Tudoran et al. | Bridging data in the clouds: An environment-aware system for geographically distributed data transfers | |
Arslan et al. | High-speed transfer optimization based on historical analysis and real-time tuning | |
CN110308984A (zh) | 一种用于处理地理分布式数据的跨集群计算系统 | |
CN104333533A (zh) | 一种用于工业控制系统网络的数据包零拷贝获取方法 | |
Michel et al. | Software packet-level network analytics at cloud scale | |
Iannaccone | Fast prototyping of network data mining applications | |
CN115002186A (zh) | 网络信息采集方法、装置、电子设备及可读存储介质 | |
CN108280018A (zh) | 一种节点工作流通信开销效率分析优化方法及系统 | |
CN111881165B (zh) | 一种数据聚合方法、装置和计算机可读存储介质 | |
Yu et al. | Analysis of CPU pinning and storage configuration in 100 Gbps network data transfer |
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 |