CN101013948A - 构建等耗多径多播分发结构 - Google Patents

构建等耗多径多播分发结构 Download PDF

Info

Publication number
CN101013948A
CN101013948A CN 200610143131 CN200610143131A CN101013948A CN 101013948 A CN101013948 A CN 101013948A CN 200610143131 CN200610143131 CN 200610143131 CN 200610143131 A CN200610143131 A CN 200610143131A CN 101013948 A CN101013948 A CN 101013948A
Authority
CN
China
Prior art keywords
multicast
upstream
equipment
router
group
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.)
Granted
Application number
CN 200610143131
Other languages
English (en)
Other versions
CN101013948B (zh
Inventor
K·孔佩拉
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.)
Juniper Networks Inc
Peribit Networks Inc
Original Assignee
Peribit Networks Inc
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 Peribit Networks Inc filed Critical Peribit Networks Inc
Publication of CN101013948A publication Critical patent/CN101013948A/zh
Application granted granted Critical
Publication of CN101013948B publication Critical patent/CN101013948B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本技术允许网络设备为特定的一个多播群组和源设备建立多个多播分发结构。依照本技术,扩展一个多播协议以在控制消息中包括一个实例编号,该实例编号对应于该多播群组和源的多个实例中的一个。该网络设备为该多播群组N个实例的每一个发送一条加入请求给多个上游路由器。每条加入请求指定所加入的多播群组的实例中的一个。该多播群组的源设备,使用诸如单播等耗多径(ECMP)哈希算法,选择N个实例中的一个,并且通过对应于所选实例的多播分发结构,发送该多播群组的多播内容。

Description

