CN109905259A - 通信连接维持方法、系统和相关设备 - Google Patents
通信连接维持方法、系统和相关设备 Download PDFInfo
- Publication number
- CN109905259A CN109905259A CN201711289571.1A CN201711289571A CN109905259A CN 109905259 A CN109905259 A CN 109905259A CN 201711289571 A CN201711289571 A CN 201711289571A CN 109905259 A CN109905259 A CN 109905259A
- Authority
- CN
- China
- Prior art keywords
- client
- server
- heartbeat
- state information
- network
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种通信连接维持方法、系统和相关设备,涉及物联网技术领域。通信连接维持方法包括:服务器获取心跳信息和客户端发送的客户端状态信息;服务器预测下一周期发起心跳检测时的服务器状态信息、客户端状态信息和网络状态信息;服务器根据预测的服务器状态信息、客户端状态信息和网络状态信息中的一个或多个调整心跳信息;服务器向客户端发送服务器响应,其中,服务器响应中包括调整后的心跳信息,以便客户端根据调整后的心跳信息向服务器发送心跳包。本发明可以使得调整后的心跳信息符合当前的环境,提高了心跳信息的准确性,维持了服务器和客户端之间的稳定通信。
Description
技术领域
本发明涉及物联网技术领域,特别涉及一种通信连接维持方法、系统和相关设备。
背景技术
在物联网中,服务器与终端采用轻量级的基于代理的发布/订阅的消息推送协议进行通信,其设计思想是轻量级、简单、开放、易于实现,几乎能把所有联网的物体和外部连接起来。即使在受限的条件下,比如计算能力有限或者工作在不可靠、低带宽的网络环境下的传感器和控制设备端,也能够方便地实现项目中各设备的通信功能。
目前物联网中用于维护通信连接的心跳机制比较简单,主要包括物联网客户端按设定的心跳间隔值周期性主动地发送心跳包给服务器端,服务器在收到来自客户端的心跳包时响应返回一个心跳包。根据在设定的心跳超时时间内,双方是否收到心跳包来判断对方是否存在或通信是否正常。
然而,在目前的心跳机制下,心跳间隔和心跳超时时间的设置不准确,导致经常发生物联网客户端丢失和服务器失联的情况,造成服务器和客户端之间的连接不稳定。
发明内容
本发明实施例所要解决的一个技术问题是:如何提高服务器和客户端之间的连接的稳定性。
根据本发明一些实施例的第一个方面,提供一种通信连接维持方法,包括:服务器获取心跳信息和客户端发送的客户端状态信息;服务器预测下一周期发起心跳检测时的服务器状态信息、客户端状态信息和网络状态信息;服务器根据预测的服务器状态信息、客户端状态信息和网络状态信息中的一个或多个调整心跳信息;服务器向客户端发送服务器响应,其中,服务器响应中包括调整后的心跳信息,以便客户端根据调整后的心跳信息向服务器发送心跳包。
在一些实施例中,网络状态信息根据服务器与客户端的最近N次通信的网络时延确定,其中,N≥1;和/或,服务器状态信息包括服务器的客户端连接数和连接的每个客户端的进程、线程数;和/或,客户端状态信息包括客户端的带宽和/或客户端的剩余电量。
在一些实施例中,心跳信息包括心跳间隔;心跳间隔与网络时延、网络设备超时时间、客户端的剩余电量中的至少一项成正相关关系。
在一些实施例中,心跳信息包括心跳超时时间;心跳超时时间与服务器的客户端连接数成负相关关系,和/或,心跳超时时间与网络时延成正相关关系。
在一些实施例中,通信连接维持方法还包括:服务器响应于在心跳超时时间内未接收到客户端发送的心跳包,向客户端发起连续快速心跳检测,在连续快速心跳检测中,每次发送心跳包的心跳间隔小于上一次心跳间隔;服务器响应于接收到客户端的心跳响应,停止连续快速心跳检测并释放与客户端的连接。
根据本发明实施例的第二个方面,提供一种通信连接维持方法,包括:客户端向服务器发送客户端状态信息,以便服务器预测下一周期发起心跳检测时的服务器状态信息、客户端状态信息和网络状态信息,并根据预测的服务器状态信息、客户端状态信息和网络状态信息中的一个或多个调整服务器获取的心跳信息;客户端接收服务器发送的服务器响应,其中,服务器响应中包括调整后的心跳信息;客户端根据调整后的心跳信息向服务器发送心跳包。
在一些实施例中,网络状态信息根据服务器与客户端的最近N次通信的网络时延确定,其中,N≥1;和/或,服务器状态信息包括服务器的客户端连接数和连接的每个客户端的进程、线程数;和/或,客户端状态信息包括客户端的带宽和/或客户端的剩余电量。
在一些实施例中,心跳信息包括心跳间隔;心跳间隔与网络时延、网络设备超时时间、客户端的剩余电量中的至少一项成正相关关系。
在一些实施例中,心跳信息包括心跳超时时间;心跳超时时间与服务器的客户端连接数成负相关关系,和/或,心跳超时时间与网络时延成正相关关系。
在一些实施例中,客户端响应于在心跳超时时间内未接收到服务器发送的心跳包,等待服务器发起连续快速心跳检测,在连续快速心跳检测中,每次发送心跳包的心跳间隔小于上一次心跳间隔;客户端响应于服务器发起连续快速心跳检测,向服务器发送心跳响应。
根据本发明实施例的第三个方面,提供一种服务器,包括:客户端信息接收模块,用于获取心跳信息和客户端发送的客户端状态信息;状态信息预测模块,用于预测下一周期发起心跳检测时的服务器状态信息、客户端状态信息和网络状态信息;心跳信息调整模块,用于根据预测的服务器状态信息、客户端状态信息和网络状态信息中的一个或多个调整心跳信息;服务器响应发送模块,用于向客户端发送服务器响应,其中,服务器响应中包括调整后的心跳信息,以便客户端根据调整后的心跳信息向服务器发送心跳包。
在一些实施例中,网络状态信息根据服务器与客户端的最近N次通信的网络时延确定,其中,N≥1;和/或,服务器状态信息包括服务器的客户端连接数和连接的每个客户端的进程、线程数;和/或,客户端状态信息包括客户端的带宽和/或客户端的剩余电量。
在一些实施例中,心跳信息包括心跳间隔,心跳间隔与网络时延、网络设备超时时间、客户端的剩余电量中的至少一项成正相关关系;和/或,心跳信息包括心跳超时时间,心跳超时时间与服务器的客户端连接数成负相关关系,和/或,心跳超时时间与网络时延成正相关关系。
在一些实施例中,服务器还包括:连续快速心跳检测模块,用于响应于在心跳超时时间内未接收到客户端发送的心跳包,向客户端发起连续快速心跳检测,在连续快速心跳检测中,每次发送心跳包的心跳间隔小于上一次心跳间隔;连接释放模块,用于响应于接收到客户端的心跳响应,停止连续快速心跳检测并释放与客户端的连接。
根据本发明实施例的第四个方面,提供一种客户端,包括:客户端信息发送模块,用于向服务器发送客户端状态信息,以便服务器预测下一周期发起心跳检测时的服务器状态信息、客户端状态信息和网络状态信息,并根据预测的服务器状态信息、客户端状态信息和网络状态信息中的一个或多个调整服务器获取的心跳信息;服务器响应接收模块,用于接收服务器发送的服务器响应,其中,服务器响应中包括调整后的心跳信息;心跳包发送模块,用于根据调整后的心跳信息向服务器发送心跳包。
在一些实施例中,网络状态信息根据服务器与客户端的最近N次通信的网络时延确定,其中,N≥1;和/或,服务器状态信息包括服务器的客户端连接数和连接的每个客户端的进程、线程数;和/或,客户端状态信息包括客户端的带宽和/或客户端的剩余电量。
在一些实施例中,心跳包发送模块进一步用于响应于在心跳超时时间内未接收到服务器发送的心跳包,等待服务器发起连续快速心跳检测,并且响应于服务器发起连续快速心跳检测,向服务器发送心跳响应;在连续快速心跳检测中,每次发送心跳包的心跳间隔小于上一次心跳间隔。
根据本发明实施例的第五个方面,提供一种通信连接维持系统,包括:前述任意一种服务器,和前述任意一种客户端。
根据本发明一些实施例的第六个方面,提供一种通信连接维持装置,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行前述任意一种通信连接维持方法。
根据本发明一些实施例的第七个方面,提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现前述任意一种通信连接维持方法。
上述发明中的一些实施例具有如下优点或有益效果:本发明可以根据客户端的状态、服务器的状态、网络状态中的一个或多个对心跳信息进行调整,从而可以使得调整后的心跳信息符合当前的环境,提高了心跳信息的准确性,维持了服务器和客户端之间的稳定通信。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为根据本发明一些实施例的通信连接维持方法的流程图。
图2为根据本发明另一些实施例的通信连接维持方法的流程图。
图3为根据本发明又一些实施例的通信连接维持方法的流程图。
图4为根据本发明一些实施例的通信连接维持系统的结构图。
图5为根据本发明一些实施例的服务器的结构图。
图6为根据本发明一些实施例的客户端的结构图。
图7为根据本发明一些实施例的通信连接维持装置的结构图。
图8为根据本发明另一些实施例的通信连接维持装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
图1为根据本发明一些实施例的通信连接维持方法的流程图。如图1所示,该实施例的通信连接维持方法包括步骤S102~S108。
在步骤S102中,服务器获取心跳信息和客户端发送的客户端状态信息。
服务器和客户端为物联网中的服务器设备和客户端设备,客户端例如可以为智能电表终端、传感器终端等等。心跳信息例如可以为心跳间隔、心跳超时时间等等。客户端状态信息例如可以包括客户端的带宽、剩余电量等等。
在建立连接阶段,服务器可以接收客户端发送的连接请求,客户端在连接请求中添加客户端状态信息和预设的心跳信息;在心跳检测阶段,客户端可以直接向发送的心跳包中添加心跳信息和客户端状态信息,心跳信息可以是客户端当前采用的心跳信息、也可以是客户端根据自身的状况或环境变化而调整的心跳信息。然而,由于客户端掌握的信息非常有限,客户端发送的心跳信息很可能已经无法适应当前的网络和设备环境,因此需要服务器在客户端发送的心跳信息的基础上做出进一步的调整。
在步骤S104中,服务器预测下一周期发起心跳检测时的服务器状态信息、客户端状态信息和网络状态信息。
网络状态信息反映了网络的拥塞程度,例如可以包括网络时延、丢包率等等。服务器状态信息反映了服务器当前的负载情况,例如可以包括服务器的客户端连接数,或者包括服务器连接的每个客户端的进程、线程数、并发数等等。例如,当服务器的客户端连接数在当前周期没有发生变化时,可以设置下一周期的服务器运行状态不变;当服务器的客户端连接数在当前周期增加或者减少时,根据增加或减少的连接所对应的进程数和线程数来确定下一周期的服务器状态。
服务器可以根据当前的服务器、网络状况或者服务器、网络状况的历史数据来预测下一周期发起心跳检测时的服务器状态信息和网络状态信息。例如,可以通过对客户端与服务器的每次通信的网络延迟进行统计,采用指数平滑法来平均当前的网络状态。
在步骤S106中,服务器根据预测的客户端状态信息、服务器状态信息和网络状态信息中的一个或多个调整心跳信息。
通过根据预测的客户端状态信息调整心跳信息,可以减轻客户端的负载、降低客户端的能耗,从而减小了客户端失联的风险;通过根据预测的服务器状态信息调整心跳信息,可以使得调整结果符合服务器的状态;通过根据预测的网络状态信息调整心跳信息,可以使得调整结果符合当前的网络环境。
在调整心跳信息时,可以考虑单一的预测信息,也可以综合考虑客户端的状态、服务器的状态、网络状态中的多个或全部,从而可以综合实际的设备和网络状况获得更合适的心跳信息。
在步骤S108中,服务器向客户端发送服务器响应,其中,服务器响应中包括调整后的心跳信息,以便客户端根据调整后的心跳信息向服务器发送心跳包。
服务器在调整心跳信息后,可以告知客户端。从而,客户端可以以调整后的心跳间隔、心跳超时时间等心跳信息为依据对服务器进行心跳检测。
通过上述实施例的方法,可以根据客户端的状态、服务器的状态、网络状态中的一个或多个对心跳信息进行调整,从而可以使得调整后的心跳信息符合当前的环境,提高了心跳信息的准确性,维持了服务器和客户端之间的稳定通信。
在一些实施例中,可以采用以下调整方式调整心跳信息。
在确定心跳间隔时,应当使得心跳间隔尽量大,以减少服务器和客户端之间的频繁通信带来的网络负担和客户端的流量、电量消耗;而心跳间隔又不能过大,以避免超过了防火墙、NAT(Network Address Translation,网络地址转换)的超时时间而导致连接中断。
在确定心跳超时时间时,应当使得心跳超时时间尽量短,以使得服务器能够快速释放失联客户端的连接,避免服务器由于连接过载而无法接受到新的连接,进而造成客户端的流量、电量消耗;而心跳超时时间又不能过短,以防止因为网络时延、服务器响应慢而造成超时误判。
因此,在调整时需要综合多方面因素进行考量,以确定合适的心跳信息。在一些实施例中,心跳间隔可以与网络时延、网络设备超时时间、客户端的剩余电量中的至少一项成正相关关系;心跳超时时间可以与服务器的客户端连接数可以成负相关关系;心跳超时时间也可以与网络时延成正相关关系。本领域技术人员可以选择以上的一种或多种关系进行调整。
例如,在调整心跳间隔时,可以设置分别根据网络时延、网络设备超时时间、客户端的剩余电量确定三个心跳间隔调整因子,并根据三个心跳间隔调整因子的加权和与当前心跳间隔的乘积作为调整后的心跳间隔。本领域技术人员还可以根据需要采用其他具体的调整方法,这里不再赘述。
本发明的实施例既可以用于连接建立阶段的心跳信息调整,也可以用于心跳检测阶段的心跳信息调整。下面参考图2描述本发明通信连接维持方法的实施例。
图2为根据本发明另一些实施例的通信连接维持方法的流程图。如图2所示,该实施例的通信连接维持方法包括步骤S202~S218。
在步骤S202中,客户端向服务器发送连接请求,连接请求消息中包括心跳信息和客户端状态信息。
在步骤S2042中,服务器根据服务器的当前状态,预测下一周期发起心跳检测时的服务器状态信息。
在步骤S2044中,服务器根据客户端发送的客户端状态信息,预测下一周期发起心跳检测时的客户端状态信息。
在步骤S2046中,服务器检测当前的网络状况,根据检测结果预测下一周期发起心跳检测时的网络状态信息。
在步骤S206中,服务器根据预测的客户端状态信息、服务器状态信息和网络状态信息中的一个或多个调整心跳间隔和心跳超时时间。
在步骤S208中,服务器向客户端发送连接响应,其中,连接响应中包括调整后的心跳信息。
在步骤S210中,客户端采用调整后的心跳间隔确定下一次发起心跳检测的时间。
在步骤S212中,客户端向服务器发送心跳包,心跳包中包括客户端状态信息。
客户端可以在心跳包中添加当前采用的心跳信息,也可以不添加。如果心跳包中不包含心跳信息,服务器可以直接从本地存储的信息中获取。
在步骤S2142中,服务器根据服务器的当前状态,预测下一周期发起心跳检测时的服务器状态信息。
在步骤S2144中,服务器根据客户端发送的客户端状态信息,预测下一周期发起心跳检测时的客户端状态信息。
在步骤S2146中,服务器检测当前的网络状况,根据检测结果预测下一周期发起心跳检测时的网络状态信息。
在步骤S216中,服务器根据预测的客户端状态信息、服务器状态信息和网络状态信息中的一个或多个调整心跳间隔和心跳超时时间。
在步骤S218中,服务器向客户端发送心跳响应,其中,心跳响应中包括调整后的心跳信息。
然后可以返回执行步骤S210,使得客户端根据调整后的心跳信息继续向服务器发送心跳包。
通过上述实施例的方法,在连接建立过程和心跳检测过程均可以根据当前的环境来确定心跳信息,从而提高了服务器和终端之间连接的稳定性。
在进入心跳检测过程后,如果服务器没有接收到客户端发送的心跳包,则服务器可以主动发起检测。下面参考图3描述本发明通信连接维持方法的实施例。
图3为根据本发明又一些实施例的通信连接维持方法的流程图。如图3所示,该实施例的通信连接维持方法包括步骤S302~S308。
在步骤S302中,服务器响应于在心跳超时时间内未接收到客户端发送的心跳包,向客户端发起连续快速心跳检测。
连续快速心跳检测是指服务器连续向客户端发送多个心跳包,每次发送心跳包的心跳间隔小于上一次心跳间隔。例如,每次发送心跳包的间隔为上一次发送心跳包的间隔的一半。
在发起连续快速心跳检测时,可以采用服务器预设的心跳间隔,还可以采用图1实施例中与步骤S104~S106类似的方法实时地确定当前合适的心跳间隔。
在一些实施例中,服务器可以根据当前的网络环境和设备状况来决定何时发起连续快速心跳检测。例如,可以在网络时延小于预设值、服务器的负载小于预设值时发起。
在步骤S304中,服务器响应于接收到客户端的心跳响应,停止连续快速心跳检测并释放与客户端的连接。
如果在连续快速心跳检测过程中,服务器能够接收到客户端的心跳响应,说明服务器和客户端之间具备通信条件,只是之前设置的心跳间隔过大。因此,服务器和客户端可以采用连续快速心跳检测中使用的最后一个心跳间隔作为后续心跳检测的心跳间隔,或者在此基础上采用图1实施例的方法继续进行调整。
如果在连续快速心跳检测过程中,连续快速心跳检测的心跳间隔已经小于预设的阈值,但仍然未收到客户端的心跳响应,说明客户端和服务器之间的通路已经中断、或者客户端发生了故障等等导致客户端和服务器无法进行正常通信,那么服务器可以向维护人员或者其他监控平台反馈当前的情况。
在上述实施例中,当服务器在心跳超时时间内未收到客户端发送的心跳包时,由服务器主动发起心跳检测以确定客户端的状态。即,如果客户端在心跳超时时间内未收到服务器发送的心跳响应,那么客户端不再主动发起心跳检测,而是等待服务器发起的连续快速心跳检测。从而可以减少客户端的流量和耗电量,提高了物联网设备的使用时长。
下面参考图4描述本发明通信连接维持系统的实施例。
图4为根据本发明一些实施例的通信连接维持系统的结构图。如图4所示,该实施例的通信连接维持系统包括服务器42和客户端44。在图4中示出了系统中的一个服务器42和一个客户端44。根据需要,该系统中也可以包括多个服务器42或者多个客户端44,这里不再赘述。
下面参考图5描述本发明服务器的实施例。
图5为根据本发明一些实施例的服务器的结构图。如图5所示,该实施例的服务器50包括:客户端信息接收模块510,用于获取心跳信息和客户端发送的客户端状态信息;状态信息预测模块520,用于预测下一周期发起心跳检测时的服务器状态信息、客户端状态信息和网络状态信息;心跳信息调整模块530,用于根据预测的服务器状态信息、客户端状态信息和网络状态信息中的一个或多个调整心跳信息;服务器响应发送模块540,用于向客户端发送服务器响应,其中,服务器响应中包括调整后的心跳信息,以便客户端根据调整后的心跳信息向服务器发送心跳包。
在一些实施例中,网络状态信息根据服务器与客户端的最近N次通信的网络时延确定,其中,N≥1;和/或,服务器状态信息包括服务器的客户端连接数和连接的每个客户端的进程、线程数;和/或,客户端状态信息包括客户端的带宽和/或客户端的剩余电量。
在一些实施例中,心跳信息包括心跳间隔,心跳间隔与网络时延、网络设备超时时间、客户端的剩余电量中的至少一项成正相关关系;和/或,心跳信息包括心跳超时时间,心跳超时时间与服务器的客户端连接数成负相关关系,和/或,心跳超时时间与网络时延成正相关关系。
在一些实施例中,服务器50还可以包括:连续快速心跳检测模块550,用于响应于在心跳超时时间内未接收到客户端发送的心跳包,向客户端发起连续快速心跳检测,在连续快速心跳检测中,每次发送心跳包的心跳间隔小于上一次心跳间隔;连接释放模块560,用于响应于接收到客户端的心跳响应,停止连续快速心跳检测并释放与客户端的连接。
下面参考图6描述本发明客户端的实施例。
图6为根据本发明一些实施例的客户端的结构图。如图6所示,该实施例的客户端60包括:客户端信息发送模块610,用于向服务器发送客户端状态信息,以便服务器预测下一周期发起心跳检测时的服务器状态信息、客户端状态信息和网络状态信息,并根据预测的服务器状态信息、客户端状态信息和网络状态信息中的一个或多个调整服务器获取的心跳信息;服务器响应接收模块620,用于接收服务器发送的服务器响应,其中,服务器响应中包括调整后的心跳信息;心跳包发送模块630,用于根据调整后的心跳信息向服务器发送心跳包。
在一些实施例中,网络状态信息根据服务器与客户端的最近N次通信的网络时延确定,其中,N≥1;和/或,服务器状态信息包括服务器的客户端连接数和连接的每个客户端的进程、线程数;和/或,客户端状态信息包括客户端的带宽和/或客户端的剩余电量。
在一些实施例中,心跳信息包括心跳间隔,心跳间隔与网络时延、网络设备超时时间、客户端的剩余电量中的至少一项成正相关关系;和/或,心跳信息包括心跳超时时间,心跳超时时间与服务器的客户端连接数成负相关关系,和/或,心跳超时时间与网络时延成正相关关系。
在一些实施例中,心跳包发送模块630可以进一步用于响应于在心跳超时时间内未接收到服务器发送的心跳包,等待服务器发起连续快速心跳检测,并且响应于服务器发起连续快速心跳检测,向服务器发送心跳响应;在连续快速心跳检测中,每次发送心跳包的心跳间隔小于上一次心跳间隔。
图7为根据本发明一些实施例的通信连接维持装置的结构图,该通信连接维持装置或者为服务器,或者为终端。如图7所示,该实施例的通信连接维持装置700包括:存储器710以及耦接至该存储器710的处理器720,处理器720被配置为基于存储在存储器710中的指令,执行前述任意一个实施例中的通信连接维持方法。
其中,存储器710例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)以及其他程序等。
图8为根据本发明另一些实施例的通信连接维持装置的结构图,该通信连接维持装置或者为服务器,或者为终端。如图8所示,该实施例的通信连接维持装置800包括:存储器810以及处理器820,还可以包括输入输出接口830、网络接口840、存储接口850等。这些接口830,840,850以及存储器810和处理器820之间例如可以通过总线860连接。其中,输入输出接口830为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口840为各种联网设备提供连接接口。存储接口850为SD卡、U盘等外置存储设备提供连接接口。
本发明的实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现前述任意一种通信连接维持方法。
本领域内的技术人员应当明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (20)
1.一种通信连接维持方法,包括:
服务器获取心跳信息和客户端发送的客户端状态信息;
服务器预测下一周期发起心跳检测时的服务器状态信息、客户端状态信息和网络状态信息;
服务器根据所述预测的服务器状态信息、客户端状态信息和网络状态信息中的一个或多个调整所述心跳信息;
服务器向客户端发送服务器响应,其中,所述服务器响应中包括调整后的心跳信息,以便客户端根据调整后的心跳信息向服务器发送心跳包。
2.根据权利要求1所述的通信连接维持方法,其中,
所述网络状态信息根据服务器与客户端的最近N次通信的网络时延确定,其中,N≥1;和/或,
所述服务器状态信息包括所述服务器的客户端连接数和连接的每个客户端的进程、线程数;和/或,
所述客户端状态信息包括客户端的带宽和/或客户端的剩余电量。
3.根据权利要求1所述的通信连接维持方法,其中,所述心跳信息包括心跳间隔;
所述心跳间隔与网络时延、网络设备超时时间、客户端的剩余电量中的至少一项成正相关关系。
4.根据权利要求1或3所述的通信连接维持方法,其中,所述心跳信息包括心跳超时时间;
所述心跳超时时间与服务器的客户端连接数成负相关关系,和/或,所述心跳超时时间与网络时延成正相关关系。
5.根据权利要求1所述的通信连接维持方法,还包括:
服务器响应于在心跳超时时间内未接收到客户端发送的心跳包,向客户端发起连续快速心跳检测,在所述连续快速心跳检测中,每次发送心跳包的心跳间隔小于上一次心跳间隔;
服务器响应于接收到客户端的心跳响应,停止连续快速心跳检测并释放与客户端的连接。
6.一种通信连接维持方法,包括:
客户端向服务器发送客户端状态信息,以便服务器预测下一周期发起心跳检测时的服务器状态信息、客户端状态信息和网络状态信息,并根据所述预测的服务器状态信息、客户端状态信息和网络状态信息中的一个或多个调整服务器获取的心跳信息;
客户端接收服务器发送的服务器响应,其中,所述服务器响应中包括调整后的心跳信息;
客户端根据调整后的心跳信息向服务器发送心跳包。
7.根据权利要求6所述的通信连接维持方法,其中,
所述网络状态信息根据服务器与客户端的最近N次通信的网络时延确定,其中,N≥1;和/或,
所述服务器状态信息包括所述服务器的客户端连接数和连接的每个客户端的进程、线程数;和/或,
所述客户端状态信息包括客户端的带宽和/或客户端的剩余电量。
8.根据权利要求6所述的通信连接维持方法,其中,所述心跳信息包括心跳间隔;
所述心跳间隔与网络时延、网络设备超时时间、客户端的剩余电量中的至少一项成正相关关系。
9.根据权利要求6所述的通信连接维持方法,其中,所述心跳信息包括心跳超时时间;
所述心跳超时时间与服务器的客户端连接数成负相关关系,和/或,所述心跳超时时间与网络时延成正相关关系。
10.根据权利要求6所述的通信连接维持方法,其中,
客户端响应于在心跳超时时间内未接收到服务器发送的心跳包,等待服务器发起连续快速心跳检测,在所述连续快速心跳检测中,每次发送心跳包的心跳间隔小于上一次心跳间隔;
客户端响应于服务器发起连续快速心跳检测,向服务器发送心跳响应。
11.一种服务器,包括:
客户端信息接收模块,用于获取心跳信息和客户端发送的客户端状态信息;
状态信息预测模块,用于预测下一周期发起心跳检测时的服务器状态信息、客户端状态信息和网络状态信息;
心跳信息调整模块,用于根据所述预测的服务器状态信息、客户端状态信息和网络状态信息中的一个或多个调整所述心跳信息;
服务器响应发送模块,用于向客户端发送服务器响应,其中,所述服务器响应中包括调整后的心跳信息,以便客户端根据调整后的心跳信息向服务器发送心跳包。
12.根据权利要求11所述的服务器,其中,
所述网络状态信息根据服务器与客户端的最近N次通信的网络时延确定,其中,N≥1;和/或,
所述服务器状态信息包括所述服务器的客户端连接数和连接的每个客户端的进程、线程数;和/或,
所述客户端状态信息包括客户端的带宽和/或客户端的剩余电量。
13.根据权利要求11所述的服务器,其中,
所述心跳信息包括心跳间隔,所述心跳间隔与网络时延、网络设备超时时间、客户端的剩余电量中的至少一项成正相关关系;和/或,
所述心跳信息包括心跳超时时间,所述心跳超时时间与服务器的客户端连接数成负相关关系,和/或,所述心跳超时时间与网络时延成正相关关系。
14.根据权利要求11所述的服务器,还包括:
连续快速心跳检测模块,用于响应于在心跳超时时间内未接收到客户端发送的心跳包,向客户端发起连续快速心跳检测,在所述连续快速心跳检测中,每次发送心跳包的心跳间隔小于上一次心跳间隔;
连接释放模块,用于响应于接收到客户端的心跳响应,停止连续快速心跳检测并释放与客户端的连接。
15.一种客户端,包括:
客户端信息发送模块,用于向服务器发送客户端状态信息,以便服务器预测下一周期发起心跳检测时的服务器状态信息、客户端状态信息和网络状态信息,并根据所述预测的服务器状态信息、客户端状态信息和网络状态信息中的一个或多个调整服务器获取的心跳信息;
服务器响应接收模块,用于接收服务器发送的服务器响应,其中,所述服务器响应中包括调整后的心跳信息;
心跳包发送模块,用于根据调整后的心跳信息向服务器发送心跳包。
16.根据权利要求15所述的客户端,其中,
所述网络状态信息根据服务器与客户端的最近N次通信的网络时延确定,其中,N≥1;和/或,
所述服务器状态信息包括所述服务器的客户端连接数和连接的每个客户端的进程、线程数;和/或,
所述客户端状态信息包括客户端的带宽和/或客户端的剩余电量。
17.根据权利要求15所述的客户端,其中,所述心跳包发送模块进一步用于响应于在心跳超时时间内未接收到服务器发送的心跳包,等待服务器发起连续快速心跳检测,并且响应于服务器发起连续快速心跳检测,向服务器发送心跳响应;
在所述连续快速心跳检测中,每次发送心跳包的心跳间隔小于上一次心跳间隔。
18.一种通信连接维持系统,包括:
权利要求11~14中任一项所述的服务器,和
权利要求15~17中任一项所述的客户端。
19.一种通信连接维持装置,其中:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如权利要求1~10中任一项所述的通信连接维持方法。
20.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1~10中任一项所述的通信连接维持方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711289571.1A CN109905259B (zh) | 2017-12-08 | 2017-12-08 | 通信连接维持方法、系统和相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711289571.1A CN109905259B (zh) | 2017-12-08 | 2017-12-08 | 通信连接维持方法、系统和相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109905259A true CN109905259A (zh) | 2019-06-18 |
CN109905259B CN109905259B (zh) | 2022-02-15 |
Family
ID=66939748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711289571.1A Active CN109905259B (zh) | 2017-12-08 | 2017-12-08 | 通信连接维持方法、系统和相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109905259B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110381130A (zh) * | 2019-07-12 | 2019-10-25 | 湖南新云网科技有限公司 | 保活长连接方法、装置、通信终端及存储介质 |
CN110391956A (zh) * | 2019-07-23 | 2019-10-29 | 中国工商银行股份有限公司 | 网络服务进程状态的识别监控方法及装置 |
CN110601914A (zh) * | 2019-08-05 | 2019-12-20 | 深圳市大拿科技有限公司 | 监测服务器存活状态的方法及系统 |
CN111355640A (zh) * | 2020-03-10 | 2020-06-30 | 北京意锐新创科技有限公司 | 适用于支付设备的分布式动态心跳包转发方法和装置 |
CN111860954A (zh) * | 2020-06-18 | 2020-10-30 | 上海钧正网络科技有限公司 | 车辆失联预测方法、装置、计算机设备和存储介质 |
CN112260888A (zh) * | 2020-09-27 | 2021-01-22 | 北京天融信网络安全技术有限公司 | 容器云、容器云的资源管理方法 |
CN112448858A (zh) * | 2021-02-01 | 2021-03-05 | 腾讯科技(深圳)有限公司 | 网络通信控制方法及装置、电子设备和可读存储介质 |
CN113242284A (zh) * | 2021-04-30 | 2021-08-10 | 北京有竹居网络技术有限公司 | 通信方法、装置及通信系统 |
CN113472606A (zh) * | 2021-06-29 | 2021-10-01 | 聚好看科技股份有限公司 | 一种心跳超时检测方法、服务器及电子设备 |
CN113890839A (zh) * | 2021-10-26 | 2022-01-04 | 杭州华橙软件技术有限公司 | 物联网设备的网络连接状态的确定方法及装置 |
CN114390453A (zh) * | 2022-02-09 | 2022-04-22 | 福建天泉教育科技有限公司 | 一种消息推送的优化方法及终端 |
CN114785846A (zh) * | 2022-03-23 | 2022-07-22 | 南京邮电大学 | 一种基于ProtoBuf协议的心跳监控方法及系统 |
CN115334141A (zh) * | 2022-08-03 | 2022-11-11 | 上海艺赛旗软件股份有限公司 | 一种基于心跳机制的双向数据传输系统、方法及装置 |
CN115987854A (zh) * | 2022-11-30 | 2023-04-18 | 广州广电运通信息科技有限公司 | 网络连接的调节方法、设备、系统及存储介质 |
WO2023174043A1 (zh) * | 2022-03-14 | 2023-09-21 | 华为技术有限公司 | 一种电力线通信系统、在网状态检测方法及设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1661968A (zh) * | 2004-02-27 | 2005-08-31 | 联想(北京)有限公司 | 基于网络和主机负载的变速心跳机制的实现方法 |
CN101695050A (zh) * | 2009-10-19 | 2010-04-14 | 浪潮电子信息产业股份有限公司 | 一种基于网络流量自适应预测的动态负载均衡方法 |
US20100262680A1 (en) * | 2009-04-13 | 2010-10-14 | Samsung Electronics Co., Ltd. | Apparatus and method for determining heartbeat interval of activesync service in wireless communication system |
CN102223257A (zh) * | 2011-07-25 | 2011-10-19 | 莫雅静 | 一种心跳间隔调整方法、服务器、客户端及通信系统 |
CN104144431A (zh) * | 2013-05-10 | 2014-11-12 | 中国电信股份有限公司 | 一种移动网络状态预测的方法、装置及移动网络 |
CN104333465A (zh) * | 2014-10-31 | 2015-02-04 | 北京奇虎科技有限公司 | 一种心跳间隔设置的方法、装置及系统 |
CN105897499A (zh) * | 2015-12-07 | 2016-08-24 | 乐视云计算有限公司 | 分布式存储系统节点状态监控方法、中心节点及系统 |
-
2017
- 2017-12-08 CN CN201711289571.1A patent/CN109905259B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1661968A (zh) * | 2004-02-27 | 2005-08-31 | 联想(北京)有限公司 | 基于网络和主机负载的变速心跳机制的实现方法 |
US20100262680A1 (en) * | 2009-04-13 | 2010-10-14 | Samsung Electronics Co., Ltd. | Apparatus and method for determining heartbeat interval of activesync service in wireless communication system |
CN101695050A (zh) * | 2009-10-19 | 2010-04-14 | 浪潮电子信息产业股份有限公司 | 一种基于网络流量自适应预测的动态负载均衡方法 |
CN102223257A (zh) * | 2011-07-25 | 2011-10-19 | 莫雅静 | 一种心跳间隔调整方法、服务器、客户端及通信系统 |
CN104144431A (zh) * | 2013-05-10 | 2014-11-12 | 中国电信股份有限公司 | 一种移动网络状态预测的方法、装置及移动网络 |
CN104333465A (zh) * | 2014-10-31 | 2015-02-04 | 北京奇虎科技有限公司 | 一种心跳间隔设置的方法、装置及系统 |
CN105897499A (zh) * | 2015-12-07 | 2016-08-24 | 乐视云计算有限公司 | 分布式存储系统节点状态监控方法、中心节点及系统 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110381130A (zh) * | 2019-07-12 | 2019-10-25 | 湖南新云网科技有限公司 | 保活长连接方法、装置、通信终端及存储介质 |
CN110391956A (zh) * | 2019-07-23 | 2019-10-29 | 中国工商银行股份有限公司 | 网络服务进程状态的识别监控方法及装置 |
CN110601914A (zh) * | 2019-08-05 | 2019-12-20 | 深圳市大拿科技有限公司 | 监测服务器存活状态的方法及系统 |
CN110601914B (zh) * | 2019-08-05 | 2022-11-22 | 深圳市大拿科技有限公司 | 监测服务器存活状态的方法及系统 |
CN111355640A (zh) * | 2020-03-10 | 2020-06-30 | 北京意锐新创科技有限公司 | 适用于支付设备的分布式动态心跳包转发方法和装置 |
CN111860954A (zh) * | 2020-06-18 | 2020-10-30 | 上海钧正网络科技有限公司 | 车辆失联预测方法、装置、计算机设备和存储介质 |
CN112260888B (zh) * | 2020-09-27 | 2022-07-12 | 北京天融信网络安全技术有限公司 | 容器云、容器云的资源管理方法 |
CN112260888A (zh) * | 2020-09-27 | 2021-01-22 | 北京天融信网络安全技术有限公司 | 容器云、容器云的资源管理方法 |
CN112448858A (zh) * | 2021-02-01 | 2021-03-05 | 腾讯科技(深圳)有限公司 | 网络通信控制方法及装置、电子设备和可读存储介质 |
CN113242284B (zh) * | 2021-04-30 | 2022-11-22 | 北京有竹居网络技术有限公司 | 通信方法、装置及通信系统 |
CN113242284A (zh) * | 2021-04-30 | 2021-08-10 | 北京有竹居网络技术有限公司 | 通信方法、装置及通信系统 |
CN113472606A (zh) * | 2021-06-29 | 2021-10-01 | 聚好看科技股份有限公司 | 一种心跳超时检测方法、服务器及电子设备 |
CN113890839A (zh) * | 2021-10-26 | 2022-01-04 | 杭州华橙软件技术有限公司 | 物联网设备的网络连接状态的确定方法及装置 |
CN114390453A (zh) * | 2022-02-09 | 2022-04-22 | 福建天泉教育科技有限公司 | 一种消息推送的优化方法及终端 |
CN114390453B (zh) * | 2022-02-09 | 2023-09-08 | 福建天泉教育科技有限公司 | 一种消息推送的优化方法及终端 |
WO2023174043A1 (zh) * | 2022-03-14 | 2023-09-21 | 华为技术有限公司 | 一种电力线通信系统、在网状态检测方法及设备 |
CN114785846A (zh) * | 2022-03-23 | 2022-07-22 | 南京邮电大学 | 一种基于ProtoBuf协议的心跳监控方法及系统 |
CN114785846B (zh) * | 2022-03-23 | 2024-05-24 | 南京邮电大学 | 一种基于ProtoBuf协议的心跳监控方法及系统 |
CN115334141A (zh) * | 2022-08-03 | 2022-11-11 | 上海艺赛旗软件股份有限公司 | 一种基于心跳机制的双向数据传输系统、方法及装置 |
CN115987854A (zh) * | 2022-11-30 | 2023-04-18 | 广州广电运通信息科技有限公司 | 网络连接的调节方法、设备、系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109905259B (zh) | 2022-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109905259A (zh) | 通信连接维持方法、系统和相关设备 | |
CN107015892B (zh) | 一种压力测试方法、装置和系统 | |
CN100367714C (zh) | 基于网络和主机负载的变速心跳机制的实现方法 | |
CN112165691B (zh) | 内容分发网络调度方法、装置、服务器和介质 | |
CN111190745B (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
JP6692000B2 (ja) | リスク識別方法、リスク識別装置、クラウドリスク識別装置及びシステム | |
CN112437018A (zh) | 分布式集群的流量控制方法、装置、设备和存储介质 | |
US10469352B2 (en) | Method and apparatus for available bandwidth measurement | |
US20200019485A1 (en) | Dynamic management of monitoring tasks in a cloud environment | |
US10462016B2 (en) | Communication control system, communication control method, and recording medium | |
CN113590403A (zh) | 压力测试方法、装置、系统、电子设备、存储介质及产品 | |
CN111865720B (zh) | 用于处理请求的方法、装置、设备以及存储介质 | |
CN111835592A (zh) | 用于确定健壮性的方法、装置、电子设备及可读存储介质 | |
US20170163505A1 (en) | Application centric network experience monitoring | |
CN106375148B (zh) | 即时通讯中的动态网络心跳处理方法及终端 | |
CN116016276A (zh) | 服务器健康状态检测方法和装置 | |
CN104320433A (zh) | 数据处理方法和分布式数据处理系统 | |
CN105530110B (zh) | 一种网络故障检测方法以及相关网元 | |
CN113825170A (zh) | 用于确定网络通道的方法和装置 | |
KR20220037444A (ko) | 성능 라우팅 측정치들을 이용한 양방향 포워딩 검출을 제공하기 위한 시스템들 및 방법들 | |
CN110995802A (zh) | 任务的处理方法和装置、存储介质及电子装置 | |
WO2017131777A1 (en) | Application aware cluster monitoring | |
CN116260747A (zh) | 终端测试设备的监测方法、装置及电子设备 | |
CN113641688A (zh) | 节点更新方法、相关装置及计算机程序产品 | |
Jägemar et al. | Automatic message compression with overload protection |
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 | ||
GR01 | Patent grant |