基于FPGA的TCPIP卸载引擎与硬件系统设计

石华,吴惑,蔡鸥,余俊伟

指导老师:汪静

华东师范大学

 

概述

 

随着诸如云计算、大数据和物联网等趋势的广泛兴起,数据流量爆炸式增长,网络带宽也随之快速增长,目前 10G 以太网已经广泛普及。CPU如何来处理速度越来越快,流量越来越大的网络数据成为一个难点。加上当前国际形势的严峻性,随着“中兴华为”事件,中美贸易战进一步升级,核心技术和核心产品的重要性日益凸显。此外,核心网络设备也是网络安全的核心。随着Intel和Cisco的网络设备被爆出存在漏洞或后门,国内厂商也加快了研发自主核心网络设备的脚步。

为了解决当前国产CPU性能不够强大,有限的CPU资源难以处理超大流量的网络数据问题, TCP/IP 协议卸载引擎(以下简称TOE)技术成为突破点,即通过专用的硬件设备来处理复杂的网络数据,以降低CPU的压力,释放其资源。

针对上述现状和问题,本团队采用FPGA硬件逻辑,设计了一款完整的TCP/IP协议卸载引擎,支持ARPRARPICMP,IGMP,TCP,UDP等。还实现了与标准网卡设备的兼容性,支持与标准网卡设备互ping通信,互传文件;此外,本团队所设计的TCP卸载引擎还具有卓越的性能,对比市面上现有相关网卡产品有显著优势,体现在:整体功耗小于20W,延时低于80,文件传输速度可达700MBps。

作品设计中克服了以下难点:1.复杂的硬件系统设计;2.高速数字信号挑战;3.FPGA复杂时序约束;4.完整TCP/IP协议栈设计;5.PCIe事务处理;6.多平台、多语言编程。

实现了以下创新:1.自主设计硬件系统;2.自主设计完整TCP/IP协议栈;3.自主设计上位机驱动以及界面;4.实现TCP/IP协议可控子集并融入安全算法。

目前,本团队成员以学生第一作者申请5项国家发明专利,其中3项进入实质性审查;申请5项实用新型专利,其中3项已授权;授权了2项软件著作权。

综上,本团队采用FPGA纯硬件逻辑实现了TCP/IP协议卸载引擎并设计了对应的硬件系统,有三大优势:优势一、性能卓越。传输延时低于80,传输速度可达700MBps;优势二、可兼容市面现有标准网卡设备,可与标准设备互ping通信,并支持文件传送;优势三、移植数字鉴权、文件加密等算法,确保文件传输安全。

 

主要创新点

 

1. 自主设计硬件系统

本团队自主设计了复杂的硬件系统来实现作品功能。采用ZYNQ作为核心处理器,并融合NetFPGA架构,实现异构性,拓展性。本系统融合了NetFPGA架构中对数据平面和控制平面的处理机制,在对4路SFP+的万兆数据和1路PCIe的CPU-FPGA共享数据处理中,保证了大于6Gbps的网络数据带宽和50%的DMA效率,系统的数据处理延时达到了级。本系统利用ZYNQ和CPU进行多种异构数据的协调和调度,实现了异构性。此外,本系统能够支持各种SDN(软件定义网络)通信设备的开发以及板卡的定制,具有很强的拓展性。

2. 自主实现完整TCP/IP协议栈

本团队基于FPGA硬件逻辑,通过近2万行Verilog代码实现了完整的TCP/IP协议栈功能卸载本系统通过FPGA纯硬件逻辑实现完整标准的TCP/IP协议栈,克服了ASIC芯片方案周期长,投入成本高的缺陷,以及基于软核的嵌入式方案吞吐率低、速度慢的缺陷。支持ARPRARPICMP,IGMP,TCP,UDP等协议,可与标准网卡设备通信并互传文件。

3. 自主设计上位机驱动以及界面

本团队基于WinDriver自主开发了该卸载引擎的上位机驱动程序,实现了中断处理、DMA控制以及文件操作等功能,降低了CPU压力;此外,基于Node.js、MongoDB和JavaScript设计了人性化的WEB界面为设备的配置与功能操作提供接口。

4. 实现TCP/IP协议可控子集并融入安全算法

