管理分布式开关构造系统中的下一跳标识符的方法和装置的制作方法

文档序号:7903371阅读:278来源:国知局
专利名称:管理分布式开关构造系统中的下一跳标识符的方法和装置的制作方法
技术领域
这里描述的一些实施例一般涉及分布式开关构造系统,并且,特别地,涉及管理分布式开关构造系统中的下一跳标识符。
背景技术
一些已知的网络系统包括可管理与网络系统和/或其一部分连接资源的中央控制面。例如,中央控制面可保持与资源的物理位置相关的数据库。另外,中央控制面可管理与资源相关的转送状态信息。但是,当大量的资源与网络系统连接时,这种中央控制面可变得极大,并且是不可管理的。因此,需要具有有效地管理与其耦合的资源的转送状态信息的分布式控制面的网络系统。

发明内容
在一些实施例中,在存储器和/或处理装置中实现的设备包括管理与来自第一访问开关上的一组端口的端口相关的第一数据面模块的第一网络控制实体。第一网络控制实体使与来自一组端口的端口操作耦合的外围处理装置的标识符与下一跳基准相关。当外围处理装置处于处于第二访问开关和目的地外围处理装置之间并且包含它们的数据路径内时,第一网络控制实体向管理第二访问开关上的第二数据面模块的第二网络控制实体提供下一跳基准,使得第二数据面模块可将下一跳基准附加到数据包上。


