CN114157597B - 经加权的多播加入负载平衡 - Google Patents

经加权的多播加入负载平衡 Download PDF

Info

Publication number
CN114157597B
CN114157597B CN202011240461.8A CN202011240461A CN114157597B CN 114157597 B CN114157597 B CN 114157597B CN 202011240461 A CN202011240461 A CN 202011240461A CN 114157597 B CN114157597 B CN 114157597B
Authority
CN
China
Prior art keywords
multicast
ingress
upstream
network device
network devices
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
Application number
CN202011240461.8A
Other languages
English (en)
Other versions
CN114157597A (zh
Inventor
V·K·恩
R·W·基布勒
A·P·J·马诺哈兰
H·布帕西
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
Original Assignee
Juniper 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 Juniper Networks Inc filed Critical Juniper Networks Inc
Priority to CN202410066713.1A priority Critical patent/CN117857431A/zh
Publication of CN114157597A publication Critical patent/CN114157597A/zh
Application granted granted Critical
Publication of CN114157597B publication Critical patent/CN114157597B/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
    • 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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • 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
    • 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/1854Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with non-centralised forwarding system, e.g. chaincast
    • 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/1863Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
    • H04L12/1877Measures taken prior to transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • 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]

Abstract

本公开的实施例涉及经加权的多播加入负载平衡。在一些示例中,方法包括:由针对网络的出口网络设备从针对网络的多个入口网络设备中的每个入口网络设备接收多个消息,其中多个消息中的每个消息指定多播源、多播组以及针对多播源和多播组的多播业务的上游多播跳权重值;由出口网络设备基于由所接收的多个消息指定的上游多播跳权重值,选择多个入口网络设备中的、向其发送针对多播源和多播组的多个多播加入消息中的多播加入消息的一个入口网络设备;以及由出口网络设备将多播加入消息发送到多个入口网络设备中的所选择的一个入口网络设备。

Description

