CN112653634A - 一种流量控制方法、装置、设备及可读存储介质 - Google Patents
一种流量控制方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN112653634A CN112653634A CN202011438863.9A CN202011438863A CN112653634A CN 112653634 A CN112653634 A CN 112653634A CN 202011438863 A CN202011438863 A CN 202011438863A CN 112653634 A CN112653634 A CN 112653634A
- Authority
- CN
- China
- Prior art keywords
- receiving end
- rdma
- sending
- flow control
- target 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000004891 communication Methods 0.000 claims abstract description 19
- 238000012360 testing method Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 12
- 230000015654 memory Effects 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 abstract description 23
- 230000000694 effects Effects 0.000 abstract description 2
- 230000004044 response Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
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/22—Traffic shaping
- H04L47/225—Determination of shaping rate, e.g. using a moving window
-
- 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
- H04L47/263—Rate modification at the source after receiving feedback
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种流量控制方法、装置、设备及可读存储介质。本申请公开的方法包括:若发送端基于RDMA发送目标数据至接收端,则确定发送端至接收端的飞行数据量;判断飞行数据量是否小于发送端至接收端的BDP;若是,则允许发送端基于RDMA发送目标数据至接收端;若否,则不允许发送端基于RDMA发送目标数据至接收端,在等待预设时长后,执行确定发送端至接收端的飞行数据量的步骤,从而实现了发送端至接收端的通信链路上的流量控制,从源头避免了RDMA网络传输中拥塞的发生,降低了丢包的发生概率,提高了RDMA传输效率。相应地,本申请提供的一种流量控制装置、设备及可读存储介质,也同样具有上述技术效果。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种流量控制方法、装置、设备及可读存储介质。
背景技术
RDMA(Remote Direct Memory Access,远程内存直接访问)是新一代数据中心高速网络互联的基础协议之一。RDMA来自于高性能计算领域,它改进了传统的TCP/IP协议栈在高速网络下的诸多缺点,使得网络通信不再经过内核或CPU,取而代之的则是直接通过网卡读写内存来进行,从而在应用上能够充分利用万兆以上的网络带宽。
随着模型复杂度和数据规模的快速增长,深度学习系统需要越来越多的加速卡进行并行训练,使用高吞吐量、低延迟的RDMA技术成为必然选择。而大规模、高拓展性的深度学习系统,则需要基于RoCE(RDMA over Converged Ethernet,基于聚合以太网的RDMA)进行数据和命令传输。
当前的RoCE依赖ECN(Explicit Congestion Notification,显式拥塞通知)来进行流量控制。若启用ECN,那么一旦检测到RoCE流量出现了拥塞,传输链路上的网络设备会在数据包的头部进行ECN域的标记。当被ECN标记过的数据包到达它们原本要到达的目的节点时,目的节点就会被反馈给源节点,此时源节点通过调整数据包的发送速率来进行流量控制。可见,ECN是在拥塞发生以后调整数据包的发送速率,不能预防拥塞的发生,仍然会有丢包;并且,在网络延迟比较大的情况下,源节点不能及时调整数据包发送速率,因此不能及时解决网络拥塞,会导致RDMA传输效率大幅降低。
因此,如何进行RDMA的流量控制,避免网络拥塞,是本领域技术人员需要解决的问题。
发明内容
有鉴于此,本申请的目的在于提供一种流量控制方法、装置、设备及可读存储介质,以进行RDMA的流量控制,避免网络拥塞。其具体方案如下:
第一方面,本申请提供了一种流量控制方法,包括:
若发送端基于RDMA发送目标数据至接收端,则确定所述发送端至所述接收端的飞行数据量;
判断所述飞行数据量是否小于所述发送端至所述接收端的BDP;
若是,则允许所述发送端基于RDMA发送所述目标数据至所述接收端;
若否,则不允许所述发送端基于RDMA发送所述目标数据至所述接收端,在等待预设时长后,执行所述确定所述发送端至所述接收端的飞行数据量的步骤。
优选地,所述判断所述飞行数据量是否小于所述发送端至所述接收端的BDP之前,还包括:
获取所述发送端的最大带宽,以及所述发送端至所述接收端的最小延迟;
将所述最大带宽与所述最小延迟的乘积确定为所述BDP。
优选地,所述最小延迟为所述发送端至所述接收端的通信链路上的所有设备的标准延迟值之和,或者,所述最小延迟为所述发送端至所述接收端的通信链路上的N个测试延迟值中的最小测试延迟值。
优选地,若所述目标数据为RDMA写命令、RDMA读命令或send操作命令,则所述允许所述发送端基于RDMA发送目标数据至所述接收端,包括:
按照MTU将所述目标数据拆分为多个子数据包,并将每个子数据包作为所述目标数据逐一发送。
优选地,所述目标数据为RDMA写命令、RDMA读命令、send操作命令或所述RDMA读命令对应的返回数据。
优选地,若所述目标数据为send操作命令,则所述接收端接收所述send操作命令后,上报所述send操作命令至所述接收端的主机。
优选地,所述发送端和所述接收端为不同的FPGA加速卡。
第二方面,本申请提供了一种流量控制装置,包括:
确定模块,用于若发送端基于RDMA发送目标数据至接收端,则确定所述发送端至所述接收端的飞行数据量;
判断模块,用于判断所述飞行数据量是否小于所述发送端至所述接收端的BDP;
发送模块,用于若所述飞行数据量小于所述BDP,则允许所述发送端基于RDMA发送所述目标数据至所述接收端;
控制模块,用于若所述飞行数据量不小于所述BDP,则不允许所述发送端基于RDMA发送所述目标数据至所述接收端,在等待预设时长后,执行所述确定所述发送端至所述接收端的飞行数据量的步骤。
第三方面,本申请提供了一种流量控制设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的流量控制方法。
第四方面,本申请提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的流量控制方法。
通过以上方案可知,本申请提供了一种流量控制方法,包括:若发送端基于RDMA发送目标数据至接收端,则确定所述发送端至所述接收端的飞行数据量;判断所述飞行数据量是否小于所述发送端至所述接收端的BDP;若是,则允许所述发送端基于RDMA发送所述目标数据至所述接收端;若否,则不允许所述发送端基于RDMA发送所述目标数据至所述接收端,在等待预设时长后,执行所述确定所述发送端至所述接收端的飞行数据量的步骤。
可见,发送端基于RDMA发送目标数据至接收端之前,首先确定发送端至接收端的飞行数据量(即已从发送端发出,但尚未到达接收端的数据量大小);判断飞行数据量是否小于发送端至接收端的BDP;若是,则表明发送端至接收端的通信链路未拥塞,数据可以正常传输,那么允许发送端基于RDMA发送目标数据至接收端;若否,则表明发送端至接收端的通信链路拥塞,数据传输不顺利,那么暂时不允许发送端基于RDMA发送目标数据至接收端,在等待预设时长后,再次判断飞行数据量是否小于发送端至接收端的BDP,以便发送端至接收端的通信链路不拥塞时,发送端继续发送目标数据至接收端,从而实现了发送端至接收端的通信链路上的流量控制,从源头避免了RDMA网络传输中拥塞的发生,从而降低了丢包的发生概率,提高了RDMA传输效率。
相应地,本申请提供的一种流量控制装置、设备及可读存储介质,也同样具有上述技术效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种流量控制方法流程图;
图2为本申请公开的一种流量控制方案示意图;
图3为本申请公开的一种FPGA加速卡结构示意图;
图4为本申请公开的一种流量控制的功能框架示意图;
图5为本申请公开的另一种流量控制方法流程图;
图6为本申请公开的一种RDMA读命令拆分示意图;
图7为本申请公开的一种流量控制装置示意图;
图8为本申请公开的一种流量控制设备示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,ECN是在拥塞发生以后调整数据包的发送速率,不能预防拥塞的发生,仍然会有丢包;并且,在网络延迟比较大的情况下,源节点不能及时调整数据包发送速率,因此不能及时解决网络拥塞,会导致RDMA传输效率大幅降低。为此,本申请提供了一种流量控制方案,能够进行RDMA的流量控制,避免网络拥塞。
参见图1所示,本申请实施例公开了一种流量控制方法,包括:
S101、若发送端基于RDMA发送目标数据至接收端,则确定发送端至接收端的飞行数据量。
其中,飞行数据量即已从发送端发出,但尚未到达接收端的数据量大小。
在一种具体实施方式中,判断飞行数据量是否小于发送端至接收端的BDP之前,还包括:获取发送端的最大带宽,以及发送端至接收端的最小延迟;将最大带宽与最小延迟的乘积确定为BDP(Bandwidth Delay Product,带宽延迟乘积)。
其中,最小延迟为发送端至接收端的通信链路上的所有设备的标准延迟值(如交换机、路由器等设备上标示的延迟值)之和,或者,最小延迟为发送端至接收端的通信链路上的N个测试延迟值中的最小测试延迟值(如:在发送端至接收端的通信链路上发送N个测试包,看哪个测试包对应的延迟最小)。
S102、判断飞行数据量是否小于发送端至接收端的BDP;若是,则执行S103;若否,则执行S104。
S103、允许发送端基于RDMA发送目标数据至接收端。
S104、不允许发送端基于RDMA发送目标数据至接收端,在等待预设时长后,执行S101。
在一种具体实施方式中,目标数据为RDMA写命令、RDMA读命令、send操作命令或所述RDMA读命令对应的返回数据。
需要说明的是,当目标数据为RDMA写命令、RDMA读命令、send操作命令时,发送端为数据传输的发起端,也就是发送端主动发送RDMA写命令、RDMA读命令、send操作命令至接收端,在命令发送的过程中进行流量控制,而接收端逐一响应即可。而当目标数据为RDMA读命令对应的返回数据时,发送端不是数据传输的发起端,其是被动响应端,也就是发送端基于接收端的请求来逐一返回数据给接收端,在返回数据的过程中进行流量控制。本实施例能够应用于上述两个过程中,在不同过程中,区分数据传输的两端即可。
在一种具体实施方式中,若所述目标数据为RDMA写命令、RDMA读命令或send操作命令,则允许发送端基于RDMA发送目标数据至接收端,包括:按照MTU(MaximumTransmission Unit,最大传输单元)将目标数据拆分为多个子数据包,并将每个子数据包作为目标数据逐一发送。
其中,若目标数据为RDMA写命令,则目标数据中包括需要存入接收端的数据,各个子数据包即为需要存入接收端的各个子数据。若目标数据为RDMA读命令,则目标数据中包括:从接收端的哪些位置读取哪些数据。因此各个子数据包即为从接收端的哪个位置读取哪块数据,以便接收端逐一返回相应数据。send操作命令与RDMA写命令类似,在此不再赘述。
在一种具体实施方式中,若目标数据为send操作命令,则接收端接收send操作命令后,上报send操作命令至接收端的主机,以通知主机。
在一种具体实施方式中,发送端和接收端为不同的FPGA(Field ProgrammableGate Array,现场可编程与门阵列)加速卡,这两个FPGA加速卡可以插接在不同的服务器上。
在本实施例中,发送端基于RDMA发送目标数据至接收端之前,首先确定发送端至接收端的飞行数据量;判断飞行数据量是否小于发送端至接收端的BDP;若是,则表明发送端至接收端的通信链路未拥塞,数据可以正常传输,那么允许发送端基于RDMA发送目标数据至接收端;若否,则表明发送端至接收端的通信链路拥塞,数据传输不顺利,那么暂时不允许发送端基于RDMA发送目标数据至接收端,在等待预设时长后,再次判断飞行数据量是否小于发送端至接收端的BDP,以便发送端至接收端的通信链路不拥塞时,发送端继续发送目标数据至接收端,从而实现了发送端至接收端的通信链路上的流量控制。
可见,本实施例能够从源头避免RDMA网络传输中拥塞的发生,从而降低了丢包的发生概率,提高了RDMA传输效率。并且,该方案只需要对发送端进行相应修改,接收端和网络转发设备(如交换机、路由器等)都不需要改变,因此降低了部署成本和难度。当然,若传输数据的两端,既作为发送端,又作为接收端,就需要分别在两端中进行相应修改。
参见图2所示,本申请实施例公开了一种流量控制方案。在图2中,一个设备为请求端(即发送端),负责发出RDMA读写命令;另一个设备为应答端(即接收端),用于根据接收到的RDMA读写命令做出响应。这两个设备使用RDMA协议传输数据,形成了队列对(queuepair)。
若请求端发送RDMA写命令至应答端,则请求端根据用户指令,将需要传输的数据根据MTU分为若干个数据包(pkt),并发送给应答端,同时将每个数据包的序号(PSN)插入数据包头部,一同发送给应答端,以便应答端基于序号区分各个数据包。应答端接收到数据包后,按数据包的序号给请求端返回确认数据包(ack)。其中,由于网络传输中存在RTT(Round-Trip Time,往返延迟),当请求端发出第n个数据包时,可能只接收到了第0个数据包的应答包,此时有n个包在网络中传输,这个n个包称为飞行数据包,其总数据量即为飞行数据量。
当网络没有发生拥塞时,RTT最小,请求端的最大输出带宽乘以最小往返延迟,可得到没有拥塞时的带宽延迟乘积(BDP)。只要任何时刻飞行数据包的总数据量小于BDP,就可以避免拥塞的发生。具体的,在发送每个数据包之前,首先计算请求端已经发送的数据包字节数,减去已经被确认的数据包字节数,得到飞行数据包字节数。如果飞行数据包字节数小于BDP,则可以发送下一个数据包;否则,暂停发送数据包。
若请求端发送RDMA读命令至应答端,则请求端将RDMA读命令按照MTU拆分成若干个子读命令,每个子读命令只需要应答端返回一个数据包,这样可以精确控制飞行数据包字节数。
这些子读命令的发送过程和返回数据的返回过程可以为:只控制返回数据的流量,在发送第一个子读命令后,待接收到相应的返回数据,再发送第二个子读命令。当然,还可以将子读命令的发送过程和返回数据的返回过程看作两个独立的过程,即:在子读命令的发送过程中进行流量控制,来发送各个子读命令,同时在返回数据的返回过程中进行流量控制,来返回各个返回数据。在该过程中,请求端既是数据发送端,又是数据接收端。应答端既是数据发送端,又是数据接收端。
由于BDP是由请求端的最大输出带宽(定值)乘以RTT得到的,因此获取BDP只需要获取RTT。获取RTT的方法有两种,一种是建立连接时,使用软件获取网络路径信息,将路径上所有设备的标称延迟值相加得到RTT;另一种是在建立连接时,由请求端发出一组测试数据,计算每个数据包的往返延迟,取最小值为RTT。
请参见图3,使用FPGA加速卡作为请求端和发送端的设备。FPGA加速卡可以使用intel的arria10芯片,并配置两个10G以太网光口,以及两个4GB的SDRAM(SynchronousDynamic Random Access Memory,同步动态随机存储器)作为存储器。FPGA加速卡可以通过PCI-E(Peripheral Component Interconnect Express,一种高速串行计算机扩展总线标准)连接服务器的CPU。
在请求端和应答端内部,可分别设计如图4所示的三个模块,以完成流量控制,包括:测试最小RTT模块、计算飞行数据字节数模块和数据通路合并模块。其中,测试最小RTT模块用于计算最小RTT。计算飞行数据字节数模块用于计算飞行数据字节数。数据通路合并模块用于在适当的时候发送数据。
请参见图5,两个FPGA加速卡建立RDMA连接后,请求端FPGA内部的“测试最小RTT模块”产生1000个往返延迟测试数据包(即RDMA写命令数据包)并发送到“数据通路合并模块”,“数据通路合并模块”将测试数据包通过网络传送给应答端。应答端根据RDMA协议返回确认数据包到请求端。请求端对发送的每个RDMA写命令数据包记录发送时间,当接收到对应的确认数据包时记录返回时间,用返回时间减去发送时间得到往返延迟RTT。比较1000个测试数据包的RTT,取最小值作为没有拥塞情况的RTT,发送给“计算飞行数据字节数模块”。
“计算飞行数据字节数模块”接收到没有拥塞情况的RTT后,乘以发送带宽10Gbps,得到没有拥塞情况的BDP。之后开始接收来自用户的RDMA命令,如果是RDMA写命令,则记录每个发送的写命令数据包的字节数和总的发送字节数。先发送一个写命令数据包,当接收到确认数据包后,从总字节数中减去确认数据包对应的写命令数据包字节数,得到实时的飞行数据字节数。对比飞行数据字节数和BDP,如果飞行数据字节数大于等于BDP,则暂停发送数据,如果飞行数据字节数小于BDP,则发送下一个写命令数据包到“数据通路合并模块”,以便“数据通路合并模块”通过网络发送到应答端。
如果请求端中的“计算飞行数据字节数模块”接收到RDMA读命令,则将读命令按MTU(0x400字节)拆分成若干子读命令。拆分方法如图6所示,用户RDMA读命令中远端(即应答端)数据起始地址(待读数据的起始地址)为0x100000,待读数据的终止地址为0x1103ff,数据长度为0x10400字节,则拆分成41个子读命令,第一个读命令的起始地址为0x100000,后面每个读命令的起始地址相差0x400字节,每个子读命令的长度都为0x400字节。应答端接收到每个子读命令后,按照RDMA协议逐一相应返回读数据包。此时,请求端既是数据发送端,又是数据接收端。应答端既是数据发送端,又是数据接收端。
具体的,请求端中的“计算飞行数据字节数模块”记录每个子读命令的长度字节数,和已经发送的子读命令的总长度字节数。发送第一个子读命令,接收到其对应的返回数据后,用总长度字节数减去第一个子读命令的字节长度,得到实时的飞行数据包字节数。对比飞行数据字节数和BDP,如果飞行数据字节数大于等于BDP,则暂停发送子读命令,如果飞行数据字节数小于BDP,则发送下一个子读命令到“数据通路合并模块”,以便“数据通路合并模块”通过网络发送到应答端。
相应的,应答端中的“计算飞行数据字节数模块”记录每个子读命令对应的返回数据的长度字节数,和应答端已经发送的子读命令对应的返回数据的总长度字节数。发送第一个返回数据后,用总长度字节数减去第一个返回数据的长度,得到实时的飞行数据包字节数。对比飞行数据字节数和BDP,如果飞行数据字节数大于等于BDP,则暂停发送返回数据,如果飞行数据字节数小于BDP,则发送下一个返回数据到“数据通路合并模块”,以便“数据通路合并模块”通过网络发送到请求端。
可见,本实施例将实时飞行数据字节数和非拥塞情况下BDP进行对比,来控制发送流量,从源头避免了RDMA网络传输中拥塞的发生,从而降低了丢包的发生,提高了RDMA传输效率。
下面对本申请实施例提供的一种流量控制装置进行介绍,下文描述的一种流量控制装置与上文描述的一种流量控制方法可以相互参照。
参见图7所示,本申请实施例公开了一种流量控制装置,包括:
确定模块701,用于若发送端基于RDMA发送目标数据至接收端,则确定发送端至接收端的飞行数据量;
判断模块702,用于判断飞行数据量是否小于发送端至接收端的BDP;
发送模块703,用于若飞行数据量小于BDP,则允许发送端基于RDMA发送目标数据至接收端;
控制模块704,用于若飞行数据量不小于BDP,则不允许发送端基于RDMA发送目标数据至接收端,在等待预设时长后,执行确定发送端至接收端的飞行数据量的步骤。
在一种具体实施方式中,还包括:
获取模块,用于获取发送端的最大带宽,以及发送端至接收端的最小延迟;
BDP计算模块,用于将最大带宽与最小延迟的乘积确定为BDP。
在一种具体实施方式中,最小延迟为发送端至接收端的通信链路上的所有设备的标准延迟值之和,或者,最小延迟为发送端至接收端的通信链路上的N个测试延迟值中的最小测试延迟值。
在一种具体实施方式中,目标数据为RDMA写命令、RDMA读命令、send操作命令或所述RDMA读命令对应的返回数据。
在一种具体实施方式中,发送模块具体用于:
若所述目标数据为RDMA写命令、RDMA读命令或send操作命令,则按照MTU将目标数据拆分为多个子数据包,并将每个子数据包作为目标数据逐一发送。
在一种具体实施方式中,若目标数据为send操作命令,则接收端接收send操作命令后,上报send操作命令至接收端的主机。
在一种具体实施方式中,发送端和接收端为不同的FPGA加速卡。
其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本实施例提供了一种流量控制装置,该装置能够从源头避免RDMA网络传输中拥塞的发生,从而降低了丢包的发生概率,提高了RDMA传输效率。
下面对本申请实施例提供的一种流量控制设备进行介绍,下文描述的一种流量控制设备与上文描述的一种流量控制方法及装置可以相互参照。
参见图8所示,本申请实施例公开了一种流量控制设备,包括:
存储器801,用于保存计算机程序;
处理器802,用于执行所述计算机程序,以实现上述任意实施例公开的方法。
下面对本申请实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与上文描述的一种流量控制方法、装置及设备可以相互参照。
一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的流量控制方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本申请涉及的“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的目标数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法或设备固有的其它步骤或单元。
需要说明的是,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的可读存储介质中。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种流量控制方法,其特征在于,包括:
若发送端基于RDMA发送目标数据至接收端,则确定所述发送端至所述接收端的飞行数据量;
判断所述飞行数据量是否小于所述发送端至所述接收端的BDP;
若是,则允许所述发送端基于RDMA发送所述目标数据至所述接收端;
若否,则不允许所述发送端基于RDMA发送所述目标数据至所述接收端,在等待预设时长后,执行所述确定所述发送端至所述接收端的飞行数据量的步骤。
2.根据权利要求1所述的流量控制方法,其特征在于,所述判断所述飞行数据量是否小于所述发送端至所述接收端的BDP之前,还包括:
获取所述发送端的最大带宽,以及所述发送端至所述接收端的最小延迟;
将所述最大带宽与所述最小延迟的乘积确定为所述BDP。
3.根据权利要求2所述的流量控制方法,其特征在于,所述最小延迟为所述发送端至所述接收端的通信链路上的所有设备的标准延迟值之和,或者,所述最小延迟为所述发送端至所述接收端的通信链路上的N个测试延迟值中的最小测试延迟值。
4.根据权利要求1-3任一项所述的流量控制方法,其特征在于,所述目标数据为RDMA写命令、RDMA读命令、send操作命令或所述RDMA读命令对应的返回数据。
5.根据权利要求4所述的流量控制方法,其特征在于,若所述目标数据为RDMA写命令、RDMA读命令或send操作命令,则所述允许所述发送端基于RDMA发送目标数据至所述接收端,包括:
按照MTU将所述目标数据拆分为多个子数据包,并将每个子数据包作为所述目标数据逐一发送。
6.根据权利要求4所述的流量控制方法,其特征在于,若所述目标数据为send操作命令,则所述接收端接收所述send操作命令后,上报所述send操作命令至所述接收端的主机。
7.根据权利要求1所述的流量控制方法,其特征在于,所述发送端和所述接收端为不同的FPGA加速卡。
8.一种流量控制装置,其特征在于,包括:
确定模块,用于若发送端基于RDMA发送目标数据至接收端,则确定所述发送端至所述接收端的飞行数据量;
判断模块,用于判断所述飞行数据量是否小于所述发送端至所述接收端的BDP;
发送模块,用于若所述飞行数据量小于所述BDP,则允许所述发送端基于RDMA发送所述目标数据至所述接收端;
控制模块,用于若所述飞行数据量不小于所述BDP,则不允许所述发送端基于RDMA发送所述目标数据至所述接收端,在等待预设时长后,执行所述确定所述发送端至所述接收端的飞行数据量的步骤。
9.一种流量控制设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的流量控制方法。
10.一种可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的流量控制方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011438863.9A CN112653634A (zh) | 2020-12-10 | 2020-12-10 | 一种流量控制方法、装置、设备及可读存储介质 |
PCT/CN2021/121873 WO2022121469A1 (zh) | 2020-12-10 | 2021-09-29 | 一种流量控制方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011438863.9A CN112653634A (zh) | 2020-12-10 | 2020-12-10 | 一种流量控制方法、装置、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112653634A true CN112653634A (zh) | 2021-04-13 |
Family
ID=75350738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011438863.9A Pending CN112653634A (zh) | 2020-12-10 | 2020-12-10 | 一种流量控制方法、装置、设备及可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112653634A (zh) |
WO (1) | WO2022121469A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114024913A (zh) * | 2021-09-30 | 2022-02-08 | 浪潮电子信息产业股份有限公司 | 一种网络性能优化方法、装置、设备以及存储介质 |
WO2022121469A1 (zh) * | 2020-12-10 | 2022-06-16 | 苏州浪潮智能科技有限公司 | 一种流量控制方法、装置、设备及可读存储介质 |
CN114710426A (zh) * | 2022-04-02 | 2022-07-05 | 珠海星云智联科技有限公司 | 一种确定读操作往返时延的方法、装置、系统及相关设备 |
CN115086712A (zh) * | 2022-06-07 | 2022-09-20 | 同济大学 | 一种基于cps系统的双网络时敏自适应通信方法及系统 |
CN115955437A (zh) * | 2023-03-14 | 2023-04-11 | 苏州浪潮智能科技有限公司 | 一种数据传输方法、装置、设备及介质 |
CN117579226A (zh) * | 2023-11-22 | 2024-02-20 | 无锡众星微系统技术有限公司 | 一种基于ib流控包的链路重传方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180102978A1 (en) * | 2015-05-26 | 2018-04-12 | Huawei Technologies Co., Ltd. | Data transmission method and apparatus in optoelectronic hybrid network |
CN109976661A (zh) * | 2017-12-27 | 2019-07-05 | 华为技术有限公司 | 基于nof的读取控制方法、装置及系统 |
CN110460533A (zh) * | 2019-07-12 | 2019-11-15 | 锐捷网络股份有限公司 | 基于rdma的数据传输方法及装置 |
CN111274195A (zh) * | 2020-01-19 | 2020-06-12 | 西安奥卡云数据科技有限公司 | Rdma网络流控方法、装置及计算机可读存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109150708B (zh) * | 2018-08-28 | 2021-04-27 | 中国科学院计算机网络信息中心 | 数据转发接口的选择方法及装置 |
US11252097B2 (en) * | 2018-12-13 | 2022-02-15 | Amazon Technologies, Inc. | Continuous calibration of network metrics |
CN111416775B (zh) * | 2019-01-04 | 2023-10-10 | 阿里巴巴集团控股有限公司 | 数据接收和发送方法、装置及系统 |
CN112054965B (zh) * | 2019-06-05 | 2024-06-14 | 阿里巴巴集团控股有限公司 | 一种拥塞控制方法、设备及计算机可读介质 |
CN112653634A (zh) * | 2020-12-10 | 2021-04-13 | 苏州浪潮智能科技有限公司 | 一种流量控制方法、装置、设备及可读存储介质 |
-
2020
- 2020-12-10 CN CN202011438863.9A patent/CN112653634A/zh active Pending
-
2021
- 2021-09-29 WO PCT/CN2021/121873 patent/WO2022121469A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180102978A1 (en) * | 2015-05-26 | 2018-04-12 | Huawei Technologies Co., Ltd. | Data transmission method and apparatus in optoelectronic hybrid network |
CN109976661A (zh) * | 2017-12-27 | 2019-07-05 | 华为技术有限公司 | 基于nof的读取控制方法、装置及系统 |
CN110460533A (zh) * | 2019-07-12 | 2019-11-15 | 锐捷网络股份有限公司 | 基于rdma的数据传输方法及装置 |
CN111274195A (zh) * | 2020-01-19 | 2020-06-12 | 西安奥卡云数据科技有限公司 | Rdma网络流控方法、装置及计算机可读存储介质 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022121469A1 (zh) * | 2020-12-10 | 2022-06-16 | 苏州浪潮智能科技有限公司 | 一种流量控制方法、装置、设备及可读存储介质 |
CN114024913A (zh) * | 2021-09-30 | 2022-02-08 | 浪潮电子信息产业股份有限公司 | 一种网络性能优化方法、装置、设备以及存储介质 |
CN114024913B (zh) * | 2021-09-30 | 2024-03-08 | 浪潮电子信息产业股份有限公司 | 一种网络性能优化方法、装置、设备以及存储介质 |
CN114710426A (zh) * | 2022-04-02 | 2022-07-05 | 珠海星云智联科技有限公司 | 一种确定读操作往返时延的方法、装置、系统及相关设备 |
CN115086712A (zh) * | 2022-06-07 | 2022-09-20 | 同济大学 | 一种基于cps系统的双网络时敏自适应通信方法及系统 |
CN115086712B (zh) * | 2022-06-07 | 2023-06-02 | 同济大学 | 一种基于cps系统的双网络时敏自适应通信方法及系统 |
CN115955437A (zh) * | 2023-03-14 | 2023-04-11 | 苏州浪潮智能科技有限公司 | 一种数据传输方法、装置、设备及介质 |
CN117579226A (zh) * | 2023-11-22 | 2024-02-20 | 无锡众星微系统技术有限公司 | 一种基于ib流控包的链路重传方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2022121469A1 (zh) | 2022-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112653634A (zh) | 一种流量控制方法、装置、设备及可读存储介质 | |
EP2454852B1 (en) | Network transmission capacity measurement | |
US9641650B2 (en) | TCP proxy server | |
US10833995B2 (en) | Method and apparatus for datacenter congestion control based on software defined network | |
CN101335603B (zh) | 数据传输方法和装置 | |
Hock et al. | TCP LoLa: Congestion control for low latencies and high throughput | |
CN111817977B (zh) | 一种网络拥塞控制方法和装置 | |
CN103312807B (zh) | 数据传输方法、装置及系统 | |
US20060056300A1 (en) | Bandwidth control apparatus | |
WO2018112877A1 (zh) | 路径计算和访问请求分发方法、装置及系统 | |
RU2695093C2 (ru) | Способ для выполнения проверки пропускной способности связи от первой сетевой станции до второй сетевой станции в сети связи, соответствующие устройства для выполнения этапов способа и соответствующие компьютерные программы | |
CN105634836A (zh) | 信息处理方法及装置 | |
US9379989B2 (en) | Congestion avoidance and control for UDP-based protocols | |
CN107995233B (zh) | 建立连接的方法及相应的设备 | |
CN107231269B (zh) | 一种集群精确限速方法和装置 | |
CN103763156A (zh) | 网络测速方法及系统 | |
CN102469028A (zh) | 用于确保以太网环境中udp数据传输的公平性的设备和方法 | |
JP2010538551A (ja) | Ipネットワーク上のipリンクの接続性状態を自動的に確認するための方法およびシステム | |
WO2013029424A1 (zh) | 网络检测方法、装置及系统 | |
CN112866338B (zh) | 一种服务器状态检测的方法及装置 | |
JP2007013449A (ja) | シェーパー制御方法、データ通信システム、ネットワークインタフェース装置及びネットワーク中継装置 | |
CN115002008B (zh) | 一种网络时延测量的方法、装置、设备以及存储介质 | |
US20160378714A1 (en) | Communication apparatus and control method thereof | |
US9985886B2 (en) | Technologies for network packet pacing during segmentation operations | |
Farrow | Performance analysis of heterogeneous TCP congestion control environments |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210413 |
|
RJ01 | Rejection of invention patent application after publication |