构建等耗多径多播分发结构
技术领域
[0001]本发明涉及计算机网络,具体地说,涉及一个计算机网络内多播内容的传输。
背景技术
[0002]一个计算机网络是相互联系、可以交换数据并且共享资源的多个计算设备的集合。有多种不同的方法在计算设备之间传送数据。其中的一种称为“多播”的方法,使用多播树以允许一台源设备将需要分发的单个数据包发送给包含一个或多个接收计算设备的群组。利用多播,该源设备为所传送的数据指定一个多播标识符,使该接收群组中的每个计算设备都能接收到该数据的一份拷贝。在一些情况下,这台源设备通过网络将多播数据包发送给配置为多播的一台路由器。接着,该路由器复制这些数据包并且将这些拷贝转发给其他多播有效的路由器。然后,这些接收路由器复制这些数据包并且重复转发流程以使每台接收设备都收到这些数据包的拷贝。通过这样的方式,使用一棵多播树通过一个或多个网络传递多播数据包。
[0003]用户可以通过提交“多播动作请求”,在由一个内容提供者或是由多个内容提供者提供不同多播内容的模式之间切换。特别地,多播动作请求允许用户加入和退出与多播标识符相关联的各个多播群组。一个发出各种多播动作请求(比如“加入请求”)的示范性协议,是互联网群组管理协议(IGMP)。为加入一个特定多播群组,这些接收设备发送“多播加入请求”给上游路由器(即中继路由器),由这些路由器将该加入请求转发给源设备。
发明内容
[0004]总体而言,本发明涉及用于在网络中提供多播传输效率的技术。该技术不是只为一个特定多播组和源设备建立单一分发结构(比如树),而是可以为其建立多个多播分发结构。依照该技术,一个多播协议可以被扩展,以在用于建立一个多播分发结构的控制消息中包括一个实例(instance)编号,该实例编号和用于多播群组和源设备的多个实例中的一个相对应。由此,该源设备,比如,可以使用单播等耗多径(ECMP)哈希算法,在多个多播分发结构中选择一个用于传送多播内容。
[0005]每个接收节点知道(例如,通过配置或发现协议)ECMP的宽度,即,用于一个多播群组和源设备的多个实例的数目N。每个接收节点接着发送分布于上游设备中的N条加入消息,每条消息有各自的实例编号。通过这种方式,可以组成N棵多播树,但是因为源设备只选择多棵多播树中的一棵来发送多播内容,每台接收设备只能收到来自源设备的多播内容的一份拷贝。可以通过一个扩展的协议独立多播(PIM)协议或点对多点(P2MP)标签分发协议(LDP)发送加入消息。以上的描述由于示例的目的,只考虑到IP多播,但本发明的原则也可以应用于在其他环境下建立多播树,比如LDP,P2MP,或多协议标签交换(MPLS)等环境。
[0006]在一个实施例中,一种在一个网络内组成多播分发结构的方法包括,在一台设备加入来自单台源设备的一个多播群组的多个实例N,其中每个实例对应于网络内该多播群组的一个不同的多播分发结构。
[0007]在另一实施例中,网络内的使用多播的分发结构,包括在一个多播群组的一台源设备上,为该多播群组选择多个实例N中的一个,以及为该多播群组通过这个对应于所选N个实例中的一个实例的多播分发结构,发送多播内容给该设备。
[0008]在其他一项具体实施中,一台网络设备包括一个保存指定实例数目N的配置数据的控制单元,以及在该控制单元内运行的一个多播协议,该协议基于这个实例编号N,为一个多播群组的N个实例生成N条加入请求,其中每个实例对应于该多播群组的一个多播分发结构。每条加入请求指定加入的该多播群组N个实例中的一个。该网络设备还包括一个将加入请求输出到位于该网络设备与该多播群组的一台源设备间的多个上游设备的接口,以加入该多播群组。
[0009]在另一个实施例中,一个系统包括一台为多播群组提供多播内容的源设备,以及通过位于该网络设备与该源设备之间的多个上游设备而结合进该源设备的一台网络设备。N个实例的每个,对应于该多播群组不同的一个多播分发结构,每条加入请求指定所加入的不同的N个实例中的一个。该源设备选择N个实例中的一个,并且,通过该对应于所选N个实例中的一个实例的多播分发结构,发送该多播群组的多播内容给所述网络设备。
[0010]在另一个实施例中,一个计算机可读介质包括使一个可编程处理器,由一台单个源设备为一个多播群组指定N个实例的指令,其中的每个实例对应于该多播群组的一个不同的多播分发结构。这些指令进而使该可编程处理器为该N个实例的每个实例,从该设备到位于该设备与源设备之间的多个上游路由器,发送一条加入请求。每条加入请求指定了将加入的多播群组的N个实例中的一个。
[0011]一项或多项实施例的细节,均在随后的附图说明和具体实施方式中列出。在具体实施方式、附图和权利要求书中,将明确阐述本发明的其他特征、目标和优点。
附图说明
[0012]图1A-1D是说明一个示例性系统的系列块图,这一系统中,接收设备和中继路由器交换多播优化数据(MOD)并且依照本发明的原则为接收多播业务选择上游路由器。
[0013]图2A是说明一个示例性包格式的块图,该包格式用于一台下游设备与一个上游设备共享多播优化数据,以提高系统中的多播效率。
[0014]图2B是说明一个示例性包格式的块图,该包格式用于一个上游设备与一个下游设备共享多播优化数据,以提高系统中的多播效率。
[0015]图3是说明接收机与邻接上游路由器共享多播优化数据运行示例的流程图。
[0016]图4是说明一台上游路由器与邻接设备共享多播优化数据运行示例的流程图。
[0017]图5是说明一台示例性路由器依照本发明的一个具体实施例,分发或接收多播优化数据的块图。
[0018]图6是说明保存多播优化数据的示例数据结构的块图。
[0019]图7是说明一个局域网(LAN)环境的块图,其中一台源设备通过一个或多个中继设备将用于一个群组的多播数据流注入主干网。
[0020]图8是说明另一个示例性计算系统的块图,该系统中接收机为同一个多播群组为对应于多棵多播树的多个实例而发送多播加入请求。
[0021]图9是为同一个多播群组的多个实例而组成多个多播树之后、图8系统的系统示例。
[0022]图10是说明一个扩展后包括一个实例编号的示例性多播包格式的块图。
[0023]图11是说明依照本发明原则的一台接收机、一台上游路由器和源设备运行示例的流程图。
具体实施方式
[0024]图1A是说明示例系统10的块图,其中接收机14A-14D(统称接收机14)依照与本发明的原则相一致的方式,由源设备12为接收多播业务而选择一台或多台路由器。源设备12向接收机14提供内容,比如互联网协议(IP)视频服务,IP电视(IPTV),网络会议,公司广播,或其他内容。例如,源设备12可以以多播数据包流的形式,向接收机14加入的一个或多个多播群组提供内容。每个多播数据包包括一个用于标识各个多播群组的多播标识符。路由器16A-16B(统称16号路由器)维护将接收机14与多播群组关联的路由信息,并且由源设备12向接收机14发送多播数据包的拷贝。
[0025]出于示例的目的,以下将以使用IP多播以生成多播树的方式来说明本发明。但该项技术也可以应用于在其他环境下建立多播分发结构,比如标签分发协议(LDP),点对多点(P2MP),或多协议标签交换(MPLS)等环境。例如,一个多播流可以通过一条标签交换路径发送,比如,于2005年8月29日在美国提出的、申请号11/215,813为“点对多点标签带标签分发协议的交换路径”的申请中所描述的一条P2MP LSP,该申请的全部内容以参考内容的方式收入本申请。
[0026]图A1中的系统10的配置仅仅是示范性的。例如,系统10可以包含其他源设备(未列出)。一般而言,源设备12可以代表任何多播内容的源,比如一个视频服务器。此外,接收机14可以包含能接收多播内容的任何类型的设备,比如个人计算机、膝上型计算机、手持计算机、工作站、服务器、数字电视、网络支持的手机以及其他。
[0027]接收机14可以通过互联网群组管理协议(IGMP)或其他多播协议与路由器16相互作用以发出多播动作请求。例如,接收机14可以发出加入或退出动作请求以相应地加入或退出一个多播群组。又如,接收机14可以发出多播加入请求以成为由路由器16为之传递多播数据包的示例多播群组的成员。另外一个例子中,一台接收机14可以发出一个多播退出动作请求(也称为一个“修剪”动作请求)以退出一个群组,由此,终止来自它所对应的路由器16的内容传递。以类似的方式,接收机14可以向路由器16发出多播动作请求、在不同的多播群组间切换,以允许接收机14访问由源设备12提供的不同的内容。
[0028]依照本发明的原则,接收机14和路由器16交换带有他们所属多播群组信息的消息,以及带有与他们相连、有能力或者已经为多播群组提供多播内容的上游或下游设备。接收机14及路由器16可以使用这一信息智能地选择一台“上游”路由器以向其发出一条多播加入请求。做出决断的时候,该接收设备监控系统10的状况并使用多个不同标准的任意一个为上游路由器16定级,比如,多播业务复制的最小化,当前带宽水准的负载平衡,以及避免路径遭受通讯延迟。
[0029]一台路由器是否是一台接收机和源设备之间的“上游”路由器,取决于这些设备所采用的“上游”定义。网络中的所有路由器必须使用统一的“上游”定义。例如,根据“上游”的一种定义,如果从源设备到这台路由器的距离小于从源设备到接收机的距离,那么这台路由器就是该特定接收机和源设备的上游路由器,其中距离依照互联网网关协议(IGP)度量尺度确定。根据“上游”的另一种定义,如果从一台路由器到源设备的距离小于从目的设备到源设备的距离,该路由器就是接收机和源设备的上游路由器。因为两个设备间的IGP尺度可能是非对称的,这种定义可能会产生与第一种定义不同的结果。另一套定义增加了一个额外要求,即如IGP尺度所定义的,上游路由器必须位于由该特定路由器到源设备的最短路径(或相应地,从源设备到该路由器)。此外,一台特定路由器在一些情况下可能是上游路由器,在其他一些情况下可能是下游路由器,这都基于它与特定源设备和接收机的关系。
[0030]图1A的例子中,假设系统10中有产生于源设备12的一个单一多播流,并只传递给接收机14A。此外,假设接收机14B希望加入与多播流26相关联的多播示范组<源设备12,群组1>。由此,接收机14B初始发送多播优化(MO)数据包20A给与接收机14B相连的每一台上游路由器。多播优化包20A可以告知路由器16A,比如,与接收机14B相连的上游路由器的数量,以及接收机14B为特定源和与多播流26相关联的群组<源设备12,群组1>而从其接收多播业务的上游路由器的数量。
[0031]在这个例子中,路由器16A是仅有的与接收机14B相连的一台上游路由器,因此多播优化包20A将告知路由器16A,接收机14B仅有一台上游路由器为群组<12号源设备,群组1>接收多播业务。多播优化包20A也可以告知路由器16A,接收机14B有多少可能加入群组的下游设备,有多少已经加入群组的下游设备。这里,接收机14B尚没有这样两类下游设备。当路由器16A收到多播优化包20A,路由器16A会将数据包中的信息作为多播优化数据(MOD)保存在一个数据库内。
[0032]作为响应,路由器16A发送一个多播优化答复包21A给接收机14B。多播优化答复包21A可以告知接收机14B,比如,路由器16A的依赖性和非依赖型的下游设备,以及任何依赖性设备是否已经加入了该多播群组。术语“依赖性的下游设备”用于指向一台依赖于路由器的设备,即这台路由器是该下游设备可从其接收一个多播流的仅有的一台上游路由器。术语“非依赖性的下游设备”用于指向一台可以从该路由器接收一个群组的多播流的设备,但也可指向那些连接到可以接收多播流的其他上游路由器的一台下游设备。
[0033]在这个例子中,多播优化答复包21A告知接收机14B,路由器16A有单一一台依赖性下游设备(即接收机14B),一台非依赖性下游设备(即接收机14C),没有已加入的下游设备。路由器16A可能已经通过来自接收机14C的类似的一个多播优化包20A(没有列出),知道接收机14C是一台非依赖性下游设备。通过这样的方式,接收机14B可以知道位于路由器16A下游的任何对端(peer)设备是否已经加入该多播群组,以及这些对端设备将来是否依赖于路由器16A来接收多播业务。
[0034]当接收机14C接收到多播优化答复包21A,接收机14C会将数据包中的多播优化数据保存在一个数据结构内。此外,接收机14C将发送一个加入请求24A给路由器16A以请求加入与多播流26相关联的多播群组<源设备12,群组1>。
[0035]接收机14B发出加入请求24A以加入群组之前或之后,路由器16A分别发送多播优化包20B、20C给路由器16D、16E。多播优化包20B、20C可以指出,路由器16A有两个可能的上游路由器,路由器16A可以由这两个可能的上游路由器为有关系的特定的源设备和群组接收多播业务。多播优化包20B、20C也可以指出,路由器16A有两台下游设备(即接收机14B、14C),其中一台下游设备(即接收机14B)已经加入了群组<S,G>。在某些实施中,路由器16A甚至可以在接收机14B加入该群组之前,就发出多播优化包20B、20C。
[0036]作为响应,路由器16D、16E分别发送多播优化答复包21B、21C给路由器16A。多播优化包20B指出,路由器16D有两个下游设备(即接收机14A与中继路由器16A),其中之一(即接收机14A)已经加入了该群组。多播优化答复包21C指出,路由器16E有两个下游设备,均没有加入了该群组。基于这个信息,路由器16A可以智能地构造一棵子树。例如,如图1A所示,路由器16A可以选择路由器16D作为上游路由器,从其路由器16A可以为群组<源设备12,群组1>接收多播流26,因为路由器16D已经在为该群组从源设备12接收多播业务。以这样的方式,这些路由器可以避免系统10中不必要的多播数据包的复制。另一个例子,路由器16A可以出于负载平衡的目的,选择路由器16E。
[0037]假设路由器16A选择了路由器16D,路由器16A将发送一个加入请求24B给所选的路由器16D。路由器16D同样可以发送多播优化包20D给源设备12,从源设备12接收多播优化答复包21D,并发送一个加入请求24D给源设备12。源设备12发送群组<S,G>的多播流26给路由器16D,路由器16D将复制多播流26并且发送数据包给接收机14A和路由器16A。路由器16A然后发送多播流26给接收机14B。在一项实施中,可以通过一条标签交换路径(LSP),比如一条点对多点(P2MP)LSP,发送多播流26。
[0038]以这样的方式,多播优化数据(MOD)上行和下行地传播到本地设备,以允许下游设备智能地为一个特定多播群组选择最优上游设备,因而构造出最优的多播分发结构(比如树和子树),并且提高了系统10内的多播效率。多播优化包20、21可以作为如开放式最短路径优先(OSPF)等现有路由协议的扩展而发送,或作为现有多播协议的扩展而发送,如IGMP,独立于协议的多播,距离矢量多播路由协议(DVMRP),多播OSFP,或多播传输协议(MTP),或作为专门为交换MOD而设计的一个单独协议而发送。只有当多播优化数据发送改变,或响应多播动作请求时,这些设备才周期性地发送多播优化包。
[0039]例如,多播优化数据可以指明,位于已经加入该多播群组的各个上游设备下游的一个或多个其他设备,多个依赖性的下游设备而且该上游设备是唯一可能为之提供多播群组的多播数据,多个可能的上游设备,多个可能的下游设备。作为另外一个例子,多播优化数据也可以指明,从该多播群组到源到各台上游设备的距离,从各台上游设备到源的距离,从源到各台上游设备的延迟,通过该上游设备的多个多播群组,以及通过该上游设备的全部多播带宽。
[0040]关于图1B,假设接收机14C随后希望接收与多播流26相关的多播内容。如图1B所示,接收机14C分别发送多播优化包20E和20F给上游设备16A和16B。多播优化包20E和20F可以指出,接收机14C有两台可为群组<源设备12,群组1>接收多播业务的潜在上游设备。多播优化包20E和20F也可以指出,接收机14C既没有潜在下游设备,也没有已加入的下游设备。
[0041]作为响应,路由器16A和16B可以各自发送多播优化答复包21E和21F给接收机14C。多播优化答复包21E指明,路由器16A有一台已经加入群组的下游设备(即接收机14B)。多播优化答复包21F指明,路由器16B并没有已经加入群组的下游设备。基于这个信息,接收机14C可以智能地选择一台可以为该群组接收多播流的上游设备。在这个例子中,接收机14C选择了路由器16A因为路由器16A已在为该群组接收多播业务。通过这样的方式,上游路由器可以避免系统10中不必要的多播数据包的复制。作为选择,接收机14C可以采用上述之外的其他标准。
[0042]假设接收机14C选择了路由器16A,接收机14C将发送一条加入请求24E给路由器16A。路由器16A将接收机14C加为已加入的下游设备,复制与该特定群组<S,G>相关联的多播数据流26并发送这些数据包的拷贝给接收机14B和14C。在一些实施中,路由器16A会发送一条多播优化更新消息29A给接收机14B,发送一条多播优化更新消息29B给接收机14D,告知他们在该特定群组<S,G>中,路由器16A目前已有两台已加入的下游设备。
[0043]关于图1C,假设接收机14D希望接收与多播流26相关的多播内容。如图1C所示,接收机14C分别发送多播优化包20G和20H给上游设备16B和16C。多播优化包20G和20H可以指出,接收机14D有两台可为群组<源设备12,群组1>接收多播业务的潜在上游设备。多播优化包20G和20H也可以指出,接收机14D既没有潜在下游设备,也没有已加入的下游设备。
[0044]或者作为响应,或者在此以前,路由器16B和16C可以各自发送多播优化答复包21G和21H给接收机14D。多播优化答复包21G指出,路由器16B有一台通过一台路由器16B之外的上游路由器、已经加入该有关系的群组的下游设备(即接收机14C)。多播优化答复包21H指出,路由器16C并没有已经加入群组的下游设备。
[0045]基于这个信息,接收机14D可以智能地选择路由器16B作为一台可以为该群组接收多播流的上游设备。此外,接收机14D也可以考虑关于有多播流(没有显示)通过路由器16B和16C的其他群组的信息,并且选择一台上游路由器以便为系统10提供负载平衡。在这个例子中,接收机14D发送了一条加入请求24G给路由器16B。
[0046]路由器16B会发送一条MO更新消息29C给接收机14C,指明路由器16B现在有一台群组<源设备12,群组1>已加入下游设备。接收机14C会将包含在MO更新消息29C内的信息,作为一个多播优化数据保存进数据库。路由器16B会以同前述图1A中路由器16A类似的方式,将该MO消息和加入请求向上发送给路由器16E。当路由器16E从路由器16B收到加入请求24J后,路由器16E会发送一条MO更新消息29D给路由器16A,指明路由器16B现在有一台群组<源设备12,群组1>的已加入下游设备。路由器16E将该消息向上发送,并发送一条加入请求24K给源设备12。源设备12然后发送属于群组<源设备12,群组1>的多播流26′给路由器16E,后者发送多播流26′给路由器16B。路由器16B接着发送多播流26′给接收机14D。
[0047]关于图1D,假设接收机14A随后要退出该群组<源设备12,群组1>。如图1D所示,接收机14A发送一条退出请求32A给路由器16D,请求退出多播群组<源设备12,群组1>。路由器16D将接收机14A从该群组移除,并停止向接收机14A发送多播流。
[0048]此外,路由器16D发送一条多播优化更新消息29E给路由器16A,指明路由器16D目前只有一台是该群组<源设备12,群组1>成员的下游设备。关于该特定该多播群组,基于来自路由器16E(图1C)、指明了路由器16E已在为同一个群组<源设备12,群组1>接收多播数据流26′的多播优化更新消息29D,路由器16A可以智能地使用该信息,将上游路由器从路由器16D转为路由器16E。因此,路由器16A发送一条退出请求32B给路由器16D,请求退出该群组,并发送一条加入请求24L给路由器16E以加入该群组。路由器16E将路由器16A加为群组中的下游设备,并且发送多播数据流26′给路由器16A,最后生成如图1D所示的一棵新的多播树。
[0049]图2A是阐明一个多播优化数据包34的示例性格式的块图,该数据包34用于一台下游设备与一台上游设备共享多播优化数据。可以通过一个扩展多播协议或一个扩展路由协议,使用数据包34。此外,也可以通过专为多播优化而设计的一个单独协议使用数据包34。例如,当一台下游设备准备加入一个群组<S,G>、以共享多播优化数据(MOD)并从邻接设备获取MOD时,它可以向它所有的上游设备发送数据包34。通过这种方法,该下游设备可以智能地选择一台上游设备以向其发送一条加入请求、加入特定多播群组。
[0050]图2A的例子中,数据包34有一个包含典型的包源和目的信息的包头36。例如,包头36可以包含IP地址,端口,协议或其他信息。数据包34也可以包含一个群组标识域38(ID),该域可以包括一个群组标识符,例如,源设备以及标识出后继数据应该使用的各个多播群组群组号。另一个例子,其中标识符可以是一个多播地址。
[0051]MOD域40A-40C(统称MOD域40)包含一台下游设备共享帮助优化多播传输的信息。例如,MOD域40A包含一台下游设备与之相连而且可以接收该特定多播群组多播业务的上游设备的数量。MOD域40B包含与发送该数据包34的下游设备相连的下游设备的数量,这个下游设备可能发出加入请求以从该多播群组接收多播业务。MOD域40C包含位于已加入该特定多播群组、发送该数据包34的下游设备下游的设备的数量。所示的MOD域40D仅是示例性的,而且其他类型的多播优化数据也可以包括在数据包34之内。此外,多个多播群组的这个或其他信息可以在单个数据包中传输。
[0052]图2B是阐明一个示例性多播优化答复数据包42的块图,该数据包42用于一台上游设备与一台下游设备共享多播优化数据。接收来自一台下游设备的数据包34(图2A)可以触发接收方上游设备发送一个其他对应的答复数据包42,该数据包42包含与这台上游设备的邻接设备有关的其他MOD。此外,依照管理员的配置,或是对多播动作请求的响应,一台上游设备可以周期性发送数据包42。尽管如此,这台上游设备仍然可以通过与数据包34的格式一致的一个或多个数据包,与邻接设备交换多播优化信息,以提高多播的效率。
[0053]答复数据包42包含为答复数据包指明源信息和目的信息的包头44,以及标识所考虑的特定多播群组的群组ID域46。MOD域48A-48C(统称MOD域48)包含一台上游设备可以共享、以在网络内帮助最优多播树的选择与格式化的信息。在这个例子中,MOD域48A包含下游设备的数目,而为之发送数据包42的上游设备是仅有的能传递所标识的多播群组的多播业务的上游设备(即依赖性下游设备)。MOD域48B包含可能从该上游路由器接收多播流的下游设备的数目,但这些下游设备亦连接到其他上游路由器并能从其接收其他多播群组的多播流(即非依赖性下游设备)。MOD域48C包含位于发送数据包42、实际上已加入该多播群组的设备的下游的设备的数目。所示MOD域48仅仅是示例性的,而且其他类型的多播优化数据也可以包含在数据包42内。此外,各个多播群组的这样或那样的信息可以携带在一个单独的数据包内。
[0054]图3是阐明一台接收机在与邻接上游路由器共享多播优化数据时运作实例的流程图,如图1A-1D内任何一台接收机14。以下将参照接收机14C说明图3。
[0055]初始时,接收机14C希望接收群组<S,G>的一个多播流(通常是响应一个用户请求),令接收机14C加入该群组(步骤50)。依照合适的“上游”定义,接收机14确定可能的上游路由器(步骤52)。在一些实施中,接收机14C可以计算到源设备最短的一条路径。也有可能,存在到源的多条等耗路径,接收机14C可以使用MOD在这些最短路径中进行选择。此外,接收机14C可能不会计算一条最短路径,而是考虑能到源设备的所有可能的路径。任何情况下,接收机14C总是需要决定向哪台上游路由器发送加入请求。
[0056]接收机14C基于成本尺度或长度,发送一个多播优化(MO)数据包34(图2A)给位于所有到源的路径上的每个上游路由器或其一个子集,即上游路由器22A和22B(步骤54)。接下来,接收机14C从每个上游路由器收到一个MO答复数据包42(图2B)(步骤56)。接收机14C可以将包含在这些MO答复数据包中的多播优化数据保存进一个数据库。接收机14C接着基于这些多播优化数据选择一台上游路由器(步骤58)。例如,接收机14C可能考虑一台上游路由器是否已在接收该群组的多播业务。另一个例子中,接收机14C可以使用多个不同标准的任意一个为路由器定级16,比如,多播业务复制的最小化,当前带宽水准的负载平衡,以及避免路径遭受通讯延迟。接收机14C发送一条加入请求给所选中的上游路由器(步骤60),并且从所选中的上游路由器接收多播数据包(步骤62)。
[0057]图4是阐明一台上游路由器在与邻接设备共享多播优化数据时运作实例的流程图,如图1A-1D内任何一台路由器16A。以下将参照接收机14C说明图4。路由器16A可以从接收机14B和14C中的一台或两台收到多播优化数据包34(图2A)(步骤64)。例如,路由器16A可以从接收机14B收到一个多播优化数据包,指明接收机14B只有一台该群组的上游路由器,即接收机14B依赖于路由器16A以接收对应群组的多播内容。路由器16A也可以从接收机14C接收到一个多播优化数据包,指明接收机14C有两台该群组的潜在上游路由器。
[0058]路由器16A发送一个多播优化答复数据包42(图2B)给接收机14B和14C中的一台或两台(步骤66)。多播优化答复数据包42可以指明,例如,路由器16A有一台依赖性的下游设备和一台非依赖性的下游设备。由此,路由器16A与其他所有下游设备共享它从其每一台下游设备接收到的多播优化数据。以这样的方式,路由器16A促进了系统10内的信息交换,以便下游设备可以为接收多播,智能地选择最优上游路由器。
[0059]路由器16A可以从一台接收机接收到一条加入请求(步骤68)。如果路由器16A并没有在接收被请求群组的多播数据包,路由器16A可以将多播优化数据和加入请求传播下一个上游路由器。在某些实现中,路由器16A会选择性地计算到源设备的最短路径。路由器16A会发送多播优化数据包34给其他位于路由器16A上游的路由器,即路由器16D和16E(步骤70),也可以收到来自路由器16D和16E的多播优化答复数据包42(步骤72)。路由器16A会选择一台上游路由器并基于收到的多播优化数据从那里接收多播内容(步骤74),发送一条加入请求给所选上游路由器(步骤76),并接收来自所选上游路由器的多播数据包(步骤78)。
[0060]图5是说明一台示例性路由器80的块图,该路由器依照本发明的一项实施例来保存、分发和接收多播优化数据(MOD)81。路由器80的运行实质上类似于图1A-1D中的路由器16。在一些情况下,路由器80可以是一台边际路由器,接收机14可以通过网络交换机,如DSLAMs或以太网交换机,与路由器80相连。此外,路由器80也可以是一台并不与接收机14直接相连的中继路由器。一般而言,路由器80可以接收并且发送多播优化数据包和包含MOD81的多播优化答复数据包。
[0061]在一个实施例中,路由器80包括通过入口链路84A-84N(“入口链路84”)接收数据包、以及通过出口链路86A-86N(“出口链路86”)发送数据包的接口卡82A-82N(“接口卡82”)。接口卡82通过高速交换机88和链路90互联。例如,交换机88包括交换结构,交换开关,一台可配置的网络交换机或集线器,以及类似组成。链路90包括任意形式的通信通路,比如集成电路内的电子通路,外部数据总线,光纤链路,网络连接,无线连接,或其他形式的通信通路。接口卡82通过多个接口端口(没有显示)与入口链路84和出口链路86结合。
[0062]路由器80还包括一个控制单元94,该控制单元维护路由信息96以反映当前网络和其他与路由器80相连的网络实体的拓扑结构。一般而言,当路由器80通过入口链路84的一条接收到一个单播数据包时,控制单元94依照路由信息96为该数据包确定一个目的地,并基于目的地将该数据包从出口链路86的一条输出。
[0063]控制单元94维护多播转发信息98。当路由器80通过入口链路84的一条接收到一个多播数据包,控制单元94依照多播转发信息98,将该数据包从出口链路86的一个链路集上转发出去。控制单元94为如OSPF、LDP、MPLS、IGP等的路由协议100提供了运行环境,也为如IGMP等的多播协议提供了运行环境。路由器80可以使用多播协议102来发送和接收多播动作请求,如加入和退出请求。在其他实施中,其他协议可以在控制单元94中得以执行。
[0064]路由协议100和多播协议102中的一个或两个都可以被扩展,用以为优化多播而允许多播优化数据81在其他设备之间往返传递。就如这里说明的,该协议扩展允许可变数量的MOD域被传送给其他设备。在其他实施例中,可以确立一个单独的协议以交换MOD81。依照这里说明的技术,例如,多个数量的潜在上游设备、多个数量的潜在下游设备、多个数量的已加入的下游设备、多个数量的依赖性的下游设备、多个数量的非依赖性的下游设备,或其他MOD都可以被指定。
[0065]在图5的例子中,多播协议102维护MOD81。路由器80可以使用多播协议102和路由协议100,通过出口链路86的一条来发送MOD数据包,通过入口链路84的一条来接收MOD答复数据包,或者,发送和接收MO更新消息。当路由器80发送一个与图2A的MOD数据包34相类似的MOD数据包时,路由器80可以用来自MOD81的数据,填充MOD数据包的各个域。当路由器80收到一个与图2B的MOD答复数据包42相类似的答复数据包时,路由器80可以将包含在MOD答复数据包各个域中的信息保存进MOD81。控制单元94可以以一个或多个表、数据库、链表、搜索树、数据库、平面文件或其他任何数据结构,维护路由信息98、多播转发信息98和MOD81。
[0066]在运行中,当需要确定一台上游路由器以发送一条关于一个特定群组的加入请求时,路由器80使用MOD81。尤其,当路由器80需要加入一个群组,路由器80可以发送和接收包含MOD81的MOD数据包和MOD答复数据包,以了解确实或可能传输给群组里各邻接设备的多播内容。路由器80可以使用MOD81来确定向哪台上游路由器发送加入请求。具体地说,路由器80考虑群组的多播内容是否已经为上游路由器中的一台所接收。路由器80也可以使用MOD81以便在为接收多播内容而选择一台上游路由器时,允许对负载平衡的考虑。
[0067]图5所示的路由器80结构仅仅是为了示例的目的。本发明并不限于这个结构。在其他的实施例中,可以以多种方式配置路由器80。例如,在一项实施例中,控制单元94及其对应的功能可以分布在接口卡82中。在另一项实施例中,控制单元94可以包括一个执行路由功能的路由引擎,该引擎维护一个路由信息库(RIB),比如,路由信息96,也可以包括一个基于转发(forwarding)信息库、执行数据包转发的转发引擎,该转发信息库依照RIB而生成。
[0068]控制单元94可以单纯以软件或硬件实现,也可以软件、硬件或固件的组合实现。例如,控制单元94可包括一个或多个执行软件指令的处理器。在这个情况下,控制单元94的各个软件模块,比如路由协议100和多播协议102,可包括保存在诸如计算机内存或硬盘等计算机可读介质上的可执行指令。
[0069]图6是阐明保存多播优化数据的数据结构104实例的块图。图6的例子中,数据结构104的实例由接收机14C的控制单元维护。例如,数据结构104类似于图5中控制单元94所维护的MOD81。接收机14C使用MO数据包内所收到的MOD组建数据结构104的各行与各列。数据结构104包括指明网络设备的设备列106,各网络设备的MOD保存在对应行。数据结构104也包括一个源设备列108和一个多播群组列110,这两列一起指明多播群组<S,G>。
[0070]数据结构104的列112保存对应设备的潜在上游设备的数量(“NPU”),列114保存其潜在下游设备的数量(“NPD”)。列116保存对应设备的已加入的下游设备的数量(“JD”),列118保存依赖性下游设备的数量(“NDD”),列120保存非依赖性下游设备的数量(“NNDD”)。当接收机14C接收到一条MO消息,比如,一个MO数据包、一个MO答复数据包或一条MO更新消息,接收机14C的控制单元在数据结构104中加入一个新行,或更新现有的一行。
[0071]图6的例子中,起始三行对应设备10.1.1.2,在这个例子中是接收机14C的IP地址。第四和第五行对应设备10.1.1.6(路由器16A的IP地址),最后一行对应设备10.1.8.7(路由器16B的IP地址)。第一行对应多播源224.0.0.195(源设备12的多播地址),群组1,第二行对应源224.0.0.195,群组2。<源设备12,群组1>就是在图1A-1D所讨论的多播群组。第三行对应与源224.0.0.200,这是另一台多播源设备(没有在图1A-1D中显示出来)。
[0072]图6的例子中,接收机14C在数据结构104中维护关于自己的MOD。例如,对<源设备12,群组1>和<源设备12,群组2>,接收机14C有两台潜在上游设备,没有潜在下游设备,因此也没有已加入的下游设备,没有依赖性或非依赖性下游设备。
[0073]接收机14C也通过MO答复数据包从路由器16A和16B获取MOD,这些MOD答复数据包是路由器16A和16B作为对MO数据包的响应而发送给接收机14C的。接收机14C将这个MOD保存在数据结构104。例如,接收机14C已经在第四行保存了对于<源设备12,群组1>而言,路由器16A有两台潜在上游设备,两台潜在下游设备,一台已加入的下游设备,一台依赖性的下游设备和一台非依赖性下游设备。另一个例子,接收机14C已经最后一行保存了对于<源设备12,群组1>而言,路由器16B有一台潜在上游设备,两台潜在下游设备,没有已加入的下游设备,也没有依赖性的下游设备,有两台非依赖性下游设备。
[0074]图6的数据结构104仅仅是示例性的。没有在这个数据结构104实例中显示的MOD的其他类型,可以由接收机14C保存。如前面已经解释的,虽然以表格的形式进行说明,可以以一个或多个表、数据库、链表、搜索树、数据库、平面文件或其他任何数据结构的形式,维护数据结构104。
[0075]图7是阐明一个局域网(LAN)环境126的块图,其中一台源设备通过一个或多个中继设备134A-134B(统称中继设备134)将一个群组的多播数据流130加入主干网132。接收机136A-136C(统称接收机136)可以访问并共享主干网132上的多播数据流130。这里说明的本发明的原则,很容易就可以被应用于LAN环境126。例如,接收机136B可以发送MOD数据包给邻接设备,并从后者接收MOD答复数据包以获取MOD。接收机136B可以使用MOD以更智能化地选择一台上游路由器以便加入该群组。例如,在这个情况下,接收机136B可以选择中继设备134A以发送一条加入请求,因为源设备128已在发送多播数据流130给中继设备134A。通过这样的方式,源设备128就不需要再将数据流的复制注入LAN环境126。
[0076]图8是阐明计算系统138的另一个实例的块图,其中接收机140A-140B(统称接收机140)为同一个多播群组的多个“实例”发送多播加入请求142。如以下更加详细的说明,接收机140和路由器144之间交换的控制信息已扩展来实现实例编号的使用,以允许单个多播群组建立多棵多播树,每棵采用从源设备146到接收机140不同的路径。当始发该群组的多播内容的时候,源设备146可以接着使用这些不同的树,从而允许该源设备使用诸如等耗多径(ECMP)等原则,实现负载平衡或控制流经网络的内容传递。
[0077]详细地说,不同实例对应于由单个源设备146确定的一个多播群组的多棵多播树。为构建这些多播树,接收机140发送该多播群组的多个加入请求142给在到源设备146的不同路径上的路由器144A-144F的一个子集。在一项实施例中,为系统138中的每台设备都配置了一个参数以指明所要求的实例数量。一个特定源和多播群组<源S,潜在G>的多个实例的数量,以N标注。例如,可由一位管理员或软件代理来配置这些设备。实例的数量或者可以对网络中的所有多播群组都相等,也可以以单个群组为基层独立地确定。作为选择,这些设备可以相互交换信息以基于系统138的当前拓扑结构为一个多播群组选择一个最优数量N,也可选择使用此前说明的多播优化数据(MOD)协作选择N。这些设备上可运行一个发现协议,比如多播虚拟专有网(MVPN)协议,或多播虚拟专有局域网服务(MVPLS)协议,以验证每台设备都已经正确地指定了实例的数量。如果一台设备不清楚正确的实例数量,这会导致该设备或者重复接收多播流,或者接收不到该多播群组的多播流。
[0078]图8的例子中,假设<源146,群组1>的N等于3。因此,每台接收机140会发送三条加入请求142,每个实例各发送一条。可以扩展加入请求142以在群组标识符内包括实例编号。每台接收机140确定依照(沿)哪条路径发送每条加入请求142。接收机140会尝试在上游路由器间分发这些加入请求,以为不同的实例构建可选的多播树。接收机140也可以使用此前说明的多播优化技术,以智能地选择该向哪台上游路由器发送每个实例的这些加入请求,例如,将一个特定实例的加入请求发送给已经收到过该实例加入请求的上游路由器。
[0079]在这个例子中,接收机140A初始先发送第一条加入请求142A给路由器144A。加入请求142A请求加入<源146,群组1,实例3>(以下简称<S,G,3>)的多播树。接收机140A也会分别发送加入请求142B和142C给路由器144B,请求加入<S,G,1>和<S,G,2>。接收机140B会发送加入请求142D给路由器144A、申请加入<S,G,3>,发送加入请求142E给路由器144B、申请加入<S,G,1>,发送加入请求142F给路由器144C、申请加入<S,G,2>。通过这样的方式,当指定了特定多播群组和源设备时,可以扩展该多播加入动作以包括实例编号。
[0080]路由器144A接收<S,G,3>的加入请求142A和142D。路由器144A确定,自己是否已有属于<S,G,3>的状态,即路由器144A在多播转发信息98(图5)中,是否已有属于<S,G,3>的条目。换句话说,路由器144A确定它是否已经收到过属于同一个源、群组和实例(这个例子中是<S,G,3>)的加入请求。如果没有,路由器144A就发送加入请求142G给一台上游路由器以加入<S,G,3>。否则,路由器114A就不转发这条加入请求,因为这是条多余的加入请求而且会导致收到同一个多播内容的多个拷贝。通过这样的方式,路由器144选择性地转发加入请求,由此确保接收设备不会重复收到同一个多播内容的多个拷贝,尽管对于与同一个群组关联的多个实例而言,每台接收机可能是一个叶节点。
[0081]图8的例子中,路由器114A选择路由器144D、转发给加入请求142G。路由器144D也会依次同样确定自己是否已有属于<S,G,3>的状态,如果没有,发送一条<S,G,3>的加入请求142L给源设备146。通过这样的方式,接收机140A和140B加入该多播群组实例3的多播树。
[0082]类似地,路由器144B接收到<S,G,1>的加入请求142B和142E,<S,G,2>的加入请求142C。路由器144B确定自己已有<S,G,1>和<S,G,2>的状态,如果没有,发送加入请求142H和142J给上游路由器以加入<S,G,1>和<S,G,2>。这里,路由器144B只有一台上游路由器,因此路由器144B将两个加入请求都发送给路由器144E。路由器144E收到这些加入请求后,确定自己是否已有属于这些实例的状态,如果没有,分别发送加入请求142M和142N给源设备146以加入<S,G,1>和<S,G,2>。通过这样的方式,接收机140A加入了该多播群组实例1和2的多播树,接收机140B加入了该多播群组实例1的多播树。
[0083]路由器144C收到加入<S,G,2>的加入请求142F后,确定自己是否有属于<S,G,2>的状态,如果没有,发送加入请求142K给路由器144F以加入<S,G,2>。路由器144F收到加入请求142K后,确定自己是否有属于<S,G,2>的状态,如果没有,发送加入请求142P给源设备146以加入<S,G,2>。通过这样的方式,接收机140B加入了该多播群组实例2的多播树。接收机140和路由器144可以类似地发出指定了特定实例的退出请求,以退出一个多播群组的一个实例。
[0084]图9是阐明已经分别为多播群组<源146,群组1>的实例3、1、2构建了多播树150A、150B、150C(统称多播树150)之后,图8中系统138的实例的块图。
[0085]实践中,当源设备146收到多播群组1的一个多播流时,源设备146选择多播树150中的一棵发送该多播流。例如,源设备146可以使用一个如用于单播等耗多径(ECMP)的流哈希函数,选择中实例<S,G,1>、<S,G,2>、<S,G,3>中的一个。作为另外一个例子,源设备146会监视网络138以确定哪棵多播树只承受最轻微的网络拥塞,或拥有最大的可用带宽。
[0086]多播树150不必是相互彻底分离的树。多播树150可以部分甚至全部重叠。图9的例子中,多播树150B的部分就与多播树150C的部分相重叠。如果可能,希望尽量扩展这些多播树、避免重叠,这样可以让多播树遍历不同的路径。
[0087]典型地,源设备146会使用单独一棵多播树来发送一个多播流里的所有数据包,这样接收机140收到的数据包就不必重新排序。然而,在某些实施中,源设备146可能会以循环分配的方式、使用多个多播树150来发送一个多播流里的数据包,而接收机140在收到这些数据包后也要将其重新排序。无论哪种情况,无论源设备146选择哪棵多播树150发送该多播流,接收机140只会收到该多播流中每个数据包的一个拷贝。
[0088]假设源设备146选择了对应于实例1的多播树,即多播树150B,以发送多播内容。在这种情况下,源设备146发送每个数据包的一份拷贝给路由器144E。路由器144E复制这些数据包,将每个数据包的一份拷贝发给接收机140A,将每个数据包的一份拷贝发给接收机140B。这样,每台接收机140只收到该多播流中每个数据包的一份拷贝。
[0089]例如,如果路由器144E不起作用,源设备146可以停止通过多播树150B发送群组1的多播流,并切换到通过多播树150A发送该多播流。这样,源设备146可以无缝地在预先建立的多播树之间切换,以避免多播中断,并为网络138提供改进的多播服务。
[0090]图10是阐明已被扩展以包括实例编号的数据包152的示例性多播数据包格式的块图。例如,数据包152可以是一个封装了一台加入请求、一条退出请求、一条协议独立多播(PIM)hello消息,或其他多播控制消息的IP数据包。数据包152可用在一个扩展的多播协议,例如PIM,点对多点(P2MP)标签分发协议(LDP),或为多播优化而设计的单独协议。接收机140或其他上游设备144(图8)会为一个多播群组的N个请求的实例的每一个,都发送一个152数据包。
[0091]图10的例子中,数据包152包括了包含典型的数据包源信息和目的信息的包头154。例如,包头154可以包含IP地址、端口、校验和、协议或其他信息。数据包152也可以包含群组标识域156A-156C(统称群组标识域156)。源标识域156A包含该多播业务的源标识符。群组标识域156B包含标识了该群组的群组标识符(比如,一个多播地址)。实例域156C标识了实例编号。类型域158包含了与特定控制消息相关的一个值。
[0092]图11是示范一个系统中接收机、上游路由器和源设备,依照本发明的原则、构建ECMP多播树的运作实例的流程图。出于示例的目的,将参照图8的接收机140A、路由器144A和源设备146说明图11。
[0093]接收机140A收到通知自己一个特定群组的实例数目N的配置信息(步骤160)。在这个例子中,通过该配置信息将接收机140A配置为对于多播群组<源146,群组1>,实例的数目是3。一位管理员或软件代理可以提供这个配置信息给接收机140A,接收机140A也可以使用一个发现协议与邻接设备交换信息以确定实例的最优数目,可以使用此前交换的MOD。
[0094]当接收机140A希望接收<源146,群组1>的多播内容,比如,可能是对一个用户的响应,接收机140A将发送三条加入请求给上游路由器,<源146,群组1>的三个实例每个一条(步骤162)。这些加入请求可与图10的数据包152类似。如果可能,接收机140A会在它的上游路由器之间分发这些加入请求。接收机140A也可以使用此前说明的多播优化技术,与邻接设备共享多播优化数据。这样,接收机140A可以就向哪台上游路由器发送这些加入请求,做出更智能的判断。例如,接收机140A可以发送与图2A中的数据包34相类似的多播优化(MO)数据包,但后者包含一个附加域以指定与这些数据包相关的实例编号。接收机140A可以为这三个实例的每一个,都发送这样一个的MO数据包给所有的上游路由器,作为响应,也会从上游路由器那里收到与图2B中的数据包42相类似的MO答复数据包,但同样,后者包含一个附加域以指定与这些数据包相关的实例编号。
[0095]接收机140A可以接收到来自路由器144A的一个MO答复数据包,该数据包通知接收机140A路由器144A有属于<源146,群组1,实例3>的一台已加入下游设备(即接收机140B),而且接收机140A也可以接收到来自路由器144B的一个MO答复数据包,该数据包通知接收机140A路由器144B有属于<源146,群组1,实例1>的一台已加入下游设备(即接收机140B)。使用这个MOD,接收机140A可以决定,发送一个加入<S,G,3>的加入请求给路由器114A,发送一个加入<S,G,1>的加入请求给路由器114B。
[0096]路由器114A收到来自它的下游设备的一个或多个加入请求(步骤164)。路由器114A会确定,与在加入请求中指定的实例相对应的状态是否已经存在,即路由器144A是否已经是该实例的多播树的一部分(步骤166)。如果路由器144A尚没有该实例的状态,路由器144A会为改实例在它的多播转发信息98中创建一个入口条目,并发送一条加入请求给它的一台上游邻接设备(步骤168)。如果路由器144A已有该实例的状态,路由器144A会增添该下游设备(如接收机140A)以便该群组和该实例的多播内容可以传输给接收机140A(步骤170)。路由器114A和源设备146之间的其他额外设备可以类似地执行164-170的任何步骤。
[0097]源设备146会接收到加入<源146,群组1>各N实例的加入请求(步骤170)。以这样的方式,在接收机140A和源设备146之间可以构建多个多播树。但源设备146收到属于<源146,群组1>大多播业务时,源设备146会依照对应当实例选择多播树中的一棵,例如通过使用一个单播ECMP流哈希函数(步骤174),并且通过所选多播树发送该多播内容(步骤176)。
[0098]接收机140和路由器144大致类似与图5的路由器80。依照本发明的原则,可以扩展多播协议102(如PIM)以运行在一个多播群组实例的基础上。例如,路由器80可以使用多播协议102来发送和接收改进的加入和退出请求,以加入或退出一个多播群组的特定实例。多播转发信息98和MOD81可以包括路由器80所属的每个多播群组的每个实例入口条目。
[0100]以上说明了本发明的各类实施例。这些实施例和其他的实施方式都在下面的权利要求书的范围之内。

