CN113973085B - 一种拥塞控制方法和装置 - Google Patents
一种拥塞控制方法和装置 Download PDFInfo
- Publication number
- CN113973085B CN113973085B CN202010713140.9A CN202010713140A CN113973085B CN 113973085 B CN113973085 B CN 113973085B CN 202010713140 A CN202010713140 A CN 202010713140A CN 113973085 B CN113973085 B CN 113973085B
- Authority
- CN
- China
- Prior art keywords
- queue
- cache
- queues
- condition
- priority
- 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
- 238000000034 method Methods 0.000 title claims abstract description 90
- 238000011144 upstream manufacturing Methods 0.000 claims description 35
- 230000015654 memory Effects 0.000 claims description 33
- 239000000872 buffer Substances 0.000 description 145
- 230000006870 function Effects 0.000 description 16
- 230000001960 triggered effect Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 3
- 230000001934 delay Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012913 prioritisation Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002028 premature Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/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
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2416—Real-time traffic
-
- 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/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2425—Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
- H04L47/2433—Allocation of priorities to traffic types
-
- 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/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
-
- 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/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
- H04L47/263—Rate modification at the source after receiving feedback
-
- 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/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
-
- 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/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- 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/6285—Provisions for avoiding starvation of low priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种拥塞控制方法和装置,该方法包括:当设备缓存的使用信息满足预设的第一条件时,从该缓存中确定至少一个第一队列,并对所述至少一个第一队列进行拥塞控制,其中,第一条件为该缓存的使用信息对应的第一阈值,至少一个第一队列为该缓存的多个队列中队列时延大于等于队列时延阈值或者队列长度大于等于队列长度阈值的队列。这样,设备基于缓存情况触发拥塞控制的条件,在确保不出现缓存溢出问题的同时能够实现高效的拥塞控制,从而提高了设备的网络转发性能。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种拥塞控制方法和装置。
背景技术
设备在转发过程中,如果设备接收的流量小于转发带宽,则,能够直接对所接收的流量进行转发,无需进行缓存;如果设备接收的流量大于转发带宽,则,无法对所接收的全部流量进行直接转发,需要缓存部分流量。但是,受到设备内缓存空间的限制,设备内可以缓存的流量有限,一旦所接收的流量过多,就很容易出现缓存溢出的问题,为了防止设备的缓存溢出,亟待提供一种合理的拥塞控制方法,能够充分利用缓存空间,并且,避免出现误丢包或误反压的问题,从而提高设备的网络转发性能。
发明内容
基于此,本申请实施例提供了一种拥塞控制方法和装置,设备根据总体缓存空间的缓存情况设置用于触发拥塞控制的条件,并根据各队列的实际情况记录并实时更新触发拥塞控制的条件后对应待实施拥塞控制的队列,实现设备的合理拥塞控制,不仅能够充分利用缓存空间,并且能够有效的避免出现误丢包或误反压的问题,提高了设备的网络转发性能。
第一方面,本申请实施例提供了一种拥塞控制方法,该方法例如可以包括:当设备缓存的使用信息满足预设的第一条件时,从该缓存中确定至少一个第一队列,并对所述至少一个第一队列进行拥塞控制,其中,该第一条件为该缓存的使用信息对应的第一阈值,至少一个第一队列为该缓存的多个队列中队列时延大于等于队列时延阈值的队列,或者,至少一个第一队列为该缓存的多个队列中队列长度大于等于队列长度阈值的队列。这样,设备不用再基于队列的粒度进行拥塞控制,仅针对缓存空间的总体缓存情况预设用于触发拥塞控制的条件,在触发拥塞控制时设备能够针对性的对该条件对应的队列进行处理,不仅简化配置,提高了缓存空间的利用率,而且在确保不出现缓存溢出问题的同时能够实现高效的拥塞控制,从而提高了设备的网络转发性能。
其中,缓存的使用信息可以是缓存占用率或缓存剩余率,该缓存的使用信息随着设备的运行会发生变化,当有报文存入缓存或有报文从缓存中取出时,该缓存的使用信息均会发生变化。
在一种可能的实现方式中,从缓存中确定大于等于队列时延阈值的至少一个第一队列例如可以包括:确定缓存中多个队列按照队列时延从长到短排序后的前M个队列,作为至少一个第一队列,队列时延阈值与第M个队列的队列时延相等,M为正整数。从缓存中确定大于等于队列长度阈值的至少一个第一队列例如可以包括:确定缓存中多个队列按照队列长度从长到短排序后的前N个队列,作为至少一个第一队列,队列长度阈值与第N个队列的队列长度相等,N为正整数。这样,当触发拥塞控制条件时,针对性的对队列长度较大或队列时延较大的队列进行控制,能够有效的提高拥塞控制的效率,使得该设备的缓存溢出的风险被快速的化解,从而提高了设备的网络转发性能。
作为一个示例,如果对缓存中的队列划分了优先级,那么,设备中可以针对不同的优先级设置用于触发拥塞控制的不同条件。其中,第一条件可以与第一优先级对应,至少一个第一队列属于该第一优先级。该示例中,从缓存中确定大于队列时延阈值的至少一个第一队列例如可以包括:确定第一优先级对应的多个队列按照队列时延从长到短排序后的前K个队列,作为至少一个第一队列,队列时延阈值与第K个队列的队列时延相等,K为正整数。从缓存中确定大于队列长度阈值的至少一个第一队列例如可以包括:确定第一优先级对应的多个队列按照队列长度从长到短排序后的前L个队列,作为至少一个第一队列,队列长度阈值与第L个队列的队列长度相等,L为正整数。这样,当触发某个优先级对应的拥塞控制条件时,针对性的对与该优先级对应的多个队列中队列长度较大或队列时延较大的队列进行控制,能够有效的提高与该优先级对应的队列的拥塞控制的效率,使得该设备的缓存溢出的风险被快速的化解,从而提高了设备的网络转发性能。
在一些可能的实现方式中,当缓存的使用信息为缓存占用率时,那么,第一条件可以包括缓存占用率大于第一阈值;或者,当缓存使用信息为缓存剩余率时,第一条件可以包括缓存剩余率小于第一阈值。如此,可以基于缓存空间的总体使用情况和预设的第一阈值,实现对设备中缓存的合理、有效的拥塞控制。
在另一些可能的实现方式中,该方法还可以包括:当缓存的使用信息的更新值满足预设的第二条件时,从缓存中确定第二条件对应的至少一个第二队列,对至少一个第二队列进行拥塞控制。其中,第二条件与第二优先级对应,至少一个第二队列属于第二优先级,第二条件为缓存的使用信息的更新值对应的第二阈值。这样,设备不用再基于队列的粒度进行拥塞控制,仅针对总体缓存空间的缓存情况设置用于触发不同拥塞控制的不同条件,能够针对性的对不同条件对应的队列进行处理,不仅简化配置,提高了缓存空间的利用率,而且在确保不出现缓存溢出问题的同时能够实现高效、精准的拥塞控制,从而提高了设备的网络转发性能
作为一个示例,第二优先级和第一队列所属的第一优先级不同,该情况下,针对每个优先级对应设置用于触发拥塞控制的条件,并且记录各优先级对应的被实施拥塞控制的与该优先级对应的队列,将优先级和触发拥塞控制的条件对应的关联设置,先对优先级较低的队列进行拥塞控制的方式,能够确保优先级较高的流量被设备有效的转发,提高了该设备的网络转发性能,提升了用户使用该设备的体验。
作为另一个示例,第二优先级和第一队列所属的第一优先级相同,该情况下,在同时使能多种拥塞控制方式且确定缓存存在溢出风险时,合理设置多种拥塞控制方式触发的先后顺序,并按照拥塞控制方式被触发的先后顺序设置对应的触发条件。这样,如果缓存中的拥塞程度较轻,则利用所确定的需要先触发的拥塞控制方式进行拥塞控制,在拥塞程度较为严重时才利用所确定的需要后触发的拥塞控制方式进行拥塞控制,将拥塞控制方式和触发拥塞控制的条件对应的关联设置,能够确保队列的拥塞控制更加合理,提高了该设备的网络转发性能,提升了用户使用该设备的体验。
可以理解的是,缓存的使用信息的更新值为缓存占用率的更新值,第二条件包括缓存占用率的更新值大于第二阈值,第二阈值大于第一阈值;或者,缓存的使用信息的更新值为缓存剩余率的更新值,第二条件包括缓存剩余率的更新值小于第二阈值,第二阈值小于第一阈值。如此,可以基于缓存空间的总体使用情况和预设的第一阈值、第二阈值,实现对设备中缓存的合理、有效的拥塞控制。
作为一个示例,该方法中对至少一个第一队列进行拥塞控制,例如可以包括:为至少一个第一队列中的出队报文添加显示拥塞通告(英文:Explicit CongestionNotification,简称:ECN)标记,ECN标记用于指示源端设备降低与第一队列对应的队列中的报文的发送速率。该情况下,该方法中对至少一个第二队列进行拥塞控制,例如包括:通过至少一个第二队列的入端口向设备的上游设备发送反压信号,该反压信号用于指示上游设备停止发送报文。
可以理解的是,该方法中对至少一个第一队列进行拥塞控制,例如可以包括:对至少一个第一队列进行反压控制或丢包控制。其中,反压控制是指阻止该设备的上游设备(或设备中的上游模块)发送报文或者控制源端设备降低发送报文的速率;丢包控制是指对设备接收到的报文进行丢弃。无论是反压控制还是丢包控制,均可以有效的减少缓存的存储压力,避免缓存出现溢出的现象。
丢包控制具体可以是对待进入第一队列的报文在入队之前进行丢包处理,也可以是对已经进入第一队列的报文进行丢包处理。反压控制可以是向上游设备发送反压信号(例如:基于优先级流控(英文:Priority-Based Flow Control,简称:PFC)帧或停顿(英文:PAUSE)帧)实现反压,也可以是对设备内的上游模块(如上游缓存)发送反压信号实现反压。
此外,该方法中确定的至少一个第一队列还可以包括预设时长内无出队报文且无入队报文的队列,该队列称为idle队列,由于idle队列在预设时长内无入队和/或出队操作,可以确定该idle队列无法正常参与到设备的转发过程中,将该idle进行拥塞控制(例如丢包),能够释放该idle队列所占用的缓存空间,有效的提高缓存的利用率,以解决拥塞问题。
第二方面,本申请实施例还提供了一种拥塞控制装置包括:第一确定单元和第一控制单元。其中,第一确定单元,用于当设备缓存的使用信息满足预设的第一条件时,从缓存中确定大于等于队列时延阈值或者大于等于队列长度阈值的至少一个第一队列,第一条件为缓存的使用信息对应的第一阈值;第一控制单元,用于对至少一个第一队列进行拥塞控制。
在一些可能的实现方式中,该第一确定单元具体用于:确定缓存中多个队列按照队列时延从长到短排序后的前M个队列,作为至少一个第一队列,队列时延阈值与第M个队列的队列时延相等,M为正整数;或者,第一确定单元具体用于:确定缓存中多个队列按照队列长度从长到短排序后的前N个队列,作为至少一个第一队列,队列长度阈值与第N个队列的队列长度相等,N为正整数。
作为一个示例,第一条件与第一优先级对应,至少一个第一队列属于第一优先级。
该示例下,该第一确定单元,具体用于:确定第一优先级对应的多个队列按照队列时延从长到短排序后的前K个队列,作为至少一个第一队列,队列时延阈值与第K个队列的队列时延相等,K为正整数;或者,第一确定单元,具体用于:确定第一优先级对应的多个队列按照队列长度从长到短排序后的前L个队列,作为至少一个第一队列,队列长度阈值与第L个队列的队列长度相等,L为正整数。
可以理解的是,缓存的使用信息为缓存占用率,第一条件包括缓存占用率大于第一阈值;或者,缓存使用信息为缓存剩余率,第一条件包括缓存剩余率小于第一阈值。
在另一些可能的实现方式中,该装置还可以包括:第二确定单元和第二控制单元。其中,第二确定单元,用于当缓存的使用信息的更新值满足预设的第二条件时,从缓存中确定第二条件对应的至少一个第二队列,第二条件与第二优先级对应,至少一个第二队列属于第二优先级,第二条件为缓存的使用信息的更新值对应的第二阈值;第二控制单元,用于对至少一个第二队列进行拥塞控制。
作为一个示例,第二优先级和第一队列所属的第一优先级不同。
作为另一个示例,第二优先级和第一队列所属的第一优先级相同。
在一些可能的实现方式中,缓存的使用信息的更新值为缓存占用率的更新值,第二条件包括缓存占用率的更新值大于第二阈值,第二阈值大于第一阈值;或者,缓存的使用信息的更新值为缓存剩余率的更新值,第二条件包括缓存剩余率的更新值小于第二阈值,第二阈值小于第一阈值。
在另一些可能的实现方式中,第一控制单元具体用于:为至少一个第一队列中的出队报文添加显示拥塞通告ECN标记,ECN标记用于指示源端设备降低与第一队列对应的队列中的报文的发送速率。该实现方式中,第二控制单元,具体用于:通过至少一个第二队列的入端口向设备的上游设备发送第一反压信号,第一反压信号用于指示上游设备停止发送报文。
可以理解的是,第一控制单元具体用于:对至少一个第一队列进行反压控制或丢包控制。
在一些可能的实现方式中,至少一个第一队列还包括预设时长内无出队报文且无入队报文的队列。
需要说明的是,第二方面提供的拥塞控制装置,对应于第一方面提供的拥塞控制方法,故,第二方面提供的拥塞控制装置的各种可能的实现方式以及达到的技术效果,可以参照前述第一方面提供的拥塞控制方法的介绍。
第三方面,本申请实施例还提供了一种设备,该设备包括存储器和处理器。其中,存储器,用于存储程序代码;处理器,用于运行程序代码中的指令,使得网络设备执行以上第一方面中任意一种实现方式的拥塞控制方法。
第四方面,本申请实施例还提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行前述第一方面中任意一种实现方式所述的拥塞控制方法。
第五方面,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得该计算机执行前述第一方面中任意一种实现方式所述的拥塞控制方法。
附图说明
下面将对实施例描述中所需要使用的附图作简单地介绍。
图1a为本申请实施例中一种设备100的结构示意图;
图1b为本申请实施例中设备100中队列的示例图;
图2为本申请实施例中一种拥塞控制方法100的流程示意图;
图3为本申请实施例中一种设备200的结构示意图;
图4为本申请实施例中一种丢包控制的示意图;
图5为本申请实施例中另一种拥塞控制方法200的流程示意图;
图6a为本申请实施例中一种拥塞控制过程一示例的示意图;
图6b为本申请实施例中一种拥塞控制过程另一示例的示意图;
图6c为本申请实施例中一种拥塞控制过程又一示例的示意图;
图6d为本申请实施例中一种拥塞控制过程再一示例的示意图;
图7a为本申请实施例中一种优先级划分方式的一示意图;
图7b为本申请实施例中一种优先级划分方式的另一示意图;
图8为本申请实施例中一种拥塞控制装置800的结构示意图;
图9为本申请实施例中一种设备900的结构示意图。
具体实施方式
下面将结合附图,对本申请实施例中的技术方案进行描述。本申请实施例描述的网络架构以及业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请中的“1”、“2”、“3”、“第一”、“第二”以及“第三”等序数词用于对多个对象进行区分,不用于限定多个对象的顺序。
本申请中提及的“A和/或B”,应该理解为包括以下情形:仅包括A,或仅包括B,或者同时包括A和B。
设备缓存是指,对于具有转发功能的设备,设备内部通常具有缓存功能。例如在设备接收的流量大于转发带宽时,设备缓存用于存储所接收的流量中无法被直接转发的报文。而报文在缓存中以队列的形式存储。缓存中的队列包括入口队列(英文:Input Queue,简称:IQ)或出口队列(英文:Output Queue,简称:OQ)。作为一个示例,缓存中通常以OQ的形式进行存储,即,缓存中实际存储至少一个OQ,每个OQ中记录各个该OQ中各报文的报文标识、描述符等报文信息;在另一种示例中,该缓存中还包括虚拟存在的至少一个IQ,每个虚拟的IQ记录该IQ的队列长度(或时延),即,有报文进入该IQ时,该IQ的队列长度(或时延)更新。当一个报文进入设备并被存储在缓存中时,一方面,接收该报文的入端口对应IQ根据该增加报文刷新队列长度(或时延),例如:在该入端口对应IQ的队列长度中增加该报文的长度得到该IQ更新后的队列长度;另一方面,用于发送该报文的出端口对应OQ中增加该报文的相关信息,例如:在该出端口对应OQ中增加该报文的标识,并且在该OQ的队列长度上增加该报文的长度以更新该OQ的队列长度。
举例来说,如图1a所示,设备100中包括入端口A、入端口B、出端口C和出端口D,该设备100还包括缓存110,报文1~7经过该设备100转发,具体而言,设备100经过入端口A接收报文1~4,经过入端口B接收报文5~7,报文1、报文3、报文5和报文7经过出端口C从设备100转出,报文2、报文4和报文6经过出端口D从设备100转出。将报文1~7存储在设备100的缓存110中,如图1b所示,该设备100中存在4个队列,分别为:IQA、IQB、OQC和OQD,其中,IQA和IQB可以属于虚拟存在的队列,IQA对应存储有报文1、报文2、报文3和报文4的总长度(或总时延),记作队列长度1(或时延1);IQB中对应存储有报文5、报文6和报文7的总长度(或总时延),记作队列长度2(或时延2);OQC中包括报文1、报文3、报文5和报文7,OQD中包括报文2、报文4和报文6,其中,OQC和OQD记录其队列中报文对应的报文标识和描述符等报文信息。
将无法直接转发的报文以队列的形式存储在设备的缓存中,一定程度上解决了所接收的流量超过设备的转发带宽的情况下流量无法直接进行转发的问题。但是,由于设备上的缓存空间有限,设备上很可能出现缓存溢出的现象,即,缓存的流量过多导致缓存空间不足,此时,需要对设备进行拥塞控制。
目前,通常在队列的粒度上进行拥塞控制。
第一种方式中,设备中的每个队列单独设置对应的队列长度阈值(或队列时延阈值),当队列长度(或队列时延)超过该队列对应的队列长度阈值(或队列时延阈值)时,对该队列进行丢包或反压等方式的拥塞控制。该方式虽然可以避免设备上出现缓存溢出的现象,但是,由于各队列的队列长度(或队列时延)的不确定性,各队列的队列长度(或队列时延)往往分布十分不均匀,所以,该方式中给每个队列单独设置合理的队列长度阈值(或队列时延阈值)十分困难,如果设置的队列长度阈值(或队列时延阈值)太小,将导致流量占用了较小的缓存空间时该队列就开始进行拥塞控制,使得设备无法充分利用缓存空间,从而端口无法维持稳定的报文传输速率,使得网络吞吐量降低;如果设置的队列长度阈值(或队列时延阈值)太大,将导致缓存溢出从而使得设备进行无差别的丢包或反压等拥塞控制,使得网络转发性能降低。
第二种方式中,为了提高对设备的缓存空间的利用率,也可以为设备中的每个队列单独设置对应的阈值系数,基于设备中当前剩余的缓存空间大小和每个队列的阈值系数确定该队列对应的队列长度阈值,例如:队列的长度阈值=该队列的阈值系数a×当前剩余的缓存空间大小,当队列长度超过该队列对应的队列长度阈值时,对该队列进行丢包或反压等方式的拥塞控制。该方式由于引入当前剩余缓存空间的大小动态确定每个队列的队列长度阈值,所以,能够克服第一种方式中无法充分利用缓存空间的问题,但是,由于各队列的队列长度的不确定性,所以,给每个队列单独设置合理的阈值系数仍然十分困难,如果设置的阈值系数不合理,将导致设备进行误丢包或误反压等拥塞控制,使得网络转发性能降低。
基于此,本申请实施例提供了一种拥塞控制方法,该方法中不再基于队列的粒度进行拥塞控制,而是基于设备缓存的状态预设触发拥塞控制的条件,并且,基于缓存中各个队列的实时情况确定进行拥塞控制时待处理的至少一个队列,这样,当确定设备的当前缓存使用信息(如:缓存剩余率或缓存占用率)满足预设的条件时,即可获取该条件对应的待处理的至少一个队列的标识,从而根据所获取的至少一个队列的标识对所述至少一个队列进行拥塞控制,例如,对该至少一个队列进行反压或丢包处理。这样,设备无需为每个队列设置对应的队列长度阈值(或队列时延阈值),仅针对总体缓存空间的缓存情况设置用于触发拥塞控制的条件,并基于队列的实时情况为触发拥塞控制的条件记录对应的待处理队列,以使得设备在触发拥塞控制时能够针对性的对该条件对应的队列进行处理,不仅简化配置,提高了缓存空间的利用率,而且在确保不出现缓存溢出问题的同时能够实现高效的拥塞控制,从而提高了设备的网络转发性能。
举例来说:设备的缓存使用信息为缓存占用率,设置阈值1为70%,且记录队列长度最长的2个队列为待处理队列。该场景中,如果第一时刻设备获取的缓存占用率为50%,则,确定该第一时刻的缓存占用率小于阈值1,不存在缓存溢出的风险,无需进行拥塞控制。如果第二时刻设备获取的缓存占用率为75%,则,确定该第二时刻的缓存占用率超过了阈值1,存在缓存溢出的风险,此时,触发该设备实施拥塞控制。第二时刻,假设设备的缓存中包括队列1~队列3,其中,队列1的队列长度为50兆(英文:MB),队列2的队列长度为10MB,队列3的队列长度为80MB,则设备可以对记录待处理队列(即队列1和队列3)进行拥塞控制,以提高设备的转发性能和拥塞控制效率。
可以理解的是,上述场景仅是本申请实施例提供的场景示例,本申请实施例并不限于此场景。
需要说明的是,本申请实施例中的设备可以是包括报文转发功能和/或报文缓存功能的任意设备,该设备包括但不限于交换机、路由器等网络设备。
需要说明的是,本申请实施例中的缓存的使用信息,会随着设备的运行(如设备接收报文和/或设备发送报文)实时发生变化。缓存的使用信息可以是设备中缓存空间的当前缓存占用率,也可以是设备中缓存空间的当前缓存剩余率。当缓存的使用信息为缓存占用率时,有新的报文存储到该设备的缓存中时该缓存占用率会增加,缓存占用率增加的部分为该报文的长度除以整个缓存空间的大小;或者,缓存中有报文被设备转出时该缓存占用率减少,缓存占用率减少的部分为该报文的长度除以整个缓存空间的大小。当缓存的使用信息为缓存剩余率时,有新的报文存储到该设备的缓存中时该缓存剩余率会减少,缓存剩余率减少的部分为该报文的长度除以整个缓存空间的大小;或者,缓存中有报文被设备转出时该缓存剩余率增加,缓存剩余率增加的部分为该报文的长度除以整个缓存空间的大小。一个缓存在一个时刻,其缓存占用率和缓存剩余率之和为1。
下面结合附图,通过实施例来详细说明本申请实施例中的拥塞控制方法的具体实现方式。
图2为本申请实施例中一种拥塞控制方法100的流程示意图。该方法100中的针对多个队列共享一个缓存的场景,通过对多个队列中的部分或全部队列的拥塞控制避免该共享的缓存的溢出问题。作为一个示例,方法100中的执行主体可以是图1a所示的设备100,该方法100中涉及的缓存为图1a中设备100所包括的缓存110。作为另一个示例,该方法100中的执行主体例如也可以是图3所示的设备200,该设备200包括缓存201、缓存202、…、缓存20N(N为大于1的整数),每个缓存被多个队列共享,每个缓存对该缓存上存储的部分或全部队列进行拥塞控制避免该缓存的溢出问题,即,该方法100中涉及的缓存可以为图3中设备200所包括的任意一个缓存,而拥塞控制的对象即为该方法100所涉及的缓存上存储的队列中的全部或部分队列。
具体实现时,参见图2,该方法100例如可以包括下述S101~S102:
S101,当设备缓存的使用信息满足预设的第一条件时,从缓存中确定大于等于队列时延阈值或者大于等于队列长度阈值的至少一个第一队列。
其中,缓存的使用信息随着设备的运行过程中缓存中报文的数量的变化而变化,用于表征该缓存当前被使用的情况。作为一个示例,该缓存的使用信息可以是缓存占用值或缓存占用率,缓存占用值是指该缓存中被占用的空间大小,例如,缓存占用值为100MB;缓存占用率是指该缓存中被占用的空间大小占该缓存的总空间大小的比例,例如,假设缓存的总空间大小为500MB,当前被占用的空间大小为100MB,那么,当前的缓存占用率为(100MB/500MB)=20%。作为另一个示例,该缓存的使用信息也可以是缓存剩余值或缓存剩余率,缓存剩余值是指该缓存中未被占用的空间大小,例如,缓存剩余值为400MB;缓存剩余率是指该缓存中未被占用的空间大小占该缓存的总空间大小的比例,例如,假设缓存的总空间大小为500MB,当前未被占用的空间大小为400MB,那么,当前的缓存占用率为(400MB/500MB)=80%。需要说明的是,同一时刻,缓存占用值和缓存剩余值之和为该缓存的总空间大小,缓存占用率和缓存剩余率之和为1。
需要说明的是,当设备获取到的缓存的使用信息为缓存占用值或缓存剩余值时,一种情况下,可以基于该缓存已知的总空间大小和所获取的缓存占用值或缓存剩余值,计算对应的缓存占用率或缓存剩余率,从而基于缓存占用率或缓存剩余率判断该设备的缓存使用信息是否满足预设的第一条件;另一种情况下,也可以直接基于缓存占用值或缓存剩余值判断该设备的缓存的使用信息是否满足预设的第一条件。当设备获取到的缓存的使用信息为缓存占用率或缓存剩余率时,可以直接基于缓存占用率或缓存剩余率判断该设备的缓存使用信息是否满足预设的第一条件。
第一条件,是指用于鉴定该设备是否存在缓存溢出风险或是否需要采取拥塞控制措施的条件。当设备当前的缓存使用信息满足了预设的第一条件,则表征设备存在缓存溢出的风险,触发该设备实施本申请实施例提供的拥塞控制方法。该第一条件可以是用户或者网管通过命令行或者配置文件等方式在设备上预先设定的。作为一个示例,该第一条件可以是缓存占用率阈值或缓存剩余率阈值,那么,S101中设备的缓存使用信息满足预设的第一条件,具体可以指缓存占用率大于缓存占用率阈值或缓存剩余率小于缓存剩余率阈值。作为另一个示例,该第一条件也可以是缓存占用值阈值或缓存剩余值阈值,那么,S101中设备的缓存使用信息满足预设的第一条件,具体可以指缓存占用值大于缓存占用值阈值或缓存剩余值小于缓存剩余值阈值。
需要说明的是,为了提高拥塞控制的效果和效率,设备在进行拥塞控制时,可以选择对时延较大或队列长度较长的队列进行拥塞控制。那么,本申请实施例中,设备还可以记录并实时更新待被实施拥塞控制的队列(即,时延较大或队列长度较长的队列)的相关信息,例如,设备中记录至少一个第一队列的标识,记录的内容还可以包括各第一队列对应的队列时延或队列长度。其中,队列时延是指以转发带宽转发队列中所有报文所需的时长,队列长度是指队列中包括的所有报文长度的和。当设备的缓存的使用信息满足预设的第一条件时,设备中当前记录的待被实施拥塞控制的队列记作第一队列。
如果缓存中不对队列做优先级的划分,则在确定缓存的使用信息满足第一条件时,该设备即可获取该缓存保存的队列中至少一个第一队列的标识,并基于该至少一个第一队列的标识对至少一个第一队列进行拥塞控制,具体实现方式参见下述S102的相关描述。
作为一个示例,如果基于队列时延确定第一队列,则,该至少一个第一队列可以包括缓存保存的多个队列中队列时延大于等于队列时延阈值(例如:10毫秒)的队列。例如,将缓存中各个队列的队列时延和预设的队列时延阈值进行比较,大于预设的队列时延阈值的队列记作第一队列。又例如,将缓存中各个队列的队列时延从长到短排序后,前M(M为正整数,例如:M=5)个队列记作第一队列,其中,第M个队列的队列时延等于队列时延阈值。需要说明的是,如果设备支持时延测量功能,则,可以直接获取到各个队列的队列时延;如果该设备不支持时延测量功能,则,可以基于相关指标计算各个队列的队列时延,例如,基于队列长度和转发带宽计算队列的时延,具体可以是:队列的时延=队列长度÷转发带宽,其中,如果该队列对应的端口未划分优先级,则,转发带宽可以是该队列对应的端口的总带宽;如果该队列对应的端口划分了不同的优先级,则,转发带宽可以是该端口的总带宽和为该队列对应优先级分配的调度权重的乘积。
作为另一个示例,如果基于队列长度确定第一队列,则,该至少一个第一队列可以包括缓存保存的多个队列中队列长度大于等于队列长度阈值(例如:300MB)的队列。例如,将缓存中各个队列的队列长度和预设的队列长度阈值进行比较,大于预设的队列长度阈值的队列记作第一队列。又例如,将缓存中各个队列的队列长度从长到短排序后,前N(N为正整数,例如:N=3)个队列记作第一队列,其中,第N个队列的队列长度等于队列长度阈值。其中,队列长度是缓存中记录的参数之一,设备可以直接获取到各个队列的队列长度。
例如:假设在S101执行的时刻,设备的缓存中包括未被划分优先级的队列1~队列5,其中,队列1~队列5的队列时延分别为:5毫秒、10毫秒、25毫秒、8毫秒和22毫秒,预设个数M为2,那么,设备中记录的待被实施拥塞控制的第一队列为队列3和队列5。此时,设备确定当前缓存的使用信息满足预设的第一条件,获取队列3的标识和队列5的标识,从而该设备可以执行S102,基于队列3的标识和队列5的标识分别对队列3和队列5进行拥塞控制。
如果缓存中对队列做优先级的划分,则设备对于不同的优先级设置不同的条件,并且为每个优先级记录该优先级对应的待实施要拥塞控制的队列。那么,S101中的第一条件可以与第一优先级对应。在确定缓存的使用信息满足第一条件时,该设备可以确定该第一条件对应的第一优先级需要被实施拥塞控制,此时,获取该缓存中与第一优先级对应的至少一个第一队列的标识,并基于该至少一个第一队列的标识对至少一个第一队列进行拥塞控制,具体实现方式参见下述S102的相关描述。
作为一个示例,如果基于队列时延确定第一队列,则,该至少一个第一队列可以包括缓存保存的与第一优先级对应的多个队列中队列时延大于等于队列时延阈值(例如:10毫秒)的队列。例如,将缓存中与第一优先级对应的各个队列的队列时延和预设的队列时延阈值进行比较,大于预设的队列时延阈值的队列记作第一队列。又例如,将缓存中与第一优先级对应的各个队列的队列时延从长到短排序后,前K(K为正整数,例如:K=5)个队列记作第一队列,其中,第K个队列的队列时延等于队列时延阈值。
作为另一个示例,如果基于队列长度确定第一队列,则,该至少一个第一队列可以包括缓存保存的与第一优先级对应的多个队列中队列长度大于等于队列长度阈值(例如:300MB)的队列。例如,将缓存中与第一优先级对应的各个队列的队列长度和预设的队列长度阈值进行比较,大于预设的队列长度阈值的队列记作第一队列。又例如,将缓存中与第一优先级对应的各个队列的队列长度从长到短排序后,前L(L为正整数,例如:L=3)个队列记作第一队列,其中,第L个队列的队列长度等于队列长度阈值。
例如:假设在S101执行的时刻,设备的缓存中的队列的优先级被划分到优先级1和优先级2,优先级1对应的队列包括队列1~队列5,其中,队列1~队列5的队列长度分别为:100MB、50MB、300MB、250MB和220MB,预设长度为200MB,那么,设备中记录的与优先级1对应的待被实施拥塞控制的第一队列包括队列3、队列4和队列5。此时,设备确定当前的缓存的使用信息满足与优先级1对应的第一条件,则,获取与优先级1对应的队列3的标识、队列4的标识和队列5的标识,从而该设备可以执行S102,基于队列3的标识、队列4的标识和队列5的标识分别对队列3、队列4和队列5进行拥塞控制。
需要说明的是,随着队列中报文的入队和出队,队列时延和队列长度不断变化,设备内记录的待被实施拥塞控制的队列也会不断更新。当有报文入队或出队时,设备更新该队列的队列时延和/或队列长度,并基于更新后的队列时延和/或队列长度更新待被实施拥塞控制的队列。例如:假设预设个数为2,设备的缓存中包括队列1~队列5,在第一时刻,队列1~队列5的队列长度分别为:100MB、50MB、300MB、250MB和220MB,此时,设备中记录的待被实施拥塞控制的第一队列包括队列3和队列4。第二时刻,队列1中有10MB的报文1入队,队列4中有80MB的报文2出队,那么,队列1~队列5的队列长度分别为:110MB、50MB、300MB、170MB和220MB,此时,设备中记录的待被实施拥塞控制的第一队列包括队列3和队列5。
在另一些可能的实现方式中,对于预设时长内无入队和/或出队操作的队列,则,可以确定该队列无法正常参与到设备的转发过程中,该队列被记作idle队列。为了有效的提高缓存的利用率,可以释放该idle队列所占用的缓存空间以解决拥塞问题。具体实现时,设备可以将该idle队列的队列长度和/或队列时延的记录值修改为极大值,这样,设备所记录的待被实施拥塞控制的队列中包括该idle队列,即,S101中的与第一条件对应的至少一个第一队列还可以包括预设时长(如10秒)内无出队报文且无入队报文的idle队列,从而设备执行该方法100即可释放该idle队列所占用的缓存空间。需要说明的是,该实现方式中,修改的idle队列的队列时延或队列长度的记录值,而不影响该缓存使用信息,S101中用于判断是否满足第一条件的缓存的使用信息体现缓存中的实际使用情况,取决于各队列的实际队列时延或队列长度,而与各队列的记录值无关。
作为一个示例,设备可以为设置一个标志位和一个定时器以识别idle队列,定时器的设定的周期取用于鉴定idle队列的预设时长,标志位的值用于指示该定时器设定的周期内是否有报文入队或出队。当队列中有入队或出队操作时,该标志位被置1且定时器开始计时,在定时器到达设定的周期之前,如果该队列发生入队或出队操作,则,将该标志位置1且定时器重启开始计时;在定时器到达设定的周期时,如果该标志位为1,则将该标志位置0且定时器重启开始计时;在定时器到达设定的周期时,如果该标志位为0,则说明该设定的周期内未发生出队或入队的操作,将该队列确定为idle队列。
可见,通过上述S101中确定设备的缓存当前的使用信息满足第一条件,触发了拥塞控制的执行,并且,通过上述S101中获取待实施拥塞控制的至少一个第一队列,确定了实施拥塞控制的对象,为实施S102中的拥塞控制提供了数据基础。
S102,对至少一个第一队列进行拥塞控制。
具体实现时,S102例如可以包括:设备根据至少一个第一队列的标识确定所述至少一个第一队列,从而,该设备对至少一个第一队列中的每个第一队列进行拥塞控制。
拥塞控制的方式可以包括反压和/或丢包。一种情况下,S102具体可以包括:对所述至少一个第一队列进行反压控制。另一种情况下,S102具体也可以包括:对所述至少一个第一队列进行丢包控制。再一种情况下,S102具体还可以包括:对所述至少一个第一队列进行丢包控制和反压控制,同时对确定的至少一个第一队列进行丢包控制和反压控制,能够有效的提高拥塞控制的效率。其中,反压是指阻止该设备的上游设备(或设备中的上游模块)发送报文或者控制源端设备降低发送报文的速率;丢包是指对设备接收到的报文进行丢弃。无论是反压还是丢包,均可以有效的减少缓存的存储压力,避免缓存出现溢出的现象。
作为一个示例,反压控制的实现方式可以是控制源端设备降低报文的发送速率,例如:在第一队列的出队报文中添加显示拥塞通告(英文:Explicit CongestionNotification,简称:ECN)标记,这样,该报文到达目的端设备时,该目的端设备可以向发送该报文的源端设备发送回复报文(例如ACK报文),该回复报文中携带ECN标记,用于告知源端设备报文转发路径中有设备出现拥塞,此时,源端设备可以基于该携带ECN标记的回复报文降低与第一队列对应的队列中报文的发送速率,从而达到缓解该设备中缓存溢出压力的问题。需要说明的是,该方式适用于确定的第一队列为OQ的情况。
作为另一个示例,反压控制的实现方式可以是阻止该设备的上游设备发送报文,具体实现时,设备生成反压信号,并且通过该第一队列的入端口向该设备的上游设备发送该反压信号,用于告知上游设备停止发送报文,此时,该上游设备可以基于该反压信号停止通过该第一队列的入端口向该设备发送报文,从而达到缓解该设备中缓存溢出压力的问题。例如:对于区分不同队列优先级的情况,该反压信号具体可以是基于优先级流控(英文:Priority-Based Flow Control,简称:PFC)帧,即,设备通过该第一队列的入端口向该设备的上游设备发送该PFC帧,该PFC帧携带该待拥塞控制的队列所属的队列优先级的标识,用于告知上游设备停止向该设备发送该队列优先级的报文。又例如:对于不区分队列优先级的情况,该反压信号具体可以是停顿(英文:PAUSE)帧,即,设备通过该第一队列的入端口向该设备的上游设备发送该PAUSE帧,该PAUSE帧用于告知上游设备停止向该设备发送报文。需要说明的是,该方式适用于确定的第一队列为IQ的情况。
需要说明的是,如果该方法100应用于包括多个缓存的设备(如图3所示的设备300),则,对于多个缓存中直接与上游设备连接的缓存,可以生成并通过该第一队列的入端口向该设备的上游设备发送反压信号,实现对该第一队列的反压控制。对于多个缓存中不直接与上游设备连接的缓存,该存在溢出风险的缓存也可以生成并通过该第一队列的入端口向该缓存的上游模块发送反压信号,这样,上游模块接收到反压信号之后将不再通过该第一队列的入端口向该存在溢出风险的缓存发送报文,实现对该第一队列的反压控制。在设备内部的不同模块之间发送的反压信号的格式不作具体限定。需要说明的是,该上游模块例如可以是设备中的其他缓存,在本申请实施例中不作具体限定。
作为一个示例,丢包控制的实现方式可以是对待进入第一队列的报文在入队之前进行丢包处理。例如:对待进入第一队列的报文采用尾丢包(英文:Tail Drop,简称:TD)的方式直接丢弃。又例如:对待进入第一队列的报文采用加权随机早期检测(英文:WeightedRandom Early Detection,简称:WRED)的方式进行丢包处理,其中,S101中缓存使用信息满足第一条件,该第一条件包括两个阈值a和b,其中,a>b,当第一队列的队列长度小于b时,不丢弃待进入第一队列的报文;当第一队列的队列长度大于或等于b且小于或等于a时,随机丢弃待进入第一队列的报文,丢弃报文的概率随着该第一队列的队列长度的增加而变大;当第一队列的队列长度大于a时,丢弃待进入第一队列的所有报文。需要说明的是,该方式适用于确定的第一队列为OQ的情况。
作为另一个示例,丢包控制的实现方式也可以是对已经进入第一队列的报文进行丢包处理。例如:从所述至少一个第一队列中的头部开始丢弃报文。又例如:从所述至少一个第一队列中的尾部开始丢弃报文。需要说明的是,设备采用对已经进入第一队列的报文进行丢包的拥塞控制方式,需要该设备支持该丢包方式,或者,需要在设备中增加配置信息使得该设备支持该丢包方式。
作为又一个示例,丢包控制的实现方式也可以对待进入第一队列的报文在入队之前进行丢包处理,同时,对已经进入第一队列的报文进行丢包处理。例如:如图4所示,假设设备的缓存中,S102中实施拥塞控制的至少一个第一队列包括第一队列A,该第一队列A包括报文1、报文2、…、报文10,此时,可以将即将进入该第一队列A的报文11和报文12进行丢包处理,而且,从第一队列的头部(即从报文1)开始进行丢包处理,从第一队列的尾部(即从报文10)开始进行丢包处理。这样,可以更加快速的释放缓存中的存储空间,提高该拥塞控制的效率。
需要说明的是,如果S102中实施拥塞控制的至少一个第一队列包括idle队列,由于idle队列自身的特点,即,idle队列中无入队和出队操作,所以,对该idle队列仅可以采用丢包控制的方式进行拥塞控制,直至将该idle队列中的报文全部丢弃。
可见,在本申请实施例中,基于设备缓存的状态设置用于触发拥塞控制的条件,并且,基于缓存中各个队列的实时情况确定进行拥塞控制时待处理的至少一个队列。当确定设备的当前缓存使用信息满足预设的条件时,即可获取该条件对应的待处理的至少一个队列的标识,从而根据所获取的至少一个队列的标识对所述至少一个队列进行拥塞控制。这样,设备不用再基于队列的粒度进行拥塞控制,仅针对总体缓存空间的缓存情况设置用于触发拥塞控制的条件,在触发拥塞控制时设备能够针对性的对该条件对应的队列进行处理,不仅简化配置,提高了缓存空间的利用率,而且在确保不出现缓存溢出问题的同时能够实现高效的拥塞控制,从而提高了设备的网络转发性能。
在本申请实施例中还提供了另一种拥塞控制方法200,如图5所示。实施该方法200的设备对缓存中的队列划分了优先级,对于不同的优先级或者相同的优先级中的不同拥塞控制功能,针对性的设置不同的触发拥塞控制的条件,并针对性的记录和实时更新待实施拥塞控制的队列。该方法200例如可以包括:
S201,当设备的缓存使用信息满足预设的第一条件时,从缓存中确定该第一条件对应的至少一个第一队列,该第一条件与第一优先级对应,所述至少一个第一队列均属于所述第一优先级。
S202,对所述至少一个第一队列进行拥塞控制。
S203,当缓存使用信息的更新值满足预设的第二条件时,从缓存中确定该第二条件对应的至少一个第二队列,该第二条件与第二优先级对应,所述至少一个第二队列均属于所述第二优先级。
S204,对所述至少一个第二队列进行拥塞控制。
需要说明的是,上述S201~S202的实现方式以及效果可以参见方法100中S101~S102的相关描述。上述S203~S204的实现方式以及效果也可以参见方法100中S101~S102的相关描述。
其中,缓存的使用信息的更新值和S201中的缓存的使用信息分别是两个不同时刻用于体现缓存的使用情况的不同使用信息,两者的大小关系在本申请实施例中不作具体限定。例如:缓存的使用信息可以是第一时刻的缓存占用率95%,缓存的使用信息的更新值可以是第二时刻的缓存占用率75%;又例如:缓存的使用信息可以是第一时刻的缓存占用率75%,缓存的使用信息的更新值可以是第二时刻的缓存占用率95%。
在一些可能的实现方式中,第二优先级可以和第一优先级不同。
如果第二优先级高于第一优先级,作为一个示例,缓存的使用信息为缓存占用率,则,S203中的缓存的使用信息的更新值大于S201中的缓存的使用信息;S201中的第一条件可以包括缓存占用率大于第一阈值,S203中的第二条件可以包括所述缓存占用率的更新值大于第二阈值,其中,第二阈值大于第一阈值。如图6a所示,第一阈值为70%,第二阈值为90%,缓存占用率为75%,缓存占用率的更新值为95%。作为另一个示例,缓存的使用信息为缓存剩余率,则,S203中的缓存的使用信息的更新值小于S201中的缓存的使用信息;S201中的第一条件可以包括缓存剩余率小于第一阈值,S203中的第二条件包括缓存剩余率的更新值小于第二阈值,其中,第二阈值小于第一阈值。如图6b所示,第一阈值为30%,第二阈值为10%,缓存剩余率为25%,缓存剩余率的更新值为5%。
如果第二优先级低于第一优先级,作为一个示例,缓存的使用信息为缓存占用率,则,S203中的缓存的使用信息的更新值小于S201中的缓存的使用信息;S201中的第一条件可以包括缓存占用率大于第一阈值,S203中的第二条件可以包括所述缓存占用率的更新值大于第二阈值,其中,第一阈值大于第二阈值。如图6c所示,第二阈值为70%,第一阈值为90%,缓存占用率为95%,缓存占用率的更新值为75%。作为另一个示例,缓存的使用信息为缓存剩余率,则,S203中的缓存的使用信息的更新值大于S201中的缓存的使用信息;S201中的第一条件可以包括缓存剩余率小于第一阈值,S203中的第二条件包括缓存剩余率的更新值小于第二阈值,其中,第一阈值小于第二阈值。如图6d所示,第二阈值为30%,第一阈值为10%,缓存剩余率为5%,缓存剩余率的更新值为25%。
举例来说,假设设备按照服务质量(英文:Quality of Service,简称:QoS)将队列划分为8个优先级:优先级0~优先级7,其中,优先级7高于优先级0,缓存的使用信息为缓存占用率,如图7a所示,优先级0~优先级7对应的阈值1~阈值8分别为20%、30%、40%、50%、60%、70%、80%和90%,该设备中还记录有待被实施拥塞控制的队列集合0~队列集合7,队列集合0~队列集合7分别与优先级0~优先级7对应。当第一时刻缓存的缓存占用率为25%时,对优先级0对应的队列集合0中的队列进行拥塞控制;当第二时刻该缓存的缓存占用率为85%时,拥塞控制可以包括:对优先级0对应的队列集合0中的队列进行拥塞控制,以及对优先级6对应的队列集合6中的队列进行拥塞控制。
该实现方式中,通过对缓存中的队列划分不同的优先级,在确定缓存存在溢出风险时,如果缓存中的拥塞程度较轻,则先对优先级较低的队列进行拥塞控制,在拥塞程度较为严重时才对优先级较高的队列进行拥塞控制,这样,将优先级和触发拥塞控制的条件对应的关联设置,先对优先级较低的队列进行拥塞控制的方式,能够确保优先级较高的流量被设备有效的转发,提高了该设备的网络转发性能,提升了用户使用该设备的体验。
在另一些可能的实现方式中,对于第二优先级可以和第一优先级为相同的优先级场景,或者,未划分优先级的场景,S202和S204中的第一条件和第二条件可以是基于触发不同拥塞控制方式的时机先后而对应设置的。例如:对于拥塞控制中的反压控制方式,如果同时使能了ECN功能和PFC功能,而采用PFC功能是阻止上游设备发送报文,是无损流量转发等场景中采用的最后拥塞控制手段,如果过早的触发PFC功能很可能导致非拥塞状态的出端口无法保持线速,大大降低网络的性能,因此,在确定缓存存在溢出风险时,对于同一个优先级,如果缓存中的拥塞程度较轻,则先触发ECN功能对该优先级对应的待处理的OQ进行拥塞控制,在拥塞程度较为严重时才触发PFC功能对该优先级对应的待处理的IQ进行拥塞控制。
对于缓存的使用信息为缓存占用率的情况,一种情况下,如果S203中的缓存的使用信息的更新值大于S201中的缓存的使用信息,则S201中的第一条件可以包括缓存占用率大于第一阈值,S203中的第二条件可以包括所述缓存占用率的更新值大于第二阈值,其中,第二阈值大于第一阈值,例如可以参见上述图6a。另一种情况下,如果S203中的缓存的使用信息的更新值小于S201中的缓存使用信息,则S201中的第一条件可以包括缓存占用率大于第一阈值,S203中的第二条件可以包括所述缓存占用率的更新值大于第二阈值,其中,第一阈值大于第二阈值,例如可以参见上述图6c。
对于缓存的使用信息为缓存剩余率的情况,一种情况下,如果S203中的缓存的使用信息的更新值小于S201中的缓存的使用信息,则S201中的第一条件可以包括缓存剩余率小于第一阈值,S203中的第二条件包括缓存剩余率的更新值小于第二阈值,其中,第二阈值小于第一阈值,例如可以参见上述图6b。另一种情况下,如果S203中的缓存的使用信息的更新值大于S201中的缓存的使用信息,则S201中的第一条件可以包括缓存剩余率小于第一阈值,S203中的第二条件包括缓存剩余率的更新值小于第二阈值,其中,第一阈值小于第二阈值,例如可以参见上述图6d。
需要说明的是,该实现方式中,设备需要记录不同的拥塞控制方式所适用的待被实施拥塞控制的队列,例如:对于同时使能ECN功能和PFC功能的设备,该设备需要记录ECN控制方式对应的待被实施拥塞控制的OQ,以及PFC控制方式对应的待被实施拥塞控制的IQ。
举例来说,假设设备中同时使能ECN功能和PFC功能,该设备按照QoS将队列划分为8个优先级:优先级0~优先级7,其中,优先级7高于优先级0,缓存的使用信息为缓存剩余率,如图7b所示,优先级0~优先级7对应的阈值1~阈值16分别为20%、25%、30%、35%、40%、45%、50%、55%、60%、65%、70%、75%、80%、85%、90%、95%,其中,阈值1、阈值3、阈值5、…、阈值15分别为优先级0~优先级7对应的ECN阈值,阈值2、阈值4、阈值6、…、阈值16分别为优先级0~优先级7对应的PFC阈值,该设备中还记录有待被实施拥塞控制的IQ集合0~IQ集合7以及OQ集合0~OQ集合7,IQ集合0~IQ集合7分别与优先级0~优先级7对应,OQ集合0~OQ集合7分别与优先级0~优先级7对应。当第一时刻缓存的缓存占用率为22%时,对优先级0对应的OQ集合0中的OQ进行ECN控制,即,将OQ集合0中OQ的出队报文添加ECN标记;当第二时刻该缓存的缓存占用率为39%时,不仅将OQ集合0中OQ的出队报文添加ECN标记,而且对优先级1对应的IQ集合1中的IQ进行PFC控制,其中,对优先级1对应的IQ集合1中的IQ进行PFC控制的方式例如可以包括:通过IQ集合1中IQ对应的入端口向上游设备(或上游缓存)发送PFC帧。这样,将ECN控制方式和PFC控制方式分别与不同的触发条件关联设置,能够确保未划分优先级或同一优先级的场景中,先触发ECN控制后触发PFC控制,提高了拥塞控制的合理性。
该实现方式中,在同时使能多种拥塞控制方式且确定缓存存在溢出风险时,合理设置多种拥塞控制方式触发的先后顺序,并按照拥塞控制方式被触发的先后顺序设置对应的触发条件,这样,如果缓存中的拥塞程度较轻,则利用所确定的需要先触发的拥塞控制方式进行拥塞控制,在拥塞程度较为严重时才利用所确定的需要后触发的拥塞控制方式进行拥塞控制,将拥塞控制方式和触发拥塞控制的条件对应的关联设置,能够确保队列的拥塞控制更加合理,提高了该设备的网络转发性能,提升了用户使用该设备的体验。
需要说明的是,对于用于触发拥塞控制的多个不同条件触发的拥塞控制,可以认为是解耦的过程,即,当设备的缓存的使用信息满足预设的第一条件时,一直会对第一条件对应的至少一个第一队列进行拥塞控制,直到设备的缓存的使用信息不再满足该第一条件;同理,当设备的缓存的使用信息满足预设的第二条件时,一直会对第二条件对应的至少一个第二队列进行拥塞控制,直到设备的缓存的使用信息不再满足该第二条件,两个拥塞控制的过程不相互干扰。
可见,在本申请实施例中,基于设备缓存的状态预设多个用于触发拥塞控制的条件,并且,基于缓存中各个队列的实时情况确定进行不同拥塞控制时待处理的队列。在不同的时刻,当确定设备的缓存使用信息满足不同的条件时,对该条件对应的待处理的队列进行相应的拥塞控制。这样,设备不用再基于队列的粒度进行拥塞控制,仅针对总体缓存空间的缓存情况设置用于触发不同拥塞控制的不同条件,能够针对性的对不同条件对应的队列进行处理,不仅简化配置,提高了缓存空间的利用率,而且在确保不出现缓存溢出问题的同时能够实现高效、精准的拥塞控制,从而提高了设备的网络转发性能。
图8为本申请实施例提供的一种拥塞控制装置的结构示意图。该装置800可以是设备,该装置800可以包括:第一确定单元801和第一控制单元802。
其中,第一确定单元801用于当设备缓存的使用信息满足预设的第一条件时,从缓存中确定大于等于队列时延阈值或者大于等于队列长度阈值的至少一个第一队列,第一条件为缓存的使用信息对应的第一阈值.
第一控制单元802用于对至少一个第一队列进行拥塞控制。
需要说明的是,该装置800用于执行上述图2或图5所示实施例对应的各个步骤,以按照本申请实施例提供的拥塞控制方法实现拥塞控制。其中,第一确定单元801对应上述S101或S201,第一控制单元802对应上述S102或S202。
在一些可能的实现方式中,该第一确定单元801具体用于确定缓存中多个队列按照队列时延从长到短排序后的前M个队列,作为至少一个第一队列,队列时延阈值与第M个队列的队列时延相等,M为正整数;或者,第一确定单元801,具体用于:确定缓存中多个队列按照队列长度从长到短排序后的前N个队列,作为至少一个第一队列,队列长度阈值与第N个队列的队列长度相等,N为正整数。
作为一个示例,第一条件与第一优先级对应,至少一个第一队列属于第一优先级。
该示例下,该第一确定单元801具体用于确定第一优先级对应的多个队列按照队列时延从长到短排序后的前K个队列,作为至少一个第一队列,队列时延阈值与第K个队列的队列时延相等,K为正整数;或者,第一确定单元801,具体用于:确定第一优先级对应的多个队列按照队列长度从长到短排序后的前L个队列,作为至少一个第一队列,队列长度阈值与第L个队列的队列长度相等,L为正整数。
可以理解的是,缓存的使用信息为缓存占用率,第一条件包括缓存占用率大于第一阈值;或者,缓存使用信息为缓存剩余率,第一条件包括缓存剩余率小于第一阈值。
在另一些可能的实现方式中,该装置800还可以包括:第二确定单元和第二控制单元。其中,第二确定单元,用于当缓存的使用信息的更新值满足预设的第二条件时,从缓存中确定第二条件对应的至少一个第二队列,第二条件与第二优先级对应,至少一个第二队列属于第二优先级,第二条件为缓存的使用信息的更新值对应的第二阈值;第二控制单元,用于对至少一个第二队列进行拥塞控制。
需要说明的是,该装置800用于执行上述图5所示实施例对应的各个步骤,以按照本申请实施例提供的拥塞控制方法实现拥塞控制。其中,第一确定单元801对应上述S201,第一控制单元802对应上述S202,第二确定单元对应上述S203,第二控制单元对应上述S204。
作为一个示例,第二优先级和第一队列所属的第一优先级不同。
作为另一个示例,第二优先级和第一队列所属的第一优先级相同。
在一些可能的实现方式中,缓存的使用信息的更新值为缓存占用率的更新值,第二条件包括缓存占用率的更新值大于第二阈值,第二阈值大于第一阈值;或者,缓存的使用信息的更新值为缓存剩余率的更新值,第二条件包括缓存剩余率的更新值小于第二阈值,第二阈值小于第一阈值。
在另一些可能的实现方式中,第一控制单元具体用于:为至少一个第一队列中的出队报文添加显示拥塞通告ECN标记,ECN标记用于指示源端设备降低与第一队列对应的队列中的报文的发送速率。该实现方式中,第二控制单元,具体用于:通过至少一个第二队列的入端口向设备的上游设备发送第一反压信号,第一反压信号用于指示上游设备停止发送报文。
可以理解的是,第一控制单元具体用于:对至少一个第一队列进行反压控制或丢包控制。
在一些可能的实现方式中,至少一个第一队列还包括预设时长内无出队报文且无入队报文的队列。
需要说明的是,本申请实施例提供的拥塞控制装置800,对应于上述拥塞控制方法,故,该装置800的各种可能的实现方式以及达到的技术效果,可以参照前述图2和图5对应实施例的相关描述。
此外,本申请实施例还提供了一种设备,如图9所示,该设备900包括存储器901和处理器902。其中,存储器901,用于存储程序代码;处理器902,用于运行程序代码中的指令,使得设备900执行前述图2和图5对应实施例中任意一种实现方式的拥塞控制方法。
示例的,该设备900还可以包括通信接口,用于接收报文,将报文存入缓存对应的队列中。
示例的,该设备900的处理器902,用于运行存储器901上保存的程序代码中的指令,使得该设备900执行下述拥塞控制方法:
当设备缓存的使用信息满足预设的第一条件时,从所述缓存中确定大于等于队列时延阈值或者大于等于队列长度阈值的至少一个第一队列,所述第一条件为所述缓存的使用信息对应的第一阈值;
对所述至少一个第一队列进行拥塞控制。
其中,存储器901可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);或者非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);或者上述种类的存储器的组合,用于存储可实现本申请方法的程序代码、TSN域内网络设备的配置文件或其他内容。
处理器902是控制器的控制中心,可以是一个中央处理器(central processingunit,CPU),也可以是特定集成电路(application specific integrated circuit,ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路,例如:一个或多个数字信号处理器(digital signal processor,DSP),或,一个或者多个现场可编程门阵列(fieldprogrammable gate array,FPGA)。
通信接口用于和其他设备进行数据交互,例如:通过该通信接口从其他设备接收报文,又例如:通过该通信接口向其他设备发送报文通信接口可以为以太接口(Ethernet)接口、快速以太(Fast Ethernet,FE)接口或千兆以太(Gigabit Ethernet,GE)接口。
此外,本申请实施例还提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行前述图2和图5对应实施例中任意一种实现方式所述的拥塞控制方法。
示例的,该计算机程序产品,当其在计算机上运行时,例如在设备900上运行时,使得计算机执行下述拥塞控制方法:
当设备缓存的使用信息满足预设的第一条件时,从所述缓存中确定大于等于队列时延阈值或者大于等于队列长度阈值的至少一个第一队列,所述第一条件为所述缓存的使用信息对应的第一阈值;
对所述至少一个第一队列进行拥塞控制。
此外,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得该计算机执行前述图2和图5对应实施例中任意一种实现方式所述的拥塞控制方法。
示例的,该计算机可读存储介质,该计算机可读存储介质中存储有指令或程序代码,当其在计算机上运行时,例如在设900备上运行时,使得该计算机执行下述拥塞控制方法:
当设备缓存的使用信息满足预设的第一条件时,从所述缓存中确定大于等于队列时延阈值或者大于等于队列长度阈值的至少一个第一队列,所述第一条件为所述缓存的使用信息对应的第一阈值;
对所述至少一个第一队列进行拥塞控制。
需说明的是,以上描述的任意装置实施例都仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的设备实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本申请实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(readonly memory,ROM)、可擦除可编程只读存储器(erasable programmable ROM,EPROM)、电可擦可编程只读存储器(electrically EPROM,EEPROM)、硬盘、移动硬盘、光盘或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本申请示例性的实施方式,并非用于限定本申请的保护范围。
Claims (28)
1.一种拥塞控制方法,其特征在于,包括:
当设备缓存的使用信息满足预设的第一条件时,从所述缓存中确定大于等于队列时延阈值或者大于等于队列长度阈值的至少一个第一队列,所述第一条件包括所述缓存的使用信息对应的第一阈值,所述设备缓存的使用信息满足预设的第一条件表征所述设备存在缓存溢出的风险,所述设备缓存的使用信息满足预设的第一条件为触发所述设备进行拥塞控制的触发条件;
对所述至少一个第一队列进行拥塞控制。
2.根据权利要求1所述的方法,其特征在于,所述从所述缓存中确定大于等于队列时延阈值的至少一个第一队列包括:
确定所述缓存中多个队列按照队列时延从长到短排序后的前M个队列,作为所述至少一个第一队列,所述队列时延阈值与第M个队列的队列时延相等,所述M为正整数;
所述从所述缓存中确定大于等于队列长度阈值的至少一个第一队列包括:
确定所述缓存中多个队列按照队列长度从长到短排序后的前N个队列,作为所述至少一个第一队列,所述队列长度阈值与第N个队列的队列长度相等,所述N为正整数。
3.根据权利要求1所述的方法,其特征在于,所述第一条件与第一优先级对应,所述至少一个第一队列属于所述第一优先级。
4.根据权利要求3所述的方法,其特征在于,所述从所述缓存中确定大于队列时延阈值的至少一个第一队列包括:
确定所述第一优先级对应的多个队列按照队列时延从长到短排序后的前K个队列,作为所述至少一个第一队列,所述队列时延阈值与第K个队列的队列时延相等,所述K为正整数;
所述从所述缓存中确定大于队列长度阈值的至少一个第一队列包括:
确定所述第一优先级对应的多个队列按照队列长度从长到短排序后的前L个队列,作为所述至少一个第一队列,所述队列长度阈值与第L个队列的队列长度相等,所述L为正整数。
5.根据权利要求1-4任一项所述的方法,其特征在于,
所述缓存的使用信息为缓存占用率,所述第一条件包括所述缓存占用率大于所述第一阈值;或者,
所述缓存使用信息为缓存剩余率,所述第一条件包括所述缓存剩余率小于所述第一阈值。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
当所述缓存的使用信息的更新值满足预设的第二条件时,从所述缓存中确定所述第二条件对应的至少一个第二队列,所述第二条件与第二优先级对应,所述至少一个第二队列属于所述第二优先级,所述第二条件为所述缓存的使用信息的更新值对应的第二阈值;
对所述至少一个第二队列进行拥塞控制。
7.根据权利要求6所述的方法,其特征在于,所述第二优先级和所述第一队列所属的第一优先级不同。
8.根据权利要求6所述的方法,其特征在于,所述第二优先级和所述第一队列所属的第一优先级相同。
9.根据权利要求6所述的方法,其特征在于,
所述缓存的使用信息的更新值为缓存占用率的更新值,所述第二条件包括所述缓存占用率的更新值大于所述第二阈值,所述第二阈值大于所述第一阈值;或者,
所述缓存的使用信息的更新值为缓存剩余率的更新值,所述第二条件包括所述缓存剩余率的更新值小于所述第二阈值,所述第二阈值小于所述第一阈值。
10.根据权利要求9所述的方法,其特征在于,所述对所述至少一个第一队列进行拥塞控制,包括:
为所述至少一个第一队列中的出队报文添加显示拥塞通告ECN标记,所述ECN标记用于指示源端设备降低与所述第一队列对应的队列中的报文的发送速率。
11.根据权利要求10所述的方法,其特征在于,所述对所述至少一个第二队列进行拥塞控制,包括:
通过所述至少一个第二队列的入端口向所述设备的上游设备发送反压信号,所述反压信号用于指示所述上游设备停止发送报文。
12.根据权利要求1-4任一项所述的方法,其特征在于,所述对所述至少一个第一队列进行拥塞控制,包括:
对所述至少一个第一队列进行反压控制或丢包控制。
13.根据权利要求1-4任一项所述的方法,其特征在于,所述至少一个第一队列还包括预设时长内无出队报文且无入队报文的队列。
14.一种拥塞控制装置,其特征在于,包括:
第一确定单元,用于当设备缓存的使用信息满足预设的第一条件时,从所述缓存中确定大于等于队列时延阈值或者大于等于队列长度阈值的至少一个第一队列,所述第一条件包括所述缓存的使用信息对应的第一阈值,所述设备缓存的使用信息满足预设的第一条件表征所述设备存在缓存溢出的风险,所述设备缓存的使用信息满足预设的第一条件为触发所述设备进行拥塞控制的触发条件;
第一控制单元,用于对所述至少一个第一队列进行拥塞控制。
15.根据权利要求14所述的装置,其特征在于,所述第一确定单元,具体用于:
确定所述缓存中多个队列按照队列时延从长到短排序后的前M个队列,作为所述至少一个第一队列,所述队列时延阈值与第M个队列的队列时延相等,所述M为正整数;或者,
确定所述缓存中多个队列按照队列长度从长到短排序后的前N个队列,作为所述至少一个第一队列,所述队列长度阈值与第N个队列的队列长度相等,所述N为正整数。
16.根据权利要求14所述的装置,其特征在于,所述第一条件与第一优先级对应,所述至少一个第一队列属于所述第一优先级。
17.根据权利要求16所述的装置,其特征在于,所述第一确定单元,具体用于:
确定所述第一优先级对应的多个队列按照队列时延从长到短排序后的前K个队列,作为所述至少一个第一队列,所述队列时延阈值与第K个队列的队列时延相等,所述K为正整数;或者,
确定所述第一优先级对应的多个队列按照队列长度从长到短排序后的前L个队列,作为所述至少一个第一队列,所述队列长度阈值与第L个队列的队列长度相等,所述L为正整数。
18.根据权利要求14-17任一项所述的装置,其特征在于,
所述缓存的使用信息为缓存占用率,所述第一条件包括所述缓存占用率大于所述第一阈值;或者,
所述缓存使用信息为缓存剩余率,所述第一条件包括所述缓存剩余率小于所述第一阈值。
19.根据权利要求14-17任一项所述的装置,其特征在于,所述装置还包括:
第二确定单元,用于当所述缓存的使用信息的更新值满足预设的第二条件时,从所述缓存中确定所述第二条件对应的至少一个第二队列,所述第二条件与第二优先级对应,所述至少一个第二队列属于所述第二优先级,所述第二条件为所述缓存的使用信息的更新值对应的第二阈值;
第二控制单元,用于对所述至少一个第二队列进行拥塞控制。
20.根据权利要求19所述的装置,其特征在于,所述第二优先级和所述第一队列所属的第一优先级不同。
21.根据权利要求19所述的装置,其特征在于,所述第二优先级和所述第一队列所属的第一优先级相同。
22.根据权利要求19所述的装置,其特征在于,
所述缓存的使用信息的更新值为缓存占用率的更新值,所述第二条件包括所述缓存占用率的更新值大于所述第二阈值,所述第二阈值大于所述第一阈值;或者,
所述缓存的使用信息的更新值为缓存剩余率的更新值,所述第二条件包括所述缓存剩余率的更新值小于所述第二阈值,所述第二阈值小于所述第一阈值。
23.根据权利要求22所述的装置,其特征在于,所述第一控制单元,具体用于:
为所述至少一个第一队列中的出队报文添加显示拥塞通告ECN标记,所述ECN标记用于指示源端设备降低与所述第一队列对应的队列中的报文的发送速率。
24.根据权利要求23所述的装置,其特征在于,所述第二控制单元,具体用于:
通过所述至少一个第二队列的入端口向所述设备的上游设备发送反压信号,所述反压信号用于指示所述上游设备停止发送报文。
25.根据权利要求14-17任一项所述的装置,其特征在于,所述第一控制单元,具体用于:
对所述至少一个第一队列进行反压控制或丢包控制。
26.根据权利要求14-17任一项所述的装置,其特征在于,所述至少一个第一队列还包括预设时长内无出队报文且无入队报文的队列。
27.一种网络设备,其特征在于,所述网络设备包括存储器和处理器;
所述存储器,用于存储程序代码;
所述处理器,用于运行所述程序代码中的指令,使得所述网络设备执行以上权利要求1-13任一项所述的拥塞控制方法。
28.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得所述计算机执行以上权利要求1-13任一项所述的拥塞控制方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010713140.9A CN113973085B (zh) | 2020-07-22 | 2020-07-22 | 一种拥塞控制方法和装置 |
PCT/CN2021/081462 WO2022016889A1 (zh) | 2020-07-22 | 2021-03-18 | 一种拥塞控制方法和装置 |
EP21847169.6A EP4175232A4 (en) | 2020-07-22 | 2021-03-18 | OVERLOAD CONTROL METHOD AND APPARATUS |
US18/157,690 US20230164078A1 (en) | 2020-07-22 | 2023-01-20 | Congestion Control Method and Apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010713140.9A CN113973085B (zh) | 2020-07-22 | 2020-07-22 | 一种拥塞控制方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113973085A CN113973085A (zh) | 2022-01-25 |
CN113973085B true CN113973085B (zh) | 2023-10-20 |
Family
ID=79585031
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010713140.9A Active CN113973085B (zh) | 2020-07-22 | 2020-07-22 | 一种拥塞控制方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230164078A1 (zh) |
EP (1) | EP4175232A4 (zh) |
CN (1) | CN113973085B (zh) |
WO (1) | WO2022016889A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114598669B (zh) * | 2022-03-07 | 2024-03-19 | 潍柴动力股份有限公司 | 一种报文的存储方法、装置及设备 |
CN114760252B (zh) * | 2022-03-24 | 2024-06-07 | 北京邮电大学 | 数据中心网络拥塞控制方法及系统 |
CN114598653B (zh) * | 2022-05-09 | 2022-08-02 | 上海飞旗网络技术股份有限公司 | 一种基于时延管理模型的数据流加速方法 |
CN117319301A (zh) * | 2022-06-23 | 2023-12-29 | 华为技术有限公司 | 网络拥塞控制方法及装置 |
CN115883465B (zh) * | 2022-12-01 | 2024-04-19 | 迈普通信技术股份有限公司 | 流量控制方法、装置、服务器、系统及存储介质 |
CN116527205B (zh) * | 2023-06-30 | 2023-09-05 | 芯耀辉科技有限公司 | 数据传输方法、装置及存储介质 |
CN118337720B (zh) * | 2024-06-13 | 2024-09-20 | 苏州元脑智能科技有限公司 | 遥测报文传输控制方法、产品、计算机设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101656674A (zh) * | 2009-09-23 | 2010-02-24 | 中国人民解放军信息工程大学 | 拥塞控制方法及网络节点 |
CN105812285A (zh) * | 2016-04-29 | 2016-07-27 | 华为技术有限公司 | 一种端口拥塞管理方法及装置 |
CN108259383A (zh) * | 2016-12-29 | 2018-07-06 | 北京华为数字技术有限公司 | 一种数据的传输方法和网络设备 |
CN109660468A (zh) * | 2017-10-12 | 2019-04-19 | 深圳市中兴微电子技术有限公司 | 一种端口拥塞管理方法、装置和设备 |
WO2020119202A1 (zh) * | 2018-12-12 | 2020-06-18 | 深圳市中兴微电子技术有限公司 | 拥塞控制方法及装置、网络设备及存储介质 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6108307A (en) * | 1997-12-12 | 2000-08-22 | Newbridge Networks Corporation | Frame relay priority queses to offer multiple service classes |
US7219228B2 (en) * | 2003-08-25 | 2007-05-15 | Lucent Technologies Inc. | Method and apparatus for defending against SYN packet bandwidth attacks on TCP servers |
WO2005064862A1 (en) * | 2003-12-23 | 2005-07-14 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and device for controlling a queue buffer |
US9674104B1 (en) * | 2013-05-01 | 2017-06-06 | Cisco Technology, Inc | Adapting proportional integral controller enhanced algorithm for varying network conditions in a network environment |
US9246829B2 (en) * | 2013-05-01 | 2016-01-26 | Cisco Technology, Inc. | Utilizing latency control to alleviate bufferbloat |
EP2884707B1 (en) * | 2013-12-16 | 2016-04-27 | Alcatel Lucent | Method for controlling buffering of packets in a communication network |
US10084716B2 (en) * | 2016-03-20 | 2018-09-25 | Mellanox Technologies Tlv Ltd. | Flexible application of congestion control measures |
CN108206787A (zh) * | 2016-12-17 | 2018-06-26 | 北京华为数字技术有限公司 | 一种拥塞避免方法和装置 |
EP3678339A4 (en) * | 2017-09-29 | 2020-07-15 | Huawei Technologies Co., Ltd. | METHOD AND DEVICE FOR PROCESSING MESSAGES |
CN110011924B (zh) * | 2018-01-04 | 2023-03-10 | 深圳市中兴微电子技术有限公司 | 一种清除缓存拥塞的方法与装置 |
CN110278157B (zh) * | 2018-03-14 | 2022-08-09 | 华为技术有限公司 | 拥塞控制方法及网络设备 |
CN110061927B (zh) * | 2019-04-26 | 2021-07-23 | 东南大学 | 一种多队列数据中心环境中面向微突发流的拥塞感知与标记方法 |
CN113141313A (zh) * | 2020-01-19 | 2021-07-20 | 华为技术有限公司 | 拥塞控制方法、装置及系统、存储介质 |
-
2020
- 2020-07-22 CN CN202010713140.9A patent/CN113973085B/zh active Active
-
2021
- 2021-03-18 EP EP21847169.6A patent/EP4175232A4/en active Pending
- 2021-03-18 WO PCT/CN2021/081462 patent/WO2022016889A1/zh unknown
-
2023
- 2023-01-20 US US18/157,690 patent/US20230164078A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101656674A (zh) * | 2009-09-23 | 2010-02-24 | 中国人民解放军信息工程大学 | 拥塞控制方法及网络节点 |
CN105812285A (zh) * | 2016-04-29 | 2016-07-27 | 华为技术有限公司 | 一种端口拥塞管理方法及装置 |
CN108259383A (zh) * | 2016-12-29 | 2018-07-06 | 北京华为数字技术有限公司 | 一种数据的传输方法和网络设备 |
CN109660468A (zh) * | 2017-10-12 | 2019-04-19 | 深圳市中兴微电子技术有限公司 | 一种端口拥塞管理方法、装置和设备 |
WO2020119202A1 (zh) * | 2018-12-12 | 2020-06-18 | 深圳市中兴微电子技术有限公司 | 拥塞控制方法及装置、网络设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP4175232A1 (en) | 2023-05-03 |
WO2022016889A1 (zh) | 2022-01-27 |
US20230164078A1 (en) | 2023-05-25 |
EP4175232A4 (en) | 2023-12-27 |
CN113973085A (zh) | 2022-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113973085B (zh) | 一种拥塞控制方法和装置 | |
US8929363B1 (en) | Apparatus and method for allocating buffers of a memory including tracking a number of buffers used to store a received frame | |
US8467295B2 (en) | System and methods for distributed quality of service enforcement | |
US10868768B1 (en) | Multi-destination traffic handling optimizations in a network device | |
CN112585914B (zh) | 报文转发方法、装置以及电子设备 | |
CN107948103B (zh) | 一种基于预测的交换机pfc控制方法及控制系统 | |
US10855606B2 (en) | Information processing apparatus and information processing system | |
US11799803B2 (en) | Packet processing method and apparatus, communications device, and switching circuit | |
WO2020119202A1 (zh) | 拥塞控制方法及装置、网络设备及存储介质 | |
CN110138678B (zh) | 数据传输控制方法和装置、以及网络传输设备和存储介质 | |
CN114095434B (zh) | 控制网络拥塞的方法和相关装置 | |
CN107347039A (zh) | 一种共享缓存空间的管理方法及装置 | |
CN113454957B (zh) | 一种存储器的管理方法及装置 | |
US8689049B2 (en) | Corrective actions based on probabilities | |
WO2018076641A1 (zh) | 一种减少时延的方法、装置及存储介质 | |
US8879578B2 (en) | Reducing store and forward delay in distributed systems | |
CN110011924B (zh) | 一种清除缓存拥塞的方法与装置 | |
WO2021143913A1 (zh) | 拥塞控制方法、装置及系统、存储介质 | |
CN108989233B (zh) | 拥塞管理方法及装置 | |
US9088507B1 (en) | Dummy queues and virtual queues in a network device | |
CN112804156A (zh) | 一种拥塞避免方法和装置及计算机可读存储介质 | |
CN117749726A (zh) | Tsn交换机输出端口优先级队列混合调度方法和装置 | |
CN111163016A (zh) | 一种队列管理的方法及装置 | |
WO2022174444A1 (zh) | 一种数据流传输方法、装置及网络设备 | |
CN110048957B (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 |