网络接口卡制造技术

技术编号:28383681 阅读:18 留言:0更新日期:2021-05-08 00:12
本公开的实施例涉及一种网络接口卡。智能NIC(网络接口卡)提供有使得智能NIC能够作为主机的NIC和网络之间的内联NIC操作的特征。智能NIC为主机提供网络流的穿透传输。发送到主机和从主机发送的分组传递通过智能NIC。作为穿透点,智能NIC通过分析分组、插入分组、丢弃分组、插入或识别拥塞信息等,能够加速穿透网络流的性能。此外,智能NIC提供了轻量传送协议(LTP)模块,使得其能够与其他智能NIC建立连接。LTP连接允许智能NIC在不将网络业务穿透它们相应的主机的情况下交换数据。

【技术实现步骤摘要】
网络接口卡本申请是国际申请日为2016年6月23日、国际申请号为PCT/US2016/038839、国家申请号为201680033456.5、专利技术名称为“轻量传送协议”的专利技术专利申请的分案申请。
本申请总体涉及网络技术,更具体地涉及网络接口卡。
技术介绍
数据联网涉及硬件和软件。在软件方面,联网协议通常被设计用于当前或近期的硬件能力。在联网硬件改进的同时,协议通常变得广泛适应。处理器变得更有效率和能力,并且通信媒体获得可靠性和容量。随着时间的推移,过去设计的联网协议可能变得不太适合当前可用的硬件。例如,传送协议可能具有用于确保可靠性、对拥塞的响应以及有序递送的机制。这样的机制通常不太适合新型的网络。然而,为了保持持续的网络间可操作性,修改较旧的协议是不切实际的。存在对这样的技术的需要:该技术可以将联网技术的进步转化为可能较旧的协议的整体性能的改进,而不必改变那些协议或其现有的实现。而且,联网硬件的一些能力尚未被充分认识和实现。例如FPGA(现场可编程门阵列)NIC的所谓智能NIC(网络接口卡)已经变得越来越普遍。这些更加新的接口像传统的NIC一样提供物理和媒体连接性。它们还包括附加处理能力——有时以可重构电路(例如,FPGA)的形式。这些处理扩充的NIC可以允许一些协议的特征从主机的CPU(中央处理器)分流(offload)给NIC。一些智能NIC甚至可以允许整个传送协议从主机的CPU完全分流到智能NIC。但是,这种方法通常需要显著的主机侧的更改。例如,可能需要重新编写主机侧的软件,以便不经由标准传送协议而是经由定制应用编程接口(API)来直接与其NIC进行通信。此外,大多数具有分流功能性的智能NIC不能用作“线中碰上(bumpintheline)”(“内联(in-line)”)设备(即连接到主机的现有NIC的设备)。因此,为了将主机从普通NIC升级到智能NIC,必须用新的智能NIC物理替换主机的普通NIC。大规模的升级可能是昂贵且破坏性的。需要在不必要求改变主机侧的软件或硬件的情况下为主机提供智能NIC以改善网络和主机性能。此外,如仅被专利技术人所认识到的,智能NIC的开发也使得将应用级功能性分流到智能NIC成为可能。例如,分布式应用可能具有遍布整个数据中心的需要交换数据的部件。其中一些部件或者它们的帮助者代理可能能够被智能NIC执行。然而,还没有意识到内联智能NIC上的应用级代码(或其他代码)可能能够直接进行网络通信而无需遍历其各自的主机和主机网络堆栈。下面描述与上面提及的问题有关的技术。
技术实现思路
下面的概述仅被包括用以介绍在下面的详细描述中讨论的一些概念。本概述不是全面的,并且不旨在描绘由最后提出的权利要求所阐述的要求保护的主题的范围。智能NIC(网络接口卡)提供有使智能NIC能够作为主机的NIC和网络之间的内联NIC进行操作的特征。智能NIC为主机提供网络流的穿透(pass-through)传输。发送到主机以及从主机发送的分组传递通过智能NIC。作为穿透点,智能NIC通过分析分组、插入分组、丢弃分组,插入或识别拥塞信息等,能够加速穿透网络流的性能。此外,智能NIC提供了轻量传送协议(LTP)模块,使得其能够与其他智能NIC直接通信,而无需将网络业务穿透它们相应的主机。下面将参照结合附图考虑的以下详细描述来解释许多伴随的特征。附图说明从根据附图阅读的下面详细描述中将更好地理解本说明书,附图中的相同附图标记在所附说明书中用于指示相同的部分。图1示出了被布置为经由数据网络彼此通信的主机。图2示出了内联智能NIC的高级特征。图3示出了智能NIC的另一个视图。图4示出了交换机的细节。图5示出了轻量传送协议(LTP)模块的细节。图6示出了用于传输应用LTP数据的过程。具体实施方式下面描述的实施例涉及加速主机的网络流的内联智能NIC,该内联智能NIC为主机的网络流提供网络连接性。下面描述的实施例还启用NIC间直接网络通信。下面还描述了支持和增强这些特征的技术细节。图1示出了被布置为经由数据网络102彼此通信的主机100。主机100可以是能够作为网络流端点进行操作的任何类型的计算设备。主机100的形式并不重要(例如,刀片、服务器、工作站、膝上型计算机等),但是假定了处理硬件(例如,CPU、图形处理单元等)、存储硬件(例如,存储器、磁盘驱动器等),以及用于它们的协作的硬件(总线、输入/输出控制器和端口等)。对于本文的目的而言,数据网络102的细节不重要。例如,数据网络102在物理/链路级可以包括共享介质(例如,以太网)的段、一个或多个交换结构(例如无限带宽(InfinBand)或交换结构光纤信道)、令牌环等。可以使用能够在主机100或其他设备之间提供网络级路由的任何类型的已知数据网络102。为了讨论,数据网络102将被假定为是一个为具有指派给它们的相应IP地址的主机100提供IP路由的互联网协议(IP)网络。主机100提供有相应的智能NIC104。主机100可以具有它们自己的NIC(未示出),并且智能NIC104(其也可以被称为“内联NIC”)被配置为在主机NIC和数据网络102之间中继(intermediate)网络流106。例如,网络流106可以是传输控制协议(TCP)流。智能NIC104能够经由媒体/物理链路105来与数据网络102交换网络分组,并且能够经由到主机NIC的媒体/物理链路(未示出)来与其相应的主机100交换网络分组。如图1中所示,主机100能够使用中继的网络流106来与彼此(以及其他节点)进行通信。简而言之,主机100的智能NIC104将中继在主机100处终止的网络流106的分组。如下面进一步描述的,由智能NIC104提供的中继类型可以从不试图影响其网络流106的基本穿透逻辑到能够改善其网络流106的性能的穿透逻辑。如下面还将进一步描述的,智能NIC104可以实现轻量传送协议(LTP)。LTP是一种面向连接的协议,其提供低开销的可靠性和排序。如图1中所示,LTP连接108在智能NIC104处开始和结束,并且因此提供不给主机100造成负担的NIC间通信的形式,因为主机100不接收或以其他方式处理LTP分组。智能NIC104能够主动地:(i)打开和关闭LTP连接108,(ii)生成LTP分组,以及(iii)经由LTP连接108发送和接收LTP分组。图2示出了内联智能NIC104的高级特征。如上面所提及的,智能NIC104可以在主机100和数据网络102之间被内联布置(本文所使用的“内联”是用来标识智能NIC的类型的术语,并不意味着这种NIC目前连接到主机和网络)。特别而言,智能NIC104可以具有将智能NIC104与其主机100进行物理连接的第一物理/链路连接120。智能NIC还具有连接到数据网络102的第二物理/链路连接122。物理/链路连接可以各自为任何类型,例如以太网、光纤信道、无限带宽等。物理/链路连接也可以是无线介质。如参照图3所讨论的,本文档来自技高网
...

