一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

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

2022-05-18 07:44:39 来源:中国专利 TAG:

基于fpga的tcp/ip硬件卸载系统及其实现方法
技术领域
1.本发明涉及一种基于fpga的tcp/ip硬件卸载系统及其实现方法,属于互联网通讯技术领域。


背景技术:

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


技术实现要素:

5.本发明的目的在于提供一种基于fpga的tcp/ip硬件卸载系统,以减轻cpu对tcp/ip协议栈处理的负担,提高网络传输的速度与主机cpu的工作效率。
6.为实现上述目的,本发明提供了一种基于fpga的tcp/ip硬件卸载系统,所述tcp/ip硬件卸载系统包括用于实现tcp/ip协议栈解析的fpga、与fpga通讯连接的接口收发模块、以太网接口收发模块、与所述接口收发模块通讯连接的网络接口、与fpga通信连接且用于数据缓存的ddr外部存储器、以及pcie高速总线接口,所述pcie高速总线接口的两端分别与所述fpga和应用程序通讯连接;以在所述fpga内部完成arp缓存表的建立、icmp链路通路检查、tcp链路建立,以及tcp业务数据快速交互。
7.作为本发明的进一步改进,所述fpga包括用于建立arp缓存表并接收arp请求信息并应答和主动发送arp请求的arp协议模块、用于接受ping请求信息并应答和主动发送ping请求的icmp协议模块、tcp建联模块、tcp业务模块、配置寄存器模块、状态寄存器模块;所述arp协议模块、icmp协议模块、tcp建联模块、tcp业务模块、配置寄存器模块以及状态寄存器模块相互通讯连接。
8.作为本发明的进一步改进,所述接口收发模块为以太网接口收发模块。
9.作为本发明的进一步改进,所述网络接口为以太网接口。
10.本发明的目的还在于提供一种基于fpga的tcp/ip硬件卸载系统的实现方法,以应用前述的基于fpga的tcp/ip硬件卸载系统。
11.为实现上述目的,本发明提供了一种基于fpga的tcp/ip硬件卸载系统的实现方法,所述实现方法主要包括:
12.步骤1,将cpu上电,通过pcie总线,将源mac地址、源ip地址、目的ip地址、源端口号、网关ip以及子网掩码等信息配置到arp缓存表中;
13.步骤2,将使能信号发送到fpga,arp模块从arp缓存表中获取上述信息;
14.步骤3,arp协议模块接收arp请求信息并应答或主动发送arp请求进行arp建联;
15.步骤4,fpga系统在arp建联之后,从报文中提取出mac地址发送给tcp上、下行数据流模块,tcp上、下行数据流模块根据此mac地址与软件端通信;
16.步骤5,通过tcp建联模块对被动接收或主动发送的syn报文进行三次握手的处理建立tcp;
17.步骤6,建联后,tcp业务模块即可进行数据的发送与接收。
18.作为本发明的进一步改进,在步骤6中,tcp业务模块进行网络数据发送时,由主机通过pcie给出数据及控制信息,通过tcp业务模块将需要发送的数据进行tcp头部组包、ip头部组包以及以太网协议头部组包构成网络数据包,然后通过10g以太网收发模块将组好的网络数据包发送至10g以太网接口再发送到网络环境中。
19.作为本发明的进一步改进,在步骤6中,tcp业务模块进行网络数据接收时,由10g以太网收发模块通过10g以太网接口接收到网络数据包,并将网络数据包送给tcp业务模块进行crc字段切除、ip协议解析、tcp协议解析、tcp协议包乱序重组和以太网头部剥离等操作将网络数据包还原成裸数据,然后通过pcie将数据交于主机。
20.本发明的有益效果是:本发明的基于fpga的tcp/ip硬件卸载系统及其实现方法减轻了cpu对tcp/ip协议栈处理的负担,有效提高了网络传输的速度与主机cpu的工作效率。
附图说明
21.图1是本发明的基于fpga的tcp/ip硬件卸载系统的结构示意图。
22.图2是本发明的基于fpga的tcp/ip硬件卸载系统的系统逻辑框图。
具体实施方式
23.为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
24.如图1所示,本发明提供一种基于fpga的tcp/ip硬件卸载系统,在fpga内部能直接进行arp缓存表的建立,icmp链路通路检查,tcp链路建立,以及tcp业务数据快速交互等功能。
25.具体地,该系统包括用于实现tcp/ip协议栈解析的fpga,与fpga相连的10g以太网接口以及10g以太网收发模块,与fpga相连用于数据缓存的ddr外部存储器,以及与fpga相连用于与计算机互联的pcie高速总线接口。当然,本发明中的以太网接口还可以是其他网
络接口,以太网接口收发模块也可以是其他类型的接口收发模块,于此就不作过多限制。
26.再进一步地,fpga包括arp协议模块、icmp协议模块、tcp建联模块、tcp业务模块、配置寄存器模块、状态寄存器模块,各模块间相互连接。
27.更进一步地,该系统中主要模块的主要功能如下:arp协议模块主要功能为建立arp缓存表、接收arp请求信息并应答和主动发送arp请求。具体地,cpu上电后通过pcie总线将源mac地址、源ip地址、目的ip地址、源端口号、网关ip、子网掩码等信息配置到arp缓存表中,然后发出一个使能信号到fpga,arp模块就开始从arp缓存表中获取以上信息。icmp协议模块主要功能为接收ping请求信息并应答和主动发送ping请求。具体地,软件端或fpga返回类型字段值为0的icmp应答报文,说明网络正常连接,保证数据传输时链路通畅。
28.tcp建联模块主要功能为对被动接收和主动发送的syn报文进行三次握手建联的处理,以及对被动接收和主动发送的fin报文进行四次握手断联的处理。tcp业务模块主要功能为对接收到的数据包进行crc字段切除、ip协议解析、tcp协议解析、tcp协议包乱序重组和以太网头部剥离等,以及对需要发送的数据进行tcp头部组包、ip头部组包、以太网协议头部组包、tcp应答包发送和实现tcp重传机制。配置和状态寄存器为模块提供一个用于软件系统对toe的功能配置,状态监控处理等的通道。
29.本发明利用fpga可以进行大规模并行数据处理的优势,在fpga硬件平台实现网络数据包的快速解析,从而实现了网络数据传输的低延迟和高吞吐率。本发明利用fpga实现接收arp、icmp请求信息并应答和主动发送arp、icmp请求,包含apr、icmp、udp和tcp协议处理模块,各模块分别接收各自协议数据帧,独立解析帧头信息,去除以太网头部、ip头部以及各自协议头部,并进行帧头及数据校验。这里并没有遵从osi参考模型(open system interconnect reference model)按照功能进行分层处理,而是采用垂直的直接处理方法,以保证最小的处理延时。
30.如图2所示,本发明提供一种基于fpga的tcp/ip硬件卸载系统的实现方法,所述实现方法主要包括:
31.步骤1,将cpu上电,通过pcie总线,将源mac地址、源ip地址、目的ip地址、源端口号、网关ip以及子网掩码等信息配置到arp缓存表中;
32.步骤2,将使能信号发送到fpga,arp模块从arp缓存表中获取上述信息;
33.步骤3,arp协议模块接收arp请求信息并应答或主动发送arp请求进行arp建联;
34.步骤4,fpga系统在arp建联之后,从报文中提取出mac地址发送给tcp上、下行数据流模块,tcp上、下行数据流模块根据此mac地址与软件端通信;
35.步骤5,通过tcp建联模块对被动接收或主动发送的syn报文进行三次握手的处理建立tcp;
36.步骤6,建联后,tcp业务模块即可进行数据的发送与接收。
37.具体地,进行网络数据发送时,由主机通过pcie给出数据及控制信息,通过tcp业务模块将需要发送的数据进行tcp头部组包、ip头部组包以及以太网协议头部组包构成网络数据包,然后通过10g以太网收发模块将组好的网络数据包发送至10g以太网接口再发送到网络环境中。
38.进行网络数据接收时,由10g以太网收发模块通过10g以太网接口接收到网络数据包,并将网络数据包送给tcp业务模块进行crc字段切除、ip协议解析、tcp协议解析、tcp协
议包乱序重组和以太网头部剥离等操作将网络数据包还原成裸数据,然后通过pcie将数据交于主机。
39.综上所述,本发明的基于fpga的tcp/ip硬件卸载系统及其实现方法减轻了cpu对tcp/ip协议栈处理的负担,有效提高了网络传输的速度与主机cpu的工作效率。
40.以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献