CN111224884A - 拥塞控制的处理方法、报文转发装置及报文接收装置 - Google Patents
拥塞控制的处理方法、报文转发装置及报文接收装置 Download PDFInfo
- Publication number
- CN111224884A CN111224884A CN201811426088.8A CN201811426088A CN111224884A CN 111224884 A CN111224884 A CN 111224884A CN 201811426088 A CN201811426088 A CN 201811426088A CN 111224884 A CN111224884 A CN 111224884A
- Authority
- CN
- China
- Prior art keywords
- bandwidth
- port
- forwarding device
- message
- sent
- 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.)
- Granted
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
- 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/70—Admission control; Resource allocation
- H04L47/80—Actions related to the user profile or the type of traffic
- H04L47/801—Real time traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/17—Interaction among intermediate nodes, e.g. hop by hop
-
- 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/22—Traffic shaping
- H04L47/225—Determination of shaping rate, e.g. using a moving window
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2425—Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
- H04L47/2433—Allocation of priorities to traffic types
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/33—Flow control; Congestion control using forward notification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/622—Queue service order
- H04L47/623—Weighted service order
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/76—Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions
- H04L47/762—Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions triggered by the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/78—Architectures of resource allocation
- H04L47/781—Centralised allocation of resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种拥塞控制的处理方法和处理装置。该方法采用了转发设备和目的设备的两级调度方式。即数据中心网络的网络设备,按照发往不同的目的设备的流的权重进行粗粒度的带宽分配。网络设备为每个流分配不会造成拥塞的带宽,并通告目的设备。目的设备进行细粒度的划分,为每个流确定最大的发送速率,并将最大地发送速率通告给报文发送设备。该方法能够适应不同设备的不同的能力,消除中间网络以及最后一跳的网络拥塞。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种拥塞控制的处理方法、报文转发装置及报文接收装置。
背景技术
随着数据中心网络的蓬勃发展,越来越多的业务部署在数据中心网络中,为了给用户提供更好的服务质量,对数据中心网络的要求也越来越高。例如,web服务,或者存储业务,对端到端的延时非常苛刻。目前,造成数据中心时延增大的原因主要是拥塞导致的动态时延,当拥塞发生后,队列长度增大或者出现丢包现象,显著影响业务运行速度以及业务体验。
现有的拥塞控制机制包括被动拥塞控制和主动拥塞控制。其中,被动拥塞控制机制中,数据中心网络的网络设备不感知其他并发流,收敛到稳态速度比较慢;而主动拥塞控制机制能够保证最后一跳不拥塞或者出现短暂拥塞,但由于多个接收端之间互相不感知,当中间转发设备的数量较多时,仍可能造成网络出现多个拥塞点。
因此,需要一种拥塞控制的处理机制,彻底消除网络设备的拥塞,满足低时延的需求。
发明内容
本申请提供一种拥塞控制的处理方法、报文转发装置及报文接收装置,
第一方面,提供了一种分配带宽的方法,该方法包括:第一转发设备确定需要经由第一端口发送的目的地为第一目的设备的业务流的第一权重,该第一转发设备包括该第一端口;该第一转发设备根据该第一权重以及该第一端口的总带宽,为需要经由该第一端口发送的目的地为该第一目的设备的业务流分配第一带宽;该第一转发设备向该第一目的设备通告该第一带宽。
应理解,第一端口是转发设备的出端口,转发设备将接收的报文流通过至少一个出端口发送出去,出端口的数量可能是一个或者多个,对于报文发送设备、转发设备和目的设备不同的组合连接方式,本申请中第一端口也对应不同的情况。
第一权重可以理解为转发设备为经由第一端口发送的目的地为第一目的设备的业务流分配的带宽比重,根据该带宽比重和该第一端口的总带宽,就可以确定该第一端口发送的目的地为第一目的设备的业务流分配的带宽,即确定该业务流的发送速率。
可选地,转发设备可以接收报文发送设备发送的多个报文流,多个报文流可以是包含相同的目的地址,也可以是不同的目的地址。例如,该多个报文流都是发往第一目的设备的报文流,或者发往多个目的地址的报文流,本申请对此不作限定。
上述技术方案可以针对数据中心网络不同的连接形式,以及不同的端口,可以确定转发设备的端口为业务流分配的带宽,例如为单一目的地的业务流、多个目的地的业务流、来自多个转发设备或者来自多个报文发送设备的业务流分配不同的带宽,实现数据中心网络的流级调度,维护每个流的状态,从转发设备的层次实现网络调度,按照每个流归一化权重,从而根据权重为每个流分配合理的带宽,避免中间网络的拥塞,消除中间网络可能出现的拥塞,为接收端的调度奠定基础。这里对于各种可能的端口形式不再一一举例,详见说明书实施例部分。
结合第一方面,在第一方面的某些实现方式中,该第一转发设备确定需要经由第一端口发送的目的地为第一目的设备的业务流的第一权重,包括:该第一转发设备确定与第一集合包含的多个报文流一一对应的多个权重,需要经由第一端口发送的目的地为第一目的设备的业务流包括第一集合包含的多个报文流;该第一转发设备根据该与第一集合包含的多个报文流一一对应的多个权重,确定该第一权重,该第一权重等于该与第一集合包含的多个报文流一一对应的多个权重的和。
当转发设备向第一目的设备发送多个报文流时,将该多个报文流组成的集合称为“第一集合”,即该第一集合包括的多个报文流都是需要经由第一端口发送到第一目的设备的业务流。转发设备确定与第一集合包含的多个报文流一一对应的多个权重,该转发设备根据与第一集合包含的多个报文流一一对应的多个权重,确定该第一权重,该第一权重等于该与第一集合包含的多个报文流一一对应的多个权重的和。
例如,M个报文流的目的地址都是第一目的设备,M个报文流都是通过第一端口发送到第一目的设备,且M个报文流对应了M个权重,则该第一权重等于该M个报文流一一对应的M个权重的和。其中,当M为1时,就是转发设备向目的设备通过第一端口发送一个报文流的情况,该报文流对应一个权重,即为第一权重;当M大于或等于1时,转发设备向目的设备通过第一端口发送M个报文流的情况,该M个报文流对应M个权重,M个权重之和即为第一权重。
可选地,第一集合包含的多个报文流可以对应不同的优先级,例如第一集合包含的多个报文流可以包括大象流(elephant flow)和老鼠流(mice flow),该大象流包含的比特的数量大于老鼠流包含的比特的数量,且该大象流对应的权重小于该老鼠流对应的权重。
在一种可能的实现方式中,该大象流为数据,该老鼠流为信令。例如,数据可以是语音、视频的数据帧,对应地,信令可以是用户发起的请求消息,该请求消息用于请求从云端获取该语音、视频的数据帧。应理解,本申请对流的形式、流的优先级以及不同的流的权重不作限定,针对不同的流和权重,转发设备在分配带宽的过程中都可以采用本申请提供的方法。
结合第一方面和上述实现方式,在第一方面的某些实现方式中,该第一转发设备确定与第一集合包含的多个报文流一一对应的多个权重,包括:该第一转发设备接收多个报文,该多个报文分别属于该多个报文流,该多个报文携带该多个权重,该多个报文中的每个报文携带一个权重。
可选地,每个报文流的第一个报文(首包)可以携带一个权重信息,本申请对携带权重的报文的位置和形式不作限定。
结合第一方面和上述实现方式,在第一方面的某些实现方式中,该方法还包括:该第一转发设备确定需要经由该第一端口发送的目的地为其他设备的业务流的其他权重,该其他设备为除了该第一目的设备的目的设备;以及,该第一转发设备根据该第一权重以及该第一端口的总带宽,为需要经由该第一端口发送的目的地为该第一目的设备的业务流分配第一带宽,包括:该第一转发设备根据该第一权重、该其他权重以及该第一端口的总带宽,分配该第一带宽,该第一带宽等于该第一端口的总带宽×该第一权重/(该第一权重+该其他权重)。
应理解,当至少两个报文发送设备连接一个转发设备,该转发设备通过第一端口连接至少两个目的设备时,第一端口可以是转发设备向第一目的设备和第二目的设备发送报文流的端口,此种情况下,转发设备确定需要经由该第一端口发送的目的地为第一目的设备的权重为第一权重,经由该第一端口发送的目的地为第二目的设备的业务流的权重为第二权重,转发设备为需要经由该第一端口发送的目的地为该第一目的设备的业务流分配第一带宽。
结合第一方面和上述实现方式,在第一方面的某些实现方式中,该第一转发设备经由第二转发设备连接到该第一目的设备,该第一转发设备向该第一目的设备通告该第一带宽,包括:该第一转发设备向该第二转发设备通告该第一带宽,使得该第二转发设备根据该第一带宽,为需要经由该第一端口发送的目的地为该第一目的设备的业务流分配带宽;或者该第一转发设备连接到该第一目的设备没有经由其他转发设备,该第一转发设备向该第一目的设备通告该第一带宽,包括:该第一转发设备向该第一目的设备通告该第一带宽。
通过上述方案,对于不同的数据中心网络的连接形式,例如数据中心网络包括一级网络设备,则转发设备直接向目的设备通告确定的带宽;或者数据中心网络包括至少两级网络设备,则该第一转发设备向该第二转发设备通告该第一带宽,使得该第二转发设备根据该第一带宽,为需要经由该第一端口发送的目的地为该第一目的设备的业务流分配带宽,以便目的设备确定需要经由该第一端口发送的至少一个报文流的最大发送速率,从而实现后续的从目的设备侧进行拥塞控制。
结合第一方面和上述实现方式,在第一方面的某些实现方式中,该第一转发设备按照该第一带宽经由第一端口发送的业务流包括需要第三转发设备经由第三端口发送的目的地为第一目的地址的业务流,和需要第四转发设备经由第四端口发送的目的地为该第一目的地址的业务流,其中,该第三转发设备经由该第三端口连接到该第一转发设备,该第三转发设备为需要经由第三端口发送的目的地为该第一目的地址的业务流分配的带宽为第三带宽,该第四转发设备经由该第四端口连接到该第一转发设备,该第四转发设备为需要经由第四端口发送的目的地为该第一目的地址的业务流分配的带宽为第四带宽,该第一带宽包括第一子带宽和第二子带宽,
当该第一端口的总带宽大于或者等于该第三带宽和第四带宽的和时,该第一子带宽等于该第三带宽,该第二子带宽等于该第四带宽,该第一转发设备利用该第一子带宽向该第一目的设备发送需要经由第三端口发送的目的地为该第一目的地址的业务流,该第一转发设备利用该第二子带宽向该第一目的设备发送需要经由第四端口发送的目的地为该第一目的地址的业务流。
结合第一方面和上述实现方式,在第一方面的某些实现方式中,该第一转发设备按照该第一带宽经由第一端口发送的业务流包括需要第三转发设备经由第三端口发送的目的地为第一目的地址的业务流,和需要第四转发设备经由第四端口发送的目的地为该第一目的地址的业务流,其中,该第三转发设备经由该第三端口连接到该第一转发设备,该第三转发设备为需要经由第三端口发送的目的地为该第一目的地址的业务流分配的带宽为第三带宽,该第四转发设备经由该第四端口连接到该第一转发设备,该第四转发设备为需要经由第四端口发送的目的地为该第一目的地址的业务流分配的带宽为第四带宽,该第一带宽包括第一子带宽和第二子带宽,
当该第一端口的总带宽小于该第三带宽和第四带宽的和时,该第一子带宽等于第一端口的总带宽×该第三带宽/(该第三带宽+该第四带宽),该第二子带宽等于第一端口的总带宽×该第四带宽/(该第三带宽+该第四带宽),该第一转发设备利用该第一子带宽向该第一目的设备发送需要经由第三端口发送的目的地为该第一目的地址的业务流,该第一转发设备利用该第二子带宽向该第一目的设备发送需要经由第四端口发送的目的地为该第一目的地址的业务流。
上述列举了各种可能的数据中心网络的连接形式、第一端口的可能形式,应理解,在上述各种情况中,对设备的数量和形态不作限定,例如转发设备的数量,转发设备为LS或者spine等,不应对本申请实施例提供的方法造成限定。
通过上述确定带宽和权重的各种情况,针对数据中心网络不同的连接形式,以及不同的端口,可以确定转发设备的端口为业务流分配的带宽,例如为单一目的地的业务流、多个目的地的业务流、来自多个转发设备或者来自多个报文发送设备的业务流分配不同的带宽,实现数据中心网络的流级调度,维护每个流的状态,从转发设备的层次实现网络调度,按照每个流归一化权重,从而根据权重为每个流分配合理的带宽,避免中间网络的拥塞,消除中间网络可能出现的拥塞,为接收端的调度奠定基础。
第二方面,提供了一种确定速率的方法,该方法包括:第一目的设备接收第一转发设备通告的第一带宽,该第一带宽是该第一转发设备为需要经由该第一端口发送的目的地为该第一目的设备的业务流分配的带宽,所述第一转发设备包括所述第一端口;该第一目的设备根据该第一带宽,确定需要经由该第一端口发送的目的地为该第一目的设备的业务流中的至少一个报文流的最大发送速率;该第一目的设备向报文发送设备通告该至少一个报文流的最大发送速率,该报文发送设备为需要经由该第一转发设备向该第一目的设备发送该至少一个报文流的设备。
在一种可能的实现方式中,当第一目的设备只接收转发设备发送的一个报文流,就是转发设备向目的设备通过第一端口发送一个报文流的情况,该报文流对应一个权重,即转发设备发送该报文流为满速率发送。
通过上述技术方案,目的设备可以接收转发设备发送的第一带宽,根据该第一带宽确定转发设备通过第一端口发送该业务流的最大发送速率,并将该最大发送速率通告给源设备,以此实现从目的设备端进行拥塞控制,防止因为过大速率发送报文流导致网络拥塞。即,在第一方面从数据中心网络的转发设备角度实现粗粒度拥塞控制后,再从目的设备端进行细粒度的拥塞控制,控制发往每个目的设备的每个报文流的发送速率,为每个流分配合理的带宽,通过端网配合,彻底消除中间网络以及最后一跳的网络拥塞,同时中间网络实现简单,兼容多种调度策略。
结合第二方面,在第二方面的某些实现方式中,该至少一个报文流包括多个报文流,该第一目的设备根据该第一带宽,确定需要经由该第一端口发送的目的地为该第一目的设备的业务流中的至少一个报文流的最大发送速率,包括:该第一目的设备确定与该多个报文流一一对应的多个权重;该第一目的设备根据该多个权重以及该第一带宽,确定该多个报文流中的每个报文流的最大发送速率,每个报文流的最大发送速率等于该第一带宽×该报文流的权重/该多个权重的和。
例如,M个报文流的目的地址都是第一目的设备,M大于或等于1。M个报文流都是通过第一端口发送到第一目的设备,且M个报文流对应了M个权重,则该第一权重等于该M个报文流一一对应的M个权重的和。目的设备可以通过确定的权重和转发设备通告的第一带宽确定每个报文流的最大发送速率。
结合第二方面和上述实现方式,在第二方面的某些实现方式中,该第一目的设备确定与该多个报文流一一对应的多个权重,包括:该第一目的设备接收多个报文,该多个报文分别属于该多个报文流,该多个报文携带该多个权重,该多个报文中的每个报文携带一个权重。
可选地,每个报文流的第一个报文(首包)可以携带一个权重信息,本申请对携带权重的报文的位置和形式不作限定。
结合第二方面和上述实现方式,在第二方面的某些实现方式中,该第一转发设备按照该第一带宽经由第一端口发送的业务流包括需要第三转发设备经由第三端口发送的目的地为第一目的地址的业务流,和需要第四转发设备经由第四端口发送的目的地为该第一目的地址的业务流,其中,该第三转发设备经由该第三端口连接到该第一转发设备,该第三转发设备为需要经由第三端口发送的目的地为该第一目的地址的业务流分配的带宽为第三带宽,该第四转发设备经由该第四端口连接到该第一转发设备,该第四转发设备为需要经由第四端口发送的目的地为该第一目的地址的业务流分配的带宽为第四带宽,该第一带宽包括第一子带宽和第二子带宽,
当该第一端口的总带宽大于或者等于该第三带宽和第四带宽的和时,该第一子带宽等于该第三带宽,该第二子带宽等于该第四带宽,该第一目的设备接收该第一转发设备利用该第一子带宽发送的需要经由第三端口发送的目的地为该第一目的地址的业务流,该第一目的设备接收该第一转发设备利用该第二子带宽发送的需要经由第四端口发送的目的地为该第一目的地址的业务流。
结合第二方面和上述实现方式,在第二方面的某些实现方式中,该第一转发设备按照该第一带宽经由第一端口发送的业务流包括需要第三转发设备经由第三端口发送的目的地为第一目的地址的业务流,和需要第四转发设备经由第四端口发送的目的地为该第一目的地址的业务流,其中,该第三转发设备经由该第三端口连接到该第一转发设备,该第三转发设备为需要经由第三端口发送的目的地为该第一目的地址的业务流分配的带宽为第三带宽,该第四转发设备经由该第四端口连接到该第一转发设备,该第四转发设备为需要经由第四端口发送的目的地为该第一目的地址的业务流分配的带宽为第四带宽,该第一带宽包括第一子带宽和第二子带宽,
当该第一端口的总带宽小于该第三带宽和第四带宽的和时,该第一子带宽等于第一端口的总带宽×该第三带宽/(该第三带宽+该第四带宽),该第二子带宽等于第一端口的总带宽×该第四带宽/(该第三带宽+该第四带宽),该第一目的设备接收该第一转发设备利用该第一子带宽发送的需要经由第三端口发送的目的地为该第一目的地址的业务流,该第一目的设备接收该第一转发设备利用该第二子带宽发送的需要经由第四端口发送的目的地为该第一目的地址的业务流。
通过上述目的设备根据带宽确定报文发送速率的各种情况举例,针对数据中心网络不同的连接形式,以及不同的端口,可以确定转发设备的端口发送业务流的最大速率,例如确定单一目的地的业务流、多个目的地的业务流、来自多个转发设备或者来自多个报文发送设备的业务流的不同的发送速率,实现接收端设备的流级调度。具体地,目的设备根据转发设备通告的流的带宽和对应的权重,确定报文发送设备发送该流的最大发送速率,该最大发送速率可以保证报文发送设备向转发设备发送该流时,不会造成数据中心网络的拥塞。随后,目的设备将该最大发送速率告知报文发送设备,报文发送设备可以按照该目的设备通告的最大发送速率(或者小于该最大发送速率)发送对应的流,避免数据中心网络的拥塞,消除中间网络可能出现的拥塞。
结合第一方面和第二方面的技术方案,从报文发送设备、转发设备和目的设备之间的交互的角度介绍的拥塞控制的方法,分别从转发设备和目的设备的两级层面,采用了两级调度方式,即数据中心网络的网络设备调度目的设备,按照发往不同的目的设备的流的权重进行粗粒度的带宽分配,为每个流分配不会造成中心网络拥塞的带宽,并通告目的设备;目的设备进行细粒度的划分,为每个流确定最大的发送速率,并将最大地发送速率通告给报文发送设备,针对数据中心网络存在多路径、每个接收端流数不一致、优先级分布程度不一致的情况,实现归一化一个权重,由中间网络根据接收端的权重分配带宽,再由接收端确定发送端的发送速率。该方法能够适应不同设备的能力,维护每个流的状态,从转发设备的层次实现网络调度,按照每个流归一化权重,从而根据权重为每个流分配合理的带宽,通过端网配合,彻底消除中间网络以及最后一跳的网络拥塞,同时中间网络实现简单,兼容多种调度策略。
第三方面,提供了一种报文转发装置,该装置包括:处理单元,用于确定需要经由第一端口发送的目的地为第一目的设备的业务流的第一权重,该第一转发设备包括该第一端口;该处理单元,还用于根据该第一权重以及该第一端口的总带宽,为需要经由该第一端口发送的目的地为该第一目的设备的业务流分配第一带宽;通信单元,用于向该第一目的设备通告该第一带宽。
结合第三方面和上述实现方式,在第三方面的某些实现方式中,该处理单元还用于:确定与第一集合包含的多个报文流一一对应的多个权重,需要经由第一端口发送的目的地为第一目的设备的业务流包括第一集合包含的多个报文流;根据该与第一集合包含的多个报文流一一对应的多个权重,确定该第一权重,该第一权重等于该与第一集合包含的多个报文流一一对应的多个权重的和。
结合第三方面和上述实现方式,在第三方面的某些实现方式中,该处理单元确定与第一集合包含的多个报文流一一对应的多个权重之前,该通信单元还用于:接收多个报文,该多个报文分别属于该多个报文流,该多个报文携带该多个权重,该多个报文中的每个报文携带一个权重。
结合第三方面和上述实现方式,在第三方面的某些实现方式中,该处理单元还用于:确定需要经由该第一端口发送的目的地为其他设备的业务流的其他权重,该其他设备为除了该第一目的设备的目的设备;根据该第一权重、该其他权重以及该第一端口的总带宽,分配该第一带宽,该第一带宽等于该第一端口的总带宽×该第一权重/(该第一权重+该其他权重)。
结合第三方面和上述实现方式,在第三方面的某些实现方式中,该报文转发装置包括第一报文转发装置和第二报文转发装置,该第一报文转发装置经由第二报文转发装置连接到该第一目的设备,该第一报文转发装置的通信单元向该第二报文转发装置的通信单元通告该第一带宽,使得该第二报文转发装置的处理单元根据该第一带宽,为需要经由该第一端口发送的目的地为该第一目的设备的业务流分配带宽;或者该第一报文转发装置连接到该第一目的设备没有经由其他转发设备,该第一报文转发装置向该第一目的设备通告该第一带宽。
结合第三方面和上述实现方式,在第三方面的某些实现方式中,该报文转发装置包括第一报文转发装置、第三报文转发装置和第四报文转发装置,该第一转发设备按照该第一带宽经由第一端口发送的业务流包括需要第三转发设备经由第三端口发送的目的地为第一目的地址的业务流,和需要第四转发设备经由第四端口发送的目的地为该第一目的地址的业务流,其中,该第三转发设备经由该第三端口连接到该第一转发设备,该第三转发设备为需要经由第三端口发送的目的地为该第一目的地址的业务流分配的带宽为第三带宽,该第四转发设备经由该第四端口连接到该第一转发设备,该第四转发设备为需要经由第四端口发送的目的地为该第一目的地址的业务流分配的带宽为第四带宽,该第一带宽包括第一子带宽和第二子带宽,
当第一端口的总带宽大于或者等于该第三带宽和第四带宽的和时,该第一转发设备的处理单元确定该第一子带宽等于该第三带宽,该第二子带宽等于该第四带宽,该第一转发设备的通信单元利用该第一子带宽向该第一目的设备发送需要经由第三端口发送的目的地为该第一目的地址的业务流,利用该第二子带宽向该第一目的设备发送需要经由第四端口发送的目的地为该第一目的地址的业务流。
结合第三方面和上述实现方式,在第三方面的某些实现方式中,该报文转发装置包括第一报文转发装置、第三报文转发装置和第四报文转发装置,该第一转发设备按照该第一带宽经由第一端口发送的业务流包括需要第三转发设备经由第三端口发送的目的地为第一目的地址的业务流,和需要第四转发设备经由第四端口发送的目的地为该第一目的地址的业务流,其中,该第三转发设备经由该第三端口连接到该第一转发设备,该第三转发设备为需要经由第三端口发送的目的地为该第一目的地址的业务流分配的带宽为第三带宽,该第四转发设备经由该第四端口连接到该第一转发设备,该第四转发设备为需要经由第四端口发送的目的地为该第一目的地址的业务流分配的带宽为第四带宽,该第一带宽包括第一子带宽和第二子带宽,
当该第一端口的总带宽小于该第三带宽和第四带宽的和时,该第一转发设备的处理单元确定该第一子带宽等于第一端口的总带宽×该第三带宽/(该第三带宽+该第四带宽),该第二子带宽等于第一端口的总带宽×该第四带宽/(该第三带宽+该第四带宽),该第一转发设备的通信单元利用该第一子带宽向该第一目的设备发送需要经由第三端口发送的目的地为该第一目的地址的业务流,利用该第二子带宽向该第一目的设备发送需要经由第四端口发送的目的地为该第一目的地址的业务流。
第四方面,提供了一种报文接收装置,该装置包括:通信单元,用于接收第一报文转发装置通告的第一带宽,该第一带宽是该第一报文转发装置为需要经由该第一端口发送的目的地为该报文接收装置的业务流分配的带宽;处理单元,用于根据该第一带宽,确定需要经由该第一端口发送的目的地为该报文接收装置的业务流中的至少一个报文流的最大发送速率;该通信单元,还用于向报文发送设备通告该至少一个报文流的最大发送速率,该报文发送设备为需要经由该第一报文转发装置向该报文接收装置发送该至少一个报文流的设备。
结合第四方面和上述实现方式,在第四方面的某些实现方式中,该至少一个报文流包括多个报文流,该处理单元还用于:确定与该多个报文流一一对应的多个权重;根据该多个权重以及该第一带宽,确定该多个报文流中的每个报文流的最大发送速率,每个报文流的最大发送速率等于该第一带宽×该报文流的权重/该多个权重的和。
结合第四方面和上述实现方式,在第四方面的某些实现方式中,该处理单元确定与该多个报文流一一对应的多个权重之前,该通信单元用于:接收多个报文,该多个报文分别属于该多个报文流,该多个报文携带该多个权重,该多个报文中的每个报文携带一个权重。
结合第四方面和上述实现方式,在第四方面的某些实现方式中,该处理单元确定接收该第一转发设备按照该第一带宽经由第一端口发送的业务流包括需要第三转发设备经由第三端口发送的目的地为第一目的地址的业务流,和需要第四转发设备经由第四端口发送的目的地为该第一目的地址的业务流,其中,该第三转发设备经由该第三端口连接到该第一转发设备,该第三转发设备为需要经由第三端口发送的目的地为该第一目的地址的业务流分配的带宽为第三带宽,该第四转发设备经由该第四端口连接到该第一转发设备,该第四转发设备为需要经由第四端口发送的目的地为该第一目的地址的业务流分配的带宽为第四带宽,该第一带宽包括第一子带宽和第二子带宽,
当该第一端口的总带宽大于或者等于该第三带宽和第四带宽的和时,该处理单元确定该第一子带宽等于该第三带宽,该第二子带宽等于该第四带宽,该通信单元还用于:接收该第一转发设备利用该第一子带宽发送的需要经由第三端口发送的目的地为该第一目的地址的业务流,接收该第一转发设备利用该第二子带宽发送的需要经由第四端口发送的目的地为该第一目的地址的业务流。
结合第四方面和上述实现方式,在第四方面的某些实现方式中,该处理单元确定接收该第一转发设备按照该第一带宽经由第一端口发送的业务流包括需要第三转发设备经由第三端口发送的目的地为第一目的地址的业务流,和需要第四转发设备经由第四端口发送的目的地为该第一目的地址的业务流,其中,该第三转发设备经由该第三端口连接到该第一转发设备,该第三转发设备为需要经由第三端口发送的目的地为该第一目的地址的业务流分配的带宽为第三带宽,该第四转发设备经由该第四端口连接到该第一转发设备,该第四转发设备为需要经由第四端口发送的目的地为该第一目的地址的业务流分配的带宽为第四带宽,该第一带宽包括第一子带宽和第二子带宽,
当该第一端口的总带宽小于该第三带宽和第四带宽的和时,该处理单元确定该第一子带宽等于第一端口的总带宽×该第三带宽/(该第三带宽+该第四带宽),该第二子带宽等于第一端口的总带宽×该第四带宽/(该第三带宽+该第四带宽),该通信单元还用于:
接收该第一转发设备利用该第一子带宽发送的需要经由第三端口发送的目的地为该第一目的地址的业务流,接收该第一转发设备利用该第二子带宽发送的需要经由第四端口发送的目的地为该第一目的地址的业务流。
第五方面,提供一种转发设备,所述转发设备包括处理器、存储器和通信接口,所述处理器、存储器和通信接口通过总线相连接。所述存储器,用于存储所述处理器执行的程序代码;所述处理器,调用所述存储器存储的程序代码,通过所述通信接口获取并转发报文,当处理器执行所述存储器存储的指令时,用于完成如第一方面中所涉及的任意一种拥塞控制的处理方法。
第六方面,提供一种报文接收设备,所述报文接收设备包括处理器、存储器和通信接口,所述处理器、存储器和通信接口通过总线相连接。所述存储器,用于存储所述处理器执行的程序代码;所述处理器,调用所述存储器存储的程序代码,通过所述通信接口获取并转发报文,当处理器执行所述存储器存储的指令时,用于完成如第一方面中所涉及的任意一种拥塞控制的处理方法。
第七方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述任意一种拥塞控制的处理方法。
第八方面,提供了一种计算机可读介质,所述计算机可读介质存储有程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述任意一种拥塞控制的处理方法。
附图说明
图1是本申请提供的一例数据中心网络的结构示意图。
图2为本申请提供的一种交换机的结构示意图。
图3为本申请提供的一种服务器的结构示意图。
图4是一例报文转发示意图。
图5是本申请实施例提供的一例负载均衡的处理方法的示意性流程图。
图6是TCP报文格式示意图。
图7示出了本申请实施例的负载均衡的处理装置的示意性框图。
图8是本申请实施例提供的转发设备的结构示意图。
图9是本申请实施例的一例数据报文格式示意图。
图10至图14是本申请实施例提供的端口示意图。
图15是本申请实施例的一例拥塞控制的处理装置的示意性框图。
图16是本申请实施例的又一例拥塞控制的处理装置的示意性框图。
图17是本申请实施例提供的转发设备的结构示意图。
图18是本申请实施例提供的报文接收设备的结构示意图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
图1是本申请提供的一例数据中心网络的结构示意图。参见图1,数据中心网络包括服务器1至服务器6、叶子交换机(leaf switch,LS)1、LS1、LS3以及脊柱交换机(spineswitch,SS)1、SS2以及SS3。其中,服务器1和服务器2连接到LS1,服务器3和服务器4连接到LS2,服务器5和服务器6连接到LS3;LS1连接到SS1、SS2以及SS3,LS2连接到SS1、SS2以及SS3,LS3连接到SS1、SS2以及SS3。服务器1需要经由LS1与其他服务器进行通信,服务器6需要经由LS3与其他服务器进行通信。服务器1与服务器6进行通信时,服务器1发送的数据流可以经由不同的路径到达服务器6,不同的路径包括:路径1(LS1-SS1-LS3)、路径2(LS1-SS2-LS3)以及路径3(LS1-SS3-LS3)。在某个时间,不同路径的拥塞程度可能是不同的。相对于拥塞程度较高的路径,选择拥塞程度较低的路径传输服务器1发送给服务器6的数据流,有助于降低网络拥塞。
图2为本申请提供的一种交换机的结构示意图。图1中的LS可以是交换机100,图1中的SS可以是交换机100。关于图1中的LS和SS的具体实现方式,可以参见本申请对交换机100的描述。
参见图2,交换机100包括端口a至端口f、网络处理器110、存储器120、流量管理器130以及存储器140。端口a、端口b以及端口c与网络处理器110耦合,端口a、端口b以及端口c为发送端口,可以将接收到的报文发送至网络处理器110,交换机100可以包含更多或者更少的接收端口。端口d、端口e以及端口f与流量管理器130耦合,网络处理器110和存储器120耦合,存储器120中可以保存计算机程序以及转发表,所述转发表可以是哈希表。
网络处理器110可以通过执行存储器120中保存的计算机程序和/或查找转发表,对来自接收端口的报文进行处理。例如,网络处理器110可以通过执行计算机程序,对报文中的哈希键执行哈希运算,从而获得哈希值。再例如,网络处理器110可以通过查找哈希表,确定与哈希值匹配的表项。根据与哈希值匹配的表项,确定用于转发报文的发送端口,所述发送端口可以是端口d、端口e或者端口f。网络处理器110和流量管理器130耦合,流量管理器130与存储器140耦合。例如,网络处理器110确定用于转发报文的发送端口后,可以将报文发送至流量管理器130,流量管理器130也可以称为调度器。流量管理器130中可以维护与端口d、端口e以及端口f一一对应的三个发送缓存队列。流量管理器130接收到来自网络处理器110的报文后,可以根据用于转发报文的发送端口,将报文入队到与用于转发报文的发送端口对应的发送缓存队列。流量管理器130可以对位于发送缓存队列中的报文进行调度,从而通过发送端口发送报文。具体地,流量管理器130中可以维护与所述三个发送缓存队列一一对应的三个报文描述符队列,报文描述符队列中包含多个报文描述符,每个报文描述符包含报文存储在发送缓存队列中的地址。当流量管理器130需要将报文入队到发送缓存队列时,流量管理器130可以在报文描述符队列中增加该报文的存储地址。流量管理器130可以对存储器140执行写操作,从而将报文入队到发送缓存队列。当流量管理器130需要将报文从发送缓存队列出队时,流量管理器130可以将报文描述符队列中该报文的存储地址删除。流量管理器130可以对存储器140执行读操作,从而将报文从发送缓存队列出队。报文出队后,报文经由发送端口被发送。网络处理器110可以用于实现本申请中的处理单元,端口可以用于实现本申请中的接收单元和发送单元。
图3为本申请提供的一种服务器的结构示意图。图1中的服务器可以是服务器1000。关于图1中的服务器的具体实现方式,可以参见本申请对服务器1000的描述。
参见图3,服务器1000包括中央处理单元1100、存储器1200、端口1300以及总线,处理单元1100、存储器1200以及端口1300通过所述总线耦合。存储器1200存储软件,所述软件包含操作系统以及多个应用程序;中央处理单元1100通过访问存储器1200运行所述操作系统以及所述多个应用程序,所述操作系统可以是Window或者Linux。基于所述操作系统,中央处理单元1100运行所述多个应用程序;端口1300可以用于接收报文以及发送报文。例如,当端口1300接收到来自交换机100的报文后,存储器1200可以保存报文,中央处理单元1100可以根据应用程序对报文进行处理。另外,中央处理单元1100可以根据应用程序生成报文,并经由端口1300将报文发送至交换机100。
中央处理单元1100可以用于实现本申请中的处理单元,端口可以用于实现本申请中的接收单元和发送单元。另外,中央处理单元1100可以被替换为其他的处理器,所述其他处理器可以是数字信号处理器(digital signal processor,DSP)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合,其可以实现或执行结合本发明实施例公开内容所描述的各种示例性的逻辑方框,模块和电路;所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
在本申请的描述中,将服务器作为报文发送设备和报文接收设备,将叶子交换机LS和脊柱交换机SS作为转发设备或者转发节点,以报文发送设备、转发设备和报文接收设备之间的报文转发过程为例,进行详细的描述和本申请负载均衡的处理方法的介绍,例如将服务器1作为报文发送设备、LS1-LS3或者SS1-SS3作为转发设备、将服务器6作为报文接收设备。应理解,本申请对数据中心网络中包括的报文发送设备、转发设备、报文接收设备的数量或者形式不做限定。
为了便于本领域技术人员的理解,下面先对本申请中的部分用语进行解释说明。
1、传输控制协议
TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议,由因特网工程任务组(Internet Engineering Task Force,IETF)的协议RFC 793定义。在简化的计算机网络开放式系统互联(open system interconnect,OSI)模型中,它完成第四层传输层所指定的功能;在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的中间层。应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分区成适当长度的报文段,该报文段的分区通常受该计算机连接的网络的数据链路层的最大传输单元(maximum transmission unit,MTU)的限制。之后TCP把结果包传给IP层,由它来通过网络将包传送给报文接收设备的TCP层。TCP为了保证不发生丢包,就给每个包一个序号,同时序号也保证了传送到报文接收设备的包的按序接收。然后报文接收设备对已成功收到的包发回一个相应的确认(acknowledgement,ACK);如果发送端设备在合理的往返时延(round-trip time,RTT)内未收到确认,那么对应的数据包就被假设为已丢失将会被进行重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。
此外,TCP中,定义了窗口、TCP发送窗口、确认(acknowledgement)、段(segment)、TCP发送器以及TCP接收器的概念。关于TCP窗口、确认(acknowledgement)、段(segment)、TCP发送器以及TCP接收器,请参见IETF发布的RFC793、RFC813、RFC879、RFC1180、RFC5681以及RFC5690,本申请不再赘述。
2、拥塞控制机制
拥塞控制机制包括被动拥塞控制和主动拥塞控制。现有的传输层的拥塞控制机制通常是被动拥塞控制,即报文发送设备端根据数据中心网络的拥塞程度调整报文发送设备端的报文发送速率,典型的如TCP/DC TCP,以及现有针对远程直接数据存储(remotedirect memory acess,RDMA)需求的聚合以太网协议(RDMA over converged Ethernet,RoCE)等。但是这种被动拥塞控制存在一些明显问题,如在数据中心网络发生拥塞后再进行调整,会导致高速网络下控制粒度变差,同时不感知其他并发流,收敛到稳态速度比较慢。因此现在采用在中间网络设备或者接收端设备做主动拥塞控制,即实现根据并发流量,明确控制发送端的发送数据量以及发送时机等,主动拥塞控制已经成为新的拥塞控制机制方式。
图4是一例被动拥塞控制到主动拥塞控制演进示意图。如图4所示,以发送端设备和接收端设备之间的报文发送为例,图4左图为被动拥塞控制示意图,拥塞控制发生在发送端设备的协议栈,例如服务器侧的协议栈。当发送端设备发送一些报文,报文发送过程中出现丢包或者打标记后,控制点自动运行一个限速算法,对网络的报文发送速率进行限制;如果不出现丢包或者不打标记,控制点就运行一个升速算法,以提高网络中的报文发送速率。在这种被动拥塞控制机制中,数据中心的网络设备是个黑盒子,如图4左图中虚线框所示,在拥塞控制的黑盒子中,报文发送设备端不能获知有多少条流需要发送,同时,控制点可以根据网络反馈信息,试探合适发送速率,例如报文发送设备端需要不断探测和调整,抖动较大,收敛到稳态比较慢。演进到图4中右图所示的主动拥塞控制机制,数据中心的网络设备变成透明的,网络侧或者接收端等拥塞点感知并发流量,即控制点可以准确知道有多少条流需要发送,不需要测量网络状态,就可以实现发送速率或者发送带宽的分配,从而控制速率。当流进入网络之后,就会形成稳定的速率。
但目前的主动拥塞控制基本都是采用接收端控制发送端的模式,即接收端根据并发流请求分配credit,保证报文发送设备端能够受控到达,避免拥塞。图5是一例发送端到接收端的报文转发路径示意图,发送端A经过转发设备1、转发设备3向接收端A发送报文,发送端B经过转发设备2、转发设备3向接收端B发送报文;同时,接收端知道自己要接收多少条流,因此,接收端A可以向发送端A发送credit信令,接收端B向发送端B发送credit信令,分别指示发送端需要发送的流。主动拥塞控制主要实现在服务器侧,服务器侧自己决策自己的发送带宽,能保证最后一跳不拥塞,不能保证上层转发设备的拥塞。例如,接收端A和接收端B没有其他流量,因此接收端A可能想要求发送端A满速率发送报文,接收端B可能想要求发送端B满速率发送报文,从而导致转发设备3的拥塞。目前要求用负载均衡机制避免中间转发设备的拥塞,但是负载均衡机制不成熟,因此主要用显式拥塞通知(explicitcongestion notification,ECN)标记网络是否拥塞,用ECN探测网络拥塞的情况,这样通过打标记的方法也是不准确的。此外,这种主动拥塞控制机制能够保证最后一跳不拥塞或者出现短暂拥塞,但由于多个接收端之间互相不感知,当中间转发设备的数量较多时,仍可能造成网络出现多个拥塞点。
针对上述问题,现有的一种解决思路是,采用逐包负载均衡方式保证中间网络无拥塞,因为通常数据中心是无收敛的,即确定的源端和目的端之间,总能找到一条不拥塞的路径。这种方式,在严格对称clos拓扑架构下,能够保证中间网络无阻塞,拥塞只在最有一跳发生,采用接收端的主动拥塞控制能够完全消除网络的拥塞。但是,数据中心的拓扑经常出现非对称情况,如链路故障、网络升级等情况,采用逐包负载均衡的方式,在非对称网络下容易出现拥塞程度不同,而出现乱序的情况,因此,逐包负载均衡很难应用在数据中心内部。例如,图6所示的一例非对称拓扑网络报文转发示意图,报文发送设备A的全部流量都通过转发设备1到达目的设备,而报文发送设备B的流量可以通过转发设备1和转发设备2到达目的设备,因此转发设备1很容易拥塞出现报文乱序的情况。
在另外一种解决方案中,为防止中间网络的拥塞,可以通过中间网络限制credit信令发送的方式,限制报文发送设备端发送流量。图7是一例中间网络丢弃credit信令限速方式示意图,如图7所示,接收端A和接收端B分别按照10G速率(假设端口速率为10G)发送credit信令,图7中将接收端A发送向发送端A和发送端B的credit信令分别表示为a1和a2,将接收端B发送向发送端A和发送端B的credit信令表示为b1和b2。为防止中间网络的拥塞,中间转发设备A可以执行以下操作来防止拥塞:(1)修改credit信令为5G速率,以降低发送端的发送速率,例如图7中限制a1和b2的速率,即降低发送端A和发送端B的发送速率;(2)丢掉部分速率,例如图7中丢弃了a2和b1的速率,保证spine下行不出现拥塞。
上述这种方式虽然能够避免拥塞,但是要求发送的报文和credit报文同路径,这种在数据中心存在很多路径而且各种负载均衡机制的场景下,很难保证。同时,收到credit时需要判断是否反向数据报文会发生拥塞,需要非常复杂的处理。
综上所述,依靠接收端调度的主动拥塞控制机制,只能避免最后一跳的拥塞,多接收端相互之间不感知,可能造成中间网络的拥塞;而通过中间网络限制credit信令发送的方式,限制报文发送设备端发送流量,处理过程复杂且拥塞效果很难保证。本申请提供一种拥塞控制的方法,能通过中心网络和服务器协同配合的两级调度方式,彻底消除网络设备的拥塞,满足低时延的需求。下面将结合图8至图13详细介绍本申请实施例提供的拥塞控制的方法。
应理解,本申请提供的拥塞控制的方法,可以应用于图1所示的网络架构中的网络设备,在本申请的实施例中,将详细从报文发送设备、转发设备和目的设备之间的交互过程为例进行介绍,其中,报文发送设备和转发设备可以是图1所示的网络架构中的网络设备,例如服务器或者交换机,作为示例而非限定,执行方法800的执行主体也可以是应用于网络设备的芯片。对各种应用场景,将在下文中详细描述。
图8是本申请实施例提供的一例拥塞控制的处理方法800的交互图。
图8所示的流程图涉及源设备(例如报文发送设备)、转发设备(例如第一转发设备、第二转发设备、第三转发设备)以及目的设备(例如第一目的设备)。其中,源设备用于生成报文流、转发设备用于对所述报文流进行转发,目的设备用于接收转发设备转发的报文流。需要说明的是,源设备可以是多个设备;转发设备可以是多个设备;目的设备也可以是多个设备,而且任一源设备都可以向任一目的设备发送报文流。另外,源设备向目的设备发送的报文流可以是一个报文流,也可以是多个报文流。应理解,本申请对报文发送设备、转发设备和目的设备的数量的设备形态不作限定。
图8所示的流程图中涉及权重这一概念。在本申请中,权重也可以称为数值。如果没有相反的说明,本申请提及的权重为正数。具体地,源设备可以为该源设备发送的每个报文流确定一个权重。例如,为大象流确定一个较小的数值,为老鼠流确定一个较大的数值。源设备将报文流的权重通告给转发设备。
例如,源设备可以在将要发送给转发设备的报文流中携带该报文流的权重,相应地,转发设备可以获知多个报文流中每个报文流的权重,还可以确定用于转发该多个报文流中每个报文流的端口。具体地,转发设备可以根据报文流的目的地址、报文流的权重以及用于转发报文流的端口,确定需要经由同一个端口转发的到达同一个目的设备的报文流的权重。
应理解,需要经由同一个端口转发的报文流的目的地址可能是多个目的地址,多个目的地址分别对应多个目的设备。另外,需要经由同一个端口转发的到达所述多个目的设备中的一个目的设备的报文流可以是一个报文流,也可以是多个报文流。
例如,需要经由端口1转发的到达目的设备1的报文流包括报文流1和报文流2,需要经由端口1转发的到达目的设备2的报文流仅包括报文流3。发送报文流1的源设备为报文流1确定的权重为1.5,发送报文流2的源设备为报文流2确定的权重为2.5,发送报文流3的源设备为报文流3确定的权重为2。报文流1的源设备与报文流2的源设备可以是同一个源设备,或者不同的源设备。报文流2的源设备与报文流3的源设备可以是同一个源设备,或者不同的源设备。报文流1的源设备与报文流3的源设备可以是同一个源设备,或者不同的源设备。进而,转发设备可以确定需要经由端口1发送的到达目的设备1的报文流的权重等于4(即报文流1的权重1.5与报文流2的权重2.5的和);转发设备可以确定需要经由端口1发送的到达目的设备2的报文流的权重等于2(即报文流3的权重2)。
假设转发设备需要经由端口1发送的报文流仅包括报文流1、报文流2以及报文流3,转发设备可以根据需要经由端口1发送的到达目的设备1的报文流的权重、需要经由端口1发送的到达其他目的设备(即目的设备2)的报文流的权重以及端口1的总带宽确定转发设备为需要经由端口1发送的到达目的设备1的报文流分配的带宽。
一种可能的实现方式中,转发设备为需要经由端口1发送的到达目的设备1的报文流分配的带宽等于端口1的总带宽乘以需要经由端口1发送的到达目的设备1的报文流的权重除以需要经由端口1发送的到达所有目的设备的报文流的权重的和。例如,端口1的总带宽60吉比特/秒(gigabit per second,Gbps)乘以需要经由端口1发送的到达目的设备1的报文流的权重4除以需要经由端口1发送的到达所有目的设备的报文流的权重的和4+2=6。具体地,转发设备为需要经由端口1发送的到达目的设备1的报文流分配的带宽为60×(4÷6)=40Gpbs;转发设备为需要经由端口1发送的到达目的设备2的报文流分配的带宽为60×(2÷6)=20Gpbs。
需要说明的是,转发设备是从目的设备(例如目的设备1和目的设备2)的角度分配带宽,不是从报文流(例如报文流1、报文流2以及报文流3)的角度分配带宽。转发设备可以将转发设备为需要经由端口1发送的到达目的设备1的报文流分配的带宽(例如40Gpbs)通告给目的设备1。另外,源设备可以将报文流的权重通告给目的设备。例如,将报文流1的权重(例如1.5),报文流2的权重(例如2.5)通告给目的设备1。目的设备1可以根据从源设备获知的每个报文流的权重以及从转发设备获知的转发设备为需要经由端口1发送的到达目的设备1的报文流分配的带宽(例如40Gbps),确定目的设备1接收的每个报文流的最大发送速率。例如,报文流1的最大发送速率等于转发设备为需要经由端口1发送的到达目的设备1的报文流分配的带宽乘以报文流1的权重除以报文流1的权重和报文流2的权重的和。具体地,报文流1的最大发送速率为40×1.5÷4=15Gbps;报文流2的最大发送速率40×2.5÷4=25Gbps。即,报文流1的最大发送速率等于15Gbps,报文流2的最大发送速率25Gbps。
目的设备可以将目的设备确定的每个报文流的最大发送速率通告给源设备,这样源设备可以以小于或者等于最大发送速率的发送速率向目的设备发送相应的报文流。例如,目的设备1可以向报文流1的源设备(例如源设备1)通告报文流1的最大发送速率(例如15Gbps);目的设备1可以向报文流2的源设备(例如源设备2)通告报文流2的最大发送速率(例如25Gbps)。源设备1可以以小于或者等于15Gbps的发送速率向目的设备1发送报文流1;源设备2可以以小于或者等于25Gbps的发送速率向目的设备1发送报文流2。
以上介绍的权重的概念,具体地,将结合图8所示的交互图,对方法800的每个步骤进行详细说明。图8所示,方法800可以包括S801-S806。
S801,转发设备确定需要经由第一端口发送的目的地为第一目的设备的业务流的第一权重。
举例来说,所述第一端口可以是以太网端口。所述以太网端口的总带宽可以是100吉比特/秒(gigabit per second,Gbps),200Gbps或者400Gbps。总带宽是指端口的最大发送速率。例如,当第一端口的总带宽为100Gbps时,所述第一端口的最大发送速率为100Gbps。所述第一端口的实际发送速率小于或者等于100Gbps。
图9是适用于本申请实施例的一例数据报文格式示意图。如图9所示,是一例聚合以太网协议(RDMA over converged Ethernet,RoCE)报文的格式,具体包括以太网头、网际协议(internet protocol,IP)头、用户数据协议(user data protocol,UDP)头和其他的数据字段。例如存在于无限带基础传输头(infini band base transport header,IB BTH),该BTH字段可以包括多个字段,例如用于携带设备计算速率的P-KEY字段,占据16比特;用于区分业务流的目的队列对(destination queue pair,Dest QP),Dest QP字段可以携带L4层信息,源端口号不携带,保存在协议栈内,一个Dest QP代表一条流;预留字段可以用于携带业务流的权重。该RoCEv2报文中的字段可以用于携带本申请实施例中涉及的权重、带宽、最大发送速率等信息。应理解,除了RoCEv2报文之外,还可以有其他可能的报文格式,本申请对此不作限定。
应理解,本申请中的报文流是指具有相同的特征的多个报文的集合。报文流中的报文可以是RoCE报文。例如,报文流中的报文可以是RoCEv2报文,不同的报文流具有不同的特征,特征可以是报文头中的一个字段或者多个字段。
当特征是一个字段时,所述字段可以是目的IP地址。例如,目的IP地址为IP1的多个报文构成报文流1,目的IP地址为IP2的多个报文构成报文流2,IP1不等于IP2。
或者,当特征是多个字段时,所述字段可以包括源IP地址和目的IP地址。例如,源IP地址和目的IP地址分别是IP3和IP4的多个报文构成报文流3,源IP地址和目的IP地址分别是IP5和IP6的多个报文构成报文流4,IP3不等于IP5,或者IP4不等于IP6。
当然,报文流也可以由其他特征定义。例如,报文流可以由五元组定义。五元组可以包括源IP地址、目的IP地址、源端口、目的端口以及协议号。源IP地址、目的IP地址和协议号可以携带在报文的IP头中。源端口和目的端口可以携带在传输控制协议(transmissioncontrol protocol,TCP)头或者用户数据报协议(user datagram protocol,UDP)头中。
在一种可能的设计中,报文流的特征可以是四元组。四元组包括源IP地址、目的IP地址、协议号以及目的队列对(destination queue pair,Dest QP)。可以理解,源IP地址、目的IP地址和协议号可以携带在RoCEv2报文的IP头中。Dest QP可以携带在RoCEv2报文的无限带基础传输头(infini band base transport header,IB BTH)中。
此外,本申请中的业务流也可以称为报文流,不同的业务流具有不同的特征。例如,一个业务流可以包括具有相同的特征的多个RoCEv2报文。RoCEv2报文的特征可以由四元组定义。四元组可以包括源IP地址、目的IP地址、协议号以及Dest QP。
S802,该转发设备根据该第一权重以及该第一端口的总带宽,分配第一带宽,该第一带宽是为需要经由该第一端口发送的目的地为该第一目的设备的业务流分配的带宽。
还应理解,第一端口是转发设备的出端口,转发设备将接收的报文流通过至少一个出端口发送出去,出端口的数量可能是一个或者多个,对于报文发送设备、转发设备和目的设备不同的组合连接方式,本申请中第一端口也对应不同的情况。
可以理解,第一带宽等于转发设备经由第一端口发送目的地为第一目的设备的业务流的最大发送速率即确定该业务流的发送速率。S801和S802具体实现时,转发设备可以对一个时间周期内接收到报文进行分析,从而确定第一权重。例如,一个时间周期可以是100微秒。转发设备在一个时间周期内接收到10个报文。10个报文分别属于10个报文流。转发设备通过对10个报文的报文头进行解析,确定10个报文中的2个报文的目的地为第一目的设备。转发设备保存了转发表。转发表包含多个表项,每个表项包含目的地址与出端口。转发设备通过查找所述转发表,确定上述2个报文的出端口都是第一端口。
在一种可能的设计中,上述10个报文中,每个报文都包含了该报文对应的报文流的权重。权重可以是生成该报文流的报文发送设备为根据该报文流包含的报文的数量确定的。例如,报文发送设备1能够发送报文流1。当报文发送设备1发送报文流1中的首个报文时,报文发送设备1为报文流1确定的权重为1;当报文发送设备1发送报文流1中的第11个报文时,报文发送设备1为报文流1确定的权重为2;当报文发送设备1发送报文流1中的第101个报文时,报文发送设备1为报文流1确定的权重为3。也就是说,在不同的情况下,报文发送设备1针对同一个报文流1可以确定不同的权重。
此外,报文发送设备生成报文流1时,可以将权重携带在报文流1的报文中。例如,报文发送设备1可以将值等于1的权重携带在报文流1的第一个报文中,将值等于2的权重携带报文流1的第11个报文中,将值等于3的权重携带报文流1的第101个报文中。举例来说,报文流1中的报文可以是RoCEv2报文。权重可以携带在IB BTH的保留(reserved)字段中。具体地,可以携带在Ack request字段(确认请求字段)和PSN字段之间的预留字段中。
转发设备可以根据报文流的权重、报文流的目的地址以及转发设备用于转发报文流的端口,确定需要经由一个端口转发的到达一个目的设备的报文流的权重。例如,在一个时间周期内,转发设备接收到报文1、报文2以及报文3。报文1、报文2和报文3分别属于报文流1、报文流2和报文流3,其中,报文流1和报文流2的目的地为第一目的设备,报文流3的目的地为其他目的设备。报文1携带的权重为1,报文2携带的权重为2,报文3携带的权重为3。转发设备根据报文1和报文2确定需要经由第一端口发送的目的地为该第一目的设备的报文流为报文流1以及报文流2,转发设备根据报文3确定需要经由第一端口发送的目的地为该其他目的设备的报文流为报文流3。
换言之,转发设备确定需要经由第一端口发送的目的地为该第一目的设备的报文流的数量为2,转发设备确定需要经由第一端口发送的目的地为其他目的设备的报文流的数量为1。转发设备根据报文1和报文2携带的权重,确定需要经由第一端口转发的到达第一目的设备的报文流的权重为报文流1的权重以及报文流2的权重的和(例如3)。转发设备根据报文1、报文2以及报文3携带的权重,确定需要经由第一端口转发的到达所有目的设备的报文流的权重为报文流1的权重、报文流2的权重以及报文流3的权重的和(例如6)。
假设第一端口的总带宽是100Gbps,第一带宽可以是转发设备为第一目的设备分配的带宽。转发设备为第一目的设备分配的第一带宽等于第一端口的总带宽乘以到达第一目的设备的报文流的权重除以到达所有目的设备的报文流的权重。例如,100Gbps×3÷6=50Gbps。因此,转发设备为第一目的设备分配的带宽是50Gbps。
此外,上文提及,在不同的情况下,报文发送设备针对同一个报文流可以确定不同的权重。因此,在不同的情况下,转发设备根据同一个报文流的不同的权重,确定出的经由同一个端口发送的目的地为同一个目的设备的报文流的权重可能是不同的。
例如,转发设备在下一个时间周期内接收到分别属于报文流1、报文流2以及报文流3的报文4、报文5和报文6,下一个时间周期可以是100毫秒,且下一个时间周期和所述一个时间周期为相邻的周期。报文4携带的权重为1(与报文1携带的权重相等),报文5携带的权重为3(与报文2携带的权重不等),报文6携带的权重为3(与报文3携带的权重相等)。转发设备确定需要经由第一端口发送的目的地为该第一目的设备的报文流的数量为2,确定需要经由第一端口发送的目的地为其他目的设备的报文流的数量为1。转发设备根据报文4和报文5携带的权重,确定需要经由第一端口转发的到达第一目的设备的报文流的权重为报文流1的权重以及报文流2的权重的和(例如4)。
转发设备根据报文1、报文2以及报文3携带的权重,确定需要经由第一端口转发的到达所有目的设备的报文流的权重为报文流1的权重、报文流2的权重以及报文流3的权重的和(例如7)。
假如,第一端口的总带宽是100Gbps,第一带宽是转发设备为第一目的设备分配的带宽。转发设备为第一目的设备分配的第一带宽等于第一端口的总带宽(例如100Gbps)乘以到达第一目的设备的报文流的权重(例如4)除以到达所有目的设备的报文流的权重(例如7)。因此,转发设备为第一目的设备分配的带宽可以是400/7Gbps,转发设备为其他目的设备分配的带宽可以是300/7Gbps。也就是说,转发设备的第一端口的总带宽中,被分配给第一目的设备的带宽等于400Gbps/7,被分配给其他目的设备的带宽等于300Gbps/7。
上述实现方式中,所述一个时间周期接收到的需要经由第一端口发送的目的地为第一目的设备的报文所属的报文流和所述下一个时间周期接收到的需要经由第一端口发送的目的地为第一目的设备的报文所属的报文流是相同的,所属的报文流都包括报文流1和报文流2。
在另一种实现方式中,一个时间周期接收到的需要经由第一端口发送的目的地为第一目的设备的报文所属的报文流和下一个时间周期接收到的需要经由第一端口发送的目的地为第一目的设备的报文所属的报文流可以不同。例如,所述一个时间周期接收到的需要经由第一端口发送的目的地为第一目的设备的报文所属的报文流包括报文流1和报文流2。所述下一个时间周期接收到的需要经由第一端口发送的目的地为第一目的设备的报文所属的报文流包括报文流1和报文流3。
在另一种可能的实现方式中,转发设备可以接收报文发送设备发送的多个报文流,多个报文流可以是包含相同的目的地址,也可以是不同的目的地址。例如,该多个报文流都是发往第一目的设备的报文流,或者发往多个目的地址的报文流。
当转发设备向第一目的设备发送多个报文流时,将该多个报文流组成的集合称为“第一集合”,即该第一集合包括的多个报文流都是需要经由第一端口发送到第一目的设备的业务流。转发设备确定与第一集合包含的多个报文流一一对应的多个权重,该转发设备根据与第一集合包含的多个报文流一一对应的多个权重,确定该第一权重,该第一权重等于该与第一集合包含的多个报文流一一对应的多个权重的和。
例如,M个报文流的目的地址都是第一目的设备,M个报文流都是通过第一端口发送到第一目的设备,且M个报文流对应了M个权重,则该第一权重等于该M个报文流一一对应的M个权重的和。其中,当M为1时,就是转发设备向目的设备通过第一端口发送一个报文流的情况,该报文流对应一个权重,即为第一权重;当M大于或等于1时,转发设备向目的设备通过第一端口发送M个报文流的情况,该M个报文流对应M个权重,M个权重之和即为第一权重。
在一种可能的实现方式中,在转发设备确定第一权重时,可以通过M个报文携带的M个权重求和确定。具体地,该转发设备接收M个报文,该M个报文携带与该第一集合包含的M个报文流一一对应的M个权重,该M个报文中的每个报文携带一个权重,且该M个报文分别属于该M个报文流。
可选地,每个报文流的第一个报文(首包)可以携带一个权重信息,例如前述介绍的RoCEv2报文的IB BTH字段可用于携带权重信息。
在一种可能的实现方式中,转发设备确定需要经由该第一端口发送的目的地为其他设备的业务流的其他权重,该其他设备为除了该第一目的设备的目的设备,该转发设备根据第一权重、其他权重以及该第一端口的总带宽,分配该第一带宽,该第一带宽等于该第一端口的总带宽×该第一权重/(该第一权重+该其他权重)。
在一种可能的实现方式中,报文发送设备可以为不同的报文流分配不同的权重。转发设备确定的权重是报文发送设备分配并通知给转发设备的。例如,与该第一集合包含的多个报文流一一对应的多个权重是发送所述第一集合包含的多个报文流的报文发送设备分配的。
可选地,第一集合包含的多个报文流可以对应不同的优先级,例如第一集合包含的多个报文流可以包括大象流(elephant flow)和老鼠流(mice flow),该大象流包含的比特的数量大于老鼠流包含的比特的数量,且该大象流对应的权重小于该老鼠流对应的权重。
在一种可能的实现方式中,该大象流为数据,该老鼠流为信令。例如,数据可以是语音、视频的数据帧,对应地,信令可以是用户发起的请求消息,该请求消息用于请求从云端获取该语音、视频的数据帧。本申请对流的形式、流的优先级以及不同的流的权重不作限定,针对不同的流和权重,转发设备在分配带宽的过程中都可以采用本申请提供的方法。
具体地,图9至图13是本申请实施例提供的可能的端口示意图,对端口可能的形式,转发设备可以根据报文流的权重、报文流的目的地址以及转发设备用于转发报文流的端口,确定需要经由该端口转发的到达一个目的设备的报文流的权重。具体地,第一权重的计算过程和第一带宽的确定过程列举如下五种情况:
情况一
报文发送设备连接一个转发设备,该转发设备通过第一端口连接一个目的设备。具体如图10中示出的情况,报文发送设备A连接脊柱交换机(spine),spine连接第一目的设备。此种情况下,第一端口是spine向第一目的设备发送报文流的端口。此种情况下,参照上述介绍的第一权重的确定过程,当转发设备向目的设备通过第一端口发送一个报文流时,该报文流对应一个权重,即为第一权重;当转发设备向目的设备通过第一端口发送M个报文流的情况,该M个报文流对应M个权重,M个权重之和即为第一权重。
例如,在一个时间周期内,spine接收到报文1、报文2以及报文3。报文1、报文2和报文3分别属于报文流1、报文流2和报文流3,其中,报文流1、报文流2和报文流3的目的地都为第一目的设备。报文1携带的权重为1,报文2携带的权重为2,报文3携带的权重为3。spine根据报文1、报文2和报文3确定需要经由第一端口发送的目的地为该第一目的设备的报文流为报文流1、报文流2和报文流3,spine确定需要经由第一端口发送的目的地为该第一目的设备的报文流的数量为3,并根据报文1、报文2和报文3携带的权重,确定需要经由第一端口转发的到达第一目的设备的报文流的权重为报文流1、报文流2和报文流3的权重的和,即1+2+3=6。
相应地,spine设备为需要经由该第一端口发送的目的地为该第一目的设备的业务流分配第一带宽,该第一权重和第一端口的总带宽的乘积就是第一带宽,spine按照第一带宽对应的速率通过第一端口发送目的为第一目的设备的报文流。
假设第一端口的总带宽是100Gbps,第一带宽可以是转发设备为第一目的设备分配的带宽。转发设备为第一目的设备分配的第一带宽等于第一端口的总带宽乘以到达第一目的设备的报文流的权重除以到达所有目的设备的报文流的权重。例如,100Gbps×6÷6=100Gbps。因此,转发设备为第一目的设备分配的带宽是100Gbps。情况二
至少两个报文发送设备连接一个转发设备,该转发设备通过第一端口连接至少两个目的设备。具体如图11中示出的情况,报文发送设备A和报文发送设备B连接脊柱交换机(spine),spine通过第一端口连接第一目的设备和第二目的设备。此种情况下,第一端口是spine向第一目的设备和第二目的设备发送报文流的端口。
此种情况下,spine确定需要经由该第一端口发送的目的地为第一目的设备的权重为第一权重,经由该第一端口发送的目的地为第二目的设备的业务流的权重为第二权重,spine设备为需要经由该第一端口发送的目的地为该第一目的设备的业务流分配第一带宽,该第一带宽等于第一端口的总带宽×第一权重/(第一权重+第二权重)。
例如,在一个时间周期内,转发设备接收到报文1、报文2以及报文3。报文1、报文2和报文3分别属于报文流1、报文流2和报文流3,其中,报文流1和报文流2的目的地为第一目的设备,报文流3的目的地为第二目的设备。报文1携带的权重为1,报文2携带的权重为2,报文3携带的权重为3。spine根据报文1和报文2确定需要经由第一端口发送的目的地为该第一目的设备的报文流为报文流1以及报文流2,根据报文3确定需要经由第一端口发送的目的地为第二目的设备的报文流为报文流3。spine确定需要经由第一端口发送的目的地为该第一目的设备的报文流的数量为2,确定需要经由第一端口发送的目的地为该第二目的设备的报文流的数量为1,并根据报文1和报文2携带的权重,确定需要经由第一端口转发的到达第一目的设备的报文流的权重为报文流1和报文流2的权重的和,即1+2=3;根据报文3携带的权重,确定需要经由第一端口转发的到达第二目的设备的报文流的权重为报文流3的权重,即3。
应理解,spine确定需要经由该第一端口发送的目的地为第一目的设备的业务流可以包括多个业务流,如前述M个业务流,此时参照前述情况一中第一权重的确定即可,第二权重同理可得,此处不再赘述。
此外,在一个时间周期内,spine可能仅接收到到达第一目的设备的报文,或者,在一个时间周期内,spine既接收到到达第一目的设备的报文,也接收到到达其他目的设备(例如第二目的设备)的报文。但是,spine可以通过查表(例如路由表),确定需要经由第一端口转发的报文仅包括目的地址为第一目的设备的报文,也可以利用上述方法确定第一带宽。
假设第一端口的总带宽是100Gbps,第一带宽可以是转发设备为第一目的设备分配的带宽。转发设备为第一目的设备分配的第一带宽等于第一端口的总带宽乘以到达第一目的设备的报文流的权重除以到达所有目的设备的报文流的权重。例如,100Gbps×3÷6=50Gbps。因此,转发设备为第一目的设备分配的带宽是50Gbps,为第二目的设备分配的带宽是50Gbps。
情况三
至少两个报文发送设备连接一个转发设备,该转发设备包括至少两级网络设备,再通过第一端口连接目的设备。具体如图12中示出的情况,报文发送设备A和报文发送设备B连接脊柱交换机(spine),spine连接叶子交换机(LS),LS再通过第一端口连接第一目的设备。此种情况下,第一端口是LS向第一目的设备发送报文流的端口。
此种情况下,spine确定需要报文发送设备A经由该第一端口发送的目的地为第一目的设备的权重为第一权重,报文发送设备B经由该第一端口发送的目的地为第一目的设备的业务流的权重为第二权重,spine设备为需要经由该第一端口发送的目的地为该第一目的设备的业务流分配第一带宽,其中,spine为报文发送设备A发送的业务流分配的第一带宽等于第一端口的总带宽×第一权重/(第一权重+第二权重),spine为报文发送设备B发送的业务流分配的第一带宽等于第一端口的总带宽×第二权重/(第一权重+第二权重)。
应理解,情况三可以参照情况一的确定过程,此处不再赘述。
情况四
报文发送设备连接一个转发设备,该转发设备包括至少两级网络设备,再连接目的设备,即转发设备不与第一目的设备直连,可以经由多个端口连接下一级网络设备,再向第一目的设备发送流量。此种情况下,第一端口可以是中心网络设备之间的端口。具体如图13中示出的情况,脊柱交换机(spine)通过第一端口连接LS1,通过第二端口连接LS2,LS1和LS2可以连接LS3,也可以直接连接第一目的设备。此时,spine可以通过至少两个端口发送目的地为第一目的设备的报文流,第一端口是spine向下一级转发设备发送报文流的端口。
转发设备确定不需要经由所述第一端口发送目的地为除了所述第一目的设备的业务流,转发设备可以确定该第一带宽等于第一端口的总带宽;或者,当转发设备和第一目的设备直连时,第一端口可能只用于连接第一目的设备,转发设备可以确定该第一带宽等于第一端口的总带宽。
此种情况下,spine可以按照每个端口的总带宽发送报文流,例如通过第一端口的总带宽发送目的地为第一目的设备的报文流。
此外,同理,spine还需要确定经由第二端口发送的目的地为所述第一目的设备的业务流的第二权重,根据所述第二权重以及所述第二端口的总带宽,为需要经由所述第二端口发送的目的地为所述第一目的设备的业务流分配第二带宽。
情况五
类似于情况四中,报文发送设备连接一个转发设备,该转发设备包括至少两级网络设备,再连接目的设备。此种情况下,第一端口还可以是中心网络设备连接目的设备的端口。具体如图13中示出的情况,例如,spine 1通过第三端口连接LS,spine 2通过第四端口连接LS,LS通过第一端口连接第一目的设备。此时,LS可以接收来自两个转发设备发送的目的地为第一目的设备的报文流,再通过第一端口发送该报文流到第一目的设备,第一端口是LS向目的设备发送报文流的端口。
如果假设spine 1为需要经由第三端口发送的目的地为该第一目的地址的业务流分配的带宽为第三带宽,spine 2为需要经由第四端口发送的目的地为该第一目的地址的业务流分配的带宽为第四带宽,该第一带宽包括第一子带宽和第二子带宽,LS利用该第一子带宽向该第一目的设备发送需要经由第三端口发送的目的地为该第一目的地址的业务流,LS利用该第二子带宽向该第一目的设备发送需要经由第四端口发送的目的地为该第一目的地址的业务流。则在第一端口分配带宽的过程中,第一子带宽、第二子带宽和第三带宽、第四带宽可以有以下的关系。
例如,当该第一端口的总带宽大于或者等于该第三带宽和第四带宽的和时,第一子带宽等于该第三带宽,该第二子带宽等于该第四带宽。即LS直接利用接收spine1发送的业务流的第三带宽发送该业务流,利用接收spine2发送的业务流的第四带宽发送该业务流。
或者,当该第一端口的总带宽小于该第三带宽和第四带宽的和时,该第一子带宽等于第一端口的总带宽×该第三带宽/(该第三带宽+该第四带宽),该第二子带宽等于第一端口的总带宽×该第四带宽/(该第三带宽+该第四带宽)。
上述列举了各种可能的数据中心网络的连接形式、第一端口的可能形式,应理解,在上述各种情况中,对设备的数量和形态不作限定,例如转发设备的数量,转发设备为LS或者spine等,不应对本申请实施例提供的方法造成限定。
通过上述确定带宽的各种情况举例,针对数据中心网络不同的连接形式,以及不同的端口,可以确定转发设备的端口为业务流分配的带宽,例如为单一目的地的业务流、多个目的地的业务流、来自多个转发设备或者来自多个报文发送设备的业务流分配不同的带宽,实现数据中心网络的流级调度,维护每个流的状态,从转发设备的层次实现网络调度,按照每个流归一化权重,从而根据权重为每个流分配合理的带宽,避免中间网络的拥塞,消除中间网络可能出现的拥塞,为接收端的调度奠定基础。
S803,该转发设备向该第一目的设备通告该第一带宽。
相应地,第一目的设备接收转发设备通告的第一带宽,该第一带宽是该转发设备为需要经由该第一端口发送的目的地为该第一目的设备的业务流分配的带宽。
S803具体实现过程中,转发设备可以将第一带宽携带在从报文发送设备接收到的报文中,并将携带第一带宽的报文发送给第一目的设备,从而将第一带宽通告给第一目的设备。
例如,上文给出的S801和S802的一种可能的实现方式中,转发设备根据报文3和报文4携带的度量,确定出转发设备的第一端口的总带宽中,被分配给报文流1的带宽等于25Gbps,被分配给报文流2的带宽等于75Gbps。转发设备可以将分配给报文流1的带宽(25Gbps)携带在报文3的IB BTH中,例如,携带在报文3的P_KEY字段。转发设备可以将分配给报文流2的带宽(75Gbps)携带在报文4的IB BTH中,例如,携带在报文4的P_KEY字段。转发设备可以将携带有转发设备分配的带宽的报文3和报文4发送给第一目的设备。
第一目的设备接收到报文3和报文4后,可以根据报文3和报文4确定分配的带宽。另外,报文3和报文4还携带有度量。因此,第一目的设备通过解析报文3和报文4,不仅可以获得转发设备通告的带宽,也可以获得报文发送设备通告的度量。这样,第一目的设备可以根据通道的带宽以及度量,确定报文流的最大发送速率。
在一种可能的实现方式中,该第一转发设备经由第二转发设备连接到该第一目的设备,例如上述在S802中列举的情况三、情况四和情况五,即数据中心网络包括至少两级网络设备,则该第一转发设备向该第二转发设备通告该第一带宽,使得该第二转发设备根据该第一带宽,为需要经由该第一端口发送的目的地为该第一目的设备的业务流分配带宽。
或者,例如上述在S802中列举的情况一和情况二,该第一转发设备不经由该第二转发设备连接到该第一目的设备,而是直接连接第一目的设备,则该第一转发设备向该第一目的设备通告该第一带宽。
通过上述方案,对于不同的数据中心网络的连接形式,例如数据中心网络包括一级网络设备,则转发设备直接向目的设备通告确定的带宽;或者数据中心网络包括至少两级网络设备,则该第一转发设备向该第二转发设备通告该第一带宽,使得该第二转发设备根据该第一带宽,为需要经由该第一端口发送的目的地为该第一目的设备的业务流分配带宽,以便目的设备确定需要经由该第一端口发送的至少一个报文流的最大发送速率,从而实现后续的从目的设备侧进行拥塞控制。
S804,第一目的设备根据接收的转发设备发送的第一带宽,确定需要经由该第一端口发送的至少一个报文流的最大发送速率,该至少一个报文流是目的地为该第一目的设备的业务流中的报文流。
S804具体实现时,第一目的设备可以经由所述第一端口在一个时间周期内接收到多个报文。多个报文分别属于多个报文流。每个报文携带转发设备为对应的报文流分配的带宽。
在一种可能的实现方式中,当第一目的设备只接收转发设备发送的一个报文流,就是转发设备向目的设备通过第一端口发送一个报文流的情况,该报文流对应一个权重,即转发设备发送该报文流为满速率发送。
在一种可能的实现方式中,当第一目的设备只接收转发设备发送的至少一个报文流,且该至少一个报文流包括多个报文流时,该第一目的设备确定与该多个报文流一一对应的多个权重,根据该多个权重以及该第一带宽,确定该多个报文流中的每个报文流的最大发送速率,每个报文流的最大发送速率等于该第一带宽×该报文流的权重/该多个权重的和。
例如,M个报文流的目的地址都是第一目的设备,M大于或等于1。M个报文流都是通过第一端口发送到第一目的设备,且M个报文流对应了M个权重,则该第一权重等于该M个报文流一一对应的M个权重的和。目的设备可以通过确定的权重和转发设备通告的第一带宽确定每个报文流的最大发送速率。
在一种可能的实现方式中,当第一目的设备接收转发设备发送的多个报文流时,该第一目的设备接收多个报文,该多个报文每个报文分别属于该多个报文流中不同的报文流,该多个报文携带该多个权重,该多个报文中的每个报文携带一个权重。
可选地,每个报文流的第一个报文(首包)可以携带一个权重信息,本申请对携带权重的报文的位置和形式不作限定。
通过上述技术方案,目的设备可以接收转发设备发送的第一带宽,根据该第一带宽确定转发设备通过第一端口发送该业务流的最大发送速率,并将该最大发送速率通告给源设备,以此实现从目的设备端进行拥塞控制,防止因为过大速率发送报文流导致网络拥塞。即,在第一方面从数据中心网络的转发设备角度实现粗粒度拥塞控制后,再从目的设备端进行细粒度的拥塞控制,控制发往每个目的设备的每个报文流的发送速率,为每个流分配合理的带宽,通过端网配合,彻底消除中间网络以及最后一跳的网络拥塞,同时中间网络实现简单,兼容多种调度策略。
具体地,第一目的设备可以根据不同的端口形式和数据中心网络设备的连接形式,相应地确定每种场景下每个流的最大发送速率,例如针对上述图9至图13列举的可能的端口示意图的五种情况,对应不同的速率确定过程。为了简便,以下情况直接对应上述列举的五种情况和附图,其场景不再赘述。
情况一
第一目的设备接收一个报文流,该报文流对应的权重为第一权重,且第一目的设备接收转发设备通告的第一带宽后,确定报文流的最大发送速率等于该第一带宽对应的最大发送速率。
情况二
第一目的设备接收两个报文发送设备发送的两个报文流,该两个报文流对应的权重为第一权重、第二权重,且第一目的设备接收转发设备通告的第一带宽后,确定报文流的最大发送速率等于该第一带宽对应的最大发送速率。
情况三
第一目的设备接收两个报文发送设备发送的两个报文流,该两个报文流对应的权重为第一权重、第二权重,且第一目的设备接收LS通告的第一带宽后,确定报文流的最大发送速率等于第一带宽×第一权重/(第一权重+第二权重)对应的速率。
情况四
第一目的设备接收LS通告的第一带宽和第二带宽后,确定通过第一端口发送的报文流的最大速率等于第一带宽×第一权重/(第一权重+第二权重)对应的速率;确定通过第二端口发送的报文流的最大发送速率等于第二带宽×第二权重/(第一权重+第二权重)对应的速率。
情况五
第一目的设备接收LS通告的第一带宽、第三带宽和第四带宽,该第一带宽包括第一子带宽和第二子带宽,当该第一端口的带宽大于或者等于该第三带宽和第四带宽的和时,该第一子带宽等于该第三带宽,该第二子带宽等于该第四带宽,该第一目的设备接收该第一转发设备利用该第一子带宽发送的需要经由第三端口发送的目的地为该第一目的地址的业务流,该第一目的设备接收该第一转发设备利用该第二子带宽发送的需要经由第四端口发送的目的地为该第一目的地址的业务流。
例如,第一目的设备确定第三带宽对应的报文发送速率为转发设备发送的需要经由第三端口发送的目的地为该第一目的地址的业务流的最大发送速率,确定第四带宽对应的报文发送速率为转发设备发送的需要经由第四端口发送的目的地为该第一目的地址的业务流的最大发送速率。
或者,当该第一端口的带宽小于该第三带宽和第四带宽的和时,该第一子带宽等于第一端口的带宽×该第三带宽/(该第三带宽+该第四带宽),该第二子带宽等于第一端口的带宽×该第四带宽/(该第三带宽+该第四带宽),第一目的设备确定第一子带宽对应的报文发送速率为转发设备发送的需要经由第三端口发送的目的地为该第一目的地址的业务流的最大发送速率,确定第二子带宽对应的报文发送速率为转发设备发送的需要经由第四端口发送的目的地为该第一目的地址的业务流的最大发送速率。
S805,该第一目的设备向报文发送设备通告该至少一个报文流的最大发送速率,该报文发送设备为需要经由该转发设备向该第一目的设备发送该至少一个报文流的设备。
S806,报文发送设备根据第一端口的最大发送速率发送该至少一个报文流。
通过上述目的设备根据带宽确定报文发送速率的各种情况举例,针对数据中心网络不同的连接形式,以及不同的端口,可以确定转发设备的端口发送业务流的最大速率,例如确定单一目的地的业务流、多个目的地的业务流、来自多个转发设备或者来自多个报文发送设备的业务流的不同的发送速率,实现接收端设备的流级调度。具体地,目的设备根据转发设备通告的流的带宽和对应的权重,确定报文发送设备发送该流的最大发送速率,该最大发送速率可以保证报文发送设备向转发设备发送该流时,不会造成数据中心网络的拥塞。随后,目的设备将该最大发送速率告知报文发送设备,报文发送设备可以按照该目的设备通告的最大发送速率(或者小于该最大发送速率)发送对应的流,避免数据中心网络的拥塞,消除中间网络可能出现的拥塞。
通过上述从报文发送设备、转发设备和目的设备之间的交互的角度介绍的拥塞控制的方法,分别从转发设备和目的设备的两级层面,采用了两级调度方式,即数据中心网络的网络设备调度目的设备,按照发往不同的目的设备的流的权重进行粗粒度的带宽分配,为每个流分配不会造成中心网络拥塞的带宽,并通告目的设备;目的设备进行细粒度的划分,为每个流确定最大的发送速率,并将最大发送速率通告给报文发送设备,针对数据中心网络存在多路径、每个接收端流数不一致、优先级分布程度不一致的情况,实现归一化一个权重,由中间网络根据接收端的权重分配带宽,再由接收端确定发送端的发送速率,发送端可以以小于或等于该最大发送速率发送报文流,congress避免网络拥塞。该方法能够适应不同设备的能力,维护每个流的状态,从转发设备的层次实现网络调度,按照每个流归一化权重,从而根据权重为每个流分配合理的带宽,通过端网配合,彻底消除中间网络以及最后一跳的网络拥塞,同时中间网络实现简单,兼容多种调度策略。
以上结合图4至图14对本申请实施例的拥塞控制的处理方法做了详细说明。以下,结合图15至图18对本申请实施例的拥塞控制的处理装置进行详细说明。
图1515示出了本申请实施例的拥塞控制的处理装置151500的示意性框图,该处理装置1500可以对应上述方法800中描述的转发设备,也可以是应用于转发设备的芯片或组件,并且,该处理装置1500中各模块或单元分别用于执行上述方法800中转发设备所执行的各动作或处理过程,如图15所示,该负载均衡的处理装置1500可以包括:处理单元1510和通信单元1520。
处理单元1510,用于确定需要经由第一端口发送的目的地为第一目的设备的业务流的第一权重;
该处理单元1510,还用于根据该第一权重以及该第一端口的带宽,为需要经由该第一端口发送的目的地为该第一目的设备的业务流分配第一带宽;
通信单元1520,用于向该第一目的设备通告该第一带宽。
具体地,该处理单元1510用于执行方法800中的S801、S802,该通信单元1520用于执行方法800中的S803,各单元执行上述相应步骤的具体过程在方法800中已经详细说明,为了简洁,此处不加赘述。
图16示出了本申请实施例的拥塞控制的处理装置1600的示意性框图,该处理装置1600可以对应上述方法800中描述的转发设备,也可以是应用于转发设备的芯片或组件,并且,该处理装置1600中各模块或单元分别用于执行上述方法800中转发设备所执行的各动作或处理过程,如图16所示,该负载均衡的处理装置1600可以包括:通信单元1610和处理单元1620。
通信单元1610,用于接收第一报文转发装置通告的第一带宽,该第一带宽是该第一报文转发装置为需要经由该第一端口发送的目的地为该报文接收装置的业务流分配的带宽;
处理单元1620,用于根据该第一带宽,确定需要经由该第一端口发送的目的地为该报文接收装置的业务流中的至少一个报文流的最大发送速率;
该通信单元1610,还用于向源设备通告该至少一个报文流的最大发送速率,该源设备为需要经由该第一报文转发装置向该报文接收装置发送该至少一个报文流的设备。
具体地,该通信单元1610用于执行方法800中的S803、S805,该处理单元1620用于执行方法800中的S804,各单元执行上述相应步骤的具体过程在方法800中已经详细说明,为了简洁,此处不加赘述。
图17是本申请实施例提供的转发设备1700的结构示意图。如图17所示,该转发设备1700包括处理器1710和收发器1720。可选地,该转发设备1700还包括存储器1730。其中,处理器1710、收发器1720和存储器1730之间通过内部连接通路互相通信,传递控制和/或数据信号,该存储器1730用于存储计算机程序,该处理器1710用于从该存储器1730中调用并运行该计算机程序,以控制该收发器1720收发信号。
上述处理器1710和存储器1730可以合成一个处理装置,处理器1710用于执行存储器1730中存储的程序代码来实现上述方法实施例中转发设备的功能。具体实现时,该存储器1730也可以集成在处理器1710中,或者独立于处理器1710。收发器1720可以通过收发电路的方式来实现。
上述转发设备还可以包括通信接口1740,用于将收发器1720输出的报文发送出去,或者接收后的报文发送给收发器1720进一步处理。
应理解,该处理装置1700可对应于根据本申请实施例的方法500中的转发设备,该处理装置1700也可以是应用于转发设备的芯片或组件。并且,该处理装置1700中的各模块实现图8中方法800中的相应流程,具体地,该存储器1750用于存储程序代码,使得处理器1710在执行该程序代码时,控制该处理器1710用于执行方法800中的S801、S802,该收发器1720用于执行方法800中的S803,各单元执行上述相应步骤的具体过程在方法800中已经详细说明,为了简洁,在此不再赘述。
图18是本申请实施例提供的报文接收设备(目的设备)1800的结构示意图。如图18所示,该转发设备1800包括处理器1810和收发器1820。可选地,该转发设备1800还包括存储器1830。其中,处理器1810、收发器1820和存储器1830之间通过内部连接通路互相通信,传递控制和/或数据信号,该存储器1830用于存储计算机程序,该处理器1810用于从该存储器1830中调用并运行该计算机程序,以控制该收发器1820收发信号。
上述处理器1810和存储器1830可以合成一个处理装置,处理器1810用于执行存储器1830中存储的程序代码来实现上述方法实施例中转发设备的功能。具体实现时,该存储器1830也可以集成在处理器1810中,或者独立于处理器1810。收发器1820可以通过收发电路的方式来实现。
上述转发设备还可以包括通信接口1840,用于将收发器1820输出的报文发送出去,或者接收后的报文发送给收发器1820进一步处理。
应理解,该处理装置1800可对应于根据本申请实施例的方法500中的转发设备,该处理装置1800也可以是应用于转发设备的芯片或组件。并且,该处理装置1800中的各模块实现图8中方法800中的相应流程,具体地,该存储器1850用于存储程序代码,使得处理器1810在执行该程序代码时,控制该处理器1810用于执行方法800中的S804,该收发器1820用于执行方法800中的S803、S805,各单元执行上述相应步骤的具体过程在方法800中已经详细说明,为了简洁,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (26)
1.一种分配带宽的方法,其特征在于,所述方法包括:
第一转发设备确定需要经由第一端口发送的目的地为第一目的设备的业务流的第一权重,所述第一转发设备包括所述第一端口;
所述第一转发设备根据所述第一权重以及所述第一端口的总带宽,为需要经由所述第一端口发送的目的地为所述第一目的设备的业务流分配第一带宽;
所述第一转发设备向所述第一目的设备通告所述第一带宽。
2.根据权利要求1所述的方法,其特征在于,所述第一转发设备确定需要经由第一端口发送的目的地为第一目的设备的业务流的第一权重,包括:
所述第一转发设备确定与第一集合包含的多个报文流一一对应的多个权重,需要经由第一端口发送的目的地为第一目的设备的业务流包括所述第一集合包含的所述多个报文流;
所述第一转发设备根据所述与第一集合包含的多个报文流一一对应的多个权重,确定所述第一权重,所述第一权重等于所述与第一集合包含的多个报文流一一对应的多个权重的和。
3.根据权利要求2所述的方法,其特征在于,所述第一转发设备确定与第一集合包含的多个报文流一一对应的多个权重,包括:
所述第一转发设备接收多个报文,所述多个报文分别属于所述多个报文流,所述多个报文携带所述多个权重,所述多个报文中的每个报文携带一个权重。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
所述第一转发设备确定需要经由所述第一端口发送的目的地为其他设备的业务流的其他权重,所述其他设备为除了所述第一目的设备的目的设备;
以及,所述第一转发设备根据所述第一权重以及所述第一端口的总带宽,为需要经由所述第一端口发送的目的地为所述第一目的设备的业务流分配第一带宽,包括:
所述第一转发设备根据所述第一权重、所述其他权重以及所述第一端口的总带宽,分配所述第一带宽,所述第一带宽等于所述第一端口的总带宽×所述第一权重/(所述第一权重+所述其他权重)。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述第一转发设备经由第二转发设备连接到所述第一目的设备,所述第一转发设备向所述第一目的设备通告所述第一带宽,包括:
所述第一转发设备向所述第二转发设备通告所述第一带宽,使得所述第二转发设备根据所述第一带宽,为需要经由所述第一端口发送的目的地为所述第一目的设备的业务流分配带宽;或者
所述第一转发设备连接到所述第一目的设备没有经由其他转发设备,所述第一转发设备向所述第一目的设备通告所述第一带宽,包括:
所述第一转发设备向所述第一目的设备通告所述第一带宽。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述第一转发设备按照所述第一带宽经由第一端口发送的业务流包括需要第三转发设备经由第三端口发送的目的地为第一目的地址的业务流,和需要第四转发设备经由第四端口发送的目的地为所述第一目的地址的业务流,其中,所述第三转发设备经由所述第三端口连接到所述第一转发设备,所述第三转发设备为需要经由第三端口发送的目的地为所述第一目的地址的业务流分配的带宽为第三带宽,所述第四转发设备经由所述第四端口连接到所述第一转发设备,所述第四转发设备为需要经由第四端口发送的目的地为所述第一目的地址的业务流分配的带宽为第四带宽,所述第一带宽包括第一子带宽和第二子带宽,
当所述第一端口的总带宽大于或者等于所述第三带宽和第四带宽的和时,所述第一子带宽等于所述第三带宽,所述第二子带宽等于所述第四带宽,所述第一转发设备利用所述第一子带宽向所述第一目的设备发送需要经由第三端口发送的目的地为所述第一目的地址的业务流,所述第一转发设备利用所述第二子带宽向所述第一目的设备发送需要经由第四端口发送的目的地为所述第一目的地址的业务流。
7.根据权利要求1至5中任一项所述的方法,其特征在于,所述第一转发设备按照所述第一带宽经由第一端口发送的业务流包括需要第三转发设备经由第三端口发送的目的地为第一目的地址的业务流,和需要第四转发设备经由第四端口发送的目的地为所述第一目的地址的业务流,其中,所述第三转发设备经由所述第三端口连接到所述第一转发设备,所述第三转发设备为需要经由第三端口发送的目的地为所述第一目的地址的业务流分配的带宽为第三带宽,所述第四转发设备经由所述第四端口连接到所述第一转发设备,所述第四转发设备为需要经由第四端口发送的目的地为所述第一目的地址的业务流分配的带宽为第四带宽,所述第一带宽包括第一子带宽和第二子带宽,
当所述第一端口的总带宽小于所述第三带宽和第四带宽的和时,所述第一子带宽等于第一端口的总带宽×所述第三带宽/(所述第三带宽+所述第四带宽),所述第二子带宽等于第一端口的总带宽×所述第四带宽/(所述第三带宽+所述第四带宽),所述第一转发设备利用所述第一子带宽向所述第一目的设备发送需要经由第三端口发送的目的地为所述第一目的地址的业务流,所述第一转发设备利用所述第二子带宽向所述第一目的设备发送需要经由第四端口发送的目的地为所述第一目的地址的业务流。
8.一种确定速率的方法,其特征在于,所述方法包括:
第一目的设备接收第一转发设备通告的第一带宽,所述第一带宽是所述第一转发设备为需要经由第一端口发送的目的地为所述第一目的设备的业务流分配的带宽,所述第一转发设备包括所述第一端口;
所述第一目的设备根据所述第一带宽,确定需要经由所述第一端口发送的目的地为所述第一目的设备的业务流中的至少一个报文流的最大发送速率;
所述第一目的设备向报文发送设备通告所述至少一个报文流的最大发送速率,所述报文发送设备为需要经由所述第一转发设备向所述第一目的设备发送所述至少一个报文流的设备。
9.根据权利要求8所述的方法,其特征在于,所述至少一个报文流包括多个报文流,所述第一目的设备根据所述第一带宽,确定需要经由所述第一端口发送的目的地为所述第一目的设备的业务流中的至少一个报文流的最大发送速率,包括:
所述第一目的设备确定与所述多个报文流一一对应的多个权重;
所述第一目的设备根据所述多个权重以及所述第一带宽,确定所述多个报文流中的每个报文流的最大发送速率,每个报文流的最大发送速率等于所述第一带宽×所述报文流的权重/所述多个权重的和。
10.根据权利要求9所述的方法,其特征在于,所述第一目的设备确定与所述多个报文流一一对应的多个权重,包括:
所述第一目的设备接收多个报文,所述多个报文分别属于所述多个报文流,所述多个报文携带所述多个权重,所述多个报文中的每个报文携带一个权重。
11.根据权利要求8至10中任一项所述的方法,其特征在于,所述第一转发设备按照所述第一带宽经由第一端口发送的业务流包括需要第三转发设备经由第三端口发送的目的地为第一目的地址的业务流,和需要第四转发设备经由第四端口发送的目的地为所述第一目的地址的业务流,其中,所述第三转发设备经由所述第三端口连接到所述第一转发设备,所述第三转发设备为需要经由第三端口发送的目的地为所述第一目的地址的业务流分配的带宽为第三带宽,所述第四转发设备经由所述第四端口连接到所述第一转发设备,所述第四转发设备为需要经由第四端口发送的目的地为所述第一目的地址的业务流分配的带宽为第四带宽,所述第一带宽包括第一子带宽和第二子带宽,
当所述第一端口的总带宽大于或者等于所述第三带宽和第四带宽的和时,所述第一子带宽等于所述第三带宽,所述第二子带宽等于所述第四带宽,所述第一目的设备接收所述第一转发设备利用所述第一子带宽发送的需要经由第三端口发送的目的地为所述第一目的地址的业务流,所述第一目的设备接收所述第一转发设备利用所述第二子带宽发送的需要经由第四端口发送的目的地为所述第一目的地址的业务流。
12.根据权利要求8至10中任一项所述的方法,其特征在于,所述第一转发设备按照所述第一带宽经由第一端口发送的业务流包括需要第三转发设备经由第三端口发送的目的地为第一目的地址的业务流,和需要第四转发设备经由第四端口发送的目的地为所述第一目的地址的业务流,其中,所述第三转发设备经由所述第三端口连接到所述第一转发设备,所述第三转发设备为需要经由第三端口发送的目的地为所述第一目的地址的业务流分配的带宽为第三带宽,所述第四转发设备经由所述第四端口连接到所述第一转发设备,所述第四转发设备为需要经由第四端口发送的目的地为所述第一目的地址的业务流分配的带宽为第四带宽,所述第一带宽包括第一子带宽和第二子带宽,
当所述第一端口的总带宽小于所述第三带宽和第四带宽的和时,所述第一子带宽等于第一端口的总带宽×所述第三带宽/(所述第三带宽+所述第四带宽),所述第二子带宽等于第一端口的总带宽×所述第四带宽/(所述第三带宽+所述第四带宽),所述第一目的设备接收所述第一转发设备利用所述第一子带宽发送的需要经由第三端口发送的目的地为所述第一目的地址的业务流,所述第一目的设备接收所述第一转发设备利用所述第二子带宽发送的需要经由第四端口发送的目的地为所述第一目的地址的业务流。
13.一种报文转发装置,其特征在于,所述装置包括:
处理单元,用于确定需要经由第一端口发送的目的地为第一目的设备的业务流的第一权重,所述第一转发设备包括所述第一端口;
所述处理单元,还用于根据所述第一权重以及所述第一端口的总带宽,为需要经由所述第一端口发送的目的地为所述第一目的设备的业务流分配第一带宽;
通信单元,用于向所述第一目的设备通告所述第一带宽。
14.根据权利要求13所述的装置,其特征在于,所述处理单元还用于:
确定与第一集合包含的多个报文流一一对应的多个权重,需要经由第一端口发送的目的地为第一目的设备的业务流包括所述第一集合包含的所述多个报文流;
根据所述与第一集合包含的多个报文流一一对应的多个权重,确定所述第一权重,所述第一权重等于所述与第一集合包含的多个报文流一一对应的多个权重的和。
15.根据权利要求14所述的装置,其特征在于,所述处理单元确定与第一集合包含的多个报文流一一对应的多个权重之前,所述通信单元还用于:
接收多个报文,所述多个报文分别属于所述多个报文流,所述多个报文携带所述多个权重,所述多个报文中的每个报文携带一个权重。
16.根据权利要求13至15中任一项所述的装置,其特征在于,所述处理单元还用于:
确定需要经由所述第一端口发送的目的地为其他设备的业务流的其他权重,所述其他设备为除了所述第一目的设备的目的设备;
根据所述第一权重、所述其他权重以及所述第一端口的总带宽,分配所述第一带宽,所述第一带宽等于所述第一端口的总带宽×所述第一权重/(所述第一权重+所述其他权重)。
17.根据权利要求13至16中任一项所述的装置,其特征在于,所述报文转发装置包括第一报文转发装置和第二报文转发装置,
所述第一报文转发装置经由第二报文转发装置连接到所述第一目的设备,所述第一报文转发装置的通信单元向所述第二报文转发装置的通信单元通告所述第一带宽,使得所述第二报文转发装置的处理单元根据所述第一带宽,为需要经由所述第一端口发送的目的地为所述第一目的设备的业务流分配带宽;或者
所述第一报文转发装置连接到所述第一目的设备没有经由其他转发设备,所述第一报文转发装置向所述第一目的设备通告所述第一带宽。
18.根据权利要求13至17中任一项所述的装置,其特征在于,所述报文转发装置包括第一报文转发装置、第三报文转发装置和第四报文转发装置,
所述第一转发设备按照所述第一带宽经由第一端口发送的业务流包括需要第三转发设备经由第三端口发送的目的地为第一目的地址的业务流,和需要第四转发设备经由第四端口发送的目的地为所述第一目的地址的业务流,其中,所述第三转发设备经由所述第三端口连接到所述第一转发设备,所述第三转发设备为需要经由第三端口发送的目的地为所述第一目的地址的业务流分配的带宽为第三带宽,所述第四转发设备经由所述第四端口连接到所述第一转发设备,所述第四转发设备为需要经由第四端口发送的目的地为所述第一目的地址的业务流分配的带宽为第四带宽,所述第一带宽包括第一子带宽和第二子带宽,
当第一端口的总带宽大于或者等于所述第三带宽和第四带宽的和时,所述第一转发设备的处理单元确定所述第一子带宽等于所述第三带宽,所述第二子带宽等于所述第四带宽,所述第一转发设备的通信单元利用所述第一子带宽向所述第一目的设备发送需要经由第三端口发送的目的地为所述第一目的地址的业务流,利用所述第二子带宽向所述第一目的设备发送需要经由第四端口发送的目的地为所述第一目的地址的业务流。
19.根据权利要求13至17中任一项所述的装置,其特征在于,所述报文转发装置包括第一报文转发装置、第三报文转发装置和第四报文转发装置,
所述第一转发设备按照所述第一带宽经由第一端口发送的业务流包括需要第三转发设备经由第三端口发送的目的地为第一目的地址的业务流,和需要第四转发设备经由第四端口发送的目的地为所述第一目的地址的业务流,其中,所述第三转发设备经由所述第三端口连接到所述第一转发设备,所述第三转发设备为需要经由第三端口发送的目的地为所述第一目的地址的业务流分配的带宽为第三带宽,所述第四转发设备经由所述第四端口连接到所述第一转发设备,所述第四转发设备为需要经由第四端口发送的目的地为所述第一目的地址的业务流分配的带宽为第四带宽,所述第一带宽包括第一子带宽和第二子带宽,
当所述第一端口的总带宽小于所述第三带宽和第四带宽的和时,所述第一转发设备的处理单元确定所述第一子带宽等于第一端口的总带宽×所述第三带宽/(所述第三带宽+所述第四带宽),所述第二子带宽等于第一端口的总带宽×所述第四带宽/(所述第三带宽+所述第四带宽),所述第一转发设备的通信单元利用所述第一子带宽向所述第一目的设备发送需要经由第三端口发送的目的地为所述第一目的地址的业务流,利用所述第二子带宽向所述第一目的设备发送需要经由第四端口发送的目的地为所述第一目的地址的业务流。
20.一种报文接收装置,其特征在于,所述装置包括:
通信单元,用于接收第一报文转发装置通告的第一带宽,所述第一带宽是所述第一报文转发装置为需要经由第一端口发送的目的地为所述报文接收装置的业务流分配的带宽,所述第一转发设备包括所述第一端口;
处理单元,用于根据所述第一带宽,确定需要经由所述第一端口发送的目的地为所述报文接收装置的业务流中的至少一个报文流的最大发送速率;
所述通信单元,还用于向报文发送设备通告所述至少一个报文流的最大发送速率,所述报文发送设备为需要经由所述第一报文转发装置向所述报文接收装置发送所述至少一个报文流的设备。
21.根据权利要求20所述的装置,其特征在于,所述至少一个报文流包括多个报文流,所述处理单元还用于:
确定与所述多个报文流一一对应的多个权重;
根据所述多个权重以及所述第一带宽,确定所述多个报文流中的每个报文流的最大发送速率,每个报文流的最大发送速率等于所述第一带宽×所述报文流的权重/所述多个权重的和。
22.根据权利要求20所述的装置,其特征在于,所述处理单元确定与所述多个报文流一一对应的多个权重之前,所述通信单元用于:
接收多个报文,所述多个报文分别属于所述多个报文流,所述多个报文携带所述多个权重,所述多个报文中的每个报文携带一个权重。
23.根据权利要求20至22中任一项所述的装置,其特征在于,所述处理单元确定接收所述第一转发设备按照所述第一带宽经由第一端口发送的业务流包括需要第三转发设备经由第三端口发送的目的地为第一目的地址的业务流,和需要第四转发设备经由第四端口发送的目的地为所述第一目的地址的业务流,其中,所述第三转发设备经由所述第三端口连接到所述第一转发设备,所述第三转发设备为需要经由第三端口发送的目的地为所述第一目的地址的业务流分配的带宽为第三带宽,所述第四转发设备经由所述第四端口连接到所述第一转发设备,所述第四转发设备为需要经由第四端口发送的目的地为所述第一目的地址的业务流分配的带宽为第四带宽,所述第一带宽包括第一子带宽和第二子带宽,
当所述第一端口的总带宽大于或者等于所述第三带宽和第四带宽的和时,所述处理单元确定所述第一子带宽等于所述第三带宽,所述第二子带宽等于所述第四带宽,所述通信单元还用于:
接收所述第一转发设备利用所述第一子带宽发送的需要经由第三端口发送的目的地为所述第一目的地址的业务流,接收所述第一转发设备利用所述第二子带宽发送的需要经由第四端口发送的目的地为所述第一目的地址的业务流。
24.根据权利要求20至22中任一项所述的装置,其特征在于,所述处理单元确定接收所述第一转发设备按照所述第一带宽经由第一端口发送的业务流包括需要第三转发设备经由第三端口发送的目的地为第一目的地址的业务流,和需要第四转发设备经由第四端口发送的目的地为所述第一目的地址的业务流,其中,所述第三转发设备经由所述第三端口连接到所述第一转发设备,所述第三转发设备为需要经由第三端口发送的目的地为所述第一目的地址的业务流分配的带宽为第三带宽,所述第四转发设备经由所述第四端口连接到所述第一转发设备,所述第四转发设备为需要经由第四端口发送的目的地为所述第一目的地址的业务流分配的带宽为第四带宽,所述第一带宽包括第一子带宽和第二子带宽,
当所述第一端口的总带宽小于所述第三带宽和第四带宽的和时,所述处理单元确定所述第一子带宽等于第一端口的总带宽×所述第三带宽/(所述第三带宽+所述第四带宽),所述第二子带宽等于第一端口的总带宽×所述第四带宽/(所述第三带宽+所述第四带宽),所述通信单元还用于:
接收所述第一转发设备利用所述第一子带宽发送的需要经由第三端口发送的目的地为所述第一目的地址的业务流,接收所述第一转发设备利用所述第二子带宽发送的需要经由第四端口发送的目的地为所述第一目的地址的业务流。
25.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被执行时,实现如权利要求1至12中任意一项所述的方法。
26.一种芯片系统,其特征在于,所述芯片系统包括:
存储器,用于存储指令;
处理器,用于从所述存储器中调用并运行所述指令,使得安装有所述芯片系统的通信设备执行如权利要求1至12中任意一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811426088.8A CN111224884B (zh) | 2018-11-27 | 2018-11-27 | 拥塞控制的处理方法、报文转发装置及报文接收装置 |
EP19888646.7A EP3879770A4 (en) | 2018-11-27 | 2019-09-17 | PROCESSING PROCEDURES FOR OVERLOAD CONTROL, MESSAGE FORWARDING DEVICE, AND MESSAGE RECEIVING DEVICE |
PCT/CN2019/106057 WO2020108020A1 (zh) | 2018-11-27 | 2019-09-17 | 拥塞控制的处理方法、报文转发装置及报文接收装置 |
US17/331,189 US11805071B2 (en) | 2018-11-27 | 2021-05-26 | Congestion control processing method, packet forwarding apparatus, and packet receiving apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811426088.8A CN111224884B (zh) | 2018-11-27 | 2018-11-27 | 拥塞控制的处理方法、报文转发装置及报文接收装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111224884A true CN111224884A (zh) | 2020-06-02 |
CN111224884B CN111224884B (zh) | 2023-02-24 |
Family
ID=70826491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811426088.8A Active CN111224884B (zh) | 2018-11-27 | 2018-11-27 | 拥塞控制的处理方法、报文转发装置及报文接收装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11805071B2 (zh) |
EP (1) | EP3879770A4 (zh) |
CN (1) | CN111224884B (zh) |
WO (1) | WO2020108020A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117579559A (zh) * | 2024-01-17 | 2024-02-20 | 企商在线(北京)数据技术股份有限公司 | 一种基于AI的RoCEv2拥塞控制方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070268825A1 (en) * | 2006-05-19 | 2007-11-22 | Michael Corwin | Fine-grain fairness in a hierarchical switched system |
CN101945039A (zh) * | 2010-08-27 | 2011-01-12 | 华为技术有限公司 | 数据流的传输方法和装置 |
CN104159256A (zh) * | 2014-08-29 | 2014-11-19 | 大连大学 | 一种基于延时容忍卫星网络的拥塞控制方法 |
CN105721350A (zh) * | 2016-03-04 | 2016-06-29 | 深圳市共进电子股份有限公司 | 一种智能分配带宽的方法及装置 |
CN105897612A (zh) * | 2016-06-06 | 2016-08-24 | 中国电子科技集团公司第三十研究所 | 一种基于sdn多业务动态带宽分配的方法和系统 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7072295B1 (en) * | 1999-09-15 | 2006-07-04 | Tellabs Operations, Inc. | Allocating network bandwidth |
US7161907B2 (en) * | 2002-03-05 | 2007-01-09 | Sun Microsystems, Inc. | System and method for dynamic rate flow control |
US7697429B2 (en) * | 2006-07-10 | 2010-04-13 | Scientific-Atlanta, Llc | Enhancing a configuration file |
US8385358B2 (en) * | 2010-12-30 | 2013-02-26 | Oracle International Corporation | Simple low-jitter scheduler |
WO2012089110A1 (en) * | 2010-12-28 | 2012-07-05 | The Chinese University Of Hong Kong | Systems and methods to improve performance of tcp over large bandwidth-delay-product networks |
US9007898B2 (en) * | 2011-02-01 | 2015-04-14 | Google Inc. | System to share network bandwidth among competing applications |
CN102739507B (zh) * | 2011-04-14 | 2015-04-15 | 中国科学院声学研究所 | 一种承载状态感知的路由器及其业务流带宽分配方法 |
US20150149639A1 (en) * | 2013-11-22 | 2015-05-28 | Abdul Hawk Ismail | Bandwidth allocation in a networked environment |
US9450884B2 (en) * | 2014-06-11 | 2016-09-20 | Alcatel-Lucent | Software defined networking based congestion control |
CN107196877B (zh) * | 2016-03-14 | 2021-07-20 | 华为技术有限公司 | 网络流量控制的方法及其网络设备 |
CN105763469B (zh) * | 2016-04-07 | 2019-03-22 | 烽火通信科技股份有限公司 | 三级Clos网络架构中链路拥塞检测及带宽控制的方法与系统 |
JP7028121B2 (ja) * | 2018-09-21 | 2022-03-02 | 日本電信電話株式会社 | リソース割当計算装置及びリソース割当計算方法 |
-
2018
- 2018-11-27 CN CN201811426088.8A patent/CN111224884B/zh active Active
-
2019
- 2019-09-17 WO PCT/CN2019/106057 patent/WO2020108020A1/zh unknown
- 2019-09-17 EP EP19888646.7A patent/EP3879770A4/en active Pending
-
2021
- 2021-05-26 US US17/331,189 patent/US11805071B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070268825A1 (en) * | 2006-05-19 | 2007-11-22 | Michael Corwin | Fine-grain fairness in a hierarchical switched system |
CN101945039A (zh) * | 2010-08-27 | 2011-01-12 | 华为技术有限公司 | 数据流的传输方法和装置 |
CN104159256A (zh) * | 2014-08-29 | 2014-11-19 | 大连大学 | 一种基于延时容忍卫星网络的拥塞控制方法 |
CN105721350A (zh) * | 2016-03-04 | 2016-06-29 | 深圳市共进电子股份有限公司 | 一种智能分配带宽的方法及装置 |
CN105897612A (zh) * | 2016-06-06 | 2016-08-24 | 中国电子科技集团公司第三十研究所 | 一种基于sdn多业务动态带宽分配的方法和系统 |
Non-Patent Citations (1)
Title |
---|
ALI MUNIR等: "On Achieving Low Latency in Data Centers", 《IEEE ICC 2013 - NEXT-GENERATION NETWORKING SYMPOSIUM》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117579559A (zh) * | 2024-01-17 | 2024-02-20 | 企商在线(北京)数据技术股份有限公司 | 一种基于AI的RoCEv2拥塞控制方法 |
CN117579559B (zh) * | 2024-01-17 | 2024-04-23 | 企商在线(北京)数据技术股份有限公司 | 一种基于AI的RoCEv2拥塞控制方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3879770A1 (en) | 2021-09-15 |
US11805071B2 (en) | 2023-10-31 |
US20210281524A1 (en) | 2021-09-09 |
WO2020108020A1 (zh) | 2020-06-04 |
CN111224884B (zh) | 2023-02-24 |
EP3879770A4 (en) | 2022-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12034633B2 (en) | System and method for facilitating tracer packets in a data-driven intelligent network | |
US10680964B1 (en) | Rate limiting in a multi-chassis environment by exchanging information between peer network elements | |
US8665892B2 (en) | Method and system for adaptive queue and buffer control based on monitoring in a packet network switch | |
US8274887B2 (en) | Distributed congestion avoidance in a network switching system | |
US20210297350A1 (en) | Reliable fabric control protocol extensions for data center networks with unsolicited packet spraying over multiple alternate data paths | |
US20210297351A1 (en) | Fabric control protocol with congestion control for data center networks | |
US20190149475A1 (en) | Unified streamlining for data traffic | |
EP3763094A1 (en) | Flow management in networks | |
Apostolaki et al. | Fab: Toward flow-aware buffer sharing on programmable switches | |
CN111147381B (zh) | 流量均衡方法和装置 | |
Cascone et al. | Towards approximate fair bandwidth sharing via dynamic priority queuing | |
WO2018157819A1 (zh) | 多子流网络传输方法及装置 | |
CN111224884B (zh) | 拥塞控制的处理方法、报文转发装置及报文接收装置 | |
US20060187965A1 (en) | Creating an IP checksum in a pipeline architecture with packet modification | |
EP1341350A1 (en) | A method for congestion detection for IP flows over a wireless network | |
US20210297343A1 (en) | Reliable fabric control protocol extensions for data center networks with failure resilience | |
Kheirkhah Sabetghadam | Mmptcp: a novel transport protocol for data centre networks | |
US20240073141A1 (en) | Flow-based congestion control | |
US12021756B2 (en) | Multi-queue packet processing performed by an intermediate device in a communication network | |
US20240205155A1 (en) | Protocol agnostic cognitive congestion control | |
Chen et al. | On meeting deadlines in datacenter networks | |
WO2024036476A1 (zh) | 一种报文转发方法及装置 | |
Goyal | Congestion Control in Highly Variable Networks | |
Ranjan | FAB: Toward Flow-aware Buffer Sharing on Programmable Switches | |
Bali | Plánovač síťového provozu pro diferencované služby |
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 |