CN108270766A - 多播流优先化 - Google Patents

多播流优先化 Download PDF

Info

Publication number
CN108270766A
CN108270766A CN201710908404.4A CN201710908404A CN108270766A CN 108270766 A CN108270766 A CN 108270766A CN 201710908404 A CN201710908404 A CN 201710908404A CN 108270766 A CN108270766 A CN 108270766A
Authority
CN
China
Prior art keywords
multicast
multicast flows
router
flows
pim
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
CN201710908404.4A
Other languages
English (en)
Other versions
CN108270766B (zh
Inventor
萨农·卡达维尔·维韦卡南丹
罗伯特·W·基布勒
维克拉姆·纳加拉詹
阿尼什·彼得
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.)
Jungle Network
Juniper Networks Inc
Original Assignee
Jungle Network
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 Jungle Network filed Critical Jungle Network
Publication of CN108270766A publication Critical patent/CN108270766A/zh
Application granted granted Critical
Publication of CN108270766B publication Critical patent/CN108270766B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/185Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1881Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with schedule organisation, e.g. priority, sequence management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/677Multiple interfaces, e.g. multihomed nodes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请涉及多播流优先化,描述了具有多播流限制的协议无关多播(PIM)网络中的多播流优先化的技术。根据所公开的技术,一旦路由器达到其多播流限制,路由器就可以利用最新请求的较高优先级的多播流抢占已安装的较低优先级的多播流。例如,如果在路由器上已安装了最大数量的多播流,则在接收到与已安装的流相比具有较高优先级流的PIM加入时,路由器会以接收的较高优先级替换一个已安装的较低优先级流。此外,根据所公开的技术,多播流的优先级值在PIM域上是一致的,并且PIM域内的每个路由器被配置为使用优先级值来选择超过较低优先级流的较高优先级流。

Description

多播流优先化
技术领域
本发明涉及计算机网络,更具体地,涉及通过计算机网络分发多播业务。
背景技术
计算机网络是交换数据和共享资源的互连计算设备的集合。在基于数据包的网络中,计算设备通过将数据划分成称为数据包的小块来传送数据。网络内的某些设备(例如,路由器和交换机)维护描述通过网络的路径的路由和/或转发信息。以这种方式,数据包可以通过网络从源设备单独发送到目标设备。目标设备从报文中提取数据,并将数据组装成其原始形式。将数据分成数据包,使源设备只能重新发送在发送过程中可能丢失的那些单独的数据包。
计算机网络的示例包括企业网络、分支网络、服务提供商网络、家庭网络、虚拟专用网络(VPN)、多播虚拟专用网络(MVPN)、局域网(LAN)、虚拟LAN(VLAN)等。在一些情况下,计算机网络可以被配置为支持诸如互联网协议电视(IPTV)、桌面会议、企业广播、音乐和视频网络演播以及其他形式的多媒体内容等多播业务。作为一个示例,计算机网络可以将协议无关多播(PIM)用作多播路由协议,以通过计算机网络构建分配树,用于将多播业务从源传输到用于特定多播组的接收器或用户设备。PIM可以在几种不同的模式中操作,包括在源特定多播(SSM)模式或任意源多播(ASM)模式中的密集模式(DM)、稀疏模式(SM)、以及双向(BIDIR)模式。
发明内容
通常,本公开描述了在具有多播流限制的协议无关多播(PIM)网络中执行多播流优先化的技术。根据所公开的技术的各个方面,一旦路由器达到其多播流限制,路由器就可以利用最新请求的较高优先级的多播流抢占已安装的较低优先级的多播流。例如,如果在路由器上已安装了最大数量的多播流,则与已安装的流相比,在接收到较高优先级流的PIM加入时,路由器会以接收的较高优先级替换一个已安装的较低优先级流。此外,根据所公开的技术,多播流的优先级值在PIM域上是一致的,并且PIM域内的每个路由器被配置为使用优先级值来选择超过较低优先级流的较高优先级流。每个多播流的优先级值可以由网络管理员经由命令行接口或由集中控制器初始设置在PIM域内的一个或多个路由器上。
在一个示例中,本公开涉及一种方法,包括:由路由器接收协议无关多播PIM加入消息,该PIM加入消息指示至少一个所请求的多播流;由所述路由器确定在路由器处存储的多播状态表中的已安装的多播流的数量是否达到与路由器相关联的多播流限制;基于达到多播流限制,由所述路由器将所请求的多播流的优先级值与多播状态表中的一个已安装的多播流的优先级值进行比较;并且基于所请求的多播流的优先级值高于一个已安装的多播流的优先级值,从多播状态表中删除一个已安装的多播流,并将所请求的多播流安装在多播状态表中。
在另一示例中,本公开涉及一种路由器,包括:存储器,其被配置为存储包括一个或多个已安装的多播流的多播状态表;以及一个或多个处理器,其与所述存储器通信。所述一个或多个处理器被配置为:接收协议无关多播PIM加入消息,所述PIM加入消息指示至少一个所请求的多播流;确定在多播状态表中的已安装的多播流的数量是否达到与路由器相关联的多播流限制;基于达到多播流限制,将所请求的多播流的优先级值与多播状态表中的一个已安装的多播流的优先级值进行比较;并且基于所请求的多播流的优先级值高于一个已安装的多播流的优先级值,从多播状态表中删除一个已安装的多播流,并将所请求的多播流已安装在多播状态表中。
一种存储指令的非暂时的计算机可读存储介质,所述指令在执行时促使路由器的一个或多个处理器:接收协议无关多播PIM加入消息,该PIM加入消息指示至少一个所请求的多播流;确定在路由器处存储的多播状态表中的已安装的多播流的数量是否达到与路由器相关联的多播流限制;基于达到多播流限制,将所请求的多播流的优先级值与多播状态表中的一个已安装的多播流的优先级值进行比较;并且基于所请求的多播流的优先级值高于一个已安装的多播流的优先级值,从多播状态表中删除一个已安装的多播流,并将所请求的多播流已安装在多播状态表中。
在附图和以下说明书中阐述本发明的一个或多个示例的细节。本发明的其他特征、目的和优点将从说明书和附图以及权利要求书中变得显而易见。
附图说明
图1A-1B是示出根据本公开的技术的包括被配置为通过使用PIM SSM建立的多播树来转发优先化的多播流的业务的路由器的示例计算机网络的方框图;
图2是示出根据本公开的技术的包括被配置为通过使用PIM ASM建立的多播树来转发优先化的多播流的业务的路由器的另一示例计算机网络的方框图;
图3是示出根据本公开的技术的包括被配置为通过使用PIM建立的多播树来跨MVPN核心转发优先化的多播流的业务的路由器的另一示例计算机网络的方框图;
图4是示出被配置为执行所公开的多播流优先化的技术的示例路由器的方框图;
图5是示出具有嵌入在编码源地址的PIM加入属性中的多播流优先级值的PIM加入消息的示例格式的概念图;
图6是示出图5的编码源地址的示例格式的概念图,包括用于传送多播流的优先级值的PIM加入属性;
图7是示出BGP MVPN路由的团体属性的示例格式的概念图,该团体属性用于传播PIM加入消息中包含的多播流的优先级值;以及
图8是示出根据本公开的技术的在具有多播流限制的PIM网络中执行多播流优先化的示例操作的流程图。
具体实施方式
图1A-1B是示出根据本公开的技术的包括路由器的示例计算机网络10的方框图,所述路由器被配置为通过在源16和接收器18A-18B(统称为“接收器18”)之间使用协议无关多播(PIM)源特定多播(SSM)建立的多播树来转发优先化的多播流的业务。在图1A-1B中,虚线箭头表示向源16发送的PIM加入消息,实线箭头表示向接收器18转发的多播业务。
网络10可以包括专用网络或诸如互联网等公共网络。例如,网络10可以是企业网络、校园网络、服务提供商网络、家庭网络、局域网(LAN)、虚拟局域网(VLAN)、虚拟专用网络(VPN)或其他自治系统。在这些示例中的任一个中,远程定位的源16和接收器18可以经由网络10共享数据。在网络10作为企业网络的示例中,源16和接收器18均可以包括位于单个办公位置的不同区域的一个或多个服务器或员工计算机终端,或者可以包括公司的远程办公位置。
在所示示例中,网络10包括互联网协议(IP)网络,其包括使用PIM协议来针对特定多播组在源16和接收器18之间通过网络10路由多播业务的路由设备。网络10包括路由器(R1-R4)20A-20D(统称为“路由器20”)。R1 20A是连接到源16的第一跳路由器(FHR),R2 20B是转接路由器,R3 20C是连接到接收器18A的最后一跳路由器(LHR),R4 20D是连接到接收器18B的LHR。在使用PIM协议的典型网络拓扑中,可以在FHR R1 20A和LHR R3 20C和R4 20D之间包括额外的转接路由器。为了说明的目的,在图1A-1B中未示出这些额外的路由器。
源16和接收器18均可以包括在远程站点(未示出)中,所述远程站点可以是包括多个用户设备的局域网(LAN)或广域网(WAN),例如,台式计算机、笔记本电脑、工作站、个人数字助理(PDA)、物联网(IOT)设备、无线设备、网络就绪设备、文件服务器、打印服务器或其他设备。远程站点可以被配置为支持诸如互联网协议电视(IPTV)、桌面会议、企业广播、音乐和视频网络演播以及其他形式的多媒体内容等多播业务。源16可以为一个或多个多播组提供业务。接收器18可以均请求或订阅来自一个或多个多播组的业务。在其他示例中,网络10内的路由器可以连接到多于一个源和/或连接到多于或少于两个接收器。
PIM协议可以以几种不同的模式操作,包括源特定多播(SSM)模式或任意源多播(ASM)模式中的密集模式(DM)、稀疏模式(SM)和双向(BIDIR)模式。可以在Adams,A.等人的“Protocol Independent Multicast Version 2-Dense Mode Specification”IETF RFC3973,2005;Fenner,B.等人的“Protocol Independent Multicast-Sparse Mode(PIM-SM):Protocol Specification(Revised)”,IETF RFC 4601,2006;Holbrook,H.和B.Cain的“Source-Specific Multicast for IP”,IETF RFC 4607,2006;以及Handley,M.等人的“Bidirectional Protocol Independent Multicast(BIDIR PIM)”,IETF RFC 5015,2007中,找到关于PIM协议的额外信息,其全部内容通过引用并入本文。
PIM是用于在源和接收器之间的网络内建立多播树的主要使用的多播路由协议。随着部署规模的增加,网络服务提供商可能会发现需要对客户站点(例如,每个接收器18)允许的多播流(即,信道)应用某种最大限制。然而,应用多播流限制引入了客户对某些多播流优先化的需求,使得高优先级多播流优于其他多播流,并且由于多播流限制不会阻塞、丢弃或忽略高优先级多播流。另外,无论接收到多播流请求的顺序如何,多播流优先化可以通过识别应该始终安装哪些多播流而提供一定量的一致性。
使用PIM SSM模式描绘图1A-1B和图3中的示例,但是本公开中描述的问题和解决方案也适用于在图2的示例中描绘的PIM ASM模式。
在图1A-1B的示例中,在网络10中,具有大约1000个多播流,这些多播流具有从G1到G1000范围的关联的唯一多播组地址,并且具有向这些组中的每一个发送业务的对应的源(包括源16)。每个多播流可以表示用于传送给定的一个多播组的多播业务的信道。接收器18A和18B分别在路由器R3 20C和路由器R4 20D之后,源16在路由器R1 20A之后。在该示例中,所有多播流都是PIM SSM,所有路由器20都配置了多播流限制以仅允许200个多播流。在所示示例中,网络10中的1000个多播流中的200个(例如,从组G1到G200)将以比剩余的800个多播流更高的优先级来处理。在这种情况下,如果接收器18对这200个较高优先级的多播流感兴趣,则应该传送较高优先级的多播流的业务。
如图1A所示,在R3 20C之后的接收器18A首先表示对组G601至G800的兴趣(例如,使用PIM加入消息)。由于这是PIM SSM的情况,所以当路由器经由PIM加入消息接收针对组的兴趣时,路由器创建多播流的状态,并将PIM加入消息转发给上游源。在所示示例中,R320C创建200个流(例如,G601至G800),并向R2 20B和R1 20A发送PIM加入消息。这些路由器均还创建200个多播条目(例如,G601至G800),从而所有路由器将耗尽其最大多播流限制。
稍后,在R3 20C之后的接收器18A可以表示对组G1-G1000的其余部分的兴趣,包括高优先级组G1至G200。在一些示例中,由于在路由器20上配置了200的限制,并且R3 20C已经为G601至G800创建了状态,从而耗尽其极限,因此R3 20C将仅处理现有的G601至G800流,而不能添加任何另外的多播流。由于不会传播加入该组的剩余部分,因此接收器18A不会接收到组G1-G600和G801-G1000的任何业务,包括高优先级流G1至G200。利用现有的机制,路由器20不会被配置为针对流的优先级值进行操作,因此在路由器20上达到最大限度的多播业务之后,不能为所请求的较高优先级流转发业务。
利用现有机制,也可能存在不一致之处,因为在不同路由器20上选择的或已安装的多播流可以基于先到先得的原则。例如,在服务多播流G601-G800的上述情况下,当R320C重新启动、并在重新启动后R3 20C首先接收到G801-G1000的加入时,R3 20C将安装这些流,从而耗尽多播流的配置的最大限制。由于达到限制,将拒绝或阻止所有另外的加入,使得由于上游路由器R320的重新启动而导致接收器18A(其先前接收流G601至G800的业务)可能不再接收业务。利用PIM的现有实现方式,可能无法预先确定上游路由器将选择或阻止哪些流。
当不同的路由器具有不同组的接收器时,上述问题可能更加严重,并且基于先到先得的原则,路由器安装不同的流,而不被配置为相对于优先级值进行操作。在这种情况下,路由器后面的接收器完全可能收不到任何业务。
在图1A的示例中,接收器18A首先表示对组G601至G800的兴趣。在这种情况下,R320C创建200个流(例如,G601至G800),并向R2 20B和R1 20A发送PIM加入消息。这些路由器中的每一个也创建200个多播条目(例如,G601至G800),从而所有路由器将耗尽其最大多播流限制。稍后,R4 20D后面的接收器18B表示对与G601-G800相比是较高优先级组的组G1-G200的兴趣。R4 20D创建200个流(例如,G1到G200),并向R2 20B发送PIM加入消息。在一些示例中,由于R2已经耗尽了现有G601到G800流的限制,所以不能添加任何另外的多播流。在这种情况下,不会进一步传播G1-G200的加入,并且接收器18B将不会接收到这些流的任何业务。
本公开描述了在具有多播流限制的PIM网络中执行多播流优先化的技术。根据所公开的技术,一旦路由器达到其多播流限制(例如,上述多播流的最大限制),则路由器可以利用最新请求的较高优先级的多播流抢占所已安装的较低优先级的多播流。例如,如果在路由器上已安装了最大数量的多播流,则在接收到与当前安装的多播流相比较高优先级流的PIM加入时,路由器会用已接收到的较高优先级流来替换一个已安装的较低优先级流。此外,根据所公开的技术,多播流的优先级值在PIM域上是一致的,并且PIM域内的每个路由器被配置为使用优先级值来选择超过较低优先级的较高优先级流。
多播流的优先级值可以是数字或非数字标识符,其被定义为指示与客户偏好相关联的优先级,以接收由相应的多播流承载的多播业务。例如,可以为承载客户必须接收的业务或承载与其他业务相比客户更非常偏好接收的业务的多播流分配高优先级值。另一方面,可以为承载客户不关心其是否接收的业务的多播流分配低优先级值。在一个示例中,优先级值可以是整数值,例如,对于网络10的PIM域中的1000个多播流,优先级值范围从1到1000。可以定义优先级值,使得1是最低优先级值,而1000是最高优先级值。在其他示例中,可以定义优先级值,使得1是最高优先级值,1000是最低优先级值。无论如何定义优先级值,多播流的优先级值应该预先定义并且在PIM域上一致,即不能更改或配置。
PIM或多播域可以包括使用相同或至少部分重叠的多播路由来传送多播业务的所有源和所有接收器。在一些示例中,PIM或多播域可以由开放最短路径优先(OSPF)区域或自治系统边界路由器(ASBR)边界来定义。通常,PIM或多播域不会跨越唯一地标识互联网内的自治系统的不同自治号(ASN)。每个多播流的优先级值可以由网络管理员经由命令行接口(CLI)在PIM域内的一个或多个路由器上初始设置,或者经由集中式控制器进行编程,例如,使用应用编程接口(API)。
根据所公开的技术,当安装在路由器上的多个已安装的多播流已经达到与路由器相关联的多播流限制时,如果路由器接收到指示最新请求的多播流的PIM加入消息,则路由器将所请求的流的优先级值与当前安装在路由器上的多播流的优先级值进行比较。如果最新请求的流的优先级高于已安装流的优先级值,则路由器将删除已安装的流,并安装最新请求的较高优先级的多播流。
作为一个示例,在R1-R3 20A-20C已经耗尽了其多播流限制(具有组G601-800的多播状态)的上述情况下,在R3 20C后面的接收器18A可以表示对组G1-G1000的剩余部分的兴趣,包括高优先级组G1到G200。所公开的技术使R1-R3 20A-20C中的每一个能够将组G1-G1000的流的优先级与当前安装在路由器上的组G601-800的每个多播流进行比较。然后,每个R1-R3A20-20C可以删除较低优先级流,并安装较高优先级的多播流,在这个示例中,可以包括:删除组G601-800的流并且安装高优先级组G1到G200的流。
作为另一示例,如图1B所示,R1-R3 20A-20C中的每一个已经耗尽了其多播流限制(具有组G601-800的多播状态),R4 20D后面的接收器18B表示对与G601-G800相比是较高优先级组的组G1-G200的兴趣。所公开的技术使R2 20B能够将组G1-G200的流的优先级与当前安装在R2 20B上的每个多播流G601-800进行比较。然后,R2 20B可以删除较低优先级的流,并安装较高优先级的多播流,在本示例中,包括删除组G601-800的流,并安装高优先级组G1到G200的流。
如图1B所示,R2 20B删除组G601-800的多播状态,而创建200个新流(例如,G1到G200),并向R1 20A发送PIM加入消息。R1 20A也删除了组G601至G800的先前安装的200个多播条目,为组G1-G200创建了较高优先级流的200个新流。在这种情况下,接收器18B将接收组G1-G200的业务流,并且接收器18A将不再接收组G601-800的业务流。
图2是示出根据本公开的技术的包括路由器的另一示例计算机网络22的方框图,所述路由器被配置为通过使用在源26和路由器28A-28B(统称为“路由器28”)之间的PIMASM建立的多播树来转发优先化的多播流的业务。在图2中,虚线箭头表示向RP 24发送的PIM加入消息,实线箭头表示向接收器28转发的多播业务。
在所示示例中,网络22包括IP网络,该IP网络包括使用PIM协议来针对特定多播组在源26和接收器28之间通过网络22路由多播业务的路由设备。网络22包括路由器(R1-R4)30A-30D(统称为“路由器30”)和汇聚点(RP)24。R1 30A是连接到源26的FHR,R2 30B是转接路由器,R3 30C是连接到接收器28A的LHR,并且R4 30D是连接到接收器28B的LHR。在使用PIM ASM协议的典型网络拓扑中,在FHR R1 20A、RP 24和LHR R3 20C和R4 20D之间可能包含额外转接路由器。为了说明的目的,这些额外的路由器在图2中未示出。
在上面引用的RFC 4601中更详细描述的PIM ASM模式中,RP(例如,RP 24)是构建在网络中的所有多播树的根,并且存储用于网络中的所有多播流的信息(包括源地址)。PIMASM描述了一种机制,其中,通过首先构建以RP 24为根的共享树,然后构建以FHR R1 30A为根的最短路径有源树,并修剪(pruning)共享树以使用有源树来实现多播功能。这些不同的树是为ASM构建的,因为具有感兴趣的接收器的LHR(例如,R3 30C和R4 30D)没有多播业务的源(例如,源26)的知识。在图2的示例中,R3 30C和R4 30D均首先向RP 24发送PIM加入,以构建共享树并且了解所请求的多播业务的源(例如,源26)的源地址。在发现源26时,R3 30C和R4 30D均可以随后建立以R1 30A为根的最短路径树。
在图2的示例中,在网络22中,具有大约1000个多播流,这些多播流具有从G1到G1000范围的关联的唯一多播组地址,并且具有向这些组中的每一个发送业务的对应的源(包括源26)。所有路由器30都配置了多播流限制以仅允许200个多播流。在所示示例中,网络22中的1000个多播流中的200个(例如,从组G1到G200)将以比剩余的800个多播流更高的优先级来处理。
如图2所示,接收器28A首先表示对组G601至G800的兴趣。作为响应,R3 30C创建200个流(例如,G601至G800)并且向R2 30B和RP24发送PIM加入消息。在这种情况下,尽管图2中未示出,但是RP 24将组G601-G800的PIM加入消息发送到R1 30A。所有这些路由器还创建200个多播条目(例如,G601至G800),从而所有路由器将耗尽其最大多播流限制。
稍后,R4 30D之后的接收器28B表示对于与G601-G800相比是较高优先级组的组G1-G200的兴趣。R4 30D创建200个流(例如,G1到G200)并向RP24发送PIM加入消息。所公开的技术使得RP 24能够将组G1-G200的流的优先级与当前安装在RP 24上的每个多播流G601-800进行比较。然后,RP 24可以删除较低优先级的流,并安装较高优先级的多播流,在本示例中,包括删除组G601-800的流,并安装高优先级组G1到G200的流。RP 24删除组G601-800的多播状态,而创建200个流(例如,G1到G200),并向R1 30A发送PIM加入消息。R1 30A也删除组G601至G800的先前200个多播条目,并为组G1-G200的较高优先级流创建200个新流。在这种情况下,接收器28B经由RP 24接收组G1-G200的业务流,接收器28A将不再接收组G601-800的业务流。
图3是示出根据本公开的技术的包括路由器的另一示例计算机网络22的方框图,该路由器被配置为使用PIM建立的多播树来穿过在源36和接收器38A-38B(统称为“接收器38”)之间跨越多播虚拟专用网(MVPN)核心34转发优先化的多播流的业务。在图3中,虚线箭头表示发送到源36的PIM加入消息,实线箭头表示向接收器38转发的多播业务。
在所示示例中,网络32包括经由MVPN 34连接的多个远程IP网络。每个IP网络包括通过使用PIM协议来穿过网络路由多播业务的路由设备。网络32包括路由器(R1-R6)40A-40F(统称为“路由器40”)。R1 40A是连接到源36的FHR,R2 30B是在MVPN核心34的源侧的提供商边缘(PE)路由器。R3 40C是在MVPN核心34的接收器侧的PE路由器,R440D是连接到接收器38A的LHR,R5 40E是在MVPN核心34的接收器侧的PE路由器,并且R6 40F是连接到接收器38B的LHR。
为了通过MVPN 34传输PIM消息,PIM消息被转换成BGP MVPN路由消息。例如,在R340C或R5 40E处,PIM*、G加入(joins)可以转换为MVPN类型6共享树加入路由(shared treejoin routes),PIM S、G加入可以转换为MVPN类型7源树连接路由(source tree joinroutes)。这些MVPN路由输出到BGP表,并通过MVPN核心34发送到远程路由器R2 40B,其中,这些路由可以被转换回PIM加入,用于在上游进一步传播。可以在Rosen,E.等人的“Multicast in MPLS/BGP IP VPNs”RFC 6513,2012年2月;以及Rosen,E.等人的“BGPEncodings and Procedures for Multicast in MPLS/BGP IP VPNs”,RFC 6514,2012年2月中,找到关于MVPN的附加信息,其全部内容通过引用并入本文。
在虚拟路由实例(例如,MVPN核心34)上的各个地理位置部署多播网络的情况下,可以看到与上面在图1A-1B中所述相同的复杂性。在图3的示例中,在网络32中,具有大约1000个多播流,这些多播流具有从G1到G1000范围的关联的唯一多播组地址,并且具有向这些组中的每一个发送业务的对应源(包括源36)。考虑到所有路由器40都是同一虚拟路由和转发(VRF)实例的一部分,并且客户希望实施组G1-G200具有更高的优先级,使得感兴趣的接收器总是接收组G1-G200的多播业务,而剩下的800个流的业务并没有被强制传送。
如图3所示,接收器38A首先表示对组G601至G800的兴趣。在这种情况下,R4 40D创建200个流(例如,G601到G800),向R3 40C发送PIM加入消息并且该PIM加入消息通过MVPN核心34至R2 40B。在这种情况下,尽管在图3中未示出,但是R2 40B将组G601到G800的PIM加入消息发送到R1 40A。所有这些路由器还创建200个多播条目(例如,G601至G800),从而所有路由器将耗尽其最大多播流限制。
稍后,R6 40F之后的接收器38B表示对与G601-G800相比是较高优先级组的组G1-G200的兴趣。R6 30F创建200个流(例如,G1至G200),向R5 40E发送PIM加入消息并且该发送PIM加入消息通过MVPN核心34至R2 40B。所公开的技术使R2 40B能够将组G1-G200的流的优先级与当前安装在R2 40B上的每个多播流G601-800进行比较。然后,R2 40B可以删除较低优先级的流,并安装较高优先级的多播流,在本示例中,包括删除组G601-800的流,并安装高优先级组G1到G200的流。如图3所示,R2 40B删除组G601-800的多播状态,而创建200个流(例如G1到G200),并向R1 40A发送PIM加入消息。R1 40A也删除组G601到G800的前200个多播条目,为组G1-G200的较高优先级流创建200个新流。在这种情况下,接收器38B将接收组G1-G200的业务流,并且接收器38A将不再接收组G601-800的业务流。
图4是示出被配置为执行所公开的多播流优先化的技术的示例路由器50的方框图。在一个示例中,路由器50可以作为最后一跳路由器(LHR)来操作,该最后一跳路由器连接到接收器并且被配置为与汇聚点(RP)建立通信信道或直接与连接到源的第一跳路由器建立通信信道。在其他示例中,路由器50可以作为被配置为管理网络中的PIM消息和多播树创建的RP或控制器路由器来操作。在另外的示例中,路由器50可以如图1A-1B、2或3中所示的计算机网络中的最后一跳路由器、第一跳路由器或转接路由器中的任何一个操作。
在图4的所示示例中,路由器50包括经由入链路(incoming link)接收多播数据包并经由出站链路发送多播数据包的接口卡60A-60N(“IFC60”)。IFC60通常经由多个接口端口耦合到入链路和出链路(outbound link)。路由器50还包括控制单元54,其确定接收到的数据包的路由并相应地经由IFC60转发数据包。
控制单元54包括路由引擎56和转发引擎58。路由引擎56作为路由器50的控制平面操作,并且包括操作系统,该操作系统可以提供用于执行多个并发进程的多任务操作环境。例如,路由引擎56为执行路由器50的路由功能的各种协议66提供操作环境。在图4的所示示例中,路由引擎56包括作为用于在网络中与其他路由设备交换路由信息的单播路由协议的边界网关协议(BGP)70和内部网关协议(IGP)72,以便发现网络拓扑并更新路由信息62。在本公开中描述的示例中,IGP 72可以是链路状态路由协议,例如,开放最短路径优先(OSPF)或中间系统到中间系统(IS-IS)。此外,路由引擎56包括作为多播路由协议的PIM 68,其用于使用路由信息62和多播状态信息64在网络中与其他路由设备一起构建多播分发树。
路由信息62可以描述路由器50驻留在其中的网络的拓扑,并且还可以描述网络内的各种路由以及每个路由的适当的下一跳,即沿着每个路由的相邻路由设备。路由信息62可以包括入接口(IIF)的列表和出接口(OIF)的列表,其指示哪些IFC60连接到每个路由中的相邻路由设备。例如,给定路由可以包括用于给定多播组的多播业务的多播路由。在该示例中,包括在路由器50的路由信息62中的IIF的列表可以包括给定多播组的具有PIM状态的所有上游路由器的上游接口的列表。
多播状态信息64可以描述使用PIM68建立的多播分发树中到相邻路由设备的链路的当前状态。例如,多播状态信息64可以包括PIM加入状态,该PIM加入状态描述多播组的哪些多播流安装在路由器50上并且哪些相邻路由设备属于该多播组。路由引擎56分析存储的路由信息62和多播状态信息64,以生成安装在转发引擎58中的转发信息76。
转发引擎58为路由器50提供数据平面功能。虽然在图4中未示出,但是转发引擎58可以包括中央处理单元(CPU)、存储器和一个或多个可编程数据包转发专用集成电路(ASIC)。转发信息76将网络目的地与IFC60的特定下一跳和相应端口相关联。
图4所示的路由器50的架构仅为了示例性目的,并且不应限于这种架构。在其他示例中,路由器50可以以各种方式配置。在一个示例中,控制单元54的某个功能可以分布在IFC60内。控制单元54可以仅以软件或硬件实现,或者可以被实现为软件、硬件或固件的组合。例如,控制单元54可以包括执行软件指令的一个或多个处理器。在该示例中,控制单元54的各种软件模块可以包括存储在诸如计算机存储器或硬盘等计算机可读介质上的可执行指令。
根据本公开的技术,路由器50被配置为基于与路由器50以及PIM域内的任何其他路由器相关联的多播流限制来执行多播流优先化。在图4的示例中,路由引擎56包括优先级单元78和优先级表80。在图4的示例中,路由器50包括优先级单元78,其被配置为确定是否已经达到多播流限制,如果达到,则用较高优先级的流抢占较低优先级的流。如果在多播状态信息64中安装了最大数量的多播流,则与当前安装的流相比,在接收到较高优先级流的PIM加入时,优先级单元78将PIM状态信息64中的当前安装的流中的较低优先级的流替换为接收的较高优先级流。
路由器50的优先级单元78被配置为从优先级表80(在PIM域内针对所有多播流利用优先级值进行预编程)中或从所接收到的多播流的PIM加入消息中获知分配给PIM域内的一个或多个多播流的优先级值。例如,每个多播流的优先级值可以由网络管理员使用CLI74经由命令行配置或由集中式控制器经由应用程序编程接口(API)预先编程到路由器50上的优先级表80内。存储在优先级表80中的每个优先级值可以被映射到PIM域内的相应一个多播流的唯一多播组地址中。然后,路由引擎56可以将这组优先级值存储在优先级表80中。
根据本公开的技术,多播流的优先级值在PIM域中的所有路由器是已知并是一致的。路由器可以根据下面描述的任何示例方法来了解多播流的优先级值。
在第一示例方法中,PIM域中的所有路由器被预编程具有所有多播流的优先级值。多播流的优先级值可由管理员经由CLI 74配置,或由集中式控制器编程配置。在本示例中,管理员或控制器需要访问PIM域中的所有路由器,并为所有多播流配置或编程优先级值。在优先级由管理员配置的情况下,可以通过利用现有的策略配置来映射具有几组预设的优先级值的各组多播流,或者引入新的一组配置来配置具有优先级的流的映射,来进行配置。在控制器对优先级进行编程的情况下,可以引入一组新的API来编程每个多播流的优先级值。
这种方法的一个潜在问题是管理员或控制器需要访问PIM域中的所有路由器。这在网络相对较小并且包含在相同地理位置的情况下是可能的,但是随着网络尺寸的增大并且跨地域蔓延,则可能变得更加复杂。
在第二示例方法中,优先级值作为新的加入属性承载在PIM加入消息中。在该示例中,经由上述第一示例方法用优先级值仅配置或编程最后一跳路由器。然后,最后一跳路由器传播嵌入在PIM加入消息承载的PIM加入属性类型长度值(TLV)中的优先级,如下面参照图5和图6更详细地描述的。只要接收路由器了解新的PIM加入属性,则接收路由就可以提取与所请求的多播流相关联的优先级值,并根据优先级值处理该加入。在不同LHR上的同一流的优先级值不同的情况下,从这两个LHR接收同一流的PIM加入消息的路由器可以确定该同一多播流的接收优先级的最高值,并且仅传播具有最高优先级值的请求。
为了使第二示例方法通过MVPN核心工作,PIM加入属性(承载在PIM加入消息中)中承载的优先级值可以在MVPN路由的扩展的团体属性内跨MVPN核心进行传输。例如,可以引入新的团体来承载每个多播流的优先级值,如下面在图7更详细地描述的。
在第三示例方法中,PIM域中所有多播流的优先级值仅在RP或控制器路由器中预先编程。多播流的优先级值可由管理员经由CLI 74配置,或由集中式控制器进行编程。该示例方法仅适用于PIM ASM模式。在PIM ASM模式中,RP路由器是所有多播加入的根,并存储PIM域中所有多播流的信息。因此,RP路由器也可以用作控制中心点,以通过应用关联的多播流限制并且通过配置策略将多播流映射到优先级值中,来为PIM域中的所有多播流执行多播流优先化。由于RP路由器是所有多播流的根,因此RP路由器可以确保PIM域的优先级值的一致性。
当在RP路由器上接收和已安装的初始流是较高优先级流时,该第三示例方法可能最有效。在这种情况下,一旦RP路由器耗尽其多播流限制,任何进一步较低优先级的流将被RP路由器拒绝,并且任何下游路由器甚至不知道较低优先级的流。在RP路由器当前安装较低优先级流的情况下,一旦路由器已经耗尽其多播流限制,并且在接收到较高优先级流时,RP路由器抢占较低优先级流。然而,在这种情况下,下游路由器已经安装了先前较低优先级的流。然后,在安装较高优先级流之前,较低优先级的流将需要在下游路由器处的多播状态表中超时。
图5是示出具有嵌入到编码源地址的PIM加入属性中的多播流优先级值的PIM加入消息80的示例格式的概念图,例如,多播组1 82的任何编码加入源84A-84N或多播组r 88的任何编码加入源86A-86M。在Boers,A.等人的“Protocol Independent Multicast(PIM)Join Attribute Format”,IETF RFC 5384,2008中更详细地描述了PIM加入属性,其全部内容通过引用并入本文。
图6是示出图5的编码源地址84A的示例格式的概念图,其包括PIM加入属性94A-94B,该PIM加入属性94A-94B用于承载具有源地址92的多播流的优先级值。默认PIM源编码不具有包括属性字段的任何选项。本公开的技术使用引入新的源编码类型90的编码源地址84A,其中,PIM加入属性94A-94B被格式化为TLV。
具有该消息格式的新属性类型可以引入并且用于承载具有源地址92的每个多播流的优先级值映射。该信息可以与PIM加入消息一起被携带到可以检索和存储每个多播流的优先级值映射的上游路由器。只要PIM域中的所有路由器了解具有新的源编码类型90的PIM加入,则该属性可以传播到所有路由器。
图7是示出BGP MVPN路由(用于传播在PIM加入消息中所包含的多播流的优先级值)的团体属性96的示例格式的概念图。为了使上述第二种方法通过图3的MVPN核心34工作,可以经由MVPN路由中的团体属性96传输来自PIM加入消息的优先级值。可以引入团体属性96,来承载每个多播流的优先级值。
在BGP中,每个BGP路由都有一个扩展团体属性,用于传输与该路由相关或有关的任何BGP或非BGP特定信息。在Sangli,S.等人的“BGP Extended Communities Attribute”IETF RFC 4360,2006中,更详细地描述BGP扩展团体属性,其全部内容通过引用并入本文。在Rosen,E.等人的“IANA Registries for BGP Extended Communities”IETF RFC 7153,2014中,定义现有扩展团体的一些示例,其全部内容通过引用并入本文。上述MVPN类型6和类型7路由承载一些扩展团体,例如,NOEXPORT和NOADVERTISE。
根据所公开的技术,多播流优先级值也可以使用MVPN路由上的扩展团体属性96通过BGP传输到远程路由器。由于该值仅适用于多播,所以可以使用传递性不透明(transitive opaque)的扩展团体属性,其格式如图7所示。扩展团体属性96包括新子类型98,其可以是具有当前未被任何其他子类型使用的唯一值(例如,0x0E)的多播流优先级,并且Value字段100可以包括与PIM加入条目相关联的实际优先级值。
在该示例中,从来自下游路由器的PIM加入消息承载的PIM加入属性中提取的多播流优先级值可以被放置到扩展团体属性96中。扩展团体属性96可以附属于(attached to)相应的MVPN路由类型并通过BGP传输到远程路由器,其中,优先级值可以从扩展团体属性96检索到并且用于确定哪个多播流是优选的。
图8是示出根据本公开的技术的在具有多播流限制的PIM网络中执行多播流优先化的示例操作的流程图。此处参考图4的路由器50描述示例性操作。在其他示例中,可以由图1A-1B的计算机网络10内的路由器20中的任何一个、图2的计算机网络22内的RP 24和路由器30中的任何一个、或者图3的计算机网络32内的路由器40中的任何一个执行操作。
路由器50接收指示PIM域内的至少一个所请求的多播流的PIM加入消息(100)。PIM加入消息可以通过所请求的多播流的唯一多播组地址来指示所请求的多播流。PIM或多播域可以包括使用相同或至少部分重叠的多播路由来传输多播业务的所有源和所有接收器。在一些示例中,PIM或多播域可以由OSPF区域或ASBR边界来定义。通常,PIM或多播域不会跨越唯一地识别互联网内的自治系统的不同ASN。
响应于接收到PIM加入消息,路由器50的路由引擎56确定多播状态表64中的多个安装的多播流是否已经达到与路由器50相关联的多播流限制(102)。与路由器相关联的多播流限制可能是在PIM域内的所有路由器上施加的全网络多播流限制。作为一个示例,多播流限制可以设置为200个多播流。在其他示例中,多播流限制可以大于或小于200个多播流。在还没有达到多播流限制(NO分支102)的情况下,路由引擎56在多播状态表64中安装所请求的多播流(104)。
在达到多播流限制(YES分支102)的情况下,路由器50的优先级单元78将所请求的多播流的优先级值与多播状态表64中的一个已安装的多播流的优先级值进行比较(106)。为了确定所请求的多播流的优先级值,优先级单元78可以从接收的PIM加入消息或从存储在路由器50上的优先级表80中提取优先级单元。
在一个示例中,所接收的PIM加入消息具有源编码类型,其包括用于承载所请求的多播流的优先级值的属性字段,如上面在图5和图6更详细地描述的。在该示例中,优先级单元78从所接收到的PIM加入消息中使用的新的源编码类型的PIM加入属性中提取所请求的多播流的优先级值。
在另一示例中,路由器50可以通过在PIM域内的多播流的优先级值预编程,而不是接收PIM加入消息中所请求的多播流的优先级值。例如,路由引擎56可以经由CLI 74从管理员处或经由API从集中控制器处接收PIM域内的多播流的一组优先级值。可以将包含在这组优先级值中的每个优先级值映射到PIM域内的相应的一个多播流的唯一多播组地址中。路由引擎56然后可以将这组优先级值存储在优先级表80中。在该示例中,优先级单元78将所请求的多播流的唯一多播组地址用作优先级表80的索引,来从优先级表80检索所请求的多播流的优先级值。
为了在所请求的多播流的优先级值与已安装的多播流的优先级值之间进行比较,优先级单元78可以首先分析多播状态表64中的每个已安装的多播流,以识别关联的优先级值中的最低的一个。在一个示例中,对于每个已安装的多播流,优先级单元78可以在优先级表80中查找其相关联的优先级值,并且比较或排序所安装的多播流的优先级值,以识别最低的一个优先级值。在另一示例中,多播状态表64可以包括指示哪个已安装的多播流具有最低优先级值,或者可以包括每个已安装的多播流的实际优先级值。
在一些其他示例中,优先级单元78可以将所请求的多播流的优先级值与多播状态表64中已安装的多播流的每个优先级值进行比较,而非首先识别最低优先级值并然后进行比较。优先级单元78可以在识别出低于所请求的多播流的优先级值的一个已安装的多播流的优先级值时停止进行比较。然而,在这种情况下,较低优先级值不一定是所安装的多播流的最低优先级值。
在所请求的多播流的优先级值低于或等于一个已安装的多播流的优先级值的情况下(否分支108),路由引擎56阻止所请求的多播流(110),并且不修改多播状态表64。如果一个已安装的多播流的优先级值不是所安装的多播流的最低优先级值,则优先级单元78可以在请求的多播流的优先级值与在多播状态表64中的另一已安装的多播流的优先级值之间进行另一比较(106)。
在所请求的多播流的优先级值高于一个已安装的多播流的优先级值的情况下(YES分支108),路由引擎56从多播状态表64中删除该已安装的多播流(112)。路由引擎56然后将所请求的多播流安装在多播状态表64的可用条目中(114)。路由引擎56还将所请求的多播流的多播路由安装在路由器50的转发引擎58上的转发信息76内。路由器50的转发引擎58然后可以根据转发信息76中的已安装的多播路由转发所接收到的、所请求的多播流的多播业务。
在接收到所请求的多播流的PIM加入消息之后,路由器50可以根据路由器50的类型或其中包括路由器50的网络的类型来执行不同的操作。
在一个示例中,路由器50是HLR,其连接到有兴趣接收所请求的多播流的接收器。例如,LHR 50可以与图1A-1B的R3 20C或R4 20D中的一个、图2的R3 30C或R4 30D中的一个、或图3的R4 40D或R6 40F中的一个基本上相似地操作。根据本公开的一些示例,LHR 50用PIM域内的多播流的一组优先级值进行预编程,这组优先级值存储在优先级表80中。在这种情况下,由LHR 50接收的PIM加入消息可能不包括所请求的多播流的优先级值。在接收到PIM加入消息(100)时,LHR 50根据优先级表80确定所请求的多播流的优先级值,并进行上述比较(106)。
基于在多播流表64中安装所请求的多播流(114),LHR50向上游相邻路由器发送指示所请求的多播流和所请求的多播流的优先级值的新PIM加入消息。由LHR 50创建的新的PIM加入消息可以具有源编码类型,该类型包括用于传送所请求的多播流的优先级值的属性字段。在以上示例中,只有PIM域中的LHR可以用多播流的这组优先级值进行预编程,并且所请求的多播流的优先级值可以经由新的PIM加入消息传播到上游路由器。
在另一示例中,路由器50是PIM ASM网络中的RP路由器。例如,RP 50可以与图2的RP 24操作基本上相似地操作。根据本公开的一些示例,RP 50用PIM域内的多播流的一组优先级值预编程,这组优先级值存储在优先级表80中。在这种情况下,由于RP 50是所有多播加入的根,并存储网络中所有多播流的信息,所以RP 50也被配置为对网络中的所有多播流执行多播流优先化。在接收到PIM加入消息(100)时,RP 50根据优先级表80确定所请求的多播流的优先级值,并进行上述比较(106)。
基于从多播状态表64中删除一个已安装的多播流(112),RP 50向被删除的多播流的源发送PIM删除消息。通过向源发送PIM删除消息,RP 50停止从源接收已删除的多播流的业务,从而停止将已删除的多播流的业务转发到下游路由器。以这种方式,先前已安装在下游路由器上的已删除的多播流将超时,并从下游路由器的多播状态表中删除。
基于在多播流表64中安装所请求的多播流(114),RP 50向所请求的多播流的源传播PIM加入消息。通过向源发送PIM加入消息,RP 50将开始从源接收所请求的多播流的业务,从而开始将所请求的多播流的业务转发到感兴趣的下游路由器。以这种方式,一旦已删除的多播流超时并从下游路由器中删除,则下游路由器将在其多播状态表中安装所请求的多播流,并开始将所请求的多播流的业务转发给感兴趣的接收器。在上述示例中,仅PIM域中的RP可以用多播流的这组优先级值预编程,并且已安装的多播流可以传播到下游路由器。
在额外示例中,路由器50是包括在具有一个或多个远程PE路由器的MVPN中的PE路由器。例如,PE 50可以与图3的MVPN核心34上的R3 40C或R5 40E中的一个基本上相似地操作。在接收到PIM加入消息(100)时,PE 50从优先级表80中或从接收到的PIM加入消息中确定所请求的多播流的优先级,并进行上述比较(106)。
基于在多播流表64中安装所请求的多播流(114),PE 50将接收到的PIM加入消息转换成具有扩展团体属性(用于承载所请求的多播流的优先级值)的MVPN加入路由,如上面在图7更详细地描述的。然后,PE 50经由BGP将具有扩展团体属性的MVPN加入路由发送给至少一个远程PE路由器。在上述示例中,LHR用多播流的这组优先级值预先编程,或者PIM域中的所有路由器都用多播流的这组优先级值预先编程。在任一情况下,MVPN核心上的PE路由器经由MVPN加入路由的新扩展团体属性,跨MVPN核心将请求的多播流的优先级值传播到远程上游路由器。
本公开中描述的技术可以至少部分地在硬件、软件、固件或其任何组合中实现。例如,所描述的技术的各个方面可以在一个或多个处理器内实现,包括一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或任何其他等效的集成或离散逻辑电路以及这些组件的任何组合。术语“处理器”或“处理电路”通常可以指单独的或与其他逻辑电路或任何其他等效电路组合的前述逻辑电路中的任何一种。包括硬件的控制单元还可以执行本公开的一种或多种技术。
这种硬件、软件和固件可以在相同设备内或在单独的设备内实现,以支持本公开中描述的各种操作和功能。此外,所描述的单元、模块或组件中的任何一个可以共同或单独实现为离散但可互操作的逻辑设备。将不同特征描述为模块或单元,旨在突出显示不同的功能方面,并不一定意味着这种模块或单元必须由单独的硬件或软件组件来实现。相反,与一个或多个模块或单元相关联的功能可以由单独的硬件或软件组件执行,或者集成在公共或单独的硬件或软件组件内。
本公开中描述的技术也可以在包含指令的计算机可读介质(例如,计算机可读存储介质)中体现或编码。在计算机可读介质中嵌入或编码的指令可以使可编程处理器或其他处理器执行该方法,例如,当执行指令时。计算机可读介质可以包括非暂时性计算机可读存储介质和瞬时通信介质。有形和非暂时性的计算机可读存储介质可以包括随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存、硬盘、CD-ROM、软盘、盒式磁带、磁性介质、光学介质、或另一种计算机可读存储介质。应当理解,术语“计算机可读存储介质”是指物理存储介质,而不是信号、载波或其他瞬时介质。
已经描述了本发明的各个方面。这些和其他方面在以下权利要求的范围内。

Claims (21)

1.一种方法,包括:
由路由器接收指示至少一个所请求的多播流的协议无关多播PIM加入消息;
由所述路由器确定在所述路由器处存储的多播状态表中的已安装的多播流的数量是否达到与所述路由器相关联的多播流限制;
基于达到所述多播流限制,由所述路由器将所请求的多播流的优先级值与所述多播状态表中的一个已安装的多播流的优先级值进行比较;并且
基于所请求的多播流的优先级值高于所述一个已安装的多播流的优先级值,从所述多播状态表中删除所述一个已安装的多播流,并将所请求的多播流安装在所述多播状态表中。
2.根据权利要求1所述的方法,其中,所述一个已安装的多播流的优先级值是所述多播状态表中的已安装的多播流的最低优先级值。
3.根据权利要求1所述的方法,还包括:
接收PIM域内的多播流的一组优先级值,其中,这组优先级值中的每个优先级值被映射到所述PIM域内的一个多播流的唯一多播组地址,并且其中,这组优先级值包括所请求的多播流的优先级值;并且
将这组优先级值存储在所述路由器处的优先级表中。
4.根据权利要求1所述的方法,其中,所接收的PIM加入消息具有源编码类型,所述源编码类型包括用于承载所请求的多播流的优先级值的属性字段。
5.根据权利要求1所述的方法,其中,所述路由器包括连接到有兴趣接收所请求的多播流的接收器的最后一跳路由器LHR,并且其中,用所述PIM域内的多播流的一组优先级值编程所述LHR处的优先级表,所述方法还包括:
根据所述优先级表确定所请求的多播流的优先级值;并且
由所述LHR向上游相邻路由器发送指示所请求的多播流的另一PIM加入消息,所述另一PIM加入消息具有源编码类型,所述源编码类型包括用于承载所请求的多播流的优先级值的属性字段。
6.根据权利要求1所述的方法,其中,所述路由器包括在PIM任意源多播模式中操作的汇聚点RP路由器,并且其中,用PIM域内的多播流的一组优先级值编程所述RP路由器处的优先级表,所述方法还包括:
根据所述优先级表确定所请求的多播流的优先级值;
基于从所述多播状态表中删除所述一个已安装的多播流,向被删除所述一个已安装的多播流的源发送PIM删除消息;并且
基于在所述多播状态表中安装所请求的多播流,向所请求的多播流的源传播所述PIM加入消息。
7.根据权利要求1所述的方法,其中,所述路由器是提供商边缘PE路由器,所述PE路由器被包括在具有一个或多个远程PE路由器的多播虚拟专用网络MVPN中,所述方法还包括:
将所述PIM加入消息转换成具有扩展团体属性的MVPN加入路由,所述扩展团体属性用于承载所请求的多播流的优先级值;并且
经由边界网关协议BGP将具有所述扩展团体属性的所述MVPN加入路由发送到至少一个远程PE路由器。
8.根据权利要求1所述的方法,其中,基于尚未到达所述多播流限制,在所述多播状态表中安装所请求的多播流。
9.根据权利要求1所述的方法,其中,基于所请求的多播流的优先级值低于所述一个已安装的多播流的优先级值,阻止所请求的多播流。
10.根据权利要求1-9中任一项所述的方法,还包括将所请求的多播流的多播路由安装到所述路由器的转发引擎上的转发信息内,并根据已安装的多播路由转发所请求的多播流的多播业务。
11.一种路由器,包括:
存储器,被配置为存储包括一个或多个已安装的多播流的多播状态表;以及
一个或多个处理器,与所述存储器通信,并且被配置为:
接收指示至少一个所请求的多播流的协议无关多播PIM加入消息;
确定在所述多播状态表中的已安装的多播流的数量是否达到与所述路由器相关联的多播流限制;
基于达到所述多播流限制,将所请求的多播流的优先级值与一个已安装的多播流的优先级值进行比较;并且
基于所请求的多播流的优先级值高于所述一个已安装的多播流的优先级值,从多播状态表中删除所述一个已安装的多播流,并将所请求的多播流安装在所述多播状态表中。
12.根据权利要求11所述的路由器,其中,所述一个已安装的多播流的优先级值是所述多播状态表中的已安装的多播流的最低优先级值。
13.根据权利要求11所述的路由器,其中,所述一个或多个处理器被配置为:
接收PIM域内的多播流的一组优先级值,其中,这组优先级值中的每个优先级值被映射到所述PIM域内的一个多播流的唯一多播组地址,并且其中,这组优先级值包括所请求的多播流的优先级值;并且
将这组优先级值存储在所述存储器中的优先级表中。
14.根据权利要求11所述的路由器,其中,所接收的PIM加入消息具有源编码类型,所述源编码类型包括用于承载所请求的多播流的优先级值的属性字段。
15.根据权利要求11所述的路由器,其中,所述路由器包括连接到有兴趣接收所请求的多播流的接收器的最后一跳路由器LHR,其中,用PIM域内的多播流的一组优先级值编程包含在所述存储器中的优先级表,并且其中,所述一个或多个处理器被配置为:
根据所述优先级表确定所请求的多播流的优先级值;并且
向上游相邻路由器发送指示所请求的多播流的另一PIM加入消息,所述另一PIM加入消息具有源编码类型,所述源编码类型包括用于承载所请求的多播流的优先级值的属性字段。
16.根据权利要求11所述的路由器,其中,所述路由器包括在PIM任意源多播ASM模式中操作的汇聚点RP路由器,其中,用PIM域内的多播流的一组优先级值编程包含在所述存储器中的优先级表,并且其中所述一个或多个处理器被配置为:
根据所述优先级表确定所请求的多播流的优先级值;
基于从所述多播状态表中删除所述一个已安装的多播流,向被删除所述一个已安装的多播流的源发送PIM删除消息;并且
基于在所述多播状态表中安装所请求的多播流,向所请求的多播流的源传播所述PIM加入消息。
17.根据权利要求11所述的路由器,其中,所述路由器是提供商边缘PE路由器,所述PE路由器包含在具有一个或多个远程PE路由器的多播虚拟专用网络MVPN中,并且其中,所述一个或多个处理器被配置为:
将所述PIM加入消息转换成具有扩展团体属性的MVPN加入路由,所述扩展团体属性用于承载所请求的多播流的优先级值;并且
经由边界网关协议BGP将具有所述扩展团体属性的所述MVPN加入路由发送到至少一个远程PE路由器。
18.根据权利要求11所述的路由器,其中,所述一个或多个处理器被配置为基于尚未到达所述多播流限制,在所述多播状态表中安装所请求的多播流。
19.根据权利要求11所述的路由器,其中,所述一个或多个处理器被配置为基于所请求的多播流的优先级值低于所述一个已安装的多播流的优先级值,阻止所请求的多播流。
20.根据权利要求11-20中任一项所述的路由器,其中,所述一个或多个处理器被配置为将所请求的多播流的多播路由安装到所述路由器的转发引擎上的转发信息内,并根据已安装的多播路由转发所请求的多播流的多播业务。
21.一种存储指令的非暂时的计算机可读存储介质,所述指令在执行时使路由器的一个或多个处理器:
接收指示至少一个所请求的多播流的协议无关多播PIM加入消息;
确定在路由器处存储的多播状态表中的已安装的多播流的数量是否达到与所述路由器相关联的多播流限制;
基于达到所述多播流限制,将所请求的多播流的优先级值与一个已安装的多播流的优先级值进行比较;并且
基于所请求的多播流的优先级值高于所述一个已安装的多播流的优先级值,从多播状态表中删除所述一个已安装的多播流,并将所请求的多播流安装在所述多播状态表中。
CN201710908404.4A 2016-12-30 2017-09-29 多播流优先化的方法、路由器和存储介质 Active CN108270766B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/396,329 2016-12-30
US15/396,329 US10999090B2 (en) 2016-12-30 2016-12-30 Multicast flow prioritization

Publications (2)

Publication Number Publication Date
CN108270766A true CN108270766A (zh) 2018-07-10
CN108270766B CN108270766B (zh) 2021-04-20

Family

ID=60190719

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710908404.4A Active CN108270766B (zh) 2016-12-30 2017-09-29 多播流优先化的方法、路由器和存储介质

Country Status (3)

Country Link
US (1) US10999090B2 (zh)
EP (1) EP3343833B1 (zh)
CN (1) CN108270766B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109005126B (zh) * 2017-06-06 2020-06-02 华为技术有限公司 数据流的处理方法、设备和计算机可读存储介质
US10511548B2 (en) * 2017-06-22 2019-12-17 Nicira, Inc. Multicast packet handling based on control information in software-defined networking (SDN) environment
US11736406B2 (en) * 2017-11-30 2023-08-22 Comcast Cable Communications, Llc Assured related packet transmission, delivery and processing
US11281837B2 (en) * 2017-12-18 2022-03-22 Intel Corporation Router-based transaction routing for toggle reduction
US11057415B1 (en) * 2021-02-09 2021-07-06 Lookingglass Cyber Solutions, Inc. Systems and methods for dynamic zone protection of networks
CN115051951B (zh) * 2021-02-26 2024-04-19 中国电信股份有限公司 业务流调度方法、集中控制器以及存储介质
US11985004B2 (en) * 2022-01-12 2024-05-14 Hewlett Packard Enterprise Development Lp Multicast WAN optimization in large scale branch deployments using a central cloud-based service

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6690939B1 (en) * 2000-09-18 2004-02-10 Telefonaktiebolaget Lm Ericsson (Publ) Increased radio communication capacity using transmit power balancing
CN101247249A (zh) * 2007-02-15 2008-08-20 索尼株式会社 多播系统、客户设备、上路由器控制器、显示内容的方法
CN102075417A (zh) * 2010-09-30 2011-05-25 杭州华三通信技术有限公司 组播剪枝方法及协议无关组播路由器、二层交换机
US20150139228A1 (en) * 2013-09-17 2015-05-21 Cisco Technology, Inc. Overlay Signaling For Bit Indexed Explicit Replication
CN104662837A (zh) * 2012-06-29 2015-05-27 华为技术有限公司 为基于mRSVP-TE的组播虚拟专用网提供PIM-SM支持
US20160241911A1 (en) * 2015-02-13 2016-08-18 Telefonaktiebolaget L M Ericsson (Publ) IPTV Targeted Messages
CN105915458A (zh) * 2014-11-21 2016-08-31 阿瓦亚公司 用于执行最短路径桥接-协议无关多播交互的方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9418040B2 (en) * 2005-07-07 2016-08-16 Sciencelogic, Inc. Dynamically deployable self configuring distributed network management system
US8068422B2 (en) * 2005-07-14 2011-11-29 Telefonaktiebolaget L M Ericsson (Publ) Arrangement and method relating to handling of IP traffic
US8144628B2 (en) * 2005-12-13 2012-03-27 Cisco Technology, Inc. Acknowledgement-based rerouting of multicast traffic
US8493846B2 (en) * 2009-09-30 2013-07-23 At&T Intellectual Property I, L.P. Robust multicast broadcasting
US9225633B2 (en) * 2011-10-31 2015-12-29 At&T Intellectual Property I, L.P. Methods, apparatus, and articles of manufacture to provide a multicast virtual private network (MVPN)
US9203631B2 (en) * 2012-06-29 2015-12-01 Futurewei Technologies, Inc. Multicast distribution trees for mRSVP-TE based multicast virtual private networks
US9503279B2 (en) * 2014-04-08 2016-11-22 Alcatel Lucent Network device with service and client routing elements configured to support any-source multicast extranets
US9774461B2 (en) * 2015-10-21 2017-09-26 Oracle International Corporation Network switch with dynamic multicast queues
US10051022B2 (en) * 2016-03-30 2018-08-14 Juniper Networks, Inc. Hot root standby support for multicast
US20180083876A1 (en) * 2016-09-20 2018-03-22 Radisys Corporation Optimization of multi-table lookups for software-defined networking systems

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6690939B1 (en) * 2000-09-18 2004-02-10 Telefonaktiebolaget Lm Ericsson (Publ) Increased radio communication capacity using transmit power balancing
CN101247249A (zh) * 2007-02-15 2008-08-20 索尼株式会社 多播系统、客户设备、上路由器控制器、显示内容的方法
CN102075417A (zh) * 2010-09-30 2011-05-25 杭州华三通信技术有限公司 组播剪枝方法及协议无关组播路由器、二层交换机
CN104662837A (zh) * 2012-06-29 2015-05-27 华为技术有限公司 为基于mRSVP-TE的组播虚拟专用网提供PIM-SM支持
US20150139228A1 (en) * 2013-09-17 2015-05-21 Cisco Technology, Inc. Overlay Signaling For Bit Indexed Explicit Replication
CN105915458A (zh) * 2014-11-21 2016-08-31 阿瓦亚公司 用于执行最短路径桥接-协议无关多播交互的方法
US20160241911A1 (en) * 2015-02-13 2016-08-18 Telefonaktiebolaget L M Ericsson (Publ) IPTV Targeted Messages

Also Published As

Publication number Publication date
EP3343833B1 (en) 2019-08-28
US10999090B2 (en) 2021-05-04
EP3343833A1 (en) 2018-07-04
US20180191515A1 (en) 2018-07-05
CN108270766B (zh) 2021-04-20

Similar Documents

Publication Publication Date Title
CN108270766A (zh) 多播流优先化
Aggarwal et al. BGP encodings and procedures for multicast in MPLS/BGP IP VPNs
US9602296B2 (en) Adaptive multicast network communications
US8571029B1 (en) Label switched path hierarchy for intra-area segments of inter-area point-to-multipoint label switched paths
US10051022B2 (en) Hot root standby support for multicast
US8953446B1 (en) Load balancing multicast join requests over interior and exterior BGP paths in a MVPN
US8638787B2 (en) Multicast hello on demand
CN108696440A (zh) 多重归宿evpn网络中的多播负载均衡
US20100329252A1 (en) Method and Apparatus for Enabling Multicast Route Leaking Between VRFs in Different VPNs
EP3965368B1 (en) Replication mode selection for multicast in evpn
CN113709034A (zh) 使用路由协议的定向信息分布中的位掩码路线目标
CN112543146A (zh) 基于控制平面的evpn优化子网间组播(oism)转发
CN110519163A (zh) 检测环网络中点对多点标签交换路径的出口
US20240137307A1 (en) Weighted multicast join load balance
CN106357541A (zh) 一种信息传递方法和装置
Chen et al. SoMR: A scalable distributed QoS multicast routing protocol
CN113630320B (zh) 计算机网络内创建隧道的方法、入口网络装置及存储介质
EP3913871B1 (en) Bitmask route target in targeted distribution of information using a routing protocol
US11582054B2 (en) Multicast source discovery protocol (MSDP) loop avoidance
WO2020244372A1 (zh) 一种实现组播的方法和装置
US8761171B1 (en) Reducing unnecessary upstream traffic in PIM-bidirectional mode
US11323364B2 (en) Ingress replication procedures to facilitate migration to segment routing technology in a computer network
US11991076B1 (en) Optimized MVPN route exchange in SD-WAN environments
Bartczak et al. Assuring quality of service for IP Multicast transmissions in ISP networks
RO127707A2 (ro) Metodă de rutare multicast în circuit închis

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: California, USA

Applicant after: Juniper Networks, Inc.

Address before: California, USA

Applicant before: Jungle network

GR01 Patent grant
GR01 Patent grant