WO2019072072A1 - 一种拥塞流识别方法及网络设备 - Google Patents

一种拥塞流识别方法及网络设备 Download PDF

Info

Publication number
WO2019072072A1
WO2019072072A1 PCT/CN2018/106164 CN2018106164W WO2019072072A1 WO 2019072072 A1 WO2019072072 A1 WO 2019072072A1 CN 2018106164 W CN2018106164 W CN 2018106164W WO 2019072072 A1 WO2019072072 A1 WO 2019072072A1
Authority
WO
WIPO (PCT)
Prior art keywords
flow
data packet
network device
queue
congestion
Prior art date
Application number
PCT/CN2018/106164
Other languages
English (en)
French (fr)
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 华为技术有限公司
Priority to EP18866966.7A priority Critical patent/EP3687125B1/en
Publication of WO2019072072A1 publication Critical patent/WO2019072072A1/zh
Priority to US16/844,624 priority patent/US11146489B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6205Arrangements for avoiding head of line blocking
    • 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
    • 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/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • 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/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
    • 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/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
    • 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/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/266Stopping or restarting the source, e.g. X-on or X-off
    • 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/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes

Definitions

  • the present application relates to the field of communications, and in particular, to a congestion flow identification method and a network device.
  • a dynamic congestion isolation technique is often used to solve the problem of head-of-line blocking.
  • This technology can dynamically identify packets that may cause head-of-line blocking when congestion occurs, and the packet and other matching characteristics of the packet.
  • the data packet is defined as a congested flow, and then the congestion flow is isolated into an independent congested flow queue, thereby eliminating the congestion of the congested flow to other non-congested flows.
  • the following methods are commonly used to identify the congested flow:
  • a queue length threshold for determining whether congestion occurs for the non-congested flow queue.
  • the queue length is greater than or equal to the threshold, randomly select a data packet in the queue, or select a data packet to be enqueued, and the data packet belongs to The stream is identified as a congested stream.
  • the embodiment of the present application provides a congestion flow identification method and a network device, which are used to improve the accuracy of congestion flow identification.
  • the network device acquires the queue length of the non-congested flow queue, and the non-congested flow queue includes description information of the data packet or the data packet;
  • the network device determines the target output port of the target data packet, and the target data packet is a data packet waiting to enter the non-congested flow queue or the next waiting to be output from the non-congested flow queue.
  • the network device determines that the flow corresponding to the target data packet is a congestion flow.
  • the network device can determine the target output port corresponding to the target data packet by querying the correspondence between the target data packet and the target output port in the forwarding information database (FIB).
  • FIB forwarding information database
  • the congestion flow is isolated to the congestion flow queue.
  • the network device may acquire the length of the non-congested flow queue, and then when the length of the non-congested flow queue is greater than or equal to the first threshold, the network device determines the target output port corresponding to the target data packet, and then when the utilization rate of the target output port is greater than or When the second threshold is equal, the network device determines that the flow corresponding to the target data packet is a congestion flow, and the method monitors the utilization rate of the target output port, and when the utilization rate of the target output port is greater than or equal to the second threshold, the target is indicated. If the output port output data packet is more likely to cause blocking, then the flow that needs to be output from the target output port is more likely to be a congested stream, so the method improves the accuracy of the congestion flow identification.
  • the method further includes:
  • the network device determines whether the target output port is subjected to flow control and suspends transmission
  • the network device determines that the flow corresponding to the target data packet is a congestion flow.
  • the embodiment of the present application provides a method for further determining a congestion flow when the target output port utilization is less than a second threshold, and the implementation manner of the embodiment of the present application is expanded.
  • the network device determines that the flow corresponding to the target data packet is a congestion flow
  • the method also includes:
  • the network device records the target representation information of the target data packet to the congestion flow flow table.
  • the stream is a set of data packets indicating that the information is the same, and the target representation information is also the representation information of the congestion flow to which the target data packet belongs.
  • each input port in the network device has a corresponding congestion flow table, and in addition, multiple different input ports in the network device can share the same congestion flow table, specifically No restrictions are imposed.
  • the method further includes:
  • the network device performs enqueue control according to the congestion flow table.
  • the network device may allocate a queue to the data packet that has not entered the queue by searching for the congestion flow flow table.
  • the network device performs the enqueue control according to the congestion flow flow table, including:
  • the network device extracts first representation information of the first data packet, where the first data packet is a data packet waiting to enter the non-congested flow queue after the target data packet;
  • the network device determines whether the first representation information matches the congestion flow flow table
  • the network device allocates the first data packet to the congestion flow queue, and the congestion flow queue includes the congestion flow.
  • the network device searches for the congestion flow flow table, and determines whether the indication information of a certain congestion flow that has been recorded in the congestion flow flow table matches the first indication information.
  • the network device may have two execution manners. In the first manner, the network device allocates the first data packet to enter the non-congested flow queue. That is, the network device does not perform congestion flow identification on the first data packet before entering the network; in the second mode, the network device performs a congestion flow identification step on the first data packet, and the network device determines the non-congested flow queue corresponding to the first data packet.
  • the network device determines whether the utilization rate of the first output port corresponding to the first data packet is greater than or equal to a second threshold, and if yes, the network device determines that the first data packet corresponds to The stream is a congested stream, and the first representation information of the first data packet is recorded to the congestion flow flow table.
  • the method further includes:
  • the network device may first determine that the second data packet needs to be scheduled to be dequeued, and then the network device determines whether the second data packet belongs to the congestion flow queue, and if yes, the network device schedules the second data packet. The data packet is dequeued. If not, the second data packet is from the non-congested flow queue, and the network device performs a congestion flow identification step on the second data packet, and the network device determines the queue length of the non-congested flow queue corresponding to the second data packet.
  • the network device determines whether it is greater than or equal to the first threshold, if yes, the network device determines whether the utilization of the second output port corresponding to the second data packet is greater than or equal to the second threshold, and if yes, the network device determines that the flow corresponding to the second data packet is congested
  • the stream further records the second representation information of the second data packet to the congestion flow flow table.
  • a second aspect of the embodiments of the present application provides a method for identifying a congestion flow, including:
  • the network device determines the target output port of the target data packet, and the target data packet is a data packet waiting to enter the non-congested flow queue or the next waiting to be output from the non-congested flow queue.
  • the network device determines that the flow corresponding to the target data packet is a congested flow.
  • the network device can determine the target output port corresponding to the target data packet by querying the correspondence between the target data packet in the FIB and the target output port.
  • the congestion flow is isolated to the congestion flow queue.
  • the network device may acquire the length of the non-congested flow queue, and then when the length of the non-congested flow queue is greater than or equal to the first threshold, the network device determines a target output port corresponding to the target data packet, and then the flow control is suspended and the target output port is suspended.
  • the network device determines that the flow corresponding to the target data packet is a congestion flow, and when the flow control of the target output port indicates that the target output port cannot currently forward the data packet normally, the flow that needs to be output from the target output port is congested. The probability of flow is higher, so this method improves the accuracy of congestion flow identification.
  • the method further includes:
  • the network device determines whether the utilization rate of the target output port is greater than or equal to a second threshold
  • the network device determines that the flow corresponding to the target data packet is a congestion flow.
  • the embodiment of the present application provides a method for further determining a congestion flow when the target output port is not subjected to flow control, and the implementation manner of the embodiment of the present application is expanded.
  • the method also includes:
  • the network device records the target representation information of the target data packet to the congestion flow flow table.
  • the target representation information may be a tuple information of the target data packet, for example, a destination IP address of the target data packet, or may be a multi-group information of the target data packet, for example, a five-element of the target data packet.
  • the group information may be information of a one-tuple or a multi-group plus a mask of the target data packet, for example, a destination IP address of the target data packet plus a masked information, which is not limited herein.
  • each input port in the network device has a corresponding congestion flow table, and in addition, multiple different input ports in the network device can share the same congestion flow table, specifically No restrictions are imposed.
  • the method further includes:
  • the network device performs enqueue control according to the congestion flow table.
  • the network device performs the enqueue control according to the congestion flow flow table, including:
  • the network device extracts first representation information of the first data packet, where the first data packet is a data packet waiting to enter the non-congested flow queue after the target data packet;
  • the network device determines whether the first representation information matches the congestion flow flow table
  • the network device allocates the first data packet to the congestion flow queue, and the congestion flow queue includes the congestion flow.
  • the network device may have two execution manners. In the first manner, the network device allocates the first data packet to enter the non-congested flow queue. That is, the network device does not perform congestion flow identification on the first data packet before entering the network; in the second mode, the network device performs a congestion flow identification step on the first data packet, and the network device determines the non-congested flow queue corresponding to the first data packet.
  • the network device determines whether the first output port corresponding to the first data packet is subjected to flow control and suspends transmission, and if yes, the network device determines that the flow corresponding to the first data packet is congested
  • the stream records the first representation information of the first data packet to the congestion flow flow table.
  • the method further includes:
  • the network device performs dequeue scheduling according to a preset scheduling policy.
  • the network device may first determine that the second data packet needs to be scheduled to be dequeued, and then the network device determines whether the second data packet belongs to the congestion flow queue, and if yes, the network device schedules the second data packet. The data packet is dequeued. If not, the second data packet is from the non-congested flow queue, and the network device performs a congestion flow identification step on the second data packet, and the network device determines the queue length of the non-congested flow queue corresponding to the second data packet.
  • the network device determines whether the second output port corresponding to the second data packet is subjected to flow control and suspends transmission, and if yes, the network device determines that the flow corresponding to the second data packet is a congestion flow, and further The second representation information of the second data packet is recorded to the congestion flow flow table.
  • a third aspect of the embodiments of the present application provides a network device, including:
  • An acquiring unit configured to acquire a queue length of the non-congested flow queue, where the non-congested flow queue includes description information of the data packet or the data packet;
  • a determining unit configured to determine a target output port of the target data packet when the queue length of the non-congested flow queue is greater than or equal to the first threshold, and the target data packet is a data packet waiting to enter the non-congested flow queue or the next waiting for non-congested The data packet output by the flow queue;
  • a determining unit configured to determine whether the utilization rate of the target output port is greater than or equal to a second threshold
  • an identifying unit configured to determine, when the utilization of the target output port is greater than or equal to a second threshold, or the target output port is subjected to flow control and suspending transmission, determining that the flow corresponding to the target data packet is a congestion flow.
  • the network device further includes:
  • a recording unit configured to record target representation information of the target data packet to the congestion flow flow table.
  • the network device further includes:
  • control unit includes:
  • Extracting a subunit configured to extract first representation information of the first data packet, where the first data packet is a data packet waiting to enter the non-congested flow queue after the target data packet;
  • a determining subunit configured to determine whether the first representation information matches the congestion flow flow table
  • an allocation subunit configured to: when the first representation information matches the congestion flow flow table, allocate the first data packet to enter a congestion flow queue, where the congestion flow queue includes a congestion flow.
  • the scheduling unit is configured to perform dequeue scheduling according to the preset scheduling policy.
  • a processor a memory, a bus, and an input and output interface
  • a program code is stored in the memory
  • a fifth aspect of the embodiments of the present application provides a network device, including:
  • a processor a memory, a bus, and an input and output interface
  • a program code is stored in the memory
  • the target output port of the target data packet is determined, and the target data packet is a data packet waiting to enter the non-congested flow queue or the next data waiting to be output from the non-congested flow queue. package;
  • the target output port When the target output port is flow-controlled and pauses transmission, it is determined that the flow corresponding to the target data packet is a congestion flow.
  • a sixth aspect of the embodiments of the present application provides a computer readable storage medium, wherein the computer readable storage medium stores instructions, when executed on a computer, causing the computer to execute the first aspect or the second aspect of the congestion flow identification method Process in.
  • a seventh aspect of the embodiments of the present application provides a computer program product, when executed on a computer, causing a computer to execute the flow in the congestion flow identification method of the first aspect or the second aspect.
  • the embodiments of the present application have the following advantages:
  • the network device may acquire the length of the non-congested flow queue, and then when the length of the non-congested flow queue is greater than or equal to the first threshold, the network device determines the target output port corresponding to the target data packet, and then the target output port.
  • the utilization rate is greater than or equal to the second threshold, the network device determines that the flow corresponding to the target data packet is a congestion flow, and the method monitors the utilization rate of the target output port, when the utilization rate of the target output port is greater than or equal to the second threshold. It means that the data output from the target output port is more likely to cause blocking, so the flow that needs to be output from the target output port is more likely to be a congested stream, so the method improves the accuracy of the congestion flow identification.
  • Figure 1 is a schematic diagram of blocking of network equipment heads
  • FIG. 2 is a schematic diagram of flow control of a network device
  • FIG. 3 is a schematic diagram of an embodiment of a congestion flow identification method according to the present application.
  • FIG. 4 is a schematic diagram of another embodiment of a method for identifying a congestion flow according to the present application.
  • FIG. 5 is a schematic diagram of another embodiment of a method for identifying a congestion flow according to the present application.
  • FIG. 6 is a schematic diagram of another embodiment of a method for identifying a congestion flow according to the present application.
  • FIG. 8 is a schematic diagram of another embodiment of a network device according to the present application.
  • FIG. 9 is a schematic diagram of another embodiment of a network device according to the present application.
  • FIG. 10 is a schematic diagram of another embodiment of a network device according to the present application.
  • the embodiment of the present application provides a congestion flow identification method and a network device, which are used to improve the accuracy of congestion flow identification.
  • FIG. 1 shows a scenario in which a network head device is blocked in a network device, where A, B, C, and D are four different flows, and the flow can be understood.
  • each stream has an output port corresponding thereto.
  • stream A, stream B, and stream D correspond to output port 1
  • stream C corresponds to output port 2
  • stream A is located.
  • stream B and stream C are located in queue 2
  • stream D is located in queue 3.
  • stream A, stream B, and stream D compete for output port 1.
  • one of the streams is forwarding packets to output port 1, and the packets of other streams need to wait in the queue. Therefore, packets belonging to stream A, stream B, and stream D in queue 1, queue 2, and queue 3 at a certain time may need to wait and cannot be forwarded normally.
  • the output port 2 corresponding to the stream C is relatively idle and should be forwarded normally. However, since the data packet located in the queue B of the queue 2 cannot be forwarded normally, the forwarding of the packet of the stream C in the queue 2 is blocked, which may cause Queue 2 is congested.
  • the congestion of the queue head is more obvious in the network using the link-level flow control.
  • the queue 2 in the network device 1 is congested, and the flow C cannot be forwarded normally.
  • the network device 1 will The network device 2 sends the flow control, and the network device 2 is inhibited from transmitting the data packet to the network device 1, that is, the output port 2 of the network device 2 is flow-controlled and cannot send the data packet.
  • the packets belonging to the stream C in the queue 2 of the network device 2 and destined for the device output port 2 need to wait in the queue and cannot be forwarded normally.
  • the flow C in the queue 2 of the network device 2 blocks the flow E, the flow E cannot be forwarded normally, which may further cause congestion of the queue 2 in the network device 2. It can be seen that in a network that uses the link-level flow control, when the downstream device is congested, the flow control is sent to the upstream device, which may cause congestion in the upstream device, causing a chain reaction, that is, causing congestion to spread.
  • Solution 1 When the queue length of the non-congested flow queue in the network device is greater than or equal to the first threshold, the network device determines whether the utilization rate of the target output port corresponding to the target data packet is greater than or equal to the first threshold, and if yes, determining The flow corresponding to the target data packet is a congestion flow.
  • an embodiment of a method for identifying a congestion flow in an embodiment of the present application includes:
  • the network device acquires a queue length of the non-congested flow queue.
  • the network device obtains the queue length of the non-congested flow queue. It can be understood that the network device can be a switch. In addition, the network device can also be other devices, such as a router. Make a limit.
  • non-congested flow queue may include a data packet.
  • the non-congested flow queue may also include the description information of the data packet, which is not limited herein.
  • the output port corresponding to the data packet is determined by the description information.
  • a set of data packets having the same representation information in the non-congested flow queue may be defined as a flow.
  • the stream can be a set of the same data packet of the same tuple, for example, a set of data packets with the same destination IP address, in addition, the stream can also be a set of the same data packet of the same group, for example: five The same set of data packets of the tuple, or the stream may also be a collection of data packets of the same tuple or multi-group plus the same mask, for example, a destination IP address and a set of data packets having the same mask, specifically not here. Make a limit.
  • the network device determines whether the queue length is greater than or equal to the first threshold. If yes, step 303 is performed.
  • the network device After the network device obtains the queue length of the non-congested flow queue, it is determined whether the queue length is greater than or equal to the first threshold.
  • the network device determines a target output port of the target data packet.
  • the output queue is congested, and the network device determines the target output port corresponding to the target data packet.
  • the target data packet may be a data packet waiting to enter the non-congested flow queue.
  • the target data packet may also be other data packets.
  • the target data packet may also be waiting for the data packet.
  • the data packets output by the non-congested flow queue are not limited here.
  • the data packet in the network device has an output port corresponding thereto, and the network device can determine the output port corresponding to the data packet by looking up the FIB. It can be understood that the network device can enter the non-congested flow queue in the data packet. When the FIB is determined to determine its output port, the network device can also find the output port of the FIB when the data packet is output from the non-congested flow queue, which is not limited herein.
  • the network device determines whether the utilization rate of the target output port is greater than or equal to a second threshold. If yes, step 305 is performed.
  • the network device determines whether the utilization rate of the target output port is greater than or equal to a second threshold.
  • the port utilization rate is the port transmission rate/port bandwidth. It can be understood that the port transmission rate can be the current port transmission rate, or the average rate of the port transmission time. There is no limit here.
  • the network device determines that the flow corresponding to the target data packet is a congestion flow.
  • the network device may determine that the output needs to be output from the target output port.
  • the flow corresponding to the target data packet is a congestion flow.
  • the network device may acquire the length of the non-congested flow queue, and then when the length of the non-congested flow queue is greater than or equal to the first threshold, the network device determines the target output port corresponding to the target data packet, and then the target output port.
  • the utilization rate is greater than or equal to the second threshold, the network device determines that the flow corresponding to the target data packet is a congestion flow, and the method monitors the utilization rate of the target output port, when the utilization rate of the target output port is greater than or equal to the second threshold. It means that the data output from the target output port is more likely to cause blocking, so the flow that needs to be output from the target output port is more likely to be a congested stream, so the method improves the accuracy of the congestion flow identification.
  • Solution 2 When the queue length of the non-congested flow queue in the network device is greater than or equal to the first threshold, the network device determines whether the target output port corresponding to the target data packet is subjected to flow control, and if yes, determines the flow corresponding to the target data packet. For congestion flow.
  • another embodiment of a method for identifying a congestion flow in an embodiment of the present application includes:
  • the network device acquires a queue length of the non-congested flow queue.
  • step 401 is similar to step 301 in the embodiment shown in FIG. 3, and details are not described herein again.
  • the network device determines whether the queue length is greater than or equal to the first threshold. If yes, step 303 is performed.
  • step 402 is similar to step 302 in the embodiment shown in FIG. 3, and details are not described herein again.
  • the network device determines a target output port of the target data packet.
  • step 403 is similar to step 303 in the embodiment shown in FIG. 3, and details are not described herein again.
  • the network device determines whether the target output port is subjected to flow control. If yes, step 405 is performed.
  • the network device determines whether the target output port is subjected to flow control. It can be understood that the output port that is controlled by the flow control in the network device cannot forward the data packet normally.
  • the network where the network device is located supports flow control and the flow control function is enabled, it is determined whether the target output port is subjected to flow control. If the network does not support flow control or does not enable flow control, the network device can be considered as The output ports are all unflowed.
  • the network device determines that the flow corresponding to the target data packet is a congestion flow.
  • the network device can determine that the flow corresponding to the target data packet that needs to be output from the target output port is a congestion flow.
  • the network device may acquire the length of the non-congested flow queue, and then when the length of the non-congested flow queue is greater than or equal to the first threshold, the network device determines the target output port corresponding to the target data packet, and then the target output port.
  • the network device determines that the flow corresponding to the target data packet is a congestion flow.
  • the method monitors whether the target output port is subjected to flow control. When the target output port is subjected to flow control, the target output port cannot forward the data normally. Packet, then the flow that needs to be output from the target output port is more likely to be a congested stream, so this method improves the accuracy of congestion flow identification.
  • the network device selects a target data packet waiting to enter the queue, and further determines whether the flow corresponding to the target data packet is a congested flow:
  • the target data packet in the network device needs to be compared with the congestion flow flow table before entering the queue. If the target data packet matches the congestion flow flow table, the network device allocates the target data packet to enter the congestion flow queue. If there is no match, when the queue corresponding to the target data packet is congested, the network device determines whether the flow corresponding to the target data packet is a congested flow.
  • another embodiment of a method for identifying a congestion flow in an embodiment of the present application includes:
  • the network device determines a target data packet.
  • the target data packet determined by the network device is a data packet that is waiting to enter the queue, and the target data packet may be one or more, which is not limited herein.
  • the network device determines a target output port of the target data packet.
  • the target output port corresponding to the target data packet may be further determined by searching the FIB.
  • the network device determines whether the indication information of the target data packet matches the congestion flow flow table. If yes, step 504 is performed, and if no, step 505 is performed.
  • the network device extracts the representation information of the target data packet waiting to enter the queue, and then the network device searches for the congestion flow flow table, and determines whether there is a representation information of a certain congestion flow that has been recorded in the congestion flow flow table.
  • the representation information of the target packet matches.
  • the representation information may be a tuple of the target data packet, for example, a destination IP address of the target data packet, and in addition, the representation information may also be a multi-group of the target data packet, for example: The quintuple of the target data packet, or the representation information may also be a tuple or a multi-group plus mask of the target data packet, for example, the destination IP address and the mask of the target data packet, which is not limited herein. .
  • each input port in the network device has a corresponding congestion flow table, and in addition, multiple different input ports in the network device can share the same congestion flow table, specifically No restrictions are imposed.
  • the network device allocates a target data packet to enter a congestion flow queue.
  • the network device allocates the target data packet to enter the congestion flow to which the congestion flow belongs. queue.
  • the network device determines that the target data packet corresponds to the non-congestion. Whether the queue length of the flow queue is greater than or equal to the first threshold.
  • the network device allocates a target data packet to enter a non-congested flow queue.
  • the non-congested flow queue when the queue length of the non-congested flow queue corresponding to the target data packet is lower than the first threshold, the non-congested flow queue is in a normal state, and the network device allocates the target data packet to enter the non-congested flow queue.
  • the network device determines whether the utilization rate of the target output port is greater than or equal to a second threshold. If yes, step 509 is performed, and if no, step 508 is performed.
  • the port utilization rate is the port transmission rate/port bandwidth. It can be understood that the port transmission rate can be the current port transmission rate, or the average rate of the port transmission time. There is no limit here.
  • the network device determines whether the target output port is subjected to flow control. It can be understood that the output port that is controlled by the flow control in the network device cannot be forwarded normally. data pack.
  • step 508 may be performed first, and step 507 is performed, that is, the determination of step 508 is performed, and if so, execution is performed.
  • step 509 if no, step 507 is performed, and step 507 and step 508 are performed simultaneously. At least one of the determinations is YES, and step 509 is performed. Otherwise, step 512 is performed, which is not limited herein.
  • the network device determines that the flow corresponding to the target data packet is a congestion flow.
  • the utilization rate of the target output port when the utilization rate of the target output port is greater than or equal to the second threshold, or when the target output port is subjected to flow control, it indicates that the target output port forwards more data packets, and the forwarding pause may occur.
  • the network device determines that the flow corresponding to the target data packet is a congestion flow.
  • the network device records the representation information of the target data packet to the congestion flow flow table.
  • the representation information of the target data packet is recorded in the congestion flow flow table. It can be understood that the representation information of the target data packet is the representation of the congestion flow to which the target data packet belongs. information.
  • the network device isolates the congestion flow to the congestion flow queue.
  • the congestion flow is isolated to the congested flow queue.
  • the congestion flow queue may be a congested flow queue already existing in the network device, or may be newly created.
  • the congestion flow queue is not limited here.
  • step 510 may be performed first, or step 511 may be performed first, or step 510 and step 511 may be performed at the same time, which is not limited herein.
  • the network device ends the congestion flow identification.
  • the target output port when the target output port is not subjected to flow control, it indicates that the target output port can forward the data packet normally, and the corresponding target data packet does not belong to the congestion flow, and then the network device ends the target data packet. Congested flow identification.
  • the network device determines whether the queue length of the non-congested flow queue to which the target data packet belongs is greater than or equal to the first threshold, and if so, The network device determines whether the utilization rate of the target output port corresponding to the target data packet is greater than or equal to a second threshold. If yes, the network device determines that the flow corresponding to the target data packet is a congestion flow, and if not, the network device further determines the target port. Whether it is subject to flow control, if yes, the network device can determine that the flow corresponding to the target data packet is a congestion flow, and the method improves the accuracy of the congestion flow identification.
  • the network device selects a target data packet waiting to be output from the queue, and further determines whether the flow corresponding to the target data packet is a congested flow:
  • the network device determines a target data packet.
  • the network device determines a target output port of the target data packet.
  • step 602 is similar to step 502 in the embodiment shown in FIG. 5, and details are not described herein again.
  • the network device determines whether the target data packet belongs to the congestion flow queue. If yes, step 604 is performed, and if no, step 605 is performed.
  • the network device After the network device establishes the target data packet, it determines whether the target data packet belongs to the congestion flow queue.
  • the network device determines whether the length of the non-congested flow queue is greater than or equal to the first threshold. If yes, step 606 is performed, otherwise step 605 is performed.
  • the target data packet when the target data packet does not belong to the congestion flow queue, the target data packet belongs to the non-congested flow queue in the network device, and the network device determines whether the length of the non-congested flow queue is greater than or equal to the first threshold.
  • the network device forwards the target data packet.
  • the network device forwards the target data packet.
  • the network device determines whether the target output port is subjected to flow control. If yes, step 608 is performed, and if no, step 611 is performed.
  • the network device determines that the flow corresponding to the target data packet is a congestion flow.
  • the network device isolates the congestion flow to the congested flow queue.
  • the network device ends the congestion flow identification.
  • the steps 606 to 611 are similar to the steps 507 to 512 in the embodiment shown in FIG. 5, and details are not described herein again.
  • the network device determines whether the queue length of the non-congested flow queue to which the target data packet belongs is greater than or equal to the first threshold, and if so, the network device Determining whether the utilization rate of the target output port corresponding to the target data packet is greater than or equal to a second threshold. If yes, the network device determines that the flow corresponding to the target data packet is a congestion flow, and if not, the network device further determines whether the target port is subjected to the flow. Control, if yes, the network device can determine that the flow corresponding to the target data packet is a congestion flow, and the method improves the accuracy of the congestion flow identification.
  • an embodiment of a network device in this embodiment of the present application includes: a non-congested flow queue 701 and a congestion flow identification module 702.
  • the congestion flow identification module 702 further includes:
  • the obtaining unit 7021 is configured to acquire a queue length of the non-congested stream queue, where the non-congested stream queue includes description information of the data packet or the data packet;
  • the determining unit 7022 is configured to determine a target output port of the target data packet when the queue length of the non-congested flow queue is greater than or equal to the first threshold, and the target data packet is a data packet waiting to enter the non-congested flow queue or the next waiting for the non-congested flow queue Packets output by the congestion flow queue;
  • the determining unit 7023 is configured to determine whether the utilization rate of the target output port is greater than or equal to a second threshold
  • an identifying unit configured to determine that the flow corresponding to the target data packet is a congestion flow when the utilization of the target output port is greater than or equal to the second threshold or the target output port is flow controlled and the transmission is suspended.
  • the obtaining unit 7021 may acquire the queue length of the non-congested flow queue.
  • the determining unit 7022 determines the target output port corresponding to the target data packet, and the determining unit 7023 It can be determined whether the utilization of the target output port is greater than or equal to the second threshold or whether the target output port is flow controlled and suspended. When the utilization of the target output port is greater than or equal to the second threshold or the target output port is flow controlled and suspended.
  • the identification unit 7024 determines that the flow corresponding to the target data packet is a congestion flow, when the utilization of the target output port is greater than or equal to the second threshold or the target output port is flow controlled and suspended, the flow output from the target output port is required. It is more likely to be congested, so this method improves the accuracy of congestion flow identification.
  • the network device in the embodiment of the present application is described in detail in the following two aspects: identifying the congestion flow when the data packet is enqueued and identifying the congestion flow when the data packet is dequeued.
  • another embodiment of the network device in this embodiment of the present application includes:
  • the enqueue control module 803 further includes:
  • An extracting unit 8031 configured to extract representation information of the target data packet
  • the first determining unit 8032 is configured to determine whether the representation information of the target data packet matches the congestion flow flow table 801;
  • the allocating unit 8033 is configured to: when the representation information of the target data packet matches the congestion flow flow table 801, the allocation target data packet enters the congestion flow queue 804.
  • the congestion flow identification module 802 further includes:
  • a determining unit 8022 configured to determine a target output port of the target data packet
  • the second determining unit 8023 is configured to determine whether the utilization rate of the target output port is greater than or equal to a second threshold
  • the identifying unit 8024 is configured to determine that the flow corresponding to the target data packet is a congestion flow when the utilization of the target output port is greater than or equal to the second threshold or the target output port is flow controlled and the transmission is suspended;
  • the recording unit 8025 is configured to: when the flow corresponding to the target data packet is a congestion flow, record the target representation information of the target data packet to the congestion flow flow table 801;
  • the isolation unit 8026 is configured to isolate the congestion flow to the congestion flow queue 804 when the flow corresponding to the target data packet is a congestion flow.
  • the dequeue scheduling module 901 further includes:
  • the first determining unit 9011 is configured to determine whether the target data packet belongs to the congestion flow queue 905;
  • the congestion flow identification module 902 further includes:
  • the obtaining unit 9021 is configured to acquire a queue length of the non-congested flow queue corresponding to the target data packet when the target data packet does not belong to the congestion flow queue 905;
  • a determining unit 9022 configured to determine a target output port of the target data packet
  • the second determining unit 9023 is configured to determine whether the utilization rate of the target output port is greater than or equal to a second threshold
  • the identifying unit 9024 is configured to determine that the flow corresponding to the target data packet is a congestion flow when the utilization rate of the target output port is greater than or equal to the second threshold or the target output port is flow controlled and suspended.
  • the isolation unit 9026 is configured to isolate the congestion flow to the congestion flow queue 905 when the flow corresponding to the target data packet is a congestion flow.
  • the network device in the embodiment of the present invention is described above from the perspective of a modular functional entity.
  • an embodiment of the network device in the present application may include one or more central processing units 1001, a memory 1002, an input/output interface 1003, a wired or wireless network interface 1004, and a power supply 1005.
  • Memory 1002 can be short-lived or persistent. Still further, central processor 1001 can be configured to communicate with memory 1002 to perform a series of instruction operations in memory 1002 on the network device.
  • the central processing unit 1001 can perform the operations performed by the network device in the foregoing embodiment shown in FIG. 3 to FIG.
  • the specific function module division in the central processing unit 1001 may be the same as the congestion flow identification module, the enqueue control module, the dequeue scheduling module, the acquisition unit, the recording unit, the isolation unit, etc. described in the foregoing FIGS. 7 to 9.
  • the functional modules of the unit are divided in a similar manner and will not be described here.
  • the disclosed system, apparatus, and method may be implemented in other manners.
  • the device embodiments described above are merely illustrative.
  • the division of cells is only a logical function division.
  • multiple units or components may be combined or integrated. Go to another system, or some features can be ignored or not executed.
  • the mutual coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection through some interface, device or unit, and may be in an electrical, mechanical or other form.
  • An integrated unit if implemented in the form of a software functional unit and sold or used as a standalone product, can be stored in a computer readable storage medium.
  • the technical solution of the present application in essence or the contribution to the prior art, or all or part of the technical solution may be embodied in the form of a software product stored in a storage medium.
  • a number of instructions are included to cause a computer device (which may be a personal computer, server, or network device, etc.) to perform all or part of the steps of the various embodiments of the present application.
  • the foregoing storage medium includes: a U disk, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk, and the like, which can store program code. .

