CN114938354A - 拥塞控制的方法、装置、设备和存储介质 - Google Patents
拥塞控制的方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN114938354A CN114938354A CN202210731475.2A CN202210731475A CN114938354A CN 114938354 A CN114938354 A CN 114938354A CN 202210731475 A CN202210731475 A CN 202210731475A CN 114938354 A CN114938354 A CN 114938354A
- Authority
- CN
- China
- Prior art keywords
- rtt
- threshold
- transmission rate
- rate
- current transmission
- 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 47
- 238000003860 storage Methods 0.000 title claims abstract description 15
- 230000005540 biological transmission Effects 0.000 claims abstract description 135
- 230000004044 response Effects 0.000 claims abstract description 40
- 230000003247 decreasing effect Effects 0.000 claims abstract description 7
- 238000012545 processing Methods 0.000 claims description 15
- 238000001514 detection method Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 5
- 239000000523 sample Substances 0.000 description 26
- 238000010586 diagram Methods 0.000 description 20
- 230000008569 process Effects 0.000 description 15
- 238000004891 communication Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 8
- 230000009467 reduction Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 101000822695 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C1 Proteins 0.000 description 1
- 101000655262 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C2 Proteins 0.000 description 1
- 101000655256 Paraclostridium bifermentans Small, acid-soluble spore protein alpha Proteins 0.000 description 1
- 101000655264 Paraclostridium bifermentans Small, acid-soluble spore protein beta Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000011946 reduction process Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 239000002699 waste material Substances 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/25—Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
-
- 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
- H04L47/283—Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
-
- 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)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
根据本公开的实施例,提供了拥塞控制的方法、装置、设备和存储介质。拥塞控制的方法包括:检测与第一设备和第二设备之间的数据传输的往返时间(RTT)相关联的应答消息和拥塞通知报文(CNP)中的至少一项。该方法还包括响应于检测到应答消息,基于RTT与至少一个RTT阈值的比较,更新数据传输的当前传输速率以及响应于检测到CNP而未检测到应答消息,降低当前传输速率。以此方式,能够提高拥塞感知的速度和精度,从而实现针对不同维度的网络拥塞的传输速率控制。
Description
技术领域
本公开的示例实施例总体涉及计算机领域,特别地涉及用于拥塞控制的方法、装置、设备和计算机可读存储介质。
背景技术
现代数据中心通过远程直接数据存取(RDMA)技术,来提提供超低的网络延迟、更高的吞吐,以及更低的中央处理器(CPU)开销。通过RDMA和图形处理器直接拷贝(GDR)技术,网卡能直接在两端主机预先注册好的内存或是GPU显存传输数据。网卡通过绕过内核网络协议栈,大大减少了CPU的开销和整体延迟。目前,已经大规模应用在了分布式机器学习和高性能存储场景下。
然而,在数据中心中大规模部署RDMA仍然面临巨大的挑战。随着网卡速率的增长,网络内触发拥塞的概率也随之增加,这使得拥塞控制成为近年来RDMA网络的研究热点。
发明内容
在本公开的第一方面,提供了一种拥塞控制的方法。该方法包括检测与第一设备和第二设备之间的数据传输的往返时间(RTT)相关联的应答消息和拥塞通知报文(CNP)中的至少一项。该方法还包括响应于检测到应答消息,基于RTT与至少一个RTT阈值的比较,更新数据传输的当前传输速率以及响应于检测到CNP而未检测到应答消息,降低当前传输速率。
在本公开的第二方面,提供了一种用于拥塞控制的装置。该装置包括检测模块,被配置为检测与第一设备和第二设备之间的数据传输的RTT相关联的应答消息和CNP中的至少一项;以及速率控制模块,被配置为响应于检测到应答消息,基于RTT与至少一个RTT阈值的比较,更新数据传输的当前传输速率;以及响应于检测到CNP而未检测到应答消息,降低当前传输速率。
在本公开的第三方面,提供了一种电子设备。该设备包括至少一个处理单元;以及至少一个存储器,至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令。指令在由至少一个处理单元执行时使设备执行第一方面的方法。
在本公开的第四方面,提供了一种计算机可读存储介质。介质上存储有计算机程序,程序被处理器执行时实现第一方面的方法。
应当理解,本发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键特征或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的描述而变得容易理解。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
图1示出了本公开的实施例能够在其中实现的示例环境的示意图;
图2A和图2B示出了根据本公开的一些实施例的拥塞控制的过程的示意图;
图3A和图3B示出了根据本公开的一些实施例的拥塞控制的过程的示意图;
图4示出了根据本公开的一些实施例的用于拥塞控制的过程的流程图;
图5示出了根据本公开的一些实施例的用于拥塞控制的装置的框图;以及
图6示出了能够实施本公开的多个实施例的设备的框图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中示出了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反,提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“一些实施例”应当理解为“至少一些实施例”。下文还可能包括其他明确的和隐含的定义。
如上文,当前随着网卡速率的增长,在数据中心中大规模部署RDMA时仍然面临拥塞概率增加的问题。
在现有的拥塞控制手段中,一部分拥塞控制方法仅能采集到路径上的某一跳交换机是否存在拥塞情况。而如果期望采集到路径上的交换机的逐跳的延迟和排队信息,目前需要将路径上的每一跳交换机都部署成新一代交换机才能支持,造成可扩展性十分有限。
根据本公开的各个实施例,提出一种拥塞控制的方案。例如,发送设备可以检测关于其与接收设备之间的传输数据的RTT的应答。如果检测到该应答,发送设备可以根据该应答获知RTT并将其与至少一个预定的RTT阈值进行比较,以更新当前的数据传输速率。而如果发送设备没有检测到应答,但是检测到CNP,则发送设备可以确定当前的数据传输路径中存在拥塞,进而发送可以降低当前的数据传输速率。
根据本公开的实现,能够提高拥塞感知的速度和精度,从而实现针对不同维度的网络拥塞的传输速率控制。
示例环境
首先参见图1,其示意性示出了其中可以实施根据本公开的示例性实现方式的示例环境100的示意图。
示例环境100可以包括发送设备110(在本公开中也被称作第一设备)和接收设备120(在本公开中也被称作第二设备)。发送设备110和接收设备120之间可以进行通信。应当理解,在发送设备110和接收设备120之间进行通信的过程中,发送设备110和接收设备120所扮演的角色仅仅是示例性的。在一些场景下,接收设备120可以被视作发送设备,而发送设备110也可以被视作接收设备。
在示例环境100中,发送设备110和接收设备120之间的通信可以经由交换机130来实现。通常而言,交换机130可以为的接入交换机130任意两个网络节点提供单独的通信路径,以执行对所传输的信息的寻址和转发。
在一些实施例中,发送设备110和接收设备120可以是任意类型的移动终端、固定终端或便携式终端,包括移动手机、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、平板计算机、媒体计算机、多媒体平板、个人通信***(PCS)设备、个人导航设备、个人数字助理(PDA)、音频/视频播放器、数码相机/摄像机、定位设备、电视接收器、无线电广播接收器、电子书设备、游戏设备或者前述各项的任意组合,包括这些设备的配件和外设或者其任意组合。在一些实施例中,发送设备110和接收设备120也能够支持任意类型的针对用户的接口(诸如“可佩戴”电路等)。
应当理解,仅出于示例性的目的描述环境100的结构和功能,而不暗示对于本公开的范围的任何限制。
拥塞控制过程
图2A和2B示出了根据本公开的一些实施例的用于拥塞控制的过程的示意图。在图2A和图2B中示出的过程可以涉及发送设备110处、交换机130以及接收设备120。为便于讨论,将参考图1的环境100来描述该过程。
在发送设备110经由交换机130与接收设备120进行数据传输的过程中,为了探测从发送设备110发出数据包到发送设备110从接收设备120接收针对该数据包的RTT,发送设备110通常会发送一个用于探测RTT的数据包,这样的数据包也叫做RTT探针。发送设备110可以以预定的时间间隔/频率来发送RTT探针,以检测当前的数据传输是否发生拥塞。该探针可以包括其被发送时刻的时间戳。例如,发送设备110可以在每发送若干个常规数据包之发送一个RTT探针。如图2A所示,在发送常规数据包201至203后,发送设备110可以发送RTT探针204。
在交换机130处可能存在多个待发送至接收设备120的数据包。如图2A所示,在交换机130处待发送的数据包的队列可以从L0开始,一旦等待发送的数据包超出第一队列长度阈值L1,则交换机130将判定数据传输发生拥塞。在这种情况下,交换机130将以一定的概率对数据包进行标记。该标记可以包括显式拥塞通知(ECN)。在图2A中,在等待发送的数据队列超出L1时,交换机以ECN来标记数据包211。在等待队列中还可以包括有发送设备110发送的RTT探针204。
如果被以ECN来标记数据包211和RTT探针204均被发送到接收设备120,则如图2A所示,接收设备120针对RTT探针204生成应答信息(ACK)224,在该应答信息中可以包括在RTT探针204中指示的发送该RTT探针204的时间戳。而针对以ECN来标记数据包211,则接收设备120会生成CNP 223。接收设备120生成的ACK 224和CNP 223将经由交换机130被传输到接收设备110。
然而,在一些情况下,发送设备110所发送的RTT探针可能由于交换机130发送抖动而丢失,使得接收设备120无法接收到该RTT探针。如图2B所示,发送设备110所发送的RTT探针204并没有被传输至接收设备120。而接收设备120仅仅收到了交换机130在发生拥塞的情况下以ECN标记的数据包211,则接收设备120针对该数据包211生成CNP 223,并将该CNP223经由交换机130传输到接收设备110。
在本发明的方案中,发送设备110在发送RTT探针204之后,检测来自接收设备120的针对RTT探针204的应答信息或CNP中的至少一项。
如果发送设备110接收到接收设备120针对RTT探针204的应答信息,则发送时设备110可以通过该应答信息计算出发送设备110与接收设备120之间的数据传输的RTT。
接收设备110可以根据所计算的RTT与一个或多个RTT阈值之间的比较来更新发送设备110与接收设备120之间的数据传输的当前传输速率。
在一些实施例中,可以预先设置多个RTT阈值。例如,多个RTT阈值可以包括第一RTT阈值和第二RTT阈值。该多个RTT阈值可以根据所期望的网络吞吐量和无负载状态下发送设备110与接收设备120之间的数据传输的RTT来确定。多个RTT阈值可以被表示如下:
RTTlow=RTTbase*(1+σ) (1)
RTTtarget=RTTlow*(1+kσ) (2)
其中RTTlow表示第一RTT阈值,RTTtarget表示第二RTT阈值,RTTbase表示无负载状态下发送设备110与接收设备120之间的数据传输的RTT,而σ表示速率控制因子。当网络对吞吐要求较高时,则调大σ,而当网络对延迟敏感时,则调小σ。
例如,第一RTT阈值所指示的数据传输的拥塞程度可以低于第二RTT阈值所指示的数据传输的拥塞程度。举例而言,第一RTT阈值可以指示数据传输不存在或基本上不存在拥塞状况,而第二RTT阈值可以指示可接受或可容忍的数据传输的拥塞状况。
在一些实施例中,如果发送设备110计算出的RTT小于第一RTT阈值,即RTT<RTTlow,则发送设备110可以认为当前用于数据传输的网络空闲程度很高,在这种情况下,发送设备110可以提高当前传输速率。在提高传输速率的过程中,发送设备110可以以较大的增速来提高当前传输速率。对当前传输速率的提高过程可以根据以下公式来实现。
Rt=Rc+cnt*Rai (3)
cnt++ (4)
其中Rc表示当前传输速率,Rai表示预定的参考速率增量,cnt表示速率调整步长,Rt表示更新后的传输速率。
可以首先根据公式(3)来提高当前传输速率,例如,cnt的初始值可以设定为1。在提高当前速率之后,如果发送设备110提高传输速率后,数据传输仍然没有达到拥塞程度,例如,在调整速率之后检测到RTT仍然小于第一RTT阈值,则可以增大cnt的值,从而以更激进的程度提高当前传输速率,直到传输速率与网络可用宽带的占用程度达到平衡。以此方式,能够最大程度利用数据传输的可用网络带宽,尽快实现传输速率与网络可用宽带的占用程度之间的平衡,从而避免了由于数据传输速率过低而造成的资源浪费。
可选地,为了避免由于增速过快而造成的突然拥塞,可以对所确定的更新后的传输速率进行平滑,例如:
Rc′=(Rt+Rc)/2 (5)
其中Rc′为平滑后的经更新的传输速率。
在一些实施例中,如果发送设备110计算出的RTT大于第一RTT阈值但小于第二RTT阈值,即RTTlow<RTT<RTTtarget,则发送设备11O可以认为当前用于数据传输的网络已经出现一些拥塞,但是这种拥塞还没有达到不可接受的程度。在这种情况下,发送设备110也可以提高当前传输速率。对当前传输速率的提高过程可以根据以下公式来实现。
Rt=Rc+Rai (6)
相较于RTT<RTTlow,当RTTlow<RTT<RTTtarget时,发送设备110可以以相对保守的增速来提高当前传输速率。例如,仅以预定的参考速率增量Rai来提高当前的传输速率。如果发送设备110在调整传输速率之后确定之后所计算的RTT值仍然不超出第二RTT阈值,则仍旧以预定的参考速率增量Rai再次提高当前的传输速率,直到传输速率与网络可用宽带的占用程度达到平衡。以此方式,能够一方面以合适的幅度提高传输速率以改善网络带宽的占用率,另一方面使得网络的拥塞程度始终维持在一个可接受的范围内。
在一些实施例中,如果发送设备110计算出的RTT大于第二RTT阈值,即RTT>RTTtarget,则发送设备110可以认为当前用于数据传输的网络的拥塞程度已经达到不可接受的程度。在这种情况下,发送设备110可以降低当前传输速率。对当前传输速率的降低过程可以根据以下公式来实现。
Rt=Rc*decpercent (8)
其中decpercent表示降速率,maxdec表示可允许的最大降速率,β表示降速粒度,Rc表示当前传输速率,Rt表示更新后的传输速率。
发送设备110可以根据所计算的RTT,第二RTT阈值和降速粒度来计算降速率。应当理解,所计算的降速率应处于可允许的最大降速率的范围之内。类似地,为了避免由于降速过快,网络突然过于空闲造成带宽浪费,可以根据公式(5)对所确定的更新后的传输速率进行平滑。
在上述拥塞控制的方案中,通过设置多个RTT来实现针对网络的传输速率的不同调整模式。以此方式,能够更加精细化地实现拥塞控制,改善***的传输效率。
在一些实施例中,除了考虑所计算的RTT与一个或多个RTT之间的比较来更新数据传输的当前速率之外,还可以考虑其他因素,例如当前实际要发送的数据量或发送设110实际可支持的传输速率。因为网络可能由于当前实际要发送的数据量非常低而造成当前所计算的RTT低于RTT阈值的现象。这时发送设备120可能认为带宽占用率很低而以较为激进的增速去提高当前的传输速率。然而一旦在要发送的数据量激增,同时传输速率的增速过快的情况下,会造成网络数据传输的突然拥塞,不利于数据传输的稳定性。
如图3A所示,在T0时刻,假设数据传输的起始速率为Rcc(t0),瓶颈链路的可用带宽为Ba。在T0至T1期间,由于对应于起始速率Rcc(t0)的数据传输所需带宽大于可用带宽Ba,此期间瓶颈链路会迅速地堆积数据包,发送设备110将会收到拥塞信息,并在T1时刻开始进行降速的操作。在T1至T2期间,由于对应于起始速率Rcc(t0)的数据传输所需带宽和可用带宽Ba的差值过大,需要T2-T1的时间来降低速率,在此期间瓶颈链路中的排队将会进一步增长,并T2时刻,即当前发送速率Rcc(t2)对应的数据传输所需带宽刚好满足可用带宽Ba时达到峰值。在这种情况下,可能在数据传输的过程中出现丢包现象或触发优先级的流量控制,其均会造成***性能降低。
在T2至T3期间,由于T1至T2期间堆积了大量的数据包在链路中,因此需要进一步降速来排空瓶颈链路中的队列堆积。在T3时刻,瓶颈链路中的数据包已经基本上排空,速率控制算法开始重新增速。在增速后的速率所对应的数据传输所需带宽满足可用带宽Ba前,一部分带宽会被浪费。在T4时刻本次传输周期结束。在T4至T5期间,***可以将同步的数据用于计算,因此链路将处于空载阶段,也就是说,没有或几乎没有待传输的数据包。此时由于发送设备110持续没有收到拥塞控制信息,因此会快速增大传输速率,导致在下一传输周期再次重现以上流程。
为了进一步实现更加合理的拥塞控制,发送设备110可以检测从发送设备11O发送用于探测RTT的数据包,例如RTT探针开始、直到从接收设备接收到针对该数据包的应答信息的时间间隔内发送设备110发送的数据量。如果在该时间间隔内发送的数据量bytertt满足
bytertt<RTT*Rc-γ (9)
则即便所计算的RTT小于一个或多个RTT阈值,也可以暂停对当前速传输速率的增加操作,其中Rc表示当前传输速率,γ表示修正系数。该修正系数可以避免速率过低时,由于判断错误导致算法无法正常增速。
可选的,在时间间隔内发送的数据量bytertt不满足阈值数据量的情况下,如果所计算的RTT小于一个或多个RTT阈值,可以仅调节速率调整步长cnt的值,例如执行加一操作,以便能够在之后确定增速时更快的恢复速度。
通过执行上述方案,如图3B所示,在T4至T5期间,避免了由于激进增速造成的如图3A所示的数据传输所需带宽显著增长的情况。在图3B中的T6时刻,传输速率对应的数据传输所需带宽与可用带宽达到趋于平衡的状态,这有利于网络稳定性的提高,避免了由于丢包造成的***性能下降。
如上文已经提到的,发送设备110所发送的RTT探针可能由于交换机130发送抖动而丢失,使得接收设备120无法接收到该RTT探针。因此,发送设备110无法接收到接收设备120针对该RTT探针的应答。如果发送设备110在用于检测针对该RTT探针的应答信息的时间窗口内未检测到该应答信息,但接收到来自接收设备120的CNP,则发送设备110可以确定当前存在拥塞情况,并因此降低当前的传输速率。
例如,用于检测针对该RTT探针的应答信息的时间窗口可以通过以下方式来确定:
其中β表示降速粒度以及maxdec表示可允许的最大降速率。
如果发送设备110在发送RTT探针之后的时间窗口Tfr内没有接收到应答信息,但是接收到CNP,则可以根据以下方式进行降速:
Rt=Rc*maxdec (11)
其中Rc表示当前传输速率,Rt表示更新后的传输速率,以及maxdec表示可允许的最大降速率。
发送设备110可以在接收到CNP之后将CNP计时器置零,并记录降速时间tdec。在tdec~tdec+RTTtarget期间,如果收到了针对RTT探针的应答信息,则取消CNP触发的降速,如果超过tdec+Tfr,仍未收到针对RTT探针的应答信息,且收到了CNP报文,则利用公式(11)进行二次降速,并循环以上过程直到触发RTT探针超时重传。
根据本公开的方案,一方面实现了用于触发拥塞调节的多种不同方式,另一方面实现的更加精细化的调节过程。
示例过程
图4示出了根据本公开的一些实施例的用于拥塞控制的过程400的流程图。过程400可以在第一设备110处实现。
在框410,第一设备检测与第一设备和第二设备之间的数据传输的RTT相关联的应答消息和CNP中的至少一项。
在框420,如果第一设备检测到应答消息,则在框430,基于RTT与至少一个RTT阈值的比较,更新数据传输的当前传输速率。
在一些实施例中,至少一个RTT阈值可以包括第一RTT阈值和第二RTT阈值,第一RTT阈值指示的第一拥塞程度小于第二RTT阈值指示的第二拥塞程度。
在一些实施例中,第一设备可以响应于确定RTT小于第一RTT阈值,确定速率调整步长并且基于速率调整步长和预定的参考速率增量,提高当前传输速率。
在一些实施例中,第一设备可以响应于确定RTT大于第一RTT阈值并且小于第二RTT阈值,基于预定的参考速率增量来提高当前传输速率。
在一些实施例中,第一设备可以响应于确定RTT大于第二RTT阈值,基于RTT、第二RTT阈值和预定的降速粒度来确定降速率并且基于降速率来降低当前传输速率。
在一些实施例中,第一设备可以响应于确定RTT小于至少一个RTT阈值,确定在一个时间间隔内第一设备的数据发送量。该述时间间隔是从第一设备发送用于探测RTT的数据包开始、直到从第二设备接收针对数据包的应答信息的时间段。如果第一设备确定数据发送量低于阈值量,第一设备可以保持当前传输速度。
在框440,如果第一设备未检测到应答消息但检测到CNP,则在框450,降低当前传输速率。
在一些实施例中,第一设备可以基于至少一个RTT阈值、预定的参考降速率和预定的降速粒度,确定允许检测应答信息的第一阈值时间间隔。该第一阈值时间间隔指示从第一设备发送用于探测RTT的数据包开始、直到从第二设备接收针对数据包的应答信息之间的可容忍时长。如果第一设备在阈值时间间隔内检测到CNP而未检测到应答信息,第一设备可以基于参考降速率来降低当前传输速率。
在一些实施例中,第一设备可以基于降低当前传输速率所需的降速时间和至少一个RTT阈值确定第二阈值时间间隔。如果第一设备在第二阈值时间间隔内检测到应答信息,第一设备可以恢复当前传输速率。
示例装置和设备
本公开的实施例还提供了用于实现上述方法或过程的相应装置。图5示出了根据本公开的一些实施例的用于拥塞控制的装置500的示意性结构框图。
如图5所示,装置500可以包括检测模块510,被配置为检测与第一设备和第二设备之间的数据传输的往返时间RTT相关联的应答消息和拥塞通知报文CNP中的至少一项。装置500还可以包括速率控制模块520,被配置响应于检测到应答消息,基于RTT与至少一个RTT阈值的比较,更新数据传输的当前传输速率以及响应于检测到CNP而未检测到应答消息,降低当前传输速率。
在一些实施例中,至少一个RTT阈值包括第一RTT阈值和第二RTT阈值,第一RTT阈值指示的第一拥塞程度小于第二RTT阈值指示的第二拥塞程度。
在一些实施例中,速率控制模块520还可以被配置为响应于确定RTT小于第一RTT阈值,确定速率调整步长;以及基于速率调整步长和预定的参考速率增量,提高当前传输速率。
在一些实施例中,速率控制模块520还可以被配置为响应于确定RTT大于第一RTT阈值并且小于第二RTT阈值,基于预定的参考速率增量来提高当前传输速率。
在一些实施例中,速率控制模块520还可以被配置为响应于确定RTT大于第二RTT阈值,基于RTT、第二RTT阈值和预定的降速粒度来确定降速率;以及基于降速率来降低当前传输速率。
在一些实施例中,速率控制模块520还可以被配置为基于至少一个RTT阈值、预定的参考降速率和预定的降速粒度,确定允许检测应答信息的阈值时间间隔,阈值时间间隔指示从第一设备发送用于探测RTT的数据包开始、直到从第二设备接收针对数据包的应答信息之间的可容忍时长;以及响应于在阈值时间间隔内检测到CNP而未检测到应答信息,基于参考降速率来降低当前传输速率。
在一些实施例中,速率控制模块520还可以被配置为基于降低当前传输速率所需的降速时间和至少一个RTT阈值确定第二阈值时间间隔;以及响应于在第二阈值时间间隔内检测到应答信息,则恢复当前传输速率。
在一些实施例中,速率控制模块520还可以被配置为响应于确定RTT小于至少一个RTT阈值,确定在一个时间间隔内第一设备的数据发送量,时间间隔是从第一设备发送用于探测RTT的数据包开始、直到从第二设备接收针对数据包的应答信息的时间段;以及响应于确定数据发送量低于阈值量,保持当前传输速度。
装置500中所包括的单元可以利用各种方式来实现,包括软件、硬件、固件或其任意组合。在一些实施例中,一个或多个单元可以使用软件和/或固件来实现,例如存储在存储介质上的机器可执行指令。除了机器可执行指令之外或者作为替代,装置500中的部分或者全部单元可以至少部分地由一个或多个硬件逻辑组件来实现。作为示例而非限制,可以使用的示范类型的硬件逻辑组件包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准品(ASSP)、片上***(SOC)、复杂可编程逻辑器件(CPLD),等等。
图6示出了其中可以实施本公开的一个或多个实施例的计算设备/服务器600的框图。应当理解,图6所示出的计算设备/服务器600仅仅是示例性的,而不应当构成对本文所描述的实施例的功能和范围的任何限制。
如图6所示,计算设备/服务器600是通用计算设备的形式。计算设备/服务器600的组件可以包括但不限于一个或多个处理器或处理单元610、存储器620、存储设备630、一个或多个通信单元640、一个或多个输入设备660以及一个或多个输出设备660。处理单元610可以是实际或虚拟处理器并且能够根据存储器620中存储的程序来执行各种处理。在多处理器***中,多个处理单元并行执行计算机可执行指令,以提高计算设备/服务器600的并行处理能力。
计算设备/服务器600通常包括多个计算机存储介质。这样的介质可以是计算设备/服务器600可访问的任何可以获得的介质,包括但不限于易失性和非易失性介质、可拆卸和不可拆卸介质。存储器620可以是易失性存储器(例如寄存器、高速缓存、随机访问存储器(RAM))、非易失性存储器(例如,只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存)或它们的某种组合。存储设备630可以是可拆卸或不可拆卸的介质,并且可以包括机器可读介质,诸如闪存驱动、磁盘或者任何其他介质,其可以能够用于存储信息和/或数据(例如用于训练的训练数据)并且可以在计算设备/服务器600内被访问。
计算设备/服务器600可以进一步包括另外的可拆卸/不可拆卸、易失性/非易失性存储介质。尽管未在图6中示出,可以提供用于从可拆卸、非易失性磁盘(例如“软盘”)进行读取或写入的磁盘驱动和用于从可拆卸、非易失性光盘进行读取或写入的光盘驱动。在这些情况中,每个驱动可以由一个或多个数据介质接口被连接至总线(未示出)。存储器620可以包括计算机程序产品625,其具有一个或多个程序模块,这些程序模块被配置为执行本公开的各种实施例的各种方法或动作。
通信单元640实现通过通信介质与其他计算设备进行通信。附加地,计算设备/服务器600的组件的功能可以以单个计算集群或多个计算机器来实现,这些计算机器能够通过通信连接进行通信。因此,计算设备/服务器600可以使用与一个或多个其他服务器、网络个人计算机(PC)或者另一个网络节点的逻辑连接来在联网环境中进行操作。
输入设备650可以是一个或多个输入设备,例如鼠标、键盘、追踪球等。输出设备660可以是一个或多个输出设备,例如显示器、扬声器、打印机等。计算设备/服务器600还可以根据需要通过通信单元640与一个或多个外部设备(未示出)进行通信,外部设备诸如存储设备、显示设备等,与一个或多个使得用户与计算设备/服务器600交互的设备进行通信,或者与使得计算设备/服务器600与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)进行通信。这样的通信可以经由输入/输出(I/O)接口(未示出)来执行。
根据本公开的示例性实现方式,提供了一种计算机可读存储介质,其上存储有一条或多条计算机指令,其中一条或多条计算机指令被处理器执行以实现上文描述的方法。
这里参照根据本公开实现的方法、装置(***)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程拥塞控制装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程拥塞控制装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程拥塞控制装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其他可编程拥塞控制装置、或其他设备上,使得在计算机、其他可编程拥塞控制装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程拥塞控制装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实现的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实现,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实现。在不偏离所说明的各实现的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实现的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文公开的各实现。
Claims (11)
1.一种拥塞控制的方法,包括:
检测与第一设备和第二设备之间的数据传输的往返时间RTT相关联的应答消息和拥塞通知报文CNP中的至少一项;
响应于检测到所述应答消息,基于所述RTT与至少一个RTT阈值的比较,更新所述数据传输的当前传输速率;以及
响应于检测到所述CNP而未检测到所述应答消息,降低所述当前传输速率。
2.根据权利要求1所述的方法,其中所述至少一个RTT阈值包括第一RTT阈值和第二RTT阈值,所述第一RTT阈值指示的第一拥塞程度小于所述第二RTT阈值指示的第二拥塞程度。
3.根据权利要求2所述的方法,其中更新所述当前传输速率包括:
响应于确定所述RTT小于所述第一RTT阈值,确定速率调整步长;以及
基于所述速率调整步长和预定的参考速率增量,提高所述当前传输速率。
4.根据权利要求2所述的方法,其中更新所述当前传输速率包括:
响应于确定所述RTT大于所述第一RTT阈值并且小于所述第二RTT阈值,基于预定的参考速率增量来提高所述当前传输速率。
5.根据权利要求2所述的方法,其中更新所述当前传输速率包括:
响应于确定所述RTT大于所述第二RTT阈值,基于所述RTT、所述第二RTT阈值和预定的降速粒度来确定降速率;以及
基于所述降速率来降低所述当前传输速率。
6.根据权利要求1所述的方法,其中降低所述当前传输速率包括:
基于所述至少一个RTT阈值、预定的参考降速率和预定的降速粒度,确定允许检测所述应答信息的第一阈值时间间隔,所述第一阈值时间间隔指示从所述第一设备发送用于探测所述RTT的数据包开始、直到从所述第二设备接收针对所述数据包的应答信息之间的可容忍时长;以及
响应于在所述阈值时间间隔内检测到所述CNP而未检测到所述应答信息,基于所述参考降速率来降低所述当前传输速率。
7.根据权利要求6所述的方法,还包括:
基于降低所述当前传输速率所需的降速时间和至少一个RTT阈值确定第二阈值时间间隔;以及
响应于在第二阈值时间间隔内检测到所述应答信息,则恢复所述当前传输速率。
8.根据权利要求1所述的方法,其中更新所述当前传输速率包括:
响应于确定所述RTT小于所述至少一个RTT阈值,确定在一个时间间隔内所述第一设备的数据发送量,所述时间间隔是从所述第一设备发送用于探测所述RTT的数据包开始、直到从所述第二设备接收针对所述数据包的应答信息的时间段;以及
响应于确定所述数据发送量低于阈值量,保持所述当前传输速度。
9.一种用于拥塞控制的装置,包括:
检测模块,被配置为检测与第一设备和第二设备之间的数据传输的往返时间RTT相关联的应答消息和拥塞通知报文CNP中的至少一项;以及
速率控制模块,被配置为:
响应于检测到所述应答消息,基于所述RTT与至少一个RTT阈值的比较,更新所述数据传输的当前传输速率;以及
响应于检测到所述CNP而未检测到所述应答消息,降低所述当前传输速率。
10.一种电子设备,包括:
至少一个处理单元;以及
至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令在由所述至少一个处理单元执行时使所述电子设备执行根据权利要求1至8中任一项所述的方法。
11.一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现根据权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210731475.2A CN114938354A (zh) | 2022-06-24 | 2022-06-24 | 拥塞控制的方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210731475.2A CN114938354A (zh) | 2022-06-24 | 2022-06-24 | 拥塞控制的方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114938354A true CN114938354A (zh) | 2022-08-23 |
Family
ID=82867803
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210731475.2A Pending CN114938354A (zh) | 2022-06-24 | 2022-06-24 | 拥塞控制的方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114938354A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116915706A (zh) * | 2023-09-13 | 2023-10-20 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 数据中心网络拥塞控制方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111817977A (zh) * | 2019-04-12 | 2020-10-23 | 华为技术有限公司 | 一种网络拥塞控制方法和装置 |
CN112054965A (zh) * | 2019-06-05 | 2020-12-08 | 阿里巴巴集团控股有限公司 | 一种拥塞控制方法、设备及计算机可读介质 |
CN113300974A (zh) * | 2020-07-10 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 一种拥塞控制方法、设备及计算机可读介质 |
CN113507420A (zh) * | 2021-08-05 | 2021-10-15 | 清华大学 | 一种拥塞控制方法及装置 |
CN113810309A (zh) * | 2020-06-16 | 2021-12-17 | 中兴通讯股份有限公司 | 拥塞处理方法、网络设备及存储介质 |
-
2022
- 2022-06-24 CN CN202210731475.2A patent/CN114938354A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111817977A (zh) * | 2019-04-12 | 2020-10-23 | 华为技术有限公司 | 一种网络拥塞控制方法和装置 |
CN112054965A (zh) * | 2019-06-05 | 2020-12-08 | 阿里巴巴集团控股有限公司 | 一种拥塞控制方法、设备及计算机可读介质 |
CN113810309A (zh) * | 2020-06-16 | 2021-12-17 | 中兴通讯股份有限公司 | 拥塞处理方法、网络设备及存储介质 |
CN113300974A (zh) * | 2020-07-10 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 一种拥塞控制方法、设备及计算机可读介质 |
CN113507420A (zh) * | 2021-08-05 | 2021-10-15 | 清华大学 | 一种拥塞控制方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116915706A (zh) * | 2023-09-13 | 2023-10-20 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 数据中心网络拥塞控制方法、装置、设备及存储介质 |
CN116915706B (zh) * | 2023-09-13 | 2023-12-26 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 数据中心网络拥塞控制方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11934340B2 (en) | Multi-path RDMA transmission | |
US20200236052A1 (en) | Improving end-to-end congestion reaction using adaptive routing and congestion-hint based throttling for ip-routed datacenter networks | |
US8238239B2 (en) | Packet flow control | |
KR101608612B1 (ko) | 네트워크 트래픽에서의 도착간 지연의 감소 | |
US10516621B2 (en) | Systems and methods to minimize packet discard in case of spiky receive traffic | |
CN108243116B (zh) | 一种流量控制方法及交换设备 | |
CN110445722B (zh) | 拥塞控制方法、装置、设备及存储介质 | |
US9319493B2 (en) | Communication method and information processing system | |
US20230139633A1 (en) | Data Packet Sending Method and Apparatus | |
CN114938354A (zh) | 拥塞控制的方法、装置、设备和存储介质 | |
JP2019106697A (ja) | 相互接続ネットワークでのメッセージ再送遅延を動的に管理するための方法及びデバイス | |
WO2022169602A1 (en) | Dynamic network receiver-driven data scheduling over a datacenter network for managing endpoint resources and congestion mitigation | |
CN107925593B (zh) | 用于聚合消息处理的计算节点、方法、设备和可读介质 | |
US11108697B2 (en) | Technologies for controlling jitter at network packet egress | |
EP2311226B1 (en) | Controlling data flow through a data communications link | |
US8006006B2 (en) | System and method for aggregating transmit completion interrupts | |
US20190044872A1 (en) | Technologies for targeted flow control recovery | |
US8699347B2 (en) | Communication apparatus, communication system, communication method, and a computer-readable medium | |
US11924106B2 (en) | Method and system for granular dynamic quota-based congestion management | |
US11824792B2 (en) | Method and system for dynamic quota-based congestion management | |
US20240259315A1 (en) | Method and system for granular dynamic quota-based congestion management | |
CN115022227B (zh) | 数据中心网中基于循环或重路由的数据传输方法和*** | |
WO2023221780A1 (en) | Hardware accelerated temporal congestion signals | |
WO2022247307A1 (zh) | 传输报文的方法及装置 | |
CN116827853A (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 | ||
CB02 | Change of applicant information |
Address after: Room 802, Information Building, 13 Linyin North Street, Pinggu District, Beijing, 101299 Applicant after: Beijing youzhuju Network Technology Co.,Ltd. Address before: 101299 Room 802, information building, No. 13, linmeng North Street, Pinggu District, Beijing Applicant before: Beijing youzhuju Network Technology Co.,Ltd. |
|
CB02 | Change of applicant information |