用于在代理网格架构中处理网络分组的技术的制作方法

文档序号:17049196发布日期:2019-03-05 19:51阅读:166来源:国知局
用于在代理网格架构中处理网络分组的技术的制作方法

本申请要求享有于2016年11月29日提交的美国临时专利申请第62/427,268号以及于2017年8月30日提交的印度临时专利申请第201741030632号的权益。



背景技术:

在当前的分组交换的网络架构中,数据以网络分组的形式在计算设备和/或设备组件之间快速地传输。在高级别,数据被打包为网络分组,该网络分组由一个网络计算设备的网络接口控制器(nic)发送并且由另一网络计算设备的nic接收。在接收后,典型地对网络分组进行处理、分类等,并且典型地将有效载荷写入存储器(例如,高速缓存、主存储器等)。在已经将网络分组数据写入存储器后,接收nic然后可以通知主机中央处理单元(cpu)该数据可用于进一步处理。然而,将来自nic的网络分组数据的内容写入存储器以供主机cpu进行处理可能是昂贵的并且引入延迟,或者以其他方式具有一些其他负面的性能影响。

附图说明

本文中描述的概念在附图中通过示例的方式而不是通过限制的方式示出。为了说明的简单和清楚,附图中示出的元素不一定按比例绘制。在认为合适的情况下,在附图中重复附图标记以指示对应或类似的元素。

图1是根据各种实施例的其中可以实现本文中描述的一种或多种技术的数据中心的概念性概述的图;

图2是图1的数据中心的机架的逻辑配置的示例实施例的图;

图3是根据各种实施例的其中可以实现本文中描述的一种或多种技术的另一数据中心的示例实施例的图;

图4是根据各种实施例的其中可以实现本文中描述的一种或多种技术的数据中心的另一示例实施例的图;

图5是表示可以在图1、图3和图4的数据中心的各种托架(sled)之中建立的链路层连接的连接方案的图;

图6是根据一些实施例的可以表示图1-4中描绘的机架中的任何特定的一个机架的架构的机架架构的图;

图7是可以与图6的机架架构一起使用的托架的示例实施例的图;

图8是用于对以扩展能力为特征的托架提供支持的机架架构的示例实施例的图;

图9是根据图8的机架架构实现的机架的示例实施例的图;

图10是设计用于与图9的机架结合使用的托架的示例实施例的图;

图11是根据各种实施例的其中可以实现本文中描述的一种或多种技术的数据中心的示例实施例的图;

图12是用于在代理网格(agent-mesh)架构中处理网络分组的计算设备的至少一个实施例的简化框图;

图13是可以由图12的计算设备的网络接口控制器(nic)建立的环境的至少一个实施例的简化框图;

图14是响应于接收到可以由图12和图13的nic执行的网络分组而生成事件消息的方法的至少一个实施例的简化流程图;

图15是可以由图12和图13的nic执行的、用于在代理网格架构中处理入站网络分组的方法的至少一个实施例的简化流程图;以及

图16是可以由图12和图13的nic执行的、用于在代理网格架构中处理出站网络分组的至少一个实施例的简化通信流程图。

具体实施方式

虽然本公开的概念易于具有各种修改和替代形式,但是其具体实施例已经通过示例的方式在附图中示出并且将在本文中详细描述。然而,应当理解,并不旨在将本公开的概念限制于所公开的特定形式,而是相反,意图是覆盖与本公开和所附权利要求一致的所有修改、等同物和替代方案。

说明书中对“一个实施例”、“实施例”、“说明性实施例”等的引用指示所描述的实施例可以包括特定特征、结构或特性,但是每个实施例可以一定或可以不一定包括该特定特征、结构或特性。此外,这些短语不一定指代同一实施例。此外,当结合实施例描述特定特征、结构或特性时,认为结合其他实施例实现这样的特征、结构或特性在本领域技术人员的知识范围内,而无论是否未明确描述。另外,应当意识到,以“至少一个a、b和c”的形式包括在列表中的项目可以表示(a);(b);(c);(a和b);(a和c);(b和c);或(a、b和c)。类似地,以“a、b或c中的至少一个”的形式列出的项目可以表示(a);(b);(c);(a和b);(a和c);(b和c);或(a、b和c)。

在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以实现为由暂时性或非暂时性机器可读(例如,计算机可读)存储介质携带或存储在其上的指令,这些指令可以由一个或多个处理器读取和执行。机器可读存储介质可以体现为用于以机器可读形式存储或传输信息的任何存储设备、机构或其他物理结构(例如,易失性或非易失性存储器、介质盘或其他介质设备)。

在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应当意识到,可能不要求这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定附图中包含结构或方法特征并不意味着暗示在所有实施例中都要求这样的特征,并且在一些实施例中,可以不包括这些特征或者可以将这些特征与其他特征组合。

图1示出了根据各种实施例的数据中心100的概念性概述,该数据中心100通常可以表示其中/对其而言可以实现本文中描述的一种或多种技术的数据中心或其他类型的计算网络。如图1所示,数据中心100通常可以包含多个机架,其中的每个机架可以存放包括相应的一组物理资源的计算设备。在图1中描绘的特定非限制性示例中,数据中心100包含四个机架102a至102d,其存放包括相应的各组物理资源(pcr)105a至105d的计算设备。根据该示例,数据中心100的共同的一组物理资源106包括分布在机架102a至102d之中的各组物理资源105a至105d。物理资源106可以包括多种类型的资源,例如,处理器、协处理器、加速器、现场可编程门阵列(fpga)、存储器和存储装置。实施例不限于这些示例。

说明性数据中心100在许多方面不同于典型的数据中心。例如,在说明性实施例中,其上放置诸如cpu、存储器和其他组件之类的组件的电路板(“托架”)被设计用于提高热性能。特别地,在说明性实施例中,托架比典型的板浅。换言之,托架从前到后更短,冷却风扇位于其中。这减少了空气必须穿过板上的组件的路径的长度。此外,托架上的组件与典型的电路板相比间隔得更远,并且这些组件被布置为减少或消除遮蔽(即,一个组件在另一组件的空气流动路径中)。在说明性实施例中,诸如处理器之类的处理组件位于托架的顶侧,而诸如dimm之类的附近存储器位于托架的底侧。由于该设计提供的增强空气流动,组件可以以比典型系统高的频率和功率水平操作,从而提高性能。此外,托架被配置为与每个机架102a、102b、102c、102d中的电力和数据通信电缆盲配合,增强了机架被快速移除、升级、重新安装和/或更换的能力。类似地,位于托架上的个体组件(例如,处理器、加速器、存储器和数据存储驱动器)被配置为由于其彼此间隔增加而容易升级。在说明性实施例中,组件另外包括硬件证实特征以证明其真实性。

此外,在说明性实施例中,数据中心100利用支持多个其他网络架构(包括以太网和omni-path)的单个网络架构(“结构”)。在说明性实施例中,托架经由光纤耦合到交换机,光纤相比典型的双绞线布线(例如,类别5、类别5e、类别6等)提供更高的带宽和更低的延迟。由于高带宽、低延迟互连和网络架构,数据中心100可以在使用中将物理地分解的资源(例如,存储器、加速器(例如,图形加速器、fpga、asic等)以及数据存储驱动器)池化,并且基于需要将其提供给计算资源(例如,处理器),使得计算资源能够访问池化的资源,就好像这些资源在本地一样。说明性数据中心100另外接收各种资源的利用信息,基于过去的资源利用来预测不同类型的工作负荷的资源利用,并且基于该信息来动态地重新分配资源。

数据中心100的机架102a、102b、102c、102d可以包括便于将各种类型的维护任务自动化的物理设计特征。例如,数据中心100可以使用这样的机架来实现:这些机架被设计为是机器人化地访问的并且接受和存放可机器人化地操纵的资源托架。此外,在说明性实施例中,机架102a、102b、102c、102d包括集成电源,其接收比对电源而言典型的电压更大的电压。增加的电压使得电源能够向每个托架上的组件提供附加的电力,使得组件能够以高于典型频率的频率进行操作。

