CN110535827A - 实现多连接管理的tcp协议全卸载ip核的方法及系统 - Google Patents

实现多连接管理的tcp协议全卸载ip核的方法及系统 Download PDF

Info

Publication number
CN110535827A
CN110535827A CN201910647425.4A CN201910647425A CN110535827A CN 110535827 A CN110535827 A CN 110535827A CN 201910647425 A CN201910647425 A CN 201910647425A CN 110535827 A CN110535827 A CN 110535827A
Authority
CN
China
Prior art keywords
tcp
connection
update
timer
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910647425.4A
Other languages
English (en)
Other versions
CN110535827B (zh
Inventor
周江
朱敏洁
居晓清
俞则人
钟友军
屈磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CETC 32 Research Institute
Original Assignee
CETC 32 Research Institute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CETC 32 Research Institute filed Critical CETC 32 Research Institute
Priority to CN201910647425.4A priority Critical patent/CN110535827B/zh
Publication of CN110535827A publication Critical patent/CN110535827A/zh
Application granted granted Critical
Publication of CN110535827B publication Critical patent/CN110535827B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

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

Description

实现多连接管理的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的接口
定义术语和缩写:
Ram random access memory 随机存储器
FIFO first input first output memory 先入先出存储器
10Gbps 10Gbits per second 万兆比特每秒
AXI Advanced eXtens ible Interface 先进可扩展
TCP Transmi ssion Control Protocol 传输控制协议
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种实现多连接管理的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地址、源端口号和目的端口号;
对于主动发起连接,指定源IP地址、目的IP地址、源端口号和目的端口号;
对于被动建立连接,发现建立连接的请求就从TCP报文中获得四元组。
与现有技术相比,本发明具有如下的有益效果:
1)实现TCP协议卸载的IP核,可以连接不同类型的总线作为协议处理器;
2)使用本IP核可以在如FPGA硬件上获取TCP的网络数据,利用这些数据连接算法加速、动态重构等模块获得支持网络控制和数据收发的功能。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为TCP连接hash产生管理流程图;
图2为TCP连接管理流程图;
图3为TCP连接发送管理流程图;
图4为TCP连接定时器管理流程图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
本发明提供的实现多连接管理的TCP协议全卸载IP核的方法,接管理以及TCP数据块的聚合分包在FPGA硬件实现,提供接口可以进行配置和动态调整。TOE(TCP OffloadEngine,TCP卸载引擎)实现方法虚须经过如下几个步骤:
步骤一:
hash值的生成。hash值根据4元组:源IP地址、目的IP地址,源端口号、目的端口号进行hash计算后生成。同时会建立2组hash值缓存用于hash值的匹配查找、生成与删除操作。第一组hash值缓存直接通过计算4元组获得。hash值生成后可能发生碰撞,此时将碰撞的hash值写入第二组hash值缓存,第二组缓存的位置就认为是二次hash的值,是顺序生成与释放的。释放后的缓存位置重新排队等待使用。第二组hash值缓存需标记缓存来源(前一个相同hash值所在的位置),标记后续是否有相同hash值的位置。用于查找已存在的hash值。
关于四元组:对于主动发起连接,会指定源IP地址、目的IP地址,源端口号(在可用范围内顺序生成,释放后回收进buffer重新使用)、目的端口号。对于被动建立连接的情况,发现建立连接的请求就从TCP报文中获得4元组。
步骤二:
关于连接管理:根据计算得到的hash值取得连接参数表的位置。根据TCP连接当前所处的状态与接收到的报文判断:
是否已存在的连接,如果存在:是否需要状态转移,如果不存在,判断是否需要建立连接,不能建立连接即丢弃。TCP状态写回:需要更新连接参数表的参数放入更新队列(fifo,first input first output memory先入先出存储器)。
数据报文是否需要存入本地TCP连接的数据流接收缓存。对于符合存入条件的报文进行存入更新队列(fifo)。否则标记丢弃。是否需要更新接收参数表,如果需要更新放入更新队列(fifo)。
是否需要更新发送参数表,如果需要更新放入更新队列(fifo)。
对于之前3个步骤可能产生的定时器更新、定时器更改的操作,根据TCP连接号放入更新队列(fifo)。
TCP连接都会分配独立的接收缓存与发送缓存。
步骤三:
关于数据接收:接收缓存区开辟在DDR内,根据收到数据包的序列号(TCP序列号SN)存入相应位置偏移,并记录乱序情况。处理接收参数表中的窗口大小,同时更新响应序列号(ACK SN)的值。
关于数据发送:发送队列分为数据块队列与TCP动作报文队列。单个TCP数据包与动作报文仲裁发送。同时对已经建立连接需要发送数据块(简单报文与大数据块)的,将连接号写入循环缓存(fifo组)。循环缓存中需要发送的部分在循环缓存(fifo组)的读端口生成命令,查询发送控制寄存器获取发送数据的位置和大小等待发送。缓存中只有建立了TCP连接并且需要发送数据的有效连接,因此遍历一次的时间会和有效连接的数量成比例。也就是说有效连接的数量越少,发送命令越快出现,这样实现分配有效TCP发送带宽的目的。最后需要更新发送参数表中的响应序列号(ACK SN)、发送窗口等信息。
步骤四:
关于定时器:每一个TCP连接都需要建立这两种定时器的缓存。连接控制定时器控制连接建立释放的过程,每一个时刻每一条TCP连接只有一种连接控制定时器。每一条TCP连接同时可能存在多种报文定时器。因此每个时间片都会对所有连接号的定时器进行扫描。
如果发现某条连接建立了定时器,那么需要进行定时器值的更新。如果更新时发现定时器超时,则写入定时器触发事件的缓存。更新连接参数表、接收参数表与发送参数表内的参数,触发TCP连接状态转移,触发零窗口报文、数据接收的响应报文、建立连接过程中出现超时的响应报文、超时关闭报文等动作报文。
TCP连接IP核寄存器组管理。还需要对接收缓存与发送缓存进行管理,该协议IP核提供了两种方式:在发送与接收数据时,IP核自身会将当前缓存的位置寄存器更新。同时这种更新也可以通过外部寄存器操作完成。在寄存器分组中设置了控制权寄存器。双方谁获得寄存器组的控制权则可以更改这些寄存器,否则需要等待寄存器更改的控制权释放。
ARP模块:维护最大深度为512条ARP记录的ARP表。支持插入删除操作,有ARP定时器。可以调节ARP删除操作的时间。对于长期没有查询与更新操作的ARP表项,支持定时器超时删除与寄存器配置删除。ARP所有表项在以太网报文接收时都会查询,在TCP主动或者被动建立连接时都会判断。并且支持来自其他模块的查询请求,如果发现没有查到则会主动发送ARP请求,也支持通过寄存器配置发送。
作为IP核我们实现了分别支持主/从模式的2个Axi lite接口,以及支持主模式读和主模式写的Axi full接口。这样使得TCP卸载的IP核易于与其他xilinx的IP核互联,实现复杂功能。比如说DMA搬移,FPGA功能重构,计算加速等等。
下面说明TCP卸载IP核的具体实现。
如图1所示,使用Hash索引的方式获取TCP连接的TCP连接号的方法。
hash索引是通过计算四元组产生的。为了解决hash碰撞的问题。采用两组hash表缓存。第一组缓存使用hash函数计算hash索引,第二组缓存采用类似线性探测再散列法的方法,线性分配缓存空间。对于TCP连接释放回收的索引重新进入分配空间。因此当需要匹配TCP连接号时,首先查找第一组hash缓存搜索是否存在hash值(101),当没有时就以当前hash值分配TCP序列号。当发现索引已经分配,就到第二组缓存搜索是否存在(102),如果已经存在则线性的向后寻找。直到找到没有被分配的索引。则分配新的TCP连接号。
TCP连接管理的实现方法。
如图2所示,根据分配的TCP连接号查找当前TCP连接号对应的TCP参数(201)。参数表缓存源端口号、目的端口号、源IP、目的IP、发送序列号、响应序列号(ACK SN)、窗口大小、TCP连接当前所处的状态等信息。根据TCP状态转移图就可以判断新的状态。(202)然后判断下一步操作。会产生以下几种操作,包括更新TCP连接状态(203)、更新定时器状态(204)、更新TCP数据接收数据或者删除接收数据操作(205)、更新TCP发送数据操作(206)。
TCP数据发送管理的实现:
如图3所示,根据TCP连接管理分配TCP连接状态,包括连接的4元组、连接的接收窗口、响应序列号(ACK SN)等等信息建立TCP发送缓存的队列(301)。对该队列进行遍历以产生发送操作。发送操作首先是产生读取FPGA外接内存数据的的操作(302)。(303)当获取待发送的数据之后,则发送请求队列到TCP数据组包的模块。发送窗口的更新操作以及发送定时器RTO、RTT的更新操作是在TCP连接建立以后接收到ACK包时产生的。
TCP定时器的管理:
如图4所示,TCP定时器分为两大类:连接控制定时器与报文定时器。连接控制定时器在TCP的某个状态下只有一种,因此只需要标识当前TCP的链接控制定时器的类型。而报文定时器会有多种,因此当前链接会需要建立一组TCP报文定时器。定时器管理模块首先遍历所以TCP连接的连接控制定时器与报文定时器(401)。并且需要更新所有的定时器做自减操作,发现定时器超时则将超时请求写入请求队列(402)。TCP定时器超时信息进入TCP连接管理模块,如果TCP状态发生变化,比如说超时关闭连接,等待数返回等操作,则将要更新TCP连接参数表(403)。如果发现发送数据没有及时ACK的定时超时,或者平静时间的超时等定时器超时,那么需要更新TCP数据发送/数据接收参数表。如果状态转移以后需要等待3次超时、或者TCP状态变化后需要建立新的定时器,那么需要更新TCP定时器(404)。
以上时TCP连接管理的主要技术实现的说明。
在上述一种实现多连接管理的TCP协议全卸载IP核的方法的基础上,本发明还提供一种实现多连接管理的TCP协议全卸载IP核的系统,包括:
hash值生成模块:根据四元组进行hash计算后得到hash值,分配hash值为TCP连接号;
连接管理模块:根据分配的TCP连接号查找当前TCP连接号对应的TCP参数,根据TCP状态转移图新的状态,然后判断下一步操作;
发送管理模块:根据连接管理模块分配TCP连接状态,建立TCP发送缓存的队列,对所述队列进行遍历以产生发送操作;
定时器管理模块:遍历所以TCP连接的连接控制定时器与报文定时器,并且需要更新所有的定时器做自减操作,发现有定时器超时则将超时请求写入请求队列连接管理,如果TCP状态发生变化,则将要更新TCP连接参数表,如果发现发送数据没有及时ACK的定时超时,或者平静时间的超时等定时器超时,那么需要更新TCP数据发送/数据接收参数表,如果状态转移以后需要等待3次超时、或者TCP状态变化后需要建立新的定时器,那么需要更新定时器。
实施举例1:
与高速总线连接,可以通过配置TCP连接参数发起TCP连接管理域数据发送。也可以接收TCP数据。增加到CPU内存的DMA模块可以为CPU实现TCP协议栈的卸载。并且减少CPU处理TCP数据流和TCP连接管理的时间。
实施举例2:
单独的作为FPGA的某种功能性的IP和,则可以通过TCP连接获取数据和控制命令。然后配置FPGA内部的其它加速模块与动态重构模块,发起加速处理与重构。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

