CN109039936B - Transmission rate control method, device, sending equipment and receiving equipment - Google Patents

Transmission rate control method, device, sending equipment and receiving equipment Download PDF

Info

Publication number
CN109039936B
CN109039936B CN201811003680.7A CN201811003680A CN109039936B CN 109039936 B CN109039936 B CN 109039936B CN 201811003680 A CN201811003680 A CN 201811003680A CN 109039936 B CN109039936 B CN 109039936B
Authority
CN
China
Prior art keywords
point
rate
sending
transmission
receiving
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.)
Active
Application number
CN201811003680.7A
Other languages
Chinese (zh)
Other versions
CN109039936A (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
Priority to CN201811003680.7A priority Critical patent/CN109039936B/en
Publication of CN109039936A publication Critical patent/CN109039936A/en
Priority to PCT/CN2019/082462 priority patent/WO2020042624A1/en
Application granted granted Critical
Publication of CN109039936B publication Critical patent/CN109039936B/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
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/263Rate modification at the source after receiving feedback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion

Landscapes

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

Abstract

The application discloses a transmission rate control method, a transmission rate control device, sending equipment and receiving equipment. The transmission rate control method is applied to DCN and comprises the following steps: a sending point receives a first CNP sent by a receiving point, wherein the first CNP comprises rate information which indicates the receiving rate of the receiving point for receiving a data packet included in the data stream; determining the receiving rate according to the rate information; determining an emptying rate according to the receiving rate; and updating the sending rate of the data stream to the emptying rate. According to the technical scheme, the sending point adjusts the sending rate of the data stream according to the rate information of the receiving point, and the sending rate of the data stream can be accurately adjusted, so that queue congestion of the transmission point can be eliminated, and the transmission performance of the data stream is improved.

Description

Transmission rate control method, device, sending equipment and receiving equipment
Technical Field
The present application relates to the field of communications technologies, and in particular, to a transmission rate control method, an apparatus, a sending device, and a receiving device.
Background
A Data Center Network (DCN) is a core network for transmitting data, and is widely applied to the field of network transmission. A typical DCN includes a sending point, a transmission point and a receiving point, where the transmission point receives packets from the sending point and sends them to the receiving point. With the development of artificial intelligence, cloud computing, real-time big data analysis and the like, the DCN should meet the requirements of ultra-low delay, high throughput, no packet loss and the like, and based on the requirements, the DCN supports a Remote Direct Memory Access (RDMA) data transmission scheme.
Because network congestion can cause phenomena such as overlong data transmission delay and even packet loss, RDMA provides a Data Center Quantized Congestion Notification (DCQCN) scheme based on the phenomena. Specifically, when the transmission point detects congestion, an Explicit Congestion Notification (ECN) flag is added to the received packet. After receiving the data packet with the ECN flag, the receiving point sends a Congestion Notification Packet (CNP) to the sending point to notify the sending point that the network is congested. And when the transmitting point receives the CNP, the congestion is eliminated by reducing the transmitting rate of the data flow to which the data packet belongs. And after the congestion is eliminated, the sending point increases the sending rate of the data flow to which the data packet belongs.
In an actual application scenario, a sending point determines the sending rate of the data stream according to a preset adjustment factor, and adjusts the sending rate of the data stream by adjusting the adjustment factor. This adjustment causes the transmission rate of the data stream to oscillate, thereby causing the transmission performance of the data stream to decrease.
Disclosure of Invention
The application provides a transmission rate control method, a transmission rate control device, a sending device and a receiving device, which are applied to a DCN (distributed control network) to realize the accurate adjustment of the sending rate of a data stream, thereby eliminating the queue congestion of a transmission point and improving the transmission performance of the data stream.
The technical scheme provided by the application is applied to DCN, the DCN comprises a sending point, a transmission point and a receiving point, and the sending point is used for sending a data stream to the receiving point through the transmission point.
In a first aspect, the present application provides a transmission rate control method, including:
the sending point receives a first congestion notification message (CNP) sent by the receiving point, the first CNP indicates that the transmission point is congested when the transmission point forwards a first data packet, the data stream comprises the first data packet, the first CNP comprises rate information, and the rate information indicates a receiving rate of the receiving point for receiving the data packet included in the data stream;
the sending point determines the receiving rate according to the rate information;
the sending point determines a drain rate according to the receiving rate, wherein the drain rate indicates that the transmission point puts all data packets included in a queue in the transmission point out of the queue, and the queue includes the data packets in the data stream;
and the sending point updates the sending rate of the data stream to the emptying rate.
In this implementation, the CNP includes rate information of a data packet of a data stream sent by a receiving point receiving sending point. And after receiving the CNP, the sending point determines the receiving rate of the receiving point according to the rate information. Then, the sending point determines the target sending rate of the data stream according to the receiving rate of the receiving point, and further updates the sending rate of the data stream to the target sending rate.
By adopting the implementation mode, the sending point takes the receiving rate of the receiving point as a parameter basis for adjusting the sending rate of the data stream, and the sending rate of the data stream can be purposefully reduced, so that the data packets contained in the congested queue in the transmission point can be quickly emptied, and the congestion existing in the transmission point can be quickly eliminated.
In an alternative design, the determining, by the sending point, the drain rate based on the receive rate includes:
the sending point generates an overspeed ratio factor a according to the sending rate and the receiving rate of the data stream, wherein the overspeed ratio factor a satisfies the following conditions:
Figure BDA0001783540290000021
wherein R isSendingRefers to the sending rate, R, of said data streamReceivingRefers to the receiving rate;
determining the emptying time T according to the overspeed ratio factor apauseSaid emptying time TpauseSatisfies the following conditions: t ispauseA × (tgt + rtt) + tgt, where tgt is a time interval that a difference between a timestamp when a packet in the queue exits the queue and a timestamp when the packet enters the queue should satisfy, and rtt is a time duration that when no queue exists in the transmission point, the packet is transmitted from the transmission point to the reception point via the transmission point, and then the reception point returns to the transmission point;
according to said emptying time TpauseCalculating the emptying rate RpauseSaid emptying rate RpauseSatisfies the following conditions:
Figure BDA0001783540290000022
in the present application, in order to quickly eliminate congestion at the transmission point, all data packets in the queue of the transmission point are dequeued, so that the transmission point reaches a no-queue state. The application refers to "bringing the transmission point to a queue-less state" as draining. In one implementation of the present application, the transfer point is instructed to empty within an empty time. The drain time is a duration indicating that all packets included in the queue in the transmission point are out of the queue. The sending point may calculate a drain rate of the data stream based on the drain time.
By adopting the implementation mode, the sending point can accurately determine the emptying rate of the data stream, so that the data stream is accurately decelerated.
In an optional design, after the sending point updates the sending rate of the data stream to the drain rate, the method further includes:
the transmitting point transmits the data stream at the drain rate for the drain time;
and the sending point updates the sending rate of the data stream to the receiving rate.
The sending point sends the data stream at the emptying rate for the continuous emptying time, so that all data packets contained in the queue of the transmission point are quickly dequeued, and the transmission delay of the data packets contained in the queue can be further reduced. After the congested data packets in the queue of the transmission point are emptied, the sending point updates the sending rate of the data stream from the emptying rate to the receiving rate.
By adopting the implementation mode, in the emptying stage, the emptying time of the congestion existing in the transmission point and the emptying rate of the data flow are determined, and the congestion existing in the transmission point is emptied quickly and accurately. In the speed stabilizing stage, a clear target is provided for the sending point to increase the sending rate of the data stream, so that the adjustment of the sending rate of the data stream is more accurate.
In an optional design, after the sending point updates the sending rate of the data stream to the receiving rate, the method further includes:
the sending point detects whether the sending rate of the data stream reaches the maximum sending rate of the sending point;
when the sending rate of the data stream does not reach the maximum sending rate of the sending point, the sending point judges whether a second CNP sent by the receiving point is received within a second preset interval duration, the second CNP indicates that the transmission point is congested when the transmission point forwards a second data packet, the data stream comprises the second data packet, the second preset interval duration is greater than a first preset interval duration, and the first preset interval duration is the minimum interval duration for the receiving point to send the CNP;
when the second CNP is not received within the second preset interval duration, the sending point updates the sending rate of the data stream to a target sending rate, where the target sending rate satisfies:
Figure BDA0001783540290000031
the sending point repeatedly executes the operation of detecting whether the sending rate of the data stream reaches the maximum sending rate of the sending point until the sending rate of the data stream reaches the maximum sending rate of the sending point.
Wherein the data stream is transmitted by the transmitting point at a receiving rate resulting in a low throughput of data packets of the data stream. Based on this, on the premise of ensuring that the transmission point has no congestion, the sending point can further increase the sending rate of the data stream. Specifically, in the present application, the sending point uses the maximum sending rate of the sending point as a final target rate, and every round of speed increase increases the sending rate of the data stream to a half of the sum of the sending rate of the data stream and the maximum sending rate of the sending point until the sending rate of the data stream reaches the maximum sending rate of the sending point.
By adopting the implementation mode, the sending point of the data stream takes the maximum sending rate as the reference data to increase the sending rate of the data stream, so that when a plurality of data streams need to increase the sending rate, the fairness of increasing the speed among the data streams can be ensured.
In an alternative design, the rate information includes: a first period and a sum of lengths of data packets of the data stream received by the receiving point within the first period; or
The rate information includes the reception rate.
By adopting the implementation mode, the sending point takes the receiving rate of the receiving point as a parameter basis for adjusting the sending rate of the data stream, and the sending rate of the data stream can be purposefully reduced, so that the data packets contained in the congested queue in the transmission point can be quickly emptied, and the congestion existing in the transmission point can be quickly eliminated.
In an alternative design, the data packets of the data stream received by the receiving point in the first period include the first data packet.
Specifically, in an optional implementation manner, the receiving point continuously determines each period from an initial time, and in this implementation manner, the receiving point takes a corresponding period when receiving the first data packet as the first period. Another optional implementation manner is that the receiving point takes the time when the first data packet is received as the starting time of the first period, and takes the time period of the starting time after the period of the later period as the first period.
By adopting the implementation mode, the receiving point can determine the corresponding rate of receiving the data packet of the data stream within the time period of congestion of the transmission point, so that the sending rate of the data stream is adjusted for the sending point, and accurate data reference is provided.
In an alternative design, the receiving rate is a rate corresponding to a period in which the data packets of the data stream received by the receiving point include the first data packet.
In particular, in one possible implementation, the receiving point determines each period continuously from an initial time. In this implementation, when receiving the first data packet, the receiving point determines a time period of a cycle in which the time when the first data packet is received is, obtains a sum of lengths of data packets of the data stream received in the time period, and further calculates the receiving rate. In another possible implementation manner, when the receiving point receives the first data packet, it starts to calculate the sum of the lengths of the data packets of the data stream received within the period duration, and further calculates the receiving rate.
By adopting the implementation mode, the receiving point can determine the corresponding rate of receiving the data packet of the data stream within the time period of congestion of the transmission point, so that the sending rate of the data stream is adjusted for the sending point, and accurate data reference is provided.
In a second aspect, the present application provides a transmission rate control method, including:
the receiving point receives a first data packet sent by the sending point and forwarded by the transmission point, the data stream comprises the first data packet, the first data packet comprises an Explicit Congestion Notification (ECN) mark, and the ECN mark indicates that the transmission point has congestion when the transmission point forwards the first data packet;
the receiving point generates a first congestion notification message (CNP) according to an ECN mark included in the first data packet, where the first CNP includes rate information indicating a receiving rate at which the receiving point receives a data packet included in the data stream;
and the receiving point sends the first CNP to the sending point.
In the application, after receiving a data packet containing an ECN marker, a receiving point determines rate information of receiving the data packet of a data stream to which the data packet belongs. The receiving point adds the rate information to the generated CNP. And the receiving point sends the CNP to the sending point, and is used for triggering the sending point to adjust the sending rate of the data stream according to the rate information.
By adopting the implementation mode, the sending point takes the receiving rate of the receiving point as a parameter basis for adjusting the sending rate of the data stream, and the sending rate of the data stream can be purposefully reduced, so that the data packets contained in the congested queue in the transmission point can be quickly emptied, and the congestion existing in the transmission point can be quickly eliminated.
In an alternative design, the rate information includes: a first period and a sum of lengths of data packets of the data stream received by the receiving point within the first period; or
The rate information includes the reception rate.
By adopting the implementation mode, the sending point takes the receiving rate of the receiving point as a parameter basis for adjusting the sending rate of the data stream, and the sending rate of the data stream can be purposefully reduced, so that the data packets contained in the congested queue in the transmission point can be quickly emptied, and the congestion existing in the transmission point can be quickly eliminated.
In an alternative design, the data packets of the data stream received by the receiving point in the first period include the first data packet.
Specifically, in an optional implementation manner, the receiving point continuously determines each period from an initial time, and in this implementation manner, the receiving point takes a corresponding period when receiving the first data packet as the first period. Another optional implementation manner is that the receiving point takes the time when the first data packet is received as the starting time of the first period, and takes the time period of the starting time after the period of the later period as the first period.
By adopting the implementation mode, the receiving point can determine the corresponding rate of receiving the data packet of the data stream within the time period of congestion of the transmission point, so that the sending rate of the data stream is adjusted for the sending point, and accurate data reference is provided.
In an alternative design, the receiving rate is a rate corresponding to a period in which the data packets of the data stream received by the receiving point include the first data packet.
In particular, in one possible implementation, the receiving point determines each period continuously from an initial time. In this implementation, when receiving the first data packet, the receiving point determines a time period of a cycle in which the time when the first data packet is received is, obtains a sum of lengths of data packets of the data stream received in the time period, and further calculates the receiving rate. In another possible implementation manner, when the receiving point receives the first data packet, it starts to calculate the sum of the lengths of the data packets of the data stream received within the period duration, and further calculates the receiving rate.
By adopting the implementation mode, the receiving point can determine the corresponding rate of receiving the data packet of the data stream within the time period of congestion of the transmission point, so that the sending rate of the data stream is adjusted for the sending point, and accurate data reference is provided.
In a third aspect, the present application further provides a transmission rate control apparatus, which is disposed at a transmission point and includes a transmitter, a receiver, and a processor. The transmitter is configured to perform transmission of the data stream in each implementation manner of the first aspect and the first aspect. The receiver is configured to perform reception of the CNP in each implementation manner of the first aspect and the first aspect. The processor is configured to perform operations except for transmission of a data stream and reception of a CNP in each implementation manner of the first aspect.
In a fourth aspect, the present application further provides a transmission rate control apparatus, disposed at a receiving point, including a transmitter, a receiver, and a processor. The transmitter is configured to perform the transmission of the CNP in the implementations of the second aspect and the second aspect. The receiver is configured to perform the second aspect and the reception of the data packets of the data stream in the implementations of the second aspect. The processor is configured to perform operations other than the transmission of the CNP and the reception of the data packet of the data stream in the implementations of the second aspect and the second aspect.
In a fifth aspect, the present application further provides a transmission rate control apparatus, which is disposed at a sending point and includes modules for executing the method steps in the implementations of the first aspect and the first aspect.
In a sixth aspect, the present application further provides a transmission rate control apparatus, which is disposed at a receiving point and includes modules for performing the method steps in the implementations of the second aspect and the second aspect.
In a seventh aspect, the present application provides a transmitting device, serving as the transmitting point, comprising a transceiver, a processor, and a memory. The transceiver, the processor and the memory can be connected through a bus system. The memory is for storing a program, instructions or code, and the processor is for executing the program, instructions or code in the memory to perform the method of the first aspect, or any one of the possible designs of the first aspect.
In an eighth aspect, the present application provides a receiving device, serving as the receiving point, comprising a transceiver, a processor, and a memory. The transceiver, the processor and the memory can be connected through a bus system. The memory is for storing a program, instructions or code, and the processor is for executing the program, instructions or code in the memory to perform the method of the second aspect, or any one of the possible designs of the second aspect.
In a ninth aspect, the present application provides a computer readable storage medium having stored therein instructions which, when run on a computer, cause the computer to perform the method of the first aspect, the second aspect, any of the possible designs of the first aspect, or any of the possible designs of the second aspect.
In the present application, in response to the received first packet including the ECN flag, the receiving point generates a CNP and transmits the CNP to the transmitting point. Wherein a transmitting point transmits a data stream to the receiving point via a transmission point, the data stream comprising the first data packet. In order to solve the problem of the degradation of the transmission performance of the data stream, the CNP includes rate information of the reception point. The rate information is a rate at which the receiving point receives packets of the data stream. And the sending point determines the target sending rate of the data stream according to the rate information of the receiving point, and then adjusts the sending rate of the data stream according to the target sending rate. Therefore, according to the technical scheme of the application, the sending point adjusts the sending rate of the data stream according to the rate information of the receiving point, and the sending rate of the data stream can be accurately adjusted, so that the queue congestion of the transmission point can be eliminated, and the transmission performance of the data stream is improved.
Drawings
In order to more clearly explain the technical solution of the present application, the drawings needed to be used in the embodiments will be briefly described below, and it is obvious to those skilled in the art that other drawings can be obtained according to the drawings without creative efforts.
FIG. 1 is a schematic diagram of the structure of a DCN of the present application;
fig. 2 is a signaling interaction diagram of a DCQCN method according to the present application;
fig. 3 is a schematic diagram of a data frame structure of the CNP of the present application;
FIG. 4 is a flow chart of a method of one embodiment of the transmission rate control method of the present application;
fig. 5 is a schematic diagram of a data frame structure of a first CNP according to an embodiment of the present application;
FIG. 6 is a flow chart of another embodiment of a transmission rate control method of the present application;
FIG. 7 is a topology diagram of one embodiment of a DCN of the present application;
fig. 8 is a schematic structural diagram of an embodiment of a transmission rate control apparatus according to the present application;
FIG. 9 is a schematic structural diagram of an embodiment of a transmitting device of the present application;
fig. 10 is a schematic structural diagram of another embodiment of the transmission rate control apparatus of the present application;
fig. 11 is a schematic structural diagram of an embodiment of a receiving apparatus of the present application.
Detailed Description
The DCN includes a plurality of transmission points, and a plurality of reception points. Wherein, the sending point, the receiving point and the transmission point are all network devices. The sending point and the receiving point are for example switches, routers or servers. The transmission point is for example a switch or a router. Referring to fig. 1, fig. 1 is a schematic structural diagram of a DCN according to the present application. The DCN shown in fig. 1 includes a transmission point 1, a transmission point 2, a reception point 1, and a reception point 2.
It should be understood that fig. 1 is only an exemplary structural diagram of the DCN of the present application, and in practical applications, the number of transmission points, and the number of reception points included in the DCN may be more.
In one implementation of the present application, one of a plurality of transmission points of a DCN may transmit a data stream. For example, in fig. 1, a transmitting point 1 transmits a data stream 1, and the data stream 1 is transmitted to a receiving point 1 via a transmitting point 1.
In another implementation of the present application, one of the plurality of transmission points may transmit at least two data streams. For example, in fig. 1, transmission point 1 may transmit data stream 2 and data stream 3 in addition to data stream 1. In this implementation, data stream 2 and data stream 3 may be transmitted via the same transmission point, e.g., data stream 2 and data stream 3 are both transmitted via transmission point 1. Data stream 2 and data stream 3 may also be transmitted via different transmission points, e.g. data stream 2 via transmission point 1 and data stream 3 via transmission point 2. Data stream 2 and data stream 3 may be transmitted to the same receiving point, e.g., both data stream 2 and data stream 3 are transmitted to receiving point 1 (not shown in fig. 1). Data stream 2 and data stream 3 may also be transmitted to different receiving points, e.g. data stream 2 to receiving point 1 and data stream 3 to receiving point 2.
A data flow refers to a sequence of data packets being transmitted from a sending point to a receiving point, the data flow comprising a plurality of data packets. Any data packet in the data packet sequence is queued at a transmission point after being transmitted from a transmission point. And after the data packet is out of the queue from the transmission point, transmitting the data packet to the receiving point. Wherein enqueuing refers to the entry of the data packet into a queue included in the transmission point, and dequeuing refers to the exit of the data packet from the queue included in the transmission point. The queue is a linear table included by the transmission point for scheduling packets. The transmission point realizes the storage of the queue through a temporary memory included by the transmission point. And after receiving the data packet sent by the sending point, the transmission point puts the data packet into a queue, and then carries out queue-removing operation on the data packet according to a queue scheduling algorithm. The queue scheduling algorithm includes a First In First Out (FIFO) queue scheduling algorithm, a Weighted Fair Queuing (WFQ) scheduling algorithm, a Priority Queuing (PQ) scheduling algorithm, or a Custom Queuing (CQ) scheduling algorithm. Based on this, when the queue length is greater than a certain value, which results in the interval duration from the enqueue to the dequeue of the data packet being greater than a certain duration, this phenomenon is referred to as congestion at the transmission point.
Congestion at a transmission point may cause a data packet of a data stream passing through the transmission point to be transmitted for a long time, thereby reducing the transmission performance of the data stream. In view of the above, the present application provides a DCQCN method, which eliminates congestion at a transmission point by adjusting a sending rate of a data stream, and improves transmission performance of the data stream.
Referring to fig. 2, fig. 2 is a signaling interaction diagram of a DCQCN method according to the present invention. The transmission point at which congestion occurs is, for example, transmission point 1 shown in fig. 1. The transmission point 1 is configured to forward the data packet of the data flow 1 sent by the sending point 1 to the receiving point 1, and the queue congested in the transmission point 1 includes the data packet 1 of the data flow 1. The DCQCN method 100 shown in fig. 2 includes the following steps:
step S101, in response to that the length of the queue in the transmission point 1 exceeds a preset threshold, the transmission point 1 marks the ECN for the data packet 1, and sends the data packet 1 containing the ECN mark to the receiving point 1.
In the present application, a threshold value is set in advance for the length of a queue in a transmission point, where the threshold value is also referred to as a waterline and is used to indicate whether congestion exists in the queue in the transmission point. Wherein, waterline K satisfies: and K is B multiplied by tgt, wherein B refers to the speed of the data packets in the queue to be out of the queue, and tgt refers to the time interval which should be satisfied by the difference between the time stamp when the data packets in the queue are out of the queue and the time stamp when the data packets in the queue are in the queue.
The data packets of the data stream sent by the sending point all include an ECN flag field. The ECN flag field is a congestion confirmation flag defined by a Transmission Control Protocol (TCP)/Internet Protocol (IP) protocol, and the initial value is, for example, null. When the transmission point detects congestion, the ECN flag field in the data packet in the transmission point queue is enabled, for example, the value of the ECN flag field is set to 1, which indicates that the data packet to which the ECN flag field belongs is in a congestion state when the transmission point transmits the data packet.
In this application, the above process of enabling the ECN flag field in the data packet may be referred to as: and marking the ECN for the data packet. The ECN flag indicates the ECN flag field after being enabled, for example, the ECN flag indicates that the value of the ECN flag field is 1.
In the implementation manner of the application, the transmission point 1 detects whether the length of the queue in the transmission point 1 exceeds the waterline, and if the length of the queue of the transmission point 1 exceeds the waterline, the transmission point 1 is indicated to have congestion. And the transmission point 1 marks ECN marks on the data packets which are queued, and then continues to transmit the queued data packets which comprise the ECN marks and the data packets which are not marked with the ECN marks and are contained in the queue. If the queue length of the transmission point 1 does not exceed the waterline, indicating that the transmission point 1 has no congestion, the transmission point 1 continues to transmit the data packets entering the queue and all the data packets contained in the queue.
In an alternative example of the present application, if there is congestion at transmission point 1, data packet 1 is an enqueued data packet, transmission point 1 marks ECN for data packet 1, and sends data packet 1 including ECN mark to receiving point 1 when data packet 1 including ECN mark is dequeued.
It should be understood that in the present application, the transmission point 1 may forward a plurality of different data streams. Based on this, the data packets queued at transmission point 1 include data packets of different data streams. In this step, the transmission point 1 marks the same ECN for each data packet in the queue.
Step S102, in response to the ECN flag included in the data packet 1, the receiving point 1 generates a CNP1, and transmits the CNP1 to the transmitting point 1.
The CNP1 is a CNP corresponding to the data stream 1 to which the data packet 1 belongs, and is used to trigger the sending point 1 to adjust the sending rate of the data stream 1.
It should be understood that the packet includes a flow identification therein, which is used to identify the data flow to which the packet belongs. For example, the value of the flow id included in the packet 1 is 01, indicating that the packet 1 belongs to the flow 1; the value of the flow id included in the packet 2 is 02, indicating that the packet 2 belongs to the data flow 2. Based on this, after receiving the packet 1, the receiving point 1 acquires the stream id 01 of the packet 1, and adds the stream id 01 to the generated CNP, thereby obtaining the CNP 1.
Specifically, the frame structure of CNP1 is shown in fig. 3, and includes: a Media Access Control (MAC) header, an internet protocol version 4 (IPv 4), a User Datagram Protocol (UDP) header, a Base Transport Header (BTH), a 16-byte reserved bit, an advanced cyclic redundancy check (ICRC), and a Frame Check Sequence (FCS). In a possible implementation manner, the IPv4 header in the frame structure of the CNP1 may be replaced by an internet protocol version 6 (IPv 6) header. The definition of each field in the frame structure of the CNP1 may refer to the description in the annex 17.9.3(annex 17.9.3) in the remote memory direct access second edition (remote direct memory over converted ethernet version 2, RoCE v2) standard protocol based on the converged ethernet, which is not described herein again.
Furthermore, the congestion state of transmission point 1 may last for a period of time, and the packets received by reception point 1 in data flow 1 during the period of time all contain ECN marks. Based on this, in order to avoid repeatedly sending the CNP1 to the sending point 1 for multiple times, the receiving point 1 does not send the CNP1 to the sending point 1 within the first preset interval duration from the time when the receiving point 1 sends the CNP1 this time. If the data packet of the data stream 1 received by the receiving point 1 still contains the ECN flag after the first preset interval duration of the current CNP1 transmission, the receiving point 1 transmits a CNP1 to the transmitting point 1. In an alternative embodiment of the present application, the first preset interval duration is, for example, 50 μ s.
Step S103, after receiving point 1 receives CNP1, adjusting the sending rate of data stream 1.
The sending point 1 adjusting the sending rate of the data flow 1 includes reducing the sending rate of the data flow 1 to eliminate the congestion existing in the transmission point 1; after it is determined that the congestion existing at transmission point 1 is removed, the sending rate of data flow 1 is increased.
For convenience of describing the relationship between the transmission rate before adjustment and the transmission rate after adjustment, in the present application, the transmission rate before any adjustment is described as "transmission rate of data stream" or "current transmission rate of data stream", and the transmission rate after the adjustment is described as "target transmission rate". The transmission rate before each adjustment is also typically the rate at which the data stream is being transmitted that is being used by the transmission point.
A speed reduction stage:
the current transmission rate of data stream 1 is, for example, RCTarget sending rate R after data stream 1 is slowed downTWith the current transmission rate RCSatisfies the following conditions:
Figure BDA0001783540290000101
the sending point 1 has the current sending rate R as the sending rate of the data stream 1CDown to a target sending rate RT
Wherein, alpha refers to a rate reduction factor, and the value of alpha is updated according to a preset rule. Specifically, when the DCN network is established, the initial value of α is, for example, α1,α1Has a value of 1. When the sending point 1 receives the CNP1 for the first time, alpha is1Used to determine a target transmission rate and then reduce the transmission rate of data stream 1 to that according to alpha1A target sending rate is determined. If the sending point 1 receives the CNP1 within the first preset interval duration, updating alpha according to alpha ═ 1-g) alpha + g to obtain alpha2Will be alpha2Which is used to determine the target transmission rate and then reduces the transmission rate of data stream 1 to the target transmission rate determined according to alpha 2. If the sending point 1 does not receive the CNP1 within the first preset interval duration, updating alpha according to alpha-alpha (1-g) to obtain alpha3But not according to alpha3A target sending rate is determined. If sending point 1 receives CNP1 again, then alpha will be3As a new initial value, for determining the target transmission rate. Wherein g is an update weight of α, 0<g<1。
It should be understood that the value of α is different in different scenes, and in order to avoid confusion, the present application distinguishes α in different scenes by way of subscript labelingAnd (4) dividing. Thus, in the above implementation, α1、α2And alpha3Not sub-parameters of α, but α in different scenes.
And (3) a speed increasing stage:
the principle of eliminating congestion is to make the data packet queue rate of the congestion queue lower than the data packet queue rate of the data flow by reducing the sending rate of the data flow. Based on this, after the queue in the transmission point 1 removes the congestion, if the transmission point 1 still transmits the data flow 1 at a lower transmission rate, the data packet of the data flow 1 is underthroughput. In view of this, after the queue of transmission point 1 removes congestion, transmission point 1 should increase the transmission rate of data flow 1.
It should be understood that, as shown in the description of step S102, the minimum time interval between two CNP1 receptions by the sending point 1 is the first preset interval duration, and if the sending point 1 does not receive the CNP1 again after receiving the CNP1 for the first time, the congestion existing at the transmission point 1 is eliminated. Based on this, in the present application, if the sending point 1 does not receive the CNP1 within the second preset interval duration after reducing the sending rate of the data stream, it is considered that the congestion existing at the transmission point 1 is eliminated, and the sending point 1 starts to increase the sending rate of the data stream 1. And the second preset interval duration is greater than the first preset interval duration. In an alternative embodiment of the present application, the second preset interval duration is, for example, 55 μ s.
In this application, the sending point 1 increases the sending rate of the data stream 1 according to three stages, where the three stages include: a Fast Recovery (FR) stage, an Active Increment (AI) stage, and a Hyper Active Increment (HAI) stage. Specifically, after determining to eliminate congestion, the transmission point 1 enters the FR stage to increase the transmission rate of the data flow 1. The CNP1 is not received within a second preset interval duration after the FR phase ramp-up, and the transmission point 1 enters the AI phase to continue to ramp-up the transmission rate of data flow 1. After the AI phase is accelerated, the CNP1 is not received within a second preset interval duration, and the transmission point 1 enters the HAI phase to continue to increase the transmission rate of the data flow 1.
In an alternative implementation of the present application, the current of data flow 1The transmission rate being, for example, RCIn this scenario, RCIs the target sending rate after the last speed reduction in the speed reduction stage. The target sending rate corresponding to the FR stage is RT1,RT1Is a preset fixed value. Transmission point 1 at transmission rate RCNo reception of CNP1 within a second preset interval duration of transmitting data stream 1, according to
Figure BDA0001783540290000111
And determining the sending rate after the first speed increase in the FR stage, and then updating the sending rate of the data stream 1 to the sending rate after the first speed increase in the FR stage by the sending point 1. Further, the sending point 1 does not receive the CNP1 within a second preset interval duration of sending the data stream 1 at the sending rate after the first speed increase of the FR stage, according to the method
Figure BDA0001783540290000112
And determining the sending rate after the second speed increase in the FR stage, and then updating the sending rate of the data stream 1 to the sending rate after the second speed increase in the FR stage by the sending point 1. And circulating the steps, so that the sending rate of the data stream 1 is continuously close to the target sending rate R corresponding to the FR stageT1
The target transmission rate corresponding to the AI phase is, for example, RT2,RT2Satisfies the following conditions: rT2=RT1+RAIWherein R isAIIndicating the incremental rate step. When R isC=RT1At a transmission rate R, transmission point 1CNo reception of CNP1 within a second preset interval duration of transmitting data stream 1, according to
Figure BDA0001783540290000113
And determining the sending rate after the first acceleration in the AI stage, and then updating the sending rate of the data flow 1 to the sending rate after the first acceleration in the AI stage by the sending point 1. Further, the sending point 1 does not receive the CNP1 within a second preset interval duration of sending the data flow 1 at the sending rate after the first acceleration of the AI phase, according to the following scheme
Figure BDA0001783540290000114
And determining the sending rate after the second acceleration in the AI stage, and then updating the sending rate of the data stream 1 to the sending rate after the second acceleration in the AI stage by the sending point 1. Circulating in this way, the sending rate of the data flow 1 is enabled to be continuously close to the target sending rate R corresponding to the AI stageT2
The target sending rate corresponding to the HAI stage is RT3,RT3Satisfies the following conditions: rT3=RT1+N*RAIWherein N is an integer greater than 1. When R isC=RT2At a transmission rate R, transmission point 1CNo reception of CNP1 within a second preset interval duration of transmitting data stream 1, according to
Figure BDA0001783540290000115
And determining the sending rate after the first acceleration in the HAI stage, and then updating the sending rate of the data stream 1 to the sending rate after the first acceleration in the HAI stage by the sending point 1. Further, the sending point 1 does not receive the CNP1 within a second preset interval duration of sending the data stream 1 at the sending rate after the first acceleration of the HAI stage, according to the method
Figure BDA0001783540290000116
And determining the sending rate after the second acceleration in the HAI stage, and then updating the sending rate of the data stream 1 to the sending rate after the second acceleration in the HAI stage by the sending point 1. Circulating in this way, the sending rate of the data flow 1 is enabled to be continuously close to the target sending rate R corresponding to the AI stageT3
It should be understood that after each speed increase in the speed increase phase, if the sending point 1 receives the CNP1 within the second preset interval duration, the speed increase operation is stopped, and the speed decrease phase is entered.
It should be understood that the above description is made only by taking the data stream 1, the packet 1 included in the data stream 1, and the CNP1 corresponding to the data stream 1 as an example. In this application, the queue of the transmission point includes packets of different data flows, and each packet includes an ECN flag. However, the receiving point may generate and transmit CNPs for different data streams, for example, receiving point 1 generates CNP1 for data stream 1, and CNP1 includes the stream id of data stream 1. Receiving point 1 generates CNP2 for data stream 2, and CNP2 includes the stream id for data stream 2. The sending point may also adjust the sending rate of the data stream indicated by the stream id of different CNPs, for example, after the sending point 1 receives the CNP1, the sending point 1 adjusts the sending rate of the data stream 1. After receiving CNP2, transmission point 1 adjusts the transmission rate of data stream 2. The operation of the receiving point generating the CNP for each data stream, and the operation of the receiving point adjusting the transmission rate of each data stream are described in detail in the foregoing description. And will not be described in detail herein.
According to the description of the method 100, it is difficult to accurately reduce the transmission rate of the data stream to a suitable level by determining the target transmission rate for the speed reduction according to the rate reduction factor. If the sending rate of the data flow is too slow, the congestion at the transmission point is eliminated, and the data packet in-queue rate of the data flow is lower than the out-queue rate, so that the data packet of the data flow is undertaken. If the sending rate of the data stream is reduced too little, the congestion at the transmission point is difficult to eliminate, so that the congestion time at the transmission point is too long. According to the pre-established target rate increasing speed, the sending rate of the data stream is difficult to be accurately increased to a proper degree. If the transmission rate of the data stream is increased to an excessively high degree, congestion at the transmission point is easily caused again, and if the transmission rate of the data stream is increased to an excessively low degree, the data packets of the data stream are continuously undertaken. In view of the above, those skilled in the art propose a transmission rate control method, apparatus, sending device and receiving device.
The transmission rate control method of the present application is described below with reference to the accompanying drawings.
The transmission rate control method of the present application is applied to a DCN whose hardware connection structure is as described above. A plurality of sending point hardware entities in the DCN may be logically equivalent to one sending point, a plurality of transmission point hardware entities in the DCN may be logically equivalent to one transmission point, and a plurality of receiving point hardware entities in the DCN may be logically equivalent to one receiving point. A logically equivalent DCN may be considered to include a sending point, a transmission point, and a receiving point, where the sending point is configured to send a data stream to the receiving point via the transmission point. The transmission rate control method is described in combination with the logically equivalent DCN.
Referring to fig. 4, fig. 4 is a flowchart of a transmission rate control method according to an embodiment of the present application. The embodiment shown in fig. 4 describes the present scheme from the point of view of the transmission point. In the method 200 shown in fig. 4, the sending point adjusts the sending rate of the data stream according to the rate information of the receiving point, and can accurately adjust the sending rate of the data stream, thereby eliminating queue congestion of the transmission point and improving the transmission performance of the data stream. The method 200 includes the steps of:
step S201, the sending point receives the first CNP sent by the receiving point.
Wherein the first CNP indicates that the transmission point is congested when the transmission point forwards a first packet, the data flow includes the first packet, and the first CNP includes a flow identifier of the data flow.
In the solution described in this application, the first CNP further includes rate information, where the rate information indicates a receiving rate at which the receiving point receives a data packet included in the data stream. Specifically, in an optional example of the present application, the rate information includes a first period and a sum of lengths of data packets of the data stream received by the receiving point within the first period. The first period refers to a time period during which the receiving point receives the data packets of the data stream. In another alternative example of the present application, the rate information includes a reception rate. The receiving rate satisfies:
Figure BDA0001783540290000121
Figure BDA0001783540290000122
the technical scheme of the application can preset the period duration. In an alternative example of the present application, the duration of the preset period is, for example, 10 μ s. Based on this, in the first embodiment of the present application, the data packets of the data stream received by the receiving point in the first period include the first data packet. Specifically, in an optional implementation manner of the first implementation manner, the receiving point continuously determines each period from an initial time, and in this implementation manner, the receiving point takes a corresponding period when the receiving point receives the first data packet as the first period. Another optional implementation manner of the first embodiment is that the receiving point uses a time when the first data packet is received as a start time of the first period, and uses a time period of a backward period from the start time as the first period. In the second embodiment of the present application, the data packets of the data stream received by the sink in the first period may not include the first data packet. In an optional implementation manner of the second implementation manner, the sink continuously determines each period from the initial time, and the application regards a last period when the first packet is received as the first period.
Further, in an optional implementation manner of this application, the receiving rate refers to a rate corresponding to a period in which the data packet of the data stream received by the receiving point includes the first data packet. In particular, in one possible implementation, the receiving point determines each period continuously from an initial time. In this implementation, when receiving the first data packet, the receiving point determines a time period of a cycle in which the time when the first data packet is received is, obtains a sum of lengths of data packets of the data stream received in the time period, and further calculates the receiving rate. In another possible implementation manner, when the receiving point receives the first data packet, it starts to calculate the sum of the lengths of the data packets of the data stream received within the period duration, and further calculates the receiving rate.
It should be understood that the rate information included in the CNP of the present application corresponds to a rate at which a receiving point receives a data packet of the data stream when transmitting the CNP information. For example, the rate information included in the first CNP corresponds to the rate at which the receiving point receives the first data packet; and if the sending point receives the CNP again after receiving the first preset interval duration of the first CNP, the rate contained in the CNP is the rate when the corresponding receiving point receives the second data packet of the data stream. The second data packet arrives at the receiving point a first preset interval duration after the first data packet. Based on this, the sending point receives the CNPs each time, and the corresponding rate meanings of the rate information are all different, and for the convenience of clear description, the received CNPs are distinguished by means of the ordinal terms "first" and "second".
Referring to fig. 5, fig. 5 is a schematic diagram of a data frame structure of a first CNP according to an embodiment of the present application. The first CNP includes: MAC header, IPv4/IPv6 header, UDP header, BTH, rate information, ICRC, and FCS. Compared with the CNP shown in fig. 3, the first CNP in the embodiment of the present application further includes rate information, and the rate information is set in a reserved bit of the CNP shown in fig. 3, so as to obtain the first CNP in this embodiment. In the first CNP, the rate information is as described above, and the meaning of each item of data other than the rate information is well known to those skilled in the art, and the detailed description of the present application is omitted here.
Step S202, the sending point determines the receiving rate according to the rate information.
Here, according to the description of step S201, the rate information includes two forms. Based on this, one implementation of determining the receiving rate according to the rate information in the present application is to read the sum of the first period from the first CNP and the length of the data packet received by the receiving point in the first period according to the received data packet length of the data stream
Figure BDA0001783540290000131
And calculating to obtain the receiving rate. Another implementation of determining a receiving rate according to rate information in the present application is to read the receiving rate from the first CNP.
Step S203, the sending point determines the emptying rate according to the receiving rate.
Wherein, the emptying refers to that all data packets included in the queue in the transmission point are out of the queue. The drain rate is a rate that indicates the transmission point to dequeue all packets included in a queue in the transmission point.
Specifically, in order to quickly eliminate congestion at the transmission point, an embodiment of the present application is to make all data packets in a queue of the transmission point go out of the queue, so that the transmission point reaches a queue-free state. In the present application, "make the transmission point reach the queue-free state" is referred to as emptying, that is, all data packets in the queue of the transmission point are emptied, thereby achieving the purpose of eliminating congestion. Wherein, in one implementation of the present application, the transfer point is instructed to empty within an empty time. The drain time is a duration indicating that all packets included in the queue in the transmission point are out of the queue.
It should be understood that in the implementation scenario where there is no queue in the transmission point, the time duration for a data packet to be transmitted from the sending point to the receiving point via the transmission point and then returned to the sending point by the receiving point is, for example, rtt. In the implementation scenario where there is a queue in the transmission point, the maximum allowed time duration for a packet from enqueue to dequeue is tgt. The maximum allowable transmission time length for transmitting the data packet from the sending point to the receiving point is tgt + rtt. In this regard, in an alternative embodiment of the present application, the purge time TpauseSatisfies the following conditions: t ispauseA × (tgt + rtt) + tgt, where a is an overspeed ratio factor generated by the sending point according to the sending rate and the receiving rate of the data stream, and a satisfies:
Figure BDA0001783540290000141
RsendingRefers to the sending rate, R, of said data streamReceivingRefers to the receiving rate.
Further, for the purpose of draining, the sending point should adjust the sending rate of the data stream so that the enqueue rate of the data packets in the transmission point is smaller than the dequeue rate. In particular, the delivery point is based on said emptying time TpauseCalculating the rate of emptying RpauseTo obtain
Figure BDA0001783540290000142
Step S204, the sending point updates the sending rate of the data stream to the drain rate.
After step S203, after determining the drain rate of the data stream, the sending point reduces the sending rate of the data stream to the drain rate, so that the transmission point is drained in the drain time.
In the present application, the sending point sets the initial sending rate of the data stream to the full rate. The initial transmission rate is a transmission rate at an initial time of the transmission point. The initial time refers to the time when the transmission point accesses the DCN network. The full rate refers to the maximum transmission rate that the transmission point configures for the data stream.
By adopting the implementation manner of the method 200, the sending point uses the receiving rate of the receiving point as a parameter basis for adjusting the sending rate of the data stream, and the sending rate of the data stream can be purposefully reduced, so that the data packets contained in the congested queue in the transmission point can be quickly emptied, and the congestion existing in the transmission point can be quickly eliminated.
Based on the method 200, the sending point sends the data stream at the drain rate for the drain time, so that all the data packets contained in the queue of the transmission point are quickly dequeued, and the transmission delay of the data packets contained in the queue can be further reduced. In an alternative embodiment of the present application, the phase in which the sending rate of the data stream is the flush rate is referred to as a flush phase.
Further, after the congested data packet in the queue of the transmission point is emptied, in order to guarantee the throughput of the network, the sending point increases the sending rate of the data stream.
After all the data packets contained in the queue of the transmission point are emptied, if the rate of sending the data stream by the sending point is the same as the rate of receiving the data packet of the data stream by the receiving point, the rate of enqueuing the data packet in the transmission point can be ensured to be the same as the rate of dequeuing the data packet, so that the congestion of the transmission point can be avoided. Based on this, after the emptying phase is finished, the sending point updates the sending rate of the data stream from the emptying rate to the receiving rate. In an alternative embodiment of the present application, a phase in which the sending rate of the data stream is the receiving rate is referred to as a speed stabilization phase. The receiving rate is as described in step S202 of method 200.
In summary, according to the technical scheme of the present application, in the evacuation stage, the evacuation time of congestion at the transmission point and the evacuation rate of the data stream are determined, and congestion at the transmission point is quickly and accurately evacuated. In the speed stabilizing stage, a clear target is provided for the sending point to increase the sending rate of the data stream, so that the adjustment of the sending rate of the data stream is more accurate.
During the ramp-up phase, the throughput of the DCN network may not be saturated. Based on this, in order to improve the transmission efficiency of the data packet, the sending point may continue to increase the sending rate of the data stream on the basis of the steady-speed stage.
In practical applications, a transmission point hardware entity may transmit a plurality of data streams, and the sending rates of the plurality of data streams may all be different. However, in the speed-up mode of the speed-up stage of step S103 in the method 100, each of the plurality of data streams corresponds to the same target sending rate. Thus, the ramp-up scheme described in method 100 limits each of the plurality of data streams to the current transmission rate of the data stream, thereby resulting in a lack of fairness between the data streams during the ramp-up of the transmission rate.
Based on this, in an alternative embodiment of the present application, from entering the steady-speed phase, the sending point may detect whether the sending rate of the data stream is the maximum sending rate of the sending point. The maximum transmission rate refers to a maximum transmittable rate of the transmission point. If the sending rate of the data stream is not the maximum sending rate of the sending point, indicating that the sending rate of the data stream has a space for increasing. And then, the sending point judges whether a second CNP is received within a second preset interval duration after the sending point sends the data stream at the current sending rate of the data stream. The second CNP indicates that the transmission point is congested when the transmission point forwards a second packet, and the data flow includes the second packet. If the second CNP is not received within a second preset interval duration, indicating the sending point to send at the current sending rate of the data streamAnd sending the data stream without causing congestion, and updating the sending rate of the data stream to a target sending rate by the sending point. In one embodiment of the present application, the target sending rate satisfies:
Figure BDA0001783540290000151
then, the transmitting point repeatedly performs the above-described operation of determining whether the transmission rate of the data stream is the maximum transmission rate until the transmission rate of the data stream reaches the maximum transmission rate of the transmitting point. In an alternative embodiment of the present application, this phase is referred to as the ramp-up phase.
Of course, in the speed-up process described in this application, if the sending point receives a new CNP corresponding to the data stream at any time, the method 200 is executed. And will not be described in detail herein.
It should be understood that, according to the step S201 of the method 200, in the technical solution of the present application, different CNPs are received by the sending point at different times. In the acceleration process according to the optional embodiment of the present application, the time corresponding to each round of determination operation is different, and therefore, the CNP corresponding to the current round of determination operation is different from the CNP corresponding to the previous round of determination operation. Based on this, in the description of an alternative embodiment of the present application, the ordinal number of the CNP corresponding to each judgment operation may be described as the ordinal number of the CNP corresponding to the previous judgment operation plus one.
For example, the first round of determination correspondingly determines whether the sending point receives the second CNP, and if the sending point does not receive the second CNP, the sending rate of the data stream is updated, and the second round of determination is performed. And the second round of judgment operation correspondingly judges whether the sending point receives the third CNP, if the sending point does not receive the third CNP, the sending rate of the data stream is updated again, and the third round of judgment is carried out. If the sending point receives the third CNP, the method 200 is executed, and the ordinal word may be reset for the CNP in the subsequent speed-up stage.
Therefore, in the speed-up stage, the sending point of the data stream takes the maximum sending rate as the reference data to increase the sending rate of the data stream, so that when a plurality of data streams need to increase the sending rate, the speed-up fairness among the data streams can be ensured.
Referring to fig. 6, fig. 6 is a flowchart of another embodiment of the transmission rate control method of the present application. The method 300 of fig. 6 is applied in the DCN and is performed by a receiving point before the method 200 is performed.
It should be understood that the method 300 is an embodiment of the method 200, and the technical features protected by the method 300 correspond to the technical features protected by the method 200. Based on this, the method 300 is referred to the method 200 for detailed descriptions of technical terms, operation steps and the like that are the same as or corresponding to the method 200, and the method 300 is not repeated.
The method 300 includes the steps of:
step S301, the receiving point receives a first data packet sent by the sending point and forwarded by the transmission point.
Step S302, the receiving point generates a first CNP according to the ECN flag included in the first data packet.
The method is similar to the description of the method 100, in the technical solution of the present application, a transmission point detects whether a queue length of the transmission point exceeds a waterline, and indicates that congestion exists at the transmission point if the queue length of the transmission point exceeds the waterline.
In an optional implementation manner of the present application, in order to shorten a time period for a receiving point to notify a sending point of congestion, so that the receiving point sends a CNP to the sending point in time, when there is congestion at a transmission point, the transmission point is a data packet entering a queue, an ECN flag is marked on a data packet exiting the queue and all data packets in the queue of the transmission point, and then, all data packets marked with the ECN flag are continuously transmitted. In this embodiment, the ECN marked packet includes the first packet.
In the method 300, the relationship between the first packet and the data stream, and the relationship between the data stream and the first CNP are described in detail in the method 200. The frame structure of the first CNP is shown in fig. 5 in detail, and the meaning of each item of data in the frame structure shown in fig. 5 is described in detail in the corresponding description of the method 200. And will not be described in detail herein.
Corresponding to the method 200, the first CNP contains rate information. In an optional embodiment of the present application, after receiving the first data packet, the receiving point obtains the rate information, and writes the rate information into a reserved bit in a CNP.
As with the method 200, in an alternative example of the present application, the rate information includes a sum of a first period and a length of a data packet of the data stream received by the sink within the first period. In another alternative example of the present application, the rate information includes a reception rate. The specific embodiments of the first period and the receiving rate described in this application are described in detail in the corresponding description of the method 200. And will not be described in detail herein.
Step S303, the receiving point sends the first CNP to the sending point.
Wherein the receiving point is triggered to execute the method 200 after sending the first CNP to the sending point.
It should be understood that, in the technical solution of the present application, the receiving point continuously detects whether the received data packet of the data stream includes the ECN flag, if the data packet of the received data stream includes the ECN flag within the first preset interval duration for sending the first CNP, the receiving point executes step S302 again to generate and send the second CNP.
In summary, in the transmission rate control method according to the present application, when a first data packet of a data stream received by a receiving point includes an ECN flag, the receiving point feeds back a receiving rate of the data packet of the data stream to a sending point through a CNP corresponding to the data stream. And the sending point determines the target sending rate of the data stream according to the receiving rate, and then adjusts the sending rate of the data stream according to the target sending rate, so that the sending rate of the data stream is in an emptying stage, a speed stabilizing stage or a speed increasing stage. Therefore, the technical scheme of the application can accurately adjust the sending rate of the data stream, thereby eliminating queue congestion of a transmission point and improving the transmission performance of the data stream. In addition, the maximum sending rate of the sending point is used as the parameter basis of the data flow speed increasing, and the speed increasing fairness among the data flows can be ensured when a plurality of data flows need to increase the sending rate.
Both the method 200 and the method 300 are descriptions of the present application in conjunction with the DCN after logical equivalence, and in order to illustrate the technical solution of the present application more clearly and in detail, the present solution is described below in conjunction with a hardware entity topology diagram of the DCN.
Referring to fig. 7, fig. 7 is a topology diagram of an embodiment of the DCN of the present application. Wherein, data stream a of transmission point a is transmitted to reception point X via transmission point 71, transmission point 73 and transmission point 74 in sequence. Transmission point B transmits data stream B1 and data stream B2, wherein data stream B1 is transmitted to reception point X sequentially via transmission point 72, transmission point 73 and transmission point 74, and data stream B2 is transmitted to reception point Y sequentially via transmission point 72, transmission point 73 and transmission point 74. Data stream C transmitted by transmission point C is transmitted to reception point Y via transmission point 72, transmission point 73, and transmission point 74 in this order.
Wherein, when the network shown in fig. 7 starts to establish a connection, the receiving point X and the receiving point Y may both take 10 μ s as a period, and continuously record the sum of the lengths of the data packets of each data stream received every 10 μ s, so as to obtain the receiving rate for receiving each data stream within corresponding 10 μ s.
It should be noted that, in order to facilitate overall management of the DCN network, the preset cycle durations corresponding to the receiving point X and the receiving point Y are set to be the same. However, in actual use, the preset cycle durations corresponding to the receiving point X and the receiving point Y may be set to be different. The present application is not limited thereto.
In the DCN shown in fig. 7, each of the transmission point 71, the transmission point 72, the transmission point 73, and the transmission point 74 continuously detects whether the queue length of the transmission point exceeds a preset waterline, and if the queue length of the transmission point exceeds the waterline, it indicates that the transmission point is congested, and the transmission point marks all data packets in the queue with ECN marks. In an alternative embodiment of the present application, if the queue length of the transmission point 72 exceeds the predetermined waterline, the transmission point 72 marks ECN for the data packet of the flow B1, the data packet of the flow B2, and the data packet of the flow C in the queue. The queue length of each of the transfer point 71, the transfer point 73, and the transfer point 74 exceeds the waterline, and the transfer point 71, the transfer point 73, and the transfer point 74 do not perform the ECN marking operation described above. Hereinafter, a packet of the data stream B1 marked with the ECN this time is referred to as a packet B1, a packet of the data stream B2 marked with the ECN this time is referred to as a packet B2, and a packet of the data stream C marked with the ECN this time is referred to as a packet C.
It should be understood that transmission points in a DCN network can be expressed in multiple stages, according to the flow direction of the data stream. When at least two transmission points in the multi-stage transmission points are congested, an optional implementation manner of the present application is that a first-stage transmission point in the congested transmission points marks an ECN for a data packet in a queue of the first-stage transmission point. And if the data flows transmitted by the transmission points with at least two levels of congestion are completely the same, the transmission points of other levels in the transmission points with at least two levels of congestion do not need to mark ECN for the data packets in the queues. And if the data stream parts transmitted by the transmission points with the at least two levels of congestion are the same, the transmission points of other levels in the transmission points with the at least two levels of congestion mark ECN marks the data packets which are not marked with ECN marks in the queue.
For example, transmission point 73 and transmission point 74 each transmit packets of data stream a, packets of data stream B1, packets of data stream B2, and packets of data stream C. When congestion exists in both the transmission point 73 and the transmission point 74, the transmission point 73 marks all data packets contained in the queue of the transmission point 73 with ECN. Because all the queued packets in the transmission point 74 already contain ECN marks, the transmission point 74 does not need to mark ECN marks for the packets contained in the queue of the transmission point 74.
For another example, when the transmission point 72 and the transmission point 73 are congested, even though the transmission point 72 marks all the packets included in the queue of the transmission point 72 with ECN, the transmission point 72 transmits the packet of the flow B1, the packet of the flow B2, and the packet of the flow C, and the transmission point 73 also transmits the packet of the flow a compared with the transmission point 72, so the transmission point 73 also needs to mark the packet of the flow a included in the queue of the transmission point 73 with ECN.
Taking the example shown in fig. 7 where the transmission point 72 has congestion, the transmission point 72 transmits the packet B1 to the reception point X, and transmits the packets B2 and C to the reception point Y.
The operation of packet B1, receiving point X, and sending point B will be described as an example. After receiving the data packet B1, the receiving point X determines the time period of the cycle in which the data packet B1 is received, and then obtains the sum of the lengths of the data packets of the data stream B1 received in the corresponding time period, and calculates the receiving rate of the data stream B1 received by the receiving point X. Further, receiving point X generates a first CNPB1And the first CNP is combinedB1To transmission point B. The first CNPB1Including the stream identification of data stream B1 and the receiving rate at which data stream B1 was received by the receiving point X.
Transmitting point B receives the first CNPB1Then, the first CNP is readB1Including the received rate. Further, the sending point B calculates the drain rate and the drain time of the data flow B1 according to the method described in the method 200, and then reduces the sending rate of the data flow B1 to the drain rate, so that the data packet of the data flow B1 in the queue of the transmission point 72 enters the drain phase.
It should be appreciated that after sending point B sends data flow B1 at the drain rate for the drain time, the packets for data flow B1 in the queue for transmission point 72 have been drained, but the packets for data flow B2 and the packets for data flow C may also be included in the queue for transmission point 72. Based on this, to avoid the transmission point 72 from entering the congestion state again, and at the same time avoid packet under-throughput of data flow B1, after transmitting data flow B1 at the drain rate for the drain time, transmission point B updates the transmission rate of data flow B1 to the first CNP at the drain rateB1Including the receive rate to balance the enqueue rate and dequeue rate of packets from flow B1 at transmission point 72.
In this embodiment, the minimum interval duration for receiving point X to transmit data stream B1 twice is, for example, 50 μ s. Accordingly, transmission point B is receiving the first CNPB1Then missed within 55 mu sReceiving a second CNPB1Then the congestion present at transmission point 72 is deemed to have been removed. If the congestion at transmission point 72 is removed, transmission point B still transmits data flow B1 at the receive rate, resulting in under-throughput of the packets of data flow B1. Based on this, if the second CNP is not received within 55 μ s of transmitting data stream B1 at the reception rateB1Transmission point B accelerates the transmission rate of data stream B1 to half the sum of the reception rate and the maximum transmission rate of transmission point B. Then, the transmitting point B detects whether the third CNP transmitted by the receiving point X is received within 55 μ sB1If the sending point B does not receive the third CNP within 55 mu s after the speed is increasedB1The transmission rate of data stream B1 is ramped up to half the sum of the current transmission rate of data stream B1 and the maximum transmission rate of transmission point B. The above-described determination process is repeatedly performed until the transmission rate of the data stream B1 reaches the maximum transmission rate of the transmission point B. Of course, if the transmission point B receives the CNP transmitted by the reception point X during the acceleration periodB1Then, the drain rate corresponding to the data stream B1 is calculated again, and the sending rate of the data stream B1 is reduced to the drain rate calculated this time.
After receiving the packet B2 and the packet C, the receiving point Y generates a first CNP, which is the same as the processing procedure of the receiving point XB2And a first CNPC. Wherein the first CNPB2Including the stream id of data stream B2 and the receiving rate at which data packets of data stream B2 are received by receiving point Y, the first CNPCIncluding the stream id for data stream C and the receiving rate at which data packets for data stream C are received by receiving point Y. Then, receiving point Y sends the first CNPB2Sending to a sending point B, and sending the first CNPCTo transmission point C.
The sending point B receives the first CNPB2Then according to the first CNPB2Calculates the drain rate and drain time of data stream B2, and reduces the transmission rate of data stream B2 to the corresponding drain rate. Then, after transmitting data stream B2 at the corresponding drain rate for the corresponding drain time of data stream B2, transmission point B accelerates the transmission rate of data stream B2 from the corresponding drain rate to the first CNPB2Including the received rate. IntoIn the acceleration stage, the transmission point B determines whether the nth CNP is receivedB2If the nth CNP is not receivedB2Then, the rate is increased using the transmission rate being used by the data stream B2 and the maximum transmission rate of the transmission point B as parameters. The specific determination process and the speed-up process are similar to the data flow B1 and will not be described in detail here.
Correspondingly, the sending point C receives the first CNPCThen according to the first CNPCThe drain rate and the drain time of the data stream C are calculated, and the sending rate of the data stream C is reduced to the corresponding drain rate. Then, after transmitting the data stream C at the corresponding drain rate for the corresponding drain time of the data stream C, the transmission point C increases the transmission rate of the data stream C from the corresponding drain rate to the first CNPCIncluding the received rate. Furthermore, in the up-speed stage, the sending point C determines whether the nth CNP is receivedCIf the nth CNP is not receivedCThen, the rate is increased using the transmission rate currently used by the data stream C and the maximum transmission rate of the transmission point C as parameters. The specific determination process and the speed-up process are similar to the data flow B1 and will not be described in detail here.
In this embodiment, n is a two, three, or four ordinal number.
It should be understood that although receiving point X also receives packets of data flow a, there is no congestion at transmission point 71, transmission point 73, and transmission point 74 for transmitting packets of data flow a. Therefore, the packet of data stream a received by receiving point X does not include the ECN flag, and receiving point X does not need to generate a CNP corresponding to data stream a. Furthermore, transmission point a does not need to adjust the transmission rate of data stream a. If there is congestion at transmission point 73 and/or transmission point 74, then the packets of data flow a received by receiving point X also contain ECN marks. Further, receiving point X generates and transmits first CNP to transmitting point AAThe first CNPAA stream id containing data stream a and a receiving rate at which data packets of data stream a are received by receiving point X. The sending point A receives the first CNPAThereafter, the transmission rate of data stream a is adjusted. The process by which transmission point a adjusts the transmission rate of data stream a is described above in connection with transmission point B adjusting data stream B1And (6) like. This embodiment will not be described in detail.
In summary, in the transmission rate control method according to the present application, when a first data packet of a data stream received by a receiving point includes an ECN flag, the receiving point feeds back a receiving rate of the data packet of the data stream to a sending point through a CNP corresponding to the data stream. And the sending point determines the target sending rate of the data stream according to the receiving rate, and then adjusts the sending rate of the data stream according to the target sending rate, so that the sending rate of the data stream is in an emptying stage, a speed stabilizing stage or a speed increasing stage. Therefore, the technical scheme of the application can accurately adjust the sending rate of the data stream, thereby eliminating queue congestion of a transmission point and improving the transmission performance of the data stream. In addition, the maximum sending rate of the sending point is used as the parameter basis of the data flow speed increasing, and the speed increasing fairness among the data flows can be ensured when a plurality of data flows need to increase the sending rate.
Corresponding to the transmission rate control method, the application also provides a transmission rate control device.
In an optional embodiment of the present application, the transmission rate control device disposed at the sending point includes a receiving module, a sending module, and a processing module. The receiving module, the sending module and the processing module may be configured to execute the method 200 and the method executed by the sending point in the embodiment corresponding to fig. 7.
The division of the above modules is only a division of logical functions, and in actual implementation, the function of the receiving module may be integrated into the transmitter, the function of the transmitting module may be integrated into the receiver, and the function of the processing module may be integrated into the processor. As shown in fig. 8, fig. 8 is a schematic structural diagram of an embodiment of the transmission rate control apparatus of the present application. The transmission rate control apparatus 800 includes a transmitter 801, a receiver 802, and a processor 803. The transmitter 801 may perform the method 200 and the transmission of the data stream in the corresponding embodiment of fig. 7. The receiver 802 may perform the method 200 and the reception of the CNP in the embodiment corresponding to fig. 7. The processor 803 may perform the method 200 and operations other than the transmission of the data stream and the reception of the CNP in the corresponding embodiment of fig. 7.
For example, the transmitter 801 may be configured to transmit the data stream to the receiving point; the receiver 802 may be configured to receive a first congestion notification packet CNP sent by the receiving point, where the first CNP indicates that a transmission point is congested when the transmission point forwards a first data packet, the data flow includes the first data packet, the first CNP includes rate information, and the rate information indicates a receiving rate at which the receiving point receives a data packet included in the data flow; the processor 803 may be configured to determine the receiving rate based on the rate information; determining a drain rate according to the receiving rate, the drain rate being a rate indicating that the transmission point dequeues all packets included in a queue in the transmission point, the queue including packets in the data flow; and updating the sending rate of the data stream to the emptying rate.
For specific content, reference may be made to the description of the method 200 and relevant portions in the embodiment corresponding to fig. 7, which is not described herein again.
The present application also provides a transmitting apparatus corresponding to the transmission rate control device shown in fig. 8. As shown in fig. 9, fig. 9 is a schematic structural diagram of an embodiment of a sending device of the present application. The transmitting device 900 may include a processor 901, a transceiver 902, and a memory 903. The memory 903 may be used to store a program/code preinstalled in the transmission apparatus 900, and may also store a code or the like used when the processor 901 executes it.
It should be understood that the transmitting apparatus 900 of the present application may correspond to the transmitting point in the method 200 of the present application and the corresponding embodiment of fig. 7, wherein the transceiver 902 is configured to perform the receiving of the CNP and the transmitting of the data stream performed by the transmitting point in the method 200 and the corresponding embodiment of fig. 7, and the processor 901 is configured to perform other processing besides the receiving of the CNP and the transmitting of the data stream by the transmitting point in the method 200 and the corresponding embodiment of fig. 7. And will not be described in detail herein.
In an optional embodiment of the present application, the transmission rate control device disposed at the receiving point includes a receiving module, a sending module, and a processing module. The receiving module, the sending module and the processing module may be configured to perform the method 300 and the method performed by the sending point in the embodiment corresponding to fig. 7.
The division of the above modules is only a division of logical functions, and in actual implementation, the function of the receiving module may be integrated into the transmitter, the function of the transmitting module may be integrated into the receiver, and the function of the processing module may be integrated into the processor. As shown in fig. 10, fig. 10 is a schematic structural diagram of another embodiment of the transmission rate control apparatus of the present application. The transmission rate control apparatus 1000 includes a transmitter 1001, a receiver 1002, and a processor 1003. The transmitter 1001 may be specifically configured to perform the method 300 and the transmission of the CNP performed by the receiving point in the embodiment corresponding to fig. 7; the receiver 1002 may be specifically configured to perform the method 300 and receive the data packet performed by the receiving point in the embodiment corresponding to fig. 7; the processor 1003 is specifically configured to perform the above-described method 300 and other processing of the receiving point except for receiving the data packet and transmitting the CNP in the embodiment corresponding to fig. 7.
For example, the transmitter 1001 may be configured to transmit the first CNP to the transmission point; the receiver 1002 may be configured to receive a first data packet sent by the sending point and forwarded via the transmission point, where the data stream includes the first data packet, and the first data packet includes an explicit congestion notification ECN flag indicating that the transmission point is congested when the transmission point forwards the first data packet; and transmitting the first CNP to the transmission point; the processor 1003 may be configured to generate a first congestion notification packet CNP according to an ECN flag included in the first data packet, where the first CNP includes rate information indicating a receiving rate at which the receiving point receives a data packet included in the data stream.
For details, reference may be made to the description of the method 300 and relevant portions in the embodiment corresponding to fig. 7, which are not described herein again.
The present application also provides a receiving apparatus corresponding to the transmission rate control apparatus shown in fig. 10. As shown in fig. 11, fig. 11 is a schematic structural diagram of an embodiment of a receiving device of the present application. The receiving device 1100 may include a processor 1101, a transceiver 1102, and a memory 1103. The memory 1103 may be used to store a program/code preinstalled by the receiving apparatus 1100, and may also store a code or the like used when the processor 1101 executes it.
It should be understood that the receiving device 1100 of the present application may correspond to the receiving point described in the method 300 of the present application and the corresponding embodiment of fig. 7, wherein the transceiver 1102 is configured to perform the receiving of the data packet and the transmitting of the CNP performed by the receiving point described in the method 300 described above and the corresponding embodiment of fig. 7, and the processor 1101 is configured to perform other processing except the receiving of the data packet and the transmitting of the CNP performed by the receiving point described above and the corresponding embodiment of fig. 7. And will not be described in detail herein.
The application also provides a DCN. The DCN includes a transmission point, and a reception point. The sending point may be the transmission rate control apparatus provided in the embodiment corresponding to fig. 8, or the sending device provided in the embodiment corresponding to fig. 9, and the receiving point may be the transmission rate control apparatus provided in the embodiment corresponding to fig. 10, or the receiving device provided in the embodiment corresponding to fig. 11. The DCN is used to perform the methods in the embodiments corresponding to fig. 4 to 7.
In specific implementation, the present application also provides a computer storage medium corresponding to a sending device and a receiving device, where the computer storage medium provided in any device may store a program, and when the program is executed, part or all of the steps in each embodiment of the transmission rate control method provided in fig. 4 to 7 may be implemented. The storage medium in any device may be a magnetic disk, an optical disk, a read-only memory (ROM), a Random Access Memory (RAM), or the like.
In this application, the transceiver may be a wired transceiver, a wireless transceiver, or a combination thereof. The wired transceiver may be, for example, an ethernet interface. The ethernet interface may be an optical interface, an electrical interface, or a combination thereof. The wireless transceiver may be, for example, a wireless local area network transceiver, a cellular network transceiver, or a combination thereof. The processor may be a Central Processing Unit (CPU), a Network Processor (NP), or a combination of a CPU and an NP. The processor may further include a hardware chip. The hardware chip may be an application-specific integrated circuit (ASIC), a Programmable Logic Device (PLD), or a combination thereof. The PLD may be a Complex Programmable Logic Device (CPLD), a field-programmable gate array (FPGA), a General Array Logic (GAL), or any combination thereof. The memory may include volatile memory (volatile memory), such as random-access memory (RAM); the memory may also include a non-volatile memory (non-volatile memory), such as a read-only memory (ROM), a flash memory (flash memory), a Hard Disk Drive (HDD), or a solid-state drive (SSD); the memory may also comprise a combination of memories of the kind described above.
A bus interface may also be included in fig. 9 and 11, which may include any number of interconnected buses and bridges, with one or more processors represented by a processor and various circuits of memory represented by memory linked together. The bus interface may also link together various other circuits such as peripherals, voltage regulators, power management circuits, and the like, which are well known in the art, and therefore, will not be described any further herein. The bus interface provides an interface. The transceiver provides a means for communicating with various other apparatus over a transmission medium. The processor is responsible for managing the bus architecture and the usual processing, and the memory may store data used by the processor in performing operations.
Those of skill in the art will further appreciate that the various illustrative logical blocks and steps (step) set forth in the embodiments of the present application may be implemented in electronic hardware, computer software, or combinations of both. Whether such functionality is implemented as hardware or software depends upon the particular application and design requirements of the overall system. 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 embodiments of the present application.
The various illustrative logical units and circuits described in this application may be implemented or operated upon by design of a general purpose processor, a digital signal processor, an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof. A general-purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a digital signal processor and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a digital signal processor core, or any other similar configuration.
The steps of a method or algorithm described in the embodiments herein may be embodied directly in hardware, in a software element executed by a processor, or in a combination of the two. The software cells may be stored in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. For example, a storage medium may be coupled to the processor such the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC, which may be located in a UE. In the alternative, the processor and the storage medium may reside in different components in the UE.
It should be understood that, in the various embodiments of the present application, the size of the serial number of each process does not mean the execution sequence, and the execution sequence of each process should be determined by the function and the inherent logic thereof, and should not constitute any limitation to the implementation process of the embodiments.
In the above embodiments, the implementation may be wholly or partially realized by software, hardware, firmware, or any combination thereof. When implemented in software, may be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the procedures or functions described in accordance with the present application are generated, in whole or in part. The computer may be a general purpose computer, a special purpose computer, a network of computers, or other programmable device. The computer instructions may be stored in a computer readable storage medium or transmitted from one computer readable storage medium to another, for example, from one website site, computer, server, or data center to another website site, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, Digital Subscriber Line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.). The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device, such as a server, a data center, etc., that incorporates one or more of the available media. The usable medium may be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., Solid State Disk (SSD)), among others.
All parts of the specification are described in a progressive mode, the same and similar parts of all embodiments can be referred to each other, and each embodiment is mainly introduced to be different from other embodiments. In particular, as to the apparatus and system embodiments, since they are substantially similar to the method embodiments, the description is relatively simple and reference may be made to the description of the method embodiments in relevant places.
In addition, the ordinal numbers such as "first" and "second" are used to distinguish a plurality of objects having the same attribute but containing different contents.
While the preferred embodiments of the present application have been described, additional variations and modifications in those embodiments may occur to those skilled in the art once they learn of the basic inventive concepts. Therefore, it is intended that the appended claims be interpreted as including preferred embodiments and all alterations and modifications as fall within the scope of the application.
It will be apparent to those skilled in the art that various changes and modifications may be made in the present application without departing from the spirit and scope of the application. Thus, if such modifications and variations of the present application fall within the scope of the claims of the present application and their equivalents, the present application is intended to include such modifications and variations as well.

Claims (18)

1. A transmission rate control method applied to a data center network DCN, wherein the DCN comprises a sending point, a transmission point and a receiving point, and the sending point is configured to send a data stream to the receiving point via the transmission point, the method comprising:
the sending point receives a first congestion notification message (CNP) sent by the receiving point, the first congestion notification message (CNP) indicates that the transmission point is congested when the transmission point forwards a first data packet, the data stream comprises the first data packet, the first congestion notification message (CNP) comprises rate information, and the rate information indicates a receiving rate of the receiving point for receiving the data packet included in the data stream;
the sending point determines the receiving rate according to the rate information;
the sending point determines a drain rate according to the receiving rate, wherein the drain rate indicates that the transmission point puts all data packets included in a queue in the transmission point out of the queue, and the queue includes the data packets in the data stream;
and the sending point updates the sending rate of the data stream to the emptying rate.
2. The transmission rate control method of claim 1, wherein the transmitting point determining a drain rate based on the receive rate, comprising:
the sending point generates according to the sending rate and the receiving rate of the data streamAn overspeed ratio factor a that satisfies:
Figure FDA0003243175070000011
wherein R isSendingRefers to the sending rate, R, of said data streamReceivingRefers to the receiving rate;
the sending point determines emptying time T according to the overspeed ratio factor apauseSaid emptying time TpauseSatisfies the following conditions: t ispauseA × (tgt + rtt) + tgt, where tgt is a time interval that a difference between a timestamp when a packet in the queue exits the queue and a timestamp when the packet enters the queue should satisfy, and rtt is a time duration that when no queue exists in the transmission point, the packet is transmitted from the transmission point to the reception point via the transmission point, and then the reception point returns to the transmission point;
said transmission point is based on said emptying time TpauseCalculating the emptying rate RpauseSaid emptying rate RpauseSatisfies the following conditions:
Figure FDA0003243175070000012
3. the transmission rate control method according to claim 2, further comprising, after the transmission point updates the transmission rate of the data stream to the drain rate, the step of:
the transmitting point transmits the data stream at the drain rate for the drain time;
and the sending point updates the sending rate of the data stream to the receiving rate.
4. The transmission rate control method according to claim 3, further comprising, after the transmission point updates the transmission rate of the data stream to the reception rate, the step of:
the sending point detects whether the sending rate of the data stream reaches the maximum sending rate of the sending point;
when the sending rate of the data stream does not reach the maximum sending rate of the sending point, the sending point judges whether a second CNP sent by the receiving point is received within a second preset interval duration, the second CNP indicates that the transmission point is congested when the transmission point forwards a second data packet, the data stream comprises the second data packet, the second preset interval duration is greater than a first preset interval duration, and the first preset interval duration is the minimum interval duration for the receiving point to send the CNP;
when the second CNP is not received within the second preset interval duration, the sending point updates the sending rate of the data stream to a target sending rate, where the target sending rate satisfies:
Figure FDA0003243175070000021
Figure FDA0003243175070000022
the sending point repeatedly executes the operation of detecting whether the sending rate of the data stream reaches the maximum sending rate of the sending point until the sending rate of the data stream reaches the maximum sending rate of the sending point.
5. The transmission rate control method according to claim 1,
the rate information includes: a first period and a sum of lengths of data packets of the data stream received by the receiving point within the first period; or
The rate information includes the reception rate.
6. The transmission rate control method according to claim 5,
the data packets of the data stream received by the receiving point in the first period comprise the first data packet.
7. The transmission rate control method according to claim 5,
the receiving rate is a rate corresponding to a period in which the data packets of the data stream received by the receiving point include the first data packet.
8. A transmission rate control method applied to a data center network DCN, where the DCN includes a sending point, a transmission point, and a receiving point, and the receiving point is configured to receive a data stream sent by the sending point via the transmission point, and the method includes:
the receiving point receives a first data packet sent by the sending point and forwarded by the transmission point, the data stream comprises the first data packet, the first data packet comprises an Explicit Congestion Notification (ECN) mark, and the ECN mark indicates that the transmission point has congestion when the transmission point forwards the first data packet;
the receiving point generates a first congestion notification message (CNP) according to an ECN mark included in the first data packet, wherein the first congestion notification message (CNP) includes rate information indicating a receiving rate at which the receiving point receives a data packet included in the data stream;
the receiving point sends the first congestion notification message CNP to the sending point; the first congestion notification packet CNP is configured to instruct the sending point to determine an emptying rate according to the receiving rate included in the first congestion notification packet CNP, and instruct the sending point to update the sending rate of the data stream to the emptying rate, where the emptying rate indicates a rate at which all data packets included in a queue in the transmission point are queued by the transmission point, and the queue includes data packets in the data stream.
9. The transmission rate control method according to claim 8,
the rate information includes: a first period and a sum of lengths of data packets of the data stream received by the receiving point within the first period; or
The rate information includes the reception rate.
10. The transmission rate control method according to claim 9,
the data packets of the data stream received by the receiving point in the first period comprise the first data packet.
11. The transmission rate control method according to claim 9,
the receiving rate is a rate corresponding to a period in which the data packets of the data stream received by the receiving point include the first data packet.
12. A transmission rate control apparatus provided at a transmission point, the transmission point being provided at a data center network DCN, the DCN further including a transmission point and a reception point, the transmission point being configured to transmit a data stream to the reception point via the transmission point, the apparatus comprising a transmitter, a receiver, and a processor, wherein,
the transmitter is used for transmitting the data stream to the receiving point;
the receiver is configured to receive a first congestion notification packet CNP sent by the receiving point, where the first congestion notification packet CNP indicates that a transmission point is congested when the transmission point forwards a first data packet, the data flow includes the first data packet, the first congestion notification packet CNP includes rate information, and the rate information indicates a receiving rate at which the receiving point receives a data packet included in the data flow;
the processor is configured to determine the receiving rate according to the rate information; the method further comprises determining a drain rate according to the receiving rate, where the drain rate is a rate indicating that the transmission point dequeues all packets included in a queue in the transmission point, where the queue includes packets in the data flow; and is further configured to update the sending rate of the data stream to the drain rate.
13. The transmission rate control apparatus according to claim 12,
the processor is specifically configured to generate an overspeed ratio factor a according to the sending rate and the receiving rate of the data stream, where the overspeed ratio factor a satisfies:
Figure FDA0003243175070000031
wherein R isSendingRefers to the sending rate, R, of said data streamReceivingRefers to the receiving rate; determining the emptying time T according to the overspeed ratio factor apauseSaid emptying time TpauseSatisfies the following conditions: t ispauseA × (tgt + rtt) + tgt, where tgt is a time interval that a difference between a timestamp when a packet in the queue exits the queue and a timestamp when the packet enters the queue should satisfy, and rtt is a time duration that when no queue exists in the transmission point, the packet is transmitted from the transmission point to the reception point via the transmission point, and then the reception point returns to the transmission point; according to said emptying time TpauseCalculating the emptying rate RpauseSaid emptying rate RpauseSatisfies the following conditions:
Figure FDA0003243175070000032
Figure FDA0003243175070000033
14. the transmission rate control apparatus according to claim 13,
the processor is further configured to control the transmitter to transmit the data stream at the drain rate for the drain time; and is further configured to update the sending rate of the data stream to the receiving rate.
15. The transmission rate control apparatus according to claim 14,
the processor is further configured to detect whether the sending rate of the data stream reaches the maximum sending rate of the sending pointSending rate; when the sending rate of the data stream does not reach the maximum sending rate of the sending point, the data stream is further used for judging whether a second CNP sent by the receiving point is received within a second preset interval duration, the second CNP indicates that the transmission point is congested when the transmission point forwards a second data packet, the data stream comprises the second data packet, the second preset interval duration is greater than a first preset interval duration, and the first preset interval duration is the minimum interval duration for the receiving point to send the CNP; when the second CNP is not received within the second preset interval duration, the method is further configured to update the sending rate of the data stream to a target sending rate, where the target sending rate satisfies:
Figure FDA0003243175070000034
Figure FDA0003243175070000035
the processor is further configured to repeatedly perform the operation of detecting whether the sending rate of the data stream reaches the maximum sending rate of the sending point until the sending rate of the data stream reaches the maximum sending rate of the sending point.
16. A transmission rate control apparatus, provided at a receiving point, the receiving point being provided at a data center network DCN, the DCN further including a transmitting point and a transmitting point, the receiving point being configured to receive a data stream transmitted by the transmitting point via the transmitting point, the apparatus comprising a transmitter, a receiver, and a processor, wherein,
the receiver is configured to receive a first data packet sent by the sending point and forwarded via the transmission point, where the data stream includes the first data packet, and the first data packet includes an explicit congestion notification ECN flag indicating that the transmission point is congested when the transmission point forwards the first data packet;
the processor is configured to generate a first congestion notification packet CNP according to an ECN flag included in the first data packet, where the first congestion notification packet CNP includes rate information indicating a receiving rate at which the receiving point receives a data packet included in the data stream;
the sender is configured to send the first congestion notification message CNP to the sending point; the first congestion notification packet CNP is configured to instruct the sending point to determine an emptying rate according to the receiving rate included in the first congestion notification packet CNP, and instruct the sending point to update the sending rate of the data stream to the emptying rate, where the emptying rate indicates a rate at which all data packets included in a queue in the transmission point are queued by the transmission point, and the queue includes data packets in the data stream.
17. A transmitting device serving as a transmitting point, the transmitting point being provided in a data center network DCN, the DCN further including a transmission point and a reception point, the transmitting point being configured to transmit a data stream to the reception point via the transmission point, the transmitting device comprising a processor and a memory, wherein:
the memory to store program instructions;
the processor, configured to invoke and execute program instructions stored in the memory to cause the sending device to perform the transmission rate control method of any one of claims 1 to 7.
18. A receiving device, serving as a receiving point, disposed in a data center network DCN, the DCN further comprising a sending point and a transmission point, the receiving point configured to receive a data stream sent by the sending point via the transmission point, the receiving device comprising a processor and a memory, wherein:
the memory to store program instructions;
the processor is configured to invoke and execute program instructions stored in the memory to cause the receiving device to perform the transmission rate control method of any one of claims 8 to 11.
CN201811003680.7A 2018-08-30 2018-08-30 Transmission rate control method, device, sending equipment and receiving equipment Active CN109039936B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201811003680.7A CN109039936B (en) 2018-08-30 2018-08-30 Transmission rate control method, device, sending equipment and receiving equipment
PCT/CN2019/082462 WO2020042624A1 (en) 2018-08-30 2019-04-12 Transmission rate control method and apparatus, sending device and receiving device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811003680.7A CN109039936B (en) 2018-08-30 2018-08-30 Transmission rate control method, device, sending equipment and receiving equipment

Publications (2)

Publication Number Publication Date
CN109039936A CN109039936A (en) 2018-12-18
CN109039936B true CN109039936B (en) 2021-12-28

Family

ID=64625678

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811003680.7A Active CN109039936B (en) 2018-08-30 2018-08-30 Transmission rate control method, device, sending equipment and receiving equipment

Country Status (2)

Country Link
CN (1) CN109039936B (en)
WO (1) WO2020042624A1 (en)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109039936B (en) * 2018-08-30 2021-12-28 华为技术有限公司 Transmission rate control method, device, sending equipment and receiving equipment
CN110113782A (en) * 2019-04-29 2019-08-09 惠州Tcl移动通信有限公司 Data transmission method, device and storage medium
CN110460491B (en) * 2019-07-05 2021-05-18 锐捷网络股份有限公司 RDMA (remote direct memory Access) -based performance test method and device
CN110505156B (en) * 2019-08-23 2020-10-30 中国人民解放军国防科技大学 Low-overhead congestion control method in high-speed interconnection network
CN113132262B (en) * 2020-01-15 2024-05-03 阿里巴巴集团控股有限公司 Data stream processing and classifying method, device and system
CN113162862A (en) * 2020-01-23 2021-07-23 华为技术有限公司 Congestion control method and device
CN113794655A (en) * 2020-07-17 2021-12-14 北京京东尚科信息技术有限公司 Flow monitoring method and device, computer storage medium and electronic equipment
CN112134809B (en) * 2020-09-16 2024-04-23 山东云海国创云计算装备产业创新中心有限公司 Flow control method, device, equipment and readable storage medium
CN113098785B (en) * 2021-03-31 2022-05-27 新华三信息安全技术有限公司 Message processing method and device
CN114938350B (en) * 2022-06-15 2023-08-22 长沙理工大学 Congestion feedback-based data stream transmission control method in lossless network of data center
CN116915722B (en) * 2023-09-12 2023-12-19 珠海星云智联科技有限公司 Network congestion adjusting method, device, computing equipment and readable storage medium
CN117395206B (en) * 2023-12-12 2024-03-12 南京邮电大学 Rapid and accurate congestion feedback method for lossless data center network

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101030926A (en) * 2006-02-28 2007-09-05 华为技术有限公司 Method for controlling network data flow of global microwave access inter-operation
CA2699325C (en) * 2007-09-26 2016-03-15 International Business Machines Corporation Method, system, and computer program product for adaptive congestion control on virtual lanes for data center ethernet architecture
CN108418767A (en) * 2018-02-09 2018-08-17 华为技术有限公司 Data transmission method, equipment and computer storage media

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8416690B2 (en) * 2010-01-11 2013-04-09 Research In Motion Limited Explicit congestion notification based rate adaptation using binary marking in communication systems
CN105915464B (en) * 2016-06-21 2018-09-25 中南大学 A kind of quick and easy quantization congestion notification method
CN109039936B (en) * 2018-08-30 2021-12-28 华为技术有限公司 Transmission rate control method, device, sending equipment and receiving equipment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101030926A (en) * 2006-02-28 2007-09-05 华为技术有限公司 Method for controlling network data flow of global microwave access inter-operation
CA2699325C (en) * 2007-09-26 2016-03-15 International Business Machines Corporation Method, system, and computer program product for adaptive congestion control on virtual lanes for data center ethernet architecture
CN108418767A (en) * 2018-02-09 2018-08-17 华为技术有限公司 Data transmission method, equipment and computer storage media

Also Published As

Publication number Publication date
WO2020042624A1 (en) 2020-03-05
CN109039936A (en) 2018-12-18

Similar Documents

Publication Publication Date Title
CN109039936B (en) Transmission rate control method, device, sending equipment and receiving equipment
CN108418767B (en) Data transmission method, device and computer storage medium
US8976669B2 (en) Switch fabric end-to-end congestion avoidance mechanism
Bai et al. Enabling ECN over generic packet scheduling
WO2020244448A1 (en) Congestion control method and device, and computer-readable medium
US10594617B2 (en) Probabilistic normalized congestion indication based on packet size
US20190158415A1 (en) Layer 3 fair rate congestion control notification
US9444741B2 (en) Facilitating network flows
US20160057065A1 (en) Re-marking of packets for queue control
US20050213507A1 (en) Dynamically provisioning computer system resources
JP2008511205A (en) Method and apparatus for controlling network congestion using queue control and one-way delay measurement
US9674104B1 (en) Adapting proportional integral controller enhanced algorithm for varying network conditions in a network environment
KR102177574B1 (en) Queuing system to predict packet lifetime in a computing device
US10536385B2 (en) Output rates for virtual output queses
Lu et al. Dynamic ECN marking threshold algorithm for TCP congestion control in data center networks
CN113783785A (en) ECN (engineering-centric networking) water line value configuration method and device and network equipment
WO2018157819A1 (en) Method and apparatus for multiple sub-current network transmission
EP2417719B1 (en) Method and system to manage network traffic congestion
EP3108631B1 (en) Buffer bloat control
US11190454B2 (en) Receiver-directed computer network congestion control system
WO2022068617A1 (en) Traffic shaping method and device
CN104579582A (en) High-quality voice transmission method based on communication network
Irawan et al. Performance evaluation of queue algorithms for video-on-demand application
Kozačinski et al. Configuration of quality of service parameters in communication networks
WO2010081365A1 (en) Processing method and system for preventing congestion

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