图2示出了数据中心100的机架202的示例性逻辑配置。如图2所示,机架202通常可以存放多个托架,其中的每个托架可以包括相应的一组物理资源。在图2中描绘的特定非限制性示例中,机架202存放包括相应的各组物理资源205-1至205-4的托架204-1至204-4,这些物理资源中的每个构成包括在机架202中的共同的一组物理资源206的一部分。关于图1,如果机架202表示例如机架102a,则物理资源206可以对应于机架102a中包括的物理资源105a。在该示例的上下文中,物理资源105a因此可以由相应的各组物理资源组成,包括包含在机架202的托架204-1至204-4中的物理存储装置资源205-1、物理加速器资源205-2、物理存储器资源205-3和物理计算资源205-5。实施例不限于此示例。每个托架可以包含各种类型的物理资源(例如,计算、存储器、加速器、存储装置)中的每种类型的物理资源的池。通过使可机器人化地访问和可机器人化地操纵的托架包括分解的资源,每种类型的资源能够彼此独立地并且以其自己的优化刷新速率进行升级。

图3示出了根据各种实施例的数据中心300的示例,该数据中心300通常可以表示其中/对其而言可以实现本文中描述的一种或多种技术的数据中心。在图3中描绘的特定非限制性示例中,数据中心300包括机架302-1至302-32。在各种实施例中,数据中心300的机架可以以限定和/或容纳各种访问路径的方式来布置。例如,如图3所示,数据中心300的机架可以以限定和/或容纳访问路径311a、311b、311c和311d的方式来布置。在一些实施例中,这种访问路径的存在通常可以使得自动化维护设备(例如,机器人化维护设备)能够物理地访问存放在数据中心300的各种机架中的计算设备并执行自动化维护任务(例如,替换故障的托架,升级托架)。在各种实施例中,可以选择访问路径311a、311b、311c和311d的尺寸,机架302-1至302-32的尺寸和/或数据中心300的物理布局的一个或多个其他方面,以促进这种自动化操作。实施例不限于此上下文。

图4示出了根据各种实施例的数据中心400的示例,该数据中心400通常可以表示其中/对其而言可以实现本文中描述的一种或多种技术的数据中心。如图4所示,数据中心400可以以光结构412为特征。光结构412通常可以包括光信令介质(例如,光布线)和光交换基础设施的组合,数据中心400中的任何特定托架可以经由其向数据中心400中的其他托架中的每个托架发送信号(并且从数据中心400中的其他托架中的每个托架接收信号)。光结构412向任何给定托架提供的信令连接可以包括到同一机架中的其他托架和其他机架中的托架的连接。在图4中描绘的特定非限制性示例中,数据中心400包括四个机架402a至402d。机架402a至402d存放相应的托架对404a-1和404a-2、404b-1和404b-2、440c-1和404c-2以及404d-1和404d-2。因此,在该示例中,数据中心400包括总共八个托架。经由光结构412,每个这样的托架可以具有与数据中心400中的七个其他托架中的每个托架的信令连接。例如,经由光结构412,机架402a中的托架404a-1可以具有与机架402a中的托架404a-2以及分布在数据中心400的其他机架402b、402c和402d之中的六个其他托架404b-1、404b-2、440c-1、440c-2、440d-1和404d-2的信令连接。实施例不限于此示例。

图5示出了连接方案500的概述,该连接方案500通常可以表示在一些实施例中可以在数据中心(例如,图1、图3和图4的示例数据中心100、300和400中的任何一个)的各种托架之中建立的链路层连接。可以使用以双模光交换基础设施514为特征的光结构来实现连接方案500。双模光交换基础设施514通常可以包括能够根据多个链路层协议经由相同统一的一组光信令介质接收通信并且适当地交换这种通信的交换基础设施。在各种实施例中,可以使用一个或多个双模光交换机515来实现双模光交换基础设施514。在各种实施例中,双模光交换机515通常可以包括高基数交换机。在一些实施例中,双模光交换机515可以包括多层交换机,例如,四层交换机。在各种实施例中,双模光交换机515可以以集成硅光子为特征,与常规交换设备相比,使得双模光交换机515能够以显著减少的延迟交换通信。在一些实施例中,双模光交换机515可以以叶-脊架构构成叶交换机530,另外包括一个或多个双模光脊交换机520。

在各种实施例中,双模光交换机能够经由光结构的光信令介质接收携带互联网协议(ip分组)的以太网协议通信和根据第二、高性能计算(hpc)链路层协议(例如,intel的omni-path架构,infiniband)的通信两者。如图5关于具有到光结构的光信令连接的任何特定托架对504a和504b所反映的,连接方案500因此可以经由以太网链路和hpc链路两者对链路层连接提供支持。因此,单个高带宽、低延迟交换结构可以支持以太网通信和hpc通信两者。实施例不限于此示例。

图6示出了根据一些实施例的机架架构600的总体概述,该机架架构600可以表示图1至图4中描绘的机架中的任何特定的一个机架的架构。如图6所反映的,机架架构600通常可以以多个托架空间为特征,托架可以插入托架空间中,托架空间中的每个可以是经由机架访问区域601可机器人化地访问的。在图6中描绘的特定非限制性示例中,机架架构600以五个托架空间603-1至603-5为特征。托架空间603-1至603-5以相应的多目的连接器模块(mpcm)616-1至616-5为特征。

图7示出了托架704的示例,托架704可以表示这种类型的托架。如图7所示,托架704可以包括一组物理资源705以及mpcm716,mpcm716被设计为当托架704插入托架空间(例如,图6中的托架空间603-1至603-5中的任一个)时与配对mpcm耦合。托架704还可以以扩展连接器717为特征。扩展连接器717通常可以包括插座、插槽或其他类型的连接元件,其能够接受一种或多种类型的扩展模块(例如,扩展托架718)。通过与扩展托架718上的配对连接器耦合,扩展连接器717可以为物理资源705提供对驻留在扩展托架718上的补充计算资源705b的访问。实施例不限于此上下文。

图8示出了机架架构800的示例,该机架架构800可以表示可以被实现以便对以扩展能力为特征的托架(例如,图7的托架704)提供支持的机架架构。在图8中描绘的特定非限制性示例中,机架架构800包括七个托架空间803-1至803-7,其以相应的mpcm816-1至816-7为特征。托架空间803-1至803-7包括相应的主区域803-1a至803-7a和相应的扩展区域803-1b至803-7b。关于每个这样的托架空间,当对应的mpcm与插入的托架的配对mpcm耦合时,主区域通常可以构成托架空间中的物理地容纳插入的托架的区域。在插入的托架配置有扩展模块的情况下,扩展区域通常可以构成托架空间中的可以物理地容纳这种模块(例如,图7的扩展托架718)的区域。

图9示出了根据一些实施例的机架902的示例,该机架902可以表示根据图8的机架架构800实现的机架。在图9中描绘的特定非限制性示例中,机架902以七个托架空间903-1至903-7为特征,其包括相应的主区域903-1a至903-7a和相应的扩展区域903-1b至903-7b。在各种实施例中,可以使用空气冷却系统来实现机架902中的温度控制。例如,如图9中所反映的,机架902可以以多个风扇919为特征,多个风扇919通常布置为在各种托架空间903-1至903-7内提供空气冷却。在一些实施例中,托架空间的高度大于常规的“1u”服务器高度。在这样的实施例中,与常规机架配置中使用的风扇相比,风扇919通常可以包括相对慢的大直径冷却风扇。相对于以较高速度运行的较小直径的冷却风扇,以较低速度运行较大直径的冷却风扇可以增加风扇寿命,同时仍提供相同的冷却量。托架比常规的机架尺寸在物理上更浅。此外,在每个托架上布置组件以减少热遮蔽(即,没有沿空气流动方向串联地布置)。因此,更宽、更浅的托架允许提高设备性能,因为由于改进的冷却,设备可以在更高的热封套(例如,250w)下操作(即,没有热遮蔽,设备之间有更多空间,对于较大的散热器有更多余地等)。

mpcm916-1至916-7可以被配置为向插入的托架提供对由相应的电力模块920-1至920-7源送的电力的访问,其中的每个电力模块可以从外部电源921汲取电力。在各种实施例中,外部电源921可以向机架902输送交流(ac)电力,并且电力模块920-1至920-7可以被配置为将这种ac电力转换为直流(dc)电力以供源送至插入的托架。在一些实施例中,例如,电力模块920-1至920-7可以被配置为将277伏ac电力转换为12伏dc电力,以经由相应的mpcm916-1至916-7提供给插入的托架。实施例不限于此示例。

