CN111416775A - 数据接收和发送方法、装置及系统 - Google Patents
数据接收和发送方法、装置及系统 Download PDFInfo
- Publication number
- CN111416775A CN111416775A CN201910009064.0A CN201910009064A CN111416775A CN 111416775 A CN111416775 A CN 111416775A CN 201910009064 A CN201910009064 A CN 201910009064A CN 111416775 A CN111416775 A CN 111416775A
- Authority
- CN
- China
- Prior art keywords
- data
- sending
- node
- credit value
- receiving
- 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
Links
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/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- 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
Abstract
本申请提供一种数据接收和发送方法、装置及系统,其中,接收节点确定配置给所述发送节点发送数据的数据信用值;将所述数据信用值发送给所述发送节点,以使所述发送节点根据所述数据信用值继续向所述接收节点发送数据。这样通过在数据接收节点主动控制数据发送节点的发送速率,进而从根本上解决端点拥塞的控制问题,同时也减小网络拥塞对无损网络性能带来的影响。
Description
技术领域
本发明涉及网络拥塞控制技术领域,尤其涉及一种数据接收和发送方法、装置及系统。
背景技术
随着新兴的人工智能、高性能计算(High Performance Computing,HPC)云、基于NVMe-over-Fabric的分布式存储、实时大数据分析等应用发展,远程直接内存接入(RemoteDirect Memory Access,RDMA)技术正广泛应用于数据中心。RDMA技术需要承载在无损数据中心网络之上,无损数据中心网络通过链路级点对点反压机制实现不丢包。然而无损数据中心网络一旦发生网络拥塞,没有及时控制而触发了网络链路级点对点反压机制,将由于队头阻塞(Head-of-line blocking,HOL)的存在而导致网络拥塞全网无差别扩散,影响数据流的公平性传输,严重降低网络性能。因此,迫切需要解决网络拥塞对无损网络性能带来的影响。
发明内容
本发明提供一种数据接收和发送方法、装置及系统,可以解决端点拥塞控制问题,减小网络拥塞对无损网络性能带来的影响。
本发明实施例提供一种数据发送方法,包括:
接收节点确定配置给所述发送节点发送数据的数据信用值;
将所述数据信用值发送给所述发送节点,以使所述发送节点根据所述数据信用值继续向所述接收节点发送数据。
可选地,接收节点确定配置给发送节点发送数据的数据信用值之前,还包括:
所述接收节点接收所述发送节点发送的预设数据信用阈值的数据,所述数据中携带有便于所述接收节点向所述发送节点返回数据信用值的标识。
可选地,确定配置给所述发送节点发送数据的数据信用值之前,还包括:
所述接收节点为每个端口设置对应的拥塞控制窗口,所述拥塞控制窗口用于控制所有发送节点通过其对应的端口向所述接收节点发送数据的数据信用总量。
可选地,确定配置给所述发送节点发送数据的数据信用值,包括:
所述接收节点确定接收所述发送节点发送数据的端口;
查询确定所述端口对应的拥塞控制窗口当前包含的数据信用值,所述拥塞控制窗口当前包含的数据信用值为所述拥塞控制窗口的数据信用总量减去已经分配给其他发送节点的数据信用值;
若确定所述拥塞控制窗口当前包含的数据信用值大于等于所述预设数据信用阈值,则确定所述拥塞控制窗口存在可分配的数据信用值;
根据所述可分配的数据信用值,向所述发送节点分配发送数据的数据信用值。
可选地,将所述数据信用值发送给所述发送节点之后包括:
所述接收节点根据分配给所述发送节点的数据信用值,减少所述拥塞控制窗口当前包含的数据信用值。
可选地,将所述数据信用值发送给所述发送节点之后包括:
所述接收节点接收到所述发送节点根据所述数据信用值发送的数据之后,根据接收到的数据量,增加所述拥塞控制窗口当前包含的数据信用值。
本申请还提供一种数据发送方法,包括:
发送节点接收到接收节点配置的数据信用值;
所述发送节点根据所述接收节点配置的数据信用值,向所述接收节点发送数据。
可选地,所述发送节点向接收节点发送预设数据信用阈值的数据,所述数据中携带有用于所述接收节点向所述发送节点返回数据信用值的标识。
可选地,所述发送节点根据所述接收节点发送的数据信用值,向所述接收节点发送数据,包括:
所述发送节点根据所述数据信用值,增加所述发送节点的发送窗口的数据信用值,所述发送窗口的数据信用值表示所述发送节点向所述接收节点可以发送的数据总量;
所述发送节点根据所述发送窗口的数据信用值,向所述接收节点发送数据。
可选地,所述发送节点根据所述接收节点配置的数据信用值,向所述接收节点发送数据之后还包括:
所述发送节点根据发送数据的数据量,减小所述发送窗口的数据信用值;
在所述发送窗口的数据信用值等于零时,停止向所述接收节点发送数据。
本申请还提供一种数据接收装置,位于接收节点侧,包括:
分配模块,用于确定配置给发送节点发送数据的数据信用值;
发送模块,用于将所述数据信用值发送给所述发送节点,以使所述发送节点根据所述数据信用值发送数据。
可选地,所述的装置还包括:
接收模块,用于接收所述发送节点发送的预设数据信用阈值的数据,所述数据中携带有便于所述接收节点向所述发送节点返回数据信用值的标识。
可选地,所述的装置还包括:
设置模块,用于为每个端口设置对应的拥塞控制窗口,所述拥塞控制窗口用于控制所有发送节点通过其对应的端口向所述接收节点发送数据的数据信用总量
可选地,所述分配模块具体用于:查询确定所述端口对应的拥塞控制窗口当前包含的数据信用值,所述拥塞控制窗口当前包含的数据信用值为所述拥塞控制窗口的数据信用总量减去已经分配给其他发送节点的数据信用值;若确定所述拥塞控制窗口当前包含的数据信用值大于等于所述预设数据信用阈值,则确定所述拥塞控制窗口存在可分配的数据信用值;根据所述可分配的数据信用值,向所述发送节点分配发送数据的数据信用值。
可选地,所述的装置还包括:
更新模块,用于根据分配给所述发送节点的数据信用值,减少所述拥塞控制窗口当前包含的数据信用值;或者接收到所述发送节点根据所述数据信用值发送的数据之后,根据接收到的数据量,增加所述拥塞控制窗口当前包含的数据信用值。
本申请还提供一种数据发送装置,位于发送节点侧,包括:
接收模块,用于接收到接收节点配置的数据信用值;
发送模块,还用于根据所述接收节点配置的数据信用值,向所述接收节点发送数据。
可选地,所述发送模块,还用于向所述接收节点发送的预设数据信用阈值的数据,所述数据中携带有用于所述接收节点向所述发送节点返回数据信用值的标识。
可选地,所述的装置还包括:
更新模块,用于根据所述接收节点配置的数据信用值,增加所述发送节点的发送窗口的数据信用值,所述发送窗口的数据信用值表示所述发送节点向所述接收节点可以发送的数据总量;
所述发送模块,用于根据所述发送窗口的数据信用值,向所述接收节点发送数据。
可选地,所述更新模块,用于根据所述发送节点发送数据的数据量,减小所述发送窗口的数据信用值;
所述发送模块,还用于在所述发送窗口的数据信用值等于零时,停止向所述接收节点发送数据。
本申请还提供一种数据接收和发送系统,包括:接收节点和发送节点;
所述接收节点包括上述的数据接收装置;
所述发送节点包括上述的数据发送装置。
本申请实施例中,接收节点确定配置给发送节点发送数据的数据信用值;将所述数据信用值发送给所述发送节点,以使所述发送节点根据所述数据信用值继续向所述接收节点发送数据。这样接收节点通过数据信用阈值主动控制发送节点的数据发送量,使得发向同一接收节点(同一目的端)的所有发送端注入网络的速率不超过目的端接收处理的能力,因此,可以从根本上解决端点拥塞的控制问题,同时也减小网络拥塞对无损网络性能带来的影响。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的数据接收方法的流程示意图;
图2为本发明一实施例提供的数据发送方法的流程示意图;
图3为本发明一实施例提供的数据接收装置的结构示意图;
图4为本发明一实施例提供的数据发送装置的结构示意图;
图5本发明一实施例提供的数据接收和发送系统的结构示意图;
图6本发明一实施例提供的数据接收和发送系统的信令示意图;
图7为本发明一实施例提供的网络设备的结构示意图;
图8为本发明另一实施例提供的网络设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
术语解释:
Incast:指当一个节点向一组节点发起一个请求时,该组中所有节点都会同时收到该请求,并且几乎同时做出响应,很多节点同时向同一节点发送数据流,从而产生的一种many-to-one的通信模式。
网内拥塞:指由于网络流量负载不均衡,网络中交换机承载的流量超过了其转发能力而形成的拥塞;
端点拥塞:指由于many-to-one的Incast流量导致端点接收的流量超过了其处理能力而形成的拥塞;
RDMA:Remote Direct Memory Access,远程直接内存接入;
cwnd:拥塞控制窗口;
twnd:发送控制窗口;
QP:工作队列,包含发送队列和接收队列。
本方案主要包括两类节点:数据发送方的发送节点和数据接收方的接收节点;每个数据发送方和数据接收方之间的数据传输,称之为一条数据流;每个数据接收方可能接收来自不同数据发送方的多条数据流。
本发明的发明思想是:接收节点确定配置给发送节点发送数据的数据信用值;将配置的数据信用值发送给发送节点,以使发送节点根据所述数据信用值继续向接收节点发送数据。这样接收节点通过数据信用值主动控制发送节点的数据发送量,使得发向同一接收节点(同一目的端口)的所有发送端注入网络的速率不超过目的端接收处理的能力,因此,可以从根本上解决I ncast端点拥塞的控制问题,同时也减小网络拥塞对无损网络性能带来的影响。
具体通过下面的实施例进行详细的说明:
图1为本发明一实施例提供的数据接收方法的流程示意图,如图1所示:
101、接收节点确定配置给发送节点发送数据的数据信用值;
在一种可选的实施方式中,接收节点在确定配置给发送节点发送数据的数据信用值之前,包括:
接收发送节点发送的预设数据信用阈值的数据,所述数据中携带有便于所述接收节点向所述发送节点返回数据信用值的标识。
本实施例中,初始化时,发送节点具有初始化的数据信用值,使得发送节点可以向接收节点发送一定量的数据。其中,这里的初始化的数据信用值等同于预设数据信用阈值;所述预设数据信用阈值的大小可以根据接收节点端口的速率和网络往返时延进行设置。因此,当接收节点接收到发送节点发送的预设数据信用阈值的数据后,根据数据中携带的标识确定配置给发送节点发送数据的数据信用值。
在一种可选的实施方式中,接收节点在确定配置给所述发送节点发送数据的数据信用值之前,包括:
接收节点为每个端口设置对应的拥塞控制窗口,以及每个拥塞控制窗口所包含的数据信用总量。其中,每个拥塞控制窗口的数据信用总量是用于控制所有发送节点通过其对应的端口向所述接收节点发送数据的数据信用总量。其中,所述拥塞控制窗口的数据信用总量可以根据其对应端口的速率与网络往返时延进行设置的。
在一种可选的实施方式中,上述确定配置给所述发送节点发送数据的数据信用值,包括:
接收节点确定接收所述发送节点发送数据的端口;
查询确定所述端口对应的拥塞控制窗口当前包含的数据信用值,所述拥塞控制窗口当前包含的数据信用值为所述拥塞控制窗口的数据信用总量减去已经分配给其他发送节点的数据信用值;
若确定所述拥塞控制窗口当前包含的数据信用值大于等于所述预设数据信用阈值,则确定所述拥塞控制窗口存在可分配的数据信用值;
根据所述可分配的数据信用值,向所述发送节点分配发送数据的数据信用值;
假设拥塞控制窗口当前包含的数据信用值小于所述预设数据信用阈值,则确定所述拥塞控制窗口不存在可分配的数据信用值,此时,需要等到有足够数据信用值时,再向所述发送节点分配数据信用值。
这里需要说明的是,当有多个发送节点通过同一个端口向接收节点发送数据的时候,此时,该接收节点存在多条数据流,为了实现主动对各条数据流的流量进行控制及保证各条数据流之间的公平性,该接收节点根据可分配的数据信用值,可以均分配置给各发送节点发送数据的数据信用值,从而使得各条数据流之间的网络流量负载均衡,因此可以减小网内拥塞的问题。
102、将所述数据信用值发送给发送节点,以使所述发送节点根据所述数据信用值向继续所述接收节点发送数据。
在一种可选的实施方式中,上述将所述数据信用值发送给所述发送节点,可以通过单独的报文将所述数据信用值发送给所述发送节点;
在一种可选的实施方式中,上述将所述数据信用值发送给所述发送节点,也可以通过将所述数据信用值携带在接收节点返回给接收节点的报文中发送给所述发送节点,如ACK包。
在一种可选的实施方式中,上将所述数据信用值发送给所述发送节点之后还包括:
所述接收节点向所述发送节点分配数据信用值之后,根据所述分配的数据信用值,减少所述拥塞控制窗口当前包含的数据信用值(即更新拥塞控制窗口的可分配的数据信用值);
接收节点接收到所述发送节点根据所述数据信用值发送的数据之后,根据接收到的数据量,增加所述拥塞控制窗口当前包含的数据信用值(即更新拥塞控制窗口的可分配的数据信用值);进一步地,根据拥塞控制窗口更新后的可分配的数据信用值,及时配置给发送节点发送数据的数据信用值,保证数据发送的连续性。
本申请实施例中,接收节点接收发送节点发送的预设数据信用阈值的数据,其中,数据中携带有便于所述接收节点向所述发送节点返回数据信用值的标识;接收节点根据标识确定配置给所述发送节点发送数据的数据信用值;将所述数据信用值发送给所述发送节点,以使所述发送节点根据所述数据信用值继续向所述接收节点发送数据。这样不需要发送节点请求信用的过程,接收节点通过窗口机制可主动控制发送节点的数据发送,使得发向同一接收节点(同一目的端)的所有发送端注入网络的速率不超过目的端接收处理的能力,因此,可以从根本上解决端点拥塞的控制问题,也减小网络拥塞对无损网络性能带来的影响,同时减小拥塞控制机制引入的传递信用值请求应答消息的带宽占用。
图2为本发明一实施例提供的数据发送方法的流程示意图,如图2所示:
201、发送节点向接收节点发送预设数据信用阈值的数据,以使接收节点配置给所述发送节点发送数据的数据信用值;
本实施例中,初始化时,发送节点具有初始化的数据信用值,使得发送节点可以向接收节点发送一定量的数据。其中,这里的初始化的数据信用值等同于预设数据信用阈值;所述预设数据信用阈值的大小可以根据接收节点端口的速率和网络往返时延进行设置。
其中,所述发送节点发送的预设数据信用阈值的数据中携带有便于所述接收节点向所述发送节点返回数据信用值的标识,以使接收节点配置给所述发送节点发送数据的数据信用值,具体参考上述图1所示实施例所述的相关内容。
可选地,每发送的预设数据信用阈值的数据中,可以携带有用于所述接收节点返回数据信用值的标识,便于接收节点将分配的数据信用值携带在接收节点返回的应答包中发送给发送节点;
在一种可选的实施方式中,发送节点在每发送预设数据信用阈值的数据量中最后一个数据包中设置ACK标志:如果所述最后一个数据包本身就有ACK标识,则刚好利用;如果最后一个数据包本身不带ACK标识,就主动打一个ACK标识。这样接收节点在接收到带标识的数据包时,同时也是收到发送节点发来的预设数据信用阈值那么多的数据,并需要确定配置给发送节点的数据信用值的时机。当接收节点确定存在足够分配的数据信用值,则立即向所述发送节点发送ACK包,并在ACK包中携带配置给发送节点的数据信用值;否则,等到有足够数据信用值时,再向所述发送节点发送ACK包,并在ACK包中携带配置给发送节点的数据信用值。
在现有的基于信用的主动拥塞控制方法是采用单独的请求应答控制通道,接收节点和发送节点协商可发送的数据量。它的缺点是需要引入新的控制报文,从而增加数据发送接收协议的复杂度。
202、发送节点接收到接收节点配置的数据信用值;
203、发送节点根据接收节点配置的数据信用值,向所述接收节点发送数据。
在一种可选的实施方式中,发送节点的每一条数据流具有一个发送窗口,所述发送窗口的数据信用值表示所述发送节点向所述接收节点可以发送的数据总量;所述发送窗口具有初始化的预设数据信用阈值的数据发送量,使能发送节点在初始化时可以向接收节点发送预设数据信用阈值的数据,并启动接收节点向所述发送节点配置发送数据的数据信用值;
当接收到接收节点配置的数据信用值,增加该发送节点对应发送窗口的数据信用值,发送节点根据所述发送窗口的数据信用值,向所述接收节点发送数据。
在数据发送过程中,所述发送节点根据发送数据的数据量,减小所述发送窗口的数据信用值;在所述发送窗口的数据信用值等于零时,停止向所述接收节点发送数据。
因此,本发明中通过发送节点根据初始化的预设数据信用阈值发送数据,启动启动接收节点主动向所述发送节点配置数据信用值的流程,且发送节点每发送预设数据信用阈值的数据量中最后一个数据包中设置ACK标志,用于接收节点返回配置的数据信用值(具体配置过程请参见图1所示实施例中的相关描述,在此不再赘述。),不需要引入新的控制报文,因此也不需要增加复杂的数据发送接收协议。
图3为本发明一实施例提供的数据接收装置的结构示意图,位于接收节点侧,如图3所示,包括:
分配模块,用于确定配置给发送节点发送数据的数据信用值;
发送模块,用于将所述数据信用值发送给所述发送节点,以使所述发送节点根据所述数据信用值发送数据。
可选地,所述的装置还包括:
接收模块,用于接收所述发送节点发送的预设数据信用阈值的数据,所述数据中携带有便于所述接收节点向所述发送节点返回数据信用值的标识
可选地,所述的装置还包括:
设置模块,用于为每个端口设置对应的拥塞控制窗口,所述拥塞控制窗口用于控制所有发送节点通过其对应的端口向所述接收节点发送数据的数据信用总量
可选地,所述分配模块具体用于:查询确定所述端口对应的拥塞控制窗口当前包含的数据信用值,所述拥塞控制窗口当前包含的数据信用值为所述拥塞控制窗口的数据信用总量减去已经分配给其他发送节点的数据信用值;若确定所述拥塞控制窗口当前包含的数据信用值大于等于所述预设数据信用阈值,则确定所述拥塞控制窗口存在可分配的数据信用值;根据所述可分配的数据信用值,向所述发送节点分配发送数据的数据信用值。
可选地,所述的装置还包括:
更新模块,用于根据分配给所述发送节点的数据信用值,减少所述拥塞控制窗口当前包含的数据信用值;或者接收到所述发送节点根据所述数据信用值发送的数据之后,根据接收到的数据量,增加所述拥塞控制窗口当前包含的数据信用值。
本实施例所示装置可以执行上述图1所示方法实施例,其实现原理和技术效果不再赘述。
图4为本发明一实施例提供的数据发送装置的结构示意图,位于发送节点侧,如图4所示,包括:
接收模块,用于接收到接收节点配置的数据信用值;
发送模块,用于根据所述接收节点配置的数据信用值,向所述接收节点发送数据。
可选地,所述发送模块,还用于向所述接收节点发送预设数据信用阈值的数据,所述数据中携带有用于所述接收节点向所述发送节点返回数据信用值的标识。
可选地,所述的装置还包括:
更新模块,用于根据所述数据信用值,增加所述发送节点的发送窗口的数据信用值,所述发送窗口的数据信用值表示所述发送节点向所述接收节点可以发送的数据总量;
所述发送模块,用于根据所述发送窗口的数据信用值,向所述接收节点发送数据。
可选地,所述更新模块,用于根据所述发送节点发送数据的数据量,减小所述发送窗口的数据信用值;
所述发送模块,还用于在所述发送窗口的数据信用值等于零时,停止向所述接收节点发送数据。
本实施例所示装置可以执行上述图2所示方法实施例,其实现原理和技术效果不再赘述。
图5本发明一实施例提供的数据接收和发送系统的结构示意图,如图5所示,包括:接收节点和发送节点;
所述接收节点包括如图3所示的数据接收装置;
所述发送节点包括如图4所示的数据发送装置。
图6本发明一实施例提供的数据接收和发送系统的信令示意图,下面通过图6所示的信令示意图具体举例说明图5所示数据接收和发送系统的实现过程。
数据接收方R0通过QP2、QP3分别与数据发送方S0的QP2和S1的QP2建立两条数据流连接,接收方R0接收来自发送方S0和S1的数据。在不增加额外的网络通信协议的基础上,本系统通过在数据接收方主动控制数据发送方的发送速率,进而从根本上解决Incast拥塞控制问题,减小网络拥塞对无损网络性能带来的影响。
其中,数据接收方的主要流程如下:
需要说明的是,数据接收方可以有多个端口,如同双网卡(一个网卡可以有两个端口),每个端口对应一个拥塞控制窗口。数据接收方按端口维护一个拥塞控制窗口cwnd,该拥塞控制窗口用于控制向数据接收方发送数据的所有数据发送方的发送数据量,该拥塞控制窗口的初始值可以设置为端口速率与网络往返时延(RTT(Round-Trip Time,RTT)的乘积,即带宽延迟积(bandwidth-delay product,BDP)数据。
数据接收方在一条数据流的开始(如接收方R0_QP2接收到S0_QP2的第一个包)时,查询数据接收方端口的当前的拥塞控制窗口ccwd是否有可分配的信用值,如果有则向对应的数据发送方返回一个ACK,并分配预设数据信用阈值给发送方;其中,“预设数据信用阈值”指预先设定的一个信用阈值,用于指示接收方向发送方分配信用值时的信用大小,可以设置为端口速率与网络RTT时间的乘积(即BDP);其中,ACK中包含但不限于:向发送方分配的预设阈值的信用值以及应答的序列号等;如果数据接收方端口的当前拥塞控制窗口ccwd可分配的信用值不够,则等到有可用的信用值时,再向对应的数据发送方返回一个ACK。举例来说,信用值指允许发送的数据量,一般信用值以KB为单位。以4KB为单位的信用值为例,如果ccwd还剩余4个信用值,表明还可以允许发送方发送16KB的数据量。每个端口通过一个拥塞控制窗口cwnd来维护信用值的分配和回收。ccwd所包含的初始化信用值设置为端口速率与网络RTT时间的乘积(即BDP),其后,分配的时候减少相应的信用值,接收到数据时回收信用值。
接收方R0_QP2接收数据并更新R0的拥塞控制窗口cwnd,因为每个端口通过一个拥塞控制窗口cwnd来维护信用值的分配和回收。ccwd所包含的初始化信用值可以设置为BDP的倍数,其后,分配的时候减少相应的信用值,接收到数据时回收信用值。
数据接收方的每一条流(以R0_QP2对应的流为例)每收到预设数据信用阈值的数据量(如R0_QP2每接收到Cthresh的数据量),则查询当前ccwd是否有可分配的信用值,如果有则向对应的数据发送方返回一个ACK,并分配设定阈值的信用值,否则等到有可用的信用值时,再向对应的数据发送方返回一个ACK。
其中,数据发送方的主要流程如下:
数据发送方维护一个发送窗口twnd,初始值设置为一个预设数据信用阈值(如所示Cthresh),初始化时,数据发送方可以发送一定量的数据包(如S0_QP2和S1_QP2,初始时可以向R0发送Cthresh的数据量),直到twnd==0。
因为每一个发送控制窗口twnd维护可发送信用值大小,初始化大小也等于预设数据信用阈值Cthresh,每发送一个数据包,则twnd减去相应的信用值,如果接收方返回一个带预设阈值的ACK之后,则twnd加上预设阈值,如果twnd减到0之后,就不能发送了。
为了在不增加额外的网络通信协议,数据发送方在初始化的第一个数据包中标记返回一个ACK的标识,以便接收方可以将分配的信用值携带在ACK中返回给发送方,数据发送方接收到数据接收方分配的信用值,更新tcwd(如tcwd+=Cthresh);数据发送方根据更新后的tcwd(发送窗口可用数据量)判定数据包发送,继续向数据接收方发送数据包,直到发送窗口的信用值不足以发送一个数据包时停止发送。
因此,本实施例中,数据接收方按端口维护一个拥塞控制窗口cwnd,用于控制向数据接收方发送数据的所有数据发送方的发送数据总速率不超过自身处理的能力,进而从根本上解决i ncast拥塞控制问题;进一步地,为了实现主动对各条数据流的流量进行控制及保证各条数据流之间的公平性,该接收方根据可分配的数据信用值,可以均分配置给各发送方发送数据的信用阈值,从而使得各条数据流之间的网络流量负载均衡,因此可以减小网内拥塞的问题。
图7为本发明一实施例提供的接收节点设备的结构示意图;如图7所示,包括:存储器、处理器以及通信组件;
通信组件,用于接收发送节点设备发送的预设数据信用阈值的数据;可选地,所述数据中携带有用于接收节点设备向发送节点设备返回数据信用阈值的标识;
存储器,用于存储计算机程序;
处理器,与存储器和通信组件耦合,用于执行计算机程序,以用于:
根据预设数据信用阈值的数据中携带的标识,确定配置给发送节点设备发送数据的数据信用值。
通信组件,还用于将所述数据信用值发送给所述发送节点设备,以使所述发送节点设备根据所述数据信用值向所述接收节点设备发送数据;
处理器,用于执行计算机程序,还用于:
为每个端口设置对应的拥塞控制窗口,所述拥塞控制窗口用于控制所有发送节点通过其对应的端口向所述接收节点发送数据的数据信用总量。
处理器,用于执行计算机程序,还用于:
确定接收所述发送节点发送数据的端口;
查询确定所述端口对应的拥塞控制窗口当前包含的数据信用值,所述拥塞控制窗口当前包含的数据信用值为所述拥塞控制窗口的数据信用总量减去已经分配给其他发送节点的数据信用值;
若确定所述拥塞控制窗口当前包含的数据信用值大于等于所述预设数据信用阈值,则确定所述拥塞控制窗口存在可分配的数据信用值;
根据所述可分配的数据信用值,向所述发送节点分配发送数据的数据信用值。
处理器,用于执行计算机程序,还用于:
根据分配给所述发送节点的数据信用值,减少所述拥塞控制窗口当前包含的数据信用值;或者
接收到所述发送节点根据所述数据信用值发送的数据之后,根据接收到的数据量,增加所述拥塞控制窗口当前包含的数据信用值。
进一步,如图7所示,接收节点设备还包括:显示器、电源组件、音频组件等其它组件。图7中仅示意性给出部分组件,并不意味着接收节点设备只包括图7所示组件。
本实施例所示接收节点设备可以执行上述图1所示方法实施例,其实现原理和技术效果不再赘述。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被计算机执行时能够实现上述方法实施例中与接收节点设备相关的步骤或操作,在此不再赘述。
图8为本发明另一实施例提供的发送节点设备的结构示意图,如图8所示,包括:存储器、处理器以及通信组件;
通信组件,用于根据预设数据信用阈值向接收节点设备发送一定量的数据;可选地,所述预设数据信用阈值的数据中携带有用于所述接收节点设备返回数据信用阈值的标识,以使所述接收节点设备确定配置给所述发送节点设备发送数据的数据信用值,并将所述数据信用值发送给所述发送节点设备;
存储器,用于存储计算机程序;
处理器,与存储器和通信组件耦合,用于执行计算机程序,以用于:
根据所述接收节点设备配置的所述数据信用值,设置所述发送节点设备的发送窗口的数据信用值,所述发送窗口的数据信用值表示所述发送节点设备向所述接收节点设备可以发送的数据总量;
根据所述发送节点设备发送数据的数据量,减小所述发送窗口的数据信用值;
在所述发送窗口的数据信用值等于零时,停止向所述接收节点设备发送数据。
进一步,如图8所示,发送节点设备还包括:显示器、电源组件、音频组件等其它组件。图8中仅示意性给出部分组件,并不意味着发送节点设备只包括图8所示组件。
本实施例所示发送节点设备可以执行上述图2所示系统实施例,其实现原理和技术效果不再赘述。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被计算机执行时能够实现上述方法实施例中与发送节点设备相关的步骤或操作,在此不再赘述。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (19)
1.一种数据接收方法,其特征在于,包括:
接收节点确定配置给发送节点发送数据的数据信用值;
将所述数据信用值发送给所述发送节点,以使所述发送节点根据所述数据信用值向所述接收节点发送数据。
2.根据权利要求1所述的方法,其特征在于,接收节点确定配置给发送节点发送数据的数据信用值之前,还包括:
所述接收节点接收所述发送节点发送的预设数据信用阈值的数据,所述数据中携带有便于所述接收节点向所述发送节点返回数据信用值的标识。
3.根据权利要求1所述的方法,其特征在于,接收节点确定配置给发送节点发送数据的数据信用值之前,还包括:
所述接收节点为每个端口设置对应的拥塞控制窗口,所述拥塞控制窗口用于控制所有发送节点通过其对应的端口向所述接收节点发送数据的数据信用总量。
4.根据权利要求2或3所述的方法,其特征在于,确定配置给所述发送节点发送数据的数据信用值,包括:
所述接收节点确定接收所述发送节点发送数据的端口;
查询确定所述端口对应的拥塞控制窗口当前包含的数据信用值,所述拥塞控制窗口当前包含的数据信用值为所述拥塞控制窗口的数据信用总量减去已经分配给其他发送节点的数据信用值;
若确定所述拥塞控制窗口当前包含的数据信用值大于等于所述预设数据信用阈值,则确定所述拥塞控制窗口存在可分配的数据信用值;
根据所述可分配的数据信用值,向所述发送节点分配发送数据的数据信用值。
5.根据权利要求4所述的方法,其特征在于,将所述数据信用值发送给所述发送节点之后包括:
所述接收节点根据分配给所述发送节点的数据信用值,减少所述拥塞控制窗口当前包含的数据信用值;或者
所述接收节点接收到所述发送节点根据所述数据信用值发送的数据之后,根据接收到的数据量,增加所述拥塞控制窗口当前包含的数据信用值。
6.一种数据发送方法,其特征在于,包括:
发送节点接收到接收节点配置的数据信用值;
所述发送节点根据所述数据信用值,向所述接收节点发送数据。
7.根据权利要求6所述的方法,其特征在于,发送节点接收到接收节点配置的数据信用值之前包括:
所述发送节点向所述接收节点发送预设数据信用阈值的数据,所述数据中携带有用于所述接收节点向所述发送节点返回数据信用值的标识。
8.根据权利要求6所述的方法,其特征在于,所述发送节点根据所述数据信用值,向所述接收节点发送数据,包括:
所述发送节点根据所述数据信用值,增加所述发送节点的发送窗口的数据信用值,所述发送窗口的数据信用值表示所述发送节点向所述接收节点可以发送的数据总量;
所述发送节点根据所述发送窗口的数据信用值,向所述接收节点发送数据。
9.根据权利要求8所述的方法,其特征在于,所述发送节点根据所述数据信用值,向所述接收节点发送数据之后还包括:
所述发送节点根据发送数据的数据量,减小所述发送窗口的数据信用值;
在所述发送窗口的数据信用值等于零时,停止向所述接收节点发送数据。
10.一种数据接收装置,位于接收节点侧,其特征在于,包括:
分配模块,用于确定配置给发送节点发送数据的数据信用值;
发送模块,用于将所述数据信用值发送给所述发送节点,以使所述发送节点根据所述数据信用值发送数据。
11.根据权利要求10所述的装置,其特征在于,还包括:
接收模块,用于接收所述发送节点发送的预设数据信用阈值的数据,所述数据中携带有便于所述接收节点向所述发送节点返回数据信用值的标识。
12.根据权利要求10所述的装置,其特征在于,还包括:
设置模块,用于为每个端口设置对应的拥塞控制窗口,所述拥塞控制窗口用于控制所有发送节点通过其对应的端口向所述接收节点发送数据的数据信用总量。
13.根据权利要求11或12所述的装置,其特征在于,所述分配模块具体用于:查询确定所述端口对应的拥塞控制窗口当前包含的数据信用值,所述拥塞控制窗口当前包含的数据信用值为所述拥塞控制窗口的数据信用总量减去已经分配给其他发送节点的数据信用值;若确定所述拥塞控制窗口当前包含的数据信用值大于等于所述预设数据信用阈值,则确定所述拥塞控制窗口存在可分配的数据信用值;根据所述可分配的数据信用值,向所述发送节点分配发送数据的数据信用值。
14.根据权利要求13所述的装置,其特征在于,还包括:
更新模块,用于根据分配给所述发送节点的数据信用值,减少所述拥塞控制窗口当前包含的数据信用值;或者接收到所述发送节点根据所述数据信用值发送的数据之后,根据接收到的数据量,增加所述拥塞控制窗口当前包含的数据信用值。
15.一种数据发送装置,位于发送节点侧,其特征在于,包括:
接收模块,用于接收到接收节点配置的数据信用值;
发送模块,用于根据所述接收节点配置的数据信用值,向所述接收节点发送数据。
16.根据权利要求15所述的装置,其特征在于:
所述发送模块,还用于向所述接收节点发送预设数据信用阈值的数据,所述数据中携带有用于所述接收节点向所述发送节点返回数据信用值的标识。
17.根据权利要求15所述的装置,其特征在于,包括:
更新模块,用于根据所述接收节点配置的数据信用值,增加所述发送节点的发送窗口的数据信用值,所述发送窗口的数据信用值表示所述发送节点向所述接收节点可以发送的数据总量;
所述发送模块,用于根据所述发送窗口的数据信用值,向所述接收节点发送数据。
18.根据权利要求17所述的装置,其特征在于,包括:
所述更新模块,用于根据所述发送节点发送数据的数据量,减小所述发送窗口的数据信用值;
所述发送模块,还用于在所述发送窗口的数据信用值等于零时,停止向所述接收节点发送数据。
19.一种数据接收和发送系统,其特征在于,包括:接收节点和发送节点;
所述接收节点包括如权利要求10-14中任一项所述的数据接收装置;
所述发送节点包括如权利要求15-18中任一项所述的数据发送装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910009064.0A CN111416775B (zh) | 2019-01-04 | 2019-01-04 | 数据接收和发送方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910009064.0A CN111416775B (zh) | 2019-01-04 | 2019-01-04 | 数据接收和发送方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111416775A true CN111416775A (zh) | 2020-07-14 |
CN111416775B CN111416775B (zh) | 2023-10-10 |
Family
ID=71492617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910009064.0A Active CN111416775B (zh) | 2019-01-04 | 2019-01-04 | 数据接收和发送方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111416775B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022121469A1 (zh) * | 2020-12-10 | 2022-06-16 | 苏州浪潮智能科技有限公司 | 一种流量控制方法、装置、设备及可读存储介质 |
WO2024061042A1 (zh) * | 2022-09-20 | 2024-03-28 | 华为技术有限公司 | 数据传输方法和数据传输系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050228900A1 (en) * | 2004-04-08 | 2005-10-13 | David Stuart | Credit recovery in a credit based flow control system |
CN102075436A (zh) * | 2011-02-10 | 2011-05-25 | 成都市华为赛门铁克科技有限公司 | 以太网络及其数据传输方法和装置 |
CN103647722A (zh) * | 2013-11-19 | 2014-03-19 | 中国科学院计算技术研究所 | 一种基于信誉的链路拥塞控制方法 |
CN103841046A (zh) * | 2012-11-19 | 2014-06-04 | 美国博通公司 | 基于信誉的链路级流控制的系统和方法 |
US20160021016A1 (en) * | 2014-07-21 | 2016-01-21 | Mellanox Technologies Ltd. | Credit-based flow control for long-haul links |
CN107615212A (zh) * | 2015-05-20 | 2018-01-19 | 国际商业机器公司 | 通过一个或多个主机计算设备的多个通道接收用于将数据传输到控制单元的缓冲区信用 |
CN107864099A (zh) * | 2017-10-23 | 2018-03-30 | 中国科学院空间应用工程与技术中心 | 一种异构fc网络的流量控制方法及系统 |
-
2019
- 2019-01-04 CN CN201910009064.0A patent/CN111416775B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050228900A1 (en) * | 2004-04-08 | 2005-10-13 | David Stuart | Credit recovery in a credit based flow control system |
CN102075436A (zh) * | 2011-02-10 | 2011-05-25 | 成都市华为赛门铁克科技有限公司 | 以太网络及其数据传输方法和装置 |
CN103841046A (zh) * | 2012-11-19 | 2014-06-04 | 美国博通公司 | 基于信誉的链路级流控制的系统和方法 |
CN103647722A (zh) * | 2013-11-19 | 2014-03-19 | 中国科学院计算技术研究所 | 一种基于信誉的链路拥塞控制方法 |
US20160021016A1 (en) * | 2014-07-21 | 2016-01-21 | Mellanox Technologies Ltd. | Credit-based flow control for long-haul links |
CN107615212A (zh) * | 2015-05-20 | 2018-01-19 | 国际商业机器公司 | 通过一个或多个主机计算设备的多个通道接收用于将数据传输到控制单元的缓冲区信用 |
CN107864099A (zh) * | 2017-10-23 | 2018-03-30 | 中国科学院空间应用工程与技术中心 | 一种异构fc网络的流量控制方法及系统 |
Non-Patent Citations (2)
Title |
---|
INHO CHO;等: "Credit-Scheduled Delay-Bounded Congestion Control for Datacenters", 《SIGCOMM \'17: PROCEEDINGS OF THE CONFERENCE OF THE ACM SPECIAL INTEREST GROUP ON DATA COMMUNICATION》 * |
赖峻;叶梧;冯穗力;郭华;: "基于接收方信用量调整的TCP新算法", 系统工程与电子技术, no. 08 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022121469A1 (zh) * | 2020-12-10 | 2022-06-16 | 苏州浪潮智能科技有限公司 | 一种流量控制方法、装置、设备及可读存储介质 |
WO2024061042A1 (zh) * | 2022-09-20 | 2024-03-28 | 华为技术有限公司 | 数据传输方法和数据传输系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111416775B (zh) | 2023-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3419627B2 (ja) | ルータ装置 | |
US6907042B1 (en) | Packet processing device | |
WO2018210117A1 (zh) | 一种拥塞控制方法、网络设备及其网络接口控制器 | |
KR101618985B1 (ko) | Sdn 환경에서 트래픽의 동적 제어를 위한 방법 및 장치 | |
CN101120571A (zh) | 用于无线tcp连接的最优化的方法和系统 | |
US11258717B2 (en) | Method for sending service packet, network device, and system | |
CN108833293A (zh) | 一种基于软件定义网络sdn的数据中心拥塞控制方法及装置 | |
CN103634235A (zh) | 一种限定虚拟机网络接口速度的方法 | |
US20200351215A1 (en) | Data Stream Sending Method and System, and Device | |
CN111526095A (zh) | 一种流量控制方法和装置 | |
CN111416775B (zh) | 数据接收和发送方法、装置及系统 | |
US7613198B2 (en) | Method and apparatus for dynamic assignment of network interface card resources | |
US11165705B2 (en) | Data transmission method, device, and computer storage medium | |
CN115460156A (zh) | 一种数据中心无损网络拥塞控制方法、装置、设备及介质 | |
M. Abdelmoniem et al. | Reducing latency in multi-tenant data centers via cautious congestion watch | |
KR101737516B1 (ko) | 공평한 대역 할당 기반 패킷 스케줄링 방법 및 장치 | |
JP2007013449A (ja) | シェーパー制御方法、データ通信システム、ネットワークインタフェース装置及びネットワーク中継装置 | |
CN109995608B (zh) | 网络速率计算方法和装置 | |
WO2015180426A1 (zh) | 一种数据传输方法、装置及系统 | |
KR101768696B1 (ko) | 우선순위 큐잉을 수행하는 네트워크 스위치 | |
WO2015107806A1 (ja) | 通信装置 | |
US11805071B2 (en) | Congestion control processing method, packet forwarding apparatus, and packet receiving apparatus | |
WO2021098368A1 (zh) | 一种实现拥塞控制的方法、装置和系统 | |
KR101957239B1 (ko) | 작업 처리 방법 및 장치 | |
KR102128015B1 (ko) | 네트워크 스위칭 장치 및 이를 이용한 마킹 수행 방법 |
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 |