CN113162862A - 拥塞控制方法及装置 - Google Patents
拥塞控制方法及装置 Download PDFInfo
- Publication number
- CN113162862A CN113162862A CN202010077053.9A CN202010077053A CN113162862A CN 113162862 A CN113162862 A CN 113162862A CN 202010077053 A CN202010077053 A CN 202010077053A CN 113162862 A CN113162862 A CN 113162862A
- Authority
- CN
- China
- Prior art keywords
- congestion
- data flow
- message
- packet
- time interval
- 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
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
-
- 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/122—Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities
-
- 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/11—Identifying congestion
- H04L47/115—Identifying congestion using a dedicated packet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
- H04L43/106—Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
-
- 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/28—Flow control; Congestion control in relation to timing considerations
-
- 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/31—Flow control; Congestion control by tagging of packets, e.g. using discard eligibility [DE] bits
-
- 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/35—Flow control; Congestion control by embedding flow control information in regular packets, e.g. piggybacking
-
- 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/29—Flow control; Congestion control using a combination of thresholds
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种拥塞控制方法及装置。在本申请中,网络设备获取发送的第一数据流中的一个或多个拥塞报文的时间信息,该一个或多个拥塞报文携带有显示拥塞通知的标记;若该第一数据流发生拥塞时,根据该第一数据流中的一个或多个拥塞报文的时间信息,获取第一拥塞通知报文,该第一拥塞通知报文用于对被拥塞超过第一设定时间间隔的报文进行拥塞通知;以及发送该第一拥塞通知报文。采用本申请的方案,可以避免数据流被拥塞时仍然被做速率升速处理,提高了报文传输效率。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种拥塞控制方法及装置。
背景技术
为了减少网络传输中服务器端数据处理的延迟,利用远程直接数据存储(remotedirect memory access,RDMA)技术进行数据传输,其允许客户端的应用程序直接远程读取和写入服务器端的内存。RDMA技术中在端节点的网卡(network interface cards,NICs)上通过已注册的缓存直接收发数据,网络协议全部部署在NICs上,不需要经过主机的网络协议栈,这种方式显著减少了主机中的中央处理器(central processing unit,CPU)的占有率和整体时延。应用于聚合以太网的RDMA(RDMA over converged ethernet,RoCE)协议包括两个版本:RoCEv1和RoCEv2,二者的主要区别是RoCEv1是基于以太网链路层实现的RDMA协议,RoCEv2是基于以太网中的传输控制协议/因特网互联协议(transmission controlprotocol/internet protocol,TCP/IP)协议中的用户数据报协议(user datagramprotocol,UDP)层实现的RDMA协议。
在部署了满足高吞吐量、超低时延和低CPU开销需求的网络协议后,需要找到一个拥塞控制算法以使网络无丢包可靠传输,因此提出了数据中心量化拥塞通知(data centerquantized congestion notification,DCQCN)。DCQCN规定当目的端设备接收到携带显示拥塞通知(explicit congestion notification,ECN)标记的报文(即拥塞发生(congestion encountered,CE)报文)时,表示网络拥塞,因此目的端设备将该网络拥塞信息传递给源端设备。RoCEv2协议为此定义了显式的拥塞通知包(congestion notificationpacket,CNP)报文。如果CE报文到达某个流,并且在过去的n微秒内目的端设备没有为该流发送过CNP报文,则目的端设备立即发送一个CNP报文。即如果在时间窗口(n微妙)内到达某个流的有多个CE报文,则源端设备每n微秒最多为该流生成一个CNP报文。在目的端设备上,当目的端设备收到一个CNP报文时,目的端设备减小发送速率,并更新速率降低因子。目的端设备还会在连续一段时间内未收到CNP报文时,按照一定的算法增加发送速率。
然而,当流的规模较大时,每条流能分到的平均带宽较小,容易发生拥塞。如图1所示的DCQCN控速失败的示意图,对于发生拥塞的流,可能存在各条流的报文时间间隔(即该流能获得CNP报文的最小时间间隔)大于速率升速的时间间隔,由于发生拥塞,源端设备未收到CNP报文,这会导致处于拥塞状态的流被做速率升速处理,从而出现控速收敛失败的情况,影响报文传输效率。
发明内容
本申请提供一种拥塞控制方法及装置,以避免数据流被拥塞时仍然被做速率升速处理,提高报文传输效率。
第一方面,提供了一种拥塞控制方法,所述方法包括:获取发送的第一数据流中的一个或多个拥塞报文的时间信息,所述一个或多个拥塞报文携带有拥塞标记。若所述第一数据流发生拥塞,根据所述第一数据流中的一个或多个拥塞报文的时间信息,获取第一拥塞通知报文,所述第一拥塞通知报文用于对被拥塞超过第一设定时间间隔的报文进行拥塞通知。发送所述第一拥塞通知报文。可以避免数据流被拥塞时仍然被做速率升速处理,提高了报文传输效率。该拥塞标记可以是ECN标记,本申请对拥塞标记的名称不做限定。该拥塞通知报文可以是CNP报文,本申请对拥塞通知报文的名称不做限定。
在一个实现中,所述若所述第一数据流发生拥塞时,根据所述第一数据流中的一个或多个拥塞报文的时间信息,获取第一拥塞通知报文,包括:若当前时间与发送第一拥塞报文的时间之间的时间间隔大于或等于所述第一设定时间间隔,获取所述第一拥塞通知报文,其中,所述第一拥塞报文为在所述当前时间之前发送的第一数据流的最后一个报文。若发送一个拥塞报文之后超过一定时间间隔仍未发送新的拥塞报文,需要向源端设备发送补充的拥塞通知报文,以避免该数据流被源端设备进行升速处理。该时间间隔可以是数据流的报文升速间隔。
在又一个实现中,所述若当前时间与发送第一拥塞报文的时间的时间间隔大于或等于第一设定时间间隔,获取第一拥塞通知报文,包括:发送完所述第一拥塞报文时,启动计时器,其中,所述计时器的计时时间为所述第一设定时间间隔;以及若所述计时时间到达时,未发送所述第一数据流的下一个报文,获取所述第一拥塞通知报文。通过计时器从发送上一个拥塞报文开始进行计时,在计时时间到达时,若尚未发送下一个报文,可以向源端设备发送补充的拥塞通知报文,以避免该数据流被源端设备进行升速处理。
在又一个实现中,所述若当前时间与发送第一拥塞报文的时间的时间间隔大于或等于第一设定时间间隔,获取第一拥塞通知报文,包括:根据设定周期监测当前时间与发送所述第一拥塞报文的时间之间的时间间隔是否大于或等于所述第一设定时间间隔。若当前时间与发送所述第一拥塞报文的时间之间的时间间隔大于或等于所述第一设定时间间隔,获取所述第一拥塞通知报文。通过周期性地监测在发送完上一个拥塞报文开始,是否有发送下一个报文,若尚未发送下一个报文,可以向源端设备发送补充的拥塞通知报文,以避免该数据流被源端设备进行升速处理。
在又一个实现中,所述若所述第一数据流发生拥塞时,根据所述第一数据流中的一个或多个拥塞报文的时间信息,获取第一拥塞通知报文,包括:若发送第二拥塞报文的时间与发送第一拥塞报文的时间之间的时间间隔大于或等于所述第一设定时间间隔,获取所述第一拥塞通知报文,所述第一拥塞报文为所述第二拥塞报文的上一个报文,所述第一拥塞报文和所述第二拥塞报文对应所述第一数据流。若发送两个拥塞报文之间的时间间隔过大,也可以向源端设备发送补充的拥塞通知报文,以避免该数据流被源端设备进行升速处理。
在又一个实现中,所述发送第一拥塞通知报文,包括:监测当前时间与获取所述第一拥塞通知报文之间的时间间隔是否大于或等于第二设定时间间隔。若当前时间与获取所述第一拥塞通知报文之间的时间间隔大于或等于所述第二设定时间间隔,发送所述第一拥塞通知报文。可以在获取到补充的拥塞通知报文后,延迟一定时间发送该补充的拥塞通知报文。可以使得该补充的拥塞通知报文尽量在上一个发送的拥塞报文的拥塞通知报文之后,以及在下一个发送的拥塞报文的拥塞通知报文之前。然而,拥塞通知报文与拥塞报文之间并无对应关系,每个拥塞通知报文的内容都相同,只是发送拥塞报文和发送拥塞通知报文的数量上可以有一定的对应关系。上述第二设定时间间隔可以是根据发送所述第一拥塞报文的时间与接收到目的端设备发送的第二拥塞通知报文的时间之间的时间间隔确定的。
在又一个实现中,所述发送第一拥塞通知报文,包括:获取所述第一拥塞通知报文后,即时发送所述第一拥塞通知报文。即时发送拥塞通知报文,可以使得源端设备及时地接收到拥塞通知,从而及时进行降速处理。
在又一个实现中,所述方法还包括:获取所述第一数据流中的一个或多个拥塞报文的传输参数。根据所述一个或多个拥塞报文的传输参数,确定所述第一数据流发生拥塞。根据拥塞报文的传输参数可以判断数据流是否发生拥塞。
在又一个实现中,所述方法还包括:以设定采样率对所述第一数据流的一个或多个拥塞报文进行采样和复制,获取所述第一数据流对应的镜像数据流,其中,所述镜像数据流包括一个或多个镜像报文。可以由转发芯片进行拥塞识别和控制,也可以新增一个协处理器,协处理器从转发芯片采样和复制数据流中的拥塞报文,进行拥塞识别和控制。
在又一个实现中,所述传输参数包括报文数量和报文长度,所述根据所述一个或多个拥塞报文的传输参数,确定所述第一数据流发生拥塞,包括:根据第一时间段内发送的第一队列中的一个或多个所述第一数据流的拥塞报文数量和拥塞报文长度,确定队列的拥塞报文速率。若所述队列的拥塞报文速率大于或等于第一速率阈值,确定所述第一队列发生拥塞,所述第一队列进入拥塞状态。可以根据一个队列中发送的一个或多个数据流的报文数量和报文长度,准确地确定该队列的拥塞报文速率,从而判断该队列是否发生拥塞。队列发生拥塞,则该队列中的数据流都发生拥塞。
在又一个实现中,所述方法还包括:若所述队列的拥塞报文速率小于或等于第二速率阈值,确定所述第一队列未发生拥塞,所述第一队列退出所述拥塞状态,其中,所述第二速率阈值小于所述第一速率阈值。队列发生拥塞后,在队列的拥塞报文速率小于一定值,可以判断该队列退出拥塞状态。然而,拥塞报文速率位于第一速率阈值和第二速率阈值之间时,该队列仍处于拥塞状态,需要对该队列进行拥塞控制。
在又一个实现中,所述传输参数包括所述第一数据流中的一个或多个拥塞报文的序列号,所述根据所述一个或多个拥塞报文的传输参数,确定所述第一数据流发生拥塞,包括:获取所述第一数据流中拥塞报文的序列号的连续程度。若所述连续程度大于或等于第一阈值,确定所述第一数据流发生拥塞,所述第一数据流进入拥塞状态。对于单个数据流,报文头中都携带有报文的序列号,通过获取数据流中的拥塞报文的序列号的连续程度,可以确定拥塞报文的连续程度,从而判断该数据流是否发生拥塞。例如,拥塞报文的序列号的连续程度可以是指拥塞报文的连续的序列号的数量,相应的,拥塞报文的连续程度可以是指拥塞报文的连续的序列号对应的报文的数量。该拥塞报文的连续的序列号的数量可以是采样的该数据流中的连续的序列号的数量。又例如,拥塞报文的序列号的连续程度可以是指拥塞报文的序列号之间的差值,网络设备发送出去的一定数量的报文中,拥塞报文的序列号之间的差值小于设定阈值,则也可以认为该数据流中的拥塞报文的序列号的连续程度大于设定阈值,可以确定拥塞报文的连续程度,从而判断该数据流发生拥塞。
在又一个实现中,所述方法还包括:若所述连续程度小于或等于第二阈值,确定所述第一数据流未发生拥塞,所述第一数据流退出所述拥塞状态,第二阈值小于上述第一阈值。若拥塞报文的序列号的连续程度小于一定阈值,则可以判断该数据流退出拥塞状态。
第二方面,提供了一种拥塞控制装置,包括:第一获取单元,用于获取发送的第一数据流中的一个或多个拥塞报文的时间信息,所述一个或多个拥塞报文携带有拥塞标记;第二获取单元,用于若所述第一数据流发生拥塞时,根据所述第一数据流中的一个或多个拥塞报文的时间信息,获取第一拥塞通知包拥塞通知报文,所述第一拥塞通知报文用于对被拥塞超过第一设定时间间隔的报文进行拥塞通知;以及第一发送单元,用于发送所述第一拥塞通知报文。
在一个实现中,所述第二获取单元用于若当前时间与发送第一拥塞报文的时间之间的时间间隔大于或等于所述第一设定时间间隔,获取所述第一拥塞通知报文,其中,所述第一拥塞报文为在所述当前时间之前发送的第一数据流的最后一个报文。
在又一个实现中,所述第二获取单元包括:启动单元,用于发送完所述第一拥塞报文时,启动计时器,其中,所述计时器的计时时间为所述第一设定时间间隔;以及第三获取单元,用于若所述计时时间到达时,未发送所述第一数据流的下一个报文,获取所述第一拥塞通知报文。
在又一个实现中,所述第二获取单元包括:第一监测单元,用于根据设定周期监测当前时间与发送所述第一拥塞报文的时间之间的时间间隔是否大于或等于所述第一设定时间间隔;以及第四获取单元,用于若当前时间与发送所述第一拥塞报文的时间之间的时间间隔大于或等于所述第一设定时间间隔,获取所述第一拥塞通知报文。
在又一个实现中,所述第二获取单元用于若发送第二拥塞报文的时间与发送第一拥塞报文的时间之间的时间间隔大于或等于所述第一设定时间间隔,获取所述第一拥塞通知报文,所述第一拥塞报文为所述第二拥塞报文的上一个报文,所述第一拥塞报文和所述第二拥塞报文对应所述第一数据流。
在又一个实现中,所述第一发送单元包括:第二监测单元,用于监测当前时间与获取所述第一拥塞通知报文之间的时间间隔是否大于或等于第二设定时间间隔;以及第二发送单元,用于若当前时间与获取所述第一拥塞通知报文之间的时间间隔大于或等于所述第二设定时间间隔,发送所述第一拥塞通知报文,其中,所述第二设定时间间隔是根据发送所述第一拥塞报文的时间与接收到目的端设备发送的第二拥塞通知报文的时间之间的时间间隔确定的。
在又一个实现中,所述第一发送单元用于获取所述第一拥塞通知报文后,即时发送所述第一拥塞通知报文。
在又一个实现中,所述装置还包括:第五获取单元,用于获取所述第一数据流中的一个或多个拥塞报文的传输参数;以及第一确定单元,用于根据所述一个或多个拥塞报文的传输参数,确定所述第一数据流发生拥塞。
在又一个实现中,所述装置还包括:采样复制单元,用于以设定采样率对所述第一数据流的一个或多个拥塞报文进行采样和复制,获取所述第一数据流对应的镜像数据流,其中,所述镜像数据流包括一个或多个镜像报文。
在又一个实现中,所述传输参数包括报文数量和报文长度,所述第一确定单元包括:第二确定单元,用于根据第一时间段内发送的第一队列中的一个或多个所述第一数据流的拥塞报文数量和拥塞报文长度,确定队列的拥塞报文速率;以及第三确定单元,用于若所述队列的拥塞报文速率大于或等于第一速率阈值,确定所述第一队列发生拥塞,所述第一队列进入拥塞状态。
在又一个实现中,所述装置还包括:第四确定单元,用于若所述队列的拥塞报文速率小于或等于第二速率阈值,确定所述第一队列未发生拥塞,所述第一队列退出所述拥塞状态,其中,所述第二速率阈值小于所述第一速率阈值。
在又一个实现中,所述传输参数包括所述第一数据流中的一个或多个拥塞报文的序列号,所述第一确定单元包括:第六获取单元,用于获取所述第一数据流中拥塞报文的序列号的连续程度;第五确定单元,用于若所述连续程度大于或等于第一阈值,确定所述第一数据流发生拥塞,所述第一数据流进入拥塞状态。
在又一个实现中,所述装置还包括:第六确定单元,用于若所述连续程度小于或等于第二阈值,确定所述第一数据流未发生拥塞,所述第一数据流退出所述拥塞状态,第二阈值小于上述第一阈值。
第三方面,提供了一种拥塞控制装置,包括处理器和物理接口,所述处理器用于执行上述第一方面或第一方面的任一个实现所述的方法。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面的任一个实现所述的方法。
第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面的任一个实现所述的方法。
附图说明
图1为DCQCN控速失败的示意图;
图2为实现本申请实施例的拥塞控制方法的一个通信系统的结构示意图;
图3为本申请实施例的拥塞控制方法适用的一个典型场景示意图;
图4为本申请实施例提供的一种拥塞控制方法的流程示意图;
图5为本申请实施例提供的又一种拥塞控制方法的流程示意图;
图6为识别队列发生拥塞的示意图;
图7为根据队列深度识别拥塞的示意图;
图8为队列拥塞控制的示意图;
图9为又一队列拥塞控制的示意图;
图10为识别数据流发生拥塞的示意图;
图11为流拥塞控制的示意图;
图12为又一流拥塞控制的示意图;
图13为本申请实施例提供的一种拥塞控制装置的结构示意图;
图14为本申请实施例提供的又一种拥塞控制装置的结构示意图。
具体实施方式
下面结合本申请实施例中的附图对本申请实施例进行描述。
图2为实现本申请实施例的拥塞控制方法的一个通信系统示例,如图2所示,该通信系统可以包括源端设备100、1~n个网络设备200以及目的端设备300,n≥1。其中,源端设备是指数据流的发送端,目的端设备是指数据流的接收端,网络设备可以是交换机等。本申请实施例由网络设备实现拥塞控制。在实现基于DCQCN的拥塞控制算法的通信系统中,上述源端设备也可以称为反应点(reaction point,RP),上述网络设备也可以称为拥塞点(congestion point,CP),上述目的端设备也可以称为通知点(notification point,NP)。
图3为本申请拥塞控制方法适用的一个典型场景示例,如图3所示,该场景为数据中心网络,其可应用于高性能计算、高性能分布式存储、大数据、人工智能等。在该数据中心网络中,服务器通过叶子节点,还可以通过根节点,与其它服务器之间进行数据传输。其数据传输采用RDMA技术。其中,一般地,服务器与叶子节点的传输速率低于叶子节点与根节点的传输速率,例如服务器与叶子节点的传输速率为25G/s,叶子节点与根节点的传输速率为100G/s。具体地,该数据中心网络可以是CLOS网络,CLOS网络包括服务器、核心交换机和接入交换机,服务器通过接入交换机和核心交换机接入网络,源端设备可以是该网络中的一个或多个服务器,目的端设备可以是该网络中的另一个或多个服务器,网络设备可以是该网络中的接入交换机和核心交换机。
本申请实施例提供一种拥塞控制方法及装置,通过获取数据流中的拥塞报文的时间信息,若该数据流发生拥塞,对于被拥塞超过一定时间间隔的报文进行拥塞通知,以避免数据流被拥塞时仍然被做速率升速处理,提高了报文传输效率。
图4为本申请实施例提供的一种拥塞控制方法的流程示意图,如图4所示,该拥塞控制方法可以包括:
S101、获取发送的第一数据流中的一个或多个拥塞报文的传输参数。
该第一数据流是指经过一个或多个网络设备由源端设备发送给目的端设备的数据流。该第一数据流可以是一个数据流,也可以是源和目的相同的不同业务类型的多个数据流,即汇聚流。本实施例的拥塞识别和拥塞控制可以是由源端设备和目的端设备之间的任一个网络设备或每个网络设备执行。具体地,本实施例的拥塞识别和拥塞控制可以由网络设备的转发芯片执行,也可以由一个协处理器执行。如果是由转发芯片执行,则可以无需其他操作,对转发的数据流进行拥塞识别和控制,时效性较高。如果是由协处理器执行,则可以对转发芯片转发的拥塞报文进行采样和复制,然后基于复制得到的镜像数据流进行拥塞识别和控制。
第一数据流中可以包括拥塞报文和普通报文。每个报文承载第一数据流中的相应的内容。拥塞报文是指被打上ECN标记的报文。普通报文是指未被打上ECN标记的报文。本实施例中,网络设备针对的是第一数据流中的拥塞报文。
报文采用相应的传输参数在各个网络设备之间传输。该传输参数包括传输速率、报文长度、队列深度等。该传输参数对报文能否顺利传输到目的端设备具有十分重要的意义。因此,需要获取第一数据流中的各个拥塞报文的传输参数。
S102、根据一个或多个拥塞报文的传输参数,确定第一数据流发生拥塞。
网络设备从上游接收到的拥塞报文进入其出端口的队列中。网络设备可以包括一个或多个队列。一个或多个数据流可以进入到一个队列中排队等待发送。一个队列具有一定的深度,根据拥塞报文的传输参数,判断如果一个队列中发送的拥塞报文过多,则可确定造成该队列或该队列中的某个数据流发生拥塞。
上述S101和S102为可选的步骤,图中以虚线表示。即可以在执行下述的拥塞控制流程前确定数据流是否发生拥塞,也可以在知晓数据流已经发生拥塞的前提下,执行下述的拥塞控制流程。
S103、获取发送的第一数据流中的一个或多个拥塞报文的时间信息,一个或多个拥塞报文携带有拥塞标记。
网络设备转发第一数据流中的各个拥塞报文,可以记录发送各个拥塞报文的时间信息。该时间信息例如可以是发送拥塞报文的绝对时间或相对时间。
如果由转发芯片执行拥塞控制,则记录发送拥塞报文的时间信息即可。如果由协处理器执行拥塞控制,则转发芯片记录发送拥塞报文的时间信息后,发送该时间信息给协处理器。
S104、根据第一数据流中的一个或多个拥塞报文的时间信息,获取第一拥塞通知报文,第一拥塞通知报文用于对被拥塞超过第一设定时间间隔的报文进行拥塞通知。
在目的端设备上,当CE报文到达时,目的端设备立即发送一个CNP报文,以通知源端设备数据流发生拥塞。在源端设备上,当源端设备收到一个CNP报文时,源端设备减小发送速率,并更新速率降低因子。此外源端设备还会在连续一段时间内未收到CNP报文时,按照一定的算法增加发送速率。但是,如果数据流的规模较大时,对于发生拥塞的数据流,可能存在数据流获得对应CNP报文的时间间隔大于源端设备进行发送速率升速的时间间隔的情况,这会导致处于拥塞状态的数据流被做速率升速处理,从而出现控速收敛失败的情况,影响报文传输效率。
因此,在本实施例中,若确定第一数据流发生拥塞,则根据上述获取的第一数据流中的各个拥塞报文的时间信息,若存在被拥塞超过第一设定时间间隔的报文,获取第一CNP报文。该第一CNP报文用于对被拥塞超过第一设定时间间隔的报文进行拥塞通知,即对于未发送出去的CE报文,目的端设备不会反馈CNP报文,则网络设备获取第一CNP报文。获取第一CNP报文,可以是获取之前生成并存储在网络设备中的CNP报文,也可以是实时生成CNP报文。该CNP报文的内容与目的端设备反馈的CNP报文内容相同。
S105、发送第一拥塞通知报文。
若存在被拥塞超过第一设定时间间隔的报文,由于目的端设备未接到该CE报文,不会向源端反馈CNP报文。而如果源端设备在连续一段时间内未收到CNP报文时,会按照一定的算法增加发送速率。网络设备在获取到第一CNP报文后,向源端设备发送该第一CNP报文,以及时通知源端设备该数据流被拥塞,不能对该数据流做升速处理,从而可以有效地控制数据流的速率,提高报文传输效率。
根据本申请实施例提供的一种拥塞控制方法,通过获取数据流中的拥塞报文的时间信息,若该数据流发生拥塞,对于被拥塞超过一定时间间隔的报文进行拥塞通知,以避免数据流被拥塞时仍然被做速率升速处理,提高了报文传输效率。
图5为本申请实施例提供的又一种拥塞控制方法的流程示意图,如图5所示,该拥塞控制方法可以包括:
S201、以设定采样率对在第一时间段内发送的第一队列中的一个或多个第一数据流进行采样和复制,获取一个或多个第一数据流对应的镜像数据流,其中,每个镜像数据流包括一个或多个镜像拥塞报文。
本实施例可以由协处理器实施拥塞识别和控制,协处理器复制转发芯片中的数据流,得到镜像数据流,一个镜像数据流包括一个或多个镜像拥塞报文。也可以由转发芯片实施拥塞识别和控制,即由转发芯片对转发的数据流进行拥塞识别和控制,可以不用复制数据流。即复制数据流是可选的步骤。本实施例以由协处理器实施拥塞识别和控制为例进行描述。
另外,为提高拥塞识别和控制的效率,可以以设定采样率对数据流进行采样。也可以不进行采样,而对所有拥塞报文进行处理。
网络设备从上游接收到的拥塞报文进入其出端口的队列中。网络设备可以包括一个或多个队列。一个或多个数据流可以进入到一个队列中排队等待发送。对每个队列中的每个数据流进行上述拥塞报文的采样和复制操作。
下述步骤S202~S207为识别队列是否发生拥塞。
S202、获取每个镜像数据流中的一个或多个镜像拥塞报文的传输参数。
协处理器在获取到镜像拥塞报文后,可以截取镜像拥塞报文的头部,获得镜像拥塞报文的传输参数。该传输参数可以包括拥塞报文的数量和拥塞报文的长度。例如,有4个数据流进入第一队列,协处理器在1s中收到该4个镜像数据流的共N个CE镜像拥塞报文,每个镜像拥塞报文的长度为Mbit。
S203、根据第一时间段内发送的第一队列中的一个或多个镜像数据流中的拥塞报文数量和拥塞报文长度,确定队列的拥塞报文速率。
根据一个队列中各个镜像数据流的一个或多个镜像拥塞报文的报文数量和报文长度,可以确定队列的拥塞报文速率。队列的拥塞报文速率是指进入该队列中的拥塞报文的速率。例如,在上述示例中,可以确定队列的拥塞报文速率为N*Mbit/s。
S204、判断队列的拥塞报文速率是否大于或等于第一速率阈值,若是,则进行到S205;否则,继续执行S204或进行到S212。
在计算出上述队列的拥塞报文速率后,判断若队列的拥塞报文速率超出一定速率阈值,即进入该队列的拥塞报文的速率过大,造成累积的拥塞报文数量过多,则可以确定该队列发生拥塞,该队列进入拥塞状态。具体地,判断队列的拥塞报文速率是否大于或等于第一速率阈值。该第一速率阈值可以是队列ROCE流量配置值的第一设定比例,例如队列ROCE流量配置值*90%。该队列ROCE流量配置值是针对每个队列预先配置的ROCE流量值。
S205、确定第一队列发生拥塞,第一队列进入拥塞状态。
若判断出队列的拥塞报文速率大于或等于第一速率阈值,则确定第一队列发生拥塞,第一队列进入拥塞状态。可以理解的是,该第一队列是网络设备中的任一个队列,即对任一个队列可以执行上述拥塞识别操作。
S206、判断队列的拥塞报文速率是否小于或等于第二速率阈值,若是,则进行到S207;否则,继续执行S206。
在第一队列进入拥塞状态后,监控当前的队列的拥塞报文速率,若队列的拥塞报文速率下降,则判断队列的拥塞报文速率是否小于或等于第二队列速率阈值,若队列的拥塞报文速率小于或等于第二速率阈值,例如,队列的拥塞报文速率小于或等于队列ROCE流量配置值*60%,则确定第一队列未发生拥塞,第一队列退出拥塞状态;若队列的拥塞报文速率处于第一速率阈值与第二速率阈值之间,则继续监测队列的拥塞报文速率是否小于或等于第二速率阈值。该第二速率阈值小于上述第一速率阈值。该第二速率阈值可以是队列ROCE流量配置值的第二设定比例,例如上述队列ROCE流量配置值*60%。
S207、若队列的拥塞报文速率小于或等于第二速率阈值,确定第一队列未发生拥塞,第一队列退出拥塞状态。
从上述示例中,可以看出,若队列的拥塞报文速率大于或等于队列ROCE流量配置值*90%,确定队列发生拥塞;若队列的拥塞报文速率小于队列ROCE流量配置值*90%,且大于队列ROCE流量配置值*60%时,队列中发送的报文仍然较多,尚未退出拥塞状态;队列的拥塞报文速率小于或等于队列ROCE流量配置值*60%时,才可确定队列未发生拥塞,退出拥塞状态。
具体地,如图6所示,为识别队列发生拥塞的示意图,源端设备的一个或多个数据流通过一个或多个网络设备发送至目的端设备,一个数据流包括一个或多个拥塞报文。网络设备的出端口包括一个或多个队列,每个队列包括一个或多个数据流。可以通过其中的一个或多个网络设备对队列拥塞进行控制。如图6所示,源端设备1发送的业务流1和源端设备2发送的业务流2都经过该网络设备发往同一个目的端设备,并且业务流1和业务流2都进入该网络设备的队列1。业务流1和业务流2分别包括若干个拥塞报文。可以由网络设备的转发芯片或协处理器进行拥塞控制。
例如,由网络设备的协处理器进行拥塞控制,则协处理器获取该队列1包括的业务流1和业务流2中的CE报文的镜像报文。具体地,协处理器拷贝转发芯片转发的CE报文,获得CE报文的镜像报文。例如,协处理器获取到业务流1的CE报文f1-1,f1-2,f1-3的镜像报文,以及获取到业务流2的CE报文f2-1,f2-2的镜像报文。进一步地,可以基于一定的采样比例,对上述业务流1和业务流2中的CE报文进行采样。
协处理器根据队列1中的CE报文f1-1,f1-2,f1-3,f2-1,f2-2的报文长度,计算出队列1的队列的拥塞报文速率,然后,判断计算出的队列的拥塞报文速率是否大于或等于第一速率阈值,如果判断的结果为是,则确定队列1发生拥塞;如果判断的结果为否,则继续判断计算出的队列的拥塞报文速率是否大于或等于第一速率阈值。在确定队列1发生拥塞后,判断计算出的队列的拥塞报文速率是否小于或等于第二速率阈值,如果判断的结果为是,则确定队列1退出拥塞状态;否则继续判断计算出的队列的拥塞报文速率是否小于或等于第二速率阈值。
在确定第一队列发生拥塞后,则需对拥塞进行控制。下述步骤S208~S211为识别队列发生拥塞时进行拥塞控制。可以理解的是,若第一队列发生拥塞,则该队列中的所有数据流都被拥塞。则需对每个数据流进行下列步骤S208~S211的拥塞控制。
S208、获取第一数据流中的一个或多个拥塞报文的时间信息。
转发芯片转发第一数据流中的各个报文,可以记录发送各个拥塞报文的时间信息。该时间信息例如可以是发送拥塞报文的绝对时间或相对时间。
转发芯片记录发送拥塞报文的时间信息后,发送该时间信息给协处理器,则协处理器可以获取到各个镜像数据流中的一个或多个镜像拥塞报文的时间信息。
S209、判断当前时间与发送第一拥塞报文的时间之间的时间间隔是否大于或等于第一设定时间间隔,若是,则进行到S210;否则,继续执行S209。
S210、获取第一拥塞通知报文。
本实施例对被拥塞超过第一设定时间间隔的CE报文,网络设备进行拥塞通知。
可以判断当前时间与发送第一报文的时间之间的时间间隔是否大于或等于第一设定时间间隔,当前时间可以是网络设备的系统时间。该第一报文是在当前时间之前发送的最后一个报文。即在第一报文发送出去之后,判断有多长时间未发送报文。
具体地,在一个实现中,协处理器中可以设置一个计时器,在发送完第一拥塞报文时,启动计时器,其中,该计时器的计时时间为上述第一设定时间间隔。若在计时时间达到时,未发送第一数据流的下一个拥塞报文,则获取第一CNP报文。获取第一CNP报文,可以是获取之前生成并存储在网络设备中的CNP报文,也可以是实时生成CNP报文。
在另一个实现中,也可以根据设定周期监测当前时间与发送第一拥塞报文的时间之间的时间间隔是否大于或等于第一设定时间间隔。若当前时间与发送第一拥塞报文的时间之间的时间间隔大于或等于第一设定时间间隔,则获取第一CNP报文。即每隔设定周期判断当前时间与发送第一拥塞报文的时间之间的时间间隔是否大于或等于第一设定时间间隔,如果当前周期内当前时间与发送第一拥塞报文的时间之间的时间间隔大于或等于第一设定时间间隔,则退出监测,获取第一CNP报文;如果当前周期内当前时间与发送第一拥塞报文的时间之间的时间间隔小于第一设定时间间隔,则在下一个周期继续判断当前时间与发送第一拥塞报文的时间之间的时间间隔大于或等于第一设定时间间隔,直到监测到当前时间与发送第一拥塞报文的时间之间的时间间隔大于或等于第一设定时间间隔。该周期小于或等于该第一设定时间间隔。
作为S209和S210的一种替换方式,也可以判断发送第二拥塞报文的时间与发送第一拥塞报文的时间之间的时间间隔是否大于或等于第一设定时间间隔。若发送第二拥塞报文的时间与发送第一拥塞报文的时间之间的时间间隔大于或等于第一设定时间间隔,获取第一CNP报文,第一拥塞报文为第二拥塞报文的上一个报文。即根据发送拥塞报文之间的时间间隔,确定CE报文(第二报文)被拥塞的时间是否超出第一设定时间间隔。
作为S209和S210的又一种替换方式,如图7所示,也可以判断出端口队列的深度是否超出队列深度阈值。如果出端口队列的深度超出队列深度阈值,则网络设备在该出端口队列上新加入的报文中打上ECN标记。在图7中,具体定义了两种队列深度阈值,即Kmin和Kmax,当队列深度小于或等于Kmin时,不对报文标上ECN标记;当队列深度大于Kmax时,所有经过该队列的报文全部标上ECN标记;当队列深度介于Kmin和Kmax之间时,标上ECN标记的概率随队列深度逐渐上升。当目的端设备接收到带ECN标记的CE报文时,表示网络拥塞,因此目的端设备将该网络拥塞信息传递给源端设备。
如图8所示的队列拥塞控制的示意图,网络设备在发送完CE报文f2-1时,记录发送CE报文f2-1的时间,然后通过计时器或设定周期监测当前时间与发送f2-1的时间之间的时间间隔是否大于或等于第一设定时间间隔。在确定当前时间与发送f2-1的时间之间的时间间隔大于或等于第一设定时间间隔时,网络设备未发送任何CE报文,则网络设备获取第一CNP报文。目的端设备在接收到CE报文f2-1时,向源端设备反馈第二CNP报文,以及在接收到CE报文f2-2时,向源端设备反馈又一个第二CNP报文。可以理解的是,第二CNP报文在时间上并不与接收到的CE报文一一对应,可以仅仅是数量上的对应。当发送完f2-1后,超过第一设定时间间隔未发送CE报文,则目的端设备不会反馈CNP报文。源端设备若在一定时间内未接收到CNP报文,则会对该数据流进行升速处理。这与报文在网络设备的队列中被拥塞的事实是相反的,因此,会造成控速失败。因此,网络设备在当前时间与发送第一报文的时间之间的时间间隔大于或等于第一设定时间间隔时生成或获取第一CNP报文。上述第一设定时间间隔可以是数据流的升速间隔。
S211、即时发送第一CNP报文。
网络设备在获取到第一CNP报文后,可以即刻向源端设备发送第一CNP报文。具体地,若协处理器在发送第一拥塞报文时启动计时器,在上述计时时间到达时,发送第一CNP报文。则第一CNP报文可能发送在上述两个CE报文的第二CNP报文之前,或者在上述两个CE报文的第二CNP报文之间,或者发送在上述两个CE报文的第二CNP报文后。
作为一种替换的方式,网络设备也可以监测当前时间与获取到第一CNP报文的时间之间的时间间隔是否大于或等于第二设定时间间隔,该第二设定时间间隔是根据发送第一拥塞报文的时间与接收到目的端设备发送的第二CNP报文的时间之间的时间间隔确定的。若当前时间与获取到第一CNP报文的时间之间的时间间隔大于或等于第二设定时间间隔,则发送第一CNP报文。即如图9所示的又一个队列拥塞控制的示意图,协处理器可以估计CE报文f2-1发送至目的端设备的时间以及接收到第二CNP报文的时间,在发送完CE报文f2-1后,以及发送CE报文f2-2之前,发送第一CNP报文,可以尽量使得第一CNP报文位于上述两个CE报文的第二CNP报文之间。
继续参考图5,若确定第一队列未发生拥塞后,可以进一步识别第一队列中的每一个数据流是否发生拥塞。下面步骤S212~S217为识别第一数据流是否发生拥塞。该第一数据流可以是上述队列中的任一个数据流。
S212、若队列的拥塞报文速率小于第一速率阈值,获取第一数据流中拥塞报文的序列号的连续程度。
上述传输参数还可以包括拥塞报文的序列号。可以从拥塞报文的报文头中获取拥塞报文的序列号。具体地,协处理器可以截取镜像拥塞报文的头部,获得上述拥塞报文的序列号。
拥塞报文的序列号的连续程度可以是指拥塞报文的连续的序列号的数量大于设定值。则获取第一数据流中拥塞报文的连续的序列号的数量。
拥塞报文的序列号的连续程度还可以是指拥塞报文的序列号之间的差值的最大值小于设定值。则获取第一数据流中拥塞报文的序列号之间的差值的最大值。
由于拥塞报文具有唯一的序列号,拥塞报文的序列号的连续程度与拥塞报文的连续程度具有对应关系,因此,根据第一数据流中拥塞报文的序列号的连续程度,可以确定拥塞报文的连续程度。上述第一数据流中拥塞报文的序列号的连续程度可以是通过采样获得的,该采样获得的第一数据流中拥塞报文的序列号的连续程度可以用于表示拥塞报文的连续程度。
S213、判断第一数据流中拥塞报文的序列号的连续程度是否大于或等于第一阈值,若是,则进行到S214;否则,继续执行S213。
如果一个数据流中序列号的连续程度超过一定阈值,则说明发送出去的报文都是拥塞报文,可以确定该数据流发生拥塞,该数据流进入拥塞状态。例如:协处理器上收到转发芯片的CE报文:f1-1 f2-5 f1-3 f2-6 f1-4 f1-5 f1-6 f1-7,fi表示第i个数据流。其中,第1个数据流中的f1-3 f1-4 f1-5 f1-6 f1-7共5个报文的序列号连续(例如第一阈值为5个报文),则识别出f1为拥塞流。
又例如,网络设备发送出去的一定数量的报文中,拥塞报文的序列号之间的差值的最大值小于设定阈值,则也可以认为该数据流中的拥塞报文的序列号的连续程度大于设定阈值,可以确定拥塞报文的连续程度,从而判断该数据流发生拥塞。例如,网络设备发送100个报文,其中拥塞报文的序列号之间的差值中只有一个最大值为2,其余的序列号的差值均为1,则可以确定该网络设备发送的100个报文中98个均为拥塞报文,则可以确定该数据流发生了拥塞。
S214、确定第一数据流发生拥塞,第一数据流进入拥塞状态。
如图10所示,为识别数据流发生拥塞的示意图,源端设备1和源端设备2向同一目的端设备发送数据流。其中,第一数据流f1在网络设备1处发生拥塞,则可以在网络设备1或靠近目的端设备的末端网络设备(网络设备3)进行拥塞识别。在图10中,网络设备3的协处理器获取到数据流f1的3个序号连续的报文f1-1,f1-2和f1-3,连续的序列号对应的报文的数量大于或等于3,则可以确定数据流f1发生拥塞,数据流f1进入拥塞状态。
S215、重新获取第一数据流中拥塞报文的序列号的连续程度。
在第一数据流进入拥塞状态后,需要监控第一数据流是否一直处于拥塞状态或者退出拥塞状态,则可以重新获取第一数据流中拥塞报文的序列号的连续程度。
如果一个数据流中序列号的连续程度小于一定阈值,则说明发送出去的报文都是普通报文,可以确定该数据流退出拥塞状态。
又例如,网络设备发送出去的一定数量的报文中,拥塞报文的序列号之间的差值的最大值大于设定阈值,则也可以认为该数据流中的拥塞报文的序列号的连续程度小于设定阈值,从而判断该数据流未发生拥塞。
S216、判断第一数据流中拥塞报文的序列号的连续程度是否小于或等于第二阈值,若是,则进行到S217;否则,继续执行S216。
发送的第一数据流中序列号的连续程度小于一定阈值,即发送的第一数据流的拥塞报文较少,则可以确定该数据流未发生拥塞,该数据流退出拥塞状态。例如,协处理器上获取到转发芯片的CE报文:f1-1 f2-5 f1-3 f2-7 f1-4 f2-9 f1-5 f1-6 f1-7,fi表示第i个数据流,其中,数据流f2中的f2-5 f2-7 f2-9报文不连续,并在f2-5~f2-9总计5个报文中缺失2个报文,则此时识别出f2未发生拥塞。
S217、确定第一数据流未发生拥塞,第一数据流退出拥塞状态。
在确定第一数据流发生拥塞后,则进行到S208~S211,即进行流拥塞控制。与队列拥塞控制所不同的是,S208~S211也可以是仅对第一数据流进行拥塞控制。如图11所示的流拥塞控制的示意图,网络设备在发送完CE报文f2-1时,记录发送CE报文f2-1的时间,然后通过计时器或设定周期监测当前时间与发送第一拥塞报文的时间之间的时间间隔是否大于或等于第一设定时间间隔。在确定当前时间与发送第一拥塞报文的时间之间的时间间隔大于或等于第一设定时间间隔时,网络设备未发送任何CE报文,则网络设备获取第一CNP报文。目的端设备在接收到CE报文f2-1时,向源端设备反馈第二CNP报文,以及在接收到CE报文f2-2时,向源端设备反馈又一个第二CNP报文。可以理解的是,第二CNP报文在时间上并不与接收到的CE报文一一对应,可以仅仅是数量上的对应。当发送完f2-1后,超过第一设定时间间隔未发送CE报文,则目的端设备不会反馈CNP报文。源端设备若在一定时间内未接收到CNP报文,则会对该数据流进行升速处理。这与报文在网络设备的队列中被拥塞的事实是相反的,因此,会造成控速失败。因此,网络设备在当前时间与发送第一报文的时间之间的时间间隔大于或等于第一设定时间间隔时生成或获取第一CNP报文。上述第一设定时间间隔可以是数据流的升速间隔。
网络设备在获取到第一CNP报文后,可以即刻向源端设备发送第一CNP报文。则第一CNP报文可能发送在上述两个CE报文的第二CNP报文之前,或者在上述两个CE报文的第二CNP报文之间,或者发送在上述两个CE报文的第二CNP报文后。
网络设备也可以监测当前时间与获取到第一CNP报文的时间之间的时间间隔是否大于或等于第二设定时间间隔,该第二设定时间间隔是根据发送第一拥塞报文的时间与接收到目的端设备发送的第二CNP报文的时间之间的时间间隔确定的。若当前时间与发送第一拥塞报文的时间之间的时间间隔大于或等于第二设定时间间隔,则发送第一CNP报文。即如图12所示的又一个流拥塞控制的示意图,协处理器可以估计CE报文f2-1发送至目的端设备的时间以及接收到第二CNP报文的时间,在发送完CE报文f2-1后,以及发送CE报文f2-2之前,发送第一CNP报文,可以尽量使得第一CNP报文位于上述两个CE报文的第二CNP报文之间。
可以理解的是,上述队列拥塞识别和控制、以及流拥塞识别和控制可以不具有执行的先后顺序,且也可以仅对数据流进行拥塞识别和控制,或者仅对队列进行拥塞识别和控制。
根据本申请实施例提供的一种拥塞控制方法,通过获取数据流中的拥塞报文的时间信息,若该数据流发生拥塞,对于被拥塞超过一定时间间隔的报文进行拥塞通知,以避免数据流被拥塞时仍然被做速率升速处理,提高了报文传输效率。
基于上述拥塞控制方法的同一构思,如图13所示,本申请实施例还提供一种拥塞控制装置1000,该装置1000包括:第一获取单元11、第二获取单元12和第一发送单元13,还可以包括采样复制单元14、第五获取单元15和第一确定单元16(图中以虚线表示)。其中:
第一获取单元11,用于获取发送的第一数据流中的一个或多个拥塞报文的时间信息,所述一个或多个拥塞报文携带有拥塞标记;第二获取单元12,用于若所述第一数据流发生拥塞,根据所述第一数据流中的一个或多个拥塞报文的时间信息,获取第一拥塞通知包拥塞通知报文,所述第一拥塞通知报文用于对被拥塞超过第一设定时间间隔的报文进行拥塞通知;以及第一发送单元13,用于发送所述第一拥塞通知报文。
在一个实现中,所述第二获取单元12用于若当前时间与发送第一拥塞报文的时间之间的时间间隔大于或等于所述第一设定时间间隔,获取所述第一拥塞通知报文,其中,所述第一拥塞报文为在所述当前时间之前发送的第一数据流的最后一个报文。
在又一个实现中,所述第二获取单元12包括:启动单元,用于发送完所述第一拥塞报文时,启动计时器,其中,所述计时器的计时时间为所述第一设定时间间隔;以及第三获取单元,用于若所述计时时间到达时,未发送所述第一数据流的下一个报文,获取所述第一拥塞通知报文。
在又一个实现中,所述第二获取单元12包括:第一监测单元,用于根据设定周期监测当前时间与发送所述第一拥塞报文的时间之间的时间间隔是否大于或等于所述第一设定时间间隔;以及第四获取单元,用于若当前时间与发送所述第一拥塞报文的时间之间的时间间隔大于或等于所述第一设定时间间隔,获取所述第一拥塞通知报文。
在又一个实现中,所述第二获取单元12用于若发送第二拥塞报文的时间与发送第一拥塞报文的时间之间的时间间隔大于或等于所述第一设定时间间隔,获取所述第一拥塞通知报文,所述第一拥塞报文为所述第二拥塞报文的上一个报文,所述第一拥塞报文和所述第二拥塞报文对应所述第一数据流。
在又一个实现中,所述第一发送单元13包括:第二监测单元,用于监测当前时间与获取所述第一拥塞通知报文之间的时间间隔是否大于或等于第二设定时间间隔;以及第二发送单元,用于若当前时间与获取所述第一拥塞通知报文之间的时间间隔大于或等于所述第二设定时间间隔,发送所述第一拥塞通知报文,其中,所述第二设定时间间隔是根据发送所述第一拥塞报文的时间与接收到目的端设备发送的第二拥塞通知报文的时间之间的时间间隔确定的。
在又一个实现中,所述第一发送单元13用于获取所述第一拥塞通知报文后,即时发送所述第一拥塞通知报文。
在又一个实现中,所述装置还包括:第五获取单元15,用于获取所述第一数据流中的一个或多个拥塞报文的传输参数;以及第一确定单元16,用于根据所述一个或多个拥塞报文的传输参数,确定所述第一数据流发生拥塞。
在又一个实现中,所述装置还包括:采样复制单元14,用于以设定采样率对所述第一数据流的一个或多个拥塞报文进行采样和复制,获取所述第一数据流对应的镜像数据流,其中,所述镜像数据流包括一个或多个镜像报文。
在又一个实现中,所述传输参数包括报文数量和报文长度,所述第一确定单元16包括:第二确定单元,用于根据第一时间段内发送的第一队列中的一个或多个所述第一数据流的拥塞报文数量和拥塞报文长度,确定队列的拥塞报文速率;以及第三确定单元,用于若所述队列的拥塞报文速率大于或等于第一速率阈值,确定所述第一队列发生拥塞,所述第一队列进入拥塞状态。
在又一个实现中,所述装置还包括:第四确定单元,用于若所述队列的拥塞报文速率小于或等于第二速率阈值,确定所述第一队列未发生拥塞,所述第一队列退出所述拥塞状态,其中,所述第二速率阈值小于所述第一速率阈值。
在又一个实现中,所述传输参数包括所述第一数据流中的一个或多个拥塞报文的序列号,所述第一确定单元16包括:第六获取单元,用于获取所述第一数据流中拥塞报文的序列号的连续程度;第五确定单元,用于若所述连续程度大于或等于第一阈值,确定所述第一数据流发生拥塞,所述第一数据流进入拥塞状态。
在又一个实现中,所述装置还包括:第六确定单元,用于若所述连续程度小于或等于第二阈值,确定所述第一数据流未发生拥塞,所述第一数据流退出所述拥塞状态,第二阈值小于上述第一阈值。
有关上述各单元的具体实现可参考图4和图5所示的拥塞控制方法的相关描述。
根据本申请实施例提供的一种拥塞控制装置,通过获取数据流中的拥塞报文的时间信息,若该数据流发生拥塞,对于被拥塞超过一定时间间隔的报文进行拥塞通知,以避免数据流被拥塞时仍然被做速率升速处理,提高了报文传输效率。
如图14所示,本申请实施例还提供又一种拥塞控制装置,该拥塞控制装置2000包括处理器21和物理接口22。
处理器21的数量可以为一个或多个。处理器21包括中央处理器,网络处理器,图形处理器(graphics processing unit,GPU),专用集成电路,可编程逻辑器件(programmablelogic device,PLD)或其任意组合。上述PLD可以是复杂可编程逻辑器件,现场可编程门阵列,通用阵列逻辑或其任意组合。处理器21可以包括控制面211和转发面212。转发面212具体可以包括转发芯片A,该转发芯片A从源端设备接收到业务报文,并转发给目的端设备;并且在一个实现中,该转发芯片A还用于实施本申请实施例中的拥塞控制。通过转发面实现拥塞控制具有较高的时效性。该转发面212还可以包括协处理器B,在又一个实现中,该协处理器B从转发芯片A拷贝CE报文,即获得CE报文的镜像报文,并实施本申请实施例中的拥塞控制。
控制面211和转发面212可以由独立的电路实现,也可以整合在一个电路中。例如,处理器21为多核CPU。多个核中的一个或一些实现控制面211,其他的核实现转发面212。又例如,控制面211由CPU实现,转发面212由网络处理器(network processor,NP),专用集成电路(application specific integrated circuit,ASIC),现场可编程门阵列(fieldprogrammable gate array,FPGA)或其任意组合实现。又例如,拥塞控制装置为框式网络设备,控制面211由主控卡实现,转发面212由线卡实现。又例如,控制面211和转发面212都由带控制面能力的NP实现。
物理接口22用于收发业务报文和发送CNP报文。具体地,该物理接口22用于从源端设备接收业务报文,并向目的端设备转发业务报文;并且从目的端设备接收CNP报文或从自身获取CNP报文,并发送给源端设备。
物理接口22的数量可以为一个或多个。物理接口22可以包括无线接口和/或有线接口。例如,无线接口可以包括无线局域网(wireless local area network,WLAN)接口,蓝牙接口,蜂窝网络接口或其任意组合。有线接口可以包括以太网接口、异步传输模式接口、光纤通道接口或其任意组合。以太网接口可以为电接口或光接口。物理接口22并不一定包括(尽管通常包括)以太网接口。
根据本申请实施例提供的一种拥塞控制装置,通过获取数据流中的拥塞报文的时间信息,若该数据流发生拥塞,对于被拥塞超过一定时间间隔的报文进行拥塞通知,以避免数据流被拥塞时仍然被做速率升速处理,提高了报文传输效率。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被计算机执行时,使得计算机执行上述任一方法实施例中由网络设备执行的步骤和/或处理。
本申请还提供一种计算机程序产品,所述计算机程序产品包括计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述任一方法实施例中由网路设备执行的步骤和/或处理。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。所显示或讨论的相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者通过该计算机可读存储介质进行传输。该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是只读存储器(read-onlymemory,ROM),或随机存储存储器(random access memory,RAM),或磁性介质,例如,软盘、硬盘、磁带、磁碟、或光介质,例如,数字通用光盘(digital versatile disc,DVD)、或者半导体介质,例如,固态硬盘(solid state disk,SSD)等。
Claims (27)
1.一种拥塞控制方法,其特征在于,所述方法包括:
获取发送的第一数据流中的一个或多个拥塞报文的时间信息,所述拥塞报文携带有拥塞标记;
若所述第一数据流发生拥塞,根据所述第一数据流中的一个或多个拥塞报文的时间信息,获取第一拥塞通知报文,所述第一拥塞通知报文用于对被拥塞超过第一设定时间间隔的报文进行拥塞通知;
发送所述第一拥塞通知报文。
2.根据权利要求1所述的方法,其特征在于,所述若所述第一数据流发生拥塞时,根据所述第一数据流中的一个或多个拥塞报文的时间信息,获取第一拥塞通知报文,包括:
若当前时间与发送第一拥塞报文的时间之间的时间间隔大于或等于所述第一设定时间间隔,获取所述第一拥塞通知报文,其中,所述第一拥塞报文为在所述当前时间之前发送的第一数据流的最后一个报文。
3.根据权利要求2所述的方法,其特征在于,所述若当前时间与发送第一拥塞报文的时间的时间间隔大于或等于第一设定时间间隔,获取第一拥塞通知报文,包括:
发送完所述第一拥塞报文时,启动计时器,其中,所述计时器的计时时间为所述第一设定时间间隔;
若所述计时时间到达时,未发送所述第一数据流的下一个报文,获取所述第一拥塞通知报文。
4.根据权利要求2所述的方法,其特征在于,所述若当前时间与发送第一拥塞报文的时间的时间间隔大于或等于第一设定时间间隔,获取第一拥塞通知报文,包括:
根据设定周期监测当前时间与发送所述第一拥塞报文的时间之间的时间间隔是否大于或等于所述第一设定时间间隔;
若当前时间与发送所述第一拥塞报文的时间之间的时间间隔大于或等于所述第一设定时间间隔,获取所述第一拥塞通知报文。
5.根据权利要求1所述的方法,其特征在于,所述若所述第一数据流发生拥塞时,根据所述第一数据流中的一个或多个拥塞报文的时间信息,获取第一拥塞通知报文,包括:
若发送第二拥塞报文的时间与发送第一拥塞报文的时间之间的时间间隔大于或等于所述第一设定时间间隔,获取所述第一拥塞通知报文,所述第一拥塞报文为所述第二拥塞报文的上一个报文,所述第一拥塞报文和所述第二拥塞报文对应所述第一数据流。
6.根据权利要求1~5任一项所述的方法,其特征在于,所述发送第一拥塞通知报文,包括:
监测当前时间与获取所述第一拥塞通知报文之间的时间间隔是否大于或等于第二设定时间间隔;
若当前时间与获取所述第一拥塞通知报文之间的时间间隔大于或等于所述第二设定时间间隔,发送所述第一拥塞通知报文。
7.根据权利要求1~5任一项所述的方法,其特征在于,所述发送第一拥塞通知报文,包括:
获取所述第一拥塞通知报文后,即时发送所述第一拥塞通知报文。
8.根据权利要求1~7任一项所述的方法,其特征在于,所述方法还包括:
获取所述第一数据流中的一个或多个拥塞报文的传输参数;
根据所述一个或多个拥塞报文的传输参数,确定所述第一数据流发生拥塞。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
以设定采样率对所述第一数据流的一个或多个拥塞报文进行采样和复制,获取所述第一数据流对应的镜像数据流,其中,所述镜像数据流包括一个或多个镜像报文。
10.根据权利要求8或9所述的方法,其特征在于,所述传输参数包括报文数量和报文长度,所述根据所述一个或多个拥塞报文的传输参数,确定所述第一数据流发生拥塞,包括:
根据第一时间段内发送的第一队列中的一个或多个所述第一数据流的拥塞报文数量和拥塞报文长度,确定队列的拥塞报文速率;
若所述队列的拥塞报文速率大于或等于第一速率阈值,确定所述第一队列发生拥塞,所述第一队列进入拥塞状态。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
若所述队列的拥塞报文速率小于或等于第二速率阈值,确定所述第一队列未发生拥塞,所述第一队列退出所述拥塞状态,其中,所述第二速率阈值小于所述第一速率阈值。
12.根据权利要求8~11任一项所述的方法,其特征在于,所述传输参数包括所述第一数据流中的一个或多个拥塞报文的序列号,所述根据所述一个或多个拥塞报文的传输参数,确定所述第一数据流发生拥塞,包括:
获取所述第一数据流中拥塞报文的序列号的连续程度;
若所述连续程度大于或等于第一阈值,确定所述第一数据流发生拥塞,所述第一数据流进入拥塞状态。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
若所述连续程度小于或等于第二阈值,确定所述第一数据流未发生拥塞,所述第一数据流退出所述拥塞状态,其中,所述第二阈值小于所述第一阈值。
14.一种拥塞控制装置,其特征在于,包括:
第一获取单元,用于获取发送的第一数据流中的一个或多个拥塞报文的时间信息,所述拥塞报文携带有拥塞标记;
第二获取单元,用于若所述第一数据流发生拥塞,根据所述第一数据流中的一个或多个拥塞报文的时间信息,获取第一拥塞通知报文,所述第一拥塞通知报文用于对被拥塞超过第一设定时间间隔的报文进行拥塞通知;
第一发送单元,用于发送所述第一拥塞通知报文。
15.根据权利要求14所述的装置,其特征在于,所述第二获取单元用于若当前时间与发送第一拥塞报文的时间之间的时间间隔大于或等于所述第一设定时间间隔,获取所述第一拥塞通知报文,其中,所述第一拥塞报文为在所述当前时间之前发送的第一数据流的最后一个报文。
16.根据权利要求15所述的装置,其特征在于,所述第二获取单元包括:
启动单元,用于发送完所述第一拥塞报文时,启动计时器,其中,所述计时器的计时时间为所述第一设定时间间隔;
第三获取单元,用于若所述计时时间到达时,未发送所述第一数据流的下一个报文,获取所述第一拥塞通知报文。
17.根据权利要求14所述的装置,其特征在于,所述第二获取单元包括:
第一监测单元,用于根据设定周期监测当前时间与发送所述第一拥塞报文的时间之间的时间间隔是否大于或等于所述第一设定时间间隔;
第四获取单元,用于若当前时间与发送所述第一拥塞报文的时间之间的时间间隔大于或等于所述第一设定时间间隔,获取所述第一拥塞通知报文。
18.根据权利要求14所述的装置,其特征在于,所述第二获取单元用于若发送第二拥塞报文的时间与发送第一拥塞报文的时间之间的时间间隔大于或等于所述第一设定时间间隔,获取所述第一拥塞通知报文,所述第一拥塞报文为所述第二拥塞报文的上一个报文,所述第一拥塞报文和所述第二拥塞报文对应所述第一数据流。
19.根据权利要求14~18任一项所述的装置,其特征在于,所述第一发送单元包括:
第二监测单元,用于监测当前时间与获取所述第一拥塞通知报文之间的时间间隔是否大于或等于第二设定时间间隔;
第二发送单元,用于若当前时间与获取所述第一拥塞通知报文之间的时间间隔大于或等于所述第二设定时间间隔,发送所述第一拥塞通知报文。
20.根据权利要求14~18任一项所述的装置,其特征在于,所述第一发送单元用于获取所述第一拥塞通知报文后,即时发送所述第一拥塞通知报文。
21.根据权利要求14~20任一项所述的装置,其特征在于,所述装置还包括:
第五获取单元,用于获取所述第一数据流中的一个或多个拥塞报文的传输参数;
第一确定单元,用于根据所述一个或多个拥塞报文的传输参数,确定所述第一数据流发生拥塞。
22.根据权利要求21所述的装置,其特征在于,所述装置还包括:
采样复制单元,用于以设定采样率对所述第一数据流的一个或多个拥塞报文进行采样和复制,获取所述第一数据流对应的镜像数据流,其中,所述镜像数据流包括一个或多个镜像报文。
23.根据权利要求21或22所述的装置,其特征在于,所述传输参数包括报文数量和报文长度,所述第一确定单元包括:
第二确定单元,用于根据第一时间段内发送的第一队列中的一个或多个所述第一数据流的拥塞报文数量和拥塞报文长度,确定队列的拥塞报文速率;
第三确定单元,用于若所述队列的拥塞报文速率大于或等于第一速率阈值,确定所述第一队列发生拥塞,所述第一队列进入拥塞状态。
24.根据权利要求23所述的装置,其特征在于,所述装置还包括:
第四确定单元,用于若所述队列的拥塞报文速率小于或等于第二速率阈值,确定所述第一队列未发生拥塞,所述第一队列退出所述拥塞状态,其中,所述第二速率阈值小于所述第一速率阈值。
25.根据权利要求21~24任一项所述的装置,其特征在于,所述传输参数包括所述第一数据流中的一个或多个拥塞报文的序列号,所述第一确定单元包括:
第六获取单元,用于获取所述第一数据流中拥塞报文的序列号的连续程度;
第五确定单元,用于若所述连续程度大于或等于第一阈值,确定所述第一数据流发生拥塞,所述第一数据流进入拥塞状态。
26.根据权利要求25所述的装置,其特征在于,所述装置还包括:
第六确定单元,用于若所述连续程度小于或等于第二阈值,确定所述第一数据流未发生拥塞,所述第一数据流退出所述拥塞状态,所述第二阈值小于所述第一阈值。
27.一种拥塞控制装置,其特征在于,包括处理器和物理接口,所述处理器用于执行如权利要求1~13中任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010077053.9A CN113162862A (zh) | 2020-01-23 | 2020-01-23 | 拥塞控制方法及装置 |
PCT/CN2021/071251 WO2021147704A1 (zh) | 2020-01-23 | 2021-01-12 | 拥塞控制方法及装置 |
EP21744459.5A EP4087199A4 (en) | 2020-01-23 | 2021-01-12 | METHOD AND DEVICE FOR OVERLOAD CONTROL |
US17/870,700 US20220368633A1 (en) | 2020-01-23 | 2022-07-21 | Congestion control method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010077053.9A CN113162862A (zh) | 2020-01-23 | 2020-01-23 | 拥塞控制方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113162862A true CN113162862A (zh) | 2021-07-23 |
Family
ID=76882168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010077053.9A Pending CN113162862A (zh) | 2020-01-23 | 2020-01-23 | 拥塞控制方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220368633A1 (zh) |
EP (1) | EP4087199A4 (zh) |
CN (1) | CN113162862A (zh) |
WO (1) | WO2021147704A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024051544A1 (zh) * | 2022-09-05 | 2024-03-14 | 维沃移动通信有限公司 | 信息处理方法、设备及可读存储介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113507420B (zh) * | 2021-08-05 | 2022-03-15 | 清华大学 | 一种拥塞控制方法及装置 |
CN115174477B (zh) * | 2022-06-29 | 2024-04-05 | 无锡芯光互连技术研究院有限公司 | 一种基于优先级流量控制的拥塞控制方法及系统 |
CN116915706B (zh) * | 2023-09-13 | 2023-12-26 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 数据中心网络拥塞控制方法、装置、设备及存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106533959B (zh) * | 2016-12-23 | 2019-07-19 | 锐捷网络股份有限公司 | 一种交换设备出口端速率的确定方法及交换设备 |
CN109391560B (zh) * | 2017-08-11 | 2021-10-22 | 华为技术有限公司 | 网络拥塞的通告方法、代理节点及计算机设备 |
CN108418767B (zh) * | 2018-02-09 | 2021-12-21 | 华为技术有限公司 | 数据传输方法、设备及计算机存储介质 |
CN110445722B (zh) * | 2018-05-04 | 2021-10-26 | 华为技术有限公司 | 拥塞控制方法、装置、设备及存储介质 |
US10785161B2 (en) * | 2018-07-10 | 2020-09-22 | Cisco Technology, Inc. | Automatic rate limiting based on explicit network congestion notification in smart network interface card |
CN109039936B (zh) * | 2018-08-30 | 2021-12-28 | 华为技术有限公司 | 传输速率控制方法、装置、发送设备和接收设备 |
US10944660B2 (en) * | 2019-02-08 | 2021-03-09 | Intel Corporation | Managing congestion in a network |
-
2020
- 2020-01-23 CN CN202010077053.9A patent/CN113162862A/zh active Pending
-
2021
- 2021-01-12 WO PCT/CN2021/071251 patent/WO2021147704A1/zh unknown
- 2021-01-12 EP EP21744459.5A patent/EP4087199A4/en active Pending
-
2022
- 2022-07-21 US US17/870,700 patent/US20220368633A1/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024051544A1 (zh) * | 2022-09-05 | 2024-03-14 | 维沃移动通信有限公司 | 信息处理方法、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP4087199A4 (en) | 2023-02-01 |
EP4087199A1 (en) | 2022-11-09 |
US20220368633A1 (en) | 2022-11-17 |
WO2021147704A1 (zh) | 2021-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113162862A (zh) | 拥塞控制方法及装置 | |
US6026075A (en) | Flow control mechanism | |
US6907042B1 (en) | Packet processing device | |
EP0415843A2 (en) | Delay-based congestion avoidance in computer networks | |
MX2008010122A (es) | Sistemas y metodos para mejorar el desempeño de los protocolos de transporte. | |
CN112104562B (zh) | 拥塞控制方法及装置、通信网络、计算机存储介质 | |
JP4128198B2 (ja) | 帯域制御装置 | |
CN112242956B (zh) | 流速控制方法和装置 | |
EP1508227A1 (en) | Buffer memory reservation | |
WO2021103706A1 (zh) | 控制数据包发送方法、模型训练方法、装置及系统 | |
US8111700B2 (en) | Computer-readable recording medium storing packet identification program, packet identification method, and packet identification device | |
EP1395000A1 (en) | A method of transmitting data streams dependent on the monitored state of the client application buffer | |
CN107852372B (zh) | 数据分组网络 | |
CN113572655B (zh) | 无丢失网络的拥塞探测方法及系统 | |
CN115514709B (zh) | 拥塞控制事件队列调度方法、装置、设备和存储介质 | |
CN116156019A (zh) | 一种用于卫星网络的tcp流量控制方法、系统、设备及介质 | |
CN110336759B (zh) | 基于rdma的协议报文转发方法及装置 | |
CN116346720A (zh) | 一种传输信息的装置和方法 | |
JP4766703B2 (ja) | エッジノードおよび帯域制御方法 | |
JPH11163936A (ja) | フロー制御方法及びフロー制御装置 | |
CN115914106B (zh) | 一种用于网络流量转发的自适应缓冲方法 | |
CN116419317A (zh) | 拥塞控制方法、装置、设备及系统 | |
CN115297031B (zh) | 基于fifo调度的arinc664终端消息延迟上界分析方法 | |
JP7506335B2 (ja) | 通信装置、中継装置、通信システム、通信方法およびプログラム | |
JP4828555B2 (ja) | ノード装置および帯域制御方法 |
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 |