基于硬件协议栈的TCP长连接保活方法及装置制造方法及图纸

技术编号:35293184 阅读:21 留言:0更新日期:2022-10-22 12:39
本公开提供了一种基于硬件协议栈的TCP长连接保活方法,应用于安装有硬件加速卡的宿主机,所述方法包括:根据宿主机的应用程序对硬件协议栈的至少一条传输控制协议TCP连接配置对应的保活参数;所述保活参数为所述硬件加速卡用于判断所述至少一条TCP连接是否保活成功的参数;若接收到所述硬件加速卡发送的提示消息,则向对端设备发送断开目标TCP连接的指令;所述提示消息用于提示目标TCP连接保活失败。采用本方法能够降低TCP长连接保活产生的CPU资源消耗。资源消耗。资源消耗。

【技术实现步骤摘要】
基于硬件协议栈的TCP长连接保活方法及装置


[0001]本公开涉及以太网通信协议
,尤其涉及一种基于硬件协议栈的TCP长连接保活方法、装置、电子设备及可读存储介质。

技术介绍

[0002]TCP(传输控制协议,Transmission Control Protocol)协议中有长连接和短连接之分,短连接的交互过程是:首先建立连接,数据交互完毕之后,主动释放连接。长连接的交互过程是:数据的发送端与接收端建立TCP连接,当数据进行交互后,若很长一段时间内无数据交互时,发送端和接收端中的任一端都可能发生意外断电、死机、崩溃、重启等情况,或者中间路由网络断开,这样会导致TCP连接未能正常释放,连接的对端不知道这种情况发生,一直维护这个连接,长时间的积累会导致非常多的半连接,造成对端系统资源的消耗和浪费。
[0003]为了减少无效连接操作,软件TCP协议栈保活方法被广泛使用,但其本身存在一定的缺陷,比如,长连接数量增加后,系统可能会花费大量的算力来维护不必要的TCP会话资源,例如,每条连接通过各自的计时器进行计时、发送保活报文、接收应答报文、接收保活报文、发送应答报文等都会使系统CPU资源被占用。
[0004]因此,如何降低TCP长连接保活产生的CPU资源消耗是当前亟需解决的问题。

技术实现思路

