实现多连接管理的TCP协议全卸载IP核的方法及系统技术方案

技术编号:22725967 阅读:12 留言:0更新日期:2019-12-04 07:08
本发明专利技术提供了一种实现多连接管理的TCP协议全卸载IP核的方法及系统,包括:hash值生成步骤、连接管理步骤、发送管理步骤、定时器管理步骤。本发明专利技术实现TCP协议卸载的IP核,可以连接不同类型的总线作为协议处理器;使用本IP核可以在如FPGA硬件上获取TCP的网络数据,利用这些数据连接算法加速、动态重构等模块获得支持网络控制和数据收发的功能。

The method and system of fully uninstalling IP core in TCP protocol for multi connection management

The invention provides a method and a system for realizing the TCP protocol of multi connection management to completely unload the IP core, including: hash value generation step, connection management step, transmission management step and timer management step. The IP core to realize TCP protocol offloading can connect different types of buses as protocol processors; the IP core can obtain TCP network data on FPGA hardware, and use these data connection algorithms to accelerate, dynamically reconstruct and other modules to obtain functions supporting network control and data transmission.

【技术实现步骤摘要】
实现多连接管理的TCP协议全卸载IP核的方法及系统
本专利技术涉及通信
,具体地,涉及实现多连接管理的TCP协议全卸载IP核方法及系统。
技术介绍
以千兆/万兆以太网为代表的高速以太网目前正广泛应用于数据交换中心、数据视频广播等需要高带宽数据的场合,并且可以有效实现网络上大数据量汇聚和链路聚合。在众多的以太网传输层。TCP协议是面向连接的。由于采用了连接管理的机制,对于数据传输采用了确认机制,对于成块数据流采用滑动窗口协议,所以可以在实现高带宽的情况下提供可靠的网络连接。随着网络速度的提升,使用普通网卡进行TCP的高速数据传输会占用大量的CPU资源,就出现了许多TCP卸载的方案。常见的有带有TCP卸载功能的网卡。这类网卡的方案具很多优点。首先,这些方案软硬件都比较成熟,易于实现。带宽性能也比较好。但是这一方案中如果要利用TOE网卡卸载的数据,就必须经过网卡的搬运到上位机的内存,然后再从上位机内存获取,这就会造成数据的多次搬移。使用FPGA进行TCP卸载的方案。一种方案时是带有嵌入式SOC的FPGA的方案。但是这仅仅是将TCP放到了FPGA内部的嵌入式CPU上实现。一方面获取的数据也要多次搬移,另一方面也很难达到较高的带宽。还有FPGA硬件实现TCP卸载的方案。目前开源的IP核存在的问题主要是对大量TCP连接的管理,一方面支持的连接数比较少。另一方面存在着单条连接可以支持的最大传输速率不高的问题。最后TCP卸载方案应该是面向TCP连接的,TCP每条连接的数据流的管理需要有TCP连接管理支撑。>但是实现大量TCP的连接管理和数据流的处理不能采用简单的硬件的并行处理来实现。因此IP核应该有设计一种有效的硬件架构,可以在TCP/IP的传输层就可以实现高效的TCP连接管理。最后,为了可以与其它FPGA的IP互联,这个IP还支持各类AXI的接口定义术语和缩写:Ramrandomaccessmemory随机存储器FIFOfirstinputfirstoutputmemory先入先出存储器10Gbps10Gbitspersecond万兆比特每秒AXIAdvancedeXtensibleInterface先进可扩展TCPTransmissionControlProtocol传输控制协议
技术实现思路
针对现有技术中的缺陷,本专利技术的目的是提供一种实现多连接管理的TCP协议全卸载IP核的方法及系统。根据本专利技术提供的一种支持多连接管理的TCP协议全卸载IP核方法,包括:hash值生成步骤:根据四元组进行hash计算后得到hash值,分配hash值为TCP连接号;连接管理步骤:根据分配的TCP连接号查找当前TCP连接号对应的TCP参数,根据TCP状态转移图新的状态,然后判断下一步操作;发送管理步骤:根据连接管理步骤分配TCP连接状态,建立TCP发送缓存的队列,对所述队列进行遍历以产生发送操作;定时器管理步骤:遍历所以TCP连接的连接控制定时器与报文定时器,并且需要更新所有的定时器做自减操作,发现有定时器超时则将超时请求写入请求队列连接管理,如果TCP状态发生变化,则将要更新TCP连接参数表,如果发现发送数据没有及时ACK的定时超时,或者平静时间的超时等定时器超时,那么需要更新TCP数据发送/数据接收参数表,如果状态转移以后需要等待3次超时、或者TCP状态变化后需要建立新的定时器,那么需要更新定时器。优选地,所述hash值生成步骤包括:采用两组hash表缓存,第一组缓存使用hash函数计算hash索引,第二组缓存采用类似线性探测再散列法的方法,线性分配缓存空间;对于TCP连接释放回收的索引重新进入分配空间;当需要匹配TCP连接号时,首先查找第一组缓存搜索是否存在hash值,当没有时就以当前hash值分配TCP序列号,当发现索引已经分配,就到第二组缓存搜索是否存在,如果已经存在则线性的向后寻找,直到找到没有被分配的索引,则分配新的TCP连接号。优选地,所述连接管理步骤中的下一步操作包括:更新TCP连接状态、更新定时器状态、更新TCP数据接收数据或者删除接收数据操作或更新TCP发送数据操作。优选地,所述发送管理步骤包括:发送操作首先产生读取FPGA外接内存数据的的操作,当获取待发送的数据之后,则发送请求队列到TCP数据组包的模块;发送窗口的更新操作以及发送定时器RTO、RTT的更新操作是在TCP连接建立以后接收到ACK包时产生的。优选地,所述四元组包括:源IP地址、目的IP地址、源端口号和目的端口号;对于主动发起连接,指定源IP地址、目的IP地址、源端口号和目的端口号;对于被动建立连接,发现建立连接的请求就从TCP报文中获得四元组。根据本专利技术提供的一种支持多连接管理的TCP协议全卸载IP核系统,包括:hash值生成模块:根据四元组进行hash计算后得到hash值,分配hash值为TCP连接号;连接管理模块:根据分配的TCP连接号查找当前TCP连接号对应的TCP参数,根据TCP状态转移图新的状态,然后判断下一步操作;发送管理模块:根据连接管理模块分配TCP连接状态,建立TCP发送缓存的队列,对所述队列进行遍历以产生发送操作;定时器管理模块:遍历所以TCP连接的连接控制定时器与报文定时器,并且需要更新所有的定时器做自减操作,发现有定时器超时则将超时请求写入请求队列连接管理,如果TCP状态发生变化,则将要更新TCP连接参数表,如果发现发送数据没有及时ACK的定时超时,或者平静时间的超时等定时器超时,那么需要更新TCP数据发送/数据接收参数表,如果状态转移以后需要等待3次超时、或者TCP状态变化后需要建立新的定时器,那么需要更新定时器。优选地,所述hash值生成模块包括:采用两组hash表缓存,第一组缓存使用hash函数计算hash索引,第二组缓存采用类似线性探测再散列法的方法,线性分配缓存空间;对于TCP连接释放回收的索引重新进入分配空间;当需要匹配TCP连接号时,首先查找第一组缓存搜索是否存在hash值,当没有时就以当前hash值分配TCP序列号,当发现索引已经分配,就到第二组缓存搜索是否存在,如果已经存在则线性的向后寻找,直到找到没有被分配的索引,则分配新的TCP连接号。优选地,所述连接管理模块中的下一步操作包括:更新TCP连接状态、更新定时器状态、更新TCP数据接收数据或者删除接收数据操作或更新TCP发送数据操作。优选地,所述发送管理模块包括:发送操作首先产生读取FPGA外接内存数据的的操作,当获取待发送的数据之后,则发送请求队列到TCP数据组包的模块;发送窗口的更新操作以及发送定时器RTO、RTT的更新操作是在TCP连接建立以后接收到ACK包时产生的。优选地,所述四元组包括:源IP地址、目的IP地址、源端口号和目的端口号;...

【技术保护点】
1.一种支持多连接管理的TCP协议全卸载IP核方法,其特征在于,包括:/nhash值生成步骤:根据四元组进行hash计算后得到hash值,分配hash值为TCP连接号;/n连接管理步骤:根据分配的TCP连接号查找当前TCP连接号对应的TCP参数,根据TCP状态转移图新的状态,然后判断下一步操作;/n发送管理步骤:根据连接管理步骤分配TCP连接状态,建立TCP发送缓存的队列,对所述队列进行遍历以产生发送操作;/n定时器管理步骤:遍历所以TCP连接的连接控制定时器与报文定时器,并且需要更新所有的定时器做自减操作,发现有定时器超时则将超时请求写入请求队列连接管理,如果TCP状态发生变化,则将要更新TCP连接参数表,如果发现发送数据没有及时ACK的定时超时,或者平静时间的超时等定时器超时,那么需要更新TCP数据发送/数据接收参数表,如果状态转移以后需要等待3次超时、或者TCP状态变化后需要建立新的定时器,那么需要更新定时器。/n

【技术特征摘要】
1.一种支持多连接管理的TCP协议全卸载IP核方法,其特征在于,包括:
hash值生成步骤:根据四元组进行hash计算后得到hash值,分配hash值为TCP连接号;
连接管理步骤:根据分配的TCP连接号查找当前TCP连接号对应的TCP参数,根据TCP状态转移图新的状态,然后判断下一步操作;
发送管理步骤:根据连接管理步骤分配TCP连接状态,建立TCP发送缓存的队列,对所述队列进行遍历以产生发送操作;
定时器管理步骤:遍历所以TCP连接的连接控制定时器与报文定时器,并且需要更新所有的定时器做自减操作,发现有定时器超时则将超时请求写入请求队列连接管理,如果TCP状态发生变化,则将要更新TCP连接参数表,如果发现发送数据没有及时ACK的定时超时,或者平静时间的超时等定时器超时,那么需要更新TCP数据发送/数据接收参数表,如果状态转移以后需要等待3次超时、或者TCP状态变化后需要建立新的定时器,那么需要更新定时器。


2.根据权利要求1所述的支持多连接管理的TCP协议全卸载IP核方法,其特征在于,所述hash值生成步骤包括:
采用两组hash表缓存,第一组缓存使用hash函数计算hash索引,第二组缓存采用类似线性探测再散列法的方法,线性分配缓存空间;
对于TCP连接释放回收的索引重新进入分配空间;
当需要匹配TCP连接号时,首先查找第一组缓存搜索是否存在hash值,当没有时就以当前hash值分配TCP序列号,当发现索引已经分配,就到第二组缓存搜索是否存在,如果已经存在则线性的向后寻找,直到找到没有被分配的索引,则分配新的TCP连接号。


3.根据权利要求1所述的支持多连接管理的TCP协议全卸载IP核方法,其特征在于,所述连接管理步骤中的下一步操作包括:
更新TCP连接状态、更新定时器状态、更新TCP数据接收数据或者删除接收数据操作或更新TCP发送数据操作。


4.根据权利要求1所述的支持多连接管理的TCP协议全卸载IP核方法,其特征在于,所述发送管理步骤包括:
发送操作首先产生读取FPGA外接内存数据的的操作,当获取待发送的数据之后,则发送请求队列到TCP数据组包的模块;
发送窗口的更新操作以及发送定时器RTO、RTT的更新操作是在TCP连接建立以后接收到ACK包时产生的。


5.根据权利要求1所述的支持多连接管理的TCP协议全卸载IP核方法,其特征在于,所述四元组包括:源IP地址、目的IP地址、源端口号和目的端口号;
对于主动发起连接,指定源IP地址、目的IP地址、源端口号和目的端口号;
对于被动建立连接,发现建立连接的请求就从TCP报文中获得四元组。

【专利技术属性】
技术研发人员:周江朱敏洁居晓清俞则人钟友军屈磊
申请(专利权)人:华东计算技术研究所中国电子科技集团公司第三十二研究所
类型:发明
国别省市:上海;31

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

1