CN102307151A - 基于http的网络数据包还原方法 - Google Patents

基于http的网络数据包还原方法 Download PDF

Info

Publication number
CN102307151A
CN102307151A CN201110303996A CN201110303996A CN102307151A CN 102307151 A CN102307151 A CN 102307151A CN 201110303996 A CN201110303996 A CN 201110303996A CN 201110303996 A CN201110303996 A CN 201110303996A CN 102307151 A CN102307151 A CN 102307151A
Authority
CN
China
Prior art keywords
message
data
seq2
length
sequence number
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201110303996A
Other languages
English (en)
Other versions
CN102307151B (zh
Inventor
张水华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hebi Ximo Communication Technology Co ltd
Original Assignee
Ximo Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ximo Inc filed Critical Ximo Inc
Priority to CN201110303996.XA priority Critical patent/CN102307151B/zh
Publication of CN102307151A publication Critical patent/CN102307151A/zh
Application granted granted Critical
Publication of CN102307151B publication Critical patent/CN102307151B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种网络应用协议分析方法。在TCP会话数据流重组算法的基础上,根据网络应用协议及其内容的相关特点进行分析设计,“因材施教”的提出了一种基于http的网络数据包还原方法。在基本的网络数据包还原算法的基础上,对http协议中post方法提交的数据,添加通过Content-Length的值判断数据是否发送完,精简了基于http的网络数据包编译前的准备工作,有效的解决了在大流量环境下对内容进行分析的瓶颈,提高了万维网应用中对提交数据部分分析的高效性与准确率。使用本算法可以在不考虑tcp应答报文的情况下完成http数据的还原。大大简化网络数据流的重组和还原流程,从而有效降低系统负荷,加快数据处理速度。

Description

基于http的网络数据包还原方法
技术领域
本发明涉及一种网络应用协议分析方法,特别是涉及一种基于http的网络数据包还原方法。
背景技术
随着计算机网络的发展,网络应用也在不断的增多,尤其是万维网的应用,已占因特网通信量的90%,万维网信息的安全问题已经越来越被人们所重视,而作为万维网应用层核心协议的http协议是基础。当在网络上传送色情、暴力和迷信等不良信息时,将影响人们的身心健康和社会的团结,对这些危害信息和不良信息在应用层的还原可以很明确的知道该信息传送的信息,对阻拦和监控具有很直观的效果,可以帮助网络管理人员较好的监视网络。现有的基于http的网络数据包还原算法,在对网络包数据进行解析时,并不对内容是否雷同进行区分,因而识别效率低,占用资源较大,因而不能很好的适应在大流量环境下对内容进行分析,重组和还原。
发明内容
本发明针对现有技术不足,提出一种基于http的网络数据包还原方法,解决了在大流量环境下对内容进行分析的瓶颈,提高了对万维网应用协议分析的高效性与准确率。
本发明所采用的技术方案:
一种基于http的网络数据包还原方法,在TCP会话数据流重组算法的基础上,对http协议中post方法提交的数据,添加通过Content-Length的值判断数据是否发送完,对基于http的网络数据包编译前的准备工作通过下述步骤实现:
对于获取的网络数据包的一个报文数据段,设该报文数据段第一字节的序号数据报长度
  seq1=x   len1=a
其中,x、a为自然数,则对于下一个来到的报文数据段可能出现的情况,依次分析如下:
1)正常报文
  Seq2=y   Len2=b
y=x+a,其中y、b为自然数,
由此报文的seq可知,这个报文携带数据序号y~(y+b-1),正是上一个报文的预期后续报文,将此报文追加到正常报文队列;
2)完全重复报文
  Seq2=y1   Len2=b1
y1==y并且b1==b;
该报文携带数据序号y1~(y1+b1-1),与上一个报文携带的数据序号y~(y+b-1)完全一样,即这两个报文完全重复,则丢弃该报文;
3)重复子报文
  Seq2=y2   Len2=b2
y2==x而且b2<a
这个报文携带数据序号y2~(y2+b2-1),说明这是上一个报文的一部分,所以应该丢弃这个报文;
前述两种情况可以合并,即seq2==seq1而且len2<=len1,这里分别列出只是为了说明各种不同情况;对于部分重复报文情况,又包括下列情况:
4)部分重复报文情况一
  Seq2=y3   Len2=b3