图1是根据实施例的开关构造系统的示意图。图2是根据另一实施例的开关构造系统的访问开关的示意图。图3是根据另一实施例的开关构造系统的计算装置的示意图。图4是图1的开关构造系统的控制面的逻辑表示。图5 7是根据另一实施例的数据包的示图。图8是根据另一实施例的将最终目的地标识符与下一跳基准联系起来的数据库的示图。图9 11是根据其它的实施例的开关构造系统的部分的示意图。图12是根据另一实施例的用于索引下一跳基准的存储器地址块的示意图。图13是示出根据另一实施例的使用下一跳基准的转送数据包的方法的流程图。
具体实施例方式在一些实施例中,在存储器和/或处理装置中实现的设备包括管理与来自第一访问开关上的一组端口的端口相关的第一数据面模块的第一网络控制实体。第一网络控制实体使与来自一组端口的端口操作耦合的外围处理装置的标识符与下一跳基准相关。当外围处理装置处于处于第二访问开关和目的地外围处理装置之间并且包含它们的数据路径内时,第一网络控制实体向管理第二访问开关上的第二数据面模块的第二网络控制实体提供下一跳基准,使得第二数据面模块可将下一跳基准附加到数据包上。在一些实施例中,下一跳基准对于第一网络控制实体和第一数据面模块而不是第二网络控制实体和第二数据面模块唯一地识别外围处理装置。因而,下一跳基准不是外围处理装置的全局(即,系统范围)基准,而是对于外围处理装置的局部(即,网络控制实体特定)基准。这种局部基准可与网络控制实体上的外围处理装置的标识符相关,使得第一数据面模块可在在第一数据面模块上接收具有下一跳基准的数据包时检索外围处理装置的标识符。由于下一跳基准是局部基准而不是全局基准,因此,它更小并且在数据包的标题中使用更少的空间。另外,可以由另一网络控制实体(例如,第二网络控制实体)使用相同的下一跳基准以参照不同的外围处理装置。因此,下一跳基准可被不同的网络控制实体重新使用。在一些实施例中,一种非瞬时处理器可读介质存储表示导致处理器在第一访问开关上从开关构造接收数据包的指令。数据包从第二访问开关被发送到开关构造。代码表示导致处理器分析数据包的标题部分以检索下一跳基准的指令。下一跳基准在在第一访问开关上被接收之前已被附加到第二访问开关上的数据包上。代码还表示导致处理器通过使用下一跳基准从可在第一访问开关上访问并且保持下一跳基准和外围处理装置的下一跳标识符之间的关联性的数据库检索外围处理装置的下一跳标识符的指令。代码代表将下一跳标识符附加到数据包上和向外围处理装置发送数据包的指令。在一些实施例中,系统包括第一处理器上的第一网络控制实体和第二处理器上的第二网络控制实体。第一网络控制实体管理与第一外围处理装置操作耦合的第一端口和与第二外围处理装置操作耦合的第二端口。第一网络控制实体向第一外围处理装置分配第一下一跳基准并且向第二外围处理装置分配第二下一跳基准。第二网络控制实体管理与第一外围处理装置操作耦合的第三端口和与第三外围处理装置操作耦合的第四端口。第二网络控制实体向第一外围处理装置分配第一下一跳基准并且向第三外围处理装置分配第二下一跳基准。在一些实施例和/或系统配置中,网络基准可以是全局(即,系统范围)唯一的。 例如,第一下一跳基准可识别第一网络控制实体和第二网络控制实体上的第一外围处理装置。当外围处理装置与由不同的网络控制实体控制的多个端口操作耦合时,出现这种情况。 相反,第二下一跳基准识别第一网络控制实体上的第二外围处理装置和第二网络控制实体上的第三外围处理装置。常常在对于多个层(例如,数据链接层、网络层、物理层和应用层等)的参照中讨论这里表示和描述的实施例。这种层可由开放系统互连(OSI)模块限定。因此,物理层可以是比数据链接层低级的层。另外,数据链接层可以是比网络层和应用层低级的层。并且,不同的协议可与OSI模型内的不同的层相关或者在这些层上被实现。例如,以太网协议、光纤信道协议和/或基于单元的协议(例如,被用于在通信网络的数据面部分内)可与数据链接层相关和/或在该数据链接层上被实现,而边界网关协议(BGP)可与诸如例如应用层的更高的层相关或者在更高的层被实现。虽然可以在应用层上实现BGP,但是,它可被用于例如发送用于输入(populate)与网络层相关的路由表的转送状态信息。如这里使用的那样,术语“物理跳”可包含两个模块和/或装置之间的物理链接。 例如,可以说操作耦合第一模块与第二模块的通信路径是物理跳。换句话说,物理跳可以物理链接第一模块与第二模块。如这里使用的那样,术语“单物理跳”可包含系统内的两个模块和/或装置之间的直接的物理连接。换句话说,单物理跳可包含两个模块在没有中间模块的情况下被耦合的链路。因此,例如,如果第一模块通过单物理跳与第二模块耦合,那么第一模块可以在不通过介入的模块发送数据包的情况下直接向第二模块发送数据包。如这里使用的那样,术语“单逻辑跳”意味着作为与第一协议(例如,第一数据链接层协议)相关的网络布局内的单个跳的物理跳和/或物理跳的组。换句话说,根据与第一相关的网络布局,在通过物理跳和/或物理跳的组与第二模块和/或装置操作耦合的第一模块和/或装置之间不存在介入的网络。不管第一装置和第二装置之间的物理跳的数量如何,通过单个逻辑跳与第二模块和/或装置连接的第一模块和/或装置都可通过使用与第一协议和第二模块和/或装置相关的目的地地址向第二模块和/或装置发送数据包。在一些实施例中,例如,第二协议(例如,第二数据链接层协议)可使用第一协议(例如,第一数据链接层协议)的目的地地址以在单逻辑跳上将数据包和/或单元从第一模块和/或装置路由到第二模块和/或装置。换句话说,当第一模块和/或装置通过第一协议的单逻辑跳向第二模块和/或装置发送数据时,第一模块和/或装置将单逻辑跳视为如同它正在向第二模块和/或装置直接发送数据。在一些实施例中,例如,第一协议可以是基于包的数据链接层协议(即,传送可变长度数据包和/或帧)并且第二协议可以是基于单元的数据链接层协议(即,传送固定长度数据单元和/或帧)。在一些实施例中,开关构造可用作单逻辑跳的一部分(例如,单一大尺度综合层-2(L2)/层-3(L3)开关)。开关构造的部分可跨着例如通过多个物理跳互连的机架和/ 或模块物理地分布。在一些实施例中,例如,开关构造的处理段可包含于第一机架中,并且, 开关构造的另一处理段可包含于第二机架中。两个处理段可在逻辑上用作单一综合开关的一部分(例如,在根据第一协议的同一逻辑跳内),但在各对的处理段之间包含单独的单逻辑跳。换句话说,开关构造内的各段可在统一操作地作为与用于路由开关构造外面的数据的协议相关的单逻辑跳的同时通过物理链接与相邻的段连接。另外,不需要在单逻辑跳内的各段上出现与用于在单逻辑跳外面路由数据的协议(例如,以太网)相关的包分类和转送。在一些实施例中,例如,可在模块和/或装置通过单逻辑跳向另一模块和/或装置发送数据包之前出现与第一协议(例如,以太网)相关的包分类和转送。如在本说明书中使用的那样,除非上下文另外清楚地指示,否则,单数形式“一”、 “一个”和“该”包括多个对象。因此,例如,术语“一个模块”意味着单个模块或多个模块的组合。图1是示出根据实施例的开关构造系统100的示意图。开关构造系统100包含通信网络110、多个访问开关120、130、140、计算装置150和多个外设处理装置171 174,并且可用作分布式网络开关。外围处理装置171 174通过开关构造系统100的剩余部分相互操作耦合。如这里进一步详细描述的那样,外围处理装置171 174可以为例如计算节点、服务节点、路由器和存储网络。在一些实施例中,例如,外围处理装置171 174包含服务器、存储装置、网关、工作站和/或计算装置等。外围处理装置171 174可通过使用诸如例如光学连接(例如,光学电缆和光学连接器)、电连接(例如,电缆和电连接器)等的任何适当的连接与访问开关120、130、140 的一个或多个端口 121 124、131 134、141 144操作耦合。换句话说,如这里进一步详细描述的那样,各端口 121 124、131 134、141 144提供外围处理装置171 174 可与访问开关120、130、140的数据面模块(图1未示出)操作耦合的通信接口。因此,夕卜围处理装置171 174被配置为从访问开关120、130、140的数据面模块接收数据(例如, 数据包、数据单元等)并向其发送数据。在一些实施例中,外围处理装置171 174和各访问开关120、130、140之间的各连接是直接链接。可以说这种链接是单物理跳链接。在其它的实施例中,外围处理装置可通过中间模块与访问开关操作耦合。可以说这种连接是多物理跳链接。各访问开关120、130、140可以是使外围处理装置171 174与通信网络110操作耦合的任何装置。在一些实施例中,例如,访问开关120、130、140可以是边缘装置、输入/输出模块、架顶(top-of-rack)装置和/或网络元件等。各访问开关120、130、140可在物理上通过开关构造系统100的机架被定位。在一些实施例中,例如,各访问开关120、130、140 可通过同一机架被定位。在其它的实施例中,各访问开关120、130、140可通过不同的机架被定位。在结构上,访问开关120、130、140可用作源访问开关和目的地访问开关。因此,访问开关120、130、140可向通信网络110的数据面部分并且向各连接的外围处理装置171 174发送数据(例如,数据包和/或数据单元的数据流)并且从其接收数据。访问开关120、130、140中的每一个包含通过通信网络110的数据面部分与其它的访问开关120、130、140上的数据面模块通信的至少一个数据面模块(图1未示出)。特别地,通信网络110的数据面部分可以非常低的等待时间在访问开关120、130、140的数据面模块之间提供任何到任何连接。例如,通信网络110的数据面部分可在访问开关120、130、 140的数据面模块之间传送(例如,传输)数据。在一些实施例中,通信网络110可具有访问开关120、130、140可传送和/或接收数据的至少数以百计或数以千计的端口(例如,出口端口和/或入口端口)。各数据面模块可以是应用特定集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑装置(PLD)和/或访问开关120、130、140上的另一硬件模块。在其它的实施例中, 各数据面模块可以是访问开关120、130、140上的处理、应用、虚拟机和/或一些其它的软件模块(在硬件上执行)。在这些实施例中,可以在访问开关120、130、140的存储器(例如, 在图2所示的存储器252)内存储并且在访问开关120、130、140的处理器(例如,图2所示的处理器251)上执行实现数据面模块的指令。在一些实施例中,各数据面模块存储包含与该数据面模块相关的外围处理装置 171 174的下一跳基准与这些外围处理装置171 174的下一跳标识符之间的相关性的数据库。外围处理装置171 174的下一跳标识符可以是唯一地识别开关构造系统100内的外围处理装置171 174的任何标识符。因此,可以说,下一跳标识符在开关构造系统100 内是全局唯一的。因此,如果外围处理装置171具有12345的下一跳标识符,那么没有其它的外围处理装置172 174具有12345的下一跳标识符。在一些实施例中,例如,下一跳标识符可以是媒体访问控制(MAC)地址、因特网协议(IP)地址和/或外围处理装置171 174的其他任何适当的地址。外围处理装置171 174的下一跳基准可以是唯一地识别网络控制实体161 163(这里进一步详细地描述)内的外围处理装置的任何标识符。换句话说,与通过同一网络控制实体191 193管理和/或控制的端口耦合的各外围处理装置171 174可具有唯一的下一跳基准。例如,如果外围处理装置172(与被网络控制实体192控制的端口 123耦合)具有1的下一跳基准,那么外围处理装置173(与也被网络控制实体192控制的端口 132 耦合)具有1以外的下一跳基准。但是,外围处理装置171(与由网络控制实体191控制的端口 121耦合)和外围处理装置174(与由网络控制实体193控制的端口 142耦合)可具有1的下一跳基准,原因是它们不被相互相同的网络控制实体或与外围处理装置172相同的网络控制实体控制。在一些实施例中,并且,在某些配置中,如这里进一步参照图9和图 10详细地描述的描述,外围处理装置171 174的下一跳基准在开关构造系统100内可以是全局唯一的。由于各下一跳基准仅关于与单网络控制实体相关的外围处理装置171 174是唯一的,那么下一跳基准的尺寸可比全局唯一下一跳标识符小。因此,如这里进一步详细地描述的那样,将下一跳基准附加到源访问开关120、130、140上的数据包上不像将下一跳标识符附加到数据包上那样多地增加数据包的尺寸。因此,下一跳基准是目的地数据面模块 (由网络控制实体控制)可用于检索下一跳标识符的基准。在一些实施例中,通过各数据面模块局部(例如,在与数据面模块相同的芯片封装内)存储这些数据库。例如,如果在ASIC上存储和/或执行数据面模块,那么也可在ASIC 上存储具有相关的下一跳标识符和相关的下一跳基准之间的相关性的数据库。使用在各网络控制实体内唯一的下一跳基准能够使得这种数据库保持较小。另外,由于可以在各个网络控制实体之间重新使用网络基准,因此,与网络标识符的数量相比,系统内的网络基准的数量保持较少。另外,由于数据库被局部存储,因此数据面模块可通过使用下一跳基准作为关键字,迅速地对于下一跳标识符查询数据库。如这里进一步详细地讨论的那样,访问开关120、130、140可被配置为控制(host) 一个或多个网络控制实体以管理访问开关120、130、140的数据面模块和/或端口 121 124,131 134、141 144。例如,如这里进一步详细地描述的那样,访问开关120可控制网络控制实体191以管理一组端口 161,并且,访问开关140可控制网络控制实体193以管理一组端口 163。换句话说,网络控制实体191和网络控制实体193可以是处理、应用、虚拟机和/或一些其它的软件模块(在硬件上执行)或分别在访问开关120和访问开关140 上执行的硬件模块。如这里进一步详细地讨论的那样,计算装置150控制网络控制实体192 以管理一组端口 162。图2是与访问开关120、130、140类似的访问开关200的系统框图。访问开关200 包含处理器251、存储器252、线卡210、线卡220和端口 231。处理器251与存储器252、线卡210、线卡220和端口 231操作耦合。线卡210包含端口 211和212。线卡220包含端口221和222。在一些实施例中,线卡210和/或220包含一个或多个处理器和/或存储器 (未示出)。与图1所示的访问开关120、130、140的端口 121 124、131 134、141 144类似,端口 211、212、221和222可与外围处理装置通信。例如,端口 211、212、221和222可通过使用通过电缆的双绞线电气信号传送或通过光纤电缆的光纤信号传送实现物理层。在一些实施例中,端口 211、212、221和222中的一些实现诸如双绞线电气信号传送的一个物理层, 并且,端口 211、212、221和222中的其它端口实现诸如光纤信号传送的不同的物理层。并且,端口 211、212、221和222可允许访问开关200的数据面模块通过诸如以太网或光纤信道的公共协议与诸如例如计算机服务器的外围处理装置通信。在一些实施例中,端口 211、 212,221和222中的一些实现诸如以太网的一个协议,并且,端口 211、212、221和222中的其它端口实现诸如光纤信道的不同的协议。因此,访问开关200可以通过端口 211、212、221 和222使用同质或异质物理层和/或协议与多个外围处理装置通信。端口 231可通过诸如开关构造的通信网络(例如,通信网络110)与其它的访问开关通信。端口 231可以是访问开关200可向和/或从通信网络发送/或接收信号的一个或多个网络接口装置(例如,40( 以太网接口、100( 以太网接口等)。可通过与访问开关200 操作耦合的电链接、光学链接和/或无线链接向和/或从通信网络发送/或接收信号。在一些实施例中,访问开关200可基于一个或多个协议(例如,以太网协议、多协议标签切换 (MPLS)协议、光纤信道协议、以太网上光纤信道协议、无线带宽技术相关协议)向和/或从通信网络发送/或接收信号。在一些实施例中,端口 231可实现与在端口 211、212、221和222上实现的物理层和/或协议不同的物理层和/或协议。例如,端口 211、212、221和222可基于数据包通过使用数据链接层协议与外围处理装置通信,并且,端口 231可基于数据单元通过使用数据链接层协议的开关构造通信。换句话说,访问开关200可以是诸如分布式网络开关的网络开关的边缘装置。在一些实施例中,访问开关200可准备进入通信网络(例如,通信网络110)的数据面部分的数据包(例如,以太网帧和/或数据包)。在一些实施例中,例如,访问开关200 可包含一个或多个数据面模块(图2未示出),以在将数据包发送到通信网络之前转送、 分类和/或修改从与访问开关200的端口 211、212、221和222操作耦合的外围处理装置接收的数据包的数据包封装(例如,修改、添加和/或去除标题部分、页脚部分和/或包含于数据包内的任何其它标识符)。另外,访问开关200上的数据面模块可被配置为在将数据单元发送到开关构造之前将数据包分割和/或划分成数据单元(例如,具有固定长度有效载荷)。在2008年9月30日提交的发明名称为“Methods and Apparatus Related to Packet Classification Associated with a Multi-Stage Switch” 的美国专利申请序列 No. 12/242, 168 中和在 2008 年 9 月 30 日提交的发明名称为“Methods and Apparatus for Packet Classification Based on Policy Vectors”的美国专利申请序列 No. 12/242,272 中描述与数据包分类有关的另外的细节,通过引用将两者的全部内容加入本文。返回图1,计算装置150可被配置为控制与开关构造系统100相关的管理模块、处理和/或功能。如图1所示,并且,如这里进一步详细描述的那样,计算装置150可被配置为控制网络管理模块155和网络控制实体192。
图3是根据实施例的基本上与计算装置150类似的计算装置300的系统框图。计算装置300包含处理器310、存储器320和通信接口 330。处理器310与存储器320和通信接口 330操作耦合。计算装置300可通过通信接口 330与其它的计算装置、外围处理装置和/或访问开关通信。如图3所示,计算装置300可分别与网络控制实体194和网络管理模块155类似地控制网络控制实体322和网络管理模块324。换句话说,网络控制实体322和网络管理模块3M可以是处理、应用、虚拟机和/或一些其它的软件模块(在硬件中执行)或在计算装置300中执行的硬件模块。在一些实施例中,例如,可以在存储器320上存储并且在处理器 310上执行实现网络控制实体322和/或网络管理模块324的指令。在一些实施例中,计算装置300可专用于控制网络控制实体322和/或网络管理模块324。换句话说,计算装置300可向网络控制实体322和/或网络管理模块3M分配其全部或基本上全部的计算资源(例如,处理能力和存储器)。在一些实施例中,除了网络控制实体322和/或网络管理模块324以外,计算装置300可控制其它的处理、应用、虚拟机和/或软件模块(在硬件中执行)。例如,计算装置300可以是被配置为控制多个处理、应用、虚拟机和/或软件模块的通用计算装置或计算节点。返回图1,网络管理模块155可将访问开关120、130、140的端口 121 124、131 134、141 144分割和/或划分成要由网络控制实体191 193管理的一组端口 161、162、 163。因而,网络管理模块155可使一组端口 161与网络控制实体191相关、使一组端口 162 与网络控制实体192相关并使一组端口 163与网络控制实体193相关。另外,网络管理模块155可向网络控制实体191 193分配访问开关上的各数据面模块。在一些实施例中, 如这里进一步详细描述的那样,数据面模块及其相关的端口 121 124、131 134、141 144可被分配给相同的网络控制实体191 193。换句话说,在这些实施例中,相同的网络控制实体191 193控制和/或管理数据面模块及其相关的端口 121 124、131 134、 141 144。在一些实施例中,网络管理模块155还可监视各网络控制实体191 193的可用处理能力分别并且当网络控制实体191 193的可用的处理能力经过(例如,低于)第一阈值和/或经过(例如,超过)第二阈值时启动和/或终止网络控制实体191 193。网络控制实体的这种启动和终止可与在2010年12月15日提交的发明名称为“Methods and Apparatus for Dynamic Resource Management within a Distributed Control Plane of a Switch”的共同未决的No. 12/968,848的美国专利申请中描述的类似,在此通过引用加入其全部内容到本文中。在一些实施例中,网络管理模块155可存储(例如,在存储器中)与配置信息(例如,端口协议信息、网络段分配信息、端口分配信息、外围处理装置信息等)相关和/或与和开关构造系统100相关的转送状态信息(例如,端口标识符、网络段标识符、外围处理装置标识符、访问开关标识符、数据面模块标识符、下一跳基准、下一跳标识符等)相关的配置文件。在一些实施例中,配置文件可包含最终目的地标识符和下一跳基准之间的相关性。图8示出使下一跳基准与最终目的地标识符相关的数据库1000。数据库1000包含最终目的地ID列1010、访问开关ID列1020、数据面模块(DPM) ID列1030和下一跳基准列1040。如这里进一步详细地描述的那样,可在通过通信网络110的数据面部分准备数据包和/或发送到另一数据模块的数据单元时由数据面模块使用这种数据库1000。具体而言, 源数据面模块可通过使用数据包(参照图5 7)的标题部分内的最终目的地标识符作为最终目的地ID列1010的基准和/或关键字查询该数据库1000。因而,通过使用目的地标识符,数据面模块可从访问开关ID列1020检索相应的值,从数据面模块ID列1030检索相应的值,并且从与目的地外围处理装置171 174相关的下一跳基准列1040检索相应的值。在一些实施例中,网络管理模块155可向特定的网络控制实体191 193发送与由该网络控制实体191 193管理的一组端口 161、162、163相关的配置信息和/或转送状态信息的一部分。例如,网络管理模块155可向网络控制实体191发送与一组端口 161相关的配置文件的一部分。网络控制实体191 193可然后向数据面模块传送配置文件的一部分。例如,如果数据面模块181(图4)与端口 121相关,那么属于端口 121和/或外围处理装置171的配置文件的部分可被发送到数据面模块181。类似地,如果数据面模块182(图 4)与端口 122相关,那么属于端口 122和/或与其耦合的外围处理装置的配置文件的部分可被发送到数据面模块182。在这些实施例中,属于端口 121和/或外围处理装置171的配置文件的部分不被发送到数据面模块182,并且,属于端口 122和/或与其耦合的外围处理装置的配置文件的部分不被发送到数据面模块181。如上面讨论的那样,访问开关120、130、140和/或计算装置150可被配置为控制管理访问开关120、130、140的数据面模块和/或端口 121 124、131 134、141 144的网络控制实体191、192、193。各网络控制实体191 193可以是处理、应用、虚拟机和/或一些其它的软件模块(在硬件中执行)或在访问开关120、130、140或计算装置150上执行的硬件模块。因而,实现网络控制实体191 193的指令可被存储于访问开关120、130、140 的存储器(例如,存储器252)内并在访问开关120、130、140的处理器(例如,处理器251) 上被执行,或者,被存储于计算装置150的存储器(例如,存储器320)内并在计算装置150 的处理器(例如,处理器310)上被执行。各网络控制实体191 193可被配置为管理访问开关120、130、140的端口 121 124,131 1;34、141 144。例如,网络控制实体191被配置为管理与一组端口 161相关的端口 121、122,网络控制实体192被配置为管理与一组端口 162相关的端口 123、124、131、 132,网络控制实体193被配置为管理与一组端口 163相关的端口 133、134、141、142、143、 144。在一些实施例中,各网络控制实体191 193可管理和/或保持与其一组的端口 161、 162、163相关的转送状态信息(例如,端口标识符、网络段标识符、外围处理装置标识符、下一跳基准、下一跳标识符等),监视与其一组端口 161、162、163相关的外围处理装置171 174的状态和/或状况,和/或管理和保持与外围处理装置171 174相关的其它信息和/ 或与其一组端口 161、162、163相关的端口 121 124、131 134、141 144。可以使用这种转送状态信息以从第一外围处理装置171 174向第二外围处理装置171 174发送数据。换句话说,这种转送状态信息可被用于从源外围处理装置171 174向目的地外围处理装置171 174通过访问开关120、130、140和通信网络110的数据面部分路由和/或转送数据包和/或单元。各网络控制实体191 193也可被配置为向与网络控制实体191 193管理和/或控制的端口 121 124、131 1;34、141 144耦合的各外围处理装置171 174分配下一跳基准。因此,各网络控制实体191 193可确保下一跳基准关于该网络控制实体191 193是唯一的。因此,各网络控制实体191 193可向数据面模块发送与由该网络控制实体191 193控制的数据面模块相关的下一跳基准。因而,数据面模块可存储由网络控制实体分配的下一跳基准和与数据面模块相关的各外围处理装置171 174的下一跳标识符之间的相关性。在一些实施例中,各网络控制实体191 193可确定通过哪个目的地装置各外围处理装置171 174用作下一跳。具体而言,各网络控制实体可确定目的地装置独立地与和网络控制实体191 193管理和/或控制的端口 121 124、131 134、141 144耦合的外围处理装置耦合(例如,不通过开关构造系统100)。与网络控制实体191 193管理和 /或控制的端口 121 124、131 134、141 144耦合的外围处理装置可用作到目的地装置的数据路径中的下一跳。例如,网络控制实体192可确定装置102与访问开关120、130、 140和通信网络110无关地与外围处理装置172耦合,并且外围处理装置172用作装置102 的下一跳。因此,各网络控制实体191 193可使用作目的地装置的下一跳的外围处理装置的下一跳基准与和该目的地装置相关的最终目的地标识符相关。例如,如果外围处理装置 171是与另一装置耦合的路由器和/或网关,那么另一装置的标识符(例如,IP地址和/或 MAC地址)可以是最终目的地标识符,并且可与分配给外围处理装置171的下一跳基准相关。对于另一例子,与端口 121 124、131 134、141 144直接耦合的外围处理装置的标识符可与它们的相应的下一跳基准相关。换句话说,这种外围处理装置171 174可用作目的地装置。在一些实施例中,网络控制实体191 193可向存储于数据库(例如,图8的数据库1000)中的网络管理模块(例如,图1的网络管理模块15 发送下一跳基准和最终目的地标识符的相关性。另外,在一些实施例中,网络控制实体191 193可向通过该网络控制实体191 193控制和/或管理的各数据面模块发送相关的下一跳信息。因此,这种数据库1000可被存储于网络管理模块155和/或网络控制实体191 193上。在其它的实施例中,仅在各网络控制实体191 193上存储数据库1000的一部分。这种部分可包含例如最终目的地标识符列1010的值和与特定的网络控制实体相关的数据面模块向其发送数据包和/或单元的下一跳基准列1040的值。在一些实施例中,网络控制实体可在网络控制实体位于的访问开关上控制和/或管理端口和/或数据面模块(例如,网络控制实体191管理一组端口 161)。在其它的实施例中,网络控制实体还可在网络控制实体位于的访问开关和/或计算装置外的访问开关上控制和/或管理端口和/或数据面模块(例如,网络控制实体192管理端口 123、124、131 和132)。在这些实施例中,网络管理模块155具有基于处理能力向网络控制实体191 193分配各端口 121 124、131 1;34、141 144和/或数据面模块的灵活性。另外,在这些实施例中,网络管理模块155在向网络控制实体191 193分配端口 121 124、131 134、141 144和/或数据面模块时不受网络控制实体191 193、数据面模块和/或端口 121 124、131 134、141 144的物理位置限制。图4是图1所示的开关构造系统100的控制面的逻辑布局的框图。网络控制实体
12191 193在控制面内相互逻辑耦合。如图1所示,并且如这里进一步详细描述的那样,这种连接可通过通信网络110的控制面部分。因此,网络控制实体191 193可通过控制面相互发送控制信息(例如,转送状态信息、配置信息等)。例如,如这里进一步详细地描述的那样,网络控制实体192可通过控制面向网络控制实体193发送与一组端口 162相关的转送状态信息。因此,网络控制实体191 193可存储和/或保持与其它的网络控制实体 191 193相关的标识符和/或地址。如上所述,并且,如图4所示,各网络控制实体191 193管理和/或控制至少一个数据面模块。例如,网络控制实体191管理和/或控制数据面模块181和182、网络控制实体192管理和/或控制数据面模块183和184并且网络控制实体193管理和/或控制数据面模块185和186。如上所述,各数据面模块181 186可从与端口 121 124、131 134、141 144操作耦合的外围处理装置171 174(图1所示)接收数据,准备数据,并且通过通信网络110(图1所示)的数据面部分向另一数据面模块181 186发送数据。另夕卜,各数据面模块181 186可从通信网络110的数据面部分接收数据并且准备发送到外围处理装置171 174的数据。因而,各数据面模块181 186可从其相关的网络控制实体191 193接收和存储转送状态信息。在一些实施例中,各数据面模块可在物理上位于其相关的端口位于的相同的访问开关120、130、140上(例如,在其上面上被控制)。例如,数据面模块181、182和183可分别与端口 121、122和123和IM相关。因此,数据面模块181、182和183可在物理上位于访问开关120上。类似地,数据面模块184、185和186可分别与端口 131和132、133和134 和141 144相关。因此,数据面模块184和185可在物理上位于访问开关130上并且数据面模块186可在物理上位于访问开关140上。返回图1,通信网络110可以是使访问开关120、130、140与其它的访问开关120、 130、140操作耦合的任何适当的通信网络。另外,通信网络可使计算装置150与访问开关 120、130、140操作耦合。在一些实施例中,通信网络110包含数据面部分和控制面部分。通信网络110的控制面部分有利于网络控制实体191 193和网络管理模块155之间的控制信号(例如,包含转送状态信息和/或配置信息)的传送。因此,网络控制实体191 193 可通过通信网络110的控制面部分向其它的网络控制实体191 193发送转送状态信息。通信网络110的数据面部分有利于访问开关120、130、140的数据面模块之间的数据的传送。在一些实施例中,通信网络110的数据面部分是具有一个或多个段的开关构造。 例如,通信网络110的数据面部分可以是具有开关模块(例如,集成的以太网开关)的多个段的Clos开关构造网络(例如,非阻断Clos网络、严格意义的非阻断Clos网络、Benes网络)。这种开关构造可包含任意数量的段。在一些实施例中,例如,开关构造可包含五个、 七个或九个段。通信网络110的数据面部分可以为例如与在2009年6月30日提交的发明名称为"Methods and Apparatus Related to Any_to_Any Connectivity Within a Data Center”的共同未决的美国专利申请No. 12/495,337中描述的数据中心的芯部类似的数据中心的芯部的一部分,在此通过引用加入该专利的全部内容到本文中。在一些实施例中,通信网络110的数据面部分可以是(例如,可用作)单一综合开关(例如,单一大尺寸综合L2/L3开关)。换句话说,通信网络110的数据面部分可被配置为作为单逻辑实体(例如,单逻辑网络元件)动作。换句话说,通信网络110的数据面可限定第一访问开关120、130、140和第二访问开关120、130、140之间的单逻辑跳的一部分(例如,伴随访问开关120、130、140和通信网络110的数据面部分之间的数据路径)。具体而言,通信网络110的数据面可限定第一访问开关120、130、140上的数据面模块和第二访问开关120、130、140上的数据面模块之间的单逻辑跳的部分。通信网络110的数据面部分可被配置为与外围处理装置171 174耦合(例如,间接地连接、有利于其间的连接)。在一些实施例中,通信网络110的数据面部分可被配置为通过可在至少10(ib/S的速度下传送数据的接口装置(未示出)通信。在一些实施例中,通信网络110的数据面部分可被配置为通过可在例如2(}b/s、4(}b/s、8(;b/s、10(ib/s、40(;b/s、100(ib/s和/或更快的链接速度下传送数据的接口装置(例如,光纤信道接口装置)通信。虽然通信网络110的数据面部分可在逻辑上中央化,但是,例如,为了可靠性,通信网络110的数据面部分的实现可高度分布。例如,通信网络110的数据面部分的多个部分可在物理上跨着例如许多机架分布。在一些实施例中,例如,通信网络110的数据面部分的处理段可包含于第一机架中并且通信网络110的数据面部分的另一处理段可包含于第二机架中。两个处理段均可在逻辑上用作单一综合开关的部分(例如,在同一逻辑跳内), 但是在相应对的处理段之间具有单独的单物理跳。在使用中,网络管理模块155,启动网络控制实体191 193,并且,基于网络控制实体191 193的处理能力,向网络控制实体191 193分配各端口 121 124、131 134、 141 144和各数据面模块181 186。如图1所示,例如,网络管理模块155使端口 121和 122(—组的端口 161)与网络控制实体191关联;使端口 123、1M、131和132(—组的端口 162)与网络控制实体192关联;并且使端口 141、142、143、144、133和134( —组端口 163) 与网络控制实体193关联。因而,如图4所示,数据面模块181和182与网络控制实体191 关联,数据面模块183和184与网络控制实体192关联,并且,数据面模块185和186与网络控制实体193关联。网络管理模块155可向各网络控制实体191 193发送不同的配置信息(例如, 配置文件)。在一些实施例中,例如,各网络控制实体191 193可从与其相关的组的端口 161 163相关的网络管理模块155接收配置信息(例如,端口协议信息、网络段分配信息、端口分配信息、外围处理装置信息等)。例如,网络控制实体191可接收与一组的端口 161 (并且,不是端口 162和163的组)相关的配置信息,网络控制实体192可接收与一组的端口 162(并且,不是端口 161和163的组)相关的配置信息,并且,网络控制实体193可接收与一组的端口 163(并且,不是端口 161和162的组)相关的配置信息。各网络控制实体191 193可向与其相关的各端口 121 124、131 1;34、141 144和/或与和其相关的各端口 121 124、131 134、141 144耦合的各外围处理装置 171 174分配下一跳基准。例如,网络控制实体191 193可向与端口 121和122操作耦合的外围处理装置分配下一跳基准;网络控制实体192可向与端口 123、1M、131和132 操作耦合的外围处理装置分配下一跳基准;并且,网络控制实体193可向与端口 133、134和 141 144操作耦合的外围处理装置分配下一跳基准。在一些实施例中,各下一跳基准可以是唯一的,和/或是特定的网络控制实体191 193特有的。换句话说,各下一跳基准可唯一地识别与一组端口 161、162、163内的端口 121 124、131 134、141 144操作耦合的外围处理装置171 174。在这些实施例中,各下一跳基准不是全局唯一的。因此,虽然各下一跳基准对于单个网络控制实体191 193唯一地识别外围处理装置171 174(例如, 在一组端口 161 163内是唯一的),但是,它未必跨着整个开关构造系统100是唯一的。 因此,外围处理装置171和外围处理装置173可具有“1”的下一跳基准。各下一跳基准可与外围处理装置的下一跳标识符(例如,诸如MAC地址和/或IP 地址的装置标识符)相关。这种相关性可被存储于由相关的网络控制实体191 193和/ 或网络管理模块155保持的数据库中。另外,各网络控制实体191 193可将与和各数据面模块181 186相关的端口耦合的外围处理装置相关的下一跳基准发送该数据面模块 181 186。因此,数据面模块181可接收与和端口 121操作耦合的外围处理装置171(参见图1)相关的下一跳基准,并且数据面模块182可接收与和端口 122操作耦合的外围处理装置(图1未示出)相关的下一跳基准。在一些实施例中,数据面模块181不接收与和端口 122操作耦合的外围处理装置相关的下一跳基准,并且,数据面模块182不接收与和端口 121操作耦合的外围处理装置171相关的下一跳基准。类似地,数据面模块183接收与和端口 123和IM操作耦合的外围处理装置(例如,外围处理装置17 相关的下一跳基准,数据面模块184接收与和端口 131和132操作耦合的外围处理装置(例如,外围处理装置17 相关的下一跳基准,数据面模块185接收与和端口 133和134操作耦合的外围处理装置相关的下一跳基准,并且,数据面模块186接收与和端口 141 144操作耦合的外围处理装置相关的下一跳基准。在这些实施例中,各数据面模块181 186选择性地接收其相关的下一跳基准。如以上讨论的那样,各数据面模块181 186可在数据面模块181 186的局部数据库中(例如,在与数据面模块181 186相同的芯片封装上)存储下一跳基准及其相关的下一跳标识符之间的相关性。在一些实施例中,各网络控制实体191 193可使各下一跳基准与最终目的地标识符(例如,最终目的地装置的MAC地址和/或IP地址)关联。例如,如果外围处理装置 172是网关装置和/或与另一装置(例如,装置10 操作耦合的路由器,那么可以说外围处理装置172是处于外围处理装置174和另一装置102之间并且包含它们的数据路径中的下一跳。因此,网络控制实体192可使与外围处理装置172相关的下一跳基准和另一装置 102的最终目的地标识关联。如上所述,当外围处理装置172用作最终目的地装置时,网络控制实体192可替代性地使与外围处理装置172相关的下一跳基准与外围处理装置172的标识符关联。在一些实施例中,各网络控制实体191 193可将最终目的地标识符和下一跳基准之间的相关性发送到网络管理模块155。在这些实施例中,网络管理模块155可组装、控制和/或保持包含各最终目的地标识符和与数据路径中的下一跳(例如,外围处理装置) 相关的访问开关标识符、数据面模块标识符和下一跳基准之间的相关性和/或映射的数据库(例如,数据库1000)。在其它的实施例中,各网络控制实体191 193向其它的网络控制实体191 193而不是网络管理模块155发送相关性。在这些实施例中,网络控制实体 191 193共同组装、控制和/或保持与数据库1000类似的数据库。在一些实施例中,各网络控制实体191 193可监视和/或管理与其相关的一组端口 161 163。例如,各网络控制实体191 193可检测与其相关的组的端口 161 163 相关的状态的变化。在一些实施例中,例如,网络控制实体191 193可从其相关的组的端口 161 163检测什么时候外围处理装置171 174被操作耦合和/或从端口 121 124、131 134、141 144被去耦合。在一些实施例中,网络控制实体191 193可基于网络控制实体191 193上的状态的变化向其它的网络控制实体191 193和/或网络管理模块 155发送更新的转送状态信息(例如,端口标识符、网络段标识符、外围处理装置标识符、下一跳基准、下一跳标识符等)。另外,网络控制实体191 193可向外围处理装置分配下一跳基准,并且连同任何最终目的地标识符将下一跳基准发送到网络管理模块155和/或存储于与数据库1000类似的数据库中。可以通过使用开关构造系统100在外围处理装置171 174之间发送数据包(例如,以太网数据包和/或帧、光纤信道数据包和/或帧等)。例如,可以从源外围处理装置 174向目的地外围处理装置172发送数据包。在一些实施例中,目的地外围处理装置172是到最终目的地的数据路径中的下一跳(例如,与访问开关120无关地与外围处理装置172 连接的装置10幻。在其它的实施例中,目的地外围处理装置172是最终的目的地。这种数据包可以与图5所示的数据包400类似。数据包400包含有效载荷420和目的地标识符 410。有效载荷420包含要被发送到最终目的地的数据。目的地标识符410包含有效载荷 420的最终目的地相关的标识符和/或与地址(例如,MAC地址和/或IP地址)。源外围处理装置174可通过使用第一低级协议(例如,以太网、光纤信道等)通过端口 142向访问开关140上的数据面模块186发送数据包。数据面模块186可准备数据包 400以进入通信网络110的数据面部分。例如,数据面模块186可使用目的地ID 410以查询数据库1000以检索附加到由通信网络110的数据面部分和访问开关120上的数据面模块183使用的数据包400上的信息。例如,数据面模块186可修改与图5所示的数据包500 类似的数据包400。特别地,数据面模块186可通过使用目的地ID 410查询存储于网络管理模块155上的数据库1000(图8)。通过使用目的地ID 410作为数据库1000中的最终目的地ID 1010列中的值的关键字和/或基准,网络管理模块155可向数据面模块186发送访问开关ID列1020中的值、数据面模块ID列1030中的值和下一跳基准ID列1040中的值。数据面模块186可向数据包500附加访问开关ID 510(与访问开关ID列1020中的值对应)、数据面模块ID 520(与数据面模块ID列1030中的值对应)和下一跳基准530(与下一跳基准列1040中的值对应)。在其它的实施例中,数据库1000(图8)被存储于数据面模块186的局部存储器。在这些实施例中,数据面模块186从局部存储的数据库1000检索访问开关ID列1020中的值、数据面模块ID列1030中的值和下一跳基准列1040中的值。在一些实施例中,访问开关140上的数据面模块186还可将数据包400( S卩,目的地ID 410和有效载荷420)分割和/或划分成通过通信网络110的数据面部分发送到访问开关120的多个数据单元(例如,具有固定长度有效载荷)。在这些实施例中,各单元可包含访问开关ID 510、数据面模块ID 520和下一跳基准530。在其它的实施例中,各单元包含访问开关ID 510和数据面模块ID 520,但是,下一跳基准530被分成与目的地ID 410和有效载荷420类似的单元。数据包和/或单元通过通信网络110的数据面部分从访问开关140上的数据面模块186被发送到访问开关120上的数据面模块183。通信网络110的数据面部分可基于访问开关ID 510和/或数据面模块ID520路由和/或转送数据包和/或单元。在一些实施例中,通信网络110的数据面部分可使用与用于从外围处理装置174向访问开关140发送数据包的第一低级协议(例如,以太网,光纤信道等)不同的第二低级协议(例如,基于单
16元的协议)。因此,在这些实施例中,虽然当在通信网络110的数据面部分中时数据包可横穿多个物理跳,但是,从第一低级协议的观点看,访问开关140和访问开关120之间的路径可以是单逻辑跳。访问开关120上的数据面模块183可接收数据包和/或单元,并且准备通过端口 123发送到外围处理装置172的数据包和/或单元。在一些实施例中,这些准备可包含从数据单元重新构建和/或重新组装数据包。更一般地,访问开关120可准备要通过使用第一低级协议(例如,以太网,光纤信道等)发送到外围处理装置172的数据包。这些准备还可包含从数据包500去除访问开关ID 510和数据面模块ID 520。另夕卜,这种准备可包含用下一跳ID 620(在图7示出)替代下一跳基准530。这种下一跳ID 620可以是外围处理装置172的全局标识符(例如,MAC地址和/或IP地址)。数据面模块183可使用下一跳基准530以查询局部存储数据库(例如,存储于存储和/或执行数据面模块183的同一芯片上的数据库),以检索与下一跳基准530相关的下一跳ID 620。该局部存储数据库可存储下一跳ID 620和该数据面模块183的下一跳基准530之间的相关性。因此,局部存储数据库中的条目(例如,行)的数量可等于与数据面模块183相关的外围处理装置的数量。数据面模块183然后用下一跳ID 620替代下一跳基准530,使得数据包与图7中的数据包600类似。数据包600可然后被发送到与下一跳ID 620相关的外围处理装置172。在一些实施例中,外围处理装置172可基于目的地标识符410向装置102转送数据包。虽然以上被示出和描述为存储数据库1000,但是,在其它的实施例中,各网络控制实体191 194和/或数据面模块181 186保持和/或存储数据库1000。在一些实施例中,例如,当与网络控制实体191 193相关的控制信息和/或转送状态信息改变时,各网络控制实体191 193可提供对于其它的网络控制实体191 193的更新。例如,网络控制实体191 193可向其它的网络控制实体191 193提供最终目的地标识符和与其相关的下一跳基准之间的相关性。虽然以上将与由网络控制实体控制的端口耦合的各外围处理装置表示和描述为关于该网络控制实体具有不同和/或唯一的下一跳基准,但是,在一些实施例中,多个外围处理装置可关于该网络控制实体被分配相同的下一跳基准。图9例如表示示出这种情况的开关构造系统700的部分。开关构造系统700的该部分包含具有第一端口 721和第二端口 722的访问开关720,并且控制网络控制实体791。第一端口 721和第二端口 722均是由网络控制实体791控制的一组端口 761的部分。第一外围处理装置771与第一端口 721操作耦合,并且,第二外围处理装置772与第二端口 722操作耦合。另外,第一外围处理装置771通过数据路径775与开关构造系统 700无关地(S卩,不通过访问开关720)和第二外围处理装置772操作耦合。因此,为了向第一外围处理装置771发送数据,访问开关720可通过端口 721或通过端口 722向外围处理装置771发送数据(通过外围处理装置772和数据路径77 。因此,可以说第一外围处理装置771和第二外围处理装置772是访问开关720和第二外围处理装置772之间的数据路径中的下一跳。当入口数据面模块(图9未示出)确定哪个下一跳基准附加到对于第二外围处理装置772指定的数据包时,这可导致不确定性。换句话说,最终目的地标识符(即, 第二外围处理装置772的标识符)将在使最终目的地标识符与下一跳基准相关的数据库中(例如,图8的数据库1000)中具有多个条目。类似地,访问开关720可直接地(通过端口 72 或通过第一外围处理装置771 (通过端口 721)向第二外围处理装置772发送数据。因此,可以说第一外围处理装置771和第二外围处理装置772是访问开关720和外围处理装置771之间的数据路径中的下一跳。另外,这种情况可导致访问开关720和外围处理装置771或772之间的无限回路。 例如,如果访问开关720的数据面模块(图9未示出)正在尝试通过外围处理装置772向外围处理装置771发送数据包,那么外围处理装置772可尝试通过访问开关720向外围处理装置771发送数据包。因此,数据包在不到达外围处理装置771的情况下在外围处理装置772和访问开关720之间被连续发送。为了补救入口数据面模块的不确定性和无限回路的可能性,并且为了确保附加到数据包上的正确的下一跳基准,有效地使得访问开关720和外围处理装置771之间的直接链接或访问开关720和外围处理装置772之间的直接链接无效。可通过不向外围处理装置771、772中的一个分配单独的下一跳基准完成这一点。例如,如果有效地使得访问开关 720和第二外围处理装置772之间的直接链接无效,那么第一外围处理装置771的标识符 (例如,IP地址和/或MAC地址)和第二外围处理装置772的标识符均与同一下一跳基准相关。该下一跳基准指的是第一外围处理装置771的标识符和/或与其相关。因此,在使最终目的地标识符与下一跳基准相关的数据库(例如,数据库1000)中,第一外围处理装置 771的最终目的地标识符和第二外围处理装置772的最终目的地标识符的条目与对于网络控制实体791唯一地识别第一外围处理装置771的下一跳基准相关。另外,与外围处理装置772操作耦合的任何其它装置可与对于网络控制实体791唯一地识别第一外围处理装置 771的下一跳基准相关。因此,可通过端口 721并且向外围处理装置771发送具有第一外围处理装置771、第二外围处理装置772或与开关构造系统700无关地(即,不通访问开关 720)与第一外围处理装置771或第二外围处理装置772操作耦合的任何其它外围处理装置的最终目的地的任何数据包。外围处理装置771可因此然后路由和/或开关数据包。如上面讨论的那样,在一些情况和/或配置中,与外围处理装置相关的网络基准可关于开关构造系统是全局唯一的,而不是关于网络控制实体是局部唯一的。图10例如表示示出这种情况的开关构造系统的一部分。图10示出通过不同的网络控制实体891和892 管理的多个端口 821和823分别与同一外围处理装置871耦合的开关构造系统800的一部分。开关构造系统800的一部分包含第一访问开关810、第二访问开关820和外围处理装置871。第一访问开关810包含多个端口 820、821、数据面模块881和网络控制实体891。 数据面模块881与端口 820和821连接,并且,网络控制实体891控制和/或管理数据面模块881和端口 820和821。类似地,第二访问开关820包含多个端口 823、824、数据面模块 882和网络控制实体892。数据面模块882与端口 823和拟4连接,并且,网络控制实体892 控制和/或管理数据面模块882和端口 823、824。如图10所示,端口 821和端口 823与外围处理装置871操作耦合。因此,为了确保外围处理装置871与单个下一跳基准相关,与外围处理装置871相关的下一跳基准可对于网络控制实体891和网络控制实体892相同。在一些实施例中,由于下一跳基准关于多个网络控制实体891、892 —致,因此,下一跳基准可以是全局唯一的(即,对于开关构造系统800内的各网络控制实体识别外围处理装置871)。在其它的实施例中,下一跳基准可对于网络控制实体891、892但是不对于开关构造系统800内的其它网络控制实体(图10未示出)识别外围处理装置871 (例如,在区域上是唯一的)。因此,当入口数据面模块接收具有与外围处理装置871相关的最终目的地标识符的数据包时(即,最终目的地标识符是外围处理装置871或者与开关构造系统800无关地与外围处理装置871耦合的另一外围处理装置的标识符),入口数据面模块可通过使用最终目的地标识符作为索引和/或关键字对于全局唯一下一跳基准查询数据库(与图8的数据库1000类似)。这种全局唯一下一跳基准可与两个访问开关标识符(例如,第一访问开关810的标识符和第二访问开关820的标识符)以及两个数据面模块标识符(例如,第一数据面模块881的标识符和第二数据面模块882的标识符)相关。入口数据面模块可通过使用任何适当的方法确定将数据包寻址到哪个访问开关810、820和数据面模块881、882。 在一些实施例中,入口模块可随机地、基于负载平衡算法和/或基于访问开关810、820和/ 或数据面模块881、882上的拥塞等对数据包寻址。在入口数据面模块对于数据包寻址时, 数据包可被发送到它寻址到的访问开关810、820上的数据面模块181、182。通过使用全局唯一下一跳基准,数据面模块181、182可检索与外围处理装置871相关的下一跳标识符并因此发送数据包。图11对于另一例子示出通过不同的网络控制实体991和992管理的多个端口 921、923分别与外围处理装置971、972耦合、这些外围处理装置971、972又与开关构造系统 900无关地(即,不通过访问开关910和920)相互耦合的开关构造系统900的一部分。开关构造系统900的该部分包含第一访问开关910、第二访问开关920、第一外围处理装置971 和第二外围处理装置972。第一访问开关910包含多个端口 920、921、数据面模块981和网络控制实体991。数据面模块981与端口 920和921连接,并且,网络控制实体991控制和 /或管理数据面模块981和端口 920和921。类似地,第二访问开关920包含多个端口 923、 924、数据面模块982和网络控制实体992。数据面模块982与端口 923和拟4连接,并且, 网络控制实体992控制和/或管理数据面模块982和端口 923和924。如图11所示,端口 921与外围处理装置971操作耦合,并且,端口 923与外围处理装置972操作耦合。外围处理装置971与访问开关910和访问开关920无关地与外围处理装置972操作耦合。这种配置给出与参照图9讨论的问题类似的问题。因此,为了确保对于要被发送到外围处理装置971或外围处理装置972的数据包附加正确的下一跳基准,有效地使得访问开关910和外围处理装置971之间的直接链接或访问开关920和外围处理装置972之间的直接链接无效。另外,即使外围处理装置971和972通过由不同的网络控制实体991、992控制的多个端口 921、923与开关构造系统900的部分操作耦合,由于有效地使得直接链接中的一个无效,因此,可以使用网络控制实体991或网络控制实体992特有的下一跳基准。换句话说,可以使用非全局唯一下一跳基准。例如,如果有效地使得端口 923和外围处理装置972 之间的直接连接无效,那么要被发送到外围处理装置971或外围处理装置972的任何数据包可被发送到访问开关910或数据面模块981。因此,只要下一跳基准对于控制数据面模块 981的网络控制实体991是唯一的,数据包可根据需要被正确地传送到外围处理装置971并然后被传送到外围处理装置972。
在其它的实施例中,通常的全局唯一下一跳基准可被使用和/或被分配给外围处理装置971和外围处理装置972。因而,控制有效链接的网络控制实体991和控制无效链接的网络控制实体992均存储和/或包含全局唯一下一跳基准。在这些实施例中,如果有效链接(即,端口 921和外围处理装置971之间的链接)无效,那么无效链接(即,端口 923 和外围处理装置972之间的链接)可被激活并且在不向其它的网络控制实体和/或开关构造系统内的其它的外围处理装置发送新的下一跳标识符的情况下被用作后备链接。换句话说,在这些实施例中,由于使用全局唯一下一跳基准,因此,向外围处理装置971或外围处理装置972发送数据的外围处理装置和/或访问开关与哪个链接有效无关地使用相同的下一跳标识符。在其它的实施例中,使用通常的区域唯一标识符作为下一跳基准。在这些实施例中,通常的区域唯一标识符可对于一对网络控制实体991和992是唯一的,但是对于系统的其余部分不是唯一的。在一些实施例中,各下一跳基准可以是包含相关的下一跳标识符的存储器的部分和/或块的地址、索引和/或指针。例如,图12示出具有用作下一跳基准的地址的地址空间 1200。地址空间1200包含多个存储器地址块0 N。在一些实施例中,地址空间包含十六个存储器地址块。在其它的实施例中,地址空间包含多于或少于十六个的存储器地址块。在一些实施例中,地址空间1200的存储器地址块0可被分配以供开关构造系统内的各网络控制实体使用以限定下一跳基准。例如,各网络控制实体可使用与存储器块0相关的存储器地址以限定各网络控制实体特有的下一跳基准。例如,如果存储器地址块0包含存储器地址O 999,那么各网络控制实体可分配其与下一跳基准0相关的外围处理装置。对于各网络控制实体和/或数据面模块,这种存储器地址(例如,下一跳基准0)可指向包含下一跳标识符的存储器的不同的块(例如在计算装置或控制特定的网络控制实体或数据面模块的访问开关上)。换句话说,下一跳基准0可对于各网络控制实体指向不同的下一跳标识符。地址空间1200的剩余存储器地址块1 N可被用作全局唯一下一跳基准。这种全局唯一下一跳基准可与参照图10描述的那些类似。另外,虽然各网络控制实体可使用和 /或分配与存储器地址块0相关的地址,但是,由于对于全局唯一下一跳基准使用剩余的存储器地址块1 N,因此,可以使用网络管理模块(例如,图1的网络管理模块15 以分配和/或控制这种存储器地址块1 N。各网络控制实体可然后检索与其相关的存储器地址块1 N内的下一跳基准。例如,在图10中,网络控制实体891和网络控制实体892可从网络管理模块请求和/或检索与外围处理装置871相关的下一跳基准。在一些实施例中, 其它的网络控制实体(即,没有与外围处理装置871耦合的端口的那些)不请求和/或检索与外围处理装置871相关的下一跳基准。因此,虽然下一跳基准可以是全局唯一的,但是不是所有的网络控制实体存储全局唯一地址。在一些实施例中,可以使用多个网络管理模块以管理和/或控制网络控制实体和 /或地址空间1200。在这些实施例中,可在网络管理模块之间共享地址空间1200。因此,在网络管理模块之间共享对于全局唯一下一跳基准分配的存储器地址块1 N。换句话说,存储器地址块1 N的下一跳基准指向各网络管理模块上的同一下一跳标识符。因此,虽然这种系统包含多个网络管理模块,但是,与存储器地址块1 N相关的下一跳基准跨着网络管理模块是一致的。在具有多个网络管理模块的一些实施例中,存储器地址块1 N中的每一个可被分配主网络管理模块。在这些实施例中,主网络管理模块分派与它分配的存储器地址块相关的下一跳基准。例如,如果存储器地址块1与第一网络管理模块相关,那么第一网络管理模块将分派和/或分配与该存储器地址块相关的下一跳基准。虽然第二网络管理模块可存储分配的下一跳基准的拷贝,但它不进行分配。因此,以这种方式,多个网络管理模块可共享存储器空间1200。图13是示出转送数据包的方法1100的流程图。方法1100包括在1102上在访问开关上接收来自开关构造的数据包。在一些实施例中,访问开关是第一访问开关并且数据包从第二访问开关被发送到开关构造。在一些实施例中,第一访问开关和第二访问开关可与这里示出和描述的其它的访问开关(例如,关于图1示出和描述的访问开关120、130、 140)类似。在一些实施例中,第一访问开关可包含从开关构造接收数据包的数据面模块。在1104上,分析数据包的标题部分以检索下一跳基准。下一跳基准在在第一访问开关上被接收之前被附加到第二访问开关上的数据包上。下一跳基准对于控制和/或管理数据面模块的网络控制实体可以是唯一的。具体而言,下一跳基准可唯一地对于该网络控制实体识别与网络控制实体控制和/或管理的第一访问开关的端口耦合的外围处理装置。 但是,在一些实施例中,下一跳基准不是全局唯一的(即,不在各网络控制实体上识别相同外围处理装置)。因此,与全局唯一标识符相比,下一跳基准占据更小的存储器和/或数据包的更小的部分。在1106上,通过使用下一跳基准从可在访问开关(即,第一访问开关)上访问并且保持下一跳基准和下一跳标识符之间的相关性的数据库检索下一跳标识符。下一跳标识符与外围处理装置相关。在一些实施例中,下一跳标识符是IP地址、MAC地址和/或识别外围处理装置的一些其它的地址。在一些实施例中,下一跳标识符是全局唯一的(即,对于各网络控制实体和/或系统内的访问开关唯一地识别外围处理装置)。在一些实施例中,这种数据库被局部存储于第一访问开关的数据面模块的存储器中。在这些实施例中,并且,如上所述,数据库可保持相对较小,并且,任何数据库查询和/或查找可相对较快。下一跳标识符在1108上被附加到数据包上,并且,数据包在1110上被发送到外围处理装置。如果外围处理装置不是数据包的最终目的地,那么外围处理装置可使用数据包的标题部分内的目的地标识符,以进一步向下一跳转送数据包。虽然以上描述了各种实施例,但应理解,它们仅作为例子而不是限制被给出。在以上描述的方法指示在以一定的次序出现的某些事件的情况下,某些事件的次序可被修改。 另外,可以在可能时在并行的处理中同时地处理以及如上面描述的那样依次地执行事件中的某些事件。以上表示和描述的实施例指的是多个外围处理装置,包括计算节点、存储节点、月艮务节点和路由器。在一些实施例中,计算节点中的一个或多个可以是可包含例如处理器、存储器和/或一个或多个网络接口装置(例如,网络接口卡(NIC))的通用计算机引擎。在一些实施例中,计算节点内的处理器可以是一个或多个高速缓存相干域的一部分。在一些实施例中,计算节点可以是主机装置和/或服务器等。在一些实施例中,计算节点中的一个或多个可具有可视化的资源,使得任何计算节点(或其一部分)可替代与开关构造系统操作耦合的任何其它计算节点(或其一部分)。在一些实施例中,存储节点中的一个或多个可以是包含例如处理器、存储器、局部固定盘存储器和/或一个或多个网络接口装置的装置。在一些实施例中,存储节点可具有被配置为使得例如计算节点中的一个或多个能够通过开关构造从和/或向存储节点中的一个或多个读取/写入数据的专用模块(例如,硬件模块和/或软件模块)。在一些实施例中,存储节点中的一个或多个可具有可视化的资源,使得任何存储节点(或其一部分)可替代与开关构造系统操作耦合的任何其它存储节点(或其一部分)。在一些实施例中,服务节点中的一个或多个可以是可包含例如处理器(例如,网络处理器)、存储器和/或一个或多个网络接口装置(例如,10( 以太网装置)的开放系统互连(OSI)层-4 层-7。在一些实施例中,服务节点可包含被配置为在相对较重的网络工作负担上执行计算的硬件和/或软件。在一些实施例中,服务节点可被配置为以相对有效的方式在每个数据包的基础上执行计算(例如,比在例如计算节点上执行更有效)。计算可包含例如状态防火墙计算、侵入检测和防止(IDP)计算、可扩展标记语言(XML)加速计算、 传送控制协议(TCP)终止计算和/或应用级负载平衡计算。在一些实施例中,服务节点中的一个或多个可具有可视化的资源,使得任何服务节点(或其一部分)可替代与开关构造系统操作耦合的任何其它服务节点(或其一部分)。在一些实施例中,路由器中的一个或多个可以是被配置为连接开关构造系统(例如,数据中心)的至少一部分与另一网络(例如,全球因特网)的网络装置。在一些实施例中,例如,路由器可使得在与开关构造系统相关的部件(例如,外围处理装置、开关构造的部分)之间实现通信。可基于例如层3路由协议限定通信。在一些实施例中,路由器中的一个或多个可具有路由器可向和/或从例如开关构造和/或其它的外围处理装置发送/接收信号的一个或多个网络接口装置(例如,10( 以太网装置)。这里描述的一些实施例涉及具有上面具有用于执行各种计算机实现动作的指令或计算机代码的非瞬时计算机可读介质(也可被称为非瞬时处理器可读介质)的计算机存储产品。计算机可读介质(或处理器可读介质)是非瞬时的,原因是它不包含瞬时传播信号本身(例如,诸如空间或电缆的传送介质上的承载信息的传播电磁波)。介质和计算机代码(也可称为代码)可以是对于特定目的地设计和构建的那些。非瞬时计算器可读介质的例子包含但不限于诸如硬盘、软盘和磁带的磁性存储介质;诸如紧致盘/数字视频盘 (⑶/DVD)、紧致盘只读存储器(⑶-ROM)和全息设备的光学存储介质;诸如光盘的磁光存储介质;载波信号处理模块;和诸如应用特定集成电路(ASIC)、可编程逻辑装置(PLD)、只读存储器(ROM)和随机存取存储器(RAM)装置的特别被配置为存储和执行程序代码的硬件设备。计算机代码的例子包含但不限于微代码或微指令、诸如由编辑器产生的机器指令、用于产生网络服务的代码和包含通过使用解释程序由计算机执行的高级指令的文件。 例如,可通过使用Java、C++或其它的编程语言(例如,面向对象的编程语言)和开发工具实现实施例。计算机代码的另外的例子包含但不限于控制信号、加密代码和压缩代码。虽然以上描述了各种实施例,但应理解,它们仅作为例子而不是限制被给出,并且,可以提出形式和细节的各种变化。除了相互排斥的组合以外,这里描述的设备和/或方法的任何部分可以在任意组合上被组合。这里描述的实施例可包含描述的不同的实施例的功能、部件和/或特征的各种组合和/或子组合。
权利要求
1.一种在存储器或处理装置中的至少其中一个中实现的设备,包括管理与来自第一访问开关上的多个端口的端口相关的第一数据面模块的第一网络控制实体,第一网络控制实体使与来自多个端口的端口操作耦合的外围处理装置的标识符与下一跳基准相关,当外围处理装置处于处于第二访问开关和目的地外围处理装置之间并且包含第二访问开关和目的地外围处理装置的数据路径内时,第一网络控制实体向管理第二访问开关上的第二数据面模块的第二网络控制实体提供下一跳基准,使得第二数据面模块可将下一跳基准附加到数据包上。
2.根据权利要求1的设备,其中,外围处理装置是目的地外围处理装置。
3.根据权利要求1的设备,其中,外围处理装置与目的地外围处理装置不同。
4.根据权利要求1的设备,其中,第一数据面模块要在向外围处理装置发送数据包之前,从数据包去除下一跳基准并且将外围处理装置的标识符附加到数据包上。
5.根据权利要求1的设备,其中,第二数据面模块要准备要通过开关构造发送到第一数据面模块的数据包。
6.根据权利要求1的设备,其中,第二数据面模块通过具有多个物理跳的单逻辑跳与第一数据面模块操作耦合。
7.根据权利要求1的设备,其中,外围处理装置是第一外围处理装置,下一跳基准与第一网络控制实体上的第一外围处理装置的标识符相关,下一跳基准与第三网络控制实体上的第二外围处理装置的标识符相关。
8.一种非瞬时处理器可读介质,存储表示使得处理器完成以下过程的指令的代码在第一访问开关上从开关构造接收数据包,该数据包从第二访问开关被发送到开关构造;分析数据包的标题部分以检索下一跳基准,下一跳基准在第一访问开关上被接收之前已被附加到第二访问开关上的数据包上;通过使用下一跳基准从可在第一访问开关上访问并且保持下一跳基准和外围处理装置的下一跳标识符之间的关联性的数据库,检索外围处理装置的下一跳标识符;将下一跳标识符附加到数据包上;和向外围处理装置发送数据包。
9.根据权利要求8的非瞬时处理器可读介质,其中,外围处理装置是第一外围处理装置,下一跳基准和第一外围处理装置的下一跳标识符之间的关联性是管理与第一外围处理装置耦合的端口的第一网络控制实体向第一外围处理装置的下一跳标识符分配下一跳基准的结果,管理与第二外围处理装置耦合的端口的第二网络控制实体向第二外围处理装置的下一跳标识符分配下一跳基准。
10.根据权利要求8的非瞬时处理器可读介质,其中,下一跳基准在来自多个网络控制实体的网络控制实体中是唯一的,并且网络控制实体管理与第一外围处理装置耦合的端口,下一跳标识符在多个网络控制实体上是唯一的
11.根据权利要求8的非瞬时处理器可读介质,其中,下一跳基准是第一尺寸,下一跳标识符是比第一尺寸大的第二尺寸。
12.根据权利要求8的非瞬时处理器可读介质,还包括表示使得处理器完成以下过程的指令的代码使下一跳标识符与下一跳基准相关联以产生下一跳标识符与下一跳基准的关联性;和将下一跳标识符与下一跳基准的关联性发送到第二访问开关。
13.一种系统,包括在第一处理器上用于管理要与第一外围处理装置操作耦合的第一端口和要与第二外围处理装置操作耦合的第二端口的第一网络控制实体,第一网络控制实体向第一外围处理装置分配第一下一跳基准并且向第二外围处理装置分配第二下一跳基准;和在第二处理器上用于管理要与第一外围处理装置操作耦合的第三端口和要与第三外围处理装置操作耦合的第四端口的第二网络控制实体,第二网络控制实体向第一外围处理装置分配第一下一跳基准并且向第三外围处理装置分配第二下一跳基准。
14.根据权利要求13的系统,其中,第一网络控制实体和第二网络控制实体向第三网络控制实体提供第一下一跳基准和第二下一跳基准,使得与第三网络控制实体相关的数据面模块可在向第一外围处理装置发送数据包时将第一下一跳基准附加到数据包上,并且使得数据面模块可在向第二外围处理装置或第三外围处理装置发送数据包时将第二下一跳基准附加到数据包上。
15.根据权利要求13的系统,其中,第一网络控制实体是关于第一外围处理装置的主网络控制实体,第一网络控制实体发送和接收与第一外围处理装置相关的转送状态信息。
16.根据权利要求13的系统,还包括在存储器的第一部分中存储第一下一跳基准并且在存储器的第二部分中存储第二下一跳基准的网络管理模块,存储器的第一部分存储在第一网络控制实体和第二网络控制实体之间共享的多个下一跳基准,多个下一跳基准包含第一下一跳基准,存储器的第二部分是第一网络控制实体和第二网络控制实体中的每一个特有的。
17.根据权利要求13的系统,其中,第一端口和第二端口处于第一访问开关上,第三端口和第四端口处于第二访问开关上,第一访问开关通过开关构造与第二访问开关操作耦合。
18.根据权利要求13的系统,其中,第一端口、第二端口、第三端口和第四端口处于第一访问开关上,第一访问开关通过开关构造从第二访问开关发送数据和从其接收数据。
19.根据权利要求13的系统,其中,访问开关上的数据面模块基于第一端口的可用性和第三端口的可用性,确定通过开关构造和第一端口向第一外围处理装置发送数据包。
20.根据权利要求13的系统,其中,与第二端口相关的数据面模块在向第二外围处理装置发送数据包之前,从向开关构造接收的数据包中去除第二下一跳基准,并且将与第二外围处理装置相关的外围处理装置标识符附加到数据包上。
全文摘要
一种管理分布式开关构造系统中的下一跳标识符的方法和装置。在一些实施例中,在存储器和/或处理装置中实现的设备包括管理与来自第一访问开关上的一组端口的端口相关的第一数据面模块的第一网络控制实体。第一网络控制实体使与来自一组端口的端口操作耦合的外围处理装置的标识符与下一跳基准相关。当外围处理装置处于处于第二访问开关和目的地外围处理装置之间并且包含它们的数据路径内时,第一网络控制实体向管理第二访问开关上的第二数据面模块的第二网络控制实体提供下一跳基准,使得第二数据面模块可将下一跳基准附加到数据包上。
文档编号H04L29/08GK102546742SQ20111026438
公开日2012年7月4日 申请日期2011年8月31日 优先权日2010年12月15日
发明者J·洛格纳桑, Q·沃赫拉, R·舍卡尔, V·A·卡鲁西瓦林加姆 申请人:丛林网络公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1