转发组播数据的方法、系统及路由器的制作方法

文档序号:7973967阅读:205来源:国知局
专利名称:转发组播数据的方法、系统及路由器的制作方法
技术领域
本发明涉及通信技术领域,尤其涉及一种转发组播数据的方法、系统及路由器。
背景技术
组播是一种把数据从一点传送到多点的新兴技术,相对于单播而言,因其具有降低服务器负荷、控制网络流量、减少冗余流量等优点,已经被广泛应用于IPTV(Internet Protocol Television)业务、远程教学等领域,以实现音频/视频流发布、短信息发布、数据发布、信息公告、同步资源等。
在组播技术中,通常要应用PIM SSM(Protocol Independent MulticastSource Specific Multicast指定源协议无关组播)协议、及IGMP(InternetGroup Management Protocol Internet因特网组管理)协议;其中,PIM SSM协议是能够在发送者与接受者之间建立一条最短路径转发树的组播路由协议,如图1所示,接收者欲接收组播数据,其通过与其直连的路由器D向上游路由器C发送特定源组加入报文,例如(s,g)Join,s代表数据源,g代表组播组,Join是报文的一种类型,路由器C再逐级向上游路由器转发所述源组加入报文(s,g)Join,直到最终在发送者与接收者之间建立起一条最短转发路径树,发送者将组播数据沿着这条最短路径树发送给接收者。如图中所示,路由器C转发所述报文给路由器B、路由器A,路由器A再通知发送者,之后,组播数据通过路由器A、B、C、D到达接收者;其中,我们定义与发送者直连的路由器A为源端路由器,假设路由器B不支持组播协议,则定义与其相邻的下游路由器C为组播边界路由器,这里路由器B可以是多个不支持组播协议的路由器组,这些路由器组组成非组播区域。
IGMP协议是IP协议的一部分,是组播组的成员管理协议,它主要负责两方面事情
IGMP协议允许路由器和主机之间相互告知有关组播传输的操作要求,例如,主机告知路由器其要动态地加入或者退出组播组,该协议也允许主机间交流组播传输信息的状态报文;IGMP协议负责通告网络上组播组的成员变化状况,以便路由协议及时更新路由,让路由器及时获知网络中主机欲加入组播组的信息、及在每一个路由器接口上维护组播组成员关系表,例如,某路由器在其接口上通过IGMP协议获知一主机发出的欲接收某组播组数据的报文信息,则该路由器就会利用PIM SSM协议建立一条从发送者到接收者之间的最短转发路径树,在此最短转发路径树上接收并转发组播组的所有数据给接收者。
但是,如果源端(发送者)与接收端(接收者)的路径上有一台或者几台路由器不支持PIM SSM协议,则源端与接收端的转发路径树就建立不起来,所以,当遇到运营商的网络中部分路由器不支持组播协议时,需要将网络中所有的路由器进行升级并对组播进行配置,以支持组播协议,显然这样的代价是巨大的。

发明内容
为此,本发明的实施例所要解决的技术问题是提供一种转发组播数据的方法、系统及路由器,使得当网络中有部分路由器不支持组播协议时,不需要对所有路由器进行升级,就能完成组播数据的转发。
于是,本发明的实施例提供了一种转发组播数据的方法,用于当组播边界路由器的上游路由器不支持组播协议时完成组播数据的转发,包括组播边界路由器获知源路由器的IP地址,并利用所述IP地址向源路由器发送注册加入报文;所述源路由器根据接收到的所述注册加入报文获取所述组播边界路由器的IP地址,并向所述组播边界路由器发送携带有组播数据的注册报文;所述组播边界路由器通过所述携带有组播数据的注册报文获取组播数据,并转发所述组播数据。
本发明实施例还提供了一种转发组播数据的系统,用于当组播边界路由器的上游路由器不支持组播协议时完成组播数据的转发,包括组播边界路由器和源路由器;所述组播边界路由器,用于获知源路由器的IP地址,并利用所述IP地址向源路由器发送注册加入报文,并接收所述源路由器发送的注册报文,获取并转发组播数据;所述源路由器,用于接收源路由器发送的所述注册加入报文,并获取所述组播边界路由器的IP地址,向所述组播边界路由器发送携带有组播数据的注册报文。
本发明实施例还提供了一种路由器,用于实现对组播数据的转发,包括注册报文接收单元、源路由器IP地址获取单元、注册加入报文发送单元和组播数据转发单元;所述源路由器IP地址获取单元,用于获取所述源路由器的IP地址;所述注册加入报文发送单元,用于利用所述源路由器的IP地址向所述源路由器发送注册加入报文;所述注册报文接收单元,用于接收所述源路由器发送的注册报文;所述组播数据转发单元,用于通过解封装所述注册报文获取组播数据,并转发所述组播数据。
本发明实施例还提供了一种路由器,用于实现组播数据的转发,包括注册加入报文接收单元,用于接收所述组播边界路由器发送的注册加入报文;组播边界路由器IP地址获取单元,用于通过所述注册加入报文获取所述组播边界路由器的IP地址;注册报文发送单元,用于封装组播数据,并向所述组播边界路由器发送携带有组播数据的注册报文。
可见,采用本发明实施例的技术方案,当网络中有部分路由器不支持组播协议时,只需要对源端路由器和组播边界路由器进行升级就可以实现穿越非组播区域的组播数据的传递,完成组播数据的转发,从而不再需要对系统中所有路由器进行升级。


