CN112769830A - Tcp会话老化控制方法及装置 - Google Patents
Tcp会话老化控制方法及装置 Download PDFInfo
- Publication number
- CN112769830A CN112769830A CN202110035996.XA CN202110035996A CN112769830A CN 112769830 A CN112769830 A CN 112769830A CN 202110035996 A CN202110035996 A CN 202110035996A CN 112769830 A CN112769830 A CN 112769830A
- Authority
- CN
- China
- Prior art keywords
- keep
- message
- alive
- server
- client
- 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.)
- Pending
Links
- 230000032683 aging Effects 0.000 title claims abstract description 70
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000012790 confirmation Methods 0.000 claims abstract description 81
- 230000002431 foraging effect Effects 0.000 claims abstract 2
- 238000004590 computer program Methods 0.000 claims description 4
- 238000010276 construction Methods 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 2
- 238000004891 communication Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012216 screening Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000002035 prolonged effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 208000024891 symptom Diseases 0.000 description 1
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/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
-
- 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
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
- H04L67/145—Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0254—Stateful filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0263—Rule management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
Abstract
本说明书提供一种TCP会话老化控制方法及装置,在TCP目标会话需要老化的情况下,通过该目标会话对应的已有报文,确定了第一数值和第二数值,并构造了客户端向服务器发送的服务器保活询问报文,和服务器向客户端发送的保活询问报文,其中,保活询问报文为TCP支持的保活报文,在收到服务器保活确认报文和客户端保活确认报文的情况下,不老化该会话,并等待下一次会话需要老化的时机的到来。报文转发设备构造的保活询问报文,使得其伪装客户端向在服务器询问是否需要该长连接该长连接是否存活,并伪装服务器向客户端询问是否需要该长连接该长连接是否存活,在服务器和客户端都维持该长连接的情况下,不老化该目标会话,使得长连接不会被影响。
Description
技术领域
本说明书涉及技术通信技术领域,尤其涉及一种TCP会话老化控制方法及装置。
背景技术
在一些业务场景下,客户端和服务器之间为了针对指定业务进行数据交互,可以经由报文转发设备建立传输控制协议(Transmission Control Protocol,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是本说明书根据一实施例示出的另一种TCP会话老化控制方法的流程图。
图3是本说明书根据一实施例示出的一种报文处理方法的流程图。
图4是本说明书根据一示例性实施例示出的一种TCP会话老化控制装置的框图。
图5本说明书根据一示例性实施例示出的一种TCP会话老化控制的装置所在计算机设备的一种硬件结构图。
具体实施方式
客户端和服务器之间在建立TCP长连接(established状态)后,按照默认模式,在闲置时长超过老化时间(established状态的老化时间一般为60分钟)没有报文交互(即闲置时长超过老化时长)的情况下,报文转发设备(一般指的是防火墙)将老化该TCP长连接对应的会话。在会话已经老化,但是实际上客户端和服务器仍需要该TCP长连接的情况下,由于报文转发设备只能根据请求建立连接的报文建立会话,在再次收到该会话对应的报文的情况下,报文转发设备由于无法匹配到会话,只能将该报文丢包,造成通信的中断;即使报文转发设备可以直接按照五元组的目的IP地址和目的端口转发报文,但是一些报文转发设备(比如防火墙)一般涉及NAT场景,那么即使按照五元组转发,目的设备也可能不认为该报文为该长连接对应的报文。
相关技术中,一般通过预设筛选规则,筛选出可能存在的长连接,延长该已建立的长连接对应会话的老化时间,其中,预设的筛选规则,可以是根据技术人员已知的长连接,预设的包过滤规则,也可以是根据五元组筛选规则,还可以是根据内置的长连接应用来筛选的规则。但是这些方法都存在一些弊端,首先,这些方法并没有消除长连接失效的可能,延长了老化时间,但是闲置时长比延长的老化时间还长时,该会话仍然会被提前老化,这是一种治标不治本的方法;其次,预设规则只对技术人员事先已知的长连接有用,对于技术人员事先未知的长连接,只有在该长连接被影响后,技术人员才能设置可以筛选该长连接的规则。
在TCP目标会话需要老化的情况下,通过该目标会话对应的已有报文,确定了第一数值和第二数值,通过第一数值和第二数值,构造了客户端向服务器发送的服务器保活询问报文,并同时构造了服务器向客户端发送的保活询问报文,其中,保活询问报文为TCP支持的保活报文,并分别向服务器和客户端发送服务器保活询问报文和客户端保活询问报文,在收到服务器保活确认报文和客户端保活确认报文的情况下,不老化该会话,并等待下一次会话需要老化的时机的到来。报文转发设备构造的保活询问报文,使得其伪装客户端检测服务器的长连接是否存活,并伪装服务器检测客户端的长连接是否存活,在服务器和客户端都维持该长连接的情况下,不老化该目标会话,使得长连接不会被影响,报文转发设备可以正常转发客户端和服务器之间交互的业务报文。此外,还使得长连接可以灵活老化。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
接下来对本说明书实施例进行详细说明。
本说明书的一个或多个实施例公开了一种TCP会话老化控制方法,应用于报文转发设备,所述报文转发设备维护目标会话,所述目标会话是客户端与服务器之间通过所述报文转发设备已建立的TCP长连接对应的会话。
报文转发设备一般指的是防火墙,防火墙基于状态监测,可以检测TCP连接的状态。本说明书中的方法针对一个目标会话进行描述,当存在多个目标会话的情况下,可以循环执行图1所示的步骤。在事先不知道哪些会话是符合标准的目标会话的情况下,可以遍历会话表,判断每个会话是否处于established状态,并对处于established状态的会话执行图1所示的步骤。为了节省报文转发设备的会话资源,不影响其他状态会话的正常老化,本申请只是针对已建立的TCP长连接对应的会话进行改进,也就是说,只是针对established状态的会话进行改进,其他状态的会话将不进行改进。
如图1所示,图1是本说明书根据一示例性实施例示出的一种TCP会话老化控制方法的流程图,在确定所述目标会话的闲置时长超过老化时长的情况下,执行以下步骤:
步骤102,获取第一数值与第二数值,所述第一数值不大于所述客户端生成针对所述服务器的下一个报文时所采用的序列号(Sequence Number),所述第二数值不大于所述服务器生成针对所述客户端的下一个报文时所采用的序列号。
其中,闲置时长是一个变量,记录的是该会话对应的最近的一个报文至统计该闲置时长的时间所经过的时长,而老化时长可以根据需求进行设定,例如可以是默认模式的30分钟,也可以是1个小时。
其中,在收到客户端向服务器发送和服务器向客户端发送的所述TCP长连接对应的报文的情况下,记录该报文携带的序列号、确认号(AcknowledgmentNumber)和载荷长度。在这种情况下,获取第一数值和第二数值的方法,可以是根据最近记录的序列号、确认号和载荷长度,生成第一数值和第二数值,所述第一数值不大于两者中较大的一个,两者分别是所述客户端向服务器的报文序列号和载荷长度之和,和服务器向客户端的报文的确认号,所述第二数值不大于另外两者中较大的一个,另外两者为,服务器向客户端的报文的序列号和载荷长度之和,和客户端向服务器的报文的确认号。
也可以是,在收到所述客户端向所述服务器发送的所述TCP长连接对应的报文的情况下,记录该报文携带的序列号、确认号和载荷长度,其中,为了保证记录的序列号、确认号和载荷长度为最新的数值,若已经记录了序列号、确认号和载荷长度,且当前报文的序列号和载荷长度之和小于已经记录的序列号,或者当前报文的确认号小于已经记录的确认号,则不更改所记录的序列号。在这种情况下,获取第一数值和第二数值的方法,可以是根据最近记录的序列号、确认号和载荷长度,生成第一数值和第二数值,所述第一数值不大于所述序列号和载荷长度之和,所述第二数值不大于所述确认号。取不大于确认号或者序列号和载荷长度之和的值,是为了不影响之后的报文发送。在构造的保活询问报文,以及客户端和服务器回应的保活确认报文的载荷长度为0的情况下,第一数值可以为序列号和载荷长度之和,第二数值可以为确认号。
在只记录客户端向服务器发送的报文的序列号确认号,可以在不影响第一数值和第二数值取值的情况下,节省报文转发设备的处理压力。因为所述步骤在闲置时长大于老化时长时执行,客户端和服务器的上一条报文如果是正常结束的业务报文,一般该报文为客户端向服务器发送的TCPack报文。所以在只记录客户端向服务器发送的报文的情况下,就可以表示最新的序列号。此外,为了保证客户端可以正常识别报文转发设备发送的报文,需要使得第一数值和序列号和载荷长度之和的差较小,第二数值和确认号的差也应较小或为零。
此外,由于考虑到序列号和确认号存在翻转的情况,也就是说序列号和确认号达到最大值后,会重新从最小值开始计算,获取第一数值和第二数值时,应该注意取的值不能超过序列号和确认号所能描述的最小值。
步骤104,将第一数值作为确认号,第二数值作为序列号,构造TCP支持的客户端保活询问报文;将第一数值作为序列号,第二数值作为确认号,构造TCP支持的服务器保活询问报文。
除了需要参考第一数值和第二数值,构造报文还需要五元组等信息。需要通过第一数值和第二数值来构造保活询问报文,是因为需要通过原有的TCP长连接来给客户端和服务器发送报文,而TCP报文是通过序列号和确认号来确认报文的先后顺序的,如果序列号取随机值,将不能被客户端和服务器识别。其中,保活询问报文可以是keepalive报文。
步骤106,向所述客户端发送客户端保活询问报文,向所述服务器发送服务器保活询问报文。
为了确认该会话的通信双方是否还需要该会话(服务器或客户端宕机时,该会话不再被需要),以决定是否老化该会话,需要报文转发设备知晓服务器或客户端是否还需要该会话对应的长连接。报文转发设备向客户端发送客户端保活询问报文,实际上是伪装成服务器,向客户端发送保活询问报文,报文转发设备向服务器发送服务器保活询问报文,实际上是伪装成客户端,向服务器发送保活询问报文。
步骤108,在收到客户端保活确认报文和服务器保活确认报文情况下,拒绝老化所述目标会话,并确定重新累计所述闲置时长。
也就是说,在报文转发设备确认客户端和服务器都需要该会话的情况下,不老化该会话,并重新累计闲置时长。其中,在收到该会话对应的其他报文的情况下,都应该重新累计闲置时长,但是在收到客户端或服务器针对报文转发设备构造的保活询问报文回应的保活确认报文的情况下,不应该立刻重新累计闲置时长,只有在收到两方的保活确认报文的情况下,才重新累计该闲置时长。
此外,系统还有预设阈值,为了避免由于网络不畅通导致保活询问报文不能到达客户端和服务器的情况发生,在未收到客户端保活确认报文的情况下,执行以下步骤:在未收到客户端保活确认报文或服务器保活确认报文,且发送保活询问报文的次数不小于预设阈值的情况下,再次向所述客户端发送客户端保活询问报文,并向所述服务器发送服务器保活询问报文;在未收到客户端保活确认报文或服务器保活确认报文,且发送次数不小于预设阈值的情况下,老化所述目标会话。
此外,除了报文转发设备会发送保活询问报文,每隔一定时间,客户端和服务器也有可能需要发送保活询问报文,为了不影响客户端保活确认报文或服务器保活确认报文的正常处理,需要:在收到客户端保活确认报文或服务器保活确认报文的情况下,判断该保活确认报文是否是针对报文转发设备构造的保活询问报文发送的;若该保活确认报文是针对报文转发设备构造的保活询问报文发送的,则丢弃该报文;若该保活确认报文不是针对报文转发设备构造的保活询问报文发送的,则转发该报文。
其中,为了不影响服务器和客户端之间的原本的正常通信,在收到不是针对报文转发设备构造的保活询问报文发送的保活确认报文时,应当重新累计闲置时长,并正常转发该报文。对于针对报文转发设备构造的保活询问报文发送的保活确认报文,这种保活确认报文只是为了让报文转发设备知晓客户端或服务器需要该长连接对应的会话,为了节约报文转发设备的处理资源,可以将这种保活确认报文丢包;保活确认报文一般是TCPack报文,这种情况下,为了减小开发难度,也可以将这种保活确认报文正常转发,正常转发也不会影响客户端和服务器之间的正常连接通信。
由于客户端和服务器之间发送保活确认报文的频率为2小时发一次,而报文转发设备的老化时长一般为半个小时,现有的客户端和服务器之间的保活确认报文并不能解决现有问题;如果将所有会话的老化时长设置为2小时以上,将会影响其他会话的正常老化。此外,针对报文转发设备来说,报文转发设备并不知道客户端和服务器之间的保活机制的发送频率,报文转发设备也不能更改客户端和服务器的配置,该方法不需要调整客户端和服务器,只需要修改报文转发设备的配置,就可以实现不影响客户端和服务器之间的长连接的目的。
检测报文转发设备收到的保活确认报文是针对哪个保活询问报文回应的方法可以是:所述报文转发设备还记录有所述TCP会话对应的第一标记或第二标记,所述第一标记用于表征所述报文转发设备已经向所述服务器发送服务器保活询问报文,并已经向所述客户端发送客户端保活询问报文,所述第二标记用于表征报文转发设备未服务器发送服务器保活询问报文,或未向客户端发送客户端保活询问报文。判断该保活确认报文是否是针对报文转发设备构造的保活询问报文发送的,具体包括:判断所述目标会话记录的标记为第一标记还是第二标记,若所述目标会话记录有第一标记,则确定该保活确认报文是针对报文转发设备构造的保活询问报文发送的,若所述目标会话记录有第二标记,则确定该保活确认报文不是针对报文转发设备构造的保活询问报文发送的。
通过上述方法,在报文转发设备需要老化目标会话的情况下,报文转发设备仿造了客户端向服务器发送的服务器保活询问报文,以及服务器向客户端发送的客户端服务器保活确认报文,在客户端和服务器都需要该长连接对应的会话的情况下,不老化该目标会话。这样,会话可以在需要老化的情况下老化,在不能老化会话的情况下,也能灵活调整会话的闲置时长。这样解决了相关技术中,延长某些会话的老化时长带来的治标不治本的问题;在技术人员不知道某些长连接时,也能灵活老化所有长连接;此外,本方法不需要相关技术中复杂的规则配置就能实现灵活老化。
接下来,将从以具体实施例,来描述TCP会话老化控制方法。相关技术中,报文转发设备,本方法涉及对于两方面的改进,一方面是在报文接收到会话的情况下的处理,另一方面是在会话需要老化的情况下的处理。
如图2所示,图2是本说明书根据一实施例示出的另一种TCP会话老化控制方法的流程图,包括以下步骤:
步骤201,遍历会话表,判断当前TCP会话闲置时长是否超过老化时间。
会话表中有多个会话,遍历会话表,针对TCP会话,判断每个会话的闲置时长是否超过老化时间,如果超过,执行步骤202。
步骤202,当前会话会话是否处于established状态,如果当前会话是established状态的会话,执行步骤203,如果不是established状态,执行步骤205。
步骤203,该会话是否对应记录有第一标记,如果有第一标记,执行步骤204,如果没有第一标记,执行步骤206。
其中与前述内容相似,第一标记用于表征所述报文转发设备已经向所述服务器发送服务器保活询问报文,并已经向所述客户端发送客户端保活询问报文。
步骤204,保活询问报文发送次数是否超过预设阈值,如果已经超过阈值了,执行步骤205,如果没有超过阈值,执行步骤207。
步骤205,老化该会话。
步骤206,将该会话对应的标记修改为第一标记。
步骤207,根据会话记录的五元组、上一个报文的序列号和确认号,构造服务器保活询问报文和服务器保活确认报文。
如图3所示,图2是本说明书根据一实施例示出的一种报文处理方法的流程图,方法包括以下步骤:
步骤301,收到报文并匹配到会话。
与相关技术中相同,收到报文后,需要根据报文的五元组查找会话,在没查找到会话,且是首包报文的情况下,可以根据该报文建立会话。此外,在匹配到会话后,需要更新会话时间、报文个数、报文字节数等信息。
步骤302,报文的传输层协议是否为TCP,如果是TCP,执行步骤303,如果不是,执行步骤310。
步骤303,报文是否是客户端发往服务器,如果是客户端发往服务器,则执行步骤304,如果不是,则执行步骤305。
步骤304,记录报文的序列号、确认号和载荷长度。
步骤305,该会话是否对应有第一标记,如果有第一标记,则执行步骤306,如果没有,则执行步骤310。
步骤306,报文是否是保活确认报文,如果是,则执行步骤307,如果不是,则执行步骤310。
步骤307,标记报文对应方向保活检测成功,并丢弃该报文。
步骤308,另一方向是否已经保活检测成功,如果另一方向也已经保活检测成果,则执行步骤309。
步骤309,重新累计当前会话的闲置时长。
步骤310,转发该报文。
与前述TCP会话老化控制方法的实施例相对应,本说明书还提供了TCP会话老化控制装置及其所应用的计算机设备的实施例。
如图4所示,图4是本说明书根据一示例性实施例示出的一种TCP会话老化控制装置的框图,该装置应用于报文转发设备,所述报文转发设备维护目标会话,所述目标会话是客户端与服务器之间通过所述报文转发设备已建立的TCP长连接对应的会话;所述装置在确定所述目标会话的闲置时长超过老化时长的情况下运行,所述装置包括:
数值获取模块410,用于获取第一数值与第二数值,所述第一数值不大于所述客户端生成针对所述服务器的下一个报文时所采用的序列号,所述第二数值不大于所述服务器生成针对所述客户端的下一个报文时所采用的序列号。
保活询问报文构造模块420,用于将第一数值作为确认号,第二数值作为序列号,构造TCP支持的客户端保活询问报文;将第一数值作为序列号,第二数值作为确认号,构造TCP支持的服务器保活询问报文。
保活询问报文发送模块430,用于向所述客户端发送客户端保活询问报文,向所述服务器发送服务器保活询问报文。
拒绝老化模块440,用于在收到客户端保活确认报文和服务器保活确认报文情况下,拒绝老化所述目标会话,并确定重新累计所述闲置时长。
保活询问报文重新发送模块441,用于在未收到客户端保活确认报文或服务器保活确认报文,且发送保活询问报文的次数不小于预设阈值的情况下,再次向所述客户端发送客户端保活询问报文,并向所述服务器发送服务器保活询问报文。
目标会话老化模块442,用于在未收到客户端保活确认报文或服务器保活确认报文,且发送次数不小于预设阈值的情况下,老化所述目标会话。
保活确认报文判断模块450,用于在收到客户端保活确认报文或服务器保活确认报文的情况下,判断该保活确认报文是否是针对报文转发设备构造的保活询问报文发送的。
报文丢弃模块451,用于若该保活确认报文是针对报文转发设备构造的保活询问报文发送的,则丢弃该报文。
报文转发模块452,用于若该保活确认报文不是针对报文转发设备构造的保活询问报文发送的,则转发该报文。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
如图5所示,图5示出了实施例TCP会话老化控制装置所在计算机设备的一种硬件结构图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本说明书实施例第一方面所述的TCP会话老化控制方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
Claims (10)
1.一种传输控制协议TCP会话老化控制方法,其特征在于,应用于报文转发设备,所述报文转发设备维护目标会话,所述目标会话是客户端与服务器之间通过所述报文转发设备已建立的TCP长连接对应的会话,所述方法包括:
在确定所述目标会话的闲置时长超过老化时长的情况下,执行以下步骤:
获取第一数值与第二数值,所述第一数值不大于所述客户端生成针对所述服务器的下一个报文时所采用的序列号,所述第二数值不大于所述服务器生成针对所述客户端的下一个报文时所采用的序列号;
将第一数值作为确认号,第二数值作为序列号,构造TCP支持的客户端保活询问报文;将第一数值作为序列号,第二数值作为确认号,构造TCP支持的服务器保活询问报文;
向所述客户端发送客户端保活询问报文,向所述服务器发送服务器保活询问报文;
在收到客户端保活确认报文和服务器保活确认报文情况下,拒绝老化所述目标会话,并确定重新累计所述闲置时长。
2.如权利要求1所述方法,其特征在于,所述方法还包括:
在收到所述客户端向所述服务器发送的所述TCP长连接对应的报文的情况下,记录该报文携带的序列号、确认号和载荷长度;
获取第一数值与第二数值,具体包括:
根据最近记录的序列号、确认号和载荷长度,生成第一数值和第二数值,所述第一数值不大于所述序列号和载荷长度之和,所述第二数值不大于所述确认号。
3.如权利要求1所述方法,其特征在于,所述方法还包括:
在未收到客户端保活确认报文或服务器保活确认报文,且发送保活询问报文的次数不小于预设阈值的情况下,再次向所述客户端发送客户端保活询问报文,并向所述服务器发送服务器保活询问报文;
在未收到客户端保活确认报文或服务器保活确认报文,且发送次数不小于预设阈值的情况下,老化所述目标会话。
4.如权利要求1所述方法,其特征在于,所述方法还包括:
在收到客户端保活确认报文或服务器保活确认报文的情况下,判断该保活确认报文是否是针对报文转发设备构造的保活询问报文发送的;
若该保活确认报文是针对报文转发设备构造的保活询问报文发送的,则丢弃该报文;
若该保活确认报文不是针对报文转发设备构造的保活询问报文发送的,则转发该报文。
5.如权利要求4所述方法,其特征在于,所述报文转发设备还记录有所述TCP会话对应的第一标记或第二标记,所述第一标记用于表征所述报文转发设备已经向所述服务器发送服务器保活询问报文,并已经向所述客户端发送客户端保活询问报文,所述第二标记用于表征报文转发设备未服务器发送服务器保活询问报文,或未向客户端发送客户端保活询问报文;
判断该保活确认报文是否是针对报文转发设备构造的保活询问报文发送的,具体包括:
判断所述目标会话记录的标记为第一标记还是第二标记,若所述目标会话记录有第一标记,则确定该保活确认报文是针对报文转发设备构造的保活询问报文发送的,若所述目标会话记录有第二标记,则确定该保活确认报文不是针对报文转发设备构造的保活询问报文发送的。
6.一种TCP会话老化控制装置,其特征在于,应用于报文转发设备,所述报文转发设备维护目标会话,所述目标会话是客户端与服务器之间通过所述报文转发设备已建立的TCP长连接对应的会话;所述装置在确定所述目标会话的闲置时长超过老化时长的情况下运行,所述装置包括:
数值获取模块,用于获取第一数值与第二数值,所述第一数值不大于所述客户端生成针对所述服务器的下一个报文时所采用的序列号,所述第二数值不大于所述服务器生成针对所述客户端的下一个报文时所采用的序列号;
保活询问报文构造模块,用于将第一数值作为确认号,第二数值作为序列号,构造TCP支持的客户端保活询问报文;将第一数值作为序列号,第二数值作为确认号,构造TCP支持的服务器保活询问报文;
保活询问报文发送模块,用于向所述客户端发送客户端保活询问报文,向所述服务器发送服务器保活询问报文;
拒绝老化模块,用于在收到客户端保活确认报文和服务器保活确认报文情况下,拒绝老化所述目标会话,并确定重新累计所述闲置时长。
7.如权利要求6所述装置,其特征在于,所述装置还包括:
保活询问报文重新发送模块,用于在未收到客户端保活确认报文或服务器保活确认报文,且发送保活询问报文的次数不小于预设阈值的情况下,再次向所述客户端发送客户端保活询问报文,并向所述服务器发送服务器保活询问报文;
目标会话老化模块,用于在未收到客户端保活确认报文或服务器保活确认报文,且发送次数不小于预设阈值的情况下,老化所述目标会话。
8.如权利要求6所述装置,其特征在于,所述装置还包括:
保活确认报文判断模块,用于在收到客户端保活确认报文或服务器保活确认报文的情况下,判断该保活确认报文是否是针对报文转发设备构造的保活询问报文发送的;
报文丢弃模块,用于若该保活确认报文是针对报文转发设备构造的保活询问报文发送的,则丢弃该报文;
报文转发模块,用于若该保活确认报文不是针对报文转发设备构造的保活询问报文发送的,则转发该报文。
9.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1至5中任一项所述的TCP会话老化控制方法。
10.一种计算机设备,其特征在于,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1至5中任一项所述的TCP会话老化控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110035996.XA CN112769830A (zh) | 2021-01-12 | 2021-01-12 | Tcp会话老化控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110035996.XA CN112769830A (zh) | 2021-01-12 | 2021-01-12 | Tcp会话老化控制方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112769830A true CN112769830A (zh) | 2021-05-07 |
Family
ID=75701575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110035996.XA Pending CN112769830A (zh) | 2021-01-12 | 2021-01-12 | Tcp会话老化控制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112769830A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103546389A (zh) * | 2012-07-09 | 2014-01-29 | 中国电信股份有限公司 | 降低stun服务器负载的方法、装置和系统 |
US20140330977A1 (en) * | 2013-05-06 | 2014-11-06 | Jeroen van Bemmel | Stateless recognition of keep-alive packets |
CN105933333A (zh) * | 2016-06-20 | 2016-09-07 | 锐捷网络股份有限公司 | 一种企业网认证计费的方法和出口网关 |
CN111163160A (zh) * | 2019-12-27 | 2020-05-15 | 杭州迪普科技股份有限公司 | 一种会话表项的保活方法及系统 |
-
2021
- 2021-01-12 CN CN202110035996.XA patent/CN112769830A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103546389A (zh) * | 2012-07-09 | 2014-01-29 | 中国电信股份有限公司 | 降低stun服务器负载的方法、装置和系统 |
US20140330977A1 (en) * | 2013-05-06 | 2014-11-06 | Jeroen van Bemmel | Stateless recognition of keep-alive packets |
CN105933333A (zh) * | 2016-06-20 | 2016-09-07 | 锐捷网络股份有限公司 | 一种企业网认证计费的方法和出口网关 |
CN111163160A (zh) * | 2019-12-27 | 2020-05-15 | 杭州迪普科技股份有限公司 | 一种会话表项的保活方法及系统 |
Non-Patent Citations (1)
Title |
---|
杭州迪普科技有限公司: "DNS安全防护解决方案", 《电信技术》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200382578A1 (en) | Communication Method, System and Apparatus | |
EP3506565B1 (en) | Packet loss detection for user datagram protocol (udp) traffic | |
US10103962B1 (en) | Return path trace | |
US9331915B1 (en) | Dynamic network traffic mirroring | |
WO2021083341A1 (zh) | 一种报文处理的方法、网络节点和系统 | |
CN113300816B (zh) | 节点定位方法、网络传输方法、装置及设备 | |
US20160006818A1 (en) | Reducing a Number of Server-Client Sessions | |
CN112217859A (zh) | 负载均衡方法、系统、移动终端及存储介质 | |
CN110545230B (zh) | 用于转发vxlan报文的方法和装置 | |
CN114071544B (zh) | 网络测试方法、装置和电子设备 | |
CN112737945B (zh) | 服务器连接控制方法及装置 | |
CN113328972A (zh) | 设备监测方法、装置、设备及存储介质 | |
CN112749015B (zh) | 负载均衡方法及装置 | |
CN111694836A (zh) | 遥测数据错误检测 | |
CN113839882A (zh) | 一种报文流分流方法及装置 | |
CN113179295A (zh) | 报文处理方法及装置 | |
WO2017071430A1 (zh) | 处理报文的方法、网卡及系统、更新信息的方法及主机 | |
CN112769830A (zh) | Tcp会话老化控制方法及装置 | |
CN114285771B (zh) | 一种tcp连接的连接状态追踪方法及装置 | |
CN113162830B (zh) | 一种物联网智能终端设备发现方法、装置及电子设备 | |
US11638134B2 (en) | Methods, systems, and computer readable media for resource cleanup in communications networks | |
CN111935206B (zh) | 报文处理方法、装置及网络设备 | |
CN113452663B (zh) | 基于应用特征的网络业务控制 | |
CN114598532A (zh) | 连接建立方法、装置、电子设备和存储介质 | |
CN111163160A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210507 |