System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于二层网络的HTTP报文重放方法及系统技术方案_技高网

一种基于二层网络的HTTP报文重放方法及系统技术方案

技术编号:41270113 阅读:3 留言:0更新日期:2024-05-11 09:24
本申请涉及一种基于二层网络的HTTP报文重放方法及系统,属于报文重放技术领域,重放方法包括获取所有流经网卡的TCP数据包;对每个TCP数据包进行解析,得到头部信息和负载信息,根据头部信息对负载信息进行分组,将每组负载信息和对应的头部信息组合得到完整的TCP会话;响应于TCP会话中的负载信息是HTTP报文,根据头部信息生成HTTP报文的id信息和标识位;分别对每个id信息、标识位和对应的HTTP报文进行封装,得到封装数据包;响应于封装数据包中包含响应报文,匹配封装数据包中相对应的请求报文,根据匹配的请求报文和对应的id信息构建重放请求,并基于重放请求,返回与重放请求id信息相同的响应报文。本申请具有实现对HTTP报文的重放的效果。

【技术实现步骤摘要】

本专利技术涉及报文重放,尤其是涉及一种基于二层网络的http报文重放方法及系统。


技术介绍

1、二层网络是在tcp会话中的数据链路层网络,负责将网络层的数据包封装成适合在物理网络上传输的tcp数据包,并负责帧的发送和接收。这些tcp数据包通常在局域网或广域网中传输,包含了tcp/ip协议族中的数据包。

2、目前,对于在二层网络中传输的http报文,http报文的请求和响应通常被拆分成多个tcp数据包在网络中传输,因此在二层网络流量中,tcp数据包可能被重新排序或重组,使得原始的http请求和响应无法直接从二层网络的流量中获取,从而无法实现http报文的还原及重放,进而不便对应用层的使用场景进行还原分析。如何实现对http报文的重放是目前亟待解决的问题。


技术实现思路

1、为了实现对http报文的重放,本申请提供了一种基于二层网络的http报文重放方法及系统。

2、第一方面,本申请提供的一种基于二层网络的http报文重放方法,采用如下的技术方案:

3、一种基于二层网络的http报文重放方法,包括:

4、获取所有流经网卡的tcp数据包;

5、对每个tcp数据包进行解析,得到头部信息和负载信息,根据头部信息对负载信息进行分组,将每组负载信息和对应的头部信息组合得到完整的tcp会话;

6、响应于tcp会话中的负载信息是http报文,根据头部信息生成http报文的id信息和标识位;其中,所述标识位用于标识http报文的类型,所述类型包括请求报文和响应报文;

7、分别对每个id信息、标识位和对应的http报文进行封装,得到封装数据包;

8、响应于封装数据包中包含响应报文,匹配封装数据包中相对应的请求报文,根据匹配的请求报文和对应的id信息构建重放请求,并基于重放请求,返回与重放请求id信息相同的响应报文。

9、通过采用上述技术方案,首先获取流经网卡的所有tcp数据包,对获取的tcp数据包进行解析和分组,然后对每组的头部信息和负载信息重组得到完整的tcp会话,以从乱序的tcp数据包中还原出应用层的数据传输情况;再针对tcp会话中负载信息为http报文,根据头部信息生成http报文的id信息和标识位;并将id信息、标识位和对应的http报文封装成封装数据包,每当封装数据包包含响应报文,则立即匹配与响应报文id相同的请求报文,并基于该请求报文进行重放请求的构建,以返回id相同的响应报文。通过构建重放请求并返回id相同的响应报文,实现了请求报文与响应报文的关联,从而实现了对http报文的重放。可选的,所述获取所有流经网卡的tcp数据包之后,还包括:

10、根据tcp数据包的目标端口和源端口,对tcp数据包进行过滤。

11、通过采用上述技术方案,由于应用层数据传输通常遵循http协议,所以根据tcp数据包的目标端口和源端口设置符合http协议特征的过滤参数,对tcp数据包进行过滤,以便将不符合http协议特征的tcp数据包滤除,减少后续tcp数据包的处理量。

12、可选的,所述对每个tcp数据包进行解析,得到头部信息和负载信息,根据头部信息对负载信息进行分组,将每组负载信息和对应的头部信息组合得到完整的tcp会话,具体包括:

13、解析每个tcp数据包头部,得到头部信息,其中头部信息包括源端口、目标端口、序列号和确认号;

14、解析tcp数据包负载,得到负载信息;

15、将头部信息中源端口、目标端口和确认号相同的负载信息按序列号进行重新组装,得到完整的tcp会话。

16、通过采用上述技术方案,对tcp数据包的头部进行解析,得到头部信息,同时对tcp数据包的负载进行解析,得到负载信息;源端口、目标端口和确认号相同的说明对应tcp数据包属于同一个tcp会话,序列号表征了同一个tcp会话中tcp数据包的传输顺序,因此将头部信息中源端口、目标端口和确认号相同的负载信息按序列号进行重新组装,即能够实现将获取到的若干tcp数据包重组成完整的tcp会话。