mpcm916-1至916-7还可以布置为向插入的托架提供与双模光交换基础设施914的光信令连接,双模光交换基础设施914可以与图5的双模光交换基础设施514相同或相似。在各种实施例中,包含在mpcm916-1至916-7中的光连接器可以被设计为与插入的托架的mpcm中包含的配对光连接器耦合,以经由相应长度的通过光布线922-1至922-7向这种托架提供与双模光交换基础设施914的光信令连接。在一些实施例中,每个这种长度的光布线可以从其对应的mpcm延伸到在机架902的托架空间外部的光互连织机923。在各种实施例中,光互连织机923可以布置为穿过支撑柱或支架902的其他类型的负载承载元件。实施例不限于此上下文。由于插入的托架经由mpcm连接到光交换基础设施,因此可以节省典型地耗费在手动配置机架布线以容纳新插入的托架方面的资源。

图10示出了根据一些实施例的托架1004的示例,该托架1004可以表示设计用于与图9的机架902结合使用的托架。托架1004可以以mpcm1016为特征,mpcm1016包括光连接器1016a和电力连接器1016b,并且被设计为与将mpcm1016插入到托架空间中相结合而与托架空间的配对mpcm耦合。将mpcm1016与这样的配对mpcm耦合可以使电力连接器1016与配对mpcm中包括的电力连接器耦合。这通常可以使得托架1004的物理资源1005能够经由电力连接器1016和电力传输介质1024从外部源来源送电力,电力传输介质1024将电力连接器1016导电地耦合到物理资源1005。

托架1004还可以包括双模光网络接口电路1026。双模光网络接口电路1026通常可以包括能够根据图9的双模光交换基础设施914支持的多个链路层协议中的每个通过光信令介质进行通信的电路。在一些实施例中,双模光网络接口电路1026能够进行以太网协议通信和根据第二、高性能协议的通信两者。在各种实施例中,双模光网络接口电路1026可以包括一个或多个光收发器模块1027,其中的每个光收发器模块1027能够通过一个或多个光通道中的每个光通道发送和接收光信号。实施例不限于此上下文。

将mpcm1016与给定机架中的托架空间的配对mpcm耦合可以使光连接器1016a与配对mpcm中包括的光连接器耦合。这通常可以经由一组光通道1025中的每个光通道1025在托架的光布线与双模光网络接口电路1026之间建立光连接。双模光网络接口电路1026可以经由电信令介质1028与托架1004的物理资源1005进行通信。除了托架的尺寸和组件在托架上的布置用于提供改进的冷却并且使得能够在相对较高的热封套(例如,250w)下操作之外,如上面参考图9描述的,在一些实施例中,托架可以包括一个或多个附加特征以便于空气冷却,例如,布置为消散由物理资源1005产生的热量的热管和/或散热器。值得注意的是,尽管图10中所描绘的示例托架1004不以扩展连接器为特征,但是根据一些实施例以托架1004的设计元件为特征的任何给定托架也可以以扩展连接器为特征。实施例不限于此上下文。

图11示出了根据各种实施例的数据中心1100的示例,该数据中心1100通常可以表示其中/对其而言可以实现本文中描述的一种或多种技术的数据中心。如图11所反映的,可以实现物理基础设施管理框架1150a以便于管理数据中心1100的物理基础设施1100a。在各种实施例中,物理基础设施管理框架1150a的一个功能可以是管理数据中心1100内的自动化维护功能,例如,使用机器人化的维护设备来对物理基础设施1100a内的计算设备进行检修。在一些实施例中,物理基础设施1100a可以以高级遥测系统为特征,该高级遥测系统执行足够鲁棒以支持对物理基础设施1100a的远程自动化管理的遥测报告。在各种实施例中,由这种高级遥测系统提供的遥测信息可以支持诸如故障预测/预防能力和容量规划能力之类的特征。在一些实施例中,物理基础设施管理框架1150a还可以被配置为使用硬件证实技术来管理对物理基础设施组件的认证。例如,机器人可以在安装之前通过分析从与要安装的每个组件相关联的射频识别(rfid)标签收集的信息来验证组件的真实性。实施例不限于此上下文。

如图11所示,数据中心1100的物理基础设施1100a可以包括光结构1112,其可以包括双模光交换基础设施1114。光结构1112和双模光交换基础设施1114可以分别与图4的光结构412和图5的双模光交换基础设施514相同或相似,并且可以在数据中心1100的托架之中提供高带宽、低延迟、多协议连接。如上面参考图1讨论的,在各种实施例中,这种连接的可用性可以使得分解和动态地池化诸如加速器、存储器和存储装置之类的资源成为可能。在一些实施例中,例如,一个或多个池化加速器托架1130可以包括在数据中心1100的物理基础设施1100a之中,其中的每个池化加速器托架1130可以包括经由光结构1112和双模光交换基础设施1114而其他托架可全局访问的、加速器资源(例如,协处理器和/或fpga)的池。

在另一个示例中,在各种实施例中,一个或多个池化存储托架1132可以包括在数据中心1100的物理基础设施1100a之中,其中的每个池化存储托架1132可以包括经由光结构1112和双模光交换基础设施1114而其他托架可全局访问的、存储资源的池。在一些实施例中,这种池化存储托架1132可以包括诸如固态驱动器(ssd)之类的固态存储设备的池。在各种实施例中,一个或多个高性能处理托架1134可以包括在数据中心1100的物理基础设施1100a之中。在一些实施例中,高性能处理托架1134可以包括高性能处理器的池,以及增强空气冷却以产生高达250w或更高的较高热封套的冷却特征。在各种实施例中,任何给定的高性能处理托架1134可以以扩展连接器1117为特征,该扩展连接器1117可以接受远存储器扩展托架,使得该高性能处理托架1134本地可用的远存储器从包括在该托架上的处理器和附近存储器分解。在一些实施例中,这样的高性能处理托架1134可以使用包括低延迟ssd存储装置的扩展托架配置有远存储器。光基础设施允许一个托架上的计算资源利用远程加速器/fpga、存储器和/或ssd资源,这些资源在位于数据中心中的相同机架或任何其他机架上的托架上分解。远程资源可以位于上面参考图5描述的脊-叶网络架构中的一次交换机跳跃外或两次交换机跳跃外。实施例不限于此上下文。

在各种实施例中,可以将一个或多个抽象层应用于物理基础设施1100a的物理资源,以便定义虚拟基础设施,例如,软件定义的基础设施1100b。在一些实施例中,可以分配软件定义的基础设施1100b的虚拟计算资源1136以支持云服务1140的提供。在各种实施例中,可以将特定的各组虚拟计算资源1136分组以供以sdi服务1138的形式提供给云服务1140。云服务1140的示例可以包括但不限于软件即服务(saas)服务1142、平台即服务(paas)服务1144以及基础设施即服务(iaas)服务1146。

在一些实施例中,可以使用虚拟基础设施管理框架1150b来进行对软件定义的基础设施1100b的管理。在各种实施例中,虚拟基础设施管理框架1150b可以被设计为与管理将虚拟计算资源1136和/或sdi服务1138分配给云服务1140相结合地实现工作负载指纹识别技术和/或机器学习技术。在一些实施例中,虚拟基础设施管理框架1150b可以与执行这样的资源分配相结合地使用/咨询遥测数据。在各种实施例中,可以实现应用/服务管理框架1150c以便为云服务1140提供qos管理能力。实施例不限于此上下文。

现在参考图12,用于在代理网格架构中处理网络分组的说明性计算设备1200包括计算引擎1202、数据存储设备1210和通信电路1212,以及其他组件。计算设备1200可以体现为服务器(例如,独立服务器、机架服务器、刀片式服务器等)、计算节点、存储节点、交换机(例如,分解的交换机、机架安装式交换机、独立交换机、完全管理的交换机、部分管理的交换机、全双工交换机和/或半双工通信模式使能的交换机)、路由器和/或数据中心中的托架(例如,托架204、404、504、1004、1130、1132、1134中的一个),其中任何一个可以体现为一个或多个物理和/或虚拟设备。

