CN112751776A - 拥塞控制方法和相关装置 - Google Patents
拥塞控制方法和相关装置 Download PDFInfo
- Publication number
- CN112751776A CN112751776A CN201911047292.3A CN201911047292A CN112751776A CN 112751776 A CN112751776 A CN 112751776A CN 201911047292 A CN201911047292 A CN 201911047292A CN 112751776 A CN112751776 A CN 112751776A
- Authority
- CN
- China
- Prior art keywords
- network device
- data
- threshold
- sending end
- data stream
- 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
- 238000000034 method Methods 0.000 title claims abstract description 125
- 238000012545 processing Methods 0.000 claims description 44
- 230000005540 biological transmission Effects 0.000 claims description 26
- 238000011144 upstream manufacturing Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 description 28
- 238000010586 diagram Methods 0.000 description 21
- 230000006870 function Effects 0.000 description 19
- 238000013461 design Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 8
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/215—Flow control; Congestion control using token-bucket
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/52—Queue scheduling by attributing bandwidth to queues
- H04L47/527—Quantum based scheduling, e.g. credit or deficit based scheduling or token bank
Abstract
本方案涉及网络技术领域,具体的,本方案提供一种拥塞控制方法和相关装置。第一网络设备接收发送端发送的第一数据流;当该第一网络设备中第一数据流对应的出端口队列的深度大于第一阈值时,该第一网络设备向该发送端发送第一暂停帧,该第一暂停帧用于指示该发送端暂停发送第一数据流。当该出端口队列的深度小于第二阈值时,该第一网络设备向该发送端发送第一控制报文,该第一控制报文携带第一令牌数。本申请实施例可以提升拥塞控制的效率,避免网络拥塞。
Description
技术领域
本申请涉及网络技术领域,尤其涉及网络技术领域中的一种拥塞控制方法和相关装置。
背景技术
网络中出现越来越多的高性能业务,如存储、人工智能(artificialintelligence,AI)、高性能计算(high-performance computing,HPC)等,其对网络性能,尤其是网络时延提出了更高的需求。保障低时延特性的网络拥塞控制解决方案成为重要研究方向。
网络拥塞控制可以分为被动拥塞控制和主动拥塞控制。其中,被动拥塞控制是在拥塞发生后,例如,网络中发生丢包、或往返时延(Round-Trip Time,RTT)增大等,接收端向发送端反馈网络拥塞程度,发送端根据网络拥塞程度调整发送速率以降低网络拥塞。
然而,上述通过调整发送速率来减轻网络拥塞的控制方式发生在拥塞发生后,会导致拥塞控制的时延较大,拥塞控制的效率不高。
发明内容
本申请实施例提供一种拥塞控制方法和相关装置,以提升拥塞控制效率,避免网络拥塞。
第一方面,本申请实施例提供一种拥塞控制方法,该方法包括:第一网络设备接收发送端发送的第一数据流。该发送端为该第一网络设备连接的多个主机中的任意一个。当该第一网络设备中第一数据流对应的出端口队列的深度大于第一阈值时,第一网络设备向发送端发送第一暂停帧,该第一暂停帧用于指示发送端暂停发送所述第一数据流。当该出端口队列的深度小于第二阈值时,该第一网络设备向发送端发送第一控制报文,该第一控制报文携带第一令牌数,该第一令牌数用于指示允许发送端发送的第一数据流的数据量;该第二阈值小于所述第一阈值。其中,第一令牌数为第一网络设备根据第二令牌数确定的,该第二令牌数为第二网络设备发送给第一网络设备的,第二网络设备连接第一数据流的接收端。
在一种可能的设计中,第一阈值为根据发送端的输出端口的链路带宽、发送端与接收端之间的往返时延、第一时延和多个主机的个数确定的,第一时延为第一网络设备与发送端之间的数据传输时延。
在一种可能的设计中,第一阈值为BDP-2*C1*T1*(n-1)和2*C1*T1中的较大值,BDP为带宽时延积,BDP=C1*RTT,C1为发送端的输出端口的链路带宽,RTT为往返时延,n为多个主机的个数,T1为第一时延。
在一种可能的设计中,第二阈值为根据发送端的输出端口的链路带宽和第一时延确定的,第一时延为第一网络设备与发送端之间的数据传输时延。
在一种可能的设计中,第二阈值等于2*C1*T1,C1为发送端的输出端口的链路带宽,T1为第一时延。
在一种可能的设计中,该方法还包括:第一网络设备接收第二网络设备发送的第二暂停帧,第二暂停帧用于指示第二网络设备的出端口队列发生拥塞。该第一网络设备根据第二暂停帧暂停向第二网络设备发送第二网络设备的出端口队列对应的第二数据流。
在一种可能的设计中,该方法还包括:第一网络设备向发送端发送第三暂停帧,第三暂停帧为第一网络设备根据第二暂停帧确定的,第三暂停帧用于指示发送端暂停发送第三数据流。
在一种可能的设计中,该方法还包括:第一网络设备接收第二网络设备发送的第二控制报文,该第二控制报文携带第二令牌数,该第二令牌数用于指示允许第一网络设备向第二控制报文对应的出端口队列发送的数据量。该第一网络设备根据第二令牌数向第二网络设备发送第一数据流。
在一种可能的设计中,第一数据流包括第一数据报文,第一数据报文包括请求信息,请求信息为发送端为第一数据流请求的令牌数,该方法还包括:第一网络设备根据请求信息和第二令牌数,确定第一令牌数。
在一种可能的设计中,该发送端为第一数据流请求的令牌数是根据第一数据流的大小,第一数据流对应的应用程序的类型、第一数据流的优先级或第一数据流的截止时间中至少一项确定的。
第二方面,本申请实施例提供一种拥塞控制方法,该方法包括:第二网络设备通过第一网络设备接收第一数据流。该第一数据流是从发送端发往接收端的,该第一网络设备连接发送端,第二网络设备连接接收端。当第二网络设备中第一数据流对应的出端口队列的深度大于第一阈值时,第二网络设备向第一网络设备发送第一暂停帧,该第一暂停帧用于指示第一网络设备暂停发送出端口队列对应的第二数据流。当出端口队列的深度小于第二阈值时,第二网络设备向第一网络设备发送第一控制报文,该第一控制报文携带第一令牌数,该第一令牌数用于指示允许第一网络设备向出端口队列发送的数据量。
在一种可能的设计中,该第一阈值为根据第一网络设备的输出端口的链路带宽、发送端与接收端之间的往返时延、第二时延和第二网络设备的上游节点个数确定的,该第二时延为第二网络设备与第一网络设备之间的数据传输时延,该上游节点为向第二网络设备发送数据流的设备。
在一种可能的设计中,该第一阈值为BDP-2*C2*T2*(n’-1)和2*C2*T2中的较大值,BDP为带宽时延积,BDP=C1*RTT,C1为发送端的输出端口的链路带宽,RTT为往返时延,C2为第一网络设备的输出端口的链路带宽,T2为第二时延,n’为上游节点个数。
在一种可能的设计中,该第二阈值为根据第一网络设备的输出端口的链路带宽和第二时延确定的,该第二时延为第二网络设备与第一网络设备之间的数据传输时延。
在一种可能的设计中,第二阈值等于2*C2*T2,C2为第一网络设备的输出端口的链路带宽,T2为第二时延。
在一种可能的设计中,第一数据流包括第一数据报文,该第一数据报文包括请求信息,该请求信息为第一网络设备为第一数据流请求的令牌数,该方法还包括:第二网络设备根据请求信息以及第一数据流的属性,确定第一令牌数。
第三方面,本申请实施例提供一种拥塞控制装置,该拥塞控制装置具有实现上述第一方面的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块,例如,收发单元或模块,处理单元或模块。
第四方面,本申请实施例提供一种拥塞控制装置,该拥塞控制装置具有实现上述第二方面的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块,例如,收发单元或模块,处理单元或模块。
第五方面,本申请提供一种拥塞控制装置,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述第一方面中任一项所述的方法。该装置可以是芯片或者网络设备。
第六方面,本申请提供一种拥塞控制装置,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述第二方面中任一项所述的方法。该装置可以是芯片或者网络设备。
第七方面,本申请提供一种计算机可读存储介质,包括计算机程序,所述计算机程序在计算机上被执行时,使得所述计算机执行上述第一方面中任一项所述的方法。
第八方面,本申请提供一种计算机可读存储介质,包括计算机程序,所述计算机程序在计算机上被执行时,使得所述计算机执行上述第二方面中任一项所述的方法。
第九方面,本申请提供一种计算机程序产品,该计算机程序产品包括指令,当所述指令被计算机执行时,用于执行上述第一方面中任一项所述的方法。
第十方面,本申请提供一种计算机程序产品,该计算机程序产品包括指令,当所述指令被计算机执行时,用于执行上述第一方面中任一项所述的方法。
第十一方面,本申请实施例提供一种系统,该系统可以包括第一网络设备和第二网络设备。该第一网络设备可以执行上述第一方面中任一项所述的方法,第二网络设备可以执行上述第二方面中任一项所述的方法。
本申请实施例提供一种拥塞控制方法和相关装置,第一网络设备接收发送端发送的第一数据流;当该第一网络设备中第一数据流对应的出端口队列的深度大于第一阈值时,该第一网络设备向该发送端发送第一暂停帧,该第一暂停帧用于指示该发送端暂停发送第一数据流。当该出端口队列的深度小于第二阈值时,该第一网络设备向该发送端发送第一控制报文,该第一控制报文携带第一令牌数,本申请实施例可以提升拥塞控制效率,避免网络拥塞。
附图说明
图1为本申请实施例提供的一种应用场景的示意图;
图2为本申请实施例提供的一种拥塞控制方法的系统架构的示意图;
图3为本申请实施例提供的一种拥塞控制方法的流程图;
图4为本申请实施例提供的另一种拥塞控制方法的流程图;
图5为本申请实施例提供的另一种拥塞控制方法的流程图;
图6为本申请实施例提供的另一种拥塞控制方法的流程图;
图7为本申请实施例提供的一种拥塞控制过程示意图;
图8为本申请实施例提供的另一种拥塞控制方法的流程图;
图9为本申请实施例提供的另一种拥塞控制方法的流程图;
图10为本申请实施例提供的一种拥塞控制过程示意图;
图11为本申请实施例提供的一种拥塞控制过程示意图;
图12为本申请实施例提供的一种拥塞控制装置的示意图;
图13为本申请实施例提供的一种拥塞控制装置的示意图;
图14为本申请实施例提供的一种拥塞控制装置的示意图;
图15为本申请实施例提供的一种拥塞控制装置的示意图。
具体实施方式
本申请所涉及的术语“第一”、“第二”等仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
本申请提供了一种网络拥塞控制方法,可以应用在不同的网络中,该网络例如可以是数据中心,城域网,园区网等。以下以该网络为数据中心为例,详细介绍本申请各实施例。
图1为本申请实施例的一种应用场景的示意图,如图1所示,发送端1、发送端2和发送端3分别通过数据中心网络向接收端1发送数据报文,该数据中心网络可以由一个或多个网络设备组成,该网络设备可以是路由器(router)、交换机(switch)等,以发送端1、发送端2与接收端1之间设置有四跳网络设备(如图1所示的网络设备1、网络设备3、网络设备4和网络设备5),发送端3与接收端1之间设置有三跳网络设备(如图1所示的网络设备2、网络设备6和网络设备5),为例进行举例说明,网络设备1、网络设备3、网络设备4和网络设备5可以对发送端1和发送端2发送的数据报文进行汇聚、调度、转发等操作,使得发送端1和发送端2的数据报文可以发送至接收端1,网络设备2、网络设备6和网络设备5可以对发送端3的数据报文进行汇聚、调度、转发等操作,使得发送端3的数据报文可以发送至接收端1。
传统的被动拥塞控制,可以是在如上所述的接收端1发生丢包后,接收端1向发送端1、发送端2和发送端3反馈网络拥塞程序,发送端1、发送端2和发送端3根据网络拥塞程度调整发送速率,该被动拥塞控制会导致调整不及时不准确、控制的时延较大等问题。相较于传统的被动拥塞控制,主动拥塞控制可以减少控制的时延,提升拥塞控制的收敛速度,主动拥塞控制成为解决拥塞的热点方式。传统的主动拥塞控制,采用负载均衡算法保证中间网络无拥塞,最后一跳网络设备作为唯一拥塞点,独立决策每个数据流的发送速率,从而可以消除最后一跳网络设备的拥塞。然而该传统的主动拥塞控制也存在滞后性,拥塞控制的效率不高。本申请实施例提供一种改进的主动拥塞控制方法,以解决传统的被动拥塞控制或传统的主动拥塞控制所存在的控制效率不高的问题。其具体实施方式可以参见下述实施例的解释说明。
本申请实施例的拥塞控制方法是一种层次化的拥塞控制方法,具体的,本申请实施例将数据中心网络分成两级进行数据报文的调度,分别为发送端与第一跳网络设备之间、第一跳网络设备和最后一跳网络设备之间。第一跳网络设备可以进行拥塞控制,从而将网络拥塞点从最后一跳网络设备转移到第一跳网络设备,网络拥塞点距离数据源头更近,新的数据流在第一跳网络设备就可以被控制,最后一跳网络设备可以向第一跳网络设备反馈拥塞程度,第一跳网络设备可以向接收端反馈拥塞程度,可以提升网络控制拥塞的准确度和及时性,降低网络拥塞程度。
为了方便描述,本申请实施例将与发送端连接的第一跳网络设备称之为“第一网络设备”,该第一网络设备也可以称之为源架顶交换机(source top of rank,STOR)。将与接收端连接的网络设备(即最后一跳网络设备)称之为“第二网络设备”,该第二网络设备也可以称之为目的架顶交换机(destination top of rank,DTOR)。以上述图1进行举例说明,第一网络设备可以是网络设备1或网络设备2,第二网络设备可以是网络设备5。
需要说明的是,图1中的发送端、接收端、网络设备及其连接方式均为一种示意性举例说明,其中,发送端的个数、网络设备的个数、接收端的个数、以及发送端与网络设备之间、网络设备与网络设备之间、网络设备与接收端之间的连接方式均不以上述图1所示作为限制。
图2为本申请实施例的一种拥塞控制方法的系统架构的示意图,如图2所示,该系统架构可以包括发送端20、数据中心网络30和接收端40,该数据中心网络30可以包括第一网络设备31和第二网络设备32。该第一网络设备31与发送端20连接,该第二网络设备32与接收端40连接,该第一网络设备31与第二网络设备32连接。需要说明的是,第一网络设备31与第二网络设备32可以是直接连接,也可以是通过多跳网络设备间接连接。
该发送端20可以是如图1所示的发送端1、发送端2或发送端3,接收端40可以是如图1所示的接收端1。
本申请实施例所涉及的发送端可以是设置有网络接口控制器(networkinterface controller,NIC)的任意端节点,网络接口控制器又称网络适配器(networkadapter),网卡(network interface card),或局域网适配器(LAN adapter),是用来允许端节点在网络中进行通讯的计算机硬件。该端节点可以是主机,例如,服务器、计算机(computer)、个人计算机(personal computer,PC)等。本申请实施例所涉及的接收端也可以是如上所述的任一种端节点。
本申请实施例的第一网络设备31、第二网络设备32可以通过执行本申请实施例的拥塞控制方法,以提升网络拥塞控制的效率,其具体解释说明可以参见下述实施例。
图3为本申请实施例的一种拥塞控制方法的流程图,如图3所示,本申请实施例的拥塞控制方法涉及发送端和第一网络设备的方法步骤,本实施例的方法可以包括:
步骤101、发送端向第一网络设备发送第一数据流。
相应的,第一网络设备接收发送端发送的第一数据流。该发送端为与第一网络设备连接的多个主机中的任意一个。例如,如图1所述的发送端1。该第一数据流可以是非受控(unscheduled)阶段(指发送不被抑制)的数据流,也可以是受控(scheduled)阶段(指发送过程受抑制)的数据流。该第一数据流的数据报文携带发送端发送给接收端的数据,该第一数据流的数据报文还可以携带报文长度、源IP地址和目的IP地址等信息。不同的数据流(flow)可以根据数据报文的五元组(源IP地址,目的IP地址,协议号,源端口号,目的端口号)或七元组(五元组、服务类型和接口索引)进行划分。
第一网络设备将接收到的第一数据流的数据报文写入该第一网络设备的出端口队列中,例如,该出端口队列的缓存区(buffer)中。
步骤102、当第一网络设备中第一数据流对应的出端口队列的深度大于第一阈值时,第一网络设备向发送端发送第一暂停帧。
相应的,发送端接收第一网络设备发送的第一暂停(pause)帧。该第一暂停帧用于指示发送端暂停发送第一数据流。即第一网络设备可以基于该第一阈值确定第一数据流对应的出端口队列是否拥塞,如果第一数据流对应的出端口队列的深度大于第一阈值,则表明拥塞,第一网络设备可以通过该第一暂停帧及时向发送端反馈网络拥塞情况。
例如,第一网络设备在接收该第一数据流的至少一个第一数据报文后,第一网络设备判断第一数据流对应的出端口队列的深度是否大于第一阈值,若是,则第一网络设备向发送端发送第一暂停帧,若否,则第一网络设备不向发送端发送第一暂停帧。
该第一数据流对应的出端口队列的深度可以是第一网络设备的虚拟输出队列(virtual output queue,VoQ)端口的队列长度,第一网络设备需要通过该VoQ端口将第一数据流的数据报文发送给下一跳网络设备,进而将第一数据流的数据报文发送给接收端。
该第一阈值可以是预定义的数值,也可以是第一网络设备动态计算的数值,其可以根据需求进行灵活设置。该第一阈值也可以称之为反压水线或高水线。
在一些实施例中,第一网络设备动态计算第一阈值的一种可实现方式为:第一网络设备可以根据发送端的输出端口的链路带宽、发送端与接收端之间的往返时延(round-trip time,RTT)、第一时延和上述多个主机的个数中的一项或多项确定该第一阈值,该第一时延为第一网络设备与发送端之间的数据传输时延,发送端个数为第一网络设备连接的主机的个数。例如,该第一网络设备为上述图1中的网络设备1,则发送端的输出端口的链路带宽为发送端1或发送端2的输出端口的链路带宽,发送端与接收端之间的RTT为发送端1或发送端2与接收端1之间的RTT,第一时延为网络设备1与发送端1或发送端2之间的数据传输时延,多个主机的个数为2。通常情况下,发送端1的输出端口链路带宽与发送端2的输出端口的链路带宽相等。
示例性的,该第一网络设备可以采用如下公式(1)计算该第一阈值。
L=max(BDP-2*C1*T1*(n-1),2*C1*T1) (1)
其中,L表示第一阈值,BDP为带宽时延积,BDP=C1*RTT,C1为发送端的输出端口的链路带宽,RTT为该往返时延,T1为第一时延,n为与第一网络设备连接的多个主机的个数,max()为取最大函数,例如,max(A,B)等价于取A和B中的较大值。例如,C1可以是发送端的一个输出端口的链路带宽。
步骤103、发送端暂停向第一网络设备发送第一数据流。
发送端通过上述步骤102接收到第一暂停帧后,发送端暂停向第一网络设备发送第一数据流的数据报文。
以一个场景作为举例说明,发送端需要通过数据中心网络向接收端发送第一数据流,该第一数据流包括第一数据报文1、第一数据报文2、第一数据报文3和第一数据报文4,通过上述步骤101,发送端向接收端发送了第一数据报文1、第一数据报文2和第一数据报文3,之后通过上述步骤102,第一网络设备的VoQ端口出现拥塞,其第一数据流对应的出端口队列的深度大于第一阈值,则第一网络设备向发送端发送一个暂停帧,发送端根据该暂停帧,停止向第一网络设备发送第一数据报文4。该停止向第一网络设备发送第一数据报文4可以是在一个时间段内停止向第一网络设备发送第一数据报文4,如果发送端在接收到该暂停帧之后,再次接收到另一个暂停帧,则发送端在该时间段之后,仍然保持停止向第一网络设备发送第一数据报文4,直至第一网络设备的端口拥塞解除(例如,第一网络设备不再向发送端发送暂停帧),则发送端向第一网络设备发送该第一数据报文4。
本实施例,发送端向第一网络设备发送第一数据流,当第一网络设备中的第一数据流对应的出端口队列的深度大于第一阈值时,第一网络设备向发送端发送第一暂停帧,发送端暂停向第一网络设备发送第一数据流,该第一网络设备是与发送端连接的第一跳网络设备,第一网络设备基于第一阈值向发送端反馈网络拥塞情况,可以及时缓解网络的拥塞程度,提升拥塞控制效率。
图4为本申请实施例的一种拥塞控制方法的流程图,如图4所示,本申请实施例的拥塞控制方法涉及发送端和第一网络设备的方法步骤,本实施例的方法可以包括:
步骤201、发送端向第一网络设备发送第一数据流。
其中,步骤201可以参见图3所示实施例的步骤101,此处不再赘述。
步骤202、当第一网络设备中第一数据流对应的出端口队列的深度小于第二阈值时,第一网络设备向发送端发送第一控制报文。
相应的,发送端接收第一网络设备发送的第一控制报文。该第一控制报文携带第一令牌数(credit),该第一令牌数据用于指示允许发送端发送第一数据流的数据量。即如果第一数据流对应的出端口队列的深度小于第二阈值,第一网络设备可以通过该第一控制报文向发送端反馈允许发送的数据量。该第一令牌数为第一网络设备根据第二令牌数确定的,该第二令牌数为第二网络设备发送给第一网络设备的,该第二网络设备连接第一数据流的接收端。
该第二阈值可以是预定义的数值,也可以是第一网络设备动态计算的数值,其可以根据需求进行灵活设置。该第二阈值也可以称之为解除反压水线或低水线。对于相同的出端口队列,该第二阈值可以小于第一阈值。
在一些实施例中,第一网络设备动态计算第二阈值的一种可实现方式为:第一网络设备可以根据发送端的输出端口的链路带宽和第一时延确定该第二阈值,该第一时延为第一网络设备与发送端之间的数据传输时延。
示例性的,该第一网络设备可以采用如下公式(2)计算该第二阈值。
H=2*C1*T1 (2)
其中,H表示第二阈值,C1为发送端的输出端口的链路带宽,T1为第一时延。
步骤203、发送端根据第一令牌数向第一网络设备发送第一数据流。
发送端通过上述步骤202接收到第一控制报文后,发送端基于该第一控制报文中所携带的第一令牌数向第一网络设备发送相应数据量的第一数据流的数据报文,即发送端基于第一网络设备的需求量发送第一数据流,可以避免第一网络设备的出端口队列欠吞吐。
本实施例,发送端向第一网络设备发送第一数据流,当第一网络设备中的第一数据流对应的出端口队列的深度小于第二阈值时,第一网络设备向发送端发送第一控制报文,发送端根据第一控制报文中的第一令牌数向第一网络设备发送第一数据流,发送端基于第一网络设备的需求量发送第一数据流,可以避免第一网络设备的出端口队列欠吞吐,并且可以避免网络拥塞。
上述图3所示实施例可以在第一数据流到达第二网络设备之前,第一网络设备基于第一阈值向发送端反馈网络拥塞情况,以及时缓解网络的拥塞程度。当第一数据流到达第二网络设备时,第二网络设备可以通过如图5所示实施例的方法,向发送端反馈网络拥塞,以及时缓解网络的拥塞程度。
图5为本申请实施例的另一种拥塞控制方法的流程图,如图5所示,本申请实施例的拥塞控制方法涉及发送端、该第一网络设备、该第二网络设备。其中,发送端与第一网络设备的入端口连接,第一网络设备的出端口与第二网络设备的入端口连接,本实施例的方法可以包括:
步骤301、发送端向第一网络设备发送第一数据流。
相应的,第一网络设备接收发送端发送的第一数据流。该步骤301的解释说明可以参见图3所示实施例的步骤101,此处不再赘述。
步骤302、第一网络设备向第二网络设备发送第一数据流。
相应的,第二网络设备接收第一网络设备发送的第一数据流。即第二网络设备通过第一网络设备接收发送端发送的第一数据流。
步骤303、当该第二网络设备中第一数据流对应出端口队列的深度大于第三阈值时,第二网络设备向第一网络设备发送第二暂停帧。
相应的,第一网络设备接收第二网络设备发送的第二暂停帧,该第二暂停帧用于指示第二网络设备的出端口队列发生拥塞,第一网络设备根据该第二暂停帧暂停向第二网络设备发送出端口队列对应的第二数据流,该第二数据流可以是如上所述的第一数据流,也可以是其他数据流,该其他数据流可以是在转发过程中需要经过该第一数据流对应的出端口队列才能到达接收端的数据流。即第二网络设备可以基于该第三阈值确定是否拥塞,如果第二队列深度大于第三阈值,则表明拥塞,第二网络设备可以通过该第二暂停帧及时向第一网络设备反馈网络拥塞情况。
例如,第二网络设备在接收第一数据流的数据报文后,第二网络设备判断第一数据流对应的出端口队列的深度是否大于第三阈值,若是,则第二网络设备向第一网络设备发送第二暂停帧,若否,则第二网络设备不向第一网络设备发送第二暂停帧。
该第二网络设备中第一数据流对应的出端口队列的深度可以是第二网络设备的输出队列(Output Queue,OQ)端口的队列长度,第二网络设备需要通过该OQ端口将第一数据流的数据报文发送给接收端。
该第三阈值可以是预定义的数值,也可以是第二网络设备动态计算的数值,其可以根据需求进行灵活设置。该第三阈值也可以称之为反压水线或高水线。
在一些实施例中,第二网络设备动态计算第三阈值的一种可实现方式为:第二网络设备可以根据第一网络设备的输出端口的链路带宽、发送端与接收端之间的往返时延(round-trip time,RTT)、第二时延和第二网络设备的上游节点个数中的一项或多项确定该第三阈值,该第二时延为第二网络设备与第一网络设备之间的数据传输时延,上游节点为向第二网络设备发送数据流的设备。例如,该第二网络设备为上述图1中的网络设备5,则第一网络设备的输出端口的链路带宽为网络设备1或网络设备2的输出端口的链路带宽,发送端与接收端之间的RTT为发送端1或发送端2或发送端3与接收端1之间的RTT,第二时延为网络设备5与网络设备1或网络设备2之间的数据传输时延,上游节点个数为2。
示例性的,该第二网络设备可以采用如下公式(3)计算该第三阈值。
K=max(BDP-2*C2*T2*(n’-1),2*C2*T2) (3)
其中,K表示第三阈值,BDP=C1*RTT,C1为发送端的输出端口的链路带宽,RTT为该往返时延,C2为第一网络设备的输出端口的链路带宽,T2为第二时延,n’为上游节点个数,max()为取最大函数。
步骤304、第一网络设备暂停向第二网络设备发送第二数据流。
第一网络设备通过上述步骤303接收到第二暂停帧后,第一网络设备暂停向第二网络设备发送第二数据流,该第二数据流可以是第一数据流,或者如上所述的其他数据流。
步骤305、第一网络设备向发送端发送第三暂停帧。
相应的,发送端接收第一网络设备发送的第三暂停帧。该第三暂停帧为第一网络设备根据第二暂停帧确定的,该第三暂停帧用于指示发送端暂停发送数据流。
步骤306、发送端暂停向第一网络设备发送第三数据流。
发送端根据该第三暂停帧暂停向第一网络设备发送第三数据流,该第三数据流可以是如上所述的第一数据流,也可以是如上所述的第二数据流,或其他数据流。
本实施例,发送端向第一网络设备发送第一数据流,第一网络设备向第二网络设备发送第二数据流,当该第二网络设备中第一数据流对应的出端口队列的深度大于第三阈值时,第二网络设备向第一网络设备发送第二暂停帧,第一网络设备暂停向第二网络设备发送数据流,第一网络设备向发送端发送第三暂停帧,发送端暂停向第一网络设备发送第一数据流,第二网络设备基于第三阈值向发送端反馈网络拥塞情况,第一网络设备基于第二网络设备的反馈,向发送端反馈网络拥塞情况,可以缓解网络的拥塞程度,提升拥塞控制效率。
图6为本申请实施例的另一种拥塞控制方法的流程图,如图6所示,本申请实施例的拥塞控制方法涉及发送端、该第一网络设备、该第二网络设备,其中,发送端与第一网络设备的入端口连接,第一网络设备的出端口与第二网络设备的入端口连接,本实施例的方法可以包括:
步骤401、发送端向第一网络设备发送第一数据流。
相应的,第一网络设备接收发送端发送的第一数据流。该步骤401可以参见图3所示实施例的步骤101,此处不再赘述。
步骤402、第一网络设备向第二网络设备发送第一数据流。
相应的,第二网络设备接收第一网络设备发送的第一数据流。即第二网络设备通过第一网络设备接收发送端发送的第一数据流。
步骤403、当该第二网络设备中第一数据流对应出端口队列的深度小于第四阈值时,第二网络设备向第一网络设备发送第二控制报文。
相应的,第一网络设备接收第二网络设备发送的第二控制报文,该第二控制报文携带第二令牌数,该第二令牌数用于指示允许第一网络设备向出端口队列发送的数据量。
例如,第二网络设备在接收第一数据流的数据报文后,第二网络设备判断第一数据流对应的出端口队列的深度是否小于第四阈值,若是,则第二网络设备向第一网络设备发送第二控制报文,若否,则第二网络设备不向第一网络设备发送第二控制报文。
该第二网络设备中第一数据流对应的出端口队列的深度可以是第二网络设备的输出队列(output queue,OQ)端口的队列长度,第二网络设备需要通过该OQ端口将第一数据流的数据报文发送给接收端。
该第四阈值可以是预定义的数值,也可以是第二网络设备动态计算的数值,其可以根据需求进行灵活设置。该第四阈值也可以称之为解除反压水线或低水线。对于相同的出端口队列,该第四阈值可以小于第三阈值。
在一些实施例中,第二网络设备动态计算第四阈值的一种可实现方式为:第二网络设备可以根据第一网络设备的输出端口的链路带宽和第二时延中的一项或多项确定该第四阈值,该第二时延为第二网络设备与第一网络设备之间的数据传输时延。
示例性的,该第二网络设备可以采用如下公式(4)计算该第四阈值。
J=2*C2*T2 (4)
其中,J表示第四阈值,C2为第一网络设备的输出端口的链路带宽,T2为第二时延。
步骤404、第一网络设备根据第二令牌数据向第二网络设备发送数据流。
第一网络设备通过上述步骤403接收到第二控制报文后,第一网络设备基于该第二令牌数向第二网络设备发送数据流,该数据流可以是第一数据流,或者如上所述的第二数据流。
步骤405、第一网络设备向发送端发送第一控制报文。
相应的,发送端接收第一网络设备发送的第一控制报文。该第一控制报文携带第一令牌数,该第一令牌数为第一网络设备根据上述第二令牌数确定的。
步骤406、发送端根据第一令牌数向第一网络设备发送第一数据流。
发送端根据该第一控制报文中的第一令牌数向第一网络设备发送相应数据量的第一数据流。
本实施例,发送端向第一网络设备发送第一数据流,第一网络设备向第二网络设备发送第一数据流,当该第二网络设备中第一数据流对应的出端口队列的深度小于第四阈值时,第二网络设备向第一网络设备发送第二控制报文,第一网络设备根据第二令牌数据向第二网络设备发送数据流,第一网络设备向发送端发送第一控制报文,发送端根据第一令牌数向第一网络设备发送第一数据流,第二网络设备基于第四阈值反馈数据流发送量,第一网络设备基于第二网络设备的反馈发送数据流,可以避免第二网络设备的出端口队列欠吞吐。
在上述任意一个实施例的基础上,下面结合图7通过具体示例,对上述方法实施例所示的拥塞控制方法进行说明。
图7为本申请实施例提供的一种拥塞控制过程示意图,如图7所示,本实施例的示意图为在图1所示应用场景的基础上,进行简化后得到的示意图,包括发送端1、发送端2、发送端3、第一网络设备1(图1中的网络设备1)、第一网络设备2(图1中的网络设备2)、第二网络设备(图1中的网络设备5)和接收端1。
请参见图7,发送端1和发送端2向第一网络设备1发送数据流,第一网络设备1判断该第一网络设备的VoQ端口的队列长度是否大于第一阈值,如果大于该第一阈值,则如图7所示,第一网络设备1可以向发送端1发送第一暂停帧,以指示发送端1暂停发送数据流。第一网络设备1向第二网络设备发送数据流,第二网络设备判断该第二网络设备的OQ端口的队列长度是否大于第三阈值,如果大于该第三阈值,则如图7所示,第二网络设备可以向第一网络设备1发送第二暂停帧,以指示第一网络设备1暂停发送数据流。第一网络设备可以根据该第二暂停帧,向发送端1发送第三暂停帧,以指示发送端1暂停发送数据流。
在上述过程中,第一网络设备1可以基于第一阈值,向发送端反馈拥塞情况,第二网络设备可以基于第三阈值,向第一网络设备反馈拥塞情况,以使得网络在出现拥塞时,可以及时反馈给上游节点,以缓解网络拥塞程度,提升网络拥塞控制效率。
图8为本申请实施例的另一种拥塞控制方法的流程图,如图8所示,本申请实施例的拥塞控制方法涉及该发送端、该第一网络设备、该第二网络设备和接收端,本实施例的方法可以包括:
步骤501、第二网络设备向第一网络设备发送第二暂停帧。
在第二网络设备通过第一网络设备接收到第一数据流后,第二网络设备判断第一数据流对应的出端口队列的深度是否大于第三阈值,当第一数据流对应的出端口队列的深度大于第三阈值时,则执行步骤501。
该第三阈值的解释说明可以参见图5所示实施例的步骤303的解释说明,此处不再赘述。
步骤502、第一网络设备暂停向第二网络设备发送第一数据流。
步骤503、第一网络设备向发送端发送第三暂停帧。
步骤504、发送端暂停向第一网络设备发送第一数据流。
其中,步骤501至步骤504的解释说明可以参见图5所示实施例的步骤303至步骤306的解释说明,此处不再赘述。
步骤505、第二网络设备向接收端发送第一数据流。
其中,步骤501和步骤505的执行顺序不以序号大小作为限制,例如,步骤501和步骤505可以同时执行。
步骤506、第二网络设备判断第一数据流对应的出端口队列的深度是否小于第四阈值,若是,则执行步骤507,若否,则执行步骤501。
当第一数据流对应的出端口队列的深度小于第四阈值时,第二网络设备停止发送第二暂停帧,向第一网络设备发送第二控制报文,当第二队列深度不小于第四阈值时,第二网络设备向第一网络设备发送第二暂停帧。
步骤507、第二网络设备向第一网络设备发送第二控制报文。
相应的,第一网络设备接收第二网络设备发送的第二控制报文。该第二控制报文携带第二令牌数,该第二令牌数用于指示第一网络设备发送的至少一个第二数据报文的数据量。
步骤508、第一网络设备根据该第二令牌数向第二网络设备发送第一数据流。
步骤509、第一网络设备判断第一数据流对应的出端口队列的深度是否小于第二阈值,若是,则执行步骤510,若否,则执行步骤503。
步骤510、第一网络设备向发送端发送第一控制报文。该第一控制报文携带第一令牌数,该第一令牌数用于指示允许发送端发送的第一数据流的数据量。
该第一令牌数为第一网络设备根据该第二令牌数确定的。
例如,发送端向第一网络设备发送两个数据流(f1和f2),则第一网络设备可以根据第二令牌数确定两个第一令牌数,每个第一令牌数分别指示允许发送端发送的一个数据流的数据量。第一网络设备可以向发送端发送两个第一控制报文,每个第一控制报文携带一个数据流的第一令牌数。
步骤511、发送端根据该第一令牌数向第一网络设备发送第一数据流。
本实施例,第二网络设备判断第一数据流对应的出端口队列的深度是否小于第四阈值,当出端口队列的深度小于第四阈值时,第二网络设备向第一网络设备发送第二控制报文,该第二控制报文携带第二令牌数,第一网络设备根据该第二令牌数向第二网络设备发送第一数据流,第一网络设备判断第一数据流对应的出端口队列的深度是否小于第二阈值,当出端口队列的深度小于第二阈值时,第一网络设备向发送端发送第一控制报文,该第一控制报文携带第一令牌数,发送端根据该第一令牌数向第一网络设备发送第一数据流,当网络设备的出端口队列的深度从高水线降低为低水线以下时,第二网络设备向第一网络设备分配令牌数,第一网络设备向发送端分配令牌数,可以避免数据中心网络的拥塞,提升拥塞控制效率。
图9为本申请实施例的另一种拥塞控制方法的流程图,如图9所示,本实施例与图8所示实施例的区别在于,在第二网络设备接收到第一个第二数据报文后,第二网络设备判断第一数据流的出端口队列的深度不大于第三阈值,本实施例的方法可以包括:
步骤601、第二网络设备向第一网络设备发送第二控制报文。
在第二网络设备接收到第一数据流后,第二网络设备判断第一数据流的出端口队列的深度是否大于第三阈值,当第二队列深度不大于第三阈值时,则执行步骤601。
该第三阈值的解释说明可以参见图5所示实施例的步骤303的解释说明,此处不再赘述。
相应的,第一网络设备接收第二网络设备发送的第二控制报文。该第二控制报文携带第二令牌数,该第二令牌数用于指示允许第一网络设备发送的第一数据流的数据量。
步骤602、第一网络设备根据该第二令牌数向第二网络设备发送第一数据流。
第一网络设备还可以根据判断第一数据流的出端口队列的深度是否大于第一阈值,当第一队列深度小于第一阈值时,第一网络设备可以根据该第二令牌数向发送端发送第一控制报文,当第一数据流的出端口队列深度大于第一阈值时,第一网络设备可以向发送第一暂停帧,即第一网络设备的处理过程与第二网络设备的处理过程类似。
步骤603、第二网络设备向接收端发送第一数据流。
步骤604、第二网络设备判断第一数据流的出端口队列的深度是否大于第三阈值,若是,则执行步骤605,若否,则执行步骤601。
步骤605、第二网络设备向第一网络设备发送第二暂停帧。
步骤606、第一网络设备暂停向第二网络设备发送第一数据流。
步骤607、第一网络设备向发送端发送第三暂停帧。
步骤608、发送端暂停向第一网络设备发送第一数据流。
本实施例,当网络设备的出端口队列的深度从低水线上升为高水线以上时,第二网络设备向第一网络设备发送第二暂停帧,第一网络设备向发送端发送第三暂停帧,以及时暂停上游节点发送数据流,可以缓解网络的拥塞程度,提升拥塞控制效率。
在上述任意一个实施例的基础上,第二网络设备向接收端发送第一数据流的一种可实现方式为:第二网络设备基于目的地址(如目的IP地址)向接收端发送多个数据流,该多个数据流包括第一数据流。
通过在第二网络设备采用基于目的IP粒度的调度,保证最后一跳无阻塞,代价小,流量模型更稳定,调度更准确。在第一网络设备采用逐流的调度,保证第一网络设备无拥塞,防止出现排头阻塞(Head-of-line blocking,HOL)问题。
在上述任意一个实施例的基础上,该第一数据流中的每个第一数据报文携带第一请求信息,每个第一请求信息为发送端为第一数据流请求的令牌数,本申请实施例的拥塞控制方法还可以包括:第一网络设备根据第一请求信息和第二令牌数,确定第一令牌数。
在一些实施例中,该第一请求信息可以根据第一数据流的属性确定,该第一数据流的属性可以包括第一数据流的流大小(Flow size)、第一数据流对应的应用程序的类型、第一数据流的优先级或第一数据流的截止时间(Deadline)中至少一项。
例如,该应用程序的类型可以是视频播放类、音频播放类、即时通信类等。
在一些实施例中,该第一请求信息为权重,本申请实施例的发送端可以根据每个第一数据报文对应的应用程序的属性信息包括第一数据报文所属的数据流的流大小(Flowsize)、应用程序的类型、数据流的优先级或数据流的截止时间(Deadline)中至少一项确定每个第一数据报文所携带的权重。
示例性的,以发送端根据第一数据报文所属的数据流的流大小(Flow size)确定权重为例进行举例说明,发送端可以根据第一数据报文所属的数据流的流大小(Flowsize)和如下表1,确定权重。
表1流大小与权重的对应关系
例如,第一数据报文所属的数据流的流大小为9KB,则根据该表1,该权重为a1。
第一网络设备接收到第一数据流的第一数据报文,可以对第一数据报文所携带的第一请求信息进行维护,将相同目的地址的数据报文的第一请求信息汇总,得到第二请求信息,向第二网络设备发送第一数据流的第二数据报文。该第二数据报文携带第二请求信息,该第二请求信息为第一网络设备为第一数据流请求的令牌数。
本申请实施例的拥塞控制方法还可以包括:第二网络设备根据第二请求信息以及第一数据流的属性,确定第二令牌数。即第二网络设备根据不同第一网络设备的第二请求信息向不同的第一网络设备分配第二令牌数。
下面结合图10通过具体示例,对上述方法实施例所示的令牌数的确定方式进行说明。
图10为本申请实施例提供的一种拥塞控制过程示意图,如图10所示,本实施例的示意图为在图1所示应用场景的基础上,进行简化后得到的示意图,包括发送端1、发送端2、发送端3、第一网络设备1(图1中的网络设备1)、第一网络设备2(图1中的网络设备2)、第二网络设备(图1中的网络设备5)和接收端1。
请参照图10,发送端1向第一网络设备1发送三个数据流(f1、f2和f3)的数据报文,每个数据报文携带一个第一请求信息,例如如图10所示的a1、a2和a2。假设该三个数据报文具有相同的目的地址,则第一网络设备1对三个第一请求信息进行汇总,向第二网络设备发送数据报文,该数据报文即携带汇总后的第一请求信息,即一个a1和两个a2。
类似的,发送端3向第一网络设2备发送两个数据流(f4和f5)的数据报文,每个数据报文携带一个第一请求信息,例如如图10所示的a3和a3。假设该两个数据报文具有相同的目的地址,则第一网络设备2对两个第一请求信息进行汇总,向第二网络设备发送数据报文,该数据报文即携带汇总后的第一请求信息,即两个a3。
第二网络设备可以根据第一网络设备1发送的数据报文和第一网络设备2发送的数据报文,向第一网络设备1和第一网络设备2分配令牌数。
例如,第二网络设备可以根据各个数据报文所携带的第二请求信息确定分配给各个第一网络设备的令牌数。
例如,以上述图10的请求信息为例,做进一步举例说明,其分配令牌数的过程可以参见图11,如图11所示,第二网络设备向第一网络设备1分配令牌数1,向第一网络设备2分配令牌数2。令牌数1携带在一个第二控制报文中,令牌数2携带在另一个第二控制报文中。
示例性的,令牌数1(Credit1)和令牌数2(Credit2)可以采用如下公式计算。
Credit1=C*(a1+2*a2)/(a1+2*a2+2*a3) (5)
Credit2=C*2*a3/(a1+2*a2+2*a3) (6)
其中,C为第二网络设备的输出端口的链路带宽。
第一网络设备1根据该令牌数1(Credit1)可以确定分配给各个数据流的令牌数(credit11、credit12和credit13)。令牌数11携带在一个第一控制报文中,令牌数12携带在另一个第一控制报文中,令牌数13携带在又一个第一控制报文中。
示例性的,令牌数(credit11、credit12和credit13)可以采用如下公式计算。
credit11=Credit1*a1/(a1+2*a2) (7)
credit12=Credit1*a2/(a1+2*a2) (8)
credit13=Credit1*a2/(a1+2*a2) (9)
本实施例,第一网络设备和第二网络设备可以结合应用程序的属性信息差异化调度数据流,可以最大限度满足不同应用程序的数据传输需求,提升网络资源的利用率。
图12为本申请实施例提供的拥塞控制装置1200的示意性框图。本实施例的拥塞控制装置1200可以作为上述方法实施例所涉及的第一网络设备,该拥塞控制装置1200包括收发模块1201和处理模块1202。
在一个实施例中,该拥塞控制装置1200的各模块分别用于执行如下操作和/或处理。
收发模块1201,用于接收发送端发送的第一数据流;所述发送端为所述第一网络设备连接的多个主机中的任意一个;当所述第一网络设备中所述第一数据流对应的出端口队列的深度大于第一阈值时,处理模块1202通过所述收发模块1201向所述发送端发送第一暂停帧,所述第一暂停帧用于指示所述发送端暂停发送所述第一数据流。
当所述出端口队列的深度小于第二阈值时,所述处理模块1202通过所述收发模块1201向所述发送端发送第一控制报文,所述第一控制报文携带第一令牌数,所述第一令牌数用于指示允许所述发送端发送的所述第一数据流的数据量;所述第二阈值小于所述第一阈值。
其中,所述第一令牌数为所述第一网络设备根据第二令牌数确定的,所述第二令牌数为第二网络设备发送给所述第一网络设备的,所述第二网络设备连接所述第一数据流的接收端。
在一些实施例中,所述第一阈值为根据所述发送端的输出端口的链路带宽、所述发送端与所述接收端之间的往返时延、第一时延和所述多个主机的个数确定的,所述第一时延为所述第一网络设备与所述发送端之间的数据传输时延。
在一些实施例中,所述第一阈值为BDP-2*C1*T1*(n-1)和2*C1*T1中的较大值,BDP为带宽时延积,BDP=C1*RTT,C1为所述发送端的输出端口的链路带宽,RTT为所述往返时延,n为所述多个主机的个数,T1为所述第一时延。
在一些实施例中,所述第二阈值为根据所述发送端的输出端口的链路带宽和第一时延确定的,所述第一时延为所述第一网络设备与所述发送端之间的数据传输时延。
在一些实施例中,所述第二阈值等于2*C1*T1,C1为所述发送端的输出端口的链路带宽,T1为所述第一时延。
在一些实施例中,所述收发模块1201还用于接收所述第二网络设备发送的第二暂停帧,所述第二暂停帧用于指示所述第二网络设备的出端口队列发生拥塞。
所述处理模块1202还用于根据所述第二暂停帧暂停向所述第二网络设备发送所述第二网络设备的出端口队列对应的第二数据流。
在一些实施例中,所述处理模块1202还用于通过所述收发模块1201向所述发送端发送第三暂停帧,所述第三暂停帧为所述第一网络设备根据所述第二暂停帧确定的,所述第三暂停帧用于指示所述发送端暂停发送第三数据流。
在一些实施例中,所述收发模块1201还用于接收所述第二网络设备发送的第二控制报文,所述第二控制报文携带所述第二令牌数,所述第二令牌数用于指示允许所述第一网络设备向所述第二控制报文对应的出端口队列发送的数据量。
所述处理模块1202用于根据所述第二令牌数通过所述收发模块向所述第二网络设备发送所述第一数据流。
在一些实施例中,所述第一数据流包括第一数据报文,所述第一数据报文包括请求信息,所述请求信息为所述发送端为所述第一数据流请求的令牌数,所述处理模块1202还用于根据所述请求信息和所述第二令牌数,确定所述第一令牌数。
在一些实施例中,所述发送端为所述第一数据流请求的令牌数是根据所述第一数据流的大小,所述第一数据流对应的应用程序的类型、所述第一数据流的优先级或所述第一数据流的截止时间中至少一项确定的。
可选的,该装置1200还可以包括存储模块1203,用于存储供处理模块执行的计算机程序。
可选地,拥塞控制装置1200也可以同时具有方法实施例中第一网络设备的其它功能。类似说明可以参考前述方法实施例的描述。为避免重复,这里不再赘述。
可选地,处理模块1202可以是处理器,收发模块1201可以是收发器。收发器包括接收器和发射器,同时具有发送和接收的功能。
可选地,处理模块1202可以是一个处理装置,处理装置的功能可以部分或全部通过软件实现。
在一种可能的实现方式中,处理装置的功能可以部分或全部通过软件实现。此时,处理装置可以包括存储器和处理器。其中,存储器用于存储计算机程序,处理器读取并执行存储器中存储的计算机程序,以执行各方法实施例中由第一网络设备实现的步骤。
可选地,在一种可能的实现方式中,处理装置包括处理器。用于存储计算机程序的存储器位于处理装置之外,处理器通过电路/电线与存储器连接,以读取并执行存储器中存储的计算机程序。
在另一个实施例中,拥塞控制装置1200可以为芯片。此时,收发模块1201具体可以为通信接口或者收发电路。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被计算机执行时,使得计算机执行上述任一方法实施例中由第一网络设备执行的步骤和/或处理。
本申请还提供一种计算机程序产品,所述计算机程序产品包括计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述任一方法实施例中由第一网络设备执行的步骤和/或处理。
本申请还提供一种芯片,所述芯片包括处理器。用于存储计算机程序的存储器独立于芯片而设置,处理器用于执行存储器中存储的计算机程序,以执行任一方法实施例中由第一网络设备执行的步骤和/或处理。
进一步地,所述芯片还可以包括存储器和通信接口。所述通信接口可以是输入/输出接口、管脚或输入/输出电路等。
图13为本申请实施例提供的一种拥塞控制装置1300的结构示意图。如图13所示,拥塞控制装置1300可以是上述实施例中涉及到的第一网络设备。拥塞控制装置1300包括处理器1301和端口单元1302。
可选地,拥塞控制装置1300还包括存储器1303。其中,处理器1301、端口单元1302和存储器1303之间可以通过内部连接通路互相通信,传递控制信号和/或数据信号。
其中,存储器1303用于存储计算机程序。处理器1301用于执行存储器1303中存储的计算机程序,从而实现上述装置实施例中的各功能。端口单元1302用于接收发送端发送的数据流,向第二网络设备发送数据流。
可选地,存储器1303也可以集成在处理器1301中,或者独立于处理器1301。
上述装置实施例可以用于执行方法实施例中第一网络设备的技术方案,其实现原理和技术效果类似,此处不再赘述。
图14为本申请实施例提供的拥塞控制装置1400的示意性框图。本实施例的拥塞控制装置1400可以作为上述方法实施例所涉及的第二网络设备,该拥塞控制装置1400包括收发模块1401和处理模块1402。
在一个实施例中,拥塞控制装置1400的各模块分别用于执行如下操作和/或处理。
收发模块1401用于通过第一网络设备接收第一数据流;所述第一数据流是从发送端发往接收端的,所述第一网络设备连接所述发送端,所述第二网络设备连接所述接收端。
当所述第二网络设备中所述第一数据流对应的出端口队列的深度大于第一阈值时,处理模块1402通过所述收发模块1401向所述第一网络设备发送第一暂停帧,所述第一暂停帧用于指示所述第一网络设备暂停发送所述出端口队列对应的第二数据流。
当所述出端口队列的深度小于第二阈值时,所述处理模块1402通过所述收发模块1401向所述第一网络设备发送第一控制报文,所述第一控制报文携带第一令牌数,所述第一令牌数用于指示允许所述第一网络设备向所述出端口队列发送的数据量。
在一些实施例中,所述第一阈值为根据所述第一网络设备的输出端口的链路带宽、所述发送端与所述接收端之间的往返时延、第二时延和所述第二网络设备的上游节点个数确定的,所述第二时延为所述第二网络设备与所述第一网络设备之间的数据传输时延,所述上游节点为向所述第二网络设备发送数据流的设备。
在一些实施例中,所述第一阈值为BDP-2*C2*T2*(n’-1)和2*C2*T2中的较大值,BDP为带宽时延积,BDP=C1*RTT,C1为所述发送端的输出端口的链路带宽,RTT为所述往返时延,C2为所述第一网络设备的输出端口的链路带宽,T2为所述第二时延,n’为所述上游节点个数。
在一些实施例中,所述第二阈值为根据所述第一网络设备的输出端口的链路带宽和第二时延确定的,所述第二时延为所述第二网络设备与所述第一网络设备之间的数据传输时延。
在一些实施例中,所述第二阈值等于2*C2*T2,C2为所述第一网络设备的输出端口的链路带宽,T2为所述第二时延。
在一些实施例中,所述第一数据流包括第一数据报文,所述第一数据报文包括请求信息,所述请求信息为所述第一网络设备为所述第一数据流请求的令牌数,所述处理模块1402还用于根据所述请求信息以及所述第一数据流的属性,确定所述第二令牌数。
可选的,该装置1400还可以包括存储模块1403,用于存储供处理模块执行的计算机程序。
可选地,拥塞控制装置1400也可以同时具有方法实施例中第二网络设备的其它功能。类似说明可以参考前述方法实施例的描述。为避免重复,这里不再赘述。
可选地,处理模块1402可以是处理器,收发模块1401可以是收发器。收发器包括接收器和发射器,同时具有发送和接收的功能。
可选地,处理模块1402可以是一个处理装置,处理装置的功能可以部分或全部通过软件实现。
在一种可能的实现方式中,处理装置的功能可以部分或全部通过软件实现。此时,处理装置可以包括存储器和处理器。其中,存储器用于存储计算机程序,处理器读取并执行存储器中存储的计算机程序,以执行各方法实施例中由第二网络设备实现的步骤。
可选地,在一种可能的实现方式中,处理装置包括处理器。用于存储计算机程序的存储器位于处理装置之外,处理器通过电路/电线与存储器连接,以读取并执行存储器中存储的计算机程序。
在另一个实施例中,拥塞控制装置1400可以为芯片。此时,收发模块1401具体可以为通信接口或者收发电路。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被计算机执行时,使得计算机执行上述任一方法实施例中由第二网络设备执行的步骤和/或处理。
本申请还提供一种计算机程序产品,所述计算机程序产品包括计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述任一方法实施例中由第二网络设备执行的步骤和/或处理。
本申请还提供一种芯片,所述芯片包括处理器。用于存储计算机程序的存储器独立于芯片而设置,处理器用于执行存储器中存储的计算机程序,以执行任一方法实施例中由第二网络设备执行的步骤和/或处理。
进一步地,所述芯片还可以包括存储器和通信接口。所述通信接口可以是输入/输出接口、管脚或输入/输出电路等。
图15为本申请实施例提供的一种拥塞控制装置1500的结构示意图。如图15所示,拥塞控制装置1500可以是上述实施例中涉及到的第二网络设备。拥塞控制装置1500包括处理器1501和端口单元1502。
可选地,拥塞控制装置1500还包括存储器1503。其中,处理器1501、端口单元1502和存储器1503之间可以通过内部连接通路互相通信,传递控制信号和/或数据信号。
其中,存储器1503用于存储计算机程序。处理器1501用于执行存储器1503中存储的计算机程序,从而实现上述装置实施例中的各功能。端口单元1302用于接收第一网络设备发送的数据流,向接收端发送数据流。
可选地,存储器1503也可以集成在处理器1501中,或者独立于处理器1501。
上述装置实施例可以用于执行方法实施例中第二网络设备的技术方案,其实现原理和技术效果类似,此处不再赘述。
以上各实施例中提及的处理器可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。处理器可以是通用处理器、数字信号处理器(digital signalprocessor,DSP)、特定应用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。本申请实施例公开的方法的步骤可以直接体现为硬件编码处理器执行完成,或者用编码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
上述各实施例中提及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (22)
1.一种拥塞控制方法,其特征在于,包括:
第一网络设备接收发送端发送的第一数据流;所述发送端为所述第一网络设备连接的多个主机中的任意一个;当所述第一网络设备中所述第一数据流对应的出端口队列的深度大于第一阈值时,所述第一网络设备向所述发送端发送第一暂停帧,所述第一暂停帧用于指示所述发送端暂停发送所述第一数据流;
当所述出端口队列的深度小于第二阈值时,所述第一网络设备向所述发送端发送第一控制报文,所述第一控制报文携带第一令牌数,所述第一令牌数用于指示允许所述发送端发送的所述第一数据流的数据量;所述第二阈值小于所述第一阈值;
其中,所述第一令牌数为所述第一网络设备根据第二令牌数确定的,所述第二令牌数为第二网络设备发送给所述第一网络设备的,所述第二网络设备连接所述第一数据流的接收端。
2.根据权利要求1所述的方法,其特征在于,所述第一阈值为根据所述发送端的输出端口的链路带宽、所述发送端与所述接收端之间的往返时延、第一时延和所述多个主机的个数确定的,所述第一时延为所述第一网络设备与所述发送端之间的数据传输时延。
3.根据权利要求1或2所述的方法,其特征在于,所述第二阈值为根据所述发送端的输出端口的链路带宽和第一时延确定的,所述第一时延为所述第一网络设备与所述发送端之间的数据传输时延。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
所述第一网络设备接收所述第二网络设备发送的第二暂停帧,所述第二暂停帧用于指示所述第二网络设备的出端口队列发生拥塞;
所述第一网络设备根据所述第二暂停帧暂停向所述第二网络设备发送所述第二网络设备的出端口队列对应的第二数据流。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述第一网络设备向所述发送端发送第三暂停帧,所述第三暂停帧为所述第一网络设备根据所述第二暂停帧确定的,所述第三暂停帧用于指示所述发送端暂停发送第三数据流。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述方法还包括:
所述第一网络设备接收所述第二网络设备发送的第二控制报文,所述第二控制报文携带所述第二令牌数,所述第二令牌数用于指示允许所述第一网络设备向所述第二控制报文对应的出端口队列发送的数据量;
所述第一网络设备根据所述第二令牌数向所述第二网络设备发送所述第一数据流。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述第一数据流包括第一数据报文,所述第一数据报文包括请求信息,所述请求信息为所述发送端为所述第一数据流请求的令牌数,所述方法还包括:所述第一网络设备根据所述请求信息和所述第二令牌数,确定所述第一令牌数。
8.一种拥塞控制方法,其特征在于,包括:
第二网络设备通过第一网络设备接收第一数据流;所述第一数据流是从发送端发往接收端的,所述第一网络设备连接所述发送端,所述第二网络设备连接所述接收端;
当所述第二网络设备中所述第一数据流对应的出端口队列的深度大于第一阈值时,所述第二网络设备向所述第一网络设备发送第一暂停帧,所述第一暂停帧用于指示所述第一网络设备暂停发送所述出端口队列对应的第二数据流;
当所述出端口队列的深度小于第二阈值时,所述第二网络设备向所述第一网络设备发送第一控制报文,所述第一控制报文携带第一令牌数,所述第一令牌数用于指示允许所述第一网络设备向所述出端口队列发送的数据量。
9.根据权利要求8所述的方法,其特征在于,所述第一阈值为根据所述第一网络设备的输出端口的链路带宽、所述发送端与所述接收端之间的往返时延、第二时延和所述第二网络设备的上游节点个数确定的,所述第二时延为所述第二网络设备与所述第一网络设备之间的数据传输时延,所述上游节点为向所述第二网络设备发送数据流的设备。
10.根据权利要求8或9所述的方法,其特征在于,所述第二阈值为根据所述第一网络设备的输出端口的链路带宽和第二时延确定的,所述第二时延为所述第二网络设备与所述第一网络设备之间的数据传输时延。
11.根据权利要求8至10中任一项所述的方法,其特征在于,所述第一数据流包括第一数据报文,所述第一数据报文包括请求信息,所述请求信息为所述第一网络设备为所述第一数据流请求的令牌数,所述方法还包括:所述第二网络设备根据所述请求信息以及所述第一数据流的属性,确定所述第一令牌数。
12.一种拥塞控制装置,所述拥塞控制装置作为第一网络设备,其特征在于,包括:
收发模块,用于接收发送端发送的第一数据流;所述发送端为所述第一网络设备连接的多个主机中的任意一个;当所述第一网络设备中所述第一数据流对应的出端口队列的深度大于第一阈值时,处理模块通过所述收发模块向所述发送端发送第一暂停帧,所述第一暂停帧用于指示所述发送端暂停发送所述第一数据流;
当所述出端口队列的深度小于第二阈值时,所述处理模块通过所述收发模块向所述发送端发送第一控制报文,所述第一控制报文携带第一令牌数,所述第一令牌数用于指示允许所述发送端发送的所述第一数据流的数据量;所述第二阈值小于所述第一阈值;
其中,所述第一令牌数为所述第一网络设备根据第二令牌数确定的,所述第二令牌数为第二网络设备发送给所述第一网络设备的,所述第二网络设备连接所述第一数据流的接收端。
13.根据权利要求12所述的装置,其特征在于,所述第一阈值为根据所述发送端的输出端口的链路带宽、所述发送端与所述接收端之间的往返时延、第一时延和所述多个主机的个数确定的,所述第一时延为所述第一网络设备与所述发送端之间的数据传输时延。
14.根据权利要求12或13所述的装置,其特征在于,所述第二阈值为根据所述发送端的输出端口的链路带宽和第一时延确定的,所述第一时延为所述第一网络设备与所述发送端之间的数据传输时延。
15.根据权利要求12-14中任一项所述的装置,其特征在于,所述收发模块还用于接收所述第二网络设备发送的第二暂停帧,所述第二暂停帧用于指示所述第二网络设备的出端口队列发生拥塞;
所述处理模块还用于根据所述第二暂停帧暂停向所述第二网络设备发送所述第二网络设备的出端口队列对应的第二数据流。
16.根据权利要求15所述的装置,其特征在于,所述处理模块还用于通过所述收发模块向所述发送端发送第三暂停帧,所述第三暂停帧为所述第一网络设备根据所述第二暂停帧确定的,所述第三暂停帧用于指示所述发送端暂停发送第三数据流。
17.根据权利要求12-16中任一项所述的装置,其特征在于,所述收发模块还用于接收所述第二网络设备发送的第二控制报文,所述第二控制报文携带所述第二令牌数,所述第二令牌数用于指示允许所述第一网络设备向所述第二控制报文对应的出端口队列发送的数据量;
所述处理模块用于根据所述第二令牌数通过所述收发模块向所述第二网络设备发送所述第一数据流。
18.根据权利要求12-17中任一项所述的装置,其特征在于,所述第一数据流包括第一数据报文,所述第一数据报文包括请求信息,所述请求信息为所述发送端为所述第一数据流请求的令牌数,所述处理模块还用于根据所述请求信息和所述第二令牌数,确定所述第一令牌数。
19.一种拥塞控制装置,所述拥塞控制装置作为第二网络设备,其特征在于,包括:
收发模块用于通过第一网络设备接收第一数据流;所述第一数据流是从发送端发往接收端的,所述第一网络设备连接所述发送端,所述第二网络设备连接所述接收端;
当所述第二网络设备中所述第一数据流对应的出端口队列的深度大于第一阈值时,处理模块通过所述收发模块向所述第一网络设备发送第一暂停帧,所述第一暂停帧用于指示所述第一网络设备暂停发送所述出端口队列对应的第二数据流;
当所述出端口队列的深度小于第二阈值时,所述处理模块通过所述收发模块向所述第一网络设备发送第一控制报文,所述第一控制报文携带第一令牌数,所述第一令牌数用于指示允许所述第一网络设备向所述出端口队列发送的数据量。
20.根据权利要求19所述的装置,其特征在于,所述第一阈值为根据所述第一网络设备的输出端口的链路带宽、所述发送端与所述接收端之间的往返时延、第二时延和所述第二网络设备的上游节点个数确定的,所述第二时延为所述第二网络设备与所述第一网络设备之间的数据传输时延,所述上游节点为向所述第二网络设备发送数据流的设备。
21.根据权利要求19或20所述的装置,其特征在于,所述第二阈值为根据所述第一网络设备的输出端口的链路带宽和第二时延确定的,所述第二时延为所述第二网络设备与所述第一网络设备之间的数据传输时延。
22.根据权利要求19-21中任一项所述的装置,其特征在于,所述第一数据流包括第一数据报文,所述第一数据报文包括请求信息,所述请求信息为所述第一网络设备为所述第一数据流请求的令牌数,所述处理模块还用于根据所述请求信息以及所述第一数据流的属性,确定所述第一令牌数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911047292.3A CN112751776A (zh) | 2019-10-30 | 2019-10-30 | 拥塞控制方法和相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911047292.3A CN112751776A (zh) | 2019-10-30 | 2019-10-30 | 拥塞控制方法和相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112751776A true CN112751776A (zh) | 2021-05-04 |
Family
ID=75640820
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911047292.3A Pending CN112751776A (zh) | 2019-10-30 | 2019-10-30 | 拥塞控制方法和相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112751776A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114401127A (zh) * | 2021-12-30 | 2022-04-26 | 中国电信股份有限公司 | 一种基于ZeroMQ的数据包传输方法、装置及设备 |
CN115442306A (zh) * | 2021-06-01 | 2022-12-06 | 迈络思科技有限公司 | 基于基数的流量控制 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005057407A (ja) * | 2003-08-01 | 2005-03-03 | Nippon Telegr & Teleph Corp <Ntt> | フロー制御方法及びフレーム処理装置 |
CN103368861A (zh) * | 2013-07-30 | 2013-10-23 | 迈普通信技术股份有限公司 | 一种处理网络拥塞的系统及方法 |
WO2015000357A1 (zh) * | 2013-07-03 | 2015-01-08 | 华为技术有限公司 | 拥塞控制方法、设备及系统 |
CN107493238A (zh) * | 2016-06-13 | 2017-12-19 | 华为技术有限公司 | 一种网络拥塞控制方法、设备及系统 |
CN108667739A (zh) * | 2017-03-27 | 2018-10-16 | 华为技术有限公司 | 拥塞控制方法、装置及系统 |
CN108881056A (zh) * | 2017-05-15 | 2018-11-23 | 华为技术有限公司 | 一种拥塞控制方法、网络设备及其网络接口控制器 |
CN109391560A (zh) * | 2017-08-11 | 2019-02-26 | 华为技术有限公司 | 网络拥塞的通告方法、代理节点及计算机设备 |
CN109802894A (zh) * | 2019-01-03 | 2019-05-24 | 中国联合网络通信集团有限公司 | 流量控制方法及装置 |
-
2019
- 2019-10-30 CN CN201911047292.3A patent/CN112751776A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005057407A (ja) * | 2003-08-01 | 2005-03-03 | Nippon Telegr & Teleph Corp <Ntt> | フロー制御方法及びフレーム処理装置 |
WO2015000357A1 (zh) * | 2013-07-03 | 2015-01-08 | 华为技术有限公司 | 拥塞控制方法、设备及系统 |
CN104283808A (zh) * | 2013-07-03 | 2015-01-14 | 华为技术有限公司 | 拥塞控制方法、设备及系统 |
CN103368861A (zh) * | 2013-07-30 | 2013-10-23 | 迈普通信技术股份有限公司 | 一种处理网络拥塞的系统及方法 |
CN107493238A (zh) * | 2016-06-13 | 2017-12-19 | 华为技术有限公司 | 一种网络拥塞控制方法、设备及系统 |
CN108667739A (zh) * | 2017-03-27 | 2018-10-16 | 华为技术有限公司 | 拥塞控制方法、装置及系统 |
CN108881056A (zh) * | 2017-05-15 | 2018-11-23 | 华为技术有限公司 | 一种拥塞控制方法、网络设备及其网络接口控制器 |
CN109391560A (zh) * | 2017-08-11 | 2019-02-26 | 华为技术有限公司 | 网络拥塞的通告方法、代理节点及计算机设备 |
CN109802894A (zh) * | 2019-01-03 | 2019-05-24 | 中国联合网络通信集团有限公司 | 流量控制方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115442306A (zh) * | 2021-06-01 | 2022-12-06 | 迈络思科技有限公司 | 基于基数的流量控制 |
US11838209B2 (en) | 2021-06-01 | 2023-12-05 | Mellanox Technologies, Ltd. | Cardinality-based traffic control |
CN114401127A (zh) * | 2021-12-30 | 2022-04-26 | 中国电信股份有限公司 | 一种基于ZeroMQ的数据包传输方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11916782B2 (en) | System and method for facilitating global fairness in a network | |
US9571402B2 (en) | Congestion control and QoS in NoC by regulating the injection traffic | |
US9197570B2 (en) | Congestion control in packet switches | |
EP2702731A1 (en) | Hierarchical profiled scheduling and shaping | |
US10536385B2 (en) | Output rates for virtual output queses | |
WO2016082603A1 (zh) | 一种调度器及调度器的动态复用方法 | |
JP2023511889A (ja) | サービスレベル構成方法および装置 | |
Tschorsch et al. | Tor is unfair—And what to do about it | |
CN112751776A (zh) | 拥塞控制方法和相关装置 | |
CN109995608B (zh) | 网络速率计算方法和装置 | |
WO2021143913A1 (zh) | 拥塞控制方法、装置及系统、存储介质 | |
WO2019029220A1 (zh) | 网络设备 | |
WO2022135202A1 (zh) | 业务流的调度方法、装置及系统 | |
US11805071B2 (en) | Congestion control processing method, packet forwarding apparatus, and packet receiving apparatus | |
KR20120055947A (ko) | 가입자 인지 플로우별 QoS 제공 방법 및 장치 | |
CN114095431A (zh) | 队列管理的方法和网络设备 | |
JP7193787B2 (ja) | 通信システム、ブリッジ装置、通信方法、及びプログラム | |
Wu et al. | AQM-based Buffer Delay Guarantee for Congestion Control in 5G Networks | |
US20230254264A1 (en) | Software-defined guaranteed-latency networking | |
WO2023123075A1 (zh) | 一种数据交换的控制方法及装置 | |
CN113746746A (zh) | 数据处理方法及设备 | |
WO2020143509A1 (zh) | 传输数据的方法和网络设备 | |
CN117897936A (zh) | 一种报文转发方法及装置 | |
Chen et al. | On meeting deadlines in datacenter networks | |
Zhang | Burst Forwarding Network |
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 |