WO2023174081A1 - 一种队列调度的方法及装置 - Google Patents

一种队列调度的方法及装置 Download PDF

Info

Publication number
WO2023174081A1
WO2023174081A1 PCT/CN2023/079729 CN2023079729W WO2023174081A1 WO 2023174081 A1 WO2023174081 A1 WO 2023174081A1 CN 2023079729 W CN2023079729 W CN 2023079729W WO 2023174081 A1 WO2023174081 A1 WO 2023174081A1
Authority
WO
WIPO (PCT)
Prior art keywords
scheduling
bandwidth
queue
parameter
scheduling parameter
Prior art date
Application number
PCT/CN2023/079729
Other languages
English (en)
French (fr)
Inventor
张周
张雄为
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2023174081A1 publication Critical patent/WO2023174081A1/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues

Definitions

  • the present application relates to the field of communication technology, and in particular, to a queue scheduling method and device.
  • QoS Quality of service
  • Network status includes network delay, network congestion, etc.
  • Queue scheduling technology is a key technology to ensure network QoS and has been widely used. Queue scheduling technology refers to adding the packets received by the network device to the queue, and queuing the packets stored in the queue according to rules. The queued packets are sent from the outbound interface of the network device to the next-hop network device. Queuing packets at a time is called a schedule.
  • the network device may still send a large number of packets to the next-hop network device in a short period of time, causing traffic bursts and affecting the QoS of the next-hop network device.
  • Embodiments of the present application provide a queue scheduling method and device, aiming to flexibly adjust the total number of bytes of packets that are queued each time and improve the QoS of the network system.
  • inventions of the present application provide a queue scheduling method, which can be applied to a queue scheduling device.
  • the queue scheduling device can be a software module or hardware on the first device that is used to schedule the dequeuing of messages on the outbound interface.
  • the first device may be a network device such as a router or a switch, or other device used for scheduling packets.
  • the method includes the following steps: the queue scheduling device determines a first bandwidth, and the first bandwidth is used to indicate the rate at which packets on the outbound interface are discharged from the queue. Then, the queue scheduling device may determine the first scheduling parameter according to the first bandwidth and the first scheduling frequency.
  • the first scheduling frequency is used to indicate the maximum scheduling parameter per unit time, that is, the maximum number of times the queue scheduling device can perform the action of queuing the packets per unit time.
  • the first scheduling parameter is used to indicate the length of packets for each scheduling, that is, the maximum length of packets that the queue scheduling device can queue up for each scheduling. In this way, determining the first scheduling parameter based on the first bandwidth and the first scheduling frequency is equivalent to determining based on the actual forwarding of messages by the queue scheduling device (i.e., the first bandwidth) and the performance of the queue scheduling device itself (i.e., the first scheduling frequency).
  • the first scheduling parameter After the first scheduling parameter is determined, the packets of the outbound interface may be scheduled and queued according to the first scheduling parameter.
  • the scheduling parameters of the outbound interface can be flexibly adjusted according to the actual bandwidth of the outbound interface. If the bandwidth of the outbound interface becomes smaller, the queue scheduling device can reduce the scheduling parameters of the outbound interface to reduce the total number of bytes of packets sent to the corresponding next-hop network device each time and avoid causing the next-hop Traffic bursts on network devices. If the bandwidth of the outbound interface is increased, the queue scheduling device can increase the scheduling parameters of the outbound interface. The queue scheduling device can queue more packets per scheduling and increase the maximum bandwidth of the outbound interface. It can be seen that the scheduling parameters are flexibly adjusted based on the actual bandwidth of the outbound interface so that the scheduling parameters of the outbound interface match the actual traffic of the outbound interface. In this way, while ensuring the normal transmission of the data flow, the total number of bytes of packets queued for each schedule is reduced, which can better ensure the QoS of the network.
  • the queue scheduling device may first determine that the first bandwidth matches the second bandwidth.
  • the second bandwidth is determined based on the second scheduling parameter and the first scheduling frequency.
  • second dispatch The parameter is the total number of bytes of packets that the queue scheduling device schedules and queues at each time at the first moment.
  • the first time is the time when the queue scheduling device obtains the first bandwidth. That is to say, the second bandwidth is determined based on the scheduling parameters of the queue scheduling device when acquiring the first bandwidth. If the second bandwidth matches the first bandwidth, it means that the scheduling parameters at the first moment do not meet the requirements of the first bandwidth.
  • the queue scheduling device can determine new scheduling parameters (i.e., first scheduling parameters) based on the first bandwidth and the first scheduling frequency. .
  • matching the first bandwidth and the second bandwidth includes the first bandwidth being smaller than the second bandwidth. If the first bandwidth is smaller than the second bandwidth, it means that the actual bandwidth of the queue scheduling device at the first moment is smaller than the maximum bandwidth that the queue scheduling device can achieve at the first moment. Therefore, the queue scheduling device can reduce the scheduling parameters to reduce the total number of bytes of packets that are queued for each schedule. Even if the first scheduling parameter is smaller than the second scheduling parameter, the maximum bandwidth that the queue scheduling device can achieve is reduced. Since the first bandwidth is smaller than the second bandwidth, normal scheduling of messages will not be affected.
  • the queue scheduling device may determine the first scheduling parameter according to the ratio of the first bandwidth to the first scheduling frequency.
  • the ratio of the first bandwidth to the first scheduling frequency represents the scheduling parameter that makes the maximum bandwidth of the queue scheduling device equal to the first bandwidth. In this way, the first scheduling parameter determined based on the ratio of the first bandwidth and the first scheduling frequency matches the actual bandwidth of the outbound interface.
  • the queue scheduling device may select the first scheduling parameter from a plurality of preset scheduling parameters based on the ratio of the first bandwidth to the first scheduling frequency. Specifically, the queue scheduling device first determines the third scheduling parameter according to the ratio of the first bandwidth and the first scheduling frequency. The third scheduling parameter may be equal to the ratio of the first bandwidth to the first scheduling frequency, or may be equal to the sum of the ratio of the first bandwidth to the first scheduling frequency and the first preset value. Then, the queue scheduling device selects a first candidate scheduling parameter that is greater than or equal to the third scheduling parameter from the first candidate scheduling parameter set according to the third scheduling parameter and determines it as the first scheduling parameter. For example, the queue scheduling device may determine the first candidate scheduling parameter in the first candidate scheduling parameter set that is larger than the third scheduling parameter and is the smallest as the first scheduling parameter.
  • the first candidate scheduling parameter set includes a plurality of first candidate scheduling parameters.
  • the first bandwidth is determined based on the length of packets scheduled to be dequeued by the outbound interface, or the first bandwidth is determined based on the length of packets added to the first queue set, and the first queue set is the queue corresponding to the outbound interface. composed collection. That is to say, the first bandwidth may be the outbound bandwidth of the outbound interface, or it may be the inbound bandwidth of the outbound interface.
  • matching the first bandwidth and the second bandwidth includes the first bandwidth being greater than or equal to the second bandwidth. If the first bandwidth is not less than the second bandwidth, it means that the bandwidth occupied by the outbound interface at the first moment is high, and the outbound interface does not have enough bandwidth to cope with possible traffic bursts. Therefore, the queue scheduling device can determine the first scheduling parameter according to the second scheduling parameter. The first scheduling parameter is greater than the second scheduling parameter. In this way, while the maximum number of dispatches that can be performed per unit time remains unchanged, increasing the total number of bytes of messages that are queued for each dispatch is equivalent to increasing the maximum bandwidth of the queue dispatching device and avoiding traffic bursts. It reduces congestion and packet loss and improves the QoS of the network system.
  • the queue scheduling device selects the first scheduling parameter from a plurality of preset scheduling parameters according to the first bandwidth and the second scheduling parameter. Specifically, the queue scheduling device may select a second candidate scheduling parameter that is larger than the second scheduling parameter from the second candidate scheduling parameter set as the first scheduling parameter. Wherein, the second candidate scheduling parameter set includes a plurality of second candidate scheduling parameters.
  • the first scheduling parameter may be, for example, the second candidate scheduling parameter that is larger than the second scheduling parameter and is the smallest in the second candidate scheduling parameter set.
  • the queue scheduling device determines based on the sum of the second queue scheduling parameter and the preset value.
  • the pre- The set value can also be called the preset step size. That is, the first scheduling parameter is equal to the sum of the second scheduling parameter and the preset step size.
  • the first bandwidth may be greater than the first bandwidth, or may be greater than the product of the first scheduling frequency and the second scheduling parameter.
  • the queue scheduling device may determine the first scheduling parameter according to the ratio of the first bandwidth to the first scheduling frequency.
  • the ratio of the first bandwidth to the first scheduling frequency represents the scheduling parameter that makes the maximum bandwidth of the queue scheduling device equal to the first bandwidth.
  • the queue scheduling device determines the matching of the first bandwidth and the second bandwidth by comparing the actual frequency of scheduling packets being dequeued and the first scheduling frequency. Specifically, assuming that the actual number of scheduling by the queue scheduling device in unit time is represented by the second scheduling frequency, the queue scheduling device can compare the size relationship between the second scheduling frequency and the third scheduling frequency. If the second scheduling frequency is not less than the third scheduling frequency, it means that the first bandwidth is not less than the second bandwidth.
  • the third scheduling frequency is determined based on the first scheduling frequency. For example, the third scheduling frequency may be equal to the first scheduling frequency, or equal to the product of the first scheduling frequency and the first preset ratio.
  • the first scheduling frequency is determined based on the crystal oscillator frequency or clock frequency of the queue scheduling device.
  • inventions of the present application provide a queue scheduling device.
  • the device includes: an acquisition unit, used to determine a first bandwidth, where the first bandwidth indicates the rate at which packets of the outbound interface are dequeued; a processing unit, Used to determine a first scheduling parameter according to the first bandwidth and a first scheduling frequency, wherein the first scheduling frequency is used to indicate the maximum number of scheduling times per unit time, and the first scheduling parameter is used to indicate each scheduling time the packet length; schedule the packets of the outbound interface to be queued according to the first scheduling parameter.
  • the processing unit is specifically configured to determine that the first bandwidth matches a second bandwidth, and the second bandwidth is determined based on a second scheduling parameter and the first scheduling frequency.
  • the second scheduling parameter is the length of the packets scheduled by the queue scheduling device each time at the first time, and the first time is the time when the queue scheduling device obtains the first bandwidth.
  • the processing unit is specifically configured to determine the first bandwidth according to the ratio of the first bandwidth to the first scheduling frequency in response to the first bandwidth being smaller than the second bandwidth.
  • Scheduling parameter, the first scheduling parameter is smaller than the second scheduling parameter.
  • the processing unit is specifically configured to determine a third scheduling parameter according to the ratio of the first bandwidth and the first scheduling frequency; according to the third scheduling parameter, select the first candidate schedule from The first scheduling parameter is determined in a parameter set, the first candidate scheduling parameter set includes a plurality of first candidate scheduling parameters, and the first scheduling parameter is no less than the third one in the first candidate scheduling parameter set.
  • the first candidate scheduling parameter for the scheduling parameter.
  • the first bandwidth is determined based on the length of packets scheduled to be dequeued from the outbound interface, or the first bandwidth is determined based on the length of packets added to the first queue set, and the The first queue set corresponds to the outbound interface.
  • the processing unit is specifically configured to determine the first scheduling parameter according to the second scheduling parameter in response to the first bandwidth being not less than the second bandwidth, and the first The scheduling parameter is greater than the second scheduling parameter.
  • the processing unit is specifically configured to determine the first scheduling parameter from a second candidate scheduling parameter set according to the second scheduling parameter, and the second candidate scheduling parameter set includes a plurality of second candidate degree parameter, and the first scheduling parameter is a second candidate scheduling parameter in the second candidate scheduling parameter set that is not smaller than the second scheduling parameter.
  • the processing unit is specifically configured to determine the first scheduling parameter according to the sum of the third scheduling parameter and a preset step size.
  • the first bandwidth is determined based on the length of packets added to a first queue set, the first queue set corresponds to the outbound interface, and the processing unit is specifically configured to respond to the first queue set.
  • a bandwidth is not smaller than the second bandwidth, and the first scheduling parameter is determined according to the ratio of the first bandwidth to the first scheduling frequency.
  • the processing unit is specifically configured to determine that the second scheduling frequency is not less than the third scheduling frequency, and the second scheduling frequency is used to indicate the actual number of scheduling by the queue scheduling device in unit time.
  • the third scheduling frequency is determined based on the first scheduling frequency.
  • the first scheduling frequency is determined based on the crystal oscillator frequency or clock frequency of the queue scheduling device.
  • inventions of the present application provide a device.
  • the device includes a processor and a memory.
  • the memory is used to store instructions or program codes.
  • the processor is used to call and run the instructions or programs from the memory. Code to execute the queue scheduling method as described in the first aspect.
  • embodiments of the present application provide a chip, including a memory and a processor.
  • the memory is used to store instructions or program codes
  • the processor is used to call and run the instructions or program codes from the memory to execute the first step as described above.
  • the method of queue scheduling described in this aspect is used to call and run the instructions or program codes from the memory to execute the first step as described above.
  • embodiments of the present application provide a computer-readable storage medium, including instructions, programs or codes, which, when executed on a computer, cause the computer to perform the queue scheduling method as described in the first aspect. .
  • Figure 1 is an architectural schematic diagram of a system 100 provided by an embodiment of the present application.
  • Figure 2 is a schematic flowchart of a queue scheduling method provided by an embodiment of the present application.
  • Figure 3 is a method flow chart of the queue scheduling method provided by the embodiment of the present application.
  • Figure 4 is a schematic structural diagram of a queue scheduling device 400 provided by an embodiment of the present application.
  • Figure 5 is a schematic structural diagram of a device 500 provided by an embodiment of the present application.
  • Figure 6 is a schematic structural diagram of a device 600 provided by an embodiment of the present application.
  • Queue scheduling technology can be used to alleviate traffic bursts and improve network QoS. If a traffic burst occurs, the network device receives a large number of packets in a short period of time. Through queue scheduling technology, the network device stores the received packets in the queue and schedules the queue multiple times. Each time the queue is scheduled, the network device queues one or more packets stored in the queue and sends the queued packets to the next-hop network device. In this way, queue scheduling technology can more effectively alleviate traffic bursts.
  • the network device may send a large number of packets to the next-hop network device in one scheduling, causing traffic bursts on the next-hop network device and affecting the QoS of the next-hop network device.
  • network devices may schedule one or more times within a unit time.
  • the product of the maximum number of times a device schedules in a unit time and the total number of bytes of packets queued by the network device during each scheduling is equal to the total number of bytes of packets queued by the network device in a unit time, that is, the network device bandwidth.
  • the total number of bytes of the packets queued by the network device for each scheduling is also called the credit (Credit) granularity.
  • the number of bytes in a message can also be called the length of the message.
  • the total number of bytes in multiple messages is the sum of the lengths of multiple messages.
  • the bandwidth of network equipment is getting higher and higher.
  • the maximum number of times a network device can be scheduled per unit time depends on the hardware configuration of the network device and is difficult to increase. Therefore, in order to increase the bandwidth of the network device, the total number of bytes of packets queued by the network device for each schedule will increase accordingly. In other words, the network device will queue more packets and send them to the next-hop network device during each scheduling. The next-hop network device will receive a large number of packets in a short period of time. In this way, if the next-hop network device of the network device has limited processing capabilities, it may not be able to process the packets that are queued each time scheduled in a timely manner. In this way, a traffic burst may occur on the next-hop network device, affecting the QoS of the next-hop network device.
  • FIG. 1 is a schematic structural diagram of a system 100 provided by an embodiment of the present application.
  • the system 100 includes a device 111, a device 112, a network device 121, a network device 122 and a network device 123.
  • the network device 121 is connected to the device 111 and the network device 122 respectively
  • the network device 123 is connected to the device 112 and the network device 122 respectively.
  • device 111 can send a data stream to device 112.
  • the outbound interface on network device 122 connected to network device 123 is called outbound interface A
  • the data stream sent by device 111 to device 112 is called data stream B.
  • Data flow B includes multiple packets.
  • the network device 122 is configured with a queue scheduling function. After receiving the data packets sent by the network device 121, the network device 122 first stores these packets in the queue. Then, the network device 121 dequeues the packets stored in the queue according to rules. For example, the network device 121 can schedule buffered packets in the queue to be dequeued in a first-in-first-out (FIFO) manner, and discard unstorable packets based on a tail drop (drop tail) mechanism. Alternatively, if the network device 122 is used to transmit multiple data streams, the network device 122 may be provided with multiple queues, and different queues correspond to different data streams. The network device 122 may schedule packets stored in different queues to be dequeued through polling scheduling or other methods.
  • FIFO first-in-first-out
  • drop tail tail
  • the network device 122 may be provided with multiple queues, and different queues correspond to different data streams. The network device 122 may schedule packets stored in different queues to
  • the total number of bytes of packets queued for each scheduling on the network device 122 is determined based on the maximum bandwidth of the network device 122 and the maximum number of times that can be scheduled within a unit time.
  • the highest frequency at which the network device 122 schedules packets depends on the hardware configuration of the network device 122, which may be determined by the clock frequency or crystal oscillator frequency of the network device 122, for example.
  • the network device 122 may monitor clock signal inversions. Every time the clock signal passes through one cycle, the network device 122 schedules the packet. In this way, the frequency at which the network device 122 schedules packets is equal to the frequency of the clock signal.
  • the maximum rated bandwidth of the network device 122 is equal to the maximum number of times the network device 122 schedules packets to be queued per second and the total number of bytes of packets queued by the network device 122 each time. Therefore, after the maximum rated bandwidth of the network device 122 is determined, the total number of bytes of packets queued by the network device 122 for each schedule is also determined accordingly.
  • the network device 122 may reduce the number of times that scheduling packets are queued per second. That is, the actual bandwidth of the network device 122 is equal to the number of times the network device 122 actually schedules packets to be queued per second and the total number of bytes of packets queued by the network device 122 each time.
  • a 100-byte message is queued and sent to the network device 123.
  • the network device 123 may not be able to process the packets from the network device 122 in a short period of time. In this way, a traffic burst occurs on the network device 123, affecting the normal transmission of data flow B.
  • the network device 123 is also used to transmit messages from other network devices, more messages are stored in the queue of the network device 123 and there is less free storage space. Then the network device 123 may not be able to process the 100-byte message sent by the network device 122 in time, which will affect the QoS of the network device 123. For example, assuming that the network device 123 still has 60 bytes of storage space left, after receiving a 100-byte message sent by the network device 122, the network device 123 will discard 50 bytes of the message. In this way, the packet loss rate of data flow B is increased and QoS is affected.
  • embodiments of the present application provide a queue scheduling method and device, aiming to flexibly adjust the queue for each schedule
  • the total number of bytes of packets can be reduced to avoid traffic bursts on the next hop network device and improve the QoS of the network system.
  • the queue scheduling method provided by the embodiment of the present application can be applied to the system shown in Figure 1. Specifically, it may be executed by any one or more of the network devices 121, 122, and 123 in the embodiment shown in FIG. 1 .
  • the network device may be a device with a forwarding function, such as a router, a switch, and other forwarding devices, or may be a server or a terminal device, such as a device with a forwarding function.
  • the device 111 and the device 112 may be network devices or terminal devices. If any one of the device 111 and the device 112 is a network device, then the device may be a customer edge (Customer Edge, CE).
  • the terminal equipment may be called user equipment (User Equipment, UE), mobile station (Mobile Station, MS), mobile terminal (Mobile Terminal, MT) or terminal, etc.
  • An end device is a device that provides voice and/or data connectivity to a user, or a chip located within the device.
  • the terminal device may be a handheld device, a vehicle-mounted device, etc. with a wireless connection function.
  • the terminal device can be a mobile phone, desktop computer, tablet computer, notebook computer, handheld computer, mobile Internet device (Mobile Internet Device, MID), wearable device, virtual reality (Virtual Reality, VR) device, augmented reality (Augmented Reality, AR) ) equipment, wireless terminals or wired terminals in industrial control (Industrial Control), wireless terminals in self-driving (Self Driving), wireless terminals in remote medical surgery, wireless terminals in smart grid (Smart Grid) Terminals, wireless terminals in Transportation Safety, wireless terminals in Smart City, wireless terminals in Smart Home, or home gateway devices that support 5G access (5G ⁇ Residential Gateway, 5G ⁇ RG) etc.
  • 5G ⁇ Residential Gateway, 5G ⁇ RG 5G ⁇ Residential Gateway
  • the queue scheduling method provided by the embodiments of this application can also be executed by the access device.
  • the method may be executed by an access device with a BRAS function, and is used to schedule messages received by the access device from the terminal device.
  • this figure is a schematic flowchart of a queue scheduling method provided by an embodiment of the present application, which specifically includes but is not limited to the following steps S201-S203.
  • the queue scheduling device determines the first bandwidth.
  • the queue scheduling device first determines the first bandwidth.
  • the queue scheduling device is a module on a device with a queue scheduling function for scheduling packets to be dequeued.
  • it may be a queue scheduling chip corresponding to an outbound interface on a network device.
  • the queue scheduling device may also be a software module that is used to schedule the messages stored in the queue to be queued out through software.
  • the first bandwidth indicates the rate at which packets are dequeued on the outgoing interface.
  • the outbound interface is the network interface corresponding to the queue scheduling device on the device with the queue scheduling function. The outbound interface corresponds to one or more queues.
  • the queue corresponding to the outbound interface is called the first queue set. That is, if the outbound interface corresponds to a queue, the first queue set includes one queue. If the outbound interface corresponds to multiple queues, the first queue set includes multiple queues.
  • the queue scheduling device is used to schedule the messages stored in each queue in the first queue set to be queued and sent to the next-hop network device through the outgoing interface.
  • queuing described in the embodiment of this application refers to being queued from the queue in the first queue set and sent to the next-hop network device through the egress interface.
  • the first bandwidth may be the enqueue bandwidth of the egress interface, or it may be the outbound bandwidth of the egress interface. They are introduced separately below.
  • the first bandwidth is the enqueuing bandwidth of the outbound interface.
  • the enqueuing bandwidth of the outbound interface represents the bandwidth of the data flow added to the first queue set.
  • the first bandwidth is determined based on the total number of bytes of packets added to the first queue set within a unit time.
  • the queue scheduling device can monitor the status of the packets added to the queue and record the number of bytes of each packet added to the queue and the time when the packet is added to the queue. In this way, when determining the first bandwidth, the queue scheduling device determines the total number of bytes of the packets added to the queue per unit time based on the time when the packets are added to the queue and the number of bytes of the packets, and obtains the first bandwidth.
  • the queue scheduling device periodically determines whether the total number of bytes of the packets queued for each schedule needs to be adjusted.
  • the queue scheduling device may periodically determine the first bandwidth.
  • the period around which the queue scheduling device determines the first bandwidth is called the adjustment period.
  • the first bandwidth is determined based on the total number of bytes of packets added to the queue in the previous adjustment period and the length of the adjustment period.
  • the first bandwidth is the average enqueue bandwidth of the egress interface in the last adjustment period. It can be understood that in other possible implementation manners, the first bandwidth may also be the immediate enqueuing bandwidth of the outbound interface.
  • the first bandwidth is the outbound bandwidth of the outbound interface.
  • the dequeue bandwidth of the outbound interface represents the bandwidth of the data flow sent to the next-hop network device through the outbound interface, that is, the bandwidth corresponding to the packets that are queued out.
  • the first bandwidth is determined based on the total number of bytes of packets queued from the first queue set within a unit time.
  • the queue scheduling device can monitor the status of the packets queued out of the first queue set, and record the number of bytes of each packet queued out and the time at which the packet is queued out. In this way, when determining the first bandwidth, the queue scheduling device determines the time that the message is discharged from the queue and the number of bytes of the message. The total number of bytes of queued packets is calculated to obtain the first bandwidth.
  • the queue scheduling device may also determine the first bandwidth according to the adjustment period. Then the first bandwidth is determined based on the total number of bytes of packets queued from the first queue set in the last adjustment period.
  • the first bandwidth may be calculated by the queue scheduling device, or may be sent by other devices to the queue scheduling device.
  • the queue scheduling device is a module used to adjust scheduling parameters on a device with a queue scheduling function
  • the first bandwidth may be sent by the scheduler module or the queue management module to the queue scheduling device.
  • the introduction to scheduling parameters can be found below and will not be repeated here.
  • the queue scheduling device determines the first scheduling parameter according to the first bandwidth and the first scheduling frequency.
  • the queue scheduling device determines the first scheduling parameter according to the first bandwidth and the first scheduling frequency.
  • the first scheduling frequency is used to indicate the maximum number of scheduling times per unit time
  • the first call-out parameter is used to indicate the length of packets queued for each scheduling. That is to say, the first scheduling frequency corresponds to the maximum number of times of scheduling per unit time as mentioned above, and the first scheduling parameter corresponds to the total number of bytes of packets queued for each scheduling as mentioned above.
  • the maximum bandwidth of the device is equal to the product of the maximum number of times of scheduling per unit time and the total number of bytes of packets queued for each scheduling.
  • the product of the first scheduling frequency and the first scheduling parameter is not less than the first bandwidth. That is to say, in order to ensure the normal forwarding of packets and reduce the impact on the QoS of the next-hop network device, the queue scheduling device determines the first bandwidth that matches the actual traffic situation of the outbound interface based on the first bandwidth and the first scheduling frequency. A scheduling parameter.
  • the queue scheduling device can increase the scheduling parameters corresponding to the outbound interface, and can also adjust the scheduling parameters corresponding to the outbound interface to decrease.
  • the queue scheduling device may first determine the adjustment direction of the scheduling parameter of the outbound interface.
  • the outbound interface may determine the adjustment direction of the scheduling parameter of the outbound interface based on the relationship between the first bandwidth and the second bandwidth.
  • the second bandwidth is determined based on the second scheduling parameter and the first scheduling frequency, and the second scheduling parameter is the length of the message each time scheduled by the queue scheduling device at the first time.
  • the first time is the time when the queue scheduling device obtains the first bandwidth. That is to say, the second scheduling parameter is the scheduling parameter corresponding to the first bandwidth.
  • the second scheduling parameter is the total number of bytes of packets that are queued each time the queue scheduling device schedules them in the adjustment period corresponding to the first bandwidth.
  • the second bandwidth may be equal to the product of the second scheduling parameter and the first scheduling frequency, or may be smaller than the product of the second scheduling parameter and the first scheduling frequency. The detailed introduction of the second bandwidth can be found later and will not be repeated here.
  • the queue scheduling device may determine that the first bandwidth is greater than or equal to the second bandwidth, or determine that the first bandwidth is less than the second bandwidth.
  • the following takes the queue scheduling device to determine the first bandwidth according to the adjustment period as an example to introduce the implementation method of the queue scheduling device to determine the first scheduling parameter in two cases: the first bandwidth is less than the second bandwidth and the first bandwidth is greater than or equal to the second bandwidth. Make an introduction.
  • Case 1 The first bandwidth is greater than or equal to the second bandwidth.
  • the queue scheduling device can increase scheduling parameters to increase the bandwidth of the outbound interface in the next adjustment period.
  • the second bandwidth represents the maximum bandwidth that the queue scheduling device can achieve under the condition that packets are scheduled to be queued according to the second scheduling parameter. Therefore, if the first bandwidth is greater than or equal to the second bandwidth, it means that the scheduling frequency of the queue scheduling device in the last adjustment period has reached or been greater than the first scheduling frequency, and the bandwidth of the outbound interface has also reached or been greater than what can be achieved under the second scheduling parameters. The maximum bandwidth reached. Then, if the messages stored in the first queue set continue to be scheduled and queued according to the second scheduling parameter, the maximum bandwidth that the queue scheduling device can provide may not meet the requirements for data stream transmission. Therefore, the queue scheduling device determines that it is necessary to increase the scheduling parameters of the outgoing interface to ensure normal transmission of messages.
  • the second bandwidth is equal to the product of the second scheduling parameter and the first scheduling frequency, and the first bandwidth is greater than the second bandwidth, then the first bandwidth may be the queuing bandwidth of the outbound interface.
  • the queue scheduling device obtains the first bandwidth through the above implementation method one.
  • the solution of increasing the scheduling parameters of the queue scheduling device after the first bandwidth reaches the second bandwidth may have a certain lag and cannot match the fluctuation of the data flow in time.
  • the second bandwidth may be smaller than the product of the first scheduling frequency and the second scheduling parameter.
  • the second bandwidth can be adjusted through the first preset ratio, that is, the second bandwidth is equal to the product of the second scheduling parameter, the first scheduling frequency and the first preset ratio.
  • the first preset ratio is a real number less than 1. Then the second bandwidth is equal to the maximum bandwidth that the queue scheduling device can achieve under the condition that the packets are scheduled to be queued according to the second scheduling parameter and normal transmission of the data flow is ensured.
  • the first preset ratio is used to make the second bandwidth smaller than the product of the first scheduling frequency and the second scheduling parameter.
  • the second bandwidth can also be made smaller than the product of the first scheduling frequency and the second scheduling parameter through other methods.
  • the second bandwidth can be obtained through the bandwidth correction value. That is, the difference between the product of the first scheduling frequency and the second scheduling parameter and the bandwidth correction value is the second bandwidth.
  • the queue scheduling device determines that it is necessary to increase the scheduling parameters of the outgoing interface to ensure normal transmission of messages.
  • the queue scheduling device After determining that the scheduling parameter of the outbound interface needs to be increased, the queue scheduling device determines a first scheduling parameter that is greater than the second scheduling parameter.
  • the product of the first scheduling parameter and the first scheduling frequency is also greater than the product of the second scheduling parameter and the first scheduling frequency. That is to say, the maximum bandwidth that the queue scheduling device can achieve under the condition that packets are scheduled to be queued according to the first scheduling parameter is greater than the maximum bandwidth that the queue scheduling device can achieve under the condition that packets are scheduled to be queued according to the second scheduling parameter. bandwidth. In this way, the maximum bandwidth that the queue scheduling device can provide is increased, which can meet the requirements for normal transmission of data flows.
  • the queue scheduling device determines the first scheduling parameter including but not limited to the following two implementation methods.
  • Implementation Mode 1 The queue scheduling device determines the first scheduling parameter according to the ratio of the first bandwidth to the first scheduling frequency.
  • the ratio of the first bandwidth to the first scheduling frequency is greater than the second scheduling parameter.
  • the queue scheduling device may determine the ratio of the first bandwidth to the first scheduling frequency as the first scheduling parameter. In this way, under the condition that the packets are scheduled to be queued according to the first scheduling parameter, the maximum bandwidth that the queue scheduling device can achieve can reach the first bandwidth, which can meet the transmission requirements of the transmission data stream.
  • the queue scheduling device can divide the first bandwidth and, and will obtain The ratio of the result to the first preset ratio of the first scheduling frequency is determined as the first scheduling parameter.
  • the first preset ratio is less than one, the result obtained by dividing the first bandwidth by the first preset ratio is greater than the first bandwidth and is also greater than the product of the first scheduling frequency and the second scheduling parameter. That is to say, under the condition that the packets are scheduled to be queued according to the first scheduling parameter, the maximum bandwidth that the queue scheduling device can achieve is greater than the first bandwidth, and normal transmission of the data flow can also be ensured.
  • the queue scheduling device may increase the first scheduling parameter according to the first preset value after determining the first scheduling parameter according to the ratio of the first bandwidth to the first scheduling frequency. For example, if the first scheduling parameter is not equal to the ratio of the first bandwidth to the first scheduling frequency, then the queue scheduling device can sum the ratio of the first bandwidth to the first scheduling frequency and the first preset value, and add the sum to obtain The result is determined as the first scheduling parameter. In this way, under the condition that packets are scheduled to be queued according to the first scheduling parameter, the maximum bandwidth that the queue scheduling device can achieve is greater than the first bandwidth. Even if the data flow fluctuates to a certain extent in the next adjustment cycle, the queue scheduling device can still meet the data flow requirement. streaming requirements.
  • the queue scheduling device provided by the embodiment of the present application is a scheduling chip on a network device.
  • the data processing capability of the scheduling chip is limited and may not be sufficient to meet the requirement of using the ratio of the first bandwidth to the first scheduling frequency as the first scheduling parameter to schedule the packets in the first queue set to be queued. Therefore, in some possible implementations, a first candidate scheduling parameter set may be set for the outbound interface.
  • the first candidate scheduling parameter set includes a plurality of different first candidate scheduling parameters.
  • the queue scheduling device may determine the first scheduling parameter from a plurality of first candidate scheduling parameters according to the first bandwidth and the first scheduling frequency.
  • the queue scheduling device first calculates the ratio of the first bandwidth to the first scheduling frequency.
  • the queue scheduling device selects the first candidate scheduling parameter that is greater than the ratio of the first bandwidth to the first scheduling frequency as the first scheduling parameter from the first candidate scheduling parameter set corresponding to the outbound interface.
  • the queue scheduling device may use the first candidate scheduling parameter in the first candidate scheduling parameter set that is greater than the ratio of the first bandwidth to the first scheduling frequency and is the smallest as the first scheduling parameter. In this way, it is equivalent to presetting the scheduling parameters of multiple stalls on the queue scheduling device.
  • the queue scheduling device can determine the appropriate gear according to the bandwidth and the first scheduling frequency. In this way, the scheduling parameters of the outbound interface can be flexibly adjusted, and the demand for computing resources of the queue scheduling device can be reduced.
  • the first bandwidth may be the queuing bandwidth of the outbound interface.
  • Implementation Mode 2 The queue scheduling device determines the first scheduling parameter according to the second scheduling parameter.
  • the queue scheduling device determines the first scheduling parameter according to the second scheduling parameter. For example, the queue scheduling device may sum the second scheduling parameter and the second preset value, and determine the sum result as the first scheduling parameter. Optionally, the second preset value and the aforementioned first preset value may be equal. Alternatively, the queue scheduling device can also Selecting a second candidate scheduling parameter that is greater than the second scheduling parameter from the second candidate scheduling parameter set as the first scheduling parameter.
  • the second candidate scheduling parameter set includes a plurality of second candidate scheduling parameters. Optionally, the second candidate scheduling parameter set and the first candidate scheduling parameter set may be the same set.
  • Case 2 The first bandwidth is smaller than the second bandwidth.
  • the queue scheduling device can reduce the scheduling parameters to reduce the total number of bytes of messages that are queued each time and reduce the impact on the QoS of the next hop network equipment.
  • the queue scheduling device After determining that the scheduling parameter of the outbound interface needs to be reduced, the queue scheduling device determines a first scheduling parameter that is smaller than the second scheduling parameter. In this embodiment of the present application, the queue scheduling device determines the first scheduling parameter including but not limited to the following two implementation methods.
  • Implementation Mode 1 The queue scheduling device determines the first scheduling parameter according to the ratio of the first bandwidth to the first scheduling frequency.
  • the queue scheduling device may determine the first scheduling parameter according to the ratio of the first bandwidth to the first scheduling frequency. Since the first bandwidth is smaller than the second bandwidth, and the ratio of the first bandwidth to the first scheduling frequency is also smaller than the ratio of the second bandwidth to the first scheduling frequency, then the first scheduling parameter is smaller than the second scheduling parameter. In this way, the scheduling parameters of the outbound interface are reduced, and the total number of bytes of packets queued for each schedule is reduced.
  • the queue scheduling device may determine the first scheduling parameter based on the ratio of the first bandwidth to the first scheduling frequency and the scheduling parameter correction value. That is, the queue scheduling device first calculates the ratio of the first bandwidth to the first scheduling frequency, then sums the ratio and the correction value, and finally determines the first scheduling parameter based on the summed result. For example, the queue scheduling device may determine the result obtained by the summation as the correction value, or select the first candidate scheduling parameter that is larger than the result obtained by the summation and is the smallest from the first candidate scheduling parameter set as the first scheduling parameter.
  • the queue scheduling device determines the first scheduling parameter based on the ratio of the first bandwidth to the first scheduling frequency, the first scheduling parameter may be equal to the second scheduling parameter. Then the queue scheduling device does not need to adjust the scheduling parameters of the outbound interface.
  • Implementation Mode 2 The queue scheduling device determines the first scheduling parameter according to the second scheduling parameter.
  • the queue scheduling device may also determine the first scheduling parameter according to the second scheduling parameter. For example, the queue scheduling device may determine the difference between the second scheduling parameter and the second preset value as the first scheduling parameter. Alternatively, the queue scheduling device may select the third candidate scheduling parameter that is smaller than the first scheduling parameter and is the largest from the third candidate scheduling parameter set as the first scheduling parameter.
  • the third candidate scheduling parameter set includes a plurality of third candidate scheduling parameters.
  • the third candidate scheduling parameter set may be the same set as the above-mentioned first candidate scheduling parameter set and the second candidate scheduling parameter set.
  • the queue scheduling device determines whether to increase the scheduling parameter or decrease the second scheduling parameter according to the second bandwidth. That is, the bandwidth used to increase the scheduling parameters is the same as the bandwidth used to decrease the scheduling parameters. In some other possible implementations, the bandwidth used to increase the scheduling parameter is different from the bandwidth used to decrease the scheduling parameter. That is, if the first bandwidth is greater than the third bandwidth, the queue scheduling device increases the scheduling parameter of the outbound interface; if the first bandwidth is smaller than the fourth bandwidth, the queue scheduling device decreases the scheduling parameter of the outbound interface.
  • the third bandwidth is larger than the fourth bandwidth.
  • the third bandwidth and the fourth bandwidth are determined according to the second scheduling parameter and the first scheduling frequency.
  • the third bandwidth may be equal to the second scheduling parameter number, the product of the first scheduling frequency and the first preset ratio, and the fourth bandwidth may be equal to the product of the second scheduling parameter, the first scheduling frequency and the second preset ratio.
  • the first preset ratio is greater than the second preset ratio, and the first preset ratio is less than one.
  • the queue scheduling device determines the adjustment direction of the scheduling parameter by comparing the size relationship between the first bandwidth and the second bandwidth (or the third bandwidth, or the fourth bandwidth). In some other possible implementations, the queue scheduling device may determine the adjustment direction of the scheduling parameter by comparing the second scheduling frequency. The second scheduling frequency is used to indicate the actual number of scheduling by the queue scheduling device within unit time.
  • the queue scheduling device may compare the size relationship between the second scheduling frequency and the third scheduling frequency.
  • the third scheduling frequency is determined based on the first scheduling frequency. For example, it may be equal to the first scheduling frequency, or equal to the difference between the first scheduling frequency and the frequency correction value.
  • the queue scheduling device schedules packets to be dequeued more frequently. In this way, if a traffic burst occurs, the queue scheduling device may not be able to provide sufficient bandwidth to schedule packets and queue them. Therefore, after determining that the second scheduling frequency is greater than or equal to the third scheduling frequency, the queue scheduling device may determine that the scheduling parameters of the outbound interface need to be increased. It can be understood that the queue scheduling device can also determine the need to reduce the scheduling parameters of the outbound interface in a similar manner.
  • the queue scheduling device determines the first scheduling parameter based on the second bandwidth or parameters related to the second bandwidth.
  • the queue scheduling device may also determine the first scheduling parameter based on the first bandwidth and the first scheduling frequency. For example, after acquiring the first bandwidth, the queue scheduling device can calculate the ratio of the first bandwidth to the first scheduling frequency, and use the calculated result as the first scheduling parameter. That is to say, the queue scheduling device may not compare the sizes of the first bandwidth and the second bandwidth, but directly determine the first scheduling parameter based on the ratio of the first bandwidth to the first scheduling frequency.
  • the queue scheduling device schedules the packets of the outgoing interface to be queued according to the first scheduling parameter.
  • the queue scheduling device schedules the packets of the outgoing interface to be queued according to the first scheduling parameter. That is, after the first scheduling parameter is determined, the total number of bytes of the packets queued by the queue scheduling device for each scheduling is determined according to the first scheduling parameter.
  • the queue scheduling device first obtains the first bandwidth, and then, the queue scheduling device determines the first scheduling parameter according to the first bandwidth and the first scheduling frequency, and schedules based on the first scheduling parameter. Messages are queued. That is to say, the first scheduling parameter used for queue scheduling packets to be queued is determined based on the rate at which packets are actually added (or queued) to the first queue set corresponding to the outbound interface. In this way, the scheduling parameters of the outbound interface can be flexibly adjusted according to the actual bandwidth of the outbound interface. If the bandwidth of the outbound interface becomes smaller, the queue scheduling device can reduce the scheduling parameters of the outbound interface.
  • the queue scheduling device can queue fewer packets for each scheduling, thereby reducing the total number of bytes of packets sent to the next-hop network device corresponding to the outbound interface for each scheduling. Then the next-hop network device will not receive packets that exceed the processing capabilities of the next-hop network device in a short period of time, avoiding traffic bursts and improving the QoS of the network system. If the bandwidth of the outbound interface increases, the queue scheduling device can increase the scheduling parameters of the outbound interface. Then the queue scheduling device can queue more packets per scheduling, increasing the maximum bandwidth of the outbound interface. It can be seen that the scheduling parameters are flexibly adjusted based on the actual bandwidth of the outbound interface so that the scheduling parameters of the outbound interface match the actual traffic of the outbound interface. In this way, while ensuring the normal transmission of the data flow, the total number of bytes of packets queued for each schedule is reduced, which can better ensure the QoS of the network.
  • the queue scheduling device on the network device 122 executes the queue scheduling method provided by the embodiment of the present application according to the adjustment period.
  • the first bandwidth is the dequeuing bandwidth of the outbound interface
  • the queue scheduling device is based on the second
  • the bandwidth determines the adjustment direction of the scheduling parameters
  • the first preset ratio is 80%.
  • the first scheduling frequency corresponding to the queue scheduling device is 2 MHz
  • the maximum rated bandwidth is 200 MB/s
  • the scheduling parameter correction value is 5 bytes.
  • Figure 3 is a method flow chart of a queue scheduling method provided by an embodiment of the present application, which specifically includes but is not limited to the following steps S301-S203.
  • the queue scheduling device schedules messages to be queued based on initial scheduling parameters.
  • the queue scheduling device may schedule messages to be queued based on the initial scheduling parameters.
  • the initial scheduling parameters may be scheduling parameters configured on the queue scheduling device.
  • the queue scheduling parameter may be the maximum scheduling parameter corresponding to the queue scheduling device, which may be 100 bytes, for example.
  • the network device 122 schedules each time to send a packet with a total length of 100 bytes from the outbound interface A to the network device 123 .
  • the queue scheduling device obtains the first bandwidth.
  • the queue scheduling device may monitor the status of packets that are scheduled to be dequeued from the queues in the first queue set. After the current adjustment period ends, the queue scheduling device may determine the first bandwidth based on the total number of bytes of the packets scheduled to be dequeued in the current adjustment period and the length of the adjustment period.
  • the queue scheduling device determines whether the first bandwidth is smaller than the second bandwidth.
  • the queue scheduling device After determining the first bandwidth, the queue scheduling device determines the size relationship between the first bandwidth and the second bandwidth, and determines whether the first bandwidth is smaller than the second bandwidth. If the first bandwidth is smaller than the second bandwidth, the queue scheduling device executes S304. If the first bandwidth is greater than or equal to the second bandwidth, the queue scheduling device executes S305.
  • the queue scheduling device may calculate the ratio of the first bandwidth to the first scheduling frequency, and sum it with the correction value. Next, the queue scheduling device selects the second candidate scheduling parameter that is larger than the summed result and is the smallest from the second candidate scheduling parameter set as the first candidate scheduling parameter.
  • the second scheduling parameter is 50 bytes
  • the first bandwidth is 30 MB/s
  • the second candidate scheduling parameter set includes five second candidate scheduling parameters of 0 byte, 25 byte, 50 byte, 75 byte and 100 byte.
  • the queue scheduling device selects the first candidate scheduling parameter that is greater than the second scheduling parameter and is the smallest from the first candidate scheduling parameter set as the first scheduling parameter.
  • the second scheduling parameter is 50byte
  • the first bandwidth is 90MB/s
  • the first candidate scheduling parameter set includes five candidate scheduling parameters of 0byte, 25byte, 50byte, 75byte and 100byte.
  • the queue scheduling device schedules the message to be queued based on the first scheduling parameter.
  • the queue scheduling device After determining the first scheduling parameter, the queue scheduling device schedules packets to be queued based on the first scheduling parameter in the next adjustment period, and re-counts the first bandwidth. At the end of the above-mentioned "next adjustment period", the queue scheduling device returns to execution S302-S306.
  • the queue scheduling device queues messages with a total length of no more than 50 bytes each time, and the corresponding scheduling parameter is 50 bytes.
  • the queue scheduling device selects the candidate scheduling parameter greater than 75byte from the five candidate scheduling parameters of 0byte, 25byte, 50byte, 75byte and 100byte as the scheduling parameter in the i+2th adjustment period. In this way, during the i+2th adjustment period, the queue scheduling device queues messages with a total length of no more than 100 bytes each time, and the corresponding scheduling parameter is 100 bytes.
  • the queue scheduling device can flexibly adjust the total number of bytes of the messages that are queued for each scheduling, so that the total number of bytes of the messages that are queued for each scheduling is Matches the actual bandwidth of the outbound interface, thereby avoiding traffic bursts from the next-hop network device (that is, network device 123) while ensuring normal forwarding of data flows, and improving the QoS of the network system.
  • an embodiment of the present application also provides a queue scheduling device 400.
  • the queue scheduling device 400 can implement the functions of the queue scheduling device in the embodiment shown in Figure 2 or Figure 3.
  • the queue scheduling device 400 includes an acquisition unit 410 and a processing unit 420. Among them, the acquisition unit 410 is used to implement S201 in the embodiment shown in Figure 2, and the processing unit 420 is used to implement S202 and S203 in the embodiment shown in Figure 2.
  • the acquisition unit 410 is used to determine the first bandwidth, where the first bandwidth indicates the rate at which packets on the outbound interface are dequeued.
  • the processing unit 402 is configured to determine a first scheduling parameter according to the first bandwidth and a first scheduling frequency, where the first scheduling frequency is used to indicate the maximum number of scheduling times per unit time, and the first scheduling parameter is used to Indicates the length of each scheduled packet; schedules the packets of the outbound interface according to the first scheduling parameter and queues them.
  • each functional unit in the embodiment of the present application can be integrated into a processing unit, or each unit can exist physically alone, or two or more units can be integrated into one unit.
  • the scheduling unit and the judgment unit may be the same unit or different units.
  • the above integrated units can be implemented in the form of hardware or software functional units.
  • Figure 5 is a schematic structural diagram of a device 500 provided by an embodiment of the present application.
  • the above queue scheduling device 400 can be implemented by the device shown in FIG. 5 .
  • the device 500 includes at least one processor 501 , a communication bus 502 and at least one network interface 504 .
  • the device 500 may also include a memory 503 .
  • the processor 501 can be a general central processing unit (Central Processing Unit, CPU), an application-specific integrated circuit (Application-specific Integrated Circuit, ASIC), or one or more integrated circuits (Integrated Circuit) used to control the execution of the program of the present application. ,IC).
  • the processor may be used to process messages, queues, and scheduling parameters to implement the queue scheduling method provided in the embodiments of the present application.
  • the processor can be used to determine the first bandwidth, where the first bandwidth indicates the rate at which packets of the outgoing interface are dequeued; process A unit configured to determine a first scheduling parameter according to the first bandwidth and a first scheduling frequency, wherein the first scheduling frequency is used to indicate the maximum number of scheduling times per unit time, and the first scheduling parameter is used to indicate each The length of the message scheduled for the second time; the message of the outbound interface is scheduled to be queued according to the first scheduling parameter.
  • Communication bus 502 is used to transfer information between processor 501, network interface 504, and memory 503.
  • the memory 503 can be a read-only memory (Read-only Memory, ROM) or other types of static storage devices that can store static information and instructions.
  • the memory 503 can also be a random access memory (Random Access Memory, RAM) or can store information. and other types of dynamic storage devices with instructions, which can also be Compact Disc Read-only Memory (CD-ROM) or other optical disc storage, optical disc storage (including compressed optical discs, laser discs, optical discs, digital versatile discs, Blu-ray Optical disc, etc.), magnetic disk storage media or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer, but is not limited thereto.
  • the memory 503 may exist independently and be connected to the processor 501 through the communication bus 502. Memory 503 may also be integrated with processor 501.
  • the memory 503 is used to store program codes or instructions for executing the technical solutions provided by the embodiments of this application, and is controlled by the processor 501 for execution.
  • the processor 501 is used to execute program codes or instructions stored in the memory 503 .
  • the program code may include one or more software modules.
  • the processor 501 can also store program codes or instructions for executing the technical solutions provided by the embodiments of the present application. In this case, the processor 501 does not need to read the program codes or instructions from the memory 503 .
  • the network interface 504 can be a device such as a transceiver, used to communicate with other devices or a communication network.
  • the communication network can be an Ethernet, a radio access network (RAN) or a wireless local area network (Wireless Local Area Networks, WLAN), etc.
  • the network interface 504 can be used to receive messages sent by other nodes in the segment routing network, and can also send messages to other nodes in the segment routing network.
  • the network interface 504 may be an Ethernet interface, a Fast Ethernet (FE) interface, a Gigabit Ethernet (GE) interface, or the like.
  • FE Fast Ethernet
  • GE Gigabit Ethernet
  • the device 500 may include multiple processors, such as the processor 501 and the processor 505 shown in FIG. 5 .
  • processors may be a single-CPU processor or a multi-CPU processor.
  • a processor here may refer to one or more devices, circuits, and/or processing cores for processing data (eg, computer program instructions).
  • FIG. 6 is a schematic structural diagram of a device 600 provided by an embodiment of the present application.
  • the queue scheduling device in Figure 2 or Figure 3 can be implemented by the device shown in Figure 6 .
  • device 600 includes a main control board and one or more interface boards.
  • the main control board communicates with the interface board.
  • the main control board is also called the main processing unit (Main Processing Unit, MPU) or route processing card (Route Processor Card).
  • the main control board includes the CPU and the memory.
  • the main control board is responsible for the control and management of each component in the device 600, including Route calculation, device management and maintenance functions.
  • the interface board is also called a Line Processing Unit (LPU) or Line Card (Line Card) and is used to receive and send messages.
  • LPU Line Processing Unit
  • Line Card Line Card
  • the device 600 also includes a switching network board.
  • the switching network board is communicatively connected to the main control board and the interface board.
  • the switching network board is used to forward the interface board.
  • the switching fabric board can also be called a switching fabric unit (Switch Fabric Unit, SFU).
  • the interface board includes a CPU, a memory, a forwarding engine, and an interface card (IC), where the interface card may include one or more network interfaces.
  • the network interface can be an Ethernet interface, FE interface or GE interface, etc.
  • the CPU is communicated with the memory, forwarding engine and interface card respectively.
  • Memory is used to store forwarding tables.
  • the forwarding engine is used to forward the received message based on the forwarding table saved in the memory. If the destination address of the received message is the IP address of the device 600, the message is sent to the main control board or the interface board.
  • the CPU performs processing; if the destination address of the received message is not the IP address of device 600, the forwarding table is checked based on the destination. If the next hop and outbound interface corresponding to the destination address are found in the forwarding table, the forwarding table is retrieved. The packet is forwarded to the outbound interface corresponding to the destination address.
  • the forwarding engine may be a Network Processor (NP).
  • the interface card also called a daughter card, can be installed on the interface board and is responsible for converting photoelectric signals into data frames, checking the validity of the data frames and forwarding them to the forwarding engine or the interface board CPU for processing.
  • the CPU can also perform the function of the forwarding engine, such as implementing soft forwarding based on a general-purpose CPU, so that a forwarding engine is not required in the interface board.
  • the forwarding engine may be implemented through an ASIC or a field programmable gate array (Field Programmable Gate Array, FPGA).
  • the memory storing the forwarding table may also be integrated into the forwarding engine as part of the forwarding engine.
  • An embodiment of the present application also provides a chip system, including: a processor, the processor is coupled to a memory, and the memory is used to store programs or instructions. When the program or instructions are executed by the processor, the The chip system implements the queue scheduling method performed by the queue scheduling device in the embodiment shown in FIG. 2 or FIG. 3 .
  • processors in the chip system there may be one or more processors in the chip system.
  • the processor can be implemented in hardware or software.
  • the processor may be a logic circuit, an integrated circuit, or the like.
  • the processor may be a general-purpose processor implemented by reading software code stored in memory.
  • the memory may be integrated with the processor or may be provided separately from the processor, which is not limited by this application.
  • the memory can be a non-transient processor, such as a read-only memory ROM, which can be integrated on the same chip as the processor, or can be separately provided on different chips.
  • This application describes the type of memory, and the relationship between the memory and the processor. There is no specific limitation on how the processor is configured.
  • the chip system can be an FPGA, an ASIC, a system on chip (SoC), a CPU, an NP, or a digital signal processing circuit (Digital Signal Processor, DSP), it can also be a microcontroller (Micro Controller Unit, MCU), a programmable controller (Programmable Logic Device, PLD) or other integrated chips.
  • SoC system on chip
  • DSP Digital Signal Processor
  • MCU Micro Controller Unit
  • PLD Programmable Logic Device
  • each step in the above method embodiment can be completed by an integrated logic circuit of hardware in the processor or instructions in the form of software.
  • the method steps disclosed in conjunction with the embodiments of this application can be directly implemented by a hardware processor, or executed by a combination of hardware and software modules in the processor.
  • Embodiments of the present application also provide a computer-readable storage medium that includes instructions that, when run on a computer, cause the computer to execute the queue scheduling method provided by the above method embodiment and executed by the queue scheduling device.
  • Embodiments of the present application also provide a computer program product containing instructions that, when run on a computer, cause the computer to execute the queue scheduling method provided by the above method embodiments and executed by the queue scheduling device.
  • the disclosed systems, devices and methods can be implemented in other ways.
  • the device embodiments described above are only illustrative.
  • the division of the units is only a logical module division. In actual implementation, there may be other division methods.
  • multiple units or components may be combined or can be integrated into another system, or some features can be ignored, or not implemented.
  • the coupling or direct coupling or communication connection between each other shown or discussed may be through some interfaces, and the indirect coupling or communication connection of the devices or units may be in electrical, mechanical or other forms.
  • the units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place, or they may be distributed to multiple network units. Some or all of the units can be obtained according to actual needs to achieve the purpose of the solution of this embodiment.
  • each module unit in various embodiments of the present application may be integrated into one processing unit, or each unit may exist physically alone, or two or more units may be integrated into one unit.
  • the above-mentioned integrated unit can be implemented in the form of hardware or in the form of software module unit.
  • the integrated unit is implemented in the form of a software module unit and sold or used as an independent product, it may be stored in a computer-readable storage medium.
  • the technical solution of the present application is essentially or contributes to the existing technology, or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium , including several instructions to cause a computer device (which may be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the methods described in various embodiments of this application.
  • the aforementioned storage media include: U disk, mobile hard disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), magnetic disk or optical disk and other media that can store program code. .
  • Computer-readable media includes computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another.
  • Storage media can be any available media that can be accessed by a general purpose or special purpose computer.

Landscapes

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

Abstract

本申请提供了一种队列调度的方法及装置,旨在灵活调整每次调度被排出队列的报文的总字节数,提升网络系统的QoS。其中,所述队列调度的方法包括:队列调度装置确定第一带宽,所述第一带宽指示出接口的报文出队列的速率;所述队列调度装置根据所述第一带宽与第一调度频率确定第一调度参数,其中,所述第一调度频率用于指示单位时间内的最大调度次数,所述第一调度参数用于指示每次调度的报文长度;所述队列调度装置根据所述第一调度参数调度所述出接口的报文排出队列。

Description

一种队列调度的方法及装置
本申请要求于2022年03月16日提交中国国家知识产权局、申请号为202210259483.1、发明名称为“一种队列调度的方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信技术领域,尤其涉及一种队列调度的方法及装置。
背景技术
服务质量(quality of service,QoS)是反映网络状态的指标,网络状态包括网络延迟、网络阻塞等状态。队列调度技术是保证网络QoS的关键技术,得到了广泛的应用。队列调度技术是指将网络设备接收的报文加入队列,并按规律将队列中存储的报文排出队列。被排出队列的报文从网络设备的出接口被发往下一跳网络设备。一次将报文排出队列被称为一次调度。
但是,即使为网络设备配置了队列调度功能,网络设备仍有可能在短时间内向下一跳网络设备发送大量报文,产生流量突发,影响下一跳网络设备的QoS。
发明内容
本申请实施例提供了一种队列调度的方法及装置,旨在灵活调整每次调度被排出队列的报文的总字节数,提升网络系统的QoS。
第一方面,本申请实施例提供了一种队列调度的方法,该方法可以应用于队列调度装置,队列调度装置可以是第一设备上用于调度出接口的报文出队的软件模块或硬件模块,第一设备可以是路由器、交换机等网络设备,也可以是其他用于对报文进行调度的设备。所述方法包括如下步骤:队列调度装置确定第一带宽,第一带宽用于指示出接口的报文被排出队列的速率。接着,队列调度装置可以根据第一带宽和第一调度频率确定第一调度参数。其中,第一调度频率用于指示单位时间内的最大调度参数,即单位时间内队列调度装置最多能执行几次将报文排出队列的动作。第一调度参数用于指示每次调度的报文长度,即队列调度装置每次调度最多能将多长的报文排出队列。这样,基于第一带宽和第一调度频率确定第一调度参数,相当于根据队列调度装置实际转发报文的情况(即第一带宽)和队列调度装置本身的性能(即第一调度频率)确定第一调度参数。在确定第一调度参数之后,可以根据第一调度参数调度出接口的报文排出队列。这样,出接口的调度参数可以根据出接口的实际带宽灵活调整。如果出接口的带宽变小,队列调度装置可以减小出接口的调度参数,以减少了每次调度被发往对应的下一跳网络设备的报文的总字节数,避免导致下一跳网络设备的流量突发。如果出接口的带宽增大,队列调度装置可以增加出接口的调度参数,队列调度装置每次调度可以将更多的报文排出队列,增加出接口的最大带宽。可见,基于出接口的实际带宽灵活调整调度参数,使得出接口的调度参数与出接口的实际流量相匹配。如此,在保证数据流正常传输的前提下,减小了每次调度被排出队列的报文的字节总数,能够更好地保证网络的QoS。
在一种可能的设计中,在确定第一调度参数之前,队列调度装置可以先确定第一带宽与第二带宽匹配。其中,第二带宽是根据第二调度参数和第一调度频率确定的。第二调度 参数是在第一时刻时,队列调度装置每次调度排出队列的报文的总字节数。第一时刻为队列调度装置获取第一带宽的时刻。也就是说,第二带宽是根据队列调度装置在获取第一带宽时的调度参数确定。如果第二带宽与第一带宽匹配,说明第一时刻的调度参数不满足第一带宽的需求,队列调度装置可以根据第一带宽和第一调度频率确定新的调度参数(即第一调度参数)。
在一种可能的设计中,上述第一带宽与第二带宽匹配包括第一带宽小于第二带宽。如果第一带宽小于第二带宽,说明队列调度装置在第一时刻的实际带宽小于第一时刻队列调度装置能够达到的最大带宽。因此,队列调度装置可以减小调度参数,以降低每次调度被排出队列的报文的字节总数。即使第一调度参数小于第二调度参数,队列调度装置能够达到的最大带宽减小,由于第一带宽小于第二带宽,不会影响报文的正常调度。
在一些可能的设计中,队列调度装置可以根据第一带宽和第一调度频率的比值确定第一调度参数。其中,第一带宽和第一调度频率的比值,表示使得队列调度装置的最大带宽等于第一带宽的调度参数。这样,根据第一带宽和第一调度频率的比值确定的第一调度参数,与出接口的实际带宽匹配。
在一种可能的设计中,队列调度装置可以根据第一带宽和第一调度频率的比值,从多个预设的调度参数中选择第一调度参数。具体地,队列调度装置先根据第一带宽和第一调度频率的比值确定第三调度参数。第三调度参数可以等于第一带宽和第一调度频率的比值,也可以等于第一带宽和第一调度频率的比值与第一预设值之和。接着队列调度装置根据第三调度参数,从第一候选调度参数集合中选择大于或等于第三调度参数的第一候选调度参数确定为第一调度参数。例如,队列调度装置可以将第一候选调度参数集合中大于第三调度参数且最小的第一候选调度参数确定为第一调度参数。第一候选调度参数集合包括多个第一候选调度参数。
在一种可能的设计中,第一带宽根据出接口被调度出队的报文长度确定,或第一带宽根据加入第一队列集合的报文长度确定,第一队列集合为出接口对应的队列组成的集合。也就是说,第一带宽可以是出接口的出队带宽,也可以是出接口的入队带宽。
在一种可能的设计中,上述第一带宽与第二带宽匹配包括第一带宽大于或等于第二带宽。如果第一带宽不小于第二带宽,说明出接口在第一时刻的带宽占用较高,出接口不具备足够的带宽应对可能的流量突发。因此,队列调度装置可以根据第二调度参数确定第一调度参数。第一调度参数大于第二调度参数。这样,在单位时间内能够进行的最大调度次数不变的情况下,提升每次调度被排出队列的报文的总字节数,相当于增加了队列调度装置的最大带宽,避免因流量突发造成的拥塞和丢包,提升网络系统的QoS。
在一种可能的设计中,队列调度装置根据第一带宽和第二调度参数从多个预设的调度参数中选择第一调度参数。具体地,队列调度装置可以从第二候选调度参数集合中选择大于第二调度参数的第二候选调度参数作为第一调度参数。其中,第二候选调度参数集合包括多个第二候选调度参数。第一调度参数例如可以是第二候选调度参数集合中大于第二调度参数且最小的第二候选调度参数。
在一种可能的设计中,队列调度装置根据第二队列调度参数和预设值之和确定。该预 设值又可以被称为预设步长。即,第一调度参数等于第二调度参数与预设步长之和。
在一种可能的设计中,如果第一带宽为出接口的入队带宽,那么第一带宽可能大于第一带宽,也可能大于第一调度频率与第二调度参数的乘积。相应地,队列调度装置可以根据第一带宽和第一调度频率的比值确定第一调度参数。其中,第一带宽和第一调度频率的比值,表示使得队列调度装置的最大带宽等于第一带宽的调度参数。
在一种可能的设计中,队列调度装置通过比较实际调度报文出队的频率和第一调度频率之间的大小关系确定第一带宽与第二带宽匹配。具体地,假设队列调度装置在单位时间内的实际调度次数用第二调度频率表示,那么队列调度装置可以比较第二调度频率和第三调度频率之间的大小关系。如果第二调度频率不小于第三调度频率,说明第一带宽不小于第二带宽。其中,第三调度频率根据第一调度频率确定,例如第三调度频率可以等于第一调度频率,或者等于第一调度频率与第一预设比例的乘积。
在一种可能的设计中,上述第一调度频率根据队列调度装置的晶振频率或时钟频率确定。
第二方面,本申请实施例提供了一种队列调度装置,所述装置包括:获取单元,用于确定第一带宽,所述第一带宽指示出接口的报文出队列的速率;处理单元,用于根据所述第一带宽与第一调度频率确定第一调度参数,其中,所述第一调度频率用于指示单位时间内的最大调度次数,所述第一调度参数用于指示每次调度的报文长度;根据所述第一调度参数调度所述出接口的报文排出队列。
在一种可能的设计中,所述处理单元,具体用于确定所述第一带宽与第二带宽匹配,所述第二带宽根据第二调度参数和所述第一调度频率确定,所述第二调度参数为所述队列调度装置在第一时刻每次调度的报文长度,所述第一时刻为所述队列调度装置获取所述第一带宽的时刻。
在一种可能的设计中,所述处理单元,具体用于响应于所述第一带宽小于所述第二带宽,根据所述第一带宽和所述第一调度频率的比值确定所述第一调度参数,所述第一调度参数小于所述第二调度参数。
在一种可能的设计中,所述处理单元,具体用于根据所述第一带宽和所述第一调度频率的比值确定第三调度参数;根据所述第三调度参数,从第一候选调度参数集合中确定所述第一调度参数,所述第一候选调度参数集合包括多个第一候选调度参数,所述第一调度参数为所述第一候选调度参数集合中不小于所述第三调度参数的第一候选调度参数。
在一种可能的设计中,所述第一带宽根据从所述出接口被调度出队的报文长度确定,或,所述第一带宽根据加入第一队列集合的报文长度确定,所述第一队列集合对应所述出接口。
在一种可能的设计中,所述处理单元,具体用于响应于所述第一带宽不小于所述第二带宽,根据所述第二调度参数确定所述第一调度参数,所述第一调度参数大于所述第二调度参数。
在一种可能的设计中,所述处理单元,具体用于根据所述第二调度参数,从第二候选调度参数集合中确定所述第一调度参数,所述第二候选调度参数集合包括多个第二候选调 度参数,所述第一调度参数为所述第二候选调度参数集合中不小于所述第二调度参数的第二候选调度参数。
在一种可能的设计中,所述处理单元,具体用于根据所述第三调度参数和预设步长之和确定所述第一调度参数。
在一种可能的设计中,所述第一带宽根据加入第一队列集合的报文长度确定,所述第一队列集合对应所述出接口,所述处理单元,具体用于响应于所述第一带宽不小于所述第二带宽,根据所述第一带宽和所述第一调度频率的比值确定所述第一调度参数。
在一种可能的设计中,所述处理单元,具体用于确定第二调度频率不小于第三调度频率,所述第二调度频率用于指示所述队列调度装置在单位时间内的实际调度次数,所述第三调度频率根据所述第一调度频率确定。
在一种可能的设计中,上述第一调度频率根据队列调度装置的晶振频率或时钟频率确定。
第三方面,本申请实施例提供了一种设备,所述设备包括处理器和存储器,所述存储器用于存储指令或程序代码,所述处理器用于从存储器中调用并运行所述指令或程序代码,以执行如前述第一方面所述的队列调度的方法。
第四方面,本申请实施例提供了一种芯片,包括存储器和处理器,存储器用于存储指令或程序代码,处理器用于从存储器中调用并运行该指令或程序代码,以执行如前述第一方面所述的队列调度的方法。
第五方面,本申请实施例提供了一种计算机可读存储介质,包括指令、程序或代码,当其在计算机上执行时,使得所述计算机执行如前述第一方面所述的队列调度的方法。
附图说明
图1为本申请实施例提供的系统100的一种架构示意图;
图2为本申请实施例提供的队列调度的方法的一种流程示意图;
图3为本申请实施例提供的队列调度的方法的一种方法流程图;
图4为本申请实施例提供的一种队列调度的装置400的结构示意图;
图5为本申请实施例提供的一种设备500的结构示意图;
图6为本申请实施例提供的一种设备600的结构示意图。
具体实施方式
队列调度技术可以用于缓解流量突发,提升网络的QoS。如果出现流量突发,网络设备在短时间内接收到大量报文。通过队列调度技术,网络设备将接收到的报文存储在队列中,对队列进行多次调度。每次对队列进行调度时,网络设备将队列中存储的一个或多个报文排出队列,并向下一跳网络设备发送被排出队列的报文。这样,通过队列调度技术可以较为有效地缓解流量突发。
但是,网络设备每次调度能够排出队列的报文的总字节数是固定的,无法灵活地调整每次调度出队的报文的总字节数。这样,网络设备可能在一次调度中向下一跳网络设备发送大量报文,导致下一跳网络设备出现流量突发,影响下一跳网络设备的QoS。
具体地,在队列调度技术中,网络设备可能在单位时间内进行一次或多次调度。网络 设备在单位时间内调度的最大次数,与每次调度被网络设备排出队列的报文的总字节数的乘积等于网络设备在单位时间内排出队列的报文的总字节数,即网络设备的带宽。其中,上述每次调度被网络设备排出队列的报文的总字节数又被称为信用(Credit)粒度。报文的字节数又可以被称为报文的长度,多个报文的总字节数为多个报文的长度之和。
但是,随着网络系统的升级,网络设备的带宽越来越高。但是,网络设备在单位时间内调度的最大次数取决于网络设备的硬件配置,难以提升。因此,为了提高网络设备的带宽,每次调度被网络设备排出队列的报文的总字节数会相应地增加。也就是说,网络设备会在每次调度时将较多的报文排出队列并发往下一跳网络设备。而下一跳网络设备会在短时间内接收到大量报文。这样,如果网络设备的下一跳网络设备的处理能力有限,可能无法及时处理每次调度被排出队列的报文。如此,可能在下一跳网络设备产生流量突发,影响下一跳网络设备的QoS。
下面结合图1做详细介绍。参见图1,该图为本申请实施例提供的系统100的一种结构示意图,在系统100中,包括设备111、设备112、网络设备121、网络设备122和网络设备123。其中,网络设备121分别与设备111和网络设备122连接,网络设备123分别与设备112和网络设备122连接。通过网络设备121、网络设备122和网络设备123,设备111可以向设备112发送数据流。为了便于介绍,网络设备122上与网络设备123连接的出接口被称为出接口A,设备111向设备112发送的数据流被称为数据流B。数据流B包括多个报文。
网络设备122上配置有队列调度功能。在接收到网络设备121发送的数据报文之后,网络设备122先将这些报文存储到队列中。接着,网络设备121按规律将队列中存储的报文出队。例如,网络设备121可以通过先进先出(First In First Out,FIFO)的方式调度队列中缓存的报文出队,并基于尾丢弃(drop tail)机制丢弃无法存储的报文。或者,如果网络设备122用于传输多条数据流,网络设备122可以设置有多个队列,不同队列对应不同数据流。网络设备122可以通过轮询调度等方式调度不同队列中存储的报文出队。
网络设备122上每次调度被排出队列的报文的总字节数根据网络设备122的最大带宽和单位时间内能够调度的最大次数确定。其中,网络设备122调度报文的最高频率取决于网络设备122的硬件配置,例如可以由网络设备122的时钟频率或晶振频率确定。举例说明,网络设备122可以监测时钟信号的翻转情况。时钟信号每经过一个周期,网络设备122对报文进行一次调度。这样,网络设备122调度报文的频率与时钟信号的频率相等。相应地,网络设备122的最大额定带宽等于网络设备122每秒调度报文排出队列的最大次数与每次调度被网络设备122排出队列的报文的总字节数。因此,在网络设备122的最大额定带宽确定后,每次调度被网络设备122排出队列的报文的总字节数也相应地确定。
目前,每次调度被网络设备122排出队列的报文的总字节数无法灵活地调整。如果网络设备122的实际带宽小于网络设备122的最大额定带宽,网络设备122可以减少每秒调度报文排出队列的次数。即,网络设备122的实际带宽等于网络设备122实际每秒调度报文排出队列的次数与每次调度被网络设备122排出队列的报文的总字节数。
假设网络设备122的每秒最多发送200兆字节(Mega byte,MB)的报文,即网络设 备122的带宽为200MB每秒(MB per second,MB/s)。如果网络设备122每秒最多可以进行2兆次调度,即网络设备122调度报文排出队列的频率为2M赫兹(Hertz,Hz),那么每次调度被排出队列的报文的总字节数为200÷2=100byte。这样,在达到网络设备122调度报文的最高频率(2MHz)之后,网络设备122的带宽达到网络设备122的最大额定带宽200MB。如果网络设备122的实际带宽为100MB/s,那么网络设备122调度报文排出队列的频率为100÷100=1MHz。
在上述例子中,网络设备122每次调度报文,都有100byte的报文被排出队列并发往网络设备123。但是,如果网络设备123处理报文的能力较差,或者网络设备123的资源被其他数据流占用,网络设备123可能无法在短时间内处理来自网络设备122的报文。这样,网络设备123上出现流量突发,影响数据流B的正常传输。
举例说明。如果网络设备123还用于传输来自其他网络设备的报文,网络设备123的队列中存储有较多报文且空余的存储空间较少。那么网络设备123可能无法及时处理网络设备122发送的100byte的报文,影响从而影响到网络设备123的QoS。例如,假设网络设备123还剩余60byte的存储空间,那么在接收到网络设备122发送的100byte的报文之后,网络设备123会丢弃其中50byte的报文。如此,增加了数据流B的丢包率,影响了QoS。
为了解决上述提及的每次调度被排出队列的报文的总字节数过大的问题,本申请实施例提供了一种队列调度的方法及装置,旨在灵活调整每次调度被排出队列的报文的总字节数,进而避免下一跳网络设备的流量突发,提升网络系统的QoS。
本申请实施例提供的队列调度的方法可以应用于图1所示的系统。具体地,可以由图1所示实施例中网络设备121、网络设备122、网络设备123中任意一个或多个网络设备执行。其中,所述网络设备可以是具有转发功能的设备,比如:路由器(router)、交换机(switch)等转发设备,还可以是服务器或者终端设备等具有转发功能的设备。
可选地,所述设备111和设备112可以是网络设备,也可以是终端设备。如果设备111和设备112中的任意一个设备为网络设备,那么该设备可以是用户边缘(Customer Edge,CE)。其中,终端设备可以称为用户设备(User Equipment,UE)、移动台(Mobile Station,MS)、移动终端(Mobile Terminal,MT)或终端等。终端设备是一种向用户提供语音和/或数据连通性的设备,或,设置于该设备内的芯片。例如,终端设备可以是具有无线连接功能的手持式设备、车载设备等。终端设备可以为手机、台式电脑、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(Mobile Internet Device,MID)、可穿戴设备、虚拟现实(Virtual Reality,VR)设备、增强现实(Augmented Reality,AR)设备、工业控制(Industrial Control)中的无线终端或有线终端、无人驾驶(Self Driving)中的无线终端、远程手术(Remote Medical Surgery)中的无线终端、智能电网(Smart Grid)中的无线终端、运输安全(Transportation Safety)中的无线终端、智慧城市(Smart City)中的无线终端、智慧家庭(Smart Home)中的无线终端或支持5G接入的家庭网关设备(5G→Residential Gateway,5G→RG)等。
在一些可能的实现方式中,本申请实施例提供的队列调度方法也可以由接入设备执行。例如,该方法可以由具有BRAS功能的接入设备执行,用于对接入设备接收的、来自终端设备的报文进行调度。
参见图2,该图为本申请实施例提供的队列调度的方法的一种流程示意图,具体包括但不限于以下步骤S201-S203。
S201:队列调度装置确定第一带宽。
为了灵活调整每次调度被排出队列的报文的总字节数,队列调度装置先确定第一带宽。其中,队列调度装置为具有队列调度功能的设备上用于调度报文出队的模块,例如可以是网络设备上出接口对应的队列调度芯片。或者,队列调度装置也可以是软件模块,用于通过软件的方式调度队列中存储的报文排出队列。第一带宽指示出接口的报文出队列的速率。出接口为队列调度功能的设备上,与队列调度装置对应的网络接口。出接口对应一个或多个队列。
为了便于说明,出接口对应的队列被称为第一队列集合。也就是说,如果出接口对应一个队列,第一队列集合包括一个队列。如果出接口对应多个队列,第一队列集合包括多个队列。相应地,队列调度装置用于调度第一队列集合中各个队列所存储的报文排出队列,并通过该出接口向下一跳网络设备发送。相应地,本申请实施例中所述的“排出队列”是指从第一队列集合中的队列中被排出队列,并通过出接口向下一跳网络设备发送。
在本申请实施例中,第一带宽可以是出接口的入队带宽,也可以是出接口的出队带宽。下面分别进行介绍。
实现方式一:第一带宽为出接口的入队带宽。
其中,出接口的入队带宽表示加入第一队列集合的数据流的带宽。相应地,第一带宽根据单位时间内加入第一队列集合的报文的总字节数确定。队列调度装置可以监控加入队列的报文的情况,记录每个加入队列的报文的字节数和报文加入队列的时间。这样,在确定第一带宽时,队列调度装置根据报文加入队列的时间和报文的字节数,确定单位时间内加入队列的报文的总字节数,得到第一带宽。
可选地,队列调度装置周期性判断每次调度被排出队列的报文的总字节数是否需要调整。相应地,队列调度装置可以周期性确定第一带宽。队列调度装置确定第一带宽的周围被称为调整周期。那么第一带宽根据上个调整周期内加入队列的报文的字节总数和调整周期的时长确定。第一带宽为出接口在上个调整周期的平均入队带宽。可以理解的是,在其它可能的实现方式中,第一带宽也可以是出接口的即时入队带宽。
实现方式二:第一带宽为出接口的出队带宽。
其中,出接口的出队带宽表示通过出接口发往下一跳网络设备的数据流的带宽,即被排出队列的报文对应的带宽。相应地,第一带宽根据单位时间内被从第一队列集合中排出队列的报文的总字节数确定。具体地,队列调度装置可以监控被排出第一队列集合的报文的情况,记录每个被排出队列的报文的字节数和报文被排出队列的时间。这样,在确定第一带宽时,队列调度装置根据报文被排出队列的时间和报文的字节数,确定单位时间内被 排出队列的报文的总字节数,得到第一带宽。
与上述第一种可能的实现方式类似,如果第一带宽为出队带宽,队列调度装置也可以根据调整周期确定第一带宽。那么第一带宽根据上个调整周期内被从第一队列集合中排出队列的报文的总字节数确定。
第一带宽可以是队列调度装置计算得到的,也可以是其他设备向队列调度装置发送的。例如,如果队列调度装置为具有队列调度功能的设备上用于调整调度参数的模块,第一带宽可以是调度器模块或队列管理模块向队列调度装置发送的。有关调度参数的介绍可以参见下文,这里不再赘述。
S202:队列调度装置根据第一带宽与第一调度频率确定第一调度参数。
在获取到第一带宽之后,队列调度装置根据第一带宽与第一调度频率确定第一调度参数。其中,第一调度频率用于指示单位时间内的最大调度次数,第一调出参数用于指示每次调度被排出队列的报文长度。也就是说,第一调度频率对应前文所述的单位时间内调度的最大次数,第一调度参数对应前文所述的每次调度被排出队列的报文的总字节数。
根据前文介绍可知,设备的最大带宽等于单位时间内调度的最大次数与每次调度被排出队列的报文的总字节数的乘积。相应地,为了保证数据流的正常转发,第一调度频率与第一调度参数的乘积不小于第一带宽。也就是说,为了保证报文的正常转发,且降低对下一跳网络设备的QoS的影响,队列调度装置根据第一带宽与第一调度频率,确定与出接口的实际流量情况相匹配的第一调度参数。
根据前文介绍可知,如果每次调度被排出队列的报文的总字节数较大,可能造成下一跳网络设备的流量突发影响下一跳网络设备的QoS。但是,如果每次调度被排出队列的报文的总字节数较小,出接口能够达到的最大带宽有限,可能报文的正常转发。因此,队列调度装置可以调大出接口对应的调度参数,也可以调小出接口对应的调度参数。相应地,在根据第一带宽与第一调度频率确定第一调度参数之前,队列调度装置可以先确定出接口的调度参数的调整方向。
在本申请实施例中,出接口可以根据第一带宽与第二带宽的大小关系确定出接口的调度参数的调整方向。其中,第二带宽根据第二调度参数与第一调度频率确定,第二调度参数为队列调度装置在第一时刻每次调度的报文长度。第一时刻为队列调度装置获取第一带宽的时刻。也就是说,第二调度参数为第一带宽对应的调度参数。如果队列调度装置根据调整周期确定第一带宽,那么第二调度参数为第一带宽对应的调整周期中,队列调度装置每次调度被排出队列的报文的字节总数。第二带宽可以等于第二调度参数与第一调度频率的乘积,也可以小于第二调度参数与第一调度频率的乘积。关于第二带宽的详细介绍可以参见后文,这里不再赘述。
通过比较第一带宽与第二带宽之间的大小关系,队列调度装置可以确定第一带宽大于或等于第二带宽,或者确定第一带宽小于第二带宽。下面以队列调度装置根据调整周期确定第一带宽为例,分别介绍第一带宽小于第二带宽与第一带宽大于或等于第二带宽两种情况下,队列调度装置确定第一调度参数的实现方式进行介绍。
情况一:第一带宽大于或等于第二带宽。
如果队列调度装置在上个调整周期内实际排出队列的报文的总字节数,大于或等于根据第一调度频率与第二调度参数确定的第二带宽,说明队列调度装置在上个调整周期内的负载较高。队列调度装置可以增加调度参数,以提高出接口在下个调整周期内的带宽。
如果第二带宽等于第二调度参数与第一调度频率的乘积,那么第二带宽表示在根据第二调度参数调度报文排出队列的条件下,队列调度装置能够达到的最大带宽。因此,如果第一带宽大于或等于第二带宽,说明队列调度装置在上个调整周期的调度频率已经达到或大于第一调度频率,出接口的带宽也已经达到或大于在第二调度参数下能够达到的最大带宽。那么如果继续根据第二调度参数调度第一队列集合中存储的报文排出队列,队列调度装置能够提供的最大带宽可能无法满足数据流传输的要求。因此,队列调度装置确定需要增加出接口的调度参数,以保证报文的正常传输。
可以理解的是,第二带宽等于第二调度参数与第一调度频率的乘积,且第一带宽大于第二带宽,那么第一带宽可以是出接口的入队带宽。队列调度装置通过上述实现方式一获取第一带宽。
考虑到网络环境可能较为复杂,在第一带宽达到第二带宽后再增加队列调度装置的调度参数的方案可能存在一定的滞后,无法及时匹配数据流的波动情况。为此,在一些可能的实现方式中,第二带宽可以小于第一调度频率与第二调度参数的乘积。
可以通过第一预设比例调整第二带宽,即第二带宽等于第二调度参数、第一调度频率与第一预设比例的乘积。其中第一预设比例为小于1的实数。那么第二带宽等于在根据第二调度参数调度报文排出队列、且保证数据流的正常传输的条件下,队列调度装置能够达到的最大带宽。
在上述实现方式中,通过第一预设比例使得第二带宽小于第一调度频率与第二调度参数的乘积。可以理解的是,在本申请实施例中,也可以通过其他方式使得第二带宽小于第一调度频率与第二调度参数的乘积。例如,在一些其他可能的实现方式中,可以通过带宽修正值得到第二带宽。即第一调度频率与第二调度参数的乘积与带宽修正值之差为第二带宽。
这样,如果第一带宽大于或等于第二带宽,说明出接口的带宽已经达到在第二调度参数下能够保证数据流的正常传输的最大带宽。那么如果继续根据第二调度参数调度第一队列集合中存储的报文排出队列,队列调度装置能够提供的最大带宽可能无法满足数据流正常传输的要求。因此,队列调度装置确定需要增加出接口的调度参数,以保证报文的正常传输。
在确定需要增加出接口的调度参数之后,队列调度装置确定大于第二调度参数的第一调度参数。相应地,由于第一调度参数大于第二调度参数,第一调度参数与第一调度频率的乘积也大于第二调度参数与第一调度频率的乘积。也就是说,在根据第一调度参数调度报文排出队列的条件下队列调度装置能够达到的最大带宽,大于在根据第二调度参数调度报文排出队列的条件下,队列调度装置能够达到的最大带宽。这样,增加了队列调度装置能够提供的最大带宽,可以满足数据流的正常传输的需求。
在本申请实施例中,队列调度装置确定第一调度参数包括但不限于以下两种实现方式。
实现方式一:队列调度装置根据第一带宽与第一调度频率的比值确定第一调度参数。
如果第二带宽等于第一调度频率与第二调度参数的乘积,且第一带宽大于第二带宽,那么第一带宽与第一调度频率的比值大于第二调度参数。队列调度装置可以将第一带宽与第一调度频率的比值确定为第一调度参数。这样,在根据第一调度参数调度报文排出队列的条件下,队列调度装置能够达到的最大带宽能够达到第一带宽,可以满足传输数据流的传输的需求。
或者,如果第二带宽等于第一调度频率、第二调度参数与第一预设比例的乘积,且第一带宽大于第二带宽,那么队列调度装置可以将第一带宽与相除,并将得到的结果与第一预设比例第一调度频率的比值确定为第一调度参数。这样,由于第一预设比例小于一,第一带宽与第一预设比例相除得到的结果大于第一带宽,也大于第一调度频率与第二调度参数的乘积。也就是说,在根据第一调度参数调度报文排出队列的条件下,队列调度装置能够达到的最大带宽大于第一带宽,也能够保证数据流的正常传输。
可选地,为了保证网络的QoS,队列调度装置可以在根据第一带宽与第一调度频率的比值确定第一调度参数之后,根据第一预设值增加第一调度参数。例如,如果第一调度参数不等于第一带宽与第一调度频率的比值,那么队列调度装置可以将第一带宽与第一调度频率的比值与第一预设值求和,并将求和得到的结果确定为第一调度参数。这样,在根据第一调度参数调度报文排出队列的条件下,队列调度装置能够达到的最大带宽大于第一带宽,即使数据流在下个调整周期出现了一定的波动,队列调度装置也能够满足数据流传输的需求。
在实际的应用场景中,本申请实施例提供的队列调度装置为网络设备上的调度芯片。而调度芯片的数据处理能力有限,可能不足以满足将第一带宽与第一调度频率的比值作为第一调度参数调度第一队列集合中的报文排出队列的需求。因此,在一些可能的实现方式中,可以为出接口设置第一候选调度参数集合。第一候选调度参数集合包括多个不同的第一候选调度参数。在确定第一调度参数时,队列调度装置可以根据第一带宽与第一调度频率,从多个第一候选调度参数中确定第一调度参数。
具体地,队列调度装置先计算第一带宽与第一调度频率的比值。接着,队列调度装置从出接口对应的第一候选调度参数集合中选择大于第一带宽与第一调度频率的比值的第一候选调度参数作为第一调度参数。例如,队列调度装置可以将第一候选调度参数集合中大于第一带宽与第一调度频率的比值且最小的第一候选调度参数作为第一调度参数。这样,相当于在队列调度装置上预设多个档位的调度参数。在需要调整调度参数时,队列调度装置可以根据带宽与第一调度频率确定合适的档位。如此,既可以灵活地调整出接口的调度参数,也可以降低对队列调度装置的计算资源的需求。
可选地,上述第一带宽可以是出接口的入队带宽。
实现方式二:队列调度装置根据第二调度参数确定第一调度参数。
在第二种可能的实现方式中,队列调度装置根据第二调度参数确定第一调度参数。例如,队列调度装置可以将第二调度参数与第二预设值求和,并将求和得到的结果确定为第一调度参数。可选地,第二预设值和前述第一预设值可以相等。或者,队列调度装置也可 以从第二候选调度参数集合中选择大于第二调度参数的第二候选调度参数作为第一调度参数。第二候选调度参数集合中包括多个第二候选调度参数。可选地,第二候选调度参数集合与第一候选调度参数集合可以是相同的集合。
情况二:第一带宽小于第二带宽。
如果队列调度装置在上个调整周期内实际排出队列的报文的总字节数,小于根据第一调度频率与第二调度参数确定的第二带宽,说明队列调度装置在上个调整周期内的负载较低。队列调度装置可以减小调度参数,以降低每次调度被排出队列的报文的总字节数,减少对下一跳网络设备的QoS的影响。
在确定需要减小出接口的调度参数之后,队列调度装置确定小于第二调度参数的第一调度参数。在本申请实施例中,队列调度装置确定第一调度参数包括但不限于以下两种实现方式。
实现方式一:队列调度装置根据第一带宽与第一调度频率的比值确定第一调度参数。
与上述情况一中的实现方式一相似,队列调度装置可以根据第一带宽与第一调度频率的比值确定第一调度参数。由于第一带宽小于第二带宽,第一带宽与第一调度频率的比值也小于第二带宽与第一调度频率的比值,那么第一调度参数小于第二调度参数。如此,减小了出接口的调度参数,降低了每次调度被排出队列的报文的总字节数。
在一些可能的实现中,为了避免反复调整,队列调度装置可以根据第一带宽与第一调度频率的比值和调度参数修正值确定第一调度参数。即,队列调度装置先计算第一带宽与第一调度频率的比值,再将该比值与修正值求和,最后基于求和得到的结果确定第一调度参数。例如队列调度装置可以将求和得到的结果确定为修正值,或者从第一候选调度参数集合中选择大于求和得到的结果且最小的第一候选调度参数作为第一调度参数。
可以理解的是,如果队列调度装置根据第一带宽与第一调度频率的比值确定第一调度参数,第一调度参数可以等于第二调度参数。那么队列调度装置可以不调整出接口的调度参数。
实现方式二:队列调度装置根据第二调度参数确定第一调度参数。
与上述情况二中的实现方式二相似,队列调度装置也可以根据第二调度参数确定第一调度参数。例如,队列调度装置可以将第二调度参数与第二预设值之差确定为第一调度参数。或者,队列调度装置可以从第三候选调度参数集合中选择小于第一调度参数且最大的第三候选调度参数作为第一调度参数。第三候选调度参数集合包括多个第三候选调度参数。可选地,第三候选调度参数集合与上述第一候选调度参数集合以及第二候选调度参数集合可以是相同的集合。
在上述介绍的实现方式中,队列调度装置根据第二带宽确定需要增加调度参数还是减小第二调度参数。即,增加调度参数的带宽,和用于减小调度参数的带宽相同。而在一些其他可能的实现中,用于增加调度参数的带宽,和用于减小调度参数的带宽不同。即,如果第一带宽大于第三带宽,队列调度装置增加出接口的调度参数;如果第一带宽小于第四带宽,队列调度装置减小出接口的调度参数。第三带宽大于第四带宽。可选地,第三带宽与第四带宽根据第二调度参数与第一调度频率确定。例如,第三带宽可以等于第二调度参 数、第一调度频率和第一预设比例的乘积,第四带宽可以等于第二调度参数、第一调度频率和第二预设比例的乘积。其中第一预设比例大于第二预设比例,且第一预设比例小于一。
在上述介绍的实现方式中,队列调度装置通过比较第一带宽和第二带宽(或第三带宽、第四带宽)的大小关系确定调度参数的调整方向。而在一些其他可能的实现方式中,队列调度装置可以通过比较第二调度频率确定调度参数的调整方向。其中,第二调度频率为用于指示所述队列调度装置在单位时间内的实际调度次数。
具体地,队列调度装置可以比较第二调度频率和第三调度频率之间的大小关系。第三调度频率根据第一调度频率确定,例如可以等于第一调度频率,或者等于第一调度频率与频率修正值之差。
假设第三调度频率等于第一调度频率与频率修正值之差,且第二调度频率大于或等于第三调度频率,说明队列调度装置调度报文出队的频率较高。这样,假如出现了流量突发,队列调度装置可能无法提供足够的带宽以调度报文排出队列。因此,在确定第二调度频率大于或等于第三调度频率之后,队列调度装置可以确定需要增加出接口的调度参数。可以理解的是,队列调度装置也可以通过相似地方式确定需要减小出接口的调度参数。
在上述介绍的实现方式中,队列调度装置基于第二带宽或与第二带宽相关的参数确定第一调度参数。在一些其他可能的实现中,队列调度装置也可以基于第一带宽和第一调度频率确定第一调度参数。例如,队列调度装置可以在获取到第一带宽之后,计算第一带宽与第一调度频率的比值,并将计算得到的结果作为第一调度参数。也就是说,队列调度装置可以不比较第一带宽和第二带宽的大小,直接根据第一带宽与第一调度频率的比值确定第一调度参数。
S203:队列调度装置根据第一调度参数调度出接口的报文排出队列。
在确定第一调度参数之后,队列调度装置根据第一调度参数调度出接口的报文排出队列。即,在确定第一调度参数之后,每次调度被队列调度装置排出队列的报文的字节总数根据第一调度参数确定。
通过上述介绍可以看出,在本申请实施例中,队列调度装置首先获取第一带宽,接着,队列调度装置根据第一带宽与第一调度频率确定第一调度参数,并基于第一调度参数调度报文排出队列。也就是说,队列调度报文排出队列所用的第一调度参数,是根据报文实际加入(或排出)出接口对应的第一队列集合的速率确定的。这样,使得出接口的调度参数可以随着出接口的实际带宽灵活调整。如果出接口的带宽变小,队列调度装置可以减小出接口的调度参数。队列调度装置每次调度可以将较少的报文排出队列,减少了每次调度发往出接口对应的下一跳网络设备的报文的总字节数。那么下一跳网络设备不会在短时间内接收到超出该下一跳网络设备处理能力的报文,避免了流量突发,提升了网络系统的QoS。如果出接口的带宽增大,队列调度装置可以增加出接口的调度参数。那么队列调度装置每次调度可以将更多的报文排出队列,增加了出接口的最大带宽。可见,基于出接口的实际带宽灵活调整调度参数,使得出接口的调度参数与出接口的实际流量相匹配。如此,在保证数据流正常传输的前提下,减小了每次调度被排出队列的报文的字节总数,能够更好地保证网络的QoS。
下面结合图1所示的应用场景,对本申请实施例提供的队列调度的方法做进一步说明。为了便于说明,在下述实施例中,网络设备122上的队列调度装置根据调整周期执行本申请实施例提供的队列调度的方法,第一带宽为出接口的出队带宽,队列调度装置基于第二带宽确定调度参数的调整方向,第一预设比例为80%。另外,队列调度装置对应的第一调度频率为2MHz,最大额定带宽为200MB/s,调度参数修正值为5byte。
参见图3,图3为本申请实施例提供的队列调度的方法的一种方法流程图,具体包括但不限于以下步骤S301-S203。
S301:队列调度装置基于初始调度参数调度报文排出队列。
在首个调整周期内,队列调度装置可以基于初始调度参数调度报文排出队列。其中,初始调度参数可以是在队列调度装置上配置的调度参数。可选地,队列调度参数可以是队列调度装置对应的最大调度参数,例如可以为100byte。
也就是说,在首个调整周期内,网络设备122每次调度从出接口A向网络设备123发送总长度为100byte的报文。
S302:队列调度装置获取第一带宽。
在队列调度装置调度报文排出的过程中,队列调度装置可以监控从第一队列集合中的队列被调度出队的报文的情况。在当前调整周期结束之后,队列调度装置可以根据本调整周期内被调度出队的报文的总字节数和调整周期的时长确定第一带宽。
S303:队列调度装置判断第一带宽是否小于第二带宽。
在确定第一带宽之后,队列调度装置确定第一带宽和第二带宽的大小关系,判断第一带宽是否小于第二带宽。如果第一带宽小于第二带宽,队列调度装置执行S304。如果第一带宽大于或等于第二带宽,队列调度装置执行S305。
S304:响应于第一带宽小于第二带宽,队列调度装置确定第一调度参数。
如果第一带宽小于第二带宽,队列调度装置可以计算第一带宽与第一调度频率的比值,并与修正值求和。接着,队列调度装置从第二候选调度参数集合中选择大于求和得到的结果且最小的第二候选调度参数作为第一候选调度参数。
例如,假设第二调度参数为50byte,第一带宽为30MB/s,且第二候选调度参数集合包括0byte、25byte、50byte、75byte和100byte五个第二候选调度参数。相应地,第二调度参数对应的第二带宽等于(50*2)*80%=80MB/s。由于第一带宽小于第二带宽,队列调度装置先计算第一带宽与第一调度频率的比值,再将上述比值与调度参数修正值求和,得到的结果为30÷2+5=20byte。最后从五个候选调度参数中选择大于20byte且最小的第二候选调度参数,即25byte,作为第一调度参数。
S305:响应于第一带宽大于或等于第二带宽,队列调度装置确定第一调度参数。
如果第一带宽大于或等于第二带宽,队列调度装置从第一候选调度参数集合中,选择大于第二调度参数且最小的第一候选调度参数作为第一调度参数。
例如,假设第二调度参数为50byte,第一带宽为90MB/s,第一候选调度参数集合中包括0byte、25byte、50byte、75byte和100byte五个候选调度参数。相应地,第二调度参数 对应的第二带宽等于(50*2000000)*80%=80MB/s。由于第一带宽大于第二带宽,队列调度装置可以从第一候选调度参数集合选取大于50byte且最小的第一候选调度参数,即75byte,作为第一调度参数。
S306:队列调度装置基于第一调度参数调度报文排出队列。
在确定第一调度参数之后,队列调度装置在下个调整周期内基于第一调度参数调度报文排出队列,并重新统计第一带宽。在上述“下个调整周期”结束时,队列调度装置返回执行S302-S306。
举例说明。假设设备111发往设备112的数据流B的实际带宽为142MB/s。且在第i个(i为正整数)调整周期内,队列调度装置每次将总长度不大于50byte的报文排出队列,对应调度参数为50byte。
在第i个调整周期内,出接口A能够达到的最大带宽为50*2=100MB/s,小于数据流B的实际带宽为142MB/s。因此,第i个调整周期的第一带宽为出接口A能够达到的最大带宽100MB/s。由于第一带宽100MB/s大于第二带宽80MB/s,队列调度装置从0byte、25byte、50byte、75byte和100byte五个候选调度参数中选择大于50byte的候选调度参数作为第i+1个调整周期内的调度参数。这样,在第i+1个调整周期内,队列调度装置每次将总长度不大于75byte的报文排出队列,对应调度参数为75byte。
在第i+1个调整周期内,出接口A能够达到的最大带宽为75*2=150MB/s,对应的第二带宽为150*0.8=120MB/s。由于出接口A能够达到的最大带宽大于数据流B的实际带宽,第i+1个调整周期的第一带宽为数据流B的实际带宽142MB/s。
由于第一带宽大于第二带宽,队列调度装置从0byte、25byte、50byte、75byte和100byte五个候选调度参数中选择大于75byte的候选调度参数作为第i+2个调整周期内的调度参数。这样,在第i+2个调整周期内,队列调度装置每次将总长度不大于100byte的报文排出队列,对应调度参数为100byte。
在第i+2个调整周期内,出接口A能够达到的最大带宽为100*2=200MB/s,对应的第二带宽为200*0.8=160MB/s。由于出接口A能够达到的最大带宽大于数据流B的实际带宽,第i+1个调整周期的第一带宽为数据流B的实际带宽142MB/s。
由于第一带宽小于第二带宽,队列调度装置将第一带宽与第一调度频率相除,得到的结果为142÷2=71byte。接着,队列调度装置将得到的结果与修正值求和,得到的结果为71+5=76byte。接着,队列调度装置从0byte、25byte、50byte、75byte和100byte五个候选调度参数中选择大于76byte的候选调度参数作为第i+3个调整周期内的调度参数。这样,在第i+3个调整周期内,队列调度装置每次将总长度不大于100byte的报文排出队列,对应调度参数为100byte。
假设在第i+3个调整周期内,数据流B的实际带宽从142MB/s变为20MB/s。那么i+4个调整周期内第一带宽为20MB/s,第二带宽为160MB/s。由于第一带宽小于第二带宽,队列调度装置将第一带宽与第一调度频率相除,得到的结果为20÷2=10byte。接着,队列调度装置将得到的结果与修正值求和,得到的结果为10+5=15byte。接着,队列调度装置从0byte、25byte、50byte、75byte和100byte五个候选调度参数中选择大于15byte的候选调度 参数作为第i+4个调整周期内的调度参数。这样,在第i+4个调整周期内,队列调度装置每次将总长度不大于25byte的报文排出队列,对应调度参数为25byte。
可见,通过本申请实施例提供的队列调度的方法,队列调度装置可以灵活调整每次调度被排出队列的报文的总字节数,使得每次调度被排出队列的报文的总字节数与出接口实际的带宽相匹配,从而在保证数据流的正常转发的前提下,避免了下一跳网络设备(即网络设备123的流量突发,提升了网络系统的QoS。
参见图4,本申请实施例还提供了一种队列调度的装置400,该队列调度的装置400可以实现图2或图3所示实施例中队列调度装置的功能。该队列调度的装置400包括获取单元410和处理单元420。其中,获取单元410用于实现图2所示实施例中的S201,处理单元420用于实现图2所示实施例中的S202和S203。
具体的,获取单元410,用于确定第一带宽,所述第一带宽指示出接口的报文出队列的速率。
处理单元402,用于根据所述第一带宽与第一调度频率确定第一调度参数,其中,所述第一调度频率用于指示单位时间内的最大调度次数,所述第一调度参数用于指示每次调度的报文长度;根据所述第一调度参数调度所述出接口的报文排出队列。
具体执行过程请参考上述图2或图3所示实施例中相应步骤的详细描述,这里不再一一赘述。
需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。本申请实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。例如,上述实施例中,调度单元和判断单元可以是同一个单元,也不同的单元。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
图5是本申请实施例提供的一种设备500的结构示意图。上文中的队列调度的装置400可以通过图5所示的设备来实现。参见图5,该设备500包括至少一个处理器501,通信总线502以及至少一个网络接口504,可选地,该设备500还可以包括存储器503。
处理器501可以是一个通用中央处理器(Central Processing Unit,CPU)、特定应用集成电路(Application-specific Integrated Circuit,ASIC)或一个或多个用于控制本申请方案程序执行的集成电路(Integrated Circuit,IC)。处理器可以用于对报文、队列以及调度参数进行处理,以实现本申请实施例中提供的队列调度的方法。
比如,当图2中的队列调度装置通过图5所示的设备来实现时,该处理器可以用于,确定第一带宽,所述第一带宽指示出接口的报文出队列的速率;处理单元,用于根据所述第一带宽与第一调度频率确定第一调度参数,其中,所述第一调度频率用于指示单位时间内的最大调度次数,所述第一调度参数用于指示每次调度的报文长度;根据所述第一调度参数调度所述出接口的报文排出队列。
通信总线502用于在处理器501、网络接口504和存储器503之间传送信息。
存储器503可以是只读存储器(Read-only Memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,存储器503还可以是随机存取存储器(Random Access Memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,也可以是只读光盘(Compact Disc Read-only Memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器503可以是独立存在,通过通信总线502与处理器501相连接。存储器503也可以和处理器501集成在一起。
可选地,存储器503用于存储执行本申请实施例提供的技术方案的程序代码或指令,并由处理器501来控制执行。处理器501用于执行存储器503中存储的程序代码或指令。程序代码中可以包括一个或多个软件模块。可选地,处理器501也可以存储执行本申请实施例提供的技术方案的程序代码或指令,在这种情况下处理器501不需要到存储器503中读取程序代码或指令。
网络接口504可以为收发器一类的装置,用于与其它设备或通信网络通信,通信网络可以为以太网、无线接入网(RAN)或无线局域网(Wireless Local Area Networks,WLAN)等。在本申请实施例中,网络接口504可以用于接收分段路由网络中的其他节点发送的报文,也可以向分段路由网络中的其他节点发送报文。网络接口504可以为以太接口(Ethernet)接口、快速以太(Fast Ethernet,FE)接口或千兆以太(Gigabit Ethernet,GE)接口等。
在具体实现中,作为一种实施例,设备500可以包括多个处理器,例如图5中所示的处理器501和处理器505。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
图6是本申请实施例提供的一种设备600的结构示意图。图2或图3中的队列调度装置可以通过图6所示的设备来实现。参见图6所示的设备结构示意图,设备600包括主控板和一个或多个接口板。主控板与接口板通信连接。主控板也称为主处理单元(Main Processing Unit,MPU)或路由处理卡(Route Processor Card),主控板包括CPU和存储器,主控板负责对设备600中各个组件的控制和管理,包括路由计算、设备管理和维护功能。接口板也称为线处理单元(Line Processing Unit,LPU)或线卡(Line Card),用于接收和发送报文。在一些实施例中,主控板与接口板之间或接口板与接口板之间通过总线通信。在一些实施例中,接口板之间通过交换网板通信,在这种情况下设备600也包括交换网板,交换网板与主控板、接口板通信连接,交换网板用于转发接口板之间的数据,交换网板也可以称为交换网板单元(Switch Fabric Unit,SFU)。接口板包括CPU、存储器、转发引擎和接口卡(Interface Card,IC),其中接口卡可以包括一个或多个网络接口。网络接口可以为Ethernet接口、FE接口或GE接口等。CPU与存储器、转发引擎和接口卡分别通信连接。存储器用于存储转发表。转发引擎用于基于存储器中保存的转发表转发接收到的报文,如果接收到的报文的目的地址为设备600的IP地址,则将该报文发送给主控板或接口板的 CPU进行处理;如果接收到的报文的目的地址不是设备600的IP地址,则根据该目的地查转发表,如果从转发表中查找到该目的地址对应的下一跳和出接口,将该报文转发到该目的地址对应的出接口。转发引擎可以是网络处理器(Network Processor,NP)。接口卡也称为子卡,可安装在接口板上,负责将光电信号转换为数据帧,并对数据帧进行合法性检查后转发给转发引擎处理或接口板CPU。在一些实施例中,CPU也可执行转发引擎的功能,比如基于通用CPU实现软转发,从而接口板中不需要转发引擎。在一些实施例中,转发引擎可以通过ASIC或现场可编程门阵列(Field Programmable Gate Array,FPGA)实现。在一些实施例中,存储转发表的存储器也可以集成到转发引擎中,作为转发引擎的一部分。
本申请实施例还提供一种芯片系统,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储程序或指令,当所述程序或指令被所述处理器执行时,使得该芯片系统实现上述图2或图3所示实施例中队列调度装置执行的队列调度的方法。
可选地,该芯片系统中的处理器可以为一个或多个。该处理器可以通过硬件实现也可以通过软件实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等。当通过软件实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现。
可选地,该芯片系统中的存储器也可以为一个或多个。该存储器可以与处理器集成在一起,也可以和处理器分离设置,本申请并不限定。示例性的,存储器可以是非瞬时性处理器,例如只读存储器ROM,其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请对存储器的类型,以及存储器与处理器的设置方式不作具体限定。
示例性的,该芯片系统可以是FPGA,可以是ASIC,还可以是系统芯片(System on Chip,SoC),还可以是CPU,还可以是NP,还可以是数字信号处理电路(Digital Signal Processor,DSP),还可以是微控制器(Micro Controller Unit,MCU),还可以是可编程控制器(Programmable Logic Device,PLD)或其他集成芯片。
应理解,上述方法实施例中的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
本申请实施例还提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行以上方法实施例提供的、由队列调度装置执行的队列调度的方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行以上方法实施例提供的、由队列调度装置执行的队列调度的方法。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装 置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑模块划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要获取其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各模块单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件模块单元的形式实现。
所述集成的单元如果以软件模块单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (23)

  1. 一种队列调度的方法,其特征在于,所述方法包括:
    队列调度装置确定第一带宽,所述第一带宽指示出接口的报文出队列的速率;
    所述队列调度装置根据所述第一带宽与第一调度频率确定第一调度参数,其中,所述第一调度频率用于指示单位时间内的最大调度次数,所述第一调度参数用于指示每次调度的报文长度;
    所述队列调度装置根据所述第一调度参数调度所述出接口的报文排出队列。
  2. 根据权利要求1所述的方法,其特征在于,在确定所述第一调度参数之前,所述方法还包括:
    所述队列调度装置确定所述第一带宽与第二带宽匹配,所述第二带宽根据第二调度参数和所述第一调度频率确定,所述第二调度参数为所述队列调度装置在第一时刻每次调度的报文长度,所述第一时刻为所述队列调度装置获取所述第一带宽的时刻。
  3. 根据权利要求2所述的方法,其特征在于,所述队列调度装置根据所述第一带宽与第一调度频率确定第一调度参数包括:
    响应于所述第一带宽小于所述第二带宽,所述队列调度装置根据所述第一带宽和所述第一调度频率的比值确定所述第一调度参数,所述第一调度参数小于所述第二调度参数。
  4. 根据权利要求3所述的方法,其特征在于,所述队列调度装置根据所述第一带宽和所述第一调度频率的比值确定所述第一调度参数包括:
    所述队列调度装置根据所述第一带宽和所述第一调度频率的比值确定第三调度参数;
    所述队列调度装置根据所述第三调度参数,从第一候选调度参数集合中确定所述第一调度参数,所述第一候选调度参数集合包括多个第一候选调度参数,所述第一调度参数为所述第一候选调度参数集合中不小于所述第三调度参数的第一候选调度参数。
  5. 根据权利要求1-4任一项所述的方法,其特征在于,所述第一带宽根据从所述出接口被调度出队的报文长度确定,或,所述第一带宽根据加入第一队列集合的报文长度确定,所述第一队列集合对应所述出接口。
  6. 根据权利要求2所述的方法,其特征在于,所述第一带宽根据从所述出接口被调度出队的报文长度确定,所述队列调度装置根据所述第一带宽与第一调度频率确定第一调度参数包括:
    响应于所述第一带宽不小于所述第二带宽,所述队列调度装置根据所述第二调度参数确定所述第一调度参数,所述第一调度参数大于所述第二调度参数。
  7. 根据权利要求6所述的方法,其特征在于,所述队列调度装置根据所述第二调度参数确定所述第一调度参数包括:
    所述队列调度装置根据所述第二调度参数,从第二候选调度参数集合中确定所述第一调度参数,所述第二候选调度参数集合包括多个第二候选调度参数,所述第一调度参数为所述第二候选调度参数集合中不小于所述第二调度参数的第二候选调度参数。
  8. 根据权利要求6所述的方法,其特征在于,所述队列调度装置根据所述第二调度参数确定所述第一调度参数包括:
    所述队列调度装置根据所述第二调度参数和预设步长之和确定所述第一调度参数。
  9. 根据权利要求2所述的方法,其特征在于,所述第一带宽根据加入第一队列集合的报文长度确定,所述第一队列集合对应所述出接口,所述队列调度装置根据所述第一带宽与第一调度频率确定第一调度参数包括:
    响应于所述第一带宽不小于所述第二带宽,所述队列调度装置根据所述第一带宽和所述第一调度频率的比值确定所述第一调度参数。
  10. 根据权利要求6-9任一项所述的方法,其特征在于,所述队列调度装置确定所述第一带宽与第二带宽匹配包括:
    所述队列调度装置确定第二调度频率不小于第三调度频率,所述第二调度频率用于指示所述队列调度装置在单位时间内的实际调度次数,所述第三调度频率根据所述第一调度频率确定。
  11. 一种队列调度装置,其特征在于,所述装置包括:
    获取单元,用于确定第一带宽,所述第一带宽指示出接口的报文出队列的速率;
    处理单元,用于根据所述第一带宽与第一调度频率确定第一调度参数,其中,所述第一调度频率用于指示单位时间内的最大调度次数,所述第一调度参数用于指示每次调度的报文长度;根据所述第一调度参数调度所述出接口的报文排出队列。
  12. 根据权利要求11所述的装置,其特征在于,
    所述处理单元,具体用于确定所述第一带宽与第二带宽匹配,所述第二带宽根据第二调度参数和所述第一调度频率确定,所述第二调度参数为所述队列调度装置在第一时刻每次调度的报文长度,所述第一时刻为所述队列调度装置获取所述第一带宽的时刻。
  13. 根据权利要求12所述的装置,其特征在于,
    所述处理单元,具体用于响应于所述第一带宽小于所述第二带宽,根据所述第一带宽和所述第一调度频率的比值确定所述第一调度参数,所述第一调度参数小于所述第二调度参数。
  14. 根据权利要求13所述的装置,其特征在于,
    所述处理单元,具体用于根据所述第一带宽和所述第一调度频率的比值确定第三调度参数;根据所述第三调度参数,从第一候选调度参数集合中确定所述第一调度参数,所述第一候选调度参数集合包括多个第一候选调度参数,所述第一调度参数为所述第一候选调度参数集合中不小于所述第三调度参数的第一候选调度参数。
  15. 根据权利要求11-14任一项所述的装置,其特征在于,所述第一带宽根据从所述出接口被调度出队的报文长度确定,或,所述第一带宽根据加入第一队列集合的报文长度确定,所述第一队列集合对应所述出接口。
  16. 根据权利要求12所述的装置,其特征在于,
    所述处理单元,具体用于响应于所述第一带宽不小于所述第二带宽,根据所述第二调度参数确定所述第一调度参数,所述第一调度参数大于所述第二调度参数。
  17. 根据权利要求16所述的装置,其特征在于,
    所述处理单元,具体用于根据所述第二调度参数,从第二候选调度参数集合中确定所 述第一调度参数,所述第二候选调度参数集合包括多个第二候选调度参数,所述第一调度参数为所述第二候选调度参数集合中不小于所述第二调度参数的第二候选调度参数。
  18. 根据权利要求16所述的装置,其特征在于,
    所述处理单元,具体用于根据所述第三调度参数和预设步长之和确定所述第一调度参数。
  19. 根据权利要求12所述的装置,其特征在于,所述第一带宽根据加入第一队列集合的报文长度确定,所述第一队列集合对应所述出接口,
    所述处理单元,具体用于响应于所述第一带宽不小于所述第二带宽,根据所述第一带宽和所述第一调度频率的比值确定所述第一调度参数。
  20. 根据权利要求16-19任一项所述的装置,其特征在于,
    所述处理单元,具体用于确定第二调度频率不小于第三调度频率,所述第二调度频率用于指示所述队列调度装置在单位时间内的实际调度次数,所述第三调度频率根据所述第一调度频率确定。
  21. 一种第一设备,其特征在于,所述第一设备包括处理器和存储器,所述存储器用于存储指令或程序代码,所述处理器用于从存储器中调用并运行所述指令或程序代码,以执行如权利要求1-10任一项所述的队列调度的方法。
  22. 一种芯片,其特征在于,包括存储器和处理器,存储器用于存储指令或程序代码,处理器用于从存储器中调用并运行该指令或程序代码,以执行如权利要求1-10任一项所述的队列调度的方法。
  23. 一种计算机可读存储介质,其特征在于,包括指令、程序或代码,当其在计算机上执行时,使得所述计算机执行如权利要求1-10任一项所述的队列调度的方法。
PCT/CN2023/079729 2022-03-16 2023-03-06 一种队列调度的方法及装置 WO2023174081A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210259483.1 2022-03-16
CN202210259483.1A CN116800693A (zh) 2022-03-16 2022-03-16 一种队列调度的方法及装置

Publications (1)

Publication Number Publication Date
WO2023174081A1 true WO2023174081A1 (zh) 2023-09-21

Family

ID=88022386

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/079729 WO2023174081A1 (zh) 2022-03-16 2023-03-06 一种队列调度的方法及装置

Country Status (2)

Country Link
CN (1) CN116800693A (zh)
WO (1) WO2023174081A1 (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1787424A (zh) * 2005-12-21 2006-06-14 中国科学院计算技术研究所 适于带宽变化的链路分层共享和管理域的带宽重分配方法
US7215678B1 (en) * 2000-04-10 2007-05-08 Switchcore, A.B. Method and apparatus for distribution of bandwidth in a switch
CN101378364A (zh) * 2008-09-25 2009-03-04 杭州华三通信技术有限公司 广域网出口调度方法及单元
CN102104545A (zh) * 2011-02-12 2011-06-22 华为技术有限公司 解决小包线速的credit调度方法、调度装置及旁路器
US8467401B1 (en) * 2006-10-04 2013-06-18 Altera Corporation Scheduling variable length packets
CN107846341A (zh) * 2016-09-20 2018-03-27 华为技术有限公司 调度报文的方法、相关装置和系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7215678B1 (en) * 2000-04-10 2007-05-08 Switchcore, A.B. Method and apparatus for distribution of bandwidth in a switch
CN1787424A (zh) * 2005-12-21 2006-06-14 中国科学院计算技术研究所 适于带宽变化的链路分层共享和管理域的带宽重分配方法
US8467401B1 (en) * 2006-10-04 2013-06-18 Altera Corporation Scheduling variable length packets
CN101378364A (zh) * 2008-09-25 2009-03-04 杭州华三通信技术有限公司 广域网出口调度方法及单元
CN102104545A (zh) * 2011-02-12 2011-06-22 华为技术有限公司 解决小包线速的credit调度方法、调度装置及旁路器
CN107846341A (zh) * 2016-09-20 2018-03-27 华为技术有限公司 调度报文的方法、相关装置和系统

Also Published As

Publication number Publication date
CN116800693A (zh) 2023-09-22

Similar Documents

Publication Publication Date Title
US9800513B2 (en) Mapped FIFO buffering
EP2466824B1 (en) Service scheduling method and device
EP2893678B1 (en) Apparatus for transferring packets between interface control modules of line cards
US8310934B2 (en) Method and device for controlling information channel flow
US20060045009A1 (en) Device and method for managing oversubsription in a network
US8588242B1 (en) Deficit round robin scheduling using multiplication factors
JP2009239634A (ja) 到着パケット廃棄決定を行うパケットバッファ管理装置及びその廃棄決定方法
US10505851B1 (en) Transmission burst control in a network device
WO2006063298A1 (en) Techniques to manage flow control
US20140281034A1 (en) System and Method for Compressing Data Associated with a Buffer
WO2019072072A1 (zh) 一种拥塞流识别方法及网络设备
WO2016008399A1 (en) Flow control
CN111181873A (zh) 数据发送方法、装置、存储介质和电子设备
US20080192633A1 (en) Apparatus and method for controlling data flow in communication system
US20130003546A1 (en) System and Method for Achieving Lossless Packet Delivery in Packet Rate Oversubscribed Systems
CN115473855A (zh) 网络系统、数据传输方法
JP2008124967A (ja) イーサoamスイッチ装置
WO2023174081A1 (zh) 一种队列调度的方法及装置
JP4973452B2 (ja) WiMAXスケジューラーの待ち時間カウントを使用した無効データ除去
Ding et al. DAQ: deadline-aware queue scheme for scheduling service flows in data centers
WO2021254475A1 (zh) 一种用于调度队列的方法及装置
WO2023072112A1 (zh) 一种报文调度的方法及装置
US20230171201A1 (en) Method for sending data packet and network device
WO2023116611A1 (zh) 一种队列控制的方法及装置
WO2023193689A1 (zh) 报文传输方法、装置、设备及计算机可读存储介质

Legal Events

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

Ref document number: 23769587

Country of ref document: EP

Kind code of ref document: A1