促进网络接口控制器(NIC)中的高效包转发的系统和方法技术方案

技术编号:31014023 阅读:22 留言:0更新日期:2021-11-30 02:21
提供了一种能够进行高效包转发的网络接口控制器(NIC)。所述NIC可以配备有主机接口、包生成逻辑块和转发逻辑块。在操作期间,所述包生成逻辑块可以经由所述主机接口从所述主机设备为远程设备获得消息。所述包生成逻辑块可以根据所述消息生成针对所述远程设备的多个包。然后,所述转发逻辑块可以基于有序传送来发送所述多个包的第一包子集。如果满足第一条件,则所述转发逻辑块可以基于无序传送来发送所述多个包的第二包子集。此外,如果满足第二条件,则所述转发逻辑块可以基于有序传送来发送所述多个包的第三包子集。发送所述多个包的第三包子集。发送所述多个包的第三包子集。

【技术实现步骤摘要】
【国外来华专利技术】促进网络接口控制器(NIC)中的高效包转发的系统和方法

技术介绍


[0001]本公开总体上涉及联网
更具体地,本公开涉及用于促进在网络接口控制器(NIC)中进行高效包转发的系统和方法。
[0002]相关技术
[0003]随着支持网络的设备和应用变得越来越普遍,各种类型的流量以及不断增加的网络负载继续要求底层网络架构提供更高的性能。例如,诸如高性能计算(HPC)、流媒体和物联网(IOT)等应用可以产生具有鲜明特征的不同类型的流量。因此,除了诸如带宽和延迟等传统网络性能指标外,网络架构师仍继续面临诸如可扩展性、多功能性和效率等挑战。

技术实现思路

[0004]提供了一种能够进行高效包转发的网络接口控制器(NIC)。所述NIC可以配备有主机接口、包生成逻辑块和转发逻辑块。所述主机接口可以使主机设备耦接。在操作期间,所述包生成逻辑块可以经由所述主机接口从所述主机设备为远程设备获得消息。所述包生成逻辑块可以根据所述消息生成针对所述远程设备的多个包。然后,所述转发逻辑块可以基于有序传送来发送所述多个包的第一包子集。如果满足第一条件,则所述转发逻辑块可以基于无序传送来发送所述多个包的第二包子集。此外,如果满足第二条件,则所述转发逻辑块可以基于有序传送来发送所述多个包的第三包子集。
附图说明
[0005]图1示出了示例性网络。
[0006]图2A示出了具有多个NIC的示例性NIC芯片。
[0007]图2B示出了NIC的示例性架构。
[0008]图3A示出了NIC中到无序包转发的示例性切换。
[0009]图3B示出了NIC中到有序包转发的示例性切换。
[0010]图4A示出了用于在NIC中进行输入输出输入(IOI)包转发的消息选择过程的流程图。
[0011]图4B示出了NIC中的IOI包转发过程的流程图。
[0012]图4C示出了NIC中用于最后一个包的IOI包转发过程的流程图。
[0013]图5示出了配备有促进高效包转发的NIC的示例性计算机系统。
[0014]在这些附图中,相同的附图标记指代相同的附图元素。
具体实施方式
[0015]对所公开实施例的各种修改对于本领域技术人员来说将是显而易见的,并且在不脱离本公开的精神和范围的情况下,本文定义的一般原理可以应用于其他实施例和应用。
因此,本专利技术不限于所示实施例。
[0016]概述
[0017]本公开描述了促进在网络接口控制器(NIC)中进行高效包转发的系统和方法。NIC允许主机与数据驱动的网络进行通信。网络可以通过维持各个包流的状态信息以快速、有效的拥塞控制来适应动态数据流量。更具体地,注入交换机网络中的包可以被分类到流中,这些流可以映射到它们的层2、层3或其他特定于协议的报头信息。每个流可以用交换机的输入端口本地的不同标识符进行标记,并设置有特定于流的输入缓冲区,以便每个流可以单独进行流控制。另外,相应流中的包可以在到达网络的出口点时进行确认,而确认的包可以沿着相同的数据路径以相反的方向被发送回所述流的入口点。因此,每个交换机都可以获得其正在转发的活动包流的状态信息,并且可以执行高响应性、特定于流的流控制。这种流控制可以允许网络以更高的容量操作,同时提供通用的流量工程能力。
[0018]本文描述的实施例通过以下方式来解决高效转发有序包流的问题:(i)按顺序转发所述流中的初始的一组包和最后的一组包;以及(ii)针对所述流中的其余包切换到无序转发。通过这种方式,NIC可以促进有序传送所述流中的第一个包和最后一个包,并无序传送所述流中的中间包。
[0019]在操作期间,可以在NIC的源设备上运行的应用程序可以发出指示对远程目标设备的存储器位置进行数据操作(例如,远程直接存储器访问(RDMA)的“GET”或“PUT”命令)的消息。源设备和目标设备的NIC可以分别被称为源NIC和目标NIC。操作可以是幂等操作或非幂等操作。幂等操作可以执行一次以上,而不会导致错误。另一方面,非幂等操作可以执行一次。将非幂等操作执行一次以上可能会导致错误。通常,如果幂等RDMA操作没有完成,则目标设备的软件(例如,操作系统)可以重放所述操作,而不是目标NIC执行所述操作。
[0020]指示操作的消息可以是可以经由多个包传输的大消息。消息语义可能需要有序地传送这些包。例如,与存储器访问相关的消息可能需要按顺序传送包。然而,有序传送可能会产生大量的开销(诸如通过预定路径进行传输、严格执行按顺序进行包传输以及对乱序包进行包丢弃),这可能会导致数据转发效率低下。因此,有序传送大消息会对性能产生不利影响。
[0021]为了解决这一问题,源NIC可以对消息使用有序包传送和无序包传送两者,以提高性能,同时保持消息边界的顺序。特别地,如果消息是针对幂等操作,则NIC可以基于无序传送来发送其中一些包。在操作期间,源NIC可能会接收到大于最大发射单元(MTU)的消息。因此,源NIC可以基于MTU根据消息生成多个包。由于多个包可以在其各自的有效载荷中包括消息的一部分,因此这些包可以被称为包流。然后,源NIC可以确定消息(或包流中的包)的大小是否大于大小阈值。在一些实施例中,大小阈值可以对应于传输时间大于源NIC与目标NIC之间往返时间(RTT)两倍的大小。NIC可以基于RTT和有效带宽动态地确定阈值。当第一响应返回到NIC时,NIC可以基于未完成的有序包的数量和大小来测量RTT和有效带宽。
[0022]如果消息大小大于大小阈值,则源NIC可以对包流启动输入输出输入(IOI)包传输。为了促进IOI包传输,源NIC可以转发初始的一组包以进行有序传送。这些包中的每一个都可以包括序列号和指示按顺序传送的指示符。目标NIC可以接收一个或多个包,并发出对应的响应。由于这些包是有序包,因此响应也可以是累积响应。然而,由于响应可能不是有序的,因此源NIC会接收到任何一个响应。基于接收到的第一响应,源NIC可以确定目标NIC
已成功接收到所述响应的序列号以内的所有包。
[0023]然后,源NIC可以针对后续包切换到无序传送。当剩余包的数量变得小于切换阈值(即,消息结尾的包)时,源NIC可以切换回有序传送。在一些实施例中,切换阈值可以指示未完成包的数量。未完成的包是源NIC尚未接收到响应的包。为了进一步确保最后一个包按顺序传送,源NIC可以不发送包流中的最后一个包,直到源NIC已经接收到对所有无序包的响应。通过这种方式,源NIC可以使用IOI包传输,其可以结合有序包传送和无序包传送两者,从而促进对大消息进行高效包转发。
[0024]本专利技术的一个实施例提供了一种NIC,所述NIC可以配备有主机接口、包生成逻辑块和转发逻辑块。所述主机接口可以使主机设备耦接。在操作期间,所述包生成逻辑块可以经由所述主机接口从所述主机设备为远程设备获得消息。所述包生成逻辑块可以根据所述消息生成针对所述远程设备的多个包。然后,所述转发逻辑块可以基于有序传送来发送所述多个包的第一包子集。如果满足第一本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种网络接口控制器(NIC),包括:主机接口;以及包生成逻辑块,所述包生成逻辑块耦接到所述主机接口并用于:经由所述主机接口从主机设备为远程设备获得消息;以及根据所述消息生成以所述远程设备为目的地的多个包;转发逻辑块,所述转发逻辑块用于:基于有序传送来发送所述多个包的第一包子集;响应于第一条件,基于无序传送来发送所述多个包的第二包子集;以及响应于第二条件,基于有序传送来发送所述多个包的第三包子集。2.如权利要求1所述的网络接口控制器,其中,所述包生成逻辑块进一步用于确定所述消息的大小大于第一阈值。3.如权利要求1所述的网络接口控制器,其中,触发所述第一条件包括从所述远程设备接收对所述第一包子集中的一个包的响应。4.如权利要求1所述的网络接口控制器,其中,触发所述第二条件包括确定所述第三包子集中的包数量小于第二阈值。5.如权利要求4所述的网络接口控制器,其中,所述第二阈值指示所述第一包子集和所述第二包子集中的未完成包的数量。6.如权利要求1所述的网络接口控制器,其中,所述转发逻辑块进一步用于:识别所述第三包子集中的最后一个包;以及不发送所述最后一个包,直到接收到对所述第二包子集中所有包的相应响应为止。7.如权利要求1所述的网络接口控制器,其中,所述第一包子集、所述第二包子集和所述第三包子集以非重叠顺序发送。8.如权利要求1所述的网络接口控制器,其中,所述转发逻辑块进一步用于:维持指示所述第一包子集和所述第三包子集中未完成包的数量的第一计数器;以及维持指示所述第二包子集中未完成包的数量的第二计数器。9.如权利要求1所述的网络接口控制器,其中,所述转发逻辑块进一步用于在所述第一包子集和所述第三包子集中的相应包中设置标志,其中,所述标...

【专利技术属性】
技术研发人员:R
申请(专利权)人:慧与发展有限责任合伙企业
类型:发明
国别省市:

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

1