Claims (29)

1.一种在网络内组成多个多播分布结构的方法,包括:
在一台设备,加入来自一个单个源设备的一个多播群组的多个实例N,其中,N个实例的每一个都对应于网络里该多播群组的一个不同的多播分发结构。
2.如权利要求1所述的方法,其中所述加入步骤包括为N个实例的每一个,都发送一条从该设备到位于该设备与该多播群组的源设备之间的多个上游设备的加入请求,其中每条加入请求都要指定所加入的多播群组的N个实例中的一个。
3.如权利要求1所述的方法,进一步包括在多个上游设备之间分发这些加入请求。
4.如权利要求1所述的方法,进一步包括在该设备指定这个多播群组的N个实例。
5.如权利要求4所述的方法,其中在该设备指定这个多播群组一个多播分发结构的N个实例,包括使用一个发现协议来分发N个实例。
6.如权利要求5所述的方法,其中所述发现协议是多播虚拟专用网MVPN或多播虚拟专用局域网服务MVPLS协议的一种。
7.如权利要求4所述的方法,其中在该设备指定这个多播群组一个多播分发结构的N个实例,包括由一位管理员配置N个实例。
8.如权利要求7所述的方法,进一步包括将网络内属于所有多播群组的N个实例配置为相同。
9.如权利要求7所述的方法,进一步包括独立地配置网络内每个多播群组的N个实例。
10.如权利要求1所述的方法,其中的设备包括一台终端用户接收设备和一台中继设备。
11.如权利要求1所述的方法,进一步包括:
用一台设备从位于该设备和一个多播群组的源之间的至少两台上游设备,分别接收一条消息,其中这条消息包括指定了至少一项选择一台上游设备标准的多播优化数据;
基于这个多播优化数据,选择至少两台上游设备中至少一个、至多N个实例,以及
其中,发送一条加入请求包括为N个实例的每一个,都发送从该设备到所选上游设备的加入请求,以便加入该多播群组的N个实例。
12.如权利要求11所述的方法,
其中,选择至少两台上游设备中至少一个、至多N个实例,包括针对多播优化数据应用一个或多个标准,以便为这些上游设备定级,以及
其中,用于为上游设备顶级的标准,包括网络内该多播群组的实例的多播业务复制的最小化,网络内多播业务的负载平衡,和选择一条经受较短通信延迟到网络路径中的一个或多个。
13.如权利要求1所述的方法,其中对应于N个实例的多播分发结构部分重叠。
14.如权利要求1所述的方法,其中所述加入多个实例,包括使用协议独立多播协议和点对多点标签分发协议中的一个的扩展,加入实例。
15.一种在网络内使用多播分发结构的方法,包括:
在源设备,为多播群组选择该多播群组的N个实例的一个;以及
通过对应于所选N个实例中的一个实例的多播分发结构,发送该多播群组的多播内容给该设备。
16.如权利要求15所述的方法,其中在该源设备为该多播群组选择N个实例的一个,包括使用一个等耗多径ECMP流哈希函数来选择N个实例的一个。
17.如权利要求15所述的方法,进一步包括在该设备指定该多播群组的多个实例N。
18.如权利要求17所述的方法,其中在该设备指定一个多播群组的一个多播分发结构的N个实例,包括由一位管理员配置N个实例。
19.如权利要求17所述的方法,其中在该设备指定一个多播群组的一个多播分发结构的多个实例N的一个,包括使用一个发现协议以分发N个实例。
20.一种网络设备,包括:
控制单元,其中保存指定实例数目N的配置数据;
多播协议,在该控制单元内运行,该协议基于实例编号N,为一个多播群组的N个实例生成N条加入请求,其中每个实例对应于该多播群组的一个不同的多播分发结构,以及其中每条加入请求指定加入的该多播群组的N个实例中不同的一个;以及
接口,将加入请求输出到位于该网络设备与该多播群组的一台源设备之间的多个上游设备,以加入该多播群组。
21.如权利要求20所述的网络设备,其中该控制单元在多个上游设备之间分发这些加入请求。
22.如权利要求20所述的网络设备,其中管理员配置该控制单元以指定该多播群组的N个实例。
23.如权利要求20所述的网络设备,进一步包括在控制单元内运行以分发N个实例的发现协议。
24.如权利要求20所述的网络设备,
其中该接口从至少两台上游设备接收各自的消息,每条消息包括指定至少一个选择一台上游设备标准的多播优化数据,
其中该控制单元基于这个多播优化数据,选择至少两台上游设备中至少一个、至多N个实例,并为N个实例的每一个,都产生一条加入请求,以及
该接口将这些加入请求输出到所选上游设备以加入该多播群组的N个实例。
25.如权利要求24所述的网络设备,
其中该控制单元针对该消息的多播优化数据应用一个或多个标准,选择至少两台上游设备中至少一个、至多N个实例,以便为这些上游设备定级,以及
这里,用于为上游设备定级的标准,包括网络内该多播群组的实例的多播业务复制的最小化,网络内多播业务的负载平衡,和选择一条经受较短通信延迟到网络路径中的一个或多个。
26.如权利要求20所述的网络设备,其中多播协议包括协议独立多播PIM协议和点对多点标签分发协议之一。
27.一种系统,包括:
源设备,为多播群组提供多播内容;以及
网络设备,其通过位于该网络设备和该源设备之间的多个上游设备而连接到该源设备,
其中该网络设备为多播群组中N个实例中每个指定的实例发送一条加入请求给多个上游路由器,
其中N个实例中的每个实例对应于该多播群组的一个不同多播分发结构,每条加入请求指定所加入的N个实例中的一个,以及
其中该源设备选择N个实例中的一个,并通过对应于所选实例的多播分发结构,将该多播群组的多播内容发送给网络设备。
28.如权利要求27所述的系统,其中该网络设备在多个上游设备之间分发这些加入请求。
29.一种计算机可读介质,包括:
使一个可编程处理器从单台源设备为一个多播群组指定N个实例的指令,其中N个实例的每一个对应于该多播群组的一个不同多播分发结构;以及
使一个可编程处理器为N个实例的每一个,从该设备发送一条加入请求到位于该设备与源设备之间的多个的上游路由器的指令,其中每条加入请求指定所加入的多播群组的N个实例中的一个。
CN2006101431310A 2006-01-30 2006-11-01 构建等耗多径多播分发结构 Expired - Fee Related CN101013948B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US76330206P 2006-01-30 2006-01-30
US60/763,302 2006-01-30

