CN108696429B - 促进基于控制器的多播信令的装置、系统和方法 - Google Patents
促进基于控制器的多播信令的装置、系统和方法 Download PDFInfo
- Publication number
- CN108696429B CN108696429B CN201711456926.1A CN201711456926A CN108696429B CN 108696429 B CN108696429 B CN 108696429B CN 201711456926 A CN201711456926 A CN 201711456926A CN 108696429 B CN108696429 B CN 108696429B
- Authority
- CN
- China
- Prior art keywords
- label
- tree
- router
- controller
- multicast distribution
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/16—Multipoint routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/48—Routing tree calculation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
- H04L45/507—Label distribution
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/42—Centralised routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
所公开的计算机实现的方法可以包括:(1)在多播分发树的上游路由器处接收预定用于MPLS网络内的接收器的分组;(2)在分组内标识指定控制器的上下文标签(A)和指定由控制器指派的树标签(B);(3)标识与在分组内标识的上下文标签相对应的转发表;(4)针对指定多播分布树的树标签,搜索与上下文标签对应的转发表;(5)至少部分地基于对转发表的搜索来确定多播分发树的下游路由器,该多播分发树的下游路由器将接收去往接收器的分组;以及(6)在将去往接收器的分组转发到多播分发树的下游路由器。还公开了各种其他方法、系统和装置。
Description
背景技术
多协议标签交换(MPLS)网络通常包括各种路径,其促进流量从源流到接收器。在这样的MPLS网络中,这些路径可以由与路径的部分相对应的标签来标识和/或表示。例如,分组可以从源设备到接收设备而遍历MPLS网络。在多播配置中,源设备可以向多个接收器设备发送相同的流量。为了促进这样的多播流量,一些MPLS网络可以包括集中控制器,其通过控制平面信令将标签分发到路径内的各个节点。这些MPLS网络可以利用协议无关多播(PIM)和/或多播标签分发协议(MLDP)来执行控制平面信令。然而,除了PIM和MLDP之外,这些MPLS网络还可以实现边界网关协议(BGP)。
遗憾的是,这些不同协议的实现可能会增加网络创建和/或维护的复杂性或难度。因此,对于所有控制平面信令,简单地运行和/或实现单个协议(诸如BGP)是合意的。因此,本公开标识并且解决了用于促进MPLS网络内基于控制器的多播信令的改进装置、系统和方法的需求。
发明内容
如下文将更详细地描述的,本公开一般涉及用于促进基于控制器的多播信令的装置、系统和方法。在一个示例中,一种用于促进基于控制器的多播信令的计算机实现的方法可以包括:(1)在多播分发树的上游路由器处,接收预定用于MPLS网络内的接收器的分组;(2)在分组内标识指定负责将树标签指派给多播分发树的控制器的上下文标签(A)以及指定多播分发树并且由控制器指派给多播分发树的树标签(B);(3)在上游路由器处标识与在分组内标识的上下文标签相对应的转发表;(4)针对指定多播分布树的树标签,搜索与上下文标签对应的转发表;(5)至少部分地基于对转发表的搜索,标识多播分发树的下游路由器,该多播分发树的下游路由器将接收去往MPLS网络内的接收器的分组;以及然后(6)将去往接收器的分组转发到多播分发树的下游路由器。
作为另一示例,一种用于实现上文所描述的方法的系统可以包括被存储在存储器中的各种模块。该系统还可以包括至少一个物理处理器,其执行这些模块。例如,该系统可以包括:(1)接收模块,其在多播分发树的上游路由器处接收MPLS网络内的多播分组;(2)标识模块,其在分组内(A)标识指定负责将树标签指派给多播分发树的控制器的上下文标签(I)和指定多播分发树并且由控制器指派给多播分发树的树标签(II),以及(B)标识与在分组内标识的上下文标签相对应的转发表,(C)针对指定多播分布树的树标签搜索与上下文标签对应的转发表,以及(D)至少部分地基于对转发表的搜索,确定多播分发树的下游路由器,该多播分发树的下游路由器将接收去往MPLS网络内的接收器的分组;以及(3)转发模块,其将去往接收器的分组转发到多播分发树的下游路由器。
作为又一示例,一种用于实现上文所描述的方法的装置可以包括(1)至少一个存储设备,其存储至少一个转发表,该转发表包括指派给MPLS网络内的多播分发树的多个树标签;以及(2)至少一个物理处理设备,其在多播分发树的上游路由器处可通信地耦合到存储设备,其中物理处理设备(A)接收预定用于MPLS网络内的接收器的分组,在分组内(B)标识指定负责将树标签指派给多播分发树的控制器的上下文标签(I)和指定多播分发树的树标签(II),(C)标识与在分组内标识的上下文标签相对应的转发表,(D)针对指定多播分布树的树标签,搜索与上下文标签对应的转发表,(E)至少部分地基于对转发表的搜索,确定多播分发树的下游路由器,该多播分发树的下游路由器将接收去往MPLS网络内的接收器的分组,以及(F)将去往接收器的分组转发到多播分发树的下游路由器。
根据本文中所描述的一般原理,来自上文所提及的实施例中的任一实施例的特征可以相互组合使用。结合附图和权利要求阅读以下具体实施方式,将更全面地理解这些和其他实施例、特征和优点。
附图说明
附图图示了若干个示例性实施例,并且附图是说明书的部分。与以下描述一起,这些附图演示并且解释了本公开的各种原理。
图1是用于促进基于控制器的多播信令的示例性系统的框图。
图2是用于促进基于控制器的多播信令的附加示例性系统的框图。
图3是用于促进基于控制器的多播信令的附加示例性系统的框图。
图4是用于促进基于控制器的多播信令的示例性方法的流程图。
图5是遍历网络内的多播分发树的示例性分组的图示。
图6是用于促进基于控制器的多播信令的附加示例性系统的框图。
图7是能够结合本文中所描述和/或图示的实施例中的一个或多个实施例一起来实现和/或使用的示例性计算系统的框图。
在所有附图中,相同的附图标记和描述指示相似、但不一定相同的元件。尽管本文中所描述的示例性实施例容易做出各种修改和备选形式,但是在附图中通过示例示出了特定实施例,并且将在本文中对这些特定实施例进行详细描述。然而,本文中所描述的示例性实施例并不旨在限于所公开的特定形式。相反,本公开涵盖落入所附权利要求的范围内的所有修改、等同物和备选方案。
具体实施方式
本公开描述了用于促进基于控制器的多播信令的各种装置、系统和方法。如本文中所使用的术语“多播信令”通常是指用于编程和/或配置网络的控制平面的任何过程和/或程序。在一个示例中,控制器可以通过经由BGP信令将MPLS标签分发到网络内的各个路由器来编程和/或配置网络的控制平面。
如下文将更详细解释的,MPLS网络内的路由器可以每个都维护多个转发表,其包括指派给多播分发树的树标签。这些转发表中的每个转发表可以是特定的和/或对应于指派包括在该转发表中的标签的设备。例如,一个转发表可以对应于第一控制器,并且仅包括由该第一控制器指派的标签。在这个示例中,另一转发表可以对应于第二控制器并且包括由该第二控制器指派的树标签。
继续这个示例,这些转发表中的每个转发表可以由上下文标签来标识,该上下文标签指定和/或对应于指派包括在该转发表中的标签的设备。因而,遍历MPLS网络内的多播分发树的分组可以包括标识负责指派包括在对应转发表中的标签的控制器的上下文标签和标识多播分发树的树标签两者。在接收到MPLS网络内的分组后,路由器可以标识分组内的上下文标签和树标签。路由器还可以针对树标签来搜索与上下文标签相对应的转发表,并且至少部分地基于该搜索来标识分组的下一跳。然后,路由器可以将去往其最后目的地的分组转发到下一跳。
MPLS网络内的一个或多个控制器和/或路由器可以通过BGP信令建立和/或配置多播分布树。因此,这些一个或多个控制器和/或路由器可以消除使用PIM和/或MLDP来实现和/或执行控制平面信令的需要。通过这样做,这些一个或多个控制器和/或路由器可以基本上将用于网络创建和/或维护的协议仅合并到BGP中,从而简化网络的控制平面。
参照图1至图3以及图6,以下将提供用于促进基于控制器的多播信令的示例性系统的详细描述。结合图4提供了对应的计算机实现的方法的详细描述。结合图5提供了遍历网络内的多播分发树的示例性分组的详细描述。另外,结合图7提供了用于执行这些方法的示例性计算系统的详细描述。
图1是用于促进基于控制器的多播信令的示例性系统100的框图。如该图所图示的,示例性系统100可以包括一个或多个模块102,以用于执行一个或多个任务。如下文将更详细解释的,模块102可以包括接收模块104、标识模块106、转发模块108、信令模块110、维护模块112和指派模块114。尽管被图示为分开的元件,但是图1中的一个或多个模块102可以表示单个模块或应用的部分。
在某些实施例中,图1中的模块102中的一个或多个模块可以表示一个或多个软件应用或程序,该软件应用或程序在由计算设备执行时,使得计算设备执行一个或多个任务。例如,并且如下文将更详细描述的,模块102的一个或多个模块可以表示模块,其被存储并且被配置成在一个或多个计算设备(诸如图2中所图示的设备(例如,上游路由器202、控制器206和/或下游路由器208)或图3中所图示的设备(例如,源302、路由器304、和/或接收器306(1)至(4)))上运行。图1中的模块102的一个或多个模块还可以表示一个或多个专用计算机的全部或部分,其被配置成执行一个或多个任务。
如图1所图示的,系统100还可以包括一个或多个存储器设备,诸如存储器140。存储器140通常表示任何类型或形式的易失性或非易失性存储设备或介质,其能够存储数据和/或计算机可读指令。在一个示例中,存储器140可以存储、加载和/或维护模块102中的一个或多个模块。存储器140的示例包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、闪存、硬盘驱动器(HDD)、固态驱动器(SSD)、光盘驱动器、高速缓存、上述各项中的一个或多个的变型或组合和/或任何其他合适的存储器。
如图1所图示的,系统100还可以包括一个或多个物理处理器,诸如物理处理器130。物理处理器130通常表示任何类型或形式的硬件实现的处理单元,其能够解释和/或执行计算机可读指令。在一个示例中,物理处理器130可以访问和/或修改存储在存储器140中的模块102的一个或多个模块。附加地或可替代地,物理处理器130可以执行模块102的一个或多个模块来促进基于控制器的多播信令。物理处理器130的示例包括但不限于,微处理器、微控制器、中央处理器(CPU)、实现软核处理器的现场可编程门阵列(FPGA)、专用集成电路(ASIC)、上述各项中的一个或多个的部分、上述各项中的一个或多个的变型或组合和/或任何其他合适的物理处理器。
如图1所图示的,示例性系统100还可以包括一个或多个转发表,诸如转发表120。在一些示例中,转发表120可以包括树标签122(1)至(标签N),其被指派给MPLS网络内的不同多播分发树。在这些示例中,树标签可以促进流量沿着MPLS网络内的不同多播分发树,从一个路由器流向另一路由器。转发表120可以是特定的和/或转发表120对应于特定控制器和/或转发表120仅包括由该特定控制器指派的标签。在一些示例中,转发表120可以包括多播分发树内的路由器的转发信息、前缀、互联网协议(IP)地址和/或媒体访问控制(MAC)地址。
如图1所图示的,示例性系统100还可以包括一个或多个上下文标签,诸如上下文标签124。在一些示例中,上下文标签124可以对应于和/或表示负责向MPLS网络内的多播分发树指派树标签的控制器。在一个示例中,多播树内的每个路由器可以将不同的上下文标签指派给相同的控制器。在这个示例中,那些上下文标签可以被分发给控制器自身和/或多播分发树内的相应上游路由器。
作为一个示例,下游路由器可以将上下文标签124指派给控制器,然后经由BGP信令将上下文标签124发送到控制器。控制器又可以经由BGP信令将上下文标签124发送到多播分发树内的下游路由器的直接上游的路由器。上游路由器可以使用上下文标签124来标识哪个转发表来搜索指定多播分发树的下游路由器的信息。
继续该示例,上游路由器可以将不同的上下文标签指派给控制器,然后经由BGP信令将该上下文标签发送到控制器。控制器进而可以经由BGP信令将该上下文标签从多播分发树内的上游路由器发送到更上游的路由器。该上下文标签可以被另一个上游路由器用来标识针对指定多播分发树的上游路由器的信息而搜索哪个转发表。
图1中的示例性系统1可以以多种方式实现。例如,示例性系统100的全部或部分可以表示图2中的示例性系统200的部分。如图2所示,系统200可以包括上游路由器202、下游路由器208、控制器206和网络204。在一个示例中,模块102的功能的全部或部分可以由上游路由器202、下游路由器208、控制器206和/或任何其他合适的计算系统来执行。如将在下文更详细地描述的,来自图1的模块102中的一个或多个模块当由上游路由器202、下游路由器208和/或控制器206的至少一个处理器执行时,使得上游路由器202、下游路由器208和/或控制器206能够促进MPLS网络内的基于控制器的多播信令。
上游路由器202和下游路由器208每个通常表示在网络内转发流量的任何类型或形式的物理计算设备。上游路由器202和下游路由器208的示例包括但不限于,客户边缘(CE)路由器、提供商边缘(PE)路由器、集线器路由器、星型路由器、自治系统边界路由器、区域边界路由器、上述各项中的一个或多个的部分、上述各项中的一个或多个的组合或变型和/或任何其他合适的路由器。尽管图2仅图示了单个上游路由器和单个下游路由器,但是其他实施例可以涉及和/或并入多个上游路由器和/或多个下游路由器。
本文中所使用的术语“上游”通常是指比下游路由器更靠近多播分发树的源和/或标签交换路径(LSP)的入口驻留的路由器。相比之下,本文中所使用的术语“下游”通常是指比上游路由器更靠近多播分发树的接收器和/或LSP的出口驻留的路由器。本文中所使用的术语“出口”通常是指表示LSP的最后一跳和/或目的地的任何物理计算设备。本文中所使用的术语“入口”通常是指表示LSP开始和/或源起的源的任何物理计算设备。
网络204通常表示能够促进通信或数据传送的任何介质或体系架构。在一个示例中,网络204可以促进上游路由器202、下游路由器208和/或控制器206之间的通信。在该示例中,网络204可以使用无线和/或有线连接来促进通信或数据传送。网络204的示例包括但不限于,内联网、广域网(WAN)、局域网(LAN)、个域网(PAN)、互联网、电力线通信(PLC)、蜂窝网络(例如,全球移动通信系统(GSM)网络)、MPLS网络、上述各项中的一个或多个的部分、上述各项中的一个或多个的变型或组合和/或任何其他合适网络。尽管被图示为在图2中的网络204的外部,但是上游路由器202、下游路由器208和/或控制器206可以每个表示网络204的部分和/或被包括在网络204中。
控制器206通常表示任何类型或形式的物理计算设备,其能够配置MPLS网络内的多播分发树和/或将标签指派给这样的多播分发树。在一个示例中,控制器206可以被并入到MPLS网络中以作为集中式设备,其将标签指派和/或分发给MPLS网络内的路由器。尽管图2仅图示了单个控制器,但是其他实施例可以涉及和/或并入多个控制器,这些控制器相互独立地和/或彼此协作地将标签指派和/或分发给MPLS网络内的路由器。
作为另一示例,示例性系统100的全部或部分可以表示图3中的示例性系统300的部分。如图3所示,系统300可以包括源302,其能够通过路由器304、上游路由器202(1)和202(2)和下行路由器208(1)、208(2)、208(3)和208(4)向接收器306(1)、306(2)、306(3)以及306(4)发送多播流量。在该示例中,系统300还可以包括控制器206(1)和206(2),控制器206(1)和206(2)负责配置多播分发树和/或将树标签指派给多播分发树。尽管图3图示了包括和/或涉及多个控制器的特定实施例,但是类似网络拓扑的其他实施例可以包括和/或仅涉及单个控制器。类似地,尽管图3图示了路由器304、上游路由器202(1)和202(2)以及下游路由器208(1)至208(4),但是系统300还可以包括和/或表示不必要在图3中示出的各种其他路由器。
源302通常表示任何类型或形式的物理计算设备,其能够读取计算机可执行指令和/或源发多播流量。在一个示例中,源302可以包括和/或表示客户端设备。源302的示例包括但不限于,膝上型电脑、平板电脑、台式机、服务器、蜂窝电话、个人数字助理(PDA)、多媒体播放器、嵌入式系统、可穿戴设备(例如,智能手表、智能眼镜等)、游戏控制台、网络设备、上述各项中的一个或多个相同的变型或组合、和/或任何其他合适的源。
接收器306(1)至306(4)每个通常表示任何类型或形式的物理计算设备,其能够读取计算机可执行指令和/或接收多播流量。在一个示例中,接收器306(1)至306(4)每个都可以包括和/或表示客户机设备。接收器306(1)至306(4)的示例包括但不限于,膝上型电脑、平板电脑、台式电脑、服务器、蜂窝电话、PDA、多媒体播放器、嵌入式系统、可穿戴设备(例如,智能手表、智能眼镜等)、游戏控制台、网络设备、上述各项中的一个或多个相同的变型或组合、和/或任何其他合适的接收器。
图4是用于促进基于控制器的多播信令的示例计算机实现的方法400的流程图。图4中所示的步骤可以由任何合适的计算机可执行代码和/或计算系统来执行,该计算系统包括图1中的系统100、图2中的系统200、图3中的系统300和/或上述各项中的一个或多个的变型或组合。在一个示例中,图4中所示的步骤中的每个步骤可以表示其结构包括和/或由多个子步骤表示的算法,下文将更详细地提供算法的示例。
如图4所图示的,在步骤410,本文中所描述的系统中的一个或多个系统可以在多播分发树的上游路由器处接收预定用于MPLS网络内的接收器的分组。例如,接收模块104可以作为图3中的上游路由器202(1)的部分,接收预定用于图3中的接收器306(1)的分组。在该示例中,由于该分组是多播流量,所以该分组也可能以图3中的接收器306(2)为目的地。因而,上游路由器202(1)可以制作该分组的副本,并且然后将分组的一个实例转发到图3中的下游路由器208(1)并且将分组的另一实例转发到图3中的下游路由器208(2)。
本文中所描述的系统可以以多种不同的方式和/或上下文来执行步骤410。在一些示例中,接收模块104可以检测和/或标识从图3中的路由器304(1)到达上游路由器202(1)的分组。在一个示例中,源302可以向路由器304发送预定用于图3中的接收器306(1)至306(4)中的每个接收器的多播分组。一旦接收到分组,则路由器304可以做出分组的副本,然后将分组的一个实例转发到上游路由器202(1),并且将分组的另一实例转发到上游路由器202(2)。在分组到达上游路由器202(1)时,接收模块104可以接收该分组。
回到图4,在步骤420,本文中所描述的系统中的一个或多个系统可以标识分组内的上下文标签和树标签。例如,标识模块106可以作为图3中的上游路由器202(1)的部分,标识分组内的上下文标签和树标签。在该示例中,上下文标签可以将控制器206(1)标识和/或指定为负责将树标签指派给分组的多播分发树。换句话说,针对上游路由器202(1)内的转发表,上下文标签可以表示和/或对应于控制器206(1)。
附加地或可替代地,树标签可以标识和/或指定正在由MPLS网络内的分组遍历的多播分发树。换句话说,树标签可以表示和/或对应于正在由MPLS网络内的分组遍历的多播分发树。在该示例中,控制器206(1)可能已经将该树标签指派给多播分发树。
本文中所描述的系统可以以多种不同的方式和/或上下文执行步骤420。在一些示例中,标识模块106可以针对上下文标签和/或树标签而搜索分组。例如,标识模块106可以针对上下文标签和/或树标签搜索分组的报头。在该搜索期间,标识模块106可以标识上下文标签,其将控制器206(1)指定为负责和/或管理分组的多播分发树。附加地或可替代地,标识模块106可以标识树标签,其指定相对于与上游路由器202(1)处的控制器206(1)相对应的转发表的分组的多播分发树。
作为具体示例,路由器304可以向上游路由器202(1)转发图5中的分组500。在上游路由器202(1)接收到分组500时,标识模块106可以针对指示如何将分组500转发到其目的地的任何标签来搜索分组500的报头。在该搜索期间,标识模块106可以标识分组500内的标签“(490、100)”。在该示例中,标签“490”可以表示与控制器206(1)相对应的上下文标签,并且标签“100”可以标识与正在由分组500遍历的多播分发树相对应的树标签。
作为另一示例,路由器304可以向上游路由器202(1)转发图5中的分组502。当上游路由器202(1)接收到分组502时,标识模块106可以针对指示如何将分组502转发到其目的地的任何标签来搜索分组502的报头。在该搜索期间,标识模块106可以标识分组502内的标签“(590、100)”。在该实例中,标签“590”可以表示与控制器206(1)相对应的上下文标签,并且标签“100”可以标识与正在由分组502遍历的多播分发树相对应的树标签。
然而,由于分组500和502具有不同的上下文标签,所以它们的树标签“100”可以表示和/或对应于不同的多播分发树。例如,每个分组的上下文标签可以指示哪个转发表来搜索对应的多播分发树。因而,树标签“100”可以标识和/或表示与控制器206(1)相对应的转发表中的一个多播分发树,但是树标签“100”可以标识和/或表示转发表中与控制器206(2)相对应的不同的多播分发树。
回到图4,在步骤430,本文中描述的系统中的一个或多个系统可以在上游路由器处标识与在分组内标识的上下文标签相对应的转发表。例如,标识模块106可以作为图3中的上游路由器202(1)的部分,将转发表120标识为与控制器206(1)相对应。在一个示例中,上游路由器202(1)可以包括和/或维护至少一个其他转发表,其与除了控制器206(1)之外的另一设备相对应。换句话说,该其他转发表可以是特定于其他设备的和/或仅包括由另一个设备指派的标签。
在一个示例中,其他转发表对应的该其他设备可以包括和/或表示图3中的控制器206(2)。附加地或可替代地,其他转发表对应的该其他设备可以包括和/或表示上游路由器202(1)。因而,上游路由器202(1)可以分配和/或指派要被编程和/或安装到其自身的转发表中的树标签。换句话说,上游路由器202(1)可以创建转发表,其特定于上游路由器202(1)自身和/或仅包括由上游路由器202(1)自身分配和/或指派的标签。
本文中所描述的系统可以以多种不同的方式和/或上下文执行步骤430。在一些示例中,标识模块106可以将在分组内标识的上下文标签与转发表120对应的上下文标签进行比较。标识模块106然后可以确定在分组内标识的上下文标签与转发表120对应的上下文标签相匹配。因此,标识模块106可以确定转发表120是包括由控制器206(1)所指派的标签的转发表。附加地或可替代地,标识模块106可以确定转发表120是包括转发信息的转发表,该转发信息指示来自上游路由器202(1)的分组是如何被转发和/或被转发到何处。
作为具体示例,标识模块106可以将图6中的转发表120(1)标识为与图5中的分组500中的上下文标签“490”相对应。如图6所图示的,转发表120(1)可以包括和/或维护树标签122(1)至树标签122(N)。在这个示例中,树标签122(1)至,树标签122(N)可能已经被控制器206(1)分配和/或指派给MPLS网络内的多播分发树。
作为另一示例,标识模块106还可以将图6中的转发表120(2)标识为与图5中的分组502中的上下文标签“590”相对应。如图6所图示的,转发表120(2)可以包括和/或维护树标签622(1)至树标签622(N)。在这个示例中,树标签622(1)至树标签622(N)可能已经被控制器206(2)分配和/或指派给MPLS网络内的多播分发树。
类似地,标识模块106可以将图6中的转发表120(3)标识为与附加分组(未在图5中图示)中的上下文标签“690”相对应。如图6所图示的,转发表120(3)可以包括和/或维护树标签624(1)至树标签624(N)。在该示例中,树标签624(1)至树标签624(N)可能已经被上游路由器202(1)本身分配和/或指派给MPLS网络内的多播分发树。
回到图4,在步骤440,本文中所描述的系统中的一个或多个系统可以针对指定多播分发树的树标签,搜索与上下文标签相对应的转发表。例如,标识模块106可以作为3中的上游路由器202(1)的部分,针对树标签来搜索转发表120,转发表120指定和/或对应于正在由分组遍历的多播分发树。该树标签可能已经被控制器206(1)分配和/或指派给该多播分发树。
本文中所描述的系统可以以多种不同的方式和/或上下文来执行步骤440。在一些示例中,标识模块106可以至少部分地基于包括在分组中的树标签来对转发表120执行标签查找。例如,标识模块106可以针对由该树标签标识的条目来搜索转发表120。在该示例中,条目可以包括和/或提供转发信息,以使得分组能够沿着多播分发树到达其最终目的地,该转发信息指示分组如何被转发和/或被转发到何处。
作为具体示例,标识模块106可以针对与树标签“100”相对应的条目,结合分组500搜索图6中的转发表120(1)。在该示例中,树标签122(N)可以包括和/或表示由控制器206(1)分配和/或指派的标签“100”。因而,在转发表120(1)的搜索期间,标识模块106可以将树标签122(N)的条目标识为分组中包括的匹配树标签“100”。该条目可以包括转发信息,其将下游路由器208(1)标识为与分组500相对应的多播分发树的下一跳。
作为另一示例,标识模块106可以针对与树标签“100”相对应的条目,结合分组502搜索图6中的转发表120(2)。在该示例中,树标签622(1)可以包括和/或表示由控制器206(2)分配和/或指派的标签“100”。因而,在转发表120(2)的搜索期间,标识模块106可以将树标签622(1)的条目标识为分组中包括的匹配树标签“100”。该条目可以包括转发信息,其将下游路由器208(2)标识为与分组502相对应的多播分发树的下一跳。
回到图4,在步骤450,本文中所描述的系统中的一个或多个系统可以至少部分地基于转发表的搜索来标识多播分发树的下游路由器,该下游路由器要接收去往MPLS网络内的接收器的分组。例如,标识模块106可以作为图3中的上游路由器202(1)的部分,至少部分地基于对转发表的搜索来将下游路由器208(1)标识为多播分发树的下一跳。换句话说,标识模块106可以确定下游路由器208(1)要接收去往MPLS网络内的接收器306(1)的分组。
附加地或可替代地,标识模块106可以至少部分地基于对转发表的搜索来将下游路由器208(2)标识为另一相关多播分发树的下一跳。换句话说,标识模块106可以确定下游路由器208(2)还要接收去往MPLS网络内的接收器306(2)的分组的实例。
本文中所描述的系统可以以多种不同的方式和/或上下文执行步骤450。在一些示例中,标识模块106可以将分组的转发信息定位在与转发表120内的分组的树标签相对应的条目中。该转发信息可以指示上游路由器202(1)要将去往接收器306(1)的分组转发到下游路由器208(1)。因而,标识模块106可以通过分析转发表120的该条目处的转发信息,将下游路由器208(1)标识为多播分发树的下一跳。
作为另一示例,标识模块106可以将分组500的转发信息定位在与图6中的转发表120(1)内的树标签122(N)相对应的条目中。该转发信息可以指示上游路由器202(1)要将分组500转发到下游路由器208(1)。因而,标识模块106可以通过分析转发表120(1)的该条目处的转发信息,将下游路由器208(1)标识为分组500的多播分发树的下一跳。
作为又一示例,标识模块106可以将分组502的转发信息定位在与图6中的转发表120(2)内的树标签622(1)相对应的条目中。该转发信息可以指示上游路由器202(1)要将分组502转发到下游路由器208(2)。因而,标识模块106可以通过分析转发表120(2)的该条目处的转发信息,将下游路由器208(2)标识为分组502的多播分发树的下一跳。
回到图4,在步骤460,本文中所描述的系统中的一个或多个系统可以将去往接收器的分组转发到多播分发树的下游路由器。例如,转发模块108可以作为图3中的上游路由器202(1)的部分,将去往接收器306(1)的分组转发到下游路由器208(1)。在该示例中,下游路由器208(1)可以表示正在由MPLS网络内的分组遍历的多播分发树的下一跳。
附加或可替代地,转发模块108可以将去往接收器306(2)的分组的另一实例转发到下游路由器208(2)。在该示例中,下游路由器208(2)可以表示正在由MPLS网络内的分组的其他实例所遍历的另一多播分发树的下一跳。
本文中所描述的系统可以以多种不同的方式和/或上下文执行步骤450。在一些示例中,转发模块108可以引导上游路由器202(1)以向下游路由器208(1)发送分组。在其他示例中,转发模块108可以引导上游路由器202(1)以向下游路由器208(2)发送分组的其他实例。
多播分发树可以以多种不同的方式和/或上下文来建立、配置和/或管理。在一些示例中,本文中所描述的系统中的一个或多个系统可以选择和/或指派上下文标签,其标识和/或指定与所讨论的转发表相对应的控制器。例如,指派模块114可以作为图3中的上游路由器202(1)的部分,选择和/或指派上下文标签124以表示图3中的控制器206(1)。
在指派模块114已经向控制器206(1)选择和/或指派了上下文标签124之后,上游路由器202(1)可以向控制器206(1)发送上下文标签124。例如,信令模块110可以作为上游路由器202(1)的部分,经由BGP向控制器206(1)发送上下文标签124。控制器206(1)进而可以将上下文标签124分发到路由器304,这是因为路由器304直接在来自上游路由器202(1)的上游。
在一个示例中,控制器206(1)可以通过促进控制平面编程的BGP信令向路由器304发送上下文标签124。例如,信令模块110可以作为控制器206(1)的部分经由BGP向路由器304发信号通知上下文标签124。通过这样做,路由器304可以知晓上游路由器202(1)已经将上下文标签124指派给控制器206(1)。因而,上游路由器202(1)可以对分组执行标签查找,该分组包括图6中的转发表120(1)中的上下文标签124。
类似地,指派模块114可以作为图3中的下游路由器208(1)的部分,选择和/或指派上下文标签以表示图3中的控制器206(1)。在指派模块114已经向控制器206(1)选择和/或指派了上下文标签124之后,下游路由器208(1)可以向控制器206(1)发送上下文标签。例如,信令模块110可以作为下游路由器208(1)的部分,经由BGP向控制器206(1)发信号通知该上下文标签。控制器206(1)进而可以将该上下文标签分发到上游路由器202(1),这是因为上游路由器202(1)直接在来自下游路由器208(1)的上游。
在一个示例中,控制器206(1)可以通过促进控制平面编程的BGP信令向上游路由器202(1)发送上下文标签。例如,信令模块110可以作为控制器206(1)的部分,经由BGP向上游路由器202(1)发信号通知该上下文标签。通过这样做,上游路由器202(1)可以知晓所讨论的上下文标签已经被下游路由器208(1)指派给控制器206(1)。因而,下游路由器208(1)可以对分组执行标签查找,该分组包括转发表中与该上下文标签相对应的上下文标签。
在一些示例中,控制器206(1)和/或控制器206(2)可以负责将树标签指派给MPLS网络内的某些多播分布树。在一个示例中,指派模块114可以作为图3中的控制器206(1)的部分,将树标签122(1)至树标签122(N)指派给MPLS网络内的各种多播分发树。在该示例中,信令模块110可以作为控制器206(1)的部分,经由BGP向图3中的路由器304、上游路由器202(1)和202(2)和/或下游路由器208(1)至208(4)中的一些或全部而发送树标签122(1)至树标签122(N)。通过这样做,信令模块110可以使得各种路由器能够将去往最终目的地的流量转发到适当的下游路由器,该流量包括上下文标签124和树标签122(1)至122(N)中的一个树标签。
类似地,指派模块114可以作为图3中的控制器206(2)的部分,将树标签622(1)至树标签622(N)指派MPLS网络内的各种多播分发树。在该示例中,信令模块110可以作为控制器206(2)的部分,经由BGP向图3中的路由器304、上游路由器202(1)和202(2)和/或下游路由器208(1)至208(4)中的一些或全部而发送树标签622(1)至树标签622(N)。通过这样做,信令模块110可以使得各种路由器能够将去往最终目的地的流量转发到适当的下游路由器,该流量包括与控制器206(2)相对应的上下文标签和树标签622(1)至树标签622(N)中的一个树标签。
在一些示例中,控制器206(1)和/或控制器206(2)可以将上下文标签和树标签一起发送。例如,在从上游路由器202(1)接收到上下文标签124时,控制器206(1)可以将树标签122(1)指派给多播分发树,该多播分发树包括路由器304、上游路由器202(1)和下游路由器208(1)。控制器206(1)然后可以经由BGP信令将上下文标签124和树标签122(1)一起发送到路由器304。附加地或可替代地,在接收到由下游路由器208(1)指派的上下文标签时,控制器206(1)可以经由BGP信令将由下游路由器208(1)指派的上下文标签和树标签122(1)一起发送到上游路由器202(1)。
在一些示例中,控制器206(1)可以向多播分发树中包括的路由器中的每个路由器发信号通知相同多播分发树的相同树标签。在其他示例中,控制器206(1)可以将不同的树标签指派给用于包括在多播分发树中的路由器中的每个路由器的相同的多播分发树。例如,控制器206(1)可以将树标签122(1)与上下文标签124一起指派给某个多播分布树。在该示例中,控制器206(1)可以将上下文标签124和树标签122(1)一起经由BGP信令发送到路由器304。然而,在这个示例中,控制器206(1)可以将另一树标签与由下游路由器208(1)指派给控制器206(1)的上下文标签结合地,指派给相同的多播分发树。控制器206(1)可以经由BGP信令将由下游路由器208(1)指派的上下文标签和该其他树标签一起发送到路由器304。
在一些示例中,包括在多播分发树中的各种路由器可以每个都创建特定于控制器206(1)的转发表。在这样的示例中,因为这些树标签由控制器206(1)分配和/或指派,所以该转发表可以包括树标签122(1)至树标签122(N)。
作为具体示例,维护模块112可以作为上游路由器202(1)的部分,创建特定于控制器206(1)的转发表120(1)。由于在该示例中转发表120(1)特定于控制器206(1),所以维护模块112可以利用被控制器206(1)分配和/或指派的树标签122(1)至树标签122(N)来填充转发表120(1)。
作为另一示例,维护模块112可以作为上游路由器202(1)的部分,创建特定于控制器206(2)的转发表120(2)。由于在该示例中转发表120(2)特定于控制器206(2),所以维护模块112可以利用被控制器206(2)分配和/或指派的树标签622(1)至树标签622(N)来填充转发表120(2)。
图7是能够实现本文中所描述和/或说明的实施例中的一个或多个实施例和/或结合本文中所描述和/或说明的实施例中的一个或多个实施例而使用的示例性计算系统700的框图。在一些实施例中,计算系统700的全部或部分可以执行和/或作为用于单独或与其他元件组合地,执行结合图3而描述的步骤中的一个或多个步骤的手段。计算系统700的全部或部分还可以执行本文中所描述和/或说明的任何其他步骤、方法或过程和/或计算系统700的全部或部分也可以作为用于执行和/或实现本文中所描述和/或说明的任何其他步骤、方法或过程的手段。在一个示例中,计算系统700可以包括和/或存储来自图1的模块102的全部或部分。
计算系统700广泛地表示任何类型或形式的电力负载,其包括能够执行计算机可读指令的单处理器或多处理器计算设备或系统。计算系统700的示例包括但不限于工作站、膝上型电脑、客户端侧终端、服务器、分布式计算系统、移动设备、网络交换机、网络路由器(例如,骨干路由器、边缘路由器、核心路由器、移动服务路由器、宽带路由器等)、网络设施(例如,网络安全设施、网络控制设施、网络定时设施、SSL VPN(安全套接字层虚拟专用网络)设施等)、网络控制器、网关(例如,服务网关、移动分组网关、多路访问网关、安全网关等)和/或任何其他类型或形式的计算系统或设备。
计算系统700可以被编程、配置和/或以其他方式设计成符合一个或多个联网协议。根据某些实施例,计算系统700可以被设计成与开放系统互连(OSI)参考模型的一个或多个层的协议(诸如物理层协议、链路层协议、网络层协议、传输层协议、会话层协议、表示层协议和/或应用层协议)一起工作。例如,计算系统700可以包括根据以下各项进行配置的网络设备:通用串行总线(USB)协议、电气和电子工程师协会(IEEE)1394协议、以太网协议、T1协议、同步光网络(SONET)协议、同步数字系列(SDH)协议、综合服务数字网络(ISDN)协议、异步传输模式(ATM)协议、点到点协议(PPP)、通过以太网传输点到点协议(PPPoE)、经过ATM的点到点协议(PPPoA)、蓝牙协议、IEEE 802.XX协议、帧中继协议、令牌环协议、生成树协议和/或任何其他合适的协议。
计算系统700可以包括各种网络和/或计算部件。例如,计算系统700可以包括至少一个处理器714和系统存储器716。处理器714通常表示任何类型或形式的处理单元,其能够处理数据或解释并且执行指令。例如,处理器714可以表示专用集成电路(ASIC)、片上系统(例如,网络处理器)、硬件加速器、通用处理器和/或任何其他合适的处理元件。
处理器714可以根据上文所讨论的联网协议中的一个或多个联网协议来处理数据。例如,处理器714可以执行或实现协议栈的部分,可以处理分组,可以执行存储器操作(例如,对分组进行排队以供后续处理),可以执行最终用户应用和/或可以执行任何其他处理任务。
系统存储器716通常表示任何类型或形式的易失性或非易失性存储设备或介质,其能够存储数据和/或其他计算机可读指令。系统存储器716的示例包括但不限于,随机存取存储器(RAM)、只读存储器(ROM)、闪存或任何其他合适的存储设备。尽管不是必需的,但是在某些实施例中,计算系统700可以包括易失性存储器单元(诸如例如,系统存储器716)和非易失性存储设备(诸如例如,如下文所详细描述的主存储设备732)。系统存储器716可以被实现为网络设备中的共享存储器和/或分布式存储器。更进一步地,系统存储器716可以存储在联网操作中使用的分组和/或其他信息。
在某些实施例中,示例性计算系统700还可以包括除处理器714和系统存储器716之外的一个或多个部件或元件。例如,如图7所图示的,计算系统700可以包括存储器控制器718、输入/输出(I/O)控制器720和通信接口722,上述中每一个都可以经由通信基础设施712互连。通信基础设施712通常表示任何类型或形式的基础设施,其能够促进计算设备的一个或多个部件之间的通信。通信基础设施712的实例包括但不限于通信总线(诸如串行ATA(SATA)、工业标准体系架构(ISA)、外围部件互连(PCI)、PCI总线(PCIe)和/或任何其他合适的中心)以及网络。
存储器控制器718通常表示任何类型或形式的设备,其能够处理存储器或数据或者控制计算系统700的一个或多个部件之间的通信。例如,在某些实施例中,存储器控制器718可以经由通信基础设施712来控制处理器714、系统存储器716和I/O控制器720之间的通信。在一些实施例中,存储器控制器718可以包括直接存储器访问(DMA)单元,其可以将数据(例如,分组)传送到链路适配器或从链路适配器传送该数据。
I/O控制器720通常表示任何类型或形式的设备或模块,其能够协调和/或控制计算设备的输入和输出功能。例如,在某些实施例中,I/O控制器720可以控制或促进计算系统700的一个或多个元件(诸如处理器714、系统存储器716、通信接口722和存储接口730)之间的数据传送。
通信接口722广泛地表示任何类型或形式的通信设备或适配器,其能够促进示例性计算系统700与一个或多个附加设备之间的通信。例如,在某些实施例中,通信接口722可以促进计算系统700与包括附加计算系统的专用或公用网络之间的通信。通信接口722的示例包括但不限于,链路适配器、有线网络接口(诸如网络接口卡)、无线网络接口(诸如无线网络接口卡)以及任何其他合适的接口。在至少一个实施例中,通信接口722可以经由到网络(诸如互联网)的直接链路,提供到远程服务器的直接连接。通信接口722还可以通过例如局域网(诸如以太网网络)、个域网、广域网、专用网络(例如,虚拟专用网络)、电话或有线网络、蜂窝电话连接、卫星数据连接或任何其他合适的连接,来间接提供这样的连接。
在某些实施例中,通信接口722还可以表示主机适配器,其被配置成促进计算系统700与一个或多个附加网络或存储设备之间经由外部总线或通信信道的通信。主机适配器的示例包括但不限于,小型计算机系统接口(SCSI)主机适配器、通用串行总线(USB)主机适配器、IEEE 1394主机适配器、高级技术附件(ATA)、并行ATA(PATA)、串行ATA(SATA)和外部SATA(eSATA)主机适配器、光纤通道接口适配器、以太网适配器等。通信接口722还可以使得计算系统700能够参与分布式或远程计算。例如,通信接口722可以从远程设备接收指令或向远程设备发送指令以供执行。
如图7所图示的,示例性计算系统700还可以包括经由存储接口730耦合到通信基础设施712的主存储设备732和/或备份存储设备734。存储设备732和734通常表示任何类型或形式的存储设备或介质,其能够存储数据和/或其他计算机可读指令。例如,存储设备732和734可以表示磁盘驱动器(例如,所谓的硬盘驱动器)、固态驱动器、软盘驱动器、磁带驱动器、光盘驱动器、闪存驱动器等。存储接口730通常表示任何类型或形式的接口或设备,其用于在存储设备732和734与计算系统700的其他部件之间传送数据。
在某些实施例中,存储设备732和734可以被配置成从可移除存储单元读取和/或向该可移除存储单元写入,该可移除存储单元被配置成存储计算机软件、数据或其他计算机可读信息。合适的可移除存储单元的示例包括但不限于,软盘、磁带、光盘、闪存设备等。存储设备732和734还可以包括其他类似结构或设备,其用于允许将计算机软件、数据或其他计算机可读指令加载到计算系统700中。例如,存储设备732和734可以被配置成读取和写入软件、数据或其他计算机可读信息。存储设备732和734可以是计算系统700的部分,或者可以是通过其他接口系统访问的分开的设备。
许多其他设备或子系统可以被连接至计算系统700。相反,图7中所图示的所有部件和设备7不需要都存在以实践本文中所描述和/或说明的实施例。上文引用的设备和子系统还可以以不同于图7所示的方式互连。计算系统700还可以采用任何数目的软件、固件和/或硬件配置。例如,本文中所公开的示例性实施例中的一个或多个示例性实施例可以被编码为计算机可读介质上的计算机程序(还被称为计算机软件、软件应用、计算机可读指令或计算机控制逻辑)。术语“计算机可读介质”通常是指任何形式的设备、载体或介质,其能够存储或携带计算机可读指令。计算机可读介质的示例包括但不限于,诸如载波之类的传输型介质以及诸如磁存储介质(例如,硬盘驱动器和软盘)、光学存储介质(例如,光盘(CD)和数字视频盘(DVD))、电子存储介质(例如,固态驱动器和闪存介质)以及其他分发系统之类的非瞬时型介质。
虽然前述公开内容使用特定框图、流程图和示例阐述了各种实施例,但是可以使用广泛的硬件、软件或固件(或其任何组合)配置单独地和/或整体地实现本文中所描述和/或说明的每个框图部件、流程图步骤、操作和/或部件。另外,包含在其他部件中的部件的任何公开内容本质上应该被认为是示例性的,这是因为可以实现许多其他体系架构,以实现相同的功能。
在一些示例中,图1中的系统100的全部或部分可以表示基于云计算的环境或基于网络的环境的部分。基于云计算的环境和基于网络的环境可以经由互联网提供各种服务和应用。这些基于云计算的服务和基于网络的服务(例如,软件即服务、平台即服务、基础设施即服务等)可以通过web浏览器或其他远程接口访问。本文中所描述的各种功能还可以提供网络交换能力、网关接入能力、网络安全功能、用于网络的内容缓存和递送服务、网络控制服务和/或其他联网功能。
另外,本文中所描述的模块中的一个或多个模块可以将数据、物理设备和/或物理设备的表示从一种形式转换为另一种形式。附加地或可替代地,本文中所列举的模块中的一个或多个模块可以通过在计算设备上执行,在计算设备上存储数据,和/或以其他方式与计算设备交互,来将处理器、易失性存储器、非易失性存储器和/或物理计算设备的任何其他部分从一种形式转换为另一种形式。
本文中所描述和/或说明的步骤的过程参数和顺序仅作为示例给出,并且可以根据需要而变化。例如,虽然本文中所说明和/或描述的步骤可以以特定顺序示出或讨论,但是这些步骤不一定需要按照所说明或讨论的顺序来执行。本文中所描述和/或图示的各种示例性方法还可以省略本文中所描述或说明的步骤中的一个或多个步骤,或者包括除了所公开的那些步骤之外的附加步骤。
已经提供前面的描述,以使得本领域其他技术人员能够更好地利用本文中所公开的示例性实施例的各个方面。该示例性描述并非旨在穷尽或限制于所公开的任何精确形式。在不背离本公开的精神和范围的情况下,可以进行许多修改和变型。本文中所公开的实施例在所有方面都应被认为是说明性的而不是限制性的。在确定本公开的范围时,应该参考所附权利要求及其等同。
除非另外指出,否则在说明书和权利要求书中使用的术语“连接至”和“耦合至”(及其衍生词)应被解释为允许直接和间接连接(即,经由其他元件或部件)。另外,在说明书和权利要求书中使用的术语“一”或“一个”应被解释为意指“至少一个”。最后,为了便于使用,在说明书和权利要求书中所用的术语“包括”和“具有”(及其衍生词)与术语“包括”可互换并且具有相同的含义。
Claims (20)
1.一种转发分组的方法,包括:
在多播分发树的上游路由器处,接收预定用于多协议标签交换(MPLS)网络内的接收器的分组;
在所述分组内标识上下文标签以及树标签,所述上下文标签指定负责将树标签指派给多播分发树的控制器,所述树标签指定所述多播分发树并且所述树标签由所述控制器指派给所述多播分发树;
在所述上游路由器处,标识与在所述分组内标识的所述上下文标签相对应的转发表;
针对指定所述多播分发树的所述树标签,搜索与所述上下文标签相对应的所述转发表;
至少部分地基于所述转发表的所述搜索,标识所述多播分发树的下游路由器,所述下游路由器将接收去往所述MPLS网络内的所述接收器的所述分组;以及
将去往所述接收器的所述分组转发到所述多播分发树的所述下游路由器。
2.根据权利要求1所述的方法,还包括:
在所述控制器处从所述上游路由器接收所述上下文标签;
通过所述控制器将所述树标签指派给所述多播分发树;
从所述控制器向另一上游路由器发送所述上下文标签和所述树标签,以使得所述另一上游路由器能够将流量转发到所述上游路由器,所述流量包括所述上下文标签和所述树标签;以及
从所述控制器向所述上游路由器发送所述树标签,以使得所述上游路由器能够将所述流量转发到所述下游路由器。
3.根据权利要求2所述的方法,其中:
从所述下游路由器接收所述上下文标签包括通过边界网关协议(BGP)信令从所述下游路由器接收所述上下文标签;
向所述上游路由器发送所述上下文标签和所述树标签包括通过BGP信令向所述上游路由器发送所述上下文标签和所述树标签;以及向所述下游路由器发送所述树标签包括:通过BGP信令向所述下游路由器发送所述树标签。
4.根据权利要求2所述的方法,还包括:
在所述控制器处从所述下游路由器接收另一上下文标签;
从所述控制器向所述上游路由器发送所述另一上下文标签和所述树标签,以使得所述上游路由器能够将流量转发到所述下游路由器,所述流量包括所述另一上下文标签和所述树标签;以及
从所述控制器向所述下游路由器发送所述树标签,以使得所述下游路由器能够向着所述接收器转发所述流量,所述流量包括所述另一上下文标签和所述树标签。
5.根据权利要求1所述的方法,还包括:
通过所述上游路由器选择指定所述控制器的所述上下文标签;以及
通过所述上游路由器将所述上下文标签指派给所述控制器。
6.根据权利要求1所述的方法,还包括:通过BGP向所述上游路由器和所述下游路由器发信号通知所述多播分发树。
7.根据权利要求1所述的方法,还包括:
通过所述上游路由器创建所述转发表,使得所述转发表特定于所述控制器并且所述转发表仅包括由所述控制器指派的标签;以及
通过所述上游路由器利用所述树标签填充所述转发表。
8.根据权利要求1所述的方法,还包括在所述上游路由器处维护至少一个附加转发表,所述附加转发表特定于与所述控制器不同的附加设备以及所述附加转发表仅包括由所述附加设备指派的标签。
9.根据权利要求8所述的方法,其中所述附加设备包括以下各项中的至少一项:
附加控制器,以及
所述上游路由器。
10.根据权利要求9所述的方法,还包括:
在所述附加控制器处从所述上游路由器接收指派给所述附加控制器的附加上下文标签;
通过所述附加控制器将附加树标签指派给所述多播分发树;
从所述附加控制器向另一上游路由器发送所述附加上下文标签和所述附加树标签,以使得所述另一上游路由器能够将流量转发到所述上游路由器,所述流量包括所述附加上下文标签和所述附加树标签;以及
从所述附加控制器向所述上游路由器发送所述附加树标签,以使得所述上游路由器能够将所述流量转发到所述下游路由器。
11.一种用于转发分组的系统,包括:
接收模块,所述接收模块被存储在多播分发树的上游路由器处的存储器中,所述接收模块接收预定用于多协议标签交换(MPLS)网络内的接收器的分组;
标识模块,所述标识模块被存储在所述上游路由器处的存储器中,所述标识模块:
在所述分组内标识上下文标签以及树标签,所述上下文标签指定负责将树标签指派给多播分发树的控制器,所述树标签指定所述多播分发树并且所述树标签由所述控制器指派给所述多播分发树;
标识转发表,所述转发表与在所述分组内标识的所述上下文标签相对应;
针对指定所述多播分发树的所述树标签,搜索与所述上下文标签对应的所述转发表;以及
至少部分基于所述转发表的所述搜索,标识所述多播分发树的下游路由器,所述下游路由器将接收去往所述MPLS网络内的所述接收器的所述分组;
转发模块,所述转发模块被存储在所述上游路由器处的存储器中,所述转发模块将去往所述接收器的所述分组转发到所述多播分发树的所述下游路由器;以及
至少一个物理处理器,所述至少一个物理处理器被配置成执行所述接收模块、所述标识模块和所述转发模块。
12.根据权利要求11所述的系统,还包括:
另一接收模块,所述另一接收模块被存储在所述控制器处的存储器中,所述另一接收模块从所述上游路由器接收所述上下文标签;
指派模块,所述指派模块被存储在所述控制器处的存储器中,所述指派模块将所述树标签指派给所述多播分发树;以及
信令模块,所述信令模块被存储在所述控制器处的存储器中,所述信令模块向另一上游路由器发送所述上下文标签和所述树标签,以使得所述另一上游路由器能够将流量转发到所述上游路由器,所述流量包括所述上下文标签和所述树标签;以及所述信令模块向所述上游路由器发送所述树标签,以使得所述上游路由器能够将所述流量转发到所述下游路由器。
13.根据权利要求12所述的系统,其中
所述另一接收模块通过边界网关协议(BGP)信令从所述上游路由器接收所述上下文标签;以及
所述信令模块通过BGP信令向所述另一上游路由器发送所述上下文标签和所述树标签;以及所述信令模块通过BGP信令向所述上游路由器发送所述树标签。
14.根据权利要求12所述的系统,其中
所述另一接收模块从所述下游路由器接收另一上下文标签;
所述信令模块向所述上游路由器发送所述另一上下文标签和所述树标签,以使得所述上游路由器能够将流量转发到所述下游路由器,所述流量包括所述另一上下文标签和所述树标签;以及
所述信令模块向所述下游路由器发送所述树标签,以使得所述下游路由器能够向着所述接收器转发所述流量,所述流量包括所述另一上下文标签和所述树标签。
15.根据权利要求11所述的系统,还包括另一指派模块,所述另一指派模块被存储在所述上游路由器处的存储器中,所述另一指派模块选择指定所述控制器的所述上下文标签以及将所述上下文标签指派给所述控制器。
16.根据权利要求11所述的系统,还包括维护模块,所述维护模块被存储在所述上游路由器处的存储器中,所述维护模块通过所述上游路由器创建所述转发表,使得所述转发表特定于所述控制器以及所述转发表仅包括由所述控制器指派的标签;以及所述维护模块通过所述上游路由器利用所述树标签填充所述转发表。
17.根据权利要求16所述的系统,其中所述维护模块维护至少一个附加转发表,所述至少一个附加转发表特定于与所述控制器不同的附加设备并且所述至少一个附加转发表仅包括由所述附加设备指派的标签。
18.根据权利要求17所述的系统,其中所述附加设备包括以下各项中的至少一项:
附加控制器,以及
所述上游路由器。
19.根据权利要求18所述的系统,还包括:
另一接收模块,所述另一接收模块被存储在所述附加控制器处的存储器中,所述另一接收模块从附加多播分发树的上游路由器接收指派给所述附加控制器的附加上下文标签;
指派模块,所述指派模块被存储在所述附加控制器处的存储器中,所述指派模块将附加树标签指派给所述多播分发树;以及
信令模块,所述信令模块被存储在所述附加控制器处的存储器中,所述信令模块:
向另一上游路由器发送所述附加上下文标签和所述附加树标签,以使得所述另一上游路由器能够将流量转发到所述上游路由器,所述流量包括所述附加上下文标签和所述附加树标签;以及
向所述上游路由器发送所述附加树标签,以使得所述上游路由器能够将所述流量转发到所述下游路由器。
20.一种用于转发分组的装置,包括:
至少一个存储装置,所述至少一个存储装置存储至少一个转发表,所述转发表包括多个树标签,所述多个树标签被指派给多协议标签交换(MPLS)网络内的多播分发树;以及
至少一个物理处理设备,所述至少一个物理处理设备被通信地耦合到在多播分发树的上游路由器处的所述存储设备,其中所述至少一个物理处理设备:
接收预定用于所述MPLS网络内的接收器的分组;
在所述分组内标识上下文标签以及树标签,所述上下文标签指定负责将树标签指派给多播分发树的控制器,所述树标签指定所述多播分发树并且由所述控制器指派给所述多播分发树;
标识与在所述分组内标识的所述上下文标签相对应的转发表;
针对指定所述多播分发树的所述树标签,搜索与所述上下文标签对应的所述转发表;
至少部分基于所述转发表的所述搜索,标识所述多播分发树的下游路由器,所述下游路由器将接收去往所述MPLS网络内的所述接收器的所述分组;以及
将去往所述接收器的所述分组转发到所述多播分发树的所述下游路由器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/473,945 | 2017-03-30 | ||
US15/473,945 US10182007B2 (en) | 2017-03-30 | 2017-03-30 | Apparatus, system, and method for facilitating controller-based multicast signaling |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108696429A CN108696429A (zh) | 2018-10-23 |
CN108696429B true CN108696429B (zh) | 2021-03-12 |
Family
ID=61132224
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711456926.1A Active CN108696429B (zh) | 2017-03-30 | 2017-12-28 | 促进基于控制器的多播信令的装置、系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10182007B2 (zh) |
EP (1) | EP3382956B1 (zh) |
CN (1) | CN108696429B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11129906B1 (en) | 2016-12-07 | 2021-09-28 | David Gordon Bermudes | Chimeric protein toxins for expression by therapeutic bacteria |
CN115150319B (zh) * | 2022-09-02 | 2022-11-22 | 中国电子科技集团公司第五十四研究所 | 一种基于分布式控制的星简地繁组播路由方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103905315A (zh) * | 2012-10-22 | 2014-07-02 | 阿瓦亚公司 | 传送网络中所用的路由信息的虚拟化和分发结构 |
CN105721962A (zh) * | 2014-12-18 | 2016-06-29 | 瞻博网络公司 | 用于路由/交换网络和底层光传输系统的集成控制器 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005065045A (ja) * | 2003-08-18 | 2005-03-10 | Kddi Corp | L2スイッチ装置及びその制御方法 |
US8391185B2 (en) * | 2007-05-29 | 2013-03-05 | Cisco Technology, Inc. | Method to transport bidir PIM over a multiprotocol label switched network |
JP5874253B2 (ja) * | 2011-09-08 | 2016-03-02 | 富士通株式会社 | 配信システム、配信方法、及び配信プログラム |
US8953618B2 (en) * | 2012-10-10 | 2015-02-10 | Telefonaktiebolaget L M Ericsson (Publ) | IP multicast service leave process for MPLS-based virtual private cloud networking |
EP2940938B1 (en) * | 2013-02-06 | 2019-11-27 | Huawei Technologies Co., Ltd. | Method and device for establishing multicast data channel in network virtualization system |
US9407555B2 (en) * | 2014-03-31 | 2016-08-02 | Juniper Networks, Inc. | Systems and methods for load balancing multicast traffic |
-
2017
- 2017-03-30 US US15/473,945 patent/US10182007B2/en active Active
- 2017-12-28 CN CN201711456926.1A patent/CN108696429B/zh active Active
-
2018
- 2018-01-31 EP EP18154526.0A patent/EP3382956B1/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103905315A (zh) * | 2012-10-22 | 2014-07-02 | 阿瓦亚公司 | 传送网络中所用的路由信息的虚拟化和分发结构 |
CN105721962A (zh) * | 2014-12-18 | 2016-06-29 | 瞻博网络公司 | 用于路由/交换网络和底层光传输系统的集成控制器 |
Also Published As
Publication number | Publication date |
---|---|
US10182007B2 (en) | 2019-01-15 |
US20180287936A1 (en) | 2018-10-04 |
EP3382956B1 (en) | 2020-07-15 |
CN108696429A (zh) | 2018-10-23 |
EP3382956A1 (en) | 2018-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10992566B1 (en) | Apparatus, system, and method for improved memory consumption in network devices via efficient route management | |
CN109936516B (zh) | 用于跨多个网络传输选项促进透明服务映射的系统和方法 | |
CN107231307B (zh) | 用于防止数据中心架构内子网间流量转接的方法、系统和装置 | |
CN108574634B (zh) | 用于跨越共享标签的标签交换路径提供节点保护的装置、系统和方法 | |
US10063457B2 (en) | Method, system, and apparatus for improving forwarding capabilities during route convergence | |
US9497124B1 (en) | Systems and methods for load balancing multicast traffic | |
CN109150721B (zh) | 用于在mpls分组上施加标签栈条目的装置、系统和方法 | |
CN106921575B (zh) | 用于防止多播业务丢弃的装置、路由器和方法 | |
CN108696429B (zh) | 促进基于控制器的多播信令的装置、系统和方法 | |
CN114173373A (zh) | 用于通过网络切片引导业务的装置、系统和方法 | |
US10027589B1 (en) | Apparatus, system, and method for achieving redundancy and load-balancing across communication layers within networks | |
US10728143B2 (en) | Apparatus, system, and method for sharing labels across label-switched paths within networks | |
US9451053B1 (en) | Systems and methods for interfacing software-defined networks with non-software-defined networks | |
CN108512756B (zh) | 促进iBGP对等体的标签标识的路由决策的装置、系统和方法 | |
EP3373531B1 (en) | System and method for sharing labels across label-switched paths within networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |