CN111030999B - 一种基于网络数据包提取文件的方法 - Google Patents
一种基于网络数据包提取文件的方法 Download PDFInfo
- Publication number
- CN111030999B CN111030999B CN201911117069.1A CN201911117069A CN111030999B CN 111030999 B CN111030999 B CN 111030999B CN 201911117069 A CN201911117069 A CN 201911117069A CN 111030999 B CN111030999 B CN 111030999B
- Authority
- CN
- China
- Prior art keywords
- tcp
- http
- session
- packet
- data packet
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种基于网络数据包提取文件的方法,通过模拟HTTP客户端,将远端资源服务的应答数据转换为虚拟HTTP客户端的请求数据,将远端资源服务TCP会话与虚拟HTTP客户端TCP会话建立起关联性,也就是建立2个TCP会话间的SEQ、ACK的映射关系。本发明提供一种基于网络数据包提取文件的方法,直接分析网络数据包,提取TCP及HTTP的会话数据后,模拟HTTP客户端的请求应答,将网络数据包直接转发到HTTP服务器,由HTTP服务器存储数据;无需借助大量额外存储或带宽,通过模拟HTTP会话,可以实时提取网络数据包内容,具有实时性,并且节省了存储和带宽资源。
Description
技术领域
本发明涉及网络通信技术领域,具体地,涉及一种基于网络数据包提取文件的方法。
背景技术
近年来随着互联网的发展,互联网用户数、互联网应用种类、网络带宽等都呈现出***式的增长。宽带运营商的网络建设的指导方针已经从传统的面向基础设施建设转变为面向应用需求。通过采集和归并网络数据,不仅可以帮助运营商加强互联网的安全管理,而且通过数据分析和处理提高业务质量和增强用户的体验感,构建更快速更优质的网络。
目前网络数据的提取通常采取先提取资源路径,然后根据需要再次访问获取,不仅额外消耗带宽资源,而且不具有实时性;而且有些数据无法二次获取到;网络数据的提取也可以采用数据镜像方式,将数据转储到存储设备上,再解析会话还原提取数据,不仅不具备实时性,而且由于复杂的网络环境会导致处理速度缓慢甚至提取失败。
发明内容
本发明为解决现有网络数据的提取不具有实时性的问题,提供一种基于网络数据包提取文件的方法。
为实现以上发明目的,采用的技术方案是:
一种基于网络数据包提取文件的方法,包括以下步骤:
S1:分析接收的网络数据包,提取数据包的TCP四元组,若同一TCP会话已经存在于会话表HTS中,直接转到步骤S6,若同一TCP会话不存在于会话表HTS中,转到步骤S2;
S2:从会话表HTS中读取网络数据包进行HTTP头解析,如果是HTTP请求,且方法是GET,则将该数据包暂存到临时会话表HTL中;如果是HTTP应答,且同一TCP会话已经存在临时会话表HTL中,则将该数据包暂存到临时会话表HTL中;
S3:通过握手请求与应答,模拟出虚拟HTTP客户端与接收HTTP服务器的TCP会话,得到会话表HTT;
S4:从临时会话表HTL提取HTTP请求包和应答包,将HTTP应答包的TCP四元组、SEQ及ACK存入会话表HTS,与会话表HTT中的TCP四元组、SEQ及ACK,建立映射规则;
S5:将HTTP应答包转换为HTTP请求包,其请求方法为PUT,其URL为HTTP请求包中的URL;
S6:依据映射规则,将HTTP请求包中TCP报文的数据进行替换,转换为虚拟HTTP客户端会话,将重构后的数据包发送给HTTP服务器,并更新会话表HTT;
S7:接收HTTP服务器的TCP报文,结束终止报文时,依据网络协议规范结束该会话,清除会话表HTT及HTS记录。
步骤S1中的TCP四元组分别为源IP地址、源端口、目的IP地址和目的端口。
所述HTTP应答的应答码是200或206。
步骤S3模拟出虚拟HTTP客户端与接收HTTP服务器的TCP会话步骤为:
S31:构建TCP的握手请求报文,目标地址是HTTP服务器的IP地址,目标端口是HTTP服务器的监听端口;
S32:将TCP的握手请求报文发送给HTTP服务器;
S33:收到HTTP服务器的TCP握手应答;
S34:构建TCP的握手请求报文,发送给HTTP服务器;
S35:将TCP四元组、SEQ及ACK存入会话表HTT,得到会话表HTT。
步骤S31的TCP标志为SYN。
步骤S33的TCP标志为SYN+ACK。
步骤S34的TCP标志为ACK。
步骤S4中的HTTP应答包的TCP四元组和会话表HTT中的TCP四元组不同,需要将远端资源服务TCP会话中的SEQ转换为虚拟HTTP客户端TCP会话的SEQ。
步骤S6中的映射规则为:
seqa2-seqa1=seqr2-seqr1
Seqa3-seqa2=seqr3-seqr2
Seqa1、seqa2、seqa3依次为网络数据包TCP会话的SEQ
Seqr1、seqr2、seqr3依次为虚拟HTTP客户端TCP会话的SEQ。
步骤S6中,依据映射规则,利用会话表HTT对应关系将网络数据包其TCP报文中的IP地址、端口号、SEQ、ACK替换为虚拟HTTP客户端TCP报文,从而转换为HTTP客户端会话,将重构后的数据包发送给HTTP服务器,并更新映射表HTT中的SEQ及ACK。
通过模拟HTTP客户端,将远端资源服务的应答数据转换为虚拟HTTP客户端的请求数据,将远端资源服务TCP会话与虚拟HTTP客户端TCP会话建立起关联性,也就是建立2个TCP会话间的SEQ、ACK的映射关系。
与现有技术相比,本发明的有益效果是:
本发明提供一种基于网络数据包提取文件的方法,直接分析网络数据包,提取TCP及HTTP的会话数据后,模拟HTTP客户端的请求应答,将网络数据包直接转发到HTTP服务器,由HTTP服务器存储数据;无需借助大量额外存储或带宽,通过模拟HTTP会话,可以实时提取网络数据包内容,具有实时性,并且节省了存储和带宽资源。
附图说明
图1为该发明的方法流程图;
图2为该发明的数据包解析流程图。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
以下结合附图和实施例对本发明做进一步的阐述。
实施例1
一种基于网络数据包提取文件的方法,包括以下步骤:
S1:分析接收的网络数据包,提取数据包的TCP四元组,若同一TCP会话已经存在于会话表HTS中,直接转到步骤S6,若同一TCP会话不存在于会话表HTS中,转到步骤S2;
S2:从会话表HTS中读取网络数据包进行HTTP头解析,如果是HTTP请求,且方法是GET,则将该数据包暂存到临时会话表HTL中;如果是HTTP应答,且同一TCP会话已经存在临时会话表HTL中,则将该数据包暂存到临时会话表HTL中;
S3:通过握手请求与应答,模拟出虚拟HTTP客户端与接收HTTP服务器的TCP会话,得到会话表HTT;
S4:从临时会话表HTL提取HTTP请求包和应答包,将HTTP应答包的TCP四元组、SEQ及ACK存入会话表HTS,与会话表HTT中的TCP四元组、SEQ及ACK,建立映射规则;
S5:将HTTP应答包转换为HTTP请求包,其请求方法为PUT,其URL为HTTP请求包中的URL;
S6:依据映射规则,将HTTP请求包中TCP报文的数据进行替换,转换为虚拟HTTP客户端会话,将重构后的数据包发送给HTTP服务器,并更新会话表HTT;
S7:接收HTTP服务器的TCP报文,结束终止报文时,依据网络协议规范结束该会话,清除会话表HTT及HTS记录。
步骤S1中的TCP四元组分别为源IP地址、源端口、目的IP地址和目的端口。
所述HTTP应答的应答码是200或206。
步骤S3模拟出虚拟HTTP客户端与接收HTTP服务器的TCP会话步骤为:
S31:构建TCP的握手请求报文,目标地址是HTTP服务器的IP地址,目标端口是HTTP服务器的监听端口;
S32:将TCP的握手请求报文发送给HTTP服务器;
S33:收到HTTP服务器的TCP握手应答;
S34:构建TCP的握手请求报文,发送给HTTP服务器;
S35:将TCP四元组、SEQ及ACK存入会话表HTT,得到会话表HTT。
步骤S31的TCP标志为SYN。
步骤S33的TCP标志为SYN+ACK。
步骤S34的TCP标志为ACK。
步骤S4中的HTTP应答包的TCP四元组和会话表HTT中的TCP四元组不同,需要将远端资源服务TCP会话中的SEQ转换为虚拟HTTP客户端TCP会话的SEQ。
步骤S6中的映射规则为:
seqa2-seqa1=seqr2-seqr1
Seqa3-seqa2=seqr3-seqr2
Seqa1、seqa2、seqa3依次为网络数据包TCP会话的SEQ
Seqr1、seqr2、seqr3依次为虚拟HTTP客户端TCP会话的SEQ。
步骤S6中,依据映射规则,利用会话表HTT对应关系将网络数据包其TCP报文中的IP地址、端口号、SEQ、ACK替换为虚拟HTTP客户端TCP报文,从而转换为HTTP客户端会话,将重构后的数据包发送给HTTP服务器,并更新映射表HTT中的SEQ及ACK。
通过模拟HTTP客户端,将远端资源服务的应答数据转换为虚拟HTTP客户端的请求数据,将远端资源服务TCP会话与虚拟HTTP客户端TCP会话建立起关联性,也就是建立2个TCP会话间的SEQ、ACK的映射关系。
实施例2
本实施例在FreeBSD操作***的内核协议栈上以内核模块方式实现了基于网络数据包提取文件的方法,新构建的数据包提取模块通过钩子方式挂接到IP层,模拟出的TCP/HTTP会话处理等均由操作***自身的协议栈处理模块以及应用层的HTTP服务器完成。
步骤101,数据包分析模块接收被采集的客户端与服务器端的流量数据包,分离出TCP数据包,解析出TCP四元组信息;
步骤102,数据包分析模块查找会话表HTS,如果是当前正在处理的会话,则将数据包转给TCP转换模块;
步骤103,数据包分析模块继续分析数据包,如果不是HTTP请求和应答包,丢弃该数据包;
步骤104,如果是HTTP请求头,则保存该数据包到临时会话表HTL,结束处理;
步骤105,如果是HTTP应答头,查找临时会话表HTL,如果未找到,结束处理;如找到将HTTP应答头保存到临时会话表HTL;
步骤106,虚拟HTTP客户端模块,与HTTP服务器建立TCP连接,将TCP会话记入会话表HTT;
步骤107,虚拟HTTP客户端模块从临时会话表HTL中提取HTTP请求和应答头,将HTTP应答头更改为请求头,请求方法为PUT,URL为原HTTP请求头中的URL;
步骤108,虚拟HTTP客户端模块调用TCP转换模块,将数据包发送给HTTP服务器;
虚拟HTTP客户端模块处理与HTTP服务器之间的交互。
实施例3
原请求头示例:
GET/a.tar HTTP/1.1
Host:example.com
Accept:*/*。
实施例4
原应答头示例:
HTTP/1.1 200 OK
Content-Length:3563520
[数据....]。
实施例5
转换请求包示例:
PUT/a.tar HTTP/1.1
Content-Length:3563520
[数据....]。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (10)
1.一种基于网络数据包提取文件的方法,其特征在于,包括以下步骤:
S1:分析接收的网络数据包,提取数据包的TCP四元组,若同一TCP会话已经存在于会话表HTS中,直接转到步骤S6,若同一TCP会话不存在于会话表HTS中,转到步骤S2;
S2:从会话表HTS中读取网络数据包进行HTTP头解析,如果是HTTP请求,且方法是GET,则将该数据包暂存到临时会话表HTL中;如果是HTTP应答,且同一TCP会话已经存在临时会话表HTL中,则将该数据包暂存到临时会话表HTL中;
S3:通过握手请求与应答,模拟出虚拟HTTP客户端与接收HTTP服务器的TCP会话,得到会话表HTT;
S4:从临时会话表HTL提取HTTP请求包和应答包,将HTTP应答包的TCP四元组、SEQ及ACK存入会话表HTS,与会话表HTT中的TCP四元组、SEQ及ACK,建立映射规则;
S5:将HTTP应答包转换为HTTP请求包,其请求方法为PUT,其URL为HTTP请求包中的URL;
S6:依据映射规则,将HTTP请求包中TCP报文的数据进行替换,转换为虚拟HTTP客户端会话,将重构后的数据包发送给HTTP服务器,并更新会话表HTT;
S7:接收HTTP服务器的TCP报文,结束终止报文时,依据网络协议规范结束该会话,清除会话表HTT及HTS记录。
2.根据权利要求1所述的一种基于网络数据包提取文件的方法,其特征在于,步骤S1中的TCP四元组分别为源IP地址、源端口、目的IP地址和目的端口。
3.根据权利要求2所述的一种基于网络数据包提取文件的方法,其特征在于,所述HTTP应答的应答码是200或206。
4.根据权利要求3所述的一种基于网络数据包提取文件的方法,其特征在于,步骤S3模拟出虚拟HTTP客户端与接收HTTP服务器的TCP会话步骤为:
S31:构建TCP的握手请求报文,目标地址是HTTP服务器的IP地址,目标端口是HTTP服务器的监听端口;
S32:将TCP的握手请求报文发送给HTTP服务器;
S33:收到HTTP服务器的TCP握手应答;
S34:构建TCP的握手请求报文,发送给HTTP服务器;
S35:将TCP四元组、SEQ及ACK存入会话表HTT,得到会话表HTT。
5.根据权利要求4所述的一种基于网络数据包提取文件的方法,其特征在于,步骤S31的TCP标志为SYN。
6.根据权利要求5所述的一种基于网络数据包提取文件的方法,其特征在于,步骤S33的TCP标志为SYN+ACK。
7.根据权利要求6所述的一种基于网络数据包提取文件的方法,其特征在于,步骤S34的TCP标志为ACK。
8.根据权利要求7所述的一种基于网络数据包提取文件的方法,其特征在于,步骤S4中的HTTP应答包的TCP四元组和会话表HTT中的TCP四元组不同,需要将远端资源服务TCP会话中的SEQ转换为虚拟HTTP客户端TCP会话的SEQ。
9.根据权利要求8所述的一种基于网络数据包提取文件的方法,其特征在于,步骤S6中的映射规则为:
seqa2-seqa1=seqr2-seqr1
Seqa3-seqa2=seqr3-seqr2
Seqa1、seqa2、seqa3依次为网络数据包TCP会话的SEQ
Seqr1、seqr2、seqr3依次为虚拟HTTP客户端TCP会话的SEQ。
10.根据权利要求9所述的一种基于网络数据包提取文件的方法,其特征在于,步骤S6中,依据映射规则,利用会话表HTT对应关系将网络数据包其TCP报文的IP地址、端口号、SEQ、ACK替换为虚拟HTTP客户端TCP报文,从而转换为HTTP客户端会话,将重构后的数据包发送给HTTP服务器,并更新映射表HTT中的SEQ及ACK。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911117069.1A CN111030999B (zh) | 2019-11-15 | 2019-11-15 | 一种基于网络数据包提取文件的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911117069.1A CN111030999B (zh) | 2019-11-15 | 2019-11-15 | 一种基于网络数据包提取文件的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111030999A CN111030999A (zh) | 2020-04-17 |
CN111030999B true CN111030999B (zh) | 2021-09-24 |
Family
ID=70200279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911117069.1A Active CN111030999B (zh) | 2019-11-15 | 2019-11-15 | 一种基于网络数据包提取文件的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111030999B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111740996B (zh) * | 2020-06-22 | 2021-06-22 | 四川长虹电器股份有限公司 | 一种流量解析场景下快速拆分http请求与响应的方法 |
CN112039904A (zh) * | 2020-09-03 | 2020-12-04 | 福州林科斯拉信息技术有限公司 | 一种网络流量分析与文件提取***及方法 |
CN113922984B (zh) * | 2021-09-02 | 2024-02-02 | 成都安恒信息技术有限公司 | 一种客户端应用的网络访问识别和管控方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6895510B1 (en) * | 1997-11-24 | 2005-05-17 | International Business Machines Corporation | Mutual internet authentication between a client and server utilizing a dummy IOP request |
CN101072233A (zh) * | 2007-03-30 | 2007-11-14 | 腾讯科技(深圳)有限公司 | 基于无状态网络协议模拟有状态连接的方法及*** |
CN101425938A (zh) * | 2008-12-17 | 2009-05-06 | 福建星网锐捷网络有限公司 | 测试网络设备的方法和装置 |
CN102291320A (zh) * | 2011-09-29 | 2011-12-21 | 杭州华三通信技术有限公司 | Mac地址学习方法和边缘设备 |
CN103607356A (zh) * | 2013-11-14 | 2014-02-26 | 北京奇虎科技有限公司 | 一种负载均衡方法、负载均衡器及*** |
CN103885877A (zh) * | 2014-03-10 | 2014-06-25 | 烟台中科网络技术研究所 | 一种http的模拟浏览器测试脚本生成方法及装置 |
CN104468151A (zh) * | 2013-09-13 | 2015-03-25 | 华耀(中国)科技有限公司 | 一种集群切换时保持tcp会话的***和方法 |
CN109743357A (zh) * | 2018-12-13 | 2019-05-10 | 杭州迪普科技股份有限公司 | 一种业务访问连续性的实现方法及装置 |
-
2019
- 2019-11-15 CN CN201911117069.1A patent/CN111030999B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6895510B1 (en) * | 1997-11-24 | 2005-05-17 | International Business Machines Corporation | Mutual internet authentication between a client and server utilizing a dummy IOP request |
CN101072233A (zh) * | 2007-03-30 | 2007-11-14 | 腾讯科技(深圳)有限公司 | 基于无状态网络协议模拟有状态连接的方法及*** |
CN101425938A (zh) * | 2008-12-17 | 2009-05-06 | 福建星网锐捷网络有限公司 | 测试网络设备的方法和装置 |
CN102291320A (zh) * | 2011-09-29 | 2011-12-21 | 杭州华三通信技术有限公司 | Mac地址学习方法和边缘设备 |
CN104468151A (zh) * | 2013-09-13 | 2015-03-25 | 华耀(中国)科技有限公司 | 一种集群切换时保持tcp会话的***和方法 |
CN103607356A (zh) * | 2013-11-14 | 2014-02-26 | 北京奇虎科技有限公司 | 一种负载均衡方法、负载均衡器及*** |
CN103885877A (zh) * | 2014-03-10 | 2014-06-25 | 烟台中科网络技术研究所 | 一种http的模拟浏览器测试脚本生成方法及装置 |
CN109743357A (zh) * | 2018-12-13 | 2019-05-10 | 杭州迪普科技股份有限公司 | 一种业务访问连续性的实现方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111030999A (zh) | 2020-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111030999B (zh) | 一种基于网络数据包提取文件的方法 | |
US7653703B2 (en) | Computer system with a packet transfer device using a hash value for transferring a content request | |
CN106815112B (zh) | 一种基于深度包检测的海量数据监控***及方法 | |
US10218598B2 (en) | Automatic parsing of binary-based application protocols using network traffic | |
CN103780610A (zh) | 基于协议特征的网络数据恢复方法 | |
CN101977224B (zh) | 一种基于SSL VPN设备的Web资源认证信息管理方法 | |
CN101132420B (zh) | 一种基于ssl vpn的链接改写方法和设备 | |
US20150304459A1 (en) | Method and system of transmitting data over a network using a communication protocol | |
CN102045363A (zh) | 网络流量特征识别规则的建立方法、识别控制方法及装置 | |
JP2004164630A (ja) | クライアント/サーバ通信システム | |
JP2011518373A (ja) | ネットワーク上でのファイルフォルダ送信 | |
CN105024971A (zh) | 一种通信协议转换方法及装置 | |
JP2004527028A (ja) | インタラクティブ・テレビ用のデジタル・テレビ・アプリケーション・プロトコル | |
CN108200158B (zh) | 请求传输***、方法、装置及存储介质 | |
WO2014205827A1 (zh) | 一种连接恢复的方法、装置及*** | |
CN101136834B (zh) | 一种基于ssl vpn的链接改写方法和设备 | |
CN107666486A (zh) | 一种基于报文协议特征的网络数据流恢复方法及*** | |
CN103001964A (zh) | 一种局域网环境下的缓存加速方法 | |
CN106657206A (zh) | 虚拟桌面web视频重定向的方法 | |
CN103944992B (zh) | 一种在ios上加速http的方法 | |
CN110661807A (zh) | IPv6地址的自动化采集方法及装置 | |
CN114389792A (zh) | 一种web日志nat前后关联方法及*** | |
CN115499230A (zh) | 网络攻击检测方法和装置、设备及存储介质 | |
CN113810349A (zh) | 数据传输方法、装置和计算机设备 | |
CN104615597A (zh) | 浏览器中清除缓存文件的方法、装置和*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |