一种基于时间触发转发检测调度的方法与流程

文档序号:11959906阅读:来源:国知局

技术特征:

1.一种基于时间触发转发检测调度的方法,其特征在于:利用抓包接收数据重组模块根据系统硬件配置高低、CPU个数和核心数量,自动确定抓包线程的数量,采用多线程方式进行网络抓包;重装TCP数据段,流重组主要基于数据包保序和并发处理的考虑,一方面,有些协议解析部分的模块需要对连续有序的数据包进行解析处理,另一方面,流重组可以使属于一个会话的数据包某时某刻只在一个核上进行处理,从而保护了会话以及高层的数据结构,也减少了并发系统的开发难度;

重装TCP数据段的方法是:

(1)每到来一个tcp数据包,先将该数据包的源ip地址、目的ip地址、源端口号、目的端口号取出来在重装表中纵向的链表中查找有没有与它相匹配的链表存在,如果有,就把数据包放入与它有相同socket对的链中,放入链表的时,先查找的顺序号在链表中的适当位置,然后放入;如果没有,则在链表中新创建一个该类型的链表头节点,然后再将其放入新创建的链表中;

(2)每当在表中放入一个tcp数据段后,就检查链表中的数据段是否已经到齐了,若到齐,就将个链表中所有数据段的数据部分拼接到一起,得到应用层报文,然后释放该链表,然后重复1-2步骤;若没到齐,直接重复1-2步骤;

交换DMA映射,而不是在输入/输出缓冲区之间拷贝数据,不在DMA情况拷贝内存,正确的做法是DMA重映射,交换指针,每线程负责一块网卡,输入和输出由不同的线程负责会更好,保持一个预分配可循环利用的缓冲区,映射DMA利用多队列网卡支持中断CPU亲和力利用或者模拟软多队列提高并行性;

解码模块:解码模块采用多线程模式,对数据包进行解码,从数据队列中取得数据进行解码,主要是对数据包头部信息进行分析并保存在包结构中;数据包头部信息除通讯双方基本信息外还包含持有PKI证书信息的节点卡、用户卡信息、防重放信息、防篡改信息,业务数据采用BASE91编码解码算法,对不合法数据转发到异常数据队列中,由异常处理线程模块进行处理;解码正确的数据包存放到业务检测队列中,由检测模块负责检测处理;

检测模块:检测线程模块是转发调度系统的核心模块,检测模块数据包是否包含非法访问,入侵行为,检测基于时间触发,当业务数据包到达检测队列时,开始记录触发时间,保存时间戳,检测模块采用并行监测方式对业务白名单进行遍历检测,白名单存储的是所有业务数据的特征码摘要信息,白名单信息采用TRIE数(字典数)存储,在该trie树中,字符串in,inn和int的公共前缀是“in”,因此可以只存储一份“in”以节省空间;当然,如果系统中存在大量字符串且这些字符串基本没有公共前缀,则相应的trie树将非常消耗内存,这也是trie树的一个缺点;

判断线程模块:对检测后的数据包进行判定,并将判定结果告诉内核,方便内核对数据包进行接收、丢弃等处理;

响应模块:通过libnet对那些要执行Reject操作的数据包进行相应的回应;

接收队列模块,采用内存映射方式,直接操作操作系统内核空间,为IP分片代理提供网络数据包;

发送队列模块,接收所述系统中其它模块的发送数据内存申请请求,并将直接映射到内核空间;

上述方法中,各协议彼此独立为协议代理,各协议代理间接口遵循标准协议接口规范;协议代理直接启用过滤规则处理协议包,过滤规则可以动态修改;协议栈运行在用户态下,上下层协议代理间强制身份认证。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1