zl程序教程

您现在的位置是:首页 >  APP

当前栏目

智能网卡最新进展:第5层协议卸载

2023-03-07 09:12:54 时间

(一)FPGA智能网卡市场分析报告

(二)Xilinx篇

(三)Intel篇

(四)不服篇

(五)用户篇

(六)赛道篇

(七)存储篇

简介:ASPLOS是计算机系统结构领域的顶级国际会议,涉及体系结构、硬件、编程语言、编译器、操作系统和网络等多个方向,尤其重视不同方向之间的交叉。ASPLOS一直属于中国计算机学会(CCF)推荐的A类国际会议。2021年的ASPLOS大会 Distinguished paper award获得者来自于Nvidia/Mellanox的网卡团队。

摘要:

CPU经常将网络相关的处理任务,比如数据包分拆和校验卸载到网卡上处理,这样可以释放宝贵的CPU周期,所以利用网卡进行卸载有多种优势。

但是,它们的适用性通常仅限于4层协议以下(TCP和更低层的协议),而对于建立在TCP之上的第5层协议(layer-5 protocols:L5Ps)则不适用。这种限制是由于我们称之为 "卸载依赖 "的错误特性造成的,它决定了L5P的卸载还需要卸载底层的≤4层协议和相关功能,TCP, IP, 防火墙等。

注:在TCP之上的第五层网络协议(L5P)是一种常见的、应用广泛的协议。包括:1)传输安全(TLS)加密协议,该协议通过https为浏览器等提供安全通信;2)NVMe-TCP等存储协议,该协议允许系统将远程磁盘驱动器用作本地块设备;3)远程过程调用(RPC)协议,比如Thrift和gRPC;4)key-value 存储协议,比如Memcached和MongoDB。

L5P卸载的依赖性阻碍了创新,因为这意味着复杂的、不断变化的底层协议需要硬连接来实现。

我们提出了 "自主网卡卸载",它消除了卸载的依赖性。自主卸载设计了一个轻量级的软件设备架构,可以加速L5P但不需要将整个≤4层的TCP/IP协议栈移植到NIC中。

注:自主卸载的基本思路是让L5P和网卡在对中间TCP/IP堆栈透明的情况下共同处理L5P消息(可能包括多个TCP段)。当发送消息时,L5P代码 "跳过 "执行卸载的操作,从而将 "错误的 "字节从堆栈传递给网卡。然后由NIC执行上述被跳过的操作,从而在链路上发送正确的信息。在反方向,在对TCP/IP协议栈无感知的情况下,由NIC而不是L5P来解析传入的消息,并同样执行卸载的操作。

自主卸载解决的一个主要挑战是如何应对失序的数据包。我们对两个L5P进行了自主卸载。

(i) NVMe-over-TCP零拷贝和CRC计算;

(ii) https认证、加密和解密;

我们的自主卸载将吞吐量提高了3.3倍,而且它们的CPU消耗和延迟分别降至0.4倍和0.7倍。

并非所有的L5P都可以自动卸载。NVIDIA在最新一代的Mellanox ConnectX ASIC网卡中实现了TLS自动卸载,包括TLS认证、加密和解密功能;NVM-TCP自主卸载将在下一个模型中发布,支持接收端的数据放置(因此用于零拷贝)和两端的CRC计算和验证。