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

文档序号:7719583阅读:97来源:国知局
专利名称:维持终端和网络服务器连接的方法、终端及网络服务器的制作方法
技术领域
本发明涉及通信及网络技术领域,具体涉及维持终端和网络服务器连接的方法、 终端及网络服务器。
背景技术
便携设备(如手机、便携电脑等终端)通过无线网络(如3G)上网,因为地址缺乏, 为了节省公用IP地址,通常便携设备上采用的IP地址为私有地址,需要通过网络代理装置 或网关进行网络地址转换(NAT)之后再连接到因特网Internet。这样导致因特网hternet 上的主机或者服务器无法主动向该手持设备发起连接。
为了获得服务器上的某些应用数据(例如服务器主动推动一些用户关心的实时 信息),现有技术中提供的方案之一是便携设备主动向服务器发起一个TCP或者UDP连接, 从而建立起服务器和便携设备之间的连接通道,这样,服务器可以利用该TCP或者UDP通道 进行数据传输。但是若在一段时间T内,该TCP或者UDP连接上没有数据传输,那么该便 携设备对应的网络代理装置或网关会将该连接状态清除,致使该连接中断,此时服务器或 者便携设备都无法继续使用该连接通道。数据传输间歇时间T会根据使用的网络不同而变 化,例如测试中有些3G网络的数据传输间歇时间T大概在11分钟,有一些GSM网络的数据 传输间歇时间T是18分钟等。
为了维持服务器和便携设备之间的连接,目前的解决方法是便携设备上以小于 时间T的周期发送“心跳”数据给服务器(或者由服务器发送“心跳”数据给便携设备亦可), 使得该相应的TCP或UDP通道保持“活跃”状态,进而让中间的NAT网关不会将该通道清除。 由于不同网络的数据传输间歇时间T不同,使得开发时很难统一确定一个合理的发送维持 连接数据的周期;若周期设置过小,就会频繁的唤醒便携设备的CPU和整个操作系统,导致 便携设备的能量过多地消耗。即使是从服务器向便携设备发送“心跳”数据,便携设备的主 CPU和整个操作系统也会被唤醒去接受数据,同样也会消耗手持设备较多能量,导致便携设 备的持续使用时间缩短。
若周期太大,又不能维持连接通道的可用性,使得一些实时数据无法及时从服务 器上推送到便携设备。这对于电池供电的便携设备而言,很容易造成移动便携设备使用这 类由服务器推送数据的(PUSH)服务时电源上的瓶颈。发明内容
本发明实施例提供维持终端和网络服务器连接的方法、终端及网络服务器,可在 终端处于休眠状态期间维持服务器和该终端之间的连接。
本发明实施例提供的一种维持终端和网络服务器连接的方法,该终端具有第一处 理单元,所述第一处理单元具有第一状态和第二状态,其中,所述第二状态的功耗小于所述 第一状态的功耗,该方法包括
所述终端或网络服务器周期性发送心跳数据包,以维持所述终端和所述网络服务器之间的连接;
其中,所述第一处理单元处于所述第二状态。
该终端还具有第二处理单元,所述第二处理单元的功耗小于所述第一处理单元处 于所述第一状态的功耗,所述终端周期性发送心跳数据包,包括
所述第一处理单元处于所述第二状态时,通过所述第二处理单元周期性发送心跳 数据包给通过网络连接的网络服务器。
优选地,所述网络服务器周期性发送心跳数据包,具体包括
所述网络服务器向所述终端发送的心跳数据包,该心跳数据包的生存期TTL跳数 值为K-1,其中K为该网络服务器与所述终端之间连接的跳数。
优选地,所述网络服务器周期性发送的心跳数据包,该方法进一步包括
当所述第一处理单元处于第二状态时,所述心跳数据包在到达所述终端时,所述 第二处理单元识别所述心跳数据包是否为预订格式心跳数据包;
若所述心跳数据包为预定格式心跳数据包时,所述第二处理单元维持所述第一处 理单元处于第二状态。
更适宜地,所述预定格式心跳数据包为具有预定长度的心跳数据包或具有特定标 识的心跳数据包。
本实施例提供的技术方案中,通过终端的通信功能单元发送心跳数据包,能够让 终端主处理单元CPU长时间处于休眠状态,从而能够大大节省终端的电能。通过服务器向 终端发送特殊的心跳数据包,使得该心跳数据包能够通过NAT网关,在未到达终端之前就 被丢弃,因而该心跳数据包不会到达终端,由于该心跳数据包通过了 NAT网关,刷新了该网 关上的TCP或者UDP连接通道状态,故维持了服务器和终端之间的连接。发送预定格式的 心跳数据包,在终端的主处理器处于休眠状态,终端的通信功能单元对该预定格式的心跳 数据包不进行处理,不将该心跳数据包发送给上层系统,终端的主处理器也就不会被唤醒, 从而使得处于休眠状态的终端既可与网络服务器保持连接,不会因为网络服务器发出的心 跳数据包而被唤醒,因此可降低终端的能耗。


图1为本发明实施例一提供的维持终端网络连接的示意图2为本发明实施例二提供的维持终端网络连接的方法流程图3为本发明实施例二中提供的心跳数据包构成示意图4为本发明实施例二提供的一种终端架构示意图5为本发明实施例三提供的维持终端网络连接的原理图6为本发明实施例三提供的维持终端网络连接的方法流程图7为本发明实施例四中提供的维持终端网络连接的方法流程图8为本发明实施例五中提供的服务器架构示意图。
具体实施方式
针对现有技术存在的不足和缺陷,本发明提出了一种新的维持这类应用中TCP或 者UDP数据通道的方法,既适用于无线终端,也适用于有线终端。该方法中,在终端处于休眠状态中,由终端的通信功能单元(如Modem模块、蓝牙功能模块等)与网络服务器之间传 送心跳信号,具体地,通信功能单元周期发送“心跳”数据给服务器;或者服务器发送“心跳” 数据给终端,而不唤醒终端的主处理单元,既维持服务器和终端之间的连接,又使得终端处 于休眠状态。
在终端的通信功能单元(如Modem模块、蓝牙功能模块等)中设置一个“心跳代 理” (Heart Beat Agent),让该代理周期的发送心跳数据包给服务器,从而保持相应的TCP/ UDP连接处于激活状态,维持服务器和终端之间的网络连接,且此时主CPU —直处于休眠状 态,从而减少了终端的功耗。
为使本发明的原理、特性和优点更加清楚,下面结合具体实施例对本发明进行描 述。
实施例一
本发明实施例提供的一种维持终端和网络服务器连接的方法,该终端具有第一处 理单元(如主处理器),该第一处理单元具有第一状态和第二状态,其中,第二状态(如,休 眠状态)的功耗小于第一状态(如,激活状态)的功耗,参照图1,该方法包括
当第一处理单元处于第二状态,终端向通过网络连接的网络服务器周期性发送心 跳数据包;或网络服务器周期性向通过网络连接的终端发送心跳数据包,以维持所述终端 和所述网络服务器之间的连接。
其中终端发送心跳数据包,具体包括
由终端的第二处理单元(如Modem)在第一处理单元进入第二状态之前接收心跳 数据包;在第一处理单元进入第二状态之后,向通过网络连接的网络服务器周期性发送心 跳数据包。
网络服务器接收到终端发送的所述心跳数据包后,不发送反馈数据包给所述终 端;
或者,所述网络服务器接收到心跳数据包后,发送的反馈数据包在到达所述终端 之前被丢弃;
或者,所述网络服务器接收到心跳数据包后,发送的反馈数据包到达所述终端后, 不唤醒所述第一处理单元。
网络服务器发送心跳数据包,具体包括
网络服务器向通过网络连接的终端发送的心跳数据包,该心跳数据包的生存期 TTL跳数值为K-1,其中K为该网络服务器与所述终端之间连接的跳数。或者,
网络服务器向向通过网络连接的终端发送的心跳数据包为预定格式心跳数据包, 如,该预定格式心跳数据包为具有预定长度的心跳数据包或具有特定标识。
第一处理单元处于第二状态时,终端接收到该预定格式心跳数据包时,终端的第 二处理单元不唤醒第一处理单元,可维持第一处理单元仍然处于第二状态。
实施例二
终端接入因特网,与网络服务器之间建立网络连接(如TCP或UDP)。鉴于出现较 长的数据传输间歇时间,为维持服务器和终端之间的连接,终端主处理单元会发出指示构 造心跳数据包,并在进入休眠之前发送给通信功能单元(如Modem、蓝牙功能单元等),而且 通知通信功能单元发送心跳包的周期。在主处理单元处于休眠期间,通信功能单元以所述周期发送心跳包给网络服务器,以维持终端和服务器之间的连接。
参照图2,本实施例提供的一种维持终端网络连接的方法,包括
S101,终端主处理单元指示构造心跳数据包;
当终端与服务器新建一网络连接(如TCP)后,为维持该连接长时间处于激活状 态,更适宜地,在主处理单元进入休眠之前,主处理单元指示心跳控制模块构建心跳数据 包,获取网络服务器的IP地址和该连接对应的端口号,用以构建网络数据包;也可获取本 地I P地址、本地端口号(可选)。
获取所述网络服务器发送的数据包中包含的确认号(ACK)和序列号(kquence Number);更适宜地,所述包含确认号和序列号的数据包为终端接收到的服务器发送过来的最后一个包。
进一步地,主处理单元触发包检测模块检测服务器的该TCP连接上由服务器发送 到终端的所有IP包(源IP是服务器IP、源端口是服务器端口、目的IP是本机IP (可选)、 目的端口是本地端口号),提取该IP包头部中的序列号Sequence Number)和确认号(ACK) 值,并记录最后收到的数据包的kquence Number和ACK值。
在本实施例中,以TCP连接为例进行描述,其他类型的网络连接也可按照相应的 格式构建心跳数据包。
利用所述网络服务器的IP地址和所述端口号以及所述确认号和序列号构建TCP 数据包作为心跳数据包。
在所构建的心跳数据包中,TCP头部中的序列号为所述服务器发送的数据包中包 含的确认号;TCP头部中的确认号为所述服务器发送的数据包中包含的序列号。
具体地,所生成的心跳数据包符合TCP数据包格式,参照图3,该心跳数据包中, TCP头部中的32位序列号(kquence Number)设置为主处理单元进入第二状态之前,接 收到的服务器发送过来的最后一个包的32位确认号(ACK)值;TCP头部中的32位确认号 (ACK)值设置为主处理单元进入第二状态之前接收到的服务器发送过来的最后一个包的 32位序列号Sequence Number)值;IP头部的目的IP地址设置为该连接对应的服务器的 IP地址;IP头部的源IP地址设置为该连接的源IP地址;TCP头部的源端口号设置为该连 接的源端口号;IP头部的目的端口号设置为该连接的目的端口号;TCP头部中其他各域按 照标准规范进行设置;数据部分可以为空,也可以包含一些数据内容。TCP选项内容可任意 设置,也可以没有任何TCP选项。
S102,主处理单元在进入休眠之前,将所构建的心跳数据包发送给通信功能单元 (如modem模块、蓝牙功能模块等);
在一定时间内,若终端未进行访问网络、浏览网页、下载数据等操作,则该TCP连 接上没有数据传输,主处理单元要进入休眠状态。为在较长的数据传输间歇时间内维持该 TCP连接,主处理单元在进入休眠之前要将所构建的心跳数据包发送给通信功能单元,同时 通知通信功能单元发送心跳包的周期,并启动由通信功能单元执行的“心跳代理”程序。这 样,主处理单元CPU和运行的操作系统就可以进入休眠,其无需像传统方法里每次发送心 跳数据时被唤醒,故可以大大节省电能,降低功耗。
S103,在主处理单元休眠时,通信功能单元周期性地发送心跳包给连接对端的网 络服务器,以维持终端和网络服务器之间的连接。8
若终端上的检测模块检测到一定时间T内该连接中没有新的数据包到达或者发 出,则启动通信功能单元发送心跳数据包的过程。或者收到来自主处理单元发送来的启动 “心跳机制”的指令后,通信功能单元开始发送心跳数据包的过程。
S104,网络服务器接收到来自终端的心跳数据包后,不反馈信号给终端。
网络服务器通过识别心跳数据包的TCP头部中的序列号及确认号,确定不反馈信 号给所述终端,并且不对该心跳数据包进行处理。
该心跳数据包遵循TCP协议,网络服务器接收到该心跳数据包无需做任何改变, 按照目前TCP协议栈标准的处理流程,网络服务器将丢弃该TCP包,网络服务器的TCP协议 栈也不会将该包上传到上层应用。从而使得网络服务器上的系统及应用软件无需任何改 动。
另外,终端一旦接收到服务器传输过来的正常的数据包,通信功能单元的心跳发 送过程就停止,主处理单元被唤醒,进行正常的数据收发处理。
在具体实现上,心跳控制模块和检测模块在同一个功能模块上实现,也可以作为 两个功能模块实现。
在终端中,主处理单元CPU是运行操作系统和应用程序的处理单元;通信功能单 元是终端上的Modem或其他类似功能单元,通信功能单元上有简单的处理能力,如Modem具 备最基本的收发来自网络接口的数据的能力,本方案中通信功能单元Modem上无需执行复 杂的TCP/IP协议栈,这样可以快速而便捷地发送心跳数据包,实现起来简单易行。
本实施例还提供一种终端,参照图4,该终端200包括
第一处理单元210,可处于第一状态和第二状态,第二状态的功耗小于第一状态的 功耗;
第二处理单元220,与第一处理单元210连接,第一处理单元210的第一状态时的 功耗大于第二处理单元220的功耗;
若第一处理单元210处于第二状态时,第二处理单元220周期性发送心跳数据包 给通过网络连接的网络服务器,以维持所述终端和所述网络服务器之间的连接。
第一处理单元210包括
数据包生成模块211,用于生成心跳数据包;
数据包发送控制模块212,用于指示将心跳数据包发送给第二处理单元。
在此以TCP连接为例进行描述,其他类型的网络连接也可按照相应的格式构建心 跳数据包。
数据包生成模块211,利用网络服务器的IP地址和端口号以及接收到的来自网络 服务器数据包的确认号和序列号构建TCP数据包作为心跳数据包。在所构建的TCP头部中 的序列号为网络服务器发送的数据包的确认号;TCP数据包头部中的确认号为服务器发送 的数据包的序列号。
具体地,所生成的心跳数据包符合TCP数据包格式,参照图3,该心跳数据包中, TCP头部中的32位序列号(kquence Number)设置为主处理单元进入第二状态之前,接 收到的服务器发送过来的最后一个包的32位确认号(ACK)值;TCP头部中的32位确认号 (ACK)值设置为主处理单元进入第二状态之前接收到的服务器发送过来的最后一个包的 32位序列号Sequence Number)值;IP头部的目的IP地址设置为该连接对应的服务器的IP地址;IP头部的源IP地址设置为该连接的源IP地址;TCP头部的源端口号设置为该连 接的源端口号;IP头部的目的端口号设置为该连接的目的端口号;TCP头部中其他各域按 照标准规范进行设置;数据部分可以为空,也可以包含一些数据内容。TCP选项内容可任意设置。
其中,数据包生成模块211,具体包括
第一信息获取模块211a,用于获取所述网络服务器的IP地址和所述终端与所述 网络服务器之间对应的端口号;
第二信息获取模块211b,用于获取第一处理单元进入第二状态之前所述网络服务 器发送的最后一 TCP数据包的确认号和序列号;
数据包构建模块211c,利用所述网络服务器的IP地址和所述端口号以及所述确 认号和序列号构建TCP数据包作为心跳数据包。
第一处理单元210进入第二状态之前,数据包发送控制模块指示将心跳数据包发 送给第二处理单元220。
第二处理单元220发送心跳包的周期,并启动由第二处理单元220执行的“心跳代 理”程序。这样,第一处理单元210及运行的操作系统就可以进入休眠,其无需每次发送心 跳数据时被唤醒,故可以大大节省电能,降低功耗。具体地,第一处理单元210为主处理器; 第一状态是唤醒状态,第二状态是休眠状态;第二处理单元220为调制解调器Modem。
本实施例提供的技术方案中,通过终端的第二处理单元(通信功能单元,如 Modem)发送心跳数据包,能够让终端的第一处理单元(主处理单元CPU)长时间处于休眠状 态,从而能够大大节省终端的电能。本方法适用于TCP、UDP等不同协议的数据通道。
实施例三
为维持网络服务器和终端的连接(TCP或UDP),本实施例中,服务器发送一种特殊 的心跳数据包给终端,通过设置特殊的心跳数据包(IP包)的相关参数值,具体为一个预定 的存活期(TTL,Time to live)值,使得该心跳数据包能够通过NAT网关,但是在未到达终 端之前就被丢弃,参照图5。由于该心跳数据包通过了 NAT网关,从而刷新了该网关上的TCP 或者UDP连接通道状态,故维持了服务器和终端之间的连接。
网络服务器发出特殊的数据包,用于维持网络服务器和终端的连接,使得处于休 眠状态的终端既可与网络服务器保持连接,不会因为网络服务器发出的心跳数据包而被唤醒。
参照图6,本实施例提供的一种维持终端与网络服务器连接的方法,包括
S201,网络服务器获取终端到网络服务器之间的“跳数;
网络服务器从接收到的来自终端的数据包中提取终端到网络服务器之间的“跳 数”,假设跳数为K。
S202,终端主动进入休眠后,网络服务器启动心跳数据包发送程序;
在一定时间内,若终端未进行访问网络、浏览网页、下载数据等操作,则该TCP连 接上没有数据传输,终端主处理单元要进入休眠状态。终端主动进入休眠前发送一个指令 给网络服务器,通知网络服务器启动心跳机制,网络服务器收到该指令后进入心跳数据包 发送过程;或者网络服务器发送一个休眠指示给终端,终端则进入休眠,然后网络服务器启 动心跳发送程序;
S203,网络服务器周期性地发送预定的心跳数据包给终端;
具体地,将终端进入休眠前网络服务器发送给终端的最后一个TCP数据包作为心 跳数据,并将该数据包的I P头部中的TTL值被设置为K-I。网络服务器以预定周期重发该 心跳包给终端,由于该数据包的TTL值为K-I,该数据包在通过NAT网关之后,到达终端之前 被丢弃。这样终端的主处理器CPU不会被唤醒,节省了终端的电源。
若网络服务器要发送正常的数据包,则网络服务器停止发送心跳数据包。
若网络服务器收到终端发来的正常数据包,如网络服务请求,则网络服务器中止 该心跳数据包发送过程。
在维持网络服务器和终端的连接(TCP或者UDP)上没有数据传输,网络服务器再 次启动心跳数据包的发送过程,该过程如前所述,在此不再重复。
网络服务器对终端发送来的最新数据包的“跳数”值进行检查,以保证该“跳数” 值总是最新,防止终端的网络环境发生改变后,该“跳数”值出现变化,从而使得心跳机制出T曰O
本实施例提供的技术方案中,通过服务器向终端发送特殊的心跳数据包,使得该 心跳数据包能够通过NAT网关,在未到达终端之前就被丢弃,因而该心跳数据包不会到达 终端,由于该心跳数据包通过了 NAT网关,刷新了该网关上的TCP或者UDP连接通道状态, 故维持了服务器和终端之间的连接。从而使得处于休眠状态的终端既可与网络服务器保持 连接,不会因为网络服务器发出的心跳数据包而被唤醒。这样也就降低了终端待机状态下 的能耗。
实施例四
为维持网络服务器和终端的连接(TCP或UDP),本实施例中,服务器发送一种预定 格式的心跳数据包给终端,该心跳数据包中设置有特定标识位或该心跳数据包具有特定长 度,所述终端对所述心跳数据包不予处理。
在主处理单元休眠时,终端的通信功能单元接收到所述心跳数据包后不唤醒所述 主处理单元。通信功能单元对所述心跳数据包不予处理,如可直接丢弃。
所述心跳数据包在到达终端,通信功能单元根据所述预定长度或特定标识识别所 述心跳数据包;
若确定所接收到的心跳数据包为预定格式心跳数据包,通信功能单元则对所述心 跳数据包不予处理,如可直接丢弃。
参照图7,本实施例提供的一种维持终端与网络服务器连接的方法,包括
S301,终端进入休眠后,网络服务器启动心跳数据包发送程序;
在一定时间内,若终端未进行访问网络、浏览网页、下载数据等操作,则该TCP连 接上没有数据传输,终端主处理单元要进入休眠状态。终端主动进入休眠前发送一个指令 给网络服务器,通知网络服务器启动心跳机制,网络服务器收到该指令后进入心跳数据包 发送过程;或者网络服务器发送一个休眠指示给终端,终端则进入休眠,然后网络服务器启 动心跳发送程序;
S302,网络服务器周期性地发送预定格式的心跳数据包给终端;
具体地,终端进入休眠前网络服务器发送给终端的最后一个TCP数据包,并对该 TCP数据包进行设置,将设置后得到的数据包作为心跳数据。
该预定格式的心跳包按照如下格式构建
该心跳数据包的数据部分长度为0 ;该心跳数据包的其他参数与服务器发送给网 络终端的最后一个TCP数据包完全一致,该数据包的长度为40字节(基本的IP头部数据 加上TCP基本头部数据)。或者,该心跳数据包中设置有特定标识。
S303,心跳数据包到达终端后,不唤醒主处理器;
该心跳数据包发送到终端之后,终端的通信功能单元(如,Modem)根据该心跳数 据包中数据部分长度或特定标识进行识别。Modem对数据包进行检测,若发现该心跳数据包 的数据部分长度为40字节或包含有特定标识,则确定该数据包为预定格式的心跳数据包。 Modem则将该数据包丢弃,而不唤醒上层系统。这样终端的主CPU不会被唤醒,节省了终端 的电源。
实施例五
参照图8,本发明实施例提供一种网络服务器500,包括
数据包生成单元510,用于构建的特定的心跳数据包,该心跳数据包用于维持网络 服务器和终端的连接;
发送单元520,与所述数据包生成单元连接,用于通过网络向所述终端发送所述特 定的心跳数据包;
其中特定的心跳数据包为生存期TTL跳数为K-I的心跳数据包,其中K为所述网 络服务器与所述终端之间连接的跳数;
网络服务器从接收到的来自终端的数据包中提取终端到网络服务器之间的“跳 数” K,数据包生成单元510构建生存期TTL跳数为K-I的心跳数据包。发送单元520将所 构建的心跳数据包发送给通过网络连接的终端。
终端进入休眠后,网络服务器启动心跳数据包发送程序;由于该心跳数据包的 TTL值为K-I,该心跳数据包在通过NAT网关之后,到达终端之前被丢弃。这样终端的主处 理器CPU不会被唤醒,节省了终端的电源。
另外,特定的心跳数据包还可以是具有预定长度或特定标识的心跳数据包。
其中,与网络服务连接的终端包括第一处理单元和第二处理单元,第一处理单元 具有第一状态和第二状态,第二状态的功耗小于第一状态的功耗,在维持网络服务器和该 终端的连接过程中,第一处理单元处于第二状态。第二处理单元与第一处理单元连接,第一 处理单元处于第一状态时的功耗大于第二处理单元的功耗;
该心跳数据包发送到终端之后,终端的第二处理单元根据预定长度或特定标识识 别出该心跳数据包后,不唤醒上层系统,可直接将该数据包丢弃,这样终端的第一处理单元 (主处理器,CPU)处于第二状态,例如第二状态为休眠状态,主处理器不会被唤醒,因此节 省了终端的电源。
本实施例提供的技术方案中,通过服务器向终端发送预定格式的心跳数据包,在 终端的第一处理单元(主处理器)处于休眠状态,终端的通信功能单元对该预定格式的心 跳数据包不进行处理,不将该心跳数据包发送给上层系统,终端的第一处理单元(主处理 器)也就不会被唤醒,使得处于休眠状态的终端既可与网络服务器保持连接,不会因为网 络服务器发出的心跳数据包而被唤醒,这样也就降低了终端的能耗。
显然,本领域的技术人员应该明白,上述的本发明的各单元或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成 的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储 在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们 中的多个单元或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的 硬件和软件结合。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在 本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围 内。
权利要求
1.一种维持终端和网络服务器连接的方法,该终端具有第一处理单元,所述第一处理 单元具有第一状态和第二状态,其中,所述第二状态的功耗小于所述第一状态的功耗,其特 征在于,该方法包括所述终端或网络服务器周期性发送心跳数据包,以维持所述终端和所述网络服务器之 间的连接;其中,所述第一处理单元处于所述第二状态。
2.如权利要求1所述的维持终端和网络服务器连接的方法,其特征在于,该终端还具 有第二处理单元,所述第二处理单元的功耗小于所述第一处理单元处于所述第一状态的功 耗,所述终端周期性发送心跳数据包,包括所述第一处理单元处于所述第二状态时,通过所述第二处理单元周期性发送心跳数据 包给通过网络连接的网络服务器。
3.如权利要求2所述的维持终端和网络服务器连接的方法,其特征在于,所述第一处 理单元进入所述第二状态之前,还包括步骤所述第一处理单元生成所述心跳数据包,并发送给所述第二处理单元。
4.如权利要求3所述的维持终端和网络服务器连接的方法,其特征在于,所述生成心 跳数据包,包括获取所述网络服务器的IP地址和所述终端与所述网络服务器之间连接对应的端口号;获取所述网络服务器发送的数据包中包含的确认号和序列号;利用所述网络服务器的IP地址和所述端口号以及所述确认号和序列号构建TCP数据 包作为心跳数据包。
5.如权利要求2所述的维持终端和网络服务器连接的方法,其特征在于,还包括所述网络服务器接收到所述终端发送的所述心跳数据包后,不发送反馈数据包给所述 终端;或者,所述网络服务器接收到心跳数据包后,发送的反馈数据包在到达所述终端之前 被丢弃;或者,所述网络服务器接收到心跳数据包后,发送的反馈数据包到达所述终端后,不唤 醒所述第一处理单元。
6.如权利要求4所述的维持终端和网络服务器连接的方法,其特征在于,所述心跳数 据包中,所述TCP数据包头部中的序列号为所述第一处理单元进入第二状态之前所述网络 服务器发送的最后一 TCP数据包的确认号;所述TCP数据包头部中的确认号为所述第一处 理单元进入第二状态之前所述网络服务器发送的最后一 TCP数据包的序列号;该方法进一 步包括所述网络服务器接收到所述心跳数据包后,通过识别所述心跳数据包的TCP头部中的 序列号及确认号,确定不发送反馈数据包给所述终端。
7.如权利要求1所述的维持终端和网络服务器连接的方法,其特征在于,所述网络服 务器周期性发送心跳数据包,具体包括所述网络服务器向所述终端发送的心跳数据包,该心跳数据包的生存期TTL跳数值为 K-1,其中K为该网络服务器与所述终端之间连接的跳数。
8.如权利要求1所述的维持终端和网络服务器连接的方法,其特征在于,所述终端还 具有第二处理单元,第二处理单元的功耗小于所述第一处理单元第一状态的功耗,所述网 络服务器周期性发送的心跳数据包,该方法进一步包括当所述第一处理单元处于第二状态时,所述心跳数据包在到达所述终端时,所述第二 处理单元识别所述心跳数据包是否为预订格式心跳数据包;若所述心跳数据包为预定格式心跳数据包时,所述第二处理单元维持所述第一处理单 元处于第二状态。
9.如权利要求8所述的维持终端和网络服务器连接的方法,所述预定格式心跳数据包 为具有预定长度的心跳数据包或具有特定标识的心跳数据包。
10.一种终端,其特征在于,包括第一处理单元,所述第一处理单元具有第一状态和第二状态,所述第二状态的功耗小 于所述第一状态的功耗;第二处理单元,与所述第一处理单元连接,所述第一处理单元处于所述第一状态时的 功耗大于第二处理单元的功耗;若所述第一处理单元处于所述第二状态时,所述第二处理单元周期性发送心跳数据包 给通过网络连接的网络服务器,以维持所述终端和所述网络服务器之间的连接。
11.如权利要求10所述的终端,其特征在于,所述第一处理单元包括数据包生成模块,用于生成所述心跳数据包;数据包发送控制模块,用于指示将所述心跳数据包发送给所述第二处理单元。
12.如权利要求11所述的终端,其特征在于,所述数据包生成模块,包括第一信息获取模块,用于获取所述网络服务器的IP地址和所述终端与所述网络服务 器之间对应的端口号;第二信息获取模块,用于获取所述第一处理单元进入第二状态之前所述网络服务器发 送的最后一 TCP数据包的确认号和序列号;数据包构建模块,利用所述网络服务器的IP地址和所述端口号以及所述确认号和序 列号构建TCP数据包作为心跳数据包。
13.如权利要求10所述的终端,其特征在于,所述第一处理单元为主处理器,其中,所述第一状态是唤醒状态,所述第二状态是休眠 状态;所述第二处理单元为调制解调器。
14.一种网络服务器,其特征在于,包括数据包生成单元,用于构建的特定的心跳数据包,所述心跳数据包用于维持网络服务 器和终端的连接;发送单元,与所述数据包生成单元连接,用于通过网络向所述终端发送所述特定的心 跳数据包;其中,所述终端包括第一处理单元,所述第一处理单元具有第一状态和第二状态,所述 第二状态的功耗小于所述第一状态的功耗,在所述维持所述网络服务器和所述终端的连接 过程中,所述第一处理单元处于所述第二状态。
15.如权利要求14所述的网络服务器,其特征在于,所述特定的心跳数据包为生存期TTL跳数为K-I的心跳数据包,其中K为所述网络服务器与所述终端之间连接 的跳数;或具有预定长度或特定标识的心跳数据包。
全文摘要
本发明公开了维持终端和网络服务器连接的方法,该终端具有第一处理单元,第一处理单元具有第一状态和第二状态,其中,第二状态的功耗小于第一状态的功耗,包括第一处理单元处于第二状态,终端或网络服务器周期性发送心跳数据包,以维持所述终端和所述网络服务器之间的连接。根据本发明,在终端或网络服务器周期性发送心跳数据包期间,终端的主处理器也就不会被唤醒,从而使得处于休眠状态的终端既可与网络服务器保持连接,不会因为网络服务器发出的心跳数据包而被唤醒,因此可降低终端的能耗。
文档编号H04W76/04GK102036349SQ20091023557
公开日2011年4月27日 申请日期2009年9月29日 优先权日2009年9月29日
发明者庄艺唐, 李小丁, 王辉, 田永振 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1