[发明专利]IP数据包分发采集方法、装置、终端设备及存储介质在审
申请号: | 201710927157.2 | 申请日: | 2017-10-09 |
公开(公告)号: | CN107749828A | 公开(公告)日: | 2018-03-02 |
发明(设计)人: | 李侠林;李山;吴鸿伟;周成祖;张永光;杜新胜 | 申请(专利权)人: | 厦门市美亚柏科信息股份有限公司 |
主分类号: | H04L12/863 | 分类号: | H04L12/863;H04L29/06 |
代理公司: | 厦门市精诚新创知识产权代理有限公司35218 | 代理人: | 何家富 |
地址: | 361000 福建省厦门市*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | ip 数据包 分发 采集 方法 装置 终端设备 存储 介质 | ||
技术领域
本发明涉及大数据处理技术领域,具体是一种IP数据包分发采集方法、装置、终端设备及存储介质。
背景技术
随着互联网的快速普及,各种数据以几何级的爆炸性增长,在大数据时代,如何在大流量下里面快速采集还原数据流成为一大热门技术。
数据流采集往往是单进程采集,需维护大量的线程池,这中间要维护大量的会话和各线程的同步问题,容易造成内存损耗或者性能瓶颈。
发明内容
为了解决上述问题,本发明提供一种IP数据包分发采集方法、装置、终端设备及存储介质,能够减少流还原采集程序的压力,在应用层的角度将IP报文进行快速分析处理,形成类似RSS多列队并且是对称的,分发到不同的进程进行数据分类处理,利用操作系统的资源调配,减少各进程的会话数和线程数进而达到减少内存占用、提高数据采集的能力。
本发明一种IP数据包分发采集方法,包括如下步骤:
S0:无锁队列初始化:开辟一共享内存区,在共享内存区创建N个并行的无锁队列,用于IP数据包分发,其中N为2n,进入S1步骤;
S1:IP数据采集:采集IP数据包P,解析P获取四元组,根据四元组计算HASH-Id,根据HASH-Id对N个无锁队列取模得到模值为X,其中X的取值方法能够保证数据的同源同宿,进入S2步骤;
S2:IP数据分发:用批量传送的方式将P送到无锁队列X,进入S3步骤;
S3:IP数据读取和还原:初始化N个流还原进程,每个进程单独依附一个无锁队列X,形成无锁并发操作,再进行数据读取和还原。
进一步的,S0步骤中,无锁队列采用Kfifo数据结构,为一环形的内存结构。
进一步的,S1步骤中,四元组为源ip、宿ip、源端口和宿端口。
进一步的,S1步骤中,HASH-Id采用如下公式取值获得X:X=(saddr^daddr^sourcePort^destPort)&(N-1),其中,saddr为源ip,daddr为宿ip,sourcePort为源端口,destPort为宿端口,N为队列个数,其设置为2的n次方,X为四元组进行'异或'操作并进行取模(求余)操作。
进一步的,S2步骤中,用批量传送的方式将P送到队列X具体为:
S21:在内存区开辟临时节点,并将P的长度加上临时节点中的数据长度与临时节点的最大长度进行比较,若P的长度加上临时节点中的数据长度小于或等于临时节点的最大长度,则进入S23;若P的长度加上临时节点中的数据长度大于临时节点的最大长度,则进入S22;
S22:将临时节点中的数据写入队列X,进入S23;
S23:将P写入临时节点,临时节点中的数据包标志个数加1。
更进一步的,S3步骤中,数据采集具体为:
S31:初始化N个流还原进程,每个进程单独依附一个队列X,再利用KFIFO算法形成无锁并发操作;
S32:读取临时节点中的数据,获得ip数据报文,根据tcp/ip协议进行数据报文的还原。
本发明还公开一种IP数据包分发采集装置,包括
初始化模块:用于无锁队列初始化;
数据采集模块:用于IP数据采集;
数据分发模块:用于IP数据分发;
数据还原模块:用于IP数据读取和还原。
本发明还公开一种IP数据包分发采集终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现IP数据包分发采集的步骤。
本发明还公开一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现IP数据包分发采集的步骤。本发明的有益效果:
通过IP数据包分发采集装置,解耦了数据采集和数据流还原的处理流程,同时有效减少单进程处理数据流的个数,提高数据流处理效率和减少数据流在内存的占用时间从而减少内存损耗。
附图说明
图1为本发明实施例一的方法流程图;
图2为本发明实施例二的系统结构示意图。
具体实施方式
为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。图中的组件并未按比例绘制,而类似的组件符号通常用来表示类似的组件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于厦门市美亚柏科信息股份有限公司,未经厦门市美亚柏科信息股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710927157.2/2.html,转载请声明来源钻瓜专利网。