交换机的分布式控制平面内的多播转让专利

申请号 : CN201110069908.4

文献号 : CN102263646B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : S·雷迪R·舍卡尔J·西耶德Q·沃赫拉

申请人 : 瞻博网络公司

摘要 :

本发明涉及交换机的分布式控制平面内的多播。在一些实施例中,一种方法,包括:从接入交换机接收包括与一组外围处理设备中的第一外围处理设备相关联的转发状态信息的第一信号。该方法还可以包括从所述第一外围处理设备接收包括数据分组的第二信号。该方法还可以包括向与外围处理设备组相关联的复制引擎发送第三信号,使得所述复制引擎:(1)定义所述数据分组的副本,该副本被包括在所述第三信号中;并且(2)向该外围处理设备组中的第二外围处理设备发送包括所述数据分组的所述副本的第四信号。

权利要求 :

1.一种方法,包括:

在计算设备处接收来自第一接入交换机的第一信号,第一信号包括与多个外围处理设备中的第一外围处理设备相关联的转发状态信息,所述计算设备与所述第一接入交换机是分离的;

在计算设备处接收来自所述第一外围处理设备的第二信号,第二信号包括数据分组;

以及

从计算设备向与所述多个外围处理设备相关联的复制引擎发送第三信号,使得所述复制引擎:(1)定义所述数据分组的第一副本,该副本被包括在所述第三信号中;(2)通过第二接入交换机向所述多个外围处理设备中的第二外围处理设备发送包括所述数据分组的所述第一副本的第四信号;(3)定义所述数据分组的第二副本,该第二副本被包括在所述第三信号中;以及(4)通过第三接入交换机向所述多个外围处理设备中的第三外围处理设备发送包括所述数据分组的所述第二副本的第五信号,所述复制引擎与所述第一接入交换机、所述第二接入交换机、所述第三接入交换机以及计算设备是分离的。

2.根据权利要求1所述的方法,其中所述复制引擎是第一复制引擎,并且发送所述第三信号包括发送所述第三信号以使得第二复制引擎:(1)定义所述数据分组的第三副本;

并且(2)向所述多个外围处理设备中的第四外围处理设备发送包括所述数据分组的所述第三副本的第六信号。

3.根据权利要求1所述的方法,其中所述第一信号至少部分地基于加入多播组的请求,所述多播组包括所述多个外围处理设备,所述请求是从所述第一外围处理设备接收到的,并且具有因特网组管理协议IGMP格式。

4.根据权利要求1所述的方法,其中所述多个外围处理设备被包括在多播组中,并且所述数据分组包括与该多播组相关联的多播标识符ID。

5.根据权利要求1所述的方法,其中所述数据分组的所述第一副本经由在所述第二接入交换机处实例化的分组转发引擎而被发送到所述第二外围处理设备,所述第二接入交换机在操作上耦合到所述第二外围处理设备和交换机结构。

6.根据权利要求1所述的方法,其中所述第一信号和所述第二信号中的至少一个是在计算设备处经由交换机结构从所述第一接入交换机接收到的。

7.根据权利要求1所述的方法,还包括:

在计算设备处接收来自所述复制引擎的第六信号,第六信号包括所述复制引擎的转发状态信息,第六信号具有边界网关协议BGP格式。

8.一种方法,包括:

在计算设备处接收来自第一接入交换机的第一信号,第一信号包括与多播组相关联的数据分组;

在计算设备处接收表示多个虚拟局域网VLAN的第二信号,该多个VLAN中的每个VLAN与所述多播组中包括的多个外围处理设备中的至少一个外围处理设备相关联;以及从计算设备向与所述多个VLAN中的第一VLAN相关联的复制引擎发送第三信号,使得所述复制引擎:(1)通过第二接入交换机向所述多个外围处理设备中的第一外围处理设备发送包括所述数据分组的第一副本的第四信号;和(2)通过第三接入交换机向所述多个外围处理设备中的第二外围处理设备发送包括所述数据分组的第二副本的第五信号,该第一外围处理设备和第二外围处理设备是所述多个VLAN中的所述第一VLAN的成员,所述复制引擎与所述计算设备、所述第一接入交换机、所述第二接入交换机以及所述第三接入交换机是分离的。

9.根据权利要求8所述的方法,其中所述复制引擎是第一复制引擎,该方法还包括:向与所述多个VLAN中的第二VLAN相关联的第二复制引擎发送第六信号,使得所述第二复制引擎向所述多个外围处理设备中的第三外围处理设备发送包括所述数据分组的第三副本的第七信号,该第三外围处理设备是所述多个VLAN中的所述第二VLAN的成员,所述计算设备与第二复制引擎是分离的。

10.根据权利要求8所述的方法,其中所述数据分组包括(1)与所述多个外围处理设备中的第三外围处理设备相关联的源标识符;和(2)与所述多播组相关联的多播组标识符。

11.根据权利要求8所述的方法,其中所述第二信号是经由多级交换机结构接收到的。

12.根据权利要求8所述的方法,其中所述第一信号具有边界网关协议BGP格式。

13.根据权利要求8所述的方法,其中所述第二接入交换机在操作上耦合到多级交换机结构和所述多个外围处理设备中的所述第一外围处理设备。

14.根据权利要求8所述的方法,其中发送所述第三信号的步骤包括发送所述第三信号以使得所述复制引擎经由在在操作上耦合到交换机结构的所述第二接入交换机处实例化的分组转发引擎而发送所述第四信号。

15.一种设备,包括:

多播组管理模块,被配置成在在操作上耦合到第一第2层设备和交换机结构的计算设备处被实例化,该第一第2层设备与虚拟局域网VLAN相关联,所述多播组管理模块从所述第一第2层设备接收第一信号,该第一信号至少部分地基于加入包括多个外围处理设备的多播组的请求,该请求是由与所述VLAN相关联的第一外围处理设备发送的,所述多播组管理模块基于所述第一信号定义所述VLAN与所述多播组之间的关联,所述多播组管理模块向第3层设备发送表示所述VLAN与所述多播组之间的关联的第二信号,使得(1)第3层设备基于所述关联向与所述VLAN相关联的复制引擎发送第三信号,并且(2)所述复制引擎响应于第三信号而通过所述第一第2层设备向所述第一外围处理设备发送与所述多播组相关联的数据分组的第一副本,并且通过第二第2层设备向与所述VLAN相关联的第二外围处理设备发送数据分组的第二副本,所述复制引擎与所述第一第2层设备和所述第二第2层设备是分离的。

16.根据权利要求15所述的设备,其中

所述VLAN是第一VLAN,

所述关联是第一关联,

所述加入所述多播组的请求是加入所述多播组的第一请求,

所述复制引擎是第一复制引擎,

所述多播组管理模块从与第二VLAN相关联的第三第2层设备接收第四信号,该第四信号至少部分地基于加入所述多播组的第二请求,该第二请求是由与所述第二VLAN相关联的第三外围处理设备发送的,该多播组管理模块基于所述第四信号定义所述第二VLAN与所述多播组之间的第二关联,所述多播组管理模块向第3层设备发送表示所述第二VLAN与所述多播组之间的第二关联的第五信号,使得(1)第3层设备基于所述第二关联向与所述第二VLAN相关联的第二复制引擎发送第六信号,并且(2)所述第二复制引擎响应于第六信号而通过所述第三第2层设备向所述第三外围处理设备发送所述数据分组的副本。

17.根据权利要求15所述的设备,其中

所述多播组管理模块从所述第3层设备接收第四信号,该第四信号包括针对与所述多播组相关联的第一VLAN标识符ID和与所述多播组相关联的第二VLAN ID的请求,该多播组管理模块响应于所述请求而发送第五信号,该第五信号包括与所述多播组相关联的第一VLAN ID和与所述多播组相关联的第二VLAN ID。

18.根据权利要求15所述的设备,其中所述多播组管理模块要响应于所述第一信号而向第3层设备发送第四信号,该第四信号至少部分地基于加入所述多播组的所述请求,该第四信号具有与协议无关的多播PIM格式。

19.根据权利要求15所述的设备,其中所述第一信号是在所述多播组管理模块的虚拟端口处被接收的,所述第一信号具有边界网关协议BGP格式。

20.根据权利要求15所述的设备,其中所述第一外围处理设备在操作上耦合到所述交换机结构并且所述第一第2层设备是接入交换机。

说明书 :

交换机的分布式控制平面内的多播

[0001] 相关申请的交叉引用
[0002] 本申请 要求2010年3月23 日提及 的标题 为“Multicasting within a Distributed Control Plane of a Switch”的美国临时专利申请no.61/316,719的优先权,通过引用将其全部并入于此。
[0003] 本专利申请还涉及:2009年6月30日提交的标题为“Methods and Apparatus Related to Any-to-Any Connectivity within a Data Center”的共同待审美国专利申请No.12/495,337;2009年6月30日提交的标题为“Methods and Apparatus Related to Lossless Operation within a Data Center”的美国专利申请No.12/495,344;2009年6月30日提交的标题为“Methods and Apparatus Related to Low Latency within a Data Center”的美国专利申请No.12/495,358;2009年6月30日提交的标题为“Methods and Apparatus Related to Flow Control within a Data Center Switch Fabric”的美国专利申请No.12/495,361;2009年6月30日提交的标题为“Methods and Apparatus Related to Virtualization of Data Center Resources”的美国专利申请No.12/495,364;2009年9月11日提交的标题为“Methods and Apparatus Related to a Low Cost Data CenterArchitecture”的美国专利申请No.12/558,130;以及2009年9月11日提交的标题为“Methods and Apparatus Related to a Flexible Data Center Security Architecture”的美国专利申请No.12/558,126。通过引用将上述申请的每个都全部并入于此。
[0004] 技术领域
[0005] 本发明总体上涉及网络内的多播组功能,更具体来说,涉及用于 多播组的高效管理和将数据分组分发到其成员的设备。

背景技术

[0006] 已知的网络结构系统通常包括一个或多个多播组,每个多播组包括一个或多个成员设备。许多这种多播组是使用因特网组管理协议(IGMP)来配置的,并且被配置成将数据分组广播到多播组的每个成员。通常,在网络内的单个设备处执行定义广播数据分组的副本并将副本发送到多播组中包括的每个成员设备的处理,导致在该复制/分发点处产生瓶颈。因此,需要用于将与多播组广播相关联的复制和分发任务分布到网络结构系统内的多个设备的设备。

发明内容