在使用中,如下面进一步详细描述的,计算设备1200的网络接口控制器(nic)(例如,通信电路1212的nic1214)从另一计算设备(未示出)接收网络分组。该另一计算设备可以体现为任何类型的计算设备,例如,移动计算设备(例如,智能电话、膝上型/平板计算设备、可穿戴计算设备等)、台式计算设备、物联网(iot)设备、服务器(例如,独立、机架安装式、刀片式等)、交换机(例如,分解的交换机、机架安装式交换机、独立交换机、完全管理的交换机、部分管理的交换机、全双工交换机和/或半双工通信模式使能的交换机)、路由器、网络装置、web装置、分布式计算系统、基于处理器的系统和/或多处理器系统,其中任何一个可以体现为一个或多个物理和/或虚拟设备。在说明性实施例中,源计算设备可以体现为服务器托架,例如,上面描述的托架204、404、504、1004、1130、1132、1134中的一个。

在接收到网络分组后,nic1214的网络结构接口(例如,图13的网络结构接口1310)被配置为将接收到的网络分组的内容(例如,(多个)报头、有效载荷、(多个)脚注等)以分布式方式写入nic1214的存储器结构(例如,图13的存储器结构1308)。因此,应当意识到,存储器结构1308包括在本文中称为分段的多个存储器存储组件(未示出),其中的每个存储器存储组件可用于支持对接收到的网络分组的内容进行存储。网络结构接口1310另外被配置为在将接收到的网络分组的内容写入存储器结构之后,将事件消息发送到分组处理器(在图13中说明性地示出为说明性nic的灵活分组处理器(fxp)1324),指示已经接收到网络分组。

在已经接收到事件消息后,fxp1324被配置为从存储器结构1308的已经写入(多个)相关部分的(多个)对应位置读取网络分组的至少一部分,使得fxp1324可以识别在已经接收到特定类型的网络分组时请求通知的任何适用的(多个)代理。这些代理可以包括任何类型的加速器代理(例如,远程直接存储器存取(rdma)代理、密码代理等)、一个或多个管芯上核心、嵌入式管理处理器、流量管理器等。为了促进通信,fxp1324和每个代理包括对应的代理结构接口(例如,参见图13的存储器结构接口1304),其可用于提供统一协议以跨存储器结构1308进行通信。因此,在主机结构接口(例如,主机结构接口1318)将来自存储器结构的网络分组发送到主机存储器(例如,通过快速外围组件互连(pcie)或某种其他物理互连类型)之前,各种代理可以响应于已经接收到事件消息而执行动作(例如,读取/写入、附加处理、触发其他动作等),由此主机可以采取进一步的处理/动作。

如图12所示,除了先前指出的计算引擎1202、(多个)数据存储设备1210和通信电路1212之外,计算设备1200另外包括输入/输出(i/o)子系统1208,并且在一些实施例中包括一个或多个外围设备1216。当然,在其他实施例中,计算设备1200可以包括其他组件或附加组件,例如,通常在计算设备中找到的组件(例如,电源、(多个)冷却组件、图形处理单元(gpu)等)。另外,在一些实施例中,说明性组件中的一个或多个可以并入另一组件中,或者以其他方式形成另一组件的一部分。

计算引擎1202可以体现为能够执行下面描述的各种计算功能的任何类型的设备或设备集合。在一些实施例中,计算引擎1202可以体现为单个设备,例如,集成电路、嵌入式系统、fpga、片上系统(soc)或其他集成系统或设备。另外,在一些实施例中,计算引擎1202包括或可以以其他方式体现为处理器1204和存储器1206。处理器1204可以体现为能够执行本文描述的功能的任何类型的处理器。例如,处理器1204可以体现为一个或多个单核或多核处理器、微控制器或者其他处理器或处理/控制电路。在一些实施例中,处理器1204可以体现为、包括或以其他方式耦合到fpga、专用集成电路(asic)、可重新配置的硬件或硬件电路或其他专用硬件,以促进执行本文描述的功能。

存储器1206可以体现为能够执行本文描述的功能的任何类型的易失性存储器或数据存储装置(例如,动态随机存取存储器(dram)等)或非易失性存储器或数据存储装置。应当意识到,存储器1206可以包括主存储器(即,主要存储器)和/或高速缓冲存储器(即,可以比主存储器更快地存取的存储器)。易失性存储器可以是要求电力来对由介质存储的数据的状态进行维持的存储介质。易失性存储器的非限制性示例可以包括各种类型的随机存取存储器(ram),例如,动态随机存取存储器(dram)或静态随机存取存储器(sram)。

可以在存储器模块中使用的一种特定类型的dram是同步动态随机存取存储器(sdram)。在特定实施例中,存储器组件的dram可以符合由jedec颁布的标准,例如,用于ddrsdram的jesd79f、用于ddr2sdram的jesd79-2f、用于ddr3sdram的jesd79-3f、用于ddr4sdram的jesd79-4a、用于低功率ddr(lpddr)的jesd209、用于lpddr2的jesd209-2、用于lpddr3的jesd209-3以及用于lpddr4的jesd209-4(这些标准可在www.jedec.org处获得)。这些标准(和类似标准)可以被称为基于ddr的标准,并且实现这种标准的存储设备的通信接口可以被称为基于ddr的接口。

在一个实施例中,存储器设备是区块可寻址的存储器设备,例如,基于nand或nor技术的那些存储器设备。存储器设备还可以包括下一代非易失性设备,例如,三维交叉点存储器设备(例如,intel3dxpointtm存储器),或其他字节可寻址的就地写入非易失性存储器设备。在一个实施例中,存储器设备可以是或可以包括使用硫属化物玻璃的存储器设备,多阈值级别nand闪速存储器,nor闪速存储器,单级或多级相变存储器(pcm),电阻式存储器,纳米线存储器,铁电晶体管随机存取存储器(fetram),反铁电存储器,包含忆阻器技术的磁阻随机存取存储器(mram)存储器,包括金属氧化物基、氧空位基的电阻式存储器和导电桥接随机存取存储器(cb-ram),或自旋移矩(stt)-mram,基于自旋电子磁结的存储器设备,基于磁隧道结(mtj)的设备,基于dw(畴壁)和sot(自旋轨道转移)的设备,基于晶闸管的存储器设备,或上述设备中任一个的组合,或其他存储器。存储器设备可以指管芯本身和/或封装的存储器产品。

在一些实施例中,3d交叉点存储器(例如,intel3dxpointtm存储器)可以包括无晶体管的可堆叠交叉点架构,其中存储器单元位于字线和位线的交叉处并且是可单独寻址的,并且其中位存储基于体电阻的变化。在一些实施例中,存储器1206的全部或一部分可以集成到处理器1204中。在操作中,存储器1206可以存储在操作期间使用的各种软件和数据,例如,作业请求数据、内核映射数据、遥测数据、应用、程序、库和驱动程序。

计算引擎1202经由i/o子系统1208通信地耦合到计算设备1200的其他组件,i/o子系统1208可以体现为促进与计算引擎1202(例如,与处理器1204和/或存储器1206)以及计算设备1200的其他组件的输入/输出操作的电路和/或组件。例如,i/o子系统1208可以体现为或以其他方式包括存储器控制器中心、输入/输出控制中心、集成传感器中心、固件设备、通信链路(例如,点对点链路、总线链路、电线、电缆、光导、印刷电路板迹线等)和/或促进输入/输出操作的其他组件和子系统。在一些实施例中,i/o子系统1208可以形成soc的一部分,并且与处理器1204、存储器1206和计算设备1200的其他组件中的一个或多个一起并入计算引擎1202中。

一个或多个数据存储设备1210可以体现为被配置用于短期或长期存储数据的任何类型的设备,例如,存储器设备和电路、存储器卡、硬盘驱动器、固态驱动器或其他数据存储设备。每个数据存储设备1210可以包括存储用于数据存储设备1210的数据和固件代码的系统分区。另外,每个数据存储设备1210还可以包括存储用于操作系统的数据文件和可执行文件的操作系统分区。

