[发明专利]一种维持TCP长连接的自适应心跳方法及其系统在审
| 申请号: | 201310610828.4 | 申请日: | 2013-11-26 |
| 公开(公告)号: | CN103685241A | 公开(公告)日: | 2014-03-26 |
| 发明(设计)人: | 周易子睿;陈爽;周安福;刘敏 | 申请(专利权)人: | 中国科学院计算技术研究所 |
| 主分类号: | H04L29/06 | 分类号: | H04L29/06 |
| 代理公司: | 北京律诚同业知识产权代理有限公司 11006 | 代理人: | 祁建国;李岩 |
| 地址: | 100190 北*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 维持 tcp 连接 自适应 心跳 方法 及其 系统 | ||
技术领域
本发明涉及一种自适应机制,特别涉及一种NAT环境下维持TCP长连接的自适应心跳方法和系统。
背景技术
嵌入式设备是一种用于控制、监视或者辅助操作的装置,从它诞生起就一直是最有发展前景的IT应用领域之一。如今,嵌入式设备在数量上已经远远超过了各种通用计算机。在可以预见的将来,人们对嵌入式的需求将持续增长,嵌入式领域将继续蓬勃发展。
大部分的嵌入式设备都能够通过无线方式接入网络。然而,由于互联网公有地址数量有限,无法为这些无线设备分配唯一的IP地址。因此,绝大部分的无线设备采用NAT方式接入到互联网。NAT能够将私有IP地址映射成公有IP地址,并通过修改数据包中的IP地址完成NAT内部设备和外部终端之间的通信。但是,NAT可用的公有地址数无法满足所有的无线设备,因此,NAT采用动态刷新的方式为最近需要联网的无线设备选择可用的公有IP地址。如果无线设备和外部主机所建立的连接长时间空闲,NAT将删除与之相对应的记录,导致链路断开。
一方面,在大部分场景中,无线设备需要保持和服务器的连接以便实时的发送和接收数据。另一方面,出于便携性考虑,无线设备大都体积较小,其计算能力、存储能力和能源相比于PC机而言都较低。一旦与服务器的连接断开,无线设备需要向服务器重新发起连接,消耗了不必要的资源。
现有的技术使用定时发送心跳包的方式来维持连接的稳定,要求发送心跳包的间隔小于NAT的刷新间隔。因此,使用确定的时间间隔发送心跳包的方式需要事先知道NAT的刷新间隔。然而,通常情况下NAT的刷新时间是不确定的。另一方面,无线设备所处的NAT网络环境可能随时发生变化,采用定时发送心跳包的方式将很难适应网络的变化。当然,可以采用非常小的间隔来发送心跳包,但是这种方式过于极端,同时会消耗大量的网络流量,对于流量十分宝贵的无线设备而言,这种方式是不可取的。
综上所述,在NAT环境下提供一套行之有效的以最少流量代价维持通信两端连接存活的自适应机制迫在眉睫。
发明内容
现有的无线设备大部分通过定时发送心跳包的方式来维持与NAT外部服务器的连接,这种方式需要知道当前NAT环境下的刷新间隔,而且一旦网络环境发生变化,修改相应的配置代价过高。本发明为了克服这些不足,提供一种自适应的连接存活维持机制,能够让通信端自主的调整向对端发送心跳包的频率,以此来维持不同NAT环境下的长连接。通过这种方式,本发明能够大大的降低数据丢失的概率和重建连接的开销,通信双方能够使用最小的代价维持与对端的长连接,避免了数据的丢失和繁琐的重连接。
为达上述目的,本发明提供一种维持TCP长连接的自适应心跳方法,其特征在于,所述方法包括:
连接建立步骤:完成通信双方初始化,通信双方建立网络连接;
连接状态探测步骤:通信双方中的一方作为发送方发送心跳包对所述网络连接状态进行探测;
自适应调整步骤:根据所述网络连接状态探测结果,通过连接探测参数的自适应调整,使所述发送方自主的调整发送心跳包的频率,以维持TCP长连接。
上述维持TCP长连接的自适应心跳方法,其特征在于,所述连接探测参数,包括:空闲时间间隔Time,心跳包发送时间间隔Intvl和probes个心跳包。
上述维持TCP长连接的自适应心跳方法,其特征在于,所述连接状态探测步骤,还包括:
心跳包发送步骤:当链路空闲时间等于所述空闲时间间隔Time,所述发送方向对方发送一个心跳包,探测所述网络连接状态;
连接成功标记步骤:如果所述发送方收到所述对方的应答包,所述网络连接状态标记为成功;
连接失败标记步骤:如果所述发送方没有收到所述对方的应答包,则所述发送方继续以所述心跳包发送时间间隔Intvl定时向对方发送probes个心跳包,如果所述发送方仍然没有收到所述对方的应答包,所述连接状态标记为失败。
上述维持TCP长连接的自适应心跳方法,其特征在于,所述自适应调整步骤,还包括:
连接成功自适应调整步骤:所述连接状态为成功的情况下,自适应调整所述连接探测参数,分别为所述空闲时间间隔Time值,所述心跳包发送时间间隔Intvl和所述probes个心跳包增加处理,并且重复执行所述连接状态探测步骤;
连接失败自适应调整步骤:所述连接状态为失败的情况下,自适应调整所述连接探测参数,分别为所述空闲时间间隔Time值,所述心跳包发送时间间隔Intvl和所述probes个心跳包减少处理后,对所述网络连接状态进行判断。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310610828.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种快速扫描网站漏洞的方法和装置
- 下一篇:网络入侵检测方法