Landscapes

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

Abstract

本申请实施例公开了一种拥塞流识别的方法及网络设备,用于提高拥塞流识别的准确性。本申请实施例方法包括:网络设备获取非拥塞流队列的队列长度,所述非拥塞流队列包括数据包或所述数据包的描述信息,当所述非拥塞流队列的长度大于或等于第一阈值时,所述网络设备确定目标数据包的目标输出端口,所述目标数据包为等待进入非拥塞流队列的数据包或下一个等待从所述非拥塞流队列输出的数据包,当所述目标输出端口的利用率大于或等于第二阈值时,所述网络设备确定与所述目标数据包对应的流为拥塞流。本申请实施例还提供了一种网络设备,用于提高拥塞流识别的准确性。

Description

一种拥塞流识别方法及网络设备
本申请要求于2017年10月11日提交中国专利局、申请号为201710944894.3、申请名称为“一种拥塞流识别方法及网络设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信领域,尤其涉及一种拥塞流识别方法及网络设备。
背景技术
对于端口具有非拥塞流队列的网络设备(比如:输入排队的交换机和路由器),当前往不同输出端口或同一输出端口的不同虚通道的数据包在同一个非拥塞流队列中时,如果队首的数据包由于某些原因不能转发(比如:目标输出端口繁忙),其后的数据包即使满足转发的条件(比如:目标输出端口空闲),但由于同一队列中的数据包一般要执行先入先出的调度,所以也不能进行转发,即前一个数据包的停顿阻塞了后一个可转发的数据包,这种现象称为队头阻塞(英文全称:head of line blocking,英文简称:HOLB)。
目前,为解决队头阻塞问题常采用一种动态拥塞隔离技术,该技术可以在拥塞发生时,动态识别可能引起队头阻塞的数据包,并将该数据包以及与该数据包特征匹配的其他数据包一同定义为拥塞流,随后将该拥塞流隔离到独立的拥塞流队列中去,从而消除了该拥塞流对其他非拥塞流的阻塞,其中对拥塞流的识别常采用以下方法:
为非拥塞流队列配置一个判断是否发生拥塞的队列长度阈值,当队列排队长度大于或等于阈值时,随机选择一个队列中的数据包,或选择正要入队的数据包,将该数据包所属流识别为拥塞流。
从以上描述中可以看出,这种技术虽然可以通过队列长度阈值判断是否有拥塞发生,但是随机选择数据包并将该数据包所属流识别为拥塞流的方式,导致拥塞流识别的准确性较低。
发明内容
本申请实施例提供了一种拥塞流识别方法及网络设备,用于提高拥塞流识别的准确性。
有鉴于此,本申请实施例第一方面提供了一种拥塞流识别方法,包括:
网络设备获取非拥塞流队列的队列长度,非拥塞流队列包括数据包或数据包的描述信息;
当非拥塞流队列的队列长度大于或等于第一阈值时,网络设备确定目标数据包的目标输出端口,目标数据包为等待进入非拥塞流队列的数据包或下一个等待从非拥塞流队列输出的数据包;
当目标输出端口的利用率大于或等于第二阈值时,网络设备确定与目标数据包对应的流为拥塞流。
需要说明的是,网络设备可以通过查询转发信息库(forward information database,FIB)中目标数据包与目标输出端口的对应关系来确定目标数据包对应的目标输出端口。
需要说明的是,网络设备确定了拥塞流之后会将拥塞流隔离到拥塞流队列。
网络设备可以获取非拥塞流队列的长度,随后当非拥塞流队列的长度大于或等于第一阈值时,网络设备确定与目标数据包对应的目标输出端口,进而当目标输出端口的利用率大于或等于第二阈值时,网络设备确定与目标数据包对应的流为拥塞流,该方法对目标输出端口的利用率进行监控,当目标输出端口的利用率大于或等于第二阈值时即说明该目标输出端口输出的数据包较多可能引起阻塞,那么需要从该目标输出端口输出的流是拥塞流的可能性就较高,所以该方法提高了拥塞流识别的准确性。
结合本申请实施例第一方面,本申请实施例第一方面的第一种实施方式中,方法还包括:
当目标输出端口的利用率小于第二阈值时,网络设备判断目标输出端口是否受到流控并暂停发送;
若是,则网络设备确定与目标数据包对应的流为拥塞流。
本申请实施例提供了一种当目标输出端口利用率小于第二阈值时,进一步确定拥塞流的方法,扩充的了本申请实施例的实现方式。
结合本申请实施例第一方面,或第一方面的第一种实施方式,本申请实施例第一方面的第二种实施例中,网络设备确定与目标数据包对应的流为拥塞流之后,方法还包括:
网络设备将目标数据包的目标表示信息记录到拥塞流流表。
需要说明的是,该目标表示信息可以是该目标数据包的一元组信息,例如,目标数据包的目的互联网协议(internet protocol,IP)地址,也可以是该目标数据包的多元组信息,例如,目标数据包的五元组信息,又或者可以是目标数据包的一元组或多元组加掩码形式的信息,例如,目标数据包的目的IP地址加掩码形式的信息,具体此处不做限定。
可以理解的是,流是表示信息相同的数据包的集合,那么该目标表示信息也就是目标数据包所属的拥塞流的表示信息。
需要说明的是,网络设备中的每个输入端口都有与之对应的拥塞流流表,除此之外,网络设备中的多个不同的输入端口可以共享同一个拥塞流流表,具体此处不做限定。
结合本申请实施例第一方面的第二种实施方式,本申请实施例第一方面的第三种实施方式中,方法还包括:
网络设备根据拥塞流流表进行入队控制。
需要说明的是,在数据包进入队列之前,网络设备可以通过查找比对拥塞流流表对还未进入队列的数据包分配队列。
结合本申请实施例第一方面的第三种实施方式,本申请实施例第一方面的第四种实施方式中,网络设备根据拥塞流流表进行入队控制包括:
网络设备提取第一数据包的第一表示信息,第一数据包为在目标数据包之后等待进入非拥塞流队列的数据包;
网络设备判断第一表示信息是否与拥塞流流表匹配;
若是,则网络设备分配第一数据包进入拥塞流队列,拥塞流队列包括拥塞流。
可以理解的是,网络设备查找拥塞流流表,并判断拥塞流流表中是否存在已经记录的某一拥塞流的表示信息与该第一表示信息匹配。
需要说明的是,当第一表示信息并未与拥塞流流表匹配时,网络设备可以有两种执行方式,第一种方式,网络设备分配第一数据包进入非拥塞流队列,这种情况即网络设备不在第一数据包入队前对其执行拥塞流识别;第二种方式,网络设备对第一数据包执行拥塞流识别的步骤,网络设备判断第一数据包对应的非拥塞流队列的队列长度是否大于或等于第一阈值,若是,则网络设备判断第一数据包对应的第一输出端口的利用率是否大于或等于第二阈值,若是,则网络设备确定第一数据包对应的流为拥塞流,进而将第一数据包的第一表示信息记录到拥塞流流表。
结合本申请实施例第一方面,或第一方面的第一种实施方式,本申请实施例第一方面的第五种实施方式中,方法还包括:
网络设备根据预置的调度策略进行出队调度。
需要说明的是,网络设备根据预置的调度策略首先可以确定需要调度出队的第二数据包,随后网络设备判断该第二数据包是否属于拥塞流队列,若是,则网络设备调度该第二数据包出队,若否,则说明第二数据包来自非拥塞流队列,网络设备将对第二数据包执行拥塞流识别步骤,网络设备判断第二数据包对应的非拥塞流队列的队列长度是否大于或等于第一阈值,若是,则网络设备判断第二数据包对应的第二输出端口的利用率是否大于或等于第二阈值,若是,则网络设备确定第二数据包对应的流为拥塞流,进而将第二数据包的第二表示信息记录到拥塞流流表。
本申请实施例第二方面提供了一种拥塞流识别的方法,包括:
网络设备获取非拥塞流队列的长度,非拥塞流队列包括数据包或数据包的描述信息;
当非拥塞流队列的队列长度大于或等于第一阈值时,网络设备确定目标数据包的目标输出端口,目标数据包为等待进入非拥塞流队列的数据包或下一个等待从非拥塞流队列输出的数据包;
当目标输出端口受到流控并暂停发送时,网络设备确定与目标数据包对应的流为拥塞流。
需要说明的是,网络设备可以通过查询FIB中目标数据包与目标输出端口的对应关系来确定目标数据包对应的目标输出端口。
需要说明的是,网络设备确定了拥塞流之后会将拥塞流隔离到拥塞流队列。
网络设备可以获取非拥塞流队列的长度,随后当非拥塞流队列的长度大于或等于第一阈值时,网络设备确定与目标数据包对应的目标输出端口,进而当目标输出端口受到流控并暂停发送时,网络设备确定与目标数据包对应的流为拥塞流,目标输出端口的受流控时即说明该目标输出端口当前无法正常转发数据包,那么需要从该目标输出端口输出的流是拥塞流的可能性就较高,所以该方法提高了拥塞流识别的准确性。
结合本申请实施例第二方面,本申请实施例第二方面的第一种实施方式中,方法还包括:
当目标输出端口没有受到流控且可以继续发送时,网络设备判断目标输出端口的利用率是否大于或等于第二阈值;
若是,则网络设备确定与目标数据包对应的流为拥塞流。
本申请实施例提供了一种当目标输出端口没有受到流控时,进一步确定拥塞流的方法,扩充的了本申请实施例的实现方式。
结合本申请实施例第二方面,或第二方面的第一种实施方式,本申请实施例第二方面的第二种实施方式中,网络设备确定与目标数据包对应的流为拥塞流之后,方法还包括:
网络设备将目标数据包的目标表示信息记录到拥塞流流表。
需要说明的是,该目标表示信息可以是该目标数据包的一元组信息,例如,目标数据包的目的IP地址,也可以是该目标数据包的多元组信息,例如,目标数据包的五元组信息,又或者可以是目标数据包的一元组或多元组加掩码形式的信息,例如,目标数据包的目的IP地址加掩码形式的信息,具体此处不做限定。
需要说明的是,网络设备中的每个输入端口都有与之对应的拥塞流流表,除此之外,网络设备中的多个不同的输入端口可以共享同一个拥塞流流表,具体此处不做限定。
结合本申请实施例第二方面的第二种实施方式,本申请实施例第二方面的第三种实施方式中,方法还包括:
网络设备根据拥塞流流表进行入队控制。
需要说明的是,在数据包进入队列之前,网络设备可以通过查找比对拥塞流流表对还未进入队列的数据包分配队列。
结合本申请实施例第二方面的第三种实施方式,本申请实施例第二方面的第四种实施方式中,网络设备根据拥塞流流表进行入队控制包括:
网络设备提取第一数据包的第一表示信息,第一数据包为在目标数据包之后等待进入非拥塞流队列的数据包;
网络设备判断第一表示信息是否与拥塞流流表匹配;
若是,则网络设备分配第一数据包进入拥塞流队列,拥塞流队列包括拥塞流。
需要说明的是,当第一表示信息并未与拥塞流流表匹配时,网络设备可以有两种执行方式,第一种方式,网络设备分配第一数据包进入非拥塞流队列,这种情况即网络设备不在第一数据包入队前对其执行拥塞流识别;第二种方式,网络设备对第一数据包执行拥塞流识别的步骤,网络设备判断第一数据包对应的非拥塞流队列的队列长度是否大于或等于第一阈值,若是,则网络设备判断第一数据包对应的第一输出端口是否受到流控并暂停发送,若是,则网络设备确定第一数据包对应的流为拥塞流,进而将第一数据包的第一表示信息记录到拥塞流流表。
结合本申请实施例第二方面,或第二方面的第一种实施方式,本申请实施例第二方面的第五种实施方式中,方法还包括:
网络设备根据预置的调度策略进行出队调度。
需要说明的是,网络设备根据预置的调度策略首先可以确定需要调度出队的第二数据包,随后网络设备判断该第二数据包是否属于拥塞流队列,若是,则网络设备调度该第二 数据包出队,若否,则说明第二数据包来自非拥塞流队列,网络设备将对第二数据包执行拥塞流识别步骤,网络设备判断第二数据包对应的非拥塞流队列的队列长度是否大于或等于第一阈值,若是,则网络设备判断第二数据包对应的第二输出端口是否受到流控并暂停发送,若是,则网络设备确定第二数据包对应的流为拥塞流,进而将第二数据包的第二表示信息记录到拥塞流流表。
本申请实施例第三方面提供了一种网络设备,包括:
获取单元,用于获取非拥塞流队列的队列长度,非拥塞流队列包括数据包或数据包的描述信息;
确定单元,用于当非拥塞流队列的队列长度大于或等于第一阈值时,确定目标数据包的目标输出端口,目标数据包为等待进入非拥塞流队列的数据包或下一个等待从非拥塞流队列输出的数据包;
判断单元,用于判断所述目标输出端口的利用率是否大于或等于第二阈值;
或,
用于判断所述目标输出端口是否受到流控并暂停发送;
识别单元,用于当所述目标输出端口的利用率大于或等于第二阈值或所述目标输出端口受到流控并暂停发送时,确定与所述目标数据包对应的流为拥塞流。
结合本申请实施例第三方面,本申请实施例第三方面的第一种实施方式中,网络设备还包括:
记录单元,用于将目标数据包的目标表示信息记录到拥塞流流表。
结合本申请实施例第三方面的第一种实施方式,本申请实施例第三方面的第二种实施方式中,网络设备还包括:
控制单元,用于根据拥塞流流表进行入队控制。
结合本申请实施例第三方面的第二种实施方式,本申请实施例第三方面的第三种实施方式中,控制单元包括:
提取子单元,用于提取第一数据包的第一表示信息,第一数据包为在目标数据包之后等待进入非拥塞流队列的数据包;
判断子单元,用于判断第一表示信息是否与拥塞流流表匹配;
分配子单元,用于当第一表示信息与拥塞流流表匹配时,分配第一数据包进入拥塞流队列,拥塞流队列包括拥塞流。
结合本申请实施例第三方面,本申请实施例第三方面的第四种实施方式中,网络设备还包括:
调度单元,用于根据预置的调度策略进行出队调度。
本申请实施例第四方面提供了一种网络设备,包括:
处理器、存储器、总线以及输入输出接口;
存储器中存储有程序代码;
处理器调用存储器中的程序代码时执行如下操作:
获取非拥塞流队列的队列长度,非拥塞流队列包括数据包或数据包的描述信息;
当非拥塞流队列的队列长度大于或等于第一阈值时,确定目标数据包的目标输出端口,目标数据包为等待进入非拥塞流队列的数据包或下一个等待从非拥塞流队列输出的数据包;
当目标输出端口受到流控并暂停发送时,确定与目标数据包对应的流为拥塞流。
本申请实施例第五方面提供了一种网络设备,包括:
处理器、存储器、总线以及输入输出接口;
存储器中存储有程序代码;
处理器调用存储器中的程序代码时执行如下操作:
获取非拥塞流队列的长度,非拥塞流队列包括数据包或数据包的描述信息;
当非拥塞流队列的队列长度大于或等于第一阈值时,确定目标数据包的目标输出端口,目标数据包为等待进入非拥塞流队列的数据包或下一个等待从非拥塞流队列输出的数据包;
当目标输出端口受到流控并暂停发送时,确定与目标数据包对应的流为拥塞流。
本申请实施例第六方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面拥塞流识别方法中的流程。
本申请实施例第七方面提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面拥塞流识别方法中的流程。
从以上技术方案可以看出,本申请实施例具有以下优点:
本实施例中,网络设备可以获取非拥塞流队列的长度,随后当非拥塞流队列的长度大于或等于第一阈值时,网络设备确定与目标数据包对应的目标输出端口,进而当目标输出端口的利用率大于或等于第二阈值时,网络设备确定与目标数据包对应的流为拥塞流,该方法对目标输出端口的利用率进行监控,当目标输出端口的利用率大于或等于第二阈值时即说明该目标输出端口输出的数据包较多可能引起阻塞,那么需要从该目标输出端口输出的流是拥塞流的可能性就较高,所以该方法提高了拥塞流识别的准确性。
附图说明
图1为网络设备队头阻塞示意图;
图2为网络设备受到流控示意图;
图3为本申请拥塞流识别方法一个实施例示意图;
图4为本申请拥塞流识别方法另一实施例示意图;
图5为本申请拥塞流识别方法另一实施例示意图;
图6为本申请拥塞流识别方法另一实施例示意图;
图7为本申请网络设备一个实施例示意图;
图8为本申请网络设备另一实施例示意图;
图9为本申请网络设备另一实施例示意图;
图10为本申请网络设备另一实施例示意图。
具体实施方式
本申请实施例提供了一种拥塞流识别方法及网络设备,用于提高拥塞流识别的准确性。
本实施例可以应用于局域网、广域网等交换网络中的网络设备,图1所示的是网络设备中出现队头阻塞的场景,其中A、B、C、D为四条不同的流,流可以理解为具有相同表示信息的数据包的集合,每个流都有与之对应的输出端口,如图中的流A、流B及流D对应输出端口1,流C对应输出端口2,流A位于队列1中,流B及流C位于队列2中,流D位于队列3中。此时流A、流B及流D竞争输出端口1,在同一时刻它们中某一个流正在向输出端口1转发数据包时,其他流的数据包需要在队列中等待。因此某一时刻队列1、队列2及队列3中属于流A、流B及流D的数据包可能需要等待而不能正常转发。流C对应的输出端口2是相对空闲的理应正常转发,不过由于此时位于队列2队头流B的数据包无法正常转发,阻挡了队列2中流C的数据包的转发,这样就有可能造成队列2出现拥塞。
另外,队头阻塞在使用链路级流控的网络中表现的更加明显,如图2所示,网络设备1中的队列2出现了拥塞,流C无法正常转发,这时网络设备1会向网络设备2发送流控,抑制网络设备2向网络设备1发送数据包,也就是说网络设备2的输出端口2受到流控无法发送数据包。此时,网络设备2的队列2中属于流C且要发往该设备输出端口2的数据包需要在队列中等待而不能正常转发。由于网络设备2的队列2中的流C阻挡了流E,导致流E也不能正常转发,进一步可能造成网络设备2中的队列2的拥塞。可以看出,在使用链路级流控的网络中,下游设备拥塞时向上游设备发送流控,可能进而造成上游设备也发生拥塞引起连锁反应,即引起拥塞扩散。
可以理解的是,识别出引起队列拥塞的拥塞流并将该拥塞流从队列中隔离出去是解决队列拥塞的必要方式。
为便于理解,下面对本申请实施例中的具体流程进行描述,本申请实施例可以分为两个方案。
方案一:当网络设备中的非拥塞流队列的队列长度大于或等于第一阈值时,网络设备判断与目标数据包对应的目标输出端口的利用率是否大于或等于第一阈值,若是,则确定目标数据包对应的流为拥塞流。
请参阅图3,本申请实施例中拥塞流识别方法的一个实施例包括:
301、网络设备获取非拥塞流队列的队列长度。
本实施例中,网络设备获取非拥塞流队列的队列长度,可以理解的是,该网络设备可以是交换机,除此之外,该网络设备也可以是其他设备,例如:路由器,具体此处不做限定。
需要说明的是,该非拥塞流队列可以包括数据包,除此之外,该非拥塞流队列也可以包括该数据包的描述信息,具体此处不做限定,可以理解的是,网络设备可以通过该描述信息确定数据包对应的输出端口。
需要说明的是,非拥塞流队列中具有相同表示信息的数据包的集合可以定义为流。
可以理解的是,流可以是一元组相同的数据包的集合,例如:目的IP地址相同的数据 包的集合,除此之外,流也可以是多元组相同的数据包的集合,例如:五元组相同的数据包的集合,又或者流也可以是一元组或多元组加掩码相同的数据包的集合,例如:目的IP地址以及掩码都相同的数据包的集合,具体此处不做限定。
302、网络设备判断队列长度是否大于或等于第一阈值,若是,则执行步骤303。
本实施例中,网络设备获取到非拥塞流队列的队列长度后,判断该队列长度是否大于或等于第一阈值。
303、网络设备确定目标数据包的目标输出端口。
当非拥塞流队列的队列长度大于或等于第一阈值时,则说明该输出队列发生了拥塞,进而网络设备会确定目标数据包对应的目标输出端口。
需要说明的是,该目标数据包可以是等待进入该非拥塞流队列的数据包,除此之外,该目标数据包也可以是其他数据包,例如:该目标数据包也可以是等待从该非拥塞流队列输出的数据包,具体此处不做限定。
需要说明的是,网络设备中的数据包都有与之对应的输出端口,网络设备可以通过查找FIB确定数据包对应的输出端口,可以理解的是,网络设备可以在数据包进入非拥塞流队列时查找FIB确定其输出端口,除此之外,网络设备也可以在数据包从非拥塞流队列输出时查找FIB确定其输出端口,具体此处不做限定。
304、网络设备判断目标输出端口的利用率是否大于或等于第二阈值,若是,则执行步骤305。
本实施例中,网络设备在确定了目标输出端口之后,判读该目标输出端口的利用率是否大于或等于第二阈值。
需要说明的是,端口利用率=端口发送速率/端口带宽,可以理解的是,端口发送速率可以是当前端口的发送速率,除此之外,也可以是一段时长内端口发送的平均速率,具体此处不做限定。
305、网络设备确定与目标数据包对应的流为拥塞流。
当目标输出端口的利用率大于或等于第二阈值时,则说明该目标输出端口转发的数据包较多,可能出现转发停顿的情况,此时,网络设备可以确定需要从该目标输出端口输出的目标数据包所对应的流为拥塞流。
本实施例中,网络设备可以获取非拥塞流队列的长度,随后当非拥塞流队列的长度大于或等于第一阈值时,网络设备确定与目标数据包对应的目标输出端口,进而当目标输出端口的利用率大于或等于第二阈值时,网络设备确定与目标数据包对应的流为拥塞流,该方法对目标输出端口的利用率进行监控,当目标输出端口的利用率大于或等于第二阈值时即说明该目标输出端口输出的数据包较多可能引起阻塞,那么需要从该目标输出端口输出的流是拥塞流的可能性就较高,所以该方法提高了拥塞流识别的准确性。
方案二:当网络设备中的非拥塞流队列的队列长度大于或等于第一阈值时,网络设备判断与目标数据包对应的目标输出端口是否受到流控,若是,则确定目标数据包对应的流为拥塞流。
请参阅图4,本申请实施例中拥塞流识别方法的另一实施例包括:
401、网络设备获取非拥塞流队列的队列长度。
本实施例中,步骤401与图3所示的实施例中的步骤301类似,此处不再赘述。
402、网络设备判断队列长度是否大于或等于第一阈值,若是,则执行步骤303。
本实施例中,步骤402与图3所示的实施例中的步骤302类似,此处不再赘述。
403、网络设备确定目标数据包的目标输出端口。
本实施例中,步骤403与图3所示的实施例中的步骤303类似,此处不再赘述。
404、网络设备判断目标输出端口是否受到流控,若是,则执行步骤405。
本实施例中,网络设备在确定了目标输出端口之后,判读该目标输出端口是否受到流控,可以理解的是,网络设备中受到流控的输出端口将无法正常转发数据包。
需要说明的是,当网络设备所在的网络支持流控且流控功能开启时,才会判断目标输出端口是否受到流控,若网络不支持流控或未开启流控功能,可以认为网络设备的输出端口都处于不受流控的状态。
405、网络设备确定与目标数据包对应的流为拥塞流。
当目标输出端口受到流控时,则说明该目标输出端口受到抑制无法正常转发数据包,此时,网络设备可以确定需要从该目标输出端口输出的目标数据包所对应的流为拥塞流。
本实施例中,网络设备可以获取非拥塞流队列的长度,随后当非拥塞流队列的长度大于或等于第一阈值时,网络设备确定与目标数据包对应的目标输出端口,进而当目标输出端口受到流控时,网络设备确定与目标数据包对应的流为拥塞流,该方法对目标输出端口是否受到流控进行监控,当目标输出端口受到流控时即说明该目标输出端口无法正常转发数据包,那么需要从该目标输出端口输出的流是拥塞流的可能性就较高,所以该方法提高了拥塞流识别的准确性。
在实际应用中,网络设备识别拥塞流的时机有多种,下面分别进行说明:
1、网络设备选择等待进入队列的目标数据包,进而判断该目标数据包对应的流是否是拥塞流:
本实施例中,网络设备中的目标数据包在进入队列前需要与拥塞流流表进行比对,若该目标数据包与拥塞流流表匹配,则网络设备分配该目标数据包进入拥塞流队列,若并未匹配,那么当该目标数据包对应的队列拥塞时,网络设备判断该目标数据包对应的流是否是拥塞流。
请参阅图5,本申请实施例中拥塞流识别方法的另一实施例包括:
501、网络设备确定目标数据包。
本实施例中,网络设备确定的目标数据包为等待进入队列的数据包,该目标数据包可以是一个也可以是多个,具体此处不做限定。
502、网络设备确定目标数据包的目标输出端口。
本实施例中,网络设备确定了目标数据包之后,进一步可以通过查找FIB确定与该目标数据包对应的目标输出端口。
503、网络设备判断目标数据包的表示信息是否与拥塞流流表匹配,若是,则执行步骤504,若否,则执行步骤505。
本实施例中,网络设备会提取等待进入队列的目标数据包的表示信息,随后网络设备查找拥塞流流表,并判断拥塞流流表中是否存在已经记录的某一拥塞流的表示信息与该目标数据包的表示信息匹配。
需要说明的是,该表示信息可以是该目标数据包的一元组,例如:该目标数据包的目的IP地址,除此此外,该表示信息还可以是该目标数据包的多元组,例如:该目标数据包的五元组,又或者该表示信息也可以是该目标数据包的一元组或多元组加掩码,例如:该目标数据包的目的IP地址以及掩码,具体此处不做限定。
需要说明的是,网络设备中的每个输入端口都有与之对应的拥塞流流表,除此之外,网络设备中的多个不同的输入端口可以共享同一个拥塞流流表,具体此处不做限定。
504、网络设备分配目标数据包进入拥塞流队列。
本实施例中,当目标数据包的表示信息与拥塞流流表匹配时,则说明目标数据包属于网络设备中已经记录的拥塞流,那么网络设备分配该目标数据包进入拥塞流所属的拥塞流队列。
505、网络设备判断非拥塞流队列长度是否大于或等于第一阈值,若是,则执行步骤507,若否,则执行步骤506。
本实施例中,当目标数据包的表示信息并未与拥塞流流表匹配时,则说明目标数据包不属于网络设备中已经记录的拥塞流,进一步网络设备判断目标数据包所对应的非拥塞流队列的队列长度是否大于或等于第一阈值。
506、网络设备分配目标数据包进入非拥塞流队列。
本实施例中,当目标数据包所对应的非拥塞流队列的队列长度低于第一阈值时,则说明该非拥塞流队列处于正常状态,进一步网络设备分配目标数据包进入该非拥塞流队列。
507、网络设备判断目标输出端口的利用率是否大于或等于第二阈值,若是,则执行步骤509,若否,则执行步骤508。
本实施例中,当非拥塞流队列的队列长度大于或等于第一阈值时,则说明该非拥塞流队列发生了拥塞,进而网络设备判断目标输出端口的利用率是否大于或等于第二阈值。
需要说明的是,端口利用率=端口发送速率/端口带宽,可以理解的是,端口发送速率可以是当前端口的发送速率,除此之外,也可以是一段时长内端口发送的平均速率,具体此处不做限定。
508、网络设备判断目标输出端口是否受到流控,若是,则执行步骤509,若否,则执行步骤512。
本实施例中,当目标输出端口的利用率小于第二阈值时,进一步网络设备将判断该目标输出端口是否受到流控,可以理解的是,网络设备中受到流控的输出端口将无法正常转发数据包。
需要说明的是,步骤507与步骤508没有固定的时序关系,除了先执行步骤507再执行步骤508之外,还可以先执行步骤508在执行步骤507,即执行508步骤的判断,若是,则执行步骤509,若否,则执行步骤507,也可以是步骤507与步骤508同时执行,至少有一个判断为是即可执行步骤509,否则执行步骤512,具体此处不做限定。
509、网络设备确定目标数据包对应的流为拥塞流。
本实施例中,当目标输出端口的利用率大于或等于第二阈值时又或者目标输出端口受到流控时,则说明该目标输出端口转发的数据包较多,可能出现转发停顿的情况,此时,网络设备确定目标数据包对应的流为拥塞流。
510、网络设备将目标数据包的表示信息记录到拥塞流流表。
本实施例中,网络设备确定了拥塞流之后,会将目标数据包的表示信息记录到拥塞流流表,可以理解的是,目标数据包的表示信息就是该目标数据包所属的拥塞流的表示信息。
需要说明的是,关于表示信息以及拥塞流流表的描述与步骤503中的描述类似,此处不再赘述。
511、网络设备将拥塞流隔离到拥塞流队列。
本实施例中,网络设备确定了拥塞流之后,会将该拥塞流隔离到拥塞流队列,可以理解的是,该拥塞流队列可以是网络设备中已经存在的拥塞流队列,也可以是新创建的拥塞流队列,具体此处不做限定。
需要说明的是,步骤510与步骤511之间没有固定的时序关系,可以先执行步骤510,也可以先执行步骤511,也可以同时执行步骤510与步骤511,具体此处不做限定。
512、网络设备结束拥塞流识别。
本实施例中,当目标输出端口没有受到流控时,则说明该目标输出端口可以正常转发数据包,相应的目标数据包也不属于拥塞流,那么网络设备将结束对该目标数据包进行的拥塞流识别。
本实施例中,当等待进入队列的目标数据包的表示信息没有与拥塞流流表匹配时,网络设备判断目标数据包所属的非拥塞流队列的队列长度是否大于或等于第一阈值,若是,网络设备将判断目标数据包对应的目标输出端口的利用率是否大于或等于第二阈值,若是,则网络设备确定该目标数据包对应的流为拥塞流,若否,网络设备将进一步判断目标端口是否受到流控,若是,则网络设备可以确定该目标数据包对应的流为拥塞流,该方法提高了拥塞流识别的准确性。
2、网络设备选择等待从队列输出的目标数据包,进而判断该目标数据包对应的流是否是拥塞流:
本实施例中,网络设备根据预置的调度策略进行出队调度,从而可以确定等待从队列输出的目标数据包,进而当该目标数据包属于非拥塞流队列且该非拥塞流队列拥塞时,网络设备判断该目标数据包对应的流是否是拥塞流。
请参阅图6,本申请实施例中拥塞流识别方法的另一实施例包括:
601、网络设备确定目标数据包。
本实施例中,网络设备根据预置的调度策略进行数据包的出队调度,网络设备确定的目标数据包为等待从队列输出的数据包,该目标数据包可以是一个也可以是多个,具体此处不做限定。
602、网络设备确定目标数据包的目标输出端口。
本实施例中,步骤602与图5所示的实施例中的步骤502类似,具体此处不再赘述。
603、网络设备判断目标数据包是否属于拥塞流队列,若是,则执行步骤604,若否,则执行步骤605。
本实施例中,网络设备确立了目标数据包后,将判断该目标数据包是否属于拥塞流队列。
604、网络设备判断非拥塞流队列长度是否大于或等于第一阈值,若是,则执行步骤606,若否则执行步骤605。
本实施例中,当目标数据包不属于拥塞流队列时,则说明该目标数据包属于网络设备中的非拥塞流队列,进一步网络设备判断该非拥塞流队列的长度是否大于或等于第一阈值。
605、网络设备转发目标数据包。
本实施例中,当目标数据包属于网络设备中已经存在的拥塞流队列时或目标数据包属于非拥塞状态的非拥塞流队列时,网络设备转发该目标数据包。
606、网络设备判断目标输出端口的利用率是否大于或等于第二阈值,若是,则执行步骤608,若否,则执行步骤607。
607、网络设备判断目标输出端口是否受到流控,若是,则执行步骤608,若否,则执行步骤611。
608、网络设备确定目标数据包对应的流为拥塞流。
609、网络设备将目标数据包的表示信息记录到拥塞流流表。
610、网络设备将拥塞流隔离到拥塞流队列。
611、网络设备结束拥塞流识别。
本实施例中,步骤606至步骤611与图5所示的实施例中的步骤507至步骤512类似,具体此处不再赘述。
本实施例中,当等待从队列中输出的目标数据包属于非拥塞流队列时,网络设备判断目标数据包所属的非拥塞流队列的队列长度是否大于或等于第一阈值,若是,网络设备将判断目标数据包对应的目标输出端口的利用率是否大于或等于第二阈值,若是,则网络设备确定该目标数据包对应的流为拥塞流,若否,网络设备将进一步判断目标端口是否受到流控,若是,则网络设备可以确定该目标数据包对应的流为拥塞流,该方法提高了拥塞流识别的准确性。
上面对本申请实施例中的拥塞流识别方法进行了描述,下面对本申请实施例中的网络设备进行描述:
请参阅图7,本申请实施例中网络设备的一个实施例包括:非拥塞流队列701以及拥塞流识别模块702。
其中,拥塞流识别模块702进一步包括:
获取单元7021、用于获取非拥塞流队列的队列长度,非拥塞流队列包括数据包或数据包的描述信息;
确定单元7022、用于当非拥塞流队列的队列长度大于或等于第一阈值时,确定目标数据包的目标输出端口,目标数据包为等待进入非拥塞流队列的数据包或下一个等待从非拥塞流队列输出的数据包;
判断单元7023、用于判断目标输出端口的利用率是否大于或等于第二阈值;
或,
用于判断目标输出端口是否受到流控并暂停发送;
识别单元,用于当目标输出端口的利用率大于或等于第二阈值或目标输出端口受到流控并暂停发送时,确定与所述目标数据包对应的流为拥塞流。
本实施例中,获取单元7021可以获取非拥塞流队列的队列长度,当非拥塞流队列的队列长度大于或等于第一阈值时,确定单元7022确定目标数据包对应的目标输出端口,判断单元7023可以判断目标输出端口的利用率是否大于或等于第二阈值或目标输出端口是否受到流控并暂停发送,当目标输出端口的利用率大于或等于第二阈值或目标输出端口受到流控并暂停发送时,识别单元7024确定目标数据包对应的流为拥塞流,当目标输出端口的利用率大于或等于第二阈值或者目标输出端口受到流控并暂停发送时,需要从该目标输出端口输出的流是拥塞流的可能性就较高,所以该方法提高了拥塞流识别的准确性。
为便于理解,下面分别从数据包入队时识别拥塞流以及数据包出队时识别拥塞流两个方面对本申请实施例中的网络设备进行详细描述。
请参阅图8,本申请实施例中网络设备另一实施例包括:
拥塞流流表801、拥塞流识别模块802、入队控制模块803、拥塞流队列804及非拥塞流队列805。
入队控制模块803进一步包括:
提取单元8031、用于提取目标数据包的表示信息;
第一判断单元8032、用于判断目标数据包的表示信息是否与拥塞流流表801匹配;
分配单元8033、用于当目标数据包的表示信息与拥塞流流表匹配801时,分配目标数据包进入拥塞流队列804。
拥塞流识别模块802进一步包括:
获取单元8021、用于当目标数据包的表示信息没有与拥塞流流表801匹配时,获取目标数据包对应的非拥塞流队列的队列长度;
确定单元8022、用于确定目标数据包的目标输出端口;
第二判断单元8023、用于判断目标输出端口的利用率是否大于或等于第二阈值;
或,
用于判断目标输出端口是否受到流控并暂停发送;
识别单元8024、用于当目标输出端口的利用率大于或等于第二阈值或目标输出端口受到流控并暂停发送时,确定与所述目标数据包对应的流为拥塞流;
记录单元8025、用于当目标数据包对应的流为拥塞流时,记录目标数据包的目标表示信息到拥塞流流表801;
隔离单元8026、用于当目标数据包对应的流为拥塞流时,将该拥塞流隔离到拥塞流队列804。
请参阅图9,本申请实施例中网络设备另一实施例包括:
出队调度模块901、拥塞流识别模块902、拥塞流流表903、非拥塞流队列904及拥塞 流队列905。
出队调度模块901进一步包括:
第一判断单元9011、用于判断目标数据包是否属于拥塞流队列905;
转发单元9012、用于当目标数据包属于拥塞流队列905时,转发该目标数据包。
拥塞流识别模块902进一步包括:
获取单元9021、用于当目标数据包不属于拥塞流队列905时,获取目标数据包对应的非拥塞流队列的队列长度;
确定单元9022、用于确定目标数据包的目标输出端口;
第二判断单元9023、用于判断目标输出端口的利用率是否大于或等于第二阈值;
或,
用于判断目标输出端口是否受到流控并暂停发送;
识别单元9024、用于当目标输出端口的利用率大于或等于第二阈值或目标输出端口受到流控并暂停发送时,确定与所述目标数据包对应的流为拥塞流;
记录单元9025、用于当目标数据包对应的流为拥塞流时,记录目标数据包的目标表示信息到拥塞流流表903;
隔离单元9026、用于当目标数据包对应的流为拥塞流时,将该拥塞流隔离到拥塞流队列905。
上面从模块化功能实体的角度对本发明实施例中的网络设备进行描述,下面从硬件处理的角度对本发明实施例中的网络设备进行描述:
请参阅图10,本申请中网络设备一个实施例可以包括一个或一个以上中央处理器1001,存储器1002,输入输出接口1003,有线或无线网络接口1004,电源1005。
存储器1002可以是短暂存储或持久存储。更进一步地,中央处理器1001可以配置为与存储器1002通信,在网络设备上执行存储器1002中的一系列指令操作。
本实施例中,中央处理器1001可以执行前述图3至图6所示实施例中网络设备所执行的操作,具体此处不再赘述。
本实施例中,中央处理器1001中的具体功能模块划分可以与前述图7至9中所描述的拥塞流识别模块、入队控制模块、出队调度模块、获取单元、记录单元、隔离单元等单元的功能模块划分方式类似,此处不再赘述。
本申请实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)并不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的方案,例如,包括了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分, 仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,read-only memory)、随机存取存储器(RAM,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。

Claims (21)

  1. 一种拥塞流识别的方法,其特征在于,包括:
    网络设备获取非拥塞流队列的队列长度,所述非拥塞流队列包括数据包或所述数据包的描述信息;
    当所述非拥塞流队列的队列长度大于或等于第一阈值时,所述网络设备确定目标数据包的目标输出端口,所述目标数据包为等待进入所述非拥塞流队列的数据包或下一个等待从所述非拥塞流队列输出的数据包;
    当所述目标输出端口的利用率大于或等于第二阈值时,所述网络设备确定与所述目标数据包对应的流为拥塞流。
  2. 根据权利要求1所述的方法,其特征在于,所述方法还包括:
    当所述目标输出端口的利用率小于所述第二阈值时,所述网络设备判断所述目标输出端口是否受到流控并暂停发送;
    若是,则所述网络设备确定与所述目标数据包对应的流为拥塞流。
  3. 根据权利要求1或2所述的方法,其特征在于,所述网络设备确定与所述目标数据包对应的流为拥塞流之后,所述方法还包括:
    所述网络设备将所述目标数据包的目标表示信息记录到拥塞流流表。
  4. 根据权利要求3所述的方法,其特征在于,所述方法还包括:
    所述网络设备根据所述拥塞流流表进行入队控制。
  5. 根据权利要求4所述的方法,其特征在于,所述网络设备根据所述拥塞流流表进行入队控制包括:
    所述网络设备提取第一数据包的第一表示信息,所述第一数据包为在所述目标数据包之后等待进入所述非拥塞流队列的数据包;
    所述网络设备判断所述第一表示信息是否与所述拥塞流流表匹配;
    若是,则所述网络设备分配所述第一数据包进入拥塞流队列,所述拥塞流队列包括所述拥塞流。
  6. 根据权利要求1或2所述的方法,其特征在于,所述网络设备确定与所述目标数据包对应的流为拥塞流之后,所述方法还包括:
    所述网络设备根据预置的调度策略进行出队调度。
  7. 一种拥塞流识别的方法,其特征在于,包括:
    网络设备获取非拥塞流队列的长度,所述非拥塞流队列包括数据包或所述数据包的描述信息;
    当所述非拥塞流队列的队列长度大于或等于第一阈值时,所述网络设备确定目标数据包的目标输出端口,所述目标数据包为等待进入所述非拥塞流队列的数据包或下一个等待从所述非拥塞流队列输出的数据包;
    当所述目标输出端口受到流控并暂停发送时,所述网络设备确定与所述目标数据包对应的流为拥塞流。
  8. 根据权利要求7所述的方法,其特征在于,所述方法还包括:
    当所述目标输出端口没有受到流控且可以继续发送时,所述网络设备判断所述目标输出端口的利用率是否大于或等于第二阈值;
    若是,则所述网络设备确定与所述目标数据包对应的流为拥塞流。
  9. 根据权利要求7或8所述的方法,其特征在于,所述网络设备确定与所述目标数据包对应的流为拥塞流之后,所述方法还包括:
    所述网络设备将所述目标数据包的目标表示信息记录到拥塞流流表。
  10. 根据权利要求9所述的方法,其特征在于,所述方法还包括:
    所述网络设备根据所述拥塞流流表进行入队控制。
  11. 根据权利要求10所述的方法,其特征在于,所述网络设备根据所述拥塞流流表进行入队控制包括:
    所述网络设备提取第一数据包的第一表示信息,所述第一数据包为在所述目标数据包之后等待进入所述非拥塞流队列的数据包;
    所述网络设备判断所述第一表示信息是否与所述拥塞流流表匹配;
    若是,则所述网络设备分配所述第一数据包进入拥塞流队列,所述拥塞流队列包括所述拥塞流。
  12. 根据权利要求7或8所述的方法,其特征在于,所述网络设备确定与所述目标数据包对应的流为拥塞流之后,所述方法还包括:
    所述网络设备根据预置的调度策略进行出队调度。
  13. 一种网络设备,其特征在于,包括:
    获取单元,用于获取非拥塞流队列的队列长度,所述非拥塞流队列包括数据包或所述数据包的描述信息;
    确定单元,用于当所述非拥塞流队列的队列长度大于或等于第一阈值时,确定目标数据包的目标输出端口,所述目标数据包为等待进入所述非拥塞流队列的数据包或下一个等待从所述非拥塞流队列输出的数据包;
    判断单元,用于判断所述目标输出端口的利用率是否大于或等于第二阈值;
    或,
    用于判断所述目标输出端口是否受到流控并暂停发送;
    识别单元,用于当所述目标输出端口的利用率大于或等于第二阈值或所述目标输出端口受到流控并暂停发送时,确定与所述目标数据包对应的流为拥塞流。
  14. 根据权利要求13所述的网络设备,其特征在于,所述网络设备还包括:
    记录单元,用于将所述目标数据包的目标表示信息记录到拥塞流流表。
  15. 根据权利要求14所述的网络设备,其特征在于,所述网络设备还包括:
    控制单元,用于根据所述拥塞流流表进行入队控制。
  16. 根据权利要求15所述的网络设备,其特征在于,所述控制单元包括:
    提取子单元,用于提取第一数据包的第一表示信息,所述第一数据包为在所述目标数据包之后等待进入所述非拥塞流队列的数据包;
    判断子单元,用于判断所述第一表示信息是否与所述拥塞流流表匹配;
    分配子单元,用于当所述第一表示信息与所述拥塞流流表匹配时,分配所述第一数据包进入拥塞流队列,所述拥塞流队列包括所述拥塞流。
  17. 根据权利要求13所述的网络设备,其特征在于,所述网络设备还包括:
    调度单元,用于根据预置的调度策略进行出队调度。
  18. 一种网络设备,其特征在于,包括:
    处理器、存储器、总线以及输入输出接口;
    所述存储器中存储有程序代码;
    所述处理器调用所述存储器中的程序代码时执行如下操作:
    获取非拥塞流队列的队列长度,所述非拥塞流队列包括数据包或所述数据包的描述信息;
    当所述非拥塞流队列的队列长度大于或等于第一阈值时,确定目标数据包的目标输出端口,所述目标数据包为等待进入所述非拥塞流队列的数据包或下一个等待从所述非拥塞流队列输出的数据包;
    当所述目标输出端口的利用率大于或等于第二阈值时,确定与所述目标数据包对应的流为拥塞流。
  19. 一种网络设备,其特征在于,包括:
    处理器、存储器、总线以及输入输出接口;
    所述存储器中存储有程序代码;
    所述处理器调用所述存储器中的程序代码时执行如下操作:
    获取非拥塞流队列的队列长度,所述非拥塞流队列包括数据包或所述数据包的描述信息;
    当所述非拥塞流队列的队列长度大于或等于第一阈值时,确定目标数据包的目标输出端口,所述目标数据包为等待进入所述非拥塞流队列的数据包或下一个等待从所述非拥塞流队列输出的数据包;
    当所述目标输出端口受到流控并暂停发送时,确定与所述目标数据包对应的流为拥塞流。
  20. 一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使得计算机执行如权利要求1至12中任意一项所述的方法。
  21. 一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如权利要求1至12中任意一项所述的方法。
PCT/CN2018/106164 2017-10-11 2018-09-18 一种拥塞流识别方法及网络设备 WO2019072072A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP18866966.7A EP3687125B1 (en) 2017-10-11 2018-09-18 Congestion flow identification method and network device
US16/844,624 US11146489B2 (en) 2017-10-11 2020-04-09 Congestion flow identification method and network device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201710944894.3 2017-10-11
CN201710944894.3A CN109660463A (zh) 2017-10-11 2017-10-11 一种拥塞流识别方法及网络设备

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/844,624 Continuation US11146489B2 (en) 2017-10-11 2020-04-09 Congestion flow identification method and network device

Publications (1)

Publication Number Publication Date
WO2019072072A1 true WO2019072072A1 (zh) 2019-04-18

Family

ID=66101190

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2018/106164 WO2019072072A1 (zh) 2017-10-11 2018-09-18 一种拥塞流识别方法及网络设备

Country Status (4)

Country Link
US (1) US11146489B2 (zh)
EP (1) EP3687125B1 (zh)
CN (1) CN109660463A (zh)
WO (1) WO2019072072A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020244422A1 (zh) * 2019-06-05 2020-12-10 中兴通讯股份有限公司 队列拥塞控制方法、装置、设备及存储介质
CN115134302A (zh) * 2022-06-27 2022-09-30 长沙理工大学 一种无损网络中避免队头阻塞和拥塞扩散的流量隔离方法
CN115484210A (zh) * 2022-08-16 2022-12-16 北京百度网讯科技有限公司 拥塞窗口的确定方法、装置与系统
US11750504B2 (en) 2019-05-23 2023-09-05 Hewlett Packard Enterprise Development Lp Method and system for providing network egress fairness between applications
US12132648B2 (en) 2020-03-23 2024-10-29 Hewlett Packard Enterprise Development Lp System and method for facilitating efficient load balancing in a network interface controller (NIC)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11171869B2 (en) * 2019-04-10 2021-11-09 At&T Intellectual Property I, L.P. Microburst detection and management
CN113347116B (zh) * 2021-06-16 2022-05-27 杭州迪普科技股份有限公司 QoS调度延迟抖动处理方法及装置
CN113556291B (zh) * 2021-07-08 2024-04-30 北京奇艺世纪科技有限公司 流量跟踪方法、装置、设备及计算机可读介质
CN117014376A (zh) * 2022-04-28 2023-11-07 华为技术有限公司 拥塞流识别方法、装置、设备及计算机可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030035432A1 (en) * 2001-08-20 2003-02-20 Sreejith Sreedharan P. Mechanism for cell routing in a multi-stage fabric with input queuing
US6614756B1 (en) * 1999-08-20 2003-09-02 3Com Corporation Method of detecting and recovering from signaling congestion in an asynchronous transfer mode network
CN102164067A (zh) * 2010-02-20 2011-08-24 华为技术有限公司 交换网流控实现方法、交换设备及系统
CN103368861A (zh) * 2013-07-30 2013-10-23 迈普通信技术股份有限公司 一种处理网络拥塞的系统及方法
CN104917703A (zh) * 2015-06-09 2015-09-16 上海斐讯数据通信技术有限公司 基于sdn的防线头阻塞方法及系统
CN105187321A (zh) * 2015-06-08 2015-12-23 中国联合网络通信集团有限公司 控制流量的方法及装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60119866T2 (de) * 2000-09-27 2007-05-10 International Business Machines Corp. Vermittlungseinrichtung und verfahren mit getrennten Ausgangspuffern
US7613184B2 (en) * 2003-11-07 2009-11-03 Alcatel Lucent Method and apparatus for performing scalable selective backpressure in packet-switched networks using internal tags
CN101582854A (zh) * 2009-06-12 2009-11-18 华为技术有限公司 一种数据交换方法、装置和系统
CN102223300B (zh) * 2011-06-09 2014-02-05 武汉烽火网络有限责任公司 一种网络设备中多媒体数据的传输控制方法
US10122645B2 (en) * 2012-12-07 2018-11-06 Cisco Technology, Inc. Output queue latency behavior for input queue based device
US20140237118A1 (en) * 2013-02-19 2014-08-21 Broadcom Corporation Application Aware Elephant Flow Management
CN104104617B (zh) * 2014-08-07 2017-10-17 曙光信息产业(北京)有限公司 一种报文仲裁方法及装置
CN104852863B (zh) * 2015-04-15 2018-04-10 清华大学 一种共享缓存交换机中的动态阈值管理方法及装置
JP6897434B2 (ja) * 2017-08-31 2021-06-30 富士通株式会社 情報処理システム、情報処理装置及び情報処理プログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6614756B1 (en) * 1999-08-20 2003-09-02 3Com Corporation Method of detecting and recovering from signaling congestion in an asynchronous transfer mode network
US20030035432A1 (en) * 2001-08-20 2003-02-20 Sreejith Sreedharan P. Mechanism for cell routing in a multi-stage fabric with input queuing
CN102164067A (zh) * 2010-02-20 2011-08-24 华为技术有限公司 交换网流控实现方法、交换设备及系统
CN103368861A (zh) * 2013-07-30 2013-10-23 迈普通信技术股份有限公司 一种处理网络拥塞的系统及方法
CN105187321A (zh) * 2015-06-08 2015-12-23 中国联合网络通信集团有限公司 控制流量的方法及装置
CN104917703A (zh) * 2015-06-09 2015-09-16 上海斐讯数据通信技术有限公司 基于sdn的防线头阻塞方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3687125A4

Cited By (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11876702B2 (en) 2019-05-23 2024-01-16 Hewlett Packard Enterprise Development Lp System and method for facilitating efficient address translation in a network interface controller (NIC)
US12058033B2 (en) 2019-05-23 2024-08-06 Hewlett Packard Enterprise Development Lp Method and system for providing network ingress fairness between applications
US11882025B2 (en) 2019-05-23 2024-01-23 Hewlett Packard Enterprise Development Lp System and method for facilitating efficient message matching in a network interface controller (NIC)
US12058032B2 (en) 2019-05-23 2024-08-06 Hewlett Packard Enterprise Development Lp Weighting routing
US11750504B2 (en) 2019-05-23 2023-09-05 Hewlett Packard Enterprise Development Lp Method and system for providing network egress fairness between applications
US11757763B2 (en) 2019-05-23 2023-09-12 Hewlett Packard Enterprise Development Lp System and method for facilitating efficient host memory access from a network interface controller (NIC)
US11757764B2 (en) 2019-05-23 2023-09-12 Hewlett Packard Enterprise Development Lp Optimized adaptive routing to reduce number of hops
US11765074B2 (en) 2019-05-23 2023-09-19 Hewlett Packard Enterprise Development Lp System and method for facilitating hybrid message matching in a network interface controller (NIC)
US11777843B2 (en) 2019-05-23 2023-10-03 Hewlett Packard Enterprise Development Lp System and method for facilitating data-driven intelligent network
US11784920B2 (en) 2019-05-23 2023-10-10 Hewlett Packard Enterprise Development Lp Algorithms for use of load information from neighboring nodes in adaptive routing
US11792114B2 (en) 2019-05-23 2023-10-17 Hewlett Packard Enterprise Development Lp System and method for facilitating efficient management of non-idempotent operations in a network interface controller (NIC)
US11799764B2 (en) 2019-05-23 2023-10-24 Hewlett Packard Enterprise Development Lp System and method for facilitating efficient packet injection into an output buffer in a network interface controller (NIC)
US11818037B2 (en) 2019-05-23 2023-11-14 Hewlett Packard Enterprise Development Lp Switch device for facilitating switching in data-driven intelligent network
US11848859B2 (en) 2019-05-23 2023-12-19 Hewlett Packard Enterprise Development Lp System and method for facilitating on-demand paging in a network interface controller (NIC)
US11855881B2 (en) 2019-05-23 2023-12-26 Hewlett Packard Enterprise Development Lp System and method for facilitating efficient packet forwarding using a message state table in a network interface controller (NIC)
US11863431B2 (en) 2019-05-23 2024-01-02 Hewlett Packard Enterprise Development Lp System and method for facilitating fine-grain flow control in a network interface controller (NIC)
US12040969B2 (en) 2019-05-23 2024-07-16 Hewlett Packard Enterprise Development Lp System and method for facilitating data-driven intelligent network with flow control of individual applications and traffic flows
US11876701B2 (en) 2019-05-23 2024-01-16 Hewlett Packard Enterprise Development Lp System and method for facilitating operation management in a network interface controller (NIC) for accelerators
US12034633B2 (en) 2019-05-23 2024-07-09 Hewlett Packard Enterprise Development Lp System and method for facilitating tracer packets in a data-driven intelligent network
US12021738B2 (en) 2019-05-23 2024-06-25 Hewlett Packard Enterprise Development Lp Deadlock-free multicast routing on a dragonfly network
US11902150B2 (en) 2019-05-23 2024-02-13 Hewlett Packard Enterprise Development Lp Systems and methods for adaptive routing in the presence of persistent flows
US11899596B2 (en) 2019-05-23 2024-02-13 Hewlett Packard Enterprise Development Lp System and method for facilitating dynamic command management in a network interface controller (NIC)
US11916782B2 (en) 2019-05-23 2024-02-27 Hewlett Packard Enterprise Development Lp System and method for facilitating global fairness in a network
US11916781B2 (en) 2019-05-23 2024-02-27 Hewlett Packard Enterprise Development Lp System and method for facilitating efficient utilization of an output buffer in a network interface controller (NIC)
US11929919B2 (en) 2019-05-23 2024-03-12 Hewlett Packard Enterprise Development Lp System and method for facilitating self-managing reduction engines
US11962490B2 (en) 2019-05-23 2024-04-16 Hewlett Packard Enterprise Development Lp Systems and methods for per traffic class routing
US11968116B2 (en) 2019-05-23 2024-04-23 Hewlett Packard Enterprise Development Lp Method and system for facilitating lossy dropping and ECN marking
US11973685B2 (en) 2019-05-23 2024-04-30 Hewlett Packard Enterprise Development Lp Fat tree adaptive routing
US11985060B2 (en) 2019-05-23 2024-05-14 Hewlett Packard Enterprise Development Lp Dragonfly routing with incomplete group connectivity
US11991072B2 (en) 2019-05-23 2024-05-21 Hewlett Packard Enterprise Development Lp System and method for facilitating efficient event notification management for a network interface controller (NIC)
US12003411B2 (en) 2019-05-23 2024-06-04 Hewlett Packard Enterprise Development Lp Systems and methods for on the fly routing in the presence of errors
WO2020244422A1 (zh) * 2019-06-05 2020-12-10 中兴通讯股份有限公司 队列拥塞控制方法、装置、设备及存储介质
US12132648B2 (en) 2020-03-23 2024-10-29 Hewlett Packard Enterprise Development Lp System and method for facilitating efficient load balancing in a network interface controller (NIC)
CN115134302A (zh) * 2022-06-27 2022-09-30 长沙理工大学 一种无损网络中避免队头阻塞和拥塞扩散的流量隔离方法
CN115134302B (zh) * 2022-06-27 2024-01-16 长沙理工大学 一种无损网络中避免队头阻塞和拥塞扩散的流量隔离方法
CN115484210B (zh) * 2022-08-16 2023-07-25 北京百度网讯科技有限公司 拥塞窗口的确定方法、装置与系统
CN115484210A (zh) * 2022-08-16 2022-12-16 北京百度网讯科技有限公司 拥塞窗口的确定方法、装置与系统

Also Published As

Publication number Publication date
US20200236051A1 (en) 2020-07-23
CN109660463A (zh) 2019-04-19
EP3687125A4 (en) 2020-09-02
EP3687125B1 (en) 2024-06-19
EP3687125A1 (en) 2020-07-29
US11146489B2 (en) 2021-10-12

Similar Documents

Publication Publication Date Title
WO2019072072A1 (zh) 一种拥塞流识别方法及网络设备
CN109565477B (zh) 具有远程物理端口的网络交换系统中的流量管理
JP6938766B2 (ja) パケット制御方法およびネットワーク装置
US10243865B2 (en) Combined hardware/software forwarding mechanism and method
US7701849B1 (en) Flow-based queuing of network traffic
US10135636B2 (en) Method for generating forwarding information, controller, and service forwarding entity
JP6881861B2 (ja) パケット処理方法および装置
EP3547627A1 (en) Flow control method and switching device
EP2608467B1 (en) System and method for hierarchical adaptive dynamic egress port and queue buffer management
US20070248110A1 (en) Dynamically switching streams of packets among dedicated and shared queues
US11595315B2 (en) Quality of service in virtual service networks
CN109905329B (zh) 一种虚拟化环境下任务类型感知的流队列自适应管理方法
CN108040019B (zh) 报文转发的方法及装置
US11212590B2 (en) Multiple core software forwarding
EP2608620A1 (en) Wireless Service Access method and apparatus
CN106330742B (zh) 一种流量控制的方法及网络控制器
CN103281257B (zh) 一种协议报文处理方法和设备
WO2014101060A1 (zh) 一种数据包传输的方法及装置
WO2021147354A1 (zh) 服务等级配置方法以及装置
US9379992B2 (en) Method and an apparatus for virtualization of a quality-of-service
JP2020072336A (ja) パケット転送装置、方法、及びプログラム
US20150281109A1 (en) System for en-queuing and de-queuing data packets in communication network
WO2019165855A1 (zh) 一种报文传输的方法及装置
CN114124856A (zh) 一种流量控制的方法、装置及存储介质
CN114531399A (zh) 一种内存阻塞平衡方法、装置、电子设备和存储介质

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: 18866966

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2018866966

Country of ref document: EP

Effective date: 20200423