CN111083202B - Tcp/ip加速器多连接交互方法和装置 - Google Patents
Tcp/ip加速器多连接交互方法和装置 Download PDFInfo
- Publication number
- CN111083202B CN111083202B CN201911190831.9A CN201911190831A CN111083202B CN 111083202 B CN111083202 B CN 111083202B CN 201911190831 A CN201911190831 A CN 201911190831A CN 111083202 B CN111083202 B CN 111083202B
- Authority
- CN
- China
- Prior art keywords
- pipeline
- queue
- tcp
- tcp connection
- connection
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Advance Control (AREA)
Abstract
本发明提供了一种TCP/IP加速器多连接交互方法和装置,其中,该方法包括:建立第一流水线、第二流水线和第三流水线;获取TCP/IP加速器的TCP连接队列;通过所述第一流水线根据所述TCP连接队列中的队列信息建立TCP连接,通过所述第二流水线进行数据收发,通过所述第三流水线断开第一流水线建立的连接。通过上述方案解决了现有的通过一条流水线串行处理TCP连接所存在的TCP/IP加速器的加速效率较低的问题,达到了有效提升TCP/IP加速器的加速能力的技术效果。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种TCP/IP加速器多连接交互方法和装置。
背景技术
目前,100GbE已经成为超大规模数据中心的默认选项,服务器端也正在迈向25GbE、50GbE。在100GbE时代,带宽将不再是阻碍数据传输的主要原因,限制数据传输的瓶颈将是设备能够处理的连接数量。在web2.0时代,出现了C10K问题(即,单机一万个并发连接问题),这个问题虽然已经得到了解决,但是也随之出现了新的问题:C10M问题。为了解决这个问题,就需要TCP/IP加速器可以支持多连接处理。
尽管100GbE的有线网络时代已经开始使用,400GbE也即将进入商用,但是低时延的需求一直存在,车联网和数据中心的容灾要求均低于10ms,尤其在金融证券的高频交易领域,对时延的要求需要低于1ms,因此,TCP/IP加速器不仅需要支持多连接还需要满足高效性的要求。
TCP/IP加速器一般使用的是FPGA作为数据传输中间件,FPGA与主机之间依靠的是PCIe3.0接口,虽然PCIe3.0的最大速度已经达到了32GB/s,但是PCIe总线存在严重的传输延时:PCIe链路使用串行方式进行数据传送,然而在芯片内部,数据总线仍然是并行的,因此PCIe链路接口需要进行串并转换,这种串并转换将产生较大的延时。除此之外,PCIe总线的数据报文需要经过事务层、数据链路层和物理层,这些数据报文在穿越这些层次时,也将带来延时。
然而,在TCP/IP协议中,一般将数据传输分为三个阶段:建立连接、发送/接收数据和断开连接。在使用TCP/IP加速器时,这三个阶段只能串行,如果存在多个连接,那么就需要采用排队的方法来处理,效率较低。
针对如何有效提升TCP/IP加速器的性能,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种TCP/IP加速器多连接交互方法和装置,以达到提升TCP/IP加速器的加速能力的目的。
一方面,提供了一种TCP/IP加速器多连接交互方法,包括:
建立第一流水线、第二流水线和第三流水线;
获取TCP/IP加速器的TCP连接队列;
通过所述第一流水线根据所述TCP连接队列中的队列信息建立TCP连接,通过所述第二流水线进行数据收发,通过所述第三流水线断开第一流水线建立的连接。
在一个实施方式中,通过所述第一流水线根据所述TCP连接队列中的队列信息建立TCP连接,包括:
所述第一流水线重复执行如下步骤直至所述TCP连接队列为空:
所述第一流水线从所述TCP连接队列中读取队列信息,并根据读取的队列信息建立TCP连接;
所述第一流水线激活所述第二流水线,向所述第二流水线发送数据收发信号,以触发所述第二流水线进行数据收发,并判断所述TCP连接队列是否为空。
在一个实施方式中,所述队列信息包括以下至少之一:ID、IP、端口号。
在一个实施方式中,通过所述第三流水线断开第一流水线建立的连接,包括:
所述第三流水线接收ID;
所述第三流水线删除与接收到的ID相关的信息,并断开对应的TCP连接。
在一个实施方式中,在获取TCP连接队列之后,还包括:
所述第一流水线接收系统发出的信号;
确定接收到的信号是否为退出指令;
在接收到的信号为退出指令的情况下,通知所述第二流水线退出,第二流水线通知第三流水线退出;
在接收到的信号不是退出指令的情况下,通过所述第一流水线根据所述TCP连接队列中的队列信息建立TCP连接,通过所述第二流水线进行数据收发,通过所述第三流水线断开第一流水线建立的连接。
在一个实施方式中,所述第一流水线、第二流水线和第三流水线为线程。
另一方面,提供了一种TCP/IP加速器多连接交互装置,包括:
建立模块,用于建立第一流水线、第二流水线和第三流水线;
获取模块,用于获取TCP/IP加速器的TCP连接队列;
控制模块,用于通过所述第一流水线根据所述TCP连接队列中的队列信息建立TCP连接,通过所述第二流水线进行数据收发,通过所述第三流水线断开第一流水线建立的连接。
在一个实施方式中,所述控制模块具体用于控制所述第一流水线重复执行如下步骤直至所述TCP连接队列为空:
所述第一流水线从所述TCP连接队列中读取队列信息,并根据读取的队列信息建立TCP连接;
所述第一流水线激活所述第二流水线,向所述第二流水线发送数据收发信号,以触发所述第二流水线进行数据收发,并判断所述TCP连接队列是否为空。
在一个实施方式中,所述控制模块具体用于控制所述第三流水线执行如下流程以断开第一流水线建立的连接:
所述第三流水线接收ID;
所述第三流水线删除与接收到的ID相关的信息,并断开对应的TCP连接。
在一个实施方式中,所述控制模块还用于在获取TCP连接队列之后,控制所述第一流水线接收系统发出的信号,所述第一流水线确定接收到的信号是否为退出指令;在接收到的信号为退出指令的情况下,通知所述第二流水线退出,第二流水线通知第三流水线退出;在接收到的信号不是退出指令的情况下,通过所述第一流水线根据所述TCP连接队列中的队列信息建立TCP连接,通过所述第二流水线进行数据收发,通过所述第三流水线断开第一流水线建立的连接。
又一方面,提供了一种网络设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
又一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
在本发明实施例中,建立了第一流水线、第二流水线和第三流水线,通过这三个流水线同时对TCP连接进行处理,通过第一流水线根据所述TCP连接队列中的队列信息建立TCP连接,通过第二流水线进行数据收发,通过第三流水线断开第一流水线建立的连接。这种方式相对于通过一条流水线串行处理TCP连接所存在的TCP/IP加速器的加速效率较低的问题,达到了有效提升TCP/IP加速器的加速能力的技术效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:
图1是根据本发明实施例的TCP/IP加速器多连接交互方法的方法流程图;
图2是串行处理时单流水线时的处理时序图;
图3是根据本发明实施例的系统最好情况下的时序图;
图4是根据本发明实施例的系统最坏情况下的时序图;
图5是根据本发明实施例的系统运行时的流程图;
图6是根据本发明实施例的系统运行时第一个流水线建立连接线程的流程图;
图7是根据本发明实施例的系统运行时第二个流水线发送/接收数据线程的流程图;
图8是根据本发明实施例的系统运行时第三个流水线断开连接线程的流程图;
图9是根据本发明实施例的TCP/IP加速器多连接交互装置的结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。
考虑到现有的TCP/IP加速器处理多连接的时候,一般是通过一个流水线进行串行处理,连接需要排队,等到前一个连接完全处理完才可以处理下一个连接,这样将处理效率较低,为了提升TCP/IP加速器的加速能力。在本例中通过流水线的方式解耦合建立连接-发送/接收数据-断开连接操作。具体的,在本例中提出了一种针对TCP/IP加速器多连接的高效交互方法,通过三个流水线解耦合的方式对多TCP连接进行处理,从而有效提升TCP/IP加速器的加速能力。
图1是本申请所述一种TCP/IP加速器多连接交互方法一个实施例的方法流程图。虽然本申请提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本申请实施例描述及附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构连接进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至分布式处理环境)。
具体的如图1所示,本申请一种实施例提供的一种TCP/IP加速器多连接交互方法可以包括如下步骤:
步骤101:建立第一流水线、第二流水线和第三流水线;
步骤102:获取TCP/IP加速器的TCP连接队列;
步骤103:通过所述第一流水线根据所述TCP连接队列中的队列信息建立TCP连接,通过所述第二流水线进行数据收发,通过所述第三流水线断开第一流水线建立的连接。
在实现的过程中,多个待处理的TCP连接可以是存储在队列中,即,可以建立一个TCP连接队列,通过该TCP连接队列存储多个TCP连接的数据信息,在执行的过程中,可以从该队列中逐个读取,直至队列为空。
具体的,通过第一流水线根据所述TCP连接队列中的队列信息建立TCP连接,可以包括:
第一流水线重复执行如下步骤直至所述TCP连接队列为空:
S1:第一流水线从所述TCP连接队列中读取队列信息,并根据读取的队列信息建立TCP连接;
S2:第一流水线激活所述第二流水线,向所述第二流水线发送数据收发信号,以触发所述第二流水线进行数据收发,并判断所述TCP连接队列是否为空。
上述队列信息可以包括但不限于以下至少之一:ID、IP、端口号。
上述第一流水线用于建立连接,第二流水线用于发送/接收数据,第三流水线用于断开连接,具体的,通过第三流水线断开第一流水线建立的连接,可以包括:第三流水线接收ID;第三流水线删除与接收到的ID相关的信息,并断开对应的TCP连接。
在执行的过程中,第一流水线、第二流水线和第三流水线是解耦合的状态,第二流水线依附于第一流水线的状态,第三流水线依附于第二流水线的状态。在一个实施方式中,在获取TCP连接队列之后,第一流水线接收系统发出的信号;确定接收到的信号是否为退出指令;在接收到的信号为退出指令的情况下,通知所述第二流水线退出,第二流水线通知第三流水线退出;在接收到的信号不是退出指令的情况下,通过所述第一流水线根据所述TCP连接队列中的队列信息建立TCP连接,通过所述第二流水线进行数据收发,通过所述第三流水线断开第一流水线建立的连接。
即,由系统统一发出控制信号,尤其是退出指令,第一流水线会先确定是否收到退出指令,收到退出指令的情况下,由第一流水线通知第二流水线,第二流水线通知第三流水线。
上述的第一流水线、第二流水线和第三流水线可以是通过线程实现的。
下面结合一个具体实施例对上述方法进行说明,然而,值得注意的是,该具体实施例仅是为了更好地说明本申请,并不构成对本申请的不当限定。
在本例中,为了提高TCP/IP加速器处理多连接的能力,进而提升TCP/IP加速器的加速能力。在本例中通过流水线的方式解耦合建立连接-发送/接收数据-断开连接操作。具体的,在本例中提出了一种针对TCP/IP加速器多连接的高效交互方法,因为涉及到TCP/IP加速器,该系统需要与上层应用进行交互通信,具体可以包括如下步骤:
S1:建立TCP连接队列,用于保存数据信息;
S2:建立三个流水线,第一个流水线用于建立连接,第二个流水线用于发送/接收数据,第三个流水线用于断开连接,其中,流水线可以是基于线程实现的。
如图2所示,为单流水线的时序图,如图3和图4所示为本例所提供的三流水线的时序图,在图3中示出了最好的情况下的时序图,图4示出了最坏的情况下的时序图。具体的,如图5所示,假设建立连接的时间为a,发送/接收数据的时间为b,断开连接的时间为c,连接数为k,在最好的情况下:a,b和c近似相等,该方法能够将TCP连接的处理时间从串行的3kb降为(k+2)b,可以减少2/3的等待时间;在最坏的情况下,该方法能够将处理TCP连接的处理时间从串行的k(a+b+c)降为a+kb+c,减少了(k-1)(a+c)的时间,当k比较大的时候,可以显现出较大的加速性能。即,通过流水线技术解决TCP/IP加速器建立连接,发送/接收数据,最后断开连接的解耦合实现,有效减少了TCP/IP加速器处理TCP连接时的等待时间,提高了TCP/IP加速器的加速能力。
以一具体实例说明,建立一个能够存储TCP连接信息的队列,其中,TCP连接信息可以包括:id,ip,端口号等。即,主线程完成TCP队列的初始化并建立三个流水线(流水线1、流水线2和流水线3),然后,根据系统命令确定是否退出,如果收到退出指令,则通知流水线1并退出;否则,更新TCP连接队列,激活流水线1。
上述流水线1用于完成TCP/IP加速器处理新的TCP连接时,建立连接的工作,具体的,如图6所示,流水线1等待系统发出的信号,如果是退出指令,则通知流水线2并退出;如果不是退出指令,则流水线1判断TCP队列是否为空,如果队列为空,则进入等待状态,如果队列不为空,则根据TCP队列中的TCP连接信息,建立TCP连接,然后再重新判断TCP队列是否为空,并激活流水线2,发出发送/接收数据信号。
上述流水线2用于完成TCP/IP加速器发送/接收数据的工作,具体的,如图7所示,流水线2等待流水线1发出的信号,如果是退出信号,则通知流水线3并退出,如果是发送/接收数据信号,则根据相关信息发送或者接收数据,然后再等待下一个信号。
上述流水线3用于完成TCP/IP加速器断开某个TCP连接时的工作,具体的,如图8所示,流水线3每次一接收到TCP连接的ID,就删除与它相关的信息,并断开该TCP连接,直至接收到退出线程指令。
基于同一发明构思,本发明实施例中还提供了一种TCP/IP加速器多连接交互装置,如下面的实施例所述。由于TCP/IP加速器多连接交互装置解决问题的原理与TCP/IP加速器多连接交互方法相似,因此TCP/IP加速器多连接交互装置的实施可以参见TCP/IP加速器多连接交互方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图9是本发明实施例的TCP/IP加速器多连接交互装置的一种结构框图,如图9所示,可以包括:建立模块901、获取模块902和控制模块903,下面对该结构进行说明。
建立模块901,用于建立第一流水线、第二流水线和第三流水线;
获取模块902,用于获取TCP/IP加速器的TCP连接队列;
控制模块903,用于通过所述第一流水线根据所述TCP连接队列中的队列信息建立TCP连接,通过所述第二流水线进行数据收发,通过所述第三流水线断开第一流水线建立的连接。
在一个实施方式中,上述控制模块903具体可以用于控制所述第一流水线重复执行如下步骤直至所述TCP连接队列为空:所述第一流水线从所述TCP连接队列中读取队列信息,并根据读取的队列信息建立TCP连接;所述第一流水线激活所述第二流水线,向所述第二流水线发送数据收发信号,以触发所述第二流水线进行数据收发,并判断所述TCP连接队列是否为空。
在一个实施方式中,上述控制模块903具体可以用于控制所述第三流水线执行如下流程以断开第一流水线建立的连接:所述第三流水线接收ID;所述第三流水线删除与接收到的ID相关的信息,并断开对应的TCP连接。
在一个实施方式中,上述控制模块903具体还可以用于在获取TCP连接队列之后,控制所述第一流水线接收系统发出的信号,所述第一流水线确定接收到的信号是否为退出指令;在接收到的信号为退出指令的情况下,通知所述第二流水线退出,第二流水线通知第三流水线退出;在接收到的信号不是退出指令的情况下,通过所述第一流水线根据所述TCP连接队列中的队列信息建立TCP连接,通过所述第二流水线进行数据收发,通过所述第三流水线断开第一流水线建立的连接。
本申请的实施例还提供能够实现上述实施例中的TCP/IP加速器多连接交互方法中全部步骤的一种电子设备的具体实施方式,所述电子设备具体包括如下内容:处理器(processor)、存储器(memory)、通信接口(Communications Interface)和总线;
其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述通信接口用于实现服务器、客户终端以及其他参与机构之间的信息传输;所述处理器用于调用所述存储器中的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中的TCP/IP加速器多连接交互方法中的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤1:建立第一流水线、第二流水线和第三流水线;
步骤2:获取TCP/IP加速器的TCP连接队列;
步骤3:通过所述第一流水线根据所述TCP连接队列中的队列信息建立TCP连接,通过所述第二流水线进行数据收发,通过所述第三流水线断开第一流水线建立的连接。
从上述描述可知,本申请实施例建立了第一流水线、第二流水线和第三流水线,通过这三个流水线同时对TCP连接进行处理,通过第一流水线根据所述TCP连接队列中的队列信息建立TCP连接,通过第二流水线进行数据收发,通过第三流水线断开第一流水线建立的连接。这种方式相对于通过一条流水线串行处理TCP连接所存在的TCP/IP加速器的加速效率较低的问题,达到了有效提升TCP/IP加速器的加速能力的技术效果。
本申请的实施例还提供能够实现上述实施例中的TCP/IP加速器多连接交互方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的TCP/IP加速器多连接交互方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤1:建立第一流水线、第二流水线和第三流水线;
步骤2:获取TCP/IP加速器的TCP连接队列;
步骤3:通过所述第一流水线根据所述TCP连接队列中的队列信息建立TCP连接,通过所述第二流水线进行数据收发,通过所述第三流水线断开第一流水线建立的连接。
从上述描述可知,本申请实施例建立了第一流水线、第二流水线和第三流水线,通过这三个流水线同时对TCP连接进行处理,通过第一流水线根据所述TCP连接队列中的队列信息建立TCP连接,通过第二流水线进行数据收发,通过第三流水线断开第一流水线建立的连接。这种方式相对于通过一条流水线串行处理TCP连接所存在的TCP/IP加速器的加速效率较低的问题,达到了有效提升TCP/IP加速器的加速能力的技术效果。
在本说明书中,诸如第一和第二这样的形容词仅可以用于将一个元素或动作与另一元素或动作进行区分,而不必要求或暗示任何实际的这种关系或顺序。在环境允许的情况下,参照元素或部件或步骤(等)不应解释为局限于仅元素、部件、或步骤中的一个,而可以是元素、部件、或步骤中的一个或多个等。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
虽然本说明书实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带、磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书实施例的实施例而已,并不用于限制本说明书实施例。对于本领域技术人员来说,本说明书实施例可以有各种更改和变化。凡在本说明书实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书实施例的权利要求范围之内。
Claims (10)
1.一种TCP/IP加速器多连接交互方法,其特征在于,包括:
建立第一流水线、第二流水线和第三流水线;
获取TCP/IP加速器的TCP连接队列;
通过所述第一流水线根据所述TCP连接队列中的队列信息建立TCP连接,通过所述第二流水线进行数据收发,通过所述第三流水线断开第一流水线建立的连接;
通过所述第一流水线根据所述TCP连接队列中的队列信息建立TCP连接,包括:
所述第一流水线重复执行如下步骤直至所述TCP连接队列为空:
所述第一流水线从所述TCP连接队列中读取队列信息,并根据读取的队列信息建立TCP连接;
所述第一流水线激活所述第二流水线,向所述第二流水线发送数据收发信号,以触发所述第二流水线进行数据收发,并判断所述TCP连接队列是否为空。
2.根据权利要求1所述的方法,其特征在于,所述队列信息包括以下至少之一:ID、IP、端口号。
3.根据权利要求2所述的方法,其特征在于,通过所述第三流水线断开第一流水线建立的连接,包括:
所述第三流水线接收ID;
所述第三流水线删除与接收到的ID相关的信息,并断开对应的TCP连接。
4.根据权利要求1所述的方法,其特征在于,在获取TCP连接队列之后,还包括:
所述第一流水线接收系统发出的信号;
确定接收到的信号是否为退出指令;
在接收到的信号为退出指令的情况下,通知所述第二流水线退出,第二流水线通知第三流水线退出;
在接收到的信号不是退出指令的情况下,通过所述第一流水线根据所述TCP连接队列中的队列信息建立TCP连接,通过所述第二流水线进行数据收发,通过所述第三流水线断开第一流水线建立的连接。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述第一流水线、第二流水线和第三流水线为线程。
6.一种TCP/IP加速器多连接交互装置,其特征在于,包括:
建立模块,用于建立第一流水线、第二流水线和第三流水线;
获取模块,用于获取TCP/IP加速器的TCP连接队列;
控制模块,用于通过所述第一流水线根据所述TCP连接队列中的队列信息建立TCP连接,通过所述第二流水线进行数据收发,通过所述第三流水线断开第一流水线建立的连接;
所述控制模块具体用于控制所述第一流水线重复执行如下步骤直至所述TCP连接队列为空:
所述第一流水线从所述TCP连接队列中读取队列信息,并根据读取的队列信息建立TCP连接;
所述第一流水线激活所述第二流水线,向所述第二流水线发送数据收发信号,以触发所述第二流水线进行数据收发,并判断所述TCP连接队列是否为空。
7.根据权利要求6所述的装置,其特征在于,所述控制模块具体用于控制所述第三流水线执行如下流程以断开第一流水线建立的连接:
所述第三流水线接收ID;
所述第三流水线删除与接收到的ID相关的信息,并断开对应的TCP连接。
8.根据权利要求6所述的装置,其特征在于,所述控制模块还用于在获取TCP连接队列之后,控制所述第一流水线接收系统发出的信号,所述第一流水线确定接收到的信号是否为退出指令;在接收到的信号为退出指令的情况下,通知所述第二流水线退出,第二流水线通知第三流水线退出;在接收到的信号不是退出指令的情况下,通过所述第一流水线根据所述TCP连接队列中的队列信息建立TCP连接,通过所述第二流水线进行数据收发,通过所述第三流水线断开第一流水线建立的连接。
9.一种网络设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述方法的步骤。
10.一种非易失性计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911190831.9A CN111083202B (zh) | 2019-11-28 | 2019-11-28 | Tcp/ip加速器多连接交互方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911190831.9A CN111083202B (zh) | 2019-11-28 | 2019-11-28 | Tcp/ip加速器多连接交互方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111083202A CN111083202A (zh) | 2020-04-28 |
CN111083202B true CN111083202B (zh) | 2021-03-26 |
Family
ID=70312131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911190831.9A Active CN111083202B (zh) | 2019-11-28 | 2019-11-28 | Tcp/ip加速器多连接交互方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111083202B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101014947A (zh) * | 2004-04-30 | 2007-08-08 | 移动网络有限公司 | 一种关于流内容的自适应速率切换的装置、系统和方法 |
CN102357033A (zh) * | 2011-09-27 | 2012-02-22 | 华中科技大学 | 一种激光散斑血流成像处理系统及方法 |
CN103488462A (zh) * | 2013-09-06 | 2014-01-01 | 暨南大学 | 一种改进型8051ip核 |
CN105068861A (zh) * | 2015-07-09 | 2015-11-18 | 合肥君正科技有限公司 | 一种事务执行方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11200724B2 (en) * | 2017-12-22 | 2021-12-14 | Advanced Micro Devices, Inc. | Texture processor based ray tracing acceleration method and system |
CN110071879A (zh) * | 2019-03-15 | 2019-07-30 | 中科恒运股份有限公司 | 消息传输方法、终端设备及存储介质 |
-
2019
- 2019-11-28 CN CN201911190831.9A patent/CN111083202B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101014947A (zh) * | 2004-04-30 | 2007-08-08 | 移动网络有限公司 | 一种关于流内容的自适应速率切换的装置、系统和方法 |
CN102357033A (zh) * | 2011-09-27 | 2012-02-22 | 华中科技大学 | 一种激光散斑血流成像处理系统及方法 |
CN103488462A (zh) * | 2013-09-06 | 2014-01-01 | 暨南大学 | 一种改进型8051ip核 |
CN105068861A (zh) * | 2015-07-09 | 2015-11-18 | 合肥君正科技有限公司 | 一种事务执行方法及装置 |
Non-Patent Citations (1)
Title |
---|
"Implementation of hardware TCP/IP stack for DAQ systems with flexible data channel";Quan Liu et al.;《Electronics Letters》;20170413;第53卷(第8期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111083202A (zh) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108647104B (zh) | 请求处理方法、服务器及计算机可读存储介质 | |
CN108628684B (zh) | 一种基于dpdk的报文处理方法及计算机设备 | |
CN109729024B (zh) | 数据包处理系统及方法 | |
CN113641457B (zh) | 容器创建方法、装置、设备、介质及程序产品 | |
CN104618155B (zh) | 一种虚拟机容错的方法、装置及系统 | |
CN112583931B (zh) | 消息处理方法、消息中间件、电子设备和存储介质 | |
US11689646B2 (en) | Network packet processing method and apparatus and network server | |
CN111897633A (zh) | 一种任务处理的方法和装置 | |
CN109408243B (zh) | 一种基于rdma的数据处理方法、装置和介质 | |
CN111031011B (zh) | Tcp/ip加速器的交互方法和装置 | |
CN110750341A (zh) | 任务调度方法、装置、系统、终端设备及存储介质 | |
CN114679457B (zh) | 一种区块链中的节点分组方法及区块链节点 | |
CN114546913A (zh) | 一种基于pcie接口的多主机之间数据高速交互的方法和装置 | |
CN108304272B (zh) | 一种数据io请求的处理方法及装置 | |
CN114461393A (zh) | 多任务调度方法、装置、电子设备、系统及自动驾驶车辆 | |
CN115878301A (zh) | 一种数据库网络负载性能的加速框架、加速方法及设备 | |
US20140215476A1 (en) | Apparatus and method for sharing function logic between functional units, and reconfigurable processor thereof | |
CN111083202B (zh) | Tcp/ip加速器多连接交互方法和装置 | |
CN111638979A (zh) | 调用请求的处理方法、装置、电子设备及可读存储介质 | |
US10102032B2 (en) | Fast transitions for massively parallel computing applications | |
CN111245794B (zh) | 数据传输方法和装置 | |
CN111324387A (zh) | 应用任务的控制方法、装置、终端及系统 | |
CN110620734A (zh) | Tcp链路数据处理方法及装置 | |
CN115865701A (zh) | 基于菊花链网络的节点控制方法、装置及系统 | |
CN113271336B (zh) | 基于dpdk的机器人中间件dds数据传输方法、电子设备及计算机可读存储介质 |
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 |