CN117579556A - 拥塞控制方法、设备、介质和程序产品 - Google Patents

拥塞控制方法、设备、介质和程序产品 Download PDF

Info

Publication number
CN117579556A
CN117579556A CN202311360433.3A CN202311360433A CN117579556A CN 117579556 A CN117579556 A CN 117579556A CN 202311360433 A CN202311360433 A CN 202311360433A CN 117579556 A CN117579556 A CN 117579556A
Authority
CN
China
Prior art keywords
congestion
data
mathematical model
control method
congestion control
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
Application number
CN202311360433.3A
Other languages
English (en)
Inventor
王璞
施继成
刘至成
刘贺
王晓湘
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Datan Technology Co ltd
Original Assignee
Beijing Datan Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Datan Technology Co ltd filed Critical Beijing Datan Technology Co ltd
Priority to CN202311360433.3A priority Critical patent/CN117579556A/zh
Publication of CN117579556A publication Critical patent/CN117579556A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2416Real-time traffic

Abstract

本发明涉及数据通信领域,特别涉及一种拥塞控制方法,所述方法用于网络系统的发送端和接收端,包括:所述接收端在确定所述数据具有拥塞标记的情况下,向对应的所述发送端发送拥塞通知;所述发送端接收来自所述网络系统的所述接收端的拥塞通知;基于所述拥塞通知调用第一数学模型、第二数学模型和/或第三数学模型调节数据的传输速率。本发明还涉及一种拥塞控制的设备、介质和程序产品。本发明的数学模型通过自适应地捕捉网络状态的变化,避免了技术人员繁琐的参数调试,显著提升应对大规模突发流量时的公平性和收敛性。

Description

