发明名称 一种网络流量还原方法
摘要 本发明涉及的网络流量还原方法属于互联网技术领域,本发明公开了一种还原网络流量至文件的方法,该方法采用二级并行策略方法以充分挖掘多核计算机的处理效率:首先捕获高速流量,采用Mac地址异或和IP地址异或的方法进行两次分流,将捕获到的初始流量分解为多个细流量,实现流量的二级并行分解;然后在细流量还原流程中有数据传递的工作模块之间采用“生产者-消费者模型”松耦合的多线程架构实现在线程层次上的并行。另外该方法对每一细流量实现负载均衡,且同时支持IPv4和IPv6协议。本发明旨在解决在高速网络带宽下将“不可见”网络流量转换为计算机可直接处理的信息的问题,为识别和阻断不良非法的网络信息传播提供技术支持。
申请公布号 CN101795230B 申请公布日期 2012.05.23
申请号 CN201010112581.X 申请日期 2010.02.23
申请人 西安交通大学 发明人 郑庆华;倪华;陶敬
分类号 H04L12/56(2006.01)I;H04L29/12(2006.01)I;H04L29/06(2006.01)I;H04L12/24(2006.01)I 主分类号 H04L12/56(2006.01)I
代理机构 西安通大专利代理有限责任公司 61200 代理人 陆万寿
主权项 一种网络流量还原方法,其特征在于,按照如下步骤:该网络流量还原方法(1)通过流量捕获模块捕获原始网络流量并通过对MAC地址做哈希运算将原始流量分流成多个粗网络流量,与此同时通过流量分流模块将每一个粗网络流量再进一步分流,分流成多个细网络流量;所述步骤(1)是:流量捕获模块根据服务器计算核心数目设置粗网络流量数目m,相应地设置粗网络流量编号依次为:0、1、……、m‑1;包括以下步骤:(1‑1)、该模块从高速网络中抓取原始数据包;(1‑2)、对抓取到的数据包进行协议过滤,只保留IPv4和IPv6数据包;(1‑3)、对每一个IP数据包提取源MAC地址SMAC和目的MAC地址DMAC两个字段值;(1‑4)、将SMAC和DMAC做异或运算后的结果对m取余,得到的结果即为该IP数据包将被分流到的粗网络流量编号,然后将该IP数据包分流到具有该编号的粗网络流量;流量分流模块对每一粗网络流量均进行流量分流,并根据粗网络流量数目m,设置每一粗网络流量分成的细网络流量数目为n,细网络流量编号依次为:0、……、n‑1;对一个粗网络流量进行分流包括以下步骤:(2‑1)、从该粗网络流量中提取数据包;(2‑2)、对每一个IP数据包提取源IP地址SIP和目标的IP地址DIP两个字段值;(2‑3)、将源IP地址SIP和目标的IP地址DIP做异或运算并将结果对n取余,得到的结果即为该IP数据包将被分流到的细网络流量编号,然后将该IP数据包分流到具有相同编号的细网络流量;(2)对每一细网络流量的IP数据包采用TCP会话重组模块进行TCP会话重组得到TCP会话,同时更新相应会话的会话状态,会话状态转变为结束或超时时,该会话将被转存于待还原TCP会话队列;所述步骤(2)是:TCP会话重组模块以TCP会话的源IP地址SIP、目的IP地址DIP、源端口号和目的端口号组成的四元组为Key,并以上述四个参数经异或运算计算哈希值,分别创建对应于IPv4和对应于IPv6的TCP会话散列表;散列表的节点为一个TCP会话,一个TCP会话包含两个链表,分别存放该TCP会话源端发送的数据包和目的端发送的数据包,且每一个链表中的数据包都按TCP序列号和确认号重新排列;包括以下步骤:(3‑1)、TCP会话重组模块获取IP碎片重组模块处理后的IP数据包,提取其IP协议版本;判断其是否是TCP数据包,如果是,则转步骤(3‑2);否则转步骤(3‑1);(3‑2)、提取数据包中的四元组,通过哈希计算并在相应会话散列表中查找是否存在同一四元组的TCP会话,如果是,则取得该Key的TCP会话并转步骤(3‑3);否则转步骤(3‑4);(3‑3)、获取该数据包TCP包头中的FIN、RST、ACK、序列号、确认号、窗口大小字段值,然后把该数据包在步骤(3‑2)中查找到的TCP会话中利用上述获得的FIN、RST、ACK、序列号、确认号、窗口大小字段值进行重组排序操作,并且更新该TCP会话的状态,如果状态变为结束、重置或超时,则转步骤(3‑5),否则转步骤(3‑1);(3‑4)、由于在相应会话散列表中不存在同一Key的TCP会话,所以在该会话散列表中创建具有相应Key的散列表节点,转步骤(3‑1);(3‑5)、将TCP会话从与其对应的会话散列表中取出并转移到待处理的TCP会话队列中;(3‑6)、在TCP重组的过程中启动一个定时器,每隔5秒或者自行设定的时间去扫描分别对应于IPv4和IPv6的两个TCP会话散列表,以清除超过10秒或者自行设定的时间内没有更新的TCP会话,并将被清除的会话转移至待处理的TCP会话队列中;(3)采用智能解析还原模块按序提取待还原TCP会话队列中的会话,通过协议解析、解码和解压缩操作把该会话还原到应用层文件,将该应用层文件信息与对应会话信息提交至数据库,同时智能解析还原模块自动化地实现该细网络流量的负载均衡;所述步骤(3)是:(4‑1)、计算该细网络流量的负载指数L,并将该指数与给定的负载阈值比较:如果L大于负载阈值,则该细网络流量负载状态为重载,转(4‑2);如果I小于等于负载阈值,则该细网络流量负载状态为轻载,转(4‑3);(4‑2)、从TCP会话重组模块生成的待处理TCP会话队列中顺序提取TCP会话,然后将该会话完整保存于会话缓存文件中,同时将缓存会话数加一,转(4‑1);(4‑3)、判断缓存会话数是否为零,如果是,转(4‑4);否则,转(4‑5);(4‑4)、从TCP会话重组模块生成的待处理TCP会话队列中顺序提取TCP会话,并智能分析该会话对应的时间、应用层协议、会话数据大小,然后将该会话递交给相应应用层协议处理模块,进行解析、解码、解压缩以完成还原处理,转(4‑6);(4‑5)、从会话缓存文件中顺序提取系统处于重载状态时缓存的会话,并将缓存会话数减一,然后智能分析该会话对应的应用层协议、会话数据大小,并根据会话信息将该会话递交给相应的应用层协议解析还原模块,进行解析、解码、解压缩以完成还原处理,转(4‑6);(4‑6)、将还原后的文件后缀名与常规文件后缀名库进行匹配,如果该后缀名不属于常规后缀名库,则通过智能分析其对应会话信息、文件头信息和文件数据信息以确定该文件格式,然后给该文件添加正确的后缀名,最后存储还原生成的文件,同时将该文件的信息和对应会话信息提交至数据库,转(4‑1)。
地址 710049 陕西省西安市咸宁路28号