通信电路1212可以体现为能够通过网络(未示出)在计算设备1200与另一计算设备(例如,源计算设备)之间实现网络通信的任何通信电路、设备或其集合。这样的网络可以体现为任何类型的有线或无线通信网络,包括全球网络(例如,互联网)、局域网(lan)或广域网(wan)、蜂窝网络(例如,全球移动通信系统(gsm)、3g、长期演进(lte)、全球微波接入互操作性(wimax)等)、数字订户线(dsl)网络、有线网络(例如,同轴网络、光纤网络等)或其任何组合。

因此,通信电路1212可以被配置为使用任何一种或多种通信技术(例如,有线通信或无线通信)和相关联的协议(例如,以太网、wimax等)来实现这种通信。说明性通信电路1212包括网络接口控制器(nic)1214,其也可以称为主机结构接口(hfi),并且在图13中进一步详细描述。nic1214可以体现为一个或多个附加板、子卡、网络接口卡、控制器芯片、芯片组或可以由计算设备1200用于向另一计算设备发送/从另一计算设备接收网络通信的其他设备。

(多个)外围设备1216可以包括可用于将信息输入到计算设备1200和/或从计算设备1200接收信息的任何类型的设备。外围设备1216可以体现为可用于将信息输入计算设备1200的任何辅助设备(例如,键盘、鼠标、麦克风、条形码阅读器、图像扫描仪等),或者可用于从计算设备1200输出信息的任何辅助设备(例如,显示器、扬声器、图形电路、打印机、投影仪等)。应当意识到,在一些实施例中,外围设备1216中的一个或多个可以用作输入设备和输出设备两者(例如,触摸屏显示器、显示屏顶部的数字转换器)。应进一步意识到,连接到计算设备1200的外围设备1216的类型可以取决于例如计算设备1200的类型和/或预期用途。另外或可替代地,在一些实施例中,外围设备1216例如可以包括一个或多个端口(例如,usb端口),用于将外部外围设备1216连接到计算设备1200。

现在参考图13,图12的计算设备1200的nic1214可以在操作期间建立环境1300。说明性环境1300包括物理网络访问电路1302、以太网子系统1344、一个或多个加速器代理1326、一个或多个处理核心1328、基础设施1330、物理主机访问电路1322、fpga接口1336以及一个或多个存储器控制器1340。环境1300的各种组件可以体现为硬件、固件、软件或其组合。因此,在一些实施例中,环境1300的组件中的一个或多个组件可以体现为电路或电子设备的集合。另外,在一些实施例中,说明性组件中的一个或多个可以形成另一组件的一部分和/或说明性组件中的一个或多个可以彼此独立。

物理网络访问电路1302被配置为接收入站网络流量并且路由/发送出站网络流量。为了促进从计算设备1200接收入站网络通信(例如,网络流量、网络分组、网络流等)/向计算设备1200发送出站网络通信,物理网络访问电路1302被配置为管理(例如,创建、修改、删除等)到nic1214的物理网络端口和虚拟网络端口(即,虚拟网络接口)的连接,以及与其相关联的入口/出口缓冲器/队列。物理网络访问电路1302另外被配置为将在物理网络访问电路1302处接收到的网络分组转发到以太网子系统1344,例如,可以经由一个或多个物理以太网通道或虚拟以太网通道转发。

如先前指出的,存储器结构1308包括可用于经由统一协议跨存储器结构1308进行通信的多个存储器结构接口1304。说明性存储器结构接口1304包括一个或多个网络结构接口1310、多个代理结构接口1314(例如,代理结构接口1314a、1314b、1314c、1314d、1314e和1314f)以及一个或多个主机结构接口1318。为了通过存储器结构接口1304促进对存储器结构分段的分配和解除分配,存储器结构接口1304中的每个通信地耦合到通信链路1316。

如说明性示出地,代理结构接口1314a被配置为用作用于fxp132的通信接口,而代理结构接口1314b被配置为用作用于(多个)加速器代理1326的通信接口。应该意识到,代理结构接口1314b可以包括多于一个的代理结构接口1314(例如,每个加速器代理1326一个代理结构接口1314)。同样说明性示出地,代理结构接口1314c被配置为用作用于管芯上核心的通信接口,代理结构接口1314d被配置为用作用于流量管理器1334的通信接口,代理结构接口1314e被配置为用作用于fpga接口1336的通信接口,并且代理结构接口1314f被配置为用作用于嵌入式管理处理器(emp)单元1338的通信接口。

说明性存储器结构1308另外包括分段池管理器1312,其被配置为管理向存储器结构1308的分段(未示出)写入数据/从存储器结构1308的分段读取数据的请求。为了管理请求,在一些实施例中,请求可以从相应的存储器结构接口1304发送到分段池管理器1312。换言之,分段池管理器1312被配置为与存储器结构接口1304通信,而不是直接与代理(例如,一个或多个加速器代理1326、一个或多个管芯上核心1328、emp单元1338、流量管理器1134等)通信。分段池管理器1312另外被配置为分配存储器结构1308的存储器的分段(即,结构存储器单元),以及将分配的存储器结构1308的存储器的分段解除分配。在一些实施例中,分段池管理器1312可以被配置为使用固定大小(例如,256字节)来分配存储器结构1308的存储器的每个分段。此外,分段池管理器1312被配置为指示网络分组的数据块在何处被写入存储器结构1308,例如,可以由可用于识别特定分段的写入位置的分段指针进行指示。

主机结构接口1318被配置为用作以太网子系统1344的存储器结构1308与主机接口1320之间的接口,主机接口1320自身被配置为用作物理主机访问电路1322与主机结构接口1318之间的接口。因此,主机结构接口1318可以被配置为将对网络分组数据的分配和写入引导至存储器结构1308,以及从存储器结构1308对网络分组数据进行读取和解除分配。物理主机访问电路1322被配置为经由一个或多个通信链路(例如,pcie互连)与计算设备的一个或多个主机处理器(例如,图12的计算引擎1202的处理器1204)接合,以提供对主机存储器(例如,图12的计算引擎1202的存储器1206)的存取。

nic1214的说明性环境1300包括一个或多个管芯上核心1328,其经由代理结构接口1314c通信地耦合到存储器结构1308,并且耦合到基础设施1330。因此,管芯上核心1328可以提供计算能力以执行特定操作,而无需使对其进行操作的数据必须移动到远离nic1214的位置,由此消除了通过移动数据而以其他方式引入的延迟。基础设施1330可以包括用于管理管芯上核心1328和/或主机接口1320的通信、状态和控制的各种组件,例如,串行通信接口(例如,通用异步接收器和发送器(uart)、串行外围接口(spi)总线等)、测试/调试接口、数字热传感器、i/o控制器等。sram1332通信地耦合到管芯上核心1328,并且可以用于临时存储用于管芯上核心1328的数据(例如,工作队列、通知、中断等)。

说明性以太网子系统1344另外包括通信地耦合到代理结构接口1314d的流量管理器1334,以及通信地耦合到代理结构接口1314f的emp单元1338。流量管理器1334被配置为在分组处理数据路径中执行流量管理,例如,可以执行流量管理以实施服务级协议(sla)。emp单元1338被配置为处理不能由设备驱动器执行并且必须在芯片上执行的所有管理职责,例如,上电序列、处理主管队列命令、初始化以太网端口、参与各种结构配置协议、字段化接收到的配置请求以及处理从以太网端口接收到的特殊配置请求。

nic1214的说明性环境1300另外包括通信地耦合到代理结构接口1314e的fpga接口1336,以及经由对应的垫片1342通信地耦合到存储器结构1308的一个或多个存储器控制器1340。fpga接口被配置为例如经由由物理主机访问电路1322促进的相干、低延迟互连与计算设备1200的fpga模块/设备(未示出)接合。存储器控制器1340可以是双倍数据速率(ddr)存储器控制器,其被配置为驱动在nic1214外部但由nic1214而不是主机(例如,图12的计算引擎1202的处理器1204)管理的ddrsdram。