拥塞控制方法、设备、介质和程序产品
技术领域
本发明涉及计算机数据处理领域,特别涉及一种拥塞控制方法、设备、介质和程序产品。
背景技术
网络拥塞出现在入口流量大于出口流量的带宽时,交换机的缓存可以处理暂时的拥塞,但是当拥塞太久时,交换机的缓存会过载,从而导致丢包,降低应用的性能,丢包导致的重传和传输协议的将会引发时延。
随着各大应用对数据处理、存储和传输需求的不断提高,远程直接内存访问(Remote Direct Memory Access,RDMA)技术应运而生。然而低延迟和高吞吐量的环境对拥塞控制的要求越来越高,从而产生了多种RDMA拥控算法,其中,数据中心量化拥塞通知(Data Center Quantized Congestion Notification,DCQCN)是RoCE网络的标准拥塞控制方案。但是,DCQCN算法存在调参复杂、不公平性、难以应对大规模Incast事件和难以收敛的问题,例如,DCQCN需要根据具体的网络状况、网络拓扑来进行参数配置,需要反复地试验和调试才能发挥作用,算法性能与参数之间强相关,因此,一旦网络状态发生了变动,DCQCN算法效果就会急剧下降;此外,DCQCN算法调速机制基于固定步长和计时器,在不同场景下效果差距大,可能出现无法收敛的情况。
本发明针对DCQCN的速率更新机制改进设计了一种参数自适应的拥塞控制方法。设计的自适应参数包括决定增速阶段中的自适应字节计数器和计时器以及加性增速过程中自适应的增速步长。
发明内容
本发明的目的在于提供一种拥塞控制方法、设备、介质和程序产品,通过自适应的计时器、字节计数器和增长步长的参数调节拥塞。
第一方面,本发明的实施方式公开了一种拥塞控制方法,所述方法用于网络系统的发送端,包括:
接收来自所述网络系统的接收端的拥塞通知;
基于所述拥塞通知调用第一数学模型、第二数学模型和/或第三数学模型调节数据的传输速率;
其中,根据所述数据的当前传输速率、最大数据包和最小发送间隔确定所述第一数学模型,基于所述第一数学模型确定计时器的阈值;
根据所述数据的所述当前传输速率和调节参数确定所述第二数学模型,基于所述第二数学模型确定字节计数器的阈值;
根据所述数据的所述当前传输速率、目标速率、链路容量和增长参数确定所述第三数学模型,基于所述第三数学模型确定步长调节器的步长;
基于所述计时器的阈值、所述字节计数器的阈值和/或所述步长调节器的步长确定所述传输速率。
可选地,所述第一数学模型为其中,Ta为所述计时器的阈值,P为所述最大数据包,t为所述最小发送间隔,RC为所述数据的所述当前传输速率。
可选地,所述第二数学模型为BCa=γ×RC,其中,BCa为所述字节计数器的所述阈值,γ为所述调节参数。
可选地,所述第三数学模型为RT=RT+min(0.1RC,β*RL),RC=(RC+RT),其中,RT为所述目标速率,RL为所述链路容量,β为所述增长参数。
第二方面,本发明公开了一种拥塞控制方法,所述方法用于网络系统的接收端,包括:
接收来自所述网络系统的发送端的数据;
在确定所述数据具有拥塞标记的情况下,向对应的所述发送端发送拥塞通知并基于所述数据类型处理所述数据。
可选地,所述数据类型为UDP报文,确定所述UDP报文具有CNP拥塞标记的情况下,基于所述CNP拥塞标记和所述UDP报文对应的任务队列生成ACK拥塞通知。
可选地,所述数据类型是ACK报文,判断所述ACK报文对应的流任务完成度和乱序状态,基于所述流任务的所述完成度和乱序状态生成ACK拥塞通知。
可选地,所述数据类型是CNP报文,基于所述CNP报文生成CNP拥塞通知。
可选地,所述流任务的信息包括数据包大小、优先级、源IP、目的IP和目的端口。
可选地,所述数据类型包括PFC报文,优先处理所述PFC报文。
可选地,优先处理所述PFC报文还包括基于所述PFC报文是暂停帧还是恢复帧进行链路暂停或恢复。
第三方面,本发明的实施方式公开了一种电子设备,其特征在于,所述设备包括处理器和存储有计算机可执行指令的存储器,所述处理器被配置为执行所述指令以实施上述的拥塞控制方法。
第四方面,本发明的实施方式公开了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条计算机指令,所述至少一条指令由处理器加载并执行,以实现上述的拥塞控制方法。
第五方面,本发明的实施方式公开了一种计算机程序产品,所述计算机程序产品包括计算机指令,所述计算机指令被执行时,以实现上述的拥塞控制方法。
本发明实施方式与现有技术相比,主要区别及其效果在于:现有的DCQCN算法采用的固定周期和速率增加会造成复杂的参数配置,影响算法的公平性以及应对不同规模Incast事件时的性能,数据中心必须为每个新应用程序和新环境的部署调整参数。本发明的方案采用自适应的字节计数器、计时器和加性增速步长,可以自动地且迅速地适应网络状态的变化,避免开发人员繁琐的参数调试过程,同时还可以有效降低调参的复杂性。
附图说明
图1是根据本发明实施例的一种拥塞控制方法的场景示意图;
图2是根据本发明实施例的一种用于接收端的拥塞控制方法的流程图;
图3是根据本发明实施例的一种报文接收的流程图;
图4是根据本发明实施例的一种用于发送端的拥塞控制方法的流程图;
图5是根据本发明实施例的一种报文发送的流程图;
图6(a)是根据本发明实施例的一种原DCQCN算法收敛速度的仿真结果的折现图;
图6(b)是根据本发明实施例的一种改进后的DCQCN算法收敛速度的仿真结果的折现图;
图7(a)是根据本发明实施例的一种640:1的发送接收任务比例的incast事件吞吐量仿真结果的折现图;
图7(b)是根据本发明实施例的一种1280:1的发送接收任务比例的incast事件吞吐量仿真结果的折现图;
图7(c)是根据本发明实施例的一种1920:1的发送接收任务比例的incast事件吞吐量仿真结果的折现图;
图7(d)是根据本发明实施例的一种交换机平均队列长度对比的仿真结果的柱状图;
图8是根据本发明实施例的一种Web Search场景60%工作负载下流完成时间的仿真结果的柱状图;
图9是根据本发明实施例的控制单元的结构框图。
具体实施方式
下面结合具体实施例和附图对本发明做进一步说明。可以理解的是,此处描述的具体实施例仅仅是为了解释本发明,而非对本发明的限定。此外,为了便于描述,附图中仅示出了与本发明相关的部分而非全部的结构或过程。应注意的是,在本说明书中,相似的标号和字母在下面的附图中表示类似项。
应当理解的是,虽然在本文中可能使用了术语“第一”、“第二”等等来描述各个特征,但是这些特征不应当受这些术语限制。使用这些术语仅仅是为了进行区分,而不能理解为指示或暗示相对重要性。举例来说,在不背离示例性实施例的范围的情况下,第一特征可以被称为第二特征,并且类似地第二特征可以被称为第一特征。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。
技术解析:
网络交换机中,当入口流量大于出口流量的带宽时会发生网络拥塞,发送端的拥塞控制主要有两种形式,一种是基于发送窗口的控制,一种是基于发送速率的控制,DCQCN算法是一种基于速率的拥塞控制方法。
现有的DCQCN算法主要由ECN(Explicit Congestion Notification,ECN)机制实现,带有ECN标记的报文被发送到接收端的网卡上,接收端网卡创建CNP拥塞通知并把该通知发送给ECN所标记的报文的发送端,其中,CNP报文包括被标记的任务队列(Queue Pair,QP)的信息。当CNP拥塞通知被发送端网卡收到时,发送端将基于拥塞控制算法来降低指定QP的传输速率。
一旦RoCEv2流量出现了拥塞,网络设备在数据包的IP头部对ECN域进行标记。当被ECN标记过的数据包到达它们原本要到达的目的地时,拥塞通知就会被反馈给源节点,源节点再通过对有问题的QP进行网络数据包的速率限制来回应拥塞通知。
拥塞控制用来减少有损网络中的丢包现象或者无损网络中的拥塞传播现象,还可以减少交换机缓存的占用和延迟,以及改善突发流量的容忍度。
图1是根据本发明实施例的一种拥塞控制方法的场景示意图。
如图1所示,应用场景涉及的设备包括用于通过各项传输协议对数据进行传输处理的主机设备和交换机设备,主机设备包括发送端和接收端,图1以发送数据为主机设备的发送端100为例,发送端100将报文发送至接收端300上,交换机200对队列长度超过阈值的数据包进行拥塞标记,接收端300对拥塞标记生成相应的拥塞通知,将拥塞通知发送到发送端100上,发送端100对产生拥塞的队列的传输速率进行调节,以减少数据传输的拥塞。
其中,发送端100、交换机200和接收端300的数量可以为一个或多个,即主机和交换机的数量不应该作为本发明的限制条件。例如在应用工程系统中,报文来自于不同的主机和交换机,至少一个发送端或者交换机将报文发送至接收端,接收端将拥塞通知发送到至少一个发送端。本申请实施例提供的拥塞控制方法可以应用于主机中,也可以应用于交换机中,主机可以是智能手机、平板电脑、笔记本电脑、台式电脑等计算机设备,具备运算能力、输入输出功能及网络连接功能。本发明的拥塞控制方法不限于主机设备,以本领域技术人员可以运用DCQCN算法为准,还可以是单台虚拟机设备,也可以是虚拟机集群、云虚拟机等具备向外提供应用服务的计算机设备。
现有技术中,原DCQCN算法的固定参数难以应对大规模incast事件,造成一系列调参复杂、缺乏公平性和难以收敛的问题,亟需灵活应对拥塞的控制方案。
本发明可以实现参数自适应化,通过增速阶段中自适应的字节计数器和计时器,以及加性增速过程中自适应的增速步长,有效解决上述问题。
图2是根据本发明实施例的一种用于接收端的拥塞控制方法的流程图。
如图2所示,本发明实施例的拥塞控制方法需要发送端100、交换机200和接收端300的配合,该方法包括:
步骤S100:接收来自网络系统的发送端100的数据。
发送端100向接收端300发送数据或控制信令,数据可以通过通信通道进行传输,接收端300接收来自主机和/或交换机的报文数据。
步骤S200:在确定数据具有拥塞标记的情况下,向对应的发送端100发送拥塞通知并基于数据类型处理数据。
在发送端100发送的数据类型和指令中,与算法逻辑相关联的报文类型主要包括UDP报文、ACK报文和CNP报文,尽管本发明的实施例以三种报文类型作为举例,值得注意的是,在未被举例的报文类型中,适用于本发明的改进后的DCQCN算法逻辑的报文类型不应作为本发明的限制条件,报文类型应以本领域技术人员可以运用改进后的DCQCN算法处理拥塞为准。
作为一种实施方式,数据类型包括PFC报文、UDP报文、ACK报文和CNP报文,优先处理PFC报文,优先处理PFC报文还包括基于PFC报文是暂停帧还是恢复帧进行链路暂停或恢复。
如果接收端300接收到的报文类型为PFC报文,接收报文的当前设备为何种设备类型,则优先处理PFC报文。
一种举例中,当主机和/或交换机的接收端300接收到报文时,无论为何种设备类型,先判断收到的报文是否为PFC报文,优先处理PFC报文,如果接收端的优先级开启了PFC功能,则基于PFC报文是暂停帧还是恢复帧进行链路暂停或恢复,例如,接收端300接收到PFC PAUSE帧,通知对应的发送端100暂时停止发送该类报文,对应的发送端100在接收到通知后,将暂时停止向该接收端300发送该类报文;如果接收端300的优先级未开启PFC功能,则直接丢弃该PFC报文。
如果主机和/或交换机的接收端300接收到的是普通报文和控制信令时,基于接收报文的设备类型区别处理,当设备类型为交换机时,则继续向目的地吓一跳发送数据,当设备类型为主机时,则调用函数接收报文,对不同类型报文进行相应处理。
作为一种实施方式,当数据类型为UDP报文时,确定UDP报文具有CNP拥塞标记的情况下,基于CNP拥塞标记和UDP报文对应的任务队列生成ACK拥塞通知。
作为一种实施方式,当数据类型是ACK报文时,判断ACK报文对应的流任务完成度和乱序状态,流任务的信息包括数据包大小、优先级、源IP、目的IP和目的端口,基于流任务的完成度和乱序状态生成ACK拥塞通知。
作为一种实施方式,当数据类型是CNP报文时,基于CNP报文生成CNP拥塞通知。
一种举例中,主机的接收端300接收到CNP报文时,若CNP报文具有ECN拥塞标记,则基于报文类型生成相应的CNP拥塞通知,将CNP拥塞通知发送至对应的发送端100,当发送端100接收到CNP拥塞通知时,触发拥塞控制算法并对产生拥塞的报文队列的传输速率进行调节。
图3是根据本发明实施例的一种报文接收的流程图。
报文接收过程中,报文经过交换机节点、网络设备、算法逻辑单元、RDMA驱动和RDMA客户端,具体接收的具体步骤如下:
通信信道将数据调度到网络设备,通信信道接收到来自其他设备的数据包后,会在链路时延后通知网络设备接收数据。
网络设备接收并处理到来自通信信道的数据包。无论接收数据的设备类型,优先处理PFC报文,如果接收端的优先级开启了PFC功能,则基于PFC报文是暂停帧还是恢复帧进行链路暂停或恢复,如果接收端的优先级未开启PFC功能,则直接丢弃该PFC报文。
如果收到的数据不是PFC报文,而是普通的数据或控制信令,根据当前设备的类型进行区分处理:如果设备类型是交换机,则会继续透传到下一个网络设备,例如网络设备为交换机或/和主机;如果设备类型是主机,则会通知主机进行接收,再调用拥塞控制算法的具体方法执行具体逻辑,具体逻辑包括:
若数据类型为UDP报文,确定UDP报文具有CNP拥塞标记的情况下,基于CNP拥塞标记和UDP报文对应的任务队列生成ACK拥塞通知;
若数据类型是ACK报文,判断ACK报文对应的流任务完成度和乱序状态,基于流任务的完成度和乱序状态生成ACK拥塞通知;
若数据类型是CNP报文,基于CNP报文生成CNP拥塞通知。
图4是根据本发明实施例的一种用于发送端的拥塞控制方法的流程图。
步骤S300:接收来自网络系统的接收端的拥塞通知。
主机的接收端300接收到报文时,若报文具有ECN拥塞标记,则基于报文类型生成相应的拥塞通知,将拥塞通知发送至对应的发送端,发送端接收来自网络系统的接收端的拥塞通知。
步骤S400:基于拥塞通知调用第一数学模型、第二数学模型和/或第三数学模型调节数据的传输速率。
原DCQCN算法采用固定周期和速率增加,造成参数配置的复杂,影响DCQCN算法的公平性以及应对不同规模Incast事件时的性能。本发明通过第一数学模型、第二数学模型和第三数学模型分别自适应地调节计时器的参数、字节计数器的参数和步长调节器的参数,可以有效解决上述问题。
以现有技术为例,现有的DCQCN算法的数学模型定义两个计数器,每经过T单位时间,计数器T=T+1,每转发B字节,计数器BC=BC+1,RT=RT+RHI*(min(T,BC)-4),RC=(RC+RT)/2,其中,RT为之前的传输速率,RT为当前的传输速率,RHI为常数。
由现有数学模型可知,现有的DCQCN算法为固定增加参数的调参方式,不利于调参和应对大规模突发事件。
步骤S500:根据数据的当前传输速率、最大数据包和最小发送间隔确定第一数学模型,基于第一数学模型确定计时器的阈值。
一种举例中,计时器阈值在原DCQCN算法中为定值,默认值为55μs,表示每过55μs计时器加一,当计时器值累加超过一定阈值,例如,F原默认设置为5,触发不同增速阶段。如果其设置不当将影响性能,例如,在传输任务中,以10MBps的速度发送一个1KB的数据包需要100μs,超过了计时器的值,导致触发速率增加。因此在使用55μs的定时器设定值的情况下,流速率最后总是会大于10MBps。这意味着对于10Gbps容量的链路,最多容纳125个流(125*10MBps=1250MBps=10000Mbps=10Gbps),这决定了DCQCN控制拥塞规模的上限。如果使用原DCQCN算法,通过通过手动调大或调小计时器值来应对不同规模的拥塞。由上分析可知,自适应的计时器值应当在链路容纳的流的数量增多时自动变小,从而能够容纳更多的流。因此,T应当设计为与当前传输速率成反比。
作为一种实施方式,本发明设计的第一数学模型为其中,Ta为计时器的阈值,P为最大数据包,t为最小发送间隔,RC为数据的当前传输速率,基于第一数学模型确定计时器的阈值,自适应地调节速率。
步骤S600:根据数据的当前传输速率和调节参数确定第二数学模型,基于第二数学模型确定字节计数器的阈值。
一种举例中,字节计数器在原DCQCN算法中为定值,默认值为150KB,表示每接收累积150KB的包字节计数器加一,当字节计数器值累加超过一定阈值,例如,F原默认设置为5,触发不同增速阶段。当流速率较大时,收发包速度快,字节计数器累加快,容易加速;反之当流速较慢时,收发包速度慢,字节计数器累加慢,加速缓慢,收敛慢。为了提高收敛速度,保证公平性,因此,自适应的字节计数器应当设计为保证速率增加间隔与传输速率无关。
作为一种实施方式,本发明设计的第二数学模型为BCa=γ×RC,其中,BCa为字节计数器的阈值,γ为调节参数,RC为数据的当前传输速率,基于第二数学模型确定字节计数器的阈值,自适应地调节速率。
步骤S700:根据数据的当前传输速率、目标速率、链路容量和增长参数确定第三数学模型,基于第三数学模型确定步长调节器的步长。
一种举例中,原DCQCN算法的加性增长阶段的公式为RT=RT+RAI,RC=(RC+RT),其中RC是当前传输速率,RT是目标速率,RAI是固定增长步长,默认值为40Mbps。不同大小配置的固定增长步长对收敛性的影响很大。例如,链路上共有1000条正在传输的流,如果这些流都在加性增长阶段,那么每过一个周期链路总吞吐量将增加1000*40Mbps/2=20Gbps,在实际应用中每条链路带宽在40Gbps-100Gbps左右,对于容量较低的链路比如40Gbps,这样的吞吐量增加显然过大,可能导致最终无法收敛。因此,自适应的增长步长应当设计为与承载的流的数量无关。
作为一种实施方式,本发明设计的第三数学模型为RT=RT+min(0.1RC,β*RL),RC=(RC+RT),其中,RT为目标速率,RL为链路容量,β为增长参数,RC为数据的当前传输速率,基于第三数学模型确定步长调节器的步长,自适应地调节加性速率。
步骤S800:基于计时器的阈值、字节计数器的阈值和/或步长调节器的步长确定传输速率。
计时器每过计时器阈值时间自增1,同时根据当前传输速率更新计时器阈值;
当字节计数器每接受到超过字节计数器阈值的比特数时自增1,同时根据当前传输速率更新字节计数器阈值。
增速算法部分:
当字节计数器和计时器都小于阈值,进入快恢复阶段;
当字节计数器和计时器其中一个存在大于阈值的情况时,进入自适应加性增速阶段;
当字节计数器和计时器都大于阈值时,进入快速增速阶段。
图5是根据本发明实施例的一种报文发送的流程图。
报文发送过程中,报文经过RDMA客户端、RDMA驱动、算法逻辑单元、Qbb网络设备和交换机节点,具体接收的具体步骤如下:
应用设备发送数据时,首先要创建对应的任务队列QP,添加对应的任务到网卡设备。由于主机上可以有多个网卡,可以使用哈希函数进行ECMP操作查找路由表来获取具体的出端口网卡索引,以决定从哪个出口发送数据,并确定发送数据的流速率。此发送数据的流速率需要根据拥塞控制算法的不同,具体进行设置。
网卡收到新的任务后,进行数据传输。具体执行数据传输的时候,会根据当前设备的类型是主机还是交换机,来决定传输的实际实现方式。
一方面,对于接收双方为主机节点来说,首先获取下一个要发送的任务的索引,需要判断索引的异常情况,以及是否是最高优先级。如果是普通的优先级,则会执行出队操作并执行数据的发送。根据传输算出的传输时间通知传输完成,直到把所有的有效的任务组中的数据都发送完,最后,主机将通过网卡将数据发送到通信信道中。
另一方面,交换机的操作相对简单,使用时间片轮询的方法,对没有被PFC暂停的队列进行循环出队,并把对应的数据包发送出去,最后把数据发送到通信信道上,报文从主机接到离开网卡进入信道。
图6(a)是根据本发明实施例的一种原DCQCN算法收敛速度的仿真结果的折现图。
图6(b)是根据本发明实施例的一种改进后的DCQCN算法收敛速度的仿真结果的折现图。
作为一种实施方式,为测试改进后的DCQCN算法的收敛速度,设置两个发送端100和一个接收端300,发送端1和接收端之间存在一条速率为40Gbps的恒定流,发送端2在2.0s时刻开始建立一条速率为40Gbps的流,使用与发送端1流量同等的优先级发送。所有链路的带宽均为40Gbps,RTT为4μs,观察流1和流2收敛到平分带宽的所用时间,双方速率都接近20Gbps,收敛仿真结果如图6(a)和图6(b)所示。
改进后的DCQCN算法,经过约5个RTT,流1吞吐迅速下降至22Gbps的稳定速率,流2吞吐迅速上升至18Gbps的稳定速率,流1与流2几近平分带宽,证明其能够快速收敛到公平带宽。
对于原DCQCN算法,经过约6个RTT,流1吞吐迅速下降至21Gbps的稳定速率,流2吞吐迅速上升至19Gbps的稳定速率,流1与流2几近平分带宽。
仿真结果表明,改进前后的DCQCN算法都能收敛到公平带宽,在收敛速度上改进后的算法快于原DCQCN算法。
图7(a)、图7(b)和图7(c)是根据本发明实施例的一种多发送比例的incast事件吞吐量仿真结果的折线图。
图7(d)是根据本发明实施例的一种交换机平均队列长度对比的仿真结果的柱状图。
incast事件即短时间内多台服务器同时向同一接收方发送或请求数据。
作为一种实施方式,为测试改进后的DCQCN算法应对突发流量的性能,设置16个发送端100和一个接收端300,每个发送端100在0.1秒内向接收端300启动N个流量任务,其中,N分别设置为40、80和120,在一段时间内持续传输,以模拟16N:1的incast事件,incast事件仿真结果如图7(a)、图7(b)、图7(c)和图7(d)所示。由图可知,原DCQCN算法可以在640和1280规模下的incast维持网络相对稳定,但是吞吐量相比于改进后的DCQCN算法较低且差距明显,稳定性也较改进后差,网络波动大,改进后的DCQCN短发显著提升了incast事件的处理能力。
由图7(a)、图7(b)和图7(c)可知,在速度响应方面,改进后的DCQCN算法总是比原DCQCN算法反应快,提早调速并更早地到达收敛。
作为一种实施方式,如图7(d)所示,在640和1280规模的incast事件下,改进前的平均队列长度约维持在350-500KB间,这对于数据中心的浅缓冲区来说是非常危险的,队列占用率居高不下,很可能发生丢包,相比之下,改进后的DCQCN算法维持了接近于零的队列占用率。在1920规模的incast事件下,原DCQCN算法完全失去了功能,网络已经失控,相比之下,改进后的算法队列占用率维持在接近于零的水平,平均队列长度不超过100KB,就算发生了新的突发流量也可以做到快速响应。
本发明的自适应的增速阈值和自适应的步长,可以提前在incast事件发生前感知并做出响应,进而提高吞吐量,无需通过牺牲带宽换取队列长度的控制。
图8是根据本发明实施例的一种Web Search场景60%工作负载下流完成时间的仿真结果的柱状图。
作为一种实施方式,为测试改进后的DCQCN算法在大规模网络和仿数据中心负载下的性能,使用WebSearch流量分布概率生成流量,测试中的平均负载,即业务流量占链路总带宽之比为60%,仿真结果如图8所示,改进后的DCQCN算法测得的中位数流完成时间高于原DCQCN算法10%,低于TIMELY算法30%,高于HPCC算法,因此,改进后的DCQCN相较于其他算法有利于短流。
图9是实施根据本发明实施例的电子设备的硬件结构框图。
如图9所示,电子设备900可以包括一个或多个处理器902、与处理器902中的至少一个连接的系统控制逻辑908、与系统控制逻辑908连接的系统内存905、与系统控制逻辑908连接的非易失性存储器(NVM)906、以及与系统控制逻辑908连接的网络接口910。
处理器902可以包括一个或多个单核或多核处理器。处理器902可以包括通用处理器和专用处理器(例如,图形处理器、应用处理器、基带处理器等)的任何组合。在本发明的实施例中,处理器902可以被配置为执行根据如图2所示的拥塞控制方法。
在一些实施例中,系统控制逻辑908可以包括任意合适的接口控制器,以向处理器902中的至少一个和/或与系统控制逻辑908通信的任意合适的设备或组件提供任意合适的接口。
在一些实施例中,系统控制逻辑908可以包括一个或多个存储器控制器,以提供连接到系统内存905的接口。系统内存905可以用于加载以及存储数据和/或指令。在一些实施例中电子设备900的系统内存905可以包括任意合适的易失性存储器,例如合适的动态随机存取存储器(DRAM)。
NVM 906可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。在一些实施例中,NVM 906可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如HDD(Hard Disk Drive,硬盘驱动器)、CD(CompactDisc,光盘)驱动器、DVD(Digital Versatile Disc,数字通用光盘)驱动器中的至少一个。
NVM 906可以包括安装在电子设备900的装置上的一部分存储资源,或者它可以由设备访问,但不一定是设备的一部分。例如,可以经由网络接口910通过网络访问NVM 906。
特别地,系统内存905和NVM 906可以分别包括:指令920的暂时副本和永久副本。指令920可以包括:由处理器902中的至少一个执行时导致电子设备900实施如图2所示的方法的指令。在一些实施例中,指令920、硬件、固件和/或其软件组件可另外地/替代地置于系统控制逻辑908、网络接口910和/或处理器902中。
网络接口910可以包括收发器,用于为电子设备900提供无线电接口,进而通过一个或多个网络与任意其他合适的设备(例如,前端模块、天线等)进行通信。在一些实施例中,网络接口910可以集成于电子设备900的其他组件。例如,网络接口910可以集成于处理器902、系统内存905、NVM 906、和具有指令的固件设备(未示出)中的至少一种,当处理器902中的至少一个执行所述指令时,电子设备900实现图2所示的各种实施例的一个或多个实施例。
网络接口910可以进一步包括任意合适的硬件和/或固件,以提供多输入多输出无线电接口。例如,网络接口910可以是网络适配器、无线网络适配器、电话调制解调器和/或无线调制解调器。
在一个实施例中,处理器902中的至少一个可以与用于系统控制逻辑908的一个或多个控制器封装在一起,以形成系统封装(SiP)。在一个实施例中,处理器902中的至少一个可以与用于系统控制逻辑908的一个或多个控制器集成在同一管芯上,以形成片上系统(SoC)。
电子设备900可以进一步包括:输入/输出(I/O)设备912,与系统控制逻辑908连接。I/O设备912可以包括用户界面,使得用户能够与电子设备900进行交互;外围组件接口的设计使得外围组件也能够与电子设备900交互。在一些实施例中,电子设备900还包括传感器,用于确定与电子设备900相关的环境条件和位置信息的至少一种。
在一些实施例中,I/O设备912可包括但不限于显示器(例如,液晶显示器、触摸屏显示器等)、扬声器、麦克风、一个或多个相机(例如,静止图像照相机和/或摄像机)、手电筒(例如,发光二极管闪光灯)和键盘。
在一些实施例中,外围组件接口可以包括但不限于非易失性存储器端口、音频插孔和电源接口。
可以理解的是,本发明实施例示意的结构并不构成对电子设备900的具体限定。在本申请另一些实施例中,电子设备900可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件、或软件和硬件的组合实现。
可将程序代码应用于输入指令,以执行本发明描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,包括处理器902的用于处理指令的系统包括具有诸如数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)或微处理器之类的处理器的任何系统。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本发明中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
根据本发明的一个实施例,还提出了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机指令,所述至少一条指令由处理器加载并执行,以实现前述的拥塞控制方法。
根据本发明的一个实施例,还提出了一种计算机程序产品,所述计算机程序产品包括计算机指令,所述计算机指令被执行时,实现前述的拥塞控制方法。
本发明的说明性实施例包括但不限于一种拥塞控制方法、设备、介质和程序产品。
将使用本领域技术人员通常采用的术语来描述说明性实施例的各个方面,以将他们工作的实质传达给本领域其他技术人员。然而,对于本领域技术人员来说,使用部分所描述的特征来施行一些替代性实施例是显而易见的。出于解释的目的,阐述了具体的数字和配置,以便对说明性实施例进行更加透彻的理解。然而,对于本领域技术人员来说显而易见的是,可以在没有具体细节的情况下实施替代实施例。在一些其他情况下,本文省略或简化了一些众所周知的特征,以避免使本发明的说明性实施例模糊不清。
此外,各种操作将以最有助于理解说明性实施例的方式被描述为多个彼此分离的操作;然而,描述的顺序不应被解释为暗示这些操作必须依赖描述的顺序,其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序也可以被重新安排。当所描述的操作完成时,所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
说明书中对“一种举例”、“举例中”、“一种实施例”、“一种实施方式”等的引用表示所描述的实施例可以包括特定特征、结构或性质,但是每个实施例也可能或不是必需包括特定的特征、结构或性质。而且,这些短语不一定是针对同一实施例。此外,当结合具体实施例描述特定特征,本领域技术人员的知识能够影响到这些特征与其他实施例的结合,无论这些实施例是否被明确描述。
除非上下文另有规定,否则术语“包含”、“具有”和“包括”是同义词。短语“A和/或B”表示“(A)、(B)或(A和B)”。
如本文所使用的,术语“模块”可以指代,作为其中的一部分,或者包括:用于运行一个或多个软件或固件程序的存储器(共享、专用或组)、专用集成电路(ASIC)、电子电路和/或处理器(共享、专用或组)、组合逻辑电路、和/或提供所述功能的其他合适组件。
在附图中,可能以特定布置和/或顺序示出了一些结构或方法特征。然而,应当理解的是,这样的特定布置和/或排序不是必需的。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来进行说明。另外,特定附图中所包含得结构或方法特征并不意味着所有实施例都需要包含这样的特征,在一些实施例中,可以不包含这些特征或者可以与将这些特征与其他特征进行组合。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