[0005]为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种基于硬件协议栈的TCP长连接保活方法,降低了TCP长连接保活产生的CPU资源消耗。
[0006]为了实现上述目的,本公开实施例提供技术方案如下:
[0007]第一方面,本公开的实施例提供一种基于硬件协议栈的TCP长连接保活方法,应用于安装有硬件加速卡的宿主机,所述方法包括:
[0008]根据宿主机的应用程序对硬件协议栈的至少一条TCP连接配置对应的保活参数;所述保活参数为所述硬件加速卡用于判断所述至少一条TCP连接是否保活成功的参数;
[0009]若接收到所述硬件加速卡发送的提示消息,则向对端设备发送断开目标TCP连接的指令;所述提示消息用于提示目标TCP连接保活失败。
[0010]作为本公开实施例一种可选的实施方式,所述保活参数包括:
[0011]源地址、目标地址、源端口、目标端口、首次保活超时时间、预设退避次数、以及退避策略。
[0012]作为本公开实施例一种可选的实施方式,所述方法还包括:
[0013]判断所述硬件加速卡在首次保活超时时间内,是否接收到对端设备发送的报文消息;
[0014]若未接收到对端设备发送的报文消息,则根据所述退避策略向所述对端设备发送第一保活消息;
[0015]若接收到对端设备发送的报文消息,则确定目标TCP连接为正常连接状态。
[0016]作为本公开实施例一种可选的实施方式,判断所述硬件加速卡在首次保活超时时间内,是否接收到对端设备发送的报文消息;
[0017]若未接收到对端设备发送的报文消息,则根据所述退避策略向所述对端设备发送第一保活消息;
[0018]若接收到对端设备发送的报文消息,则确定目标TCP连接为正常连接状态。
[0019]作为本公开实施例一种可选的实施方式,在根据所述退避策略向所述对端设备发送第一保活消息之后,所述方法还包括:
[0020]若所述硬件加速卡在所述预设退避次数内未接收到对端设备发送的第一应答消息,则向宿主机发送提示消息;
[0021]若所述硬件加速卡在所述预设退避次数内接收到对端设备发送的第一应答消息,则确定目标TCP连接为正常连接状态。
[0022]作为本公开实施例一种可选的实施方式,所述方法还包括:
[0023]若未根据宿主机的应用程序对硬件协议栈的至少一条TCP连接配置保活参数,则采用所述硬件加速卡的默认保活参数对至少一条TCP连接进行配置。
[0024]作为本公开实施例一种可选的实施方式,所述方法还包括:
[0025]当所述硬件加速卡接收到所述对端设备发送的第二保活消息时,则向所述对端设备发送第二应答消息。
[0026]第二方面,本公开实施例提供一种基于硬件协议栈的TCP长连接保活装置,应用于安装有硬件加速卡的宿主机,包括:
[0027]配置参数模块,用于根据宿主机的应用程序对硬件协议栈的至少一条TCP连接配置对应的保活参数;所述保活参数为所述硬件加速卡用于判断所述至少一条TCP连接是否保活成功的参数;
[0028]指令控制模块,用于若接收到所述硬件加速卡发送的提示消息,则向对端设备发送断开目标TCP连接的指令;所述提示消息用于提示目标TCP连接保活失败。
[0029]作为本公开实施例一种可选的实施方式,所述保活参数包括:
[0030]源地址、目标地址、源端口、目标端口、首次保活超时时间、预设退避次数、以及退避策略。
[0031]作为本公开实施例一种可选的实施方式,所述装置还包括第一判断模块,所述第一判断模块包括:
[0032]判断单元,用于判断所述硬件加速卡在首次保活超时时间内,是否接收到对端设备发送的报文消息;
[0033]发送单元,用于若未接收到对端设备发送的报文消息,则根据所述退避策略向所述对端设备发送第一保活消息;
[0034]确定单元,用于若接收到对端设备发送的报文消息,则确定目标TCP连接为正常连接状态。
[0035]作为本公开实施例一种可选的实施方式,所述装置还包括第二判断模块,所述第二判断模块用于:
[0036]若所述硬件加速卡在所述预设退避次数内未接收到对端设备发送的第一应答消
息,则向宿主机发送提示消息;
[0037]若所述硬件加速卡在所述预设退避次数内接收到对端设备发送的第一应答消息,则确定目标TCP连接为正常连接状态。
[0038]作为本公开实施例一种可选的实施方式,所述发送单元具体用于:
[0039]根据等间隔退避策略向所述对端设备发送第一保活消息;
[0040]或者;
[0041]根据乘二退避策略向所述对端设备发送第一保活消息。
[0042]作为本公开实施例一种可选的实施方式,若未根据宿主机的应用程序对硬件协议栈的至少一条TCP连接配置保活参数,则采用所述硬件加速卡的默认保活参数对至少一条TCP连接进行配置。
[0043]作为本公开实施例一种可选的实施方式,所述装置还包括:
[0044]应答模块,用于当所述硬件加速卡接收到所述对端设备发送的第二保活消息时,则向所述对端设备发送第二应答消息。
[0045]第三方面,本公开实施例提供一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面或第一方面的任一实施方式所述的基于硬件协议栈的TCP长连接保活方法。
[0046]第四方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述第一方本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于硬件协议栈的TCP长连接保活方法,其特征在于,应用于安装有硬件加速卡的宿主机,所述方法包括:根据宿主机的应用程序对硬件协议栈的至少一条传输控制协议TCP连接配置对应的保活参数;所述保活参数为所述硬件加速卡用于判断所述至少一条TCP连接是否保活成功的参数;若接收到所述硬件加速卡发送的提示消息,则向对端设备发送断开目标TCP连接的指令;所述提示消息用于提示目标TCP连接保活失败。2.根据权利要求1所述的方法,其特征在于,所述保活参数包括:源地址、目标地址、源端口、目标端口、首次保活超时时间、预设退避次数、以及退避策略。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:判断所述硬件加速卡在首次保活超时时间内,是否接收到对端设备发送的报文消息;若未接收到对端设备发送的报文消息,则根据所述退避策略向所述对端设备发送第一保活消息;若接收到对端设备发送的报文消息,则确定目标TCP连接为正常连接状态。4.根据权利要求3所述的方法,其特征在于,在根据所述退避策略向所述对端设备发送第一保活消息之后,所述方法还包括:若所述硬件加速卡在所述预设退避次数内未接收到对端设备发送的第一应答消息,则向宿主机发送提示消息;若所述硬件加速卡在所述预设退避次数内接收到对端设备发送的第一应答消息,则确定目标TCP连接为正常连接状态。5.根据权利要求3所述的方法,其特征在于,所述根据所述退避策略向所述对端设备发送第一保活消息...

【专利技术属性】
技术研发人员:张昊袁晓飞
申请(专利权)人:中科驭数北京科技有限公司
类型:发明
国别省市:

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

1