现在参考图14,在使用中,计算设备1200或者更具体地计算设备1200的nic1214可以执行用于响应于接收到网络分组而生成事件消息的方法1400。应当意识到,在一些实施例中,方法1400的操作可以由如图13所示的、nic1214的环境1300的一个或多个组件执行。方法1400开始于框1402,其中nic1214确定是否已经接收到网络分组(例如,经由物理网络访问电路1302在网络结构接口1310处)。如果已经接收到网络分组,则方法1400前进到框1404,其中nic1214或更具体地nic1214的网络结构接口1310,将接收到的网络分组写入存储器结构(例如,图13的存储器结构1308)。为此,在框1406中,网络结构接口1310将接收到的网络分组的内容(例如,(多个)报头、有效载荷和(多个)脚注)写入存储器结构1308的先前由分段池管理器(例如,图13的分段池管理器1312)分配的多个分段。

在框1408中,网络结构接口1310生成事件消息并将其发送到fxp(例如,图13的fxp1324),指示接收到的网络分组已经被接收。应当意识到,在一些实施例中,网络结构接口1310可以包括一些处理能力,使得一些分析可以由网络结构接口1310执行,而不需要涉及fxp1324。例如,在这样的实施例中,网络结构接口1310可以被配置为识别网络结构接口1310可以使用的特定流,以使用与本文描述为由fxp1324执行的、在图15的方法1500中描述的类似的技术来识别用于对网络分组进行附加处理的一个或多个代理。

为了发送事件消息,在框1410中,网络结构接口1310使用存储器结构1308的专用网格层(未示出)。另外,在框1412中,网络结构接口1310包括可用于识别已经写入接收到的网络分组的存储器位置的分段指针。此外,在框1414中,网络结构接口1310识别事件消息的服务类。根据实施例,每个服务类可以具有不同的系统资源分配,以及与其相关联的不同优先级级别。无论分配的资源或服务类的优先级如何,应当意识到,每个服务类具有单独的资源分配,使得在服务类之间不存在线端(hol)阻塞。

可以使用各种输入来确定服务类,例如,与网络分组相关联的流量类、事件类型(例如,接收分组事件、发送分组事件、非分组事件等)、相关联的网络端口以及响应于接收到的事件消息而执行的当前处理步骤。例如,fxp1324可以处理直接来自网络结构接口1310的接收分组事件,以及在第一次传递中已经由fxp1324处理并且然后经过代理(例如,用于解密的密码加速器)的接收分组事件,并且该事件已经被发送回fxp1324以处理修改后的网络分组(例如,解密的分组)。在这样的条件下,每个事件可以具有不同的标识符(例如,前fxp相对后解密)。因此,不同的标识符可以使分类导致不同的服务类,使得前fxp分组事件消息可以与后解密分组事件隔离(例如,没有hol阻塞)。因此,fxp1324可以基于分类在接收到事件消息后采取特定动作,例如,使一个服务类类型优先于另一服务类类型,将事件消息发送到主机接口设备1310或代理结构接口设备1314等。

现在参考图15,在使用中,计算设备1200或者更具体地计算设备1200的nic1214可以执行用于在代理网格架构中处理入站网络分组的方法1500。应当意识到,在一些实施例中,方法1500的操作可以由如图13所示的、nic1214的环境1300的一个或多个组件执行。方法1500开始于框1502,其中nic1214或更具体地nic1214的fxp1324,确定是否已经从网络结构接口1310接收到事件消息(例如,响应于已经接收到与事件消息相关联的网络分组)。如果已经从网络结构接口1310接收到事件消息,则方法1500前进到框1504,其中fxp1324按类类型来过滤事件消息。

换言之,fxp1324确定指派给接收到的事件消息的服务类。在框1506中,fxp1324根据指定的服务类类型来仲裁事件消息。如先前描述的,服务类事件可以包括多个服务类类型。在一些实施例中,fxp1324可以基于事件内的一个或多个字段(例如,事件的元数据)来识别仲裁服务类类型指定的事件消息。换言之,fxp1324可以将接收到的事件消息在与指定的类类型相关联的队列中排队,并且在接收到的事件消息从相应的事件消息队列中出队后执行方法1500的其余操作。应当意识到,在一些实施例中,具有特定服务类类型的一个服务类队列可以相比具有另一服务类类型的另一服务类队列具有更高的优先级。

在框1508中,fxp1324读取与事件消息相关联的、网络分组的至少一部分(例如,(多个)报头、有效载荷和/或(多个)脚注的至少一部分)。为此,在框1510中,fxp1324从位于存储器结构1308中的分段读取网络分组的至少一部分,该分段位置已经基于与事件消息一起接收到的分段指针进行确定。另外,在框1512中,fxp1324基于与要接收事件消息的相应代理相关联的策略(例如,使用模型)来确定要读取的网络分组的部分。

在框1514中,fxp1324识别用于对网络分组进行附加处理的一个或多个代理(参见例如经由图13的存储器结构接口1304连接到fxp的代理)。如先前描述的,代理可以包括任何类型的加速器代理3126(例如,远程直接存储器存取(rdma)代理、密码代理等)、一个或多个管芯上核心1328、emp单元1338、流量管理器1334等。为了识别(多个)代理,在框1516中,fxp1324对网络分组的所读取的部分进行解析。另外,在框1518中,fxp1324根据所解析的网络分组的所读取的部分对网络分组进行分类。此外,在框1520中,fxp1324将分类与关联于每个可用代理的策略进行比较,以识别用于进行附加处理的代理。应当意识到,在特定条件下,可能需要多于一个代理来处理网络分组(例如,与识别的代理串行地或并行地)。

在框1522中,在特定条件下,fxp1324可以修改网络分组。如果修改网络分组,则在框1524中,fxp1324以分布式方式(例如,跨存储器结构1308的多个分段)将修改后的网络分组写回到存储器结构1308。在框1526中,fxp1324生成另一事件消息。在框1528中,fxp1324将事件消息分类为具有特定服务类。如先前描述的,fxp1324执行的服务类分类可以基于事件消息的一个或多个参数,例如,与事件消息相关联的网络分组的分类,对网络分组进行修改的结果,已经被识别为接收事件消息的另一代理,被识别为接收事件消息的最终代理,相关联的流量类等。因此,应当意识到,在特定条件下(例如,已经在框1522中修改网络分组),指派的在框1502中接收到的事件消息的服务类可以与指派给在框1526中生成的事件消息的分类不同。

在框1530中,在将网络分组发送到适当主机(例如,经由主机结构接口1318)之前,fxp1324将在框1526中生成的另一事件消息发送到所识别的(多个)代理以进行附加处理。例如,fxp1324可以经由fpga接口1336和代理结构接口1314e将事件消息发送到fpga,经由代理结构接口1314c发送到(多个)管芯上核心1328,经由代理结构接口1314b或定制互联网协议(ip)地址发送到(多个)加速器代理(例如,rdma代理、密码代理等)。

现在参考图16,用于在代理网格架构中处理出站网络分组的通信流1600的实施例包括图12的计算引擎1202以及图12和图13的nic。说明性通信流1600包括多个数据流,其中的一些数据流可以单独执行或一起执行,这取决于实施例。在数据流1602中,计算引擎1202的处理器1204生成用于要发送到另一计算设备(未示出)的网络分组的数据。在数据流1604中,处理器1204将数据发送到nic1214,或者更具体地发送到主机接口1320(例如,经由图13的物理主机访问电路1322)。在数据流1606中,主机接口1320对接收到的数据进行打包,并且在数据流1608中,将网络分组转发到主机结构接口1318。

在数据流1610中,主机结构接口1318以分布式方式(例如,跨存储器结构1308的多个分段)将网络分组写入存储器结构(例如,图13的存储器结构1308)。在数据流1612中,主机结构接口1318生成指示新网络分组已经被写入存储器结构1308的事件消息(例如,新网络分组事件消息)。应当意识到,在一些实施例中,主机结构接口1318可以包括一些处理能力,使得一些分析可以由网络结构接口1310执行,而不需要涉及fxp1324。例如,在这样的实施例中,主机结构接口1318可以被配置为识别主机结构接口1318可以使用的特定流,以使用与本文描述为由fxp1324执行的、在数据流1616-1620中描述的类似的技术来识别用于对网络分组进行附加处理的一个或多个代理。

