基于FPGA的TCP/IP硬件卸载系统及其实现方法技术方案

技术编号:33536652 阅读:15 留言:0更新日期:2022-05-19 02:19
本发明专利技术提供了一种基于FPGA的TCP/IP硬件卸载系统及其实现方法,所述TCP/IP硬件卸载系统包括用于实现TCP/IP协议栈解析的FPGA、与FPGA通讯连接的接口收发模块、以太网接口收发模块、与所述接口收发模块通讯连接的网络接口、与FPGA通信连接且用于数据缓存的DDR外部存储器、以及PCIE高速总线接口,所述PCIE高速总线接口的两端分别与所述FPGA和应用程序通讯连接;以在所述FPGA内部完成ARP缓存表的建立、ICMP链路通路检查、TCP链路建立,以及TCP业务数据快速交互。本发明专利技术的基于FPGA的TCP/IP硬件卸载系统及其实现方法减轻了CPU对TCP/IP协议栈处理的负担,有效提高了网络传输的速度与主机CPU的工作效率。主机CPU的工作效率。主机CPU的工作效率。

【技术实现步骤摘要】
基于FPGA的TCP/IP硬件卸载系统及其实现方法


[0001]本专利技术涉及一种基于FPGA的TCP/IP硬件卸载系统及其实现方法,属于互联网通讯


技术介绍

[0002]国际互联网标准TCP/IP是发展至今最成功的通信协议,现已成为互联网络的基础。据统计,网络中95%数据包使用了TCP/IP协议。随着网络技术和网络带宽的不断提升,网络应用的性能需求表现为高吞吐量、低延迟、高带宽、低主机开销和低存储开销等特点。为了解决核心处理器在处理海量网络数据时资源占用率高且效率低下的问题,采用专用的硬件设备或处理器完成网络数据处理成为一个热门的研究方向,这也是硬件加速在网络通信上的重要应用。
[0003]现有的核心处理器处理海量网络数据的压力越来越大。解包/封报,失序报文的重组,内存数据的密集拷贝以及中断服务都给计算机的CPU带来了巨大的压力,在高速网络中,CPU必须以牺牲应用程序运行所需的资源为代价来处理网络协议。在海量数据传输及低延迟的场景中,CPU已经无法满足大众的需求。而使用具备TCP/IP协议栈的ASIC芯片虽可以满足需求,但是ASIC开发周期过长,且拓展性差。采用嵌入式软件实现TCP/IP协议栈,即微处理器外接以太网控制器和以太网物理芯片的方式则属于软件实现TCP/IP协议栈方式,仅能应用于数据吞吐率低、侧重功能实现的场合。此外,还有一种进行TCP/IP协议栈解析的技术是使用具备TCP/IP协议栈解析能力的ASIC芯片。这些硬件式TCP/IP芯片给予用户使用上的极大便利,同时却带来拓展性差、不够灵活的问题,甚至可能存在网络安全隐患。
[0004]有鉴于此,确有必要提出一种基于FPGA的TCP/IP硬件卸载系统,以解决上述问题。

技术实现思路

[0005]本专利技术的目的在于提供一种基于FPGA的TCP/IP硬件卸载系统,以减轻CPU对TCP/IP协议栈处理的负担,提高网络传输的速度与主机CPU的工作效率。
[0006]为实现上述目的,本专利技术提供了一种基于FPGA的TCP/IP硬件卸载系统,所述TCP/IP硬件卸载系统包括用于实现TCP/IP协议栈解析的FPGA、与FPGA通讯连接的接口收发模块、以太网接口收发模块、与所述接口收发模块通讯连接的网络接口、与FPGA通信连接且用于数据缓存的DDR外部存储器、以及PCIE高速总线接口,所述PCIE高速总线接口的两端分别与所述FPGA和应用程序通讯连接;以在所述FPGA内部完成ARP缓存表的建立、ICMP链路通路检查、TCP链路建立,以及TCP业务数据快速交互。
[0007]作为本专利技术的进一步改进,所述FPGA包括用于建立ARP缓存表并接收ARP请求信息并应答和主动发送ARP请求的ARP协议模块、用于接受Ping请求信息并应答和主动发送Ping请求的ICMP协议模块、TCP建联模块、TCP业务模块、配置寄存器模块、状态寄存器模块;所述ARP协议模块、ICMP协议模块、TCP建联模块、TCP业务模块、配置寄存器模块以及状态寄存器模块相互通讯连接。
[0008]作为本专利技术的进一步改进,所述接口收发模块为以太网接口收发模块。
[0009]作为本专利技术的进一步改进,所述网络接口为以太网接口。
[0010]本专利技术的目的还在于提供一种基于FPGA的TCP/IP硬件卸载系统的实现方法,以应用前述的基于FPGA的TCP/IP硬件卸载系统。
[0011]为实现上述目的,本专利技术提供了一种基于FPGA的TCP/IP硬件卸载系统的实现方法,所述实现方法主要包括:
[0012]步骤1,将CPU上电,通过PCIE总线,将源MAC地址、源IP地址、目的IP地址、源端口号、网关IP以及子网掩码等信息配置到ARP缓存表中;
[0013]步骤2,将使能信号发送到FPGA,ARP模块从ARP缓存表中获取上述信息;
[0014]步骤3,ARP协议模块接收ARP请求信息并应答或主动发送ARP请求进行ARP建联;
[0015]步骤4,FPGA系统在ARP建联之后,从报文中提取出MAC地址发送给TCP上、下行数据流模块,TCP上、下行数据流模块根据此MAC地址与软件端通信;
[0016]步骤5,通过TCP建联模块对被动接收或主动发送的SYN报文进行三次握手的处理建立TCP;
[0017]步骤6,建联后,TCP业务模块即可进行数据的发送与接收。
[0018]作为本专利技术的进一步改进,在步骤6中,TCP业务模块进行网络数据发送时,由主机通过PCIE给出数据及控制信息,通过TCP业务模块将需要发送的数据进行TCP头部组包、IP头部组包以及以太网协议头部组包构成网络数据包,然后通过10G以太网收发模块将组好的网络数据包发送至10G以太网接口再发送到网络环境中。
[0019]作为本专利技术的进一步改进,在步骤6中,TCP业务模块进行网络数据接收时,由10G以太网收发模块通过10G以太网接口接收到网络数据包,并将网络数据包送给TCP业务模块进行CRC字段切除、IP协议解析、TCP协议解析、TCP协议包乱序重组和以太网头部剥离等操作将网络数据包还原成裸数据,然后通过PCIE将数据交于主机。
[0020]本专利技术的有益效果是:本专利技术的基于FPGA的TCP/IP硬件卸载系统及其实现方法减轻了CPU对TCP/IP协议栈处理的负担,有效提高了网络传输的速度与主机CPU的工作效率。
附图说明
[0021]图1是本专利技术的基于FPGA的TCP/IP硬件卸载系统的结构示意图。
[0022]图2是本专利技术的基于FPGA的TCP/IP硬件卸载系统的系统逻辑框图。
具体实施方式
[0023]为了使本专利技术的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本专利技术进行详细描述。
[0024]如图1所示,本专利技术提供一种基于FPGA的TCP/IP硬件卸载系统,在FPGA内部能直接进行ARP缓存表的建立,ICMP链路通路检查,TCP链路建立,以及TCP业务数据快速交互等功能。
[0025]具体地,该系统包括用于实现TCP/IP协议栈解析的FPGA,与FPGA相连的10G以太网接口以及10G以太网收发模块,与FPGA相连用于数据缓存的DDR外部存储器,以及与FPGA相连用于与计算机互联的PCIE高速总线接口。当然,本专利技术中的以太网接口还可以是其他网
络接口,以太网接口收发模块也可以是其他类型的接口收发模块,于此就不作过多限制。
[0026]再进一步地,FPGA包括ARP协议模块、ICMP协议模块、TCP建联模块、TCP业务模块、配置寄存器模块、状态寄存器模块,各模块间相互连接。
[0027]更进一步地,该系统中主要模块的主要功能如下:ARP协议模块主要功能为建立ARP缓存表、接收ARP请求信息并应答和主动发送ARP请求。具体地,CPU上电后通过PCIE总线将源MAC地址、源IP地址、目的IP地址、源端口号、网关IP、子网掩码等信息配置到ARP缓存表中,然后发出一个使能信号到F本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于FPGA的TCP/IP硬件卸载系统,其特征在于:所述TCP/IP硬件卸载系统包括用于实现TCP/IP协议栈解析的FPGA、与FPGA通讯连接的接口收发模块、以太网接口收发模块、与所述接口收发模块通讯连接的网络接口、与FPGA通信连接且用于数据缓存的DDR外部存储器、以及PCIE高速总线接口,所述PCIE高速总线接口的两端分别与所述FPGA和应用程序通讯连接;以在所述FPGA内部完成ARP缓存表的建立、ICMP链路通路检查、TCP链路建立,以及TCP业务数据快速交互。2.根据权利要求1所述的基于FPGA的TCP/IP硬件卸载系统,其特征在于:所述FPGA包括用于建立ARP缓存表并接收ARP请求信息并应答和主动发送ARP请求的ARP协议模块、用于接受Ping请求信息并应答和主动发送Ping请求的ICMP协议模块、TCP建联模块、TCP业务模块、配置寄存器模块、状态寄存器模块;所述ARP协议模块、ICMP协议模块、TCP建联模块、TCP业务模块、配置寄存器模块以及状态寄存器模块相互通讯连接。3.根据权利要求1所述的基于FPGA的TCP/IP硬件卸载系统,其特征在于:所述接口收发模块为以太网接口收发模块。4.根据权利要求1所述的基于FPGA的TCP/IP硬件卸载系统,其特征在于:所述网络接口为以太网接口。5.一种基于FPGA的TCP/IP硬件卸载系统的实现方法,其特征在于:所述实现方法应用于权利要求1

4任意一项所述的基于FPGA的TCP/I...

【专利技术属性】
技术研发人员:王堃梁成龙陈思光张载龙
申请(专利权)人:南京邮电大学
类型:发明
国别省市:

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

1