CN109660468B - 一种端口拥塞管理方法、装置和设备 - Google Patents

一种端口拥塞管理方法、装置和设备 Download PDF

Info

Publication number
CN109660468B
CN109660468B CN201710949225.5A CN201710949225A CN109660468B CN 109660468 B CN109660468 B CN 109660468B CN 201710949225 A CN201710949225 A CN 201710949225A CN 109660468 B CN109660468 B CN 109660468B
Authority
CN
China
Prior art keywords
port
queue
congestion
threshold
ith
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
Application number
CN201710949225.5A
Other languages
English (en)
Other versions
CN109660468A (zh
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.)
Sanechips Technology Co Ltd
Original Assignee
Sanechips 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 Sanechips Technology Co Ltd filed Critical Sanechips Technology Co Ltd
Priority to CN201710949225.5A priority Critical patent/CN109660468B/zh
Publication of CN109660468A publication Critical patent/CN109660468A/zh
Application granted granted Critical
Publication of CN109660468B publication Critical patent/CN109660468B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • 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/20Traffic policing
    • 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/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例提供了一种端口拥塞管理方法,所述方法包括:检测端口的剩余缓存资源的大小,所述端口的剩余缓存资源用于表示端口的所有缓存资源中除去被占用缓存资源外的缓存资源;当所述端口的剩余缓存资源增大时,控制增大所述端口的每个队列的拥塞丢弃门限;当所述端口的剩余缓存资源减小时,控制降低所述端口的每个队列的拥塞丢弃门限;根据所述每个队列的变更后的拥塞丢弃门限,对所述每个队列中的报文进行处理。本发明实施例还公开了一种端口拥塞管理装置、设备和计算机可读存储介质。

Description