本团队通过对底层网络协议栈的重构,支持ARPRARPICMP,IGMP,TCP,UDP等协议卸载,并实现对各协议的过滤,实现了标准协议子集可控;此外,融合数字鉴权和流式传输加密等算法来实现设备安全与传输安全。

5. 专利和论文

目前,本团队成员以学生第一作者申请5项国家发明专利(其中3项进入实质性审查),申请5项实用新型专利(其中3项已授权),2项软件著作权授权,并发表中文核心期刊论文1篇。该系统得到了学术和应用层面的多项认可。

 

系统架构

 

1. 系统方案

本系统采用FPGA纯硬件逻辑的方式实现TCP/IP卸载引擎设计。预期达到如表2-1所示的性能指标。

2-1 预期目标

项目

指标(性能和功能)

整机功耗

<20W

吞吐率

40Gbps

光纤接口

4路SFP/SFP+

PCIe接口

PCIe2.0,40Gbps(5Gbps

系统时延

<80

安全

数字鉴权和传输加密算法

协议卸载

完整TCP/IP协议栈,包含:ARP,RARP,ICMP,IGMP,TCP,UDP等

配置模式

Web远程配置

如图2-1所示,为系统的整体结构框图。

2-1系统结构框图

系统框图中包含三台服务器,左边的服务器标记为A,中间的标记为B,右边的标记为C。A、C两台服务器主板上插的为本团队自主设计TOE板卡,B服务器插的是Intel公司产生的82599万兆网卡。A、C两台服务器之间通过万兆光纤进行连接,通过自主设计TOE板卡对TCP/IP协议栈进行卸载,并提取网络数据payload,可支持互ping通信以及TCP、UDP互传文件等操作;此外,A、C两台插自主设计TOE板卡的设备均可通过光纤与插Intel82599网卡的标准设备进行通信。

2. 基于ZYNQ的硬件实施方案 

为实现上述系统,本系统硬件接口需要驱动4路SFP/SFP+光口,1路PCIe2.0接口,并需要高速DDR3对超大流量网络数据进行缓存,故需要强大的硬件资源来提供以上高速接口;此外,一方面为保障设备合法性和传输的安全性,需要移植数字鉴权和传输加密等算法,另外一方面为了对设备工作状态进行配置和管理,需要灵活的CPU资源来对上述功能进行调度和管理。

传统方案有FPGA+ARM的板级系统,但是该方案的劣势在于FPGA和ARM的板级通信瓶颈,两块核心芯片之间的工作的协议和调度不够灵活,且该方案存在板级面积大,成本高的缺陷。

出于上述考虑和权衡,本设计选用了Xilinx的ZYNQ7000系列的Soc,该系列集成 ARM处理器的软件可编程性与 FPGA 的硬件可编程性的特点,不但可以实现信号处理与硬件加速,而且可以实现CPU的功能。可以在一片芯片上既实现逻辑控制,又实现处理的工作。本系统采用的是型号是XC7Z045-2FFG900C,共有506个IO口。Programmable Logic (以下简称PL)端基于Kintex7内核的FPGA,拥有350K逻辑单元,218600查找表,437200触发器,8个MMCM,8个PLL,19.2Mb内部RAM,PCIe2.08接口。Processing  System(以下简称PS)端拥有双ARM A9内核,最高主频800MHz,片内内存256KB,支持DDR3接口,8个DMA通道。如此丰富的资源保障整个系统运行的高效,低延时和稳定。

3. 基于NetFPGA的硬件逻辑设计方案

本系统FPGA硬件逻辑设计基于NetFPGA架构,并依据RFC标准文档对TCP/IP协议栈进行移植。

ZYNQ的PL,主要负责接收原生网络数据,并提取有效数据payload,进行格式转化和数据加密,最终转发至主机端。内部数据流通过AXI-Stream总线传递,控制流通过AXI-Lite总线传递。万兆以太网数据流从SFP+进入,经过多级FIFO进行跨时钟域、消除亚稳态,DDR3中进行高速缓存,并通过中断方式DMA上传至主机内存。

此外,数字鉴权以及系统工作状态的配置需要通过ZYNQ的PS端进行灵活的调度。ZYNQ内部PL端与PS端的交互数据通过EMIO千兆网口、DMA等方式传递

4. 前端Web服务器技术方案

Web应用程序由基于Chrome V8 JavaScript引擎的Node.js平台构建。

Web应用程序由两部分构成:后台服务器程序、前台客户端程序。其中后台服务程序主要负责处理用户的命令、处理业务数据逻辑、通过网络与下位机通信、向前台用户发送显示页面等功能。前台程序负责向用户提供直观的图形化界面以及简单的业务逻辑处理。其中,后台服务程序是在搭建的服务器端运行,而前台程序则由用户的浏览器进行解析运行。

多个前台客户端可同时与上位机服务器相连接,而上位机服务器可同时与多个嵌入式系统相连接。实现多用户同时操作上位机与多嵌入式系统进行通信。连接拓扑见图2-2。

2-2 基于Web应用程序的上位机连接拓扑

 

设计演示

 

1. 测试环境

系统测试框图如下图5-5所示。

5-5 系统测试环境

系统测试实物图如图5-6所示。

5-6系统测试实物图 

测试系统框图与测试系统实物图一一对应。

并对各部分局部放大特写如下所示。

5-7设备A实物图

5-8设备B实物图

5-9设备C实物图

2. 协议栈测试

1Ping测试

设备A可通过本作品TOE板卡与插Intel 82599网卡的设备B进行ping通信,并在wireshark进行抓包验证。如图5-10所示。

5-10设备A与设备B ping测试

2TCP连接

此外,插本作品TOE板卡的设备A可与设备B上的网络调试助手进行通信。此处展示的通过TCP协议进行连接。图5-11为在设备B上的网络调试助手连接示意图,图5-12展示的是在设备B上通过wireshark对TCP协议的握手和挥手包抓包测试结果。

5-11网络调试助手连接成功 

5-12 TCP的握手包和挥手包 

通过与Intel 82599万兆网卡以及和网络调试助手的通信,表明本作品TOE板卡可与标准设备进行通信,兼容当前标准协议栈。

3. 文件传输测试

以下通过设备A与设备C进行互传文件测试。两台设备主板上插的均是本作品TOE板卡,通过万兆光纤进行连接。

(1)TCP文件传输

首先演示的是通过TCP协议进行传输。通过上位机WEB界面进行配置,并选择对应文件进行发送。结果表明,平均传输速度可达386MBps,且文件完整性验证通过,传输过程中0误码。图5-13TCP发送速度截图.

5-13 TCP发送平均速度

(2)UDP文件传输

随后演示的是UDP协议传输。由于UDP协议无连接,也没有ACK和重传机制,故平均发送速度会远远快于TCP协议。测试结果表明,本系统采用UDP发送文件时,平均传输速度可达938MBps。测试结果如图5-14所示。

5-14 UDP传输平均速度

4. 鉴权加密测试

为保证设备和传输过程的安全性,本作品创造性地在TOE技术中融合了数字鉴权与流式传输加密等安全算法与技术。

鉴权成功

本作品板卡支持数字鉴权功能,可通过WEB界面进行操作。接下来通过图片来介绍整个鉴权过程。

首先在设备A“启动安全模式”,并选择“发起鉴权”功能,与此同时,在设备C“启动安全模式”,并选择“等待鉴权”功能。此后,底层硬件会通过数字鉴权流程来启动数字鉴权功能。由于设备A和设备C为本系统合法设备,故最后可以鉴权成功。

5-15设备A选择“发起鉴权”

5-16设备C选择“等待鉴权”

5-17设备A正在“发起鉴权” 

5-18设备C等待数字鉴权

5-19双方鉴权成功鉴权失败

若鉴权双方中存在非法设备,那么鉴权就会失败;或者两台合法设备,其中有一台没有“启动安全模式”并进行相应操作,也会导致鉴权失败。一旦“启动安全模式”,如果不是鉴权成功,那原本界面关于发送和接收的配置按钮都将被禁用,在硬件底层也会禁止一切数据流交互。

5-20鉴权失败

5-21发送配置按钮被禁用

5-22接收文件按钮被禁用

发布时间:2019-10-09 23:14
浏览量:0
点赞
收藏
Home    Catalog    2019 研电赛    基于FPGA的TCPIP卸载引擎与硬件系统设计