CN111478865A - 一种基于区间管理算法的tcp流重组技术 - Google Patents

一种基于区间管理算法的tcp流重组技术 Download PDF

Info

Publication number
CN111478865A
CN111478865A CN202010272122.1A CN202010272122A CN111478865A CN 111478865 A CN111478865 A CN 111478865A CN 202010272122 A CN202010272122 A CN 202010272122A CN 111478865 A CN111478865 A CN 111478865A
Authority
CN
China
Prior art keywords
message
queue
messages
interval
tcp
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.)
Withdrawn
Application number
CN202010272122.1A
Other languages
English (en)
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.)
Chengdu Shensi Science & Technology Co ltd
Original Assignee
Chengdu Shensi Science & Technology Co ltd
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 Chengdu Shensi Science & Technology Co ltd filed Critical Chengdu Shensi Science & Technology Co ltd
Priority to CN202010272122.1A priority Critical patent/CN111478865A/zh
Publication of CN111478865A publication Critical patent/CN111478865A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9057Arrangements for supporting packet reassembly or resequencing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)

Abstract

本发明公开了一种基于区间管理算法的TCP流重组技术,涉及计算机应用技术领域,S1接收TCP报文,计算session hash值,取出session相关信息;S2确认队列是否为空;S3判断报文传输方向;S4判断ACK是否等于上一报文next seq;S5判断seq是否等于上一报文next seq;S6计算当前报文的区间值;S7确认队列中报文数量大于n;n大于5,有丢包行为,产生数据空洞,从待确认报文队列中取出报文无视空洞,按后续顺序强制加入确认队列;S8重组结束,返回S1;解决了在传统TCP流重组方式下,因乱序报文查询效率过低导致重组效率低,不能满足在大流量环境下的TCP流重组的问题;解决了在传统TCP流重组方式下,重组完整度不足的问题。

Description

一种基于区间管理算法的TCP流重组技术
技术领域
本发明涉及计算机应用技术领域,尤其涉及一种基于区间管理算法的TCP流重组技术。
背景技术
传输控制协议(TransportControlProtocol,TCP)是目前Internet中广泛采用的一种传输协议,它为各个主机之间提供可靠、按序传输、端到端的数据包传输服务,数据在网络上使用TCP协议进行传输的时候,需要将数据拆分成多个报文进行传输,由于网络环境的复杂性,比如网络设备的参差不齐、信号传输过程中的衰减和干扰等因素,经常会导致TCP数据报文的乱序或丢包重传等情况。在许多行业领域,都需要对网关出口的流量进行嗅探捕获,并针对其进行流量审计。在审计过程中都会采用到TCP流重组技术,只有将TCP流数据报文重组以后,才能还原完整的TCP会话,从而获取到TCP传输的真实内容,再用于流量审计。由于重组TCP流需要考虑TCP数据报文的乱序、重叠、丢包、重传等许多复杂情况,导致现有的TCP流重组技术大都具有效率低下、重组不完整、程序内存占用过高等问题。
发明内容
本发明的目的就在于为了解决上述问题设计了一种基于区间管理算法的TCP流重组技术。
本发明通过以下技术方案来实现上述目的:
一种基于区间管理算法的TCP流重组技术,包括以下步骤:
S1:接收TCP报文,按四元组计算session hash值,从缓存中取出session相关信息,如为空,则新建session相关结构;
S2:判断确认队列是否为空,为空则将报文直接放进确认队列、更新区间树、记录报文传输方向和next seq,返回S1;不为空,则执行S3;
S3:根据四元组判断报文传输方向,如与上一条报文方向一致,则执行S5;不一致,则执行S4;
S4:判断当前报文ACK是否等于上一报文next seq,等于则表示两报文为连续报文,将报文放入确认队列、更新区间树、记录报文传输方向和next seq,否则执行S6;
S5:判断当前报文seq是否等于上一报文next seq,等于则表示两报文为连续报文,将当前报文放入确认队列、更新区间树、记录报文传输方向和next seq,否则执行S6;
S6:计算当前报文的区间值,从区间树中查询此区间值;如果查到,则表示当前报文为重复报文,丢弃即可;如未查到,则表示当前报文为乱序报文,放入待确认队列,执行S7;
S7:当待确认队列中报文数量大于n,有n个报文堆积待重组;如果n大于5,很可能传输过程中间中有丢包行为,产生了数据空洞,导致后续报文不能确认,这时应从待确认报文队列中取出报文无视空洞,按后续顺序强制加入确认队列;
S8:当前TCP报文重组结束,继续返回执行S1。
本发明的有益效果在于:解决了在传统TCP流重组方式下,因乱序报文查询效率过低导致重组效率低,不能满足在大流量环境下的TCP流重组的问题;解决了在传统TCP流重组方式下,重组完整度不足的问题。
附图说明
图1是本发明一种基于区间管理算法的TCP流重组技术的流程图;
图2是本发明一种基于区间管理算法的TCP流重组技术的区间管理算法原理图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的描述中,需要理解的是,术语“上”、“下”、“内”、“外”、“左”、“右”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,或者是本领域技术人员惯常理解的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的设备或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本发明的描述中,还需要说明的是,除非另有明确的规定和限定,“设置”、“连接”等术语应做广义理解,例如,“连接”可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接连接,也可以通过中间媒介间接连接,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
下面结合附图,对本发明的具体实施方式进行详细说明。
如图1、图2所示,一种基于区间管理算法的TCP流重组技术,包括以下步骤:
S1:接收TCP报文,按四元组计算session hash值,从缓存中取出session相关信息,如为空,则新建session相关结构;
S2:判断确认队列是否为空,为空则将报文直接放进确认队列、更新区间树、记录报文传输方向和next seq,返回S1;不为空,则执行S3;
S3:根据四元组判断报文传输方向,如与上一条报文方向一致,则执行S5;不一致,则执行S4;
S4:判断当前报文ACK是否等于上一报文next seq,等于则表示两报文为连续报文,将报文放入确认队列、更新区间树、记录报文传输方向和next seq,否则执行S6;
S5:判断当前报文seq是否等于上一报文next seq,等于则表示两报文为连续报文,将当前报文放入确认队列、更新区间树、记录报文传输方向和next seq,否则执行S6;
S6:计算当前报文的区间值,从区间树中查询此区间值;如果查到,则表示当前报文为重复报文,丢弃即可;如未查到,则表示当前报文为乱序报文,放入待确认队列,执行S7;
S7:当待确认队列中报文数量大于n,有n个报文堆积待重组;如果n大于5,很可能传输过程中间中有丢包行为,产生了数据空洞,导致后续报文不能确认,这时应从待确认报文队列中取出报文无视空洞,按后续顺序强制加入确认队列;
S8:当前TCP报文重组结束,继续返回执行S1。
区间管理算法区是在平衡树基础上进行扩展得到的支持以区间为元素的动态集合的操作,其中每个节点的关键值是区间的左端点。通过建立这种特定的结构,可以使区间的元素的查找和***都可以在O(lgn)的时间内完成,如附图2。每一个节点代表一个报文,节点区间的左右值分别为报文的序列号(seq)和序列号+当前报文长度(len)-1,比如数据报文seq为1,len为100,此数据报文对应的节点的区间为[1,100]。
ACK包确认机制,ACK是对接收到的数据进行确认,在发送端一次性发送多个数据报文时,如201、301、401的数据报文,不必等到接收端的一一确认,只需要知道401的确认报文,即可认为201、301、401报文都接收到了,***就可以对201、301、401进行TCP流重组。
序列号包确认机制,当发送端一次性发生多个数据报文时,如201、301的数据报文,接收端的ACK暂未到来,可以根据201数据报文的序列号加上当前报文长度等于301数据报文的序列号,判断301即为201后面连续的包,即可对201,301进行TCP流重组。
本发明的技术方案不限于上述具体实施例的限制,凡是根据本发明的技术方案做出的技术变形,均落入本发明的保护范围之内。

Claims (1)