经加权的多播加入负载平衡
技术领域
本公开涉及计算机网络,并且更具体地涉及多播业务在计算机网络之上的分发。
背景技术
计算机网络是交换数据和共享资源的互连计算设备的集合。在基于分组的网络中,计算设备通过将数据划分为被称为分组(packet)的小块来传送数据。网络内诸如路由器和交换机的某些设备维持路由和/或转发描述通过网络的路径的信息。以这种方式,分组可以跨网络单独地从源设备被传输到目的地设备。目的地设备从分组中提取数据,并且将数据组装为其原始形式。将数据划分为分组使得源设备能够仅重新发送在传输期间可能丢失的那些单独分组。
计算机网络的示例包括企业网络、分支网络、服务提供方网络、家庭网络、虚拟专用网络(VPN)、局域网(LAN)、虚拟LAN(VLAN)等。在任何情况下,计算机网络可以使得位于远程的源和接收方共享数据。在一些情况下,计算机网络可以被配置为支持多播业务(traffic),诸如互联网协议电视(IPTV)、桌面会议、公司广播、音乐和视频web广播以及其他形式的多媒体内容。例如,计算机网络可以利用与协议无关的多播(PIM)作为多播路由协议来构建通过计算机网络的分发树,以用于在针对特定多播组的客户站点内的源和接收方之间多播业务的传输。PIM可以在多个不同的模式下操作,包括源特定多播(SSM)模式或任何源多播(ASM)模式下的密集模式(DM)、稀疏模式(SM),以及双向(BIDIR)模式。
另外,计算机网络可以被配置为支持多播VPN(MVPN),以使得互联网协议(IP)多播业务能够在客户站点内的源和接收方之间行进。对于一个或多个边界网关协议(BGP)MVPN,被耦合到客户站点的提供方边缘(PE)路由器可以在概念上构建多播树,以借助公共网络来承载来自多播源的多播业务,使得客户站点接收多播业务,就像客户站点被直接附接到与源相同的专用网络一样。
发明内容
总体而言,本公开描述了用于灵活地分发多播加入消息以支持自定义地传递多播业务的技术。技术允许网络的入口网络设备向出口网络设备发送上游权重通告(advertisement),出口网络设备然后使用上游权重通告而在上游入口网络设备之间灵活地分发用于多播源和组的多播加入消息。出口网络设备可以从入口网络设备中的每个入口网络设备接收消息,消息针对对应的入口网络设备指定上游多播跳(UMH)权重值。出口网络设备基于由所接收的消息指定的上游多播跳权重值,选择入口网络设备中的一个入口网络设备,向一个入口网络设备发送针对多播源和多播组的多个多播加入消息中的多播加入消息。
作为一个示例,本公开限定了被称为“UMH权重”的新的传递性BGP扩展共同体(community)属性,以指示BGP-MVPN PE路由器的上游多播跳权重。UMH权重共同体属性可以被包括在入口网络设备发送的MVPN自动发现(类型1)消息中。作为一个示例,本公开阐述了对BGP MVPN加入负载平衡算法的扩展,以灵活地分发MVPN加入消息。在其他示例中,诸如在本机PIM部署中而不是BGP MVPN中,UMH权重值可以是PIM消息中的字段。在一些示例中,出口网络设备使用所接收的入口网络设备的上游多播跳权重值,来确定要发送到每个入口网络设备的多播加入消息的比例。
在一个示例方面,方法包括:由针对网络的出口网络设备从针对网络的多个入口网络设备中的每个入口网络设备接收消息,其中消息中的每个消息指定多播源、多播组以及针对多播源和多播组的多播业务的上游多播跳权重值;由出口网络设备基于由所接收的消息指定的上游多播跳权重值,选择多个入口网络设备中的一个入口网络设备,向一个入口网络设备发送针对多播源和多播组的多个多播加入消息中的一个多播加入消息;以及由出口网络设备将多播加入消息发送到多个入口网络设备中的所选择的一个入口网络设备。
在另一示例中,网络设备包括存储器;以及一个或多个处理器,一个或多个处理器在电路中被实现并被配置为:从针对网络的多个入口网络设备中的每个入口网络设备接收消息,其中消息中的每个消息指定多播源、多播组以及针对多播源和多播组的多播业务的上游多播跳权重值;基于由所接收的消息指定的上游多播跳权重值,选择多个入口网络设备中的一个入口网络设备,向一个入口网络设备发送针对多播源和多播组的多个多播加入消息中的一个多播加入消息;以及将多播加入消息发送到多个入口网络设备中的所选择的一个入口网络设备。
在又一示例中,方法包括:由针对网络的入口网络设备基于入口网络设备与客户边缘设备之间的上游接入带宽的量,确定针对多播源和多播组的多播业务的上游多播跳权重值,客户边缘设备位于入口网络设备与多播源之间;以及由入口网络设备向针对网络的一个或多个对等网络设备发送消息,消息指定针对多播业务的上游多播跳权重值,其中消息还指定了多播源和多播组。
在附图和以下描述中阐述了本公开的一个或多个示例的细节。根据说明书和附图以及根据权利要求书,本公开的其他特征、目的和优点将变得明显。
附图说明
图1至图4是图示了根据本公开的技术的各个方面的示例计算机网络的框图,示例计算机网络包括网络设备,网络设备被配置为在多播源与多播接收方之间传输多播业务。
图5是图示了被配置为根据本公开的技术进行操作的示例网络设备的框图。
图6是图示了根据本公开的技术的入口网络设备通告上游多播跳权重的示例操作的流程图。
图7是图示了根据本公开的技术的出口网络设备基于所接收的上游多播跳权重通告而选择性地发送加入消息的示例操作的流程图。
具体实施方式
图1是图示了根据本公开的技术的各方面的示例计算机网络2的框图,示例计算机网络2包括网络设备,网络设备被配置为在多播源16和多播接收方18之间传输多播业务。图1图示了根据本公开的技术的网络2,网络2具有被配置为使用上游权重通告来灵活地分发多播加入消息的网络设备。
网络2可以包括专用网络或诸如互联网的公共网络。例如,网络2可以是企业网络、园区网络、服务提供方网络、家庭网络、局域网(LAN)、虚拟局域网(VLAN)、虚拟专用网(VPN)或其他自治系统。在这些示例中的任一个中,位于远程的多播源16和多播接收方18可以经由网络10来共享数据。在作为企业网络的网络2的示例中,多播源16和多播接收方18中的每一个可以包括一个或多个服务器或位于单个办公室位置的不同区域中的员工计算机终端,或者可以包括公司的远程办公室位置。
在图1所示的示例中,多播源16为一个或多个多播组提供多播业务,并且多播接收方18可以从一个或多个多播组请求或订阅业务。多播源16在本文中也可以被称为“客户源(C源)”。多播接收方18可以是对接收某个多播组的多播业务感兴趣的互联网组管理协议(IGMP)主机。通常,IGMP是由主机和相邻路由器用来建立多播组成员的通信协议。在图1的示例中,IGMP在多播接收方18和客户边缘(CE)路由器22B之间操作。CE路由器22B可以被配置为使用IGMP来与多播接收方18通信。例如,多播接收方18发送用于加入多播组的IGMP加入请求30,以从多播源16接收多播业务。
网络2包括多个网络设备,多个网络设备包括经由CE路由器22A而全部被连接到多播源16的提供方边缘(PE)路由器20A、PE路由器20B和PE路由器20C。由于来自多播源16的多播业务可以通过多个入口PE路由器(PE路由器20A、20B和20C)到达核心网络10,多播源16因此被称为“多归属(multi-homed)”到核心网络10。PE路由器20A-20D(“PE路由器20”)在核心网络10的边缘上操作。
在一些情况下,CE路由器22B可以被称为连接到接收方18的最终跳路由器(LHR)。在一些示例中,接收方18通过诸如局域网(LAN)(例如,以太网LAN)的层2(L2)广播通信域而被连接到核心网络10,并且CE路由器22B可以通过相应的LAN接口而被物理地耦合到L2通信域。在一些情况下,CE路由器22A可以被称为连接到多播源16的第一跳路由器(FHR)。典型的网络拓扑包括核心网络10内的多个网络设备,但出于例示的目的,这些附加网络设备在图1中未被示出。
源16和接收方18中的每一个可以被包括在远程客户站点(未示出)中,远程客户站点可以是包括多个订户设备的局域网(LAN)或广域网(WAN),多个订户设备诸如台式计算机、膝上型电脑、工作站、PDA、无线设备、网络就绪设备、文件服务器、打印服务器或其他设备。远程站点可以被配置为支持多播业务,诸如,互联网协议电视(IPTV)、桌面会议、公司广播、音乐和视频web广播以及其他形式的多媒体内容。
在所示示例中,网络2包括核心网络10,核心网络10包括网络设备,网络设备使用诸如协议无关多播(PIM)和边界网关协议(BGP)的多播路由协议而借助网络10,在特定多播组的多播源16和多播接收方18之间路由多播业务。例如,网络10可以是多协议标签交换(MPLS)网络。在一些示例中,网络10可以包括一个或多个多播虚拟专用网络(MVPN),以使得多播业务能够在远程客户站点内的源和接收方(例如,源16和接收方18)之间行进。MVPN可以在网络10的PE路由器20之间被建立。如图所示,在由PE路由器20D发信号通知存在对多播源16感兴趣的接收方之后,PE路由器20A-20C可以向CE 22A发送PIM加入请求36,PIM加入请求36指示它们具有对多播源16感兴趣的(多个)接收方。PIM协议可以在多个不同的模式下操作,包括源特定多播(SSM)模式或任何源多播(ASM)模式下的密集模式(DM)、稀疏模式(SM)以及双向(BIDIR)模式。有关PIM协议的附加信息可以在Adams,A.等人的“ProtocolIndependent Multicast Version 2–Dense Mode Specification”RFC 3973,2005;Fenner,B.等人的“Protocol Independent Multicast-Sparse Mode(PIM-SM):ProtocolSpecification(Revised)”RFC 4601,2006;Holbrook,H.和B.Cain的“Source-SpecificMulticast for IP”IETF RFC4607,2006;以及Handley,M.等人的“BidirectionalProtocol Independent Multicast(BIDIRPIM)”IETF RFC 5015,2007中找到,其中每一个的全部内容通过引用并入本文。
核心网络10是包括单播上游多播跳(UMH)和选择性提供方隧道(在本文中也被称为“选择性隧道”)的网络。包容性提供方隧道(在本文中也被称为“包容性隧道”)可以在PE路由器20上被配置为使得不论PE路由器20是否具有感兴趣的收听方(接收方),朝向核心发送的任何多播分组将被针对该MVPN而连接到核心网络10的所有PE路由器20接收。即,当使用包容性提供方隧道时,不论接收方是否已明确发布加入多播源和多播组,入口PE设备均通过在所有隧道上转发业务,而将多播业务注入MVPN中。相比之下,选择性提供方隧道模式可以在PE路由器20上被配置为:使得由特定PE路由器发送的业务被传递到给定MVPN实例中已向感兴趣的接收方发信号通知的PE路由器的子集,而不是传递到MVPN实例中的所有PE路由器。
通常,核心网络10可以包括MVPN包容性提供方隧道作为单个多播分发树,MVPN包容性提供方隧道被配置为承载来自一个或多个MVPN的集合的所有多播业务。核心网络10可以备选地或附加地包括MVPN选择性提供方隧道作为单个多播分发树,MVPN选择性提供方隧道被配置为承载来自一个或多个MVPN的一个或多个多播组的集合的多播业务。在一个示例中,MVPN包容性隧道或选择性隧道可以使用PIM协议,借助核心网络10来建立。
参与BGP MVPN的PE路由器使用7个类型的BGP MVPN路由(消息),其中5个被用于自动发现,2个被用于在提供方边缘(PE)路由器之间进行C多播协议信息交换,BGP MVPN使用BGP控制平面。
例如,PE路由器20使用BGP,向其他PE路由器20通告其MVPN成员资格,并且PE路由器20交换BGP路由协议消息来通告用于控制网络2内的多播分发的各种类型的路由。
例如,在BGP MVPN中,MVPN类型1路由是自治系统内(AS)包容性提供方多播服务接口(I-PMSI)自动发现(AD)路由,该路由被参与MVPN的所有PE路由器发起。MVPN类型1路由包括路由类型指示符、始发路由器路由区别符(RD)和始发路由器回送地址。
MVPN类型2路由是由所有ASBR PE路由器发起的AS间I-PMSI AD路由。MVPN类型2路由包括路由类型指示符、始发路由器RD和始发ASBR的AS编号。
MVPN类型3路由是由发送方PE路由器(发起S-PMSI的发送方PE)发起的选择性提供方多播服务接口(S-PMSI)AD路由。MVPN类型3路由包括路由类型指示符、始发路由器RD、客户多播源地址(C-S)掩码(对于IPv4为32;对于IPv6为128)、使用S-PMSI的C-S、客户多播组地址(C-G)掩码(对于IPv4为32;对于IPv6为128)、使用S-PMSI的C-G以及始发路由器回送地址。
MVPN类型4路由是叶AD路由,叶AD路由由接收方PE路由器响应于接收到S-PMSI AD路由而发起,S-PMSI AD路由具有从发送方PE路由器设置的“需要叶信息”标志。MVPN类型4路由包括路由类型指示符、S-PMSI AD路由和始发路由器回送地址。
MVPN类型5路由是源活动AD路由,源活动AD路由被PE路由器发起,该PE路由器发现活动VPN多播源。MVPN类型5路由包括路由类型指示符、始发路由器RD、C-S掩码(对于IPv4为32;对于IPv6为128)、客户多播源地址、C-G掩码(对于IPv4为32;对于IPv6为128)、客户多播组地址。
MVPN类型6路由是共享树加入路由,该共享树加入路由被接收方PE路由器(从VPN接口接收(C-*,C-G)加入消息的PE)发起。MVPN类型6路由包括路由类型指示符、上游PE的RD(朝向客户集合点(C-RP))、上游PE的AS编号(朝向C-RP)、C-RP掩码(对于IPv4为32;对于IPv6为128)、客户集合点地址、C-G掩码(对于IPv4为32;对于IPv6为128)和客户多播组地址。
MVPN类型7路由是由接收方PE路由器(接收本地(C-S,C-G)加入消息的PE或已具有类型6路由并接收类型5路由的PE)发起的源树连接路由。MVPN类型7路由包括路由类型指示符、上游PE的RD(朝向C-S)、上游PE的AS编号(朝向C-S)、C-S掩码(对于IPv4为32;对于IPv6为128)、客户多播源地址、C-G掩码(对于IPv4为32;对于IPv6为128)以及客户多播组地址。
关于MVPN的附加信息可以在Rosen,E.等人的“Multicast in MPLS/BGP IP VPNs”RFC 6513,2012年2月以及Rosen,E.等人的“BGP Encodings and Procedures forMulticast in MPLS/BGP IP VPNs”RFC 6514,2012年2月中找到,其中每一个的全部内容通过引用并入本文。
在图1所示的拓扑中,PE路由器20D是到核心网络10的出口PE路由器,这是因为PE路由器20D从核心网络10接收多播业务并将多播业务转发到核心网络10外部的接收方。PE路由器20A、PE路由器20B和PE路由器20C是核心网络10的入口PE路由器,这是因为它们从外部核心网络10接收多播业务(由多播源16发起),并将其朝向接收方18转发到核心网络10中。在图1的示例中,多播源16(客户多播源)经由第一入口网络设备(入口PE路由器20A)、第二入口网络设备(入口PE路由器20B)和第三入口网络设备(入口PE路由器20C)被多归属到核心网络10。假设BGP MVPN被配置为在BGP MVPN共享树数据分发模式(有时被称为“集合点树最短路径树(RPT-SPT)模式”)下,在PE路由器20A、PE路由器20B、PE路由器20C和PE路由器20D上执行。PE路由器20D被配置有单播上游多播跳(UMH),使得PE路由器20D仅基于其单播算法来选择上游PE路由器。尽管在本文中被称为入口PE路由器,但是PE路由器20A-20C可以被配置为在其他网络上下文中作为出口路由器来操作。类似地,尽管在图1中被称为出口PE路由器,但是PE路由器20D可以被配置为在其他网络上下文中作为入口路由器来操作。
当PE路由器从CE路由器接收C-Join或C-Prune消息时,消息将特定多播流标识为属于源特定的树(S,G)或属于共享树(*,G)。术语“C-root”,即“客户-根(customer-root)”在本文中在源特定的树的情况下被用于指代多播源S,或者在(*,G)的情况下,被用于指代针对G的集合点(RP)。如果到C-root的路由跨VPN骨干网络,则PE路由器需要为(S,G)或(*,G)流找到“上游多播跳”(UMH)。UMH是(S,G)或(*,G)数据分组进入VPN骨干网络的PE路由器,或者是那些数据分组在行进通过VPN骨干网络时进入本地AS的自治系统边界路由器(ASBR)。针对给定C-root查找上游多播跳的过程被称为“上游多播跳选择”。
出口PE路由器20D可以被配置为跨多归属上游PE路由器20A-20C来对MVPN加入消息进行哈希(负载平衡)。出口PE路由器20D执行RFC 6513中定义的逐字节XOR哈希。在没有本公开的技术的情况下,PE路由器20D将在PE路由器20A-20C之间对MVPN加入均等地哈希。例如,如果PE路由器20D从CE路由器22B接收到针对三个流的加入,则PE路由器20D向PE路由器20A发送与流1相对应的加入消息、向PE路由器20B发送与流2相对应的加入消息并且向PE路由器20B发送与流3相对应的加入消息。MVPN加入在多归属上游PE路由器20A-20C之间均等分发。MVPN加入哈希适用于共享树加入(*,G)和源树加入(S,G)。在一些情况下,跨所有多归属上游PE路由器发送均等量的加入消息可能出现问题。例如,在一些情况下,将加入消息均等分发可能会导致网络资源使用效率低下,诸如通过使某些链路过载同时未充分利用其他链路。
本公开的技术使得能够在多归属场景中灵活地分发MVPN加入来适应各种用例,包括:基于上游偏好/权重进行哈希;从哈希中排除某些上游PE路由器;使用负载最小的哈希方法;基于每个多播组/信道的带宽进行哈希;基于上游接入带宽进行哈希;以及基于哈希来选择备用上游PE路由器。
本公开描述了对BGP MVPN加入负载平衡算法的扩展以实现MVPN加入的分发的灵活性。该解决方案定义了被称为“UMH权重”的新的传递性BGP扩展共同体属性,以指示BGP-MVPN PE路由器的上游多播跳权重。每个BGP-MVPN PE路由器如下来构造“UMH权重”扩展共同体属性。全局管理员字段将被设置为表示权重的整数值。在一些示例中,MVPN权重的值可以被配置。经配置的值可以是零或任何非零值。如果未配置,则MVPN权重可以由PE路由器诸如基于PE路由器和CE路由器之间朝向多播源的接入链路(或链路聚合组)的上游接入带宽自动得出。本地管理员字段将被设置为零值。因此,UMH权重扩展共同体属性具有以下形式:
UMH权重:X:0,其中“X”是预配置的权重或自动得出的权重。
PE路由器20被配置为将“UMH权重”扩展共同体属性附接到由每个PE路由器20发起的自动发现消息(例如,类型1MVPN路由40)。新的MVPN配置选项触发PE路由器20,以将“UMH权重”扩展共同体附接到类型1MVPN路由40。
借助从入口PE路由器20A-20C接收自动发现路由,出口PE路由器20D上的MVPN可以访问UMH权重值的(多个)附加数据点。所有PE路由器20A-20C的UMH权重被提供作为出口PE路由器20D上哈希算法的输入。
如果从上游PE路由器(例如,旧式BGP-MVPN PE路由器)接收到的类型1MVPN路由40中不存在UMH权重扩展共同体,则MVPN进程将向出口PE路由器20D上的哈希算法提供默认的UMH权重值1。如果所接收的自动发现消息中的UMH权重具有值零,则出口PE路由器20D将上游PE路由器从哈希计算中排除,并且被通告权重为零的加入消息不被发送到上游PE路由器。出口PE路由器20D根据UMH权重,跨PE路由器20A-20C而对MVPN共享树加入路由或源树加入路由(类型6/类型7路由)进行哈希。
在一些示例中,出口PE路由器20D上的MVPN加入哈希算法可以通过经由出口PE路由器20D上的策略,在每个多播串流(stream)/流(flow)的带宽上馈送数据来进一步增强。策略可以指示哪些多播组具有高带宽量或变化的带宽量。例如,如果流对应于具有高带宽量或变化的带宽量的多播组,则流可以被计数为多于一个的流。在一些示例中,策略考虑了上游接入带宽之后的带宽,诸如CE路由器和C-RP之间的带宽。
在图1的示例中,PE路由器20A与CE路由器22A之间的上游接入带宽为100千兆字节,PE路由器20B与CE路由器22A之间的上游接入带宽为40千兆字节,并且PE路由器20C与CE路由器22A之间的上游接入带宽为10千兆字节。在相应类型1的MVPN路由40中,入口PE路由器20A以UMH权重:100:0来通告;入口PE路由器20B以UMH权重:40:0来通告,并且入口PE路由器20C以UMH权重:10:0来通告。在一些示例中,入口PE路由器中的每一个基于上游接入带宽量来自动得出UMH权重值。在其他示例中,入口PE路由器中的每一个被配置有要使用的UMH权重值。出口PE路由器20D也将通告UMH权重扩展共同体属性UMH权重:1:0,但是这并不显著,因为相对于图1中的网络拓扑,出口PE路由器20D仅扮演出口MVPN PE路由器的角色。
出口PE路由器20D被配置为根据本公开的技术来执行加权MVPN加入负载平衡。假设出口PE路由器20D从CE路由器22B接收100个流的加入请求消息36(“加入”)(例如,PIM加入请求消息36)。作为一个示例,出口PE路由器20D计算所有多归属PE的UMH权重之和Y,并且还根据以下等式来计算待被哈希到上游PE路由器的MVPN加入(例如,BGP类型-7路由38)的百分比P:
P=(X*100)/Y,
其中X是多归属上游PE路由器的UMH权重。在该示例中,所有多归属PE的UMH权重之和为Y=150=(100+40+10)。
作为加权MVPN加入哈希计算的结果,出口PE路由器20D将向上游PE1发送67个MVPN加入、向上游PE2发送27个MVPN加入,并且向上游PE3发送6个MVPN加入。在一些示例中,出口PE路由器20D遵循以下计算细节:
步骤1:基于上游权重[(X*100)/Y]的负载分发
67个加入到PE1
27个加入到PE2
6个加入到PE3
步骤2:基于跨多归属上游PE的负载计算(步骤1),每个上游PE被指派有编号列表(索引编号),如下所示:
67个加入到PE1[编号列表(索引编号):-0—66]
27个加入到PE2[编号列表(索引编号):-67—93]
6个加入到PE3[编号列表(索引编号):-94—99]
步骤3:出口PE路由器20D对多播源的C-Root地址和多播组的客户组(C-Group)地址中的所有字节执行逐字节异或(XOR)运算。逐字节XOR运算是逻辑异或运算,仅当输入的奇数为真(true)时输出“真”,而当输入的偶数为真时输出假(false)。逐字节XOR运算的结果被取模100,与候选集中的PE路由器的数量无关。将取模100运算的结果称为结果N。
然后,所选择的上游PE是与在步骤2中分配的索引编号“N”相对应的一个上游PE。出口PE路由器20D将MVPN加入消息38发送到如上所计算的PE路由器20A-20C。入口PE路由器20A-20C将向CE路由器22A发送PIM加入请求36。当多播源16发送多播业务34时,多播业务根据加入消息流经网络。
除非所有(S,G)串流具有相同的带宽,否则平衡将不匹配带宽。加入在(S,G)上而不是带宽上被哈希。如果在出口PE路由器20D上进行配置,则还考虑关于每个多播组/信道的带宽的信息来用于哈希计算。结果是加权MVPN加入负载平衡。
如果UMH权重为零,则出口PE路由器20D从哈希计算中排除上游PE,即,出口PE路由器20D不将上游PE视为发送任何加入。对于IPTV部署,通常存在高清晰度信道和标准清晰度信道。策略可以在出口PE路由器20D上被配置为指示哪些组是高带宽。指示每个多播组/信道的带宽的该数据也可以被馈送到出口PE路由器20D上的加权MVPN加入哈希算法,从而进一步增强算法。
在以下情况下,类型1的MVPN路由可以利用新的UMH权重扩展共同体值来刷新:i)由于上游PE-CE链路的添加/删除而导致的上游多播带宽的变化;ii)所配置的UMH权重的变化;iii)旧式BGP-MVPN PE的升级。
在类型1的MVPN路由利用新的UMH权重扩展共同体值来刷新的事件中,已在出口PE路由器20D上被哈希的MVPN加入将保持不变(不扰动)。新的UMH权重值将被视为用于对后续的加入(新加入)进行哈希。用户/管理员还将被提供在适当的时间“重新平衡”MVPN加入的选项。由于“重新平衡”可能会造成破坏,因此管理员应为该活动选择适当的时间。
对于Draft-Morin/Hot-Root-Standby部署,上述过程也可以被用于挑选备用上游PE路由器。在该示例中,出口PE路由器20D排除主UMH,并且重新运行哈希来挑选备用UMH。
图2是图示了根据本公开的技术的各方面的示例计算机网络4的框图,示例计算机网络4包括被配置为在多播源16和多播接收方18之间传输多播业务的网络设备。参考图2,假定出口PE路由器20D从CE 22B接收针对90个流的PIM加入请求36。根据RFC 6513中定义的过程,在没有本公开的技术的情况下,出口PE路由器20D将对多归属上游PE路由器20A-20C中的每一个的30个MVPN加入简单地进行哈希。然而,可能存在以下情况,最好不要考虑使用某些PE路由器来接收多播业务。例如,诸如CE路由器22C的CE路由器可能正在接受维护。
如图2所示,所有BGP-MVPN PE交换具有UMH权重扩展共同体属性的类型1的MVPN路由40。PE路由器20A通告UMH权重值为1;PE路由器20B通告UMH权重值为1;并且PE路由器20C通告UMH权重值为零。来自入口PE路由器的UMH权重数据被并入出口PE路由器20D上的MVPN加入哈希算法中。根据以上阐述的公式,待发送到每个多归属上游PE路由器的MVPN加入的数量由出口PE路由器20D来计算。因为PE路由器20C将UMH权重通告为零,所以本公开的技术确保加入不被哈希到PE路由器20C。根据UMH权重,MVPN加入仅被哈希到PE路由器20A和PE路由器20B。结果是灵活的MVPN加入负载平衡。结果,仅多归属PE路由器20A、20B在PIM加入请求36上转发,并且进而,来自多播源16的多播业务34仅流经CE路由器22A以及入口PE路由器20A和20B,而不流经CE路由器22C。
图3是图示了根据本公开的技术的各方面的示例计算机网络6的框图,示例计算机网络6包括被配置为在多播源16和多播接收方18之间传输多播业务的网络设备。如图3所示,所有BGP-MVPN PE路由器20交换具有UMH权重扩展共同体属性的类型1的MVPN路由40。PE路由器20C通告UMH权重值为一(1),因为PE路由器20C被连接到旧式CE路由器22C,并且期望旧式CE路由器吸引较少的PIM状态。PE路由器20A和PE路由器20B被连接到已升级的CE路由器。可能的情况是,已升级的CE路由器22A可以处理更高数量的加入,而旧式CE路由器22C仅可以处理更少数量的加入。PE路由器20A和PE路由器20B通告UMH权重值为4来吸引更多的PIM状态。该UMH权重数据被传递到出口PE路由器20D上的MVPN加入哈希算法。出口PE路由器20D根据上述公式来确定待发送到每个多归属上游PE路由器20的MVPN加入的数量,使得更少的加入消息被发送到与旧式CE路由器耦合的PE路由器20C,并且最终,少量的多播业务流经旧式CE路由器和PE路由器20C。结果是灵活的MVPN加入负载平衡。
图4是图示了根据本公开的技术的各方面的示例计算机网络8的框图,示例计算机网络8包括被配置为在多播源16与多播接收方18之间传输多播业务的网络设备。如图4所示,所有BGP-MVPN PE路由器交换具有UMH权重扩展共同体属性的类型1的MVPN路由。UMH权重为1的所有多归属上游PE形成候选列表。MVPN加入使用“负载最小的(least loaded)”算法而跨多归属上游PE(候选列表)被分发。每个上游PE路由器发送的加入(类型6/类型7)由MVPN路由表中的出口PE路由器20D维护。MVPN加入被发送到负载最小的上游PE路由器,最终所有MVPN加入均使用负载最小的方法而跨多归属上游PE(候选列表)被分发。结果是灵活的MVPN加入负载平衡。
图5是图示了被配置为根据本公开的技术来操作的示例网络设备50的框图。在一个示例中,网络设备50可以作为诸如MPLS核心网络的核心网络的入口网络设备操作。在另一示例中,网络设备50可以作为核心网络的出口网络设备操作。当作为核心网络的入口网络设备操作时,网络设备50被配置为计算和通告上游多播跳权重。例如,网络设备50可以基本上类似于图1的入口PE路由器20A-20C来操作。当作为核心网络的出口网络设备操作时,网络设备50被配置为基于所接收的上游多播跳权通告来选择性地发送加入消息。例如,网络设备50可以基本上类似于图1的出口PE路由器20D进行操作。在一些示例中,网络设备50可以被配置用于入口操作和出口操作。
在图5所示的示例中,网络设备50包括接口卡60A-60N(“IFC60”),接口卡经由传入链路来接收控制和数据分组,并且经由传出链路来发送控制和数据分组。IFC 60通常经由多个接口端口而被耦合到传入链路和传出链路。网络设备50还包括控制单元54,控制单元54确定所接收的分组的路由并相应地经由IFC 60来转发分组。
控制单元54包括路由组件56和转发组件58。路由组件56作为网络设备50的控制平面操作,并且包括操作系统(未示出),操作系统可以为执行多个并发进程提供多任务操作环境。例如,路由组件56为执行网络设备50的路由功能的各种协议66提供操作环境。在图5所示的示例中,路由组件56包括边界网关协议(BGP)模块70,边界网关协议(BGP)模块70作为单播路由协议,单播路由协议用于与网络中的其他网络设备交换路由信息,以便发现网络拓扑并更新路由信息62,并且发送用于MVPN自动发现的路由、提供方隧道信令和客户多播路由信令。附加地,路由组件56包括PIM模块68作为多播路由协议,多播路由协议用于使用路由信息62和多播状态信息64来与网络中的其他网络设备构建多播分发树。
路由组件56还包括IGMP 72,IGMP 72作为通信协议,用于与网络外部的客户站点内的IGMP主机(例如,接收方和源)建立多播组成员资格。在一些示例中,路由组件56可以接收标识多播组的IGMP报告消息,并且在一些情况下,接收IGMP主机感兴趣的多播组的源。在一些示例中,路由组件56可以使用PIM模块68来生成多播控制消息(例如,PIM加入消息和/或PIM修剪消息),多播控制消息被用于构建网络中的多播分发树。
路由信息62可以描述网络设备50所驻留的网络的拓扑,并且还可以描述网络内的各种路由以及每个路由的适当下一跳,即,沿每个路由的相邻网络设备。路由信息62可以包括传入接口(IIF)的列表和传出接口(OIF)的列表,其指示在每个路由中,哪些IFC 60被连接到相邻网络设备。例如,给定路由可以包括用于给定多播组的多播业务的多播路由。在该示例中,路由信息62中包括的IIF的列表可以包括具有给定多播组状态的所有上游邻居网络设备的上游接口的列表,并且路由信息62中包括的OIF的列表可以包括具有给定多播组状态的所有下游邻居网络设备的下游接口的列表。
多播状态信息64可以描述使用PIM模块68建立的多播分发树中,相邻网络设备的接口的当前状态。例如,多播状态信息64可以包括针对给定多播分发树范围内的每个不同的多播组的多播状态(例如,PIM加入状态和PIM修剪状态)。更具体地,对于每个多播组,多播状态信息64可以包括朝向属于相应多播组的相邻网络设备的上游接口和下游接口。
MVPN模块74可以被配置为使用PIM模块68和BGP模块70中的一者或两者来建立和维护网络内的MVPN分发树或隧道。与MVPN模块74协作,BGP模块70发送并接收与MVPN相关的路由消息,并且可以将接收的消息转发到MVPN模块74以进行处理。附加地,MVPN模块74可以映射网络内其他网络设备的MVPN成员资格信息,并且基于MVPN成员资格信息而针对给定的MVPN生成多播状态。在一些示例中,MVPN模块74可以在多播状态信息64中存储一个或多个MVPN的多播状态。例如,MVPN模块74可以将指示针对特定多播(S,G),何时已接收到BGP类型5路由的信息存储到多播状态信息64或路由信息62,并且可以随后更新多播状态信息64或路由信息62,以在类型5路由已被撤销时移除条目。
路由组件56分析路由信息62和多播状态信息64来生成转发组件58中安装的转发信息78。转发组件58为网络设备50提供数据平面功能性。尽管图5中未示出,但是转发组件58可以包括中央处理单元(CPU)、存储器以及一个或多个可编程分组转发专用集成电路(ASIC)。转发信息78将网络目的地与特定的下一跳和IFC 60的对应端口相关联。
根据本公开的技术,MPVN模块74将UMH权重扩展共同体属性附接到由网络设备50发起的自动发现路由(例如,类型1的MVPN路由)。新的MVPN配置选项触发PE路由器,以将“UMH权重”扩展共同体附接到类型1的MVPN路由。类型1的MVPN路由指定多播源、多播组以及针对多播源和多播组的多播业务的UMH权重值。网络设备50可以将类型1的MVPN路由发送到MVPN中的所有对等网络设备。
例如,网络设备50可以基于网络设备50和客户边缘设备之间的上游接入带宽的量,确定针对多播源和多播组的多播业务的上游多播跳权重值。客户边缘设备被定位在入口网络设备和多播源之间。在一些示例中,网络设备50被配置有上游多播跳权重值,以用于类型1MVPN路由的UMH权重字段中。
当网络设备50作为网络中的出口网络设备操作时,网络设备50从多个入口网络设备中的每一个接收类型1的MVPN路由。类型1的MVPN路由中的一个或多个包括UMH权重值。来自所接收的消息的、与每个上游PE路由器相关联的UMH权重数据被传递到网络设备50上的MPVN模块74的MVPN加入哈希算法部分。出口PE路由器20D上的MVPN可以访问从入口PE路由器20A-20C接收的UMH权重值的(多个)附加数据点。
MPVN模块74计算待发送到每个多归属上游PE路由器20的MVPN加入消息(例如,类型6或类型7加入请求)的数量。MPVN模块74基于由所接收的消息指定的上游多播跳权重值,选择多个入口网络设备中的、向其发送多播源和多播组的多播加入消息的一个入口网络设备。
例如,MVPN模块74基于由所接收的消息指定的上游多播跳权重值,确定要发送到针对多播源和多播组的多个入口网络设备中的每一个的多播加入消息的比例。MVPN模块74基于所确定的比例,选择多个入口网络设备中的、向其发送多播加入消息的一个入口网络设备,并且网络设备50根据所确定的比例,将针对多播源和多播组的多个多播加入消息发送到多个入口网络设备中的一个或多个。
作为确定要发送到多个入口网络设备中的每个入口网络设备的多播加入消息的比例的一部分,MVPN模块74根据针对入口网络设备的对应上游多播跳权重值除以来自多个入口网络设备中的每一个的上游多播跳权重值的总和,向一个或多个入口网络设备中的每一个指派一个或多个索引编号的不同集合,一个或多个索引编号包括0和99之间的一个或多个整数。
作为一个示例,MVPN模块74基于确定所有多归属PE的UMH权重之和Y来确定每个上游PE路由器的MVPN加入消息的数量,并且还根据以下等式来确定将被哈希到上游PE路由器的MVPN加入的百分比P:
P=(X*100)/Y,
其中X是多归属上游PE路由器的UMH权重。
当网络设备50接收到通过客户根地址指定多播源并通过客户组地址指定多播组的多播加入消息时,在一些示例中,MVPN模块74应用哈希函数以获得哈希函数的结果,哈希函数包括对多播加入消息的客户根地址和客户组地址中的字节的逐字节异或运算。MVPN模块74采用哈希函数取模100的结果来确定0和99之间的索引编号,并基于索引编号来选择向其发送多播加入消息的入口网络设备之一。
以这种方式,MVPN模块74将每个上游PE路由器指派给编号列表(索引或位置编号),使得更少的加入消息被发送到通告了较低权重值的上游PE。网络设备50将多播加入消息发送到多个入口网络设备中的所选择的一个。在发送多个多播加入消息之后,网络设备50与发送到每个入口网络设备的多个多播加入消息成比例地从一个或多个入口网络设备接收针对多播源和多播组的多播业务,并且转发所接收的多播业务。
在一些示例中,网络设备50将多播加入消息发送到多个入口网络设备中的一个或多个的所选择的一个入口网络设备,其中将一个或多个索引编号的不同集合指派给多个入口网络设备中的一个或多个的每一个包括:将不同的集合指派给发送了非零上游多播跳权重值的多个入口网络设备中的任一个。
在一些示例中,由网络设备50接收的自动发现(类型1)消息中的至少一个为多个入口网络设备之一指定上游多播跳权重值为零,并且MPVN模块74至少通过确定向多个入口网络设备之一发送零个多播加入消息来确定向多个入口网络设备之一发送的多播加入消息的比例。
在一些示例中,当网络设备50从针对网络设备的另一入口网络设备接收另一消息时,消息针对多播源和多播组,其中另一消息不包括指定上游多播跳权重值的字段,MVPN模块74假定针对另一入口网络设备的默认上游多播跳值。在这种情况下,MVPN模块74基于默认上游多播跳值和由所接收的消息指定的上游多播权重值,确定多播加入消息发送到上游入口PE路由器的比例,上游入口PE路由器包括该另一入口网络设备。例如,如果从上游PE路由器(例如,旧式BGP-MVPN PE路由器)接收的类型1MVPN路由中不存在UMH权重扩展共同体,则MVPN模块74将默认UMH权重值1提供给网络设备50上的哈希算法。如果UMH权重为零,则MVPN模块74将上游PE路由器从哈希计算中排除。MVPN模块74根据UMH权重,跨上游入口PE路由器来对MVPN共享树加入路由和源树加入路由(类型6/类型7路由)进行哈希。在一些示例中,MVPN模块74上的MVPN加入哈希算法可以通过以下被进一步增强:经由网络设备50上的策略80,将每个多播串流/流的带宽上的数据馈送到MVPN模块74。
在其他示例中,在上游多播跳权重值具有0或1的值的情况下,MVPN模块74诸如通过将编号存储在数据库中(例如,多播状态信息64),跟踪被发送到多个入口网络设备中的每一个的多播加入消息的数量。MVPN模块74通过基于数据库选择从其接收消息的多个入口网络设备中的每一个的负载最小的入口网络设备,而选择多个入口网络设备中的、向其发送多播加入消息的一个入口网络设备,消息指定上游多播跳权重值为1。负载最小的入口网络设备是当前具有最少加入消息数量的入口网络设备。
例如,网络设备50从上游PE路由器接收类型1的MVPN路由,上游PE路由器通告值为零(0)或一(1)的UMH权重扩展共同体属性。如果UMH权重为零,则MPVN模块74从候选列表中排除通告零权重的上游PE路由器20,即,不考虑上游PE路由器20来发送任何加入。具有UMH权重为1的所有多归属上游PE路由器20形成由MVPN模块74存储的候选列表。MVPN加入使用由MVPN模块74执行的“负载最小的”算法而跨多归属上游PE(候选列表)被分发。每个上游PE发送的加入(类型6/类型7路由)被保存在诸如多播状态信息64的MVPN路由表中。MVPN加入被发送到负载最小的上游PE,并且最终所有MVPN加入均使用负载最小的方法而跨多归属上游PE(候选列表)被分发。网络设备50的用户/管理员还可以在适当时间被提供“重新平衡”MVPN加入的选项。对于Draft-Morin/Hot-Root-Root-Standby部署,MVPN模块74也可以使用“负载最小的”算法来选择备用上游PE路由器。在该示例中,MVPN模块74排除主UMH,并且重新运行哈希来选择备用UMH。
本公开的技术例如适用于AS内、AS间多归属BGP-MVPN部署。本公开的技术可以与旧式BGP-MVPN PE互操作。本公开的技术适用于共享树加入(*,G)/类型6和源树加入(S,G)/类型7。
根据上游权重,MVPN加入跨多归属上游PE被哈希。如果在网络设备50上进行配置,则哈希计算还考虑每个多播组/信道的带宽。网络设备50不需要转发构造(在转发信息78中)的任何改变,因为问题已在网络设备50的控制平面中被解决。过程适用于IPV4多播和IPV6多播两者。过程还可以被扩展用于Draft-Morin/Hot-Root-Standby部署。该解决方案确保了MVPN加入分发的灵活性,以适应各种用例。
尽管出于示例目的就BGP-MVPN部署描述了本公开的技术,但是本公开的技术也适用于本机PIM部署。因此,在一些示例中,PIM模块68可以被配置为以与以上相对于MVPN模块74所描述的方式类似的方式进行操作。在这种情况下,代替包括UMH权重值的类型1的MVPN自动发现消息,它可以是由网络设备50发送或接收的、通告UMH权重值的PIM消息。在一些示例中,网络设备50可以不包括MVPN模块74,并且PIM模块68可以根据本公开的技术进行操作,以基于所通告的UMH权重值来选择向其转发加入请求的上游入口路由器。
图5中所示的网络设备50的架构仅出于示例目的而示出,并且不应限于该架构。在其他示例中,网络设备50可以以各种方式来配置。在一个示例中,控制单元54的某些功能性可以分布在IFC 60内。控制单元54可以仅以软件或硬件来实现,或者可以以软件、硬件或固件的组合来实现。例如,控制单元54可以包括执行软件指令的一个或多个处理器。在该情况下,控制单元54的各种软件模块可以包括诸如计算机存储器或硬盘的计算机可读介质上所存储的可执行指令。
图6是图示了根据本公开的技术的入口网络设备通告上游多播跳权重的示例操作的流程图。出于示例的目的,关于图5的网络设备50描述了图6,但是图6也适用于图1至图4并且可以表示入口PE路由器20A-20C中任一个的示例操作。
入口网络设备基于网络的入口网络设备与客户边缘设备之间朝向多播源的上游接入带宽的量,确定针对多播源和多播组的多播业务的上游多播跳权重值(100)。入口网络设备然后向网络的一个或多个对等网络设备发送消息,消息指定多播业务的上游多播跳权重值(102)。例如,入口网络设备可以是提供方边缘路由器,并且可以将消息发送到网络的所有其他提供方边缘路由器。消息还指定了多播源和多播组。例如,消息可以是具有传递性BGP扩展共同体属性的边界网关协议(BGP)多播虚拟专用网络(MVPN)自动发现消息,传递性BGP扩展共同体属性将上游多播跳权重值指定为入口网络设备的上游多播跳权重。
在一些示例中,在入口网络设备确定上游多播跳权重值之后,入口网络设备检测入口网络设备和客户边缘设备之间朝向多播源的上游接入带宽的变化。例如,入口网络设备和客户边缘设备之间的链路可能已被添加或删除,从而导致上游接入带宽增加或减少。响应于检测到上游接入带宽的变化,入口网络设备确定经更新的上游多播跳权重值,并且向网络的对等网络设备发送第二消息,第二消息指定针对多播业务的经更新的上游多播跳权重值。第二消息还指定多播源和多播组。
图7是图示了根据本公开的技术的出口网络设备基于所接收的上游多播跳权重通告来选择性地发送加入消息的示例操作的流程图。出于示例的目的,相对于图5的网络设备50描述了图7,但是图7也适用于图1至图4并且可以表示出口PE路由器20D的示例操作。
诸如出口PE路由器20D的出口网络设备从网络的多个入口网络设备接收消息。入口网络设备(例如,入口PE路由器20A-20C)相对于多播源是多归属的。消息中的每一个指定多播源、多播组以及针对多播源和多播组的多播业务的上游多播跳(UMH)权重值(200)。响应于接收到消息,出口网络设备基于由所接收的消息指定的上游多播跳权重值,选择入口网络设备中的、要向其发送针对多播源和多播组的多个多播加入消息中的多播加入消息的一个入口网络设备(202)。出口网络设备将多播加入消息发送到多个入口网络设备中的所选择的一个入口网络设备(204)。
例如,出口网络设备可以基于上游多播跳权重来确定发送到每个上游入口网络设备的加入消息的比例,并且可以基于所确定的比例,将加入消息指派并发送到入口网络设备中的给定的一个入口网络设备。出口网络设备与加入成比例地,从入口PE设备接收多播业务,并且向感兴趣的接收方转发多播业务。
作为另一示例,根据上游入口网络设备是否旨在转发源的多播业务,上游多播跳权重值可以具有0或1的值。出口网络设备例如将发送到多个入口网络设备中的每一个的多个多播加入消息存储到数据库。出口网络设备可以通过基于数据库而选择入口网络设备中的、从其接收消息的负载最小的入口网络设备,选择向其发送多播加入消息的入口网络设备,消息指定上游多播跳权重值为1。负载最小的入口网络设备是当前为其指派最少数量的加入消息的入口网络设备。
本公开中描述的技术可以至少部分地以硬件、软件、固件或其任何组合来实现。例如,所描述的技术的各个方面可以在一个或多个处理器内实现,一个或多个处理器包括一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或任何其他等效的集成或分立逻辑电路以及此类组件的任何组合。术语“处理器”或“处理电路”通常可以指代单独或与其他逻辑电路或任何其他等效电路组合的前述逻辑电路中的任一个。包括硬件的控制单元还可以执行本公开的技术中的一个或多个。
这样的硬件、软件和固件可以在同一设备内或在单独的设备内实现,以支持本公开中描述的各种操作和功能。附加地,所描述的单元、模块或组件中的任一个可以一起或单独地实现为分立但可互操作的逻辑设备。将不同特征描绘为模块或单元旨在突出不同的功能方面,并且不一定暗示必须通过单独的硬件或软件组件来实现这样的模块或单元。相反,与一个或多个模块或单元相关联的功能性可以通过单独的硬件或软件组件来执行,或者可以被集成在通用或单独的硬件或软件组件内。
本公开中描述的技术还可以在包含指令的计算机可读介质中被体现或编码,计算机可读介质诸如为计算机可读存储介质。在计算机可读介质中嵌入或编码的指令可以使可编程处理器或其他处理器例如在执行指令时执行方法。计算机可读介质可以包括非瞬态计算机可读存储介质和瞬态通信介质。有形且非瞬态的计算机可读存储介质可以包括随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存、硬盘、CD-ROM、软盘、盒式磁带、磁性介质、光学介质或其他计算机可读存储介质。术语“计算机可读存储介质”指代物理存储介质,而不是信号、载波或其他瞬态介质。

