一种支持数据报文主动推送能力的实现方法及系统 【技术领域】
本发明涉及通信技术领域, 尤其涉及一种支持数据报文主动推送能力的实现方法及系统。 背景技术 在现有因特网上部署着大量的业务服务器, 为广大因特网用户提供丰富多彩的业 务。例如 : 提供新闻资讯的 WEB 服务器, 提供联网游戏的游戏服务器, 提供海量搜索服务的 搜索服务器, 等等。这些业务的提供方式一般都是由用户主动去获取服务, 即: 用户使用连 接在因特网上的各类终端 (PC 机、 个人数字助理 (PDA)、 智能手机等, 以下简称为用户终端 ) 主动与因特网上的特定的业务服务器建立通讯连接, 向业务服务器发送特定的业务请求, 然后从业务服务器得到业务响应, 业务响应中包含了用户所需要的各类信息。
这种服务提供方式对某些业务是不合适的。 例如 : 天气预报业务, 用户希望业务服 务器在获得最新的天气预报信息后能主动推送给用户, 而不需要等到用户主动去访问业务
服务器以获取, 等待用户的主动访问会影响天气预报信息的及时性。
现有因特网对这种由业务服务器主动向用户推送数据报文 ( 含用户所需信息 ) 的 功能 ( 以下简称为 PUSH 功能, 由服务器主动推送的数据报文简称为 PUSH 数据报文 ) 是不 支持的, 其原因在于因特网上的通信是用 IP 地址来标识数据报文的收发端, 用户访问业务 服务器时可通过 DNS 功能获取业务服务器的 IP 地址, 但用户终端连接因特网时获取到的 IP 地址是由因特网接入运营商动态分配的, 若用户终端没有主动去连接业务服务器, 则业务 服务器无法获得特定用户的用户终端的 IP 地址, 无法主动向用户终端发送 PUSH 数据报文。
现有因特网技术中一种折中的解决方案是 : 用户终端连入因特网后, 即向特定的 业务服务器发送登录请求, 由业务服务器记录下用户终端当前所用的 IP 地址 ; 一旦业务服 务器有需要主动向用户推送的信息, 即使用所记录的用户终端 IP 地址进行 PUSH 数据报文 的发送。
这种方案的缺陷在于 : 如果用户有着很多需要主动推送数据报文的业务 ( 分别由 不同的业务服务器提供 ), 则需要在用户终端连入因特网后向不同的业务服务器分别发送 登录消息 ( 其中还涉及鉴权认证等过程 ) ; 一旦用户意外掉网后重连, IP 地址发生变化, 就需要重新进行登录 ; 如果业务服务器在用户连网期间发生异常, 丢失用户终端 IP 地址信 息, 则无法进行 PUSH 数据报文的发送。 发明内容
本发明要解决的技术问题是提供一种支持数据报文主动推送能力的实现方法和 系统, 增强对数据报文主动推送能力的支持。
为了解决上述问题, 本发明提供了一种支持数据报文主动推送能力的实现方法, 该方法应用于基于身份标识和位置分离框架的系统, 包括 :
第一主机节点从映射转发平面获取第二主机节点的在线或离线状态信息, 根据所述在线或离线状态信息向所述第二主机节点推送数据报文。
进一步地, 上述方法还可具有以下特点, 所述第一主机节点根据所述在线或离线 状态信息向第二主机节点推送数据报文包括 :
第一主机节点需向第二主机节点推送数据报文时, 判断第二主机节点的状态, 如 果所述第二主机节点处于在线状态, 则向所述第二主机节点推送所述数据报文 ; 如果所述 第二主机节点处于离线状态, 则第一主机节点保存该数据报文, 在获知所述第二主机节点 上线后, 向所述第二主机节点推送所述数据报文。
进一步地, 上述方法还可具有以下特点, 所述第一主机节点通过如下方式获取第 二主机节点的在线或离线状态信息 :
第一主机节点向其所在的第一接入服务节点发送用户状态订阅消息, 消息中包含 第二主机节点的身份标识 ;
接入服务器节点将所述用户状态订阅消息转发给映射转发平面 ;
映射转发平面在第二主机节点的在线状态发生变化时, 发送状态变化通知消息给 所述第一主机节点。
进一步地, 上述方法还可具有以下特点, 所述第一主机节点向所述第二主机节点 推送所述数据报文包括 :
所述第一主机节点将需推送给第二主机节点的数据报文发送给其所在的第一接 入服务节点, 所述数据报文中包含所述第二主机节点的身份标识 ;
所述第一接入服务节点收到所述数据报文后, 如果在本地查询到所述第二主机节 点的身份标识对应的位置标识, 则将所述位置标识添加到所述数据报文中, 将所述数据报 文发送至广义转发平面 ; 如果在本地没有查询到所述第二主机节点的身份标识对应的位置 标识, 则将所述数据报文封装后发送至映射转发平面, 所述映射转发平面收到所述数据报 文后, 查询所述第二主机节点的身份标识对应的位置标识, 并将所述位置标识添加到所述 数据报文中, 转发所述数据报文至广义转发平面 ;
所述广义转发平面将所述数据报文转发至所述第二主机节点所在的第二接入服 务节点, 所述第二接入服务节点将所述数据报文发送给所述第二主机节点。
进一步地, 上述方法还可具有以下特点, 所述第一主机节点为业务服务器或用户 终端, 所述第二主机节点为业务服务器或用户终端。
本发明还提供一种支持数据报文主动推送能力的实现系统, 该系统为基于身份标 识和位置分离框架的系统, 所述系统中包括第一主机节点、 第二主机节点和映射转发平面, 其中 :
所述第一主机节点, 用于从映射转发平面获取第二主机节点的在线或离线状态信 息, 根据所述在线或离线状态信息向所述第二主机节点推送数据报文。
进一步地, 上述系统还可具有以下特点, 所述第一主机节点, 用于在需向第二主机 节点推送数据报文时, 判断第二主机节点的状态, 如果所述第二主机节点处于在线状态, 则 向所述第二主机节点推送所述数据报文 ; 如果所述第二主机节点处于离线状态, 则第一主 机节点保存该数据报文, 在获知所述第二主机节点上线后, 向所述第二主机节点推送所述 数据报文。
进一步地, 上述系统还可具有以下特点, 所述系统还包括第一接入服务节点, 其中: 所述第一主机节点, 还用于向其所在的第一接入服务节点发送用户状态订阅消 息, 消息中包含第二主机节点的身份标识 ;
所述第一接入服务节点, 用于将所述用户状态订阅消息转发给映射转发平面 ;
所述映射转发平面, 用于在收到所述用户状态订阅消息后, 在第二主机节点的在 线状态发生变化时, 发送状态变化通知消息给所述第一主机节点。
进一步地, 上述系统还可具有以下特点, 所述系统中还包括第一接入服务节点、 广 义转发平面和第二接入服务节点, 其中 :
所述第一主机节点, 还用于将需推送给第二主机节点的数据报文发送给其所在的 第一接入服务节点, 所述数据报文中包含所述第二主机节点的身份标识 ;
所述第一接入服务节点, 用于收到所述数据报文后, 如果在本地查询到所述第二 主机节点的身份标识对应的位置标识, 则将所述位置标识添加到所述数据报文中, 将所述 数据报文发送至广义转发平面 ; 如果在本地没有查询到所述第二主机节点的身份标识对应 的位置标识, 则将所述数据报文封装后发送至映射转发平面 ;
所述映射转发平面, 用于收到所述数据报文后, 查询所述第二主机节点的身份标 识对应的位置标识, 将所述位置标识添加到所述数据报文中, 转发所述数据报文至广义转 发平面 ;
所述广义转发平面, 用于将所述数据报文转发至所述第二主机节点所在的第二接 入服务节点 ;
所述第二接入服务节点, 用于将所述数据报文发送给所述第二主机节点。
进一步地, 上述系统还可具有以下特点, 所述第一主机节点为业务服务器或用户 终端, 所述第二主机节点为业务服务器或用户终端。
与现有技术相比, 本发明具有如下有益效果 :
本发明提供了一种支持数据报文主动推送能力的实现方法和系统, 支持在用户终 端不在线情况下的数据报文主动推送能力, 满足用户终端为移动节点情况下的特点, 节约 网络传送能力, 减少业务服务器的重试工作, 并使用户终端可以及时收到所需的数据报文。
附图说明
图 1 为现有的基于身份标识和位置分离架构的网络拓扑示意图 ;
图 2 为本发明基于身份标识和位置分离架构的相关接口及数据推送功能示意图 ;
图 3 为本发明采用的一种网络改进架构的实施例示意图 ;
图 4 为本发明采用的另一种网络改进架构的实施例示意图 ;
图 5 为本发明采用的第三种网络改进架构的实施例示意图 ;
图 6 为本发明采用的第四种网络改进架构的实施例示意图。 具体实施方式
下面将结合附图及实施例对本发明进行更详细的说明。
现 有 技 术 中 IP 地 址 的 语 义 过 载 缺 陷。 现 有 因 特 网 广 泛 使 用 的 TCP/ IP(Transmission Control Protocol/Internet Protocol, 传输控制协议 / 互联网络协议 )协议中 IP 地址具有双重功能, 既作为网络层的通信终端主机网络接口在网络拓扑中的位 置标识, 又作为传输层主机网络接口的身份标识。TCP/IP 协议在设计之初并未考虑通信终 端移动的情况, 一旦通信终端位置发生变化, IP 地址即可能改变, 致使身份标识也随之改 变。当通信主机移动越来越普遍时, 这种 IP 地址的语义过载缺陷日益明显。例如, 如前所 述, 特定用户的用户终端的 IP 地址是可变的, 业务服务器只有随时掌握用户终端当前的 IP 地址, 才能实现 PUSH 功能。
本发明提供了身份标识和位置分离的思路, 将 IP 地址原有的双重功能进行分离, 位置标识与身份标识采用不同的标识, 例如, 位置标识仍采用 IP 地址, 身份标识采用另外 定义的主机标识。 对于同一用户终端, 其位置标识可能随接入点位置、 接入时间等因素而改 变, 但其身份标识可保持不变, 业务层只使用通信终端的身份标识建立端到端通信, 不关心 位置标识的变化。 这样, 业务服务器只要获知特定用户的用户终端的身份标识, 即可向其推 送数据报文。数据报文如何送到正确的用户终端所在位置, 由身份标识和位置分离的具体 解决方案来实现。
本发明的一种支持数据报文主动推送的身份标识和位置分离的解决方案如下 :
该解决方案的核心思想是 : 将网络划分为接入层和核心层, 为网络中的每个用户 ( 包括业务服务器和用户终端 ) 分配唯一的主机身份标识 (AID : Access Identifier), 该主 机身份标识具有唯一性, 在移动过程中始终保持不变 ; 网络中有两种标识类型 : 主机身份 标识 (AID) 和位置路由标识 (RID : Routing Identifier), 其中主机身份标识只能在接入层 使用, 位置路由标识只能在核心层使用。 该解决方案提出的网络架构的拓扑示意图如图 1 所示, 将网络划分为接入网和骨 干网, 接入网负责提供并维护主机节点 ( 包括用户终端和业务服务器, 按移动能力可分为 固定节点、 游牧节点、 移动节点, 业务服务器一般为固定节点 ) 到接入服务节点 (ASN) 之间 的二层链路 ; 骨干网又分为两个逻辑上独立的功能平面 : 映射转发平面和广义转发平面, 主要负责通过不同的接入网接入的主机节点之间收发的数据报文的路由。
接入服务节点 (ASN) 位于骨干网和接入网的分界点, 分别与接入网及骨干网接 口, 为各类主机节点分配 RID、 提供接入服务, 维护主机节点连接, 维护 / 查询通讯对端的 AID-RID 映射关系, 转发主机节点数据。 接入网与骨干网在拓扑关系上没有重叠。 在接入网 部分, 主机节点使用 AID 进行寻址。
映射转发平面中, ILR(Identity Location Register, 身份位置寄存器 ) 负责维护 / 保存网络中用户的 AID-RID 映射关系, 实现主机节点的登记注册功能, 处理通信对端主机 节点的位置查询流程, 并通过数据配置或路由同步的方式形成 AID 的路由表。PTF(Packet Transfer Function, 分组转发功能 ) 负责转发以 AID 标识为目的地址的数据报文。PTF 与 ILR 共享网络中用户的 AID-RID 映射关系, 两者可以位于同一物理实体。在映射转发平面 中, 众多 ILR/PTF 设备采用 DHT 算法进行分布式存储与处理, 从而具有极高的可靠性和极强 的存储 / 处理能力。
广义转发平面的主要功能是根据数据报文中的 RID 进行选路和转发数据报文。其 中, 通用交换路由器 (General Switch Router, 简称 GSR) 主要用于路由并转发以 RID 为目 的地址的数据报文。
上述基于网络的身份标识和位置分离架构的相关接口如图 2 所示, S1/D1 是主机
节点与 ASN 之间的控制信令 / 用户数据接口。S1 是用于主机节点接入管理的信令接口, D1 是数据转发和接收的接口。
D1 接口的数据报文格式为 :
二层报头
源 AID目的 AID数据报文净荷D3 是与广义转发平面对外的接口, D3 接口的数据报文格式为 :二层报头 源 RID 目的 RID 源 AID 目的 AID 数据报文净荷
S4 是 ASN 与映射转发平面间的信令接口, 主要用于查询和维护 AID-RID 映射关系。 D4m 是 ASN 与映射转发平面间的数据转发接口, D4m 接口的数据报文格式为 :二层报头 源 RID RIDm 源 AID 目的 AID 数据报文净荷其中, 源 RID 对应源 AID, RIDm 是与 ASN 连接的映射转发平面中 ILR/PTF 的路由地 址, 该路由地址在每个 ASN 上进行配置。
以图 2 为例, 在上述网络架构下业务服务器 ( 连接于 ASN2) 主动向用户终端 ( 连 接于 ASN1) 推送数据报文的实现过程如下 :
步骤 201, 用户终端 ( 主机身份标识为 AID1) 开机后连接接入服务节点 ASN1, ASN1 为用户终端分配位置路由标识 RID1, 向映射转发平面中的 ILR 发起注册流程, ILR 处理用户 终端的注册流程, 并保存注册信息中 AID1-RID1 的映射关系。本文中称用户终端的上述过 程为上线过程, 完成连接和注册后用户所处的状态为在线状态。 相反情况下, 用户终端没有 接入任何服务节点的状态称为离线状态或不在线状态。
步骤 202, 业务服务器 ( 主机身份标识为 AIDs) 连接接入服务节点 ASN2, ASN2 为 业务服务器分配位置路由标识 RIDs, 并向映射转发平面中的 ILR 发起注册流程, ILR 保存注 册信息中 AIDs-RIDs 的映射关系。此时, 业务服务器同样处于在线状态。
步骤 201, 202 之间无先后顺序关系。
步骤 203, 当业务服务器需要主动向用户终端 (AID1) 推送数据报文时, 业务服务 器先对数据报文进行封装, 设置目的地址为 AID1, 源地址为 AIDs, 然后将此数据报文发送 给 ASN2。
ASN2 收到业务服务器发出的以 AID1 为目的地址的数据报文 ( 遵循 D1 接口数据报 文格式 ) 后, 根据 AID1 查询本地缓存的 AID-RID 映射关系表, 如果查到 AID1-RID1 的映射关 系, 则在数据报文中增加 RID1 信息 ( 作为目的 RID) 和 RIDs 信息 ( 作为源 RID), 将数据报 文转换为 D3 接口报文格式, 并发送至广义转发平面进行转发 ; 如果在本地缓存的 AID-RID 映射关系表中没有查到 AID1-RID1 映射关系, 则 ASN2 在数据报文头部增加 RIDm( 作为目的 RID) 和 RIDs 信息 ( 作为源 RID), 将数据报文转换为 D4m 接口报文格式后, 发送给映射转发 平面进行处理 ; 映射转发平面在收到 ASN2 送达的数据报文后, 根据数据报文中的目的 AID1 进行选路, 路由到对应的 ILR/PTF 节点, PTF 节点在查到目的 AID1-RID1 的映射关系后, 在 数据报文中以 RID1 信息替换掉 RIDm 信息并通过 D3 接口转发到广义转发平面内 ;
广义转发平面收到来自 ASN2 或映射转发平面的数据报文后, 以数据报文中的目 的 RID1 为路由标识, 将数据报文发送至用户终端所在的 ASN1 ;
ASN1 收到广义转发平面发送的数据报文后, 剥离外层的 RID 信息 ( 包括 RID1 和 RIDs) 后, 按 D1 接口数据报文格式发送给用户终端。
上述流程即实现了业务服务器主动向用户终端推送数据报文的功能。
下面进一步说明支持用户终端不在线的业务服务器主动推送的实现方案。
方案 1 :
如图 3 所示, 本发明在图 2 所示身份标识和位置分离架构的基础上, 部署 PUSH 能 力服务器, PUSH 能力服务器为特定一组用户提供 PUSH 能力服务, 位于主机节点的位置。图 中 PUSH 能力服务器连接于 ASN3, 且为图中连接于 ASN1 的用户终端提供 PUSH 能力服务。
业务服务器在需向用户终端 (AID1) 主动推送数据报文时, 设置数据报文的目的 地址为该用户终端服务的 PUSH 能力服务器的 AID(AIDp)(AID1 则包含在数据报文的净荷或 其他字段中, 具体格式不在本发明中规定 )。业务服务器发出的 PUSH 数据报文经 ASN2、 映 射转发平面、 广义转发平面到达 PUSH 能力服务器。PUSH 能力服务器接收此 PUSH 数据报文 后, 由其负责向用户终端转发。
若用户终端处于离线状态, 则 PUSH 能力服务器向用户终端发送 PUSH 数据报文失 败, PUSH 能力服务器对 PUSH 数据报文进行存储, 以待后续重新尝试发送。
当 PUSH 能力服务器获知用户终端上线后, 取出存储的 PUSH 数据报文, 发送给此用 户终端。
本实施例中, PUSH 能力服务器获知用户终端是否上线的方法如下 :
当用户终端上线后, 用户终端主动向为其提供服务的 PUSH 能力服务器发送上线 通知消息报文 ( 目的 AID 为 AIDp)。此时, PUSH 能力服务器可将其所存储的、 尚未发送成功 的 PUSH 消息取出, 再度发送给用户终端。
在此方案中, 为减少用户终端发送的上线通知数量, 每个用户终端只有一个对应 的 PUSH 能力服务器, 用户终端和业务服务器均知道此 PUSH 能力服务器的 AIDp。其可能的 解决方案包括 :
(1)PUSH 能力服务器的 AIDp 可根据预设规则由用户终端的 AID 推导得出 ; 例如 : 若 AID1 为数字串, 则将 AID1 的最后若干位置为全 0, 作为 PUSH 能力服务器的 AIDp( 此方 法占用少量的 AID 值空间 ) ; 若 AID1 为一个 URL( 如 user1@group1.domain1), 则可以设置 PUSH 能力服务器的 AIDp 为 pushserver@group 1.domain1。
(2) 用户终端自行选择一个 PUSH 能力服务器, 并预先将该 PUSH 能力服务器的 AIDp 提供给业务服务器。 例如, 用户终端在向业务服务器定制天气预报信息时, 除提供自己 的 AID 外, 同时也提供自己所选择的 PUSH 能力服务器的 AIDp, 供业务服务器进行记录。
3) 系统在用户终端处配置其对应的 PUSH 能力服务器, 在业务服务器处配置用户 终端对应的 PUSH 能力服务器。
也可能指定的网络内只配置一个 PUSH 能力服务器。用户终端和业务服务器处均 配置该 PUSH 能力服务器的 AID。
方案 2 :
在图 2 所示身份标识和位置分离架构中, 主机节点在开机上线时, 会向映射转发平面中的 ILR 发起注册流程, 主机节点在离线时, 也会向映射转发平面中的 ILR 发起注销流 程, 因此, 映射转发平面中的 ILR 处具有主机节点的在线 / 离线实时状态。
如图 4 所示, 本发明在图 2 所示身份标识和位置分离架构的基础上, 扩充映射转发 平面的功能, 支持用户终端在线状态的订阅, 具体说明如下 :
业务服务器通过 S1 接口向 ASN2 发送一条用户状态订阅消息 ( 含特定用户终端的 AID), ASN2 收到此消息后, 通过 S4 接口转发至映射转发平面 ; 映射转发平面中的 ILR( 即用 户终端所注册的 ILR) 在该用户终端的在线状态发生变化 ( 如从在线变为离线, 或从离线变 为在线 ) 时, 将通过 S4 接口经 ASN2 向该业务服务器发送一条状态变化通知消息, 该通知消 息中携带用户终端当前的在线 / 离线状态信息。 ILR 在收到用户状态订阅消息时, 也可返回 一响应消息给业务服务器, 响应消息中携带用户终端当前的在线 / 离线状态信息, 在后续 用户终端的状态发生变化时, ILR 发送状态变化通知消息给业务服务器。
业务服务器在掌握特定用户的在线 / 离线状态后, 可以根据用户状态决定是否、 何时向用户主动推送数据报文, 具体包括 :
业务服务器需向用户终端推送数据报文时, 判断用户终端的状态, 若用户处于在 线状态, 则向用户终端进行数据报文的推送 ; 若用户处于离线状态, 则业务服务器不向用户 终端进行数据报文的推送, 保存该数据报文, 在获知用户终端上线后, 向用户终端推送所述 数据报文。 上述实施例也可进行一些变形, 比如, 主机节点
本发明中所用到的 S1 接口与 S4 接口的用户状态订阅消息和用户状态变化通知消 息的具体格式不在本发明中予以具体规定。
本方案无需在网络中部署 PUSH 能力服务器, 业务服务器可掌握用户终端的在线 / 离线状态。
方案 3 :
如图 5 所示, 本发明在图 2 所示身份标识和位置分离架构的基础上, 扩充映射转发 平面的功能, 支持用户终端在线状态的订阅 ; 同时在网络中部署 PUSH 能力服务器。图 5 中, PUSH 能力服务器连接于 ASN3, 具体流程如下 :
首先, 采用与发明方案 1 相同的步骤, 业务服务器在需向用户终端 (AID1) 主 动推送数据报文时, 设置数据报文的目的地址为该用户终端服务的 PUSH 能力服务器的 AID(AIDp), 将 PUSH 数据报文发送至 PUSH 能力服务器。 PUSH 能力服务器在向用户终端转发 此 PUSH 数据报文失败后, 存储此数据报文, 以待后续重新尝试发送。
当 PUSH 能力服务器获知用户终端上线后, 取出存储的 PUSH 数据报文, 发送给此用 户终端。其中, 本实施例中, PUSH 能力服务器获知用户终端是否上线的方法为 :
在 PUSH 能力服务器存储 PUSH 数据报文的同时, 通过 S1 接口向 ASN3 发送一条用 户状态订阅消息 ( 含用户终端的 AID1), ASN3 收到此消息后, 通过 S4 接口转发至映射转发 平面 ; 映射转发平面中的 ILR( 即用户终端所注册的 ILR) 在该用户终端的在线状态发生变 化 ( 如从在线变为离线, 或从离线变为在线 ) 时, 将通过 S4 接口经 ASN3 向该 PUSH 能力服 务器发送状态变化通知消息。
本方案不要求用户终端具有唯一的 PUSH 能力服务器, 也不要求当用户终端上线 后主动向 PUSH 能力服务器发送上线通知消息。另外, 本方案只需要 PUSH 能力服务器支持
用户在线状态的订阅, 无需业务服务器支持此功能, 也减少了映射转发平面的订阅量和通 知消息流量。
方案 4 :
如图 6 所示, 本发明在图 2 身份标识和位置分离架构的基础上, 扩充映射转发平面 的功能, 集成了 PUSH 能力服务器的存储重试功能, 具体说明如下 :
映射转发平面中增加 PUSH 能力服务器这一逻辑功能实体, 可以将发往离线用户 终端的 PUSH 数据报文暂时存储起来, 在该用户终端上线后再进行发送。 PUSH 能力服务器与 ILR 共享网络中用户的在线 / 离线状态信息, PUSH 能力服务器与 PTF、 ILR 可以位于同一物 理实体, 或者位于不同物理实体。
业务服务器向用户终端主动推送数据报文的流程如下 :
步骤 601, 业务服务器将向用户终端 (AID1) 主动推送的数据报文经 D1 接口发至 ASN2, 其中携带相应标志, 标识该数据报文是 PUSH 数据报文 ( 后文给出了一种 D1 接口的标 志携带方法 ) ;
步骤 602, ASN2 收到此数据报文后, 识别出这是一个 PUSH 数据报文, 于是将此数据 报文经 D4m 接口转发给映射转发平面, 其中携带相应标志, 标识该数据报文是 PUSH 数据报 文 ( 后文给出了一种 D4m 接口的标志携带方法 ) ; 步骤 603, 映射转发平面收到此数据报文后, 识别出这是一个 PUSH 数据报文, 然后 根据 AID1 查询该用户终端的在线 / 离线状态信息, 根据用户终端的在线 / 离线状态信息向 该用户终端推送数据报文, 具体包括 :
若用户终端为在线状态, 则查出目的 AID1-RID1 的映射关系, 在 PUSH 数据报文中 以 RID1 信息替换掉 RIDm 信息并通过 D3 接口转发到广义转发平面内, 最终经用户终端所连 接的 ASN1 到达用户终端 ;
若用户终端为离线状态, 则映射转发平面暂时存储此 PUSH 数据报文, 在获知用户 终端上线后再按前述步骤向用户终端转发, 即, 查出目的 AID1-RID1 的映射关系, 在 PUSH 数 据报文中以 RID1 信息替换掉 RIDm 信息并通过 D3 接口转发到广义转发平面内, 最终经用户 终端所连接的 ASN1 到达用户终端。
本方案无需单独部署 PUSH 能力服务器, 而是在映射转发平面增加相应功能, 一方 面可以充分共享 ILR 所拥有的用户在线 / 离线状态信息, 另一方面可以利用映射转发平面 内 ILR/PTF 的分布式组网架构 ( 采用 DHT 算法 ) 从而具备可靠的数据报文存储与处理能力, 以及极大的 PUSH 数据报文存储容量。另外, 本方案无需业务服务器支持用户在线 / 离线状 态的订阅, 也不需要进行 PUSH 数据报文的发送重试。
不是所有发往离线用户终端的数据报文都是 PUSH 数据报文, 因此映射转发平面 必须识别出哪些数据报文在无法发送时需要存储及后续重发 ( 当用户上线后进行重发 )。 一种可行的解决方案是 : 业务服务器所在 ASN2 在经 D4m 接口向映射转发平面转发数据报文 时, 携带此数据报文是否为 PUSH 数据报文的指示。
如前所述, D4m 是 ASN 与映射转发平面间的数据转发接口, D4m 接口的数据报文格 式为 :
11102045266 A CN 102045270说源 RID RIDm明书目的 AID 数据报文净荷9/11 页二层报头
源 AID其中, 源 RID 对应源 AID, RIDm 是与 ASN 连接的映射转发平面中 ILR/PTF 的路由地 址, 该路由地址在每个 ASN 上进行配置。
本发明提出 :
(1) 可以采用不同的 RIDm 以标识本数据报文是否为 PUSH 数据报文, 当 RIDm 字段 的值为指定值时, 标识当前数据报文为 PUSH 数据报文 ;
(2) 也可以对 D4m 接口的数据报文格式进行扩充, 增加一些标志位, 例如 :
二层报头 源 RID
RIDm标志位 源 AID 目的 AID数据报文净荷在标志位中, 可以设置本数据报文是否为 PUSH 数据报文 ; 其他标志位可用于今后 其他功能的扩充。
至于 ASN2( 即业务服务器的接入服务节点 ) 如何识别出哪些数据报文是 PUSH 数 据报文, 可采用以下方法 : (1) 业务服务器具有至少两个 AID ; 对于 PUSH 数据报文和非 PUSH 数据报文, 业 务服务器采用不同的 AID 作为发起方标识, 例如, 对于非 PUSH 数据报文, 采用 AIDs1 ; 对于 PUSH 数据报文, 采用 AIDs2 ; 在 ASN2 处进行配置, 使得 ASN2 知道发起方标识为 AIDs2 时的 数据报文为 PUSH 数据报文 ;
(2) 对 D1 接口数据报文格式进行扩展。
现有 D1 接口的数据报文格式为 :
二层报头
源 AID目的 AID数据报文净荷可以在此基础上增加一种 D1 接口的数据报文格式, 如下 :AIDx AIDy 源 AID 目的 AID 数据报文净荷二层报头
AIDx 为一个特殊的 AID 取值, 可以是数据报文发起方的 AID, 也可以是由一些标志 位组成, 这些标志位可用于携带一些特殊信息 ( 例如, 指示本数据报文为 PUSH 数据报文 )。
AIDy 为一个特殊的 AID 取值, 用于指示 ASN 进行特殊处理。 此特殊处理可以是 : 将 PUSH 数据报文转发给集成了 PUSH 能力服务器功能的映射转发平面 ( 适用于发明方案 4) ; 将 PUSH 数据报文转发给网络中的 PUSH 能力服务器 ( 适用于发明方案 1、 3, 此时, 不需要业 务服务器知道 PUSH 能力服务器的 AID) ; 或者, ASN 对此数据报文做匿名化处理, 即在 ASN 转 发出去的数据报文中隐藏数据报文发起方的真实 AID。
AIDy 可以是网络中约定的特殊值, 也可是在主机节点和与其相连接的 ASN 上进行 配置的特定值。可以用不同的 AIDy 取值来指示不同的特殊处理 ; 也可以采用相同的 AIDy, 同时利用 AIDx 取值信息来区分不同的特殊处理。
业务服务器在需要 ASN2 进行特殊处理时, 将在正常的数据报文基础上添加 AIDx 和 AIDy, 形成如上所述的新增数据报文格式。ASN2 在收到此数据报文后, 根据 AIDy 可识别出这是一个需要 ASN2 进行特殊处理 的报文。 ASN2 在进行特殊处理后, 将对此数据报文剥离 AIDx 和 AIDy 字段, 再进行正常处理 ( 例如, 添加 RID 信息后转发至广义转发平面或映射转发平面 )。
在上述方案 1、 3、 4 中, PUSH 报文将由 PUSH 能力服务器 ( 方案 1、 3) 或映射转发平 面 ( 方案 4) 负责存储和发送, 业务服务器不知道 PUSH 报文最终是否到达用户终端。若业 务服务器希望了解 PUSH 报文是否成功发送到用户终端处, 可以在业务服务器发送 PUSH 数 据报文时, 携带一个状态报告指示标志, PUSH 能力服务器或映射转发平面在成功向用户发 送 PUSH 数据报文后, 将向业务服务器发送一个特殊的数据报文 ( 其中携带 PUSH 数据报文 已成功发送的信息 )。
在方案 4 中, 如上所述状态报告指示标志, 可利用上文所述的 D4m 接口扩展消息的 标志位、 以及 D1 接口扩充的 AIDx 或 AIDy 携带。
如上所述的特殊数据报文 ( 其中携带 PUSH 数据报文已成功发送的信息 ), 具体格 式也不在本发明中做具体规定。
本发明还提供一种支持数据报文主动推送能力的实现系统, 该系统为基于身份标 识和位置分离框架的系统, 所述系统中包括第一主机节点、 第二主机节点和映射转发平面, 其中 :
所述第一主机节点, 用于从映射转发平面获取第二主机节点的在线或离线状态信 息, 根据所述在线或离线状态信息向所述第二主机节点推送数据报文。
其中, 所述第一主机节点, 用于在需向第二主机节点推送数据报文时, 判断第二主 机节点的状态, 如果所述第二主机节点处于在线状态, 则向所述第二主机节点推送所述数 据报文 ; 如果所述第二主机节点处于离线状态, 则第一主机节点保存该数据报文, 在获知所 述第二主机节点上线后, 向所述第二主机节点推送所述数据报文。
其中, 所述第一主机节点, 用于向其所在的第一接入服务节点发送用户状态订阅 消息, 消息中包含第二主机节点的身份标识 ;
所述第一接入服务器节点, 用于将所述用户状态订阅消息转发给映射转发平面 ;
所述映射转发平面, 用于在收到所述用户状态订阅消息后, 在第二主机节点的在 线状态发生变化时, 发送状态变化通知消息给所述第一主机节点。
所述系统中还包括第一接入服务节点、 广义转发平面和第二接入服务节点, 其 中:
所述第一主机节点, 还用于将需推送给第二主机节点的数据报文发送给其所在的 第一接入服务节点, 所述数据报文中包含所述第二主机节点的身份标识 ;
所述第一接入服务节点, 用于收到所述数据报文后, 如果在本地查询到所述第二 主机节点的身份标识对应的位置标识, 则将所述位置标识添加到所述数据报文中, 将所述 数据报文发送至广义转发平面 ; 如果在本地没有查询到所述第二主机节点的身份标识对应 的位置标识, 则将所述数据报文封装后发送至映射转发平面 ;
所述映射转发平面, 用于收到所述数据报文后, 查询所述第二主机节点的身份标 识对应的位置标识, 将所述位置标识添加到所述数据报文中, 转发所述数据报文至广义转 发平面 ;
所述广义转发平面, 用于将所述数据报文转发至所述第二主机节点所在的第二接入服务节点 ;
所述第二接入服务节点, 用于将所述数据报文发送给所述第二主机节点。
其中, 所述第一主机节点为业务服务器或用户终端, 所述第二主机节点为业务服 务器或用户终端。
本发明中, 用户终端和业务服务器在网络架构中的地位是平等的, 都是位于接入 网的主机节点, 在接入、 注册、 收发数据报文等流程中并无差异。因此, 本发明的架构和流 程, 不仅适用于业务服务器主动向用户终端推送数据报文, 也适用于用户终端向业务服务 器推送数据报文, 或业务服务器之间、 用户终端之间的数据报文推送。
采用本发明所述方法和系统, 减少传送失败的 PUSH 数据报文, 节约网络传送能 力; 减少数据报文推送的重试次数, 提升业务服务器的性能 ; 用户终端开机在线后可以及 时收到所需的数据报文, 提升用户体验。