[0007] 在一些实施例中,提供了一种方法,包括:从接入交换机接收包括与一组外围处理设备中的第一外围处理设备相关联的转发状态信息的第一信号。该方法还可以包括从所述第一外围处理设备接收包括数据分组的第二信号。该方法还可以包括向与外围处理设备组相关联的复制引擎发送第三信号,使得所述复制引擎:(1)定义所述数据分组的副本,该副本被包括在所述第三信号中;并且(2)向外围处理设备组中的第二外围处理设备发送包括所述数据分组的所述副本的第四信号。
[0008] 在一些实施例中,提供了一种存储表示指令的代码的非暂时处理器可读介质,所述指令被配置成使得处理器:从接入交换机接收包括与一组外围处理设备中的第一外围处理设备相关联的转发状态信息的第一信号。该代码还可以表示如下指令,该指令被配置成使得处理器:从所述第一外围处理设备接收包括数据分组的第二信号。该代码还可以表示如下指令,该指令被配置成使得处理器:向与外围处理设备组相关联的复制引擎发送第三信号,使得所述复制引擎:(1)定义所述数据分组的副本,该副本被包括在所述第三信号中;并且(2)向外围处理设备组中的第二外围处理设备发送包括所述数据分组的所述副本 的第四信号。
[0009] 提供了一种存储表示指令的代码的非暂时处理器可读介质,所述指令在被执行时使得处理器:从接入交换机接收包括与多个外围处理设备中的第一外围处理设备相关联的转发状态信息的第一信号。该代码还可以表示如下指令,该指令在被执行时使得处理器:从所述第一外围处理设备接收包括数据分组的第二信号。该代码还可以表示如下指令,该指令在被执行时使得处理器:向与所述多个外围处理设备相关联的复制引擎发送第三信号,使得所述复制引擎:(1)定义所述数据分组的副本,该副本被包括在所述第三信号中;并且(2)向所述多个外围处理设备中的第二外围处理设备发送包括所述数据分组的所述副本的第四信号。
[0010] 在所述非暂时处理器可读介质中,所述复制引擎可以是第一复制引擎,所述数据分组的所述副本可以是所述数据分组的第一副本,并且发送所述第三信号的代码可以包括发送所述第三信号的代码,使得第二复制引擎:(1)定义所述数据分组的第二副本;并且(2)向所述多个外围处理设备中的第三外围处理设备发送包括所述数据分组的所述第二副本的第五信号。
[0011] 在所述非暂时处理器可读介质中,所述第一信号可以至少部分地基于加入多播组的请求,所述多播组包括所述多个外围处理设备,所述请求是从所述第一外围处理设备接收到的,并且具有因特网组管理协议格式。
[0012] 在所述非暂时处理器可读介质中,所述多个外围处理设备可以被包括在多播组中,并且所述数据分组包括与该多播组相关联的多播标识符ID。
[0013] 在所述非暂时处理器可读介质中,所述接入交换机可以是第一接入交换机,并且所述数据分组的所述副本可以经由在第二接入交换机处实例化的分组转发引擎而被发送到所述第二外围处理设备,所述第二接入交换机在操作上耦合到所述第二外围处理设备和交换机结构。
[0014] 在所述非暂时处理器可读介质中,所述第一信号和所述第二信号 中的至少一个可以是经由交换机结构从所述接入交换机接收到的。
[0015] 在所述非暂时处理器可读介质中,所述代码可以进一步包括表示这样的指令的代码,即,该指令在被执行时使得处理器:从所述复制引擎接收包括所述复制引擎的转发状态信息的第五信号,该第五信号具有边界网关协议BGP格式。
[0016] 提供了一种可以存储表示指令的代码的非暂时处理器可读介质,所述指令在被执行时使得处理器:接收包括数据分组的第一信号,该数据分组与多播组相关联。所述代码可以进一步包括表示这样的指令的代码,即,该指令在被执行时使得处理器:接收表示多个虚拟局域网VLAN的第二信号,该多个VLAN中的每个VLAN与所述多播组中包括的多个外围处理设备中的至少一个外围处理设备相关联。所述代码可以进一步包括表示这样的指令的代码,即,该指令在被执行时使得处理器:向与所述多个VLAN中的第一VLAN相关联的复制引擎发送第三信号,使得所述复制引擎向所述多个外围处理设备中的第一外围处理设备发送包括所述数据分组的副本的第四信号,该第一外围处理设备是所述多个VLAN中的所述第一VLAN的成员。
[0017] 在所述非暂时处理器可读介质中,所述复制引擎可以是第一复制引擎并且所述数据分组的所述副本可以是所述数据分组的第一副本。所述代码可以进一步包括表示这样的指令的代码,即,该指令在被执行时使得处理器:向与所述多个VLAN中的第二VLAN相关联的第二复制引擎发送第五信号,使得所述第二复制引擎向所述多个外围处理设备中的第二外围处理设备发送包括所述数据分组的第二副本的第六信号,该第二外围处理设备是所述多个VLAN中的所述第二VLAN的成员。
[0018] 在所述非暂时处理器可读介质中,所述数据分组可以包括(1)与所述多个外围处理设备中的第二外围处理设备相关联的源标识符;和(2)与所述多播组相关联的多播组标识符。在所述非暂时处理器可读介质中,所述第二信号可以是经由多级交换机结构接收到的。在所述非暂时处理器可读介质中,所述第一信号可以具有边界网关协议 BGP格式。在所述非暂时处理器可读介质中,所述多个外围处理设备中的所述第一外围处理设备可以在操作上耦合到接入交换机,该接入交换机在操作上耦合到多级交换机结构。
[0019] 在所述非暂时处理器可读介质中,所述发送所述第三信号的代码可以包括发送所述第三信号的代码,使得所述复制引擎经由在操作上耦合到交换机结构的接入交换机处实例化的分组转发引擎而发送所述第四信号。

附图说明

[0020] 图1是图解说明根据一个实施例的数据中心(DC)的示意图。
[0021] 图2是根据另一实施例的数据中心中包括的计算设备的示意图。
[0022] 图3是根据另一实施例的被配置成将数据分组发送到多播组的交换机结构系统的示意图。
[0023] 图4是根据另一实施例的被配置成将数据分组发送到跨多个VLAN的多播组的交换机结构系统的示意图。
[0024] 图5是根据另一实施例的被配置成将数据分组发送到跨多个VLAN的多播组的交换机结构系统的示意图。
[0025] 图6是描述根据另一实施例的将数据分组发送到具有多个VLAN内的成员的多播组的方法的流程图。

具体实施方式

[0026] 在一些实施例中,通信网络可以在操作上耦合到一个或多个接入交换机和/或计算设备。通信网络、接入交换机和/或计算设备可以包括在交换机结构系统中。通信网络例如可以是交换机核或多级交换机结构。
[0027] 在一些实施例中,每个接入交换机可以可操作地耦合到一个或多个外围处理设备,并且可以通过通信网络在其连接到的外围处理设备以及也耦合到通信网络的一个或多个其他设备(例如,一个或多个其他接入交换机、外围处理设备、计算设备等)之间提供连接性。接入 交换机可以可选地包括一个或多个网络控制实体(NCE),所述网络控制实体被配置成对与交换机结构系统中包括的一个或多个设备和/或实体相关联的控制平面信息(例如,一个或多个外围处理设备的转发状态信息)进行管理。接入交换机还可以包括被配置成将分组转发到与其耦合的一个或多个外围处理设备的一个或多个分组转发引擎(PFE)。在一些实施例中,NCE可以被视为交换机结构系统的控制平面的一部分,PFE可以被视为交换机结构系统的数据平面的一部分。
[0028] 每个计算设备可以是被配置成存储、包括、实例化和/或宿留与交换机结构系统相关联的一个或多个逻辑实体的硬件和/或软件(在硬件中执行)的任意组合。例如,计算设备可以宿留以下中的一个或多个:NCE、网络管理模块(NMM)、L2根模块、L3根模块、多播组管理模块(MGM)、复制引擎等。在一些实施例中,上述逻辑实体中的每一个都可以是在计算设备处操作的硬件和/或软件(在硬件中执行)的任意组合。
[0029] 在一些实施例中,外围处理设备可以向宿留在接入交换机处的NCE发送登陆请求。登陆请求可以可选地具有边界网关协议(BorderGateway Protocol(BGP))格式,并且可以包括外围处理设备的标识符信息(例如,网际协议(IP)地址、媒体接入控制(MAC)地址)。至少部分地基于登陆请求,NCE可以将标识符信息存储在存储器中。在一些实施例中,NCE可以随后将外围处理设备的标识符信息和/或转发状态信息广播到一个或多个其他NCE、NMM、L2根模块、L3根模块和/或多播组管理模块。
[0030] 在一些实施例中,外围处理设备可以向在接入交换机处实例化的NCE发送加入多播组的请求。该请求可以可选地具有因特网组管理协议(IGMP)格式。在收到该请求时,NCE可以可选地基于该请求发送BGP格式的分组。BGP格式的分组可以中继发送加入多播组的请求的外围处理设备的多播组加入请求。在一些实施例中,NCE可以将BGP格式的分组发送给例如L2根模块、L3根模块和/或MGM。在一些实施例中,接收方模块(L2根模块、L3根模块或MGM)可以相 应地将作出请求的外围处理设备添加到指定的多播组。更具体来说,接收方模块可以在存储器中存储记录、文件和/或作出请求的外围处理设备与多播组的标识符(例如,多播组标识符(ID),也称为多播键)之间的关联。
[0031] 在加入了多播组之后,外围处理设备随后可以向多播组中包括的一个或多个设备发送数据分组。更具体来说,外围处理设备可以向接入交换机发送包括该数据分组的信号。该数据分组可以可选地包括(通过例如多播ID)指定希望的多播组的分组报头、外围处理设备的源标识符和/或外围处理设备的VLAN。接入交换机可以被配置成将数据分组转发给与外围处理设备和接入交换机被包括在其中的VLAN相关联的L2根模块。在一些实施例中,L2根模块接着可以确定包括在多播组中的任何设备是否也同样被包括在与L2根模块、接入交换机以及外围处理设备的VLAN不同的VLAN中。
[0032] 如果L2根模块确定所指定的多播组的所有成员也是与L2根模块相同的VLAN的成员,那么L2根模块可以相应地将数据分组发送给一个或多个复制引擎。所述一个或多个复制引擎可以每个都与L2根模块相同的VLAN相关联,并且可以宿留在计算设备处/在计算设备处被实例化。在这种实施例中,每个复制引擎可以与指定的多播组中包括的一个或多个成员设备相关联,由此确保每个成员设备将接收到数据分组的副本。在一些实施例中,复制引擎可以与多个VLAN相关联。在一些实施例中,单个复制引擎可以与VLAN和/或多播组相关联。在一些实施例中,在接收到数据分组时,每个复制引擎可以定义其副本并将该数据分组的副本发送到多播组的一个或多个外围处理设备。为此,每个复制引擎可以通过(1)通信网络和(2)目标外围处理设备(即,多播组的一个成员)连接到的一个或多个接入交换机来发送数据分组的副本。
[0033] 如果L2根模块确定所指定的多播组的至少一个成员是与L2根模块的VLAN不同的VLAN的成员,那么L2根模块可以将该数据分组发送给L3根模块。在一些实施例中,L2根模块也可以向L3根模 块发送指定L2根模块(由此,源外围处理设备和接入交换机)与其相关联的VLAN的身份的分开的指示符。在一些实施例中,L3根模块可以宿留在可操作地耦合到通信网络的计算设备处/在该计算设备处被实例化。在一些实施例中,计算设备可以与L2根模块所宿留到的计算设备是同一计算设备。在其他实施例中,计算设备可以是与L2根模块所宿留到的计算设备不同的计算设备。
[0034] 在接收到数据分组时,L3根模块可以向MGM模块发送数据分组中包括的分组报头。更具体来说,L3根模块可以向MGM模块发送指定的多播组的多播ID。在一些实施例中,MGM模块可以宿留在与L3根模块相同的计算设备处。作为另一种选择,MGM模块可以宿留在与L3根模块不同的计算设备处。至少部分地基于多播ID,MGM模块可以确定交换机结构系统中包括的哪些VLAN包括多播组的成员设备,并向L3根模块发送包括该信息的响应。
[0035] 在接收到上述信息时,L3根模块可以确定哪些复制引擎与从MGM模块接收的响应中标识的两个或更多个VLAN相关联。然后,基于该确定结果,L3根模块可以向复制引擎发送数据分组或其副本。
[0036] 在接收到数据分组或数据分组副本时,每个复制引擎可以定义数据分组的副本,并将其发送给多播组中包括的一个或多个外围处理设备和该复制引擎所关联的VLAN。在一些实施例中,复制引擎中的任何复制引擎可以位于单个计算设备处并且/或者按一个或多个的组位于不同的计算设备处。
[0037] 图1是图解说明根据一个实施例的数据中心(DC)100(例如,超级数据中心、理想化数据中心)的示意图。数据中心100包括在操作上连接到各种外围处理设备170(例如,计算节点、服务节点、路由器和存储节点)的交换机核(SC)180。如图1所示,分布式控制系统190被配置成帮助交换机核180进行操作(例如控制、管理)。在一些实施例中,交换机核180可以被称为数据平面或交换机结构,分布式控制系统190可以被称为控制平面或分布式控制平面。在一些实施例中,数据中心100可以被称为数据中心结构(DCF)。在一些实施例中,数据中心 100可以具有活动部分和备份部分。
[0038] 在一些实施例中,交换机核180和分布式控制系统190可以整体地(或者分别)被称为数据中心100的“网络侧”,交换机核180和数据控制系统190外部的网络单元可以被称为数据中心100的“服务器侧”。在一些实施例中,交换机核180和/或分布式控制系统190的一个或多个部分可以被包括在数据中心100的服务器侧中。在一些实施例中,交换机核180和/或分布式控制系统190外部的一个或多个网络单元可以被包括在数据中心100的网络侧中。
[0039] 分布式控制系统190可以包括各种网络单元,如路由交换机、路由引擎(RE)和/或其他单元。分布式控制系统190可以是被配置成对交换机核180使用的各种控制平面信息进行管理(例如处理、分发、定义)的网络单元,使得交换机核180可以按期望的方式操作。在一些实施例中,控制平面信息可以包括用于管理交换机核180的信息和/或用于管理分布式控制系统190的信息。在一些实施例中,控制平面信息可以例如包括提供信息(provisioning information)、虚拟局域网(VLAN)信息、路线、转发状态、配置信息和/或其他信息。在一些实施例中,控制平面信息可以由交换机核180、分布式控制系统190和/或例如网络管理方定义,并且/或者可以包括与交换机核180、分布式控制系统190和/或例如网络管理方相关联(例如,从交换机核180、分布式控制系统190和/或例如网络管理方接收到)的信息。在一些实施例中,交换机核180的至少一部分和分布式控制系统190的至少一部分可以被包括在同一物理设备中并且/或者位于同一物理设备中。
[0040] 如图1所示的双箭头20所表示的,分布式控制系统190(例如分布式控制系统190的网络单元)和交换机核180(例如,交换机核180的网络单元)可以被配置成交换各种信号。信令20例如可以与控制平面信息的交换相关。
[0041] 此外,分布式控制系统190内的网络单元可以被配置成相互交换信号(相互通信),如双箭头10表示的那样。在一些实施例中,分布式控制系统190内(例如,在分布式控制系统190的组件之间)的由箭头10 表示的信令可以例如与控制平面信息的交换和/或定义相关。在一些实施例中,交换机核180的一个或多个网络单元(例如,分组转发引擎(PFE)、柜顶(top-of-rack,TOR)设备、线卡(linecard))和/或分布式控制系统190的一个或多个网络单元(例如路由引擎)可以被称为智能网络单元(INE)(也可以称为独立网络单元)。在此对DCF内(例如,在分布式控制系统190内,在分布式控制系统190与交换机核180之间)的控制平面信息的交换机制进行描述。
[0042] 在一些实施例中,交换机核180和/或分布式控制系统190的一个或多个INE可以与第2层(L2)域(例如,L2广播域)或第3层(L3)域(例如,L3广播域)相关联。在一些实施例中,L2广播域可以被单个DCF结构上的多个INE/虚拟DCF(VDCF)共享。以下描述与VDCF相关的更多详情。在一些实施例中,可以使用交换机结构180交换某个域的INE/VDCF之间的数据流量。在一些实施例中,一个或多个L2域可以被分配标识符(ID),该标识符在作为该L2域的一部分的INE/VDCF上可以是共用的,并且被用作数据分组的结构通知的一部分。在一些实施例中,L2域标识符(ID)也可以被用于在与该L3域(例如,路线和下一跳程(nexthop))相对应的成员INE/VDCF之间交换控制信息。对于配置,L2域可以对应于DCF上配置的VLAN名称并且可以由作为该VDCF的成员的一个或多个INE共享。在VDCF上,L2域可以对应于用于对在这些VDCF中使用的VLAN名称进行规范化的配置。在一些实施例中,该配置部分(configuration stanza)可以被称为等同族(equivalence-classes)。
[0043] 在一些实施例中,L3路由域可以由单个DCF结构上的多个INE/VDCF共享。例如,可以使用DCF结构交换该域的INE/VDCF之间的数据流量。在一些实施例中,每个L3域可以被分配ID,该ID在作为该L3域的一部分的INE/VDCF上可以是共用的,并且可以被用于交换与该L3域(例如,路线和下一跳程(nexthop))相对应的控制信息。为了进行配置,L3域可以对应于VDCF上配置的路由实例名并且可以由作为该VDCF的成员的一个或多个INE共享。在VDCF上, L3域可以对应于用于对在这些VDCF中使用的路由实例名称进行规范化的配置。在一些实施例中,该配置部分(configuration stanza)可以被称为等同族(equivalence-classes)。
[0044] 在一些实施例中,一个或多个外围处理设备170可以被配置成通过数据中心100的交换机核180进行通信。具体来说,数据中心100的交换机核180可以被配置成以相对低的等待时间在外围处理设备170之间提供任意至任意的连接性。在一些实施例中,交换机核180可以具有至少几百或几千个端口(例如,输出端口和/或输入端口),外围处理设备170通过这些端口可以发送和/或接收数据。在一些实施例中,外围处理设备170可以被配置成基于一个或多个协议(例如,以太网协议、多协议标签交换(MPLS)协议、纤维信道协议(fibre channel protocol)、通过纤维信道的以太网协议、与无限带相关的协议(Infiniband-relatedprotocol))向交换机核180发送信号和/或从交换机核180接收信号。在一些实施例中,外围处理设备可以包括一个或多个虚拟资源,如虚拟机。
[0045] 在一些实施例中,交换机核180可以是(例如可以充当)单个合并交换机(consolidated switch)(例如,单个大规模合并L2/L3交换机)。换句话说,与例如被配置成通过以太网连接相互通信的不同网络单元的集合相对,交换机核180可以被配置成作为单个逻辑实体(例如,单个逻辑网络单元)进行操作。交换机核180可以被配置成连接外围处理设备170(例如,帮助在外围处理设备170之间进行通信)。在一些实施例中,交换机核180可以被配置成通过接口设备(例如接入交换机)进行通信,所述接口设备被配置成按至少10Gb/s的速率发送数据。在一些实施例中,交换机核180可以被配置成通过接口设备(例如纤维信道接口设备)进行通信,所述接口设备被配置成按2Gb/s、4Gb/s、8Gb/s、10Gb/s、40Gb/s、100Gb/s和/或更快的链接速度的速率发送数据。
[0046] 尽管交换机核180在逻辑上可以是集中的,但是交换机核180的实现可以高度分布,例如,为了确保可靠度。例如,交换机核180的一些部分可以在物理上分布在许多机架(chassis)上。在一些实施例中,例如,交换机核180的一个处理级可以被包括在第一机架中,而交换机核 180的另一个处理级可以被包括在第二机架中。这两个处理级都可以在逻辑上充当单个合并交换机的一部分。
[0047] 在一些实施例中,交换机核180可以包括边缘部分和交换机结构部分(未示出)。边缘部分可以包括边缘设备(未示出),边缘设备可以充当交换机结构部分与外围处理设备170之间的网关设备。在一些实施例中,边缘部分185内的边缘设备可以总体地具有几千个端口(例如,100,000端口,500,000端口),通过这些端口可以将来自外围处理设备170的数据发送(例如,路由)到交换机核180的一个或多个部分中并且/或者从交换机核180的一个或多个部分发送出去。在一些实施例中,边缘设备可以被称为接入交换机、网络设备和/或输入/输出模块。在一些实施例中,边缘设备可以被包括在例如机架的柜顶(TOR)中,因此边缘设备可以被称为TOR设备。在一些实施例中,数据中心100内的INE可以被配置成基于不同协议来处理数据。
[0048] 在一些实施例中,数据中心100内的一个或多个组件(例如TOR设备)可以包括专用集成电路(ASIC)。在一些实施例中,该ASIC可以是分组分析、分类和/或转发ASIC。在一些实施例中,ASIC可以是缓冲和结构流控制ASIC。在一些实施例中,ASIC可以是结构交换机单元ASIC。
[0049] 在一些实施例中,边缘设备可以被配置成向交换机核180的交换机结构部分发送数据并且/或者从其接收数据。在一些实施例中,交换机核180的边缘部分内的边缘设备可以被配置成对例如在交换机核180处从外围处理设备170接收的数据分组进行分类。具体来说,交换机核180的边缘部分内的边缘设备可以被配置成执行以太网类型的分类,其可以包括基于例如第2层以太网地址(例如,媒体访问控制(MAC)地址)和/或第4层以太网地址(例如,通用数据报协议(universal datagramprotocol(UDP))地址)的分类。边缘设备(或数据中心100的其他INE)可以包括例如分组转发引擎(PFE),该分组转发引擎被配置成执行例如分析功能、分类功能、转发功能和/或排队和调度功能。因此,可以在数据分组进入交换机核180之前进行分组分析、分组分类、分组转发以及 分组排队和调度。因此,不必在交换机核180的级处执行这些功能。这可以减小与交换机核180相关联的等待时间。在一些实施例中,例如,端到端等待时间(即,通过交换机核180将数据从边缘设备发送到另一边缘设备所用的时间)可以短于使用以太网协议的交换机核180的端到端等待时间。
[0050] 在一些实施例中,分布式控制系统190的一个或多个路由引擎(RE)可以被配置成向交换机核180的一个或多个PFE提供控制平面信息,使得交换机核180的PFE可以适当处理在交换机核180处接收到的数据。在一些实施例中,一个或多个RE可以基于一个或多个虚拟资源。在一些实施例中,分布式控制系统190可以至少部分地由RE的网络和RE交换机来定义。在一些实施例中,图1所示的箭头10表示的信令中的至少一些可以表示RE与PFE之间的信令。在一些实施例中,图1所示的箭头20表示的信令中的至少一些可以表示定义分布式控制系统190中的至少一些的RE之间的信令。
[0051] 基于不同平台,可以在外围处理设备170和/或交换机核180处处理数据。例如,一个或多个外围处理设备170与边缘部分处的边缘设备之间的通信可以是基于以太网协议或非以太网协议定义的数据分组的流。在一些实施例中,可以不在交换机核180的交换机结构部分内执行的各种数据处理可以在交换机核180的边缘部分内的边缘设备处执行。例如,数据分组可以在交换机核180的边缘部分的边缘设备处被分析成单元(cell),这些单元可以从边缘设备被发送到交换机核180的交换机结构部分。这些单元可以被分析成段并在交换机核180的交换机结构部分内作为段(在一些实施例中也可以称为片(flit))被发送。在一些实施例中,数据分组可以在交换机核180的交换机结构部分的一部分处被分析成单元。在一些实施例中,可以在交换机核180的边缘部分内的边缘设备(例如接入交换机)处实现拥塞分解方案,并且/或者可以在交换机核180的边缘部分内的边缘设备(例如接入交换机)处执行通过交换机核180的交换机结构部分对数据(例如单元)传输的调度。不过,不必在定义交换机核180的交换机结构的模块内执行拥塞分解方案和/或数 据传输的调度。
[0052] 在一些实施例中,上述架构可以支持多目的地帧的转发。在一些实施例中,这些帧可以是一个或多个以下类型的帧:L2广播、L2未知单播、L2已知多播(基于通用属性注册协议(GARP)和/或通用多播注册协议(GMRP)定义的)、L2未知(非IP)多播、L3(IP)已知多播(链路本地的和全局的)和L3(IP)未知(即,仅发送方)多播。根据上述多目的地帧类型中的一个或多个定义的数据帧可以集体地被称为BUM(广播、未知单播和多播)流量。
[0053] 图2是根据一个实施例的数据中心中包括的计算设备的示意图。更具体来说,图2是计算设备200的系统框图,类似于连接到如以上关于图1描述的数据中心的交换机核(例如,交换机结构、交换机结构系统)的计算设备。计算设备200包括处理器210、存储器
220以及线卡230。存储器220包括L2交换模块221、L3交换模块222、多播管理模块223以及复制引擎模块224。线卡230包括物理端口231和232。处理器210在操作上耦合到存储器220和线卡230。在一些实施例中,线卡230包括一个或多个处理器和/或存储器(图2中未示出)。尽管在图2中示出为包括在单个计算设备中,但是在一些实施例中,L2交换模块221、L3交换模块222、多播管理模块223以及复制引擎模块224中的一个或多个可以被包括在连接到数据中心的交换机核的一个或多个其他计算设备中。按此方式,L2交换模块221、L3交换模块222、多播管理模块223以及复制引擎模块224的各个功能可以分布在一个或多个硬件设备上,以提高数据中心系统的性能和/或效率。
[0054] 物理端口231和232可以被配置成可选地通过以太网网络与以太网和/或纤维信道外围处理设备进行通信。附加地或者替换地,物理端口231和232可以被配置成与纤维信道设备(如纤维信道交换机)进行通信。例如,物理端口231和232可以使用通过电缆的双绞电信令或通过光纤缆线的光纤信令来实现物理层。在一些实施例中,物理端口231和232中的一个可以实现一个物理层,如双绞电信令,物理端口231和232中的另一个可以实现不同的物理层,如光纤信令。此外,物理端口231和 232可以被配置成允许计算设备200通过普通协议(如以太网、纤维信道和/或通过以太网的纤维信道(FCoE))与其他外围处理设备、交换设备和/或边缘设备(例如,其他计算设备(或“计算节点”))进行通信。在一些实施例中,物理端口231和232中的一个可以实现一个协议,如以太网/FCoE,而物理端口231和232中的另一个可以实现不同的协议,如纤维信道。因此,计算设备200可以通过物理端口231和232使用同类或异类物理层和/或协议与多个外围处理和/或交换设备进行通信。
[0055] L2交换模块221可以是任何基于硬件的模块和/或基于软件的模块(在硬件中执行),其被配置成从能够基于第2层进行通信(即,至少部分地基于发送方和/或接收方设备或模块的物理地址(例如以太网MAC地址)进行通信)的一个或多个设备或模块接收和处理信息。如图2所示,L2交换模块221是包括在计算设备200的存储器220中的软件模块。在一些实施例中,L2交换模块221可以(例如经由接入交换机)从外围处理设备接收结构登陆请求和/或加入指定多播组的请求。该请求可以可选地包括转发状态和/或外围处理设备的其他标识符信息或与外围处理设备相关的其他标识符信息。在这种实施例中,L2交换模块221可以可选地存储作出请求的外围处理设备与指定的多播组之间的关联,并且/或者向另一计算设备(例如,包括多播管理模块的计算设备)发送至少部分地基于加入多播组的请求的信号。在一些实施例中,加入多播组的请求可以包括足以唯一地标识指定的多播组的多播组标识符(ID)。
[0056] 在一些实施例中,L2交换模块221可以从外围处理设备(例如,指定的多播组中包括的成员设备)接收要发送给指定的多播组中包括的一个或多个成员设备的数据分组。该数据分组可以可选地在分组报头中包括指定的多播组的标识符(例如,多播组ID)。在这种实施例中,L2交换模块221可以相应地将所接收到的数据分组转发给一个或多个其他计算设备,以将该数据分组拷贝和/或发送到成员设备。在一些实施例中,所述其他计算设备中的一个或多个可以是并且/或者可以包括至少一个复制引擎模块,所述至少一个复制引擎模块被配置成:(1)定义数据分组的一个或多个副本;和(2)将数据分组的副本发送到多播组中包括 的一个或多个设备(例如,外围处理设备)。
[0057] L3交换模块222可以是任何基于硬件的模块和/或基于软件的模块(在硬件中执行),其被配置成从能够基于第3层进行通信(即,至少部分地基于发送方和/或接收方设备或模块的网络层地址(例如网际协议(IP)地址)进行通信)的一个或多个设备或模块接收和/或处理信息和/或与该一个或多个设备或模块相关联。如图2所示,L3交换模块222是包括在计算设备200的存储器220中的软件模块并且要由处理器210执行。在一些实施例中,L3交换模块222可以从包括在多播组中的外围处理设备接收要发送给多播组的至少一部分的数据分组。在这种实施例中,L3交换模块222可以被配置成定义信号,并将该信号发送给在物理上和/或在操作上耦合到交换机核(图2中未示出)的一个或多个其他计算设备。该信号例如可以包括对一个或多个多播组、外围处理设备和/或数据中心或其一部分中包括的VLAN之间的任何现有的关联的请求。该请求可以包括对该数据中心中包括的一个或多个多播组的标识符的请求和/或对数据中心中包括的一个或多个VLAN(一个或多个外围处理设备是其一部分)的标识符的请求。按此方式,L3交换模块222可以接收到足以确定数据中心或交换机结构系统的哪些外围处理设备与哪些多播组和/或VLAN相关联的信息。
[0058] 至少部分地基于该信息,L3交换模块222可以确定哪些VLAN与由接收的分组指定的多播组的各个成员外围处理设备相关联。然后,至少部分地基于该VLAN信息,L3交换模块222可以进一步确定将数据分组发送到与每个这种VLAN相关联的一组复制引擎中的哪一个,以供复制和随后的发送。
[0059] 最后,L3交换模块222可以可选地将数据分组发送到至少第一复制引擎(例如,在计算设备处实例化/宿留的复制引擎模块),以供拷贝和发送到所指定的多播组中包括的一个或多个外围处理设备。
[0060] 在一些实施例中,L3交换模块222可以将数据分组连同与一个或多个其他复制引擎相关联的信息一起发送给复制引擎。所述一个或多个其他复制引擎可以可选地与至少一个VLAN相关联,所述VLAN包括来 自所述指定的多播组的至少一个外围处理设备。然后,至少部分地基于复制引擎信息,第一复制引擎可以将数据分组发送到一个或多个其他复制引擎,以将其拷贝和发送到多播组中的其余外围处理设备。按此方式,L3交换模块223可以将单个信号发送给单个复制引擎,使得多个复制引擎定义包括在该信号中的分组的副本,然后将这些副本发送到多个外围处理设备。
[0061] 多播管理模块223可以是任何基于硬件的模块和/或基于软件的模块(在硬件中执行),被配置成存储和/或提供与一个或多个多播组、外围处理设备和/或VLAN相关联的信息。如图2所示,多播管理模块223是包括在计算设备200的存储器220中的软件模块并且要由处理器210执行。在一些实施例中,多播管理模块223可以被配置成:(1)接收和/或存储与一个或多个虚拟局域网(VLAN)相关联的信息,每个这种VLAN包括单个多播组的一个或多个成员;(2)接收加入该多播组的请求;(3)接收数据分组以供发送到一个或多个VLAN中包括的多播组的一个或多个成员;和/或(4)将数据分组发送到与所述一个或多个VLAN相关联的一个或多个复制引擎,从而将该数据分组复制并发送到多播组的每个成员。在这种实施例中,多播管理模块223可以从在计算设备200处实例化的另一模块和/或从在另一计算设备处实例化的模块(如L2交换模块或L3交换模块)接收上述信息(例如,加入多播组的请求、数据分组)。
[0062] 在一些实施例中,多播管理模块223可以被配置成在存储器220中存储与一个或多个多播组相关联的信息,包括例如多播组信息(例如,多播组标识符(ID)、多播组名称)、多播组成员设备信息(例如,设备MAC地址、设备IP地址)、VLAN设备成员资格信息(例如,给定设备与VLAN之间的关联性)等。在这种实施例中,计算设备200可以被配置成对针对上述信息中的任意信息或所有信息的一个或多个请求进行答复。
[0063] 复制引擎模块224可以是任意基于硬件的模块和/或基于软件的模块(在硬件中执行),其被配置成定义一个或多个数据分组并且/或者将 一个或多个数据分组发送到一个或多个成员设备(例如,多播组中包括的设备)。如图2所示,复制引擎模块224被包括在计算设备200的存储器220中并且要由处理器210执行。在一些实施例中,复制引擎模块224可以从在操作上耦合到同一交换机结构和/或交换机核的另一模块和/或设备接收数据分组。复制引擎模块224接着可以可选地定义数据分组的一个或多个副本,并相应地将数据分组的每个副本发送到接收方外围处理设备,如包括在指示的多播组中的外围处理设备。在一些实施例中,复制引擎模块224可以被包括在包括一个或多个复制引擎的一个组或“树”中。该复制引擎组或树可以可选地与指定的VLAN和/或多播组相关联。按此方式,该复制引擎树中的第一(或“根”)复制引擎可以接收数据分组,并相应地将该数据分组发送给该组/树中包括的一个或多个其他复制引擎,使得每个复制引擎定义数据分组的至少一个副本并将该至少一个副本发送给指示的外围处理设备。
[0064] 图3是根据另一实施例的被配置成向多播组发送数据分组的交换机结构系统的示意图。更具体来说,图3示出了交换机结构系统300,其包括在操作上耦合到计算设备320、接入交换机331和332以及计算设备350的通信网络310。计算设备320包括L2根模块322,并且计算设备350包括复制引擎352-356。接入交换机331和332分别包括分组转发引擎(PFE)374和375,分别包括网络控制实体(NCE)372和373。接入交换机331在操作上耦合到外围处理设备341和342。接入交换机332在操作上耦合到外围处理设备343和
344。
[0065] 通信网络310可以是硬件和/或软件(在硬件上执行)的任意组合,其被配置成在外围处理设备341-344中的任一个、计算设备320、计算设备350和/或接入交换机331-332中的任一个之间发送数据。在一些实施例中,通信网络310可以是交换机结构或交换机核,如多级交换机结构。通信网络310可以可选地至少部分地基于以太网、纤维信道、FCoE和/或另一网络协议(如基于单元的网络传输)来发送数据。在以下文献中公开了与通信网络(如交换机结构和使用基于单元的网络传输的多级交换机结构)相关的其他详情:2009年6月30日提交的标题为“Methods and Apparatus Related to Any-to-Any Connectivity within a DataCenter”的美国专利申请No.12/495,337,通过引用将其全部内容并入于此。在一些实施例中,通信网络310可以包括被配置成根据以上列举的网络协议中的一个或多个来交换数据的一个或多个硬件设备。在以下文献中公开了与通信网络(如交换机结构和多级交换机结构)相关的其他详情:2009年9月11日提交的标题为“Methods and Apparatus Relatedto a Low Cost Data Center Architecture”的美国专利申请No.12/558,130,通过引用将其全部内容并入于此。
[0066] 接入交换机331-332中的每一个都可以是位于通信网络310的边缘的硬件和/或软件(在硬件中执行)的任意组合。如图3所示,接入交换机331-332可以充当到与其耦合的一个或多个外围处理设备的网关。同样如图3所示,接入交换机331-332中的每一个都可以宿留一个或多个NCE(以下要描述),如宿留在接入交换机331处的NCE 372和宿留在接入交换机332处的NCE 373。
[0067] 在一些实施例中,接入交换机331-332中的每一个都可以在物理上位于交换机结构系统300的机架内。在一些实施例中,例如,每个接入交换机331-332都可以位于同一机架内。在其他实施例中,每个接入交换机331-332都可以位于不同的机架内。在结构上,接入交换机331-332可以既充当源接入交换机又充当目的地接入交换机。因此,接入交换机331-332可以向通信网络310的数据平面部分和/或外围处理设备341-344发送包括数据(例如,数据帧的数据流、分组和/或数据单元)的信号,并且从通信网络310的数据平面部分和/或外围处理设备341-344接收包括数据的信号。接入交换机331-332中的每一个都可以可选地被称为边缘设备和/或柜顶“TOR”设备。
[0068] 如图3所示,接入交换机331-332每个都被配置成通过通信网络310的数据平面部分相互进行通信、与计算设备320和/或计算设备350进行通信。具体来说,通信网络310的数据平面部分被配置成在接入交换机331-332之间以相对短的等待时间提供任意到任意的连接性。例如,通信网络310的数据平面部分可以被配置成在计算设备350与接入交换机331 之间或者在接入交换机332与计算设备320之间发送(例如传送)数据。在一些实施例中,通信网络310可以具有至少几百或几千个端口(例如,输入端口和/或输出端口),通过这些端口,接入交换机331-332、计算设备320和/或计算设备350可以发送和/或接收数据。在以下文献中公开了与通信网络(如交换机结构和使用基于单元的网络传输的多级交换机结构)相关的其他详情:2009年6月30日提交的标题为“Methods andApparatus Related to Any-to-Any Connectivity within a Data Center”的美国专利申请No.12/495,337,通过引用将其全部内容并入于此。
[0069] 如在此更详细地讨论的那样,接入交换机331和接入交换机332可以被配置成宿留一个或多个网络控制实体(NCE)以例如分别管理外围处理设备341-342和343-344。如图3所示,接入交换机331宿留NCE 372以管理外围处理设备341和342,接入交换机332宿留NCE 373以管理外围处理设备343和344。在一些实施例中,NCE 372和NCE 373中的每一个都可以分别管理接入交换机331和332的一个或多个物理端口。此外,NCE 372和NCE 373中的每一个都可以包括转发状态和/或分别与外围处理设备341-342和343-344相关联的其他控制平面信息(例如MAC地址信息、IP地址信息、VLAN信息、多播组信息)。NCE 372-373每个都可以是进程、应用、虚拟机以及/或者在主机设备处执行的一些其他软件模块(在硬件中执行)或硬件模块。尽管在图3中未示出,计算设备320和/或计算设备350也可以可选地宿留一个或多个NCE,以管理例如一个或多个复制引擎、一个或多个物理端口等。在一些实施例中,NCE372-373可以被视为交换机结构系统300的控制平面的一部分。
[0070] 在一些实施例中,NCE 372-373中的每一个都可以由控制实体或模块(如宿留在计算设备(例如计算设备320)处的网络管理模块(在图3中未示出))来定义和/或产生。计算设备320可以基于根据主机协议的流量的当前量和/或其他负荷平衡或其他网络管理因素来提供一个或多个新NCE。NCE 372-373中的每一个都可以可选地被配置成接收一个或多个主机协议请求(如一个或多个边界网关协议(BGP)、因特网组管理协议(IGMP)、动态主机配置协议(DHCP)、地址解析协议(ARP)、 逆地址解析协议(RARP)或其他主机协议请求)并对其进行响应。如上所述,在一些实施例中,NCE 372-373中的每一个都可以与存储有交换机结构系统300中包括的一个或多个设备的地址信息(如接入交换机331-332中的一个或多个和/或外围处理设备341-344中的一个或多个的IP地址和/或MAC地址)的一个或多个表或数据记录(在图3中未示出)相关联。
[0071] 接入交换机331和332中的每一个都可以进一步被配置成宿留一个或多个分组转发引擎(PFE),如宿留在接入交换机331处的PFE 374和宿留在接入交换机332处的PFE375。在一些实施例中,PFE 374和PFE375中的每一个都可以是硬件模块和/或基于软件的模块(在硬件中执行),该硬件模块和/或基于软件的模块在物理设备(例如,接入交换机)处被实例化和/或宿留,并被配置成在两个或多个设备之间发送流量。更具体来说,PFE 374和PFE 375中的每一个都可以接收一个或多个分组并将其转发给在操作上耦合到该PFE所宿留的接入交换机的一个或多个外围处理设备。例如,如图3所示,PFE 374可以被配置成将数据分组转发给外围处理设备341和/或外围处理设备342(这两者都在操作上耦合到接入交换机331)。此外,在图3中,PFE 375可以被配置成将数据分组转发给外围处理设备343和/或外围处理设备344(这两者都在操作上耦合到接入交换机332)。
[0072] 计算设备320和350都可以是被配置成执行一个或多个网络管理任务的硬件和/或软件(在硬件上执行)的任意组合。在一些实施例中,计算设备320和350可以是服务器设备。计算设备320和350可以通过例如有线和/或无线以太网、纤维信道或其他物理和/或逻辑连接而在物理上和/或在操作上耦合到通信网络310。
[0073] 如图3所示,计算设备320包括并且/或者宿留L2根模块322。尽管在图3中未示出,但是在一些实施例中,交换机结构系统300可以包括多个计算设备,每个计算设备都包括并且/或者宿留与L2根模块322类似的一个或多个L2根模块。在一些实施例中,L2根模块322可以是基于硬件的模块和/或基于软件的模块(在硬件中执行),该基于硬件的 模块和/或基于软件的模块被配置成至少部分地基于一个或多个设备(例如,接入交换机331-332和外围处理设备341-344)的第2层信息(例如,物理地址信息)存储并且/或者发送与这些设备相关联的信息(例如,标识符信息、多播组信息、VLAN信息)。L2根模块322也可以被配置成接收一个或多个多播组加入请求和/或一个或多个多播数据分组以供发送到多播组的成员。
[0074] 如图3所示,计算设备350包括并且/或者宿留复制引擎352-356。在一些实施例中,复制引擎352-356可以均为基于硬件的模块和/或基于软件的模块(在硬件中执行),该模块被配置成接收并拷贝一个或多个数据分组以供发送到一个或多个接收方设备(例如,外围处理设备341-344中的任一个)。
[0075] 外围处理设备341-344中的每一个都可以是硬件和/或软件(在硬件中执行)的任意组合,其能够通过接入交换机在通信网络310上发送和/或接收信息。在一些实施例中,以上列举的外围处理设备中的一个或多个可以可选地例如是计算节点、服务节点、路由器或存储节点。在一些实施例中,外围处理设备341-344中的一个或多个可以执行一个或多个计算任务,如一个或多个数据存储、作为服务的软件(SAS)、web服务、内容请求或其他计算任务。
[0076] 外围处理设备341-344可以利用任何合适的连接(如光学连接(例如,光缆和光连接器)、电连接(例如,电缆和电连接器)等),与接入交换机331-332的一个或多个物理端口(在图3中未示出)相通信并且/或者与该一个或多个物理端口在操作上耦合。这样,外围处理设备341-344可以被配置成向接入交换机331-332发送数据(例如数据帧、数据分组、数据单元等)并且从接入交换机331-332接收数据。在一些实施例中,外围处理设备341-344与相应接入交换机331-332之间的每个连接是直接链路。在一些实施例中,外围处理设备341-344可以经由中间模块(在图3中未示出)在操作上耦合到接入交换机331-332。
[0077] 在一些实施例中,外围处理设备可以发送加入交换机结构系统300中包括的多播组的请求。例如,如图3所示,外围处理设备341可以向 NCE 372发送信号380。信号380可以包括加入指定多播组的请求并且可以具有例如IGMP格式。在一些实施例中,该请求可以包括与指定的多播组相关联的多播组ID。
[0078] NCE 372接着可以通过通信网络310向L2根模块322发送信号381。信号381可以至少部分地基于信号380,并且可以包括加入指定的多播组的请求。在一些实施例中,信号381可以具有被配置成由L2根模块322处理的BGP格式。在接收到包括多播加入请求的信号381时,L2根模块322可以(例如在包括在图2所示的计算设备200中的存储器220处)存储作出请求的外围处理设备与多播组之间的关联(例如,外围处理设备341的标识符和/或转发状态信息以及多播ID)。作为另一种选择,L2根模块322可以向多播管理模块(例如,在图2所示的计算设备200的存储器220中包括的多播管理模块223)发送多播组加入请求和/或另一基于它的信号(在图3中未示出)。在一些实施例中,多播管理模块可以宿留在计算设备320处或者宿留于在操作上耦合到通信网络310的另一计算设备处。按此方式,外围处理设备341可以加入现有的多播组,因此被配置成(例如经由复制引擎
352-356中的一个)接收与其相关联的随后的消息、信号和/或数据分组。
[0079] 交换机结构系统300还可以被配置成将一个或多个数据分组发送(例如,多播)到多播组的一个或多个成员。例如,如图3所示,外围处理设备341将信号390发送到宿留在接入交换机331处的NCE 372。信号390例如可以包括打算要发送给外围处理设备341作为其一个成员的多播组的数据分组。(尽管在图3中未示出,但是在一些实施例中,外围处理设备341-344中的每一个都可以被包括在单个多播组中)。在一些实施例中,数据分组可以按照以太网和/或IPv4或IPv6协议来格式化。在一些实施例中,数据分组可以具有包括多播组的多播ID的分组报头。
[0080] 在接收到信号390时,NCE 372可以定义信号391并经由接入交换机331发送该信号。如图3所示,信号391可以经由通信网络310被发送到计算设备320的L2根模块322。在一些实施例中,信号391可 以包括数据分组(因而包括包含多播ID的分组报头)。信号
391可以可选地具有与信号390相同或不同的格式。
[0081] 在接收到信号391时,计算设备320的L2根模块322可以对数据分组中包括的分组报头的多播ID执行查找和/或查询。例如,L2根模块322可以向存储在计算设备320和/或外部设备(在图3中未示出)处的数据库(在图3中未示出)发送第一查询。该第一查询例如可以包括多播ID。至少部分地基于针对第一查询而接收到的第一响应,L2根模块可以确定与多播ID相关联的多播组中包括的每个成员设备或实体的标识符(例如IP地址、MAC地址)。
[0082] 在一些实施例中,L2根模块322可以发送第二查询,该第二查询被配置成确定复制引擎352-356中的哪些复制引擎与多播组的各个成员(例如外围处理设备341-344)相关联,由此确定L2根模块322应当将数据分组发送到哪些复制引擎以供复制和发送。(作为另一种选择,该第二查询可以被包括在第一查询中,使得L2根模块322仅发送足以获取/接收上述多播组和复制引擎信息的单个查询)。至少部分地基于第二查询,L2根模块322可以接收包括与多播组相关联的复制引擎352-356中的至少一个复制引擎的标识符信息的第二响应。在一些实施例中,L2根模块322可以通过从计算设备350接收到的登陆或其他信号(在图3中未示出)而接收与复制引擎352-356相关联的转发状态、登陆和/或其他信息。该登陆或其他信号可以可选地具有BGP格式。
[0083] 在确定了多播组中包括的每个成员设备或实体的标识符信息之后,L2根模块322可以(经由通信网络310)向计算设备350发送包括数据分组的信号392。更具体来说,L2根模块322可以向与多播组相关联的一个或多个复制引擎352-356发送信号392(如由上述第二响应表示的那样)。作为另一种选择,L2根模块322可以向在计算设备350处实例化的单个复制引擎发送信号392。在这种实施例中,该单个复制引擎可以被配置成确定在定义和发送数据分组的副本时使用复制引擎352-356中的哪些复制引擎。在进行了该确定之后,该单个复制引擎可以接着将信号392和/或数据分组的副本传播到复制引擎352-356中的一个或多个 其他接收方复制引擎。
[0084] 在通过信号392和/或另一复制引擎接收到数据分组时,复制引擎352-356中的每个被选择的复制引擎可以定义数据分组的副本。如图3所示,每个被选择的复制引擎可以接着向外围处理设备341-344中的接收方外围处理设备发送包括该复制引擎的数据分组副本的信号。在一些实施例中,每个复制引擎可以通过通信网络310发送信号。例如,如图3所示,复制引擎352可以向宿留在接入交换机331处的PFE 374发送信号393。复制引擎353可以向宿留在接入交换机332处的PFE 375发送信号394。并且,复制引擎355可以向PFE 375发送信号395。如上所述,信号393-395中的每一个都可以分别包括由复制引擎352、353以及355定义的数据分组的副本。
[0085] 在接收到信号393时,PFE 374可以定义信号396并将其发送到外围处理设备342。信号396可以包括数据分组的副本。在接收到信号394-395时,PFE 375可以将信号
397和398分别发送给外围处理设备343和344。如信号396那样,信号397和398可以包括数据分组的副本以供分别由外围处理设备343和344来接收和处理。
[0086] 图4是根据另一实施例的交换机结构系统的示意图,该交换机结构系统被配置成将数据分组发送给跨多个VLAN的多播组。更具体来说,图4图解说明了一种交换机结构系统400,其包括在操作上耦合到计算设备420、422、424以及426的通信网络410以及接入交换机431-433。计算设备420宿留L2根模块421并且计算设备422宿留L3根模块423。计算设备424宿留多播组管理(MGM)模块425,并且计算设备426宿留包括复制引擎454-456的复制引擎树。接入交换机431-433分别包括NCE 472、474以及476。接入交换机431在操作上耦合到外围处理设备441和442。接入交换机432在操作上耦合到外围处理设备443。接入交换机433在操作上耦合到外围处理设备445和446。外围处理设备441-443被包括在VLAN 480中,外围处理设备445-446被包括在VLAN 485中。
[0087] 通信网络410可以是硬件和/或软件(在硬件上执行)的任意组合,其被配置成在外围处理设备441-443和445-446中的任意一个、计算设备 420、422、424以及426和/或接入交换机431-433中的任意一个之间发送数据。在一些实施例中,通信网络410可以是交换机结构或交换机核,如多级交换机结构。在一些实施例中,通信网络410可以类似于在结合以上图3讨论的通信网络310。
[0088] 接入交换机431-433中的每一个都可以是位于通信网络410的边缘的硬件和/或软件(在硬件上执行)的任意组合。如图4所示,接入交换机431-433可以充当到与其耦合的一个或多个外围处理设备的网关。如图4所示,接入交换机431-433中的每一个都可以宿留一个或多个NCE(以下描述)。在一些实施例中,接入交换机431-433中的每一个都可以在物理上位于交换机结构系统400的机架内。在一些实施例中,接入交换机431-433可以向通信网络410的数据平面部分发送数据并从其接收数据,并且向相应的所连接的外围处理设备441-443和445-446发送数据并从其接收数据。
[0089] 如图4所示,接入交换机431-433每个都被配置成经由通信网络410的数据平面部分相互通信并且/或者与计算设备420、422、424以及426中的任一个进行通信。例如,通信网络410的数据平面部分可以被配置成以相对短的等待时间在计算设备426与接入交换机432之间发送(例如传送)数据。
[0090] 如此处更详细地讨论的,接入交换机431、432以及433可以被配置成宿留一个或多个网络控制实体(NCE),以分别管理例如外围处理设备441-442、443以及445-446。如图4所示,接入交换机431宿留NCE 472以管理外围处理设备441和442,接入交换机432宿留NCE 474以管理外围处理设备443,接入交换机433宿留NCE 476以管理外围处理设备
445-446。尽管在图4中未示出,但是计算设备420、422、424以及426也可以可选地宿留一个或多个NCE,以例如管理一个或多个复制引擎、一个或多个物理端口等。NCE 472、474以及476可以每个都类似于以上结合图3描述的NCE 372-373。
[0091] 计算设备420、422、424以及426可以每个都是硬件和/或软件(在硬件上/中执行)的任意组合,其被配置成执行一个或多个网络管理任务 (例如控制平面任务)。在一些实施例中,计算设备420、422、424以及426可以在物理上和/或在操作上耦合到通信网络410,并且可以类似于以上结合图3讨论的计算设备320和/或计算设备350。
[0092] 如图4所示,计算设备420包括并且/或者宿留L2根模块421。尽管在图4中未示出,但是在一些实施例中,交换机结构系统400可以包括多个计算设备,每个计算设备都包括并且/或者宿留与L2根模块421类似的一个或多个L2根模块。在一些实施例中,L2根模块421可以是基于硬件的模块和/或基于软件的模块(在硬件中执行),类似于以上结合图3讨论的L2根模块322。
[0093] 同样如图4所示,计算设备422包括并且/或者宿留L3根模块423。尽管在图4中未示出,在一些实施例中,交换机结构系统400可以包括多个计算设备,每个计算设备都包括并且/或者宿留与L3根模块423类似的一个或多个L3根模块。在一些实施例中,L3根模块423可以是基于硬件的模块和/或基于软件的模块(在硬件中执行),其被配置成至少部分地基于第3层信息(例如,网络层信息)存储并且/或者发送与一个或多个设备(例如,接入交换机431-433和/或外围处理设备441-443以及445-446)相关联的信息(例如,标识符信息、多播组信息、VLAN信息)。
[0094] L3根模块423还可以被配置成接收一个或多个多播组加入请求和/或一个或多个多播数据分组以供发送到多播组。在一些实施例中,L3根模块423可以与宿留在计算设备424处的MGM模块425交换信息。所交换的信息可以包括并且/或者可以基于例如多播组、VLAN和/或成员外围处理设备信息。换句话说,L3根模块423可以与MGM模块425交换与交换机结构系统400中的哪些多播组包括哪些外围处理设备和/或哪些VLAN包括哪些外围处理设备有关的信息。按此方式,L3根模块423也可以确定与哪些VLAN包括给定多播组中的一个或多个外围处理设备有关的信息并且/或者与MGM模块425交换该信息。
[0095] 计算设备424包括并且/或者宿留MGM模块425。尽管在图4中未示出,但是在一些实施例中,交换机结构系统400可以包括多个计算设 备,每个计算设备都包括并且/或者宿留与MGM模块425类似的一个或多个MGM模块。在一些实施例中,MGM模块425可以是基于硬件的模块和/或基于软件的模块(在硬件中执行),其被配置成存储与交换机结构系统400中包括的一个或多个设备和/或实体相关联的信息。例如,MGM模块425可以包括转发状态信息、多播组从属关系/成员资格信息、VLAN信息、VDCF信息等。如上所述,MGM模块425可以包括一个或多个外围处理设备与一个或多个VLAN和/或多播组之间的关联关系。尽管在图4中未示出,MGM模块425可以包括VLAN信息,该信息表示VLAN 480包括外围处理设备441-443并且/或者VLAN 485包括外围处理设备445-446。MGM模块425也可以可选地包括多播组信息,该信息表示例如外围处理设备441-443和/或外围处理设备445-446中的任一个被包括在具有指定的多播组ID的单个多播组中。
[0096] 如图4所示,计算设备426包括连接的复制引擎的树,即,复制引擎454-456。在一些实施例中,复制引擎454-456中的每一个都可以类似于以上结合图3讨论的复制引擎353-356中的任一个。在一些实施例中,复制引擎454可以被配置成从例如L2根模块421和/或L3根模块423接收第一数据分组,相应地将该数据分组发送给复制引擎455-456中的任一个或者两者。作为另一种选择,复制引擎454-456中的每一个都可以直接从另一网络设备或模块(例如,L2根模块421、L3根模块423)接收数据分组。按此方式,每个复制引擎都可以接收要被拷贝并且发送给外围处理设备441-443中的一个或多个和/或外围处理设备445-446中的一个或多个的数据分组。如以上结合图3讨论的,复制引擎可以与VLAN和/或其中包括的一个或多个设备相关联,因此可以向该VLAN中包括的每个设备(但是不向位于该VLAN外部的设备)发送数据分组的副本。
[0097] 外围处理设备441-443和445-446中的每一个都可以是硬件和/或软件(在硬件中执行)的任意组合,其能够经由接入交换机在通信网络410上发送和/或接收信息。外围处理设备441-443和445-446可以被配置成向接入交换机431-433发送数据(例如,数据帧、数据分组、数据单元等)并且从其接收数据。在一些实施例中,外围处理设备441-443和 445-446中的每一个都可以类似于图3的外围处理设备341-344中的一个或多个。
[0098] 如图4所示,在一些实施例中,外围处理设备441可以向宿留在接入交换机431处的NCE 472发送信号490。信号490可以包括登陆请求,该登陆请求例如包括外围处理设备441的转发状态信息。
[0099] 在接收到信号490时,NCE 472可以可选地存储并广播外围处理设备441的转发状态信息。该转发状态信息例如可以包括外围处理设备441的IP地址、MAC地址和/或其他识别信息。在这种实施例中,NCE472可以可选地将外围处理设备441的广播状态信息广播给交换机结构系统400的一个或多个其他控制平面实体。例如,NCE 472可以将信号491-495分别发送给L2根模块421、L3根模块423、MGM模块425以及NCE 474和476。
[0100] 在一些实施例中,信号491-495中的每一个都可以具有BGP格式。在接收到包括外围处理设备441的转发状态信息的信号时,每个控制平面实体(例如,L2根模块421、L3根模块423、MGM模块425、NCE474和/或NCE 476)都可以在存储器处存储更新后的转发状态信息。例如,控制平面实体可以至少部分地基于该转发状态信息来更新转发状态表、文件、记录或数据库。按此方式,NCE 472可以确保被发送到外围处理设备441的随后的信号和/或数据分组可以通过通信网络410被合适地路由以经由接入交换机431到达外围处理设备441。
[0101] 尽管在图4中未示出,但是信号490可以包括加入多播组的请求,该请求具有IGMP格式。在这种实施例中,该请求可以可选地包括足以标识该外围处理设备441请求要加入的多播组的多播组ID。在一些实施例中,在接收到信号490时,NCE 472可以定义并向L3根模块423和/或MGM模块425发送BGP格式化信号(在图4中未示出),该信号被配置成请求将外围处理设备441包括在/加入到多播组中。该信号可以例如包括外围处理设备441的转发状态信息(以上描述的)和/或所需多播组的多播ID。在一些实施例中,该信号可以在虚拟端口(如L3根模块423的虚拟端口、MGM模块425的虚拟端口等)处被接收。
[0102] 至少部分地基于所接收到的信号,L3根模块423和/或MGM模块425可以相应地在存储器处更新多播组的成员资格信息。更新后的信息可以例如包括外围处理设备441的MAC地址、IP地址、VLAN和/或其他信息。按此方式,外围处理设备441可以被加入到指定的多播组,并且可以由此被配置成接收随后的指向该多播组的多播广播和/或分组。在一些实施例中,响应于包括请求的信号,MGM模块可以发送表示作出请求的外围处理设备已经与多播ID相关联(即,被包括在/加入到多播组中)的第二信号。在一些实施例中,该第二信号可以被发送给L3根模块423并且可以具有与协议无关的多播(PIM)格式。
[0103] 图5是根据另一实施例的交换机结构系统的示意图,该交换机结构系统被配置成将数据分组发送给跨多个VLAN的多播组。更具体来说,图5图解说明了一种交换机结构系统500,其包括在操作上耦合到计算设备520、522、524以及526的通信网络510以及接入交换机531-533。计算设备520宿留L2根模块521并且计算设备522宿留L3根模块523。计算设备524宿留MGM模块525,并且计算设备526宿留包括复制引擎554-556的复制引擎树。接入交换机531-533分别包括NCE 572、574以及576。接入交换机531在操作上耦合到外围处理设备541和542。接入交换机532在操作上耦合到外围处理设备543。接入交换机533在操作上耦合到外围处理设备545和546。外围处理设备541-543被包括在VLAN
580中,外围处理设备545-546被包括在VLAN 585中。
[0104] 通信网络510可以类似于以上结合图4描述的通信网络410。接入交换机531-533可以类似于以上结合图4描述的接入交换机431-433。如图5所示,接入交换机531-533每个都被配置成经由通信网络510的数据平面部分相互通信并且/或者与计算设备520、522、524以及526中的任一个进行通信。例如,通信网络510的数据平面部分可以被配置成以相对短的等待时间在计算设备526与接入交换机532之间发送(例如传送)数据。
[0105] 接入交换机531、532以及533中的每一个都可以被配置成宿留一个或多个网络控制实体(NCE),以分别管理例如外围处理设备541-542、 543以及545-546。如图5所示,接入交换机531宿留NCE 572以管理外围处理设备541和542,接入交换机532宿留NCE574以管理外围处理设备543,接入交换机533宿留NCE 576以管理外围处理设备545-546。
尽管在图5中未示出,但是计算设备520、522、524以及526也可以可选地宿留一个或多个NCE,以例如管理一个或多个复制引擎、一个或多个物理端口等。NCE 572、574以及576可以每个都类似于以上结合图4描述的NCE 472-473。
[0106] 计算设备520、522、524以及526可以每个都是硬件和/或软件(在硬件上/中执行)的任意组合,其被配置成执行一个或多个网络管理任务(例如控制平面任务)。在一些实施例中,计算设备520、522、524以及526可以在物理上和/或在操作上耦合到通信网络510,并且可以类似于以上结合图4讨论的计算设备420和/或计算设备450。
[0107] 如图5所示,计算设备520包括并且/或者宿留L2根模块521。尽管在图5中未示出,但是在一些实施例中,交换机结构系统500可以包括多个计算设备,每个计算设备都包括并且/或者宿留与L2根模块521类似的一个或多个L2根模块。在一些实施例中,L2根模块521可以是基于硬件的模块和/或基于软件的模块(在硬件中执行),类似于以上结合图3讨论的L2根模块322。
[0108] 同样如图5所示,计算设备522包括并且/或者宿留L3根模块523。尽管在图5中未示出,在一些实施例中,交换机结构系统500可以包括多个计算设备,每个计算设备都包括并且/或者宿留与L3根模块523类似的一个或多个L3根模块。在一些实施例中,L3根模块523可以类似于以上结合图4描述的计算设备422。
[0109] 计算设备524包括并且/或者宿留MGM模块525。尽管在图5中未示出,但是在一些实施例中,交换机结构系统500可以包括多个计算设备,每个计算设备都包括并且/或者宿留与MGM模块525类似的一个或多个MGM模块。在一些实施例中,MGM模块525可以是基于硬件的模块和/或基于软件的模块(在硬件中执行),其被配置成存储与交换机结构系统500中包括的一个或多个设备和/或实体相关联的信息。计算设 备524可以类似于以上结合图4描述的计算设备424。
[0110] 如图5所示,计算设备526包括连接的复制引擎的树,即,复制引擎554-556。在一些实施例中,复制引擎554-556中的每一个都可以类似于以上结合图4讨论的复制引擎454-456中的任一个。
[0111] 外围处理设备541-543和545-546中的每一个都可以是硬件和/或软件(在硬件中执行)的任意组合,其能够经由接入交换机在通信网络510上发送和/或接收信息。外围处理设备541-543和545-546可以被配置成向接入交换机531-533发送数据(例如,数据帧、数据分组、数据单元等)并且从其接收数据。在一些实施例中,外围处理设备541-543和545-546中的每一个都可以类似于图4的外围处理设备441-443和445-446中的一个或多个。
[0112] 在一些实施例中,外围处理设备541-543和545-546中的任一个都可以被配置成向跨多个VLAN的多播组发送信号。例如,如图5所示,外围处理设备541可以向宿留在接入交换机531处的NCE 472发送信号590。在一些实施例中,外围处理设备541可以是也包括外围处理设备542-543和545-546的多播组的成员,并且信号590可以包括要发送给该多播组中包括的每个成员设备的数据分组。该数据分组可以可选地包括分组报头,该分组报头例如包括外围处理设备541的MAC地址和/或IP地址。该分组报头还可以包括与多播组相关联的多播组ID。
[0113] NCE 572可以接着定义信号591并将其发送给宿留在计算设备520处的L2根模块521。信号591可以包括数据分组(由此包括分组报头)。在一些实施例中,该信号可以具有以太网和/或网际协议格式。
[0114] 在接收到信号591时,L2根模块521可以基于分组报头和/或多播组ID确定该数据分组要指向的多播组。然后,至少部分地基于多播组ID,L2根模块521可以确定该多播组中包括哪些设备。为此,L2根模块521可以查询位于计算设备520本地或外部的存储器、数据库或其他数据存储器、记录或文件(在图5中未示出)。在一些实施例中,该查询可以包括用于确定或接收与多播组中包括的每个设备的VLAN成员资格有关的信息的查询。在一些实施例中,可以将该查询发送给宿留在计算 设备520或交换机结构系统500中包括的另一设备处的NCE(并且从该NCE接收结果)。作为另一种选择,可以将该查询发送给宿留在计算设备520或交换机结构系统500中包括的另一设备处的网络管理模块。
[0115] 至少部分地基于上述多播组成员资格和VLAN信息,L2根模块521可以确定一个或多个多播组成员设备不被包括在与发送数据分组的外围处理设备相同的VLAN中。更具体来说,L2根模块521可以确定(包括在VLAN 580中的)外围处理设备541在与例如外围处理设备545(它也是多播组的成员,但是被包括在VLAN 585中)不同的VLAN中。在该情况下,由于L2根模块521与VLAN 580中包括的设备直接相通信并且/或者仅被授权管理VLAN 580中包括的设备,因此L2根模块521可以确定它不能将数据分组发送到外围处理设备545-546。在作出该确定之后,L2根模块521可以向L3根模块523发送信号592。信号592可以包括该数据分组。在一些实施例中,不执行上述确定步骤,作为另一种选择,L2根模块521可以在从NCE 572接收到(信号592中包括的)数据分组时立即将该数据分组转发给L3根模块523。
[0116] 在接收到包括数据分组的信号592之后,L3根模块523可以向多播组管理(MGM)模块525发送信号593。信号593可以例如包括多播组ID,并且可以被配置成从MGM模块525获取与每个多播组成员设备和VLAN相关联的信息。在一些实施例中,L3根模块523可以向L3根模块523发送信号594,信号594包括描述多播组中包括的每个设备的VLAN成员资格的信息。在一些实施例中,信号594可以进一步包括描述复制引擎554-556中的一个或多个与VLAN 580和585中的一个或多个之间的关联的信息。
[0117] 在接收到信号594时,L3根模块523可以确定它应当将数据分组发送给复制引擎554-556中的哪些复制引擎,使得该数据分组被拷贝并且发送到VLAN 580和585中的每一个中包括的每个多播组成员设备。更具体来说,L3根模块523可以确定复制引擎554和555与VLAN 580(因而与外围处理设备541-543)相关联,并且复制引擎556与VLAN 585(因而与外围处理设备545-546)相关联。
[0118] 在作出了上述确定之后,在一些实施例中,L3根模块523可以接着向计算设备526发送信号595。更具体来说,L3根模块523可以经由通信网络510向在计算设备526宿留的复制引擎554-556中的至少一个发送信号595。如以上结合图4描述的那样,在一些实施例中,L3根模块523可以向复制引擎554-556中的每一个发送信号595。如以上结合图4描述的那样,在一些实施例中,L3根模块523可以向复制引擎554-556中的单个复制引擎发送信号595,该复制引擎随后可以将包括在信号595中的数据分组传播到复制引擎树中的其余复制引擎。
[0119] 在(从L3根模块523直接地或者从复制引擎354-356中的另一复制引擎)接收到数据分组时,每个复制引擎可以定义该数据引擎的至少一个副本,并经由通信网络510将其发送给该复制引擎所关联的VLAN中包括的外围处理设备。更具体来说,复制引擎554可以定义数据分组的一个副本并发送包括该副本的信号596。如图5所示,可以经由通信网络510和接入交换机531将信号596发送给外围处理设备542。复制引擎555可以定义数据分组的一个副本并发送包括该副本的信号597。可以经由通信网络510和接入交换机532将信号597发送给外围处理设备543。最后,复制引擎556可以定义数据分组的一个副本并发送包括该副本的信号598。可以经由接入交换机533将信号598发送给外围处理设备545。PPD 546不会接收到信号,因为在本示例中它不是多播组的成员。
[0120] 图6是根据另一实施例的描述向具有多个VLAN内的成员的多播组发送数据分组的方法的流程图。更具体来说,图6描述了从交换机结构的外围处理设备接收数据分组并将该数据分组发送到与多个VLAN相关联的多播组设备的方法。
[0121] 第2层根设备可以经由接入交换机从外围处理设备接收数据分组(600)。更具体来说,第2层根设备或模块(“L2设备”)可以经由在操作上耦合到源外围处理设备和L2设备的接入交换机而接收数据分组。在一些实施例中,接入交换机和L2设备中的每一个都可以经由交换机结构系统的交换机核(例如,多级交换机结构)而交换信息。在一些实施例中,L2设备可以是在耦合到交换机核的计算设备(或“计算节 点”)处宿留的基于硬件的模块或基于软件的模块(在硬件中执行)。
[0122] L2设备可以确定该数据分组和与L2设备所关联的VLAN(“VLANA”)不同的VLAN中包括的一个或多个外围处理设备相关联(610)。例如,L2设备可以检查该数据分组(例如,该数据分组的报头)以确定其中包括的多播组ID。至少部分地基于多播组ID,L2设备可以查询数据库或其他数据存储库以确定该多播组中包括的一组成员设备并且交换机结构系统的哪些(如果有的话)VLAN包括该组设备中的成员设备。基于该信息,L2设备可以确定该多播组成员设备中的任何成员设备是否被包括在与VLAN A不同的VLAN中。如果L2设备确定多播组中包括的所有成员设备都被包括在VLAN A中,那么L2设备可以将该数据分组发送给一个或多个复制引擎以将该数据分组拷贝并发送给该一个或多个复制引擎(见以下步骤660-670)。
[0123] 作为另一种选择,如果L2设备确定多播组中包括的一个或多个成员设备不被包括在VLANA中,那么L2设备可以将数据分组发送给第3层根设备(620)。第3层根设备例如可以是如下设备和或模块(“L3设备”):其被配置成存储与一个或多个模块和/或设备有关的信息并且/或者至少部分地基于这些模块和/或设备的网络层来管理这些模块和/或设备。在一些实施例中,L3设备可以在操作上经由交换机核并且/或者直接耦合到L2设备。
[0124] L3设备可以接收数据分组并将该数据分组的分组报头发送给多播组管理模块(MGM)(630)。在一些实施例中,该数据分组可以包括进行发送的外围处理设备的源地址(例如,IP地址、MAC地址)和多播组ID。MGM模块可以在操作上耦合到交换机核,并且可以被配置成与也耦合到交换机核的L2设备、L3设备和/或一个或多个复制引擎交换信息。
[0125] MGM模块可以从L3设备接收分组报头(640)。至少部分地基于多播组ID,MGM模块可以确定是否存在一个或多个多播组成员设备(例如外围处理设备)和交换机结构系统中包括的一个或多个VLAN(例如VLAN A)。在确定了哪些多播组设备与哪些VLAN相关联之后,MGM 模块可以将关联信息发送给L3设备。
[0126] 在接收到上述关联信息时,L3设备可以将包括该数据分组的一个或多个信号发送给一组复制引擎(650)。更具体来说,L3设备可以经由交换机核将包括该数据分组的信号发送给该组复制引擎中的第一复制引擎(例如,复制引擎树结构的“根节点”)。按此方式,L3设备可以将数据分组发送给第一复制引擎,该第一复制引擎接着可以将该数据分组发送给与关联于一个或多个多播组成员设备的一个或多个VLAN相关联的一个或多个其他复制引擎。复制引擎可以均为在设备(如在操作上耦合到交换机核的计算设备)处宿留和/或实例化的基于硬件的模块和/或基于软件的模块(在硬件中执行)。在一些实施例中,一个或多个复制引擎可以宿留在位于交换机结构系统的任何位置的一个或多个设备或服务器处。
[0127] 每个复制引擎都可以定义数据分组的一个或多个副本(660)。更具体来说,与包括至少一个多播组成员设备的VLAN相关联的每个复制引擎都可以定义数据分组的副本并将其包括在一个或多个信号中。
[0128] 在定义了包括数据分组的副本的一个或多个信号之后,每个复制引擎都可以将该数据分组的一个或多个副本发送到与其关联的多播组成员设备(670)。更具体来说,每个复制引擎都可以经由交换机核和/或一个或多个接入交换机向外围处理设备发送数据分组的至少一个副本。在一些实施例中,每个复制引擎都可以向与该复制引擎关联的VLAN中包括的每个多播组成员设备发送数据分组的副本。在一些实施例中,一个或多个复制引擎可以向与该复制引擎关联的VLAN中包括的至少一个(但不一定是所有)多播组成员设备发送数据分组的副本。
[0129] 在此描述的一个实施例涉及计算机存储产品,其具有计算机可读介质(也称为处理器可读介质),该介质具有在其上的指令或计算机代码,用于执行各种计算机实现的操作。该介质和计算机代码(也称为代码)可以是为了专门目的而设计并构造的那些介质和计算机代码。计算机可读介质的示例包括但是不限于:磁存储介质,如硬盘、软盘 和磁带;光存储介质,如光盘/数字视频盘(CD/DVD)、光盘只读存储器(CD-ROM)以及全息装置;磁光存储介质,如光盘;载波信号处理模块;以及硬件装置,其被专门配置成存储并执行程序代码,如专用集成电路(ASIC)、可编程逻辑设备(PLD)、以及只读存储器(ROM)和RAM设备。
[0130] 计算机代码的示例包括但是不限于微代码或微指令、机器指令,如编译器产生的机器指令,用于产生和web服务的代码、以及包含由使用解释器的计算机来执行的较高级指令的文件。例如,可以使用Java、C++或其他编程语言(例如,面向对象的编程语言)和开发工具来实现实施例。计算机代码的其他示例包括但是不限于控制信号、加密代码和压缩代码。
[0131] 尽管以上描述了各种实施例,但是应当理解它们是仅以示例而不是限制的方式而给出的,并且可以在形式和细节上进行各种改变。可以按任何组合(除了相互排斥的组合)来组合在此描述的设备和/或方法的任何部分。在此描述的实施例可以包括所描述的不同实施例的功能、组件和/或特征的各种组合和/或子组合。例如,多个L2根模块可以宿留于在操作上耦合到同一交换机核的多个计算设备处。