一种端口拥塞管理方法、装置和设备
技术领域
本发明涉及计算机通信技术,尤其涉及一种端口拥塞管理方法、装置、设备和计算机可读存储介质。
背景技术
拥塞管理在交换接入(Switching Access,以下简称SA)芯片中是一项非常重要的技术手段;SA芯片收到来自交换网的大量报文切片,按照一定的方式把这些报文缓存在不同的队列中,并以一定的调度规则将不同队列内的报文调度输出;当报文流量突发或者数据流整形时,即队列的输入速率大于队列的调度输出速率时,会造成队列深度累积,形成缓存拥塞。这时就需要一种拥塞管理策略,对输入的报文进行反压或者丢弃处理,以免造成系统的挂死。
现有技术中,可以采用反压方式或丢弃方式进行拥塞管理;在反压方式下,当队列深度达到门限值时,产生对前级输入的反压,使得前级停止向该队列继续发送报文切片,等待队列中已有的报文切片输出调度至队列深度低于反压撤销门限时,再继续控制前级向队列发送报文切片;在丢弃方式下,当队列深度达到丢弃门限时,对新进入的报文切片进行丢弃,直至队列深度小于丢弃门限则停止丢弃。这里,各个队列的丢弃门限即代表着该队列占用缓存资源的大小。
在传统的拥塞管理策略下,一般为每个队列设定一个固定的丢弃门限或反压撤销门限,有两种门限设定策略:
(1)每个队列的丢弃门限或反压撤销门限都设为最大缓存深度,即每个队列都可以占用全部缓存资源,这样可以确保每个队列都有最大的流量突发吸纳能力;但是当一个队列拥塞时,会影响其他队列的正常输入输出,甚至会导致其他队列数据流中断。
(2)每个队列的丢弃门限或反压撤销门限设置为一个固定值,且所有队列门限之和不超过端口的总缓存资源的大小,这样可以确保每个队列都有资源可用,不会被某一条或几条队列占用全部缓存资源;但是当一条队列拥塞而其他队列空闲时,该拥塞队列可能丢包,而端口的其他空余缓存资源不能得到有效利用。
发明内容
为解决现有存在的技术问题,本发明实施例提供一种端口拥塞管理方法、装置、设备和计算机可读存储介质,能够提高端口的缓存资源的利用效率,并降低端口接收的报文的丢弃概率。
为达到上述目的,本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种端口拥塞管理方法,所述方法包括:
检测端口的剩余缓存资源的大小,所述端口的剩余缓存资源用于表示端口的所有缓存资源中除去被占用缓存资源外的缓存资源;
当所述端口的剩余缓存资源增大时,控制增大所述端口的每个队列的拥塞丢弃门限;当所述端口的剩余缓存资源减小时,控制降低所述端口的每个队列的拥塞丢弃门限;
根据所述每个队列的变更后的拥塞丢弃门限,对所述每个队列中的报文进行处理。
本发明实施例还提供了一种端口拥塞管理装置,所述装置包括:检测模块、控制模块和处理模块;其中,
检测模块,用于检测端口的剩余缓存资源的大小,所述端口的剩余缓存资源用于表示端口的所有缓存资源中除去被占用缓存资源外的缓存资源;
控制模块,用于当所述端口的剩余缓存资源增大时,控制增大所述端口的每个队列的拥塞丢弃门限;当所述端口的剩余缓存资源减小时,控制降低所述端口的每个队列的拥塞丢弃门限;
处理模块,用于根据所述每个队列的变更后的拥塞丢弃门限,对所述每个队列中的报文进行处理。
本发明实施例还提供了一种端口拥塞管理设备,所述设备包括:存储器和处理器;其中,
所述存储器用于存储端口拥塞管理程序;
所述处理器用于执行所述存储器中存储的端口拥塞管理程序,以实现上述任意一种端口拥塞管理方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任意一种端口拥塞管理方法的步骤。
本发明实施例提供的一种端口拥塞管理方法、装置、设备和计算机可读存储介质中,首先,检测端口的剩余缓存资源的大小,所述端口的剩余缓存资源用于表示端口的所有缓存资源中除去被占用缓存资源外的缓存资源;然后,当所述端口的剩余缓存资源增大时,控制增大所述端口的每个队列的拥塞丢弃门限;当所述端口的剩余缓存资源减小时,控制降低所述端口的每个队列的拥塞丢弃门限;最后,根据所述每个队列的变更后的拥塞丢弃门限,对所述每个队列中的报文进行处理;如此,通过动态门限进行队列拥塞管理,可以在端口的剩余缓存资源较多时,通过增大端口的每个队列的拥塞丢弃门限,实现降低端口接收的报文的丢弃概率;在端口的剩余缓存资源较少时,通过降低端口的每个队列的拥塞丢弃门限,降低对其他队列的报文处理过程造成的影响,进而提高端口的缓存资源的利用效率。
附图说明
图1为本发明实施例的拥塞管理的工作原理示意图;
图2为本发明实施例的端口拥塞管理方法的流程图;
图3为本发明实施例对队列的拥塞丢弃门限进行动态配置的流程图;
图4为本发明实施例基于动态门限进行报文处理的示意图;
图5为本发明实施例的端口拥塞管理装置的组成结构示意图;
图6为本发明实施例的端口拥塞管理设备的硬件结构示意图。
具体实施方式
以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例可以应用于接收报文的端口中,每个端口中可以采用至少一个队列来处理报文,并将处理后的报文输出;每个队列的队列深度用于表示对应队列当前占用的缓存资源的大小。
在一个可选的示例中,图1为本发明实施例的拥塞管理的工作原理示意图,如图1所示,端口中共有N个队列,这N个队列分别为队列1至队列N,N为大于1的自然数;为了进行拥塞管理,可以预先设置丢弃门限表和反压门限表,其中,丢弃门限表包括至少一个丢弃门限,反压门限表包括至少一个反压撤销门限;在实际实施时,可以在丢弃门限表中选择一个丢弃门限,在反压门限表中选择一个反压撤销门限;在实际工作时,可以将每个队列的队列深度与选择的丢弃门限或反压撤销门限进行比较,当任意一个队列的队列深度超过选择的丢弃门限或反压时,按照丢弃方式或反压方式进行报文处理;例如,可以在相应的报文上标记上丢弃标记或反压标记,之后,再按照丢弃标记或反压标记进行相应的报文处理。
在图1中,可以利用一个深度为N的随机存取存储器(RAM,Random Access Memory)统计每条队列的入队个数,同时可以利用一个深度为N的RAM统计每条队列的出队个数,入队个数与出队个数相减即为该队列的深度。
基于上述记载的端口、队列等内容,提出以下各具体实施例。
第一实施例
本发明第一实施例记载了一种端口拥塞管理方法,图2为本发明实施例的端口拥塞管理方法的流程图,如图2所示,该方法包括:
步骤201:检测端口的剩余缓存资源的大小,所述端口的剩余缓存资源用于表示端口的所有缓存资源中除去被占用缓存资源外的缓存资源;
可以理解的是,端口中的所有缓存资源的大小可以是预先确定的,端口中被占用的缓存资源的大小可以由处理器等设备实时检测得出,从而,可以确定端口的剩余缓存资源的大小。
步骤202:当所述端口的剩余缓存资源增大时,控制增大所述端口的每个队列的拥塞丢弃门限;当所述端口的剩余缓存资源减小时,控制降低所述端口的每个队列的拥塞丢弃门限。
这里,每个队列的拥塞丢弃门限可以是按照丢弃方式进行报文丢弃处理时使用的丢弃门限,也可以是按照反压方式进行报文处理时使用的反压撤销门限。
可以看出,在本发明实施例中,端口的每个队列的拥塞丢弃门限并不是固定的,而是可以根据端口的剩余缓存资源的大小进行改变;也就是说,在进行队列拥塞管理时,不再为每个队列设定固定的拥塞丢弃门限,而是根据端口的剩余缓存资源的大小动态调整各个队列的丢弃门限;总体原则为:当端口的剩余缓存资源较大时,增大队列的拥塞丢弃门限,以降低该队列的报文丢弃概率;当端口的剩余缓存资源较小时,减小队列的拥塞丢弃门限,增加丢弃概率,从而减小该队列对其他队列的影响。
步骤203:根据所述每个队列的变更后的拥塞丢弃门限,对所述每个队列中的报文进行处理。
在实际实施时,当控制增大或降低所述端口的每个队列的拥塞丢弃门限时,可以得到每个队列的变更后的拥塞丢弃门限。
可选的,本步骤可以通过以下两种方式实现:
第一种方式:
当端口的第i个队列的变更后的拥塞丢弃门限大于端口的第i个队列的队列深度时,基于端口的第i个队列的变更后的拥塞丢弃门限,对端口的第i个队列中的报文进行处理;其中,i取1至N。
在实际实施时,在确定端口的第i个队列的变更后的拥塞丢弃门限时,由于端口的第i个队列的变更后的拥塞丢弃门限大于端口的第i个队列的队列深度,此时不需要对端口的第i个队列的报文进行丢弃或反压处理;当端口的第i个队列的队列深度可以发生变化,使端口的第i个队列的队列深度大于端口的第i个队列的变更后的拥塞丢弃门限时,按照端口的第i个队列的变更后的拥塞丢弃门限进行报文丢弃或反压处理。
当所述端口的第i个队列的变更后的拥塞丢弃门限小于或等于所述端口的第i个队列的队列深度,且所述端口的剩余缓存资源大于或等于设定阈值时,基于所述端口的第i个队列的变更前的拥塞丢弃门限,对所述端口的第i个队列中的报文进行处理;
也就是说,当端口的剩余缓存资源大于或等于设定阈值时,说明端口的剩余缓存资源较多,此时为了避免采用变更后的拥塞丢弃门限直接造成的报文丢弃或反压处理过程,采用队列的变更前的拥塞丢弃门限可以有效地降低报文的丢弃概率。
当所述端口的第i个队列的变更后的拥塞丢弃门限小于或等于所述端口的第i个队列的队列深度,且所述端口的剩余缓存资源小于设定阈值时,将端口的第i个队列的变更后的拥塞丢弃门限的值更新为端口的第i个队列当前的队列深度;基于所述端口的第i个队列的变更后的拥塞丢弃门限,对所述端口的第i个队列中的报文进行处理。
也就是说,当端口的剩余缓存资源小于设定阈值时,说明端口的剩余缓存资源较少,此时,将端口的第i个队列的变更后的拥塞丢弃门限的值更新为端口的第i个队列当前的队列深度,可以保证端口的第i个队列中的报文不被丢弃;同时,端口的第i个队列的变更后的拥塞丢弃门限的值更新后,端口的第i个队列的变更后的拥塞丢弃门限的值没有增加,从而,可以有效地降低第i个队列对其他队列的报文处理过程造成的影响,也就是说,需要确保变更后的门限值不会小于当前的队列深度,即不会发生因为丢弃门限更改而直接造成报文丢弃。
此时,可以按照队列的变更后的拥塞丢弃门限进行报文的丢弃或反压处理,进而可以提高队列的报文丢弃概率,降低对其他队列的报文处理造成的影响。
第二种方式:
在所述端口的第i个队列的队列深度大于或等于所述第i个队列的变更后的拥塞丢弃门限时,对进入至所述第i个队列的报文进行丢弃处理,或者,对停止向所述第i个队列发送报文直至端口的第i个队列的队列深度小于或等于所述第i个队列的变更后的拥塞丢弃门限;其中,i取1至N,N表示所述端口的队列个数。
也就是说,端口的第i个队列的队列深度大于或等于所述第i个队列的变更后的拥塞丢弃门限时,如果拥塞丢弃门限为按照丢弃方式进行报文丢弃处理时使用的丢弃门限,则按照丢弃方式对进入至所述第i个队列的报文进行丢弃处理,直至端口的第i个队列的队列深度小于或等于所述第i个队列的变更后的拥塞丢弃门限;如果拥塞丢弃门限为按照反压方式进行报文处理时使用的反压撤销门限,则按照反压方式停止前级向所述第i个队列发送报文,直至端口的第i个队列的队列深度小于或等于所述第i个队列的变更后的拥塞丢弃门限。
可以看出,对于第二种方式,不需要考虑队列的拥塞丢弃门限与队列深度的大小关系,也不需要考虑端口的剩余缓存资源的大小,实现较为方便。
在实际实施时,步骤201至203均可以由端口中的处理器实现,设定阈值也可以利用端口中的处理器进行预先配置。
通过上述记载的内容可以看出,在本发明实施例中,可以根据实际情况对队列的拥塞丢弃门限进行动态配置;下面通过图3说明本发明实施例对队列的拥塞丢弃门限进行动态配置的流程图,如图3所示,该流程可以包括:
步骤301:在需要确定队列当前的拥塞丢弃门限时,在动态门限表中选取一个动态门限;
这里,可以针对每个队列,预先配置用于存储拥塞丢弃门限的动态门限表,从动态门限表中选取的动态门限为预先存储的动态门限。
可选的,可以根据每个队列的队列属性从动态门限表中选取一个拥塞丢弃门限作为动态门限;例如,队列属性包括以下至少一项:所述端口的接口类型、所述端口的第i个队列的队列优先级、所述端口的端口优先级。
步骤302:获取队列的队列深度;判断选取的动态门限是否大于队列深度,如果是,则执行步骤303;如果否,则执行步骤304。
步骤303:将动态门限作为实际拥塞丢弃门限;
此时,可以按照实际拥塞丢弃门限进行报文处理。
步骤304:判断端口的剩余缓存资源是否小于设定阈值,如果是,则执行步骤305;如果否,则执行步骤306。
步骤305:将队列的队列深度作为实际拥塞丢弃门限。
此时,可以按照实际拥塞丢弃门限进行报文处理。
步骤306:保持队列的拥塞丢弃门限不变。
也就是说,不考虑采用动态门限作为队列的实际拥塞丢弃门限,而是采用队列的拥塞丢弃门限的原始值。
此时,可以按照队列的原拥塞丢弃门限进行报文处理。
应用本发明实施例的端口拥塞管理方法,首先,检测端口的剩余缓存资源的大小,所述端口的剩余缓存资源用于表示端口的所有缓存资源中除去被占用缓存资源外的缓存资源;然后,当所述端口的剩余缓存资源增大时,控制增大所述端口的每个队列的拥塞丢弃门限;当所述端口的剩余缓存资源减小时,控制降低所述端口的每个队列的拥塞丢弃门限;最后,根据所述每个队列的变更后的拥塞丢弃门限,对所述每个队列中的报文进行处理;如此,通过动态门限进行队列拥塞管理,可以在端口的剩余缓存资源较多时,通过增大端口的每个队列的拥塞丢弃门限,实现降低端口接收的报文的丢弃概率;在端口的剩余缓存资源较少时,通过降低端口的每个队列的拥塞丢弃门限,降低对其他队列的报文处理过程造成的影响,进而提高端口的缓存资源的利用效率。
也就是说,通过动态门限进行队列拥塞管理,可以保证交换接入芯片技术指标的前提下,提高了缓存利用效率,并且降低了报文的丢弃概率,对交换接入芯片吸纳流量突发的能力有较大提升。
第二实施例
为了能够更加体现本发明的目的,在本发明第一实施例的基础上,进行进一步的举例说明。
示例性地,可以根据端口的剩余缓存资源从小到大的顺序,预先划分出第1数值区间至第M数值区间,每个数值区间用于表示所述端口的剩余缓存资源的大小的一个取值范围;M为大于1的自然数;
相应地,所述当所述端口的剩余缓存资源增大时,控制增大所述端口的每个队列的拥塞丢弃门限,包括:
当所述端口的剩余缓存资源增大时,若所述端口的剩余缓存资源的大小所处在的数值区间发生变化,控制增大所述端口的每个队列的拥塞丢弃门限;
所述当所述端口的剩余缓存资源减小时,控制降低所述端口的每个队列的拥塞丢弃门限,包括:
当所述端口的剩余缓存资源减小时,若所述端口的剩余缓存资源的大小所处在的数值区间发生变化,控制降低所述端口的每个队列的拥塞丢弃门限。
在一个可选的示例中,第1数值区间至第M数值区间分别对应第1拥塞等级至第M拥塞等级,这里,每个拥塞等级可以表征端口被占用的缓存资源的大小(端口的拥塞程度),可以看出,按照第1拥塞等级至第M拥塞等级的顺序,端口被占用的缓存资源越小;
当然,在另一实施例中,也可以根据端口的剩余缓存资源从大到小的顺序,预先划分出第1数值区间至第M数值区间。
可以看出,本发明实施例中,可以根据端口的缓存资源的使用情况,划分出不同的拥塞等级,每个拥塞等级可单独分配不同的丢弃门限;拥塞等级依据剩余缓存空间和拥塞等级门限确定,其中拥塞等级门限可配置更改。拥塞等级门限将缓存空间划分为多个数值区间,当端口的剩余缓存资源的大小处于某一区间时,则系统的拥塞状态处于对应的拥塞等级上,系统拥塞等级的变化会导致队列的拥塞丢弃门限相应地跟着动态变化。
可选的,可以针对每个数值区间,设置至少一个拥塞丢弃门限;其中,当a小于b时,第a数值区间对应的任意一个拥塞丢弃门限小于第b数值区间对应的任意一个拥塞丢弃门限,a和b均为小于或等于M的自然数;例如,可以为每个拥塞等级设置几十个丢弃门限。
相应地,所述若所述端口的剩余缓存资源的大小所处在的数值区间发生变化,控制增大所述端口的每个队列的拥塞丢弃门限,包括:
若所述端口的剩余缓存资源的大小所处在的数值区间发生变化,在端口的剩余缓存资源的大小当前所处在的数值区间对应的所有拥塞丢弃门限中,选择一个拥塞丢弃门限作为所述端口的第i个队列的拥塞丢弃门限,其中,i取1至N,N表示所述端口的队列个数;
所述若所述端口的剩余缓存资源的大小所处在的数值区间发生变化,控制降低所述端口的每个队列的拥塞丢弃门限,包括:
若所述端口的剩余缓存资源的大小所处在的数值区间发生变化,在端口的剩余缓存资源的大小当前所处在的数值区间对应的所有拥塞丢弃门限中,选择一个拥塞丢弃门限作为所述端口的第i个队列的拥塞丢弃门限。
可选的,可以根据所述端口的第i个队列的队列属性,在端口的剩余缓存资源的大小当前所处在的数值区间对应的所有拥塞丢弃门限中,选择一个拥塞丢弃门限作为所述端口的第i个队列的拥塞丢弃门限;其中,
所述端口的第i个队列的队列属性包括以下至少一项:所述端口的接口类型、所述端口的第i个队列的队列优先级、所述端口的端口优先级。
下面通过图4对本发明实施例的拥塞管理方法进行示例性说明
图4为本发明实施例基于动态门限进行报文处理的示意图,如图4所示,动态门限表中存储有每个拥塞等级的拥塞丢弃门限,假设有M个拥塞等级,每个拥塞等级根据队列优先级有L个拥塞丢弃门限,则该动态门限表共有M*L个拥塞丢弃门限;同时,可以设置一个队列实际丢弃门限表,深度为N。该表内存储的是队列在进行是否丢弃判断时采用的实际拥塞丢弃门限。
参照图4,在端口初始化完成后,各个队列深度都为0,端口的拥塞等级处于表示被占用缓存资源最少的拥塞等级,此时,此时每个队列的队列深度小于对应的拥塞等级的拥塞丢弃门限,并且端口的剩余缓存资源较多,按照上述记载的第一种方式,在动态门限表中选取一个动态门限作为实际拥塞丢弃门限,并写入相应的实际丢弃门限表中,之后,判断是否进行报文丢弃处理。
端口开始工作后,各个队列开始有报文切片进入,假设,此时缓存处于拥塞等级m上(端口的剩余缓存资源较多),第n个队列突发大流量(即短时间内接收到很多报文),第n个队列深度增大;由于端口的剩余缓存资源较多,分配给第n个队列的实际拥塞丢弃门限较大,第n个队列占用较大缓存空间不易丢包,n为小于或等于M的自然数。
若队列深度继续增大时,端口的拥塞等级开始提高,对应的拥塞丢弃门限减小;此时,比较队列深度与从动态丢弃门限表中选取的动态门限,若队列深度仍小于动态门限,将动态门限值写入到实际丢弃门限表中。
若队列深度继续增大,端口的拥塞等级继续提高,当队列深度大于此时的动态门限时,则将队列深度作为门限写入实际丢弃门限表中,此时该队列开始有报文切片丢弃,它所占用的缓存空间不会无限膨胀以至于影响其他队列。
上述描述可知,在某个队列突发大流量时,动态门限可以最大限度的吸纳突发,而某一条流持续拥塞时,该队列受到拥塞等级和动态门限的限制,不会挤占其他队列的缓存空间。
第三实施例
在本发明前述实施例的基础上,本发明第三实施例提出了一种端口拥塞管理装置。
图5为本发明实施例的端口拥塞管理装置的组成结构示意图,如图5所示,该装置可以包括:检测模块501、控制模块502和处理模块503;其中,
检测模块501,用于检测端口的剩余缓存资源的大小,所述端口的剩余缓存资源用于表示端口的所有缓存资源中除去被占用缓存资源外的缓存资源;
控制模块502,用于当所述端口的剩余缓存资源增大时,控制增大所述端口的每个队列的拥塞丢弃门限;当所述端口的剩余缓存资源减小时,控制降低所述端口的每个队列的拥塞丢弃门限;
处理模块503,用于根据所述每个队列的变更后的拥塞丢弃门限,对所述每个队列中的报文进行处理。
可选的,所述装置还包括配置模块504;
所述配置模块504,用于根据所述端口的剩余缓存资源从小到大的顺序,预先划分出第1数值区间至第M数值区间,每个数值区间用于表示所述端口的剩余缓存资源的大小的一个取值范围;M为大于1的自然数;
相应地,所述控制模块502,具体用于当所述端口的剩余缓存资源增大时,若所述端口的剩余缓存资源的大小所处在的数值区间发生变化,控制增大所述端口的每个队列的拥塞丢弃门限;当所述端口的剩余缓存资源减小时,若所述端口的剩余缓存资源的大小所处在的数值区间发生变化,控制降低所述端口的每个队列的拥塞丢弃门限。
可选的,所述配置模块504,还用于针对每个数值区间,设置至少一个拥塞丢弃门限;其中,当a小于b时,第a数值区间对应的任意一个拥塞丢弃门限小于第b数值区间对应的任意一个拥塞丢弃门限,a和b均为小于或等于M的自然数;
所述控制模块502,具体用于若所述端口的剩余缓存资源的大小所处在的数值区间发生变化,在端口的剩余缓存资源的大小当前所处在的数值区间对应的所有拥塞丢弃门限中,选择一个拥塞丢弃门限作为所述端口的第i个队列的拥塞丢弃门限,其中,i取1至N,N表示所述端口的队列个数。
可选的,所述控制模块502,具体用于根据所述端口的第i个队列的队列属性,在端口的剩余缓存资源的大小当前所处在的数值区间对应的所有拥塞丢弃门限中,选择一个拥塞丢弃门限作为所述端口的第i个队列的拥塞丢弃门限。
可选的,所述端口的第i个队列的队列属性包括以下至少一项:所述端口的接口类型、所述端口的第i个队列的队列优先级、所述端口的端口优先级。
可选的,所述处理模块503,具体用于当所述端口的第i个队列的变更后的拥塞丢弃门限大于所述端口的第i个队列的队列深度时,基于所述端口的第i个队列的变更后的拥塞丢弃门限,对所述端口的第i个队列中的报文进行处理;其中,i取1至N,N表示所述端口的队列个数;
当所述端口的第i个队列的变更后的拥塞丢弃门限小于或等于所述端口的第i个队列的队列深度,且所述端口的剩余缓存资源大于或等于设定阈值时,基于所述端口的第i个队列的变更前的拥塞丢弃门限,对所述端口的第i个队列中的报文进行处理;
当所述端口的第i个队列的变更后的拥塞丢弃门限小于或等于所述端口的第i个队列的队列深度,且所述端口的剩余缓存资源小于设定阈值时,将端口的第i个队列的变更后的拥塞丢弃门限的值更新为端口的第i个队列当前的队列深度;基于所述端口的第i个队列的变更后的拥塞丢弃门限,对所述端口的第i个队列中的报文进行处理。
另外,在本实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM, Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
具体来讲,本实施例中的一种端口拥塞管理方法对应的计算机程序指令可以被存储在光盘,硬盘,U盘等存储介质上,当存储介质中的与一种端口拥塞管理方法对应的计算机程序指令被一电子设备读取或被执行时,实现前述第一实施例和第二实施例的任意一种端口拥塞管理方法的步骤。
基于前述实施例相同的技术构思,参见图6,其示出了本发明实施例提供的一种端口拥塞管理设备60,可以包括:存储器601、处理器602和总线603;其中,
所述总线603用于连接所述存储器601、处理器602和这些器件之间的相互通信;
所述存储器601,用于存储端口拥塞管理程序和数据;
所述处理器602,用于执行所述存储器中存储的端口拥塞管理程序,以实现前述第一实施例和第二实施例的任意一种端口拥塞管理方法的步骤。
在实际应用中,上述存储器601可以是易失性存储器(volatile memory),例如随机存取存储器(RAM,Random-Access Memory);或者非易失性存储器(non-volatilememory),例如只读存储器(ROM,Read-Only Memory),快闪存储器(flash memory),硬盘(HDD,Hard Disk Drive)或固态硬盘(SSD,Solid-State Drive);或者上述种类的存储器的组合,并向处理器602提供指令和数据。
上述处理器602可以为特定用途集成电路(ASIC,Application SpecificIntegrated Circuit)、数字信号处理器(DSP,Digital Signal Processor)、数字信号处理装置(DSPD,Digital Signal Processing Device)、可编程逻辑装置(PLD,ProgrammableLogic Device)、现场可编程门阵列(FPGA,Field Programmable Gate Array)、中央处理器(CPU,Central Processing Unit)、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述第一处理器功能的电子器件还可以为其它,本发明实施例不作具体限定。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (15)

1.一种端口拥塞管理方法,其特征在于,所述方法包括:
检测端口的剩余缓存资源的大小,所述端口的剩余缓存资源用于表示端口的所有缓存资源中除去被占用缓存资源外的缓存资源;
当所述端口的剩余缓存资源增大时,控制增大所述端口的每个队列的拥塞丢弃门限;当所述端口的剩余缓存资源减小时,控制降低所述端口的每个队列的拥塞丢弃门限;
根据所述每个队列的变更后的拥塞丢弃门限,对所述每个队列中的报文进行处理;其中,所述根据所述每个队列的变更后的拥塞丢弃门限,对所述每个队列中的报文进行处理包括:
当所述端口的第i个队列的变更后的拥塞丢弃门限小于或等于所述端口的第i个队列的队列深度,且所述端口的剩余缓存资源小于设定阈值时,将端口的第i个队列的变更后的拥塞丢弃门限的值更新为端口的第i个队列当前的队列深度;基于所述端口的第i个队列的变更后的拥塞丢弃门限,对所述端口的第i个队列中的报文进行处理;其中,i取1至N,N表示所述端口的队列个数。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述端口的剩余缓存资源从小到大的顺序,预先划分出第1数值区间至第M数值区间,每个数值区间用于表示所述端口的剩余缓存资源的大小的一个取值范围;M为大于1的自然数;
相应地,所述当所述端口的剩余缓存资源增大时,控制增大所述端口的每个队列的拥塞丢弃门限,包括:
当所述端口的剩余缓存资源增大时,若所述端口的剩余缓存资源的大小所处在的数值区间发生变化,控制增大所述端口的每个队列的拥塞丢弃门限;
所述当所述端口的剩余缓存资源减小时,控制降低所述端口的每个队列的拥塞丢弃门限,包括:
当所述端口的剩余缓存资源减小时,若所述端口的剩余缓存资源的大小所处在的数值区间发生变化,控制降低所述端口的每个队列的拥塞丢弃门限。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
针对每个数值区间,设置至少一个拥塞丢弃门限;其中,当a小于b时,第a数值区间对应的任意一个拥塞丢弃门限小于第b数值区间对应的任意一个拥塞丢弃门限,a和b均为小于或等于M的自然数;
相应地,所述若所述端口的剩余缓存资源的大小所处在的数值区间发生变化,控制增大所述端口的每个队列的拥塞丢弃门限,包括:
若所述端口的剩余缓存资源的大小所处在的数值区间发生变化,在端口的剩余缓存资源的大小当前所处在的数值区间对应的所有拥塞丢弃门限中,选择一个拥塞丢弃门限作为所述端口的第i个队列的拥塞丢弃门限,其中,i取1至N,N表示所述端口的队列个数;
所述若所述端口的剩余缓存资源的大小所处在的数值区间发生变化,控制降低所述端口的每个队列的拥塞丢弃门限,包括:
若所述端口的剩余缓存资源的大小所处在的数值区间发生变化,在端口的剩余缓存资源的大小当前所处在的数值区间对应的所有拥塞丢弃门限中,选择一个拥塞丢弃门限作为所述端口的第i个队列的拥塞丢弃门限。
4.根据权利要求3所述的方法,其特征在于,所述在端口的剩余缓存资源的大小当前所处在的数值区间对应的所有拥塞丢弃门限中,选择一个拥塞丢弃门限作为所述端口的第i个队列的拥塞丢弃门限,包括:
根据所述端口的第i个队列的队列属性,在端口的剩余缓存资源的大小当前所处在的数值区间对应的所有拥塞丢弃门限中,选择一个拥塞丢弃门限作为所述端口的第i个队列的拥塞丢弃门限。
5.根据权利要求4所述的方法,其特征在于,所述端口的第i个队列的队列属性包括以下至少一项:所述端口的接口类型、所述端口的第i个队列的队列优先级、所述端口的端口优先级。
6.根据权利要求1所述的方法,其特征在于,所述根据所述每个队列的变更后的拥塞丢弃门限,对所述每个队列中的报文进行处理,还包括:
当所述端口的第i个队列的变更后的拥塞丢弃门限大于所述端口的第i个队列的队列深度时,基于所述端口的第i个队列的变更后的拥塞丢弃门限,对所述端口的第i个队列中的报文进行处理;
当所述端口的第i个队列的变更后的拥塞丢弃门限小于或等于所述端口的第i个队列的队列深度,且所述端口的剩余缓存资源大于或等于设定阈值时,基于所述端口的第i个队列的变更前的拥塞丢弃门限,对所述端口的第i个队列中的报文进行处理。
7.根据权利要求1所述的方法,其特征在于,所述根据所述每个队列的变更后的拥塞丢弃门限,对所述每个队列中的报文进行处理,包括:
在所述端口的第i个队列的队列深度大于或等于所述第i个队列的变更后的拥塞丢弃门限时,对进入至所述第i个队列的报文进行丢弃处理,或者,对停止向所述第i个队列发送报文,直至端口的第i个队列的队列深度小于或等于所述第i个队列的变更后的拥塞丢弃门限;其中,i取1至N,N表示所述端口的队列个数。
8.一种端口拥塞管理装置,其特征在于,所述装置包括:检测模块、控制模块和处理模块;其中,
检测模块,用于检测端口的剩余缓存资源的大小,所述端口的剩余缓存资源用于表示端口的所有缓存资源中除去被占用缓存资源外的缓存资源;
控制模块,用于当所述端口的剩余缓存资源增大时,控制增大所述端口的每个队列的拥塞丢弃门限;当所述端口的剩余缓存资源减小时,控制降低所述端口的每个队列的拥塞丢弃门限;
处理模块,用于根据所述每个队列的变更后的拥塞丢弃门限,对所述每个队列中的报文进行处理;其中,所述处理模块具体用于:
当所述端口的第i个队列的变更后的拥塞丢弃门限小于或等于所述端口的第i个队列的队列深度,且所述端口的剩余缓存资源小于设定阈值时,将端口的第i个队列的变更后的拥塞丢弃门限的值更新为端口的第i个队列当前的队列深度;基于所述端口的第i个队列的变更后的拥塞丢弃门限,对所述端口的第i个队列中的报文进行处理;其中,i取1至N,N表示所述端口的队列个数。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括配置模块;
所述配置模块,用于根据所述端口的剩余缓存资源从小到大的顺序,预先划分出第1数值区间至第M数值区间,每个数值区间用于表示所述端口的剩余缓存资源的大小的一个取值范围;M为大于1的自然数;
相应地,所述控制模块,具体用于当所述端口的剩余缓存资源增大时,若所述端口的剩余缓存资源的大小所处在的数值区间发生变化,控制增大所述端口的每个队列的拥塞丢弃门限;当所述端口的剩余缓存资源减小时,若所述端口的剩余缓存资源的大小所处在的数值区间发生变化,控制降低所述端口的每个队列的拥塞丢弃门限。
10.根据权利要求9所述的装置,其特征在于,所述配置模块,还用于针对每个数值区间,设置至少一个拥塞丢弃门限;其中,当a小于b时,第a数值区间对应的任意一个拥塞丢弃门限小于第b数值区间对应的任意一个拥塞丢弃门限,a和b均为小于或等于M的自然数;
所述控制模块,具体用于若所述端口的剩余缓存资源的大小所处在的数值区间发生变化,在端口的剩余缓存资源的大小当前所处在的数值区间对应的所有拥塞丢弃门限中,选择一个拥塞丢弃门限作为所述端口的第i个队列的拥塞丢弃门限,其中,i取1至N,N表示所述端口的队列个数。
11.根据权利要求10所述的装置,其特征在于,所述控制模块,具体用于根据所述端口的第i个队列的队列属性,在端口的剩余缓存资源的大小当前所处在的数值区间对应的所有拥塞丢弃门限中,选择一个拥塞丢弃门限作为所述端口的第i个队列的拥塞丢弃门限。
12.根据权利要求11所述的装置,其特征在于,所述端口的第i个队列的队列属性包括以下至少一项:所述端口的接口类型、所述端口的第i个队列的队列优先级、所述端口的端口优先级。
13.根据权利要求8所述的装置,其特征在于,所述处理模块,具体还用于当所述端口的第i个队列的变更后的拥塞丢弃门限大于所述端口的第i个队列的队列深度时,基于所述端口的第i个队列的变更后的拥塞丢弃门限,对所述端口的第i个队列中的报文进行处理;
当所述端口的第i个队列的变更后的拥塞丢弃门限小于或等于所述端口的第i个队列的队列深度,且所述端口的剩余缓存资源大于或等于设定阈值时,基于所述端口的第i个队列的变更前的拥塞丢弃门限,对所述端口的第i个队列中的报文进行处理。
14.一种端口拥塞管理设备,其特征在于,所述设备包括:存储器和处理器;其中,
所述存储器用于存储端口拥塞管理程序;
所述处理器用于执行所述存储器中存储的端口拥塞管理程序,以实现权利要求1至7任一项所述的方法的步骤。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7任一项所述的方法的步骤。
CN201710949225.5A 2017-10-12 2017-10-12 一种端口拥塞管理方法、装置和设备 Active CN109660468B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710949225.5A CN109660468B (zh) 2017-10-12 2017-10-12 一种端口拥塞管理方法、装置和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710949225.5A CN109660468B (zh) 2017-10-12 2017-10-12 一种端口拥塞管理方法、装置和设备

