移动性管理的方法及移动接入网关
技术领域
本发明涉及移动通信领域,尤其涉及一种移动性管理的方法及移动接入网关。
背景技术
传输控制协议/因特网互联协议(Transmission Control Protocol/InternetProtocol,TCP/IP),在初始设计时未考虑终端会发生拓扑位置改变的情况,即TCP/IP协议本身不支持移动性。在传统的TCP/IP网络环境中,IP为因特网(Internet)提供了路由功能,它给所有节点(包括主机和路由器)都分配了逻辑地址,即IP地址,且每台主机的各个端口都分配一个IP地址。IP地址包括网络前缀和主机部分,同一条链路上的所有主机的IP地址通常有相同的网络前缀和不同的主机部分。这使得IP可以依据目的节点的IP地址的网络前缀部分来进行路由选择,从而使路由器秩序保存一条简单的网络前缀路由,而不必为每台主机保存一条单独的路由。在这种情况下,由于采用了网络前缀路由,因此当节点从一条链路切换到另一条链路而没有改变其IP地址时,该节点则不可能在新链路上接收到数据报文,从而也就无法与其他节点进行通信。
随着用户对移动性和信息的需求急剧上升,越来越多的人希望在移动的过程中高速地接入互联网,获取急需的信息,完成想做的事情。因此,移动互联网成为未来互联网的发展方向,但是传统TCP/IP协议不支持移动性的缺陷,使得对移动节点的移动性管理成为移动互联网面对的一大难题。
为了解决移动性管理问题,业界比较流行的移动性管理技术包括移动IP(MobileIP,MIP)、代理移动IP(Proxy MIP,PMIP)等。这些技术的共同特点是引入了固定锚点(Anchor)来实现对移动节点的移动性管理。例如,MIP协议使用家乡代理(Home agent,HA)作为锚点、PMIP协议使用本地移动性锚点(Local Mobility Anchor,LMA)作为锚点。
图1所示的是PMIP协议的逻辑架构,包括移动节点(Mobile Node,MN)、通信对端(Correspondent Node,CN)、移动接入网关(Mobile Access Gateway,MAG)以及LMA。MAG是MN的第一跳路由器,其主要作用包括在MN接入时为其分配一个被称作为转交地址(Care ofAddress,CoA)的IP地址以及为MN执行与MN的锚点LMA之间的PMIP绑定(PMIP Binding)。LMA是MN的锚点,其主要作用包括为MN分配一个被称作为家乡地址(Home of Address,HoA)的IP地址以及处理上述PMIP绑定。MAG与LMA之间执行的PMIP绑定的主要目的是让双方均获知对方的地址、上述的CoA和HoA,并将这些信息分别保存在本地。此外,在执行PMIP的绑定过程中,还为MN在MAG和LMA之间建立了一条双向隧道。值得说明的是,MN最后获取到的IP地址是LMA为其分配的HoA。在通常的网络部署中,MAG一般位于拓扑较低的位置,比如位于城域网的边缘;而LMA则一般位于拓扑较高的位置,比如省干网的核心部分。MAG与LMA之间实际上往往通过多跳路由器相连。
获取到HoA(IP地址)以后,MN使用HoA作为其通信地址与位于IP网络上的CN交互,收发IP报文。图2所示为MN与CN之间收发IP报文的过程示意图。以MN向CN发送上行(Uplink)IP报文为例,该IP报文的目的地址是CN的IP地址,源地址是MN的HoA。MN将该报文发送至自己连接的MAG;MAG根据HoA在本地查询到MN的锚点LMA地址,然后将上述IP报文放在MAG与LMA之间的隧道中发送到LMA;最后LMA再将MN发出的IP报文使用普通的IP路由机制发送到CN。同理,CN向MN发送的下行(Downlink)IP报文也需通过上述的LMA以及MAG。
PMIP协议的移动性管理体现在随着MN的移动能变更当前连接到的MAG,同时保持MN的IP地址(即HoA)不变。如图3所示,变更当前连接的MAG是指从先前连接的源MAG(SourceMAG,sMAG)变更连接到目标MAG(Target MAG,tMAG)。在变更到tMAG以后,tMAG为MN分配一个新的CoA,并为MN执行与MN的锚点LMA之间的PMIP绑定,更新上文提及双方保存的信息,以及在tMAG与LMA之间为MN建立新的双向隧道。
参照图2和图3,在MN移动变更连接的MAG(以下称之为切换)前后,MN与CN间收发IP报文的路径都可表达为MN<->MAG<->LMA<->CN,都必须绕路到MN的锚点LMA。即使MAG有路由功能,且MAG与CN之间有IP网相连接(图1),IP报文也不能直接通过MAG收发,存在报文传递路径的浪费。
当MN目前位置远离其锚点LMA时,MN与CN间收发的IP报文也必须通过其锚点LAM转发。特别是当MN目前位置距离CN较近时,上述传输路径浪费问题将会更加明显。图4中的实线所表示的为存在传输路径浪费的路由,虚线所表示的则为无传输路径浪费的路由。传输路径的浪费一方面会导致运营商传输承载资源的浪费,导致了运营成本增加;另一方面增加了MN与CN间收发IP报文的时延,不利于改善用户的业务体验;再一方面是使大量的IP报文汇聚到MN的锚点LMA(一般来说一个LMA能服务很多个MN),使LMA容易成为性能瓶颈,增大了报文在该节点拥塞的可能性,导致整体网络质量下降,造成MN业务受阻甚至不能实现(如,语音视频等实时业务)。
还值得说明的是,上述CN也可以位于PMIP域,应用上述的PMIP移动性管理机制(例如,CN是另一个移动节点,也即图1中所示的CN’)。此时CN也连接到一个MAG,也有一个锚点LMA。在这种情况下,MN与CN之间的IP报文的收发路径为:MN<->MN的MAG<->MN的LMA<->CN的LMA<->CN的MAG<->CN。由此可见在这种场景下,MN与CN间的报文收发必须绕路经过两者的锚点LMA,报文传递路径的浪费更加明显,以后造成的上述不良后果更加严重。为了解决以上问题,可使报文在两个MAG之间转发,但在MN的MAG切换后,会出现CN的MAG因未及时更新本地缓存,进而导致MN和CN之间报文无法顺利转发的问题。
发明内容
本发明要解决的技术问题是提供一种移动性管理方法和移动接入网关,以解决MAG切换后,报文无法顺利转发的问题。
为解决以上技术问题,本发明还提供了一种移动性管理方法,该方法包括:
移动节点(MN)从源移动接入网关(sMAG)切换到目标移动接入网关(tMAG)时,所述sMAG或tMAG向所述MN的对端节点(CN)的移动接入网关(MAG)发送第一消息,其中携带指向所述tMAG的地址信息;
所述MN的对端节点的MAG接收所述第一消息,并根据所述第一消息更新本地缓存。
进一步地,所述sMAG发送所述第一消息前,该方法还包括:所述sMAG接收第一报文,所述第一报文的隧道源IP地址为指向所述MN的对端节点的MAG的地址信息,所述第一报文的目的地址为指向切出的所述MN的节点信息;所述sMAG根据所述第一报文的隧道源IP地址向所述MN的对端节点的MAG发送所述第一消息。
进一步地,所述sMAG发送所述第一消息前,该方法还包括:
本地移动性锚点(LMA)或所述tMAG向所述sMAG发送第二消息,其中携带指向切出的所述MN的节点信息;
所述sMAG接收所述第二消息,根据所述第二消息中的指向所述MN的节点信息查询本地缓存,获取所述MN的对端节点的映射关系,所述映射关系中包括指向所述MN的对端节点的MAG的地址信息;
所述sMAG根据查询获取的所述对端节点的映射关系向所述MN的对端节点的MAG发送所述第一消息。
更进一步地,所述sMAG发送所述第一消息前,该方法还包括:所述sMAG通过以下方法获知指向所述tMAG的地址信息:
所述sMAG向所述MN的本地移动性锚点请求获取;
或,所述MN的LMA主动通知所述sMAG;
或,所述tMAG通知所述sMAG。
进一步地,所述tMAG发送所述第一消息前,该方法还包括:
所述tMAG获取切入的所述MN的对端节点的映射关系,所述映射关系中包括所述指向所述对端节点的MAG的地址信息;
所述tMAG根据获取的所述MN的对端节点的映射关系向所述对端节点的MAG发送所述第一消息。
进一步地,所述tMAG发送所述第一消息前,该方法还包括:
所述tMAG获取切入的所述MN的对端节点的映射关系,所述映射关系中包括指向所述对端节点的MAG的地址信息;
所述tMAG接收第二报文,所述第二报文的隧道源IP地址为指向所述sMAG的地址信息,所述第二报文目的地址为指向切入的所述MN的节点信息,触发所述tMAG根据所述对端节点的映射关系向所述发送所述第一消息。
进一步地,所述tMAG发送所述第一消息前,该方法还包括:
所述tMAG接收第三报文,所述第三报文的外层隧道源IP地址为指向切入的MN的sMAG的地址信息,内层隧道源IP地址为指向所述MN的对端节点的MAG的地址信息;所述第三报文目的地址为指向所述切入的MN的节点信息;
所述tMAG根据所述第三报文的内层隧道源IP地址向所述对端节点的MAG发送所述第一消息。
更进一步地,所述tMAG获取切入的所述MN的对端节点的映射关系的步骤包括:
所述sMAG获取指向所述tMAG的地址节点信息;
所述sMAG查询本地缓存,获取切出的所述MN的对端节点的映射关系;
所述sMAG根据所述指向所述tMAG的地址信息将切出的所述MN的对端节点的映射关系发送给所述tMAG;
或,包括:
所述tMAG向所述sMAG发送请求消息,其中携带指向所述MN的节点信息;
所述sMAG接收所述请求消息,根据指向所述MN的节点信息查询本地缓存,获取切出的所述MN的对端节点的映射关系;
所述sMAG向所述tMAG返回应答消息,其中携带所述MN的对端节点的对端映射关系。
更进一步地,所述sMAG的本地缓存包括一个对应所有MN的对端映射关系表和对应每个MN的通信对端表,所述sMAG根据指向所述MN的节点信息查询对应的通信对端表进而查询所述对端映射关系表获取所述MN的对端节点的映射关系。
更进一步地,所述sMAG的本地缓存包括若干个分别对应一个MN的对端映射关系表,所述sMAG根据指向所述MN的节点信息查询对应的对端映射关系表获取所述MN的对端节点的映射关系。
进一步地,所述第一消息中还携带所述指向所述MN的节点信息,所述对端节点的MAG更新本地缓存时,根据所述指向所述MN的节点信息确定待更新的本地缓存对应数据。
为了解决以上技术问题,本发明还提供了一种移动接入网关(MAG),该MAG包括:
第一消息发送模块,移动节点(MN)从源移动接入网关(sMAG)切换到目标移动接入网关(tMAG)时,作为所述sMAG或tMAG时,用于向所述MN的对端节点(CN)移动接入网关发送第一消息,其中携带指向所述tMAG的地址信息;
第一消息接收模块,作为所述MN的对端节点的MAG时,用于接收所述sMAG或tMAG发送的所述第一消息;
本地缓存更新模块,作为所述MN的对端节点的MAG时,根据所述第一消息更新本地缓存。
进一步地,所述MAG还包括报文接收模块,其中,所述报文接收模块,作为sMAG时,用于接收第一报文,所述第一报文的隧道源IP地址为指向所述MN的对端节点的MAG的地址信息,所述第一报文的目的地址为指向切出的所述MN的节点信息;所述第一消息发送模块,根据所述第一报文的隧道源IP地址向所述MN的对端节点的MAG发送所述第一消息。
进一步地,所述MAG还包括第二消息接收模块和本地缓存查询模块,作为sMAG时:
第二消息接收模块用于接收本地移动性锚点(LMA)或所述tMAG发送的第二消息,其中携带指向切出的所述MN的节点信息;
所述本地缓存查询模块,用于根据所述第二消息中的指向所述MN的节点信息查询本地缓存,获取所述MN的对端节点(CN)的映射关系,所述映射关系中包括指向所述MN的对端节点的MAG的地址信息;
所述第二消息由所述tMAG发送时,所述MAG还包括第二消息发送模块,作为所述tMAG时,用于发送所述第二消息;
所述第一消息发送模块,用于根据查询获取的所述对端节点的映射关系向所述MN的对端节点的MAG发送所述第一消息。
进一步地,所述MAG还包括对端映射关系传递模块和本地缓存查询模块,其中:
所述对端映射关系传递模块,作为tMAG时,用于主动请求或接收所述sMAG发送的切入的所述MN的对端节点的映射关系,主动请求时,请求消息中携带指向所述MN的节点信息;作为sMAG时,用于主动或根据请求向所述tMAG发送切出的所述MN的对端节点的映射关系,所述映射关系中包括所述指向所述MN的对端节点的MAG的地址信息;
所述本地缓存查询模块,作为sMAG时,用于查询本地缓存,获取所述MN的对端节点(CN)的映射关系;
作为tMAG时,所述第一消息发送模块根据获取的所述MN的对端节点的映射关系向所述MN的对端节点的MAG发送所述第一消息。
进一步地,所述MAG还包括报文接收模块,作为所述tMAG时,用于接收第二报文,所述第二报文的隧道源IP地址为指向所述sMAG的地址信息,所述第二报文的目的地址为指向切入的所述MN的节点信息;作为tMAG时,所述第一消息发送模块根据接收的所述第二报文的触发发送所述第一消息。
进一步地,所述MAG还包括报文接收模块,作为所述tMAG时,用于接收第三报文,所述第三报文的外层隧道源IP地址为指向切入的MN的sMAG的地址信息,内层隧道源IP地址为指向所述MN的对端节点的MAG的地址信息;所述第三报文目的地址为指向所述切入的MN的节点信息;作为tMAG时,所述第一消息发送模块根据接收的所述第三报文的内层隧道源IP地址发送所述第一消息。
更进一步地,所述MAG还包括本地缓存模块,用于缓存对应所述MN的对端映射关系表和所述MN的通信对端表,所述本地缓存查询模块,先根据指向所述MN的节点信息查询对应的通信对端表进而查询所述对端映射关系表获取所述MN的对端节点(CN)的映射关系。
更进一步地,所述MAG还包括本地缓存模块,用于缓存若干个分别对应一个MN的对端映射关系表,所述本地缓存查询模块,根据指向所述MN的节点信息查询对应的对端映射关系表获取所述MN的所有对端节点(CN)的映射关系。
进一步地,所述第一消息中还携带所述指向所述MN的节点信息,所述本地缓存更新模块,用于根据所述指向所述MN的节点信息确定待更新的本地缓存对应数据。
本发明移动性管理方法和移动接入网关在移动节点(MN)从源移动接入网关(sMAG)切换到目标移动接入网关(tMAG)时,所述sMAG或tMAG向所述MN的对端节点(CN)的移动接入网关(MAG)发送指向所述tMAG的地址信息,使得对端节点的MAG可以及时获取指向所述tMAG的地址信息并更新本地缓存,进而能够顺利转发对端节点发送给MN的报文。
附图说明
图1为现有PMIP协议的逻辑架构示意图;
图2为现有MN与CN之间收发IP报文的过程示意图;
图3为现有MN切换MAG的过程示意图;
图4为现有以LMA为锚点的路径分析示意图;
图5至图8为本发明移动性管理方法的实施例示意图;
图9为对端映射关系表的示例示意图;
图10a、10b为通信对端表的示例示意图;
图11至图15为本发明MAG的模块结构示意图。
具体实施方式
由上文所述,现有的移动性管理方案会导致传输路径浪费问题,进而导致一系列不良后果,究其本质原因是存在锚点。所有MN与CN间的IP报文都必须绕经MN的锚点网元(或,绕经MN以及CN的锚点网元)。本发明通过对现有的PMIP机制的改造,避免上文提到的一系列问题。
与现有PMIP协议的逻辑架构(如图1所示)相比,改造后的PMIP协议架构所包含的网元仍然为移动节点MN、通信对端CN、移动接入网关MAG以及LMA。其中CN可以是固定节点,也可以是移动节点,即具有相应的MAG和LMA。
MAG是MN的第一跳路由器,其主要作用除了现有的PMIP架构中的为MN分配转交地址CoA,以及代替MN执行与MN的锚点LMA之间的PMIP绑定外,还需要具备如下功能:在本地或向其他网元(如,LMA)查询获得通信对端CN当前连接的MAG(MAG-CN)的地址或CN的转交地址CoA;在MN的MAG(MAG-MN)和CN的MAG之间建立双向隧道,转发MN与CN之间的IP报文。
LMA不再作为MN的锚点,MN与CN之间的IP数据报文,也不再必须经过LMA。LMA需要保存当前MAG-MN的地址和/或MN的CoA,并以MN作为索引,例如以MN的HoA或者MN的家乡网络前缀(Home Network Prefix,HNP)作为索引,以供MN的通信对端CN或CN的MAG根据MN的相关信息来查询。
在本发明中,当MN向CN发送上行IP报文时,与现有的PMIP机制一致,MN需要首先将IP报文发送到MN的MAG-MN。后续与现有PMIP机制所不同的是,在本发明中MAG-MN需要查询CN的MAG-CN地址。在查询到MAG-CN的地址(如MAG-CN的IP地址)后,MAG-MN用MAG-CN的地址作为终点,建立MAG-MN到MAG-CN的隧道(如,IP in IP隧道),同时将上述IP报文放在隧道中,直接发送给MAG-CN。当MAG-CN收到隧道中传递来的IP报文以后,将IP报文发送给CN。
需要说明的是,MAG-MN也可以查询CN的CoA,用CN的CoA地址代替上述的MAG-CN的地址,也能达到相同的目的。此时,MAG-MN使用CoA作为终点,建立MAG-MN到MAG-CN的隧道,效果等同。
还需要说明的是,MAG-MN在查询CN的MAG-CN的地址(或CN的CoA)时,首先在本地缓存中查询,若查询不到再到其他网元上查询。例如,到CN的LMA(LMA-CN)根据CN的HoA或CN的HNP来查询。查询到所需的结果以后,MAG-MN再将查询结果缓存在本地,并以CN的HoA作为索引。将查询结果缓存在本地的好处是能避免频繁的到其他网元去执行查询操作。
同样道理,CN向MN发送下行IP报文时,也使用上述类似的方法,原理相同,不再赘述。使用本发明的这种方法,MN与CN间收发IP报文的路径变为MN<->MAG-MN<->MAG-CN<->CN,无需经过MN(或者MN以及CN)的锚点LMA网元,避免了传输路径的浪费等一系列问题。
应用上述改造后的PMIP机制,当MN需要从其sMAG切换到目标tMAG时,直接使用现有的PMIP切换机制会致使在切换后MAG-CN仍然将CN发给MN的IP报文发给sMAG,因为MAG-CN本地缓存的MN的MAG地址仍然是sMAG,而此时的MN已经不在该sMAG下,因此会造成后续所有CN发送给MN的IP报文丢失。因此基于上述对现有PMIP机制的改造,本发明以下内容提供了一种切换管理的方法以解决上述问题,并在切换MAG之后仍能保证MN与CN之间IP报文的收发无传输路径上的浪费。
需要说明的是,本发明中所说的指向所述MN或CN的节点信息,是用于表明是哪一个移动节点或对端节点的信息,可以是移动节点或对端节点的标识(ID)、家乡地址也可以是或家乡网络前缀,还可以是其中的两个信息的组合或三个信息;本发明所说的指向MAG的地址信息是用于表明哪一个MAG是移动节点或对端节点附着或曾附着的MAG的信息,可以是MAG的地址,也可以是MAG为移动节点(MN)、对端节点(CN)分配的代理转交地址(CoA),还可以是MAG的地址和CoA的组合。指向所述MN或CN的节点信息具体采用什么信息表示,指向MAG的地址信息具体采用什么信息表示,均由具体应用场景或相应网元可能得到的信息决定,此非本发明重点,本发明对此不做限定,实施例中的具体描述仅为示意,不应作为对本发明的限制。
具体地,指向sMAG地址信息指所述sMAG的地址、sMAG为所述MN分配的代理转交地址(CoA)或前两个信息的组合;指向tMAG的地址信息指所述tMAG的地址、tMAG为所述MN分配的代理转交地址(CoA)或前两个信息的组合;指向MN的对端节点的MAG的地址信息指所述MN的对端节点的MAG的地址、MN的对端节点的MAG为所述CN分配的代理转交地址(CoA)或前两个信息的组合。
另,LMA为MN或CN分配的是家乡网络前缀(HNP),MN或CN收到路由器通告消息(消息中携带HNP)后,进行地址配置,获得源自HNP的家乡地址HoA。一个HNP只能分配给一个终端,也就是说,HNP和HoA都能唯一指代一个特定的MN。LMA/MAG有可能不知道MN或CN配置的HoA,在具体的网络应用中,LMA/MAG也有可能获得MN或CN配置的HoA。当LMA/MAG不知道HoA时,LMA/MAG保存HNP与CoA或MAG地址的映射关系,并以HNP为索引。当LMA/MAG知道HoA时,LMA/MAG可以保存HoA与CoA或MAG地址的映射关系,并以HoA为索引;也可以保存HNP与CoA或MAG地址的映射关系,并以HNP为索引。
下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
实施例一
图5是本发明第一实施例,本移动性管理方法实施例一提供了一种切换管理机制,具体包含以下步骤:
步骤501:在MN移动的过程中,依照现有技术会触发MN从sMAG切换到tMAG的流程,例如MN从sMAG的服务区域移动到tMAG的服务区域时。此时sMAG需要获取tMAG的地址信息(如,tMAG的IP地址),或该tMAG给MN分配的CoA(称之为新CoA),或者同时获取上述地址和新CoA。
优选地,sMAG可以从MN的锚点LMA(LMA-MN)或tMAG上获取上述tMAG的地址信息、新CoA。
步骤502a-502c:MN的对端CN向MN发送IP报文(称之为下行数据),该IP报文首先到达MAG-CN。
假定在MN发生跨MAG移动之前,MN与CN之间就已经存在活跃的会话(即,有数据在MN与CN之间传递),此时MAG-CN本地缓存的是MN的sMAG的地址或sMAG为MN分配的CoA地址(称之为旧CoA)。依照上文所述的数据传输方法,MAG-CN会将该IP报文放在其与上述sMAG之间的隧道中,将该IP报文发送到sMAG。
步骤503a-503c:sMAG对接收的报文进行解析判断,若判断该IP报文来自它与对端节点MAG(本发明称为MAG-CN)之间的隧道即隧道源IP地址指向MAG-CN,且该IP报文的目的地址是MN的HoA,sMAG又判断该MN不附着在它之下的链路上(也可以说,MN不在它的服务范围内)即,IP报文目的地址指向已切出的MN。上述条件同时满足时,sMAG判断MAG-CN的本地缓存需要更新。sMAG向MAG-CN发送更新地址通知消息,其中携带MN的HoA或HNP或ID,以及上述tMAG的地址信息和/或MN的新CoA。其中,sMAG根据上述的隧道源IP地址获知MAG-CN的地址,也即向哪个MAG-CN发送上述的消息(MN一般会有多个CN)。
MAG-CN收到上述消息以后,根据所述MN的HoA或HNP或ID确定待更新的本地缓存对应数据,进而更新本地保存的MN的MAG地址,或MN的CoA(或同时更新,如果这两个信息都被保存在本地)。更新后,在MAG-CN的本地缓存中,根据MN的HoA或HNP或ID,可以查询到MN当前的MAG的地址(即tMAG的地址),或者可以查询到MN的新CoA。MAG-CN可以根据该地址或新CoA建立其与tMAG之间的隧道(如,IP-in-IP隧道)。该隧道的入口地址是MAG-CN自己的地址(如IP地址)或CN的CoA,出口地址是tMAG的地址或MN的新CoA。
后续CN再向MN发送IP报文时,MAG-CN会根据本地缓存中的上述tMAG地址或新CoA,将IP报文隧道封装之后直接发送到MN的tMAG上,再由tMAG将IP报文发送给MN。
优选地,MAG-CN还向sMAG发送更新地址通知确认消息,作为应答。
步骤504:sMAG将在步骤502中收到的由CN发送给MN的IP报文转发给tMAG,再由tMAG进一步将报文发送给MN,以保证IP报文不丢失。
sMAG可以根据在501步中获取到的tMAG的地址或者MN的新CoA,来将该IP报文转发给tMAG。例如,用tMAG的地址或者MN的新CoA作为出口地址,建立通往tMAG的隧道(如,IP inIP隧道),并将IP报文放在隧道中传递给tMAG。
值得说明的是,步骤504可以紧接着步骤502c执行,与步骤503的执行无先后顺序。
实施例二
如上文所述,为了避免路径浪费,MAG-MN需要知道MAG-CN的地址(或CN的CoA)。在MAG-MN未掌握相关的信息时,需要到外界其他网元去查询。
为了避免频繁的查询(不能每收到一个MN发给CN的IP报文,都要去查询一次),本发明还提出MAG-MN需要将上述MAG-CN的地址或CN的CoA缓存到本地,同时以CN的HoA或HNP或ID作为索引,组成一个对端节点的映射关系,如CN的HoA或HNP或ID,映射到MAG-CN地址或CN的CoA,简称其为对端映射关系(Correspondent Node Relationship,CNR)。值得说明的是,当MN的CN不止一个时,MAG-MN需要本地缓存多个上述的对应关系,此时就构成了一张对端映射关系表(CNR Table,CNRT),如图9所示为该CNRT的一种结构。
该表可以作为MAG上保存的一张全局表,也可以划分为若干个分别对应一个MN的局部表。全局表,其含义是该MAG下附着的所有MN的所有对端节点的映射关系都保存在同一张表;局部表,其含义是MAG为其下每一个MN都维护一张表,该表中只记录该MN的对端映射关系,这样的表可以保存在MAG为MN维护的PMIP绑定关系中。
图6是本发明的第二实施例,在MN切换的过程中,MN的sMAG需要将其存储的上述对端节点的映射关系发送给MN的tMAG,这样可以避免tMAG再去其他网元查询对端映射关系,具体包括以下步骤:
步骤601:在MN移动过程中,当触发MN从sMAG切换到tMAG时,sMAG需要获到MN的tMAG的地址,如tMAG的IP地址。
优选地,如步骤501所述的方法,sMAG可以获取tMAG的地址信息。
步骤602:在获取tMAG的地址信息以后,sMAG向tMAG发送映射关系通知消息(以tMAG的地址为目的地址发送消息),携带上述的对端节点的映射关系,例如将上述对端映射关系表(全局表,或者局部表)发送给tMAG,以告知tMAG该MN当前的对端映射关系,tMAG将之更新保存到本地缓存中。
此时,当tMAG收到MN发往上述当前的CN的IP报文时,便可在本地缓存中以CN的HoA或HNP为索引查找到所需的信息(参见图9),而不必再到其他网元去查找。
步骤603:tMAG向sMAG发送映射关系通知确认消息,作为应答。
值得说明的是,上述tMAG的地址也可以用MN的新CoA来代替,其效果是等同的。
除了sMAG可以主动将上述MN的对端节点的映射关系发表发送给tMAG以外,tMAG也可以主动向sMAG请求该信息,如图7所示,具体包括如下步骤:
步骤701:在MN移动过程中,当触发MN从sMAG切换到tMAG时,tMAG需要获取到MN的sMAG的地址信息,如sMAG的IP地址。
优选地,tMAG可以从LMA获取到MN的sMAG的地址信息。例如,在tMAG为MN向LMA执行PMIP绑定更新(PMIP Binding Update,PBU)时,LMA通过向tMAG发送的PBA(PMIP BindingAcknowledgement)将sMAG的地址通知给tMAG。
步骤702:tMAG向sMAG发送映射关系请求消息(以sMAG的地址作为目的地址发送消息),携带MN的HoA或者MN的ID(Identity,标识)或者MN的HNP。
步骤703:基于请求,sMAG向tMAG返回映射关系应答消息,如步骤602所述,携带MN的对端节点的映射关系,例如将上述对端映射关系表发送给tMAG。收到该映射关系以后,tMAG将之更新保存到本地缓存中。
实施例三
图8是本发明第三实施例,具体包括以下步骤:
步骤801:MN与CN之间存在已经建立好的会话,MN与CN之间的收发的IP报文通过MAG-MN(此时对应MN的sMAG)以及MAG-CN来转发。
MAG-MN与MAG-CN之间存在一条双向的隧道,用于转发上述的IP报文,数据传输的路径表达为MN<->sMAG<->MAG-CN<->CN。
步骤802:当MN发生移动而需要切换当前连接的MAG时,MN需要触发变更当前连接的MAG的流程,从sMAG切换到tMAG上。
步骤803:在MN移动到tMAG管理的范围下时,MN向tMAG发送路由征集请求(RouterSolicitation)消息。
步骤804a:tMAG根据MN的标识(即MN-ID)找到MN的锚点LMA(即LMA-MN),同时为MN分配一个新的CoA,并向LMA发送代理绑定更新(Proxy Binding Update,PBU)消息,将上述新CoA发送给LMA-MN。
步骤804b:LMA-MN用MN的新CoA取代旧CoA(新CoA是tMAG为MN分配的CoA,旧CoA是sMAG为MN分配的CoA),并用MN的HoA或HNP作为索引将之保存在本地。此时根据MN的HoA或HNP可以查询到MN的CoA,且该CoA是tMAG为MN分配的新CoA。LMA向tMAG返回代理绑定确认(Proxy Binding Acknowledgement,PUA)消息,通知tMAG该MN的HoA或HNP。tMAG将MN的HoA或HNP与新CoA均保存在本地。
步骤805:tMAG向MN发送路由广播(Router Advertisement)消息。基于该消息,MN可以仍然使用移动切换MAG之前的HoA作为自己的IP地址,也就是说保证了MN的IP地址在切换MAG前后不发生变化。
步骤806a-806b:在步骤804a之后,LMA-MN向sMAG发送地址通知消息,通过该消息将tMAG的地址(如,tMAG的IP地址),和/或MN的新CoA发送给sMAG。值得说明的是,该消息还需要携带MN的HoA或HNP或MN的标识(如,MN-ID),以便让sMAG获知该消息所针对的MN。sMAG将上述信息缓存在本地,同时向LMA-MN返回地址通知应答消息。优选地,该消息还可以携带一个切换指示,指示当前MN正处于切换MAG的状态中。
此时,sMAG利用上述tMAG的地址或MN的新CoA建立从sMAG到tMAG的隧道(如,IP inIP隧道)。隧道的入口地址是sMAG的地址或MN的旧CoA,出口地址是tMAG的地址或MN的新CoA。
步骤807a-807b:在获取到tMAG的地址或MN的新CoA以后,同步骤602-603所述,sMAG将MN的对端节点的映射关系(例如以对端映射关系表的形式)发送给tMAG。
步骤808:在整个切换过程的任意时刻,CN都可以继续向MN发送IP报文,且该报文会被MAG-CN发送到MN的sMAG。
步骤809a-809c:基于收到的CN发送给MN的IP报文,如步骤503a-503c所述,sMAG向MAG-CN发送消息,将MN的tMAG地址和/或MN的新CoA通知给MAG-CN。后续的IP报文将会被MAG-CN直接发送到MN的tMAG。
优选地,该消息还携带MN的HoA或HNP或MN的ID,以让MAG-CN知道该消息是针对哪个MN的。
值得说的是,这里分两种情况讨论,一种是在步骤806a执行完成之后(或完成之时),sMAG收到上述的IP报文,则依照上面的描述进行处理;另一种是在步骤806a执行完成之前,sMAG就是到了上述IP报文,由于此时sMAG还不知tMAG的地址(或新CoA),sMAG需要将上述IP报文缓存在本地。等到步骤806a执行完成时,立刻依照上述描述进行处理。
还值得说明的是,sMAG还需要将收到的上述CN发送给MN的IP报文转发给tMAG,例如sMAG将之放在806步所述的隧道中发送给tMAG,再由tMAG进一步发送给MN,以保证IP报文不丢失。
步骤810:后续MN与CN之间的收发的IP报文通过MAG-MN(此时对应MN的tMAG)以及MAG-CN来转发,数据转发路径为MN<->tMAG<->MAG-CN<->CN。这里对MAG-CN与tMAG之间的隧道做进一步说明:该隧道两端的地址分别是MAG-CN的地址(或CN的CoA)以及tMAG的地址(或MN的新CoA)。从tMAG的角度来看,在步骤807步中,其获得到MAG-CN的地址、CN的CoA;从MAG-CN的角度来看,在步骤809中,其获得到tMAG的地址、MN的新CoA。
在本实施例中,sMAG通过LMA-MN的主动通知来获知tMAG的地址和/或MN的新CoA。实际上如步骤601所述,sMAG也可以主动向LMA-MN请求相关的信息。例如在MN离开sMAG切换到tMAG时,sMAG在本地启动一个定时器,在定时器超时时,sMAG向LMA-MN发送请求,以请求tMAG的地址和/或MN的新CoA。若此时LMA-MN已经获知到这些信息(例如,步骤804已经执行完毕),则将上述信息携带在应答消息中反馈给sMAG,否则sMAG可以重启定时器,待定时器超时后再次发送请求消息,直到LMA-MN通知sMAG放弃请求为止(例如,LMA-MN判断MN已经退网时)。
另一种sMAG获取tMAG的上述信息的方法是由tMAG主动通知sMAG相关的信息。在这种场景下,tMAG首先需要获得sMAG的地址。如步骤701所述的方法,结合图8,在步骤804b中LMA-MN向tMAG返回PBU消息时,在该消息中携带sMAG的地址或MN的旧CoA。随后(可以与步骤805并发执行),根据sMAG的地址或旧CoA信息,tMAG可以找到sMAG,同时向sMAG发送消息,将自己的地址(即tMAG的地址)和/或MN的新CoA通知给sMAG。
在本实施例,对端节点的映射关系是通过sMAG主动通知的方法发送给tMAG。实际上,如步骤702所述,也可以由tMAG主动向sMAG请求获取。结合图8,在步骤804b中如上述方法tMAG获取到sMAG的地址或旧CoA以后,向sMAG发生消息以请求MN的对端节点的映射关系,该步骤可以与步骤805并发执行。
实施例四
在本发明的以上实施例中,由sMAG基于收到的CN发送给MN的IP报文,向MAG-CN发送消息,以把MN新的MAG(tMAG)的地址和/或新CoA通知到MAG-CN。实际上,tMAG也可以完成该功能。由上文所述,在MN切换MAG的过程中,sMAG可以获取到tMAG的地址和/或MN的新CoA。这里基于这些信息,sMAG可以建立从sMAG到tMAG的隧道(如步骤806所述)。使用该隧道,sMAG可以将收到的CN发送给MN的IP报文转发给tMAG。
如上文所述,tMAG还可以从sMAG获取到对端节点的映射关系,其中存储了CN的HoA或HNP或ID与MAG-CN地址或CN的CoA之间的对应关系(参见图9)。此时,tMAG发现传递该IP报文(即CN发送给MN的报文)的隧道源地址是sMAG的地址或MN的旧CoA,而不是MAG-CN的地址或CN的CoA且报文的目的地址是切入的MN的HoA(tMAG可以在上述对端映射关系表中根据IP报文的源地址,也即CN的HoA查询),于是tMAG向MAG-CN发送消息,把自己的地址和/或新CoA通知到MAG-CN,同样也能实现等同的功能。这里,sMAG获取到tMAG的地址和/或MN的新CoA以及tMAG获取到MN的对端节点的映射关系的方法,同上述所述,原理相同,不在赘述。
实际上,tMAG在判断是否需要通知MAG-CN自己的地址和/或新CoA时,也可不依赖于从sMAG获取上述的对端映射关系表。此时需要sMAG对CN发送给MN的IP报文做特殊的隧道封装,以给tMAG提示。一种特殊的隧道封装是对报文做两层隧道封装:IP报文的源地址是CN的HoA,目的地址是MN的HoA;内层隧道封装的源地址是MAG-CN的地址或CN的CoA,目的地址是sMAG的地址或MN的旧CoA;外层隧道封装的源地址是sMAG的地址或MN的旧CoA,目的地址是tMAG的地址或MN的新CoA。当tMAG收到这样的报文以后,能够获知MAG-CN是将上述IP报文隧道封装后发送到了sMAG,便可以根据MAG-CN的地址或CN的CoA向MAG-CN发送消息,以通知其tMAG自己的地址或MN的新CoA。
实施例五
如上文所述,sMAG或tMAG是基于收到CN发送过来的IP报文时,判断是否需要更新MAG-CN中保存的关于MN的MAG地址或CoA的,并在判断需要更新时,向MAG-CN发送通知消息。
实际上,当以上述局部表的形式来保存MN的对端节点的映射关系时(见实施例二说明),sMAG或tMAG也可以主动向MAG-CN发送上述的更新消息,因为该局部表是保存在MN的绑定信息中的(tMAG或sMAG可以根据该MN的HoA或HNP或MN-ID找到该绑定信息)。参照图9,tMAG或sMAG可以根据这个局部表准确的获知MN当前的通信对端,并根据通信对端的MAG地址或CoA,向所有涉及到的MAG-CN发送消息,以更新MAG-CN保存的相关信息。
根据这样的原理,可以通过对图8所示的示例流程做适当的修改,具体包括如下步骤:
步骤1001-1005:步骤801-805。
步骤1006a-1006b:参照步骤806a-806b,LMA-MN向sMAG发送通知消息,以告知MN当前发生了切换。该消息中优选携带MN的ID或HoA或HNP,以及MN的tMAG地址或新CoA。优选地,sMAG在1006b中向LMA-MN返回应答消息。
步骤1007:基于上述通知消息,sMAG开始查询所述MN的所有对端节点(CN)的映射关系,例如从为该MN保存的对端映射关系表(如,通过MN-ID找到MN的绑定信息,从绑定信息中获取上述关系表)查询,所述映射关系中包括所述MAG-CN的地址或所述MAG-CN为所述CN分配的CoA;向所有涉及到的MAG-CN发送更新地址通知,将MN的tMAG地址或MN的新CoA通知给MAG-CN。优选的,MAG-CN向sMAG返回应答消息。通知过程同步骤809。
步骤1008:同步骤807。当然,步骤1007和步骤1008可以并发执行。
步骤1009:同步骤810。
由上述过程可以见,在这里是在收到LMA-MN的信令之后(步骤1006),sMAG开始执行通知MAG-CN相关信息的过程,而不依赖于CN向MN发送IP报文。当然,tMAG也可以通知sMAG来执行这个过程,比如,在收到1004b(804b)的消息以后,tMAG向sMAG发送触发消息,其中携带步骤1006中所述的参数,也可以触发sMAG开始执行通知MAG-CN相关信息的过程。
此外,还需要说明的是,tMAG也可以根据MN的对端节点的映射关系来执行通知MAG-CN相关信息的过程。在tMAG从sMAG获取到上述对端节点的映射关系以后,便可以如上述方法执行通知MAG-CN相关信息的过程。tMAG从sMAG获取对端映射关系表如上文所述(实施例二),在此不再赘述。
实施例六
当MAG采用全局表的形式来保存MN的对端映射关系表时,为了在切换的场景下能使tMAG或sMAG如实施例五所述,主动向MAG-CN发送更新消息以更新MAG-CN上保存的关于该MN的MAG地址或CoA,优选地MAG还保存关于该MN的通信对端表(Correspondent NodeTable,CNT),图10所示为该通信对端表的两种示例。
若采用图10a形式的通信对端表,则MAG需为其下附着的每个MN都维护一张这样的表,并将其保存在MN的绑定信息中,通过MN的HoA或HNP或ID能够找到该表,并在该表中能够获知该MN的通信对端CN的HoA或ID。
若采用图10b形式的通信对端表,则MAG可以为其下附着的全体MN仅维护一张表,将所有MN的对端信息都填入这张表,并以MN的HoA或HNP或ID作为索引。在该表中,也能获知指定MN的通信对端CN的HoA或ID。
依赖该通信对端表,sMAG在收到上文所述LMA-MN的信令或tMAG的触发时,便可执行通知MAG-CN相关信息的过程,将MN的tMAG地址或新CoA通知给相关的CN的MAG(即MAG-CN),具体操作如下:首先在通信对端表中获取MN的所有CN,然后在上述对端映射关系表中根据CN查询对应的MAG-CN地址或CN的CoA,最后再根据MAG-CN地址或CN的CoA执行通知MAG-CN相关信息。
sMAG也可以先把通信对端表先发送给tMAG(当采用图10b的形式时,sMAG可将通信对端表中与指定的MN相关的部分发送给tMAG),然后触发tMAG去执行通知MAG-CN相关信息的过程。如使用实施例二步骤602-603(702-703)中,sMAG将上述对端映射关系表传递给tMAG的方法,sMAG也可以将通信对端表传递给tMAG。在sMAG获取到该表以后,同上述方法,也可以执行通知MAG-CN相关信息的过程,将MN的tMAG地址或新CoA通知给相关的CN的MAG(即MAG-CN)。
实际上,作为一种变形,图9所示的表与图10所示的表可以组合成一张表,例如,以MN的HoA或HNP或ID作为索引,以该MN的CN的HoA、ID、CoA、CN连接的MAG的地址为值。那么在这张组合后的表中可以根据MN来查询到该MN的所有CN,以及这些CN当前连接的MAG的地址和/或CN的CoA。总之,通过适当的表结构设计,sMAG、tMAG总能够找到指定MN的对端节点的映射关系。
对应于前述方法实施例,本发明还提供了一种移动接入网关(MAG),该MAG的实施例1如图11所示,与本发明特别相关地,包括:
第一消息发送模块,移动节点(MN)从源移动接入网关(sMAG)切换到目标移动接入网关(tMAG)时,作为所述sMAG或tMAG时,用于向所述MN的对端节点(CN)移动接入网关发送第一消息,其中携带指向所述tMAG的地址信息;
第一消息接收模块,作为所述MN的对端节点的MAG时,用于接收所述sMAG或tMAG发送的所述第一消息;
本地缓存更新模块,作为所述MN的对端节点的MAG时,根据所述第一消息更新本地缓存。
MAG的实施例2如图12所示,与图11所示的实施例1不同的是,所述MAG还包括报文接收模块,其中,所述报文接收模块,作为sMAG时,用于接收第一报文,所述第一报文的隧道源IP地址为指向所述MN的对端节点的MAG的地址信息,所述第一报文的目的地址为指向切出的所述MN的节点信息;所述第一消息发送模块,根据所述第一报文的隧道源IP地址向所述MN的对端节点的MAG发送所述第一消息。
MAG的实施例3如图13所示,与图11所示的实施例1不同的是,所述MAG还包括第二消息接收模块和本地缓存查询模块,作为sMAG时:
第二消息接收模块用于接收本地移动性锚点(LMA)或所述tMAG发送的第二消息,其中携带指向切出的所述MN的节点信息;
所述本地缓存查询模块,用于根据所述第二消息中的指向所述MN的节点信息查询本地缓存,获取所述MN的对端节点(CN)的映射关系,所述映射关系中包括指向所述MN的对端节点的MAG的地址信息;
所述第二消息由所述tMAG发送时,所述MAG还包括第二消息发送模块,作为所述tMAG时,用于发送所述第二消息;
所述第一消息发送模块,用于根据查询获取的所述对端节点的映射关系向所述MN的对端节点的MAG发送所述第一消息。
MAG的实施例4如图14所示,与图11所示的实施例1不同的是,所述MAG还包括对端映射关系传递模块和本地缓存查询模块,其中:
所述对端映射关系传递模块,作为tMAG时,用于主动请求或接收所述sMAG发送的切入的所述MN的对端节点的映射关系,主动请求时,请求消息中携带指向所述MN的节点信息;作为sMAG时,用于主动或根据请求向所述tMAG发送切出的所述MN的对端节点的映射关系,所述映射关系中包括所述指向所述MN的对端节点的MAG的地址信息;
所述本地缓存查询模块,作为sMAG时,用于查询本地缓存,获取所述MN的对端节点(CN)的映射关系;
作为tMAG时,所述第一消息发送模块根据获取的所述MN的对端节点的映射关系向所述MN的对端节点的MAG发送所述第一消息。
MAG的实施例5如图15所示,与图14所示的实施例4不同的是,所述MAG还包括报文接收模块,作为所述tMAG时,用于接收第二报文,所述第二报文的隧道源IP地址为指向所述sMAG的地址信息,所述第二报文的目的地址为指向切入的所述MN的节点信息;作为tMAG时,所述第一消息发送模块根据接收的所述第二报文的触发发送所述第一消息。
MAG的实施例6,与图12所示的实施例2不同的是,所述报文接收模块,作为所述tMAG时,用于接收第三报文,所述第三报文的外层隧道源IP地址为指向切入的MN的sMAG的地址信息,内层隧道源IP地址为指向所述MN的对端节点的MAG的地址信息;所述第三报文目的地址为指向所述切入的MN的节点信息;作为tMAG时,所述第一消息发送模块根据接收的所述第三报文的内层隧道源IP地址发送所述第一消息。
本发明MAG的实施例7与实施例3或4相比,不同的是,所述MAG还包括本地缓存模块,用于缓存对应所述MN的对端映射关系表和MN的通信对端表,所述本地缓存查询模块,先根据指向所述MN的节点信息查询对应的通信对端表进而查询所述对端映射关系表获取所述MN的对端节点(CN)的映射关系。
本发明MAG的实施例8,与实施例3或4相比,不同的是,所述MAG还包括本地缓存模块,用于缓存若干个分别对应一个MN的对端映射关系表,所述本地缓存查询模块,根据指向所述MN的节点信息查询对应的对端映射关系表获取所述MN的所有对端节点(CN)的映射关系。
进一步地,所述第一消息中还携带所述指向所述MN的节点信息,所述本地缓存更新模块,用于根据所述指向所述MN的节点信息确定待更新的本地缓存对应数据。
如前所述,所述MN的节点信息包括MN的标识(ID)、家乡地址(HoA)或家乡网络前缀(HNP);所述指向sMAG地址信息包括所述sMAG的地址或sMAG为所述MN分配的代理转交地址(CoA);所述指向tMAG的地址信息包括所述tMAG的地址或tMAG为所述MN分配的代理转交地址(CoA);所述指向MN的对端节点的MAG的地址信息包括所述MN的对端节点的MAG的地址、或所述MN的对端节点的MAG为所述CN分配的代理转交地址(CoA)。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。