CN109600320B - 拥塞处理方法及设备、数据中心网络 - Google Patents

拥塞处理方法及设备、数据中心网络 Download PDF

Info

Publication number
CN109600320B
CN109600320B CN201710917404.0A CN201710917404A CN109600320B CN 109600320 B CN109600320 B CN 109600320B CN 201710917404 A CN201710917404 A CN 201710917404A CN 109600320 B CN109600320 B CN 109600320B
Authority
CN
China
Prior art keywords
data
sub
congestion
queue
preset
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
CN201710917404.0A
Other languages
English (en)
Other versions
CN109600320A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201710917404.0A priority Critical patent/CN109600320B/zh
Publication of CN109600320A publication Critical patent/CN109600320A/zh
Application granted granted Critical
Publication of CN109600320B publication Critical patent/CN109600320B/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/12Avoiding congestion; Recovering from congestion
    • H04L47/122Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities

Landscapes

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

Abstract

本申请公开了一种拥塞处理方法及设备、数据中心网络,属于通信技术领域。所述方法包括:通过入端口接收上游设备发送的优先级队列中的多条数据流属于同一优先级队列的多条数据流,优先级队列包括多个子队列,所述多个子队列中的每个子队列包括至少一条数据流;在将多条数据流传出下游设备的过程中,检测n个出端口中是否存在拥塞出端口;当检测到存在拥塞出端口时,确定第一类数据流中的拥塞数据流;向上游设备发送指示信息,指示信息用于指示:暂停拥塞数据流所在的拥塞子队列中数据流的发送。本申请解决了数据中心网络的数据传输效率较低的问题,提高了数据中心网络的数据传输效率。

Description

拥塞处理方法及设备、数据中心网络
技术领域
本申请涉及通信技术领域,特别涉及一种拥塞处理方法及设备、数据中心网络。
背景技术
数据中心是利用通信网络互连的一个资源池,其中,该资源池包括计算资源,存储资源和网络资源,该通信网络被称为数据中心网络(data center network,DCN)。数据中心网络由多个设备组成,多个设备之间通过设备上的端口传输数据流。设备上的端口可以分为入端口和出端口,其中,接收数据流的端口称为入端口,发送数据流的端口称为出端口。示例的,上游设备(发送数据流的设备)能够通过其出端口以及下游设备(接收数据流的设备)的入端口,向该下游设备发送数据流。
相关技术中,上游设备在向下游设备发送数据流时,先将数据流缓存在本地的不同优先级队列中,并根据各个队列的优先级发送队列中的数据流。下游设备会将接收到的数据流通过下游设备的出端口传出下游设备,以将数据流发往最终的接收端。下游设备在将数据流传出下游设备的过程中,会检测下游设备的出端口中是否存在拥塞出端口,即发生拥塞的端口。当下游设备的出端口中存在拥塞出端口时,下游设备会将通过该拥塞出端口发出的每条数据流确定为拥塞数据流,并确定每个拥塞数据流所属的优先级队列为拥塞优先级队列。然后,下游设备向上游设备发送基于优先级的流控(priority flow control,PFC)帧,该PFC帧用于指示上游设备暂停拥塞优先级队列中所有数据流的发送。上游设备收到该PFC帧后,根据所述PFC帧的指示暂停拥塞优先级队列中所有数据流的发送,这导致数据中心网络中被暂停发送的数据流较多,数据中心网络的数据传输效率较低。
发明内容
本申请提供了一种拥塞处理方法及设备、数据中心网络,能够避免在发生拥塞时暂停过多的数据流导致的数据传输效率低的问题,所述技术方案如下:
第一方面,提供了一种拥塞处理方法,用于下游设备,所述下游设备具有m个入端口和n个出端口,m≥1,n≥1,所述方法包括:通过所述入端口接收上游设备发送的属于同一优先级队列的多个数据流,所述优先级队列包括多个子队列,所述多个子队列中的每个子队列包括至少一个数据流;在将所述多个数据流传出所述下游设备的过程中,检测所述n个出端口中是否存在拥塞出端口;当检测到存在所述拥塞出端口时,确定第一类数据流中的拥塞数据流,所述第一类数据流包括所述多个数据流中需要通过所述拥塞出端口传出所述下游设备的至少一条数据流;向所述上游设备发送指示信息,所述指示信息用于指示:暂停所述拥塞数据流所在的拥塞子队列中数据流的发送。
由于上游设备发送的优先级队列包括多个子队列,且在下游设备出现拥塞出端口时,下游设备仅指示上游设备暂停根据拥塞出端口确定的拥塞数据流所属的拥塞子队列的发送,使得发送拥塞数据流的上游设备仅暂停优先级队列中拥塞子队列的发送,而不暂停优先级队列中其他子队列的发送。上游设备暂停发送的数据流较少,从而减少了数据中心网络中被暂停发送的数据流的个数,提高了数据中心网络的数据传输效率。另外,在数据流被暂停发送后,被暂停后数据流的流完成时间(flow completion time,FCT)会增长。当相关技术中被暂停发送的数据流较多时,数据中心网络中传输的所有数据流的平均FCT增长,且平均FCT越长数据中心网络的性能越差,因此,相关技术中数据中心网络的性能较差。而本申请中被暂停发送的数据流较少,也即是减小了FCT增长的数据流的个数,因此,减小了数据中心网络中所有数据流的平均FCT,提升了数据中心网络的性能。
可选的,当所述第一类数据流包括q条数据流,且q>1时,所述确定所述第一类数据流中的拥塞数据流,包括:将所述q条数据流中的一部分数据流确定为所述拥塞数据流。需要说明的是,相关技术中在出现拥塞出端口时,下游设备会将该拥塞出端口的每条数据流均确定为拥塞数据流,并指示上游设备暂停发送每个拥塞数据流所属的优先级队列中的数据流,因此,上游设备暂停发送的数据流较多。而本申请中,若需要通过拥塞出端口传出的第一类数据流包括多条数据流,则在出现拥塞出端口时,下游设备并未将所有的第一类数据流均确定为拥塞数据流,而是将该第一类数据流中的一部分数据流确定为拥塞数据流,从而指示上游设备仅限制该一部分数据流所属的子队列中数据流的发送,而并未指示上游设备限制第一类数据流中另一部分数据流所在子队列中数据流的发送,所以,进一步的减小了上游设备暂停发送的数据流的个数,进一步的提高了数据中心网络的数据传输效率,以及数据中心网络的性能。
可选的,所述将所述q条数据流中的一部分数据流确定为所述拥塞数据流,包括:判断所述q条数据流中是否存在满足第一预设条件的数据流,所述第一预设条件包括:数据流在所述下游设备上的缓存数据量大于第一预设数据量阈值;当所述q条数据流中存在满足所述第一预设条件的数据流,且满足所述第一预设条件的所述数据流的个数小于q时,确定满足所述第一预设条件的所述数据流为所述拥塞数据流;当所述q条数据流中不存在满足所述第一预设条件的数据流时,将所述q条数据流中缓存数据量较大的x条数据流均确定为所述拥塞数据流,1≤x<q。可选的,所述将所述q条数据流中的一部分数据流确定为所述拥塞数据流还包括:当所述q条数据流中的每条数据流均满足所述第一预设条件,或所述q条数据流均不满足所述第一预设条件时,确定所述q条数据流中的每条数据流均为所述拥塞数据流。
若数据流在下游设备上的缓存数据量越大,则该条数据流越容易引起该出端口的拥塞。下游设备可以根据每条数据流在下游设备上的缓存数据量,确定第一类数据流中较容易引起拥塞出端口拥塞的拥塞数据流。
可选的,所述q条数据流属于r个子队列,所述q≥r>1,所述将所述q条数据流中的一部分数据流确定为所述拥塞数据流,包括:判断所述r个子队列中是否存在满足第四预设条件的子队列,所述第四预设条件包括:子队列的缓存数据量大于第四预设数据量阈值,子队列的缓存数据量等于子队列中数据流的缓存数据量之和;当所述r个子队列中存在满足所述第四预设条件的子队列,且满足所述第四预设条件的子队列的个数小于r时,确定所述r个子队列中满足所述第四预设条件的子队列中的第一类数据流为所述拥塞数据流;当所述r个子队列中不存在满足所述第四预设条件的子队列时,将所述r个子队列中缓存数据量较大的u个子队列中的第一类数据流确定为所述拥塞数据流,r>u≥1。可选的,所述将所述q条数据流中的一部分数据流确定为所述拥塞数据流还包括:当所述r个子队列均满足第四预设条件,或所述r个子队列不满足所述第四预设条件时,确定所述q条数据流中的每条数据流均为所述拥塞数据流。
若数据流所属的子队列在下游设备上的缓存数据量越大,则该条数据流越容易引起出端口的拥塞。下游设备可以根据q条数据流中每条数据流所属的子队列在下游设备上的缓存数据量,确定q条数据流中较容易引起拥塞出端口拥塞的拥塞数据流。
可选的,所述将所述q条数据流中的一部分数据流确定为所述拥塞数据流,包括:判断所述q条数据流中是否存在满足第二预设条件的数据流,所述第二预设条件包括:在检测到存在所述拥塞出端口前的第一预设时间段内,数据流在所述下游设备上的传入数据量大于第二预设数据量阈值;当所述q条数据流中存在满足所述第二预设条件的数据流,且满足所述第一预设条件的所述数据流的个数小于q时,确定满足所述第二预设条件的所述数据流为所述拥塞数据流;当所述q条数据流中不存在满足所述第二预设条件的数据流时,将所述q条数据流中在所述第一预设时间段内在所述下游设备上的传入数据量较大的y个所述第一类数据流均确定为所述拥塞数据流,1≤y<q。可选的,所述将所述q条数据流中的一部分数据流确定为所述拥塞数据流还包括:当所述q条数据流中的每条数据流均满足所述第二预设条件,或所述q条数据流均不满足所述第二预设条件时,确定所述q条数据流中的每条数据流均为所述拥塞数据流。
若数据流在下游设备上的传入数据量越大,则该条数据流越容易引起该出端口的拥塞。下游设备可以根据q条数据流中每条数据流在下游设备上的传入数据量,确定q条数据流中较容易引起拥塞出端口拥塞的拥塞数据流。
可选的,所述q条数据流属于r个子队列,所述q≥r>1,所述将所述q条数据流中的一部分数据流确定为所述拥塞数据流,包括:判断所述r个子队列中是否存在满足第五预设条件的子队列,所述第五预设条件包括:在所述第一预设时间段内子队列的传入数据量大于第五预设数据量阈值,子队列的传入数据量等于子队列中数据流的传入数据量之和;当所述r个子队列中存在满足所述第五预设条件的子队列,且满足所述第五预设条件的子队列的个数小于r时,确定所述r个子队列中满足所述第五预设条件的子队列中的第一类数据流为所述拥塞数据流;当所述r个子队列中不存在满足所述第五预设条件的子队列时,确定所述r个子队列中在所述第一预设时间段内传入数据量较大的v个子队列中的第一类数据流为所述拥塞数据流,r>v≥1。可选的,所述将所述q条数据流中的一部分数据流确定为所述拥塞数据流还包括:当所述r个子队列均满足第五预设条件,或所述r个子队列均不满足所述第五预设条件时,确定所述q条数据流中的每条数据流均为所述拥塞数据流。
若数据流所属的子队列在下游设备上的传入数据量越大,则该条数据流越容易引起该出端口的拥塞。下游设备可以根据q条数据流中的每条数据流所属的子队列在下游设备上的传入数据量,确定q条数据流中较容易引起拥塞出端口拥塞的拥塞数据流。
可选的,所述将所述q条数据流中的一部分数据流确定为所述拥塞数据流,包括:判断所述q条数据流中是否存在满足第三预设条件的数据流,所述第三预设条件包括:在检测到存在所述拥塞出端口前的第二预设时间段内,数据流在所述下游设备上的传出数据量大于第三预设数据量阈值;当所述q条数据流中存在满足所述第三预设条件的数据流,且满足所述第三预设条件的所述数据流的个数小于q时,确定满足所述第三预设条件的所述数据流为所述拥塞数据流;当所述q条数据流中不存在满足所述第三预设条件的数据流时,将所述q条数据流中在所述第二预设时间段内在所述下游设备上的传出数据量较大的z条数据流均确定为所述拥塞数据流,1≤z<q。可选的,所述将所述q条数据流中的一部分数据流确定为所述拥塞数据流还包括:当所述q条数据流中的每条数据流均满足所述第三预设条件,或所述q条数据流均不满足所述第三预设条件时,确定所述q条数据流中的每条数据流均为所述拥塞数据流。
若数据流在下游设备上的传出数据量越大,则该条数据流越容易引起该出端口的拥塞。下游设备可以根据q条数据流中的每条数据流在下游设备上的传出数据量,确定q条数据流中较容易引起拥塞出端口拥塞的拥塞数据流。
可选的,所述q条数据流属于r个子队列,所述q≥r>1,所述将所述q条数据流中的一部分数据流确定为所述拥塞数据流,包括:判断所述r个子队列中是否存在满足第六预设条件的子队列,所述第六预设条件包括:在所述第一预设时间段内子队列的传出数据量大于第六预设数据量阈值,子队列的传出数据量等于子队列中数据流的传出数据量之和;当所述r个子队列中存在满足所述第六预设条件的子队列,且满足所述第六预设条件的子队列的个数小于r时,确定满足所述第六预设条件的所述子队列中的第一类数据流为所述拥塞数据流;当所述r个子队列中不存在满足所述第六预设条件的子队列时,确定所述r个子队列中在所述第一预设时间段内传出数据量较大的t个子队列中的第一类数据流为所述拥塞数据流,r>t≥1。可选的,所述将所述q条数据流中的一部分数据流确定为所述拥塞数据流还包括:当所述r个子队列均满足所述第六预设条件,或所述r个子队列中不存在满足所述第六预设条件的子队列时,确定所述q条数据流中的每条数据流均为所述拥塞数据流。
若数据流所属的子队列在下游设备上的传出数据量越大,则该条数据流越容易引起该出端口的拥塞。下游设备可以根据q条数据流中每条数据流所属的子队列在下游设备上的传出数据量,确定q条数据流中较容易引起拥塞出端口拥塞的拥塞数据流。
可选的,当所述第一类数据流包括q条数据流,且q≥1时,所述确定所述第一类数据流中的拥塞数据流,包括:确定所述q条数据流中的每条数据流均为所述拥塞数据流。需要通过某一出端口传出下游设备的每条数据流均能够引起该出端口拥塞。当拥塞下行控制器确定拥塞出端口拥塞时,该下游设备可以确定每条需要通过该拥塞出端口传出的数据流,均为较容易引起拥塞出端口拥塞的拥塞数据流。
可选的,当所述第一类数据流包括q条数据流,且q≥1时,所述确定所述第一类数据流中的拥塞数据流,包括:确定所述q条数据流中正在通过所述拥塞出端口传出的数据流为所述拥塞数据流。需要通过某一出端口传出下游设备的每条数据流均能够引起该出端口拥塞,且正在传出的数据流更容易引起拥塞出端口的拥塞。当拥塞下行控制器确定拥塞出端口拥塞时,该下游设备可以确定正在通过拥塞出端口传出的第一类数据流为较容易引起拥塞出端口拥塞的拥塞数据流。
可选的,所述指示信息包括:所述拥塞数据流的信息。也即是,下游设备可以直接将拥塞数据流的信息发送至上游设备,使得上游设备根据拥塞数据流的信息,确定该拥塞数据流,以及该拥塞数据流所属的子队列,进而暂停该子队列中所有数据流的发送。
可选的,所述向所述上游设备发送指示信息,包括:将所述拥塞数据流的信息以及预设标识集合输入第一预设公式,得到所述拥塞子队列的标识,其中,所述多个子队列的标识组成所述预设标识集合,所述第一预设公式用于:根据所述上游设备发送的每条数据流的信息以及所述预设标识集合,计算所述每条数据流所属的子队列的标识;向所述上游设备发送所述指示信息,所述指示信息包括所述拥塞子队列的标识。也即是,下游设备在确定拥塞数据流后,可以根据第一预设公式和预设标识集合确定该拥塞数据流所属的子队列。
可选的,在所述向所述上游设备发送指示信息之前,所述方法还包括:接收所述上游设备发送的第一预设公式和预设标识集合。
可选的,在所述向所述上游设备发送指示信息之前,所述方法还包括:接收所述上游设备发送的所述第一预设公式。
可选的,在所述向所述上游设备发送指示信息之前,所述方法还包括:接收上游设备发送的预设标识集合。
可选的,所述向所述上游设备发送指示信息,包括:将所述拥塞数据流的信息以及预设数量输入第二预设公式,得到所述拥塞子队列在所述优先级队列中的排列序号,其中,所述优先级队列中子队列的数量等于所述预设数量,所述第二预设公式用于:根据所述上游设备发送的每条数据流的信息以及所述预设数量,计算所述每条数据流所属的子队列在所属优先级队列中的排列序号;向所述上游设备发送所述指示信息,所述指示信息包括:所述拥塞子队列在所述优先级队列中的排列序号。也即是,上游设备可以提前将告知下游设备数据流所属的子队列的确定方法,以便于下游设备在确定拥塞数据流后,可以自行确定该拥塞数据流所属的子队列。
可选的,在所述向所述上游设备发送指示信息之前,所述方法还包括:接收所述上游设备发送的第二预设公式和预设数量。
可选的,在所述向所述上游设备发送指示信息之前,所述方法还包括:接收所述上游设备发送的第二预设公式。
可选的,在所述向所述上游设备发送指示信息之前,所述方法还包括:接收所述上游设备发送的预设数量。
可选的,所述指示信息还用于指示所述拥塞子队列中数据流的暂停发送时长。也即是,指示信息还用于指示暂停发送时长,上游设备可以在该暂停发送时长内暂停发送该拥塞子队列中的数据流。
可选的,所述向发送所述拥塞数据流的上游设备发送指示信息,包括:向发送所述拥塞数据流的上游设备发送PFC帧,所述PFC帧的预留位包括所述指示信息。也即是,本申请中的指示信息可以复用PFC帧中的预留位。
第二方面,提供了一种拥塞处理方法,用于上游设备,所述方法包括:通过下游设备的入端口向所述下游设备发送属于同一优先级队列的多条数据流,所述优先级队列包括多个子队列,所述多个子队列中的每个子队列包括至少一条数据流;接收所述下游设备发送的指示信息,其中,所述指示信息用于指示:暂停拥塞子队列中数据流的发送,所述拥塞子队列为所述多条数据流中拥塞数据流所属的子队列;根据所述指示信息暂停所述拥塞子队列中数据流的发送。
可选的,所述指示信息包括:所述拥塞数据流的信息,所述根据所述指示信息暂停所述拥塞子队列中数据流的发送,包括:将所述拥塞数据流的信息以及预设标识集合输入第一预设公式,得到所述拥塞子队列的标识,其中,所述多个子队列的标识组成所述预设标识集合,所述第一预设公式用于:根据所述上游设备发送的每条数据流的信息以及所述预设标识集合,计算所述每条数据流所属的子队列的标识;根据所述拥塞子队列的标识,暂停所述拥塞子队列中数据流的发送。
可选的,所述指示信息包括:所述拥塞数据流的信息,所述根据所述指示信息暂停所述拥塞子队列中数据流的发送,包括:将所述拥塞数据流的信息以及预设数量输入第二预设公式,得到所述拥塞子队列在所述优先级队列中的排列序号,其中,所述优先级队列中子队列的数量等于所述预设数量,所述第二预设公式用于:根据所述上游设备发送的每条数据流的信息以及所述预设数量,计算所述每条数据流所属的子队列在所属优先级队列中的排列序号;根据所述拥塞子队列在所述优先级队列中的排列序号,暂停所述拥塞子队列中数据流的发送。
可选的,在所述通过下游设备的入端口向所述下游设备发送属于同一优先级队列的多条数据流之前,所述方法还包括:向所述下游设备发送第一预设公式和预设标识集合。
可选的,在所述通过下游设备的入端口向所述下游设备发送属于同一优先级队列的多条数据流之前,所述方法还包括:向所述下游设备发送第一预设公式。
可选的,在所述通过下游设备的入端口向所述下游设备发送属于同一优先级队列的多条数据流之前,所述方法还包括:向所述下游设备发送预设标识集合。
可选的,在所述通过下游设备的入端口向所述下游设备发送属于同一优先级队列的多条数据流之前,所述方法还包括:向所述下游设备发送第二预设公式和预设数量。
可选的,在所述通过下游设备的入端口向所述下游设备发送属于同一优先级队列的多条数据流之前,所述方法还包括:向所述下游设备发送第二预设公式。
可选的,在所述通过下游设备的入端口向所述下游设备发送属于同一优先级队列的多条数据流之前,所述方法还包括:向所述下游设备发送预设数量。
可选的,所述指示信息还用于指示所述拥塞子队列中数据流的暂停发送时长,所述根据所述指示信息暂停所述拥塞子队列中数据流的发送,包括:根据所述指示信息在所述暂停发送时长内暂停发送所述拥塞子队列中数据流。
可选的,所述接收所述下游设备发送的指示信息,包括:接收所述下游设备发送的PFC帧,所述PFC帧的预留位包括所述指示信息。
第三方面,提供了一种拥塞处理设备,该拥塞处理设备包括执行上述第一方面及其各实现方式中的方法的一个或多个模块。第四方面,提供了另一种拥塞处理设备,该拥塞处理设备包括执行上述第二方面及其各实现方式中的方法的一个或多个模块。
第五方面,提供了一种数据中心网络,所述数据中心网络包括:上游设备和下游设备,所述下游设备包括第三方面所述的拥塞处理设备;所述上游设备包括第四方面所述的拥塞处理设备。
第六方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述计算机可读存储介质在计算机上运行时,使得计算机执行如第一方面或第二方面所述的拥塞处理方法。
第七方面,提供了一种包含指令的计算机程序产品,当所述计算机程序产品在计算机上运行时,使得计算机执行第一方面或第二方面所述的拥塞处理方法。
本申请提供的技术方案带来的有益效果是:
由于上游设备发送的每个优先级队列包括多个子队列,且在下游设备出现拥塞出端口时,下游设备仅指示上游设备暂停根据拥塞出端口确定的拥塞数据流所属的拥塞子队列的发送,使得发送拥塞数据流的上游设备仅暂停该拥塞子队列的发送,而不暂停该优先级队列中其他子队列的发送,使得上游设备暂停发送的数据流较少,从而减少了数据中心网络中被暂停发送的数据流的个数,提高了数据中心网络的数据传输效率。
附图说明
图1为本发明实施例提供的一种数据中心网络的结构示意图;
图2为本发明实施例提供的一种拥塞处理方法的方法流程图;
图3为本发明实施例提供的一种数据传输设备的结构示意图;
图4为本发明实施例提供的一种下游设备确定拥塞数据流的方法流程图;
图5为本发明实施例提供的另一种下游设备确定拥塞数据流的方法流程图;
图6为本发明实施例提供的另一种下游设备确定拥塞数据流的方法流程图;
图7为本发明实施例提供的另一种下游设备确定拥塞数据流的方法流程图;
图8为本发明实施例提供的另一种下游设备确定拥塞数据流的方法流程图;
图9为本发明实施例提供的另一种下游设备确定拥塞数据流的方法流程图;
图10为本发明实施例提供的一种数据帧的结构示意图;
图11为本发明实施例提供的另一种数据帧的结构示意图;
图12为本发明实施例提供的一种PFC帧的结构示意图;
图13为本发明实施例提供的一种拥塞处理设备的结构示意图;
图14为本发明实施例提供的另一种拥塞处理设备的结构示意图;
图15为本发明实施例提供的另一种拥塞处理设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
图1为本发明实施例提供的一种数据中心网络的结构示意图,如图1所示,该数据中心网络0可以包括多个数据传输设备,如数据传输设备A、数据传输设备B、数据传输设备C和数据传输设备D。每个数据传输设备可以具有n个出端口,其中,n≥1,且任意两个数据传输设备的出端口的数量可以相同也可以不同。
在该数据中心网络0中,向其他数据传输设备发送数据流的数据传输设备可以称为上游设备,接收其他数据传输设备发送的数据流的数据传输设备可以称为下游设备。
示例的,数据传输设备A可以向数据传输设备B和数据传输设备C发送数据流,数据传输设备B和数据传输设备C均可以向数据传输设备D发送数据流。此时,数据传输设备A分别为数据传输设备B和数据传输设备C的上游设备,数据传输设备B和数据传输设备C分别为数据传输设备D的上游设备,数据传输设备B和数据传输设备C均为数据传输设备A的下游设备,数据传输设备D分别为数据传输设备B和数据传输设备C的下游设备。
图2为本发明实施例提供的一种拥塞处理方法的方法流程图,该拥塞处理方法可以用于图1所示的数据中心网络。如图2所示,该拥塞处理方法可以包括:
步骤201、上游设备向下游设备发送属于同一优先级队列的多条数据流。
在实际部署中,上游设备一般设置有多个优先级队列,且对应同一个下游设备的多个上游设备可以分别向该下游设备发送各自的优先级队列中的数据流,本发明实施例从一个上游设备的角度对上游设备发送数据流的过程进行举例说明。
示例的,每个上游设备在向下游设备发送数据流前,均需要首先确定数据流需要从该上游设备的哪个出端口传出至下游设备,然后将需要从同一个出端口传出至下游设备的所有数据流划分为至少一个优先级队列,每个优先级队列包括多条数据流,且每个优先级队列具有一个优先级。最后,上游设备可以按照优先级队列的优先级,向下游设备依次传输多个优先级队列中的数据流。
需要说明的是,上游设备确定的每个优先级队列可以包括多个子队列,且每个子队列包括至少一条数据流。例如,优先级队列包括四个子队列,每个子队列包括两条数据流。上游设备在发送每个优先级队列中的数据流时,可以同时发送优先级队列中的多个子队列中的数据流。可选的,该多个子队列中的每个子队列均可以为优先级子队列,且该多个子队列具有不同的优先级,上游设备在发送每个优先级队列中的数据流时,还可以根据优先级子队列的优先级,依次发送优先级队列中的多个优先级子队列中的数据流。
步骤202、下游设备缓存接收到的每条数据流。
示例的,图3为本发明实施例提供的一种数据传输设备的结构示意图,仅仅作为示例,图3中的数据传输设备包括1个入端口和5个出端口。该数据传输设备还可以包括1个上行控制器和5个下行控制器,上行控制器与该入端口对应,5个下行控制器与5个出端口一一对应,上行控制器与每个下行控制器连接。
在下游设备的某一入端口接收到数据流后,该入端口对应的上行控制器可以将该条数据流发送至n个下行控制器中的某一下行控制器。每个下行控制器在接收到上行控制器发送的数据流后,可以对接收到的数据流进行缓存。
步骤203、下游设备将接收到的数据流通过出端口传出下游设备,并在将数据流传出下游设备的过程中,检测n个出端口中是否存在拥塞出端口。
下游设备的每个下行控制器在将接收到的数据流进行缓存后,可以将该条数据流通过该下行控制器对应的出端口传出下游设备(该过程可以参考步骤201中上游设备向下游设备传出数据流的过程)。
需要说明的是,在下行控制器将数据流通过其对应的出端口传出下游设备的过程中,该下行控制器还需要检测其对应的出端口是否拥塞。示例的,下行控制器可以检测其缓存的数据流的数据量;当其缓存的数据量大于预设缓存阈值时,下行控制器可以确定其对应的出端口已经拥塞;当其缓存的数据量小于或等于预设缓存阈值时,下行控制器可以确定其对应的出端口并未拥塞。若确定其对应的出端口并未拥塞,则下行控制器可以重复执行检测其对应的出端口是否拥塞的步骤。
步骤204、当检测到存在拥塞出端口时,下游设备确定第一类数据流中的拥塞数据流,第一类数据流包括需要通过拥塞出端口传出下游设备的至少一条数据流。
需要说明的是,拥塞出端口对应的下行控制器为拥塞下行控制器,拥塞下行控制器接收到的数据流(也即需要通过拥塞出端口传出的数据流)可以称为第一类数据流,该第一类数据流会在拥塞下行控制器上进行缓存,并需要通过拥塞出端口传出下游设备。
可选的,在检测到下游设备的n个出端口中存在拥塞出端口时,下游设备可以通过多种方式在第一类数据流中确定拥塞数据流。示例的,第一类数据流可以包括q条数据流,当q>1时,该下游设备确定第一类数据流中的一部分数据流为拥塞数据流,或者,下游设备确定第一类数据流中的每条数据流均为拥塞数据流。当q=1时,该下游设备确定第一类数据流中的每条数据流均为拥塞数据流。
本发明实施例中将以下面几种可实现方式为例,对下游设备确定拥塞数据流的过程进行举例说明。
在第一种可实现方式中,如图4所示,当q>1时,步骤204可以包括:
步骤2041a、下游设备确定q条数据流中的每条数据流在下游设备上的缓存数据量。
拥塞下行控制器在确定拥塞出端口已经拥塞后,该拥塞下行控制器可以通过查询拥塞下行控制器上的缓存,确定q条数据流中每条数据流的缓存数据量。
步骤2042a、下游设备判断q条数据流中是否存在满足第一预设条件的数据流,第一预设条件包括:数据流在下游设备上的缓存数据量大于第一预设数据量阈值。若q条数据流中存在满足第一预设条件的数据流,则执行步骤2043a;若q条数据流中中不存在满足第一预设条件的数据流,则执行步骤2044a。
拥塞下行控制器上可以预先存储有第一预设数据量阈值。拥塞下行控制器在确定q条数据流中每条数据流的缓存数据量后,还可以将q条数据流中每条数据流的缓存数据量与第一预设数据量阈值进行比较,以确定q条数据流中每条数据流的缓存数据量是否大于第一预设数据量阈值。
步骤2043a、下游设备确定q条数据流中满足第一预设条件的数据流为拥塞数据流。
当拥塞下行控制器确定q条数据流中存在满足第一预设条件的数据流时,该拥塞下行控制器可以将该满足第一预设条件的数据流确定为拥塞数据流。
例如,假设q条数据流包括:数据流L1、数据流L2和数据流L3,且数据流L1的缓存数据量为100兆,数据流L2的缓存数据量为101兆,数据流L3的缓存数据量为120兆,且该第一预设数据量阈值为150兆,则拥塞下行控制器可以确定数据流L1、数据流L2和数据流L3的缓存数据量均小于第一预设数据量阈值,并确定数据流L1、数据流L2和数据流L3为拥塞数据流。
假设q条数据流包括:数据流L1、数据流L2和数据流L3,且数据流L1的缓存数据量为100兆,数据流L2的缓存数据量为130兆,数据流L3的缓存数据量为150兆,且该第一预设数据量阈值为120兆,则拥塞下行控制器可以确定数据流L1的缓存数据量小于第一预设数据量阈值,数据流L2和数据流L3的缓存数据量均大于第一预设数据量阈值,并确定数据流L2和数据流L3均为拥塞数据流。
步骤2044a、下游设备确定q条数据流中的每条数据流均为拥塞数据流,或者,下游设备确定q条数据流中在下游设备上的缓存数据量较大的x条数据流均为拥塞数据流,1≤x<q。
一方面,当拥塞下行控制器确定q条数据流均不满足第一预设条件时,该拥塞下行控制器可以将q条数据流中的每条数据流均确定为拥塞数据流。例如,假设q条数据流包括:数据流L1、数据流L2和数据流L3,且数据流L1的缓存数据量为100兆,数据流L2的缓存数据量为101兆,数据流L3的缓存数据量为150兆,且该第一预设数据量阈值为200兆,则拥塞下行控制器可以确定q条数据流中的每条数据流的缓存数据量均小于第一预设数据量阈值,并确定数据流L1、数据流L2和数据流L3均为拥塞数据流。
另一方面,当确定q条数据流中不存在满足第一预设条件的第一类数据流时,该拥塞下行控制器可以将q条数据流中缓存数据量较大的x条数据流均确定为拥塞数据流。例如,假设q条数据流中分别为数据流L1、数据流L2和数据流L3,且数据流L1的缓存数据量为100兆,数据流L2的缓存数据量为101兆,数据流L3的缓存数据量为150兆,且该第一预设数据量阈值为200兆,x=2,则拥塞下行控制器可以确定q条数据流中的每条数据流的缓存数据量均小于第一预设数据量阈值,并确定q条数据流中缓存数据量较大的两条数据流(也即数据流L3和数据流L2)均为拥塞数据流。
也即是,若数据流在出端口对应的下行控制器上的缓存数据量越大,则该条数据流越容易引起该出端口的拥塞,下游设备可以根据q条数据流中每条数据流在下游设备上的缓存数据量,确定q条数据流中较容易引起拥塞出端口拥塞的拥塞数据流。
另外,向拥塞下行控制器发送拥塞数据流的上行控制器为拥塞上行控制器。在步骤2043a或步骤2044a中确定出拥塞数据流后,拥塞下行控制器可以向拥塞上行控制器发送需要暂停传输的拥塞数据流的信息,拥塞上行控制器可以根据该信息确定拥塞数据流。
在第二种可实现方式中,如图5所示,当q>1时,步骤204可以包括:
步骤2041b、下游设备确定q条数据流中的每条数据流在下游设备上的缓存数据量。
拥塞下行控制器在确定拥塞出端口已经拥塞后,该拥塞下行控制器可以通过查询拥塞下行控制器上的缓存,确定q条数据流中每条数据流的缓存数据量。
步骤2042b、下游设备确定q条数据流中每条数据流所属的子队列。
下游设备中的拥塞下行控制器在确定q条数据流中每条数据流的缓存数据量后,还可以确定q条数据流中每条数据流所属的子队列。
第一方面,在步骤201之前,也即上游设备在向下游设备发送数据流之前,上游设备还可以向下游设备发送第一预设公式和预设标识集合。其中,第一预设公式用于根据数据流的信息和预设标识集合,计算数据流所属的子队列的标识。拥塞下行控制器在确定q条数据流中每条数据流所属的子队列时,可以将该每条数据流的信息,以及发送该条数据流的上游设备发送的预设标识集合,输入发送该条数据流的上游设备发送的第一预设公式,以得到该条数据流所属的子队列的标识。
例如,假设拥塞出端口上的q条数据流包括:数据流L1、数据流L2和数据流L3,且数据流L1和数据流L2均为上游设备S1发送的数据流,数据流L3为上游设备S2发送的数据流。拥塞下行控制器上可以存储有:上游设备S1发送的第一预设公式和预设标识集合,以及上游设备S2发送的第一预设公式和预设标识集合。
示例的,上游设备S1发送的预设标识集合包括:J1(数据流L1和数据流L2均属于子队列J1)和J2,上游设备S2发送的预设标识集合包括:J3和J4(数据流L3属于子队列J4)。拥塞下行控制器可以将上游设备S1发送的数据流L1或L2的信息,以及上游设备S1发送的预设标识集合,输入该上游设备S1发送的第一预设公式,以得到数据流L1或L2所属的子队列的标识J1。拥塞下行控制器可以将上游设备S2发送的数据流L3的信息,以及上游设备S2发送的预设标识集合,输入该上游设备S2发送的第一预设公式,以得到该第一类数据流所属的子队列的标识J4。
需要说明的是,基于步骤2042b中第一方面提供的确定数据流所属的子队列的方式,实际应用中,每个上游设备和每个下游设备上可以预先存储有相同的第一预设公式和相同的预设子队列标识,也即是,每个上游设备发送的子队列的标识均属于该预设子队列标识。此时,在步骤201之前,上游设备可以不向下游设备发送第一预设公式和预设子队列标识,在执行步骤204时,下游设备中的拥塞下行控制器可以直接将q条数据流中的数据流,以及预先存储的预设子队列标识,输入预先存储的第一预设公式,得到该条数据流所属的子队列的标识。
或者,基于步骤2042b中第一方面提供的确定数据流所属的子队列的方式,实际应用中,每个上游设备和每个下游设备上可以预先存储有相同的第一预设公式。此时,在步骤201之前,上游设备可以只向下游设备发送其预设子队列标识,而不向下游设备发送第一预设公式。在执行步骤204时,下游设备中的拥塞下行控制器可以直接将q条数据流中的数据流,以及发送该条数据流的上游设备发送的预设子队列标识,输入预先存储的第一预设公式,得到该条数据流所属的子队列的标识。
或者,基于步骤2042b中第一方面提供的确定数据流所属的子队列的方式,实际应用中,每个上游设备和每个下游设备上可以预先存储有相同的预设子队列标识。此时,在步骤201之前,上游设备可以只向下游设备发送其第一预设公式,而不向下游设备发送预设子队列标识。在执行步骤204时,下游设备中的拥塞下行控制器可以直接将q条数据流中的数据流,以及预先存储的预设子队列标识,输入发送该条数据流的上游设备发送的第一预设公式,得到该条数据流所属的子队列的标识。
第二方面,在步骤201之前,也即在上游设备向下游设备发送数据流之前,上游设备还可以向下游设备发送第四预设公式和预设数量。其中,第四预设公式用于根据数据流的信息和预设数量,计算数据流所属的子队列在该子队列所属的优先级队列中的排列序号。
拥塞下行控制器可以将q条数据流中的每条数据流的信息,以及发送该条数据流的上游设备发送的预设数量,输入发送该条数据流的上游设备发送的第四预设公式,以得到该条数据流所属的子队列在该子队列所属的优先级队列中的排列序号。
例如,假设q条数据流包括:数据流L1、数据流L2和数据流L3,且数据流L1和数据流L2均为上游设备S1发送的数据流,数据流L3为上游设备S2发送的数据流。
示例的,上游设备S1发送的预设数量为2,该上游设备S1发送的优先级队列包括2个子队列,且数据流L1和数据流L2所属的子队列在该优先级队列中的排列序号为1,也即该子队列为两个子队列中的第一个子队列;上游设备S2发送的预设数量为2,该上游设备S2发送的优先级队列包括两个子队列,且数据流L3所属的子队列在优先级队列中的排列序号为2,也即该子队列为两个子队列中的第二个子队列。拥塞下行控制器可以将上游设备S1发送的数据流L1或L2,以及上游设备S1发送的预设数量,输入该上游设备S1发送的第四预设公式,以得到数据流L1或L2所属的子队列在上游设备S1发送的优先级队列(该子队列所属的优先级队列)中的排列序号1。拥塞下行控制器可以将上游设备S2发送的数据流L3,以及上游设备S2发送的预设数量,输入该上游设备S2发送的第四预设公式,以得到该第一类数据流所属的子队列在上游设备S2发送的优先级队列(该子队列所属的优先级队列)中的排列序号2。
需要说明的是,基于步骤2042b中第二方面提供的确定数据流所属的子队列的方式,实际应用中,每个上游设备和每个下游设备上可以预先存储有相同的第四预设公式和相同的预设数量。此时,在步骤201之前,上游设备可以不向下游设备发送第四预设公式和预设数量,在执行步骤204时,下游设备中的拥塞下行控制器可以直接将q条数据流中的数据流,以及预先存储的预设数量,输入预先存储的第四预设公式,得到该条数据流所属的子队列在所属优先级队列中的排列序号。
或者,基于步骤2042b中第二方面提供的确定数据流所属的子队列的方式,实际应用中,每个上游设备和每个下游设备上可以预先存储有相同的第四预设公式。此时,在步骤201之前,上游设备可以只向下游设备发送其预设数量,而不向下游设备发送第四预设公式。在执行步骤204时,下游设备中的拥塞下行控制器可以直接将q条数据流中的数据流,以及发送该条数据流的上游设备发送的预设数量,输入预先存储的第四预设公式,得到该条数据流所属的子队列在该子队列所属优先级队列中的排列序号。
或者,基于步骤2042b中第二方面提供的确定数据流所属的子队列的方式,实际应用中,每个上游设备和每个下游设备上可以预先存储有相同的预设数量。此时,在步骤201之前,上游设备可以只向下游设备发送其第四预设公式,而不向下游设备发送预设数量。在执行步骤204时,下游设备中的拥塞下行控制器可以直接将q条数据流中的数据流,以及预先存储的预设数量,输入发送该条数据流的上游设备发送的第四预设公式,得到该条数据流所属的子队列在该子队列所属优先级队列中的排列序号。
可选的,本发明实施例中的第一预设公式和第四预设公式均可以为哈希函数。在步骤2042b中,下游设备可以根据第一预设公式和预设标识集合,或者第四预设公式和预设数量,确定第一类数据流所属的子队列的信息(如子队列的标识,或者子队列在所属优先级队列中的排列序号),进而根据子队列的信息确定该第一类数据流所属的子队列。
步骤2043b、下游设备判断q条数据流所属的r个子队列中是否存在满足第四预设条件的子队列,第四预设条件包括:子队列的缓存数据量大于第四预设数据量阈值,子队列的缓存数据量等于子队列中数据流的缓存数据量之和。若r个子队列中存在满足第四预设条件的子队列,则执行步骤2044b;若r个子队列中不存在满足第四预设条件的子队列,则执行步骤2045b。
拥塞下行控制器在确定q条数据流中的每条数据流的缓存数据量,并且确定每条数据流所属的子队列后,可以确定q条数据流中的每条数据流所属的子队列的缓存数据量(也即每条数据流所属的子队列中数据流的缓存数据量之和)。
拥塞下行控制器上可以存储有第四预设数据量阈值。该q条数据流属于r个子队列,拥塞下行控制器还可以将r个子队列中每个子队列的缓存数据量与第四预设数据量阈值进行比较,以确定r个子队列中每个子队列的缓存数据量是否大于第四预设数据量阈值,进而确定r个子队列中每个子队列是否满足第四预设条件。
步骤2044b、下游设备确定r个子队列中满足第四预设条件的子队列中的第一类数据流为拥塞数据流。
若拥塞下行控制器确定r个子队列中存在满足第四预设条件的子队列,则可以将满足第四预设条件的子队列中的第一类数据流(该子队列中传入拥塞下行控制器的数据流)均确定为拥塞数据流。也即是,拥塞下行控制器可以根据q条数据流中每条数据流所属的子队列的缓存数据量,在q条数据流中筛选需要暂停发送的拥塞数据流。
例如,假设q条数据流包括:数据流L1、数据流L2和数据流L3,且数据流L1和数据流L2属于同一个子队列,该子队列当前的缓存数据量为250兆,数据流L3所属的子队列当前的缓存数据量为200兆,且该第四预设数据量阈值为220兆,则拥塞下行控制器可以确定数据流L1和数据流L2所属的子队列的缓存数据量大于第四预设数据量阈值,数据流L3所属的子队列的缓存数据量小于第四预设数据量阈值,并确定数据流L1和数据流L2均为拥塞数据流。
步骤2045b、下游设备确定q条数据流中的每条数据流均为拥塞数据流,或者,下游设备确定r个子队列中,在下游设备上的缓存数据量较大的u个子队列中的第一类数据流为拥塞数据流,r>u≥1。
一方面,若确定r个子队列中不存在满足第四预设条件的子队列,则拥塞下行控制器可以将q条数据流中的每条数据流均确定为拥塞数据流。也即是,拥塞下行控制器可以将能够引起拥塞出端口拥塞的q条数据流均确定为需要压制的拥塞数据流。例如,假设q条数据流包括数据流L1、数据流L2和数据流L3,且数据流L1和数据流L2属于同一个子队列,该子队列当前的缓存数据量为250兆,数据流L3所属的子队列当前的缓存数据量为200兆,且该第四预设数据量阈值为300兆,则拥塞下行控制器可以确定每条数据流所属的子队列的缓存数据量均小于第四预设数据量阈值,并确定数据流L1、数据流L2和数据流L3均为拥塞数据流。
另一方面,若确定r个子队列中不存在满足第四预设条件的子队列,则拥塞下行控制器可以将缓存数据量较大的u个子队列中的第一类数据流均确定为拥塞数据流。也即是,拥塞下行控制器可以将能够引起拥塞出端口拥塞的q条数据流中的部分数据流确定为需要压制的拥塞数据流。例如,假设q条数据流包括数据流L1、数据流L2和数据流L3,且数据流L1和数据流L2属于同一个子队列,该子队列的缓存数据量为250兆,数据流L3所属的子队列的缓存数据量为200兆,且该第四预设数据量阈值为300兆,u=1,则拥塞下行控制器可以确定每条数据流所属的子队列的缓存数据量均小于第四预设数据量阈值,并确定缓存数据量较大的一个子队列中的第一类数据流(数据流L1和数据流L2)均为拥塞数据流。
也即是,若子队列在出端口的缓存数据量越大,则该子队列越容易引起该出端口的拥塞,下游设备可以根据q条数据流中每条数据流所属的子队列在下游设备上的缓存数据量,确定q条数据流中的拥塞数据流。
另外,在确定出拥塞数据流后,拥塞下行控制器可以向拥塞上行控制器发送需要暂停传输的拥塞子队列的信息,拥塞上行控制器可以根据该拥塞子队列的信息确定拥塞子队列。其中,若步骤2042b中拥塞下行控制器确定出数据流所属的子队列的标识,则拥塞子队列的信息为拥塞子队列的标识;若步骤2042b中拥塞下行控制器确定出数据流的排列序号,则拥塞子队列的信息为拥塞子队列的排列序号。
在第三种可实现方式中,在步骤204之前下游设备通过入端口接收数据流的过程中,下游设备中每个入端口对应的上行控制器还可以统计接收到的每条数据流的传入数据量。如图6所示,当q>1时,步骤204包括:
步骤2041c、下游设备根据统计的传入数据量,确定在检测到存在拥塞出端口前的第一预设时间段内,q条数据流中的每条数据流的传入数据量。
拥塞下行控制器在确定拥塞出端口已经拥塞后,该拥塞下行控制器可以向拥塞上行控制器发送拥塞指示。该拥塞上行控制器在接收到拥塞指示后,可以确定该拥塞下行控制器对应的出端口为拥塞出端口。此时,拥塞上行控制器需要查询之前统计的每条数据流的传入数据量,以确定q条数据流(也即该拥塞上行控制器发送给拥塞下行控制器的数据流)中每条数据流在第一预设时间段内的传入数据量。
步骤2042c、下游设备判断q条数据流中是否存在满足第二预设条件的数据流,第二预设条件包括:在第一预设时间段内数据流的传入数据量大于第二预设数据量阈值。若q条数据流中存在满足第二预设条件的数据流,则执行步骤2043c;若q条数据流中不存在满足第二预设条件的数据流,则执行步骤2044c。
拥塞上行控制器上可以存储有第二预设数据量阈值。拥塞上行控制器可以将q条数据流中每条数据流在第一预设时间段内的传入数据量与第二预设数据量阈值进行比较,以确定q条数据流中每条数据流在第一预设时间段内的传入数据量是否大于第二预设数据量阈值,进而确定q条数据流中每条数据流是否满足第二预设条件。
步骤2043c、下游设备确定q条数据流中满足第二预设条件的数据流为拥塞数据流。
若拥塞上行控制器确定q条数据流中存在满足第二预设条件的数据流,则可以将该满足第二预设条件的数据流确定为拥塞数据流。也即是,拥塞上行控制器可以根据q条数据流中每条数据流在第一预设时间段内的传入数据量,在q条数据流中筛选需要暂停发送的拥塞数据流。
例如,假设q条数据流包括:数据流L1、数据流L2和数据流L3,数据流L1在第一预设时间段内的传入数据量为250兆,第二数据流L2在第一预设时间段内的传入数据量为250兆,数据流L3在第一预设时间段内的传入数据量为200兆,且该第二预设数据量阈值为220兆,则拥塞下行控制器可以确定数据流L1和数据流L2在第一预设时间段内的传入数据量均大于第二预设数据量阈值,数据流L3在第一预设时间段内的传入数据量小于第二预设数据量阈值,并确定数据流L1和数据流L2均为拥塞数据流。
步骤2044c、下游设备确定q条数据流中的每条数据流均为拥塞数据流,或者,下游设备将q条数据流中在第一预设时间段内的传入数据量较大的y条数据流确定为拥塞数据流,p>y≥1。
一方面,若确定q条数据流中不存在满足第二预设条件的数据流,则拥塞上行控制器可以将q条数据流中的每条数据流均确定为拥塞数据流。也即是,拥塞上行控制器可以将能够引起拥塞出端口拥塞的q条数据流均确定为需要压制的拥塞数据流。例如,假设q条数据流包括数据流L1、数据流L2和数据流L3,数据流L1在第一预设时间段内的传入数据量为250兆,第二数据流L2在第一预设时间段内的传入数据量为250兆,数据流L3在第一预设时间段内的传入数据量为200兆,且该第二预设数据量阈值为300兆,则拥塞上行控制器可以确定q条数据流中每条数据流在第一预设时间段内的传入数据量均小于第二预设数据量阈值,并确定数据流L1、数据流L2和数据流L3均为拥塞数据流。
另一方面,若确定q条数据流中不存在满足第二预设条件的第一类数据流,则拥塞上行控制器可以将q条数据流中在第一预设时间段内的传入数据量较大的y条数据流确定为拥塞数据流。例如,假设q条数据流包括:数据流L1、数据流L2和数据流L3,数据流L1在第一预设时间段内的传入数据量为250兆,第二数据流L2在第一预设时间段内的传入数据量为250兆,数据流L3在第一预设时间段内的传入数据量为200兆,且该第二预设数据量阈值为300兆,y=2,则拥塞上行控制器可以确定q条数据流中的每条数据流在第一预设时间段内的传入数据量均小于第二预设数据量阈值,并确定q条数据流中传入数据量较大的两条数据流(数据流L1和数据流L2)均为拥塞数据流。
也即是,若数据流的传入数据量越大,则该条数据流越容易引起下游设备出端口的拥塞,下游设备可以根据q条数据流中每条数据流的传入数据量,确定q条数据流中的拥塞数据流。
在第四种可实现方式中,在步骤204之前下游设备通过入端口接收数据流的过程中,下游设备中每个入端口对应的上行控制器还可以统计接收到的每条数据流的传入数据量。如图7所示,当q>1时,步骤204包括:
步骤2041d、下游设备根据统计的传入数据量,确定在检测到存在拥塞出端口前的第一预设时间段内,q条数据流中的每条数据流的传入数据量。
拥塞下行控制器在确定拥塞出端口已经拥塞后,该拥塞下行控制器可以向拥塞上行控制器发送拥塞指示。该拥塞上行控制器在接收到拥塞指示后,可以确定该拥塞下行控制器对应的出端口为拥塞出端口。此时,拥塞上行控制器需要查询之前统计的每条数据流的传入数据量,以确定q条数据流(也即该拥塞上行控制器发送给拥塞下行控制器的每条数据流)中的每条数据流在该第一预设时间段内的传入数据量。
步骤2042d、下游设备确定q条数据流中的每条数据流所属的子队列。
下游设备中的拥塞上行控制器在接收到拥塞指示后,还可以确定q条数据流中的每条数据流所属的子队列。步骤2042d中拥塞上行控制器确定数据流所属的子队列的方式,可以参考步骤2042b中拥塞下行控制器确定数据流所属的子队列的方式,本发明实施例在此不做赘述。
步骤2043d、下游设备判断q条数据流所属的r个子队列中是否存在满足第五预设条件的子队列,第五预设条件包括:子队列中的第一类数据流在第一预设时间段内的传入数据量之和大于第五预设数据量阈值。若r个子队列中存在满足第五预设条件的子队列,则执行步骤2044d;若r个子队列中不存在满足第五预设条件的子队列,则执行步骤2045d。
拥塞上行控制器在确定q条数据流中每条数据流在第一预设时间段内的传入数据量,并且确定该每条数据流所属的子队列后,可以确定该每条数据流所属的子队列在第一预设时间段内的传入数据量(也即每条数据流所属的子队列中数据流在第一预设时间段内的传入数据量之和)。
拥塞上行控制器上可以存储有第五预设数据量阈值。该q条数据流属于r个子队列。拥塞上行控制器可以将r个子队列中每个子队列在第一预设时间段内的传入数据量与第五预设数据量阈值进行比较,以确定r个子队列中每个子队列在第一预设时间段内的传入数据量是否大于第五预设数据量阈值,进而确定r个子队列中每个子队列是否满足第五预设条件。
步骤2044d、下游设备确定r个子队列中满足第五预设条件的子队列中的第一类数据流为拥塞数据流。
若拥塞上行控制器确定r个子队列中存在满足第五预设条件的子队列,则可以将满足第五预设条件的子队列中的第一类数据流确定为拥塞数据流。也即是,拥塞上行控制器可以根据数据流所属的子队列在第一预设时间段内的传入数据量,在q条数据流中筛选需要暂停发送的拥塞数据流。
例如,假设q条数据流包括:数据流L1、数据流L2和数据流L3,且数据流L1和数据流L2属于同一个子队列,该子队列在第一预设时间段内的传入数据量为250兆,数据流L3所属的子队列在第一预设时间段内的传入数据量为200兆,且该第五预设数据量阈值为220兆,则拥塞下行控制器可以确定数据流L1和数据流L2所属的子队列在第一预设时间段内的传入数据量大于第五预设数据量阈值,数据流L3所属的子队列在第一预设时间段内的传入数据量小于第五预设数据量阈值,并确定数据流L1和数据流L2均为拥塞数据流。
步骤2045d、下游设备确定q条数据流中的每条数据流均为拥塞数据流,或者,下游设备将r个子队列中在第一预设时间段内的传入数据量较大的v个子队列中的第一类数据流确定为拥塞数据流,r>v≥1。
一方面,若确定r个子队列中不存在满足第五预设条件的子队列,则拥塞上行控制器可以将q条数据流中的每条数据流均确定为拥塞数据流。也即是,拥塞上行控制器可以将能够引起拥塞出端口拥塞的q条数据流均确定为需要压制的拥塞数据流。例如,假设q条数据流包括数据流L1、数据流L2和数据流L3,且数据流L1和数据流L2属于同一个子队列,该子队列在第一预设时间段内的传入数据量为250兆,数据流L3所属的子队列在第一预设时间段内的传入数据量为200兆,且该第五预设数据量阈值为300兆,则拥塞上行控制器可以确定每条数据流所属的子队列在第一预设时间段内的传入数据量均小于第五预设数据量阈值,并确定数据流L1、数据流L2和数据流L3均为拥塞数据流。
另一方面,若确定r个子队列中不存在满足第五预设条件的子队列,则拥塞上行控制器可以将r个子队列中在第一预设时间段内的传入数据量较大的v个子队列中的第一类数据流确定为拥塞数据流。例如,假设q条数据流包括数据流L1、数据流L2和数据流L3,且数据流L1和数据流L2属于同一个子队列,该子队列在第一预设时间段内的传入数据量为250兆,数据流L3所属的子队列在第一预设时间段内的传入数据量为200兆,且该第五预设数据量阈值为300兆,v=1,则拥塞上行控制器可以确定每条数据流所属的子队列在第一预设时间段内的传入数据量均小于第五预设数据量阈值,并确定传入数据量较大的一个子队列中的第一类数据流(数据流L1和数据流L2)均为拥塞数据流。
也即是,若数据流所属的子队列的传入数据量越大,则该子队列越容易引起下游设备出端口的拥塞,下游设备可以根据数据流所属的子队列的传入数据量,在q条数据流中筛选拥塞数据流。
在第五种可实现方式中,在步骤204之前,下游设备中的每个下行控制器在将数据流通过其对应的出端口传出下游设备的过程中,还可以统计每条数据流传出下游设备的传出数据量。如图8所示,当q>1时,步骤204包括:
步骤2041e、下游设备根据统计的传出数据量,确定在检测到存在拥塞出端口前的第二预设时间段内,q条数据流中每条数据流的传出数据量。
拥塞下行控制器在确定拥塞出端口已经拥塞后,该拥塞下行控制器需要查询在步骤204之前统计的q条数据流中每条数据流的传出数据量,以确定q条数据流中每条数据流在第二预设时间段内的传出数据量。
步骤2042e、下游设备判断q条数据流中是否存在满足第三预设条件的数据流,第三预设条件包括:在第二预设时间段内数据流的传出数据量大于第三预设数据量阈值。若q条数据流中存在满足第三预设条件的数据流,则执行步骤2043e;若q条数据流中不存在满足第三预设条件的数据流,则执行步骤2044e。
拥塞下行控制器可以将q条数据流中的每条数据流在第二预设时间段内的传出数据量与第三预设数据量阈值进行比较,以确定q条数据流中每条数据流在第二预设时间段内的传出数据量是否大于第三预设数据量阈值,进而确定q条数据流中每条数据流是否满足第三预设条件。
步骤2043e、下游设备将q条数据流中满足第三预设条件的数据流确定为拥塞数据流。
当拥塞下行控制器确定q条数据流中存在满足第三预设条件的数据流后,该拥塞下行控制器可以确定该满足第三预设条件的数据流为拥塞数据流。
例如,假设q条数据流包括数据流L1、数据流L2和数据流L3,且数据流L1在第二预设时间段内的传出数据量为200兆,数据流L2在第二预设时间段内的传出数据量为200兆,数据流L3在第二预设时间段内的传出数据量为150兆,且该第三预设数据量阈值为180兆,则拥塞下行控制器可以确定数据流L1和数据流L2均为拥塞数据流。
步骤2044e、下游设备将q条数据流中的每条数据流均确定为拥塞数据流,或者,下游设备确定q条数据流中在第二预设时间段内传出数据量较大的z条数据流中的每条数据流为拥塞数据流,q>z≥1。
一方面,若确定q条数据流中不存在满足第三预设条件的第一类数据流,则拥塞下行控制器可以将q条数据流中的每条数据流均确定为拥塞数据流。也即是,拥塞下行控制器可以将能够引起拥塞出端口拥塞的q条数据流均确定为需要压制的拥塞数据流。例如,假设q条数据流包括数据流L1、数据流L2和数据流L3,且数据流L1在第二预设时间段内的传出数据量为200兆,数据流L2在第二预设时间段内的传出数据量为200兆,数据流L3在第二预设时间段内的传出数据量为150兆,且该第二预设数据量阈值为250兆,则拥塞下行控制器可以确定数据流L1、数据流L2和数据流L3均为拥塞数据流。
另一方面,若拥塞下行控制器确定q条数据流中不存在满足第三预设条件的数据流,则可以将q条数据流中在第二预设时间段内的传出数据量较大的z条数据流均确定为拥塞数据流。例如,假设q条数据流包括数据流L1、数据流L2和数据流L3,且数据流L1在第二预设时间段内的传出数据量为200兆,数据流L2在第二预设时间段内的传出数据量为200兆,数据流L3在第二预设时间段内的传出数据量为150兆,且该第二预设数据量阈值为250兆,z=2,则拥塞下行控制器可以确定数据流L1和数据流L2均为拥塞数据流。
也即是,若数据流的传出数据量越大,则该条数据流越容易引起下游设备出端口的拥塞,下游设备可以根据数据流的传出数据量,确定q条数据流中的拥塞数据流。
另外,在确定出拥塞数据流后,拥塞下行控制器可以向拥塞上行控制器发送暂停传输的拥塞数据流的信息,拥塞上行控制器可以根据该拥塞数据流的信息确定拥塞数据流。
在第六种可实现方式中,在步骤204之前,下游设备中的每个下行控制器在将数据流通过其对应的出端口传出下游设备的过程中,还可以统计每条数据流传出下游设备的传出数据量。如图9所示,当q>1时,步骤204包括:
步骤2041f、下游设备根据统计的传出数据量,确定在检测到存在拥塞出端口前的第二预设时间段内,q条数据流中的每条数据流的传出数据量。
拥塞下行控制器在确定存在拥塞出端口后,需要查询在步骤204之前统计的每条数据流的传出数据量,以确定q条数据流中的每条数据流在第二预设时间段内的传出数据量。
步骤2042f、下游设备确定q条数据流中的每条数据流所属的子队列。
拥塞下行控制器在确定存在拥塞出端口后,还可以确定q条数据流中的每条数据流所属的子队列。其中,拥塞下行控制器确定数据流所属的子队列的具体步骤可以参考步骤2042b中的具体步骤,本发明实施例在此不做赘述。
步骤2043f、下游设备判断q条数据流所属的r个子队列中是否存在满足第六预设条件的子队列,第六预设条件包括:在第二预设时间段内子队列的传出数据量大于第六预设数据量阈值,子队列的传出数据量等于子队列中数据流的传出数据量之和。若r个子队列中存在满足第六预设条件的子队列,则执行步骤2044f;若r个子队列中不存在满足第六预设条件的子队列,则执行步骤2045f。
拥塞下行控制器在确定q条数据流中的每条数据流在第二预设时间段内的传出数据量,以及确定q条数据流中的每条数据流所属的子队列后,可以确定q条数据流中的每条数据流所属的子队列中数据流在第二预设时间段内的传出数据量之和,进而得到该子队列在第二预设时间段内的传出数据量。
进一步的,该拥塞下行控制器还可以将r个子队列中每个子队列在第二预设时间段内的传出数据量与第六预设数据量阈值进行比较,以确定r个子队列中每个子队列在第二预设时间段内的传出数据量是否大于第六预设数据量阈值,进而确定r个子队列中每个子队列是否满足第六预设条件。
步骤2044f、下游设备将r个子队列中满足第六预设条件的子队列中的第一类数据流确定为拥塞数据流。
当拥塞下行控制器确定r个子队列中存在满足第六预设条件的子队列后,该拥塞下行控制器可以确定该子队列中的第一类数据流为拥塞数据流。
例如,假设q条数据流包括数据流L1、数据流L2和数据流L3,且数据流L1和数据流L2属于同一个子队列,该子队列在第二预设时间段内的传出数据量为200兆,数据流L3所属的子队列在第二预设时间段内的传出数据量为150兆,且该第六预设数据量阈值为180兆,则拥塞下行控制器可以确定数据流L1和数据流L2均为拥塞数据流。
步骤2045f、下游设备将q条数据流中的每条数据流均确定为拥塞数据流,或者,下游设备将r个子队列中在第二预设时间段内传出数据量较大的t个子队列中的第一类数据流确定为拥塞数据流,r>t≥1。
一方面,若确定r个子队列中不存在满足第六预设条件的子队列,则拥塞下行控制器可以将q条数据流中的每条数据流均确定为拥塞数据流。也即是,拥塞下行控制器可以将能够引起拥塞出端口拥塞的q条数据流均确定为需要压制的拥塞数据流。例如,假设q条数据流分别为数据流L1、数据流L2和数据流L3,且数据流L1和数据流L2属于同一个子队列,该子队列在第二预设时间段内的传出数据量为200兆,数据流L3所属的子队列在第二预设时间段内的传出数据量为150兆,且该第二预设数据量阈值为250兆,则拥塞下行控制器可以确定数据流L1、数据流L2和数据流L3均为拥塞数据流。
另一方面,若拥塞下行控制器确定r个子队列中不存在满足第六预设条件的子队列,则可以将r个子队列中在第二预设时间段内的传出数据量较大的t个子队列中的第一类数据流确定为拥塞数据流。例如,假设q条数据流包括数据流L1、数据流L2和数据流L3,且数据流L1和数据流L2属于同一个子队列,该子队列在第二预设时间段内的传出数据量为200兆,数据流L3所属的子队列在第二预设时间段内的传出数据量为150兆,且该第二预设数据量阈值为250兆,t=1,则拥塞下行控制器可以确定数据流L1和数据流L2均为拥塞数据流。
也即是,若数据流所属的子队列的传出数据量越大,则该子队列越容易引起下游设备出端口的拥塞,下游设备可以根据数据流所属的子队列的传出数据量,确定q条数据流中的拥塞数据流。
另外,在确定出拥塞数据流后,拥塞下行控制器可以向拥塞上行控制器发送需要暂停传输的拥塞子队列的信息,拥塞上行控制器可以根据该拥塞子队列的信息确定拥塞数据流。其中,若步骤2042f中拥塞下行控制器确定出数据流所属的子队列的标识,则该拥塞子队列的信息为拥塞子队列的标识;若步骤2042f中拥塞下行控制器确定出数据流所属的子队列的排列序号,则该拥塞子队列的信息为拥塞子队列的排列序号。
在第七种可实现方式中,当q≥1时,下游设备可以直接确定q条数据流中的每条数据流均为拥塞数据流。也即是,需要通过某一出端口传出下游设备的每条数据流均能够引起该出端口拥塞,当拥塞下行控制器确定存在拥塞出端口时,该拥塞下行控制器可以确定q条数据流中的每条数据流均为较容易引起拥塞出端口拥塞的拥塞数据流,并向拥塞上行控制器发送需要暂停传输的拥塞数据流的信息,拥塞上行控制器可以根据拥塞数据流的信息确定拥塞数据流。
在第八种可实现方式中,当q≥1时,下游设备可以确定q条数据流中正在通过拥塞出端口传出下游设备的数据流为拥塞数据流。也即是,需要通过某一出端口传出下游设备的每条数据流均能够引起该出端口拥塞,且正在传出的数据流更容易引起出端口的拥塞,当拥塞下行控制器确定存在拥塞出端口时,该拥塞下行控制器可以确定q条数据流中正在传出的每条数据流均为较容易引起拥塞出端口拥塞的拥塞数据流,并向拥塞上行控制器发送需要暂停传输的拥塞数据流的信息,拥塞上行控制器可以根据拥塞数据流的信息确定拥塞数据流。
步骤205、下游设备向上游设备发送指示信息。
下游设备在确定拥塞数据流后,可以将发送拥塞数据流的上游设备确定为拥塞上游设备。然后,下游设备可以向该拥塞上游设备发送指示信息。该指示信息可以用于指示暂停拥塞数据流所属的拥塞子队列中数据流的发送,以及拥塞子队列中数据流的暂停发送时长。
示例的,假设数据流1和数据流2均为拥塞数据流,且数据流1是上游设备1发送的数据流,数据流2为上游设备2发送的数据流,若该下游设备可以确定上游设备1和上游设备2均为拥塞数据流,则下游设备可以向上游设备1和上游设备2均发送指示信息。其中,下游设备发送给上游设备1的指示信息用于指示上游设备1暂停发送数据流1所属的子队列中的数据流,且暂停发送时长为1小时。下游设备发送给上游设备2的指示信息用于指示上游设备2暂停发送数据流2所属的子队列中的数据流,且暂停发送时长为2小时。
需要说明的是,下游设备可以通过多种可实现方式向拥塞上游设备发送指示信息,本发明实施例中以以下几种可实现方式进行举例说明。
在第一种可实现方式中,下游设备可以通过向拥塞上游设备发送数据帧的方式发送指示信息。如图10所示,该数据帧包括:目的地址位、源地址位、长度/类型位、操作码位、拥塞数量位、至少一个第一信息位组、预留位和帧校验序列(frame check sequence,FCS)位。其中,该操作码位用于指示子队列的暂停发送操作,拥塞数量位用于指示第一信息位组的数量,该至少一个第一信息位组包括指示信息。示例的,每个第一信息位组包括:拥塞子队列的信息位(用于指示拥塞子队列)和暂停发送时长位(用于指示拥塞子队列的暂停发送时长),或者每组第一信息位包括:拥塞数据流的信息位(用于指示拥塞数据流,图10中未示出)和暂停发送时长位(用于指示拥塞数据流的暂停发送时长,图10中未示出)。
例如,图10中的至少一个第一信息位组包括:两个第一信息位组,其中,第一个第一信息位组包括:拥塞子队列的信息位(包括子队列1的标识),以及暂停发送时长位(包括子队列1的暂停发送时长),第二个第一信息位组包括:拥塞子队列的信息位(包括子队列2的标识),以及暂停发送时长位(包括子队列2的暂停发送时长),则该指示信息用于指示在子队列1的暂停发送时长内,停止子队列1中数据流的发送,以及在子队列2的暂停发送时长内,停止子队列2中数据流的发送。
在第二种可实现方式中,下游设备还可以通过向拥塞上游设备发送数据帧的方式发送指示信息。如图11所示,该数据帧包括:目的地址位、源地址位、长度/类型位、操作码位、标注信息位、至少一个第二信息位组、预留位和FCS位。其中,该操作码位用于指示子队列的暂停发送操作,标注信息位用于指示该至少一个第二信息位组中有效的一个第二信息位组。标注信息位所指示的第二信息位组中的信息为指示信息。示例的,该至少一个第二信息位组可以包括r个第二信息位组,且该r个第二信息位组与第一类数据流中的q条数据流所在的r个子队列一一对应,每个第二信息位组包括:其对应的子队列的信息位(用于指示子队列)以及暂停发送时长位(用于指示子队列的暂停发送时长)。或者该至少一个第二信息位组包括q个第二信息位组,且该q个第二信息位组与第一类数据流中的q条数据流一一对应,每个第二信息位组包括:其对应的数据流的信息位(用于指示数据流)以及暂停发送时长位(用于指示数据流的暂停发送时长)。
例如,图11中的该至少一个第二信息位组包括:三个第二信息位组。其中,第一个第二信息位组包括:子队列的信息位(包括子队列1的标识),以及暂停发送时长位(包括子队列1的暂停发送时长);第二个第二信息位组包括:子队列的信息位(包括子队列2的标识),以及暂停发送时长位(包括子队列2的暂停发送时长),第三个第二信息位组包括:子队列的信息位(包括子队列3的标识),以及暂停发送时长位(包括子队列3的暂停发送时长)且该标注信息位用于指示第一个第二信息位组,则该指示信息用于指示在子队列1的暂停发送时长内,停止子队列1中数据流的发送。
在第三种可实现方式中,若在步骤205之前不仅确定出了拥塞数据流还确定出了拥塞数据流所在的拥塞子队列的信息,则下游设备可以通过向拥塞上游设备发送PFC帧的方式发送指示信息。如图12所示,PFC帧包括:目的地址(destination address)位(占6个字节)、源地址(source address)位(占6个字节)、长度/类型(length/type)位(占2个字节)、操作码(opcode)位(占2个字节)、优先启用量(priority enable vector)位(占2个字节)、八个优先级队列的暂停时长(time)位(每个优先级队列的暂停时长位占2个字节)、预留(Pad)位(占26个字节)以及帧校验序列(frame check sequence,FCS)位(占4个字节)。其中,该操作码位用于指示优先级队列的暂停发送操作,PFC帧的预留位包括指示信息,且八个优先级队列的暂停时长位均为零。示例的,PFC帧的预留位包括:拥塞子队列的信息位(用于指示拥塞子队列)和暂停发送时长位(用于指示拥塞子队列的暂停发送时长)。
例如,当拥塞子队列为子队列1时,图12中的预留位包括:拥塞子队列的信息位(包括子队列1的信息),以及暂停发送时长位(包括子队列1的暂停发送时长),则该指示信息用于指示在子队列1的暂停发送时长内,停止子队列1中数据流的发送。
步骤206、上游设备根据接收到的指示信息,暂停拥塞子队列中数据流的发送,并发送其他子队列中的数据流。
拥塞上游设备在接收到指示信息后,可以根据指示信息确定拥塞子队列。
当该指示信息包括拥塞子队列的信息时,该拥塞上游设备可以根据该拥塞子队列的信息,直接确定拥塞子队列。
当该指示信息包括拥塞数据流的信息时,该拥塞上游设备可以根据该拥塞数据流的信息,确定该拥塞数据流所属的拥塞子队列。示例的,拥塞上游设备根据拥塞数据流的信息确定拥塞子队列的过程,可以参考步骤2042b中下游设备确定数据流所属的子队列的过程,本发明实施例在此不做赘述。之后,拥塞上游设备就可以暂停该拥塞子队列中数据流的发送,并继续发送其他子队列中的数据流。
进一步的,拥塞上游设备还可以根据指示信息,确定拥塞子队列的暂停发送时长,并在暂停发送时长内暂停发送拥塞子队列中的数据流,该其他子队列与拥塞子队列可以属于同一优先级队列。示例的,当该指示信息包括拥塞子队列的信息时,该指示信息还包括拥塞子队列的暂停发送时长,拥塞上游设备可以直接获取该暂停发送时长。当该指示信息包括拥塞数据流的信息时,该指示信息还可以包括拥塞数据流的暂停发送时长,此时,拥塞上游设备可以获取该拥塞数据流的暂停发送时长,并将该拥塞数据流的暂停发送时长作为拥塞子队列的暂停发送时长。
由于拥塞数据流是最容易引起拥塞出端口拥塞的数据流,所以,在拥塞上游设备暂停发送拥塞子队列中的数据流之后,拥塞出端口会由拥塞状态转变为正常传输状态,此时,传输至拥塞出端口对应的下行控制器上的数据流能够从该拥塞出端口传出。且若下游设备确定出的该拥塞数据流为第一类数据流中的部分数据流,则下游设备无需指示每个上游设备均暂停发送数据流,而是指示部分上游设备暂停发送子队列中的数据流,此时,被暂停传输的数据流较少,能够正常传输的数据流较多,且能够保证拥塞出端口由拥塞状态转变为正常传输状态。
由于本发明实施例提供的拥塞处理方法中,上游设备发送的每个优先级队列包括多个子队列,且在下游设备出现拥塞出端口时,下游设备仅指示上游设备暂停根据拥塞出端口确定的拥塞数据流所属的拥塞子队列的发送,使得发送拥塞数据流的上游设备仅暂停优先级队列中该拥塞子队列的发送,而不暂停该优先级队列中其他子队列的发送,使得上游设备暂停发送的数据流较少,从而减少了数据中心网络中被暂停发送的数据流的个数,提高了数据中心网络的数据传输效率。
图13为本发明实施例提供的一种拥塞处理设备的结构示意图,该拥塞处理设备可以用于图1所示的数据中心网络中的下游设备,该下游设备具有n个出端口,n≥1,如图13所示,该拥塞处理设备130可以包括:
接收模块1301,用于接收上游设备发送的属于同一优先级队列的多条数据流,优先级队列包括多个子队列,多个子队列中的每个子队列包括至少一条数据流;
检测模块1302,用于在将多条数据流传出下游设备的过程中,检测n个出端口中是否存在拥塞出端口;
确定模块1303,用于在检测到存在拥塞出端口时,确定第一类数据流中的拥塞数据流,第一类数据流包括多条数据流中需要通过拥塞出端口传出下游设备的至少一条数据流;
发送模块1304,用于向上游设备发送指示信息,指示信息用于指示暂停拥塞数据流所属的拥塞子队列中数据流的发送。
当第一类数据流包括q条数据流,且q>1时,确定模块1303可以用于执行以下任意一种实施方式:
A:判断q条数据流中是否存在满足第一预设条件的数据流,第一预设条件包括:数据流在下游设备上的缓存数据量大于第一预设数据量阈值;当q条数据流中存在满足第一预设条件的数据流,且满足第一预设条件的数据流的个数小于q时,确定满足第一预设条件的数据流为拥塞数据流;当q条数据流中不存在满足第一预设条件的数据流时,将q条数据流中缓存数据量较大的x条数据流均确定为拥塞数据流,1≤x<q。
B:判断q条数据流中是否存在满足第二预设条件的数据流,第二预设条件包括:在检测到拥塞出端口前的第一预设时间段内,数据流在下游设备上的传入数据量大于第二预设数据量阈值;当q条数据流中存在满足第二预设条件的数据流,且满足第二预设条件的数据流的个数小于q时,确定满足第二预设条件的数据流为拥塞数据流;当q条数据流中不存在满足第二预设条件的数据流时,将q条数据流中在第一预设时间段内在下游设备上的传入数据量较大的y条数据流均确定为拥塞数据流,1≤y<q。
C:判断q条数据流中是否存在满足第三预设条件的数据流,第三预设条件包括:在检测到存在拥塞出端口前的第二预设时间段内,数据流在下游设备上的传出数据量大于第三预设数据量阈值;当q条数据流中存在满足第三预设条件的数据流,且满足第三预设条件的数据流的个数小于q时,确定满足第三预设条件的数据流为拥塞数据流;当q条数据流中不存在满足第三预设条件的数据流时,将q条数据流中在第二预设时间段内在下游设备上的传出数据量较大的z条数据流均确定为拥塞数据流,1≤z<q。
可选的,指示信息可以包括:拥塞数据流的信息。
可选的,发送模块1304可以用于:将拥塞数据流的信息以及预设标识集合输入第一预设公式,得到拥塞子队列的标识,其中,多个子队列的标识组成预设标识集合,第一预设公式用于:根据上游设备发送的每条数据流的信息以及预设标识集合,计算每条数据流所属的子队列的标识;向上游设备发送指示信息,指示信息包括拥塞子队列的标识。
可选的,发送模块1304可以用于:将拥塞数据流的信息以及预设数量输入第二预设公式,得到拥塞子队列在优先级队列中的排列序号,其中,优先级队列中子队列的数量等于预设数量,第二预设公式用于:根据上游设备发送的每条数据流的信息以及预设数量,计算每条数据流所属的子队列在所属优先级队列中的排列序号;向上游设备发送指示信息,指示信息包括拥塞子队列在所属优先级队列中的排列序号。
由于本发明实施例提供的拥塞处理设备中,接收模块接收到的上游设备发送的每个优先级队列包括多个子队列,且在检测模块检测到下游设备中存在拥塞出端口时,发送模块向上游设备发送的指示信息仅指示上游设备暂停根据拥塞出端口确定的拥塞数据流所属的拥塞子队列的发送,使得发送拥塞数据流的上游设备仅暂停优先级队列中该拥塞子队列的发送,而不暂停该优先级队列中其他子队列的发送,使得上游设备暂停发送的数据流较少,从而减少了数据中心网络中被暂停发送的数据流的个数,提高了数据中心网络的数据传输效率。
图14为本发明实施例提供的另一种拥塞处理设备的结构示意图,该拥塞处理设备可以用于图1所示的数据中心网络中的上游设备,如图14所示,该拥塞处理设备140可以包括:
发送模块1401,用于向下游设备发送属于同一优先级队列的多条数据流,优先级队列包括多个子队列,多个子队列中的每个子队列包括至少一条数据流;
接收模块1402,用于接收下游设备发送的指示信息,其中,指示信息用于指示暂停拥塞子队列中数据流的发送,拥塞子队列为多条数据流中拥塞数据流所属的子队列;
暂停模块1403,用于根据指示信息暂停拥塞子队列中数据流的发送。
可选的,指示信息包括:拥塞数据流的信息,暂停模块1403可以用于:将拥塞数据流的信息以及预设标识集合输入第一预设公式,得到拥塞子队列的标识,其中,多个子队列的标识组成预设标识集合,第一预设公式用于:根据上游设备发送的每条数据流的信息以及预设标识集合,计算每条数据流所属的子队列的标识;根据拥塞子队列的标识,暂停拥塞子队列中数据流的发送。
可选的,指示信息包括:拥塞数据流的信息,暂停模块1403可以用于:将拥塞数据流的信息以及预设数量输入第二预设公式,得到拥塞子队列在优先级队列中的排列序号,其中,优先级队列中子队列的数量等于预设数量,第二预设公式用于:根据上游设备发送的每条数据流的信息以及预设数量,计算每条数据流所属的子队列在所属优先级队列中的排列序号;根据拥塞子队列在优先级队列中的排列序号,暂停拥塞子队列中数据流的发送。
由于本发明实施例提供的拥塞处理设备中,发送模块向下游设备发送的每个优先级队列包括多个子队列,且在下游设备出现拥塞出端口时,暂停模块根据下游设备的指示,仅暂停优先级队列中该拥塞子队列的发送,而不暂停该优先级队列中其他子队列的发送,使得上游设备暂停发送的数据流较少,从而减少了数据中心网络中被暂停发送的数据流的个数,提高了数据中心网络的数据传输效率。
图15为本发明实施例提供的另一种拥塞处理设备的结构示意图。参见图15,所述拥塞处理设备1500可以应用于数据中心网络中的任意一个设备。所述拥塞处理设备1500包括处理器1501、存储器1502、通信接口1503和总线1504。该处理器1501、存储器1502、通信接口1503通过总线1504通信连接。其中,通信接口1503为多个,用于在处理器1501的控制下与上游设备和下游设备通信,存储器1502用于存放计算机指令;处理器1501通过总线1504调用存储器1502中存储的计算机指令,以执行图2或图4-图9中由所述下游设备或者所述下游设备执行的方法。
上述实施例可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机的可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。所述计算机可读存储介质可以是计算机可以存取的任何可用介质或者包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质,或者半导体介质(例如固态硬盘)等。
需要说明的是,本发明实施例提供的方法实施例能够与相应的设备实施例相互参考,本发明实施例对此不做限定。本发明实施例提供的方法实施例步骤的先后顺序能够进行适当调整,步骤也能够根据情况进行相应增减,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内,因此不再赘述。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (21)

