一种实现组播业务的方法

文档序号:7628205阅读:160来源:国知局
专利名称:一种实现组播业务的方法
技术领域
本发明涉及IP组播技术领域,特别是涉及一种实现组播业务的方法。
背景技术
IP组播是指在IP网络中将数据包发送到网络中的某个确定节点子集,这个子集称为组播组。IP组播的基本思想是源主机只发送一份组播数据,这份组播数据中的目的地址为组播组地址,组播组中的所有组播用户都可接收到同样的数据拷贝。利用网络的组播特性,运营商可以方便地提供一些新的增值业务,包括在线直播、网络电视、远程教育、远程医疗、网络电台、实时视频会议等互联网的信息服务领域。
一般来说,实现组播业务需要网络中的设备支持互联网组播管理协议(IGMP,Internet Group Management Protocol),通过该协议用户就可以加入某个组播组,成为该组播组的成员。
在实际应用中,用户可能需要通过接入设备与组播路由器相连的方式来实现组播业务。图1是用户通过接入设备来实现组播业务的组网结构示意图。如图1所示,该组网结构中包括组播源,用于完成组播数据报文的生成与加密,并将组播数据报文转发给组播路由器;组播路由器,用于接收并处理由组播源输入的组播数据报文,并将处理后的组播数据报文转发给接入设备;用于接收并处理由接入设备输入的IGMP报告报文或IGMP离开报文;还可以用于向接入设备发送IGMP查询报文,并对接入设备的响应情况进行相应地处理;接入设备,用于接收并处理由组播路由器输入的组播数据报文,将处理后的组播数据报文转发给用户;用于接收并处理由用户输入的IGMP报告报文或IGMP离开报文;还可以用于向用户发送IGMP查询报文,并通过用户的响应情况对组播数据报文地转发关系进行维护;用户,通过发送IGMP报告报文或离开报文,以体验组播业务,同时通过IGMP报告报文应答接入设备的IGMP查询报文,以维护组播数据报文的转发关系。
在实际应用中,接入设备一般有多个上行口,与接入设备相连的也有多个用户,不同的用户可以要求加入不同的组播组,接入设备将每一个组播组与自身的某一个上行口预先进行绑定。一般来说,组播路由器只向接入设备发送用户需要的组播数据,即只要组播组的成员不为空,组播路由器就会将该组播组的组播数据传输给接入设备。当用户加入某组播组,并且是该组播组的第一个组播成员时,实现组播业务的一般方法为用户向接入设备发送某组播组的IGMP报告报文;接入设备接收到用户的IGMP报告报文以后,通过与该组播组绑定的上行口向组播路由器发送该组播组的IGMP报告报文;组播路由器接收到接入设备发送的IGMP报告报文后,将该组播组的组播数据报文通过与该组播组绑定的上行口发送给接入设备;接入设备再将组播组的组播数据报文发送给用户。
在现有技术中,由于接入设备只能通过与组播组绑定的上行口向组播路由器发送IGMP报告报文,也只能通过与组播组绑定的上行口接收组播数据,接入设备无法对上行口进行选择。当有组播用户的组播组在接入设备多个上行口之间的绑定情况不均衡时,就可能导致接入设备的各个上行口组播业务负荷不均衡。比如接入设备有3个上行口,分别为上行口1、上行口2和上行口3。组播源可以为用户提供组播组A至组播组F共6个组播组,并规定将组播组A至组播组D与上行口1进行绑定,将组播组E与上行口2进行绑定,将组播组F与上行口3进行绑定。如果这6个组播组都有组播用户,则有组播用户的6个组播组中有4个组播组绑定了上行口1,分别有1个组播组绑定了上行口2和上行口3,即有组播用户的组播组在接入设备多个上行口之间的绑定情况不均衡。在上述的情况下,上行口1将对4个组播组的组播数据进行传输,而上行口2和上行口3分别只对1个组播组的组播数据进行传输。显然,上行口1比上行口2和上行口3承担了更多的业务负荷。
又比如接入设备有3个上行口,分别为上行口1、上行口2和上行口3。组播源可以为用户提供组播组A至组播组F共6个组播组,并规定将组播组A和组播组B与上行口1进行绑定,将组播组C和组播组D与上行口2进行绑定,将组播组E和组播组F与上行口3进行绑定。如果组播组A和组播组B有组播用户,其它的组播组都没有组播用户,则有组播用户的2个组播组全部绑定了上行口1,即有组播用户的组播组在接入设备多个上行口之间的绑定情况不均衡。在上述的情况下,接入设备中上行口1将对2个组播组的组播数据进行传输,而上行口2和上行口3则无任何的业务负担。
所以,在现有技术中,当有组播用户的组播组在接入设备多个上行口之间的绑定情况不均衡时,就可能导致接入设备的各个上行口组播业务负荷不均衡,影响接入设备的传输效率。
由此可见,在现有技术中,还没有一种可以避免接入设备上行口承担组播业务负荷不均衡的组播业务实现方法。

