CN114788243A - Method and device for scheduling messages - Google Patents

Method and device for scheduling messages Download PDF

Info

Publication number
CN114788243A
CN114788243A CN201980102805.8A CN201980102805A CN114788243A CN 114788243 A CN114788243 A CN 114788243A CN 201980102805 A CN201980102805 A CN 201980102805A CN 114788243 A CN114788243 A CN 114788243A
Authority
CN
China
Prior art keywords
congestion control
control protocol
credit
messages
message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201980102805.8A
Other languages
Chinese (zh)
Other versions
CN114788243B (en
Inventor
张海波
袁庭球
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN114788243A publication Critical patent/CN114788243A/en
Application granted granted Critical
Publication of CN114788243B publication Critical patent/CN114788243B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

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

Abstract

The application provides a method and a device for scheduling messages, wherein the method comprises the following steps: receiving a plurality of messages from a sending device, when the plurality of messages comprise an active congestion control protocol credit message and an inactive congestion control protocol data message, determining a virtual credit message corresponding to the inactive congestion control protocol data message, determining a part or all of the active congestion control protocol credit message from the active congestion control protocol credit message according to the available bandwidth of the credit message, the received active congestion control protocol credit message and the received virtual credit message, and forwarding the determined part or all of the active congestion control protocol credit message and the received part or all of the inactive congestion control protocol data message to a destination device. By introducing the virtual credit message, the active congestion control protocol flow can still be effectively controlled when the inactive congestion control protocol flow exists.

Description

Method and device for scheduling messages Technical Field
The present application relates to the field of communications, and in particular, to a method and an apparatus for scheduling packets.
Background
In recent years, the development of transport protocols has presented a trend towards an evolution from passive congestion control to active congestion control. In a passive congestion control mechanism, a sending device regards the network as a black box, and obtains the change information of the network performance through the detection of the network, so as to adjust the transmission data rate to match the capability of the network. Since the passive congestion control mechanism is adjusted according to the change of the network performance, which is the damage of the network, such as time delay increase, packet loss, etc., the passive congestion control mechanism is adjusted on the premise of the damage of the network performance. The active congestion control mechanism is equivalent to a reservation mechanism, the sending equipment reserves bandwidth to the network through the credit message, and the network returns a signal to the sending equipment to control the total amount of data entering the network in advance, so that the cache delay of the network is avoided fundamentally. The active congestion control mechanism therefore does not need to be adjusted on the premise of network performance impairment. Active congestion control mechanisms are an important transition in the development of transport protocols relative to passive congestion control mechanisms.
However, the existing network may have both active congestion control protocol traffic and passive congestion control protocol traffic, so that the active congestion control protocol does not know how much bandwidth to reserve, thereby affecting the implementation of the active congestion control mechanism.
Disclosure of Invention
The application provides a method for scheduling a message, which can realize the control of the flow of an active congestion control protocol under the condition that the flow of the inactive congestion control protocol exists.
In a first aspect, a method for scheduling packets is provided, where the method includes: the method comprises the steps of receiving a plurality of messages from a sending device, determining a virtual credit message corresponding to an inactive congestion control protocol data message when the plurality of messages comprise an active congestion control protocol credit message and an inactive congestion control protocol data message, determining a part of or all active congestion control protocol credit messages from the active congestion control protocol credit messages according to available bandwidth of the credit messages, the received active congestion control protocol credit message and the received virtual credit message, and forwarding the determined part of or all active congestion control protocol credit messages and the received part of or all inactive congestion control protocol data messages to a destination device.
In the technical scheme of the application, by introducing the virtual credit message, when the active congestion control protocol credit message is used for reserving the bandwidth, the influence of the data message of the non-active congestion control protocol can be taken into consideration, so that the flow of the active congestion control protocol can still be effectively controlled under the condition that the flow of the non-active congestion control protocol exists. That is, by introducing the virtual credit message and determining the active congestion control protocol credit message forwarded to the destination device according to the available bandwidth of the credit message, the received active congestion control protocol credit message and the generated virtual credit message, when determining the bandwidth of the active congestion control protocol data message according to the received active congestion control protocol credit message, the virtual credit message can be properly adjusted according to the number of the inactive congestion control protocol data messages existing in the network link, thereby ensuring the effectiveness of the active congestion control mechanism.
It should be noted that the multiple messages may include at least one of the following: the data message of the active congestion control protocol, the credit message of the active congestion control protocol and the data message of the inactive congestion control protocol, and the number of each message may be the same or different.
The data message in the embodiment of the application refers to a message for user data transmission; the credit message in the embodiment of the present application is a message that does not carry data, and is used to represent that a data message reserves or competes for resources, such as bandwidth, used for user data transmission. That is to say, there is a certain corresponding relationship between the credit message and the data message, and the resource allocation to the data message can be realized by scheduling the credit message and other operations using the corresponding relationship.
Optionally, the amount of the credit message is used to determine the resource required by the data message, based on the amount of the credit message, and the amount of the data message (or the resource required by the credit message) is used to determine the resource required by the data message (for example, the bandwidth required to be occupied). For example, assuming that the number ratio of credit messages to data messages is 1:2, each data message needs to occupy a bandwidth of 0.1 kilobits per second (kbps); then, assuming that the number of the credit messages is 50, the number of the data messages represented by the 50 credit messages is 100 (i.e. 50 × 2) according to the above relationship, and further, the bandwidth of 10kbps (i.e. 0.1kbps × 100) is occupied by the 100 data messages according to the above relationship. For another example, assume that the number ratio of credit messages to data messages is 1:2, and the ratio of the bandwidth occupied by each credit message to the bandwidth occupied by each data message is 1: 20; then, assuming that the number of the credit messages is known to be 50 in this example, and the bandwidth that each credit message needs to occupy is 0.001kbps, it can be obtained according to the above relationship that the data message represented by the 50 credit messages needs to occupy 2kbps (i.e. 0.001kbps 50 × 2 × 20) bandwidth; assuming that in this example, it is known that each datagram needs to occupy a bandwidth of 0.05kbps and the number of credit packets is 30, the datagram represented by the 30 credit packets can occupy a bandwidth of 3kbps (i.e. 30 × 2 × 0.05kbps) according to the above relationship.
It should be understood that the above numerical indications are for illustration purposes, and other numerical values, other corresponding relationships, and the like may also be adopted, and are not described herein again.
In the embodiment of the present application, the credit messages include an active congestion control protocol credit message and a virtual credit message described below, where the active congestion control protocol credit message may be used to reserve a bandwidth for an active congestion control protocol data message, and the virtual credit message may be used to compete for a bandwidth for an inactive congestion control protocol data message, where the difference between the active congestion control protocol credit message and the inactive congestion control protocol data message is that the active congestion control protocol credit message exists objectively, and the virtual credit message is an intermediate quantity generated temporarily. The following describes five messages in a unified way by combining an active congestion control protocol and an inactive congestion control protocol.
The active congestion control protocol is a data transmission protocol based on a reservation mechanism, and comprises an active congestion control protocol credit message and an active congestion control protocol data message, wherein the active congestion control protocol data message is used for user data transmission, and the active congestion control protocol credit message is used for reserving the user data transmission for the active congestion control protocol data message. For example, assuming that the ratio of the active congestion control protocol credit packets to the active congestion control protocol data packets is 1:3, the number of the active congestion control protocol credit packets is a (a is a non-negative integer), the occupied bandwidth of each active congestion control protocol credit packet is Bkbps (B is a non-negative real number), the same number of active congestion control protocol credit packets and active congestion control protocol data packets, and the required occupied bandwidth ratio is 1:10, it can be obtained that the bandwidth required to be occupied by the active congestion control protocol data packets represented by the a active congestion control protocol credit packets is (B × a × 3 × 10) kbps.
An inactive congestion control protocol is a data transmission protocol based on other congestion control mechanisms than an active congestion control mechanism (e.g., a reservation mechanism). Inactive congestion control protocols include traditional passive congestion control protocols, as well as other congestion control protocols that are neither active nor passive. The passive congestion control protocol may be, for example, Transmission Control Protocol (TCP), and other congestion control protocols that are neither active congestion control protocol nor passive congestion control protocol may be, for example, User Datagram Protocol (UDP).
The non-active congestion control protocol datagram is a generic term for datagrams that may exist in the non-active congestion control protocol, and includes passive congestion control protocol datagrams (e.g., TCP datagrams) and other congestion control protocol datagrams (e.g., UDP datagrams) that are neither active congestion control protocol datagrams nor passive congestion control protocol datagrams.
In the embodiment of the application, a concept of a virtual credit message is introduced, and the virtual credit message is used for representing resources such as a non-active congestion control protocol data message competition bandwidth. It should be understood that a virtual credit message is distinguished from an objectively existing, e.g., active congestion control protocol credit message in that the virtual credit message is an intermediate quantity, or referred to as a transition quantity, that is temporarily generated to enable a non-active congestion control protocol data message to also participate in contention or allocation of resources, such as bandwidth.
That is to say, the virtual credit packet is not a packet type existing in a network for a guest, but an intermediate quantity introduced for implementing the technical solution of the embodiment of the present application, which may also be referred to as a transition quantity. The virtual credit messages can be used to compete for bandwidth for respective corresponding data messages, along with the active congestion control protocol credit messages.
Similar to the corresponding relationship between the active congestion control protocol credit message and the active congestion control protocol data message, the virtual credit message and the inactive congestion control protocol data message also have a similar corresponding relationship, and the active congestion control protocol credit message and the virtual credit message are scheduled, so that the resource allocation or competition of the bandwidth and the like of the active congestion control protocol data message and the inactive congestion control protocol data message represented by the active congestion control protocol credit message and the virtual credit message can be realized.
It should be understood that the virtual credit message is generated by the forwarding device, and is only scheduled for use within the forwarding device, and is not sent to a network outside the forwarding device.
A virtual credit message may be understood as a form of credit message based on a "reservation system". The "reservation" is the same as the reservation described above in that both the active congestion control protocol credit message and the virtual credit message can represent the required resources (e.g., the required bandwidth) of the respective data message. That is, the resources such as the bandwidth that the active congestion control protocol data packet of the corresponding number needs to occupy can be determined according to the number of the active congestion control protocol credit packets, and the resources such as the bandwidth that the non-active congestion control protocol data packet of the corresponding number needs to occupy can also be determined according to the number of the virtual credit packets. However, the "reservation" is different from the above-mentioned reservation in that the reservation is that the credit message reserves the bandwidth first at the current time, and the transmitting device transmits a corresponding number of data messages according to the reserved bandwidth at the next time. The reservation system can only reserve bandwidth for the next time according to the number of the virtual credit messages at the current time, but the sending equipment at the next time cannot send data messages with corresponding number according to the reserved bandwidth. The reservation system mainly utilizes the characteristic that the flow in the network does not change suddenly to adjust the bandwidth allocated to the data message of the non-active congestion control protocol at the next moment according to the quantity of the data message of the non-active congestion control protocol at the current moment, so the reservation system is equivalent to reserve as much bandwidth as possible for the data message of the non-active congestion control protocol at the next moment according to the condition of the virtual credit message generated at the current moment, but does not influence the link performance in the network as much as possible and does not influence the realization of the active congestion control mechanism.
Alternatively, the message format of the virtual credit message may be the same as that of the active congestion control protocol credit message, except that different information is filled in a specific field thereof, for example, a type field is filled with different information for distinguishing the message type.
In the embodiment of the present application, a method for generating virtual credit packets according to non-active congestion control protocol data packets is provided, where the generated virtual credit packets are only generated in a forwarding device as an intermediate quantity, and are used for performing contention of resources such as bandwidth for corresponding non-active congestion control protocol data packets, so that the virtual credit packets are not really sent to a network other than the forwarding device, and can be discarded when appropriate.
In order to distinguish the message types of the four messages (i.e. the active congestion control protocol credit message, the active congestion control protocol data message, the inactive congestion control protocol data message and the virtual credit message), the four messages can be distinguished by setting a type field and setting different distinguishable values in the type field. Because the data message of the non-active congestion control protocol is in the existing message form, the original message format can not be changed, namely, the type field is not additionally arranged. For example, the field value of the type of the active congestion control protocol credit packet may be set to "1", the field value of the type of the virtual credit packet may be set to "2", the field value of the type of the active congestion control protocol data packet may be set to "3", and the like.
Optionally, the sending device may send one or more messages of the multiple messages based on a service requirement or a fixed ratio. It should be understood that the sending device may be a terminal device, a host, a server, etc. capable of sending a message. It should also be understood that the sending devices sending the messages may be the same or different.
Alternatively, the virtual credit message may be generated using the following generation mechanism.
For example, the corresponding virtual credit message may be generated based on the non-active congestion control protocol data message received at the current time. The generation schemes may be various, and the corresponding virtual credit message may be generated according to a predetermined ratio for the inactive congestion control protocol data message, for example, the inactive congestion control protocol data message and the virtual credit message adopt respective ratios of 1:1, 2:1, 3:1, 2:3, and the like.
For another example, the virtual credit packet of the corresponding rate may also be generated based on the rate statistics of the non-active congestion control protocol traffic at the previous time.
Alternatively, the virtual credit message may be in a small packet, for example, 64 bytes, with the same size as the active congestion control protocol credit message.
The generation mechanism of the virtual credit message is further illustrated below by taking an alternate-in control protocol (SCP) as an example. The SCP is a self-defined transport protocol with congestion control capability, and is a transport control protocol that controls how a sending device (e.g., a source host, a source terminal, etc.) sends data to a destination device (e.g., a destination server, a destination terminal, etc.), similar to the working mode and function of TCP. Assuming that the credit message uses the SCP protocol, the credit message and the data message of the SCP protocol may have a corresponding relationship such as a proportional relationship, for example, various proportional relationships such as 1:2, 4:1, etc., where 1:1 is taken as an example, that is, the ratio of the credit message of the SCP protocol and the data message is 1:1, that is, the sending device triggers sending 1 SCP protocol data message every time it receives 1 SCP protocol credit message. In this case, the virtual credit message also adopts a corresponding generation scheme, that is, the virtual credit message is generated in equal proportion according to the data message of the non-active congestion control protocol, and the proportion is the same as that adopted by the SCP protocol. For example, if the ratio of 1:1 is adopted, when generating a credit message, the forwarding device receives 1 inactive congestion control protocol data message, and will correspondingly generate 1 virtual credit message.
With reference to the first aspect, in some implementations of the first aspect, each piece of information of the virtual credit packet may be obtained by the following method.
Alternatively, the message format of the virtual credit message may be the same as that of the active congestion control protocol credit message, except that different information is filled in a specific field thereof, for example, a type field is filled with different information for distinguishing the message type.
Taking the SCP protocol as an example, the IP header information of the virtual credit message copies the IP header information of the corresponding non-active congestion control protocol data message, where the protocol field in the IP header of the virtual credit message is not copied. The protocol field fills in the protocol number of UDP. The source port number of the UDP head of the virtual credit message fills the protocol port number of the SCP, and the destination port number of the UDP head copies the destination port number of the corresponding non-active congestion control protocol data message. The numerical value filled in the type field of the SCP protocol is different from the numerical value of the type field of the credit message of the active congestion control protocol and the numerical value of the type field of the data message of the active congestion control protocol so as to represent the virtual credit message. The virtual credit message may also be in the same size packet as the active congestion control protocol credit message, for example, 64 bytes.
It should be understood that the information in the IP header, UDP header, SCP header, etc. may not be limited to the virtual credit message, as long as the virtual credit message can be distinguished from the active congestion control protocol credit message.
In the above process of determining the active congestion control protocol credit packet to be forwarded, the active congestion control protocol credit packet that does not meet the requirement may be discarded, or part or all of the virtual credit packet may be discarded.
If the above process is executed by using the QoS scheduling method, all the virtual credit packets may be discarded after the first-level QoS scheduling is completed, all the virtual credit packets may be discarded after the two-level QoS scheduling is completed, and all the virtual credit packets may be discarded before the next round of scheduling.
It should be noted that the virtual credit message may not be limited to information in an IP header, a UDP header, an SCP header, or the like, as long as the virtual credit message can be distinguished from the active congestion control protocol credit message.
It should be understood that the virtual credit message is only valid in the forwarding device that generated the virtual credit message, and is not sent to networks other than the forwarding device.
With reference to the first aspect, in some implementations of the first aspect, in the process of determining the active congestion control protocol credit packet to be forwarded according to the available bandwidth of the credit packet, the received active congestion control protocol credit packet, and the generated virtual credit packet, the two credit packets may be rejected based on a certain preset rule or policy.
Under one condition, the received multiple messages include N active congestion control protocol credit messages and M inactive congestion control protocol data messages, and P virtual credit messages corresponding to the M inactive congestion control protocol data messages are determined, then K active congestion control protocol credit messages are determined from the N active congestion control protocol credit messages according to the available bandwidth of the credit messages, the N active congestion control protocol credit messages and the P virtual credit messages, where K is a positive integer less than or equal to N.
It should be noted that the available bandwidth of the credit message refers to the sum of available bandwidths of all credit messages, or may be understood as the available bandwidth of the sum of all credit messages. In the embodiment of the present application, when the credit message includes only two credit messages, namely, the active congestion control protocol credit message and the virtual credit message, the available bandwidth of the two credit messages is equivalent to that of the two credit messages, or may be understood as the available bandwidth of the sum of the two credit messages (i.e., the hybrid credit message). The current credit message has available bandwidth. Optionally, the available bandwidth of the credit packet may be, for example, a certain proportion of the total bandwidth of the network, for example, 5%, 15%, 25.5%, or may also be a specific bandwidth value, for example, 100 megabits per second (Mbps).
With reference to the first aspect, in some implementations of the first aspect, the available bandwidth of the credit packet may be determined according to a total bandwidth of a network, a corresponding relationship between an active congestion control protocol credit packet and an active congestion control protocol data packet, and a corresponding relationship between a virtual credit packet and an inactive congestion control protocol data packet.
That is, there is a corresponding relationship, for example, a proportional relationship, between the active congestion control protocol credit message and the dynamic congestion control protocol data message, and after the sending device receives the returned active congestion control protocol credit message, a corresponding number of dynamic congestion control protocol data messages may be triggered. Similarly, a similar corresponding relationship, for example, a proportional relationship, also exists between the virtual credit message and the inactive congestion control protocol data message, and it is equivalent to that after the bandwidth is reserved according to a certain number of virtual credit messages, the transmission of a corresponding number of inactive congestion control protocol data messages can be satisfied. It can be understood that, when the number of the active congestion control protocol credit packets and the number of the virtual credit packets are changed, the number of the data packets corresponding to the active congestion control protocol credit packets and the number of the virtual credit packets are also changed according to the corresponding relationship of the data packets and the virtual credit packets.
Optionally, the rate of the sum of the active congestion control protocol credit messages and the virtual credit messages may be limited, for example, the sum of the two may be limited to a fixed ratio x% of the network bandwidth, such as 5%, 10.4%, 16%, etc., where x may be a real number greater than 0 and less than 100. And the bandwidth occupied by the sum of the two is limited according to the network bandwidth, so that the total amount of the data messages represented by the two does not exceed the network bandwidth.
In the embodiment of the present application, a hybrid credit message is defined, which is used to indicate the hybrid sum of the two credit messages. In this case, the rate of the hybrid credit message may be limited to a fixed proportion x% of the link bandwidth, e.g., 5%, 10.4%, 16%, etc., where x may be a real number greater than 0 and less than 100.
For example, assume that the mapping relationship between the active congestion control protocol credit message and the active congestion control protocol data message is 1:1, and the ratio of the bandwidth occupied by the two messages corresponding to the quantity mapping relationship is 1: 9. That is, when the ratio of the two is 1:1, the ratio of the two occupied bandwidths is 1: 9. Similarly, the corresponding relation of the virtual credit message and the data message of the non-active congestion control protocol is assumed to be 1: 1; the ratio of the occupied bandwidth is also 1: 9. Assuming that only the two credit messages exist in the network, 10% of the total network bandwidth may be allocated to the credit message, and 90% of the total network bandwidth may be allocated to the data message, that is, in this example, the available bandwidth of the credit message is 10% of the total network bandwidth.
Alternatively, the following method of discarding more credit packets may be adopted to determine the active congestion control protocol credit packet to be forwarded.
Step one, comparing the quantity of two credit messages;
step two, comparing the bandwidth required to be occupied by the sum of the two credit messages with the available bandwidth of the credit message, determining to forward all the received active congestion control protocol credit messages when the bandwidth required to be occupied by the two credit messages does not exceed the available bandwidth of the credit message, and executing step three when the bandwidth required to be occupied by the two credit messages is greater than the available bandwidth of the credit message, and discarding the exceeded part;
and step three, when the bandwidth occupied by the credit message and the credit message is larger than the available bandwidth of the credit message, discarding part of the credit message with a large quantity judged in the step one. For example, when it is determined in step one that there are many active congestion control protocol credit messages, part of the active congestion control protocol credit messages are discarded to ensure that the bandwidth required to be occupied by the sum of the remaining active congestion control protocol credit messages and the virtual credit messages does not exceed the available bandwidth of the credit message, that is, the remaining active congestion control protocol credit messages are determined to be forwarded. Similarly, when it is determined in step one that there are more virtual credit messages, part of the virtual credit messages are discarded.
It should be noted that, since it is only necessary to determine the active congestion control protocol credit packet to be forwarded, and the virtual credit packet does not need to be sent out, in step three, when the bandwidth that both need to occupy is greater than the available bandwidth of the credit packet, and it is determined in step one that the number of the virtual credit packets is large, it is not necessary to discard the active congestion control protocol credit packet in step three, so that it can be directly determined that all the active congestion control protocol credit packets that need to be forwarded are all the same, and all the virtual credit packets can be discarded.
Alternatively, it may be configured to reserve only a certain percentage of the virtual credit packets, for example, 60% each time, that is, after generating corresponding virtual credit packets according to the received inactive congestion control protocol data packet, only 60% of the virtual credit packets are reserved each time, and then all the remaining bandwidth except the bandwidth that needs to be occupied by the 60% of the virtual credit packets in the available bandwidth of the credit packets is allocated to the active congestion control protocol credit packet.
Optionally, weights of the two credit messages may be set, and the two credit messages are rejected according to the available bandwidth of the credit message and the respective weights of the two credit messages to determine the active congestion control protocol credit message to be forwarded.
Optionally, in this example, two messages may be chosen for several different situations.
In case one, when the bandwidth occupied by the sum of two credit messages does not exceed the available bandwidth of the credit message, no credit message is discarded.
And in the second situation, when the bandwidth required to be occupied by the sum of the two credit messages exceeds the available bandwidth of the credit message, discarding the part of the two credit messages exceeding the weight to ensure that the bandwidth required to be occupied by the sum of the two credit messages does not exceed the available bandwidth of the credit message.
Optionally, the weights of the active congestion control protocol credit message and the virtual credit message may be set according to the flow planned by the network. For example, if the active congestion control protocol traffic ratio is 50%, and the inactive congestion control protocol traffic ratio is 50%, the weight of the active congestion control protocol credit packet and the virtual credit packet may be set to 1: 1.
Assuming that in one case, the received multiple messages include N active congestion control protocol credit messages and M inactive congestion control protocol data messages, and P virtual credit messages corresponding to the M inactive congestion control protocol data messages are determined, K active congestion control protocol credit messages may be determined from the N active congestion control protocol credit messages according to the available bandwidth of the credit messages, the weights of the active congestion control protocol credit messages and the virtual credit messages, where K is a positive integer less than or equal to N.
With reference to the first aspect, in some implementation manners of the first aspect, when determining an active congestion control protocol credit packet to be forwarded, the active congestion control protocol credit packet may be scheduled by a quality of service (QoS) class, and the determination may be performed according to a scheduling result.
For example, in the process of determining K active congestion control protocol credit messages from the N active congestion control protocol credit messages according to the available bandwidth of the credit messages, the weight of the active congestion control protocol credit messages, and the weight of the virtual credit messages, the determination may be implemented by primary QoS scheduling.
Optionally, a Weighted Fair Queue (WFQ) scheduling policy may be used for the one-level QoS scheduling.
When the WFQ scheduling policy is used to perform the first-level QoS scheduling on the active congestion control credit protocol packets (e.g., the N active congestion control protocol credit packets) and the virtual credit packets (e.g., the P virtual credit packets), the active congestion control protocol credit packets and the virtual credit packets may be allocated with bandwidths according to the weights, and a fair competition between the two credit packets is achieved.
For example, assuming that the weight assignment set by the two credit messages is 1:1, and the available bandwidth of the credit message is 200Mbps, when only the two credit messages exist, the two credit messages can be respectively assigned to a bandwidth of 100 Mbps. For the sake of simplicity, the actual bandwidth of the active congestion control protocol credit packets (for example, the bandwidth that needs to be occupied by the active congestion control protocol credit packets received at time T0) is represented by B1, and the actual bandwidth of the virtual credit packets (for example, the bandwidth that needs to be occupied by the virtual credit packets generated according to the inactive congestion control protocol credit packets received at time T0) is represented by B2, then in the WFQ scheduling process, there may be the following cases:
when B1< > is 100Mbps and B2< > is 100Mbps, the allocated bandwidths of the two are not changed.
When B1>100Mbps and B2<100Mbps, B1 is increased, B2 remains unchanged, wherein B1 can be increased to 200Mbps-B2 at maximum; that is, the actual bandwidth of the virtual credit message is unchanged, but the remaining bandwidth of the virtual credit message may be allocated to the active congestion control protocol credit message.
When B1<100Mbps and B2>100Mbps, B2 is increased, B1 remains unchanged, wherein B2 can be increased to 200Mbps-B1 at most; that is, the actual bandwidth of the active congestion control protocol credit packet is unchanged, but the remaining bandwidth of the active congestion control protocol credit packet may be allocated to the virtual credit packet.
When B1>100Mbps and B2>100Mbps, both can only be allocated 100Mbps bandwidth.
Through the fair competition of the two credit messages, the active congestion control protocol credit message and the virtual credit message are comprehensively considered when the bandwidth of the active congestion control protocol data message at the next moment is determined, that is, the active congestion control protocol credit message and the virtual credit message can be properly adjusted according to the number of the inactive congestion control protocol data messages existing in the network, so that when the sending equipment triggers and sends the corresponding active congestion control protocol data message according to the returned active congestion control protocol credit message, the actually available bandwidth of the active congestion control protocol data message in the network cannot be exceeded. The WFQ scheduling enables the active congestion control protocol flow to be effectively controlled under the condition that the inactive congestion control protocol flow exists, and the bandwidth can be fairly contended between the active congestion control protocol data message and the inactive congestion control protocol data message.
With reference to the first aspect, in some implementation manners of the first aspect, after determining the active congestion control protocol credit packet to be forwarded, the forwarding order of different packets may be set, and the different packets may be forwarded according to the forwarding order.
Alternatively, it may be directly configured to forward the active congestion control protocol credit packet first and then forward the inactive congestion control protocol data packet. It is assumed that, in one case, the received multiple messages include N active congestion control protocol credit messages and M inactive congestion control protocol data messages, and K active congestion control protocol credit messages to be forwarded are determined. The K active congestion control protocol credit messages may be forwarded first, and then part or all of the M inactive congestion control protocol data messages may be forwarded using the remaining bandwidth. That is, the K active congestion control protocol credit packets are forwarded first, and then part or all of the M inactive congestion control protocol credit packets are forwarded as much as possible according to the remaining bandwidth.
It should be noted that, since the K active congestion control protocol credit packets are allocated according to the available bandwidth of the credit packet, there is no situation where the K active congestion control protocol credit packets occupy the available bandwidth of the data packet, and therefore, under the above situation, the M inactive congestion control protocol data packets can be forwarded as much as possible by using the available bandwidth of all the data packets.
It should also be understood that, in some cases, the bandwidth required for forwarding the M inactive congestion control protocol data packets exceeds the available bandwidth of the data packets, and at this time, part of the inactive congestion control protocol data packets may be discarded, but the bandwidth occupied by the virtual credit packets in the available bandwidth of the original credit packets may also be converted to be allocated to the M inactive congestion control protocol data packets according to the need.
For another example, it may also be directly configured to forward the non-active congestion control protocol data packet first and then forward the active congestion control protocol credit packet. In this case, the M non-active congestion control protocol data packets may be forwarded as much as possible using the available bandwidth of all data packets, and then the K active congestion control protocol credit packets may be forwarded. Further, the bandwidth occupied by the original virtual credit message is reused to forward the data message of the non-active congestion control protocol.
For another example, the method may further include alternately forwarding the K active congestion control protocol credit packets and the M inactive congestion control protocol data packets.
It should be noted that the credit packet is a packet that does not carry data, and the number of the credit packets to be forwarded is determined according to the available bandwidth of the credit packet, so that the K active congestion control protocol credit packets to be forwarded do not exceed the available bandwidth of the credit packet, while the received inactive congestion control protocol data packet is a packet that carries data, and the required bandwidth may exceed the available bandwidth of the data packet.
With reference to the first aspect, in some implementations of the first aspect, in the determining the forwarding order, the forwarding order may be determined according to a priority by setting the priority.
Alternatively, the priority of the active congestion control protocol credit message may be set higher than the priority of the inactive congestion control protocol data message. And setting to forward a message with high priority first, then forwarding the active congestion control protocol credit message first, and then forwarding part or all of the inactive congestion control protocol data message according to the rest bandwidth.
Optionally, the process of forwarding each packet according to the forwarding order may be implemented by using a Priority Queue (PQ) scheduling policy.
Alternatively, the hybrid credit message may be set to have a higher priority than the non-proactive congestion control protocol data message. It should be noted that, instead of the hybrid credit message, an active congestion control protocol credit message may be used, in which case, the active congestion control protocol credit message may be set to have a higher priority than the inactive congestion control protocol data message.
By adopting a PQ scheduling mode, the delay sensitive key service can be put into a high priority queue, and the non-key service can be put into a low priority queue, thereby ensuring that the key service is transmitted preferentially. Therefore, in the process of the PQ scheduling, the active congestion control protocol credit message in the hybrid credit message is preferentially forwarded out, so as to ensure bandwidth reservation of the active congestion control protocol data message at the next moment.
In the process of scheduling the PQ, scheduling the hybrid credit messages is equivalent to informing the sending equipment of the number of active congestion control protocol data messages which can be received by the forwarding equipment at the next moment, so that the sending equipment can accurately acquire the bandwidth reserved by the active congestion control protocol and judge the bandwidth which can be reserved for the subsequent moment at the next moment; in addition, the available bandwidth at the next moment is reserved for the data message of the inactive congestion control protocol, so that the data message of the inactive congestion control protocol and the data message of the active congestion control protocol can share the bandwidth.
And when only the data message of the non-active congestion control protocol and the credit message of the active congestion control protocol are received, executing the steps of generating the virtual credit message and the like, preferentially scheduling the mixed credit message in the PQ scheduling process, and when the next highest priority queue where the mixed credit message is located has no data packet, scheduling the data message of the non-active congestion control protocol. At this time, there is no data packet of the active congestion control protocol.
With reference to the first aspect, in some implementations of the first aspect, assuming that in another case, the received multiple messages further include an active congestion control protocol data message, the forwarding order of the three messages may be set, and each message may be forwarded according to the forwarding order, or the forwarding order may be set according to a priority, and a PQ scheduling policy may be used for scheduling.
It should be noted that, because the active congestion control mechanism is a reservation mechanism, that is, in this case, the received active congestion control protocol data packet is triggered and forwarded based on the bandwidth reserved by the active congestion control protocol credit packet at the previous time, the bandwidth occupied by the received active congestion control protocol data packet does not exceed the reserved bandwidth, and thus the available bandwidth of the data packet is not exceeded.
Assuming that a plurality of messages received at a certain time include N active congestion control protocol credit messages, M inactive congestion control protocol data messages, and Q active congestion control protocol data messages, and the method determines K active congestion control protocol credit messages to be forwarded, the K active congestion control protocol credit messages do not exceed the available bandwidth of the credit messages, and therefore, the bandwidth occupied by the sum of the Q active congestion control protocol data messages and the K active congestion control protocol credit messages does not exceed the total bandwidth of the network under the condition. Therefore, the M inactive congestion control protocol data packets can be forwarded as much as possible using the remaining bandwidth.
Optionally, when forwarding the packets according to the priority, the Q active congestion control protocol data packets, the K active congestion control protocol credit packets, and part or all of the M inactive congestion control protocol data packets may be forwarded to the destination device according to an order of a highest priority of the active congestion control protocol data packets, a second priority of the active congestion control protocol credit packets, and a lowest priority of the inactive congestion control protocol data packets, where Q is an integer greater than or equal to 1.
Under the condition, the active congestion control protocol data message can be preferentially forwarded, the low-delay effect of the active congestion control protocol is ensured, on the premise, the forwarding of the active congestion control protocol credit message and the forwarding of the inactive congestion control protocol data message for reserving the bandwidth at the next moment can be considered, and the utilization rate of the bandwidth is improved.
It should also be understood that when there are no active congestion control protocol credits (e.g., the N active congestion control protocol credits described above), then in the second level of QoS scheduling, only the active congestion control protocol data packets of the high priority queue (e.g., the Q active congestion control protocol data packets described above) and the inactive congestion control protocol data packets of the low priority queue (e.g., the M inactive congestion control protocol data packets described above) may be scheduled.
In the scheduling process, the received various messages are scheduled, and on the premise of ensuring the prior transmission of the active congestion control protocol data message, the inactive congestion protocol data message can also utilize the bandwidth obtained by competition to carry out data transmission, thereby not only meeting the low delay requirement of active congestion control, but also ensuring that the inactive congestion control protocol data message can compete with the active congestion control protocol data message and share the bandwidth. In addition, the second-level QoS scheduling can also be realized, when the received data message of the non-active congestion protocol exceeds the reserved bandwidth at the previous moment, the data message can be discarded through the scheduling, and the transmission performance of a network link is ensured.
It should be noted that other situations exist in the scheduling process of scheduling packets.
For example, when only the data packet of the inactive congestion control protocol is received, the bandwidth at the next time may still be reserved for the inactive congestion control protocol and the data packet of the inactive congestion control protocol may be forwarded by the above-described method, for example, by using two-level QoS scheduling. In this case, in WFQ scheduling, since the active congestion control protocol credit packet with reserved bandwidth is not received, the remaining bandwidth of the active congestion control protocol credit packet can be allocated to the virtual credit packet instead, and the bandwidth reserved for the inactive congestion control protocol data packet is increased at the next time. In the PQ scheduling, there are data packets in the next highest priority queue where only the hybrid credit message is located and in the low priority queue where the inactive congestion control protocol data message is located, and there are only virtual credit messages in the hybrid credit message, so the hybrid credit message in the next highest priority queue is scheduled first, and then the inactive congestion control protocol data message is scheduled.
For another example, when only the active congestion control protocol credit message is received, the bandwidth at the next time may also be allocated to the active congestion control protocol by the above-described method, for example, by two-level QoS scheduling. In this case, in WFQ scheduling, since the unsolicited congestion control protocol data packet is not received, it can be considered that the unsolicited congestion control is temporarily not needed, and the remaining bandwidth of the virtual credit packet can be allocated to the active congestion control protocol credit packet instead, and at the next moment, the active congestion control protocol data packet can use a larger bandwidth. In the PQ scheduling, only the data packet is in the next highest priority queue where the hybrid credit message is located, and only the active congestion control protocol credit message is in the hybrid credit message, so that only the hybrid credit message in the next highest priority queue needs to be scheduled.
For another example, when only the active congestion control protocol data packet is received, the active congestion control protocol data packet may also be forwarded by the above-mentioned method, for example, by two-level QoS scheduling. In this case, in the WFQ scheduling, since the inactive congestion control protocol data packet and the active congestion control protocol credit packet are not received, it is not necessary to generate a virtual credit packet, and therefore, the WFQ scheduling may not be performed. In the PQ scheduling, only the high priority queue where the active congestion control protocol data packet is located is equivalent to having a data packet, so that only the active congestion control protocol data packet needs to be scheduled. This may occur when there is no non-active congestion control protocol traffic in the network at the previous time (when sending active congestion control protocol credit messages for reserving bandwidth) and at the current time. Or may occur in networks where there is no unsolicited congestion control protocol traffic.
With reference to the first aspect, in some implementations of the first aspect, part or all of the virtual credit packets may be discarded when appropriate, so as to release resources such as a storage space occupied by the virtual credit packets. For example, all the virtual credit packets may be discarded after determining the active congestion control protocol credit packet to be forwarded, before, after, or during the forwarding of the packets according to the forwarding order, after all the steps are performed, or before the next round of incoming packets is received.
In a second aspect, the present application provides an apparatus for scheduling packets, where the apparatus includes a communication unit and a processing unit, where the communication unit is configured to receive a plurality of packets from a sending device, where the plurality of packets include an active congestion control protocol credit packet and an inactive congestion control protocol data packet; the processing unit is used for determining a virtual credit message corresponding to the data message of the non-active congestion control protocol, and determining part or all of active congestion control protocol credit messages from the active congestion control protocol credit messages according to the available bandwidth of the credit messages, the received active congestion control protocol credit messages and the received virtual credit messages; the processing unit is further configured to forward part or all of the determined active congestion control protocol credit message and part or all of the received inactive congestion control protocol data message to the destination device.
In the technical scheme of the application, by introducing the virtual credit message, when the active congestion control protocol credit message is used for reserving the bandwidth, the influence of the data message of the non-active congestion control protocol can be considered, so that the flow of the active congestion control protocol can still be effectively controlled under the condition that the flow of the non-active congestion control protocol exists. That is, by introducing the virtual credit message and determining the active congestion control protocol credit message forwarded to the destination device according to the available bandwidth of the credit message, the received active congestion control protocol credit message and the generated virtual credit message, when determining the bandwidth of the active congestion control protocol data message according to the received active congestion control protocol credit message, the virtual credit message can be properly adjusted according to the number of the inactive congestion control protocol data messages existing in the network link, thereby ensuring the effectiveness of the active congestion control mechanism.
It should be noted that the multiple messages may include at least one of the following: the data message of the active congestion control protocol, the credit message of the active congestion control protocol and the data message of the inactive congestion control protocol, and the number of each message may be the same or different.
With reference to the second aspect, in some implementations of the second aspect, each piece of information of the virtual credit packet may be obtained by the processing unit by using the same method as the first aspect.
Alternatively, the message format of the virtual credit message may be the same as that of the active congestion control protocol credit message, except that different information is filled in a specific field thereof, for example, a type field is filled with different information for distinguishing the message type.
Taking the SCP protocol as an example, the IP header information of the virtual credit message copies the IP header information of the corresponding non-active congestion control protocol data message, wherein the protocol field in the IP header of the virtual credit message is not copied. The protocol field fills in the protocol number of UDP. And filling the protocol port number of the SCP by the source port number of the UDP head of the virtual credit message, and copying the corresponding destination port number of the data message of the non-active congestion control protocol by the destination port number of the UDP head. The numerical value filled in the type field of the SCP protocol is different from the numerical value of the type field of the credit message of the active congestion control protocol and the numerical value of the type field of the data message of the active congestion control protocol so as to represent the virtual credit message. The virtual credit message may also use a packet with the same size as the active congestion control protocol credit message, for example, 64 bytes.
It should be understood that the information in the IP header, UDP header, SCP header, etc. may not be limited to the virtual credit message, as long as the virtual credit message can be distinguished from the active congestion control protocol credit message.
In the process of determining the active congestion control protocol credit packet to be forwarded by the processing unit, the processing unit may discard the active congestion control protocol credit packet that does not meet the requirement, or may discard part or all of the virtual credit packets.
If the above process is executed by using the QoS scheduling method, the processing unit may also discard all the virtual credit packets after the first-level QoS scheduling is completed, may also discard all the virtual credit packets after the two-level QoS scheduling is completed, and may also discard all the virtual credit packets before the next round of scheduling.
It should be understood that the virtual credit message is only valid in the forwarding device that generated the virtual credit message and is not sent to a network other than the forwarding device.
With reference to the second aspect, in some implementations of the second aspect, in the process that the processing unit determines the active congestion control protocol credit packet to be forwarded according to the available bandwidth of the credit packet, the received active congestion control protocol credit packet, and the generated virtual credit packet, the processing unit may accept or reject two credit packets based on a certain preset rule or policy.
Assuming that, in one case, the plurality of messages received by the communication unit include N active congestion control protocol credit messages and M inactive congestion control protocol data messages, and the processing unit determines P virtual credit messages corresponding to the M inactive congestion control protocol data messages, the processing unit may determine K active congestion control protocol credit messages from the N active congestion control protocol credit messages according to the available bandwidth of the credit messages, the N active congestion control protocol credit messages, and the P virtual credit messages, where K is a positive integer less than or equal to N.
Optionally, the processing unit may be configured to execute the correlation method provided in the first aspect to accept or reject two credit messages. For brevity, some relevant content will not be repeated.
With reference to the second aspect, in some implementations of the second aspect, the available bandwidth of the credit message may be determined by the processing unit according to a total bandwidth of the network, a corresponding relationship between an active congestion control protocol credit message and an active congestion control protocol data message, and a corresponding relationship between a virtual credit message and a non-active congestion control protocol data message.
With reference to the second aspect, in some implementation manners of the second aspect, when the processing unit is used to determine the active congestion control protocol credit packet to be forwarded, the active congestion control protocol credit packet may be scheduled by a quality of service (QoS) class, and the determination may be performed according to a scheduling result.
For example, in the process that the processing unit determines K active congestion control protocol credit messages from the N active congestion control protocol credit messages according to the available bandwidth of the credit messages, the weight of the active congestion control protocol credit messages, and the weight of the virtual credit messages, the first-level QoS scheduling may be implemented.
Alternatively, the processing unit may use a Weighted Fair Queue (WFQ) scheduling policy to perform the one-level QoS scheduling.
When performing primary QoS scheduling on the active congestion control credit protocol packets (e.g., the N active congestion control protocol credit packets) and the virtual credit packets (e.g., the P virtual credit packets) by using the WFQ scheduling policy, the processing unit may perform bandwidth allocation on the active congestion control protocol credit packets and the virtual credit packets according to the weight, and implement fair competition between the two credit packets.
With reference to the second aspect, in some implementations of the second aspect, after determining, by the processing unit, the active congestion control protocol credit packet to be forwarded, the processing unit may further be configured to set a forwarding order of different packets, and the communication unit forwards the different packets according to the forwarding order.
Alternatively, the processing unit may be configured to forward the active congestion control protocol credit packet before forwarding the inactive congestion control protocol data packet. It is assumed that, in one case, the plurality of messages received by the communication unit includes N active congestion control protocol credit messages and M inactive congestion control protocol data messages, and the processing unit determines K active congestion control protocol credit messages to be forwarded. The communication unit may forward the K active congestion control protocol credit packets first and then forward part or all of the M inactive congestion control protocol data packets using the remaining bandwidth. That is, the communication unit forwards the K active congestion control protocol credit packets first, and then forwards part or all of the M inactive congestion control protocol credit packets as much as possible according to the remaining bandwidth.
It should be noted that, since the K active congestion control protocol credit packets are allocated by the processing unit according to the available bandwidth of the credit packet, there is no situation that the K active congestion control protocol credit packets occupy the available bandwidth of the data packet, and therefore, in the above situation, the communication unit may forward the M inactive congestion control protocol data packets as much as possible by using the available bandwidth of all the data packets.
It should also be understood that, in some cases, the bandwidth required for forwarding the M inactive congestion control protocol data packets exceeds the available bandwidth of the data packets, and at this time, the communication unit may discard some inactive congestion control protocol data packets, but the processing unit may also convert the bandwidth occupied by the virtual credit packets in the available bandwidth of the original credit packets to be allocated to the M inactive congestion control protocol data packets according to the requirement.
For another example, the processing unit may further be configured to forward the non-active congestion control protocol data packet first and then forward the active congestion control protocol credit packet. In this case, the communication unit may forward the M non-active congestion control protocol data packets as much as possible using all available bandwidths for the data packets, and then forward the K active congestion control protocol credit packets. Furthermore, the communication unit can also forward the non-active congestion control protocol data message by using the bandwidth occupied by the original virtual credit message.
For another example, the processing unit may further set to alternately forward the K active congestion control protocol credit packets and the M inactive congestion control protocol data packets, and the communication unit may alternately forward the K active congestion control protocol credit packets and the M inactive congestion control protocol data packets according to the setting.
With reference to the second aspect, in some implementations of the second aspect, in the process that the processing unit determines the forwarding order, the processing unit may further determine the forwarding order according to a priority by setting the priority.
Alternatively, the processing unit may set the priority of the active congestion control protocol credit message to be higher than the priority of the inactive congestion control protocol data message. And setting to forward a message with high priority first, the communication unit forwards the active congestion control protocol credit message preferentially, and then forwards part or all of the inactive congestion control protocol data message according to the rest bandwidth.
Optionally, the processing unit may implement the process of forwarding each packet according to the forwarding order by using a Priority Queue (PQ) scheduling policy.
Alternatively, the processing unit may set the hybrid credit message to have a higher priority than the non-proactive congestion control protocol data message. It should be noted that, instead of the hybrid credit message, an active congestion control protocol credit message may be used, in which case, the processing unit may set the priority of the active congestion control protocol credit message to be higher than that of the inactive congestion control protocol data message.
In the process of scheduling the PQ, scheduling the hybrid credit messages is equivalent to informing the sending equipment of the number of active congestion control protocol data messages which can be received by the forwarding equipment at the next moment, so that the sending equipment can accurately acquire the bandwidth reserved by the active congestion control protocol and judge the bandwidth which can be reserved for the subsequent moment at the next moment; in addition, the available bandwidth at the next moment is reserved for the data message of the non-active congestion control protocol, so that the data message of the non-active congestion control protocol and the data message of the active congestion control protocol can share the bandwidth.
And when only the data message of the non-active congestion control protocol and the credit message of the active congestion control protocol are received, executing the steps of generating the virtual credit message and the like, preferentially scheduling the mixed credit message in the PQ scheduling process, and then scheduling the data message of the non-active congestion control protocol when the next high priority queue where the mixed credit message is located has no data packet. At this time, there is no data packet of the active congestion control protocol.
With reference to the second aspect, in some implementation manners of the second aspect, assuming that in another case, the multiple messages received by the communication unit further include an active congestion control protocol data message, the processing unit may also set a forwarding order of the three messages, the communication unit may forward each message according to the forwarding order, the processing unit may also set the forwarding order according to the priority, and the processing unit may also perform scheduling by using a PQ scheduling policy.
It should be noted that, because the active congestion control mechanism is a reservation mechanism, that is, in this case, the active congestion control protocol data packet received by the communication unit is triggered and forwarded based on the bandwidth reserved by the active congestion control protocol credit packet at the previous time, the bandwidth occupied by the active congestion control protocol data packet received by the communication unit does not exceed the reserved bandwidth, and thus the available bandwidth of the data packet is not exceeded.
Assuming that a plurality of messages received by a communication unit at a certain time include N active congestion control protocol credit messages, M inactive congestion control protocol data messages, and Q active congestion control protocol data messages, and a processing unit determines K active congestion control protocol credit messages to be forwarded by using the method described above, the K active congestion control protocol credit messages do not exceed the available bandwidth of the credit messages, and therefore, the bandwidth occupied by the sum of the Q active congestion control protocol data messages and the K active congestion control protocol credit messages does not exceed the total network bandwidth in this case. Therefore, the communication unit can forward the M inactive congestion control protocol data packets as much as possible with the remaining bandwidth.
Optionally, when the communication unit forwards the packets according to the priority, the priority order set by the processing unit determines a forwarding order, and the communication unit forwards each packet according to the forwarding order determined by the processing unit. For example, if the processing unit sets a forwarding order according to the highest priority of the active congestion control protocol data packets, the second priority of the active congestion control protocol credit packets, and the lowest priority of the inactive congestion control protocol data packets to be sent from high to low, the communication unit may forward Q active congestion control protocol data packets, K active congestion control protocol credit packets, and part or all of the M inactive congestion control protocol data packets to the destination device according to the forwarding order, where Q is an integer greater than or equal to 1.
Under the condition, the active congestion control protocol data message can be preferentially forwarded, the low delay effect of the active congestion control protocol is ensured, on the premise, the forwarding of the active congestion control protocol credit message and the forwarding of the non-active congestion control protocol data message for reserving the bandwidth at the next moment can be considered, and the utilization rate of the bandwidth is improved.
It should be noted that other situations also exist in the scheduling process of the scheduling packet, for example, the communication unit only receives the inactive congestion control protocol data packet, the communication unit only receives the active congestion control protocol data packet, and the like, related contents are given in the first aspect, the receiving and forwarding operations are performed by the communication unit, and other operations are performed by the processing unit, which is not described herein again.
With reference to the second aspect, in some implementations of the second aspect, the processing unit may further discard part or all of the virtual credit packet when appropriate, so as to release resources such as a storage space occupied by the processing unit. For example, the processing unit may discard all virtual credit packets after determining the active congestion control protocol credit packet to be forwarded, may discard all virtual credit packets before, after, or during the forwarding of the packets according to the forwarding order, may discard all virtual credit packets after all the steps have been performed, and may discard all virtual credit packets after all the steps have been performed and before the next round of incoming packets is received.
In a third aspect, the present application provides a forwarding device comprising one or more processors, one or more memories, and one or more transceivers. Wherein the one or more memories are configured to store a computer program, and the one or more processors are configured to invoke and execute the computer program stored in the memories, and control the one or more transceivers to transceive signals, so as to cause the forwarding device to perform the method of the first aspect or any possible implementation manner thereof.
In a fourth aspect, the present application provides a computer-readable storage medium having stored thereon computer instructions which, when executed on a computer, cause the computer to perform the method of the first aspect or any possible implementation thereof.
In a fifth aspect, the present application provides a computer program product comprising computer program code which, when run on a computer, causes the computer to perform the method of the first aspect or any possible implementation thereof.
In a sixth aspect, the present application provides an apparatus for scheduling packets, including a processor and an interface circuit, where the interface circuit is configured to receive computer code or instructions and transmit the computer code or instructions to the processor, and the processor is configured to execute the computer code or instructions to perform the method in the first aspect or any possible implementation manner thereof.
In a seventh aspect, the present application provides a chip comprising one or more processors. The one or more processors are configured to execute the computer program stored in the memory to perform the method of the first aspect or any possible implementation thereof. Wherein the memory for storing the computer program is provided independently of the chip.
Further, the chip may also include one or more communication interfaces. The one or more communication interfaces may be input/output interfaces, input/output circuits, etc. Further, the chip may further include one or more of the memories.
In an eighth aspect, the present application provides a communication system comprising at least one forwarding device, at least one sending device, and at least one destination device. In the communication system, the at least one forwarding device may be capable of executing the method in the first aspect or any possible implementation manner thereof, and the at least one sending device and the at least one destination device may be any devices capable of sending and/or receiving packets. It should be understood that the sending device and the destination device may be the same device or may be different kinds of devices.
Optionally, the at least one forwarding device may also be the forwarding device in the third aspect, and may also be a device including the apparatus for scheduling packets in the second aspect.
Drawings
FIG. 1 is a schematic diagram of a network scenario to which embodiments of the present application are applicable;
fig. 2 is a schematic flowchart of a method for scheduling packets according to an embodiment of the present application;
fig. 3 is a schematic diagram of a method for scheduling a packet at time T0 according to an embodiment of the present application;
fig. 4 is a schematic diagram of a method for primary QoS scheduling at time T0 according to an embodiment of the present application;
fig. 5 is a schematic diagram of a method for two-level QoS scheduling at time T0 according to an embodiment of the present application;
fig. 6 is a schematic diagram of a method for scheduling a packet at time T1 according to an embodiment of the present application;
fig. 7 is a schematic diagram of a method for two-level QoS scheduling at time T1 according to an embodiment of the present application;
fig. 8 is a schematic block diagram of an apparatus for scheduling packets according to an embodiment of the present application;
fig. 9 is a schematic structural diagram of a forwarding device provided in an embodiment of the present application.
Detailed Description
The technical solution in the present application will be described below with reference to the accompanying drawings.
In order to facilitate understanding for those skilled in the art, a part of terms in the present application will be explained below.
1. Transmission Control Protocol (TCP)
TCP is a connection-oriented, reliable, byte-stream-based transport-layer communication protocol defined by the Internet Engineering Task Force (IETF) protocol request comments (RFC) 793. In the simplified computer network Open System Interconnection (OSI) model, it performs the functions specified by the fourth layer transport layer; in the internet protocol suite (TCP), the TCP layer is an intermediate layer located above an Internet Protocol (IP) layer and below an application layer. The application layer sends a data stream represented in 8-bit bytes to the TCP layer for internetwork transmission, and TCP then partitions the data stream into segments of appropriate length, the partitioning of which is typically limited by the Maximum Transmission Unit (MTU) of the data link layer of the network to which the computer is connected. The TCP then passes the resulting packet to the IP layer which passes the packet through the network to the TCP layer of the message destination device. TCP gives each packet a sequence number in order to ensure that no packet is lost, and the sequence number also ensures in-sequence reception of packets transmitted to the message destination device. Then the message destination device sends back a corresponding Acknowledgement (ACK) to the successfully received packet; if the sending device does not receive an acknowledgement within a reasonable round-trip time (RTT), the corresponding packet is assumed to be lost and will be retransmitted. TCP uses a checksum function to check whether the data has errors; the checksum is calculated both at the time of transmission and at the time of reception. In congestion control, the TCP protocol corresponds to a passive congestion control protocol, and is one of the data transmission protocols in the inactive congestion control protocol in the embodiment of the present application.
2. User Datagram Protocol (UDP)
UDP is used in networks to process packets as TCP, and is a connectionless protocol. In the OSI model, the functions specified for the fourth layer transport layer are also performed, at a layer above the IP protocol. UDP has the disadvantage of not providing packet packetization, assembly and ordering, i.e. after a message is sent, it is not known whether it arrives safely and completely. The main role of the UDP protocol is to compress network data traffic into packets. A typical data packet is a transmission unit of binary data. The first 8 bytes of each packet are used to contain header information and the remaining bytes are used to contain the particular transmitted data. The UDP packet has no reliability guarantee, sequence guarantee, flow control field, and the like, and has poor reliability. However, because the UDP protocol has fewer control options, the delay is small during data transmission, the data transmission efficiency is high, and the UDP protocol is suitable for an application program with low reliability requirement or an application program capable of ensuring reliability. In congestion control, the UDP protocol is neither an active congestion control protocol nor a passive congestion control protocol, is another congestion control protocol other than the above two congestion control protocols, and is one of the inactive congestion control protocols in this embodiment of the present application.
3. Alternate control protocol (SCP)
The SCP is a self-defined transport protocol with congestion control capability, and similar to the working mode and function of the TCP, is a transport control protocol that controls how a sending device (e.g., a source host) sends data to a destination device (e.g., a destination host). The SCP protocol is one of a plurality of active congestion control mechanisms, in the protocol working mechanism, credit messages and data messages need to be distinguished, the credit messages are sent before the data messages, and the credit messages are used for reserving network bandwidth for the data messages; a device in the middle of the network (for example, a forwarding device in the embodiment of the present application) may identify a credit packet, rate-limit the credit packet according to the link bandwidth capability of the device itself, and discard the credit packet exceeding the rate limit; the credit message reaches a destination device (e.g., a destination host) after passing through the device in the middle of the network, the destination device returns the credit message to the sending device, and the sending device triggers a data message of a corresponding relationship (e.g., a proportional relationship) to send to the destination device after receiving the credit message. Because the data volume of the sent data message is strictly controlled according to the bandwidth limitation of the forwarding equipment, data exceeding the network bandwidth cannot be sent to the network, and network congestion cannot be caused, so that the extra cache time delay caused by network packet loss and network cache is avoided, and a congestion control transmission protocol without packet loss and with ultralow time delay is realized. In the congestion control, the SCP protocol corresponds to an active congestion control protocol in the congestion control, and is an example of the active congestion control protocol according to the embodiment of the present application.
4. Congestion control mechanism
Congestion control mechanisms include passive congestion control mechanisms and active congestion control mechanisms.
In the passive congestion control mechanism, a sending device obtains the change information of the network performance by detecting the network, so as to adjust the message sending rate according to the congestion degree of the network, typically, TCP Reno and the like. In the passive congestion control mechanism, for example, the TCP protocol may be adopted as the passive congestion control protocol.
The TCP Reno congestion control is a passive congestion control mechanism with a wide application range, and is mainly divided into four stages of slow start, congestion avoidance, fast retransmission and fast recovery. In the TCP Reno congestion control mechanism, in order to maintain dynamic balance, a certain amount of loss must be periodically generated, and it takes a long time to recover due to the window reduction caused by the loss of one data packet, so that the bandwidth utilization rate cannot be high, and as the link bandwidth of the network is continuously increased, the disadvantage is more and more obvious.
In the active congestion control mechanism, a sending device reserves bandwidth to a network through a credit message, and the network returns a signal to the sending device to control the total amount of data sent to the network by the sending device, the sending time and the like, so that the cache delay of the network is fundamentally avoided. The SCP protocol may be employed, for example, as an active congestion control protocol.
In addition, there are other data transmission protocols in the congestion control process that do not belong to either the passive congestion control protocol or the active congestion control protocol, such as the UDP protocol described above, and these congestion control protocols other than the active congestion control protocol are collectively referred to as the inactive congestion control protocol.
5. Evaluation index of congestion control
(1) Throughput (throughput), the amount of data successfully transmitted per unit time, can be measured in units of bits, bytes, packets, and the like.
(2) The packet loss rate, the proportion of the lost data packet in the network transmission process. When a network link becomes congested, routers create buffers to accumulate packets. If the congestion time is too long, the limited capacity of the buffer is exhausted, at which time some packets are discarded.
(3) Jitter, the degree of variation in delay in the network. If the network is congested, queuing delay will affect end-to-end delay and cause different packet delays transmitted through the same connection, and jitter is used to describe the degree of such delay variation.
(4) The response time, Round Trip Time (RTT), is the total elapsed time from when the sending device sends the transmission data to when the sending device receives the acknowledgement from the destination device (the destination device sends the acknowledgement immediately after receiving the data).
(5) Latency, also known as delay, refers to the time required for data (packets, bits, etc.) to travel from one end of a network (or link) to the other. The time delay further includes a transmission time delay, a propagation time delay, a processing time delay, and a queuing time delay, and the sum of these time delays is referred to as a total time delay, that is, the total time delay is the transmission time delay + the propagation time delay + the processing time delay + the queuing time delay. The transmission delay refers to the time for the transmission device (host or router) to transmit a data frame, the propagation delay refers to the time required for the electromagnetic wave to propagate for a certain distance in the channel, the processing delay refers to the time required for the destination device (host or router) to perform processing such as analyzing, extracting data, error checking, routing selection and the like when receiving a packet (data packet), and the queuing delay refers to the time for the packet (data packet) to wait for processing in a buffer of the destination device.
(6) Fairness and fairness method
When congestion occurs in the network, resource competition inevitably occurs, flows with strong competition capability will obtain more network resources, and flows with poor competition capability will be obviously inefficient. Network congestion can lead to unfairness, and unfairness in network resource allocation can aggravate the congestion condition of the network and even cause network breakdown. Therefore, when controlling network congestion, fairness needs to be considered, so that the allocation of network resources is relatively fair.
6. Congestion management
Congestion management refers to a flow control mechanism for satisfying the high QoS service of the delay sensitive service by adjusting the scheduling order of the packets when congestion occurs intermittently in the network and the delay sensitive service requires a higher quality of service (QoS) than other services.
7. Quality of service (QoS) scheduling
In a network, in order to ensure certain QoS indexes such as packet loss rate, delay, jitter, and the like, multiple aspects of technical cooperation such as congestion control, congestion avoidance, queuing scheduling, and the like need to be performed, where a scheduling policy is a very important part of network QoS management, and application of different scheduling policies may generate different qualities of service. The QoS scheduling policies commonly used include priority scheduling (PQ) scheduling, Weighted Round Robin (WRR) scheduling, Fair Queue (FQ) scheduling, and Weighted Fair Queue (WFQ) scheduling, and different scheduling policies may be used in combination.
The technical scheme of the embodiment of the application can be applied to various communication systems, for example: long Term Evolution (LTE) system, LTE Frequency Division Duplex (FDD) system, LTE Time Division Duplex (TDD), Universal Mobile Telecommunications System (UMTS), Worldwide Interoperability for Microwave Access (WiMAX) communication system, fifth generation (5G) mobile communication system, new radio access technology (NR), future communication system, and the like.
The technical scheme provided by the application can also be applied to Machine Type Communication (MTC), Long Term Evolution-machine (LTE-M) for inter-machine communication, device-to-device (D2D) network, machine-to-machine (M2M) network, internet of things (IoT) network, smart home (smart home) network, other networks, and the like.
In the embodiment of the present application, the forwarding device may be any device having a transceiving function. The device may be, for example, a router, a switch, a base station, etc. Such devices include, but are not limited to: evolved Node B (eNB), Radio Network Controller (RNC), Node B (NB), Base Station Controller (BSC), base transceiver station (base transceiver station, BTS), home base station (e.g., home evolved Node B, or home Node B, HNB), baseband unit (BBU), wireless fidelity (WiFi) system, Access Point (AP), wireless relay Node, wireless backhaul Node, Transmission Point (TP), or Transmission Reception Point (TRP), etc., and may also be 5G, such as NR, gNB in the system, or transmission point (TRP or TP), one or a group of base stations in the 5G system (including multiple antenna panels, or panels) may also constitute a network Node or a network Node, such as a baseband unit (BBU), or a Distributed Unit (DU), or a base station in a next generation communication 6G system, etc.
In this embodiment, the sending device and the destination device may be terminal devices, network devices, or other devices that may be capable of receiving and/or sending messages. The network device may be, for example, a host, a server, or the like. The terminal device may be a mobile phone (mobile phone), a tablet computer (pad), a computer with wireless transceiving function, a Virtual Reality (VR) terminal device, an Augmented Reality (AR) terminal device, a wireless terminal in industrial control (industrial control), a wireless terminal in self driving (self driving), a wireless terminal in telemedicine (remote medical), a wireless terminal in smart grid, a wireless terminal in transportation security (transportation security), a wireless terminal in smart city (smart city), a wireless terminal in home (smart home), a cellular phone, a cordless phone, a session initiation protocol (session initiation protocol, SIP) phone, a wireless local loop (PDA, PDA l) station, a personal digital assistant (personal digital assistant), a WLL) device with wireless transceiving function, a wireless communication device connected to other computing device, or other handheld communication device with wireless communication function, A vehicle-mounted device, a wearable device, a terminal device in a 5G network, a terminal device in a Public Land Mobile Network (PLMN) for future evolution, or a terminal device in a non-public network, etc.
Wherein, wearable equipment also can be called as wearing formula smart machine, is the general term of using wearing formula technique to carry out intelligent design, developing the equipment that can dress to daily wearing, like glasses, gloves, wrist-watch, dress and shoes etc.. A wearable device is a portable device that is worn directly on the body or integrated into the clothing or accessories of the user. The wearable device is not only a hardware device, but also realizes powerful functions through software support, data interaction and cloud interaction. The generalized wearable smart device has full functions and large size, and can realize complete or partial functions without depending on a smart phone, for example: smart watches or smart glasses and the like, and only focus on a certain type of application functions, and need to be used in cooperation with other devices such as smart phones, such as various smart bracelets for physical sign monitoring, smart jewelry and the like.
Furthermore, the terminal device may also be a terminal device in an Internet of things (IoT) system. The IoT is an important component of future information technology development, and is mainly technically characterized in that articles are connected with a network through a communication technology, so that an intelligent network with man-machine interconnection and object interconnection is realized.
Fig. 1 is a schematic diagram of a network scenario to which the embodiment of the present application is applied. As shown in fig. 1, at least one sending device 110, at least one forwarding device 120, and at least one destination device 130 are present in the network scenario. The sending device 110 and the destination device 130 may be the terminal device, the network device, or a device capable of sending and/or receiving the packet as described above, and the forwarding device 120 may be a switch, a router, a base station, or the like as described above. In this network scenario, the sending device 110 can send a message to the destination device 130 via the forwarding device 120.
It should be understood that fig. 1 is only an example of a scenario in which the method and/or apparatus of the embodiments of the present application can be applied, and there is no limitation, and in the network scenario shown in fig. 1, there is no limitation on the number of devices and the connection and/or communication manner between the devices.
It should also be understood that in the network scenario shown in fig. 1, the network formed between the devices may be a wired network or a wireless network.
For example, assuming that fig. 1 corresponds to a Data Center Network (DCN) scenario, the sending device 110 may correspond to a sending-end server, the forwarding device 120 may correspond to a Leaf Switch (LS) or Spine Switch (SS) switch device, and the destination device 130 may correspond to a receiving-end or destination-end server. That is, when the sending end server communicates with the target end server, the data stream or the message sent by the sending end server may reach the target end server through different switches.
For another example, assuming that fig. 1 corresponds to a smart home network scenario, the sending device 110 and the destination device 130 may both correspond to various terminal devices such as a mobile phone, a smart television, a smart speaker, and a tablet computer, and the forwarding device 120 may be a device such as a router. For example, a smart speaker may be utilized to turn on a smart tv through voice control, and then the smart speaker may be used as the sending device 110, the smart tv may be used as the destination device 130, and when the smart speaker sends a data stream or a message to the smart tv, the data stream or the message arrives at the smart tv from the smart speaker via the router.
For another example, the network scenario shown in fig. 1 may also correspond to various network scenarios such as a Wide Area Network (WAN), which are not listed here.
Assuming that only the active congestion control protocol traffic exists in the network scenario shown in fig. 1, a specific implementation manner of the active congestion control mechanism may be that the sending device 110 sends an active congestion control protocol credit message to the destination device 130 through the forwarding device 120 to reserve a bandwidth, the forwarding device 120 receives the credit message and forwards part or all of the credit message to the destination device 130 through an egress port thereof, the destination device 130 returns to the sending device 110 according to the received active congestion control protocol credit message, and the sending device 110 triggers to send a corresponding active congestion control protocol data message according to the received returned active congestion control protocol credit message. In the active congestion control mechanism, the sending device 110 first reserves a bandwidth by using an active congestion control protocol credit message, and then sends a corresponding data message according to the reserved bandwidth.
Assuming that there is also inactive congestion control protocol traffic, such as passive congestion control protocol traffic (e.g., TCP traffic) or other congestion control protocol traffic (e.g., UDP traffic), in the network scenario, there is no way to determine how much bandwidth should be allocated to the active congestion control protocol data packet when reserving bandwidth for the active congestion control protocol data packet using the active congestion control protocol credit packet. The method provided by the embodiment of the application can enable the active congestion control mechanism to still realize the control of the active congestion control protocol flow even under the condition that the inactive congestion control protocol flow exists.
It should be noted that the inactive congestion control protocol traffic refers to traffic other than the active congestion control protocol traffic, and includes conventional passive congestion control protocol traffic (e.g., TCP traffic) and other protocol traffic (e.g., UDP traffic) that is neither active congestion control protocol traffic nor passive congestion control protocol traffic. It should also be appreciated that since the inactive congestion control mechanism is premised on network performance impairment, the inactive congestion control protocol may also be referred to as a lossy transport protocol. The active congestion control mechanism does not need to be premised on network performance impairment, and therefore the active congestion control protocol may also be referred to as a lossless transport protocol.
For the convenience of understanding the embodiment of the present application, first, five message types are described.
First, data messages and credit messages are introduced.
The data message refers to a message for user data transmission. A credit packet refers to a packet that does not carry data, and is used to reserve or compete for resources, such as bandwidth, for user data transmission on behalf of the data packet. That is, there is a certain correspondence between the credit packet and the data packet, and the resource allocation to the data packet can be implemented by scheduling the credit packet and other operations using the correspondence.
Optionally, the amount of the credit message is used to determine the resource required by the data message, based on the amount of the credit message, by using the amount correspondence between the credit message and the data message, and the amount of the data message (or the resource required by the credit message) and the resource required by the data message (for example, the bandwidth required to be occupied). For example, assuming that the number ratio of credit messages to data messages is 1:2, each data message needs to occupy a bandwidth of 0.1 kilobits per second (kbps); then, assuming that the number of the credit messages is 50, the number of the data messages represented by the 50 credit messages is 100 (i.e. 50 × 2) according to the above relationship, and further, the bandwidth of 10kbps (i.e. 0.1kbps × 100) is occupied by the 100 data messages according to the above relationship. For another example, assume that the number ratio of credit messages to data messages is 1:2, and the ratio of the bandwidth occupied by each credit message to the bandwidth occupied by each data message is 1: 20; then, assuming that the number of the credit messages is known to be 50 in this example, and the bandwidth that each credit message needs to occupy is 0.001kbps, it can be obtained according to the above relationship that the data message represented by the 50 credit messages needs to occupy 2kbps (i.e. 0.001kbps 50 × 2 × 20) bandwidth; assuming that in this example, it is known that each datagram needs to occupy a bandwidth of 0.05kbps and the number of credit packets is 30, the datagram represented by the 30 credit packets can occupy a bandwidth of 3kbps (i.e. 30 × 2 × 0.05kbps) according to the above relationship.
It should be understood that the above numerical indications are for illustration purposes, and other numerical values, other corresponding relationships, and the like may also be adopted, and are not described herein again.
In the embodiment of the present application, the credit messages include an active congestion control protocol credit message and a virtual credit message described below, where the active congestion control protocol credit message may be used to reserve a bandwidth for an active congestion control protocol data message, and the virtual credit message may be used to compete for a bandwidth for an inactive congestion control protocol data message, where the difference between the active congestion control protocol credit message and the inactive congestion control protocol data message is that the active congestion control protocol credit message exists objectively, and the virtual credit message is an intermediate quantity generated temporarily. The following describes the five messages in a unified way by combining the active congestion control protocol and the inactive congestion control protocol.
The active congestion control protocol is a data transmission protocol based on a reservation mechanism, and comprises an active congestion control protocol credit message and an active congestion control protocol data message, wherein the active congestion control protocol data message is used for user data transmission, and the active congestion control protocol credit message is used for reserving the user data transmission for the active congestion control protocol data message. For example, assuming that the ratio of the active congestion control protocol credit packets to the active congestion control protocol data packets is 1:3, the number of the active congestion control protocol credit packets is a (a is a non-negative integer), the occupied bandwidth of each active congestion control protocol credit packet is Bkbps (B is a non-negative real number), the same number of active congestion control protocol credit packets and active congestion control protocol data packets, and the required occupied bandwidth ratio is 1:10, it can be obtained that the bandwidth required to be occupied by the active congestion control protocol data packets represented by the a active congestion control protocol credit packets is (B × a × 3 × 10) kbps.
The non-active congestion control protocol is a data transmission protocol based on other congestion control mechanisms than the active congestion control mechanism (reservation mechanism). Inactive congestion control protocols include traditional passive congestion control protocols, as well as other congestion control protocols that are neither active nor passive. The passive congestion control protocol may be, for example, Transmission Control Protocol (TCP), and other congestion control protocols that are neither active congestion control protocol nor passive congestion control protocol may be, for example, User Datagram Protocol (UDP).
The non-active congestion control protocol datagram is a generic term for datagrams that may exist in the non-active congestion control protocol, and includes passive congestion control protocol datagrams (e.g., TCP datagrams) and other congestion control protocol datagrams (e.g., UDP datagrams) that are neither active congestion control protocol datagrams nor passive congestion control protocol datagrams.
In the embodiment of the application, a concept of a virtual credit message is also introduced, and the virtual credit message is used for representing resources such as a non-active congestion control protocol data message competition bandwidth. It should be understood that the virtual credit messages are distinguished from objectively existing, e.g., active congestion control protocol credit messages in that the virtual credit messages are intermediate quantities, or transient quantities, that are temporarily generated to enable non-active congestion control protocol data messages to also participate in contention or allocation of resources, such as bandwidth.
In order to distinguish the message types of the four messages (i.e. the active congestion control protocol credit message, the active congestion control protocol data message, the inactive congestion control protocol data message and the virtual credit message), the message types can be distinguished by setting a type field and setting different distinguishable values in the type field. Because the data message of the non-active congestion control protocol is in the existing message form, the original message format can not be changed, namely, the type field is not additionally arranged. For other three messages, the type field may be set, and the three messages are distinguished by setting different values of the type field, for example, the field value of the type field of the active congestion control protocol credit message may be set to "1", the field value of the type field of the virtual credit message may be set to "2", and the field value of the type field of the active congestion control protocol data message may be set to "3".
The meanings, uses, and the like of the five messages are described below.
(1) Active congestion control protocol credit messages
The active congestion control protocol credit message is a credit message used for reserving a bandwidth for an active congestion control protocol data message and triggering transmission of the active congestion control protocol data message. As can be seen from the above description, the proactive congestion control protocol credit message is a message that does not carry data, and can be filled into a packet message, for example, a packet with 64 to 84 bytes.
As can be seen from the above description, in the active congestion control mechanism, at the current time, the sending device first sends an active congestion control protocol credit packet to reserve an available bandwidth of an active congestion control protocol data packet to be sent at the next time, and then the sending device triggers to send a corresponding number of active congestion control protocol data packets according to the number of the returned active congestion control protocol credit packets (the returned active congestion control protocol credit packets correspond to the available bandwidth reserved at the current time). For example, assuming that 50 active congestion control protocol credit messages are sent by the sending device at the current time, the forwarding device forwards 40 active congestion control protocol credit messages of the 50 active congestion control protocol credit messages to the target device according to the current network conditions, the available bandwidth of the 40 active congestion control protocol credit messages corresponding to the active congestion control protocol data messages is 10kbps, the target device returns the 40 active congestion control protocol credit messages to the sending device through the forwarding device, the sending device receives the returned 40 active congestion control protocol credit messages, and at the next moment, the sending equipment sends a corresponding number of data messages of the active congestion control protocol according to the received 40 returned credit messages of the active congestion control protocol, the bandwidth that this corresponding number of active congestion control protocol data packets needs to occupy corresponds to the above-mentioned 10 kbps.
In the network, the forwarding device may limit the speed according to the speed limit configuration of the active congestion control protocol credit packet, and discard the active congestion control protocol credit packet exceeding the speed limit, for example, limiting the speed of the active congestion control protocol credit packet to 10% of the bandwidth of the specific port. And scheduling according to a QoS scheduling strategy, and discarding the active congestion control protocol credit message which does not meet the strategy.
(2) Active congestion control protocol data messages
The data message of the active congestion control protocol is a data message used for user data transmission and is triggered and sent by the credit message of the active congestion control protocol.
That is, there is a correspondence between the active congestion control protocol data packet and the active congestion control protocol credit packet, and the correspondence may be a proportional relationship, for example. Then the active congestion control protocol credit message can trigger a corresponding amount of active congestion control protocol data messages according to the proportional relation.
(3) Virtual credit message
The virtual credit message is a temporarily generated credit message used for representing that the non-active congestion control protocol data message participates in resource competition or allocation such as bandwidth, and is a concept introduced for realizing the technical scheme of the embodiment of the application. That is to say, the virtual credit packet is not a packet type existing in a network for a guest, but an intermediate quantity introduced for implementing the technical solution of the embodiment of the present application, which may also be referred to as a transition quantity. The virtual credit messages can be used to compete for bandwidth for respective corresponding data messages, along with the active congestion control protocol credit messages.
Similar to the corresponding relationship between the active congestion control protocol credit message and the active congestion control protocol data message, the virtual credit message and the inactive congestion control protocol data message have similar corresponding relationship, and the active congestion control protocol credit message and the virtual credit message are scheduled, so that the resource allocation or competition of the bandwidth and the like of the active congestion control protocol data message and the inactive congestion control protocol data message represented by the active congestion control protocol credit message and the virtual credit message can be realized.
It should be understood that the virtual credit message is generated by the forwarding device, and is only scheduled for use within the forwarding device, and is not sent to a network outside the forwarding device.
A virtual credit message may be understood as a form of credit message based on a "reservation system". The "reservation" is the same as the reservation described above in that both the active congestion control protocol credit message and the virtual credit message can represent the required resources (e.g., the required bandwidth) of the respective data message. That is to say, the corresponding number of resources, such as bandwidth, required to be occupied by the active congestion control protocol data packets can be determined according to the number of the active congestion control protocol credit packets, and the corresponding number of resources, such as bandwidth, required to be occupied by the inactive congestion control protocol data packets can also be determined according to the number of the virtual credit packets. However, the "reservation system" is different from the above-mentioned reservation system in that the reservation system is that the credit message reserves the bandwidth first at the current time, and the transmitting device transmits a corresponding amount of data messages according to the reserved bandwidth at the next time. The reservation system can only reserve bandwidth for the next time according to the number of the virtual credit messages at the current time, but the sending equipment at the next time cannot send data messages with corresponding number according to the reserved bandwidth. The reservation system mainly utilizes the characteristic that the flow in the network does not change suddenly to adjust the bandwidth allocated to the data message of the non-active congestion control protocol at the next moment according to the quantity of the data message of the non-active congestion control protocol at the current moment, so the reservation system is equivalent to reserve as much bandwidth as possible for the data message of the non-active congestion control protocol at the next moment according to the condition of the virtual credit message generated at the current moment, but does not influence the link performance in the network as much as possible and does not influence the realization of the active congestion control mechanism.
Alternatively, the message format of the virtual credit message may be the same as that of the active congestion control protocol credit message, except that different information is filled in a specific field thereof, for example, different information is filled in a type field for distinguishing message types.
Taking the SCP protocol as an example, the IP header information of the virtual credit message copies the IP header information of the corresponding non-active congestion control protocol data message, wherein the protocol field in the IP header of the virtual credit message is not copied. The protocol field fills in the protocol number of UDP. The source port number of the UDP head of the virtual credit message fills the protocol port number of the SCP, and the destination port number of the UDP head copies the destination port number of the corresponding non-active congestion control protocol data message. The numerical value filled in the type field of the SCP protocol is different from the numerical value of the type field of the credit message of the active congestion control protocol and the numerical value of the type field of the data message of the active congestion control protocol so as to represent the virtual credit message. The virtual credit message may also be in the same size packet as the active congestion control protocol credit message, for example, 64 bytes.
It should be understood that the virtual credit message may not be limited to information in an IP header, UDP header, SCP header, etc., as long as the virtual credit message can be distinguished from the active congestion control protocol credit message.
In the embodiment of the present application, a method for generating virtual credit packets according to an inactive congestion control protocol data packet is provided, where the generated virtual credit packets are only generated in a forwarding device as an intermediate quantity, and are used for performing contention of resources such as bandwidth for the corresponding inactive congestion control protocol data packet, and the virtual credit packets are not really sent to a network other than the forwarding device and can be discarded when appropriate.
(4) Hybrid credit message
The hybrid credit message is a hybrid sum of an active congestion control protocol credit message and a virtual credit message. That is, the hybrid credit message is not a single, new message type, but is merely used to indicate a hybrid of the two credit messages. It is for convenience of description when it is only necessary to express the processing performed on the whole of the sum of both, and it is not necessary to distinguish the specific processing of both.
(5) Non-active congestion control protocol data packet
The non-active congestion control protocol data packet is a generic name of all data packets except the active congestion control protocol data packet, and is also used for user data transmission. The inactive congestion control protocol data message comprises traditional transmission protocol messages such as a TCP message and a UDP message. Since the TCP message includes control signaling and data associated with TCP, and UDP is completely a data message, all of them can be referred to as data message.
The TCP packet and the UDP packet are general packet forms of a conventional transmission protocol, and thus may adopt the same packet format as the corresponding conventional transmission protocol packet, which is not described herein again.
An inactive congestion control protocol data packet is sent from a sending device (source end) to a destination device (destination end), and an intermediate forwarding device (e.g., a switch or a router) forwards the packet to the destination device. When the two-stage QoS scheduling policy is adopted, in the forwarding process, in the port exit direction of the intermediate forwarding device, scheduling is performed according to the two-stage QoS scheduling policy, and an inactive congestion control protocol data packet that does not satisfy the policy may be discarded according to the scheduling policy.
In the embodiment of the application, the available bandwidth of the inactive congestion control protocol data packet and the active congestion control protocol data packet at the next time is allocated by using the corresponding relationship between the virtual credit packet and the inactive congestion control protocol data packet and the corresponding relationship between the active congestion control protocol credit packet and the active congestion control protocol data packet and scheduling the virtual credit packet and the active congestion control protocol credit packet. For example, the QoS scheduling policy is adopted to schedule the two credit messages, so as to determine the number of active congestion control protocol credit messages that can be forwarded by the forwarding device at the current time, where the forwarded active congestion control protocol credit messages represent available bandwidths of active congestion control protocol data messages at the next time. In the embodiment of the present application, a forwarding order of forwarding devices when forwarding various types of messages is also provided. This section mainly introduces five message types and message formats related to the embodiments of the present application, and specific use cases of various messages in related methods will be referred to below, and will not be described herein.
When performing QoS scheduling, virtual credit packets that do not satisfy the scheduling policy may be discarded, and after completing scheduling of the virtual credit packets and the active congestion control protocol credit packets, all virtual credit packets may be discarded.
Fig. 2 is a schematic flowchart of a method for scheduling a packet according to an embodiment of the present application. The method is described below with reference to fig. 2.
201. A plurality of messages from a sending device are received.
It should be noted that the multiple messages may include at least one of the following: the data message of the active congestion control protocol, the credit message of the active congestion control protocol and the data message of the inactive congestion control protocol, and the number of each message may be the same or different.
It is assumed that in one case, the plurality of messages includes N active congestion control protocol credit messages and M inactive congestion control protocol data messages, wherein M, N is an integer greater than or equal to 1. The N active congestion control protocol credit messages are used to reserve bandwidth for the active congestion control protocol data message at the next time.
Optionally, the sending device may send one or more of the plurality of messages based on a service requirement or a fixed ratio. It should be understood that the sending device may be a terminal device, a host, a server, etc. capable of sending messages. It should also be understood that the sending devices sending the messages may be the same or different.
202. And determining a virtual credit message corresponding to the data message of the non-active congestion control protocol.
Assuming that the plurality of messages received in step 201 includes M inactive congestion control protocol data messages, P virtual credit messages corresponding to the M inactive congestion control protocol data messages may be determined, where M, P are integers greater than or equal to 1.
It should be noted that the virtual credit packet is only valid in the forwarding device that generates the virtual credit packet, and is not sent to a network other than the forwarding device.
Alternatively, the virtual credit message may be generated using the following generation mechanism.
For example, the corresponding virtual credit message may be generated based on the non-proactive congestion control protocol data message received at the current time. The generation schemes may be various, and the corresponding virtual credit message may be generated according to a predetermined ratio for the inactive congestion control protocol data message per message, for example, the inactive congestion control protocol data message and the virtual credit message adopt respective ratios of 1:1, 2:1, 3:1, 2:3, and the like.
For another example, the virtual credit packet of the corresponding rate may also be generated based on the rate statistics of the non-active congestion control protocol traffic at the previous time.
Alternatively, the virtual credit message may use a small packet, e.g., 64 bytes, of the same size as the active congestion control protocol credit message.
The following takes the SCP protocol as an example to further illustrate the generation mechanism of the virtual credit message.
If the credit message uses a user-defined SCP protocol, the credit message may have a proportional relationship with the data message of the SCP protocol, where 1:1 is taken as an example, that is, the ratio of the credit message of the SCP protocol to the data message is 1:1, that is, each time the sending device receives 1 SCP protocol credit message, the sending device triggers sending 1 SCP protocol data message. In this case, the virtual credit message also adopts a corresponding generation scheme, i.e. the virtual credit message is generated in equal proportion according to the data message of the non-active congestion control protocol, and the proportion is the same as that adopted by the SCP protocol. For example, if a ratio of 1:1 is adopted, when generating a credit message, the forwarding device receives 1 inactive congestion control protocol data message, and generates 1 virtual credit message correspondingly.
Alternatively, the information in the virtual credit message may be obtained using the following method.
Optionally, the virtual credit message may adopt a message format the same as that of the SCP protocol, and the IP header information of the virtual credit message copies the IP header information of the corresponding non-active congestion control protocol data message, where the protocol field is not copied. The protocol field fills in the UDP protocol code number. The source port number of the UDP head fills in the SCP port number, and the destination port number of the UDP head copies the destination port number of the corresponding TCP or UDP of the non-active congestion control protocol. Filling a type value different from the active congestion control protocol credit message and the active congestion control protocol data message in a type field of the SCP protocol to represent the virtual credit message. The virtual credit message also uses a packet, for example 64 bytes, with the same size as the active congestion control protocol credit message.
It should be understood that the virtual credit message may not be limited to information in an IP header, UDP header, SCP header, etc., as long as the virtual credit message can be distinguished from the active congestion control protocol credit message. It should also be understood that the virtual credit message is only valid within the forwarding device that generated the virtual credit message and is not sent to networks other than the forwarding device.
203. Determining an active congestion control protocol credit message to be forwarded.
Alternatively, the active congestion control protocol credit packet to be forwarded may be determined according to the available bandwidth of the credit packet, the received active congestion control protocol credit packet, and the generated virtual credit packet, for example, two credit packets may be chosen based on a certain preset rule or policy.
Assuming that, in one case, the plurality of messages received in step 201 includes N active congestion control protocol credit messages and M inactive congestion control protocol data messages, and P virtual credit messages corresponding to the M inactive congestion control protocol data messages are determined in step 202, then K active congestion control protocol credit messages may be determined from the N active congestion control protocol credit messages in step 203 according to the available bandwidth of the credit messages, the N active congestion control protocol credit messages and the P virtual credit messages, where K is a positive integer less than or equal to N.
It should be noted that the available bandwidth of the credit message refers to the sum of available bandwidths of all credit messages, or may be understood as the available bandwidth of the sum of all credit messages. In the embodiment of the present application, when the credit message includes only two credit messages, namely, the active congestion control protocol credit message and the virtual credit message, the available bandwidth of the two credit messages is equivalent to that of the two credit messages, or may be understood as the available bandwidth of the sum of the two credit messages (i.e., the hybrid credit message). The current credit message has available bandwidth. Optionally, the available bandwidth of the credit packet may be, for example, a certain proportion of the total bandwidth of the network, for example, 5%, 15%, 25.5%, or may also be a specific bandwidth value, for example, 100 megabits per second (Mbps).
Optionally, the available bandwidth of the credit packet may be determined according to a total bandwidth of the network, a correspondence between the credit packet of the active congestion control protocol and the data packet of the active congestion control protocol, and a correspondence between the virtual credit packet and the data packet of the inactive congestion control protocol.
According to the above description, it can be known that there is a corresponding relationship, for example, a proportional relationship, between the active congestion control protocol credit packet and the mobile congestion control protocol data packet, and when the sending device receives the returned active congestion control protocol credit packet, a corresponding number of mobile congestion control protocol data packets may be triggered. Similarly, a similar corresponding relationship, for example, a proportional relationship, also exists between the virtual credit message and the inactive congestion control protocol data message, and it is equivalent to that after the bandwidth is reserved according to a certain number of virtual credit messages, the transmission of a corresponding number of inactive congestion control protocol data messages can be satisfied. It can be understood that, when the number of the active congestion control protocol credit packets and the number of the virtual credit packets are changed, the number of the data packets corresponding to the active congestion control protocol credit packets and the number of the virtual credit packets are also changed according to the corresponding relationship.
Optionally, the rate of the sum of the active congestion control protocol credit message and the virtual credit message may be limited, for example, the sum of the two may be limited to a fixed ratio x% of the network bandwidth, for example, each ratio of 5%, 15%, 25.5%, and the like, where x may be a real number greater than 0 and less than 100. And the bandwidth occupied by the sum of the two is limited according to the network bandwidth, so that the total amount of the data messages represented by the two does not exceed the network bandwidth. In the embodiment of the present application, a hybrid credit message is defined, which is used to indicate the hybrid sum of the two credit messages. In this case, the rate of the hybrid credit message may be limited to a fixed ratio x% of the link bandwidth, for example, each ratio of 5%, 15%, 25.5%, etc., where x may be a real number greater than 0 and less than 100.
For example, assume that the mapping relationship between the active congestion control protocol credit message and the active congestion control protocol data message is 1:1, and the ratio of the bandwidth occupied by the active congestion control protocol credit message and the active congestion control protocol data message corresponding to the mapping relationship is 1: 9. That is, when the ratio of the two is 1:1, the ratio of the occupied bandwidth is 1: 9. Similarly, the corresponding relation of the virtual credit message and the data message of the non-active congestion control protocol is assumed to be 1: 1; the ratio of the occupied bandwidth is also 1: 9. Assuming that only the two credit messages exist in the network, 10% of the total bandwidth of the network may be allocated to the credit message, and 90% of the total bandwidth of the network may be allocated to the data message, that is, in this example, the total bandwidth of the network with 10% of the available bandwidth of the credit message may be set, and the total bandwidth of the network with 90% of the available bandwidth of the data message may be set.
For further example, it is assumed that, according to the correspondence between the two credit messages and their respective corresponding data messages, the bandwidths occupied by the two credit messages and the corresponding data messages are both in a 1:9 relationship, that is, the data message triggered by the credit message that needs to occupy 1% of the bandwidth needs to occupy 9% of the bandwidth. The following several situations may occur.
When the bandwidth occupied by the total amount of the credit messages is less than 10%, the bandwidth occupied by the total amount of the corresponding data messages is less than 90%, and the bandwidth occupied by the total amount of all the messages does not exceed the network bandwidth by 100%;
when the bandwidth occupied by the total amount of the credit messages is equal to 10%, the bandwidth occupied by the total amount of the corresponding data messages is equal to 90%, and the bandwidth occupied by the total amount of all the messages is just 100% of the network bandwidth;
when the bandwidth occupied by the total amount of the credit messages is more than 10%, the bandwidth occupied by the total amount of the corresponding data messages is more than 90%, and the bandwidth occupied by the total amount of all the messages exceeds the network bandwidth by 100%, namely the maximum bandwidth of the network is exceeded.
Alternatively, the following method of discarding more credit packets may be adopted to determine the active congestion control protocol credit packet to be forwarded.
Step one, comparing the quantity of two credit messages;
step two, comparing the bandwidth required to be occupied by the sum of the two credit messages with the available bandwidth of the credit message, determining to forward all the received active congestion control protocol credit messages when the bandwidth required to be occupied by the two credit messages does not exceed the available bandwidth of the credit message, and executing step three when the bandwidth required to be occupied by the two credit messages is greater than the available bandwidth of the credit message, and discarding the exceeded part;
and step three, when the bandwidth occupied by the two messages is larger than the available bandwidth of the credit message, discarding the part of the credit message with a larger quantity judged in the step one. For example, when it is determined in the first step that there are more active congestion control protocol credit messages, part of the active congestion control protocol credit messages are discarded, and it is ensured that the bandwidth required to be occupied by the sum of the remaining active congestion control protocol credit messages and the virtual credit messages does not exceed the available bandwidth of the credit messages, that is, it is determined that the remaining active congestion control protocol credit messages are to be forwarded. Similarly, when it is determined in step one that there are more virtual credit messages, part of the virtual credit messages are discarded.
It should be noted that, because only the active congestion control protocol credit message to be forwarded needs to be determined, and the virtual credit message does not need to be sent out, in step three, when the bandwidth that both need to occupy is greater than the available bandwidth of the credit message, and the number of virtual credit messages is determined to be large in step one, the active congestion control protocol credit message does not need to be discarded in step three, so that all the active congestion control protocol credit messages that need to be forwarded can be directly determined, and all the virtual credit messages can be discarded.
Alternatively, it may be configured to reserve only a certain percentage of the virtual credit packets, for example, 60% each time, that is, after generating corresponding virtual credit packets according to the received inactive congestion control protocol data packet, only 60% of the virtual credit packets are reserved each time, and then all the remaining bandwidth except the bandwidth that needs to be occupied by the 60% of the virtual credit packets in the available bandwidth of the credit packets is allocated to the active congestion control protocol credit packet.
Optionally, weights of two credit messages may also be set, and the two credit messages are rejected according to the available bandwidth of the credit message and the respective weights of the two credit messages, so as to determine an active congestion control protocol credit message to be forwarded.
Optionally, in this example, two messages may be cut off for several different situations.
In case one, when the bandwidth occupied by the sum of two credit messages does not exceed the available bandwidth of the credit message, no credit message is discarded.
And in the second situation, when the bandwidth required to be occupied by the sum of the two credit messages exceeds the available bandwidth of the credit message, discarding the part of the two credit messages exceeding the weight, so that the bandwidth required to be occupied by the sum of the two credit messages does not exceed the available bandwidth of the credit message.
Optionally, the weights of the active congestion control protocol credit message and the virtual credit message may be set according to the flow planned by the network. For example, if the active congestion control protocol traffic accounts for 50%, and the inactive congestion control protocol traffic accounts for 50%, the weight of the active congestion control protocol credit packet and the virtual credit packet may be set to 1: 1.
Assuming that, in one case, the plurality of messages received in step 201 includes N active congestion control protocol credit messages and M inactive congestion control protocol data messages, and P virtual credit messages corresponding to the M inactive congestion control protocol data messages are determined in step 202, then K active congestion control protocol credit messages may be determined from the N active congestion control protocol credit messages in step 203 according to the available bandwidth of the credit messages, the weights of the active congestion control protocol credit messages and the virtual credit messages, where K is a positive integer less than or equal to N.
Optionally, in step 203, when determining the active congestion control protocol credit packet to be forwarded, the active congestion control protocol credit packet may be scheduled by a quality of service (QoS) class, and determined according to a scheduling result.
For example, in the process of determining K active congestion control protocol credit messages from the N active congestion control protocol credit messages according to the available bandwidth of the credit messages, the weight of the active congestion control protocol credit messages, and the weight of the virtual credit messages, the first-level QoS scheduling may be implemented.
Optionally, a Weighted Fair Queue (WFQ) scheduling policy may be used for the one-level QoS scheduling. This part will be described below in relation to fig. 3 to 7.
In the above process of determining the active congestion control protocol credit packet to be forwarded, the active congestion control protocol credit packet that does not meet the requirement may be discarded, or part or all of the virtual credit packet may be discarded.
If the above process is executed by using the QoS scheduling method, all the virtual credit packets may be discarded after the first-level QoS scheduling is completed, all the virtual credit packets may be discarded after the two-level QoS scheduling is completed, and all the virtual credit packets may be discarded before the next round of scheduling.
In the execution process from step 201 to step 203, by introducing the virtual credit packet corresponding to the inactive congestion control protocol data packet and determining the active congestion control protocol credit packet forwarded to the destination device, the impact of the inactive congestion control protocol data packet can be taken into account when reserving the bandwidth by using the active congestion control protocol credit packet, thereby ensuring that the active congestion control mechanism can still be implemented in the presence of the inactive congestion control protocol data packet.
204. And forwarding the determined active congestion control protocol credit message and part or all of the received inactive congestion control protocol data message.
Optionally, the determined active congestion control protocol credit message may be forwarded to the destination device according to the determined active congestion control protocol credit message to be forwarded in step 203, and a part or all of the received inactive congestion control protocol data message may be forwarded.
In the technical scheme, by introducing the virtual credit message, when the active congestion control protocol credit message is used for reserving the bandwidth, the influence of the data message of the non-active congestion control protocol can be taken into consideration, so that the flow of the active congestion control protocol can still be effectively controlled under the condition that the flow of the non-active congestion control protocol exists. That is to say, by introducing the virtual credit message and determining the active congestion control protocol credit message forwarded to the destination device according to the available bandwidth of the credit message, the received active congestion control protocol credit message and the generated virtual credit message, when determining the bandwidth of the active congestion control protocol data message according to the received active congestion control protocol credit message, the virtual credit message can be properly adjusted according to the number of the inactive congestion control protocol data messages existing in the network link, thereby ensuring the effectiveness of the active congestion control mechanism.
In step 204, the forwarding order of different packets may be set, and different packets may be forwarded according to the forwarding order. For example, the determined active congestion control protocol credit message and the received inactive congestion control protocol data message may be forwarded by setting a forwarding order.
Alternatively, it may be directly configured to forward the active congestion control protocol credit packet first and then forward the inactive congestion control protocol data packet. Assuming that, in one case, the plurality of messages received in step 201 includes N active congestion control protocol credit messages and M inactive congestion control protocol data messages, K active congestion control protocol credit messages to be forwarded are determined in step 203. Then the K active congestion control protocol credit packets may be forwarded first and then part or all of the M inactive congestion control protocol data packets may be forwarded using the remaining bandwidth in step 204. That is, the K active congestion control protocol credit packets are forwarded first, and then part or all of the M inactive congestion control protocol credit packets are forwarded as much as possible according to the remaining bandwidth.
It should be noted that, since the K active congestion control protocol credit packets are allocated according to the available bandwidth of the credit packet, there is no situation that the K active congestion control protocol credit packets occupy the available bandwidth of the data packet, and therefore, in the above situation, all available bandwidths of the data packet may be used to forward the M inactive congestion control protocol data packets as much as possible.
It should also be understood that, in some cases, the bandwidth required for forwarding the M inactive congestion control protocol data packets exceeds the available bandwidth of the data packets, and at this time, part of the inactive congestion control protocol data packets may be discarded, but the bandwidth occupied by the virtual credit packets in the available bandwidth of the original credit packets may also be converted to be allocated to the M inactive congestion control protocol data packets according to the need.
For another example, it may also be directly configured to forward the non-active congestion control protocol data packet first and then forward the active congestion control protocol credit packet. In this case, the M non-active congestion control protocol data packets may be forwarded as much as possible using the available bandwidth of all data packets, and then the K active congestion control protocol credit packets may be forwarded. And further, finally, the bandwidth occupied by the original virtual credit message is reused to forward the data message of the non-active congestion control protocol.
For another example, the method may further include alternately forwarding the K active congestion control protocol credit packets and the M inactive congestion control protocol data packets.
It should be noted that the credit packet is a packet that does not carry data, and the number of the credit packets to be forwarded is determined according to the available bandwidth of the credit packet, so that the K active congestion control protocol credit packets to be forwarded do not exceed the available bandwidth of the credit packet, while the received inactive congestion control protocol data packet is a packet that carries data, and the required bandwidth may exceed the available bandwidth of the data packet.
Optionally, in the process of determining the forwarding order, the forwarding order may also be determined according to a priority by setting the priority.
Alternatively, the priority of the active congestion control protocol credit message may be set higher than the priority of the inactive congestion control protocol data message. And setting to forward a message with high priority first, then forwarding the active congestion control protocol credit message preferentially, and then forwarding part or all of the inactive congestion control protocol data message according to the rest bandwidth.
Assuming that the plurality of messages received in step 201 includes N active congestion control protocol credit messages and M inactive congestion control protocol data messages, K active congestion control protocol credit messages to be forwarded are determined in step 203. Further assuming that the priority of the active congestion control protocol credit packet is higher than that of the inactive congestion control protocol data packet, in step 204, the K active congestion control protocol credit packets may be forwarded first, and then part or all of the M inactive congestion control protocol data packets may be forwarded.
Optionally, the foregoing process of forwarding each packet according to the forwarding order may be implemented by using a Priority Queue (PQ) scheduling policy. This part will be described below in relation to fig. 3 to 7.
For example, the hybrid credit message may be set to have a higher priority than the non-proactive congestion control protocol data message. It should be noted that, instead of the hybrid credit message, an active congestion control protocol credit message may be used, in which case, the active congestion control protocol credit message may be set to have a higher priority than the inactive congestion control protocol data message.
By adopting a PQ scheduling mode, the delay-sensitive key services can be put into a high-priority queue, and the non-key services can be put into a low-priority queue, so that the key services are ensured to be sent preferentially. Therefore, in the above-mentioned PQ scheduling process, the active congestion control protocol credit message in the hybrid credit message is preferentially forwarded out, so as to ensure the bandwidth reservation of the active congestion control protocol data message at the next moment.
In the process of scheduling the PQ, scheduling the hybrid credit messages is equivalent to informing the sending equipment of the number of active congestion control protocol data messages which can be received by the forwarding equipment at the next moment, so that the sending equipment can accurately acquire the bandwidth reserved by the active congestion control protocol and judge the bandwidth which can be reserved for the subsequent moment at the next moment; in addition, the available bandwidth at the next moment is reserved for the data message of the inactive congestion control protocol, so that the data message of the inactive congestion control protocol and the data message of the active congestion control protocol can share the bandwidth.
And when only the data message of the non-active congestion control protocol and the credit message of the active congestion control protocol are received, executing the steps of generating the virtual credit message and the like, preferentially scheduling the mixed credit message in the PQ scheduling process, and then scheduling the data message of the non-active congestion control protocol when the next high priority queue where the mixed credit message is located has no data packet. At this time, there is no data packet of the active congestion control protocol.
Under another condition, if the received multiple messages also include an active congestion control protocol data message, the forwarding order of the three messages may be set, and the messages may be forwarded according to the forwarding order, or the forwarding order may be set according to the priority, and a PQ scheduling policy may be used for scheduling.
It should be noted that, because the active congestion control mechanism is a reservation mechanism, that is, in this case, the received active congestion control protocol data packet is triggered and forwarded based on the bandwidth reserved by the active congestion control protocol credit packet at the previous time, the bandwidth occupied by the received active congestion control protocol data packet does not exceed the reserved bandwidth, and thus the available bandwidth of the data packet is not exceeded.
If it is assumed that the multiple messages received in step 201 include N active congestion control protocol credit messages and M inactive congestion control protocol data messages, and Q active congestion control protocol data messages, the forwarding order may be set to be an active congestion control protocol data message, an active congestion control protocol credit message, and an inactive congestion control protocol data message in sequence. And forwarding the Q active congestion control protocol data messages, then forwarding K active congestion control protocol credit messages determined from the N active congestion control protocol credit messages, and finally forwarding part or all of the Q active congestion control protocol data messages.
It should be understood that other forwarding orders may also be set, for example, the forwarding order is set to be an inactive congestion control protocol data packet, an active congestion control protocol data packet, and an active congestion control protocol credit packet, and for example, the forwarding turns may also be set, and the forwarding orders set in different forwarding turns are different, and the like.
Optionally, the priorities of the three messages may also be set, and the forwarding order is determined according to the priorities. The method is equivalent to forwarding the Q active congestion control protocol data packets, all of the K active congestion control protocol credit packets, and part or all of the M inactive congestion control protocol data packets to a destination device according to the priority of the active congestion control protocol data packets, the priority of the active congestion control protocol credit packets, and the priority of the inactive congestion control protocol data packets, wherein Q is an integer greater than or equal to 1.
Optionally, when forwarding the packets according to the priority, the Q active congestion control protocol data packets, the K active congestion control protocol credit packets, and part or all of the M inactive congestion control protocol data packets may be forwarded to the destination device according to an order of a highest priority of the active congestion control protocol data packets, a second priority of the active congestion control protocol credit packets, and a lowest priority of the inactive congestion control protocol data packets, where Q is an integer greater than or equal to 1. In the process, the active congestion control protocol data message can be preferentially forwarded, the low delay effect of the active congestion control protocol is ensured, on the premise, the forwarding of the active congestion control protocol credit message and the forwarding of the non-active congestion control protocol data message for reserving the bandwidth at the next moment can be considered, and the utilization rate of the bandwidth is improved.
It should be noted that, in the process of receiving multiple packets in step 201, there may be other situations, for example, no active congestion control protocol credit packet is received, and for example, only one packet is received. But the method described above can be used to determine the message to be forwarded and forward the message according to the forwarding order.
When there are no active congestion control protocol credit messages (e.g., the N active congestion control protocol credit messages mentioned above), only the active congestion control protocol data messages and the inactive congestion control protocol data messages need to be forwarded when forwarding the messages according to the forwarding order in step 204. For example, in the second-level QoS scheduling process, only the active congestion control protocol data packets (e.g., the Q active congestion control protocol data packets described above) of the high-priority queue and the inactive congestion control protocol data packets (e.g., the M inactive congestion control protocol data packets described above) of the low-priority queue may be scheduled. In addition, when there is no active congestion control protocol credit message, the steps 202 to 204 may not be executed, but the received two data messages are directly forwarded, or the steps 202 to 204 may be executed, and when the step 203 is executed, the bandwidth originally required to be allocated to the active congestion control protocol credit message is converted to be allocated to the virtual credit message, that is, the virtual credit message can occupy all available bandwidth of the credit message to the maximum.
When only the data packet of the inactive congestion control protocol is received, the bandwidth at the next time may still be reserved for the inactive congestion control protocol and the data packet of the inactive congestion control protocol may be forwarded out by the above-described method, for example, by two-stage QoS scheduling. In this case, in step 203, since the active congestion control protocol credit message with reserved bandwidth is not received, the remaining bandwidth of the active congestion control protocol credit message can be allocated to the virtual credit message instead, and the bandwidth reserved for the inactive congestion control protocol data message is increased at the next moment. In step 204, when the forwarding order is determined according to the priority and the message is forwarded, it is equivalent to that there are data packets in the next highest priority queue where only the hybrid credit message is located and the low priority queue where the inactive congestion control protocol data message is located, and there are only virtual credit messages in the hybrid credit message, so that the hybrid credit message in the next highest priority queue is scheduled first, and then the inactive congestion control protocol data message is scheduled.
When only the active congestion control protocol credit message is received, the bandwidth at the next time may also be allocated to the active congestion control protocol by the above-described method, for example, by two-level QoS scheduling. In this case, in step 203, since the non-active congestion control protocol data packet is not received, it can be considered that the non-active congestion control is not needed for a while, the remaining bandwidth of the virtual credit packet can be allocated to the active congestion control protocol credit packet instead, and at the next time, the active congestion control protocol data packet can use a larger bandwidth. In step 204, when the forwarding order is determined according to the priority and the message is forwarded, it is equivalent to that there is only a data packet in the next highest priority queue where the hybrid credit message is located, and only the active congestion control protocol credit message is in the hybrid credit message, so that only the hybrid credit message in the next highest priority queue needs to be scheduled.
When only the data packet of the active congestion control protocol is received, the data packet of the active congestion control protocol may also be forwarded by the above-described method, for example, by two-level QoS scheduling. In this case, since the non-active congestion control protocol data packet and the active congestion control protocol credit packet are not received, and thus the virtual credit packet does not need to be generated, step 202 and step 203 may not be performed. In step 204, when the forwarding order is determined according to the priority and the packet is forwarded, it is equivalent to that only the high priority queue where the active congestion control protocol data packet is located has a data packet, so that only the active congestion control protocol data packet needs to be scheduled. This situation may occur when there is no non-active congestion control protocol traffic in the network at the previous time (when forwarding the active congestion control protocol credit message for reserving bandwidth) and at the current time. Or may occur in networks where there is no inactive congestion control protocol traffic.
In the method, part or all of the virtual credit messages can be discarded at a proper time to release resources such as occupied storage space.
For example, all the virtual credit packets may be discarded after determining the active congestion control protocol credit packet to be forwarded, before, after, or during the forwarding of the packets according to the forwarding order, after all the steps are performed, or before the next round of incoming packets is received.
For another example, when determining the active congestion control protocol credit packet to be forwarded according to the available bandwidth of the credit packet and the active congestion control protocol credit packet and the virtual credit packet in step 203, some or all of the virtual credit packet may be discarded. For further example, in this example, assuming that the available bandwidth of the two credit packets is 10Mbps, the weight of the two credit packets is 1:1, the active congestion control protocol credit packet needs to occupy 6Mbps, and the virtual credit packet needs to occupy 7Mbps, part of the active congestion control protocol credit packet and part of the virtual credit packet are discarded, so that the bandwidth occupied by the two active congestion control protocol credit packets and the virtual credit packet is 5Mbps, or all the virtual credit packets may be directly discarded at this time.
In practice, although the active congestion control mechanism in the presence of the traffic of the inactive congestion control protocol is implemented by the method, since the traffic of the inactive congestion control protocol is not controlled, the data packet of the inactive congestion control protocol arriving at the next moment may still exceed the bandwidth obtained by the data packet of the inactive congestion control protocol in the method, and the data is forwarded by setting the forwarding order, so that the excess part can be discarded without affecting the network performance.
In addition, if the data of the inactive congestion control protocol is more important at some time, it may be set to forward the inactive congestion control protocol data packet first and then forward the active congestion control protocol credit packet and/or the active congestion control protocol data packet. In this case, the active congestion control protocol credit message and the active congestion control protocol data message may not be completely forwarded.
Fig. 2 mainly introduces the method for scheduling packets provided in the embodiment of the present application, and it is mentioned in step 201 that the types of the received packets may be different, mainly because two congestion control mechanisms may exist simultaneously or only one of the two congestion control mechanisms may exist, and the specific methods and processes of the two congestion control mechanisms are different, so that the types of the packets existing in the network at the same time are different. When the types of the received messages are different, if the method shown in fig. 2 is used for congestion control, different execution processes are generated. In order to achieve a better effect of the method for scheduling packets, the embodiments of the present application further provide several scheduling methods, which are optimized. Therefore, the method for scheduling packets by using a scheduling policy provided in the embodiment of the present application will be described below with respect to different situations.
The method for scheduling packets at time T0 and time T1 is described below with reference to fig. 3 to fig. 7, where fig. 3 to fig. 5 correspond to time T0, and fig. 6 and fig. 7 correspond to time T1. The time T0 is the time when the active congestion control protocol credit message sent by the sending device reaches the forwarding device. After the forwarding device schedules the message received at the time of T0, it sends a backhaul active congestion control protocol credit message to the sending device, and the sending device receives and triggers sending an active congestion control protocol data message according to the backhaul active congestion control protocol credit message. Therefore, the time T1 may be set as the time when the forwarding device receives the active congestion control protocol data packet.
It should be understood that, in the embodiment of the present application, the sending device reserves the bandwidth for the active congestion control protocol data packet at time T0, and the sending device sends the corresponding data packet at the bandwidth reserved according to time T0 at time T1, but there is no limitation as to which time node of the execution process is specifically set.
First, a method for scheduling a packet at time T0 will be described with reference to fig. 3 to 5.
The elements of fig. 3 to 5 are first explained as follows: forwarding device 400 includes ingress port 410 and egress port 420 for receiving and transmitting data, such as messages, respectively. The message 310 and the message 330 are messages sent by the sending device 300 to the destination device through the forwarding device 400, where the message 310 is an active congestion control protocol credit message and is used to reserve a bandwidth for an active congestion control protocol data message; message 330 is an inactive congestion control protocol data message. Message 430 is a virtual credit message generated in forwarding device 400 and is valid only within forwarding device 400. Message 440 is a hybrid credit message, i.e., the sum of the hybrid of message 310 and message 430, but it should be understood that in some cases, only one of the messages 310 and 430 may be present in message 440. QoS scheduling refers to scheduling some or all of messages 310, 430, 330, 440 by forwarding device 400 for bandwidth allocation and/or message determination to be sent, etc.
It should be noted that, in the embodiment of the present application, a process between the sending device and the forwarding device is mainly described, and therefore, the destination device is not shown in fig. 3 to fig. 7, but it should be understood that when the forwarding device performs the process of the embodiment of the present application to forward various types of messages, the forwarding device forwards the various types of messages to the destination device.
Fig. 3 is a schematic diagram of a method for scheduling a packet at time T0 according to an embodiment of the present application.
The sending device 300 sends the message 310 and the message 330 to the destination device via the forwarding device 400.
It should be noted that the sending device 300 that sends the message 310 and the sending device 300 that sends the message 330 may be the same device or different devices.
Optionally, the sending device 300 sends the message 310 based on traffic demand or a fixed ratio.
It should be understood that the sending device 300 may be a terminal device, and may also be a device capable of sending a message, such as a host or a switch.
At time T0, forwarding device 400 receives message 330 and message 310 from sending device 300.
It should be noted that the setting of the time T0 is not exclusive, and the time when the sending device 300 sends the message 310 may be set to be the time T0, and the time when the sending device 300 sends the message 330 may be set to be the time T0, which is not described herein again.
Optionally, after receiving the message 330 and the message 310, the forwarding device 400 may generate the message 430 based on the message 330 received at time T0, where the message 430 is only valid in the forwarding device 400 and is not sent to the network.
Optionally, the message 430 may be generated by the method described in step 202 of fig. 2.
Optionally, the forwarding device 400 may also perform QoS scheduling on the packet, where the QoS scheduling may include one or more levels of scheduling, which will be described below with reference to fig. 4 and 5.
Fig. 4 is a schematic diagram of a method for primary QoS scheduling at time T0 according to an embodiment of the present application. It should be appreciated that the method referred to in step 203 of fig. 2 may also be utilized for this level of QoS scheduling.
As shown in fig. 4, the forwarding device 400 may generate the message 430 based on the message 330 received at time T0, and the message 430 is only valid in the forwarding device 400 and is not sent to the network.
It should be understood that there is a correspondence between the messages 430 and the messages 330, that is, the number of messages 330 represented by one message 430 can be set.
Optionally, the message 430 may be generated by the method described in step 202 of fig. 2.
Optionally, the forwarding device 400 may further determine, according to the available bandwidth of the credit message of the active congestion control protocol credit message and the virtual credit message, the received message 310 and the generated message 430, a part or all of the message 310 to be forwarded from the message 310, so as to allocate the bandwidth for the data message represented by the message 310.
Alternatively, the method described in step 203 in fig. 2 may be adopted to determine, from the received packets 310, part or all of the packets 310 to be forwarded, so as to allocate the bandwidth of the active congestion control protocol data packet at the next time and reserve the bandwidth for the inactive congestion control protocol data packet at the next time.
Optionally, one level of QoS scheduling may be performed for messages 310 and 430.
Optionally, a Weighted Fair Queue (WFQ) scheduling policy may be used for the one-level QoS scheduling. WFQ scheduling policy and the procedure by which packets 310 and 430 are subjected to one-level QoS scheduling are described below.
The purpose of Fair Queue (FQ) scheduling is to share network resources as fairly as possible, so that the time delay and jitter of all flows are optimal, and different queues obtain fair scheduling opportunities. The WFQ scheduling is a consideration of increasing priority on the basis of FQ, so that the higher priority packets are scheduled more frequently than the lower priority packets.
WFQ scheduling classifies traffic before enqueuing messages.
For example, the "session" information by flow is classified: the classification of traffic is automatically performed according to a protocol type of a packet, a source TCP or UDP port number, a destination TCP or UDP port number, a source IP address, a destination IP address, a priority in a type of service (ToS) domain, and the like, and queues are provided as many as possible to uniformly place each flow in different queues, thereby equalizing the delay of the respective flows as a whole. At dequeue time, the WFQ schedule allocates the bandwidth each flow can occupy by its priority (precedence). The smaller the value of the priority, the less bandwidth is obtained. The larger the value of the priority, the more bandwidth is obtained.
As another example, by priority classification: the traffic is marked as local priority by priority mapping, and each local priority corresponds to a queue number. Each interface is pre-distributed with 8 queues, and messages enter the queues according to the queue numbers. The WFQ weights of the default queues are the same initially, and each flow equally distributes link bandwidth. The allocation of bandwidth that each flow can occupy can be changed by modifying the weights during WFQ scheduling.
In order to provide fair scheduling among the flows, in WFQ scheduling, each flow is allocated with bandwidth, and other flows are allowed to use the remaining bandwidth of a certain flow, for example, the total bandwidth is 200kbps, and for 10 flows, each flow may be allocated with 20kbps bandwidth, and it may be practical that a certain flow, for example, flow 1, has only 5kbps, and flow 2 has 30kbps, and then other flows may be allocated with the remaining 20-5-15 kbps bandwidth of flow 1.
When the WFQ scheduling policy is used to perform the first-level QoS scheduling on the active congestion control credit protocol packet (e.g., packet 310) and the virtual credit packet (e.g., packet 430), the active congestion control credit protocol packet and the virtual credit packet may be allocated with bandwidths according to the weights, and a fair competition between the two credit packets is achieved.
For example, assuming that the weight distribution set by the two messages is 1:1, and the available bandwidth of the credit message is 200Mbps, when only the two credit messages exist, the two credit messages can respectively distribute a bandwidth of 100 Mbps. For the sake of simplicity, the actual bandwidth of the active congestion control protocol credit packet (i.e. the bandwidth that needs to be occupied by the active congestion control protocol credit packet received at time T0) is represented by B1, and the actual bandwidth of the virtual credit packet (i.e. the bandwidth that needs to be occupied by the virtual credit packet generated according to the inactive congestion control protocol credit packet received at time T0) is represented by B2, then in the WFQ scheduling process, there may be the following situations:
when B1< > is 100Mbps and B2< > is 100Mbps, the allocated bandwidths of the two are not changed.
When B1>100Mbps and B2<100Mbps, B1 is increased, B2 remains unchanged, wherein B1 can be increased up to 200Mbps-B2 at maximum; that is, the actual bandwidth of the virtual credit message is unchanged, but the remaining bandwidth of the virtual credit message may be allocated to the active congestion control protocol credit message.
When B1<100Mbps and B2>100Mbps, B2 is increased, B1 remains unchanged, wherein B2 can be increased to 200Mbps-B1 at most; that is, the actual bandwidth of the active congestion control protocol credit message is unchanged, but the remaining bandwidth of the active congestion control protocol credit message may be allocated to the virtual credit message.
When B1>100Mbps and B2>100Mbps, both can only be allocated 100Mbps bandwidth.
Through the fair competition of the two credit messages, the active congestion control protocol credit message and the virtual credit message are comprehensively considered when the bandwidth of the active congestion control protocol data message at the next moment is determined, that is, the active congestion control protocol credit message and the virtual credit message can be properly adjusted according to the number of the inactive congestion control protocol data messages existing in the network link, so that when the sending equipment triggers and sends the corresponding active congestion control protocol data message according to the returned return active congestion control protocol credit message, the actually available bandwidth of the active congestion control protocol data message in the link cannot be exceeded. The WFQ scheduling described above enables active congestion control protocol traffic to be effectively controlled even in the presence of inactive congestion control protocol traffic.
Optionally, the forwarding device 400 may further set the rates of the two credit packets to be fixed ratios x% of the link bandwidth, for example, ratios of 5%, 6%, 13%, and so on, where x may be a real number greater than 0 and less than 100. So as to ensure that the sum of the data messages corresponding to the two credit messages does not exceed the bandwidth of the network link. That is, the available bandwidth of the credit packet can be determined according to the total bandwidth of the network and the corresponding relationship between the two credit packets and the respective corresponding data packets. It should be understood that the available bandwidth of the credit message refers to the sum of the available bandwidths of all credit messages, or may be understood as the available bandwidth of the sum of all credit messages. In the embodiment of the present application, when the credit message includes only the two credit messages, it is equivalent to the available bandwidth of the two credit messages, or can be understood as the available bandwidth of the sum of the two credit messages (i.e. the hybrid credit message).
It should be noted that, in the above-mentioned primary QoS scheduling process, some messages 310 that do not conform to the scheduling policy may be discarded, and after the scheduling is finished, all messages 430 may be discarded.
Optionally, the forwarding device 400 may also perform two-level QoS scheduling on the packet, and the scheduling process may be as shown in fig. 5.
Fig. 5 is a schematic diagram of a method for two-level QoS scheduling at time T0 according to an embodiment of the present application.
As shown in fig. 5, in the two-level QoS scheduling, the messages 310 and 430 are first subjected to the first level QoS scheduling.
Optionally, the first-level QoS scheduling may use the method of first-level QoS scheduling shown in fig. 4 to schedule the messages 310 and the messages 430, for example, performing WFQ scheduling, and may also use the method involved in step 203 in fig. 2 to perform the first-level QoS scheduling, which is not repeated here.
Optionally, after the first-level QoS scheduling, the method described above may be used to limit the speed of the packet 440 and determine the bandwidth occupied by the packet 440.
Optionally, a second level of QoS scheduling may be performed for messages 440 and 330. It should be understood that the second-level QoS scheduling may also be performed by the method of forwarding packets according to the forwarding order involved in step 204 in fig. 2.
It should be noted that the message 440 may be a hybrid credit message scheduled by using the method described in fig. 4. In addition, the message 440 may also be the message 310, for example, if the message 430 is discarded after the first-level QoS scheduling is performed, only the message 310 remains in the message 440.
Alternatively, the second level QoS scheduling may be scheduling packets 330 and 440 according to priority.
Alternatively, the second-level QoS scheduling may employ a priority scheduling (PQ) scheduling policy. The PQ scheduling policy and the process by which message 330 and message 440 are second-level QoS scheduled are described below.
Alternatively, the hybrid credit message may be set to have a higher priority than the non-proactive congestion control protocol data message.
It should be noted that, the second-level QoS scheduling may be an active congestion control protocol credit message instead of the hybrid credit message, in which case, the priority of the active congestion control protocol credit message may be set.
In the PQ scheduling process, scheduling is performed strictly according to the high-low order of queue priority. Only after all the messages in the high-priority queue are scheduled, the low-priority queue has a scheduling opportunity. If there is data packet in the high priority queue, the data packet in the high priority queue is processed preferentially, until the high priority queue is empty, the next priority queue is switched to, the data packet in the queue is processed and whether the high priority queue is empty is checked, if the high priority queue is empty, the priority queue is processed continuously, and if the high priority queue has data packet, the high priority queue is switched to be processed. Therefore, a packet in a low priority queue can only be processed if all queues with higher priority than the packet are empty. When too many packets are in the higher priority queue, packets in the lower priority queue are left out of service, which causes "queue starvation".
Therefore, by adopting the PQ scheduling mode, the delay-sensitive key services can be put into a high-priority queue, and the non-key services can be put into a low-priority queue, so that the key services are ensured to be transmitted preferentially. Therefore, in the process of the PQ scheduling, the active congestion control protocol credit message in the hybrid credit message is preferentially forwarded out, so as to ensure bandwidth reservation of the active congestion control protocol data message at the next moment.
In the process of scheduling the PQ, scheduling the hybrid credit message is equivalent to informing the sending equipment of the number of active congestion control protocol data messages that the forwarding equipment can receive at the next moment, so that the sending equipment can accurately know the bandwidth reserved by the active congestion control protocol and judge the bandwidth which can be reserved for the subsequent moment at the next moment; in addition, the available bandwidth at the next moment is reserved for the inactive congestion control protocol data message, so that the inactive congestion control protocol data message and the active congestion control protocol data message can share the bandwidth.
When only the data message of the inactive congestion control protocol and the credit message of the active congestion control protocol are received, the steps of generating the virtual credit message and WFQ scheduling are executed, then the mixed credit message is scheduled preferentially in the PQ scheduling process, and when the next higher priority queue where the mixed credit message is located has no data packet, the data message of the inactive congestion control protocol is scheduled again. At this time, there is no data packet of the active congestion control protocol.
At time T0, the forwarding device 400 does not receive any data packet of the active congestion control protocol, and therefore, when performing PQ scheduling, the message 440 is scheduled preferentially, and when the next highest priority queue of the message 440 is empty, the message 330 with low priority is scheduled instead.
Optionally, after the two-level scheduling is completed, the forwarding device 400 discards all the messages 430, so as to release the memory space occupied by the messages.
It should be noted that, in the scheduling process, the partial message 430 that does not conform to the scheduling policy may also be discarded. In addition, the message 430 may also be discarded when the first-level QoS scheduling is performed, or the message 430 may also be discarded after all scheduling is finished, which is not described herein again.
At time T0, there is no transmission requirement for the data packet of the active congestion control protocol, so that, in the scheduling process shown in fig. 3 to 5, by generating the virtual credit packet corresponding to the data packet of the inactive congestion control protocol and allocating the weights to the virtual credit packet and the credit packet of the active congestion control protocol, the data packet of the inactive congestion control protocol can compete for the bandwidth with the data packet of the active congestion control protocol, that is, a certain bandwidth can be reserved for the data packet of the inactive congestion control protocol. And the received data message of the inactive congestion control protocol can be forwarded to the maximum extent at the time of T0 by scheduling the priority queue of the mixed credit message and the data message of the inactive congestion control protocol, thereby improving the utilization rate of the bandwidth.
After the message 310 at the time T0 is scheduled, the forwarding device 400 forwards part or all of the scheduled message 310 to the destination device, and the destination device returns the message to the sending device 300, so as to trigger a corresponding amount of active congestion control protocol data messages. For example, it returns to the transmitting device 300 over 1 RTT.
The method for scheduling packets at time T1 is described below with reference to fig. 6 and 7.
Elements with the same names and numbers as those in fig. 3 appearing in fig. 6 and 7 also have the same meanings, and therefore are not described again, and the packet 320 in fig. 6 and 7 refers to an active congestion control protocol data packet and is triggered and sent by an active congestion control protocol credit packet (i.e., the packet 310).
Fig. 6 is a schematic diagram of a method for scheduling a packet at time T1 according to an embodiment of the present application.
Sending device 300 sends message 310, message 320, and message 330 to forwarding device 400, where message 320 is triggered to send by message 310 at time T0.
It should be noted that the sending device 300 sending the message 310, the message 320, and the message 330 may be the same device or different devices. The sending device 300 may be a terminal device, a host, a server, etc. capable of sending messages.
At time T1, the forwarding device 400 receives the message 330, the message 310 from the sending device 300, and the message 320 triggered by some or all of the messages 310 returned after scheduling at time T0.
It should be understood that the setting of the time T1 is not unique, and the time when the sending device 300 sends the message 320 triggered by the message 310 at the time T0 may also be set as the time T1, which is not described herein again.
It should also be understood that the message 310 may not be present at time T1, which corresponds to the transmitting device 300 not reserving bandwidth for the active congestion control protocol data message at time T1.
Optionally, after receiving the message 330 and the message 310, the forwarding device 400 may generate the message 430 based on the message 330 received at time T1, where the message 430 is only valid in the forwarding device 400 and is not sent to the network.
Optionally, the message 430 may be generated by the method described in step 202 of fig. 2.
Optionally, the forwarding device 400 may also perform QoS scheduling on the packet, where the QoS scheduling may include one-level or multi-level scheduling, and when only one-level QoS scheduling exists, the method is the same as the method shown in fig. 4, that is, the one-level QoS scheduling may be scheduling between the packet 310 and the packet 430, and the method related in step 203 in fig. 2 may also be used to perform the one-level QoS scheduling, which is not described again for brevity.
It should be noted that, since the message 310 may not exist at the time T1, that is, the bandwidth does not need to be reserved for the data message of the active congestion control protocol at this time, the first-level QoS scheduling may not be performed. Or in this case, if the first level QoS scheduling is performed, all the bandwidth available for the original message 310 may be allocated to the message 430, which is equivalent to the message 430 occupying the available bandwidth of the credit message (here, the available bandwidth of both credit messages).
Optionally, the forwarding device 400 may also perform two-level QoS scheduling on the packet, and the scheduling process may be as shown in fig. 7.
Fig. 7 is a schematic diagram of a method for two-level QoS scheduling at time T1 according to an embodiment of the present application. The two-level QoS scheduling at time T1 will be described below in conjunction with fig. 7.
As shown in fig. 7, in the two-level QoS scheduling, the messages 310 and 430 are first subjected to the first level QoS scheduling.
Optionally, the first-level QoS scheduling may use the method of first-level QoS scheduling shown in fig. 4 to schedule the packet 310 and the packet 430 at the time T1, for example, to perform WFQ scheduling, and may also use the method involved in step 203 in fig. 2 to perform the first-level QoS scheduling, which is not repeated here.
It should be noted that, since there may be no packet 310 at time T1, that is, bandwidth does not need to be reserved for the data packet of the active congestion control protocol at this time, the first-level QoS scheduling may not be performed. Or in this case, if the first level QoS scheduling is performed, all the bandwidth available for the original message 310 may be allocated to the message 430, which corresponds to the message 430 being full of bandwidth.
Optionally, after the first-level QoS scheduling, the method described above may be used to limit the speed of the packet 440 and determine the bandwidth occupied by the packet 440.
Optionally, a second level of QoS scheduling may be performed for messages 440 and 330. It should be understood that the second-level QoS scheduling may also be performed by the method for forwarding packets according to the forwarding order, which is involved in step 204 in fig. 2.
It should be noted that the message 440 may be a hybrid credit message scheduled by using the method described in fig. 4. In addition, the message 440 may also be the message 310, for example, if the message 430 is discarded after the first-level QoS scheduling is performed, only the message 310 may be left in the message 440.
Alternatively, the second level QoS scheduling may be scheduling packets 330 and 440 according to priority.
Optionally, the second level QoS scheduling may employ a PQ scheduling policy.
Alternatively, the active congestion control protocol data packet may be set to have the highest priority, the hybrid credit packet may have the next highest priority, and the inactive congestion control protocol data packet may have the low priority. That is, the priority of the data message of the active congestion control protocol is the highest; the priority of the mixed credit message is lower than that of the active congestion control protocol data message but higher than that of the inactive congestion control protocol data message; and the non-active congestion control protocol data message has the lowest priority.
It should be noted that, the active congestion control protocol credit message may be an active congestion control protocol credit message instead of the hybrid credit message, and in this case, the active congestion control protocol credit message may be set to have the second highest priority.
At time T1, the forwarding device receives the packet 330, the packet 310, and the packet 320 triggered by the packet 310 at time T0. Therefore, when performing the second-level QoS scheduling, PQ scheduling needs to be performed on three messages, namely the message 320, the message 440, and the message 330 in the order from high priority to low priority, where the priority of the message 320 may be set to be the highest, the priority of the message 440 is the second, and the priority of the message 330 is the lowest, which is not described herein again.
That is to say, T1 receives both the non-active congestion control protocol data packet (packet 330) and the active congestion control protocol credit packet (packet 310) and the active congestion control protocol data packet (packet 320), and during the PQ scheduling process, schedules the active congestion control protocol data packet preferentially, and schedules the hybrid credit packet when the high-priority queue of the active congestion control protocol data packet has no data packet, and schedules the non-active congestion control protocol data packet only when the high-priority queue of the active congestion control protocol data packet and the next-high-priority queue of the hybrid credit packet have no data packet.
It should also be appreciated that when there are no messages 310, then only the high priority queue messages 320 and the low priority queue messages 330 may be scheduled during the second level of QoS scheduling.
Optionally, after the scheduling is completed, the forwarding device 400 may discard all the messages 430 to release resources such as a storage space occupied by the messages.
It should be noted that the operation of discarding the packet 430 is similar to the related contents related to fig. 2 to fig. 5, and is not described again here.
In the process of PQ scheduling, the data message of the active congestion control protocol is preferentially forwarded out so as to ensure the low-delay effect of the active congestion control mechanism. In addition, the scheduling of the hybrid credit message is equivalent to informing the sending equipment of the number of active congestion control protocol data messages which can be received by the forwarding equipment at the next moment, so that the sending equipment can accurately acquire the bandwidth reserved by the active congestion control protocol and judge the bandwidth which can be reserved at the next moment; in addition, the available bandwidth at the next moment is reserved for the data message of the inactive congestion control protocol, so that the data message of the inactive congestion control protocol and the data message of the active congestion control protocol can share the bandwidth.
In the scheduling process, various messages received at the time of T1 are scheduled, and on the premise of ensuring the prior transmission of the active congestion control protocol data message, the inactive congestion protocol data message can also transmit data by using the bandwidth obtained by the competition at the time of T0, so that the low-delay requirement of active congestion control is met, and the inactive congestion control protocol data message can compete with the active congestion control protocol data message and share the bandwidth. In addition, the second-level QoS scheduling can also realize that when the received data message of the non-active congestion protocol exceeds the reserved bandwidth at the time of T0, the data message can be discarded through the scheduling, and the transmission performance of a network link is ensured.
It should be noted that other situations exist in the scheduling process of the scheduling packet, which is described below with reference to fig. 3 and fig. 6.
For example, when only the packet 330 is received, it is still possible to reserve the bandwidth of the next time for the inactive congestion control protocol through two-level QoS scheduling, and forward part or all of the packet 330. In this case, in WFQ scheduling, since the message 310 with reserved bandwidth is not received, the remaining bandwidth of the message 310 can be allocated to the message 430 instead, and then the available bandwidth of the credit message of the message 330 is increased at the next time. In the PQ scheduling, only the next highest priority queue where the message 440 is located and the low priority queue where the message 330 is located have data packets, and only the message 430 is located in the message 440, so that the message 440 in the next highest priority queue can be scheduled first, and then the message 330 can be scheduled.
For another example, when only the packet 310 is received, the bandwidth at the next time may also be allocated to the active congestion control protocol through two-level QoS scheduling. In this case, in WFQ scheduling, since the message 330 is not received, it can be considered that the non-active congestion control is not needed for a while, the remaining bandwidth of the message 430 can be allocated to the message 310 instead, and the message 320 can use a larger bandwidth at the next time. In the PQ scheduling, it is equivalent to that only the packet 440 is in the next highest priority queue, and only the packet 310 is in the packet 440, so that only the packet 440 in the next highest priority queue needs to be scheduled.
For another example, when only the packet 320 is received, the packet 320 may also be forwarded through the two-level QoS scheduling. In this case, in the WFQ scheduling, since the packet 330 and the packet 310 are not received, the packet 430 does not need to be generated, and therefore, the WFQ scheduling may not be performed. In PQ scheduling, only the packet 320 needs to be scheduled, which is equivalent to having a packet in the high priority queue where the packet 320 is located. This may occur when there is no non-proactive congestion control protocol traffic in the network at the previous time (when the message 310 for reserving bandwidth is sent) and at the current time. Or may occur in networks where there is no inactive congestion control protocol traffic.
The method for congestion control according to the embodiment of the present application is described above with reference to fig. 1 to 7. Hereinafter, a congestion control apparatus according to an embodiment of the present application will be described with reference to fig. 8 to 9.
Fig. 8 is a schematic block diagram of an apparatus for scheduling packets according to an embodiment of the present application. As shown in fig. 8, the apparatus 800 may correspond to the forwarding device in the methods shown in fig. 2 to fig. 7, or may be a chip or a component applied to the forwarding device, and each module or unit in the processing apparatus 800 may be respectively configured to execute each action or process executed by the forwarding device in any method in fig. 2 to fig. 7. As shown in fig. 8, the processing device 800 may include: a processing unit 810 and a communication unit 820.
The processing unit 810 is configured to perform some operations on the received packet to determine a packet to be forwarded to the destination device.
For example, the processing unit 810 may be configured to generate a corresponding virtual credit packet according to the received non-proactive congestion control protocol data packet. The processing unit 810 may be further configured to assign a weight to the active congestion control protocol credit packet and the virtual credit packet, and may also schedule the received active congestion control protocol credit packet and the virtual credit packet generated according to the received inactive congestion control protocol data packet according to the weight to implement bandwidth allocation and the like.
It should be understood that the processing unit 810 may be configured to perform corresponding operations in the above method embodiments to implement corresponding functions of the above method embodiments, and for brevity, will not be described herein again.
A communication unit 820 for receiving and sending messages. For example, the method is used for receiving a plurality of messages from a sending device, where the received plurality of messages may include messages related to active congestion control protocol traffic and inactive congestion control protocol traffic, and is also used for sending a message to a destination device, for example, for forwarding part or all of the plurality of messages from the sending device.
It should be understood that the communication unit 820 may be configured to receive a packet, and may also be configured to forward a corresponding packet to a destination device according to a scheduling result of the processing unit 810, so as to implement the corresponding function of the foregoing method embodiment, which is not described herein again for brevity.
For example, the processing unit 810 may be configured to execute steps 202 and 203 in the method shown in fig. 2, and the communication unit 820 may be configured to execute steps 201 and 204 in the method shown in fig. 2, where the process of each unit executing the corresponding step is described above, and is not described herein again for brevity.
Fig. 9 is a schematic structural diagram of a forwarding device provided in an embodiment of the present application. As shown in fig. 9, the forwarding device 900 includes a processor 910 and a transceiver 920. Optionally, the forwarding device 900 also includes a memory 930. Wherein, the processor 910, the transceiver 920 and the memory 930 communicate with each other via the internal connection path to transmit control and/or data signals, the memory 930 is used for storing a computer program, and the processor 910 is used for retrieving and running the computer program from the memory 930 to control the transceiver 920 to transmit and receive signals.
The processor 910 and the memory 930 may be combined into a processing device, and the processor 910 is configured to execute the program codes stored in the memory 930 to implement the functions of the forwarding apparatus in the above-described method embodiments. In particular implementations, the memory 930 may be integrated with the processor 910 or separate from the processor 910. The transceiver 920 may be implemented by way of transceiver circuitry.
The forwarding device may further include a communication interface 940, configured to forward the message output by the transceiver 920, or send the received message to the transceiver 920 for further processing.
It should be understood that the processing apparatus 900 may correspond to the forwarding device in the embodiment of the method shown in fig. 2 to fig. 7 according to the present application, and the processing apparatus 900 may also be a chip or a component applied to the forwarding device. Also, each module in the processing device 900 implements the corresponding flow in fig. 2 to 7. For example, the memory 980 may be configured to store a program code, so that when the processor 910 executes the program code, the processor 910 is controlled to execute steps 202 and 203 in the method shown in fig. 2, the transceiver 920 is configured to execute steps 201 and 204 in the method shown in fig. 2, and processes of executing the corresponding steps by the units are already described above, and are not described herein again for brevity.
Alternatively, the memory and the storage in the above-mentioned embodiments of the apparatus may be physically separate units, or the memory and the processor may be integrated together.
In addition, the present application also provides a computer-readable storage medium, in which computer instructions are stored, and when the computer instructions are executed on a computer, the computer is enabled to execute the operations and/or processes performed by the forwarding device in the method for scheduling a packet provided by the present application.
The present application also provides a computer program product comprising computer program code which, when run on a computer, causes the computer to perform the operations and/or processes performed by the forwarding device in the method of scheduling packets provided herein.
The present application also provides an apparatus, which includes a processor and an interface circuit, where the interface circuit is configured to receive computer code or instructions and transmit the computer code or instructions to the processor, and the processor is configured to execute the computer code or instructions to perform operations and/or processes performed by a forwarding device in the method for scheduling packets provided in the present application.
The present application also provides a chip that includes one or more processors. The one or more processors are configured to execute computer programs stored in the memory to perform the operations and/or processes performed by the forwarding device in any of the method embodiments. Wherein the memory for storing the computer program is provided independently of the chip.
Further, the chip may also include one or more communication interfaces. The one or more communication interfaces may be input/output interfaces, input/output circuits, etc. Further, the chip may further include one or more of the memories.
The present application further provides a communication system, which includes at least one forwarding device in the embodiment of the present application, and further includes at least one sending device and at least one destination device. In the communication system, the at least one forwarding device may be capable of performing operations and/or processes performed by the forwarding device in the method for scheduling packets provided by the present application, and the at least one sending device and the at least one destination device may be any device capable of sending and/or receiving packets according to the embodiments of the present application. It should be understood that the sending device and the destination device may be the same device or different types of devices.
Optionally, the at least one forwarding device may also be the forwarding device shown in fig. 9, and may also be a device that includes the apparatus for scheduling packets shown in fig. 8.
Those of ordinary skill in the art will appreciate that the various illustrative elements and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, or combinations of computer software and electronic hardware. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the technical solution. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.
It can be clearly understood by those skilled in the art that, for convenience and simplicity of description, the specific working processes of the above-described systems, apparatuses and units may refer to the corresponding processes in the foregoing method embodiments, and are not described herein again.
In the several embodiments provided in the present application, it should be understood that the disclosed system, apparatus and method may be implemented in other ways. For example, the above-described apparatus embodiments are merely illustrative, and for example, the division of the units is only one logical division, and other divisions may be realized in practice, for example, a plurality of units or components may be combined or integrated into another system, or some features may be omitted, or not executed. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection through some interfaces, devices or units, and may be in an electrical, mechanical or other form.
The units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of the embodiment.
In addition, functional units in the embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit.
The functions may be stored in a computer-readable storage medium if they are implemented in the form of software functional units and sold or used as separate products. Based on such understanding, the technical solution of the present application or portions thereof that substantially contribute to the prior art may be embodied in the form of a software product stored in a storage medium and including instructions for causing a computer device (which may be a personal computer, a server, or a forwarding device) to execute all or part of the steps of the method according to the embodiments of the present application. And the aforementioned storage medium includes: various media capable of storing program codes, such as a usb disk, a removable hard disk, a read-only memory (ROM), a Random Access Memory (RAM), a magnetic disk, or an optical disk.
The above description is only for the specific embodiments of the present application, but the scope of the present application is not limited thereto, and any person skilled in the art can easily conceive of the changes or substitutions within the technical scope of the present application, and shall be covered by the scope of the present application. Therefore, the protection scope of the present application shall be subject to the protection scope of the claims.

Claims (19)

  1. A method for scheduling packets, comprising:
    receiving a plurality of messages from a sending device, wherein the plurality of messages comprise N active congestion control protocol credit messages and M inactive congestion control protocol data messages, and M, N is an integer greater than or equal to 1;
    determining P virtual credit messages corresponding to the M inactive congestion control protocol data messages, wherein P is an integer greater than or equal to 1;
    determining K active congestion control protocol credit messages from the N active congestion control protocol credit messages according to the available bandwidth of the credit messages, the N active congestion control protocol credit messages and the P virtual credit messages, wherein K is an integer which is greater than or equal to 1 and less than or equal to N;
    and transmitting all the K active congestion control protocol credit messages and part or all of the M inactive congestion control protocol data messages.
  2. The method of claim 1, wherein determining K active congestion control protocol credit messages from the N active congestion control protocol credit messages based on the available bandwidth for credit messages, the N active congestion control protocol credit messages, and the P virtual credit messages comprises:
    and performing Weighted Fair Queue (WFQ) scheduling on the N active congestion control protocol credit messages and the P virtual credit messages according to the available bandwidth of the credit messages, the weight of the active congestion control protocol credit messages and the weight of the virtual credit messages, and determining the K active congestion control protocol credit messages from the N active congestion control protocol credit messages according to the scheduling result of the WFQ scheduling.
  3. The method according to claim 1 or 2, wherein before said determining K active congestion control protocol credit messages from the N active congestion control protocol credit messages according to the available bandwidth of credit messages, the N active congestion control protocol credit messages and the P virtual credit messages, the method further comprises:
    and determining the available bandwidth of the credit message according to the total network bandwidth, the corresponding relation between the active congestion control protocol data message and the active congestion control protocol credit message and the corresponding relation between the virtual credit message and the inactive congestion control protocol data message.
  4. The method of any of claims 1 to 3, wherein the plurality of messages further comprises Q proactive congestion control protocol data messages, wherein Q is an integer greater than or equal to 1, the method further comprising:
    determining a forwarding sequence of the Q active congestion control protocol data messages, the K active congestion control protocol credit messages and the M inactive congestion control protocol data messages;
    the forwarding all of the K active congestion control protocol credit messages and part or all of the M inactive congestion control protocol data messages includes:
    and according to the forwarding sequence, forwarding part or all of the Q active congestion control protocol data messages, all of the K active congestion control protocol credit messages and part or all of the M inactive congestion control protocol data messages.
  5. The method of claim 4, wherein the determining the forwarding order of the Q proactive congestion control protocol data packets, the K proactive congestion control protocol credit packets, and the M non-proactive congestion control protocol data packets comprises:
    and determining the forwarding sequence according to the priority of the active congestion control protocol data message, the priority of the active congestion control protocol credit message and the priority of the inactive congestion control protocol data message.
  6. The method according to claim 4 or 5, wherein when the forwarding order is to forward the Q active congestion control protocol data packets first, then forward the K active congestion control protocol credit packets, and finally forward the M inactive congestion control protocol data packets, the forwarding part or all of the Q active congestion control protocol data packets, all of the K active congestion control protocol credit packets, and part or all of the M inactive congestion control protocol data packets according to the forwarding order comprises:
    forwarding the Q active congestion control protocol data messages;
    forwarding the K active congestion control protocol credit messages;
    determining the residual bandwidth of the total bandwidth of the network;
    if the residual bandwidth is larger than or equal to the bandwidth occupied by the M inactive congestion control protocol data messages, forwarding the M inactive congestion control protocol data messages;
    if the residual bandwidth is less than the bandwidth occupied by the M inactive congestion control protocol data messages, forwarding T inactive congestion control protocol data messages in the M inactive congestion control protocol data messages, wherein the bandwidth occupied by the T inactive congestion control protocol data messages is less than the residual bandwidth, and T is an integer which is greater than or equal to 1 and less than M.
  7. The method according to any of claims 1 to 6, further comprising discarding said P virtual credit messages.
  8. The method according to any of claims 1 to 7, wherein the virtual credit packet is encapsulated in an IP packet format, the information other than a protocol field in a network protocol IP header of the virtual credit packet is corresponding information of an IP header in the non-active congestion control protocol data packet, and the protocol field in the IP header of the virtual credit packet is a protocol number of a User Datagram Protocol (UDP);
    the source port number in the UDP header of the virtual credit message is the port number of the Substitute Control Protocol (SCP);
    and the destination port number in the UDP header of the virtual credit message is the destination port number of the data message of the non-active congestion control protocol.
  9. An apparatus for scheduling packets, comprising:
    a communication unit, configured to receive multiple messages from a sending device, where the multiple messages include N active congestion control protocol credit messages and M passive congestion control protocol data messages, and M, N is an integer greater than or equal to 1;
    a processing unit, configured to determine P virtual credit packets corresponding to the M passive congestion control protocol data packets, where P is an integer greater than or equal to 1;
    the processing unit is further configured to determine K active congestion control protocol credit messages from the N active congestion control protocol credit messages according to an available bandwidth of the credit messages, the N active congestion control protocol credit messages, and the P virtual credit messages, where K is an integer greater than or equal to 1 and less than or equal to N;
    the communication unit is further configured to forward all of the K active congestion control protocol credit packets and part or all of the M inactive congestion control protocol data packets.
  10. The apparatus according to claim 9, wherein the processing unit is specifically configured to perform Weighted Fair Queuing (WFQ) scheduling on the N active congestion control protocol credit packets and the P virtual credit packets according to the available bandwidth of the credit packets, the weight of the active congestion control protocol credit packets, and the weight of the virtual credit packets, and determine the K active congestion control protocol credit packets from the N active congestion control protocol credit packets according to a scheduling result of the WFQ scheduling.
  11. The apparatus according to claim 9 or 10, wherein the processing unit is further configured to determine the available bandwidth of credit message according to a total bandwidth of a network, a correspondence between active congestion control protocol data messages and active congestion control protocol credit messages, and a correspondence between virtual credit messages and inactive congestion control protocol data messages before determining K active congestion control protocol credit messages from the N active congestion control protocol credit messages according to the available bandwidth of credit message, the N active congestion control protocol credit messages, and the P virtual credit messages.
  12. The apparatus according to any of claims 9 to 11, wherein the plurality of packets further comprises Q active congestion control protocol data packets, where Q is an integer greater than or equal to 1, and wherein the processing unit is further configured to determine a forwarding order of the Q active congestion control protocol data packets, the K active congestion control protocol credit packets, and the M inactive congestion control protocol data packets;
    the communication unit is specifically configured to forward, according to the forwarding order, part or all of the Q active congestion control protocol data packets, all of the K active congestion control protocol credit packets, and part or all of the M inactive congestion control protocol data packets.
  13. The apparatus according to claim 12, wherein the processing unit is specifically configured to determine the forwarding order according to a priority of an active congestion control protocol data packet, a priority of an active congestion control protocol credit packet, and a priority of an inactive congestion control protocol data packet.
  14. The apparatus according to claim 12 or 13, wherein the communication unit is specifically configured to forward the Q active congestion control protocol data packets when the forwarding order is to forward the Q active congestion control protocol data packets first, forward the K active congestion control protocol credit packets, and forward the M inactive congestion control protocol data packets last;
    forwarding the K active congestion control protocol credit messages;
    determining the residual bandwidth of the total bandwidth of the network;
    if the residual bandwidth is larger than or equal to the bandwidth occupied by the M inactive congestion control protocol data messages, forwarding the M inactive congestion control protocol data messages;
    if the residual bandwidth is less than the bandwidth occupied by the M inactive congestion control protocol data messages, forwarding T inactive congestion control protocol data messages in the M inactive congestion control protocol data messages, wherein the bandwidth occupied by the T inactive congestion control protocol data messages is less than the residual bandwidth, and T is an integer which is greater than or equal to 1 and less than M.
  15. The apparatus according to any of claims 9 to 14, wherein said processing unit is further configured to discard said P virtual credit packets.
  16. The apparatus according to any of claims 9 to 14, wherein the virtual credit packet is encapsulated in an IP packet format, the information other than a protocol field in a network protocol IP header of the virtual credit packet is corresponding information of an IP header in the inactive congestion control protocol data packet, and the protocol field in the IP header of the virtual credit packet is a protocol number of a user datagram protocol, UDP;
    the source port number in the UDP header of the virtual credit message is the port number of the Substitute Control Protocol (SCP);
    and the destination port number in the UDP header of the virtual credit message is the destination port number of the data message of the non-active congestion control protocol.
  17. A forwarding device comprising at least one processor coupled with at least one memory:
    the at least one processor configured to execute computer programs or instructions stored in the at least one memory to cause the terminal device to perform the method of any of claims 1-8.
  18. A computer readable storage medium storing computer instructions which, when executed, implement the method of any one of claims 1 to 8.
  19. An apparatus for scheduling packets, comprising a processor and an interface circuit;
    the interface circuit is used for receiving codes or instructions and transmitting the codes or instructions to the processor;
    the processor is configured to execute the code or instructions to perform the method of any of claims 1 to 8.