1.一种拥塞处理方法,其特征在于,用于下游设备,所述下游设备具有n个出端口,n≥1,所述方法包括:
接收上游设备发送的属于同一优先级队列的多条数据流,所述优先级队列包括多个子队列,所述多个子队列中的每个子队列包括至少一条数据流;
在将所述多条数据流传出所述下游设备的过程中,检测所述n个出端口中是否存在拥塞出端口;
当检测到存在拥塞出端口时,将第一类数据流中的一部分数据流确定为拥塞数据流,所述第一类数据流包括所述多条数据流中需要通过所述拥塞出端口传出所述下游设备的q条数据流,q>1;
向所述上游设备发送指示信息,所述指示信息用于指示暂停所述拥塞数据流所属的拥塞子队列中数据流的发送,以及所述拥塞子队列中数据流的暂停发送时长。
2.根据权利要求1所述的方法,其特征在于,所述将第一类数据流中的一部分数据流确定为所述拥塞数据流,包括:
判断所述q条数据流中是否存在满足第一预设条件的数据流,所述第一预设条件包括:数据流在所述下游设备上的缓存数据量大于第一预设数据量阈值;
当所述q条数据流中存在满足所述第一预设条件的数据流,且满足所述第一预设条件的所述数据流的个数小于q时,确定满足所述第一预设条件的所述数据流为所述拥塞数据流;
当所述q条数据流中不存在满足所述第一预设条件的数据流时,将所述q条数据流中缓存数据量较大的x条数据流均确定为所述拥塞数据流,1≤x<q。
3.根据权利要求1所述的方法,其特征在于,所述将第一类数据流中的一部分数据流确定为所述拥塞数据流,包括:
判断所述q条数据流中是否存在满足第二预设条件的数据流,所述第二预设条件包括:在检测到所述拥塞出端口前的第一预设时间段内,数据流在所述下游设备上的传入数据量大于第二预设数据量阈值;
当所述q条数据流中存在满足所述第二预设条件的数据流,且满足所述第二预设条件的所述数据流的个数小于所述q时,确定满足所述第二预设条件的所述数据流为所述拥塞数据流;
当所述q条数据流中不存在满足所述第二预设条件的数据流时,将所述q条数据流中在所述第一预设时间段内在所述下游设备上的传入数据量较大的y条数据流均确定为所述拥塞数据流,1≤y<q。
4.根据权利要求1所述的方法,其特征在于,所述将第一类数据流中的一部分数据流确定为所述拥塞数据流,包括:
判断所述q条数据流中是否存在满足第三预设条件的数据流,所述第三预设条件包括:在检测到存在所述拥塞出端口前的第二预设时间段内,数据流在所述下游设备上的传出数据量大于第三预设数据量阈值;
当所述q条数据流中存在满足所述第三预设条件的数据流,且满足所述第三预设条件的所述数据流的个数小于所述q时,确定满足所述第三预设条件的所述数据流为所述拥塞数据流;
当所述q条数据流中不存在满足所述第三预设条件的数据流时,将所述q条数据流中在所述第二预设时间段内在所述下游设备上的传出数据量较大的z条数据流均确定为所述拥塞数据流,1≤z<q。
5.根据权利要求1至4任一所述的方法,其特征在于,所述指示信息包括:所述拥塞数据流的信息。
6.根据权利要求1至4任一所述的方法,其特征在于,所述向所述上游设备发送指示信息,包括:
将所述拥塞数据流的信息以及预设标识集合输入第一预设公式,得到所述拥塞子队列的标识,其中,所述多个子队列的标识组成所述预设标识集合,所述第一预设公式用于:根据所述上游设备发送的每条数据流的信息以及所述预设标识集合,计算所述每条数据流所属的子队列的标识;
向所述上游设备发送所述指示信息,所述指示信息包括所述拥塞子队列的标识。
7.根据权利要求1至4任一所述的方法,其特征在于,所述向所述上游设备发送指示信息,包括:
将所述拥塞数据流的信息以及预设数量输入第二预设公式,得到所述拥塞子队列在所述优先级队列中的排列序号,其中,所述优先级队列中子队列的数量等于所述预设数量,所述第二预设公式用于:根据所述上游设备发送的每条数据流的信息以及所述预设数量,计算所述每条数据流所属的子队列在所属优先级队列中的排列序号;
向所述上游设备发送所述指示信息,所述指示信息包括所述拥塞子队列在所述优先级队列中的排列序号。
8.一种拥塞处理方法,其特征在于,用于上游设备,所述方法包括:
向下游设备发送属于同一优先级队列的多条数据流,所述优先级队列包括多个子队列,所述多个子队列中的每个子队列包括至少一条数据流;
接收所述下游设备发送的指示信息,其中,所述指示信息用于指示暂停拥塞子队列中数据流的发送,以及所述拥塞子队列中数据流的暂停发送时长,所述拥塞子队列为所述多条数据流中拥塞数据流所属的子队列;所述拥塞数据流包括需通过所述下游设备的拥塞出端口传出所述下游设备的q条数据流中的一部分数据流,q>1;
根据所述指示信息在所述暂停发送时长中暂停所述拥塞子队列中数据流的发送。
9.根据权利要求8所述的方法,其特征在于,所述指示信息包括:所述拥塞数据流的信息,所述根据所述指示信息暂停所述拥塞子队列中数据流的发送,包括:
将所述拥塞数据流的信息以及预设标识集合输入第一预设公式,得到所述拥塞子队列的标识,其中,所述多个子队列的标识组成所述预设标识集合,所述第一预设公式用于:根据所述上游设备发送的每条数据流的信息以及所述预设标识集合,计算所述每条数据流所属的子队列的标识;
根据所述拥塞子队列的标识,暂停所述拥塞子队列中数据流的发送。
10.根据权利要求8所述的方法,其特征在于,所述指示信息包括:所述拥塞数据流的信息,所述根据所述指示信息暂停所述拥塞子队列中数据流的发送,包括:
将所述拥塞数据流的信息以及预设数量输入第二预设公式,得到所述拥塞子队列在所述优先级队列中的排列序号,其中,所述优先级队列中子队列的数量等于所述预设数量,所述第二预设公式用于:根据所述上游设备发送的每条数据流的信息以及所述预设数量,计算所述每条数据流所属的子队列在所属优先级队列中的排列序号;
根据所述拥塞子队列在所述优先级队列中的排列序号,暂停所述拥塞子队列中数据流的发送。
11.一种拥塞处理设备,其特征在于,用于下游设备,所述下游设备具有n个出端口,n≥1,所述拥塞处理设备包括:
接收模块,用于接收上游设备发送的属于同一优先级队列的多条数据流,所述优先级队列包括多个子队列,所述多个子队列中的每个子队列包括至少一条数据流;
检测模块,用于在将所述多条数据流传出所述下游设备的过程中,检测所述n个出端口中是否存在拥塞出端口;
确定单元,用于在检测到存在拥塞出端口时,将第一类数据流中的一部分数据流确定为拥塞数据流,所述第一类数据流包括所述多条数据流中需要通过所述拥塞出端口传出所述下游设备的q条数据流,q>1;
发送模块,用于向所述上游设备发送指示信息,所述指示信息用于指示暂停所述拥塞数据流所属的拥塞子队列中数据流的发送,以及所述拥塞子队列中数据流的暂停发送时长。
12.根据权利要求11所述的拥塞处理设备,其特征在于,所述确定单元用于:
判断所述q条数据流中是否存在满足第一预设条件的数据流,所述第一预设条件包括:数据流在所述下游设备上的缓存数据量大于第一预设数据量阈值;
当所述q条数据流中存在满足所述第一预设条件的数据流,且满足所述第一预设条件的所述数据流的个数小于q时,确定满足所述第一预设条件的所述数据流为所述拥塞数据流;
当所述q条数据流中不存在满足所述第一预设条件的数据流时,将所述q条数据流中缓存数据量较大的x条数据流均确定为所述拥塞数据流,1≤x<q。
13.根据权利要求11所述的拥塞处理设备,其特征在于,所述确定单元用于:
判断所述q条数据流中是否存在满足第二预设条件的数据流,所述第二预设条件包括:在检测到所述拥塞出端口前的第一预设时间段内,数据流在所述下游设备上的传入数据量大于第二预设数据量阈值;
当所述q条数据流中存在满足所述第二预设条件的数据流,且满足所述第二预设条件的所述数据流的个数小于所述q时,确定满足所述第二预设条件的所述数据流为所述拥塞数据流;
当所述q条数据流中不存在满足所述第二预设条件的数据流时,将所述q条数据流中在所述第一预设时间段内在所述下游设备上的传入数据量较大的y条数据流均确定为所述拥塞数据流,1≤y<q。
14.根据权利要求11所述的拥塞处理设备,其特征在于,所述确定单元用于:
判断所述q条数据流中是否存在满足第三预设条件的数据流,所述第三预设条件包括:在检测到存在所述拥塞出端口前的第二预设时间段内,数据流在所述下游设备上的传出数据量大于第三预设数据量阈值;
当所述q条数据流中存在满足所述第三预设条件的数据流,且满足所述第三预设条件的所述数据流的个数小于所述q时,确定满足所述第三预设条件的所述数据流为所述拥塞数据流;
当所述q条数据流中不存在满足所述第三预设条件的数据流时,将所述q条数据流中在所述第二预设时间段内在所述下游设备上的传出数据量较大的z条数据流均确定为所述拥塞数据流,1≤z<q。
15.根据权利要求11至14任一所述的拥塞处理设备,其特征在于,所述指示信息包括:所述拥塞数据流的信息。
16.根据权利要求11至14任一所述的拥塞处理设备,其特征在于,所述发送模块用于:
将所述拥塞数据流的信息以及预设标识集合输入第一预设公式,得到所述拥塞子队列的标识,其中,所述多个子队列的标识组成所述预设标识集合,所述第一预设公式用于:根据所述上游设备发送的每条数据流的信息以及所述预设标识集合,计算所述每条数据流所属的子队列的标识;
向所述上游设备发送所述指示信息,所述指示信息包括所述拥塞子队列的标识。
17.根据权利要求11至14任一所述的拥塞处理设备,其特征在于,所述发送模块用于:
将所述拥塞数据流的信息以及预设数量输入第二预设公式,得到所述拥塞子队列在所述优先级队列中的排列序号,其中,所述优先级队列中子队列的数量等于所述预设数量,所述第二预设公式用于:根据所述上游设备发送的每条数据流的信息以及所述预设数量,计算所述每条数据流所属的子队列在所属优先级队列中的排列序号;
向所述上游设备发送所述指示信息,所述指示信息包括所述拥塞子队列在所属优先级队列中的排列序号。
18.一种拥塞处理设备,其特征在于,用于上游设备,所述拥塞处理设备包括:
发送模块,用于向下游设备发送属于同一优先级队列的多条数据流,所述优先级队列包括多个子队列,所述多个子队列中的每个子队列包括至少一条数据流;
接收模块,用于接收所述下游设备发送的指示信息,其中,所述指示信息用于指示暂停拥塞子队列中数据流的发送,以及所述拥塞子队列中数据流的暂停发送时长,所述拥塞子队列为所述多条数据流中拥塞数据流所属的子队列;所述拥塞数据流包括需通过所述下游设备的拥塞出端口传出所述下游设备的q条数据流中的一部分数据流,q>1;
暂停模块,用于根据所述指示信息在所述暂停发送时长中暂停所述拥塞子队列中数据流的发送。
19.根据权利要求18所述的拥塞处理设备,其特征在于,所述指示信息包括:所述拥塞数据流的信息,所述暂停模块用于:
将所述拥塞数据流的信息以及预设标识集合输入第一预设公式,得到所述拥塞子队列的标识,其中,所述多个子队列的标识组成所述预设标识集合,所述第一预设公式用于:根据所述上游设备发送的每条数据流的信息以及所述预设标识集合,计算所述每条数据流所属的子队列的标识;
根据所述拥塞子队列的标识,暂停所述拥塞子队列中数据流的发送。
20.根据权利要求18所述的拥塞处理设备,其特征在于,所述指示信息包括:所述拥塞数据流的信息,所述暂停模块用于:
将所述拥塞数据流的信息以及预设数量输入第二预设公式,得到所述拥塞子队列在所述优先级队列中的排列序号,其中,所述优先级队列中子队列的数量等于所述预设数量,所述第二预设公式用于:根据所述上游设备发送的每条数据流的信息以及所述预设数量,计算所述每条数据流所属的子队列在所属优先级队列中的排列序号;
根据所述拥塞子队列在所述优先级队列中的排列序号,暂停所述拥塞子队列中数据流的发送。
21.一种数据中心网络,其特征在于,所述数据中心网络包括:上游设备和下游设备,
所述下游设备包括权利要求11至17任一所述的拥塞处理设备;
所述上游设备包括权利要求18至20任一所述的拥塞处理设备。
CN201710917404.0A 2017-09-30 2017-09-30 拥塞处理方法及设备、数据中心网络 Active CN109600320B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710917404.0A CN109600320B (zh) 2017-09-30 2017-09-30 拥塞处理方法及设备、数据中心网络

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710917404.0A CN109600320B (zh) 2017-09-30 2017-09-30 拥塞处理方法及设备、数据中心网络

