一种基于FPGA面向TCP-IP协议栈的TOE加速系统技术方案

技术编号:38414227 阅读:11 留言:0更新日期:2023-08-07 11:18
本发明专利技术提供了一种基于FPGA面向TCP

【技术实现步骤摘要】
一种基于FPGA面向TCP

IP协议栈的TOE加速系统


[0001]本专利技术涉及TOE加速
,具体而言,涉及一种基于FPGA面向TCP

IP协议栈的TOE加速系统。

技术介绍

[0002]近些年,随着交易体量的指数型增长,金融交易面临庞大的交易数据量、密集的交易指令和交易时间集中的现状。海量的数据传输对交易所的服务器设备造成了巨大压力,加速技术的使用需求越来越普遍。在金融市场交易中,只有提升服务器的处理能力,客户才能更快速地完成交易。然而在数据传输过程中,服务器会针对金融数据进行TCP/IP协议栈、加密运算、解密运算和金融协议解析等处理,海量的数据传输会对服务器造成巨大的压力,服务器大量的资源会消耗在这些处理中,导致数据在传输过程中常常会出现延迟和丢包现象。因此,随着用户对交易延迟要求越来越高,在交易系统中可以使用专用的硬件加速技术代替CPU处理传输过程中的TCP/IP协议栈、加密解密及金融协议解析等处理,以满足交易系统的实时性处理要求。使用专门的硬件架构来实现规模较大且数据较为的密集的计算成为了金融市场能够快速且稳定完成交易的关键。

技术实现思路

[0003]为了至少解决上述
技术介绍
中存在的技术问题,本专利技术提供了一种基于FPGA面向TCP

IP协议栈的TOE加速系统,使得TCP/IP网络数据包的处理路径能够更加精简,大大降低CPU和I/O系统网络数据包的处理负荷,达到了消除处理器性能瓶颈的目的。
[0004]一种基于FPGA面向TCP

IP协议栈的TOE加速系统,所述系统包括TOE模块,所述TOE模块包括ARP/ICMP模块、TCP握手模块、TCP数据传输模块共三个功能模块,以及CPU interface模块和FIFO输出轮巡模块共两个配置模块;其中,
[0005]所述ARP/ICMP模块,用于ARP报文的主动发送和被动应答、ICMP报文的主动发送和被动应答;
[0006]所述TCP握手模块,用于TCP的握手建立和断开连接;
[0007]所述TCP数据传输模块,用于TCP业务报文的发送、接收、应答及心跳包的维护;
[0008]所述FIFO输出轮巡模块,用于将4路报文数据轮巡发送到MAC总线。
[0009]进一步地,所述ARP报文的主动发送和被动应答,具体包括:
[0010]1)通过目的IP地址广播查询网关MAC地址,或者局域网对端地址,即根据子网掩码来确认是网关还是局域网;
[0011]2)如果网络上有收到广播包的IP和MAC地址对应内容,将其记录;
[0012]3)跨网关必须查询或者被查询,因为不会收到局域网内的其他查询更新;
[0013]4)ARP报文应答支持所有来查询的应答,但只维护一个业务所用的ARP表。
[0014]进一步地,ICMP报文的主动发送和被动应答,具体包括:
[0015]1)如果ping的IP是局域网,直接组包发送或者被动接受;
[0016]2)如果ping的IP是广域网,直接组包发送给网关。
[0017]进一步地,所述TCP的握手建立和断开连接,具体包括:
[0018]1)ARP表没有时,禁止建联;
[0019]2)ARP表存在时,接受到配置的TCP建联请求后再进行建联;
[0020]3)在TCP建联并对方发送断连请求时,正常进行四次挥手断开连接;
[0021]4)在TCP建联并对方直接发送RST示意时,直接断开连接;
[0022]5)在TCP建联并接收到配置的TCP断连请求时,进行四次挥手断开连接。
[0023]进一步地,所述TCP业务报文的发送、接收、应答及心跳包的维护,具体包括:
[0024]1)TCP建联成功后,可以进行业务数据处理;
[0025]2)TCP建联断开后,停止业务数据处理;
[0026]3)TCP建联成功后会进行心跳包的维护,时间间隔可配;
[0027]4)实现TCP传输中保序和重传的功能。
[0028]进一步地,所述将4路报文数据轮巡发送到MAC总线,具体包括:
[0029]简单进行端口轮巡。
[0030]进一步地,所述TOE模块的硬件模块具体划分为toe_top子模块、arp_icmp_top子模块、tcp_connect_top子模块、tcp_trans_top子模块、toe_async_send子模块及toe_cfg子模块;其中,
[0031]所述toe_top子模块,用于实现整个建联过程,包括ARP、ICMP、TCP;
[0032]所述arp_icmp_top子模块,用于实现ARP和ICMP的功能,读取并输出目的MAC地址;
[0033]所述tcp_connect_top子模块,用于实现TCP的建联、断联功能;
[0034]所述tcp_trans_top子模块,用于实现TCP保序传输和心跳包维护的功能;
[0035]所述toe_async_send子模块,用于实现输出FIFO的轮巡输出;
[0036]所述toe_cfg子模块,用于实现所有接口的配置和维测。
[0037]本专利技术的有益效果在于:
[0038]与以往的FPGA解析架构相比,本专利技术使用TOE取代TCP/IP模块旨在:1)通过纯硬件的方式实现TCP的建立和数据传输,达到穿透延迟低、延迟波动低的效果;2)TOE通过网线直连,利用FPGA硬件处理报文,释放CPU空间,实现报文的快速解析与高速传输;3)TOE通过TCP协议进行建联,保证传输数据的准确性,解决TCP/IP模块遇到错误数据时没有自纠错能力的问题;4)FPGATOE整体架构及代码自行编写,可根据实际需要对其进行适配、优化和控制。
附图说明
[0039]为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本专利技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0040]图1是本专利技术实施例公开的一种基于FPGA面向TCP

