CN111405007A - Tcp会话管理方法、装置、存储介质及电子设备 - Google Patents
Tcp会话管理方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN111405007A CN111405007A CN202010152632.5A CN202010152632A CN111405007A CN 111405007 A CN111405007 A CN 111405007A CN 202010152632 A CN202010152632 A CN 202010152632A CN 111405007 A CN111405007 A CN 111405007A
- Authority
- CN
- China
- Prior art keywords
- data packet
- hash
- hash table
- tcp session
- hash value
- 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
- 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
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/028—Dynamic adaptation of the update intervals, e.g. event-triggered updates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
Abstract
本申请公开了一种TCP会话管理方法、装置、存储介质及电子设备,电子设备中配置有第一哈希表和第二哈希表,该方法包括:将获取的数据包对应的哈希值存储在第一哈希表中,直至满足预设第一条件;清空第二哈希表存储的哈希值以及对应的TCP会话;将获取的数据包对应的哈希值存储在第二哈希表中,直至满足预设第二条件;清空第一哈希表存储的哈希值以及对应的TCP会话,并触发执行将获取的数据包对应的哈希值存储在第一哈希表中,直至满足预设第一条件的流程。利用2个哈希表交替清除超时会话,可以高效地清除超时的TCP会话。
Description
技术领域
本申请属于通信技术领域,尤其涉及一种TCP会话管理方法、装置、存储介质及电子设备。
背景技术
TCP(Transmission Control Protocol)是一种面向连接的协议,通过TCP会话可以进行数据传输。随着因特网和其他互联网承载的通信量在持续增长,TCP会话的数量也在持续增长。为保证正常的TCP会话,需要及时关闭超时的TCP会话以释放系统资源。然而,相关技术中,清除超时TCP会话的效率较低。
发明内容
本申请实施例提供一种TCP会话管理的方法、装置、存储介质及电子设备,可以提高清除超时TCP会话的效率。
本申请实施例提供一种TCP会话管理的方法,其应用于电子设备中,所述电子设备中配置有第一哈希表和第二哈希表,所述第一哈希表和所述第二哈希表用于存储TCP会话对应的哈希值,一个所述TCP会话包括至少一个数据包,所述方法包括:
获取数据包及其对应的哈希值,将获取的数据包对应的哈希值存储在第一哈希表中,直至满足预设第一条件;
清空所述第二哈希表存储的哈希值以及对应的TCP会话;
获取数据包及其对应的哈希值,将获取的数据包对应的哈希值存储在所述第二哈希表中,直至满足预设第二条件;
清空所述第一哈希表存储的哈希值以及对应的TCP会话,并触发执行所述获取数据包及其对应的哈希值,将所述获取的数据包对应的哈希值存储在所述第一哈希表中,直至满足预设第一条件的流程。
本申请实施例还提供一种TCP会话管理的装置,其应用于电子设备中,所述电子设备中配置有第一哈希表和第二哈希表,所述第一哈希表和所述第二哈希表用于存储TCP会话对应的哈希值,一个所述TCP会话包括至少一个数据包,所述装置包括:
第一存储模块,用于获取数据包及其对应的哈希值,将获取的数据包对应的哈希值存储在第一哈希表中,直至满足预设第一条件;
第一清空模块,用于清空所述第二哈希表存储的哈希值以及对应的TCP会话;
第二存储模块,用于获取数据包及其对应的哈希值,将获取的数据包对应的哈希值存储在所述第二哈希表中,直至满足预设第二条件;
第二清空模块,用于清空所述第一哈希表存储的哈希值以及对应的TCP会话,并触发执行所述获取数据包及其对应的哈希值,将所述获取的数据包对应的哈希值存储在所述第一哈希表中,直至满足预设第一条件的流程。
本申请实施例还提供一种存储介质,其上存储有计算机程序,当所述计算机程序在计算机上执行时,使得所述计算机执行本申请实施例提供的方法。
本申请实施例还提供一种电子设备,其包括存储器,处理器,所述处理器通过调用所述存储器中存储的计算机程序,用于执行本申请实施例提供的方法。
本实施例中,通过设置2个哈希表,将新获取的数据包对应的哈希值存入第一哈希表,直至满足预设第一条件,然后清空第二哈希表存储的哈希值以及对应的TCP会话,利用2个哈希表交替清空超时的TCP会话,提高了清除超时TCP会话的效率。
附图说明
下面结合附图,通过对本申请的具体实施方式详细描述,将使本申请的技术方案及其有益效果显而易见。
图1是本申请实施例提供的TCP会话管理的方法的流程示意图。
图2是本申请实施例提供的TCP会话管理的方法的另一流程示意图。
图3至图4是本申请实施例提供的TCP会话管理的方法的场景示意图。
图5是本申请实施例提供的TCP会话管理的方法的又一流程示意图。
图6是本申请实施例提供的TCP会话管理的装置的结构示意图。
图7是本申请实施例提供的电子设备的结构示意图。
图8是本申请实施例提供的电子设备的另一结构示意图。
具体实施方式
请参照图示,其中相同的组件符号代表相同的组件,本申请的原理是以实施在一适当的运算环境中来举例说明。以下的说明是基于所例示的本申请具体实施例,其不应被视为限制本申请未在此详述的其它具体实施例。
可以理解的是,本申请实施例的执行主体可以是诸如智能手机或平板电脑等的电子设备。
请参阅图1,图1是本申请实施例提供的TCP会话管理的方法的流程示意图,流程可以包括:
在101中,获取数据包及其对应的哈希值,将所述获取的数据包对应的哈希值存储在所述第一哈希表中,直至满足预设第一条件。
TCP会话基于面向连接的协议(Transmission Control Protocol,TCP)传输数据。该TCP会话管理方法应用于电子设备中,电子设备中配置有第一哈希表和第二哈希表,第一哈希表和第二哈希表用于存储TCP会话对应的哈希值,一个TCP会话包括至少一个数据包,每一个数据包包含五元组信息,数据包的五元组信息能够区分不同的TCP会话,五元组信息是指:源IP地址、目的IP地址、协议号、源端口、目的端口。
在数据传输过程中,电子设备获取到数据包,对每个数据包都提取五元组信息,根据预设算法计算出数据包对应的哈希值,预设算法可以是多种哈希算法的一种算法,相同哈希值的数据包对应同一个TCP会话,不同哈希值的数据包则对应不同的TCP会话。计算出数据包对应的哈希值后,将获取的数据包对应的哈希值存储在第一哈希表中,直至满足预设第一条件。满足预设第一条件可以理解为获取当前时间与预设时间的差值,并且所述差值达到预设时长阈值。
从第一时间到第二时间的这段时间内,电子设备获取的数据包对应的哈希值存储在第一哈希表,其中,第一时间为预设时间,第二时间为预设时间之后经过预设时长阈值所对应的时间。
在这段时间内,电子设备获取的数据包对应的哈希值不会存入第二哈希表中,也可以理解为在这段时间内第二哈希表中存储的哈希值对应的所有TCP会话没有接收到新的数据包,因此当前时间与预设时间的差值达到预设时长阈值时即满足预设第一条件时,第二哈希表中存储的所有哈希值对应的数据包超时。
第二哈希表中存储的所有哈希值对应的数据包超时也可以理解为数据包对应的TCP会话超时,TCP会话超时可以理解为该TCP会话长时间没有获取到新的数据包,则认为该TCP会话已经完成数据传输或者发生异常。
在一种实施例中,电子设备获取数据包的哈希值还可以通过提取数据包的四元组、七元组等信息计算得到。
在102中,清空第二哈希表存储的哈希值以及对应的TCP会话。
若满足预设第一条件,则电子设备可以清空所述第二哈希表存储的哈希值以及对应的TCP会话。TCP会话可以包括多个数据包,清空TCP会话即是清空TCP会话包括的所有数据包。满足预设第一条件时,第二哈希表中存储的所有哈希值对应的数据包都超时,即第二哈希表中存储的所有哈希值对应的TCP会话都超时,因此可以删除第二哈希表存储的哈希值以及对应的TCP会话,可以释放资源,以保证系统内存稳定。
在103中,获取数据包及其对应的哈希值,将所述获取的数据包对应的哈希值存储在所述第二哈希表中,直至满足预设第二条件。
第二哈希表存储的哈希值以及对应的TCP会话被清空后,接下来电子设备获取的数据包对应的哈希值会存储在第二哈希表中。满足预设第二条件可以理解为获取当前时间与预设时间的差值,并且所述差值达到2倍预设时长阈值。
从第二时间到第三时间的这段时间内,电子设备获取的数据包对应的哈希值存储在第二哈希表,其中,第二时间为预设时间之后经过预设时长阈值所对应的时间,第三时间为预设时间之后经过2倍预设时长阈值所对应的时间。
在这段时间内,电子设备获取的数据包对应的哈希值不会存入第一哈希表中,也可以理解为在这段时间内第一哈希表中存储的哈希值对应的所有TCP会话没有接收到新的数据包,因此当差值达到2倍预设时长阈值时即满足预设第二条件时,第一哈希表中存储的所有哈希值对应的数据包超时。
在104中,清空所述第一哈希表存储的哈希值以及对应的TCP会话,并触发执行所述获取数据包及其对应的哈希值,将所述获取的数据包对应的哈希值存储在所述第一哈希表中,直至满足预设第一条件的流程。
若满足预设第二条件,则电子设备可以清空第一哈希表存储的哈希值以及对应的TCP会话。满足预设第二条件时,第一哈希表中存储的所有哈希值对应的数据包都超时,即第一哈希表中存储的所有哈希值对应的TCP会话都超时,因此可以删除第一哈希表存储的哈希值以及对应的TCP会话可以释放资源,并触发执行101对应的流程,即循环上述流程。
通过设置2个哈希表进行TCP会话的超时管理,将获取的数据包对应的哈希值存入第一哈希表,直至满足预设第一条件,然后清空第二哈希表存储的哈希值以及对应的TCP会话,接下来将获取的数据包对应的哈希值存入第二哈希表,直至满足预设第二条件,然后清空第一哈希表存储的哈希值以及对应的TCP会话,循环上述步骤。通过2个哈希表交替清除超时TCP会话,可以高效地清除超时的TCP会话,提高清除超时TCP会话的效率,而不需要遍历每一个TCP会话,逐一判断每一个TCP会话是否超过阈值时间,充分利用了哈希表的插入和查找元素的特殊优势,规避了哈希表遍历较慢的不足,节约了系统资源,提升了系统性能,更好得保证了正常的TCP会话。
请参阅图2,图2为本申请实施例提供的TCP会话管理的方法的另一流程示意图,流程可以包括:
在201中,获取数据包及其对应的哈希值。
电子设备获取到数据包,对每个数据包都提取五元组信息,根据预设算法计算出数据包对应的哈希值。获取数据包的哈希值还可以通过提取数据包的四元组、七元组等信息计算得到。
在202中,获取当前时间与预设时间的差值。
预设时间是基于TCP会话设置的一个基准时间。
在203中,若差值小于预设时长阈值,则获取第一哈希表的第一标志位。
电子设备中配置有第一哈希表和第二哈希表,第一哈希表和第二哈希表用于存储TCP会话对应的哈希值,第一哈希表设置有第一标志位,第二哈希表设置有第二标志位,第一标志位和第二标志位的类型可以为布尔型(bool)也可以根据需要设置为其它类型,第一标志位和第二标志位的初始值为第一值,第一值可以是1(true),也可以为0(false)。
在204中,若第一标志位为第一值,则清空第一哈希表存储的哈希值以及对应的TCP会话,并将第一标志位设为第二值,将第二哈希表的第二标志位设为第一值。
从第一时间到第二时间的这段时间内,电子设备需要将获取的数据包对应的哈希值存储在第一哈希表中,其中,第一时间为预设时间,第二时间为预设时间之后经过预设时长阈值所对应的时间。通过第一哈希表的第一标志位来判断第一哈希表是否已经清空过。若第一标志位为第一值,则说明第一哈希表中已超时的TCP会话对应的哈希值还未清空,则需清空所述第一哈希表,并将第一标志位从第一值变为第二值;若第一标志位为第二值,则说明第一哈希表已被清空过,在这段时间内不会再次清空第一哈希表。
通过第一标志位的值可以判断第一哈希表是否已经清空过,当清空第一哈希表后,第一标志位的值会发生变化,这段时间内不会再次清空第一哈希表。
在205中,若第一标志位为第二值,则将获取的数据包对应的哈希值存储在第一哈希表中。
若第一标志位为第二值,说明第一哈希表已被清空过,则电子设备可以直接将获取的数据包对应的哈希值存储在第一哈希表中。接着等待下一个数据包的到来。
在一种实施例中,将获取的数据包对应的哈希值存储在所述第一哈希表中可以包括:
判断所述第二哈希表中是否包括数据包对应的哈希值;
若是,则将数据包对应的哈希值存储在所述第一哈希表中,并将数据包对应的哈希值从所述第二哈希表中删除,并更新数据包对应的TCP会话;
若否,则在所述第一哈希表中查找数据包对应的哈希值;
若查找到,则更新数据包对应的TCP会话;
若未查找到,则将数据包对应的哈希值存储在所述第一哈希表中,并新建数据包对应的TCP会话。
当获取到数据包时,电子设备判断第二哈希表中是否包括该数据包对应的哈希值,若该数据包的哈希值已存储在第二哈希表中,说明对应的TCP会话已存在并且还在正常数据传输,则将该数据包对应的哈希值存储在第一哈希表中,并更新所述数据包对应的TCP会话,以及将该数据包对应的哈希值从第二哈希表中删除。若获取到的数据包的哈希值不存储在第二哈希表中,而在第一哈希表中查找到,说明该数据包的哈希值已存储在第一哈希表,且对应TCP会话已存在,则电子设备更新该数据包对应的TCP会话,将获取到的数据包和该TCP会话的其它数据包存储在一起或关联起来。若获取到的数据包的哈希值在第一哈希表中也没有查找到,说明对应的TCP会话是一个新的TCP会话,则电子设备将该数据包对应的哈希值存储在所述第一哈希表中,并新建该数据包对应的TCP会话。
可以理解的是哈希表里除了可以存储数据包对应的哈希值以外,还可以储存数据包,当电子设备需要更新数据包对应的TCP会话时,可以将获取到的数据包和对应的TCP会话的其它数据包一起存储在哈希表。
在一种实施例中,电子设备还可以将数据包存储在哈希表以外的其它存储区域,哈希表里存储数据包对应的地址,当需要更新数据包对应的TCP会话时,可以将获取到的数据包的地址和对应的TCP会话的其它数据包的地址一起存储在哈希表。
在206中,若所述差值达到预设时长阈值,则确定满足预设第一条件。
从第一时间到第二时间的这段时间内,电子设备获取的数据包对应的哈希值都存储在第一哈希表,直到所述差值达到预设时长阈值,其中,第一时间为预设时间,第二时间为预设时间之后经过预设时长阈值所对应的时间。接着重新获取当前时间与预设时间的差值。
在207中,若差值大于预设时长阈值,且小于2倍预设时长阈值,则获取第二哈希表的第二标志位。
第二标志位的初始值为第一值,204对应的步骤中也将第二标志位设为第一值。
在208中,若第二标志位为第一值,则清空第二哈希表存储的哈希值以及对应的TCP会话,并将第二标志位设为第二值,将第一哈希表的第一标志位设为第一值。
从第二时间到第三时间的这段时间内,电子设备需要将获取的数据包对应的哈希值存储在第二哈希表中,其中,第二时间为预设时间之后经过预设时长阈值所对应的时间,第三时间为预设时间之后经过2倍预设时长阈值所对应的时间。通过第二哈希表的第二标志位来判断第二哈希表是否已经清空过。若第二标志位为第一值,则说明第二哈希表中已超时的TCP会话对应的哈希值还未清空,则需清空所述第二哈希表,并将第二标志位从第一值变为第二值;若第二标志位为第二值,则说明第二哈希表已被清空过,在这段时间内不会再次清空第二哈希表。
通过第二标志位的值可以判断第二哈希表是否已经清空过,当清空第二哈希表后,第二标志位的值会发生变化,这段时间内不会再次清空第二哈希表。
在209中,若第二标志位为第二值,则获取数据包及其对应的哈希值,将获取的数据包对应的哈希值存储在第二哈希表中。
若第二标志位为第二值,说明第二哈希表已被清空过,则电子设备可以直接将获取的数据包对应的哈希值存储在第二哈希表中。接着等待下一个数据包的到来。
在一种实施例中,将获取的数据包对应的哈希值存储在所述第二哈希表中可以包括:
判断第一哈希表中是否包括数据包对应的哈希值;
若是,则将数据包对应的哈希值从第一哈希表中删除,并将数据包对应的哈希值存储在第二哈希表中,并更新数据包对应的TCP会话;
若否,则在第二哈希表中查找数据包对应的哈希值;
若查找到,则更新数据包对应的TCP会话;
若未查找到,则将数据包对应的哈希值存储在所述第二哈希表中,并新建数据包对应的TCP会话。
当获取到数据包时,电子设备判断第一哈希表中是否包括该数据包对应的哈希值,若该数据包的哈希值已存储在第一哈希表中,说明对应的TCP会话已存在并且还在正常数据传输,则将该数据包对应的哈希值存储在第二哈希表中,并更新所述数据包对应的TCP会话,以及将该数据包对应的哈希值从第一哈希表中删除。若获取到的数据包的哈希值没有存储在第一哈希表中,而在第二哈希表中查找到,说明该数据包的哈希值已存储在第二哈希表,且对应TCP会话已存在,则电子设备更新该数据包对应的TCP会话,将新获取到的数据包和该TCP会话的其它数据包存储在一起或关联起来。若获取到的数据包的哈希值在第二哈希表中也没有查找到,说明对应的TCP会话是一个新的TCP会话,则电子设备将该数据包对应的哈希值存储在所述第二哈希表中,并新建该数据包对应的TCP会话。
在210中,若所述差值达到2倍预设时长阈值,则确定满足预设第二条件,并将所述预设时间更新为当前时间,并触发201对应的步骤。
从第二时间到第三时间的这段时间内,电子设备获取的数据包对应的哈希值都存储在第二哈希表,直到所述差值达到2倍预设时长阈值,其中,第二时间为预设时间之后经过预设时长阈值所对应的时间,第三时间为预设时间之后经过2倍预设时长阈值所对应的时间,然后将预设时间更新为当前时间,并触发201对应的步骤,即循环上述流程。
通过设置2个哈希表进行TCP会话的超时管理。若当前时间与预设时间的差值小于预设时长阈值,且第一哈希表的第一标志位为第一值,则清空第一哈希表,然后将获取的数据包对应的哈希值存储在之前已经清空的第一哈希表中,直至差值达到预设时长阈值。若差值大于预设时长阈值且小于2倍预设时长阈值,并且第二哈希表的第二标志位为第一值,则清空第二哈希表。然后将获取的数据包对应的哈希值存储在之前已经清空的第二哈希表中,直至差值达到2倍预设时长阈值。循环上述步骤。通过2个哈希表及其标志位交替清除超时TCP会话,可以高效地清除超时的TCP会话,提高清除超时TCP会话的效率,而不需要遍历每一个TCP会话,逐一判断每一个TCP会话是否超过阈值时间,充分利用了哈希表的插入和查找元素的特殊优势,规避了哈希表遍历较慢的不足,节约了系统资源,提升了系统性能,更好得保证了正常的TCP会话。
TCP会话管理的方法可以应用于TCP会话还原和TCP会话重组等中,基于TCP协议,在数据传输过程中,一个数据包较小,但是要传输的信息(如图片)的大小超过一个数据包的大小,信息会分成多个数据包传输,多个数据包传输过程中不是按顺序到达的,接收端接收到多个数据包后,将多个数据包恢复到原来的顺序的过程为TCP会话重组,然后将多个数据包还原到图片,整个过程为TCP会话还原。由于系统稳定,数据包不容易丢包和延迟,在对TCP会话进行安全检测时,可以更快速准确检测TCP会话是否包含病毒,提高了TCP会话的安全性。
请参阅图3至图4,图3至图4为本申请实施例提供的TCP会话管理的方法的场景示意图。
若当前时间和预设时间的差值小于预设时长阈值,则将获取到的数据包以及对应的哈希值都存储在第一哈希表中,若第二哈希表中已存储了该数据包的哈希值,则将该哈希值对应的数据包存储进第一哈希表,并将该哈希值和对应的数据包从第二哈希表中删除。
若当前时间和预设时间的差值达到预设时长阈值,则清空第二哈希表。
若当前时间和预设时间的差值大于预设时长阈值且小于2倍预设时长阈值,则将获取到的数据包以及对应的哈希值都存储在第二哈希表中,若第一哈希表中已存储了该数据包的哈希值,则将该哈希值对应的数据包存储进第二哈希表,并将该哈希值和对应的数据包从第一哈希表中删除。若当前时间和预设时间的差值达到2倍预设时长阈值,则清空第一哈希表,并将预设时间更新为当前时间。循环上述步骤。具体的实现方式可以参考上述实施例,在此不再赘述。
为方便理解,下面举例说明TCP会话管理的方法,请参阅图5,图5为本申请实施例提供的TCP会话管理的方法的又一个流程图,TCP会话管理的方法具体可以包括:
在301中,创建两个哈希表std::unordered_map,分别是第一哈希表tableA和第二哈希表tableB,为两个哈希表预分配一定大小的空间;创建两个标记位,分别为第一标志位flagA和第二标志位flagB,其类型可以为布尔型bool,初始值都为第一值true;记录预设时间lastTurn;设定TCP会话超时时间为预设时长阈值timeout。
在302中,当新来一个数据包的时候,解析其五元组信息,计算其哈希值hashValue。
在303中,若当前时间减去lastTurn小于timeout,则转至304。
在304中,若flagA是true,则清空tableA,将flagA置为false,flagB置为true;若flagA是false,则转至305。
在305中,从tableB中查找该hashValue,若找到,则将找到的TCP会话取出添加到tableA中,并tableB中删除该TCP会话;若没有找到,则从tableA中查找该hashValue,若在tableA中找到,则更新tableA的TCP会话,若在tableA中没有找到,则创建该TCP会话,插入到tableA中。
在306中,等待下一个数据包的到来,即回到302。
在307中,若当前时间减去lastTurn大于等于timeout,则转至308;
在308中,若flagB是true,则清空tableB,将flagB置为false,flagA置为true;若flagB是false,则转至309。
在309中,从tableA中查找该hashValue,若找到,则将找到的TCP会话取出添加到tableB中,并tableA中删除该TCP会话;若没有找到,则从tableB中查找该hashValue,若在tableB找到,则更新tableB的TCP会话,若在tableB没有找到,则创建该TCP会话,插入到tableB中。
在310中,判断当前时间减去lastTurn是否达到2倍timeout,如果是,则将lastTurn置为当前时间。
在311中,等待下一个数据包的到来,即回到302。
请参阅图6,图6为本申请实施例提供的TCP会话管理的装置的结构示意图。该TCP会话管理的装置,应用于电子设备中,该电子设备中配置有第一哈希表和第二哈希表,所述第一哈希表和第二哈希表用于存储TCP会话对应的哈希值,一个所述TCP会话包括至少一个数据包。TCP会话管理的装置400可以包括第一存储模块401、第一清空模块402、第二存储模块403、第二清空模块404:
第一存储模块401,用于获取数据包及其对应的哈希值,将获取的数据包对应的哈希值存储在第一哈希表中,直至满足预设第一条件;
第一清空模块402,用于清空所述第二哈希表存储的哈希值以及对应的TCP会话;
第二存储模块403,用于获取数据包及其对应的哈希值,将获取的数据包对应的哈希值存储在所述第二哈希表中,直至满足预设第二条件;
第二清空模块404,用于清空所述第一哈希表存储的哈希值以及对应的TCP会话,并触发执行所述获取数据包及其对应的哈希值,将所述获取的数据包对应的哈希值存储在所述第一哈希表中,直至满足预设第一条件的流程。
在一种实施例中,所述第一存储模块401还用于获取当前时间与预设时间的差值,若所述差值达到预设时长阈值,则确定满足预设第一条件。所述第二存储模块403还用于获取当前时间与预设时间的差值,若所述差值达到2倍预设时长阈值,则确定满足预设第二条件,并将所述预设时间更新为当前时间。
在一种实施例中,所述第一存储模块401还用于判断所述第二哈希表中是否包括所述数据包对应的哈希值;若是,则将所述数据包对应的哈希值存储在所述第一哈希表中,并将所述数据包对应的哈希值从所述第二哈希表中删除,并更新所述数据包对应的TCP会话;若否,则在所述第一哈希表中查找所述数据包对应的哈希值;若查找到,则更新所述数据包对应的TCP会话;若未查找到,则将所述数据包对应的哈希值存储在所述第一哈希表中,并新建所述数据包对应的TCP会话。
在一种实施例中,在将获取的数据包对应的哈希值存储在第一哈希表中,所述第一存储模块401还用于获取所述第一哈希表的第一标志位;若所述第一标志位为第一值,则第二清空模块404还用于清空所述第一哈希表存储的哈希值以及对应的TCP会话,并将所述第一标志位设为第二值,将所述第二哈希表的第二标志位设为第一值;
若所述第一标志位为第二值,则第一存储模块401还用于将获取的数据包对应的哈希值存储在所述第一哈希表中;
在所述清空所述第二哈希表存储的哈希值以及对应的TCP会话;获取数据包及其对应的哈希值,将获取的数据包对应的哈希值存储在所述第二哈希表中:
第二存储模块403还用于获取第二哈希表的第二标志位;若所述第二标志位为第一值,则第一清空模块402还用于清空所述第二哈希表存储的哈希值以及对应的TCP会话,并将所述第二标志位设为第二值,将第一哈希表的第一标志位设为第一值;
若所述第二标志位为第二值,则第二存储模块403还用于获取数据包及其对应的哈希值,将获取的数据包对应的哈希值存储在所述第二哈希表中。
在一种实施例中,第一存储模块401和第二存储模块403还用于获取数据包;根据数据包的五元组信息计算得到对应的哈希值。
本申请实施例提供一种计算机可读的存储介质,其上存储有计算机程序,当所述计算机程序在计算机上执行时,使得所述计算机执行如本实施例提供的TCP会话管理的方法中的流程。
本申请实施例还提供一种电子设备,包括存储器,处理器,所述处理器通过调用所述存储器中存储的计算机程序,以执行本实施例提供的网络连接方法中的流程。
例如,上述电子设备可以是诸如平板电脑或者智能手机等移动终端。请参阅图7,图7为本申请实施例提供的电子设备的结构示意图。
该电子设备500可以包括通信模组501、存储器502、处理器503等部件。本领域技术人员可以理解,图7中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
通信模组501可用于基于TCP协议与其它设备进行通信。
存储器502可用于存储应用程序和数据。存储器502存储的应用程序中包含有可执行代码。应用程序可以组成各种功能模块。处理器503通过运行存储在存储器502的应用程序,从而执行各种功能应用以及数据处理。
处理器503是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器502内的应用程序,以及调用存储在存储器502内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。
在本实施例中,电子设备中的处理器503会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行代码加载到存储器502中,并由处理器503来运行存储在存储器502中的应用程序,从而执行:
获取数据包及其对应的哈希值,将所述获取的数据包对应的哈希值存储在所述第一哈希表中,直至满足预设第一条件;
清空所述第二哈希表存储的哈希值以及对应的TCP会话;
获取数据包及其对应的哈希值,将所述获取的数据包对应的哈希值存储在所述第二哈希表中,直至满足预设第二条件;
清空所述第一哈希表存储的哈希值以及对应的TCP会话,并触发执行所述获取数据包及其对应的哈希值,将所述获取的数据包对应的哈希值存储在所述第一哈希表中,直至满足预设第一条件的流程。请参阅图8,电子设备600可以包括通信模组601、存储器602、处理器603、输入单元604、输出单元605、扬声器606、麦克风607等部件。
通信模组601可用于基于TCP协议与其它设备进行通信。
存储器602可用于存储应用程序和数据。存储器602存储的应用程序中包含有可执行代码。应用程序可以组成各种功能模块。处理器603通过运行存储在存储器602的应用程序,从而执行各种功能应用以及数据处理。
处理器603是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器602内的应用程序,以及调用存储在存储器602内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。
输入单元604可用于接收输入的数字、字符信息或用户特征信息(比如指纹),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
输出单元605可用于显示由用户输入的信息或提供给用户的信息以及电子设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。输出单元可包括显示面板。
在本实施例中,电子设备中的处理器603会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行代码加载到存储器602中,并由处理器603来运行存储在存储器602中的应用程序,从而执行:
获取数据包及其对应的哈希值,将所述获取的数据包对应的哈希值存储在所述第一哈希表中,直至满足预设第一条件;
清空所述第二哈希表存储的哈希值以及对应的TCP会话;
获取数据包及其对应的哈希值,将所述获取的数据包对应的哈希值存储在所述第二哈希表中,直至满足预设第二条件;
清空所述第一哈希表存储的哈希值以及对应的TCP会话,并触发执行所述获取数据包及其对应的哈希值,将所述获取的数据包对应的哈希值存储在所述第一哈希表中,直至满足预设第一条件的流程。。
在一种实施方式中,处理器603执行当满足预设第一条件的时候,可以执行获取当前时间与预设时间的差值;若所述差值达到预设时长阈值,则确定满足预设第一条件;当满足预设第二条件的时候,可以执行获取当前时间与所述预设时间的差值;若所述差值达到2倍预设时长阈值,则确定确定满足预设第二条件,并将所述预设时间更新为当前时间。
在一种实施方式中,处理器603执行将获取的数据包对应的哈希值存储在第一哈希表中时,可以执行获取所述第一哈希表的第一标志位;若所述第一标志位为第一值,则清空所述第一哈希表存储的哈希值以及对应的TCP会话,并将所述第一标志位设为第二值,将所述第二哈希表的第二标志位设为第一值;若所述第一标志位为第二值,则将获取的数据包对应的哈希值存储在所述第一哈希表中;当获取数据包及其对应的哈希值,将获取的数据包对应的哈希值存储在第二哈希表中时,可以执行获取所述第二哈希表的第二标志位;若所述第二标志位为第一值,则清空所述第二哈希表存储的哈希值以及对应的TCP会话,并将所述第二标志位设为第二值,将所述第一哈希表的第一标志位设为第一值;若所述第二标志位为第二值,则获取数据包及其对应的哈希值,将获取的数据包对应的哈希值存储在所述第二哈希表中。
在一种实施方式中,处理器603执行将获取的数据包对应的哈希值存储在第一哈希表中时,可以执行判断所述第二哈希表中是否包括所述数据包对应的哈希值;若是,则将所述数据包对应的哈希值存储在所述第一哈希表中,并将所述数据包对应的哈希值从所述第二哈希表中删除,并更新所述数据包对应的TCP会话。若否,则在所述第一哈希表中查找所述数据包对应的哈希值;若查找到,则更新所述数据包对应的TCP会话;若未查找到,则将所述数据包对应的哈希值存储在所述第一哈希表中,并新建所述数据包对应的TCP会话
在一种实施方式中,处理器603执行获取数据包;根据数据包的五元组信息计算得到对应的哈希值。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文针对TCP会话管理的方法的详细描述,此处不再赘述。
本申请实施例提供的所述TCP会话管理的装置与上文实施例中的TCP会话管理的方法属于同一构思,在所述TCP会话管理的装置上可以运行所述TCP会话管理的方法实施例中提供的任一方法,其具体实现过程详见所述TCP会话管理的方法实施例,此处不再赘述。
需要说明的是,对本申请实施例所述TCP会话管理的方法而言,本领域普通技术人员可以理解实现本申请实施例所述TCP会话管理的方法的全部或部分流程,是可以通过计算机程序来控制相关的硬件来完成,所述计算机程序可存储于一计算机可读取存储介质中,如存储在存储器中,并被至少一个处理器执行,在执行过程中可包括如所述调整匹配度的方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储器(ROM,ReadOnly Memory)、随机存取记忆体(RAM,Random Access Memory)等。
对本申请实施例的所述TCP会话管理的装置而言,其各功能模块可以集成在一个处理芯片中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中,所述存储介质譬如为只读存储器,磁盘或光盘等。
以上对本申请实施例所提供的一种TCP会话管理的方法、装置、存储介质以及电子设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种TCP会话管理方法,应用于电子设备中,其特征在于,所述电子设备中配置有第一哈希表和第二哈希表,所述第一哈希表和所述第二哈希表用于存储TCP会话对应的哈希值,一个所述TCP会话包括至少一个数据包,所述方法包括:
获取数据包及其对应的哈希值,将所述获取的数据包对应的哈希值存储在所述第一哈希表中,直至满足预设第一条件;
清空所述第二哈希表存储的哈希值以及对应的TCP会话;
获取数据包及其对应的哈希值,将所述获取的数据包对应的哈希值存储在所述第二哈希表中,直至满足预设第二条件;
清空所述第一哈希表存储的哈希值以及对应的TCP会话,并触发执行所述获取数据包及其对应的哈希值,将所述获取的数据包对应的哈希值存储在所述第一哈希表中,直至满足预设第一条件的流程。
2.根据权利要求1所述的TCP会话管理方法,其特征在于,所述满足预设第一条件,包括:
获取当前时间与预设时间的差值;
若所述差值达到预设时长阈值,则确定满足预设第一条件;
所述满足预设第二条件,包括:
获取当前时间与所述预设时间的差值;
若所述差值达到2倍预设时长阈值,则确定满足预设第二条件,并将所述预设时间更新为当前时间。
3.根据权利要求1或2所述的TCP会话管理方法,其特征在于,所述将获取的数据包对应的哈希值存储在第一哈希表中,包括:
获取所述第一哈希表的第一标志位;
若所述第一标志位为第一值,则清空所述第一哈希表存储的哈希值以及对应的TCP会话,并将所述第一标志位设为第二值,将所述第二哈希表的第二标志位设为第一值;
若所述第一标志位为第二值,则将获取的数据包对应的哈希值存储在所述第一哈希表中;
所述获取数据包及其对应的哈希值,将获取的数据包对应的哈希值存储在所述第二哈希表中,包括:
获取所述第二哈希表的第二标志位;
若所述第二标志位为第一值,则清空所述第二哈希表存储的哈希值以及对应的TCP会话,并将所述第二标志位设为第二值,将所述第一哈希表的第一标志位设为第一值;
若所述第二标志位为第二值,则获取数据包及其对应的哈希值,将获取的数据包对应的哈希值存储在所述第二哈希表中。
4.根据权利要求1所述的TCP会话管理方法,其特征在于,所述将获取的数据包对应的哈希值存储在第一哈希表中包括:
判断所述第二哈希表中是否包括所述数据包对应的哈希值;
若是,则将所述数据包对应的哈希值存储在所述第一哈希表中,并将所述数据包对应的哈希值从所述第二哈希表中删除,以及更新所述数据包对应的TCP会话;
若否,则在所述第一哈希表中查找所述数据包对应的哈希值;
若查找到,则更新所述数据包对应的TCP会话;
若未查找到,则将所述数据包对应的哈希值存储在所述第一哈希表中,并新建所述数据包对应的TCP会话。
5.根据权利要求1所述的TCP会话管理方法,其特征在于,所述获取数据包及其对应的哈希值包括:
获取数据包;
根据数据包的五元组信息计算得到对应的哈希值。
6.一种TCP会话管理的装置,应用于电子设备中,其特征在于,所述电子设备中配置有第一哈希表和第二哈希表,所述第一哈希表和所述第二哈希表用于存储TCP会话对应的哈希值,一个所述TCP会话包括至少一个数据包,所述装置包括:
第一存储模块,用于获取数据包及其对应的哈希值,将获取的数据包对应的哈希值存储在第一哈希表中,直至满足预设第一条件;
第一清空模块,用于清空所述第二哈希表存储的哈希值以及对应的TCP会话;
第二存储模块,用于获取数据包及其对应的哈希值,将获取的数据包对应的哈希值存储在所述第二哈希表中,直至满足预设第二条件;
第二清空模块,用于清空所述第一哈希表存储的哈希值以及对应的TCP会话,并触发执行所述获取数据包及其对应的哈希值,将所述获取的数据包对应的哈希值存储在所述第一哈希表中,直至满足预设第一条件的流程。
7.根据权利要求6所述的TCP会话管理装置,其特征在于,所述第一存储模块还用于获取当前时间与预设时间的差值,若所述差值达到预设时长阈值,则确定满足预设第一条件;
所述第二存储模块还用于获取当前时间与所述预设时间的差值,若所述差值达到2倍预设时长阈值,则确定满足预设第二条件,并将所述预设时间更新为当前时间。
8.根据权利要求6所述的TCP会话管理装置,其特征在于,所述第一存储模块还用于判断所述第二哈希表中是否包括所述数据包对应的哈希值;若是,则将所述数据包对应的哈希值存储在所述第一哈希表中,并将所述数据包对应的哈希值从所述第二哈希表中删除,并更新所述数据包对应的TCP会话;若否,则在所述第一哈希表中查找所述数据包对应的哈希值;若查找到,则更新所述数据包对应的TCP会话;若未查找到,则将所述数据包对应的哈希值存储在所述第一哈希表中,并新建所述数据包对应的TCP会话。
9.一种计算机可读的存储介质,其上存储有计算机程序,其特征在于,当所述计算机程序在计算机上执行时,使得所述计算机执行如权利要求1至5中任一项所述的方法。
10.一种电子设备,包括存储器,处理器,其特征在于,所述处理器通过调用所述存储器中存储的计算机程序,以执行如权利要求1至5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010152632.5A CN111405007B (zh) | 2020-03-06 | 2020-03-06 | Tcp会话管理方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010152632.5A CN111405007B (zh) | 2020-03-06 | 2020-03-06 | Tcp会话管理方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111405007A true CN111405007A (zh) | 2020-07-10 |
CN111405007B CN111405007B (zh) | 2022-10-21 |
Family
ID=71436107
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010152632.5A Active CN111405007B (zh) | 2020-03-06 | 2020-03-06 | Tcp会话管理方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111405007B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112000668A (zh) * | 2020-08-12 | 2020-11-27 | 广州市百果园信息技术有限公司 | 统计数据清理方法、装置、设备及存储介质 |
CN113722312A (zh) * | 2021-11-03 | 2021-11-30 | 中国电力科学研究院有限公司 | 电网故障告警数据折叠方法、系统、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101355570A (zh) * | 2008-09-19 | 2009-01-28 | 杭州华三通信技术有限公司 | 老化消息上报的控制方法和控制装置 |
CN102045346A (zh) * | 2010-11-25 | 2011-05-04 | 深圳市科陆电子科技股份有限公司 | 一种采用Netty框架实现的TCP服务通道 |
US20120185585A1 (en) * | 2011-01-19 | 2012-07-19 | Cisco Technology, Inc. | Adaptive Idle Timeout for TCP Connections in ESTAB State |
CN104394164A (zh) * | 2014-12-06 | 2015-03-04 | 金琥 | 基于会话和协议识别https端口数据的方法 |
US20160014239A1 (en) * | 2014-07-08 | 2016-01-14 | Canon Kabushiki Kaisha | Communication apparatus and control method of communication apparatus |
CN106059956A (zh) * | 2016-06-24 | 2016-10-26 | 汉柏科技有限公司 | 一种用于网络设备会话的时间队列处理方法以及装置 |
CN108712462A (zh) * | 2018-04-09 | 2018-10-26 | 阿里巴巴集团控股有限公司 | 一种连接建立方法、装置以及设备 |
-
2020
- 2020-03-06 CN CN202010152632.5A patent/CN111405007B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101355570A (zh) * | 2008-09-19 | 2009-01-28 | 杭州华三通信技术有限公司 | 老化消息上报的控制方法和控制装置 |
CN102045346A (zh) * | 2010-11-25 | 2011-05-04 | 深圳市科陆电子科技股份有限公司 | 一种采用Netty框架实现的TCP服务通道 |
US20120185585A1 (en) * | 2011-01-19 | 2012-07-19 | Cisco Technology, Inc. | Adaptive Idle Timeout for TCP Connections in ESTAB State |
US20160014239A1 (en) * | 2014-07-08 | 2016-01-14 | Canon Kabushiki Kaisha | Communication apparatus and control method of communication apparatus |
CN104394164A (zh) * | 2014-12-06 | 2015-03-04 | 金琥 | 基于会话和协议识别https端口数据的方法 |
CN106059956A (zh) * | 2016-06-24 | 2016-10-26 | 汉柏科技有限公司 | 一种用于网络设备会话的时间队列处理方法以及装置 |
CN108712462A (zh) * | 2018-04-09 | 2018-10-26 | 阿里巴巴集团控股有限公司 | 一种连接建立方法、装置以及设备 |
Non-Patent Citations (2)
Title |
---|
SUN GUO-DONG等: ""Link Management and Timeout Mechanism for Content Audit"", 《IEEE》 * |
窦衍旭: ""高速网络流量内容还原系统的设计与实现"", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112000668A (zh) * | 2020-08-12 | 2020-11-27 | 广州市百果园信息技术有限公司 | 统计数据清理方法、装置、设备及存储介质 |
CN113722312A (zh) * | 2021-11-03 | 2021-11-30 | 中国电力科学研究院有限公司 | 电网故障告警数据折叠方法、系统、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111405007B (zh) | 2022-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10439926B2 (en) | Network analysis | |
CN111314358B (zh) | 攻击防护方法、装置、系统、计算机存储介质及电子设备 | |
CN108023808A (zh) | 应用程序中的消息分发方法及装置 | |
CN111405007B (zh) | Tcp会话管理方法、装置、存储介质及电子设备 | |
WO2017185718A1 (zh) | 系统服务的重载方法及装置 | |
CN114697391B (zh) | 数据处理方法、装置、设备以及存储介质 | |
CN113595927A (zh) | 一种旁路模式下镜像流量的处理方法和装置 | |
CN112910793B (zh) | 用于七层负载均衡中连接复用的方法和负载均衡器 | |
CN105681265A (zh) | 单边传输控制协议加速方法及装置 | |
CN114500633B (zh) | 数据转发方法、相关装置、程序产品及数据传输系统 | |
CN108200221B (zh) | 一种网络地址转换环境中转换规则同步方法及装置 | |
CN108460044B (zh) | 数据的处理方法和装置 | |
CN112688885A (zh) | 一种报文处理方法及装置 | |
CN116015796A (zh) | 一种流表更新方法、装置、防火墙设备及存储介质 | |
CN112131263B (zh) | 软件包获取方法、系统、装置、电子设备和存储介质 | |
CN115002028A (zh) | 一种报文处理方法、装置及介质 | |
CN110896391B (zh) | 一种报文处理方法和装置 | |
CN113489775A (zh) | 一种基于vpp的七层负载均衡服务器及负载均衡方法 | |
WO2020258101A1 (zh) | 用户相似度计算方法、装置、服务端及存储介质 | |
CN112131223B (zh) | 流量分类统计方法、装置、计算机设备和存储介质 | |
CN111163160A (zh) | 一种会话表项的保活方法及系统 | |
CN115242733B (zh) | 报文组播方法、组播网关、电子设备及存储介质 | |
CN116260855B (zh) | 通信方法、装置、电子设备以及存储介质 | |
CN109068170A (zh) | 一种弹幕消息的存储方法、装置、终端和存储介质 | |
CN108399078B (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 |