CN101299689A - 一种在线检测的方法及邮件服务器 - Google Patents
一种在线检测的方法及邮件服务器 Download PDFInfo
- Publication number
- CN101299689A CN101299689A CNA2008101152415A CN200810115241A CN101299689A CN 101299689 A CN101299689 A CN 101299689A CN A2008101152415 A CNA2008101152415 A CN A2008101152415A CN 200810115241 A CN200810115241 A CN 200810115241A CN 101299689 A CN101299689 A CN 101299689A
- Authority
- CN
- China
- Prior art keywords
- keep
- mail server
- terminal
- alive
- described terminal
- 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
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例公开了一种在线检测的方法,该方法包括:邮件服务器在预定时间内没有与终端交互数据,则所述邮件服务器向所述终端发送保活包;所述邮件服务器接收所述终端的保活响应,所述保活响应用于指示所述终端是否在线;当所述保活响应指示所述终端在线时,所述邮件服务器与所述终端交互数据。及在线检测的邮件服务器,采用传输层的保活机制,邮件服务器在预定时间内与终端没有交互数据,则进行保活探测,在传输层实现,避免了在应用层协议上扩展,有效地降低了终端的电量消耗和对带宽的占用。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种在线检测的方法及邮件服务器。
背景技术
目前邮件服务器对手机终端是否处于在线状态采用基于应用层心跳的方法,具体的,可以包括:在基于邮局协议(POP)的基础上,进行协议扩展心跳的请求及应答机制。终端每隔一段时间发送一个心跳信息给邮件服务器,该心跳信息用于通知邮件服务器终端仍然处于在线状态,以及终端当前的IP地址。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:由于采用了应用层心跳进行连接有效性(即在线状态)的检测,所以在应用层协议中需要增加关于心跳请求及应答的命令类型和数据格式,而增加的命令类型和数据格式定义对于协议的双方是一种额外的开销并增加了协议实现的复杂度。进而,还带来了手机终端的电量消耗,以及增大了终端与邮件服务器之间的数据流量。
发明内容
本发明实施例的目的在于提供一种在线检测的方法及邮件服务器,利用传输层实现对终端在线状态的检测。
本发明实施例提供一种在线检测的方法,该方法包括:
邮件服务器在预定时间内没有与终端交互数据,则所述邮件服务器向所述终端发送保活包;
所述邮件服务器接收所述终端的保活响应,所述保活响应用于指示所述终端是否在线;
当所述保活响应指示所述终端在线时,所述邮件服务器与所述终端交互数据。
进一步的,所述邮件服务器在预定时间内没有与终端交互数据包括:
所述邮件服务器在预定时间内没有接收到来自所述终端的数据;和/或,
所述邮件服务器在预定时间内没有向所述终端成功发送数据。
进一步的,所述邮件服务器向所述终端发送保活包包括:
所述邮件服务器向所述终端发送至少一个保持保活探测分节。
进一步的,该方法还包括:
当所述保活响应指示所述终端不在线时,所述邮件服务器终止与所述终端之间的连接。
进一步的,所述终端不在线包括:所述终端进程崩溃、所述终端主机崩溃和/或所述终端主机不可达。
本发明实施例还公开一种在线检测的邮件服务器,该服务器包括:
检测单元,用于当所述邮件服务器在预定时间内没有与终端交互数据,则向所述终端发送保活包;
交互单元,用于接收所述终端对所述检测单元发送的保活包的保活响应,所述保活响应用于指示所述终端是否在线;并当所述保活响应指示所述终端在线时,与所述终端交互数据。
进一步的,该服务器还包括:
断开单元,用于当所述交互单元接收的保活响应指示所述终端不在线时,终止与所述终端之间的连接。
本发明实施例采用传输层的保活机制,邮件服务器在预定时间内与终端没有交互数据,则进行保活探测,如果探测结果显示终端在线则继续交互数据;如果不在线,则可以断开连接,避免了在客户端程序崩溃、或者由于网络原因终端连接时,邮件服务器不用处于挂起状态,永远等待下去。而且相对于现有技术在应用层协议上扩展的在线状态检测方法而言,采用本发明实施例的技术方案,在传输层实现,避免了在应用层协议上扩展,有效的降低了终端的电量消耗和对带宽的占用。
附图说明
图1所示为本发明实施例一中在线检测方法的流程示意图;
图2所示为本发明实施例二中在线检测方法的流程示意图;
图3所示为本发明实施例三中在线检测方法的流程示意图;
图4所示为本发明实施例四中在线检测的邮件服务器的结构示意图。
具体实施方式
下面结合附图对本发明实施例的具体实施方式做进一步的详细阐述。
传输层(TCP)保活(Keep-Alive)机制是一种用来检测处于空闲(IDLE)状态的连接是否还保活的机制。通过Keep-Alive机制使得服务应用程序在终端(以下称客户端)程序崩溃或由于网络原因而中断连接时能够探测到而不至于处于挂起状态,永远等待下去。
在TCP的实现中如果包括了Keep-Alives特性,应用程序能够针对每个连接打开或关闭此特性,默认关闭状态。Keep-Alives的数据包只有在间隔时间后,连接上没有数据发送或接收时才能发送。间隔时间是可以配置的,缺省配置为2小时,目前大多少***都支持对此默认值的修改。
TCP Keep-Alive并不是TCP规范中的一部分,但是目前大部分操作***及智能手机终端的TCP/IP实现中都支持此功能。
给一个TCP的接口设置保活(keepalive)选项后,如果2小时(默认缺省值)内在此接口的任一方向都没有数据交互,通过该TCP接口自动给对方发一个保持保活探测分节。这是一个对方必须响应的TCP分节。
此选项一般由服务器使用,服务器大部分时间阻塞于等待TCP连接上的输入,如果客户主机崩溃,服务器进程将永远不会知道,并将继续等待永远不会到达的输入,保持保活选项将检测出这些半开连接(即不在线状态)并终止与客户端的连接。请参阅表1,是检测各种TCP条件的方法,根据各种对保持保活探测分节的响应,判断对方是否处于在线状态,其中,不在线的状态包括但不限于客户端进程崩溃、客户端主机崩溃和/或客户端主机不可达。
请参阅图1,一种在线检测的方法,该方法包括:
101、邮件服务器在预定时间内没有与客户端交互数据,则邮件服务器向客户端发送保活包。
其中,邮件服务器在预定时间内没有与客户端交互数据包括:
情形 | 对方进程崩溃 | 对方主机崩溃 | 对方主机不可达 |
本地TCP正主动发送数据 | 对方TCP发送一个FIN,我们通过使用select判断可读条件立即能检测出来。如果本地TCP发送另外一个分节,对方TCP就以RST响应。如果再发送另外一个分节,本地TCP就给我们发一个SIGPIPE信号 | 本地TCP将超时,且套接口的待处理错误被设置为ETIMEDOUT | 本地TCP将超时,且套接口的待处理错误被设置为EHOSTUNREACH |
本地TCP正主动接收数据 | 对方TCP将发送一个FIN,我们将它作为一个文件结束符读入 | 我们将停止接收数据 | 我们将停止接收数据 |
连接空闲,保持存活选项已设 | 对方TCP发送一个FIN,我们通过使用select判断可读条件立即能检测出来 | 在毫无动静2小时后,发送9个保持存活探测分节,然后套接口的待处理错误被设置为ETIMEDOUT | 在毫无动静2小时后,发送9个保持存活探测分节,然后套接口的待处理错误被设置为EHOSTUNREACH |
连接空闲,保持存活选项未设 | 对方TCP发送一个FIN,我们通过使用select判断可读条件立即能检测出来 | 无 | 无 |
表1
邮件服务器在预定时间内没有接收到来自客户端的数据;和/或,邮件服务器在预定时间内没有向客户端成功发送数据。
邮件服务器向客户端发送保活包包括:
邮件服务器向客户端发送至少一个保持保活探测分节;即邮件服务器可以只发送一个保持保活探测分节,也可以连续发送两个或两个以上的保持保活探测分节。
102、邮件服务器接收客户端的保活响应;保活响应用于指示客户端是否在线,当保活响应指示客户端在线时,转入103;当保活响应指示客户端不在线时,转入104。
其中客户端不在线包括但不限于:客户端进程崩溃、客户端主机崩溃和/或客户端主机不可达。
103、邮件服务器与客户端交互数据。
104、邮件服务器终止与客户端之间的连接。
本实施例采用传输层的保活机制,邮件服务器在预定时间内与终端没有交互数据,则进行保活探测,如果探测结果显示终端在线则继续交互数据;如果不在线,则可以断开连接,避免了在客户端程序崩溃、或者由于网络原因终端连接时,邮件服务器不用处于挂起状态,永远等待下去。而且相对于现有技术在应用层协议上扩展的在线状态检测方法而言,采用本实施例的技术方案,在传输层实现,避免了在应用层协议上扩展,有效的降低了终端的电量消耗和对带宽的占用。
实施例二,将实施例一的技术方案具体应用到服务器中。在服务器中给一个TCP的接口设置保活(keepalive)选项后,如果2小时(默认缺省值)内在此接口的任一方向都没有数据交互,TCP就自动给对方发一个保持保活探测分节。这是一个对方必须响应的TCP分节。具体的,请参阅图2,图2中描述字(Socket),是使应用程序能够读写与收发通讯协定(protocol)与资料的程序:
服务器在指定端口建立监听。
并在指定描述字(Socket)上等待指定事件发生。
判断是否超时,如果超时,则返回在指定Socket上等待指定事件发生;如果没有超时,则取得所有准备好的Socket。
进一步的,判断是否存在准备好的Socket需要处理,如果存在,则取出Socket;如果不存在,则返回在指定Socket上等待指定事件发生。
取出Socket后,判断是否请求连接事件,如果是,则保存连接状态到全局的Socket列表中,并返回判断是否存在准备好的Socket需要处理。如果否,进一步判断远程主机是否超时或不可达,如果远程主机超时或不可达,则从全局的Socket列表中移除相关的Socket,移除后返回判断是否存在准备好的Socket需要处理;如果远程主机未超时或不可达,则处理其他情况,例如接收数据或发送数据,处理后返回判断是否存在准备好的Socket需要处理。
实施例三,将实施例一的技术方案具体应用到客户端中。具体的,请参阅图3:
客户端连接服务器。
客户端在同服务器连接的Socket上等待事件发生。
判断是否超时,如果是,则返回在同服务器连接的Socket上等待事件发生;如果否,进一步判断远程主机是否超时或不可达。
如果主机超时或不可达,则返回连接服务器;如果主机未超时或不可达,则处理其他情况,例如接收数据或发送数据,处理后返回在同服务器连接的Socket上等待事件发生。
实施例四,是执行实施例一在线检测方法的主体,请参阅图4,一种在线检测的邮件服务器,该服务器包括:
检测单元401,用于当邮件服务器在预定时间内没有与客户端交互数据,则向客户端发送保活包;
交互单元402,用于接收客户端对检测单元发送的保活包的保活响应,保活响应用于指示客户端是否在线;并当保活响应指示客户端在线时,与客户端交互数据。
进一步的,该服务器还包括:
断开单元403,用于当交互单元接收的保活响应指示客户端不在线时,终止与客户端之间的连接。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (7)
1、一种在线检测的方法,其特征在于,该方法包括:
邮件服务器在预定时间内没有与终端交互数据,则所述邮件服务器向所述终端发送保活包;
所述邮件服务器接收所述终端的保活响应,所述保活响应用于指示所述终端是否在线;
当所述保活响应指示所述终端在线时,所述邮件服务器与所述终端交互数据。
2、根据权利要求1所述的方法,其特征在于,所述邮件服务器在预定时间内没有与终端交互数据包括:
所述邮件服务器在预定时间内没有接收到来自所述终端的数据;和/或,
所述邮件服务器在预定时间内没有向所述终端成功发送数据。
3、根据权利要求1所述的方法,其特征在于,所述邮件服务器向所述终端发送保活包包括:
所述邮件服务器向所述终端发送至少一个保持保活探测分节。
4、根据权利要求1所述的方法,其特征在于,该方法还包括:
当所述保活响应指示所述终端不在线时,所述邮件服务器终止与所述终端之间的连接。
5、根据权利要求4所述的方法,其特征在于,所述终端不在线包括:所述终端进程崩溃、所述终端主机崩溃和/或所述终端主机不可达。
6、一种在线检测的邮件服务器,其特征在于,该服务器包括:
检测单元,用于当所述邮件服务器在预定时间内没有与终端交互数据,则向所述终端发送保活包;
交互单元,用于接收所述终端对所述检测单元发送的保活包的保活响应,所述保活响应用于指示所述终端是否在线;并当所述保活响应指示所述终端在线时,与所述终端交互数据。
7、根据权利要求6所述的邮件服务器,其特征在于,该服务器还包括:
断开单元,用于当所述交互单元接收的保活响应指示所述终端不在线时,终止与所述终端之间的连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101152415A CN101299689B (zh) | 2008-06-19 | 2008-06-19 | 一种在线检测的方法及邮件服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101152415A CN101299689B (zh) | 2008-06-19 | 2008-06-19 | 一种在线检测的方法及邮件服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101299689A true CN101299689A (zh) | 2008-11-05 |
CN101299689B CN101299689B (zh) | 2011-06-15 |
Family
ID=40079386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101152415A Expired - Fee Related CN101299689B (zh) | 2008-06-19 | 2008-06-19 | 一种在线检测的方法及邮件服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101299689B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101980482A (zh) * | 2010-11-17 | 2011-02-23 | 广东威创视讯科技股份有限公司 | 一种网络连接监控方法及其*** |
CN102404698A (zh) * | 2010-09-15 | 2012-04-04 | ***通信集团公司 | 无线邮件推送方法、装置和*** |
CN102523280A (zh) * | 2011-12-13 | 2012-06-27 | 深圳市融创天下科技股份有限公司 | 一种传输控制异常断开的检测方法、装置、服务器及*** |
CN102647314A (zh) * | 2012-05-16 | 2012-08-22 | 深圳市乐唯科技开发有限公司 | 一种客户端在线状态判定方法及其*** |
CN102739464A (zh) * | 2011-04-11 | 2012-10-17 | 国基电子(上海)有限公司 | 具服务器监视功能的客户端及方法 |
CN104378230A (zh) * | 2014-11-06 | 2015-02-25 | 上海斐讯数据通信技术有限公司 | 一种提高Telnet服务端稳定性的***和方法 |
CN104734939A (zh) * | 2013-12-24 | 2015-06-24 | 华为技术有限公司 | 会话保活方法和设备 |
CN106302692A (zh) * | 2016-08-09 | 2017-01-04 | 深圳Tcl新技术有限公司 | 设备的发现方法和装置 |
CN112769651A (zh) * | 2021-01-13 | 2021-05-07 | 杭州迪普科技股份有限公司 | 一种tcp连接检测方法、装置及电子设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1866957B (zh) * | 2005-12-26 | 2010-10-13 | 华为技术有限公司 | 对接入终端和接入网络之间的业务链路进行检测的方法 |
CN1983993B (zh) * | 2006-03-29 | 2010-05-12 | 华为技术有限公司 | 一种对***资源进行监控的方法 |
-
2008
- 2008-06-19 CN CN2008101152415A patent/CN101299689B/zh not_active Expired - Fee Related
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102404698A (zh) * | 2010-09-15 | 2012-04-04 | ***通信集团公司 | 无线邮件推送方法、装置和*** |
CN101980482A (zh) * | 2010-11-17 | 2011-02-23 | 广东威创视讯科技股份有限公司 | 一种网络连接监控方法及其*** |
CN102739464A (zh) * | 2011-04-11 | 2012-10-17 | 国基电子(上海)有限公司 | 具服务器监视功能的客户端及方法 |
CN102739464B (zh) * | 2011-04-11 | 2015-04-01 | 国基电子(上海)有限公司 | 具服务器监视功能的客户端及方法 |
CN102523280B (zh) * | 2011-12-13 | 2017-09-15 | 融创天下(上海)科技发展有限公司 | 一种传输控制异常断开的检测方法、装置、服务器及*** |
CN102523280A (zh) * | 2011-12-13 | 2012-06-27 | 深圳市融创天下科技股份有限公司 | 一种传输控制异常断开的检测方法、装置、服务器及*** |
CN102647314A (zh) * | 2012-05-16 | 2012-08-22 | 深圳市乐唯科技开发有限公司 | 一种客户端在线状态判定方法及其*** |
CN104734939A (zh) * | 2013-12-24 | 2015-06-24 | 华为技术有限公司 | 会话保活方法和设备 |
CN104734939B (zh) * | 2013-12-24 | 2017-11-24 | 华为技术有限公司 | 会话保活方法和设备 |
CN104378230A (zh) * | 2014-11-06 | 2015-02-25 | 上海斐讯数据通信技术有限公司 | 一种提高Telnet服务端稳定性的***和方法 |
CN106302692A (zh) * | 2016-08-09 | 2017-01-04 | 深圳Tcl新技术有限公司 | 设备的发现方法和装置 |
WO2018028122A1 (zh) * | 2016-08-09 | 2018-02-15 | 深圳Tcl新技术有限公司 | 设备的发现方法和装置 |
CN112769651A (zh) * | 2021-01-13 | 2021-05-07 | 杭州迪普科技股份有限公司 | 一种tcp连接检测方法、装置及电子设备 |
CN112769651B (zh) * | 2021-01-13 | 2022-04-26 | 杭州迪普科技股份有限公司 | 一种tcp连接检测方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN101299689B (zh) | 2011-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101299689B (zh) | 一种在线检测的方法及邮件服务器 | |
CN103874035B (zh) | 一种移动终端消息推送方法及设备 | |
CN102404229B (zh) | 负载均衡***、装置及方法 | |
CN108924887A (zh) | 数据业务切换方法和设备 | |
CN103297470B (zh) | 永远在线业务的处理方法、应用服务器、用户终端和*** | |
WO2006019512B1 (en) | Apparatus and method for supporting connection establishment in an offload of network protocol processing | |
CN102177697A (zh) | 互联网业务控制方法及相关设备和*** | |
CN106686056A (zh) | 一种安卓客户端通信装置及与服务器进行连接通信的方法 | |
CN108683653A (zh) | 一种基于WebSocket的主动式消息推送*** | |
CN104462033A (zh) | 在设备间实现编辑操作的方法及设备 | |
CN102209039A (zh) | 一种文件传输方法及设备 | |
US20130005320A1 (en) | Service processing method and apparatus based on android system | |
CN103297937A (zh) | 一种实现信息通知的方法、***和装置 | |
CN103338184A (zh) | 数据发送方法及装置、数据接收装置以及数据传输*** | |
CN102882708A (zh) | 运维审计方法、装置及*** | |
CN101547214A (zh) | 一种推送企业内部数据的方法和网络侧设备 | |
CN101207617A (zh) | 网络储存***的数据传输方法 | |
CN102984814A (zh) | 一种大规模的gprs终端设备联网方法 | |
CN107682384A (zh) | 虚拟桌面组播控制方法、终端、代理终端及云桌面服务器 | |
CN107251593B (zh) | 数据包处理方法和相关设备 | |
CN210405366U (zh) | 一种通过移动端控制平台自动登录与退出的装置 | |
CN101330664A (zh) | 多媒体业务的实现方法、***和装置 | |
CN113660617A (zh) | 运营商手机号与北斗终端短报文多对多的相互通讯方法 | |
CN108174458B (zh) | 一种移动终端与可穿戴设备无线连接的方法、装置、移动终端和可穿戴设备 | |
CN101599858B (zh) | 主备机管理方法和服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110615 Termination date: 20140619 |
|
EXPY | Termination of patent right or utility model |