一种基于网络数据流的http内容还原方法及系统的制作方法

文档序号:9730297阅读:1341来源:国知局
一种基于网络数据流的http内容还原方法及系统的制作方法
【技术领域】
[0001]本发明涉及网络管理技术,尤其是一种基于网络数据流的HTTP内容还原技术。
【背景技术】
[0002]在网络管理中,有时需要对上网用户访问的内容进行监控,具体做法是在客户端及服务端接入监测点,复制两者来往的数据流,从数据流中还原HTTP内容,达到监视上网内容的目的。
[0003]现有的技术方案包括的步骤有:抓取实时网络数据流;过滤HTTP协议的数据流;重组HTTP会话;搜索传输html的HTTP会话,并根据HTTP协议头解码二进制数据,然后保存数据为html文件;用浏览器打开html文件。
[0004]现有的技术方案存在这样的缺陷:
1.由于访问一个网站可能涉及到多个HTTP会话和多个TCP会话,如果只针对一个主要的传输html的HTTP会话进行内容还原,其还原出来的数据准确性差,或者还原出来的网页只有基础的文字信息。
[0005]2.由于是进行实时抓包,实时还原,设置超时时长便成为一个问题。超时时长设置长了,系统的性能会下降,系统需要更多的缓存来缓存数据;设置超时时长短了,会导致数据还原失败,或者还原出来的内容丢失部分数据。

【发明内容】

