一种实现移动终端信息推送的系统及方法

文档序号:7719092阅读:164来源:国知局
专利名称:一种实现移动终端信息推送的系统及方法
技术领域
本发明涉及一种实现移动终端信息推送的系统及方法,特别是一种在不增加移动终端耗电量的情况下,实现移动终端信息推送。
背景技术
众所周知,IPV4网络中可用地址属于稀有资源,所以不可能为每部需要上网的移动终端分配一个有效的公网IP地址。移动终端上网时,移动网络为移动终端分配一个内网IP地址,然后通过NAPT(网络端口地址转换)实现与公网服务器的通信。NAPT为每一 fkssion分配一个NAPT自己的端口号,依据此端口号来判断将收到的公网IP主机返回的TCP/IP数据包转发给那台内网IP地址的计算机。在这里kssion是虚拟的,UDP通讯并不需要建立连接,但是对于NAPT而言,的确要有一个kssion的概念存在。对于NAPT,其可用的端口也是有限的,当移动终端与外网服务器的通信结束或者数据交换超时后,NAPT 就会把当前会话的session从session表中删除以释放端口资源。如果移动终端与服务器之间长时间没有数据交换,那么NAPT就会认为该会话已经结束,就会删除session,释放端口,如果此后服务器需要发送数据给这个移动终端,服务器发送给移动终端的数据包就会被NAPT丢弃,数据也就无法发送给移动终端。这些数据只能在服务器上缓存,等待移动终端下一次与服务器建立连接再发送。目前移动终端实现信息推送(PUSH),只能通过长连接的方式实现,就是移动终端与服务器之间保持一个数据连接。这个连接的保持使得服务器在有信息协议发送给移动终端的时候,能够立即通过这个连接实现。如果要让服务器随时可以发送数据给移动终端,那么移动终端与服务器之间的数据连接就必须保持活跃,使得NAPT认为数据交换尚在进行中,一直在NAPT的session表中保持这个session。要做到这一点,移动终端就必须在一定的间隔时间内,向服务器发送一个数据包(ke印alive),让NAPT意识到,当前连接是活动的,这样的数据包即便移动终端与服务器没有数据需要交换,也必须定时发送。定时的间隔应当小于NAPT的session超时时间。如果不实现push功能,移动终端只需要在用户使用移动终端的时候醒来,其余大部分时间处于耗电极低的睡眠状态,而定时发送keep alive, 就会唤醒移动终端,增加移动终端的耗电量。如何使得push功能实现,而又不增加移动终端的耗电量,是目前所需要解决的问题。

发明内容
为此,本发明的目的在于提供一种实现移动终端信息推送的系统及方法,在不增加移动终端耗电量的情况下,实现移动终端信息推送。为实现上述目的,本发明主要采用以下技术方案一种实现移动终端信息推送的系统,包括有多个目标服务器和多个移动终端,所述目标服务器位于公网中,移动终端位于内网中,其中还包括—推送服务器,位于公网中,通过公网与目标服务器连接,用于接收来自目标服务
3器的通知,并将该通知发送给相应的移动终端;一 NATP网关,一端连接公网,另一端连接内网,用于将位于内网中移动终端的IP 地址转化成可连接到公网推送服务器的IP地址;一心跳代理服务器,连接到NATP网关,并通过NATP网关与公网中的推送服务器建立永久性的TCP连接;所述移动终端通过NATP网关建立与推送服务器的连接通道,并在推送服务器上注册该移动终端的IP地址,心跳代理服务器通过NATP网关在推送服务器上获取上述移动终端的IP地址,根据该IP地址建立相应的心跳数据包,并以该IP地址通过NATP网关向推送服务器发送心跳数据包,推送服务器对接收到的心跳数据包不应答,并通过NATP网关向对应移动终端发送数据包。其中所述移动终端通过NATP网关与推送服务器建立的连接通道为UDP推送通道。其中所述移动终端为手机、笔记本电脑或PDA。另外本发明还提供了一种实现移动终端信息推送的方法,其中具体包括步骤A、移动终端通过NATP网关建立与推送服务器的连接,并在推送服务器上注册该移动终端的IP地址;B、心跳代理服务器通过NATP网关建立与推送服务器的连接,并获取上述移动终端的IP地址;C、心跳代理服务器建立与上述移动终端IP地址匹配的心跳数据包,并通过NATP 网关发送到推送服务器;D、推送服务器通过NATP网关向移动终端发送数据包。其中所述步骤A包括移动终端通过NATP网关与推送服务器建立的连接通道是基于UDP方式的推送通道。其中所述步骤B包括心跳代理服务器通过NATP网关与推送服务器建立的连接通道是基于TCP方式的推送通道。其中所述步骤C和步骤D之间还包括推送服务器对来自心跳代理服务器的心跳数据包不应答。本发明通过心跳代理服务器建立与推送服务器的永久性的TCP连接,并代替位于内网中的已经注册的移动终端向推送服务器发送心跳数据包,并始终保持发送,推送服务器接收到心跳数据包不做应答,并在需要时向与注册的移动终端发送数据包。与传统信息推送采用的长连接相比,本发明整个过程移动终端都是处于休眠状态,不消耗电量,仅由心跳代理服务器代替其向推送服务器发送心跳数据包,以表明移动终端与推送服务器之间的通道处于连通状态,而由于心跳代理服务器为固定设备,其对功耗不敏感,因此本发明在不增加移动终端耗电量的情况下,实现了移动终端的信息推送。


