[发明专利]一种TCP连接检测方法、装置及电子设备有效
申请号: | 202110043041.9 | 申请日: | 2021-01-13 |
公开(公告)号: | CN112769651B | 公开(公告)日: | 2022-04-26 |
发明(设计)人: | 汪庆权 | 申请(专利权)人: | 杭州迪普科技股份有限公司 |
主分类号: | H04L69/16 | 分类号: | H04L69/16;H04L43/12 |
代理公司: | 北京博思佳知识产权代理有限公司 11415 | 代理人: | 陈蕾 |
地址: | 310051 浙江省杭*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 tcp 连接 检测 方法 装置 电子设备 | ||
本申请提供一种TCP连接检测方法、装置及电子设备,所述方法包括:获取与服务端所维护的目标TCP套接字对应的TCP连接最近一次传输数据的时刻与当前时刻的时长间隔、发送序列号和接收序列号;检测所述TCP连接最近一次传输数据的时刻与当前时刻的时长间隔是否大于预设阈值;如果是,则基于与所述目标TCP套接字对应的发送序列号和接收序列号生成keepalive报文,并向与所述TCP连接对应的客户端发送所述keepalive报文;如果未接收到所述客户端响应于所述keepalive报文返回的响应报文,则确定与所述目标TCP套接字对应的TCP连接为TCP死连接。本申请可以在服务端未开启keepalive检测应用程序的情况下,及时检测出TCP死连接,以保证应用程序的正常运行。
技术领域
本申请涉及通信技术领域,尤其涉及一种TCP连接检测方法、装置、电子设备及机器可读存储介质。
背景技术
客户端与服务端基于TCP协议进行通信时,通过三次握手的过程可以建立TCP连接,并为其分配一个文件描述符,用于收发数据,进行网络通信;客户端可以向服务端发送FIN报文,以通过四次挥手的过程关闭TCP连接,并释放为其分配的文件描述符。通常,应用程序可以使用的文件描述符的数量是有限的,文件描述符都被占用时,就无法建立新的TCP连接,导致应用程序无法正常提供服务。
在实际应用中,网络中断、服务器重启等异常情况,可能会导致服务端并未接收到来自客户端的用于关闭TCP连接的报文,认为TCP连接仍然保持为established状态,并且为其分配的文件描述符也会一直被占用。但是,客户端与服务端之间已经不会再通过该TCP连接进行通信了,就形成了TCP死连接。
发明内容
有鉴于此,本申请提供一种TCP连接检测方法、装置、电子设备及机器可读存储介质,以解决在服务端不支持或者未开启keepalive检测应用程序的情况下,无法及时释放TCP死连接占用的资源的问题。
本申请提供一种TCP连接检测方法,所述方法包括:
获取与服务端所维护的目标TCP套接字对应的TCP连接最近一次传输数据的时刻与当前时刻的时长间隔、发送序列号和接收序列号;
检测所述TCP连接最近一次传输数据的时刻与当前时刻的时长间隔是否大于预设阈值;
如果是,则基于与所述目标TCP套接字对应的发送序列号和接收序列号生成keepalive报文,并向与所述TCP连接对应的客户端发送所述keepalive报文;
如果未接收到所述客户端响应于所述keepalive报文返回的响应报文,则确定与所述目标TCP套接字对应的TCP连接为TCP死连接。
可选的,所述获取与服务端所维护的目标TCP套接字对应的TCP连接最近一次传输数据的时刻与当前时刻的时长间隔、发送序列号和接收序列号,包括:
将服务端所维护的所有与established状态的TCP连接对应的TCP套接字依次确定为目标TCP套接字;
获取与目标TCP套接字对应的TCP连接最近一次传输数据的时刻与当前时刻的时长间隔、发送序列号和接收序列号。
可选的,所述最近一次传输数据的时刻,包括:
最近一次发送数据的时刻与最近一次接收数据的时刻中的最小值。
可选的,所述如果未接收到所述客户端响应于所述keepalive报文返回的响应报文,则确定与所述目标TCP套接字对应的TCP连接为TCP死连接,包括:
如果未接收到所述客户端响应于所述keepalive报文返回的响应报文,则向所述客户端重新发送所述keepalive报文;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州迪普科技股份有限公司,未经杭州迪普科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110043041.9/2.html,转载请声明来源钻瓜专利网。