【技术实现步骤摘要】
自适应的心跳间隔调整方法及系统
[0001]本专利技术涉及客户端服务器之间通信的
,具体地说是自适应的心跳 间隔调整方法及系统。
技术介绍
[0002]目前的一些系统需要客户端与服务器保持通信的可靠性和实时性,这就需 要客户端与服务器保持TCP长连接。但是网络中由于NAT超时、DHCP过期、 路由节点异常等会造成客户端与服务器链路的中断,在TCP通信的两端无法及 时感知链路中断的情况,影响通信的可靠性。为防止TCP长连接上由于长期没 有数据发送而导致链路断开的情况,可以周期性的在两个设备间发送数据包, 这种周期性发送数据包的动作称为心跳。然而实际中心跳的时间间隔是难以确 定的,如果设置的间隔时间太长,可能会导致连接断开,间隔时间太短,会导 致设备流量、电量、性能的损耗。因此既能维持网络连接又能减少资源损耗, 设置合适的心跳间隔是必要的。
[0003]现有技术中,实际应用最多的是采用固定的心跳间隔,虽然实现简单,但 对网络的适应性差。在最近的文献中,关于自适应计算心跳间隔主要有以下两 种方法:
[0004 ...
【技术保护点】
【技术特征摘要】
1.一种自适应的心跳间隔调整方法,其特征在于,用于调整客户端与服务器之间TCP连接的心跳时间间隔,所述方法包括如下步骤:S100、检测当前环境是否需要对客户端与服务器之间TCP连接的心跳间隔进行调整,如果满足心跳间隔调整条件,执行下一步;S200、设定心跳间隔的区间范围,所述区间范围包括最大心跳间隔值H、最小心跳间隔值L以及步长S;S300、在客户端与服务器之间建立两个TCP连接,分别为第一TCP连接和第二TCP连接,所述第一TCP连接和第二TCP连接同时工作,且第二TCP连接设置的心跳间隔值大于第一TCP连接设置的心跳间隔值;S400、基于心跳间隔的区间范围计算出两个不同的心跳间隔值,分别为第一心跳间隔值C1和第二心跳间隔值C2,且C2>C1,将所述第一心跳间隔值C1赋予第一TCP连接,将第二心跳间隔值C2赋予第二TCP连接;S500、经过C1时间或C2时间后,检查第一TCP连接以及第二TCP连接是否断开,并根据断开情况缩小心跳间隔的取值范围;重复执行步骤S400和步骤S500直至心跳间隔的取值区间不可再分,对应的心跳间隔值为最适配的心跳间隔值;S600、基于所述最适配的心跳间隔值更新TCP连接的心跳间隔。2.根据权利要求1所述的自适应的心跳间隔调整方法,其特征在于,所述满足心跳间隔调整条件包括:系统重启启动;TCP连接发送心跳包失败。3.根据权利要求1所述的自适应的心跳间隔调整方法,其特征在于,所述第一心跳间隔值C1为心跳间隔取值区间[L,H]的中位数,所述第二心跳间隔值C2为心跳间隔取值区间[C 1,H]的中位数。4.根据权利要求1所述的自适应的心跳间隔调整方法,其特征在于,通过如下方法检查第一TCP连接以及第二TCP连接是否断开:到了设定的心跳间隔值后,给对方发送一个心跳包,检测对方是否有回应,如果有回应则证明连接没有断开,否则说明连接已经断开了;所述发送心跳包的方式为通过设置定时器的方式来触发socket发送心跳包,或者,睡眠心跳间隔时间后通过线程触发socket发送心跳包。5.根据权利要求1所述的自适应的心跳间隔调整方法,其特征在于,经过C1时间或C2时间后,检查第一TCP连接以及第二TCP连接是否断开,并根据断开情况缩小心跳间隔的取值范围,包括如下操作:如果C1时间之后,第一TCP连接断开,则设置H=C1
‑
S,调整后心跳间隔的取值范围[L,H]等同于[L,C1
‑
S],基于调整后心跳间隔的取值范围重新计算第一心跳间隔值C1和第二心跳间隔值C2;如果C1时间之后,第一TCP连接未断开,C2时间之后,第二TCP连接断开,则设置H=C2
‑
L,L=C1,调整后心跳间隔的取值范围[L,H]等同于[C1,C2
‑
L],基于调整后心跳间隔的取值范围重新计算第一心跳间隔值C1和第二心跳间隔值C2;
如果C2时间之后,第二TCP连接未断开,设置L=C2,调整后心跳间隔的取值范围[L,H]等同于[C 2,H],基于调整后心跳间隔的取值范围重新计算第一心跳间隔值C1和第二心跳间隔值C2;对于调整后心跳间隔的取值范围[L,H],当H<=L+S时,说明区间已经不可再分了,此时已经能够得到最合适的心跳时间间隔,当H=L+S时,最合适的时间间隔为L,当H<L+S时,最合适的时间间隔为H。6.一种自适应的心跳间隔调整系统,其特征在于,通过如权利要求1
‑
5任一项所述的自适应的心跳间隔调整方法调整客户端与服务器之间TCP连接的心跳时间间隔,所述系统包括:监控模块,所述监控模块用于检测当前环境是...
【专利技术属性】
技术研发人员:陈伟,蔡卫卫,董玉全,杨继伟,赵美如,
申请(专利权)人:浪潮云信息技术股份公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。