17、可选的,所述根据头部信息生成http报文的id信息和标识位,具体包括:

18、对源端口和目标端口进行编码,得到id信息;

19、对http报文进行解析,若http报文起始行为请求行,则生成的标志位为请求标志位;若http报文起始行为状态行,则生成的标志位为响应标志位。

20、通过采用上述技术方案,根据源端口和目标端口得到报文的id信息,便于对相匹配的请求报文和响应报文进行唯一标识,再通过分析http报文的起始行生成标志位,若http报文的起始行为请求行则标志位为请求标志位,若http报文的起始行为状态行则标志位为响应标志位,通过生成http报文的id信息和标志位,以便后续更加方便简洁的识别出报文的类型,并对请求报文和响应报文进行匹配,而无需解析http报文。

21、可选的,所述响应于封装数据包中包含响应报文之前,还包括:

22、对封装数据包进行解析得到标志位;

23、根据标志位判断封装数据包是否包含请求报文,若是,放入请求缓存;若否,则判断封装数据包是否包含响应报文,若是,放入响应缓存。

24、通过采用上述技术方案,对封装数据包进行解析,根据解析得到的标志位将请求报文放入请求缓存,响应报文放入响应缓存中,实现了请求报文和响应报文的分类。

25、可选的,所述响应于封装数据包中包含响应报文,匹配封装数据包中相对应的请求报文,根据匹配的请求报文和对应的id信息构建重放请求,并基于重放请求,返回与重放请求id信息相同的响应报文,具体包括:

26、响应于封装数据包中包含响应报文,在请求缓存中查询匹配的请求报文;

27、根据匹配的请求报文和对应的id信息构建重放请求,根据对应的id信息在响应缓存中查询id信息相同的响应报文,从请求缓存中删除匹配成功的请求报文。

28、通过采用上述技术方案,当接收的封装数据包中包含响应报文时,立即在请求缓存中查询匹配的请求报文,根据匹配的请求报文的id信息构建重放请求,以便从响应缓存中查询id相同的响应报文,并从请求缓存中删除匹配成功的请求报文,从而实现了请求报文与响应报文的匹配重放,并及时释放系统内存资源。

29、可选的,还包括:

30、预先设定请求缓存中的请求报文的生存时间;

31、响应于请求缓存中请求报文的生存时间到期,根据到期的请求报文和对应的id信息构建重放请求,判断在响应缓存中是否存在与重放请求中id信息相同的响应报文;若存在,则返回与到期的请求报文id信息相同的响应报文;若不存在,则返回预设的响应报文;

32、从请求缓存中删除所述到期的请求报文。

33、通过采用上述技术方案,当请求缓存中请求报文所设置的生存时间到期时,通过到期的请求报文的id信息构建重放请求,在响应缓存本文档来自技高网...

【技术保护点】

1.一种基于二层网络的HTTP报文重放方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述获取所有流经网卡的TCP数据包之后,还包括:

3.根据权利要求1所述的方法,其特征在于,所述对每个TCP数据包进行解析,得到头部信息和负载信息,根据头部信息对负载信息进行分组,将每组负载信息和对应的头部信息组合得到完整的TCP会话,具体包括:

4.根据权利要求3所述的方法,其特征在于,所述根据头部信息生成HTTP报文的id信息和标识位,具体包括:

5.根据权利要求1所述的方法,其特征在于,所述响应于封装数据包中包含响应报文之前,还包括:

6.根据权利要求5所述的方法,其特征在于,所述响应于封装数据包中包含响应报文,匹配封装数据包中相对应的请求报文,根据匹配的请求报文和对应的id信息构建重放请求,并基于重放请求,返回与重放请求id信息相同的响应报文,具体包括:

7.根据权利要求5所述的方法,其特征在于,还包括:

8.一种基于二层网络的HTTP报文重放系统,其特征在于,包括:

9.一种计算机设备,其特征在于:包括存储器、处理器以及储存在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行如权利要求1-7中任一种方法的计算机程序。

10.一种计算机可读存储介质,其特征在于,包括存储有能够被处理器加载并执行如权利要求1-7中任一方法中的计算机程序。

...

【技术特征摘要】

1.一种基于二层网络的http报文重放方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述获取所有流经网卡的tcp数据包之后,还包括:

3.根据权利要求1所述的方法,其特征在于,所述对每个tcp数据包进行解析,得到头部信息和负载信息,根据头部信息对负载信息进行分组,将每组负载信息和对应的头部信息组合得到完整的tcp会话,具体包括:

4.根据权利要求3所述的方法,其特征在于,所述根据头部信息生成http报文的id信息和标识位,具体包括:

5.根据权利要求1所述的方法,其特征在于,所述响应于封装数据包中包含响应报文之前,还包括:

6.根据权利要求5所述的方法,...

【专利技术属性】
技术研发人员:陈乘方
申请(专利权)人:北京安胜华信科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1