在数据流1614中,主机结构接口1318将事件消息转发到fxp1324。在接收到事件消息后,在数据流1616中,fxp1324从存储器结构1308取出并读取新网络分组的至少一部分。为此,应当意识到,事件消息可以包括可用于识别存储器结构1308中已经存储新网络分组的位置的指针。在数据流1618中,fxp1324识别nic1214的一个或多个代理(例如,一个或多个加速器代理1326、一个或多个管芯上核心1328、emp单元1338、流量管理器1134等),其被配置为在从nic1214发送新网络分组之前对新网络分组执行附加处理。在数据流1620中,fxp1324生成事件消息(例如,网络分组发送事件消息)并将其发送到所识别的(多个)代理。在数据流1622中,网络结构接口1310响应于已经从所识别的(多个)代理接收到由此执行的附加处理操作已经完成的指示,而从存储器结构1308对整个网络分组进行读取和解除分配以供传输到另一计算设备。

示例

以下提供本文公开的技术的说明性示例。这些技术的实施例可以包括下面描述的示例中的任何一个或多个以及其任何组合。

示例1包括一种用于在代理网格架构中处理网络分组的计算设备,该计算设备包括:计算引擎;以及网络接口控制器(nic),其具有通信地耦合到nic的存储器结构的分组处理器和多个代理,其中,多个代理中的每个代理经由存储器结构的对应代理结构接口通信地耦合到存储器结构,其中,nic用于:由存储器结构的网络结构接口以分布式方式将接收到的网络分组写入存储器结构;由网络结构接口生成指示接收到的网络分组已经被接收的事件消息;由网络结构接口将所生成的事件消息发送到分组处理器;由分组处理器响应于已经接收到所生成的事件消息,从存储器结构读取接收到的网络分组的至少一部分;由分组处理器根据接收到的网络分组的所读取的部分来识别多个代理中的、用于对接收到的网络分组进行附加处理的代理;由分组处理器生成指示接收到的网络分组可用于处理的网络分组已接收事件消息;以及由分组处理器将网络分组已接收事件消息发送到所识别的代理。

示例2包括示例1的主题,并且其中,识别用于对接收到的网络分组进行附加处理的代理包括:对接收到的网络分组的所读取的部分进行解析;根据所解析的接收到的网络分组的所读取的部分对网络分组进行分类;以及将分类的结果与关联于多个代理中的每个代理的策略进行比较,以从多个代理中识别代理。

示例3包括示例1和2中任一项的主题,并且其中,nic还用于由分组处理器修改网络分组,并且以分布式方式将修改后的网络分组写回到存储器结构。

示例4包括示例1-3中任一项的主题,并且其中,将网络分组已接收事件消息发送到分组处理器包括:包括分段指针,该分段指针可用于识别存储器结构中的、接收到的网络分组已经被写入的位置。

示例5包括示例1-4中任一项的主题,并且其中,从存储器结构读取接收到的网络分组的部分包括:基于分段指针从存储器结构读取接收到的网络分组的部分。

示例6包括示例1-5中任一项的主题,并且其中,nic还用于:由网络结构接口将事件消息分类为流量类事件或服务类事件中的一个,并且其中,识别代理包括根据事件分类来识别代理。

示例7包括示例1-6中任一项的主题,并且其中,将接收到的网络分组写入存储器结构包括:将接收到的网络分组写入存储器结构的多个分段。

示例8包括示例1-7中任一项的主题,并且其中,nic还用于:由网络结构接口请求存储器结构的多个分段中的每个分段的位置,其中,将接收到的网络分组写入存储器结构的多个分段包括:响应于已经接收到其中要存储接收到的网络分组的一部分的、存储器结构的多个分段中的每个分段的位置,将接收到的网络分组写入接收到的存储器结构的多个分段中的每个分段的位置。

示例9包括示例1-8中任一项的主题,并且其中,将网络分组已接收事件消息发送到所识别的代理包括:将网络分组已接收事件消息发送到与所识别的代理相关联的代理结构接口。

示例10包括示例1-9中任一项的主题,并且其中,nic还用于:由存储器结构的主机结构接口响应于已经从分组处理器或代理接收到传送事件消息,从存储器结构对整个接收到的网络分组进行读取和解除分配,以用于传送到由计算引擎进行管理的数据存储位置。

示例11包括示例1-10中任一项的主题,并且其中,由网络结构接口发送所生成的事件消息包括:由网络结构接口从存储器结构读取接收到的网络分组的至少一部分;由网络结构接口根据接收到的网络分组的所读取的部分来识别用于对接收到的网络分组进行附加处理的代理;由网络结构接口生成指示接收到的网络分组可用于处理的网络分组已接收事件消息;以及由网络结构接口将网络分组已接收事件消息发送到所识别的代理。

示例12包括示例1-11中任一项的主题,并且其中,nic还用于:由存储器结构的主机结构接口以分布式方式将由nic的主机接口从计算引擎接收到的新网络分组写入存储器结构;由主机结构接口生成指示网络分组已经从计算引擎被接收的新网络分组事件消息;由主机结构接口将新网络分组事件消息发送到分组处理器;由分组处理器响应于已经接收到新网络分组事件消息,从存储器结构读取新网络分组的至少一部分;由分组处理器根据新网络分组的所读取的部分来识别多个代理中的、用于对新网络分组进行附加处理的代理;由分组处理器生成指示接收到的网络分组可用于处理的网络分组发送事件消息;由分组处理器将网络分组发送事件消息发送到所识别的代理;以及由网络结构接口响应于已经从所识别的代理接收到网络分组要被发送到另一计算设备的指示,从存储器结构对整个网络分组进行读取和解除分配。

示例13包括示例1-12中任一项的主题,并且其中,由主机结构接口发送新网络分组事件消息包括:从存储器结构读取接收到的网络分组的至少一部分;根据接收到的网络分组的所读取的部分来识别用于对接收到的网络分组进行附加处理的代理;生成指示新网络分组可用于处理的新网络分组事件消息;以及将新网络分组事件消息发送到所识别的代理。

示例14包括一种用于在代理网格架构中由计算设备处理网络分组的方法,该方法包括:由计算设备的网络接口控制器(nic)的存储器结构的网络结构接口以分布式方式将接收到的网络分组写入存储器结构;由网络结构接口生成指示接收到的网络分组已经被接收的事件消息;由网络结构接口将所生成的事件消息发送到通信地耦合到存储器结构的分组处理器;由分组处理器响应于已经接收到所生成的事件消息,从存储器结构读取接收到的网络分组的至少一部分;由分组处理器根据接收到的网络分组的所读取的部分来识别多个代理中的、用于对接收到的网络分组进行附加处理的代理,其中,多个代理中的每个代理经由存储器结构的对应代理结构接口通信地耦合到存储器结构;由分组处理器生成指示接收到的网络分组可用于处理的另一事件消息;以及由分组处理器将所生成的另一事件消息发送到所识别的代理。

示例15包括示例14的主题,并且其中,识别用于对接收到的网络分组进行附加处理的代理包括:(i)对接收到的网络分组的所读取的部分进行解析,(ii)根据所解析的接收到的网络分组的所读取的部分对网络分组进行分类,以及(iii)将分类的结果与关联于多个代理中的每个代理的策略进行比较,以从多个代理中识别代理。

示例16包括示例14和15中任一项的主题,并且还包括由分组处理器修改网络分组;以及由分组处理器以分布式方式将修改后的网络分组写回到存储器结构。

示例17包括示例14-16中任一项的主题,并且其中,将所生成的事件消息发送到分组处理器包括:发送带有分段指针的所生成的事件消息,该分段指针可用于识别存储器结构中的、接收到的网络分组已经被写入的位置。

示例18包括示例14-17中任一项的主题,并且其中,从存储器结构读取接收到的网络分组的部分包括:基于分段指针从存储器结构读取接收到的网络分组的部分。

示例19包括示例14-18中任一项的主题,并且还包括:由网络结构接口将事件消息分类为流量类事件或服务类事件中的一个,并且其中,识别代理包括根据事件分类来识别代理。

示例20包括示例14-19中任一项的主题,并且其中,将接收到的网络分组写入存储器结构包括:将接收到的网络分组写入存储器结构的多个分段。

