The invention discloses a DPDK-based high-speed network data packet capture, shunting and caching method. Firstly, the original network data message is captured by Intel DPDK interface, then the captured message is encapsulated into a custom format CDetectionElement and stored in concurrent_queue lock-free caching queue. Then, the data packet is read from the queue by polling, and five-tuple information is extracted and merged. Hash values are computed using a specific hash algorithm. Finally, the hash values are searched and stored in a specific hash list. The invention finally realizes real-time capture, shunting and caching of data packets in a 10,000-mega network environment, and has higher data processing ability than the existing methods. The invention can be used for real-time capture, shunting and caching of network data packets in a large traffic environment.
【技术实现步骤摘要】
一种基于DPDK的高速网络数据包捕获分流及缓存方法
本专利技术涉及一种网络数据包分流和缓存方法,具体涉及一种基于DPDK的网络数据包捕获分流及缓存方法。
技术介绍
在网络安全领域,数据包的捕获和缓存是一项基础技术,在众多的网络安全应用场景如IDS(IntrusionDetectionSystems)、IPS(IntrusionPreventionsystem)、网络数据审查中均有使用,在当前高速网络环境中,如何高效、完整、快速捕获数据包是能否准确分析网络数据的基础和网络安全防护系统的关键技术。传统的数据包捕获方案有软件和硬件两种形式,硬件的解决方案成本太高,软件的方法主要有BPF、libpcap和pf_ring三种方法。伯克利封包过滤器BPF(BerkeleyPacketFilter)是Linux/Unix系统上数据链路层的一种原始接口,提供原始链路层封包的过滤和收发。它是由美国伯克利大学设计出来的,是一种基于BSD(BerkeleySoftwareDistribution)操作系统的数据包接收和过滤机。其缺点在于BPF的数据包捕获和过滤都是在Linux内核层完成 ...
【技术保护点】
1.一种基于DPDK的高速网络数据包捕获分流及缓存方法,其特征在于:包括以下步骤:步骤1:使用DPDK捕包接口获取网络数据报文;步骤2:解析捕获的数据包,提取五元组信息,将数据包解析成自定义格式CDetectionElement,并缓存到无锁队列concurrent_queue中;步骤3:线程轮询步骤2所得无锁缓存队列,当队列中的数据不为空时,取出队列中的元素CDetectionElement;步骤4:根据五元组信息,使用循环位移异或法计算哈希值;步骤5:根据步骤4所得hash值作为哈希表的Key查找哈希表,使用的哈希表为Intel TBB concurrent_hash_ ...
【技术特征摘要】
1.一种基于DPDK的高速网络数据包捕获分流及缓存方法,其特征在于:包括以下步骤:步骤1:使用DPDK捕包接口获取网络数据报文;步骤2:解析捕获的数据包,提取五元组信息,将数据包解析成自定义格式CDetectionElement,并缓存到无锁队列concurrent_queue中;步骤3:线程轮询步骤2所得无锁缓存队列,当队列中的数据不为空时,取出队列中的元素CDetectionElement;步骤4:根据五元组信息,使用循环位移异或法计算哈希值;步骤5:根据步骤4所得hash值作为哈希表的Key查找哈希表,使用的哈希表为IntelTBBconcurrent_hash_map,如果Key对应的Value不为空,根据五元组搜索Value中CDetectionLinkM结构的链表,如果搜索命中五元组,则表示链表存在,添加数据包到链表,如果链表不存在,则创建一条新的链表,如果一条链表对应的网络数据流结束或超时,就清除之前缓存的链路和数据包;步骤6:当链路释放或者链路缓存的数据包数量达到上层应用设定的阈值后,将CDetectionLinkM链表结构中的CDetectionElement结构的数据包链表取出提交上层应用使用。2.根据权利要求1所述的基于DPDK的高速网络数据包捕获分流及缓存方法,其特征在于:所述步骤1中的数据捕获接口采用IntelDPDK捕包接口。3.根据权利要求1所述的基于DPDK的高速网络数据包捕获分流及缓存方法,其特征在于:所述步骤2中提取的...
【专利技术属性】
技术研发人员:翟江涛,杨路辉,金钰,赵玉鑫,
申请(专利权)人:南京知常容信息技术有限公司,
类型:发明
国别省市:江苏,32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。