WO2023207461A1 - Congestion flow identification method and apparatus, device, and computer readable storage medium - Google Patents

Congestion flow identification method and apparatus, device, and computer readable storage medium Download PDF

Info

Publication number
WO2023207461A1
WO2023207461A1 PCT/CN2023/083873 CN2023083873W WO2023207461A1 WO 2023207461 A1 WO2023207461 A1 WO 2023207461A1 CN 2023083873 W CN2023083873 W CN 2023083873W WO 2023207461 A1 WO2023207461 A1 WO 2023207461A1
Authority
WO
WIPO (PCT)
Prior art keywords
congestion
queue
egress
flow
congested
Prior art date
Application number
PCT/CN2023/083873
Other languages
French (fr)
Chinese (zh)
Inventor
陈飞
吴涛
聂建强
吕云屏
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2023207461A1 publication Critical patent/WO2023207461A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion

Definitions

  • the present application relates to the field of communication technology, and in particular, to a congestion flow identification method, device, equipment and computer-readable storage medium.
  • a priority-based flow control (PFC) mechanism can be introduced in the data transmission process between network devices in the data center.
  • PFC priority-based flow control
  • the introduction of this mechanism usually This will cause head-of-line blocking (HOLB) in the entry queue of the current network device (which can also be called the receive queue or entry queue).
  • HOLB head-of-line blocking
  • CI congestion isolation
  • ECN explicit congestion notification
  • For congestion flows when a message flow is determined to be a congestion flow, the congestion flow is isolated to the local congestion queue, and a congestion control message including the identity of the congestion flow is generated, and then the congestion control message is sent to the current network.
  • the device's upstream network device instructs the upstream network device to isolate congested flows to congestion queues in the upstream network device.
  • the inventor of the present application found that the packet rate of non-congested flows flowing through the egress queue is usually greater than the rate threshold, or the number of ECN packets included in the non-congested flows cached in the egress queue may be greater than the preset number.
  • the above congestion isolation technology will misidentify non-congested flows as congested flows, thereby isolating non-congested flows into congested queues, seriously affecting the throughput and delay of non-congested flows.
  • This application provides a congestion flow identification method, device, equipment and computer-readable storage medium, which can accurately identify congested flows and non-congested flows, effectively solving the problem of misidentifying non-congested flows as congested flows in the existing technology. .
  • a congestion flow identification method is provided. The method is applied to a first network device. The method includes the following steps: detecting the status of the first ingress queue. The status of the first ingress queue is congestion or idle. If the status of the first ingress queue is detected, If an ingress queue is congested, the status of multiple egress queues is detected. The status of each egress queue in the multiple egress queues is idle, first state, or second state. The first state indicates that each egress queue is congested and each egress queue is congested. The congestion is the source of congestion in the first ingress queue. The second state indicates that each egress queue is congested and the congestion in each egress queue is not the source of congestion in the first ingress queue.
  • Multiple egress queues are used to forward the reports received by the first ingress queue. Packet flow, multiple egress queues are used for forwarding packet flows to interact with each other. are not the same. If it is detected that there are egress queues in the first state and idle egress queues in multiple egress queues, the packet flow forwarded by the egress queue in the first state will be determined as the first congestion flow, and the idle egress queue will be The packet flow forwarded by the queue is determined to be a non-congested flow.
  • a network device can actively detect the status (first status, third status) of the ingress queue and multiple egress queues corresponding to the ingress queue (referring to the egress queue in the network device used to forward the message flow received by the ingress queue).
  • two states or idle when it is detected that there are egress queues in the first state and idle egress queues in multiple egress queues, the packet flow forwarded by the egress queue in the first state is determined as the first congested flow, Determine the packet flow forwarded by the idle egress queue as a non-congested flow.
  • this solution can accurately identify congested flows and non-congested flows, greatly reducing the possibility of non-congested flows being misidentified as congested flows. Therefore, it can effectively solve the existing technology problem of misidentifying non-congested flows as congested flows. The problem.
  • the status of multiple egress queues can be detected in the following manner: detecting whether multiple egress queues are congested. If it is detected that there are congested egress queues and idle egress queues in multiple egress queues, Then it is detected whether the congestion of the congested egress queue is the source of the congestion of the first ingress queue.
  • the detection of whether the congestion of the congested egress queue is the source of the congestion of the first ingress queue can be implemented in the following manner: if it is detected that the bandwidth utilization of the congested egress queue is greater than the utilization threshold, then determine Congestion in the congested egress queue is the source of congestion in the first ingress queue; if it is detected that the bandwidth utilization is less than or equal to the utilization threshold, it is determined that congestion in the congested egress queue is not the source of congestion in the first ingress queue.
  • the detection of whether the congestion of the congested egress queue is the source of the congestion of the first ingress queue can be implemented in the following manner: if priority-based traffic sent by a downstream network device of the first network device is received If the frequency of control PFC messages is less than or equal to the frequency threshold, it is determined that congestion in the congested egress queue is the source of congestion in the first ingress queue. PFC messages are sent by the downstream network device when it detects congestion in the second ingress queue.
  • the second ingress queue It is the ingress queue in the downstream network device used to receive packet flows forwarded by the congested egress queue; if the frequency of receiving PFC messages sent by the downstream network device is greater than the frequency threshold, it is determined that the congested egress queue is not the first ingress queue. source of congestion.
  • the detection of whether the congestion of the congested egress queue is the source of the congestion of the first ingress queue can be implemented in the following manner: if the second congestion control sent by the downstream network device of the first network device is not received message, it is determined that the congestion of the congested egress queue is the source of the congestion of the first ingress queue.
  • the second congestion control message is used to instruct to isolate the second congested flow to the congestion queue in the first network device.
  • the second congested flow belongs to the congested egress.
  • the method described in the first aspect further includes the following steps: generating a first congestion control message and sending the first congestion control message to the upstream network device, where the first congestion control message carries the information of the first congestion flow. Identification, the first congestion control message is used to instruct to isolate the first congestion flow to the congestion queue in the upstream network device.
  • the first congestion control message also carries the status of multiple egress queues; after the preset time period, re-detect the first entry
  • the status of the queue and multiple egress queues based on the re-detected status of the first ingress queue and multiple egress queues, determines whether there is at least one congested flow in the message flow forwarded by the multiple egress queues, and generates a new flow based on the detection results.
  • the first congestion control message sends a new first congestion control message to the upstream network device;
  • the new first congestion control message carries the status of the re-detected multiple egress queues, and the new first congestion control message carries the status of the re-detected multiple egress queues.
  • a congestion control message is used to indicate, based on the re-detected status of multiple egress queues, to stop isolating the first congestion flow to the congestion queue in the upstream network device; if it is determined that the multiple egress queues are forwarded There is at least one congested flow in the packet flow, and the One less congestion flow does not include the first congestion flow.
  • the new first congestion control message carries the status of the re-detected multiple egress queues and the identity of the at least one congestion flow.
  • the new first congestion flow The congestion control message is used to indicate, based on the status of the re-detected multiple egress queues, to stop isolating the first congestion flow to the congestion queue in the upstream network device, and to instruct to isolate the at least one congestion flow to Congested queues in the upstream network device.
  • the network device can determine the congestion flow situation in the network device based on the re-detected status of the first ingress queue and the status of multiple egress queues. When the congestion flow status is different, the new flow generated
  • the first congestion control message may instruct the upstream network device to perform at least one or more congestion control operations, and has strong flexibility.
  • a congestion flow identification device is provided.
  • the device is applied to a first network device.
  • the device includes: a detection module for detecting the status of the first entry queue, where the status of the first entry queue is congestion or idle; the detection module , and is also used to detect the status of multiple egress queues if congestion of the first ingress queue is detected.
  • the status of each egress queue in the multiple egress queues is idle, first state or second state.
  • the first state represents each The egress queue is congested and the congestion of each egress queue is the source of the first ingress queue congestion.
  • the second state indicates that each egress queue is congested and the congestion of each egress queue is not the source of the first ingress queue congestion.
  • Multiple egress queues are used Forward the message flow received by the first entrance queue.
  • the message flows forwarded by the multiple egress queues are different from each other; the processing module is used to detect that there are egress queues in the first state and idle ones in the multiple egress queues.
  • the packet flow forwarded by the egress queue in the first state is determined as the first congested flow, and the packet flow forwarded by the idle egress queue is determined as the non-congested flow.
  • the detection module can detect the status of multiple egress queues in the following manner: detect whether multiple egress queues are congested. If it is detected that there are congested egress queues and idle egress queues in the multiple egress queues, For the egress queue, it is detected whether the congestion of the congested egress queue is the source of congestion in the first ingress queue.
  • the detection module can specifically detect whether the congestion of the congested egress queue is the source of the congestion of the first ingress queue in the following manner: if it is detected that the bandwidth utilization of the congested egress queue is greater than the utilization threshold , then it is determined that congestion in the congested egress queue is the source of congestion in the first ingress queue; if it is detected that the bandwidth utilization is less than or equal to the utilization threshold, it is determined that congestion in the congested egress queue is not the source of congestion in the first ingress queue.
  • the detection module can specifically detect whether the congestion of the congested egress queue is the source of congestion of the first ingress queue in the following manner: if a PFC packet sent by a downstream network device of the first network device is received, If the frequency of messages is less than or equal to the frequency threshold, it is determined that congestion in the congested egress queue is the source of congestion in the first ingress queue. PFC messages are sent by the downstream network device when it detects congestion in the second ingress queue.
  • the second ingress queue is the downstream network
  • the ingress queue in the device is used to receive packet flows forwarded by the congested egress queue; if the frequency of receiving PFC packets sent by the downstream network device is greater than the frequency threshold, it is determined that the congestion in the congested egress queue is not the source of congestion in the first ingress queue. .
  • the detection module can specifically detect whether the congestion of the congested egress queue is the source of the congestion of the first ingress queue in the following manner: if the third network device sent by the downstream network device of the first network device is not received, second congestion control message, it is determined that the congestion of the congested egress queue is the source of the congestion of the first ingress queue; the second congestion control message is used to instruct to isolate the second congestion flow to the congestion queue in the first network device; the second congestion flow belongs to The packet flow forwarded by the congested egress queue; if the second congestion control message sent by the downstream network device is received, it is determined that the congestion of the congested egress queue is not the source of the congestion of the first ingress queue.
  • the apparatus described in the second aspect further includes: a sending module, configured to generate a first congestion control message and send the first congestion control message to the upstream network device, where the first congestion control message carries the first congestion control message.
  • Identification of the congestion flow The first congestion control message is used to instruct the isolation of the first congestion flow to the congestion queue in the upstream network device.
  • the first congestion control message also carries the status of multiple egress queues;
  • the detection module is also used to After setting the duration, re-detect the status of the first ingress queue and multiple egress queues;
  • the processing module is also used to determine the message flow forwarded by the multiple egress queues based on the re-detected status of the first ingress queue and multiple egress queues. Whether there is at least one congested flow in the sending module, also use Generate a new first congestion control message based on the detection result, and send the new first congestion control message to the upstream network device;
  • the new first congestion control message carries the status of the re-detected multiple egress queues, and the new first congestion control message carries the status of the re-detected multiple egress queues.
  • a congestion control message is used to indicate, based on the re-detected status of multiple egress queues, to stop isolating the first congestion flow to the congestion queue in the upstream network device; if it is determined that the multiple egress queues are forwarded There is at least one congestion flow in the message flow, and the at least one congestion flow does not include the first congestion flow, and the new first congestion control message carries the status of the re-detected multiple egress queues and the An identifier of at least one congested flow, and the new first congestion control message is used to indicate, based on the status of the re-detected multiple egress queues, to stop isolating the first congested flow to congestion in the upstream network device. queue, and instructs to isolate the at least one congested flow to a congestion queue in the upstream network device.
  • a network device in a third aspect, includes a processor and a memory; the processor is configured to execute instructions stored in the memory, so that the network device implements the above-mentioned first aspect or any of the first aspects. Methods provided for possible implementations.
  • a fourth aspect provides a computer-readable storage medium that stores instructions, and the instructions are used to implement the method provided by the above-mentioned first aspect or any possible implementation of the first aspect.
  • a fifth aspect provides a computer program product, including a computer program that, when the computer program is read and executed by a computing device, causes the computing device to execute the above-mentioned first aspect or any possible implementation of the first aspect. provided method.
  • FIG. 1 is a schematic diagram of the PFC involved in this application.
  • Figure 2 is a schematic structural diagram of a network system involved in this application.
  • FIG. 3 is a schematic structural diagram of another network system involved in this application.
  • Figure 4 is a schematic flow chart of a congestion flow identification method provided by this application.
  • Figure 5 is a schematic diagram of a message flow transmitted between multiple network devices exemplarily shown in this application;
  • Figure 6 is a schematic diagram of another message flow between multiple network devices exemplarily shown in this application.
  • Figure 7 is a schematic structural diagram of a congestion flow identification device provided by this application.
  • Figure 8 is a schematic structural diagram of a network device provided by this application.
  • PFC Planar Component Interconnect
  • a queue that uses the PFC function can be called a lossless queue.
  • PFC message also called PFC backpressure notification, PFC backpressure message, etc.
  • Traffic is sent in queues, resulting in zero packet loss transmission.
  • an Ethernet link can be understood as a communication link between two ports for communication between two network devices.
  • Figure 1 shows an Ethernet link between network device A and network device B.
  • Eight virtual channels are created on the Ethernet link.
  • the eight virtual channels are Both ends of each virtual channel correspond to two lossless queues with the same priority: 1 egress queue and 1 ingress queue.
  • network device A When network device A transmits a packet flow to network device B, it can mark the priority of the packet flow, and then network device A and network device B send and receive packet flows through queues corresponding to the priorities, such as , if network device A marks the priority of the packet flow as level 1 before transmitting the packet flow to network device B, then network device A sends the packet flow to network device B through the egress queue 1 of level 1 priority, and the network Device B receives the packet flow through ingress queue 1 with level 1 priority.
  • network device A can also communicate with network device B through another port and another port of network device B, there can still be another Ethernet link between the two ports, and that other Ethernet link can also Corresponds to the 8 egress queues in network device A and the 8 ingress queues in network device B.
  • the ingress queue and egress queue are determined based on the transmission direction of the packet flow. Taking Figure 1 as an example, if the transmission direction of the packet flow is from network device A to network device B, then the The queue is the egress queue, and the queue in network device B is the ingress queue. Vice versa, the queue in network device A is the ingress queue, and the queue in network device B is the egress queue.
  • the ingress queue is congested or idle.
  • the network device can determine whether the ingress queue is congested based on the queue depth (also called cache length) of the ingress queue. Specifically, whether the entry queue is congested can be determined based on whether the queue depth (also called cache length) of the entry queue exceeds the single waterline (threshold X off ) of the PFC, or whether the queue depth of the entry queue exceeds the double waterline of the PFC. Waterline (threshold X off and threshold X on ) to determine whether the ingress queue is congested.
  • the network device takes the single waterline mechanism of PFC as the mechanism used by the network device to detect whether the ingress queue is congested as an example, if the network device detects that the queue depth of the ingress queue is greater than the threshold The queue is idle; taking the PFC dual waterline mechanism used by the network device to detect whether the ingress queue is congested as an example, if the network device detects that the queue depth of the inlet queue is greater than the threshold X off , it determines that the inlet queue is congested. The queue depth of is less than the threshold X on , then it is determined that the entry queue is idle. If the queue depth of the entry queue is detected to be between the threshold X off and the threshold If there is congestion, then it is determined that the inlet queue is congested this time; otherwise, it is determined that the inlet queue is idle.
  • the egress queue is congested or idle.
  • the network device can determine whether the egress queue is congested based on the queue depth of the egress queue. Specifically, whether the egress queue is congested can be determined based on whether the queue depth of the egress queue exceeds the double waterline of the ECN (threshold K max and threshold K min ). Further, if the network device detects that the queue depth of the egress queue exceeds the threshold K max , it determines that the egress queue is congested. If it detects that the queue depth of the egress queue is lower than the threshold K min , it determines that the egress queue is idle.
  • the queue depth is between the threshold K max and the threshold K min , and the last determination result can be maintained. That is, if the egress queue was determined to be congested when it was detected last time whether the interface queue was congested, it will also be determined that the egress queue is congested this time. Vice versa, Then it is determined that the egress queue is free. Optionally, you can also determine whether the egress queue is congested based on whether the length of time the message flow is buffered in the egress queue is greater than the preset time. If it is greater than the preset time, it is determined that the egress queue is congested. If it is less than or equal to the preset time, it is determined that the egress queue is congested. Idle, where the preset duration can be customized according to the actual situation.
  • ECN packets when a packet arrives at the egress queue of the network device, the network device will detect the queue depth of the egress queue, and then mark the packet with a certain probability based on the queue depth of the egress queue and the dual waterline mechanism of ECN.
  • the ECN of the message, and the message marked with ECN can be called an ECN message.
  • the probability of marking the packet is 100%.
  • the packet is marked.
  • the probability of a packet increases linearly with the queue depth.
  • the probability of marking a packet is 0.
  • HOLB refers to a sequence of messages (also called a packet) that causes the entire sequence of messages to be blocked because the first message is blocked.
  • An egress queue of a network device corresponds to a port line speed bandwidth.
  • the ratio of the bandwidth occupied by all messages cached in the egress queue to the egress port line speed bandwidth can be used as the Bandwidth utilization of the egress queue.
  • the port line speed bandwidth refers to the maximum amount of bytes that the corresponding outlet can handle per unit time, and can be used to characterize the forwarding capability of the corresponding outlet.
  • Queue A's congestion is the source of queue B's congestion. It can also be said that queue A is the root congestion point of queue B, which means that queue A is the first to be congested, and queue A's congestion causes queue B's congestion. In this application, if a queue is congested first, the message flow transmitted by the queue is called a congestion flow.
  • the device isolates the congested flow into the congestion queue in the device, which can also be referred to as isolating the congested flow by the device. This means that the device reduces the priority of subsequent packets of the congested flow, and then uses the reduced priority level.
  • the queue receives or sends subsequent packets of the congestion flow.
  • the queue with the reduced priority level is the congestion queue in the device.
  • This application relates to network systems that introduce the PFC mechanism, such as data centers, campus networking, campus networking, etc. that introduce the PFC mechanism.
  • the network system can be a system that adopts a network architecture such as CLOS architecture, Mesh architecture, or Torus architecture. This application is No specific limitation is made. For the convenience of description, only the CLOS architecture network system is used as an example for description below.
  • Figures 2 and 3 are schematic structural diagrams of two CLOS architecture network systems exemplarily shown in this application.
  • the network system 200 includes a server 210, a top of rack (TOR) switch 220, and a SPINE switch 230.
  • TOR top of rack
  • the server 210 may be a server used to provide various services (such as video playback service or search service, etc.). Multiple servers 210 can communicate with each other through various types of switches shown in Figure 2 (such as TOR switch 220, SPINE switch 230).
  • the TOR switch 220 can be disposed on the link between the server 210 and the SPINE switch 230.
  • the uplink port of the TOR switch 220 is used to connect to the downlink port of the SPINE switch 230, and the downlink port of the TOR switch 220 is used to connect to the server 210.
  • Each TOR switch 220 can be connected to multiple SPINE switches 230 through multiple uplink ports.
  • Each server 210 can be connected to the TOR switch 220 through at least one network card.
  • the network system 300 includes a server 310 , a TOR switch 320 , an aggregation (AGG) switch 330 , and a SPINE switch 340 .
  • AAG aggregation
  • Multiple servers 310 can communicate with each other through various types of switches shown in Figure 3 (such as TOR switch 320, AGG switch 330, SPINE switch 340).
  • the TOR switch 320 can be disposed on the link between the server 310 and the AGG switch 330.
  • the uplink port of the TOR switch 320 is used to connect to the downlink port of the AGG switch 330, and the downlink port of the TOR switch 320 is used to connect to the server 310.
  • Each TOR switch 320 can be connected to multiple AGG switches 330 through multiple uplink ports.
  • Each server 310 can be connected to the TOR switch 320 through at least one network card.
  • the AGG switch 330 can be set on the link between the TOR switch 320 and the SPINE switch 340.
  • the uplink port of the AGG switch 330 is used to connect to the downlink port of the SPINE switch 340.
  • Each AGG switch 330 can communicate with multiple uplink ports through multiple uplink ports.
  • a SPINE switch 340 is connected.
  • network system 200 shown in FIG. 2 and the network system 300 shown in FIG. 3 are only examples and should not be understood as limiting the present application.
  • congestion isolation technology is, network equipment When HOLB occurs in the ingress queue, it is based on whether the packet rate of each packet flow flowing through the egress queue corresponding to the ingress queue is greater than the rate threshold, or based on whether the number of ECN packets included in each packet flow cached in the egress queue is is greater than the preset number, determine whether a message flow is a congested flow.
  • the upstream network device may be a device that sends the congestion flow to the current network device, such as a network device directly or indirectly connected to the current network device, or a source device of the congestion flow (the server 210 shown in Figure 2).
  • ingress queue 1 corresponds to egress queue 2
  • packet flow 1 and packet flow 2 are transmitted from ingress queue 1 to egress queue 2.
  • HOLB occurs in ingress queue 1
  • packet flow 1 is actually a congested flow
  • packet flow 2 is actually a congested flow. It is actually a non-congested flow, but the packet rate of packet flow 1 and the packet rate of packet flow 2 are both greater than the rate threshold, then the above congestion isolation technology will mistakenly identify packet flow 2 as a congested flow.
  • the above congestion isolation technology has the problem of misidentifying non-congested flows as congested flows. It can be understood that if a non-congested flow is mistakenly identified as a congested flow, the above congestion isolation technology will isolate the non-congested flow, which will seriously affect the throughput and delay of the non-congested flow.
  • this application provides a congestion flow identification method, device and equipment.
  • the first network device can be the TOR switch 220, the SPINE switch 230 shown in Figure 2, or the AGG switch 330 shown in Figure 3.
  • the network device responsible for forwarding the packet flow in the network system is a router Or a device such as a network card.
  • the first network device may also be a router or a network card, etc. This application does not specifically limit this.
  • Figure 4 is a schematic flow chart of a congestion flow identification method provided by this application. As shown in Figure 4, the method includes the following steps:
  • S401 Detect the status of the first entry queue.
  • the status of the first entry queue is congestion or idle.
  • the first entry queue may be any one of the entry queues included in the first network device.
  • the first network device may use the single waterline mechanism or the dual waterline mechanism of PFC to determine whether the first ingress queue is congested, which is not specifically limited here.
  • the process of network equipment using PFC's single waterline mechanism or dual waterline mechanism to determine whether the ingress queue is congested has been described above and will not be described again here.
  • S402 When congestion of the first ingress queue is detected, detect the status of multiple egress queues. Each egress queue in the multiple egress queues is idle, first state or second state. The first state indicates that each egress queue is congested and The congestion of the egress queue is the source of congestion of the first ingress queue. The second state indicates that each egress queue is congested and the congestion of the egress queue is not the source of congestion of the first ingress queue. Multiple egress queues are used to forward the reception of the first ingress queue. The packet flows used by multiple egress queues for forwarding are different from each other.
  • the above-mentioned multiple egress queues can forward at least one message flow respectively.
  • the priorities of the multiple egress queues and the priority of the first ingress queue may be the same or different, and are not specifically limited here.
  • the first network device may detect the status of multiple egress queues with reference to the following S4021 to S4023:
  • S4021 Detect whether multiple egress queues are congested. If it is detected that there are congested egress queues and idle egress queues in multiple egress queues, S4022 is executed. If it is detected that all egress queues are congested, S4023 is executed.
  • the first network device can use the dual waterline mechanism of ECN to determine whether the first egress queue is congested, or it can also determine whether the first egress queue is congested based on the message flow. Whether the first egress queue is congested is determined by whether the cached time in the first egress queue is greater than the preset time, which is not specifically limited here.
  • the network device uses the ECN's dual waterline mechanism or determines whether the egress queue is congested based on whether the packet flow is buffered in the egress queue for longer than the preset time. This has been described above and will not be repeated here.
  • S4022 Detect whether the congestion in the congested egress queue is the source of congestion in the first ingress queue. If it is detected that the congestion in the congested egress queue is the source of congestion in the first ingress queue, it is determined that the congested egress queue is in the first state, and vice versa. , then it is determined that the congested egress queue is in the second state.
  • the congested egress queues present in the multiple egress queues detected by the first network device include the first egress queue, and there are idle egress queues in the multiple egress queues.
  • the second ingress queue (referring to the first downstream network device (referring to the downstream network device used to receive the message flow forwarded by the first egress queue)) is used to receive the message flow forwarded by the first egress queue. (the ingress queue of the packet flow) is caused by congestion, then the first egress queue is not the first queue to be congested, and congestion in the first egress queue is not the source of congestion in the first ingress queue. On the contrary, the first egress queue is the first queue to be congested. , the first egress queue congestion is the source of the first ingress queue congestion. Therefore, the first network device can determine whether the first egress queue congestion is the source of the first ingress queue congestion by detecting whether the first egress queue congestion is caused by the second ingress queue congestion.
  • the first downstream network device will send a PFC message to the first network device to notify the first network device to suspend sending messages to the first downstream network device through the first egress queue.
  • the bandwidth utilization of the first egress queue is usually low, or even 0.
  • the second ingress queue is idle, the first downstream network device will not send messages to the first network device.
  • the first network device will continuously send packets to the first downstream network device through the first egress queue when it does not receive the PFC packet. At this time, the bandwidth utilization of the first egress queue is usually relatively high. , even 100%.
  • the first network device can determine whether the congestion of the first egress queue is caused by the congestion of the second ingress queue by detecting whether the bandwidth utilization of the first egress queue is greater than the utilization threshold, thereby determining whether the congestion of the first ingress queue is caused by the congestion of the first ingress queue. Source of ingress queue congestion.
  • the first network device detects that the bandwidth utilization of the first egress queue is less than or equal to the utilization threshold, it determines that the congestion of the first egress queue is caused by the congestion of the second ingress queue, thereby determining that the congestion of the first egress queue is not caused by the first egress queue congestion.
  • the source of the congestion in the ingress queue On the contrary, it is determined that the congestion in the first egress queue is not caused by the congestion in the second ingress queue, thereby determining that the congestion in the first egress queue is the source of the congestion in the first ingress queue.
  • the utilization threshold can be customized according to the actual situation, such as 90%, 95%, etc. This application does not specifically limit this.
  • the congestion level of the second ingress queue is serious, the frequency of the first downstream network device sending PFC packets to the first network device will be relatively high. If the congestion level of the second ingress queue is light, or even close to idle, then The frequency of PFC packets sent by the first downstream network device to the first network device will be relatively low. When the congestion level of the second ingress queue is severe, congestion in the second ingress queue will usually lead to congestion in the first egress queue. When the degree of congestion is light, congestion in the second ingress queue usually does not cause congestion in the first egress queue.
  • the first network device can determine whether the first egress queue congestion is caused by the second ingress queue congestion by detecting whether the frequency with which it receives PFC messages sent by the first downstream network device is greater than the frequency threshold, thereby determining whether the first ingress queue congestion is caused by the second ingress queue congestion. Whether queue congestion is the source of congestion in the first entry queue.
  • the first network device detects that the frequency with which it receives PFC messages is greater than the frequency threshold, it determines that congestion in the first egress queue is caused by congestion in the second ingress queue, thereby determining that congestion in the first egress queue is not congestion in the first ingress queue. On the contrary, it is determined that the congestion in the first egress queue is not caused by the congestion in the second ingress queue, and thus it is determined that the congestion in the first egress queue is the source of the congestion in the first inlet queue.
  • the frequency threshold can be customized according to actual conditions, such as 10 times/second, 20 times/second, etc. This application does not specifically limit this.
  • the first downstream network device will also execute the embodiment shown in Figure 4. If the first downstream network device executes the embodiment shown in Figure 4, The second congested flow is identified from the packet flows forwarded by the plurality of second egress queues corresponding to the second ingress queue. Since the packet flows forwarded by the plurality of second egress queues are sent by the first network device through the first egress queue, Then the first downstream network device sends a second congestion control message to the first network device for instructing isolation processing of the second congestion flow.
  • the process by which the first downstream network device generates the second congestion control message is similar to the process by which the first network device generates the first congestion control message described below. For details, please refer to the relevant description below, which will not be described again here.
  • the first network device receives the second congestion control message sent by the first downstream network device for instructing to isolate the second congestion flow, it means that the first downstream network device has determined that the second ingress queue is congested.
  • congestion in the first egress queue is usually caused by congestion in the second ingress queue.
  • the first downstream network device will not execute the embodiment shown in Figure 4 to identify the congested flow from the message flows forwarded by the multiple second egress queues, and the first downstream network device will not generate a user request.
  • a second congestion control message indicating isolation processing of the second congestion flow is sent to the first network device.
  • the first network device can determine whether the congestion of the first egress queue is caused by the congestion of the second ingress queue by whether it receives the second congestion control message sent by the first downstream network device, thereby determining whether the congestion of the first ingress queue is caused by the congestion of the second ingress queue.
  • a source of ingress queue congestion is a source of ingress queue congestion.
  • the first network device receives the second congestion control message sent by the first downstream network device, it determines that the congestion of the first egress queue is caused by the congestion of the second ingress queue, thereby determining that the congestion of the first egress queue is not caused by the first ingress queue. Otherwise, it is determined that the congestion in the first egress queue is not caused by the congestion in the second ingress queue, and thus it is determined that the congestion in the first egress queue is the source of the congestion in the first ingress queue.
  • the above-mentioned implementation methods for detecting the status of multiple egress queues are only examples.
  • the status of multiple egress queues can also be detected through other methods, such as through the above-mentioned detection methods.
  • At least two combinations of the ways to realize the status of multiple egress queues are used to detect the status of multiple egress queues, which is not specifically limited in this application.
  • congestion of an ingress queue in a network device is usually accompanied by congestion in part or all of multiple egress queues corresponding to the ingress queue in the network device. There is basically no situation where all multiple egress queues are idle. Therefore, In this application, the situation where multiple egress queues are all idle is ignored.
  • S4023 is only an example.
  • the first network device detects that multiple egress queues are all congested, it can detect the status of multiple egress queues again or multiple times to determine whether the multiple egress queues are indeed evenly loaded. congestion.
  • S403 If it is detected that there is an egress queue in the first state and an idle egress queue in multiple egress queues, determine the message flow forwarded by the egress queue in the first state as the first congestion flow, and the idle egress queue The forwarded packet flow is determined to be a non-congested flow.
  • the first network device when it detects that there are egress queues in the first state and idle egress queues in the multiple egress queues, it may also detect that there are egress queues in the second state in the multiple egress queues. If After detecting that an egress queue in the second state exists in multiple egress queues, the first network device can temporarily determine the message flow forwarded by the egress queue in the second state as a non-congested flow, and subsequently determine whether the packet flow forwarded by the egress queue in the second state is received by the second downstream network.
  • the second downstream network device will also execute the embodiment shown in Figure 4. If the second downstream network device executes the embodiment shown in Figure 4, from If the third congestion flow is identified in the packet flow forwarded by the egress queue in the second state, the second downstream network device will send a third congestion control message to the first network device to instruct the isolation processing of the third congestion flow. .
  • the process by which the second downstream network device generates the third congestion control message is similar to the process by which the first network device generates the first congestion control message described below. For details, please refer to the relevant description below, which will not be described again here.
  • the first network device may determine the third congestion flow from the packet flow forwarded by the egress queue in the second state based on the third congestion control message. If the first network device does not receive the third congestion control message sent by the second downstream network device, indicating that the second downstream network device has not determined the third congestion flow from the message flow forwarded by the egress queue in the second state, then the A network device always determines the packet flow forwarded by the egress queue in the second state as a non-congested flow.
  • the first network device may also determine that HOLB has occurred in the first ingress queue.
  • S404 is only an example.
  • the first network device detects that there is no egress queue in the first state or there is no idle egress queue in the multiple egress queues, it may not delete the multiple egress queues.
  • the forwarded packet flows are processed.
  • the packet flows forwarded by multiple egress queues are all non-congested flows; or, in order to prevent congested flows from being misidentified as non-congested flows, the status of multiple egress queues can be detected again or multiple times.
  • the first network device may receive an instruction sent by the third downstream network device based on whether The fourth congestion control message is used for isolation processing of the four congested flows to determine whether the message flow forwarded by the target egress queue in the multiple egress queues is a congested flow.
  • the third downstream network device refers to the downstream network device used to receive the message flow forwarded by the target egress queue.
  • the process by which the third downstream network device generates the fourth congestion control message is similar to the process by which the first network device generates the first congestion control message described below. For details, reference may be made to the relevant description below, which will not be described again here.
  • the first network device may generate a first congestion control message and send it to the upstream network device (referring to the device that sends the first congestion flow to the first network device, such as A network device directly connected to the first network device and forwarding the first congestion flow to the first network device, a source device of the first congestion flow, etc.) sends a first congestion control message.
  • the first congestion control message may carry the first congestion flow.
  • the first congestion control message is used to instruct the upstream network device to isolate the first congestion flow.
  • the upstream network device may determine the first congestion flow based on the identifier of the first congestion flow, and then perform isolation processing on the first congestion flow.
  • the identifier of the first congestion flow is used by the upstream network device to determine the only message flow corresponding to the identifier.
  • the identifier of the first congestion flow can be the five-tuple information of the first congestion flow (referring to the source IP address, destination IP address, source port number, destination port number, transport layer protocol), or triplet information, or other types of information or information combinations, which are not specifically limited here.
  • the first congestion control message generated by the first network device can also carry the status of multiple egress queues.
  • the status of the multiple egress queues can be in the order of the ports where the multiple egress queues are located. carried in the first congestion control message; if the first congestion flow determined by the first network device includes at least two egress teams in the first state
  • the first network device can also carry the identifiers of the packet flows forwarded by at least two egress queues in the first state in the first congestion control message in the order of the ports where the multiple egress queues are located.
  • the upstream network device can learn the status of the multiple egress queues in the first network device based on the first congestion control message, and furthermore, it can learn the sequence of the message flow forwarded by the egress queue among the multiple egress queues. Congested flow.
  • different character strings can be used to represent different states of the egress queues. For example, binary 1 is used to indicate that the egress queue is in the first state, and binary 1 is used to indicate that the egress queue is in the first state. 0 indicates that the egress queue is in a non-first state. For example, 00A is used to indicate that the egress queue is in the first state, 00B is used to indicate that the egress queue is in the second state, and 00C is used to indicate that the egress queue is idle. This application does not carry the status of the egress queue in the third state.
  • a congestion control message method is specifically defined.
  • a binary 1 is used to indicate that the egress queue is in the first state
  • a binary 0 is used to indicate that the egress queue is in a non-first state.
  • the status of multiple egress queues is carried in the first state.
  • the congestion control message is described as an example.
  • the first network device is network device B in Figure 5
  • the first ingress queue is ingress queue B12 in Figure 5
  • the multiple egress queues are egress queues B32 and B in Figure 5.
  • the order of egress queue B42, egress queue B32 and port B4 where egress queue B42 is located is: B3, B4, egress queue B32 is in the first state, egress queue B42 is idle, and the first congestion flow identified by network device B is Packet flow 1 forwarded by egress queue B32, the identifier of message flow 1 is ID1, then the status of multiple egress queues and the identifier of the first congestion flow carried in the first congestion control message are: 10ID1, where 1 of 10 It means that the egress queue B32 is in the first state, and 0 in 10 means that the egress queue B42 is in the non-first state.
  • the upstream network device may determine the first congestion flow based on the identifier of the first congestion flow carried in the first congestion control message, and then perform isolation processing on the first congestion flow.
  • network device A receives After the first congestion control message, based on the "10ID1" carried in the first congestion control message, it can be determined that the states of the two egress queues of network device B correspond to the first state, the non-first state, and the egress determined to be the first state.
  • the identifier of the first congested flow forwarded by the queue is ID1.
  • network device A can determine from the message flow 1 and the message flow 2 that the message flow 1 identified as ID1 is the first congested flow, and then isolate the message flow 1.
  • the first network device can periodically execute the embodiment shown in Figure 4 to re-detect the status of the first ingress queue and the egress queue, and based on the re-detected first ingress queue and multiple egresses
  • the status of the queue determines whether there is at least one congested flow among the message flows forwarded by multiple egress queues, generates a new first congestion control message based on the detection result, and then sends the new first congestion control message to the upstream network device.
  • the new first congestion control message generated carries the re-detected status of the multiple egress queues, and the new The first congestion control message is used to instruct to stop isolation processing of the first congestion flow based on the re-detected status of multiple egress queues.
  • the generated new first congestion control message carries the re-detected information of the multiple egress queues. status and the identification of the at least one congested flow, the new first congestion control message is used to indicate the status of multiple egress queues based on re-detection, stop, isolate the first congested flow, and indicate that the at least one congested flow The stream is isolated.
  • the generated new first congestion control message carries the re-detected status of the multiple egress queues. and the identification of the congestion flow other than the first congestion flow in the at least one congestion flow, and the new first congestion control message is used to indicate to continue to control the third congestion flow.
  • the generated new first congestion control message may also carry the identifier of the first congestion flow.
  • the upstream network device is network device A in Figure 5
  • the first ingress queue is ingress queue B12 in Figure 5
  • the multiple egress queues are egresses in Figure 5
  • Queue B32 and egress queue B42 the order of port B3 and port B4 where egress queue B32 and egress queue B42 are located is: B3, B4, egress queue B32 is in the first state, egress queue B42 is idle, and the first congested flow is egress queue B32
  • the identifier of message flow 1 is ID1 as an example.
  • Network device C can determine message flow 1. There is no congestion flow in packet flow 2, and a new first congestion control message is generated. The status of the egress queue B32 and egress queue B42 carried by the new first congestion control message is: 00.
  • network device A After receiving the new first congestion control message, network device A can determine the two egresses of network device B based on the status "00" of the re-detected egress queue B32 and egress queue B42 carried in the new first congestion control message.
  • the status of the queue is: non-first status, non-first status, and then compare the status "00" carried in the new first congestion control message with the status "10" carried in the last received first congestion control message. By comparison, it can be determined that the state of the first-ordered egress queue in network device B has changed, that is, from the first state to a non-first state.
  • network device A can learn that the identifier of the packet flow forwarded by the first-ordered egress queue in network device B is ID1. Therefore, network device A can obtain the ID1 from packet flow 1 and In packet flow 2, determine that packet flow 1 identified as ID1 is the first congested flow, and then stop isolating packet flow 1.
  • each first congestion control message generated by the first network device carries the identifier of the message flow forwarded by multiple egress queues. Specifically, the identifier of the message flow forwarded by multiple egress queues.
  • the first congestion control message may be carried in the order of the ports where the multiple egress queues are located.
  • the upstream network device can learn the status of multiple egress queues in the first network device based on each first congestion control message. Furthermore, it can learn the message flow sent by the egress queue ranked among the multiple egress queues. Congested flow and the identifier of the flow.
  • each first congestion control message carries the identifier of the message flow forwarded by multiple egress queues
  • the upstream network device after receiving each first congestion control message, based on each first congestion control message The message can determine which identified packet flow is a congested flow and which identified packet flow is a non-congested flow, and then perform isolation processing or suspend isolation processing accordingly, without referring to the first congestion control message received last time.
  • the number of congestion queues of the upstream network device may be more than one.
  • the congestion queue of the upstream network device may include the congestion queue in the port of the upstream network device corresponding to the port where the first entry queue is located, and others. Congestion queue in price port.
  • network device A can communicate with port B1 of network device B through either of these two ports.
  • the first entry queue is the entry queue B12 in port B1
  • the congestion queue in network device A can include the entry queue in port A3.
  • network device A including the congestion queue in equal-cost port A3 and the congestion queue in port A4, assuming that the first congestion flow is packet flow 1, network device A isolates packet flow 1 based on the first congestion control message
  • FIG. 5 and FIG. 6 are examples to further describe the embodiment shown in FIG. 4 .
  • Figures 5 and 6 are schematic diagrams of message flows between multiple network devices exemplarily shown in this application.
  • network device B can be regarded as the above-mentioned first network device
  • network device B can be regarded as the above-mentioned first network device.
  • the ingress queue B12 in B is regarded as the above-mentioned first ingress queue
  • the egress queue B32 and egress queue B42 in network device B are regarded as the above-mentioned multiple egress queues.
  • Message flow 1 is the message flow forwarded by egress queue B32.
  • Message flow 2 is the message flow forwarded by egress queue B42.
  • Network device A is regarded as the upstream network device of network device B.
  • Network device C is regarded as the downstream network device of network device B.
  • Ingress queue C12 in network device C is regarded as Considered as the second entry queue.
  • Figure 5 the ingress queue B12 is congested, the egress queue B32 is congested, the egress queue B42 is idle, the ingress queue C12 is idle, and the bandwidth utilization rate of the egress queue B32 is 90%.
  • network device B When network device B executes S401 and S402 in the embodiment shown in Figure 4, it will detect that the ingress queue B12 is congested, the egress queue B32 is congested, the egress queue B42 is idle, and the bandwidth utilization rate of the egress queue B32 is 90%. Assume that the utilization rate is 90%. If the rate threshold is 80%, network device B can determine that the bandwidth utilization of egress queue B32 is greater than the utilization threshold, thereby determining that the congestion of egress queue B32 is the source of congestion of ingress queue B12, that is, determining that egress queue B32 is in the first state.
  • network device B will find that there is an egress queue B32 in the first state and an idle egress queue B42 in the egress queue B32 and egress queue B42. Therefore, network device B will execute S403 in the embodiment shown in Figure 4, and will Packet flow 1 forwarded by egress queue B32 is determined as a congested flow, and packet flow 2 forwarded by egress queue B42 is determined as a non-congested flow.
  • network device B can accurately identify message flow 1 as a congested flow, and accurately identify message flow 2 as a non-congested flow.
  • Figure 6 the ingress queue B12 is congested, the egress queue B32 is congested, the egress queue B42 is idle, the ingress queue C12 is congested, and the bandwidth utilization rate of the egress queue B32 is 5%.
  • network device B When network device B executes S401 and S402 in the embodiment shown in Figure 4, it will detect that the ingress queue B12 is congested, the egress queue B32 is congested, the egress queue B42 is idle, and the bandwidth utilization of the egress queue B32 is 5%. Assume that the utilization rate is 5%. If the rate threshold is 80%, network device B can determine that the bandwidth utilization of egress queue B32 is less than the utilization threshold, thereby determining that the congestion of egress queue B32 is not the source of congestion of ingress queue B12, that is, determining that egress queue B32 is in the second state.
  • network device B will find that there is no egress queue in the first state in egress queue B32 and egress queue B42. Therefore, network device B will execute S404 in the embodiment shown in Figure 4 to forward the report from egress queue B32. Packet flow 1 and packet flow 2 forwarded by egress queue B42 are determined to be non-congested flows.
  • network device B can determine whether message flow 1 or message flow 2 is congested based on whether it receives a congestion control message sent by network device C to instruct isolation processing of message flow 1/message flow 2. flow. Specifically, network device B receives the congestion control message sent by network device C for instructing isolation processing of message flow 1. Then, network device B can determine that message flow 1 is a congested flow based on the congestion control message. .
  • network device B can accurately identify whether message flow 1 and message flow 2 are congested flows by executing the embodiment shown in Figure 4.
  • a network device can detect the ingress queue and multiple egress queues corresponding to the ingress queue (referring to the network device used to forward the packets received by the ingress queue).
  • the state (first state, second state or idle) of the egress queue of the text flow).
  • the egress in the first state will be The packet flow forwarded by the queue is determined as the first congested flow, and the packet flow forwarded by the idle egress queue is determined as the non-congested flow.
  • the first state indicates that the egress queue is congested and the egress queue congestion is the source of the ingress queue congestion.
  • the second state indicates that the egress queue is congested and the egress queue is congested. Blocks are not the source of ingress queue congestion. It can be seen that this method can accurately identify congested flows and non-congested flows, greatly reducing the possibility of non-congested flows being misidentified as congested flows. Therefore, it can effectively solve the existing technology problem of misidentifying non-congested flows as congested flows. The problem.
  • sequence number of each step in the above embodiment does not mean the order of execution.
  • the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiment of the present application.
  • the congestion flow identification device provided by this application. It should be understood that the unit modules inside the congestion flow identification device can also be divided into multiple categories. Each module can be a software module, a hardware module, or a part of a software module. Some are hardware modules, which are not limited by this application. When the congestion flow identification device includes multiple unit modules, each module in the multiple unit modules can be deployed on the same network device or on different network devices, which is not specifically limited in this application.
  • FIG 7 is a schematic structural diagram of a congestion flow identification device 700 exemplarily shown in this application.
  • the device 700 includes: a detection module 710 and a processing module 720.
  • the functions of each module of the congestion flow identification device 700 are exemplarily introduced below. It should be understood that the functions of each module described in the following examples are only the functions that the congestion flow identification device 700 can have in some embodiments of this application, and this application does not limit the functions of each module.
  • the detection module 710 is used to detect the status of the first entry queue, and the status of the first entry queue is congestion or idle.
  • the detection module 710 is also configured to detect the status of multiple egress queues if congestion of the first ingress queue is detected.
  • the status of each egress queue in the multiple egress queues is idle, the first state, or the second state.
  • the first state Indicates that each egress queue is congested and the congestion of each egress queue is the source of congestion in the first ingress queue.
  • the second state indicates that each egress queue is congested and the congestion of each egress queue is not the source of congestion in the first ingress queue.
  • Multiple egresses The queue is used to forward the packet flow received by the first entry queue, and the multiple egress queues are used to forward different packet flows.
  • the processing module 720 is configured to determine the message flow forwarded by the egress queue in the first state as the first congestion flow if it is detected that there are egress queues in the first state and idle egress queues in the multiple egress queues. Packet flows forwarded by idle egress queues are determined to be non-congested flows.
  • the detection module 710 can detect the status of multiple egress queues in the following manner: detect whether multiple egress queues are congested. If it is detected that there are congested egress queues and idle egress queues in the multiple egress queues, of the egress queue, detect whether the congestion of the congested egress queue is the source of congestion of the first ingress queue.
  • the detection module 710 can specifically detect whether the congestion of the congested egress queue is the source of the congestion of the first ingress queue in the following manner: if it is detected that the bandwidth utilization of the congested egress queue is greater than the utilization rate threshold, it is determined that congestion in the congested egress queue is the source of congestion in the first ingress queue; if it is detected that the bandwidth utilization is less than or equal to the utilization threshold, it is determined that congestion in the congested egress queue is not the source of congestion in the first ingress queue.
  • the detection module 710 can detect whether the congestion of the congested egress queue is the source of the congestion of the first ingress queue in the following manner: if a PFC sent by a downstream network device of the first network device is received, If the frequency of the packets is less than or equal to the frequency threshold, it is determined that the congestion of the congested egress queue is the source of the congestion of the first ingress queue.
  • the PFC message is sent by the downstream network device when it detects the congestion of the second ingress queue.
  • the second ingress queue is downstream
  • the ingress queue in the network device is used to receive the packet flow forwarded by the congested egress queue; if the frequency of receiving PFC messages sent by the downstream network device is greater than the frequency threshold, it is determined that the congested egress queue is not congested by the first ingress queue. source.
  • the detection module 710 can specifically detect whether the congestion of the congested egress queue is the source of the congestion of the first ingress queue in the following manner: if no packet sent by the downstream network device of the first network device is received, The second congestion control message determines that the congestion of the congested egress queue is the source of the congestion of the first ingress queue. The second congestion control message is used to instruct to isolate the second congestion flow to the congestion queue in the first network device. The second congestion flow Message flow forwarded by the congested egress queue; if the second congestion control message sent by the downstream network device is received, the congested egress is determined Queue congestion is not the source of congestion in the first entry queue.
  • the apparatus 700 also includes: a sending module 730, configured to generate a first congestion control message and send the first congestion control message to the upstream network device. Carrying the identifier of the first congestion flow, the first congestion control message is used to instruct the isolation of the first congestion flow to the congestion queue in the upstream network device.
  • the first congestion control message also carries the status of multiple egress queues; the detection module 710 also The processing module 720 is configured to re-detect the status of the first entry queue and the multiple egress queues after a preset period of time; the processing module 720 is also configured to determine the multiple egress queues based on the re-detected status of the first entry queue and the multiple egress queues. Whether there is at least one congestion flow in the forwarded message flow; the sending module 730 is also configured to generate a new first congestion control message based on the detection result, and send the new first congestion control message to the upstream network device.
  • the new first congestion control message carries the re-detected status of the multiple egress queues, and the new first congestion control message is used to indicate based on Re-detect the status of multiple egress queues and stop isolating the first congested flow to the congestion queue in the upstream network device; if it is determined that there is at least one congested flow in the message flow forwarded by multiple egress queues, and at least one congested flow is not Including the first congestion flow, the new first congestion control message carries the status of the re-detected multiple egress queues and the identification of at least one congestion flow, and the new first congestion control message is used to indicate the status of the multiple egress queues based on re-detection. status, stops isolating the first congested flow to the congestion queue in the upstream network device, and instructs to isolate at least one conge
  • congestion flow identification device 700 for the specific implementation of various operations performed by the congestion flow identification device 700, reference can be made to the congestion flow identification method provided by the present application shown in the above-mentioned Figure 4. For the sake of simplicity of the description, details will not be described here.
  • the congestion flow identification device (device 700 shown in Figure 7) provided by this application can detect the status (first state, second state or idle) of the ingress queue and multiple egress queues corresponding to the ingress queue.
  • the packet flow forwarded by the egress queue in the first state is determined as the first congestion flow
  • the packet flow forwarded by the idle egress queue is determined as the first congestion flow.
  • the packet flow is determined to be a non-congested flow.
  • the first state indicates that the egress queue is congested and the egress queue congestion is the source of the ingress queue congestion.
  • the second state indicates that the egress queue is congested and the egress queue congestion is not the source of the ingress queue congestion. It can be seen that the device 700 can accurately identify congested flows and non-congested flows, greatly reducing the possibility of non-congested flows being misidentified as congested flows, and thus can effectively solve the problem of misidentifying non-congested flows as congested flows in the existing technology. flow problem.
  • Figure 8 is a schematic structural diagram of a network device 800 provided by this application.
  • the device 800 includes: a processor 810, a memory 820 and a communication interface 830.
  • the processor 810, the memory 820, and the communication interface 830 can be connected to each other through a bus 840.
  • the processor 810 can read the program code (including instructions) stored in the memory 820, and execute the program code stored in the memory 820, so that the network device 800 performs the congestion flow identification method provided by the present application shown in Figure 4, or causes the network device to 800 Deploy the congestion flow identification device 700.
  • the processor 810 can have a variety of specific implementation forms, such as a central processing unit (CPU for short), or a combination of CPU and hardware chips.
  • the above-mentioned hardware chip can be an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a combination thereof.
  • the above-mentioned PLD can be a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a general array logic (GAL), or any combination thereof.
  • the processor 810 executes various types of digital storage instructions, such as software or firmware programs stored in the memory 820, which enable the network device 800 to provide a variety of services.
  • Memory 820 is used to store program code and is controlled by processor 810 for execution.
  • the program code may include one or more software modules, and the one or more software modules may be the software modules provided in the embodiment shown in Figure 7, such as the detection module. Block 710, processing module 720 and sending module 730.
  • the memory 820 may include volatile memory (volatile memory), such as random access memory (RAM); the memory 820 may also include non-volatile memory (non-volatile memory), such as read-only memory (read- Only memory (ROM), flash memory (flash memory), hard disk drive (HDD) or solid-state drive (SSD); the memory 820 may also include a combination of the above types.
  • volatile memory volatile memory
  • RAM random access memory
  • non-volatile memory non-volatile memory
  • ROM read-only memory
  • flash memory flash memory
  • HDD hard disk drive
  • SSD solid-state drive
  • the communication interface 830 may be a wired interface (such as an Ethernet interface, a fiber optic interface, other types of interfaces (such as an infiniBand interface)) or a wireless interface (such as a cellular network interface or using a wireless LAN interface) for communicating with other network equipment or devices. communication.
  • the communication interface 830 may adopt a protocol family based on transmission control protocol/internet protocol (TCP/IP), for example, remote function call (RFC) protocol, simple object access protocol (simple object access protocol) access protocol (SOAP) protocol, simple network management protocol (SNMP) protocol, common object request broker architecture (CORBA) protocol, and distributed protocols, etc.
  • TCP/IP transmission control protocol/internet protocol
  • RCF remote function call
  • SOAP simple object access protocol
  • SNMP simple network management protocol
  • CORBA common object request broker architecture
  • the bus 840 can be a peripheral component interconnect express (PCIe) bus, an extended industry standard architecture (EISA) bus, a unified bus (Ubus or UB), a computer fast link (compute express link (CXL), cache coherent interconnect for accelerators (CCIX), etc.
  • PCIe peripheral component interconnect express
  • EISA extended industry standard architecture
  • Ubus or UB unified bus
  • CXL computer fast link
  • CCIX cache coherent interconnect for accelerators
  • the bus 840 can be divided into an address bus, a data bus, a control bus, etc.
  • the bus 840 may also include a power bus, a control bus, a status signal bus, etc.
  • the various buses are labeled bus 840 in the figure. For ease of presentation, only one thick line is used in Figure 8, but it does not mean that there is only one bus or one type of bus.
  • the above-mentioned network device 800 is used to execute the congestion flow identification method provided by the present application as shown in Figure 4. For details of its implementation process, please refer to the above-mentioned method embodiments, which will not be described again here. It should be understood that the network device 800 is only an example provided by the embodiment of the present application, and the network device 800 may have more or fewer components than those shown in FIG. 8 , two or more components may be combined, or Can be implemented with different configurations of components.
  • the present application also provides a computer-readable storage medium.
  • the computer-readable storage medium stores instructions. When the instructions are executed, some or all of the steps of the congestion flow identification method recorded in the above embodiments can be implemented.
  • This application also provides a computer program product.
  • the computer program product is read and executed by a computer, some or all of the steps of the congestion flow identification method recorded in the above method embodiments can be implemented.
  • each embodiment is described with its own emphasis. For parts that are not described in detail in a certain embodiment, please refer to the relevant descriptions of other embodiments.
  • it may be implemented in whole or in part by software, hardware, or any combination thereof.
  • the computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the processes or functions described in the embodiments of the present application are generated in whole or in part.
  • the computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device.
  • the computer instructions may be stored in or transmitted from one computer-readable storage medium to another, e.g., the computer instructions may be transferred from a website, computer, server, or data center Transmission to another website, computer, server or data center through wired (such as coaxial cable, optical fiber, digital subscriber line) or wireless (such as infrared, wireless, microwave, etc.) means.
  • the computer-readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server, data center, etc. that contains one or more available media integrated.
  • the available media may be magnetic media (such as floppy disks, hard disks, magnetic tapes), optical media, or semiconductor media, etc.

Abstract

The present application provides a congestion flow identification method and apparatus, a device, and a computer readable storage medium. The method comprises: detecting a state (congested or idle) of a first ingress queue and states of a plurality of egress queues corresponding to the first ingress queue, wherein the state of each egress queue among the plurality of egress queues is being idle, or being congested and the congestion of each egress queue being a source of congestion of the first ingress queue, or being congested and the congestion of each egress queue being not the source of the congestion of the first ingress queue; if it is detected that there are an egress queue in a first state (being congested and the congestion being not the source of the congestion of the first ingress queue) and an idle egress queue among the plurality of egress queues, determining a message flow forwarded by the egress queue in the first state as a first congestion flow, and determining a message flow forwarded by the idle egress queue as a non-congestion flow. According to the method, a congestion flow and a non-congestion flow can be accurately identified, thereby greatly reducing the possibility that a non-congestion flow is mis-identified as a congestion flow.

Description

拥塞流识别方法、装置、设备及计算机可读存储介质Congested flow identification method, device, equipment and computer-readable storage medium
本申请要求于2022年04月28日提交中国专利局、申请号为202210460326.7、发明名称为“拥塞流识别方法、装置、设备及计算机可读存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application claims the priority of the Chinese patent application submitted to the China Patent Office on April 28, 2022, with the application number 202210460326.7 and the invention title "Congested flow identification method, device, equipment and computer-readable storage medium", and its entire content incorporated herein by reference.
技术领域Technical field
本申请涉及通信技术领域,尤其涉及一种拥塞流识别方法、装置、设备及计算机可读存储介质。The present application relates to the field of communication technology, and in particular, to a congestion flow identification method, device, equipment and computer-readable storage medium.
背景技术Background technique
随着高性能计算、人工智能、分布式存储等依赖于超低时延数据中心的业务越来越多,使用者对数据中心中各网络设备(也可以称为网络节点或者节点等,如交换机、路由器、网卡等)间的数据传输时延的要求也越来越高。而在实际使用中,因为拥塞而导致的丢包,是影响业务性能的重要原因。As more and more businesses such as high-performance computing, artificial intelligence, and distributed storage rely on ultra-low-latency data centers, users are increasingly concerned about the various network devices (also called network nodes or nodes, etc.) in the data center, such as switches. , routers, network cards, etc.) are also increasingly demanding data transmission delays. In actual use, packet loss caused by congestion is an important reason that affects business performance.
为减少因为拥塞而导致的丢包,可以在数据中心中的网络设备间的数据传输过程中引入基于优先级的流控(priority-based flow control,PFC)机制,然而,该机制的引入,通常会导致当前网络设备的入口队列(也可以称为接收队列或者入队列)发生头阻(head-of-line blocking,HOLB)。为了解决由PFC机制造成的入口队列发生HOLB,出现了拥塞隔离(congestion isolation,CI)技术,即当前网络设备在入口队列发生HOLB时,基于流经入口队列对应的出口队列的每条报文流的报文速率是否大于速率阈值,或者,基于出口队列中缓存的每条报文流包括的显式拥塞通知(explicit congestion notification,ECN)报文数量是否大于预设数量,确定一条报文流是否为拥塞流,在确定一条报文流为拥塞流时,将拥塞流隔离到本地的拥塞队列,并生成包括拥塞流的标识的拥塞控制消息,然后将拥塞控制消息发送给发送拥塞流给当前网络设备的上游网络设备,指示上游网络设备将拥塞流隔离到上游网络设备中的拥塞队列。In order to reduce packet loss due to congestion, a priority-based flow control (PFC) mechanism can be introduced in the data transmission process between network devices in the data center. However, the introduction of this mechanism usually This will cause head-of-line blocking (HOLB) in the entry queue of the current network device (which can also be called the receive queue or entry queue). In order to solve the problem of HOLB in the ingress queue caused by the PFC mechanism, congestion isolation (CI) technology has emerged. That is, when the current network device HOLB occurs in the ingress queue, it is based on each message flow flowing through the egress queue corresponding to the ingress queue. Whether the packet rate is greater than the rate threshold, or whether a packet flow is determined based on whether the number of explicit congestion notification (ECN) packets included in each packet flow cached in the egress queue is greater than the preset number. For congestion flows, when a message flow is determined to be a congestion flow, the congestion flow is isolated to the local congestion queue, and a congestion control message including the identity of the congestion flow is generated, and then the congestion control message is sent to the current network. The device's upstream network device, instructs the upstream network device to isolate congested flows to congestion queues in the upstream network device.
然而,本申请发明人发现,流经出口队列的非拥塞流的报文速率通常也会大于速率阈值,或者,出口队列中缓存的非拥塞流包括的ECN报文数量也可能大于预设数量,该情况下,上述拥塞隔离技术会将非拥塞流误识别为拥塞流,从而将非拥塞流也隔离到拥塞队列,严重影响非拥塞流的吞吐量和时延。However, the inventor of the present application found that the packet rate of non-congested flows flowing through the egress queue is usually greater than the rate threshold, or the number of ECN packets included in the non-congested flows cached in the egress queue may be greater than the preset number. In this case, the above congestion isolation technology will misidentify non-congested flows as congested flows, thereby isolating non-congested flows into congested queues, seriously affecting the throughput and delay of non-congested flows.
发明内容Contents of the invention
本申请提供一种拥塞流识别方法、装置、设备及计算机可读存储介质,可以准确识别出拥塞流和非拥塞流,有效解决现有技术存在的会将非拥塞流误识别为拥塞流的问题。This application provides a congestion flow identification method, device, equipment and computer-readable storage medium, which can accurately identify congested flows and non-congested flows, effectively solving the problem of misidentifying non-congested flows as congested flows in the existing technology. .
第一方面,提供一种拥塞流识别方法,该方法应用于第一网络设备,该方法包括如下步骤:检测第一入口队列的状态,第一入口队列的状态为拥塞或空闲,若检测到第一入口队列拥塞,则检测多个出口队列的状态,多个出口队列中每个出口队列的状态为空闲、第一状态或者第二状态,第一状态表示每个出口队列拥塞且每个出口队列的拥塞是第一入口队列拥塞的源头,第二状态表示每个出口队列拥塞且每个出口队列的拥塞不是第一入口队列拥塞的源头,多个出口队列用于转发第一入口队列接收的报文流,多个出口队列用于转发的报文流互 不相同,若检测到多个出口队列中存在处于第一状态的出口队列和空闲的出口队列,则将处于第一状态的出口队列转发的报文流确定为第一拥塞流,将空闲的出口队列转发的报文流确定为非拥塞流。In a first aspect, a congestion flow identification method is provided. The method is applied to a first network device. The method includes the following steps: detecting the status of the first ingress queue. The status of the first ingress queue is congestion or idle. If the status of the first ingress queue is detected, If an ingress queue is congested, the status of multiple egress queues is detected. The status of each egress queue in the multiple egress queues is idle, first state, or second state. The first state indicates that each egress queue is congested and each egress queue is congested. The congestion is the source of congestion in the first ingress queue. The second state indicates that each egress queue is congested and the congestion in each egress queue is not the source of congestion in the first ingress queue. Multiple egress queues are used to forward the reports received by the first ingress queue. Packet flow, multiple egress queues are used for forwarding packet flows to interact with each other. are not the same. If it is detected that there are egress queues in the first state and idle egress queues in multiple egress queues, the packet flow forwarded by the egress queue in the first state will be determined as the first congestion flow, and the idle egress queue will be The packet flow forwarded by the queue is determined to be a non-congested flow.
上述方案中,一个网络设备可以通过主动检测入口队列以及入口队列对应的多个出口队列(指网络设备中用于转发该入口队列接收的报文流的出口队列)的状态(第一状态、第二状态或者空闲),并在检测到多个出口队列中存在处于第一状态的出口队列和空闲的出口队列时,将处于第一状态的出口队列转发的报文流确定为第一拥塞流,将空闲的出口队列转发的报文流确定为非拥塞流。可以看出,本方案可以准确识别出拥塞流和非拥塞流,大大降低非拥塞流被误识别拥塞流的可能性,因而能够有效解决现有技术存在的会将非拥塞流误识别为拥塞流的问题。In the above solution, a network device can actively detect the status (first status, third status) of the ingress queue and multiple egress queues corresponding to the ingress queue (referring to the egress queue in the network device used to forward the message flow received by the ingress queue). two states or idle), and when it is detected that there are egress queues in the first state and idle egress queues in multiple egress queues, the packet flow forwarded by the egress queue in the first state is determined as the first congested flow, Determine the packet flow forwarded by the idle egress queue as a non-congested flow. It can be seen that this solution can accurately identify congested flows and non-congested flows, greatly reducing the possibility of non-congested flows being misidentified as congested flows. Therefore, it can effectively solve the existing technology problem of misidentifying non-congested flows as congested flows. The problem.
在一种可能的实现方式中,具体可以通过如下方式实现检测多个出口队列的状态:检测多个出口队列是否拥塞,若检测到多个出口队列中存在拥塞的出口队列和空闲的出口队列,则检测拥塞的出口队列的拥塞是否为第一入口队列拥塞的源头。In a possible implementation, the status of multiple egress queues can be detected in the following manner: detecting whether multiple egress queues are congested. If it is detected that there are congested egress queues and idle egress queues in multiple egress queues, Then it is detected whether the congestion of the congested egress queue is the source of the congestion of the first ingress queue.
在一种可能的实现方式中,具体可以通过如下方式实现检测拥塞的出口队列的拥塞是否为第一入口队列拥塞的源头:若检测到拥塞的出口队列的带宽利用率大于利用率阈值,则确定拥塞的出口队列拥塞是第一入口队列拥塞的源头;若检测到带宽利用率小于或者等于利用率阈值,则确定拥塞的出口队列拥塞不是第一入口队列拥塞的源头。In a possible implementation, the detection of whether the congestion of the congested egress queue is the source of the congestion of the first ingress queue can be implemented in the following manner: if it is detected that the bandwidth utilization of the congested egress queue is greater than the utilization threshold, then determine Congestion in the congested egress queue is the source of congestion in the first ingress queue; if it is detected that the bandwidth utilization is less than or equal to the utilization threshold, it is determined that congestion in the congested egress queue is not the source of congestion in the first ingress queue.
在一种可能的实现方式中,具体可以通过如下方式实现检测拥塞的出口队列的拥塞是否为第一入口队列拥塞的源头:若接收到第一网络设备的下游网络设备发送的基于优先级的流量控制PFC报文的频率小于或者等于频率阈值,则确定拥塞的出口队列拥塞是第一入口队列拥塞的源头,PFC报文为下游网络设备在检测到第二入口队列拥塞时发送,第二入口队列为下游网络设备中用于接收拥塞的出口队列转发的报文流的入口队列;若接收到下游网络设备发送的PFC报文的频率大于频率阈值,则确定拥塞的出口队列拥塞不是第一入口队列拥塞的源头。In a possible implementation, the detection of whether the congestion of the congested egress queue is the source of the congestion of the first ingress queue can be implemented in the following manner: if priority-based traffic sent by a downstream network device of the first network device is received If the frequency of control PFC messages is less than or equal to the frequency threshold, it is determined that congestion in the congested egress queue is the source of congestion in the first ingress queue. PFC messages are sent by the downstream network device when it detects congestion in the second ingress queue. The second ingress queue It is the ingress queue in the downstream network device used to receive packet flows forwarded by the congested egress queue; if the frequency of receiving PFC messages sent by the downstream network device is greater than the frequency threshold, it is determined that the congested egress queue is not the first ingress queue. source of congestion.
在一种可能的实现方式中,具体可以通过如下方式实现检测拥塞的出口队列的拥塞是否为第一入口队列拥塞的源头:若未接收到第一网络设备的下游网络设备发送的第二拥塞控制消息,则确定拥塞的出口队列拥塞是第一入口队列拥塞的源头,第二拥塞控制消息用于指示将第二拥塞流隔离到第一网络设备中的拥塞队列,第二拥塞流属于拥塞的出口队列转发的报文流;若接收到下游网络设备发送的第二拥塞控制消息,则确定拥塞的出口队列拥塞不是第一入口队列拥塞的源头。In a possible implementation, the detection of whether the congestion of the congested egress queue is the source of the congestion of the first ingress queue can be implemented in the following manner: if the second congestion control sent by the downstream network device of the first network device is not received message, it is determined that the congestion of the congested egress queue is the source of the congestion of the first ingress queue. The second congestion control message is used to instruct to isolate the second congested flow to the congestion queue in the first network device. The second congested flow belongs to the congested egress. The packet flow forwarded by the queue; if the second congestion control message sent by the downstream network device is received, it is determined that the congestion in the congested egress queue is not the source of the congestion in the first ingress queue.
在一种可能的实现方式中,第一方面描述的方法还包括如下步骤:生成第一拥塞控制消息,并向上游网络设备发送第一拥塞控制消息,第一拥塞控制消息携带第一拥塞流的标识,第一拥塞控制消息用于指示将第一拥塞流隔离到上游网络设备中的拥塞队列,第一拥塞控制消息还携带多个出口队列的状态;在预设时长后,重新检测第一入口队列和多个出口队列的状态,基于重新检测的第一入口队列和多个出口队列的状态,确定多个出口队列转发的报文流中是否存在至少一条拥塞流,并基于检测结果生成新的第一拥塞控制消息,向上游网络设备发送新的第一拥塞控制消息;In a possible implementation, the method described in the first aspect further includes the following steps: generating a first congestion control message and sending the first congestion control message to the upstream network device, where the first congestion control message carries the information of the first congestion flow. Identification, the first congestion control message is used to instruct to isolate the first congestion flow to the congestion queue in the upstream network device. The first congestion control message also carries the status of multiple egress queues; after the preset time period, re-detect the first entry The status of the queue and multiple egress queues, based on the re-detected status of the first ingress queue and multiple egress queues, determines whether there is at least one congested flow in the message flow forwarded by the multiple egress queues, and generates a new flow based on the detection results. The first congestion control message sends a new first congestion control message to the upstream network device;
其中,若确定所述多个出口队列转发的报文流中不存在至少一条拥塞流,所述新的第一拥塞控制消息携带所述重新检测的多个出口队列的状态,所述新的第一拥塞控制消息用于指示基于所述重新检测的多个出口队列的状态,停止将所述第一拥塞流隔离到所述上游网络设备中的拥塞队列;若确定所述多个出口队列转发的报文流中存在至少一条拥塞流,且所述至 少一条拥塞流不包括所述第一拥塞流,所述新的第一拥塞控制消息携带所述重新检测的多个出口队列的状态和所述至少一条拥塞流的标识,所述新的第一拥塞控制消息用于指示基于所述重新检测的多个出口队列的状态,停止将所述第一拥塞流隔离到所述上游网络设备中的拥塞队列,并指示将所述至少一条拥塞流隔离到所述上游网络设备中的拥塞队列。Wherein, if it is determined that at least one congestion flow does not exist among the message flows forwarded by the multiple egress queues, the new first congestion control message carries the status of the re-detected multiple egress queues, and the new first congestion control message carries the status of the re-detected multiple egress queues. A congestion control message is used to indicate, based on the re-detected status of multiple egress queues, to stop isolating the first congestion flow to the congestion queue in the upstream network device; if it is determined that the multiple egress queues are forwarded There is at least one congested flow in the packet flow, and the One less congestion flow does not include the first congestion flow. The new first congestion control message carries the status of the re-detected multiple egress queues and the identity of the at least one congestion flow. The new first congestion flow The congestion control message is used to indicate, based on the status of the re-detected multiple egress queues, to stop isolating the first congestion flow to the congestion queue in the upstream network device, and to instruct to isolate the at least one congestion flow to Congested queues in the upstream network device.
可以看出,上述实现方式中,网络设备可以基于重新检测的第一入口队列的状态和多个出口队列的状态,确定网络设备中的拥塞流情况,在拥塞流情况不同时,生成的新的第一拥塞控制消息可以指示上游网络设备进行至少一种或多种拥塞控制操作,具有较强的灵活性。It can be seen that in the above implementation, the network device can determine the congestion flow situation in the network device based on the re-detected status of the first ingress queue and the status of multiple egress queues. When the congestion flow status is different, the new flow generated The first congestion control message may instruct the upstream network device to perform at least one or more congestion control operations, and has strong flexibility.
第二方面,提供一种拥塞流识别装置,该装置应用于第一网络设备,装置包括:检测模块,用于检测第一入口队列的状态,第一入口队列的状态为拥塞或空闲;检测模块,还用于若检测到第一入口队列拥塞,则检测多个出口队列的状态,多个出口队列中每个出口队列的状态为空闲、第一状态或者第二状态,第一状态表示每个出口队列拥塞且每个出口队列的拥塞是第一入口队列拥塞的源头,第二状态表示每个出口队列拥塞且每个出口队列的拥塞不是第一入口队列拥塞的源头,多个出口队列用于转发第一入口队列接收的报文流,多个出口队列用于转发的报文流互不相同;处理模块,用于若检测到多个出口队列中存在处于第一状态的出口队列和空闲的出口队列,则将处于第一状态的出口队列转发的报文流确定为第一拥塞流,将空闲的出口队列转发的报文流确定为非拥塞流。In a second aspect, a congestion flow identification device is provided. The device is applied to a first network device. The device includes: a detection module for detecting the status of the first entry queue, where the status of the first entry queue is congestion or idle; the detection module , and is also used to detect the status of multiple egress queues if congestion of the first ingress queue is detected. The status of each egress queue in the multiple egress queues is idle, first state or second state. The first state represents each The egress queue is congested and the congestion of each egress queue is the source of the first ingress queue congestion. The second state indicates that each egress queue is congested and the congestion of each egress queue is not the source of the first ingress queue congestion. Multiple egress queues are used Forward the message flow received by the first entrance queue. The message flows forwarded by the multiple egress queues are different from each other; the processing module is used to detect that there are egress queues in the first state and idle ones in the multiple egress queues. For the egress queue, the packet flow forwarded by the egress queue in the first state is determined as the first congested flow, and the packet flow forwarded by the idle egress queue is determined as the non-congested flow.
在一种可能的实现方式中,检测模块,具体可以通过如下方式实现检测多个出口队列的状态:检测多个出口队列是否拥塞,若检测到多个出口队列中存在拥塞的出口队列和空闲的出口队列,则检测拥塞的出口队列的拥塞是否为第一入口队列拥塞的源头。In a possible implementation, the detection module can detect the status of multiple egress queues in the following manner: detect whether multiple egress queues are congested. If it is detected that there are congested egress queues and idle egress queues in the multiple egress queues, For the egress queue, it is detected whether the congestion of the congested egress queue is the source of congestion in the first ingress queue.
在一种可能的实现方式中,检测模块,具体可以通过如下方式实现检测拥塞的出口队列的拥塞是否为第一入口队列拥塞的源头:若检测到拥塞的出口队列的带宽利用率大于利用率阈值,则确定拥塞的出口队列拥塞是第一入口队列拥塞的源头;若检测到带宽利用率小于或者等于利用率阈值,则确定拥塞的出口队列拥塞不是第一入口队列拥塞的源头。In a possible implementation, the detection module can specifically detect whether the congestion of the congested egress queue is the source of the congestion of the first ingress queue in the following manner: if it is detected that the bandwidth utilization of the congested egress queue is greater than the utilization threshold , then it is determined that congestion in the congested egress queue is the source of congestion in the first ingress queue; if it is detected that the bandwidth utilization is less than or equal to the utilization threshold, it is determined that congestion in the congested egress queue is not the source of congestion in the first ingress queue.
在一种可能的实现方式中,检测模块,具体可以通过如下方式实现检测拥塞的出口队列的拥塞是否为第一入口队列拥塞的源头:若接收到第一网络设备的下游网络设备发送的PFC报文的频率小于或者等于频率阈值,则确定拥塞的出口队列拥塞是第一入口队列拥塞的源头,PFC报文为下游网络设备在检测到第二入口队列拥塞时发送,第二入口队列为下游网络设备中用于接收拥塞的出口队列转发的报文流的入口队列;若接收到下游网络设备发送的PFC报文的频率大于频率阈值,则确定拥塞的出口队列拥塞不是第一入口队列拥塞的源头。In a possible implementation, the detection module can specifically detect whether the congestion of the congested egress queue is the source of congestion of the first ingress queue in the following manner: if a PFC packet sent by a downstream network device of the first network device is received, If the frequency of messages is less than or equal to the frequency threshold, it is determined that congestion in the congested egress queue is the source of congestion in the first ingress queue. PFC messages are sent by the downstream network device when it detects congestion in the second ingress queue. The second ingress queue is the downstream network The ingress queue in the device is used to receive packet flows forwarded by the congested egress queue; if the frequency of receiving PFC packets sent by the downstream network device is greater than the frequency threshold, it is determined that the congestion in the congested egress queue is not the source of congestion in the first ingress queue. .
在一种可能的实现方式中,检测模块,具体可以通过如下方式实现检测拥塞的出口队列的拥塞是否为第一入口队列拥塞的源头:若未接收到第一网络设备的下游网络设备发送的第二拥塞控制消息,则确定拥塞的出口队列拥塞是第一入口队列拥塞的源头,第二拥塞控制消息用于指示将第二拥塞流隔离到第一网络设备中的拥塞队列,第二拥塞流属于拥塞的出口队列转发的报文流;若接收到下游网络设备发送的第二拥塞控制消息,则确定拥塞的出口队列拥塞不是第一入口队列拥塞的源头。In a possible implementation, the detection module can specifically detect whether the congestion of the congested egress queue is the source of the congestion of the first ingress queue in the following manner: if the third network device sent by the downstream network device of the first network device is not received, second congestion control message, it is determined that the congestion of the congested egress queue is the source of the congestion of the first ingress queue; the second congestion control message is used to instruct to isolate the second congestion flow to the congestion queue in the first network device; the second congestion flow belongs to The packet flow forwarded by the congested egress queue; if the second congestion control message sent by the downstream network device is received, it is determined that the congestion of the congested egress queue is not the source of the congestion of the first ingress queue.
在一种可能的实现方式中,第二方面描述的装置还包括:发送模块,用于生成第一拥塞控制消息,并向上游网络设备发送第一拥塞控制消息,第一拥塞控制消息携带第一拥塞流的标识,第一拥塞控制消息用于指示将第一拥塞流隔离到上游网络设备中的拥塞队列,第一拥塞控制消息还携带多个出口队列的状态;检测模块,还用于在预设时长后,重新检测第一入口队列和多个出口队列的状态;处理模块,还用于基于重新检测的第一入口队列和多个出口队列的状态,确定多个出口队列转发的报文流中是否存在至少一条拥塞流;发送模块,还用 于基于检测结果生成新的第一拥塞控制消息,向上游网络设备发送新的第一拥塞控制消息;In a possible implementation, the apparatus described in the second aspect further includes: a sending module, configured to generate a first congestion control message and send the first congestion control message to the upstream network device, where the first congestion control message carries the first congestion control message. Identification of the congestion flow. The first congestion control message is used to instruct the isolation of the first congestion flow to the congestion queue in the upstream network device. The first congestion control message also carries the status of multiple egress queues; the detection module is also used to After setting the duration, re-detect the status of the first ingress queue and multiple egress queues; the processing module is also used to determine the message flow forwarded by the multiple egress queues based on the re-detected status of the first ingress queue and multiple egress queues. Whether there is at least one congested flow in the sending module, also use Generate a new first congestion control message based on the detection result, and send the new first congestion control message to the upstream network device;
其中,若确定所述多个出口队列转发的报文流中不存在至少一条拥塞流,所述新的第一拥塞控制消息携带所述重新检测的多个出口队列的状态,所述新的第一拥塞控制消息用于指示基于所述重新检测的多个出口队列的状态,停止将所述第一拥塞流隔离到所述上游网络设备中的拥塞队列;若确定所述多个出口队列转发的报文流中存在至少一条拥塞流,且所述至少一条拥塞流不包括所述第一拥塞流,所述新的第一拥塞控制消息携带所述重新检测的多个出口队列的状态和所述至少一条拥塞流的标识,所述新的第一拥塞控制消息用于指示基于所述重新检测的多个出口队列的状态,停止将所述第一拥塞流隔离到所述上游网络设备中的拥塞队列,并指示将所述至少一条拥塞流隔离到所述上游网络设备中的拥塞队列。Wherein, if it is determined that at least one congestion flow does not exist among the message flows forwarded by the multiple egress queues, the new first congestion control message carries the status of the re-detected multiple egress queues, and the new first congestion control message carries the status of the re-detected multiple egress queues. A congestion control message is used to indicate, based on the re-detected status of multiple egress queues, to stop isolating the first congestion flow to the congestion queue in the upstream network device; if it is determined that the multiple egress queues are forwarded There is at least one congestion flow in the message flow, and the at least one congestion flow does not include the first congestion flow, and the new first congestion control message carries the status of the re-detected multiple egress queues and the An identifier of at least one congested flow, and the new first congestion control message is used to indicate, based on the status of the re-detected multiple egress queues, to stop isolating the first congested flow to congestion in the upstream network device. queue, and instructs to isolate the at least one congested flow to a congestion queue in the upstream network device.
第三方面,提供一种网络设备,所述网络设备包括处理器和存储器;所述处理器用于执行所述存储器存储的指令,使得所述网络设备实现如上述第一方面或者第一方面的任意可能的实现方式提供的方法。In a third aspect, a network device is provided. The network device includes a processor and a memory; the processor is configured to execute instructions stored in the memory, so that the network device implements the above-mentioned first aspect or any of the first aspects. Methods provided for possible implementations.
第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有指令,所述指令用于实现如上述第一方面或者第一方面的任意可能的实现方式提供的方法。A fourth aspect provides a computer-readable storage medium that stores instructions, and the instructions are used to implement the method provided by the above-mentioned first aspect or any possible implementation of the first aspect.
第五方面,提供一种计算机程序产品,包括计算机程序,当所述计算机程序被计算设备读取并执行时,使得所述计算设备执行如上述第一方面或者第一方面的任意可能的实现方式提供的方法。A fifth aspect provides a computer program product, including a computer program that, when the computer program is read and executed by a computing device, causes the computing device to execute the above-mentioned first aspect or any possible implementation of the first aspect. provided method.
附图说明Description of drawings
图1是本申请涉及的PFC的示意图;Figure 1 is a schematic diagram of the PFC involved in this application;
图2是本申请涉及的一种网络***的结构示意图;Figure 2 is a schematic structural diagram of a network system involved in this application;
图3是本申请涉及的另一种网络***的结构示意图;Figure 3 is a schematic structural diagram of another network system involved in this application;
图4是本申请提供的一种拥塞流识别方法的流程示意图;Figure 4 is a schematic flow chart of a congestion flow identification method provided by this application;
图5是本申请示例性示出的一种多个网络设备之间传输报文流的示意图;Figure 5 is a schematic diagram of a message flow transmitted between multiple network devices exemplarily shown in this application;
图6是本申请示例性示出的另一种多个网络设备之间传输报文流的示意图;Figure 6 is a schematic diagram of another message flow between multiple network devices exemplarily shown in this application;
图7是本申请提供的一种拥塞流识别装置的结构示意图;Figure 7 is a schematic structural diagram of a congestion flow identification device provided by this application;
图8是本申请提供的一种网络设备的结构示意图。Figure 8 is a schematic structural diagram of a network device provided by this application.
具体实施方式Detailed ways
下面将结合附图,对本申请提供的技术方案进行描述。The technical solutions provided by this application will be described below with reference to the accompanying drawings.
为了使本申请提供的技术方案更清晰,首先进行相关术语的解释。In order to make the technical solutions provided in this application clearer, relevant terms are first explained.
(1)PFC,是目前应用最广泛的能够有效避免丢包的流量控制技术,是智能无损网络的基础。使用了PFC功能的队列,可以称之为无损队列。当前网络设备在检测到自身包括的无损入口队列拥塞时,会向上游网络设备发送PFC报文(也可以称为PFC反压通知、PFC反压消息等),通知上游网络设备停止向该无损入口队列发送流量,从而实现零丢包传输。(1) PFC is currently the most widely used flow control technology that can effectively avoid packet loss and is the foundation of intelligent lossless networks. A queue that uses the PFC function can be called a lossless queue. When the current network device detects that its own lossless ingress queue is congested, it will send a PFC message (also called PFC backpressure notification, PFC backpressure message, etc.) to the upstream network device to notify the upstream network device to stop sending data to the lossless ingress. Traffic is sent in queues, resulting in zero packet loss transmission.
通过PFC机制,需要进行通信的两个网络设备可以在一条以太网链路上创建8个虚拟通道,并为每条虚拟通道指定一个优先级,允许单独暂停和恢复其中任意一条虚拟通道。其中,以太网链路可以理解为两个网络设备进行通信的两个端口之间的通信链路。示例性的,如图1所示,图1示出的是网络设备A与网络设备B之间的一条以太网链路,该以太网链路上创建了8个虚拟通道,该8个虚拟通道中每个虚拟通道的两端对应两个优先级相同的无损队列: 1个出口队列和1个入口队列。网络设备A在向网络设备B传输报文流时,可以标记报文流的优先级,然后网络设备A和网络设备B之间通过对应优先级的队列发送报文流和接收报文流,如,若网络设备A在向网络设备B传输报文流之前标记了报文流的优先级为1级,则网络设备A通过1级优先级的出口队列1向网络设备B发送报文流,网络设备B通过1级优先级的入口队列1接收报文流。Through the PFC mechanism, two network devices that need to communicate can create 8 virtual channels on an Ethernet link, and assign a priority to each virtual channel, allowing any one of the virtual channels to be paused and resumed independently. Among them, an Ethernet link can be understood as a communication link between two ports for communication between two network devices. Illustratively, as shown in Figure 1, Figure 1 shows an Ethernet link between network device A and network device B. Eight virtual channels are created on the Ethernet link. The eight virtual channels are Both ends of each virtual channel correspond to two lossless queues with the same priority: 1 egress queue and 1 ingress queue. When network device A transmits a packet flow to network device B, it can mark the priority of the packet flow, and then network device A and network device B send and receive packet flows through queues corresponding to the priorities, such as , if network device A marks the priority of the packet flow as level 1 before transmitting the packet flow to network device B, then network device A sends the packet flow to network device B through the egress queue 1 of level 1 priority, and the network Device B receives the packet flow through ingress queue 1 with level 1 priority.
如果网络设备A还可以通过另一个端口和网络设备B的另一个端口与网络设备B通信,则这两个端口之间仍然可以有另一条以太网链路,该另一条以太网链路同样可以对应网络设备A中的8个出口队列和网络设备B中的8个入口队列。If network device A can also communicate with network device B through another port and another port of network device B, there can still be another Ethernet link between the two ports, and that other Ethernet link can also Corresponds to the 8 egress queues in network device A and the 8 ingress queues in network device B.
需要说明的,入口队列和出口队列是基于报文流的传输方向确定的,以图1为例,若报文流的传输方向为从网络设备A传输到网络设备B,则网络设备A中的队列为出口队列,网络设备B中的队列为入口队列,反之,则网络设备A中的队列为入口队列,网络设备B中的队列为出口队列。It should be noted that the ingress queue and egress queue are determined based on the transmission direction of the packet flow. Taking Figure 1 as an example, if the transmission direction of the packet flow is from network device A to network device B, then the The queue is the egress queue, and the queue in network device B is the ingress queue. Vice versa, the queue in network device A is the ingress queue, and the queue in network device B is the egress queue.
(2)入口队列拥塞、空闲,网络设备可以根据入口队列的队列深度(也可以称为缓存长度)确定入口队列是否拥塞。具体地,可以根据入口队列的队列深度(也可以称为缓存长度)是否超过PFC的单水线(门限Xoff),确定入口队列是否拥塞,或者,根据入口队列的队列深度是否超过PFC的双水线(门限Xoff和门限Xon),确定入口队列是否拥塞。进一步地,以网络设备检测入口队列是否拥塞采用的机制为PFC的单水线机制为例,网络设备若检测到入口队列的队列深度大于门限Xoff,则确定入口队列拥塞,反之,则确定入口队列空闲;再以网络设备检测入口队列是否拥塞采用的机制为PFC的双水线为例,网络设备若检测到入口队列的队列深度大于门限Xoff,则确定入口队列拥塞,若检测到入口队列的队列深度小于门限Xon,则确定入口队列空闲,若检测到入口队列的队列深度介于门限Xoff和门限Xon之间,则维持上一次的检测结果,即若上一次检测到入口队列拥塞,则此次也确定入口队列拥塞,反之,则确定入口队列空闲。(2) The ingress queue is congested or idle. The network device can determine whether the ingress queue is congested based on the queue depth (also called cache length) of the ingress queue. Specifically, whether the entry queue is congested can be determined based on whether the queue depth (also called cache length) of the entry queue exceeds the single waterline (threshold X off ) of the PFC, or whether the queue depth of the entry queue exceeds the double waterline of the PFC. Waterline (threshold X off and threshold X on ) to determine whether the ingress queue is congested. Further, taking the single waterline mechanism of PFC as the mechanism used by the network device to detect whether the ingress queue is congested as an example, if the network device detects that the queue depth of the ingress queue is greater than the threshold The queue is idle; taking the PFC dual waterline mechanism used by the network device to detect whether the ingress queue is congested as an example, if the network device detects that the queue depth of the inlet queue is greater than the threshold X off , it determines that the inlet queue is congested. The queue depth of is less than the threshold X on , then it is determined that the entry queue is idle. If the queue depth of the entry queue is detected to be between the threshold X off and the threshold If there is congestion, then it is determined that the inlet queue is congested this time; otherwise, it is determined that the inlet queue is idle.
(3)出口队列拥塞、空闲,网络设备可以根据出口队列的队列深度确定出口队列是否拥塞。具体地,可以根据出口队列的队列深度是否超过ECN的双水线(门限Kmax和门限Kmin),确定出口队列是否拥塞。进一步地,网络设备若检测到出口队列的队列深度超过门限Kmax,则确定出口队列拥塞,若检测到出口队列的队列深度低于门限Kmin,则确定出口队列空闲,若检测到出口队列的队列深度介于门限Kmax和门限Kmin之间,可以维持上一次的判定结果,即若上一次检测到口队列是否拥塞时,确定出口队列拥塞,则此次也确定出口队列拥塞,反之,则确定出口队列空闲。可选地,也可以根据报文流在出口队列中被缓存的时长是否大于预设时长来确定出口队列是否拥塞,如大于预设时长确定出口队列拥塞,小于或者等于预设时长,确定出口队列空闲,其中,预设时长可以根据实际情况自定义。(3) The egress queue is congested or idle. The network device can determine whether the egress queue is congested based on the queue depth of the egress queue. Specifically, whether the egress queue is congested can be determined based on whether the queue depth of the egress queue exceeds the double waterline of the ECN (threshold K max and threshold K min ). Further, if the network device detects that the queue depth of the egress queue exceeds the threshold K max , it determines that the egress queue is congested. If it detects that the queue depth of the egress queue is lower than the threshold K min , it determines that the egress queue is idle. If it detects that the egress queue's queue depth The queue depth is between the threshold K max and the threshold K min , and the last determination result can be maintained. That is, if the egress queue was determined to be congested when it was detected last time whether the interface queue was congested, it will also be determined that the egress queue is congested this time. Vice versa, Then it is determined that the egress queue is free. Optionally, you can also determine whether the egress queue is congested based on whether the length of time the message flow is buffered in the egress queue is greater than the preset time. If it is greater than the preset time, it is determined that the egress queue is congested. If it is less than or equal to the preset time, it is determined that the egress queue is congested. Idle, where the preset duration can be customized according to the actual situation.
(4)ECN报文,当一个报文到达网络设备的出口队列时,网络设备会检测到口队列的队列深度,然后根据出口队列的队列深度以及ECN的双水线机制按照一定的概率标记报文的ECN,被标记了ECN的报文可以称为ECN报文。具体地,当网络设备检测到出口队列的队列深度大于门限Kmax时,标记报文的概率为100%,当检测到出口队列的队列深度小于或者等于门限Kmax且大于门限Kmin时,标记报文的概率会随着队列深度线性增加,当确定出口队列的队列深度小于或者等于门限Kmin时,标记报文的概率为0。(4) ECN packets, when a packet arrives at the egress queue of the network device, the network device will detect the queue depth of the egress queue, and then mark the packet with a certain probability based on the queue depth of the egress queue and the dual waterline mechanism of ECN. The ECN of the message, and the message marked with ECN can be called an ECN message. Specifically, when the network device detects that the queue depth of the egress queue is greater than the threshold K max , the probability of marking the packet is 100%. When it detects that the queue depth of the egress queue is less than or equal to the threshold K max and greater than the threshold K min , the packet is marked. The probability of a packet increases linearly with the queue depth. When it is determined that the queue depth of the egress queue is less than or equal to the threshold K min , the probability of marking a packet is 0.
(5)HOLB,是指一列报文(也可以称为数据包(packge))因为第一个报文阻塞而导致整列报文阻塞。 (5) HOLB refers to a sequence of messages (also called a packet) that causes the entire sequence of messages to be blocked because the first message is blocked.
(6)出口队列的带宽利用率,网络设备的一个出口队列对应一个端口线速带宽,该出口队列中缓存的所有报文所占用的带宽占该出口的端口线速带宽的比率,可以作为该出口队列的带宽利用率。其中,端口线速带宽是指相应出口单位时间内所能吞吐的最大字节量,可以用于表征相应出口的转发能力。(6) Bandwidth utilization of the egress queue. An egress queue of a network device corresponds to a port line speed bandwidth. The ratio of the bandwidth occupied by all messages cached in the egress queue to the egress port line speed bandwidth can be used as the Bandwidth utilization of the egress queue. Among them, the port line speed bandwidth refers to the maximum amount of bytes that the corresponding outlet can handle per unit time, and can be used to characterize the forwarding capability of the corresponding outlet.
(7)队列A的拥塞是队列B拥塞的源头,也可以称队列A是队列B的根拥塞点,指队列A最先发生拥塞,且队列A的拥塞导致了队列B拥塞。在本申请中,若一个队列最先发生拥塞,则称该队列传输的报文流为拥塞流。(7) Queue A's congestion is the source of queue B's congestion. It can also be said that queue A is the root congestion point of queue B, which means that queue A is the first to be congested, and queue A's congestion causes queue B's congestion. In this application, if a queue is congested first, the message flow transmitted by the queue is called a congestion flow.
(8)设备将拥塞流隔离到设备中的拥塞队列,也可以称为对设备对拥塞流进行隔离处理,指设备降低拥塞流的后续报文的优先级,然后使用降低后的优先级级别的队列接收或发送拥塞流的后续报文,降低后的优先级级别的队列即为设备中的拥塞队列。(8) The device isolates the congested flow into the congestion queue in the device, which can also be referred to as isolating the congested flow by the device. This means that the device reduces the priority of subsequent packets of the congested flow, and then uses the reduced priority level. The queue receives or sends subsequent packets of the congestion flow. The queue with the reduced priority level is the congestion queue in the device.
下面介绍本申请涉及的应用场景。The application scenarios involved in this application are introduced below.
本申请涉及引入PFC机制的网络***,如引入PFC机制的数据中心、校园组网、园区组网等,网络***可以是采用CLOS架构、Mesh架构或Torus架构等网络架构的***,本申请对此不作具体限定。为便于描述,以下仅以CLOS架构的网络***为例进行说明。This application relates to network systems that introduce the PFC mechanism, such as data centers, campus networking, campus networking, etc. that introduce the PFC mechanism. The network system can be a system that adopts a network architecture such as CLOS architecture, Mesh architecture, or Torus architecture. This application is No specific limitation is made. For the convenience of description, only the CLOS architecture network system is used as an example for description below.
参见图2和图3,图2和图3为本申请示例性示出的两种CLOS架构的网络***的结构示意图。Referring to Figures 2 and 3, Figures 2 and 3 are schematic structural diagrams of two CLOS architecture network systems exemplarily shown in this application.
如图2所示,网络***200包括服务器210、柜顶(top of rack,TOR)交换机220、SPINE交换机230。As shown in Figure 2, the network system 200 includes a server 210, a top of rack (TOR) switch 220, and a SPINE switch 230.
服务器210可以是用于提供各类服务(如视频播放服务或者搜索服务等)的服务器。多个服务器210之间可以通过图2所示的各种类型的交换机(如TOR交换机220、SPINE交换机230)进行通信。The server 210 may be a server used to provide various services (such as video playback service or search service, etc.). Multiple servers 210 can communicate with each other through various types of switches shown in Figure 2 (such as TOR switch 220, SPINE switch 230).
TOR交换机220可以设置在服务器210与SPINE交换机230之间的链路上,TOR交换机220的上行端口用于连接SPINE交换机230的下行端口,而TOR交换机220的下行端口则用于连接服务器210。每一个TOR交换机220均可以通过多个上行端口与多个SPINE交换机230相连。每一个服务器210可以通过至少一块网卡与TOR交换机220相连。The TOR switch 220 can be disposed on the link between the server 210 and the SPINE switch 230. The uplink port of the TOR switch 220 is used to connect to the downlink port of the SPINE switch 230, and the downlink port of the TOR switch 220 is used to connect to the server 210. Each TOR switch 220 can be connected to multiple SPINE switches 230 through multiple uplink ports. Each server 210 can be connected to the TOR switch 220 through at least one network card.
如图3所示,网络***300包括服务器310、TOR交换机320、汇聚(aggregation,AGG)交换机330、SPINE交换机340。As shown in FIG. 3 , the network system 300 includes a server 310 , a TOR switch 320 , an aggregation (AGG) switch 330 , and a SPINE switch 340 .
多个服务器310之间可以通过图3所示的各种类型的交换机(如TOR交换机320、AGG交换机330、SPINE交换机340)进行通信。Multiple servers 310 can communicate with each other through various types of switches shown in Figure 3 (such as TOR switch 320, AGG switch 330, SPINE switch 340).
TOR交换机320可以设置在服务器310与AGG交换机330之间的链路上,TOR交换机320的上行端口用于连接AGG交换机330的下行端口,而TOR交换机320的下行端口则用于连接服务器310。每一个TOR交换机320均可以通过多个上行端口与多个AGG交换机330相连。每一个服务器310可以通过至少一块网卡与TOR交换机320相连。The TOR switch 320 can be disposed on the link between the server 310 and the AGG switch 330. The uplink port of the TOR switch 320 is used to connect to the downlink port of the AGG switch 330, and the downlink port of the TOR switch 320 is used to connect to the server 310. Each TOR switch 320 can be connected to multiple AGG switches 330 through multiple uplink ports. Each server 310 can be connected to the TOR switch 320 through at least one network card.
AGG交换机330可以设置在TOR交换机320与SPINE交换机340之间的链路上,AGG交换机330的上行端口用于连接SPINE交换机340的下行端口,每一个AGG交换机330均可以通过多个上行端口与多个SPINE交换机340相连。The AGG switch 330 can be set on the link between the TOR switch 320 and the SPINE switch 340. The uplink port of the AGG switch 330 is used to connect to the downlink port of the SPINE switch 340. Each AGG switch 330 can communicate with multiple uplink ports through multiple uplink ports. A SPINE switch 340 is connected.
应理解,图2所示的网络***200和图3所示的网络***300仅仅是作为示例,不应将其理解为对本申请的限定。It should be understood that the network system 200 shown in FIG. 2 and the network system 300 shown in FIG. 3 are only examples and should not be understood as limiting the present application.
在图2所示的网络***200或者图3所示的网络***300中,由于在网络设备间的数据传输过程中引入了PFC机制,该机制的引入,通常会导致网络设备的入口队列发生HOLB。In the network system 200 shown in Figure 2 or the network system 300 shown in Figure 3, due to the introduction of the PFC mechanism in the data transmission process between network devices, the introduction of this mechanism usually causes HOLB to occur in the ingress queue of the network device. .
目前,为了解决由PFC机制造成的入口队列发生,出现了拥塞隔离技术,即网络设备在 入口队列发生HOLB时,基于流经入口队列对应的出口队列的每条报文流的报文速率是否大于速率阈值,或者,基于出口队列中缓存的每条报文流包括的ECN报文数量是否大于预设数量,确定一条报文流是否为拥塞流,在确定一条报文流为拥塞流时,然后将拥塞流隔离到本地的拥塞队列(以下均称为对拥塞流进行隔离处理),并生成包括拥塞流的标识的拥塞控制消息,然后将拥塞控制消息发送给上游网络设备发送拥塞控制消息,指示上游网络设备对拥塞流进行隔离处理。其中,上游网络设备可以为向当前网络设备发送拥塞流的设备,如与当前网络设备直接或者间接连接的网络设备,或者拥塞流的源设备(如图2所示的服务器210)。At present, in order to solve the problem of ingress queue caused by PFC mechanism, congestion isolation technology has emerged, that is, network equipment When HOLB occurs in the ingress queue, it is based on whether the packet rate of each packet flow flowing through the egress queue corresponding to the ingress queue is greater than the rate threshold, or based on whether the number of ECN packets included in each packet flow cached in the egress queue is is greater than the preset number, determine whether a message flow is a congested flow. When it is determined that a message flow is a congested flow, then isolate the congested flow to the local congestion queue (hereinafter referred to as isolating the congested flow), and Generate a congestion control message including the identification of the congestion flow, and then send the congestion control message to the upstream network device to send the congestion control message to instruct the upstream network device to isolate the congestion flow. The upstream network device may be a device that sends the congestion flow to the current network device, such as a network device directly or indirectly connected to the current network device, or a source device of the congestion flow (the server 210 shown in Figure 2).
假设入口队列1对应出口队列2,报文流1和报文流2均从入口队列1传输到出口队列2,在入口队列1发生HOLB时,报文流1实际是拥塞流,报文流2实际是非拥塞流,但是报文流1的报文速率以及报文流2的报文速率均大于速率阈值,则上述拥塞隔离技术会将报文流2误识别为拥塞流。Assume that ingress queue 1 corresponds to egress queue 2, and both packet flow 1 and packet flow 2 are transmitted from ingress queue 1 to egress queue 2. When HOLB occurs in ingress queue 1, packet flow 1 is actually a congested flow, and packet flow 2 is actually a congested flow. It is actually a non-congested flow, but the packet rate of packet flow 1 and the packet rate of packet flow 2 are both greater than the rate threshold, then the above congestion isolation technology will mistakenly identify packet flow 2 as a congested flow.
继续以入口队列1对应出口队列2,报文流1和报文流2均从入口队列1传输到出口队列2,在入口队列1发生HOLB时,报文流1实际是拥塞流,报文流2实际是非拥塞流为例,但是出口队列1中缓存的报文流1包括的ECN报文数量以及报文流2包括的ECN报文数量均大于预设数量,则上述拥塞隔离技术会将报文流2误识别为拥塞流。Continue to use ingress queue 1 to correspond to egress queue 2. Both packet flow 1 and packet flow 2 are transmitted from ingress queue 1 to egress queue 2. When HOLB occurs in ingress queue 1, packet flow 1 is actually a congested flow. 2 is actually a non-congested flow as an example, but the number of ECN packets included in packet flow 1 cached in egress queue 1 and the number of ECN packets included in packet flow 2 are both greater than the preset number, then the above congestion isolation technology will Text flow 2 is mistakenly identified as a congested flow.
可以看出,上述拥塞隔离技术存在着会将非拥塞流误识别为拥塞流的问题。可以理解,若是将非拥塞流误识别拥塞流,上述拥塞隔离技术会对非拥塞流进行隔离处理,这样会严重影响非拥塞流的吞吐量和时延的问题。It can be seen that the above congestion isolation technology has the problem of misidentifying non-congested flows as congested flows. It can be understood that if a non-congested flow is mistakenly identified as a congested flow, the above congestion isolation technology will isolate the non-congested flow, which will seriously affect the throughput and delay of the non-congested flow.
为了解决上述问题,本申请提供一种拥塞流识别方法、装置及设备。In order to solve the above problems, this application provides a congestion flow identification method, device and equipment.
下面分别结合对应的附图介绍本申请提供的拥塞流识别方法、装置及设备。The congestion flow identification method, device and equipment provided by this application will be introduced below with reference to the corresponding drawings.
为了便于描述,在介绍本申请提供的拥塞流识别方法、装置时,均以应用于第一网络设备进行描述。其中,第一网络设备可以为图2所示的TOR交换机220、SPINE交换机230,或者为图3所示的AGG交换机330,具体实现中,若网络***中负责转发报文流的网络设备为路由器或者网卡等设备,第一网络设备也可以为路由器或者网卡等,本申请对此不作具体限定。For the convenience of description, when introducing the congestion flow identification method and device provided by this application, the description is applied to the first network device. Among them, the first network device can be the TOR switch 220, the SPINE switch 230 shown in Figure 2, or the AGG switch 330 shown in Figure 3. In specific implementation, if the network device responsible for forwarding the packet flow in the network system is a router Or a device such as a network card. The first network device may also be a router or a network card, etc. This application does not specifically limit this.
请参见图4,图4为本申请提供的一种拥塞流识别方法的流程示意图,如图4所示,该方法包括如下步骤:Please refer to Figure 4. Figure 4 is a schematic flow chart of a congestion flow identification method provided by this application. As shown in Figure 4, the method includes the following steps:
S401:检测第一入口队列的状态,第一入口队列的状态为拥塞或空闲。S401: Detect the status of the first entry queue. The status of the first entry queue is congestion or idle.
其中,第一入口队列,可以为第一网络设备包括的入口队列中的任意一个。The first entry queue may be any one of the entry queues included in the first network device.
具体实现中,第一网络设备可以采用PFC的单水线机制或者双水线机制确定第一入口队列是否拥塞,此处不作具体限定。网络设备采用PFC的单水线机制或者双水线机制确定入口队列是否拥塞的过程,已在上文进行相关描述,此处不再展开赘述。In specific implementation, the first network device may use the single waterline mechanism or the dual waterline mechanism of PFC to determine whether the first ingress queue is congested, which is not specifically limited here. The process of network equipment using PFC's single waterline mechanism or dual waterline mechanism to determine whether the ingress queue is congested has been described above and will not be described again here.
S402:在检测到第一入口队列拥塞时,检测多个出口队列的状态,多个出口队列中每个出口队列为空闲、第一状态或者第二状态,第一状态表示每个出口队列拥塞且该出口队列的拥塞是第一入口队列拥塞的源头,第二状态表示每个出口队列拥塞且该出口队列的拥塞不是第一入口队列拥塞的源头,多个出口队列用于转发第一入口队列接收的报文流,多个出口队列用于转发的报文流互不相同。S402: When congestion of the first ingress queue is detected, detect the status of multiple egress queues. Each egress queue in the multiple egress queues is idle, first state or second state. The first state indicates that each egress queue is congested and The congestion of the egress queue is the source of congestion of the first ingress queue. The second state indicates that each egress queue is congested and the congestion of the egress queue is not the source of congestion of the first ingress queue. Multiple egress queues are used to forward the reception of the first ingress queue. The packet flows used by multiple egress queues for forwarding are different from each other.
具体实现中,上述多个出口队列可以分别转发至少一条报文流,多个出口队列的优先级与第一入口队列的优先级可以相同也可以不相同,此处不作具体限定。In specific implementation, the above-mentioned multiple egress queues can forward at least one message flow respectively. The priorities of the multiple egress queues and the priority of the first ingress queue may be the same or different, and are not specifically limited here.
在本申请具体的实施例中,第一网络设备可以参考如下S4021至S4023实现检测多个出口队列的状态: In a specific embodiment of this application, the first network device may detect the status of multiple egress queues with reference to the following S4021 to S4023:
S4021:检测多个出口队列是否拥塞,若检测到多个出口队列中存在拥塞的出口队列和空闲的出口队列,则执行S4022,若检测到多个出口队列全部拥塞,则执行S4023。S4021: Detect whether multiple egress queues are congested. If it is detected that there are congested egress queues and idle egress queues in multiple egress queues, S4022 is executed. If it is detected that all egress queues are congested, S4023 is executed.
以检测第一出口队列(指多个出口队列中任意一个)是否拥塞为例,具体地,第一网络设备可以采用ECN的双水线机制确定第一出口队列是否拥塞,也可以根据报文流在第一出口队列中被缓存的时长是否大于预设时长来确定第一出口队列是否拥塞,此处不作具体限定。网络设备采用ECN的双水线机制或者根据报文流在出口队列中被缓存的时长是否大于预设时长来确定出口队列是否拥塞,已在上文进行相关描述,此处不再展开赘述。Take detecting whether the first egress queue (referring to any one of multiple egress queues) is congested as an example. Specifically, the first network device can use the dual waterline mechanism of ECN to determine whether the first egress queue is congested, or it can also determine whether the first egress queue is congested based on the message flow. Whether the first egress queue is congested is determined by whether the cached time in the first egress queue is greater than the preset time, which is not specifically limited here. The network device uses the ECN's dual waterline mechanism or determines whether the egress queue is congested based on whether the packet flow is buffered in the egress queue for longer than the preset time. This has been described above and will not be repeated here.
S4022:检测拥塞的出口队列的拥塞是否为第一入口队列拥塞的源头,若检测到拥塞的出口队列的拥塞是第一入口队列拥塞的源头,则确定该拥塞的出口队列处于第一状态,反之,则确定该拥塞的出口队列处于第二状态。S4022: Detect whether the congestion in the congested egress queue is the source of congestion in the first ingress queue. If it is detected that the congestion in the congested egress queue is the source of congestion in the first ingress queue, it is determined that the congested egress queue is in the first state, and vice versa. , then it is determined that the congested egress queue is in the second state.
为了便于描述,假设第一网络设备检测到的多个出口队列中存在的拥塞的出口队列包括第一出口队列,并且多个出口队列存在空闲的出口队列。For convenience of description, it is assumed that the congested egress queues present in the multiple egress queues detected by the first network device include the first egress queue, and there are idle egress queues in the multiple egress queues.
可以理解,若第一出口队列拥塞是第二入口队列(指第一下游网络设备(指用于接收第一出口队列转发的报文流的下游网络设备)中用于接收第一出口队列转发的报文流的入口队列)拥塞导致,那么第一出口队列不是最先发生拥塞的队列,第一出口队列拥塞不是第一入口队列拥塞的源头,反之,第一出口队列是最先发生拥塞的队列,第一出口队列拥塞是第一入口队列拥塞的源头。因此,第一网络设备可以通过检测第一出口队列拥塞是否为第二入口队列拥塞导致,确定第一出口队列拥塞是否为第一入口队列拥塞的源头。It can be understood that if the first egress queue is congested, the second ingress queue (referring to the first downstream network device (referring to the downstream network device used to receive the message flow forwarded by the first egress queue)) is used to receive the message flow forwarded by the first egress queue. (the ingress queue of the packet flow) is caused by congestion, then the first egress queue is not the first queue to be congested, and congestion in the first egress queue is not the source of congestion in the first ingress queue. On the contrary, the first egress queue is the first queue to be congested. , the first egress queue congestion is the source of the first ingress queue congestion. Therefore, the first network device can determine whether the first egress queue congestion is the source of the first ingress queue congestion by detecting whether the first egress queue congestion is caused by the second ingress queue congestion.
可以理解,若第二入口队列拥塞,那么第一下游网络设备会向第一网络设备发送PFC报文,通知第一网络设备暂停通过第一出口队列向第一下游网络设备发送报文,当第一网络设备停止通过第一出口队列发送报文时,第一出口队列的带宽利用率通常比较低,甚至为0,若第二入口队列空闲,那么第一下游网络设备不会向第一网络设备发送PFC报文,第一网络设备在未接收到PFC报文时,会不断地通过第一出口队列向第一下游网络设备发送报文,此时,第一出口队列的带宽利用率通常比较高,甚至为100%。因此,第一网络设备可以通过检测第一出口队列的带宽利用率是否大于利用率阈值,来判断第一出口队列拥塞是否为第二入口队列拥塞导致,从而判断第一入口队列拥塞是否为第一入口队列拥塞的源头。It can be understood that if the second ingress queue is congested, the first downstream network device will send a PFC message to the first network device to notify the first network device to suspend sending messages to the first downstream network device through the first egress queue. When a network device stops sending packets through the first egress queue, the bandwidth utilization of the first egress queue is usually low, or even 0. If the second ingress queue is idle, the first downstream network device will not send messages to the first network device. When sending PFC packets, the first network device will continuously send packets to the first downstream network device through the first egress queue when it does not receive the PFC packet. At this time, the bandwidth utilization of the first egress queue is usually relatively high. , even 100%. Therefore, the first network device can determine whether the congestion of the first egress queue is caused by the congestion of the second ingress queue by detecting whether the bandwidth utilization of the first egress queue is greater than the utilization threshold, thereby determining whether the congestion of the first ingress queue is caused by the congestion of the first ingress queue. Source of ingress queue congestion.
具体地,第一网络设备若检测到第一出口队列的带宽利用率小于或者等于利用率阈值,则确定第一出口队列拥塞是第二入口队列拥塞导致,从而确定第一出口队列拥塞不是第一入口队列拥塞的源头,反之,则确定第一出口队列拥塞不是第二入口队列拥塞导致,从而确定第一出口队列拥塞是第一入口队列拥塞的源头。其中,利用率阈值可以根据实际情况自定义,如90%、95%等,本申请对此不作具体限定。Specifically, if the first network device detects that the bandwidth utilization of the first egress queue is less than or equal to the utilization threshold, it determines that the congestion of the first egress queue is caused by the congestion of the second ingress queue, thereby determining that the congestion of the first egress queue is not caused by the first egress queue congestion. The source of the congestion in the ingress queue. On the contrary, it is determined that the congestion in the first egress queue is not caused by the congestion in the second ingress queue, thereby determining that the congestion in the first egress queue is the source of the congestion in the first ingress queue. Among them, the utilization threshold can be customized according to the actual situation, such as 90%, 95%, etc. This application does not specifically limit this.
还可以理解,若第二入口队列拥塞程度较严重,那么第一下游网络设备向第一网络设备发送PFC报文的频率会比较高,若第二入口队列拥塞程度较轻,甚至接近空闲,那么第一下游网络设备向第一网络设备发送PFC报文的频率会比较低,在第二入口队列拥塞程度较严重时,第二入口队列拥塞通常会导致第一出口队列拥塞,在第二入口队列拥塞程度较轻时,第二入口队列拥塞通常不会导致第一出口队列拥塞。It can also be understood that if the congestion level of the second ingress queue is serious, the frequency of the first downstream network device sending PFC packets to the first network device will be relatively high. If the congestion level of the second ingress queue is light, or even close to idle, then The frequency of PFC packets sent by the first downstream network device to the first network device will be relatively low. When the congestion level of the second ingress queue is severe, congestion in the second ingress queue will usually lead to congestion in the first egress queue. When the degree of congestion is light, congestion in the second ingress queue usually does not cause congestion in the first egress queue.
因此,第一网络设备可以通过检测自身接收到第一下游网络设备发送的PFC报文的频率是否大于频率阈值,来判断第一出口队列拥塞是否为第二入口队列拥塞导致,从而判断第一入口队列拥塞是否为第一入口队列拥塞的源头。Therefore, the first network device can determine whether the first egress queue congestion is caused by the second ingress queue congestion by detecting whether the frequency with which it receives PFC messages sent by the first downstream network device is greater than the frequency threshold, thereby determining whether the first ingress queue congestion is caused by the second ingress queue congestion. Whether queue congestion is the source of congestion in the first entry queue.
具体地,第一网络设备若检测到自身接收到PFC报文的频率大于频率阈值,则确定第一出口队列拥塞是第二入口队列拥塞导致,从而确定第一出口队列拥塞不是第一入口队列拥塞 的源头,反之,则确定第一出口队列拥塞不是第二入口队列拥塞导致,从而确定第一出口队列拥塞是第一入口队列拥塞的源头。其中,频率阈值可以根据实际情况自定义,如10次/秒、20次/秒等,本申请对此不作具体限定。Specifically, if the first network device detects that the frequency with which it receives PFC messages is greater than the frequency threshold, it determines that congestion in the first egress queue is caused by congestion in the second ingress queue, thereby determining that congestion in the first egress queue is not congestion in the first ingress queue. On the contrary, it is determined that the congestion in the first egress queue is not caused by the congestion in the second ingress queue, and thus it is determined that the congestion in the first egress queue is the source of the congestion in the first inlet queue. The frequency threshold can be customized according to actual conditions, such as 10 times/second, 20 times/second, etc. This application does not specifically limit this.
还可以理解,在第一网络设备执行图4所示实施例的同时,第一下游网络设备也会执行图4所示实施例,若第一下游网络设备在执行图4所示实施例时,从第二入口队列对应的多个第二出口队列转发的报文流中识别到第二拥塞流,由于多个第二出口队列转发的报文流为第一网络设备通过第一出口队列发送,那么第一下游网络设备会向第一网络设备发送用于指示对第二拥塞流进行隔离处理第二拥塞控制消息。第一下游网络设备生成第二拥塞控制消息的过程与下文所述第一网络设备生成第一拥塞控制消息的过程相类似,具体可以参考下文相关描述,此处不再展开赘述。It can also be understood that while the first network device executes the embodiment shown in Figure 4, the first downstream network device will also execute the embodiment shown in Figure 4. If the first downstream network device executes the embodiment shown in Figure 4, The second congested flow is identified from the packet flows forwarded by the plurality of second egress queues corresponding to the second ingress queue. Since the packet flows forwarded by the plurality of second egress queues are sent by the first network device through the first egress queue, Then the first downstream network device sends a second congestion control message to the first network device for instructing isolation processing of the second congestion flow. The process by which the first downstream network device generates the second congestion control message is similar to the process by which the first network device generates the first congestion control message described below. For details, please refer to the relevant description below, which will not be described again here.
第一网络设备一旦接收到第一下游网络设备发送的用于指示对第二拥塞流进行隔离处理的第二拥塞控制消息,则表示第一下游网络设备已经确定了第二入口队列拥塞。在第二入口队列拥塞时,第一出口队列拥塞通常为第二入口队列拥塞导致。若第二入口队列空闲,那么第一下游网络设备不会执行图4所示实施例,从多个第二出口队列转发的报文流中识别拥塞流,第一下游网络设备也不会生成用于指示对第二拥塞流进行隔离处理的第二拥塞控制消息,并向第一网络设备发送。Once the first network device receives the second congestion control message sent by the first downstream network device for instructing to isolate the second congestion flow, it means that the first downstream network device has determined that the second ingress queue is congested. When the second ingress queue is congested, congestion in the first egress queue is usually caused by congestion in the second ingress queue. If the second ingress queue is idle, the first downstream network device will not execute the embodiment shown in Figure 4 to identify the congested flow from the message flows forwarded by the multiple second egress queues, and the first downstream network device will not generate a user request. A second congestion control message indicating isolation processing of the second congestion flow is sent to the first network device.
因此,第一网络设备可以通过是否接收到第一下游网络设备发送的第二拥塞控制消息,来判断第一出口队列拥塞是否为第二入口队列拥塞导致,从而判断第一入口队列拥塞是否为第一入口队列拥塞的源头。Therefore, the first network device can determine whether the congestion of the first egress queue is caused by the congestion of the second ingress queue by whether it receives the second congestion control message sent by the first downstream network device, thereby determining whether the congestion of the first ingress queue is caused by the congestion of the second ingress queue. A source of ingress queue congestion.
具体地,第一网络设备若接收到第一下游网络设备发送的第二拥塞控制消息,则确定第一出口队列拥塞是第二入口队列拥塞导致,从而确定第一出口队列拥塞不是第一入口队列拥塞的源头,反之,则确定第一出口队列拥塞不是第二入口队列拥塞导致,从而确定第一出口队列拥塞是第一入口队列拥塞的源头。Specifically, if the first network device receives the second congestion control message sent by the first downstream network device, it determines that the congestion of the first egress queue is caused by the congestion of the second ingress queue, thereby determining that the congestion of the first egress queue is not caused by the first ingress queue. Otherwise, it is determined that the congestion in the first egress queue is not caused by the congestion in the second ingress queue, and thus it is determined that the congestion in the first egress queue is the source of the congestion in the first ingress queue.
应理解,上述所列举的几种检测多个出口队列的状态的实现方式仅仅是作为示例,具体实现中,还可以通过其他方式检测多个出口队列的状态,如通过上述所列举的几种检测多个出口队列的状态的实现方式中的至少两种组合,实现多个出口队列的状态的检测,本申请对此不作具体限定。It should be understood that the above-mentioned implementation methods for detecting the status of multiple egress queues are only examples. In specific implementations, the status of multiple egress queues can also be detected through other methods, such as through the above-mentioned detection methods. At least two combinations of the ways to realize the status of multiple egress queues are used to detect the status of multiple egress queues, which is not specifically limited in this application.
S4023:确定多个出口队列的拥塞均不是第一入口队列拥塞的源头。S4023: It is determined that congestion in multiple egress queues is not the source of congestion in the first ingress queue.
需要说明的,网络设备中的一个入口队列拥塞,通常伴随着网络设备中与该入口队列对应的多个出口队列中的部分或者全部拥塞,基本不存在多个出口队列全部空闲的情况,因此,在本申请中,将多个出口队列全部空闲的情况忽略。It should be noted that congestion of an ingress queue in a network device is usually accompanied by congestion in part or all of multiple egress queues corresponding to the ingress queue in the network device. There is basically no situation where all multiple egress queues are idle. Therefore, In this application, the situation where multiple egress queues are all idle is ignored.
应理解,S4023仅仅是作为一种示例,具体实现中,第一网络设备若检测到多个出口队列均拥塞,可以再次或者多次检测多个出口队列的状态,确定多个出口队列是否确实均拥塞。It should be understood that S4023 is only an example. In specific implementation, if the first network device detects that multiple egress queues are all congested, it can detect the status of multiple egress queues again or multiple times to determine whether the multiple egress queues are indeed evenly loaded. congestion.
S403:若检测到多个出口队列中存在处于第一状态的出口队列和空闲的出口队列,则将处于第一状态的出口队列转发的报文流确定为第一拥塞流,将空闲的出口队列转发的报文流确定为非拥塞流。S403: If it is detected that there is an egress queue in the first state and an idle egress queue in multiple egress queues, determine the message flow forwarded by the egress queue in the first state as the first congestion flow, and the idle egress queue The forwarded packet flow is determined to be a non-congested flow.
可以理解,第一网络设备在检测到多个出口队列中存在处于第一状态的出口队列和空闲的出口队列的同时,可能会检测到多个出口队列中存在处于第二状态的出口队列,若检测到多个出口队列中存在处于第二状态的出口队列,第一网络设备可以暂时将处于第二状态的出口队列转发的报文流确定为非拥塞流,后续基于是否接收到第二下游网络设备(指用于接收 处于第二状态的出口队列转发的报文流的下游网络设备)发送的用于指示对第三拥塞流进行隔离处理的第三拥塞控制消息,来确定处于第二状态的出口队列转发的报文流是否为拥塞流。It can be understood that when the first network device detects that there are egress queues in the first state and idle egress queues in the multiple egress queues, it may also detect that there are egress queues in the second state in the multiple egress queues. If After detecting that an egress queue in the second state exists in multiple egress queues, the first network device can temporarily determine the message flow forwarded by the egress queue in the second state as a non-congested flow, and subsequently determine whether the packet flow forwarded by the egress queue in the second state is received by the second downstream network. equipment (referring to receiving The third congestion control message sent by the downstream network device of the message flow forwarded by the egress queue in the second state to instruct the isolation processing of the third congestion flow to determine the message forwarded by the egress queue in the second state. Whether the flow is a congested flow.
可以理解,在第一网络设备执行图4所示实施例的同时,第二下游网络设备也会执行图4所示实施例,若第二下游网络设备在执行图4所示实施例时,从处于第二状态的出口队列转发的报文流中识别到第三拥塞流,则第二下游网络设备会向第一网络设备发送用于指示对第三拥塞流进行隔离处理的第三拥塞控制消息。第二下游网络设备生成第三拥塞控制消息的过程与下文所述第一网络设备生成第一拥塞控制消息的过程相类似,具体可以参考下文相关描述,此处不再展开赘述。It can be understood that while the first network device executes the embodiment shown in Figure 4, the second downstream network device will also execute the embodiment shown in Figure 4. If the second downstream network device executes the embodiment shown in Figure 4, from If the third congestion flow is identified in the packet flow forwarded by the egress queue in the second state, the second downstream network device will send a third congestion control message to the first network device to instruct the isolation processing of the third congestion flow. . The process by which the second downstream network device generates the third congestion control message is similar to the process by which the first network device generates the first congestion control message described below. For details, please refer to the relevant description below, which will not be described again here.
第一网络设备在接收到第二下游网络设备发送的第三拥塞控制消息时,基于第三拥塞控制消息可以从处于第二状态的出口队列转发的报文流中确定第三拥塞流。若第一网络设备未接收到第二下游网络设备发送的第三拥塞控制消息,表明第二下游网络设备未从处于第二状态的出口队列转发的报文流中确定第三拥塞流,那么第一网络设备一直将处于第二状态的出口队列转发的报文流确定为非拥塞流。When receiving the third congestion control message sent by the second downstream network device, the first network device may determine the third congestion flow from the packet flow forwarded by the egress queue in the second state based on the third congestion control message. If the first network device does not receive the third congestion control message sent by the second downstream network device, indicating that the second downstream network device has not determined the third congestion flow from the message flow forwarded by the egress queue in the second state, then the A network device always determines the packet flow forwarded by the egress queue in the second state as a non-congested flow.
可以理解,第一网络设备在检测到多个出口队列中存在处于第一状态的出口队列和空闲的出口队列时,还可以确定第一入口队列发生了HOLB。It can be understood that when the first network device detects that there are egress queues in the first state and idle egress queues in the multiple egress queues, the first network device may also determine that HOLB has occurred in the first ingress queue.
S404:若检测到多个出口队列不存在处于第一状态的出口队列或者不存在空闲的出口队列,则将多个出口队列转发的报文流均确定为非拥塞流。S404: If it is detected that there is no egress queue in the first state or no idle egress queue in the multiple egress queues, then all the packet flows forwarded by the multiple egress queues are determined to be non-congested flows.
应理解,S404仅仅是作为一种示例,具体实现中,第一网络设备若检测到多个出口队列不存在处于第一状态的出口队列或者不存在空闲的出口队列,也可以不对多个出口队列转发的报文流进行处理,默认多个出口队列转发的报文流均为非拥塞流;或者,为了防止将拥塞流误识别为非拥塞流,可以再次或者多次检测多个出口队列的状态,确定多个出口队列是否确实不存在处于第一状态的出口队列或者不存在空闲的出口队列;或者,后续,第一网络设备可以基于是否接收到第三下游网络设备发送的用于指示对第四拥塞流进行隔离处理的第四拥塞控制消息,来确定多个出口队列中的目标出口队列转发的报文流是否为拥塞流。其中,第三下游网络设备指用于接收目标出口队列转发的报文流的下游网络设备。第三下游网络设备生成第四拥塞控制消息的过程与下文所述第一网络设备生成第一拥塞控制消息的过程相类似,具体可以参考下文相关描述,此处不再展开赘述。It should be understood that S404 is only an example. In specific implementation, if the first network device detects that there is no egress queue in the first state or there is no idle egress queue in the multiple egress queues, it may not delete the multiple egress queues. The forwarded packet flows are processed. By default, the packet flows forwarded by multiple egress queues are all non-congested flows; or, in order to prevent congested flows from being misidentified as non-congested flows, the status of multiple egress queues can be detected again or multiple times. , determine whether there is indeed no egress queue in the first state or no idle egress queue in the multiple egress queues; or, subsequently, the first network device may receive an instruction sent by the third downstream network device based on whether The fourth congestion control message is used for isolation processing of the four congested flows to determine whether the message flow forwarded by the target egress queue in the multiple egress queues is a congested flow. The third downstream network device refers to the downstream network device used to receive the message flow forwarded by the target egress queue. The process by which the third downstream network device generates the fourth congestion control message is similar to the process by which the first network device generates the first congestion control message described below. For details, reference may be made to the relevant description below, which will not be described again here.
在本申请具体的实施例中,第一网络设备在确定第一拥塞流之后,可以生成第一拥塞控制消息,并向上游网络设备(指发送第一拥塞流给第一网络设备的设备,如与第一网络设备直接相连且转发第一拥塞流给第一网络设备的网络设备、第一拥塞流的源设备等)发送第一拥塞控制消息,第一拥塞控制消息可以携带第一拥塞流的标识,第一拥塞控制消息用于指示上游网络设备对第一拥塞流进行隔离处理。具体地,上游网络设备在接收到第一拥塞控制消息后,可以基于第一拥塞流的标识,确定第一拥塞流,然后对第一拥塞流进行隔离处理。In a specific embodiment of the present application, after determining the first congestion flow, the first network device may generate a first congestion control message and send it to the upstream network device (referring to the device that sends the first congestion flow to the first network device, such as A network device directly connected to the first network device and forwarding the first congestion flow to the first network device, a source device of the first congestion flow, etc.) sends a first congestion control message. The first congestion control message may carry the first congestion flow. The first congestion control message is used to instruct the upstream network device to isolate the first congestion flow. Specifically, after receiving the first congestion control message, the upstream network device may determine the first congestion flow based on the identifier of the first congestion flow, and then perform isolation processing on the first congestion flow.
其中,第一拥塞流的标识,用于上游网络设备确定唯一一个该标识对应的报文流,例如,第一拥塞流的标识可以为第一拥塞流的五元组信息(指源IP地址、目的IP地址、源端口号、目的端口号、传输层协议),或者三元组信息,或者其他类型的信息或信息组合,此处不作具体限定。The identifier of the first congestion flow is used by the upstream network device to determine the only message flow corresponding to the identifier. For example, the identifier of the first congestion flow can be the five-tuple information of the first congestion flow (referring to the source IP address, destination IP address, source port number, destination port number, transport layer protocol), or triplet information, or other types of information or information combinations, which are not specifically limited here.
在本申请具体的实施例中,第一网络设备生成的第一拥塞控制消息还可以携带多个出口队列的状态,具体地,多个出口队列的状态可以按照多个出口队列所在的端口的顺序携带于第一拥塞控制消息;若第一网络设备确定的第一拥塞流包括至少两个处于第一状态的出口队 列转发的报文流,则第一网络设备可以将至少两个处于第一状态的出口队列转发的报文流的标识,也按照多个出口队列所在的端口的顺序携带于第一拥塞控制消息。如此,可以使得上游网络设备基于第一拥塞控制消息,获知第一网络设备中的多个出口队列的状态,而且,可以获知多个出口队列中是排序第几的出口队列转发的报文流为拥塞流。In a specific embodiment of the present application, the first congestion control message generated by the first network device can also carry the status of multiple egress queues. Specifically, the status of the multiple egress queues can be in the order of the ports where the multiple egress queues are located. carried in the first congestion control message; if the first congestion flow determined by the first network device includes at least two egress teams in the first state The first network device can also carry the identifiers of the packet flows forwarded by at least two egress queues in the first state in the first congestion control message in the order of the ports where the multiple egress queues are located. . In this way, the upstream network device can learn the status of the multiple egress queues in the first network device based on the first congestion control message, and furthermore, it can learn the sequence of the message flow forwarded by the egress queue among the multiple egress queues. Congested flow.
进一步地,在将多个出口队列的状态携带于第一拥塞控制消息时,可以用不同的字符串表示出口队列的不同状态,例如,用二进制的1表示出口队列处于第一状态,用二进制的0表示出口队列处于非第一状态,又例如,用00A表示出口队列处于第一状态,用00B表示出口队列处于第二状态,用00C表示出口队列空闲,本申请不对出口队列的状态携带于第一拥塞控制消息的方式进行具体限定。为了便于描述,在接下来的实施例中,均以用二进制的1表示出口队列处于第一状态,用二进制的0表示出口队列处于非第一状态,将多个出口队列的状态携带于第一拥塞控制消息为例进行描述。Further, when the status of multiple egress queues is carried in the first congestion control message, different character strings can be used to represent different states of the egress queues. For example, binary 1 is used to indicate that the egress queue is in the first state, and binary 1 is used to indicate that the egress queue is in the first state. 0 indicates that the egress queue is in a non-first state. For example, 00A is used to indicate that the egress queue is in the first state, 00B is used to indicate that the egress queue is in the second state, and 00C is used to indicate that the egress queue is idle. This application does not carry the status of the egress queue in the third state. A congestion control message method is specifically defined. For the convenience of description, in the following embodiments, a binary 1 is used to indicate that the egress queue is in the first state, and a binary 0 is used to indicate that the egress queue is in a non-first state. The status of multiple egress queues is carried in the first state. The congestion control message is described as an example.
示例性地,以图5为例,假设第一网络设备为图5中的网络设备B,第一入口队列为图5中的入口队列B12,多个出口队列为图5中的出口队列B32和出口队列B42,出口队列B32和出口队列B42所在的端口B3和端口B4的顺序为:B3、B4,出口队列B32处于第一状态,出口队列B42空闲,网络设备B识别出的第一拥塞流为出口队列B32转发的报文流1,报文流1的标识为ID1,则第一拥塞控制消息携带的多个出口队列的状态和第一拥塞流的标识为:10ID1,其中,10中的1表示出口队列B32处于第一状态,10中的0表示出口队列B42处于非第一状态。Illustratively, taking Figure 5 as an example, assume that the first network device is network device B in Figure 5, the first ingress queue is ingress queue B12 in Figure 5, and the multiple egress queues are egress queues B32 and B in Figure 5. The order of egress queue B42, egress queue B32 and port B4 where egress queue B42 is located is: B3, B4, egress queue B32 is in the first state, egress queue B42 is idle, and the first congestion flow identified by network device B is Packet flow 1 forwarded by egress queue B32, the identifier of message flow 1 is ID1, then the status of multiple egress queues and the identifier of the first congestion flow carried in the first congestion control message are: 10ID1, where 1 of 10 It means that the egress queue B32 is in the first state, and 0 in 10 means that the egress queue B42 is in the non-first state.
上游网络设备在接收到第一拥塞控制消息后,基于第一拥塞控制消息中携带的第一拥塞流的标识可以确定第一拥塞流,然后,对第一拥塞流进行隔离处理。After receiving the first congestion control message, the upstream network device may determine the first congestion flow based on the identifier of the first congestion flow carried in the first congestion control message, and then perform isolation processing on the first congestion flow.
继续以第一拥塞控制消息携带的多个出口队列的状态和第一拥塞流的标识为“10ID1”为例,假设上游网络设备为图5所示的网络设备A,则网络设备A在接收到第一拥塞控制消息后,基于第一拥塞控制消息携带的“10ID1”,可以确定网络设备B的2个出口队列的状态对应为第一状态、非第一状态,以及确定为第一状态的出口队列转发的第一拥塞流的标识为ID1。然后,网络设备A可以从报文流1和报文流2中,确定标识为ID1的报文流1为第一拥塞流,然后,对报文流1进行隔离处理。Continuing to take the status of multiple egress queues carried by the first congestion control message and the identification of the first congestion flow as "10ID1" as an example, assuming that the upstream network device is network device A shown in Figure 5, then network device A receives After the first congestion control message, based on the "10ID1" carried in the first congestion control message, it can be determined that the states of the two egress queues of network device B correspond to the first state, the non-first state, and the egress determined to be the first state. The identifier of the first congested flow forwarded by the queue is ID1. Then, network device A can determine from the message flow 1 and the message flow 2 that the message flow 1 identified as ID1 is the first congested flow, and then isolate the message flow 1.
在本申请具体的实施例中,第一网络设备可以周期性的执行图4所示实施例,重新检测第一入口队列和出口队列的状态,并基于重新检测的第一入口队列和多个出口队列的状态确定多个出口队列转发的报文流中是否存在至少一条拥塞流,并基于检测结果生成新的第一拥塞控制消息,然后向上游网络设备发送新的第一拥塞控制消息。In a specific embodiment of the present application, the first network device can periodically execute the embodiment shown in Figure 4 to re-detect the status of the first ingress queue and the egress queue, and based on the re-detected first ingress queue and multiple egresses The status of the queue determines whether there is at least one congested flow among the message flows forwarded by multiple egress queues, generates a new first congestion control message based on the detection result, and then sends the new first congestion control message to the upstream network device.
具体地,第一网络设备若确定多个出口队列转发的报文流中不存在至少一条拥塞流,则生成的新的第一拥塞控制消息携带重新检测的多个出口队列的状态,该新的第一拥塞控制消息用于指示基于重新检测的多个出口队列的状态,停止对第一拥塞流进行隔离处理。Specifically, if the first network device determines that there is not at least one congestion flow among the message flows forwarded by the multiple egress queues, the new first congestion control message generated carries the re-detected status of the multiple egress queues, and the new The first congestion control message is used to instruct to stop isolation processing of the first congestion flow based on the re-detected status of multiple egress queues.
若确定多个出口队列转发的报文流中存在至少一条拥塞流,且该至少一条拥塞流不包括第一拥塞流,则生成的新的第一拥塞控制消息携带重新检测的多个出口队列的状态和该至少一条拥塞流的标识,该新的第一拥塞控制消息用于指示基于重新检测的多个出口队列的状态,停止,对第一拥塞流进行隔离处理,并指示对该至少一条拥塞流进行隔离处理。If it is determined that there is at least one congested flow among the packet flows forwarded by multiple egress queues, and the at least one congested flow does not include the first congestion flow, the generated new first congestion control message carries the re-detected information of the multiple egress queues. status and the identification of the at least one congested flow, the new first congestion control message is used to indicate the status of multiple egress queues based on re-detection, stop, isolate the first congested flow, and indicate that the at least one congested flow The stream is isolated.
若确定多个出口队列转发的报文流中存在至少一条拥塞流,且该至少一条拥塞流包括第一拥塞流,则生成的新的第一拥塞控制消息携带重新检测的多个出口队列的状态和该至少一条拥塞流中除第一拥塞流之外的拥塞流的标识,该新的第一拥塞控制消息用于指示继续对第 一拥塞流进行隔离处理,并指示对该至少一条拥塞流中除第一拥塞流之外的拥塞流进行隔离处理。可选地,生成的新的第一拥塞控制消息中也可以携带第一拥塞流的标识。If it is determined that there is at least one congested flow among the packet flows forwarded by multiple egress queues, and the at least one congested flow includes the first congested flow, the generated new first congestion control message carries the re-detected status of the multiple egress queues. and the identification of the congestion flow other than the first congestion flow in the at least one congestion flow, and the new first congestion control message is used to indicate to continue to control the third congestion flow. Perform isolation processing on a congestion flow, and instruct congestion flows other than the first congestion flow in the at least one congestion flow to perform isolation processing. Optionally, the generated new first congestion control message may also carry the identifier of the first congestion flow.
继续以第一网络设备为图5中的网络设备B,上游网络设备为图5中的网络设备A,第一入口队列为图5中的入口队列B12,多个出口队列为图5中的出口队列B32和出口队列B42,出口队列B32和出口队列B42所在的端口B3和端口B4的顺序为:B3、B4,出口队列B32处于第一状态,出口队列B42空闲,第一拥塞流为出口队列B32转发的报文流1,报文流1的标识为ID1为例,假设网络设备C重新检测到入口队列B12拥塞、出口队列B32空闲以及出口队列B42空闲,则网络设备C可以确定报文流1和报文流2中不存在拥塞流,并生成新的第一拥塞控制消息,该新的第一拥塞控制消息携带的出口队列B32和出口队列B42的状态为:00。Continue to assume that the first network device is network device B in Figure 5, the upstream network device is network device A in Figure 5, the first ingress queue is ingress queue B12 in Figure 5, and the multiple egress queues are egresses in Figure 5 Queue B32 and egress queue B42, the order of port B3 and port B4 where egress queue B32 and egress queue B42 are located is: B3, B4, egress queue B32 is in the first state, egress queue B42 is idle, and the first congested flow is egress queue B32 Forwarded message flow 1, the identifier of message flow 1 is ID1 as an example. Assume that network device C re-detects that ingress queue B12 is congested, egress queue B32 is idle, and egress queue B42 is idle. Network device C can determine message flow 1. There is no congestion flow in packet flow 2, and a new first congestion control message is generated. The status of the egress queue B32 and egress queue B42 carried by the new first congestion control message is: 00.
网络设备A在接收到新的第一拥塞控制消息后,基于新的第一拥塞控制消息携带的重新检测的出口队列B32和出口队列B42的状态“00”,可以确定网络设备B的2个出口队列的状态为:非第一状态、非第一状态,然后将新的第一拥塞控制消息中携带的状态“00”,与上一次接收的第一拥塞控制消息中携带的状态“10”进行比较,可以确定网络设备B中排序第一的出口队列的状态发生了变化,即从第一状态变为了非第一状态。此外,网络设备A基于上一次接收的第一拥塞控制消息,可以获知网络设备B中排序第一的出口队列转发的报文流的标识为ID1,因此,网络设备A可以从报文流1和报文流2中,确定标识为ID1的报文流1为第一拥塞流,然后,停止对报文流1进行隔离处理。After receiving the new first congestion control message, network device A can determine the two egresses of network device B based on the status "00" of the re-detected egress queue B32 and egress queue B42 carried in the new first congestion control message. The status of the queue is: non-first status, non-first status, and then compare the status "00" carried in the new first congestion control message with the status "10" carried in the last received first congestion control message. By comparison, it can be determined that the state of the first-ordered egress queue in network device B has changed, that is, from the first state to a non-first state. In addition, based on the first congestion control message received last time, network device A can learn that the identifier of the packet flow forwarded by the first-ordered egress queue in network device B is ID1. Therefore, network device A can obtain the ID1 from packet flow 1 and In packet flow 2, determine that packet flow 1 identified as ID1 is the first congested flow, and then stop isolating packet flow 1.
在一种可能的实施例中,第一网络设备生成的每个第一拥塞控制消息均携带多个出口队列转发的报文流的标识,具体地,多个出口队列转发的报文流的标识可以按照多个出口队列所在的端口的顺序携带于每个第一拥塞控制消息。如此,可以使得上游网络设备基于每个第一拥塞控制消息获知第一网络设备中的多个出口队列的状态,而且,可以获知多个出口队列中排序第几的出口队列发送的报文流为拥塞流以及该流的标识,还可以获知多个出口队列中排序第几的出口队列发送的报文流为非拥塞流以及该流的标识,以及基于多个出口队列的状态确定是否停止某条拥塞流的隔离处理。In a possible embodiment, each first congestion control message generated by the first network device carries the identifier of the message flow forwarded by multiple egress queues. Specifically, the identifier of the message flow forwarded by multiple egress queues. The first congestion control message may be carried in the order of the ports where the multiple egress queues are located. In this way, the upstream network device can learn the status of multiple egress queues in the first network device based on each first congestion control message. Furthermore, it can learn the message flow sent by the egress queue ranked among the multiple egress queues. Congested flow and the identifier of the flow. You can also know the message flow sent by the egress queue ranked among multiple egress queues as a non-congested flow and the identifier of the flow. You can also determine whether to stop a certain flow based on the status of multiple egress queues. Isolation processing of congested flows.
可以理解,在每个第一拥塞控制消息均携带多个出口队列转发的报文流的标识的情况下,上游网络设备在接收到每个第一拥塞控制消息后,基于每个第一拥塞控制消息就可以确定哪个标识的报文流为拥塞流,哪个标识的报文流为非拥塞流,然后对应进行隔离处理或者暂停隔离处理,无需参考上一次接收到的第一拥塞控制消息。It can be understood that in the case where each first congestion control message carries the identifier of the message flow forwarded by multiple egress queues, the upstream network device, after receiving each first congestion control message, based on each first congestion control message The message can determine which identified packet flow is a congested flow and which identified packet flow is a non-congested flow, and then perform isolation processing or suspend isolation processing accordingly, without referring to the first congestion control message received last time.
具体实现中,上游网络设备的拥塞队列的数量可以不止一个,例如,上游网络设备的拥塞队列,可以包括上游网络设备中与第一入口队列所在的端口对应的端口中的拥塞队列,以及其他等价端口中的拥塞队列。继续以上游网络设备为图5所示的网络设备A、第一网络设备为图5所示的网络设备B为例,假设网络设备A中的两个端口(端口A3和端口A4)为等价端口,网络设备A通过这两个端口中任意一个均可以与网络设备B的端口B1通信,第一入口队列为端口B1中的入口队列B12,则网络设备A中的拥塞队列可以包括端口A3中的拥塞队列和端口A4中的拥塞队列。In specific implementation, the number of congestion queues of the upstream network device may be more than one. For example, the congestion queue of the upstream network device may include the congestion queue in the port of the upstream network device corresponding to the port where the first entry queue is located, and others. Congestion queue in price port. Continuing to take the upstream network device as network device A shown in Figure 5 and the first network device as network device B shown in Figure 5 as an example, assume that the two ports (port A3 and port A4) in network device A are equivalent port, network device A can communicate with port B1 of network device B through either of these two ports. The first entry queue is the entry queue B12 in port B1, then the congestion queue in network device A can include the entry queue in port A3. The congestion queue of and the congestion queue in port A4.
继续以网络设备A包括等价端口A3中的拥塞队列和端口A4中的拥塞队列为例,假设第一拥塞流为报文流1,网络设备A在基于第一拥塞控制消息隔离报文流1时,可以在端口A3中的拥塞队列和端口A4中的拥塞队列中任选一个拥塞队列隔离报文流1,也可以基于两个拥塞队列的状态选择用于隔离报文流1的目标拥塞队列,例如,若一个拥塞队列拥塞,一个拥塞队列空闲,则选择空闲的拥塞队列,若两个拥塞队列均拥塞或者均空闲,则选择网络 设备A在接收到第一拥塞控制消息之前,用来传输报文流1的端口中的拥塞队列,即端口A3中的拥塞队列。Continuing to take the example of network device A including the congestion queue in equal-cost port A3 and the congestion queue in port A4, assuming that the first congestion flow is packet flow 1, network device A isolates packet flow 1 based on the first congestion control message When , you can select any one of the congestion queues in the congestion queue in port A3 and the congestion queue in port A4 to isolate message flow 1, or you can select the target congestion queue for isolating message flow 1 based on the status of the two congestion queues. , for example, if one congestion queue is congested and one congestion queue is idle, select the idle congestion queue. If both congestion queues are congested or both are idle, select the network Before receiving the first congestion control message, device A uses the congestion queue in the port used to transmit packet flow 1, that is, the congestion queue in port A3.
下面继续以图5和图6为例,对图4所示实施例做进一步的说明。The following will continue to take FIG. 5 and FIG. 6 as examples to further describe the embodiment shown in FIG. 4 .
图5和图6为本申请示例性示出的多个网络设备之间传输报文流的示意图,在图5和图6中,可以将网络设备B看作上述第一网络设备,将网络设备B中的入口队列B12看作上述第一入口队列,将网络设备B中的出口队列B32和出口队列B42看作上述多个出口队列,报文流1为出口队列B32转发的报文流,报文流2为出口队列B42转发的报文流,将网络设备A看作网络设备B的上游网络设备,将网络设备C看作网络设备B的下游网络设备,将网络设备C中的入口队列C12看作第二入口队列。Figures 5 and 6 are schematic diagrams of message flows between multiple network devices exemplarily shown in this application. In Figures 5 and 6, network device B can be regarded as the above-mentioned first network device, and network device B can be regarded as the above-mentioned first network device. The ingress queue B12 in B is regarded as the above-mentioned first ingress queue, and the egress queue B32 and egress queue B42 in network device B are regarded as the above-mentioned multiple egress queues. Message flow 1 is the message flow forwarded by egress queue B32. Message flow 2 is the message flow forwarded by egress queue B42. Network device A is regarded as the upstream network device of network device B. Network device C is regarded as the downstream network device of network device B. Ingress queue C12 in network device C is regarded as Considered as the second entry queue.
首先以图5为例,在图5中,入口队列B12拥塞,出口队列B32拥塞,出口队列B42空闲,入口队列C12空闲,出口队列B32的带宽利用率为90%。First, take Figure 5 as an example. In Figure 5, the ingress queue B12 is congested, the egress queue B32 is congested, the egress queue B42 is idle, the ingress queue C12 is idle, and the bandwidth utilization rate of the egress queue B32 is 90%.
则网络设备B在执行图4所示实施例中的S401和S402时,会检测到入口队列B12拥塞,出口队列B32拥塞,出口队列B42空闲,出口队列B32的带宽利用率为90%,假设利用率阈值为80%,则网络设备B可以确定出口队列B32的带宽利用率大于利用率阈值,从而确定出口队列B32的拥塞是入口队列B12拥塞的源头,即确定出口队列B32处于第一状态。此时,网络设备B会发现出口队列B32和出口队列B42中存在处于第一状态的出口队列B32和空闲的出口队列B42,因此,网络设备B会执行图4所示实施例中的S403,将出口队列B32转发的报文流1确定为拥塞流,将出口队列B42转发的报文流2确定为非拥塞流。When network device B executes S401 and S402 in the embodiment shown in Figure 4, it will detect that the ingress queue B12 is congested, the egress queue B32 is congested, the egress queue B42 is idle, and the bandwidth utilization rate of the egress queue B32 is 90%. Assume that the utilization rate is 90%. If the rate threshold is 80%, network device B can determine that the bandwidth utilization of egress queue B32 is greater than the utilization threshold, thereby determining that the congestion of egress queue B32 is the source of congestion of ingress queue B12, that is, determining that egress queue B32 is in the first state. At this time, network device B will find that there is an egress queue B32 in the first state and an idle egress queue B42 in the egress queue B32 and egress queue B42. Therefore, network device B will execute S403 in the embodiment shown in Figure 4, and will Packet flow 1 forwarded by egress queue B32 is determined as a congested flow, and packet flow 2 forwarded by egress queue B42 is determined as a non-congested flow.
可以看出,网络设备B通过执行图4所示实施例,可以准确识别出报文流1为拥塞流,以及准确识别出报文流2为非拥塞流。It can be seen that by executing the embodiment shown in Figure 4, network device B can accurately identify message flow 1 as a congested flow, and accurately identify message flow 2 as a non-congested flow.
接下来以图6为例,在图6中,入口队列B12拥塞,出口队列B32拥塞,出口队列B42空闲,入口队列C12拥塞,出口队列B32的带宽利用率为5%。Next, take Figure 6 as an example. In Figure 6, the ingress queue B12 is congested, the egress queue B32 is congested, the egress queue B42 is idle, the ingress queue C12 is congested, and the bandwidth utilization rate of the egress queue B32 is 5%.
则网络设备B在执行图4所示实施例中的S401和S402时,会检测到入口队列B12拥塞,出口队列B32拥塞,出口队列B42空闲,出口队列B32的带宽利用率为5%,假设利用率阈值为80%,则网络设备B可以确定出口队列B32的带宽利用率小于利用率阈值,从而确定出口队列B32的拥塞不是入口队列B12拥塞的源头,即确定出口队列B32处于第二状态。此时,网络设备B会发现出口队列B32和出口队列B42中不存在处于第一状态的出口队列,因此,网络设备B会执行图4所示实施例中的S404,将出口队列B32转发的报文流1和出口队列B42转发的报文流2确定为非拥塞流。When network device B executes S401 and S402 in the embodiment shown in Figure 4, it will detect that the ingress queue B12 is congested, the egress queue B32 is congested, the egress queue B42 is idle, and the bandwidth utilization of the egress queue B32 is 5%. Assume that the utilization rate is 5%. If the rate threshold is 80%, network device B can determine that the bandwidth utilization of egress queue B32 is less than the utilization threshold, thereby determining that the congestion of egress queue B32 is not the source of congestion of ingress queue B12, that is, determining that egress queue B32 is in the second state. At this time, network device B will find that there is no egress queue in the first state in egress queue B32 and egress queue B42. Therefore, network device B will execute S404 in the embodiment shown in Figure 4 to forward the report from egress queue B32. Packet flow 1 and packet flow 2 forwarded by egress queue B42 are determined to be non-congested flows.
后续,网络设备B可以基于是否接收到网络设备C发送的用于指示对报文流1/报文流2进行隔离处理的拥塞控制消息,来确定报文流1或者报文流2是否为拥塞流。具体地,以网络设备B接收到网络设备C发送的用于指示对报文流1进行隔离处理的拥塞控制消息,那么,网络设备B基于该拥塞控制消息便可以确定报文流1为拥塞流。Subsequently, network device B can determine whether message flow 1 or message flow 2 is congested based on whether it receives a congestion control message sent by network device C to instruct isolation processing of message flow 1/message flow 2. flow. Specifically, network device B receives the congestion control message sent by network device C for instructing isolation processing of message flow 1. Then, network device B can determine that message flow 1 is a congested flow based on the congestion control message. .
可以看出,网络设备B通过执行图4所示实施例,可以准确识别出报文流1和报文流2是否为拥塞流。It can be seen that network device B can accurately identify whether message flow 1 and message flow 2 are congested flows by executing the embodiment shown in Figure 4.
通过上述实施例可以看出,在本申请提供的拥塞流识别方法中,一个网络设备可以通过检测入口队列以及入口队列对应的多个出口队列(指网络设备中用于转发该入口队列接收的报文流的出口队列)的状态(第一状态、第二状态或者空闲),在检测到多个出口队列中存在处于第一状态的出口队列和空闲的出口队列时,将处于第一状态的出口队列转发的报文流确定为第一拥塞流,将空闲的出口队列转发的报文流确定为非拥塞流,其中,第一状态指出口队列拥塞且出口队列拥塞是入口队列拥塞的源头,第二状态指出口队列拥塞且出口队列拥 塞不是入口队列拥塞的源头。可以看出,该方法可以准确识别出拥塞流和非拥塞流,大大降低非拥塞流被误识别拥塞流的可能性,因而能够有效解决现有技术存在的会将非拥塞流误识别为拥塞流的问题。As can be seen from the above embodiments, in the congestion flow identification method provided by this application, a network device can detect the ingress queue and multiple egress queues corresponding to the ingress queue (referring to the network device used to forward the packets received by the ingress queue). The state (first state, second state or idle) of the egress queue of the text flow). When it is detected that there are egress queues in the first state and idle egress queues in multiple egress queues, the egress in the first state will be The packet flow forwarded by the queue is determined as the first congested flow, and the packet flow forwarded by the idle egress queue is determined as the non-congested flow. The first state indicates that the egress queue is congested and the egress queue congestion is the source of the ingress queue congestion. The second state indicates that the egress queue is congested and the egress queue is congested. Blocks are not the source of ingress queue congestion. It can be seen that this method can accurately identify congested flows and non-congested flows, greatly reducing the possibility of non-congested flows being misidentified as congested flows. Therefore, it can effectively solve the existing technology problem of misidentifying non-congested flows as congested flows. The problem.
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。It should be understood that the sequence number of each step in the above embodiment does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiment of the present application.
接下来,介绍本申请提供的拥塞流识别装置,应理解,拥塞流识别装置内部的单元模块也可以有多种划分,各个模块可以是软件模块,也可以是硬件模块,也可以部分是软件模块部分是硬件模块,本申请不对其进行限制。当拥塞流识别装置包括多个单元模块时,该多个单元模块中的各个模块可以部署于同一个网络设备上,也可以部署于不同的网络设备上,本申请不作具体限定。Next, the congestion flow identification device provided by this application is introduced. It should be understood that the unit modules inside the congestion flow identification device can also be divided into multiple categories. Each module can be a software module, a hardware module, or a part of a software module. Some are hardware modules, which are not limited by this application. When the congestion flow identification device includes multiple unit modules, each module in the multiple unit modules can be deployed on the same network device or on different network devices, which is not specifically limited in this application.
参见图7,图7是本申请示例性示出的一种拥塞流识别装置700的结构示意图,该装置700包括:检测模块710和处理模块720。下面对拥塞流识别装置700的各个模块的功能进行示例性地介绍。应理解,以下所举例描述的各个模块的功能仅是拥塞流识别装置700在本申请的一些实施例中可以具有的功能,本申请并不对各个模块具有的功能进行限定。Referring to Figure 7, Figure 7 is a schematic structural diagram of a congestion flow identification device 700 exemplarily shown in this application. The device 700 includes: a detection module 710 and a processing module 720. The functions of each module of the congestion flow identification device 700 are exemplarily introduced below. It should be understood that the functions of each module described in the following examples are only the functions that the congestion flow identification device 700 can have in some embodiments of this application, and this application does not limit the functions of each module.
检测模块710,用于检测第一入口队列的状态,第一入口队列的状态为拥塞或空闲。The detection module 710 is used to detect the status of the first entry queue, and the status of the first entry queue is congestion or idle.
检测模块710,还用于若检测到第一入口队列拥塞,则检测多个出口队列的状态,多个出口队列中每个出口队列的状态为空闲、第一状态或者第二状态,第一状态表示每个出口队列拥塞且每个出口队列的拥塞是第一入口队列拥塞的源头,第二状态表示每个出口队列拥塞且每个出口队列的拥塞不是第一入口队列拥塞的源头,多个出口队列用于转发第一入口队列接收的报文流,多个出口队列用于转发的报文流互不相同。The detection module 710 is also configured to detect the status of multiple egress queues if congestion of the first ingress queue is detected. The status of each egress queue in the multiple egress queues is idle, the first state, or the second state. The first state Indicates that each egress queue is congested and the congestion of each egress queue is the source of congestion in the first ingress queue. The second state indicates that each egress queue is congested and the congestion of each egress queue is not the source of congestion in the first ingress queue. Multiple egresses The queue is used to forward the packet flow received by the first entry queue, and the multiple egress queues are used to forward different packet flows.
处理模块720,用于若检测到多个出口队列中存在处于第一状态的出口队列和空闲的出口队列,则将处于第一状态的出口队列转发的报文流确定为第一拥塞流,将空闲的出口队列转发的报文流确定为非拥塞流。The processing module 720 is configured to determine the message flow forwarded by the egress queue in the first state as the first congestion flow if it is detected that there are egress queues in the first state and idle egress queues in the multiple egress queues. Packet flows forwarded by idle egress queues are determined to be non-congested flows.
在一种可能的实现方式中,检测模块710,具体可以通过如下方式实现检测多个出口队列的状态:检测多个出口队列是否拥塞,若检测到多个出口队列中存在拥塞的出口队列和空闲的出口队列,则检测拥塞的出口队列的拥塞是否为第一入口队列拥塞的源头。In a possible implementation, the detection module 710 can detect the status of multiple egress queues in the following manner: detect whether multiple egress queues are congested. If it is detected that there are congested egress queues and idle egress queues in the multiple egress queues, of the egress queue, detect whether the congestion of the congested egress queue is the source of congestion of the first ingress queue.
在一种可能的实现方式中,检测模块710,具体可以通过如下方式实现检测拥塞的出口队列的拥塞是否为第一入口队列拥塞的源头:若检测到拥塞的出口队列的带宽利用率大于利用率阈值,则确定拥塞的出口队列拥塞是第一入口队列拥塞的源头;若检测到带宽利用率小于或者等于利用率阈值,则确定拥塞的出口队列拥塞不是第一入口队列拥塞的源头。In a possible implementation, the detection module 710 can specifically detect whether the congestion of the congested egress queue is the source of the congestion of the first ingress queue in the following manner: if it is detected that the bandwidth utilization of the congested egress queue is greater than the utilization rate threshold, it is determined that congestion in the congested egress queue is the source of congestion in the first ingress queue; if it is detected that the bandwidth utilization is less than or equal to the utilization threshold, it is determined that congestion in the congested egress queue is not the source of congestion in the first ingress queue.
在一种可能的实现方式中,检测模块710,具体可以通过如下方式实现检测拥塞的出口队列的拥塞是否为第一入口队列拥塞的源头:若接收到第一网络设备的下游网络设备发送的PFC报文的频率小于或者等于频率阈值,则确定拥塞的出口队列拥塞是第一入口队列拥塞的源头,PFC报文为下游网络设备在检测到第二入口队列拥塞时发送,第二入口队列为下游网络设备中用于接收拥塞的出口队列转发的报文流的入口队列;若接收到下游网络设备发送的PFC报文的频率大于频率阈值,则确定拥塞的出口队列拥塞不是第一入口队列拥塞的源头。In a possible implementation, the detection module 710 can detect whether the congestion of the congested egress queue is the source of the congestion of the first ingress queue in the following manner: if a PFC sent by a downstream network device of the first network device is received, If the frequency of the packets is less than or equal to the frequency threshold, it is determined that the congestion of the congested egress queue is the source of the congestion of the first ingress queue. The PFC message is sent by the downstream network device when it detects the congestion of the second ingress queue. The second ingress queue is downstream The ingress queue in the network device is used to receive the packet flow forwarded by the congested egress queue; if the frequency of receiving PFC messages sent by the downstream network device is greater than the frequency threshold, it is determined that the congested egress queue is not congested by the first ingress queue. source.
在一种可能的实现方式中,检测模块710,具体可以通过如下方式实现检测拥塞的出口队列的拥塞是否为第一入口队列拥塞的源头:若未接收到第一网络设备的下游网络设备发送的第二拥塞控制消息,则确定拥塞的出口队列拥塞是第一入口队列拥塞的源头,第二拥塞控制消息用于指示将第二拥塞流隔离到第一网络设备中的拥塞队列,第二拥塞流属于拥塞的出口队列转发的报文流;若接收到下游网络设备发送的第二拥塞控制消息,则确定拥塞的出口 队列拥塞不是第一入口队列拥塞的源头。In a possible implementation, the detection module 710 can specifically detect whether the congestion of the congested egress queue is the source of the congestion of the first ingress queue in the following manner: if no packet sent by the downstream network device of the first network device is received, The second congestion control message determines that the congestion of the congested egress queue is the source of the congestion of the first ingress queue. The second congestion control message is used to instruct to isolate the second congestion flow to the congestion queue in the first network device. The second congestion flow Message flow forwarded by the congested egress queue; if the second congestion control message sent by the downstream network device is received, the congested egress is determined Queue congestion is not the source of congestion in the first entry queue.
在一种可能的实现方式中,如图7所示,装置700还包括:发送模块730,用于生成第一拥塞控制消息,并向上游网络设备发送第一拥塞控制消息,第一拥塞控制消息携带第一拥塞流的标识,第一拥塞控制消息用于指示将第一拥塞流隔离到上游网络设备中的拥塞队列,第一拥塞控制消息还携带多个出口队列的状态;检测模块710,还用于在预设时长后,重新检测第一入口队列和多个出口队列的状态;处理模块720,还用于基于重新检测的第一入口队列和多个出口队列的状态,确定多个出口队列转发的报文流中是否存在至少一条拥塞流;发送模块730,还用于基于检测结果生成新的第一拥塞控制消息,向上游网络设备发送新的第一拥塞控制消息。In a possible implementation, as shown in Figure 7, the apparatus 700 also includes: a sending module 730, configured to generate a first congestion control message and send the first congestion control message to the upstream network device. Carrying the identifier of the first congestion flow, the first congestion control message is used to instruct the isolation of the first congestion flow to the congestion queue in the upstream network device. The first congestion control message also carries the status of multiple egress queues; the detection module 710 also The processing module 720 is configured to re-detect the status of the first entry queue and the multiple egress queues after a preset period of time; the processing module 720 is also configured to determine the multiple egress queues based on the re-detected status of the first entry queue and the multiple egress queues. Whether there is at least one congestion flow in the forwarded message flow; the sending module 730 is also configured to generate a new first congestion control message based on the detection result, and send the new first congestion control message to the upstream network device.
其中,若确定多个出口队列转发的报文流中不存在至少一条拥塞流,新的第一拥塞控制消息携带重新检测的多个出口队列的状态,新的第一拥塞控制消息用于指示基于重新检测的多个出口队列的状态,停止将第一拥塞流隔离到上游网络设备中的拥塞队列;若确定多个出口队列转发的报文流中存在至少一条拥塞流,且至少一条拥塞流不包括第一拥塞流,新的第一拥塞控制消息携带重新检测的多个出口队列的状态和至少一条拥塞流的标识,新的第一拥塞控制消息用于指示基于重新检测的多个出口队列的状态,停止将第一拥塞流隔离到上游网络设备中的拥塞队列,并指示将至少一条拥塞流隔离到上游网络设备中的拥塞队列。Wherein, if it is determined that there is not at least one congested flow in the message flow forwarded by multiple egress queues, the new first congestion control message carries the re-detected status of the multiple egress queues, and the new first congestion control message is used to indicate based on Re-detect the status of multiple egress queues and stop isolating the first congested flow to the congestion queue in the upstream network device; if it is determined that there is at least one congested flow in the message flow forwarded by multiple egress queues, and at least one congested flow is not Including the first congestion flow, the new first congestion control message carries the status of the re-detected multiple egress queues and the identification of at least one congestion flow, and the new first congestion control message is used to indicate the status of the multiple egress queues based on re-detection. status, stops isolating the first congested flow to the congestion queue in the upstream network device, and instructs to isolate at least one congested flow to the congestion queue in the upstream network device.
具体地,上述拥塞流识别装置700执行各种操作的具体实现,可参照上述图4所示的本申请提供的拥塞流识别方法,为了说明书的简洁,这里不再赘述。Specifically, for the specific implementation of various operations performed by the congestion flow identification device 700, reference can be made to the congestion flow identification method provided by the present application shown in the above-mentioned Figure 4. For the sake of simplicity of the description, details will not be described here.
综上可知,本申请提供的拥塞流识别装置(如图7所示的装置700)可以通过检测入口队列以及入口队列对应的多个出口队列的状态(第一状态、第二状态或者空闲),在检测到多个出口队列中存在处于第一状态的出口队列和空闲的出口队列时,将处于第一状态的出口队列转发的报文流确定为第一拥塞流,将空闲的出口队列转发的报文流确定为非拥塞流,其中,第一状态指出口队列拥塞且出口队列拥塞是入口队列拥塞的源头,第二状态指出口队列拥塞且出口队列拥塞不是入口队列拥塞的源头。可以看出,该装置700可以准确识别出拥塞流和非拥塞流,大大降低非拥塞流被误识别拥塞流的可能性,因而能够有效解决现有技术存在的会将非拥塞流误识别为拥塞流的问题。In summary, it can be seen that the congestion flow identification device (device 700 shown in Figure 7) provided by this application can detect the status (first state, second state or idle) of the ingress queue and multiple egress queues corresponding to the ingress queue. When it is detected that there are egress queues in the first state and idle egress queues in multiple egress queues, the packet flow forwarded by the egress queue in the first state is determined as the first congestion flow, and the packet flow forwarded by the idle egress queue is determined as the first congestion flow. The packet flow is determined to be a non-congested flow. The first state indicates that the egress queue is congested and the egress queue congestion is the source of the ingress queue congestion. The second state indicates that the egress queue is congested and the egress queue congestion is not the source of the ingress queue congestion. It can be seen that the device 700 can accurately identify congested flows and non-congested flows, greatly reducing the possibility of non-congested flows being misidentified as congested flows, and thus can effectively solve the problem of misidentifying non-congested flows as congested flows in the existing technology. flow problem.
本申请还提供一种网络设备,参见图8,图8是本申请提供的一种网络设备800的结构示意图,如图8所示,设备800包括:处理器810、存储器820和通信接口830,其中,处理器810、存储器820、通信接口830之间可以通过总线840相互连接。This application also provides a network device. See Figure 8. Figure 8 is a schematic structural diagram of a network device 800 provided by this application. As shown in Figure 8, the device 800 includes: a processor 810, a memory 820 and a communication interface 830. Among them, the processor 810, the memory 820, and the communication interface 830 can be connected to each other through a bus 840.
处理器810可以读取存储器820中存储的程序代码(包括指令),执行存储器820中存储的程序代码,使得网络设备800执行图4所示的本申请提供的拥塞流识别方法,或者使得网络设备800部署拥塞流识别装置700。The processor 810 can read the program code (including instructions) stored in the memory 820, and execute the program code stored in the memory 820, so that the network device 800 performs the congestion flow identification method provided by the present application shown in Figure 4, or causes the network device to 800 Deploy the congestion flow identification device 700.
处理器810可以有多种具体实现形式,例如中央处理单元(central processing unit,简称CPU),或者CPU和硬件芯片的组合。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC)、可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。处理器810执行各种类型的数字存储指令,例如存储在存储器820中的软件或者固件程序,它能使网络设备800提供多种服务。The processor 810 can have a variety of specific implementation forms, such as a central processing unit (CPU for short), or a combination of CPU and hardware chips. The above-mentioned hardware chip can be an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a combination thereof. The above-mentioned PLD can be a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a general array logic (GAL), or any combination thereof. The processor 810 executes various types of digital storage instructions, such as software or firmware programs stored in the memory 820, which enable the network device 800 to provide a variety of services.
存储器820用于存储程序代码,并由处理器810来控制执行。程序代码可以包括一个或多个软件模块,这一个或多个软件模块可以为图7所示实施例中提供的软件模块,如检测模 块710、处理模块720和发送模块730。Memory 820 is used to store program code and is controlled by processor 810 for execution. The program code may include one or more software modules, and the one or more software modules may be the software modules provided in the embodiment shown in Figure 7, such as the detection module. Block 710, processing module 720 and sending module 730.
存储器820可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM);存储器820也可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM)、快闪存储器(flash memory)、硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器820还可以包括上述种类的组合。The memory 820 may include volatile memory (volatile memory), such as random access memory (RAM); the memory 820 may also include non-volatile memory (non-volatile memory), such as read-only memory (read- Only memory (ROM), flash memory (flash memory), hard disk drive (HDD) or solid-state drive (SSD); the memory 820 may also include a combination of the above types.
通信接口830可以为有线接口(例如以太网接口、光纤接口、其他类型接口(例如,infiniBand接口))或无线接口(例如蜂窝网络接口或使用无线局域网接口),用于与其他网络设备或装置进行通信。通信接口830可以采用传输控制协议/网际协议(transmission control protocol/internet protocol,TCP/IP)之上的协议族,例如,远程函数调用(remote function call,RFC)协议、简单对象访问协议(simple object access protocol,SOAP)协议、简单网络管理协议(simple network management protocol,SNMP)协议、公共对象请求代理体系结构(common object request broker architecture,CORBA)协议以及分布式协议等等。The communication interface 830 may be a wired interface (such as an Ethernet interface, a fiber optic interface, other types of interfaces (such as an infiniBand interface)) or a wireless interface (such as a cellular network interface or using a wireless LAN interface) for communicating with other network equipment or devices. communication. The communication interface 830 may adopt a protocol family based on transmission control protocol/internet protocol (TCP/IP), for example, remote function call (RFC) protocol, simple object access protocol (simple object access protocol) access protocol (SOAP) protocol, simple network management protocol (SNMP) protocol, common object request broker architecture (CORBA) protocol, and distributed protocols, etc.
总线840可以是快捷***部件互连标准(peripheral component interconnect express,PCIe)总线、扩展工业标准结构(extended industry standard architecture,EISA)总线、统一总线(unified bus,Ubus或UB)、计算机快速链接(compute express link,CXL)、缓存一致互联协议(cache coherent interconnect for accelerators,CCIX)等。总线840可以分为地址总线、数据总线、控制总线等。总线840除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线840。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。The bus 840 can be a peripheral component interconnect express (PCIe) bus, an extended industry standard architecture (EISA) bus, a unified bus (Ubus or UB), a computer fast link (compute express link (CXL), cache coherent interconnect for accelerators (CCIX), etc. The bus 840 can be divided into an address bus, a data bus, a control bus, etc. In addition to the data bus, the bus 840 may also include a power bus, a control bus, a status signal bus, etc. However, for the sake of clarity, the various buses are labeled bus 840 in the figure. For ease of presentation, only one thick line is used in Figure 8, but it does not mean that there is only one bus or one type of bus.
上述网络设备800用于执行图4所示的本申请提供的拥塞流识别方法,其具体实现过程详见上述方法实施例,这里不再赘述。应当理解,网络设备800仅为本申请实施例提供的一个例子,并且,网络设备800可具有比图8示出的部件更多或更少的部件,可以组合两个或更多个部件,或者可具有部件的不同配置实现。The above-mentioned network device 800 is used to execute the congestion flow identification method provided by the present application as shown in Figure 4. For details of its implementation process, please refer to the above-mentioned method embodiments, which will not be described again here. It should be understood that the network device 800 is only an example provided by the embodiment of the present application, and the network device 800 may have more or fewer components than those shown in FIG. 8 , two or more components may be combined, or Can be implemented with different configurations of components.
本申请还提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,该指令被运行时可以实现上述实施例中记载的拥塞流识别方法的部分或者全部步骤。The present application also provides a computer-readable storage medium. The computer-readable storage medium stores instructions. When the instructions are executed, some or all of the steps of the congestion flow identification method recorded in the above embodiments can be implemented.
本申请还提供一种计算机程序产品,当计算机程序产品被计算机读取并执行时,可以实现上述方法实施例中记载的拥塞流识别方法的部分或者全部步骤。This application also provides a computer program product. When the computer program product is read and executed by a computer, some or all of the steps of the congestion flow identification method recorded in the above method embodiments can be implemented.
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。在上述实施例中,可以全部或部分地通过软件、硬件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质、或者半导体介质等。In the above embodiments, each embodiment is described with its own emphasis. For parts that are not described in detail in a certain embodiment, please refer to the relevant descriptions of other embodiments. In the above embodiments, it may be implemented in whole or in part by software, hardware, or any combination thereof. When implemented using software, it may be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the processes or functions described in the embodiments of the present application are generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions may be stored in or transmitted from one computer-readable storage medium to another, e.g., the computer instructions may be transferred from a website, computer, server, or data center Transmission to another website, computer, server or data center through wired (such as coaxial cable, optical fiber, digital subscriber line) or wireless (such as infrared, wireless, microwave, etc.) means. The computer-readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server, data center, etc. that contains one or more available media integrated. The available media may be magnetic media (such as floppy disks, hard disks, magnetic tapes), optical media, or semiconductor media, etc.
以上所述,仅为本申请的具体实施方式。熟悉本技术领域的技术人员根据本申请提供的具体实施方式,可想到变化或替换,都应涵盖在本申请的保护范围之内。 The above are only specific implementations of the present application. Those skilled in the art may think of changes or substitutions based on the specific implementations provided in this application, and they shall all be covered by the protection scope of this application.

Claims (14)

  1. 一种拥塞流识别方法,其特征在于,所述方法应用于第一网络设备,所述方法包括:A congestion flow identification method, characterized in that the method is applied to a first network device, and the method includes:
    检测第一入口队列的状态,所述第一入口队列的状态为拥塞或空闲;Detecting the status of the first entry queue, the status of the first entry queue is congestion or idle;
    若检测到所述第一入口队列拥塞,则检测多个出口队列的状态,所述多个出口队列中每个出口队列的状态为空闲、第一状态或者第二状态,所述第一状态表示所述每个出口队列拥塞且所述每个出口队列的拥塞是所述第一入口队列拥塞的源头,所述第二状态表示所述每个出口队列拥塞且所述每个出口队列的拥塞不是所述第一入口队列拥塞的源头,所述多个出口队列用于转发所述第一入口队列接收的报文流,所述多个出口队列用于转发的报文流互不相同;If congestion of the first ingress queue is detected, the status of multiple egress queues is detected. The status of each egress queue in the multiple egress queues is idle, a first state or a second state, and the first state represents The each egress queue is congested and the congestion of each egress queue is the source of the first ingress queue congestion, and the second state indicates that the each egress queue is congested and the congestion of each egress queue is not The source of congestion in the first ingress queue, the multiple egress queues are used to forward message flows received by the first ingress queue, and the message flows used by the multiple egress queues to forward are different from each other;
    若检测到所述多个出口队列中存在处于所述第一状态的出口队列和空闲的出口队列,则将所述处于所述第一状态的出口队列转发的报文流确定为第一拥塞流,将所述空闲的出口队列转发的报文流确定为非拥塞流。If it is detected that there is an egress queue in the first state and an idle egress queue in the multiple egress queues, determine the message flow forwarded by the egress queue in the first state as the first congested flow. , determine the packet flow forwarded by the idle egress queue as a non-congested flow.
  2. 根据权利要求1所述的方法,其特征在于,所述检测所述多个出口队列的状态,包括:The method according to claim 1, wherein detecting the status of the multiple egress queues includes:
    检测所述多个出口队列是否拥塞;Detect whether the multiple egress queues are congested;
    若检测到所述多个出口队列中存在拥塞的出口队列和空闲的出口队列,则检测所述拥塞的出口队列的拥塞是否为所述第一入口队列拥塞的源头。If it is detected that a congested egress queue and an idle egress queue exist in the plurality of egress queues, it is detected whether the congestion of the congested egress queue is the source of congestion of the first ingress queue.
  3. 根据权利要求2所述的方法,其特征在于,所述检测所述拥塞的出口队列的拥塞是否为所述第一入口队列拥塞的源头,包括:The method of claim 2, wherein detecting whether congestion in the congested egress queue is the source of congestion in the first ingress queue includes:
    若检测到所述拥塞的出口队列的带宽利用率大于利用率阈值,则确定所述拥塞的出口队列拥塞是所述第一入口队列拥塞的源头;If it is detected that the bandwidth utilization of the congested egress queue is greater than the utilization threshold, it is determined that the congestion of the congested egress queue is the source of congestion of the first ingress queue;
    若检测到所述带宽利用率小于或者等于所述利用率阈值,则确定所述拥塞的出口队列拥塞不是所述第一入口队列拥塞的源头。If it is detected that the bandwidth utilization is less than or equal to the utilization threshold, it is determined that the congestion of the congested egress queue is not the source of the congestion of the first ingress queue.
  4. 根据权利要求2所述的方法,其特征在于,所述检测所述拥塞的出口队列的拥塞是否为所述第一入口队列拥塞的源头,包括:The method of claim 2, wherein detecting whether congestion in the congested egress queue is the source of congestion in the first ingress queue includes:
    若接收到所述第一网络设备的下游网络设备发送的基于优先级的流量控制PFC报文的频率小于或者等于频率阈值,则确定所述拥塞的出口队列拥塞是所述第一入口队列拥塞的源头,所述PFC报文为所述下游网络设备在检测到第二入口队列拥塞时发送,所述第二入口队列为所述下游网络设备中用于接收所述拥塞的出口队列转发的报文流的入口队列;If the frequency of receiving priority-based flow control PFC messages sent by a downstream network device of the first network device is less than or equal to the frequency threshold, it is determined that the congestion of the congested egress queue is caused by the congestion of the first ingress queue. Source, the PFC message is sent by the downstream network device when it detects congestion in the second ingress queue, and the second ingress queue is a message forwarded by the downstream network device for receiving the congested egress queue. The entry queue of the stream;
    若接收到所述下游网络设备发送的PFC报文的频率大于所述频率阈值,则确定所述拥塞的出口队列拥塞不是所述第一入口队列拥塞的源头。If the frequency of receiving PFC messages sent by the downstream network device is greater than the frequency threshold, it is determined that the congestion in the congested egress queue is not the source of congestion in the first ingress queue.
  5. 根据权利要求2所述的方法,其特征在于,所述检测所述拥塞的出口队列的拥塞是否为所述第一入口队列拥塞的源头,包括:The method of claim 2, wherein detecting whether congestion in the congested egress queue is the source of congestion in the first ingress queue includes:
    若未接收到所述第一网络设备的下游网络设备发送的第二拥塞控制消息,则确定所述拥塞的出口队列拥塞是所述第一入口队列拥塞的源头,所述第二拥塞控制消息用于指示将第二拥塞流隔离到所述第一网络设备中的拥塞队列,所述第二拥塞流属于所述拥塞的出口队列转发的报文流;If the second congestion control message sent by the downstream network device of the first network device is not received, it is determined that the congestion of the congested egress queue is the source of the congestion of the first ingress queue, and the second congestion control message is Instructing to isolate a second congestion flow to a congestion queue in the first network device, where the second congestion flow belongs to a message flow forwarded by the congested egress queue;
    若接收到所述下游网络设备发送的第二拥塞控制消息,则确定所述拥塞的出口队列拥塞不是所述第一入口队列拥塞的源头。If the second congestion control message sent by the downstream network device is received, it is determined that the congested egress queue congestion is not the source of the first ingress queue congestion.
  6. 根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:The method according to any one of claims 1 to 5, characterized in that the method further includes:
    生成第一拥塞控制消息,并向上游网络设备发送所述第一拥塞控制消息,所述第一拥塞控制消息携带所述第一拥塞流的标识,所述第一拥塞控制消息用于指示将所述第一拥塞流隔 离到所述上游网络设备中的拥塞队列,所述第一拥塞控制消息还携带所述多个出口队列的状态;Generate a first congestion control message and send the first congestion control message to an upstream network device, where the first congestion control message carries an identifier of the first congestion flow, and the first congestion control message is used to indicate that the The first congestion flow partition From the congestion queue in the upstream network device, the first congestion control message also carries the status of the multiple egress queues;
    在预设时长后,重新检测所述第一入口队列和所述多个出口队列的状态,基于所述重新检测的第一入口队列和多个出口队列的状态,确定所述多个出口队列转发的报文流中是否存在至少一条拥塞流,并基于检测结果生成新的第一拥塞控制消息,向所述上游网络设备发送所述新的第一拥塞控制消息;After a preset period of time, re-detect the status of the first ingress queue and the multiple egress queues, and determine the forwarding of the multiple egress queues based on the re-detected status of the first ingress queue and the multiple egress queues. determine whether there is at least one congestion flow in the packet flow, generate a new first congestion control message based on the detection result, and send the new first congestion control message to the upstream network device;
    其中,若确定所述多个出口队列转发的报文流中不存在至少一条拥塞流,所述新的第一拥塞控制消息携带所述重新检测的多个出口队列的状态,所述新的第一拥塞控制消息用于指示基于所述重新检测的多个出口队列的状态,停止将所述第一拥塞流隔离到所述上游网络设备中的拥塞队列;若确定所述多个出口队列转发的报文流中存在至少一条拥塞流,且所述至少一条拥塞流不包括所述第一拥塞流,所述新的第一拥塞控制消息携带所述重新检测的多个出口队列的状态和所述至少一条拥塞流的标识,所述新的第一拥塞控制消息用于指示基于所述重新检测的多个出口队列的状态,停止将所述第一拥塞流隔离到所述上游网络设备中的拥塞队列,并指示将所述至少一条拥塞流隔离到所述上游网络设备中的拥塞队列。Wherein, if it is determined that at least one congestion flow does not exist among the message flows forwarded by the multiple egress queues, the new first congestion control message carries the status of the re-detected multiple egress queues, and the new first congestion control message carries the status of the re-detected multiple egress queues. A congestion control message is used to indicate, based on the re-detected status of multiple egress queues, to stop isolating the first congestion flow to the congestion queue in the upstream network device; if it is determined that the multiple egress queues are forwarded There is at least one congestion flow in the message flow, and the at least one congestion flow does not include the first congestion flow, and the new first congestion control message carries the status of the re-detected multiple egress queues and the An identifier of at least one congested flow, and the new first congestion control message is used to indicate, based on the status of the re-detected multiple egress queues, to stop isolating the first congested flow to congestion in the upstream network device. queue, and instructs to isolate the at least one congested flow to a congestion queue in the upstream network device.
  7. 一种拥塞流识别装置,其特征在于,所述装置应用于第一网络设备,所述装置包括:A congestion flow identification device, characterized in that the device is applied to a first network device, and the device includes:
    检测模块,用于检测第一入口队列的状态,所述第一入口队列的状态为拥塞或空闲;A detection module, configured to detect the status of the first entry queue, where the status of the first entry queue is congestion or idle;
    检测模块,还用于若检测到所述第一入口队列拥塞,则检测多个出口队列的状态,所述多个出口队列中每个出口队列的状态为空闲、第一状态或者第二状态,所述第一状态表示所述每个出口队列拥塞且所述每个出口队列的拥塞是所述第一入口队列拥塞的源头,所述第二状态表示所述每个出口队列拥塞且所述每个出口队列的拥塞不是所述第一入口队列拥塞的源头,所述多个出口队列用于转发所述第一入口队列接收的报文流,所述多个出口队列用于转发的报文流互不相同;The detection module is also configured to detect the status of multiple egress queues if congestion of the first ingress queue is detected, and the status of each egress queue in the multiple egress queues is idle, the first state or the second state, The first state indicates that each egress queue is congested and the congestion of each egress queue is the source of congestion of the first ingress queue. The second state indicates that each egress queue is congested and each egress queue is congested. Congestion in the egress queues is not the source of congestion in the first ingress queue. The egress queues are used to forward message flows received by the first ingress queue. The egress queues are used to forward message flows. different from each other;
    处理模块,用于若检测到所述多个出口队列中存在处于所述第一状态的出口队列和空闲的出口队列,则将所述处于所述第一状态的出口队列转发的报文流确定为第一拥塞流,将所述空闲的出口队列转发的报文流确定为非拥塞流。A processing module configured to determine the message flow forwarded by the egress queue in the first state if it is detected that there is an egress queue in the first state and an idle egress queue in the multiple egress queues. For the first congested flow, the packet flow forwarded by the idle egress queue is determined as a non-congested flow.
  8. 根据权利要求7所述的装置,其特征在于,所述检测模块,具体用于:The device according to claim 7, characterized in that the detection module is specifically used for:
    检测所述多个出口队列是否拥塞;Detect whether the multiple egress queues are congested;
    若检测到所述多个出口队列中存在拥塞的出口队列和空闲的出口队列,则检测所述拥塞的出口队列的拥塞是否为所述第一入口队列拥塞的源头。If it is detected that a congested egress queue and an idle egress queue exist in the plurality of egress queues, it is detected whether the congestion of the congested egress queue is the source of congestion of the first ingress queue.
  9. 根据权利要求8所述的装置,其特征在于,所述检测模块,具体用于:The device according to claim 8, characterized in that the detection module is specifically used for:
    若检测到所述拥塞的出口队列的带宽利用率大于利用率阈值,则确定所述拥塞的出口队列拥塞是所述第一入口队列拥塞的源头;If it is detected that the bandwidth utilization of the congested egress queue is greater than the utilization threshold, it is determined that the congestion of the congested egress queue is the source of congestion of the first ingress queue;
    若检测到所述带宽利用率小于或者等于所述利用率阈值,则确定所述拥塞的出口队列拥塞不是所述第一入口队列拥塞的源头。If it is detected that the bandwidth utilization is less than or equal to the utilization threshold, it is determined that the congestion of the congested egress queue is not the source of the congestion of the first ingress queue.
  10. 根据权利要求8所述的装置,其特征在于,所述检测模块,具体用于:The device according to claim 8, characterized in that the detection module is specifically used for:
    若接收到所述第一网络设备的下游网络设备发送的PFC报文的频率小于或者等于频率阈值,则确定所述拥塞的出口队列拥塞是所述第一入口队列拥塞的源头,所述PFC报文为所述下游网络设备在检测到第二入口队列拥塞时发送,所述第二入口队列为所述下游网络设备中用于接收所述拥塞的出口队列转发的报文流的入口队列;If the frequency of PFC messages sent by the downstream network device of the first network device is received less than or equal to the frequency threshold, it is determined that the congestion of the congested egress queue is the source of congestion of the first ingress queue, and the PFC message The message is sent by the downstream network device when it detects congestion in the second ingress queue, and the second ingress queue is the ingress queue in the downstream network device used to receive the message flow forwarded by the congested egress queue;
    若接收到所述下游网络设备发送的PFC报文的频率大于所述频率阈值,则确定所述拥塞的出口队列拥塞不是所述第一入口队列拥塞的源头。 If the frequency of receiving PFC messages sent by the downstream network device is greater than the frequency threshold, it is determined that the congestion in the congested egress queue is not the source of congestion in the first ingress queue.
  11. 根据权利要求8所述的装置,其特征在于,所述检测模块,具体用于:The device according to claim 8, characterized in that the detection module is specifically used for:
    若未接收到所述第一网络设备的下游网络设备发送的第二拥塞控制消息,则确定所述拥塞的出口队列拥塞是所述第一入口队列拥塞的源头,所述第二拥塞控制消息用于指示将第二拥塞流隔离到所述第一网络设备中的拥塞队列,所述第二拥塞流属于所述拥塞的出口队列转发的报文流;If the second congestion control message sent by the downstream network device of the first network device is not received, it is determined that the congestion of the congested egress queue is the source of the congestion of the first ingress queue, and the second congestion control message is Instructing to isolate a second congestion flow to a congestion queue in the first network device, where the second congestion flow belongs to a message flow forwarded by the congested egress queue;
    若接收到所述下游网络设备发送的第二拥塞控制消息,则确定所述拥塞的出口队列拥塞不是所述第一入口队列拥塞的源头。If the second congestion control message sent by the downstream network device is received, it is determined that the congested egress queue congestion is not the source of the first ingress queue congestion.
  12. 根据权利要求7至11任一项所述的装置,其特征在于,所述装置还包括:The device according to any one of claims 7 to 11, characterized in that the device further includes:
    发送模块,用于生成第一拥塞控制消息,并向上游网络设备发送所述第一拥塞控制消息,所述第一拥塞控制消息携带所述第一拥塞流的标识,所述第一拥塞控制消息用于指示将所述第一拥塞流隔离到所述上游网络设备中的拥塞队列,所述第一拥塞控制消息还携带所述多个出口队列的状态;A sending module, configured to generate a first congestion control message and send the first congestion control message to an upstream network device, where the first congestion control message carries an identifier of the first congestion flow, and the first congestion control message For instructing to isolate the first congestion flow to a congestion queue in the upstream network device, the first congestion control message also carries the status of the multiple egress queues;
    所述检测模块,还用于在预设时长后,重新检测所述第一入口队列和所述多个出口队列的状态;The detection module is also configured to re-detect the status of the first entry queue and the multiple exit queues after a preset time period;
    所述处理模块,还用于基于所述重新检测的第一入口队列和多个出口队列的状态,确定所述多个出口队列转发的报文流中是否存在至少一条拥塞流;The processing module is also configured to determine whether there is at least one congested flow in the message flow forwarded by the multiple egress queues based on the re-detected status of the first ingress queue and multiple egress queues;
    所述发送模块,还用于基于检测结果生成新的第一拥塞控制消息,向所述上游网络设备发送所述新的第一拥塞控制消息;The sending module is also configured to generate a new first congestion control message based on the detection result, and send the new first congestion control message to the upstream network device;
    其中,若确定所述多个出口队列转发的报文流中不存在至少一条拥塞流,所述新的第一拥塞控制消息携带所述重新检测的多个出口队列的状态,所述新的第一拥塞控制消息用于指示基于所述重新检测的多个出口队列的状态,停止将所述第一拥塞流隔离到所述上游网络设备中的拥塞队列;若确定所述多个出口队列转发的报文流中存在至少一条拥塞流,且所述至少一条拥塞流不包括所述第一拥塞流,所述新的第一拥塞控制消息携带所述重新检测的多个出口队列的状态和所述至少一条拥塞流的标识,所述新的第一拥塞控制消息用于指示基于所述重新检测的多个出口队列的状态,停止将所述第一拥塞流隔离到所述上游网络设备中的拥塞队列,并指示将所述至少一条拥塞流隔离到所述上游网络设备中的拥塞队列。Wherein, if it is determined that at least one congestion flow does not exist among the message flows forwarded by the multiple egress queues, the new first congestion control message carries the status of the re-detected multiple egress queues, and the new first congestion control message carries the status of the re-detected multiple egress queues. A congestion control message is used to indicate, based on the re-detected status of multiple egress queues, to stop isolating the first congestion flow to the congestion queue in the upstream network device; if it is determined that the multiple egress queues are forwarded There is at least one congestion flow in the message flow, and the at least one congestion flow does not include the first congestion flow, and the new first congestion control message carries the status of the re-detected multiple egress queues and the An identifier of at least one congested flow, and the new first congestion control message is used to indicate, based on the status of the re-detected multiple egress queues, to stop isolating the first congested flow to congestion in the upstream network device. queue, and instructs to isolate the at least one congested flow to a congestion queue in the upstream network device.
  13. 一种网络设备,其特征在于,所述网络设备包括处理器和存储器;所述处理器用于执行所述存储器存储的指令,使得所述网络设备实现权利要求1至6任一项所述的方法。A network device, characterized in that the network device includes a processor and a memory; the processor is configured to execute instructions stored in the memory, so that the network device implements the method described in any one of claims 1 to 6 .
  14. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有指令,所述指令用于实现权利要求1至6任一项所述的方法。 A computer-readable storage medium, characterized in that the computer-readable storage medium stores instructions, and the instructions are used to implement the method described in any one of claims 1 to 6.
PCT/CN2023/083873 2022-04-28 2023-03-24 Congestion flow identification method and apparatus, device, and computer readable storage medium WO2023207461A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210460326.7 2022-04-28
CN202210460326.7A CN117014376A (en) 2022-04-28 2022-04-28 Congestion flow identification method, device, equipment and computer readable storage medium

Publications (1)

Publication Number Publication Date
WO2023207461A1 true WO2023207461A1 (en) 2023-11-02

Family

ID=88517310

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/083873 WO2023207461A1 (en) 2022-04-28 2023-03-24 Congestion flow identification method and apparatus, device, and computer readable storage medium

Country Status (2)

Country Link
CN (1) CN117014376A (en)
WO (1) WO2023207461A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109660463A (en) * 2017-10-11 2019-04-19 华为技术有限公司 A kind of congestion stream recognition method and the network equipment
WO2020236268A1 (en) * 2019-05-23 2020-11-26 Cray Inc. System and method for facilitating efficient packet forwarding using a message state table in a network interface controller (nic)
WO2020244422A1 (en) * 2019-06-05 2020-12-10 中兴通讯股份有限公司 Queue congestion control method, apparatus, device and storage medium
CN114095448A (en) * 2020-08-05 2022-02-25 华为技术有限公司 Method and equipment for processing congestion flow

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109660463A (en) * 2017-10-11 2019-04-19 华为技术有限公司 A kind of congestion stream recognition method and the network equipment
WO2020236268A1 (en) * 2019-05-23 2020-11-26 Cray Inc. System and method for facilitating efficient packet forwarding using a message state table in a network interface controller (nic)
WO2020244422A1 (en) * 2019-06-05 2020-12-10 中兴通讯股份有限公司 Queue congestion control method, apparatus, device and storage medium
CN114095448A (en) * 2020-08-05 2022-02-25 华为技术有限公司 Method and equipment for processing congestion flow

Also Published As

Publication number Publication date
CN117014376A (en) 2023-11-07

Similar Documents

Publication Publication Date Title
US11646967B2 (en) Packet control method and network apparatus
US10243865B2 (en) Combined hardware/software forwarding mechanism and method
US10498612B2 (en) Multi-stage selective mirroring
US10432556B1 (en) Enhanced audio video bridging (AVB) methods and apparatus
US8274974B1 (en) Method and apparatus for providing quality of service across a switched backplane for multicast packets
US8014281B1 (en) Systems and methods for limiting the rates of data to/from a buffer
WO2012065477A1 (en) Method and system for avoiding message congestion
JP2006506845A (en) How to select a logical link for a packet in a router
US10728156B2 (en) Scalable, low latency, deep buffered switch architecture
EP3188419B1 (en) Packet storing and forwarding method and circuit, and device
CN111431811A (en) Message transmission control method, device and network equipment
WO2022028342A1 (en) Method for processing congestion flow and device
US7408876B1 (en) Method and apparatus for providing quality of service across a switched backplane between egress queue managers
US7554908B2 (en) Techniques to manage flow control
US8031682B2 (en) Apparatus and method for aggregating and switching traffic in subscriber network
CN115462050A (en) Congestion control method, network equipment and system
US7599292B1 (en) Method and apparatus for providing quality of service across a switched backplane between egress and ingress queue managers
WO2023207461A1 (en) Congestion flow identification method and apparatus, device, and computer readable storage medium
Avci et al. Congestion aware priority flow control in data center networks
US11728893B1 (en) Method, system, and apparatus for packet transmission
CN114531399B (en) Memory blocking balancing method and device, electronic equipment and storage medium
WO2023116611A1 (en) Queue control method and apparatus
WO2023226532A1 (en) Congestion control method, and node and system
KR100651735B1 (en) Apparatus for traffic aggregating/switching in subscriber network and method therefor

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23794896

Country of ref document: EP

Kind code of ref document: A1