CN110278157B - 拥塞控制方法及网络设备 - Google Patents
拥塞控制方法及网络设备 Download PDFInfo
- Publication number
- CN110278157B CN110278157B CN201810208950.1A CN201810208950A CN110278157B CN 110278157 B CN110278157 B CN 110278157B CN 201810208950 A CN201810208950 A CN 201810208950A CN 110278157 B CN110278157 B CN 110278157B
- Authority
- CN
- China
- Prior art keywords
- period
- queue
- value
- congestion threshold
- network device
- 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.)
- Active
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/29—Flow control; Congestion control using a combination of thresholds
-
- 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
-
- 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/50—Queue scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6255—Queue scheduling characterised by scheduling criteria for service slots or service orders queue load conditions, e.g. longest queue first
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了拥塞控制方法及网络设备,其中,所述方法包括:网络设备在第一周期结束后将拥塞阈值增加固定值,在第二周期内检测网络设备上队列的平均流量负载减去在第一周期内所述队列的平均流量负载的差值是否大于目标增加值,并在第二周期结束后根据检测的结果设置拥塞阈值,第一周期是第二周期的上一周期;当队列中缓存的报文量大于拥塞阈值时,网络设备对接收的报文进行标记,将标记后的报文入队所述队列;网络设备将从队列出队的标记后的报文发送给接收设备。采用本申请实施例,可基于队列的流量负载,自动设置该队列的拥塞阈值,在确保队列缓存的报文量较小的情况下,提升队列的吞吐量,提高拥塞控制效率。
Description
技术领域
本申请涉及通信技术领域,尤其涉及拥塞控制方法及网络设备。
背景技术
显式拥塞通告(Explicit Congestion Notification,ECN)是一种拥塞控制技术,即用户在网络设备的队列上手动配置拥塞阈值,当该队列中缓存的报文量大于拥塞阈值时,网络设备可以对出该队列的报文进行标记,并将标记后的报文发送给接收设备;接收设备在接收到标记后的报文之后,可以通知发送设备减小报文发送速率,以达到减轻网络设备拥塞的目的。目前,在现有网络设备上,ECN的实现是一种静态固定的方法,需要用户手动配置一个固定不变的拥塞阈值。但是随着业务流量模型的动态变化,固定不变的拥塞阈值并不能适应多样化的需求。拥塞阈值较高,队列缓存的报文量较大,对网络设备的缓存能力要求较高,报文的往返时延(Round-Trip Time,RTT)较长;拥塞阈值较低,队列的吞吐量较低,带宽利用率较低。基于此,如何配置合适的拥塞阈值,以满足业务流量模型的多样化需求是当前亟需解决的技术问题。
发明内容
本申请实施例所要解决的技术问题在于,提供拥塞控制方法及网络设备,可基于队列的流量负载,自动设置该队列的拥塞阈值,在确保队列缓存的报文量较小的情况下,提升队列的吞吐量,提高拥塞控制效率。
第一方面,本申请实施例提供了一种拥塞控制方法,网络设备可以在第一周期结束后将拥塞阈值增加固定值,然后在第二周期内检测网络设备上队列的平均流量负载减去在第一周期内队列的平均流量负载的差值是否大于目标增加值,并在第二周期结束后根据检测的结果设置拥塞阈值,第一周期是第二周期的上一周期。当队列中缓存的报文量大于拥塞阈值时,网络设备对接收的报文进行标记,将标记后的报文入队该队列,标记指示网络设备上发生拥塞,网络设备可以将从队列出队的标记后的报文发送给接收设备。
在该技术方案中,网络设备可以在增大拥塞阈值之后,检测增大拥塞阈值之后队列的平均流量负载减去增大拥塞阈值之前队列的平均流量负载的差值是否大于目标增加值,进而根据检测的结果设置拥塞阈值,可实现基于队列的流量负载,自动设置该队列的拥塞阈值,在确保队列缓存的报文量较小的情况下,提升队列的吞吐量,提高拥塞控制效率。
在一个可行的实施例中,网络设备根据检测的结果设置拥塞阈值,具体可以为:当检测的结果为是时,网络设备保持增加固定值后的拥塞阈值不变。平均流量负载增长超过目标值,增加后的阈值相较于增加前的阈值是更适合的阈值。
在一个可行的实施例中,网络设备根据检测的结果设置拥塞阈值,具体可以为:当检测的结果为否且差值不小于目标减小值时,网络设备将增加固定值后的拥塞阈值减去固定值。平均流量负载增长没有超过目标值,水线不需要提升,增加前的阈值是更适合的阈值。
在一个可行的实施例中,网络设备根据检测的结果设置拥塞阈值,具体可以为:当所述检测的结果为否且所述差值小于目标减小值时,所述网络设备将增加固定值后的拥塞阈值乘以所述第二周期内所述队列的平均流量负载与所述第一周期内所述队列的平均流量负载的比值。业务负载突然下降时,直接按比例调整阈值,可以快速将阈值调整到合适水平。
在一个可行的实施例中,网络设备检测到在第三周期内队列的平均流量负载减去第三周期的上一周期内队列的平均流量负载的差值小于目标减小值时,可以在第三周期结束后将拥塞阈值乘以第三周期内队列的平均流量负载与第三周期的上一周期内队列的平均流量负载的比值。业务负载突然下降时,直接按比例调整阈值,可以快速将阈值调整到合适水平。
在一个可行的实施例中,网络设备根据检测的结果设置拥塞阈值,具体可以为:当检测的结果为是时,网络设备将增加固定值后的拥塞阈值再次增加固定值。启动阶段,快速增加拥塞阈值,可以快速将阈值调整到合适水平。
在一个可行的实施例中,网络设备根据检测的结果设置拥塞阈值的方式还可以为:网络设备根据在第四周期内队列的平均流量负载,计算比较阈值,第二周期包括该第四周期,用比较阈值和增加固定值后的拥塞阈值较小者设置拥塞阈值。根据比较阈值设置拥塞阈值,第四周期是包括在第二周期中的细分周期,能更加反映控制的实时性,平均流量负载突然增加时提升水线,避免欠吞吐,平均流量负载降低时,降低水线,尽快通知源端降速,避免队列过度堆积。
在一个可行的实施例中,网络设备计算比较阈值,具体可以为:网络设备将在第四周期内队列的平均流量负载与预定值相乘,得到比较阈值。根据实际情况设置预定值,可以灵活控制队列缓存大小和带宽利用率。
第二方面,本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有计算机程序指令,所述计算机程序指令被网络设备执行时,使得网络设备执行第一方面所述的方法。
第三方面,本申请实施例提供一种装置,该装置具有实现第一方面所述的方法示例中网络设备行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的单元或模块。
在一个设计方案中,装置的结构中可包括处理模块和发送模块,所述处理模块被配置为支持网络设备执行第一方面所述方法中相应的功能,例如设置拥塞阈值、执行检测操作和执行计算操作。所述发送模块用于支持网络设备与其他设备(例如接收设备)之间的通信。所述装置还可以包括存储模块和接收模块,所述存储模块用于与处理模块耦合,其保存装置必要的程序指令和数据,所述接收模块用于支持网络设备与其他设备之间(例如发送设备)的通信。作为示例,处理模块可以为处理器,发送模块可以为发射器,接收模块可以为接收器,存储模块可以为存储器。
第四方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行第一方面所述的通信方法。
第五方面,本申请实施例提供了一种网络设备,该网络设备包括处理器和网络接口,处理器用于网络设备实现上述第一方面中所涉及的功能,例如,生成或处理上述方法中所涉及的数据和/或信息,例如设置拥塞阈值、执行检测操作和执行计算操作。网络接口用于支持网络设备与其他设备(例如接收设备)之间的通信。
在一个设计方案中,所述网络设备还包括存储器,所述存储器,用于保存网络设备必要的计算机程序指令和数据。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中使用的附图进行说明。
图1是本申请实施例公开的一种拥塞控制***的架构示意图;
图2是本申请实施例公开的一种拥塞控制方法的流程示意图;
图3A是本申请实施例公开的一种拥塞阈值的示意图;
图3B是本申请另一实施例公开的一种拥塞阈值的示意图;
图3C是本申请另一实施例公开的一种拥塞阈值的示意图;
图4是本申请另一实施例公开的一种拥塞控制方法的流程示意图;
图5A是本申请另一实施例公开的一种拥塞阈值的示意图;
图5B是本申请另一实施例公开的一种拥塞阈值的示意图;
图6A是本申请另一实施例公开的一种拥塞阈值的示意图;
图6B是本申请另一实施例公开的一种拥塞阈值的示意图;
图7是本申请另一实施例公开的一种拥塞控制方法的流程示意图;
图8是本申请实施例公开的一种网络设备的结构示意图;
图9是本申请另一实施例公开的一种网络设备的结构示意图。
具体实施方式
下面结合本申请实施例中的附图对本申请实施例进行描述。
为了更好的理解本申请实施例公开的一种拥塞控制方法及网络设备,下面首先对本申请实施例适用的网络架构进行描述。请参见图1,图1是本申请实施例公开的一种拥塞控制***的架构示意图。如图1所示,该拥塞控制***可以至少包括发送设备101、至少一个网络设备102以及接收设备103。其中,发送设备101经至少一个网络设备102向接收设备103发送报文,例如发送设备101将报文发送给网络设备102,网络设备102在第一周期结束后将拥塞阈值增加固定值,网络设备102在第二周期内检测队列的平均流量负载减去在第一周期内队列的平均流量负载的差值是否大于目标增加值,网络设备102在第二周期结束后根据检测的结果设置拥塞阈值,当队列中缓存的报文量大于拥塞阈值时,网络设备102对接收的报文进行标记,将标记后的报文入队所述队列,将从所述队列出队的标记后的报文发送给接收设备103,接收设备103基于标记后的报文通知发送设备101减小报文发送速率,发送设备101响应该通知降低向网络设备102发送报文的报文发送速率,由此降低网络拥塞。
举例来说,网络设备102对报文进行标记可以是将报文头中的2比特ECN字段置为11,以表示发生拥塞。在该例子中,接收设备103通知发送设备101减小报文发送速率可以利用确认(acknowledgement,ACK)报文,ACK报文中可以是将报文头中的ECN回传(ECN Echo,ECE)字段置为1,以表示发生拥塞。当发送设备101经过多个网络设备向接收设备103发送报文时,如果当前网络设备接收的报文已经被上一跳网络设备标记过,则向下一跳网络设备转发标记过的报文,由此接收设备103接收到标记过的报文时可以知晓整个转发路径上有网络设备发生拥塞。当发送设备101和接收设备103之间存在多个网络设备时,接收设备103也可以经多个网络设备向发送设备101返回ACK报文以便通知发送设备101减小报文发送速率。
其中,网络设备102可以为交换机或路由器等设备。网络设备102可以包括处理器、至少一个队列和至少一个输出端口,网络设备102中的处理器接收到来自发送设备101的报文后,将报文入队(enqueue)到队列中,随后利用输出端口将从队列中出队(dequeue)的报文发送给接收设备103。处理器可以是中央处理器(central processing unit,CPU)或是网络处理器(network processor,NP)。队列可以用于缓存处理器输出的报文,队列中缓存的报文遵循先入先出原则,队列可以由专用硬件实现。从多个队列出队的报文可以共用一个输出端口向接收设备103发送,该多个队列共享该输出端口的带宽。
其中,队列的流量负载可以是该队列的出速率,也可以是该队列的出速率与该网络设备102中该队列使用的输出端口的预设带宽的比值等。队列的出速率指的是从该队列输出(也可称为出队)数据或报文的速率。队列的平均流量负载指的是周期内队列的流量负载的平均值,网络设备102可以以如下方法计算队列的平均流量负载,例如队列的流量负载是队列的出速率时,队列的平均流量负载可以是一个周期内从队列输出的数据量或报文量除以该周期的时间长度得到的值,例如队列的流量负载是队列的出速率与该队列使用的输出端口的预设带宽的比值时,队列的平均流量负载可以是将一个周期内从队列输出的数据量或报文量除以该队列使用的输出端口的预设带宽再除以该周期的时间长度得到的值。
其中,拥塞阈值可以用于衡量队列缓存的报文量,队列缓存的报文量可以是队列缓存报文的数量,或是队列缓存的数据的大小。当设备上一队列缓存的报文量超过拥塞阈值时,表示设备上该队列中待出队的报文过多,队列发生拥塞。拥塞阈值可以具有预设的初始值,例如20000字节。示例性的,拥塞阈值可以为ECN水线。
其中,第一周期可以是第二周期的上一周期,即第一周期和第二周期是连续的两个周期,第一周期的结束时间可以为第二周期的起始时间。
其中,固定值也可以称为步长,可以为预先设定的数据量,例如初始时步长15000字节(Bytes),运行一段时间后步长4500字节。目标增加值可以为预先设定的增长幅度门限,例如当队列的流量负载是该队列的出速率时,目标增加值可以是2吉比特每秒(Gbps),当队列的流量负载是该队列的出速率与所述预设带宽的比值时,目标增加值可以是5%。类似地,可以定义目标减小值,目标减小值可以为预先设定的降低幅度门限,目标减小值小于零,当队列的流量负载是该队列的出速率时,例如是-12Gbps,或者当队列的流量负载是该队列的出速率与所述预设带宽的比值时,例如是-30%。
基于图1所示的拥塞控制***的架构示意图,请参见图2,图2是本申请实施例提供的一种拥塞控制方法,该方法包括但不限于如下步骤:
步骤S201:网络设备在第一周期结束后将拥塞阈值增加固定值。
举例来说,网络设备可以以8个周期为一个调整循环,在第1个周期至第7个周期内队列的拥塞阈值保持不变,在第7个周期结束后将上述拥塞阈值增加固定值,将增加固定值后的拥塞阈值作为在第8个周期内该队列的拥塞阈值。示例性的,第7个周期可以为本申请实施例中描述的第一周期,第8个周期可以为本申请实施例中描述的第二周期。以图3A所示的拥塞阈值的示意图为例,假设每个周期的时长为T1,第1个周期为0至T1这一时间段,第7个周期为6T1至7T1这一时间段,第8个周期为7T1至8T1这一时间段,在第1个周期至第7个周期(即0至7T1这一时间段)内队列的拥塞阈值为A,固定值为B,网络设备在7T1这一时刻将拥塞阈值增加固定值,则网络设备可以确定在第8个周期(即7T1至8T1这一时间段)内该队列的拥塞阈值可以为A+B。
示例性的,网络设备可以通过如下公式在第7个周期结束后将拥塞阈值增加固定值,其中:
Th2_next=Th2_present+Gap_slow
其中,Th2_next表示在第8个周期内队列的拥塞阈值,Th2_present表示在第7个周期内队列的拥塞阈值,Gap_slow表示固定值。
步骤S202:网络设备在第二周期内检测网络设备上队列的平均流量负载减去在第一周期内队列的平均流量负载的差值是否大于目标增加值。
举例来说,网络设备在第7个周期结束后将拥塞阈值增加固定值之后,可以获取在第8个周期内队列的平均流量负载,网络设备可以获取在第8个周期内队列的平均流量负载减去在第7个周期内队列的平均流量负载的差值,该差值可能大于零也可能小于零。网络设备检测该差值是否大于目标增加值,当该差值大于目标增加值时,说明业务负载变大,网络设备可以保持增加固定值后的拥塞阈值不变,并进入下一个调整循环;当该差值小于等于目标增加值且不小于目标减小值(即业务负载变大没有超过阈值,且业务负载也没有变小超过阈值)时,网络设备可以将增加固定值后的拥塞阈值减去固定值,即回退到增长之前的拥塞阈值,并进入下一个调整循环。其中,目标增加值大于0,目标减小值小于0。
在一个可行的实施例中,网络设备检测到在第三周期内队列的平均流量负载减去第三周期的上一周期内队列的平均流量负载的差值小于目标减小值时,在第三周期结束后将拥塞阈值乘以第三周期内队列的平均流量负载与第三周期的上一周期内队列的平均流量负载的比值。
举例来说,当在一个调整循环所包含的8个周期中,任意周期内队列的平均流量负载出现大幅下降时,说明业务负载突然下降,网络设备可以在该周期结束后将在该周期内队列的拥塞阈值乘以该周期内队列的平均流量负载与该周期的上一周期内队列的平均流量负载的比值。其中,目标减小值小于0。例如,网络设备可以获取在第6个周期内队列的平均流量负载减去在第5个周期内队列的平均流量负载的差值,网络设备检测该差值是否小于目标减小值,当该差值小于目标减小值时,网络设备可以在第6个周期结束后将拥塞阈值乘以第6个周期内队列的平均流量负载与第5个周期内队列的平均流量负载的比值。示例性的,一个调整循环所包含的8个周期中的任意周期可以为本申请实施例中的第三周期。示例性的,一个调整循环中任意周期内队列的平均流量负载出现大幅下降时,网络设备可以在该周期结束后将在该周期内队列的拥塞阈值乘以该周期内队列的平均流量负载与该周期的上一周期内队列的平均流量负载的比值,得到在该周期的下一周期内队列的拥塞阈值,并将该周期的下一周期作为上述调整循环的下一个调整循环中的第1个周期。当前述第二周期内队列的平均流量负载出现大幅下降时,网络设备上检测到第二周期内网络设备上队列的平均流量负载减去在第一周期内队列的平均流量负载的差值不大于目标增加值且小于目标减小值,则网络设备在第二周期结束后将增加固定值后的拥塞阈值乘以第二周期内队列的平均流量负载与第一周期内队列的平均流量负载的比值。
以图3B所示的拥塞阈值的示意图为例,当在T1至2T1这一时间段内队列的平均流量负载减去在0至T1这一时间段内队列的平均流量负载的差值小于目标减小值时,网络设备可以在第2个周期结束后(即2T1这一时刻)将在第2个周期内队列的拥塞阈值(即A)乘以第2个周期内队列的平均流量负载与第1个周期内队列的平均流量负载的比值。网络设备将在T1至2T1这一时间段内队列的拥塞阈值乘以在T1至2T1这一时间段内队列的平均流量负载与在0至T1这一时间段内队列的平均流量负载的比值,作为在2T1至9T1这一时间段内队列的拥塞阈值。然后,网络设备可以在9T1这一时刻将在8T1至9T1这一时间段内队列的拥塞阈值增加固定值,得到在9T1至10T1这一时间段内队列的拥塞阈值。
示例性的,网络设备可以通过如下公式将拥塞阈值乘以第三周期内队列的平均流量负载与第三周期的上一周期内队列的平均流量负载的比值,其中:
Th2_next′=Th2_present′*Load_present′/Load_farmer′
其中,Th2_next′表示在第三周期的下一周期内队列的拥塞阈值,Th2_present′表示在第三周期内队列的拥塞阈值,Load_present′表示在第三周期内队列的平均流量负载,Load_farmer′表示在第三周期的上一周期内队列的平均流量负载。
步骤S203:当在第二周期内队列的平均流量负载减去在第一周期内队列的平均流量负载的差值大于目标增加值时,网络设备保持增加固定值后的拥塞阈值不变。
举例来说,当在第8个周期内队列的平均流量负载减去在第7个周期内队列的平均流量负载的差值大于目标增加值时,说明业务负载变大了,网络设备可以保持增加固定值后的拥塞阈值不变,并进入下一个调整循环,可提升该队列的吞吐量,提高宽带利用率。以图3A为例,当在7T1至8T1这一时间段内队列的平均流量负载减去在6T1至7T1这一时间段内队列的平均流量负载的差值大于目标增加值时,网络设备可以在8T1至15T1这一时间段内保持增加固定值后的拥塞阈值不变,即在8T1至15T1这一时间段内队列的拥塞阈值为A+B。网络设备还可以在第15T1这一时刻将在8T1至15T1这一时间段内队列的拥塞阈值再次增加固定值,即在15T1至16T1这一时间段内队列的拥塞阈值为A+2B。然后,网络设备可以检测在15T1至16T1这一时间段内队列的平均流量负载减去在14T1至15T1这一时间段内队列的平均流量负载的差值是否大于目标增加值,当在15T1至16T1这一时间段内队列的平均流量负载减去在14T1至15T1这一时间段内队列的平均流量负载的差值大于目标增加值时,网络设备可以保持在15T1至16T1这一时间段内队列的拥塞阈值不变;当在15T1至16T1这一时间段内队列的平均流量负载减去在14T1至15T1这一时间段内队列的平均流量负载的差值不大于目标增加值且不小于目标减小值时,网络设备可以将在15T1至16T1这一时间段内队列的拥塞阈值减去固定值。
步骤S204:当在第二周期内队列的平均流量负载减去在第一周期内队列的平均流量负载的差值不大于目标增加值且不小于目标减小值时,网络设备将增加固定值后的拥塞阈值减去固定值。
举例来说,当在第8个周期内队列的平均流量负载减去在第7个周期内队列的平均流量负载的差值不大于目标增加值且不小于目标减小值时,说明增加固定值前的拥塞阈值已经接近合理值(拥塞阈值增加固定值后,业务负载并没有变得足够大,且业务负载也没有突然变小),网络设备可以将增加固定值后的拥塞阈值减去固定值,并进入下一个调整循环,可减小队列的缓存压力。以图3C为例,当在7T1至8T1这一时间段内队列的平均流量负载减去在6T1至7T1这一时间段内队列的平均流量负载的差值不大于目标增加值且不小于目标减小值时,网络设备可以在8T1这一时刻将增加固定值后的拥塞阈值减去固定值,即在8T1至15T1这一时间段内队列的拥塞阈值为A。网络设备还可以在15T1这一时刻将在8T1至15T1这一时间段内队列的拥塞阈值再次增加固定值,即在15T1至16T1这一时间段内队列的拥塞阈值为A+B。然后,网络设备可以检测在15T1至16T1这一时间段内队列的平均流量负载减去在14T1至15T1这一时间段内队列的平均流量负载的差值是否大于目标增加值,当在15T1至16T1这一时间段内队列的平均流量负载减去在14T1至15T1这一时间段内队列的平均流量负载的差值大于目标增加值时,网络设备可以保持在15T1至16T1这一时间段内队列的拥塞阈值不变;当在15T1至16T1这一时间段内队列的平均流量负载减去在14T1至15T1这一时间段内队列的平均流量负载的差值不大于目标增加值且不小于目标减小值时,网络设备可以将在15T1至16T1这一时间段内队列的拥塞阈值减去固定值。
步骤S205:当队列中缓存的报文量大于拥塞阈值时,网络设备对接收的报文进行标记,将标记后的报文入队该队列。
步骤S206:网络设备将从队列出队的标记后的报文发送给接收设备。
以图1为例,网络设备102将队列中缓存的报文出队,当队列中标记后的报文前包括未标记的报文时,未标记的报文先出队,并被发往接收设备103,随后标记后的报文出队,网络设备102将标记后的报文发送给接收设备103。
在图2所描述的方法中,网络设备在第一周期结束后将拥塞阈值增加固定值,在第二周期内检测队列的平均流量负载减去在第一周期内队列的平均流量负载的差值是否大于目标增加值,当检测的结果为是时,保持增加固定值后的拥塞阈值不变;当检测的结果为否且差值不小于目标减小值时,将增加固定值后的拥塞阈值减去固定值,当队列中缓存的报文量大于拥塞阈值时,网络设备对接收的报文进行标记,并将标记后的报文入队该队列,网络设备将从队列出队的标记后的报文发送给接收设备,网络设备可根据队列的流量负载的变化,动态调整拥塞阈值,在确保队列缓存的报文量较小的情况下,提升队列的吞吐量,提高拥塞控制效率。
请参见图4,图4是本申请另一实施例提供的一种拥塞控制方法,该方法包括但不限于如下步骤:
步骤S401:网络设备在第一周期结束后将拥塞阈值增加固定值。
举例来说,每经过一个调整周期,网络设备可以将在该调整周期内队列的拥塞阈值增加固定值。示例性的,两个相邻调整周期中前一个调整周期可以对应本申请实施例中的第一周期,两个相邻调整周期中后一个调整周期可以对应本申请实施例中的第二周期。以图5A所示的拥塞阈值的示意图为例,假设第一周期为0至T2这一时间段,在第一周期内队列的拥塞阈值为C,固定值为D,网络设备可以在T2这一时刻将0至T2这一时间段内队列的拥塞阈值增加固定值,即在T2至2T2这一时间段内队列的拥塞阈值为C+D。
在一个可行的实施例中,在网络设备启动后,网络设备可以将预设的初始值作为在第一周期内队列的拥塞阈值,在第一周期结束后将拥塞阈值增加固定值。以图5A所示的拥塞阈值的示意图为例,第一周期可以为0至T2这一时间段,初始值为C,固定值为D,则在0至T2这一时间段内队列的拥塞阈值为C,在T2至2T2这一时间段内队列的拥塞阈值为C+D。
需要说明的是,本申请实施例中的固定值、目标增加值、目标减小值、第一周期或者第二周期分别和图2所示实施例中的固定值、目标增加值、目标减小值、第一周期或者第二周期可以对应相同,也可以对应不相同,具体不受本申请实施例的限定。
示例性的,网络设备可以通过如下公式在第一周期结束后将拥塞阈值增加固定值,其中:
Th2_next=Th2_present+Gap_fast
其中,Th2_next表示在第二周期内队列的拥塞阈值,Th2_present表示在第一周期内队列的拥塞阈值,Gap_fast表示固定值。
步骤S402:网络设备在第二周期内检测队列的平均流量负载减去在第一周期内队列的平均流量负载的差值是否大于目标增加值。
举例来说,网络设备可以分别统计在两个相邻调整周期内队列的平均流量负载,如果在两个相邻调整周期内队列的平均流量负载的增长幅度超过目标增加值,网络设备可以在下一个调整周期继续基于固定值提升拥塞阈值,即将增加固定值后的拥塞阈值再次增加固定值;否则,网络设备可以保持增加固定值后的拥塞阈值不变。其中,目标增加值大于0。
步骤S403:当在第二周期内队列的平均流量负载减去在第一周期内队列的平均流量负载的差值大于目标增加值时,网络设备将增加固定值后的拥塞阈值再次增加固定值。
以图5A为例,网络设备在T2这一时刻将拥塞阈值增加固定值之后,可以获取在T2至2T2这一时间段内队列的平均流量负载减去在0至T2这一时间段内队列的平均流量负载的差值,当该差值大于目标增加值时,网络设备可以在2T2这一时刻将在T2至2T2这一时间段内队列的拥塞阈值再次增加固定值,即在2T2-3T2这一时间段内该队列的拥塞阈值为C+2D。网络设备还可以获取在2T2至3T2这一时间段内队列的平均流量负载减去在T2至2T2这一时间段内队列的平均流量负载的差值,当该差值大于目标增加值时,网络设备可以在3T2这一时刻将在2T2至3T2这一时间段内队列的拥塞阈值再次增加固定值,即在3T2-4T2这一时间段内该队列的拥塞阈值为C+3D。
步骤S404:当在第二周期内队列的平均流量负载减去在第一周期内队列的平均流量负载的差值不大于目标增加值时,网络设备保持增加固定值后的拥塞阈值不变。
以图5B所示的拥塞阈值的示意图为例,网络设备在T2这一时刻将拥塞阈值增加固定值之后,可以获取在T2至2T2这一时间段内队列的平均流量负载减去在0至T2这一时间段内队列的平均流量负载的差值,当该差值不大于目标增加值时,网络设备可以在2T2至3T2这一时间段内保持拥塞阈值不变,即在2T2至3T2这一时间段内该队列的拥塞阈值为C+D。
步骤S405:当队列中缓存的报文量大于拥塞阈值时,网络设备对接收的报文进行标记,将标记后的报文入队该队列。
步骤S406:网络设备将从队列出队的标记后的报文发送给接收设备。
步骤S406与步骤S206类似,在此不再赘述。
在图4所描述的方法中,网络设备在第一周期结束后将拥塞阈值增加固定值,当在第二周期内队列的平均流量负载减去在第一周期内队列的平均流量负载的差值大于目标增加值时,网络设备将增加固定值后的拥塞阈值再次增加固定值;当在第二周期内队列的平均流量负载减去在第一周期内队列的平均流量负载的差值小于等于目标增加值时,保持增加固定值后的拥塞阈值不变,当队列中缓存的报文量大于拥塞阈值时,网络设备对接收的报文进行标记,并将标记后的报文入队该队列,网络设备将从队列出队的标记后的报文发送给接收设备,可将拥塞阈值调整到恰好满足流量负载需求的最小值,既保证队列的吞吐量,又降低报文突发,降低队列的丢包率,减小设备缓存压力。
以图6A、6B为例,网络设备在进行拥塞控制的过程中可以包括启动阶段和调整阶段,在启动阶段,网络设备可快速将拥塞阈值调整到适应队列的流量负载的数值;在调整阶段,网络设备可根据队列的流量负载的变化,将拥塞阈值动态调整到适应变化后的该队列的流量负载的数值。启动阶段可以使用图2所示方法,调整阶段可以使用图4所示方法,图4所示方法中的固定值可以大于图2所示方法中的固定值。
网络设备在启动时处于启动阶段,网络设备可以将初始值作为在启动阶段的第1个调整周期内队列的拥塞阈值。如图6A所示,假设初始值为C,启动阶段的第一固定值为D,网络设备可以将C作为在0至T2这一时间段内队列的拥塞阈值。网络设备在T2这一时刻将拥塞阈值增加第一固定值,则T2至2T2这一时间段内队列的拥塞阈值为C+D。网络设备可以分别统计在两个相邻调整周期内队列的平均流量负载,如果在两个相邻调整周期内队列的平均流量负载的增长幅度超过启动阶段的第一目标增加值,网络设备可以在下一个调整周期继续基于第一固定值提升拥塞阈值,即将增加第一固定值后的拥塞阈值再次增加第一固定值;否则,网络设备可以进入调整阶段。其中,任一调整周期的时长为T2。
在调整阶段,网络设备可以以8个周期为一个调整循环,在第1个周期至第7个周期内队列的拥塞阈值保持不变,在第7个周期结束后将上述拥塞阈值增加调整阶段的第二固定值,将增加第二固定值后的拥塞阈值作为在第8个周期内该队列的拥塞阈值。如图6A所示,假设第二固定值为B,如果在T2至2T2这一时间段内队列的拥塞阈值减去在0至T2这一时间段内队列的拥塞阈值的差值不大于启动阶段的第一目标增加值,网络设备可以进入调整阶段,即在2T2至2T2+7T1这一时间段内保持增加第一固定值后的拥塞阈值(即C+D)不变。然后,网络设备在2T2+7T1这一时刻将在2T2+6T1至2T2+7T1这一时间段内队列的拥塞阈值增加第二固定值,即在2T2+7T1至2T2+8T1这一时间段内队列的拥塞阈值为C+D+B。其中,一个调整循环中任一周期的时长为T1。
进一步的,当在第8个周期内队列的平均流量负载大于在第7个周期内队列的平均流量负载时,网络设备可以获取在第8个周期内队列的平均流量负载减去在第7个周期内队列的平均流量负载的差值,网络设备检测该差值是否大于第二目标增加值,当该差值大于第二目标增加值时,说明业务负载变大,网络设备可以保持增加第二固定值后的拥塞阈值不变,并进入下一个调整循环;当该差值小于等于第二目标增加值且不小于目标减小值时,网络设备可以将增加第二固定值后的拥塞阈值减去第二固定值,即回退到增长之前的拥塞阈值,并进入下一个调整循环。如图6A所示,网络设备在2T2至2T2+7T1这一时间段内队列的拥塞阈值为C+D,在2T2+7T1至2T2+8T1这一时间段内队列的拥塞阈值为C+D+B,如果在2T2+7T1至2T2+8T1这一时间段内队列的平均流量负载减去在2T2至2T2+7T1这一时间段内队列的平均流量负载的差值大于第二目标增加值,网络设备可以在2T2+8T1至2T2+15T1这一时间段内保持增加第二固定值后的拥塞阈值不变,即在2T2+8T1至2T2+15T1这一时间段内队列的拥塞阈值为C+D+B。如图6B所示,如果在2T2+7T1至2T2+8T1这一时间段内队列的平均流量负载减去在2T2至2T2+7T1这一时间段内队列的平均流量负载的差值不大于第二目标增加值且不小于目标减小值,网络设备可以在2T2+8T1这一时刻将增加第二固定值后的拥塞阈值减去第二固定值,即在2T2+8T1至2T2+15T1这一时间段内队列的拥塞阈值为C+D。
在一个可行的实施例中,当在一个调整循环所包含的8个周期中,任意周期内队列的平均流量负载出现大幅下降时,说明业务负载突然下降,网络设备可以在该周期结束后将在该周期内队列的拥塞阈值乘以该周期内队列的平均流量负载与该周期的上一周期内队列的平均流量负载的比值。
进一步的,网络设备通过上述方式设置拥塞阈值之后,可以检测队列中缓存的报文量是否大于拥塞阈值,当队列中缓存的报文量大于拥塞阈值时,网络设备可以对接收的报文进行标记,将标记后的报文入队该队列,并将从队列出队的标记后的报文发送给接收设备,以实现拥塞控制。
请参见图7,图7是本申请另一实施例提供的一种拥塞控制方法,该方法包括但不限于如下步骤:
步骤S701:网络设备在第一周期结束后将拥塞阈值增加固定值。
步骤S702:网络设备在第二周期内检测队列的平均流量负载减去在第一周期内队列的平均流量负载的差值是否大于目标增加值。
步骤S703:网络设备在第二周期结束后根据检测的结果设置拥塞阈值。
需要说明的是,本申请实施例中根据检测的结果设置拥塞阈值的方法具体可以参考图2、4或者6所示实施例的描述,本申请实施例不作限定。
步骤S704:网络设备根据在第四周期内队列的平均流量负载,计算比较阈值。
在一个可行的实施例中,第四周期是包括在第二周期中的一个细分周期,可以是比第二周期的周期更短的周期,例如第四周期与第二周期结束时间相同,第四周期长度是第二周期长度的千分之一。网络设备可以将在第四周期内队列的平均流量负载与预定值相乘,得到比较阈值。比较阈值反映的是更为实时的平均流量负载情况。示例性的,网络设备可以通过如下公式得到比较阈值,其中:
Th1=CQ_out*Target_Delay
其中,Th1表示在第四周期结束后计算得到的比较阈值,CQ_out表示在第四周期内队列的平均流量负载,Target_Delay表示预定值。
需要说明的是,预定值例如是目标时延,预定值可以为用户指定的大小,属于可配置的数值,若需求是队列缓存的数据量少,时延小,预定值就可以尽量接近空载时的往返时延(Round-Trip Time,RTT);若需求是提升带宽利用率,避免欠吞吐,预定值就可以大于RTT。RTT指的是从发送设备发送数据开始,到发送设备收到来自接收设备的确认(接收设备收到报文后便立即发送确认),总共经历的时延。
步骤S705:网络设备用比较阈值和根据检测的结果设置的拥塞阈值较小者设置拥塞阈值。
网络设备可以将比较阈值和根据检测的结果设置的拥塞阈值进行比较,将比较阈值和根据检测的结果设置的拥塞阈值中最小的阈值作为在第二周期的下一周期内队列的拥塞阈值。
步骤S706:当队列中缓存的报文量大于拥塞阈值时,网络设备对接收的报文进行标记,将标记后的报文入队该队列。
步骤S707:网络设备将从队列出队的标记后的报文发送给接收设备。
在图7所描述的方法中,网络设备在第一周期结束后将拥塞阈值增加固定值,在第二周期内检测队列的平均流量负载减去在第一周期内队列的平均流量负载的差值是否大于目标增加值,在第二周期结束后根据检测的结果设置拥塞阈值,网络设备还可以根据在第四周期内队列的平均流量负载,计算比较阈值,将比较阈值和根据检测结果设置的拥塞阈值中最小的阈值作为拥塞阈值,当队列中缓存的报文量大于该拥塞阈值时,网络设备可以对接收的报文进行标记,将标记后的报文入队该队列,网络设备将从队列出队的标记后的报文发送给接收设备。图7所示方法中,根据检测的结果设置拥塞阈值可以根据多个周期内平均流量负载变化情况逐步调整拥塞阈值,而根据比较阈值设置拥塞阈值则可以反映更小周期内平均流量负载的情况,根据检测的结果设置的拥塞阈值可以在确保队列缓存的报文量较小的情况下,提升队列的吞吐量,提高拥塞控制效率,同时结合比较阈值的计算和比较,当比较阈值更小时,根据比较阈值设置拥塞阈值,能更加反映控制的实时性,平均流量负载突然增加时提升水线,避免欠吞吐,平均流量负载降低时,降低水线,尽快通知源端降速,避免队列过度堆积。当第二周期结束时,如果第四周期平均流量负载下降较多,使得比较阈值小于图2、4或者6所示实施例中计算的拥塞阈值,则根据比较阈值设置拥塞阈值可以更贴近实时流量负载情况,尽快通知源端降速,避免队列过度堆积。
上述详细阐述了本申请实施例的方法,下面提供了本申请实施例的装置。
请参见图8,图8是本申请实施例提供的一种网络设备的结构示意图,用于实现图2、4、6、7实施例中网络设备的功能,网络设备的功能块可由硬件、软件或硬件与软件的组合来实施本申请方案。所属领域的技术人员应理解,图8中所描述的功能块可经组合或分离为若干子块以实施本申请方案。因此,本申请中上面描述的内容可支持对下述功能模块的任何可能的组合或分离或进一步定义。
如图8所示,网络设备可包括:处理模块801和发送模块802,其中,各个模块的详细描述如下。
处理模块801,用于在第一周期结束后将拥塞阈值增加固定值,在第二周期内检测所述网络设备上队列的平均流量负载减去在所述第一周期内所述队列的平均流量负载的差值是否大于目标增加值,并在所述第二周期结束后根据所述检测的结果设置所述拥塞阈值,所述第一周期是所述第二周期的上一周期;
所述处理模块801,还用于当所述队列中缓存的报文量大于所述拥塞阈值时,对接收的报文进行标记,将标记后的报文入队所述队列,所述标记指示所述网络设备上发生拥塞;
发送模块802,用于将从所述队列出队的标记后的报文发送给接收设备。
可选的,所述处理模块801设置所述拥塞阈值,包括:
当所述检测的结果为是时,保持增加固定值后的拥塞阈值不变。
可选的,所述处理模块801设置所述拥塞阈值,包括:
当所述检测的结果为否且所述差值不小于目标减小值时,将增加固定值后的拥塞阈值减去所述固定值。
可选的,所述处理模块801设置所述拥塞阈值,包括:
当所述检测的结果为否且所述差值小于目标减小值时,将增加固定值后的拥塞阈值乘以所述第二周期内所述队列的平均流量负载与所述第一周期内所述队列的平均流量负载的比值。
可选的,所述处理模块801,还用于检测到在第三周期内所述队列的平均流量负载减去所述第三周期的上一周期内所述队列的平均流量负载的差值小于目标减小值时,在所述第三周期结束后将所述拥塞阈值乘以所述第三周期内所述队列的平均流量负载与所述第三周期的上一周期内所述队列的平均流量负载的比值。
可选的,所述处理模块801设置所述拥塞阈值,包括:
当所述检测的结果为是时,将增加固定值后的拥塞阈值再次增加所述固定值。
可选的,所述处理模块801设置所述拥塞阈值,包括:
根据在第四周期内所述队列的平均流量负载,计算比较阈值,所述第二周期包括所述第四周期;
用所述比较阈值和所述增加固定值后的拥塞阈值较小者设置所述拥塞阈值。
可选的,所述处理模块801计算比较阈值,包括:
将在所述第四周期内所述队列的平均流量负载与预定值相乘,得到所述比较阈值。
可选的,所述处理模块801设置所述拥塞阈值,包括:
根据在所述第二周期内所述队列的平均流量负载,计算比较阈值;
用所述比较阈值和所述增加固定值后的拥塞阈值较小者设置所述拥塞阈值。
可选的,所述处理模块801计算比较阈值,包括:
将在所述第二周期内所述队列的平均流量负载与预定值相乘,得到所述比较阈值。
需要说明的是,各个模块的实现还可以对应参照图2、4、6、7所示的实施例的相应描述。
可选的,图8所示网络设备还可以包括接收模块,用于从发送设备接收报文,并将接收的报文发送到处理模块。
需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。本申请实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
请参见图9,图9是本申请实施例公开的一种网络设备的结构示意图。如图9所示,该网络设备可以包括:至少一个处理器901、总线902和网络接口903。可选地,网络设备还可以包括存储器904。网络设备还可以包括队列905,队列905可以由硬件实现或是由硬件结合软件实现。其中,网络接口903、存储器904以及处理器901可以通过总线902相互连接。总线902可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
其中,处理器901可以是CPU,NP,通用处理器,数字信号处理器(Digital SignalProcessor,DSP),专用集成电路(Application-Specific Integrated Circuit,ASIC),现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。在处理器901是一个CPU的情况下,该CPU可以是单核CPU,也可以是多核CPU。
其中,网络接口903可以包括输出端口,用于将标记后的报文发送给接收设备。网络接口903还可以包括输入端口,用于从发送设备接收报文。网络设备还可以通过不同的网络接口903分别发送和接收报文。
其中,存储器904具体可以用于存储拥塞阈值等,存储器904例如是寄存器。可选地,存储器904可以包括在处理器901中。队列905可以用于缓存处理器发出的要从输出端口发出的报文。
网络设备还可以包括用于存储计算机程序指令的存储器906,处理器901可以通过执行存储器906上的计算机程序指令,使得网络设备执行如图2、4、6、7所示中网络设备执行的方法,此时处理器901可以是CPU或NP。存储器906可以包括易失性存储器(volatilememory),例如随机存取存储器(random-access memory,RAM);存储器也可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器还可以包括上述种类的存储器的组合。
处理器901是NP或NP与FPGA的组合时,处理器901可以直接执行该处理器901内部存储的指令,使得网络设备执行如图2、4、6、7所示中网络设备执行的方法,或者处理器901是NP或NP与FPGA的组合时,直接通过内部硬件电路(例如FPGA电路)执行操作,使得网络设备执行如图2、4、6、7所示中网络设备执行的方法。处理器901可以实现图8中处理模块的功能,网络接口903可以实现图8中发送模块的功能。网络设备中各部件可以执行如下操作:
处理器901,用于在第一周期结束后将拥塞阈值增加固定值,在第二周期内检测所述网络设备上队列的平均流量负载减去在所述第一周期内所述队列的平均流量负载的差值是否大于目标增加值,并在所述第二周期结束后根据所述检测的结果设置所述拥塞阈值,所述第一周期是所述第二周期的上一周期;
所述处理器901,还用于当所述队列中缓存的报文量大于所述拥塞阈值时,对接收的报文进行标记,将标记后的报文入队所述队列,所述标记指示所述网络设备上发生拥塞;
网络接口903,用于将从所述队列出队的标记后的报文发送给接收设备。
可选的,所述处理器901设置所述拥塞阈值,具体用于:
当所述检测的结果为是时,保持增加固定值后的拥塞阈值不变。
可选的,所述处理器901设置所述拥塞阈值,具体用于:
当所述检测的结果为否且所述差值不小于目标减小值时,将增加固定值后的拥塞阈值减去所述固定值。
可选的,所述处理器901设置所述拥塞阈值,具体用于:
当所述检测的结果为否且所述差值小于目标减小值时,将增加固定值后的拥塞阈值乘以所述第二周期内所述队列的平均流量负载与所述第一周期内所述队列的平均流量负载的比值。
可选的,所述处理器901,还用于检测到在第三周期内所述队列的平均流量负载减去所述第三周期的上一周期内所述队列的平均流量负载的差值小于目标减小值时,在所述第三周期结束后将所述拥塞阈值乘以所述第三周期内所述队列的平均流量负载与所述第三周期的上一周期内所述队列的平均流量负载的比值。
可选的,所述处理器901设置所述拥塞阈值,具体用于:
当所述检测的结果为是时,将增加固定值后的拥塞阈值再次增加所述固定值。
可选的,所述处理器901设置所述拥塞阈值,具体用于:
根据在四周期内所述队列的平均流量负载,计算比较阈值,所述第二周期包括所述第四周期;
用所述比较阈值和所述增加固定值后的拥塞阈值较小者设置所述拥塞阈值。
可选的,所述处理器901计算比较阈值,具体用于:
将在所述第四周期内所述队列的平均流量负载与预定值相乘,得到所述比较阈值。
可选的,所述处理器901设置所述拥塞阈值,具体用于:
根据在所述第二周期内所述队列的平均流量负载,计算比较阈值;
用所述比较阈值和所述增加固定值后的拥塞阈值较小者设置所述拥塞阈值。
可选的,所述处理器901计算比较阈值,具体用于:
将在所述第二周期内所述队列的平均流量负载与预定值相乘,得到所述比较阈值。
应当理解,网络设备仅为本申请实施例提供的一个例子,并且,网络设备可具有比示出的部件更多或更少的部件,可以组合两个或更多个部件,或者可具有部件的不同配置实现。
具体的,本申请实施例中介绍的网络设备可以用以实施本申请结合图2-7介绍的方法实施例中的部分或全部流程。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk(SSD))等。
Claims (25)
1.一种拥塞控制方法,其特征在于,所述方法包括:
网络设备在第一周期结束后将拥塞阈值增加固定值,在第二周期内检测所述网络设备上队列的平均流量负载减去在所述第一周期内所述队列的平均流量负载的差值是否大于目标增加值,并在所述第二周期结束后根据所述检测的结果设置所述拥塞阈值,所述第一周期是所述第二周期的上一周期;
当所述队列中缓存的报文量大于所述拥塞阈值时,所述网络设备对接收的报文进行标记,将标记后的报文入队所述队列,所述标记指示所述网络设备上发生拥塞;
所述网络设备将从所述队列出队的标记后的报文发送给接收设备。
2.如权利要求1所述的方法,其特征在于,所述根据所述检测的结果设置所述拥塞阈值,包括:
当所述检测的结果为是时,所述网络设备保持增加固定值后的拥塞阈值不变。
3.如权利要求1或2所述的方法,其特征在于,所述根据所述检测的结果设置所述拥塞阈值,包括:
当所述检测的结果为否且所述差值不小于目标减小值时,所述网络设备将增加固定值后的拥塞阈值减去所述固定值。
4.如权利要求1至3任一项所述的方法,其特征在于,所述根据所述检测的结果设置所述拥塞阈值,包括:
当所述检测的结果为否且所述差值小于目标减小值时,所述网络设备将增加固定值后的拥塞阈值乘以所述第二周期内所述队列的平均流量负载与所述第一周期内所述队列的平均流量负载的比值。
5.如权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
所述网络设备检测到在第三周期内所述队列的平均流量负载减去所述第三周期的上一周期内所述队列的平均流量负载的差值小于目标减小值时,在所述第三周期结束后将所述拥塞阈值乘以所述第三周期内所述队列的平均流量负载与所述第三周期的上一周期内所述队列的平均流量负载的比值。
6.如权利要求1所述的方法,其特征在于,所述根据所述检测的结果设置所述拥塞阈值,包括:
当所述检测的结果为是时,所述网络设备将增加固定值后的拥塞阈值再次增加所述固定值。
7.如权利要求1所述的方法,其特征在于,所述根据所述检测的结果设置所述拥塞阈值,还包括:
所述网络设备根据在第四周期内所述队列的平均流量负载,计算比较阈值,所述第二周期包括所述第四周期;
所述网络设备用所述比较阈值和所述增加固定值后的拥塞阈值较小者设置所述拥塞阈值。
8.如权利要求7所述的方法,其特征在于,所述网络设备计算比较阈值,包括:
所述网络设备将在所述第四周期内所述队列的平均流量负载与预定值相乘,得到所述比较阈值。
9.一种网络设备,其特征在于,所述网络设备包括:
处理模块,用于在第一周期结束后将拥塞阈值增加固定值,在第二周期内检测所述网络设备上队列的平均流量负载减去在所述第一周期内所述队列的平均流量负载的差值是否大于目标增加值,并在所述第二周期结束后根据所述检测的结果设置所述拥塞阈值,所述第一周期是所述第二周期的上一周期;
所述处理模块,还用于当所述队列中缓存的报文量大于所述拥塞阈值时,对接收的报文进行标记,将标记后的报文入队所述队列,所述标记指示所述网络设备上发生拥塞;
发送模块,用于将从所述队列出队的标记后的报文发送给接收设备。
10.如权利要求9所述的网络设备,其特征在于,所述处理模块设置所述拥塞阈值,包括:
当所述检测的结果为是时,保持增加固定值后的拥塞阈值不变。
11.如权利要求9或10所述的网络设备,其特征在于,所述处理模块设置所述拥塞阈值,包括:
当所述检测的结果为否且所述差值不小于目标减小值时,将增加固定值后的拥塞阈值减去所述固定值。
12.如权利要求9至11任一项所述的网络设备,其特征在于,所述处理模块设置所述拥塞阈值,包括:
当所述检测的结果为否且所述差值小于目标减小值时,所述网络设备将增加固定值后的拥塞阈值乘以所述第二周期内所述队列的平均流量负载与所述第一周期内所述队列的平均流量负载的比值。
13.如权利要求9至11任一项所述的网络设备,其特征在于,
所述处理模块,还用于检测到在第三周期内所述队列的平均流量负载减去所述第三周期的上一周期内所述队列的平均流量负载的差值小于目标减小值时,在所述第三周期结束后将所述拥塞阈值乘以所述第三周期内所述队列的平均流量负载与所述第三周期的上一周期内所述队列的平均流量负载的比值。
14.如权利要求9所述的网络设备,其特征在于,所述处理模块设置所述拥塞阈值,包括:
当所述检测的结果为是时,将增加固定值后的拥塞阈值再次增加所述固定值。
15.如权利要求9所述的网络设备,其特征在于,所述处理模块设置所述拥塞阈值,包括:
根据在第四周期内所述队列的平均流量负载,计算比较阈值,所述第二周期包括所述第四周期;
用所述比较阈值和所述增加固定值后的拥塞阈值较小者设置所述拥塞阈值。
16.如权利要求15所述的网络设备,其特征在于,所述处理模块计算比较阈值,包括:
将在所述第四周期内所述队列的平均流量负载与预定值相乘,得到所述比较阈值。
17.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序指令,所述计算机程序指令被网络设备执行时,使得所述网络设备执行如权利要求1-8任一项所述的拥塞控制方法。
18.一种网络设备,其特征在于,所述网络设备包括:
处理器,用于在第一周期结束后将拥塞阈值增加固定值,在第二周期内检测所述网络设备上队列的平均流量负载减去在所述第一周期内所述队列的平均流量负载的差值是否大于目标增加值,并在所述第二周期结束后根据所述检测的结果设置所述拥塞阈值,所述第一周期是所述第二周期的上一周期;
所述处理器,还用于当所述队列中缓存的报文量大于所述拥塞阈值时,对接收的报文进行标记,将标记后的报文入队所述队列,所述标记指示所述网络设备上发生拥塞;
网络接口,用于将从所述队列出队的标记后的报文发送给接收设备。
19.如权利要求18所述的网络设备,其特征在于,所述处理器设置所述拥塞阈值,包括:
当所述检测的结果为是时,保持增加固定值后的拥塞阈值不变。
20.如权利要求18或19所述的网络设备,其特征在于,所述处理器设置所述拥塞阈值,包括:
当所述检测的结果为否且所述差值不小于目标减小值时,将增加固定值后的拥塞阈值减去所述固定值。
21.如权利要求18至20任一项所述的网络设备,其特征在于,所述根据所述检测的结果设置所述拥塞阈值,包括:
当所述检测的结果为否且所述差值小于目标减小值时,所述网络设备将增加固定值后的拥塞阈值乘以所述第二周期内所述队列的平均流量负载与所述第一周期内所述队列的平均流量负载的比值。
22.如权利要求18至20任一项所述的网络设备,其特征在于,
所述处理器,还用于检测到在第三周期内所述队列的平均流量负载减去所述第三周期的上一周期内所述队列的平均流量负载的差值小于目标减小值时,在所述第三周期结束后将所述拥塞阈值乘以所述第三周期内所述队列的平均流量负载与所述第三周期的上一周期内所述队列的平均流量负载的比值。
23.如权利要求18所述的网络设备,其特征在于,所述处理器设置所述拥塞阈值,包括:
当所述检测的结果为是时,将增加固定值后的拥塞阈值再次增加所述固定值。
24.如权利要求18所述的网络设备,其特征在于,所述处理器设置所述拥塞阈值,包括:
根据在第四周期内所述队列的平均流量负载,计算比较阈值,所述第二周期包括所述第四周期;
用所述比较阈值和所述增加固定值后的拥塞阈值较小者设置所述拥塞阈值。
25.如权利要求24所述的网络设备,其特征在于,所述处理器计算比较阈值,包括:
将在所述第四周期内所述队列的平均流量负载与预定值相乘,得到所述比较阈值。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810208950.1A CN110278157B (zh) | 2018-03-14 | 2018-03-14 | 拥塞控制方法及网络设备 |
PCT/CN2019/077599 WO2019174536A1 (zh) | 2018-03-14 | 2019-03-11 | 拥塞控制方法及网络设备 |
EP19766483.2A EP3758315B1 (en) | 2018-03-14 | 2019-03-11 | Congestion control method and network device |
US17/018,566 US11233746B2 (en) | 2018-03-14 | 2020-09-11 | Congestion control method and network device |
US17/645,411 US11652752B2 (en) | 2018-03-14 | 2021-12-21 | Congestion control method and network device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810208950.1A CN110278157B (zh) | 2018-03-14 | 2018-03-14 | 拥塞控制方法及网络设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110278157A CN110278157A (zh) | 2019-09-24 |
CN110278157B true CN110278157B (zh) | 2022-08-09 |
Family
ID=67907322
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810208950.1A Active CN110278157B (zh) | 2018-03-14 | 2018-03-14 | 拥塞控制方法及网络设备 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11233746B2 (zh) |
EP (1) | EP3758315B1 (zh) |
CN (1) | CN110278157B (zh) |
WO (1) | WO2019174536A1 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110278157B (zh) * | 2018-03-14 | 2022-08-09 | 华为技术有限公司 | 拥塞控制方法及网络设备 |
US20220286399A1 (en) * | 2019-09-11 | 2022-09-08 | Intel Corporation | Hardware queue scheduling for multi-core computing environments |
CN112910789A (zh) * | 2019-12-03 | 2021-06-04 | 华为技术有限公司 | 拥塞控制方法以及相关设备 |
CN111726201B (zh) * | 2020-06-15 | 2023-09-12 | 合肥哈工轩辕智能科技有限公司 | 一种airt-ros虚拟网卡丢包解决方法 |
CN113973085B (zh) * | 2020-07-22 | 2023-10-20 | 华为技术有限公司 | 一种拥塞控制方法和装置 |
CN112187651B (zh) * | 2020-09-09 | 2022-06-21 | 苏州浪潮智能科技有限公司 | 一种流量调度方法、装置、设备及可读介质 |
CN114531487B (zh) * | 2020-10-30 | 2024-06-14 | 华为技术有限公司 | 缓存管理方法及装置 |
CN112887218B (zh) * | 2020-12-22 | 2022-10-21 | 新华三技术有限公司 | 一种报文转发方法及装置 |
CN115086236A (zh) * | 2021-03-11 | 2022-09-20 | 中国电信股份有限公司 | 调整数据转发队列的方法、装置及计算机可读存储介质 |
US11831531B2 (en) * | 2021-10-18 | 2023-11-28 | Capital One Services, Llc | Methods and systems for determining severity of disruptions in communication networks in non-homogenous environments |
CN114124820A (zh) * | 2021-11-15 | 2022-03-01 | 京东科技控股股份有限公司 | 流量控制方法、装置、电子设备及存储介质 |
CN114051002B (zh) * | 2021-11-30 | 2024-03-19 | 新华三大数据技术有限公司 | Ecn水线确定方法、装置及电子设备 |
CN113938432B (zh) * | 2021-12-02 | 2024-01-02 | 中国人民解放军国防科技大学 | 一种高速互连网络拥塞控制打标方法和装置 |
CN113938433B (zh) * | 2021-12-02 | 2024-02-02 | 中国人民解放军国防科技大学 | 一种基于动态阈值的高速网络拥塞控制方法和装置 |
CN114828085A (zh) * | 2022-05-13 | 2022-07-29 | 中国联合网络通信集团有限公司 | 一种5g***的随机接入控制方法、装置及*** |
CN115174476B (zh) * | 2022-06-30 | 2023-08-04 | 苏州浪潮智能科技有限公司 | 一种ecn控制方法、装置以及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103220229A (zh) * | 2001-04-09 | 2013-07-24 | 艾利森电话股份有限公司 | 控制队列缓冲区的方法 |
CN106789701A (zh) * | 2016-12-30 | 2017-05-31 | 北京邮电大学 | 一种数据中心中自适应ecn标记方法及装置 |
CN107592271A (zh) * | 2016-07-06 | 2018-01-16 | 阿尔卡特朗讯公司 | 通信网络内的拥塞控制 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7000025B1 (en) * | 2001-05-07 | 2006-02-14 | Adaptec, Inc. | Methods for congestion mitigation in infiniband |
EP1704685A1 (en) * | 2003-12-23 | 2006-09-27 | Telefonaktiebolaget LM Ericsson (publ) | Method and device for controlling a queue buffer |
JP2007524262A (ja) * | 2003-12-23 | 2007-08-23 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | キューバッファを制御する方法及び装置 |
US8004976B2 (en) * | 2007-03-12 | 2011-08-23 | Cisco Technology, Inc. | Monitoring, controlling, and preventing traffic congestion between processors |
US20130155855A1 (en) * | 2010-08-09 | 2013-06-20 | Nokia Siemens Networks Oy | Increasing Efficiency of Admission Control in a Network |
US8788728B2 (en) * | 2011-12-16 | 2014-07-22 | Maxlinear, Inc. | Method and system for buffer state based low power operation in a MoCA network |
EP2884707B1 (en) * | 2013-12-16 | 2016-04-27 | Alcatel Lucent | Method for controlling buffering of packets in a communication network |
US10069744B2 (en) * | 2015-07-14 | 2018-09-04 | Alcatel Lucent | Method and apparatus for managing network congestion |
CN110278157B (zh) * | 2018-03-14 | 2022-08-09 | 华为技术有限公司 | 拥塞控制方法及网络设备 |
-
2018
- 2018-03-14 CN CN201810208950.1A patent/CN110278157B/zh active Active
-
2019
- 2019-03-11 WO PCT/CN2019/077599 patent/WO2019174536A1/zh unknown
- 2019-03-11 EP EP19766483.2A patent/EP3758315B1/en active Active
-
2020
- 2020-09-11 US US17/018,566 patent/US11233746B2/en active Active
-
2021
- 2021-12-21 US US17/645,411 patent/US11652752B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103220229A (zh) * | 2001-04-09 | 2013-07-24 | 艾利森电话股份有限公司 | 控制队列缓冲区的方法 |
CN107592271A (zh) * | 2016-07-06 | 2018-01-16 | 阿尔卡特朗讯公司 | 通信网络内的拥塞控制 |
CN106789701A (zh) * | 2016-12-30 | 2017-05-31 | 北京邮电大学 | 一种数据中心中自适应ecn标记方法及装置 |
Non-Patent Citations (1)
Title |
---|
胡晗."改进的无线网络自适应传输控制协议".《计算机工程》.2013,第39卷(第4期), * |
Also Published As
Publication number | Publication date |
---|---|
EP3758315A4 (en) | 2021-03-10 |
US20220116331A1 (en) | 2022-04-14 |
US11233746B2 (en) | 2022-01-25 |
WO2019174536A1 (zh) | 2019-09-19 |
US11652752B2 (en) | 2023-05-16 |
EP3758315B1 (en) | 2023-06-14 |
CN110278157A (zh) | 2019-09-24 |
EP3758315A1 (en) | 2020-12-30 |
US20200412660A1 (en) | 2020-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110278157B (zh) | 拥塞控制方法及网络设备 | |
CN108418767B (zh) | 数据传输方法、设备及计算机存储介质 | |
US11888744B2 (en) | Spin-leaf network congestion control method, node, system, and storage medium | |
EP4175232A1 (en) | Congestion control method and device | |
WO2022001175A1 (zh) | 数据包发送的方法、装置 | |
CN109417514B (zh) | 一种报文发送的方法、装置和存储设备 | |
US8576850B2 (en) | Band control apparatus, band control method, and storage medium | |
CN112104562B (zh) | 拥塞控制方法及装置、通信网络、计算机存储介质 | |
EP3267639B1 (en) | Congestion control within a communication network | |
US11165705B2 (en) | Data transmission method, device, and computer storage medium | |
WO2021047404A1 (zh) | 一种网络参数配置方法及装置 | |
CN114513472A (zh) | 网络拥塞控制方法及装置 | |
JP6885463B2 (ja) | 送信装置、可用帯域推定装置、可用帯域推定システム、方法 | |
CN115967687A (zh) | 快转发报文方法、网络设备、存储介质及计算机程序产品 | |
CN110781104A (zh) | 一种数据处理***、方法和装置 | |
WO2018082655A1 (zh) | 一种确定数据传输路径的方法、装置 | |
CN111371692B (zh) | 基于tcp协议的窗口控制方法、装置和电子设备 | |
CN116684354A (zh) | 网络流拥塞管理装置及其方法 | |
US10951526B2 (en) | Technologies for efficiently determining a root of congestion with a multi-stage network switch | |
JPWO2012127632A1 (ja) | 通信制御装置、通信制御方法および通信制御回路 | |
WO2022160311A1 (zh) | 一种应用于无线局域网wlan的通信装置及通信方法 | |
WO2022126411A1 (zh) | 一种网络拥塞管理方法以及相关装置 | |
US20040146059A1 (en) | Method for controlling the bandwidth of a bridge device | |
CN115955440A (zh) | 防丢包方法及相关装置 | |
CN117061438A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |