WO2021143913A1 - Congestion control method, apparatus and system, and storage medium - Google Patents

Congestion control method, apparatus and system, and storage medium Download PDF

Info

Publication number
WO2021143913A1
WO2021143913A1 PCT/CN2021/072574 CN2021072574W WO2021143913A1 WO 2021143913 A1 WO2021143913 A1 WO 2021143913A1 CN 2021072574 W CN2021072574 W CN 2021072574W WO 2021143913 A1 WO2021143913 A1 WO 2021143913A1
Authority
WO
WIPO (PCT)
Prior art keywords
end device
queue
priority
receiving end
queues
Prior art date
Application number
PCT/CN2021/072574
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 WO2021143913A1 publication Critical patent/WO2021143913A1/en

Links

Images

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
    • 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/18End to end
    • 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
    • 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/2425Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
    • H04L47/2433Allocation of priorities to traffic types
    • 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/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions

Definitions

  • This application relates to the field of network technology, and in particular to a congestion control method, device and system, and storage medium.
  • a communication network usually includes multiple network devices, and the network devices implement communication between different workstations by forwarding messages from workstations (for example, a host or a server, etc.).
  • a network device usually has multiple egress ports, each egress port has multiple queues with different priorities, and one queue of each egress port is used to buffer a message of a priority that needs to be forwarded via the egress port.
  • the network device For each received message, the network device usually buffers the message into a queue matching the message, and sends the messages in the queue at a certain rate.
  • the embodiments of the present application provide a congestion control method, device, system, and storage medium.
  • the technical solutions are as follows:
  • a congestion control method includes: monitoring multiple queues of a receiving end device, each queue of the receiving end device corresponds to one or more queues in the sending end device; when the receiving end device When the first queue of the multiple queues of the device meets the preset opening index, the sending end device is notified to enable congestion control for the target queue corresponding to the first queue in the sending end device; wherein the preset opening index includes: The occupancy of the buffer space of the receiving end device by the multiple queues of the receiving end device reaches or exceeds the opening back pressure waterline value of the first queue.
  • the receiving end device notifies the sending end device to enable congestion control for the target queue corresponding to the first queue in the sending end device when the first queue meets the preset opening index.
  • the congestion control solution has It helps to solve the congestion problem of the current communication network, and helps to improve the resource utilization rate and transmission quality of the communication network.
  • the congestion control scheme has high flexibility and can ensure the throughput of the communication network.
  • the preset opening indicator further includes one or more of the following:
  • the first queue belongs to the N longest queues of the first priority among the multiple queues of the receiving end device, the priority of the first queue is the first priority, and when the first priority is the multiple queues When the lowest priority among the priorities of, N is an integer greater than 0, and when the first priority is the non-lowest priority among the priorities of the multiple queues, N is an integer greater than or equal to 0;
  • the length of the first queue reaches or exceeds the preset length threshold.
  • the preset length threshold may be the average value of the lengths of all queues of the receiving end device, and the N longest queues of the first priority are the topN longest queues among all the queues of the first priority.
  • the lengths of the N longest queues may be equal or unequal.
  • the meaning of the N longest queues of the first priority may be: if all the queues of the first priority are sorted according to the order of length from largest to smallest , The N longest queues of the first priority can be the first N queues among all the queues of the first priority; if all the queues of the first priority are sorted according to the order of length from smallest to largest , The N longest queues of the first priority may be the last N queues among all the queues of the first priority.
  • the preset opening index includes: the buffer space occupied by the multiple queues of the receiving end device on the receiving end device reaches or exceeds the open backpressure waterline value of the first queue, the first queue
  • the longest queue can be guaranteed to be back pressured, thereby ensuring Reliability of congestion control.
  • back pressure control it is possible to determine whether to perform back pressure control according to the priority level and determine the number of queues that need back pressure according to the priority level. For the queue with the highest priority, back pressure may not be performed. Back pressure multiple queues with different priorities, the number of queues with multiple priorities that need back pressure can be reduced from low to high according to the multiple priorities, that is, the lower the priority, the lower the priority. The greater the number of queues, the higher the priority and the higher the number of back-pressure queues.
  • the receiving end device has 8 priority queues of pri_1 to pri_8 (that is, pri_1, pri_2, pri_3, pri_4, pri_5, pri_6, pri_7, and pri_8), and the 8 priorities of pri_1 to pri_8 are sequentially increased.
  • the back pressure waterline value may not be set, so that the pri_8 queue may not be back pressured (of course, the back pressure waterline value can also be set for the queue with priority pri_8 for back pressure) .
  • the number of queues with priority pri_2 can be greater than the queue with priority pri_3 quantity.
  • the number of queues with priority pri_2 may be g
  • the number of queues with priority pri_3 may be 0.8 ⁇ g.
  • the lowest priority queue includes 4 longest queues
  • the medium priority queue includes 4 longest queues
  • the highest priority queue may include 2 or 0 longest queues. Long queue.
  • congestion control that is, back pressure
  • back pressure can be turned on first for the longest queue with a low priority to ensure the delay and throughput of the queue with a higher priority.
  • notifying the sending end device to enable congestion control for the target queue corresponding to the first queue in the sending end device includes: sending an opening control message to the sending end device, the opening control message instructing the sending end device to open the target queue Congestion control.
  • the opening control message may carry the identifier of the target queue and an enable flag bit, the identifier of the target queue indicates the target queue, and the enable flag bit instructs the sending end device to enable congestion control, so that the opening control message instructs the sending end device Turn on congestion control for the target queue.
  • the receiving end device may send the activation control message to the sending end device in a broadcast form.
  • the method further includes: when the first queue meets a preset closing index, notifying the sending end device The congestion control is turned off for the target queue of the sending end device; wherein the preset closing index includes: the multiple queues of the receiving end device occupy less than the closing back pressure of the first queue for the buffer space of the receiving end device Watermark value.
  • the receiving end device notifies the sending end device to close the congestion control for the target queue corresponding to the first queue in the sending end device when the first queue meets the preset closing index, which can improve the congestion control performance. Flexibility to ensure the throughput of the communication network.
  • the preset closing indicator further includes one or more of the following:
  • the multiple queues of the receiving end device occupy the buffer space of the receiving end device less than the closing backpressure waterline value of the first queue for a duration that reaches or exceeds a preset duration threshold;
  • the first queue does not belong to the N longest queues of the first priority among the multiple queues of the receiving end device, the priority of the first queue is the first priority, and when the first priority is the multiple When the priority of the queue is the lowest priority, N is an integer greater than 0, and when the first priority is the non-lowest priority among the priorities of the multiple queues, N is an integer greater than or equal to 0;
  • the length of the first queue is less than the preset length threshold.
  • the method further includes: allocating a sending credit value to the target queue; Sending a message with a credit value, so that the sending end device sends the message in the target queue to the receiving end device according to the sending credit value.
  • the sending end device allocates sending credit values for the target queue according to the receiving end device, and sending the packets in the target queue, which can actively control congestion in the sending end device.
  • the method further includes: adjusting the distribution coefficient of the sending credit value of the target queue according to the occupancy of the multiple queues of the receiving-end device on the buffer space of the receiving-end device, and the distribution coefficient is different from the distribution coefficient of the receiving-end device.
  • the multiple queues are negatively correlated with the occupancy of the buffer space of the receiving device.
  • the receiving end device adjusts the distribution coefficient of the sending credit value of the target queue according to the amount of the buffer space occupied by the receiving end device by the multiple queues of the receiving end device.
  • the target queue can be assigned a sending credit value based on the adjusted distribution coefficient.
  • the target queue is assigned a sending credit value based on the distribution coefficient of the sending credit value of the target queue at the current moment. , Can improve the flexibility of sending credit allocation, so that the sending end device can flexibly control congestion according to the occupied amount of the buffer space of the receiving end device.
  • each queue of the multiple queues of the receiving end device has a back pressure waterline value, and the back pressure waterline values of queues of different priorities are different, and the method further includes: when multiple queues of the receiving end device When the occupancy of the buffer space of the receiving end device by the queue reaches or exceeds the minimum watermark threshold of the receiving end device, the back pressure waterline value of the queue of each priority of the receiving end device is adjusted.
  • the receiving end device adjusts the backpressure waterline value of each priority queue, so that the adjusted backpressure waterline value can be used to determine whether the receiving end device is congested, that is, Each time the receiving end device judges whether it is congested, it uses the current back pressure waterline value to make the judgment, which helps to improve the flexibility of congestion control.
  • the backpressure waterline value includes an open backpressure waterline value and a backpressure waterline value off
  • the adjustment of the backpressure waterline value of each priority queue of the receiving end device includes: for any priority Queue: According to the maximum watermark threshold of the receiving end device, the minimum watermark threshold of the receiving end device, the occupancy of the buffer space of the receiving end device by all priority queues lower than any priority, and the receiving end device Adjust the open back pressure waterline value of the queue of any priority for the occupancy of all queues of the end device to the buffer space of the receiving end device; adjust according to the open back pressure waterline value of the queue of any priority The closed backpressure waterline value of the queue of any priority.
  • the occupancy of the buffer space of the receiving end device by the queue of any priority is negatively correlated with the occupancy of the buffer space of the receiving end device by all priority queues lower than the any priority.
  • the opening backpressure waterline value of a priority queue is negatively related to the amount of buffer space occupied by the receiving end device by the queue of any priority; the opening backpressure waterline value of the queue of any priority is greater than or It is equal to the open back pressure waterline value of all priority queues lower than any one of the priority levels. That is, if queues of all priority levels lower than any priority occupies a large amount of buffer space of the receiving end device, the queue of any priority level occupies a relatively large amount of buffer space of the receiving end device.
  • the number of longest queues with high priority is less than the number of longest queues with low priority. In other embodiments, the number of longest queues with high priority may be zero.
  • the technical solution provided by the embodiment of the present application is due to the occupancy of the buffer space of the receiving end device by a queue of any priority and the occupancy of the buffer space of the receiving end device by all priority queues lower than the any priority.
  • the opening back pressure waterline value of the queue of any priority is negatively correlated with the amount of buffer space occupied by the receiving end device by the queue of any priority.
  • the opening of the queue of any priority is negatively correlated.
  • the pressure waterline value is greater than or equal to the open backpressure waterline value of all priority queues lower than the any priority. Therefore, the open backpressure waterline value of the queue of any priority is the same as the one that is lower than any one of the priority queues.
  • All priority queues of priority are positively correlated to the amount of buffer space occupied by the receiving device, and the open backpressure waterline value of any priority queue is related to all priority queues lower than any priority.
  • the open back pressure waterline value of is positively correlated. In this way, it can prevent the high priority queue from being controlled too early to affect the performance of the high priority queue, and it can also prevent the high priority queue from being controlled too late.
  • the minimum watermark threshold of the receiving end device the occupancy of the buffer space of the receiving end device by all priority queues lower than any one of the priorities
  • Adjusting the open back pressure waterline value of the queue of any priority for the occupancy of all queues of the receiving end device to the buffer space of the receiving end device including: according to the maximum waterline threshold and the minimum waterline threshold, The occupancy of the buffer space of the receiving-end device by all queues with a priority lower than any priority, and the occupancy of the buffer space of the receiving-end device by all queues of the receiving-end device, using the watermark formula Calculate the opening backpressure waterline value of the queue of any priority; adjust the opening backpressure waterline value of the queue of any priority according to the calculation result; where the waterline value formula is:
  • Vo_pri_k represents the open back pressure waterline value of the queue with priority pri_k
  • B_pri_i represents the amount of buffer space occupied by all queues of the priority pri_i on the receiving end device
  • B_total represents the buffer of all queues of the receiving end device on the receiving end device
  • V_max represents the maximum watermark threshold
  • V_min represents the minimum watermark threshold
  • the backpressure waterline value includes an open backpressure waterline value and a backpressure waterline value off
  • the adjustment of the backpressure waterline value of each priority queue of the receiving end device includes: for any priority Queue: According to the occupancy of the buffer space of the receiving end device by all queues of any priority and the size of the buffer space, adjust the opening back pressure waterline value of the queue of any priority.
  • the open backpressure waterline value of the queue of any priority is negatively related to the amount of buffer space occupied by all queues of any priority level on the receiving end device; adjust according to the open backpressure waterline value of the queue of any priority
  • the backpressure waterline value includes an open backpressure waterline value and a backpressure waterline value off
  • the adjustment of the backpressure waterline value of each priority queue of the receiving end device includes: for any priority Queue: According to the average delay of the M longest queues of any priority and the average delay of all the longest queues of all priorities of the receiving end device, adjust the opening backpressure of the queue of any priority Watermark value, M is an integer greater than 0; according to the open backpressure waterline value of the queue of any priority, the closed backpressure waterline value of the queue of any priority is adjusted.
  • the method further includes: the maximum occupancy of the buffer space of the receiving end device by all queues of the receiving end device within the target duration is greater than the minimum watermark threshold and less than the maximum watermark threshold and the first threshold value Or, when the maximum occupancy is greater than the difference between the maximum watermark threshold and the second threshold, the minimum watermark threshold is adjusted.
  • a congestion control method includes: enabling congestion control on a target queue of a sending end device according to a notification from a receiving end device, each queue of the receiving end device and one of the sending end device or Corresponding to multiple queues, and the target queue corresponds to the first queue of the receiving end device; wherein the receiving end device notifies the sending end device to enable congestion control for the target queue when the first queue meets a preset opening index, and
  • the preset opening index includes: the amount of the buffer space of the receiving end device occupied by the multiple queues of the receiving end device reaches or exceeds the open back pressure waterline value of the first queue.
  • the receiving end device notifies the sending end device to enable congestion control for the target queue corresponding to the first queue in the sending end device when the first queue meets the preset opening index.
  • the congestion control solution has It helps to solve the congestion problem of the current communication network, and helps to improve the resource utilization rate and transmission quality of the communication network.
  • the congestion control scheme has high flexibility and can ensure the throughput of the communication network.
  • the preset opening indicator further includes one or more of the following:
  • the first queue belongs to the N longest queues of the first priority among the multiple queues of the receiving end device, the priority of the first queue is the first priority, and when the first priority is the multiple queues When the lowest priority among the priorities of, N is an integer greater than 0, and when the first priority is the non-lowest priority among the priorities of the multiple queues, N is an integer greater than or equal to 0;
  • the length of the first queue reaches or exceeds the preset length threshold.
  • the preset opening index includes: the buffer space occupied by the multiple queues of the receiving end device on the receiving end device reaches or exceeds the open backpressure waterline value of the first queue, the first queue
  • the longest queue can be guaranteed to be back pressured, thereby ensuring Reliability of congestion control.
  • enabling congestion control on the target queue of the sending end device includes: receiving an open control message sent by the receiving end device, the open control message instructing the sending end device to open congestion control on the target queue;
  • the enable control message enables congestion control on the target queue.
  • the opening control message may carry the identifier of the target queue and an enable flag bit, the identifier of the target queue indicates the target queue, and the enable flag bit instructs the sending end device to enable congestion control, so that the opening control message instructs the sending end device Turn on congestion control for the target queue.
  • the sending end device can parse the enable control message to obtain the enable flag and the target queue identifier, determine the need to enable congestion control according to the enable flag bit, determine the target queue according to the target queue identifier, and then determine the target queue according to the enable control message.
  • the queue turns on congestion control.
  • the method further includes: turning off congestion control on the target queue of the sending end device according to the notification of the receiving end device; wherein, the receiving end device When the first queue satisfies the preset closing index, the sending end device is notified to close the congestion control of the target queue.
  • the preset closing index includes: the multiple queues of the receiving end device occupy less than the first queue buffer space of the receiving end device. The closing back pressure waterline value of the queue.
  • the receiving end device notifies the sending end device to close the congestion control for the target queue corresponding to the first queue in the sending end device when the first queue meets the preset closing index, which can improve the congestion control performance. Flexibility to ensure the throughput of the communication network.
  • the preset closing indicator further includes one or more of the following:
  • the first queue does not belong to the N longest queues of the first priority among the multiple queues of the receiving end device, the priority of the first queue is the first priority, and when the first priority is the multiple When the priority of the queue is the lowest priority, N is an integer greater than 0, and when the first priority is the non-lowest priority among the priorities of the multiple queues, N is an integer greater than or equal to 0;
  • the length of the first queue is less than the preset length threshold.
  • the method further includes: receiving a message containing a sending credit value sent by the receiving end device; and sending a message to the receiving end device according to the sending credit value.
  • the end device sends the packets in the target queue.
  • the sending end device sends the packets in the target queue according to the sending credit value allocated to the target queue by the receiving end device, and the congestion can be actively controlled in the sending end device.
  • a congestion control device in a third aspect, includes one or more modules, and the one or more modules are used to implement the congestion control provided in the first aspect or any optional manner of the first aspect. method.
  • a congestion control device in a fourth aspect, includes one or more modules, and the one or more modules are used to implement the congestion control provided by the second aspect or any optional manner of the second aspect. method.
  • a congestion control device in a fifth aspect, includes a processor and a memory, the memory storing a program, and the processor is configured to execute the program stored in the memory to implement the above-mentioned first aspect or the first aspect.
  • Congestion control method provided by any optional method.
  • a congestion control device in a sixth aspect, includes a processor and a memory.
  • the memory is stored with a program.
  • the processor is configured to execute the program stored in the memory to implement the above-mentioned second aspect or the second aspect.
  • Congestion control method provided by any optional method.
  • a computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, it implements the above-mentioned first aspect or any of the optional methods of the first aspect. Or the congestion control method provided in the foregoing second aspect or any optional manner of the second aspect.
  • a computer program product containing instructions when the computer program product runs on a computer, it causes the computer to execute the congestion control method provided in the first aspect or any one of the optional methods of the first aspect, or , To implement the congestion control method provided by the foregoing second aspect or any optional manner of the second aspect.
  • a chip in a ninth aspect, includes a programmable logic circuit and/or program instructions. When the chip is running, it is used to implement the congestion control method provided in the first aspect or any of the optional methods of the first aspect. , Or, implement the congestion control method provided in the second aspect or any optional manner of the second aspect.
  • a congestion control system including: a sending end device and a receiving end device,
  • the receiving end device is used to monitor multiple queues of the receiving end device, and each queue of the receiving end device corresponds to one or more queues in the sending end device; when the multiple queues of the receiving end device are When the first queue satisfies the preset opening index, the sending end device is notified to enable congestion control for the target queue corresponding to the first queue in the sending end device; wherein, the preset opening index includes: multiple numbers of the receiving end device The occupation of the buffer space of the receiving end device by the queue reaches or exceeds the opening back pressure waterline value of the first queue;
  • the sending end device is configured to enable congestion control for the target queue corresponding to the first queue in the sending end device according to the notification of the receiving end device.
  • the sending end device may include the congestion control apparatus provided in the foregoing fourth aspect
  • the receiving end device may include the congestion control apparatus provided in the foregoing third aspect
  • the sending end device may include the congestion control apparatus provided in the sixth aspect
  • the receiving end device may include the congestion control apparatus provided in the fifth aspect.
  • the receiving end device monitors multiple queues of the receiving end device, and when the first queue of the multiple queues of the receiving end device meets the preset opening index, the sending end device is notified to the sending end
  • the target queue corresponding to the first queue in the device turns on congestion control, and the sending end device turns on congestion control on the target queue according to the notification of the receiving end device.
  • the congestion control solution helps to solve the current congestion problem of the communication network, and helps to improve the resource utilization rate and transmission quality of the communication network.
  • the congestion control solution combines active congestion control and passive congestion control. After using passive congestion control to sense congestion, through active control of congestion, congestion control can be carried out from the entire communication network, and end-to-end congestion can be realized for specific priority congestion.
  • Control in the process of congestion control, you can flexibly adjust parameters such as the back pressure waterline and the distribution coefficient of the sending credit value, and can make full use of the buffer space of the receiving end device to avoid back pressure of the instantaneous congested message on the sending end device , To ensure the throughput of the sending end device, thereby ensuring the throughput of the workstation connected to the sending end device, and improving the flexibility of congestion control.
  • this congestion control scheme before the sender device starts congestion control, there is no need to consider the backpressure waterline value and the sending credit value, so that the traffic of the sender device can be pushed as much as possible, and all queues are kept as much as possible before the congestion control is enabled Huff.
  • FIG. 1 is a schematic diagram of an implementation environment involved in an embodiment of the present application
  • FIG. 2 is a schematic diagram of a processing flow of a sending end device in a congestion control solution provided by an embodiment of the present application
  • FIG. 3 is a schematic diagram of a processing flow of a receiving end device in a congestion control solution provided by an embodiment of the present application
  • FIG. 4 is a schematic diagram of a congestion control solution provided by an embodiment of the present application.
  • Fig. 5 is a method flowchart of a congestion control method provided by an embodiment of the present application.
  • FIG. 6 is a schematic diagram of congestion control provided by an embodiment of the present application.
  • FIG. 7 is a schematic diagram of the amount of buffer space occupied by queues with different priorities according to an embodiment of the present application.
  • FIG. 8 is a flowchart of a method for adjusting the back pressure waterline value of a queue of any priority level according to an embodiment of the present application
  • FIG. 9 is a flowchart of another method for adjusting the back pressure waterline value of a queue of any priority level provided by an embodiment of the present application.
  • FIG. 10 is a flowchart of yet another method for adjusting the back pressure waterline value of a queue of any priority according to an embodiment of the present application
  • FIG. 11 is a schematic diagram of another congestion control provided by an embodiment of the present application.
  • FIG. 12 is a schematic diagram of the logical structure of a congestion control device provided by an embodiment of the present application.
  • FIG. 13 is a schematic diagram of the logical structure of another congestion control apparatus provided by an embodiment of the present application.
  • FIG. 14 is a schematic diagram of the logical structure of yet another congestion control apparatus provided by an embodiment of the present application.
  • 15 is a schematic diagram of the logical structure of yet another congestion control device provided by an embodiment of the present application.
  • 16 is a schematic diagram of the hardware structure of a congestion control device provided by an embodiment of the present application.
  • Fig. 17 is a schematic diagram of a congestion control system provided by an embodiment of the present application.
  • the implementation environment of the congestion control solution provided in the embodiments of the present application may include a communication network and multiple workstations accessing the communication network.
  • the communication network may include multiple network devices, the workstations access the communication network through the network devices, and the network devices implement communication between different workstations by forwarding messages of the workstations.
  • the workstation can be various types of devices such as a host, a terminal, a server, or a virtual machine.
  • the network device can be a switch, router, virtual switch or virtual router that is used to forward messages in a communication network, and the network devices in the same communication network can be the same network device or different Internet equipment.
  • all network devices in the same communication network are routers, or some of the network devices are routers, and the other part of the network devices are switches.
  • the communication network may be a data center network (DCN), a metropolitan area network, a wide area network, or a campus network, etc.
  • DCN data center network
  • the embodiment of the present application does not limit the type of the communication network.
  • the communication network may be a deep cross network (DCN).
  • FIG. 1 shows a schematic diagram of an implementation environment involved in an embodiment of the present application.
  • the implementation environment includes a communication network 01 and multiple workstations 021 to 028 (that is, Is workstation 021, workstation 022, workstation 023, workstation 024, workstation 025, workstation 026, workstation 027, and workstation 028)
  • the communication network 01 includes network devices 01a1 to 01a2 (that is, network devices 01a1 and network devices 01a2) and network Devices 01b1 to 01b4 (that is, network device 01b1, network device 01b2, network device 01b3, and network device 01b4)
  • the communication network 01 may include an aggregation layer and an access layer, and the aggregation layer is the high-speed switching backbone of the communication network 01
  • the access layer is used to connect workstations to the communication network 01.
  • network devices 01a1 to 01a2 are located at the convergence layer
  • network devices 01b1 to 01b4 are located at the access layer
  • workstations 021 to 022 are accessed through network device 01b1
  • the communication network 01, workstations 023-024 access the communication network 01 through the network device 01b2
  • the workstations 025-026 access the communication network 01 through the network device 01b3
  • the workstations 027-028 access the communication network 01 through the network device 01b4.
  • the communication network 01 shown in FIG. 1 may be a leaf-spine topology network
  • the network devices 01a1 to 01a2 at the convergence layer may be spine switches
  • network devices at the access layer 01b1 to 01b4 can be leaf switches
  • each spine switch is connected to all leaf switches
  • each leaf switch is connected to all spine switches (that is, the spine switch and the leaf switch are fully interconnected).
  • the implementation environment shown in Figure 1 is only used as an example, and is not used to limit the technical solutions of the embodiments of the present application.
  • the implementation environment may also include other devices.
  • the number of network devices and the number of workstations can be configured as required.
  • the number and the connection relationship between the network devices, the connection relationship between the network devices and the workstation, and the topology of the communication network can be other topologies.
  • the spine switch and the leaf switch may not be fully interconnected.
  • the network devices in the convergence layer can be interconnected.
  • the communication network may also include a core layer located above the convergence layer.
  • the illustrated communication network 01 is a level 2 Clos network, and the communication network may also be a level 3 Clos network, which will not be repeated in this embodiment of the present application.
  • each network device has one or more outgoing ports, each outgoing port has one or more queues with different priorities, and one queue of each outgoing port is used for buffering needs to be sent via the outgoing port.
  • the network device usually buffers the packet in a queue that matches the packet, and sends the packets in the queue at a certain rate.
  • the number of queues for each egress port is equal to the number of priorities. For example, taking the network device 01b1 in FIG. 1 as an example, the network device 01b1 may have egress port 1 to egress port 8 (that is, egress port 1, egress port 2, egress port 3, egress port 4, and egress port 5.
  • outgoing port 6 outgoing port 7 and outgoing port 8
  • these 8 outgoing ports, outgoing port 1 can have 8 queues with 8 priorities from pri_1 to pri_8.
  • the 8 queues are queues 1 to 8 (that is, Queue 1, Queue 2, Queue 3, Queue 4, Queue 5, Queue 6, Queue 7 and Queue 8), the priority of the queues 1 to 8 are pri_1, pri_2, pri_3, pri_4, pri_5, pri_6, pri_7 and pri_8, among the 8 queues, queue 1 is used to buffer the packets with priority pri_1 that need to be sent via the egress port 1.
  • the network device 01b1 responds to the received packets with priority pri_1 that need to be sent via the egress port 1.
  • Text buffer the message 1 to the queue 1.
  • Queue 2 is used to buffer the messages with priority pri_2 that need to be sent via the egress port 1, and the network device 01b1 needs to send the received messages via the egress port 1.
  • the message 2 with priority pri_2 is buffered to the queue 2.
  • Queue 3 is used to buffer the message with priority pri_3 that needs to be sent through the egress port 1.
  • the network device 01b1 needs to pass the received message through
  • the message 3 with the priority of pri_3 sent by the egress port 1 is buffered in the queue 3, and so on.
  • each network device may be a sending end device or a receiving end device.
  • the network device 01b1 when the network device 01b1 sends a message to the network device 01b4, the network device 01b1 is the sender device, and the network device 01b4 is the receiver device; for another example, when the network device 01b4 sends a message to the network device 01b1
  • the network device 01b4 when the network device 01b4 is the sender device, and the network device 01b1 is the receiver device; for example, when the network device 01b1 sends a message to the network device 01b4, and the network device 01b4 sends a message to the network device 01b2, the network device 01b1 It is the sending end device, and the network device 01b2 is the receiving end device, and the network device 01b4 is both the sending end device and the receiving end device; for example, when the network device 01b1 and the network device 01b2 both send a message to the network device 01b4, the network device 01b1 Both
  • each queue of the sending end device can be mapped to an outgoing port of the receiving end device, each queue of the sending end device can correspond to the queue of the receiving end device, and each queue of the sending end device
  • the sending end device is the network device 01b1
  • the receiving end device is the network device 01b4
  • the queue 1 of the network device 01b1 can be mapped to an out port 1 of the network device 01b4
  • the queue 1 of the network device 01b1 is the same as that of the network device 01b4.
  • Queue 1 corresponds.
  • the message 1 in the queue 1 of the network device 01b1 arrives at the network device 01b4, it is first buffered by the network device 01b4 in the queue 1 of the network device 01b4, and the network device 01b4 passes through the outgoing port of the network device 01b4 1 Send the message at a certain rate.
  • network congestion is the main problem of current communication networks.
  • Network congestion not only requires bandwidth expansion of the communication network, but more importantly, reasonable traffic scheduling is required to control network congestion. Therefore, there is an urgent need for a congestion control scheme to control the congestion of the communication network.
  • the network congestion control scheme provided by the embodiment of the present application can combine the active congestion control scheme and the passive congestion control scheme to control the congestion of the communication network, which not only helps the congestion problem of the communication network, but also has better flexibility.
  • the active congestion control scheme is an end-to-end probe estimation or request response method to estimate the degree of congestion of the link to estimate the corresponding bandwidth or distribute the credit value (credit) to ensure that the communication network is not congested.
  • Traffic transmission schemes for example, remote procedure call (RCP) scheme, high precision congestion control (HPCC) scheme, and push and pull (PPOP) scheme in Venus algorithm are all active congestion control Program.
  • the passive congestion control scheme is a scheme that passively senses and controls network congestion at the receiving end device.
  • the explicit congestion notification (ECN) scheme, the policy feature card scheme, and the discard backpressure scheme Long queue (drop and backpressure the longest queue, DBLQ) solutions are all passive congestion control solutions.
  • the following uses the PPOP solution and the DBLQ solution as examples to introduce the active congestion control solution and the passive congestion control solution provided by the embodiments of the present application.
  • the queue of the sending device can be a virtual output queue (VOQ), for example, it can be a dynamic virtual output queue (DVOQ), and the queue of the receiving device can be a request flow Queue (request flow queue, RFQ).
  • VOQ virtual output queue
  • DVOQ dynamic virtual output queue
  • RFQ request flow queue
  • Figures 2 and 3 are schematic diagrams of active congestion control solutions provided by embodiments of the present application, in which Figure 2 is a schematic diagram of the processing flow of the sending end device, and Figure 3 is a schematic diagram of the processing flow of the receiving end device. 2 and 3 take DVOQ as an example for the queue of the sending end device.
  • the sending end device buffers the message to a DVOQ matching the message, and updates the queue information of the DVOQ stored in the DVOQ module.
  • the sender device schedules DVOQs of different priorities according to strict priority (strict priority, SP), and schedules DVOQs of the same priority according to round-robin (round-robin, RR).
  • the sending end device sends a request packet (request packet, REQ) carrying the queue information of the DVOQ to the receiving end device to request the receiving end device to allocate a sending credit value for the DVOQ.
  • the sender device can query the queue mapping table (such as DVOQ mapping table) to determine the DVOQ that matches the message. If the DVOQ that matches the message cannot be determined according to the queue mapping table, the sender device can apply for DVOQ resources and create a new DVOQ. , The newly created DVOQ is determined as the DVOQ matching the message. If the DVOQ resource cannot be applied for, the sending end device determines the highest priority DVOQ of the sending end device as the DVOQ matching the message.
  • the queue information of the DVOQ may include one or more of the priority of the DVOQ, the length of the DVOQ, and the identifier of the DVOQ.
  • the length of the DVOQ may be a virtual queue length (VQL).
  • the sending credit value can be the number of packets in the target queue that the receiving device can schedule this time, or the number of packets in the target queue that the sending device can send this time. In some implementation scenarios, the sending credit value is again It is called queue credit (QC).
  • the SP1 scheduler preferentially schedules the multiple DVOQs with the highest priority, and assigns the bandwidth of the outgoing port of the sending end device to the highest priority DVOQ first.
  • RR calls the multiple DVOQs with the highest priority; the SP1 scheduler allocates the remaining bandwidth after deducting the bandwidth occupied by the highest priority DVOQ to the SP2 scheduler, and the SP2 scheduler prioritizes the scheduling of multiple DVOQs with high priority.
  • the remaining bandwidth is preferentially allocated to the high-priority DVOQ, and multiple DVOQs of the high-priority are called according to the RR; the SP2 scheduler allocates the remaining bandwidth after deducting the bandwidth occupied by the high-priority DVOQ from the remaining bandwidth to the low-priority DVOQ. Multiple DVOQs of priority are used, and multiple DVOQs of low priority are called according to RR.
  • the receiving end device buffers the REQ to an RFQ matching the REQ, and updates the queue information of the RFQ stored in the RFQ module. For multiple RFQs of the receiving end device, the receiving end device schedules RFQs of different priorities according to SP, and RFQs of the same priority according to RR. For any REQ in the scheduled RFQ, the receiving end device allocates a sending credit value for the DVOQ according to the DVOQ queue information carried by the REQ, and sends a reply packet (acknowledge packet, which carries the sending credit value) to the sending end device. ACK), so that the sending end device sends the message in the DVOQ according to the sending credit value.
  • ACK acknowledge packet
  • the SP1 scheduler preferentially schedules the multiple RFQs with the highest priority, and assigns the bandwidth of the output port of the receiving end device to the highest priority RFQ first, and Call the multiple RFQs with the highest priority according to the RR; the SP1 scheduler allocates the remaining bandwidth after deducting the bandwidth occupied by the RFQ with the highest priority to the SP2 scheduler, and the SP2 scheduler preferentially schedules multiple RFQs with high priority.
  • the remaining bandwidth is allocated to the high-priority RFQ first, and multiple high-priority RFQs are called according to the RR; the SP2 scheduler allocates the remaining bandwidth after deducting the bandwidth occupied by the high-priority RFQ from the remaining bandwidth It is used for multiple RFQs with low priority, and calls the multiple RFQs with low priority according to RR.
  • each network device is configured with a certain amount of initial credit value.
  • the sending end device After the communication network is started, the sending end device first pushes to the receiving end device according to the initial credit value of the sending end device. After a certain flow rate, REQ is sent to the receiving end device according to the queue information of the DVOQ to request the receiving end device to allocate a sending credit value for the receiving end device.
  • the active congestion control scheme is an end-to-end congestion control scheme.
  • the active congestion control scheme tries to avoid congestion and can control traffic bursts from the sending end device to the receiving end device.
  • the sending end The device sends REQ to the receiving end device, and the receiving end device replies to the sending end device with an ACK carrying the sending credit value according to the scheduling capability, so that the sending end device performs controlled packet sending according to the sending credit value, thereby realizing congestion control.
  • FIG. 4 shows a schematic diagram of a passive congestion control solution provided by an embodiment of the present application.
  • the passive congestion control scheme for each message (such as REQ) received by the receiving end device, the message is buffered in the receiving end device’s queue that matches the message, according to all queues of the receiving end device The occupancy of the buffer space of the receiving end device determines whether the receiving end device is congested.
  • back pressure is performed on the longest queue among the priority queues in the order of priority from low to high. (That is, the messages in the longest queue in the queues of each priority are discarded in the order of priority from low to high), so as to perform passive congestion control on the communication network.
  • the receiving device preferentially discards the packets in the longest queue among the multiple queues with the lowest priority. If the packets in the longest queue with the lowest priority are discarded, the congestion of the receiving device is not effectively controlled. Discard packets in the longest queue among multiple queues with the second lowest priority, and so on.
  • the buffer space of the receiving end device may be a buffer. According to the occupied amount of the buffer space, the buffer space may include a safe area and a prohibited area, and the receiving end device may be based on the amount of the buffer space. The occupied area is used to determine whether the receiving end device is congested.
  • the receiving end device determines that the receiving end device is not congested, and if the occupied amount of the buffer space is in the forbidden zone , The receiving end device determines that the receiving end device is congested.
  • the safe area may be an area where the occupied amount of the cache space is less than or equal to 90% of the size of the cache space, and the prohibited area may be an area where the occupied amount of the cache space is greater than 90% of the size of the cache space.
  • the passive congestion control scheme allows the receiving device to perceive network congestion.
  • the amount of buffer space occupied is high (that is, the network congestion is sensed)
  • the highest priority in the queue of each priority is discarded in the order of priority from low to high.
  • the messages in the long queue can maximize the use of buffer space resources to reduce the waiting delay of traffic, and the utilization of buffer space is high, which can reduce the packet loss rate caused by congestion and ensure the throughput of the communication network.
  • the above is an introduction to the active congestion control scheme and the passive congestion control scheme provided by the embodiments of this application.
  • the congestion control is performed on the combination of active congestion control and passive congestion control schemes provided by the embodiments of this application.
  • the program is introduced.
  • the embodiments of the present application combine the active congestion control scheme and the passive congestion control scheme to perform congestion control on the communication network, which can not only solve the congestion problem of the communication network, but also has better flexibility.
  • FIG. 5 shows a method flow chart of a congestion control method provided by an embodiment of the present application.
  • the congestion control method may be applied to a communication network.
  • the communication network may include multiple network devices.
  • the multiple network devices including the sending end device and the receiving end device are taken as an example for description.
  • the method may include the following steps:
  • Step 501 The receiving end device sets a back pressure waterline value for the queue of the receiving end device, and the back pressure waterline value includes the opening back pressure waterline value and the closing back pressure waterline value.
  • each queue of the receiving end device corresponds to one or more queues in the sending end device.
  • each network device in the communication network may have one or more outgoing ports, and each outgoing port may have one or more priority queues. If each outgoing port has multiple priority queues, For queues, the multiple priorities may be different, and each queue of each network device corresponds to one or more queues of one or more other network devices in the communication network.
  • Each network device can set a back pressure waterline value for the queue in the network device, so as to be used for back pressure control when the network device is congested.
  • each queue can have a priority, and the network device can set the back pressure waterline value for each priority queue of the network device, or the network device is not the highest priority of the network device
  • the backpressure waterline value is set for the queue of, and the backpressure waterline value is set for queues of other priority levels except the highest priority, which is not limited in this embodiment of the application.
  • the backpressure waterline values of queues of different priority levels can be different, the backpressure waterline value of all queues of the same priority level can be the same, and the backpressure waterline value of each priority queue can be called Is the back pressure waterline value corresponding to this priority.
  • the back pressure waterline value may include the open back pressure waterline value and the off back pressure waterline value.
  • the open back pressure waterline value of each priority queue can be referred to as the open back pressure waterline corresponding to the priority.
  • the closing backpressure waterline value of each priority queue can be called the closing backpressure waterline value corresponding to the priority.
  • each network device all queues with the same priority have the same backpressure waterline value, queues with different priorities have different backpressure waterline values, and queues with different priority levels have different backpressure waterline values.
  • the different priorities increase from low to high, and the closing backpressure waterline values of queues of different priorities increase from low to high according to the different priorities. That is, the lower the priority of the queue, the smaller the open back pressure waterline value and the lower the back pressure waterline value off, and the higher the priority queue, the higher the open back pressure waterline value and the off back pressure waterline value. Big.
  • the receiving end device in the embodiment of the present application may be any network device in the communication network. Therefore, the receiving end device has one or more outgoing ports, and each outgoing port can have one or more priority queues.
  • the receiving end device may set a back pressure waterline value for the queue of the receiving end device, and the back pressure waterline value includes an open back pressure waterline value and a closed back pressure waterline value. Wherein, each queue of the receiving end device corresponds to one or more queues in the sending end device.
  • the receiving end device sets the back pressure waterline value for each priority queue of the receiving end device as an example for description. All queues of the receiving end device can be stored in the buffer space of the receiving end device, and the receiving end device can set the maximum waterline threshold and the minimum waterline threshold for the receiving end device according to the size of the buffer space of the receiving end device.
  • the watermark threshold and the minimum watermark threshold are set to open the backpressure waterline value for each priority queue of the receiving end device, and the backpressure waterline value for each priority queue is set according to each priority.
  • the queue setting closes the back pressure waterline value.
  • the difference between the open back pressure waterline value and the closed back pressure waterline value of each priority queue can be a fixed value.
  • the fixed value may be 10.
  • the receiving end device setting the maximum watermark threshold and the minimum watermark threshold for the receiving end device according to the size of the buffer space of the receiving end device may include: the receiving end device compares the size of the buffer space of the receiving end device with the first The product of a coefficient is determined as the maximum watermark threshold of the receiving end device, and the product of the size of the buffer space of the receiving end device and the second coefficient is determined as the minimum watermark threshold of the receiving end device, and is the receiving end device
  • the maximum waterline threshold and the minimum waterline threshold are set, wherein the first coefficient is greater than the second coefficient, the first coefficient is greater than 0 and less than 0.85, and the second coefficient is greater than 0 and less than 0.7.
  • the first coefficient may be 0.8
  • the second coefficient may be 0.5.
  • setting the receiving end device to turn on the back pressure waterline value according to the maximum watermark threshold and the minimum watermark threshold value for each priority queue of the receiving end device may include: the receiving end device sets the maximum watermark threshold value Set the open back pressure waterline value of the highest priority queue of the receiving end device, and set the minimum watermark threshold to the open back pressure waterline value of the lowest priority queue of the receiving end device.
  • the receiving end device can open the back pressure waterline value of the queue of the previous priority lower than the any priority, the maximum waterline threshold, the minimum waterline Line threshold and the number of priorities of the receiving end device (that is, the number of priorities of all queues of the receiving end device), set the open back pressure waterline value for the queue of any priority (that is, setting The back pressure waterline value corresponding to any priority).
  • the receiving end device can determine a certain value based on the maximum watermark threshold, the minimum watermark threshold, and the priority of the receiving end device. The value will be lower than The sum of the opening back pressure waterline value of the queue of the previous priority of the any priority and the fixed value is determined as the opening back pressure waterline value of the any priority.
  • the receiving end device can use the initial value configuration formula to set the open back pressure waterline value for each priority queue of the receiving end device, where the The initial value configuration formula is:
  • B_size represents the size of the buffer space of the receiving end device
  • V_max represents the maximum waterline threshold of the receiving end device
  • V_min represents the minimum waterline threshold of the receiving end device
  • Vo_pri_min represents the opening back pressure waterline of the lowest priority queue of the receiving end device Value
  • Vo_pri_max represents the open back pressure waterline value of the highest priority queue of the receiving end device
  • Vo_pri_k represents the open back pressure waterline value of the queue with priority pri_k
  • Vo_pri_(k-1) represents the priority of pri_(k -1)
  • the opening back pressure waterline value of the queue that is, the opening back pressure waterline value of the queue of the previous priority lower than the priority pri_k
  • Q_pri represents the priority number of the receiving end device.
  • FIG. 6 shows a schematic diagram of congestion control provided by an embodiment of the present application.
  • the receiving end device has 8 priority queues from pri_1 to pri_8, and the priority is pri_1.
  • the open back pressure waterline is Vo_pri_1, the closed back pressure water line is Vc_pri_1, the open back pressure water line of the queue with priority pri_2 is Vo_pri_2, the closed back pressure water line is Vc_pri_2, and the open back pressure of the queue with priority pri_3
  • the water line is Vo_pri_3, the closed back pressure water line is Vc_pri_3, and so on, the open back pressure water line of the queue with priority pri_8 is Vo_pri_8, the closed back pressure water line is Vc_pri_8, and the priority levels pri_1 ⁇ pri_8 increase in turn, Vo_pri_1 ⁇ Vo_pri_8 increases in sequence, and Vc_pri_1 ⁇ Vc_pri_8 increases in sequence, that is, the lower the priority of the queue, the smaller
  • Step 502 The receiving end device monitors multiple queues of the receiving end device.
  • each of the multiple queues of the receiving end device has a priority, and there may be multiple queues belonging to the same priority among the multiple queues of the receiving end device.
  • the receiving-end device can monitor multiple queues of the receiving-end device, determine the length of each of the multiple queues of the receiving-end device, and how much the multiple queues of the receiving-end device occupy the buffer space of the receiving-end device, The occupancy of the buffer space of the receiving end device by all queues of each priority in the multiple queues of the receiving end device, and so on.
  • the receiving end device may record the length of each queue in the multiple queues of the receiving end device, the occupation of the buffer space of the receiving end device by all queues of each priority, and the receiving end device All queues (all queues of all priorities) occupy the buffer space of the receiving end device.
  • the receiving end device may record the length of each queue in the multiple queues of the receiving end device, the occupation of the buffer space of the receiving end device by all queues of each priority, and the receiving end device All queues (all queues of all priorities) occupy the buffer space of the receiving end device.
  • the receiving end device may record the length of each queue in the multiple queues of the receiving end device, the occupation of the buffer space of the receiving end device by all queues of each priority, and the receiving end device All queues (all queues of all priorities) occupy the buffer space of the receiving end device.
  • the message is buffered in the corresponding queue in the receiving device (for example, the queue with the same priority as the message in the queue of the target port), and the length of the corresponding queue is updated according to the size of the message, and the update priority is this
  • the first queue may be one of multiple queues of the receiving end device, the priority of the first queue may be the first priority, the receiving end device may record the length of the first queue, and the first queue
  • the occupancy of the buffer space of the receiving-end device by all queues of one priority, and the occupancy of the buffer space of the receiving-end device by all the queues of the receiving-end device, the receiving-end device for the first report received The message can be cached in the first queue according to the destination port number and priority of the first message, the length of the first queue is updated according to the size of the first message, and the first priority is updated.
  • FIG. 7 shows a schematic diagram of the occupancy of the buffer space of the receiving-end device by queues of different priorities in the receiving-end device provided by an embodiment of the present application.
  • B_size Indicates the size of the buffer space of the receiving end device.
  • the receiving end device has 8 priority queues from pri_1 to pri_8. All queues with priority pri_1 occupy the buffer space of the receiving end device B_pri_1, and the priority is pri_2
  • the receiving end device can record the length of each queue in the 80 queues of the 8 priority levels, and the 80 queues The buffer space occupied by the receiving end device B_total, the buffer space occupied by the 10 queues with priority pri_1 for the receiving end device B_pri_1, and the buffer space occupied by the 10 queues with priority pri_2 for the receiving end device
  • the first queue can be queue 1 of the 80 queues, and the first priority can be pri_1.
  • the receiving end device can set the destination port number and priority of the message 1 according to the information such as the destination port number and priority of the message 1.
  • the message 1 is cached in the queue 1, and the length of the queue 1 is updated according to the size of the message 1, the 10 queues with priority pri_1 and the buffer space occupied by the receiving end device B_pri_1 are updated, and the 80 is updated.
  • Step 503 When the first queue of the multiple queues of the receiving end device meets the preset opening index, the receiving end device notifies the sending end device to enable congestion control for the target queue corresponding to the first queue in the sending end device.
  • the receiving end device in the process of monitoring the multiple queues of the receiving end device, can detect whether each of the multiple queues of the receiving end device meets the preset opening index. When the queue meets the preset opening index, the receiving end device notifies the sending end device to enable congestion control for the queue corresponding to each queue in the sending end device.
  • the first queue may be one of the multiple queues of the receiving end device. Therefore, the receiving end device can detect whether the first queue is satisfied during the process of monitoring the multiple queues of the receiving end device.
  • a preset opening index is set. When the first queue meets the preset opening index, the receiving end device notifies the sending end device to enable congestion control for the target queue corresponding to the first queue in the sending end device.
  • the preset opening index includes: the amount of the buffer space occupied by the multiple queues of the receiving end device for the receiving end device reaches or exceeds the opening back pressure waterline value of the first queue.
  • the preset opening indicator may further include one or more of the following:
  • the first queue belongs to the N longest queues of the first priority among the multiple queues of the receiving end device, the priority of the first queue is the first priority, and when the first priority is the multiple queues When the lowest priority among the priorities of, N is an integer greater than 0, and when the first priority is the non-lowest priority among the priorities of the multiple queues, N is an integer greater than or equal to 0;
  • the length of the first queue reaches or exceeds the preset length threshold.
  • the preset opening index includes: the amount of the buffer space occupied by the multiple queues of the receiving end device on the receiving end device reaches or exceeds the open backpressure waterline value of the first queue, and the first queue belongs to the first queue.
  • the target queue corresponding to a queue turns on congestion control.
  • the preset length threshold may be the average value of the lengths of all queues of the receiving end device. For example, the receiving end device always has 80 queues, and the preset length threshold may be the average value of the lengths of the 80 queues.
  • the N longest queues of the first priority are the topN longest queues among all the queues of the first priority. The length of the N longest queues may be equal or unequal.
  • the N of the first priority The meaning of the longest queues can be: if all the queues of the first priority are sorted according to the order of their length, the N longest queues of the first priority can be all the queues of the first priority The N queues that are sorted at the top of the list; if all the queues of the first priority are sorted in ascending order of length, the N longest queues of the first priority can be all the queues of the first priority The N queues sorted in the bottom.
  • N 5, there are a total of 10 queues of the first priority, and the 10 queues are queue 1, queue 2, queue 3, queue 4, queue 5, queue 6, queue 7, queue 8, queue 9, and Queue 10,
  • the results obtained by sorting the 10 queues in order of length from largest to smallest can be: Queue 1, Queue 2, Queue 5, Queue 4, Queue 3, Queue 6, Queue 7, Queue 8, Queue 9, Queue 10,
  • the N longest queues of the first priority can be the top 5 queues, which are queue 1, queue 2, queue 5, queue 4, and queue 3, in the order of ascending length
  • the result of sorting the 10 queues can be: queue 10, queue 9, queue 8, queue 7, queue 6, queue 3, queue 4, queue 5, queue 2, queue 1, then the N of the first priority
  • the longest queues can be the 5 last queues, which are queue 1, queue 2, queue 5, queue 4, and queue 3.
  • the receiving-end device notifying the sending-end device to enable congestion control for the target queue corresponding to the first queue in the sending-end device may include: the receiving-end device sends an enabling control message to the sending-end device, where the enabling control message indicates The sending end device enables congestion control for the target queue.
  • the turn-on control message may carry an identifier of the target queue and an enable flag bit, the identifier of the target queue indicates the target queue, and the enable flag bit instructs the sending end device to turn on congestion control, so that the turn-on control message instructs to send The end device enables congestion control on the target queue.
  • the opening control message may also carry the identification of the sending end device, so that the sending end device determines according to the identification of the sending end device that the opening control message is sent to the sending end device (that is, the sending end device).
  • the identifier indicates the recipient of the turn-on control message).
  • the receiving end device may send the opening control message to the sending end device in a broadcast form. For example, the receiving end device broadcasts the opening control message to all sending end devices of the receiving end device.
  • the receiving end device may determine whether to perform back pressure control according to the priority level, and determine the number of queues that need back pressure according to the priority level. For the queue with the highest priority, it is not necessary to perform back pressure control. For back pressure, if you need to back pressure multiple queues with different priorities at the same time, the number of queues with multiple priorities that need back pressure can be reduced from low to high according to the multiple priorities, that is, priority The lower the level, the greater the number of backpressure queues, and the higher the priority, the higher the number of backpressure queues.
  • the receiving end device has 8 priority queues pri_1 to pri_8, and the 8 priorities of pri_1 to pri_8 are successively increased, and the back pressure on the pri_8 queue may not be performed.
  • the 8 priorities of pri_1 to pri_8 need to be back-pressured at the same time.
  • the number of priority queues decreases in order from low to high, for example, pri_3 is high.
  • the number of queues with priority pri_2 can be greater than the number of queues with priority pri_3, the number of queues with priority pri_2 can be g, and the number of queues with priority pri_3 in the queue that needs back pressure It can be 0.8 ⁇ g, and the g queues with priority pri_2 belong to the N longest queues among all the queues with priority pri_2.
  • the longest queue of the high-priority queue is less than the longest queue of the low-priority queue. In other embodiments, the longest queue of the high-priority queue may be zero.
  • the lowest priority queue includes 4 longest queues
  • the medium priority queue includes 4 longest queues
  • the highest priority queue may include 2 Or 0 longest queues.
  • the longest queue with low priority can be back pressured first to ensure the delay and throughput of the queue with higher priority.
  • Step 504 The sending end device starts congestion control for the target queue of the sending end device according to the notification of the receiving end device.
  • the receiving end device notifies the sending end device to enable congestion control on the target queue when the first queue of the receiving end device meets the preset opening index, and the target queue corresponds to the first queue of the receiving device .
  • the preset opening index includes: the amount of the buffer space occupied by the multiple queues of the receiving end device for the receiving end device reaches or exceeds the open back pressure waterline value of the first queue.
  • the preset opening indicator may also be one or more of the following:
  • the first queue belongs to the N longest queues of the first priority among the multiple queues of the receiving end device, the priority of the first queue is the first priority, and when the first priority is the multiple queues When the lowest priority among the priorities of, N is an integer greater than 0, and when the first priority is the non-lowest priority among the priorities of the multiple queues, N is an integer greater than or equal to 0;
  • the length of the first queue reaches or exceeds the preset length threshold.
  • the sending-end device enabling congestion control on the target queue of the sending-end device according to the notification of the receiving-end device may include: the sending-end device receives an opening control message sent by the receiving-end device, and according to the opening control message to the target queue Enable congestion control, where the enable control message instructs the sending end device to enable congestion control for the target queue.
  • the turn-on control message may carry an identifier of the target queue and an enable flag bit, the identifier of the target queue indicates the target queue, and the enable flag bit instructs the sending end device to turn on congestion control, so that the turn-on control message instructs to send The end device enables congestion control on the target queue.
  • the turn-on control message may also carry an identifier of the sending-end device, and the identifier of the sending-end device indicates the recipient of the turn-on control message.
  • the sender device can parse the start control message to obtain the sender device's identity, enable flag bit, and target queue identity. According to the sender device’s identity, it is determined that the switch on control message is sent to the sender device.
  • the capability flag determines that congestion control needs to be turned on, and the target queue is determined according to the identifier of the target queue, so that congestion control is turned on for the target queue according to the turn-on control message.
  • Step 505 The receiving end device allocates a sending credit value to the target queue.
  • the receiving-end device After the receiving-end device notifies the sending-end device to enable congestion control for the target queue in the sending-end device, it can assign a sending credit value to the target queue, so that the sending-end device sends the target queue to the receiving-end device according to the sending credit value.
  • the sending credit value may be the number of packets in the target queue that the receiving end device can schedule this time, or the number of packets in the target queue that the sending end device can send this time, and the receiving end device can be based on its own The scheduling capability allocates sending credits to the target queue.
  • the sending credit value may also be referred to as the queue credit value.
  • the sending-end device after the sending-end device starts congestion control for the target queue in the sending-end device according to the notification of the receiving-end device, it can send to the receiving-end device a message containing the queue information (such as queue length and priority, etc.) of the target queue.
  • the receiving end device allocates a sending credit value to the target queue according to the queue information in the message.
  • the message containing the queue information of the target queue may be REQ.
  • the receiving end device may determine a distribution coefficient according to the open backpressure waterline of the first queue, and use the distribution coefficient to allocate the transmission credit value to the target queue according to the queue information in the message.
  • the opening backpressure waterline of the first queue is the initial backpressure waterline value set by the system
  • the receiving end device schedules the target queue for the first time
  • the distribution coefficient may be the initial distribution coefficient, and the initial distribution coefficient may be 1, for example.
  • Step 506 The receiving end device sends a message containing the sending credit value to the sending end device.
  • the receiving end device may generate a message containing the sending credit value according to the sending credit value of the target queue, and sending the message containing the sending credit value to the sending end device through a communication connection with the sending end device.
  • the message containing the sending credit value may be ACK.
  • Step 507 The sending end device sends the packet in the target queue to the receiving end device according to the sending credit value.
  • the sending end device may receive the message containing the sending credit value of the target queue. After that, the sending end device may send the message in the target queue to the receiving end device according to the sending credit value.
  • the sending credit value of the target queue may be 5 (for example, 5 packets), and the sending end device may send 5 packets in the target queue to the receiving end device according to the sending credit value.
  • Step 508 When the occupancy of the buffer space of the receiving end device by the multiple queues of the receiving end device reaches or exceeds the minimum waterline threshold of the receiving end device, the receiving end device adjusts the queues of each priority of the receiving end device. The back pressure waterline value.
  • the receiving end device may have a minimum watermark threshold.
  • the receiving end device may detect that the multiple queues of the receiving end device have a positive effect on the receiving end device. Whether the occupancy of the buffer space reaches or exceeds the minimum water mark threshold of the receiving end device, when the multiple queues of the receiving end device occupies the receiving end device’s buffer space reach or exceed the minimum water mark threshold of the receiving end device.
  • the line threshold is set, the receiving end device can adjust the back pressure waterline value of each priority queue of the receiving end device to perform congestion perception and judgment according to the adjusted back pressure waterline value, thereby flexibly controlling.
  • the receiving end device can dynamically adjust the minimum watermark threshold of the receiving end device, and the receiving end device detects each time whether the multiple queues of the receiving end device occupy or exceed the buffer space of the receiving end device.
  • the minimum watermark threshold of the receiving end device may be the minimum watermark threshold of the receiving end device at the current moment (that is, the minimum watermark threshold after the most recent adjustment).
  • the receiving end device adjusting the backpressure waterline value of each priority queue of the receiving end device may include the following three possible implementation manners:
  • the first implementation mode the receiving end device may have a maximum watermark threshold, and the receiving end device is based on the maximum watermark threshold and minimum watermark threshold of the receiving end device, and the buffer space of the receiving end device's queue for the receiving end device Adjust the backpressure waterline value of each priority queue of the receiving end device.
  • FIG. 8 shows a flow chart of a method for a receiving end device to adjust the back pressure waterline value of any priority queue of the receiving end device according to an embodiment of the present application.
  • the receiving end device can adjust the back pressure waterline value of the priority queue according to the method shown in FIG. 8.
  • the method may include:
  • Sub-step 5081a according to the maximum watermark threshold of the receiving end device, the minimum watermark threshold of the receiving end device, the occupancy of the buffer space of the receiving end device by all priority queues lower than any priority, and the Regarding the occupancy of all queues of the receiving end device to the buffer space of the receiving end device, the opening back pressure waterline value of the queue of any priority is adjusted.
  • the occupancy of the buffer space of the receiving end device by the queue of any priority is negatively correlated with the occupancy of the buffer space of the receiving end device by all priority queues lower than the any priority.
  • the open back pressure waterline value of the queue of any priority is negatively related to the amount of buffer space occupied by the receiving end device by the queue of any priority; the open back pressure waterline value of the queue of any priority is greater than or equal to low
  • the open backpressure waterline value of all priority queues at any priority level That is, if queues of all priority levels lower than any priority occupies a large amount of buffer space of the receiving end device, the queue of any priority level occupies a relatively large amount of buffer space of the receiving end device.
  • the queues of any priority are less likely to be back pressured, the higher the back pressure waterline value of the queue of any priority is, the higher the priority queue, the higher the back pressure waterline value is, the priority is The lower the queue, the smaller the opening back pressure waterline value.
  • the open back pressure waterline value of the queue of any priority is positively correlated with the occupancy of the buffer space of the receiving end device by the queues of all priorities lower than the any priority.
  • the receiving end device may respond to the maximum watermark threshold of the receiving end device, the minimum watermark threshold of the receiving end device, and all priority queues lower than any priority.
  • the occupancy of the buffer space of the receiving end device, and the occupancy of all queues of the receiving end device to the buffer space of the receiving end device, the waterline value formula is used to calculate the open backpressure waterline value of the queue of any priority , Adjust the opening back pressure waterline value of the queue of any priority according to the calculation result.
  • the waterline value formula can be:
  • Vo_pri_k represents the opening back pressure waterline value of the queue with priority pri_k
  • B_pri_i represents the occupation of the buffer space of the receiving end device by all queues with priority pri_i
  • B_total represents the receiving end device's buffer space All queues occupy the buffer space of the receiving end device
  • V_max represents the maximum watermark threshold of the receiving end device
  • V_min represents the minimum watermark threshold of the receiving end device.
  • the receiving end device can set the maximum watermark threshold of the receiving end device, the minimum watermark threshold of the receiving end device, and all priority queues lower than any priority to the buffer space of the receiving end device.
  • the occupancy and the occupancy of all queues of the receiving end device to the buffer space of the receiving end device are substituted into the waterline value formula to calculate the opening backpressure waterline value of the queue of any priority. For example, there are 8 priority queues of pri_1 to pri_8 in the receiving end device, and the priorities pri_1 to pri_8 increase in sequence.
  • Vo_pri_1 Vo_pri_min
  • the receiving end device can dynamically adjust the minimum watermark threshold of the receiving end device.
  • the receiving end device adjusts the opening response of any priority queue.
  • the minimum watermark threshold used may be the minimum watermark threshold of the receiving end device at the current moment (that is, the minimum watermark threshold after the most recent adjustment).
  • Sub-step 5082a According to the open back pressure waterline value of the queue of any priority, adjust the closed back pressure waterline value of the queue of any priority.
  • the difference between the open back pressure waterline value and the closed back pressure waterline value of each priority queue can be a fixed value. Therefore, for any priority queue, the receiving end device The difference between the open backpressure waterline of the queue of any priority and the fixed value may be determined as the closed backpressure waterline value of the queue of any priority.
  • the occupancy of the buffer space of the receiving end device by a queue of any priority is negatively related to the occupancy of the buffer space of the receiving end device by all priority queues below the any priority.
  • the opening backpressure waterline value of the queue of any priority is negatively related to the amount of buffer space occupied by the receiving end device by the queue of any priority; the opening backpressure waterline of the queue of any priority The value is greater than or equal to the open back pressure waterline value of all priority queues lower than any priority. That is, if queues of all priority levels lower than any priority occupies a large amount of buffer space of the receiving end device, the queue of any priority level occupies a relatively large amount of buffer space of the receiving end device.
  • the queues of any priority are less likely to be back pressured, the higher the back pressure waterline value of the queue of any priority is, the higher the priority queue, the higher the back pressure waterline value is, the priority is The lower the queue, the smaller the opening back pressure waterline value. In this way, it can prevent the high-priority queue from being controlled too early to affect the performance of the high-priority queue, and it can also avoid the high-priority queue being controlled too late. .
  • the second implementation mode the receiving end device adjusts the back pressure waterline of the queues of each priority according to the amount of the buffer space occupied by all the queues of the receiving end device and the size of the buffer space of the receiving end device. value.
  • FIG. 9 shows a flowchart of another method for a receiving end device to adjust the back pressure waterline value of a queue of any priority of the receiving end device according to an embodiment of the present application.
  • the receiving end device can adjust the back pressure waterline value of the priority queue according to the method shown in FIG. 9.
  • the method may include:
  • Sub-step 5081b Adjust the opening back pressure waterline value of the queue of any priority according to the occupation of the buffer space of the receiving end device by all the queues of any priority and the size of the buffer space.
  • the open back pressure waterline value of the queues is negatively correlated with the amount of buffer space occupied by all queues of any priority level on the receiving end device.
  • the receiving end device may determine the waterline according to the ratio of the occupancy of all queues of any priority to the buffer space of the receiving end device and the size of the buffer space of the receiving end device (hereinafter referred to as the queue occupancy ratio)
  • the coefficient is to adjust the opening back pressure waterline value of the queue of any priority according to the determined waterline coefficient.
  • the open backpressure waterline value of the queue of any priority is negatively related to the amount of buffer space occupied by all queues of the any priority on the receiving end device, that is, the buffer of the receiving end device The larger the space occupied by the queue, the smaller the open back pressure waterline and the stronger the back pressure.
  • the receiving end device may determine the ratio of the amount of buffer space occupied by all queues of any priority to the size of the buffer space of the receiving end device (that is, the occupancy of queues of any priority Ratio), according to the queue occupancy ratio of any priority, and the corresponding relationship between the occupancy ratio interval and the waterline coefficient, determine the waterline coefficient corresponding to the queue occupancy ratio of any priority, and determine the waterline coefficient corresponding to the queue occupancy ratio of any priority.
  • the waterline coefficient corresponding to the queue occupancy ratio adjusts the opening back pressure waterline value of the queue of any priority.
  • the receiving end may determine the product of the current open backpressure waterline value of the queue of any priority and the corresponding waterline coefficient as the adjusted open backpressure waterline of the queue of any priority value.
  • Sub-step 5082b According to the open back pressure waterline value of the queue of any priority, adjust the closed back pressure waterline value of the queue of any priority.
  • the third implementation manner the receiving end device adjusts the backpressure waterline value of the queues of each priority according to the average delay value of the longest queue.
  • FIG. 10 shows a flowchart of another method for a receiving end device to adjust the back pressure waterline value of any priority queue of the receiving end device according to an embodiment of the present application.
  • a priority queue the receiving end device can adjust the back pressure waterline value of the priority queue according to the method shown in FIG. 10.
  • the method may include:
  • Sub-step 5081c according to the average delay of the M longest queues of any priority and the average delay of all the longest queues of all priorities of the receiving end device, adjust the opening back pressure of the queue of any priority Line value.
  • M is an integer greater than 0.
  • the receiving end device may determine the delay of each longest queue, and determine the delay according to the delay of the M longest queues
  • the average delay of the M longest queues is determined according to the delays of all the longest queues of all priorities, and the average delay of all the longest queues is determined according to the delays of the M longest queues of any priority.
  • the average value and the average value of the delay of all the longest queues of all priorities of the receiving end device are adjusted to the open back pressure waterline value of the queue of any priority. It should be noted that the number of the longest queues of any two priority levels can be equal or unequal.
  • all the longest queues of all priorities of the receiving end device The number can be M ⁇ p, p represents the number of priorities of the receiving end device, and M represents the number of the longest queue of each priority in the p priorities; when the longest of two or more priorities When the number of queues is not equal, the number of all the longest queues of all priorities of the receiving end device can be M1+M2+M3+...Mp, and M1 ⁇ Mp in turn represent the number of the longest queues of priority 1 ⁇ p .
  • the receiving end device adjusts the queue of any priority
  • the opening back pressure waterline value of is reduced by 5% to 10% on the basis of the current opening back pressure waterline value.
  • the receiving end device adjusts the opening back pressure waterline value of the queue of any priority to the target waterline Value range, the target waterline value range can be [0.95 ⁇ Vo_pri, 0.8 ⁇ Vo_pri], Vo_pri represents the current open backpressure waterline value of the queue of any priority; when the M of any priority is the longest When the average delay of the queue is not greater than the average delay of all the longest queues of all priorities of the receiving end device, the receiving end device adjusts the open backpressure waterline value of the queue of any priority to that any priority
  • the initial opening backpressure waterline value of the queue of any priority, the initial opening backpressure waterline value of the queue of any priority level is the opening backpressure waterline value pre-configured by the system for the queue of any priority, for example, the any
  • the initial opening backpressure waterline value of a priority queue may be the opening backpressure waterline value set by the receiving end device for the queue of any priority in step 501.
  • Sub-step 5082c According to the open back pressure waterline value of the queue of any priority, adjust the closed back pressure waterline value of the queue of any priority.
  • the receiving end device can dynamically adjust the minimum watermark threshold of the receiving end device, for example, the receiving end device periodically adjusts the minimum watermark threshold of the receiving end device.
  • the minimum watermark threshold in the embodiments of the present application, active congestion control can be avoided or reduced as much as possible, and high throughput and low latency can be ensured.
  • the receiving end device adjusting the minimum watermark threshold of the receiving end device may include: the maximum occupancy of the buffer space of the receiving end device by all queues of the receiving end device within the target duration is greater than the minimum watermark threshold and less than The difference between the maximum watermark threshold and the first threshold, or the maximum occupancy of the buffer space of the receiving device by all queues of the receiving end device is greater than the difference between the maximum watermark threshold and the second threshold Value, the receiving end device adjusts the minimum watermark threshold.
  • the starting time of the target duration may be the time when the minimum watermark threshold of the receiving end device was adjusted last time. The target duration, the first threshold, and the second threshold can all be determined according to actual conditions.
  • the target duration can be greater than 100ms (milliseconds), and the first threshold can be 12MB (megabits).
  • the second threshold may be 6MB.
  • Step 509 The receiving end device adjusts the distribution coefficient of the sending credit value of the target queue according to the amount of the buffer space of the receiving end device occupied by the multiple queues of the receiving end device, and the distribution coefficient is compared with the multiple queues of the receiving end device. There is a negative correlation with the occupancy of the buffer space of the receiving end device.
  • the receiving-end device After the receiving-end device notifies the sending-end device to enable congestion control for the target queue corresponding to the first queue in the sending-end device, it can continue to monitor multiple queues of the receiving-end device, and respond to the receiving device according to the multiple queues of the receiving-end device.
  • the occupancy of the buffer space of the end device adjusts the distribution coefficient of the sending credit value of the target queue.
  • the distribution coefficient of the sending credit value of the target queue is negatively correlated with the amount of buffer space occupied by the multiple queues of the receiving end device on the receiving end device, that is, the multiple queues of the receiving end device have a negative correlation with the receiving end device.
  • each priority queue in the receiving end device may have a discard backpressure waterline value.
  • the receiving end device can discard the packets in the priority queue to perform passive congestion control.
  • the receiving end device may reflect the amount of buffer space occupied by the receiving end device by the multiple queues of the receiving end device, the opening back pressure waterline value of the first queue, and the discarding value of the first queue. Press the waterline value to adjust the distribution coefficient of the sending credit value of the target queue.
  • the receiving end device may determine the first difference between the amount of the buffer space occupied by the receiving end device by the multiple queues of the receiving end device and the opening back pressure waterline value of the first queue, and the first The target difference between the discarded backpressure waterline value of the queue and the open backpressure waterline value of the first queue is adjusted according to the first difference and the target difference to adjust the distribution coefficient of the sending credit value of the target queue.
  • the receiving end device adjusts the distribution coefficient of the sending credit value of the target queue to the first distribution coefficient, and the first distribution coefficient is less than 1 and greater than 0;
  • the receiving end device adjusts the distribution coefficient of the sending credit value of the target queue to the second distribution coefficient, and the lower limit of the second difference value interval may be equal to the first difference value interval.
  • the upper limit of the difference interval, the second distribution coefficient is less than the first distribution coefficient and greater than 0; when the first difference is in the third difference interval, the receiving end device uses the distribution coefficient of the send credit value of the target queue Adjusted to the third distribution coefficient, the lower limit of the third difference interval may be equal to the upper limit of the second difference interval, the third distribution coefficient is less than the second distribution coefficient and greater than 0; when the first difference When in the fourth difference interval, the receiving end device adjusts the distribution coefficient of the sending credit value of the target queue to the fourth distribution coefficient, and the lower limit of the fourth difference interval may be equal to the upper limit of the third difference interval Value, the fourth distribution coefficient is less than the third distribution coefficient and greater than 0; when the first difference is in the fifth difference interval, the receiving end device adjusts the distribution coefficient of the send credit value of the target queue to 0, and the first difference
  • the lower limit of the five difference interval may be equal to the upper limit of the fourth difference interval.
  • the first difference interval is (10%X ⁇ 20%X)
  • the second difference interval is (20%X ⁇ 30%X]
  • the third difference interval is (30%X ⁇ 40%X).
  • the fourth difference interval is (40%X ⁇ 50%X]
  • the fifth difference interval is (50%X ⁇ X]
  • the first distribution coefficient is 0.8
  • the second distribution coefficient is 0.6
  • the third distribution The coefficient is 0.4
  • the fourth distribution coefficient is 0.2
  • X is the target difference.
  • the receiving end device sends the target queue The distribution coefficient of the credit value is adjusted to the first distribution coefficient; when the first difference is in the second difference interval and the length of time from the previous adjustment of the back pressure waterline value of the first priority queue is greater than the second time length, receive The end device adjusts the distribution coefficient of the sending credit value of the target queue to the second distribution coefficient; when the first difference is in the third difference interval and is less than the previous adjustment of the backpressure waterline value of the first priority queue When the duration is greater than the third duration, the receiving end device adjusts the distribution coefficient of the sending credit value of the target queue to the third distribution coefficient; when the first difference is in the fourth difference interval and the first priority is adjusted before When the duration of the backpressure waterline value of the queue is greater than the fourth duration, the receiving end device adjusts the distribution coefficient of the sending credit value of the target queue to the fourth distribution coefficient; when the first
  • Step 510 The receiving end device allocates a sending credit value to the target queue using the adjusted allocation coefficient.
  • the receiving end device After the receiving end device adjusts the distribution coefficient of the transmission credit value of the target queue, it may allocate the transmission credit value to the target queue using the adjusted distribution coefficient.
  • the receiving end device receives the message containing the queue information (such as queue length and priority, etc.) of the target queue sent by the sending end device, and allocates the target queue according to the queue information in the message with the adjusted distribution coefficient Send credit value.
  • the message containing the queue information of the target queue may be REQ.
  • Step 511 The receiving end device sends a message containing the sending credit value to the sending end device.
  • Step 512 The sending end device sends the packet in the target queue to the receiving end device according to the sending credit value.
  • step 511 and step 512 For the implementation process of step 511 and step 512, reference may be made to the foregoing step 506 and step 507, and details are not described in the embodiment of the present application.
  • Step 513 When the first queue meets the preset closing index, the receiving end device notifies the sending end device to close the congestion control for the target queue of the sending end device.
  • the receiving end device after the receiving end device notifies the sending end device to enable congestion control for the target queue corresponding to the first queue in the sending end device, it can continue to monitor multiple queues of the receiving end device and detect the first queue. Whether the queue meets the preset closing index, and when the first queue meets the preset closing index, the receiving end device notifies the sending end device to close the congestion control for the target queue of the sending end device.
  • the preset closing index includes: the amount of the buffer space occupied by the multiple queues of the receiving end device for the receiving end device is less than the closing back pressure waterline value of the first queue.
  • the preset closing indicator may further include one or more of the following:
  • the length of time that the multiple queues of the receiving end device occupies the buffer space of the receiving end device is less than the closing back pressure waterline value of the first queue reaches or exceeds the preset duration threshold;
  • the first queue does not belong to the N longest queues of the first priority among the multiple queues of the receiving end device, the priority of the first queue is the first priority, and when the first priority is the multiple When the priority of the queue is the lowest priority, N is an integer greater than 0, and when the first priority is the non-lowest priority among the priorities of the multiple queues, N is an integer greater than or equal to 0;
  • the length of the first queue is less than the preset length threshold.
  • the preset closing index includes: the buffer space occupied by the multiple queues of the receiving end device for the receiving end device is less than the closing backpressure waterline value of the first queue, and the multiple queues of the receiving end device
  • the duration reaches or exceeds the preset duration threshold
  • the multiple queues of the receiving end device have an impact on the buffer space of the receiving end device.
  • the length of time when the occupancy is less than the closing back pressure waterline value of the first queue reaches or exceeds the preset duration threshold, and the length of the first queue is less than the preset length threshold.
  • the preset length threshold may be the average value of the lengths of all queues of the receiving end device, and the preset duration threshold may be set according to actual conditions.
  • the preset duration threshold may be 100 ms, and N of the first priority
  • step 503 For the explanation of the longest queue, reference may be made to step 503, which is not repeated in this embodiment of the application.
  • the receiving end device notifying the sending end device to close the congestion control of the target queue in the sending end device may include: the receiving end device sends a closing control message to the sending end device, and the closing control message instructs the sending end device to The target queue turns off congestion control.
  • the shutdown control message may carry an identifier of the target queue and a disable flag bit, the identifier of the target queue indicates the target queue, and the disable flag indicates the sending end device to disable congestion control, so that the shutdown control message Instruct the sending device to turn off congestion control on the target queue.
  • the shutdown control message may also carry the identification of the sending end device, so that the sending end device determines according to the identification of the sending end device that the shutdown control message is sent to the sending end device (that is, the sending end device).
  • the identifier indicates the recipient of the shutdown control message).
  • the receiving end device may send the closing control message to the sending end device in a broadcast form. For example, the receiving end device broadcasts the closing control message to all sending end devices of the receiving end device.
  • the receiving end device can notify the sending end device to close congestion control for all target queues in the sending end device, or it can notify the sending end device to close congestion control for one or several target queues in the sending end device. Control, for example, the receiving end device notifies the sending end device to turn off congestion control for queues with higher priority on the receiving end device to ensure that queues with higher priority can be scheduled preferentially, which is not limited in this embodiment of the application.
  • Step 514 The sending end device closes the congestion control for the target queue of the sending end device according to the notification of the receiving end device.
  • the receiving end device notifies the sending end device to close the congestion control of the target queue when the first queue of the receiving end device meets the preset closing index, and the preset closing indicator includes: the number of the receiving end device.
  • the occupancy of the buffer space of the receiving end device by each queue is less than the closed back pressure waterline value of the first queue.
  • the preset closing indicator may further include one or more of the following:
  • the first queue does not belong to the N longest queues of the first priority among the multiple queues of the receiving end device, the priority of the first queue is the first priority, and when the first priority is the multiple When the priority of the queue is the lowest priority, N is an integer greater than 0, and when the first priority is the non-lowest priority among the priorities of the multiple queues, N is an integer greater than or equal to 0;
  • the length of the first queue is less than the preset length threshold.
  • the sending-end device closing congestion control to the target queue of the sending-end device according to the notification of the receiving-end device may include: the sending-end device receives a closing control message sent by the receiving-end device, and controlling the target queue according to the closing control message.
  • the congestion control is closed, where the close control message instructs the sending end device to close the congestion control for the target queue.
  • the shutdown control message may carry an identifier of the target queue and a disable flag bit, the identifier of the target queue indicates the target queue, and the disable flag indicates the sending end device to disable congestion control, so that the shutdown control message Instruct the sending device to turn off congestion control on the target queue.
  • the shutdown control message may also carry an identifier of the sender device, and the identifier of the sender device indicates the recipient of the shutdown control message.
  • the sending end device can parse the shutdown control message to obtain the identification of the sending end device, the de-enable flag bit, and the identification of the target queue. According to the identification of the sending end device, it is determined that the shutdown control message is sent to the sending end device.
  • the disable flag determines that congestion control needs to be turned off, and the target queue is determined according to the identifier of the target queue, so that the congestion control is turned off for the target queue according to the shutdown control message.
  • FIG. 11 shows another schematic diagram of congestion control provided by an embodiment of the present application.
  • FIG. 11 when multiple queues of the receiving end device occupy more than the buffer space of the receiving end device
  • the backpressure waterline corresponding to the priority pri_k is turned on (that is, the backpressure waterline for the queue with priority pri_k) Vo_pri_k, congestion control is turned on.
  • the congestion control is turned off. In this way, it is possible to avoid turning on congestion control due to instantaneous congestion, and turning off congestion control due to instantaneous non-congestion, and improve the flexibility of congestion control.
  • the receiving end device monitors multiple queues of the receiving end device, and when the first queue of the multiple queues of the receiving end device meets the preset opening index, it notifies the
  • the sending end device enables congestion control on the target queue corresponding to the first queue in the sending end device, and the sending end device enables congestion control on the target queue according to the notification of the receiving end device.
  • the congestion control method helps to solve the congestion problem of the current communication network, and helps to improve the resource utilization rate and transmission quality of the communication network.
  • the congestion control method combines active congestion control and passive congestion control.
  • passive congestion control to sense congestion
  • congestion control can be performed from the entire communication network, and can be targeted at a specific priority.
  • the back pressure is on the sending end device to ensure the throughput of the sending end device, thereby ensuring the throughput of the workstation connected to the sending end device, and improving the flexibility of congestion control.
  • the congestion control method provided by the embodiment of the present application does not need to consider the backpressure waterline value and the sending credit value before the sender device starts congestion control, so that the traffic of the sender device can be pushed as much as possible, and all the traffic before the congestion control is enabled The queues try their best to maintain throughput.
  • FIG. 12 shows a schematic diagram of the logical structure of a congestion control apparatus 1200 provided by an embodiment of the present application.
  • the congestion control apparatus 1200 may be a functional component in a network device, and the network device may be the one in the foregoing embodiment.
  • the congestion control device 1200 includes: a monitoring module 1210 and an opening module 1220.
  • the monitoring module 1210 can be used to execute step 502 in the embodiment shown in FIG. 5, and the opening module 1220 can be used to execute the step shown in FIG. Step 503 in the embodiment.
  • the monitoring module 1210 is used to monitor multiple queues of the receiving end device, and each queue of the receiving end device corresponds to one or more queues in the sending end device;
  • the opening module 1220 is configured to notify the sending end device to start congestion for the target queue corresponding to the first queue in the sending end device when the first queue among the plurality of queues of the receiving end device meets the preset opening index control;
  • the preset opening index includes: the amount of the buffer space occupied by the multiple queues of the receiving end device for the receiving end device reaches or exceeds the open back pressure waterline value of the first queue.
  • the preset opening indicator further includes one or more of the following:
  • the first queue belongs to the N longest queues of the first priority among the multiple queues of the receiving end device, the priority of the first queue is the first priority, and when the first priority is the multiple queues When the lowest priority among the priorities of, N is an integer greater than 0, and when the first priority is the non-lowest priority among the priorities of the multiple queues, N is an integer greater than or equal to 0;
  • the length of the first queue reaches or exceeds the preset length threshold.
  • the opening module 1220 is configured to send an opening control message to the sending end device, where the opening control message instructs the sending end device to enable congestion control on the target queue.
  • FIG. 13 shows a schematic diagram of the logical structure of another congestion control apparatus 1200 provided in an embodiment of the present application.
  • the congestion control apparatus 1200 further includes:
  • the closing module 1230 can be used to execute step 513 in the embodiment shown in FIG. 5.
  • the closing module 1230 is configured to notify the sending end device to close congestion control for the target queue of the sending end device when the first queue meets the preset closing index;
  • the preset closing index includes: the amount of the buffer space occupied by the multiple queues of the receiving end device for the receiving end device is less than the closing back pressure waterline value of the first queue.
  • the preset closing indicator further includes one or more of the following:
  • the length of time that the multiple queues of the receiving end device occupies the buffer space of the receiving end device is less than the closing back pressure waterline value of the first queue reaches or exceeds the preset duration threshold;
  • the first queue does not belong to the N longest queues of the first priority among the multiple queues of the receiving end device, the priority of the first queue is the first priority, and when the first priority is the multiple When the priority of the queue is the lowest priority, N is an integer greater than 0, and when the first priority is the non-lowest priority among the priorities of the multiple queues, N is an integer greater than or equal to 0;
  • the length of the first queue is less than the preset length threshold.
  • the congestion control apparatus 1200 further includes: an allocation module 1240 and a sending module 1250.
  • the allocation module 1240 can be used to perform steps 505 and 510 in the embodiment shown in FIG.
  • the module 1250 can be used to execute step 506 and step 511 in the embodiment shown in FIG. 5.
  • the allocation module 1240 is used to allocate the sending credit value to the target queue
  • the sending module 1250 is configured to send a message containing the sending credit value to the sending end device, so that the sending end device sends the message in the target queue to the receiving end device according to the sending credit value.
  • the congestion control apparatus 1200 further includes: a coefficient adjustment module 1260, and the coefficient adjustment module 1260 may be used to perform step 509 in the embodiment shown in FIG. 5.
  • the coefficient adjustment module 1260 is configured to adjust the distribution coefficient of the sending credit value of the target queue according to the amount of the buffer space occupied by the receiving-end device by the multiple queues of the receiving-end device.
  • the queue is negatively related to the occupancy of the buffer space of the receiving end device.
  • each of the multiple queues of the receiving end device has a back pressure waterline value, and the back pressure waterline values of queues with different priorities are different.
  • the congestion control apparatus 1200 also includes : Waterline adjustment module 1270.
  • the waterline adjustment module 1270 can be used to execute step 508 in the embodiment shown in FIG. 5.
  • the waterline adjustment module 1270 is configured to adjust each of the receiving-end device when the amount of the buffer space occupied by the receiving-end device reaches or exceeds the minimum waterline threshold of the receiving-end device.
  • the back pressure waterline value of the priority queue is configured to adjust each of the receiving-end device when the amount of the buffer space occupied by the receiving-end device reaches or exceeds the minimum waterline threshold of the receiving-end device. The back pressure waterline value of the priority queue.
  • the back pressure waterline value includes an open back pressure waterline value and a closed back pressure waterline value
  • the waterline adjustment module 1270 is used for:
  • the minimum watermark threshold of the receiving end device the minimum watermark threshold of the receiving end device, the occupancy of the buffer space of the receiving end device by all priority queues lower than any priority, and the receiving end device Adjust the open back pressure waterline value of the queue of any priority for the occupation of the buffer space of the receiving end device by all the queues;
  • the closed back pressure waterline value of the queue of any priority is adjusted.
  • the occupancy of the buffer space of the receiving end device by the queue of any priority is negatively correlated with the occupancy of the buffer space of the receiving end device by all priority queues lower than the any priority.
  • the open back pressure waterline value of the queue of any priority is negatively correlated with the amount of buffer space occupied by the queue of any priority on the receiving end device;
  • the opening backpressure waterline value of the queue of any priority is greater than or equal to the opening backpressure waterline value of all priority queues lower than the any priority.
  • the waterline adjustment module 1270 is used to:
  • the waterline value formula is:
  • Vo_pri_k represents the open back pressure waterline value of the queue with priority pri_k
  • B_pri_i represents the amount of buffer space occupied by all queues of the priority pri_i on the receiving end device
  • B_total represents the buffer of all queues of the receiving end device on the receiving end device
  • V_max represents the maximum watermark threshold
  • V_min represents the minimum watermark threshold
  • the back pressure waterline value includes an open back pressure waterline value and a closed back pressure waterline value
  • the waterline adjustment module 1270 is used for:
  • the closed back pressure waterline value of the queue of any priority is adjusted.
  • the back pressure waterline value includes an open back pressure waterline value and a closed back pressure waterline value
  • the waterline adjustment module 1270 is used for:
  • M is an integer greater than 0;
  • the closed back pressure waterline value of the queue of any priority is adjusted.
  • the congestion control apparatus 1200 further includes:
  • the threshold adjustment module 1280 is used for the maximum occupancy of the buffer space of the receiving end device by all queues of the receiving end device within the target duration is greater than the minimum watermark threshold and less than the difference between the maximum waterline threshold and the first threshold, Or, when the maximum occupancy is greater than the difference between the maximum watermark threshold and the second threshold, the minimum watermark threshold is adjusted.
  • the receiving end device monitors multiple queues of the receiving end device, and when the first queue of the multiple queues of the receiving end device meets the preset opening index, a notification is sent
  • the end device enables congestion control on the target queue corresponding to the first queue in the sender device, and the sender device enables congestion control on the target queue according to the notification of the receiver device.
  • the congestion control method helps to solve the congestion problem of the current communication network, and helps to improve the resource utilization rate and transmission quality of the communication network.
  • FIG. 14 shows a schematic diagram of the logical structure of yet another congestion control apparatus 1400 provided by an embodiment of the present application.
  • the congestion control apparatus 1400 may be a functional component in a network device, and the network device may be the one in the foregoing embodiment.
  • the sending end device Referring to FIG. 14, the congestion control apparatus 1400 includes: a first receiving module 1410 and an opening module 1420.
  • the first receiving module 1410 and the opening module 1420 can be used to execute step 504 in the embodiment shown in FIG. 5.
  • the first receiving module 1410 is configured to receive a notification sent by the receiving end device to enable congestion control on the target queue of the sending end device, and each queue of the receiving end device corresponds to one or more queues in the sending end device, The target queue corresponds to the first queue of the receiving end device;
  • the opening module 1420 is configured to enable congestion control for the target queue of the sending end device according to the notification of the receiving end device.
  • the first receiving module 1410 is configured to receive a turn-on control message sent by a receiving end device, where the turn-on control message carries an identifier of the target queue and an enable flag bit;
  • the opening module 1420 is configured to determine the target queue according to the identifier of the target queue, and enable congestion control for the target queue according to the enable flag bit.
  • FIG. 15 shows a schematic diagram of the logical structure of another congestion control apparatus 1400 provided by an embodiment of the present application.
  • the congestion control apparatus 1400 further includes: The second receiving module 1430 and the closing module 1440 can be used to perform step 514 in the embodiment shown in FIG. 5.
  • the second receiving module 1430 is configured to receive a notification sent by the receiving end device to close the congestion control of the target queue of the sending end device;
  • the closing module 1440 is configured to close congestion control for the target queue of the sending end device according to the notification of the receiving end device.
  • the second receiving module 1430 is configured to receive a shutdown control message sent by the receiving end device, where the shutdown control message carries an identifier of the target queue and a disabling flag bit;
  • the closing module 1440 is configured to determine the target queue according to the identifier of the target queue, and turn off congestion control for the target queue according to the disable flag bit.
  • the congestion control apparatus 1400 further includes: a third receiving module 1450 and a sending module 1460.
  • the third receiving module 1450 and the sending module 1460 can be used to perform the embodiment shown in FIG. 5 ⁇ Steps 507 and 512.
  • the third receiving module 1450 is configured to receive the message containing the sending credit value sent by the receiving end device
  • the sending module 1460 is configured to send the message in the target queue to the receiving end device according to the sending credit value.
  • the receiving end device monitors multiple queues of the receiving end device, and when the first queue of the multiple queues of the receiving end device meets the preset opening index, a notification is sent
  • the end device enables congestion control on the target queue corresponding to the first queue in the sender device, and the sender device enables congestion control on the target queue according to the notification of the receiver device.
  • the congestion control method helps to solve the congestion problem of the current communication network, and helps to improve the resource utilization rate and transmission quality of the communication network.
  • the congestion control device provided in the above embodiment performs congestion control
  • only the division of the above-mentioned functional modules is used as an example for illustration.
  • the above-mentioned function allocation can be completed by different functional modules according to needs. That is, the internal structure of the device is divided into different functional modules to complete all or part of the functions described above.
  • the congestion control device provided in the foregoing embodiment and the congestion control method embodiment belong to the same concept, and the specific implementation process is detailed in the method embodiment, and will not be repeated here.
  • FIG. 16 shows a schematic diagram of the hardware structure of a congestion control apparatus 1600 provided by an embodiment of the present application.
  • the congestion control apparatus 1600 may be a network device, and the network device may be the sender device in the foregoing embodiment or At least one of the receiving end devices.
  • the congestion control apparatus 1600 includes a processor 1602, a memory 1604, a communication interface 1606, and a bus 1608.
  • the processor 1602, the memory 1604, and the communication interface 1606 are communicatively connected to each other through the bus 1608.
  • the connection manner between the processor 1602, the memory 1604, and the communication interface 1606 shown in FIG. 16 is only exemplary. In the implementation process, the processor 1602, the memory 1604, and the communication interface 1606 may also Use other connection methods other than the bus 1608 to communicate with each other.
  • the memory 1604 may be used to store instructions 16042 and data 16044.
  • the memory 1604 may be various types of storage media, such as random access memory (RAM), read-only memory (ROM), and non-volatile RAM (non-volatile RAM).
  • RAM random access memory
  • ROM read-only memory
  • non-volatile RAM non-volatile RAM
  • NVRAM non-volatile RAM
  • programmable ROM programmable ROM
  • PROM erasable PROM
  • EPROM electrically erasable PROM
  • flash memory optical memory and registers, etc.
  • the memory 1604 may include a hard disk and/or a memory.
  • the processor 1602 may be a general-purpose processor, and the general-purpose processor may be a processor that executes specific steps and/or operations by reading and executing instructions (for example, instructions 16042) stored in a memory (for example, the memory 1604).
  • the processor may use data (for example, data 16044) stored in the memory (for example, the memory 1604) in the process of performing the above steps and/or operations.
  • the general-purpose processor may be, for example, but not limited to, a central processing unit (CPU).
  • the processor 1602 may also be a dedicated processor.
  • the dedicated processor may be a processor specially designed to perform specific steps and/or operations.
  • the dedicated processor may be, for example, but not limited to, a digital signal processor ( Digital signal processor (DSP), application-specific integrated circuit (ASIC), field-programmable gate array (FPGA), etc.
  • DSP Digital signal processor
  • ASIC application-specific integrated circuit
  • FPGA field-programmable gate array
  • the processor 1602 may also be a combination of multiple processors, such as a multi-core processor.
  • the processor 1602 may include one or more circuits to execute all or part of the steps of the congestion control method provided in the foregoing embodiments.
  • the communication interface 1606 may include an input/output (I/O) interface, a physical interface, a logical interface, and other interfaces used to realize the interconnection of devices within the congestion control apparatus 1600, and to realize the congestion control apparatus 1600.
  • Interface for interconnection with other equipment such as network equipment or user equipment.
  • the physical interface can be a gigabit ethernet (GE), which can be used to realize the interconnection between the congestion control apparatus 1600 and other equipment (such as network equipment or user equipment), and the logical interface is an internal interface of the congestion control apparatus 1600. It can be used to realize the interconnection of devices within the congestion control apparatus 1600.
  • GE gigabit ethernet
  • the communication interface 1606 may be used for the congestion control apparatus 1600 to communicate with other network equipment and/or user equipment.
  • the communication interface 1606 is used for sending and receiving information between the congestion control apparatus 1600 and other network equipment.
  • the bus 1608 may be of any type, and is used to implement a communication bus interconnecting the processor 1602, the memory 1604, and the communication interface 1606, such as a system bus.
  • the above-mentioned devices may be respectively arranged on independent chips, or at least partly or fully arranged on the same chip. Whether each device is arranged independently on different chips or integrated on one or more chips often depends on the needs of product design.
  • the embodiment of the present application does not limit the specific implementation form of the foregoing device.
  • the congestion control apparatus 1600 shown in FIG. 16 is only exemplary. In the implementation process, the congestion control apparatus 1600 may also include other components, which will not be listed here.
  • the congestion control apparatus 1600 shown in FIG. 16 can control network congestion by executing all or part of the steps of the congestion control method provided in the above embodiment.
  • the embodiment of the present application provides a congestion control system.
  • the congestion control system may include the sending end device and the receiving end device in the foregoing embodiment.
  • the sending end device may include FIG. 14 or FIG.
  • the receiving end device may include the congestion control apparatus 1200 shown in FIG. 12 or FIG. 13.
  • at least one of the sending end device and the receiving end device may include the congestion control apparatus 1600 shown in FIG. 16.
  • FIG. 17 shows a schematic diagram of a congestion control system 1700 provided by an embodiment of the present application.
  • the congestion control system 1700 includes: a sending end device 1710 and a receiving end device 1720.
  • the receiving end device 1720 is used to monitor multiple queues of the receiving end device 1720, and each queue of the receiving end device 1720 corresponds to one or more queues in the sending end device 1710; when the receiving end device 1720 is When the first queue among the plurality of queues meets the preset opening index, the sending end device 1710 is notified to enable congestion control for the target queue corresponding to the first queue in the sending end device 1710; wherein, the preset opening index includes: The occupancy of the buffer space of the receiving end device 1720 by the multiple queues of the receiving end device 1720 reaches or exceeds the opening back pressure waterline value of the first queue;
  • the sending end device 1710 is configured to enable congestion control for the target queue corresponding to the first queue in the sending end device 1710 according to the notification of the receiving end device 1720.
  • the preset opening indicator further includes one or more of the following:
  • the first queue belongs to the N longest queues of the first priority among the multiple queues of the receiving end device 1720, the priority of the first queue is the first priority, and when the first priority is the multiple When the priority of the queue is the lowest priority, N is an integer greater than 0, and when the first priority is the non-lowest priority among the priorities of the multiple queues, N is an integer greater than or equal to 0;
  • the length of the first queue reaches or exceeds the preset length threshold.
  • the receiving end device 1720 is configured to send an opening control message to the sending end device 1710, where the opening control message instructs the sending end device 1710 to enable congestion control for the target queue.
  • the sending end device 1710 is configured to: receive the opening control message sent by the receiving end device 1710; and enable congestion control for the target queue according to the opening control message.
  • the receiving end device 1720 is further configured to: when the first queue meets a preset closing index, notify the sending end device 1710 to close congestion control for the target queue of the sending end device 1710; wherein, the preset The closing index includes: the amount of the buffer space occupied by the multiple queues of the receiving end device 1720 to the receiving end device 1720 is less than the closing backpressure waterline value of the first queue;
  • the sending end device 1710 is further configured to: turn off congestion control for the target queue of the sending end device 1710 according to the notification of the receiving end device 1720.
  • the preset closing indicator further includes one or more of the following:
  • the first queue does not belong to the N longest queues of the first priority among the multiple queues of the receiving end device 1720, the priority of the first queue is the first priority, and when the first priority is the multiple When the lowest priority among the priorities of the two queues, N is an integer greater than 0, and when the first priority is the non-lowest priority among the priorities of the multiple queues, N is an integer greater than or equal to 0;
  • the length of the first queue is less than the preset length threshold.
  • the receiving end device 1720 is further configured to: allocate a sending credit value to the target queue; sending a message containing the sending credit value to the sending end device 1710;
  • the sending end device 1710 is further configured to: receive a message containing a sending credit value sent by the receiving end device 1720; and send the message in the target queue to the receiving end device according to the sending credit value.
  • the receiving end device 1720 is further configured to adjust the distribution coefficient of the sending credit value of the target queue according to the amount of the buffer space occupied by the receiving end device 1720 by the multiple queues of the receiving end device 1720, and the allocation is The coefficient is negatively related to the occupancy of the buffer space of the receiving end device 1720 by the multiple queues of the receiving end device 1720.
  • each of the multiple queues of the receiving end device 1720 has a back pressure waterline value, and the back pressure waterline values of queues with different priorities are different, and the receiving end device 1720 is also used to: When the occupancy of the buffer space of the receiving end device 1720 by the multiple queues of the end device 1720 reaches or exceeds the minimum waterline threshold of the receiving end device 1720, the back pressure level of the queues of each priority of the receiving end device 1720 is adjusted. Line value.
  • the back pressure waterline value includes an open back pressure waterline value and a closed back pressure waterline value
  • the receiving end device 1720 is used to: for any priority queue:
  • the closed back pressure waterline value of the queue of any priority is adjusted.
  • the occupancy of the buffer space of the receiving end device 1720 by the queue of any priority and the occupancy of the buffer space of the receiving end device 1720 by the queues of all priorities lower than the any priority are negative.
  • the opening back pressure waterline value of the queue of any priority is negatively correlated with the amount of the buffer space occupied by the queue of any priority on the receiving end device 1720;
  • the opening backpressure waterline value of the queue of any priority is greater than or equal to the opening backpressure waterline value of all priority queues lower than the any priority.
  • the receiving end device 1720 is used to:
  • the occupancy of the buffer space of the receiving end device 1720 by all priority queues lower than any one of the priority levels, and all the queues of the receiving end device 1720 The amount of buffer space occupied by the receiving end device 1720 is calculated by using a waterline value formula to calculate the open backpressure waterline value of the queue of any priority;
  • the waterline value formula is:
  • Vo_pri_k represents the open backpressure waterline value of the queue with priority pri_k
  • B_pri_i represents the occupation of the buffer space of the receiving end device 1720 by all queues with priority pri_i
  • B_total represents the value of all queues of the receiving end device 1720.
  • the occupancy of the buffer space of the receiving end device 1720, V_max represents the maximum watermark threshold, and V_min represents the minimum watermark threshold.
  • the back pressure waterline value includes an open back pressure waterline value and a closed back pressure waterline value
  • the receiving end device 1720 is used to: for any priority queue:
  • the opening back pressure waterline value of the queue is negatively correlated with the amount of the buffer space occupied by the receiving end device 1720 by all queues of any one of the priority levels;
  • the closed back pressure waterline value of the queue of any priority is adjusted.
  • the back pressure waterline value includes an open back pressure waterline value and a closed back pressure waterline value
  • the receiving end device 1720 is used to: for any priority queue:
  • the M is an integer greater than 0;
  • the closed back pressure waterline value of the queue of any priority is adjusted.
  • the receiving end device 1720 is further configured to: within the target duration, the maximum occupancy of all queues of the receiving end device 1720 to the buffer space of the receiving end device 1720 is greater than the minimum waterline threshold and less than the maximum waterline The difference between the threshold and the first threshold, or when the maximum occupancy is greater than the difference between the maximum watermark threshold and the second threshold, adjust the minimum watermark threshold.
  • the receiving end device monitors multiple queues of the receiving end device, and when the first queue of the multiple queues of the receiving end device meets the preset opening index, the notification is sent.
  • the end device enables congestion control on the target queue corresponding to the first queue in the sender device, and the sender device enables congestion control on the target queue according to the notification of the receiver device.
  • the congestion control method helps to solve the congestion problem of the current communication network, and helps to improve the resource utilization rate and transmission quality of the communication network.
  • the embodiment of the present application provides a computer-readable storage medium in which a computer program is stored, and when the computer program is executed by a processor, it implements all or part of the congestion control method provided by the embodiment shown in FIG. 5 step.
  • the embodiment of the present application provides a computer program product containing instructions.
  • the computer program product runs on a computer, the computer executes all or part of the steps of the congestion control method provided by the embodiment shown in FIG. 5.
  • the embodiment of the present application provides a chip that includes a programmable logic circuit and/or program instructions, and when the chip is running, it is used to implement all or part of the steps of the congestion control method provided by the embodiment shown in FIG. 5.
  • the sending end device and the receiving end device can be on the same physical device or virtual device, that is, the device has sending and receiving functions, which can perform all operations or steps of the sending end device, and can also execute the receiving end device. All operations or steps.
  • the program can be stored in a computer-readable storage medium.
  • the storage medium mentioned can be a read-only memory, a magnetic disk or an optical disk, etc.

Landscapes

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

Abstract

Disclosed are a congestion control method, apparatus and system, and a storage medium, belonging to the technical field of networks. The method comprises: a receiving-end device monitoring a plurality of queues of the receiving-end device, and notifying, when a first queue of the plurality of queues of the receiving-end device satisfies a preset start index, a sending-end device to start congestion control for a target queue, which corresponds to the first queue, in the sending-end device, wherein the preset start index comprises the amount of a cache space of the receiving-end device occupied by a plurality of queues of the receiving-end device reaching or exceeding a start back-pressure waterline value of the first queue. The present application facilitates solving the congestion problem of the current communication network, and facilitates an improvement in the resource utilization rate and the transmission quality of the communication network.

Description

拥塞控制方法、装置及系统、存储介质Congestion control method, device, system and storage medium
本申请要求于2020年01月19日提交的申请号为202010060644.5、发明名称为“拥塞控制方法、装置及系统、存储介质”的专利申请、以及于2020年01月22日提交的申请号为202010075761.9、申请名称为“拥塞控制方法、装置及系统、存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application requires a patent application filed on January 19, 2020 with an application number of 202010060644.5 and an invention title of "Congestion Control Method, Device and System, and Storage Medium", and the application number filed on January 22, 2020 as 202010075761.9 1. The priority of the Chinese patent application titled "Congestion Control Method, Device and System, Storage Medium", the entire content of which is incorporated into this application by reference.
技术领域Technical field
本申请涉及网络技术领域,特别涉及一种拥塞控制方法、装置及系统、存储介质。This application relates to the field of network technology, and in particular to a congestion control method, device and system, and storage medium.
背景技术Background technique
通信网络通常包括多个网络设备,网络设备通过转发工作站(例如主机或服务器等)的报文,实现不同工作站之间的通信。其中,网络设备通常具有多个出端口,每个出端口具有多个不同优先级的队列,每个出端口的一个队列用于缓存需要经由该出端口转发的一种优先级的报文。网络设备对于接收到的每个报文,通常会将该报文缓存至与该报文匹配的队列,并以一定速率发送该队列中的报文。A communication network usually includes multiple network devices, and the network devices implement communication between different workstations by forwarding messages from workstations (for example, a host or a server, etc.). Among them, a network device usually has multiple egress ports, each egress port has multiple queues with different priorities, and one queue of each egress port is used to buffer a message of a priority that needs to be forwarded via the egress port. For each received message, the network device usually buffers the message into a queue matching the message, and sends the messages in the queue at a certain rate.
随着通信网络规模的扩大以及视频、高性能云计算和消费者云业务等各种应用的普及,网络设备需要转发的流量(例如报文的数量)暴涨,网络拥塞成为通信网络面临的主要难题。网络拥塞会导致通信网络的资源利用率以及传输质量降低,甚至导致通信网络瘫痪,因此亟需一种拥塞控制方案对通信网络进行拥塞控制。With the expansion of the scale of communication networks and the popularization of various applications such as video, high-performance cloud computing and consumer cloud services, the traffic (such as the number of packets) that network devices need to forward has skyrocketed, and network congestion has become a major problem faced by communication networks. . Network congestion will cause the resource utilization rate and transmission quality of the communication network to decrease, and even cause the communication network to be paralyzed. Therefore, a congestion control scheme is urgently needed to control the congestion of the communication network.
发明内容Summary of the invention
本申请实施例提供了一种拥塞控制方法、装置及系统、存储介质。技术方案如下:The embodiments of the present application provide a congestion control method, device, system, and storage medium. The technical solutions are as follows:
第一方面,提供了一种拥塞控制方法,该方法包括:监控接收端设备的多个队列,该接收端设备的每个队列与发送端设备中的一个或多个队列对应;当该接收端设备的多个队列中的第一队列满足预设开启指标时,通知该发送端设备对该发送端设备中与该第一队列对应的目标队列开启拥塞控制;其中,该预设开启指标包括:该接收端设备的多个队列对该接收端设备的缓存空间的占用量达到或超出该第一队列的开启反压水线值。In a first aspect, a congestion control method is provided. The method includes: monitoring multiple queues of a receiving end device, each queue of the receiving end device corresponds to one or more queues in the sending end device; when the receiving end device When the first queue of the multiple queues of the device meets the preset opening index, the sending end device is notified to enable congestion control for the target queue corresponding to the first queue in the sending end device; wherein the preset opening index includes: The occupancy of the buffer space of the receiving end device by the multiple queues of the receiving end device reaches or exceeds the opening back pressure waterline value of the first queue.
本申请实施例提供的技术方案,接收端设备在第一队列满足预设开启指标时通知发送端设备对该发送端设备中与该第一队列对应的目标队列开启拥塞控制,该拥塞控制方案有助于解决目前通信网络的拥塞问题,有助于提高通信网络的资源利用率以及传输质量,并且该拥塞控制方案的灵活性较高,可以保证通信网络的吞吐量。In the technical solution provided by the embodiment of the present application, the receiving end device notifies the sending end device to enable congestion control for the target queue corresponding to the first queue in the sending end device when the first queue meets the preset opening index. The congestion control solution has It helps to solve the congestion problem of the current communication network, and helps to improve the resource utilization rate and transmission quality of the communication network. In addition, the congestion control scheme has high flexibility and can ensure the throughput of the communication network.
可选地,该预设开启指标还包括以下一个或多个:Optionally, the preset opening indicator further includes one or more of the following:
该第一队列属于该接收端设备的多个队列中第一优先级的N个最长队列,该第一队列的优先级为该第一优先级,当该第一优先级为该多个队列的优先级中的最低优先级时,N为大于0的整数,当该第一优先级为该多个队列的优先级中的非最低优先级时,N为大于或等于0的整数;The first queue belongs to the N longest queues of the first priority among the multiple queues of the receiving end device, the priority of the first queue is the first priority, and when the first priority is the multiple queues When the lowest priority among the priorities of, N is an integer greater than 0, and when the first priority is the non-lowest priority among the priorities of the multiple queues, N is an integer greater than or equal to 0;
该第一队列的长度达到或超过预设长度阈值。The length of the first queue reaches or exceeds the preset length threshold.
其中,该预设长度阈值可以是该接收端设备的所有队列的长度的均值,第一优先级的N个最长队列也即是该第一优先级的所有队列中的topN个最长队列,该N个最长队列的长度可以相等也可以不相等,该第一优先级的N个最长队列的含义可以是:如果按照长度从大到小的顺序对该第一优先级的所有队列排序,该第一优先级的N个最长队列可以是该第一优先级的所有队列中排序在最前面的N个队列;如果按照长度从小到大的顺序对该第一优先级的所有队列排序,该第一优先级的N个最长队列可以是该第一优先级的所有队列中排序在最后面的N个队列。Wherein, the preset length threshold may be the average value of the lengths of all queues of the receiving end device, and the N longest queues of the first priority are the topN longest queues among all the queues of the first priority. The lengths of the N longest queues may be equal or unequal. The meaning of the N longest queues of the first priority may be: if all the queues of the first priority are sorted according to the order of length from largest to smallest , The N longest queues of the first priority can be the first N queues among all the queues of the first priority; if all the queues of the first priority are sorted according to the order of length from smallest to largest , The N longest queues of the first priority may be the last N queues among all the queues of the first priority.
本申请实施例提供的技术方案,当预设开启指标包括:接收端设备的多个队列对该接收端设备的缓存空间的占用量达到或超出第一队列的开启反压水线值,该第一队列属于该接收端设备的多个队列中第一优先级的N个最长队列,且该第一队列的长度达到或超过预设长度阈值时,可以保证对最长队列反压,从而保证拥塞控制的可靠性。In the technical solution provided by the embodiment of the present application, when the preset opening index includes: the buffer space occupied by the multiple queues of the receiving end device on the receiving end device reaches or exceeds the open backpressure waterline value of the first queue, the first queue When a queue belongs to the N longest queues of the first priority among the multiple queues of the receiving end device, and the length of the first queue reaches or exceeds the preset length threshold, the longest queue can be guaranteed to be back pressured, thereby ensuring Reliability of congestion control.
在本申请实施例中,可以按照优先级的高低确定是否进行反压控制以及根据优先级的高低确定需要反压的队列的数量,对于优先级最高的队列,可以不进行反压,如果需要同时反压多个不同优先级的队列,需要反压的该多个优先级的队列的数量可以按照该多个优先级从低到高依次减小,也即是,优先级越低,反压的队列的数量越多,优先级越高,反压的队列的数量越高。示例地,接收端设备具有pri_1~pri_8(也即是pri_1、pri_2、pri_3、pri_4、pri_5、pri_6、pri_7和pri_8)这8个优先级的队列,pri_1~pri_8这8个优先级依次升高,对于优先级为pri_8的队列,可以不设置反压水线值,从而可以不对该pri_8的队列进行反压(当然也可以对优先级为pri_8的队列设置反压水线值以用于反压)。再示例地,假设需要同时反压pri_2和pri_3这两个不同优先级的队列,pri_3高于pri_2,则需要反压的队列中,优先级为pri_2的队列的数量可以大于优先级为pri_3的队列的数量。例如,优先级为pri_2的队列的数量可以为g,优先级为pri_3的队列的数量可以为0.8×g。在一些实施例中,需要反压的队列中,最低优先级的队列包括4个最长队列,中优先级的队列包括4个最长队列,最高优先级的队列可以包括2个或0个最长队列。在该场景下,可以优先对低优先级的最长队列开启拥塞控制(也即是反压),保证较高优先级的队列的时延和吞吐量。In the embodiment of the present application, it is possible to determine whether to perform back pressure control according to the priority level and determine the number of queues that need back pressure according to the priority level. For the queue with the highest priority, back pressure may not be performed. Back pressure multiple queues with different priorities, the number of queues with multiple priorities that need back pressure can be reduced from low to high according to the multiple priorities, that is, the lower the priority, the lower the priority. The greater the number of queues, the higher the priority and the higher the number of back-pressure queues. For example, the receiving end device has 8 priority queues of pri_1 to pri_8 (that is, pri_1, pri_2, pri_3, pri_4, pri_5, pri_6, pri_7, and pri_8), and the 8 priorities of pri_1 to pri_8 are sequentially increased. For the queue with priority pri_8, the back pressure waterline value may not be set, so that the pri_8 queue may not be back pressured (of course, the back pressure waterline value can also be set for the queue with priority pri_8 for back pressure) . For another example, suppose that two queues with different priorities, pri_2 and pri_3, need to be back-pressured at the same time, and pri_3 is higher than pri_2, then in the queue that needs back-pressure, the number of queues with priority pri_2 can be greater than the queue with priority pri_3 quantity. For example, the number of queues with priority pri_2 may be g, and the number of queues with priority pri_3 may be 0.8×g. In some embodiments, among the queues that require back pressure, the lowest priority queue includes 4 longest queues, the medium priority queue includes 4 longest queues, and the highest priority queue may include 2 or 0 longest queues. Long queue. In this scenario, congestion control (that is, back pressure) can be turned on first for the longest queue with a low priority to ensure the delay and throughput of the queue with a higher priority.
可选地,通知发送端设备对该发送端设备中与第一队列对应的目标队列开启拥塞控制,包括:向发送端设备发送开启控制消息,该开启控制消息指示该发送端设备对目标队列开启拥塞控制。其中,该开启控制消息可以携带目标队列的标识和使能标志位,该目标队列的标识指示该目标队列,该使能标志位指示发送端设备开启拥塞控制,从而该开启控制消息指示发送端设备对目标队列开启拥塞控制。可选地,接收端设备可以以广播的形式向发送端设备发送该开启控制消息。Optionally, notifying the sending end device to enable congestion control for the target queue corresponding to the first queue in the sending end device includes: sending an opening control message to the sending end device, the opening control message instructing the sending end device to open the target queue Congestion control. Wherein, the opening control message may carry the identifier of the target queue and an enable flag bit, the identifier of the target queue indicates the target queue, and the enable flag bit instructs the sending end device to enable congestion control, so that the opening control message instructs the sending end device Turn on congestion control for the target queue. Optionally, the receiving end device may send the activation control message to the sending end device in a broadcast form.
可选地,在通知发送端设备对该发送端设备中与第一队列对应的目标队列开启拥塞控制之后,该方法还包括:当该第一队列满足预设关闭指标时,通知该发送端设备对该发送端设备的该目标队列关闭拥塞控制;其中,该预设关闭指标包括:该接收端设备的多个队列对该接收端设备的缓存空间的占用量小于该第一队列的关闭反压水线值。Optionally, after notifying the sending end device to enable congestion control on the target queue corresponding to the first queue in the sending end device, the method further includes: when the first queue meets a preset closing index, notifying the sending end device The congestion control is turned off for the target queue of the sending end device; wherein the preset closing index includes: the multiple queues of the receiving end device occupy less than the closing back pressure of the first queue for the buffer space of the receiving end device Watermark value.
本申请实施例提供的技术方案,接收端设备在第一队列满足预设关闭指标时通知发送端设备对该发送端设备中与该第一队列对应的目标队列关闭拥塞控制,可以提高拥塞控制的灵活性,保证通信网络的吞吐量。In the technical solution provided by the embodiment of the present application, the receiving end device notifies the sending end device to close the congestion control for the target queue corresponding to the first queue in the sending end device when the first queue meets the preset closing index, which can improve the congestion control performance. Flexibility to ensure the throughput of the communication network.
可选地,该预设关闭指标还包括以下一个或多个:Optionally, the preset closing indicator further includes one or more of the following:
该接收端设备的多个队列对接收端设备的缓存空间的占用量小于第一队列的关闭反压水线值的时长达到或超过预设时长阈值;The multiple queues of the receiving end device occupy the buffer space of the receiving end device less than the closing backpressure waterline value of the first queue for a duration that reaches or exceeds a preset duration threshold;
该第一队列不属于该接收端设备的多个队列中第一优先级的N个最长队列,该第一队列的优先级为该第一优先级,当该第一优先级为该多个队列的优先级中的最低优先级时,N为大于0的整数,当该第一优先级为该多个队列的优先级中的非最低优先级时,N为大于或等于0的整数;The first queue does not belong to the N longest queues of the first priority among the multiple queues of the receiving end device, the priority of the first queue is the first priority, and when the first priority is the multiple When the priority of the queue is the lowest priority, N is an integer greater than 0, and when the first priority is the non-lowest priority among the priorities of the multiple queues, N is an integer greater than or equal to 0;
该第一队列的长度小于预设长度阈值。The length of the first queue is less than the preset length threshold.
可选地,在通知发送端设备对该发送端设备中与该第一队列对应的目标队列开启拥塞控制之后,该方法还包括:为该目标队列分配发送信用值;向发送端设备发送包含该发送信用值的消息,以使该发送端设备按照该发送信用值向该接收端设备发送该目标队列中的报文。Optionally, after notifying the sending end device to enable congestion control for the target queue corresponding to the first queue in the sending end device, the method further includes: allocating a sending credit value to the target queue; Sending a message with a credit value, so that the sending end device sends the message in the target queue to the receiving end device according to the sending credit value.
本申请实施例提供的技术方案,发送端设备按照接收端设备为目标队列分配发送信用值,发送目标队列中的报文,可以在发送端设备中对拥塞进行主动控制。According to the technical solution provided by the embodiments of the present application, the sending end device allocates sending credit values for the target queue according to the receiving end device, and sending the packets in the target queue, which can actively control congestion in the sending end device.
可选地,该方法还包括:根据该接收端设备的多个队列对接收端设备的缓存空间的占用量,调整该目标队列的发送信用值的分配系数,该分配系数与该接收端设备的多个队列对该接收端设备的缓存空间的占用量负相关。Optionally, the method further includes: adjusting the distribution coefficient of the sending credit value of the target queue according to the occupancy of the multiple queues of the receiving-end device on the buffer space of the receiving-end device, and the distribution coefficient is different from the distribution coefficient of the receiving-end device. The multiple queues are negatively correlated with the occupancy of the buffer space of the receiving device.
本申请实施例提供的技术方案,接收端设备根据接收端设备的多个队列对该接收端设备的缓存空间的占用量调整该目标队列的发送信用值的分配系数,这样一来,接收端设备可以以调整后的分配系数为该目标队列分配发送信用值,接收端设备每次为目标队列分配发送信用值时,以当前时刻目标队列的发送信用值的分配系数为该目标队列分配发送信用值,可以提高发送信用值分配的灵活性,使得发送端设备根据接收端设备的缓存空间的被占用量对拥塞进行灵活控制。According to the technical solution provided by the embodiment of the present application, the receiving end device adjusts the distribution coefficient of the sending credit value of the target queue according to the amount of the buffer space occupied by the receiving end device by the multiple queues of the receiving end device. In this way, the receiving end device The target queue can be assigned a sending credit value based on the adjusted distribution coefficient. Each time the receiving end device allocates a sending credit value to the target queue, the target queue is assigned a sending credit value based on the distribution coefficient of the sending credit value of the target queue at the current moment. , Can improve the flexibility of sending credit allocation, so that the sending end device can flexibly control congestion according to the occupied amount of the buffer space of the receiving end device.
可选地,该接收端设备的多个队列中的每个队列具有反压水线值,不同优先级的队列的反压水线值不同,该方法还包括:当该接收端设备的多个队列对接收端设备的缓存空间的占用量达到或超出该接收端设备的最小水线阈值时,调整该接收端设备的各个优先级的队列的反压水线值。Optionally, each queue of the multiple queues of the receiving end device has a back pressure waterline value, and the back pressure waterline values of queues of different priorities are different, and the method further includes: when multiple queues of the receiving end device When the occupancy of the buffer space of the receiving end device by the queue reaches or exceeds the minimum watermark threshold of the receiving end device, the back pressure waterline value of the queue of each priority of the receiving end device is adjusted.
本申请实施例提供的技术方案,接收端设备通过调整各个优先级的队列的反压水线值,使得能够以调整后的反压水线值为依据判断接收端设备是否拥塞,也即是,接收端设备每次判断是否拥塞时,以当前时刻的反压水线值进行判断,有助于提高拥塞控制的灵活性。In the technical solution provided by the embodiments of the present application, the receiving end device adjusts the backpressure waterline value of each priority queue, so that the adjusted backpressure waterline value can be used to determine whether the receiving end device is congested, that is, Each time the receiving end device judges whether it is congested, it uses the current back pressure waterline value to make the judgment, which helps to improve the flexibility of congestion control.
可选地,该反压水线值包括开启反压水线值和关闭反压水线值,调整接收端设备的各个优先级的队列的反压水线值,包括:对于任一优先级的队列:根据接收端设备的最大水线阈值、该接收端设备的最小水线阈值,低于该任一优先级的所有优先级的队列对该接收端设备的缓存空间的占用量,以及该接收端设备的所有队列对该接收端设备的缓存空间的占用量,调整该任一优先级的队列的开启反压水线值;根据该任一优先级的队列的开启反压水线值,调整该任一优先级的队列的关闭反压水线值。Optionally, the backpressure waterline value includes an open backpressure waterline value and a backpressure waterline value off, and the adjustment of the backpressure waterline value of each priority queue of the receiving end device includes: for any priority Queue: According to the maximum watermark threshold of the receiving end device, the minimum watermark threshold of the receiving end device, the occupancy of the buffer space of the receiving end device by all priority queues lower than any priority, and the receiving end device Adjust the open back pressure waterline value of the queue of any priority for the occupancy of all queues of the end device to the buffer space of the receiving end device; adjust according to the open back pressure waterline value of the queue of any priority The closed backpressure waterline value of the queue of any priority.
可选地,任一优先级的队列对接收端设备的缓存空间的占用量与低于该任一优先级的所有优先级的队列对该接收端设备的缓存空间的占用量负相关,该任一优先级的队列的开启反压水线值与该任一优先级的队列对该接收端设备的缓存空间的占用量负相关;该任一优先级的队列的开启反压水线值大于或等于低于该任一优先级的所有优先级的队列的开启反压水线 值。也即是,如果低于任一优先级的所有优先级的队列对接收端设备的缓存空间的占用量较大,则该任一优先级的队列对接收端设备的缓存空间的占用量相对较小,该任一优先级的队列越不容易反压,该任一优先级的队列的开启反压水线值越大,优先级越高的队列,开启反压水线值越大,优先级越低的队列,开启反压水线值越小。在一些实施例中,高优先级的最长队列的数量少于低优先级的最长队列的数量,在另一些实施例中,高优先级的最长队列的数量可以是0。Optionally, the occupancy of the buffer space of the receiving end device by the queue of any priority is negatively correlated with the occupancy of the buffer space of the receiving end device by all priority queues lower than the any priority. The opening backpressure waterline value of a priority queue is negatively related to the amount of buffer space occupied by the receiving end device by the queue of any priority; the opening backpressure waterline value of the queue of any priority is greater than or It is equal to the open back pressure waterline value of all priority queues lower than any one of the priority levels. That is, if queues of all priority levels lower than any priority occupies a large amount of buffer space of the receiving end device, the queue of any priority level occupies a relatively large amount of buffer space of the receiving end device. Smaller, the queues of any priority are less likely to be back pressured, the higher the back pressure waterline value of the queue of any priority is, the higher the priority queue, the higher the back pressure waterline value is, the priority is The lower the queue, the smaller the opening back pressure waterline value. In some embodiments, the number of longest queues with high priority is less than the number of longest queues with low priority. In other embodiments, the number of longest queues with high priority may be zero.
本申请实施例提供的技术方案,由于任一优先级的队列对接收端设备的缓存空间的占用量与低于该任一优先级的所有优先级的队列对该接收端设备的缓存空间的占用量负相关,该任一优先级的队列的开启反压水线值与该任一优先级的队列对该接收端设备的缓存空间的占用量负相关,该任一优先级的队列的开启反压水线值大于或等于低于该任一优先级的所有优先级的队列的开启反压水线值,因此,该任一优先级的队列的开启反压水线值与低于该任一优先级的所有优先级的队列对该接收端设备的缓存空间的占用量正相关,该任一优先级的队列的开启反压水线值与低于该任一优先级的所有优先级的队列的开启反压水线值正相关,这样一来,可以避免高优先级的队列过早受控影响高优先级的队列的性能,又可以避免高优先级的队列受控过晚。The technical solution provided by the embodiment of the present application is due to the occupancy of the buffer space of the receiving end device by a queue of any priority and the occupancy of the buffer space of the receiving end device by all priority queues lower than the any priority. The opening back pressure waterline value of the queue of any priority is negatively correlated with the amount of buffer space occupied by the receiving end device by the queue of any priority. The opening of the queue of any priority is negatively correlated. The pressure waterline value is greater than or equal to the open backpressure waterline value of all priority queues lower than the any priority. Therefore, the open backpressure waterline value of the queue of any priority is the same as the one that is lower than any one of the priority queues. All priority queues of priority are positively correlated to the amount of buffer space occupied by the receiving device, and the open backpressure waterline value of any priority queue is related to all priority queues lower than any priority. The open back pressure waterline value of is positively correlated. In this way, it can prevent the high priority queue from being controlled too early to affect the performance of the high priority queue, and it can also prevent the high priority queue from being controlled too late.
可选地,根据接收端设备的最大水线阈值、该接收端设备的最小水线阈值,低于该任一优先级的所有优先级的队列对该接收端设备的缓存空间的占用量,以及该接收端设备的所有队列对该接收端设备的缓存空间的占用量,调整该任一优先级的队列的开启反压水线值,包括:根据该最大水线阈值、该最小水线阈值,低于该任一优先级的所有优先级的队列对该接收端设备的缓存空间的占用量,以及该接收端设备的所有队列对该接收端设备的缓存空间的占用量,采用水线值公式计算该任一优先级的队列的开启反压水线值;根据计算结果调整该任一优先级的队列的开启反压水线值;其中,该水线值公式为:Optionally, according to the maximum watermark threshold of the receiving end device, the minimum watermark threshold of the receiving end device, the occupancy of the buffer space of the receiving end device by all priority queues lower than any one of the priorities, and Adjusting the open back pressure waterline value of the queue of any priority for the occupancy of all queues of the receiving end device to the buffer space of the receiving end device, including: according to the maximum waterline threshold and the minimum waterline threshold, The occupancy of the buffer space of the receiving-end device by all queues with a priority lower than any priority, and the occupancy of the buffer space of the receiving-end device by all queues of the receiving-end device, using the watermark formula Calculate the opening backpressure waterline value of the queue of any priority; adjust the opening backpressure waterline value of the queue of any priority according to the calculation result; where the waterline value formula is:
Figure PCTCN2021072574-appb-000001
Figure PCTCN2021072574-appb-000001
Vo_pri_k表示优先级为pri_k的队列的开启反压水线值,B_pri_i表示优先级为pri_i的所有队列对接收端设备的缓存空间的占用量,B_total表示接收端设备的所有队列对接收端设备的缓存空间的占用量,V_max表示最大水线阈值,V_min表示最小水线阈值。Vo_pri_k represents the open back pressure waterline value of the queue with priority pri_k, B_pri_i represents the amount of buffer space occupied by all queues of the priority pri_i on the receiving end device, and B_total represents the buffer of all queues of the receiving end device on the receiving end device The amount of space occupied, V_max represents the maximum watermark threshold, and V_min represents the minimum watermark threshold.
可选地,该反压水线值包括开启反压水线值和关闭反压水线值,调整该接收端设备的各个优先级的队列的反压水线值,包括:对于任一优先级的队列:根据该任一优先级的所有队列对该接收端设备的缓存空间的占用量以及该缓存空间的大小,调整该任一优先级的队列的开启反压水线值,该任一优先级的队列的开启反压水线值与该任一优先级的所有队列对该接收端设备的缓存空间的占用量负相关;根据该任一优先级的队列的开启反压水线值,调整该任一优先级的队列的关闭反压水线值。Optionally, the backpressure waterline value includes an open backpressure waterline value and a backpressure waterline value off, and the adjustment of the backpressure waterline value of each priority queue of the receiving end device includes: for any priority Queue: According to the occupancy of the buffer space of the receiving end device by all queues of any priority and the size of the buffer space, adjust the opening back pressure waterline value of the queue of any priority. The open backpressure waterline value of the queue of any priority is negatively related to the amount of buffer space occupied by all queues of any priority level on the receiving end device; adjust according to the open backpressure waterline value of the queue of any priority The closed backpressure waterline value of the queue of any priority.
可选地,该反压水线值包括开启反压水线值和关闭反压水线值,调整该接收端设备的各个优先级的队列的反压水线值,包括:对于任一优先级的队列:根据该任一优先级的M个最长队列的时延均值和该接收端设备的所有优先级的所有最长队列的时延均值,调整该任一优先级的队列的开启反压水线值,M为大于0的整数;根据该任一优先级的队列的开启反压水 线值,调整该任一优先级的队列的关闭反压水线值。Optionally, the backpressure waterline value includes an open backpressure waterline value and a backpressure waterline value off, and the adjustment of the backpressure waterline value of each priority queue of the receiving end device includes: for any priority Queue: According to the average delay of the M longest queues of any priority and the average delay of all the longest queues of all priorities of the receiving end device, adjust the opening backpressure of the queue of any priority Watermark value, M is an integer greater than 0; according to the open backpressure waterline value of the queue of any priority, the closed backpressure waterline value of the queue of any priority is adjusted.
可选地,该方法还包括:在目标时长内接收端设备的所有队列对该接收端设备的缓存空间的最大占用量大于该最小水线阈值且小于该最大水线阈值与第一门限值的差值,或者,该最大占用量大于该最大水线阈值与第二门限值的差值时,调整该最小水线阈值。Optionally, the method further includes: the maximum occupancy of the buffer space of the receiving end device by all queues of the receiving end device within the target duration is greater than the minimum watermark threshold and less than the maximum watermark threshold and the first threshold value Or, when the maximum occupancy is greater than the difference between the maximum watermark threshold and the second threshold, the minimum watermark threshold is adjusted.
本申请实施例提供的技术方案,通过调整最小水线阈值,可以尽量避免或减少主动拥塞控制,保证高吞吐,低时延。In the technical solution provided by the embodiments of the present application, by adjusting the minimum watermark threshold, active congestion control can be avoided or reduced as much as possible, and high throughput and low latency can be ensured.
第二方面,提供了一种拥塞控制方法,该方法包括:根据接收端设备的通知对发送端设备的目标队列开启拥塞控制,该接收端设备的每个队列与该发送端设备中的一个或多个队列对应,该目标队列与该接收端设备的第一队列对应;其中,该接收端设备在该第一队列满足预设开启指标时通知该发送端设备对该目标队列开启拥塞控制,该预设开启指标包括:该接收端设备的多个队列对该接收端设备的缓存空间的占用量达到或超出该第一队列的开启反压水线值。In a second aspect, a congestion control method is provided. The method includes: enabling congestion control on a target queue of a sending end device according to a notification from a receiving end device, each queue of the receiving end device and one of the sending end device or Corresponding to multiple queues, and the target queue corresponds to the first queue of the receiving end device; wherein the receiving end device notifies the sending end device to enable congestion control for the target queue when the first queue meets a preset opening index, and The preset opening index includes: the amount of the buffer space of the receiving end device occupied by the multiple queues of the receiving end device reaches or exceeds the open back pressure waterline value of the first queue.
本申请实施例提供的技术方案,接收端设备在第一队列满足预设开启指标时通知发送端设备对该发送端设备中与该第一队列对应的目标队列开启拥塞控制,该拥塞控制方案有助于解决目前通信网络的拥塞问题,有助于提高通信网络的资源利用率以及传输质量,并且该拥塞控制方案的灵活性较高,可以保证通信网络的吞吐量。In the technical solution provided by the embodiment of the present application, the receiving end device notifies the sending end device to enable congestion control for the target queue corresponding to the first queue in the sending end device when the first queue meets the preset opening index. The congestion control solution has It helps to solve the congestion problem of the current communication network, and helps to improve the resource utilization rate and transmission quality of the communication network. In addition, the congestion control scheme has high flexibility and can ensure the throughput of the communication network.
可选地,该预设开启指标还包括以下一个或多个:Optionally, the preset opening indicator further includes one or more of the following:
该第一队列属于该接收端设备的多个队列中第一优先级的N个最长队列,该第一队列的优先级为该第一优先级,当该第一优先级为该多个队列的优先级中的最低优先级时,N为大于0的整数,当该第一优先级为该多个队列的优先级中的非最低优先级时,N为大于或等于0的整数;The first queue belongs to the N longest queues of the first priority among the multiple queues of the receiving end device, the priority of the first queue is the first priority, and when the first priority is the multiple queues When the lowest priority among the priorities of, N is an integer greater than 0, and when the first priority is the non-lowest priority among the priorities of the multiple queues, N is an integer greater than or equal to 0;
该第一队列的长度达到或超过预设长度阈值。The length of the first queue reaches or exceeds the preset length threshold.
本申请实施例提供的技术方案,当预设开启指标包括:接收端设备的多个队列对该接收端设备的缓存空间的占用量达到或超出第一队列的开启反压水线值,该第一队列属于该接收端设备的多个队列中第一优先级的N个最长队列,且该第一队列的长度达到或超过预设长度阈值时,可以保证对最长队列反压,从而保证拥塞控制的可靠性。In the technical solution provided by the embodiment of the present application, when the preset opening index includes: the buffer space occupied by the multiple queues of the receiving end device on the receiving end device reaches or exceeds the open backpressure waterline value of the first queue, the first queue When a queue belongs to the N longest queues of the first priority among the multiple queues of the receiving end device, and the length of the first queue reaches or exceeds the preset length threshold, the longest queue can be guaranteed to be back pressured, thereby ensuring Reliability of congestion control.
可选地,根据接收端设备的通知对发送端设备的目标队列开启拥塞控制,包括:接收接收端设备发送的开启控制消息,该开启控制消息指示发送端设备对目标队列开启拥塞控制;根据该开启控制消息对该目标队列开启拥塞控制。其中,该开启控制消息可以携带目标队列的标识和使能标志位,该目标队列的标识指示该目标队列,该使能标志位指示发送端设备开启拥塞控制,从而该开启控制消息指示发送端设备对目标队列开启拥塞控制。发送端设备可以解析该开启控制消息得到使能标志位以及目标队列的标识,根据该使能标志位确定需要开启拥塞控制,根据目标队列的标识确定目标队列,从而根据该开启控制消息对该目标队列开启拥塞控制。Optionally, enabling congestion control on the target queue of the sending end device according to the notification of the receiving end device includes: receiving an open control message sent by the receiving end device, the open control message instructing the sending end device to open congestion control on the target queue; The enable control message enables congestion control on the target queue. Wherein, the opening control message may carry the identifier of the target queue and an enable flag bit, the identifier of the target queue indicates the target queue, and the enable flag bit instructs the sending end device to enable congestion control, so that the opening control message instructs the sending end device Turn on congestion control for the target queue. The sending end device can parse the enable control message to obtain the enable flag and the target queue identifier, determine the need to enable congestion control according to the enable flag bit, determine the target queue according to the target queue identifier, and then determine the target queue according to the enable control message. The queue turns on congestion control.
可选地,在根据接收端设备的通知对发送端设备的目标队列开启拥塞控制之后,该方法还包括:根据接收端设备的通知对发送端设备的目标队列关闭拥塞控制;其中,接收端设备在第一队列满足预设关闭指标时通知发送端设备对目标队列关闭拥塞控制,该预设关闭指标包括:该接收端设备的多个队列对该接收端设备的缓存空间的占用量小于第一队列的关闭反压水线值。Optionally, after enabling congestion control on the target queue of the sending end device according to the notification of the receiving end device, the method further includes: turning off congestion control on the target queue of the sending end device according to the notification of the receiving end device; wherein, the receiving end device When the first queue satisfies the preset closing index, the sending end device is notified to close the congestion control of the target queue. The preset closing index includes: the multiple queues of the receiving end device occupy less than the first queue buffer space of the receiving end device. The closing back pressure waterline value of the queue.
本申请实施例提供的技术方案,接收端设备在第一队列满足预设关闭指标时通知发送端设备对该发送端设备中与该第一队列对应的目标队列关闭拥塞控制,可以提高拥塞控制的灵活性,保证通信网络的吞吐量。In the technical solution provided by the embodiment of the present application, the receiving end device notifies the sending end device to close the congestion control for the target queue corresponding to the first queue in the sending end device when the first queue meets the preset closing index, which can improve the congestion control performance. Flexibility to ensure the throughput of the communication network.
可选地,该预设关闭指标还包括以下一个或多个:Optionally, the preset closing indicator further includes one or more of the following:
该接收端设备的多个队列对该接收端设备的缓存空间的占用量小于第一队列的关闭反压水线值的时长达到或超过预设时长阈值;The length of time that the multiple queues of the receiving end device occupy the buffer space of the receiving end device is less than the closing back pressure waterline value of the first queue reaches or exceeds the preset duration threshold;
该第一队列不属于该接收端设备的多个队列中第一优先级的N个最长队列,该第一队列的优先级为该第一优先级,当该第一优先级为该多个队列的优先级中的最低优先级时,N为大于0的整数,当该第一优先级为该多个队列的优先级中的非最低优先级时,N为大于或等于0的整数;The first queue does not belong to the N longest queues of the first priority among the multiple queues of the receiving end device, the priority of the first queue is the first priority, and when the first priority is the multiple When the priority of the queue is the lowest priority, N is an integer greater than 0, and when the first priority is the non-lowest priority among the priorities of the multiple queues, N is an integer greater than or equal to 0;
该第一队列的长度小于预设长度阈值。The length of the first queue is less than the preset length threshold.
可选地,在根据接收端设备的通知对发送端设备的目标队列开启拥塞控制之后,该方法还包括:接收该接收端设备发送的包含发送信用值的消息;按照该发送信用值向该接收端设备发送目标队列中的报文。Optionally, after the congestion control is enabled on the target queue of the sending end device according to the notification of the receiving end device, the method further includes: receiving a message containing a sending credit value sent by the receiving end device; and sending a message to the receiving end device according to the sending credit value. The end device sends the packets in the target queue.
本申请实施例提供的技术方案,发送端设备按照接收端设备为目标队列分配发送信用值发送目标队列中的报文,可以在发送端设备中对拥塞进行主动控制。In the technical solution provided by the embodiment of the present application, the sending end device sends the packets in the target queue according to the sending credit value allocated to the target queue by the receiving end device, and the congestion can be actively controlled in the sending end device.
第三方面,提供一种拥塞控制装置,该拥塞控制装置包括一个或多个模块,该一个或多个模块用于实现上述第一方面或第一方面的任一可选方式所提供的拥塞控制方法。In a third aspect, a congestion control device is provided. The congestion control device includes one or more modules, and the one or more modules are used to implement the congestion control provided in the first aspect or any optional manner of the first aspect. method.
第四方面,提供一种拥塞控制装置,该拥塞控制装置包括一个或多个模块,该一个或多个模块用于实现上述第二方面或第二方面的任一可选方式所提供的拥塞控制方法。In a fourth aspect, a congestion control device is provided. The congestion control device includes one or more modules, and the one or more modules are used to implement the congestion control provided by the second aspect or any optional manner of the second aspect. method.
第五方面,提供一种拥塞控制装置,该拥塞控制装置包括:处理器和存储器,该存储器中存储有程序,该处理器用于执行存储器中存储的程序以实现上述第一方面或第一方面的任一可选方式所提供的拥塞控制方法。In a fifth aspect, a congestion control device is provided. The congestion control device includes a processor and a memory, the memory storing a program, and the processor is configured to execute the program stored in the memory to implement the above-mentioned first aspect or the first aspect. Congestion control method provided by any optional method.
第六方面,提供一种拥塞控制装置,该拥塞控制装置包括:处理器和存储器,该存储器中存储有程序,该处理器用于执行存储器中存储的程序以实现上述第二方面或第二方面的任一可选方式所提供的拥塞控制方法。In a sixth aspect, a congestion control device is provided. The congestion control device includes a processor and a memory. The memory is stored with a program. The processor is configured to execute the program stored in the memory to implement the above-mentioned second aspect or the second aspect. Congestion control method provided by any optional method.
第七方面,提供一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面或第一方面的任一可选方式所提供的拥塞控制方法,或者,实现上述第二方面或第二方面的任一可选方式所提供的拥塞控制方法。In a seventh aspect, a computer-readable storage medium is provided, the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, it implements the above-mentioned first aspect or any of the optional methods of the first aspect. Or the congestion control method provided in the foregoing second aspect or any optional manner of the second aspect.
第八方面,提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第一方面或第一方面的任一可选方式所提供的拥塞控制方法,或者,实现上述第二方面或第二方面的任一可选方式所提供的拥塞控制方法。In an eighth aspect, a computer program product containing instructions is provided, when the computer program product runs on a computer, it causes the computer to execute the congestion control method provided in the first aspect or any one of the optional methods of the first aspect, or , To implement the congestion control method provided by the foregoing second aspect or any optional manner of the second aspect.
第九方面,提供一种芯片,该芯片包括可编程逻辑电路和/或程序指令,当该芯片运行时用于实现上述第一方面或第一方面的任一可选方式所提供的拥塞控制方法,或者,实现上述第二方面或第二方面的任一可选方式所提供的拥塞控制方法。In a ninth aspect, a chip is provided. The chip includes a programmable logic circuit and/or program instructions. When the chip is running, it is used to implement the congestion control method provided in the first aspect or any of the optional methods of the first aspect. , Or, implement the congestion control method provided in the second aspect or any optional manner of the second aspect.
第十方面,提供一种拥塞控制系统,包括:发送端设备和接收端设备,In a tenth aspect, a congestion control system is provided, including: a sending end device and a receiving end device,
该接收端设备用于:监控该接收端设备的多个队列,该接收端设备的每个队列与该发送端设备中的一个或多个队列对应;当该接收端设备的多个队列中的第一队列满足预设开启指标时,通知该发送端设备对该发送端设备中与该第一队列对应的目标队列开启拥塞控制;其 中,该预设开启指标包括:该接收端设备的多个队列对该接收端设备的缓存空间的占用量达到或超出该第一队列的开启反压水线值;The receiving end device is used to monitor multiple queues of the receiving end device, and each queue of the receiving end device corresponds to one or more queues in the sending end device; when the multiple queues of the receiving end device are When the first queue satisfies the preset opening index, the sending end device is notified to enable congestion control for the target queue corresponding to the first queue in the sending end device; wherein, the preset opening index includes: multiple numbers of the receiving end device The occupation of the buffer space of the receiving end device by the queue reaches or exceeds the opening back pressure waterline value of the first queue;
该发送端设备用于:根据该接收端设备的通知对该发送端设备中与该第一队列对应的目标队列开启拥塞控制。The sending end device is configured to enable congestion control for the target queue corresponding to the first queue in the sending end device according to the notification of the receiving end device.
可选地,在一种可能的实现方式中,该发送端设备可以包括上述第四方面所提供的拥塞控制装置,该接收端设备可以包括上述第三方面所提供的拥塞控制装置;或者,Optionally, in a possible implementation manner, the sending end device may include the congestion control apparatus provided in the foregoing fourth aspect, and the receiving end device may include the congestion control apparatus provided in the foregoing third aspect; or,
在另一种可能的实现方式中,该发送端设备可以包括上述第六方面所提供的拥塞控制装置,该接收端设备可以包括上述第五方面所提供的拥塞控制装置。In another possible implementation manner, the sending end device may include the congestion control apparatus provided in the sixth aspect, and the receiving end device may include the congestion control apparatus provided in the fifth aspect.
上述第三方面至第十方面的技术效果可以参考第一方面至第二方面,在此不再赘述。For the technical effects of the third aspect to the tenth aspect described above, reference may be made to the first aspect to the second aspect, which will not be repeated here.
本申请实施例提供的技术方案带来的有益效果是:The beneficial effects brought about by the technical solutions provided by the embodiments of the present application are:
本申请实施例提供的技术方案,接收端设备监控接收端设备的多个队列,当该接收端设备的多个队列中的第一队列满足预设开启指标时,通知发送端设备对该发送端设备中与该第一队列对应的目标队列开启拥塞控制,发送端设备根据接收端设备的通知对目标队列开启拥塞控制。该拥塞控制方案有助于解决目前通信网络的拥塞问题,有助于提高通信网络的资源利用率以及传输质量。该拥塞控制方案结合主动拥塞控制和被动拥塞控制,使用被动拥塞控制感知拥塞后,通过对拥塞进行主动控制,可以从通信网络全网进行拥塞控制,且可以针对特定优先级的拥塞实现端到端的控制,在拥塞控制的过程中,可以灵活调整反压水线和发送信用值的分配系数等参数,且可以充分利用接收端设备的缓存空间,避免将瞬时拥塞的报文反压在发送端设备,保证发送端设备的吞吐量,从而保证该发送端设备下挂的工作站的吞吐量,提高拥塞控制的灵活性。该拥塞控制方案中,在发送端设备开启拥塞控制之前,无需考虑反压水线值和发送信用值,可以使得发送端设备的流量尽量push发送,开启拥塞控制之前让所有的队列都尽量的保持吞吐。In the technical solution provided by the embodiments of the present application, the receiving end device monitors multiple queues of the receiving end device, and when the first queue of the multiple queues of the receiving end device meets the preset opening index, the sending end device is notified to the sending end The target queue corresponding to the first queue in the device turns on congestion control, and the sending end device turns on congestion control on the target queue according to the notification of the receiving end device. The congestion control solution helps to solve the current congestion problem of the communication network, and helps to improve the resource utilization rate and transmission quality of the communication network. The congestion control solution combines active congestion control and passive congestion control. After using passive congestion control to sense congestion, through active control of congestion, congestion control can be carried out from the entire communication network, and end-to-end congestion can be realized for specific priority congestion. Control, in the process of congestion control, you can flexibly adjust parameters such as the back pressure waterline and the distribution coefficient of the sending credit value, and can make full use of the buffer space of the receiving end device to avoid back pressure of the instantaneous congested message on the sending end device , To ensure the throughput of the sending end device, thereby ensuring the throughput of the workstation connected to the sending end device, and improving the flexibility of congestion control. In this congestion control scheme, before the sender device starts congestion control, there is no need to consider the backpressure waterline value and the sending credit value, so that the traffic of the sender device can be pushed as much as possible, and all queues are kept as much as possible before the congestion control is enabled Huff.
附图说明Description of the drawings
图1是本申请实施例所涉及的一种实施环境的示意图;FIG. 1 is a schematic diagram of an implementation environment involved in an embodiment of the present application;
图2是本申请实施例提供的一种拥塞控制方案中发送端设备的处理流程示意图;FIG. 2 is a schematic diagram of a processing flow of a sending end device in a congestion control solution provided by an embodiment of the present application;
图3是本申请实施例提供的一种拥塞控制方案中接收端设备的处理流程示意图;FIG. 3 is a schematic diagram of a processing flow of a receiving end device in a congestion control solution provided by an embodiment of the present application;
图4是本申请实施例提供的一种拥塞控制方案的示意图;FIG. 4 is a schematic diagram of a congestion control solution provided by an embodiment of the present application;
图5是本申请实施例提供的一种拥塞控制方法的方法流程图;Fig. 5 is a method flowchart of a congestion control method provided by an embodiment of the present application;
图6是本申请实施例提供的一种拥塞控制的示意图;FIG. 6 is a schematic diagram of congestion control provided by an embodiment of the present application;
图7是本申请实施例提供的一种不同优先级的队列对缓存空间的占用量的示意图;FIG. 7 is a schematic diagram of the amount of buffer space occupied by queues with different priorities according to an embodiment of the present application; FIG.
图8是本申请实施例提供的一种调整任一优先级的队列的反压水线值的方法流程图;FIG. 8 is a flowchart of a method for adjusting the back pressure waterline value of a queue of any priority level according to an embodiment of the present application;
图9是本申请实施例提供的另一种调整任一优先级的队列的反压水线值的方法流程图;FIG. 9 is a flowchart of another method for adjusting the back pressure waterline value of a queue of any priority level provided by an embodiment of the present application;
图10是本申请实施例提供再一种调整任一优先级的队列的反压水线值的方法流程图;FIG. 10 is a flowchart of yet another method for adjusting the back pressure waterline value of a queue of any priority according to an embodiment of the present application;
图11是本申请实施例提供的另一种拥塞控制的示意图;FIG. 11 is a schematic diagram of another congestion control provided by an embodiment of the present application;
图12是本申请实施例提供的一种拥塞控制装置的逻辑结构示意图;FIG. 12 is a schematic diagram of the logical structure of a congestion control device provided by an embodiment of the present application;
图13是本申请实施例提供的另一种拥塞控制装置的逻辑结构示意图;FIG. 13 is a schematic diagram of the logical structure of another congestion control apparatus provided by an embodiment of the present application;
图14是本申请实施例提供的再一种拥塞控制装置的逻辑结构示意图;FIG. 14 is a schematic diagram of the logical structure of yet another congestion control apparatus provided by an embodiment of the present application;
图15是本申请实施例提供的又一种拥塞控制装置的逻辑结构示意图;15 is a schematic diagram of the logical structure of yet another congestion control device provided by an embodiment of the present application;
图16是本申请实施例提供的一种拥塞控制装置的硬件结构示意图;16 is a schematic diagram of the hardware structure of a congestion control device provided by an embodiment of the present application;
图17是本申请实施例提供的一种拥塞控制系统的示意图。Fig. 17 is a schematic diagram of a congestion control system provided by an embodiment of the present application.
具体实施方式Detailed ways
本申请实施例提供的拥塞控制方案的实施环境可以包括通信网络以及接入该通信网络的多个工作站。其中,该通信网络可以包括多个网络设备,工作站通过网络设备接入该通信网络,网络设备通过转发工作站的报文,实现不同工作站之间的通信。The implementation environment of the congestion control solution provided in the embodiments of the present application may include a communication network and multiple workstations accessing the communication network. Wherein, the communication network may include multiple network devices, the workstations access the communication network through the network devices, and the network devices implement communication between different workstations by forwarding messages of the workstations.
其中,工作站可以是主机、终端、服务器或虚拟机等各种类型的设备。网络设备可以是交换机、路由器(router)、虚拟交换机或虚拟路由器等在通信网络中用于转发报文的设备,并且在同一通信网络中的网络设备可以是相同的网络设备,也可以是不同的网络设备。例如,同一通信网络中的所有网络设备均是路由器,或者,一部分网络设备是路由器,另一部分网络设备是交换机。Among them, the workstation can be various types of devices such as a host, a terminal, a server, or a virtual machine. The network device can be a switch, router, virtual switch or virtual router that is used to forward messages in a communication network, and the network devices in the same communication network can be the same network device or different Internet equipment. For example, all network devices in the same communication network are routers, or some of the network devices are routers, and the other part of the network devices are switches.
在本申请实施例中,该通信网络可以是数据中心网络(data center network,DCN)、城域网络、广域网络或园区网络等,本申请实施例对通信网络的类型不做限定。可选地,该通信网络可以是深度交叉网络(deep cross network,DCN)。In the embodiment of the present application, the communication network may be a data center network (DCN), a metropolitan area network, a wide area network, or a campus network, etc. The embodiment of the present application does not limit the type of the communication network. Optionally, the communication network may be a deep cross network (DCN).
示例地,请参考图1,其示出了本申请实施例所涉及的一种实施环境的示意图,该实施环境包括通信网络01以及接入该通信网络01的多个工作站021~028(也即是工作站021、工作站022、工作站023、工作站024、工作站025、工作站026、工作站027和工作站028),该通信网络01包括网络设备01a1~01a2(也即是网络设备01a1和网络设备01a2)以及网络设备01b1~01b4(也即是网络设备01b1、网络设备01b2、网络设备01b3和网络设备01b4),并且该通信网络01可以包括汇聚层和接入层,汇聚层是该通信网络01的高速交换主干,接入层用于将工作站接入该通信网络01,如图1所示,网络设备01a1~01a2位于汇聚层,网络设备01b1~01b4位于接入层,工作站021~022通过网络设备01b1接入该通信网络01,工作站023~024通过网络设备01b2接入该通信网络01,工作站025~026通过网络设备01b3接入该通信网络01,工作站027~028通过网络设备01b4接入该通信网络01。For example, please refer to FIG. 1, which shows a schematic diagram of an implementation environment involved in an embodiment of the present application. The implementation environment includes a communication network 01 and multiple workstations 021 to 028 (that is, Is workstation 021, workstation 022, workstation 023, workstation 024, workstation 025, workstation 026, workstation 027, and workstation 028), the communication network 01 includes network devices 01a1 to 01a2 (that is, network devices 01a1 and network devices 01a2) and network Devices 01b1 to 01b4 (that is, network device 01b1, network device 01b2, network device 01b3, and network device 01b4), and the communication network 01 may include an aggregation layer and an access layer, and the aggregation layer is the high-speed switching backbone of the communication network 01 The access layer is used to connect workstations to the communication network 01. As shown in Figure 1, network devices 01a1 to 01a2 are located at the convergence layer, network devices 01b1 to 01b4 are located at the access layer, and workstations 021 to 022 are accessed through network device 01b1 The communication network 01, workstations 023-024 access the communication network 01 through the network device 01b2, the workstations 025-026 access the communication network 01 through the network device 01b3, and the workstations 027-028 access the communication network 01 through the network device 01b4.
可选地,该图1所示的通信网络01可以为脊-叶(leaf-spine)拓扑网络,位于汇聚层的网络设备01a1~01a2可以为脊(spine)交换机,位于接入层的网络设备01b1~01b4可以为叶(leaf)交换机,每个spine交换机与所有的leaf交换机连接,每个leaf交换机与所有的spine交换机连接(也即是spine交换机与leaf交换机全互连)。Optionally, the communication network 01 shown in FIG. 1 may be a leaf-spine topology network, and the network devices 01a1 to 01a2 at the convergence layer may be spine switches, and network devices at the access layer 01b1 to 01b4 can be leaf switches, each spine switch is connected to all leaf switches, and each leaf switch is connected to all spine switches (that is, the spine switch and the leaf switch are fully interconnected).
该图1所示实施环境仅用于举例,并非用于限制本申请实施例的技术方案,在实现过程中,该实施环境还可能包括其他设备,可以根据需要来配置网络设备的数量、工作站的数量以及网络设备的之间的连接关系,网络设备与工作站的连接关系,并且该通信网络的拓扑可以是其他拓扑。例如,spine交换机与leaf交换机可以不是全互连,再比如,汇聚层中的网络设备可以互连,又比如,通信网络还可以包括位于汇聚层之上的核心层,还比如,该图1所示的通信网络01是2级Clos网络,该通信网络还可以是3级Clos网络,本申请实施例在此不再赘述。The implementation environment shown in Figure 1 is only used as an example, and is not used to limit the technical solutions of the embodiments of the present application. During the implementation process, the implementation environment may also include other devices. The number of network devices and the number of workstations can be configured as required. The number and the connection relationship between the network devices, the connection relationship between the network devices and the workstation, and the topology of the communication network can be other topologies. For example, the spine switch and the leaf switch may not be fully interconnected. For another example, the network devices in the convergence layer can be interconnected. For example, the communication network may also include a core layer located above the convergence layer. For example, as shown in Figure 1 The illustrated communication network 01 is a level 2 Clos network, and the communication network may also be a level 3 Clos network, which will not be repeated in this embodiment of the present application.
在本申请实施例中,每个网络设备具有一个或多个出端口,每个出端口具有一个或多个不同优先级的队列,每个出端口的一个队列用于缓存需要经由该出端口发送的一种优先级的报文,网络设备对于接收到的每个报文,通常会将该报文缓存至与该报文匹配的队列,并以 一定速率发送该队列中的报文。可选地,每个出端口的队列的数量等于优先级的数量。示例地,以图1中的网络设备01b1为例,该网络设备01b1可以具有出端口1~出端口8(也即是出端口1、出端口2、出端口3、出端口4、出端口5、出端口6、出端口7和出端口8)这8个出端口,出端口1可以具有pri_1~pri_8这8个优先级的8个队列,该8个队列分别为队列1~8(也即是队列1、队列2、队列3、队列4、队列5、队列6、队列7和队列8),该队列1~8的优先级依次为pri_1、pri_2、pri_3、pri_4、pri_5、pri_6、pri_7和pri_8,该8个队列中,队列1用于缓存需要经由该出端口1发送的优先级为pri_1的报文,网络设备01b1对于接收到的需要经由该出端口1发送的优先级为pri_1的报文1,将该报文1缓存至该队列1,队列2用于缓存需要经由该出端口1发送的优先级为pri_2的报文,网络设备01b1对于接收到的需要经由该出端口1发送的优先级为pri_2的报文2,将该报文2缓存至该队列2,队列3用于缓存需要经由该出端口1发送的优先级为pri_3的报文,网络设备01b1对于接收到的需要经由该出端口1发送的优先级为pri_3的报文3,将该报文3缓存至该队列3,依次类推。In the embodiment of the present application, each network device has one or more outgoing ports, each outgoing port has one or more queues with different priorities, and one queue of each outgoing port is used for buffering needs to be sent via the outgoing port. For each received packet, the network device usually buffers the packet in a queue that matches the packet, and sends the packets in the queue at a certain rate. Optionally, the number of queues for each egress port is equal to the number of priorities. For example, taking the network device 01b1 in FIG. 1 as an example, the network device 01b1 may have egress port 1 to egress port 8 (that is, egress port 1, egress port 2, egress port 3, egress port 4, and egress port 5. , Outgoing port 6, outgoing port 7 and outgoing port 8) these 8 outgoing ports, outgoing port 1 can have 8 queues with 8 priorities from pri_1 to pri_8. The 8 queues are queues 1 to 8 (that is, Queue 1, Queue 2, Queue 3, Queue 4, Queue 5, Queue 6, Queue 7 and Queue 8), the priority of the queues 1 to 8 are pri_1, pri_2, pri_3, pri_4, pri_5, pri_6, pri_7 and pri_8, among the 8 queues, queue 1 is used to buffer the packets with priority pri_1 that need to be sent via the egress port 1. The network device 01b1 responds to the received packets with priority pri_1 that need to be sent via the egress port 1. Text 1, buffer the message 1 to the queue 1. Queue 2 is used to buffer the messages with priority pri_2 that need to be sent via the egress port 1, and the network device 01b1 needs to send the received messages via the egress port 1. The message 2 with priority pri_2 is buffered to the queue 2. Queue 3 is used to buffer the message with priority pri_3 that needs to be sent through the egress port 1. The network device 01b1 needs to pass the received message through The message 3 with the priority of pri_3 sent by the egress port 1 is buffered in the queue 3, and so on.
可选地,根据报文的发送方向,每个网络设备可以是发送端设备,也可以是接收端设备。例如,以图1为例,当网络设备01b1向网络设备01b4发送报文时,网络设备01b1为发送端设备,网络设备01b4为接收端设备;再例如,当网络设备01b4向网络设备01b1发送报文时,网络设备01b4为发送端设备,网络设备01b1为接收端设备;又例如,当网络设备01b1向网络设备01b4发送报文,且网络设备01b4向网络设备01b2发送报文时,网络设备01b1为发送端设备,网络设备01b2为接收端设备,网络设备01b4既是发送端设备又是接收端设备;还例如,当网络设备01b1和网络设备01b2均向网络设备01b4发送报文时,网络设备01b1和网络设备01b2均为发送端设备,网络设备01b4为接收端设备。Optionally, according to the sending direction of the message, each network device may be a sending end device or a receiving end device. For example, taking Figure 1 as an example, when the network device 01b1 sends a message to the network device 01b4, the network device 01b1 is the sender device, and the network device 01b4 is the receiver device; for another example, when the network device 01b4 sends a message to the network device 01b1 For example, when the network device 01b4 is the sender device, and the network device 01b1 is the receiver device; for example, when the network device 01b1 sends a message to the network device 01b4, and the network device 01b4 sends a message to the network device 01b2, the network device 01b1 It is the sending end device, and the network device 01b2 is the receiving end device, and the network device 01b4 is both the sending end device and the receiving end device; for example, when the network device 01b1 and the network device 01b2 both send a message to the network device 01b4, the network device 01b1 Both the network device 01b2 and the network device 01b2 are the sending end device, and the network device 01b4 is the receiving end device.
在本申请实施例中,发送端设备的每个队列可以映射到接收端设备的一个出端口上,发送端设备的每个队列可以与接收端设备的队列对应,发送端设备的每个队列中的报文到达接收端设备时,首先被接收端设备缓存至接收端设备中相应的队列中,并由接收端设备通过相应的出端口以一定速率发送该队列中的报文。示例地,发送端设备为网络设备01b1,接收端设备为网络设备01b4,网络设备01b1的队列1可以映射到网络设备01b4的一个出端口1上,且网络设备01b1的队列1与网络设备01b4的队列1对应,网络设备01b1的队列1中的报文1到达网络设备01b4时,首先被网络设备01b4缓存至网络设备01b4的队列1中,并由该网络设备01b4通过该网络设备01b4的出端口1以一定速率发送该报文。In the embodiment of the present application, each queue of the sending end device can be mapped to an outgoing port of the receiving end device, each queue of the sending end device can correspond to the queue of the receiving end device, and each queue of the sending end device When the message arrives at the receiving end device, it is first buffered by the receiving end device into the corresponding queue in the receiving end device, and the receiving end device sends the messages in the queue at a certain rate through the corresponding out port. For example, the sending end device is the network device 01b1, the receiving end device is the network device 01b4, the queue 1 of the network device 01b1 can be mapped to an out port 1 of the network device 01b4, and the queue 1 of the network device 01b1 is the same as that of the network device 01b4. Queue 1 corresponds. When the message 1 in the queue 1 of the network device 01b1 arrives at the network device 01b4, it is first buffered by the network device 01b4 in the queue 1 of the network device 01b4, and the network device 01b4 passes through the outgoing port of the network device 01b4 1 Send the message at a certain rate.
随着通信网络规模的扩大以及视频、高性能云计算和消费者云业务等各种应用的普及,网络设备需要转发的流量暴涨,网络负载率(也即是网络利用率)、网络时延以及网络拥塞等成为通信网络面临的主要难题。例如,通信网络面临概率性、长期性丢包问题以及由于网络设备的缓存空间不足而引发的突发流量丢弃的问题。再例如,远程直接内存访问(remote direct memory access,RDMA)协议以及基于以太网的远程直接内存访问(RDMA over converged ethernet,RoCE)协议的通信网络对高性能云计算极为重要,这些通信网络目前存在网络时延以及网络拥塞等诸多问题。而在上述问题中,网络拥塞是当前通信网络的主要问题,网络拥塞不仅需要对通信网络进行带宽扩容,更重要的是需要对流量合理调度,以控制网络拥塞。因此亟需一种拥塞控制方案对通信网络进行拥塞控制。With the expansion of the scale of communication networks and the popularization of various applications such as video, high-performance cloud computing and consumer cloud services, the traffic that network devices need to forward has skyrocketed, the network load rate (that is, the network utilization rate), network latency, and Network congestion has become a major problem faced by communication networks. For example, communication networks are faced with probabilistic and long-term packet loss problems, as well as the problems of burst traffic discarding caused by insufficient buffer space of network devices. For another example, remote direct memory access (RDMA) protocol and Ethernet-based remote direct memory access (RDMA overconverged ethernet, RoCE) protocol communication networks are extremely important for high-performance cloud computing. These communication networks currently exist Many problems such as network delay and network congestion. Among the above-mentioned problems, network congestion is the main problem of current communication networks. Network congestion not only requires bandwidth expansion of the communication network, but more importantly, reasonable traffic scheduling is required to control network congestion. Therefore, there is an urgent need for a congestion control scheme to control the congestion of the communication network.
本申请实施例提供的网络拥塞控制方案,可以结合主动拥塞控制方案和被动拥塞控制方案对通信网络进行拥塞控制,不仅有助于通信网络的拥塞问题,而且灵活性较好。其中,主 动拥塞控制方案是一种采用端到端的探测估计或者请求应答的方式估算链路的拥塞程度进行对应带宽的估计或者发送信用值(credit)的分配,保证在通信网络不拥塞的情况下传输流量的方案,例如,远程调用(remote procedure call,RCP)方案、高精度拥塞控制(high precision congestion control,HPCC)方案以及Venus算法中的推拉(push and pull,PPOP)方案都属于主动拥塞控制方案。被动拥塞控制方案是一种在接收端设备进行网络拥塞被动感知并控制的方案,例如,显式拥塞通知(explicit congestion notification,ECN)方案、策略功能卡(policy feature card)方案以及丢弃反压最长队列(drop and backpressure the longest queue,DBLQ)方案都属于被动拥塞控制方案。下面以PPOP方案和DBLQ方案为例对本申请实施例提供的主动拥塞控制方案和被动拥塞控制方案进行介绍。The network congestion control scheme provided by the embodiment of the present application can combine the active congestion control scheme and the passive congestion control scheme to control the congestion of the communication network, which not only helps the congestion problem of the communication network, but also has better flexibility. Among them, the active congestion control scheme is an end-to-end probe estimation or request response method to estimate the degree of congestion of the link to estimate the corresponding bandwidth or distribute the credit value (credit) to ensure that the communication network is not congested. Traffic transmission schemes, for example, remote procedure call (RCP) scheme, high precision congestion control (HPCC) scheme, and push and pull (PPOP) scheme in Venus algorithm are all active congestion control Program. The passive congestion control scheme is a scheme that passively senses and controls network congestion at the receiving end device. For example, the explicit congestion notification (ECN) scheme, the policy feature card scheme, and the discard backpressure scheme Long queue (drop and backpressure the longest queue, DBLQ) solutions are all passive congestion control solutions. The following uses the PPOP solution and the DBLQ solution as examples to introduce the active congestion control solution and the passive congestion control solution provided by the embodiments of the present application.
首先对本申请实施例提供的主动拥塞控制方案进行介绍。First, the active congestion control solution provided by the embodiment of the present application is introduced.
在主动拥塞控制方案中,发送端设备的队列可以是虚拟输出队列(virtual output queue,VOQ),例如可以是动态虚拟输出队列(dynamic virtual output queue,DVOQ),接收端设备的队列可以是请求流队列(request flow queue,RFQ)。图2和图3是本申请实施例提供的主动拥塞控制方案的示意图,其中,图2为发送端设备的处理流程示意图,图3为接收端设备的处理流程示意图。该图2和图3以发送端设备的队列为DVOQ为例说明。In the active congestion control scheme, the queue of the sending device can be a virtual output queue (VOQ), for example, it can be a dynamic virtual output queue (DVOQ), and the queue of the receiving device can be a request flow Queue (request flow queue, RFQ). Figures 2 and 3 are schematic diagrams of active congestion control solutions provided by embodiments of the present application, in which Figure 2 is a schematic diagram of the processing flow of the sending end device, and Figure 3 is a schematic diagram of the processing flow of the receiving end device. 2 and 3 take DVOQ as an example for the queue of the sending end device.
参见图2,发送端设备对于接收到的报文,将该报文缓存至与该报文匹配的DVOQ,并更新DVOQ模块中存储的该DVOQ的队列信息。对于发送端设备的多个DVOQ,发送端设备按照严格优先级(strict priority,SP)调度不同优先级的DVOQ,按照轮询调度(round-robin,RR)调度同一优先级的DVOQ。对于调度到的DVOQ,发送端设备向接收端设备发送携带该DVOQ的队列信息的请求报文(request packet,REQ),以请求接收端设备为该DVOQ分配发送信用值。Referring to Fig. 2, for the received message, the sending end device buffers the message to a DVOQ matching the message, and updates the queue information of the DVOQ stored in the DVOQ module. For multiple DVOQs of the sender device, the sender device schedules DVOQs of different priorities according to strict priority (strict priority, SP), and schedules DVOQs of the same priority according to round-robin (round-robin, RR). For the scheduled DVOQ, the sending end device sends a request packet (request packet, REQ) carrying the queue information of the DVOQ to the receiving end device to request the receiving end device to allocate a sending credit value for the DVOQ.
其中,发送端设备可以查询队列映射表(例如DVOQ mapping table)确定与报文匹配的DVOQ,如果根据队列映射表无法确定与该报文匹配的DVOQ,发送端设备可以申请DVOQ资源以并新建DVOQ,将新建的DVOQ确定为与该报文匹配的DVOQ,如果申请不到DVOQ资源,发送端设备将该发送端设备的最高优先级的DVOQ确定为与该报文匹配的DVOQ。DVOQ的队列信息可以包括DVOQ的优先级、DVOQ的长度和DVOQ的标识等中的一个或多个,DVOQ的长度可以是虚拟队列长度(virtual queue length,VQL)。发送信用值可以为接收端设备本次能够调度的该目标队列中的报文数量,或者发送端设备本次可以发送的该目标队列中的报文数量,在一些实施场景中,发送信用值又称为队列信用值(queue credit,QC)。Among them, the sender device can query the queue mapping table (such as DVOQ mapping table) to determine the DVOQ that matches the message. If the DVOQ that matches the message cannot be determined according to the queue mapping table, the sender device can apply for DVOQ resources and create a new DVOQ. , The newly created DVOQ is determined as the DVOQ matching the message. If the DVOQ resource cannot be applied for, the sending end device determines the highest priority DVOQ of the sending end device as the DVOQ matching the message. The queue information of the DVOQ may include one or more of the priority of the DVOQ, the length of the DVOQ, and the identifier of the DVOQ. The length of the DVOQ may be a virtual queue length (VQL). The sending credit value can be the number of packets in the target queue that the receiving device can schedule this time, or the number of packets in the target queue that the sending device can send this time. In some implementation scenarios, the sending credit value is again It is called queue credit (QC).
如图2所示,对于发送端设备的多个DVOQ,SP1调度器优先调度最高优先级的多个DVOQ,将该发送端设备的出端口的带宽优先分配给最高优先级的DVOQ使用,并按照RR调用该最高优先级的多个DVOQ;SP1调度器将扣除最高优先级的DVOQ所占用的带宽之后的剩余带宽分配给SP2调度器,SP2调度器优先调度高优先级的多个DVOQ,将该剩余带宽优先分配给高优先级的DVOQ使用,并按照RR调用该高优先级的多个DVOQ;SP2调度器将该剩余带宽扣除该高优先级的DVOQ所占用的带宽之后的剩余带宽分配给低优先级的多个DVOQ使用,并按照RR调用该低优先级的多个DVOQ。As shown in Figure 2, for the multiple DVOQs of the sending end device, the SP1 scheduler preferentially schedules the multiple DVOQs with the highest priority, and assigns the bandwidth of the outgoing port of the sending end device to the highest priority DVOQ first. RR calls the multiple DVOQs with the highest priority; the SP1 scheduler allocates the remaining bandwidth after deducting the bandwidth occupied by the highest priority DVOQ to the SP2 scheduler, and the SP2 scheduler prioritizes the scheduling of multiple DVOQs with high priority. The remaining bandwidth is preferentially allocated to the high-priority DVOQ, and multiple DVOQs of the high-priority are called according to the RR; the SP2 scheduler allocates the remaining bandwidth after deducting the bandwidth occupied by the high-priority DVOQ from the remaining bandwidth to the low-priority DVOQ. Multiple DVOQs of priority are used, and multiple DVOQs of low priority are called according to RR.
参见图3,接收端设备对于接收到的REQ,将该REQ缓存至与该REQ匹配的RFQ,并更新RFQ模块中存储的该RFQ的队列信息。对于接收端设备的多个RFQ,接收端设备按照SP调度不同优先级的RFQ,按照RR调度同一优先级的RFQ。对于调度到的RFQ中的任一 REQ,接收端设备根据该REQ携带的DVOQ的队列信息为该DVOQ分配发送信用值,并向发送端设备发送携带该发送信用值的应答报文(acknowledge packet,ACK),以使发送端设备按照该发送信用值发送该DVOQ中的报文。Referring to FIG. 3, for the received REQ, the receiving end device buffers the REQ to an RFQ matching the REQ, and updates the queue information of the RFQ stored in the RFQ module. For multiple RFQs of the receiving end device, the receiving end device schedules RFQs of different priorities according to SP, and RFQs of the same priority according to RR. For any REQ in the scheduled RFQ, the receiving end device allocates a sending credit value for the DVOQ according to the DVOQ queue information carried by the REQ, and sends a reply packet (acknowledge packet, which carries the sending credit value) to the sending end device. ACK), so that the sending end device sends the message in the DVOQ according to the sending credit value.
如图3所示,对于接收端设备的多个RFQ,SP1调度器优先调度最高优先级的多个RFQ,将该接收端设备的出端口的带宽优先分配给该最高优先级的RFQ使用,并按照RR调用该最高优先级的多个RFQ;SP1调度器将扣除该最高优先级的RFQ所占用的带宽之后的剩余带宽分配给SP2调度器,SP2调度器优先调度高优先级的多个RFQ,将该剩余带宽优先分配给该高优先级的RFQ使用,并按照RR调用该高优先级的多个RFQ;SP2调度器将该剩余带宽扣除高优先级的RFQ所占用的带宽之后的剩余带宽分配给低优先级的多个RFQ使用,并按照RR调用该低优先级的多个RFQ。As shown in Figure 3, for multiple RFQs of the receiving end device, the SP1 scheduler preferentially schedules the multiple RFQs with the highest priority, and assigns the bandwidth of the output port of the receiving end device to the highest priority RFQ first, and Call the multiple RFQs with the highest priority according to the RR; the SP1 scheduler allocates the remaining bandwidth after deducting the bandwidth occupied by the RFQ with the highest priority to the SP2 scheduler, and the SP2 scheduler preferentially schedules multiple RFQs with high priority. The remaining bandwidth is allocated to the high-priority RFQ first, and multiple high-priority RFQs are called according to the RR; the SP2 scheduler allocates the remaining bandwidth after deducting the bandwidth occupied by the high-priority RFQ from the remaining bandwidth It is used for multiple RFQs with low priority, and calls the multiple RFQs with low priority according to RR.
需要说明的是,在该主动拥塞控制方案中,各个网络设备配置有一定量的初始信用值,通信网络启动后,发送端设备根据该发送端设备的初始信用值先向接收端设备push(推)一定流量,之后根据DVOQ的队列信息向接收端设备发送REQ,以请求接收端设备为该接收端设备分配发送信用值。It should be noted that in the active congestion control scheme, each network device is configured with a certain amount of initial credit value. After the communication network is started, the sending end device first pushes to the receiving end device according to the initial credit value of the sending end device. After a certain flow rate, REQ is sent to the receiving end device according to the queue information of the DVOQ to request the receiving end device to allocate a sending credit value for the receiving end device.
主动拥塞控制方案是一种端到端的拥塞控制方案,该主动拥塞控制方案通过尝试来避免拥塞,可以控制流量爆发(burst)从发送端设备到接收端设备,该主动拥塞控制方案中,发送端设备向接收端设备发送REQ,接收端设备根据调度能力向发送端设备回复携带发送信用值的ACK,使发送端设备根据该发送信用值进行有控制的发包,从而实现拥塞控制。The active congestion control scheme is an end-to-end congestion control scheme. The active congestion control scheme tries to avoid congestion and can control traffic bursts from the sending end device to the receiving end device. In this active congestion control scheme, the sending end The device sends REQ to the receiving end device, and the receiving end device replies to the sending end device with an ACK carrying the sending credit value according to the scheduling capability, so that the sending end device performs controlled packet sending according to the sending credit value, thereby realizing congestion control.
以上为本申请实施例提供的主动拥塞控制方案的介绍,介绍完主动拥塞控制方案,接着对本申请实施例提供的被动拥塞控制方案进行介绍。The above is an introduction to the active congestion control solution provided by the embodiments of this application. After introducing the active congestion control solution, the passive congestion control solution provided in the embodiments of this application is then introduced.
请参考图4,其示出了本申请实施例提供的被动拥塞控制方案的示意图。在被动拥塞控制方案中,接收端设备对于接收到的每个报文(例如REQ),将该报文缓存至接收端设备中的与该报文匹配的队列,根据该接收端设备的所有队列在该接收端设备的缓存空间的占用量确定该接收端设备是否拥塞,在该接收端设备拥塞时,按照优先级从低到高的顺序对各个优先级的队列中的最长队列进行反压(也即是按照优先级从低到高的顺序丢弃各个优先级的队列中的最长队列中的报文),以此来对通信网络进行被动拥塞控制。例如,接收端设备优先丢弃最低优先级的多个队列中最长队列中的报文,若丢弃最低优先级的最长队列中的报文后,接收端设备的拥塞没有有效控制,接收端设备丢弃次低优先级的多个队列中最长队列中的报文,依次类推。在本申请实施例中,接收端设备的缓存空间可以是缓冲区(buffer),按照该缓存空间的被占用量,该缓存空间可以包括安全区和禁止区,接收端设备可以根据该缓存空间的被占用量所处区域来确定该接收端设备是否拥塞,若该缓存空间的被占用量处于安全区,接收端设备确定该接收端设备没有发生拥塞,若该缓存空间的被占用量处于禁止区,接收端设备确定该接收端设备发生拥塞。可选地,安全区可以是缓存空间的被占用量小于或等于该缓存空间的大小的90%的区域,禁止区可以是缓存空间的被占用量大于该缓存空间的大小的90%的区域。Please refer to FIG. 4, which shows a schematic diagram of a passive congestion control solution provided by an embodiment of the present application. In the passive congestion control scheme, for each message (such as REQ) received by the receiving end device, the message is buffered in the receiving end device’s queue that matches the message, according to all queues of the receiving end device The occupancy of the buffer space of the receiving end device determines whether the receiving end device is congested. When the receiving end device is congested, back pressure is performed on the longest queue among the priority queues in the order of priority from low to high. (That is, the messages in the longest queue in the queues of each priority are discarded in the order of priority from low to high), so as to perform passive congestion control on the communication network. For example, the receiving device preferentially discards the packets in the longest queue among the multiple queues with the lowest priority. If the packets in the longest queue with the lowest priority are discarded, the congestion of the receiving device is not effectively controlled. Discard packets in the longest queue among multiple queues with the second lowest priority, and so on. In the embodiment of the present application, the buffer space of the receiving end device may be a buffer. According to the occupied amount of the buffer space, the buffer space may include a safe area and a prohibited area, and the receiving end device may be based on the amount of the buffer space. The occupied area is used to determine whether the receiving end device is congested. If the occupied amount of the buffer space is in the safe zone, the receiving end device determines that the receiving end device is not congested, and if the occupied amount of the buffer space is in the forbidden zone , The receiving end device determines that the receiving end device is congested. Optionally, the safe area may be an area where the occupied amount of the cache space is less than or equal to 90% of the size of the cache space, and the prohibited area may be an area where the occupied amount of the cache space is greater than 90% of the size of the cache space.
被动拥塞控制方案可以由接收端设备感知网络拥塞,当缓存空间的被占用量较高(也即是感知到网络拥塞)时按照优先级从低到高的顺序丢弃各个优先级的队列中的最长队列中的报文,可以最大化的利用缓存空间的资源减少流量的等待时延,对缓存空间的利用率较高,可以降低由于拥塞导致的丢包率问题,保证通信网络的吞吐量。The passive congestion control scheme allows the receiving device to perceive network congestion. When the amount of buffer space occupied is high (that is, the network congestion is sensed), the highest priority in the queue of each priority is discarded in the order of priority from low to high. The messages in the long queue can maximize the use of buffer space resources to reduce the waiting delay of traffic, and the utilization of buffer space is high, which can reduce the packet loss rate caused by congestion and ensure the throughput of the communication network.
以上为本申请实施例提供的主动拥塞控制方案和被动拥塞控制方案的介绍,介绍完主动拥塞控制和被动拥塞控制方案,下面对本申请实施例提供的结合主动拥塞控制和被动拥塞控制方案进行拥塞控制的方案进行介绍。本申请实施例结合主动拥塞控制方案和被动拥塞控制方案对通信网络进行拥塞控制,不仅可以解决通信网络的拥塞问题,而且灵活性较好。The above is an introduction to the active congestion control scheme and the passive congestion control scheme provided by the embodiments of this application. After introducing the active congestion control and passive congestion control schemes, the congestion control is performed on the combination of active congestion control and passive congestion control schemes provided by the embodiments of this application. The program is introduced. The embodiments of the present application combine the active congestion control scheme and the passive congestion control scheme to perform congestion control on the communication network, which can not only solve the congestion problem of the communication network, but also has better flexibility.
请参考图5,其示出了本申请实施例提供的一种拥塞控制方法的方法流程图,该拥塞控制方法可以应用于通信网络,该通信网络可以包括多个网络设备,本申请实施例以该多个网络设备包括发送端设备和接收端设备为例说明。参见图5,该方法可以包括如下步骤:Please refer to FIG. 5, which shows a method flow chart of a congestion control method provided by an embodiment of the present application. The congestion control method may be applied to a communication network. The communication network may include multiple network devices. The multiple network devices including the sending end device and the receiving end device are taken as an example for description. Referring to Figure 5, the method may include the following steps:
步骤501、接收端设备为接收端设备的队列设置反压水线值,该反压水线值包括开启反压水线值和关闭反压水线值。其中,接收端设备的每个队列与发送端设备中的一个或多个队列对应。Step 501: The receiving end device sets a back pressure waterline value for the queue of the receiving end device, and the back pressure waterline value includes the opening back pressure waterline value and the closing back pressure waterline value. Wherein, each queue of the receiving end device corresponds to one or more queues in the sending end device.
在本申请实施例中,通信网络中的每个网络设备可以具有一个或多个出端口,每个出端口可以具有一个或多个优先级的队列,若每个出端口具有多个优先级的队列,该多个优先级可以不同,每个网络设备的每个队列与该通信网络中的一个或多个其他网络设备的一个或多个队列对应。每个网络设备可以为该网络设备中的队列设置反压水线值,以在该网络设备发生拥塞时供反压控制使用。在每个网络设备中,每个队列可以具有一个优先级,网络设备可以为该网络设备的每个优先级的队列设置反压水线值,或者,网络设备不为该网络设备的最高优先级的队列设置反压水线值,为除该最高优先级之外的其他优先级的队列设置反压水线值,本申请实施例对此不做限定。在本申请实施例中,不同优先级的队列的反压水线值可以不同,相同优先级的所有队列的反压水线值可以相同,每个优先级的队列的反压水线值可以称为该优先级对应的反压水线值。其中,该反压水线值可以包括开启反压水线值和关闭反压水线值,每个优先级的队列的开启反压水线值可以称为该优先级对应的开启反压水线值,每个优先级的队列的关闭反压水线值可以称为该优先级对应的关闭反压水线值。In the embodiment of the present application, each network device in the communication network may have one or more outgoing ports, and each outgoing port may have one or more priority queues. If each outgoing port has multiple priority queues, For queues, the multiple priorities may be different, and each queue of each network device corresponds to one or more queues of one or more other network devices in the communication network. Each network device can set a back pressure waterline value for the queue in the network device, so as to be used for back pressure control when the network device is congested. In each network device, each queue can have a priority, and the network device can set the back pressure waterline value for each priority queue of the network device, or the network device is not the highest priority of the network device The backpressure waterline value is set for the queue of, and the backpressure waterline value is set for queues of other priority levels except the highest priority, which is not limited in this embodiment of the application. In the embodiment of this application, the backpressure waterline values of queues of different priority levels can be different, the backpressure waterline value of all queues of the same priority level can be the same, and the backpressure waterline value of each priority queue can be called Is the back pressure waterline value corresponding to this priority. Wherein, the back pressure waterline value may include the open back pressure waterline value and the off back pressure waterline value. The open back pressure waterline value of each priority queue can be referred to as the open back pressure waterline corresponding to the priority. Value, the closing backpressure waterline value of each priority queue can be called the closing backpressure waterline value corresponding to the priority.
可选地,在每个网络设备中,相同优先级的所有队列的反压水线值相同,不同优先级的队列的反压水线值不同,不同优先级的队列的开启反压水线值按照该不同优先级从低到高增大,不同优先级的队列的关闭反压水线值按照该不同优先级从低到高增大。也即是,优先级越低的队列,其开启反压水线值和关闭反压水线值越小,优先级越高的队列,其开启反压水线值和关闭反压水线值越大。Optionally, in each network device, all queues with the same priority have the same backpressure waterline value, queues with different priorities have different backpressure waterline values, and queues with different priority levels have different backpressure waterline values. According to the different priorities, increase from low to high, and the closing backpressure waterline values of queues of different priorities increase from low to high according to the different priorities. That is, the lower the priority of the queue, the smaller the open back pressure waterline value and the lower the back pressure waterline value off, and the higher the priority queue, the higher the open back pressure waterline value and the off back pressure waterline value. Big.
本申请实施例中的接收端设备可以是通信网络中的任一网络设备,因此,该接收端设备具有一个或多个出端口,每个出端口可以具有一个或多个优先级的队列,该接收端设备可以为该接收端设备的队列设置反压水线值,该反压水线值包括开启反压水线值和关闭反压水线值。其中,接收端设备的每个队列与发送端设备中的一个或多个队列对应。The receiving end device in the embodiment of the present application may be any network device in the communication network. Therefore, the receiving end device has one or more outgoing ports, and each outgoing port can have one or more priority queues. The receiving end device may set a back pressure waterline value for the queue of the receiving end device, and the back pressure waterline value includes an open back pressure waterline value and a closed back pressure waterline value. Wherein, each queue of the receiving end device corresponds to one or more queues in the sending end device.
可选地,本申请实施例以接收端设备为该接收端设备的每个优先级的队列设置反压水线值为例进行说明。接收端设备的所有队列可以存储在接收端设备的缓存空间中,接收端设备可以根据该接收端设备的缓存空间的大小为该接收端设备设置最大水线阈值和最小水线阈值,根据该最大水线阈值和该最小水线阈值为该接收端设备的每个优先级的队列设置开启反压水线值,根据每个优先级的队列的开启反压水线值为该每个优先级的队列设置关闭反压水线值。其中,每个优先级的队列的开启反压水线值与关闭反压水线值之间的差值可以为定值。示例地,该定值可以为10。Optionally, in the embodiment of the present application, the receiving end device sets the back pressure waterline value for each priority queue of the receiving end device as an example for description. All queues of the receiving end device can be stored in the buffer space of the receiving end device, and the receiving end device can set the maximum waterline threshold and the minimum waterline threshold for the receiving end device according to the size of the buffer space of the receiving end device. The watermark threshold and the minimum watermark threshold are set to open the backpressure waterline value for each priority queue of the receiving end device, and the backpressure waterline value for each priority queue is set according to each priority. The queue setting closes the back pressure waterline value. Among them, the difference between the open back pressure waterline value and the closed back pressure waterline value of each priority queue can be a fixed value. For example, the fixed value may be 10.
可选地,接收端设备根据该接收端设备的缓存空间的大小为该接收端设备设置最大水线 阈值和最小水线阈值可以包括:接收端设备将该接收端设备的缓存空间的大小与第一系数的乘积确定为该接收端设备的最大水线阈值,将该接收端设备的缓存空间的大小与第二系数的乘积确定为该接收端设备的最小水线阈值,并为该接收端设备设置该最大水线阈值和最小水线阈值,其中,该第一系数大于该第二系数,该第一系数大于0且小于0.85,该第二系数大于0且小于0.7。示例地,该第一系数可以为0.8,该第二系数可以为0.5。Optionally, the receiving end device setting the maximum watermark threshold and the minimum watermark threshold for the receiving end device according to the size of the buffer space of the receiving end device may include: the receiving end device compares the size of the buffer space of the receiving end device with the first The product of a coefficient is determined as the maximum watermark threshold of the receiving end device, and the product of the size of the buffer space of the receiving end device and the second coefficient is determined as the minimum watermark threshold of the receiving end device, and is the receiving end device The maximum waterline threshold and the minimum waterline threshold are set, wherein the first coefficient is greater than the second coefficient, the first coefficient is greater than 0 and less than 0.85, and the second coefficient is greater than 0 and less than 0.7. For example, the first coefficient may be 0.8, and the second coefficient may be 0.5.
可选地,接收端设备根据该最大水线阈值和该最小水线阈值为该接收端设备的每个优先级的队列设置开启反压水线值可以包括:接收端设备将该最大水线阈值设置为该接收端设备的最高优先级的队列的开启反压水线值,将该最小水线阈值设置为该接收端设备的最低优先级的队列的开启反压水线值,对于该最高优先级和该最低优先级之间的任一优先级,接收端设备可以根据低于该任一优先级的前一优先级的队列的开启反压水线值,该最大水线阈值、该最小水线阈值和该接收端设备的优先级的数量(也即是该接收端设备的所有队列的优先级的数量),为该任一优先级的队列设置开启反压水线值(也即是设置该任一优先级对应的开启反压水线值),例如,接收端设备可以根据该最大水线阈值、该最小水线阈值和该接收端设备的优先级的数量确定一定值,将低于该任一优先级的前一优先级的队列的开启反压水线值与该定值之和确定为该任一优先级的开启反压水线值。Optionally, setting the receiving end device to turn on the back pressure waterline value according to the maximum watermark threshold and the minimum watermark threshold value for each priority queue of the receiving end device may include: the receiving end device sets the maximum watermark threshold value Set the open back pressure waterline value of the highest priority queue of the receiving end device, and set the minimum watermark threshold to the open back pressure waterline value of the lowest priority queue of the receiving end device. For the highest priority queue For any priority between the priority level and the lowest priority, the receiving end device can open the back pressure waterline value of the queue of the previous priority lower than the any priority, the maximum waterline threshold, the minimum waterline Line threshold and the number of priorities of the receiving end device (that is, the number of priorities of all queues of the receiving end device), set the open back pressure waterline value for the queue of any priority (that is, setting The back pressure waterline value corresponding to any priority). For example, the receiving end device can determine a certain value based on the maximum watermark threshold, the minimum watermark threshold, and the priority of the receiving end device. The value will be lower than The sum of the opening back pressure waterline value of the queue of the previous priority of the any priority and the fixed value is determined as the opening back pressure waterline value of the any priority.
示例地,以第一系数为0.8,第二系数为0.5为例,接收端设备可以采用初值配置公式为该接收端设备的每个优先级的队列设置开启反压水线值,其中,该初值配置公式为:For example, taking the first coefficient of 0.8 and the second coefficient of 0.5 as an example, the receiving end device can use the initial value configuration formula to set the open back pressure waterline value for each priority queue of the receiving end device, where the The initial value configuration formula is:
Figure PCTCN2021072574-appb-000002
Figure PCTCN2021072574-appb-000002
B_size表示接收端设备的缓存空间的大小,V_max表示接收端设备的最大水线阈值,V_min表示接收端设备的最小水线阈值,Vo_pri_min表示接收端设备的最低优先级的队列的开启反压水线值,Vo_pri_max表示接收端设备的最高优先级的队列的开启反压水线值,Vo_pri_k表示优先级为pri_k的队列的开启反压水线值,Vo_pri_(k-1)表示优先级为pri_(k-1)的队列的开启反压水线值,也即是低于优先级pri_k的前一优先级的队列的开启反压水线值,Q_pri表示接收端设备的优先级的数量。B_size represents the size of the buffer space of the receiving end device, V_max represents the maximum waterline threshold of the receiving end device, V_min represents the minimum waterline threshold of the receiving end device, and Vo_pri_min represents the opening back pressure waterline of the lowest priority queue of the receiving end device Value, Vo_pri_max represents the open back pressure waterline value of the highest priority queue of the receiving end device, Vo_pri_k represents the open back pressure waterline value of the queue with priority pri_k, Vo_pri_(k-1) represents the priority of pri_(k -1) The opening back pressure waterline value of the queue, that is, the opening back pressure waterline value of the queue of the previous priority lower than the priority pri_k, and Q_pri represents the priority number of the receiving end device.
示例地,请参考图6,其示出了本申请实施例提供的一种拥塞控制的示意图,参见图6,接收端设备具有pri_1~pri_8这8个优先级的队列,优先级为pri_1的队列的开启反压水线为Vo_pri_1,关闭反压水线为Vc_pri_1,优先级为pri_2的队列的开启反压水线为Vo_pri_2,关闭反压水线为Vc_pri_2,优先级为pri_3的队列的开启反压水线为Vo_pri_3,关闭反压水线为Vc_pri_3,依次类推,优先级为pri_8的队列的开启反压水线为Vo_pri_8,关闭反压水线为Vc_pri_8,优先级pri_1~pri_8依次升高,Vo_pri_1~Vo_pri_8依次增大,Vc_pri_1~Vc_pri_8依次增大,也即是,优先级越低的队列,其开启反压水线值和关闭反压水线值越小,优先级越高的队列,其开启反压水线值和关闭反压水线值越大。For example, please refer to FIG. 6, which shows a schematic diagram of congestion control provided by an embodiment of the present application. Referring to FIG. 6, the receiving end device has 8 priority queues from pri_1 to pri_8, and the priority is pri_1. The open back pressure waterline is Vo_pri_1, the closed back pressure water line is Vc_pri_1, the open back pressure water line of the queue with priority pri_2 is Vo_pri_2, the closed back pressure water line is Vc_pri_2, and the open back pressure of the queue with priority pri_3 The water line is Vo_pri_3, the closed back pressure water line is Vc_pri_3, and so on, the open back pressure water line of the queue with priority pri_8 is Vo_pri_8, the closed back pressure water line is Vc_pri_8, and the priority levels pri_1~pri_8 increase in turn, Vo_pri_1~ Vo_pri_8 increases in sequence, and Vc_pri_1~Vc_pri_8 increases in sequence, that is, the lower the priority of the queue, the smaller the value of opening and closing the back pressure waterline, the higher the priority of the queue, the opening of the anti The higher the pressure waterline value and the closing back pressure waterline value.
步骤502、接收端设备监控接收端设备的多个队列。Step 502: The receiving end device monitors multiple queues of the receiving end device.
可选地,根据步骤501可知,该接收端设备的多个队列中的每个队列具有一个优先级, 该接收端设备的多个队列中属于同一优先级的队列可以有多个。接收端设备可以监控该接收端设备的多个队列,确定该接收端设备的多个队列中每个队列的长度,该接收端设备的多个队列对该接收端设备的缓存空间的占用量,该接收端设备的多个队列中每个优先级的所有队列对该接收端设备的缓存空间的占用量等等。Optionally, according to step 501, it can be known that each of the multiple queues of the receiving end device has a priority, and there may be multiple queues belonging to the same priority among the multiple queues of the receiving end device. The receiving-end device can monitor multiple queues of the receiving-end device, determine the length of each of the multiple queues of the receiving-end device, and how much the multiple queues of the receiving-end device occupy the buffer space of the receiving-end device, The occupancy of the buffer space of the receiving end device by all queues of each priority in the multiple queues of the receiving end device, and so on.
可选地,接收端设备可以记录有该接收端设备的多个队列中每个队列的长度,每个优先级的所有队列对该接收端设备的缓存空间的占用量,以及,该接收端设备的所有队列(所有优先级的所有队列)对该接收端设备的缓存空间的占用量,该接收端设备每接收到一个报文,可以根据该报文的目的端口号和优先级等信息,将该报文缓存至该接收端设备中相应的队列(例如目标端口的队列中与该报文的优先级相同的队列),根据该报文的大小更新该相应队列的长度,更新优先级为该报文的优先级的所有队列对该接收端设备的缓存空间的占用量,以及更新该接收端设备的所有队列对该接收端设备的缓存空间的占用量。Optionally, the receiving end device may record the length of each queue in the multiple queues of the receiving end device, the occupation of the buffer space of the receiving end device by all queues of each priority, and the receiving end device All queues (all queues of all priorities) occupy the buffer space of the receiving end device. Each time the receiving end device receives a message, it can change it according to the destination port number and priority of the message. The message is buffered in the corresponding queue in the receiving device (for example, the queue with the same priority as the message in the queue of the target port), and the length of the corresponding queue is updated according to the size of the message, and the update priority is this The occupancy of the buffer space of the receiving end device by all the queues of the message priority, and the occupancy of the buffer space of the receiving end device by all the queues of the receiving end device.
可选地,第一队列可以是该接收端设备的多个队列中的一个,该第一队列的优先级可以为第一优先级,接收端设备可以记录有该第一队列的长度,该第一优先级的所有队列对该接收端设备的缓存空间的占用量,以及,该接收端设备的所有队列对该接收端设备的缓存空间的占用量,该接收端设备对于接收到的第一报文,可以根据该第一报文的目的端口号和优先级等信息将该报文缓存至该第一队列,根据该第一报文的大小更新该第一队列的长度,更新该第一优先级的所有队列对该接收端设备的缓存空间的占用量,以及更新该接收端设备的所有队列对该接收端设备的缓存空间的占用量。Optionally, the first queue may be one of multiple queues of the receiving end device, the priority of the first queue may be the first priority, the receiving end device may record the length of the first queue, and the first queue The occupancy of the buffer space of the receiving-end device by all queues of one priority, and the occupancy of the buffer space of the receiving-end device by all the queues of the receiving-end device, the receiving-end device for the first report received The message can be cached in the first queue according to the destination port number and priority of the first message, the length of the first queue is updated according to the size of the first message, and the first priority is updated. The occupancy of the buffer space of the receiving end device by all the queues of the level, and the occupancy of the buffer space of the receiving end device by all the queues of the receiving end device.
示例地,请参考图7,其示出了本申请实施例提供的一种接收端设备中不同优先级的队列对该接收端设备的缓存空间的占用量的示意图,如图7所示,B_size表示接收端设备的缓存空间的大小,该接收端设备具有pri_1~pri_8这8个优先级的队列,优先级为pri_1的所有队列对该接收端设备的缓存空间的占用量B_pri_1,优先级为pri_2的所有队列对该接收端设备的缓存空间的占用量B_pri_2,优先级为pri_3的所有队列对该接收端设备的缓存空间的占用量B_pri_3,依次类推。假设pri_1~pri_8这8个优先级的中每个优先级的队列的数量为10个,该接收端设备可以记录有该8个优先级的80个队列中每个队列的长度,该80个队列对该接收端设备的缓存空间的占用量B_total,优先级为pri_1的10个队列对该接收端设备的缓存空间的占用量B_pri_1,优先级为pri_2的10个队列对该接收端设备的缓存空间的占用量B_pri_2,优先级为pri_3的10个队列对该接收端设备的缓存空间的占用量B_pri_3等等。第一队列可以是该80个队列中的队列1,第一优先级可以是pri_1,该接收端设备对于接收到的报文1,可以根据该报文1的目的端口号和优先级等信息将该报文1缓存至该队列1,根据该报文1的大小更新该队列1的长度,更新优先级为pri_1的10个队列对该接收端设备的缓存空间的占用量B_pri_1,以及更新该80个的队列对该接收端设备的缓存空间的占用量B_total。For example, please refer to FIG. 7, which shows a schematic diagram of the occupancy of the buffer space of the receiving-end device by queues of different priorities in the receiving-end device provided by an embodiment of the present application. As shown in FIG. 7, B_size Indicates the size of the buffer space of the receiving end device. The receiving end device has 8 priority queues from pri_1 to pri_8. All queues with priority pri_1 occupy the buffer space of the receiving end device B_pri_1, and the priority is pri_2 The occupancy B_pri_2 of the buffer space of the receiving end device by all the queues, the occupancy B_pri_3 of the buffer space of the receiving end device by all queues with priority pri_3, and so on. Assuming that the number of queues for each of the 8 priority levels of pri_1 to pri_8 is 10, the receiving end device can record the length of each queue in the 80 queues of the 8 priority levels, and the 80 queues The buffer space occupied by the receiving end device B_total, the buffer space occupied by the 10 queues with priority pri_1 for the receiving end device B_pri_1, and the buffer space occupied by the 10 queues with priority pri_2 for the receiving end device The occupancy of B_pri_2, the occupancy B_pri_3 of the buffer space of the receiving end device by the 10 queues with priority pri_3, and so on. The first queue can be queue 1 of the 80 queues, and the first priority can be pri_1. For the received message 1, the receiving end device can set the destination port number and priority of the message 1 according to the information such as the destination port number and priority of the message 1. The message 1 is cached in the queue 1, and the length of the queue 1 is updated according to the size of the message 1, the 10 queues with priority pri_1 and the buffer space occupied by the receiving end device B_pri_1 are updated, and the 80 is updated. The occupancy B_total of each queue of the buffer space of the receiving end device.
步骤503、当该接收端设备的多个队列中的第一队列满足预设开启指标时,接收端设备通知发送端设备对该发送端设备中与该第一队列对应的目标队列开启拥塞控制。Step 503: When the first queue of the multiple queues of the receiving end device meets the preset opening index, the receiving end device notifies the sending end device to enable congestion control for the target queue corresponding to the first queue in the sending end device.
在本申请实施例中,接收端设备在监控该接收端设备的多个队列的过程中,可以检测该接收端设备的多个队列中的每个队列是否满足预设开启指标,当该每个队列满足该预设开启指标时,该接收端设备通知发送端设备对该发送端设备中与该每个队列对应的队列开启拥塞控制。In the embodiment of the present application, in the process of monitoring the multiple queues of the receiving end device, the receiving end device can detect whether each of the multiple queues of the receiving end device meets the preset opening index. When the queue meets the preset opening index, the receiving end device notifies the sending end device to enable congestion control for the queue corresponding to each queue in the sending end device.
在本申请实施例中,第一队列可以是该接收端设备的多个队列中的一个,因此接收端设 备在监控该接收端设备的多个队列的过程中,可以检测该第一队列是否满足预设开启指标,当该第一队列满足该预设开启指标时,该接收端设备通知发送端设备对该发送端设备中与该第一队列对应的目标队列开启拥塞控制。其中,该预设开启指标包括:该接收端设备的多个队列对该接收端设备的缓存空间的占用量达到或超出第一队列的开启反压水线值。In the embodiment of the present application, the first queue may be one of the multiple queues of the receiving end device. Therefore, the receiving end device can detect whether the first queue is satisfied during the process of monitoring the multiple queues of the receiving end device. A preset opening index is set. When the first queue meets the preset opening index, the receiving end device notifies the sending end device to enable congestion control for the target queue corresponding to the first queue in the sending end device. Wherein, the preset opening index includes: the amount of the buffer space occupied by the multiple queues of the receiving end device for the receiving end device reaches or exceeds the opening back pressure waterline value of the first queue.
可选地,该预设开启指标还可以包括以下一个或多个:Optionally, the preset opening indicator may further include one or more of the following:
该第一队列属于该接收端设备的多个队列中第一优先级的N个最长队列,该第一队列的优先级为该第一优先级,当该第一优先级为该多个队列的优先级中的最低优先级时,N为大于0的整数,当该第一优先级为该多个队列的优先级中的非最低优先级时,N为大于或等于0的整数;The first queue belongs to the N longest queues of the first priority among the multiple queues of the receiving end device, the priority of the first queue is the first priority, and when the first priority is the multiple queues When the lowest priority among the priorities of, N is an integer greater than 0, and when the first priority is the non-lowest priority among the priorities of the multiple queues, N is an integer greater than or equal to 0;
该第一队列的长度达到或超过预设长度阈值。The length of the first queue reaches or exceeds the preset length threshold.
可选地,该预设开启指标包括:该接收端设备的多个队列对该接收端设备的缓存空间的占用量达到或超出第一队列的开启反压水线值,该第一队列属于该接收端设备的多个队列中第一优先级的N个最长队列,以及该第一队列的长度达到或超过预设长度阈值。也即是,该第一队列同时满足:该接收端设备的多个队列对该接收端设备的缓存空间的占用量达到或超出第一队列的开启反压水线值,该第一队列属于该接收端设备的多个队列中第一优先级的N个最长队列,以及该第一队列的长度达到或超过预设长度阈值,接收端设备通知发送端设备对该发送端设备中与该第一队列对应的目标队列开启拥塞控制。Optionally, the preset opening index includes: the amount of the buffer space occupied by the multiple queues of the receiving end device on the receiving end device reaches or exceeds the open backpressure waterline value of the first queue, and the first queue belongs to the first queue. The N longest queues of the first priority among the multiple queues of the receiving end device, and the length of the first queue reaches or exceeds the preset length threshold. That is, the first queue satisfies at the same time: the amount of the buffer space occupied by the multiple queues of the receiving end device on the receiving end device reaches or exceeds the opening backpressure waterline value of the first queue, and the first queue belongs to the first queue. The N longest queues of the first priority among the multiple queues of the receiving end device, and the length of the first queue reaches or exceeds the preset length threshold, the receiving end device notifies the sending end device of the first priority among the sending end device The target queue corresponding to a queue turns on congestion control.
其中,该预设长度阈值可以是该接收端设备的所有队列的长度的均值,例如接收端设备总有具有80个队列,该预设长度阈值可以是该80个队列的长度的均值。第一优先级的N个最长队列也即是第一优先级的所有队列中的topN个最长队列,该N个最长队列的长度可以相等也可以不相等,该第一优先级的N个最长队列的含义可以是:如果按照长度从大到小的顺序对该第一优先级的所有队列排序,该第一优先级的N个最长队列可以是该第一优先级的所有队列中排序在最前面的N个队列;如果按照长度从小到大的顺序对该第一优先级的所有队列排序,该第一优先级的N个最长队列可以是该第一优先级的所有队列中排序在最后面的N个队列。例如,N=5,第一优先级的队列总共有10个,该10个队列分别为队列1、队列2、队列3、队列4、队列5、队列6、队列7、队列8、队列9、队列10,按照长度从大到小的顺序对该10个队列排序得到的结果可以为:队列1、队列2、队列5、队列4、队列3、队列6、队列7、队列8、队列9、队列10,则该第一优先级的N个最长队列可以是排序在最前面的5个队列,分别为队列1、队列2、队列5、队列4和队列3,按照长度从小到大的顺序对该10个队列排序得到的结果可以为:队列10、队列9、队列8、队列7、队列6、队列3、队列4、队列5、队列2、队列1,则该第一优先级的N个最长队列可以是排序在最后面的5个队列,分别为队列1、队列2、队列5、队列4和队列3。The preset length threshold may be the average value of the lengths of all queues of the receiving end device. For example, the receiving end device always has 80 queues, and the preset length threshold may be the average value of the lengths of the 80 queues. The N longest queues of the first priority are the topN longest queues among all the queues of the first priority. The length of the N longest queues may be equal or unequal. The N of the first priority The meaning of the longest queues can be: if all the queues of the first priority are sorted according to the order of their length, the N longest queues of the first priority can be all the queues of the first priority The N queues that are sorted at the top of the list; if all the queues of the first priority are sorted in ascending order of length, the N longest queues of the first priority can be all the queues of the first priority The N queues sorted in the bottom. For example, N=5, there are a total of 10 queues of the first priority, and the 10 queues are queue 1, queue 2, queue 3, queue 4, queue 5, queue 6, queue 7, queue 8, queue 9, and Queue 10, the results obtained by sorting the 10 queues in order of length from largest to smallest can be: Queue 1, Queue 2, Queue 5, Queue 4, Queue 3, Queue 6, Queue 7, Queue 8, Queue 9, Queue 10, the N longest queues of the first priority can be the top 5 queues, which are queue 1, queue 2, queue 5, queue 4, and queue 3, in the order of ascending length The result of sorting the 10 queues can be: queue 10, queue 9, queue 8, queue 7, queue 6, queue 3, queue 4, queue 5, queue 2, queue 1, then the N of the first priority The longest queues can be the 5 last queues, which are queue 1, queue 2, queue 5, queue 4, and queue 3.
可选地,接收端设备通知发送端设备对该发送端设备中与该第一队列对应的目标队列开启拥塞控制可以包括:接收端设备向该发送端设备发送开启控制消息,该开启控制消息指示该发送端设备对该目标队列开启拥塞控制。可选地,该开启控制消息可以携带目标队列的标识和使能标志位,该目标队列的标识指示该目标队列,该使能标志位指示发送端设备开启拥塞控制,从而该开启控制消息指示发送端设备对目标队列开启拥塞控制。可选地,该开启控制消息还可以携带发送端设备的标识,以使发送端设备根据该发送端设备的标识确定该开启控制消息是发往该发送端设备的(也即是该发送端设备的标识指示该开启控制消息的接收者)。 可选地,接收端设备可以以广播的形式向发送端设备发送该开启控制消息,例如,该接收端设备向该接收端设备的所有发送端设备广播该开启控制消息。Optionally, the receiving-end device notifying the sending-end device to enable congestion control for the target queue corresponding to the first queue in the sending-end device may include: the receiving-end device sends an enabling control message to the sending-end device, where the enabling control message indicates The sending end device enables congestion control for the target queue. Optionally, the turn-on control message may carry an identifier of the target queue and an enable flag bit, the identifier of the target queue indicates the target queue, and the enable flag bit instructs the sending end device to turn on congestion control, so that the turn-on control message instructs to send The end device enables congestion control on the target queue. Optionally, the opening control message may also carry the identification of the sending end device, so that the sending end device determines according to the identification of the sending end device that the opening control message is sent to the sending end device (that is, the sending end device). The identifier indicates the recipient of the turn-on control message). Optionally, the receiving end device may send the opening control message to the sending end device in a broadcast form. For example, the receiving end device broadcasts the opening control message to all sending end devices of the receiving end device.
可选地,在本申请实施例中,接收端设备可以按照优先级的高低确定是否进行反压控制以及根据优先级的高低确定需要反压的队列的数量,对于优先级最高的队列,可以不进行反压,如果需要同时反压多个不同优先级的队列,需要反压的该多个优先级的队列的数量可以按照该多个优先级从低到高依次减小,也即是,优先级越低,反压的队列的数量越多,优先级越高,反压的队列的数量越高。Optionally, in the embodiment of the present application, the receiving end device may determine whether to perform back pressure control according to the priority level, and determine the number of queues that need back pressure according to the priority level. For the queue with the highest priority, it is not necessary to perform back pressure control. For back pressure, if you need to back pressure multiple queues with different priorities at the same time, the number of queues with multiple priorities that need back pressure can be reduced from low to high according to the multiple priorities, that is, priority The lower the level, the greater the number of backpressure queues, and the higher the priority, the higher the number of backpressure queues.
示例地,请继续参考图6,接收端设备具有pri_1~pri_8这8个优先级的队列,pri_1~pri_8这8个优先级依次升高,可以不对该pri_8的队列进行反压。再示例地,假设需要同时反压pri_1~pri_8这8个不同优先级的队列,则需要反压的队列中,各个优先级队列的数量按照优先级从低到高依次减小,例如,pri_3高于pri_2,则需要反压的队列中,优先级为pri_2的队列的数量可以大于优先级为pri_3的队列的数量,优先级为pri_2的队列的数量可以为g,优先级为pri_3的队列的数量可以为0.8×g,优先级为pri_2的g个队列属于该优先级为pri_2的所有队列中的N个最长队列。在一些实施例中,高优先级队列的最长队列少于低优先级队列的最长队列数量,在另一些实施例中,高优先级队列的最长队列数量可以是0。可选地,在一些实施例中,需要反压的队列中,最低优先级的队列包括4个最长队列,中优先级的队列包括4个最长队列,最高优先级的队列可以包括2个或0个最长队列。在该场景下,可以优先对低优先级的最长队列反压,保证较高优先级的队列的时延和吞吐量。For example, please continue to refer to FIG. 6, the receiving end device has 8 priority queues pri_1 to pri_8, and the 8 priorities of pri_1 to pri_8 are successively increased, and the back pressure on the pri_8 queue may not be performed. As another example, suppose that 8 queues with different priorities, pri_1 to pri_8, need to be back-pressured at the same time. In the queues that need back-pressure, the number of priority queues decreases in order from low to high, for example, pri_3 is high. For pri_2, the number of queues with priority pri_2 can be greater than the number of queues with priority pri_3, the number of queues with priority pri_2 can be g, and the number of queues with priority pri_3 in the queue that needs back pressure It can be 0.8×g, and the g queues with priority pri_2 belong to the N longest queues among all the queues with priority pri_2. In some embodiments, the longest queue of the high-priority queue is less than the longest queue of the low-priority queue. In other embodiments, the longest queue of the high-priority queue may be zero. Optionally, in some embodiments, among the queues that require back pressure, the lowest priority queue includes 4 longest queues, the medium priority queue includes 4 longest queues, and the highest priority queue may include 2 Or 0 longest queues. In this scenario, the longest queue with low priority can be back pressured first to ensure the delay and throughput of the queue with higher priority.
步骤504、发送端设备根据接收端设备的通知对该发送端设备的目标队列开启拥塞控制。Step 504: The sending end device starts congestion control for the target queue of the sending end device according to the notification of the receiving end device.
可选地,根据步骤503可知,接收端设备在接收端设备的第一队列满足预设开启指标时通知发送端设备对目标队列开启拥塞控制,该目标队列与该接收到设备的第一队列对应。其中,该预设开启指标包括:该接收端设备的多个队列对该接收端设备的缓存空间的占用量达到或超出该第一队列的开启反压水线值。Optionally, according to step 503, the receiving end device notifies the sending end device to enable congestion control on the target queue when the first queue of the receiving end device meets the preset opening index, and the target queue corresponds to the first queue of the receiving device . Wherein, the preset opening index includes: the amount of the buffer space occupied by the multiple queues of the receiving end device for the receiving end device reaches or exceeds the open back pressure waterline value of the first queue.
可选地,该预设开启指标还可以以下一个或多个:Optionally, the preset opening indicator may also be one or more of the following:
该第一队列属于该接收端设备的多个队列中第一优先级的N个最长队列,该第一队列的优先级为该第一优先级,当该第一优先级为该多个队列的优先级中的最低优先级时,N为大于0的整数,当该第一优先级为该多个队列的优先级中的非最低优先级时,N为大于或等于0的整数;The first queue belongs to the N longest queues of the first priority among the multiple queues of the receiving end device, the priority of the first queue is the first priority, and when the first priority is the multiple queues When the lowest priority among the priorities of, N is an integer greater than 0, and when the first priority is the non-lowest priority among the priorities of the multiple queues, N is an integer greater than or equal to 0;
该第一队列的长度达到或超过预设长度阈值。The length of the first queue reaches or exceeds the preset length threshold.
可选地,发送端设备根据接收端设备的通知对该发送端设备的目标队列开启拥塞控制可以包括:发送端设备接收该接收端设备发送的开启控制消息,根据该开启控制消息对该目标队列开启拥塞控制,其中,该开启控制消息指示该发送端设备对该目标队列开启拥塞控制。可选地,该开启控制消息可以携带目标队列的标识和使能标志位,该目标队列的标识指示该目标队列,该使能标志位指示发送端设备开启拥塞控制,从而该开启控制消息指示发送端设备对目标队列开启拥塞控制。可选地,该开启控制消息还可以携带该发送端设备的标识,该发送端设备的标识指示该开启控制消息的接收者。发送端设备可以解析该开启控制消息得到发送端设备的标识、使能标志位以及目标队列的标识,根据该发送端设备的标识确定该开启控制消息是发往该发送端设备的,根据该使能标志位确定需要开启拥塞控制,根据目标队列的标识确定目标队列,从而根据该开启控制消息对该目标队列开启拥塞控制。Optionally, the sending-end device enabling congestion control on the target queue of the sending-end device according to the notification of the receiving-end device may include: the sending-end device receives an opening control message sent by the receiving-end device, and according to the opening control message to the target queue Enable congestion control, where the enable control message instructs the sending end device to enable congestion control for the target queue. Optionally, the turn-on control message may carry an identifier of the target queue and an enable flag bit, the identifier of the target queue indicates the target queue, and the enable flag bit instructs the sending end device to turn on congestion control, so that the turn-on control message instructs to send The end device enables congestion control on the target queue. Optionally, the turn-on control message may also carry an identifier of the sending-end device, and the identifier of the sending-end device indicates the recipient of the turn-on control message. The sender device can parse the start control message to obtain the sender device's identity, enable flag bit, and target queue identity. According to the sender device’s identity, it is determined that the switch on control message is sent to the sender device. The capability flag determines that congestion control needs to be turned on, and the target queue is determined according to the identifier of the target queue, so that congestion control is turned on for the target queue according to the turn-on control message.
步骤505、接收端设备为目标队列分配发送信用值。Step 505: The receiving end device allocates a sending credit value to the target queue.
接收端设备通知发送端设备对该发送端设备中的目标队列开启拥塞控制之后,可以为该目标队列分配发送信用值,以使发送端设备按照该发送信用值向接收端设备发送该目标队列中的报文。其中,该发送信用值可以为接收端设备本次能够调度的该目标队列中的报文数量,或者发送端设备本次可以发送的该目标队列中的报文数量,接收端设备可以根据自身的调度能力为该目标队列分配发送信用值。一些实施场景中,该发送信用值也可以称为队列信用值。After the receiving-end device notifies the sending-end device to enable congestion control for the target queue in the sending-end device, it can assign a sending credit value to the target queue, so that the sending-end device sends the target queue to the receiving-end device according to the sending credit value. Message. Among them, the sending credit value may be the number of packets in the target queue that the receiving end device can schedule this time, or the number of packets in the target queue that the sending end device can send this time, and the receiving end device can be based on its own The scheduling capability allocates sending credits to the target queue. In some implementation scenarios, the sending credit value may also be referred to as the queue credit value.
可选地,发送端设备根据接收端设备的通知对该发送端设备中的目标队列开启拥塞控制之后,可以向接收端设备发送包含该目标队列的队列信息(例如队列长度和优先级等)的消息,接收端设备根据该消息中的队列信息为目标队列分配发送信用值。其中,包含该目标队列的队列信息的消息可以是REQ。Optionally, after the sending-end device starts congestion control for the target queue in the sending-end device according to the notification of the receiving-end device, it can send to the receiving-end device a message containing the queue information (such as queue length and priority, etc.) of the target queue. Message, the receiving end device allocates a sending credit value to the target queue according to the queue information in the message. Wherein, the message containing the queue information of the target queue may be REQ.
可选地,接收端设备可以根据第一队列的开启反压水线确定一分配系数,根据该消息中的队列信息,以该分配系数为目标队列分配发送信用值。其中,当该第一队列的开启反压水线为系统设置的初始反压水线值时,发送端设备对发送端设备中的目标队列开启拥塞控制之后,接收端设备首次调度该目标队列中的报文时,该分配系数可以为初始分配系数,该初始分配系数例如可以为1。Optionally, the receiving end device may determine a distribution coefficient according to the open backpressure waterline of the first queue, and use the distribution coefficient to allocate the transmission credit value to the target queue according to the queue information in the message. Wherein, when the opening backpressure waterline of the first queue is the initial backpressure waterline value set by the system, after the sending end device starts congestion control on the target queue in the sending end device, the receiving end device schedules the target queue for the first time In the case of a message, the distribution coefficient may be the initial distribution coefficient, and the initial distribution coefficient may be 1, for example.
步骤506、接收端设备向发送端设备发送包含该发送信用值的消息。Step 506: The receiving end device sends a message containing the sending credit value to the sending end device.
可选地,接收端设备可以根据目标队列的发送信用值生成包含该发送信用值的消息,通过与发送端设备之间的通信连接,向该发送端设备发送该包含该发送信用值的消息。其中,该包含该发送信用值的消息可以是ACK。Optionally, the receiving end device may generate a message containing the sending credit value according to the sending credit value of the target queue, and sending the message containing the sending credit value to the sending end device through a communication connection with the sending end device. Wherein, the message containing the sending credit value may be ACK.
步骤507、发送端设备按照该发送信用值向接收端设备发送目标队列中的报文。Step 507: The sending end device sends the packet in the target queue to the receiving end device according to the sending credit value.
对应于接收端设备向发送端设备发送包含目标队列的发送信用值的消息,发送端设备可以接收该包含该目标队列的发送信用值的消息。之后,发送端设备可以按照该发送信用值向接收端设备发送该目标队列中的报文。Corresponding to the receiving end device sending a message containing the sending credit value of the target queue to the sending end device, the sending end device may receive the message containing the sending credit value of the target queue. After that, the sending end device may send the message in the target queue to the receiving end device according to the sending credit value.
示例地,该目标队列的发送信用值可以为5(例如5个报文),则发送端设备可以按照该发送信用值向接收端设备发送该目标队列中的5个报文。For example, the sending credit value of the target queue may be 5 (for example, 5 packets), and the sending end device may send 5 packets in the target queue to the receiving end device according to the sending credit value.
步骤508、当该接收端设备的多个队列对接收端设备的缓存空间的占用量达到或超出该接收端设备的最小水线阈值时,接收端设备调整该接收端设备的各个优先级的队列的反压水线值。Step 508: When the occupancy of the buffer space of the receiving end device by the multiple queues of the receiving end device reaches or exceeds the minimum waterline threshold of the receiving end device, the receiving end device adjusts the queues of each priority of the receiving end device. The back pressure waterline value.
在本申请实施例中,接收端设备可以具有最小水线阈值,该接收端设备在监控该接收端设备的多个队列的过程中,可以检测该接收端设备的多个队列对该接收端设备的缓存空间的占用量是否达到或超出该接收端设备的最小水线阈值,当该接收端设备的多个队列对该接收端设备的缓存空间的占用量达到或超出该接收端设备的最小水线阈值时,接收端设备可以调整该接收端设备的各个优先级的队列的反压水线值,以根据调整后的反压水线值进行拥塞感知和判定,从而灵活控制。可选地,接收端设备可以动态调整该接收端设备的最小水线阈值,接收端设备每次检测该接收端设备的多个队列对该接收端设备的缓存空间的占用量是否达到或超出该接收端设备的最小水线阈值时,使用的最小水线阈值可以是当前时刻接收端设备的最小水线阈值(也即是最近一次调整后的最小水线阈值)。In the embodiment of the present application, the receiving end device may have a minimum watermark threshold. In the process of monitoring the multiple queues of the receiving end device, the receiving end device may detect that the multiple queues of the receiving end device have a positive effect on the receiving end device. Whether the occupancy of the buffer space reaches or exceeds the minimum water mark threshold of the receiving end device, when the multiple queues of the receiving end device occupies the receiving end device’s buffer space reach or exceed the minimum water mark threshold of the receiving end device When the line threshold is set, the receiving end device can adjust the back pressure waterline value of each priority queue of the receiving end device to perform congestion perception and judgment according to the adjusted back pressure waterline value, thereby flexibly controlling. Optionally, the receiving end device can dynamically adjust the minimum watermark threshold of the receiving end device, and the receiving end device detects each time whether the multiple queues of the receiving end device occupy or exceed the buffer space of the receiving end device. When the minimum watermark threshold of the receiving end device is used, the minimum watermark threshold used may be the minimum watermark threshold of the receiving end device at the current moment (that is, the minimum watermark threshold after the most recent adjustment).
在本申请实施例中,接收端设备调整该接收端设备的各个优先级的队列的反压水线值可以包括以下三种可能的实现方式:In the embodiment of the present application, the receiving end device adjusting the backpressure waterline value of each priority queue of the receiving end device may include the following three possible implementation manners:
第一种实现方式:接收端设备可以具有最大水线阈值,接收端设备根据该接收端设备的最大水线阈值、最小水线阈值,以及该接收端设备的队列对该接收端设备的缓存空间的占用量,调整该接收端设备的各个优先级的队列的反压水线值。The first implementation mode: the receiving end device may have a maximum watermark threshold, and the receiving end device is based on the maximum watermark threshold and minimum watermark threshold of the receiving end device, and the buffer space of the receiving end device's queue for the receiving end device Adjust the backpressure waterline value of each priority queue of the receiving end device.
可选地,请参考图8,其示出了本申请实施例提供的一种接收端设备调整该接收端设备的任一优先级的队列的反压水线值的方法流程图,对于每个优先级的队列,接收端设备可以按照该图8所示的方法调整该优先级的队列的反压水线值。参见图8,该方法可以包括:Optionally, please refer to FIG. 8, which shows a flow chart of a method for a receiving end device to adjust the back pressure waterline value of any priority queue of the receiving end device according to an embodiment of the present application. For each For the priority queue, the receiving end device can adjust the back pressure waterline value of the priority queue according to the method shown in FIG. 8. Referring to Figure 8, the method may include:
子步骤5081a、根据接收端设备的最大水线阈值、该接收端设备的最小水线阈值,低于任一优先级的所有优先级的队列对该接收端设备的缓存空间的占用量,以及该接收端设备的所有队列对该接收端设备的缓存空间的占用量,调整该任一优先级的队列的开启反压水线值。Sub-step 5081a, according to the maximum watermark threshold of the receiving end device, the minimum watermark threshold of the receiving end device, the occupancy of the buffer space of the receiving end device by all priority queues lower than any priority, and the Regarding the occupancy of all queues of the receiving end device to the buffer space of the receiving end device, the opening back pressure waterline value of the queue of any priority is adjusted.
其中,任一优先级的队列对接收端设备的缓存空间的占用量与低于该任一优先级的所有优先级的队列对该接收端设备的缓存空间的占用量负相关,该任一优先级的队列的开启反压水线值与该任一优先级的队列对该接收端设备的缓存空间的占用量负相关;该任一优先级的队列的开启反压水线值大于或等于低于该任一优先级的所有优先级的队列的开启反压水线值。也即是,如果低于任一优先级的所有优先级的队列对接收端设备的缓存空间的占用量较大,则该任一优先级的队列对接收端设备的缓存空间的占用量相对较小,该任一优先级的队列越不容易反压,该任一优先级的队列的开启反压水线值越大,优先级越高的队列,开启反压水线值越大,优先级越低的队列,开启反压水线值越小。可选地,该任一优先级的队列的开启反压水线值与低于该任一优先级的所有优先级的队列对该接收端设备的缓存空间的占用量正相关。Wherein, the occupancy of the buffer space of the receiving end device by the queue of any priority is negatively correlated with the occupancy of the buffer space of the receiving end device by all priority queues lower than the any priority. The open back pressure waterline value of the queue of any priority is negatively related to the amount of buffer space occupied by the receiving end device by the queue of any priority; the open back pressure waterline value of the queue of any priority is greater than or equal to low The open backpressure waterline value of all priority queues at any priority level. That is, if queues of all priority levels lower than any priority occupies a large amount of buffer space of the receiving end device, the queue of any priority level occupies a relatively large amount of buffer space of the receiving end device. Smaller, the queues of any priority are less likely to be back pressured, the higher the back pressure waterline value of the queue of any priority is, the higher the priority queue, the higher the back pressure waterline value is, the priority is The lower the queue, the smaller the opening back pressure waterline value. Optionally, the open back pressure waterline value of the queue of any priority is positively correlated with the occupancy of the buffer space of the receiving end device by the queues of all priorities lower than the any priority.
可选地,在本申请实施例中,接收端设备可以根据该接收端设备的最大水线阈值、该接收端设备的最小水线阈值,低于任一优先级的所有优先级的队列对该接收端设备的缓存空间的占用量,以及该接收端设备的所有队列对该接收端设备的缓存空间的占用量,采用水线值公式计算该任一优先级的队列的开启反压水线值,根据计算结果调整该任一优先级的队列的开启反压水线值。其中,该水线值公式可以为:Optionally, in this embodiment of the present application, the receiving end device may respond to the maximum watermark threshold of the receiving end device, the minimum watermark threshold of the receiving end device, and all priority queues lower than any priority. The occupancy of the buffer space of the receiving end device, and the occupancy of all queues of the receiving end device to the buffer space of the receiving end device, the waterline value formula is used to calculate the open backpressure waterline value of the queue of any priority , Adjust the opening back pressure waterline value of the queue of any priority according to the calculation result. Among them, the waterline value formula can be:
Figure PCTCN2021072574-appb-000003
Figure PCTCN2021072574-appb-000003
在该水线值公式中,Vo_pri_k表示优先级为pri_k的队列的开启反压水线值,B_pri_i表示优先级为pri_i的所有队列对接收端设备的缓存空间的占用量,B_total表示接收端设备的所有队列对接收端设备的缓存空间的占用量,V_max表示接收端设备的最大水线阈值,V_min表示接收端设备的最小水线阈值。In this waterline value formula, Vo_pri_k represents the opening back pressure waterline value of the queue with priority pri_k, B_pri_i represents the occupation of the buffer space of the receiving end device by all queues with priority pri_i, and B_total represents the receiving end device's buffer space All queues occupy the buffer space of the receiving end device, V_max represents the maximum watermark threshold of the receiving end device, and V_min represents the minimum watermark threshold of the receiving end device.
可选地,接收端设备可以将该接收端设备的最大水线阈值、该接收端设备的最小水线阈值,低于任一优先级的所有优先级的队列对该接收端设备的缓存空间的占用量,以及该接收端设备的所有队列对该接收端设备的缓存空间的占用量代入该水线值公式计算该任一优先级的队列的开启反压水线值。示例地,接收端设备中存在pri_1~pri_8这8个优先级的队列,优先级pri_1~pri_8依次升高,当pri_k=pri_1时,接收端设备中不存在低于pri_1的优先级,因此上述公式中的B_pri_i不存在,Vo_pri_1=Vo_pri_min,当pri_k=pri_8时,Vo_pri_8=Vo_pri_max。Optionally, the receiving end device can set the maximum watermark threshold of the receiving end device, the minimum watermark threshold of the receiving end device, and all priority queues lower than any priority to the buffer space of the receiving end device. The occupancy and the occupancy of all queues of the receiving end device to the buffer space of the receiving end device are substituted into the waterline value formula to calculate the opening backpressure waterline value of the queue of any priority. For example, there are 8 priority queues of pri_1 to pri_8 in the receiving end device, and the priorities pri_1 to pri_8 increase in sequence. When pri_k=pri_1, there is no priority lower than pri_1 in the receiving end device, so the above formula B_pri_i in does not exist, Vo_pri_1=Vo_pri_min, when pri_k=pri_8, Vo_pri_8=Vo_pri_max.
需要说明的是,在本申请实施例中,接收端设备可以动态调整该接收端设备的最小水线 阈值,在该第一种实现方式中,接收端设备调整任一优先级的队列的开启反压水线值时,使用的最小水线阈值可以是当前时刻接收端设备的最小水线阈值(也即是最近一次调整后的最小水线阈值)。It should be noted that in this embodiment of the present application, the receiving end device can dynamically adjust the minimum watermark threshold of the receiving end device. In the first implementation manner, the receiving end device adjusts the opening response of any priority queue. When setting the watermark value, the minimum watermark threshold used may be the minimum watermark threshold of the receiving end device at the current moment (that is, the minimum watermark threshold after the most recent adjustment).
子步骤5082a、根据该任一优先级的队列的开启反压水线值,调整该任一优先级的队列的关闭反压水线值。Sub-step 5082a: According to the open back pressure waterline value of the queue of any priority, adjust the closed back pressure waterline value of the queue of any priority.
在本申请实施例中,每个优先级的队列的开启反压水线值与关闭反压水线值之间的差值可以为定值,因此,对于任一优先级的队列,接收端设备可以将该任一优先级的队列的开启反压水线与该定值的差值确定为该任一优先级的队列的关闭反压水线值。可选地,Vc_pri_k=Vo_pri_k-a,a表示该定值,示例地,a=10。In the embodiment of this application, the difference between the open back pressure waterline value and the closed back pressure waterline value of each priority queue can be a fixed value. Therefore, for any priority queue, the receiving end device The difference between the open backpressure waterline of the queue of any priority and the fixed value may be determined as the closed backpressure waterline value of the queue of any priority. Optionally, Vc_pri_k=Vo_pri_k-a, a represents the fixed value, for example, a=10.
在本申请实施例中,任一优先级的队列对接收端设备的缓存空间的占用量与低于该任一优先级的所有优先级的队列对该接收端设备的缓存空间的占用量负相关,该任一优先级的队列的开启反压水线值与该任一优先级的队列对该接收端设备的缓存空间的占用量负相关;该任一优先级的队列的开启反压水线值大于或等于低于该任一优先级的所有优先级的队列的开启反压水线值。也即是,如果低于任一优先级的所有优先级的队列对接收端设备的缓存空间的占用量较大,则该任一优先级的队列对接收端设备的缓存空间的占用量相对较小,该任一优先级的队列越不容易反压,该任一优先级的队列的开启反压水线值越大,优先级越高的队列,开启反压水线值越大,优先级越低的队列,开启反压水线值越小,这样一来,可以避免高优先级的队列过早受控影响高优先级的队列的性能,又可以避免高优先级的队列受控过晚。In the embodiment of the present application, the occupancy of the buffer space of the receiving end device by a queue of any priority is negatively related to the occupancy of the buffer space of the receiving end device by all priority queues below the any priority. , The opening backpressure waterline value of the queue of any priority is negatively related to the amount of buffer space occupied by the receiving end device by the queue of any priority; the opening backpressure waterline of the queue of any priority The value is greater than or equal to the open back pressure waterline value of all priority queues lower than any priority. That is, if queues of all priority levels lower than any priority occupies a large amount of buffer space of the receiving end device, the queue of any priority level occupies a relatively large amount of buffer space of the receiving end device. Smaller, the queues of any priority are less likely to be back pressured, the higher the back pressure waterline value of the queue of any priority is, the higher the priority queue, the higher the back pressure waterline value is, the priority is The lower the queue, the smaller the opening back pressure waterline value. In this way, it can prevent the high-priority queue from being controlled too early to affect the performance of the high-priority queue, and it can also avoid the high-priority queue being controlled too late. .
第二种实现方式:接收端设备根据该接收端设备的各个优先级的所有队列对接收端设备的缓存空间的占用量以及该缓存空间的大小,调整该各个优先级的队列的反压水线值。The second implementation mode: the receiving end device adjusts the back pressure waterline of the queues of each priority according to the amount of the buffer space occupied by all the queues of the receiving end device and the size of the buffer space of the receiving end device. value.
可选地,请参考图9,其示出了本申请实施例提供的另一种接收端设备调整该接收端设备的任一优先级的队列的反压水线值的方法流程图,对于每个优先级的队列,接收端设备可以按照该图9所示的方法调整该优先级的队列的反压水线值。参见图9,该方法可以包括:Optionally, please refer to FIG. 9, which shows a flowchart of another method for a receiving end device to adjust the back pressure waterline value of a queue of any priority of the receiving end device according to an embodiment of the present application. For a priority queue, the receiving end device can adjust the back pressure waterline value of the priority queue according to the method shown in FIG. 9. Referring to Figure 9, the method may include:
子步骤5081b、根据任一优先级的所有队列对接收端设备的缓存空间的占用量以及该缓存空间的大小,调整该任一优先级的队列的开启反压水线值,该任一优先级的队列的开启反压水线值与该任一优先级的所有队列对该接收端设备的缓存空间的占用量负相关。Sub-step 5081b: Adjust the opening back pressure waterline value of the queue of any priority according to the occupation of the buffer space of the receiving end device by all the queues of any priority and the size of the buffer space. The open back pressure waterline value of the queues is negatively correlated with the amount of buffer space occupied by all queues of any priority level on the receiving end device.
可选地,接收端设备可以根据任一优先级的所有队列对接收端设备的缓存空间的占用量以及该接收端设备的缓存空间的大小的比值(下述称为队列占用比值)确定水线系数,根据确定的水线系数调整该任一优先级的队列的开启反压水线值。其中,该任一优先级的队列的开启反压水线值与该任一优先级的所有队列对该接收端设备的缓存空间的占用量负相关,也即是,对该接收端设备的缓存空间的占用量越大的队列,开启反压水线越小,反压越强。Optionally, the receiving end device may determine the waterline according to the ratio of the occupancy of all queues of any priority to the buffer space of the receiving end device and the size of the buffer space of the receiving end device (hereinafter referred to as the queue occupancy ratio) The coefficient is to adjust the opening back pressure waterline value of the queue of any priority according to the determined waterline coefficient. Wherein, the open backpressure waterline value of the queue of any priority is negatively related to the amount of buffer space occupied by all queues of the any priority on the receiving end device, that is, the buffer of the receiving end device The larger the space occupied by the queue, the smaller the open back pressure waterline and the stronger the back pressure.
可选地,接收端设备可以确定任一优先级的所有队列对该接收端设备的缓存空间的占用量与该接收端设备的缓存空间的大小的比值(也即是任一优先级的队列占用比值),根据该任一优先级的队列占用比值,以及,占用比值区间与水线系数的对应关系,确定该任一优先级的队列占用比值对应的水线系数,根据该任一优先级的队列占用比值对应的水线系数,调整该任一优先级的队列的开启反压水线值。可选地,接收端可以将该任一优先级的队列的当前的开启反压水线值与相应的水线系数的乘积确定为该任一优先级的队列的调整后的开启反压水线值。Optionally, the receiving end device may determine the ratio of the amount of buffer space occupied by all queues of any priority to the size of the buffer space of the receiving end device (that is, the occupancy of queues of any priority Ratio), according to the queue occupancy ratio of any priority, and the corresponding relationship between the occupancy ratio interval and the waterline coefficient, determine the waterline coefficient corresponding to the queue occupancy ratio of any priority, and determine the waterline coefficient corresponding to the queue occupancy ratio of any priority. The waterline coefficient corresponding to the queue occupancy ratio adjusts the opening back pressure waterline value of the queue of any priority. Optionally, the receiving end may determine the product of the current open backpressure waterline value of the queue of any priority and the corresponding waterline coefficient as the adjusted open backpressure waterline of the queue of any priority value.
示例地,占用比值区间与水线系数的对应关系可以如下表1所示:For example, the corresponding relationship between the occupancy ratio interval and the waterline coefficient can be shown in Table 1 below:
表1Table 1
占用比值区间Occupation ratio range 水线系数Waterline coefficient
(0.5,0.8](0.5, 0.8] 0.950.95
(0.8,1](0.8, 1] 0.90.9
示例地,假设优先级为pri_k的所有队列对接收端设备的缓存空间的占用量与该接收端设备的缓存空间的大小的比值为0.6,0.6属于比值区间(0.5,0.8],该接收端设备根据表1确定该(0.5,0.8]对应的水线系数为0.95,因此该接收端设备确定该优先级为pri_k的队列调整后的开启反压水线值为Vo_pri_k=0.95×Vo_pri_k,也即是优先级为pri_k的队列的开启反压水线值下降5%。For example, suppose that the ratio of the buffer space occupied by all queues with priority pri_k to the buffer space of the receiving device and the buffer space of the receiving device is 0.6, and 0.6 belongs to the ratio range (0.5, 0.8), and the receiving device According to Table 1, it is determined that the waterline coefficient corresponding to (0.5, 0.8) is 0.95, so the receiving end device determines that the adjusted open back pressure waterline value of the queue with priority pri_k is Vo_pri_k=0.95×Vo_pri_k, that is, The opening back pressure waterline value of the queue with priority pri_k is reduced by 5%.
再示例地,假设优先级为pri_k的所有队列对接收端设备的缓存空间的占用量与该接收端设备的缓存空间的大小的比值为0.85,该0.85属于比值区间(0.8,1],该接收端设备根据表1确定该(0.8,1]对应的水线系数为0.9,因此该接收端设备确定该优先级为pri_k的队列调整后的开启反压水线值为Vo_pri_k=0.9×Vo_pri_k,也即是优先级为pri_k的队列的开启反压水线值下降10%。As another example, suppose that the ratio of the occupancy of all queues with priority pri_k to the buffer space of the receiving end device to the size of the buffer space of the receiving end device is 0.85, and this 0.85 belongs to the ratio interval (0.8, 1], the receiving The end device determines that the waterline coefficient corresponding to (0.8, 1) is 0.9 according to Table 1, so the receiving end device determines that the adjusted open back pressure waterline value of the queue with priority pri_k is Vo_pri_k = 0.9×Vo_pri_k, and That is, the opening back pressure waterline value of the queue with priority pri_k drops by 10%.
子步骤5082b、根据该任一优先级的队列的开启反压水线值,调整该任一优先级的队列的关闭反压水线值。Sub-step 5082b: According to the open back pressure waterline value of the queue of any priority, adjust the closed back pressure waterline value of the queue of any priority.
该子步骤5082b的实现过程可以参考前述子步骤5082a,本申请实施例在此不再赘述。For the implementation process of this sub-step 5082b, reference may be made to the aforementioned sub-step 5082a, which will not be repeated in the embodiment of the present application.
第三种实现方式:接收端设备根据最长队列的时延均值,调整各个优先级的队列的反压水线值。The third implementation manner: the receiving end device adjusts the backpressure waterline value of the queues of each priority according to the average delay value of the longest queue.
可选地,请参考图10,其示出了本申请实施例提供的再一种接收端设备调整该接收端设备的任一优先级的队列的反压水线值的方法流程图,对于每个优先级的队列,接收端设备可以按照该图10所示的方法调整该优先级的队列的反压水线值。参见图10,该方法可以包括:Optionally, please refer to FIG. 10, which shows a flowchart of another method for a receiving end device to adjust the back pressure waterline value of any priority queue of the receiving end device according to an embodiment of the present application. A priority queue, the receiving end device can adjust the back pressure waterline value of the priority queue according to the method shown in FIG. 10. Referring to Figure 10, the method may include:
子步骤5081c、根据任一优先级的M个最长队列的时延均值和接收端设备的所有优先级的所有最长队列的时延均值,调整该任一优先级的队列的开启反压水线值。Sub-step 5081c, according to the average delay of the M longest queues of any priority and the average delay of all the longest queues of all priorities of the receiving end device, adjust the opening back pressure of the queue of any priority Line value.
其中,M为大于0的整数,关于该任一优先级的M个最长队列的解释可以参考步骤503中第一优先级的N个最长队列的解释,本申请实施例在此不再赘述。Where, M is an integer greater than 0. For the explanation of the M longest queues of any priority, please refer to the explanation of the N longest queues of the first priority in step 503, which will not be repeated in this embodiment of the application. .
可选地,对于该任一优先级的M个最长队列中的每个最长队列,接收端设备可以确定该每个最长队列的时延,根据该M个最长队列的时延确定该M个最长队列的时延均值,根据所有优先级的所有最长队列的时延确定该所有最长队列的时延均值,进而根据该任一优先级的M个最长队列的时延均值和接收端设备的所有优先级的所有最长队列的时延均值,调整该任一优先级的队列的开启反压水线值。需要说明的是,任意两个优先级的最长队列的数量可以相等或不等,当任意两个优先级的最长队列的数量相等时,该接收端设备的所有优先级的所有最长队列的数量可以是M×p,p表示接收端设备的优先级的数量,M表示该p个优先级中每个优先级的最长队列的数量;当两个或两个以上优先级的最长队列的数量不相等时,该接收端设备的所有优先级的所有最长队列的数量可以是M1+M2+M3+...Mp,M1~Mp依次表示优先级1~p的最长队列的数量。Optionally, for each longest queue among the M longest queues of any priority, the receiving end device may determine the delay of each longest queue, and determine the delay according to the delay of the M longest queues The average delay of the M longest queues is determined according to the delays of all the longest queues of all priorities, and the average delay of all the longest queues is determined according to the delays of the M longest queues of any priority. The average value and the average value of the delay of all the longest queues of all priorities of the receiving end device are adjusted to the open back pressure waterline value of the queue of any priority. It should be noted that the number of the longest queues of any two priority levels can be equal or unequal. When the number of the longest queues of any two priority levels is equal, all the longest queues of all priorities of the receiving end device The number can be M×p, p represents the number of priorities of the receiving end device, and M represents the number of the longest queue of each priority in the p priorities; when the longest of two or more priorities When the number of queues is not equal, the number of all the longest queues of all priorities of the receiving end device can be M1+M2+M3+...Mp, and M1~Mp in turn represent the number of the longest queues of priority 1~p .
可选地,当该任一优先级的M个最长队列的时延均值大于接收端设备的所有优先级的所 有最长队列的时延均值时,接收端设备调整该任一优先级的队列的开启反压水线值在当前开启反压水线值的基础上下降5%~10%,例如,接收端设备将该任一优先级的队列的开启反压水线值调整至目标水线值区间,该目标水线值区间可以为[0.95×Vo_pri,0.8×Vo_pri],Vo_pri表示该任一优先级的队列的当前开启反压水线值;当该任一优先级的M个最长队列的时延均值不大于接收端设备的所有优先级的所有最长队列的时延均值时,接收端设备将该任一优先级的队列的开启反压水线值调整至该任一优先级的队列的初始开启反压水线值,该任一优先级的队列的初始开启反压水线值为系统预先为该任一优先级的队列配置的开启反压水线值,例如,该任一优先级的队列的初始开启反压水线值可以是在步骤501中接收端设备为该任一优先级的队列设置的开启反压水线值。Optionally, when the average delay of the M longest queues of any priority is greater than the average delay of all the longest queues of all priorities of the receiving end device, the receiving end device adjusts the queue of any priority The opening back pressure waterline value of is reduced by 5% to 10% on the basis of the current opening back pressure waterline value. For example, the receiving end device adjusts the opening back pressure waterline value of the queue of any priority to the target waterline Value range, the target waterline value range can be [0.95×Vo_pri, 0.8×Vo_pri], Vo_pri represents the current open backpressure waterline value of the queue of any priority; when the M of any priority is the longest When the average delay of the queue is not greater than the average delay of all the longest queues of all priorities of the receiving end device, the receiving end device adjusts the open backpressure waterline value of the queue of any priority to that any priority The initial opening backpressure waterline value of the queue of any priority, the initial opening backpressure waterline value of the queue of any priority level is the opening backpressure waterline value pre-configured by the system for the queue of any priority, for example, the any The initial opening backpressure waterline value of a priority queue may be the opening backpressure waterline value set by the receiving end device for the queue of any priority in step 501.
子步骤5082c、根据该任一优先级的队列的开启反压水线值,调整该任一优先级的队列的关闭反压水线值。Sub-step 5082c: According to the open back pressure waterline value of the queue of any priority, adjust the closed back pressure waterline value of the queue of any priority.
该子步骤5082c的实现过程可以参考前述子步骤5082a,本申请实施例在此不再赘述。For the implementation process of this sub-step 5082c, reference may be made to the aforementioned sub-step 5082a, which will not be repeated in this embodiment of the present application.
需要说明的是,在本申请实施例中,接收端设备可以动态调整该接收端设备的最小水线阈值,例如,接收端设备周期性调整接收端设备的最小水线阈值。本申请实施例通过调整最小水线阈值,可以尽量避免或减少主动拥塞控制,保证高吞吐,低时延。It should be noted that, in this embodiment of the present application, the receiving end device can dynamically adjust the minimum watermark threshold of the receiving end device, for example, the receiving end device periodically adjusts the minimum watermark threshold of the receiving end device. By adjusting the minimum watermark threshold in the embodiments of the present application, active congestion control can be avoided or reduced as much as possible, and high throughput and low latency can be ensured.
可选地,接收端设备调整该接收端设备的最小水线阈值可以包括:在目标时长内接收端设备的所有队列对该接收端设备的缓存空间的最大占用量大于该最小水线阈值且小于该最大水线阈值与第一门限值的差值,或者,该接收端设备的所有队列对该接收端设备的缓存空间的最大占用量大于该最大水线阈值与第二门限值的差值时,接收端设备调整该最小水线阈值。可选地,该目标时长的起始时刻可以为前一次调整该接收端设备的最小水线阈值的时刻。其中,该目标时长、该第一门限值和该第二门限值均可以根据实际情况确定,例如该目标时长可以大于100ms(毫秒),该第一门限值可以为12MB(兆比),该第二门限值可以为6MB。示例地,在目标时长内,若Vo_min<B_total_high<Vo_max-12MB,接收端设备调整该最小水线阈值为Vo_min=Vo_min+256KB(千比特),若B_total_high>Vo_max-6MB,接收端设备调整该最小水线阈值为Vo_min=Vo_min-512KB,其中,B_total_high表示接收端设备的所有队列对该接收端设备的缓存空间的最大占用量。Optionally, the receiving end device adjusting the minimum watermark threshold of the receiving end device may include: the maximum occupancy of the buffer space of the receiving end device by all queues of the receiving end device within the target duration is greater than the minimum watermark threshold and less than The difference between the maximum watermark threshold and the first threshold, or the maximum occupancy of the buffer space of the receiving device by all queues of the receiving end device is greater than the difference between the maximum watermark threshold and the second threshold Value, the receiving end device adjusts the minimum watermark threshold. Optionally, the starting time of the target duration may be the time when the minimum watermark threshold of the receiving end device was adjusted last time. The target duration, the first threshold, and the second threshold can all be determined according to actual conditions. For example, the target duration can be greater than 100ms (milliseconds), and the first threshold can be 12MB (megabits). , The second threshold may be 6MB. For example, within the target duration, if Vo_min<B_total_high<Vo_max-12MB, the receiving end device adjusts the minimum watermark threshold to Vo_min=Vo_min+256KB (kilobits), if B_total_high>Vo_max-6MB, the receiving end device adjusts the minimum The watermark threshold is Vo_min=Vo_min-512KB, where B_total_high represents the maximum occupancy of the buffer space of the receiving end device by all queues of the receiving end device.
步骤509、接收端设备根据该接收端设备的多个队列对该接收端设备的缓存空间的占用量,调整目标队列的发送信用值的分配系数,该分配系数与该接收端设备的多个队列对该接收端设备的缓存空间的占用量负相关。Step 509: The receiving end device adjusts the distribution coefficient of the sending credit value of the target queue according to the amount of the buffer space of the receiving end device occupied by the multiple queues of the receiving end device, and the distribution coefficient is compared with the multiple queues of the receiving end device. There is a negative correlation with the occupancy of the buffer space of the receiving end device.
接收端设备通知发送端设备对该发送端设备中与第一队列对应的目标队列开启拥塞控制之后,可以继续监控该接收端设备的多个队列,根据该接收端设备的多个队列对该接收端设备的缓存空间的占用量,调整目标队列的发送信用值的分配系数。其中,该目标队列的发送信用值的分配系数与该接收端设备的多个队列对该接收端设备的缓存空间的占用量负相关,也即是,该接收端设备的多个队列对该接收端设备的缓存空间的占用量越大,该目标队列的发送信用值的分配系数越小,该接收端设备的多个队列对该接收端设备的缓存空间的占用量越小,该目标队列的发送信用值的分配系数越大。After the receiving-end device notifies the sending-end device to enable congestion control for the target queue corresponding to the first queue in the sending-end device, it can continue to monitor multiple queues of the receiving-end device, and respond to the receiving device according to the multiple queues of the receiving-end device. The occupancy of the buffer space of the end device adjusts the distribution coefficient of the sending credit value of the target queue. Wherein, the distribution coefficient of the sending credit value of the target queue is negatively correlated with the amount of buffer space occupied by the multiple queues of the receiving end device on the receiving end device, that is, the multiple queues of the receiving end device have a negative correlation with the receiving end device. The larger the occupancy of the buffer space of the end device is, the smaller the distribution coefficient of the sending credit value of the target queue is, and the smaller the multiple queues of the receiving end device occupy the buffer space of the receiving end device, the smaller the size of the target queue is. The greater the distribution coefficient of the sending credit value.
可选地,接收端设备中的每个优先级的队列可以具有丢弃反压水线值,通常,当接收端设备的多个队列对该接收端设备的缓存空间的占用量达到或超出该丢弃反压水线值时,该接收端设备可以丢弃该优先级的队列中的报文以进行被动拥塞控制。在本申请实施例中,接收 端设备可以根据该接收端设备的多个队列对该接收端设备的缓存空间的占用量,第一队列的开启反压水线值和该第一队列的丢弃反压水线值,调整目标队列的发送信用值的分配系数。Optionally, each priority queue in the receiving end device may have a discard backpressure waterline value. Generally, when multiple queues of the receiving end device occupy or exceed the discarded buffer space of the receiving end device When the pressure watermark value is reversed, the receiving end device can discard the packets in the priority queue to perform passive congestion control. In this embodiment of the present application, the receiving end device may reflect the amount of buffer space occupied by the receiving end device by the multiple queues of the receiving end device, the opening back pressure waterline value of the first queue, and the discarding value of the first queue. Press the waterline value to adjust the distribution coefficient of the sending credit value of the target queue.
可选地,接收端设备可以确定该接收端设备的多个队列对该接收端设备的缓存空间的占用量与第一队列的开启反压水线值的第一差值,以及,该第一队列的丢弃反压水线值与该第一队列的开启反压水线值的目标差值,根据该第一差值与该目标差值,调整目标队列的发送信用值的分配系数。可选地,当该第一差值处于第一差值区间时,接收端设备将该目标队列的发送信用值的分配系数调整为第一分配系数,该第一分配系数小于1且大于0;当该第一差值处于第二差值区间时,接收端设备将该目标队列的发送信用值的分配系数调整为第二分配系数,该第二差值区间的下限值可以等于该第一差值区间的上限值,该第二分配系数小于第一分配系数且大于0;当该第一差值处于第三差值区间时,接收端设备将该目标队列的发送信用值的分配系数调整为第三分配系数,该第三差值区间的下限值可以等于该第二差值区间的上限值,该第三分配系数小于第二分配系数且大于0;当该第一差值处于第四差值区间时,接收端设备将该目标队列的发送信用值的分配系数调整为第四分配系数,该第四差值区间的下限值可以等于该第三差值区间的上限值,该第四分配系数小于第三分配系数且大于0;当该第一差值处于第五差值区间时,接收端设备将该目标队列的发送信用值的分配系数调整为0,该第五差值区间的下限值可以等于该第四差值区间的上限值。可选地,第一差值区间为(10%X~20%X],第二差值区间为(20%X~30%X],第三差值区间为(30%X~40%X],第四差值区间为(40%X~50%X],第五差值区间为(50%X~X],第一分配系数为0.8,该第二分配系数0.6,该第三分配系数0.4,该第四分配系数为0.2,X为目标差值。Optionally, the receiving end device may determine the first difference between the amount of the buffer space occupied by the receiving end device by the multiple queues of the receiving end device and the opening back pressure waterline value of the first queue, and the first The target difference between the discarded backpressure waterline value of the queue and the open backpressure waterline value of the first queue is adjusted according to the first difference and the target difference to adjust the distribution coefficient of the sending credit value of the target queue. Optionally, when the first difference value is within the first difference value interval, the receiving end device adjusts the distribution coefficient of the sending credit value of the target queue to the first distribution coefficient, and the first distribution coefficient is less than 1 and greater than 0; When the first difference value is in the second difference value interval, the receiving end device adjusts the distribution coefficient of the sending credit value of the target queue to the second distribution coefficient, and the lower limit of the second difference value interval may be equal to the first difference value interval. The upper limit of the difference interval, the second distribution coefficient is less than the first distribution coefficient and greater than 0; when the first difference is in the third difference interval, the receiving end device uses the distribution coefficient of the send credit value of the target queue Adjusted to the third distribution coefficient, the lower limit of the third difference interval may be equal to the upper limit of the second difference interval, the third distribution coefficient is less than the second distribution coefficient and greater than 0; when the first difference When in the fourth difference interval, the receiving end device adjusts the distribution coefficient of the sending credit value of the target queue to the fourth distribution coefficient, and the lower limit of the fourth difference interval may be equal to the upper limit of the third difference interval Value, the fourth distribution coefficient is less than the third distribution coefficient and greater than 0; when the first difference is in the fifth difference interval, the receiving end device adjusts the distribution coefficient of the send credit value of the target queue to 0, and the first difference The lower limit of the five difference interval may be equal to the upper limit of the fourth difference interval. Optionally, the first difference interval is (10%X~20%X), the second difference interval is (20%X~30%X], and the third difference interval is (30%X~40%X). ], the fourth difference interval is (40%X~50%X], the fifth difference interval is (50%X~X], the first distribution coefficient is 0.8, the second distribution coefficient is 0.6, the third distribution The coefficient is 0.4, the fourth distribution coefficient is 0.2, and X is the target difference.
可选地,当该第一差值处于第一差值区间且距离前一次调整第一优先级的队列的反压水线值的时长大于第一时长时,接收端设备将该目标队列的发送信用值的分配系数调整为第一分配系数;当该第一差值处于第二差值区间且距离前一次调整第一优先级的队列的反压水线值的时长大于第二时长时,接收端设备将该目标队列的发送信用值的分配系数调整为第二分配系数;当该第一差值处于第三差值区间且距离前一次调整第一优先级的队列的反压水线值的时长大于第三时长时,接收端设备将该目标队列的发送信用值的分配系数调整为第三分配系数;当该第一差值处于第四差值区间且距离前一次调整第一优先级的队列的反压水线值的时长大于第四时长时,接收端设备将该目标队列的发送信用值的分配系数调整为第四分配系数;当该第一差值处于第五差值区间且距离前一次调整第一优先级的队列的反压水线值的时长大于第五时长时,接收端设备将该目标队列的发送信用值的分配系数调整为0。可选地,第一时长、第二时长、第三时长、第四时长和第五时长相等。示例地,第一时长、第二时长、第三时长、第四时长和第五时长均为10ms。Optionally, when the first difference is in the first difference interval and the length of the back pressure waterline value of the queue whose first priority was adjusted last time is greater than the first time, the receiving end device sends the target queue The distribution coefficient of the credit value is adjusted to the first distribution coefficient; when the first difference is in the second difference interval and the length of time from the previous adjustment of the back pressure waterline value of the first priority queue is greater than the second time length, receive The end device adjusts the distribution coefficient of the sending credit value of the target queue to the second distribution coefficient; when the first difference is in the third difference interval and is less than the previous adjustment of the backpressure waterline value of the first priority queue When the duration is greater than the third duration, the receiving end device adjusts the distribution coefficient of the sending credit value of the target queue to the third distribution coefficient; when the first difference is in the fourth difference interval and the first priority is adjusted before When the duration of the backpressure waterline value of the queue is greater than the fourth duration, the receiving end device adjusts the distribution coefficient of the sending credit value of the target queue to the fourth distribution coefficient; when the first difference is in the fifth difference interval and the distance When the length of the previous adjustment of the backpressure waterline value of the first priority queue is greater than the fifth time length, the receiving end device adjusts the distribution coefficient of the sending credit value of the target queue to 0. Optionally, the first duration, the second duration, the third duration, the fourth duration, and the fifth duration are equal. For example, the first duration, the second duration, the third duration, the fourth duration, and the fifth duration are all 10 ms.
步骤510、接收端设备以调整后的分配系数为目标队列分配发送信用值。Step 510: The receiving end device allocates a sending credit value to the target queue using the adjusted allocation coefficient.
接收端设备调整目标队列的发送信用值的分配系数之后,可以以调整后的分配系数为目标队列分配发送信用值。可选地,接收端设备接收发送端设备发送的包含该目标队列的队列信息(例如队列长度和优先级等)的消息,根据该消息中的队列信息,以调整后的分配系数为目标队列分配发送信用值。其中,包含该目标队列的队列信息的消息可以是REQ。After the receiving end device adjusts the distribution coefficient of the transmission credit value of the target queue, it may allocate the transmission credit value to the target queue using the adjusted distribution coefficient. Optionally, the receiving end device receives the message containing the queue information (such as queue length and priority, etc.) of the target queue sent by the sending end device, and allocates the target queue according to the queue information in the message with the adjusted distribution coefficient Send credit value. Wherein, the message containing the queue information of the target queue may be REQ.
步骤511、接收端设备向发送端设备发送包含该发送信用值的消息。Step 511: The receiving end device sends a message containing the sending credit value to the sending end device.
步骤512、发送端设备按照该发送信用值向接收端设备发送目标队列中的报文。Step 512: The sending end device sends the packet in the target queue to the receiving end device according to the sending credit value.
该步骤511和步骤512的实现过程可以参考前述步骤506和步骤507,本申请实施例在 此不再赘述。For the implementation process of step 511 and step 512, reference may be made to the foregoing step 506 and step 507, and details are not described in the embodiment of the present application.
步骤513、当第一队列满足预设关闭指标时,接收端设备通知发送端设备对该发送端设备的目标队列关闭拥塞控制。Step 513: When the first queue meets the preset closing index, the receiving end device notifies the sending end device to close the congestion control for the target queue of the sending end device.
在本申请实施例中,接收端设备通知发送端设备对该发送端设备中与该第一队列对应的目标队列开启拥塞控制之后,可以继续监控该接收端设备的多个队列,检测该第一队列是否满足预设关闭指标,当该第一队列满足该预设关闭指标时,接收端设备通知发送端设备对该发送端设备的目标队列关闭拥塞控制。其中,该预设关闭指标包括:该接收端设备的多个队列对该接收端设备的缓存空间的占用量小于该第一队列的关闭反压水线值。In the embodiment of the present application, after the receiving end device notifies the sending end device to enable congestion control for the target queue corresponding to the first queue in the sending end device, it can continue to monitor multiple queues of the receiving end device and detect the first queue. Whether the queue meets the preset closing index, and when the first queue meets the preset closing index, the receiving end device notifies the sending end device to close the congestion control for the target queue of the sending end device. Wherein, the preset closing index includes: the amount of the buffer space occupied by the multiple queues of the receiving end device for the receiving end device is less than the closing back pressure waterline value of the first queue.
可选地,该预设关闭指标还可以包括以下一个或多个:Optionally, the preset closing indicator may further include one or more of the following:
该接收端设备的多个队列对该接收端设备的缓存空间的占用量小于该第一队列的关闭反压水线值的时长达到或超过预设时长阈值;The length of time that the multiple queues of the receiving end device occupies the buffer space of the receiving end device is less than the closing back pressure waterline value of the first queue reaches or exceeds the preset duration threshold;
该第一队列不属于该接收端设备的多个队列中第一优先级的N个最长队列,该第一队列的优先级为该第一优先级,当该第一优先级为该多个队列的优先级中的最低优先级时,N为大于0的整数,当该第一优先级为该多个队列的优先级中的非最低优先级时,N为大于或等于0的整数;The first queue does not belong to the N longest queues of the first priority among the multiple queues of the receiving end device, the priority of the first queue is the first priority, and when the first priority is the multiple When the priority of the queue is the lowest priority, N is an integer greater than 0, and when the first priority is the non-lowest priority among the priorities of the multiple queues, N is an integer greater than or equal to 0;
该第一队列的长度小于预设长度阈值。The length of the first queue is less than the preset length threshold.
可选地,该预设关闭指标包括:该接收端设备的多个队列对该接收端设备的缓存空间的占用量小于第一队列的关闭反压水线值,该接收端设备的多个队列对该接收端设备的缓存空间的占用量小于该第一队列的关闭反压水线值的时长达到或超过预设时长阈值,该接收端设备的多个队列对该接收端设备的缓存空间的占用量小于该第一队列的关闭反压水线值的时长达到或超过预设时长阈值,且该第一队列的长度小于预设长度阈值。Optionally, the preset closing index includes: the buffer space occupied by the multiple queues of the receiving end device for the receiving end device is less than the closing backpressure waterline value of the first queue, and the multiple queues of the receiving end device When the occupancy of the buffer space of the receiving end device is less than the closing backpressure waterline value of the first queue, the duration reaches or exceeds the preset duration threshold, and the multiple queues of the receiving end device have an impact on the buffer space of the receiving end device. The length of time when the occupancy is less than the closing back pressure waterline value of the first queue reaches or exceeds the preset duration threshold, and the length of the first queue is less than the preset length threshold.
其中,该预设长度阈值可以是该接收端设备的所有队列的长度的均值,该预设时长阈值可以根据实际情况设置,例如,该预设时长阈值可以为100ms,第一优先级的N个最长队列的解释可以参考步骤503,本申请实施例在此不再赘述。Wherein, the preset length threshold may be the average value of the lengths of all queues of the receiving end device, and the preset duration threshold may be set according to actual conditions. For example, the preset duration threshold may be 100 ms, and N of the first priority For the explanation of the longest queue, reference may be made to step 503, which is not repeated in this embodiment of the application.
可选地,接收端设备通知发送端设备对该发送端设备中的目标队列关闭拥塞控制可以包括:接收端设备向该发送端设备发送关闭控制消息,该关闭控制消息指示该发送端设备对该目标队列关闭拥塞控制。可选地,该关闭控制消息可以携带目标队列的标识和去使能标志位,该目标队列的标识指示该目标队列,该去使能标志位指示发送端设备关闭拥塞控制,从而该关闭控制消息指示发送端设备对目标队列关闭拥塞控制。可选地,该关闭控制消息还可以携带发送端设备的标识,以使发送端设备根据该发送端设备的标识确定该关闭控制消息是发往该发送端设备的(也即是该发送端设备的标识指示该关闭控制消息的接收者)。可选地,接收端设备可以以广播的形式向发送端设备发送该关闭控制消息,例如,该接收端设备向该接收端设备的所有发送端设备广播该关闭控制消息。Optionally, the receiving end device notifying the sending end device to close the congestion control of the target queue in the sending end device may include: the receiving end device sends a closing control message to the sending end device, and the closing control message instructs the sending end device to The target queue turns off congestion control. Optionally, the shutdown control message may carry an identifier of the target queue and a disable flag bit, the identifier of the target queue indicates the target queue, and the disable flag indicates the sending end device to disable congestion control, so that the shutdown control message Instruct the sending device to turn off congestion control on the target queue. Optionally, the shutdown control message may also carry the identification of the sending end device, so that the sending end device determines according to the identification of the sending end device that the shutdown control message is sent to the sending end device (that is, the sending end device). The identifier indicates the recipient of the shutdown control message). Optionally, the receiving end device may send the closing control message to the sending end device in a broadcast form. For example, the receiving end device broadcasts the closing control message to all sending end devices of the receiving end device.
需要说明的是,接收端设备可以通知发送端设备对该发送端设备中的所有目标队列关闭拥塞控制,也可以通过通知发送端设备对该发送端设备中的某一个或几个目标队列关闭拥塞控制,例如,接收端设备通知发送端设备对接收端设备优先级较高的队列关闭拥塞控制,以保证优先级较高的队列能够被优先调度,本申请实施例对此不做限定。It should be noted that the receiving end device can notify the sending end device to close congestion control for all target queues in the sending end device, or it can notify the sending end device to close congestion control for one or several target queues in the sending end device. Control, for example, the receiving end device notifies the sending end device to turn off congestion control for queues with higher priority on the receiving end device to ensure that queues with higher priority can be scheduled preferentially, which is not limited in this embodiment of the application.
步骤514、发送端设备根据接收端设备的通知对该发送端设备的目标队列关闭拥塞控制。Step 514: The sending end device closes the congestion control for the target queue of the sending end device according to the notification of the receiving end device.
可选地,根据步骤513可知,接收端设备在接收端设备的第一队列满足预设关闭指标时 通知发送端设备对目标队列关闭拥塞控制,该预设关闭指标包括:该接收端设备的多个队列对该接收端设备的缓存空间的占用量小于该第一队列的关闭反压水线值。Optionally, according to step 513, the receiving end device notifies the sending end device to close the congestion control of the target queue when the first queue of the receiving end device meets the preset closing index, and the preset closing indicator includes: the number of the receiving end device. The occupancy of the buffer space of the receiving end device by each queue is less than the closed back pressure waterline value of the first queue.
可选地,该预设关闭指标还可以包括以下一个或多个:Optionally, the preset closing indicator may further include one or more of the following:
该接收端设备的多个队列对该接收端设备的缓存空间的占用量小于第一队列的关闭反压水线值的时长达到或超过预设时长阈值;The length of time that the multiple queues of the receiving end device occupy the buffer space of the receiving end device is less than the closing back pressure waterline value of the first queue reaches or exceeds the preset duration threshold;
该第一队列不属于该接收端设备的多个队列中第一优先级的N个最长队列,该第一队列的优先级为该第一优先级,当该第一优先级为该多个队列的优先级中的最低优先级时,N为大于0的整数,当该第一优先级为该多个队列的优先级中的非最低优先级时,N为大于或等于0的整数;The first queue does not belong to the N longest queues of the first priority among the multiple queues of the receiving end device, the priority of the first queue is the first priority, and when the first priority is the multiple When the priority of the queue is the lowest priority, N is an integer greater than 0, and when the first priority is the non-lowest priority among the priorities of the multiple queues, N is an integer greater than or equal to 0;
该第一队列的长度小于预设长度阈值。The length of the first queue is less than the preset length threshold.
可选地,发送端设备根据接收端设备的通知对该发送端设备的目标队列关闭拥塞控制可以包括:发送端设备接收该接收端设备发送的关闭控制消息,根据该关闭控制消息对该目标队列关闭拥塞控制,其中,该关闭控制消息指示该发送端设备对该目标队列关闭拥塞控制。可选地,该关闭控制消息可以携带目标队列的标识和去使能标志位,该目标队列的标识指示该目标队列,该去使能标志位指示发送端设备关闭拥塞控制,从而该关闭控制消息指示发送端设备对目标队列关闭拥塞控制。可选地,该关闭控制消息还可以携带该发送端设备的标识,该发送端设备的标识指示该关闭控制消息的接收者。发送端设备可以解析该关闭控制消息得到发送端设备的标识、去使能标志位以及目标队列的标识,根据该发送端设备的标识确定该关闭控制消息是发往该发送端设备的,根据该去使能标志位确定需要关闭拥塞控制,根据目标队列的标识确定目标队列,从而根据该关闭控制消息对该目标队列关闭拥塞控制。Optionally, the sending-end device closing congestion control to the target queue of the sending-end device according to the notification of the receiving-end device may include: the sending-end device receives a closing control message sent by the receiving-end device, and controlling the target queue according to the closing control message. The congestion control is closed, where the close control message instructs the sending end device to close the congestion control for the target queue. Optionally, the shutdown control message may carry an identifier of the target queue and a disable flag bit, the identifier of the target queue indicates the target queue, and the disable flag indicates the sending end device to disable congestion control, so that the shutdown control message Instruct the sending device to turn off congestion control on the target queue. Optionally, the shutdown control message may also carry an identifier of the sender device, and the identifier of the sender device indicates the recipient of the shutdown control message. The sending end device can parse the shutdown control message to obtain the identification of the sending end device, the de-enable flag bit, and the identification of the target queue. According to the identification of the sending end device, it is determined that the shutdown control message is sent to the sending end device. The disable flag determines that congestion control needs to be turned off, and the target queue is determined according to the identifier of the target queue, so that the congestion control is turned off for the target queue according to the shutdown control message.
示例地,请参考图11,其示出了本申请实施例提供的另一种拥塞控制的示意图,参见图11,当接收端设备的多个队列对该接收端设备的缓存空间的占用量大于优先级pri_k对应的开启反压水线(也即是优先级为pri_k的队列的开启反压水线)Vo_pri_k时,开启拥塞控制。当该接收端设备的多个队列对该接收端设备的缓存空间的占用量小于优先级pri_k对应的关闭反压水线(也即是优先级为pri_k的队列的关闭反压水线)Vc_pri_k,但是该接收端设备的多个队列对该接收端设备的缓存空间的占用量小于优先级pri_k对应的关闭反压水线的时长t1小于预设时长阈值时,即使该接收端设备的多个队列对该接收端设备的缓存空间的占用量小于优先级pri_k对应的关闭反压水线Vc_pri_k,也不关闭拥塞控制。当该接收端设备的多个队列对该接收端设备的缓存空间的占用量小于优先级pri_k对应的关闭反压水线Vc_pri_k,且该接收端设备的多个队列对该接收端设备的缓存空间的占用量小于优先级pri_k对应的关闭反压水线的时长t2达到或超过预设时长阈值时,关闭拥塞控制。如此一来,可以避免由于瞬时拥塞而开启拥塞控制,以及由于瞬时的不拥塞而关闭拥塞控制,提高拥塞控制的灵活性。For example, please refer to FIG. 11, which shows another schematic diagram of congestion control provided by an embodiment of the present application. Referring to FIG. 11, when multiple queues of the receiving end device occupy more than the buffer space of the receiving end device When the backpressure waterline corresponding to the priority pri_k is turned on (that is, the backpressure waterline for the queue with priority pri_k) Vo_pri_k, congestion control is turned on. When the multiple queues of the receiving end device occupy less than the closed back pressure waterline corresponding to the priority pri_k (that is, the closed back pressure water line of the queue with priority pri_k) Vc_pri_k, However, when the multiple queues of the receiving end device occupy the buffer space of the receiving end device less than the priority pri_k corresponding to the closing time of the backpressure waterline t1 is less than the preset duration threshold, even if the multiple queues of the receiving end device The occupancy of the buffer space of the receiving end device is less than the closing back pressure waterline Vc_pri_k corresponding to the priority pri_k, and the congestion control is not closed. When the multiple queues of the receiving end device occupies the buffer space of the receiving end device less than the closed backpressure waterline Vc_pri_k corresponding to the priority pri_k, and the multiple queues of the receiving end device have buffer space for the receiving end device When the occupancy of is less than the time t2 for closing the backpressure waterline corresponding to the priority pri_k reaches or exceeds the preset time threshold, the congestion control is turned off. In this way, it is possible to avoid turning on congestion control due to instantaneous congestion, and turning off congestion control due to instantaneous non-congestion, and improve the flexibility of congestion control.
需要说明的是,本申请实施例提供的拥塞控制方法步骤的先后顺序可以适当调整,步骤也可以根据情况相应增减,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内,因此不再赘述。It should be noted that the sequence of the steps of the congestion control method provided in the embodiments of this application can be adjusted appropriately, and the steps can also be increased or decreased accordingly according to the situation. Anyone familiar with the technical field within the technical scope disclosed in this application can easily Thinking of the method of change should be covered in the scope of protection of this application, so I will not repeat it.
综上所述,本申请实施例提供的拥塞控制方法,接收端设备监控接收端设备的多个队列,当该接收端设备的多个队列中的第一队列满足预设开启指标时,通知该发送端设备对该发送端设备中与该第一队列对应的目标队列开启拥塞控制,发送端设备根据接收端设备的通知对目标队列开启拥塞控制。该拥塞控制方法有助于解决目前通信网络的拥塞问题,有助于提高 通信网络的资源利用率以及传输质量。To sum up, in the congestion control method provided by the embodiments of the present application, the receiving end device monitors multiple queues of the receiving end device, and when the first queue of the multiple queues of the receiving end device meets the preset opening index, it notifies the The sending end device enables congestion control on the target queue corresponding to the first queue in the sending end device, and the sending end device enables congestion control on the target queue according to the notification of the receiving end device. The congestion control method helps to solve the congestion problem of the current communication network, and helps to improve the resource utilization rate and transmission quality of the communication network.
本申请实施例提供的该拥塞控制方法结合主动拥塞控制和被动拥塞控制,使用被动拥塞控制感知拥塞后,通过对拥塞进行主动控制,可以从通信网络全网进行拥塞控制,且可以针对特定优先级的拥塞实现端到端的控制,在拥塞控制的过程中,可以灵活调整反压水线和发送信用值的分配系数等参数,且可以充分利用接收端设备的缓存空间,避免将瞬时拥塞的报文反压在发送端设备,保证发送端设备的吞吐量,从而保证该发送端设备下挂的工作站的吞吐量,提高拥塞控制的灵活性。The congestion control method provided by the embodiments of the present application combines active congestion control and passive congestion control. After using passive congestion control to sense congestion, by actively controlling the congestion, congestion control can be performed from the entire communication network, and can be targeted at a specific priority. In the process of congestion control, you can flexibly adjust parameters such as the back pressure waterline and the distribution coefficient of the sending credit value, and can make full use of the buffer space of the receiving end device to avoid instantaneous congestion of messages The back pressure is on the sending end device to ensure the throughput of the sending end device, thereby ensuring the throughput of the workstation connected to the sending end device, and improving the flexibility of congestion control.
本申请实施例提供的该拥塞控制方法,在发送端设备开启拥塞控制之前,无需考虑反压水线值和发送信用值,可以使得发送端设备的流量尽量push发送,开启拥塞控制之前让所有的队列都尽量的保持吞吐。The congestion control method provided by the embodiment of the present application does not need to consider the backpressure waterline value and the sending credit value before the sender device starts congestion control, so that the traffic of the sender device can be pushed as much as possible, and all the traffic before the congestion control is enabled The queues try their best to maintain throughput.
下述为本申请的装置实施例,可以用于执行本申请的方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。The following are device embodiments of this application, which can be used to implement the method embodiments of this application. For details that are not disclosed in the device embodiments of this application, please refer to the method embodiments of this application.
请参考图12,其示出了本申请实施例提供的一种拥塞控制装置1200的逻辑结构示意图,该拥塞控制装置1200可以为网络设备中的功能组件,该网络设备可以是前述实施例中的接收端设备。参见图12,该拥塞控制装置1200包括:监控模块1210和开启模块1220,该监控模块1210可以用于执行图5所示实施例中的步骤502,该开启模块1220可以用于执行图5所示实施例中的步骤503。Please refer to FIG. 12, which shows a schematic diagram of the logical structure of a congestion control apparatus 1200 provided by an embodiment of the present application. The congestion control apparatus 1200 may be a functional component in a network device, and the network device may be the one in the foregoing embodiment. Receiving device. Referring to FIG. 12, the congestion control device 1200 includes: a monitoring module 1210 and an opening module 1220. The monitoring module 1210 can be used to execute step 502 in the embodiment shown in FIG. 5, and the opening module 1220 can be used to execute the step shown in FIG. Step 503 in the embodiment.
该监控模块1210,用于监控接收端设备的多个队列,该接收端设备的每个队列与发送端设备中的一个或多个队列对应;The monitoring module 1210 is used to monitor multiple queues of the receiving end device, and each queue of the receiving end device corresponds to one or more queues in the sending end device;
该开启模块1220,用于当该接收端设备的多个队列中的第一队列满足预设开启指标时,通知该发送端设备对该发送端设备中与该第一队列对应的目标队列开启拥塞控制;The opening module 1220 is configured to notify the sending end device to start congestion for the target queue corresponding to the first queue in the sending end device when the first queue among the plurality of queues of the receiving end device meets the preset opening index control;
其中,该预设开启指标包括:该接收端设备的多个队列对该接收端设备的缓存空间的占用量达到或超出该第一队列的开启反压水线值。Wherein, the preset opening index includes: the amount of the buffer space occupied by the multiple queues of the receiving end device for the receiving end device reaches or exceeds the open back pressure waterline value of the first queue.
可选地,该预设开启指标还包括以下一个或多个:Optionally, the preset opening indicator further includes one or more of the following:
该第一队列属于该接收端设备的多个队列中第一优先级的N个最长队列,该第一队列的优先级为该第一优先级,当该第一优先级为该多个队列的优先级中的最低优先级时,N为大于0的整数,当该第一优先级为该多个队列的优先级中的非最低优先级时,N为大于或等于0的整数;The first queue belongs to the N longest queues of the first priority among the multiple queues of the receiving end device, the priority of the first queue is the first priority, and when the first priority is the multiple queues When the lowest priority among the priorities of, N is an integer greater than 0, and when the first priority is the non-lowest priority among the priorities of the multiple queues, N is an integer greater than or equal to 0;
该第一队列的长度达到或超过预设长度阈值。The length of the first queue reaches or exceeds the preset length threshold.
可选地,该开启模块1220,用于向发送端设备发送开启控制消息,该开启控制消息指示该发送端设备对目标队列开启拥塞控制。Optionally, the opening module 1220 is configured to send an opening control message to the sending end device, where the opening control message instructs the sending end device to enable congestion control on the target queue.
可选地,请参考图13,其示出了本申请实施例提供的另一种拥塞控制装置1200的逻辑结构示意图,参见图13,在图12的基础上,该拥塞控制装置1200还包括:关闭模块1230,该关闭模块1230可以用于执行图5所示实施例中的步骤513。Optionally, please refer to FIG. 13, which shows a schematic diagram of the logical structure of another congestion control apparatus 1200 provided in an embodiment of the present application. Referring to FIG. 13, based on FIG. 12, the congestion control apparatus 1200 further includes: The closing module 1230 can be used to execute step 513 in the embodiment shown in FIG. 5.
该关闭模块1230,用于当第一队列满足预设关闭指标时,通知发送端设备对该发送端设备的目标队列关闭拥塞控制;The closing module 1230 is configured to notify the sending end device to close congestion control for the target queue of the sending end device when the first queue meets the preset closing index;
其中,该预设关闭指标包括:该接收端设备的多个队列对该接收端设备的缓存空间的占用量小于该第一队列的关闭反压水线值。Wherein, the preset closing index includes: the amount of the buffer space occupied by the multiple queues of the receiving end device for the receiving end device is less than the closing back pressure waterline value of the first queue.
可选地,该预设关闭指标还包括以下一个或多个:Optionally, the preset closing indicator further includes one or more of the following:
该接收端设备的多个队列对该接收端设备的缓存空间的占用量小于该第一队列的关闭反压水线值的时长达到或超过预设时长阈值;The length of time that the multiple queues of the receiving end device occupies the buffer space of the receiving end device is less than the closing back pressure waterline value of the first queue reaches or exceeds the preset duration threshold;
该第一队列不属于该接收端设备的多个队列中第一优先级的N个最长队列,该第一队列的优先级为该第一优先级,当该第一优先级为该多个队列的优先级中的最低优先级时,N为大于0的整数,当该第一优先级为该多个队列的优先级中的非最低优先级时,N为大于或等于0的整数;The first queue does not belong to the N longest queues of the first priority among the multiple queues of the receiving end device, the priority of the first queue is the first priority, and when the first priority is the multiple When the priority of the queue is the lowest priority, N is an integer greater than 0, and when the first priority is the non-lowest priority among the priorities of the multiple queues, N is an integer greater than or equal to 0;
该第一队列的长度小于预设长度阈值。The length of the first queue is less than the preset length threshold.
可选地,请继续参考图13,该拥塞控制装置1200还包括:分配模块1240和发送模块1250,该分配模块1240可以用于执行图5所示实施例中的步骤505和步骤510,该发送模块1250可以用于执行图5所示实施例中的步骤506和步骤511。Optionally, please continue to refer to FIG. 13. The congestion control apparatus 1200 further includes: an allocation module 1240 and a sending module 1250. The allocation module 1240 can be used to perform steps 505 and 510 in the embodiment shown in FIG. The module 1250 can be used to execute step 506 and step 511 in the embodiment shown in FIG. 5.
该分配模块1240,用于为目标队列分配发送信用值;The allocation module 1240 is used to allocate the sending credit value to the target queue;
该发送模块1250,用于向发送端设备发送包含该发送信用值的消息,以使该发送端设备按照该发送信用值向接收端设备发送该目标队列中的报文。The sending module 1250 is configured to send a message containing the sending credit value to the sending end device, so that the sending end device sends the message in the target queue to the receiving end device according to the sending credit value.
可选地,请继续参考图13,该拥塞控制装置1200还包括:系数调整模块1260,该系数调整模块1260可以用于执行图5所示实施例中的步骤509。Optionally, please continue to refer to FIG. 13, the congestion control apparatus 1200 further includes: a coefficient adjustment module 1260, and the coefficient adjustment module 1260 may be used to perform step 509 in the embodiment shown in FIG. 5.
该系数调整模块1260,用于根据接收端设备的多个队列对该接收端设备的缓存空间的占用量,调整目标队列的发送信用值的分配系数,该分配系数与该接收端设备的多个队列对该接收端设备的缓存空间的占用量负相关。The coefficient adjustment module 1260 is configured to adjust the distribution coefficient of the sending credit value of the target queue according to the amount of the buffer space occupied by the receiving-end device by the multiple queues of the receiving-end device. The queue is negatively related to the occupancy of the buffer space of the receiving end device.
可选地,该接收端设备的多个队列中的每个队列具有反压水线值,不同优先级的队列的反压水线值不同,请继续参考图13,该拥塞控制装置1200还包括:水线调整模块1270,该水线调整模块1270可以用于执行图5所示实施例中的步骤508。Optionally, each of the multiple queues of the receiving end device has a back pressure waterline value, and the back pressure waterline values of queues with different priorities are different. Please continue to refer to FIG. 13, the congestion control apparatus 1200 also includes : Waterline adjustment module 1270. The waterline adjustment module 1270 can be used to execute step 508 in the embodiment shown in FIG. 5.
该水线调整模块1270,用于当该接收端设备的多个队列对该接收端设备的缓存空间的占用量达到或超出该接收端设备的最小水线阈值时,调整该接收端设备的各个优先级的队列的反压水线值。The waterline adjustment module 1270 is configured to adjust each of the receiving-end device when the amount of the buffer space occupied by the receiving-end device reaches or exceeds the minimum waterline threshold of the receiving-end device. The back pressure waterline value of the priority queue.
可选地,该反压水线值包括开启反压水线值和关闭反压水线值,Optionally, the back pressure waterline value includes an open back pressure waterline value and a closed back pressure waterline value,
该水线调整模块1270,用于:The waterline adjustment module 1270 is used for:
对于任一优先级的队列:For any priority queue:
根据接收端设备的最大水线阈值、该接收端设备的最小水线阈值,低于该任一优先级的所有优先级的队列对该接收端设备的缓存空间的占用量,以及该接收端设备的所有队列对该接收端设备的缓存空间的占用量,调整该任一优先级的队列的开启反压水线值;According to the maximum watermark threshold of the receiving end device, the minimum watermark threshold of the receiving end device, the occupancy of the buffer space of the receiving end device by all priority queues lower than any priority, and the receiving end device Adjust the open back pressure waterline value of the queue of any priority for the occupation of the buffer space of the receiving end device by all the queues;
根据该任一优先级的队列的开启反压水线值,调整该任一优先级的队列的关闭反压水线值。According to the open back pressure waterline value of the queue of any priority, the closed back pressure waterline value of the queue of any priority is adjusted.
可选地,该任一优先级的队列对该接收端设备的缓存空间的占用量与低于该任一优先级的所有优先级的队列对该接收端设备的缓存空间的占用量负相关,该任一优先级的队列的开启反压水线值与该任一优先级的队列对该接收端设备的缓存空间的占用量负相关;Optionally, the occupancy of the buffer space of the receiving end device by the queue of any priority is negatively correlated with the occupancy of the buffer space of the receiving end device by all priority queues lower than the any priority. The open back pressure waterline value of the queue of any priority is negatively correlated with the amount of buffer space occupied by the queue of any priority on the receiving end device;
该任一优先级的队列的开启反压水线值大于或等于低于该任一优先级的所有优先级的队列的开启反压水线值。The opening backpressure waterline value of the queue of any priority is greater than or equal to the opening backpressure waterline value of all priority queues lower than the any priority.
可选地,该水线调整模块1270,用于:Optionally, the waterline adjustment module 1270 is used to:
根据最大水线阈值、最小水线阈值,低于任一优先级的所有优先级的队列对接收端设备的缓存空间的占用量,以及该接收端设备的所有队列对该接收端设备的缓存空间的占用量,采用水线值公式计算该任一优先级的队列的开启反压水线值;According to the maximum watermark threshold and the minimum watermark threshold, all priority queues below any priority occupy the buffer space of the receiving end device, and the buffer space of all queues of the receiving end device for the receiving end device The occupancy of, the waterline value formula is used to calculate the open back pressure waterline value of the queue of any priority;
根据计算结果调整该任一优先级的队列的开启反压水线值;Adjust the opening back pressure waterline value of the queue of any priority according to the calculation result;
其中,该水线值公式为:Among them, the waterline value formula is:
Figure PCTCN2021072574-appb-000004
Figure PCTCN2021072574-appb-000004
Vo_pri_k表示优先级为pri_k的队列的开启反压水线值,B_pri_i表示优先级为pri_i的所有队列对接收端设备的缓存空间的占用量,B_total表示接收端设备的所有队列对接收端设备的缓存空间的占用量,V_max表示最大水线阈值,V_min表示最小水线阈值。Vo_pri_k represents the open back pressure waterline value of the queue with priority pri_k, B_pri_i represents the amount of buffer space occupied by all queues of the priority pri_i on the receiving end device, and B_total represents the buffer of all queues of the receiving end device on the receiving end device The amount of space occupied, V_max represents the maximum watermark threshold, and V_min represents the minimum watermark threshold.
可选地,该反压水线值包括开启反压水线值和关闭反压水线值,Optionally, the back pressure waterline value includes an open back pressure waterline value and a closed back pressure waterline value,
该水线调整模块1270,用于:The waterline adjustment module 1270 is used for:
对于任一优先级的队列:For any priority queue:
根据该任一优先级的所有队列对接收端设备的缓存空间的占用量以及该缓存空间的大小,调整该任一优先级的队列的开启反压水线值,该任一优先级的队列的开启反压水线值与该任一优先级的所有队列对该接收端设备的缓存空间的占用量负相关;According to the occupancy of the buffer space of the receiving device by all queues of any priority and the size of the buffer space, adjust the opening back pressure waterline value of the queue of any priority, and the value of the queue of any priority Turning on the back pressure waterline value is negatively related to the amount of buffer space occupied by all queues of any priority level on the receiving end device;
根据该任一优先级的队列的开启反压水线值,调整该任一优先级的队列的关闭反压水线值。According to the open back pressure waterline value of the queue of any priority, the closed back pressure waterline value of the queue of any priority is adjusted.
可选地,该反压水线值包括开启反压水线值和关闭反压水线值,Optionally, the back pressure waterline value includes an open back pressure waterline value and a closed back pressure waterline value,
该水线调整模块1270,用于:The waterline adjustment module 1270 is used for:
对于任一优先级的队列:For any priority queue:
根据该任一优先级的M个最长队列的时延均值和接收端设备的所有优先级的所有最长队列的时延均值,调整该任一优先级的队列的开启反压水线值,M为大于0的整数;According to the average delay of the M longest queues of any priority and the average delay of all the longest queues of all priorities of the receiving end device, adjust the opening backpressure waterline value of the queue of any priority, M is an integer greater than 0;
根据该任一优先级的队列的开启反压水线值,调整该任一优先级的队列的关闭反压水线值。According to the open back pressure waterline value of the queue of any priority, the closed back pressure waterline value of the queue of any priority is adjusted.
可选地,请继续参考图13,该拥塞控制装置1200还包括:Optionally, please continue to refer to FIG. 13, the congestion control apparatus 1200 further includes:
阈值调整模块1280,用于在目标时长内接收端设备的所有队列对该接收端设备的缓存空间的最大占用量大于最小水线阈值且小于最大水线阈值与第一门限值的差值,或者,该最大占用量大于该最大水线阈值与第二门限值的差值时,调整该最小水线阈值。The threshold adjustment module 1280 is used for the maximum occupancy of the buffer space of the receiving end device by all queues of the receiving end device within the target duration is greater than the minimum watermark threshold and less than the difference between the maximum waterline threshold and the first threshold, Or, when the maximum occupancy is greater than the difference between the maximum watermark threshold and the second threshold, the minimum watermark threshold is adjusted.
综上所述,本申请实施例提供的拥塞控制装置,接收端设备监控接收端设备的多个队列,当该接收端设备的多个队列中的第一队列满足预设开启指标时,通知发送端设备对该发送端设备中与该第一队列对应的目标队列开启拥塞控制,该发送端设备根据该接收端设备的通知对目标队列开启拥塞控制。该拥塞控制方法有助于解决目前通信网络的拥塞问题,有助于提高通信网络的资源利用率以及传输质量。To sum up, in the congestion control apparatus provided by the embodiment of the present application, the receiving end device monitors multiple queues of the receiving end device, and when the first queue of the multiple queues of the receiving end device meets the preset opening index, a notification is sent The end device enables congestion control on the target queue corresponding to the first queue in the sender device, and the sender device enables congestion control on the target queue according to the notification of the receiver device. The congestion control method helps to solve the congestion problem of the current communication network, and helps to improve the resource utilization rate and transmission quality of the communication network.
请参考图14,其示出了本申请实施例提供的再一种拥塞控制装置1400的逻辑结构示意图,该拥塞控制装置1400可以为网络设备中的功能组件,该网络设备可以是前述实施例中的 发送端设备。参见图14,该拥塞控制装置1400包括:第一接收模块1410和开启模块1420,该第一接收模块1410和该开启模块1420可以用于执行图5所示实施例中的步骤504。Please refer to FIG. 14, which shows a schematic diagram of the logical structure of yet another congestion control apparatus 1400 provided by an embodiment of the present application. The congestion control apparatus 1400 may be a functional component in a network device, and the network device may be the one in the foregoing embodiment. The sending end device. Referring to FIG. 14, the congestion control apparatus 1400 includes: a first receiving module 1410 and an opening module 1420. The first receiving module 1410 and the opening module 1420 can be used to execute step 504 in the embodiment shown in FIG. 5.
该第一接收模块1410,用于接收接收端设备发送的对发送端设备的目标队列开启拥塞控制的通知,该接收端设备的每个队列与该发送端设备中的一个或多个队列对应,该目标队列与该接收端设备的第一队列对应;The first receiving module 1410 is configured to receive a notification sent by the receiving end device to enable congestion control on the target queue of the sending end device, and each queue of the receiving end device corresponds to one or more queues in the sending end device, The target queue corresponds to the first queue of the receiving end device;
该开启模块1420,用于根据该接收端设备的通知对该发送端设备的目标队列开启拥塞控制。The opening module 1420 is configured to enable congestion control for the target queue of the sending end device according to the notification of the receiving end device.
可选地,该第一接收模块1410,用于接收接收端设备发送的开启控制消息,该开启控制消息携带目标队列的标识和使能标志位;Optionally, the first receiving module 1410 is configured to receive a turn-on control message sent by a receiving end device, where the turn-on control message carries an identifier of the target queue and an enable flag bit;
该开启模块1420,用于根据该目标队列的标识确定该目标队列,根据该使能标志位对该目标队列开启拥塞控制。The opening module 1420 is configured to determine the target queue according to the identifier of the target queue, and enable congestion control for the target queue according to the enable flag bit.
可选地,请参考图15,其示出了本申请实施例提供的又一种拥塞控制装置1400的逻辑结构示意图,参见图15,在图14的基础上,该拥塞控制装置1400还包括:第二接收模块1430和关闭模块1440,该第二接收模块1430和该关闭模块1440可以用于执行图5所示实施例中的步骤514。Optionally, please refer to FIG. 15, which shows a schematic diagram of the logical structure of another congestion control apparatus 1400 provided by an embodiment of the present application. Referring to FIG. 15, based on FIG. 14, the congestion control apparatus 1400 further includes: The second receiving module 1430 and the closing module 1440 can be used to perform step 514 in the embodiment shown in FIG. 5.
该第二接收模块1430,用于接收接收端设备发送的对发送端设备的目标队列关闭拥塞控制的通知;The second receiving module 1430 is configured to receive a notification sent by the receiving end device to close the congestion control of the target queue of the sending end device;
该关闭模块1440,用于根据该接收端设备的通知对该发送端设备的目标队列关闭拥塞控制。The closing module 1440 is configured to close congestion control for the target queue of the sending end device according to the notification of the receiving end device.
可选地,该第二接收模块1430,用于接收该接收端设备发送的关闭控制消息,该关闭控制消息携带该目标队列的标识和去使能标志位;Optionally, the second receiving module 1430 is configured to receive a shutdown control message sent by the receiving end device, where the shutdown control message carries an identifier of the target queue and a disabling flag bit;
该关闭模块1440,用于根据该目标队列的标识确定该目标队列,根据该去使能标志位对该目标队列关闭拥塞控制。The closing module 1440 is configured to determine the target queue according to the identifier of the target queue, and turn off congestion control for the target queue according to the disable flag bit.
可选地,请继续参考图15,该拥塞控制装置1400还包括:第三接收模块1450和发送模块1460,该第三接收模块1450和该发送模块1460可以用于执行图5所示实施例中的步骤507和步骤512。Optionally, please continue to refer to FIG. 15. The congestion control apparatus 1400 further includes: a third receiving module 1450 and a sending module 1460. The third receiving module 1450 and the sending module 1460 can be used to perform the embodiment shown in FIG. 5的Steps 507 and 512.
该第三接收模块1450,用于接收接收端设备发送的包含发送信用值的消息;The third receiving module 1450 is configured to receive the message containing the sending credit value sent by the receiving end device;
该发送模块1460,用于按照该发送信用值向该接收端设备发送目标队列中的报文。The sending module 1460 is configured to send the message in the target queue to the receiving end device according to the sending credit value.
综上所述,本申请实施例提供的拥塞控制装置,接收端设备监控接收端设备的多个队列,当该接收端设备的多个队列中的第一队列满足预设开启指标时,通知发送端设备对该发送端设备中与该第一队列对应的目标队列开启拥塞控制,该发送端设备根据该接收端设备的通知对目标队列开启拥塞控制。该拥塞控制方法有助于解决目前通信网络的拥塞问题,有助于提高通信网络的资源利用率以及传输质量。To sum up, in the congestion control apparatus provided by the embodiment of the present application, the receiving end device monitors multiple queues of the receiving end device, and when the first queue of the multiple queues of the receiving end device meets the preset opening index, a notification is sent The end device enables congestion control on the target queue corresponding to the first queue in the sender device, and the sender device enables congestion control on the target queue according to the notification of the receiver device. The congestion control method helps to solve the congestion problem of the current communication network, and helps to improve the resource utilization rate and transmission quality of the communication network.
需要说明的是:上述实施例提供的拥塞控制装置在进行拥塞控制时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的拥塞控制装置与拥塞控制方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。It should be noted that when the congestion control device provided in the above embodiment performs congestion control, only the division of the above-mentioned functional modules is used as an example for illustration. In actual applications, the above-mentioned function allocation can be completed by different functional modules according to needs. That is, the internal structure of the device is divided into different functional modules to complete all or part of the functions described above. In addition, the congestion control device provided in the foregoing embodiment and the congestion control method embodiment belong to the same concept, and the specific implementation process is detailed in the method embodiment, and will not be repeated here.
请参考图16,其示出了本申请实施例提供的一种拥塞控制装置1600的硬件结构示意图,该拥塞控制装置1600可以为网络设备,该网络设备可以是前述实施例中的发送端设备或接收端设备中的至少一者。参见图16,该拥塞控制装置1600包括处理器1602、存储器1604、通信接口1606和总线1608,处理器1602、存储器1604和通信接口1606通过总线1608彼此通信连接。本领域技术人员应当明白,图16所示的处理器1602、存储器1604和通信接口1606之间的连接方式仅仅是示例性的,在实现过程中,处理器1602、存储器1604和通信接口1606也可以采用除了总线1608之外的其他连接方式彼此通信连接。Please refer to FIG. 16, which shows a schematic diagram of the hardware structure of a congestion control apparatus 1600 provided by an embodiment of the present application. The congestion control apparatus 1600 may be a network device, and the network device may be the sender device in the foregoing embodiment or At least one of the receiving end devices. 16, the congestion control apparatus 1600 includes a processor 1602, a memory 1604, a communication interface 1606, and a bus 1608. The processor 1602, the memory 1604, and the communication interface 1606 are communicatively connected to each other through the bus 1608. Those skilled in the art should understand that the connection manner between the processor 1602, the memory 1604, and the communication interface 1606 shown in FIG. 16 is only exemplary. In the implementation process, the processor 1602, the memory 1604, and the communication interface 1606 may also Use other connection methods other than the bus 1608 to communicate with each other.
其中,存储器1604可以用于存储指令16042和数据16044。在本申请实施例中,存储器1604可以是各种类型的存储介质,例如随机存取存储器(random access memory,RAM)、只读存储器(read-only memory,ROM)、非易失性RAM(non-volatile RAM,NVRAM)、可编程ROM(programmable ROM,PROM)、可擦除PROM(erasable PROM,EPROM)、电可擦除PROM(electrically erasable PROM,EEPROM)、闪存、光存储器和寄存器等。并且,该存储器1604可以包括硬盘和/或内存。Among them, the memory 1604 may be used to store instructions 16042 and data 16044. In the embodiment of the present application, the memory 1604 may be various types of storage media, such as random access memory (RAM), read-only memory (ROM), and non-volatile RAM (non-volatile RAM). -volatile RAM, NVRAM), programmable ROM (programmable ROM, PROM), erasable PROM (erasable PROM, EPROM), electrically erasable PROM (electrically erasable PROM, EEPROM), flash memory, optical memory and registers, etc. In addition, the memory 1604 may include a hard disk and/or a memory.
其中,处理器1602可以是通用处理器,通用处理器可以是通过读取并执行存储器(例如存储器1604)中存储的指令(例如指令16042)来执行特定步骤和/或操作的处理器,通用处理器在执行上述步骤和/或操作的过程中可能用到存储在存储器(例如存储器1604)中的数据(例如数据16044)。通用处理器可以是,例如但不限于,中央处理器(central processing unit,CPU)。此外,处理器1602也可以是专用处理器,专用处理器可以是专门设计的用于执行特定步骤和/或操作的处理器,该专用处理器可以是,例如但不限于,数字信号处理器(digital signal processor,DSP)、应用专用集成电路(application-specific integrated circuit,ASIC)和现场可编程门阵列(field-programmable gate array,FPGA)等。此外,处理器1602还可以是多个处理器的组合,例如多核处理器。处理器1602可以包括一个或多个电路,以执行上述实施例提供的拥塞控制方法的全部或部分步骤。The processor 1602 may be a general-purpose processor, and the general-purpose processor may be a processor that executes specific steps and/or operations by reading and executing instructions (for example, instructions 16042) stored in a memory (for example, the memory 1604). The processor may use data (for example, data 16044) stored in the memory (for example, the memory 1604) in the process of performing the above steps and/or operations. The general-purpose processor may be, for example, but not limited to, a central processing unit (CPU). In addition, the processor 1602 may also be a dedicated processor. The dedicated processor may be a processor specially designed to perform specific steps and/or operations. The dedicated processor may be, for example, but not limited to, a digital signal processor ( Digital signal processor (DSP), application-specific integrated circuit (ASIC), field-programmable gate array (FPGA), etc. In addition, the processor 1602 may also be a combination of multiple processors, such as a multi-core processor. The processor 1602 may include one or more circuits to execute all or part of the steps of the congestion control method provided in the foregoing embodiments.
其中,通信接口1606可以包括输入/输出(input/output,I/O)接口、物理接口和逻辑接口等用于实现拥塞控制装置1600内部的器件互连的接口,以及用于实现拥塞控制装置1600与其他设备(例如网络设备或用户设备)互连的接口。物理接口可以是千兆的以太接口(gigabit ethernet,GE),其可以用于实现拥塞控制装置1600与其他设备(例如网络设备或用户设备)互连,逻辑接口是拥塞控制装置1600内部的接口,其可以用于实现拥塞控制装置1600内部的器件互连。容易理解,通信接口1606可以用于拥塞控制装置1600与其他网络设备和/或用户设备通信,例如,通信接口1606用于拥塞控制装置1600与其他网络设备之间信息的发送和接收。Wherein, the communication interface 1606 may include an input/output (I/O) interface, a physical interface, a logical interface, and other interfaces used to realize the interconnection of devices within the congestion control apparatus 1600, and to realize the congestion control apparatus 1600. Interface for interconnection with other equipment (such as network equipment or user equipment). The physical interface can be a gigabit ethernet (GE), which can be used to realize the interconnection between the congestion control apparatus 1600 and other equipment (such as network equipment or user equipment), and the logical interface is an internal interface of the congestion control apparatus 1600. It can be used to realize the interconnection of devices within the congestion control apparatus 1600. It is easy to understand that the communication interface 1606 may be used for the congestion control apparatus 1600 to communicate with other network equipment and/or user equipment. For example, the communication interface 1606 is used for sending and receiving information between the congestion control apparatus 1600 and other network equipment.
其中,总线1608可以是任何类型的,用于实现处理器1602、存储器1604和通信接口1606互连的通信总线,例如系统总线。The bus 1608 may be of any type, and is used to implement a communication bus interconnecting the processor 1602, the memory 1604, and the communication interface 1606, such as a system bus.
上述器件可以分别设置在彼此独立的芯片上,也可以至少部分的或者全部的设置在同一块芯片上。将各个器件独立设置在不同的芯片上,还是整合设置在一个或者多个芯片上,往往取决于产品设计的需要。本申请实施例对上述器件的具体实现形式不做限定。The above-mentioned devices may be respectively arranged on independent chips, or at least partly or fully arranged on the same chip. Whether each device is arranged independently on different chips or integrated on one or more chips often depends on the needs of product design. The embodiment of the present application does not limit the specific implementation form of the foregoing device.
图16所示的拥塞控制装置1600仅仅是示例性的,在实现过程中,拥塞控制装置1600还可以包括其他组件,本文不再一一列举。该图16所示的拥塞控制装置1600可以通过执行上 述实施例提供的拥塞控制方法的全部或部分步骤来控制网络拥塞。The congestion control apparatus 1600 shown in FIG. 16 is only exemplary. In the implementation process, the congestion control apparatus 1600 may also include other components, which will not be listed here. The congestion control apparatus 1600 shown in FIG. 16 can control network congestion by executing all or part of the steps of the congestion control method provided in the above embodiment.
本申请实施例提供了一种拥塞控制系统,该拥塞控制系统可以包括前述实施例中的发送端设备和接收端设备,在一种可能的实现方式中,该发送端设备可以包括图14或图15所示的拥塞控制装置1400,该接收端设备可以包括图12或图13所示的拥塞控制装置1200。在另一种可能的实现方式中,该发送端设备和该接收端设备中的至少一者可以包括图16所示的拥塞控制装置1600。The embodiment of the present application provides a congestion control system. The congestion control system may include the sending end device and the receiving end device in the foregoing embodiment. In a possible implementation manner, the sending end device may include FIG. 14 or FIG. For the congestion control apparatus 1400 shown in FIG. 15, the receiving end device may include the congestion control apparatus 1200 shown in FIG. 12 or FIG. 13. In another possible implementation manner, at least one of the sending end device and the receiving end device may include the congestion control apparatus 1600 shown in FIG. 16.
示例地,请参考图17,其示出了本申请实施例提供的一种拥塞控制系统1700的示意图,参见图17,该拥塞控制系统1700包括:发送端设备1710和接收端设备1720。For example, please refer to FIG. 17, which shows a schematic diagram of a congestion control system 1700 provided by an embodiment of the present application. Referring to FIG. 17, the congestion control system 1700 includes: a sending end device 1710 and a receiving end device 1720.
该接收端设备1720用于:监控该接收端设备1720的多个队列,该接收端设备1720的每个队列与该发送端设备1710中的一个或多个队列对应;当该接收端设备1720的多个队列中的第一队列满足预设开启指标时,通知该发送端设备1710对该发送端设备1710中与该第一队列对应的目标队列开启拥塞控制;其中,该预设开启指标包括:该接收端设备1720的多个队列对该接收端设备1720的缓存空间的占用量达到或超出该第一队列的开启反压水线值;The receiving end device 1720 is used to monitor multiple queues of the receiving end device 1720, and each queue of the receiving end device 1720 corresponds to one or more queues in the sending end device 1710; when the receiving end device 1720 is When the first queue among the plurality of queues meets the preset opening index, the sending end device 1710 is notified to enable congestion control for the target queue corresponding to the first queue in the sending end device 1710; wherein, the preset opening index includes: The occupancy of the buffer space of the receiving end device 1720 by the multiple queues of the receiving end device 1720 reaches or exceeds the opening back pressure waterline value of the first queue;
该发送端设备1710用于:根据该接收端设备1720的通知对该发送端设备1710中与该第一队列对应的目标队列开启拥塞控制。The sending end device 1710 is configured to enable congestion control for the target queue corresponding to the first queue in the sending end device 1710 according to the notification of the receiving end device 1720.
可选地,该预设开启指标还包括以下一个或多个:Optionally, the preset opening indicator further includes one or more of the following:
该第一队列属于该接收端设备1720的多个队列中第一优先级的N个最长队列,该第一队列的优先级为该第一优先级,当该第一优先级为该多个队列的优先级中的最低优先级时,N为大于0的整数,当该第一优先级为该多个队列的优先级中的非最低优先级时,N为大于或等于0的整数;The first queue belongs to the N longest queues of the first priority among the multiple queues of the receiving end device 1720, the priority of the first queue is the first priority, and when the first priority is the multiple When the priority of the queue is the lowest priority, N is an integer greater than 0, and when the first priority is the non-lowest priority among the priorities of the multiple queues, N is an integer greater than or equal to 0;
该第一队列的长度达到或超过预设长度阈值。The length of the first queue reaches or exceeds the preset length threshold.
可选地,该接收端设备1720用于:向该发送端设备1710发送开启控制消息,该开启控制消息指示该发送端设备1710对该目标队列开启拥塞控制。Optionally, the receiving end device 1720 is configured to send an opening control message to the sending end device 1710, where the opening control message instructs the sending end device 1710 to enable congestion control for the target queue.
该发送端设备1710用于:接收该接收端设备1710发送的该开启控制消息;根据该开启控制消息对该目标队列开启拥塞控制。The sending end device 1710 is configured to: receive the opening control message sent by the receiving end device 1710; and enable congestion control for the target queue according to the opening control message.
可选地,该接收端设备1720还用于:当该第一队列满足预设关闭指标时,通知该发送端设备1710对该发送端设备1710的该目标队列关闭拥塞控制;其中,该预设关闭指标包括:该接收端设备1720的多个队列对该接收端设备1720的缓存空间的占用量小于该第一队列的关闭反压水线值;Optionally, the receiving end device 1720 is further configured to: when the first queue meets a preset closing index, notify the sending end device 1710 to close congestion control for the target queue of the sending end device 1710; wherein, the preset The closing index includes: the amount of the buffer space occupied by the multiple queues of the receiving end device 1720 to the receiving end device 1720 is less than the closing backpressure waterline value of the first queue;
该发送端设备1710还用于:根据该接收端设备1720的通知对该发送端设备1710的该目标队列关闭拥塞控制。The sending end device 1710 is further configured to: turn off congestion control for the target queue of the sending end device 1710 according to the notification of the receiving end device 1720.
可选地,该预设关闭指标还包括以下一个或多个:Optionally, the preset closing indicator further includes one or more of the following:
该接收端设备1720的多个队列对该接收端设备1720的缓存空间的占用量小于该第一队列的关闭反压水线值的时长达到或超过预设时长阈值;The length of time that the multiple queues of the receiving end device 1720 occupy the buffer space of the receiving end device 1720 is less than the closing back pressure waterline value of the first queue reaches or exceeds the preset duration threshold;
该第一队列不属于该接收端设备1720的多个队列中第一优先级的N个最长队列,该第一队列的优先级为该第一优先级,当该第一优先级为该多个队列的优先级中的最低优先级时,N为大于0的整数,当该第一优先级为该多个队列的优先级中的非最低优先级时,N为大于或等于0的整数;The first queue does not belong to the N longest queues of the first priority among the multiple queues of the receiving end device 1720, the priority of the first queue is the first priority, and when the first priority is the multiple When the lowest priority among the priorities of the two queues, N is an integer greater than 0, and when the first priority is the non-lowest priority among the priorities of the multiple queues, N is an integer greater than or equal to 0;
该第一队列的长度小于预设长度阈值。The length of the first queue is less than the preset length threshold.
可选地,该接收端设备1720还用于:为该目标队列分配发送信用值;向该发送端设备1710发送包含该发送信用值的消息;Optionally, the receiving end device 1720 is further configured to: allocate a sending credit value to the target queue; sending a message containing the sending credit value to the sending end device 1710;
该发送端设备1710还用于:接收该接收端设备1720发送的包含发送信用值的消息;按照该发送信用值向该接收端设备发送该目标队列中的报文。The sending end device 1710 is further configured to: receive a message containing a sending credit value sent by the receiving end device 1720; and send the message in the target queue to the receiving end device according to the sending credit value.
可选地,该接收端设备1720还用于:根据该接收端设备1720的多个队列对该接收端设备1720的缓存空间的占用量,调整该目标队列的发送信用值的分配系数,该分配系数与该接收端设备1720的多个队列对该接收端设备1720的缓存空间的占用量负相关。Optionally, the receiving end device 1720 is further configured to adjust the distribution coefficient of the sending credit value of the target queue according to the amount of the buffer space occupied by the receiving end device 1720 by the multiple queues of the receiving end device 1720, and the allocation is The coefficient is negatively related to the occupancy of the buffer space of the receiving end device 1720 by the multiple queues of the receiving end device 1720.
可选地,该接收端设备1720的多个队列中的每个队列具有反压水线值,不同优先级的队列的反压水线值不同,该接收端设备1720还用于:当该接收端设备1720的多个队列对该接收端设备1720的缓存空间的占用量达到或超出该接收端设备1720的最小水线阈值时,调整该接收端设备1720的各个优先级的队列的反压水线值。Optionally, each of the multiple queues of the receiving end device 1720 has a back pressure waterline value, and the back pressure waterline values of queues with different priorities are different, and the receiving end device 1720 is also used to: When the occupancy of the buffer space of the receiving end device 1720 by the multiple queues of the end device 1720 reaches or exceeds the minimum waterline threshold of the receiving end device 1720, the back pressure level of the queues of each priority of the receiving end device 1720 is adjusted. Line value.
可选地,该反压水线值包括开启反压水线值和关闭反压水线值,Optionally, the back pressure waterline value includes an open back pressure waterline value and a closed back pressure waterline value,
该接收端设备1720用于:对于任一优先级的队列:The receiving end device 1720 is used to: for any priority queue:
根据该接收端设备1720的最大水线阈值、该接收端设备1720的最小水线阈值,低于该任一优先级的所有优先级的队列对该接收端设备1720的缓存空间的占用量,以及该接收端设备1720的所有队列对该接收端设备1720的缓存空间的占用量,调整该任一优先级的队列的开启反压水线值;According to the maximum watermark threshold of the receiving end device 1720 and the minimum watermark threshold of the receiving end device 1720, the occupancy of the buffer space of the receiving end device 1720 by all priority queues lower than any one of the priorities, and Adjust the amount of the buffer space occupied by all the queues of the receiving end device 1720 to the receiving end device 1720, and adjust the opening back pressure waterline value of the queue of any priority;
根据该任一优先级的队列的开启反压水线值,调整该任一优先级的队列的关闭反压水线值。According to the open back pressure waterline value of the queue of any priority, the closed back pressure waterline value of the queue of any priority is adjusted.
可选地,该任一优先级的队列对该接收端设备1720的缓存空间的占用量与低于该任一优先级的所有优先级的队列对该接收端设备1720的缓存空间的占用量负相关,该任一优先级的队列的开启反压水线值与该任一优先级的队列对该接收端设备1720的缓存空间的占用量负相关;Optionally, the occupancy of the buffer space of the receiving end device 1720 by the queue of any priority and the occupancy of the buffer space of the receiving end device 1720 by the queues of all priorities lower than the any priority are negative. Correlation, the opening back pressure waterline value of the queue of any priority is negatively correlated with the amount of the buffer space occupied by the queue of any priority on the receiving end device 1720;
该任一优先级的队列的开启反压水线值大于或等于低于该任一优先级的所有优先级的队列的开启反压水线值。The opening backpressure waterline value of the queue of any priority is greater than or equal to the opening backpressure waterline value of all priority queues lower than the any priority.
可选地,该接收端设备1720用于:Optionally, the receiving end device 1720 is used to:
根据该最大水线阈值、该最小水线阈值,低于该任一优先级的所有优先级的队列对该接收端设备1720的缓存空间的占用量,以及该接收端设备1720的所有队列对该接收端设备1720的缓存空间的占用量,采用水线值公式计算该任一优先级的队列的开启反压水线值;According to the maximum watermark threshold and the minimum watermark threshold, the occupancy of the buffer space of the receiving end device 1720 by all priority queues lower than any one of the priority levels, and all the queues of the receiving end device 1720 The amount of buffer space occupied by the receiving end device 1720 is calculated by using a waterline value formula to calculate the open backpressure waterline value of the queue of any priority;
根据计算结果调整该任一优先级的队列的开启反压水线值;Adjust the opening back pressure waterline value of the queue of any priority according to the calculation result;
其中,该水线值公式为:Among them, the waterline value formula is:
Figure PCTCN2021072574-appb-000005
Figure PCTCN2021072574-appb-000005
Vo_pri_k表示优先级为pri_k的队列的开启反压水线值,B_pri_i表示优先级为pri_i的所有队列对该接收端设备1720的缓存空间的占用量,B_total表示该接收端设备1720的所有队列对该接收端设备1720的缓存空间的占用量,V_max表示最大水线阈值,V_min表示最小 水线阈值。Vo_pri_k represents the open backpressure waterline value of the queue with priority pri_k, B_pri_i represents the occupation of the buffer space of the receiving end device 1720 by all queues with priority pri_i, and B_total represents the value of all queues of the receiving end device 1720. The occupancy of the buffer space of the receiving end device 1720, V_max represents the maximum watermark threshold, and V_min represents the minimum watermark threshold.
可选地,该反压水线值包括开启反压水线值和关闭反压水线值,Optionally, the back pressure waterline value includes an open back pressure waterline value and a closed back pressure waterline value,
该接收端设备1720用于:对于任一优先级的队列:The receiving end device 1720 is used to: for any priority queue:
根据该任一优先级的所有队列对该接收端设备1720的缓存空间的占用量以及该缓存空间的大小,调整该任一优先级的队列的开启反压水线值,该任一优先级的队列的开启反压水线值与该任一优先级的所有队列对该接收端设备1720的缓存空间的占用量负相关;According to the occupancy of the buffer space of the receiving end device 1720 by all queues of any priority and the size of the buffer space, adjust the opening back pressure waterline value of the queue of any priority. The opening back pressure waterline value of the queue is negatively correlated with the amount of the buffer space occupied by the receiving end device 1720 by all queues of any one of the priority levels;
根据该任一优先级的队列的开启反压水线值,调整该任一优先级的队列的关闭反压水线值。According to the open back pressure waterline value of the queue of any priority, the closed back pressure waterline value of the queue of any priority is adjusted.
可选地,该反压水线值包括开启反压水线值和关闭反压水线值,Optionally, the back pressure waterline value includes an open back pressure waterline value and a closed back pressure waterline value,
该接收端设备1720用于:对于任一优先级的队列:The receiving end device 1720 is used to: for any priority queue:
根据该任一优先级的M个最长队列的时延均值和该接收端设备1720的所有优先级的所有最长队列的时延均值,调整该任一优先级的队列的开启反压水线值,该M为大于0的整数;According to the average delay of the M longest queues of any priority and the average delay of all the longest queues of all the priorities of the receiving end device 1720, adjust the opening backpressure waterline of the queue of any priority Value, the M is an integer greater than 0;
根据该任一优先级的队列的开启反压水线值,调整该任一优先级的队列的关闭反压水线值。According to the open back pressure waterline value of the queue of any priority, the closed back pressure waterline value of the queue of any priority is adjusted.
可选地,该接收端设备1720还用于:在目标时长内该接收端设备1720的所有队列对该接收端设备1720的缓存空间的最大占用量大于该最小水线阈值且小于该最大水线阈值与第一门限值的差值,或者,该最大占用量大于该最大水线阈值与第二门限值的差值时,调整该最小水线阈值。Optionally, the receiving end device 1720 is further configured to: within the target duration, the maximum occupancy of all queues of the receiving end device 1720 to the buffer space of the receiving end device 1720 is greater than the minimum waterline threshold and less than the maximum waterline The difference between the threshold and the first threshold, or when the maximum occupancy is greater than the difference between the maximum watermark threshold and the second threshold, adjust the minimum watermark threshold.
综上所述,本申请实施例提供的拥塞控制系统,接收端设备监控接收端设备的多个队列,当该接收端设备的多个队列中的第一队列满足预设开启指标时,通知发送端设备对该发送端设备中与该第一队列对应的目标队列开启拥塞控制,该发送端设备根据该接收端设备的通知对目标队列开启拥塞控制。该拥塞控制方法有助于解决目前通信网络的拥塞问题,有助于提高通信网络的资源利用率以及传输质量。In summary, in the congestion control system provided by the embodiment of the present application, the receiving end device monitors multiple queues of the receiving end device, and when the first queue of the multiple queues of the receiving end device meets the preset opening index, the notification is sent The end device enables congestion control on the target queue corresponding to the first queue in the sender device, and the sender device enables congestion control on the target queue according to the notification of the receiver device. The congestion control method helps to solve the congestion problem of the current communication network, and helps to improve the resource utilization rate and transmission quality of the communication network.
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,该计算机程序被处理器执行时实现图5所示实施例提供的拥塞控制方法的全部或部分步骤。The embodiment of the present application provides a computer-readable storage medium in which a computer program is stored, and when the computer program is executed by a processor, it implements all or part of the congestion control method provided by the embodiment shown in FIG. 5 step.
本申请实施例提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行图5所示实施例提供的拥塞控制方法的全部或部分步骤。The embodiment of the present application provides a computer program product containing instructions. When the computer program product runs on a computer, the computer executes all or part of the steps of the congestion control method provided by the embodiment shown in FIG. 5.
本申请实施例提供了一种芯片,该芯片包括可编程逻辑电路和/或程序指令,当该芯片运行时用于实现图5所示实施例提供的拥塞控制方法的全部或部分步骤。The embodiment of the present application provides a chip that includes a programmable logic circuit and/or program instructions, and when the chip is running, it is used to implement all or part of the steps of the congestion control method provided by the embodiment shown in FIG. 5.
本申请实施例中,发送端设备和接收端设备可以在同一台物理设备或虚拟设备上,即设备具有发送和接收功能,既可执行发送端设备的所有操作或步骤,也可以执行接收端设备的所有操作或步骤。In the embodiments of this application, the sending end device and the receiving end device can be on the same physical device or virtual device, that is, the device has sending and receiving functions, which can perform all operations or steps of the sending end device, and can also execute the receiving end device. All operations or steps.
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种 关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。It should be understood that the term "and/or" in this text is only an association relationship describing the associated objects, indicating that there can be three types of relationships, for example, A and/or B, which can mean: A alone exists, and both A and B exist. , There are three cases of B alone. In addition, the character "/" in this text generally indicates that the associated objects before and after are in an "or" relationship.
应理解,在本申请实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,不应对本申请实施例的实施过程构成任何限定。It should be understood that in the embodiments of the present application, the size of the sequence numbers of the foregoing processes does not mean the order of execution. The execution order of the processes should be determined by their functions and internal logic, and should not constitute the implementation process of the embodiments of the present application. Any restrictions.
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。The serial numbers of the foregoing embodiments of the present application are for description only, and do not represent the superiority of the embodiments.
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。A person of ordinary skill in the art can understand that all or part of the steps in the above embodiments can be implemented by hardware, or by a program to instruct relevant hardware. The program can be stored in a computer-readable storage medium. The storage medium mentioned can be a read-only memory, a magnetic disk or an optical disk, etc.
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。The above are only optional embodiments of this application and are not intended to limit this application. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of this application shall be included in the protection of this application. Within range.

Claims (46)

  1. 一种拥塞控制方法,其特征在于,所述方法包括:A congestion control method, characterized in that the method includes:
    监控接收端设备的多个队列,所述接收端设备的每个队列与发送端设备中的一个或多个队列对应;Monitoring multiple queues of the receiving end device, each queue of the receiving end device corresponding to one or more queues in the sending end device;
    当所述接收端设备的多个队列中的第一队列满足预设开启指标时,通知所述发送端设备对所述发送端设备中与所述第一队列对应的目标队列开启拥塞控制;When the first queue of the multiple queues of the receiving end device meets a preset opening index, notifying the sending end device to enable congestion control on the target queue corresponding to the first queue in the sending end device;
    其中,所述预设开启指标包括:所述接收端设备的多个队列对所述接收端设备的缓存空间的占用量达到或超出所述第一队列的开启反压水线值。Wherein, the preset opening index includes: the amount of the buffer space of the receiving end device occupied by the multiple queues of the receiving end device reaches or exceeds the open back pressure waterline value of the first queue.
  2. 根据权利要求1所述的方法,其特征在于,The method of claim 1, wherein:
    所述预设开启指标还包括以下一个或多个:The preset opening indicator further includes one or more of the following:
    所述第一队列属于所述接收端设备的多个队列中第一优先级的N个最长队列,所述第一队列的优先级为所述第一优先级,当所述第一优先级为所述多个队列的优先级中的最低优先级时,所述N为大于0的整数,当所述第一优先级为所述多个队列的优先级中的非最低优先级时,所述N为大于或等于0的整数;The first queue belongs to the N longest queues of the first priority among the multiple queues of the receiving end device, and the priority of the first queue is the first priority. When the first priority is When it is the lowest priority among the priorities of the multiple queues, the N is an integer greater than 0, and when the first priority is the non-lowest priority among the priorities of the multiple queues, Said N is an integer greater than or equal to 0;
    所述第一队列的长度达到或超过预设长度阈值。The length of the first queue reaches or exceeds a preset length threshold.
  3. 根据权利要求1或2所述的方法,其特征在于,The method according to claim 1 or 2, characterized in that:
    所述通知所述发送端设备对所述发送端设备中与所述第一队列对应的目标队列开启拥塞控制,包括:The informing the sending end device to enable congestion control on the target queue corresponding to the first queue in the sending end device includes:
    向所述发送端设备发送开启控制消息,所述开启控制消息指示所述发送端设备对所述目标队列开启拥塞控制。Sending an open control message to the sending end device, where the open control message instructs the sending end device to open congestion control on the target queue.
  4. 根据权利要求1至3任一所述的方法,其特征在于,The method according to any one of claims 1 to 3, characterized in that:
    在通知所述发送端设备对所述发送端设备中与所述第一队列对应的目标队列开启拥塞控制之后,所述方法还包括:After notifying the sending end device to enable congestion control on the target queue corresponding to the first queue in the sending end device, the method further includes:
    当所述第一队列满足预设关闭指标时,通知所述发送端设备对所述发送端设备的所述目标队列关闭拥塞控制;When the first queue meets a preset closing index, notify the sending end device to close congestion control on the target queue of the sending end device;
    其中,所述预设关闭指标包括:所述接收端设备的多个队列对所述接收端设备的缓存空间的占用量小于所述第一队列的关闭反压水线值。Wherein, the preset closing index includes: the amount of the buffer space of the receiving end device occupied by the multiple queues of the receiving end device is less than the closing back pressure waterline value of the first queue.
  5. 根据权利要求4所述的方法,其特征在于,The method of claim 4, wherein:
    所述预设关闭指标还包括以下一个或多个:The preset closing indicator also includes one or more of the following:
    所述接收端设备的多个队列对所述接收端设备的缓存空间的占用量小于所述第一队列的关闭反压水线值的时长达到或超过预设时长阈值;The duration of the multiple queues of the receiving end device occupying the buffer space of the receiving end device less than the closing backpressure waterline value of the first queue reaches or exceeds a preset duration threshold;
    所述第一队列不属于所述接收端设备的多个队列中第一优先级的N个最长队列,所述第一队列的优先级为所述第一优先级,当所述第一优先级为所述多个队列的优先级中的最低优 先级时,所述N为大于0的整数,当所述第一优先级为所述多个队列的优先级中的非最低优先级时,所述N为大于或等于0的整数;The first queue does not belong to the N longest queues of the first priority among the multiple queues of the receiving end device, and the priority of the first queue is the first priority. When the first priority is When the priority is the lowest priority among the priorities of the multiple queues, the N is an integer greater than 0, and when the first priority is the non-lowest priority among the priorities of the multiple queues, The N is an integer greater than or equal to 0;
    所述第一队列的长度小于预设长度阈值。The length of the first queue is less than a preset length threshold.
  6. 根据权利要求1至5任一所述的方法,其特征在于,The method according to any one of claims 1 to 5, wherein:
    在通知所述发送端设备对所述发送端设备中与所述第一队列对应的目标队列开启拥塞控制之后,所述方法还包括:After notifying the sending end device to enable congestion control on the target queue corresponding to the first queue in the sending end device, the method further includes:
    为所述目标队列分配发送信用值;Allocating a sending credit value to the target queue;
    向所述发送端设备发送包含所述发送信用值的消息,以使所述发送端设备按照所述发送信用值向所述接收端设备发送所述目标队列中的报文。Sending a message including the sending credit value to the sending end device, so that the sending end device sends the message in the target queue to the receiving end device according to the sending credit value.
  7. 根据权利要求6所述的方法,其特征在于,所述方法还包括:The method according to claim 6, wherein the method further comprises:
    根据所述接收端设备的多个队列对所述接收端设备的缓存空间的占用量,调整所述目标队列的发送信用值的分配系数,所述分配系数与所述接收端设备的多个队列对所述接收端设备的缓存空间的占用量负相关。Adjust the distribution coefficient of the sending credit value of the target queue according to the amount of the multiple queues of the receiving end device occupying the buffer space of the receiving end device, and the distribution coefficient is the same as that of the multiple queues of the receiving end device. There is a negative correlation with the occupancy of the buffer space of the receiving end device.
  8. 根据权利要求1至7任一所述的方法,其特征在于,所述接收端设备的多个队列中的每个队列具有反压水线值,不同优先级的队列的反压水线值不同,所述方法还包括:The method according to any one of claims 1 to 7, wherein each of the multiple queues of the receiving end device has a back pressure waterline value, and queues of different priorities have different back pressure waterline values. , The method further includes:
    当所述接收端设备的多个队列对所述接收端设备的缓存空间的占用量达到或超出所述接收端设备的最小水线阈值时,调整所述接收端设备的各个优先级的队列的反压水线值。When the occupancy of the buffer space of the receiving end device by the multiple queues of the receiving end device reaches or exceeds the minimum waterline threshold of the receiving end device, adjust the queue size of each priority of the receiving end device. Back pressure waterline value.
  9. 根据权利要求8所述的方法,其特征在于,The method of claim 8, wherein:
    所述反压水线值包括开启反压水线值和关闭反压水线值,The back pressure waterline value includes an open back pressure waterline value and a closed back pressure waterline value,
    所述调整所述接收端设备的各个优先级的队列的反压水线值,包括:The adjusting the back pressure waterline value of each priority queue of the receiving end device includes:
    对于任一优先级的队列:For any priority queue:
    根据所述接收端设备的最大水线阈值、所述接收端设备的所述最小水线阈值,低于所述任一优先级的所有优先级的队列对所述接收端设备的缓存空间的占用量,以及所述接收端设备的所有队列对所述接收端设备的缓存空间的占用量,调整所述任一优先级的队列的开启反压水线值;According to the maximum watermark threshold of the receiving end device and the minimum watermark threshold of the receiving end device, all priority queues below any one of the priority levels occupy the buffer space of the receiving end device Adjusting the backpressure waterline value of the queue of any one of the priority levels, and the occupancy of all queues of the receiving end device to the buffer space of the receiving end device;
    根据所述任一优先级的队列的开启反压水线值,调整所述任一优先级的队列的关闭反压水线值。According to the open back pressure waterline value of the queue of any priority, the closed back pressure waterline value of the queue of any priority is adjusted.
  10. 根据权利要求9所述的方法,其特征在于,The method of claim 9, wherein:
    所述任一优先级的队列对所述接收端设备的缓存空间的占用量与低于所述任一优先级的所有优先级的队列对所述接收端设备的缓存空间的占用量负相关,所述任一优先级的队列的开启反压水线值与所述任一优先级的队列对所述接收端设备的缓存空间的占用量负相关;The occupation of the buffer space of the receiving end device by the queue of any priority is inversely related to the occupation of the buffer space of the receiving end device by the queues of all priorities lower than the any priority; The opening back pressure waterline value of the queue of any priority is negatively related to the amount of the buffer space occupied by the queue of any priority on the receiving end device;
    所述任一优先级的队列的开启反压水线值大于或等于低于所述任一优先级的所有优先级的队列的开启反压水线值。The opening backpressure waterline value of the queue of any priority is greater than or equal to the opening backpressure waterline value of all priority queues lower than the any priority.
  11. 根据权利要求9或10所述的方法,其特征在于,The method according to claim 9 or 10, wherein:
    所述根据所述接收端设备的最大水线阈值、所述接收端设备的所述最小水线阈值,低于所述任一优先级的所有优先级的队列对所述接收端设备的缓存空间的占用量,以及所述接收端设备的所有队列对所述接收端设备的缓存空间的占用量,调整所述任一优先级的队列的开启反压水线值,包括:According to the maximum watermark threshold of the receiving end device and the minimum watermark threshold of the receiving end device, the buffer space of the receiving end device for all priority queues lower than any one of the priorities And the occupancy of all queues of the receiving end device to the buffer space of the receiving end device, adjusting the opening back pressure waterline value of the queue of any priority, including:
    根据所述最大水线阈值、所述最小水线阈值,低于所述任一优先级的所有优先级的队列对所述接收端设备的缓存空间的占用量,以及所述接收端设备的所有队列对所述接收端设备的缓存空间的占用量,采用水线值公式计算所述任一优先级的队列的开启反压水线值;According to the maximum watermark threshold and the minimum watermark threshold, all priority queues below any one of the priority levels occupy the buffer space of the receiving end device, and all of the receiving end device The amount of the buffer space occupied by the receiving end device by the queue is calculated by using a waterline value formula to calculate the open backpressure waterline value of the queue of any priority;
    根据计算结果调整所述任一优先级的队列的开启反压水线值;Adjusting the opening back pressure waterline value of the queue of any priority according to the calculation result;
    其中,所述水线值公式为:Wherein, the waterline value formula is:
    Figure PCTCN2021072574-appb-100001
    Figure PCTCN2021072574-appb-100001
    所述Vo_pri_k表示优先级为pri_k的队列的开启反压水线值,所述B_pri_i表示优先级为pri_i的所有队列对所述接收端设备的缓存空间的占用量,所述B_total表示所述接收端设备的所有队列对所述接收端设备的缓存空间的占用量,所述V_max表示所述最大水线阈值,所述V_min表示所述最小水线阈值。The Vo_pri_k represents the opening back pressure waterline value of the queue with priority pri_k, the B_pri_i represents the occupation of the buffer space of the receiving end device by all queues with priority pri_i, and the B_total represents the receiving end The occupied amount of the buffer space of the receiving end device by all queues of the device, where the V_max represents the maximum watermark threshold, and the V_min represents the minimum watermark threshold.
  12. 根据权利要求8所述的方法,其特征在于,The method of claim 8, wherein:
    所述反压水线值包括开启反压水线值和关闭反压水线值,The back pressure waterline value includes an open back pressure waterline value and a closed back pressure waterline value,
    所述调整所述接收端设备的各个优先级的队列的反压水线值,包括:The adjusting the back pressure waterline value of each priority queue of the receiving end device includes:
    对于任一优先级的队列:For any priority queue:
    根据所述任一优先级的所有队列对所述接收端设备的缓存空间的占用量以及所述缓存空间的大小,调整所述任一优先级的队列的开启反压水线值,所述任一优先级的队列的开启反压水线值与所述任一优先级的所有队列对所述接收端设备的缓存空间的占用量负相关;According to the occupancy of the buffer space of the receiving end device by all the queues of any priority and the size of the buffer space, adjust the opening back pressure waterline value of the queue of any priority, and The opening backpressure waterline value of a priority queue is inversely related to the amount of buffer space occupied by all queues of any one of the priorities of the receiving end device;
    根据所述任一优先级的队列的开启反压水线值,调整所述任一优先级的队列的关闭反压水线值。According to the open back pressure waterline value of the queue of any priority, the closed back pressure waterline value of the queue of any priority is adjusted.
  13. 根据权利要求8所述的方法,其特征在于,The method of claim 8, wherein:
    所述反压水线值包括开启反压水线值和关闭反压水线值,The back pressure waterline value includes an open back pressure waterline value and a closed back pressure waterline value,
    所述调整所述接收端设备的各个优先级的队列的反压水线值,包括:The adjusting the back pressure waterline value of each priority queue of the receiving end device includes:
    对于任一优先级的队列:For any priority queue:
    根据所述任一优先级的M个最长队列的时延均值和所述接收端设备的所有优先级的所有最长队列的时延均值,调整所述任一优先级的队列的开启反压水线值,所述M为大于0的整数;According to the average delay of the M longest queues of any priority and the average delay of all the longest queues of all the priorities of the receiving end device, adjust the opening backpressure of the queue of any priority Waterline value, where M is an integer greater than 0;
    根据所述任一优先级的队列的开启反压水线值,调整所述任一优先级的队列的关闭反压水线值。According to the open back pressure waterline value of the queue of any priority, the closed back pressure waterline value of the queue of any priority is adjusted.
  14. 根据权利要求8至13任一所述的方法,其特征在于,所述方法还包括:The method according to any one of claims 8 to 13, wherein the method further comprises:
    在目标时长内所述接收端设备的所有队列对所述接收端设备的缓存空间的最大占用量大于所述最小水线阈值且小于所述最大水线阈值与第一门限值的差值,或者,所述最大占用量大于所述最大水线阈值与第二门限值的差值时,调整所述最小水线阈值。The maximum occupancy of all queues of the receiving end device to the buffer space of the receiving end device within the target duration is greater than the minimum watermark threshold and less than the difference between the maximum watermark threshold and the first threshold, Alternatively, when the maximum occupancy is greater than the difference between the maximum watermark threshold and the second threshold, the minimum watermark threshold is adjusted.
  15. 一种拥塞控制方法,其特征在于,所述方法包括:A congestion control method, characterized in that the method includes:
    根据接收端设备的通知对发送端设备的目标队列开启拥塞控制,所述接收端设备的每个队列与所述发送端设备中的一个或多个队列对应,所述目标队列与所述接收端设备的第一队列对应;The congestion control is enabled on the target queue of the sending end device according to the notification of the receiving end device. Each queue of the receiving end device corresponds to one or more queues in the sending end device, and the target queue is corresponding to the receiving end. Corresponding to the first queue of the device;
    其中,所述接收端设备在所述第一队列满足预设开启指标时通知所述发送端设备对所述目标队列开启拥塞控制,所述预设开启指标包括:所述接收端设备的多个队列对所述接收端设备的缓存空间的占用量达到或超出所述第一队列的开启反压水线值。Wherein, the receiving end device notifies the sending end device to enable congestion control on the target queue when the first queue meets a preset opening index, and the preset opening index includes: multiple numbers of the receiving end device The occupation of the buffer space of the receiving end device by the queue reaches or exceeds the opening back pressure waterline value of the first queue.
  16. 根据权利要求15所述的方法,其特征在于,The method of claim 15, wherein:
    所述预设开启指标还包括以下一个或多个:The preset opening indicator further includes one or more of the following:
    所述第一队列属于所述接收端设备的多个队列中第一优先级的N个最长队列,所述第一队列的优先级为所述第一优先级,当所述第一优先级为所述多个队列的优先级中的最低优先级时,所述N为大于0的整数,当所述第一优先级为所述多个队列的优先级中的非最低优先级时,所述N为大于或等于0的整数;The first queue belongs to the N longest queues of the first priority among the multiple queues of the receiving end device, and the priority of the first queue is the first priority. When the first priority is When it is the lowest priority among the priorities of the multiple queues, the N is an integer greater than 0, and when the first priority is the non-lowest priority among the priorities of the multiple queues, Said N is an integer greater than or equal to 0;
    所述第一队列的长度达到或超过预设长度阈值。The length of the first queue reaches or exceeds a preset length threshold.
  17. 根据权利要求15或16所述的方法,其特征在于,The method according to claim 15 or 16, characterized in that:
    所述根据接收端设备的通知对发送端设备的目标队列开启拥塞控制,包括:The enabling congestion control on the target queue of the sending end device according to the notification of the receiving end device includes:
    接收所述接收端设备发送的开启控制消息,所述开启控制消息指示所述发送端设备对所述目标队列开启拥塞控制;Receiving an opening control message sent by the receiving end device, where the opening control message instructs the sending end device to enable congestion control on the target queue;
    根据所述开启控制消息对所述目标队列开启拥塞控制。Turn on congestion control on the target queue according to the turn on control message.
  18. 根据权利要求15至17任一所述的方法,其特征在于,The method according to any one of claims 15 to 17, characterized in that,
    在根据接收端设备的通知对发送端设备的目标队列开启拥塞控制之后,所述方法还包括:After enabling congestion control on the target queue of the sending end device according to the notification of the receiving end device, the method further includes:
    根据所述接收端设备的通知对所述发送端设备的所述目标队列关闭拥塞控制;Turn off congestion control on the target queue of the sending end device according to the notification of the receiving end device;
    其中,所述接收端设备在所述第一队列满足预设关闭指标时通知所述发送端设备对所述目标队列关闭拥塞控制,所述预设关闭指标包括:所述接收端设备的多个队列对所述接收端设备的缓存空间的占用量小于所述第一队列的关闭反压水线值。Wherein, the receiving end device notifies the sending end device to close congestion control for the target queue when the first queue meets a preset closing index, and the preset closing indicator includes: multiple numbers of the receiving end device The occupation of the buffer space of the receiving end device by the queue is less than the closing back pressure waterline value of the first queue.
  19. 根据权利要求18所述的方法,其特征在于,The method of claim 18, wherein:
    所述预设关闭指标还包括以下一个或多个:The preset closing indicator also includes one or more of the following:
    所述接收端设备的多个队列对所述接收端设备的缓存空间的占用量小于所述第一队列的关闭反压水线值的时长达到或超过预设时长阈值;The duration of the multiple queues of the receiving end device occupying the buffer space of the receiving end device less than the closing backpressure waterline value of the first queue reaches or exceeds a preset duration threshold;
    所述第一队列不属于所述接收端设备的多个队列中第一优先级的N个最长队列,所述第 一队列的优先级为所述第一优先级,当所述第一优先级为所述多个队列的优先级中的最低优先级时,所述N为大于0的整数,当所述第一优先级为所述多个队列的优先级中的非最低优先级时,所述N为大于或等于0的整数;The first queue does not belong to the N longest queues of the first priority among the multiple queues of the receiving end device, and the priority of the first queue is the first priority. When the first priority is When the priority is the lowest priority among the priorities of the multiple queues, the N is an integer greater than 0, and when the first priority is the non-lowest priority among the priorities of the multiple queues, The N is an integer greater than or equal to 0;
    所述第一队列的长度小于预设长度阈值。The length of the first queue is less than a preset length threshold.
  20. 根据权利要求15至19任一所述的方法,其特征在于,The method according to any one of claims 15 to 19, characterized in that,
    在根据接收端设备的通知对发送端设备的目标队列开启拥塞控制之后,所述方法还包括:After enabling congestion control on the target queue of the sending end device according to the notification of the receiving end device, the method further includes:
    接收所述接收端设备发送的包含发送信用值的消息;Receiving a message containing a sending credit value sent by the receiving end device;
    按照所述发送信用值向所述接收端设备发送所述目标队列中的报文。Sending the message in the target queue to the receiving end device according to the sending credit value.
  21. 一种拥塞控制装置,其特征在于,所述装置包括:A congestion control device, characterized in that the device includes:
    监控模块,用于监控接收端设备的多个队列,所述接收端设备的每个队列与发送端设备中的一个或多个队列对应;The monitoring module is used to monitor multiple queues of the receiving end device, and each queue of the receiving end device corresponds to one or more queues in the sending end device;
    开启模块,用于当所述接收端设备的多个队列中的第一队列满足预设开启指标时,通知所述发送端设备对所述发送端设备中与所述第一队列对应的目标队列开启拥塞控制;An opening module, configured to notify the sending end device of the target queue corresponding to the first queue in the sending end device when the first queue among the multiple queues of the receiving end device meets a preset opening index Turn on congestion control;
    其中,所述预设开启指标包括:所述接收端设备的多个队列对所述接收端设备的缓存空间的占用量达到或超出所述第一队列的开启反压水线值。Wherein, the preset opening index includes: the amount of the buffer space of the receiving end device occupied by the multiple queues of the receiving end device reaches or exceeds the open back pressure waterline value of the first queue.
  22. 根据权利要求21所述的装置,其特征在于,The device of claim 21, wherein:
    所述预设开启指标还包括以下一个或多个:The preset opening indicator further includes one or more of the following:
    所述第一队列属于所述接收端设备的多个队列中第一优先级的N个最长队列,所述第一队列的优先级为所述第一优先级,当所述第一优先级为所述多个队列的优先级中的最低优先级时,所述N为大于0的整数,当所述第一优先级为所述多个队列的优先级中的非最低优先级时,所述N为大于或等于0的整数;The first queue belongs to the N longest queues of the first priority among the multiple queues of the receiving end device, and the priority of the first queue is the first priority. When the first priority is When it is the lowest priority among the priorities of the multiple queues, the N is an integer greater than 0, and when the first priority is the non-lowest priority among the priorities of the multiple queues, Said N is an integer greater than or equal to 0;
    所述第一队列的长度达到或超过预设长度阈值。The length of the first queue reaches or exceeds a preset length threshold.
  23. 根据权利要求21或22所述的装置,其特征在于,The device according to claim 21 or 22, wherein:
    所述开启模块,用于向所述发送端设备发送开启控制消息,所述开启控制消息指示所述发送端设备对所述目标队列开启拥塞控制。The opening module is configured to send an opening control message to the sending end device, where the opening control message instructs the sending end device to enable congestion control on the target queue.
  24. 根据权利要求21至23任一所述的装置,其特征在于,所述装置还包括:The device according to any one of claims 21 to 23, wherein the device further comprises:
    关闭模块,用于当所述第一队列满足预设关闭指标时,通知所述发送端设备对所述发送端设备的所述目标队列关闭拥塞控制;The closing module is configured to notify the sending end device to close the congestion control of the target queue of the sending end device when the first queue meets a preset closing index;
    其中,所述预设关闭指标包括:所述接收端设备的多个队列对所述接收端设备的缓存空间的占用量小于所述第一队列的关闭反压水线值。Wherein, the preset closing index includes: the amount of the buffer space of the receiving end device occupied by the multiple queues of the receiving end device is less than the closing back pressure waterline value of the first queue.
  25. 根据权利要求24所述的装置,其特征在于,The device of claim 24, wherein:
    所述预设关闭指标还包括以下一个或多个:The preset closing indicator also includes one or more of the following:
    所述接收端设备的多个队列对所述接收端设备的缓存空间的占用量小于所述第一队列的 关闭反压水线值的时长达到或超过预设时长阈值;The duration of the multiple queues of the receiving end device occupying the buffer space of the receiving end device less than the closing back pressure waterline value of the first queue reaches or exceeds a preset duration threshold;
    所述第一队列不属于所述接收端设备的多个队列中第一优先级的N个最长队列,所述第一队列的优先级为所述第一优先级,当所述第一优先级为所述多个队列的优先级中的最低优先级时,所述N为大于0的整数,当所述第一优先级为所述多个队列的优先级中的非最低优先级时,所述N为大于或等于0的整数;The first queue does not belong to the N longest queues of the first priority among the multiple queues of the receiving end device, and the priority of the first queue is the first priority. When the first priority is When the priority is the lowest priority among the priorities of the multiple queues, the N is an integer greater than 0, and when the first priority is the non-lowest priority among the priorities of the multiple queues, The N is an integer greater than or equal to 0;
    所述第一队列的长度小于预设长度阈值。The length of the first queue is less than a preset length threshold.
  26. 根据权利要求21至25任一所述的装置,其特征在于,所述装置还包括:The device according to any one of claims 21 to 25, wherein the device further comprises:
    分配模块,用于为所述目标队列分配发送信用值;An allocation module, configured to allocate a sending credit value to the target queue;
    发送模块,用于向所述发送端设备发送包含所述发送信用值的消息,以使所述发送端设备按照所述发送信用值向所述接收端设备发送所述目标队列中的报文。The sending module is configured to send a message containing the sending credit value to the sending end device, so that the sending end device sends the message in the target queue to the receiving end device according to the sending credit value.
  27. 根据权利要求26所述的装置,其特征在于,所述装置还包括:The device according to claim 26, wherein the device further comprises:
    系数调整模块,用于根据所述接收端设备的多个队列对所述接收端设备的缓存空间的占用量,调整所述目标队列的发送信用值的分配系数,所述分配系数与所述接收端设备的多个队列对所述接收端设备的缓存空间的占用量负相关。The coefficient adjustment module is configured to adjust the distribution coefficient of the send credit value of the target queue according to the amount of the buffer space occupied by the multiple queues of the receiving end device. The multiple queues of the end device are negatively related to the occupancy of the buffer space of the receiving end device.
  28. 根据权利要求21至27任一所述的装置,其特征在于,所述接收端设备的多个队列中的每个队列具有反压水线值,不同优先级的队列的反压水线值不同,所述装置还包括:The apparatus according to any one of claims 21 to 27, wherein each of the multiple queues of the receiving end device has a back pressure waterline value, and queues of different priorities have different back pressure waterline values. , The device further includes:
    水线调整模块,用于当所述接收端设备的多个队列对所述接收端设备的缓存空间的占用量达到或超出所述接收端设备的最小水线阈值时,调整所述接收端设备的各个优先级的队列的反压水线值。The waterline adjustment module is configured to adjust the receiving end device when the amount of the buffer space occupied by the receiving end device by the multiple queues of the receiving end device reaches or exceeds the minimum waterline threshold of the receiving end device The back pressure waterline value of each priority queue.
  29. 根据权利要求28所述的装置,其特征在于,The device of claim 28, wherein:
    所述反压水线值包括开启反压水线值和关闭反压水线值,所述水线调整模块,用于:The back pressure waterline value includes an open back pressure waterline value and a closed back pressure waterline value, and the waterline adjustment module is used for:
    对于任一优先级的队列:For any priority queue:
    根据所述接收端设备的最大水线阈值、所述接收端设备的所述最小水线阈值,低于所述任一优先级的所有优先级的队列对所述接收端设备的缓存空间的占用量,以及所述接收端设备的所有队列对所述接收端设备的缓存空间的占用量,调整所述任一优先级的队列的开启反压水线值;According to the maximum watermark threshold of the receiving end device and the minimum watermark threshold of the receiving end device, all priority queues below any one of the priority levels occupy the buffer space of the receiving end device Adjusting the backpressure waterline value of the queue of any one of the priority levels, and the occupancy of all queues of the receiving end device to the buffer space of the receiving end device;
    根据所述任一优先级的队列的开启反压水线值,调整所述任一优先级的队列的关闭反压水线值。According to the open back pressure waterline value of the queue of any priority, the closed back pressure waterline value of the queue of any priority is adjusted.
  30. 根据权利要求29所述的装置,其特征在于,The device of claim 29, wherein:
    所述任一优先级的队列对所述接收端设备的缓存空间的占用量与低于所述任一优先级的所有优先级的队列对所述接收端设备的缓存空间的占用量负相关,所述任一优先级的队列的开启反压水线值与所述任一优先级的队列对所述接收端设备的缓存空间的占用量负相关;The occupation of the buffer space of the receiving end device by the queue of any priority is inversely related to the occupation of the buffer space of the receiving end device by the queues of all priorities lower than the any priority; The opening back pressure waterline value of the queue of any priority is negatively related to the amount of the buffer space occupied by the queue of any priority on the receiving end device;
    所述任一优先级的队列的开启反压水线值大于或等于低于所述任一优先级的所有优先级的队列的开启反压水线值。The opening backpressure waterline value of the queue of any priority is greater than or equal to the opening backpressure waterline value of all priority queues lower than the any priority.
  31. 根据权利要求29或30所述的装置,其特征在于,所述水线调整模块,用于:The device according to claim 29 or 30, wherein the waterline adjustment module is configured to:
    根据所述最大水线阈值、所述最小水线阈值,低于所述任一优先级的所有优先级的队列对所述接收端设备的缓存空间的占用量,以及所述接收端设备的所有队列对所述接收端设备的缓存空间的占用量,采用水线值公式计算所述任一优先级的队列的开启反压水线值;According to the maximum watermark threshold and the minimum watermark threshold, all priority queues below any one of the priority levels occupy the buffer space of the receiving end device, and all of the receiving end device The amount of buffer space occupied by the receiving end device by the queue is calculated by using a waterline value formula to calculate the opening backpressure waterline value of the queue of any priority;
    根据计算结果调整所述任一优先级的队列的开启反压水线值;Adjusting the opening back pressure waterline value of the queue of any priority according to the calculation result;
    其中,所述水线值公式为:Wherein, the waterline value formula is:
    Figure PCTCN2021072574-appb-100002
    Figure PCTCN2021072574-appb-100002
    所述Vo_pri_k表示优先级为pri_k的队列的开启反压水线值,所述B_pri_i表示优先级为pri_i的所有队列对所述接收端设备的缓存空间的占用量,所述B_total表示所述接收端设备的所有队列对所述接收端设备的缓存空间的占用量,所述V_max表示所述最大水线阈值,所述V_min表示所述最小水线阈值。The Vo_pri_k represents the opening back pressure waterline value of the queue with priority pri_k, the B_pri_i represents the occupation of the buffer space of the receiving end device by all queues with priority pri_i, and the B_total represents the receiving end The occupied amount of the buffer space of the receiving end device by all queues of the device, where the V_max represents the maximum watermark threshold, and the V_min represents the minimum watermark threshold.
  32. 根据权利要求28所述的装置,其特征在于,The device of claim 28, wherein:
    所述反压水线值包括开启反压水线值和关闭反压水线值,所述水线调整模块,用于:The back pressure waterline value includes an open back pressure waterline value and a closed back pressure waterline value, and the waterline adjustment module is used for:
    对于任一优先级的队列:For any priority queue:
    根据所述任一优先级的所有队列对所述接收端设备的缓存空间的占用量以及所述缓存空间的大小,调整所述任一优先级的队列的开启反压水线值,所述任一优先级的队列的开启反压水线值与所述任一优先级的所有队列对所述接收端设备的缓存空间的占用量负相关;According to the occupancy of the buffer space of the receiving end device by all the queues of any priority and the size of the buffer space, adjust the opening back pressure waterline value of the queue of any priority, and The opening backpressure waterline value of a priority queue is inversely related to the amount of buffer space occupied by all queues of any one of the priorities of the receiving end device;
    根据所述任一优先级的队列的开启反压水线值,调整所述任一优先级的队列的关闭反压水线值。According to the open back pressure waterline value of the queue of any priority, the closed back pressure waterline value of the queue of any priority is adjusted.
  33. 根据权利要求28所述的装置,其特征在于,The device of claim 28, wherein:
    所述反压水线值包括开启反压水线值和关闭反压水线值,所述水线调整模块,用于:The back pressure waterline value includes an open back pressure waterline value and a closed back pressure waterline value, and the waterline adjustment module is used for:
    对于任一优先级的队列:For any priority queue:
    根据所述任一优先级的M个最长队列的时延均值和所述接收端设备的所有优先级的所有最长队列的时延均值,调整所述任一优先级的队列的开启反压水线值,所述M为大于0的整数;According to the average delay of the M longest queues of any priority and the average delay of all the longest queues of all the priorities of the receiving end device, adjust the opening backpressure of the queue of any priority Waterline value, where M is an integer greater than 0;
    根据所述任一优先级的队列的开启反压水线值,调整所述任一优先级的队列的关闭反压水线值。According to the open back pressure waterline value of the queue of any priority, the closed back pressure waterline value of the queue of any priority is adjusted.
  34. 根据权利要求28至33任一所述的装置,其特征在于,所述装置还包括:The device according to any one of claims 28 to 33, wherein the device further comprises:
    阈值调整模块,用于在目标时长内所述接收端设备的所有队列对所述接收端设备的缓存空间的最大占用量大于所述最小水线阈值且小于所述最大水线阈值与第一门限值的差值,或者,所述最大占用量大于所述最大水线阈值与第二门限值的差值时,调整所述最小水线阈值。Threshold adjustment module, used for the maximum occupancy of the buffer space of the receiving end device by all queues of the receiving end device within the target duration is greater than the minimum waterline threshold and less than the maximum waterline threshold and the first gate Or, when the maximum occupancy is greater than the difference between the maximum watermark threshold and the second threshold, the minimum watermark threshold is adjusted.
  35. 一种拥塞控制装置,其特征在于,所述装置包括:A congestion control device, characterized in that the device includes:
    第一接收模块,用于接收接收端设备发送的对发送端设备的目标队列开启拥塞控制的通知,所述接收端设备的每个队列与所述发送端设备中的一个或多个队列对应,所述目标队列与所述接收端设备的第一队列对应;The first receiving module is configured to receive a notification sent by the receiving end device to enable congestion control on the target queue of the sending end device, and each queue of the receiving end device corresponds to one or more queues in the sending end device, The target queue corresponds to the first queue of the receiving end device;
    开启模块,用于根据所述接收端设备的通知对所述发送端设备的目标队列开启拥塞控制。The enabling module is configured to enable congestion control on the target queue of the sending end device according to the notification of the receiving end device.
  36. 根据权利要求35所述的装置,其特征在于,The device of claim 35, wherein:
    所述第一接收模块,用于接收所述接收端设备发送的开启控制消息,所述开启控制消息携带所述目标队列的标识和使能标志位;The first receiving module is configured to receive a turn-on control message sent by the receiving end device, where the turn-on control message carries an identifier of the target queue and an enable flag bit;
    所述开启模块,用于根据所述目标队列的标识确定所述目标队列,根据所述使能标志位对所述目标队列开启拥塞控制。The enabling module is configured to determine the target queue according to the identifier of the target queue, and enable congestion control on the target queue according to the enable flag bit.
  37. 根据权利要求35或36所述的装置,其特征在于,所述装置还包括:The device according to claim 35 or 36, wherein the device further comprises:
    第二接收模块,用于接收所述接收端设备发送的对所述发送端设备的目标队列关闭拥塞控制的通知;The second receiving module is configured to receive a notification sent by the receiving end device that the target queue of the sending end device closes congestion control;
    关闭模块,用于根据所述接收端设备的通知对所述发送端设备的目标队列关闭拥塞控制。The closing module is used for closing congestion control on the target queue of the sending end device according to the notification of the receiving end device.
  38. 根据权利要求37所述的装置,其特征在于,The device of claim 37, wherein:
    所述第二接收模块,用于接收所述接收端设备发送的关闭控制消息,所述关闭控制消息携带所述目标队列的标识和去使能标志位;The second receiving module is configured to receive a shutdown control message sent by the receiving end device, where the shutdown control message carries an identifier of the target queue and a disabling flag bit;
    所述关闭模块,用于根据所述目标队列的标识确定所述目标队列,根据所述去使能标志位对所述目标队列关闭拥塞控制。The closing module is configured to determine the target queue according to the identifier of the target queue, and close congestion control on the target queue according to the disable flag bit.
  39. 根据权利要求35至39任一所述的装置,其特征在于,所述装置还包括:The device according to any one of claims 35 to 39, wherein the device further comprises:
    第三接收模块,用于接收所述接收端设备发送的包含发送信用值的消息;The third receiving module is configured to receive the message containing the sending credit value sent by the receiving end device;
    发送模块,用于按照所述发送信用值向所述接收端设备发送所述目标队列中的报文。The sending module is configured to send the message in the target queue to the receiving end device according to the sending credit value.
  40. 一种拥塞控制装置,其特征在于,所述拥塞控制装置包括:处理器和存储器,所述存储器中存储有程序,所述处理器用于执行所述存储器中存储的程序以实现权利要求1至14任一所述的拥塞控制方法。A congestion control device, wherein the congestion control device includes a processor and a memory, the memory is stored with a program, and the processor is configured to execute the program stored in the memory to implement claims 1 to 14 Any of the congestion control methods described above.
  41. 一种拥塞控制装置,其特征在于,所述拥塞控制装置包括:处理器和存储器,所述存储器中存储有程序,所述处理器用于执行所述存储器中存储的程序以实现权利要求15至20任一所述的拥塞控制方法。A congestion control device, wherein the congestion control device includes a processor and a memory, the memory is stored with a program, and the processor is configured to execute the program stored in the memory to implement claims 15 to 20 Any of the congestion control methods described above.
  42. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至15任一所述的拥塞控制方法,或者,实现权利要求16至20任一所述的拥塞控制方法。A computer-readable storage medium, wherein a computer program is stored in the computer-readable storage medium, and when the computer program is executed by a processor, the congestion control method according to any one of claims 1 to 15 is realized, or , To implement the congestion control method of any one of claims 16 to 20.
  43. 一种芯片,其特征在于,所述芯片包括可编程逻辑电路和/或程序指令,当所述芯片运行时用于实现权利要求1至15任一所述的拥塞控制方法,或者,实现权利要求16至20任一所述的拥塞控制方法。A chip, characterized in that the chip includes a programmable logic circuit and/or program instructions, when the chip is running, it is used to implement the congestion control method according to any one of claims 1 to 15, or to implement the claims The congestion control method described in any one of 16 to 20.
  44. 一种拥塞控制系统,其特征在于,包括:发送端设备和接收端设备,A congestion control system, which is characterized in that it comprises: a sending end device and a receiving end device,
    所述接收端设备用于:监控所述接收端设备的多个队列,所述接收端设备的每个队列与所述发送端设备中的一个或多个队列对应;当所述接收端设备的多个队列中的第一队列满足预设开启指标时,通知所述发送端设备对所述发送端设备中与所述第一队列对应的目标队列开启拥塞控制;其中,所述预设开启指标包括:所述接收端设备的多个队列对所述接收端设备的缓存空间的占用量达到或超出所述第一队列的开启反压水线值;The receiving end device is used to monitor multiple queues of the receiving end device, and each queue of the receiving end device corresponds to one or more queues in the sending end device; When the first queue of the plurality of queues meets the preset opening index, the sending end device is notified to enable congestion control on the target queue corresponding to the first queue in the sending end device; wherein, the preset opening index Including: the amount of the buffer space of the receiving end device occupied by the multiple queues of the receiving end device reaches or exceeds the threshold value of the first queue to be turned on;
    所述发送端设备用于:根据所述接收端设备的通知对所述发送端设备中与所述第一队列对应的目标队列开启拥塞控制。The sending end device is configured to enable congestion control on the target queue corresponding to the first queue in the sending end device according to the notification of the receiving end device.
  45. 根据权利要求44所述的拥塞控制系统,其特征在于,所述发送端设备包括权利要求35至39任一所述的拥塞控制装置,所述接收端设备包括权利要求21至34任一所述的拥塞控制装置;或者,所述发送端设备包括权利要求41所述的拥塞控制装置,所述接收端设备包括权利要求40所述的拥塞控制装置。The congestion control system according to claim 44, wherein the sending end device comprises the congestion control device according to any one of claims 35 to 39, and the receiving end device comprises any one of claims 21 to 34. The congestion control device; or, the sending end device includes the congestion control device according to claim 41, and the receiving end device includes the congestion control device according to claim 40.
  46. 一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被处理器执行时实现权利要求1至15任一所述的拥塞控制方法,或者,实现权利要求16至20任一所述的拥塞控制方法。A computer program product, characterized in that it comprises a computer program that, when executed by a processor, implements the congestion control method according to any one of claims 1 to 15, or implements any one of claims 16 to 20 Congestion control method.
PCT/CN2021/072574 2020-01-19 2021-01-18 Congestion control method, apparatus and system, and storage medium WO2021143913A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN202010060644 2020-01-19
CN202010060644.5 2020-01-19
CN202010075761.9 2020-01-22
CN202010075761.9A CN113141313A (en) 2020-01-19 2020-01-22 Congestion control method, device and system and storage medium

Publications (1)

Publication Number Publication Date
WO2021143913A1 true WO2021143913A1 (en) 2021-07-22

Family

ID=76809268

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/072574 WO2021143913A1 (en) 2020-01-19 2021-01-18 Congestion control method, apparatus and system, and storage medium

Country Status (2)

Country Link
CN (1) CN113141313A (en)
WO (1) WO2021143913A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023011179A1 (en) * 2021-08-05 2023-02-09 清华大学 Congestion control method and apparatus
EP4175232A4 (en) * 2020-07-22 2023-12-27 Huawei Technologies Co., Ltd. Congestion control method and device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101133394A (en) * 2005-03-03 2008-02-27 诺基亚西门子通信有限责任两合公司 Priority-sensitive reallocation of buffer space
CN106330758A (en) * 2015-06-19 2017-01-11 中兴通讯股份有限公司 Transfer method and device based on multilayer queue fluid control back pressure
US20190059023A1 (en) * 2016-02-25 2019-02-21 Telefonaktiebolaget Lm Ericsson (Publ) Back-pressure control in a telecommunications network
CN109660468A (en) * 2017-10-12 2019-04-19 深圳市中兴微电子技术有限公司 A kind of port congestion management method, device and equipment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101133394A (en) * 2005-03-03 2008-02-27 诺基亚西门子通信有限责任两合公司 Priority-sensitive reallocation of buffer space
CN106330758A (en) * 2015-06-19 2017-01-11 中兴通讯股份有限公司 Transfer method and device based on multilayer queue fluid control back pressure
US20190059023A1 (en) * 2016-02-25 2019-02-21 Telefonaktiebolaget Lm Ericsson (Publ) Back-pressure control in a telecommunications network
CN109660468A (en) * 2017-10-12 2019-04-19 深圳市中兴微电子技术有限公司 A kind of port congestion management method, device and equipment

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4175232A4 (en) * 2020-07-22 2023-12-27 Huawei Technologies Co., Ltd. Congestion control method and device
WO2023011179A1 (en) * 2021-08-05 2023-02-09 清华大学 Congestion control method and apparatus

Also Published As

Publication number Publication date
CN113141313A (en) 2021-07-20

Similar Documents

Publication Publication Date Title
US7916718B2 (en) Flow and congestion control in switch architectures for multi-hop, memory efficient fabrics
US8553543B2 (en) Traffic shaping method and device
AU2002359740B2 (en) Methods and apparatus for network congestion control
US7385997B2 (en) Priority based bandwidth allocation within real-time and non-real-time traffic streams
US8274974B1 (en) Method and apparatus for providing quality of service across a switched backplane for multicast packets
US20100150164A1 (en) Flow-based queuing of network traffic
US20050157723A1 (en) Controlling traffic congestion
EP1654616A2 (en) Method and apparatus for bandwidth guarantee and overload protection in a network switch
US8509069B1 (en) Cell sharing to improve throughput within a network device
WO2021143913A1 (en) Congestion control method, apparatus and system, and storage medium
EP4175232A1 (en) Congestion control method and device
WO2020134425A1 (en) Data processing method, apparatus, and device, and storage medium
WO2021148020A1 (en) Service class adjustment method, apparatus, device and storage medium
Apostolaki et al. Fab: Toward flow-aware buffer sharing on programmable switches
US20210250300A1 (en) Head-of-Queue Blocking for Multiple Lossless Queues
US7408876B1 (en) Method and apparatus for providing quality of service across a switched backplane between egress queue managers
US8879578B2 (en) Reducing store and forward delay in distributed systems
US7599292B1 (en) Method and apparatus for providing quality of service across a switched backplane between egress and ingress queue managers
CN113765796B (en) Flow forwarding control method and device
CN112787919B (en) Message transmission method and device and readable medium
US11936570B1 (en) Modular switch and a method for scaling switches
Bai et al. Ssp: Speeding up small flows for proactive transport in datacenters
Yang et al. BFRP: Endpoint congestion avoidance through bilateral flow reservation
Alanazi et al. Ml-ecn: Multi-level ecn marking for fair datacenter traffic forwarding
US20230283575A1 (en) Allocation of Shared Reserve Memory to Queues in a Network Device

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21740998

Country of ref document: EP

Kind code of ref document: A1