CN201980102805.8A 2019-12-31 2019-12-31 Method and device for scheduling message Active CN114788243B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/130825 WO2021134621A1 (en) 2019-12-31 2019-12-31 Message scheduling method and apparatus

Publications (2)

Publication Number Publication Date
CN114788243A true CN114788243A (en) 2022-07-22
CN114788243B CN114788243B (en) 2023-08-22

Family

ID=76686855

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980102805.8A Active CN114788243B (en) 2019-12-31 2019-12-31 Method and device for scheduling message

Country Status (2)

Country Link
CN (1) CN114788243B (en)
WO (1) WO2021134621A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130343191A1 (en) * 2012-06-21 2013-12-26 Microsoft Corporation Ensuring predictable and quantifiable networking performance
CN105282029A (en) * 2014-06-30 2016-01-27 中兴通讯股份有限公司 External layer label coding method, traffic congestion control method and device
CN107046495A (en) * 2016-02-06 2017-08-15 阿里巴巴集团控股有限公司 Methods, devices and systems for building VPN
CN109067665A (en) * 2018-09-25 2018-12-21 华为技术有限公司 Jamming control method and the network equipment
CN110166366A (en) * 2018-02-14 2019-08-23 华为技术有限公司 Method for controlling network congestion, device and system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012061980A1 (en) * 2010-11-09 2012-05-18 华为技术有限公司 Method and apparatus for transmitting data packets
US9354696B2 (en) * 2011-09-30 2016-05-31 Intel Corporation Credit based power management
CN102546098B (en) * 2011-12-15 2015-01-21 福建星网锐捷网络有限公司 Data transmission device, method and system
US9160678B2 (en) * 2013-04-15 2015-10-13 International Business Machines Corporation Flow control credits for priority in lossless ethernet
US9900253B2 (en) * 2014-08-28 2018-02-20 Cavium, Inc. Phantom queue link level load balancing system, method and device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130343191A1 (en) * 2012-06-21 2013-12-26 Microsoft Corporation Ensuring predictable and quantifiable networking performance
CN105282029A (en) * 2014-06-30 2016-01-27 中兴通讯股份有限公司 External layer label coding method, traffic congestion control method and device
CN107046495A (en) * 2016-02-06 2017-08-15 阿里巴巴集团控股有限公司 Methods, devices and systems for building VPN
CN110166366A (en) * 2018-02-14 2019-08-23 华为技术有限公司 Method for controlling network congestion, device and system
CN109067665A (en) * 2018-09-25 2018-12-21 华为技术有限公司 Jamming control method and the network equipment

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SEQUANS COMMUNICATIONS: "R2-1815083 \"Queue Management vs Flow Control for Congestion Handling\"", 3GPP TSG_RAN\\WG2_RL2, no. 2 *

Also Published As

Publication number Publication date
CN114788243B (en) 2023-08-22
WO2021134621A1 (en) 2021-07-08

Similar Documents

Publication Publication Date Title
US10721754B2 (en) Data transmission method and apparatus
EP1985092B1 (en) Method and apparatus for solving data packet traffic congestion.
US9642156B2 (en) Transmitting radio node and method therein for scheduling service data flows
US9948563B2 (en) Transmitting node, receiving node and methods therein
US20200296629A1 (en) Back-pressure control in a telecommunications network
CN109842570B (en) Aggregation rate control method, equipment and system
EP3915297B1 (en) Methods and apparatus for packet dropping in a fronthaul network
WO2022148371A1 (en) Message transmission method and apparatus
WO2021114107A1 (en) Data transmission method and apparatus
Abish et al. Detecting packet drop attacks in wireless sensor networks using bloom filter
CN113938904A (en) Data transmission method and device
EP3420689A1 (en) Congestion control in a telecommunications network
EP2292060A1 (en) Method for achieving an optimal shaping rate for a new packet flow
CN105659543B (en) Downlink flow management
CN114788243B (en) Method and device for scheduling message
Eklund et al. Efficient scheduling to reduce latency for signaling traffic using CMT-SCTP
Zhou et al. Managing background traffic in cellular networks
WO2023050415A1 (en) Multipath transmission method and apparatus, and communication device
EP4080836B1 (en) System and method for multipath transmission
WO2022202976A1 (en) Communication control method
EP4340314A1 (en) Data transmission method and apparatus, device, and storage medium
US11202226B2 (en) Uplink data transmission method, timer configuration method, and related device
Irazabal Bengoa Enhanced quality of service mechanisms for 5G networks
CN117440443A (en) Data packet distribution method, device, storage medium, equipment and program product
CN117641441A (en) Congestion control method and device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant