CN114024924A - 一种tcp流重组方法、装置、电子设备及存储介质 - Google Patents
一种tcp流重组方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114024924A CN114024924A CN202210003638.5A CN202210003638A CN114024924A CN 114024924 A CN114024924 A CN 114024924A CN 202210003638 A CN202210003638 A CN 202210003638A CN 114024924 A CN114024924 A CN 114024924A
- Authority
- CN
- China
- Prior art keywords
- tcp
- message
- cache
- messages
- linked list
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9057—Arrangements for supporting packet reassembly or resequencing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种TCP流重组方法、装置、电子设备及存储介质,其方法包括:获取TCP流中的TCP报文,并基于所述TCP报文的报文序列号判断所述TCP报文是否乱序;当所述TCP报文乱序时,将所述TCP报文按照报文序列号从小到大的顺序***至TCP缓存链表中,获得多个缓存TCP报文;判断所述TCP缓存链表是否达到最大缓存限额;当所述TCP缓存链表达到所述最大缓存限额时,将所述TCP缓存链表中的所述多个缓存TCP报文进行局部重组,获得局部重组TCP包。本发明实现了在TCP流在遇到网络丢包的情况下,TCP报文仍可进行重组的目的,避免TCP流重组发生堵塞。
Description
技术领域
本发明涉及网络安全技术领域,具体涉及一种TCP流重组方法、装置、电子设备及存储介质。
背景技术
在网络安全领域,需要对网络流量进行分析,网络流量中由于网络传输的选路、抖动以及TCP的重传机制,会导致TCP报文出现丢包,进而发生乱序传输,在对网络流量进行分析的过程中,需要对TCP流中的TCP报文进行重组,比如HTTP流量是承载在TCP协议之上,如果TCP报文乱序,会导致对HTTP流量的分析有误。
常用的TCP流重组的方法是将乱序的TCP报文按报文序列号(seq)顺序***到缓存链表中,当缺失的报文达到时,将链表中的所有报文的TCP负荷部分拷贝并拼接成一段完整的应用层数据,然后交给应用分析引擎来分析。
但是现有方法存在以下问题:当缓存链表中有TCP报文丢包,会导致TCP报文无法完成重组,缓存链表中缓存的报文不断增加,直到达到最大缓存限额,当缓存链表中的数据缓存满后,TCP流重组就会阻塞,导致后续的乱序报文无法完成重组,无法完成重组的TCP报文会滞留在缓存链表中,造成分析引擎无法收到并分析TCP流的技术问题。
发明内容
有鉴于此,有必要提供一种TCP流重组方法、装置、电子设备及存储介质,用以解决现有技术中存在的当缓存链表中有TCP报文丢包时,TCP无法完成重组,导致TCP流无法重组以及分析引擎无法收到并分析TCP流的技术问题。
为了解决上述技术问题,本发明提供了一种TCP流重组方法,包括:
获取TCP流中的TCP报文,并基于所述TCP报文的报文序列号判断所述TCP报文是否乱序;
当所述TCP报文乱序时,将所述TCP报文按照报文序列号从小到大的顺序***至TCP缓存链表中,获得多个缓存TCP报文;
判断所述TCP缓存链表是否达到最大缓存限额;
当所述TCP缓存链表达到所述最大缓存限额时,将所述TCP缓存链表中的所述多个缓存TCP报文进行局部重组,获得局部重组TCP包。
在一些可能的实现方式中,所述将所述TCP缓存链表中的所述多个缓存TCP报文进行局部重组,获得局部重组TCP包,包括:
按照报文序列号从小到大的顺序依次判断所述缓存TCP报文是否需要进行局部重组,并确定出需要进行局部重组的至少一个目标缓存报文;
将所述至少一个目标缓存报文进行局部重组,获得所述局部重组TCP包。
在一些可能的实现方式中,所述缓存TCP报文包括当前缓存TCP报文和下一缓存TCP报文;所述按照报文序列号从小到大的顺序依次判断所述缓存TCP报文是否需要进行局部重组,包括:
获取所述当前缓存TCP报文的当前报文序列号和当前负荷长度;
获取所述下一缓存TCP报文的下一报文序列号;
判断所述当前报文序列号与所述当前负荷长度之和是否等于所述下一报文序列号;
若所述当前报文序列号与所述当前负荷长度之和等于所述下一报文序列号,则所述下一缓存TCP报文需要进行局部重组。
在一些可能的实现方式中,在所述判断所述TCP缓存链表是否达到最大缓存限额之前,还包括:
判断所述TCP报文是否为第一个缺失的报文;
若所述TCP报文为第一个缺失的报文,则将所述多个缓存TCP报文进行局部重组,获得所述局部重组TCP包。
在一些可能的实现方式中,所述TCP流重组方法还包括:
当所述TCP缓存链表未达到所述最大缓存限额时,获取所述TCP报文的标志位字段;
根据所述标志位字段判断所述TCP报文是否为结束包或重置包;
当所述TCP报文为结束包或重置包时,将所述多个缓存TCP报文进行全部重组,生成全部重组TCP包。
在一些可能的实现方式中,所述TCP缓存链表包括定时器,所述TCP流重组方法还包括:
判断所述定时器是否超时;
当所述定时器超时时,将所述多个缓存TCP报文进行全部重组,生成全部重组TCP包。
在一些可能的实现方式中,在所述将所述TCP报文按照报文序列号从小到大的顺序***至TCP缓存链表中之前,所述TCP流重组方法还包括:
获取所述TCP流的应用类型;
预先设置所述应用类型与所述TCP缓存链表的最大缓存限额之间的对应关系;
基于所述应用类型和所述对应关系,确定所述TCP缓存链表的最大缓存限额。
另一方面,本发明还提供一种TCP流重组装置,包括:
乱序判断单元,用于获取TCP流中的TCP报文,并基于所述TCP报文的报文序列号判断所述TCP报文是否乱序;
报文***单元,用于当所述TCP报文乱序时,将所述TCP报文按照报文序列号从小到大的顺序***至TCP缓存链表中,获得多个缓存TCP报文;
缓存限额判断单元,用于判断所述TCP缓存链表是否达到最大缓存限额;
局部重组单元,用于当所述TCP缓存链表达到所述最大缓存限额时,将所述TCP缓存链表中的所述多个缓存TCP报文进行局部重组,获得局部重组TCP包。
另一方面,本发明还提供了一种电子设备,包括存储器和处理器,其中,
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以实现上述任一种实现方式中的所述TCP流重组方法中的步骤。
另一方面,本发明还提供了一种计算机可读存储介质,用于存储计算机可读取的程序或指令,所述程序或指令被处理器执行时,能够实现上述任一种实现方式中的所述TCP流重组方法中的步骤。
采用上述实施例的有益效果是:本发明提供的TCP流重组方法,当TCP缓存链表达到最大缓存限额时,将TCP缓存链表中的多个缓存TCP报文进行局部重组,防止TCP报文出现丢包时无法进行重组的问题;并且,局部重组后的局部重组TCP包可上传至应用分析引擎,可避免出现应用分析引擎无法接收到TCP流的问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的TCP流重组方法的一个实施例流程示意图;
图2为本发明图1中S104的一个实施例流程示意图;
图3为本发明图2中S201的一个实施例流程示意图;
图4为本发明提供的缓存TCP报文局部重组的另一个实施例流程示意图;
图5为本发明提供的缓存TCP报文全部重组的一个实施例流程示意图;
图6为本发明提供的缓存TCP报文全部重组的另一个实施例流程示意图;
图7为本发明提供的最大缓存限额设置方式的一个实施例流程示意图;
图8为本发明提供的TCP流重组装置的一个实施例结构示意图;
图9为本发明提供的电子设备的一个实施例结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本发明提供了一种TCP流重组方法、装置、电子设备及存储介质,以下分别进行说明。
在展示实施例前,先对以下名词进行介绍:
TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
TCP流:指的是某一次业务过程中的数据传输过程中的数据流。
报文:指的是网络中交换与传输的数据单元,即:站点一次性要发送的数据块,报文包含了将要发送的完整的数据信息。
TCP报文:指的是TCP层传输的数据单元。
TCP包:指的是由至少一个TCP报文组成的数据包。
图1为本发明提供的TCP流重组方法的一个实施例流程示意图,如图1所示,TCP流重组方法包括:
S101、获取TCP流中的TCP报文,并基于TCP报文的报文序列号判断TCP报文是否乱序;
S102、当TCP报文乱序时,将TCP报文按照报文序列号从小到大的顺序***至TCP缓存链表中,获得多个缓存TCP报文;
S103、判断TCP缓存链表是否达到最大缓存限额;
S104、当TCP缓存链表达到最大缓存限额时,将TCP缓存链表中的多个缓存TCP报文进行局部重组,获得局部重组TCP包。
与现有技术相比,本发明实施例提供的TCP流重组方法,当TCP缓存链表达到最大缓存限额时,将TCP缓存链表中的多个缓存TCP报文进行局部重组,防止TCP报文出现丢失时无法进行重组的问题;并且,局部重组后的局部重组TCP包可上传至应用分析引擎,可避免出现当发生丢包时,应用分析引擎无法接收到TCP流的问题。
在本发明的一些实施例中,步骤S101中的基于TCP报文的报文序列号判断TCP报文是否乱序具体为:
获取这一TCP报文的上一TCP报文,并获取上一TCP报文的报文序列号和报文负荷长度,若上一TCP报文的报文序列号与报文负荷长度之和等于这一TCP报文的报文序列号,则TCP报文没有乱序,若上一TCP报文的报文序列号与报文负荷长度之和不等于这一TCP报文的报文序列号,则TCP报文乱序。
在本发明的一些实施例中,如图2所示,步骤S104包括:
S201、按照报文序列号从小到大的顺序依次判断缓存TCP报文是否需要进行局部重组,确定出需要进行局部重组的至少一个目标缓存报文;
S202、将至少一个目标缓存报文进行局部重组,获得局部重组TCP包。
在本发明的一些实施例中,缓存TCP报文包括当前缓存TCP报文和下一缓存TCP报文,则如图3所示,步骤S201包括:
S301、获取当前缓存TCP报文的当前报文序列号和当前负荷长度;
S302、获取下一缓存TCP报文的下一报文序列号;
S303、判断当前报文序列号与当前负荷长度之和是否等于下一报文序列号;
S304、若当前报文序列号与当前负荷长度之和等于下一报文序列号,则下一缓存TCP报文需要进行局部重组。
本发明实施例将多个缓存TCP报文沿报文序列号从小到大的顺序,将需要进行局部重组的缓存TCP报文进行重组,生成局部重组TCP包。可避免重组过程发生堵塞,实现在TCP流出现丢包时,也可进行局部重组。
在一具体实施例中,TCP缓存链表中包括4个缓存TCP报文,若第一个缓存TCP报文的报文序列号和报文负荷之和等于第二个缓存TCP报文的报文序列号,若第二个缓存TCP报文的报文序列号和报文负荷之和不等于第三个缓存TCP报文的报文序列号,则局部重组仅可将第一个缓存TCP报文和第二个缓存TCP报文进行局部重组。而当第一个缓存TCP报文的报文序列号和报文负荷之和不等于第二个缓存TCP报文的报文序列号时,局部重组就是指的对第一个缓存TCP报文进行局部重组。
应当理解的是:局部重组TCP包被发送至应用分析引擎,剩余的缓存TCP报文仍旧缓存在TCP缓存链表中。
由于当TCP报文为第一个缺失的报文时,无需等到TCP缓存链表达到最大缓存限额,就可进行局部重组,因此,为了进一步提高局部重组效率,在本发明的一些实施例中,如图4所示,在步骤S103之前,TCP流重组方法还包括:
S401、判断TCP报文是否为第一个缺失的报文;
S402、若TCP报文为第一个缺失的报文,则将多个缓存TCP报文进行局部重组,获得局部重组TCP包。
本申请实施例通过设置当TCP报文为第一个缺失的报文,直接将多个缓存TCP报文进行局部重组,获得局部重组TCP包,而无需等待TCP缓存链表达到最大缓存限额时再进行局部重组,提高了局部重组的效率。
需要说明的是:步骤S401中判断TCP报文是否为第一个缺失的报文是通过在第一个缺失的报文之前的前序报文的报文序列号和负荷长度进行判断的,判断方法与判断TCP是否乱序的方法一致,在此不做赘述。
由于TCP缓存链表中的部分缓存TCP报文进行局部重组后,会从TCP缓存链表移出,剩余的一些缓存TCP报文会滞留在TCP缓存链表中,无法发送至应用分析引擎,导致应用分析引擎数据缺失,为了解决这一技术问题,在本发明的一些实施例中,如图5所示,TCP流重组方法还包括:
S501、当TCP缓存链表未达到最大缓存限额时,获取TCP报文的标志位(Flags)字段;
S502、根据标志位字段判断TCP报文是否为结束包或重置包;
S503、当TCP报文为结束包或重置包时,将多个缓存TCP报文进行全部重组,生成全部重组TCP包。
本申请实施例通过在根据标志位字段判断TCP报文为结束包或重置包时,将多个缓存TCP报文进行全部重组,生成全部重组TCP包,即:将TCP缓存链表中的所有缓存TCP报文进行重组,可将所有缓存TCP报文均发送至应用分析引擎,避免由于应用分析引擎无法接收到缓存TCP报文而导致分析出错,提高对TCP流分析的准确性。
在本发明的一些实施例中,步骤S502具体为:
当标志位字段存在结束位(FIN)时,TCP报文为结束包;当标志位字段存在重置位(RST)时,TCP报文为重置包。
在本发明的一些实施例中,步骤S503中将多个缓存TCP报文进行全部重组具体为:
依次遍历TCP缓存链表,将所有缓存TCP报文按照报文序列号从小到大的顺序进行全部重组。
为了避免当TCP缓存链表长时间未接收到新的TCP报文时,持续等待,造成缓存TCP报文长时间滞留在TCP缓存链表中,导致TCP流重组效率低的技术问题,在本发明的一些实施例中,TCP缓存链表包括定时器,则如图6所示,TCP流重组方法还包括:
S601、判断定时器是否超时;
S602、当定时器超时时,将多个缓存TCP报文进行全部重组,生成全部重组TCP包。
本申请实施例通过设置定时器,并且当定时器超时时,将多个缓存TCP报文进行全部重组,避免缓存TCP报文长时间滞留在TCP缓存链表中,提高TCP流重组效率。
应当理解的是:TCP缓存链表每次接收到一个TCP报文,定时器都会重置,重新开始计时。
需要说明的是:步骤S602中将多个缓存TCP报文进行全部重组的过程与步骤S503中将多个缓存TCP报文进行全部重组的过程相同,在此不做赘述。
进一步地,由于TCP缓存链表的最大缓存限额一般都是固定的,但实际应用中,有的应用比较重要,为了提高正确性,最大缓存限额需要大一点,但是如果把最大缓存限额统一调大,会降低整个TCP流的重组效率。为了解决这一技术问题,在本发明的一些实施例中,如图7所示,TCP流重组方法还包括:
S701、获取TCP流的应用类型;
S702、预先设置应用类型与TCP缓存链表的最大缓存限额之间的对应关系;
S703、基于应用类型和对应关系,确定TCP缓存链表的最大缓存限额。
本发明实施例通过根据不同的应用类型对应设置TCP缓存链表的最大缓存限额,即通过自适应TCP缓存链表的最大缓存限额,保证了TCP流重组的正确性和高效性。
在本发明的具体实施例中,可将TCP流的应用分为三种应用类型,分别为重要应用、常用应用和一般应用,对应的最大缓存限额也包括三个等级,分比为低等级、中等级和高等级。当TCP流的应用为重要应用时,将最大缓存限额设置为高等级;当TCP流的应用为常用应用时,将最大缓存限额设置为中等级;当TCP流的应用为一般应用时,将最大缓存限额设置为低等级。
为了更好实施本发明实施例中的TCP流重组方法,在TCP流重组方法基础之上,对应的,如图8所示,本发明实施例还提供了一种TCP流重组装置800,包括:
乱序判断单元801,用于获取TCP流中的TCP报文,并基于TCP报文的报文序列号判断TCP报文是否乱序;
报文***单元802,用于当TCP报文乱序时,将TCP报文按照报文序列号从小到大的顺序***至TCP缓存链表中,获得多个缓存TCP报文;
缓存限额判断单元803,用于判断TCP缓存链表是否达到最大缓存限额;
局部重组单元804,用于当TCP缓存链表达到最大缓存限额时,将TCP缓存链表中的多个缓存TCP报文进行局部重组,获得局部重组TCP包。
上述实施例提供的TCP流重组装置800可实现上述TCP流重组方法实施例中描述的技术方案,上述各模块或单元具体实现的原理可参见上述TCP流重组方法实施例中的相应内容,此处不再赘述。
如图9所示,本发明还相应提供了一种电子设备900。该电子设备900包括处理器901、存储器902及显示器903。图9仅示出了电子设备900的部分组件,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
存储器902在一些实施例中可以是电子设备900的内部存储单元,例如电子设备900的硬盘或内存。存储器902在另一些实施例中也可以是电子设备900的外部存储设备,例如电子设备900上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
进一步地,存储器902还可既包括电子设备900的内部储存单元也包括外部存储设备。存储器902用于存储安装电子设备900的应用软件及各类数据。
处理器901在一些实施例中可以是一中央处理器(Central Processing Unit,CPU),微处理器或其他数据处理芯片,用于运行存储器902中存储的程序代码或处理数据,例如本发明中的TCP流重组方法。
显示器903在一些实施例中可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。显示器903用于显示在电子设备900的信息以及用于显示可视化的用户界面。电子设备900的部件901-903通过***总线相互通信。
在一实施例中,当处理器901执行存储器902中的TCP流重组程序时,可实现以下步骤:
获取TCP流中的TCP报文,并基于TCP报文的报文序列号判断TCP报文是否乱序;
当TCP报文乱序时,将TCP报文按照报文序列号从小到大的顺序***至TCP缓存链表中,获得多个缓存TCP报文;
判断TCP缓存链表是否达到最大缓存限额;
当TCP缓存链表达到最大缓存限额时,将TCP缓存链表中的多个缓存TCP报文进行局部重组,获得局部重组TCP包。
应当理解的是:处理器901在执行存储器902中的TCP流重组程序时,除了上面的功能之外,还可实现其它功能,具体可参见前面相应方法实施例的描述。
进一步地,本发明实施例对提及的电子设备900的类型不做具体限定,电子设备900可以为手机、平板电脑、个人数字助理(personal digital assistant,PDA)、可穿戴设备、膝上型计算机(laptop)等便携式电子设备。便携式电子设备的示例性实施例包括但不限于搭载IOS、android、microsoft或者其他操作***的便携式电子设备。上述便携式电子设备也可以是其他便携式电子设备,诸如具有触敏表面(例如触控面板)的膝上型计算机(laptop)等。还应当理解的是,在本发明其他一些实施例中,电子设备900也可以不是便携式电子设备,而是具有触敏表面(例如触控面板)的台式计算机。
相应地,本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质用于存储计算机可读取的程序或指令,程序或指令被处理器执行时,能够实现上述各方法实施例提供的方法步骤或功能。
本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于计算机可读存储介质中。其中,计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
以上对本发明所提供的TCP流重组方法、装置、电子设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种TCP流重组方法,其特征在于,包括:
获取TCP流中的TCP报文,并基于所述TCP报文的报文序列号判断所述TCP报文是否乱序;
当所述TCP报文乱序时,将所述TCP报文按照报文序列号从小到大的顺序***至TCP缓存链表中,获得多个缓存TCP报文;
判断所述TCP缓存链表是否达到最大缓存限额;
当所述TCP缓存链表达到所述最大缓存限额时,将所述TCP缓存链表中的所述多个缓存TCP报文进行局部重组,获得局部重组TCP包。
2.根据权利要求1所述的TCP流重组方法,其特征在于,所述将所述TCP缓存链表中的所述多个缓存TCP报文进行局部重组,获得局部重组TCP包,包括:
按照报文序列号从小到大的顺序依次判断所述缓存TCP报文是否需要进行局部重组,确定出需要进行局部重组的至少一个目标缓存报文;
将所述至少一个目标缓存报文进行局部重组,获得所述局部重组TCP包。
3.根据权利要求2所述的TCP流重组方法,其特征在于,所述缓存TCP报文包括当前缓存TCP报文和下一缓存TCP报文;所述按照报文序列号从小到大的顺序依次判断所述缓存TCP报文是否需要进行局部重组,包括:
获取所述当前缓存TCP报文的当前报文序列号和当前负荷长度;
获取所述下一缓存TCP报文的下一报文序列号;
判断所述当前报文序列号与所述当前负荷长度之和是否等于所述下一报文序列号;
若所述当前报文序列号与所述当前负荷长度之和等于所述下一报文序列号,则所述下一缓存TCP报文需要进行局部重组。
4.根据权利要求1所述的TCP流重组方法,其特征在于,在所述判断所述TCP缓存链表是否达到最大缓存限额之前,还包括:
判断所述TCP报文是否为第一个缺失的报文;
若所述TCP报文为第一个缺失的报文,则将所述多个缓存TCP报文进行局部重组,获得所述局部重组TCP包。
5.根据权利要求1所述的TCP流重组方法,其特征在于,所述TCP流重组方法还包括:
当所述TCP缓存链表未达到所述最大缓存限额时,获取所述TCP报文的标志位字段;
根据所述标志位字段判断所述TCP报文是否为结束包或重置包;
当所述TCP报文为结束包或重置包时,将所述多个缓存TCP报文进行全部重组,生成全部重组TCP包。
6.根据权利要求1所述的TCP流重组方法,其特征在于,所述TCP缓存链表包括定时器,所述TCP流重组方法还包括:
判断所述定时器是否超时;
当所述定时器超时时,将所述多个缓存TCP报文进行全部重组,生成全部重组TCP包。
7.根据权利要求1述的TCP流重组方法,其特征在于,在所述将所述TCP报文按照报文序列号从小到大的顺序***至TCP缓存链表中之前,所述TCP流重组方法还包括:
获取所述TCP流的应用类型;
预先设置所述应用类型与所述TCP缓存链表的最大缓存限额之间的对应关系;
基于所述应用类型和所述对应关系,确定所述TCP缓存链表的最大缓存限额。
8.一种TCP流重组装置,其特征在于,包括:
乱序判断单元,用于获取TCP流中的TCP报文,并基于所述TCP报文的报文序列号判断所述TCP报文是否乱序;
报文***单元,用于当所述TCP报文乱序时,将所述TCP报文按照报文序列号从小到大的顺序***至TCP缓存链表中,获得多个缓存TCP报文;
缓存限额判断单元,用于判断所述TCP缓存链表是否达到最大缓存限额;
局部重组单元,用于当所述TCP缓存链表达到所述最大缓存限额时,将所述TCP缓存链表中的所述多个缓存TCP报文进行局部重组,获得局部重组TCP包。
9.一种电子设备,其特征在于,包括存储器和处理器,其中,
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以实现上述权利要求1至7中任意一项所述的TCP流重组方法中的步骤。
10.一种计算机可读存储介质,其特征在于,用于存储计算机可读取的程序或指令,所述程序或指令被处理器执行时能够实现上述权利要求1至7中任意一项所述的TCP流重组方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210003638.5A CN114024924B (zh) | 2022-01-05 | 2022-01-05 | 一种tcp流重组方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210003638.5A CN114024924B (zh) | 2022-01-05 | 2022-01-05 | 一种tcp流重组方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114024924A true CN114024924A (zh) | 2022-02-08 |
CN114024924B CN114024924B (zh) | 2022-04-12 |
Family
ID=80069718
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210003638.5A Active CN114024924B (zh) | 2022-01-05 | 2022-01-05 | 一种tcp流重组方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114024924B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113364862A (zh) * | 2021-06-03 | 2021-09-07 | 上海天旦网络科技发展有限公司 | 一种拼包解码***及方法 |
CN113382013A (zh) * | 2021-06-21 | 2021-09-10 | 国网宁夏电力有限公司电力科学研究院 | 一种基于能源大数据的数据挖掘*** |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004021143A2 (en) * | 2002-08-30 | 2004-03-11 | Broadcom Corporation | Method and system for data placement of out-of-order (ooo) tcp segments |
US20040133713A1 (en) * | 2002-08-30 | 2004-07-08 | Uri Elzur | Method and system for data placement of out-of-order (OOO) TCP segments |
CN101222298A (zh) * | 2008-01-22 | 2008-07-16 | 中兴通讯股份有限公司 | 一种应用于hrpd***的前向包乱序调整的方法及基站 |
US20080298369A1 (en) * | 2002-08-30 | 2008-12-04 | Uri Elzur | System and method for handling out-of-order frames |
CN101841545A (zh) * | 2010-05-14 | 2010-09-22 | 中国科学院计算技术研究所 | 一种tcp流重组拼包方法和装置 |
CN102082688A (zh) * | 2010-12-17 | 2011-06-01 | 曙光信息产业(北京)有限公司 | 一种软硬件结合实现tcp乱序缓冲区管理的方法 |
CN104202656A (zh) * | 2014-09-16 | 2014-12-10 | 国家计算机网络与信息安全管理中心 | 网络音频mp3流乱序分段解码方法 |
CN106230744A (zh) * | 2016-07-26 | 2016-12-14 | 京信通信***(中国)有限公司 | 一种数据流乱序重组的方法及转发设备 |
CN108512708A (zh) * | 2017-02-24 | 2018-09-07 | 中兴通讯股份有限公司 | 一种缓存计算的方法及装置 |
CN109672701A (zh) * | 2017-10-16 | 2019-04-23 | 中国科学院信息工程研究所 | 一种差异化tcp链接管理方法及设备 |
CN112165457A (zh) * | 2020-09-04 | 2021-01-01 | 苏州浪潮智能科技有限公司 | 一种文件重排的方法、***、设备及可读存储介质 |
CN113014586A (zh) * | 2021-03-04 | 2021-06-22 | 即时匹配(上海)网络科技有限公司 | Rtp数据包乱序处理及重组帧方法和*** |
CN113364862A (zh) * | 2021-06-03 | 2021-09-07 | 上海天旦网络科技发展有限公司 | 一种拼包解码***及方法 |
CN113783800A (zh) * | 2021-11-10 | 2021-12-10 | 恒生电子股份有限公司 | 数据包处理方法、装置、计算机设备及可读存储介质 |
-
2022
- 2022-01-05 CN CN202210003638.5A patent/CN114024924B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004021143A2 (en) * | 2002-08-30 | 2004-03-11 | Broadcom Corporation | Method and system for data placement of out-of-order (ooo) tcp segments |
US20040133713A1 (en) * | 2002-08-30 | 2004-07-08 | Uri Elzur | Method and system for data placement of out-of-order (OOO) TCP segments |
US20080298369A1 (en) * | 2002-08-30 | 2008-12-04 | Uri Elzur | System and method for handling out-of-order frames |
CN101222298A (zh) * | 2008-01-22 | 2008-07-16 | 中兴通讯股份有限公司 | 一种应用于hrpd***的前向包乱序调整的方法及基站 |
CN101841545A (zh) * | 2010-05-14 | 2010-09-22 | 中国科学院计算技术研究所 | 一种tcp流重组拼包方法和装置 |
CN102082688A (zh) * | 2010-12-17 | 2011-06-01 | 曙光信息产业(北京)有限公司 | 一种软硬件结合实现tcp乱序缓冲区管理的方法 |
CN104202656A (zh) * | 2014-09-16 | 2014-12-10 | 国家计算机网络与信息安全管理中心 | 网络音频mp3流乱序分段解码方法 |
CN106230744A (zh) * | 2016-07-26 | 2016-12-14 | 京信通信***(中国)有限公司 | 一种数据流乱序重组的方法及转发设备 |
CN108512708A (zh) * | 2017-02-24 | 2018-09-07 | 中兴通讯股份有限公司 | 一种缓存计算的方法及装置 |
CN109672701A (zh) * | 2017-10-16 | 2019-04-23 | 中国科学院信息工程研究所 | 一种差异化tcp链接管理方法及设备 |
CN112165457A (zh) * | 2020-09-04 | 2021-01-01 | 苏州浪潮智能科技有限公司 | 一种文件重排的方法、***、设备及可读存储介质 |
CN113014586A (zh) * | 2021-03-04 | 2021-06-22 | 即时匹配(上海)网络科技有限公司 | Rtp数据包乱序处理及重组帧方法和*** |
CN113364862A (zh) * | 2021-06-03 | 2021-09-07 | 上海天旦网络科技发展有限公司 | 一种拼包解码***及方法 |
CN113783800A (zh) * | 2021-11-10 | 2021-12-10 | 恒生电子股份有限公司 | 数据包处理方法、装置、计算机设备及可读存储介质 |
Non-Patent Citations (1)
Title |
---|
赵丽莉,孙伟: "TCP协议乱序数据包处理算法综述", 《软件工程师》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113364862A (zh) * | 2021-06-03 | 2021-09-07 | 上海天旦网络科技发展有限公司 | 一种拼包解码***及方法 |
CN113382013A (zh) * | 2021-06-21 | 2021-09-10 | 国网宁夏电力有限公司电力科学研究院 | 一种基于能源大数据的数据挖掘*** |
Also Published As
Publication number | Publication date |
---|---|
CN114024924B (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114024924B (zh) | 一种tcp流重组方法、装置、电子设备及存储介质 | |
US20220309025A1 (en) | Multi-path rdma transmission | |
KR101941416B1 (ko) | 네트워킹 기술들 | |
US7269171B2 (en) | Multi-data receive processing according to a data communication protocol | |
EP2916508B1 (en) | Data packet processing method, electronic device, and storage medium | |
US7817560B2 (en) | Acknowledging packet receipt based on expected size of sender's congestion window | |
US10999377B2 (en) | Method, device and computer program product for protocol selection | |
US8312159B2 (en) | Methodology for fast file transfer protocol | |
CN105550051A (zh) | 业务请求的异步处理方法及装置 | |
CN110581812A (zh) | 一种数据报文的处理方法和装置 | |
CN114124929A (zh) | 跨网络的数据处理方法和装置 | |
CN112671771B (zh) | 数据传输方法、装置、电子设备及介质 | |
RU2329532C2 (ru) | Оптимизация ресурсов канала данных для устройств в сети | |
CN111385068A (zh) | 数据传输方法、装置、电子设备及通信*** | |
JP3569149B2 (ja) | 通信制御装置 | |
US7394813B2 (en) | Systems and methods for implementing an acknowledgement mechanism for transmission of a real-time data stream | |
CN113645291B (zh) | 数据通信方法及装置、电子设备和存储介质 | |
WO2013162569A1 (en) | Increasing a data transfer rate | |
CN111104229B (zh) | 用于数据处理的方法、设备和计算机可读存储介质 | |
CN106385409B (zh) | 一种tcp报文的处理方法及装置 | |
CN114024868B (zh) | 流量统计方法、流量质量分析方法及装置 | |
CN1698280A (zh) | 通过无线设备的开放数据信道捎带数据的***和方法 | |
CN112882838B (zh) | 用于腾退资源实例的方法和装置 | |
CN117768190A (zh) | 一种基于http格式报文的病毒拦截方法、装置及设备 | |
CN113141632A (zh) | 一种5g通信用户面有序转发数据包的方法和终端 |
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 |