【技术保护点】
1.一种用以处理用于主机的网络流的第一网络接口卡(NIC),所述第一NIC包括:/n媒体接入控制器(MAC),被配置为连接到网络;/n处理硬件,被配置为通过将从所述主机接收的分组从所述MAC传输到所述网络、并且通过将由所述MAC从所述网络接收的分组传递到所述主机来传输所述网络流的分组;/n第一模块,被配置为实现轻量传送协议(LTP);以及/n第二模块,被配置为经由所述第一模块通过如下的方式来与任意第二NIC通信:(i)指定与所述第二NIC相对应的网络地址,以使得所述第一模块能够与所述第一NIC处和所述第二NIC处的端点建立LTP连接,以及(ii)通过所述LTP连接与所述第二NIC交换分组;并且/n所述处理硬件还被配置为区分所述网络流的分组和所述LTP连接的分组,其中根据分组的目的地而被确定为所述网络流的分组的分组通过被传送到所述主机并且通过被传送到所述网络而被处理,并且其中被确定为所述LTP连接的分组的分组由所述第一模块处理,而不被传送到所述主机或所述网络。/n

【技术特征摘要】
20150626 US 14/752,7131.一种用以处理用于主机的网络流的第一网络接口卡(NIC),所述第一NIC包括:
媒体接入控制器(MAC),被配置为连接到网络;
处理硬件,被配置为通过将从所述主机接收的分组从所述MAC传输到所述网络、并且通过将由所述MAC从所述网络接收的分组传递到所述主机来传输所述网络流的分组;
第一模块,被配置为实现轻量传送协议(LTP);以及
第二模块,被配置为经由所述第一模块通过如下的方式来与任意第二NIC通信:(i)指定与所述第二NIC相对应的网络地址,以使得所述第一模块能够与所述第一NIC处和所述第二NIC处的端点建立LTP连接,以及(ii)通过所述LTP连接与所述第二NIC交换分组;并且
所述处理硬件还被配置为区分所述网络流的分组和所述LTP连接的分组,其中根据分组的目的地而被确定为所述网络流的分组的分组通过被传送到所述主机并且通过被传送到所述网络而被处理,并且其中被确定为所述LTP连接的分组的分组由所述第一模块处理,而不被传送到所述主机或所述网络。


