[发明专利]心跳报文发送方法及装置有效
申请号: | 201510008018.0 | 申请日: | 2015-01-07 |
公开(公告)号: | CN104601376B | 公开(公告)日: | 2019-03-01 |
发明(设计)人: | 李德果;朱明明;阮利 | 申请(专利权)人: | 北京华为数字技术有限公司 |
主分类号: | H04L12/24 | 分类号: | H04L12/24;H04L29/06 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 滕一斌 |
地址: | 100085 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 心跳 报文 发送 方法 装置 | ||
本发明公开了一种心跳报文发送方法及装置,属于通信领域。所述方法包括:获取当前时刻之前向服务器发送的N个心跳报文的网络延时;根据所述N个心跳报文的网络延时以及所述客户端的协商超时时间T1确定新的协商超时时间T2;根据协商超时时间T2向所述服务器发送后续的心跳报文。所述方法根据已发送的心跳报文的网络延时对当前使用的协商超时时间进行调整,使协商超时时间在能够满足故障检测的准确性的前提下,尽可能的缩短,避免平均故障检测时延过长,从而达到兼顾高故障检测的准确率和低故障检测的时延的效果。
技术领域
本发明涉及通信领域,特别涉及一种心跳报文发送方法及装置。
背景技术
Zookeeper作为一种有效的协调服务已经应用于很多领域的分布式系统。Zookeeper分为客户端部分和服务器部分,客户端的故障检测则是Zookeeper的应用中较为常用的一种。
在现有技术中,Zookeeper的服务器与客户端之间采用静态故障检测算法。客户端与服务器预先约定一个协商超时时间(英文全称:Negotiated Session Timeout,缩写:NST),客户端以三分之一的NST为周期向服务器端发送心跳报文(Ping报文),服务器收到心跳报文后将该客户端与服务器之间的连接的超时时刻增加一个NST,并向客户端回复心跳报文(Pong报文)。如果服务器端在一个NST内未收到客户端发来的Ping报文,则认为客户端发生了故障。如果客户端在发送Ping报文之后的三分之二个NST内未收到服务器端发来的Pong报文,则客户端判定服务器端超时。
在实现本发明的过程中,申请人发现现有技术至少存在以下缺点:
现有技术中,若要保证故障检测的准确度,就需要将协商超时时间设置的较大,而这样又会使平均故障检测时延过长,将协商超时时间设置为固定值时,无法兼顾高故障检测的准确率和低故障检测的时延。
发明内容
为了解决现有技术中将协商超时时间设置为固定值,导致无法兼顾高故障检测的准确率和低故障检测的时延的问题,本发明实施例提供了一种心跳报文发送方法及装置。所述技术方案如下:
第一方面,提供了一种心跳报文发送方法,用于客户端中,所述方法包括:
获取当前时刻之前向服务器发送的N个心跳报文的网络延时,所述网络延时为发送一个心跳报文到接收对应的响应报文之间的延时,N≥1,且N为整数;
根据所述N个心跳报文的网络延时以及所述客户端的协商超时时间T1确定新的协商超时时间T2;
将所述客户端的协商超时时间由T1更新为T2;
根据更新后的协商超时时间T2向所述服务器发送后续的心跳报文。
在第一方面的第一种可能实现方式中,对于所述N个心跳报文中的每一个心跳报文,所述心跳报文以及所述心跳报文对应的响应报文中包含有所述心跳报文被发送时,所述终端的系统时间t1;所述获取当前时刻之前向服务器发送的N个心跳报文的网络延时,包括:
当接收到所述心跳报文对应的响应报文时,获取所述响应报文中包含的系统时间t1,以及所述响应报文被接收时所述终端的系统时间t2;
确定所述心跳报文的网络延时δ=t2-t1;
将所述心跳报文的网络延时δ添加入预先设置的,长度为N的环形队列。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京华为数字技术有限公司,未经北京华为数字技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510008018.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:分流设备性能测试方法、测试客户端及测试服务器
- 下一篇:一种变电站通信方法