发明内容
有鉴于此,本发明的主要目的在于提供一种实现组播业务的方法。为了达到上述目的,本发明提出的技术方案为一种实现组播业务的方法,包括以下步骤A、用户向接入设备发送该组播组的互联网组播管理协议IGMP报告报文;B、接入设备根据各个可用上行口的实际负荷值和预先设定的负荷值,来确定要传输该组播组组播数据的上行口,并将接收到的IGMP报告报文通过确定的上行口发送给组播路由器;C、组播路由器将该组播组的组播数据通过接入设备中确定的上行口发送给接入设备,接入设备再发送给用户。
较佳地,当接入设备某上行口不可用时,该方法进一步包括a、接入设备判断该上行口是否承担了传输组播组数据的任务,如果是,则执行步骤b;否则,直接结束本过程;b、接入设备选择一个通过该不可用上行口进行组播数据传输的组播组,再根据各个可用上行口的实际负荷值和预先设定的负荷值,来确定要传输该组播组组播数据的上行口,并通过确定的上行口向组播路由器发送IGMP报告报文,组播路由器将该组播组的组播数据通过接入设备中确定的上行口发送给接入设备,接入设备再发送给用户;返回本步骤执行,直至接入设备处理完通过该不可用上行口进行组播数据传输的所有组播组。
较佳地,所述实际负荷值为实际传输组播数据的组播组个数;所述预先设定的负荷值为组播组个数的预设值;所述根据各个可用上行口的实际负荷值和预先设定的负荷值,来确定要传输该组播组组播数据的上行口方法为接入设备确定各个上行口实际传输组播数据的组播组个数,再分别取各个上行口实际传输组播数据的组播组个数和组播组个数预设值的比值,并将比值最小的上行口作为传输该组播组组播数据的上行口。
较佳地,所述实际负荷值为实际传输组播数据的组播组个数;所述预先设定的负荷值为承担负荷的相对值;所述根据各个可用上行口的实际负荷情况和预先设定的负荷值,来确定要传输该组播组组播数据的上行口方法为接入设备确定各个可用上行口实际传输组播数据的组播组个数,再分别取各个可用上行口实际传输组播数据的组播组个数和承担负荷的相对值的比值,并将比值最小的上行口作为传输该组播组组播数据的上行口。
较佳地,所述实际负荷值为实际传输组播数据的组播组个数;所述预先设定的负荷值为承担负荷的相对值;所述根据各个可用上行口的实际负荷情况和预先设定的负荷值,来确定要传输该组播组组播数据的上行口方法为接入设备确定各个可用上行口实际传输组播数据的组播组个数,并根据组播组总数和承担负荷的相对值来确定各个可用上行口的相对组播组个数,再分别取各个可用上行口实际传输组播数据的组播组个数和相对组播组个数的比值,并将比值最小的上行口作为传输该组播组组播数据的上行口。
综上所述,本发明提出的一种实现组播业务的方法可以在用户加入某组播组时,接入设备可以选择一个传输该组播组组播数据的上行口,而不是直接用预先绑定的上行口进行传输,可以避免接入设备的各个上行口承担组播业务负荷的不均衡,提高接入设备传输效率。


