CN114900471B - 一种高性能无阻塞数据传输方法 - Google Patents
一种高性能无阻塞数据传输方法 Download PDFInfo
- Publication number
- CN114900471B CN114900471B CN202210410529.5A CN202210410529A CN114900471B CN 114900471 B CN114900471 B CN 114900471B CN 202210410529 A CN202210410529 A CN 202210410529A CN 114900471 B CN114900471 B CN 114900471B
- Authority
- CN
- China
- Prior art keywords
- data
- length
- application layer
- control module
- queue
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 53
- 238000000034 method Methods 0.000 title claims abstract description 33
- 230000000903 blocking effect Effects 0.000 title claims abstract description 18
- 230000003993 interaction Effects 0.000 claims abstract description 77
- 239000000872 buffer Substances 0.000 claims abstract description 71
- 238000012545 processing Methods 0.000 claims abstract description 21
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/36—Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6275—Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/628—Queue scheduling characterised by scheduling criteria for service slots or service orders based on packet size, e.g. shortest packet first
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6295—Queue scheduling characterised by scheduling criteria using multiple queues, one for each individual QoS, connection, flow or priority
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种高性能无阻塞数据传输方法,包括多并发数据长度记录缓冲池、仲裁模块和数据交互控制模块,前级数据包处理模块将数据包的并发号和帧长传输至多并发数据长度记录缓冲池,多并发数据长度记录缓冲池将数据列入队列,仲裁模块对队列进行判断队列中是否存在数据,如存在数据,则将队列的并发号和帧长传输至数据交互控制模块,数据交互控制模块与应用层采用请求查询更新的握手式数据交互。本发明的一种高性能无阻塞数据传输方法,通过比较应用层空间能容纳的数据长度和多并发数据长度记录缓冲池的数据长度,对缓存的数据进行切片发送,并更新应用层的缓冲区长度,有效实现了对缓存数据的高效读取和传输,避免了数据的传输拥塞。
Description
技术领域
本发明涉及数据传输领域,尤其涉及一种高性能无阻塞数据传输方法。
背景技术
TCP协议(Transmission Control Protocol)是一种面向连接的、可靠的传输层通信协议,在网络通信中被广泛使用。随着网络技术的迅猛发展,及时处理高速大量的数据流成为了网络设备的刚需。传统网卡通过软件处理TCP/IP数据流,在数据拷贝、协议处理和中断处理上产生了巨大的开销。为了减轻CPU的压力,TCP/IP卸载引擎技术(TCP/IP OffloadEngine,TOE)至此诞生。TOE技术采用硬件处理TCP/IP协议,将网络协议栈的很多操作转移到了FPGA中进行,大幅度释放了CPU的资源。在硬件实现上,FPGA以其灵活性、并行性的特点得到广泛的应用,研究TCP/IP卸载引擎在FPGA上的实现具有重大意义。
在现有的研究文献中,很多都是采用PCIE接口来实现主机和TOE的交互,完成网络数据的接收与发送。吴惑、刘一清在“基于FPGA的万兆以太网TCP/IP协议处理架构”,2020:81-87中采用速度快、扩展灵活的PCIE接口传输万兆数据的方法:读取缓存到DDR存储器的纯数据,将其转化为兼容PCIE传输层协议的TLP包进行发送。但该方法面临诸多的寄存器配置和管理,以及大端小端、串并转换和控制信令交互等问题,会产生较大的延迟。Jia Lanxu在“Design of PCIe-Gigabit Ethernet High-speed DataInteraction System Based onFPGA”,2021:138-142中也是采用了DDR3储存器和PCIE接口直连的方法,实现千兆以太网的通道设计。但是两者都存在着一个隐患:在接收多条并发连接的海量数据后,数据仍毫无保留地通过PCIE接口传输至应用层,若应用层空间有限,本地和应用层都不知晓对方能容纳的数据长度,至此一味的传输,缺少传输时的流量控制,只会导致网络传输堵塞,产生丢包现象,进而浪费了网络带宽,降低了网络带宽的利用率。
发明内容
有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是现有的数据传输在接受多条并发连接的海量数据时,缺少传输时的流量控制,导致网络传输堵塞,产生丢包现象,从而浪费了网络带宽,降低了网络带宽的利用率。本发明提供了一种高性能无阻塞数据传输方法,利用数据交互控制、多并发数据长度记录缓冲池以及基于优先级的仲裁模块,通过比较应用层空间能容纳的数据长度和多并发数据长度记录缓冲池的数据长度,对缓存的数据进行切片发送,并更新应用层的缓冲区长度,有效实现了对缓存数据的高效读取和传输,避免了数据的传输拥塞。
为实现上述目的,本发明提供了一种高性能无阻塞数据传输方法,包括多并发数据长度记录缓冲池、仲裁模块和数据交互控制模块,前级数据包处理模块将数据包的并发号和帧长传输至多并发数据长度记录缓冲池,多并发数据长度记录缓冲池将数据列入队列,仲裁模块对队列进行判断队列中是否存在数据,如存在数据,则将队列的并发号和帧长传输至数据交互控制模块,数据交互控制模块与应用层进行请求查询更新的握手式数据交互。
进一步地,数据交互控制模块与应用层进行请求查询更新的握手式数据交互具体包括数据交互控制模块向应用层发起查询请求信号,并传输当前数据帧的并发号和数据帧长,应用层向数据交互控制模块发送的响应信号,并告知应用层能容纳的数据帧长;数据交互控制模块比较两者大小,取不大于两值最小值的长度作为传输长度至应用层供其做自身缓冲区的长度更新,并更新end信号。
进一步地,数据交互控制模块满足以下条件时才能正常运行:数据交互控制模块接收到的数据帧长大于0时,数据交互控制模块才会向应用层发起查询请求信号。
进一步地,应用层反馈自身能容纳的数据帧大于0时,数据交互控制模块才会向应用层传输长度不为0的数据。
进一步地,握手式数据交互包括以下途径:
事件触发,即初始化或收到前级数据包处理后的数据;
时间轮询,即轮流查询多并发数据长度记录缓冲池中存在并发连接中留有一定长度的数据;
反馈查询,即查询本地接收的数据帧长是否大于应用层的数据帧长。
进一步地,仲裁模块为基于优先级的仲裁模块,仲裁模块调度处理的优先级顺序为事件触发>时间轮询>反馈查询。
进一步地,事件触发包括当初始化时,对多并发数据长度记录缓冲池中当前并发连接的数据帧长清零;和,当收到前级数据包处理后的数据时,对多并发数据长度记录缓冲池的中收到的前级数据包处理后的数据的长度数据更新为数据包的帧长,并将数据包的并发号和帧长传入队列中。
进一步地,时间轮询设置为轮流查询多并发数据长度记录缓冲池中每个并发连接的长度数据是否为0,若存在,则说明并发号对应的接受缓冲区留有待发送的数据,需要进行后续处理,此时将当前的并发号和帧长传入队列中。
进一步地,反馈查询设置为针对多并发数据长度记录缓冲池中当前并发连接的数据帧长大于应用层可容纳的数据帧长的情况,经过一轮数据交互后,对此时的并发号进行再次查询,判断是否还存在待发送的数据,若存在则将当前并发号和帧长存入队列。
进一步地,队列包括事件队列、轮询队列和反馈队列。
技术效果
本发明的一种高性能无阻塞数据传输方法具有以下优点和积极效果:
1、采用了请求查询更新的握手式数据交互,通过向应用层发送交互申请,并传输当前并发号和数据帧长。等待应用层的响应,并向本地反馈远端缓冲区能容纳的数据帧长,比较两者大小,取不大于两值最小值的长度作为传输的数据长度,实现数据流量的控制。流量控制过程中不存在丢弃数据包的现象,因此提高了网络带宽的利用率。
2、采用事件触发、时间轮询和反馈查询的基于优先级的仲裁方式,实现数据的筛选和传输。三者根据事件触发>时间轮询>反馈查询的优先级顺序,保证了多并发、高效率地并发连接管理,避免单条连接陷入空间不足的死循环而导致传输中止。
3、本地和上层应用层双双更新对方接收缓冲区长度,通过数据交互控制模块将多并发数据长度记录缓冲池的数据长度更新,并更新传输长度给应用层,以便对方也更新能容纳的缓冲区长度。这样的方法能够有效实现两者的交互式通信,避免一方信息不流通而导致堵塞。
以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
附图说明
图1是本发明的一个较佳实施例的一种高性能无阻塞数据传输方法的示意图;
图2是本发明的一个较佳实施例的一种高性能无阻塞数据传输方法的请求查询更新的握手式数据交互的简易时序示意图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以下描述中,为了说明而不是为了限定,提出了诸如特定内部程序、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
如图1所示,本发明提供了一种高性能无阻塞数据传输方法,包括多并发数据长度记录缓冲池、仲裁模块和数据交互控制模块,前级数据包处理模块将数据包的并发号和帧长传输至多并发数据长度记录缓冲池,多并发数据长度记录缓冲池将数据列入队列,仲裁模块对队列进行判断队列中是否存在数据,如存在数据,则将队列的并发号和帧长传输至数据交互控制模块,数据交互控制模块与应用层进行请求查询更新的握手式数据交互。其中,前级数据包处理模块完成两部分工作:其一,将接收到的数据包缓存到接收缓冲区中,该接收缓冲区片外存储器,即DDR存储器。其二,向本结构传入新接收的数据包的并发号和帧长。多并发数据长度记录缓冲池为一个双端口RAM,端口A的信号用来存储,地址为并发号,数据为帧长度,端口B的信号用来查询。为表述方便,将当前并发连接对应的数据帧长设为X,应用层缓冲区能容纳的数据帧长为Y,单位为Byte。当前传输的并发号为Ic,本发明实施例设计的多并发数据长度记录缓冲池所支持的并发连接假设为M条(即这个多并发数据长度记录缓冲池能容纳M条的并发链接长度信息),并发号设为I0到IM,则I0≤Ic≤IM。
数据交互控制模块与应用层进行请求查询更新的握手式数据交互具体包括数据交互控制模块向应用层发起查询请求信号req,并传输当前数据帧的并发号和数据帧长,,其中数据帧长假设为X,等待应用层向数据交互控制模块发送的响应信号ack,并告知对方自己能容纳的数据帧长,假设为Y。应用层向数据交互控制模块发送的响应信号,并告知应用层能容纳的数据帧长;数据交互控制模块比较两者大小,取不大于两值最小值的长度作为传输长度至应用层供其做自身缓冲区的长度更新(具体为数据交互控制模块分析两帧长的大小,取不大于两帧长的长度作为传输长度至应用层供其做自身缓冲区的长度更新),并更新end信号结束交互过程。其中,应用层的缓冲区是应用层用来接收数据的,与多并发数据长度记录缓冲池不同。其次数据交互控制模块更新本地的多并发数据长度记录缓冲池中对应并发号的数据长度,从外部的数据接收缓冲区中读取相应的数据传输给应用层。
数据交互控制模块满足以下条件时才能正常运行:数据交互控制模块接收到的数据帧长大于0时,数据交互控制模块才会向应用层发起查询请求信号。应用层反馈自身能容纳的数据帧大于0时,数据交互控制模块才会向应用层传输长度不为0的数据。
握手式数据交互包括以下途径:
事件触发,即初始化或收到前级数据包处理后的数据;事件触发包括当初始化时,对多并发数据长度记录缓冲池中当前并发连接的数据帧长清零;和,当收到前级数据包处理后的数据时,对多并发数据长度记录缓冲池的中收到的前级数据包处理后的数据的长度数据更新为数据包的帧长,并将数据包的并发号和帧长传入队列中;此处的队列为事件队列;
时间轮询,即轮流查询多并发数据长度记录缓冲池中存在并发连接中留有一定长度的数据;时间轮询设置为轮流查询多并发数据长度记录缓冲池中每个并发连接的长度数据是否为0,若存在,则说明并发号对应的接受缓冲区留有待发送的数据,需要进行后续处理,此时将当前的并发号和帧长传入队列中;此处队列为轮询队列;
反馈查询,即查询本地接收的数据帧长是否大于应用层的数据帧长;反馈查询设置为针对多并发数据长度记录缓冲池中当前并发连接的数据帧长大于应用层可容纳的数据帧长的情况,经过一轮数据交互后,对此时的并发号进行再次查询,判断是否还存在待发送的数据,若存在则将当前并发号和帧长存入队列;此处队列为反馈队列。
其中,前级数据包处理模块是事件触发的唯一途径,并且只有前级数据包处理模块传来了信号才会更新多并发数据长度记录缓冲池。
时间轮询和反馈查询是独立于前级数据包处理模块的,它们只对多并发数据长度记录缓冲池进行查询。
仲裁模块为基于优先级的仲裁模块,仲裁模块调度处理的优先级顺序为事件触发>时间轮询>反馈查询。先判断事件队列是否有数据,如果有则读取出并发号和帧长传输给数据交互控制模块进行请求查询更新的握手式数据交互,否则再判断轮询队列是否有数据,若有则将该队列的并发号和帧长传入数据交互控制模块,否则再判断反馈队列是否有数据,若有则将该队列的并发号和帧长传入数据交互控制模块,否则处于等待状态。这样设计保证了数据传输的稳定和高性能,避免单个并发连接的空间不足而导致的数据传输堵塞。当满足以下三个条件之一就会分别按照优先级的顺序进行处理:初始化或者有数据包被接收,即前级数据包处理有信息传入事件触发;时间轮询资源管理池的地址为I0到IM对应的数据,存在长度为非0的情况;反馈查询收到数据交互控制模块反馈的接收的数据帧长X大于应用层当前能容纳的数据帧长Y时。具体如下:
第一种情况下,当需要进行多并发数据长度记录缓冲池的初始化时,将缓冲池中并发号为Ic对应的数据长度清零。当接收到新数据包后,获得并发号为Ic和数据帧长为X,对多并发数据长度记录缓冲池的地址为Ic的数据更新为X,并将并发号Ic和数据帧长X都传给事件队列。随后通过仲裁模块有序地进行数据交互控制。初始化时,传入并发号,帧长无需传入,这样就多并发数据长度记录缓冲池的地址为该并发号的数据清零,而帧长是后续做长度更新用的,所以初始化时不需要传入帧长。
第二种情况下,假设并发号为In,In可能等于Ic,但一定满足I0≤In≤IM。此时多并发数据长度记录缓冲池中地址为In对应的数据长度假设为Xn,将并发连接In和数据帧长X都传给后级的仲裁模块。
第三种情况下,相当于第一种情况的延续。当X>Y时,第一次传输了不大于Y长度的数据,接收缓冲区中还留有一定长度的数据待发送。反馈查询会将剩余数据对应的并发连接Ic和数据帧长存储到反馈队列再次传给仲裁模块,供后续的数据传输。
仲裁模块先判断事件队列是否有数据,之后再判断轮询队列是否有数据,最后判断反馈队列是否有数据。按照优先级顺序,将每个队列存储的并发号和帧长都传输给数据交互控制模块。数据交互控制模块对应用层发起请求,并提供并发连接和数据帧长,假设为X′,等待K个时钟后,应用层给予响应并返回可用空间′,假设为Y′,不大于X′和Y′较小值min{X,Y}作为传输长度Z,即Z≤min{X′,Y′}。从接收缓冲区中相应位置取出Z长度的数据传输给应用层。如此重复,直至第N次,待发送的数据长度XN小于应用层能接收的数据帧长YN时,剩下的待发送数据能一次性传输给应用层。至此完成了数据从接收到上传至应用层的过程,完成了握手式的数据更新机制。
另外,本实施例中的多并发数据长度记录缓冲池、仲裁模块和数据交互控制模块都是用verilog语言实现代码并烧录在FPGA板卡上,FPGA板卡连接着一台主机,本发明实施例的多并发数据长度记录缓冲池、仲裁模块和数据交互控制模块通过FPGA与主机的交互,来实现本地(FPGA)与应用层(主机)的交互。本发明的数据传输方法便于实现及推广。
以下将举一个具体例子来说明本发明的一种高性能无阻塞数据传输方法:本实施例是服务于多并发TOE应用层接收的高性能无阻塞数据传输方法。
图2是对握手式的数据更新机制的简易时序示意图。假设本结构能支持1024条并发连接的传输,当前存在一个并发连接为1022的数据包被接收,长度为8000字节。数据被接收后存储在容量为8GB的DDR3存储器中,存储的起始地址为a=33’h03fe53525。上层应用层目前能容纳的数据长度为4096字节,则M=1024,Ic=1022,X=8000,Y=4096。
接收到并发号为1022且长度为8000字节的数据包后,将数据存储到接收缓冲区中。对多并发数据长度记录缓冲池中地址为1022的数据,更新为8000。将并发号和数据帧长都存入事件队列,这里我们用FIFO(先进先出)形式存储,地址为并发号,数据为帧长。仲裁模块优先判断出事件队列存有数据,读取并发号1022和帧长8000,送入数据交互控制模块。
数据交互控制模块判断数据长度不为0,开始请求查询更新的握手式数据交互。首先,对应用层发起查询请求req,并告知应用层本地的并发号为1022和数据帧长X为8000字节。等待两个时钟后,应用层响应信号ack置高,并返回了当前可容纳的数据长度Y为4096字节。查询模块通过比较8000和4096的大小,这里取较小值4096将作为传输帧长,保证传输的最大容量,并向应用层给予结束申请信号end。此时应用层也知晓了对方的数据长度以便更新自己的缓冲区。本地的多并发数据长度记录缓冲池中地址为1022的数据更新为了8000-4096=3904,接收缓冲区中从地址33’h03fe53525开始的4096个字节的数据被读取传输给了应用层,至此完成了第一次的数据传输。
由于时间轮询需要轮询1024个并发号的数据,时间较慢,因此反馈查询优先通过第一次的传输情况反馈了还有待发送数据的并发号1022和数据帧长3904,并将并发号和数据帧长存储到反馈队列中,依然按照FIFO形式存储。仲裁模块此时判断到反馈队列中有数据,而其他队列中无数据,则将并发号1022和数据帧长3904传输给了数据交互控制模块。随后数据交互控制模块向应用层再一次发起查询请求req,并告知应用层本地的并发号index为1022和数据帧长X为3904字节。等待两个时钟后,应用层响应信号ack置高,并返回了当前可容纳的数据长度Y仍为4096字节。查询模块通过比较3904和4096的大小,将较小值3904作为传输帧长,并向应用层给予结束申请信号end。此时应用层根据传输的数据长度,再一次更新自己的缓冲区。本地的多并发数据长度记录缓冲池中地址为1022的数据更新为了3904-3904=0,接收缓冲区中数据的起始地址更新为了33’h03fe53525向后4096个字节,即b=33’03fe54525。从地址33’h03fe54525开始的3904个字节的数据被读取传输给了应用层,至此完成了第二次的数据传输。
此时,并发连接为1022的数据帧长为0,数据交互控制模块不再发起查询请求,该数据包的接收缓冲过程通过两次传输完成,应用层也根据本地反馈的传输长度对自身的缓冲区也进行了更新,实现了数据无堵塞的高效传输。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
Claims (6)
1.一种高性能无阻塞数据传输方法,其特征在于,包括多并发数据长度记录缓冲池、仲裁模块和数据交互控制模块,前级数据包处理模块将数据包的并发号和帧长传输至所述多并发数据长度记录缓冲池,所述多并发数据长度记录缓冲池将数据列入队列,所述仲裁模块对所述队列进行判断所述队列中是否存在数据,如存在数据,则将所述队列的并发号和帧长传输至所述数据交互控制模块,所述数据交互控制模块与应用层进行请求查询更新的握手式数据交互;所述数据交互控制模块与所述应用层进行请求查询更新的握手式数据交互具体包括所述数据交互控制模块向所述应用层发起查询请求信号,并传输当前数据帧的并发号和数据帧长,所述应用层向所述数据交互控制模块发送的响应信号,并告知所述应用层能容纳的数据帧长;所述数据交互控制模块比较两者大小,取不大于两值最小值的长度作为传输长度至所述应用层供其做自身接收缓冲区的长度更新,并更新结束申请信号;握手式数据交互包括以下途径:
事件触发,即初始化或收到所述前级数据包处理后的数据;
时间轮询,即轮流查询所述多并发数据长度记录缓冲池中存在并发连接中留有一定长度的数据;
反馈查询,即查询本地接收的数据帧长是否大于应用层的数据帧长;
所述时间轮询设置为轮流查询所述多并发数据长度记录缓冲池中每个并发连接的长度数据是否为0,若存在,则说明所述并发号对应的接受缓冲区留有待发送的数据,需要进行后续处理,此时将当前的并发号和帧长传入队列中;所述反馈查询设置为针对所述多并发数据长度记录缓冲池中当前并发连接的数据帧长大于所述应用层可容纳的数据帧长的情况,经过一轮数据交互后,对此时的并发号进行再次查询,判断是否还存在待发送的数据,若存在则将当前并发号和帧长存入队列。
2.如权利要求1所述的一种高性能无阻塞数据传输方法,其特征在于,所述数据交互控制模块满足以下条件时才能正常运行:所述数据交互控制模块接收到的数据帧长大于0时,所述数据交互控制模块才会向所述应用层发起查询请求信号。
3.如权利要求1所述的一种高性能无阻塞数据传输方法,其特征在于,所述应用层反馈自身能容纳的数据帧大于0时,所述数据交互控制模块才会向所述应用层传输长度不为0的数据。
4.如权利要求1所述的一种高性能无阻塞数据传输方法,其特征在于,所述仲裁模块为基于优先级的仲裁模块,所述仲裁模块调度处理的优先级顺序为事件触发>时间轮询>反馈查询。
5.如权利要求1所述的一种高性能无阻塞数据传输方法,其特征在于,所述事件触发包括当初始化时,对所述多并发数据长度记录缓冲池中当前并发连接的数据帧长清零;当收到所述前级数据包处理后的数据时,对所述多并发数据长度记录缓冲池的中收到的所述前级数据包处理后的数据的长度数据更新为数据包的帧长,并将所述前级数据包处理模块传入的数据包的并发号和帧长传入队列中。
6.如权利要求1所述的一种高性能无阻塞数据传输方法,其特征在于,所述队列包括事件队列、轮询队列和反馈队列。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111436103 | 2021-11-29 | ||
CN2021114361039 | 2021-11-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114900471A CN114900471A (zh) | 2022-08-12 |
CN114900471B true CN114900471B (zh) | 2023-11-28 |
Family
ID=82718385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210410529.5A Active CN114900471B (zh) | 2021-11-29 | 2022-04-19 | 一种高性能无阻塞数据传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114900471B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4272819A (en) * | 1978-03-31 | 1981-06-09 | Fujitsu Limited | Inter-subsystem direct transfer system |
US6438551B1 (en) * | 1997-12-11 | 2002-08-20 | Telefonaktiebolaget L M Ericsson (Publ) | Load control and overload protection for a real-time communication system |
CN104731660A (zh) * | 2014-12-31 | 2015-06-24 | 北京天诚盛业科技有限公司 | 数据分配方法、装置和系统 |
CN111367656A (zh) * | 2020-02-20 | 2020-07-03 | 深圳震有科技股份有限公司 | 一种分配媒体资源的方法、计算机设备及存储介质 |
CN111724262A (zh) * | 2020-06-24 | 2020-09-29 | 上海金仕达软件科技有限公司 | 一种应用服务器后续包查询系统及其工作方法 |
CN111752905A (zh) * | 2020-07-01 | 2020-10-09 | 浪潮云信息技术股份公司 | 一种基于对象存储的大文件分布式缓存系统 |
CN112463860A (zh) * | 2019-09-06 | 2021-03-09 | 西安交大捷普网络科技有限公司 | 优炫数据库查询结果集的解析方法 |
CN112953967A (zh) * | 2021-03-30 | 2021-06-11 | 扬州万方电子技术有限责任公司 | 网络协议卸载装置和数据传输系统 |
CN113285914A (zh) * | 2021-03-29 | 2021-08-20 | 上海大学 | 一种基于fpga的tcp协议高效数据确认的通信传输方法 |
-
2022
- 2022-04-19 CN CN202210410529.5A patent/CN114900471B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4272819A (en) * | 1978-03-31 | 1981-06-09 | Fujitsu Limited | Inter-subsystem direct transfer system |
US6438551B1 (en) * | 1997-12-11 | 2002-08-20 | Telefonaktiebolaget L M Ericsson (Publ) | Load control and overload protection for a real-time communication system |
CN104731660A (zh) * | 2014-12-31 | 2015-06-24 | 北京天诚盛业科技有限公司 | 数据分配方法、装置和系统 |
CN112463860A (zh) * | 2019-09-06 | 2021-03-09 | 西安交大捷普网络科技有限公司 | 优炫数据库查询结果集的解析方法 |
CN111367656A (zh) * | 2020-02-20 | 2020-07-03 | 深圳震有科技股份有限公司 | 一种分配媒体资源的方法、计算机设备及存储介质 |
CN111724262A (zh) * | 2020-06-24 | 2020-09-29 | 上海金仕达软件科技有限公司 | 一种应用服务器后续包查询系统及其工作方法 |
CN111752905A (zh) * | 2020-07-01 | 2020-10-09 | 浪潮云信息技术股份公司 | 一种基于对象存储的大文件分布式缓存系统 |
CN113285914A (zh) * | 2021-03-29 | 2021-08-20 | 上海大学 | 一种基于fpga的tcp协议高效数据确认的通信传输方法 |
CN112953967A (zh) * | 2021-03-30 | 2021-06-11 | 扬州万方电子技术有限责任公司 | 网络协议卸载装置和数据传输系统 |
Non-Patent Citations (1)
Title |
---|
朱星宇 ; 张倩武 ; 曹炳尧.基于DPDK的流量测试平台设计.《微型电脑应用》.2020,全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN114900471A (zh) | 2022-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11412042B2 (en) | Remote NVMe activation | |
US6882656B2 (en) | Speculative transmit for system area network latency reduction | |
US7577773B1 (en) | Method and system for DMA optimization | |
US9176911B2 (en) | Explicit flow control for implicit memory registration | |
EP1784735B1 (en) | Apparatus and method for supporting memory management in an offload of network protocol processing | |
US5634015A (en) | Generic high bandwidth adapter providing data communications between diverse communication networks and computer system | |
EP1782602B1 (en) | Apparatus and method for supporting connection establishment in an offload of network protocol processing | |
US7613109B2 (en) | Processing data for a TCP connection using an offload unit | |
US10552367B2 (en) | Network data transactions using posted and non-posted operations | |
US6615282B1 (en) | Adaptive messaging | |
US20050235072A1 (en) | Data storage controller | |
US20030051076A1 (en) | Methods and system for pre-fetching descriptors | |
CN112953967A (zh) | 网络协议卸载装置和数据传输系统 | |
CN113225307A (zh) | 卸载引擎网卡中描述符预读取的优化方法、系统及终端 | |
CN113079113B (zh) | 数据传输装置和数据传输系统 | |
US8223788B1 (en) | Method and system for queuing descriptors | |
WO2014131273A1 (zh) | 数据传输方法、装置及直接存储器存取 | |
US20080263171A1 (en) | Peripheral device that DMAS the same data to different locations in a computer | |
US7146451B2 (en) | PCI bridge and data transfer methods | |
US7461218B2 (en) | Size-based interleaving in a packet-based link | |
JP2003258932A (ja) | 相互に通信する電子装置間の順序化され、パイプライン化されたトランザクションのフローを制御するための方法およびシステム | |
US20230035810A1 (en) | Method for data processing of frame receiving of an interconnection protocol and storage device | |
CN114900471B (zh) | 一种高性能无阻塞数据传输方法 | |
JPH10228445A (ja) | リングバス入出力制御装置 | |
CN115208830B (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 |