CN101924701B - 组播转发路径的建立方法及路由设备 - Google Patents

组播转发路径的建立方法及路由设备 Download PDF

Info

Publication number
CN101924701B
CN101924701B CN201010264463.0A CN201010264463A CN101924701B CN 101924701 B CN101924701 B CN 101924701B CN 201010264463 A CN201010264463 A CN 201010264463A CN 101924701 B CN101924701 B CN 101924701B
Authority
CN
China
Prior art keywords
igmp
message
routing device
list item
source
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201010264463.0A
Other languages
English (en)
Other versions
CN101924701A (zh
Inventor
王秀文
孙伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Star Net Ruijie Networks Co Ltd
Original Assignee
Beijing Star Net Ruijie Networks Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Star Net Ruijie Networks Co Ltd filed Critical Beijing Star Net Ruijie Networks Co Ltd
Priority to CN201010264463.0A priority Critical patent/CN101924701B/zh
Publication of CN101924701A publication Critical patent/CN101924701A/zh
Application granted granted Critical
Publication of CN101924701B publication Critical patent/CN101924701B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提供一种组播转发路径的建立方法及路由设备,方法包括:接收者直连路由设备根据接收到的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处理机制的基础上,完成了最短组播路径的建立。

Description

组播转发路径的建立方法及路由设备
技术领域
本发明涉及组播技术,尤其涉及一种组播转发路径的建立方法及路由设备,属于通信技术领域。
背景技术
随着因特网的迅猛发展,越来越多的组播业务得到了应用,稀疏模式独立组播协议(Protocol Independent Multicast-Sparse Mode,简称PIM-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处理机制很好地解决了密集模式独立组播协议(ProtocolIndependent 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-IGMPDiscover报文的路由设备能够根据T-IGMP Discover报文中携带的V-TLL值与记录的转发跳数值进行比较,从而寻找并发现与组播源S之间的最短最优路径。
具体地,本实施例中,当处于目标网络中的接收者欲加A入到与组播源S对应的组地址中,建立与该组地址之间的组播转发路径,以接收组播源S下发的组播数据时,将向直连的路由设备发送IGMP报告报文,即IGMP Report报文,该IGMP Report报文中携带有请求加入的组播源S的组地址信息。而与接收者直连的路由设备在接收到IGMP Report报文后,为了向上寻找通向指定的组播源S的最短最优路径,将根据接收到的IGMP Report报文构造对应的T-IGMP Discover报文,并向上泛洪地转发该T-IGMP Discover报文,直至将T-IGMP Discover报文发送至与组播源S直连的源直连路由设备为止。
具体地,接收者直连路由设备在构造T-IGMP Discover报文时,将从IGMPReport报文中提取出请求加入的组播源S的组地址信息,以及根据接收IGMPReport报文的端口的标识信息,提取出接收者所处的目标网络的地址信息,接收者直连路由设备将这些信息携带在构造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-IGMPDiscover报文,即已经创建了对应的T-IGMP表项,因而该非首次接收到T-IGMP Discover报文的上游路由设备为了判断出哪次接收到的T-IGMPDiscover报文所对应的组播转发路径才是真正的最短路径,可以将此次接收到的T-IGMP Discover报文中的V-TLL值与已创建的T-IGMP表项中记录的转发跳数值进行大小比较。具体指上游路由设备将已创建的T-IGMP表项中记录的转发跳数值、与255减去此次接收到的T-IGMP Discover报文中的V-TLL值得到的差值进行大小比较。
若前者小于后者,代表T-IGMP表项中记录的转发跳数比较小,因而T-IGMP表项中对应的组播转发路径也较短,此时该非首次接收到T-IGMPDiscover报文的上游路由设备无需对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-IGMPDiscover报文中的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 Report报文,且该IGMP Report报文中指定了某一组地址时,该与接收者直连的路由设备得知接收者请求加入至与该组地址对应的组播源中,以请求接收组播源下发的组播数据。
在本发明中,为了寻找通向组播源的最短最优路径,与接收者直连的路由设备在接收到IGMP Report报文后,将根据该IGMP Report报文中的信息构造用于寻找发现最优组播转发路径的T-IGMP Discover报文。构造的该T-IGMP Discover报文中包含了IGMP Report报文中指定的组地址、接收者所处的目标网络地址等信息,而且由于构造该T-IGMP Discover报文的路由设备、即与接收者直连的路由设备为转发该T-IGMP Discover报文的第一跳设备,因而该路由设备在构造该T-IGMP Discover报文,且在设置代表该T-IGMPDiscover报文的最大剩余转发跳数的生存时间(V-TLL)的初始值时,还将该初始的V-TLL值设置为可转发的最大跳数255减1,即设置为254。
需要说明的是,路由设备构造的该T-IGMP Discover报文中携带的目标网络地址为该路由设备根据接收IGMP Report报文记录的端口对应的地址而提取出的、接收者所处的网络地址,即根据接收IGMP Report报文的端口的地址,与接收者直连的路由设备能够提取出接收者所处的目标网络的地址。
具体地,在本实施例中,接收者直连路由设备构造的T-IGMP Discover报文可以符合下述指定的格式:
Figure BSA00000246355500111
其中,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-IGMPDiscover报文请求寻找发现目标网络与组地址对应的组播源S之间的最短最优路径,而为了继续后续的流程,该上游路由设备首先将判断自身是否为与该组播源S直接连接的源直连路由设备。根据不同的判断结果,该上游路由设备将执行不同的操作。
步骤203,非源直连路由设备检测自身是否存在与组地址对应的三层组播转发表项,若是则执行步骤204,若否则执行步骤207;
若上游路由设备经判断得知自身并非为与组播源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-IGMPDiscover报文继续向更上游的路由设备或者组播源进行转发。而在本步骤中,为了确定是否需要将多个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-IGMPDiscover报文能够最快到达源直连路由设备,必定有优于其他组播转发路径的优势,因而基于这点而言,该首次到达源直连路由设备的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报文对应的端口的地址添加至自身与该组播源对应的三层组播转发表项中,相当于完成了本源直连路由设备自身对组播转发路径的确认。
步骤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 Confirm报文中,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报文的路由设备继续将T-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字段进行检测,检测到本机地址便是T-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 Confirm报文下发至最下游的路由设备的时间,通常根据经验值,该预设的定时删除时间可以设置为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 Prune报文,并沿三层组播转发表项的出口向下进行转发。
具体地,该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 Prune报文的目的在于:指示该组播转发路径上的下游的路由设备依据接收到的T-IGMP Prune报文,将对应的三层组播转发表项进行删除,以避免发生异常的组播转发路径上组播数据的异常传送。
具体地,图4为本发明中路由设备对接收到的T-IGMP Prune报文的处理流程示意图。对于任一路由设备接收到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 Prune报文中携带的组地址信息后,路由设备可以在自身检测查询自身是否存在与该组地址对应的三层组播转发表项,若已存在,路由设备可以沿三层组播转发表项继续向下转发该T-IGMP Prune报文,直至将该T-IGMP Prune报文传送至与接收者直连的路由设备为止,同时该路由设备为了响应该T-IGMP Prune报文,还将该三层组播转发表项进行删除。从而接收到T-IGMP Prune报文的下游路由设备可以按照上述步骤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 Prune报文的路由设备未在自身检测到对应的三层组播转发表项,该路由设备丢弃该T-IGMP Prune报文,不进行任何处理。
本实施例的上述技术方案,通过在组播网中增添异常检测机制,当检测到组播转发路径发生异常时,还通过下发T-IGMP Prune报文,以对相应的组播转发路径进行删除,从而避免了异常的组播转发路径上组播数据的继续传送。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图5为本发明路由设备实施例一的结构示意图,如图5所示,本实施例的路由设备包括:第一报文构造模块11、报文处理模块12、第一报文转发模块13和路径确认模块14四个模块。
其中,第一报文构造模块11用于若本路由设备为与接收者直连的路由设备,在接收到接收者发送的IGMP报告报文后,构造对应的T-IGMP Discover报文,并向上游的路由设备转发该T-IGMP Discover报文,构造的T-IGMPDiscover报文中初始设置的V-TLL值为预设的最大可转发跳数值255减1;
报文处理模块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的比较结果为上述差值小于T-IGMP表项中记录的HOP值,则将自身已创建的T-IGMP表项中的HOP值更新为上述差值。
更进一步地,本实施例的路由设备还可以包括报文重构模块17。该报文重构模块17用于若本路由设备为非源直连路由设备,在将接收到的T-IGMPDiscover报文中的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-IGMPPrune报文,并将生成的T-IGMP Prune报文沿自身的三层组播转发表项向下转发,该T-IGMP Prune报文中至少包括与组播源对应的组地址信息;
而表项删除模块则用于若本实施例的路由设备接收到T-IGMP Prune报文,则继续将该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协议路由的维护难度。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (16)

1.一种组播转发路径的建立方法,其特征在于,包括:
与接收者直连的路由设备接收到所述接收者发送的IGMP报告报文后,构造对应的可传递IGMP发现报文,并向上游的路由设备转发所述可传递IGMP发现报文,构造的所述可传递IGMP发现报文中初始设置的生存时间值为预设的最大可转发跳数值减1;
接收到所述可传递IGMP发现报文的非源直连路由设备根据接收到的可传递IGMP发现报文,创建对应的可传递IGMP表项,或者在检测到已创建的可传递IGMP表项中记录的转发跳数值大于接收到的可传递IGMP发现报文中记录的生存时间值与所述最大可转发跳数值的差值时,将已创建的可传递IGMP表项中的转发跳数值更新为所述差值;
所述非源直连路由设备将接收到的可传递IGMP发现报文中的生存时间值减1后,继续向上游的路由设备进行转发,直至将所述可传递IGMP发现报文转发至源直连路由设备为止;
所述源直连路由设备将接收所述可传递IGMP发现报文的端口的信息添加至自身的三层组播转发表项中,并沿自身的三层组播转发表项依次向下发送可传递IGMP确认报文,以指示各所述非源直连路由设备根据自身的可传递IGMP表项,创建与组播源对应的三层组播转发表项。
2.根据权利要求1所述的组播转发路径的建立方法,其特征在于,所述沿自身的三层组播转发表项依次向下发送可传递IGMP确认报文之后,所述方法还包括:
所述非源直连路由设备根据接收到的所述可传递IGMP确认报文,创建与所述可传递IGMP确认报文指定的组地址对应的三层组播转发表项,并将自身已创建的、与所述可传递IGMP发现报文指定的组地址对应的可传递IGMP表项中记录的端口的信息添加至创建的三层组播转发表项中,所述端口的信息为接收所述可传递IGMP发现报文的端口的标识信息;
所述非源直连路由设备将所述可传递IGMP确认报文沿自身创建的三层 组播转发表项向下进行转发。
3.根据权利要求1或2所述的组播转发路径的建立方法,其特征在于:
所述接收到所述可传递IGMP发现报文的非源直连路由设备根据接收到的可传递IGMP发现报文,创建对应的可传递IGMP表项具体包括:
若所述非源直连路由设备首次接收到所述可传递IGMP发现报文,根据接收到的所述可传递IGMP发现报文在自身创建对应的可传递IGMP表项,所述可传递IGMP表项中至少记录:所述可传递IGMP发现报文中指定的组地址、所述接收者所处的目标网络地址、与所述可传递IGMP发现报文中的生存时间值和所述最大可转发跳数值间的差值相等的转发跳数值、以及接收所述可传递IGMP发现报文的端口的信息;
所述将已创建的可传递IGMP表项中的转发跳数值更新为所述差值具体包括:
所述非源直连路由设备若非首次接收到所述可传递IGMP发现报文,将所述可传递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表项中记录的端口的信息添加至创建的三层组播转发表项中,所述端口的信息为接收所述可传递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修剪报文中组地址信息对应的三层组播转发表项删除。 
CN201010264463.0A 2010-08-26 2010-08-26 组播转发路径的建立方法及路由设备 Expired - Fee Related CN101924701B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010264463.0A CN101924701B (zh) 2010-08-26 2010-08-26 组播转发路径的建立方法及路由设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010264463.0A CN101924701B (zh) 2010-08-26 2010-08-26 组播转发路径的建立方法及路由设备

Publications (2)

Publication Number Publication Date
CN101924701A CN101924701A (zh) 2010-12-22
CN101924701B true CN101924701B (zh) 2013-04-17

Family

ID=43339356

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010264463.0A Expired - Fee Related CN101924701B (zh) 2010-08-26 2010-08-26 组播转发路径的建立方法及路由设备

Country Status (1)

Country Link
CN (1) CN101924701B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2842268A4 (en) * 2012-04-26 2015-11-25 Hewlett Packard Development Co CHECKING A MULTICAST ROUTING ROUTE
CN102769576B (zh) * 2012-08-17 2015-06-10 北京傲天动联技术股份有限公司 流表自学习方法、报文转发方法和交换机
CN104113484A (zh) * 2013-04-19 2014-10-22 中兴通讯股份有限公司 报文的转发处理方法及装置
CN104243323B (zh) * 2013-06-06 2019-07-09 中兴通讯股份有限公司 交换网多播路由方法及系统
CN105099914B (zh) * 2014-04-24 2018-12-25 华为技术有限公司 一种指示组播转发表项的方法及设备
CN105337855B (zh) 2014-08-14 2019-02-05 华为技术有限公司 一种处理修改后的报文方法和装置
CN105429878A (zh) * 2015-11-10 2016-03-23 上海斐讯数据通信技术有限公司 一种创建pim-sm spt的方法
CN108632150B (zh) * 2017-03-22 2022-02-25 中兴通讯股份有限公司 一种信息传递方法及装置
CN108965318B (zh) * 2018-08-02 2021-04-09 杭州安恒信息技术股份有限公司 检测工业控制网络中未授权接入设备ip的方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101207537A (zh) * 2006-12-22 2008-06-25 中兴通讯股份有限公司 无线自组织网络中寻找稳定路径的方法
CN101483655A (zh) * 2009-02-10 2009-07-15 杭州华三通信技术有限公司 一种互联网组管理协议报文传输方法和代理设备
CN101789874A (zh) * 2009-12-15 2010-07-28 福建星网锐捷网络有限公司 一种在pim-sm中实现组播树切换的方法、装置及路由设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101207537A (zh) * 2006-12-22 2008-06-25 中兴通讯股份有限公司 无线自组织网络中寻找稳定路径的方法
CN101483655A (zh) * 2009-02-10 2009-07-15 杭州华三通信技术有限公司 一种互联网组管理协议报文传输方法和代理设备
CN101789874A (zh) * 2009-12-15 2010-07-28 福建星网锐捷网络有限公司 一种在pim-sm中实现组播树切换的方法、装置及路由设备

Also Published As

Publication number Publication date
CN101924701A (zh) 2010-12-22

Similar Documents

Publication Publication Date Title
CN101924701B (zh) 组播转发路径的建立方法及路由设备
US11303470B2 (en) Bridging of non-capable subnetworks in bit indexed explicit replication
US10693765B2 (en) Failure protection for traffic-engineered bit indexed explicit replication
CN103200122B (zh) 一种软件定义网络中组表的处理方法、系统和控制器
CN101789900B (zh) 组播转发路径的查询方法、中间节点和管理节点
CN105556899A (zh) 位索引显式复制
CN101605103B (zh) 一种组播数据静态转发的方法及装置
CN101800742B (zh) 路由设备上游信息的更新处理方法、路由设备及网络系统
US9608900B2 (en) Techniques for flooding optimization for link state protocols in a network topology
CN101778113B (zh) 组播网中rp状态检测方法、装置、rp装置和组播系统
CN102625986A (zh) 一种二层网络环路处理的方法、装置及网络设备
CN103269315B (zh) 标签分配方法、装置、系统和网络设备
CN101227310B (zh) 获取组播拓扑信息的方法、装置和系统
US10855576B2 (en) Information transmission method and device
CN103475581A (zh) 一种网络标签分配方法、设备与系统
CN1081055A (zh) 多信道通信树生成和控制的方法及装置
CN106357542A (zh) 提供组播业务的方法和软件定义网络控制器
CN107547346A (zh) 一种报文传输方法和装置
CN103516757A (zh) 内容处理方法、装置及系统
CN104363171A (zh) 一种用户报文的转发控制方法以及处理节点
EP2234344A1 (en) Method, system for realizing switching of multicast route tracking in second and third layers, and router
CN102244602A (zh) 在协议无关组播双重加入下转发数据的方法、装置及系统
CN104506331B (zh) 一种组播报文传输方法及多核网络设备
CN115242839A (zh) 物联网级联数据传输方法、装置、电子设备和存储介质
CN103986650A (zh) 一种TRILL网络中nickname冲突的处理方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130417

Termination date: 20150826

EXPY Termination of patent right or utility model