IP协议栈的TOE加速系统的结构示意图;
[0041]图2是本专利技术实施例公开的TCP建联模块状态跳转流程图。
具体实施方式
[0042]为了使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术作进一步地详细描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利技术保护的范围。
[0043]在本专利技术实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本专利技术。在本专利技术实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于FPGA面向TCP

IP协议栈的TOE加速系统,其特征在于:所述系统包括TOE模块,所述TOE模块包括ARP/ICMP模块、TCP握手模块、TCP数据传输模块共三个功能模块,以及CPU interface模块和FIFO输出轮巡模块共两个配置模块;其中,所述ARP/ICMP模块,用于ARP报文的主动发送和被动应答、ICMP报文的主动发送和被动应答;所述TCP握手模块,用于TCP的握手建立和断开连接;所述TCP数据传输模块,用于TCP业务报文的发送、接收、应答及心跳包的维护;所述FIFO输出轮巡模块,用于将4路报文数据轮巡发送到MAC总线。2.根据权利要求1所述的一种基于FPGA面向TCP

IP协议栈的TOE加速系统,其特征在于:所述ARP报文的主动发送和被动应答,具体包括:1)通过目的I P地址广播查询网关MAC地址,或者局域网对端地址,即根据子网掩码来确认是网关还是局域网;2)如果网络上有收到广播包的I P和MAC地址对应内容,将其记录;3)跨网关必须查询或者被查询,因为不会收到局域网内的其他查询更新;4)ARP报文应答支持所有来查询的应答,但只维护一个业务所用的ARP表。3.根据权利要求1所述的一种基于FPGA面向TCP

IP协议栈的TOE加速系统,其特征在于:ICMP报文的主动发送和被动应答,具体包括:1)如果ping的IP是局域网,直接组包发送或者被动接受;2)如果ping的IP是广域网,直接组包发送给网关。4.根据权利要求1所述的一种基于FPGA面向TCP

IP协议栈的TOE加速系统,其特征在于:所述TCP的握手建立和断开连接,具体包括:1)ARP表没有时,禁止建联;2)ARP表存在时,接受到配置的TCP建联请求后再...

【专利技术属性】
技术研发人员:朱成燕李黎煌李建久张治国
申请(专利权)人:上海金仕达软件科技股份有限公司
类型:发明
国别省市:

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

1