CN111526095B - 一种流量控制方法和装置 - Google Patents
一种流量控制方法和装置 Download PDFInfo
- Publication number
- CN111526095B CN111526095B CN201910107858.0A CN201910107858A CN111526095B CN 111526095 B CN111526095 B CN 111526095B CN 201910107858 A CN201910107858 A CN 201910107858A CN 111526095 B CN111526095 B CN 111526095B
- Authority
- CN
- China
- Prior art keywords
- priority
- flow control
- message
- field
- pfc
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 83
- 239000000872 buffer Substances 0.000 claims description 37
- 238000013507 mapping Methods 0.000 claims description 34
- 238000012545 processing Methods 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 4
- 238000009825 accumulation Methods 0.000 abstract description 15
- 230000000903 blocking effect Effects 0.000 abstract description 15
- 238000004891 communication Methods 0.000 abstract description 6
- 230000000875 corresponding effect Effects 0.000 description 51
- 238000011144 upstream manufacturing Methods 0.000 description 34
- 238000010586 diagram Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 11
- 230000001276 controlling effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6215—Individual queue per QOS, rate or priority
-
- 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
- H04L47/266—Stopping or restarting the source, e.g. X-on or X-off
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
- H04L12/4645—Details on frame tagging
- H04L12/465—Details on frame tagging wherein a single frame includes a plurality of VLAN tags
-
- 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/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2408—Traffic characterised by specific attributes, e.g. priority or QoS for supporting different services, e.g. a differentiated services [DiffServ] type of service
-
- 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/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6275—Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
-
- 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/805—QOS or priority aware
-
- 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/39—Credit based
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了一种流量控制方法和装置,涉及通信技术领域,解决了现有技术在报文的优先级队列切换后,出现丢包、报文堆积或网络堵死等问题。具体方案为:第一设备接收第二设备发送的第一报文,第一报文携带第一字段和第二字段,第一字段携带第一优先级,第二字段携带第二优先级;第一设备根据第一报文的第一优先级进行流量控制;第一设备根据第一报文的第二优先级对第一报文进行队列调度。
Description
技术领域
本申请实施例涉及通信技术领域,尤其涉及一种流量控制方法和装置。
背景技术
目前越来越多的业务要求无丢包服务,现有的一种方法是通过流控技术(例如,优先级的流量控制(Priority-based Flow Control,PFC))来实现链路级的流控,从而避免网络丢包。
但是,在网络出现由优先级队列的环形依赖而造成网络死锁问题时,或者,在多个交换机的多条数据流传输至同一服务器造成网络拥塞时,为了解决网络死锁或网络拥塞问题,通常会切换报文的优先级队列。如图1所示,交换机1在出口侧的处理流程中,将交换1出口优先级队列1的报文切换为优先级队列2。若流控技术为基于优先级的流量控制(Priority-based Flow Control,PFC),交换机2确定交换机2中的优先级队列2产生拥塞,触发PFC OFF的水线,那么交换机2向交换机1发送PFC反压信息,PFC反压信息要求交换机1的优先级队列2中的报文停止向交换机2发送。由于flow1的报文实际存储在交换机1的优先级队列1中,所以交换机1在收到该Pause后并不会停止发送flow1的报文,从而造成在交换机2入口的丢包。因此,在对报文进行优先级队列的切换后,现有的流控方法仍会出现丢包问题。
若流控技术为基于信用的流量控制(Credit-Based Flow Control),交换机2根据自身缓存区buffer的空闲情况,确定优先级队列2对应的信用值(Credit值),并向交换机1发送Credit分配消息,该Credit分配消息携带优先级标识2和其对应的信用值。由于该Credit分配消息中的信用值实际为交换机1的优先级队列1的可用Credit值,但将其发给了交换机1的优先级队列2,因此交换机1的优先级队列1将接收不到Credit值,造成交换机1中的优先级队列1的报文堆积,以及交换机1中的优先级队列2错误的根据Credit值发送报文,可能造成网络堵死。
发明内容
本申请实施例提供一种流量控制方法和装置,能够在报文的优先级队列切换后,避免出现丢包、报文堆积或网络堵死等问题。
为达到上述目的,本申请实施例采用如下技术方案:
本申请实施例的第一方面,提供一种流量控制方法,该方法包括:第一设备接收第二设备发送的第一报文,该第一报文携带第一字段和第二字段,该第一字段携带第一优先级,该第二字段携带第二优先级;上述第一设备根据该第一报文的第一优先级进行流量控制;上述第一设备根据该第一报文的第二优先级对该第一报文进行队列调度。基于本方案,通过在报文中携带两个优先级,其中一个优先级用于流量控制,另一个优先级用于队列调度,从而在报文的优先级队列切换后,能够向上游设备发送准确的流控信息,避免出现丢包、报文堆积或网络堵死等问题。
结合第一方面,在一种可能的实现方式中,上述第一设备根据上述第一报文的第一优先级进行流量控制,包括:根据上述第一报文的第一优先级,该第一设备向上述第二设备发送流控信息,该流控信息中携带上述第一优先级,该流控信息用于指示上述第二设备根据该流控信息进行流量控制。基于本方案,能够在优先级队列切换的情况下,根据第一报文的第一优先级向上游设备发送准确的流控信息进行流量控制。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述方法还包括:上述第一设备将上述第一报文的第一优先级的值重置为上述第二优先级的值。基于本方案,通过将第一报文的第一优先级的值重置为第二优先级的值,能够在第一设备的下游设备发生拥塞时,根据该重置后的第一优先级的值向第一设备发送准确的流控信息进行流量控制。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述方法还包括:上述第一设备将上述第一报文的第二优先级的值重置为与上述第二优先级的值不同的值。基于本方案,能够在第一报文的优先级队列切换后,将第一报文的第二优先级的值进行重置,从而确保第一报文在下游设备中入正确的优先级队列。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述方法还包括:上述第一设备向第三设备发送上述第一报文。基于本方案,通过向第三设备发送第一优先级的值已重置的第一报文,或者,该第一优先级的值和第二优先级的值均已重置的第一报文,使得第三设备也能够根据第一报文的两个优先级进行正确的流量控制,避免出现丢包、报文堆积或网络堵死等问题。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,若上述第一报文为网络协议IP数据报文,上述第一字段为优先顺序Precedence字段,上述第二字段为延迟吞吐量可靠性DTR字段;或者,上述第一字段为延迟吞吐量可靠性DTR字段,上述第二字段为优先顺序Precedence字段。基于本方案,能够在IP报文中携带两个优先级。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,若上述第一报文为以太数据报文,上述第一字段为第一虚拟局域网标识VLAN Tag中的优先级PRI字段,上述第二字段为第二虚拟局域网标识VLAN Tag中的优先级PRI字段。基于本方案,能够在以太数据报文中携带两个优先级。
本申请实施例的第二方面,提供一种流量控制方法,该方法包括:第一设备接收第二设备发送的第一报文,该第一报文携带第一字段,该第一字段携带第一优先级;上述第一设备接收控制器发送的映射表,该映射表包括报文的标识信息与第二优先级的对应关系;上述第一设备查询该映射表确定上述第一报文对应的第二优先级;上述第一设备根据上述第一报文的第一优先级进行流量控制;上述第一设备根据上述第一报文的第二优先级对上述第一报文进行队列调度。基于本方案,通过在报文中携带第一优先级,从控制器发送的映射表中获取第二优先级,其中第一优先级用于流量控制,第二优先级用于队列调度,从而在报文的优先级队列切换后,能够向上游设备发送准确的流控信息,避免出现丢包、报文堆积或网络堵死等问题。
结合第二方面,在一种可能的实现方式中,上述第一设备根据上述第一报文的第一优先级进行流量控制,包括:根据上述第一报文的第一优先级,该第一设备向上述第二设备发送流控信息,该流控信息中携带上述第一优先级,该流控信息用于指示上述第二设备根据该流控信息进行流量控制。基于本方案,能够在优先级队列切换的情况下,根据第一报文的第一优先级向上游设备发送准确的流控信息进行流量控制。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述方法还包括:上述第一设备将上述第一报文的第一优先级的值重置为上述第二优先级的值。基于本方案,通过将第一报文的第一优先级的值重置为第二优先级的值,能够在第一设备的下游设备发生拥塞时,根据该重置后的第一优先级的值向第一设备发送准确的流控信息进行流量控制。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述方法还包括:上述第一设备向第三设备发送上述第一报文。基于本方案,通过向第三设备发送第一优先级的值已重置的第一报文,使得第三设备也能够根据第一报文的两个优先级进行正确的流量控制,避免出现丢包、报文堆积或网络堵死等问题。
本申请实施例的第三方面,提供一种流量控制装置,该装置包括:收发模块,用于接收第二设备发送的第一报文,该第一报文携带第一字段和第二字段,该第一字段携带第一优先级,该第二字段携带第二优先级;处理模块,用于根据上述第一报文的第一优先级进行流量控制;上述处理模块,还用于根据上述第一报文的第二优先级对上述第一报文进行队列调度。
结合第三方面,在一种可能的实现方式中,上述处理模块,具体用于根据上述第一报文的第一优先级,通过上述收发模块向上述第二设备发送流控信息,该流控信息中携带上述第一优先级,该流控信息用于指示上述第二设备根据该流控信息进行流量控制。
结合第三方面和上述可能的实现方式,在另一种可能的实现方式中,上述处理模块,还用于将上述第一报文的第一优先级的值重置为上述第二优先级的值。
结合第三方面和上述可能的实现方式,在另一种可能的实现方式中,上述处理模块,还用于将上述第一报文的第二优先级的值重置为与该第二优先级的值不同的值。
结合第三方面和上述可能的实现方式,在另一种可能的实现方式中,上述收发模块,还用于向第三设备发送上述第一报文。
结合第三方面和上述可能的实现方式,在另一种可能的实现方式中,若上述第一报文为网络协议IP数据报文,上述第一字段为优先顺序Precedence字段,上述第二字段为延迟吞吐量可靠性DTR字段;或者,上述第一字段为延迟吞吐量可靠性DTR字段,上述第二字段为优先顺序Precedence字段。
结合第三方面和上述可能的实现方式,在另一种可能的实现方式中,若上述第一报文为以太数据报文,上述第一字段为第一虚拟局域网标识VLAN Tag中的优先级PRI字段,上述第二字段为第二虚拟局域网标识VLAN Tag中的优先级PRI字段。
本申请实施例的第四方面,提供一种流量控制装置,该装置包括:收发模块,用于接收第二设备发送的第一报文,该第一报文携带第一字段,该第一字段携带第一优先级;上述收发模块,还用于接收控制器发送的映射表,上述映射表包括报文的标识信息与第二优先级的对应关系;处理模块,用于查询该映射表确定上述第一报文对应的第二优先级;该处理模块,还用于根据上述第一报文的第一优先级进行流量控制;该处理模块,还用于根据上述第一报文的第二优先级对所述第一报文进行队列调度。
结合第四方面,在一种可能的实现方式中,上述处理模块,具体用于根据上述第一报文的第一优先级,通过上述收发模块向上述第二设备发送流控信息,该流控信息中携带上述第一优先级,该流控信息用于指示上述第二设备根据该流控信息进行流量控制。
结合第四方面和上述可能的实现方式,在另一种可能的实现方式中,上述处理模块,还用于将上述第一报文的第一优先级的值重置为上述第二优先级的值。
结合第四方面和上述可能的实现方式,在另一种可能的实现方式中,上述收发模块,还用于向第三设备发送上述第一报文。
本申请实施例的第五方面,提供一种流量控制装置,该装置包括:收发器,用于接收第二设备发送的第一报文,该第一报文携带第一字段和第二字段,该第一字段携带第一优先级,该第二字段携带第二优先级;处理器,用于根据该第一报文的第一优先级进行流量控制;该处理器,还用于根据上述第一报文的第二优先级对该第一报文进行队列调度。
结合第五方面,在一种可能的实现方式中,上述处理器,具体用于根据上述第一报文的第一优先级,通过上述收发器向上述第二设备发送流控信息,该流控信息中携带上述第一优先级,该流控信息用于指示上述第二设备根据该流控信息进行流量控制。
结合第五方面和上述可能的实现方式,在另一种可能的实现方式中,上述处理器,还用于将上述第一报文的第一优先级的值重置为上述第二优先级的值。
结合第五方面和上述可能的实现方式,在另一种可能的实现方式中,上述处理器,还用于将上述第一报文的第二优先级的值重置为与该第二优先级的值不同的值。
结合第五方面和上述可能的实现方式,在另一种可能的实现方式中,上述收发器,还用于向第三设备发送上述第一报文。
结合第五方面和上述可能的实现方式,在另一种可能的实现方式中,若上述第一报文为网络协议IP数据报文,上述第一字段为优先顺序Precedence字段,上述第二字段为延迟吞吐量可靠性DTR字段;或者,上述第一字段为延迟吞吐量可靠性DTR字段,上述第二字段为优先顺序Precedence字段。
结合第五方面和上述可能的实现方式,在另一种可能的实现方式中,若上述第一报文为以太数据报文,上述第一字段为第一虚拟局域网标识VLAN Tag中的优先级PRI字段,上述第二字段为第二虚拟局域网标识VLAN Tag中的优先级PRI字段。
本申请实施例的第六方面,提供一种流量控制装置,该装置包括:收发器,用于接收第二设备发送的第一报文,该第一报文携带第一字段,该第一字段携带第一优先级;该收发器,还用于接收控制器发送的映射表,该映射表包括报文的标识信息与第二优先级的对应关系;处理器,用于查询该映射表确定上述第一报文对应的第二优先级;该处理器,还用于根据上述第一报文的第一优先级进行流量控制;该处理器,还用于根据上述第一报文的第二优先级对该第一报文进行队列调度。
结合第六方面,在一种可能的实现方式中,处理器,具体用于根据上述第一报文的第一优先级,通过上述收发模块向上述第二设备发送流控信息,该流控信息中携带上述第一优先级,该流控信息用于指示上述第二设备根据该流控信息进行流量控制。
结合第六方面和上述可能的实现方式,在另一种可能的实现方式中,上述处理器,还用于将上述第一报文的第一优先级的值重置为上述第二优先级的值。
结合第四方面和上述可能的实现方式,在另一种可能的实现方式中,上述收发器,还用于向第三设备发送上述第一报文。
结合上述第一方面、第二方面、第三方面、第四方面、第五方面或第六方面,在一种可能的实现方式中,上述流控信息包括基于优先级的流控PFC信息,该PFC信息用于指示上述第二设备的第一端口根据上述第一优先级,对该第一优先级指示的优先级队列中的报文进行流量控制。基于本方案,能够根据第一报文的第一优先级,通过PFC技术向第一设备发送PFC信息,从而在优先级队列切换的情况下,向上游设备发送准确的PFC信息进行流量控制。
结合上述第一方面、第二方面、第三方面、第四方面、第五方面或第六方面,在另一种可能的实现方式中,上述PFC信息包括PFC帧,该PFC帧用于指示上述第二设备的第一端口暂时停止向上述第一设备发送上述第一优先级指示的优先级队列中的报文。基于本方案,能够根据第一报文的第一优先级,通过向第一设备发送PFC帧,从而在优先级队列切换的情况下,向上游设备发送准确的PFC帧以指示第二设备的第一端口暂时停止向第一设备发送上述第一优先级指示的优先级队列中的报文。
结合上述第一方面、第二方面、第三方面、第四方面、第五方面或第六方面,在另一种可能的实现方式中,上述PFC信息包括PFC帧,该PFC帧用于指示上述第二设备的第一端口开始向上述第一设备发送上述第一优先级指示的优先级队列中的报文。基于本方案,能够根据第一报文的第一优先级,通过向第一设备发送PFC帧,从而在优先级队列切换的情况下,向上游设备发送准确的PFC帧以指示第二设备的第一端口开始向第一设备发送上述第一优先级指示的优先级队列中的报文。
结合上述第一方面、第二方面、第三方面、第四方面、第五方面或第六方面,在另一种可能的实现方式中,上述PFC帧中还携带第一时长,该第一时长用于指示上述第二设备的第一端口在接收该PFC帧后,等待第一时长,开始向上述第一设备发送上述第一优先级指示的优先级队列中的报文。基于本方案,能够在第二设备的第一端口接收PFC帧后,暂时停止向第一设备发送上述第一优先级指示的优先级队列中的报文,并等待第一时长后,开始向第一设备发送上述第一优先级指示的优先级队列中的报文。
结合上述第一方面、第二方面、第三方面、第四方面、第五方面或第六方面,在另一种可能的实现方式中,上述流控信息包括基于信用的流控Credit信息,该Credit信息用于指示上述第二设备根据上述第一优先级对应的第一信用值,更新上述第一优先级指示的优先级队列对应的信用值。基于本方案,能够根据第一报文的第一优先级,通过基于信用的流控技术向第一设备发送Credit信息,从而在优先级队列切换的情况下,向上游设备发送准确的Credit信息进行流量控制。
上述第三方面以及第三方面的各种实现方式和第五方面以及第五方面的各种实现方式的效果描述可以参考第一方面和第一方面的各种实现方式的相应效果的描述,上述第四方面以及第四方面的各种实现方式和第六方面以及第六方面的各种实现方式的效果描述可以参考第二方面和第二方面的各种实现方式的相应效果的描述,在此不再赘述。
本申请实施例的第七方面,提供一种计算机存储介质,所述计算机存储介质中存储有计算机程序代码,当所述计算机程序代码在处理器上运行时,使得所述处理器执行上述任一方面所述的流量控制方法。
本申请实施例的第八方面,提供了一种计算机程序产品,该程序产品储存有上述处理器执行的计算机软件指令,该计算机软件指令包含用于执行上述方面所述方案的程序。
本申请实施例的第九方面,提供了一种流量控制装置,该装置包括收发器、处理器以及存储器,收发器,用于收发信息,或者用于与其他网元通信;存储器,用于存储计算机执行指令;处理器,用于执行所计算机执行指令实现上述任一方面所述的流量控制方法。
本申请实施例的第十方面,提供了一种流量控制装置,该装置以芯片的产品形态存在,该装置的结构中包括处理器和存储器,该存储器用于与处理器耦合,保存该装置必要的程序指令和数据,该处理器用于执行存储器中存储的程序指令,使得该装置执行上述方法中装置的功能。
附图说明
图1为现有技术提供的一种流量控制方法的示意图;
图2为本申请实施例提供的一种基于优先级的流量控制的示意图;
图3为本申请实施例提供的一种基于信用的流量控制的示意图;
图4为本申请实施例提供的一种交换机的结构示意图;
图5为本申请实施例提供的一种流量控制方法的流程图;
图6为本申请实施例提供的一种流量控制方法的应用示意图;
图7为本申请实施例提供的一种基于优先级的流量控制的应用示意图;
图8为本申请实施例提供的一种报文携带多优先级的示意图;
图9为本申请实施例提供的另一种报文携带多优先级的示意图;
图10为本申请实施例提供的另一种流量控制方法的应用示意图;
图11为本申请实施例提供的另一种流量控制方法的应用示意图
图12为本申请实施例提供的一种基于信用的流量控制的应用示意图;
图13为本申请实施例提供的另一种流量控制方法的流程图;
图14为本申请实施例提供的另一种基于优先级的流量控制的应用示意图;
图15为本申请实施例提供的另一种流量控制方法的流程图;
图16为本申请实施例提供的另一种基于优先级的流量控制的应用示意图;
图17为本申请实施例提供的另一种流量控制方法的流程图;
图18为本申请实施例提供的一种流量控制装置的组成示意图;
图19为本申请实施例提供的另一种流量控制装置的组成示意图。
具体实施方式
首先,对本申请实施例中涉及的部分名词进行解释说明:
1、基于优先级的流量控制(PFC)
如图2所示,设备A发送接口分成了8个优先级队列,设备B接收接口有8个接收缓存队列,进行缓存(buffer)的分配,形成了网络中8个虚拟化通道,缓存大小使得各队列有不同的数据缓存能力,设备A的8个优先级队列和设备B的8个接收缓存队列一一对应。
当设备B的接口上某个接收缓存队列产生拥塞时,设备B向数据进入的方向(上游设备A)发送PFC反压信息,设备A根据PFC反压信息停止发送对应优先级队列的报文,并将报文存储在本地端口buffer,如果本地端口buffer消耗超过阈值,则继续向上游反压,如此一级一级反压,直到网络终端设备,从而消除网络节点因拥塞造成的丢包。
2、基于信用的流量控制(credit-based)
如图3所示,设备A向设备B发送数据,设备B根据自身缓冲区(buffer)的空闲情况确定信用值(Credit),并向设备A发送Credit分配消息,该分配消息中携带信用值。设备A接收Credit分配消息后,更新可用Credit值(即加上Credit分配消息中的值)。设备A根据可用Credit值向设备B发送报文,并减去可用Credit值。设备B根据Buffer的空闲情况定时向A发送Credit分配消息。可以理解的,设备A中可用Credit值为自然数,不可能为负数。
例如,结合图3所示,以Credit值为1表示64字节可用为例,设备A中可用的信用值(Credit值)为2,即设备A可以发送小于或等于128字节的报文,若设备A向设备B发送的第一报文大于64字节小于或等于128字节,设备A向设备B发送第一报文,并将设备A中的Credit值减2,即发送第一报文之后设备A中的Credit值为0。若设备A向设备B发送的第一报文小于或等于64字节,设备A向设备B发送第一报文,并将设备A中的Credit值减1,即发送第一报文之后设备A中的Credit值为1。若A向设备B发送的第一报文大于128字节小于或等于192字节,设备A不能向设备B发送第一报文,等待设备A中的Credit值更新后,再向设备B发送第一报文;若设备B根据自身buffer的空闲情况确定Credit值为1,向设备A发送该Credit值,设备A可以根据该Credit值更新自身可用的Credit值,更新后设备A可用的Credit值为3,再向设备B发送第一报文。
本申请实施例提供一种流量控制方法,应用于一种通信设备,该通信设备可以为交换机、路由器、服务器或终端设备等通信设备,本申请实施例对于该通信设备的具体形式并不进行限定,在此仅以该通信设备为交换机为例进行说明。
如图4所示的一种交换机,该交换机可以包括4个入端口和4个出端口,4个入端口分别为I1、I2、I3和I4,4个出端口分别为O1、O2、O3和O4。由于交换机可以双向通讯,因此I1、I2、I3和I4也可以为出端口,O1、O2、O3和O4也可以为入端口,图4中仅以I1、I2、I3和I4为入端口,O1、O2、O3和O4为出端口为例进行示意。
示例性的,交换机可以包括调度模块和缓存器,调度模块用于对报文进行管理,该调度模块可以包括L2/L3查表模块,流控管理模块,队列管理模块和报文编辑模块等。缓存器(BUFFER)用于缓存报文,缓存器可以包括多个报文缓存区,每个出端口可以对应一块报文缓存区。如图4所示,出端口O1至O4对应的报文缓存区分别为B1至B4,每个报文缓存区包含一个或多个队列,本例中包含Q1至Q8共8个队列。
L2/L3查表模块,用于对从入端口进入交换机的报文进行查表,确定下一跳地址和出端口号。例如,若入端口的报文为二层数据报文,根据该报文的目的MAC地址查表,确定该报文的出端口号和/或下一跳地址。若入端口的报文为三层数据报文,根据该三层数据报文的目的IP地址查表,确定该报文的出端口号和/或下一跳地址。
队列管理模块,用于对报文进行队列调度,例如入队和出队。示例性的,报文入队时可以根据报文的出端口号和/或下一跳地址,将该报文入队到出端口号对应的缓存区的队列中。例如,若报文对应的出端口号为O1,可以将报文存入O1对应的缓存区B1中的队列。示例性的,报文出队时,队列管理模块可以将报文从交换机出端口的队列取出,称为出报文。
流控管理模块,用于对上下游交换机之间的报文进行流控管理。示例性的,报文入队时,流控管理模块可以基于报文的入端口号和报文的流控优先级,统计报文的数量,即可以将流控计数器的值加上入报文的字节数。例如,若报文的入端口为I1,流控优先级为1,可以将流控计数器中入端口号为I1,流控优先级为1的数值加上该报文的字节数。示例性的,报文出队时,流控管理模块可以根据出报文的入端口号和出报文的流控优先级值统计出报文数量,即将该流控该计数器的值减去出报文字节数。在此,仅以统计报文的字节数为例进行说明,实际应用中,还可以统计报文的个数或者报文占用buffer的大小等,本申请实施例对此并不进行限定。
报文编辑模块,用于对报文的头部字段(MAC帧头部、IP报文头部、UDP或TCP头部等)或者报文的特定偏移位置的字段进行修改、删除和增加等操作。示例性的,报文出队时,报文编辑模块可以修改出报文的流控优先级和/或队列优先级的值。
需要说明的是,报文出队列时,可以由流控管理模块根据出报文的流控优先级,将流控该计数器的值减去出报文字节数后,再由报文编辑模块对出报文来修改流控优先级和/或队列优先级的值。
可理解的是,图4仅为示例性说明,图4所示的结构不对本申请实施例提供的通信设备构成任何限制。
为了解决背景技术中,在对报文进行优先级队列切换后,出现丢包、报文堆积等问题,本申请实施例提供了一种流量控制方法,该方法在报文的优先级队列切换后,能够向上游设备发送准确的流控信息,避免出现丢包、报文堆积或网络堵死等问题。
结合图2-图4,如图5所示,本申请实施例提供了一种流量控制方法,该方法可以包括步骤S501-S503。
S501、第一设备接收第二设备发送的第一报文。
该第一设备为下游接收方设备,第二设备为上游发送方设备,可以理解的,同一个设备既可以作为发送方设备也可以作为接收方设备。
示例性的,第一设备可以有多个上游设备,第一设备的多个入端口可以接收一个或多个上游设备(第二设备)发送的报文,但第一设备的一个入端口仅接收一个上游设备发送的报文。例如,图6所示的交换机B的四个入端口I1至I4可以接收3个上游设备(交换机A1、交换机A2和交换机A3)发送的报文,但交换机B的一个入端口仅接收一个上游设备的一个出端口发送的报文。
示例性的,该第一报文可以携带多个优先级,例如,第一报文携带第一字段和第二字段,第一字段携带第一优先级,第二字段携带第二优先级。
示例性的,上述第一优先级可以用于报文流量控制,该第一优先级也可称为流控优先级。上述第二优先级可以对第一报文进行队列调度,例如,可以指导报文入正确的优先级队列,该第二优先级也可称为队列优先级。下述实施例中以该第一优先级为流控优先级,第二优先级为队列优先级为例进行说明。
如图7所示,若交换机1(第二设备)向交换机2(第一设备)发送的第一报文切换了优先级队列,即第一报文从交换机1中的优先级队列1切换为交换机2中的优先级队列2,交换机2接收的第一报文中携带两个优先级,第一优先级(流控优先级)为1,第二优先级(队列优先级)为2。需要说明的是,在此仅以第一报文从交换机1中的优先级队列1切换为交换机2中的优先级队列2为例进行说明,实际应用中,可以根据网络状态确定报文切换后的优先级队列。
一种实现方式中,上述第一报文为三层网络协议(Internet Protocol,IP)数据报文,在该三层IP数据报文中携带多优先级时,第一字段可以为图8中的优先顺序(Precedence)字段,第二字段可以为图8中的延迟吞吐量可靠性DTR字段;或者,第一字段可以为图8中的DTR字段,第二字段可以为图8中的Precedence字段,本申请实施例对此并不进行限定。图8中仅以第一优先级携带在Precedence字段,第二优先级携带在DTR字段进行示例。
示例性的,Precedence字段代表报文传输的8个优先级,按照优先级从高到低的顺序取值为7、6、5、4、3、2、1和0,最高优先级是7。
示例性的,上述DTR字段中的D(Delay)比特表示延迟要求,其中,0代表正常延迟,1代表低延迟。T(Throughput)比特表示吞吐量,其中,0代表正常吞吐量,1代表高吞吐量。R(Reliability)比特表示可靠性,其中,0代表正常可靠性,1代表高可靠性。
另一实现方式中,上述第一报文可以为二层以太数据报文,在该二层以太数据报文中携带多优先级时,第一字段可以为第一虚拟局域网(Virtual Local Area Network,VLAN)标识(VLAN Tag)中的优先级(priority,PRI)字段,第二字段为第二VLAN Tag中的PRI字段。如图9所示,第一字段可以为两个VLAN Tag中的任一个VLAN Tag的PRI字段,第二字段为另一个VLAN Tag的PRI字段。需要说明的是,图9中的两个VLAN Tag也可以为嵌套关系。
需要说明的是,本申请实施例对于第一报文中第一优先级和第二优先级的具体携带方式并不进行限定,上述两种实现方式仅是示例性的说明。
可以理解的,与现有技术中的网络设备只基于一个优先级转发报文相比,本申请实施例中的报文携带两个优先级,该两个优先级中一个优先级用于报文的流量控制,另一个优先级用于队列调度,因此在报文的优先级队列切换后,不会出现只有一个优先级造成的混乱。
可选的,由于本实施例中的报文携带两个优先级,在上述步骤S501之前,上游设备和下游设备可以进行能力协商,以确定下游设备是否具备携带两个优先级的能力。
示例性的,在执行步骤S501之前,第二设备可以向第一设备发送请求信息,该请求信息用于请求第一设备的能力信息。第一设备接收请求信息后,向第二设备发送应答消息,该应答消息用于指示第一设备具备或不具备携带两个优先级的能力。若第一设备具备携带两个优先级的能力,第一设备向第二设备发送上述第一报文。
S502、第一设备根据第一报文的第一优先级进行流量控制。
可以理解的,可由图4中所示的交换机中的调度模块中的流控管理模块执行步骤S502。
示例性的,上述步骤S502中第一设备根据第一报文的第一优先级进行流量控制可以包括:第一设备根据第一报文的第一优先级,向第二设备发送流控信息,该流控信息中携带第一优先级,流控信息用于指示第二设备根据该流控信息进行流量控制。
可选的,上述步骤S502可以包括:第一设备根据第一报文的第一优先级,进行流量统计,并基于流量统计结果向第二设备发送上述流控信息。
示例性的,上述步骤S502中的流量控制技术可以为基于优先级的流量控制PFC,也可以为基于信用的流量控制,本申请实施例对于具体的流量控制技术并不进行限定。下面以流控技术为基于PFC的流量控制和基于信用的流量控制为例分别对步骤S502进行详细说明。
一种实现方式中:上述步骤S502中的流量控制技术为基于优先级的流量控制。在该实现方式中,上述流控信息包括基于优先级的流控PFC信息,该PFC信息用于指示第二设备的第一端口根据第一优先级,对第一优先级指示的优先级队列中的报文进行流量控制。例如,该PFC信息具体可以为PFC帧(PFC frame)。可以理解的,本申请实施例仅以PFC流控是基于端口的队列进行流量控制为例进行说明,并不限定以后PFC流控也可能是基于其他粒度进行流量控制,例如,基于数据流进行流量控制,该数据流可以为五元组数据流或三元组数据流。
在该实现方式中,上述步骤S502可以包括步骤S5021-S5022。
S5021、第一设备根据第一报文的第一优先级,统计第一设备中第二报文的数量。
该第二报文为第一优先级与第一报文的第一优先级相同的报文,即第二报文的第一优先级与第一报文的第一优先级相同。
示例性的,上述根据第一报文的第一优先级,统计第一设备中第二报文的数量可以包括:根据第一报文的第一优先级,统计第二报文的个数、大小(字节数)或者第二报文占用buffer的大小等,本申请实施例对此并不进行限定。下述实施例仅以统计第二报文的字节数为例进行说明。
示例性的,上述步骤S5021中统计第一设备中第二报文的数量时,可以基于不同粒度统计第二报文的数量。例如,可以以第一设备的端口为粒度,统计第一设备的每个入端口中第二报文的数量;也可以以第一设备为粒度,统计第一设备中第二报文的数量。
第一种情况:以第一设备的端口为粒度统计第二报文的数量时,上述步骤S5021具体包括:根据第一报文的第一优先级和第一报文的入端口号,统计第一设备中第二报文的数量,该第二报文的第一优先级与第一报文的第一优先级相同,且,第二报文的入端口号和第一报文的入端口号相同。
示例性的,交换机B的流控管理模块可以统计每个入端口进入的不同流控优先级的报文数量。如图6所示,以第一报文的入端口为I1,第一报文的流控优先级为1为例,交换机B的流控管理模块可以统计所有入端口为I1,流控优先级为1的第二报文的数量。
可以理解的,基于上述第一种情况,流控管理模块统计第二报文的数量具体可以包括:报文入队时,根据入报文的入端口号和入报文的流控优先级,将流控计数器的值加上该入报文的字节数。报文出队时,可以根据出报文的入端口号和流控优先级,将流控计数器的值减去该出报文的字节数。例如,入报文的入端口为I1,流控优先级为1时,可以将流控计数器中入端口号为I1,流控优先级为1的数值加上该报文的字节数;出报文的入端口为I1,流控优先级为1时,可以将流控计数器中入端口号为I1,流控优先级为1的数值减去该报文的字节数。
第二种情况:以第一设备为粒度统计时,上述步骤S5021具体包括:根据第一报文的第一优先级,统计第一设备中第二报文的数量,该第二报文的第一优先级与第一报文的第一优先级相同。可以理解的,以设备为粒度统计第二报文的数量时,不需要区分报文的入端口号。
示例性的,如图6所示,以第一报文的流控优先级为1为例,交换机B的流控管理模块可以统计4个入端口进入的所有流控优先级为1的第二报文的数量,不需要区分报文的入端口号。
可以理解的,基于上述第二种情况,流控管理模块统计第二报文的数量具体可以包括:报文入队时,根据入报文的流控优先级,将流控计数器的值加上该入报文的字节数。报文出队时,可以根据出报文的流控优先级,将流控计数器的值减去该出报文的字节数。例如,入报文的流控优先级为1时,可以将流控计数器中流控优先级为1的数值加上该报文的字节数;出报文的流控优先级为1时,可以将流控计数器中流控优先级为1的数值减去该报文的字节数。
示例性的,上述以设备为粒度或者以设备的入端口为粒度,统计第二报文的数量可以适用于多种场景。例如,图6所示的从多个入端口进多个出端口出的场景,或者,图10所示的从一个入端口进多个出端口出的场景,或者,图11所示的从多个入端口进一个出端口出的场景,或者,一个端口进一个端口出的场景等,本申请实施例对此并不进行限定。
需要说明的是,上述统计第二报文的数量可以为统计第二报文的字节数;或者,若第二报文的字节数相同,也可以统计第二报文的个数;或者,也可以统计第二报文占用buffer的大小,本申请实施例对此并不进行限定。
示例性的,结合图7所示,交换机2根据第一报文中携带的第一优先级1统计第二报文的数量,或者,根据第一报文的入端口号和第一优先级1统计第二报文的数量。需要说明的是,图7仅是示意性的对本申请实施例中的流量控制方法进行说明。
S5022、若确定第二报文的数量大于或等于第一预设阈值,第一设备向第二设备发送PFC信息。
示例性的,该PFC信息可以为PFC帧,该PFC帧用于指示第二设备的第一端口暂时停止向第一设备发送第一优先级指示的优先级队列中的报文。例如该PFC帧可以为PFC PAUSE帧,用于通知上游设备暂时停止发送第一优先级指示的优先级队列中的报文。需要说明的是,在此仅是为了说明PFC帧的功能,示例的将其称为PFC PAUSE帧进行说明。
示例性的,对应于步骤S5021中的第一种情况,以第一设备的端口为粒度统计第二报文的数量时,步骤S5022具体为第一设备向第二设备的第一端口发送PFC帧,该第二设备的第一端口与第一报文的入端口为一条链路的两个端口。即第一设备向链路对端第二设备发送PFC帧,该链路对端第二设备为第一报文的入端口对应的链路对端第二设备。
结合图6所示,若入端口号为I2,流控优先级为1的第二报文的数量大于或等于第一预设阈值,交换机B向链路对端第二设备发送PFC PAUSE帧,即交换机B向交换机A1的O2端口发送PFC PAUSE帧,该PFC PAUSE帧用于指示交换机A1的O2端口暂时停止向交换机B发送优先级队列1中的报文。可以理解的,交换机A1的O2端口和交换机B的I2端口为一条链路的两个端口,反压时仅反压第一报文的入端口的链路对端第二设备。
示例性的,对应于步骤S5021中的第二种情况,以第一设备为粒度统计第二报文的数量时,步骤S5022具体为分别向一个或多个第二设备的第一端口发送PFC帧,该一个或多个第二设备的第一端口分别与第一设备的入端口为一条链路的两个端口。即第一设备向链路对端第二设备发送PFC帧,该链路对端第二设备为第一设备的所有入端口对应的链路对端第二设备。
结合图6所示,若流控优先级为1的第二报文的数量大于或等于第一预设阈值,交换机B向链路对端第二设备发送PFC PAUSE帧,即交换机B向交换机A1的O1端口和O2端口、交换机A2的O2端口,以及交换机A3的O4端口分别发送PFC PAUSE帧,该PFC PAUSE帧用于指示A1的O1端口和O2端口、交换机A2的O2端口,以及交换机A3的O4端口暂时停止向交换机B发送优先级队列1中的报文。可以理解的,交换机A1的O1端口和O2端口、交换机A2的O2端口,以及交换机A3的O4端口,分别与交换机B的I1端口、I2端口、I3端口和I4端口为一条链路的两个端口,反压时反压第一设备的所有入端口的链路对端第二设备。
结合图7所示,采用上述任一种实现方式,若流控优先级为1的第二报文的数量大于或等于第一预设阈值,确定该第一报文的队列优先级2指示的优先级队列拥塞,即交换机2的优先级队列2拥塞,交换机2立即向上游设备(例如,交换机1)发送PFC帧(例如,PFCPAUSE帧),该PFC帧用于通知交换机1暂时停止向交换机2发送交换机1中优先级队列1中的报文。
可以理解的,由于本申请实施例中用于流量控制的流控优先级与入优先级队列的队列优先级不同,因此,能够在某一队列发生拥塞时,根据流控优先级进行正确的反压,避免出现丢包问题。
可选的,一种启动上游设备开始向下游设备发送报文的方式是在上述PFC帧中携带第一时长,该第一时长用于指示第二设备在接收PFC帧后,等待第一时长,开始向第一设备发送第一优先级指示的优先级队列中的报文。可以理解的,第二设备接收该PFC帧后,暂时停止向第一设备发送第一优先级指示的优先级队列中的报文,等待第一时长后,开始向第一设备发送第一优先级指示的优先级队列中的报文。
示例性的,上述PFC帧中可以包括两个操作数,分别为优先级和时长,当PFC帧中的某个优先级被PAUSE时,该优先级对应的时长有效,上游设备的第一端口在接收该PFCPAUSE帧时,暂时停止向下游设备发送该优先级指示的优先级队列中的报文,并等待该时长后,开始向下游设备发送该优先级指示的优先级队列中的报文。
示例性的,PFC PAUSE帧可以携带8个优先级的PAUSE情况,其中,e(n)表示优先级队列n是否被PAUSE,time(n)表示优先级队列n被PAUSE时的暂停时间。例如,e(1)=1表示第一优先级1被PAUSE,此时该第一优先级1对应的time(1)有效;PFC帧中e(2)=0表示第一优先级2未被PAUSE,此时该第一优先级2对应的time(2)无效。
示例性的,第二设备在接收PFC帧后,暂时停止向第一设备发送第一优先级指示的优先级队列中的报文,并根据PFC帧中的第一时长启动定时器,并在定时器超时后,开始向下游设备(第一设备)发送第一优先级指示的优先级队列中的报文。可以理解的,该第一时长可以为预设值,在定时器超过第一时长后,上游设备认为下游设备中不再拥塞,可以开始向下游设备发送第一优先级指示的优先级队列中的报文。
可选的,若下游设备拥塞较为严重,或,下游设备不想让上游设备向其发送第一优先级指示的优先级队列中的报文,可以在定时器超时前,向上游设备再次发送上述PFCPAUSE帧。
可选的,另一种启动上游设备开始向下游设备发送报文的方式是在步骤S5022之后,若确定第一设备中第二报文的数量小于第二预设阈值,该第二预设阈值小于或等于上述第一预设阈值,继续执行步骤S5023。
S5023、若确定第一设备中第二报文的数量小于第二预设阈值,第一设备向第二设备发送PFC信息。
该PFC信息可以为PFC帧,该PFC帧用于指示第二设备的第一端口开始向第一设备发送第一优先级指示的优先级队列中的报文。例如,该PFC帧可以为PFC ON帧,用于通知上游设备开始发送第一优先级指示的优先级队列中的报文。需要说明的是,在此仅是为了说明PFC帧的功能,示例的将其称为PFC ON帧进行说明。
示例性的,对应于步骤S5021和步骤S5022中的第一种情况,以第一设备的端口为粒度统计第二报文的数量时,步骤S5023具体为第一设备向第二设备的第一端口发送PFC帧,该第二设备的第一端口与第一报文的入端口为一条链路的两个端口。即第一设备向链路对端第二设备发送PFC帧,该链路对端第二设备为第一报文的入端口对应的链路对端第二设备。
结合图6所示,若入端口号为I2,流控优先级为1的第二报文的数量小于第二预设阈值,交换机B向链路对端第二设备发送PFC ON帧,即交换机B向交换机A1的O2端口发送PFCON帧,该PFC ON帧用于指示交换机A1的O2端口开始向交换机B发送优先级队列1中的报文。可以理解的,交换机A1的O2端口和交换机B的I2端口为一条链路的两个端口,反压时仅反压第一报文的入端口的链路对端第二设备。
示例性的,对应于步骤S5021和步骤S5022中的第二种情况,以第一设备为粒度统计第二报文的数量时,步骤S5023具体为第一设备分别向一个或多个第二设备的第一端口发送PFC帧,该一个或多个第二设备的第一端口分别与第一设备的入端口为一条链路的两个端口。即第一设备向链路对端第二设备发送PFC帧,该链路对端第二设备为第一设备的所有入端口对应的链路对端第二设备。
结合图6所示,若流控优先级为1的第二报文的数量小于第二预设阈值,交换机B向交换机A1的O1端口和O2端口、交换机A2的O2端口,以及交换机A3的O4端口分别发送PFC ON帧,该PFC ON帧用于指示A1的O1端口和O2端口、交换机A2的O2端口,以及交换机A3的O4端口开始向交换机B发送优先级队列1中的报文。可以理解的,交换机A1的O1端口和O2端口、交换机A2的O2端口,以及交换机A3的O4端口,分别与交换机B的I1端口、I2端口、I3端口和I4端口为一条链路的两个端口,流控时控制第一设备的所有入端口的链路对端第二设备。
结合图7所示,采用上述任一种实现方式,若流控优先级为1的第二报文的数量小于第二预设阈值,确定该第一报文的队列优先级2指示的优先级队列不再拥塞,即交换机2的优先级队列2不再拥塞,交换机2向上游设备(例如,交换机1)发送PFC ON帧,该PFC ON帧用于通知交换机1开始向交换机2发送交换机1中优先级队列1中的报文。
可以理解的,由于本申请实施例中用于流量控制的流控优先级与队列调度的队列优先级不同,因此,能够在某一队列不再拥塞时,根据流控优先级指示上游发送设备开始发送流控优先级指示的优先级队列中的报文,避免出现丢包问题。
另一种实现方式中,上述步骤S502中的流量控制技术为基于信用的流量控制。在该实现方式中,上述流控信息包括基于信用的流控Credit信息,该Credit信息用于指示第二设备根据第一优先级对应的第一信用值,更新第一优先级指示的优先级队列对应的信用值。
在该实现方式中,上述步骤S502可以包括步骤S5024-S5025。
S5024、第一设备根据第一报文的第一优先级,确定第一信用值。
该第一信用值为第一优先级对应的信用值。
示例性的,第一设备可以根据第一设备中buffer的空闲情况,确定该第一优先级对应的第一信用值。
示例性的,如图6所示,若入端口I1对应缓存区B1,入端口I2对应缓存区B2,入端口I3对应缓存区B3,入端口I4对应缓存区B4,交换机B可以根据交换机B中每个缓存区的buffer的空闲情况,确定缓存区B1、B2、B3和B4中每个第一优先级对应的信用值。
结合图12所示,交换机2可以根据自身的buffer的空闲情况,确定流控优先级1对应的第一信用值。例如,该第一信用值为2。需要说明的是,图12仅是示意性的对本申请实施例中的流量控制方法进行说明。
S5025、第一设备向第二设备发送Credit信息。
该Credit信息携带第一信用值和第一优先级,该Credit信息用于指示第二设备的第一根据第一优先级对应的第一信用值,更新第一优先级指示的优先级队列对应的信用值。
如图6所示,以第二设备为A1、第一优先级为1、第二优先级为2为例,若交换机B确定缓存区B1中优先级队列2对应的信用值为2,交换机B向交换机A1发送Credit信息,该Credit信息用于指示交换机A1根据信用值为2,更新交换机A1中优先级队列1对应的信用值。
结合图12所示,交换2向交换机1发送Credit信息,该Credit信息中包含流控优先级1对应的第一信用值,从而使得交换机1接收该Credit信息后,可以根据该Credit信息中的第一信用值更新交换机1中的优先级队列1的可用信用值。例如,若接收Credit信息之前,交换机1中的优先级队列1的可用信用值为3,那么接收Credit信息后,根据Credit信息将其可用的信用值更新,若Credit信息中的第一信用值为2,那么更新后的交换机1中的优先级队列1的可用信用值为2+3=5。需要说明的是,图12仅以第一报文从交换机1的优先级队列1切换至交换机2的优先级队列2为例,示例性的说明本申请实施例的流量控制方法。
需要说明的是,采用基于信用的流量控制时,在优先级队列切换的情况下,根据流控优先级进行信用值的发送,从而能够向发送方设备中流控优先级指示的优先级队列发送流控优先级对应的信用值,因此,能够正确的向发送方发送信用值,防止出现报文堆积、或网络堵死等问题。
S503、第一设备根据第一报文的第二优先级对第一报文进行队列调度。
可以理解的,可由图4中所示的交换机中的调度模块中的队列管理模块执行步骤S503。
示例性的,第一设备可以根据第二优先级将第一报文存入第二优先级指示的优先级队列中。例如,如图7或图12所示,交换机2根据第一报文的队列优先级2,将第一报文存入交换机2中的优先级队列2中。
需要说明的是,上述步骤S503可以在步骤S502之前执行,也可以在步骤S503之后执行,还可以和步骤S503同时执行,本申请实施例对于步骤S502和步骤S503的执行顺序并不进行限定。
可以理解的,本申请实施例中的报文携带两个优先级,一个优先级用于流量控制,一个优先级用于队列调度,与现有技术中仅采用一个优先级相比,本申请能够在优先级队列切换的情况下,避免由于不能正确反压或者不能正确的发送信用值而造成的丢包问题。
本申请实施例通过第一设备接收第二设备发送的第一报文,该第一报文携带第一优先级和第二优先级;第一设备根据第一报文的第一优先级进行流量控制;第一设备根据第一报文的第二优先级对第一报文进行队列调度。本实施例通过在报文中携带两个优先级,其中一个优先级用于流量控制,另一个优先级用于队列调度,从而在报文的优先级队列切换后,能够向上游设备发送准确的流控信息,避免出现丢包、报文堆积或网络堵死等问题。
进一步的,如图13所示,在上述步骤S503之后,该方法还可以包括步骤S504-S506。
S504、第一设备将第一报文的第一优先级的值重置为第二优先级的值。
可以理解的,可由图4中所示的交换机中的调度模块中的报文编辑模块执行步骤S504。
第一种实现方式中,在执行步骤S504时,第一设备可以判断第一报文的第一优先级的值和第二优先级的值是否相同,在第一优先级的值和第二优先级的值不同时,将第一报文的第一优先级的值重置为第二优先级的值。
第二种实现方式中,在执行步骤S504时,也可以不区分第一报文的第一优先级的值和第二优先级的值相同或不同,直接将第一报文的第一优先级的值重置为第二优先级的值。可以理解的,这两种实现方式的效果相同,但相较于第一种实现方式,第二种实现方式实现起来较为简单。
例如,如图7或图12所示,第二交换机的报文编辑模块可以在交换机2的出口将第一报文的流控优先级的值修改为队列优先级的值,即第一报文的流控优先级为2,队列优先级为2。如此一来,交换机3可以按照步骤S501-S503进行流量控制,例如,在交换机3的优先级队列2发生拥塞时,能够正确反压交换机2的优先级队列2。
(可选的)S505、第一设备将第一报文的第二优先级的值重置为与第二优先级的值不同的值。
可以理解的,可由图4中所示的交换机中的调度模块中的报文编辑模块执行步骤S505。
示例性的,第一设备可以根据预设规则,确定是否切换第一报文的优先级队列。若确定切换第一报文的优先级队列,执行步骤S505,第一设备将第一报文的第二优先级的值重置为与第二优先级的值不同的值,该与第二优先级的值不同的值为第一报文在下游设备中的优先级队列的值。
如图14所示,交换机2可以根据预设规则,若确定切换第一报文的优先级队列,可以将第一报文的第二优先级由优先级2切换为优先级1,在交换机2的出口将第一报文的第二优先级的值重置为该第一报文在交换机3中的优先级队列的值1,即将第二优先级的值重置为1。如此一来,交换机3可以按照步骤S501-S503进行流量控制,例如,在交换机3的优先级队列1发生拥塞时,能够正确反压交换机2的优先级队列2。图14仅以第一报文从交换机2的优先级队列2切换至交换机3的优先级队列1为例进行示例性说明,实际应用中,第一报文也可以切换为其他优先级队列,本申请实施例对此并不进行限定。需要说明的是,图14仅是示意性的对本申请实施例中的流量控制方法进行说明。
示例性的,第一设备可以根据不同场景确定是否切换第一报文的优先级队列,例如,若网络出现死锁问题,可以切换第一报文的优先级队列以解决死锁问题,或者为了解决网络拥塞问题,也可以切换第一报文的优先级队列以缓解网络拥塞。本申请实施例对于确定切换报文的优先级队列的场景并不进行限定,任何一种切换报文的优先级队列的场景均在本申请实施例的保护范围内。
需要说明的是,上述步骤S502中流控管理模块对报文进行流量控制后,步骤S504和S505中报文编辑模块再重置流控优先级和/或队列优先级的值,即执行步骤S502时的流控优先级和/或队列优先级还未重置,从而能够在确保PFC流量统计和第一信用值的准确性的同时,避免切换优先级队列后造成的丢包、报文堆积、网络堵死等问题。
上述步骤S504或步骤S505之后可以继续执行步骤S506。
S506、第一设备向第三设备发送第一报文。
第三设备为第一设备的下游设备。该第一报文的第一优先级的值已重置,或者,该第一报文的第一优先级的值和第二优先级的值均已重置。
一种实现方式中,若第一设备确定不切换第一报文的优先级队列,即第一报文在第三设备中的队列优先级与第一报文在第一设备中的队列优先级相同,此时执行步骤S504和步骤S506,将第一报文的第一优先级的值重置为第二优先级的值,再向第三设备发送第一优先级重置后的第一报文。
另一种实现方式中,若第一设备确定切换第一报文的优先级队列,即第一报文在第三设备中的队列优先级与第一报文在第一设备中的队列优先级不相同,此时执行步骤S504-S506,将第一报文的第一优先级的值重置为第二优先级的值,将第一报文的第二优先级的值重置为与第二优先级的值不同的值,再向第三设备发送第一优先级和第二优先级重置后的第一报文。
本申请实施例通过第一设备接收第二设备发送的第一报文,该第一报文携带第一优先级和第二优先级;第一设备根据第一报文的第一优先级进行流量控制;第一设备根据第一报文的第二优先级对第一报文进行队列调度;第一设备将第一报文的第一优先级的值重置为第二优先级的值;第一设备将第一报文的第二优先级的值重置为与第二优先级的值不同的值;第一设备向第三设备发送第一报文。本实施例通过在报文中携带两个优先级,其中一个优先级用于流量控制,另一个优先级用于队列调度,从而在报文的优先级队列切换后,能够向上游设备发送准确的流控信息,避免出现丢包、报文堆积或网络堵死等问题。而且通过将第一报文的第一优先级的值重置为第二优先级的值,从而在第一设备的下游设备进行流量控制时,能够向第一设备发送准确的流控信息。
本申请提供又一种流量控制方法,如图15所示,该方法包括步骤S1501-S1505。
S1501、第一设备接收第二设备发送的第一报文。
该第一设备为下游接收方设备,第二设备为上游发送方设备,可以理解的,同一个设备既可以作为发送方设备也可以作为接收方设备。
该第一报文携带第一字段,该第一字段携带第一优先级。示例性的,该第一优先级可以用于报文流量控制,该第一优先级也可称为流控优先级。
S1502、第一设备接收控制器发送的映射表。
该映射表包括报文的标识信息与第二优先级的对应关系。
示例性的,该标识信息可以为唯一识别报文的信息,例如,该标识信息可以为报文的源IP地址和目的IP地址,或报文的五元组信息等。本申请实施例对于标识信息的具体内容并不进行限定,在此仅是示例性说明。
需要说明的是,在步骤S1502之前,控制器可以通过收集网络状态确定网络是否出现死锁,若网络出现死锁,控制器确定切换第一报文的优先级队列,并向第一设备发送上述映射表;或者,控制器也可以通过收集网络状态确定网络是否拥塞,若网络出现拥塞,控制器确定切换第一报文的优先级队列,并向第一设备发送上述映射表。本申请实施例对于切换报文的优先级队列的具体场景并不进行限定,任何一种切换报文的优先级队列的场景均在本申请实施例的保护范围内,在此仅是示例性说明。
S1503、第一设备根据映射表确定第一报文对应的第二优先级。
该第二优先级用于队列调度,该第二优先级也可称为队列优先级。
示例性的,如图16所示,上述步骤S1503具体可以包括:第一设备的流表写模块根据控制器发送的报文的标识信息与第二优先级的映射关系,将映射关系写入第一设备内的存储表项(流表)中;第一设备的流表读模块读取第一设备内的存储表项中的标识信息与第二优先级的对应关系,获取第一报文对应的第二优先级。需要说明的是,图16仅是示意性的对本申请实施例中的流量控制方法进行说明。
S1504、第一设备根据第一报文的第一优先级进行流量控制。
需要说明的是,步骤S1504中第一设备根据第一报文的第一优先级进行流量控制的实现方式与步骤S502的实现方式相同,具体可参考步骤S502的描述,在此不再赘述。
S1505、第一设备根据第一报文的第二优先级对第一报文进行队列调度。
需要说明的是,步骤S1505中第一设备根据第一报文的第二优先级对第一报文进行队列调度的实现方式与步骤S503的实现方式相同,具体可参考步骤S503的描述,在此不再赘述。
可以理解的,本申请实施例与前述实施例不同的是,本申请实施例中的报文仅携带一个优先级,另一个优先级通过查询控制器发送的映射表获得,因此,本实施例也是通过两个优先级进行流量控制,可以在优先级队列发生切换后,避免出现丢包、报文堆积或网络堵死等问题的出现。本实施例中的报文仅携带一个优先级与前述实施例中的报文携带两个优先级相比,可以不改动数据面报文,第二优先级直接由控制器发送的映射表获取。
本申请实施例通过第一设备接收第二设备发送的第一报文,该第一报文携带第一优先级;第一设备接收控制器发送的映射表,该映射表包括报文的标识信息与第二优先级的对应关系;第一设备根据映射表确定第一报文对应的第二优先级;第一设备根据第一报文的第一优先级进行流量控制;第一设备根据第一报文的第二优先级进行队列调度。本实施例通过在报文中携带第一优先级,从控制器发送的映射表中获取第二优先级,其中第一优先级用于流量控制,第二优先级用于队列调度,从而在报文的优先级队列切换后,能够向上游设备发送准确的流控信息,避免出现丢包、报文堆积或网络堵死等问题。
进一步的,如图17所示,在上述步骤S1505之后,该方法还可以包括步骤S1506-S1507。
S1506、第一设备将第一报文的第一优先级的值重置为第二优先级的值。
示例性的,由于本实施例的报文仅携带流控优先级,队列优先级是根据控制发送的映射表获得,因此,第一设备仅将第一报文的第一优先级的值重置为第二优先级的值即可。如此一来,图16中的交换机3可以按照步骤S1501-S1505进行流量控制,例如,在交换机3的优先级队列2发生拥塞时,能够正确反压交换机2的优先级队列2。
S1507、第一设备向第三设备发送第一报文。
第三设备为第一设备的下游设备。该第一报文的第一优先级的值已重置。
示例性的,第一设备可以将第一报文的第一优先级的值重置为第二优先级的值,再向第三设备发送第一优先级重置后的第一报文。
本申请实施例通过第一设备接收第二设备发送的第一报文,该第一报文携带第一优先级;第一设备接收控制器发送的映射表,该映射表包括报文的标识信息与第二优先级的对应关系;第一设备根据映射表确定第一报文对应的第二优先级;第一设备根据第一报文的第一优先级进行流量控制;第一设备根据第一报文的第二优先级对第一报文进行队列调度;第一设备将第一报文的第一优先级的值重置为第二优先级的值;第一设备向第三设备发送第一报文。本实施例通过在报文中携带第一优先级,从控制器发送的映射表中获取第二优先级,其中第一优先级用于流量控制,第二优先级用于队列调度,从而在报文的优先级队列切换后,能够向上游设备发送准确的流控信息,避免出现丢包、报文堆积或网络堵死等问题。而且通过将第一优先级的值重置为第二优先级的值,从而在第一设备的下游设备进行流量控制时,能够向第一设备发送准确的流控信息。
上述主要从方法步骤的角度对本申请实施例提供的方案进行了介绍。可以理解的是,交换机为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,本申请能够以硬件和计算机软件的结合形式来实现。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对计算机进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图18示出了上述实施例中所涉及的一种流量控制装置可能的结构示意图,该流量控制装置1800包括:收发模块1801和处理模块1802。收发模块1801可以用于支持流量控制装置1800执行图5中的S501、或图13中的S506、或图15中的S1501-S1502、或图17中的S1507;处理模块1802可以用于支持流量控制装置1800执行图5中的S502-S503、或图13中的S504-S505、或图15中的S1503-S1505、或图17中的S1506。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用集成的单元的情况下,图19示出了上述实施例中所涉及的流量控制装置1900的一种可能的结构示意图。该流量控制装置1900包括:处理器1901和收发器1902,该处理器1901用于对流量控制装置1900的动作进行控制管理,例如,处理器1901用于支持流量控制装置1900执行图5中的S502-S503、或图13中的S502-S505、或图15中的S1503-S1505、或图17中的S1506,和/或用于本文所描述的技术的其它过程。该收发器1902用于支持流量控制装置1900执行图5中的S501、或图13中的S506、或图15中的S1501-S1502、或图17中的S1507。可选的,上述流量控制装置1900还可以包括存储器1903,该存储器1903用于存储流量控制装置1900执行上文所提供的任一流量控制方法所对应的程序代码和数据。该存储器1903可以为只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。
结合本申请公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(Random Access Memory,RAM)、闪存、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(ElectricallyEPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请的保护范围之内。
Claims (44)
1.一种流量控制方法,其特征在于,所述方法应用于第一设备,所述第一设备包括至少八个用于存储报文的缓存队列,所述方法包括:
第一设备接收第二设备发送的第一报文,所述第一报文携带第一字段和第二字段,所述第一字段携带第一优先级,所述第二字段携带第二优先级;
所述第一设备根据所述第一报文的第一优先级进行流量控制;
所述第一设备根据所述第一报文的第二优先级对所述第一报文进行队列调度。
2.根据权利要求1所述的方法,其特征在于,所述第一设备根据所述第一报文的第一优先级进行流量控制,包括:
根据所述第一报文的第一优先级,所述第一设备向所述第二设备发送流控信息,所述流控信息中携带所述第一优先级,所述流控信息用于指示所述第二设备根据所述流控信息进行流量控制。
3.根据权利要求2所述的方法,其特征在于,所述流控信息包括基于优先级的流控PFC信息,所述PFC信息用于指示所述第二设备的第一端口根据所述第一优先级,对所述第一优先级指示的优先级队列中的报文进行流量控制。
4.根据权利要求3所述的方法,其特征在于,所述PFC信息包括PFC帧,所述PFC帧用于指示所述第二设备的第一端口暂时停止向所述第一设备发送所述第一优先级指示的优先级队列中的报文。
5.根据权利要求3或4所述的方法,其特征在于,所述PFC信息包括PFC帧,所述PFC帧用于指示所述第二设备的第一端口开始向所述第一设备发送所述第一优先级指示的优先级队列中的报文。
6.根据权利要求4所述的方法,其特征在于,所述PFC帧中还携带第一时长,所述第一时长用于指示所述第二设备的第一端口在接收所述PFC帧后,等待第一时长,开始向所述第一设备发送所述第一优先级指示的优先级队列中的报文。
7.根据权利要求2所述的方法,其特征在于,所述流控信息包括基于信用的流控Credit信息,所述Credit信息用于指示所述第二设备根据所述第一优先级对应的第一信用值,更新所述第一优先级指示的优先级队列对应的信用值。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述方法还包括:
所述第一设备将所述第一报文的第一优先级的值重置为所述第二优先级的值。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
所述第一设备将所述第一报文的第二优先级的值重置为与所述第二优先级的值不同的值。
10.根据权利要求8或9所述的方法,其特征在于,所述方法还包括:
所述第一设备向第三设备发送所述第一报文。
11.根据权利要求1-10任一项所述的方法,其特征在于,若所述第一报文为网络协议IP数据报文,所述第一字段为优先顺序Precedence字段,所述第二字段为延迟吞吐量可靠性DTR字段;或者,所述第一字段为延迟吞吐量可靠性DTR字段,所述第二字段为优先顺序Precedence字段。
12.根据权利要求1-10任一项所述的方法,其特征在于,若所述第一报文为以太数据报文,所述第一字段为第一虚拟局域网标识VLAN Tag中的优先级PRI字段,所述第二字段为第二虚拟局域网标识VLAN Tag中的优先级PRI字段。
13.一种流量控制方法,其特征在于,所述方法应用于第一设备,所述第一设备包括至少八个用于存储报文的缓存队列,所述方法包括:
第一设备接收第二设备发送的第一报文,所述第一报文携带第一字段,所述第一字段携带第一优先级;
所述第一设备接收控制器发送的映射表,所述映射表包括报文的标识信息与第二优先级的对应关系;
所述第一设备查询所述映射表确定所述第一报文对应的第二优先级;
所述第一设备根据所述第一报文的第一优先级进行流量控制;
所述第一设备根据所述第一报文的第二优先级对所述第一报文进行队列调度。
14.根据权利要求13所述的方法,其特征在于,所述第一设备根据所述第一报文的第一优先级进行流量控制,包括:
根据所述第一报文的第一优先级,所述第一设备向所述第二设备发送流控信息,所述流控信息中携带所述第一优先级,所述流控信息用于指示所述第二设备根据所述流控信息进行流量控制。
15.根据权利要求14所述的方法,其特征在于,所述流控信息包括基于优先级的流控PFC信息,所述PFC信息用于指示所述第二设备的第一端口根据所述第一优先级,对所述第一优先级指示的优先级队列中的报文进行流量控制。
16.根据权利要求15所述的方法,其特征在于,所述PFC信息包括PFC帧,所述PFC帧用于指示所述第二设备的第一端口暂时停止向所述第一设备发送所述第一优先级指示的优先级队列中的报文。
17.根据权利要求15或16所述的方法,其特征在于,所述PFC信息包括PFC帧,所述PFC帧用于指示所述第二设备的第一端口开始向所述第一设备发送所述第一优先级指示的优先级队列中的报文。
18.根据权利要求16所述的方法,其特征在于,所述PFC帧中还携带第一时长,所述第一时长用于指示所述第二设备的第一端口在接收所述PFC帧后,等待第一时长,开始向所述第一设备发送所述第一优先级指示的优先级队列中的报文。
19.根据权利要求14所述的方法,其特征在于,所述流控信息包括基于信用的流控Credit信息,所述Credit信息用于指示所述第二设备的第一端口根据所述第一优先级对应的第一信用值,更新所述第一优先级指示的优先级队列对应的信用值。
20.根据权利要求13-19任一项所述的方法,其特征在于,所述方法还包括:
所述第一设备将所述第一报文的第一优先级的值重置为所述第二优先级的值。
21.根据权利要求20所述的方法,其特征在于,所述方法还包括:
所述第一设备向第三设备发送所述第一报文。
22.一种流量控制装置,其特征在于,所述装置包括:
至少八个用于存储报文的缓存队列;
收发模块,用于接收第二设备发送的第一报文,所述第一报文携带第一字段和第二字段,所述第一字段携带第一优先级,所述第二字段携带第二优先级;
处理模块,用于根据所述第一报文的第一优先级进行流量控制;
所述处理模块,还用于根据所述第一报文的第二优先级对所述第一报文进行队列调度。
23.根据权利要求22所述的装置,其特征在于,
所述处理模块,具体用于根据所述第一报文的第一优先级,通过所述收发模块向所述第二设备发送流控信息,所述流控信息中携带所述第一优先级,所述流控信息用于指示所述第二设备根据所述流控信息进行流量控制。
24.根据权利要求23所述的装置,其特征在于,所述流控信息包括基于优先级的流控PFC信息,所述PFC信息用于指示所述第二设备的第一端口根据所述第一优先级,对所述第一优先级指示的优先级队列中的报文进行流量控制。
25.根据权利要求24所述的装置,其特征在于,所述PFC信息包括PFC帧,所述PFC帧用于指示所述第二设备的第一端口暂时停止向所述收发模块发送所述第一优先级指示的优先级队列中的报文。
26.根据权利要求24或25所述的装置,其特征在于,所述PFC信息包括PFC帧,所述PFC帧用于指示所述第二设备的第一端口开始向所述收发模块发送所述第一优先级指示的优先级队列中的报文。
27.根据权利要求25所述的装置,其特征在于,所述PFC帧中还携带第一时长,所述第一时长用于指示所述第二设备的第一端口在接收所述PFC帧后,等待第一时长,开始向所述收发模块发送所述第一优先级指示的优先级队列中的报文。
28.根据权利要求23所述的装置,其特征在于,所述流控信息包括基于信用的流控Credit信息,所述Credit信息用于指示所述第二设备根据所述第一优先级对应的第一信用值,更新所述第一优先级指示的优先级队列对应的信用值。
29.根据权利要求22-28任一项所述的装置,其特征在于,
所述处理模块,还用于将所述第一报文的第一优先级的值重置为所述第二优先级的值。
30.根据权利要求29所述的装置,其特征在于,
所述处理模块,还用于将所述第一报文的第二优先级的值重置为与所述第二优先级的值不同的值。
31.根据权利要求29或30所述的装置,其特征在于,
所述收发模块,还用于向第三设备发送所述第一报文。
32.根据权利要求22-31任一项所述的装置,其特征在于,若所述第一报文为网络协议IP数据报文,所述第一字段为优先顺序Precedence字段,所述第二字段为延迟吞吐量可靠性DTR字段;或者,所述第一字段为延迟吞吐量可靠性DTR字段,所述第二字段为优先顺序Precedence字段。
33.根据权利要求22-31任一项所述的装置,其特征在于,若所述第一报文为以太数据报文,所述第一字段为第一虚拟局域网标识VLAN Tag中的优先级PRI字段,所述第二字段为第二虚拟局域网标识VLAN Tag中的优先级PRI字段。
34.一种流量控制装置,其特征在于,所述装置包括:
至少八个用于存储报文的缓存队列;
收发模块,用于接收第二设备发送的第一报文,所述第一报文携带第一字段,所述第一字段携带第一优先级;
所述收发模块,还用于接收控制器发送的映射表,所述映射表包括报文的标识信息与第二优先级的对应关系;
处理模块,用于查询所述映射表确定所述第一报文对应的第二优先级;
所述处理模块,还用于根据所述第一报文的第一优先级进行流量控制;
所述处理模块,还用于根据所述第一报文的第二优先级对所述第一报文进行队列调度。
35.根据权利要求34所述的装置,其特征在于,
所述处理模块,具体用于根据所述第一报文的第一优先级,通过所述收发模块向所述第二设备发送流控信息,所述流控信息中携带所述第一优先级,所述流控信息用于指示所述第二设备根据所述流控信息进行流量控制。
36.根据权利要求35所述的装置,其特征在于,所述流控信息包括基于优先级的流控PFC信息,所述PFC信息用于指示所述第二设备的第一端口根据所述第一优先级,对所述第一优先级指示的优先级队列中的报文进行流量控制。
37.根据权利要求36所述的装置,其特征在于,所述PFC信息包括PFC帧,所述PFC帧用于指示所述第二设备的第一端口暂时停止向所述收发模块发送所述第一优先级指示的优先级队列中的报文。
38.根据权利要求36或37所述的装置,其特征在于,所述PFC信息包括PFC帧,所述PFC帧用于指示所述第二设备的第一端口开始向所述收发模块发送所述第一优先级指示的优先级队列中的报文。
39.根据权利要求37所述的装置,其特征在于,所述PFC帧中还携带第一时长,所述第一时长用于指示所述第二设备的第一端口在接收所述PFC帧后,等待第一时长,开始向所述收发模块发送所述第一优先级指示的优先级队列中的报文。
40.根据权利要求35所述的装置,其特征在于,所述流控信息包括基于信用的流控Credit信息,所述Credit信息用于指示所述第二设备的第一端口根据所述第一优先级对应的第一信用值,更新所述第一优先级指示的优先级队列对应的信用值。
41.根据权利要求34-40任一项所述的装置,其特征在于,
所述处理模块,还用于将所述第一报文的第一优先级的值重置为所述第二优先级的值。
42.根据权利要求41所述的装置,其特征在于,
所述收发模块,还用于向第三设备发送所述第一报文。
43.一种计算机存储介质,所述计算机存储介质中存储有计算机程序代码,其特征在于,当所述计算机程序代码在处理器上运行时,使得所述处理器执行如权利要求1-21任一项所述的流量控制方法。
44.一种流量控制装置,其特征在于,所述流量控制装置包括:
收发器,用于收发信息,或者用于与其他网元通信;
存储器,用于存储计算机执行指令;
处理器,用于执行所述计算机执行指令实现如权利要求1-21任一项所述的流量控制方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910107858.0A CN111526095B (zh) | 2019-02-02 | 2019-02-02 | 一种流量控制方法和装置 |
PCT/CN2020/071537 WO2020156104A1 (zh) | 2019-02-02 | 2020-01-10 | 一种流量控制方法和装置 |
EP20749559.9A EP3742688A4 (en) | 2019-02-02 | 2020-01-10 | FLOW CONTROL APPARATUS AND PROCESS |
US17/021,478 US11290388B2 (en) | 2019-02-02 | 2020-09-15 | Flow control method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910107858.0A CN111526095B (zh) | 2019-02-02 | 2019-02-02 | 一种流量控制方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111526095A CN111526095A (zh) | 2020-08-11 |
CN111526095B true CN111526095B (zh) | 2023-12-08 |
Family
ID=71839948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910107858.0A Active CN111526095B (zh) | 2019-02-02 | 2019-02-02 | 一种流量控制方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11290388B2 (zh) |
EP (1) | EP3742688A4 (zh) |
CN (1) | CN111526095B (zh) |
WO (1) | WO2020156104A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11470010B2 (en) * | 2020-02-06 | 2022-10-11 | Mellanox Technologies, Ltd. | Head-of-queue blocking for multiple lossless queues |
JP7494494B2 (ja) * | 2020-03-09 | 2024-06-04 | オムロン株式会社 | 通信制御機器および通信制御機器の制御方法 |
CN112565087A (zh) * | 2020-11-23 | 2021-03-26 | 盛科网络(苏州)有限公司 | 一种pfc反压报文及其处理方法 |
CN113438182B (zh) * | 2021-03-30 | 2023-05-19 | 南京大学 | 一种基于信用的流量控制系统和流量控制方法 |
CN113965523A (zh) * | 2021-10-28 | 2022-01-21 | 锐捷网络股份有限公司 | 一种基于环路的pfc死锁的处理方法及装置 |
US11973696B2 (en) | 2022-01-31 | 2024-04-30 | Mellanox Technologies, Ltd. | Allocation of shared reserve memory to queues in a network device |
US11929934B2 (en) * | 2022-04-27 | 2024-03-12 | Mellanox Technologies, Ltd. | Reliable credit-based communication over long-haul links |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7525978B1 (en) * | 2005-04-15 | 2009-04-28 | Altera Corporation | Method and apparatus for scheduling in a packet buffering network |
CN103888379A (zh) * | 2013-12-03 | 2014-06-25 | 江苏达科信息科技有限公司 | 一种基于可信调度的改进队列调度算法 |
WO2016086385A1 (zh) * | 2014-12-04 | 2016-06-09 | 华为技术有限公司 | 一种拥塞控制的方法、设备和系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7533154B1 (en) * | 2004-02-04 | 2009-05-12 | Advanced Micro Devices, Inc. | Descriptor management systems and methods for transferring data of multiple priorities between a host and a network |
CN1859303A (zh) * | 2006-01-25 | 2006-11-08 | 华为技术有限公司 | 一种基于端口的动态流量控制方法 |
CN101505260A (zh) * | 2008-02-04 | 2009-08-12 | 华为技术有限公司 | 消息流量的控制方法、系统及装置 |
US9030935B2 (en) * | 2011-03-30 | 2015-05-12 | International Business Machines Corporation | Device and method for adjusting rate limits for transmission rates of data flows having a certain priority in a transmitter |
CN104092622B (zh) * | 2014-07-04 | 2018-01-09 | 新华三技术有限公司 | 一种报文处理方法和设备 |
WO2017199209A2 (en) * | 2016-05-18 | 2017-11-23 | Marvell Israel (M.I.S.L) Ltd. | Traffic management in a network switching system with remote physical ports |
CN108234343A (zh) * | 2016-12-14 | 2018-06-29 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于优先级的fc分级流量控制实现方法 |
-
2019
- 2019-02-02 CN CN201910107858.0A patent/CN111526095B/zh active Active
-
2020
- 2020-01-10 EP EP20749559.9A patent/EP3742688A4/en active Pending
- 2020-01-10 WO PCT/CN2020/071537 patent/WO2020156104A1/zh unknown
- 2020-09-15 US US17/021,478 patent/US11290388B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7525978B1 (en) * | 2005-04-15 | 2009-04-28 | Altera Corporation | Method and apparatus for scheduling in a packet buffering network |
CN103888379A (zh) * | 2013-12-03 | 2014-06-25 | 江苏达科信息科技有限公司 | 一种基于可信调度的改进队列调度算法 |
WO2016086385A1 (zh) * | 2014-12-04 | 2016-06-09 | 华为技术有限公司 | 一种拥塞控制的方法、设备和系统 |
Non-Patent Citations (1)
Title |
---|
Yuanwei Lu等.One More Queue is Enough: Minimizing Flow Completion Time with Explicit Priority Notification.IEEE INFOCOM 2017 - IEEE Conference on Computer Communications.2017,第Ⅰ-Ⅳ节. * |
Also Published As
Publication number | Publication date |
---|---|
US20210006502A1 (en) | 2021-01-07 |
US11290388B2 (en) | 2022-03-29 |
CN111526095A (zh) | 2020-08-11 |
WO2020156104A1 (zh) | 2020-08-06 |
EP3742688A1 (en) | 2020-11-25 |
EP3742688A4 (en) | 2021-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111526095B (zh) | 一种流量控制方法和装置 | |
US10601714B2 (en) | Adaptive flow prioritization | |
US7359321B1 (en) | Systems and methods for selectively performing explicit congestion notification | |
EP1720295B1 (en) | Dynamic sharing of a transaction queue | |
US7245586B2 (en) | Buffer management based on buffer sharing across ports and per-port minimum buffer guarantee | |
KR100875739B1 (ko) | Ip 네트워크 시스템에서의 패킷 버퍼 관리 장치 및 방법 | |
CN112585914B (zh) | 报文转发方法、装置以及电子设备 | |
JP5156332B2 (ja) | パケット転送装置 | |
EP3264698B1 (en) | Adaptive flow prioritization | |
US20060045009A1 (en) | Device and method for managing oversubsription in a network | |
WO2020192358A1 (zh) | 一种转发报文的方法和网络设备 | |
US6625159B1 (en) | Nonblocking and fair queuing switching method and shared memory packet switch | |
JP2000196628A (ja) | 輻輳管理方法及びシステム | |
CA2355473A1 (en) | Buffer management for support of quality-of-service guarantees and data flow control in data switching | |
US10050896B2 (en) | Management of an over-subscribed shared buffer | |
CN111108728B (zh) | 对报文进行处理方法及装置 | |
EP3008868B1 (en) | Multicast flow reordering scheme | |
US10728156B2 (en) | Scalable, low latency, deep buffered switch architecture | |
US7251242B2 (en) | Distributed transmission of traffic flows in communication networks | |
US7684422B1 (en) | Systems and methods for congestion control using random early drop at head of buffer | |
US7830797B1 (en) | Preserving packet order for data flows when applying traffic shapers | |
CN113225196A (zh) | 服务等级配置方法以及装置 | |
US7518996B2 (en) | Fast credit system | |
CN108989233B (zh) | 拥塞管理方法及装置 | |
CN110830380A (zh) | 确定报文出队的速率的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |