[发明专利]一种数据包的捕获方法及相关装置有效
申请号: | 202110150439.2 | 申请日: | 2021-02-03 |
公开(公告)号: | CN112817536B | 公开(公告)日: | 2022-09-16 |
发明(设计)人: | 徐春晓 | 申请(专利权)人: | 恒为科技(上海)股份有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06;G06F9/50;G06F9/54 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 骆宗力 |
地址: | 201114 上海市*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据包 捕获 方法 相关 装置 | ||
本申请公开了一种数据包的捕获方法及相关装置,其中,所述数据包的捕获方法首先获取配置参数,并根据配置参数或根据对预设路径的顺序读写测试的结果,确定目标分块大小,以目标分块大小为单位申请兆字节对其的N个内存块,并创建多个具有N个结点的队列,以自动获取最佳磁盘分块策略,在捕获数据包时,使用DPDK提供的接口收取数据包,绕过操作系统内核态到用户态拷贝操作,以较高速率收取数据包并按照最佳磁盘分块策略拼装成块,存储到相应队列的内存块中,最后在存储过程中将拼装好的数据块写入存储介质进行存储,实现了提高数据包捕获性能和效率的目的。
技术领域
本申请涉及通信技术领域,更具体地说,涉及一种数据包的捕获方法及相关装置。
背景技术
数据包捕获技术通常用于对网络进行监视,以评估网络的当前状态,在网络安全等领域广泛应用。
目前的数据包捕获方法多依赖于现有的数据包捕获工具,这些数据包捕获工具存在收包性能较低的问题。
发明内容
为解决上述技术问题,本申请提供了一种数据包的捕获方法及相关装置,以实现提高数据包捕获性能和效率的目的。
为实现上述技术目的,本申请实施例提供了如下技术方案:
一种数据包的捕获方法,包括:
获取配置参数,所述配置参数包括参与捕获的CPU核个数、支持存储数+据包的CPU核个数、参与捕获的端口列表、队列中结点数量和每个结点对应的内存块大小中的至少一项;
根据所述配置参数或根据对预设路径的顺序读写测试的结果,确定目标分块大小,以所述目标分块大小为单位申请兆字节对齐的N个内存块,并创建多个具有N个结点的队列,队列的每一个结点分配指针指向所述内存块;N为大于1的整数;
使用DPDK提供的接口收取数据包,对收取的数据包进行拼装并存储到相应队列的内存块中;
从队列中取出内存块信息和内存块,将内存块存储中的数据包存储到存储介质中,并将内存块还回队列中。
可选的,所述根据所述配置参数或根据对预设路径的顺序读写测试的结果,确定目标分块大小包括:
判断所述配置参数中是否包括每个结点对应的内存块大小,如果是,则根据所述配置参数确定目标分块大小,如果否,则以i兆为单位对预设路径进行顺序读写测试,确定目标分块大小,所述目标分块大小为磁盘性能最高时i的取值,i为2的整数次幂。
可选的,所述配置参数还包括:哈希策略以及哈希份数。
可选的,N的取值等于所述哈希份数。
可选的,所述哈希策略包括:IP策略、端口号策略、IP和端口号策略、协议策略、IP和协议策略中的任意一项。
可选的,所述使用DPDK提供的接口收取数据包,对收取的数据包进行拼装并存储到相应队列的内存块中包括:
使用DPDK提供的接口收取数据包;
按照PCAP文件格式对所述数据包进行拼装;
对数据包按照所述哈希策略进行解析,以确定目标队列,并将数据包存储到所述目标队列中。
可选的,所述对数据包按照所述哈希策略进行解析,以确定目标列队包括:
当所述哈希策略包括IP策略时,数据包的源IP和目标IP解析值进行哈希运算,根据哈希运算结果确定所述目标队列;
当所述哈希策略包括端口号策略时,数据包的源端口和目的端口解析值参与哈希运算,根据哈希运算结果确定所述目标队列;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于恒为科技(上海)股份有限公司,未经恒为科技(上海)股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110150439.2/2.html,转载请声明来源钻瓜专利网。