Claims (14)

1.一种拥塞控制方法,用于网络系统的发送端,其特征在于,包括:
接收来自所述网络系统的接收端的拥塞通知;
基于所述拥塞通知调用第一数学模型、第二数学模型和/或第三数学模型调节数据的传输速率;
其中,根据所述数据的当前传输速率、最大数据包和最小发送间隔确定所述第一数学模型,基于所述第一数学模型确定计时器的阈值;
根据所述数据的所述当前传输速率和调节参数确定所述第二数学模型,基于所述第二数学模型确定字节计数器的阈值;
根据所述数据的所述当前传输速率、目标速率、链路容量和增长参数确定所述第三数学模型,基于所述第三数学模型确定步长调节器的步长;
基于所述计时器的阈值、所述字节计数器的阈值和/或所述步长调节器的步长确定所述传输速率。
2.根据权利要求1所述的拥塞控制方法,其特征在于,所述第一数学模型为 其中,Ta为所述计时器的阈值,P为所述最大数据包,t为所述最小发送间隔,RC为所述数据的所述当前传输速率。
3.根据权利要求2所述的拥塞控制方法,其特征在于,所述第二数学模型为BCa=γ×RC,其中,BCa为所述字节计数器的所述阈值,γ为所述调节参数。
4.根据权利要求3所述的拥塞控制方法,其特征在于,所述第三数学模型为RT=RT+min(0.1RC,β*RL),RC=(RC+RT),其中,RT为所述目标速率,RL为所述链路容量,β为所述增长参数。
5.一种拥塞控制方法,用于网络系统的接收端,其特征在于,包括:
接收来自所述网络系统的发送端的数据;
在确定所述数据具有拥塞标记的情况下,向对应的所述发送端发送拥塞通知并基于所述数据类型处理所述数据。
6.根据权利要求5所述的拥塞控制方法,其特征在于,所述数据类型为UDP报文,确定所述UDP报文具有CNP拥塞标记的情况下,基于所述CNP拥塞标记和所述UDP报文对应的任务队列生成ACK拥塞通知。
7.根据权利要求5所述的拥塞控制方法,其特征在于,所述数据类型是ACK报文,判断所述ACK报文对应的流任务完成度和乱序状态,基于所述流任务的所述完成度和乱序状态生成ACK拥塞通知。
8.根据权利要求5所述的拥塞控制方法,其特征在于,所述数据类型是CNP报文,基于所述CNP报文生成CNP拥塞通知。
9.根据权利要求7所述的拥塞控制方法,其特征在于,所述流任务的信息包括数据包大小、优先级、源IP、目的IP和目的端口。
10.根据权利要求5-9任一项所述的拥塞控制方法,其特征在于,所述数据类型包括PFC报文,优先处理所述PFC报文。
11.根据权利要求10所述的接收端拥塞控制方法,其特征在于,优先处理所述PFC报文还包括基于所述PFC报文是暂停帧还是恢复帧进行链路暂停或恢复。
12.一种电子设备,其特征在于,所述设备包括存储有计算机可执行指令的存储器和处理器,所述处理器被配置为执行所述指令以实施根据权利要求1-11中任一项所述的拥塞控制方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条计算机指令,所述至少一条指令由处理器加载并执行,以实现如权利要求1-11中任一项所述的拥塞控制方法。
14.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,所述计算机指令被执行时,实现如权利要求1-11中任一项所述的拥塞控制方法。
CN202311360433.3A 2023-10-19 2023-10-19 拥塞控制方法、设备、介质和程序产品 Pending CN117579556A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311360433.3A CN117579556A (zh) 2023-10-19 2023-10-19 拥塞控制方法、设备、介质和程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311360433.3A CN117579556A (zh) 2023-10-19 2023-10-19 拥塞控制方法、设备、介质和程序产品