示例21包括示例14-20中任一项的主题,并且还包括:由网络结构接口请求存储器结构的多个分段中的每个分段的位置,其中,将接收到的网络分组写入存储器结构的多个分段包括:响应于已经接收到其中要存储接收到的网络分组的一部分的、存储器结构的多个分段中的每个分段的位置,将接收到的网络分组写入接收到的存储器结构的多个分段中的每个分段的位置。

示例22包括示例14-21中任一项的主题,并且其中,将所生成的另一事件消息发送到所识别的代理包括:将所生成的另一事件消息发送到与所识别的代理相关联的代理结构接口。

示例23包括示例14-22中任一项的主题,并且还包括:由存储器结构的主机结构接口响应于已经从分组处理器或代理接收到传送事件消息,从存储器结构对整个接收到的网络分组进行读取和解除分配,以用于传送到由计算引擎进行管理的数据存储位置。

示例24包括示例14-23中任一项的主题,并且其中,由网络结构接口发送所生成的事件消息包括:由网络结构接口从存储器结构读取接收到的网络分组的至少一部分;由网络结构接口根据接收到的网络分组的所读取的部分来识别用于对接收到的网络分组进行附加处理的代理;由网络结构接口生成指示接收到的网络分组可用于处理的网络分组已接收事件消息;以及由网络结构接口将网络分组已接收事件消息发送到所识别的代理。

示例25包括示例14-24中任一项的主题,并且还包括:由存储器结构的主机结构接口以分布式方式将从计算引擎接收到的新网络分组写入存储器结构;由主机结构接口生成指示网络分组已经从计算引擎被接收的新网络分组事件消息;由主机结构接口将新网络分组事件消息发送到分组处理器;由分组处理器响应于已经接收到新网络分组事件消息,从存储器结构读取新网络分组的至少一部分;由分组处理器根据新网络分组的所读取的部分来识别多个代理中的、用于对新网络分组进行附加处理的代理;由分组处理器生成指示接收到的网络分组可用于处理的网络分组发送事件消息;由分组处理器将网络分组发送事件消息发送到所识别的代理;以及由网络结构接口响应于已经接收到网络分组发送事件消息,从存储器结构对整个网络分组进行读取和解除分配。

示例26包括示例14-25中任一项的主题,并且其中,由主机结构接口发送所生成的事件消息包括:从存储器结构读取接收到的网络分组的至少一部分;根据接收到的网络分组的所读取的部分来识别用于对接收到的网络分组进行附加处理的代理;生成指示新网络分组可用于处理的新网络分组事件消息;以及将新网络分组事件消息发送到所识别的代理。

示例27包括一种或多种计算设备的网络接口控制器(nic)的机器可读存储介质,其包括存储在其上的多个指令,该多个指令当被执行时,使得nic执行示例14-26中任一项的方法。

示例28包括一种用于在代理网格架构中处理网络分组的计算设备,该计算设备包括一个或多个处理器;以及网络接口控制器(nic),其中存储有多个指令,该多个指令当由nic执行时,使得计算设备执行示例14-26中任一项的方法。

示例29包括一种在代理网格架构中处理网络分组的计算设备,该计算设备包括:用于由计算设备的网络接口控制器(nic)的存储器结构的网络结构接口以分布式方式将接收到的网络分组写入存储器结构的单元;用于由网络结构接口生成指示接收到的网络分组已经被接收的事件消息的单元;用于由网络结构接口将所生成的事件消息发送到通信地耦合到存储器结构的分组处理器的单元;用于由分组处理器响应于已经接收到所生成的事件消息而从存储器结构读取接收到的网络分组的至少一部分的单元;用于由分组处理器根据接收到的网络分组的所读取的部分来识别多个代理中的、用于对接收到的网络分组进行附加处理的代理的单元,其中,多个代理中的每个代理经由存储器结构的对应代理结构接口通信地耦合到存储器结构;用于由分组处理器生成指示接收到的网络分组可用于处理的另一事件消息的单元;以及用于由分组处理器将所生成的另一事件消息发送到所识别的代理的单元。

示例30包括示例29的主题,并且其中,用于识别用于对接收到的网络分组进行附加处理的代理的单元包括用于以下操作的单元:(i)对接收到的网络分组的所读取的部分进行解析,(ii)根据所解析的接收到的网络分组的所读取的部分对网络分组进行分类,以及(iii)将分类的结果与关联于多个代理中的每个代理的策略进行比较,以从多个代理中识别代理。

示例31包括示例29和30中任一项的主题,并且还包括:用于由分组处理器修改网络分组的单元;以及用于由分组处理器以分布式方式将修改后的网络分组写回到存储器结构的单元。

示例32包括示例29-31中任一项的主题,并且其中,用于将所生成的事件消息发送到分组处理器的单元包括:用于发送带有分段指针的所生成的事件消息的单元,该分段指针可用于识别存储器结构中的、接收到的网络分组已经被写入的位置。

示例33包括示例29-32中任一项的主题,并且其中,用于从存储器结构读取接收到的网络分组的部分的单元包括:用于基于分段指针从存储器结构读取接收到的网络分组的部分的单元。

示例34包括示例29-33中任一项的主题,并且还包括:用于由网络结构接口将事件消息分类为流量类事件或服务类事件中的一个的单元,并且其中,用于识别代理的单元包括用于根据事件分类来识别代理的单元。

示例35包括示例29-34中任一项的主题,并且其中,用于将接收到的网络分组写入存储器结构的单元包括:用于将接收到的网络分组写入存储器结构的多个分段的单元。

示例36包括示例29-35中任一项的主题,并且还包括:用于由网络结构接口请求存储器结构的多个分段中的每个分段的位置的单元,其中,用于将接收到的网络分组写入存储器结构的多个分段的单元包括用于以下操作的单元:响应于已经接收到其中要存储接收到的网络分组的一部分的、存储器结构的多个分段中的每个分段的位置,将接收到的网络分组写入接收到的存储器结构的多个分段中的每个分段的位置。

示例37包括示例29-36中任一项的主题,并且其中,用于将所生成的另一事件消息发送到所识别的代理的单元包括:用于将所生成的另一事件消息发送到与所识别的代理相关联的代理结构接口的单元。

示例38包括示例29-37中任一项的主题,并且还包括用于以下操作的单元:由存储器结构的主机结构接口响应于已经从分组处理器或代理接收到传送事件消息,从存储器结构对整个接收到的网络分组进行读取和解除分配,以用于传送到由计算引擎进行管理的数据存储位置。

示例39包括示例29-38中任一项的主题,并且其中,用于由网络结构接口发送所生成的事件消息的单元包括:用于由网络结构接口从存储器结构读取接收到的网络分组的至少一部分的单元;用于由网络结构接口根据接收到的网络分组的所读取的部分来识别用于对接收到的网络分组进行附加处理的代理的单元;用于由网络结构接口生成指示接收到的网络分组可用于处理的网络分组已接收事件消息的单元;以及用于由网络结构接口将网络分组已接收事件消息发送到所识别的代理的单元。

示例40包括示例29-39中任一项的主题,并且还包括:用于由存储器结构的主机结构接口以分布式方式将从计算引擎接收到的新网络分组写入存储器结构的单元;用于由主机结构接口生成指示网络分组已经从计算引擎被接收的新网络分组事件消息的单元;用于由主机结构接口将新网络分组事件消息发送到分组处理器的单元;用于由分组处理器响应于已经接收到新网络分组事件消息而从存储器结构读取新网络分组的至少一部分的单元;用于由分组处理器根据新网络分组的所读取的部分来识别多个代理中的、用于对新网络分组进行附加处理的代理的单元;用于由分组处理器生成指示接收到的网络分组可用于处理的网络分组发送事件消息的单元;用于由分组处理器将网络分组发送事件消息发送到所识别的代理的单元;以及用于由网络结构接口响应于已经接收到网络分组发送事件消息而从存储器结构对整个网络分组进行读取和解除分配的单元。

示例41包括示例29-40中任一项的主题,并且其中,用于由主机结构接口发送所生成的事件消息的单元包括:用于从存储器结构读取接收到的网络分组的至少一部分的单元;用于根据接收到的网络分组的所读取的部分来识别用于对接收到的网络分组进行附加处理的代理的单元;用于生成指示新网络分组可用于处理的新网络分组事件消息的单元;以及用于将新网络分组事件消息发送到所识别的代理的单元。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1