CN104335537B - 用于层2多播多路径传送的系统和方法 - Google Patents
用于层2多播多路径传送的系统和方法 Download PDFInfo
- Publication number
- CN104335537B CN104335537B CN201380029830.0A CN201380029830A CN104335537B CN 104335537 B CN104335537 B CN 104335537B CN 201380029830 A CN201380029830 A CN 201380029830A CN 104335537 B CN104335537 B CN 104335537B
- Authority
- CN
- China
- Prior art keywords
- router
- network
- port
- layer
- designated
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/16—Multipoint routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
Abstract
一种示例方法被提供并且包括来自数据源的多播数据消息,该消息在第一虚拟局域网中并且与多播群组相关联。该方法还包括:基于虚拟局域网、数据源、以及多播群组来计算哈希值;基于哈希值确定层2网络中的指定路由器的端口;以及将多播数据消息交换至被确定的端口。
Description
技术领域
本公开一般涉及通信领域,并且更具体地涉及用于层2多播多路径传送的系统和方法。
背景技术
近年来,以太网架构变得越来越复杂。这至少部分是由于为了容纳过多的端用户而涌现出的多样技术造成的。例如,数据中心以太网(DCE)表示传统以太网(CE)的扩展并且它能够提供更低成本、更低延迟、高带宽的配置。网络所采用的转发方法一般是可伸缩的并且还向转发路径提供了同等成本的多路径传送以支持不同的转发拓扑。
层2链路状态路由协议能够被用于数据中心中以克服生成树协议(STP)的缺陷。来自IETF的多链路透明互联(TRILL)和结构(Fabric)路径(来自CA,San Jose的CiscoSystems,Inc)是这样的层2链路状态路由技术的示例。链路状态协议允许通过计算到网络中的节点的最短路径转发树来更好地使用网络资源。如果可用的话,单播流量能够沿多个同等成本路径来进行转发。在某些网络场景中,拓扑信息可能不是即时的、准确的和/或一致的。因而,最优地管理网络拓扑对系统设计者、网络运营商和服务提供商等等提出了显著的挑战。
附图说明
为了提供对本公开以及特性和优点的更完整的理解,结合附图来参考以下描述,其中相似的标号表示相似的部分,其中:
图1是根据本公开的一个实施例用于层2网络中的多播多路径传送的示例系统的简化框图;
图2是根据本公开的一个实施例用于层2网络中的多播多路径传送的接入交换机的简化框图;
图3是根据本公开的一个实施例用于层2网络中的多播多路径传送的示例过程的简化流程图;
图4是根据本公开的一个实施例用于层2网络中的多播多路径传送的另一示例过程的简化流程图;以及
图5是层2网络中的多播多路径传送的网络节点的简化框图。
具体实施方式
概述
在一个示例实施例中提供了一种方法,该方法包括例如在层2网络的接入交换机处从数据源接收多播数据消息,该消息在第一虚拟局域网络中并且与多播群组相关联。方法还包括:基于虚拟局域网络、数据源和多播群组计算哈希值,基于该哈希值确定层2网络中的指定路由器的端口,以及将多播数据消息交换至所确定的端口。
示例实施例
图1示出了根据本公开的一个实施例用于层2多播多路径传送的示例系统100。系统100包括多个数据源110、数据接收机120、接入交换机130、和交换路由器(switch-router)140。数据源100可以是用于呈现、存储和/或处理数据的任何逻辑设备。例如,数据源100可以是个人计算机、膝上型计算机、服务器、移动设备、和/或平板计算机。在某些实现方式中,一个或多个数据源110可以是虚拟机。数据源110通常需要将数据传送到其他逻辑设备,并且因此被耦合至一个或多个通信网络。数据源110可在同一虚拟局域网(VLAN)或者不同的虚拟局域网中。数据源110还可以接收数据。因此,它们仅为了便于论述而被标记为数据源。
类似地,数据接收机120可以是用于呈现、存储、和/或处理数据的任何逻辑设备。例如,数据接收机120可以是个人计算机、膝上型计算机、服务器、移动设备、和/或平板计算机。数据接收机120通常需要从其他逻辑设备接收数据,并且因此被耦合至一个或多个通信网络。在某些实现方式中,一个或多个数据接收机120可以是虚拟机。数据接收机120可在与一个或多个数据源110相同的VLAN或者在不同的VLAN中。数据接收机110还可以提供数据。因此,它们仅为了便于论述而被标记为数据接收机。
接入交换机130和交换路由器140被通信地耦合到数据源110和数据接收机120并且在它们之间提供交换和路由。接入交换机130和交换路由器140一起能够形成层2(Layer-2)网络180。在具体实现方式中,网络180可以是层2多路径网络(例如,结构路径(Fabricpath)网络)。接入交换机130和交换路由器140可使用提供层2多路径传送性能的转发范式(paradigm)。接入交换机130和交换路由器140还可提供将层2网络缩放至大量的交换机和/或路由器(例如,Fabricpath)的能力。
Fabricpath网络例如可以是企业网络或数据中心的一部分,该企业网络或数据中心例如还能够包括多个服务器、数据库和/或用于存储和/或处理数据的其他设备。数据中心还能够包括更多的通信网络。通信网络通常是用于接收和发送消息的相互连接的通信路径的一系列点或节点。如这里所用的那样,术语“网络节点”意味着包含交换机、路由器、代理、网关、网桥、负载均衡器、防火墙、内联服务节点、代理器、服务器、处理器、模块或者可操作来在网络环境中交换信息的任何其他适合的设备、组件、元件或对象。网络节点可包括辅助该网络节点的操作的任何适合的硬件、软件、组件、模块、接口、或对象。这其中可包括允许数据或信息的有效交换(接收和/或发送)的适当算法和通信协议。
数据中心的(一个或多个)通信网络可提供网络元件(例如,交换机、网桥、网关等等)之间的通信接口并且可以是任何IP网络、局域网(LAN)、虚拟LAN(VLAN)、无线LAN(WLAN)、城域网(MAN)、广域网(WAN)、外联网、内联网、虚拟专用网络(VPN)、或者辅助网络环境中的通信的任何其他适当的架构或系统。在本公开的具体实施例中,网络能够支持传输控制协议(TCP)/IP或者用户数据报协议(UDP)/IP;然而,这些网络可以替换地实现用于在系统100内发送和接收数据分组的任何其他适合的通信协议。
接入交换机130和交换路由器140可使用链路状态路由(例如,中间系统到中间系统(IS-IS)或者结构最短路径优先(FSPF))来用于转发,而传统的以太网网络通常使用生成树协议(STP)作为它们的转发协议。链路状态协议一般在层2广播域中运作。链路状态路由是允许网络中的节点通过共享关于到它的相邻节点中的每一个节点的传输成本来确定网络拓扑的协议。链路状态路由消息被发送至相邻节点以及从相邻节点接收。通过使用链路状态信息能够确定到各种目的地的最便宜的路径。
链路状态信息能够被用于在各个网络节点处生成网络拓扑信息以创建转发表。转发表允许网络节点(例如,交换机、网桥、和路由器)在适当的输出接口上转发所接收到的流量。为了在特定的网络节点生成网络拓扑图和转发表,来自各个网络节点的链路状态信息被分发出去。每个网络节点被配置为创建链路状态消息,该链路状态消息具有关于到它的每个邻居的距离、延迟、或成本的信息。链路状态记录(LSR)然后能够被发送到相邻节点。
寻址和转发可包括对用于转发活动的本地分配的可聚合(或者等级式)介质访问控制(MAC)地址的使用。链路状态协议能够用于确定转发拓扑并且还支持单播流量的最短路径转发和同等成本的多路径转发。多播帧也能够容易地使用多路径传送,尽管使用略不同的方案。此外,能够使用单个控制协议来计算单播路径和多目的地(例如,多播或广播)树。广播技术能够被视为多播的特殊情形,其中所有的节点都对消息感兴趣。
在所示示例中,示出了三个接入交换机130,但在其他实现方式中可使用任意数目的接入交换机。接入交换机130从数据源110接收消息(例如,分组)并将它们交换至数据接收机120(假设它们处在同一VLAN中)和交换路由器140。接入交换机130还可从交换路由器140(例如,从网络外侧的数据源或者从不同VLAN中的数据源)接收消息并将它们交换至数据接收机120。
交换路由器140提供层2网络和层3网络150之间的网关。交换路由器140通过对消息进行交换和路由来在网络环境中转发(或者相互协作从而转发)消息(例如,分组)。交换路由器140可以是集成的交换路由器、具有路由能力的交换机、或者具有交换能力的路由器。交换路由器140可使用诸如协议无关多播(PIM)来转发多播消息。PIM是通过LAN、WAN或互联网提供一对多和多对多的数据分发的互联网协议(IP)网络的多播路由协议的一种。它被称作协议无关是因为它不包括它自身的拓扑发现机制而是替代地依赖于由其他路由协议(例如,路由信息协议、开放式最短路径优先、边界网关协议、和多播源发现协议)供应的路由信息。对于控制平面交互,诸如Fabricpath IS-IS之类的协议可被用作下层的传送机制。
层3网络150可以是使用层3协议的任何适当类型的通信网络。网络150例如可包括用于传载信息的多个交换机、路由器、网桥、中继器、和/或其他装备。网络150例如可以是局域网或因特网。在具体实现方式中,网络150可与数据中心互连并且是数据中心互连(DCI)。层3网络150还被通信地耦合至路由器160,该路由器160例如可以是交换路由器。路由器160被耦合至数据接收机170。数据接收机170可类似于数据接收机120,只是其位于相对数据源110的层3网络150上。
在某些操作模式中,接入交换机130和交换路由器140可使用通用的哈希(hash)序列来转发多播消息。哈希序列例如可通过使用IS-IS路由器能力TLV(类型、长度、值)中的子TLV来在接入交换机130和交换路由器140之间被共享。例如可对{VLAN、源、群组}的三元组执行哈希,其中源是多播数据的源,群组是源向其发送数据的多播群组。在多数情形中,这应当为每个三元组提供唯一的标识符。此标识符然后可被用于检索树标识符(即,确定在哪个树中进行转发)和指定路由器(即,交换路由器140中的一个)的标签。因此,树和指定路由器可被链接。树标识符例如可以是Fabricpath中的转发标签(Ftag)。这会使得{VLAN、源、群组}的不相交集合(disioint set)(哈希结果)被分配至每个树和可用的路由器。接收多播消息的接入交换机130然后可将消息交换到任何适当的接收机120以及适当的一个交换路由器140。
与{VLAN、源、群组}三元组相关联的树标识符和指定路由器可由接入交换机以多种方式来确定。例如,树标识符和指定路由器可被存储在输出接口(OIF)列表中并且被三元组的哈希值所引用。导向指定的交换路由器140的端口可成为OIF列表的一部分。因此,接入交换机能够确定在哪个端口上转发消息。接收的交换路由器140还会知道哈希并使用它确定它应当执行层3多播转发的群组。接收的交换路由器140还可基于哈希来确定目的地接口(例如,端口)。例如它可检查OIF列表。
注意,在活动/待机模式下运行指定路由器是可能的。处于活动/待机模式的两个指定路由器可在指定路由器的有序列表中具有相同的索引(index),因此允许二者接收同一流量。此外,这意味着:这些路由器上的PIM知道它能够是{VLAN、源、群组}粒度的指定路由器的事实。
如果接收机120中的一个接收机在与数据源110不同的VLAN中,那么消息例如可能需要被路由到该接收机。此外,如果消息被定向到不是层2网络的一部分的数据接收机(例如,数据接收机170),那么该消息需要被路由到层3网络150中。
为了建立多播操作,接入交换机130可检测到数据接收机120想要加入多播群组。接入交换机130例如可通过使用互联网群组管理协议(IGMP)探听(或者通过使用任何其他适当的协议)来实现此。当想要接收新的群组的数据的数据接收机120被一个接入交换机130首先检测到时,接入交换机将计算{VLAN、源、群组}哈希并选取树标识符(例如,Ftag)以及选取交换路由器140中的一个作为指定路由器。
现有的硬件可使用{VLAN、源、群组}三元组来挑选树标识符。例如可基于树的根(root)来选择树标识符,对于此根而言靠近源是有利的。然而,树标识符不需要形成用于转发查找的关键词的一部分。树标识符可被用于基于进入接口检查(IIC)和色彩阻塞逻辑(Color Blocking Logic,CBL)的树执行。注意,{VLAN、源、群组}查找的硬件结果能够与源自{VLAN、源、群组}哈希的树标识符的端口一起被编程。这意味着其他树标识符的条目不需要被编程或计算。
对于在其中通过使用(有效地)单个查找来进行到路由器端口和接收机的转发的硬件而言,软件可构建OIF列表,该OIF列表是到达适当的数据接收机的链接和到达指定路由器的链接的联合。然而,由于接入交换机寻求(pin)到路由器的群组,只有导向该交换路由器的端口需要成为0IF列表的一部分(除了导向数据接收机120的端口之外)。
对于其他硬件而言,可使用两步查找。首先,可执行{VLAN、源、群组}哈希,其可提供包括数据接收机以及路由器_标签(router_tag)的OIF列表。然后,可执行提供了路由器端口的列表的{VLAN,路由器_标签}查找。路由器_标签例如可以是:1)到此{VLAN,路由器_标签}的指定的交换路由器的间接指引(indirection);2)到可用路由器的列表的间接指引,这可能发生于路由器添加或移除期间;3)到已经被设置为活动/待机模式中的路由器集合的间接指引。
作为转发{VLAN,路由器_标签}查找的结果,硬件还能够被增强来提供树标识符(除了路由器_标签和OIF列表之外)。这能够被用于哈希产生了树标识符的选择不多的情形,这可以是配置驱动的。例如可通过对相对于树标识符的哈希值执行模运算来选择指定路由器。在某些实现方式中,还可考虑指定路由器到树的根的距离,更近的指定路由器通常是更加优选的。加入请求可被发送至指定路由器,这可构建群组的转发树。此外,可向网络的剩余部分通知该加入请求。例如,在Fabricpath网络中,接入上的IS-IS协议将向网络的剩余部分公告:它已经接收到了针对它的链路状态协议数据单元(PDU)分组中的{VLAN,群组}集的加入请求。
当接入交换机130中的一个接入交换机认知到指定交换路由器140的移除时,接入交换机可简单地改变针对此指定的交换路由器的路由器_标签以指向导向其他可用的交换路由器140的端口。然后,已经被分配到经移除的交换路由器的多播群组需要被重新分配到剩下的交换路由器140。因此,哈希结果到指定路由器的映射应当被更新(例如,在剩余的指定路由器间重新分布)。
例如,针对相对于树标识符的哈希值执行的模运算可被调整以应对更少数目的路由器,并且这可用于对群组进行重新分配。例如,指定路由器可根据它们的MAC地址被分类到列表【路由器0、...、路由器X-1】中,而哈希值输出可通过X(路由器的数目)取模来进行处理。这并不总是提供遍及网络的最优转发,但如果PIM和层2同意,则它应当是有用的。在某些实现方式中,还可考虑指定路由器到层2多播树的根的距离,更近的指定路由器通常是更优选的。因此,最接近层2多播树的根的(一个或多个)指定路由器可与树相关联(例如,选取树X的相同哈希值可选取最接近该树的根的指定路由器),这可提供增强的转发。
作为另一示例,接入交换机可知道多少交换路由器140是可用的,并且最高的源介质访问控制(MAC)地址可采用第一树号。层2网络中的交换机例如可使用PIM打招呼(hello)分组的接收来检测网络中的路由器的存在。在建立时间(settling time)之后,先前被分配到经移除的指定的交换路由器的群组于是能够被重新分配到剩下的路由器-标签。接入交换机和交换路由器可使用重新分布算法从而使得哈希值被绑定到指定路由器。
当新的指定的交换路由器可用时,认知到的群组在指定的交换路由器的新列表间重新分布。因此,加入网络的新的指定路由器将从每个已经存在的指定路由器中得到值的某子集,从而使得哈希结果在新集合的路由器之间均匀分布,这会使得哈希结果到指定路由器的映射被更新(例如,在指定路由器间重新分布)。
例如,针对相对于树标识符的哈希值执行的模运算可被调整以应对更多数目的路由器,并且这可用于对群组进行重新分配。在某些实现方式中,还可考虑指定路由器到层2多播树的根的距离,更近的指定路由器通常是更优选的。层2转发协议和PIM可进行交互以确定路由器相对于树根的位置。因此,最接近层2多播树的根的(一个或多个)指定路由器可与树相关联(例如,选取树X的相同哈希值可选取最接近该树的根的指定路由器),这可提供增强的转发。作为另一示例,接入交换机可知道多少交换路由器140是可用的,并且最高的源介质访问控制(MAC)地址可采用第一树号。层2网络中的交换机例如可使用PIM打招呼(hello)分组的接收来检测网络中的路由器的存在。在建立时间之后,先前被分配到经移除的指定的交换路由器的群组于是能够被重新分配到剩下的路由器-标签。接入交换机和交换路由器可使用重新分布算法从而使得哈希值被绑定到指定路由器。
为了重新分发群组,在PIM和层2转发协议(例如,Fabricpath)之间存在通信以将指定路由器分配到树标识符。群组所分配到的树标识符还提供指定路由器。路由器_标签的改变可早于建立时段,在该建立时段期间流量被发送到所有可用的路由器。在上文所述的网络过渡情形中,可能有不止一个的交换路由器140接收到给定{VLAN,源,群组}集的消息。在交换路由器开始转发之前,这些交换路由器可使用PIM的断言机制以建立对于那些{VLAN,源,群组}集的指定的交换路由器的所有权。这可防止重复。
所述的方案可能需要来自PIM的修改以用于以下情形中的操作:其中在层2网络中具有:a)多个源,但没有接收机;以及b)存在多个源,但接收机仅发出(*,g)加入。基本上,在这些情形中的层2网络将不会察觉到各种发送源和/或接收机。针对两种情形,由于层2网络未察觉到完整的{VLAN,源,群组}信息并且因此不能够计算完整的哈希,所以所发生的转发将朝向可用的交换路由器。在此情形中,接入交换机130可计算针对每个{VLAN,群组}结合的树的路径。
然而,当源发送数据时,PIM能够接收初始数据消息。因此,如果PIM指定的路由器在层2多路径网络中(可能通过到IS-IS的重新分布)创建了类IGMP的{VLAN,群组,源}状态,那么就能够解决该问题。当这种情况发生时,硬件不再寻找最优的多播转发(OMF)条目(其是去向多个路由器的输出接口的列表)或者通用的(*,群组)条目。作为替代,它寻找特定的{VLAN,源,群组}OIF列表,该列表将指向特定的路由器。
系统100的某些实施例能够提供任意数目的显著特征。例如,架构能够随着多播树数目的增长而提升伸缩性。当前,树的数目的增加将导致软件中更大的处理需求以及硬件中更大的存储需求。例如,对于N个{S,G}群组,M*N个条目需要被计算并被安装在硬件中,其中M是树的数目。所有这些条目的安装是重要的,同一群组的多播消息可能经过M个树中的任意一个树,这基于在入口处选取的哈希/树标识符。因此,应当为每个树使用OIF列表。然而,在系统100中,伸缩性问题被解决,因为由于每个{VLAN,源,群组}应当哈希至同一条目,它仅需要计算和编程针对该群组的单个树标识符的条目。
此外,虽然可能在VLAN上存在不止一个路由器,但仅有单个路由器被挑选作为用于在该VLAN上转发群组的多播分组的指定路由器。(在VLAN上可能存在多个路由器,它们被配置为使得它们各自是针对群组的不相交集合的指定路由器。)然而,层2网络中的交换机使用PIM打招呼(hello)分组的接收来检测网络中的路由器的存在。因此,在层2网络级别,交换机不知道对指定路由器的选择,而是它们将VLAN上的所有路由器视为是活动的。层2网络将所有的多播流量转发至除了附接至层2网络的接收机之外的(一个或多个)路由器。因此,由于指定的选择对于交换机是可不见的,多播流量被通往该网络上的所有路由器,而不论这些它们是否是指定路由器。这不仅是次优的,而且也未利用另外的机会用于层2多路径(例如,Fabricpath)网络中存在的负载均衡和容错。然而,在系统100中,多播流量被指向适当的交换路由器。另外,流量被扩散至可用的交换路由器上,从而对它们做出了最优的使用。
另外,链路可以以更优的方式来使用。现有的方案导致传统的访问-脊胖树类型(access-spine fat-tree type)的网络中的链路的次优使用。这种负载均衡的机制还导向传统的胖树网络中更佳的链路利用率。因此,系统100为多目的地流量提供了更佳的多路径传送解决方案。
尽管图1示出了用于层2多播多路径传送的系统的一个示例,用于层2多播多路径传送的其他系统可包括更少的、另外的、和/或不同的组件布置。例如,一个或多个数据源可位于层2网络180外侧。数据源可通过层3网络150向一个或多个交换路由器140发送多播数据。交换路由器140然后可将多播流量路由至适当的交换机130,该适当的交换机130可将该流量交换至适当的数据接收机120。然而,在一些实现方式中,可能不存在层3网络150。作为另一示例,接入交换机130可以是交换路由器。
作为另一示例,局域网可存在于端节点(例如,数据源110和数据接收机120)和接入交换机130之间。局域网可允许端节点与接入交换机130传递消息。局域网例如可以是传统的以太网网络。在所示示例中,即使数据源110a和数据接收机110b在不同的虚拟LAN(VLAN)中,它们均可被耦合至局域网,并且即使数据接收机120b是与数据源110a同一VLAN的一部分,数据接收机120b可被耦合至另一局域网。在某些实现方式中,局域网、接入交换机、和交换路由器140可操作于第2层并形成层2网络。然而,在这些情形中,每个局域网和由接入交换机和交换路由器140形成的网络可具有它们自己的层2域。
如所论述的那样,系统100被设计为将交换路由器140同时定位为层3(例如,PIM)路由器和层2(例如,L2MP)交换机。为了使得同一方案在层3实体与层2实体相分离的网络中工作,可在路由器中配设另外的功能(例如,基于{VLAN,群组,源}的粒度而非每VLAN每群组地建立指定的路由器)以及额外的信令来扩展寻求到路由器的{VLAN,群组,源}和树标识符。
图2示出了示例接入交换机200,该接入交换机200是一种例如在系统100中使用的网络节点。接入交换机200包括数据平面210和控制平面220。在数据平面210中,接入交换机200包括连接于两组端口214a和214b之间的交换逻辑212。交换逻辑212被配置为将在一个端口组214a(入端口)上接收的流量路由或者内部交换到另一端口组214b(出端口)。数据平面210还包括处理器216(例如,专用集成电路(ASIC))来执行增强的操作。控制平面220包括通用处理器或者专用处理器228来实现交换功能和任何信道协议。在具体实现方式中,处理器228可在状态机、微控制器、硬件、固件、可编程逻辑、或者它们的组合中实现。
接入交换机200中还包括指定路由器列表222和OIF列表224。指定路由器列表222可存储可用的指定路由器的列表并且是基于从指定路由器接收的注册消息来构造的。层2网络中的交换机例如可使用PIM打招呼分组的接收来检测网络中的路由器的存在。OIF列表224例如可被构建为从其本地数据源接收群组加入请求的接入交换机200。
在某些操作模式中,接入交换机200可使用与路由器和其他接入交换机共同分享的哈希序列来转发多播消息。在某些实现方式中。该哈希可由处理器216计算出来。哈希序列例如可通过使用IS-IS TLV在接入交换机和路由器之间共享。例如可对{VLAN,源,群组}三元组来执行哈希运算。该标识符然后可被用于检索树标识符(即,确定在哪个树中进行转发)和指定路由器。树标识符例如可以是Fabricpath中的转发标签。因此,树和指定路由器可被链接。当接入交换机200接收多播消息时,接入交换机然后可将消息交换到任何适当的接收机以及适当的交换路由器。
与{VLAN、源、群组}三元组相关联的树标识符和指定路由器可由接入交换机以多种方式来确定。例如,树标识符和指定路由器可被存储在OIF列表224中并且被三元组的哈希值所引用。导向指定路由器的端口可成为OIF列表的一部分。因此,接入交换机能够确定在哪个端口上转发消息。
为了建立多播操作,接入交换机200可检测到相关联的数据接收机想要加入多播群组。接入交换机200例如可通过使用IGMP探听来实现此。当想要接收群组的数据的数据接收机被接入交换机200首先检测到时,接入交换机可计算{VLAN、源、群组}哈希并选取树标识符(例如,Ftag)以及从指定路由器列表中选取路由器作为指定路由器。
接入交换机200可使用{VLAN、源、群组}三元组来挑选树标识符。然而,树标识符不需要形成用于转发查找的关键词的一部分。树标识符可被用于基于IIC和CBL的树执行。处理器228可构建OIF列表224并将它装载到交换结构212中,其中该OIF列表可由处理器216访问。对于在其中通过使用(有效地)单个查找来进行到路由器端口和到接收机的转发的硬件而言,软件可构建OIF列表,该OIF列表是到达数据接收机的链接和到达指定路由器的链接的联合。
注意,{VLAN、源、群组}查找的硬件结果能够与源自{VLAN、源、群组}哈希的树标识符的端口一起被编程。这意味着其他树标识符的条目不需要被编程或计算。
对于在其中通过使用(有效地)单个查找来进行到路由器端口和接收机的转发的硬件而言,软件可构建OIF列表,该OIF列表是到达数据接收机的链接和到达指定路由器的链接的联合。然而,由于接入交换机寻求到路由器的群组,只有导向该交换路由器的端口需要成为OIF列表的一部分(除了导向数据接收机的端口之外)。
对于其他硬件而言,可使用两步查找。首先,可执行{VLAN、源、群组}哈希,其可提供包括数据接收机以及路由器_标签的OIF列表。然后,可执行提供了路由器端口列表的{VLAN,路由器_标签}查找。路由器_标签例如可以是:1)到此{VLAN,路由器_标签}的指定的交换路由器的间接指引;2)到可用路由器的列表的间接指引,这可能发生于路由器添加或移除期间;3)到已经被设置为活动/待机模式中的路由器集合的间接指引。
作为转发{VLAN,路由器_标签}查找的结果,硬件还能够被增强来提供树标识符(除了路由器_标签和OIF列表之外)。这能够被用于哈希产生了树标识符的选择不多的情形,这可以是配置驱动的。
当接入交换机200认知到指定交换路由器的移除时,接入交换机可简单地改变针对此指定的交换路由器的路由器_标签以指向导向其他可用的交换路由器的端口。然后,已经被分配到此路由器的群组可被重新分配到剩下的路由器。接入交换机例如可知道多少路由器是可用的,并且最高的源介质访问控制(MAC)地址可采用第一树号。在其他实现方式中,路由器_标签可以均衡的方式(例如,使用模运算)和/或通过考虑指定路由器距离树根的距离来进行重新分布。在建立时间之后,先前被分配到经移除的指定路由器的群组于是能够被重新分配到剩下的路由器-标签。
当另外的指定路由器可用时,认知到的群组在指定的交换路由器的更新列表间重新分布。在其他实现方式中,路由器_标签可以均衡的方式(例如,使用模运算)和/或通过考虑指定路由器距离树根的距离来进行重新分布。路由器_标签的改变可早于建立时段,在该建立时段期间流量被发送到所有可用的路由器。
所述的方案可能需要来自PIM的修改以用于以下情形中的最优操作:其中在层2网络中具有:a)多个源,但没有接收机;以及b)存在多个源,但接收机仅发出(*,g)加入。基本上,在这些情形中的层2网络将不会察觉到各种发送源和/或接收机。针对两种情形,由于层2网络未察觉到完整的{VLAN,源,群组}信息并且因此不能够计算完整的哈希,所以所发生的转发将朝向可用的路由器。然而,PIM在源发送数据时接收初始的数据消息。因此,如果PIM指定的路由器在层2多路径网络中(可能通过到IS-IS的重新分布)创建了类IGMP的{VLAN,群组,源}状态,那么就能够解决该问题。当这种情况发生时,硬件不再寻找OMF条目(其去向所有的路由器)或者通用的(*,群组)条目。作为替代,它寻找特定的{VLAN,源,群组}OIF列表,该列表将指向特定的路由器。
图3示出了层2多播多路径传送的示例流程图300。图3中所示的活动例如可由接入交换机130实现。如果多播消息已经被接收到,那么可对VLAN、源、以及与消息相关联的多播群组执行哈希操作(操作308)。该流程还能够包括基于哈希结果确定指定路由器的端口以及一个或多个数据接收机的(一个或多个)端口(操作312)。确定路由器端口和一个或多个数据接收机端口例如可通过使用哈希结果作为对OIF列表的索引来实现。该流程还要求使用所确定的端口在层2网络内交换消息(操作316)。
如果层2多播消息未被接收到,该流程能够包括确定是否接收到针对数据源的数据消息(操作320)。如果数据源也是数据接收机,那么例如会接收到针对数据源的数据消息。如果未接收到针对数据源的数据消息,那么进行是否从数据源接收到层2多播消息的检查(操作304)。如果接收到针对数据源的数据消息,那么流程包括将该消息交换至该数据源(操作324)。流程还能够包括检查是否从该数据源接收到层2多播消息。在用于层2多播消息传送的系统的操作期间可多次执行该流程活动。在某些实现方式中,流程可被持续地执行。
尽管图3示出了用于层2多播多路径传送的一个过程,但层2多播多路径传送的其他过程可包括更少的、另外的、和/或不用的操作布置。例如,过程可能不包括确定是否接收到针对数据源的数据消息。作为另一示例,过程可包括处理来自数据接收机的群组加入请求。作为另一示例,过程可包括处理指定路由器的改变(例如,移除或添加)。作为又一示例,接入交换机可能不必将多播消息交换至数据接收机(例如,因为它们在不同的VLAN上或者数据接收机不在层2网络中)。
图4示出了层2多播多路径传送的示例流程图400。该流程例如可由接入交换机130来实现。流程还能够包括确定指定路由器(例如,交换路由器)是否从层2网络中被移除(操作404)。确定指定路由器是否被移除例如可通过可达性测试来完成。如果指定路由器已经被移除,那么流程包括调整分配到该指定路由器的多播群组的指定路由器端口标识符,从而使得端口标识符指向其他指定路由器的端口(操作408)。例如,端口标识符可被调整为使得它指向所有的其他指定路由器端口。
流程还能够包括为被分配至该经移除的指定路由器的多播群组选择指定路由器(操作412)。选择指定路由器例如可通过以均衡的方式(例如,使用模运算)和/或通过考虑指定路由器到树根的距离来对这些路由器进行重新分布来完成。然后,已被分配到该经移除的路由器的群组可被重新分配到剩下的路由器。流程还要求调整被分配到经移除的路由器的多播群组的端口标识符以指向所选择的路由器的端口。
返回操作404,如果指定路由器尚未被移除,那么流程要求确定指定路由器是否已被添加到层2网络(操作420)。如果指定路由器尚未被添加,那么流程要求再次检查指定路由器是否被移除(操作404)。然而,如果指定路由器已经被添加,那么该流程要求识别多播群组以分配到所添加的指定路由器(操作424)。识别多播群组以分配到所添加的指定路由器例如可通过使用网络哈希算法进行负载共享来完成。在某些实现方式中,可通过使用模运算和/或考虑指定路由器到树根的距离来对路由器标签进行重新分布。
该流程还能够包括调整所识别的多播群组的端口标识符以指向针对所添加的指定路由器的端口(操作428)。调整所识别的多播群组的端口标识符以指向所添加的指定路由器例如可通过改变OIF列表中的端口标识符来完成。在用于层2多播消息传送的系统的操作期间可多次执行该流程。在某些实现方式中,图4中的流程可被持续地执行。
尽管图4示出了用于层2多播多路径传送的一个过程,但层2多播多路径传送的其他过程可包括更少的、另外的、和/或不同的操作布置。例如,过程可能不包括确定指定路由器是否被移除。作为另一示例,过程可能不包括确定指定路由器是否被添加。作为又一示例,过程可包括在路由器事件(添加或者移除)之后调整群组的路由器标签之前的安排时间(例如,在其中路由器流量被发送给所有路由器)。
注意在某些示例实现方式中,这里所概述的交换/路由功能可由编码在一个或多个非暂态计算机可读介质中的逻辑(例如,在专用集成电路(ASIC)中设置的嵌入式逻辑、数字信号处理器(DSP)指令、由处理器或其他类似机器执行的软件(可能包括目标代码和源代码)等等)来实现。在这些示例中的一些示例中,存储器元件能够存储用于这里所述的交换/路由操作的数据。这包括能够存储被执行以实现本说明书中所述的活动的软件、逻辑、代码或处理器指令的存储器元件。处理器能够执行与数据相关联的任何类型的指令以实现这里在本说明书中详细说明的交换/路由操作。在一个示例中,处理器能将元件或物品(例如,数据)从一个状态或事物(thing)变换到另一个状态或事物。
在另一示例中,这里所概述的交换/路由活动可以用固定逻辑或者可编程逻辑(例如,由处理器执行的软件/计算机指令)来实现,并且这里所标识的元件可以是某一类型的可编程处理器、可编程数字逻辑(例如,现场可编程门阵列(FPGA)、可擦写可编程只读存储器(EPROM)、电可擦写可编程只读存储器(EEPROM))、或者ASIC,其包括数字逻辑、软件、代码、电子指令、或者其任意适合组合。这些设备还可在适当的情况下或者基于具体需求将信息保存在在任意适合的存储器元件(随机存取存储器(RAM)、ROM、EPROM、EEPROM、ASIC等等)、软件、硬件中或者保存在任何其他适合的组件、设备、元件或对象中。任何可能的存储器项目(例如,数据库、表格、缓存等等)应当被视为被包含在广义术语“存储器元件”内。类似地,本说明书中所述的任何可能的处理元件、模块、和机器应当被视为包含在广义术语“处理器”内。
注意根据这里提供的示例,可能依照两个或三个元件来实现交互。然而,这么做仅是为了清楚和示例的目的。在某些情形中,通过只引用有限数目的网络元件可能更容易描述流程的给定集合的一个或多个功能。应当认识到,通信系统是可轻易扩展的并且能够容纳大量数目的云、网络和/或交换机,以及更复杂/精密的布置和配置。从而,这里提供的示例不应限制或禁止本说明书的广泛教导,因为它潜在地应用于种种其他架构。
图5示出了用于在层2网络中进行路由的示例计算机系统500。计算机系统500例如示出了交换机/路由器的控制平面的一些组件。系统500包括处理器510、输入/输出系统520、和存储器530,它们能够通过网络540(例如,辅助这些组件之间的单向或双向通行的内部框架)被耦合到一起。可替换地,这些元件能够以任何其他适当的方式被适合地链接(或交互)。处理器510能够包括在程序指令(例如,来自软件)的指示下处理数据的逻辑处理单元(例如,算术逻辑单元)。例如,处理器510可以是微处理器、微控制器、或者专用集成电路。处理器可依据精简指令集计算机(RISC)或者复杂指令集计算机(CISC)原理来进行操作。总之,处理器可以是以逻辑的方式对数据进行操纵的任何设备。
输入/输出系统520可包括一个或多个通信接口和/或一个或多个用户接口。通信接口例如可以是网络接口卡(有线的或者无线的)、调制解调器、或者总线接口。用户接口例如是用户输入设备(例如,键盘、键板、触摸板、鼠标、触控笔、或者麦克风)或者用户输出设备(例如,监视器、显示器、或者扬声器)。总之,系统520可以是计算机系统能够通过其接收和输出数据的设备的任意组合。
存储器530例如可包括随机存取存储器(RAM)、只读存储器(ROM)、闪存存储器、和/或盘存储器。各种项目可被不同的时间被存储在存储器的不同部分。总之,存储器530可以是用于存储数据的设备的任意组合。
存储器530包括指令532和数据536。指令532包括操作系统533(例如,Windows、Linux、或Unix)和包括交换管理器535的应用534。数据536包括应用534所需的数据和/或应用534生成的数据,其包括指定路由器列表537和输出接口(OIF)列表538。网络540例如可包括多种不同类型的总线(例如,串行或并行的),该总线在某种程度上在给定设备内部。
在某些操作模式中,根据交换管理器535,计算机系统500可使用在层2网络中共同分享的哈希序列来转发多播消息。例如可对{VLAN,源,群组}三元组执行哈希运算。在多数情形中,这应当会为每个三元组提供唯一的标识符。该标识符然后可被用于检索树标识符(即,确定在哪个树中进行转发)和指定路由器(即,层2网络中的交换路由器)。树标识符例如可以是Fabricpath中的转发标签。因此,树和指定路由器可被链接。
与{VLAN、源、群组}三元组相关联的树标识符和指定路由器可由接入交换机以多种方式来确定。例如,树标识符和指定路由器可被存储在OIF列表538中并且被三元组的哈希值所引用。导向指定路由器的端口可成为OIF列表的一部分。因此,接入交换机能够确定在哪个端口上转发消息。
为了建立多播操作,计算机系统500可检测到数据接收机想要加入多播群组(例如,通过使用IGMP探听)。当想要接收新的群组的数据的数据接收机被首先检测到时,计算机系统500可计算{VLAN、源、群组}哈希并选取树标识符(例如,Ftag)和来自指定路由器列表中的路由器。加入请求可被发送到指定路由器,这可构建该群组的转发树。此外,可向层2网络的余下部分通知该加入请求。
对于在其中通过使用(有效地)单个查找来进行到路由器端口和接收机的转发的硬件而言,计算机系统500可构建OIF列表,该OIF列表是到达数据接收机的链接和到达指定路由器的链接的联合。然而,由于接入交换机寻求到路由器的群组,只有导向该交换路由器的端口需要成为OIF列表的一部分(除了导向数据接收机的端口之外)。
对于其他硬件而言,可使用两步查找。首先,计算机系统500可执行{VLAN、源、群组}哈希,其可提供包括数据接收机以及路由器_标签的OIF列表。然后,可执行提供了路由器端口列表的{VLAN,路由器_标签}查找。路由器_标签例如可以是:1)到此{VLAN,路由器_标签}的指定的交换路由器的间接指引;2)到可用路由器的列表的间接指引,这可能发生于路由器添加或移除期间;3)到已经被设置为活动/待机模式中的路由器集合的间接指引。作为转发{VLAN,路由器_标签}查找的结果,硬件还能够被增强来提供树标识符(除了路由器_标签和OIF列表之外)。这能够被用于哈希产生了树标识符的选择不多的情形,这可以是配置驱动的。例如可通过对相对于树标识符的哈希值执行模运算来选择指定路由器。在某些实现方式中,还可考虑指定路由器到树的根的距离,更近的指定路由器通常是更加优选的。
当计算机系统500认知到指定路由器的移除时,处理器可简单地改变针对此指定路由器的路由器标签以指向导向其他可用的路由器的端口。然后,已经被分配到此经移除的路由器的多播群组需要被重新分配到剩下的路由器。例如,计算机系统500可调整针对相对于树标识符的哈希值执行的模运算以应对更少数目的路由器,并且这可用于对群组进行重新分配。例如,指定路由器可根据它们的MAC地址被分开到列表【路由器0、...、路由器X-1】中,而哈希值输出可通过X(路由器的数目)取模来进行处理。在某些实现方式中,还可考虑指定路由器到层2多播树的根的距离,更近的指定路由器通常是更优选的。因此,最接近层2多播树的根的(一个或多个)指定路由器可与树相关联(例如,选取树X的相同哈希值可选取最接近该树的根的指定路由器),这可提供增强的转发。作为另一示例,计算机系统500确定多少路由器是可用的,并且最高的源介质访问控制(MAC)地址可采用第一树号。层2网络中的交换机例如可使用PIM打招呼分组的接收来检测网络中的路由器的存在。
在安排时间之后,计算机系统500可将先前被分配到经移除的指定的交换路由器的群组分配给剩下的路由器-标签。重新分布算法可由计算机系统500和指定路由器使用从而使得哈希值被绑定到指定路由器。当新的指定的交换路由器可用时,多播群组在经修改的指定路由器列表间重新分布。例如,计算机系统500可调整针对相对于树标识符对哈希值执行的模运算以应对更多数目的路由器,并且这可被用于重新分配群组。在某些实现方式中,处理器还可评估指定路由器到层2多播树的根的距离,更近的指定路由器通常是更优选的。层2转发协议和PIM可进行交互以确定路由器相对于树根的位置。因此,最接近层2多播树的根的(一个或多个)指定路由器可与树相关联(例如,选取树X的相同哈希值将选取最接近该树的根的指定路由器),这可提供增强的转发。
作为另一示例,计算机系统500可确定多少执行路由器是可用的,并且最高的MAC地址可采用第一树号。层2网络中的交换机例如可使用PIM打招呼分组的接收来检测网络中的路由器的存在。在安排时间之后,计算机系统500可将先前被分配到经移除的指定的交换路由器的群组分配给剩下的路由器-标签。重新分布算法可由计算机系统500和指定路由器使用从而使得哈希值被绑定到指定路由器。计算机系统500例如可通过实现过程300-400中的一个或多个部分来完成这些操作。计算机系统500还可使用这里所论述的任何其他技术。
还应当注意,参考图1-5所述的操作仅示出了可由通信系统或者在通信系统内执行的一些可能的场景。这些操作中的一些操作可在适当的情况下被删除或者移除,并且在不背离本公开的范围的情况下,这些操作可被大幅地修改或者改变。此外,这些操作中的多个操作已经被描述为与一个或多个另外的操作同时或者并行地执行。然而,可在很大程度上更改这些操作的时序。先前的操作流已经被提供用于示例和论述。然而,基本的灵活性是允许的,在不背离本公开的教导的情况下可提供任何适当的布置、时间表、配置、和时序机制。
尽管已经参考具体实施例详细描述了本公开,但应当理解在不背离本公开的精神和范围的情况下可对其作出各种其他改变、替换、和更改。例如,实际上争取智能地交换消息的任何配置能轻易地采用本公开的教导。
许多其它的改变、替换、变型、更改、和修改可由本领域技术人员确定且本公开旨在涵盖落入所附权利要求范围内的所有这些改变、替换、变型、更改和修改。为了辅助美国专利和商标局(USPTO)和另外就本申请而发布的任何专利的任何读者理解所附权利要求,申请人希望指出申请人:(a)并非试图使所附权利要求中的任何权利要求自其申请日存在就援引美国专利法第112条第6款,只有在用语“用于......的装置”或者“用于......的步骤”被特定地用于所附权利要求时才要求援引该法条;以及(b)不旨在通过说明书中的任何陈述以未以在所附权利要求反映的任何方式来限制本公开。
Claims (19)
1.一种方法,包括:
从数据源接收多播数据消息,该消息在第一虚拟局域网中并且与多播群组相关联;
基于所述虚拟局域网、所述数据源以及所述多播群组来计算哈希值,其中所述哈希值指定所述多播数据消息要在其上转发的转发树与所述转发树的路由器的唯一组合;
确定层2网络中由所述哈希值指定的路由器的端口;
将所述多播数据消息交换至被确定的所述端口;以及
在所指定的转发树上转发所述多播数据消息。
2.如权利要求1所述的方法,还包括:
确定所述层2网络中由所述哈希值指定的数据接收机的端口;以及
将所述多播数据消息交换至被确定的该端口。
3.如权利要求1所述的方法,还包括:
确定指定路由器是否已被从所述层2网络中移除;以及
调整被分配到所述指定路由器的多播群组的端口标识符以标识所述层2网络中的其他指定路由器的端口。
4.如权利要求3所述的方法,还包括:
选择所述其他指定路由器中的一个作为被分配到经移除的路由器的所述多播群组的指定路由器;以及
调整被分配到所述经移除的路由器的所述多播群组的所述端口标识符以指向所述其他指定路由器中被选中的那个路由器的端口。
5.如权利要求1所述的方法,还包括:
识别已经被添加到所述层2网络的经添加的指定路由器;
识别分配到所述经添加的指定路由器的特定多播群组;以及
调整所述特定多播群组的端口标识符以指向所述经添加的指定路由器的端口。
6.一种网络节点,包括:
存储器元件,该存储器元件被配置为存储指令;以及
处理器,该处理器被耦合到所述存储器元件并且被配置为执行所述指令以使得所述网络节点被配置为:
确定是否从数据源接收到多播数据消息,该消息在第一虚拟局域网中并且与多播群组相关联;
基于所述虚拟局域网、所述数据源以及所述多播群组来计算哈希值,其中所述哈希值指定所述多播数据消息要在其上转发的转发树与所述转发树的路由器的唯一组合;
确定层2网络中由所述哈希值指定的路由器的端口;
将所述多播数据消息交换至被确定的所述端口;以及
在所指定的转发树上转发所述多播数据消息。
7.如权利要求6所述的网络节点,其中所述网络节点还被配置为:
确定所述层2网络中由所述哈希值指定的数据接收机的端口;以及
将所述多播数据消息交换至被确定的该端口。
8.如权利要求6所述的网络节点,其中所述网络节点还被配置为:
确定指定路由器是否已被从所述层2网络中移除;以及
调整被分配到所述指定路由器的多播群组的端口标识符以标识所述层2网络中的其他指定路由器的端口。
9.如权利要求8所述的网络节点,其中所述网络节点还被配置为:
选择所述其他指定路由器中的一个作为被分配到经移除的路由器的所述多播群组的指定路由器;以及
调整被分配到所述经移除的路由器的所述多播群组的所述端口标识符以指向所述其他指定路由器中被选中的那个路由器的端口。
10.如权利要求6所述的网络节点,其中所述网络节点还被配置为:
识别已经被添加到所述层2网络的经添加的指定路由器;
识别分配到所述经添加的指定路由器的特定多播群组;以及
调整所述特定多播群组的端口标识符以指向所述经添加的指定路由器的端口。
11.如权利要求6所述的网络节点,其中所述网络节点还被配置为:
构建输出接口(OIF)列表,该列表要被特定哈希值所引用。
12.如权利要求11所述的网络节点,其中所述OIF列表是基于来自多个数据源的群组加入请求而被构建的。
13.一种装置,包括:
用于从数据源接收多播数据消息的装置,该消息在第一虚拟局域网中并且与多播群组相关联;
用于基于所述虚拟局域网、所述数据源以及所述多播群组来计算哈希值的装置,其中所述哈希值指定所述多播数据消息要在其上转发的转发树与所述转发树的路由器的唯一组合;
用于确定层2网络中由所述哈希值指定的路由器的端口的装置;
用于将所述多播数据消息交换至被确定的所述端口的装置;以及
用于在所指定的转发树上转发所述多播数据消息的装置。
14.如权利要求13所述的装置,还包括:
用于确定所述层2网络中由所述哈希值确定的的数据接收机的端口的装置;以及
用于将所述多播数据消息交换至被确定的该端口的装置。
15.如权利要求13所述的装置,还包括:
确定指定路由器是否已被从所述层2网络中移除;以及
用于调整被分配到所述指定路由器的多播群组的端口标识符以标识所述层2网络中的其他指定路由器的端口的装置。
16.如权利要求15所述的装置,还包括:
用于选择所述其他指定路由器中的一个作为被分配到经移除的路由器的所述多播群组的指定路由器的装置;以及
用于调整被分配到所述经移除的路由器的所述多播群组的所述端口标识符以指向所述其他指定路由器中被选中的那个路由器的端口的装置。
17.如权利要求13所述的装置,还包括:
用于识别已经被添加到所述层2网络的经添加的指定路由器的装置;
用于识别分配到所述经添加的指定路由器的特定多播群组的装置;以及
用于调整所述特定多播群组的端口标识符以指向所述经添加的指定路由器的端口的装置。
18.如权利要求13所述的装置,还包括:
用于构建指定路由器列表的装置,该列表标识了所述层2网络中可用的指定路由器,其中该路由器列表是基于从所述层2网络的多个网络节点接收的注册消息而被构建的。
19.如权利要求13所述的装置,还包括:
用于构建输出接口(OIF)列表的装置,该列表要被特定哈希值所引用,其中该OIF列表是基于来自多个数据源的群组加入请求而被构建的。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/492,383 | 2012-06-08 | ||
US13/492,383 US9077562B2 (en) | 2012-06-08 | 2012-06-08 | System and method for layer-2 multicast multipathing |
PCT/US2013/036423 WO2013184236A2 (en) | 2012-06-08 | 2013-04-12 | System and method for layer-2 multicast multipathing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104335537A CN104335537A (zh) | 2015-02-04 |
CN104335537B true CN104335537B (zh) | 2017-06-13 |
Family
ID=48183030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380029830.0A Expired - Fee Related CN104335537B (zh) | 2012-06-08 | 2013-04-12 | 用于层2多播多路径传送的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9077562B2 (zh) |
EP (1) | EP2859695B1 (zh) |
CN (1) | CN104335537B (zh) |
WO (1) | WO2013184236A2 (zh) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9077562B2 (en) | 2012-06-08 | 2015-07-07 | Cisco Technology, Inc. | System and method for layer-2 multicast multipathing |
US9178837B2 (en) | 2012-07-17 | 2015-11-03 | Cisco Technology, Inc. | System and method for layer-2 network routing |
US20140044129A1 (en) * | 2012-08-10 | 2014-02-13 | Duane Edward MENTZE | Multicast packet forwarding in a network |
US9059901B1 (en) | 2012-09-26 | 2015-06-16 | Juniper Networks, Inc. | Methods and apparatus for multicast traffic failover in a network |
CN103873373B (zh) * | 2012-12-11 | 2017-05-17 | 杭州华三通信技术有限公司 | 一种组播数据报文转发方法及设备 |
US20150085862A1 (en) * | 2013-09-24 | 2015-03-26 | Hangzhou H3C Technologies Co., Ltd. | Forwarding Multicast Data Packets |
US9548960B2 (en) * | 2013-10-06 | 2017-01-17 | Mellanox Technologies Ltd. | Simplified packet routing |
US9479349B2 (en) * | 2013-12-31 | 2016-10-25 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd | VLAG PIM multicast traffic load balancing |
US9379979B2 (en) * | 2014-01-14 | 2016-06-28 | Palo Alto Research Center Incorporated | Method and apparatus for establishing a virtual interface for a set of mutual-listener devices |
CN105337866B (zh) * | 2014-06-30 | 2019-09-20 | 华为技术有限公司 | 一种流量切换方法及装置 |
CN104518891B (zh) * | 2014-12-31 | 2017-12-15 | 华为技术有限公司 | 胖树网络中的组播组建立方法、装置及胖树网络 |
US9843513B2 (en) * | 2015-03-20 | 2017-12-12 | Juniper Networks, Inc. | Multicast flow overlay using registration over a reliable transport |
US9930149B2 (en) * | 2015-03-24 | 2018-03-27 | Cisco Technology, Inc. | Multicast traffic distribution in a multi-pod network environment |
US10257074B1 (en) * | 2015-09-30 | 2019-04-09 | Juniper Networks, Inc. | Avoiding multicast traffic loss in networks having multi-homing designated routers |
US10819621B2 (en) | 2016-02-23 | 2020-10-27 | Mellanox Technologies Tlv Ltd. | Unicast forwarding of adaptive-routing notifications |
US10178029B2 (en) | 2016-05-11 | 2019-01-08 | Mellanox Technologies Tlv Ltd. | Forwarding of adaptive routing notifications |
US10200294B2 (en) | 2016-12-22 | 2019-02-05 | Mellanox Technologies Tlv Ltd. | Adaptive routing based on flow-control credits |
US10644995B2 (en) | 2018-02-14 | 2020-05-05 | Mellanox Technologies Tlv Ltd. | Adaptive routing in a box |
US11012418B2 (en) * | 2018-02-15 | 2021-05-18 | Forcepoint Llc | Multi-access interface for internet protocol security |
CN109639579B (zh) * | 2018-12-04 | 2021-05-14 | 盛科网络(苏州)有限公司 | 组播报文的处理方法及装置、存储介质、处理器 |
CN109756412B (zh) * | 2018-12-24 | 2020-12-25 | 华为技术有限公司 | 一种数据报文转发方法以及设备 |
US11005724B1 (en) | 2019-01-06 | 2021-05-11 | Mellanox Technologies, Ltd. | Network topology having minimal number of long connections among groups of network elements |
US10965589B2 (en) | 2019-02-28 | 2021-03-30 | Cisco Technology, Inc. | Fast receive re-convergence of multi-pod multi-destination traffic in response to local disruptions |
US11063860B2 (en) * | 2019-09-20 | 2021-07-13 | Juniper Networks, Inc. | Control plane-based EVPN optimized inter-subnet multicast (OISM) forwarding |
CN112737956A (zh) * | 2019-10-28 | 2021-04-30 | 华为技术有限公司 | 报文的发送方法和第一网络设备 |
US11575594B2 (en) | 2020-09-10 | 2023-02-07 | Mellanox Technologies, Ltd. | Deadlock-free rerouting for resolving local link failures using detour paths |
US11411911B2 (en) | 2020-10-26 | 2022-08-09 | Mellanox Technologies, Ltd. | Routing across multiple subnetworks using address mapping |
US11870682B2 (en) | 2021-06-22 | 2024-01-09 | Mellanox Technologies, Ltd. | Deadlock-free local rerouting for handling multiple local link failures in hierarchical network topologies |
US11765103B2 (en) | 2021-12-01 | 2023-09-19 | Mellanox Technologies, Ltd. | Large-scale network with high port utilization |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6266705B1 (en) * | 1998-09-29 | 2001-07-24 | Cisco Systems, Inc. | Look up mechanism and associated hash table for a network switch |
CN1627730A (zh) * | 2003-12-11 | 2005-06-15 | 阿尔卡特公司 | 多播流计数 |
US7983262B1 (en) * | 2003-03-24 | 2011-07-19 | Marvell International Ltd. | Efficient IP multicast bridging in ethernet switches |
CN102150148A (zh) * | 2008-09-09 | 2011-08-10 | 思科技术公司 | 层2拓扑中针对单播帧和多播帧的差别化服务 |
Family Cites Families (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4864559A (en) | 1988-09-27 | 1989-09-05 | Digital Equipment Corporation | Method of multicast message distribution |
US6002689A (en) | 1996-11-22 | 1999-12-14 | Sprint Communications Co. L.P. | System and method for interfacing a local communication device |
US5903559A (en) | 1996-12-20 | 1999-05-11 | Nec Usa, Inc. | Method for internet protocol switching over fast ATM cell transport |
US6728205B1 (en) | 1997-02-19 | 2004-04-27 | Massachusetts Institute Of Technology | Method and apparatus for automatic protection switching |
US6047331A (en) | 1997-02-19 | 2000-04-04 | Massachusetts Institute Of Technology | Method and apparatus for automatic protection switching |
US6744768B2 (en) | 1999-07-14 | 2004-06-01 | Telefonaktiebolaget Lm Ericsson | Combining narrowband applications with broadband transport |
US7203187B1 (en) | 1999-10-05 | 2007-04-10 | Thomson Licensing | Messaging services for digital subscriber loop |
US6934292B1 (en) | 1999-11-09 | 2005-08-23 | Intel Corporation | Method and system for emulating a single router in a switch stack |
US7002955B1 (en) | 2000-03-06 | 2006-02-21 | Advanced Micro Devices, Inc. | Selective address table aging in a network switch based on application state determined from a received data packet |
US6493759B1 (en) | 2000-07-24 | 2002-12-10 | Bbnt Solutions Llc | Cluster head resignation to improve routing in mobile communication systems |
US7151777B2 (en) | 2002-04-04 | 2006-12-19 | Fujitsu Limited | Crosspoint switch having multicast functionality |
GB0227614D0 (en) | 2002-11-27 | 2002-12-31 | 3Com Corp | Packet-switched network and network switches having a network layer forwarding by data link switching |
US7346025B2 (en) | 2003-02-28 | 2008-03-18 | Lucent Technologies Inc. | Portable wireless gateway |
US7512226B1 (en) | 2003-08-26 | 2009-03-31 | Nortel Networks Limited | IP-centric speed dial |
US7400589B2 (en) | 2004-02-27 | 2008-07-15 | Nortel Networks Limited | Method and apparatus for deriving optimal paths through a network subject to a subset sequence constraint |
WO2005084128A2 (en) | 2004-03-04 | 2005-09-15 | Outsmart Ltd. | Integration of packet and cellular telephone networks |
US20050210508A1 (en) | 2004-03-19 | 2005-09-22 | Lau Vincent W | System and method for managing time-go-live information of media content |
US7266635B1 (en) | 2004-07-22 | 2007-09-04 | Marvell Semiconductor Israel Ltd. | Address lookup apparatus having memory and content addressable memory |
US7333492B2 (en) | 2004-08-31 | 2008-02-19 | Innomedia Pte Ltd | Firewall proxy system and method |
US8059647B2 (en) | 2005-10-05 | 2011-11-15 | Nortel Networks Limited | Multicast implementation in a link state protocol controlled ethernet network |
JP4670604B2 (ja) | 2005-11-21 | 2011-04-13 | ブラザー工業株式会社 | 情報配信システム、情報処理装置、情報処理プログラム及び情報処理方法 |
US20070140131A1 (en) | 2005-12-15 | 2007-06-21 | Malloy Patrick J | Interactive network monitoring and analysis |
US7876706B2 (en) | 2006-02-28 | 2011-01-25 | Motorola, Inc. | Method and apparatus for root node selection in an ad hoc network |
US9043487B2 (en) | 2006-04-18 | 2015-05-26 | Cisco Technology, Inc. | Dynamically configuring and verifying routing information of broadcast networks using link state protocols in a computer network |
US7760668B1 (en) | 2006-06-20 | 2010-07-20 | Force 10 Networks, Inc. | Self-reconfiguring spanning tree |
US8718060B2 (en) | 2006-07-31 | 2014-05-06 | Cisco Technology, Inc. | Technique for multiple path forwarding of label-switched data traffic |
US8069304B2 (en) | 2006-09-08 | 2011-11-29 | Intel Corporation | Determining the presence of a pre-specified string in a message |
DE102007015226A1 (de) | 2006-09-28 | 2008-04-03 | Siemens Ag | Verfahren zum Rekonfigurieren eines Kommunikationsnetzwerks |
US8259720B2 (en) | 2007-02-02 | 2012-09-04 | Cisco Technology, Inc. | Triple-tier anycast addressing |
US7760735B1 (en) | 2007-02-06 | 2010-07-20 | Google Inc. | Method and system for discovering network paths |
WO2008121974A1 (en) | 2007-03-29 | 2008-10-09 | Olympus Communication Technology Of America, Inc. | A layer 2 routing protocol |
US8594085B2 (en) | 2007-04-11 | 2013-11-26 | Palo Alto Networks, Inc. | L2/L3 multi-mode switch including policy processing |
US7940661B2 (en) | 2007-06-01 | 2011-05-10 | Cisco Technology, Inc. | Dynamic link aggregation |
US7911944B2 (en) | 2007-12-26 | 2011-03-22 | Nortel Networks Limited | Tie-breaking in shortest path determination |
US8144602B2 (en) | 2008-08-06 | 2012-03-27 | Jds Uniphase Corporation | Network load tester with real-time detection and recording |
US8897130B2 (en) | 2009-09-16 | 2014-11-25 | Broadcom Corporation | Network traffic management |
US8619584B2 (en) | 2010-04-30 | 2013-12-31 | Cisco Technology, Inc. | Load balancing over DCE multipath ECMP links for HPC and FCoE |
US8873551B2 (en) | 2010-07-30 | 2014-10-28 | Cisco Technology, Inc. | Multi-destination forwarding in network clouds which include emulated switches |
US8514746B1 (en) | 2010-11-08 | 2013-08-20 | Juniper Networks, Inc. | Priority inversion with spanning tree protocol to trigger path switching |
US8694664B2 (en) | 2010-11-23 | 2014-04-08 | Cisco Technology, Inc. | Active-active multi-homing support for overlay transport protocol |
US8681802B2 (en) | 2011-08-15 | 2014-03-25 | Cisco Technology, Inc. | Proxy FHRP for anycast routing service |
US8606105B2 (en) | 2011-09-15 | 2013-12-10 | Ciena Corporation | Virtual core router and switch systems and methods with a hybrid control architecture |
US8717888B2 (en) | 2011-10-18 | 2014-05-06 | Cisco Technology, Inc. | Optimizations for N-way gateway load balancing in fabric path switching networks |
US8792374B1 (en) | 2011-12-07 | 2014-07-29 | Google Inc. | Managing network routes from a central server |
US9077562B2 (en) | 2012-06-08 | 2015-07-07 | Cisco Technology, Inc. | System and method for layer-2 multicast multipathing |
-
2012
- 2012-06-08 US US13/492,383 patent/US9077562B2/en active Active
-
2013
- 2013-04-12 EP EP13718465.1A patent/EP2859695B1/en not_active Not-in-force
- 2013-04-12 WO PCT/US2013/036423 patent/WO2013184236A2/en active Application Filing
- 2013-04-12 CN CN201380029830.0A patent/CN104335537B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6266705B1 (en) * | 1998-09-29 | 2001-07-24 | Cisco Systems, Inc. | Look up mechanism and associated hash table for a network switch |
US7983262B1 (en) * | 2003-03-24 | 2011-07-19 | Marvell International Ltd. | Efficient IP multicast bridging in ethernet switches |
CN1627730A (zh) * | 2003-12-11 | 2005-06-15 | 阿尔卡特公司 | 多播流计数 |
CN102150148A (zh) * | 2008-09-09 | 2011-08-10 | 思科技术公司 | 层2拓扑中针对单播帧和多播帧的差别化服务 |
Also Published As
Publication number | Publication date |
---|---|
US9077562B2 (en) | 2015-07-07 |
WO2013184236A3 (en) | 2014-01-30 |
WO2013184236A2 (en) | 2013-12-12 |
EP2859695B1 (en) | 2018-06-06 |
CN104335537A (zh) | 2015-02-04 |
US20130329727A1 (en) | 2013-12-12 |
EP2859695A2 (en) | 2015-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104335537B (zh) | 用于层2多播多路径传送的系统和方法 | |
CN103888369B (zh) | 以太网通信方法、系统和sdn交换机 | |
EP2911348B1 (en) | Control device discovery in networks having separate control and forwarding devices | |
JP5975083B2 (ja) | 通信システム、制御装置、パケット転送経路の制御方法およびプログラム | |
US8811398B2 (en) | Method for routing data packets using VLANs | |
JP6510115B2 (ja) | 負荷分散を実現するための方法、装置、およびネットワークシステム | |
JP2022532729A (ja) | スライスベースルーティング | |
US10645006B2 (en) | Information system, control apparatus, communication method, and program | |
Yu et al. | Space shuffle: A scalable, flexible, and high-bandwidth data center network | |
CN102150148A (zh) | 层2拓扑中针对单播帧和多播帧的差别化服务 | |
CN106559324A (zh) | 一种基于等价多路径转发报文的方法及网络设备 | |
CN106656793B (zh) | 一种sdn网络与ip网络的数据交互方法 | |
JPWO2012050071A1 (ja) | 通信システム、制御装置、処理規則の設定方法およびプログラム | |
Yu et al. | Space shuffle: A scalable, flexible, and high-performance data center network | |
Lei et al. | Multipath routing in SDN-based data center networks | |
JP6064989B2 (ja) | 制御装置、通信システム、ノード制御方法及びプログラム | |
JP6954295B2 (ja) | 通信システム、エッジノード、通信方法及びプログラム | |
JPWO2013176262A1 (ja) | パケット転送システム、制御装置、パケット転送方法及びプログラム | |
KR102001487B1 (ko) | 소프트웨어 정의 네트워킹 제어 방법 및 이를 수행하는 컴퓨팅 장치 | |
CN105577559B (zh) | 一种路由的方法、设备及系统 | |
US10476805B2 (en) | Network communication method, device, and internet system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170613 Termination date: 20210412 |
|
CF01 | Termination of patent right due to non-payment of annual fee |