可扩展地址解析的制作方法

文档序号:10628240阅读:177来源:国知局
可扩展地址解析的制作方法
【专利摘要】一个实施例提供了有待由计算机网络节点执行的子网管理员(SA)代理逻辑。所述SA代理逻辑包括:提供方逻辑,所述提供方逻辑包括与所述计算机网络节点通信的相关联子网的路径记录信息;以及提供方接口逻辑,所述提供方接口逻辑用于接收来自至少一个应用的包括部分地址信息的地址解析请求。所述提供方接口逻辑还用于确定所述计算机网络节点的用于启用与所述地址解析请求相关联的分组路由的至少一个本地端口。所述提供方逻辑还用于确定与所述地址解析请求相关联的至少一个子网。所述提供方接口逻辑还用于确定至少一个提供方逻辑,所述至少一个提供方逻辑有待利用以获得与所述地址解析请求相关联的至少一个子网的所述路径记录信息。所述提供方接口逻辑还用于生成地址解析响应,所述地址解析响应包括经解析的地址,所述经解析的地址包括所述路径记录信息以及用于使所述至少一个应用能够通过所述至少一个所确定的子网来路由数据分组的至少一个本地端口的标识。
【专利说明】
可扩展地址解析
技术领域
[0001]本公开涉及用于交换结构网络的可扩展地址解析。
【背景技术】
[0002]交换结构网络(如无限带宽?(IB)网络)中的名称和路径解析已成为难题。并不存在可扩展解决方案,并且用于解决与子网管理员相关联的限制的各种变通方案已导致失败的或降低的性能(例如,复杂结构拓扑中的结构死锁)。用于名称和路径解析的一些当前解决方案包括针对除了远程本地标识符(LID)之外的所有变量的硬编码值、如可以在无限带宽?网络标准中发现的“标准”方法、以及使用分配至IB以解析并建立连接的IB上网际协议(IPoIB)寻址的RDMA IP CM。这些解决方案并不于为像无限带宽?网络之类的交换结构网络提供高速可扩展性、性能和容错。
【附图说明】
[0003]要求保护的主题的特征和优点将从与其一致的实施例的以下详细描述中变得显而易见,应参照附图考虑所附描述,在附图中:
[0004]图1展示了与本公开的各实施例一致的网络系统;
[0005]图2展示了根据本公开的一个实施例的示例地址解析请求消息;
[0006]图3展示了根据本公开的一个实施例的示例地址解析响应消息;
[0007]图4展示了根据本公开的一个实施例的另一个示例消息;以及
[0008]图5是根据本公开的一个实施例的操作的流程图。
[0009]尽管以下【具体实施方式】将通过参照说明性实施例来进行阐述,但是其许多替代方案、修改和变体将对本领域技术人员而言显而易见。
【具体实施方式】
[0010]通常,本公开涉及网络的有效、可扩展的地址解析系统。网络节点包括子网管理员(SA)代理逻辑,所述SA代理逻辑包括提供方逻辑,所述提供方逻辑包含关于与网络节点进行通信的特定网络和/或子网的特定结构信息(例如,路径记录信息等)。所述至少一个提供方逻辑提供本地地址解析,而不要求应用持续地或周期地与网络和/或子网进行通信以解析地址。提供了一种提供方接口,所述提供方接口被配置成用于接收来自一个或多个应用的地址解析请求、从多个提供方逻辑当中确定合适的提供方逻辑以解析所述请求的地址、并且将所述解析的地址返回至应用以启用所述应用通过子网/网络将分组路由至目的。所述解析的地址可以采取路径记录信息的形式,所述路径记录信息可以提供本地端口信息、目的地址信息以及与网络/子网结构中的各跳有关的路径信息(例如,MTU、服务层级、分区等)。除其他项外,提供方接口启用在节点上运行的应用以请求地址解析而不要求应用配置有特定的结构协议,因此使得针对广泛的应用的地址解析透明成为可能。每个提供方逻辑可以例如通过结构管理器、子网管理器等被生成,并且/或者可以使用网络/子网结构的预定知识被生成。在一些实施例中,提供方逻辑和提供方接口可以在内核(OS)空间中由用户访问以启用地址解析例如用于I/o事务和应用、无限带宽以太网(IB上IP)应用、特权OS用户应用等。
[0011]图1展示了与本公开的各实施例一致的网络系统100。网络系统100通常包括与至少一个网络/子网网络系统124A、124B.....124M(下文称为“子网”)进行通信的至少一个网络节点元件102(下文称为“节点”)。节点102与子网124A、124B.....124M可以使用交换结构通信协议(例如,以太网通信协议、无限带宽通信协议、专有交换结构通信协议等)彼此通信。以太网通信协议可能能够使用传输控制协议/互联网协议(TCP/IP)来提供通信。以太网协议可以遵守或兼容由电气与电子工程师协会(IEEE)于2002年3月发布的题为“IEEE802.3标准”的以太网标准和/或此标准的后续版本(例如,2012年发布的以太网IEEE 802.3标准)。无限带宽协议可以遵守或兼容由无限带宽行业协会(IBTA)于2001年6月发布的题为“无限带宽?架构规范”的无限带宽规范,卷I,发行1.2.1和/或此规范的后续版本(例如,2008年I月发布的无限带宽?架构,卷I (通用规范),发行1.2.1以及2012年11月发布的卷2(物理层规范),发行1.3)。当然,在其他实施例中,交换结构通信协议可以包括定制和/或专有交换结构通信协议和/或其他通信协议。
[0012]节点102可以代表计算机节点元件(例如,主机服务器系统)、交换机、路由器、集线器、网络存储设备、机架、服务器、数据中心、附接于网络的设备、非易失性存储器(NVM)存储设备、基于云的服务器和/或存储系统等。系统100可以被配置成用于高性能计算(HPC)应用,例如,大规模存储网络(例如,云计算等)和/或其他配置。尽管未在图1中示出,节点102可以出于这些目的包括可以存在于计算机节点元件中的电路和/或系统,并且可以包括例如系统处理器(例如,多核通用处理器,如由因特尔公司提供的那些处理器等)和系统存储器。在此描述的逻辑和/或接口可以包括存储在系统存储器中的且由处理器电路(如系统处理器)执行的可执行指令。
[0013]在一些实施例中,节点102可以被逻辑地和/或物理地划分成用户空间区域104(例如,应用空间)和内核区域106。通常,用户空间区域106可以包括一个或多个应用,所述一个或多个应用通常是在操作系统(OS)内核的“外部”执行的,并且内核区域可以包括通常被执行为OS内核的一部分的一个或多个应用(内核用户)。
[0014]用户空间区域104可以包括一个或多个应用,其中一个应用在图1中被指定为应用108A。贯穿本公开,应用108A被提供作为示例,并且除非相反地声明,应用108A的地址解析操作表示应用组可以如何操作。一个或多个应用可以包括:例如,消息传送接口(MPI)应用、在大规模并行应用中提供通信协议的库缓存应用、性能扩展消息(PSM)应用、可扩展结构接口(SFI)应用、互联网/联网应用(例如,RDMA协议应用)、可以用于具体操作环境的定制和/或现成应用等。通常,应用108A被配置成用于生成有待发送至一个或多个子网124A、
124B.....124M的分组。节点102还可以包括至少一个网络控制器122 (例如,网络接口卡
(NIC))。网络控制器122可以包括多个端口 0、1、2.....N。每个端口可以由一个或多个应用和/或一个或多个子网124A、124B.....124M使用以提供节点102与子网124A、124B.....124M之间的物理耦接。端口的结构特征和操作特征可以由上述无限带宽通信协议定义,并且/或者由定制和/或专有交换结构通信协议定义。
[0015]每个子网124A、124B.....124M代表互连网络节点的结构拓扑。每个子网124A、124B.....124M可以包括对应的子网管理逻辑SA 126A、126B.....126M,对应的子网管理逻辑SA通常可操作以配置网络结构(其可以包括例如设备/节点元件发现、设备/节点元件能力和配置的确定等)、将地址分配给节点和/或节点与网络控制器、对节点切换元件进行编程以提供节点元件之间的路径。子网管理(SA)逻辑126A、126B.....126M还被配置成用于生成SA数据,并且SA数据通常包括在对应子网124A、124B.....124M内的网络节点元件的地址和路径信息和/或外部地址和路径信息(例如,DNS信息、TCP/IP网络信息等)。
[0016]为了将分组传输至一个或多个子网,应用108A可以生成地址解析请求以使应用
108A能够通过经标识的子网124A、124B.....124M的结构路由分组。在此使用的“地址解析”
通常被定义为充足的地址信息以使应用能够通过至少一个子网124A、124B.....124M将一个或多个分组路由到至少一个目的节点。由应用108A生成的地址解析请求可以包括例如可以符合标准化格式(例如,无限带宽函数调用格式等)的函数调用,因此使能够支持各种各样的当前应用和/或未来应用,并且还因此在不要求用于提供结构拓扑等的特定知识的应用的情况下提供地址解析。由应用108A生成的地址解析请求可以包括针对目的节点的不完全的或不准确的地址信息。例如,应用108A可以生成地址解析请求,所述地址解析请求包括目的名称(例如,表示端口的字符串“hostname”、网络标签等)、IP地址、IPv6地址、源地址数据、目的地址数据和/或其他地址信息。在其他示例中,应用108A可以生成地址解析请求,所述地址解析请求包括路径记录数据,所述路径记录数据提供关于应如何解析地址的“提示”。例如,利用具体的MTU、特定的服务ID等,这种“提示”可以包括通过结构的一条或多条路径、在结构的具体分区之上的路径。来自应用的地址信息通常不足以通过子网将分组正确地路由至目的节点。为了使应用108A能够将分组正确地路由至目的节点,地址解析可以包括路径记录信息和端口信息。在此使用的“路径记录”包括将源节点与目的节点进行关联的信息(例如,局部标识符(LID)信息、全局标识符(GID)信息等),并且还可以包括与结构中的一跳或多跳有关的结构特定信息。这种结构特定信息可以例如包括:最大传输单元(MTU)、服务层级信息、分区信息等。端口信息可以是针对特定端口0、1、2、N的标识符。
[0017]因此,节点102还包括SA代理逻辑115,所述SA代理逻辑通常被配置成用于接收来自应用108A的地址解析请求并将路径记录信息和/或端口信息返回至应用108A以使应用
108A能够通过至少一个目的子网124A、124B.....124M将一个或多个分组路由至一个或多个目的节点。SA代理逻辑115被配置成用于基于来自应用108A的地址解析请求来确定用于连接子网的物理端口(本地端口解析)、解析目的地址(例如,LID或GID信息)并获得与目的子网相关联的路径记录信息。SA代理逻辑115可以包括提供方接口逻辑114和至少一个提供方逻辑,其中之一在图1中被指定为提供方逻辑116A。
[0018]提供方逻辑116A通常包括与至少一个子网124A、124B.....124M有关的结构特定路径记录信息。在一些实施例中,每个提供方逻辑116A特定于子网124A、124B.....或124M,
而在其他实施例中,提供方逻辑可以包括针对多个子网的结构特定路径记录信息。在一些实施例中,每个网络控制器122的每个端口0、1、2.....N可以被分配至少一个提供方逻辑
116A。在一个示例中,提供方逻辑116A可以被配置成用于基于来自应用108A的地址解析请求查询相关联的SA逻辑126A、126B、...或126M以检索与所选子网124A、124B.....124M相关的当前路径记录信息。在另一个示例中,提供方逻辑116A可以被配置成用于与相关联的SA逻辑126A、126B、...或126M周期性地进行通信并且对针对相关联的子网126A、126B.....126M的路径记录信息进行高速缓存。在另一个示例中,提供方逻辑116A可以包括针对相关联的子网124A、124B.....124M的“静止的”路径记录信息,例如,在这种情况中,相关联的子网是硬接线的、相对不变的等。提供方逻辑116A可以用针对相关联的子网的路径记录信息单独地定制并且可以由例如子网设计程序、子网管理员等生成。在其他实施例中,提供方逻辑116A可以包括默认的和/或标准化路径记录信息,所述路径记录信息可以应用于各种特定的和/或一般化子网。每个提供方逻辑116A还可以被配置成用于与相关联的SA逻辑126A、
126B.....126M进行带内或带外(OOB)通信以使得例如在地址解析请求不可以由提供方逻辑116A在本地满足的情况下能够进行地址解析。除了路径记录信息之外,提供方逻辑116A可以包括局部标识符(LID)信息、IP信息、主机名称信息等。例如,SA代理逻辑115的提供方逻辑的集合使得针对节点102的多个应用的本地地址解析成为可能。
[0019]提供方接口逻辑114被配置成用于在应用108A(和/或以下描述的应用接口110)与提供方逻辑116A之间交换命令和数据。提供方接口逻辑114还被配置成用于接收来自应用108A的地址解析请求。提供方接口逻辑114还被配置成用于基于例如地址解析请求的源地址信息确定至少一个子网和至少一个相关联的提供方逻辑116A,所述提供方逻辑包括响应于来自应用108A的请求的路径记录信息。应用接口逻辑114还被配置成用于分析包含在提供方逻辑116A中的路径记录信息以生成对请求应用108A的响应,其中,所述响应包括请求的路径记录信息。应用接口还可以被配置成用于基于地址解析请求确定网络控制器122和至少一个端口 O、1、2.....N,所述至少一个端口可以由请求应用108A使用以与经标识的子网124A、124B.....124M进行通信。网络控制器122和/或端口 0、1、2.....N可以被动态地添加或从节点102中去除。提供方接口 114还可以被配置成用于监测这种变化并且为提供方逻辑分配/重新分配网络控制器122和/或端口 0、1、2.....N。提供方接口逻辑114还可以包括与本地节点寻址有关的信息。例如,节点102可以使端口命名策略成为可能,并且网络接口逻辑可以被配置成用于利用本地节点寻址信息更新提供方逻辑116A以使远程节点能够解析本地节点(可能无需涉及SA逻辑)。
[0020]节点102还可以包括应用接口 110,所述应用接口通常被配置成用于与应用108A和SA代理逻辑115对接、并且对来自应用108A和SA代理模块115的消息进行生成和转换。在一些实施例中,应用接口 110通常被配置成用于使应用108A能够使用标准化API(应用编程接口)传达SA代理逻辑115的特定请求,因此使得在没有具有那些SA逻辑实现方式的特定知识的应用的情况下能够利用各种各样的结构特定SA逻辑实现方式。应用接口 110可以利用进程间执行(例如,UniX socket)以在应用108A与SA代理逻辑115之间进行通信。应用接口被配置成用于接收来自应用108A的地址解析请求并将所述请求格式化成由SA代理逻辑115利用的消息格式。类似地,当从SA代理逻辑115接收地址解析响应消息时,应用接口逻辑110被配置成用于格式化针对应用108A的经解析的地址信息。
[0021]在一些实施例中,在内核空间106中的一个或多个应用(内核用户)可以针对SA代理逻辑115生成地址解析请求。为此,节点102的内核空间106可以包括多个内核(OS)用户118A。例如,内核用户118A可以包括I/O事务和应用、无限带宽以太网(IB上IP)应用、特权OS用户应用、SCSI RDMA应用、I/O应用(例如,Luster文件系统应用等)、SRP应用等。
[0022]每个内核用户118A可以生成类似于以上描述的由至少一个应用108A生成的地址解析请求的地址解析请求。内核空间106还可以包括内核用户接口逻辑120,所述内核用户接口逻辑通常被配置成用于在至少一个内核用户108A与提供方接口逻辑114之间交换命令和数据。如以上所描述的,内核用户接口逻辑120还被配置成用于接收来自内核用户108A的地址解析请求并格式化所述请求消息以使得提供方接口逻辑114能够响应于所述请求提供经解析的地址信息。内核用户接口逻辑120还被配置成用于接收来自提供方接口逻辑114的响应(即,经解析的地址)并将所述响应格式化成可由内核用户108A存取的格式。接口逻辑120可以遵守内核通信信道协议,例如,Net I ink接口兼容协议等。因此,在用户空间104和内核空间106两者中的应用可以有利地被启用以由节点102进行本地地址解析。在一些实施例中,内核用户接口逻辑120可以确定提供方接口逻辑114的可用性。如果提供方接口逻辑114
不可用,则内核用户接口逻辑120可以被配置成用于与一个或多个SA逻辑126A、126B.....126M进行通信从而为一个或多个内核用户118A提供地址解析。
[0023]图2展示了根据本公开的一个实施例的示例地址解析请求消息200。地址解析请求消息200可以是与上述无限带宽?通信协议可兼容或相符的消息格式。继续参照图1,响应于来自应用108A的地址解析请求,地址解析请求消息200可以由应用接口逻辑110生成并且被传输至提供方接口逻辑114。地址解析请求消息200通常包括头部部分202和局部地址数据部分204。头部部分202可以包括指示消息200的协议版本的版本字段210、指示所执行的操作类型(例如,地址解析、性能查询等)的操作码字段214、指示消息200的状态的状态字段218(并且可以由以下描述的响应消息使用)、可以用于性能查询消息发送的数据字段222、216和212、以及指示事务标识符和/或事务序列的事务ID(TID)字段224。例如,局部地址数据部分204可以包括目的地址信息206和/或源地址数据信息208。局部地址数据部分204在图2的右边部分上被更详细地示出并且通常可以包括指示源和/或目的信息的标志位字段226、指示可以由应用108A供应的地址信息的类型的类型字段230(例如,名称、IP地址、IPv6地址、路径记录、服务ID等)、可以在给出的协议的后续版本中利用的保留字段226、以及通常包括由应用108A供应的且如上所述的地址类型的数据的信息字段232,此数据通常是有待解析的局部地址。在图2中描绘了请求消息200的示例字节计数(水平轴)和位计数(竖直轴)。地址解析请求消息200可以被转发至提供方接口逻辑114。作为响应,并且如上所述,提供方接口逻辑114可以分析消息200以从多个提供方当中确定利用哪个提供方逻辑108A来解析包含在消息200中的地址。当然,图2的地址解析请求消息200仅被提供作为示例。在其他实施例中,地址解析请求消息可以与其他通信协议(例如,以太网通信协议、定制和/或专有通信协议等)兼容。
[0024]图3展示了根据本公开的一个实施例的示例地址解析响应消息300。地址解析响应消息300可以是与上述无限带宽?通信协议可兼容或相符的消息格式。继续参照图1和图2,响应于来自应用接口逻辑110的地址解析请求消息,地址解析响应消息300可以由提供方接口逻辑114生成。地址解析响应消息300通常包括头部部分302和经解析的地址数据部分304(例如,路由地址数据)。头部部分302可以包括以上参照图2的头部202描述的字段。经解析的地址数据部分304可以包括例如路由地址数据(例如,路径记录信息)等,和/或操作以解析由应用108A请求的地址的其他信息。经解析的地址数据部分304在图3的右边部分上被更详细地示出,并且通常可以包括以上参照图2的局部地址数据部分204头部202描述的字段,并且还可以包括在信息字段306中的完全的(经解析的)路径记录信息。以上参照提供方接口逻辑114和提供方逻辑116A描述了信息字段306的经解析的地址。在图3中描绘了响应消息300的示例字节计数(水平轴)和位计数(竖直轴)。地址解析响应消息300可以被转发至应用接口 114,并且进而,经解析的地址数据可以被转发至请求应用108A,从而使得应用108A能够通过确定的子网将分组正确地路由至目的。当然,图3的地址解析响应消息300仅被提供作为示例。在其他实施例中,地址解析响应消息可以与其他通信协议(例如,以太网通信协议、定制和/或专有通信协议等)兼容。
[0025]图4展示了根据本公开的一个实施例的另一个示例消息400。消息400的格式既可以用作地址解析请求消息又可以用作地址解析响应消息。消息400可以是与上述无限带宽?通信协议和/或Netlink通信协议可兼容或相符的消息格式。继续参照图1,消息400可以由内核用户接口 120响应于来自内核用户118A的地址解析请求生成为地址解析请求消息,并且消息400可以由提供了经解析的地址信息的提供方接口 114生成为地址解析响应消息。消息400通常包括Netlink头部部分402,所述Netlink头部部分被配置成用于在系统100的Netlink应用(用户)之间路由Netlink消息(例如,在寄存器Netlink应用之间进行广播),以及用于使OS能够“引导”消息400往返于内核用户接口逻辑120和提供方接口逻辑114。消息400还包括类似于图2/3的头部202/302的提供方接口头部部分404。消息400还包括类似于图2/3的局部/经解析的地址数据部分204/304的路径数据部分406,并且包括(在请求消息中的)局部路径记录信息或(在响应消息中的)经解析的路径记录信息408 Aetlink头部部分402可以包括指示消息400的长度(例如,字节)的长度字段410、指示协议特定消息内容的类型字段412、指示消息类型(例如,请求、响应、ACK等)的标志位字段414、可以定义唯一号从而使得请求与响应匹配的序列字段416、以及指示初始化消息的实体的处理ID(PID)字段418(例如,内核用户可以分配“O”,其他用户可以分配“I”等)。路径记录字段408可以包括局部的或完全的路径记录信息。例如,如果消息400用作地址解析请求消息,则路径记录字段408可以用如在此所描述的来自内核用户118A的地址数据部分地填充。如果消息400用作地址解析响应消息,则路径记录字段408可以由SA代理逻辑115生成以包括经解析的地址信息从而使内核用户能够通过所选的子网路由分组。在图4中描绘了响应消息400的示例字节计数(水平轴)和位计数(竖直轴)。当然,图4的消息格式400仅被提供作为示例。在其他实施例中,地址解析响应消息可以与其他通信协议(例如,以太网通信协议、定制和/或专有通信协议等)兼容。
[0026]图5是根据本公开的另一个实施例的操作的流程图500。具体地,流程图500展示了网络节点元件的SA代理逻辑的用于为应用(用户空间应用和/或内核应用)提供地址解析的操作。此实施例的操作包括接收地址解析请求消息502。地址解析请求消息可以包括不完全的和/或不准确的地址信息,所述地址信息需要被解析以使应用和/或内核用户能够通过确定的子网将分组路由至目的节点。操作还包括分析地址解析请求消息并确定消息应用于其的目标结构、确定针对目标结构的提供方逻辑以及与提供方逻辑504相关联的本地端口。操作还包括确定所选择的提供方逻辑是否可用于响应请求506(例如,确定提供方逻辑是否是离线的或以其他方式是不可用的)。如果提供方逻辑可用于响应请求,则操作可以包括选择默认提供方逻辑或者指导请求程序与同目标子网相关联的子网管理员(SA)进行通信以获得地址解析信息516。默认的提供方逻辑可以包含与子网有关的充足的信息以提供请求的地址解析。如果提供方逻辑可用于响应请求(506),则操作还可以包括确定提供方逻辑是否能够用于解析地址508。如果例如因为提供方逻辑具有不充足的信息、子网已改变等使得提供方逻辑不能够解析地址,则操作还可以包括指导请求程序与同目标子网相关联的(SA)进行通信以获得地址解析信息518。如果提供方逻辑能够解析地址(508),则操作还可以包括确定来自提供方逻辑的经解析的地址510并且生成包括经解析的地址信息的地址解析响应消息512。操作还可以包括将地址解析响应消息和本地端口信息发送至请求程序514。地址解析响应消息可以包括与经标识的子网相关联的路径记录信息。在此实施例中,请求程序包括与节点相关联的至少一个应用和/或与节点的内核空间相关联的内核用户。
[0027]虽然图5的流程图展示根据各实施例的操作,将理解的是,并非图5中描绘的所有操作对其他实施例都是必需的。此外,在此充分设想,在本公开的其他实施例中,在图5中描绘的操作和/或在此描述的其他操作可以以未在任何附图中特别地示出的方式组合,并且这种实施例可以包括比图5中展示的更少或更多的操作。因此,涉及未在一张附图中正确地示出的特征和/或操作的权利要求被视为在本公开的范围和内容中。
[0028]前述内容是非常卓越的,因为示例性系统架构和方法、针对本公开的修改是有可能的。例如,节点102可以进一步包括用于管理系统资源的操作系统(OS,未示出)和在例如节点102上运行的控制任务。例如,OS可以是使用微软Windows、HP-UX、Linux或UNIX实现的,尽管可以使用其他操作系统。在一些实施例中,OS可以被虚拟机取代,所述虚拟机可以针对在一个或多个处理单元上运行的各操作系统为底部硬件提供抽象层。操作系统和/或虚拟机可以实现一个或多个协议堆栈。协议堆栈可以执行用于处理分组的一个或多个程序。协议堆栈的示例是TCP/IP(传输控制协议/互联网协议)协议堆栈,所述协议堆栈包括用于处置(例如,处理或生成)分组以在网络之上进行传输和/或接收的一个或多个程序。协议堆栈可以替代地被包括在专属子系统上,如,例如,TCP卸载引擎和/或网络控制器122。
[0029]系统存储器和/或与网络控制器(例如,网络控制器122)相关联的存储器可以包括以下类型的存储器中的一个或多个:半导体固件存储器、可编程存储器、非易失性存储器、只读存储器、电可编程存储器、随机存储器、闪存、磁盘存储器和/或光盘存储器。或者附加地或者替代地,系统存储器和/或与网络控制器122相关联的存储器可以包括其他的和/或后来发展类型的计算机可读存储器。
[0030]在此描述的操作的实施例可以在系统中实现,所述系统包括具有单独地或组合地存储在其上的多条指令的一个或多个存储设备,当这些指令被一个或多个处理器执行时执行这些方法。例如,处理器可以包括网络控制器122中的处理单元和/或可编程电路和/或系统处理器和/或其他处理单元或可编程电路。因此,旨在使得根据在此描述的这些方法的操作可以跨多个物理设备(如在若干个不同的物理位置处的处理结构)分布。存储设备可以包括任何类型的有形的、非瞬态的存储设备,例如,包括以下各项的任何类型的磁盘:软盘、光盘、压缩盘-只读存储器(CD-ROM)、可复写致密盘(CD-RW)、和磁光盘、如只读存储器(ROM)的半导体器件、如动态或静态RAM的随机存取存储器(RAM)、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、闪存、磁卡或光卡、或者适合于电性地、化学地和/或机械地存储指令的任何类型的存储介质。
[0031]图1的网络系统100可以被配置成用于使用支持RDMA的网络(如无限带宽?网络)通信协议的进行通信。在其他实施例中,可以使用其他支持RDMA的网络协议,例如,iWARP通信协议。iWARP通信协议可以与于2007年发布的题为“在传输控制协议(TCP)标准上的RDMA(RDMA over Transmiss1n Control Protocol (TCP) standard)” 的由RDMA联盟开发的并且由互联网工程任务组(IETF)维护且发布的iWARP标准和/或此标准的后续版本相符或兼容。
[0032]在一些实施例中,硬件描述语言可以用于针对在此描述的各模块和/或电路指定电路和/或逻辑实现。例如,在一个实施例中,硬件描述语言可以与超高速集成电路(VHSIC)硬件描述语言(VHDL)相符或兼容,所述硬件描述语言可以使得在此描述的一个或多个电路和/或模块的半导体制造成为可能。VHDL可以与以下标准相符或兼容:IEEE标准1076-1987、ffiEE标准 1076.2、IEEE1076.1、VHDL-2006的IEEE草案3.0、VHDL-2008的IEEE草案4.0和/或IEEE VHDL标准的其他版本和/或其他硬件描述标准。
[0033]本文使用的“逻辑”可以单独地或以任何的组合包括电路、代码、针对声明的功能配置的指令集(例如,具体化为软件、固件等)。例如,在本文的任何实施例中使用的“电路”可以单独地或以任何的组合包括硬接线电路、可编程电路、状态机电路、处理电路和/或存储由可编程电路执行的指令的固件。
[0034]因此,本公开提供了一种示例网络节点元件,所述示例网络节点元件包括:网络控制器,所述网络控制器用于使用交换结构通信协议与至少一个子网进行通信,所述网络控制器包括至少一个本地端口 ;提供方逻辑,所述提供方逻辑包括相关联子网的路径记录信息;以及提供方接口逻辑,所述提供方接口逻辑用于接收来自包括部分地址信息的所述至少一个应用的地址解析请求。所述提供方接口逻辑还用于确定用于启用与所述地址解析请求相关联的分组路由的至少一个本地端口。所述提供方逻辑还用于确定与所述地址解析请求相关联的至少一个子网。所述提供方接口逻辑还用于确定至少一个提供方逻辑,所述至少一个提供方逻辑有待利用以获得与所述地址解析请求相关联的至少一个子网的所述路径记录信息。所述提供方接口逻辑还用于生成地址解析响应,所述地址解析响应包括经解析的地址,所述经解析的地址包括所述路径记录信息以及用于使所述至少一个应用能够通过所述至少一个确定的子网来路由数据分组的至少一个本地端口的标识。
[0035]另一示例网络节点元件包括前述内容,并且进一步包括应用接口逻辑,所述应用接口逻辑用于:接收来自所述至少一个应用的地址解析请求消息;生成有待转发至所述提供方接口逻辑的应用解析请求;以及分析所述地址解析响应以获得对来自所述至少一个应用的请求的至少一个经解析的地址响应。
[0036]另一示例网络节点元件包括前述内容,并且进一步限定了:其中,所述应用是由所述网络节点元件执行的操作系统的内核用户,并且进一步包括内核用户接口逻辑,所述内核用户接口逻辑用于:接收来自内核用户的至少一个应用的地址解析请求消息;生成有待转发至所述提供方接口逻辑的应用解析请求;以及分析所述地址解析响应以获得对来自所述至少一个应用的所述请求的至少一个经解析的地址响应。
[0037]另一示例网络节点元件包括前述内容,并且进一步限定了:所述提供方逻辑由与所述子网相关联的子网管理器和/或子网管理员生成,并且其中,所述提供方逻辑用于:对包括与所述子网相关联的路径记录信息的经解析的地址数据进行高速缓存。
[0038]另一示例网络节点元件包括前述内容,并且进一步限定了:所述提供方逻辑由与所述子网相关联的子网管理器(SM)和/或子网管理员(SA)生成,并且其中,所述提供方逻辑用于:与所述SA和/或SM进行通信,以在接收到来自所述至少一个应用的所述地址解析请求之后获得包括与所述子网相关联的路径记录信息的经解析的地址数据。
[0039]另一示例网络节点元件包括前述内容,并且进一步限定了:所述部分地址信息是不足以使至少一个应用能够通过所述子网来路由一个或多个分组的信息。
[0040]另一示例网络节点元件包括前述内容,并且进一步限定了:所述路径记录信息包括将源节点联系到目的节点的信息以及与所述确定的子网的结构中的一跳或多跳有关的结构特定信息。
[0041]另一示例网络节点元件包括前述内容,并且进一步限定了:所述提供方接口逻辑用于:如果所述提供方逻辑不具有对所述地址解析请求的路径记录信息响应,则发起与所述所确定的子网的通信以获得经解析的地址。
[0042]另一示例网络节点元件包括前述内容,并且进一步限定了:所述提供方逻辑被分配给至少一个本地端口。
[0043]本公开还提供了一种网络节点元件,所述网络节点元件包括:用于提供与所述计算机网络节点通信的相关联子网的路径记录信息的装置;以及用于对接以接收来自包括部分地址信息的至少一个应用的地址解析请求的装置,所述用于对接的装置还用于确定所述计算机网络节点的用于启用与所述地址解析请求相关联的分组路由的至少一个本地端口;所述用于对接的装置还用于确定与所述地址解析请求相关联的至少一个子网;所述用于对接的装置还用于确定至少一个提供方逻辑,所述至少一个提供方逻辑有待利用以获得与所述地址解析请求相关联的至少一个子网的所述路径记录信息;所述用于对接的装置还用于生成地址解析响应,所述地址解析响应包括经解析的地址,所述经解析的地址包括所述路径记录信息以及用于使所述至少一个应用能够通过所述至少一个确定的子网来路由数据分组的至少一个本地端口的标识。
[0044]另一示例网络节点元件包括前述内容,并且进一步限定了:所述用于提供的装置由与所述子网相关联的子网管理器(SM)和/或子网管理员(SA)生成,并且其中,所述用于提供的装置用于与所述SA和/或SM进行通信,以在接收到来自所述至少一个应用的所述地址解析请求之后获得包括与所述子网相关联的路径记录信息的经解析的地址数据。
[0045]本公开还提供了一种用于解析地址的方法,所述方法包括:由网络节点元件确定所述网络节点元件的用于启用与地址解析请求相关联的分组路由的至少一个本地端口 ;由所述网络节点元件确定与所述地址解析请求相关联的至少一个子网;由所述网络节点元件确定与所述地址解析请求相关联的至少一个子网的路径记录信息,其中,所述路径记录信息由所述网络节点元件在本地存储和/或在本地控制;以及由网络节点元件生成地址解析响应,所述地址解析响应包括经解析的地址,所述经解析的地址包括路径记录信息以及用于使至少一个应用能够通过所述至少一个确定的子网来路由数据分组的至少一个本地端口的标识。
[0046]另一示例方法包括前述内容,并且进一步限定了:所述应用是用户空间应用。
[0047]另一示例方法包括前述内容,并且进一步限定了:所述应用是由所述网络节点元件执行的操作系统的内核用户。
[0048]另一示例方法包括前述内容,并且进一步限定了:所述路径记录信息由与所述子网相关联的子网管理器和/或子网管理员生成,并且其中,所述方法进一步包括:对包括与所述子网相关联的路径记录信息的所述经解析的地址数据进行高速缓存。
[0049]另一示例方法包括前述内容,并且进一步限定了:所述路径记录信息由与所述子网相关联的子网管理器(SM)和/或子网管理员(SA)生成,并且其中,所述方法进一步包括:与所述SA和/或SM进行通信;以及在接收到所述地址解析请求之后获得包括与所述子网相关联的路径记录信息的经解析的地址数据。
[0050]另一示例方法包括前述内容,并且进一步限定了:所述部分地址信息是不足以使所述至少一个应用能够通过所述子网来路由一个或多个分组的信息。
[0051]另一示例方法包括前述内容,并且进一步限定了:所述路径记录信息包括将源节点联系到目的节点的信息以及与所述确定的子网的结构中的一跳或多跳有关的结构特定
?目息O
[0052]另一示例方法包括前述内容,并且进一步包括:如果所述路径记录信息不响应于所述地址解析请求,则发起与所述所确定的子网的通信以获得经解析的地址。
[0053]本公开还提供了一种系统,所述系统包括具有单独地或组合地存储在其上的多条指令的一个或多个存储设备,当这些指令由一个或多个处理器执行时导致以下操作,所述操作包括:确定网络节点元件的用于启用与地址解析请求相关联的分组路由的至少一个本地端口;确定与所述地址解析请求相关联的至少一个子网;确定与所述地址解析请求相关联的至少一个子网的路径记录信息,其中,所述路径记录信息在本地被存储和/或在本地被控制;以及生成地址解析响应,所述地址解析响应包括经解析的地址,所述经解析的地址包括路径记录信息以及用于使至少一个应用能够通过至少一个确定的子网来路由数据分组的至少一个本地端口的标识。
[0054]另一示例系统包括前述内容,并且进一步限定了:所述应用是用户空间应用。
[0055]另一示例系统包括前述内容,并且进一步限定了:所述应用是由所述网络节点元件执行的操作系统的内核用户。
[0056]另一示例系统包括前述内容,并且进一步限定了:所述路径记录信息由与所述子网相关联的子网管理器和/或子网管理员生成,并且其中,所述指令当由一个或多个处理器执行时导致以下附加操作,所述附加操作包括:对包括与所述子网相关联的路径记录信息的所述经解析的地址数据进行高速缓存。
[0057]另一示例系统包括前述内容,并且进一步限定了:所述路径记录信息由与所述子网相关联的子网管理器(SM)和/或子网管理员(SA)生成,并且其中,所述指令当由一个或多个处理器执行时导致以下附加操作,所述附加操作包括:与所述SA和/或SM进行通信;以及在接收到所述地址解析请求之后获得包括与所述子网相关联的路径记录信息的经解析的地址数据。
[0058]另一示例系统包括前述内容,并且进一步限定了:所述部分地址信息是不足以使所述至少一个应用能够通过所述子网来路由一个或多个分组的信息。
[0059]另一示例系统包括前述内容,并且进一步限定了:所述路径记录信息包括将源节点联系到目的节点的信息以及与所述确定的子网的结构中的一跳或多跳有关的结构特定
?目息O
[0060]另一示例系统包括前述内容,并且进一步限定了:所述指令当由一个或多个处理器执行时导致以下附加操作,所述附加操作包括:如果所述路径记录信息不响应于所述地址解析请求,则发起与所述所确定的子网的通信以获得经解析的地址。
[0061]本文已采用的术语和表达用作描述术语且没有限制,并且在使用这种术语和表达时不旨在排除所示且所描述的特征(或其部分)的任何等效方案,并且认识到在权利要求书范围内的各种修改是有可能的。因此,权利要求书旨在覆盖所有这种等效方案。
[0062]在此已经描述了各种特征、方面和实施例。如将由本领域技术人员所理解,特征、方面和实施例易受与彼此的组合以及受变化和修改的影响。因此,本公开应被认为包含这种组合、变化和修改。
【主权项】
1.一种网络节点元件,包括: 网络控制器,所述网络控制器用于使用交换结构通信协议与至少一个子网进行通信,所述网络控制器包括至少一个本地端口; 提供方逻辑,所述提供方逻辑包括相关联子网的路径记录信息;以及 提供方接口逻辑,所述提供方接口逻辑用于接收来自至少一个应用的包括部分地址信息的地址解析请求,所述提供方接口逻辑还用于确定用于启用与所述地址解析请求相关联的分组路由的至少一个本地端口;所述提供方逻辑还用于确定与所述地址解析请求相关联的至少一个子网;所述提供方接口逻辑还用于确定至少一个提供方逻辑,所述至少一个提供方逻辑有待利用以获得与所述地址解析请求相关联的至少一个子网的所述路径记录信息;所述提供方接口逻辑还用于生成地址解析响应,所述地址解析响应包括经解析的地址,所述经解析的地址包括所述路径记录信息以及用于使所述至少一个应用能够通过所述至少一个所确定的子网来路由数据分组的至少一个本地端口的标识。2.如权利要求1所述的网络节点元件,进一步包括应用接口逻辑,所述应用接口逻辑用于:接收来自所述至少一个应用的所述地址解析请求消息;生成有待转发至所述提供方接口逻辑的应用解析请求;以及分析所述地址解析响应以获得对来自所述至少一个应用的所述请求的至少一个经解析的地址响应。3.如权利要求1所述的网络节点元件,其中,所述应用是由所述网络节点元件执行的操作系统的内核用户,并且所述网络节点元件进一步包括内核用户接口逻辑,所述内核用户接口逻辑用于:接收来自内核用户的所述至少一个应用的所述地址解析请求消息;生成有待转发至所述提供方接口逻辑的应用解析请求;以及分析所述地址解析响应以获得对来自所述至少一个应用的所述请求的至少一个经解析的地址响应。4.如权利要求1所述的网络节点元件,其中,所述提供方逻辑由与所述子网相关联的子网管理器和/或子网管理员生成,并且其中,所述提供方逻辑用于对包括与所述子网相关联的路径记录信息的经解析的地址数据进行高速缓存。5.如权利要求1所述的网络节点元件,其中,所述提供方逻辑由与所述子网相关联的子网管理器(SM)和/或子网管理员(SA)生成,并且其中,所述提供方逻辑用于与所述SA和/或SM进行通信,以便在接收到来自所述至少一个应用的所述地址解析请求之后获得包括与所述子网相关联的路径记录信息的经解析的地址数据。6.如权利要求1所述的网络节点元件,其中,所述部分地址信息是不足以使所述至少一个应用能够通过所述子网来路由一个或多个分组的信息。7.如权利要求1所述的网络节点元件,其中,所述路径记录信息包括将源节点联系到目的节点的信息以及与所述所确定的子网的结构中的一跳或多跳有关的结构特定信息。8.如权利要求1所述的网络节点元件,其中,所述提供方接口逻辑还用于:如果所述提供方逻辑不具有对所述地址解析请求的路径记录信息响应,则发起与所述所确定的子网之间的通信以获得经解析的地址。9.如权利要求1所述的网络,其中,所述提供方逻辑被分配给至少一个本地端口。10.—种网络节点元件,包括: 用于提供与计算机网络节点通信的相关联子网的路径记录信息的装置;以及 用于对接以接收来自至少一个应用的包括部分地址信息的地址解析请求的装置,所述用于对接的装置还用于确定所述计算机网络节点的用于启用与所述地址解析请求相关联的分组路由的至少一个本地端口;所述用于对接的装置还用于确定与所述地址解析请求相关联的至少一个子网;所述用于对接的装置还用于确定至少一个提供方逻辑,所述至少一个提供方逻辑有待利用以获得与所述地址解析请求相关联的至少一个子网的所述路径记录信息;所述用于对接的装置还用于生成地址解析响应,所述地址解析响应包括经解析的地址,所述经解析的地址包括所述路径记录信息以及用于使所述至少一个应用能够通过所述至少一个所确定的子网来路由数据分组的至少一个本地端口的标识。11.所述网络节点元件,其中,所述用于提供的装置由与所述子网相关联的子网管理器(SM)和/或子网管理员(SA)生成,并且其中,所述用于提供的装置用于与所述SA和/或SM进行通信,以便在接收到来自所述至少一个应用的所述地址解析请求之后获得包括与所述子网相关联的路径记录信息的经解析的地址数据。12.一种用于解析地址的方法,所述方法包括: 由网络节点元件确定所述网络节点元件的用于启用与地址解析请求相关联的分组路由的至少一个本地端口 ; 由所述网络节点元件确定与所述地址解析请求相关联的至少一个子网; 由所述网络节点元件确定与所述地址解析请求相关联的至少一个子网的路径记录信息,其中,所述路径记录信息由所述网络节点元件在本地被存储和/或在本地被控制;以及 由所述网络节点元件生成地址解析响应,所述地址解析响应包括经解析的地址,所述经解析的地址包括所述路径记录信息以及用于使至少一个应用能够通过所述至少一个所确定的子网来路由数据分组的至少一个本地端口的标识。13.如权利要求12所述的方法,其中,所述应用是用户空间应用。14.如权利要求12所述的方法,其中,所述应用是由所述网络节点元件执行的操作系统的内核用户。15.如权利要求12所述的方法,其中,所述路径记录信息由与所述子网相关联的子网管理器和/或子网管理员生成,并且其中,所述方法进一步包括:对包括与所述子网相关联的路径记录信息的所述经解析的地址数据进行高速缓存。16.如权利要求12所述的方法,其中,所述路径记录信息由与所述子网相关联的子网管理器(SM)和/或子网管理员(SA)生成,并且其中,所述方法进一步包括:与所述SA和/或SM进行通信;以及在接收到所述地址解析请求之后获得包括与所述子网相关联的路径记录信息的经解析的地址数据。17.如权利要求12所述的方法,其中,所述部分地址信息是不足以使所述至少一个应用能够通过所述子网来路由一个或多个分组的信息。18.如权利要求12所述的方法,其中,所述路径记录信息包括将源节点联系到目的节点的信息以及与所述所确定的子网的结构中的一跳或多跳有关的结构特定信息。19.如权利要求12所述的方法,进一步包括:如果所述路径记录信息不响应于所述地址解析请求,则发起与所述所确定的子网之间的通信以获得经解析的地址。20.—种计算机可读存储设备,具有存储在其上的指令,当所述指令由一个或多个处理器执行时导致包括以下各项的操作: 确定网络节点元件的用于启用与地址解析请求相关联的分组路由的至少一个本地端 P; 确定与所述地址解析请求相关联的至少一个子网; 确定与所述地址解析请求相关联的至少一个子网的路径记录信息,其中,所述路径记录信息在本地被存储和/或在本地被控制;以及 生成地址解析响应,所述地址解析响应包括经解析的地址,所述经解析的地址包括所述路径记录信息以及用于使至少一个应用能够通过所述至少一个所确定的子网来路由数据分组的至少一个本地端口的标识。21.如权利要求20所述的计算机可读存储设备,其中,所述应用是由所述网络节点元件执行的操作系统的内核用户。22.如权利要求20所述的计算机可读存储设备,其中,所述路径记录信息由与所述子网相关联的子网管理器和/或子网管理员生成,并且其中,所述指令当由一个或多个处理器执行时导致以下附加操作,所述附加操作包括:对包括与所述子网相关联的路径记录信息的所述经解析的地址数据进行高速缓存。23.如权利要求20所述的计算机可读存储设备,其中,所述路径记录信息由与所述子网相关联的子网管理器(SM)和/或子网管理员(SA)生成,并且其中,所述指令当由一个或多个处理器执行时导致以下附加操作,所述附加操作包括:与所述SA和/或SM进行通信;以及在接收到所述地址解析请求之后获得包括与所述子网相关联的路径记录信息的经解析的地址数据。24.如权利要求20所述的计算机可读存储设备,其中,所述部分地址信息是不足以使所述至少一个应用能够通过所述子网来路由一个或多个分组的信息。25.如权利要求20所述的计算机可读存储设备,其中,所述路径记录信息包括将源节点联系到目的节点的信息以及与所述所确定的子网的结构中的一跳或多跳有关的结构特定?目息O
【文档编号】H04L29/10GK105993161SQ201580008518
【公开日】2016年10月5日
【申请日】2015年3月6日
【发明人】T·里默, I·韦妮, J·弗莱克, K·万, M·赫弗蒂
【申请人】英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1