Publications (2)

Publication Number Publication Date
CN101013948A true CN101013948A (zh) 2007-08-08
CN101013948B CN101013948B (zh) 2011-12-07

Family

ID=38701254

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006101431310A Expired - Fee Related CN101013948B (zh) 2006-01-30 2006-11-01 构建等耗多径多播分发结构

Country Status (1)

Country Link
CN (1) CN101013948B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102067514A (zh) * 2008-04-22 2011-05-18 汤姆森特许公司 用于多跳中继通信系统中的多播树管理的方法和装置
CN101232420B (zh) * 2008-02-27 2012-09-05 南京新联电子股份有限公司 电力数据采集系统的无线组网方法
CN102714630A (zh) * 2010-03-30 2012-10-03 雅马哈株式会社 通信装置、通信系统及通信方法
CN102845020A (zh) * 2010-03-22 2012-12-26 阿尔卡特朗讯 提供多个终端自单播传输渐次转变的控制装置
CN103905315A (zh) * 2012-10-22 2014-07-02 阿瓦亚公司 传送网络中所用的路由信息的虚拟化和分发结构
CN106506578A (zh) * 2015-09-08 2017-03-15 鸿富锦精密工业(深圳)有限公司 数据分享系统及方法
CN110995602A (zh) * 2014-03-31 2020-04-10 瞻博网络公司 用于负载平衡多播流量的系统和方法
CN114157597A (zh) * 2020-08-18 2022-03-08 瞻博网络公司 经加权的多播加入负载平衡

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5946316A (en) * 1997-01-17 1999-08-31 Lucent Technologies, Inc. Dynamic distributed multicast routing protocol
US7450901B2 (en) * 2000-08-16 2008-11-11 The Boeing Company Methods and apparatus for path discovery between a mobile platform and a ground segment
ITMI20010916A1 (it) * 2001-05-04 2002-11-04 Marconi Comm Spa Metodo per l'instradamento multicast distribuito in reti orientate alla connessione e rete applicante tale metodo
CN1284336C (zh) * 2004-01-16 2006-11-08 西安电子科技大学 基于环的大容量可扩展分组交换网络结构

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101232420B (zh) * 2008-02-27 2012-09-05 南京新联电子股份有限公司 电力数据采集系统的无线组网方法
CN102067514B (zh) * 2008-04-22 2015-02-04 汤姆森特许公司 用于多跳中继通信系统中的多播树管理的方法和装置
CN102067514A (zh) * 2008-04-22 2011-05-18 汤姆森特许公司 用于多跳中继通信系统中的多播树管理的方法和装置
CN102845020A (zh) * 2010-03-22 2012-12-26 阿尔卡特朗讯 提供多个终端自单播传输渐次转变的控制装置
CN102845020B (zh) * 2010-03-22 2016-04-20 阿尔卡特朗讯 提供多个终端自单播传输渐次转变的控制装置
US9374231B2 (en) 2010-03-22 2016-06-21 Alcatel Lucent Controller providing gradual transition of multiple terminals from unicast transmission
CN102714630A (zh) * 2010-03-30 2012-10-03 雅马哈株式会社 通信装置、通信系统及通信方法
CN102714630B (zh) * 2010-03-30 2016-01-20 雅马哈株式会社 通信装置、通信系统及通信方法
CN103905315B (zh) * 2012-10-22 2018-09-14 极进网络公司 传送网络中所用的路由信息的虚拟化和分发的方法、设备和系统
CN103905315A (zh) * 2012-10-22 2014-07-02 阿瓦亚公司 传送网络中所用的路由信息的虚拟化和分发结构
CN110995602B (zh) * 2014-03-31 2022-01-14 瞻博网络公司 用于负载平衡多播流量的系统和方法
CN110995602A (zh) * 2014-03-31 2020-04-10 瞻博网络公司 用于负载平衡多播流量的系统和方法
TWI603599B (zh) * 2015-09-08 2017-10-21 鴻海精密工業股份有限公司 資料分享方法及電子裝置
US9787730B2 (en) 2015-09-08 2017-10-10 Hong Fu Jin Precision Industry (Shenzhen) Co., Ltd. Data sharing method and electronic device using same
CN106506578B (zh) * 2015-09-08 2019-10-01 南宁富桂精密工业有限公司 数据分享系统及方法
CN106506578A (zh) * 2015-09-08 2017-03-15 鸿富锦精密工业(深圳)有限公司 数据分享系统及方法
CN114157597A (zh) * 2020-08-18 2022-03-08 瞻博网络公司 经加权的多播加入负载平衡
US11516115B2 (en) 2020-08-18 2022-11-29 Juniper Networks, Inc. Weighted multicast join load balance
CN114157597B (zh) * 2020-08-18 2024-01-02 瞻博网络公司 经加权的多播加入负载平衡
US11902148B2 (en) 2020-08-18 2024-02-13 Juniper Networks, Inc. Weighted multicast join load balance

Also Published As

Publication number Publication date
CN101013948B (zh) 2011-12-07

Similar Documents

Publication Publication Date Title
US10476793B2 (en) Multicast flow overlay using registration over a reliable transport
CN108696440B (zh) 一种用于多重归宿evpn网络中的多播负载均衡的方法和提供者边缘路由器
US7839850B2 (en) Forming equal cost multipath multicast distribution structures
CN101013948B (zh) 构建等耗多径多播分发结构
CN102150148B (zh) 层2拓扑中针对单播帧和多播帧的差别化服务
US8270395B2 (en) Forming multicast distribution structures using exchanged multicast optimization data
CN103117925A (zh) 数据报文转发处理方法及装置
CN113497766B (zh) 使用源激活路由的evpn组播入口转发器选择
CN101232458B (zh) 一种基于maodv协议的多路径扩展方法
CN107294859B (zh) 一种信息传递方法、装置及系统
US8774181B1 (en) Reducing unnecessary upstream traffic in PIM-bidirectional mode
EP3975489A1 (en) Label deduction with flexible-algorithm
EP3907940B1 (en) Ingress replication procedures to facilitate migration to segment routing technology in a computer network
EP3958517A1 (en) Weighted multicast join load balance
CN102263695A (zh) 组播跨越ldp网络的方法及系统
US8761171B1 (en) Reducing unnecessary upstream traffic in PIM-bidirectional mode
WO2009064165A2 (en) A fast packet forwarding engine for scalable routing
CN113014495B (zh) 用于改进的多播的源主动社区
WO2023207227A1 (zh) 路由通告消息的处理方法、装置、存储介质及电子装置
Danilov et al. MANET multicast with multiple gateways
Amin et al. PIM-MANET: Extension to PIM for multicast routing in MANETs
CN114726783A (zh) 通告路由的方法、装置及系统
Lee et al. An Efficient Multicasting Architecture for Context-Aware Messaging Services in the Future Internet

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: 20111207

Termination date: 20171101

CF01 Termination of patent right due to non-payment of annual fee