Publications (2)

Publication Number Publication Date
CN109600320A CN109600320A (zh) 2019-04-09
CN109600320B true CN109600320B (zh) 2022-04-05

Family

ID=65955988

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710917404.0A Active CN109600320B (zh) 2017-09-30 2017-09-30 拥塞处理方法及设备、数据中心网络

Country Status (1)

Country Link
CN (1) CN109600320B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115189854A (zh) 2021-04-07 2022-10-14 华为技术有限公司 信息指示方法及通信装置
US11838209B2 (en) * 2021-06-01 2023-12-05 Mellanox Technologies, Ltd. Cardinality-based traffic control

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1969782A1 (fr) * 2005-12-27 2008-09-17 France Telecom Mecanisme auto-adaptatif de gestion de flux dans un reseau partage a acces multiple
CN102025617A (zh) * 2010-11-26 2011-04-20 中兴通讯股份有限公司 以太网拥塞控制方法及装置
CN103534997A (zh) * 2011-04-29 2014-01-22 华为技术有限公司 用于无损耗以太网的基于端口和优先级的流控制机制
CN106134138A (zh) * 2014-12-04 2016-11-16 华为技术有限公司 一种拥塞控制的方法、设备和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7239636B2 (en) * 2001-07-23 2007-07-03 Broadcom Corporation Multiple virtual channels for use in network devices

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1969782A1 (fr) * 2005-12-27 2008-09-17 France Telecom Mecanisme auto-adaptatif de gestion de flux dans un reseau partage a acces multiple
CN102025617A (zh) * 2010-11-26 2011-04-20 中兴通讯股份有限公司 以太网拥塞控制方法及装置
CN103534997A (zh) * 2011-04-29 2014-01-22 华为技术有限公司 用于无损耗以太网的基于端口和优先级的流控制机制
CN106134138A (zh) * 2014-12-04 2016-11-16 华为技术有限公司 一种拥塞控制的方法、设备和系统

Also Published As

Publication number Publication date
CN109600320A (zh) 2019-04-09

Similar Documents

Publication Publication Date Title
US11646967B2 (en) Packet control method and network apparatus
CN106134138B (zh) 一种拥塞控制的方法、设备和系统
US7295557B2 (en) System and method for scheduling message transmission and processing in a digital data network
WO2011120467A2 (zh) 报文保序处理方法、保序协处理器和网络设备
US9160673B1 (en) Link selection in a bonding protocol
US9008109B2 (en) Buffer management of relay device
US9298660B2 (en) Super speed USB hub and traffic management method thereof
KR100987258B1 (ko) 통신 시스템에서 데이터 흐름 제어 장치 및 방법
CN109600320B (zh) 拥塞处理方法及设备、数据中心网络
US20080089351A1 (en) Flow control in communication networks
US8908510B2 (en) Communication link with intra-packet flow control
US10305772B2 (en) Using a single work item to send multiple messages
WO2016160212A1 (en) Technologies for network packet pacing during segmentation operations
CN117527722A (zh) 流量管理方法、系统、设备及可读存储装置
JP5492709B2 (ja) 帯域制御方法及び帯域制御装置
WO2022174444A1 (zh) 一种数据流传输方法、装置及网络设备
JP2015126499A (ja) 送信装置、受信装置、パケット送信方法、及びパケット受信方法
CN114124856A (zh) 一种流量控制的方法、装置及存储介质
CN114979002A (zh) 一种流量控制方法和流量控制装置
CN106559351B (zh) 一种处理报文的方法、sdn控制器及网元
CN114884902B (zh) 一种数据流传输方法、装置、网络设备及存储介质
WO2023226603A1 (zh) 一种抑制拥塞队列产生的方法及装置
WO2023207461A1 (zh) 拥塞流识别方法、装置、设备及计算机可读存储介质
US8842696B1 (en) Guaranteed rate port scheduler
CN111786902A (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