[0006]本发明的目的在于提供一种更准确、全面还原指定时间内指定客户端IP地址访问的HTTP内容的技术。
[0007]本发明提供的基于网络数据流的HTTP内容还原方法,包括数据包采集步骤及HTTP内容还原步骤;其中,
数据包采集步骤包括:
步骤al:找到某局域网的出口交换机,复制出口交换机的IPv4数据包到缓存区;
步骤a2:将缓存区中的IPv4数据包分流到不同的IP会话中;
步骤a3:将分类结果及数据包存储到磁盘;
HTTP内容还原步骤包括:
步骤bl:接收用户通过控制台指定的时间范围及至少一个IP地址;
步骤b2:从所述磁盘中读取在指定时间范围内及指定IP地址的数据包;
步骤b3:识别出其中属于TCP会话的数据包;
步骤b4:对TCP会话的数据包进行重组,恢复各个数据包之间的正常顺序;
步骤b5:识别出重组后的TCP会话数据包属于HTTP会话的数据包;
步骤b6:将每条HTTP会话进行数据还原;
步骤b7:在还原得到的数据中区分出主HTML数据、子HTML数据及资源数据;并查找到各个主HTML数据关联的子HTML数据及资源数据;将还原得到的数据及其之间的关联关系发送给控制台。
[0008]进一步,所述数据包采集步骤及HTTP内容还原步骤在服务器上执行;所述控制台与服务器具有信号连接,所述控制台用于接收用户输入的所述时间范围及所述IP地址,向服务器发送HTTP数据还原请求以及接收并显示服务器返回的还原数据及各数据之间的关联关系。
[0009]所述步骤b4进一步包括将属于同一TCP会话中的数据包依据数据包的类型、发送序号及接收序号排序;
其中,数据包的类型包括客户端发送的数据包及服务器返回的数据包;
排序后的数据包至少满足这样的规则:排序在前的客户端发送的数据包的发送序号小于或等于排序在其后的服务器返回的数据包的接收序号。
[0010]本发明还提供了一种基于网络数据流的HTTP内容还原系统,包括数据包采集模块及HTTP内容还原模块;其中,
数据包采集模块包括:
复制子模块,用于找到某局域网的出口交换机,复制出口交换机的IPv4数据包到缓存区;
分流子模块,将缓存区中的IPv4数据包分流到不同的IP会话中;
存储子模块,用于将分类结果及数据包存储到磁盘;
HTTP内容还原模块包括:
还原参数接收子模块,用于接收用户通过控制台指定的时间范围及至少一个IP地址; 读取子模块,用于从所述磁盘中读取在指定时间范围内及指定IP地址的数据包;
TCP会话识别子模块,用于识别出其中属于TCP会话的数据包;
TCP会话重组子模块,用于对TCP会话的数据包进行重组,恢复各个数据包之间的正常顺序;
HTTP会话识别子模块,用于识别出重组后的TCP会话数据包属于HTTP会话的数据包; HTTP会话还原子模块,用于将每条HTTP会话进行数据还原;
关联子模块,用于在还原得到的数据中区分出主HTML数据、子HTML数据及资源数据;并查找到各个主HTML数据关联的子HTML数据及资源数据;将还原得到的数据及其之间的关联关系发送给控制台。
[0011]进一步,还包括交互模块,用于接收用户输入的所述时间范围及所述IP地址,向服务器发送HTTP数据还原请求以及接收并显示服务器返回的还原数据及各数据之间的关联关系。
[0012]所述TCP会话重组子模块进一步用于将属于同一TCP会话中的数据包依据数据包的类型、发送序号及接收序号排序;
其中,数据包的类型包括客户端发送的数据包及服务器返回的数据包;
排序后的数据包至少满足这样的规则:排序在前的客户端发送的数据包的发送序号小于或等于排序在其后的服务器返回的数据包的接收序号。
[0013]综上所述,由于采用了上述技术方案,本发明的有益效果是:
本发明采用全流量存储、对每个HTTP会话进行逐一还原并将还原数据得到的主HTML数据、子HTML数据及资源数据进行关联,因此还原的准确性非常高;控制台完成交互工作,接收用户指定的还原参数、显示还原结果,其可视化展示使得结果一目了然;在进行HTTP数据还原时,可采用多任务模式处理,使得还原效率也比较高。
【附图说明】
[0014]本发明将通过例子并参照附图的方式说明,其中:
图1为本发明方法中数据包抓取步骤的流程图。
[0015]图2为本发明方法中HTTP内容还原步骤的流程图。
[0016]图3为本发明一个具体实施例中控制器与还原服务器的连接关系示意图。
【具体实施方式】
[0017]本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
[0018]本说明书中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
[0019]本发明提供的基于网络数据流的HTTP内容还原方法,包括数据包采集步骤及HTTP内容还原步骤。
[0020]参见图1,数据包采集步骤包括:
步骤al: 一般来说,HTTP内容访问监控是对局域网内的客户端计算机进行的,局域网中各个计算机与互联网服务器(提供浏览内容的,与本发明中的还原服务器相区别)之间的信息交互均要通过局域网的出口交换器,因此需要找到该局域网的出口交换机,复制出口交换机的IPv4数据包到缓存区。
[0021]更具体的,从预先准备好的内存缓存队列中取出一块可用的数据包缓存区,判断该数据包是否是IPv4数据包,如是则将数据包存入该缓存区,并将该缓存标记为当前缓存区,若不是则丢弃。新的IPv4数据包到来时继续存入当前缓存区,如果当前缓存空间不够,则从缓存队列中取出新的缓存区存储数据包,并将新的缓存区标记为当前缓存;已存满的缓存区数据包存入处理队列,等待分析线程处理。
[0022]步骤a2:分析线程逐一查看数据包,根据数据包内容将其分到不同的IP会话中; 步骤a3:将分类结果,即各数据包所属的IP会话,及数据包存储到磁盘。
[0023]HTTP内容还原步骤包括:
步骤bl:接收用户通过控制台指定的时间范围及至少一个IP地址以便得到指定时间范围内,指定IP地址的主机接收或发出的数据包;在其他实施例中用户可以指定一个IP地址的范围,对多个主机进行监管。
[0024]步骤b2:从所述磁盘中读取在指定时间范围内及指定IP地址的数据包。
[0025]步骤b3:识别出其中属于TCP会话的数据包;在数据包中某些字段用于标识该数据包所属的会话,据此可以识别出属于TCP会话的数据包。
[0026]步骤b4:对TCP会话的数据包进行重组,恢复各个数据包之间的正常顺序。由于网络环境的复杂性,原始的TCP会话可能存在重传和乱序,重组是为了解决重传和乱序问题,以便于后续更准确的内容还原。
[
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1