Claims (18)

1.一种用于计算机网络的方法,包括:
由针对网络的出口网络设备从针对所述网络的多个入口网络设备中的每个入口网络设备接收多个消息,其中所述多个消息中的每个消息指定多播源、多播组以及针对所述多播源和所述多播组的多播业务的上游多播跳权重值;
由所述出口网络设备基于由所接收的所述多个消息指定的多个上游多播跳权重值,针对所述多播源和所述多播组确定要发送到所述多个入口网络设备中的每个入口网络设备的多播加入消息的比例,
由所述出口网络设备基于所确定的所述比例,选择所述多个入口网络设备中的、向其发送针对所述多播源和所述多播组的多个多播加入消息中的第一多播加入消息的一个入口网络设备;以及
由所述出口网络设备根据所确定的所述比例,将所述第一多播加入消息发送到所述多个入口网络设备中的所选择的所述一个入口网络设备。
2.根据权利要求1所述的方法,还包括:
在发送所述第一多播加入消息之后,由所述出口网络设备与被发送到每个入口网络设备的多个多播加入消息成比例地,从所述多个入口网络设备中的一个或多个入口网络设备接收针对所述多播源和所述多播组的多播业务;以及
由所述出口网络设备转发所述多播业务。
3.根据权利要求1所述的方法,其中来自所述多个入口网络设备中的每个入口网络设备的所述多个消息包括针对所述多播源和所述多播组的自动发现消息。
4.根据权利要求1至3中任一项所述的方法,其中所述出口网络设备包括所述网络的出口提供方边缘路由器,其中所述多个入口网络设备包括所述网络的多个入口提供方边缘路由器,并且其中接收所述多个消息包括接收具有传递性BGP扩展共同体属性的边界网关协议(BGP)多播虚拟专用网(MVPN)自动发现消息,所述传递性BGP扩展共同体属性将所述上游多播跳权重值指定为所述入口提供方边缘路由器的上游多播跳权重,所述消息从所述入口提供方边缘路由器被接收。
5.根据权利要求1至3中任一项所述的方法,其中所述多个上游多播跳权重值包括0或1的值,所述方法还包括:
由所述出口网络设备将被发送到所述多个入口网络设备中的每个入口网络设备的多个多播加入消息存储到数据库,并且
其中选择所述多个入口网络设备中的、向其发送所述第一多播加入消息的所述一个入口网络设备包括:基于所述数据库,选择所述多个入口网络设备中的每个入口网络设备中的、从其接收消息的负载最小的入口网络设备,所述消息指定上游多播跳权重值为1,所述负载最小的入口网络设备当前具有最小数量的加入消息。
6.根据权利要求1所述的方法,其中确定要发送到所述多个入口网络设备中的每个入口网络设备的多播加入消息的所述比例包括:根据针对所述入口网络设备的对应上游多播跳权重值除以来自所述多个入口网络设备中的每个入口网络设备的所述多个上游多播跳权重值的总和,将一个或多个索引编号的不同集合指派给所述多个入口网络设备中的所述一个或多个入口网络设备中的每个入口网络设备,所述一个或多个索引编号包括0和99之间的一个或多个整数,
所述方法还包括:由所述出口网络设备:
接收第二多播加入消息,所述多播加入消息通过客户根地址来指定所述多播源,并且通过客户组地址来指定所述多播组;
应用哈希函数,包括对所述第二多播加入消息的所述客户根地址和所述客户组地址中的字节进行逐字节异或运算来获得所述哈希函数的结果;
获取所述哈希函数取模100的结果,以确定0和99之间的索引编号;以及
基于所述索引编号,选择所述多个入口网络设备中的所述一个或多个入口网络设备中的、向其发送第三多播加入消息的一个入口网络设备;以及
将所述第三多播加入消息发送到所述多个入口网络设备中的所述一个或多个入口网络设备中的所选择的所述一个入口网络设备。
7.根据权利要求6所述的方法,其中将一个或多个索引编号的所述不同集合指派给所述多个入口网络设备中的一个或多个入口网络设备中的每个入口网络设备包括:将所述不同集合指派给所述多个入口网络设备中的、发送了非零上游多播跳权重值的任一个入口网络设备。
8.根据权利要求1所述的方法,其中所述多个消息中的至少一个消息针对所述多个入口网络设备中的一个入口网络设备指定上游多播跳权重值为零,并且
其中确定要发送到所述多个入口网络设备中的所述一个入口网络设备的多播加入消息的所述比例包括:确定将零个多播加入消息发送到所述多个入口网络设备中的所述一个入口网络设备。
9.根据权利要求1所述的方法,还包括:
由所述出口网络设备从针对所述网络的另一入口网络设备接收另一消息,所述消息指定所述多播源和所述多播组,其中所述另一消息不包括指定上游多播跳权重值的字段;以及
响应于接收到所述另一消息,由所述出口网络设备假设针对所述另一入口网络设备的默认上游多播跳权重值,
其中确定多播加入消息的所述比例包括:由所述出口网络设备基于所述默认上游多播跳权重值以及由所接收的所述多个消息指定的所述多个上游多播跳权重值,针对所述多播源和所述多播组,确定要发送到所述多个入口网络设备中的每个入口网络设备以及所述另一入口网络设备的多播加入消息的比例。
10.根据权利要求9所述的方法,其中所述默认上游多播跳权重值包括值1。
11.一种网络设备,包括:
存储器,以及
一个或多个处理器,被实现在电路中并且被配置为:
从针对网络的多个入口网络设备中的每个入口网络设备接收多个消息,其中所述多个消息中的每个消息指定多播源、多播组以及针对所述多播源和所述多播组的多播业务的上游多播跳权重值;
基于由所接收的所述多个消息指定的多个上游多播跳权重值,确定要发送到所述多个入口网络设备中的每个入口网络设备的多播加入消息的比例,
基于所确定的所述比例,选择所述多个入口网络设备中的、向其发送针对所述多播源和所述多播组的多个多播加入消息中的第一多播加入消息的一个入口网络设备;以及
将所述第一多播加入消息发送到所述多个入口网络设备中的所选择的所述一个入口网络设备。
12.根据权利要求11所述的网络设备,其中所述一个或多个处理器被配置为:
在发送所述多个多播加入消息之后,与被发送到每个入口网络设备的多个多播加入消息成比例地,从所述多个入口网络设备中的一个或多个入口网络设备接收针对所述多播源和所述多播组的多播业务;以及
转发所述多播业务。
13.根据权利要求11所述的网络设备,其中所述网络设备包括所述网络的出口提供方边缘路由器,其中所述多个入口网络设备包括所述网络的多个入口提供方边缘路由器,并且其中所述多个消息包括具有传递性BGP扩展共同体属性的边界网关协议(BGP)多播虚拟专用网(MVPN)自动发现消息,所述传递性BGP扩展共同体属性将所述上游多播跳权重值指定为所述入口提供方边缘路由器的上游多播跳权重,所述消息从所述入口提供方边缘路由器被接收。
14.根据权利要求11所述的网络设备,其中所述一个或多个处理器被配置为确定要发送到所述多个入口网络设备中的每个入口网络设备的多播加入消息的所述比例包括:所述一个或多个处理器被配置为根据针对所述入口网络设备的对应上游多播跳权重值除以来自所述多个入口网络设备中的每个入口网络设备的所述多个上游多播跳权重值的总和,将一个或多个索引编号的不同集合指派给所述多个入口网络设备中的所述一个或多个入口网络设备中的每个入口网络设备,所述一个或多个索引编号包括0和99之间的一个或多个整数;
其中所述一个或多个处理器还被配置为:
接收第二多播加入消息,所述多播加入消息通过客户根地址来指定所述多播源,并且通过客户组地址来指定所述多播组;
应用哈希函数,包括对所述第二多播加入消息的所述客户根地址和所述客户组地址中的字节进行逐字节异或运算来获得所述哈希函数的结果;
获取所述哈希函数取模100的结果,以确定0和99之间的索引编号;基于所述索引编号,选择所述多个入口网络设备中的所述一个或多个入口网络设备中的、向其发送第三多播加入消息的一个入口网络设备;以及
将所述第三多播加入消息发送到所述多个入口网络设备中的所述一个或多个入口网络设备中的所选择的所述一个入口网络设备。
15.根据权利要求14所述的网络设备,其中所述多个消息中的至少一个消息针对所述多个入口网络设备中的一个入口网络设备指定上游多播跳权重值为零,并且
其中所述一个或多个处理器被配置为确定要发送到所述多个入口网络设备中的所述一个入口网络设备的多播加入消息的所述比例包括:所述一个或多个处理器被配置为确定将零个多播加入消息发送到所述多个入口网络设备中的所述一个入口网络设备。
16.根据权利要求11至14中任一项所述的网络设备,其中所述多个上游多播跳权重值包括0或1的值,
其中所述一个或多个处理器被配置为将被发送到所述多个入口网络设备中的每个入口网络设备的多个多播加入消息存储到数据库,并且
其中所述一个或多个处理器被配置为选择所述多个入口网络设备中的、向其发送所述第一多播加入消息的所述一个入口网络设备包括:所述一个或多个处理器被配置为基于所述数据库,选择所述多个入口网络设备中的每个入口网络设备中的、从其接收消息的负载最小的入口网络设备,所述消息指定上游多播跳权重值为1。
17.一种用于计算机网络的方法,包括:
由针对网络的多个网络设备中的入口网络设备基于所述入口网络设备与客户边缘设备之间的上游接入带宽的量,确定针对多播源和多播组的多播业务的上游多播跳权重值,所述客户边缘设备位于所述入口网络设备与所述多播源之间;
由所述入口网络设备向针对所述网络的一个或多个对等网络设备发送消息,所述消息指定针对所述多播业务的所述上游多播跳权重值,其中所述消息还指定所述多播源和所述多播组;以及
在所述发送之后,由所述入口网络设备从所述一个或多个对等网络设备中的一个对等网络设备接收针对所述多播源和所述多播组的多播加入消息。
18.根据权利要求17所述的方法,其中所述消息包括第一消息,所述方法还包括:
在所述确定之后,由所述入口网络设备响应于检测到所述入口网络设备与所述客户边缘设备之间的上游接入带宽的变化,确定经更新的上游多播跳权重值;以及
由所述入口网络设备向针对所述网络的所述对等网络设备发送第二消息,所述第二消息指定针对所述多播业务的所述经更新的上游多播跳权重值,其中所述第二消息还指定所述多播源和所述多播组。
CN202011240461.8A 2020-08-18 2020-11-09 经加权的多播加入负载平衡 Active CN114157597B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410066713.1A CN117857431A (zh) 2020-08-18 2020-11-09 经加权的多播加入负载平衡

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/996,449 US11516115B2 (en) 2020-08-18 2020-08-18 Weighted multicast join load balance
US16/996,449 2020-08-18

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202410066713.1A Division CN117857431A (zh) 2020-08-18 2020-11-09 经加权的多播加入负载平衡

Publications (2)

Publication Number Publication Date
CN114157597A CN114157597A (zh) 2022-03-08
CN114157597B true CN114157597B (zh) 2024-01-02

Family

ID=73172548

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202011240461.8A Active CN114157597B (zh) 2020-08-18 2020-11-09 经加权的多播加入负载平衡
CN202410066713.1A Pending CN117857431A (zh) 2020-08-18 2020-11-09 经加权的多播加入负载平衡

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202410066713.1A Pending CN117857431A (zh) 2020-08-18 2020-11-09 经加权的多播加入负载平衡

Country Status (3)

Country Link
US (2) US11516115B2 (zh)
EP (1) EP3958517A1 (zh)
CN (2) CN114157597B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230318969A1 (en) * 2022-03-31 2023-10-05 Lenovo (United States) Inc. Optimizing network load in multicast communications

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101013948A (zh) * 2006-01-30 2007-08-08 瞻博网络公司 构建等耗多径多播分发结构
CN101489276A (zh) * 2009-01-06 2009-07-22 北京交通大学 一种移动Ad Hoc网络多播路由方法
CN101959142A (zh) * 2010-08-06 2011-01-26 上海交通大学 基于比例公平原则的基站多播业务调度系统及其方法
US8339973B1 (en) * 2010-09-07 2012-12-25 Juniper Networks, Inc. Multicast traceroute over MPLS/BGP IP multicast VPN
CN103973459A (zh) * 2013-01-24 2014-08-06 中兴通讯股份有限公司 IPv6组播孤岛间的组播报文的传输方法及装置
US8953446B1 (en) * 2011-12-20 2015-02-10 Juniper Networks, Inc. Load balancing multicast join requests over interior and exterior BGP paths in a MVPN
CN104380671A (zh) * 2012-06-01 2015-02-25 瑞典爱立信有限公司 在分级、冗余、多播路由选择中增加失效覆盖
CN104662851A (zh) * 2012-06-01 2015-05-27 瑞典爱立信有限公司 用上游激活分组增强pim快速重新路由
CN106789677A (zh) * 2017-02-20 2017-05-31 上海大学 基于SDN的支持QoS的多播路由构建方法及系统
CN107078974A (zh) * 2014-12-19 2017-08-18 慧与发展有限责任合伙企业 用于存储区域网中的网络交换机的多播通告消息
CN107276904A (zh) * 2016-03-31 2017-10-20 丛林网络公司 分发多播业务的方法和网络设备
CN108696440A (zh) * 2017-03-31 2018-10-23 瞻博网络公司 多重归宿evpn网络中的多播负载均衡
CN109729009A (zh) * 2017-10-31 2019-05-07 华为技术有限公司 用于实现组播业务的方法和装置
US10382217B1 (en) * 2016-03-30 2019-08-13 Juniper Networks, Inc. Single actual-forwarder election in multicast VPNs

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8089964B2 (en) * 2005-04-05 2012-01-03 Cisco Technology, Inc. Transporting multicast over MPLS backbone using virtual interfaces to perform reverse-path forwarding checks
US8169924B2 (en) * 2005-08-01 2012-05-01 Cisco Technology, Inc. Optimal bridging over MPLS/IP through alignment of multicast and unicast paths
US7839850B2 (en) 2006-01-30 2010-11-23 Juniper Networks, Inc. Forming equal cost multipath multicast distribution structures
JP4825696B2 (ja) * 2007-01-22 2011-11-30 アラクサラネットワークス株式会社 パケット中継装置
US8638787B2 (en) * 2010-05-20 2014-01-28 Cisco Technology, Inc. Multicast hello on demand
CN102075417B (zh) * 2010-09-30 2013-11-06 杭州华三通信技术有限公司 组播剪枝方法及协议无关组播路由器
KR20140044982A (ko) * 2012-09-21 2014-04-16 한국전자통신연구원 홉 카운트 기반 콘텐츠 캐싱 방법 및 그 네트워크 엔티티
US10833880B2 (en) 2014-08-07 2020-11-10 Nokia Technologies Oy Controlled switching of multicast traffic between selective and inclusive routes based on number of multicast receivers
US9473315B2 (en) * 2014-08-07 2016-10-18 Alcatel Lucent Network device configured to track multicast receivers
US10439929B2 (en) * 2015-07-31 2019-10-08 Avago Technologies International Sales Pte. Limited Graceful recovery of a multicast-enabled switch
EP3151489B1 (en) * 2015-09-30 2021-07-21 Juniper Networks, Inc. Mldp multicast only fast re-route over remote loop-free alternate backup path
US10554425B2 (en) 2017-07-28 2020-02-04 Juniper Networks, Inc. Maximally redundant trees to redundant multicast source nodes for multicast protection
US11368324B2 (en) * 2020-01-31 2022-06-21 Cisco Technology, Inc. Re-convergence of protocol independent multicast assert states

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101013948A (zh) * 2006-01-30 2007-08-08 瞻博网络公司 构建等耗多径多播分发结构
CN101489276A (zh) * 2009-01-06 2009-07-22 北京交通大学 一种移动Ad Hoc网络多播路由方法
CN101959142A (zh) * 2010-08-06 2011-01-26 上海交通大学 基于比例公平原则的基站多播业务调度系统及其方法
US8339973B1 (en) * 2010-09-07 2012-12-25 Juniper Networks, Inc. Multicast traceroute over MPLS/BGP IP multicast VPN
US8953446B1 (en) * 2011-12-20 2015-02-10 Juniper Networks, Inc. Load balancing multicast join requests over interior and exterior BGP paths in a MVPN
CN104380671A (zh) * 2012-06-01 2015-02-25 瑞典爱立信有限公司 在分级、冗余、多播路由选择中增加失效覆盖
CN104662851A (zh) * 2012-06-01 2015-05-27 瑞典爱立信有限公司 用上游激活分组增强pim快速重新路由
CN103973459A (zh) * 2013-01-24 2014-08-06 中兴通讯股份有限公司 IPv6组播孤岛间的组播报文的传输方法及装置
CN107078974A (zh) * 2014-12-19 2017-08-18 慧与发展有限责任合伙企业 用于存储区域网中的网络交换机的多播通告消息
US10382217B1 (en) * 2016-03-30 2019-08-13 Juniper Networks, Inc. Single actual-forwarder election in multicast VPNs
CN107276904A (zh) * 2016-03-31 2017-10-20 丛林网络公司 分发多播业务的方法和网络设备
CN106789677A (zh) * 2017-02-20 2017-05-31 上海大学 基于SDN的支持QoS的多播路由构建方法及系统
CN108696440A (zh) * 2017-03-31 2018-10-23 瞻博网络公司 多重归宿evpn网络中的多播负载均衡
CN109729009A (zh) * 2017-10-31 2019-05-07 华为技术有限公司 用于实现组播业务的方法和装置

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
Federico Godán ; Santiago Colman ; Eduardo Grampín.Multicast BGP with SDN control plane.《2016 7th International Conference on the Network of the Future (NOF)》.2017,全文. *
IP多播技术及其应用;谢天舜等;《电信工程技术与标准化》;20020630(第03期);全文 *
Multicast in MPLS/BGP IP VPNs;E. Rosen et al;《Internet Engineering Task Force (IETF)》;20120228;全文 *
周永塔 ; .基于链路稳定性的Ad Hoc网络多播路由协议仿真与分析.信息技术与网络安全.2020,(第04期),全文. *
汇聚组播:新型MPLS服务质量组播体系结构;江勇;胡松华;;软件学报(第04期);全文 *

