CN102238043A - 一种基于客户端检测可靠连接是否有效的方法 - Google Patents
一种基于客户端检测可靠连接是否有效的方法 Download PDFInfo
- Publication number
- CN102238043A CN102238043A CN2010101623209A CN201010162320A CN102238043A CN 102238043 A CN102238043 A CN 102238043A CN 2010101623209 A CN2010101623209 A CN 2010101623209A CN 201010162320 A CN201010162320 A CN 201010162320A CN 102238043 A CN102238043 A CN 102238043A
- Authority
- CN
- China
- Prior art keywords
- center
- client
- timer
- klt
- probe messages
- 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.)
- Pending
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于客户端检测可靠连接是否还有效的方法。一般传统的做法是:a.中心端向已连接的客户端发送一个探测报文并启动定时器;b.如在定时器超时前对方回复确认报文那么此连接还有效否则反之。在此模式中中心端基本承担了所有的操作,假如中心端出现异常导致系统崩溃那么客户端将有可能永远无法获知连接已经失效。本发明通过把发送探测报文的操作转移至客户端上,以此来分散中心端的负担并解决了中心端异常崩溃后客户端永远无法获知连接已失效的情况,其大致步骤可分为:a.客户端从中心端获取间隔值;b.中心端递减连接定时器;c.客户端间隔值定时器超时发送探测报文;d.中心端随时检测定时器状态;e.中心端回复探测确认报文。
Description
技术领域
本发明属于网络信息数据传输通信技术领域,尤其是可靠连接上双方保活探测或检测的方法。
背景技术
网络信息数据传输通信技术主要试图使各种计算机能相互的通信和数据的共享。如今比较著名的传输协议是TCP/IP协议。TCP传输协议是基于IP协议的一种可靠的传输通信协议。TCP协议本身提供了一种保活的选项,通过设置该选项协议本身就可以探测连接是否还有效,但其有自身的缺陷,第一默认的间隔值为两小时;第二所有的连接均使用相同的间隔值。
本发明基于可靠连接的基础上,自行设计了一套探测保活的机制,它解决了TCP保活选项的缺陷,并且还可避免和改善传统方法带来的问题。
发明内容
本发明的目的在于提供一种基于客户端探测可靠连接是否有效的方法,它是基于可靠连接的,它提供更为灵活多样的方式。
1、本发明至少需要满足以下要求:
要求1、定时发送探测报文的间隔值,既客户端应该间隔多久发送一个探测报文。此间隔值必须只能由中心端指定。
要求2、中心端除了反馈间隔值外,还负责计算RTT和KLT。
要求3、中心端为每个连接(客户端)维护一个定时器。
要求4、根据要求1获得的间隔值初始化间隔定时器,只有在间隔定时器超时后客户端才能发送探测报文,并且在发送探测报文后,接收确认探测前不能进行其他的发送操作。
要求5、客户端在间隔定时器超时前产生的发送操作必须重新初始化间隔定时器。
要求6、中心端每隔1ms递减各个连接(客户端)的定时器(KLT),当定时器等于0时触发连接失效事件。
要求7、中心端接到一个非探测报文后重新初始化定时器(KLT)。
要求8、中心端在定时器[KLT]超时前接到探测报文后,初始化[KLT]并返回一个确认,客户端接收此确认并初始化间隔定时器,再向中心端返回一个确认,中心端又再次重新初始化[KLT]。
要求9、根据要求4客户端发送探测报文后,在3次间隔时间后未接到中心端返回的探测确认则认为超时。
2、本发明至少包括以下步骤:
步骤1、客户端与中心端完成一个可靠的连接。
步骤2、中心端返回客户端[间隔值]并插入当前时间[tiem1]。
步骤3、客户端获取[间隔值]并立即返回确认。
步骤4、中心端接收确认,取出插入的[time1]并取当前时间[time2]计算[RTT]:
[RTT]=[time2]-[time1]
步骤5、中心端计算[KLT]:
[T]=100ms/总工作线程数(四舍五入取整数)
如果[T]等于0则[T]=5ms
[KLT]=[间隔值]+[RTT]*0.75+[T]
步骤6、客户端在间隔定时器超时前,产生一次发送操作,重新初始化间隔定时器。
步骤7、中心端接收一份非探测报文,重新初始化[KLT]定时器。
步骤8、客户端间隔定时器超时,发送一个探测报文。
步骤9、中心端接收探测报文,第一次初始化[KLT]并向客户端返回探测确认报文。
步骤10、客户端接收由中心端返回的探测确认报文,并初始化间隔定时器最后向中心端返回最后确认。
步骤11、中心端接收最后确认,第二次初始化[KLT]。
本发明相比较传统的做法具有更高的灵活性。它允许为每个不同的连接分配不同或相同的[间隔值]。通过自行获取连接的RTT计算出每个连接最合理的超时范围。
附图说明
图1是中心端定时发送探测报文的间隔值,既客户端应该间隔多久发送一个探测报文。此间隔值必须只能由中心端指定。中心端除了反馈间隔值外,还负责计算RTT和KLT。中心端为每个连接(客户端)维护一个定时器。
图2是客户端发送探测报文,检测网络连接是否存在。客户端在间隔定时器超时前,产生一次发送操作,重新初始化间隔定时器。中心端接收一份非探测报文,重新初始化[KLT]定时器。客户端间隔定时器超时,发送一个探测报文。中心端接收探测报文,第一次初始化[KLT]并向客户端返回探测确认报文。客户端接收由中心端返回的探测确认报文,并初始化间隔定时器最后向中心端返回最后确认。中心端接收最后确认,第二次初始化[KLT]。
具体实施方式
下面通过一个客户端的设计对本发明作进一步详细说明。
环境:
操作系统:ubuntu-9.10(linux-2.6.28)
可靠连接:tcp
第一步、创建TCP套接口,并连接至服务器。
第二步、read(阻塞)套接口,直到中心端发送[间隔值]。
第三步、获取[间隔值],并往套接口write(“ok”)。
第四步、利用系统调用alarm([间隔值])设置间隔定时器。
第五步、在定时器超时前的套接口写操作会触发alarm([间隔值])的重新调用(初始化间隔定时器)。
第六步、间隔定时器超时,往套接口写一个探测报文”keeplive”,并调用alarm([间隔值]*2),设置定时器为间隔值的两倍,并阻止所有的写操作,利用循环调用read实现。
第七步、当间隔定时器超时前读到中心端返回的”keepliveok”报文则跳出read循环,并初始化间隔定时器alarm([间隔值]),并向中心端write(“ok”)。否则当两倍于间隔值的定时器超时后就可认为此连接已失效。
Claims (3)
1.一种基于客户端检测可靠连接是否还有效的方法,其特征在于,a探测报文的发送在客户端上完成;b探测报文的发送间隔值由中心端确认;c中心端为每个连接(客户端)维护一个定时器(KLT);d定时器的单位为毫秒;e中心端每ms递减各个连接(客户端)的定时器;f当客户端在间隔定时器超时前发生一次发送操作则重新初始化间隔定时器;g当中心端在KLT定时器超时前接到非探测报文的任意数据包后初始化KLT定时器。
2.一种基于客户端检测可靠连接是否还有效的方法,其特征在于,该方法包括以下要求:
要求1、定时发送探测报文的间隔值,既客户端应该间隔多久发送一个探测报文。此间隔值必须只能由中心端指定。
要求2、中心端除了反馈间隔值外,还负责计算RTT和KLT。
要求3、中心端为每个连接(客户端)维护一个定时器。
要求4、根据要求1获得的间隔值初始化间隔定时器,只有在间隔定时器超时后客户端才能发送探测报文,并且在发送探测报文后,接收确认探测前不能进行其他的发送操作。
要求5、客户端在间隔定时器超时前产生的发送操作必须重新初始化间隔定时器。
要求6、中心端每隔1ms递减各个连接(客户端)的定时器(KLT),当定时器等于0时触发连接失效事件。
要求7、中心端接到一个非探测报文后重新初始化定时器(KLT)。
要求8、中心端在定时器[KLT]超时前接到探测报文后,初始化[KLT]并返回一个确认,客户端接收此确认并初始化间隔定时器,再向中心端返回一个确认,中心端又再次重新初始化[KLT]。
要求9、根据要求4客户端发送探测报文后,在3次间隔时间后未接到中心端返回的探测确认则认为超时。
3.一种基于客户端检测可靠连接是否还有效的方法,其特征在于,该方法包括以下步骤:
步骤1、客户端与中心端完成一个可靠的连接。
步骤2、中心端返回客户端[间隔值]并插入当前时间[tiem1]。
步骤3、客户端获取[间隔值]并立即返回确认。
步骤4、中心端接收确认,取出插入的[time1]并取当前时间[time2]计算[RTT]:
[RTT]=[time2]-[time1]
步骤5、中心端计算[KLT]:
[T]=100ms/总工作线程数(四舍五入取整数)
如果[T]等于0则[T]=5ms
[KLT]=[间隔值]+[RTT]*0.75+[T]
步骤6、客户端在间隔定时器超时前,产生一次发送操作,重新初始化间隔定时器。
步骤7、中心端接收一份非探测报文,重新初始化[KLT]定时器。
步骤8、客户端间隔定时器超时,发送一个探测报文。
步骤9、中心端接收探测报文,第一次初始化[KLT]并向客户端返回探测确认报文。
步骤10、客户端接收由中心端返回的探测确认报文,并初始化间隔定时器最后向中心端返回最后确认。
步骤11、中心端接收最后确认,第二次初始化[KLT]。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101623209A CN102238043A (zh) | 2010-05-05 | 2010-05-05 | 一种基于客户端检测可靠连接是否有效的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101623209A CN102238043A (zh) | 2010-05-05 | 2010-05-05 | 一种基于客户端检测可靠连接是否有效的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102238043A true CN102238043A (zh) | 2011-11-09 |
Family
ID=44888288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101623209A Pending CN102238043A (zh) | 2010-05-05 | 2010-05-05 | 一种基于客户端检测可靠连接是否有效的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102238043A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105959129A (zh) * | 2016-02-15 | 2016-09-21 | 杭州迪普科技有限公司 | 监测网络故障的方法及装置 |
CN109324965A (zh) * | 2018-09-18 | 2019-02-12 | 郑州云海信息技术有限公司 | 一种监测flock导致客户端崩溃的自动化测试方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1655552A (zh) * | 2004-02-13 | 2005-08-17 | 三星电子株式会社 | 管理传输控制协议(tcp)连接 |
CN101305584A (zh) * | 2005-12-21 | 2008-11-12 | 诺基亚公司 | 在无线通信网络中管理连接 |
CN101449482A (zh) * | 2006-05-24 | 2009-06-03 | 摩托罗拉公司 | 无线通信网络中的uma/gan保活机制 |
US20090213744A1 (en) * | 2008-02-27 | 2009-08-27 | Phoenix Contact Gmbh & Co. Kg | Self-testing communications device |
-
2010
- 2010-05-05 CN CN2010101623209A patent/CN102238043A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1655552A (zh) * | 2004-02-13 | 2005-08-17 | 三星电子株式会社 | 管理传输控制协议(tcp)连接 |
CN101305584A (zh) * | 2005-12-21 | 2008-11-12 | 诺基亚公司 | 在无线通信网络中管理连接 |
CN101449482A (zh) * | 2006-05-24 | 2009-06-03 | 摩托罗拉公司 | 无线通信网络中的uma/gan保活机制 |
US20090213744A1 (en) * | 2008-02-27 | 2009-08-27 | Phoenix Contact Gmbh & Co. Kg | Self-testing communications device |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105959129A (zh) * | 2016-02-15 | 2016-09-21 | 杭州迪普科技有限公司 | 监测网络故障的方法及装置 |
CN109324965A (zh) * | 2018-09-18 | 2019-02-12 | 郑州云海信息技术有限公司 | 一种监测flock导致客户端崩溃的自动化测试方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100560752B1 (ko) | 소켓 연결 관리 시스템 및 그 소켓 연결 상태 체크 방법 | |
CN101056194B (zh) | 一种简单网络管理协议消息传送方法及装置 | |
CN103905579B (zh) | 平台与终端间的通信方法、通信系统、平台及相关设备 | |
CN103607302B (zh) | 故障信息上报方法、监控设备及管理设备 | |
CN111224999A (zh) | 一种传输协议切换方法、装置、设备及存储介质 | |
EP1521385A3 (en) | Safety protocol for industrial controller | |
CN105227398A (zh) | 多业务共享长连接方法、系统及其装置、终端 | |
CN102025474A (zh) | 一种网络数据传输方法 | |
CN101714991A (zh) | 心跳机制的实现方法 | |
CN104104608B (zh) | 接收报文的方法及装置 | |
CN102238043A (zh) | 一种基于客户端检测可靠连接是否有效的方法 | |
CN104580346A (zh) | 数据传输方法及装置 | |
JP2006229399A (ja) | 通信システム、中継ノード及びそれらに用いる通信方法並びにそのプログラム | |
CN103312558A (zh) | 计算机客户服务器系统中网络连接有效性监测方法及系统 | |
KR100710766B1 (ko) | 감시 시스템, 피감시 장치, 감시 장치, 및 감시 방법 | |
CN108377210A (zh) | 一种局域网多设备识别方法 | |
EP2945328A1 (en) | Method and apparatus for keeping alive l2tp tunnel state | |
CN101800682A (zh) | 一种双向转发检测方法及装置 | |
US8064335B2 (en) | Communication monitoring method, communication monitoring system, management system, and external device | |
EP1532795B1 (en) | Method of monitoring a data link | |
CN101800667A (zh) | 告警消息发送方法、网络设备和告警系统 | |
JP5172186B2 (ja) | 警備システム | |
CN102638369A (zh) | 一种主备倒换的仲裁方法、装置和系统 | |
CN101626591A (zh) | 一种数据链路的检测方法及装置 | |
KR101031873B1 (ko) | 소켓 연결 제어 장치 및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20111109 |