图1为本发明的系统框图。图2为本发明的工作流程图。
具体实施例方式为阐述本发明的思想及目的,下面将结合附图和具体实施例对本发明做进一步的说明。请参见图1所示,图1为本发明的系统框图。本发明提供了一种实现移动终端信息推送的系统,该系统包括有多个目标服务器和多个移动终端,其中还包括推送服务器、 心跳代理服务器、NAPT (网络地址端口转换网关器)网关、DHCP服务器、移动上网设备和基站。推送服务器,位于公网中,通过公网与目标服务器连接,用于接收来自目标服务器的通知,并将该通知发送给相应的移动终端,其中这里的目标服务器可对应各个不同网站服务器。NAPT网关,一端连接到内网,一端连接到公网,用于将来自内网的移动终端IP地址转换成可连接到公网的IP地址,实现移动终端与推送服务器、目标服务器的连接。心跳代理服务器,连接到NATP网关,并通过NATP网关与公网中的推送服务器建立永久性的TCP连接;所述移动终端通过NATP网关建立与推送服务器的连接通道,并在推送服务器上注册该移动终端的IP地址,心跳代理服务器通过NATP网关在推送服务器上获取上述移动终端的IP地址,根据该IP地址建立相应的心跳数据包,并以该IP地址通过NATP网关向推送服务器发送心跳数据包,推送服务器对接收到的心跳数据包不应答,并通过NATP网关向对应移动终端发送数据包。移动终端与推送服务器之间的连接通道采用UDP协议,推送服务器通过NAPT网关与移动终端连接,DHCP服务器与移动终端连接,所述NAPT网关连接有基站,通过该基站接收来自移动终端的数据包。心跳代理服务器与推送服务器建立永久性的TCP连接,利用该连接接收推送服务器发来的clientIP-NAPT_interIP记录对,并对于记录下来的每个clientIP_NAPT_ interIP记录对,间隔一定的时间(必须小于NAPT的session超时时间,由于UDP连接为不可靠连接,考虑到可能发生丢包现象,应该把该时间间隔设置为NAPT超时时间的三分之一,NAPT的session超时时间应当设计另外的协议进行测量。),将该IP包发送出去,这个包将被发送到NAPT,用于更新NAPT的session表中相应的记录。最终这个包将被推送服务器接收到并丢弃。推送服务器必须不响应心跳代理发来的心跳包,否则响应包将被发到移动终端而把移动终端唤醒。推送服务器等待心跳代理服务器的TCP连接请求,完成连接后,则与心跳代理保持永久性通信;在服务端口等待其他服务器的TCP连接请求,当其他的服务器有信息相应发给移动终端的时候,就请求与推送服务器建立连接,并将通知发送给推送服务器,要求推送服务器将该通知发送到相应的移动终端。推送服务器将通知发送到相应的移动终端;在服务端口等待移动终端推送用户端的UDP连接请求,当收到推送用户端的连接请求后,进行以下工作根据该移动终端的IP地址从数据库中查找(ClientIP-NAPTjnterJP)记录;如果找到,检查数据库中记录中的NAPT_inter_IP与当前请求中的NAPT_inter_IP是否一致,不一致则更新数据库中的记录,并利用与心跳代理的永久性TCP通道将该记录发送给心跳代理;如果没有找到,则在数据库中创建该记录,同时将该记录发送给心跳代理。推送用户端的功能如下每次移动终端启动(不是睡眠)后,主动发起与推送服务器的数据连接(建立push通道),该通道使用UDP方式。推送用户端将移动终端IP地址 clientIP, NAPT地址,移动终端号码,邮箱地址,QQ号码,微博用户名等信息发送给推送服务器。如果此时服务器有信息要发送给该移动终端,则推送服务器通过此连接将通知发送给移动终端。移动终端再与相应的服务器建立TCP或者UDP连接去获取信息,完成通道建立并接收完推送服务器现存的所有通知后,推送用户端以阻塞方式进入数据接收状态,直到推送服务器有通知到来,如果推送服务器有通知到来,则推送用户端分析该通知,以得知应当连接哪个服务器读取信息,然后与相应的服务器建立连接,获取信息。如果服务器有信息要发送到某个移动终端,则该服务器首先向推送服务器发送一个通知。推送服务器则通过推送通道将该通知发送到移动终端。移动终端收到通知后,主动与相应的服务器建立连接(TCP或者UDP都可以,与本方案无关),获取相应的信息。因为这次通信总是由移动终端主动发起的,所以总是能够实现。Push通道的建立和保持使用以下方法移动终端与推送服务器之间,心跳代理发送的心跳包都必须使用UDP协议。使用 UDP而不是TCP的原因是如果移动终端与推送服务器使用TCP协议建立长连接通道,那么心跳代理就只能通过发送伪造了移动终端的clientIP的TCP SYN包来保持长连接通道,这些SYN包对于推送服务器相当于SYNf Iood攻击,而每个SYN,推送服务器的协议栈都将自动给出响应准备建立TCP连接。而这个响应将被移动终端接收从而唤醒移动终端。另外本发明还提供了一种实现移动终端信息推送的方法,请参见图2,其具体包括步骤A、移动终端通过NATP网关建立与推送服务器的连接,并在推送服务器上注册该移动终端的IP地址;移动终端通过NATP网关与推送服务器建立的连接通道是基于UDP方式的推送通道。这里的移动终端为多个,包括手机、PDA、笔记本电脑等,具有无线上网(WIFI)功能,且每一个移动终端所对应的IP地址不同,其通过基站与NATP网关连接,通过NATP网关建立与推送服务器的连接,当与推送服务器建立连接后,该移动终端将分配到自己的IP地址相应的注册在推送服务器上,与NATP网关形成映射关系。B、心跳代理服务器通过NATP网关建立与推送服务器的连接,并获取上述移动终端的IP地址;心跳代理服务器通过NATP网关与推送服务器建立的连接通道是基于TCP方式的推送通道。C、心跳代理服务器建立与上述移动终端IP地址匹配的心跳数据包,并通过NATP 网关发送到推送服务器;心跳代理服务器位于内网中,属于固定的设备,可通过上网设备与NATP网关连接,由NATP网关建立与推送服务器的TCP连接,当心跳代理服务器与推送服务器建立连接
6后,心跳代理服务器就将推送服务器上经过注册的移动终端IP地址获取,并建立以该IP地址为发送端的心跳数据包,代替该IP地址移动终端向推送服务器发送心跳包。比如内网中移动终端的实际IP地址为192. 168. 0. 10,此时该移动终端将该IP地址192. 168. 0. 10注册到推送服务器上,而心跳代理服务器对应获取192. 168. 0. 10的IP地址,并以该IP地址发送伪造的数据包,代替实际IP地址的移动终端向推送服务器发送心跳数据包。推送服务器对来自心跳代理服务器的心跳数据包不应答,直接丢弃,但是推送服务器认为该数据包是来自实际IP地址的移动终端,并在有来自目标服务器的消息时,及时发送给正处于休眠状态的移动终端。D、推送服务器通过NATP网关向移动终端发送数据包。以上是对本发明所提供的一种实现移动终端信息推送的系统及方法进行了详细的介绍,本文中应用了具体个例对本发明的结构原理及实施方式进行了阐述,以上实施例只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种实现移动终端信息推送的系统,包括有多个目标服务器和多个移动终端,所述目标服务器位于公网中,移动终端位于内网中,其特征在于还包括一推送服务器,位于公网中,通过公网与目标服务器连接,用于接收来自目标服务器的通知,并将该通知发送给相应的移动终端;一 NATP网关,一端连接公网,另一端连接内网,用于将位于内网中移动终端的IP地址转化成可连接到公网推送服务器的IP地址;一心跳代理服务器,连接到NATP网关,并通过NATP网关与公网中的推送服务器建立永久性的TCP连接;所述移动终端通过NATP网关建立与推送服务器的连接通道,并在推送服务器上注册该移动终端的IP地址,心跳代理服务器通过NATP网关在推送服务器上获取上述移动终端的IP地址,根据该IP地址建立相应的心跳数据包,并以该IP地址通过NATP网关向推送服务器发送心跳数据包,推送服务器对接收到的心跳数据包不应答,并通过NATP网关向对应移动终端发送数据包。
2.根据权利要求1所述的实现移动终端信息推送的系统,其特征在于所述移动终端通过NATP网关与推送服务器建立的连接通道为UDP推送通道。
3.根据权利要求1所述的实现移动终端信息推送的系统,其特征在于所述移动终端为手机、笔记本电脑或PDA。
4.一种实现移动终端信息推送的方法,其特征在于包括步骤A、移动终端通过NATP网关建立与推送服务器的连接,并在推送服务器上注册该移动终端的IP地址;B、心跳代理服务器通过NATP网关建立与推送服务器的连接,并获取上述移动终端的 IP地址;C、心跳代理服务器建立与上述移动终端IP地址匹配的心跳数据包,并通过NATP网关发送到推送服务器;D、推送服务器通过NATP网关向移动终端发送数据包。
5.根据权利要求4所述的实现移动终端信息推送的方法,其特征在于所述步骤A包括移动终端通过NATP网关与推送服务器建立的连接通道是基于UDP方式的推送通道。
6.根据权利要求4所述的实现移动终端信息推送的方法,其特征在于所述步骤B包括心跳代理服务器通过NATP网关与推送服务器建立的连接通道是基于TCP方式的推送通道。
7.根据权利要求4所述的实现移动终端信息推送的方法,其特征在于所述步骤C和步骤D之间还包括推送服务器对来自心跳代理服务器的心跳数据包不应答。
全文摘要
本发明公开了一种实现移动终端信息推送的系统及方法,该系统通过心跳代理服务器建立与推送服务器的永久性的TCP连接,并代替位于内网中的已经注册的移动终端向推送服务器发送心跳数据包,并始终保持发送,推送服务器接收到心跳数据包不做应答,并在需要时向与注册的移动终端发送数据包。与传统信息推送采用的长连接相比,本发明整个过程移动终端都是处于休眠状态,不消耗电量,仅由心跳代理服务器代替其向推送服务器发送心跳数据包,以表明移动终端与推送服务器之间的通道处于连通状态,而由于心跳代理服务器为固定设备,其对功耗不敏感,因此本发明在不增加移动终端耗电量的情况下,实现了移动终端的信息推送。
文档编号H04W80/06GK102209302SQ201110190049
公开日2011年10月5日 申请日期2011年7月7日 优先权日2011年7月7日
发明者刘立荣, 杨建成 申请人:深圳市金立通信设备有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1