图1是实现组播业务的组网结构示意图;图2是本发明实现组播业务的流程图;图3是应用本发明方案的实施例一实现组播业务的流程图;图4是应用本发明方案的实施例二实现组播业务的流程图。
具体实施例方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。
本发明实现组播业务的基本思想是当用户要加入某组播组,成为该组播组的第一个组播成员时,用户向接入设备发送该组播组的互联网组播管理协议IGMP报告报文;接入设备根据各个可用上行口的实际负荷值和预先设定的负荷值,来确定将要传输该组播组组播数据的上行口,并将接收到的IGMP报告报文通过确定的上行口发送给组播路由器;组播路由器将该组播组的组播数据通过接入设备中确定的上行口发送给接入设备,接入设备再发送给用户。
当接入设备中的上行口能够正常地传输组播数据时,就称该上行口为可用上行口,否则,为不可用上行口。在实际应用中,接入设备的上行口不可用的原因可能为底层链路不可用、组播数据流中断或者在设定的时间间隔内没有从主用上行链路收到IGMP查询报文等。
接入设备某上行口的实际负荷值可以用通过该上行口进行组播数据传输的组播组个数来衡量,组播组个数越多,该上行口的负荷就越大。
另外,由于在实际应用中,接入设备可能不只是用于传输与组播业务相关的数据,还需要传输其它的业务数据,那么接入设备各个上行口能够承担的负荷也可能是不一样的。所以,针对实际应用中上行口的具体情况,可以为接入设备各个上行口预先设定负荷值。该负荷值可以为组播组个数的预设值,也可以为承担负荷的相对值。其中,组播组个数的预设值是接入设备根据系统能够向用户提供的实际组播组个数来设定的,各个上行口组播组个数的预设值之和就是实际组播组个数;而承担负荷的相对值即为接入设备各个上行口承担负荷的比值。
图2是本发明实现组播业务的流程图。如图2所示,当用户要加入某组播组,并且为该组播组的第一个组播成员时,本发明实现组播业务的步骤包括步骤201用户向接入设备发送该组播组的IGMP报告报文;步骤202接入设备根据各个可用上行口的实际负荷值和预先设定的负荷值,来确定将要传输该组播组组播数据的上行口,并将接收到的IGMP报告报文通过确定的上行口发送给组播路由器;步骤203组播路由器将该组播组的组播数据通过接入设备中确定的上行口发送给接入设备;步骤204接入设备再将该组播组的组播数据报文发送给该用户。
在实际应用中,当接入设备某上行口不可用时,接入设备还可以将原来通过不可用的上行口进行组播数据传输的组播组,重新指定为由接入设备中其它可用上行口来进行传输,以达到链路备份的目的。重新指定其它可用上行口来进行传输的方法为a、接入设备判断该上行口是否承担了传输组播组数据的任务,如果是,则执行步骤b;否则,直接结束本过程;b、接入设备选择一个通过该不可用上行口进行组播数据传输的组播组,再根据各个可用上行口的实际负荷值和预先设定的负荷值,来确定要传输该组播组组播数据的上行口,并通过确定的上行口向组播路由器发送IGMP报告报文,组播路由器将该组播组的组播数据通过接入设备中确定的上行口发送给接入设备,接入设备再发送给用户;返回本步骤执行,直至接入设备处理完通过该不可用上行口进行组播数据传输的所有组播组。
接入设备按照上述的方法,可以将原来通过不可用上行口进行组播数据传输的所有的组播组重新指定为由其它可用的上行口传输。
实施例一图3是应用本发明方案的实施例一的流程图,本实施例中,接入设备有3个上行口,分别为上行口1、上行口2和上行口3,都为可用上行口;接入设备连接10个组播用户,分别为组播用户1至组播用户10;预设3个上行口承担负荷的相对值分别为3、2和1,即上行口之间的负荷比值为上行口1∶上行口2∶上行口3=3∶2∶1,3个上行口预设的值分别为3、2、1;组播源一共可为用户提供6个组播组,分别为组播组A至组播组F。在本实施例中,用户1至用户3是组播组A的组播成员,并且组播组A的组播数据从接入设备的上行口1输入;用户4和用户5为组播组B的组播成员,并且组播组B的组播数据从接入设备的上行口1输入;用户6至用户8是组播组C的组播成员,并且组播组C的组播数据从接入设备的上行口2输入;用户9为组播组D的组播成员,并且组播组D的组播数据从接入设备的上行口3输入;用户10不属于任何组播组。
当用户10要加入组播组E时,本实施例实现组播业务的步骤包括步骤301用户10向接入设备发送组播组E的IGMP报告报文。
步骤302接入设备接收到用户10的IGMP报告报文以后,确定各个上行口实际传输组播数据的组播组个数,分别取各个可用上行口实际传输组播数据的组播组个数和承担负荷的相对值的比值,并将比值最小的上行口作为传输该组播组组播数据的上行口。
本实施例中,接入设备中3个上行口都是可用上行口,上行口1实际传输组播数据所属的组播组数为2,上行口2实际传输组播数据所属的组播组数为1,上行口3实际传输组播数据所属的组播组数为1;另外,3个上行口承担负荷的相对值分别为3、2和1;接入设备将实际传输组播数据所属的组播组数与各自预设值的比值分别为2/3、1/2和1,其中上行口2的比值最小,所以,接入设备将上行口2作为本次将使用的上行口。
在实际应用中,预先设定的负荷值可以为组播组个数的预设值,则接入设备可以分别取各个上行口实际传输组播数据的组播组个数和组播组个数预设值的比值,并将比值最小的上行口作为传输该组播组组播数据的上行口。
在实际应用中,如果预先设定的负荷值仍然为承担负荷的相对值,接入设备还可以在确定各个可用上行口实际传输组播数据的组播组个数之后,根据组播组总数和承担负荷的相对值来确定各个可用上行口的相对组播组个数,再分别取各个可用上行口实际传输组播数据的组播组个数和相对组播组个数的比值,并将比值最小的上行口作为传输该组播组组播数据的上行口的预设值。这里,相对组播组个数就是上行口承担负荷的相对值对应的组播组个数来确定的。比如3个上行口承担负荷的相对值为上行口1∶上行口2∶上行口3=3∶2∶1;实际的组播组总数为12,则上行口1至上行口3相对组播组个数分别为6、4、2;如果每一个上行口实际传输组播数据的组播组个数分别为2、1、1,则各个可用上行口实际传输组播数据的组播组个数和相对组播组个数的比值分别为2/6、1/4和1/2,接入设备将上行口2作为传输组播组组播数据的上行口。
步骤303接入设备将用户10的组播组E的IGMP报告报文通过上行口2发送给组播路由器。
步骤304组播路由器接收到接入设备发送的IGMP报告报文后,将组播组E的组播数据报文通过上行口2发送给接入设备。
步骤305接入设备再将组播组E的组播数据报文发送给用户10,用户10将收看组播节目E。
实施例二图4是应用本发明方案的实施例二流程图,本实施例中,接入设备有3个上行口,分别为上行口1、上行口2和上行口3,都为可用上行口;接入设备连接10个用户,分别为用户1至用户10;3个上行口承担负荷的相对值分别为3、2和1;组播源一共可提供6个组播节目,即可以有6个组播组,分别为组播组A至组播组F。在本实施例中,用户1至用户3为组播A的组播成员,并且组播组A的组播数据从接入设备的上行口1输入;用户4和用户5为组播组B的组播成员,并且组播组B的组播数据从接入设备的上行口1输入;用户6至用户8为组播组C的组播成员,并且组播组C的组播数据从接入设备的上行口2输入;用户9为组播组D的组播成员,并且组播组D的组播数据从接入设备的上行口3输入。
当上行口2不可用时,本实施例中接入设备会将原来由不可用的上行口传输的组播组的组播数据,重新指定为由接入设备中其它可用上行口来进行传输,其实现的步骤包括步骤401接入设备判断上行口2是否承担了传输组播数据的任务,如果是,则执行步骤402;否则,直接结束本过程。
本实施例中,上行口2承担了传输组播数据的任务,则执行步骤402。
步骤402接入设备选择一个通过上行口2进行组播数据传输的组播组。
本实施例中,上行口2只有一个组播组C,则直接选择组播组C。
步骤403接入设备确定各个可用上行口实际传输组播数据的组播组个数,再分别取各个可用上行口实际传输组播数据的组播组个数和承担负荷的相对值的比值,并将比值最小的上行口作为传输组播组C组播数据的上行口。
本实施例中,由于上行口2不可用,可用的上行口只有上行口1和上行口3,它们实际传输组播数据所属的组播组数分别为2和1;上行口1和上行口3承担负荷的相对值分别为3和1,上行口1和上行口3的组播组数与承担负荷的相对值的比值分别为2/3和1,则接入设备将上行口1作为传输组播组C组播数据的上行口。
在实际应用中,预先设定的负荷值可以为组播组个数的预设值,则接入设备可以分别取各个上行口实际传输组播数据的组播组个数和组播组个数预设值的比值,并将比值最小的上行口作为传输该组播组组播数据的上行口。
在实际应用中,如果预先设定的负荷值仍然为承担负荷的相对值,接入设备还可以在确定各个可用上行口实际传输组播数据的组播组个数之后,根据组播组总数和承担负荷的相对值来确定各个可用上行口的相对组播组个数,再分别取各个可用上行口实际传输组播数据的组播组个数和相对组播组个数的比值,并将比值最小的上行口作为传输该组播组组播数据的上行口的预设值。这里,相对组播组个数就是上行口承担负荷的相对值对应的组播组个数来确定的。
步骤404接入设备将组播组C的IGMP报告报文通过上行口1发送给组播路由器。
步骤405组播路由器接收到接入设备发送的IGMP报告报文后,将组播组C的组播数据报文通过上行口1发送给接入设备。
步骤406接入设备再将组播组C的组播数据报文发送给用户6至用户8,用户6至用户8将继续收看组播节目C。
步骤407接入设备判断是否已经处理完上行口2的所有的组播组,如果是,则结束本过程,否则,返回步骤402。
本实施例中,上行口2只有组播组C,则不用返回步骤402。在实际应用中,不可用上行口还可能负责传输多个组播组的组播数据,则接入设备将重复执行步骤402至步骤406,直到将所有的原来由不可用的上行口负责传输的组播数据的传输任务重新指定为由接入设备其它可用上行口传输为止。接入设备处理不可用上行口中多个组播组的顺序可以任意确定,也可以按照组播组的IP号来确定处理的顺序。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种实现组播业务的方法,其特征在于,当用户要加入某组播组时,该方法包括以下步骤A、用户向接入设备发送该组播组的互联网组播管理协议IGMP报告报文;B、接入设备根据各个可用上行口的实际负荷值和预先设定的负荷值,来确定要传输该组播组组播数据的上行口,并将接收到的IGMP报告报文通过确定的上行口发送给组播路由器;C、组播路由器将该组播组的组播数据通过接入设备中确定的上行口发送给接入设备,接入设备再发送给用户。
2.根据权利要求1所述的方法,其特征在于,当接入设备某上行口不可用时,该方法进一步包括a、接入设备判断该上行口是否承担了传输组播组数据的任务,如果是,则执行步骤b;否则,直接结束本过程;b、接入设备选择一个通过该不可用上行口进行组播数据传输的组播组,再根据各个可用上行口的实际负荷值和预先设定的负荷值,来确定要传输该组播组组播数据的上行口,并通过确定的上行口向组播路由器发送IGMP报告报文,组播路由器将该组播组的组播数据通过接入设备中确定的上行口发送给接入设备,接入设备再发送给用户;返回本步骤执行,直至接入设备处理完通过该不可用上行口进行组播数据传输的所有组播组。
3.根据权利要求1或2所述的方法,其特征在于,所述实际负荷值为实际传输组播数据的组播组个数;所述预先设定的负荷值为组播组个数的预设值;所述根据各个可用上行口的实际负荷值和预先设定的负荷值,来确定要传输该组播组组播数据的上行口方法为接入设备确定各个上行口实际传输组播数据的组播组个数,再分别取各个上行口实际传输组播数据的组播组个数和组播组个数预设值的比值,并将比值最小的上行口作为传输该组播组组播数据的上行口。
4.根据权利要求1或2所述的方法,其特征在于,所述实际负荷值为实际传输组播数据的组播组个数;所述预先设定的负荷值为承担负荷的相对值;所述根据各个可用上行口的实际负荷情况和预先设定的负荷值,来确定要传输该组播组组播数据的上行口方法为接入设备确定各个可用上行口实际传输组播数据的组播组个数,再分别取各个可用上行口实际传输组播数据的组播组个数和承担负荷的相对值的比值,并将比值最小的上行口作为传输该组播组组播数据的上行口。
5.根据权利要求1或2所述的方法,其特征在于,所述实际负荷值为实际传输组播数据的组播组个数;所述预先设定的负荷值为承担负荷的相对值;所述根据各个可用上行口的实际负荷情况和预先设定的负荷值,来确定要传输该组播组组播数据的上行口方法为接入设备确定各个可用上行口实际传输组播数据的组播组个数,并根据组播组总数和承担负荷的相对值来确定各个可用上行口的相对组播组个数,再分别取各个可用上行口实际传输组播数据的组播组个数和相对组播组个数的比值,并将比值最小的上行口作为传输该组播组组播数据的上行口。
全文摘要
本发明提供一种实现组播业务的方法,其关键在于,当用户要加入某组播组时,接入设备在可用的上行口之间进行选择,组播数据将从被选择的上行口进行传输。当用户要加入某组播组时,用户向接入设备发送该组播组的互联网组播管理协议(IGMP)报告报文;接入设备根据各个可用上行口的实际负荷值和预先设定的负荷值,来确定将要传输该组播组组播数据的上行口,并将接收到的IGMP报告报文通过确定的上行口发送给组播路由器;组播路由器接收到接入设备发送的IGMP报告报文后,将该组播组的组播数据报文通过接入设备中确定的上行口发送给接入设备;接入设备再发送给该用户。实施本发明可以避免接入设备上行口承担组播业务负荷不均衡,提高传输效率。
文档编号H04L29/06GK1852249SQ20051012578
公开日2006年10月25日 申请日期2005年12月1日 优先权日2005年12月1日
发明者王德义, 罗勇, 赵望生 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1