用于在分布式交换机中提供服务的方法和装置制造方法

文档序号:7998937阅读:270来源:国知局
用于在分布式交换机中提供服务的方法和装置制造方法
【专利摘要】本发明提供了一种用于在分布式交换机中提供服务的方法和装置。在一些实施例中,一种非瞬态处理器可读介质存储代表将由处理器执行的指令的代码。该代码使得处理器从源外围处理设备接收具有目的地地址的数据分组的一部分,该目的地地址与目的地外围处理设备相关联。该代码使得处理器基于目的地地址来识别将对数据分组的所述部分执行的服务。该代码使得处理器基于服务来选择与该服务相关联的服务模块的标识符。该代码还使得处理器经由分布式交换结构向服务模块发送数据分组的所述部分,以使得服务模块对数据分组的所述部分执行服务并且经由分布式交换结构向目的地外围处理设备发送数据分组的所述部分。
【专利说明】用于在分布式交换机中提供服务的方法和装置
[0001]相关申请的交叉引用
[0002]本申请与具有代理案号JUN1-189/01US108200-2449、提交于相同日期并且标题为“Methods and Apparatus for Providing S ervices in a Distributed Switch,,的共同未决美国专利申请相关,通过引用将该申请整体结合于此。
【技术领域】
[0003]这里描述的一些实施例总地涉及大型数据中心和企业网络,并且具体地涉及用于在例如单层数据中心内的分布式交换机中提供服务的方法和装置。
【背景技术】
[0004]一些已知的数据中心以能够将典型三层架构(例如,接入层、聚合层和核心层)压缩成单层架构这样的方式布置网络设备。在这样的单层架构中,多个边缘设备,诸如架顶(TOR)网络设备通过多个链路互连。TOR网络设备连接到为数据中心的部件提供各种功能和服务的多个服务器设备。
[0005]然而,存在对于能够在单层架构的数据中心中高效提供功能和服务的方法和装置的需要。

【发明内容】

[0006]在一些实施例中,一种非瞬态处理器可读介质存储代码,该代码使得处理器从源外围处理设备接收具有与目的地外围处理设备相关联的目的地地址的数据分组的一部分。该代码使得处理器至少部分地基于目的地地址来识别将对所述数据分组的所述部分执行的服务。该代码使的处理器基于 所述服务来选择与关联于该服务的服务模块相关联的标识符。该代码还使得处理器经由分布式交换结构(switch fabric)向服务模块发送所述数据分组的所述部分,从而使得服务模块对数据分组的所述部分执行服务并且经由分布式交换结构向目的地外围处理设备发送所述数据分组的所述部分。
【专利附图】