Claims (10)

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报文中获得四元组。
6.一种支持多连接管理的TCP协议全卸载IP核系统,其特征在于,包括:
hash值生成模块:根据四元组进行hash计算后得到hash值,分配hash值为TCP连接号;
连接管理模块:根据分配的TCP连接号查找当前TCP连接号对应的TCP参数,根据TCP状态转移图新的状态,然后判断下一步操作;
发送管理模块:根据连接管理模块分配TCP连接状态,建立TCP发送缓存的队列,对所述队列进行遍历以产生发送操作;
定时器管理模块:遍历所以TCP连接的连接控制定时器与报文定时器,并且需要更新所有的定时器做自减操作,发现有定时器超时则将超时请求写入请求队列连接管理,如果TCP状态发生变化,则将要更新TCP连接参数表,如果发现发送数据没有及时ACK的定时超时,或者平静时间的超时等定时器超时,那么需要更新TCP数据发送/数据接收参数表,如果状态转移以后需要等待3次超时、或者TCP状态变化后需要建立新的定时器,那么需要更新定时器。
7.根据权利要求6所述的支持多连接管理的TCP协议全卸载IP核系统,其特征在于,所述hash值生成模块包括:
采用两组hash表缓存,第一组缓存使用hash函数计算hash索引,第二组缓存采用类似线性探测再散列法的方法,线性分配缓存空间;
对于TCP连接释放回收的索引重新进入分配空间;
当需要匹配TCP连接号时,首先查找第一组缓存搜索是否存在hash值,当没有时就以当前hash值分配TCP序列号,当发现索引已经分配,就到第二组缓存搜索是否存在,如果已经存在则线性的向后寻找,直到找到没有被分配的索引,则分配新的TCP连接号。
8.根据权利要求6所述的支持多连接管理的TCP协议全卸载IP核系统,其特征在于,所述连接管理模块中的下一步操作包括:
更新TCP连接状态、更新定时器状态、更新TCP数据接收数据或者删除接收数据操作或更新TCP发送数据操作。
9.根据权利要求6所述的支持多连接管理的TCP协议全卸载IP核系统,其特征在于,所述发送管理模块包括:
发送操作首先产生读取FPGA外接内存数据的的操作,当获取待发送的数据之后,则发送请求队列到TCP数据组包的模块;
发送窗口的更新操作以及发送定时器RTO、RTT的更新操作是在TCP连接建立以后接收到ACK包时产生的。
10.根据权利要求6所述的支持多连接管理的TCP协议全卸载IP核系统,其特征在于,所述四元组包括:源IP地址、目的IP地址、源端口号和目的端口号;
对于主动发起连接,指定源IP地址、目的IP地址、源端口号和目的端口号;
对于被动建立连接,发现建立连接的请求就从TCP报文中获得四元组。
CN201910647425.4A 2019-07-17 2019-07-17 实现多连接管理的tcp协议全卸载ip核的方法及系统 Active CN110535827B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910647425.4A CN110535827B (zh) 2019-07-17 2019-07-17 实现多连接管理的tcp协议全卸载ip核的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910647425.4A CN110535827B (zh) 2019-07-17 2019-07-17 实现多连接管理的tcp协议全卸载ip核的方法及系统

