[发明专利]一种基于DPDK的分布式数据捕获方法在审

专利信息
申请号: 202310478318.X 申请日: 2023-04-28
公开(公告)号: CN116418700A 公开(公告)日: 2023-07-11
发明(设计)人: 丁勇;王春晖;梁海;杨昌松;李春海;李振宇 申请(专利权)人: 桂林电子科技大学
主分类号: H04L43/02 分类号: H04L43/02;H04L47/125;H04L45/74;H04L47/6275
代理公司: 桂林市华杰专利商标事务所有限责任公司 45112 代理人: 罗玉荣
地址: 541004 广*** 国省代码: 广西;45
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 dpdk 分布式 数据 捕获 方法
【权利要求书】:

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,如果文件超过上限,则创建新的转储文件用来代替当前文件,重新配置数据流的转储对象,并将文件移动至磁盘中进行持久化存储。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于桂林电子科技大学,未经桂林电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202310478318.X/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top