【附图说明】[0007]图图示。[0008]图[0009]图[0010]图[0011]图[0012]图示意图示。[0013]图
图1是根据一个实施例的被配置为向数据业务提供服务的交换结构系统的示意的流程图。
【具体实施方式】
[0014]在一些实施例中,一种非瞬态处理器可读介质存储代表将由处理器执行的指令的代码。在非瞬态处理器可读介质中存储的代码包括用于使得处理器从源外围处理设备接收数据分组的至少一部分(例如,数据单元、数据单位、整个数据分组、数据分组的报头部分、数据分组的净荷部分等)的代码,该数据分组的至少一部分具有与目的地外围处理设备相关联的目的地地址。非瞬态处理器可读介质包括用于使得处理器例如基于目的地地址来识别将对数据分组的所述部分执行的第一服务的代码。在一些实施例中,这样的第一服务可以例如是安全服务、负载平衡服务等。
[0015]非瞬态处理器可读介质还包括用于使得处理器基于第一服务来选择与第一服务模块相关联的标识符的代码,该第一服务模块与第一服务相关联。在一些实施例中,该代码使得处理器基于哈希函数的结果来选择标识符,该哈希函数以目的地地址作为对哈希函数的输入。在一些实施例中,第一服务模块在边缘设备或者与源外围处理设备和目的地外围处理设备不同的服务外围处理设备内。
[0016]非瞬态处理器可读介质还包括下述代码,该代码用于使得处理器经由分布式交换结构向第一服务模块发送数据分组的一部分(例如,数据单元、数据单位、整个数据分组、数据分组的报头部分、数据分组的净荷部分等),从而使得第一服务模块对数据分组的所述部分执行第一服务并且经由分布式交换结构向目的地外围处理设备发送数据分组的所述部分。在一些实施例中,分布式交换结构包括Clos架构。
[0017]在一些实施例中,非瞬态处理器可读介质包括下述代码,该代码用于使得处理器识别将对数据分组的一部分(例如,数据单元、数据单位、整个数据分组、数据分组的报头部分、数据分组的净荷部分等)执行的第二服务。该代码使得处理器基于第二服务来选择与第二服务模块相关联的标识符,该第二服务模块与第二服务相关联。该代码还使得处理器经由分布式交换结构向第一服务模块发送数据分组的所述部分,从而使得第一服务模块对数据分组的所述部分执行第一服务并且经由分布式交换结构和第二服务模块向目的地外围处理设备发送数据分组的所述部分。
[0018]如这里所使用的术语“物理跳跃”可以包括两个模块和/或设备之间的物理链路。例如,操作地耦合外围处理设备与边缘设备的数据路径可以被称为物理跳跃。换而言之,物理跳跃可以物理地链接外围处理设备与边缘设备。
[0019]如这里所使用的术语“单个物理跳跃”可以包括在系统中的两个设备之间的直接物理连接。换而言之,单个物理跳跃可以包括如下链路:在没有任何中间模块的情况下两个设备经由该链路被耦合。因而,例如如果外围处理设备经由单个物理跳跃耦合到边缘设备,则外围处理设备可以向边缘设备直接发送数据分组而不通过任何居间模块来发送这些数据分组。
[0020]如这里所使用的术语“单个逻辑跳跃”指如下物理跳跃和/或物理跳跃组,该物理跳跃和/或物理跳跃组是与第一协议相关联的网络拓扑内的单个跳跃。换而言之,根据与第一协议相关联的拓扑,没有居间节点存在于经由该物理跳跃和/或物理跳跃组操作地耦合到第二模块和/或设备的第一模块和/或设备之间。经由单个逻辑跳跃连接到第二模块和/或设备的第一模块和/或设备无论在第一设备与第二设备之间的物理跳跃的数目如何,都可以使用与第一协议和第二模块和/或设备相关联的目的地地址来向第二模块和/或设备发送数据分组。在一些实施例中,例如第二协议可以使用第一协议的目的地地址来通过单个逻辑跳跃向第二模块和/或设备路由来自第一模块和/或设备的数据分组和/或单元。换而言之,在第一模块和/或设备经由第一协议的单个逻辑跳跃向第二模块和/或设备发送数据时,第一模块和/或设备将单个逻辑跳跃视为如同它向第二模块和/或设备直接发送数据。
[0021]在一些实施例中,交换结构(例如,分布式交换结构)可以充当单个逻辑跳跃(例如,单个大规模联合(consolidated) L2/L3交换机)的一部分。例如,交换结构的各部分可以在物理上跨例如通过多个物理跳跃互连的许多底盘(chassis)和/或模块而分布。这样的交换结构可以被称为分布式交换结构。在一些实施例中,例如可以在第一底盘中包括分布式交换结构的一级并且可以在第二底盘中包括分布式交换结构的另一级。这两级可以在逻辑上充当单个联合交换机的一部分(例如,在根据第一协议的相同逻辑跳跃内),但是包括在联合交换机内的相应成对级之间的分离的单个物理跳跃。换而言之,物理跳跃可以操作地耦合分布式交换结构内的每一级,该每一级代表与用来在分布式交换结构以外路由数据的协议相关联的单个逻辑跳跃。此外,与用来在单个逻辑跳跃以外路由数据的协议相关联的分组分类和转发不必发生在单个逻辑跳跃内的每一级。在一些实施例中,例如与第一协议(例如,以太网)相关联的分组分类和转发可以在模块和/或设备经由单个逻辑跳跃向另一模块和/或设备发送数据分组之前发生。
[0022]如在本说明书中所使用的单数形式“一”和“该”包括复数引用,除非上下文另有明示。因此,例如术语“一服务模块”旨在于意指单个服务模块或者服务模块的组合。
[0023]图1是根据一个实施例的被配置为向数据业务提供服务的交换结构系统100的示意图示。交换结构系统100包括交换结构110、管理模块150和多个边缘设备(例如,边缘设备181-183)。交换结构系统100操作地使多个外围处理设备(例如,外围处理设备111-116)相互耦合。如图1中所示,每个外围处理设备111-116操作地耦合到交换结构系统100的边缘设备181-183。具体而言,外围处理设备111和112操作地耦合到边缘设备182 ;外围处理设备113和114操作地耦合到边缘设备181 ;外围处理设备115和116操作地耦合到边缘设备183。
[0024]每个外围处理设备111-116可以是能够向和/或从操作地耦合到该外围处理设备111-116的边缘设备181-183发送数据和/或接收数据的任何设备。外围处理设备111-116可以例如是计算节点、服务节点、路由器和存储节点等。在一些实施例中,例如外围处理设备111-116包括服务器、存储设备、网关、工作站等。
[0025]外围处理设备111-116可以使用任何适当连接,诸如例如光连接(例如,光线缆和光连接器)、电连接(例如,电线缆和电连接器)、无线连接(例如,无线收发器)等来操作地耦合到交换结构系统100的边缘设备181-183。这样,外围处理设备111-116可以被配置为经由包括边缘设备181-183和交换结构110的交换结构系统100向其它外围处理设备111-116发送数据(例如,数据分组、数据单元)。在一些实施例中,在外围处理设备111-116与边缘设备181-183之间的连接是直接链路(例如,有线链路、无线链路)。这样的链路可以被视为单个物理跳跃链路。在其它实施例中,外围处理设备111-116可以经由中间模块(在图1中未示出)操作地耦合到边缘设备181-183。这样的连接可以被视为多个物理跳跃链路。
[0026]每个边缘设备181、182、183可以是被配置为将外围处理设备111-116操作地耦合到交换结构110的任何设备。在一些实施例中,边缘设备181-183可以例如是接入交换机、输入/输出模块、架顶(TOR)设备等。在结构上,边缘设备181-183可以充当源边缘设备和目的地边缘设备二者。因而,边缘设备181-183可以向和从交换结构110以及向和从连接的外围处理设备111-116发送数据(例如,数据分组或者数据单元的数据流)和接收数据。
[0027]每个边缘设备181、182、183被配置为经由交换结构110与其它边缘设备181-183通信。具体而言,交换结构110被配置为以相对低的延时来提供在边缘设备181-183之间的任意设备到任意设备的连通。也就是说,交换结构110可以被配置为在边缘设备181-183之间传输(例如,传送)数据。在一些实施例中,交换结构110可以至少具有数以百计或者数以千计的端口(例如,外出端口和/或进入端口),边缘设备181-183可以通过这些端口来发送和/或接收数据。在一些实施例中,每个边缘设备181、182、183可以被配置为在跨交换结构110的多个数据路径上与其它边缘设备181、182、183通信。换而言之,在一些实施例中,多个数据路径在交换结构110内存在于边缘设备181、182或者183与另一边缘设备181、182或者183之间。在一些实施例中,交换结构系统100可以具有单层架构。在这样的单层架构中,每个边缘设备被配置为经由单个物理跳跃连接到每个其它边缘设备并且与每个其它边缘设备通信。换而言之,每个边缘设备直接连接到交换结构系统中的每个其它边缘设备。
[0028]图3是根据一个实施例的边缘设备300的框图。边缘设备300可以在结构上和功能上与关于图1示出和描述的边缘设备181-183相似。具体而言,边缘设备300可以将一个或者多个外围处理设备(与图1中的、但是在图3中未示出的外围处理设备111-116相似)操作地耦合到交换结构(与图1中的、但是在图3中未示出的交换结构110相似)。
[0029]如图3中所示,边缘设备300包括处理器330 ;存储器350,该存储器包括过滤器模块355、服务表353和路由表354 ;线路卡(line card) 310、320 ;以及端口 331。处理器330操作地耦合到存储器350、线路卡310、线路卡320和端口 331。线路卡310包括端口 311和312。线路卡320包括端口 321和322。在一些实施例中,线路卡310和/或320可以包括一个或者多个处理器和/或存储器。在一些实施例中,端口可以是任何如下实体,该实体可以活动地与耦合的设备通信(例如,向和/或从耦合的设备发送数据和/或接收数据)或者活动地通过网络进行通信。这样的端口不必是硬件端口,而可以是虚拟端口或者软件定义的端口。
[0030]在一些实施例中,端口 311、312、321和/或322可以例如耦合到与边缘设备300耦合的多个外围处理设备并且与这些外围处理设备通信。在这样的实施例中,端口 311、312、321和/或322可以实施一个或者多个物理层(例如,使用光纤信令的物理层、使用双绞线电信令的物理层)。另外,端口 311、312、321和/或322可以允许边缘设备300经由一个或者多个通信协议(例如,光纤信道协议、以太网协议)与多个外围处理设备通信。因此,边缘设备300可以使用同构或者异构物理层和/或通信协议经由端口 311、312、321和/或322与多个外围处理设备通信。
[0031]在一些实施例中,端口 331可以连接到交换结构内的设备(例如,切换设备、路由设备),从而使得边缘设备300可以经由交换结构操作地耦合到其它边缘设备。端口 331可以是一个或者多个网络接口(例如,40吉比特(Gb)以太网接口、IOOGb以太网接口等)的一部分,边缘设备300可以通过该一个或者多个网络接口向和/或从交换结构发送数据和/或接收数据。可以例如经由操作地耦合到边缘设备300的光链路、电链路或者无线链路来向和/或从交换结构发送和/或接收数据。在一些实施例中,边缘设备300可以基于一个或者多个通信协议(例如,光纤信道协议、以太网协议)来向和/或从交换结构发送数据和/或接收数据。
[0032]在一些实施例中,端口 331可以实施与在端口 311、312、321和322实施的物理层和/或通信协议不同的物理层和/或通信协议。例如,端口 311、312、321和322可以使用基于数据分组的通信协议来与外围处理设备通信,并且端口 331可以使用基于数据单元的通信协议来与交换结构通信。在一些实施例中,边缘设备300可以是网络交换机,诸如分布式网络交换机的边缘设备。
[0033]在一些实施例中,存储器350可以例如是随机存取存储器(RAM)(例如,动态RAM、静态RAM)、闪存、可移除存储器等。在一些实施例中,可以将服务表353和路由表354实施为例如关系数据库、表等。在一些实施例中,服务表353和路由表354可以各自被存储于存储器350内的一个或者多个位置。在一些实施例中,虽然在图3中未示出,但是边缘设备300可以包括一个或者多个服务表和/或一个或者多个路由表。在一些实施例中,过滤器模块355可以例如是(在硬件中存储的和/或执行的)过程、应用、虚拟机和/或某一其它软件模块或者硬件模块。例如,可以在存储器350内存储并且在处理器330处执行用于实施过滤器模块355的指令。
[0034]在一些实施例中,边缘设备300可以包括硬件模块与(在硬件中存储和/或执行的)软件模块的组合。在一些实施例中,例如边缘设备300可以包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、数字信号处理器(DSP)等。在一些实施例中,通过执行在边缘设备300中包括的模块(例如,过滤器模块355)并且使用服务表353和路由表354,边缘设备300可以被配置为通过交换结构路由数据业务,从而使得可以在数据被发送到目的地(例如,目的地外围处理设备)之前对该数据执行一个或者多个期望服务。具体而言,边缘设备300可以被配置为识别将对在边缘设备300处接收的数据执行的一个或者多个服务、选择与识别的服务相关联的一个或者多个服务模块并且向选择的服务模块发送数据,从而使得选择的服务模块可以对数据执行服务。关于图1、6和7进一步描述了这样的过程的细节。
[0035]在一些实施例中,边缘设备可以操作地耦合到或者包括一个或者多个服务模块。图5是根据一个实施例的操作地耦合到服务模块561-567的机架的边缘设备550的示意图示。边缘设备550可以在结构上和功能上与关于图1示出和描述的边缘设备181-183相似。具体而言,边缘设备550可以是(与图1中的交换结构系统100相似的)交换结构系统内的边缘设备。边缘设备550可以将(与图1中的、但是在图5中未示出的外围处理设备111-116相似的)外围处理设备集合操作地耦合到(与图1中的、但是在图5中未示出的交换结构110相似的)交换结构。在一些实施例中,例如边缘设备550可以是与服务模块561-567的机架互连的TOR网络设备,诸如网络交换机。
[0036]服务模块561-567可以是被配置为提供功能和/或执行服务的任何模块、部件或者设备。例如,每个服务模块561-567可以被配置为提供与经由边缘设备550和交换结构向和/或从其它设备发送数据和/或接收数据相关联的功能,其中边缘设备550可以是源边缘设备和/或目的地边缘设备。例如,服务模块561可以是被配置为托管网站并且经由边缘设备550和交换结构从用户操作的输入设备(例如,个人计算机、智能电话)接收数据的web服务器。再例如,服务模块562可以是被配置为执行应用并且经由边缘设备550和交换结构向与用户相关联的显示设备发送数据的应用服务器。
[0037]来自服务模块561-567的机架的一个或者多个服务模块可以被配置为对跨交换结构传输的数据执行服务。例如,服务模块563可以被配置为对向web服务器传输的数据执行安全服务(例如,防火墙)。再例如,服务模块564可以被配置为对从应用服务器生成的数据执行负载平衡服务(例如,通过多个数据路径分发数据业务)。来自服务模块561-567的机架的一个或者多个服务模块可以是虚拟服务模块。这样的虚拟服务模块可以由(与图1中的管理模块150和图4中的管理模块400相似的)管理模块来管理(例如,实例化、配置、监视、维护、移动、去实例化等),该管理模块被配置为管理交换结构系统的边缘设备(包括边缘设备550)和虚拟服务模块。关于图4进一步描述了管理虚拟服务模块的细节。
[0038]可以例如在来自操作地耦合到边缘设备500的外围处理设备集合的外围处理设备和/或操作地耦合到边缘设备550的任何其它类型的服务器设备处托管和执行一个或者多个服务模块561-567 ο在这样的实施例中,一个或者多个服务模块561-567操作地稱合到如图5中所示的边缘设备550。托管服务模块的外围处理设备可以被称为服务外围处理设备。类似地,虽然在图5中未示出,但是可以在边缘设备550内托管和执行一个或者多个服务模块561-567。在这样的实施例中,可以在边缘设备550的存储器中存储并且在边缘设备550的处理器处执行一个或者多个服务模块561-567。托管服务模块的边缘设备可以被称为服务边缘设备。
[0039]返回图1,交换结构110可以是经由一个或者多个数据路径将边缘设备181-183操作地耦合到其它边缘设备181-183的任何适当交换结构。例如,交换结构110可以是具有多级交换模块(例如,集成以太网交换机)的Clos网络(例如,非阻塞Clos网络、严格意义上的非阻塞Clos网络、Benes网络)。在一些实施例中,例如,交换结构110可以与(如关于图2示出和描述的)具有三级的交换结构200相似。在其它实施例中,图1中所示的交换结构110可以包括任何数目的级。在这样的实施例中,例如,交换结构110可以包括五级、七级或者九级。
[0040]在一些实施例中,交换结构110可以是(例如,可以充当)单个联合交换机(例如,单个大规模联合L2/L3交换机)。换而言之,交换结构110可以被配置为作为单个逻辑实体(例如,单个逻辑网元)来操作。在这样的实施例中,交换结构110可以是在第一边缘设备181、182或者183与第二边缘设备181、182或者183之间的单个逻辑跳跃的一部分(例如,与在边缘设备181-183与交换结构110之间的数据路径一起)。交换结构110可以被配置为连接外围处理设备111-116(例如,促进在外围处理设备111-116之间的通信)。在一些实施例中,交换结构110可以被配置为经由如下接口设备(在图1中未示出)通信,这些接口设备被配置为以至少10Gb/s的速率来传输数据。在一些实施例中,交换结构110可以被配置为经由如下接口设备(例如,光纤信道接口设备)通信,这些接口设备被配置为在例如2Gb/s、4Gb/s、8Gb/s、10Gb/s、40Gb/s、100Gb/s和/或更快链路速度的速率下传输数据。[0041]虽然交换结构110可以在逻辑上是集中式的,但是例如出于可靠性考虑,交换结构110的实现方式可以是高度分布式的。例如,交换结构110的各部分可以在物理上跨例如许多底盘(或者机架)分布。在一些实施例中,例如可以在第一底盘中包括交换结构110的一级,并且可以在第二底盘中包括交换结构110的另一级。这两级可以在逻辑上充当单个联合交换机(例如,在相同逻辑跳跃内)的一部分,但是具有在相应成对级之间的分离的单个物理跳跃。
[0042]图2是根据一个实施例的多级交换结构200的示意图示。交换结构200可以在结构上和功能上与关于图1示出和描述的交换结构110相似。交换结构200可以包括在单个逻辑跳跃内的多个物理跳跃。在一些实施例中,交换结构200可以是包括第一级240、第二级242和第三级244的多级、非阻塞Clos网络。第一级240包括交换模块212 ;第二级242包括交换模块214 ;第三级244包括交换模块216。换而言之,第一级240的交换模块212、第二级242的交换模块214和第三级244的交换模块216共同定义多级交换结构200。
[0043]在一些实施例中,第一级240的每个交换模块212可以是电子部件和电路的组件。在一些实施例中,例如每个交换模块212是ASIC。在其它实施例中,在单个ASIC或者单个芯片封装上包含多个交换模块。在更多其它实施例中,每个交换模块是分立电部件的组件。
[0044]在一些实施例中,第一级240的每个交换模块212是交换机(例如,分组交换机、帧交换机、集成以太网交换机和/或单元交换机)。交换机被配置为在数据(例如,数据分组、数据单元等)流过交换结构200时对它重定向。在一些实施例中,例如每个交换机包括操作地耦合到存储器缓冲器(在图2中未示出)上的写入接口的进入端口。类似地,外出端口集合操作地耦合到存储器缓冲器上的读取接口。在一些实施例中,存储器缓冲器可以是使用片上静态随机存取存储器(SRAM)来实施的共享存储器缓冲器,该存储器缓冲器用于向所有进入端口和所有外出端口提供充足的带宽以在每个时间段(例如,一个或者多个时钟周期)写入一个传入数据单元(例如,数据分组的一部分)或者数据分组,并且在每个时间段读取一个传出数据单元或者数据分组。每个交换机与可以在后续每个时间段中重新配置的纵横(crossbar)交换机相似地进行操作。
[0045]第一级240的每个交换模块212包括被配置为在数据(例如,数据单元、数据分组)进入交换结构200时接收该数据的进入端口 260的集合。例如,每个进入端口 260可以耦合到边缘设备(例如,关于图1示出和描述的边缘设备181-183)。在一些实施例中,交换模块212的多于一个进入端口 260可以经由分离的物理连接(例如,多个电线缆、多个光纤线缆等)耦合到公共边缘设备的不同端口。因而,边缘设备可以经由进入端口 260向交换结构200发送数据。在图2的实施例中,第一级240的每个交换模块212包括相同数目的进入端口 260。在其它实施例中,每个交换模块212可以具有不同数目的进入端口 260。
[0046]与第一级240相似,交换结构200的第二级242包括交换模块241。第二级242的交换模块214在结构上与第一级240的交换模块212相似。在一些实施例中,第二级242的每个交换模块214通过数据路径220操作地耦合到第一级240的每个交换模块212。在第一级240的给定交换模块212与第二级242的给定交换模块214之间的每个数据路径220被配置为促进从第一级240的交换模块212向第二级242的交换模块214的数据传送。
[0047]可以用被配置为促进从第一级240的交换模块212向第二级242的交换模块214的数据传送的任何方式来构造在第一级240的交换模块212与第二级242的交换模块214之间的数据路径220。在一些实施例中,数据路径220可以例如是在交换模块之间的光连接器。在其它实施例中,数据路径220可以在中间平面(midplane)内。这样的中间平面可以用来将第二级242的每个交换模块214与第一级240的每个交换模块212连接。在更多其它实施例中,可以在单个芯片封装内包含两个或者更多交换模块212和214,并且数据路径220可以是电迹线。
[0048]在一些实施例中,交换结构200可以是非阻塞Clos网络。因此,交换结构200的第二级242的交换模块214的数目基于第一级240的每个交换模块212的进入端口 260的数目而变化。在可再布置的非阻塞Clos网络(例如,Benes网络)中,第二级242的交换模块214的数目大于或者等于第一级240的每个交换模块212的进入端口 260的数目。在一些实施例中,例如第一级240的每个交换模块212具有五个进入端口。因此,第二级242具有至少五个交换模块214。第一级240的交换模块212中的每个交换模块通过数据路径220操作地耦合到第二级242的所有交换模块214。换而言之,第一级240的每个交换模块212可以向第二级242的任何交换模块214发送数据。
[0049]交换结构200的第三级244包括交换模块216。第三级244的交换模块216在结构上与第一级240的交换模块212相似。第三级244的交换模块216的数目通常与第一级240的交换模块212的数目相等。第三级244的每个交换模块216包括被配置为允许数据退出交换结构200的外出端口 262。例如,每个外出端口 262可以耦合到边缘设备(例如,关于图1不出和描述的边缘设备181-183)。在一些实施例中,与第一级240的交换模块212相似,交换模块216的多于一个的外出端口 262可以经由分离的物理连接(例如,多个电线缆、多个光纤线缆等)耦合到公共边缘设备的不同端口。因而,边缘设备可以经由外出端口262从交换结构200接收数据。在图2的实施例中,第三级244的每个交换模块216包括相同数目的外出端口 262。另外,第三级244的每个交换模块216的外出端口 262的数目通常与第一级240的每个交换模块212的进入端口 260的数目相等。在其它实施例中,每个交换模块216可以具有不同数目的外出端口 262,并且第三级244的交换模块216的外出端口262的数目可以不同于第一级240的交换模块212的进入端口 260的数目。
[0050]在一些实施例中,第三级244的每个交换模块216可以通过数据路径224连接到第二级242的每个交换模块214。在第二级242的交换模块214与第三级244的交换模块216之间的数据路径224被配置为促进从第二级242的交换模块214向第三级244的交换模块216的数据传送。
[0051]与数据路径220相似,可以用被配置为促进从第二级242的交换模块214向第三级244的交换模块216的数据传送的任何方式来构造在第二级242的交换模块214与第三级244的交换模块216之间的数据路径224。在一些实施例中,例如数据路径224可以例如是在交换模块之间的光连接器。在其它实施例中,数据路径224可以在中间平面内。这样的中间平面可以用来将第二级242的每个交换模块214与第三级244的每个交换模块216连接。在更多其它实施例中,可以在单个芯片封装内包含两个或者更多交换模块214和216,并且数据路径224可以是电迹线。
[0052]在一些实施例中,可以使用哈希函数、查找表、路由表等通过交换结构200来路由数据。例如,第一级交换模块212可以通过使用数据单元的报头值作为向哈希函数的输入来确定向哪个第二级交换模块214发送该数据单元。哈希函数的结果可以是第二级交换模块214的标识符,并且第一级交换模块212可以相应地发送该数据单元。类似地,第二级交换模块214和/或第三级交换模块216可以分别使用这样的哈希函数、查找表和/或路由表来确定分别向哪个第三级交换模块216或者(耦合到外出端口 262的)哪个边缘设备发送数据单元。
[0053]返回图1,管理模块150可以例如是在交换结构系统100内的设备处托管的(在硬件中存储和/或执行的)过程、应用、虚拟机和/或某一其它软件模块或者硬件模块。在一些实施例中,可以例如在边缘设备(例如,边缘设备181-183)、在交换结构110中的切换设备或者在交换结构系统100中的任何其它适当设备处托管管理模块150。托管管理模块150的设备操作地耦合到交换结构系统100的其余设备,包括边缘设备181-183。例如,可以在边缘设备(例如,边缘设备181-183)内的存储器处存储并且在该边缘设备的处理器处执行实施管理模块150的指令。
[0054]管理模块150可以被配置为管理交换结构系统100的一个或者多个边缘设备(例如,边缘设备181-183)。例如,管理模块150可以管理和/或维护与边缘设备181-183相关联的配置信息(例如,端口协议信息、网络分段分配信息、端口分配信息、外围处理设备信息等)、转发状态信息(例如,端口标识符、网络分段标识符、外围处理设备标识符等)和/或其它信息。管理模块150也可以例如监视与边缘设备181-183相关联的外围处理设备(例如,外围处理设备111-116)的状态和/或状况,并且/或者管理和维护与关联于边缘设备181-183的外围处理设备和/或端口相关联的其它信息。具体而言,管理模块150可以被配置为管理和维护与对跨交换结构系统100传输的数据执行服务相关联的信息。
[0055]图4是根据一个实施例的管理模块400的框图。管理模块400可以在结构上和功能上与关于图1示出和描述的管理模块150相似。具体而言,可以在与图1中的交换结构系统100相似的交换结构系统的设备(例如,边缘设备、切换设备)处托管管理模块400。管理模块400可以操作地耦合到交换结构系统的其余设备(例如,边缘设备)。在一些实施例中,管理模块400可以被配置为管理交换结构系统中的边缘设备集合的操作。
[0056]如图4中所示,管理模块400包括存储器450,该存储器包括虚拟机(VM)调配模块453和供给(provisioning)模块454 ;处理器410 ;以及通信接口 420。存储器450可以例如是RAM(例如,动态RAM、静态RAM)、闪存和/或可移除存储器。在存储器450中包括的模块(包括在图4中未示出的可能模块)中的每个模块可以例如是在管理模块400处执行的(在硬件中存储和/或执行的)数据库、过程、应用、虚拟机和/或某一其它软件模块或者硬件模块。可以在存储器450中存储并且由处理器410执行实施这些模块的指令。处理器410可以是例如被配置为向存储器450中写入数据和从存储器450读取数据并且执行在存储器450内存储的指令的任何处理器。处理器410也可以被配置为例如控制VM调配模块453、供给模块454和通信接口 420的操作。另外,通过执行在存储器450中存储的指令,管理模块400可以被配置为经由通信接口 420与管理模块400管理的设备(例如,边缘设备)通信(例如,向和/或从这些设备发送信号和/或接收信号)。
[0057]在处理器410的控制之下并且基于在存储器450中存储的指令,管理模块400也可以例如管理交换结构系统中的边缘设备集合的操作。具体而言,管理模块400的VM调配模块453、供给模块454和/或其它模块(在图4中未示出)可以被配置为共同管理与对跨交换结构系统传输的数据执行服务相关联的边缘设备的操作。[0058]VM调配模块453可以被配置为管理(例如,实例化、配置、监视、维护、移动、去实例化等)在交换结构系统中的设备(例如,服务边缘设备、服务外围处理设备)处执行的虚拟服务模块。可以执行VM调配模块453管理的虚拟服务模块以对跨交换结构系统传输的数据执行各种服务(例如,安全服务、负载平衡服务)。例如,VM调配模块453可以被配置为向边缘设备发送信号(例如,经由通信接口 420),从而使得在该边缘设备处实例化虚拟服务模块。再例如,VM调配模块453可以被配置为监视在服务外围处理设备处执行的虚拟服务模块的状况,从而使得VM调配模块453可以从该服务外围处理设备接收如下指示(例如,经由通信接口 420),该指示指明该虚拟服务模块的状况的改变(例如,虚拟服务模块过加载)。
[0059]供给模块454可以被配置为维护与可用于对跨交换结构系统传输的数据执行服务的服务模块和/或对该数据活动地执行服务的服务模块相关联的信息。例如,供给模块454可以被配置为维护如下数据结构(例如,列表、表),该数据结构存储可用服务的信息和执行服务的关联服务模块的位置。在一些实例中,供给模块454可以被配置为向每个边缘设备发送数据结构的副本或者数据结构的一部分,从而使得边缘设备可以基于数据结构来选择适当服务模块(关于图6进一步描述了细节)。另外,在改变(例如,激活、去激活、过加载等)服务模块的状况之后,供给模块454可以被配置为接收该改变的指示、相应地更新该服务模块的信息、然后向每个边缘设备发送更新的信息。因此,可以用交换结构系统中的任何服务模块的任何改变来更新每个边缘设备。
[0060]返回图1,交换结构系统100可以被配置为经由耦合到源外围处理设备的边缘设备、交换结构110、耦合到目的地外围处理设备的边缘设备和/或对从源外围处理设备生成的数据(例如,数据分组、数据单元)执行服务的一个或者多个设备(例如,服务边缘设备、服务外围处理设备)向目的地外围处理设备转发该数据。因此,交换结构系统100可以被配置为在向目的地外围处理设备发送数据之前对该数据执行一个或者多个服务。
[0061]例如,如图1中所示并且如下文具体描述的那样,交换结构系统100可以被配置为经由边缘设备181、交换结构110、边缘设备182和边缘设备183和/或外围处理设备115 (充当服务边缘设备或者服务外围处理设备)向外围处理设备111 (充当目的地外围处理设备)转发从外围处理设备113 (充当源外围处理设备)生成的数据。因此,可以在向外围处理设备111发送数据之前对该数据执行一个或者多个服务。在这一示例中,如图1中所示经由数据路径172和数据路径174从外围处理设备113向外围处理设备111发送数据。
[0062]具体而言,边缘设备181可以被配置为经由数据路径192从外围处理设备113例如接收数据分组的一部分(例如,数据单元、数据单位、整个数据分组、数据分组的报头部分、数据分组的净荷部分等)。边缘设备181可以被称为源边缘设备。数据分组可以例如与在外围处理设备113处执行的第一服务器(例如,web服务器、应用服务器)和在外围处理设备111处执行的第二服务器相关联。作为结果,可以在外围处理设备113的第一服务器处生成的并且去往在外围处理设备111处的第二服务器的数据分组流中包括数据分组。
[0063]数据分组的一部分可以例如包括与数据分组相关联的路由信息、诸如例如源地址(例如,外围处理设备113的因特网协议(IP)地址或者媒体接入控制(MAC)地址)、目的地地址(例如,外围处理设备111的IP地址或者MAC地址)、服务端口的标识符(例如,与第一服务器关联的外围处理设备113的端口)、目的地端口的标识符(例如,与第二服务器关联的外围处理设备111的端口)、与传输协议关联的信息等。数据分组的一部分可以例如包括数据分组的报头或者报头的一部分。
[0064]响应于接收到数据分组的一部分,边缘设备181可以被配置为例如从可用服务的列表中识别将对数据分组的所述部分执行的服务。这样的服务可以例如是安全服务(例如,防火墙)、负载平衡服务(例如,用于通过多个数据路径分发数据分组的服务)或者任何其它适当服务。在一些实施例中,边缘设备181可以被配置为例如基于数据业务的路由信息(例如,源地址、目的地地址)、数据业务的类型(例如,web服务器业务、语音业务)、与数据业务关联的任何其它信息(例如,传输协议)或者各种信息的任何组合来识别用于数据分组的服务。
[0065]在针对数据分组的一部分识别了服务之后,边缘设备181可以被配置为例如从可以潜在地执行识别的服务的服务模块集合中选择可以对数据执行识别的服务的服务模块。在一些实施例中,可以在服务边缘设备、服务外围处理设备或者任何其它类型的设备处执行这样的服务模块。在一些实施例中,这样的服务模块可以是虚拟服务模块。边缘设备181然后可以被配置为向选择的服务模块路由数据分组的该部分,以使得可以在服务模块处对数据分组的所述部分执行识别的服务。
[0066]例如,边缘设备181可以被配置为基于目的地地址来识别服务并且选择用于执行识别的服务的服务模块,该目的地地址是目的地外围处理设备(例如,外围处理设备111)的地址。再例如,边缘设备181可以被配置为基于目的地地址来识别服务并且选择用于执行识别的服务的服务模块,该目的地地址是将目的地外围处理设备操作地耦合到交换结构110的目的地边缘设备(例如,边缘设备182)的地址。在这样的实例中,边缘设备181可以被配置为例如使用路由表基于目的地外围处理设备的地址来确定目的地边缘设备的地址。类似地,用来在边缘设备181处识别服务并且选择服务模块的源地址可以是源外围处理设备(例如,外围处理设备113)的地址或者源边缘设备(例如,边缘设备181)的地址。
[0067]图6是根据一个实施例的被配置为向服务边缘设备(例如,托管服务模块1-5的边缘设备)路由数据业务的边缘设备600的示意图示。边缘设备600可以在结构上和功能上分别与关于图1和图3示出和描述的边缘设备181-183和边缘设备300相似。与边缘设备300相似,边缘设备600包括过滤器模块610、服务表620和路由表630。可以例如在边缘设备600的存储器(在图6中未示出、但是与图3中的边缘设备300的存储器350相似)中存储和维护服务表620和路由表630。可以在边缘设备600的存储器中存储并且在边缘设备600的处理器(在图6中未示出、但是与图3中的边缘设备300的处理器330相似)执行实施过滤器模块610的指令。
[0068]与图1中的边缘设备181-183相似,可以在与图1中的交换结构系统100相似的交换结构系统(在图6中未示出)中包括边缘设备600。具体而言,边缘设备600可以操作地耦合到源外围处理设备(与图1中的外围处理设备111-116相似,在图6中未示出)和交换结构(与图1中的交换结构110相似,在图6中未示出)。另外,边缘设备600可以操作地耦合到对跨交换结构系统传输的数据执行服务1-4的服务模块1-5的集合。每个服务模块1-5可以执行一个或者多个服务1-4。例如,服务模块I执行服务I和服务2。再例如,服务3由服务模块2、4和5执行。可以例如在与交换结构系统关联的服务边缘设备、月艮务外围处理设备和/或任何其它设备托管和执行服务模块1-5。此外,在服务表620中存储和维护与服务1-4关联的信息(例如,标识符),并且在路由表630中存储和维护与服务模块1_5关联的信息(例如,标识符)。在一些实施例中,服务表620和路由表630可以例如由与交换结构系统关联的管理模块(与图1中的管理模块150相似)维护。
[0069]如图6中所示,边缘设备600可以被配置为例如从操作地耦合到边缘设备600的源外围处理设备接收与数据流关联的数据(例如,数据分组、数据分组的一部分)。数据流可以在源外围处理设备处被生成并且去往目的地外围处理设备。在一些实施例中,在边缘设备600处接收的数据可以包括数据流的路由信息(例如,源地址、目的地地址)和/或任何其它信息(例如,数据业务的类型、传输协议)。
[0070]响应于接收到数据,过滤器模块610可以被配置为从服务1-4的集合中识别将对数据执行的服务。服务1-4可以例如包括安全服务(例如,防火墙)、负载平衡服务(例如,通过多个数据路径分发数据)和/或任何其它适当服务。在一些实施例中,过滤器模块610可以被配置为基于与在边缘设备600处接收的数据中包括的数据流关联的信息来识别服务。例如,如图6中所示,过滤器模块610可以被配置为基于数据流与web服务业务关联来识别服务1,该服务是防火墙服务。再例如,过滤器模块610可以被配置为基于与数据流关联的目的地外围处理设备来识别服务2,该服务是负载平衡服务。在一些实施例中,过滤器模块610可以被配置为例如至少部分地基于与数据流关联的五元组(源地址、目的地地址、传输协议、服务端口、目的地端口)来识别服务。
[0071]在一些实例中,过滤器模块610可以实施用于识别用于在边缘设备600处接收的数据的服务的哈希函数。在这样的实例中,与数据流关联的信息,诸如目的地地址可以用作向哈希函数的输入。哈希函数的结果可以用来识别服务1-4之一。例如,哈希函数的结果可以与在服务表620的条目中存储的、服务的标识符关联或者唯一映射到该标识符。然后,可以识别与该标识符关联的服务作为将对数据执行的服务。在其它实施例中,过滤器模块610可以实施用于识别用于接收的数据的服务的任何其它适当方法,诸如,例如映射表。
[0072]在识别了服务之后,边缘设备600可以被配置为从服务模块1-5的集合中选择用于对数据执行识别的服务的服务模块。例如,边缘设备600可以被配置为基于识别的服务来选择服务模块。例如,服务模块I和2可以对数据执行服务1,该服务是防火墙服务。因此,基于识别的服务是服务1,边缘设备600可以使用适当方法来选择服务模块2以对数据执行服务1,如图6中所示。再例如,服务模块3和5可以对数据执行服务2,该服务是负载平衡服务。因此,基于识别的服务是服务2,边缘设备600可以使用适当方法来选择服务模块5以对数据执行服务2。
[0073]在一些实施例中,边缘设备600可以被配置为基于除了识别的服务之外的信息,诸如与数据分组关联的信息、与服务模块关联的信息等为数据选择服务模块。例如,边缘设备600可以被配置为基于数据流的源地址和/或目的地地址为数据选择服务模块,从而使得选择的服务模块与源边缘设备和/或目的地边缘设备在物理上接近。再例如,边缘设备600可以被配置为基于每个服务模块的状况为数据选择服务模块,从而使得当前忙于对另一数据流执行服务的服务模块不被选择。在一些实施例中,边缘设备600可以被配置为例如至少部分地基于与数据流关联的五元组(源地址、目的地地址、传输协议、服务端口、目的地端口)为数据选择服务模块。
[0074]此外,在一些实施例中,边缘设备600可以被配置为基于某一可变因素为数据选择服务模块,从而使得可以用随机化的方式选择服务模块。例如,边缘设备600可以被配置为基于时间戳从执行特定服务的服务模块集合中为使用该特定服务的数据分组选择服务模块,该时间戳记录当在边缘设备处接收该数据分组时的时间。再例如,边缘设备600可以被配置为基于为使用特定服务的数据分组随机生成的数来从执行该特定服务的服务模块集合中为该数据分组选择服务模块。在上述两个示例中,作为结果,为数据流的数据分组选择的服务模块可以不同于为相同数据流的另一数据分组选择的服务模块。例如,防火墙服务(例如,服务I)被识别为对分组数据流来执行。边缘设备600被配置为基于在来自数据流的每个数据分组中包括的随机数而从执行防火墙服务的服务模块集合(例如,服务模块
1、2、3和4)中为该数据分组选择服务模块。作为结果,选择服务模块2以对来自数据流的数据分组执行防火墙服务(如图6中所示);而选择服务模块3以对来自数据流的另一数据分组执行防火墙服务。
[0075]在一些实施例中,边缘设备600可以实施哈希函数以基于识别的服务为数据选择服务模块。在这样的实施例中,识别的服务的标识符、与数据流关联的信息(例如,目的地地址)和/或其它适当信息(例如,时间戳)可以用作向哈希函数的输入。哈希函数的结果可以用来从服务模块1-5中的、可以执行识别的服务的服务模块集合中选择服务模块。例如,哈希函数的结果可以与在路由表630的条目中存储的服务模块标识符关联或者唯一映射到该服务模块标识符。然后,可以选择与该服务模块标识符关联的服务模块作为用于对数据执行识别的服务的服务模块。在其它实施例中,边缘设备600可以实施任何其它适当方法,诸如例如循环机制以从可以执行识别的服务的服务模块集合中选择服务模块以对接收的数据执行识别的服务。
[0076]在一些实施例中,可以在与交换结构系统关联的服务边缘设备、服务外围处理设备或者任何其它设备处托管和执行选择的服务模块。在一些实施例中,选择的服务模块可以不同于源外围处理设备、目的地外围处理设备、边缘设备600 (作为源边缘设备)和目的地边缘设备。在其它实施例中,可以例如在边缘设备600(作为源边缘设备)、目的地边缘设备或者目的地外围处理设备处托管和执行选择的服务模块。
[0077]在边缘设备600处选择了服务模块之后,边缘设备600可以被配置为经由交换结构向选择的服务模块发送数据。作为结果,选择的服务模块可以对数据执行识别的服务。例如,如图6中所示,在边缘设备600处选择了服务模块2以对在边缘设备600处接收的数据执行服务I之后,边缘设备600被配置为向服务模块2发送数据。作为结果,服务模块2可以对数据执行服务I。
[0078]在一些实例中,当在服务外围处理设备处托管和执行服务模块时,边缘设备600可以被配置为选择耦合到该服务外围处理设备的边缘设备。例如,可以在路由表630中存储并且基于将在服务外围处理设备处对数据执行的识别的服务来选择该边缘设备的标识符。作为结果,边缘设备600向选择的边缘设备发送数据,该选择的边缘设备然后被配置为向服务外围处理设备转发该数据。备选地,在其它实例中,边缘设备600可以被配置为选择该服务外围处理设备以执行识别的服务。例如,可以在路由表630中存储并且基于将在该服务外围处理设备处对数据执行的识别的服务来选择该服务外围处理设备的标识符。在这样的实施例中,边缘设备300可以被配置为确定耦合到服务外围处理设备的边缘设备并且相应地向该边缘设备发送数据。类似地,该边缘设备可以被配置为向服务外围处理设备转发数据。
[0079]返回图1,在先前在图1中描述和示出的示例中,边缘设备181被配置为识别将对从外围处理设备113接收的数据分组的一部分(例如,数据单元、数据单位、整个数据分组、数据分组的报头部分、数据分组的净荷部分等)执行的服务。边缘设备181还被配置为选择在外围处理设备115处托管和执行的服务模块以对数据分组的所述部分执行识别的服务。因此,边缘设备181被配置为经由数据路径172向外围处理设备115发送该数据分组的一部分。具体而言,如图1中所示,从边缘设备181经由数据路径193向交换结构110中(例如,向交换结构110的进入端口)发送该数据分组的一部分。跨交换结构110转发并且(例如,从交换结构110的外出端口)经由数据路径194向边缘设备183发送、然后从边缘设备183经由数据路径195向外围处理设备115转发该数据的一部分。作为结果,在外围处理设备115处对数据分组的所述部分执行识别的服务。
[0080]在外围处理设备115对数据分组的一部分执行识别的服务之后,外围处理设备115可以被配置为经由在图1中示出为数据路径174的边缘设备183、交换结构110和边缘设备182向外围处理设备111发送数据分组的一部分。因此,在向目的地外围处理设备发送数据分组的一部分之前对数据分组的该部分执行识别的服务。
[0081]在一些实施例中,边缘设备可以被配置为选择在服务边缘设备处托管和执行的服务模块以对数据分组的一部分执行识别的服务。在这样的实施例中,边缘设备被配置为向服务边缘设备发送数据分组的一部分。作为结果,在服务边缘设备处对数据分组的一部分执行识别的服务。另外,在执行识别的服务之后,服务边缘设备被配置为(例如,经由交换结构和目的地边缘设备)向目的地外围处理设备发送数据分组的一部分。因此,在向目的地外围处理设备发送数据分组的一部分之前对该数据分组的一部分执行识别的服务。
[0082]在一些实例中,边缘设备181可以被配置为确定对从外围处理设备113接收的并且去往外围处理设备111的数据将不执行服务。在这样的实例中,边缘设备181可以被配置为经由交换结构110和边缘设备182向外围处理设备111发送数据而不穿过(例如,在服务边缘设备或者服务外围处理设备处的)服务模块。
[0083]在一些实施例中,可以在从源外围处理设备向目的地外围处理设备发送跨交换结构系统100传输的数据之前对该数据执行多于一个服务。在一些实施例中,与关于图6 7]\出和描述的边缘设备600相似,源边缘设备可以被配置为从源外围处理设备中识别将对在源边缘设备处接收的数据执行的多个服务。源边缘设备还可以选择用于执行多个服务中的每个服务的服务模块。源边缘设备可以被配置为向第一选择的服务模块发送数据,从而使得第一选择的服务模块对数据执行与第一选择的服务模块关联的第一识别的服务、然后向第二选择的服务模块发送该数据。因此,在这样的顺序方法中,向选择的服务模块中的每个服务模块发送数据,该服务模块依序对数据执行关联的识别的服务。最终,对数据执行识别的服务中的每个服务并且向目的地外围处理设备发送数据。
[0084]在一些实施例中,例如响应于从源外围处理设备接收到数据分组的数据流,源边缘设备可以被配置为在来自数据流的第一数据分组中(例如,在第一数据分组的报头中)封装与选择的服务模块和/或识别的服务关联的信息、然后向第一选择的服务模块发送第一数据分组。响应于接收到第一数据分组,托管第一选择的服务模块或者操作地耦合到第一选择的服务模块的第一边缘设备可以被配置为将第一数据分组去封装以获得与将在第一选择的服务模块处执行的服务关联的信息。第一选择的服务模块可以相应地对在第一数据分组中包括的数据执行服务。第一边缘设备还从第一数据分组获得与其余选择的服务模块和/或其余识别的服务关联的信息。与源边缘设备相似,第一边缘设备可以被配置为在第二数据分组中(例如,在第二数据分组的报头中)封装与其余选择的服务模块和/或其余识别的服务关联的信息、然后向第二选择的服务模块发送第二数据分组。在这样的顺序方法中,向每个选择的服务模块发送数据,该服务模块依序相应地对数据执行与该选择的服务模块关联的识别的服务。
[0085]在其它实施例中,可以用任何适当方式来识别和/或对数据执行多个服务。例如,源边缘设备可以识别将对在源边缘设备处从源外围处理设备接收的数据执行的第一服务。源边缘设备被配置为选择第一服务模块以执行第一识别的服务并且相应地向第一选择的服务模块发送数据。一旦接收到,第一服务模块可以对数据执行第一识别的服务。然后,与源边缘设备相似,托管第一选择的服务模块或者操作地耦合到第一选择的服务模块的边缘设备可以识别将对数据执行的第二服务并且选择第二服务模块以执行第二识别的服务。因而,该边缘设备可以向第二选择的服务模块发送数据。因此,在这样的顺序方法中,按顺序向在与先前的服务模块关联的边缘设备处选择的每个服务模块发送数据。每个选择的服务模块可以执行与该选择的服务模块关联的识别的服务、然后相应地转发数据。最后选择的服务模块可以向目的地边缘设备发送数据。
[0086]在其它实施例中,第一服务模块可以对数据执行第一识别的服务。在对数据执行第一识别的服务之后,第一服务模块可以向源边缘设备返回数据。源边缘设备然后可以向第二服务模块发送数据以对数据执行第二识别的服务。在对数据执行第二识别的服务之后,第二服务模块可以向源边缘设备返回数据。在已经对数据执行了识别的服务之后,源边缘设备可以向目的地边缘设备发送数据。以这样的方式,源服务模块可以充当服务模块的中枢(hub)或者协调器。
[0087]图7是图示根据一个实施例的对跨分布式交换结构传输的数据执行服务的方法700的流程图。可以在结构上和功能上分别与关于图1和图3示出和描述的边缘设备181-183和边缘设备300相似的边缘设备处执行方法700。具体而言,可以在边缘设备的存储器(例如,图3中的边缘设备300的存储器350)中的非瞬态处理器可读介质内存储与执行方法700关联的指令。非瞬态处理器可读介质存储如下代码,该代码代表将由边缘设备的处理器(例如,图3中的边缘设备300的处理器330)执行的指令(包括与执行方法700关联的指令)。另外,与图1中的边缘设备181-183相似,执行方法700的边缘设备可以与分布式交换结构(例如,图1中的交换结构110)关联并且操作地耦合到一个或者多个外围处理设备(例如,图1中的外围处理设备111-116)。
[0088]方法700包括在702从源外围处理设备接收具有目的地地址的数据分组的一部分(例如,数据单元、数据单位、整个数据分组、数据分组的报头部分、数据分组的净荷部分等),该目的地地址与目的地外围处理设备关联。源外围处理设备操作地耦合到边缘设备。可以在源外围处理设备生成的并且去往目的地外围处理设备的数据流中包括数据分组。在一些实施例中,数据分组的该部分可以例如包括数据分组的报头。
[0089]在图1的示例中,边缘设备181可以经由数据路径192从外围处理设备113接收数据分组的一部分(例如,数据单元、数据单位、整个数据分组、数据分组的报头部分、数据分组的净荷部分等)。可以例如在外围处理设备113处执行的web服务器生成的并且去往在外围处理设备111执行的应用服务器的web服务器业务的数据流中包括数据分组。该数据分组的一部分可以包括数据分组的报头,该报头包括外围处理设备111的地址(例如,IP地址、MAC地址)作为目的地地址。
[0090]在704,边缘设备可以被配置为识别将对数据分组的一部分(例如,数据单元、数据单位、整个数据分组、数据分组的报头部分、数据分组的净荷部分等)执行的服务。在一些实施例中,服务可以例如是安全服务、负载平衡服务或者任何其它适当服务。在一些实施例中,边缘设备可以被配置为基于与数据分组关联的目的地地址和/或任何其它信息(例如,路由信息、数据业务的类型、传输协议等)来识别服务。在一些实施例中,如上文关于图6描述的那样,边缘设备可以被配置为例如使用哈希函数来识别服务。在这样的实施例中,与数据分组关联的目的地地址和/或其它信息可以用作向哈希函数的输入,并且哈希函数的结果可以用来识别将对数据分组的一部分执行的服务。在一些实施例中,边缘设备可以被配置为确定操作地耦合到目的地外围处理设备的目的地边缘设备并且基于目的地边缘设备的地址(例如,IP地址、MAC地址)(例如,使用目的地边缘设备的地址作为向哈希函数的输入来)识别服务。
[0091]在图1的示例中,边缘设备181可以被配置为识别将对从外围处理设备113接收的数据分组的一部分执行的防火墙服务。边缘设备181可以被配置为基于与数据分组关联的目的地地址(例如,外围处理设备111的地址、边缘设备182的地址)、数据业务的类型(即,web服务器业务)和/或其它信息来识别用于数据分组的一部分的防火墙服务。
[0092]在706,边缘设备可以被配置为在706基于服务来选择与关联于该服务的服务模块关联的标识符。在一些实施例中,可以例如在与分布式交换结构关联的服务边缘设备、月艮务外围处理设备或者任何其它设备处托管和执行选择的服务模块。服务边缘设备可以不同于边缘设备和目的地边缘设备。类似地,服务外围处理设备可以不同于源外围处理设备和目的地外围处理设备。在一些实施例中,如上文关于图6描述的那样,边缘设备可以被配置为例如使用哈希函数来选择服务模块的标识符。在这样的实施例中,识别的服务、目的地地址和/或其它信息(例如,与数据分组关联的信息、与服务模块关联的信息、与识别的服务关联的信息)可以用作向哈希函数的输入,并且哈希函数的结果可以用来选择服务模块的标识符。
[0093]在图1的示例中,边缘设备181可以被配置为选择在外围处理设备115处执行的服务模块以对数据分组的一部分(例如,数据单元、数据单位、整个数据分组、数据分组的报头部分、数据分组的净荷部分等)执行识别的防火墙服务。边缘设备181可以被配置为基于防火墙服务、目的地地址(例如,外围处理设备111的地址、边缘设备182的地址)、可以执行防火墙服务的每个服务模块的状况和/或任何其它适当信息来选择服务模块的标识符。
[0094]在708,边缘设备可以被配置为经由分布式交换结构向选择的服务模块发送数据分组的一部分,从而使得服务模块对数据分组的一部分执行服务并且经由分布式交换结构向目的地外围处理设备发送数据分组的一部分。
[0095]在图1的示例中,边缘设备181可以被配置为向在外围处理设备115处被选择用于对数据分组的一部分执行防火墙服务的服务模块发送数据分组的一部分。如图1中所示,从边缘设备181经由数据路径193、交换结构110、数据路径194、边缘设备183和数据路径195向外围处理设备115发送数据分组的一部分。作为结果,选择的服务模块在外围处理设备115对数据分组的一部分执行防火墙服务。外围处理设备然后被配置为经由在图1中被示出为数据路径174的边缘设备183、交换结构110和边缘设备182向外围处理设备111发送数据分组的一部分。最终,向在外围处理设备111处的应用服务器发送数据分组的一部分。
[0096]在一些实施例中,在704识别的将对数据分组的一部分执行的服务是第一服务,并且在706选择的用于执行第一服务的服务模块是第一服务模块。边缘设备可以被配置为识别将对数据分组的一部分执行的第二服务,其中第二服务不同于第一服务。基于第二服务,边缘设备可被配置为选择与第二服务模块关联的标识符,该第二服务模块与第二服务关联,其中第二服务模块不同于第一服务模块。作为结果,边缘设备可以被配置为经由分布式交换结构向第一服务模块发送数据分组的一部分,从而使得在向目的地外围处理设备发送数据分组的一部分之前分别在第一服务模块和第二服务模块对数据分组的一部分执行第一服务和第二服务。类似地,可以针对任何数目的服务和服务模块操作这样的过程。也就是说,可以在向目的地外围处理设备发送数据分组(或者数据分组的一部分)之前在一个或者多个服务模块处对该数据分组执行任何数目的服务。
[0097]在图1的示例中,边缘设备181可以被配置为识别将对从外围处理设备113接收的数据分组的一部分执行的防火墙服务和负载平衡服务。边缘设备181可以被配置为选择在外围处理设备115执行的服务模块以执行识别的防火墙服务和在外围处理设备112处执行的服务模块以执行识别的负载平衡服务。边缘设备181可以被配置为将数据分组的一部分与识别的服务和选择的服务模块关联的信息一起向外围处理设备115发送(例如,经由交换结构110和边缘设备183)。作为结果,外围处理设备115对数据的一部分执行识别的防火墙服务、然后向外围处理设备112发送数据分组的一部分(例如,经由边缘设备183、交换结构110和边缘设备182),在该外围处理设备处执行识别的负载平衡服务。最终,从外围处理设备112向外围处理设备111发送数据分组的一部分(例如,经由边缘设备182)。
[0098]虽然上文关于图1-图7示出和描述了一些实施例作为能够为跨交换结构传输的数据识别服务并且选择服务模块的边缘设备,但是应当理解其它实施例是可能的。在一些实施例中,例如外围处理设备可以能够执行识别服务和选择服务模块的至少一部分。例如,外围处理设备可以被配置为识别服务,并且耦合到该外围处理设备的边缘设备可以被配置为针对识别的服务选择服务模块。在一些实施例中,例如,能够识别服务并且选择服务模块的外围处理设备可以通过具有多个交换节点而无任何边缘设备的多路径网络互连。
[0099]这里描述的一些实施例涉及一种具有非瞬态计算机可读介质(也可以被称为非瞬态处理器可读介质)的计算机存储产品,该非瞬态计算机可读介质上具有用于执行各种计算机实施的操作的指令或者计算机代码。计算机可读介质(或者处理器可读介质)在它本身未包括瞬态传播信号(例如,在传输介质、诸如空间或者线缆上传播承载信息的电磁波)的意义上为非瞬态。介质和计算机代码(也可以称为代码)可以是被设计和构造用于一个或者多个特定目的的介质和计算机代码。非瞬态计算机可读介质的示例包括但不限于:磁存储介质、诸如硬盘、软盘和磁带;光学存储介质、诸如紧致盘/数字视频盘(⑶-DVD)、紧致盘-只读存储器(⑶-ROM)和全息设备;光磁存储介质、诸如光盘;载波信号处理模块;以及具体配置为存储和执行程序代码的硬件设备、诸如专用集成电路(ASIC)、可编程逻辑器件(PLD)、只读存储器(ROM)和随机存取存储器(RAM)设备。这里描述的其它实施例涉及一种可以例如包括这里讨论的指令和/或计算机代码的计算机程序产品。
[0100]计算机代码的示例包括但不限于微代码或者微指令、诸如编译器产生的机器指令、用来产生Web服务的代码和如下文件,这些文件包含计算机使用解译器来执行的更高级指令。例如,实施例可以使用Java、C++或者其它编程语言(例如,面向对象的编程语言)和开发工具来实施。计算机代码的附加示例包括但不限于控制信号、加密的代码和压缩的代码。这样的计算机代码也可以被称为计算机程序,并且一些实施例可以具有计算机程序的形式。
[0101]在上文已经描述了各种实施例,但是应当理解仅通过示例而非限制来呈现了它们并且可以进行在形式和细节上的各种改变。可以在除了互斥组合之外的任何组合中组合这里描述的装置和/或方法的任何部分。这里描述的实施例可以包括描述的不同实施例的功能、部件和/或特征的各种组合/或子组合。
【权利要求】
1.一种非瞬态处理器可读介质,存储代表将由处理器执行的指令的代码,所述代码包括用于使得所述处理器执行以下操作的代码:从源外围处理设备接收具有目的地地址的数据分组的一部分,所述目的地地址与目的地外围处理设备相关联;至少部分地基于所述目的地地址来识别将对所述数据分组的所述部分执行的服务;基于所述服务来选择与服务模块相关联的标识符,所述服务模块与所述服务相关联;以及经由分布式交换结构向所述服务模块发送所述数据分组的所述部分,以使得所述服务模块对所述数据分组的所述部分执行所述服务,并且经由所述分布式交换结构向所述目的地外围处理设备发送所述数据分组的所述部分。
2.根据权利要求1所述的非瞬态处理器可读介质,其中用于使得所述处理器进行选择的所述代码包括用于使得所述处理器基于哈希函数的结果来选择所述标识符的代码,所述哈希函数以所述目的地地址作为对所述哈希函数的输入。
3.根据权利要求1所述的非瞬态处理器可读介质,其中所述服务是安全服务或者负载平衡服务中的至少一个服务。
4.根据权利要求1所述的非瞬态处理器可读介质,其中所述分布式交换结构包括Clos架构。
5.根据权利要求1所述的非瞬态处理器可读介质,其中所述服务模块在边缘设备或者与所述源外围处理设备和所述目的地外围处理设备不同的服务外围处理设备之一内。
6.根据权利要求1所述的非瞬 态处理器可读介质,其中所述服务模块是第一服务模块,所述服务是第一服务,所述代码还包括用于使得所述处理器执行以下操作的代码:识别将对所述数据分组的所述部分执行的第二服务;以及基于所述第二服务来选择与第二服务模块相关联的标识符,所述第二服务模块与所述第二服务相关联,用于使得所述处理器进行发送的所述代码包括:用于使得所述处理器经由所述分布式交换结构向所述第一服务模块发送所述数据分组的所述部分,从而使得所述第一服务模块对所述数据分组的所述部分执行所述第一服务,并且经由所述分布式交换结构和所述第二服务模块向所述目的地外围处理设备发送所述数据分组的所述部分的代码。
7.一种装置,包括:边缘设备,被配置为从第一外围处理设备接收将要经由分布式交换结构向第二外围处理设备发送的数据,所述边缘设备被配置为基于与所述数据相关联的报头确定将向所述数据提供的服务,所述边缘设备被配置为经由所述分布式交换结构向与所述服务相关联的服务模块发送所述数据,从而使得所述服务模块对所述数据执行所述服务并且经由所述分布式交换结构向所述第二外围处理设备发送所述数据。
8.根据权利要求7所述的装置,其中所述服务是安全服务或者负载平衡服务中的至少一个服务。
9.根据权利要求7所述的装置,其中所述边缘设备是第一边缘设备,所述第一边缘设备被配置为基于哈希函数来选择直接耦合到所述服务模块的第二边缘设备,所述第一边缘设备被配置为经由所述分布式交换结构和所述第二边缘设备向所述服务模块发送所述数据。
10.根据权利要求7所述的装置,其中所述服务是第一服务,所述边缘设备是第一边缘设备,所述第一边缘设备被配置为向与所述第一服务相关联的所述服务模块发送所述数据,从而使得与所述第一服务相关联的所述服务模块对所述数据执行所述第一服务并且经由与第二服务相关联的服务模块并经由所述分布式交换机向所述第二外围处理设备发送所述数据。
11.根据权利要求7所述的装置,其中所述分布式交换结构包括Clos架构。
12.根据权利要求7所述的装置,其中所述服务模块是虚拟服务模块。
13.根据权利要求7所述的装置,其中所述边缘设备是第一边缘设备,所述第一边缘设备被配置为基于与所述第一外围处理设备相关联的地址或者与所述第二外围处理设备相关联的地址中的至少一个地址来选择直接耦合到所述服务模块的第二边缘设备,所述第一边缘设备被配置为经由所述分布式交换结构和所述第二边缘设备向所述服务模块发送所述数据。
14.根据权利要求7所述的装置,其中所述数据是第一数据,所述边缘设备被配置为从第三外围处理设备接收将经由所述分布式交换结构发送到第四外围处理设备的第二数据,所述边缘设备被配置为确定将不向所述第二数据提供服务,所述边缘设备被配置为经由所述分布式交换机而无需穿过服务模块来向所述第四外围处理设备发送所述第二数据。
15.根据权利要求7所述的装置,其中所述边缘设备是第一边缘设备,所述服务模块在与所述第一边缘设备不同的第二边缘设备或者与所述第一外围处理设备和所述第二外围处理设备不同的第三外围处理设备之一内。
16.一种装置,包括:`服务模块,其实施在与分布式交换结构相关联的边缘设备或者与所述分布式交换结构相关联的外围处理设备中的至少一个设备中,所述服务模块被配置为从源边缘设备并且经由所述分布式交换结构接收数据分组的一部分,所述服务模块被配置为对所述数据分组的所述部分执行安全服务或者负载平衡服务中的至少一个服务,所述服务模块被配置为在对所述数据分组的所述部分执行所述安全服务或者所述负载平衡服务中的所述至少一个服务之后经由所述分布式交换结构向目的地边缘设备发送所述数据分组的所述部分。
17.根据权利要求16所述的装置,其中所述服务模块被配置为响应于所述源边缘设备至少部分地基于与所述目的地边缘设备相关联的地址而从被配置为执行所述安全服务或者所述负载平衡服务中的所述至少一个服务的多个服务模块中选择了所述服务模块,接收所述数据分组的所述部分。
18.根据权利要求16所述的装置,其中所述分布式交换结构包括Clos架构。
19.根据权利要求16所述的装置,其中所述服务模块是第一服务模块,所述服务是第一服务,所述第一服务模块被配置为识别被配置为对所述数据分组的所述部分执行第二服务的第二服务模块,所述第一服务模块被配置为经由所述分布式交换结构和所述第二服务模块向所述目的地边缘设备发送所述数据分组的所述部分。
20.根据权利要求16所述的装置,其中所述服务模块是虚拟服务模块。
【文档编号】H04L12/931GK103516633SQ201310159709
【公开日】2014年1月15日 申请日期:2013年4月22日 优先权日:2012年6月29日
【发明者】K·纳拉亚纳斯瓦米, J-M·弗雷朗, A·文卡特拉玛尼, S·加甘纳德汗 申请人:丛林网络公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1