CN113141313A - 拥塞控制方法、装置及系统、存储介质 - Google Patents
拥塞控制方法、装置及系统、存储介质 Download PDFInfo
- Publication number
- CN113141313A CN113141313A CN202010075761.9A CN202010075761A CN113141313A CN 113141313 A CN113141313 A CN 113141313A CN 202010075761 A CN202010075761 A CN 202010075761A CN 113141313 A CN113141313 A CN 113141313A
- Authority
- CN
- China
- Prior art keywords
- queue
- receiving end
- priority
- queues
- end 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.)
- Pending
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
-
- 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/18—End to end
-
- 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
-
- 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/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2483—Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/25—Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Telephonic Communication Services (AREA)
Abstract
本申请公开了一种拥塞控制方法、装置及系统、存储介质,属于网络技术领域。该方法包括:接收端设备监控该接收端设备的多个队列,当该接收端设备的多个队列中的第一队列满足预设开启指标时,通知发送端设备对该发送端设备中与该第一队列对应的目标队列开启拥塞控制,其中,该预设开启指标包括:该接收端设备的多个队列对该接收端设备的缓存空间的占用量达到或超出该第一队列的开启反压水线值。本申请有助于解决目前通信网络的拥塞问题,有助于提高通信网络的资源利用率以及传输质量。
Description
本申请要求于2020年01月19日提交的申请号为202010060644.5、发明名称为“拥塞控制方法、装置及系统、存储介质”的专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及网络技术领域,特别涉及一种拥塞控制方法、装置及系统、存储介质。
背景技术
通信网络通常包括多个网络设备,网络设备通过转发工作站(例如主机或服务器等)的报文,实现不同工作站之间的通信。其中,网络设备通常具有多个出端口,每个出端口具有多个不同优先级的队列,每个出端口的一个队列用于缓存需要经由该出端口转发的一种优先级的报文。网络设备对于接收到的每个报文,通常会将该报文缓存至与该报文匹配的队列,并以一定速率发送该队列中的报文。
随着通信网络规模的扩大以及视频、高性能云计算和消费者云业务等各种应用的普及,网络设备需要转发的流量(例如报文的数量)暴涨,网络拥塞成为通信网络面临的主要难题。网络拥塞会导致通信网络的资源利用率以及传输质量降低,甚至导致通信网络瘫痪,因此亟需一种拥塞控制方案对通信网络进行拥塞控制。
发明内容
本申请实施例提供了一种拥塞控制方法、装置及系统、存储介质。技术方案如下:
第一方面,提供了一种拥塞控制方法,该方法包括:监控接收端设备的多个队列,该接收端设备的每个队列与发送端设备中的一个或多个队列对应;当该接收端设备的多个队列中的第一队列满足预设开启指标时,通知该发送端设备对该发送端设备中与该第一队列对应的目标队列开启拥塞控制;其中,该预设开启指标包括:该接收端设备的多个队列对该接收端设备的缓存空间的占用量达到或超出该第一队列的开启反压水线值。
本申请实施例提供的技术方案,接收端设备在第一队列满足预设开启指标时通知发送端设备对该发送端设备中与该第一队列对应的目标队列开启拥塞控制,该拥塞控制方案有助于解决目前通信网络的拥塞问题,有助于提高通信网络的资源利用率以及传输质量,并且该拥塞控制方案的灵活性较高,可以保证通信网络的吞吐量。
可选地,该预设开启指标还包括以下一个或多个:
该第一队列属于该接收端设备的多个队列中第一优先级的N个最长队列,该第一队列的优先级为该第一优先级,当该第一优先级为该多个队列的优先级中的最低优先级时,N为大于0的整数,当该第一优先级为该多个队列的优先级中的非最低优先级时,N为大于或等于0的整数;
该第一队列的长度达到或超过预设长度阈值。
其中,该预设长度阈值可以是该接收端设备的所有队列的长度的均值,第一优先级的N个最长队列也即是该第一优先级的所有队列中的topN个最长队列,该N个最长队列的长度可以相等也可以不相等,该第一优先级的N个最长队列的含义可以是:如果按照长度从大到小的顺序对该第一优先级的所有队列排序,该第一优先级的N个最长队列可以是该第一优先级的所有队列中排序在最前面的N个队列;如果按照长度从小到大的顺序对该第一优先级的所有队列排序,该第一优先级的N个最长队列可以是该第一优先级的所有队列中排序在最后面的N个队列。
本申请实施例提供的技术方案,当预设开启指标包括:接收端设备的多个队列对该接收端设备的缓存空间的占用量达到或超出第一队列的开启反压水线值,该第一队列属于该接收端设备的多个队列中第一优先级的N个最长队列,且该第一队列的长度达到或超过预设长度阈值时,可以保证对最长队列反压,从而保证拥塞控制的可靠性。
在本申请实施例中,可以按照优先级的高低确定是否进行反压控制以及根据优先级的高低确定需要反压的队列的数量,对于优先级最高的队列,可以不进行反压,如果需要同时反压多个不同优先级的队列,需要反压的该多个优先级的队列的数量可以按照该多个优先级从低到高依次减小,也即是,优先级越低,反压的队列的数量越多,优先级越高,反压的队列的数量越高。示例地,接收端设备具有pri_1~pri_8(也即是pri_1、pri_2、pri_3、pri_4、pri_5、pri_6、pri_7和pri_8)这8个优先级的队列,pri_1~pri_8这8个优先级依次升高,对于优先级为pri_8的队列,可以不设置反压水线值,从而可以不对该pri_8的队列进行反压(当然也可以对优先级为pri_8的队列设置反压水线值以用于反压)。再示例地,假设需要同时反压pri_2和pri_3这两个不同优先级的队列,pri_3高于pri_2,则需要反压的队列中,优先级为pri_2的队列的数量可以大于优先级为pri_3的队列的数量。例如,优先级为pri_2的队列的数量可以为g,优先级为pri_3的队列的数量可以为0.8×g。在一些实施例中,需要反压的队列中,最低优先级的队列包括4个最长队列,中优先级的队列包括4个最长队列,最高优先级的队列可以包括2个或0个最长队列。在该场景下,可以优先对低优先级的最长队列开启拥塞控制(也即是反压),保证较高优先级的队列的时延和吞吐量。
可选地,通知发送端设备对该发送端设备中与第一队列对应的目标队列开启拥塞控制,包括:向发送端设备发送开启控制消息,该开启控制消息指示该发送端设备对目标队列开启拥塞控制。其中,该开启控制消息可以携带目标队列的标识和使能标志位,该目标队列的标识指示该目标队列,该使能标志位指示发送端设备开启拥塞控制,从而该开启控制消息指示发送端设备对目标队列开启拥塞控制。可选地,接收端设备可以以广播的形式向发送端设备发送该开启控制消息。
可选地,在通知发送端设备对该发送端设备中与第一队列对应的目标队列开启拥塞控制之后,该方法还包括:当该第一队列满足预设关闭指标时,通知该发送端设备对该发送端设备的该目标队列关闭拥塞控制;其中,该预设关闭指标包括:该接收端设备的多个队列对该接收端设备的缓存空间的占用量小于该第一队列的关闭反压水线值。
本申请实施例提供的技术方案,接收端设备在第一队列满足预设关闭指标时通知发送端设备对该发送端设备中与该第一队列对应的目标队列关闭拥塞控制,可以提高拥塞控制的灵活性,保证通信网络的吞吐量。
可选地,该预设关闭指标还包括以下一个或多个:
该接收端设备的多个队列对接收端设备的缓存空间的占用量小于第一队列的关闭反压水线值的时长达到或超过预设时长阈值;
该第一队列不属于该接收端设备的多个队列中第一优先级的N个最长队列,该第一队列的优先级为该第一优先级,当该第一优先级为该多个队列的优先级中的最低优先级时,N为大于0的整数,当该第一优先级为该多个队列的优先级中的非最低优先级时,N为大于或等于0的整数;
该第一队列的长度小于预设长度阈值。
可选地,在通知发送端设备对该发送端设备中与该第一队列对应的目标队列开启拥塞控制之后,该方法还包括:为该目标队列分配发送信用值;向发送端设备发送包含该发送信用值的消息,以使该发送端设备按照该发送信用值向该接收端设备发送该目标队列中的报文。
本申请实施例提供的技术方案,发送端设备按照接收端设备为目标队列分配发送信用值,发送目标队列中的报文,可以在发送端设备中对拥塞进行主动控制。
可选地,该方法还包括:根据该接收端设备的多个队列对接收端设备的缓存空间的占用量,调整该目标队列的发送信用值的分配系数,该分配系数与该接收端设备的多个队列对该接收端设备的缓存空间的占用量负相关。
本申请实施例提供的技术方案,接收端设备根据接收端设备的多个队列对该接收端设备的缓存空间的占用量调整该目标队列的发送信用值的分配系数,这样一来,接收端设备可以以调整后的分配系数为该目标队列分配发送信用值,接收端设备每次为目标队列分配发送信用值时,以当前时刻目标队列的发送信用值的分配系数为该目标队列分配发送信用值,可以提高发送信用值分配的灵活性,使得发送端设备根据接收端设备的缓存空间的被占用量对拥塞进行灵活控制。
可选地,该接收端设备的多个队列中的每个队列具有反压水线值,不同优先级的队列的反压水线值不同,该方法还包括:当该接收端设备的多个队列对接收端设备的缓存空间的占用量达到或超出该接收端设备的最小水线阈值时,调整该接收端设备的各个优先级的队列的反压水线值。
本申请实施例提供的技术方案,接收端设备通过调整各个优先级的队列的反压水线值,使得能够以调整后的反压水线值为依据判断接收端设备是否拥塞,也即是,接收端设备每次判断是否拥塞时,以当前时刻的反压水线值进行判断,有助于提高拥塞控制的灵活性。
可选地,该反压水线值包括开启反压水线值和关闭反压水线值,调整接收端设备的各个优先级的队列的反压水线值,包括:对于任一优先级的队列:根据接收端设备的最大水线阈值、该接收端设备的最小水线阈值,低于该任一优先级的所有优先级的队列对该接收端设备的缓存空间的占用量,以及该接收端设备的所有队列对该接收端设备的缓存空间的占用量,调整该任一优先级的队列的开启反压水线值;根据该任一优先级的队列的开启反压水线值,调整该任一优先级的队列的关闭反压水线值。
可选地,任一优先级的队列对接收端设备的缓存空间的占用量与低于该任一优先级的所有优先级的队列对该接收端设备的缓存空间的占用量负相关,该任一优先级的队列的开启反压水线值与该任一优先级的队列对该接收端设备的缓存空间的占用量负相关;该任一优先级的队列的开启反压水线值大于或等于低于该任一优先级的所有优先级的队列的开启反压水线值。也即是,如果低于任一优先级的所有优先级的队列对接收端设备的缓存空间的占用量较大,则该任一优先级的队列对接收端设备的缓存空间的占用量相对较小,该任一优先级的队列越不容易反压,该任一优先级的队列的开启反压水线值越大,优先级越高的队列,开启反压水线值越大,优先级越低的队列,开启反压水线值越小。在一些实施例中,高优先级的最长队列的数量少于低优先级的最长队列的数量,在另一些实施例中,高优先级的最长队列的数量可以是0。
本申请实施例提供的技术方案,由于任一优先级的队列对接收端设备的缓存空间的占用量与低于该任一优先级的所有优先级的队列对该接收端设备的缓存空间的占用量负相关,该任一优先级的队列的开启反压水线值与该任一优先级的队列对该接收端设备的缓存空间的占用量负相关,该任一优先级的队列的开启反压水线值大于或等于低于该任一优先级的所有优先级的队列的开启反压水线值,因此,该任一优先级的队列的开启反压水线值与低于该任一优先级的所有优先级的队列对该接收端设备的缓存空间的占用量正相关,该任一优先级的队列的开启反压水线值与低于该任一优先级的所有优先级的队列的开启反压水线值正相关,这样一来,可以避免高优先级的队列过早受控影响高优先级的队列的性能,又可以避免高优先级的队列受控过晚。
可选地,根据接收端设备的最大水线阈值、该接收端设备的最小水线阈值,低于该任一优先级的所有优先级的队列对该接收端设备的缓存空间的占用量,以及该接收端设备的所有队列对该接收端设备的缓存空间的占用量,调整该任一优先级的队列的开启反压水线值,包括:根据该最大水线阈值、该最小水线阈值,低于该任一优先级的所有优先级的队列对该接收端设备的缓存空间的占用量,以及该接收端设备的所有队列对该接收端设备的缓存空间的占用量,采用水线值公式计算该任一优先级的队列的开启反压水线值;根据计算结果调整该任一优先级的队列的开启反压水线值;其中,该水线值公式为:
Vo_pri_k表示优先级为pri_k的队列的开启反压水线值,B_pri_i表示优先级为pri_i的所有队列对接收端设备的缓存空间的占用量,B_total表示接收端设备的所有队列对接收端设备的缓存空间的占用量,V_max表示最大水线阈值,V_min表示最小水线阈值。
可选地,该反压水线值包括开启反压水线值和关闭反压水线值,调整该接收端设备的各个优先级的队列的反压水线值,包括:对于任一优先级的队列:根据该任一优先级的所有队列对该接收端设备的缓存空间的占用量以及该缓存空间的大小,调整该任一优先级的队列的开启反压水线值,该任一优先级的队列的开启反压水线值与该任一优先级的所有队列对该接收端设备的缓存空间的占用量负相关;根据该任一优先级的队列的开启反压水线值,调整该任一优先级的队列的关闭反压水线值。
可选地,该反压水线值包括开启反压水线值和关闭反压水线值,调整该接收端设备的各个优先级的队列的反压水线值,包括:对于任一优先级的队列:根据该任一优先级的M个最长队列的时延均值和该接收端设备的所有优先级的所有最长队列的时延均值,调整该任一优先级的队列的开启反压水线值,M为大于0的整数;根据该任一优先级的队列的开启反压水线值,调整该任一优先级的队列的关闭反压水线值。
可选地,该方法还包括:在目标时长内接收端设备的所有队列对该接收端设备的缓存空间的最大占用量大于该最小水线阈值且小于该最大水线阈值与第一门限值的差值,或者,该最大占用量大于该最大水线阈值与第二门限值的差值时,调整该最小水线阈值。
本申请实施例提供的技术方案,通过调整最小水线阈值,可以尽量避免或减少主动拥塞控制,保证高吞吐,低时延。
第二方面,提供了一种拥塞控制方法,该方法包括:根据接收端设备的通知对发送端设备的目标队列开启拥塞控制,该接收端设备的每个队列与该发送端设备中的一个或多个队列对应,该目标队列与该接收端设备的第一队列对应;其中,该接收端设备在该第一队列满足预设开启指标时通知该发送端设备对该目标队列开启拥塞控制,该预设开启指标包括:该接收端设备的多个队列对该接收端设备的缓存空间的占用量达到或超出该第一队列的开启反压水线值。
本申请实施例提供的技术方案,接收端设备在第一队列满足预设开启指标时通知发送端设备对该发送端设备中与该第一队列对应的目标队列开启拥塞控制,该拥塞控制方案有助于解决目前通信网络的拥塞问题,有助于提高通信网络的资源利用率以及传输质量,并且该拥塞控制方案的灵活性较高,可以保证通信网络的吞吐量。
可选地,该预设开启指标还包括以下一个或多个:
该第一队列属于该接收端设备的多个队列中第一优先级的N个最长队列,该第一队列的优先级为该第一优先级,当该第一优先级为该多个队列的优先级中的最低优先级时,N为大于0的整数,当该第一优先级为该多个队列的优先级中的非最低优先级时,N为大于或等于0的整数;
该第一队列的长度达到或超过预设长度阈值。
本申请实施例提供的技术方案,当预设开启指标包括:接收端设备的多个队列对该接收端设备的缓存空间的占用量达到或超出第一队列的开启反压水线值,该第一队列属于该接收端设备的多个队列中第一优先级的N个最长队列,且该第一队列的长度达到或超过预设长度阈值时,可以保证对最长队列反压,从而保证拥塞控制的可靠性。
可选地,根据接收端设备的通知对发送端设备的目标队列开启拥塞控制,包括:接收接收端设备发送的开启控制消息,该开启控制消息指示发送端设备对目标队列开启拥塞控制;根据该开启控制消息对该目标队列开启拥塞控制。其中,该开启控制消息可以携带目标队列的标识和使能标志位,该目标队列的标识指示该目标队列,该使能标志位指示发送端设备开启拥塞控制,从而该开启控制消息指示发送端设备对目标队列开启拥塞控制。发送端设备可以解析该开启控制消息得到使能标志位以及目标队列的标识,根据该使能标志位确定需要开启拥塞控制,根据目标队列的标识确定目标队列,从而根据该开启控制消息对该目标队列开启拥塞控制。
可选地,在根据接收端设备的通知对发送端设备的目标队列开启拥塞控制之后,该方法还包括:根据接收端设备的通知对发送端设备的目标队列关闭拥塞控制;其中,接收端设备在第一队列满足预设关闭指标时通知发送端设备对目标队列关闭拥塞控制,该预设关闭指标包括:该接收端设备的多个队列对该接收端设备的缓存空间的占用量小于第一队列的关闭反压水线值。
本申请实施例提供的技术方案,接收端设备在第一队列满足预设关闭指标时通知发送端设备对该发送端设备中与该第一队列对应的目标队列关闭拥塞控制,可以提高拥塞控制的灵活性,保证通信网络的吞吐量。
可选地,该预设关闭指标还包括以下一个或多个:
该接收端设备的多个队列对该接收端设备的缓存空间的占用量小于第一队列的关闭反压水线值的时长达到或超过预设时长阈值;
该第一队列不属于该接收端设备的多个队列中第一优先级的N个最长队列,该第一队列的优先级为该第一优先级,当该第一优先级为该多个队列的优先级中的最低优先级时,N为大于0的整数,当该第一优先级为该多个队列的优先级中的非最低优先级时,N为大于或等于0的整数;
该第一队列的长度小于预设长度阈值。
可选地,在根据接收端设备的通知对发送端设备的目标队列开启拥塞控制之后,该方法还包括:接收该接收端设备发送的包含发送信用值的消息;按照该发送信用值向该接收端设备发送目标队列中的报文。
本申请实施例提供的技术方案,发送端设备按照接收端设备为目标队列分配发送信用值发送目标队列中的报文,可以在发送端设备中对拥塞进行主动控制。
第三方面,提供一种拥塞控制装置,该拥塞控制装置包括一个或多个模块,该一个或多个模块用于实现上述第一方面或第一方面的任一可选方式所提供的拥塞控制方法。
第四方面,提供一种拥塞控制装置,该拥塞控制装置包括一个或多个模块,该一个或多个模块用于实现上述第二方面或第二方面的任一可选方式所提供的拥塞控制方法。
第五方面,提供一种拥塞控制装置,该拥塞控制装置包括:处理器和存储器,该存储器中存储有程序,该处理器用于执行存储器中存储的程序以实现上述第一方面或第一方面的任一可选方式所提供的拥塞控制方法。
第六方面,提供一种拥塞控制装置,该拥塞控制装置包括:处理器和存储器,该存储器中存储有程序,该处理器用于执行存储器中存储的程序以实现上述第二方面或第二方面的任一可选方式所提供的拥塞控制方法。
第七方面,提供一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面或第一方面的任一可选方式所提供的拥塞控制方法,或者,实现上述第二方面或第二方面的任一可选方式所提供的拥塞控制方法。
第八方面,提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第一方面或第一方面的任一可选方式所提供的拥塞控制方法,或者,实现上述第二方面或第二方面的任一可选方式所提供的拥塞控制方法。
第九方面,提供一种芯片,该芯片包括可编程逻辑电路和/或程序指令,当该芯片运行时用于实现上述第一方面或第一方面的任一可选方式所提供的拥塞控制方法,或者,实现上述第二方面或第二方面的任一可选方式所提供的拥塞控制方法。
第十方面,提供一种拥塞控制系统,包括:发送端设备和接收端设备,
该接收端设备用于:监控该接收端设备的多个队列,该接收端设备的每个队列与该发送端设备中的一个或多个队列对应;当该接收端设备的多个队列中的第一队列满足预设开启指标时,通知该发送端设备对该发送端设备中与该第一队列对应的目标队列开启拥塞控制;其中,该预设开启指标包括:该接收端设备的多个队列对该接收端设备的缓存空间的占用量达到或超出该第一队列的开启反压水线值;
该发送端设备用于:根据该接收端设备的通知对该发送端设备中与该第一队列对应的目标队列开启拥塞控制。
可选地,在一种可能的实现方式中,该发送端设备可以包括上述第四方面所提供的拥塞控制装置,该接收端设备可以包括上述第三方面所提供的拥塞控制装置;或者,
在另一种可能的实现方式中,该发送端设备可以包括上述第六方面所提供的拥塞控制装置,该接收端设备可以包括上述第五方面所提供的拥塞控制装置。
上述第三方面至第十方面的技术效果可以参考第一方面至第二方面,在此不再赘述。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例提供的技术方案,接收端设备监控接收端设备的多个队列,当该接收端设备的多个队列中的第一队列满足预设开启指标时,通知发送端设备对该发送端设备中与该第一队列对应的目标队列开启拥塞控制,发送端设备根据接收端设备的通知对目标队列开启拥塞控制。该拥塞控制方案有助于解决目前通信网络的拥塞问题,有助于提高通信网络的资源利用率以及传输质量。该拥塞控制方案结合主动拥塞控制和被动拥塞控制,使用被动拥塞控制感知拥塞后,通过对拥塞进行主动控制,可以从通信网络全网进行拥塞控制,且可以针对特定优先级的拥塞实现端到端的控制,在拥塞控制的过程中,可以灵活调整反压水线和发送信用值的分配系数等参数,且可以充分利用接收端设备的缓存空间,避免将瞬时拥塞的报文反压在发送端设备,保证发送端设备的吞吐量,从而保证该发送端设备下挂的工作站的吞吐量,提高拥塞控制的灵活性。该拥塞控制方案中,在发送端设备开启拥塞控制之前,无需考虑反压水线值和发送信用值,可以使得发送端设备的流量尽量push发送,开启拥塞控制之前让所有的队列都尽量的保持吞吐。
附图说明
图1是本申请实施例所涉及的一种实施环境的示意图;
图2是本申请实施例提供的一种拥塞控制方案中发送端设备的处理流程示意图;
图3是本申请实施例提供的一种拥塞控制方案中接收端设备的处理流程示意图;
图4是本申请实施例提供的一种拥塞控制方案的示意图;
图5是本申请实施例提供的一种拥塞控制方法的方法流程图;
图6是本申请实施例提供的一种拥塞控制的示意图;
图7是本申请实施例提供的一种不同优先级的队列对缓存空间的占用量的示意图;
图8是本申请实施例提供的一种调整任一优先级的队列的反压水线值的方法流程图;
图9是本申请实施例提供的另一种调整任一优先级的队列的反压水线值的方法流程图;
图10是本申请实施例提供再一种调整任一优先级的队列的反压水线值的方法流程图;
图11是本申请实施例提供的另一种拥塞控制的示意图;
图12是本申请实施例提供的一种拥塞控制装置的逻辑结构示意图;
图13是本申请实施例提供的另一种拥塞控制装置的逻辑结构示意图;
图14是本申请实施例提供的再一种拥塞控制装置的逻辑结构示意图;
图15是本申请实施例提供的又一种拥塞控制装置的逻辑结构示意图;
图16是本申请实施例提供的一种拥塞控制装置的硬件结构示意图;
图17是本申请实施例提供的一种拥塞控制系统的示意图。
具体实施方式
本申请实施例提供的拥塞控制方案的实施环境可以包括通信网络以及接入该通信网络的多个工作站。其中,该通信网络可以包括多个网络设备,工作站通过网络设备接入该通信网络,网络设备通过转发工作站的报文,实现不同工作站之间的通信。
其中,工作站可以是主机、终端、服务器或虚拟机等各种类型的设备。网络设备可以是交换机、路由器(router)、虚拟交换机或虚拟路由器等在通信网络中用于转发报文的设备,并且在同一通信网络中的网络设备可以是相同的网络设备,也可以是不同的网络设备。例如,同一通信网络中的所有网络设备均是路由器,或者,一部分网络设备是路由器,另一部分网络设备是交换机。
在本申请实施例中,该通信网络可以是数据中心网络(data center network,DCN)、城域网络、广域网络或园区网络等,本申请实施例对通信网络的类型不做限定。可选地,该通信网络可以是深度交叉网络(deep cross network,DCN)。
示例地,请参考图1,其示出了本申请实施例所涉及的一种实施环境的示意图,该实施环境包括通信网络01以及接入该通信网络01的多个工作站021~028(也即是工作站021、工作站022、工作站023、工作站024、工作站025、工作站026、工作站027和工作站028),该通信网络01包括网络设备01a1~01a2(也即是网络设备01a1和网络设备01a2)以及网络设备01b1~01b4(也即是网络设备01b1、网络设备01b2、网络设备01b3和网络设备01b4),并且该通信网络01可以包括汇聚层和接入层,汇聚层是该通信网络01的高速交换主干,接入层用于将工作站接入该通信网络01,如图1所示,网络设备01a1~01a2位于汇聚层,网络设备01b1~01b4位于接入层,工作站021~022通过网络设备01b1接入该通信网络01,工作站023~024通过网络设备01b2接入该通信网络01,工作站025~026通过网络设备01b3接入该通信网络01,工作站027~028通过网络设备01b4接入该通信网络01。
可选地,该图1所示的通信网络01可以为脊-叶(leaf-spine)拓扑网络,位于汇聚层的网络设备01a1~01a2可以为脊(spine)交换机,位于接入层的网络设备01b1~01b4可以为叶(leaf)交换机,每个spine交换机与所有的leaf交换机连接,每个leaf交换机与所有的spine交换机连接(也即是spine交换机与leaf交换机全互连)。
该图1所示实施环境仅用于举例,并非用于限制本申请实施例的技术方案,在实现过程中,该实施环境还可能包括其他设备,可以根据需要来配置网络设备的数量、工作站的数量以及网络设备的之间的连接关系,网络设备与工作站的连接关系,并且该通信网络的拓扑可以是其他拓扑。例如,spine交换机与leaf交换机可以不是全互连,再比如,汇聚层中的网络设备可以互连,又比如,通信网络还可以包括位于汇聚层之上的核心层,还比如,该图1所示的通信网络01是2级Clos网络,该通信网络还可以是3级Clos网络,本申请实施例在此不再赘述。
在本申请实施例中,每个网络设备具有一个或多个出端口,每个出端口具有一个或多个不同优先级的队列,每个出端口的一个队列用于缓存需要经由该出端口发送的一种优先级的报文,网络设备对于接收到的每个报文,通常会将该报文缓存至与该报文匹配的队列,并以一定速率发送该队列中的报文。可选地,每个出端口的队列的数量等于优先级的数量。示例地,以图1中的网络设备01b1为例,该网络设备01b1可以具有出端口1~出端口8(也即是出端口1、出端口2、出端口3、出端口4、出端口5、出端口6、出端口7和出端口8)这8个出端口,出端口1可以具有pri_1~pri_8这8个优先级的8个队列,该8个队列分别为队列1~8(也即是队列1、队列2、队列3、队列4、队列5、队列6、队列7和队列8),该队列1~8的优先级依次为pri_1、pri_2、pri_3、pri_4、pri_5、pri_6、pri_7和pri_8,该8个队列中,队列1用于缓存需要经由该出端口1发送的优先级为pri_1的报文,网络设备01b1对于接收到的需要经由该出端口1发送的优先级为pri_1的报文1,将该报文1缓存至该队列1,队列2用于缓存需要经由该出端口1发送的优先级为pri_2的报文,网络设备01b1对于接收到的需要经由该出端口1发送的优先级为pri_2的报文2,将该报文2缓存至该队列2,队列3用于缓存需要经由该出端口1发送的优先级为pri_3的报文,网络设备01b1对于接收到的需要经由该出端口1发送的优先级为pri_3的报文3,将该报文3缓存至该队列3,依次类推。
可选地,根据报文的发送方向,每个网络设备可以是发送端设备,也可以是接收端设备。例如,以图1为例,当网络设备01b1向网络设备01b4发送报文时,网络设备01b1为发送端设备,网络设备01b4为接收端设备;再例如,当网络设备01b4向网络设备01b1发送报文时,网络设备01b4为发送端设备,网络设备01b1为接收端设备;又例如,当网络设备01b1向网络设备01b4发送报文,且网络设备01b4向网络设备01b2发送报文时,网络设备01b1为发送端设备,网络设备01b2为接收端设备,网络设备01b4既是发送端设备又是接收端设备;还例如,当网络设备01b1和网络设备01b2均向网络设备01b4发送报文时,网络设备01b1和网络设备01b2均为发送端设备,网络设备01b4为接收端设备。
在本申请实施例中,发送端设备的每个队列可以映射到接收端设备的一个出端口上,发送端设备的每个队列可以与接收端设备的队列对应,发送端设备的每个队列中的报文到达接收端设备时,首先被接收端设备缓存至接收端设备中相应的队列中,并由接收端设备通过相应的出端口以一定速率发送该队列中的报文。示例地,发送端设备为网络设备01b1,接收端设备为网络设备01b4,网络设备01b1的队列1可以映射到网络设备01b4的一个出端口1上,且网络设备01b1的队列1与网络设备01b4的队列1对应,网络设备01b1的队列1中的报文1到达网络设备01b4时,首先被网络设备01b4缓存至网络设备01b4的队列1中,并由该网络设备01b4通过该网络设备01b4的出端口1以一定速率发送该报文。
随着通信网络规模的扩大以及视频、高性能云计算和消费者云业务等各种应用的普及,网络设备需要转发的流量暴涨,网络负载率(也即是网络利用率)、网络时延以及网络拥塞等成为通信网络面临的主要难题。例如,通信网络面临概率性、长期性丢包问题以及由于网络设备的缓存空间不足而引发的突发流量丢弃的问题。再例如,远程直接内存访问(remote direct memory access,RDMA)协议以及基于以太网的远程直接内存访问(RDMAover converged ethernet,RoCE)协议的通信网络对高性能云计算极为重要,这些通信网络目前存在网络时延以及网络拥塞等诸多问题。而在上述问题中,网络拥塞是当前通信网络的主要问题,网络拥塞不仅需要对通信网络进行带宽扩容,更重要的是需要对流量合理调度,以控制网络拥塞。因此亟需一种拥塞控制方案对通信网络进行拥塞控制。
本申请实施例提供的网络拥塞控制方案,可以结合主动拥塞控制方案和被动拥塞控制方案对通信网络进行拥塞控制,不仅有助于通信网络的拥塞问题,而且灵活性较好。其中,主动拥塞控制方案是一种采用端到端的探测估计或者请求应答的方式估算链路的拥塞程度进行对应带宽的估计或者发送信用值(credit)的分配,保证在通信网络不拥塞的情况下传输流量的方案,例如,远程调用(remote procedure call,RCP)方案、高精度拥塞控制(high precision congestion control,HPCC)方案以及Venus算法中的推拉(push andpull,PPOP)方案都属于主动拥塞控制方案。被动拥塞控制方案是一种在接收端设备进行网络拥塞被动感知并控制的方案,例如,显式拥塞通知(explicit congestionnotification,ECN)方案、策略功能卡(policy feature card)方案以及丢弃反压最长队列(drop and backpressure the longest queue,DBLQ)方案都属于被动拥塞控制方案。下面以PPOP方案和DBLQ方案为例对本申请实施例提供的主动拥塞控制方案和被动拥塞控制方案进行介绍。
首先对本申请实施例提供的主动拥塞控制方案进行介绍。
在主动拥塞控制方案中,发送端设备的队列可以是虚拟输出队列(virtualoutput queue,VOQ),例如可以是动态虚拟输出队列(dynamic virtual output queue,DVOQ),接收端设备的队列可以是请求流队列(request flow queue,RFQ)。图2和图3是本申请实施例提供的主动拥塞控制方案的示意图,其中,图2为发送端设备的处理流程示意图,图3为接收端设备的处理流程示意图。该图2和图3以发送端设备的队列为DVOQ为例说明。
参见图2,发送端设备对于接收到的报文,将该报文缓存至与该报文匹配的DVOQ,并更新DVOQ模块中存储的该DVOQ的队列信息。对于发送端设备的多个DVOQ,发送端设备按照严格优先级(strict priority,SP)调度不同优先级的DVOQ,按照轮询调度(round-robin,RR)调度同一优先级的DVOQ。对于调度到的DVOQ,发送端设备向接收端设备发送携带该DVOQ的队列信息的请求报文(request packet,REQ),以请求接收端设备为该DVOQ分配发送信用值。
其中,发送端设备可以查询队列映射表(例如DVOQ mapping table)确定与报文匹配的DVOQ,如果根据队列映射表无法确定与该报文匹配的DVOQ,发送端设备可以申请DVOQ资源以并新建DVOQ,将新建的DVOQ确定为与该报文匹配的DVOQ,如果申请不到DVOQ资源,发送端设备将该发送端设备的最高优先级的DVOQ确定为与该报文匹配的DVOQ。DVOQ的队列信息可以包括DVOQ的优先级、DVOQ的长度和DVOQ的标识等中的一个或多个,DVOQ的长度可以是虚拟队列长度(virtual queue length,VQL)。发送信用值可以为接收端设备本次能够调度的该目标队列中的报文数量,或者发送端设备本次可以发送的该目标队列中的报文数量,在一些实施场景中,发送信用值又称为队列信用值(queue credit,QC)。
如图2所示,对于发送端设备的多个DVOQ,SP1调度器优先调度最高优先级的多个DVOQ,将该发送端设备的出端口的带宽优先分配给最高优先级的DVOQ使用,并按照RR调用该最高优先级的多个DVOQ;SP1调度器将扣除最高优先级的DVOQ所占用的带宽之后的剩余带宽分配给SP2调度器,SP2调度器优先调度高优先级的多个DVOQ,将该剩余带宽优先分配给高优先级的DVOQ使用,并按照RR调用该高优先级的多个DVOQ;SP2调度器将该剩余带宽扣除该高优先级的DVOQ所占用的带宽之后的剩余带宽分配给低优先级的多个DVOQ使用,并按照RR调用该低优先级的多个DVOQ。
参见图3,接收端设备对于接收到的REQ,将该REQ缓存至与该REQ匹配的RFQ,并更新RFQ模块中存储的该RFQ的队列信息。对于接收端设备的多个RFQ,接收端设备按照SP调度不同优先级的RFQ,按照RR调度同一优先级的RFQ。对于调度到的RFQ中的任一REQ,接收端设备根据该REQ携带的DVOQ的队列信息为该DVOQ分配发送信用值,并向发送端设备发送携带该发送信用值的应答报文(acknowledge packet,ACK),以使发送端设备按照该发送信用值发送该DVOQ中的报文。
如图3所示,对于接收端设备的多个RFQ,SP1调度器优先调度最高优先级的多个RFQ,将该接收端设备的出端口的带宽优先分配给该最高优先级的RFQ使用,并按照RR调用该最高优先级的多个RFQ;SP1调度器将扣除该最高优先级的RFQ所占用的带宽之后的剩余带宽分配给SP2调度器,SP2调度器优先调度高优先级的多个RFQ,将该剩余带宽优先分配给该高优先级的RFQ使用,并按照RR调用该高优先级的多个RFQ;SP2调度器将该剩余带宽扣除高优先级的RFQ所占用的带宽之后的剩余带宽分配给低优先级的多个RFQ使用,并按照RR调用该低优先级的多个RFQ。
需要说明的是,在该主动拥塞控制方案中,各个网络设备配置有一定量的初始信用值,通信网络启动后,发送端设备根据该发送端设备的初始信用值先向接收端设备push(推)一定流量,之后根据DVOQ的队列信息向接收端设备发送REQ,以请求接收端设备为该接收端设备分配发送信用值。
主动拥塞控制方案是一种端到端的拥塞控制方案,该主动拥塞控制方案通过尝试来避免拥塞,可以控制流量爆发(burst)从发送端设备到接收端设备,该主动拥塞控制方案中,发送端设备向接收端设备发送REQ,接收端设备根据调度能力向发送端设备回复携带发送信用值的ACK,使发送端设备根据该发送信用值进行有控制的发包,从而实现拥塞控制。
以上为本申请实施例提供的主动拥塞控制方案的介绍,介绍完主动拥塞控制方案,接着对本申请实施例提供的被动拥塞控制方案进行介绍。
请参考图4,其示出了本申请实施例提供的被动拥塞控制方案的示意图。在被动拥塞控制方案中,接收端设备对于接收到的每个报文(例如REQ),将该报文缓存至接收端设备中的与该报文匹配的队列,根据该接收端设备的所有队列在该接收端设备的缓存空间的占用量确定该接收端设备是否拥塞,在该接收端设备拥塞时,按照优先级从低到高的顺序对各个优先级的队列中的最长队列进行反压(也即是按照优先级从低到高的顺序丢弃各个优先级的队列中的最长队列中的报文),以此来对通信网络进行被动拥塞控制。例如,接收端设备优先丢弃最低优先级的多个队列中最长队列中的报文,若丢弃最低优先级的最长队列中的报文后,接收端设备的拥塞没有有效控制,接收端设备丢弃次低优先级的多个队列中最长队列中的报文,依次类推。在本申请实施例中,接收端设备的缓存空间可以是缓冲区(buffer),按照该缓存空间的被占用量,该缓存空间可以包括安全区和禁止区,接收端设备可以根据该缓存空间的被占用量所处区域来确定该接收端设备是否拥塞,若该缓存空间的被占用量处于安全区,接收端设备确定该接收端设备没有发生拥塞,若该缓存空间的被占用量处于禁止区,接收端设备确定该接收端设备发生拥塞。可选地,安全区可以是缓存空间的被占用量小于或等于该缓存空间的大小的90%的区域,禁止区可以是缓存空间的被占用量大于该缓存空间的大小的90%的区域。
被动拥塞控制方案可以由接收端设备感知网络拥塞,当缓存空间的被占用量较高(也即是感知到网络拥塞)时按照优先级从低到高的顺序丢弃各个优先级的队列中的最长队列中的报文,可以最大化的利用缓存空间的资源减少流量的等待时延,对缓存空间的利用率较高,可以降低由于拥塞导致的丢包率问题,保证通信网络的吞吐量。
以上为本申请实施例提供的主动拥塞控制方案和被动拥塞控制方案的介绍,介绍完主动拥塞控制和被动拥塞控制方案,下面对本申请实施例提供的结合主动拥塞控制和被动拥塞控制方案进行拥塞控制的方案进行介绍。本申请实施例结合主动拥塞控制方案和被动拥塞控制方案对通信网络进行拥塞控制,不仅可以解决通信网络的拥塞问题,而且灵活性较好。
请参考图5,其示出了本申请实施例提供的一种拥塞控制方法的方法流程图,该拥塞控制方法可以应用于通信网络,该通信网络可以包括多个网络设备,本申请实施例以该多个网络设备包括发送端设备和接收端设备为例说明。参见图5,该方法可以包括如下步骤:
步骤501、接收端设备为接收端设备的队列设置反压水线值,该反压水线值包括开启反压水线值和关闭反压水线值。其中,接收端设备的每个队列与发送端设备中的一个或多个队列对应。
在本申请实施例中,通信网络中的每个网络设备可以具有一个或多个出端口,每个出端口可以具有一个或多个优先级的队列,若每个出端口具有多个优先级的队列,该多个优先级可以不同,每个网络设备的每个队列与该通信网络中的一个或多个其他网络设备的一个或多个队列对应。每个网络设备可以为该网络设备中的队列设置反压水线值,以在该网络设备发生拥塞时供反压控制使用。在每个网络设备中,每个队列可以具有一个优先级,网络设备可以为该网络设备的每个优先级的队列设置反压水线值,或者,网络设备不为该网络设备的最高优先级的队列设置反压水线值,为除该最高优先级之外的其他优先级的队列设置反压水线值,本申请实施例对此不做限定。在本申请实施例中,不同优先级的队列的反压水线值可以不同,相同优先级的所有队列的反压水线值可以相同,每个优先级的队列的反压水线值可以称为该优先级对应的反压水线值。其中,该反压水线值可以包括开启反压水线值和关闭反压水线值,每个优先级的队列的开启反压水线值可以称为该优先级对应的开启反压水线值,每个优先级的队列的关闭反压水线值可以称为该优先级对应的关闭反压水线值。
可选地,在每个网络设备中,相同优先级的所有队列的反压水线值相同,不同优先级的队列的反压水线值不同,不同优先级的队列的开启反压水线值按照该不同优先级从低到高增大,不同优先级的队列的关闭反压水线值按照该不同优先级从低到高增大。也即是,优先级越低的队列,其开启反压水线值和关闭反压水线值越小,优先级越高的队列,其开启反压水线值和关闭反压水线值越大。
本申请实施例中的接收端设备可以是通信网络中的任一网络设备,因此,该接收端设备具有一个或多个出端口,每个出端口可以具有一个或多个优先级的队列,该接收端设备可以为该接收端设备的队列设置反压水线值,该反压水线值包括开启反压水线值和关闭反压水线值。其中,接收端设备的每个队列与发送端设备中的一个或多个队列对应。
可选地,本申请实施例以接收端设备为该接收端设备的每个优先级的队列设置反压水线值为例进行说明。接收端设备的所有队列可以存储在接收端设备的缓存空间中,接收端设备可以根据该接收端设备的缓存空间的大小为该接收端设备设置最大水线阈值和最小水线阈值,根据该最大水线阈值和该最小水线阈值为该接收端设备的每个优先级的队列设置开启反压水线值,根据每个优先级的队列的开启反压水线值为该每个优先级的队列设置关闭反压水线值。其中,每个优先级的队列的开启反压水线值与关闭反压水线值之间的差值可以为定值。示例地,该定值可以为10。
可选地,接收端设备根据该接收端设备的缓存空间的大小为该接收端设备设置最大水线阈值和最小水线阈值可以包括:接收端设备将该接收端设备的缓存空间的大小与第一系数的乘积确定为该接收端设备的最大水线阈值,将该接收端设备的缓存空间的大小与第二系数的乘积确定为该接收端设备的最小水线阈值,并为该接收端设备设置该最大水线阈值和最小水线阈值,其中,该第一系数大于该第二系数,该第一系数大于0且小于0.85,该第二系数大于0且小于0.7。示例地,该第一系数可以为0.8,该第二系数可以为0.5。
可选地,接收端设备根据该最大水线阈值和该最小水线阈值为该接收端设备的每个优先级的队列设置开启反压水线值可以包括:接收端设备将该最大水线阈值设置为该接收端设备的最高优先级的队列的开启反压水线值,将该最小水线阈值设置为该接收端设备的最低优先级的队列的开启反压水线值,对于该最高优先级和该最低优先级之间的任一优先级,接收端设备可以根据低于该任一优先级的前一优先级的队列的开启反压水线值,该最大水线阈值、该最小水线阈值和该接收端设备的优先级的数量(也即是该接收端设备的所有队列的优先级的数量),为该任一优先级的队列设置开启反压水线值(也即是设置该任一优先级对应的开启反压水线值),例如,接收端设备可以根据该最大水线阈值、该最小水线阈值和该接收端设备的优先级的数量确定一定值,将低于该任一优先级的前一优先级的队列的开启反压水线值与该定值之和确定为该任一优先级的开启反压水线值。
示例地,以第一系数为0.8,第二系数为0.5为例,接收端设备可以采用初值配置公式为该接收端设备的每个优先级的队列设置开启反压水线值,其中,该初值配置公式为:
B_size表示接收端设备的缓存空间的大小,V_max表示接收端设备的最大水线阈值,V_min表示接收端设备的最小水线阈值,Vo_pri_min表示接收端设备的最低优先级的队列的开启反压水线值,Vo_pri_max表示接收端设备的最高优先级的队列的开启反压水线值,Vo_pri_k表示优先级为pri_k的队列的开启反压水线值,Vo_pri_(k-1)表示优先级为pri_(k-1)的队列的开启反压水线值,也即是低于优先级pri_k的前一优先级的队列的开启反压水线值,Q_pri表示接收端设备的优先级的数量。
示例地,请参考图6,其示出了本申请实施例提供的一种拥塞控制的示意图,参见图6,接收端设备具有pri_1~pri_8这8个优先级的队列,优先级为pri_1的队列的开启反压水线为Vo_pri_1,关闭反压水线为Vc_pri_1,优先级为pri_2的队列的开启反压水线为Vo_pri_2,关闭反压水线为Vc_pri_2,优先级为pri_3的队列的开启反压水线为Vo_pri_3,关闭反压水线为Vc_pri_3,依次类推,优先级为pri_8的队列的开启反压水线为Vo_pri_8,关闭反压水线为Vc_pri_8,优先级pri_1~pri_8依次升高,Vo_pri_1~Vo_pri_8依次增大,Vc_pri_1~Vc_pri_8依次增大,也即是,优先级越低的队列,其开启反压水线值和关闭反压水线值越小,优先级越高的队列,其开启反压水线值和关闭反压水线值越大。
步骤502、接收端设备监控接收端设备的多个队列。
可选地,根据步骤501可知,该接收端设备的多个队列中的每个队列具有一个优先级,该接收端设备的多个队列中属于同一优先级的队列可以有多个。接收端设备可以监控该接收端设备的多个队列,确定该接收端设备的多个队列中每个队列的长度,该接收端设备的多个队列对该接收端设备的缓存空间的占用量,该接收端设备的多个队列中每个优先级的所有队列对该接收端设备的缓存空间的占用量等等。
可选地,接收端设备可以记录有该接收端设备的多个队列中每个队列的长度,每个优先级的所有队列对该接收端设备的缓存空间的占用量,以及,该接收端设备的所有队列(所有优先级的所有队列)对该接收端设备的缓存空间的占用量,该接收端设备每接收到一个报文,可以根据该报文的目的端口号和优先级等信息,将该报文缓存至该接收端设备中相应的队列(例如目标端口的队列中与该报文的优先级相同的队列),根据该报文的大小更新该相应队列的长度,更新优先级为该报文的优先级的所有队列对该接收端设备的缓存空间的占用量,以及更新该接收端设备的所有队列对该接收端设备的缓存空间的占用量。
可选地,第一队列可以是该接收端设备的多个队列中的一个,该第一队列的优先级可以为第一优先级,接收端设备可以记录有该第一队列的长度,该第一优先级的所有队列对该接收端设备的缓存空间的占用量,以及,该接收端设备的所有队列对该接收端设备的缓存空间的占用量,该接收端设备对于接收到的第一报文,可以根据该第一报文的目的端口号和优先级等信息将该报文缓存至该第一队列,根据该第一报文的大小更新该第一队列的长度,更新该第一优先级的所有队列对该接收端设备的缓存空间的占用量,以及更新该接收端设备的所有队列对该接收端设备的缓存空间的占用量。
示例地,请参考图7,其示出了本申请实施例提供的一种接收端设备中不同优先级的队列对该接收端设备的缓存空间的占用量的示意图,如图7所示,B_size表示接收端设备的缓存空间的大小,该接收端设备具有pri_1~pri_8这8个优先级的队列,优先级为pri_1的所有队列对该接收端设备的缓存空间的占用量B_pri_1,优先级为pri_2的所有队列对该接收端设备的缓存空间的占用量B_pri_2,优先级为pri_3的所有队列对该接收端设备的缓存空间的占用量B_pri_3,依次类推。假设pri_1~pri_8这8个优先级的中每个优先级的队列的数量为10个,该接收端设备可以记录有该8个优先级的80个队列中每个队列的长度,该80个队列对该接收端设备的缓存空间的占用量B_total,优先级为pri_1的10个队列对该接收端设备的缓存空间的占用量B_pri_1,优先级为pri_2的10个队列对该接收端设备的缓存空间的占用量B_pri_2,优先级为pri_3的10个队列对该接收端设备的缓存空间的占用量B_pri_3等等。第一队列可以是该80个队列中的队列1,第一优先级可以是pri_1,该接收端设备对于接收到的报文1,可以根据该报文1的目的端口号和优先级等信息将该报文1缓存至该队列1,根据该报文1的大小更新该队列1的长度,更新优先级为pri_1的10个队列对该接收端设备的缓存空间的占用量B_pri_1,以及更新该80个的队列对该接收端设备的缓存空间的占用量B_total。
步骤503、当该接收端设备的多个队列中的第一队列满足预设开启指标时,接收端设备通知发送端设备对该发送端设备中与该第一队列对应的目标队列开启拥塞控制。
在本申请实施例中,接收端设备在监控该接收端设备的多个队列的过程中,可以检测该接收端设备的多个队列中的每个队列是否满足预设开启指标,当该每个队列满足该预设开启指标时,该接收端设备通知发送端设备对该发送端设备中与该每个队列对应的队列开启拥塞控制。
在本申请实施例中,第一队列可以是该接收端设备的多个队列中的一个,因此接收端设备在监控该接收端设备的多个队列的过程中,可以检测该第一队列是否满足预设开启指标,当该第一队列满足该预设开启指标时,该接收端设备通知发送端设备对该发送端设备中与该第一队列对应的目标队列开启拥塞控制。其中,该预设开启指标包括:该接收端设备的多个队列对该接收端设备的缓存空间的占用量达到或超出第一队列的开启反压水线值。
可选地,该预设开启指标还可以包括以下一个或多个:
该第一队列属于该接收端设备的多个队列中第一优先级的N个最长队列,该第一队列的优先级为该第一优先级,当该第一优先级为该多个队列的优先级中的最低优先级时,N为大于0的整数,当该第一优先级为该多个队列的优先级中的非最低优先级时,N为大于或等于0的整数;
该第一队列的长度达到或超过预设长度阈值。
可选地,该预设开启指标包括:该接收端设备的多个队列对该接收端设备的缓存空间的占用量达到或超出第一队列的开启反压水线值,该第一队列属于该接收端设备的多个队列中第一优先级的N个最长队列,以及该第一队列的长度达到或超过预设长度阈值。也即是,该第一队列同时满足:该接收端设备的多个队列对该接收端设备的缓存空间的占用量达到或超出第一队列的开启反压水线值,该第一队列属于该接收端设备的多个队列中第一优先级的N个最长队列,以及该第一队列的长度达到或超过预设长度阈值,接收端设备通知发送端设备对该发送端设备中与该第一队列对应的目标队列开启拥塞控制。
其中,该预设长度阈值可以是该接收端设备的所有队列的长度的均值,例如接收端设备总有具有80个队列,该预设长度阈值可以是该80个队列的长度的均值。第一优先级的N个最长队列也即是第一优先级的所有队列中的topN个最长队列,该N个最长队列的长度可以相等也可以不相等,该第一优先级的N个最长队列的含义可以是:如果按照长度从大到小的顺序对该第一优先级的所有队列排序,该第一优先级的N个最长队列可以是该第一优先级的所有队列中排序在最前面的N个队列;如果按照长度从小到大的顺序对该第一优先级的所有队列排序,该第一优先级的N个最长队列可以是该第一优先级的所有队列中排序在最后面的N个队列。例如,N=5,第一优先级的队列总共有10个,该10个队列分别为队列1、队列2、队列3、队列4、队列5、队列6、队列7、队列8、队列9、队列10,按照长度从大到小的顺序对该10个队列排序得到的结果可以为:队列1、队列2、队列5、队列4、队列3、队列6、队列7、队列8、队列9、队列10,则该第一优先级的N个最长队列可以是排序在最前面的5个队列,分别为队列1、队列2、队列5、队列4和队列3,按照长度从小到大的顺序对该10个队列排序得到的结果可以为:队列10、队列9、队列8、队列7、队列6、队列3、队列4、队列5、队列2、队列1,则该第一优先级的N个最长队列可以是排序在最后面的5个队列,分别为队列1、队列2、队列5、队列4和队列3。
可选地,接收端设备通知发送端设备对该发送端设备中与该第一队列对应的目标队列开启拥塞控制可以包括:接收端设备向该发送端设备发送开启控制消息,该开启控制消息指示该发送端设备对该目标队列开启拥塞控制。可选地,该开启控制消息可以携带目标队列的标识和使能标志位,该目标队列的标识指示该目标队列,该使能标志位指示发送端设备开启拥塞控制,从而该开启控制消息指示发送端设备对目标队列开启拥塞控制。可选地,该开启控制消息还可以携带发送端设备的标识,以使发送端设备根据该发送端设备的标识确定该开启控制消息是发往该发送端设备的(也即是该发送端设备的标识指示该开启控制消息的接收者)。可选地,接收端设备可以以广播的形式向发送端设备发送该开启控制消息,例如,该接收端设备向该接收端设备的所有发送端设备广播该开启控制消息。
可选地,在本申请实施例中,接收端设备可以按照优先级的高低确定是否进行反压控制以及根据优先级的高低确定需要反压的队列的数量,对于优先级最高的队列,可以不进行反压,如果需要同时反压多个不同优先级的队列,需要反压的该多个优先级的队列的数量可以按照该多个优先级从低到高依次减小,也即是,优先级越低,反压的队列的数量越多,优先级越高,反压的队列的数量越高。
示例地,请继续参考图6,接收端设备具有pri_1~pri_8这8个优先级的队列,pri_1~pri_8这8个优先级依次升高,可以不对该pri_8的队列进行反压。再示例地,假设需要同时反压pri_1~pri_8这8个不同优先级的队列,则需要反压的队列中,各个优先级队列的数量按照优先级从低到高依次减小,例如,pri_3高于pri_2,则需要反压的队列中,优先级为pri_2的队列的数量可以大于优先级为pri_3的队列的数量,优先级为pri_2的队列的数量可以为g,优先级为pri_3的队列的数量可以为0.8×g,优先级为pri_2的g个队列属于该优先级为pri_2的所有队列中的N个最长队列。在一些实施例中,高优先级队列的最长队列少于低优先级队列的最长队列数量,在另一些实施例中,高优先级队列的最长队列数量可以是0。可选地,在一些实施例中,需要反压的队列中,最低优先级的队列包括4个最长队列,中优先级的队列包括4个最长队列,最高优先级的队列可以包括2个或0个最长队列。在该场景下,可以优先对低优先级的最长队列反压,保证较高优先级的队列的时延和吞吐量。
步骤504、发送端设备根据接收端设备的通知对该发送端设备的目标队列开启拥塞控制。
可选地,根据步骤503可知,接收端设备在接收端设备的第一队列满足预设开启指标时通知发送端设备对目标队列开启拥塞控制,该目标队列与该接收到设备的第一队列对应。其中,该预设开启指标包括:该接收端设备的多个队列对该接收端设备的缓存空间的占用量达到或超出该第一队列的开启反压水线值。
可选地,该预设开启指标还可以以下一个或多个:
该第一队列属于该接收端设备的多个队列中第一优先级的N个最长队列,该第一队列的优先级为该第一优先级,当该第一优先级为该多个队列的优先级中的最低优先级时,N为大于0的整数,当该第一优先级为该多个队列的优先级中的非最低优先级时,N为大于或等于0的整数;
该第一队列的长度达到或超过预设长度阈值。
可选地,发送端设备根据接收端设备的通知对该发送端设备的目标队列开启拥塞控制可以包括:发送端设备接收该接收端设备发送的开启控制消息,根据该开启控制消息对该目标队列开启拥塞控制,其中,该开启控制消息指示该发送端设备对该目标队列开启拥塞控制。可选地,该开启控制消息可以携带目标队列的标识和使能标志位,该目标队列的标识指示该目标队列,该使能标志位指示发送端设备开启拥塞控制,从而该开启控制消息指示发送端设备对目标队列开启拥塞控制。可选地,该开启控制消息还可以携带该发送端设备的标识,该发送端设备的标识指示该开启控制消息的接收者。发送端设备可以解析该开启控制消息得到发送端设备的标识、使能标志位以及目标队列的标识,根据该发送端设备的标识确定该开启控制消息是发往该发送端设备的,根据该使能标志位确定需要开启拥塞控制,根据目标队列的标识确定目标队列,从而根据该开启控制消息对该目标队列开启拥塞控制。
步骤505、接收端设备为目标队列分配发送信用值。
接收端设备通知发送端设备对该发送端设备中的目标队列开启拥塞控制之后,可以为该目标队列分配发送信用值,以使发送端设备按照该发送信用值向接收端设备发送该目标队列中的报文。其中,该发送信用值可以为接收端设备本次能够调度的该目标队列中的报文数量,或者发送端设备本次可以发送的该目标队列中的报文数量,接收端设备可以根据自身的调度能力为该目标队列分配发送信用值。一些实施场景中,该发送信用值也可以称为队列信用值。
可选地,发送端设备根据接收端设备的通知对该发送端设备中的目标队列开启拥塞控制之后,可以向接收端设备发送包含该目标队列的队列信息(例如队列长度和优先级等)的消息,接收端设备根据该消息中的队列信息为目标队列分配发送信用值。其中,包含该目标队列的队列信息的消息可以是REQ。
可选地,接收端设备可以根据第一队列的开启反压水线确定一分配系数,根据该消息中的队列信息,以该分配系数为目标队列分配发送信用值。其中,当该第一队列的开启反压水线为系统设置的初始反压水线值时,发送端设备对发送端设备中的目标队列开启拥塞控制之后,接收端设备首次调度该目标队列中的报文时,该分配系数可以为初始分配系数,该初始分配系数例如可以为1。
步骤506、接收端设备向发送端设备发送包含该发送信用值的消息。
可选地,接收端设备可以根据目标队列的发送信用值生成包含该发送信用值的消息,通过与发送端设备之间的通信连接,向该发送端设备发送该包含该发送信用值的消息。其中,该包含该发送信用值的消息可以是ACK。
步骤507、发送端设备按照该发送信用值向接收端设备发送目标队列中的报文。
对应于接收端设备向发送端设备发送包含目标队列的发送信用值的消息,发送端设备可以接收该包含该目标队列的发送信用值的消息。之后,发送端设备可以按照该发送信用值向接收端设备发送该目标队列中的报文。
示例地,该目标队列的发送信用值可以为5(例如5个报文),则发送端设备可以按照该发送信用值向接收端设备发送该目标队列中的5个报文。
步骤508、当该接收端设备的多个队列对接收端设备的缓存空间的占用量达到或超出该接收端设备的最小水线阈值时,接收端设备调整该接收端设备的各个优先级的队列的反压水线值。
在本申请实施例中,接收端设备可以具有最小水线阈值,该接收端设备在监控该接收端设备的多个队列的过程中,可以检测该接收端设备的多个队列对该接收端设备的缓存空间的占用量是否达到或超出该接收端设备的最小水线阈值,当该接收端设备的多个队列对该接收端设备的缓存空间的占用量达到或超出该接收端设备的最小水线阈值时,接收端设备可以调整该接收端设备的各个优先级的队列的反压水线值,以根据调整后的反压水线值进行拥塞感知和判定,从而灵活控制。可选地,接收端设备可以动态调整该接收端设备的最小水线阈值,接收端设备每次检测该接收端设备的多个队列对该接收端设备的缓存空间的占用量是否达到或超出该接收端设备的最小水线阈值时,使用的最小水线阈值可以是当前时刻接收端设备的最小水线阈值(也即是最近一次调整后的最小水线阈值)。
在本申请实施例中,接收端设备调整该接收端设备的各个优先级的队列的反压水线值可以包括以下三种可能的实现方式:
第一种实现方式:接收端设备可以具有最大水线阈值,接收端设备根据该接收端设备的最大水线阈值、最小水线阈值,以及该接收端设备的队列对该接收端设备的缓存空间的占用量,调整该接收端设备的各个优先级的队列的反压水线值。
可选地,请参考图8,其示出了本申请实施例提供的一种接收端设备调整该接收端设备的任一优先级的队列的反压水线值的方法流程图,对于每个优先级的队列,接收端设备可以按照该图8所示的方法调整该优先级的队列的反压水线值。参见图8,该方法可以包括:
子步骤5081a、根据接收端设备的最大水线阈值、该接收端设备的最小水线阈值,低于任一优先级的所有优先级的队列对该接收端设备的缓存空间的占用量,以及该接收端设备的所有队列对该接收端设备的缓存空间的占用量,调整该任一优先级的队列的开启反压水线值。
其中,任一优先级的队列对接收端设备的缓存空间的占用量与低于该任一优先级的所有优先级的队列对该接收端设备的缓存空间的占用量负相关,该任一优先级的队列的开启反压水线值与该任一优先级的队列对该接收端设备的缓存空间的占用量负相关;该任一优先级的队列的开启反压水线值大于或等于低于该任一优先级的所有优先级的队列的开启反压水线值。也即是,如果低于任一优先级的所有优先级的队列对接收端设备的缓存空间的占用量较大,则该任一优先级的队列对接收端设备的缓存空间的占用量相对较小,该任一优先级的队列越不容易反压,该任一优先级的队列的开启反压水线值越大,优先级越高的队列,开启反压水线值越大,优先级越低的队列,开启反压水线值越小。可选地,该任一优先级的队列的开启反压水线值与低于该任一优先级的所有优先级的队列对该接收端设备的缓存空间的占用量正相关。
可选地,在本申请实施例中,接收端设备可以根据该接收端设备的最大水线阈值、该接收端设备的最小水线阈值,低于任一优先级的所有优先级的队列对该接收端设备的缓存空间的占用量,以及该接收端设备的所有队列对该接收端设备的缓存空间的占用量,采用水线值公式计算该任一优先级的队列的开启反压水线值,根据计算结果调整该任一优先级的队列的开启反压水线值。其中,该水线值公式可以为:
在该水线值公式中,Vo_pri_k表示优先级为pri_k的队列的开启反压水线值,B_pri_i表示优先级为pri_i的所有队列对接收端设备的缓存空间的占用量,B_total表示接收端设备的所有队列对接收端设备的缓存空间的占用量,V_max表示接收端设备的最大水线阈值,V_min表示接收端设备的最小水线阈值。
可选地,接收端设备可以将该接收端设备的最大水线阈值、该接收端设备的最小水线阈值,低于任一优先级的所有优先级的队列对该接收端设备的缓存空间的占用量,以及该接收端设备的所有队列对该接收端设备的缓存空间的占用量代入该水线值公式计算该任一优先级的队列的开启反压水线值。示例地,接收端设备中存在pri_1~pri_8这8个优先级的队列,优先级pri_1~pri_8依次升高,当pri_k=pri_1时,接收端设备中不存在低于pri_1的优先级,因此上述公式中的B_pri_i不存在,Vo_pri_1=Vo_pri_min,当pri_k=pri_8时,Vo_pri_8=Vo_pri_max。
需要说明的是,在本申请实施例中,接收端设备可以动态调整该接收端设备的最小水线阈值,在该第一种实现方式中,接收端设备调整任一优先级的队列的开启反压水线值时,使用的最小水线阈值可以是当前时刻接收端设备的最小水线阈值(也即是最近一次调整后的最小水线阈值)。
子步骤5082a、根据该任一优先级的队列的开启反压水线值,调整该任一优先级的队列的关闭反压水线值。
在本申请实施例中,每个优先级的队列的开启反压水线值与关闭反压水线值之间的差值可以为定值,因此,对于任一优先级的队列,接收端设备可以将该任一优先级的队列的开启反压水线与该定值的差值确定为该任一优先级的队列的关闭反压水线值。可选地,Vc_pri_k=Vo_pri_k-a,a表示该定值,示例地,a=10。
在本申请实施例中,任一优先级的队列对接收端设备的缓存空间的占用量与低于该任一优先级的所有优先级的队列对该接收端设备的缓存空间的占用量负相关,该任一优先级的队列的开启反压水线值与该任一优先级的队列对该接收端设备的缓存空间的占用量负相关;该任一优先级的队列的开启反压水线值大于或等于低于该任一优先级的所有优先级的队列的开启反压水线值。也即是,如果低于任一优先级的所有优先级的队列对接收端设备的缓存空间的占用量较大,则该任一优先级的队列对接收端设备的缓存空间的占用量相对较小,该任一优先级的队列越不容易反压,该任一优先级的队列的开启反压水线值越大,优先级越高的队列,开启反压水线值越大,优先级越低的队列,开启反压水线值越小,这样一来,可以避免高优先级的队列过早受控影响高优先级的队列的性能,又可以避免高优先级的队列受控过晚。
第二种实现方式:接收端设备根据该接收端设备的各个优先级的所有队列对接收端设备的缓存空间的占用量以及该缓存空间的大小,调整该各个优先级的队列的反压水线值。
可选地,请参考图9,其示出了本申请实施例提供的另一种接收端设备调整该接收端设备的任一优先级的队列的反压水线值的方法流程图,对于每个优先级的队列,接收端设备可以按照该图9所示的方法调整该优先级的队列的反压水线值。参见图9,该方法可以包括:
子步骤5081b、根据任一优先级的所有队列对接收端设备的缓存空间的占用量以及该缓存空间的大小,调整该任一优先级的队列的开启反压水线值,该任一优先级的队列的开启反压水线值与该任一优先级的所有队列对该接收端设备的缓存空间的占用量负相关。
可选地,接收端设备可以根据任一优先级的所有队列对接收端设备的缓存空间的占用量以及该接收端设备的缓存空间的大小的比值(下述称为队列占用比值)确定水线系数,根据确定的水线系数调整该任一优先级的队列的开启反压水线值。其中,该任一优先级的队列的开启反压水线值与该任一优先级的所有队列对该接收端设备的缓存空间的占用量负相关,也即是,对该接收端设备的缓存空间的占用量越大的队列,开启反压水线越小,反压越强。
可选地,接收端设备可以确定任一优先级的所有队列对该接收端设备的缓存空间的占用量与该接收端设备的缓存空间的大小的比值(也即是任一优先级的队列占用比值),根据该任一优先级的队列占用比值,以及,占用比值区间与水线系数的对应关系,确定该任一优先级的队列占用比值对应的水线系数,根据该任一优先级的队列占用比值对应的水线系数,调整该任一优先级的队列的开启反压水线值。可选地,接收端可以将该任一优先级的队列的当前的开启反压水线值与相应的水线系数的乘积确定为该任一优先级的队列的调整后的开启反压水线值。
示例地,占用比值区间与水线系数的对应关系可以如下表1所示:
表1
占用比值区间 | 水线系数 |
(0.5,0.8] | 0.95 |
(0.8,1] | 0.9 |
示例地,假设优先级为pri_k的所有队列对接收端设备的缓存空间的占用量与该接收端设备的缓存空间的大小的比值为0.6,0.6属于比值区间(0.5,0.8],该接收端设备根据表1确定该(0.5,0.8]对应的水线系数为0.95,因此该接收端设备确定该优先级为pri_k的队列调整后的开启反压水线值为Vo_pri_k=0.95×Vo_pri_k,也即是优先级为pri_k的队列的开启反压水线值下降5%。
再示例地,假设优先级为pri_k的所有队列对接收端设备的缓存空间的占用量与该接收端设备的缓存空间的大小的比值为0.85,该0.85属于比值区间(0.8,1],该接收端设备根据表1确定该(0.8,1]对应的水线系数为0.9,因此该接收端设备确定该优先级为pri_k的队列调整后的开启反压水线值为Vo_pri_k=0.9×Vo_pri_k,也即是优先级为pri_k的队列的开启反压水线值下降10%。
子步骤5082b、根据该任一优先级的队列的开启反压水线值,调整该任一优先级的队列的关闭反压水线值。
该子步骤5082b的实现过程可以参考前述子步骤5082a,本申请实施例在此不再赘述。
第三种实现方式:接收端设备根据最长队列的时延均值,调整各个优先级的队列的反压水线值。
可选地,请参考图10,其示出了本申请实施例提供的再一种接收端设备调整该接收端设备的任一优先级的队列的反压水线值的方法流程图,对于每个优先级的队列,接收端设备可以按照该图10所示的方法调整该优先级的队列的反压水线值。参见图10,该方法可以包括:
子步骤5081c、根据任一优先级的M个最长队列的时延均值和接收端设备的所有优先级的所有最长队列的时延均值,调整该任一优先级的队列的开启反压水线值。
其中,M为大于0的整数,关于该任一优先级的M个最长队列的解释可以参考步骤503中第一优先级的N个最长队列的解释,本申请实施例在此不再赘述。
可选地,对于该任一优先级的M个最长队列中的每个最长队列,接收端设备可以确定该每个最长队列的时延,根据该M个最长队列的时延确定该M个最长队列的时延均值,根据所有优先级的所有最长队列的时延确定该所有最长队列的时延均值,进而根据该任一优先级的M个最长队列的时延均值和接收端设备的所有优先级的所有最长队列的时延均值,调整该任一优先级的队列的开启反压水线值。需要说明的是,任意两个优先级的最长队列的数量可以相等或不等,当任意两个优先级的最长队列的数量相等时,该接收端设备的所有优先级的所有最长队列的数量可以是M×p,p表示接收端设备的优先级的数量,M表示该p个优先级中每个优先级的最长队列的数量;当两个或两个以上优先级的最长队列的数量不相等时,该接收端设备的所有优先级的所有最长队列的数量可以是M1+M2+M3+...Mp,M1~Mp依次表示优先级1~p的最长队列的数量。
可选地,当该任一优先级的M个最长队列的时延均值大于接收端设备的所有优先级的所有最长队列的时延均值时,接收端设备调整该任一优先级的队列的开启反压水线值在当前开启反压水线值的基础上下降5%~10%,例如,接收端设备将该任一优先级的队列的开启反压水线值调整至目标水线值区间,该目标水线值区间可以为[0.95×Vo_pri,0.8×Vo_pri],Vo_pri表示该任一优先级的队列的当前开启反压水线值;当该任一优先级的M个最长队列的时延均值不大于接收端设备的所有优先级的所有最长队列的时延均值时,接收端设备将该任一优先级的队列的开启反压水线值调整至该任一优先级的队列的初始开启反压水线值,该任一优先级的队列的初始开启反压水线值为系统预先为该任一优先级的队列配置的开启反压水线值,例如,该任一优先级的队列的初始开启反压水线值可以是在步骤501中接收端设备为该任一优先级的队列设置的开启反压水线值。
子步骤5082c、根据该任一优先级的队列的开启反压水线值,调整该任一优先级的队列的关闭反压水线值。
该子步骤5082c的实现过程可以参考前述子步骤5082a,本申请实施例在此不再赘述。
需要说明的是,在本申请实施例中,接收端设备可以动态调整该接收端设备的最小水线阈值,例如,接收端设备周期性调整接收端设备的最小水线阈值。本申请实施例通过调整最小水线阈值,可以尽量避免或减少主动拥塞控制,保证高吞吐,低时延。
可选地,接收端设备调整该接收端设备的最小水线阈值可以包括:在目标时长内接收端设备的所有队列对该接收端设备的缓存空间的最大占用量大于该最小水线阈值且小于该最大水线阈值与第一门限值的差值,或者,该接收端设备的所有队列对该接收端设备的缓存空间的最大占用量大于该最大水线阈值与第二门限值的差值时,接收端设备调整该最小水线阈值。可选地,该目标时长的起始时刻可以为前一次调整该接收端设备的最小水线阈值的时刻。其中,该目标时长、该第一门限值和该第二门限值均可以根据实际情况确定,例如该目标时长可以大于100ms(毫秒),该第一门限值可以为12MB(兆比),该第二门限值可以为6MB。示例地,在目标时长内,若Vo_min<B_total_high<Vo_max-12MB,接收端设备调整该最小水线阈值为Vo_min=Vo_min+256KB(千比特),若B_total_high>Vo_max-6MB,接收端设备调整该最小水线阈值为Vo_min=Vo_min-512KB,其中,B_total_high表示接收端设备的所有队列对该接收端设备的缓存空间的最大占用量。
步骤509、接收端设备根据该接收端设备的多个队列对该接收端设备的缓存空间的占用量,调整目标队列的发送信用值的分配系数,该分配系数与该接收端设备的多个队列对该接收端设备的缓存空间的占用量负相关。
接收端设备通知发送端设备对该发送端设备中与第一队列对应的目标队列开启拥塞控制之后,可以继续监控该接收端设备的多个队列,根据该接收端设备的多个队列对该接收端设备的缓存空间的占用量,调整目标队列的发送信用值的分配系数。其中,该目标队列的发送信用值的分配系数与该接收端设备的多个队列对该接收端设备的缓存空间的占用量负相关,也即是,该接收端设备的多个队列对该接收端设备的缓存空间的占用量越大,该目标队列的发送信用值的分配系数越小,该接收端设备的多个队列对该接收端设备的缓存空间的占用量越小,该目标队列的发送信用值的分配系数越大。
可选地,接收端设备中的每个优先级的队列可以具有丢弃反压水线值,通常,当接收端设备的多个队列对该接收端设备的缓存空间的占用量达到或超出该丢弃反压水线值时,该接收端设备可以丢弃该优先级的队列中的报文以进行被动拥塞控制。在本申请实施例中,接收端设备可以根据该接收端设备的多个队列对该接收端设备的缓存空间的占用量,第一队列的开启反压水线值和该第一队列的丢弃反压水线值,调整目标队列的发送信用值的分配系数。
可选地,接收端设备可以确定该接收端设备的多个队列对该接收端设备的缓存空间的占用量与第一队列的开启反压水线值的第一差值,以及,该第一队列的丢弃反压水线值与该第一队列的开启反压水线值的目标差值,根据该第一差值与该目标差值,调整目标队列的发送信用值的分配系数。可选地,当该第一差值处于第一差值区间时,接收端设备将该目标队列的发送信用值的分配系数调整为第一分配系数,该第一分配系数小于1且大于0;当该第一差值处于第二差值区间时,接收端设备将该目标队列的发送信用值的分配系数调整为第二分配系数,该第二差值区间的下限值可以等于该第一差值区间的上限值,该第二分配系数小于第一分配系数且大于0;当该第一差值处于第三差值区间时,接收端设备将该目标队列的发送信用值的分配系数调整为第三分配系数,该第三差值区间的下限值可以等于该第二差值区间的上限值,该第三分配系数小于第二分配系数且大于0;当该第一差值处于第四差值区间时,接收端设备将该目标队列的发送信用值的分配系数调整为第四分配系数,该第四差值区间的下限值可以等于该第三差值区间的上限值,该第四分配系数小于第三分配系数且大于0;当该第一差值处于第五差值区间时,接收端设备将该目标队列的发送信用值的分配系数调整为0,该第五差值区间的下限值可以等于该第四差值区间的上限值。可选地,第一差值区间为(10%X~20%X],第二差值区间为(20%X~30%X],第三差值区间为(30%X~40%X],第四差值区间为(40%X~50%X],第五差值区间为(50%X~X],第一分配系数为0.8,该第二分配系数0.6,该第三分配系数0.4,该第四分配系数为0.2,X为目标差值。
可选地,当该第一差值处于第一差值区间且距离前一次调整第一优先级的队列的反压水线值的时长大于第一时长时,接收端设备将该目标队列的发送信用值的分配系数调整为第一分配系数;当该第一差值处于第二差值区间且距离前一次调整第一优先级的队列的反压水线值的时长大于第二时长时,接收端设备将该目标队列的发送信用值的分配系数调整为第二分配系数;当该第一差值处于第三差值区间且距离前一次调整第一优先级的队列的反压水线值的时长大于第三时长时,接收端设备将该目标队列的发送信用值的分配系数调整为第三分配系数;当该第一差值处于第四差值区间且距离前一次调整第一优先级的队列的反压水线值的时长大于第四时长时,接收端设备将该目标队列的发送信用值的分配系数调整为第四分配系数;当该第一差值处于第五差值区间且距离前一次调整第一优先级的队列的反压水线值的时长大于第五时长时,接收端设备将该目标队列的发送信用值的分配系数调整为0。可选地,第一时长、第二时长、第三时长、第四时长和第五时长相等。示例地,第一时长、第二时长、第三时长、第四时长和第五时长均为10ms。
步骤510、接收端设备以调整后的分配系数为目标队列分配发送信用值。
接收端设备调整目标队列的发送信用值的分配系数之后,可以以调整后的分配系数为目标队列分配发送信用值。可选地,接收端设备接收发送端设备发送的包含该目标队列的队列信息(例如队列长度和优先级等)的消息,根据该消息中的队列信息,以调整后的分配系数为目标队列分配发送信用值。其中,包含该目标队列的队列信息的消息可以是REQ。
步骤511、接收端设备向发送端设备发送包含该发送信用值的消息。
步骤512、发送端设备按照该发送信用值向接收端设备发送目标队列中的报文。
该步骤511和步骤512的实现过程可以参考前述步骤506和步骤507,本申请实施例在此不再赘述。
步骤513、当第一队列满足预设关闭指标时,接收端设备通知发送端设备对该发送端设备的目标队列关闭拥塞控制。
在本申请实施例中,接收端设备通知发送端设备对该发送端设备中与该第一队列对应的目标队列开启拥塞控制之后,可以继续监控该接收端设备的多个队列,检测该第一队列是否满足预设关闭指标,当该第一队列满足该预设关闭指标时,接收端设备通知发送端设备对该发送端设备的目标队列关闭拥塞控制。其中,该预设关闭指标包括:该接收端设备的多个队列对该接收端设备的缓存空间的占用量小于该第一队列的关闭反压水线值。
可选地,该预设关闭指标还可以包括以下一个或多个:
该接收端设备的多个队列对该接收端设备的缓存空间的占用量小于该第一队列的关闭反压水线值的时长达到或超过预设时长阈值;
该第一队列不属于该接收端设备的多个队列中第一优先级的N个最长队列,该第一队列的优先级为该第一优先级,当该第一优先级为该多个队列的优先级中的最低优先级时,N为大于0的整数,当该第一优先级为该多个队列的优先级中的非最低优先级时,N为大于或等于0的整数;
该第一队列的长度小于预设长度阈值。
可选地,该预设关闭指标包括:该接收端设备的多个队列对该接收端设备的缓存空间的占用量小于第一队列的关闭反压水线值,该接收端设备的多个队列对该接收端设备的缓存空间的占用量小于该第一队列的关闭反压水线值的时长达到或超过预设时长阈值,该接收端设备的多个队列对该接收端设备的缓存空间的占用量小于该第一队列的关闭反压水线值的时长达到或超过预设时长阈值,且该第一队列的长度小于预设长度阈值。
其中,该预设长度阈值可以是该接收端设备的所有队列的长度的均值,该预设时长阈值可以根据实际情况设置,例如,该预设时长阈值可以为100ms,第一优先级的N个最长队列的解释可以参考步骤503,本申请实施例在此不再赘述。
可选地,接收端设备通知发送端设备对该发送端设备中的目标队列关闭拥塞控制可以包括:接收端设备向该发送端设备发送关闭控制消息,该关闭控制消息指示该发送端设备对该目标队列关闭拥塞控制。可选地,该关闭控制消息可以携带目标队列的标识和去使能标志位,该目标队列的标识指示该目标队列,该去使能标志位指示发送端设备关闭拥塞控制,从而该关闭控制消息指示发送端设备对目标队列关闭拥塞控制。可选地,该关闭控制消息还可以携带发送端设备的标识,以使发送端设备根据该发送端设备的标识确定该关闭控制消息是发往该发送端设备的(也即是该发送端设备的标识指示该关闭控制消息的接收者)。可选地,接收端设备可以以广播的形式向发送端设备发送该关闭控制消息,例如,该接收端设备向该接收端设备的所有发送端设备广播该关闭控制消息。
需要说明的是,接收端设备可以通知发送端设备对该发送端设备中的所有目标队列关闭拥塞控制,也可以通过通知发送端设备对该发送端设备中的某一个或几个目标队列关闭拥塞控制,例如,接收端设备通知发送端设备对接收端设备优先级较高的队列关闭拥塞控制,以保证优先级较高的队列能够被优先调度,本申请实施例对此不做限定。
步骤514、发送端设备根据接收端设备的通知对该发送端设备的目标队列关闭拥塞控制。
可选地,根据步骤513可知,接收端设备在接收端设备的第一队列满足预设关闭指标时通知发送端设备对目标队列关闭拥塞控制,该预设关闭指标包括:该接收端设备的多个队列对该接收端设备的缓存空间的占用量小于该第一队列的关闭反压水线值。
可选地,该预设关闭指标还可以包括以下一个或多个:
该接收端设备的多个队列对该接收端设备的缓存空间的占用量小于第一队列的关闭反压水线值的时长达到或超过预设时长阈值;
该第一队列不属于该接收端设备的多个队列中第一优先级的N个最长队列,该第一队列的优先级为该第一优先级,当该第一优先级为该多个队列的优先级中的最低优先级时,N为大于0的整数,当该第一优先级为该多个队列的优先级中的非最低优先级时,N为大于或等于0的整数;
该第一队列的长度小于预设长度阈值。
可选地,发送端设备根据接收端设备的通知对该发送端设备的目标队列关闭拥塞控制可以包括:发送端设备接收该接收端设备发送的关闭控制消息,根据该关闭控制消息对该目标队列关闭拥塞控制,其中,该关闭控制消息指示该发送端设备对该目标队列关闭拥塞控制。可选地,该关闭控制消息可以携带目标队列的标识和去使能标志位,该目标队列的标识指示该目标队列,该去使能标志位指示发送端设备关闭拥塞控制,从而该关闭控制消息指示发送端设备对目标队列关闭拥塞控制。可选地,该关闭控制消息还可以携带该发送端设备的标识,该发送端设备的标识指示该关闭控制消息的接收者。发送端设备可以解析该关闭控制消息得到发送端设备的标识、去使能标志位以及目标队列的标识,根据该发送端设备的标识确定该关闭控制消息是发往该发送端设备的,根据该去使能标志位确定需要关闭拥塞控制,根据目标队列的标识确定目标队列,从而根据该关闭控制消息对该目标队列关闭拥塞控制。
示例地,请参考图11,其示出了本申请实施例提供的另一种拥塞控制的示意图,参见图11,当接收端设备的多个队列对该接收端设备的缓存空间的占用量大于优先级pri_k对应的开启反压水线(也即是优先级为pri_k的队列的开启反压水线)Vo_pri_k时,开启拥塞控制。当该接收端设备的多个队列对该接收端设备的缓存空间的占用量小于优先级pri_k对应的关闭反压水线(也即是优先级为pri_k的队列的关闭反压水线)Vc_pri_k,但是该接收端设备的多个队列对该接收端设备的缓存空间的占用量小于优先级pri_k对应的关闭反压水线的时长t1小于预设时长阈值时,即使该接收端设备的多个队列对该接收端设备的缓存空间的占用量小于优先级pri_k对应的关闭反压水线Vc_pri_k,也不关闭拥塞控制。当该接收端设备的多个队列对该接收端设备的缓存空间的占用量小于优先级pri_k对应的关闭反压水线Vc_pri_k,且该接收端设备的多个队列对该接收端设备的缓存空间的占用量小于优先级pri_k对应的关闭反压水线的时长t2达到或超过预设时长阈值时,关闭拥塞控制。如此一来,可以避免由于瞬时拥塞而开启拥塞控制,以及由于瞬时的不拥塞而关闭拥塞控制,提高拥塞控制的灵活性。
需要说明的是,本申请实施例提供的拥塞控制方法步骤的先后顺序可以适当调整,步骤也可以根据情况相应增减,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内,因此不再赘述。
综上所述,本申请实施例提供的拥塞控制方法,接收端设备监控接收端设备的多个队列,当该接收端设备的多个队列中的第一队列满足预设开启指标时,通知该发送端设备对该发送端设备中与该第一队列对应的目标队列开启拥塞控制,发送端设备根据接收端设备的通知对目标队列开启拥塞控制。该拥塞控制方法有助于解决目前通信网络的拥塞问题,有助于提高通信网络的资源利用率以及传输质量。
本申请实施例提供的该拥塞控制方法结合主动拥塞控制和被动拥塞控制,使用被动拥塞控制感知拥塞后,通过对拥塞进行主动控制,可以从通信网络全网进行拥塞控制,且可以针对特定优先级的拥塞实现端到端的控制,在拥塞控制的过程中,可以灵活调整反压水线和发送信用值的分配系数等参数,且可以充分利用接收端设备的缓存空间,避免将瞬时拥塞的报文反压在发送端设备,保证发送端设备的吞吐量,从而保证该发送端设备下挂的工作站的吞吐量,提高拥塞控制的灵活性。
本申请实施例提供的该拥塞控制方法,在发送端设备开启拥塞控制之前,无需考虑反压水线值和发送信用值,可以使得发送端设备的流量尽量push发送,开启拥塞控制之前让所有的队列都尽量的保持吞吐。
下述为本申请的装置实施例,可以用于执行本申请的方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图12,其示出了本申请实施例提供的一种拥塞控制装置1200的逻辑结构示意图,该拥塞控制装置1200可以为网络设备中的功能组件,该网络设备可以是前述实施例中的接收端设备。参见图12,该拥塞控制装置1200包括:监控模块1210和开启模块1220,该监控模块1210可以用于执行图5所示实施例中的步骤502,该开启模块1220可以用于执行图5所示实施例中的步骤503。
该监控模块1210,用于监控接收端设备的多个队列,该接收端设备的每个队列与发送端设备中的一个或多个队列对应;
该开启模块1220,用于当该接收端设备的多个队列中的第一队列满足预设开启指标时,通知该发送端设备对该发送端设备中与该第一队列对应的目标队列开启拥塞控制;
其中,该预设开启指标包括:该接收端设备的多个队列对该接收端设备的缓存空间的占用量达到或超出该第一队列的开启反压水线值。
可选地,该预设开启指标还包括以下一个或多个:
该第一队列属于该接收端设备的多个队列中第一优先级的N个最长队列,该第一队列的优先级为该第一优先级,当该第一优先级为该多个队列的优先级中的最低优先级时,N为大于0的整数,当该第一优先级为该多个队列的优先级中的非最低优先级时,N为大于或等于0的整数;
该第一队列的长度达到或超过预设长度阈值。
可选地,该开启模块1220,用于向发送端设备发送开启控制消息,该开启控制消息指示该发送端设备对目标队列开启拥塞控制。
可选地,请参考图13,其示出了本申请实施例提供的另一种拥塞控制装置1200的逻辑结构示意图,参见图13,在图12的基础上,该拥塞控制装置1200还包括:关闭模块1230,该关闭模块1230可以用于执行图5所示实施例中的步骤513。
该关闭模块1230,用于当第一队列满足预设关闭指标时,通知发送端设备对该发送端设备的目标队列关闭拥塞控制;
其中,该预设关闭指标包括:该接收端设备的多个队列对该接收端设备的缓存空间的占用量小于该第一队列的关闭反压水线值。
可选地,该预设关闭指标还包括以下一个或多个:
该接收端设备的多个队列对该接收端设备的缓存空间的占用量小于该第一队列的关闭反压水线值的时长达到或超过预设时长阈值;
该第一队列不属于该接收端设备的多个队列中第一优先级的N个最长队列,该第一队列的优先级为该第一优先级,当该第一优先级为该多个队列的优先级中的最低优先级时,N为大于0的整数,当该第一优先级为该多个队列的优先级中的非最低优先级时,N为大于或等于0的整数;
该第一队列的长度小于预设长度阈值。
可选地,请继续参考图13,该拥塞控制装置1200还包括:分配模块1240和发送模块1250,该分配模块1240可以用于执行图5所示实施例中的步骤505和步骤510,该发送模块1250可以用于执行图5所示实施例中的步骤506和步骤511。
该分配模块1240,用于为目标队列分配发送信用值;
该发送模块1250,用于向发送端设备发送包含该发送信用值的消息,以使该发送端设备按照该发送信用值向接收端设备发送该目标队列中的报文。
可选地,请继续参考图13,该拥塞控制装置1200还包括:系数调整模块1260,该系数调整模块1260可以用于执行图5所示实施例中的步骤509。
该系数调整模块1260,用于根据接收端设备的多个队列对该接收端设备的缓存空间的占用量,调整目标队列的发送信用值的分配系数,该分配系数与该接收端设备的多个队列对该接收端设备的缓存空间的占用量负相关。
可选地,该接收端设备的多个队列中的每个队列具有反压水线值,不同优先级的队列的反压水线值不同,请继续参考图13,该拥塞控制装置1200还包括:水线调整模块1270,该水线调整模块1270可以用于执行图5所示实施例中的步骤508。
该水线调整模块1270,用于当该接收端设备的多个队列对该接收端设备的缓存空间的占用量达到或超出该接收端设备的最小水线阈值时,调整该接收端设备的各个优先级的队列的反压水线值。
可选地,该反压水线值包括开启反压水线值和关闭反压水线值,
该水线调整模块1270,用于:
对于任一优先级的队列:
根据接收端设备的最大水线阈值、该接收端设备的最小水线阈值,低于该任一优先级的所有优先级的队列对该接收端设备的缓存空间的占用量,以及该接收端设备的所有队列对该接收端设备的缓存空间的占用量,调整该任一优先级的队列的开启反压水线值;
根据该任一优先级的队列的开启反压水线值,调整该任一优先级的队列的关闭反压水线值。
可选地,该任一优先级的队列对该接收端设备的缓存空间的占用量与低于该任一优先级的所有优先级的队列对该接收端设备的缓存空间的占用量负相关,该任一优先级的队列的开启反压水线值与该任一优先级的队列对该接收端设备的缓存空间的占用量负相关;
该任一优先级的队列的开启反压水线值大于或等于低于该任一优先级的所有优先级的队列的开启反压水线值。
可选地,该水线调整模块1270,用于:
根据最大水线阈值、最小水线阈值,低于任一优先级的所有优先级的队列对接收端设备的缓存空间的占用量,以及该接收端设备的所有队列对该接收端设备的缓存空间的占用量,采用水线值公式计算该任一优先级的队列的开启反压水线值;
根据计算结果调整该任一优先级的队列的开启反压水线值;
其中,该水线值公式为:
Vo_pri_k表示优先级为pri_k的队列的开启反压水线值,B_pri_i表示优先级为pri_i的所有队列对接收端设备的缓存空间的占用量,B_total表示接收端设备的所有队列对接收端设备的缓存空间的占用量,V_max表示最大水线阈值,V_min表示最小水线阈值。
可选地,该反压水线值包括开启反压水线值和关闭反压水线值,
该水线调整模块1270,用于:
对于任一优先级的队列:
根据该任一优先级的所有队列对接收端设备的缓存空间的占用量以及该缓存空间的大小,调整该任一优先级的队列的开启反压水线值,该任一优先级的队列的开启反压水线值与该任一优先级的所有队列对该接收端设备的缓存空间的占用量负相关;
根据该任一优先级的队列的开启反压水线值,调整该任一优先级的队列的关闭反压水线值。
可选地,该反压水线值包括开启反压水线值和关闭反压水线值,
该水线调整模块1270,用于:
对于任一优先级的队列:
根据该任一优先级的M个最长队列的时延均值和接收端设备的所有优先级的所有最长队列的时延均值,调整该任一优先级的队列的开启反压水线值,M为大于0的整数;
根据该任一优先级的队列的开启反压水线值,调整该任一优先级的队列的关闭反压水线值。
可选地,请继续参考图13,该拥塞控制装置1200还包括:
阈值调整模块1280,用于在目标时长内接收端设备的所有队列对该接收端设备的缓存空间的最大占用量大于最小水线阈值且小于最大水线阈值与第一门限值的差值,或者,该最大占用量大于该最大水线阈值与第二门限值的差值时,调整该最小水线阈值。
综上所述,本申请实施例提供的拥塞控制装置,接收端设备监控接收端设备的多个队列,当该接收端设备的多个队列中的第一队列满足预设开启指标时,通知发送端设备对该发送端设备中与该第一队列对应的目标队列开启拥塞控制,该发送端设备根据该接收端设备的通知对目标队列开启拥塞控制。该拥塞控制方法有助于解决目前通信网络的拥塞问题,有助于提高通信网络的资源利用率以及传输质量。
请参考图14,其示出了本申请实施例提供的再一种拥塞控制装置1400的逻辑结构示意图,该拥塞控制装置1400可以为网络设备中的功能组件,该网络设备可以是前述实施例中的发送端设备。参见图14,该拥塞控制装置1400包括:第一接收模块1410和开启模块1420,该第一接收模块1410和该开启模块1420可以用于执行图5所示实施例中的步骤504。
该第一接收模块1410,用于接收接收端设备发送的对发送端设备的目标队列开启拥塞控制的通知,该接收端设备的每个队列与该发送端设备中的一个或多个队列对应,该目标队列与该接收端设备的第一队列对应;
该开启模块1420,用于根据该接收端设备的通知对该发送端设备的目标队列开启拥塞控制。
可选地,该第一接收模块1410,用于接收接收端设备发送的开启控制消息,该开启控制消息携带目标队列的标识和使能标志位;
该开启模块1420,用于根据该目标队列的标识确定该目标队列,根据该使能标志位对该目标队列开启拥塞控制。
可选地,请参考图15,其示出了本申请实施例提供的又一种拥塞控制装置1400的逻辑结构示意图,参见图15,在图14的基础上,该拥塞控制装置1400还包括:第二接收模块1430和关闭模块1440,该第二接收模块1430和该关闭模块1440可以用于执行图5所示实施例中的步骤514。
该第二接收模块1430,用于接收接收端设备发送的对发送端设备的目标队列关闭拥塞控制的通知;
该关闭模块1440,用于根据该接收端设备的通知对该发送端设备的目标队列关闭拥塞控制。
可选地,该第二接收模块1430,用于接收该接收端设备发送的关闭控制消息,该关闭控制消息携带该目标队列的标识和去使能标志位;
该关闭模块1440,用于根据该目标队列的标识确定该目标队列,根据该去使能标志位对该目标队列关闭拥塞控制。
可选地,请继续参考图15,该拥塞控制装置1400还包括:第三接收模块1450和发送模块1460,该第三接收模块1450和该发送模块1460可以用于执行图5所示实施例中的步骤507和步骤512。
该第三接收模块1450,用于接收接收端设备发送的包含发送信用值的消息;
该发送模块1460,用于按照该发送信用值向该接收端设备发送目标队列中的报文。
综上所述,本申请实施例提供的拥塞控制装置,接收端设备监控接收端设备的多个队列,当该接收端设备的多个队列中的第一队列满足预设开启指标时,通知发送端设备对该发送端设备中与该第一队列对应的目标队列开启拥塞控制,该发送端设备根据该接收端设备的通知对目标队列开启拥塞控制。该拥塞控制方法有助于解决目前通信网络的拥塞问题,有助于提高通信网络的资源利用率以及传输质量。
需要说明的是:上述实施例提供的拥塞控制装置在进行拥塞控制时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的拥塞控制装置与拥塞控制方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图16,其示出了本申请实施例提供的一种拥塞控制装置1600的硬件结构示意图,该拥塞控制装置1600可以为网络设备,该网络设备可以是前述实施例中的发送端设备或接收端设备中的至少一者。参见图16,该拥塞控制装置1600包括处理器1602、存储器1604、通信接口1606和总线1608,处理器1602、存储器1604和通信接口1606通过总线1608彼此通信连接。本领域技术人员应当明白,图16所示的处理器1602、存储器1604和通信接口1606之间的连接方式仅仅是示例性的,在实现过程中,处理器1602、存储器1604和通信接口1606也可以采用除了总线1608之外的其他连接方式彼此通信连接。
其中,存储器1604可以用于存储指令16042和数据16044。在本申请实施例中,存储器1604可以是各种类型的存储介质,例如随机存取存储器(random access memory,RAM)、只读存储器(read-only memory,ROM)、非易失性RAM(non-volatile RAM,NVRAM)、可编程ROM(programmable ROM,PROM)、可擦除PROM(erasable PROM,EPROM)、电可擦除PROM(electrically erasable PROM,EEPROM)、闪存、光存储器和寄存器等。并且,该存储器1604可以包括硬盘和/或内存。
其中,处理器1602可以是通用处理器,通用处理器可以是通过读取并执行存储器(例如存储器1604)中存储的指令(例如指令16042)来执行特定步骤和/或操作的处理器,通用处理器在执行上述步骤和/或操作的过程中可能用到存储在存储器(例如存储器1604)中的数据(例如数据16044)。通用处理器可以是,例如但不限于,中央处理器(centralprocessing unit,CPU)。此外,处理器1602也可以是专用处理器,专用处理器可以是专门设计的用于执行特定步骤和/或操作的处理器,该专用处理器可以是,例如但不限于,数字信号处理器(digital signal processor,DSP)、应用专用集成电路(application-specificintegrated circuit,ASIC)和现场可编程门阵列(field-programmable gate array,FPGA)等。此外,处理器1602还可以是多个处理器的组合,例如多核处理器。处理器1602可以包括一个或多个电路,以执行上述实施例提供的拥塞控制方法的全部或部分步骤。
其中,通信接口1606可以包括输入/输出(input/output,I/O)接口、物理接口和逻辑接口等用于实现拥塞控制装置1600内部的器件互连的接口,以及用于实现拥塞控制装置1600与其他设备(例如网络设备或用户设备)互连的接口。物理接口可以是千兆的以太接口(gigabit ethernet,GE),其可以用于实现拥塞控制装置1600与其他设备(例如网络设备或用户设备)互连,逻辑接口是拥塞控制装置1600内部的接口,其可以用于实现拥塞控制装置1600内部的器件互连。容易理解,通信接口1606可以用于拥塞控制装置1600与其他网络设备和/或用户设备通信,例如,通信接口1606用于拥塞控制装置1600与其他网络设备之间信息的发送和接收。
其中,总线1608可以是任何类型的,用于实现处理器1602、存储器1604和通信接口1606互连的通信总线,例如系统总线。
上述器件可以分别设置在彼此独立的芯片上,也可以至少部分的或者全部的设置在同一块芯片上。将各个器件独立设置在不同的芯片上,还是整合设置在一个或者多个芯片上,往往取决于产品设计的需要。本申请实施例对上述器件的具体实现形式不做限定。
图16所示的拥塞控制装置1600仅仅是示例性的,在实现过程中,拥塞控制装置1600还可以包括其他组件,本文不再一一列举。该图16所示的拥塞控制装置1600可以通过执行上述实施例提供的拥塞控制方法的全部或部分步骤来控制网络拥塞。
本申请实施例提供了一种拥塞控制系统,该拥塞控制系统可以包括前述实施例中的发送端设备和接收端设备,在一种可能的实现方式中,该发送端设备可以包括图14或图15所示的拥塞控制装置1400,该接收端设备可以包括图12或图13所示的拥塞控制装置1200。在另一种可能的实现方式中,该发送端设备和该接收端设备中的至少一者可以包括图16所示的拥塞控制装置1600。
示例地,请参考图17,其示出了本申请实施例提供的一种拥塞控制系统1700的示意图,参见图17,该拥塞控制系统1700包括:发送端设备1710和接收端设备1720。
该接收端设备1720用于:监控该接收端设备1720的多个队列,该接收端设备1720的每个队列与该发送端设备1710中的一个或多个队列对应;当该接收端设备1720的多个队列中的第一队列满足预设开启指标时,通知该发送端设备1710对该发送端设备1710中与该第一队列对应的目标队列开启拥塞控制;其中,该预设开启指标包括:该接收端设备1720的多个队列对该接收端设备1720的缓存空间的占用量达到或超出该第一队列的开启反压水线值;
该发送端设备1710用于:根据该接收端设备1720的通知对该发送端设备1710中与该第一队列对应的目标队列开启拥塞控制。
可选地,该预设开启指标还包括以下一个或多个:
该第一队列属于该接收端设备1720的多个队列中第一优先级的N个最长队列,该第一队列的优先级为该第一优先级,当该第一优先级为该多个队列的优先级中的最低优先级时,N为大于0的整数,当该第一优先级为该多个队列的优先级中的非最低优先级时,N为大于或等于0的整数;
该第一队列的长度达到或超过预设长度阈值。
可选地,该接收端设备1720用于:向该发送端设备1710发送开启控制消息,该开启控制消息指示该发送端设备1710对该目标队列开启拥塞控制。
该发送端设备1710用于:接收该接收端设备1710发送的该开启控制消息;根据该开启控制消息对该目标队列开启拥塞控制。
可选地,该接收端设备1720还用于:当该第一队列满足预设关闭指标时,通知该发送端设备1710对该发送端设备1710的该目标队列关闭拥塞控制;其中,该预设关闭指标包括:该接收端设备1720的多个队列对该接收端设备1720的缓存空间的占用量小于该第一队列的关闭反压水线值;
该发送端设备1710还用于:根据该接收端设备1720的通知对该发送端设备1710的该目标队列关闭拥塞控制。
可选地,该预设关闭指标还包括以下一个或多个:
该接收端设备1720的多个队列对该接收端设备1720的缓存空间的占用量小于该第一队列的关闭反压水线值的时长达到或超过预设时长阈值;
该第一队列不属于该接收端设备1720的多个队列中第一优先级的N个最长队列,该第一队列的优先级为该第一优先级,当该第一优先级为该多个队列的优先级中的最低优先级时,N为大于0的整数,当该第一优先级为该多个队列的优先级中的非最低优先级时,N为大于或等于0的整数;
该第一队列的长度小于预设长度阈值。
可选地,该接收端设备1720还用于:为该目标队列分配发送信用值;向该发送端设备1710发送包含该发送信用值的消息;
该发送端设备1710还用于:接收该接收端设备1720发送的包含发送信用值的消息;按照该发送信用值向该接收端设备发送该目标队列中的报文。
可选地,该接收端设备1720还用于:根据该接收端设备1720的多个队列对该接收端设备1720的缓存空间的占用量,调整该目标队列的发送信用值的分配系数,该分配系数与该接收端设备1720的多个队列对该接收端设备1720的缓存空间的占用量负相关。
可选地,该接收端设备1720的多个队列中的每个队列具有反压水线值,不同优先级的队列的反压水线值不同,该接收端设备1720还用于:当该接收端设备1720的多个队列对该接收端设备1720的缓存空间的占用量达到或超出该接收端设备1720的最小水线阈值时,调整该接收端设备1720的各个优先级的队列的反压水线值。
可选地,该反压水线值包括开启反压水线值和关闭反压水线值,
该接收端设备1720用于:对于任一优先级的队列:
根据该接收端设备1720的最大水线阈值、该接收端设备1720的最小水线阈值,低于该任一优先级的所有优先级的队列对该接收端设备1720的缓存空间的占用量,以及该接收端设备1720的所有队列对该接收端设备1720的缓存空间的占用量,调整该任一优先级的队列的开启反压水线值;
根据该任一优先级的队列的开启反压水线值,调整该任一优先级的队列的关闭反压水线值。
可选地,该任一优先级的队列对该接收端设备1720的缓存空间的占用量与低于该任一优先级的所有优先级的队列对该接收端设备1720的缓存空间的占用量负相关,该任一优先级的队列的开启反压水线值与该任一优先级的队列对该接收端设备1720的缓存空间的占用量负相关;
该任一优先级的队列的开启反压水线值大于或等于低于该任一优先级的所有优先级的队列的开启反压水线值。
可选地,该接收端设备1720用于:
根据该最大水线阈值、该最小水线阈值,低于该任一优先级的所有优先级的队列对该接收端设备1720的缓存空间的占用量,以及该接收端设备1720的所有队列对该接收端设备1720的缓存空间的占用量,采用水线值公式计算该任一优先级的队列的开启反压水线值;
根据计算结果调整该任一优先级的队列的开启反压水线值;
其中,该水线值公式为:
Vo_pri_k表示优先级为pri_k的队列的开启反压水线值,B_pri_i表示优先级为pri_i的所有队列对该接收端设备1720的缓存空间的占用量,B_total表示该接收端设备1720的所有队列对该接收端设备1720的缓存空间的占用量,V_max表示最大水线阈值,V_min表示最小水线阈值。
可选地,该反压水线值包括开启反压水线值和关闭反压水线值,
该接收端设备1720用于:对于任一优先级的队列:
根据该任一优先级的所有队列对该接收端设备1720的缓存空间的占用量以及该缓存空间的大小,调整该任一优先级的队列的开启反压水线值,该任一优先级的队列的开启反压水线值与该任一优先级的所有队列对该接收端设备1720的缓存空间的占用量负相关;
根据该任一优先级的队列的开启反压水线值,调整该任一优先级的队列的关闭反压水线值。
可选地,该反压水线值包括开启反压水线值和关闭反压水线值,
该接收端设备1720用于:对于任一优先级的队列:
根据该任一优先级的M个最长队列的时延均值和该接收端设备1720的所有优先级的所有最长队列的时延均值,调整该任一优先级的队列的开启反压水线值,该M为大于0的整数;
根据该任一优先级的队列的开启反压水线值,调整该任一优先级的队列的关闭反压水线值。
可选地,该接收端设备1720还用于:在目标时长内该接收端设备1720的所有队列对该接收端设备1720的缓存空间的最大占用量大于该最小水线阈值且小于该最大水线阈值与第一门限值的差值,或者,该最大占用量大于该最大水线阈值与第二门限值的差值时,调整该最小水线阈值。
综上所述,本申请实施例提供的拥塞控制系统,接收端设备监控接收端设备的多个队列,当该接收端设备的多个队列中的第一队列满足预设开启指标时,通知发送端设备对该发送端设备中与该第一队列对应的目标队列开启拥塞控制,该发送端设备根据该接收端设备的通知对目标队列开启拥塞控制。该拥塞控制方法有助于解决目前通信网络的拥塞问题,有助于提高通信网络的资源利用率以及传输质量。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,该计算机程序被处理器执行时实现图5所示实施例提供的拥塞控制方法的全部或部分步骤。
本申请实施例提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行图5所示实施例提供的拥塞控制方法的全部或部分步骤。
本申请实施例提供了一种芯片,该芯片包括可编程逻辑电路和/或程序指令,当该芯片运行时用于实现图5所示实施例提供的拥塞控制方法的全部或部分步骤。
本申请实施例中,发送端设备和接收端设备可以在同一台物理设备或虚拟设备上,即设备具有发送和接收功能,既可执行发送端设备的所有操作或步骤,也可以执行接收端设备的所有操作或步骤。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应理解,在本申请实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,不应对本申请实施例的实施过程构成任何限定。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (45)
1.一种拥塞控制方法,其特征在于,所述方法包括:
监控接收端设备的多个队列,所述接收端设备的每个队列与发送端设备中的一个或多个队列对应;
当所述接收端设备的多个队列中的第一队列满足预设开启指标时,通知所述发送端设备对所述发送端设备中与所述第一队列对应的目标队列开启拥塞控制;
其中,所述预设开启指标包括:所述接收端设备的多个队列对所述接收端设备的缓存空间的占用量达到或超出所述第一队列的开启反压水线值。
2.根据权利要求1所述的方法,其特征在于,
所述预设开启指标还包括以下一个或多个:
所述第一队列属于所述接收端设备的多个队列中第一优先级的N个最长队列,所述第一队列的优先级为所述第一优先级,当所述第一优先级为所述多个队列的优先级中的最低优先级时,所述N为大于0的整数,当所述第一优先级为所述多个队列的优先级中的非最低优先级时,所述N为大于或等于0的整数;
所述第一队列的长度达到或超过预设长度阈值。
3.根据权利要求1或2所述的方法,其特征在于,
所述通知所述发送端设备对所述发送端设备中与所述第一队列对应的目标队列开启拥塞控制,包括:
向所述发送端设备发送开启控制消息,所述开启控制消息指示所述发送端设备对所述目标队列开启拥塞控制。
4.根据权利要求1至3任一所述的方法,其特征在于,
在通知所述发送端设备对所述发送端设备中与所述第一队列对应的目标队列开启拥塞控制之后,所述方法还包括:
当所述第一队列满足预设关闭指标时,通知所述发送端设备对所述发送端设备的所述目标队列关闭拥塞控制;
其中,所述预设关闭指标包括:所述接收端设备的多个队列对所述接收端设备的缓存空间的占用量小于所述第一队列的关闭反压水线值。
5.根据权利要求4所述的方法,其特征在于,
所述预设关闭指标还包括以下一个或多个:
所述接收端设备的多个队列对所述接收端设备的缓存空间的占用量小于所述第一队列的关闭反压水线值的时长达到或超过预设时长阈值;
所述第一队列不属于所述接收端设备的多个队列中第一优先级的N个最长队列,所述第一队列的优先级为所述第一优先级,当所述第一优先级为所述多个队列的优先级中的最低优先级时,所述N为大于0的整数,当所述第一优先级为所述多个队列的优先级中的非最低优先级时,所述N为大于或等于0的整数;
所述第一队列的长度小于预设长度阈值。
6.根据权利要求1至5任一所述的方法,其特征在于,
在通知所述发送端设备对所述发送端设备中与所述第一队列对应的目标队列开启拥塞控制之后,所述方法还包括:
为所述目标队列分配发送信用值;
向所述发送端设备发送包含所述发送信用值的消息,以使所述发送端设备按照所述发送信用值向所述接收端设备发送所述目标队列中的报文。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
根据所述接收端设备的多个队列对所述接收端设备的缓存空间的占用量,调整所述目标队列的发送信用值的分配系数,所述分配系数与所述接收端设备的多个队列对所述接收端设备的缓存空间的占用量负相关。
8.根据权利要求1至7任一所述的方法,其特征在于,所述接收端设备的多个队列中的每个队列具有反压水线值,不同优先级的队列的反压水线值不同,所述方法还包括:
当所述接收端设备的多个队列对所述接收端设备的缓存空间的占用量达到或超出所述接收端设备的最小水线阈值时,调整所述接收端设备的各个优先级的队列的反压水线值。
9.根据权利要求8所述的方法,其特征在于,
所述反压水线值包括开启反压水线值和关闭反压水线值,
所述调整所述接收端设备的各个优先级的队列的反压水线值,包括:
对于任一优先级的队列:
根据所述接收端设备的最大水线阈值、所述接收端设备的所述最小水线阈值,低于所述任一优先级的所有优先级的队列对所述接收端设备的缓存空间的占用量,以及所述接收端设备的所有队列对所述接收端设备的缓存空间的占用量,调整所述任一优先级的队列的开启反压水线值;
根据所述任一优先级的队列的开启反压水线值,调整所述任一优先级的队列的关闭反压水线值。
10.根据权利要求9所述的方法,其特征在于,
所述任一优先级的队列对所述接收端设备的缓存空间的占用量与低于所述任一优先级的所有优先级的队列对所述接收端设备的缓存空间的占用量负相关,所述任一优先级的队列的开启反压水线值与所述任一优先级的队列对所述接收端设备的缓存空间的占用量负相关;
所述任一优先级的队列的开启反压水线值大于或等于低于所述任一优先级的所有优先级的队列的开启反压水线值。
11.根据权利要求9或10所述的方法,其特征在于,
所述根据所述接收端设备的最大水线阈值、所述接收端设备的所述最小水线阈值,低于所述任一优先级的所有优先级的队列对所述接收端设备的缓存空间的占用量,以及所述接收端设备的所有队列对所述接收端设备的缓存空间的占用量,调整所述任一优先级的队列的开启反压水线值,包括:
根据所述最大水线阈值、所述最小水线阈值,低于所述任一优先级的所有优先级的队列对所述接收端设备的缓存空间的占用量,以及所述接收端设备的所有队列对所述接收端设备的缓存空间的占用量,采用水线值公式计算所述任一优先级的队列的开启反压水线值;
根据计算结果调整所述任一优先级的队列的开启反压水线值;
其中,所述水线值公式为:
所述Vo_pri_k表示优先级为pri_k的队列的开启反压水线值,所述B_pri_i表示优先级为pri_i的所有队列对所述接收端设备的缓存空间的占用量,所述B_total表示所述接收端设备的所有队列对所述接收端设备的缓存空间的占用量,所述V_max表示所述最大水线阈值,所述V_min表示所述最小水线阈值。
12.根据权利要求8所述的方法,其特征在于,
所述反压水线值包括开启反压水线值和关闭反压水线值,
所述调整所述接收端设备的各个优先级的队列的反压水线值,包括:
对于任一优先级的队列:
根据所述任一优先级的所有队列对所述接收端设备的缓存空间的占用量以及所述缓存空间的大小,调整所述任一优先级的队列的开启反压水线值,所述任一优先级的队列的开启反压水线值与所述任一优先级的所有队列对所述接收端设备的缓存空间的占用量负相关;
根据所述任一优先级的队列的开启反压水线值,调整所述任一优先级的队列的关闭反压水线值。
13.根据权利要求8所述的方法,其特征在于,
所述反压水线值包括开启反压水线值和关闭反压水线值,
所述调整所述接收端设备的各个优先级的队列的反压水线值,包括:
对于任一优先级的队列:
根据所述任一优先级的M个最长队列的时延均值和所述接收端设备的所有优先级的所有最长队列的时延均值,调整所述任一优先级的队列的开启反压水线值,所述M为大于0的整数;
根据所述任一优先级的队列的开启反压水线值,调整所述任一优先级的队列的关闭反压水线值。
14.根据权利要求8至13任一所述的方法,其特征在于,所述方法还包括:
在目标时长内所述接收端设备的所有队列对所述接收端设备的缓存空间的最大占用量大于所述最小水线阈值且小于所述最大水线阈值与第一门限值的差值,或者,所述最大占用量大于所述最大水线阈值与第二门限值的差值时,调整所述最小水线阈值。
15.一种拥塞控制方法,其特征在于,所述方法包括:
根据接收端设备的通知对发送端设备的目标队列开启拥塞控制,所述接收端设备的每个队列与所述发送端设备中的一个或多个队列对应,所述目标队列与所述接收端设备的第一队列对应;
其中,所述接收端设备在所述第一队列满足预设开启指标时通知所述发送端设备对所述目标队列开启拥塞控制,所述预设开启指标包括:所述接收端设备的多个队列对所述接收端设备的缓存空间的占用量达到或超出所述第一队列的开启反压水线值。
16.根据权利要求15所述的方法,其特征在于,
所述预设开启指标还包括以下一个或多个:
所述第一队列属于所述接收端设备的多个队列中第一优先级的N个最长队列,所述第一队列的优先级为所述第一优先级,当所述第一优先级为所述多个队列的优先级中的最低优先级时,所述N为大于0的整数,当所述第一优先级为所述多个队列的优先级中的非最低优先级时,所述N为大于或等于0的整数;
所述第一队列的长度达到或超过预设长度阈值。
17.根据权利要求15或16所述的方法,其特征在于,
所述根据接收端设备的通知对发送端设备的目标队列开启拥塞控制,包括:
接收所述接收端设备发送的开启控制消息,所述开启控制消息指示所述发送端设备对所述目标队列开启拥塞控制;
根据所述开启控制消息对所述目标队列开启拥塞控制。
18.根据权利要求15至17任一所述的方法,其特征在于,
在根据接收端设备的通知对发送端设备的目标队列开启拥塞控制之后,所述方法还包括:
根据所述接收端设备的通知对所述发送端设备的所述目标队列关闭拥塞控制;
其中,所述接收端设备在所述第一队列满足预设关闭指标时通知所述发送端设备对所述目标队列关闭拥塞控制,所述预设关闭指标包括:所述接收端设备的多个队列对所述接收端设备的缓存空间的占用量小于所述第一队列的关闭反压水线值。
19.根据权利要求18所述的方法,其特征在于,
所述预设关闭指标还包括以下一个或多个:
所述接收端设备的多个队列对所述接收端设备的缓存空间的占用量小于所述第一队列的关闭反压水线值的时长达到或超过预设时长阈值;
所述第一队列不属于所述接收端设备的多个队列中第一优先级的N个最长队列,所述第一队列的优先级为所述第一优先级,当所述第一优先级为所述多个队列的优先级中的最低优先级时,所述N为大于0的整数,当所述第一优先级为所述多个队列的优先级中的非最低优先级时,所述N为大于或等于0的整数;
所述第一队列的长度小于预设长度阈值。
20.根据权利要求15至19任一所述的方法,其特征在于,
在根据接收端设备的通知对发送端设备的目标队列开启拥塞控制之后,所述方法还包括:
接收所述接收端设备发送的包含发送信用值的消息;
按照所述发送信用值向所述接收端设备发送所述目标队列中的报文。
21.一种拥塞控制装置,其特征在于,所述装置包括:
监控模块,用于监控接收端设备的多个队列,所述接收端设备的每个队列与发送端设备中的一个或多个队列对应;
开启模块,用于当所述接收端设备的多个队列中的第一队列满足预设开启指标时,通知所述发送端设备对所述发送端设备中与所述第一队列对应的目标队列开启拥塞控制;
其中,所述预设开启指标包括:所述接收端设备的多个队列对所述接收端设备的缓存空间的占用量达到或超出所述第一队列的开启反压水线值。
22.根据权利要求21所述的装置,其特征在于,
所述预设开启指标还包括以下一个或多个:
所述第一队列属于所述接收端设备的多个队列中第一优先级的N个最长队列,所述第一队列的优先级为所述第一优先级,当所述第一优先级为所述多个队列的优先级中的最低优先级时,所述N为大于0的整数,当所述第一优先级为所述多个队列的优先级中的非最低优先级时,所述N为大于或等于0的整数;
所述第一队列的长度达到或超过预设长度阈值。
23.根据权利要求21或22所述的装置,其特征在于,
所述开启模块,用于向所述发送端设备发送开启控制消息,所述开启控制消息指示所述发送端设备对所述目标队列开启拥塞控制。
24.根据权利要求21至23任一所述的装置,其特征在于,所述装置还包括:
关闭模块,用于当所述第一队列满足预设关闭指标时,通知所述发送端设备对所述发送端设备的所述目标队列关闭拥塞控制;
其中,所述预设关闭指标包括:所述接收端设备的多个队列对所述接收端设备的缓存空间的占用量小于所述第一队列的关闭反压水线值。
25.根据权利要求24所述的装置,其特征在于,
所述预设关闭指标还包括以下一个或多个:
所述接收端设备的多个队列对所述接收端设备的缓存空间的占用量小于所述第一队列的关闭反压水线值的时长达到或超过预设时长阈值;
所述第一队列不属于所述接收端设备的多个队列中第一优先级的N个最长队列,所述第一队列的优先级为所述第一优先级,当所述第一优先级为所述多个队列的优先级中的最低优先级时,所述N为大于0的整数,当所述第一优先级为所述多个队列的优先级中的非最低优先级时,所述N为大于或等于0的整数;
所述第一队列的长度小于预设长度阈值。
26.根据权利要求21至25任一所述的装置,其特征在于,所述装置还包括:
分配模块,用于为所述目标队列分配发送信用值;
发送模块,用于向所述发送端设备发送包含所述发送信用值的消息,以使所述发送端设备按照所述发送信用值向所述接收端设备发送所述目标队列中的报文。
27.根据权利要求26所述的装置,其特征在于,所述装置还包括:
系数调整模块,用于根据所述接收端设备的多个队列对所述接收端设备的缓存空间的占用量,调整所述目标队列的发送信用值的分配系数,所述分配系数与所述接收端设备的多个队列对所述接收端设备的缓存空间的占用量负相关。
28.根据权利要求21至27任一所述的装置,其特征在于,所述接收端设备的多个队列中的每个队列具有反压水线值,不同优先级的队列的反压水线值不同,所述装置还包括:
水线调整模块,用于当所述接收端设备的多个队列对所述接收端设备的缓存空间的占用量达到或超出所述接收端设备的最小水线阈值时,调整所述接收端设备的各个优先级的队列的反压水线值。
29.根据权利要求28所述的装置,其特征在于,
所述反压水线值包括开启反压水线值和关闭反压水线值,所述水线调整模块,用于:
对于任一优先级的队列:
根据所述接收端设备的最大水线阈值、所述接收端设备的所述最小水线阈值,低于所述任一优先级的所有优先级的队列对所述接收端设备的缓存空间的占用量,以及所述接收端设备的所有队列对所述接收端设备的缓存空间的占用量,调整所述任一优先级的队列的开启反压水线值;
根据所述任一优先级的队列的开启反压水线值,调整所述任一优先级的队列的关闭反压水线值。
30.根据权利要求29所述的装置,其特征在于,
所述任一优先级的队列对所述接收端设备的缓存空间的占用量与低于所述任一优先级的所有优先级的队列对所述接收端设备的缓存空间的占用量负相关,所述任一优先级的队列的开启反压水线值与所述任一优先级的队列对所述接收端设备的缓存空间的占用量负相关;
所述任一优先级的队列的开启反压水线值大于或等于低于所述任一优先级的所有优先级的队列的开启反压水线值。
31.根据权利要求29或30所述的装置,其特征在于,所述水线调整模块,用于:
根据所述最大水线阈值、所述最小水线阈值,低于所述任一优先级的所有优先级的队列对所述接收端设备的缓存空间的占用量,以及所述接收端设备的所有队列对所述接收端设备的缓存空间的占用量,采用水线值公式计算所述任一优先级的队列的开启反压水线值;
根据计算结果调整所述任一优先级的队列的开启反压水线值;
其中,所述水线值公式为:
所述Vo_pri_k表示优先级为pri_k的队列的开启反压水线值,所述B_pri_i表示优先级为pri_i的所有队列对所述接收端设备的缓存空间的占用量,所述B_total表示所述接收端设备的所有队列对所述接收端设备的缓存空间的占用量,所述V_max表示所述最大水线阈值,所述V_min表示所述最小水线阈值。
32.根据权利要求28所述的装置,其特征在于,
所述反压水线值包括开启反压水线值和关闭反压水线值,所述水线调整模块,用于:
对于任一优先级的队列:
根据所述任一优先级的所有队列对所述接收端设备的缓存空间的占用量以及所述缓存空间的大小,调整所述任一优先级的队列的开启反压水线值,所述任一优先级的队列的开启反压水线值与所述任一优先级的所有队列对所述接收端设备的缓存空间的占用量负相关;
根据所述任一优先级的队列的开启反压水线值,调整所述任一优先级的队列的关闭反压水线值。
33.根据权利要求28所述的装置,其特征在于,
所述反压水线值包括开启反压水线值和关闭反压水线值,所述水线调整模块,用于:
对于任一优先级的队列:
根据所述任一优先级的M个最长队列的时延均值和所述接收端设备的所有优先级的所有最长队列的时延均值,调整所述任一优先级的队列的开启反压水线值,所述M为大于0的整数;
根据所述任一优先级的队列的开启反压水线值,调整所述任一优先级的队列的关闭反压水线值。
34.根据权利要求28至33任一所述的装置,其特征在于,所述装置还包括:
阈值调整模块,用于在目标时长内所述接收端设备的所有队列对所述接收端设备的缓存空间的最大占用量大于所述最小水线阈值且小于所述最大水线阈值与第一门限值的差值,或者,所述最大占用量大于所述最大水线阈值与第二门限值的差值时,调整所述最小水线阈值。
35.一种拥塞控制装置,其特征在于,所述装置包括:
第一接收模块,用于接收接收端设备发送的对发送端设备的目标队列开启拥塞控制的通知,所述接收端设备的每个队列与所述发送端设备中的一个或多个队列对应,所述目标队列与所述接收端设备的第一队列对应;
开启模块,用于根据所述接收端设备的通知对所述发送端设备的目标队列开启拥塞控制。
36.根据权利要求35所述的装置,其特征在于,
所述第一接收模块,用于接收所述接收端设备发送的开启控制消息,所述开启控制消息携带所述目标队列的标识和使能标志位;
所述开启模块,用于根据所述目标队列的标识确定所述目标队列,根据所述使能标志位对所述目标队列开启拥塞控制。
37.根据权利要求35或36所述的装置,其特征在于,所述装置还包括:
第二接收模块,用于接收所述接收端设备发送的对所述发送端设备的目标队列关闭拥塞控制的通知;
关闭模块,用于根据所述接收端设备的通知对所述发送端设备的目标队列关闭拥塞控制。
38.根据权利要求37所述的装置,其特征在于,
所述第二接收模块,用于接收所述接收端设备发送的关闭控制消息,所述关闭控制消息携带所述目标队列的标识和去使能标志位;
所述关闭模块,用于根据所述目标队列的标识确定所述目标队列,根据所述去使能标志位对所述目标队列关闭拥塞控制。
39.根据权利要求35至39任一所述的装置,其特征在于,所述装置还包括:
第三接收模块,用于接收所述接收端设备发送的包含发送信用值的消息;
发送模块,用于按照所述发送信用值向所述接收端设备发送所述目标队列中的报文。
40.一种拥塞控制装置,其特征在于,所述拥塞控制装置包括:处理器和存储器,所述存储器中存储有程序,所述处理器用于执行所述存储器中存储的程序以实现权利要求1至14任一所述的拥塞控制方法。
41.一种拥塞控制装置,其特征在于,所述拥塞控制装置包括:处理器和存储器,所述存储器中存储有程序,所述处理器用于执行所述存储器中存储的程序以实现权利要求15至20任一所述的拥塞控制方法。
42.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至15任一所述的拥塞控制方法,或者,实现权利要求16至20任一所述的拥塞控制方法。
43.一种芯片,其特征在于,所述芯片包括可编程逻辑电路和/或程序指令,当所述芯片运行时用于实现权利要求1至15任一所述的拥塞控制方法,或者,实现权利要求16至20任一所述的拥塞控制方法。
44.一种拥塞控制系统,其特征在于,包括:发送端设备和接收端设备,
所述接收端设备用于:监控所述接收端设备的多个队列,所述接收端设备的每个队列与所述发送端设备中的一个或多个队列对应;当所述接收端设备的多个队列中的第一队列满足预设开启指标时,通知所述发送端设备对所述发送端设备中与所述第一队列对应的目标队列开启拥塞控制;其中,所述预设开启指标包括:所述接收端设备的多个队列对所述接收端设备的缓存空间的占用量达到或超出所述第一队列的开启反压水线值;
所述发送端设备用于:根据所述接收端设备的通知对所述发送端设备中与所述第一队列对应的目标队列开启拥塞控制。
45.根据权利要求44所述的拥塞控制系统,其特征在于,所述发送端设备包括权利要求35至39任一所述的拥塞控制装置,所述接收端设备包括权利要求21至34任一所述的拥塞控制装置;或者,所述发送端设备包括权利要求41所述的拥塞控制装置,所述接收端设备包括权利要求40所述的拥塞控制装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2021/072574 WO2021143913A1 (zh) | 2020-01-19 | 2021-01-18 | 拥塞控制方法、装置及系统、存储介质 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010060644 | 2020-01-19 | ||
CN2020100606445 | 2020-01-19 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113141313A true CN113141313A (zh) | 2021-07-20 |
Family
ID=76809268
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010075761.9A Pending CN113141313A (zh) | 2020-01-19 | 2020-01-22 | 拥塞控制方法、装置及系统、存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113141313A (zh) |
WO (1) | WO2021143913A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113973085B (zh) * | 2020-07-22 | 2023-10-20 | 华为技术有限公司 | 一种拥塞控制方法和装置 |
CN113507420B (zh) * | 2021-08-05 | 2022-03-15 | 清华大学 | 一种拥塞控制方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1698976A1 (en) * | 2005-03-03 | 2006-09-06 | Siemens Aktiengesellschaft | Priority-sensitive reallocation of buffer space |
CN106330758A (zh) * | 2015-06-19 | 2017-01-11 | 中兴通讯股份有限公司 | 一种基于多层队列流控反压的传送方法及装置 |
US10708819B2 (en) * | 2016-02-25 | 2020-07-07 | Telefonaktiebolaget Lm Ericsson (Publ) | Back-pressure control in a telecommunications network |
CN109660468B (zh) * | 2017-10-12 | 2022-08-16 | 深圳市中兴微电子技术有限公司 | 一种端口拥塞管理方法、装置和设备 |
-
2020
- 2020-01-22 CN CN202010075761.9A patent/CN113141313A/zh active Pending
-
2021
- 2021-01-18 WO PCT/CN2021/072574 patent/WO2021143913A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2021143913A1 (zh) | 2021-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7916718B2 (en) | Flow and congestion control in switch architectures for multi-hop, memory efficient fabrics | |
US8125902B2 (en) | Method and system for congestion avoidance in packet switching devices | |
EP1810466B1 (en) | Directional and priority based flow control between nodes | |
US9258232B2 (en) | Ingress traffic flow control in a data communications system | |
US20200195570A9 (en) | Method and system for storing packets for a bonded communication links | |
US8144588B1 (en) | Scalable resource management in distributed environment | |
WO2005019975A2 (en) | Method and apparatus for bandwidth guarantee and overload protection in a network switch | |
WO2021148020A1 (zh) | 调整服务等级的方法、装置、设备及存储介质 | |
WO2019153931A1 (zh) | 数据传输控制方法和装置、以及网络传输设备和存储介质 | |
WO2021143913A1 (zh) | 拥塞控制方法、装置及系统、存储介质 | |
JP7211765B2 (ja) | パケット転送装置、方法、及びプログラム | |
US7391785B2 (en) | Method for active queue management with asymmetric congestion control | |
US11936570B1 (en) | Modular switch and a method for scaling switches | |
WO2023116611A1 (zh) | 一种队列控制的方法及装置 | |
CN112804156A (zh) | 一种拥塞避免方法和装置及计算机可读存储介质 | |
WO2022135202A1 (zh) | 业务流的调度方法、装置及系统 | |
CN112787919B (zh) | 报文传输方法及设备、可读介质 | |
CN113765796A (zh) | 流量转发控制方法及装置 | |
EP1079660A1 (en) | Buffer acceptance method | |
US11658924B2 (en) | Buffer allocation method, and device | |
US11973696B2 (en) | Allocation of shared reserve memory to queues in a network device | |
CN110300069B (zh) | 数据传输方法、优化装置及系统 | |
CN116868554A (zh) | 一种控制数据流传输的方法及通信装置 | |
JPH03214945A (ja) | パケット交換網における呼接続制御装置 | |
JP2003023456A (ja) | 多重化装置および帯域制御装置およびプログラムおよび記録媒体 |
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 |