Also Published As

Publication number Publication date
US11516115B2 (en) 2022-11-29
US11902148B2 (en) 2024-02-13
CN114157597A (zh) 2022-03-08
US20220060407A1 (en) 2022-02-24
US20230065908A1 (en) 2023-03-02
CN117857431A (zh) 2024-04-09
EP3958517A1 (en) 2022-02-23

Similar Documents

Publication Publication Date Title
CN107276904B (zh) 分发多播业务的方法和网络设备
US8111633B1 (en) Multicast trees for virtual private local area network (LAN) service multicast
US8339973B1 (en) Multicast traceroute over MPLS/BGP IP multicast VPN
CN107040400B (zh) 网络装置及方法
US10051022B2 (en) Hot root standby support for multicast
CN109150580B (zh) 协议无关多播加入熵
US10382217B1 (en) Single actual-forwarder election in multicast VPNs
US9100201B1 (en) Inter-site PIM-dense mode and PIM-BSR support for MPLS/BGP IP VPNs
US11902148B2 (en) Weighted multicast join load balance
CN113630320B (zh) 计算机网络内创建隧道的方法、入口网络装置及存储介质
US20240137307A1 (en) Weighted multicast join load balance
US11323364B2 (en) Ingress replication procedures to facilitate migration to segment routing technology in a computer network
CN114915588B (zh) 用于任播部署的上游多播跳umh扩展
CN113810285B (zh) 用于多播源发现协议msdp循环避免的方法和设备
CN117978721A (zh) 用于任播部署的上游多播跳umh扩展

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