TCP连接关闭方法及装置制造方法及图纸

技术编号:13790453 阅读:45 留言:0更新日期:2016-10-05 21:58
本发明专利技术提供一种TCP连接关闭方法及装置,该方法应用在用于实现客户端与服务器之间数据传输的中间设备上,以客户端和服务器中的一个设备作为本端设备,另一个设备作为对端设备,该方法包括:将本端设备发送的第一FIN报文转发给对端设备;将对端设备返回的第一ACK报文转发给本端设备,至此,本端设备至对端设备的链路正常关闭。在本端设备至对端设备的链路正常关闭后,中间设备通过在预设时间内未接收到对端设备向本端设备发送的第二FIN报文时,构造第二FIN报文并将该第二FIN报文发送给本端设备,可以使本端设备在接收到该第二FIN报文后,通过中间设备向对端设备返回第二ACK报文,由此可以关闭对端设备至本端设备的链路,从而实现TCP连接的完全关闭。

【技术实现步骤摘要】

本专利技术涉及网络通信
,尤其涉及一种TCP(Transmission Control Protocol,传输控制协议)会话老化方法及装置。
技术介绍
随着网络技术的发展,为了实现互联网上客户端与服务器之间的数据传输,通常客户端与服务器之间需要首先建立TCP连接。当数据传输完成后,客户端与服务器之间需要关闭TCP连接。其中,在关闭客户端与服务器之间的TCP连接时,若将客户端和服务器中的一个设备作为本端设备,另一个设备作为对端设备,可以首先由本端设备通过中间设备(诸如路由器和交换机等)向对端设备发送第一FIN(Finish,终止)报文,对端设备在接收到第一FIN报文后通过中间设备向本端设备返回第一ACK(Acknowledgement,确认)报文,由此关闭本端设备至对端设备的链路;之后,由对端设备通过中间设备向本端设备发送第二FIN报文,本端设备在接收到第二FIN报文后,通过中间设备向对端设备返回第二ACK报文,由此关闭对端设备至本端设备的链路。只有当本端设备至对端设备的链路以及对端设备至本端设备的链路均处于关闭状态时,客户端与服务器之间的TCP连接才能实现完全关闭。然而,为了实现客户端与服务器之间数据的准确传输,在客户端与服务器建立TCP连接的过程中,中间设备会在本地建立对应的TCP会话。另外,为了减少TCP会话对资源的占用,在关闭TCP连接的过程中,若本端设备至对端设备的链路正常关闭,但是中间设备在预设的时间内未接收到对端设备向本端设备发送的第二FIN报文,则中间设备会将对应的TCP会话进行老化
(即清除对应的TCP会话)。在TCP会话老化后,中间设备可能无法将对端设备发送的第二FIN报文正确传输给本端设备,从而可能导致无法关闭对端设备至本端设备的链路,进而无法完全关闭客户端与服务器之间的TCP连接。
技术实现思路
本专利技术提供一种TCP连接关闭方法及装置,以解决无法完全关闭客户端与服务器之间的TCP连接的问题。根据本专利技术实施例的第一方面,提供一种TCP连接关闭方法,所述方法应用在用于实现客户端与服务器之间数据传输的中间设备上,以所述客户端和所述服务器中的一个设备作为本端设备,另一个设备作为对端设备,所述方法包括:接收所述本端设备发送的第一FIN报文;将所述第一FIN报文发送给所述对端设备;判断在第一预设时间内是否接收到所述对端设备返回的第一ACK报文;若在所述第一预设时间内接收到所述对端设备返回的第一ACK报文,则将所述第一ACK报文发送给所述本端设备;判断在第二预设时间内是否接收到所述对端设备发送的第二FIN报文;若在所述第二预设时间内未接收到所述对端设备发送的第二FIN报文,则构造所述第二FIN报文,并将所述第二FIN报文发送给所述本端设备,以使所述本端设备在接收到所述第二FIN报文后,向所述中间设备返回第二ACK报文,以关闭所述TCP连接。根据本专利技术实施例的第二方面,提供一种TCP连接关闭装置,所述装置应用在用于实现客户端与服务器之间数据传输的中间设备上,以所述客户端和所述服务器中的一个设备作为本端设备,另一个设备作为对端设备,所述装置包括:接收单元,用于接收所述本端设备发送的第一FIN报文;发送单元,用于将所述第一FIN报文发送给所述对端设备;判断单元,用于判断在第一预设时间内是否接收到所述对端设备返回的第一ACK报文;所述发送单元,还若在所述第一预设时间内接收到所述对端设备返回的第一ACK报文,则将所述第一ACK报文发送给所述本端设备;所述判断单元,还用于判断在第二预设时间内是否接收到所述对端设备发送的第二FIN报文;所述发送单元,还用于若在所述第二预设时间内未接收到所述对端设备发送的第二FIN报文,则构造所述第二FIN报文,并将所述第二FIN报文发送给所述本端设备,以使所述本端设备在接收到所述第二FIN报文后,向所述中间设备返回第二ACK报文,以关闭所述TCP连接。本专利技术的有益效果是:本专利技术实施例中,在本端设备至对端设备的链路正常关闭后,中间设备通过在预设时间内未接收到对端设备向本端设备发送的第二FIN报文时,构造第二FIN报文并将该第二FIN报文发送给本端设备,可以使本端设备在接收到该第二FIN报文后,通过中间设备向对端设备返回第二ACK报文,由此可以关闭对端设备至本端设备的链路,从而实现TCP连接的完全关闭。附图说明图1是应用本专利技术实施例实现客户端与服务器之间数据传输的应用场景示意图;图2是本专利技术TCP连接关闭方法的一个实施例流程图;图3是本专利技术TCP连接关闭装置所在设备的一种硬件结构图;图4是本专利技术TCP连接关闭装置的一个实施例框图。具体实施方式为了使本
的人员更好地理解本专利技术实施例中的技术方案,并使本专利技术实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对
本专利技术实施例中技术方案作进一步详细的说明。参见图1,为应用本专利技术实施例实现客户端与服务器之间数据传输的应用场景示意图。图1中,该客户端可以具体为手机、PC(Personal Computer,个人计算机)等,中间设备可以具体为路由器和交换机等。其中,客户端与服务器可以通过中间设备建立TCP连接,在建立TCP连接后,客户端与服务器可以通过中间设备进行数据传输。本专利技术实施例中,以客户端和服务器中的一个设备作为本端设备,另一个设备作为对端设备,在关闭TCP连接的过程中,可以首先由本端设备通过中间设备向对端设备发送第一FIN报文,然后由对端设备通过中间设备向本端设备返回第一ACK报文,至此,本端设备至对端设备的链路关闭。在关闭本端设备至对端设备的链路后,中间设备通过在预设时间内未接收到对端设备向本端设备发送的第二FIN报文时,构造第二FIN报文并将该第二FIN报文发送给本端设备,可以使本端设备在接收到该第二FIN报文后,通过中间设备向对端设备返回第二ACK报文,由此可以关闭对端设备至本端设备的链路,从而实现TCP连接的完全关闭。参见图2,为本专利技术TCP连接关闭方法的一个实施例流程图,该实施例从用于实现客户端与服务器之间数据传输的中间设备侧进行描述,该方法可以包括以下步骤:步骤201、接收本端设备发送的第一FIN报文。本实施例中,为了实现客户端与服务器之间数据的正确传输,客户端与服务器在通过中间设备建立TCP连接的过程中,中间设备会在本地建立对应的TCP会话,该TCP会话中可以包括五元组信息,即源IP(Internet Protocol,网络协议)地址、源端口、目的IP地址、目的端口和传输协议。当数据传输结束后,中间设备接收到本端设备发送的第一FIN报文时,由于该第一FIN报文中可以包括本端设备IP地址和对端设备IP地址等,因此中间设备可以首先根据该第一FIN报文中本端设备的IP地址,将预先建立的标志位列表中的对应的本端设备的FIN标志位设置为已发送FIN报文,然后记录该第一FIN
报文中的确认号。该标志位列表中可以包括本端设备的FIN标志位和ACK标志位以及对端设备的FIN标志位和ACK标志位,其中各个标志位的初始值可以均为0,当已发送FIN报文时,可以将对应的FIN标志位设置为1,当已发送ACK报文时,可以将对应的ACK标志位设置为1。当本端设备及其对应的对端设备的FIN标志本文档来自技高网
...