Publications (1)

Publication Number Publication Date
CN117579556A true CN117579556A (zh) 2024-02-20

Family

ID=89888859

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311360433.3A Pending CN117579556A (zh) 2023-10-19 2023-10-19 拥塞控制方法、设备、介质和程序产品

Country Status (1)

Country Link
CN (1) CN117579556A (zh)

Similar Documents

Publication Publication Date Title
CN109120544B (zh) 一种数据中心网络中基于主机端流量调度的传输控制方法
KR100666980B1 (ko) 트래픽 폭주 제어 방법 및 이를 구현하기 위한 장치
CN108540395B (zh) 无丢失网络中的拥塞判断方法及交换机
CN110445722B (zh) 拥塞控制方法、装置、设备及存储介质
US20060203730A1 (en) Method and system for reducing end station latency in response to network congestion
CN107948103B (zh) 一种基于预测的交换机pfc控制方法及控制系统
US8576850B2 (en) Band control apparatus, band control method, and storage medium
CN110784415B (zh) 一种ecn快速响应的方法及装置
CN109698797B (zh) 一种tcp拥塞控制方法和装置
CN112104562A (zh) 拥塞控制方法及装置、通信网络、计算机存储介质
EP4156766A1 (en) Data packet sending method and apparatus
JP4700290B2 (ja) 通信システム内のフロー制御のための方法
CN113141314B (zh) 一种拥塞控制方法及设备
CN113315720B (zh) 一种数据流控制方法、系统及设备
CN112995048B (zh) 数据中心网络的阻塞控制与调度融合方法及终端设备
CN109104742A (zh) 拥塞窗口调整方法及发送设备
US9584420B2 (en) Switching between loss-based and delay-based mode for real-time media congestion controllers
CA2732434C (en) Controlling data flow through a data communications link
CN115514710B (zh) 一种基于自适应滑动窗的弱连接流量管控方法
CN117579556A (zh) 拥塞控制方法、设备、介质和程序产品
Irawan et al. Performance evaluation of queue algorithms for video-on-demand application
CN112787919A (zh) 报文传输方法及设备、可读介质
CN114095431A (zh) 队列管理的方法和网络设备
WO2022057462A1 (zh) 拥塞控制方法和装置
CN112532535B (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