Y3>x且y3<y2且b3<=x+a
即:seq2>seq1而且seq2<seq1+len1而且seq2+len2<=seq1+len1
即这个报文携带序号y3~(y3+b3-1),这个序号段被包含在上一个报文段中(x~x+a-1),所以应该丢弃这个报文;
5)部分重复报文情况二
  Seq2=y4   Len2=b4
y4>x且y4<x+a且y4+b4>x+a
即:seq2>seq1而且seq2<seq1+len1而且seq2+len2>seq1+len1即这个报文携带序号y4~(y4+b4-1),这个序号段前一部分y4~x+a-1被包含在上一个报文段(x~x+a-1)中,后一部分x+a~y4+b4-1是新的数据,此时应该对这个报文作如下处理:
A.计算重复字节数
(seq1+len1)-Seq2=x+a-y4
即这个报文段前(x+a-y4)个字节是重复的;
B.截取报文段新数据
丢弃这个报文段的前x+a-y4字节,截取后面的新数据,即只保留字节序号段x+a~y4+b4-1;
C.重新设置这个报文段的序列号
seq2=seq2+(x+a-y4)
即:seq2=x+a
D.重新设置这个报文段的数据长度
len2=len2-(x+a-y4)=b4-x-a+y4
E.重新设置后报文段如下
  Seq2=x+a   Len2=b4+y4-x-a
即现在这个报文段携带数据序号x+a~y4+b4-1,正好是上一个报文的后续报文,现在可以将其作为正常报文追加到正常报文队列;
6)对于提前到达的报文
  Seq2=n   Len2=p
n>x+a
即:seq2>seq1+len1
这个报文数据段携带序号n~n+p-1的数据,即不是上一个报文x~x+a-1的后续报文,而是提前到来的报文,此时则将这个报文放置到失序报文队列存储起来,以备后续重组使用;
重复上述步骤,直到得到携带tcp连接断开标志位FIN为1的报文,此时将正常报文队列和失序报文队列中的数据合并起来,完成报文数据重组。
所述的基于http的网络数据包还原方法,分析出http协议使用post方法时协议头部中记录消息主体长度的值,然后按照步骤1接收重组数据包,并在接受重组的过程中,累计记录数据包的有效数据长度,其中有效数据长度即不包含tcp/ip协议头的长度,当累计的数据包的长度等于协议头部中指定的长度时,即post提交的数据已经完成;这时不用再继续等到携带tcp连接断开标志位FIN为1的报文到达,即可以分析提交的报文数据。
本发明的有益积极效果:
1、本发明根据网络应用协议及其内容的相关特点进行分析设计,“因材施教”的提出了改进基于http的网络数据包还原的方法。在基本的网络数据包还原算法的基础上,对http协议中post方法提交的数据,通过添加Content-Length的值判断数据是否发送完,精简了基于http的网络数据包编译前的准备工作。有效的解决了在大流量环境下对内容进行分析的瓶颈,提高了万维网应用中对提交数据部分分析的高效性与准确率。
2、本发明根据上网行为审计的实际需求出发,关注的是本地网络通过http协议post方法向外部服务器提交的数据。所以仅分析处理本地网络到服务器单向的tcp报文,使用本算法可以在不考虑tcp应答报文的情况下完成http数据的还原。大大简化网络数据流的重组和还原流程,从而有效降低系统负荷,加快数据处理速度。显著改善了传统算法造成的网络延迟现象。
具体实施方式
实施例:对通过http协议post方法传输的一条完整信息的还原。通过对http协议post方法的分析得到传输信息的有效总长度content-length=1400byte。设已获得报文的总长度为length。
1、获得到seq1=1,len1=100的报文packet1。将packet1放入正常报文队列。length=length+len1=100。length<content-length,数据为未传输完成。
2、获得到seq2=101,len2=150的报文packet2。判断seq2==seq1+len1,packet2正是packet1的预期后续报文。将packet2放入正常报文队列。length=l ength+len2=250。length<content-length,数据为未传输完成。
3、获得到seq3=200,len3=40的报文packet3。判断seq2<seq3<seq2+len2-1,packet3的数据段与正常报文队列的数据段200~239重复。不对此报文进行处理。
4、获得到seq4=210,len4=41的报文packet4。判断seq2<seq4=seq2+len2-1,packet3的数据段与正常报文队列的数据段210~250重复。不对此报文进行处理。
5、获得到seq5=251,len5=200的报文packet5。判断seq5==seq2+len2,packet5正是packet2的预期后续报文。将packet5放入正常报文队列。length=length+len5=450。length<content-length,数据为未传输完成。
6、获得到seq6=251,len6=200的报文packet6。判断seq6==seq5且len6==len5,packet6的数据段与正常报文队列的数据段251~450重复。不对此报文进行处理。
7、获得到seq7=451,len7=150的报文packet7。判断seq7==seq5+len5,packet2正是packet 1的预期后续报文。将packet7放入正常报文队列。length=length+len7=600。length<content-length,数据为未传输完成。
8、获得到seq8=501,len8=300的报文packet8。判断seq7<seq8<seq7+len7,计算重复数据长度repeat-len=seq7+len7-seq8=100,得到有效长度valid-len=200。截取packet8数据段结尾200byte数据并将seq8设置为valid-seq8=seq7+len7=601,将处理好的packet8放入正常报文队列。length=length+valid-len=800。length<content-length,数据为未传输完成。
9、获得到seq9=801,len9=100的报文packet9。判断seq9==valid-seq8+valid-len,packet9正是处理过的packet8的预期后续报文。将packet9放入正常报文队列。length=length+len9=900。length<content-length,数据为未传输完成。
10、获得到seq10=1201,len10=100的报文packet10。判断seq10>seq9+len10,说明packet10是提前到达的报文。将packet10暂时存储,等待其前的报文到达。
11、获得到seq11=901,len11=100的报文packet11。判断seq11==seq9+len9且seq11+len11<seq10,packet 11正是packet9的预期后续报文。将packet11放入正常报文队列。length=length+len11=1000。length<content-length,数据为未传输完成。
12、获得到seq12=1001,len12=100的报文packet12。判断seq12==seq11+len11且seq12<seq10,seq12+len12<seq10+len10。packet12正是packet 11的预期后续报文并且它的数据段在packet 10的数据段之前。将packet12放入正常报文队列。length=length+len12=1100。length<content-length,数据为未传输完成。
13、获得到seq13=1101,len13=100的报文packet13。判断seq13==seq12+len12且seq13+len13==seq10。packet13正是packet12的预期后续报文段并且是packet10的前续报文段。将packet12放入正常报文队列,然后将packet10也放入正常报文队列。length=length+len12+len10=1300。length<content-length,数据为未传输完成。
14、获得到seq14=1301,len14=100的报文packet14。判断seq14==seq10+len10,packet2正是packet10的预期后续报文。将packet14放入正常报文序列。length=length+len14=1400。length==content-length,数据传输完成。
15、对正常报文队列的数据进行重组还原。

Claims (2)

1.一种基于http的网络数据包还原方法,其特征是:在TCP会话数据流重组算法的基础上,对http协议中post方法提交的数据,通过添加Content-Length的值判断数据是否发送完,即通过下述步骤实现网络数据包编译前的准备工作:
对于获取的网络数据包的一个报文数据段,设该报文数据段第一字节的序号数据报长度
  seq1=x   len1=a
其中,x、a为自然数,则对于下一个来到的报文数据段可能出现的情况,依次分析如下:
1)正常报文
  Seq2=y   Len2=b
y=x+a,其中y、b为自然数,
由此报文的seq可知,这个报文携带数据序号y~(y+b-1),正是上一个报文的预期后续报文,将此报文追加到正常报文队列;
2)完全重复报文
  Seq2=y1   Len2=b1
y1==y并且b1==b;
该报文携带数据序号y1~(y1+b1-1),与上一个报文携带的数据序号y~(y+b-1)完全一样,即这两个报文完全重复,则丢弃该报文;
3)重复子报文
  Seq2=y2   Len2=b2
y2==x而且b2<a
这个报文携带数据序号y2~(y2+b2-1),是上一个报文的一部分,丢弃这个报文;
4)部分重复报文情况一
  Seq2=y3   Len2=b3
