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

技术编号:5199215 阅读:243 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了维持终端和网络服务器连接的方法,该终端具有第一处理单元,第一处理单元具有第一状态和第二状态,其中,第二状态的功耗小于第一状态的功耗,包括:第一处理单元处于第二状态,终端或网络服务器周期性发送心跳数据包,以维持所述终端和所述网络服务器之间的连接。根据本发明专利技术,在终端或网络服务器周期性发送心跳数据包期间,终端的主处理器也就不会被唤醒,从而使得处于休眠状态的终端既可与网络服务器保持连接,不会因为网络服务器发出的心跳数据包而被唤醒,因此可降低终端的能耗。

【技术实现步骤摘要】

本专利技术涉及通信及网络
,具体涉及维持终端和网络服务器连接的方法、 终端及网络服务器。
技术介绍
便携设备(如手机、便携电脑等终端)通过无线网络(如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为该网络服务器与所述终端之间连接的跳数。或者,网络服务器向向通过网络连本文档来自技高网
...

【技术保护点】
一种维持终端和网络服务器连接的方法,该终端具有第一处理单元,所述第一处理单元具有第一状态和第二状态,其中,所述第二状态的功耗小于所述第一状态的功耗,其特征在于,该方法包括:  所述终端或网络服务器周期性发送心跳数据包,以维持所述终端和所述网络服务器之间的连接;  其中,所述第一处理单元处于所述第二状态。

【技术特征摘要】
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所述的维持终端和网络服务器连接的方法,其特征在于,...

【专利技术属性】
技术研发人员:王辉田永振李小丁庄艺唐
申请(专利权)人:联想北京有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利