【技术保护点】
一种传输控制协议TCP连接关闭方法,所述方法应用在用于实现客户端与服务器之间数据传输的中间设备上,以所述客户端和所述服务器中的一个设备作为本端设备,另一个设备作为对端设备,其特征在于,包括:接收所述本端设备发送的第一FIN报文;将所述第一FIN报文发送给所述对端设备;判断在第一预设时间内是否接收到所述对端设备返回的第一ACK报文;若在所述第一预设时间内接收到所述对端设备返回的第一ACK报文,则将所述第一ACK报文发送给所述本端设备;判断在第二预设时间内是否接收到所述对端设备发送的第二FIN报文;若在所述第二预设时间内未接收到所述对端设备发送的第二FIN报文,则构造所述第二FIN报文,并将所述第二FIN报文发送给所述本端设备,以使所述本端设备在接收到所述第二FIN报文后,向所述中间设备返回第二ACK报文,以关闭所述TCP连接。

【技术特征摘要】
1.一种传输控制协议TCP连接关闭方法,所述方法应用在用于实现客户端与服务器之间数据传输的中间设备上,以所述客户端和所述服务器中的一个设备作为本端设备,另一个设备作为对端设备,其特征在于,包括:接收所述本端设备发送的第一FIN报文;将所述第一FIN报文发送给所述对端设备;判断在第一预设时间内是否接收到所述对端设备返回的第一ACK报文;若在所述第一预设时间内接收到所述对端设备返回的第一ACK报文,则将所述第一ACK报文发送给所述本端设备;判断在第二预设时间内是否接收到所述对端设备发送的第二FIN报文;若在所述第二预设时间内未接收到所述对端设备发送的第二FIN报文,则构造所述第二FIN报文,并将所述第二FIN报文发送给所述本端设备,以使所述本端设备在接收到所述第二FIN报文后,向所述中间设备返回第二ACK报文,以关闭所述TCP连接。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:若在所述第一预设时间内未接收到所述对端返回的第一ACK报文,则向所述对端设备发送第一RST报文。3.根据权利要求1所述的方法,其特征在于,在将所述第二FIN报文发送给所述本端设备之后,所述方法还包括:判断在第三预设时间内是否接收到所述本端设备返回的第二ACK报文;若在所述第三预设时间内未接收到所述本端设备返回的第二ACK报文,则向所述本端设备发送第二RST报文,以关闭所述TCP连接。4.根据权利要求1所述的方法,其特征在于,所述判断在第一预设时间内是否接收到所述对端设备返回的第一ACK报文包括:判断在所述第一预设时间内接收到的所述第一ACK报文的序列号是否与所述第一FIN报文的确认号相同,若相同,则确定在所述第一预设时间内接
\t收到所述对端设备返回的第一ACK报文,否则,确定在所述第一预设时间内未接收到所述对端设备返回的第一ACK报文。5.根据权利要求3所述的方法,其特征在于,所述判断在第三预设时间内是否接收到所述本端设备返回的第二ACK报文包括:判断在所述第三预设时间内接收到的所述第二ACK报文的序列号是否与所述第二FIN报文的确认号相同,若相同,则确定在所述第三预设时间内接收到所述本端设备返回的第二ACK报文,否则,确定在所述第三预设时间内未接收到所述本端设备返回的第二ACK报文。6.一种TC...

【专利技术属性】
技术研发人员:陈伟
申请(专利权)人:杭州迪普科技有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1