CN102036349B - 维持终端和网络服务器连接的方法、终端及网络服务器 - Google Patents

维持终端和网络服务器连接的方法、终端及网络服务器 Download PDF

Info

Publication number
CN102036349B
CN102036349B CN200910235573.1A CN200910235573A CN102036349B CN 102036349 B CN102036349 B CN 102036349B CN 200910235573 A CN200910235573 A CN 200910235573A CN 102036349 B CN102036349 B CN 102036349B
Authority
CN
China
Prior art keywords
terminal
webserver
processing unit
data packets
heartbeat data
Prior art date
Application number
CN200910235573.1A
Other languages
English (en)
Other versions
CN102036349A (zh
Inventor
王辉
田永振
李小丁
庄艺唐
Original Assignee
联想(北京)有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 联想(北京)有限公司 filed Critical 联想(北京)有限公司
Priority to CN200910235573.1A priority Critical patent/CN102036349B/zh
Publication of CN102036349A publication Critical patent/CN102036349A/zh
Application granted granted Critical
Publication of CN102036349B publication Critical patent/CN102036349B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/20Manipulation of established connections
    • H04W76/25Maintenance of established connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing packet switching networks
    • H04L43/08Monitoring based on specific metrics
    • H04L43/0805Availability
    • H04L43/0811Connectivity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing packet switching networks
    • H04L43/10Arrangements for monitoring or testing packet switching networks using active monitoring, e.g. heartbeat protocols, polling, ping, trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/14Network-specific arrangements or communication protocols supporting networked applications for session management
    • H04L67/143Network-specific arrangements or communication protocols supporting networked applications for session management provided for session termination, e.g., event controlled end of session
    • H04L67/145Network-specific arrangements or communication protocols supporting networked applications for session management provided for session termination, e.g., event controlled end of session provided for avoiding end of session, e.g. keep-alive, heartbeats, resumption message, wake-up for inactive or interrupted session
    • Y02B60/50
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Abstract

本发明公开了维持终端和网络服务器连接的方法,该终端具有第一处理单元,第一处理单元具有第一状态和第二状态,其中,第二状态的功耗小于第一状态的功耗,包括:第一处理单元处于第二状态,终端或网络服务器周期性发送心跳数据包,以维持所述终端和所述网络服务器之间的连接。根据本发明,在终端或网络服务器周期性发送心跳数据包期间,终端的主处理器也就不会被唤醒,从而使得处于休眠状态的终端既可与网络服务器保持连接,不会因为网络服务器发出的心跳数据包而被唤醒,因此可降低终端的能耗。

Description

维持终端和网络服务器连接的方法、终端及网络服务器

技术领域

[0001] 本发明涉及通信及网络技术领域,具体涉及维持终端和网络服务器连接的方法、终端及网络服务器。

背景技术

[0002] 便携设备(如手机、便携电脑等终端)通过无线网络(如3G)上网,因为地址缺乏,为了节省公用IP地址,通常便携设备上采用的IP地址为私有地址,需要通过网络代理装置或网关进行网络地址转换(NAT)之后再连接到因特网Internet。这样导致因特网Internet上的主机或者服务器无法主动向该手持设备发起连接。

[0003] 为了获得服务器上的某些应用数据(例如服务器主动推动一些用户关心的实时信息),现有技术中提供的方案之一是便携设备主动向服务器发起一个TCP或者UDP连接,从而建立起服务器和便携设备之间的连接通道,这样,服务器可以利用该TCP或者UDP通道进行数据传输。但是若在一段时间T内,该TCP或者UDP连接上没有数据传输,那么该便携设备对应的网络代理装置或网关会将该连接状态清除,致使该连接中断,此时服务器或者便携设备都无法继续使用该连接通道。数据传输间歇时间T会根据使用的网络不同而变化,例如测试中有些3G网络的数据传输间歇时间T大概在11分钟,有一些GSM网络的数据传输间歇时间T是18分钟等。

[0004] 为了维持服务器和便携设备之间的连接,目前的解决方法是:便携设备上以小于时间T的周期发送“心跳”数据给服务器(或者由服务器发送“心跳”数据给便携设备亦可),使得该相应的TCP或UDP通道保持“活跃”状态,进而让中间的NAT网关不会将该通道清除。由于不同网络的数据传输间歇时间T不同,使得开发时很难统一确定一个合理的发送维持连接数据的周期;若周期设置过小,就会频繁的唤醒便携设备的CPU和整个操作系统,导致便携设备的能量过多地消耗。即使是从服务器向便携设备发送“心跳”数据,便携设备的主CPU和整个操作系统也会被唤醒去接受数据,同样也会消耗手持设备较多能量,导致便携设备的持续使用时间缩短。

[0005] 若周期太大,又不能维持连接通道的可用性,使得一些实时数据无法及时从服务器上推送到便携设备。这对于电池供电的便携设备而言,很容易造成移动便携设备使用这类由服务器推送数据的(PUSH)服务时电源上的瓶颈。

发明内容

[0006] 本发明实施例提供维持终端和网络服务器连接的方法、终端及网络服务器,可在终端处于休眠状态期间维持服务器和该终端之间的连接。

[0007] 本发明实施例提供的一种维持终端和网络服务器连接的方法,该终端具有第一处理单元,所述第一处理单元具有第一状态和第二状态,其中,所述第二状态的功耗小于所述第一状态的功耗,该方法包括:

[0008] 所述终端或网络服务器周期性发送心跳数据包,以维持所述终端和所述网络服务器之间的连接;

[0009] 其中,所述第一处理单元处于所述第二状态。

[0010] 该终端还具有第二处理单元,所述第二处理单元的功耗小于所述第一处理单元处于所述第一状态的功耗,所述终端周期性发送心跳数据包,包括:

[0011] 所述第一处理单元处于所述第二状态时,通过所述第二处理单元周期性发送心跳数据包给通过网络连接的网络服务器。

[0012] 优选地,所述网络服务器周期性发送心跳数据包,具体包括:

[0013] 所述网络服务器向所述终端发送的心跳数据包,该心跳数据包的生存期TTL跳数值为K-1,其中K为该网络服务器与所述终端之间连接的跳数。

[0014] 优选地,所述网络服务器周期性发送的心跳数据包,该方法进一步包括:

[0015] 当所述第一处理单元处于第二状态时,所述心跳数据包在到达所述终端时,所述第二处理单元识别所述心跳数据包是否为预订格式心跳数据包;

[0016] 若所述心跳数据包为预定格式心跳数据包时,所述第二处理单元维持所述第一处理单元处于第二状态。

[0017] 更适宜地,所述预定格式心跳数据包为具有预定长度的心跳数据包或具有特定标识的心跳数据包。

[0018] 本实施例提供的技术方案中,通过终端的通信功能单元发送心跳数据包,能够让终端主处理单元CPU长时间处于休眠状态,从而能够大大节省终端的电能。通过服务器向终端发送特殊的心跳数据包,使得该心跳数据包能够通过NAT网关,在未到达终端之前就被丢弃,因而该心跳数据包不会到达终端,由于该心跳数据包通过了 NAT网关,刷新了该网关上的TCP或者UDP连接通道状态,故维持了服务器和终端之间的连接。发送预定格式的心跳数据包,在终端的主处理器处于休眠状态,终端的通信功能单元对该预定格式的心跳数据包不进行处理,不将该心跳数据包发送给上层系统,终端的主处理器也就不会被唤醒,从而使得处于休眠状态的终端既可与网络服务器保持连接,不会因为网络服务器发出的心跳数据包而被唤醒,因此可降低终端的能耗。

附图说明

[0019] 图1为本发明实施例一提供的维持终端网络连接的示意图;

[0020] 图2为本发明实施例二提供的维持终端网络连接的方法流程图;

[0021] 图3为本发明实施例二中提供的心跳数据包构成示意图;

[0022] 图4为本发明实施例二提供的一种终端架构示意图;

[0023] 图5为本发明实施例三提供的维持终端网络连接的原理图;

[0024] 图6为本发明实施例三提供的维持终端网络连接的方法流程图;

[0025] 图7为本发明实施例四中提供的维持终端网络连接的方法流程图;

[0026] 图8为本发明实施例五中提供的服务器架构示意图。

具体实施方式

[0027] 针对现有技术存在的不足和缺陷,本发明提出了一种新的维持这类应用中TCP或者UDP数据通道的方法,既适用于无线终端,也适用于有线终端。该方法中,在终端处于休眠状态中,由终端的通信功能单元(如Modem模块、蓝牙功能模块等)与网络服务器之间传送心跳信号,具体地,通信功能单元周期发送“心跳”数据给服务器;或者服务器发送“心跳”数据给终端,而不唤醒终端的主处理单元,既维持服务器和终端之间的连接,又使得终端处于休眠状态。

[0028] 在终端的通信功能单元(如Modem模块、蓝牙功能模块等)中设置一个“心跳代理” (Heart Beat Agent),让该代理周期的发送心跳数据包给服务器,从而保持相应的TCP/UDP连接处于激活状态,维持服务器和终端之间的网络连接,且此时主CPU —直处于休眠状态,从而减少了终端的功耗。

[0029] 为使本发明的原理、特性和优点更加清楚,下面结合具体实施例对本发明进行描述。

[0030] 实施例一

[0031] 本发明实施例提供的一种维持终端和网络服务器连接的方法,该终端具有第一处理单元(如主处理器),该第一处理单元具有第一状态和第二状态,其中,第二状态(如,休眠状态)的功耗小于第一状态(如,激活状态)的功耗,参照图1,该方法包括:

[0032] 当第一处理单元处于第二状态,终端向通过网络连接的网络服务器周期性发送心跳数据包;或网络服务器周期性向通过网络连接的终端发送心跳数据包,以维持所述终端和所述网络服务器之间的连接。

[0033] 其中终端发送心跳数据包,具体包括:

[0034] 由终端的第二处理单元(如Modem)在第一处理单元进入第二状态之前接收心跳数据包;在第一处理单元进入第二状态之后,向通过网络连接的网络服务器周期性发送心跳数据包。

[0035] 网络服务器接收到终端发送的所述心跳数据包后,不发送反馈数据包给所述终端;

[0036] 或者,所述网络服务器接收到心跳数据包后,发送的反馈数据包在到达所述终端之iu被丢弃;

[0037] 或者,所述网络服务器接收到心跳数据包后,发送的反馈数据包到达所述终端后,不唤醒所述第一处理单元。

[0038] 网络服务器发送心跳数据包,具体包括:

[0039] 网络服务器向通过网络连接的终端发送的心跳数据包,该心跳数据包的生存期TTL跳数值为K-1,其中K为该网络服务器与所述终端之间连接的跳数。或者,

[0040] 网络服务器向向通过网络连接的终端发送的心跳数据包为预定格式心跳数据包,如,该预定格式心跳数据包为具有预定长度的心跳数据包或具有特定标识。

[0041] 第一处理单元处于第二状态时,终端接收到该预定格式心跳数据包时,终端的第二处理单元不唤醒第一处理单元,可维持第一处理单元仍然处于第二状态。

[0042] 实施例二

[0043] 终端接入因特网,与网络服务器之间建立网络连接(如TCP或UDP)。鉴于出现较长的数据传输间歇时间,为维持服务器和终端之间的连接,终端主处理单元会发出指示构造心跳数据包,并在进入休眠之前发送给通信功能单元(如Modem、蓝牙功能单元等),而且通知通信功能单元发送心跳包的周期。在主处理单元处于休眠期间,通信功能单元以所述周期发送心跳包给网络服务器,以维持终端和服务器之间的连接。

[0044] 参照图2,本实施例提供的一种维持终端网络连接的方法,包括:

[0045] S101,终端主处理单元指示构造心跳数据包;

[0046] 当终端与服务器新建一网络连接(如TCP)后,为维持该连接长时间处于激活状态,更适宜地,在主处理单元进入休眠之前,主处理单元指示心跳控制模块构建心跳数据包,获取网络服务器的IP地址和该连接对应的端口号,用以构建网络数据包;也可获取本地IP地址、本地端口号(可选)。

[0047] 获取所述网络服务器发送的数据包中包含的确认号(ACK)和序列号(SequenceNumber);更适宜地,所述包含确认号和序列号的数据包为终端接收到的服务器发送过来的最后一个包。

[0048] 进一步地,主处理单元触发包检测模块检测服务器的该TCP连接上由服务器发送到终端的所有IP包(源IP是服务器IP、源端口是服务器端口、目的IP是本机IP (可选)、目的端口是本地端口号),提取该IP包头部中的序列号(Sequence Number)和确认号(ACK)值,并记录最后收到的数据包的Sequence Number和ACK值。

[0049] 在本实施例中,以TCP连接为例进行描述,其他类型的网络连接也可按照相应的格式构建心跳数据包。

[0050] 利用所述网络服务器的IP地址和所述端口号以及所述确认号和序列号构建TCP数据包作为心跳数据包。

[0051] 在所构建的心跳数据包中,TCP头部中的序列号为所述服务器发送的数据包中包含的确认号;TCP头部中的确认号为所述服务器发送的数据包中包含的序列号。

[0052] 具体地,所生成的心跳数据包符合TCP数据包格式,参照图3,该心跳数据包中,TCP头部中的32位序列号(Sequence Number)设置为主处理单元进入第二状态之前,接收到的服务器发送过来的最后一个包的32位确认号(ACK)值;TCP头部中的32位确认号(ACK)值设置为主处理单元进入第二状态之前接收到的服务器发送过来的最后一个包的32位序列号(Sequence Number)值;IP头部的目的IP地址设置为该连接对应的服务器的IP地址;IP头部的源IP地址设置为该连接的源IP地址;TCP头部的源端口号设置为该连接的源端口号;IP头部的目的端口号设置为该连接的目的端口号;TCP头部中其他各域按照标准规范进行设置;数据部分可以为空,也可以包含一些数据内容。TCP选项内容可任意设置,也可以没有任何TCP选项。

[0053] S102,主处理单元在进入休眠之前,将所构建的心跳数据包发送给通信功能单元(如modem模块、蓝牙功能模块等);

[0054] 在一定时间内,若终端未进行访问网络、浏览网页、下载数据等操作,则该TCP连接上没有数据传输,主处理单元要进入休眠状态。为在较长的数据传输间歇时间内维持该TCP连接,主处理单元在进入休眠之前要将所构建的心跳数据包发送给通信功能单元,同时通知通信功能单元发送心跳包的周期,并启动由通信功能单元执行的“心跳代理”程序。这样,主处理单元CPU和运行的操作系统就可以进入休眠,其无需像传统方法里每次发送心跳数据时被唤醒,故可以大大节省电能,降低功耗。

[0055] S103,在主处理单元休眠时,通信功能单元周期性地发送心跳包给连接对端的网络服务器,以维持终端和网络服务器之间的连接。

[0056] 若终端上的检测模块检测到一定时间T内该连接中没有新的数据包到达或者发出,则启动通信功能单元发送心跳数据包的过程。或者收到来自主处理单元发送来的启动“心跳机制”的指令后,通信功能单元开始发送心跳数据包的过程。

[0057] S104,网络服务器接收到来自终端的心跳数据包后,不反馈信号给终端。

[0058] 网络服务器通过识别心跳数据包的TCP头部中的序列号及确认号,确定不反馈信号给所述终端,并且不对该心跳数据包进行处理。

[0059] 该心跳数据包遵循TCP协议,网络服务器接收到该心跳数据包无需做任何改变,按照目前TCP协议栈标准的处理流程,网络服务器将丢弃该TCP包,网络服务器的TCP协议栈也不会将该包上传到上层应用。从而使得网络服务器上的系统及应用软件无需任何改动。

[0060] 另外,终端一旦接收到服务器传输过来的正常的数据包,通信功能单元的心跳发送过程就停止,主处理单元被唤醒,进行正常的数据收发处理。

[0061] 在具体实现上,心跳控制模块和检测模块在同一个功能模块上实现,也可以作为两个功能模块实现。

[0062] 在终端中,主处理单元CPU是运行操作系统和应用程序的处理单元;通信功能单元是终端上的Modem或其他类似功能单元,通信功能单元上有简单的处理能力,如Modem具备最基本的收发来自网络接口的数据的能力,本方案中通信功能单元Modem上无需执行复杂的TCP/IP协议栈,这样可以快速而便捷地发送心跳数据包,实现起来简单易行。

[0063] 本实施例还提供一种终端,参照图4,该终端200包括:

[0064] 第一处理单元210,可处于第一状态和第二状态,第二状态的功耗小于第一状态的功耗;

[0065] 第二处理单元220,与第一处理单元210连接,第一处理单元210的第一状态时的功耗大于第二处理单元220的功耗;

[0066] 若第一处理单元210处于第二状态时,第二处理单元220周期性发送心跳数据包给通过网络连接的网络服务器,以维持所述终端和所述网络服务器之间的连接。

[0067] 第一处理单元210包括:

[0068] 数据包生成模块211,用于生成心跳数据包;

[0069] 数据包发送控制模块212,用于指示将心跳数据包发送给第二处理单元。

[0070] 在此以TCP连接为例进行描述,其他类型的网络连接也可按照相应的格式构建心跳数据包。

[0071 ] 数据包生成模块211,利用网络服务器的IP地址和端口号以及接收到的来自网络服务器数据包的确认号和序列号构建TCP数据包作为心跳数据包。在所构建的TCP头部中的序列号为网络服务器发送的数据包的确认号;TCP数据包头部中的确认号为服务器发送的数据包的序列号。

[0072] 具体地,所生成的心跳数据包符合TCP数据包格式,参照图3,该心跳数据包中,TCP头部中的32位序列号(Sequence Number)设置为主处理单元进入第二状态之前,接收到的服务器发送过来的最后一个包的32位确认号(ACK)值;TCP头部中的32位确认号(ACK)值设置为主处理单元进入第二状态之前接收到的服务器发送过来的最后一个包的32位序列号(Sequence Number)值;IP头部的目的IP地址设置为该连接对应的服务器的IP地址;IP头部的源IP地址设置为该连接的源IP地址;TCP头部的源端口号设置为该连接的源端口号;IP头部的目的端口号设置为该连接的目的端口号;TCP头部中其他各域按照标准规范进行设置;数据部分可以为空,也可以包含一些数据内容。TCP选项内容可任意设置。

[0073] 其中,数据包生成模块211,具体包括:

[0074] 第一信息获取模块211a,用于获取所述网络服务器的IP地址和所述终端与所述网络服务器之间对应的端口号;

[0075] 第二信息获取模块211b,用于获取第一处理单元进入第二状态之前所述网络服务器发送的最后一 TCP数据包的确认号和序列号;

[0076] 数据包构建模块211c,利用所述网络服务器的IP地址和所述端口号以及所述确认号和序列号构建TCP数据包作为心跳数据包。

[0077] 第一处理单元210进入第二状态之前,数据包发送控制模块指示将心跳数据包发送给第二处理单元220。

[0078] 第二处理单元220发送心跳包的周期,并启动由第二处理单元220执行的“心跳代理”程序。这样,第一处理单元210及运行的操作系统就可以进入休眠,其无需每次发送心跳数据时被唤醒,故可以大大节省电能,降低功耗。具体地,第一处理单元210为主处理器;第一状态是唤醒状态,第二状态是休眠状态;第二处理单元220为调制解调器Modem。

[0079] 本实施例提供的技术方案中,通过终端的第二处理单元(通信功能单元,如Modem)发送心跳数据包,能够让终端的第一处理单元(主处理单元CPU)长时间处于休眠状态,从而能够大大节省终端的电能。本方法适用于TCP、UDP等不同协议的数据通道。

[0080] 实施例三

[0081] 为维持网络服务器和终端的连接(TCP或UDP),本实施例中,服务器发送一种特殊的心跳数据包给终端,通过设置特殊的心跳数据包(IP包)的相关参数值,具体为一个预定的存活期(TTL,Time to live)值,使得该心跳数据包能够通过NAT网关,但是在未到达终端之前就被丢弃,参照图5。由于该心跳数据包通过了 NAT网关,从而刷新了该网关上的TCP或者UDP连接通道状态,故维持了服务器和终端之间的连接。

[0082] 网络服务器发出特殊的数据包,用于维持网络服务器和终端的连接,使得处于休眠状态的终端既可与网络服务器保持连接,不会因为网络服务器发出的心跳数据包而被唤醒。

[0083] 参照图6,本实施例提供的一种维持终端与网络服务器连接的方法,包括:

[0084] S201,网络服务器获取终端到网络服务器之间的“跳数;

[0085] 网络服务器从接收到的来自终端的数据包中提取终端到网络服务器之间的“跳数”,假设跳数为K。

[0086] S202,终端主动进入休眠后,网络服务器启动心跳数据包发送程序;

[0087] 在一定时间内,若终端未进行访问网络、浏览网页、下载数据等操作,则该TCP连接上没有数据传输,终端主处理单元要进入休眠状态。终端主动进入休眠前发送一个指令给网络服务器,通知网络服务器启动心跳机制,网络服务器收到该指令后进入心跳数据包发送过程;或者网络服务器发送一个休眠指示给终端,终端则进入休眠,然后网络服务器启动心跳发送程序;

[0088] S203,网络服务器周期性地发送预定的心跳数据包给终端;

[0089] 具体地,将终端进入休眠前网络服务器发送给终端的最后一个TCP数据包作为心跳数据,并将该数据包的IP头部中的TTL值被设置为K-1。网络服务器以预定周期重发该心跳包给终端,由于该数据包的TTL值为K-1,该数据包在通过NAT网关之后,到达终端之前被丢弃。这样终端的主处理器CPU不会被唤醒,节省了终端的电源。

[0090] 若网络服务器要发送正常的数据包,则网络服务器停止发送心跳数据包。

[0091] 若网络服务器收到终端发来的正常数据包,如网络服务请求,则网络服务器中止该心跳数据包发送过程。

[0092] 在维持网络服务器和终端的连接(TCP或者UDP)上没有数据传输,网络服务器再次启动心跳数据包的发送过程,该过程如前所述,在此不再重复。

[0093] 网络服务器对终端发送来的最新数据包的“跳数”值进行检查,以保证该“跳数”值总是最新,防止终端的网络环境发生改变后,该“跳数”值出现变化,从而使得心跳机制出错。

[0094] 本实施例提供的技术方案中,通过服务器向终端发送特殊的心跳数据包,使得该心跳数据包能够通过NAT网关,在未到达终端之前就被丢弃,因而该心跳数据包不会到达终端,由于该心跳数据包通过了 NAT网关,刷新了该网关上的TCP或者UDP连接通道状态,故维持了服务器和终端之间的连接。从而使得处于休眠状态的终端既可与网络服务器保持连接,不会因为网络服务器发出的心跳数据包而被唤醒。这样也就降低了终端待机状态下的能耗。

[0095] 实施例四

[0096] 为维持网络服务器和终端的连接(TCP或UDP),本实施例中,服务器发送一种预定格式的心跳数据包给终端,该心跳数据包中设置有特定标识位或该心跳数据包具有特定长度,所述终端对所述心跳数据包不予处理。

[0097] 在主处理单元休眠时,终端的通信功能单元接收到所述心跳数据包后不唤醒所述主处理单元。通信功能单元对所述心跳数据包不予处理,如可直接丢弃。

[0098] 所述心跳数据包在到达终端,通信功能单元根据所述预定长度或特定标识识别所述心跳数据包;

[0099] 若确定所接收到的心跳数据包为预定格式心跳数据包,通信功能单元则对所述心跳数据包不予处理,如可直接丢弃。

[0100] 参照图7,本实施例提供的一种维持终端与网络服务器连接的方法,包括:

[0101] S301,终端进入休眠后,网络服务器启动心跳数据包发送程序;

[0102] 在一定时间内,若终端未进行访问网络、浏览网页、下载数据等操作,则该TCP连接上没有数据传输,终端主处理单元要进入休眠状态。终端主动进入休眠前发送一个指令给网络服务器,通知网络服务器启动心跳机制,网络服务器收到该指令后进入心跳数据包发送过程;或者网络服务器发送一个休眠指示给终端,终端则进入休眠,然后网络服务器启动心跳发送程序;

[0103] S302,网络服务器周期性地发送预定格式的心跳数据包给终端;

[0104] 具体地,终端进入休眠前网络服务器发送给终端的最后一个TCP数据包,并对该TCP数据包进行设置,将设置后得到的数据包作为心跳数据。

[0105] 该预定格式的心跳包按照如下格式构建:

[0106] 该心跳数据包的数据部分长度为O ;该心跳数据包的其他参数与服务器发送给网络终端的最后一个TCP数据包完全一致,该数据包的长度为40字节(基本的IP头部数据加上TCP基本头部数据)。或者,该心跳数据包中设置有特定标识。

[0107] S303,心跳数据包到达终端后,不唤醒主处理器;

[0108] 该心跳数据包发送到终端之后,终端的通信功能单元(如,Modem)根据该心跳数据包中数据部分长度或特定标识进行识别。Modem对数据包进行检测,若发现该心跳数据包的数据部分长度为40字节或包含有特定标识,则确定该数据包为预定格式的心跳数据包。Modem则将该数据包丢弃,而不唤醒上层系统。这样终端的主CPU不会被唤醒,节省了终端的电源。

[0109] 实施例五

[0110] 参照图8,本发明实施例提供一种网络服务器500,包括:

[0111] 数据包生成单元510,用于构建的特定的心跳数据包,该心跳数据包用于维持网络服务器和终端的连接;

[0112] 发送单元520,与所述数据包生成单元连接,用于通过网络向所述终端发送所述特定的心跳数据包;

[0113] 其中特定的心跳数据包为生存期TTL跳数为K-1的心跳数据包,其中K为所述网络服务器与所述终端之间连接的跳数;

[0114] 网络服务器从接收到的来自终端的数据包中提取终端到网络服务器之间的“跳数” K,数据包生成单元510构建生存期TTL跳数为K-1的心跳数据包。发送单元520将所构建的心跳数据包发送给通过网络连接的终端。

[0115] 终端进入休眠后,网络服务器启动心跳数据包发送程序;由于该心跳数据包的TTL值为K-1,该心跳数据包在通过NAT网关之后,到达终端之前被丢弃。这样终端的主处理器CPU不会被唤醒,节省了终端的电源。

[0116] 另外,特定的心跳数据包还可以是具有预定长度或特定标识的心跳数据包。

[0117] 其中,与网络服务连接的终端包括第一处理单元和第二处理单元,第一处理单元具有第一状态和第二状态,第二状态的功耗小于第一状态的功耗,在维持网络服务器和该终端的连接过程中,第一处理单元处于第二状态。第二处理单元与第一处理单元连接,第一处理单元处于第一状态时的功耗大于第二处理单元的功耗;

[0118] 该心跳数据包发送到终端之后,终端的第二处理单元根据预定长度或特定标识识别出该心跳数据包后,不唤醒上层系统,可直接将该数据包丢弃,这样终端的第一处理单元(主处理器,CPU)处于第二状态,例如第二状态为休眠状态,主处理器不会被唤醒,因此节省了终端的电源。

[0119] 本实施例提供的技术方案中,通过服务器向终端发送预定格式的心跳数据包,在终端的第一处理单元(主处理器)处于休眠状态,终端的通信功能单元对该预定格式的心跳数据包不进行处理,不将该心跳数据包发送给上层系统,终端的第一处理单元(主处理器)也就不会被唤醒,使得处于休眠状态的终端既可与网络服务器保持连接,不会因为网络服务器发出的心跳数据包而被唤醒,这样也就降低了终端的能耗。

[0120] 显然,本领域的技术人员应该明白,上述的本发明的各单元或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个单元或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

[0121] 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.一种维持终端和网络服务器连接的方法,该终端具有第一处理单元,所述第一处理单元具有第一状态和第二状态,其中,所述第二状态的功耗小于所述第一状态的功耗,其特征在于,该终端还具有第二处理单元,所述第二处理单元的功耗小于所述第一处理单元处于所述第一状态的功耗,该方法包括: 所述第一处理单元进入所述第二状态之前,所述第一处理单元生成心跳数据包,并发送给所述第二处理单元; 所述第一处理单元处于所述第二状态时,通过所述第二处理单元周期性发送心跳数据包给通过网络连接的网络服务器,以维持所述终端和所述网络服务器之间的连接。
2.如权利要求1所述的维持终端和网络服务器连接的方法,其特征在于,所述生成心跳数据包,包括: 获取所述网络服务器的IP地址和所述终端与所述网络服务器之间连接对应的端口号; 获取所述网络服务器发送的数据包中包含的确认号和序列号; 利用所述网络服务器的IP地址和所述端口号以及所述确认号和序列号构建TCP数据包作为心跳数据包。
3.如权利要求1所述的维持终端和网络服务器连接的方法,其特征在于,还包括: 所述网络服务器接收到所述终端发送的所述心跳数据包后,不发送反馈数据包给所述终端; 或者,所述网络服务器接收到心跳数据包后,发送的反馈数据包在到达所述终端之前被丢弃; 或者,所述网络服务器接收到心跳数据包后,发送的反馈数据包到达所述终端后,不唤醒所述第一处理单元。
4.如权利要求2所述的维持终端和网络服务器连接的方法,其特征在于,所述心跳数据包中,所述TCP数据包头部中的序列号为所述第一处理单元进入第二状态之前所述网络服务器发送的最后一 TCP数据包的确认号;所述TCP数据包头部中的确认号为所述第一处理单元进入第二状态之前所述网络服务器发送的最后一 TCP数据包的序列号;该方法进一步包括: 所述网络服务器接收到所述心跳数据包后,通过识别所述心跳数据包的TCP头部中的序列号及确认号,确定不发送反馈数据包给所述终端。
5.如权利要求1所述的维持终端和网络服务器连接的方法,其特征在于,所述网络服务器周期性发送心跳数据包,具体包括: 所述网络服务器向所述终端发送的心跳数据包,该心跳数据包的生存期TTL跳数值为K-1,其中K为该网络服务器与所述终端之间连接的跳数。
6.如权利要求1所述的维持终端和网络服务器连接的方法,其特征在于,所述终端还具有第二处理单元,第二处理单元的功耗小于所述第一处理单元第一状态的功耗,所述网络服务器周期性发送的心跳数据包,该方法进一步包括: 当所述第一处理单元处于第二状态时,所述心跳数据包在到达所述终端时,所述第二处理单元识别所述心跳数据包是否为预订格式心跳数据包; 若所述心跳数据包为预定格式心跳数据包时,所述第二处理单元维持所述第一处理单元处于第二状态。
7.如权利要求6所述的维持终端和网络服务器连接的方法,所述预定格式心跳数据包为具有预定长度的心跳数据包或具有标识的心跳数据包。
8.—种终端,其特征在于,包括: 第一处理单元,所述第一处理单元具有第一状态和第二状态,所述第二状态的功耗小于所述第一状态的功耗; 第二处理单元,与所述第一处理单元连接,所述第一处理单元处于所述第一状态时的功耗大于第二处理单元的功耗; 所述第一处理单元包括: 数据包生成模块,用于生成心跳数据包; 数据包发送控制模块,用于指示将所述心跳数据包发送给所述第二处理单元; 若所述第一处理单元处于所述第二状态时,所述第二处理单元周期性发送心跳数据包给通过网络连接的网络服务器,以维持所述终端和所述网络服务器之间的连接。
9.如权利要求8所述的终端,其特征在于,所述数据包生成模块,包括: 第一信息获取模块,用于获取所述网络服务器的IP地址和所述终端与所述网络服务器之间对应的端口号; 第二信息获取模块,用于获取所述第一处理单元进入第二状态之前所述网络服务器发送的最后一 TCP数据包的确认号和序列号; 数据包构建模块,利用所述网络服务器的IP地址和所述端口号以及所述确认号和序列号构建TCP数据包作为心跳数据包。
10.如权利要求8所述的终端,其特征在于, 所述第一处理单元为主处理器,其中,所述第一状态是唤醒状态,所述第二状态是休眠状态; 所述第二处理单元为调制解调器。
CN200910235573.1A 2009-09-29 2009-09-29 维持终端和网络服务器连接的方法、终端及网络服务器 CN102036349B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910235573.1A CN102036349B (zh) 2009-09-29 2009-09-29 维持终端和网络服务器连接的方法、终端及网络服务器

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN200910235573.1A CN102036349B (zh) 2009-09-29 2009-09-29 维持终端和网络服务器连接的方法、终端及网络服务器
US13/498,655 US9198217B2 (en) 2009-09-29 2010-09-21 Method for maintaining connection between terminal and network server, terminal and network server
PCT/CN2010/077187 WO2011038653A1 (zh) 2009-09-29 2010-09-21 维持终端和网络服务器连接的方法、终端及网络服务器

Publications (2)

Publication Number Publication Date
CN102036349A CN102036349A (zh) 2011-04-27
CN102036349B true CN102036349B (zh) 2015-03-25

Family

ID=43825557

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910235573.1A CN102036349B (zh) 2009-09-29 2009-09-29 维持终端和网络服务器连接的方法、终端及网络服务器

Country Status (3)

Country Link
US (1) US9198217B2 (zh)
CN (1) CN102036349B (zh)
WO (1) WO2011038653A1 (zh)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9046898B2 (en) 2011-02-24 2015-06-02 Google Inc. Power-preserving communications architecture with long-polling persistent cloud channel for wireless network-connected thermostat
CN102685768B (zh) * 2011-03-08 2016-02-03 华为技术有限公司 心跳消息的处理方法、心跳周期的获取方法及接入网设备
CN102572119B (zh) * 2011-10-31 2015-10-21 中兴通讯股份有限公司 一种移动终端及其省电方法
CN102404858B (zh) * 2011-11-25 2014-04-02 华为技术有限公司 一种无线资源优化方法、装置及系统
US9059903B2 (en) * 2011-12-19 2015-06-16 At&T Intellectual Property I, L.P. Method and apparatus for monitoring connectivity in a long term evolution network
CN103297409A (zh) * 2012-03-05 2013-09-11 联想(北京)有限公司 一种保持连接的方法及装置
CN103309430A (zh) * 2012-03-15 2013-09-18 宏碁股份有限公司 管理方法及相关计算机系统
CN103369001B (zh) * 2012-03-29 2016-11-23 北京百度网讯科技有限公司 用于移动终端的接收推送的消息的方法、装置及移动终端
CN102684949B (zh) * 2012-06-04 2015-02-04 北京神州泰岳软件股份有限公司 一种长连接下心跳数据包的处理方法、装置和客户端
CN102799394B (zh) * 2012-06-29 2015-02-25 华为技术有限公司 一种实现高可用集群的心跳服务的方法及装置
CN103516700A (zh) * 2012-06-29 2014-01-15 联想(北京)有限公司 一种发送数据包的方法及终端设备
CN102932757A (zh) * 2012-09-25 2013-02-13 百度在线网络技术(北京)有限公司 移动终端的心跳消息发送方法、移动终端、信息推送系统
KR101947652B1 (ko) 2012-09-28 2019-04-25 삼성전자 주식회사 휴대 단말기의 저전력 근거리 통신 기능 운용 방법 및 장치
CN103906033A (zh) * 2012-12-28 2014-07-02 中国电信股份有限公司 用户终端上网络通信请求信令的发送方法与装置
CN103079285A (zh) * 2013-01-14 2013-05-01 东莞宇龙通信科技有限公司 移动终端和点对点连接保持方法
US9215263B2 (en) * 2013-03-12 2015-12-15 Vonage Network, Llc Method and apparatus for rapid setup of a telephony communication using multiple communication channels
CN103327380A (zh) * 2013-06-08 2013-09-25 华为技术有限公司 一种机顶盒及在机顶盒上实现通话的方法
JP6330265B2 (ja) * 2013-06-24 2018-05-30 カシオ計算機株式会社 無線通信装置、無線通信システム、無線通信方法、及びプログラム
CN104469901B (zh) 2013-09-17 2018-09-07 华为终端(东莞)有限公司 数据处理的方法及装置
US9531678B1 (en) * 2013-10-15 2016-12-27 Progress Software Corporation On-premises data access and firewall tunneling
US9473506B1 (en) 2013-10-15 2016-10-18 Progress Software Corporation Secure file transfer and notification server
CN103546876B (zh) * 2013-10-28 2017-03-29 深圳全智达通信股份有限公司 一种发送信息的方法、终端设备、应用服务器及系统
WO2015061957A1 (zh) * 2013-10-29 2015-05-07 华为终端有限公司 一种业务代理的方法、调制解调器及终端
CN103561392A (zh) * 2013-10-31 2014-02-05 宇龙计算机通信科技(深圳)有限公司 发送信息的方法及终端
CN104703146B (zh) 2013-12-09 2019-03-08 腾讯科技(深圳)有限公司 信息推送方法、客户端及系统
CN104754704B (zh) * 2013-12-26 2018-10-09 华为终端(东莞)有限公司 一种控制终端休眠的方法及终端
US20150282244A1 (en) * 2014-03-26 2015-10-01 Htc Corporation Mobile device and method for managing network connection and storage medium
US9699732B2 (en) * 2014-04-29 2017-07-04 Samsung Electronics Co., Ltd. Apparatus and method for controlling communication module
CN103997436B (zh) * 2014-05-24 2018-09-21 上海新时达电气股份有限公司 一种电梯物联网中的链路保持方法和网关
WO2016003414A1 (en) * 2014-06-30 2016-01-07 Hewlett-Packard Development Company, L. P. Retrieval of a command from a management server
CN105453659B (zh) * 2014-07-24 2019-06-21 华为技术有限公司 数据收发方法、调制解调器及终端设备
CN104284326A (zh) * 2014-10-31 2015-01-14 北京元心科技有限公司 移动终端的省电方法、系统、应用处理器和无线模块
CN107251593B (zh) * 2015-04-10 2020-05-08 华为技术有限公司 数据包处理方法和相关设备
CN105049477A (zh) * 2015-05-26 2015-11-11 腾讯科技(深圳)有限公司 维持长连接的方法和装置
CA2982393A1 (en) * 2015-06-30 2017-01-05 Huawei Technologies Co., Ltd. Method for interaction between terminal and network device, and terminal
CN105100253A (zh) * 2015-08-05 2015-11-25 东莞市中控电子技术有限公司 一种数据传输的系统以及方法
CN105657860B (zh) * 2016-01-29 2019-09-10 珠海市魅族科技有限公司 一种提高数据业务响应速度的方法及装置
CN105813180A (zh) * 2016-03-14 2016-07-27 福州瑞芯微电子股份有限公司 一种Modem智能休眠的方法及系统
CN107204999B (zh) * 2016-03-16 2020-10-30 阿里巴巴集团控股有限公司 一种实现心跳的方法和装置
CN105959997B (zh) * 2016-04-19 2019-06-18 北京小米移动软件有限公司 心跳报文的发送方法、装置及终端
CN106027332B (zh) * 2016-06-28 2019-08-16 努比亚技术有限公司 心跳报文处理装置及方法
CN106658680A (zh) * 2016-11-15 2017-05-10 济南中维世纪科技有限公司 一种降低智能猫眼设备功耗网络连接系统及方法
CN106851799B (zh) * 2017-01-19 2020-10-09 珠海市魅族科技有限公司 一种长连接中心跳包的发送方法及装置
CN108632306A (zh) * 2017-03-17 2018-10-09 华为技术有限公司 安全保活的方法、设备以及系统
CN107360362B (zh) * 2017-06-16 2019-11-29 深圳市共进电子股份有限公司 便携式网络摄像机及无线路由器运行方法
CN107317731A (zh) * 2017-08-21 2017-11-03 厦门天锐科技股份有限公司 一种客户端与服务器连接状态的检测方法
US20190068721A1 (en) * 2017-08-28 2019-02-28 Qualcomm Incorporated Techniques and apparatuses for modem-assisted heartbeat transmission
CN109474937A (zh) * 2017-09-08 2019-03-15 索尼公司 无线通信方法和无线通信设备
US10616182B1 (en) 2017-11-30 2020-04-07 Progress Software Corporation Data access and firewall tunneling using a custom socket factory
CN108200639A (zh) * 2018-02-13 2018-06-22 广东欧珀移动通信有限公司 业务数据的发送方法、装置及终端
CN108650301A (zh) * 2018-04-17 2018-10-12 厦门睿洽科技有限公司 基于安卓系统的保持udp长连接的方法
CN109379447A (zh) * 2018-12-25 2019-02-22 北京明朝万达科技股份有限公司 一种文件下载方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101234017A (zh) * 2008-02-26 2008-08-06 中兴通讯股份有限公司 心跳检测方法、系统和中央处理单元
WO2009011734A1 (en) * 2007-07-13 2009-01-22 Gainspan, Inc. Management method and system of low power consuming devices
CN101364998A (zh) * 2008-09-18 2009-02-11 深圳华为通信技术有限公司 一种ims实现方法、装置和系统
CN101471992A (zh) * 2007-12-24 2009-07-01 联想(北京)有限公司 一种移动终端及通过网络向移动终端推送业务信息的方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5592538A (en) * 1993-03-10 1997-01-07 Momentum, Inc. Telecommunication device and method for interactive voice and data
KR100785293B1 (ko) * 2005-02-11 2007-12-12 삼성전자주식회사 다중 tcp확인응답을 이용한 tcp 혼잡 제어 시스템및 그 방법
US7890637B1 (en) * 2008-02-25 2011-02-15 Juniper Networks, Inc. Secure communications in a system having multi-homed devices
US8762518B2 (en) * 2009-07-10 2014-06-24 Telcordia Technologies, Inc. Program and method for adaptively maintaining a local peer group in a dynamic environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009011734A1 (en) * 2007-07-13 2009-01-22 Gainspan, Inc. Management method and system of low power consuming devices
CN101471992A (zh) * 2007-12-24 2009-07-01 联想(北京)有限公司 一种移动终端及通过网络向移动终端推送业务信息的方法
CN101234017A (zh) * 2008-02-26 2008-08-06 中兴通讯股份有限公司 心跳检测方法、系统和中央处理单元
CN101364998A (zh) * 2008-09-18 2009-02-11 深圳华为通信技术有限公司 一种ims实现方法、装置和系统

Also Published As

Publication number Publication date
CN102036349A (zh) 2011-04-27
US20120188928A1 (en) 2012-07-26
WO2011038653A1 (zh) 2011-04-07
US9198217B2 (en) 2015-11-24

Similar Documents

Publication Publication Date Title
JP6518747B2 (ja) スリーピノードをサポートするための近隣発見
EP3258651A1 (en) Ip camera control method, apparatus, and system
US20170215143A1 (en) Electronic devices for receiving pushed data
CN103748934B (zh) 用于确定传送频率以维持远程应用服务器连通性的系统和方法
De Caro et al. Comparison of two lightweight protocols for smartphone-based sensing
EP2645636B1 (en) Home gateway, cloud server, and method for communication therebetween
US20150249928A1 (en) Network Range Extender with Multi-RF Radio Support for Plurality of Network Interfaces
US8244887B2 (en) HTTP push to simulate server-initiated sessions
US20190246374A1 (en) Keeping the ue awake
US9154312B2 (en) Power save proxy in communication networks
US8553701B2 (en) Cost reduction of NAT connection state keep-alive
US8774056B2 (en) Automated device discovery on a network
US9173116B2 (en) Method, apparatus and system for controlling access points
CN103354993B (zh) 促进设备对设备通信
CN104968037B (zh) 基于代理设备的低功耗物联网实现方法
EP2882233B1 (en) Service agent method, modem, and terminal
US8818429B2 (en) System and method for enabling wireless data transfer
US8935405B2 (en) Expanding universal plug and play capabilities in power constrained environment
JP3979306B2 (ja) 無線端末装置および無線通信システム
JP2013084288A (ja) ネットワークインターフェースモジュール内の電力を管理するための方法および装置
CA2869180C (en) Cloud-enabled low power wi-fi sensor
KR101537043B1 (ko) 통신 시스템에서 단말과 서버와의 연결 유지 방법 및시스템
CN104469789A (zh) 智能家电的连接配置方法以及系统
CN102104565B (zh) 调制解调器及电源节省方法
US20070058634A1 (en) Interaction with wireless sensor devices

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