Publications (2)

Publication Number Publication Date
CN109660468A CN109660468A (zh) 2019-04-19
CN109660468B true CN109660468B (zh) 2022-08-16

Family

ID=66108988

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710949225.5A Active CN109660468B (zh) 2017-10-12 2017-10-12 一种端口拥塞管理方法、装置和设备

Country Status (1)

Country Link
CN (1) CN109660468B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113141313A (zh) * 2020-01-19 2021-07-20 华为技术有限公司 拥塞控制方法、装置及系统、存储介质
CN111404826B (zh) * 2020-03-23 2022-04-22 苏州盛科通信股份有限公司 一种基于出端口反馈的流量规划方法及装置
CN113783785A (zh) * 2020-06-09 2021-12-10 华为技术有限公司 Ecn水线值的配置方法、装置及网络设备
CN113973085B (zh) * 2020-07-22 2023-10-20 华为技术有限公司 一种拥塞控制方法和装置
CN113542055A (zh) * 2021-06-15 2021-10-22 新华三信息安全技术有限公司 一种报文处理方法、装置、设备及机器可读存储介质
CN116319590A (zh) * 2021-12-21 2023-06-23 华为技术有限公司 一种队列控制的方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102413063A (zh) * 2012-01-12 2012-04-11 盛科网络(苏州)有限公司 动态调整出口资源分配阈值的方法及系统
CN103179049A (zh) * 2011-12-20 2013-06-26 美国博通公司 分级自适应动态出端口和队列缓冲区管理的系统和方法
CN104702531A (zh) * 2013-12-10 2015-06-10 华为技术有限公司 一种网络设备拥塞避免的方法及网络设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6219728B1 (en) * 1996-04-22 2001-04-17 Nortel Networks Limited Method and apparatus for allocating shared memory resources among a plurality of queues each having a threshold value therefor
US7630306B2 (en) * 2005-02-18 2009-12-08 Broadcom Corporation Dynamic sharing of a transaction queue
WO2006091175A1 (en) * 2005-02-23 2006-08-31 Infineon Technologies Ag Method and apparatus for buffer management in shared memory packet processors
CN101009652A (zh) * 2007-01-23 2007-08-01 中兴通讯股份有限公司 以太网无源光网络下行流控信息传递方法
US9195598B2 (en) * 2012-06-08 2015-11-24 International Business Machines Corporation Synchronous and asynchronous discard scans based on the type of cache memory
CN103338157B (zh) * 2013-07-01 2016-04-06 杭州华三通信技术有限公司 一种多核系统核间数据报文缓存方法及设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103179049A (zh) * 2011-12-20 2013-06-26 美国博通公司 分级自适应动态出端口和队列缓冲区管理的系统和方法
CN102413063A (zh) * 2012-01-12 2012-04-11 盛科网络(苏州)有限公司 动态调整出口资源分配阈值的方法及系统
CN104702531A (zh) * 2013-12-10 2015-06-10 华为技术有限公司 一种网络设备拥塞避免的方法及网络设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种自适应动态缓存策略准入控制算法;魏美荣等;《微电子学与计算机》;20120229;第119-128页 *