Publications (2)

Publication Number Publication Date
CN110535827A true CN110535827A (zh) 2019-12-03
CN110535827B CN110535827B (zh) 2021-08-24

Family

ID=68660701

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910647425.4A Active CN110535827B (zh) 2019-07-17 2019-07-17 实现多连接管理的tcp协议全卸载ip核的方法及系统

Country Status (1)

Country Link
CN (1) CN110535827B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111147198A (zh) * 2020-01-02 2020-05-12 中科驭数(北京)科技有限公司 数据重传方法和装置
CN112019645A (zh) * 2020-07-06 2020-12-01 中科驭数(北京)科技有限公司 基于toe的网络地址管理方法及装置
CN112953967A (zh) * 2021-03-30 2021-06-11 扬州万方电子技术有限责任公司 网络协议卸载装置和数据传输系统
CN113630338A (zh) * 2021-07-29 2021-11-09 济南浪潮数据技术有限公司 一种处理smb请求的方法、系统、设备及介质
CN113900790A (zh) * 2020-06-22 2022-01-07 中创为(成都)量子通信技术有限公司 一种自适应动态清理需老化tcp连接的方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101253745A (zh) * 2005-07-18 2008-08-27 博通以色列研发公司 用于透明tcp卸载的方法和系统
CN101841545A (zh) * 2010-05-14 2010-09-22 中国科学院计算技术研究所 一种tcp流重组拼包方法和装置
CN102014005A (zh) * 2010-12-17 2011-04-13 天津曙光计算机产业有限公司 一种利用多级内存查找方式进行tcp连接管理的方法
KR20110070750A (ko) * 2009-12-18 2011-06-24 한국전자통신연구원 안전한 tcp 연결 관리 장치 및 방법
CN103414714A (zh) * 2013-08-07 2013-11-27 华为数字技术(苏州)有限公司 一种报文处理方法、装置和设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101253745A (zh) * 2005-07-18 2008-08-27 博通以色列研发公司 用于透明tcp卸载的方法和系统
KR20110070750A (ko) * 2009-12-18 2011-06-24 한국전자통신연구원 안전한 tcp 연결 관리 장치 및 방법
CN101841545A (zh) * 2010-05-14 2010-09-22 中国科学院计算技术研究所 一种tcp流重组拼包方法和装置
CN102014005A (zh) * 2010-12-17 2011-04-13 天津曙光计算机产业有限公司 一种利用多级内存查找方式进行tcp连接管理的方法
CN103414714A (zh) * 2013-08-07 2013-11-27 华为数字技术(苏州)有限公司 一种报文处理方法、装置和设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
季勇: ""高性能TCP协议处理的硬件设计与实现"", 《万方学位论文》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111147198A (zh) * 2020-01-02 2020-05-12 中科驭数(北京)科技有限公司 数据重传方法和装置
CN111147198B (zh) * 2020-01-02 2021-05-25 中科驭数(北京)科技有限公司 数据重传方法和装置
CN113900790A (zh) * 2020-06-22 2022-01-07 中创为(成都)量子通信技术有限公司 一种自适应动态清理需老化tcp连接的方法
CN112019645A (zh) * 2020-07-06 2020-12-01 中科驭数(北京)科技有限公司 基于toe的网络地址管理方法及装置
CN112019645B (zh) * 2020-07-06 2021-07-30 中科驭数(北京)科技有限公司 基于toe的网络地址管理方法及装置
CN112953967A (zh) * 2021-03-30 2021-06-11 扬州万方电子技术有限责任公司 网络协议卸载装置和数据传输系统
CN113630338A (zh) * 2021-07-29 2021-11-09 济南浪潮数据技术有限公司 一种处理smb请求的方法、系统、设备及介质

