专利名称:一种为组播数据建立优化路径的方法及系统的制作方法
技术领域:
本发明涉及移动通信领域,尤其涉及一种为组播数据建立优化路径的方法及系统。
背景技术:
组播的出现是为了解决传统单播路由在处理组通信时出现的效率问题。随着无线和移动技术的发展,在移动过程中获取组播服务成为了一个研究热点,移动组播由传统固定组播发展而来,为移动用户提供诸如移动视频会议、移动在线游戏等多种应用,可有效提高数据传输效率。移动组播需要解决两个基本问题一是组成员关系管理,二是组成员位置管理。当前组成员关系管理一般采用Internet组管理协议IGMP (全称为Internet GroupManagement Protocol,简称)/组播监听者发现协议MLD(全称为Multicast ListenerDiscovery Protocol)等协议,而组成员位置管理则采用移动IP等移动性管理协议。IP组播业务模型分为两种任意源组播ASM (全称为Any-Source Multicast)和特定源组播SSM(全称为Source-Specific Multicast)。ASM模型使用一个组播组地址G来标识一个组播组,每个组播组可以有任意多个组播源和接收者,需要利用汇集点(RP,全称为Rendezvous Point)进行共享树(RPT,全称为Rendezvous Point Tree)的建立,并且通过组播源注册机制建立最短路径树SPT (全称为Shortest Path Tree) ;S SM和MLDv2/IGMPv3相结合,使用组播组地址G和组播源地址S来标识一个组播会话,也称为一个频道,每个频道只能有一 个指定源和任意多个接收者,在SSM模型中不需要选择汇集点RP和维护共享树(RPT),不需要进行组播源注册,从而在网络内直接构建以组播源S为根、以接收者为叶子的SPT,省去了 PIM-SM中先建立共享树再从共享树向最短路径树切换的过程,从而能够从一开始就沿最短路径树转发数据。和ASM比较,SSM是一种简单有效的组播模型,它可以克服ASM在访问控制、地址分配、源发现、易于遭受DoS攻击等方面的缺陷,因此SSM模型具有更强的可扩展性,可以提高网络性能,在未来的Internet中具备更加广泛的应用前
旦
-5^ O为了处理同一路由器在不同接口上收到来自不同对端的相同组播信息,需要对组播报文的入接口进行逆向路径转发RPF(全称为Reverse Path Forwarding)检查,以决定转发还是丢弃该报文。在SSM模型中,RPF检查的过程是接收组播报文的路由器以组播源的IP地址为目的地址查找单播路由表,对应表项中的出接口为RPF接口,路由器认为由该RPF接口接收到的组播报文所经历的路径是从组播源到本地的最短路径,将RPF接口与组播报文实际到达的接口相比较,如果两接口相一致,那么就认为这个组播包是从正确路径而来,RPF检查成功;如果两接口不一致,将该组播报文丢弃。作为路径判断依据的单播路由信息可以来源于任何一种单播路由协议、组播静态路由或者MBGP路由协议。对于移动组播,IETF在MULHM0B工作组致力于研究基于PMIPv6的移动组播机制,目前提出了一种基本解决方案,下面结合附图介绍该方案的实现过程,如图1,组播接收者丽和组播源MN-S (MN-Source)位于同一个PMIPv6域,组播接收者丽连接在移动接入网关MAGl上,MN-S连接在移动接入网关MAG2上,MN和MN-S的拓扑锚点可以是同一个LMA也可以是不同的LMA。在SSM模型下,丽通过MLDv2报告报文向MAGl报告自己需要接收来自组播源MN-S、发往组播组G的组播数据。MAGl收到MLDv2R印ort报文后,向组播源MN-S逐跳发送频道订阅报文(由MAGl发往LMA的订阅报文需要进行隧道封装,由LMA发往MAG2的订阅报文也需要进行隧道封装),沿途所有路由器都创建(HoA,G)组播路由项,HoA代表组播源MN-S的地址,G代表组播地址,从而构建以组播源MN-S为根,以组播接收者丽为叶子的SPT路径,从组播源MN-S所属的MAG2到LMA的路径是PMIPv6隧道,从LMA到组播接收者丽所属的MAGl的路径是PMIPv6隧道,随后组播源MN-S发出的组播数据沿着已建好的SPT到达丽,组播转发路径如图1的100所示。以上解决方案,由MN-S发往MN的组播报文必须先通过MN-S的移动接入网关MAG2和本地移动锚点LMA之间的PMIPv6隧道进行发送,组播报文到达丽的移动锚点LMA后,必须通过LMA和丽的移动接入网关MAGl之间的PMIPv6隧道进行发送,所以图1所示SPT路径100不是最短的组播转发路径。因此,目前基于PMIPv6所提出的移动组播解决方法不可避免的造成了非最短SPT路径,降低了路由效率和移动组播的性能。
发明内容
本发明要解决的技术问题是提供一种为组播报文建立优化路径的方法及系统,解决现有方案中必需经由本地移动锚点的非最短SPT路径造成的路由效率低的问题。为了解决上述技术问题, 本发明提供了一种为组播报文建立优化路径的方法,其中,在组播接收端(MN)所属的移动接入网关(MAG)与组播源(MN-S)所属的移动接入网关(MAG)之间建立组播隧道,所述MN-S所属的MAG收到所述MN-S发出的组播报文后,将所述组播报文通过所述组播隧道发送至所述MN所属的MAG。进一步地,上述方法还可以具有以下特征所述组播隧道建立完成后,所述MN所属的MAG根据所述MN上报的组播监听发现报告消息指示的频道信息判断本地是否存在该频道的组播路由项,不存在时,为此频道创建新的组播路由项,并将此组播路由项中的入接口设置为所述MN所属MAG到所述MN-S所属的MAG的隧道接口,将接收所述MN上报组播侦听发现报告消息的接口添加到此组播路由项的出接口列表中;存在时,更新此组播路由项,并将此组播路由项中的入接口设置为所述MN所属MAG到所述MN-S所属的MAG的隧道接口,将接收所述MN上报组播侦听发现报告消息的接口添加到此组播路由项的出接口列表中。进一步地,上述方法还可以具有以下特征创建组播路由项的同时,所述丽所属的MAG通过所述组播隧道向所述MN-S所属的MAG发送协议无关组播加入消息以声明加入所述频道。进一步地,上述方法还可以具有以下特征所述MN-S所属的MAG收到所述丽所属的MAG通过组播隧道发送的协议无关组播加入消息后,判断是否存所述频道的组播路由项,不存在时,为此频道创建新的组播路由项,并将接收所述协议无关组播加入消息的隧道接口添加到组播路由项的出接口列表中,存在时,更新此组播路由项的出接口列表,将接收协议无关组播加入消息的隧道接口添加到出接口列表中。
进一步地,上述方法还可以具有以下特征在丽所属的MAG与MN-S所属的MAG之间建立组播隧道的方法包括所述丽所属的MAG向所述MN-S所属的MAG发送组播隧道建立消息,所述MN-S所属的MAG向所述MN所属的MAG发送组播隧道建立应答消息,并建立到所述MN所属的MAG的组播隧道端节点,所述丽所属的MAG建立到所述MN-S所属的MAG的组播隧道端节点,组播隧道建立完成。进一步地,上述方法还可以具有以下特征所述隧道建立消息和组播隧道建立应答消息是对应的移动头消息;或者是携带了指示组播隧道建立标志的移动选项的对应的代理绑定更新消息和代理绑定应答消息。进一步地,上述方法还可以具有以下特征所述MN-S所属的MAG收到所述MN-S发送的组播报文,查找组播路由项,并向出接口列表中的所有隧道接口发送组播报文。进一步地,上述方法还可以具有以下特征所述丽所属的MAG收到所述丽发送的声明退出频道的频道订阅报文后,判断所述MN是MAG上最后一个接收来自指定组播源MN-S的组播数据的组播接收者时,则删除所述丽所属的MAG到所述MN-S所属的MAG组播隧道,否则保留所述组播隧道。进一步地,上述方法还可以具有以下特征拆除所述组播隧道的方式包括所述丽所属的MAG通过组播隧道向所述MN-S所属的MAG发送PM剪枝消息,并删除所述MN-S对应的组播路由项,所述MN-S所属的MAG收到所述剪枝消息后,将所述MN-S所属的MAG到所述MN所属的MAG的隧道接口从`组播路由项的出接口列表中删除。为了解决上述技术问题,本发明提供了一种为组播报文建立优化路径的系统,包括组播接收端(MN)所属的移动接入网关(MAG)和组播源(MN-S)所属的移动接入网关(MAG),其中,所述MN所属的MAG,用于与所述MN-S所属的MAG建立组播隧道;所述MN-S所属的MAG,用于与所述丽所属的MAG建立所述组播隧道;还用于在收到所述MN-S发出的组播报文后,将所述组播报文通过所述组播隧道发送至所述MN所属的MAG。进一步地,上述系统还可以具有以下特征所述丽所属的MAG,还用于在所述组播隧道建立完成后根据所述丽上报的组播监听发现报告消息指示的频道信息判断本地是否存在该频道的组播路由项,不存在时,为此频道创建新的组播路由项,并将此组播路由项中的入接口设置为所述MN所属MAG到所述MN-S所属的MAG的隧道接口,将接收所述MN上报组播侦听发现报告消息的接口添加到此组播路由项的出接口列表中;存在时,更新此组播路由项,并将此组播路由项中的入接口设置为所述丽所属MAG到所述MN-S所属的MAG的隧道接口,将接收所述丽上报组播侦听发现报告消息的接口添加到此组播路由项的出接口列表中。进一步地,上述系统还可以具有以下特征所述MN所属的MAG,还用于在创建组播路由项的同时,通过所述组播隧道向所述MN-S所属的MAG发送协议无关组播加入消息以声明加入所述频道。进一步地,上述系统还可以具有以下特征 所述MN-S所属的MAG,还用于收到所述丽所属的MAG通过组播隧道发送的协议无关组播加入消息后,判断是否存所述频道的组播路由项,不存在时,为此频道创建新的组播路由项,并将接收所述协议无关组播加入消息的隧道接口添加到组播路由项的出接口列表中,存在时,更新此组播路由项的出接口列表,将接收协议无关组播加入消息的隧道接口添力口到出接口列表中。进一步地,上述系统还可以具有以下特征所述丽所属的MAG,还用于在所述组播隧道建立过程中,向所述MN-S所属的MAG发送组播隧道建立消息,并在收到所述MN-S所属的MAG返回的组播隧道建立消息后,建立到所述MN-S所属的MAG的组播隧道端节点;所述MN-S所属的MAG,还用于收到所述组播隧道建立消息后,向所述丽所属的MAG发送组播隧道建立应答消息,并建立到所述MN所属的MAG的组播隧道端节点。进一步地,上述系统还可以具有以下特征所述隧道建立消息和组播隧道建立应答消息是对应的移动头消息;或者是携带了指示组播隧道建立标志的移动选项的对应的代理绑定更新消息和代理绑定应答消息。进一步地,上述系统还可以具有以下特征所述丽所属的MAG,还用于收到所述丽发送的声明退出频道的频道订阅报文后,判断所述MN是MAG上最后一个接收来自指定组播源MN-S的组播数据的组播接收者时,则删除所述丽所属的MAG到所述MN-S所属的MAG组播隧道,否则保留所述组播隧道。为了解决上述技术问题,本发明提供了一种移动接入网关,其中,包括组播处理模块;所述组播处理模块,用于在所处的移动接入网关(MAG)作为组播接收端(MN)所属的MAG时,与组播源(M N-S)所属的MAG建立组播隧道;还用于在所述MAG作为组播源MN-S所属的MAG时,与所述丽所属的MAG建立所述组播隧道;还用于在收到所述MN-S发出的组播报文后,将所述组播报文通过所述组播隧道发送至所述MN所属的MAG。进一步地,上述移动接入网关还可以具有以下特征所述组播处理模块,还用于在所处的MAG作为所述MN所属的MAG时,在所述组播隧道建立完成后根据所述MN上报的组播监听发现报告消息指示的频道信息判断本地是否存在该频道的组播路由项,不存在时,为此频道创建新的组播路由项,并将此组播路由项中的入接口设置为所述丽所属MAG到所述MN-S所属的MAG的隧道接口,将接收所述丽上报组播侦听发现报告消息的接口添加到此组播路由项的出接口列表中;存在时,更新此组播路由项,并将此组播路由项中的入接口设置为所述MN所属MAG到所述MN-S所属的MAG的隧道接口,将接收所述丽上报组播侦听发现报告消息的接口添加到此组播路由项的出接口列表中。进一步地,上述移动接入网关还可以具有以下特征所述组播处理模块,还用于在所处的MAG作为所述丽所属的MAG时,在创建组播路由项的同时,通过所述组播隧道向所述MN-S所属的MAG发送协议无关组播加入消息以声明加入所述频道。进一步地,上述移动接入网关还可以具有以下特征所述组播处理模块,还用于在所处的MAG作为所述MN-S所属的MAG时,收到所述MN所属的MAG通过组播隧道发送的协议无关组播加入消息后,判断是否存所述频道的组播路由项,不存在时,为此频道创建新的组播路由项,并将接收所述协议无关组播加入消息的隧道接口添加到组播路由项的出接口列表中,存在时,更新此组播路由项的出接口列表,将接收协议无关组播加入消息的隧道接口添加到出接口列表中。本方案提供的建立优化SPT路径的方法可以提高路由效率和移动组播的性能。
图1是现有技术中以及实施例中组播接收者和组播源位于同一个PMIPv6域内组播数据发送的方式示意图;图2是实施例中建立优化SPT路径的方法流程图;图3是实施例中对SPT树进行剪枝的方法流程图。
具体实施例方式为组播报文建立优化路径的方法包括在组播接收端(MN)所属的移动接入网关(MAG)与组播源(MN-S)所属的移动接入网关(MAG)之间建立组播隧道,所述MN-S所属的MAG收到所述MN-S发出的组播报文后,将所述组播报文通过所述组播隧道发送至所述MN所属的MG。 本方案对如图1的组播转发路径100进行优化,优化后的SPT路径如图1的101所示,由组播源MN-S发出的组播报文直接通过组播源MN-S的移动接入网关MAG2和组播接收者MN的移动接入网关MAGl之间的组播隧道进行封装转发。MN所属MAG与MN-S所属MAG可以位于同一 PMIPv6域内。所述组播隧道建立完成后,所述MN所属的MAG根据所述MN上报的组播监听发现报告消息指示的频道信息判 断本地是否存在该频道的组播路由项,不存在时,为此频道创建新的组播路由项,并将此组播路由项中的入接口设置为所述MN所属MAG到所述MN-S所属的MAG的隧道接口,将接收所述MN上报组播侦听发现报告消息的接口添加到此组播路由项的出接口列表中;存在时,更新此组播路由项,并将此组播路由项中的入接口设置为所述MN所属MAG到所述MN-S所属的MAG的隧道接口,将接收所述MN上报组播侦听发现报告消息的接口添加到此组播路由项的出接口列表中。创建组播路由项的同时,所述丽所属的MAG通过所述组播隧道向所述MN-S所属的MAG发送协议无关组播加入消息以声明加入所述频道。所述MN-S所属的MAG收到所述MN所属的MAG通过组播隧道发送的协议无关组播加入消息后,判断是否存所述频道的组播路由项,不存在时,为此频道创建新的组播路由项,并将接收所述协议无关组播加入消息的隧道接口添加到组播路由项的出接口列表中,存在时,更新此组播路由项的出接口列表,将接收协议无关组播加入消息的隧道接口添加到出接口列表中。在丽所属的MAG与MN-S所属的MAG之间建立组播隧道的方法包括所述丽所属的MAG向所述MN-S所属的MAG发送组播隧道建立消息,所述MN-S所属的MAG向所述MN所属的MAG发送组播隧道建立应答消息,并建立到所述MN所属的MAG的组播隧道端节点,所述丽所属的MAG建立到所述MN-S所属的MAG的组播隧道端节点,组播隧道建立完成。此组播隧道用于承载组播控制报文和组播数据报文,比如丽所属MAG发往MN-S所属MAG的PIM加入消息是通过该组播隧道发送的,MN-S所属MAG发往MN所属MAG的组播数据也是通过该组播隧道发送的。组播隧道建立消息和组播隧道建立应答消息是对应的移动头消息;即本方案中可以定义一对新的移动头消息即代理组播隧道消息PMT(Proxy Multicast Tunnel)和代理组播隧道响应消息PMTR(Proxy Multicast Tunnel Reply),或者,所述隧道建立消息PMT和组播隧道建立应答消息PMTR是或者是携带了指示组播隧道建立标志的移动选项的对应的代理绑定更新消息PBU和代理绑定应答消息PBA,即扩展PBU/PBA消息作为建立组播隧道的消息,例如定义新的移动选项来携带组播隧道建立标志,或者扩展PBU/PBA消息携带所述新的移动选项。丽所属MAG获知丽-S所属MAG的地址的方式是所述丽所属MAG收到所述组播接收端发送的声明加入以所述MN-S的地址为目标地址的频道订阅报文后,向此MAG所属的本地移动锚点LMA查询所述MN-S所属MAG的地址,所述LMA根据绑定缓存表项查询到所述组播源的地址并通知至所述MN所属MAG。所述MN-S所属的MAG收到所述MN-S发送的组播报文,查找组播路由项,并向出接口列表中的所有隧道接口发送组播报文。所述丽所属的MAG收到所述丽发送的声明退出频道的频道订阅报文后,判断所述MN是MAG上最后一个接收来自指定组播源MN-S的组播数据的组播接收者时,则删除所述丽所属的MAG到所述MN-S所属的MAG组播隧道,否则保留所述组播隧道。拆除所述组播隧道的方式包括所述丽所属的MAG通过组播隧道向所述MN-S所属的MAG发送PM剪枝消息,并删除所述MN-S对 应的组播路由项,所述MN-S所属的MAG收到所述剪枝消息后,将所述MN-S所属的MAG到所述丽所属的MAG的隧道接口从组播路由项的出接口列表中删除。本方案中可以为每个组播源MN-S创建一个组播隧道,从该组播源发出的所有频道报文共享该组播隧道;也可以为每个频道分别创建自己的组播隧道,从组播源发往不同频道的组播报文通过各自的组播隧道转发。本方案中以共享组播隧道为例进行了详细说明。与上述方法对应的为组播报文建立最短路径的系统,包括丽所属的MAG和MN-S所属的MAG,其中,所述MN所属的MAG,用于与所述MN-S所属的MAG建立组播隧道;所述MN-S所属的MAG,用于与所述MN所属的MAG建立所述组播隧道;还用于在收到所述MN-S发出的组播报文后,将所述组播报文通过所述组播隧道发送至所述MN所属的MAG。本系统中丽所属MAG和MN-S所属MAG的执行方式与上述方法中相应相同。所述丽所属的MAG,还用于在所述组播隧道建立完成后根据所述丽上报的组播监听发现报告消息指示的频道信息判断本地是否存在该频道的组播路由项,不存在时,为此频道创建新的组播路由项,并将此组播路由项中的入接口设置为所述MN所属MAG到所述MN-S所属的MAG的隧道接口,将接收所述MN上报组播侦听发现报告消息的接口添加到此组播路由项的出接口列表中;存在时,更新此组播路由项,并将此组播路由项中的入接口设置为所述丽所属MAG到所述MN-S所属的MAG的隧道接口,将接收所述丽上报组播侦听发现报告消息的接口添加到此组播路由项的出接口列表中。所述丽所属的MAG,还用于在创建组播路由项的同时,通过所述组播隧道向所述MN-S所属的MAG发送协议无关组播加入消息以声明加入所述频道。所述MN-S所属的MAG,还用于收到所述丽所属的MAG通过组播隧道发送的协议无关组播加入消息后,判断是否存所述频道的组播路由项,不存在时,为此频道创建新的组播路由项,并将接收所述协议无关组播加入消息的隧道接口添加到组播路由项的出接口列表中,存在时,更新此组播路由项的出接口列表,将接收协议无关组播加入消息的隧道接口添力口到出接口列表中。所述丽所属的MAG,还用于在所述组播隧道建立过程中,向所述MN-S所属的MAG发送组播隧道建立消息,并在收到所述MN-S所属的MAG返回的组播隧道建立消息后,建立到所述MN-S所属的MAG的组播隧道端节点;所述MN-S所属的MAG,还用于收到所述组播隧道建立消息后,向所述丽所属的MAG发送组播隧道建立应答消息,并建立到所述MN所属的MAG的组播隧道端节点。所述丽所属的MAG,还用于收到所述丽发送的声明退出频道的频道订阅报文后,判断所述MN是MAG上最后一个接收来自指定组播源MN-S的组播数据的组播接收者时,则删除所述丽所属的MAG到所述MN-S所属的MAG组播隧道,否则保留所述组播隧道。上述系统的组成网元的其它执行方式与上述方法中相同,此处不再赘述。本方案提供的移动接入网关,包括组播处理模块用于处理组播报文,其执行方式与上述方法中相应相同。例如,所述组播处理模块,用于在所处的移动接入网关(MAG)作为组播接收端(MN)所属的MAG时,与组播源(MN-S)所属的MAG建立组播隧道;还用于在所述MAG作为组播源MN-S所属的MAG时,与所述MN所属的MAG建立所述组播隧道;还用于在收到所述MN-S发出的组播报文后,将所述组播报文通过所述组播隧道发送至所述MN所属的MAG0所述组播处理模块,还用于在所处的MAG作为所述MN所属的MAG时,在所述组播隧道建立完成后根据所述MN上报的组播监听发现报告消息指示的频道信息判断本地是否存在该频道的组播路由项,不存在时,为此频道创建新的组播路由项,并将此组播路由项中的入接口设置为所述丽所属 MAG到所述MN-S所属的MAG的隧道接口,将接收所述丽上报组播侦听发现报告消息的接口添加到此组播路由项的出接口列表中;存在时,更新此组播路由项,并将此组播路由项中的入接口设置为所述MN所属MAG到所述MN-S所属的MAG的隧道接口,将接收所述丽上报组播侦听发现报告消息的接口添加到此组播路由项的出接口列表中。所述组播处理模块,还用于在所处的MAG作为所述丽所属的MAG时,在创建组播路由项的同时,通过所述组播隧道向所述MN-S所属的MAG发送协议无关组播加入消息以声明加入所述频道。所述组播处理模块,还用于在所处的MAG作为所述MN-S所属的MAG时,收到所述MN所属的MAG通过组播隧道发送的协议无关组播加入消息后,判断是否存所述频道的组播路由项,不存在时,为此频道创建新的组播路由项,并将接收所述协议无关组播加入消息的隧道接口添加到组播路由项的出接口列表中,存在时,更新此组播路由项的出接口列表,将接收协议无关组播加入消息的隧道接口添加到出接口列表中。上述系统的组播处理模块的其它执行方式与上述方法中相同,此处不再赘述。下面结合附图详细对本方案进行详细。如图2所示,具体实施例中建立优化SPT路径101的方法包括以下步骤步骤200,丽需要接收来自组播源MN-S、发往组播组G的IPv6组播数据,丽向MAGl发送MLD报告报文(MLD Report)以声明加入频道(HoA,G),HoA代表组播源MN-S的地址,G代表组播地址。其中,MN可以主动向MAGl发送MLD报告报文,也可以等待MAGl发来的MLD查询报文,然后发送MLD报告报文。步骤201,MAGl收到MN的MLD报告报文消息后,向LMA查询MAG2的地址,查询消息中携带MN-S的地址HoA。步骤202,LMA收到查询消息PBQ后,根据MN-S的地址HoA查询本地绑定缓存表项BCE,查找到MAG2的地址,并通知MAGl。 在进行SPT路径优化前组播接收者MN和组播源MN-S已经在LMA上进行了绑定注册,LMA已经为丽和MN-S创建了对应的绑定缓存表项BCE。步骤203,MAGl向MAG2发送代理组播隧道建立消息PMT (Proxy MulticastTunnel),消息源地址为MAGl的地址,目的地址为MAG2的地址。步骤204,MAG2收到PMT消息后,向MAGl发送代理组播隧道建立应答消息PMTR(Proxy Multicast Tunnel R印ly),同时MAG2建立到移动接入网关MAGl的双向隧道的端节点。步骤205,MAGl收到PMTR消息后,建立到移动接入网关MAG2的双向隧道的端节点。MAGl和MAG2之间的双向组播隧道建立完成,该双向隧道用于承载组播控制报文和组播数据报文。步骤206,MAGl为接收MLD报告消息的接口(即接收丽的频道订阅报文的接口)创建或者MLD状态表(G,过滤模式,组播源地址列表,定时器),并根据MLD报告消息中的频道信息判断是否存在该频道对应的组播路由项,不存在时,创建新的组播路由项(HoA,G),将组播路由项中的入接口 (即RPF接口)设置为MAGl到MAG2的隧道接口,将所述接收MLD报告消息的接口添加到组播路由项的出接口列表中;存在时,更新此组播路由项(HoA,G),将组播路由项中的入接口(即RPF接口)设置为MAGl到MAG2的隧道接口,将所述接收MLD报告消息的接口添加到组播路由项的出接口列表中。所述组播路由项包括组播源地址HoA、组播组地址G、入接口、出接口列表、定时器和标志等。步骤207,MAGl通过组播隧道向MAG2发送PM加入消息,并在此PM加入消息中携带MN和MN-S所属频道的频道信息。步骤207和步骤206没有执行先后顺序。步骤208,MAG2根据接收到的PM加入消息中的频道信息创建组播路由项(HoA,G),并将接收PM Join消息的隧道接口添加到组播路由项的出接口列表中。如果MAG2上已经存在该频道的组播路由项,则更新出接口列表,将接收PM Join消息的隧道接口添加到出接口列表中。步骤209, MN-S向组播组G发送组播报文M-data (Multicast data), MAG2收到组播报文后,向出接口列表中的所有出接口转发该组播报文。步骤210,MAG2对组播报文进行隧道封装后发送给MAGl。步骤211,MAGl收到来自隧道的组播报文后,查询组播路由项,如果报文实际到达的接口与组播路由项中的入接口一致,则向出接口列表中的所有出接口转发该组播报文。如果报文实际到达的接口与组播路由项中保存的入接口不匹配,则对此报文执行RPF检查若其RPF接口与入接口一致,则说明MAG2中保存的组播路由项(HoA,G)正确,认为此报文来自错误路径,丢弃此报文;若其RPF接口与入接口不符,则说明MAG2中保存的组播路由项(HoA,G)已过期,于是把入接口更新为RPF接口。本实施例通过以上步骤建立了优化SPT路径,组播接收者MN接收组播源的组播数据时不需要经过各自的锚点LMA,优化了组播转发路径,提高了组播路由效率。本方案以SSM模型为前提对SPT路径进行优化,对于ASM模型,当组播接收者侧的移动接入网关MAGl检测到从RP发往组播组G的组播数据速率超过一定的阈值时,将由MAGl发起从RPT向SPT的切换,当该切换发生时运用本实施例的方法也可以建立优化的SPT路径。如图3所示,对SPT树进行剪枝的方法流程图包括以下步骤步骤300 步骤302,组播源MN-S通过MAG2和MAGl之间的隧道向丽发送组播报文。步骤303,丽要求拒绝来自组播源MN-S、发往组播组G的IPv6组播数据,丽向MAGl发送MLD报告报文以声明离开频道(HoA,G)。其中,MN可以主动向MAGl发送MLD报告报文,也可以等待MAGl发来的MLD查询报文,然后发送MLD报告报文。步骤304,MAGl收到丽的MLD报告报文后,删除接收MLD报告报文的接口的MLD状态表,更新组播路由项 (HoA,G)。对于指定的组播源MN-S,如果丽不是MAGl下最后一个组播接收者,即MAGl下还存在其他的移动节点需要接收MN-S的组播数据,则不需要拆除MAGl和MAG2之间的隧道;如果MN是MAGl下最后一个组播接收者,则执行步骤305到步骤309。步骤305,MAGl通过组播隧道向MAG2发送PM剪枝消息。步骤306,删除MAGl上组播源MN-S对应的组播路由项(HoA,G)。步骤307,拆除与MAG2建立的隧道。步骤308,MAG2收到来自MAGl的剪枝报文后,对组播路由项(HoA,G)进行更新,将隧道接口(即MAG2到MAGl的隧道接口 )从组播路由项的出接口列表中删除。步骤309,拆除与MAGl建立的隧道。通过以上步骤对SPT树进行剪枝,通过隧道发送剪枝报文,优化了剪枝流程,提高了组播路由效率。需要指出的是,在以上实施例中,MN-S发往任意组播组的组播报文都通过MAG2和MAGl之间的隧道进行发送,即对于指定源MN-S而言,所有频道共享同一条隧道,此隧道可以是IP-1n-1P、GRE等隧道。利用本方案提供的技术方案也可以为每个频道创建一条专有隧道,可以通过建立GRE隧道来实现,并使用GRE Key来区分不同频道的隧道,本领域的技术人员运用本方案所公开的技术可以方便的得出通过专有隧道建立和更新优化的SPT树的流程。以上实施例针对PMIPv6的场景,并且运用MLDv2进行IPv6组播组成员管理。本方案中的技术方案同样适用于代理移动IPv4的场景,本领域的技术人员可以根据本方案实施例中的技术方案,并结合本领域的现有技术方案即可实现。在代理移动IPv6中的移动节点使用MLDv2加入组播组,而在代理移动IPv4中的移动节点使用IGMPv3加入组播组。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制 于任何特定形式的硬件和软件的结合。
权利要求
1.一种为组播报文建立优化路径的方法,其中, 在组播接收端(MN)所属的移动接入网关(MAG)与组播源(MN-S)所属的移动接入网关(MAG)之间建立组播隧道,所述MN-S所属的MAG收到所述MN-S发出的组播报文后,将所述组播报文通过所述组播隧道发送至所述MN所属的MAG。
2.如权利要求1所述的方法,其特征在于, 所述组播隧道建立完成后,所述MN所属的MAG根据所述MN上报的组播监听发现报告消息指示的频道信息判断本地是否存在该频道的组播路由项,不存在时,为此频道创建新的组播路由项,并将此组播路由项中的入接口设置为所述MN所属MAG到所述MN-S所属的MAG的隧道接口,将接收所述MN上报组播侦听发现报告消息的接口添加到此组播路由项的出接口列表中;存在时,更新此组播路由项,并将此组播路由项中的入接口设置为所述MN所属MAG到所述MN-S所属的MAG的隧道接口,将接收所述MN上报组播侦听发现报告消息的接口添加到此组播路由项的出接口列表中。
3.如权利要求2所述的方法,其特征在于, 创建组播路由项的同时,所述丽所属的MAG通过所述组播隧道向所述MN-S所属的MAG发送协议无关组播加入消息以声明加入所述频道。
4.如权利要求3所述的方法,其特征在于, 所述MN-S所属的MAG收到所述丽所属的MAG通过组播隧道发送的协议无关组播加入消息后,判断是否存所述频道的组播路由项,不存在时,为此频道创建新的组播路由项,并将接收所述协议无关组播加入消息的隧道接口添加到组播路由项的出接口列表中,存在时,更新此组播路由项的出接口列表,将接收协议无关组播加入消息的隧道接口添加到出接口列表中。
5.如权利要求1、2、3或4所述的方法,其特征在于, 在MN所属的MAG与MN-S所属的MAG之间建立组播隧道的方法包括 所述MN所属的MAG向所述MN-S所属的MAG发送组播隧道建立消息,所述MN-S所属的MAG向所述MN所属的MAG发送组播隧道建立应答消息,并建立到所述MN所属的MAG的组播隧道端节点,所述丽所属的MAG建立到所述MN-S所属的MAG的组播隧道端节点,组播隧道建立完成。
6.如权利要求5所述的方法,其特征在于, 所述隧道建立消息和组播隧道建立应答消息是对应的移动头消息;或者是携带了指示组播隧道建立标志的移动选项的对应的代理绑定更新消息和代理绑定应答消息。
7.如权利要求1所述的方法,其特征在于, 所述MN-S所属的MAG收到所述MN-S发送的组播报文,查找组播路由项,并向出接口列表中的所有隧道接口发送组播报文。
8.如权利要求1、2、3或4所述的方法,其特征在于, 所述丽所属的MAG收到所述丽发送的声明退出频道的频道订阅报文后,判断所述丽是MAG上最后一个接收来自指定组播源MN-S的组播数据的组播接收者时,则删除所述MN所属的MAG到所述MN-S所属的MAG组播隧道,否则保留所述组播隧道。
9.如权利要求8所述的方法,其特征在于, 拆除所述组播隧道的方式包括所述MN所属的MAG通过组播隧道向所述MN-S所属的MAG发送PM剪枝消息,并删除所述MN-S对应的组播路由项,所述MN-S所属的MAG收到所述剪枝消息后,将所述MN-S所属的MAG到所述MN所属的MAG的隧道接口从组播路由项的出接口列表中删除。
10.一种为组播报文建立优化路径的系统,包括组播接收端(MN)所属的移动接入网关(MAG)和组播源(MN-S)所属的移动接入网关(MAG),其中, 所述MN所属的MAG,用于与所述MN-S所属的MAG建立组播隧道; 所述MN-S所属的MAG,用于与所述MN所属的MAG建立所述组播隧道;还用于在收到所述MN-S发出的组播报文后,将所述组播报文通过所述组播隧道发送至所述MN所属的MAG。
11.如权利要求10所述的系统,其特征在于, 所述MN所属的MAG,还用于在所述组播隧道建立完成后根据所述MN上报的组播监听发现报告消息指示的频道信息判断本地是否存在该频道的组播路由项,不存在时,为此频道创建新的组播路由项,并将此组播路由项中的入接口设置为所述MN所属MAG到所述MN-S所属的MAG的隧道接口,将接收所述MN上报组播侦听发现报告消息的接口添加到此组播路由项的出接口列表中;存在时,更新此组播路由项,并将此组播路由项中的入接口设置为所述丽所属MAG到所述MN-S所属的MAG的隧道接口,将接收所述丽上报组播侦听发现报告消息的接口添加到此组播路由项的出接口列表中。
12.如权利要求11所述的系统,其特征在于, 所述丽所属的MAG,还用于在创建组播路由项的同时,通过所述组播隧道向所述MN-S所属的MAG发送协议无关组播加入消息以声明加入所述频道。
13.如权利要求12所述的系统,其特征在于, 所述MN-S所属的MAG,还用于收到所述MN所属的MAG通过组播隧道发送的协议无关组播加入消息后,判断是否存所述频道的组播路由项,不存在时,为此频道创建新的组播路由项,并将接收所述协议无关组播加入消息的隧道接口添加到组播路由项的出接口列表中,存在时,更新此组播路由项的出接口列表,将接收协议无关组播加入消息的隧道接口添加到出接口列表中。
14.如权利要求10、11、12或13所述的系统,其特征在于, 所述MN所属的MAG,还用于在所述组播隧道建立过程中,向所述MN-S所属的MAG发送组播隧道建立消息,并在收到所述MN-S所属的MAG返回的组播隧道建立消息后,建立到所述MN-S所属的MAG的组播隧道端节点; 所述MN-S所属的MAG,还用于收到所述组播隧道建立消息后,向所述丽所属的MAG发送组播隧道建立应答消息,并建立到所述MN所属的MAG的组播隧道端节点。
15.如权利要求14所述的系统,其特征在于, 所述隧道建立消息和组播隧道建立应答消息是对应的移动头消息;或者是携带了指示组播隧道建立标志的移动选项的对应的代理绑定更新消息和代理绑定应答消息。
16.如权利要求10、11、12或13所述的系统,其特征在于, 所述丽所属的MAG,还用于收到所述丽发送的声明退出频道的频道订阅报文后,判断所述MN是MAG上最后一个接收来自指定组播源MN-S的组播数据的组播接收者时,则删除所述丽所属的MAG到所述MN-S所属的MAG组播隧道,否则保留所述组播隧道。
17.—种移动接入网关,其中,包括组播处理模块;所述组播处理模块,用于在所处的移动接入网关(MAG)作为组播接收端(MN)所属的MAG时,与组播源(MN-S)所属的MAG建立组播隧道;还用于在所述MAG作为组播源MN-S所属的MAG时,与所述丽所属的MAG建立所述组播隧道;还用于在收到所述MN-S发出的组播报文后,将所述组播报文通过所述组播隧道发送至所述MN所属的MAG。
18.如权利要求17所述的移动接入网关,其特征在于, 所述组播处理模块,还用于在所处的MAG作为所述MN所属的MAG时,在所述组播隧道建立完成后根据所述MN上报的组播监听发现报告消息指示的频道信息判断本地是否存在该频道的组播路由项,不存在时,为此频道创建新的组播路由项,并将此组播路由项中的入接口设置为所述丽所属MAG到所述MN-S所属的MAG的隧道接口,将接收所述丽上报组播侦听发现报告消息的接口添加到此组播路由项的出接口列表中;存在时,更新此组播路由项,并将此组播路由项中的入接口设置为所述丽所属MAG到所述MN-S所属的MAG的隧道接口,将接收所述丽上报组播侦听发现报告消息的接口添加到此组播路由项的出接口列表中。
19.如权利要求18所述的移动接入网关,其特征在于, 所述组播处理模块,还用于在所处的MAG作为所述MN所属的MAG时,在创建组播路由项的同时,通过所述组播隧道向所述MN-S所属的MAG发送协议无关组播加入消息以声明加入所述频道。
20.如权利要求19所述的移动接入网关,其特征在于, 所述组播处理模块,还用于在所处的MAG作为所述MN-S所属的MAG时,收到所述MN所属的MAG通过组播隧道发送的协议无关组播加入消息后,判断是否存所述频道的组播路由项,不存在时,为此频道创建新的组播路由项,并将接收所述协议无关组播加入消息的隧道接口添加到组播路由项的出接口列表中,存在时,更新此组播路由项的出接口列表,将接收协议无关组播加入消息的隧道接口添加到出接口列表中。
全文摘要
本发明公开了一种为组播数据建立优化路径的方法及系统,此方法包括在组播接收端(MN)所属的移动接入网关(MAG)与组播源(MN-S)所属的移动接入网关(MAG)之间建立组播隧道,所述MN-S所属的MAG收到所述MN-S发出的组播报文后,将所述组播报文通过所述组播隧道发送至所述MN所属的MAG。本方案提供的建立优化SPT路径的方法可以提高路由效率和移动组播的性能。
文档编号H04W40/02GK103051545SQ20111030982
公开日2013年4月17日 申请日期2011年10月13日 优先权日2011年10月13日
发明者刘娟, 严为 申请人:中兴通讯股份有限公司