Y3>x且y3<y2且b3<=x+a
即:seq2>seq1而且seq2<seq1+len1而且seq2+len2<=seq1+len1
即这个报文携带序号y3~(y3+b3-1),这个序号段被包含在上一个报文段中(x~x+a-1),所以应该丢弃这个报文;
5)部分重复报文情况二
  Seq2=y4   Len2=b4
y4>x且y4<x+a且y4+b4>x+a即:seq2>seq1而且seq2<seq1+len1而且seq2+len2>seq1+len1即这个报文携带序号y4~(y4+b4-1),这个序号段前一部分y4~x+a-1被包含在上一个报文段(x~x+a-1)中,后一部分x+a~y4+b4-1是新的数据,此时应该对这个报文作如下处理:
A.计算重复字节数
(seq1+len1)-Seq2=x+a-y4
即这个报文段前(x+a-y4)个字节是重复的;
B.截取报文段新数据
丢弃这个报文段的前x+a-y4字节,截取后面的新数据,即只保留字节序号段x+a~y4+b4-1;
C.重新设置这个报文段的序列号
seq2=seq2+(x+a-y4)
即:seq2=x+a
D.重新设置这个报文段的数据长度
len2=len2-(x+a-y4)=b4-x-a+y4
E.重新设置后报文段如下
  Seq2=x+a   Len2=b4+y4-x-a
即现在这个报文段携带数据序号x+a~y4+b4-1,正好是上一个报文的后续报文,现在可以将其作为正常报文追加到正常报文队列;
6)对于提前到达的报文
  Seq2=n   Len2=p
n>x+a
即:seq2>seq1+len1
这个报文数据段携带序号n~n+p-1的数据,即不是上一个报文x~x+a-1的后续报文,而是提前到来的报文,此时则将这个报文放置到失序报文队列存储起来,以备后续重组使用;
重复上述步骤,直到tcp断开这个socket的链接,此时将正常报文队列和失序报文队列中的数据合并起来,完成报文数据重组。
2.根据权利要求1所述的基于http的网络数据包还原方法,其特征是:分析出http协议使用post方法时协议头部中记录消息主体长度的值,然后按照步骤1接收重组数据包,并在接受重组的过程中,累计记录数据包的有效数据长度,其中有效数据长度即不包含tcp/ip协议头的长度,当累计的数据包的长度等于协议头部中指定的长度时,即post提交的数据已经完成,即可以分析提交的报文数据。
CN201110303996.XA 2011-10-10 2011-10-10 基于http的网络数据包还原方法 Expired - Fee Related CN102307151B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110303996.XA CN102307151B (zh) 2011-10-10 2011-10-10 基于http的网络数据包还原方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110303996.XA CN102307151B (zh) 2011-10-10 2011-10-10 基于http的网络数据包还原方法

Publications (2)

Publication Number Publication Date
CN102307151A true CN102307151A (zh) 2012-01-04
CN102307151B CN102307151B (zh) 2014-04-02

Family

ID=45380963

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110303996.XA Expired - Fee Related CN102307151B (zh) 2011-10-10 2011-10-10 基于http的网络数据包还原方法

Country Status (1)

Country Link
CN (1) CN102307151B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103929445A (zh) * 2013-01-11 2014-07-16 中国科学院声学研究所 一种在线解析HTTP chunked编码数据的方法
WO2014110754A1 (zh) * 2013-01-17 2014-07-24 华为技术有限公司 传输http报文的方法、编码装置和解码装置
CN105099909A (zh) * 2015-07-02 2015-11-25 亚信科技(南京)有限公司 一种流量还原方法及装置
CN106911644A (zh) * 2015-12-23 2017-06-30 中国移动通信集团广西有限公司 一种报文重组方法和设备
CN108134751A (zh) * 2017-12-12 2018-06-08 杭州迪普科技股份有限公司 一种tcp分段报文待检测文本重组方法及装置
CN110839060A (zh) * 2019-10-16 2020-02-25 武汉绿色网络信息服务有限责任公司 一种DPI场景中http多会话的文件还原方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1997030A (zh) * 2006-12-13 2007-07-11 武汉虹旭信息技术有限责任公司 用于http数据还原的方法
CN101645756A (zh) * 2009-09-04 2010-02-10 深圳英飞拓科技股份有限公司 以太网降速传输系统及方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1997030A (zh) * 2006-12-13 2007-07-11 武汉虹旭信息技术有限责任公司 用于http数据还原的方法
CN101645756A (zh) * 2009-09-04 2010-02-10 深圳英飞拓科技股份有限公司 以太网降速传输系统及方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103929445A (zh) * 2013-01-11 2014-07-16 中国科学院声学研究所 一种在线解析HTTP chunked编码数据的方法
CN103929445B (zh) * 2013-01-11 2017-06-13 中国科学院声学研究所 一种在线解析HTTP chunked编码数据的方法
WO2014110754A1 (zh) * 2013-01-17 2014-07-24 华为技术有限公司 传输http报文的方法、编码装置和解码装置
CN105099909A (zh) * 2015-07-02 2015-11-25 亚信科技(南京)有限公司 一种流量还原方法及装置
CN105099909B (zh) * 2015-07-02 2018-10-26 成都亚信网络安全产业技术研究院有限公司 一种流量还原方法及装置
CN106911644A (zh) * 2015-12-23 2017-06-30 中国移动通信集团广西有限公司 一种报文重组方法和设备
CN108134751A (zh) * 2017-12-12 2018-06-08 杭州迪普科技股份有限公司 一种tcp分段报文待检测文本重组方法及装置
CN110839060A (zh) * 2019-10-16 2020-02-25 武汉绿色网络信息服务有限责任公司 一种DPI场景中http多会话的文件还原方法和装置
CN110839060B (zh) * 2019-10-16 2022-02-01 武汉绿色网络信息服务有限责任公司 一种DPI场景中http多会话的文件还原方法和装置

Also Published As

Publication number Publication date
CN102307151B (zh) 2014-04-02

Similar Documents

Publication Publication Date Title
CN102307151B (zh) 基于http的网络数据包还原方法
Song et al. Smart collaborative automation for receive buffer control in multipath industrial networks
JP5645269B2 (ja) ネットワークシステム
US20140160961A1 (en) Dynamic balancing of a traffic mix for data center device testing
CN108882008B (zh) 一种数据转换的方法和设备
CN101795230A (zh) 一种网络流量还原方法
CN101605092A (zh) 一种基于内容的负载均衡系统
CN101656677A (zh) 一种报文分流处理方法及装置
CN106341330A (zh) 一种sdn控制器的拓扑发现方法及系统
CN106105164A (zh) 代理拦截
CN106302228B (zh) 一种数据中心网络中基于任务感知的传输控制方法
CN104753732A (zh) 一种基于分布式的网络流量分析系统及方法
CN108965367A (zh) 一种控制视联网服务器的方法和系统
JP5229028B2 (ja) システム分析方法、装置及びプログラム
WO2013183649A1 (ja) 通信装置、通信システム、通信方法及びプログラム
CN104184679B (zh) 一种智能变电站中报文的调度方法和装置
CN109600318A (zh) 一种监控sdn中应用程序的方法及sdn控制器
CN109302642A (zh) 数据采集方法和装置
CN109150665A (zh) 一种带宽测试方法和装置
CN108566390B (zh) 一种卫星消息监听与分发服务系统
CN102724119B (zh) 一种网络负载均衡设备或分流设备规则同步方法
CN101621532A (zh) 一种使用线程池实现超文本传输协议应用的方法
Tang et al. Elephant Flow Detection Mechanism in SDN‐Based Data Center Networks
CN103281287A (zh) 基于udp协议的风力发电机组通信方法及系统
CN110460644A (zh) 一种数据处理方法和流媒体服务器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: HEBI XIMO COMMUNICATIONS TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: XIMO INC.

Effective date: 20150520

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 201100 JIADING, SHANGHAI TO: 458030 HEBI, HENAN PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20150520

Address after: Qibin District of Hebi city Henan province 458030 Hing Crane Street and Yanhe Road intersection branch building room 509

Patentee after: HEBI XIMO COMMUNICATION TECHNOLOGY CO.,LTD.

Address before: 201100 Shanghai city Jiading District Liu Xiang Road No. 3135 Building 1 room 319

Patentee before: Shanghai Simer Communication Technology Co.,Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140402

Termination date: 20181010