组播转发路径的建立方法及路由设备的制作方法

文档序号:7758218阅读:125来源:国知局
专利名称:组播转发路径的建立方法及路由设备的制作方法
技术领域
本发明涉及组播技术,尤其涉及一种组播转发路径的建立方法及路由设备,属于 通信技术领域。
背景技术
随着因特网的迅猛发展,越来越多的组播业务得到了应用,稀疏模式独立组播协 议(Protocol Independent Multicast-Sparse Mode,简称PBl-SM)作为一种典型的组播路 由标准,得到了广泛的应用。在PIM-SM中,汇聚点(Rendezvous Point,简称RP)指某个或某些组播组(groups, 简称G)对应的组播转发树的根,是PIM组播网络中一台关键的网络设备。RP是组播源S和 接收者之间的桥梁。接收者希望接收某个组的组播数据时,需要先向RP发送加入报文,与 RP之间建立共享树(RP Tree,简称RPT)。以RP为根,到接收者所在直连的指定组播转发网 络设备(ReceiverDesignated Router,简称RDR)的单播路由转发路径最短的组播转发树 称为RPT。接收者与RP建立RPT后,RP再向组播源S发送加入报文,并建立与组播源S之 间的最短路径树(Shortest-Path Tree,简称SPT)。以发送组播数据报文的第一台组播转 发网络设备(Source Designated Router,简称SDR)为根,到RP的单播路由转发路径最短 的组播转发树称为SPT。RPT和SPT均建立完成后,组播数据会沿着组播源S与RP之间的 SPT树流到RP,再沿着RPT流到接收者,以此实现组播数据的传播,而SPT与RPT的总路径 则为组播源S与接收者之间的最短路径。PIM-SM的RP处理机制很好地解决了密集模式独立组播协议 (ProtocolIncbpendent Multicast-Dense Mode,简称PIM-DM)中因通过泛洪广发组播数据 以寻找最短组播转发路径,而带来的节点间链路拥塞的问题,但是这种处理机制仍然存在 一定的缺陷。RP处理机制中,由于组播转发路径必须经由指定的RP节点,因而由此产生的 组播转发路径很有可能并非组播源S到接收者之间的最短路径。如图1所示,图1为现有 的PIM-SM中组播转发路径的基本原理示意图,其中实线箭头标识的路径为通过RP处理机 制建立起的组播转发路径,而明显地,实际上虚线箭头标识的路径才是组播源S到接收者 的最短路径。RP的限定反而导致了生成的组播转发路径并非组播源S与接收者间的最短路 径的现象。

发明内容
本发明提供一种组播转发路径的建立方法及路由设备,用以解决现有的PIM-SM 协议中需要通过RP完成组播转发路径的建立和切换,从而导致建立的组播转发路径很有 可能不是组播源S和接收者之间最短路径的问题。为实现上述目的,本发明提供一种多组播转发路径的建立方法,包括与接收者直连的路由设备接收到所述接收者发送的IGMP报告报文后,构造对应 的可传递IGMP发现报文,并向上游的路由设备转发所述可传递IGMP发现报文,构造的所述可传递IGMP发现报文中初始设置的生存时间值为预设的最大可转发跳数值减1 ;接收到所述可传递IGMP发现报文的非源直连路由设备根据接收到的可传递IGMP 发现报文,创建对应的可传递IGMP表项,或者在检测到已创建的可传递IGMP表项中记录的 转发跳数值大于接收到的可传递IGMP发现报文中记录的生存时间值与所述最大可转发跳 数值的差值时,将已创建的可传递IGMP表项中的转发跳数值更新为所述差值;所述非源直连路由设备将接收到的可传递IGMP发现报文中的生存时间值减1后, 继续向上游的路由设备进行转发,直至将所述可传递IGMP发现报文转发至源直连路由设 备为止;所述源直连路由设备将接收所述可传递IGMP发现报文的端口的信息添加至自身 的三层组播转发表项中,并沿自身的三层组播转发表项依次向下发送可传递IGMP确认报 文,以指示各所述非源直连路由设备根据自身的可传递IGMP表项,创建与组播源对应的三 层组播转发表项。为实现上述目的,本发明还提供一种路由设备,包括第一报文构造模块,用于若所述路由设备与接收者直连,在接收到所述接收者发 送的IGMP报告报文后,构造对应的可传递IGMP发现报文,并向上游的路由设备转发所述可 传递IGMP发现报文,构造的所述可传递IGMP发现报文中初始设置的生存时间值为预设的 最大可转发跳数值减1 ;报文处理模块,用于若所述路由设备为非源直连路由设备,在接收到所述可传递 IGMP发现报文后,根据接收到的可传递IGMP发现报文创建对应的可传递IGMP表项,或者在 检测到已创建的可传递IGMP表项中记录的转发跳数值大于接收到的可传递IGMP发现报文 中记录的生存时间值与所述最大可转发跳数值的差值时,将已创建的可传递IGMP表项中 的转发跳数值更新为所述差值;第一报文转发模块,用于若所述路由设备为非源直连路由设备,将接收到的可传 递IGMP发现报文中的生存时间值减1后,继续向上游的路由设备进行转发,直至将所述可 传递IGMP发现报文转发至源直连路由设备为止;路径确认模块,用于若所述路由设备为源直连路由设备,在接收到所述可传递 IGMP发现报文后,将接收所述可传递IGMP发现报文的端口的信息添加至自身的三层组播 转发表项中,并沿自身的三层组播转发表项依次向下发送可传递IGMP确认报文,以指示各 所述非源直连路由设备根据自身的可传递IGMP表项,创建与组播源对应的三层组播转发 表项。本发明提供的组播转发路径的建立方法及路由设备,通过在组播路由中定义可传 递因特网组管理协议(Transmissive-Internet Group ManagementProtocol,简称T-IGMP) 报文规范,在整网内传递T-IGMP发现报文,直至将T-IGMP发现报文传送至与组播源直连的 路由设备,且各路由设备根据接收到的T-IGMP发现报文中的生存时间值、以及根据接收到 的T-IGMP发现报文创建的T-IGMP表项中的转发跳数值来判断最短组播转发路径,从而在 无需采用原PIM-SM协议中的RP处理机制、无需进行RPT、SPT路径的选择的基础上,解决了 PIM-SM中建立最短路径树需要建立在SPT和RPT路径已完成建立的基础上的问题,降低了 组播转发路径生成的复杂度;同时由于整个组播路径发现过程,完全是设备间直连通信,因 此也不依赖于单播路由的机制,在寻找到最短组播转发路径的同时,还降低了原PIM-SM协议路由的维护难度。


为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术 描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一 些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这 些附图获得其他的附图。图1为现有的PIM-SM中组播转发路径的基本原理示意图;图2为本发明组播转发路径的建立方法实施例一的流程图;图3为本发明组播转发路径的建立方法实施例二的流程图;图4为本发明中路由设备对接收到的T-IGMP Prune报文的处理流程示意图;图5为本发明路由设备实施例一的结构示意图;图6为本发明路由设备实施例二的结构示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附 图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明 一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有 做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图2为本发明组播转发路径的建立方法实施例一的流程图,如图2所示,本实施例 具体包括如下步骤步骤100,接收者直连的路由设备接收到接收者发送的IGMP报告报文后,构造对 应的T-IGMP发现报文,并向上游路由设备转发该T-IGMP发现报文;为了实现组播源S与接收者之间最短最优组播转发路径的建立,在本发明中,基 于现有的IGMP协议,定义了一种新的T-IGMP协议。在该新的T-IGMP协议中,本发明定义 了几种标准的T-IGMP报文,其中的T-IGMP发现报文,即T-IGMP Discover报文为最重要的 T-IGMP报文。本发明通过从与接收者直连的路由设备开始,依次泛洪地向上游路由设备发 送构造的T-IGMPDiscover报文,并通过在发送的T-IGMP Discover报文中携带与报文当前 的转发跳数对应的生存时间(以下简称V-TLL)值,使得接收到T-IGMPDisc0ver报文的路 由设备能够根据T-IGMP Discover报文中携带的V-TLL值与记录的转发跳数值进行比较, 从而寻找并发现与组播源S之间的最短最优路径。具体地,本实施例中,当处于目标网络中的接收者欲加A入到与组播源S对应的 组地址中,建立与该组地址之间的组播转发路径,以接收组播源S下发的组播数据时,将向 直连的路由设备发送IGMP报告报文,即IGMP Report报文,该IGMP Report报文中携带有 请求加入的组播源S的组地址信息。而与接收者直连的路由设备在接收到IGMP R印ort报 文后,为了向上寻找通向指定的组播源S的最短最优路径,将根据接收到的IGMP Report报 文构造对应的T-IGMP Discover报文,并向上泛洪地转发该T-IGMP Discover报文,直至将 T-IGMP Discover报文发送至与组播源S直连的源直连路由设备为止。具体地,接收者直连路由设备在构造T-IGMP Discover报文时,将从IGMPIteport
8报文中提取出请求加入的组播源S的组地址信息,以及根据接收IGMPR印ort报文的端口 的标识信息,提取出接收者所处的目标网络的地址信息,接收者直连路由设备将这些信息 携带在构造T-IGMP Discover报文中。除此之外,为了能够在每个T-IGMP Discover报文 中记录该T-IGMP Discover报文所对电影的转发跳数,以使路由设备根据接收的T-IGMP Discover报文中记录的转发跳数,比较对应于不同的组播转发路径之间的长短,从而寻找 出最短组播转发路径,接收者直连路由设备还在构造的T-IGMP Discover报文中设置了代 表该T-IGMP Discover报文的最大剩余转发跳数的V-TLL值,该V-TLL的初始值被设置为 最大可转发跳数255减去1,即被设置为254。而在之后的T-IGMP Discover报文的转发过 程中,每被接收并转发一次,路由设备将相应地将T-IGMP Discover报文中的V-TLL值减去 1。步骤101,接收到T-IGMP发现报文的非源直连路由设备根据接收到的T-IGMP发现 报文,创建对应的T-IGMP表项,或者在检测到已创建的可传递IGMP表项中记录的转发跳数 值大于接收到的T-IGMP发现报文中记录的生存时间值与255的差值时,将已创建的T-IGMP 表项中的转发跳数值更新为该差值;而对于每一个接收到T-IGMP Discover报文的上游路由设备而言,由于组播网中 路由设备间的彼此连接,且每一个接收到T-IGMP Discover报文的路由设备在进行相应的 处理后,又均将依次地将T-IGMP Discover报文向上泛洪地进行转发,因而每一个上游路由 设备均有可能会不止一次地接收到对应于同一组地址和目标网络地址的T-IGMP Discover 报文。以图1所示的组播网示意图为例,若将本发明的方案应用于图1所述的组播网络中, 与组播源S直连的SDR设备将会接收到连接的两个下游设备向上发送的T-IGMP Discover 报文,只是由于受到传播路径的速度影响,可能两个T-IGMP Discover报文的到达时间会有 可能不同而已而,而每接收到一次T-IGMP Discover报文,则对应代表了组播源与目标网络 之间的一条组播转发路径。因而在本发明中,对于每一个接收到T-IGMP Discover报文的上游路由设备,均有 可能出现首次接收到T-IGMP Discover报文和非首次接收到T-IGMPDiscover报文的两种 情形。若上游路由设备为首次接收到T-IGMP Discover报文,为了将首次接收到的 T-IGMP Discover报文中的信息进行相应的记录,上游路由设备将根据该T-IGMP Discover 报文,在自身创建相应的T-IGMP表项。创建的T-IGMP表项至少记录了对应的组地址和目标 网络地址信息,除此之外,为了将此次接收到的T-IGMP Discover报文所对应的组播转发路 径进行对应的记录,以用作在再次接收到T-IGMP Discover报文时将各组播转发路径的长 短进行对比,创建的该T-IGMP表项中还应记录接收到的T-IGMP Discover报文中的V-TLL 值与255之间的差值、以及此次接收该T-IGMP Discover报文的端口的标识信息。具体地, 该差值代表了此次接收的T-IGMP Discover报文从接收者直连路由设备开始、到本路由设 备之间的转发跳数,而接收该T-IGMP Discover报文的端口则代表若成功地建立了组播源 与接收者之间的组播转发路径时,组播数据在本路由设备进行下发的出口。而若上游路由设备为非首次接收到T-IGMP Discover报文,这代表对于本路由设 备而言,至少存在两条或两条以上的可行的组播转发路径连接组播源S和目标网络之间。 而由于在此之前,该上游路由设备已经接收到过一次T-IGMPDisc0ver报文,即已经创建了对应的T-IGMP表项,因而该非首次接收到T-IGMP Discover报文的上游路由设备为了判断 出哪次接收到的T-IGMPDisc0ver报文所对应的组播转发路径才是真正的最短路径,可以 将此次接收到的T-IGMP Discover报文中的V-TLL值与已创建的T-IGMP表项中记录的转 发跳数值进行大小比较。具体指上游路由设备将已创建的T-IGMP表项中记录的转发跳数 值、与255减去此次接收到的T-IGMP Discover报文中的V-TLL值得到的差值进行大小比 较。若前者小于后者,代表T-IGMP表项中记录的转发跳数比较小,因而T-IGMP表项中 对应的组播转发路径也较短,此时该非首次接收到T-IGMPDisc0ver报文的上游路由设备 无需对T-IGMP表项记录的转发跳数值进行更改;而若前者大于后者,则代表此次接收到的 T-IGMP Discover报文中记录的转发跳数比较小,即T-IGMP Discover报文对应的组播转 发路径也较短,此时该上游路由设备则需要将T-IGMP表项中记录的转发跳数值更改为255 减去此次接收到的T-IGMP Discover报文中的V-TLL值得到的差值,以使T-IGMP表项中记 录的组播转发路径为经过本路由设备的最短最优路径,同时对应地,上游路由设备还需将 T-IGMP表项中记录的端口信息更改为此次接收T-IGMPDiscover报文的端口的标识信息, 以对T-IGMP表项中记录的端口信息进行相应的更新。步骤102,非源直连路由设备将接收到的T-IGMP发现报文中的生存时间值减1后, 继续向上游路由设备进行转发,直至将T-IGMP发现报文转发至源直连路由设备为止;而无论是首次接收到T-IGMP Discover报文,或者非首次接收到T-IGMPDiscover 报文,接收到T-IGMP Discover报文的上游路由设备在根据接收到的T-IGMP Discover报 文进行了相应的处理后,均将接收到的T-IGMP Discover报文依次向上进行泛洪的转发,以 使连接的更上游的路由设备均能接收到该T-IGMP Discover报文,直至将T-IGMP Discover 报文传送至与组播源S直连的源直连路由设备为止。而在对T-IGMP Discover报文进 行转发之前,该上游路由设备需要将T-IGMP Discover报文中的V-TLL值减去1,代表该 T-IGMPDiscover报文又经过了一次转发,以使T-IGMP Discover报文中记录的V-TLL值为 正确的对应于该T-IGMP Discover报文的转发跳数的数值。步骤103,源直连路由设备将接收T-IGMP发现报文的端口的信息添加至自身的三 层组播转发表项中,并沿三层组播转发表项依次向下发送T-IGMP确认报文,以指示各非源 直连路由设备根据自身的T-IGMP表项,创建与组播源对应的三层组播转发表项。直至与组播源直连的源直连路由设备也接收到T-IGMP Discover报文后,由于源 直连路由设备通常已经创建有与组播源对应的三层组播转发表项,因而该源直连路由设备 直接将接收T-IGMP Discover报文的端口的标识信息添加至自身的三层组播转发表项的出 口列表中。同时为了指示各个已经创建了 T-IGMP表项以及对T-IGMP表项中的转发跳数值 进行了更新的路由设备可以根据自身的T-IGMP表项,也创建与对应的组播源S对应的三层 组播转发表项,以完成组播源S与目标网络之间的组播转发路径的建立。该源直连路由设 备还将根据接收到的T-IGMP Discover报文,构造生成相应的T-IGMP确认报文,即T-IGMP Confirm报文,并将该T-IGMP Confirm报文沿三层组播转发表项中指定的出口向下进行转 发,直至传至与接收者直连的路由设备中为止。而各路由设备在该T-IGMP Confirm报文的 指示下,也将根据自身的可传递IGMP表项,创建与所述组播源对应的三层组播转发表项。具体地,该三层组播转发表项通常为路由设备在对组播数据进行转发时所依据的转发表项,所谓三层组播转发表项为针对某一个组地址,添加有分别通向多个目标网络的 多个出口的表项。某一路由设备中若创建有对应于某一组地址的三层组播转发表项,且三 层组播转发表项中的出口列表中添加有指向目标网络地址的出口时,代表该路由设备在接 收到从组播源下发的组播数据时,依据该三层组播转发表项中记录的内容,能够得知将该 组播数据向出口列表中记录的出口进行转发,从而直至将组播数据转发至目标网络中的接 收者为止。因而各路由设备根据自身创建的T-IGMP表项,创建与组播源和目标网络对应的 三层组播转发表项,并将T-IGMP表项中记录的端口的标识信息添加至该三层组播转发表 项的出口列表中后,相当于建立了组播源与目标网络之间的组播转发路径,组播源的组播 数据能够沿着该组播转发路径最终被传送至目标网络中,从而被接收者接收到。而由于各 路由设备所创建的T-IGMP表项中记录的端口的信息,为对应的各个路由设备根据比较接 收到的各个T-IGMPDisc0ver报文中的V-TLL值的大小,而最终得到的对于该路由设备而言 与最短组播转发路径所对应的出口,因而各路由设备根据T-IGMP表项所创建的三层组播 转发表项、以及各个三层组播转发表项所形成的组播转发路径,必然为组播源S与目标网 络之间的最短最优组播转发路径。本实施例的组播转发路径的建立方法,通过在组播路由中定义T-IGMP报文规范, 在整网内传递T-IGMP发现报文,直至将T-IGMP发现报文传送至与组播源直连的路由设备, 且各路由设备根据接收到的T-IGMP发现报文中的生存时间值、以及根据接收到的T-IGMP 发现报文创建的T-IGMP表项中的转发跳数值来判断最短组播转发路径,从而在无需采用 原PIM-SM协议中的RP处理机制、无需进行RPT、SPT路径的选择的基础上,解决了 PIM-SM 中建立最短路径树需要建立在SPT和RPT路径已完成建立的基础上的问题,降低了组播转 发路径生成的复杂度;同时由于整个组播路径发现过程,完全是设备间直连通信,因此也不 依赖于单播路由的机制,在寻找到最短组播转发路径的同时,还降低了原PIM-SM协议路由 的维护难度。图3为本发明组播转发路径的建立方法实施例二的流程图,如图3所示,本实施例 具体包括如下步骤步骤200,与接收者直连的路由设备接收到接收者发送的IGMP报告报文后,根据 该IGMP报告报文构造相应的T-IGMP发现报文(T-IGMP Discover报文);本实施例中,对组播网中的各路由设备依据构造的T-IGMP发现报文,发现并确定 接收者与组播源S之间的最短最优组播转发路径的具体过程进行详细的描述说明。具体 地,在本实施例中,当与接收者直连的路由设备接收到接收者发送的IGMP R印ort报文,且 该IGMP R印ort报文中指定了某一组地址时,该与接收者直连的路由设备得知接收者请求 加入至与该组地址对应的组播源中,以请求接收组播源下发的组播数据。在本发明中,为了寻找通向组播源的最短最优路径,与接收者直连的路由设备在 接收到IGMP R印ort报文后,将根据该IGMP R印ort报文中的信息构造用于寻找发现最 优组播转发路径的T-IGMP Discover报文。构造的该T-IGMP Discover报文中包含了 IGMP R印ort报文中指定的组地址、接收者所处的目标网络地址等信息,而且由于构造该 T-IGMP Discover报文的路由设备、即与接收者直连的路由设备为转发该T-IGMP Discover 报文的第一跳设备,因而该路由设备在构造该T-IGMP Discover报文,且在设置代表该T-IGMPDisc0ver报文的最大剩余转发跳数的生存时间(V-TLL)的初始值时,还将该初始的 V-TLL值设置为可转发的最大跳数255减1,即设置为254。需要说明的是,路由设备构造的该T-IGMP Discover报文中携带的目标网络地址 为该路由设备根据接收IGMP Report报文记录的端口对应的地址而提取出的、接收者所处 的网络地址,即根据接收IGMP R印ort报文的端口的地址,与接收者直连的路由设备能够提 取出接收者所处的目标网络的地址。具体地,在本实施例中,接收者直连路由设备构造的T-IGMP Discover报文可以符 合下述指定的格式
Type V-TLL Flag CheckSum Group Address Target Network Distribution IP其中,Type字段记录的是为对应类型的T-IGMP报文定义的特定数值,例如, 在本发明中,可以定义T-IGMP Discover报文的Type的值为0x01。V-TLL字段记录该 T-IGMP报文的生存时间值,该生存时间值代表了相应的T-IGMP Discover报文的最大剩 余可转发跳数,若使用协议定义的最大可转发跳数255减去该V-TLL值,将得到相应的 T-IGMP Discover报文的已转发跳数,因而实质上,该V-TLL值间接地记录了对应的T-IGMP Discover报文在组播网中的已转发的跳数。在本步骤中,构造的T-IGMP Discover报 文中的初始V-TLL值为254,且在本发明中,T-IGMP报文定义该V-TLL字段仅对T-IGMP Discover报文有效。Group Address字段记录该T-IGMP指向的组地址;Target Network字 段记录该T-IGMP指向的目标网络地址。而对于另外的三个字段Flag字段、Checksum字段 以及Distribution IP字段,由于在本步骤初始构造的T-IGMP Discover报文无需对这些 字段进行设置,这些字段的含义将在下述步骤中进行相应的解释。步骤201,与接收者直连的路由设备将构造的T-IGMP Discover报文向上游路由 设备进行转发;与接收者直连的路由设备构造了对应的T-IGMP Discover报文后,将构造的 T-IGMP Discover报文在组播网内向上游路由设备进行广播转发,使得每个连接的上游路 由设备均能接收到该T-IGMP Discover报文。步骤202,上游路由设备判断自身是否为源直连路由设备,若否则执行步骤203, 若是则执行步骤212;而上游路由设备接收到T-IGMP Discover报文后,根据T-IGMP Discover报文中 携带的组地址信息以及目标网络地址信息,可以得知该T-IGMPDisc0ver报文请求寻找发 现目标网络与组地址对应的组播源S之间的最短最优路径,而为了继续后续的流程,该上 游路由设备首先将判断自身是否为与该组播源S直接连接的源直连路由设备。根据不同的 判断结果,该上游路由设备将执行不同的操作。步骤203,非源直连路由设备检测自身是否存在与组地址对应的三层组播转发表 项,若是则执行步骤204,若否则执行步骤207 ;
12
若上游路由设备经判断得知自身并非为与组播源S直连的路由设备,即该上游路 由设备为非源直连路由设备,在依据接收到的T-IGMP Discover报文创建对应的T-IGMP 表项之前,优选地,在本实施例中,该非源直连路由设备为了进一步获知在接收到该T-IGMP Discover报文之前,本路由设备是否已经成功承载过对相同组播源S的组播数据业务,即 对于本路由设备而言,是否已经成功建立了与组播源之间的组播转发路径,组播源下发的 组播数据是否已经可以通过之前建立的组播转发路径传送至本路由设备中,该非源直连路 由设备还将进一步检测自身是否存在与接收到的T-IGMP Discover报文对应的三层组播转 发表项,具体指检测是否存在与接收到的T-IGMP Discover报文中携带的组地址对应的三 层组播转发表项。三层组播转发表项通常为路由设备在对组播数据进行转发时所依据的转发表项, 在三层组播转发表项中,针对某一个组地址,通常可以对应添加分别与多个目标网络对应 的多个出口,该出口通常指所属的路由设备中设置的端口,即若三层组播转发表项的出口 列表中添加有对应某一目标网络地址的出口时,则代表在同样的组地址对应的组播源和目 标网络之间已经成功地建立过组播转发路径,而当该路由设备接收到组播源下发的组播数 据时,也能够依据该三层组播转发表项中记录的内容,成功将组播数据继续向对应的出口 进行转发,直至将组播数据转发至目标网络中的接收者为止。因而,在本步骤中,非源直连路由设备在接收到T-IGMP Discover报文时,通过检 测自身是否存在相应的三层组播转发表项,能够检测出在此之前本路由设备与组播源之间 是否已经建立与组播源S之间的组播转发路径。步骤204,非源直连路由设备检测的Flag字段是否标识为1,若是则执行步骤205, 若否则执行步骤206 ;因而若非源直连路由设备通过检测,得知自身已经存在有与T-IGMPDiscover报 文对应的三层组播转发表项,该非源直连路由设备能够断定在此之前,本路由设备已经成 功建立过与组播源S之间的组播转发路径,因而为了标识这一现象,在本实施例中,定义该 非源直连路由设备可以在接收到的T-IGMP Discover报文对检测出的这一现象进行记录标 识,然后再将T-IGMPDiscover报文进行转发。而在本发明中,对这一现象的记录标识,可以通过在T-IGMP Discover报文中对 Flag字段和Distribution IP字段进行记录标识而予以实现。具体地,当某一路由设备在 接收到T-IGMP Discover报文,且检测到自身已存在有与该T-IGMP Discover报文对应的 三层组播转发表项时,将可以在转发的T-IGMPDiscover报文中将Flag字段标识为1,并在 T-IGMP Discover报文中将Distribution IP字段设置为接收到T-IGMP Discover报文的 端口的地址。但是实际应用中,由于T-IGMP Discover报文将在整网内进行转发,而对于接收到 T-IGMP Discover报文的任一路由设备来说,该路由设备可能并非为第一个接收到T-IGMP Discover报文的路由设备,而在此之前,可能已有下游的路由设备已经检测出自身创建有 与T-IGMP Discover报文中指定的组地址对应的三层组播转发表项,因而已经将向上发送 的T-IGMP Discover报文中的Flag字段标识为1,因而,在本步骤中,非源直接路由设备在 根据检测到的上述现象,对T-IGMP Discover报文中的Flag字段进行标识之前,还需要进 一步地检测在此之前,该T-IGMP Discover报文的Flag字段是否已经被标识为1,从而以检测在本路由设备之前,处于更下游的路由设备中是否也已经创建有与T-IGMP Discover报 文中指定的组地址对应的三层组播转发表项。步骤205,非源直连路由设备将T-IGMP Discover报文中的V-TLL值减1后向上游 路由设备进行转发,返回执行步骤202 ;若该非源直连路由设备检测到接收到的T-IGMP Discover报文中的Flag字 段已经被标识为1,该非源直连路由设备将无需重复进行Flag字段的标识,也无需进行 Distribution IP字段的更新,而是只需将接收到的T-IGMP Discover报文中的V-TLL值 减1后,直接将该T-IGMP Discover报文向上游路由设备进行转发即可。从而再次接收到 T-IGMP Discover报文的上游路由设备又将继续按照上述步骤202执行相应的操作。步骤206,非源直连路由设备将T-IGMP Discover报文中的Flag字段置1,将接收 T-IGMP Discover报文的接口地址填充至T-IGMP Discover报文的Distribution IP字段, 并将T-IGMP Discover报文中的V-TLL值减1后向上游路由设备进行转发,返回执行步骤 202 ;而若非源直连路由设备检测到接收的T-IGMP Discover报文中的Flag字段为0, 表明在本路由设备之前,下游的路由设备中均还未创建与组播源S对应的三层组播转发 表项,因而为了标识自身已经存在与T-IGMP Discover报文对应的三层组播转发表项的这 一现象,该非源直连路由设备可以对接收到的T-IGMP Discover报文进行重构。具体地, 该非源直连路由设备将T-IGMPDiscover报文中的Flag字段置位为1,并将接收T-IGMP Discover报文的端口的地址作为分发地址,填充至T-IGMP Discover报文的Distribution IP字段中。同时,为了表示该T-IGMP Discover报文又经过了一次转发,该非源直连路由设 备同样还将T-IGMP Discover报文中的V-TLL值减1后,将该重构后的T-IGMP Discover 报文继续向上游路由设备进行转发,从而各上游路由设备在接收到T-IGMP Discover报文 后,将继续执行上述步骤202。步骤207,非源直连路由设备检测自身是否已经存在与T-IGMP Discover报文对 应的T-IGMP表项,若否则执行步骤208,若是则执行步骤209 ;而若在上述步骤203中,非源直连路由设备并未检测到自身存在与T-IGMP Discover报文的组地址对应的三层组播转发表项,基于该检测结果,该非源直连路由设备 得知在此之前,下游的路由设备还未成功地建立过与组播源S之间的组播转发路径。因而 此时,该非源直连路由设备将进一步检测自身是否已经创建与T-IGMP Discover报文对应 的T-IGMP表项,即检测自身是否已经创建有与T-IGMP Discover报文中指定的组地址和目 标网络地址对应的T-IGMP表项,即检测自身是否为首次接收到对应于上述组地址和目标 网络地址的T-IGMP Discover报文。具体地,该T-IGMP表项为接收到T-IGMP Discover报文的路由设备为了在三层组 播转发表项还未建立之前,将T-IGMP Discover报文中携带的信息进行记录保存,以作为寻 找发现最短最优组播转发路径的依据而临时创建的表项。而此时非源直连路由设备检测自 身是否已经存在与T-IGMP Discover报文对应的T-IGMP表项的目的在于为了检测在此次 接收到T-IGMP Discover报文之前,该非源直连路由设备是否已经接收到过对应于同样的 组地址和目标网络地址的T-IGMP Discover报文。若检测结果为是,该非源直连路由设备 可以将已有的T-IGMP表项记录的信息、与此次接收到的T-IGMP Discover报文中携带的对应信息进行对比,以使T-IGMP表项中记录的信息为与最短最优组播转发路径对应的信息。步骤208,非源直连路由设备创建T-IGMP表项,并将T-IGMP Discover报文中的 V-TLL值减1后继续向上游路由设备进行转发,返回执行步骤202 ;因而若在上述步骤207中,若非源直连路由设备检测到自身还未创建过与接收到 的T-IGMP Discover报文对应的T-IGMP表项时,这表明该非源直连路由设备为第一次接收 到该T-IGMP Discover报文。因而为了在首次接收到T-IGMP Discover报文时,记录下该 T-IGMP Discover报文中的相关信息,以作为后续创建三层组播转发表项时的依据,该非源 直连路由设备将根据T-IGMP Discover报文在自身创建对应的T-IGMP表项,并在创建的 T-IGMP表项中记录下相应的信息后,将T-IGMP Discover报文中的V-TLL值减1,并继续将 T-IGMP Discover报文向上游路由设备进行转发,从而返回至步骤202中。具体地,在路由设备根据T-IGMP Discover报文创建的T-IGMP表项中,至少 应当对应记录如下四个有关建立组播转发路径的信息与T-IGMPDiscover报文请求加 入的组播源S对应的组地址信息;接收者所处的目标网络地址信息;该路由设备接收到 T-IGMP Discover报文的端口的标识信息,即组播转发路径通向接收者的出口信息;以及 T-IGMP Discover报文当前已转发跳数信息(在本发明中称为HOP值),即255减去T-IGMP Discover报文中的V-TLL值的差值信息。根据临时创建的该T-IGMP表项,当该路由设备 接收到上游的路由设备下发的用作确认的T-IGMP Confirm报文时,根据该T-IGMP表项中 记录的信息,能够得知为了将组播数据最终转发给处于目标网络中的接收者,需要将该组 播数据转发至哪个出口,从而能够创建对应的三层组播转发表项,因而对于T-IGMP表项而 言,在三层组播转发表项创建之前,T-IGMP表项便相当于一个临时的三层组播转发表项。步骤209,非源直连路由设备检测255与T-IGMP Discover报文中的V-TLL值的差 值是否小于T-IGMP表项中的HOP值,若是则执行步骤210,若否则执行步骤211 ;而若非源直连路由设备通过检测,得知自身已经创建有与接收到的T-IGMP Discover报文对应的T-IGMP表项,这表明该非源直连路由设备并非第一次接收到该 T-IGMP Discover报文,即该非源直连路由设备至少可以通过两条转发路径接收到接收者 向上转发的报文,也相应地表明若组播源S下发组播数据,该非源直连路由设备可以通过 至少两条转发路径将组播数据转发至接收者。因而,为了寻找发现最短最优的组播转发路 径,即为了对比那一条转发路径才是最短最优的,该非源直连路由设备将进一步根据自身 已创建的T-IGMP表项中的HOP值与接收到的T-IGMP Discover报文中的V-TLL值进行对 比。具体地,已创建的T-IGMP表项中的HOP值可以对应于已创建的T-IGMP表项中已 经记录的组播转发路径,而T-IGMP Discover报文中的V-TLL值则可以对应于新接收到 的T-IGMP Discover报文所经过的组播转发路径。因而,该非源直连路由设备将255减去 T-IGMP Discover报文中的V-TLL值,得到的是该新接收到的T-IGMP Discover报文已经经 过的转发跳数,T-IGMP表项中的HOP值则为T-IGMP表项中已记录的组播转发路径已经经 过的转发跳数。若通过数值的比较,非源直连路由设备检测到(255-V-TLL) < HOP值,代表新接 收到的T-IGMP Discover报文所对应的组播转发路径的转发跳数小于已创建的T-IGMP表 项对应的组播转发路径的转发跳数,即新接收到的T-IGMP Discover报文所对应的组播转发路径短于已创建的T-IGMP表项对应的组播转发路径。因而,为了将最短最优的组播 转发路径的相应信息记录至T-IGMP表项中,该若非源直连路由设备根据接收到的T-IGMP Discover报文中携带的相关信息,对T-IGMP表项中记录的信息进行相应的更新。步骤210,非源直连路由设备将T-IGMP表项中的HOP值更新为上述差值,将 T-IGMP表项中的端口的信息更新为此次接收T-IGMP Discover报文的端口的信息,并将 T-IGMP Discover报文中的V-TLL值减1后继续向上游路由设备进行转发,返回执行步骤 202 ;具体地,非源直连路由设备在检测到新接收到的T-IGMP Discover报文所对应 的组播转发路径优于目前T-IGMP表项中记录的组播转发路径后,非源直连路由设备将对 T-IGMP表项中的HOP值进行更新,将其更新为255减去接收到的T-IGMP Discover报文 中的V-TLL的差值,并对T-IGMP表项中记录的端口信息进行更新,将其更新为接收到新的 T-IGMP Discover报文的端口的标识信息。进一步地,为了继续向上寻找发现最短最优的组 播转发路径,非源直连路由设备同样还将T-IGMP Discover报文中的V-TLL值减1后,继续 将该T-IGMP Discover报文向组播网内的其他路由设备进行转发。如此一来,通过比较已创建的T-IGMP表项中的HOP值与新接收到的T-IGMP Discover报文中的V-TLL值,相当于比较多次接收到的T-IGMPDiscover报文中携带的 V-TLL值,每个接收到T-IGMP Discover报文的路由设备均可以根据比较的结果获知哪条 组播转发路径所经过的转发跳数是最少的,从而可以得知哪条组播转发路径为最短组播转 发路径。步骤211,非源直连路由设备丢弃T-IGMP Discover报文;而若在上述步骤209中,非源直连路由设备检测到255与T-IGMPDiscover报 文中的V-TLL值的差值大于或等于T-IGMP表项中的HOP值,这代表新接收到的T-IGMP Discover报文所对应的组播转发路径并未优于目前T-IGMP表项中记录的组播转发路 径,反而差于目前T-IGMP表项中记录的组播转发路径,非源直连路由设备不对已创建的 T-IGMP表项中的信息进行任何更改操作。同时,由于该新接收到的T-IGMP Discover报文 对应的组播转发路径明显差于T-IGMP表项中已记录的组播转发路径,因而非源直连路由 设备无需再将该T-IGMP Discover报文向上游路由设备进行转发,而是可以将该T-IGMP Discover报文直接进行丢弃。步骤212,源直连路由设备检测是否同时接收到对应于同一组地址和目标网络地 址的多个T-IGMP Discover报文,若是则执行步骤213,若是则执行步骤214 ;若在上述步骤202中,接收到T-IGMP Discover报文的路由设备若经过判断得 知自己为与组播源S直连的源直连路由设备,由于该源直连路由设备直接与组播源连接, 因而源直连路由设备能够直接接收到组播源S下发的组播数据,因而源直连路由设备为 T-IGMP Discover报文的转发终点,即在T-IGMPDiscover报文被转发至源直连路由设备 后,源直连路由设备无需再将T-IGMPDisc0ver报文继续向更上游的路由设备或者组播源 进行转发。而在本步骤中,为了确定是否需要将多个T-IGMP Discover报文中的信息进行 对比,源直连路由设备将检测自身是否同时接收到对应于同一组地址和目标网络地址的至 少两个T-IGMP Discover报文。需要说明的是,事实上,对于源直连路由设备而言,由于其同样可能连接有多个下游的路由设备,即同样可能会多次地接收到对应于同一组地址和目标网络地址的T-IGMP Discover报文,而对应不同的传播路径,其传输性能和速度也有可能不同,因而在源直连路 由设备首次接收到T-IGMP Discover报文后,将无法预计何时才会接收到第二次的T-IGMP Discover 报文。而基于源直连路由设备与非源直连路由设备的区别,虽然非源直连路由设备可以 在首次接收到T-IGMP Discover报文、进行相应的处理并转发后,在该T-IGMP Discover 报文还未被传送至源直连路由设备之前,能够继续等待第二次或第三次接收到T-IGMP Discover报文,并据此判断是否对T-IGMP表项中的信息进行更新,以寻找发现最短组播转 发路径。而这种方式若同样应用于源直连路由设备中,源直连设备则将不知道何时才会最 后一次接收到T-IGMP Discover报文,从而不知道何时才能开始向下确认最短组播转发路 径的建立,如此一来将严重地影响组播转发路径建立的速度。因而为了避免上述现象的发生,在本实施例,源直连路由设备在首次接收到 T-IGMP Discover报文时,便认定该T-IGMP Discover报文所对应的组播转发路径为对应于 本设备而言最终确定的组播转发路径,而无需等待之后的T-IGMP Discover报文的再次接 收。事实上,这样的确定方式同样也存在一定的优点第一次接收到T-IGMP Discover报文 的端口虽然对于本源直连路由设备而言,可能并不是对应于最短组播转发路径的出口,但 是由于该T-IGMPDisc0ver报文能够最快到达源直连路由设备,必定有优于其他组播转发 路径的优势,因而基于这点而言,该首次到达源直连路由设备的T-IGMP Discover报文所对 应的端口,无疑是通向最优组播转发路径的出口。因此,对应于源直连路由设备,在接收到T-IGMP Discover报文时,无需再创建临 时的T-IGMP表项,而是只需直接地根据T-IGMP Discover报文指定的组地址和目标网络地 址信息,将接收T-IGMP Discover报文的端口的地址添加至自身的三层组播转发表项中的 出口列表中即可(源直连路由设备通常都已创建有三层组播转发表项)。但是在实际应用中,源直连路由设备却有可能出现从两个或多个端口上同时接 收到对应于同一组地址和目标网络地址的两个或多个T-IGMPDiscover报文的现象,这种 现象发生的概率虽然不大,但是基于整体方案的健壮性,在本实施例中,需要考虑到这一现 象。因而优选地,在本实施例中,针对这一现象,源直连路由设备并不直接忽略或丢弃其中 的任一 T-IGMPDiscover报文,而是可以基于对T-IGMP Discover报文中携带的转发跳数值 的比较,选取转发跳数最少的、对应最短组播转发路径的T-IGMP Discover报文,进行相应 的处理。步骤213,源直连路由设备将V-TLL值最大的T-IGMP Discover报文对应的端口的 信息添加至自身的三层组播转发表项中,执行步骤215 ;具体地,若源直连路由设备同时从两个或多个端口接收到对应于同一组播源和目 标网络的两个或多个T-IGMP Discover报文,源直连路由设备将提取出各T-IGMP Discover 报文中的V-TLL值,并比较提取出的各V-TLL值的大小。由于各T-IGMP Discover报文中 的V-TLL值代表各T-IGMP Discover报文所剩余的最大转发跳数值,即255-V-TLL的值为 各T-IGMP Discover报文所经历的实际跳数。因而通过对比各T-IGMP Discover报文中的 各V-TLL值,源直连路由设备可以选取出V-TLL值最大、即转发跳数最大T-IGMP Discover 报文,源直连路由设备直接将选取出的该T-IGMP Discover报文对应的端口的地址添加至
17自身与该组播源对应的三层组播转发表项中,相当于完成了本源直连路由设备自身对组播 转发路径的确认。步骤214,源直连路由设备将接收T-IGMP Discover报文的端口信息添加至自身 的三层组播转发表项中,执行步骤215 ;而若源直连路由设备同时仅接收到了一个T-IGMP Discover报文,源直连路由设 备无需进行T-IGMP Discover报文的选取,直接将接收到T-IGMPDiscover报文的端口的标 识信息添加至与组地址对应的三层组播转发表项的出口列表中,同样完成了本源直连路由 设备自身对组播转发路径的确认。步骤215,源直连路由设备检测选取的T-IGMP Discover报文中的Flag字段是否 置1,若否则执行步骤216,若是则执行步骤218 ;在根据选取的T-IGMP Discover报文,对三层组播转发表项进行了相应的处理之 后,源直连路由设备需要依次向下控制进行组播转发路径的确认。在本发明中,源直连路由 设备控制进行对组播转发路径的确认,通过向下发送自定义的T-IGMP报文予以实现。进一 步优选地,在本实施例中,为了确定下发的T-IGMP报文的类型,以进入不同的确认流程,源 直连路由设备还可以进一步检测选取的T-IGMP Discover报文中的Flag字段是否已经置 为1,即检测该T-IGMP Discover报文所经历的所有路由设备中,是否已经有一下游的路由 设备成功地建立过与组播源S之间的组播转发路径,即该组播源S至少已经可以将组播数 据成功地下发至该T-IGMP Discover报文所对应的其中某一路由设备中。步骤216,源直连路由设备构造T-IGMP Confirm报文,并按照三层组播转发表项 将T-IGMP Confirm报文向下游路由设备进行转发;若选取T-IGMP Discover报文中的Flag字段尚未标识为1,这代表在T-IGMP Discover报文所对应的路由设备中,均未有任一路由设备成功创建过组播源S之间的组播 转发路径,因而为了继续向下游路由设备对各路由设备创建的T-IGMP表项所对应的组播 转发路径进行确认,源直连路由设备可以根据T-IGMP Discover报文中记录的信息,构造 新的T-IGMP Confirm报文,并按照三层组播转发表项中记录的出口列表,将构造的T-IGMP Confirm报文向下游路由设备进行转发,以通过T-IGMP Confirm报文来对组播转发路径进 行确认。具体地,源直连路由设备构造的T-IGMP Confirm报文的格式可以参照上述对 T-IGMP报文格式的描述,在构造的T-IGMP Conf irm报文中,GroupAddress字段为组播源S 对应的组地址;Target Network字段为接收者所在的目标网络;Type字段可以为区别于其 他T-IGMP报文的数值,例如在本发明中,可以定义T-IGMP Confirm报文的Type值为0x05 ; 而对于V-TLL字段、Flag字段以及Distribution IP字段,在T-IGMP Confirm报文中则可 以无需填充。步骤217,接收到T-IGMP Confirm报文的路由设备根据自身的T-IGMP表项创建对 应的三层组播转发表项,并将T-IGMP Confirm报文进行转发,直至将T-IGMP Confirm报文 发送至与接收者直连的路由设备为止;对于接收到T-IGMP Confirm报文的路由设备而言,在接收到该T-IGMPConfirm报 文后,该路由设备得知需要对组播转发路径进行确认,于是该路由设备可以根据已创建的 T-IGMP表项中的信息,在自身创建生成对应的三层组播转发表项。具体地指将T-IGMP表项中记录的端口信息加入至与组地址对应的三层组播转发表项的出口列表中,从而为该路由 设备指明将组播数据流转发至接收者所在的目标网络的出口。建立了三层组播转发表项的 路由设备可以承载组播源的组播业务,在接收到组播源下发的组播数据时,可以将组播数 据向对应的出口进行转发。由于对于处于组播源和接收者之间的每个路由设备,各路由设备所创建的T-IGMP 表项中记录的出口均为基于T-IGMP Discover报文的V-TLL值与T-IGMP表项的HOP值的 对比机制、确定的最短最优的组播转发路径所对应的出口。因而当从源直连路由设备的三 层组播转发表项中记录的与目标网络地址对应的出口开始,一直将T-IGMP Confirm报文沿 各路由设备进行转发,且沿路建立记录最短组播转发路径对应出口的T-IGMP表项对应的 三层组播转发表项,当该T-IGMP Confirm报文最终被转发至与接收者直连的路由设备时, 沿路的各路由设备中创建的三层组播转发表项所对应的组播源与目标网络之间的组播转 发路径,为组播源与接收者之间的最短最优组播转发路径。需要说明的是,在本实施例中,在各路由设备根据接收到的T-IGMPConfirm报文 查询到自身已经创建有与T-IGMP Confirm报文中指定的组地址和目标网络地址对应的 T-IGMP表项,并根据该T-IGMP表项将对应的端口地址加入至三层组播转发表项的出口列 表中后,为了对接收到T-IGMP Confirm报文进行确认,在本实施例中,该路由设备还可以 回复T-IGMP ACK报文给上游路由设备,以告知出口在三层组播转发表项中的添加完成。 该T-IGMPACK报文的具体格式同样可以参照上述对T-IGMP报文的格式定义,具体地,在本 发明中,可以定义T-IGMP ACK报文的Type值为0x02 ;而对于V-TLL字段、Flag字段以及 Distribution IP字段,在T-IGMP Confirm报文中则可以无需填充。步骤218,源直连路由设备生成T-IGMP Distribute报文,并按照三层组播转发表 项将T-IGM Distribute报文向下进行转发;在若上述步骤214中,源直连路由设备检测到T-IGMP Discover报文中的Flag字 段已经标识为1,这代表在组播源S与接收者之间,至少有一个路由设备在本次的组播转发 路径寻找过程之前、已经创建有与组播源S对应的组地址对应的三层组播转发表项,即组 播源S的组播数据已经能够通过某一条已经建立的组播转发路径转发至该路由设备,组播 源S已经可以为该路由设备提供组播业务。因而对应于此种情况,与上述构建T-IGMP Confirm报文的步骤不同,此时源直连 路由设备可以根据接收到的T-IGMP Discover报文构造生成对应的T-IGM分发报文,即 T-IGM Distribute报文。具体地,源直连路由设备构造的T-IGMP Distribute报文可以参 照上述对T-IGMP报文格式的描述。在构造的T-IGMP Distribute报文中,组地址、目标网 络地址信息将与T-IGMP Discover报文中一致;Type字段可以为区别于其他T-IGMP报文的 数值,例如在本发明中,T-IGMP Distribute报文的Type值为0x03 ;而T-IGMP Distribute 报文的Distribution IP字段将记录为T-IGMP Discover报文中指定的Distribution IP 地址。源直连路由设备在构造生成了相应的T-IGM Distribute报文后,将该T-IGM Distribute报文按照自身的三层组播转发表项中已记录有的与目标网络地址对应的出口, 向下游路由设备进行转发。而该T-IGM Distribute报文用于指示组播源与已存在有三层 组播转发表项的路由设备之间的各路由设备按照原有的组播转发路径,确认组播源与该已存在有三层组播转发表项的路由设备之间的组播转发路径,并指示已存在有三层组播转发 表项的路由设备与接收者之间的各路由设备,按照自身创建的T-IGMP表项,创建确认该已 存在有三层组播转发表项的路由设备与接收者之间的组播转发路径。步骤219,接收到T-IGMP Distribute报文的路由设备检测本机地址是否为指定 的Distribution IP地址,若否执行步骤220,若是则执行步骤221 ;步骤220,接收到T-IGM Distribute报文的路由设备继续将Τ-IGMPDistribute报 文向下进行转发,返回执行步骤219 ;具体地,下游的路由设备在接收到T-IGMP Distribute报文之后,首先将检测 T-IGMP Distribute报文中指定的Distribution IP地址是否为本机地址,即检测自身是 否为之前记录标识T-IGMP Discover报文中的Flag字段和Distribution IP字段的路由 设备,实质上是检测自身是否为已经创建有对应的三层组播转发表项的路由设备。若检测 结果为否,代表该路由设备并非为之前记录标识T-IGMP Discover报文中的Flag字段和 Distribution IP字段的路由设备,而是为将Flag置1的路由设备与组播源之间的一个路 由设备,因而该路由设备必定也已经创建有三层组播转发表项,于是该路由设备将无需进 行任何操作,而是继续将T-IGMP Distribute报文按照自身的三层组播转发表项中记录的 出口列表向下游的路由设备进行转发。步骤221,与Distribution IP地址对应的路由设备构造对应的T-IGMPConfirm报 文,并将构造的T-IGMP Confirm报文向下游路由设备进行转发,返回执行步骤217。而若接收到T-IGMP Distribute报文的下游路由设备通过对T-IGMPDistribute 报文的Distribution IP字段进行检测,检测到本机地址便是Τ-IGMPDistribute报文中 的Distribution IP字段记录的地址,该下游路由设备得知自己便是之前记录标识T-IGMP Discover报文中的Flag字段和Distribution IP字段的路由设备,也是已经创建有对应的 三层组播转发表项的路由设备。因而为了建立该下游路由设备与接收者之间的组播转发路 径,该下游路由设备不能再继续将T-IGMP Distribute报文向下进行转发,而是需要重新构 造一新的T-IGMP Confirm报文,并将构造的该T-IGMP Confirm报文沿着已有三层组播转 发表项中记录的出口向下进行转发,直至将T-IGMP Confirm报文传送至与接收者直连的路 由设备为止,从而建立起从本路由设备开始到接收者之间的组播转发路径。具体地,本步骤中,下游路由设备构造的T-IGMP Confirm报文的具体格式以及 内容与上述步骤216中的一致,而各路由设备接收到T-IGMP Confirm报文的处理操作 也可以参照上述步骤217,即对于之前记录标识T-IGMPDiscover报文中的Flag字段和 Distribution IP字段的路由设备与接收者之间来说,组播转发路径是由各路由设备依据 之前创建的T-IGMP表项创建对应的三层组播转发表项而形成的。从而在本实施例中,对应源直连路由设备接收到的T-IGMP Discover报文中的 Flag字段和Distribution IP地址已经记录标识的情况,在这种情况下,组播源与之前记 录标识Flag字段和Distribution IP字段的路由设备之间的组播转发路径,与该路由设备 和组播源之间的原组播转发路径是一致的;而之前记录标识Flag字段和Distribution IP 字段的路由设备与接收者之间的组播转发路径,则是由该路由设备与接收者之间的各路由 设备根据之前创建的T-IGMP表项创建对应的三层组播转发表项而形成的。原组播转发路 径与新形成的组播转发路径一起,构成了组播源到接收者之间的最终组播转发路径。至此,本发明的组播源与接收者之间的组播转发路径的寻找建立过程完成。无论对应哪种情况, 通过新定义的T-IGMP机制,组播源与接收者之间均能创建最短最优的组播转发路径。此外需要说明的是,在本实施例中,优选地,针对各路由设备依据接收到T-IGMP Discover报文临时创建的T-IGMP表项,还可以设置一个定时删除机制,即对于任一路由设 备而言,在T-IGMP表项创建生成后,若在预定的时间内没有接收到与该表项对应的T-IGMP Confirm报文对该T-IGMP表项予以确认,则可以自动删除该T-IGMP表项,以避免资源占 用的浪费。而在此机制中,设置的定时删除T-IGMP表项的预定时间需要保证正常状态 下,从T-IGMP表项得以创建开始、到源直连路由设备对组播转发路径予以确认,将T-IGMP Conf irm报文下发至最下游的路由设备的时间,通常根据经验值,该预设的定时删除时间可 以设置为30s。此外还需要说明的是,对于本实施例而言,本实施例虽然描述了本发明组播转发 路径的建立方法的一种最完整最优选的实施方式,包含了本发明最优选的所有技术特征, 但并不用于限制本发明。对于本实施例中描述的某些优选的技术特征而言,在不包含该优 选的技术特征的基础上,基于上述实施例一描述的方法,仍然能够实现本发明且达到预期 的技术效果。而对于本领域的普通技术人员来说,在对本发明的发明实质进行了充分理解 的基础上,可以对本实施例的技术方案进行各种更改和变化,以及本实施例中的部分技术 特征进行等同替换。而对本发明所作的这些更改和替换,但凡在本发明的精神和原则之内, 均应包含在本发明的保护范围之内。本实施例的组播转发路径的建立方法,通过在组播路由中定义T-IGMP报文规范, 在整网内传递T-IGMP Discover报文,当发现组播源后,各路由设备根据接收到的T-IGMP Discover报文中的V-TTL值以及自身T-IGMP表项中的HOP值来判断最短组播转发路径, 从而删除了原PIM-SM协议中的RP处理机制,同时无需进行RPT、SPT路径的选择,解决了 PIM-SM中建立最短路径树需要建立在SPT+RPT路径已完成建立的基础上的问题,降低了组 播转发路径生成的复杂度;同时由于整个组播路径发现过程,完全是设备间直连通信,因此 也不依赖于单播路由的机制,在寻找到最短路径的同时,还降低了原PIM-SM协议路由的维 护难度。进一步地,在本实施例的上述技术方案的基础上,优选地,本发明中,针对组播转 发路径中发生的异常现象,还可以利用定义的T-IGMP报文,设置一种异常检测机制。具体 地,在组播转发路径已经成功创建完成之后,在已创建有组播转发路径的组播源与接收者 之间,若处于组播转发路径中的任一路由设备检测到上游的组播转发路径出现了链路中断 或组播转发功能失效时,将自动生成一 T-GIMP修剪报文,即T-GIMP Prime报文,并沿三层 组播转发表项的出口向下进行转发。具体地,该T-IGMP Prune报文可以参照上述对T-IGMP报文格式的描述。在构造 的T-IGMP Prune报文中,组地址、目标网络地址信息将与对应的组播转发路径对应的组地 址和目标网络地址一致;Type字段可以为区别于其他T-IGMP报文的数值,例如在本发明 中,T-IGMP Prune 报文的 Type 值为 0x05 ;而 T-IGMP Prune 报文的 Distribution IP 字段 和Flag字段以及V-TLL字段,在T-IGMP Prune报文中则可以无需填充。而检测到三层组 播链路异常的路由设备沿组播转发路径向下转发该T-IGMP Prime报文的目的在于指示 该组播转发路径上的下游的路由设备依据接收到的T-IGMP Prime报文,将对应的三层组播转发表项进行删除,以避免发生异常的组播转发路径上组播数据的异常传送。具体地,图4为本发明中路由设备对接收到的T-IGMP Prime报文的处理流程示意 图。对于任一路由设备接收到T-IGMP Prune报文后,对T-IGMP Prune报文的处理流程可 以参见图4。具体地,本流程可以包含下述步骤步骤300,接收到 T-IGMP Prune 报文;步骤301,提取T-IGMP Prune报文中的组地址信息;对于任一路由设备而言,当接收到上游路由设备下发的T-IGMP Prune报文后, 首先将从接收到的T-IGMP Prune报文中提取出其中携带的组地址信息,以确定该T-IGMP Prune报文所对应的组播源。步骤302,检测自身是否存在与提取出的组地址对应的三层组播转发表项,若是则 执行步骤303,若否则执行步骤304 ;步骤303,将T-IGMP Prune报文沿与组地址对应的三层组播转发表项向下转发, 并删除该三层组播转发表项,返回步骤300 ;提取出T-IGMP Prime报文中携带的组地址信息后,路由设备可以在自身检测查 询自身是否存在与该组地址对应的三层组播转发表项,若已存在,路由设备可以沿三层组 播转发表项继续向下转发该T-IGMP Prime报文,直至将该T-IGMP Prime报文传送至与接 收者直连的路由设备为止,同时该路由设备为了响应该T-IGMP Prune报文,还将该三层组 播转发表项进行删除。从而接收到T-IGMP Prime报文的下游路由设备可以按照上述步骤 300,对接收到的T-IGMPPrune报文进行处理。优选地,接收到T-IGMP Prune报文的路由设备为了向上确认已经接收到T-IGMP Prune报文,并依据T-IGMP Prune报文进行了相应的处理,该路由设备还可以向上返回对 应的T-IGMP ACK报文,以对接收到的T-IGMP Prune报文进行确认。步骤304,丢弃 T-IGMP Prune 报文。若在上述步骤302中,接收到T-IGMP Prime报文的路由设备未在自身检测到对应 的三层组播转发表项,该路由设备丢弃该T-IGMP Prune报文,不进行任何处理。本实施例的上述技术方案,通过在组播网中增添异常检测机制,当检测到组播转 发路径发生异常时,还通过下发T-IGMP Prime报文,以对相应的组播转发路径进行删除,从 而避免了异常的组播转发路径上组播数据的继续传送。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过 程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序 在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者 光盘等各种可以存储程序代码的介质。图5为本发明路由设备实施例一的结构示意图,如图5所示,本实施例的路由设备 包括第一报文构造模块11、报文处理模块12、第一报文转发模块13和路径确认模块14四 个模块。其中,第一报文构造模块11用于若本路由设备为与接收者直连的路由设备,在接 收到接收者发送的IGMP报告报文后,构造对应的T-IGMP Discover报文,并向上游的路由 设备转发该T-IGMP Discover报文,构造的T-IGMPDiscover报文中初始设置的V-TLL值为 预设的最大可转发跳数值255减1 ;
22
报文处理模块12用于若本路由设备为非源直连路由设备,在接收到T-IGMP Discover报文后,根据接收到的T-IGMP Discover报文创建对应的T-IGMP表项,或者在检 测到已创建的T-IGMP表项中记录的HOP值大于接收到的T-IGMP Discover报文中记录的 V-TLL值与最大可转发跳数值255的差值时,将已创建的T-IGMP表项中的HHOP值更新为该
差值;第一报文转发模块13用于若本路由设备为非源直连路由设备,将接收到的 T-IGMP Discover报文中的V-TLL值减1后,继续向上游的路由设备进行转发,直至将该 T-IGMP Discover报文转发至源直连路由设备为止;路径确认模块14则用于若本路由设备为源直连路由设备,在接收到T-IGMP Discover报文后,将接收T-IGMP Discover报文的端口的地址添加至自身的三层组播转发 表项中,并沿自身的三层组播转发表项依次向下发送T-IGMP Confirm报文,以指示各非源 直连路由设备根据自身的T-IGMP表项,创建与组播源对应的三层组播转发表项。具体地,本实施例中的所有模块所涉及的具体工作过程,可以参考上述组播转发 路径的建立方法所涉及的相关实施例揭露的相关内容,在此不再赘述。本实施例的路由设备,通过在组播路由中定义T-IGMP报文规范,在整网内传递 T-IGMP Discover报文,当发现组播源后,各路由设备根据接收到的T-IGMP Discover报文 中的V-TTL值以及自身T-IGMP表项中的HOP值来判断最短组播转发路径,从而删除了原 PIM-SM协议中的RP处理机制,同时无需进行RPT、SPT路径的选择,解决了 PIM-SM中建立 最短路径树需要建立在SPT+RPT路径已完成建立的基础上的问题,降低了组播转发路径生 成的复杂度;同时由于整个组播路径发现过程,完全是设备间直连通信,因此也不依赖于单 播路由的机制,在寻找到最短路径的同时,还降低了原PIM-SM协议路由的维护难度。图6为本发明路由设备实施例二的结构示意图。如图6所示,在上一实施例的基 础上,本实施例的路由设备还可以包括端口添加模块15和第二报文转发模块16。其中,端口添加模块15用于若本路由为非源直连路由设备、且接收到T-IGMP Confirm报文时,根据接收到的T-IGMP Confirm报文,创建与T-IGMPConfirm报文指定的 组地址对应的三层组播转发表项,并将自身已创建的、与所述组地址对应的T-IGMP表项 中记录的端口的地址添加至创建的三层组播转发表项中;第二报文转发模块16则用于将 T-IGMP Confirm报文沿自身创建的三层组播转发表项向下进行转发。更进一步地,本实施例的路由设备中,报文处理模块12还可以包括表项创建子 模块121、数值比较子模块122和数值更新子模块123。其中,表项创建子模块121用于若本路由设备为非源直连路由设备、且首次接 收到T-IGMP Discover报文时,根据接收到的T-IGMP Discover报文在自身创建对应的 T-IGMP表项,该T-IGMP表项中至少记录T_IGMP Discover报文中指定的组地址、接收者所 处的目标网络地址、与T-IGMP Discover报文中记录的V-TLL值和最大可转发跳数值255 间的差值相等的HOP值、以及接收T-IGMP Discover报文的端口的地址;数值比较子模块122用于若本路由设备为非源直连路由设备、且非首次接收到 T-IGMP Discover报文时,将T-IGMP Discover报文中的V-TLL值与最大可转发跳数值255 的差值、和自身已创建的T-IGMP表项中记录的HOP值的大小进行比较;数值更新子模块123则用于若数值比较子模块122的比较结果为上述差值小于
23T-IGMP表项中记录的HOP值,则将自身已创建的T-IGMP表项中的HOP值更新为上述差值。更进一步地,本实施例的路由设备还可以包括报文重构模块17。该报文重构模 块17用于若本路由设备为非源直连路由设备,在将接收到的T-IGMPDisc0ver报文中的 V-TLL值减1后,继续向上游的路由设备进行转发之前,若检测到自身已创建有与接收到的 T-IGMP Discover报文对应的三层组播转发表项时,则将接收到的T-IGMP Discover报文的 Flag位置1,并将接收T-IGMPDiscover报文的端口的地址填充为T-IGMP Discover报文的 分发地址,即Distribution IP地址。更进一步地,本实施例的路由设备还可以包括指示模块18和报文生成模块19。其 中,指示模块18用于若本路由设备为非源直连路由设备,在接收到Flag位置1的T-IGMP Discover报文时,向第一报文转发模块13发送指示信息,以指示第一报文转发模块13将 将接收到的T-IGMP Discover报文中的V-TLL值减1后,继续向上游的路由设备进行转 发;而报文生成模块19则用于若本路由设备为源直连路由设备,在接收到Flag位置1的 T-IGMP Discover报文时,生成携带接收到的T-IGMP Discover报文中填充的分发地址的 T-IGMPDistribution报文,并将该T-IGMP Distribution报文沿自身的三层组播转发表项 向下进行转发。更进一步地,本实施例中,路由设备还可以包括检测模块110、确认模块111和第 三报文转发模块112。其中,检测模块110用于若本路由设备为非源直连路由设备,在接收到T-IGMP Distribution报文时,检测本机地址是否为该T-IGMP Distribution报文中指定的分发 地址;确认模块111用于若检测模块110的检测结果为是,则将自身的T-IGMP表项中记录 的端口的地址添加至三层组播转发表项中,并生成对应的T-IGMP Confirm报文,将生成的 T-IGMP Confirm报文沿自身的三层组播转发表项向下进行转发;而第三报文转发模块112 则用于若检测模块110的检测结果为否,则沿自身的三层组播转发表项,继续将接收到的 T-IGMPDistribution报文向下进行转发。更进一步地,本实施例的路由设备中,路径确认模块14至少可以包括比较子模块 141和端口添加子模块142两个子模块。其中,比较子模块141用于若本路由设备为源直连 路由设备,在同时接收到至少两个T-IGMP Discover报文时,比较各T-IGMP Discover报文 中的V-TLL值的大小;端口添加子模块142则用于将比较子模块141比较得到的V-TLL值 较大的T-IGMP Discover报文所对应的端口的地址添加至自身的三层组播转发表项中。更进一步地,本实施例中,路由设备还可以进一步地包括第二报文构造模块和表 项删除模块两个模块(图中未示出)。其中,第二报文构造模块用于若本实施例的路由设备检测到已创建的、与组播源之间的 组播转发路径出现了链路中断或组播转发功能失效时,生成T-IGMPPrime报文,并将生成 的T-IGMP Prune报文沿自身的三层组播转发表项向下转发,该T-IGMP Prune报文中至少 包括与组播源对应的组地址信息;而表项删除模块则用于若本实施例的路由设备接收到T-IGMP Prime报文,则继续 将该T-IGMP Prune报文沿自身与该T-IGMP Prune报文中的组地址信息对应的三层组播转 发表项向下转发,并根据该T-IGMP Prune报文,将自身与该T-IGMP Prune报文中组地址信 息对应的三层组播转发表项删除。
具体地,本实施例中的所有模块所涉及的具体工作过程,同样可以参考上述组播 转发路径的建立方法所涉及的相关实施例揭露的相关内容,在此不再赘述。本实施例的路由设备,通过在组播路由中定义T-IGMP报文规范,在整网内传递 T-IGMP Discover报文,当发现组播源后,各路由设备根据接收到的T-IGMP Discover报文 中的V-TTL值以及自身T-IGMP表项中的HOP值来判断最短组播转发路径,从而删除了原 PIM-SM协议中的RP处理机制,同时无需进行RPT、SPT路径的选择,解决了 PIM-SM中建立 最短路径树需要建立在SPT+RPT路径已完成建立的基础上的问题,降低了组播转发路径生 成的复杂度;同时由于整个组播路径发现过程,完全是设备间直连通信,因此也不依赖于单 播路由的机制,在寻找到最短路径的同时,还降低了原PIM-SM协议路由的维护难度。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽 管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然 可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替 换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精 神和范围。
权利要求
一种组播转发路径的建立方法,其特征在于,包括与接收者直连的路由设备接收到所述接收者发送的IGMP报告报文后,构造对应的可传递IGMP发现报文,并向上游的路由设备转发所述可传递IGMP发现报文,构造的所述可传递IGMP发现报文中初始设置的生存时间值为预设的最大可转发跳数值减1;接收到所述可传递IGMP发现报文的非源直连路由设备根据接收到的可传递IGMP发现报文,创建对应的可传递IGMP表项,或者在检测到已创建的可传递IGMP表项中记录的转发跳数值大于接收到的可传递IGMP发现报文中记录的生存时间值与所述最大可转发跳数值的差值时,将已创建的可传递IGMP表项中的转发跳数值更新为所述差值;所述非源直连路由设备将接收到的可传递IGMP发现报文中的生存时间值减1后,继续向上游的路由设备进行转发,直至将所述可传递IGMP发现报文转发至源直连路由设备为止;所述源直连路由设备将接收所述可传递IGMP发现报文的端口的信息添加至自身的三层组播转发表项中,并沿自身的三层组播转发表项依次向下发送可传递IGMP确认报文,以指示各所述非源直连路由设备根据自身的可传递IGMP表项,创建与组播源对应的三层组播转发表项。
2.根据权利要求1所述的组播转发路径的建立方法,其特征在于,所述沿自身的三层 组播转发表项依次向下发送可传递IGMP确认报文之后,所述方法还包括所述非源直连路由设备根据接收到的所述可传递IGMP确认报文,创建与所述可传递 IGMP确认报文指定的组地址对应的三层组播转发表项,并将自身已创建的、与所述组地址 对应的可传递IGMP表项中记录的端口的信息添加至创建的三层组播转发表项中;所述非源直连路由设备将所述可传递IGMP确认报文沿自身创建的三层组播转发表项 向下进行转发。
3.根据权利要求1或2所述的组播转发路径的建立方法,其特征在于所述接收到所述可传递IGMP发现报文的非源直连路由设备根据接收到的可传递IGMP 发现报文,创建对应的可传递IGMP表项具体包括若所述非源直连路由设备首次接收到所述可传递IGMP发现报文,根据接收到的所述 可传递IGMP发现报文在自身创建对应的可传递IGMP表项,所述可传递IGMP表项中至少记 录所述可传递IGMP发现报文中指定的组地址、所述接收者所处的目标网络地址、与所述 可传递IGMP发现报文中的生存时间值和所述最大可转发跳数值间的差值相等的转发跳数 值、以及接收所述可传递IGMP发现报文的端口的信息;所述将已创建的可传递IGMP表项中的转发跳数值更新为所述差值具体包括 所述非源直连路由设备若非首次接收到所述T-IGMP发现报文,将所述T-IGMP发现报 文中的生存时间值与所述最大可转发跳数值的差值、和自身已创建的可传递IGMP表项中 记录的转发跳数值的大小进行比较;若所述差值小于所述记录的转发跳数值,则将自身已创建的可传递IGMP表项中的转 发跳数值更新为所述差值。
4.根据权利要求1或2所述的组播转发路径的建立方法,其特征在于,所述非源直连路 由设备将接收到的可传递IGMP发现报文中的生存时间值减1后,继续向上游的路由设备进 行转发之前,所述方法还包括若所述非源直连路由设备接收到所述可传递IGMP发现报文后,检测到自身已创建有 与接收到的所述可传递IGMP发现报文对应的三层组播转发表项,则将所述可传递IGMP发 现报文的分发标识位置1,并将接收所述可传递IGMP发现报文的端口的地址填充至所述可 传递IGMP发现报文的分发地址字段。
5.根据权利要求4所述的组播转发路径的建立方法,其特征在于,所述方法还包括若所述非源直连路由设备接收到所述分发标识位已置1的可传递IGMP发现报文,直接执行所述将接收到的可传递IGMP发现报文中的生存时间值减1后,继续向上游的路由设备 进行转发的操作;若所述源直连路由设备接收到所述分发标识位已置1的可传递IGMP发现报文,则生成 携带接收到的可传递IGMP发现报文中填充的分发地址的可传递IGMP分发报文,并将所述 可传递IGMP分发报文沿自身的三层组播转发表项向下进行转发。
6.根据权利要求5所述组播转发路径的建立方法,其特征在于,所述方法还包括若所述非源直连路由设备接收到所述可传递IGMP分发报文,则检测本机地址是否为 所述可传递IGMP分发报文中指定的分发地址; 若是,所述非源直连路由设备将自身的可传递IGMP表项中记录的端口的信息添加至 三层组播转发表项中,并生成对应的所述可传递IGMP确认报文,将所述可传递IGMP确认报 文沿自身的三层组播转发表项向下进行转发;若否,所述非源直连路由设备沿自身的三层组播转发表项中指定的端口,继续将所述 可传递IGMP分发报文向下进行转发。
7.根据权利要求1或2所述的组播转发路径的建立方法,其特征在于,所述源直连路由 设备将接收所述可传递IGMP发现报文的端口的信息添加至自身的三层组播转发表项中还 包括若所述源直连路由设备同时接收到至少两个所述可传递IGMP发现报文时,比较各所 述可传递IGMP发现报文中的生存时间值的大小;将生存时间值较大的可传递IGMP发现报文对应的端口的信息添加至自身的三层组播 转发表项中。
8.根据权利要求1或2所述的组播转发路径的建立方法,其特征在于,所述方法还包括若任一路由设备检测到已创建的、与组播源之间的组播转发路径出现了链路中断或组 播转发功能失效时,构造可传递IGMP修剪报文,并将生成的所述可传递IGMP修剪报文沿自 身的三层组播转发表项向下转发,所述可传递IGMP修剪报文中至少包括与所述组播源对 应的组地址信息;接收到所述可传递IGMP修剪报文的路由设备继续将所述可传递IGMP修剪报文、沿自 身与所述可传递IGMP修剪报文中的组地址信息对应的三层组播转发表项向下转发,并根 据所述可传递IGMP修剪报文,将自身与所述可传递IGMP修剪报文中组地址信息对应的三 层组播转发表项删除。
9.一种路由设备,其特征在于,包括第一报文构造模块,用于若所述路由设备与接收者直连,在接收到所述接收者发送的 IGMP报告报文后,构造对应的可传递IGMP发现报文,并向上游的路由设备转发所述可传递IGMP发现报文,构造的所述可传递IGMP发现报文中初始设置的生存时间值为预设的最大 可转发跳数值减1 ;报文处理模块,用于若所述路由设备为非源直连路由设备,在接收到所述可传递IGMP 发现报文后,根据接收到的可传递IGMP发现报文创建对应的可传递IGMP表项,或者在检测 到已创建的可传递IGMP表项中记录的转发跳数值大于接收到的可传递IGMP发现报文中记 录的生存时间值与所述最大可转发跳数值的差值时,将已创建的可传递IGMP表项中的转 发跳数值更新为所述差值;第一报文转发模块,用于若所述路由设备为非源直连路由设备,将接收到的可传递 IGMP发现报文中的生存时间值减1后,继续向上游的路由设备进行转发,直至将所述可传 递IGMP发现报文转发至源直连路由设备为止;路径确认模块,用于若所述路由设备为源直连路由设备,在接收到所述可传递IGMP发 现报文后,将接收所述可传递IGMP发现报文的端口的信息添加至自身的三层组播转发表 项中,并沿自身的三层组播转发表项依次向下发送可传递IGMP确认报文,以指示各所述非 源直连路由设备根据自身的可传递IGMP表项,创建与组播源对应的三层组播转发表项。
10.根据权利要求9所述的路由设备,其特征在于,所述设备还包括端口添加模块,用于若所述路由为非源直连路由设备、且接收到所述可传递IGMP确认 报文,根据接收到的所述可传递IGMP确认报文,创建与所述可传递IGMP确认报文指定的组 地址对应的三层组播转发表项,并将自身已创建的、与所述组地址对应的可传递IGMP表项 中记录的端口的信息添加至创建的三层组播转发表项中;第二报文转发模块,用于将所述可传递IGMP确认报文沿自身创建的三层组播转发表 项向下进行转发。
11.根据权利要求9或10所述的路由设备,其特征在于,所述报文处理模块具体包括表项创建子模块,用于若所述路由设备为非源直连路由设备、且首次接收到所述可传递IGMP发现报文,根据接收到的所述可传递IGMP发现报文在自身创建对应的可传递IGMP 表项,所述可传递IGMP表项中至少记录所述可传递IGMP发现报文中指定的组地址、所述 接收者所处的目标网络地址、与所述可传递IGMP发现报文中的生存时间值和所述最大可 转发跳数值间的差值相等的转发跳数值、以及接收所述可传递IGMP发现报文的端口的信 息;数值比较子模块,用于若所述路由设备为非源直连路由设备、且非首次接收到所述可 传递IGMP发现报文,将所述T-IGMP发现报文中的生存时间值与所述最大可转发跳数值的 差值、和自身已创建的可传递IGMP表项中记录的转发跳数值的大小进行比较;数值更新子模块,用于若数值比较子模块的比较结果为所述差值小于所述记录的转发 跳数值,则将自身已创建的可传递IGMP表项中的转发跳数值更新为所述差值。
12.根据权利要求9或10所述的路由设备,其特征在于,所述设备还包括报文重构模块,用于若所述路由设备为所述非源直连路由设备,在将接收到的可传递 IGMP发现报文中的生存时间值减1后,继续向上游的路由设备进行转发之前,若检测到自 身已创建有与接收到的所述可传递IGMP发现报文对应的三层组播转发表项,则将所述可 传递IGMP发现报文的分发标识位置1,并将接收所述可传递IGMP发现报文的端口的地址填 充至所述可传递IGMP发现报文的分发地址字段。
13.根据权利要求12所述的路由设备,其特征在于,所述设备还包括指示模块,用于若所述路由设备为所述非源直连路由设备,在接收到所述分发标识位 置1的可传递IGMP发现报文时,向所述第一报文转发模块发送指示信息,以指示所述第一 报文转发模块将接收到的可传递IGMP发现报文中的生存时间值减1后,继续向上游的路由 设备进行转发;报文生成模块,用于若所述路由设备为所述源直连路由设备,在接收到所述分发标识 位置1的可传递IGMP发现报文时,生成携带接收到的可传递IGMP发现报文中填充的分发 地址的可传递IGMP分发报文,并将所述可传递IGMP分发报文沿自身的三层组播转发表项 向下进行转发。
14.根据权利要求13所述的路由设备,其特征在于,所述设备还包括检测模块,用于若所述路由设备为所述非源直连路由设备,在接收到所述可传递IGMP 分发报文时,检测本机地址是否为所述可传递IGMP分发报文中指定的分发地址;确认模块,用于若所述检测模块的检测结果为是,则将自身的可传递IGMP表项中记录 的端口的信息添加至三层组播转发表项中,并生成对应的所述可传递IGMP确认报文,将所 述可传递IGMP确认报文沿自身的三层组播转发表项向下进行转发;第三报文转发模块,用于若所述检测模块的检测结果为否,则沿自身的三层组播转发 表项,继续将所述可传递IGMP分发报文向下进行转发。
15.根据权利要求9或10所述的路由设备,其特征在于,所述路径确认模块至少包括比较子模块,用于若所述路由设备为所述源直连路由设备、且同时接收到至少两个所述可传递IGMP发现报文时,比较各所述可传递IGMP发现报文中的生存时间值的大小;端口添加子模块,用于将所述比较子模块比较得到的生存时间值较大的可传递IGMP 发现报文所对应的端口的信息添加至自身的三层组播转发表项中。
16.根据权利要求9或10所述的路由设备,其特征在于,所述设备还包括第二报文构造模块,用于若所述路由设备检测到已创建的、与组播源之间的组播转发 路径出现了链路中断或组播转发功能失效时,生成可传递IGMP修剪报文,并将生成的所述 可传递IGMP修剪报文沿自身的三层组播转发表项向下转发,所述可传递IGMP修剪报文中 至少包括与所述组播源对应的组地址信息;表项删除模块,用于若所述路由设备接收到所述可传递IGMP修剪报文,则继续将所述 可传递IGMP修剪报文、沿自身与所述可传递IGMP修剪报文中的组地址信息对应的三层组 播转发表项向下转发,并根据所述可传递IGMP修剪报文,将自身与所述可传递IGMP修剪报 文中组地址信息对应的三层组播转发表项删除。
全文摘要
本发明提供一种组播转发路径的建立方法及路由设备,方法包括接收者直连路由设备根据接收到的IGMP报告报文构造V-TLL值为254的T-IGMP发现报文,并向上进行转发;非源直连路由设备根据T-IGMP发现报文创建T-IGMP表项,或在检测到已创建的T-IGMP表项中的HOP值大于T-IGMP发现报文中的V-TLL值与255的差值时,将T-IGMP表项中的HOP值更新为该差值后,将T-IGMP发现报文中的V-TLL值减1,继续向上进行转发;源直连路由设备将接收T-IGMP发现报文的端口的信息添加至三层组播转发表项中,并依次向下发送T-IGMP确认报文,以指示非源直连路由设备根据T-IGMP表项创建对应的三层组播转发表项。本发明在无需采用RP处理机制的基础上,完成了最短组播路径的建立。
文档编号H04L12/56GK101924701SQ20101026446
公开日2010年12月22日 申请日期2010年8月26日 优先权日2010年8月26日
发明者孙伟, 王秀文 申请人:北京星网锐捷网络技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1