发明内容
本发明实施例提供一种SPT建立方法和设备,以避免系统资源浪费。
为了达到上述目的,本发明实施例提供一种协议无关组播-稀疏模式PIM-SM网络中的最短路径树SPT建立方法,该方法包括以下步骤:
汇集点RP设备接收来自组播源侧指定路由器DR设备关于组播组G的注册报文,并利用所述注册报文中携带的(S,G)信息建立(S,G)注册表项;
如果本RP设备当前已经收到过来自接收者侧DR设备的携带接收者需要加入的组播组G的报文,则所述RP设备将所述注册报文中携带的组播源S的地址信息发送给所述接收者侧DR设备;以使所述接收者侧DR设备利用所述组播源S的地址信息向所述组播源侧DR设备发送加入报文,并建立所述接收者侧DR设备与所述组播源侧DR设备之间的SPT。
所述RP设备将所述注册报文中携带的组播源S的地址信息发送给所述接收者侧DR设备,具体包括:
如果本RP设备当前已经收到过来自接收者侧DR设备的携带接收者需要加入的组播组G的加入报文,所述加入报文用于在RP设备与接收者侧DR设备之间建立共享树RPT,则所述RP设备从所述注册报文中解析出携带组播源S的地址信息的组播数据,并沿RP设备与接收者侧DR设备之间的RPT将携带所述组播源S的地址信息的组播数据发送给所述接收者侧DR设备;或者,
如果本RP设备当前已经收到过接收者侧DR设备以单播方式向本RP设备发送的携带接收者需要加入的组播组G的(*,G)请求报文,则所述RP设备从所述注册报文中解析出组播源S的地址信息,利用所述组播源S的地址信息构造(S,G)通告报文,以单播方式将携带所述组播源S的地址信息的(S,G)通告报文发送给所述接收者侧DR设备。
所述RP设备利用所述注册报文中携带的(S,G)信息建立(S,G)注册表项之后,所述方法还包括:
所述RP设备在收到来自接收者侧DR设备的携带接收者需要加入的组播组G的报文后,利用所述报文中携带的所述组播组G查询所述(S,G)注册表项,得到所述组播组G对应的组播源S的地址信息,并将所述组播源S的地址信息发送给所述接收者侧DR设备;以使所述接收者侧DR设备利用所述组播源S的地址信息向所述组播源侧DR设备发送加入报文,并建立所述接收者侧DR设备与所述组播源侧DR设备之间的SPT。
所述RP设备将所述组播源S的地址信息发送给所述接收者侧DR设备的过程,具体包括:
所述RP设备在收到来自接收者侧DR设备的携带接收者需要加入的组播组G的加入报文时,所述加入报文用于在RP设备与接收者侧DR设备之间建立RPT,所述RP设备利用所述加入报文中携带的组播组G查询所述(S,G)注册表项,得到所述组播组G对应的组播源S的地址信息,并利用所述组播源S的地址信息构造组播数据,并沿RP设备与接收者侧DR设备之间的RPT将携带组播源S的地址信息的组播数据发送给所述接收者侧DR设备;或者,
所述RP设备在收到接收者侧DR设备以单播方式向本RP设备发送的携带接收者需要加入的组播组G的(*,G)请求报文时,所述RP设备利用所述(*,G)请求报文中携带的组播组G查询所述(S,G)注册表项,得到所述组播组G对应的组播源S的地址信息,并利用所述组播源S的地址信息构造(S,G)通告报文,并以单播方式将携带所述组播源S的地址信息的(S,G)通告报文发送给所述接收者侧DR设备。
所述(*,G)请求报文用于请求接收者需要加入的组播组G对应的组播源S的地址信息,且所述(*,G)请求报文的源地址为接收者侧DR设备的地址,目的地址为RP设备的地址,组播组地址为接收者需要加入的组播组G的组播组地址;所述(S,G)通告报文用于通告接收者需要加入的组播组G对应的组播源S的地址信息,且所述(S,G)通告报文的源地址为RP设备的地址,目的地址为接收者侧DR设备的地址,组播组地址为所述组播组G的组播组地址,组播源地址为所述组播组G对应的组播源S的地址信息。
本发明实施例提供一种路由设备,作为汇集点RP设备应用于协议无关组播-稀疏模式PIM-SM网络中,所述RP设备具体包括:
接收模块,用于接收来自组播源侧指定路由器DR设备关于组播组G的注册报文;
建立模块,用于在收到来自组播源侧DR设备关于组播组G的注册报文时,利用所述注册报文中携带的(S,G)信息建立(S,G)注册表项;
发送模块,用于在本RP设备当前已经收到过来自接收者侧DR设备的携带接收者需要加入的组播组G的报文时,将所述注册报文中携带的组播源S的地址信息发送给所述接收者侧DR设备;以使所述接收者侧DR设备利用所述组播源S的地址信息向所述组播源侧DR设备发送加入报文,并建立所述接收者侧DR设备与所述组播源侧DR设备之间的最短路径树SPT。
所述发送模块,具体用于如果本RP设备当前已经收到过来自接收者侧DR设备的携带接收者需要加入的组播组G的加入报文,所述加入报文用于在RP设备与接收者侧DR设备之间建立共享树RPT,则从所述注册报文中解析出携带组播源S的地址信息的组播数据,并沿RP设备与接收者侧DR设备之间的RPT将携带所述组播源S的地址信息的组播数据发送给所述接收者侧DR设备;或者,如果本RP设备当前已经收到过接收者侧DR设备以单播方式向本RP设备发送的携带接收者需要加入的组播组G的(*,G)请求报文,则从所述注册报文中解析出组播源S的地址信息,利用所述组播源S的地址信息构造(S,G)通告报文,以单播方式将携带所述组播源S的地址信息的(S,G)通告报文发送给所述接收者侧DR设备。
所述接收模块,还用于在利用所述注册报文中携带的(S,G)信息建立(S,G)注册表项之后,接收来自接收者侧DR设备的携带接收者需要加入的组播组G的报文;
所述发送模块,还用于在收到来自接收者侧DR设备的携带接收者需要加入的组播组G的报文后,利用所述报文中携带的所述组播组G查询所述(S,G)注册表项,得到所述组播组G对应的组播源S的地址信息,并将所述组播源S的地址信息发送给所述接收者侧DR设备;以使所述接收者侧DR设备利用所述组播源S的地址信息向所述组播源侧DR设备发送加入报文,并建立所述接收者侧DR设备与所述组播源侧DR设备之间的SPT。
所述发送模块,进一步用于在收到来自接收者侧DR设备的携带接收者需要加入的组播组G的加入报文时,所述加入报文用于在RP设备与接收者侧DR设备之间建立RPT,利用所述加入报文中携带的组播组G查询所述(S,G)注册表项,得到组播组G对应的组播源S的地址信息,并利用组播源S的地址信息构造组播数据,沿RP设备与接收者侧DR设备之间的RPT将携带组播源S的地址信息的组播数据发送给接收者侧DR设备;或者,在收到接收者侧DR设备以单播方式向本RP设备发送的携带接收者需要加入的组播组G的(*,G)请求报文时,利用所述(*,G)请求报文中携带的组播组G查询所述(S,G)注册表项,得到组播组G对应的组播源S的地址信息,利用所述组播源S的地址信息构造(S,G)通告报文,并以单播方式将携带所述组播源S的地址信息的(S,G)通告报文发送给所述接收者侧DR设备。
所述(*,G)请求报文用于请求接收者需要加入的组播组G对应的组播源S的地址信息,且所述(*,G)请求报文的源地址为接收者侧DR设备的地址,目的地址为RP设备的地址,组播组地址为接收者需要加入的组播组G的组播组地址;所述(S,G)通告报文用于通告接收者需要加入的组播组G对应的组播源S的地址信息,且所述(S,G)通告报文的源地址为RP设备的地址,目的地址为接收者侧DR设备的地址,组播组地址为所述组播组G的组播组地址,组播源地址为所述组播组G对应的组播源S的地址信息。
与现有技术相比,本发明实施例至少具有以下优点:本发明实施例中,RP设备在收到来自组播源侧DR设备的注册报文之后,不需要向组播源侧DR设备发送加入报文,以不建立RP设备与组播源侧DR设备之间的SPT,从而减少了SPT的建立过程,并有效节约了路由设备上不必要的表项资源,继而能够避免系统资源的浪费,并提高了网络资源的利用率。
具体实施方式
针对现有技术中存在的问题,本发明实施例提供一种SPT建立方法,该方法应用于包括组播源、组播源侧DR设备、接收者、接收者侧DR设备和RP设备的PIM-SM网络中。其中,该PIM-SM网络中的各设备是路由设备(如路由器或者三层交换机等)。如图1所示,该方法包括以下步骤:
步骤101,RP设备接收来自组播源侧DR设备关于组播组G的注册报文,并利用该注册报文中携带的(S,G)信息建立(S,G)注册表项。
其中,该(S,G)注册表项中记录了组播源侧DR设备的地址信息与组播组G之间的对应关系。
本发明实施例中,RP设备在收到来自组播源侧DR设备关于组播组G的注册报文之后,该RP设备不向组播源侧DR设备发送加入报文,因此,不会建立RP设备与组播源侧DR设备之间的SPT。
步骤102,RP设备判断本RP设备当前是否已经收到过来自接收者侧DR设备的携带接收者需要加入的组播组G的报文;如果是,执行步骤103;如果否,则不需要将组播源S的地址信息发送给接收者侧DR设备,结束流程。
步骤103,RP设备将注册报文中携带的组播源S的地址信息发送给接收者侧DR设备;由接收者侧DR设备利用组播源S的地址信息向组播源侧DR设备发送加入报文,并建立接收者侧DR设备与组播源侧DR设备之间的SPT。
本发明实施例中,RP设备将注册报文中携带的组播源S的地址信息发送给接收者侧DR设备的过程,具体包括但不限于如下处理方式:
方式一、如果本RP设备当前已经收到过来自接收者侧DR设备的携带接收者需要加入的组播组G的加入报文(该加入报文用于在RP设备与接收者侧DR设备之间建立RPT),则RP设备从注册报文中解析出携带组播源S的地址信息的组播数据,并沿RP设备与接收者侧DR设备之间的RPT直接将携带组播源S的地址信息的组播数据发送给接收者侧DR设备。
在该实施方式下,RP设备在收到来自组播源侧DR设备的第一个注册报文后,如果有组播组G对应的接收者,则说明RP设备与接收者侧DR设备之间已经建立RPT,RP设备需要将注册报文中封装的组播数据沿RPT向接收者侧DR设备发送,该组播数据中携带组播组G对应的组播源S的地址信息。
进一步的,后续如果有接收者需要加入到相应的组播组G时,RP设备接收来自接收者侧DR设备的携带接收者需要加入的组播组G的加入报文(其用于在RP设备与接收者侧DR设备之间建立RPT);之后,RP设备利用该报文中携带的组播组G查询(S,G)注册表项,并利用查询到的组播源S的地址信息构造组播数据,并沿RP设备与接收者侧DR设备之间的RPT将携带该组播源S的地址信息的组播数据发送给接收者侧DR设备。
方式二、如果本RP设备当前已经收到过接收者侧DR设备以单播方式向本RP设备发送的携带接收者需要加入的组播组G的(*,G)请求报文,则RP设备首先从注册报文中解析出组播源S的地址信息,之后利用该组播源S的地址信息构造(S,G)通告报文,并以单播方式将携带组播源S的地址信息的(S,G)通告报文发送给接收者侧DR设备。
本发明实施例中,该(*,G)请求报文用于请求接收者需要加入的组播组G对应的组播源S的地址信息,且该(*,G)请求报文的源地址为接收者侧DR设备的地址,目的地址为RP设备的地址,组播组地址为接收者需要加入的组播组G的组播组地址;该(S,G)通告报文用于通告接收者需要加入的组播组G对应的组播源S的地址信息,且该(S,G)通告报文的源地址为RP设备的地址,目的地址为接收者侧DR设备的地址,组播组地址为组播组G的组播组地址,组播源地址为组播组G对应的组播源S的地址信息。
综上所述,本发明实施例中,RP设备在收到来自组播源侧DR设备的注册报文时,如果本RP设备已经收到过来自接收者侧DR设备的携带接收者需要加入的组播组G的报文,则利用注册报文中携带的(S,G)信息建立(S,G)注册表项,将接收者需要加入的组播组G所对应的组播源S的地址信息发送给接收者侧DR设备;如果本RP设备未收到过来自接收者侧DR设备的携带接收者需要加入的组播组G的报文,则利用注册报文中携带的(S,G)信息建立(S,G)注册表项,在后续过程中利用(S,G)注册表项进行处理。
本发明实施例中,RP设备在利用注册报文中携带的(S,G)信息建立(S,G)注册表项之后(即步骤101之后),如果RP设备收到来自接收者侧DR设备的携带接收者需要加入的组播组G的报文,则如图1所示,该方法还可以包括如下步骤:
步骤104,RP设备在收到来自接收者侧DR设备的携带接收者需要加入的组播组G的报文后,利用该报文中携带的组播组G查询(S,G)注册表项,并得到该组播组G对应的组播源S的地址信息。
步骤105,RP设备将该组播源S的地址信息发送给接收者侧DR设备;由该接收者侧DR设备利用组播源S的地址信息向组播源侧DR设备发送加入报文,以建立接收者侧DR设备与组播源侧DR设备之间的SPT。
本发明实施例中,RP设备在收到来自接收者侧DR设备的携带接收者需要加入的组播组G的报文时,如果当前已经有该报文中携带的组播组G对应的(S,G)注册表项,则直接将查询到的组播源S的地址信息发送给接收者侧DR设备;如果当前没有该报文中携带的组播组G对应的(S,G)注册表项,则等到后续RP设备上记录该报文中携带的组播组G对应的(S,G)注册表项之后,将查询到的组播源S的地址信息发送给接收者侧DR设备。
本发明实施例中,RP设备将组播组G对应的组播源S的地址信息发送给接收者侧DR设备的过程,具体包括但不限于如下处理方式:
方式一、RP设备在收到来自接收者侧DR设备的携带接收者需要加入的组播组G的加入报文(该加入报文用于在RP设备与接收者侧DR设备之间建立RPT)时,RP设备利用该加入报文中携带的组播组G查询(S,G)注册表项,得到组播组G对应的组播源S的地址信息,并利用查询到的组播源S的地址信息构造组播数据,并沿RP设备与接收者侧DR设备之间的RPT将携带组播源S的地址信息的组播数据发送给接收者侧DR设备。
在该实施方式下,RP设备在收到来自组播源侧DR设备的第一个注册报文后,利用该注册报文中携带的(S,G)信息建立(S,G)注册表项,之后如果有该组播组G对应的接收者,则说明RP设备与接收者侧DR设备之间已经建立RPT,RP设备需要直接将注册报文中封装的组播数据沿RPT向接收者侧DR设备发送,该组播数据中携带组播组G对应的组播源S的地址信息。
进一步的,后续如果有接收者需要加入到相应的组播组G时,RP设备接收来自接收者侧DR设备的携带接收者需要加入的组播组G的加入报文(其用于在RP设备与接收者侧DR设备之间建立RPT);之后,RP设备利用该报文中携带的组播组G查询(S,G)注册表项,并利用查询到的组播源S的地址信息构造组播数据,并沿RP设备与接收者侧DR设备之间的RPT将携带该组播源S的地址信息的组播数据发送给接收者侧DR设备。
在上述过程中,由于接收者侧DR设备收到的第一个组播数据可能是RP设备构造的携带组播源S的地址信息的组播数据,因此接收者侧DR设备在收到第一个组播数据时,不向接收者发送该组播数据,而是丢弃该组播数据。
方式二、RP设备在收到接收者侧DR设备以单播方式向本RP设备发送的携带接收者需要加入的组播组G的(*,G)请求报文时,RP设备利用该(*,G)请求报文中所携带的组播组G查询(S,G)注册表项,以得到该组播组G对应的组播源S的地址信息,并利用查询到的组播源S的地址信息构造(S,G)通告报文,并以单播方式将携带该组播源S的地址信息的(S,G)通告报文发送给接收者侧DR设备。
本发明实施例中,该(*,G)请求报文用于请求接收者需要加入的组播组G对应的组播源S的地址信息,且该(*,G)请求报文的源地址为接收者侧DR设备的地址,目的地址为RP设备的地址,组播组地址为接收者需要加入的组播组G的组播组地址;该(S,G)通告报文用于通告接收者需要加入的组播组G对应的组播源S的地址信息,且该(S,G)通告报文的源地址为RP设备的地址,目的地址为接收者侧DR设备的地址,组播组地址为组播组G的组播组地址,组播源地址为组播组G对应的组播源S的地址信息。
以下结合图2所示的应用场景对上述方式一和方式二的处理进行进一步的说明。在图2所示的应用场景下,PIM-SM网络中的各设备是三层交换机。
针对方式一,本发明实施例提出的SPT建立方法包括如下步骤:
步骤1、接收者1申请加入组播组G,接收者1对应的接收者侧DR设备1向RP设备发送加入报文,以在接收者侧DR设备1与RP设备之间建立RPT。
步骤2、组播源需要发送组播数据时,组播源对应的组播源侧DR设备将第一个组播数据封装在注册报文中发送给RP设备。RP设备在收到注册报文后,利用该注册报文中携带的(S,G)信息建立(S,G)注册表项,向组播源侧DR设备发送注册停止报文,并解封装注册报文中的组播数据,将携带组播源的地址信息的组播数据沿已建立的RPT发送给接收者侧DR设备1。
本步骤中,RP设备不需要向组播源侧DR设备发送加入报文,因此不会建立RP设备与组播源侧DR设备之间的SPT,即RP设备到组播源侧DR设备的路径上的三层交换机,若不在接收者侧DR设备到组播源侧DR设备的SPT路径上,则三层交换机上不需要维护相应的组播转发表项。
步骤3、接收者侧DR设备1在收到第一个组播数据后,将该组播数据丢弃,并立刻向组播源侧DR设备发送加入报文,以建立接收者侧DR设备1与组播源侧DR设备之间的SPT。之后,接收者侧DR设备1从SPT接收来自组播源侧DR设备的组播数据,并将收到的组播数据发送给接收者1。
步骤4、接收者2申请加入组播组G,接收者2对应的接收者侧DR设备2向RP设备发送加入报文,以在接收者侧DR设备2与RP设备之间建立RPT。
步骤5、RP设备收到来自接收者侧DR设备2的加入报文后,利用该加入报文中携带的组播组G查询(S,G)注册表项,并利用查询到的组播源S的地址信息构造组播数据,并沿RP设备与接收者侧DR设备2之间的RPT将携带组播源S的地址信息的组播数据发送给接收者侧DR设备2。
本步骤中,RP设备不需要向组播源侧DR设备发送加入报文,因此不会建立RP设备与组播源侧DR设备之间的SPT,即RP设备到组播源侧DR设备的路径上的三层交换机,若不在接收者侧DR设备到组播源侧DR设备的SPT路径上,则三层交换机上不需要维护相应的组播转发表项。
步骤6、接收者侧DR设备2在收到第一个组播数据后,将该组播数据丢弃,并立刻向组播源侧DR设备发送加入报文,以建立接收者侧DR设备2与组播源侧DR设备之间的SPT。之后,接收者侧DR设备2从SPT接收来自组播源侧DR设备的组播数据,并将收到的组播数据发送给接收者2。
在上述处理过程中,由于RP设备只能通过RPT来确定接收者的方向,因此接收者侧DR设备仍需要周期性向RP设备逐跳发送加入报文,以维护接收者侧DR设备与RP设备之间的RPT,因此RPT路径上的三层交换机仍需要针对每个特定组播组创建并维护组播转发表项,同样会占用大量系统资源。
为了更好的节约网络中的表项资源,本发明实施例对上述方式进一步的进行优化,通过新增一种单播消息类型,用于在接收者侧DR设备与RP设备之间交互信息,接收者侧DR设备与RP设备之间通过使用该单播消息类型,使得接收者侧DR设备不需要向RP设备逐跳发送加入报文,且使得接收者侧DR设备与RP设备之间不需要建立RPT等过程。如图3所示,为用于在接收者侧DR设备与RP设备之间交互信息的单播消息类型的格式示意图。
当Type为第一标识(如14)时,表示报文为(*,G)请求报文,该(*,G)请求报文为接收者侧DR设备单播发送给RP设备的报文,且该(*,G)请求报文用于请求接收者需要加入的组播组G对应的组播源S的地址信息。其中,该(*,G)请求报文的源地址为接收者侧DR设备的地址,目的地址为RP设备的地址,组播组地址(Group Address)为接收者需要加入的组播组G的组播组地址;组播源地址(Source Address)为0.0.0.0(IPv4)或0::0(IPv6)。
当Type为第二标识(如15)时,表示报文为(S,G)通告报文,该(S,G)通告报文为RP设备单播发送给接收者侧DR设备的报文,且该(S,G)通告报文用于通告接收者需要加入的组播组G对应的组播源S的地址信息。其中,该(S,G)通告报文的源地址为RP设备的地址,目的地址为接收者侧DR设备的地址,组播组地址(Group Address)为组播组G的组播组地址,组播源地址(Source Address)为组播组G对应的组播源S的地址信息。
针对方式二,本发明实施例提出的SPT建立方法包括如下步骤:
步骤1、接收者1申请加入组播组G,接收者1对应的接收者侧DR设备1单播向RP设备发送(*,G)请求报文,该(*,G)请求报文用于请求接收者需要加入的组播组G对应的组播源S的地址信息。该(*,G)请求报文的源地址为接收者侧DR设备1的地址,目的地址为RP设备的地址,组播组地址为接收者需要加入的组播组G的组播组地址,组播源地址为0.0.0.0或0::0。在后续过程中,接收者侧DR设备1周期向RP设备发送(*,G)请求报文,以维护RP设备上的接收者侧DR设备1的信息,发送周期默认为60s。
步骤2、RP设备收到(*,G)请求报文后,维护该组播组G和接收者侧DR设备1的信息(接收者侧DR设备1的地址)之间对应关系表项。该对应关系表项称为(*,G)表项,且RP设备需要维护接收者侧DR设备1对应的老化定时器,老化时间默认为210s;RP设备再次收到该接收者侧DR设备1发送的(*,G)请求报文时,更新对应接收者侧DR设备1的老化定时器。
步骤3、组播源需要发送组播数据时,由组播源对应的组播源侧DR设备将第一个组播数据封装在注册报文中发送给RP设备。RP设备在收到注册报文后,利用该注册报文中携带的(S,G)信息建立(S,G)注册表项,向组播源侧DR设备发送注册停止报文,并解封装注册报文中的组播数据,以获得该组播数据中携带的组播源的地址信息,并将携带组播源的地址信息的(S,G)通告报文发送给接收者侧DR设备1。其中,(S,G)通告报文的源地址为RP设备的地址,目的地址为接收者侧DR设备1的地址,组播组地址为组播组G的组播组地址,组播源地址为组播组G对应的组播源S的地址信息。
本步骤中,RP设备不需要向组播源侧DR设备发送加入报文,因此不会建立RP设备与组播源侧DR设备之间的SPT,即RP设备到组播源侧DR设备的路径上的三层交换机,若不在接收者侧DR设备到组播源侧DR设备的SPT路径上,则三层交换机上不需要维护相应的组播转发表项。
步骤4、接收者侧DR设备1在收到(S,G)通告报文后,根据其中携带的组播源的地址信息向组播源侧DR设备发送加入报文,以建立接收者侧DR设备1与组播源侧DR设备之间的SPT。之后,接收者侧DR设备1从SPT接收来自组播源侧DR设备的组播数据,并将收到的组播数据发送给接收者1。
步骤5、接收者2申请加入组播组G,接收者2对应的接收者侧DR设备2单播向RP设备发送(*,G)请求报文,该(*,G)请求报文用于请求接收者需要加入的组播组G对应的组播源S的地址信息。该(*,G)请求报文的源地址为接收者侧DR设备2的地址,目的地址为RP设备的地址,组播组地址为接收者需要加入的组播组G的组播组地址,组播源地址为0.0.0.0或0::0。在后续过程中,接收者侧DR设备2周期向RP设备发送(*,G)请求报文,以维护RP设备上的接收者侧DR设备2的信息,发送周期默认为60s。
步骤6、RP设备收到(*,G)请求报文后,维护该组播组G和接收者侧DR设备2的信息(接收者侧DR设备2的地址)之间对应关系表项。该对应关系表项称为(*,G)表项,且RP设备需要维护接收者侧DR设备2对应的老化定时器,老化时间默认为210s;RP设备再次收到该接收者侧DR设备2发送的(*,G)请求报文时,更新对应接收者侧DR设备2的老化定时器。
步骤7、RP设备收到来自接收者侧DR设备2的(*,G)请求报文后,利用(*,G)请求报文中携带的组播组G查询(S,G)注册表项,利用查询到的组播源S的地址信息构造(S,G)通告报文,并将携带组播源的地址信息的(S,G)通告报文发送给接收者侧DR设备2。(S,G)通告报文的源地址为RP设备的地址,目的地址为接收者侧DR设备2的地址,组播组地址为组播组G的组播组地址,组播源地址为组播组G对应的组播源S的地址信息。
本步骤中,RP设备不需要向组播源侧DR设备发送加入报文,因此不会建立RP设备与组播源侧DR设备之间的SPT,即RP设备到组播源侧DR设备的路径上的三层交换机,若不在接收者侧DR设备到组播源侧DR设备的SPT路径上,则三层交换机上不需要维护相应的组播转发表项。
步骤8、接收者侧DR设备2在收到(S,G)通告报文后,根据其中携带的组播源的地址信息向组播源侧DR设备发送加入报文,以建立接收者侧DR设备2与组播源侧DR设备之间的SPT。之后,接收者侧DR设备2从SPT接收来自组播源侧DR设备的组播数据,并将收到的组播数据发送给接收者2。
综上所述,本发明实施例中,不需要建立RP设备与组播源侧DR设备之间的SPT,不需要建立RP设备与接收者侧DR设备之间的RPT,使得RP设备与接收者侧DR设备之间的RPT上的路由设备不需要维护特定组播组G的组播转发表项,使得RP设备与组播源侧DR设备之间的SPT上的路由设备不需要维护特定组播组G的组播转发表项,从而有效节约路由设备上不必要的表项资源,继而能够避免系统资源的浪费,提高网络资源的利用率。
基于与上述方法同样的发明构思,本发明实施例中还提供了一种路由设备,作为汇集点RP设备应用于协议无关组播-稀疏模式PIM-SM网络中,如图4所示,所述RP设备具体包括:
接收模块11,用于接收来自组播源侧指定路由器DR设备关于组播组G的注册报文;
建立模块12,用于在收到来自组播源侧DR设备关于组播组G的注册报文时,利用所述注册报文中携带的(S,G)信息建立(S,G)注册表项;
发送模块13,用于在本RP设备当前已经收到过来自接收者侧DR设备的携带接收者需要加入的组播组G的报文时,将所述注册报文中携带的组播源S的地址信息发送给所述接收者侧DR设备;以使所述接收者侧DR设备利用所述组播源S的地址信息向所述组播源侧DR设备发送加入报文,并建立所述接收者侧DR设备与所述组播源侧DR设备之间的最短路径树SPT。
所述发送模块13,具体用于如果本RP设备当前已经收到过来自接收者侧DR设备的携带接收者需要加入的组播组G的加入报文,所述加入报文用于在RP设备与接收者侧DR设备之间建立共享树RPT,则从所述注册报文中解析出携带组播源S的地址信息的组播数据,并沿RP设备与接收者侧DR设备之间的RPT将携带所述组播源S的地址信息的组播数据发送给所述接收者侧DR设备;或者,
如果本RP设备当前已经收到过接收者侧DR设备以单播方式向本RP设备发送的携带接收者需要加入的组播组G的(*,G)请求报文,则从所述注册报文中解析出组播源S的地址信息,利用所述组播源S的地址信息构造(S,G)通告报文,以单播方式将携带所述组播源S的地址信息的(S,G)通告报文发送给所述接收者侧DR设备。
所述接收模块11,还用于在利用所述注册报文中携带的(S,G)信息建立(S,G)注册表项之后,接收来自接收者侧DR设备的携带接收者需要加入的组播组G的报文;
所述发送模块13,还用于在收到来自接收者侧DR设备的携带接收者需要加入的组播组G的报文后,利用所述报文中携带的所述组播组G查询所述(S,G)注册表项,得到所述组播组G对应的组播源S的地址信息,并将所述组播源S的地址信息发送给所述接收者侧DR设备;以使所述接收者侧DR设备利用所述组播源S的地址信息向所述组播源侧DR设备发送加入报文,并建立所述接收者侧DR设备与所述组播源侧DR设备之间的SPT。
所述发送模块13,进一步用于在收到来自接收者侧DR设备的携带接收者需要加入的组播组G的加入报文时,所述加入报文用于在RP设备与接收者侧DR设备之间建立RPT,利用所述加入报文中携带的组播组G查询所述(S,G)注册表项,得到组播组G对应的组播源S的地址信息,并利用组播源S的地址信息构造组播数据,沿RP设备与接收者侧DR设备之间的RPT将携带组播源S的地址信息的组播数据发送给接收者侧DR设备;或者,
在收到接收者侧DR设备以单播方式向本RP设备发送的携带接收者需要加入的组播组G的(*,G)请求报文时,利用所述(*,G)请求报文中携带的组播组G查询所述(S,G)注册表项,得到组播组G对应的组播源S的地址信息,利用所述组播源S的地址信息构造(S,G)通告报文,并以单播方式将携带所述组播源S的地址信息的(S,G)通告报文发送给所述接收者侧DR设备。
所述(*,G)请求报文用于请求接收者需要加入的组播组G对应的组播源S的地址信息,且所述(*,G)请求报文的源地址为接收者侧DR设备的地址,目的地址为RP设备的地址,组播组地址为接收者需要加入的组播组G的组播组地址;所述(S,G)通告报文用于通告接收者需要加入的组播组G对应的组播源S的地址信息,且所述(S,G)通告报文的源地址为RP设备的地址,目的地址为接收者侧DR设备的地址,组播组地址为所述组播组G的组播组地址,组播源地址为所述组播组G对应的组播源S的地址信息。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。