Also Published As

Publication number Publication date
CN109660468A (zh) 2019-04-19

Similar Documents

Publication Publication Date Title
CN109660468B (zh) 一种端口拥塞管理方法、装置和设备
CN107347039B (zh) 一种共享缓存空间的管理方法及装置
EP4175232A1 (en) Congestion control method and device
EP2730067B1 (en) Method and apparatus for load balancing
CN109688063B (zh) 一种大型接收卸载功能的设置方法和装置
WO2016202092A1 (zh) 基于多层队列流控反压的传送方法及装置
CN107135088B (zh) 云计算系统中处理日志的方法和装置
CN111488135A (zh) 高并发系统的限流方法、装置、存储介质及设备
CN104753711A (zh) 调整网络设备资源配置的方法及装置
WO2012106906A1 (zh) 多核处理器的流分发方法及装置
US20230283578A1 (en) Method for forwarding data packet, electronic device, and storage medium for the same
CN102375471B (zh) 用于控制处理器时钟频率的设备和方法
US7933283B1 (en) Shared memory management
WO2017008563A1 (zh) 一种数据处理方法及其装置、存储介质
US20150131446A1 (en) Enabling virtual queues with qos and pfc support and strict priority scheduling
CN115514708B (zh) 拥塞控制方法及装置
CN108781170B (zh) 一种配置装置及方法
CN108804152B (zh) 配置参数的调节方法及装置
WO2022174444A1 (zh) 一种数据流传输方法、装置及网络设备
CN108984112B (zh) 存储QoS控制策略的实现方法及装置
CN108304252B (zh) 一种任务调度方法及装置
WO2017088582A1 (zh) 一种网络拥塞控制方法和装置、存储介质
EP3585017A2 (en) Technologies for providing adaptive polling of packet queues
EP3079314A1 (en) Method to manage resources, system and computer-readable medium
US10951526B2 (en) Technologies for efficiently determining a root of congestion with a multi-stage network switch

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