Also Published As

Publication number Publication date
CN110535827B (zh) 2021-08-24

Similar Documents

Publication Publication Date Title
CN110535827A (zh) 实现多连接管理的tcp协议全卸载ip核的方法及系统
US5940596A (en) Clustered address caching system for a network switch
USRE44151E1 (en) Switching ethernet controller
EP1005739B1 (en) Shared memory management in a switched network element
CN101015187B (zh) 在网络协议处理的卸载中支持连接建立的设备和方法
JP4068166B2 (ja) 高性能多層スイッチ要素用探索エンジン・アーキテクチャ
US6799200B1 (en) Mechanisms for efficient message passing with copy avoidance in a distributed system
CN107948094A (zh) 一种高速数据帧无冲突入队处理的装置及方法
US20040111486A1 (en) Distributed cache between servers of a network
CN101350771A (zh) 三态内容可寻址存储器条目免排序存储方法及其系统
JPH04233356A (ja) 複数個のプロセッサとシステムメモリ手段とを含むネットワークアダプタのための装置、ネットワーク制御装置、制御方法
EP1002397A1 (en) A highly integrated multi-layer switch element architecture
CN101227341A (zh) Linux系统上以太网卡快速捕包的方法
US6877049B1 (en) Integrated FIFO memory management control system using a credit value
CN105993148B (zh) 网络接口
CN102375789B (zh) 一种通用网卡非缓存的零拷贝方法及零拷贝系统
WO2001005123A1 (en) Apparatus and method to minimize incoming data loss
US6335938B1 (en) Multiport communication switch having gigaport and expansion ports sharing the same time slot in internal rules checker
CN101827088A (zh) 基于cpu总线互联的底层通信协议实现方法
CN103116527B (zh) 一种基于网络控制器的超大规模栅栏同步方法
CN106788842B (zh) 一种ptp报文的处理方法及soc
CN114500400B (zh) 基于容器技术的大规模网络实时仿真方法
CN108920252A (zh) 一种基于多队列千兆以太网控制器的io虚拟化装置
CN107682198A (zh) 一种网络通信设备
CN107920035A (zh) 被设计用于确定性交换式以太网的处理器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant