[发明专利]数据包捕获、处理和发送方法及系统有效
| 申请号: | 201310517176.X | 申请日: | 2013-10-28 |
| 公开(公告)号: | CN103581181B | 公开(公告)日: | 2017-02-15 |
| 发明(设计)人: | 赵有健;裴昶华;全成斌 | 申请(专利权)人: | 清华大学 |
| 主分类号: | H04L29/06 | 分类号: | H04L29/06 |
| 代理公司: | 北京清亦华知识产权代理事务所(普通合伙)11201 | 代理人: | 张大威 |
| 地址: | 100084 北京*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | 本发明提出一种数据包捕获、处理和发送方法,包括以下步骤根据系统的页面大小分配一个预定大小的内存空间;将内存从内核空间映射到用户地址空间以使用户程序与内核空间的内存相关联;将接收到的数据包通过直接内存存取方式依次存储到内存空间中连续的多个DMA缓冲区;用户程序通过m个线程对N个DMA缓冲区中的数据包进行并行处理,其中m为处理器的内核数;依次将N个DMA缓冲区中处理完成的数据包向外发送。本发明实现了快速捕获、并行处理、线速发送的有机结合,从而解决了零拷贝技术不能及时处理捕获的数据包的缺点,为安全审计系统提供一定的技术支持。本发明还提出一种数据包捕获、处理和发送系统。 | ||
| 搜索关键词: | 数据包 捕获 处理 发送 方法 系统 | ||
【主权项】:
一种数据包捕获、处理和发送方法,包括以下步骤:分配模块:根据系统的页面大小分配一个预定大小的内存空间;映射模块:将内存从内核空间映射到用户地址空间以使用户程序与所述内核空间的内存相关联;存储控制模块:将接收到的数据包通过直接内存存取方式依次存储到所述内存空间中连续的多个DMA缓冲区;在DMA缓冲区在建立流式DMA映射后,网卡驱动程序通过调用dma_unmap_single函数,访问所述DMA缓冲区的内容;在数据包被发往上层协议栈之前调用dma_unmap_single函数,同时在所述函数被调用后设置DMA缓冲区的标志位,通知用户程序读取该DMA缓冲区的内容;在为每个DMA缓冲区设置标志位的同时对每一个DMA缓冲区进行编号,指示其:(1)可写:全部的用户程序处理完毕,清空DMA缓冲区,接收新的数据;(2)可读:网卡数据接收完毕,应用层程序进行处理;(3)可发:经过所述处理通过的数据包加入到发送队列中;管理网卡驱动程序分配的skb,在网卡驱动程序初始化后创建了一个可用skb池和一个在用skb池,所述可用skb池,为所述网卡驱动程序的rx_ring环提供skb,当rx_ring环的节点需要关联一个新的skb时,所述网卡驱动程序会从所述可用skb池中取出一个skb关联给rx_ring的节点;若在所述skb池创建后为空,当所述网卡驱动程序从所述可用skb池中取出skb时,将把skb放入所述在用skb池中,所述网卡驱动程序在运行中,若所述可用skb池的skb被分配完,所述网卡驱动程序将从所述在用skb池中查找skb‑>data被处理过的skb,并将其重新初始化后放入所述可用skb池中,当所述网卡驱动程序向上层协议栈提交数据包时,所述网卡驱动程序还要通过检查skb的users计数和skb‑>data的dataref计数判断skb是否仍被所述上层协议栈使用,在判断skb被上层协议栈使用完后,再将skb重新初始化放入所述可用skb池中,保证了所述上层协议栈对数据访问的一致性;处理模块:被捕获的数据包是按捕获顺序放入地址连续的内存中的,在多核系统中,数据包处理程序中根据多核CPU的核数m将共享内存虚拟的划分为m块,通过多线程方式对m核共享内存并行处理,共享内存有N个DMA缓冲区用于接收数据包,对DMA缓冲区从1到N进行编号,核Ci处理的DMA缓冲区可以表示为:Cij=i+jm其中,i∈[1,m],i为正整数,j为正整数,为向上取整;发送模块:安全系统将合法的数据包重新发送回网络中,采用线速发送模式,使发送速率能够达到对数据包的捕获速率,数据包发送tx_ring和数据包捕获模块rx_ring共用了数据缓冲区,每一个数据缓冲区设置一个发送标志,当缓冲区中存储的数据处理完成后,将发送标志位置为可发送,数据包发送模块轮询tx_ring,当检查到有数据包发送时,对数据包所在的缓冲区进行流式DMA映射,DMA机制自动的将要发送的数据包传送到网卡的发送缓冲区,最后经过网卡将数据包发送回网络,当有大量的数据包需要发送时,采用轮询tx_ring从而遍历发送标志位。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201310517176.X/,转载请声明来源钻瓜专利网。
- 上一篇:一种网络摄像机
- 下一篇:一种车载显示器的视频信号输入匹配电路