图1为现有技术中各网络成员转发组播数据的示意图;图2为本发明实现转发组播数据方法的流程图;图3为本发明所述方法一实施例流程示意图;图4为图3中停止转发组播数据一种情况流程示意图;图5为图3中停止转发组播数据另一种情况流程示意图;图6为本发明实施例的转发组播数据的系统结构示意图;图7为本发明实施例的组播边界路由器结构示意图;图8为本发明实施例的源路由器结构示意图。
具体实施例方式
下面,结合附图对本发明的实施例进行详细描述。
当组播边界路由器的上游路由器不支持组播协议而仍然要完成组播数据的转发时,可以在组播边界路由器和源路由器之间动态建立一个单播转发组播数据的隧道,用于穿越非组播区域来实现组播数据的转发,按照此思路实现的组播数据转发,只需要升级组播边界路由器和源路由器就可以实现跨越非组播区域的组播数据的转发业务,而不再需要对网络中所有路由器进行升级。
为此,如图2所示,采用如下步骤实现组播数据的转发步骤10,组播边界路由器获知源路由器的IP地址,并利用该IP地址单播向源路由器发送注册加入报文;步骤11,源路由器接收到所述注册加入报文后,以此获取组播边界路由器的IP地址,并通过该IP地址单播向组播边界路由器发送携带有组播数据的注册报文;
步骤12,组播边界路由器通过携带有组播数据的注册报文获取组播数据,并转发该组播数据。
这样,通过注册加入报文,源路由器就获得了组播边界路由器的IP地址,利用该IP地址,源路由器单播向组播边界路由器发送携带有组播数据的注册报文,组播边界路由器解封装该注册报文以获得组播数据,并向其下游路由器转发组播数据,最后到达接收者。
为进一步加以说明,如图3所示,设定路由器A、C、D、E、F支持组播,支持PIM SSM协议,路由器E、F为最后一跳路由器,支持IGMPv3协议,用于接收主机A、B的加入信息,路由器A与服务器直连,为第一跳路由器,即源路由器,路由器B不支持组播,不支持PIM SSM协议,这里,需要强调的是,路由器B可以是一个路由器或者是多个路由器组成的路由器组,路由器B组成了非组播区域,路由器C为组播边界路由器;首先,假设主机A向路由器E上报要接收源组加入信息为(s,g)Join的组播数据,则,路由器E收到IGMPv3协议的报告后,向其上游路由器D发送PIM SSM协议的(s,g)Join报文,路由器D转发PIM SSM协议的(s,g)Join报文给路由器C,路由器C收到(s,g)Join报文后,在准备向其上游路由器B发送(s,g)Join报文时,发现路由器B不支持PIM SSM协议,也就是说,路由器C发现其上游路由器B接口没有PIM邻居,于是,路由器C开始尝试建立与第一跳路由器A之间的单播隧道,以完成组播数据的转发;路由器C向路由器B发送存活时间TTL(Time To Live)为1的数据报文,该报文中的目的地址为服务器的IP地址,有关TTL数据报文的格式;路由器B收到TTL数据报文后,丢弃该报文并返回一个ICMP(InternetControl Message Protocal)超时报文,路由器C收到该超时报文后,将TTL加1后,继续向路由器B发送TTL数据报文,路由器B收到该报文后,转发该报文给路由器B的上级路由器A,路由器A转发该报文给服务器,服务器返回端口不可达报文。这样,路由器C就找到了到达服务器路径上的各跳路由器的IP地址,因此就可以获得第一跳路由器,即路由器A的IP地址;其中,路由器B与服务器之间可以有多级路由器,路由器B转发的所述报文依次经路由器B的上级路由器转发,最后到达服务器,服务器返回端口不可达报文;这里,所述上游路由器都返回一超时报文,而服务器返回的是一端口不可达报文,其中,所述路由器返回动作详见ICMP协议。
以上为本发明实施例给出的组播边界路由器获取源路由器的IP地址的一种方法,在实际应用中,也可以采取其它方式获取源路由器的IP地址。
按照路由器A的IP地址,路由器C向路由器A发送注册加入报文,该注册加入报文的格式如下0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|PIM Ver|Type| | |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Group Address(Encoded-Group format)|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Source Address(Encoded-Unicast format) |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+其中,Type类型字段拓展到9,用于标识该报文为注册加入报文;GroupAddress(Encoded-Group format)为组地址(封装组格式),用于标识主机A要加入的组地址,Source Address(Encoded-Unicast format)为源地址(封装单播格式),用于标识主机A要加入的源地址,即组播数据所在的源地址;注册加入报文中的单播IP地址,其IP地址头部源地址填写组播边界路由器C的IP地址,目的地址填写第一跳路由器A的IP地址;至此,路由器A与组播边界路由器C的单播隧道就建立起来了;
该注册加入报文是对PIM SSM报文类型的拓展,详细可参见RFC2362标准;第一跳路由器A收到注册加入报文后,从该报文IP地址头部的源地址中提取出组播边界路由器C的IP地址,然后通过注册报文将组播数据通过单播隧道发送到组播边界路由器C;其中,注册报文的单播IP地址,其IP地址头部源地址填写路由器A的IP地址,目的地址填写组边界路由器C的IP地址;注册报文的格式也采用PIM SSM注册报文格式;组播边界路由器C收到注册报文后,解封装该注册报文,以获得组播数据;之后,组播边界路由器C利用PIM SSM协议,从其接口处转发所述的组播数据。
当需要停止利用单播隧道进行组播数据的转发时,一般有两种可能的情况第一种情况组播边界路由器感知到无人接收组播数据,组播边界路由器向第一跳路由器发送注册停止报文,请求剪掉单播隧道;如图4所示,主机A不想接收组播数据时,向其上游路由器E发送剪枝报文(s,g)prune,路由器E逐级向上游路由器转发该剪枝报文,直到组播边界路由器C收到为止;其中,剪枝报文,详见PIM SSM协议,采用PIM SSM中的register-stop报文类型;组播边界路由器C收到剪枝报文后,向路由器A单播发送注册离开报文;路由器A收到注册离开报文后,剪掉单播隧道,路由器A不再单播向组播边界路由器发送报文;其中,注册离开报文采用PIM SSM中的register-stop报文类型;IP地址头部源地址填写组播边界路由器C的IP地址,IP地址头部目的地址填写第一跳路由器A的IP地址;第二种情况组播边界路由器的上游路由器接口重新获得邻居信息,非组播区域的路由器开始支持组播协议时,组播边界路由器单播向第一跳路由器发送注册离开报文,请求剪掉单播隧道;如图5所示,组播边界路由器C的上游路由器B接口重新获得邻居信息,非组播区域的路由器B开始支持组播协议时,此时路由器C会发现有正常的组播数据到达,于是,组播边界路由器C经单播隧道向路由器A发送注册离开报文,路由器A收到注册离开报文后,剪掉单播隧道,路由器A不再单播向组播边界路由器发送报文。
本发明实施例还提供了一种转发组播数据的系统,如图6所示,转发组播数据的系统20,包括组播边界路由器21和源路由器22;转发组播数据的系统20,用于当组播边界路由器的上游路由器不支持组播,不支持PIM SSM协议时,完成对组播数据的转发;这里,需要强调的是,组播边界路由器的上游路由器可以是一个路由器或者是多个路由器组成的路由器组;组播边界路由器21,用于获知源路由器22的IP地址,利用所述IP地址向源路由器22发送注册加入报文,并接收所述源路由器22发送的注册报文,获取并转发组播数据;源路由器22,用于接收源路由器发送的所述注册加入报文,并获取所述组播边界路由器的IP地址,向所述组播边界路由器发送携带有组播数据的注册报文。
所述组播边界路由器21,如图7所示,包括注册报文接收单元211、源路由器IP地址获取单元212、注册加入报文发送单元213和组播数据转发单元214;其中,源路由器IP地址获取单元212,用于获取源路由器22的IP地址;
注册加入报文发送单元213,用于利用所述源路由器22的IP地址向源路由器22发送注册加入报文;所述注册加入报文包含组播边界路由器的IP地址;注册报文接收单元211,用于接收源路由器22发送的注册报文,所述注册报文包含组播数据;组播数据转发单元214,用于通过解封装所述注册报文获取组播数据,并转发所述组播数据。
其中,组播边界路由器21,还可以包括检测单元215,用于检测是否收到剪枝报文或者检测是否接收到组播边界路由器的上游路由器转发的组播数据,若为是,则发送检测信息;注册离开报文发送单元216,用于接收所述检测信息,向源路由器22发送注册离开报文,请求停止发送注册报文。
所述源路由器22,如图8所示,包括注册加入报文接收单元221,用于接收组播边界路由器21发送的注册加入报文;组播边界路由器IP地址获取单元222,用于通过所述注册加入报文获取组播边界路由器21的IP地址;注册报文发送单元223,用于封装组播数据,并向组播边界路由器21发送携带有组播数据的注册报文。
其中,源路由器22,还可以包括注册离开报文接收单元224,用于接收组播边界路由器21发送的注册离开报文;注册离开报文处理单元225,用于通知注册报文发送单元223,停止注册报文的发送。
本发明实施例还提供了一种路由器,用于实现对组播数据的转发,即本发明实施例所述系统中提到的组播边界路由器21,如图7所示,包括
注册报文接收单元211、源路由器IP地址获取单元212、注册加入报文发送单元213和组播数据转发单元214;其中,源路由器IP地址获取单元212,用于获取源路由器22的IP地址;注册加入报文发送单元213,用于利用所述源路由器22的IP地址向源路由器22发送注册加入报文;所述注册加入报文包含组播边界路由器的IP地址;注册报文接收单元211,用于接收源路由器22发送的注册报文,所述注册报文包含组播数据;组播数据转发单元214,用于通过解封装所述注册报文获取组播数据,并转发所述组播数据;其中,组播边界路由器21,还可以包括检测单元215,用于检测是否收到剪枝报文或者检测是否接收到组播边界路由器的上游路由器转发的组播数据,若为是,则发送检测信息;注册离开报文发送单元216,用于接收所述检测信息,向源路由器22发送注册离开报文,请求停止发送注册报文。
本发明实施例还提供了一种路由器,用于实现组播数据的转发,即本发明实施例所述系统中提到的源路由器22,如图8所示,包括注册加入报文接收单元221,用于接收组播边界路由器21发送的注册加入报文;组播边界路由器IP地址获取单元222,用于通过所述注册加入报文获取组播边界路由器21的IP地址;注册报文发送单元223,用于封装组播数据,并向组播边界路由器21发送携带有组播数据的注册报文。
其中,源路由器22,还可以包括注册离开报文接收单元224,用于接收组播边界路由器21发送的注册离开报文;
注册离开报文处理单元225,用于通知注册报文发送单元223,停止注册报文的发送。
综上所述,当网络中有部分路由器不支持组播协议时,只需要对源端路由器和组播边界路由器进行升级就可以实现穿越非组播区域,就能完成组播数据的转发,从而不再需要对所有路由器进行升级。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种转发组播数据的方法,用于当组播边界路由器的上游路由器不支持组播协议时完成组播数据的转发,其特征在于,包括组播边界路由器获知源路由器的IP地址,并利用所述IP地址向源路由器发送注册加入报文;所述源路由器根据接收到的所述注册加入报文获取所述组播边界路由器的IP地址,并向所述组播边界路由器发送携带有组播数据的注册报文;所述组播边界路由器通过所述携带有组播数据的注册报文获取组播数据,并转发所述组播数据。
2.根据权利要求1所述的方法,其特征在于,所述组播边界路由器获知源路由器IP地址的步骤,具体包括组播边界路由器向其上游路由器发送数据报文,其目的地址为组播数据源的发送者的IP地址;所述上游路由器返回一超时报文,所述组播数据源的发送者返回一端口不可达报文;组播边界路由器根据所述上游路由器返回的超时报文查找与发送者直连的源路由器的IP地址。
3.根据权利要求1所述的方法,其特征在于,所述注册加入报文通过拓展的注册加入报文的类型字段进行标识。
4.根据权利要求1所述的方法,其特征在于,还包括组播边界路由器收到剪枝报文时,向源路由器发送注册离开报文;所述源路由器停止向所述组播边界路由器发送携带有组播数据的注册报文。
5.根据权利要求1所述的方法,其特征在于,还包括组播边界路由器收到其上游路由器发送的组播数据时,向源路由器发送注册离开报文;所述源路由器停止向所述边界组播路由器发送携带有组播数据的注册报文。
6.一种转发组播数据的系统,用于当组播边界路由器的上游路由器不支持组播协议时完成组播数据的转发,其特征在于,包括组播边界路由器和源路由器;所述组播边界路由器,用于获知源路由器的IP地址,并利用所述IP地址向源路由器发送注册加入报文,并接收所述源路由器发送的注册报文,获取并转发组播数据;所述源路由器,用于接收源路由器发送的所述注册加入报文,并获取所述组播边界路由器的IP地址,向所述组播边界路由器发送携带有组播数据的注册报文。
7.根据权利要求6所述的系统,其特征在于,所述组播边界路由器,包括注册报文接收单元、源路由器IP地址获取单元、注册加入报文发送单元和组播数据转发单元;所述源路由器IP地址获取单元,用于获取所述源路由器的IP地址;所述注册加入报文发送单元,用于利用所述源路由器的IP地址向所述源路由器发送注册加入报文;所述注册报文接收单元,用于接收所述源路由器发送的注册报文;所述组播数据转发单元,用于通过解封装所述注册报文获取组播数据,并转发所述组播数据。
8.根据权利要求7所述的系统,其特征在于,所述组播边界路由器,还包括组播数据检测单元,用于检测是否收到剪枝报文或者是否接收到组播边界路由器的上游路由器转发的组播数据,若为是,则发送检测信息;注册离开报文发送单元,用于接收所述检测信息,向所述源路由器发送注册离开报文,请求停止发送注册报文。
9.根据权利要求6所述的系统,其特征在于,所述源路由器,包括注册加入报文接收单元,用于接收所述组播边界路由器发送的注册加入报文;组播边界路由器IP地址获取单元,用于通过所述注册加入报文获取所述组播边界路由器的IP地址;注册报文发送单元,用于封装组播数据,并向所述组播边界路由器发送携带有组播数据的注册报文。
10.根据权利要求9所述的系统,其特征在于,所述源路由器,还包括注册离开报文接收单元,用于接收所述组播边界路由器发送的注册离开报文;注册离开报文处理单元,用于通知所述注册报文发送单元,停止注册报文的发送。
11.一种路由器,用于实现对组播数据的转发,其特征在于,包括注册报文接收单元、源路由器IP地址获取单元、注册加入报文发送单元和组播数据转发单元;所述源路由器IP地址获取单元,用于获取所述源路由器的IP地址;所述注册加入报文发送单元,用于利用所述源路由器的IP地址向所述源路由器发送注册加入报文;所述注册报文接收单元,用于接收所述源路由器发送的注册报文;所述组播数据转发单元,用于通过解封装所述注册报文获取组播数据,并转发所述组播数据。
12.根据权利要求11所述的路由器,其特征在于,还包括检测单元,用于检测是否收到剪枝报文或者检测是否接收到组播边界路由器的上游路由器转发的组播数据,若为是,则发送检测信息;注册离开报文发送单元,用于接收所述检测信息,向所述源路由器发送注册离开报文,请求停止发送注册报文。
13.一种路由器,用于实现组播数据的转发,其特征在于,包括注册加入报文接收单元,用于接收所述组播边界路由器发送的注册加入报文;组播边界路由器IP地址获取单元,用于通过所述注册加入报文获取所述组播边界路由器的IP地址;注册报文发送单元,用于封装组播数据,并向所述组播边界路由器发送携带有组播数据的注册报文。
14.根据权利要求13所述的路由器,其特征在于,还包括注册离开报文接收单元,用于接收所述组播边界路由器发送的注册离开报文;注册离开报文处理单元,用于通知所述注册报文发送单元,以停止注册报文的发送。
全文摘要
本发明的实施例提供了一种转发组播数据的方法、系统及路由器,用于当组播边界路由器的上游路由器不支持组播协议时完成组播数据的转发。其中,所述转发组播数据的方法,包括组播边界路由器获知源路由器的IP地址,利用该IP地址向源路由器发送注册加入报文;源路由器获取组播边界路由器的IP地址,并发送注册报文;所述组播边界路由器获取组播数据,并转发。采用本发明实施例提供的技术方案,当网络中有部分路由器不支持组播协议时,只需要对源端路由器和组播边界路由器进行升级就可以实现穿越非组播区域的组播数据的传递,完成组播数据的转发,从而不再需要对系统中所有路由器进行升级。
文档编号H04L29/06GK1988507SQ20061016236
公开日2007年6月27日 申请日期2006年12月14日 优先权日2006年12月14日
发明者陈重, 程松明, 周小牛, 张海峰 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1