[发明专利]一种基于HTTP协议的数据还原方法及系统在审
申请号: | 201611161161.4 | 申请日: | 2016-12-15 |
公开(公告)号: | CN106850547A | 公开(公告)日: | 2017-06-13 |
发明(设计)人: | 安洋;陈雪松;代启亮;栾明君 | 申请(专利权)人: | 华北计算技术研究所(中国电子科技集团公司第十五研究所) |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L29/08 |
代理公司: | 北京君恒知识产权代理事务所(普通合伙)11466 | 代理人: | 林潮,张效荣 |
地址: | 100083 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 http 协议 数据 还原 方法 系统 | ||
技术领域
本发明涉及网络数据监控技术领域,尤其涉及一种基于HTTP协议的数据还原方法及系统。
背景技术
随着网络的发展,上网已经成为人们生活中的一部分。人们几乎每天都要通过网络进行信息查询、在线聊天、线上购物、社交互动等活动。然而,在网络给人们的生活带来便利的同时,其也显露出了一些弊端。例如,基于网络应用的丰富性、用户群体的复杂性,经常有人利用网络传播一些影响人们身心健康或危及社会稳定、破坏公共安全的信息。因此,必须对网络数据进行监控,以杜绝这些有害信息的传播。
近年来,基于HTTP协议的Web应用在所有网络应用中所占的比例越来越高,因此对HTTP协议内容进行还原可以起到很好的网络数据监控的目的。一般来说,现有的数据还原方法大都是设计两个报文队列,一个存放正常到来的报文,另一个存放失序到来的报文。当TCP断开这个socket(套接字)的连接时,将正常报文队列和失序报文队列中的数据合并起来,以完成重组。具体重组方法是取出正常报文队列最后一个报文的序列号和TCP Segment Len(TCP报文段长度),在失序报文队列中查找属于它的后续报文。该方法虽能够实现报文重组,但是其在数据包重组效率和存储空间利用率上存在不足,不能很好的满足在大网络流量背景下实时还原网络数据的需要。
针对现有数据还原方法存在的缺陷,亟需一种能够提高数据包重组效率、提高内存空间利用率的基于HTTP协议的数据还原方法及系统,以满足高速、大流量网络环境下的数据还原需求。
发明内容
本发明的目的在于提出一种新的基于HTTP协议的数据还原方法及系统,以提高数据包重组效率、提高内存空间利用率、满足高速、大流量网络环境下的数据还原需求。
本发明提供流了一种基于HTTP协议的数据还原方法,包括以下步骤:
S1、捕获网络中的数据包;
S2、从捕获的数据包中过滤出TCP协议数据包;
S3、计算所述TCP协议数据包的TCP会话哈希值、并将得出的TCP会话哈希值存至哈希表中;将TCP会话哈希值相同的数据包存储至二叉排序树中;对所述二叉排序树进行中序遍历得到重组后的TCP数据包;
S4、从重组后的TCP数据包中过滤出HTTP协议数据包;
S5、对所述HTTP协议数据包进行内容还原。
优选的,步骤S1包括:网卡初始化;数据包捕获程序初始化;网卡通过DMA方式将接收的数据包写入网卡驱动中的内存空间,数据包捕获程序将所述内存空间中的数据包映射至用户空间。
优选的,在步骤S3中,计算所述TCP协议数据包的TCP会话哈希值,包括:从TCP协议数据包中提取TCP会话连接四元组;对所述TCP会话连接四元组进行异或位移哈希运算,并将运算获取的TCP会话哈希值存至哈希表中。
优选的,所述TCP会话连接四元组包括:源IP地址、目的IP地址、源端口号、目的端口号。
优选的,步骤S5包括:解析所述HTTP协议数据包的头部,获取模板匹配所需的头部信息;将所述头部信息与模板库中各模板的对应信息进行匹配,找到与所述HTTP协议数据包相对应的模板结构体;根据模板结构体中的特征值对HTTP协议数据包进行内容提取。
优选的,所述模板匹配所需的头部信息为由请求类型Get/Post、Host、URL、Referer字段构成的四元组信息。
优选的,所述方法还包括:S6、将还原后的数据内容保存成bcp文件并输出。
本发明还提供了一种基于HTTP协议的数据还原系统,包括:
数据包捕获模块,用于捕获网络中的数据包;
第一过滤模块,用于从捕获的数据包中过滤出TCP协议数据包;
数据包重组模块,用于计算所述TCP协议数据包的TCP会话哈希值、并将得出的TCP会话哈希值存至哈希表中;将TCP会话哈希值相同的数据包存储至二叉排序树中;对所述二叉排序树进行中序遍历得到重组后的TCP数据包;
第二过滤模块,用于从重组后的TCP数据包中过滤出HTTP协议数据包;
数据还原模块,用于对所述HTTP协议数据包进行内容还原。
优选的,数据包捕获模块包括:初始化单元,用于对网卡、数据包捕获单元进行初始化;数据包捕获单元,用于将网卡驱动的内存空间中的数据包映射至用户空间;其中,所述网卡驱动的内存空间中的数据包是网卡通过DMA方式写入的。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华北计算技术研究所(中国电子科技集团公司第十五研究所),未经华北计算技术研究所(中国电子科技集团公司第十五研究所)许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611161161.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:半导体模块
- 下一篇:一种企业安全运营中心Bot
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置