1.一种基于区间管理算法的TCP流重组技术,其特征在于,包括以下步骤:
S1:接收TCP报文,按四元组计算sessionhash值,从缓存中取出session相关信息,如为空,则新建session相关结构;
S2:判断确认队列是否为空,为空则将报文直接放进确认队列、更新区间树、记录报文传输方向和nextseq,返回S1;不为空,则执行S3;
S3:根据四元组判断报文传输方向,如与上一条报文方向一致,则执行S5;不一致,则执行S4;
S4:判断当前报文ACK是否等于上一报文nextseq,等于则表示两报文为连续报文,将报文放入确认队列、更新区间树、记录报文传输方向和nextseq,否则执行S6;
S5:判断当前报文seq是否等于上一报文nextseq,等于则表示两报文为连续报文,将当前报文放入确认队列、更新区间树、记录报文传输方向和next seq,否则执行S6;
S6:计算当前报文的区间值,从区间树中查询此区间值;如果查到,则表示当前报文为重复报文,丢弃即可;如未查到,则表示当前报文为乱序报文,放入待确认队列,执行S7;
S7:当待确认队列中报文数量大于n,有n个报文堆积待重组;如果n大于5,很可能传输过程中间中有丢包行为,产生了数据空洞,导致后续报文不能确认,这时应从待确认报文队列中取出报文无视空洞,按后续顺序强制加入确认队列;
S8:当前TCP报文重组结束,继续返回执行S1。
CN202010272122.1A 2020-04-09 2020-04-09 一种基于区间管理算法的tcp流重组技术 Withdrawn CN111478865A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010272122.1A CN111478865A (zh) 2020-04-09 2020-04-09 一种基于区间管理算法的tcp流重组技术

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010272122.1A CN111478865A (zh) 2020-04-09 2020-04-09 一种基于区间管理算法的tcp流重组技术

Publications (1)

Publication Number Publication Date
CN111478865A true CN111478865A (zh) 2020-07-31

Family

ID=71751250

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010272122.1A Withdrawn CN111478865A (zh) 2020-04-09 2020-04-09 一种基于区间管理算法的tcp流重组技术

Country Status (1)

Country Link
CN (1) CN111478865A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113791901A (zh) * 2021-08-31 2021-12-14 上海弘积信息科技有限公司 一种高效的负载均衡设备tcp重传实现方法
CN114726920A (zh) * 2022-06-07 2022-07-08 恒生电子股份有限公司 Tcp数据的处理方法及装置
CN115190090A (zh) * 2022-07-12 2022-10-14 国泰君安证券股份有限公司 基于哈希表和队列结构的tcp流重组行情监控处理方法、***、装置、处理器及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113791901A (zh) * 2021-08-31 2021-12-14 上海弘积信息科技有限公司 一种高效的负载均衡设备tcp重传实现方法
CN113791901B (zh) * 2021-08-31 2023-12-26 上海弘积信息科技有限公司 一种高效的负载均衡设备tcp重传实现方法
CN114726920A (zh) * 2022-06-07 2022-07-08 恒生电子股份有限公司 Tcp数据的处理方法及装置
CN115190090A (zh) * 2022-07-12 2022-10-14 国泰君安证券股份有限公司 基于哈希表和队列结构的tcp流重组行情监控处理方法、***、装置、处理器及存储介质

Similar Documents

Publication Publication Date Title
JP5816718B2 (ja) 通信装置、通信システム、およびデータ通信の中継方法
EP0570220B1 (en) Acknowledgment protocol for serial data network with out-of-order delivery
CN111478865A (zh) 一种基于区间管理算法的tcp流重组技术
US7355971B2 (en) Determining packet size in networking
EP2183890B1 (en) Aggregate data frame generation
JP5942706B2 (ja) 監視装置,監視プログラム,監視方法
US20090135851A1 (en) Transport layer and model for an advanced metering infrastructure (ami) network
CN101217429B (zh) 基于tcp时间戳选项确定tcp报文之间的引发关系的方法
US10355961B2 (en) Network traffic capture analysis
US6765889B1 (en) Communication method and system
US20100189105A1 (en) Efficiency Improvement For Shared Communications Networks
CN104025550B (zh) 从数据项获得信息的方法及装置
EP3525421B1 (en) Data transmission method and apparatus
EP3637703B1 (en) Message transmission methods and proxy servers
Topór-Kamiński et al. Delays models of measurement and control data transmission network
JP2003503948A (ja) データ受信の肯定応答のための方法およびシステム
US8156209B1 (en) Aggregation devices processing keep-alive messages of point-to-point sessions
JP2002217988A (ja) データ配信管理装置およびデータ配信管理方法
CN111131179A (zh) 业务处理方法、装置、网络设备及存储介质
US7623546B1 (en) Latency improvement for file transfers over network connections
CN106911644A (zh) 一种报文重组方法和设备
CN112468513B (zh) 一种企业网的终端管理通信方法
EP1505759B1 (en) Method and device for transmitting/receiving data using acknowledged transport layer protocols
Ennis et al. Overview of a broad-band local area network protocol architecture
CN114598651A (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
WW01 Invention patent application withdrawn after publication

Application publication date: 20200731

WW01 Invention patent application withdrawn after publication