2.根据权利要求1所述的第一NIC,其中所述第二模块还被配置为向所述第一模块提供数据,并且所述第一模块还被配置为使所述第一NIC传输包含所述数据以作为有效载荷的LTP分组。


3.根据权利要求2所述的第一NIC,其中所述网络流的所述分组作为各个媒体帧的有效载荷由所述MAC接收和传输,其中所述LTP分组作为媒体帧的有效载荷由所述MAC传输,所述网络流的所述分组和所述LTP分组包括互联网协议(IP)分组。


4.根据权利要求1所述的第一NIC,其中所述网络流的所述分组包括传输控制协议TCP/IP分组,其中所述LTP分组被格式化为用户数据报协议(UDP)/IP分组,其中所述TCP/IP分组和所述LTP分组包括连接到所述第一NIC的所述主机计算机的IP地址,并且其中所述LTP分组包括所述主机计算机的所述IP地址和远程主机计算机的IP地址。


5.根据权利要求4所述的第一NIC,其中所述第二NIC被连接到所述远程主机计算机,其中所述远程主机计算机对应于远程IP地址,其中所述网络流中的一个网络流具有分别包括所述主机IP地址和所述远程IP地址的端点,其中所述第二NIC接收所述LTP分组,并且基于所述LTP连接的指示,将所述有效载荷数据传递到所述第二NIC中的端点模块并且不将所述有效载荷数据传递到所述远程主机,并且其中所述网络流中的所述一个网络流的所述TCP/IP分组被所述第二NIC穿透至所述远程主机。


6.根据权利要求1所述的第一NIC,其中所述网络地址以及第二网络地址两者均与所述第一NIC相关联,其中所述第二网络地址与所述主机相对应,其中所述网络地址与LTP连接端点相对应,其中所述LTP连接的所述分组被寻址到所述网络地址,并且其中所述网络流的所述分组被寻址到所述第二网络地址。


7.根据权利要求6所述的第一NIC,其中所述可重新配置的硬件电路包括现场可编程门阵列(FPGA)、专用集成电路、专用标准产品或片上系统(SoC)之一。


8.根据权利要求1所述的第一NIC,其中所述第一模块被配置为通过维护针对各个LTP连接的序列号来实现所述LTP,其中对于在对应的LTP连接上发送的每个LTP分组,序列号被递增,并且其中所述第一模块将所述LTP连接的序列号的值合并到所述LTP分组中。


9.根据权利要求1所述的第一NIC,其中所述第一模块被配置为通过以下操作来实现所述LTP:(i)缓存LTP分组,直到对应的确认LTP分组被接收,以及(ii)重新传输在超时时间段内没有被接收到的确认LTP分组的所缓存的LTP分组。


10.一种用于处理互联网协议(IP)流的网络接口卡(NIC),所述NIC被配置为连接到主机并且包括:
媒体接入控制器(MAC),被配置为连接到网络;
控制电路,被配置...

【专利技术属性】
技术研发人员:A·考尔菲尔德E·钟D·伯格D·邱
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1