CN115225690A - 基于硬件协议栈的tcp长连接保活方法及装置 - Google Patents
基于硬件协议栈的tcp长连接保活方法及装置 Download PDFInfo
- Publication number
- CN115225690A CN115225690A CN202210714973.6A CN202210714973A CN115225690A CN 115225690 A CN115225690 A CN 115225690A CN 202210714973 A CN202210714973 A CN 202210714973A CN 115225690 A CN115225690 A CN 115225690A
- Authority
- CN
- China
- Prior art keywords
- alive
- keep
- tcp
- hardware
- connection
- 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
- 238000000034 method Methods 0.000 title claims abstract description 57
- 230000005540 biological transmission Effects 0.000 claims abstract description 4
- 230000004044 response Effects 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 19
- 230000001133 acceleration Effects 0.000 claims description 6
- 230000002159 abnormal effect Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 239000000523 sample Substances 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0811—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
-
- 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
Abstract
本公开提供了一种基于硬件协议栈的TCP长连接保活方法,应用于安装有硬件加速卡的宿主机,所述方法包括:根据宿主机的应用程序对硬件协议栈的至少一条传输控制协议TCP连接配置对应的保活参数;所述保活参数为所述硬件加速卡用于判断所述至少一条TCP连接是否保活成功的参数;若接收到所述硬件加速卡发送的提示消息,则向对端设备发送断开目标TCP连接的指令;所述提示消息用于提示目标TCP连接保活失败。采用本方法能够降低TCP长连接保活产生的CPU资源消耗。
Description
技术领域
本公开涉及以太网通信协议技术领域,尤其涉及一种基于硬件协议栈的TCP长连接保活方法、装置、电子设备及可读存储介质。
背景技术
TCP(传输控制协议,Transmission Control Protocol)协议中有长连接和短连接之分,短连接的交互过程是:首先建立连接,数据交互完毕之后,主动释放连接。长连接的交互过程是:数据的发送端与接收端建立TCP连接,当数据进行交互后,若很长一段时间内无数据交互时,发送端和接收端中的任一端都可能发生意外断电、死机、崩溃、重启等情况,或者中间路由网络断开,这样会导致TCP连接未能正常释放,连接的对端不知道这种情况发生,一直维护这个连接,长时间的积累会导致非常多的半连接,造成对端系统资源的消耗和浪费。
为了减少无效连接操作,软件TCP协议栈保活方法被广泛使用,但其本身存在一定的缺陷,比如,长连接数量增加后,系统可能会花费大量的算力来维护不必要的TCP会话资源,例如,每条连接通过各自的计时器进行计时、发送保活报文、接收应答报文、接收保活报文、发送应答报文等都会使系统CPU资源被占用。
因此,如何降低TCP长连接保活产生的CPU资源消耗是当前亟需解决的问题。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种基于硬件协议栈的TCP长连接保活方法,降低了TCP长连接保活产生的CPU资源消耗。
为了实现上述目的,本公开实施例提供技术方案如下:
第一方面,本公开的实施例提供一种基于硬件协议栈的TCP长连接保活方法,应用于安装有硬件加速卡的宿主机,所述方法包括:
根据宿主机的应用程序对硬件协议栈的至少一条TCP连接配置对应的保活参数;所述保活参数为所述硬件加速卡用于判断所述至少一条TCP连接是否保活成功的参数;
若接收到所述硬件加速卡发送的提示消息,则向对端设备发送断开目标TCP连接的指令;所述提示消息用于提示目标TCP连接保活失败。
作为本公开实施例一种可选的实施方式,所述保活参数包括:
源地址、目标地址、源端口、目标端口、首次保活超时时间、预设退避次数、以及退避策略。
作为本公开实施例一种可选的实施方式,所述方法还包括:
判断所述硬件加速卡在首次保活超时时间内,是否接收到对端设备发送的报文消息;
若未接收到对端设备发送的报文消息,则根据所述退避策略向所述对端设备发送第一保活消息;
若接收到对端设备发送的报文消息,则确定目标TCP连接为正常连接状态。
作为本公开实施例一种可选的实施方式,判断所述硬件加速卡在首次保活超时时间内,是否接收到对端设备发送的报文消息;
若未接收到对端设备发送的报文消息,则根据所述退避策略向所述对端设备发送第一保活消息;
若接收到对端设备发送的报文消息,则确定目标TCP连接为正常连接状态。
作为本公开实施例一种可选的实施方式,在根据所述退避策略向所述对端设备发送第一保活消息之后,所述方法还包括:
若所述硬件加速卡在所述预设退避次数内未接收到对端设备发送的第一应答消息,则向宿主机发送提示消息;
若所述硬件加速卡在所述预设退避次数内接收到对端设备发送的第一应答消息,则确定目标TCP连接为正常连接状态。
作为本公开实施例一种可选的实施方式,所述方法还包括:
若未根据宿主机的应用程序对硬件协议栈的至少一条TCP连接配置保活参数,则采用所述硬件加速卡的默认保活参数对至少一条TCP连接进行配置。
作为本公开实施例一种可选的实施方式,所述方法还包括:
当所述硬件加速卡接收到所述对端设备发送的第二保活消息时,则向所述对端设备发送第二应答消息。
第二方面,本公开实施例提供一种基于硬件协议栈的TCP长连接保活装置,应用于安装有硬件加速卡的宿主机,包括:
配置参数模块,用于根据宿主机的应用程序对硬件协议栈的至少一条TCP连接配置对应的保活参数;所述保活参数为所述硬件加速卡用于判断所述至少一条TCP连接是否保活成功的参数;
指令控制模块,用于若接收到所述硬件加速卡发送的提示消息,则向对端设备发送断开目标TCP连接的指令;所述提示消息用于提示目标TCP连接保活失败。
作为本公开实施例一种可选的实施方式,所述保活参数包括:
源地址、目标地址、源端口、目标端口、首次保活超时时间、预设退避次数、以及退避策略。
作为本公开实施例一种可选的实施方式,所述装置还包括第一判断模块,所述第一判断模块包括:
判断单元,用于判断所述硬件加速卡在首次保活超时时间内,是否接收到对端设备发送的报文消息;
发送单元,用于若未接收到对端设备发送的报文消息,则根据所述退避策略向所述对端设备发送第一保活消息;
确定单元,用于若接收到对端设备发送的报文消息,则确定目标TCP连接为正常连接状态。
作为本公开实施例一种可选的实施方式,所述装置还包括第二判断模块,所述第二判断模块用于:
若所述硬件加速卡在所述预设退避次数内未接收到对端设备发送的第一应答消息,则向宿主机发送提示消息;
若所述硬件加速卡在所述预设退避次数内接收到对端设备发送的第一应答消息,则确定目标TCP连接为正常连接状态。
作为本公开实施例一种可选的实施方式,所述发送单元具体用于:
根据等间隔退避策略向所述对端设备发送第一保活消息;
或者;
根据乘二退避策略向所述对端设备发送第一保活消息。
作为本公开实施例一种可选的实施方式,若未根据宿主机的应用程序对硬件协议栈的至少一条TCP连接配置保活参数,则采用所述硬件加速卡的默认保活参数对至少一条TCP连接进行配置。
作为本公开实施例一种可选的实施方式,所述装置还包括:
应答模块,用于当所述硬件加速卡接收到所述对端设备发送的第二保活消息时,则向所述对端设备发送第二应答消息。
第三方面,本公开实施例提供一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面或第一方面的任一实施方式所述的基于硬件协议栈的TCP长连接保活方法。
第四方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述第一方面或第一方面的任一实施方式所述的基于硬件协议栈的TCP长连接保活方法。
本公开提供的基于硬件协议栈的TCP长连接保活方法,应用于安装有硬件加速卡的宿主机,首先根据宿主机的应用程序对硬件协议栈的至少一条TCP连接配置对应的保活参数,若接收到硬件加速卡发送的用于提示目标TCP连接保活失败的消息,则向对端设备发送断开目标TCP连接的指令。由于保活参数为硬件加速卡用于判断至少一条TCP连接是否保活成功的参数,所以在硬件加速卡上能够根据各条TCP连接对应的保活参数分别判断各条TCP连接是否保活成功,宿主机只需在硬件加速卡获取到目标TCP连接保活失败之后,向对端设备发送断开目标TCP连接的指令,可以有效的减少宿主机上CPU的中断和计时器操作,从而降低TCP长连接保活产生的CPU资源消耗,进一步提升宿主机的工作效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中基于硬件协议栈的TCP长连接保活方法的应用场景图;
图2为一个实施例中基于硬件协议栈的TCP长连接保活方法的流程示意图;
图3为一个实施例中基于硬件协议栈的TCP长连接保活装置的结构示意图;
图4为本公开实施例所述的电子设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
在本公开实施例中,“示例性的”或者“例如”等词是用于表示作例子、例证或说明。本公开实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。此外,在本公开实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。
硬件协议栈存在于硬件加速卡的TCP硬件协议保活模块内部,用户MCU通过PCI-Express(高速串行计算机扩展总线标准,peripheral component interconnect express)总线接口给TCP硬件协议保活模块发送给命令,控制TCP硬件协议保活模块运行TCP/IP协议栈,达到连接、监听、发送、接受等网络功能。其中,MCU,又称单片微型计算机或单片机,是把中央处理器的频率与规格做适当缩减,并将内存、计数器、USB、A/D转换、UART、PLC等周边接口,都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。
与软件TCP协议栈相比,硬件TCP协议栈的好处是:硬件协议栈不占用CPU(中央处理器,central processing unit)、无需RAM(随机存取存储器,Random Access Memory),减轻了用户MCU(微控制单元,Microcontroller Unit)的负担,且硬件协议栈是成熟产品,具有较强的稳定性。
本公开实施例的整体构思为:为了释放宿主机服务器的硬件算力,在专用数据处理器DPU(中央处理器分散处理单元,Data Processing Unit)芯片中规划设计了TCP硬件协议保活模块,任何宿主机服务器安装DPU数据加速卡后,只需在各条TCP连接建立后,根据宿主机的应用程序对各条TCP连接配置保活参数,然后在DPU数据加速卡上根据各条TCP连接对应的保活参数分别判断各条TCP连接是否保活成功,不需要分配CPU资源进行TCP保活操作,只有当DPU数据加速卡获取到某条TCP连接未能接收到对端设备发送的任何报文,并且达到预设次数之后,才向宿主机汇报TCP连接异常,宿主机向对端设备发送断开此条TCP连接的指令,从而降低TCP长连接保活产生的CPU资源消耗,进一步提升宿主机的工作效率。
本公开提供的一种基于硬件协议栈的TCP长连接保活方法,可以应用于如图1所示的应用环境中。该基于硬件协议栈的TCP长连接保活方法应用于安装有硬件加速卡11的宿主机12。其中,硬件加速卡11与宿主机12可以通过PCI-Express总线接口连接。根据宿主机12的应用程序对硬件协议栈的至少一条TCP连接配置对应的保活参数;所述保活参数为所述硬件加速卡11用于判断所述至少一条TCP连接是否保活成功的参数;若接收到所述硬件加速卡发送的提示消息,则向对端设备13发送断开目标TCP连接的指令;所述提示消息用于提示目标TCP连接保活失败。需要说明的是,由于TCP短连接在使用后会主动释放连接,所以本公开实施例中提出的基于硬件协议栈的TCP长连接保活方法主要针对TCP长连接。
在一个实施例中,如图2所示,提供一种基于硬件协议栈的TCP长连接保活方法,应用于安装有硬件加速卡的宿主机,该方法包括如下步骤:
S21、根据宿主机的应用程序对硬件协议栈的至少一条TCP连接配置对应的保活参数。
其中,保活参数为所述硬件加速卡用于判断所述至少一条TCP连接是否保活成功的参数。
具体的,应用程序可以是安装于宿主机上的与硬件加速卡交互的控制软件。通过与硬件加速卡交互的控制软件配置每一条TCP长连接的保活参数,配置方式灵活,而且硬件级的响应速度也可以提升TCP保活效率和精确性。
示例性的,TCP硬件协议保活模块的硬件协议栈是通过修改内部参数实现,即宿主机可以通过PCI-Express总线接口向TCP硬件协议保活模块发送一个固定的命令识别流,实现参数修改,例如用户修改了目的域名或目的IP,则TCP硬件协议保活模块自动向新的对端设备发起连接。
在一些实施例中,保活参数包括:源地址、目标地址、源端口、目标端口、首次保活超时时间、预设退避次数、以及退避策略。
其中,首次保活超时时间,即,发送端第一次向对端设备发送保活报文的时间。首次保活超时时间可以是10秒,也可以是1分钟,还可以是其他合适的数值,此处不做具体限制。例如,在建立目标TCP连接后,在1分钟内,都没有收到对端设备发送的任何报文(包含数据报文、ACK报文、保活报文、探针报文等),则在1分钟之后,由硬件TCP协议栈向对端设备发送保活报文,用于探测对端设备是否处于正常连接状态。
预设退避次数,即,最大退避次数,一般设置为8次,也可以设置为16次,此处不进行具体限制,用户可依据实际情况进行设置。硬件协议栈退避次数可以由与硬件加速卡交互的控制软件进行设置,每一条TCP连接均可以设置不同的退避次数,当与硬件交互的控制软件未配置保活参数时,可以采用硬件加速卡的默认保活参数。
退避策略包括:等间隔退避以及乘二退避。例如,等间隔退避,可以理解为,假设设置退避次数为8次,每间隔一分钟发送一次保活报文;乘二退避,可以理解为,假设退避次数为4次,第一次间隔一分钟向对端发送保活报文,第二次间隔两分钟向对端发送保活报文,第三次间隔四分钟向对端发送保活报文,第四次间隔八分钟向对端发送保活报文。另外,退避方式还可以是乘四退避,此处对退避方式不进行具体限制,用户可依据实际情况进行设置。
另外,保活参数还可以包括是否开启TCP保活功能,默认为开启TCP保活功能。由于操作系统内核TCP协议栈默认是不开启保活的,所以相较于没有保活的TCP长连接,具有保活能力的协议栈有更强的鲁棒性,可以避免无效的TCP半连接拖垮宿主机服务器。
S22、若接收到所述硬件加速卡发送的提示消息,则向对端设备发送断开目标TCP连接的指令。
其中,提示消息用于提示目标TCP连接保活失败。
具体的,硬件加速卡自主完成TCP保活报文的发送和响应,能够减轻宿主机服务器CPU的负担,释放系统算力资源。TCP保活超时后,向宿主机软件进行上报,不再需要软件层面参与,如果保活过程中出现异常状况,软件宿主机的应用程序最终会收到保活结果,并确定TCP连接恢复或连接关闭操作。
应该用本公开实施例,本公开提供的基于硬件协议栈的TCP长连接保活方法,首先根据宿主机的应用程序对硬件协议栈的至少一条TCP连接配置对应的保活参数,若接收到硬件加速卡发送的用于提示目标TCP连接保活失败的消息,则向对端设备发送断开目标TCP连接的指令。由于保活参数为硬件加速卡用于判断至少一条TCP连接是否保活成功的参数,所以在硬件加速卡上能够根据各条TCP连接对应的保活参数分别判断各条TCP连接是否保活成功,宿主机只需在硬件加速卡获取到目标TCP连接保活失败之后,向对端设备发送断开目标TCP连接的指令,可以有效的减少宿主机上CPU的中断和计时器操作,从而降低TCP长连接保活产生的CPU资源消耗,进一步提升宿主机的工作效率。
在一些实施例中,硬件加速卡根据保活参数判断目标TCP连接是否保活成功,可以通过如下方式实现:
a、判断所述硬件加速卡在首次保活超时时间内,是否接收到对端设备发送的报文消息。
示例性的,在TCP建立目标连接后,在1分钟内,硬件加速卡没有收到对端设备发送的任何报文(包含数据报文、ACK报文、保活报文、探针报文等),则在1分钟之后,由硬件TCP协议栈向对端设备发送保活报文,用于探测对端设备是否处于正常连接状态。
b、若未接收到对端设备发送的报文消息,则根据所述退避策略向所述对端设备发送第一保活消息。
在一些实施例中,根据所述退避策略向所述对端设备发送第一保活消息,可以通过如下方式实现:
①、根据等间隔退避策略向所述对端设备发送第一保活消息。
示例性的,假设设置退避次数为8次,每间隔一分钟发送一次保活报文,若每次发送第一保活消息,都没有收到对端设备返回的任何报文消息,这个过程共发送8次第一保活消息。每次发送保活报文时计时器都清零,重新计时。
②、根据乘二退避策略向所述对端设备发送第一保活消息。
示例性的,假设退避次数为4次,第一次间隔一分钟向对端设备发送一次保活报文,第二次间隔两分钟向对端设备发送保活报文,第三次间隔四分钟向对端设备发送保活报文,第四次间隔八分钟向对端设备发送保活报文。每次发送保活报文时计时器都清零,重新计时。若每次发送第一保活消息,都没有收到对端设备返回的任何报文消息,这个过程共发送4次第一保活消息。
另外,退避方式还可以是乘四退避,可以理解的是,假设退避次数为2次,第一次间隔一分钟向对端设备发送一次保活报文,第二次间隔四分钟向对端设备发送保活报文。需要说明的是,此处对退避方式不进行具体限制,用户可依据实际情况进行设置。
c、若接收到对端设备发送的报文消息,则确定目标TCP连接为正常连接状态。
示例性的,在TCP建立目标连接后,在1分钟内,硬件加速卡接收到对端设备发送的任何一种报文(包含数据报文、ACK报文、保活报文、探针报文等),则确定目标TCP连接为正常连接状态。
进一步,在一些实施例中,执行步骤b(根据所述退避策略向所述对端设备发送第一保活消息)之后,还执行以下步骤:
b-1、若所述硬件加速卡在所述预设退避次数内未接收到对端设备发送的第一应答消息,则向宿主机发送提示消息。
示例性的,假设退避次数配置为8次,硬件加速卡在8次内未接收到对端设备发送的第一应答消息,则通过PCI-Express总线接口向宿主机发送提示消息,通知宿主机此条TCP连接为异常连接状态。异常的原因可能是:对端设备发生意外断电、死机、崩溃、重启或者中间路由断开等情况。
具体的,上位机程序通过访问寄存器与硬件加速卡交互,通过访问异常状态标志寄存器可以获取到是哪种异常状态,例如可以是保活失败、退避超时等。进一步,假设通过访问异常状态标志寄存器获取到的是保活失败,则可以访问保活异常寄存器,获取到具体是哪条链接发生异常。
b-2、若所述硬件加速卡在所述预设退避次数内接收到对端设备发送的第一应答消息,则确定目标TCP连接为正常连接状态。
示例性的,假设退避次数配置为8次,硬件加速卡在第5次向对端设备发送第一保活消息时,接收到对端设备发送的第一应答消息,则确定目标TCP连接为正常连接状态。
在一些实施例中,若未根据宿主机的应用程序对硬件协议栈的至少一条TCP连接配置保活参数,则采用所述硬件加速卡的默认保活参数对至少一条TCP连接进行配置。
示例性的,硬件加速卡默认保活参数可以为:启用TCP保活功能、首次保活超时时间为一分钟、预设退避次数为8次,退避方式为乘二退避。若未根据宿主机的应用程序对硬件协议栈的一条TCP连接或者多条TCP连接配置保活参数,则可以采用硬件加速卡默认的保活参数对一条或者多条TCP连接配置保活参数。
在一些实施例中,当所述硬件加速卡接收到所述对端设备发送的第二保活消息时,则向所述对端设备发送第二应答消息。
具体的,宿主机通过硬件加速卡与对端设备建立TCP连接之后,也可能会收到对端设备发送的第二保活消息,用于探测宿主机这一侧的TCP连接是否断开,此时宿主机可以通过硬件加速卡向对端发送第二应答消息,通知对端设备TCP连接正常。
本公开提供的基于硬件协议栈的TCP长连接保活方法,应用于安装有硬件加速卡的宿主机,首先根据宿主机的应用程序对硬件协议栈的至少一条TCP连接配置对应的保活参数,若接收到硬件加速卡发送的用于提示目标TCP连接保活失败的消息,则向对端设备发送断开目标TCP连接的指令。由于保活参数为硬件加速卡用于判断至少一条TCP连接是否保活成功的参数,所以在硬件加速卡上能够根据各条TCP连接对应的保活参数分别判断各条TCP连接是否保活成功,宿主机只需在硬件加速卡获取到目标TCP连接保活失败之后,向对端设备发送断开目标TCP连接的指令,可以有效的减少宿主机上CPU的中断和计时器操作,从而降低TCP长连接保活产生的CPU资源消耗,进一步提升宿主机的工作效率。
在一个实施例中,如图3所示,提供了一种基于硬件协议栈的TCP长连接保活装置300,应用于安装有硬件加速卡的宿主机,包括:
配置参数模块,用于根据宿主机的应用程序对硬件协议栈的至少一条TCP连接配置对应的保活参数;所述保活参数为所述硬件加速卡用于判断所述至少一条TCP连接是否保活成功的参数;
指令控制模块,用于若接收到所述硬件加速卡发送的提示消息,则向对端设备发送断开目标TCP连接的指令;所述提示消息用于提示目标TCP连接保活失败。
作为本公开实施例一种可选的实施方式,所述保活参数包括:
源地址、目标地址、源端口、目标端口、首次保活超时时间、预设退避次数、以及退避策略。
作为本公开实施例一种可选的实施方式,所述装置还包括第一判断模块,所述第一判断模块包括:
判断单元,用于判断所述硬件加速卡在首次保活超时时间内,是否接收到对端设备发送的报文消息;
发送单元,用于若未接收到对端设备发送的报文消息,则根据所述退避策略向所述对端设备发送第一保活消息;
确定单元,用于若接收到对端设备发送的报文消息,则确定目标TCP连接为正常连接状态。
作为本公开实施例一种可选的实施方式,所述装置还包括第二判断模块,所述第二判断模块用于:
若所述硬件加速卡在所述预设退避次数内未接收到对端设备发送的第一应答消息,则向宿主机发送提示消息;
若所述硬件加速卡在所述预设退避次数内接收到对端设备发送的第一应答消息,则确定目标TCP连接为正常连接状态。
作为本公开实施例一种可选的实施方式,所述发送单元具体用于:
根据等间隔退避策略向所述对端设备发送第一保活消息;
或者;
根据乘二退避策略向所述对端设备发送第一保活消息。
作为本公开实施例一种可选的实施方式,若未根据宿主机的应用程序对硬件协议栈的至少一条TCP连接配置保活参数,则采用所述硬件加速卡的默认保活参数对至少一条TCP连接进行配置。
作为本公开实施例一种可选的实施方式,所述装置还包括:
应答模块,用于当所述硬件加速卡接收到所述对端设备发送的第二保活消息时,则向所述对端设备发送第二应答消息。
应用本公开实施例,本公开提供的基于硬件协议栈的TCP长连接保活装置,首先根据宿主机的应用程序对硬件协议栈的至少一条TCP连接配置对应的保活参数,若接收到硬件加速卡发送的用于提示目标TCP连接保活失败的消息,则向对端设备发送断开目标TCP连接的指令。由于保活参数为硬件加速卡用于判断至少一条TCP连接是否保活成功的参数,所以在硬件加速卡上能够根据各条TCP连接对应的保活参数分别判断各条TCP连接是否保活成功,宿主机只需在硬件加速卡获取到目标TCP连接保活失败之后,向对端设备发送断开目标TCP连接的指令,可以有效的减少宿主机上CPU的中断和计时器操作,从而降低TCP长连接保活产生的CPU资源消耗,进一步提升宿主机的工作效率。
关于基于硬件协议栈的TCP长连接保活装置的具体限定可以参见上文中对于基于硬件协议栈的TCP长连接保活方法的限定,在此不再赘述。上述基于硬件协议栈的TCP长连接保活装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于电子设备的处理器中,也可以软件形式存储于电子设备的处理器中,以便于处理器调用执行以上各个模块对应的操作。
本公开实施例还提供了一种电子设备,图4为本公开实施例提供的电子设备的结构示意图。如图4所示,本实施例提供的电子设备包括:存储器41和处理器42,存储器41用于存储计算机程序;处理器42用于调用计算机程序时执行上述方法实施例提供的基于硬件协议栈的TCP长连接保活方法中任一实施例所执行的步骤。所述电子设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,所述电子设备的处理器用于提供计算和控制能力。所述电子设备的存储器包括非易失性存储介质、内存储器。所述非易失性存储介质存储有操作系统和计算机程序。所述内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。所述计算机程序被处理器执行时以实现一种基于硬件协议栈的TCP长连接保活方法。所述电子设备的显示屏可以是液晶显示屏或者电子墨水显示屏,所述电子设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本公开方案相关的部分结构的框图,并不构成对本公开方案所应用于其上的计算机设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本公开提供的基于硬件协议栈的TCP长连接保活装置可以实现为一种计算机的形式,计算机程序可以在如图4所示的电子设备上运行。电子设备的存储器中可存储组成该电子设备的基于硬件协议栈的TCP长连接保活装置的各个程序模块,比如,图3中所示的配置参数模块310以及指令控制模块320。各个程序模块构成的计算机程序使得处理器执行本说明书描述的本公开各个实施例的电子设备的基于硬件协议栈的TCP长连接保活方法中的步骤。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例提供的基于硬件协议栈的TCP长连接保活方法。
本领域技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。
处理器可以是中央判断单元(CentralProcessingUnit,CPU),还可以是其他通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、现成可编程门阵列(Field-ProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动存储介质。存储介质可以由任何方法或技术来实现信息存储,信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。根据本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种基于硬件协议栈的TCP长连接保活方法,其特征在于,应用于安装有硬件加速卡的宿主机,所述方法包括:
根据宿主机的应用程序对硬件协议栈的至少一条传输控制协议TCP连接配置对应的保活参数;所述保活参数为所述硬件加速卡用于判断所述至少一条TCP连接是否保活成功的参数;
若接收到所述硬件加速卡发送的提示消息,则向对端设备发送断开目标TCP连接的指令;所述提示消息用于提示目标TCP连接保活失败。
2.根据权利要求1所述的方法,其特征在于,所述保活参数包括:
源地址、目标地址、源端口、目标端口、首次保活超时时间、预设退避次数、以及退避策略。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
判断所述硬件加速卡在首次保活超时时间内,是否接收到对端设备发送的报文消息;
若未接收到对端设备发送的报文消息,则根据所述退避策略向所述对端设备发送第一保活消息;
若接收到对端设备发送的报文消息,则确定目标TCP连接为正常连接状态。
4.根据权利要求3所述的方法,其特征在于,在根据所述退避策略向所述对端设备发送第一保活消息之后,所述方法还包括:
若所述硬件加速卡在所述预设退避次数内未接收到对端设备发送的第一应答消息,则向宿主机发送提示消息;
若所述硬件加速卡在所述预设退避次数内接收到对端设备发送的第一应答消息,则确定目标TCP连接为正常连接状态。
5.根据权利要求3所述的方法,其特征在于,所述根据所述退避策略向所述对端设备发送第一保活消息,包括:
根据等间隔退避策略向所述对端设备发送第一保活消息;
或者;
根据乘二退避策略向所述对端设备发送第一保活消息。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若未根据宿主机的应用程序对硬件协议栈的至少一条TCP连接配置保活参数,则采用所述硬件加速卡的默认保活参数对至少一条TCP连接进行配置。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述硬件加速卡接收到所述对端设备发送的第二保活消息时,则向所述对端设备发送第二应答消息。
8.一种基于硬件协议栈的TCP长连接保活装置,其特征在于,应用于安装有硬件加速卡的宿主机,包括:
配置参数模块,用于根据宿主机的应用程序对硬件协议栈的至少一条TCP连接配置对应的保活参数;所述保活参数为所述硬件加速卡用于判断所述至少一条TCP连接是否保活成功的参数;
指令控制模块,用于若接收到所述硬件加速卡发送的提示消息,则向对端设备发送断开目标TCP连接的指令;所述提示消息用于提示目标TCP连接保活失败。
9.一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的基于硬件协议栈的TCP长连接保活方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,计算机程序被处理器执行时实现权利要求1至7中任一项所述的基于硬件协议栈的TCP长连接保活方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210714973.6A CN115225690B (zh) | 2022-06-22 | 基于硬件协议栈的tcp长连接保活方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210714973.6A CN115225690B (zh) | 2022-06-22 | 基于硬件协议栈的tcp长连接保活方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115225690A true CN115225690A (zh) | 2022-10-21 |
CN115225690B CN115225690B (zh) | 2024-04-19 |
Family
ID=
Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030204634A1 (en) * | 2002-04-30 | 2003-10-30 | Microsoft Corporation | Method to offload a network stack |
US20040062267A1 (en) * | 2002-03-06 | 2004-04-01 | Minami John Shigeto | Gigabit Ethernet adapter supporting the iSCSI and IPSEC protocols |
US20040073703A1 (en) * | 1997-10-14 | 2004-04-15 | Alacritech, Inc. | Fast-path apparatus for receiving data corresponding a TCP connection |
US20060104308A1 (en) * | 2004-11-12 | 2006-05-18 | Microsoft Corporation | Method and apparatus for secure internet protocol (IPSEC) offloading with integrated host protocol stack management |
CN102104531A (zh) * | 2009-12-17 | 2011-06-22 | 华为技术有限公司 | 一种报文处理装置、方法及系统 |
CN103401702A (zh) * | 2013-07-17 | 2013-11-20 | 杭州华三通信技术有限公司 | 一种基于全分布式模型的tcp连接管理方法及设备 |
CN107046542A (zh) * | 2017-04-24 | 2017-08-15 | 杭州云象网络技术有限公司 | 一种在网络级采用硬件实现共识验证的方法 |
CN107204999A (zh) * | 2016-03-16 | 2017-09-26 | 阿里巴巴集团控股有限公司 | 一种实现心跳的方法和装置 |
CN107483558A (zh) * | 2017-07-27 | 2017-12-15 | 中兴软创科技股份有限公司 | 一种云端平台对ap配置管理和对无线终端接入控制的方法 |
CN108848145A (zh) * | 2018-05-31 | 2018-11-20 | 西安抱朴通信科技有限公司 | 通过web代理访问设备近端网管的方法、系统及远端网管 |
CN108900349A (zh) * | 2018-07-11 | 2018-11-27 | 烽火通信科技股份有限公司 | 一种适用于eoc一体机的高频模块管理方法及系统 |
CN109714302A (zh) * | 2017-10-25 | 2019-05-03 | 阿里巴巴集团控股有限公司 | 算法的卸载方法、装置和系统 |
US20210042139A1 (en) * | 2019-08-09 | 2021-02-11 | International Business Machines Corporation | Virtual machine mobility for virtual machines using remote direct memory access connections |
CN112769651A (zh) * | 2021-01-13 | 2021-05-07 | 杭州迪普科技股份有限公司 | 一种tcp连接检测方法、装置及电子设备 |
CN112953967A (zh) * | 2021-03-30 | 2021-06-11 | 扬州万方电子技术有限责任公司 | 网络协议卸载装置和数据传输系统 |
CN113014599A (zh) * | 2017-03-17 | 2021-06-22 | 华为技术有限公司 | 安全保活的方法、设备以及系统 |
CN114238183A (zh) * | 2021-12-13 | 2022-03-25 | 中科驭数(北京)科技有限公司 | 实现Virtio设备的系统、方法和介质 |
CN114422428A (zh) * | 2022-01-13 | 2022-04-29 | 挂号网(杭州)科技有限公司 | 服务节点的重启方法、装置、电子设备及存储介质 |
CN114531497A (zh) * | 2020-10-30 | 2022-05-24 | 华为技术有限公司 | 一种tcp保活方法、装置及系统 |
Patent Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040073703A1 (en) * | 1997-10-14 | 2004-04-15 | Alacritech, Inc. | Fast-path apparatus for receiving data corresponding a TCP connection |
US20040062267A1 (en) * | 2002-03-06 | 2004-04-01 | Minami John Shigeto | Gigabit Ethernet adapter supporting the iSCSI and IPSEC protocols |
US20030204634A1 (en) * | 2002-04-30 | 2003-10-30 | Microsoft Corporation | Method to offload a network stack |
US20060104308A1 (en) * | 2004-11-12 | 2006-05-18 | Microsoft Corporation | Method and apparatus for secure internet protocol (IPSEC) offloading with integrated host protocol stack management |
CN102104531A (zh) * | 2009-12-17 | 2011-06-22 | 华为技术有限公司 | 一种报文处理装置、方法及系统 |
CN103401702A (zh) * | 2013-07-17 | 2013-11-20 | 杭州华三通信技术有限公司 | 一种基于全分布式模型的tcp连接管理方法及设备 |
CN107204999A (zh) * | 2016-03-16 | 2017-09-26 | 阿里巴巴集团控股有限公司 | 一种实现心跳的方法和装置 |
CN113014599A (zh) * | 2017-03-17 | 2021-06-22 | 华为技术有限公司 | 安全保活的方法、设备以及系统 |
CN107046542A (zh) * | 2017-04-24 | 2017-08-15 | 杭州云象网络技术有限公司 | 一种在网络级采用硬件实现共识验证的方法 |
CN107483558A (zh) * | 2017-07-27 | 2017-12-15 | 中兴软创科技股份有限公司 | 一种云端平台对ap配置管理和对无线终端接入控制的方法 |
CN109714302A (zh) * | 2017-10-25 | 2019-05-03 | 阿里巴巴集团控股有限公司 | 算法的卸载方法、装置和系统 |
CN108848145A (zh) * | 2018-05-31 | 2018-11-20 | 西安抱朴通信科技有限公司 | 通过web代理访问设备近端网管的方法、系统及远端网管 |
CN108900349A (zh) * | 2018-07-11 | 2018-11-27 | 烽火通信科技股份有限公司 | 一种适用于eoc一体机的高频模块管理方法及系统 |
US20210042139A1 (en) * | 2019-08-09 | 2021-02-11 | International Business Machines Corporation | Virtual machine mobility for virtual machines using remote direct memory access connections |
CN114531497A (zh) * | 2020-10-30 | 2022-05-24 | 华为技术有限公司 | 一种tcp保活方法、装置及系统 |
CN112769651A (zh) * | 2021-01-13 | 2021-05-07 | 杭州迪普科技股份有限公司 | 一种tcp连接检测方法、装置及电子设备 |
CN112953967A (zh) * | 2021-03-30 | 2021-06-11 | 扬州万方电子技术有限责任公司 | 网络协议卸载装置和数据传输系统 |
CN114238183A (zh) * | 2021-12-13 | 2022-03-25 | 中科驭数(北京)科技有限公司 | 实现Virtio设备的系统、方法和介质 |
CN114422428A (zh) * | 2022-01-13 | 2022-04-29 | 挂号网(杭州)科技有限公司 | 服务节点的重启方法、装置、电子设备及存储介质 |
Non-Patent Citations (4)
Title |
---|
SHU YAN JIANG ET.AL: "The design and implementation of TCP hardwiring and offloading engine", 2015 IEEE INTERNATIONAL CONFERENCE ON APPLIED SUPERCONDUCTIVITY AND ELECTROMAGNETIC DEVICES (ASEMD) * |
施展: "新型互联网传输协议的差错控制设计与协议一致性测试", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》 * |
董哥的黑板报: "TCP/IP卷一:94---TCP保活机制", pages 1 - 3, Retrieved from the Internet <URL:https://blog.51cto.com/u_15346415/3674622> * |
金跃辉,乐辉华,王宏涛: "互联网传输协议的性能优化", 中兴通讯技术, no. 04 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11683218B2 (en) | Compromised network node detection system | |
CN107919994B (zh) | 实现网络服务双机热备的方法及服务器 | |
CN108600100B (zh) | 成员端口选取方法和装置 | |
CN109040295A (zh) | 异常断线的确定方法及装置、终端及存储介质 | |
KR20090084670A (ko) | 웹 서비스 기반 관리 서비스를 발견하기 위한 2단계 방식의방법 및 시스템 | |
JP4071098B2 (ja) | ネットワークフィルタドライバのためのアーキテクチャおよびランタイム環境 | |
US7996524B2 (en) | Controlling external communication of embedded device using proxy server | |
CN115225690A (zh) | 基于硬件协议栈的tcp长连接保活方法及装置 | |
CN115225690B (zh) | 基于硬件协议栈的tcp长连接保活方法及装置 | |
CN112583879B (zh) | 请求的处理方法、装置及系统、存储介质和电子设备 | |
US8145756B2 (en) | Dynamic network identity architecture | |
WO2016154860A1 (zh) | 一种建立vnfm之间的接口的方法、装置及系统 | |
CN112367362B (zh) | 一种数据处理方法、装置、设备及计算机存储介质 | |
CN113971073A (zh) | 数据调用方法、装置、电子设备及计算机存储介质 | |
WO2020037607A1 (zh) | 一种传输数据的方法和装置 | |
KR20120121202A (ko) | 데이터 분산 서비스 네트워크 과부하 방지 방법 | |
CN110837405A (zh) | 基于容器技术的多实例图形桌面运行和切换方法 | |
TWI791316B (zh) | 實現程式間通訊的方法及系統 | |
CN113271235B (zh) | 网络流量的模糊测试方法、装置、存储介质及处理器 | |
CN111506441B (zh) | 一种监控Raid卡信息的方法、装置、设备及存储介质 | |
CN110912997B (zh) | 一种三角组网Loopback接口的检查方法及装置 | |
KR0168947B1 (ko) | 실시간 분산시스템에서 디스크를 갖지 않는 노드의 부팅 방법 | |
CN111107663B (zh) | 数据的传输方法及装置、存储介质、电子装置 | |
US20230370420A1 (en) | Method for Connection Between Devices, Electronic Device, and Computer-Readable Storage Medium | |
CN113765748A (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 |