WO2020042624A1 - 传输速率控制方法、装置、发送设备和接收设备 - Google Patents

传输速率控制方法、装置、发送设备和接收设备 Download PDF

Info

Publication number
WO2020042624A1
WO2020042624A1 PCT/CN2019/082462 CN2019082462W WO2020042624A1 WO 2020042624 A1 WO2020042624 A1 WO 2020042624A1 CN 2019082462 W CN2019082462 W CN 2019082462W WO 2020042624 A1 WO2020042624 A1 WO 2020042624A1
Authority
WO
WIPO (PCT)
Prior art keywords
point
rate
sending
receiving
data stream
Prior art date
Application number
PCT/CN2019/082462
Other languages
English (en)
French (fr)
Inventor
邓维山
夏寅贲
李凤凯
冀智刚
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2020042624A1 publication Critical patent/WO2020042624A1/zh

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

Definitions

  • the present application relates to the field of communication technologies, and in particular, to a method, an apparatus, a transmitting device, and a receiving device for controlling a transmission rate.
  • Data center network is the core network for transmitting data, and is widely used in the field of network transmission.
  • a typical DCN includes a transmission point, a transmission point, and a reception point.
  • the transmission point receives a data packet sent by the transmission point and sends it to the reception point.
  • DCN should meet the requirements of ultra-low latency, high throughput, and no packet loss. Based on this, DCN supports remote direct memory access (RDMA) Data transmission scheme.
  • RDMA remote direct memory access
  • RDMA provides a data center quantized congestion notification (DCQCN) solution.
  • DCQCN data center quantized congestion notification
  • ECN explicit congestion notification
  • CNP congestion notification packet
  • the 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 mode causes the sending rate of the data stream to fluctuate, thereby causing the transmission performance of the data stream to decrease.
  • the present application provides a transmission rate control method, device, sending device, and receiving device, which are applied in a DCN to achieve precise adjustment of the sending rate of a data stream, thereby eliminating queue congestion at a transmission point and improving data stream transmission performance.
  • the technical solution provided in this application is applied to a DCN.
  • the DCN includes a sending point, a transmitting point, and a receiving point, and the sending point is used to send a data stream to the receiving point via the transmitting point.
  • the present application provides a transmission rate control method, which includes:
  • a first congestion notification message CNP sent by the receiving point, the first CNP indicating that the transmission point is congested when the transmission point forwards a first data packet, and the data stream includes the first A 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 stream;
  • the sending point determines an emptying rate according to the receiving rate, the emptying rate is a rate that instructs the transmission point to queue all data packets included in the queue in the transmission point, the queue including the data Packets in the stream;
  • the sending point updates the sending rate of the data stream to the emptying rate.
  • the CNP includes rate information of a data packet sent by a receiving point to a data stream sent by a sending point.
  • the sending point determines the receiving rate of the receiving point according to the rate information.
  • the sending point determines a 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.
  • the sending point uses the receiving rate of the receiving point as a parameter basis for adjusting the sending rate of the data stream, which can deliberately reduce the sending rate of the data stream, thereby quickly draining the data packets contained in the congested queue at the transmitting point, and quickly Eliminate congestion at transmission points.
  • the sending point determining the emptying rate according to the receiving rate includes:
  • the sending point generates an overspeed ratio factor a according to a sending rate of the data stream and the receiving rate, and the overspeed ratio factor a satisfies:
  • R sending refers to the sending rate of the data stream
  • R receiving refers to the receiving rate
  • T pause a ⁇ (tgt + rtt) + tgt, where tgt refers to the data packets in the queue are out of the queue
  • the time interval that the difference between the timestamp of the time and the timestamp when entering the queue should be satisfied.
  • RTT refers to the transmission of a data packet from the sending point to the receiving point via the transmission point when there is no queue in the transmission point. The time returned by the receiving point to the sending point;
  • the transmission point in order to quickly eliminate the congestion existing at the transmission point, all data packets in the queue of the transmission point are queued, so that the transmission point reaches a state of no queue.
  • This application refers to "bringing the transmission point to a state without a queue" as emptying.
  • the transmission point is instructed to be emptied within the emptying time.
  • the evacuation time is an indication of the length of time that all data packets included in the queue in the transmission point are out of the queue.
  • the sending point may calculate an emptying rate of the data stream according to the emptying time.
  • the sending point can accurately determine the emptying rate of the data stream, thereby achieving accurate speed reduction of the data stream.
  • the method further includes:
  • the sending point sends the data stream at the emptying rate for the emptying time
  • 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 the data packets included in the queue of the transmission point are quickly out of the queue, thereby reducing the transmission delay of the data packets contained in the queue.
  • the sending point After draining the congested data packets in the queue of the transmission point, the sending point updates the sending rate of the data stream from the draining rate to the receiving rate.
  • the evacuation phase the evacuation time of the congestion existing at the transmission point and the evacuation rate of the data stream are clarified, and the congestion existing at the transmission point is quickly and accurately emptied.
  • the steady speed phase it provides a clear goal 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 precise.
  • the method further includes:
  • the sending point determines whether a second CNP sent by the receiving point is received within a second preset interval, and the second CNP Instructing the transmission point to congestion when transmitting the second data packet, the data stream includes the second data packet, the second preset interval is longer than the first preset interval, and the first The preset interval duration is the minimum interval duration at which the receiving point sends CNP;
  • the sending point updates the sending rate of the data stream to a target sending rate, and the target sending rate satisfies:
  • the sending point repeatedly performs 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.
  • the sending point sends the data stream at a receiving rate, resulting in a low throughput of the data packets of the data stream. Based on this, on the premise of ensuring that there is no congestion at the transmission point, the sending point can further increase the sending rate of the data stream. Specifically, in this application, the sending point uses the maximum sending rate of the sending point as the final target rate, and each round of speed-up raises the sending rate of the data stream to the sending rate of the data stream and Half the sum of the maximum transmission rates of the transmission points until the transmission rate of the data stream reaches the maximum transmission rate of the transmission points.
  • the sending point of the data stream uses its maximum sending rate as reference data to increase the sending rate of the data stream, so that when multiple data streams need to increase the sending rate, each piece of data can be guaranteed Fairness in the rise between streams.
  • the rate information includes: a sum of a length of a data packet of the first period and the receiving point receiving the data stream within the first period; or
  • the rate information includes the reception rate.
  • the sending point uses the receiving rate of the receiving point as a parameter basis for adjusting the sending rate of the data stream, which can deliberately reduce the sending rate of the data stream, thereby quickly draining the data packets contained in the congested queue at the transmitting point, and Eliminate congestion at transmission points.
  • a data packet of the data stream received by the receiving point within the first period includes the first data packet.
  • the receiving point continuously determines each cycle from the initial time.
  • the receiving point uses the corresponding period when receiving the first data packet as the first period.
  • the receiving point uses the time when the first data packet is received as the start time of the first period, and the time period of the period backward from the start time as the first period.
  • the receiving point can determine the rate at which the receiving point is correspondingly receiving the data packet of the data stream during the congestion time period of the transmitting point, thereby adjusting the sending rate of the data stream for the sending point and providing accuracy Data reference.
  • 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.
  • the receiving point continues to determine each cycle from the initial moment.
  • the receiving point determines the time period of the cycle in which the first data packet is received, and obtains the total length of the data packets that received the data stream during the time period, and further Calculate the reception rate.
  • the receiving point when the receiving point receives the first data packet, it starts to calculate the total length of the data packets of the data stream received within the period duration, and then calculates the receiving rate.
  • the receiving point can determine the rate at which the receiving point is correspondingly receiving the data packet of the data stream during the congestion time period of the transmitting point, thereby adjusting the sending rate of the data stream for the sending point and providing accuracy Data reference.
  • the present application provides a transmission rate control method, which includes:
  • the receiving point receives a first data packet sent by the sending point and forwarded via the transmission point, the data stream includes the first data packet, and the first data packet includes an explicit congestion notification ECN tag, so The ECN mark indicates that there is congestion at the transmission point when the transmission point forwards the first data packet;
  • the receiving point generates a first congestion notification message CNP according to an ECN tag included in the first data packet, where the first CNP includes rate information, and the rate information instructs the receiving point to receive the data stream.
  • the receiving point sends the first CNP to the transmitting point.
  • the receiving point after receiving a data packet containing an ECN mark, determines to receive rate information of a data packet of a data stream to which the data packet belongs.
  • the receiving point adds the rate information to the generated CNP.
  • the receiving point sends the CNP to the sending point, and is used to trigger the sending point to adjust a sending rate of the data stream according to the rate information.
  • the sending point uses the receiving rate of the receiving point as a parameter basis for adjusting the sending rate of the data stream, which can deliberately reduce the sending rate of the data stream, thereby quickly draining the data packets contained in the congested queue at the transmitting point, and quickly Eliminate congestion at transmission points.
  • the rate information includes: a sum of a length of a first period and a data packet of the data stream received by the receiving point within the first period; or
  • the rate information includes the reception rate.
  • the sending point uses the receiving rate of the receiving point as a parameter basis for adjusting the sending rate of the data stream, which can deliberately reduce the sending rate of the data stream, thereby quickly draining the data packets contained in the congested queue at the transmitting point, and quickly Eliminate congestion at transmission points.
  • a data packet of the data stream received by the receiving point within the first period includes the first data packet.
  • the receiving point continuously determines each cycle from the initial time.
  • the receiving point uses the corresponding period when receiving the first data packet as the first period.
  • the receiving point uses the time when the first data packet is received as the start time of the first period, and the time period of the period backward from the start time as the first period.
  • the receiving point can determine the rate at which the receiving point is correspondingly receiving the data packet of the data stream during the congestion time period of the transmitting point, thereby adjusting the sending rate of the data stream for the sending point and providing accuracy Data reference.
  • 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.
  • the receiving point continues to determine each cycle from the initial moment.
  • the receiving point determines the time period of the cycle in which the first data packet is received, and obtains the total length of the data packets that received the data stream during the time period, and further Calculate the reception rate.
  • the receiving point when the receiving point receives the first data packet, it starts to calculate the total length of the data packets of the data stream received within the period duration, and then calculates the receiving rate.
  • the receiving point can determine the rate at which the receiving point is correspondingly receiving the data packet of the data stream during the congestion time period of the transmitting point, thereby adjusting the sending rate of the data stream for the sending point and providing accuracy Data reference.
  • the present application further provides a transmission rate control device, which is disposed at a transmission point and includes a transmitter, a receiver, and a processor.
  • the transmitter is configured to perform sending of the data stream in the first aspect and the implementation manners of the first aspect.
  • the receiver is configured to perform the receiving of the CNP in the first aspect and the implementation manners of the first aspect.
  • the processor is configured to perform operations other than the sending of the data stream and the receiving of the CNP in the first aspect and the implementation manners of the first aspect.
  • the present application further provides a transmission rate control device, which is disposed at a receiving point and includes a transmitter, a receiver, and a processor.
  • the transmitter is configured to perform the sending of the CNP in the second aspect and the implementation manners of the second aspect.
  • the receiver is configured to receive the data packet of the data stream in the second aspect and the implementation manners of the second aspect.
  • the processor is configured to perform operations in the second aspect and the implementation manners of the second aspect other than sending the CNP and receiving data packets of the data stream.
  • the present application further provides a transmission rate control device, which is disposed at a sending point and includes a module for executing the method steps of the first aspect and the implementation manners of the first aspect.
  • the present application further provides a transmission rate control device, which is disposed at a receiving point and includes a module for executing the method steps in the second aspect and the implementation manners of the second aspect.
  • the present application provides a sending device used as the sending point, including a transceiver, a processor, and a memory.
  • the transceiver, the processor, and the memory may be connected through a bus system.
  • the memory is configured to store a program, an instruction, or a code
  • the processor is configured to execute the program, the instruction, or the code in the memory to complete the first aspect, or a method in any possible design of the first aspect.
  • the present application provides a receiving device used as the receiving point, including a transceiver, a processor, and a memory.
  • the transceiver, the processor, and the memory may be connected through a bus system.
  • the memory is configured to store a program, an instruction, or a code
  • the processor is configured to execute the program, the instruction, or the code in the memory to complete the second aspect, or a method in any possible design of the second aspect.
  • the present application provides a computer-readable storage medium, where the computer-readable storage medium stores instructions, and when the computer-readable storage medium runs on the computer, causes the computer to execute the first aspect, the second aspect, and the first aspect Method in any possible design or in any possible design in the second aspect.
  • the receiving point in response to the received first data packet including an ECN tag, the receiving point generates a CNP and sends the CNP to the sending point.
  • the sending point sends a data stream to the receiving point via the transmission point, and the data stream includes the first data packet.
  • the CNP includes rate information of the receiving point.
  • the rate information is a rate at which the receiving point receives a data packet of the data stream.
  • the sending point determines a target sending rate of the data stream according to the rate information of the receiving point, and further adjusts the sending rate of the data stream according to the target sending rate.
  • 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 at the transmitting point and improving the performance of the data stream .
  • FIG. 1 is a schematic structural diagram of a DCN according to the present application.
  • FIG. 3 is a schematic diagram of a data frame structure of the CNP of the present application.
  • FIG. 5 is a schematic diagram of a data frame structure according to an embodiment of the first CNP of the present application.
  • FIG. 6 is a method flowchart of another embodiment of a transmission rate control method according to the present application.
  • FIG. 7 is a topology diagram of an embodiment of the DCN of the present application.
  • FIG. 8 is a schematic structural diagram of an embodiment of a transmission rate control device according to the present application.
  • FIG. 9 is a schematic structural diagram of an embodiment of a sending device according to the present application.
  • FIG. 10 is a schematic structural diagram of another embodiment of a transmission rate control device according to the present application.
  • FIG. 11 is a schematic structural diagram of an embodiment of a receiving device of the present application.
  • 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 1, a transmission point 2, a reception point 1, and a reception point 2.
  • FIG. 1 is only an exemplary structural schematic diagram of the DCN of the present application.
  • the number of sending points, the number of transmitting points, and the number of receiving points included in the DCN may be more.
  • one sending point among the multiple sending points of the DCN may send one data stream.
  • the sending point 1 sends a data stream 1, and the data stream 1 is transmitted to the receiving point 1 via the transmission point 1.
  • one sending point among multiple sending points may send at least two data streams.
  • sending point 1 in FIG. 1 can send data stream 2 and data stream 3 in addition to data stream 1.
  • data stream 2 and data stream 3 may be transmitted through the same transmission point.
  • data stream 2 and data stream 3 are transmitted through transmission point 1.
  • Data stream 2 and data stream 3 may also be transmitted via different transmission points.
  • data stream 2 is transmitted via transmission point 1 and data stream 3 is transmitted via transmission point 2.
  • Data stream 2 and data stream 3 can be transmitted to the same receiving point.
  • data stream 2 and data stream 3 are both transmitted to receiving point 1 (not shown in FIG. 1).
  • Data stream 2 and data stream 3 can also be transmitted to different receiving points.
  • data stream 2 is transmitted to receiving point 1, and data stream 3 is transmitted to receiving point 2.
  • a data stream refers to a sequence of data packets being transmitted from a sending point to a receiving point, and the data stream includes multiple data packets. After any data packet in the data packet sequence is sent from the sending point, it enters the queue at the transmission point. After the data packet is dequeued from the transmission point, it is transmitted to the reception point.
  • the in-queue refers to the data packet entering the queue included in the transmission point
  • the out-queue refers to the data packet leaving the queue included in the transmission point.
  • the queue is a linear table included in the transmission point for scheduling data packets.
  • the transmission point implements storage of the queue through a temporary storage included in the transmission point.
  • the queue scheduling algorithm includes a first-in-first-out (FIFO) queue scheduling algorithm, a weighted fair queue (WFQ) scheduling algorithm, a priority queue (PQ) scheduling algorithm, or a custom queue (custom queue (CQ) scheduling algorithm. Based on this, when the length of the queue is greater than a certain value, which causes the interval between the data packet entering the queue and the egressing queue to be longer than a certain time, this application refers to this phenomenon as congestion at the transmission point.
  • FIFO first-in-first-out
  • WFQ weighted fair queue
  • PQ priority queue
  • CQ custom queue
  • Congestion at a transmission point may cause a data packet transmission time of a data stream passing through the transmission point to be too long, thereby reducing the transmission performance of the data stream.
  • this application provides a DCQCN method.
  • the DCQCN method eliminates the congestion existing at the transmission point by adjusting the sending rate of the data stream, and improves the transmission performance of the data stream.
  • FIG. 2 is a signaling interaction diagram of a DCQCN method of the present application.
  • the transmission point where the congestion occurs is, for example, the transmission point 1 shown in FIG. 1.
  • the transmission point 1 is used to forward the data packet of the data stream 1 sent by the transmission point 1 to the reception point 1.
  • the congested queue of the transmission point 1 includes the data packet 1 of the data stream 1.
  • the DCQCN method 100 shown in FIG. 2 includes the following steps:
  • Step S101 In response to the queue length in transmission point 1 exceeding a preset threshold, the transmission point 1 marks the data packet 1 with ECN, and sends the data packet 1 containing the ECN mark to the receiving point. 1.
  • a threshold value is set for a queue length in a transmission point in advance, and the threshold value is also called a watermark, and is used to indicate whether there is congestion in a queue in the transmission point.
  • the data packet of the data stream sent by the sending point includes an ECN flag field.
  • the ECN flag field is a congestion confirmation flag defined by a Transmission Control Protocol (TCP) / Internet Protocol (IP) protocol.
  • TCP Transmission Control Protocol
  • IP Internet Protocol
  • the initial value is, for example, empty.
  • the above-mentioned process of enabling the ECN flag field in a data packet may be referred to as: marking an ECN for a 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.
  • the transmission point 1 detects whether the length of the queue in the transmission point 1 exceeds the waterline, and if the queue length of the transmission point 1 exceeds the waterline, it indicates that there is congestion in the transmission point 1.
  • the transmission point 1 marks the data packets that enter the queue with ECN, and then continues to transmit the data packets that enter the queue with the ECN mark, and the data packets that are not marked with the ECN in the queue. If the queue length of the transmission point 1 does not exceed the waterline, it indicates that there is no congestion at the transmission point 1, and the transmission point 1 continues to transmit the data packets entering the queue and all data packets included in the queue.
  • the transmission point 1 marks the data packet 1 with ECN, and outputs the data packet 1 including the ECN mark.
  • the data packet 1 including the ECN mark is sent to the receiving point 1.
  • the transmission point 1 may forward multiple different data streams. Based on this, the data packets queued by transmission point 1 include data packets of different data streams. In this step, transmission point 1 marks the same ECN for each data packet entering the queue.
  • Step S102 In response to the ECN tag contained in the data packet 1, the receiving point 1 generates CNP1, and sends the CNP1 to the sending point 1.
  • the CNP1 refers to the 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.
  • the data packet includes a flow identifier
  • the flow identifier is used to identify a data flow to which the data packet belongs.
  • the value of the flow identifier included in the data packet 1 is 01, which indicates that the data packet 1 belongs to the data flow 1; the value of the flow identifier included in the data packet 2 is 02, which indicates that the data packet 2 belongs to the data flow 2.
  • the receiving point 1 obtains the flow identifier 01 of the data packet 1 and adds the flow identifier 01 to the generated CNP to obtain CNP1.
  • the frame structure of CNP1 is shown in Fig. 3, including: media access control (MAC) header, Internet Protocol version 4 (IPv4), user datagram protocol (user datagram protocol, UDP) header, basic transport header (BTH), 16-byte reserved bits, invariant cyclic redundancy check (ICRC), and frame check sequence (FCS).
  • MAC media access control
  • IPv4 Internet Protocol version 4
  • UDP user datagram protocol
  • BTH basic transport header
  • FCS frame check sequence
  • IPv4 header in the above CNP1 frame structure may be replaced with an Internet Protocol version 6 (IPv6) header.
  • IPv6 Internet Protocol version 6
  • each field in the frame structure of the above CNP1 can refer to the second version (remote direct direct memory access over converged ethernet version 2 (RoCE) v2) standard protocol based on the fused ether based remote memory access annex 17.9.3 (annex 17.9 .3) will not be repeated here.
  • RoCE remote direct memory access over converged ethernet version 2
  • the state of congestion at transmission point 1 may continue for a period of time. Then, the data packets of data stream 1 received by reception point 1 within this time period all include ECN tags. Based on this, in order to avoid sending CNP1 to sending point 1 repeatedly, starting from the moment when receiving point 1 sends CNP1 this time, CNP1 is no longer sent to sending point 1 within the first preset interval. If after sending the first preset interval of CNP1 this time, the data packet of the data stream 1 received by the receiving point 1 still contains the ECN mark, and the receiving point 1 sends CNP1 to the sending point 1. In an optional embodiment of the present application, the duration of the first preset interval is, for example, 50 ⁇ s.
  • step S103 after receiving the CNP1, the receiving point 1 adjusts the sending rate of the data stream 1.
  • adjusting the sending rate of data stream 1 by sending point 1 includes reducing the sending rate of data stream 1 first to eliminate the congestion existing at transmission point 1; determining that the congestion existing at transmitting point 1 is eliminated, and then increasing the sending of data stream 1. rate.
  • the transmission rate before any adjustment is described as "the transmission rate of the data stream” or "the current transmission rate of the data stream”.
  • the transmission rate after this adjustment is described as the "target transmission rate”.
  • the sending rate before each adjustment is usually also the rate that the sending point is using to send the data stream.
  • the current sending rate of the data stream 1 is, for example, R C , and the target sending rate R T and the current sending rate R C after the data stream 1 is decelerated satisfy:
  • the sending point 1 reduces the sending rate of the data stream 1 from the current sending rate R C to the target sending rate R T.
  • refers to a rate decrease factor
  • the value of ⁇ is updated according to a preset rule.
  • an initial value of [alpha], for example, ⁇ 1, ⁇ 1 is 1.
  • Sending a first receipt point CNP1 the [alpha] 1 is determined as a target transmission rate, then the data rate of a transmitted stream is reduced to [alpha] 1 is determined according to the target transmission rate.
  • the transmission rate is reduced to the target transmission rate determined according to ⁇ 2 .
  • g refers to the update weight of ⁇ , 0 ⁇ g ⁇ 1.
  • ⁇ 1 , ⁇ 2, and ⁇ 3 are not sub-parameters of ⁇ , but respectively represent ⁇ in different scenes.
  • the principle of eliminating congestion lies in reducing the sending rate of the data flow, so that the rate of data packets entering the queue from the congestion queue is lower than the rate of outgoing packets. Based on this, after the congestion in the queue in transmission point 1 is eliminated, if sending point 1 still sends data stream 1 at a lower sending rate, the data packets of data stream 1 will be under-throughput. In view of this, after the queue at transmission point 1 eliminates congestion, transmission point 1 should increase the transmission rate of data stream 1.
  • step S102 it is known that the minimum time interval between sending point 1 and receiving CNP1 twice is the first preset interval duration. After sending point 1 receives CNP1 for the first time, the first preset interval duration is not received again. Go to CNP1, indicating that the congestion existing at transmission point 1 has been eliminated. Based on this, in this application, if the sending point 1 reduces the sending rate of the data stream and CNP1 is not received within the second preset interval, it is considered that the congestion at the transmitting point 1 has been eliminated, and the sending point 1 starts to increase the data stream. The sending rate of 1.
  • the second preset interval is longer than the first preset interval. In an optional embodiment of the present application, the duration of the second preset interval is, for example, 55 ⁇ s.
  • the sending point 1 increases the sending rate of the data stream 1 according to three phases, which include: a fast recovery (FR) phase, an active growth (AI) phase, and an ultra-active growth (hyper active increase, HAI) stage. Specifically, after determining to eliminate the congestion, the sending point 1 enters the FR stage to increase the sending rate of the data stream 1. CNP1 is not received within the second preset interval after the FR phase is increasing, and the sending point 1 enters the AI phase to continue to increase the sending rate of data stream 1. CNP1 is not received within the second preset interval after the AI phase is ramped up. Sending point 1 enters the HAI phase to continue to increase the sending rate of data stream 1.
  • FR fast recovery
  • AI active growth
  • HAI ultra-active growth
  • the current sending rate of data stream 1 is, for example, R C.
  • R C is the target sending rate after the last speed reduction in the above-mentioned speed reduction phase.
  • the target transmission rate corresponding to the FR phase is R T1 , and the value of R T1 is a preset fixed value.
  • Sending point 1 does not receive CNP1 within the second preset interval of sending data stream 1 at the sending rate R C , according to The transmission rate after the first acceleration in the FR stage is determined, and then, the sending point 1 updates the transmission rate of the data stream 1 to the transmission rate after the first acceleration in the FR stage.
  • the sending point 1 does not receive CNP1 within the second preset interval of sending the data stream 1 at the sending rate after the first acceleration in the FR phase.
  • the transmission rate after the second acceleration in the FR phase is determined, and then, the sending point 1 updates the transmission rate of the data stream 1 to the transmission rate after the second acceleration in the FR phase. According to this cycle, the sending rate of the data stream 1 keeps approaching the target sending rate corresponding to the FR stage as R T1 .
  • R C R T1
  • the sending point 1 does not receive CNP1 within the second preset interval of sending data stream 1 at the sending rate R C , according to The transmission rate after the first acceleration in the AI phase is determined, and then, the sending point 1 updates the transmission rate of the data stream 1 to the transmission rate after the first acceleration in the AI phase. Further, the sending point 1 does not receive CNP1 within the second preset interval of sending the data stream 1 at the sending rate after the first acceleration in the AI phase.
  • the transmission rate after the second acceleration in the AI stage is determined, and then, the sending point 1 updates the transmission rate of the data stream 1 to the transmission rate after the second acceleration in the AI stage. According to this cycle, the sending rate of the data stream 1 keeps close to the target sending rate corresponding to the AI stage is R T2 .
  • the transmission rate after the first acceleration in the HAI stage is determined, and then, the sending point 1 updates the transmission rate of the data stream 1 to the transmission rate after the first acceleration in the HAI stage. Further, the sending point 1 does not receive CNP1 within the second preset interval of sending the data stream 1 at the sending rate after the first acceleration in the HAI phase.
  • the transmission rate after the second acceleration in the HAI stage is determined, and then, the sending point 1 updates the transmission rate of the data stream 1 to the transmission rate after the second acceleration in the HAI stage. According to this cycle, the sending rate of the data stream 1 keeps close to the target sending rate corresponding to the AI stage is R T3 .
  • the queue of the transmission point includes data packets of different data streams, and each data packet includes an ECN tag.
  • the receiving point generates and sends CNPs for different data streams. For example, receiving point 1 generates CNP1 corresponding to data stream 1, and CNP1 contains the flow identifier of data stream 1. Receiving point 1 generates CNP2 corresponding to data stream 2. CNP2 contains the flow identifier of data stream 2. The sending point also adjusts the sending rate of the data stream indicated by the flow identifiers of different CNPs.
  • sending point 1 receives CNP1, it adjusts the sending rate of data stream 1.
  • sending point 1 receives CNP2, it adjusts the sending rate of data stream 2.
  • the operations of the receiving point to generate CNP for each data stream, and the operation of the receiving point to adjust the sending rate of each data stream are described in detail above. I won't repeat them here.
  • the present application determines the target transmission rate of the reduction according to the rate reduction factor, and it is difficult to accurately reduce the transmission rate of the data stream to an appropriate level. If the sending rate of the data stream is degraded too much, after the congestion at the transmission point is eliminated, the rate of data packets entering the queue is lower than that of the data out of the queue, making the data stream packets under-throughput. If the transmission rate of the data stream is reduced too slowly, it will be difficult to eliminate the congestion at the transmission point, and the congestion time of the transmission point will be too long. In this application, the speed is increased according to a preset target rate, and it is difficult to accurately increase the sending rate of the data stream to an appropriate level.
  • the transmission rate control method of the present application is applied to a DCN, and the hardware connection structure of the DCN is as described above.
  • multiple transmission point hardware entities in the DCN may be logically equivalent to one transmission point
  • multiple transmission point hardware entities in the DCN may be logically equivalent to one transmission point
  • multiple receptions in the DCN A point hardware entity can be logically equivalent to a receiving point.
  • the logically equivalent DCN may be considered to include a transmission point, a transmission point, and a reception point, and the transmission point is used to send a data stream to the reception point via the transmission point.
  • This application describes the transmission rate control method in combination with the logically equivalent DCN.
  • FIG. 4 is a method flowchart of an embodiment of a transmission rate control method of the present application.
  • the embodiment shown in FIG. 4 describes this solution from the perspective of a sending point.
  • 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 at the transmitting point and improving the transmission performance of the data stream.
  • the method 200 includes the following steps:
  • Step S201 The sending point receives a first CNP sent by the receiving point.
  • the first CNP indicates that there is congestion at the transmission point when the transmission point forwards the first data packet, the data flow includes the first data packet, and the first CNP includes a flow identifier of the data flow. .
  • the first CNP further includes rate information, and the rate information indicates a receiving rate at which the receiving point receives a data packet included in the data stream.
  • the rate information includes a total of a first period and a length of a data packet received by the receiving point within the first period of the data stream.
  • the first period refers to a time period during which the receiving point receives a data packet of the data stream.
  • the rate information includes a receiving rate. The receiving rate satisfies:
  • the technical solution of the present application can preset a period duration.
  • the duration of the preset period is, for example, 10 ⁇ s.
  • the data packet of the data stream received by the receiving point within the first period includes the first data packet.
  • the receiving point continuously determines each cycle from the initial moment. In this implementation mode, the receiving point uses the corresponding period when receiving the first data packet as the first cycle.
  • Another optional implementation manner of Embodiment 1 is that the receiving point uses the time when the first data packet is received as the start time of the first cycle, and uses the time period backward from the start time as the time period. First cycle.
  • the data packet of the data stream received by the receiving point within the first period may not include the first data packet.
  • the receiving point continuously determines each cycle from the initial time, and the present application uses the previous cycle when the first data packet is received as the first cycle.
  • 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.
  • the receiving point continues to determine each cycle from the initial moment.
  • the receiving point determines the time period of the cycle in which the first data packet is received, and obtains the total length of the data packets that received the data stream during the time period, and further Calculate the reception rate.
  • the receiving point when the receiving point receives the first data packet, it starts to calculate the total length of the data packets of the data stream received within the period duration, and then calculates the receiving rate.
  • the rate information included in the CNP of this application corresponds to the rate at which a data point receives a data packet of the data stream when the receiving point sends the CNP information.
  • the rate information contained in the first CNP corresponds to the rate at which the receiving point receives the first data packet; if the sending point receives the CNP again after receiving the first preset interval of the first CNP, the rate contained in the CNP, The corresponding rate at which the receiving point receives the second data packet of the data stream.
  • the second data packet arrives at the receiving point for a first preset interval after the first data packet. Based on this, the meaning of the rate corresponding to the rate information contained in the CNP received by the sending point each time is different.
  • this application uses the ordinal numbers such as "first" and "second" to The received CNP is distinguished.
  • FIG. 5 is a schematic diagram of a data frame structure according to an embodiment of the first CNP of the present application.
  • the first CNP includes: a MAC header, an IPv4 / IPv6 header, a UDP header, BTH, rate information, ICRC, and FCS.
  • 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 to obtain the first CNP described in this embodiment.
  • the rate information is as described above, and the meaning of each piece of data except for the rate information is well known to those skilled in the art, which is not described in detail in this application.
  • Step S202 The sending point determines the receiving rate according to the rate information.
  • the rate information includes two forms. Based on this, an implementation manner of determining the reception rate according to the rate information in the present application is to read the first cycle from the first CNP and the receiving point receives the data stream within the first cycle. The total length of the packet, according to Calculate the receiving rate. Another implementation manner of determining the receiving rate according to the rate information in this application is to read the receiving rate from the first CNP.
  • Step S203 The sending point determines an emptying rate according to the receiving rate.
  • the emptying means that all data packets included in the queue in the transmission point are out of the queue.
  • the emptying rate is the rate at which the transmission point instructs the transmission point to dequeue all data packets included in the queue in the transmission point.
  • one embodiment of the present application is to make all data packets in the queue at the transmission point out of the queue, so that The transmission point reaches a state without a queue.
  • This application refers to "making the transmission point into a queue-free state" as evacuation, that is, all data packets in the transmission point's queue are emptied, thereby achieving the purpose of eliminating congestion.
  • the transmission point is instructed to be emptied within the emptying time.
  • the evacuation time is an indication of the length of time that all data packets included in the queue in the transmission point are out of the queue.
  • a data packet is transmitted from the transmission point to the reception point via the transmission point, and the time length from the reception point to the transmission point is, for example, rtt.
  • the maximum allowable duration of the data packet from the incoming queue to the outgoing queue is tgt.
  • the maximum allowed transmission duration of the data packet transmitted from the sending point to the receiving point is tgt + rtt.
  • the sending point should adjust the sending rate of the data stream so that the rate at which data packets enter the queue in the transmission point is less than the rate at which the data is out of the queue. Specifically, the sending point calculates an emptying rate R pause according to the emptying time T pause to obtain
  • step S204 the sending point updates the sending rate of the data stream to the emptying rate.
  • the sending point reduces the sending rate of the data stream to the emptying rate, so that the transmitting point is emptyed within the emptying time.
  • the sending point sets the initial sending rate of the data stream to the full rate.
  • the initial transmission rate refers to the transmission rate at the initial moment of the transmission point.
  • the initial time refers to the time when the sending point accesses the DCN network.
  • the full rate refers to the maximum sending rate configured for the data stream by the sending point.
  • the sending point uses the receiving rate of the receiving point as a parameter basis for adjusting the sending rate of the data stream, which can purposefully reduce the sending rate of the data stream, thereby quickly draining the data packets contained in the congested queue at the transmitting point. , Quickly eliminate the congestion at the transmission point.
  • the sending point sends the data stream at the emptying rate for the continuous emptying time, so that all data packets included in the queue of the transmission point are quickly out of the queue, thereby reducing the transmission delay of the data packets contained in the queue.
  • a phase in which the sending rate of the data stream is the emptying rate is referred to as an emptying stage.
  • the sending point increases the sending rate of the data stream.
  • the sending point updates the sending rate of the data stream from the evacuation rate to the receiving rate.
  • a stage in which a sending rate of a data stream is the receiving rate is referred to as a steady state stage.
  • the receiving rate is as described in step S202 of the method 200.
  • the evacuation phase the evacuation time of the congestion existing at the transmission point and the evacuation rate of the data stream are clarified, and the congestion existing at the transmission point is quickly and accurately evacuated.
  • the steady speed phase it provides a clear goal 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 precise.
  • 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 stable speed stage.
  • a transmission point hardware entity may transmit multiple data streams, and the transmission rates of the multiple data streams may all be different.
  • each of the plurality of data streams corresponds to the same target transmission rate. Therefore, the speed-up mode described in method 100 makes each data stream in the multiple data streams limited by the current sending rate of the data streams, thereby causing a lack of fairness between the data streams in the process of increasing the sending rate. .
  • the transmission point can detect whether the transmission rate of the data stream is the maximum transmission rate of the transmission point from the time of entering the steady speed stage.
  • 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, it indicates that there is room for the sending rate of the data stream to increase. Further, the sending point determines whether the second CNP is received within a second preset interval after the sending point sends the data stream at the current sending rate of the data stream. The second CNP indicates that there is congestion at the transmission point when the transmission point forwards a second data packet, and the data stream includes the second data packet.
  • the sending point is instructed to send the data stream at the current sending rate of the data stream without causing congestion, and the sending point updates the sending rate of the data stream to the target sending rate.
  • the target sending rate satisfies: Then, the sending point repeatedly performs the foregoing operation of determining whether the sending rate of the data stream is the maximum sending rate, until the sending rate of the data stream reaches the maximum sending rate of the sending point. In an alternative embodiment of the present application, this phase is referred to as a speed-up phase.
  • the sending point receives a new CNP corresponding to the data stream at any time, and then executes method 200. It will not be described in detail here.
  • step S201 of the method 200 in the technical solution of the present application, the sending point receives different CNPs at different times.
  • the time corresponding to each round of the judgment operation is different. Therefore, the CNP corresponding to the current judgment operation is different from the CNP corresponding to the previous judgment operation.
  • the ordinal number of the CNP corresponding to each round of determination operation may be described as the ordinal number of the CNP corresponding to the previous round of determination operation plus one.
  • the first round of determining operations corresponds to determining whether the sending point has received the second CNP. If the sending point does not receive the second CNP, the sending rate of the data stream is updated and the second round of determining is performed.
  • the second judging operation corresponds to judging 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 judging is performed. If the sending point receives the third CNP, the method 200 is executed, and the ordinal number may be reset to the CNP in the subsequent speed-up phase.
  • the sending point of the data stream uses its maximum sending rate as reference data to increase the sending rate of the data stream, so that when there are multiple data streams, sending needs to be increased. At the same time, it can ensure the fairness of the speed increase between each data stream.
  • FIG. 6 is a method flowchart of another embodiment of a transmission rate control method according to the present application.
  • the method 300 shown in FIG. 6 is applied in the DCN, and is performed by a receiving point before the method 200 is performed.
  • the method 300 is an embodiment of a peer device 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, for a detailed description of the same or corresponding technical terms and operation steps in the method 300 as the method 200, refer to the method 200, and the method 300 will not be described again.
  • the method 300 includes the following steps:
  • Step S301 The receiving point receives a first data packet sent by the sending point and forwarded through the transmitting point.
  • Step S302 The receiving point generates a first CNP according to an ECN tag included in the first data packet.
  • the transmission point detects whether the queue length of the transmission point exceeds the waterline. If the queue length of the transmission point exceeds the waterline, it indicates that the transmission point exists. congestion.
  • the transmitting point is a queued data packet
  • the data packets out of the queue and all data packets in the queue of the transmission point are marked with ECN, and then all the data packets marked with ECN are continued to be transmitted.
  • the ECN marked data packet includes the first data packet.
  • the first CNP includes rate information.
  • the receiving point 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.
  • the rate information includes a sum of a first period and a length of a data packet received by the receiving point within the first period of the data stream.
  • the rate information includes a receiving rate.
  • Step S303 The receiving point sends the first CNP to the sending point.
  • the sending point is triggered to execute the method 200.
  • the receiving point continuously detects whether the received data packet of the data stream contains an ECN tag. If the first CNP is sent for a first preset interval, the data of the received data stream is received. The packet contains an ECN tag, and the receiving point performs step S302 again to generate and send a second CNP.
  • the receiving point when a first data packet of a data stream received by a receiving point includes an ECN tag, the receiving point will receive a receiving rate of the data packet of the data stream through the receiving rate.
  • the CNP corresponding to the data stream is fed back to the sending point.
  • the sending point determines a 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 phase, a steady speed phase, or a rising speed stage.
  • the technical solution of the present application can accurately adjust the sending rate of the data stream, thereby eliminating queue congestion at the transmission point, and improving the transmission performance of the data stream.
  • the present application uses the maximum transmission rate of the sending point as a parameter basis for the speed increase of the data flow, and can also ensure the fairness of the speed increase between data flows when there are multiple data flows that need to increase the transmission speed.
  • FIG. 7 is a topology diagram of an embodiment of a DCN according to the present application.
  • the data stream A of the transmitting point A is sequentially transmitted to the receiving point X via the transmission point 71, the transmission point 73, and the transmission point 74.
  • the sending point B sends a data stream B1 and a data stream B2, wherein the data stream B1 is sequentially transmitted to the receiving point X via the transmission point 72, the transmission point 73, and the transmission point 74, and the data stream B2 is sequentially transmitted through the transmission point 72 and the transmission point 73.
  • the transmission point 74 is transmitted to the reception point Y.
  • the data stream C sent by the sending point C is sequentially transmitted to the receiving point Y via the transmission point 72, the transmission point 73, and the transmission point 74.
  • the reception point X and the reception point Y begin to establish a connection in the network shown in FIG. 7, and can continuously record the total length of the data packet of each data stream received every 10 ⁇ s with a period of 10 ⁇ s to obtain the corresponding within 10 ⁇ s. , Receive rate of each data stream received.
  • the preset period lengths corresponding to the receiving point X and the receiving point Y are set to be the same.
  • the duration of the preset period corresponding to the receiving point X and the receiving point Y may also be set to be different. This application is not limited in this regard.
  • each of the transmission points 71, 72, 73, and 74 continuously checks whether the queue length of the transmission point exceeds a preset waterline.
  • the queue length exceeds the waterline, indicating that the transmission point is congested, and the transmission point marks all data packets in the queue with ECN.
  • the transmission point 72 is the data packet of the data stream B1, the data packet of the data stream B2, and the data of the data stream C in the queue. Bags are marked with ECN.
  • the transmission point 71, transmission point 73, and transmission point 74 each have a queue length that exceeds the waterline, and the transmission point 71, transmission point 73, and transmission point 74 do not perform the ECN marking operation described above.
  • the data packet of the data stream B1 marked with ECN this time is referred to as data packet B1
  • the data packet of the data stream B2 marked with ECN this time is referred to as data packet B2.
  • the packet is called packet C.
  • the transmission points in the DCN network can be expressed as multiple levels.
  • the first-level transmission point in the congested transmission point is a data packet in a queue of the first-level transmission point. Mark ECN.
  • the other-level transmission points of the at least two-level congested transmission points do not need to mark the data packets in their queues. If the data streams transmitted by the at least two levels of congested transmission points are the same, the transmission points of the other levels among the at least two levels of congested transmission points are marked with ECN for data packets that are not marked with ECN in the queue.
  • the transmission point 73 and the transmission point 74 each transmit a data packet of the data stream A, a data packet of the data stream B1, a data packet of the data stream B2, and a data packet of the data stream C.
  • the transmission point 73 may mark all data packets included in the queue of the transmission point 73 with ECN. Based on this, the data packets queued in the transmission point 74 already include the ECN mark, so the transmission point 74 does not need to mark the data packets contained in the queue of the transmission point 74 with the ECN mark.
  • the transmission point 72 transmits the data packet of the data stream B1 , The data packet of the data stream B2 and the data packet of the data stream C, and the transmission point 73 also transmits the data packet of the data stream A compared to the transmission point 72, so the transmission point 73 also needs to include in the queue of the transmission point 73
  • the packets of data stream A are marked with ECN.
  • the transmission point 72 sends the data packet B1 to the receiving point X, and sends the data packet B2 and the data packet C to the receiving point Y.
  • receiving point X determines the time period of the cycle in which data packet B1 is received. Then, receiving point X obtains the sum of the lengths of the data packets of data stream B1 received during the corresponding time period to calculate the receiving data at receiving point X Receive rate of stream B1. Further, the receiving point X generates a first CNP B1 and sends the first CNP B1 to the sending point B.
  • the first CNP B1 includes a flow identifier of the data flow B1 and a receiving rate at which the receiving point X receives the data flow B1.
  • the sending point B After receiving the first CNP B1 , the sending point B reads the receiving rate included in the first CNP B1 . Further, the sending point B calculates the emptying rate and emptying time of the data stream B1 according to the method described in method 200, and then reduces the sending rate of the data stream B1 to the emptying rate, so that the queue of the transmitting point 72 The data packet in the data stream B1 enters the emptying phase.
  • the sending point B sends the data stream B1 at the emptying rate for a continuous emptying time, the data packet of the data stream B1 in the queue of the transmission point 72 has been emptied, but the queue of the transmission point 72 may further The data packet of data stream B2 and the data packet of data stream C. Based on this, in order to prevent the transmission point 72 from entering the congestion state again and at the same time to avoid the under-throughput of the data stream B1, after sending the data stream B1 at the emptying rate for the continuous emptying time, the sending point B sends the data stream B1.
  • the rate has an emptying rate updated to the receiving rate included in the first CNP B1 , so that the in-queue rate and the out-queue rate of the data packets of the data stream B1 at the transmission point 72 are balanced.
  • the minimum interval duration of the data stream B1 sent twice by the receiving point X is, for example, 50 ⁇ s. Accordingly, the transmission point B after receiving the first CNP B1 is not received within a second CNP B1 55 ⁇ s, the transmission point 72 that the presence of congestion has been eliminated. If the congestion existing at the transmission point 72 is eliminated, the sending point B still sends the data stream B1 at the receiving rate, which will cause the data packets of the data stream B1 to be under-throughput. Based on this, if the second CNP B1 is not received within 55 ⁇ s of sending the data stream B1 at the receiving rate, the sending point B speeds up the sending rate of the data stream B1 to half the sum of the receiving rate and the maximum sending rate of the sending point B.
  • the transmission point B detects whether the third CNP B1 sent by the reception point X is received within 55 ⁇ s. If the transmission point B does not receive the third CNP B1 within 55 ⁇ s after the speed increase, the transmission rate of the data stream B1 is increased to Half of the sum of the current transmission rate of the data stream B1 and the maximum transmission rate of the transmission point B. The above determination process is repeatedly performed until the sending rate of the data stream B1 reaches the maximum sending rate of the sending point B. Of course, if the sending point B receives CNP B1 sent by the receiving point X during the acceleration period, the emptying rate corresponding to the data stream B1 is calculated again, and the sending rate of the data stream B1 is reduced to the calculated emptying rate. .
  • the processing process is the same as that of the receiving point X.
  • the receiving point Y After receiving the data packet B2 and the data packet C, the receiving point Y generates a first CNP B2 and a first CNP C.
  • the first CNP B2 includes a flow identifier of the data stream B2 and a receiving rate of the data packet B2 received by the receiving point Y
  • the first CNP C includes a flow identifier of the data stream C and the receiving point Y receives Receive rate of data packets in data stream C.
  • the receiving point Y sends the first CNP B2 to the sending point B, and sends the first CNP C to the sending point C.
  • the sending point B After receiving the first CNP B2 , the sending point B calculates an emptying rate and an emptying time of the data stream B2 according to a receiving rate included in the first CNP B2 , and reduces the sending rate of the data stream B2 to corresponding Evacuation rate. Then, after sending the data stream B2 at the corresponding emptying rate for the corresponding emptying time of the data stream B2, the sending point B increases the sending rate of the data stream B2 from the corresponding emptying rate to the value included in the first CNP B2 . Receive rate.
  • the point B is determined whether transmission of the received n CNP B2, if not receiving the first n CNP B2, places the maximum transmission rate of the transmission rate of the data stream being used B2 and point B is transmitted parameters, Speed up.
  • the specific judgment process and speed-up process are similar to the data flow B1, and will not be described in detail here.
  • the sending point C calculates the emptying rate and emptying time of the data stream C according to the receiving rate contained in the first CNP C , and sets the sending rate of the data stream C Reduce to the corresponding emptying rate. Then, after sending the data stream C at the corresponding emptying rate for the corresponding emptying time of the data stream C, the sending point C increases the sending rate of the data stream C from the corresponding emptying rate to the value included in the first CNP C. Receive rate.
  • the point C is determined whether transmission of the received n CNP C, if not receiving the first n CNP C, is sent in the transmission rate and the maximum transmission rate of the data stream C of the point C being used as parameters, Speed up.
  • the specific judgment process and speed-up process are similar to the data flow B1, and will not be described in detail here.
  • n is an ordinal number such as two, three, or four.
  • the receiving point X also receives the data packet of the data stream A, there is no congestion at the transmission point 71, the transmission point 73, and the transmission point 74 of the data packet of the data stream A. Therefore, the data packet of the data stream A received by the receiving point X does not include the ECN tag, and the receiving point X does not need to generate a CNP corresponding to the data stream A. Furthermore, the transmission point A does not need to adjust the transmission rate of the data stream A. If the transmission point 73 and / or the transmission point 74 are congested, then the data packet of the data stream A received by the receiving point X also includes the ECN mark.
  • the receiving point X generates and sends a first CNP A to the sending point A, where the first CNP A includes a flow identifier of the data stream A and a receiving rate at which the receiving point X receives the data packet of the data stream A.
  • the sending point A adjusts the sending rate of the data stream A.
  • the process in which the sending point A adjusts the sending rate of the data stream A is similar to the description of adjusting the data stream B1 in the sending point B described above. This embodiment will not be described in detail.
  • the receiving point when a first data packet of a data stream received by a receiving point includes an ECN tag, the receiving point will receive a receiving rate of the data packet of the data stream through the receiving rate.
  • the CNP corresponding to the data stream is fed back to the sending point.
  • the sending point determines a 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 phase, a steady speed phase, or a rising speed stage.
  • the technical solution of the present application can accurately adjust the sending rate of the data stream, thereby eliminating queue congestion at the transmission point, and improving the transmission performance of the data stream.
  • the present application uses the maximum transmission rate of the sending point as a parameter basis for the speed increase of the data flow, and can also ensure the fairness of the speed increase between data flows when there are multiple data flows that need to increase the transmission speed.
  • the present application further provides a transmission rate control device.
  • the transmission rate control device provided 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 used to execute the method 200 and the method performed by the sending point in the embodiment corresponding to FIG. 7.
  • FIG. 8 is a schematic structural diagram of an embodiment of a transmission rate control device of the present application.
  • the transmission rate control device 800 includes a transmitter 801, a receiver 802, and a processor 803.
  • the transmitter 801 may execute the method 200 and the sending of the data stream in the embodiment corresponding to FIG. 7.
  • the receiver 802 may perform the receiving of the CNP in the method 200 and the embodiment corresponding to FIG. 7.
  • the processor 803 may perform operations other than sending the data stream and receiving the CNP in the method 200 and the embodiment corresponding to FIG. 7.
  • the transmitter 801 may be configured to send the data stream to the receiving point;
  • the receiver 802 may be configured to receive a first congestion notification message CNP sent by the receiving point, where the first CNP indicates the There is congestion at the transmission point when the transmission point forwards the first data packet, the data stream includes the first data packet, the first CNP includes rate information, and the rate information instructs the receiving point to receive the data stream A receiving rate of the included data packet;
  • the processor 803 may be configured to determine the receiving rate according to the rate information; determine an emptying rate according to the receiving rate, and the emptying rate is an instruction that the transmission point sends the The rate at which all data packets included in the queue at the transmission point are out of the queue, the queue includes data packets in the data stream; and the sending rate of the data stream is updated to the emptying rate.
  • FIG. 9 is a schematic structural diagram of an embodiment of a sending device according to 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 programs / codes pre-installed by the sending device 900, and may also store codes and the like used by the processor 901 for execution.
  • the sending device 900 of the present application may correspond to the method 200 of the present application and the sending point in the embodiment corresponding to FIG. 7, where the transceiver 902 is configured to execute the method 200 and the sending point described in the embodiment corresponding to FIG. 7.
  • the processor 901 is configured to perform other processes than the reception of the CNP and the data stream transmission in the sending point described in the foregoing method 200 and the embodiment corresponding to FIG. 7. I will not repeat them here.
  • the transmission rate control device provided 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 execute the method 300 and the method performed by the sending point in the embodiment corresponding to FIG. 7.
  • FIG. 10 is a schematic structural diagram of another embodiment of a transmission rate control device of the present application.
  • the transmission rate control device 1000 includes a transmitter 1001, a receiver 1002, and a processor 1003.
  • the transmitter 1001 may be specifically configured to perform the CNP sending performed by the receiving point described in the foregoing method 300 and the embodiment corresponding to FIG. 7; and the receiver 1002 may be specifically configured to perform the foregoing method 300 and the corresponding embodiment in FIG. 7.
  • Receiving a data packet performed by the receiving point; the processor 1003 is specifically configured to execute the processing 300 described above and the receiving point in the embodiment corresponding to FIG. 7 in addition to receiving data packets and sending CNP.
  • the transmitter 1001 may be configured to send the first CNP to the transmission point;
  • the receiver 1002 may be configured to receive a first data packet sent by the transmission point and forwarded through the transmission point, and the data The stream includes the first data packet, and the first data packet includes an explicit congestion notification ECN flag, which indicates that the transmission point has congestion when the transmission point forwards the first data packet; and
  • the sending point sends the first CNP;
  • the processor 1003 may be configured to generate a first congestion notification message CNP according to an ECN tag included in the first data packet, the first CNP includes rate information, and the rate The information indicates a receiving rate at which the receiving point receives a data packet included in the data stream.
  • 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 programs / codes pre-installed by the receiving device 1100, and may also be used to store codes and the like used by the processor 1101 for execution.
  • the receiving device 1100 of the present application may correspond to the method 300 of the present application and the receiving point described in the embodiment corresponding to FIG. 7, where the transceiver 1102 is configured to execute the method 300 described above and the embodiment corresponding to FIG. 7
  • the processor 1101 is configured to receive the data packet and send the CNP by the receiving point, and the processor 1101 is configured to perform other processes except the data packet receiving and the CNP sending in the receiving point described in the method 300 and the embodiment corresponding to FIG. 7. I will not repeat them here.
  • the DCN includes a transmitting point, a transmitting point, and a receiving point.
  • the sending point may be a transmission rate control device provided in the embodiment corresponding to FIG. 8, or the sending device is provided in the embodiment corresponding to FIG. 9, and the receiving point may be a transmission rate control device 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 execute the methods in the embodiments corresponding to FIG. 4 to FIG. 7.
  • the present application also provides a computer storage medium corresponding to the sending device and the receiving device.
  • the computer storage medium provided in any device may store a program. When the program is executed, the program may be implemented including FIG. 4 to FIG. Some or all steps in the embodiments of the transmission rate control method provided in 7.
  • the storage medium in any device may be a magnetic disk, a compact disc, a read-only memory (ROM), or a random access memory (RAM).
  • 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 can 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.
  • ASIC application-specific integrated circuit
  • PLD programmable logic device
  • 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 (for example, random-access memory (RAM); the memory may also include non-volatile memory (for example, read-only memory) memory (ROM), flash memory (flash memory), hard disk (HDD) or solid-state drive (SSD); the memory may also include a combination of the above types of memory.
  • the bus interface may include any number of interconnected buses and bridges. Specifically, one or more processors represented by the processor and various circuits of the memory represented by the memory are linked together. The bus interface can also link various other circuits such as peripherals, voltage regulators, and power management circuits, which are well known in the art, so they are not described further herein.
  • the bus interface provides an interface.
  • the transceiver provides a unit for communicating with various other devices on a transmission medium.
  • the processor is responsible for managing the bus architecture and general processing.
  • the memory can store data used by the processor when performing operations.
  • Various illustrative logic units and circuits described in the embodiments of the present application may be implemented by a general-purpose processor, a digital signal processor, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), or other programmable logic devices. Discrete gate or transistor logic, discrete hardware components, or any combination of the above are designed to implement or operate the described functions.
  • the general-purpose processor may be a microprocessor. Alternatively, the general-purpose processor may also be any conventional processor, controller, microcontroller, or state machine.
  • the processor may also be implemented by a combination of computing devices, such as a digital signal processor and a microprocessor, multiple microprocessors, one or more microprocessors in conjunction with a digital signal processor core, or any other similar configuration. achieve.
  • a software unit may be stored in a RAM memory, a flash memory, a ROM memory, an EPROM memory, an EEPROM memory, a register, a hard disk, a removable disk, a CD-ROM, or any other form of storage medium in the art.
  • the storage medium may be connected to the processor, so that the processor can read information from the storage medium and can write information to the storage medium.
  • the storage medium may be integral to the processor.
  • the processor and the storage medium may be provided in an ASIC, and the ASIC may be provided in a UE.
  • the processor and the storage medium may also be provided in different components in the UE.
  • the size of the sequence numbers of the processes does not mean the order of execution.
  • the execution order of the processes should be determined by its function and internal logic, and should not deal with the implementation process of the embodiment. Constitute any limitation.
  • the computer program product includes one or more computer instructions.
  • the computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices.
  • the computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be from a website site, computer, server, or data center Transmission by wire (for example, coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (for example, infrared, wireless, microwave, etc.) to another website site, computer, server, or data center.
  • the computer-readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server, a data center, and the like that includes one or more available medium integration.
  • the usable medium may be a magnetic medium (for example, a floppy disk, a hard disk, a magnetic tape), an optical medium (for example, a DVD), or a semiconductor medium (for example, a solid state disk (SSD)).

Landscapes

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

Abstract

本申请公开了一种传输速率控制方法、装置、发送设备和接收设备。所述传输速率控制方法应用于DCN,包括:发送点接收所述接收点发送的第一CNP,所述第一CNP包括速率信息,所述速率信息指示所述接收点接收所述数据流包括的数据包的接收速率;根据所述速率信息确定所述接收速率;根据所述接收速率确定排空速率;将所述数据流的发送速率更新为所述排空速率。本申请的技术方案,发送点根据接收点的速率信息调整数据流的发送速率,能够精确的调整数据流的发送速率,从而能够消除传输点的队列拥塞,提高数据流的传输性能。

Description

传输速率控制方法、装置、发送设备和接收设备
本申请要求于2018年08月30日提交中国专利局、申请号为201811003680.7、发明名称为“传输速率控制方法、装置、发送设备和接收设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信技术领域,尤其涉及一种传输速率控制方法、装置、发送设备和接收设备。
背景技术
数据中心网络(data center network,DCN)是传输数据的核心网络,广泛应用于网络传输领域。一种典型的DCN包括发送点,传输点和接收点,传输点接收发送点发出的数据包,并发送到接收点。随着人工智能、云计算和实时大数据分析等的发展,DCN应当满足超低延时、高吞吐和无丢包等要求,基于此,DCN支持远程直接内存访问(remote direct memory access,RDMA)的数据传输方案。
由于网络拥塞会造成数据传输延时过长,甚至丢包等现象,基于此,RDMA提供了一种数据中心量化拥塞通知(data center quantized congestion notification,DCQCN)方案。具体的,当传输点检测到拥塞时,为所接收的数据包添加显式拥塞通告(explicit congestion notification,ECN)标记。接收点接收到带有ECN标记的数据包之后,向发送点发送拥塞通告报文(congestion notification packet,CNP),以通告发送点网络产生了拥塞。当发送点接收到CNP时,通过降低所述数据包所属数据流的发送速率消除拥塞。当拥塞消除后,发送点再升高所述数据包所属数据流的发送速率。
在实际应用场景中,发送点根据预设的调整因子确定所述数据流的发送速率,并通过调节所述调整因子调整所述数据流的发送速率。这种调整方式导致所述数据流的发送速率发生震荡,从而导致数据流的传输性能下降。
发明内容
本申请提供了一种传输速率控制方法、装置、发送设备和接收设备,应用在DCN中,实现数据流的发送速率的精确调整,从而消除传输点的队列拥塞和提高数据流的传输性能。
本申请提供的技术方案,应用于DCN,所述DCN包括发送点、传输点和接收点,所述发送点用于经由所述传输点向所述接收点发送数据流。
第一方面,本申请提供了一种传输速率控制方法,该方法包括:
所述发送点接收所述接收点发送的第一拥塞通告报文CNP,所述第一CNP指示所述传输点转发第一数据包时所述传输点存在拥塞,所述数据流包括所述第一数据包,所述第一CNP包括速率信息,所述速率信息指示所述接收点接收所述数据流包括的数据包的接收速率;
所述发送点根据所述速率信息确定所述接收速率;
所述发送点根据所述接收速率确定排空速率,所述排空速率是指示所述传输点将所述传输点中的队列包括的全部数据包出队列的速率,所述队列包括所述数据流中的数据包;
所述发送点将所述数据流的发送速率更新为所述排空速率。
其中,本实现方式中,CNP包括接收点接收发送点所发送的数据流的数据包的速率信息。发送点接收到该CNP后,根据所述速率信息确定接收点的接收速率。然后,发送点根据接收点的接收速率确定所述数据流的目标发送速率,进而,将数据流的发送速率更新为所述目标发送速率。
采用本实现方式,发送点将接收点的接收速率作为调整数据流发送速率的参数依据,能够有的放矢的降低数据流的发送速率,从而能够快速排空传输点中拥塞的队列包含的数据包,快速消除传输点存在的拥塞。
一种可选的设计中,所述发送点根据所述接收速率确定排空速率,包括:
所述发送点根据所述数据流的发送速率和所述接收速率生成超速比因子a,所述超速比因子a满足:
Figure PCTCN2019082462-appb-000001
其中,R 发送是指所述数据流的发送速率,R 接收是指所述接收速率;
根据所述超速比因子a确定排空时间T pause,所述排空时间T pause满足:T pause=a×(tgt+rtt)+tgt,其中,tgt是指所述队列中的数据包出队列时的时间戳与入队列时的时间戳的差应满足的时间间隔,rtt是指所述传输点中无队列时,数据包从所述发送点经由所述传输点传输到所述接收点,再由所述接收点返回所述发送点的时长;
根据所述排空时间T pause计算所述排空速率R pause,所述排空速率R pause满足:
Figure PCTCN2019082462-appb-000002
其中,本申请中,为了快速消除所述传输点存在的拥塞,使所述传输点的队列中的全部数据包均出队列,使所述传输点达到无队列的状态。本申请将“使所述传输点达到无队列的状态”称为排空。本申请的一种实现方式中,指示所述传输点在排空时间内排空。所述排空时间是指示所述传输点中的队列包括的全部数据包出队列的时长。发送点可以根据所述排空时间计算所述数据流的排空速率。
采用本实现方式,发送点能够精确确定所述数据流的排空速率,从而对所述数据流实现精确降速。
一种可选的设计中,在所述发送点将所述数据流的发送速率更新为所述排空速率之后,还包括:
所述发送点以所述排空速率发送所述数据流持续所述排空时间;
所述发送点将所述数据流的发送速率更新为所述接收速率。
其中,发送点以排空速率发送数据流持续排空时间,从而将传输点的队列包含的全部数据包快速出队列,进而能够降低队列中包含的数据包的传输时延。在将所述传输点的队列中拥塞的数据包排空之后,发送点将数据流的发送速率从排空速率更新为所述接收速率。
采用本实现方式,在排空阶段,明确传输点存在的拥塞的排空时间和数据流的排空速率,对传输点存在的拥塞快速准确的排空。在稳速阶段,为发送点升高数据流的发送速率提供明确的目标,从而使得数据流发送速率的调整更加精确。
一种可选的设计中,在所述发送点将所述数据流的发送速率更新为所述接收速率之后,还包括:
所述发送点检测所述数据流的发送速率是否达到所述发送点的最大发送速率;
当所述数据流的发送速率未达到所述发送点的最大发送速率时,所述发送点判断第二预设间隔时长内是否接收到所述接收点发送的第二CNP,所述第二CNP指示所述传输点转发第二数据包时所述传输点存在拥塞,所述数据流包括所述第二数据包,所述第二预设间隔时长大于第一预设间隔时长,所述第一预设间隔时长是接收点发送CNP的最小间隔时长;
当所述第二预设间隔时长内未接收到所述第二CNP时,所述发送点将所述数据流的发送速率更新为目标发送速率,所述目标发送速率满足:
Figure PCTCN2019082462-appb-000003
Figure PCTCN2019082462-appb-000004
所述发送点重复执行所述检测所述数据流的发送速率是否达到所述发送点的最大发送速率的操作,直到所述数据流的发送速率达到所述发送点的最大发送速率。
其中,发送点以接收速率发送所述数据流,导致所述数据流的数据包的吞吐量不高。基于此,在保证传输点不存在拥塞的前提下,发送点还可以进一步升高所述数据流的发送速率。具体的,本申请中,发送点以所述发送点的最大发送速率作为最终的目标速率,每一轮升速,均将所述数据流的发送速率升速到所述数据流的发送速率与所述发送点的最大发送速率之和的一半,直到所述数据流的发送速率达到发送点的最大发送速率。
采用本实现方式,所述数据流的发送点以其最大发送速率作为参考数据,升高所述数据流的发送速率,从而在有多条数据流需要升高发送速率时,能够保证各条数据流之间升速的公平性。
一种可选的设计中,所述速率信息包括:第一周期和所述接收点在所述第一周期 内接收到所述数据流的数据包的长度总和;或者
所述速率信息包括所述接收速率。
采用本实现方式,发送点将接收点的接收速率作为调整数据流发送速率的参数依据,能够有的放矢的降低数据流的发送速率,从而能够快速排空传输点中拥塞的队列包含的数据包,快速消除传输点存在的拥塞。
一种可选的设计中,所述接收点在所述第一周期内接收到的所述数据流的数据包中包括所述第一数据包。
具体的,一种可选实现方式中,接收点从初始时刻开始持续确定各个周期,本实现方式中,所述接收点将接收到第一数据包时对应周期作为所述第一周期。另一种可选实现方式是,接收点将接收到第一数据包的时刻作为所述第一周期的起始时刻,将该起始时刻向后周期时长的时间段作为所述第一周期。
采用本实现方式,接收点能够确定传输点拥塞的时间段内,所述接收点正在对应的接收所述数据流的数据包的速率,从而为发送点调整所述数据流的发送速率,提供精确的数据参考。
一种可选的设计中,所述接收速率是指所述接收点接收的所述数据流的数据包包括所述第一数据包的周期对应的速率。
具体的,在一种可能的实现方式中,接收点从初始时刻开始持续确定各个周期。本实现方式中,在接收到第一数据包时,接收点确定接收到第一数据包的时刻所在周期的时间段,获取该时间段内接收到所述数据流的数据包的长度总和,进而计算所述接收速率。在另一种可能的实现方式中,接收点接收到第一数据包时,开始计算周期时长内所接收的所述数据流的数据包的长度总和,进而计算所述接收速率。
采用本实现方式,接收点能够确定传输点拥塞的时间段内,所述接收点正在对应的接收所述数据流的数据包的速率,从而为发送点调整所述数据流的发送速率,提供精确的数据参考。
第二方面,本申请提供了一种传输速率控制方法,该方法包括:
所述接收点接收所述发送点发送且经由所述传输点转发的第一数据包,所述数据流包括所述第一数据包,所述第一数据包包括显式拥塞通告ECN标记,所述ECN标记指示所述传输点转发所述第一数据包时所述传输点存在拥塞;
所述接收点根据所述第一数据包包括的ECN标记,生成第一拥塞通告报文CNP,所述第一CNP包括速率信息,所述速率信息指示所述接收点接收所述数据流包括的数据包的接收速率;
所述接收点向所述发送点发送所述第一CNP。
其中,本申请中,接收点接收到包含ECN标记的数据包之后,确定接收所述数据包所属数据流的数据包的速率信息。所述接收点将所述速率信息添加到所生成的CNP中。所述接收点将所述CNP发送到所述发送点,用于触发所述发送点根据所述速率信息调整所述数据流的发送速率。
采用本实现方式,发送点将接收点的接收速率作为调整数据流发送速率的参数依据,能够有的放矢的降低数据流的发送速率,从而能够快速排空传输点中拥塞的队列包含的数据包,快速消除传输点存在的拥塞。
一种可选的设计中,所述速率信息包括:第一周期和所述接收点在所述第一周期内接收到所述数据流的数据包的长度总和;或者
所述速率信息包括所述接收速率。
采用本实现方式,发送点将接收点的接收速率作为调整数据流发送速率的参数依据,能够有的放矢的降低数据流的发送速率,从而能够快速排空传输点中拥塞的队列包含的数据包,快速消除传输点存在的拥塞。
一种可选的设计中,所述接收点在所述第一周期内接收到的所述数据流的数据包中包括所述第一数据包。
具体的,一种可选实现方式中,接收点从初始时刻开始持续确定各个周期,本实现方式中,所述接收点将接收到第一数据包时对应周期作为所述第一周期。另一种可选实现方式是,接收点将接收到第一数据包的时刻作为所述第一周期的起始时刻,将该起始时刻向后周期时长的时间段作为所述第一周期。
采用本实现方式,接收点能够确定传输点拥塞的时间段内,所述接收点正在对应的接收所述数据流的数据包的速率,从而为发送点调整所述数据流的发送速率,提供精确的数据参考。
一种可选的设计中,所述接收速率是指所述接收点接收的所述数据流的数据包包括所述第一数据包的周期对应的速率。
具体的,在一种可能的实现方式中,接收点从初始时刻开始持续确定各个周期。本实现方式中,在接收到第一数据包时,接收点确定接收到第一数据包的时刻所在周期的时间段,获取该时间段内接收到所述数据流的数据包的长度总和,进而计算所述接收速率。在另一种可能的实现方式中,接收点接收到第一数据包时,开始计算周期时长内所接收的所述数据流的数据包的长度总和,进而计算所述接收速率。
采用本实现方式,接收点能够确定传输点拥塞的时间段内,所述接收点正在对应的接收所述数据流的数据包的速率,从而为发送点调整所述数据流的发送速率,提供精确的数据参考。
第三方面,本申请还提供了一种传输速率控制装置,该装置设置在发送点,包括发送器、接收器和处理器。其中,发送器用于执行第一方面及第一方面各实现方式中数据流的发送。接收器用于执行第一方面及第一方面各实现方式中CNP的接收。处理器用于执行第一方面及第一方面各实现方式中除了数据流的发送和CNP的接收之外的操作。
第四方面,本申请还提供了一种传输速率控制装置,该装置设置在接收点,包括发送器、接收器和处理器。其中,发送器用于执行第二方面及第二方面各实现方式中CNP的发送。接收器用于执行第二方面及第二方面各实现方式中数据流的数据包的接收。处理器用于执行第二方面及第二方面各实现方式中除了CNP的发送和数据流的数据包的接收之外的操作。
第五方面,本申请还提供了一种传输速率控制装置,该装置设置在发送点,包括用于执行第一方面及第一方面各实现方式的中方法步骤的模块。
第六方面,本申请还提供了一种传输速率控制装置,该装置设置在接收点,包括用于执行第二方面及第二方面各实现方式的中方法步骤的模块。
第七方面,本申请提供了一种发送设备,用作所述发送点,包括收发器,处理器以及存储器。其中,收发器、处理器以及所述存储器之间可以通过总线系统相连。该存储器用于存储程序、指令或代码,所述处理器用于执行所述存储器中的程序、指令或代码,完成第一方面,或第一方面的任意一种可能的设计中的方法。
第八方面,本申请提供了一种接收设备,用作所述接收点,包括收发器,处理器以及存储器。其中,收发器、处理器以及所述存储器之间可以通过总线系统相连。该存储器用于存储程序、指令或代码,所述处理器用于执行所述存储器中的程序、指令或代码,完成第二方面,或第二方面的任意一种可能的设计中的方法。
第九方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行第一方面、第二方面、第一方面任意可能的设计中或第二方面任意可能的设计中的方法。
本申请中,响应于所接收的第一数据包包括ECN标记,接收点生成CNP,并将该CNP发送到发送点。其中,发送点经由传输点向所述接收点发送数据流,所述数据流包括所述第一数据包。为了解决数据流的传输性能下降的问题,所述CNP包括所述接收点的速率信息。所述速率信息是所述接收点接收所述数据流的数据包的速率。发送点根据接收点的速率信息确定数据流的目标发送速率,进而,根据目标发送速率调整数据流的发送速率。由此可见,本申请的技术方案,发送点根据接收点的速率信息调整数据流的发送速率,能够精确的调整数据流的发送速率,从而能够消除传输点的队列拥塞,提高数据流的传输性能。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简 单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一种DCN的结构示意图;
图2是本申请一种DCQCN方法的信令交互图;
图3是本申请CNP的数据帧结构示意图;
图4是本申请传输速率控制方法一个实施例的方法流程图;
图5是本申请第一CNP一个实施例的数据帧结构示意图;
图6是本申请传输速率控制方法另一个实施例的方法流程图;
图7是本申请DCN一个实施例的拓扑图;
图8是本申请传输速率控制装置的一个实施例的结构示意图;
图9是本申请发送设备的一个实施例的结构示意图;
图10是本申请传输速率控制装置的另一个实施例的结构示意图;
图11是本申请接收设备的一个实施例的结构示意图。
具体实施方式
DCN包括多个发送点、多个传输点和多个接收点。其中,发送点、接收点和传输点均是网络设备。发送点和接收点例如是是交换机、路由器或者服务器。传输点例如是交换机或者路由器。参见图1,图1是本申请一种DCN的结构示意图。图1所示的DCN包括发送点1、传输点1、传输点2、接收点1和接收点2。
应理解,图1仅是本申请DCN的一种示例性结构示意图,在实际应用中,DCN所包含的发送点的数量,传输点的数量,以及接收点的数量均可以更多。
在本申请的一种实现方式中,DCN的多个发送点中一个发送点可以发送一条数据流。例如,图1中发送点1发送数据流1,数据流1经由传输点1传输到接收点1。
在本申请的另一种实现方式中,多个发送点中一个发送点可以发送至少两条数据流。例如,图1中发送点1除了发送数据流1,还可以发送数据流2和数据流3。本实现方式中,数据流2和数据流3可以经同一传输点传输,例如,数据流2和数据流3均经由传输点1传输。数据流2和数据流3也可以经由不同的传输点传输,例如,数据流2经由传输点1传输,数据流3经由传输点2传输。数据流2和数据流3可以传输到同一接收点,例如,数据流2和数据流3均传输到接收点1(图1中未示出)。数据流2和数据流3也可以传输到不同的接收点,例如,数据流2传输到接收点1,数据流3传输到接收点2。
数据流是指从发送点到接收点的正在传输的数据包序列,所述数据流包括多个数据包。所述数据包序列中的任一数据包从发送点发出之后,在传输点入队列。所述数据包从所述传输点出队列之后,传输到所述接收点。其中,入队列是指所述数据包进入所述传输点中包括的队列,出队列是指所述数据包离开所述传输点中包括的队列。所述队列是所述传输点包括的用于调度数据包的线性表。所述传输点通过所述传输点包括的临时存储器实现队列的存储。所述传输点接收到所述发送点发送的数据包后,将数据包入队列,然后按照队列调度算法,再将数据包进行出队列操作。所述队列调度算法包括先进先出(first in first out,FIFO)队列调度算法、加权公平队列(weighted fair queuing,WFQ)调度算法、优先级队列(priority queuing,PQ)调度算法或定制队列(custom queue,CQ)调度算法。基于此,当所述队列长度大于一定值,导致所述数据包从入队列到出队列的间隔时长大于一定时长时,本申请将这种现象称为所述传输点存在拥塞。
传输点存在拥塞,会导致经由所述传输点的数据流的数据包传输时间过长,从而降低所述数据流的传输性能。有鉴于此,本申请提供了一种DCQCN方法,所述DCQCN方法通过调整数据流的发送速率消除传输点存在的拥塞,提高数据流的传输性能。
参见图2,图2是本申请一种DCQCN方法的信令交互图。其中,产生拥塞的传输点例如是图1所示的传输点1。传输点1用于将发送点1发送的数据流1的数据包转发到接收点1,传输点1拥塞的队列中包括数据流1的数据包1。图2所示的DCQCN方法100包括以下步骤:
步骤S101,响应于传输点1中的队列的长度超过预设门限值,所述传输点1为所述数据包1打ECN标记,并将包含所述ECN标记的数据包1发送到接收点1。
本申请中,预先为传输点中的队列长度设置门限值,所述门限值也称为水线,用于指示所述传输点中的队列是否存在拥塞。其中,水线K满足:K=B×tgt,B是指所述队列中的数据包出队列的速率,tgt是指所述队列中的数据包出队列时的时间戳与入队列时的时间戳的差应满足的时间间隔。
其中,发送点发送的数据流的数据包都包括ECN标志字段。ECN标志字段是传输控制协议(transmission control protocol,TCP)/因特网互联协议(internet protocol,IP)协议定义的拥塞确认标记,初始值例如是空。当传输点检测到拥塞时,使能所述传输点队列的数据包中的ECN标志字段,例如将ECN标志字段的值置为1,表示该ECN标志字段所属的数据包在所述传输点传输时,处于拥塞状态。
本申请中,上述使能数据包中的ECN标志字段的过程可以称为:为数据包打ECN标记。ECN标记指示了使能后的ECN标志字段,例如,ECN标记表示ECN标志字段的值为1。
本申请的实现方式中,所述传输点1检测所述传输点1中队列的长度是否超过水线,如果传输点1的队列长度超过水线,指示传输点1存在拥塞。所述传输点1为入 队列的数据包打ECN标记,然后,继续传输所述包括ECN标记的入队列的数据包,以及队列中包含的未打ECN标记的数据包。如果传输点1的队列长度未超过水线,指示传输点1不存在拥塞,所述传输点1继续传输所述入队列的数据包以及所述队列包含的全部数据包。
在本申请的一个可选示例中,如果传输点1存在拥塞,数据包1是入队列的数据包,传输点1为数据包1打ECN标记,并在所述包括ECN标记的数据包1出队列时,将所述包括ECN标记的数据包1发送到接收点1。
应理解,本申请中,传输点1可以转发多条不同的数据流。基于此,在传输点1入队列的数据包中包含不同数据流的数据包。而本步骤中,传输点1为入队列的每个数据包均打同样的ECN标记。
步骤S102,响应于所述数据包1包含的ECN标记,接收点1生成CNP1,并将所述CNP1发送到所述发送点1。
其中,CNP1是指数据包1所属的数据流1对应的CNP,用于触发发送点1调整数据流1的发送速率。
应理解,数据包中包括流标识,所述流标识用于标识数据包所属的数据流。例如,数据包1中包括的流标识的值为01,表示数据包1属于数据流1;数据包2中包括的流标识的值为02,表示数据包2属于数据流2。基于此,接收点1接收到数据包1之后,获取数据包1的流标识01,将该流标识01添加到所生成的CNP中,得到CNP1。
具体的,CNP1的帧结构如图3所示,包括:媒体访问控制(media access control,MAC)头,互联网协议第4版(internet protocol version 4,IPv4),用户数据报协议(user datagram protocol,UDP)头,基本传输头(base transport header,BTH),16字节的保留位,固定循环冗余检测(invariant cyclic redundancy check,ICRC)和帧校验序列(frame check sequence,FCS)。其中,在一种可能的实现方式中,上述CNP1的帧结构中的IPv4头可以被替换为互联网协议第6版(internet protocol version 6,IPv6)头。其中,上述CNP1的帧结构中的各个字段的定义可以参基于融合以太的远程内存直接访问第二版(remote direct memory access over converged ethernet version 2,RoCE v2)标准协议中附录17.9.3(annex 17.9.3)中的说明,此处不进行赘述。
此外,传输点1存在拥塞的状态可能会持续一段时间,那么,接收点1在该时间段内接收到数据流1的数据包均包含ECN标记。基于此,为了避免重复多次向发送点1发送CNP1,接收点1本次发送CNP1时刻起,第一预设间隔时长内不再向发送点1发送CNP1。若本次发送CNP1第一预设间隔时长之后,接收点1所接收的数据流1的数据包依然包含ECN标记,接收点1再向发送点1发送CNP1。在本申请的一个可选实施例中,第一预设间隔时长例如是50μs。
步骤S103,接收点1接收到所述CNP1之后,调整所述数据流1的发送速率。
其中,发送点1调整数据流1的发送速率包括,先降低数据流1的发送速率,以消除传输点1存在的拥塞;确定传输点1存在的拥塞消除后,再升高数据流1的发送速率。
为了便于描述调整前的发送速率与调整后的发送速率的关系,本申请中,将任意一次调整之前的发送速率描述为“数据流的发送速率”或者“数据流的当前发送速率”,将该次调整之后的发送速率描述为“目标发送速率”。每次调整之前的发送速率通常也是发送点正在使用的发送该数据流的速率。
降速阶段:
数据流1的当前发送速率例如是R C,数据流1降速之后的目标发送速率R T与当前发送速率R C满足:
Figure PCTCN2019082462-appb-000005
发送点1将数据流1的发送速率有当前发送速率R C降为目标发送速率R T
其中,α是指速率下降因子,α的值按照预设规则更新。具体的,在DCN网络建立时,α的初始值例如是α 1,α 1的值为1。发送点1第一次接收到CNP1时,将α 1用作确定目标发送速率,然后,将数据流1的发送速率降为根据α 1确定目标发送速率。若发送点1在第一预设间隔时长内接收到CNP1,按照α=(1-g)α+g更新α得到α 2,将α 2用作确定目标发送速率,然后,将数据流1的发送速率降为根据α 2所确定目标发送速率。若发送点1在第一预设间隔时长内未接收到CNP1,按照α=(1-g)α更新α得到α 3,但不根据α 3确定目标发送速率。若发送点1再次接收到CNP1,则将α 3作为新的初始值,用于确定目标发送速率。其中,g是指α的更新权重,0<g<1。
应理解,不同场景时的α的值不同,为避免混淆,本申请通过标注下标的形式对不同场景的α进行区分。因此,上述实现方式中,α 1、α 2和α 3并非α的子参数,而是分别表示不同场景时的α。
升速阶段:
消除拥塞的原理在于,通过降低数据流的发送速率,使拥塞队列的数据包入队列的速率低于出队列的速率。基于此,在传输点1中的队列消除拥塞后,若发送点1仍然以较低的发送速率发送数据流1,将导致数据流1的数据包欠吞吐。有鉴于此,在传输点1的队列消除拥塞后,发送点1应当升高数据流1的发送速率。
应理解,根据步骤S102的描述可知,发送点1两次接收CNP1的最小时间间隔是第一预设间隔时长,若发送点1第一次接收到CNP1之后,第一预设间隔时长未再次接收到CNP1,说明传输点1存在的拥塞已消除。基于此,本申请中,若发送点1降低数据流的发送速率之后,第二预设间隔时长内未接收到CNP1,则认为传输点1存在的拥塞已消除,发送点1开始升高数据流1的发送速率。其中,第二预设间隔时长大于第一预设间隔时长。在本申请的一个可选实施例中,第二预设间隔时长例如是55μs。
本申请中,发送点1按照三个阶段升高数据流1的发送速率,所述三个阶段包括: 快速恢复(fast recovery,FR)阶段、主动增长(active increase,AI)阶段和超主动增长(hyper active increase,HAI)阶段。具体的,在确定消除拥塞之后,发送点1进入FR阶段升高数据流1的发送速率。在FR阶段升速之后第二预设间隔时长内未接收到CNP1,发送点1进入AI阶段继续升高数据流1的发送速率。在AI阶段升速之后第二预设间隔时长内未接收到CNP1,发送点1进入HAI阶段继续升高数据流1的发送速率。
本申请的一种可选实现方式中,数据流1的当前发送速率例如是R C,本场景中,R C是上述降速阶段最后一次降速后的目标发送速率。FR阶段对应的目标发送速率是R T1,R T1的值是预设的固定值。发送点1以发送速率R C发送数据流1的第二预设间隔时长内未接收到CNP1,按照
Figure PCTCN2019082462-appb-000006
确定FR阶段第一次升速后的发送速率,然后,发送点1将数据流1的发送速率更新为所述FR阶段第一次升速后的发送速率。进一步的,发送点1以所述FR阶段第一次升速后的发送速率发送数据流1的第二预设间隔时长内未接收到CNP1,按照
Figure PCTCN2019082462-appb-000007
确定FR阶段第二次升速后的发送速率,然后,发送点1将数据流1的发送速率更新为所述FR阶段第二次升速后的发送速率。依此循环,使得所述数据流1的发送速率不断接近FR阶段对应的目标发送速率是R T1
AI阶段对应的目标发送速率例如是R T2,R T2满足:R T2=R T1+R AI,其中,R AI用于指示递增的速率步长。当R C=R T1时,发送点1以发送速率R C发送数据流1的第二预设间隔时长内未接收到CNP1,按照
Figure PCTCN2019082462-appb-000008
确定AI阶段第一次升速后的发送速率,然后,发送点1将数据流1的发送速率更新为所述AI阶段第一次升速后的发送速率。进一步的,发送点1以所述AI阶段第一次升速后的发送速率发送数据流1的第二预设间隔时长内未接收到CNP1,按照
Figure PCTCN2019082462-appb-000009
确定AI阶段第二次升速后的发送速率,然后,发送点1将数据流1的发送速率更新为所述AI阶段第二次升速后的发送速率。依此循环,使得所述数据流1的发送速率不断接近AI阶段对应的目标发送速率是R T2
HAI阶段对应的目标发送速率例如是R T3,R T3满足:R T3=R T1+N*R AI,其中,N是大于1的整数。当R C=R T2时,发送点1以发送速率R C发送数据流1的第二预设间隔时长内未接收到CNP1,按照
Figure PCTCN2019082462-appb-000010
确定HAI阶段第一次升速后的发送速率,然后,发送点1将数据流1的发送速率更新为所述HAI阶段第一次升速后的发送速率。进一步的,发送点1以所述HAI阶段第一次升速后的发送速率发送数据流1的第二预设间隔时长内未接收到CNP1,按照
Figure PCTCN2019082462-appb-000011
确定HAI阶段第二次升速后的发送速率,然后,发送点1将数据流1的发送速率更新为所述HAI阶段第二次升速后的发送速率。依此循环,使得所述数据流1的发送速率不断接近AI阶段对应的目标发送速率是R T3
应理解,上述升速阶段中每一次升速之后,发送点1若在第二预设间隔时长内接收到CNP1,则停止升速操作,进入上述降速阶段。
应理解,上述仅是以数据流1、数据流1包括的数据包1以及与数据流1对应的CNP1等为例进行的描述。本申请中,传输点的队列中包含不同数据流的数据包,每个数据包均包含ECN标记。但是,接收点会针对不同数据流生成和发送CNP,例如, 接收点1对应数据流1生成CNP1,CNP1包含数据流1的流标识。接收点1对应数据流2生成CNP2,CNP2包含数据流2的流标识。发送点也会分别调整不同CNP的流标识所指示的数据流的发送速率,例如,发送点1接收到CNP1之后,调整数据流1的发送速率。发送点1接收到CNP2之后,调整数据流2的发送速率。其中,接收点针对每条数据流生成CNP的操作,以及接收点调整每条数据流的发送速率的操作,详见上述描述。此处不再赘述。
根据方法100的描述,本申请根据速率下降因子确定降速的目标发送速率,很难精确的将数据流的发送速率降到合适的程度。如果数据流的发送速率降速程度过大,则会造成在传输点的拥塞消除后,数据流的数据包入队列速率较出队列速率低,使得数据流的数据包欠吞吐。如果数据流的发送速率降速程度过小,则会造成在传输点的拥塞难以消除,使得传输点拥塞时间过长。本申请根据预先设立的目标速率升速,也很难精确的将数据流的发送速率升到合适的程度。如果数据流的发送速率升速程度过大,很容易再次造成传输点拥塞,如果数据流的发送速率升速程度过小,将导致数据流的数据包持续欠吞吐。有鉴于此,本领域技术人员提出了一种传输速率控制方法、装置、发送设备和接收设备。
下面结合附图,对本申请的传输速率控制方法进行描述。
本申请的传输速率控制方法应用于DCN,所述DCN的硬件连接结构如上述描述。其中,所述DCN中的多个发送点硬件实体可以逻辑等效成一个发送点,所述DCN中的多个传输点硬件实体可以逻辑等效成一个传输点,所述DCN中的多个接收点硬件实体可以逻辑等效成一个接收点。逻辑等效后的DCN可以认为包括发送点、传输点和接收点,所述发送点用于经由所述传输点向所述接收点发送数据流。本申请结合逻辑等效后的DCN,对传输速率控制方法进行描述。
参见图4,图4是本申请传输速率控制方法一个实施例的方法流程图。图4所示实施例,从发送点的角度对本方案进行描述。图4所示的方法200,发送点根据接收点的速率信息调整数据流的发送速率,能够精确的调整数据流的发送速率,从而能够消除传输点的队列拥塞,提高数据流的传输性能。方法200包括如下步骤:
步骤S201,所述发送点接收所述接收点发送的第一CNP。
其中,所述第一CNP指示所述传输点转发第一数据包时所述传输点存在拥塞,所述数据流包括所述第一数据包,所述第一CNP包含所述数据流的流标识。
在本申请所述的方案中,所述第一CNP还包括速率信息,所述速率信息指示所述接收点接收所述数据流包括的数据包的接收速率。具体的,在本申请的一种可选示例中,速率信息包括第一周期和所述接收点在所述第一周期内接收到所述数据流的数据包的长度总和。所述第一周期是指所述接收点接收所述数据流的数据包的时间段。在本申请的另一种可选示例中,速率信息包括接收速率。所述接收速率满足:
Figure PCTCN2019082462-appb-000012
其中,本申请的技术方案可以预先设置周期的时长。在本申请的一个可选示例中,预设周期的时长例如是10μs。基于此,在本申请的实施方式一中,所述接收点在所述第一周期内接收到的所述数据流的数据包中包括所述第一数据包。具体的,实施方式一的一种可选实现方式中,接收点从初始时刻开始持续确定各个周期,本实现方式中,所述接收点将接收到第一数据包时对应周期作为所述第一周期。实施方式一的另一种可选实现方式是,接收点将接收到第一数据包的时刻作为所述第一周期的起始时刻,将该起始时刻向后周期时长的时间段作为所述第一周期。在本申请的实施方式二中,所述接收点在所述第一周期内接收到的所述数据流的数据包中也可以不包括所述第一数据包。实施方式二的一种可选实现方式中,接收点从初始时刻开始持续确定各个周期,本申请将接收到第一数据包时的上一个周期作为所述第一周期。
进一步的,在本申请的一种可选实施方式中,所述接收速率是指所述接收点接收的所述数据流的数据包包括所述第一数据包的周期对应的速率。具体的,在一种可能的实现方式中,接收点从初始时刻开始持续确定各个周期。本实现方式中,在接收到第一数据包时,接收点确定接收到第一数据包的时刻所在周期的时间段,获取该时间段内接收到所述数据流的数据包的长度总和,进而计算所述接收速率。在另一种可能的实现方式中,接收点接收到第一数据包时,开始计算周期时长内所接收的所述数据流的数据包的长度总和,进而计算所述接收速率。
应理解,本申请CNP中包含的速率信息,对应接收点发送所述CNP信息时接收所述数据流的数据包的速率。例如,第一CNP包含的速率信息,对应接收点接收到第一数据包的速率;若发送点在接收到第一CNP第一预设间隔时长之后再次接收到CNP,所述CNP包含的速率,对应接收点接收所述数据流的第二数据包时的速率。所述第二数据包在所述第一数据包之后第一预设间隔时长到达所述接收点。基于此,发送点每次接收到的CNP所包含的速率信息所对应的速率含义均不同,为了便于清楚的描述,本申请通过“第一”和“第二”等序数词的方式,对所接收的CNP进行区分。
参见图5,图5是本申请第一CNP一个实施例的数据帧结构示意图。所述第一CNP包括:MAC头,IPv4/IPv6头,UDP头,BTH,速率信息,ICRC和FCS。其中,本申请实施例的第一CNP与图3所示的CNP相比,还包含速率信息,所述速率信息设置在图3所示的CNP的保留位,得到本实施例所述的第一CNP。所述第一CNP中,速率信息如上述描述,除所述速率信息之外的每项数据的含义,均是本领域技术人员熟知的,本申请此处不再详述。
步骤S202,所述发送点根据所述速率信息确定所述接收速率。
其中,根据步骤S201的描述,速率信息包括两种形式。基于此,本申请的一种根据速率信息确定接收速率的实现方式是,从所述第一CNP中读取第一周期和所述接收点在所述第一周期内接收到所述数据流的数据包的长度总和,根据
Figure PCTCN2019082462-appb-000013
Figure PCTCN2019082462-appb-000014
计算得到所述接收速率。本申请的另一种根据速率信息确定接收速率的实现方式是,从所述第一CNP中读取所述接收速率。
步骤S203,所述发送点根据所述接收速率确定排空速率。
其中,所述排空是指所述传输点中的队列包括的全部数据包出队列。排空速率是指示所述传输点将所述传输点中的队列包括的全部数据包出队列的速率。
具体的,本申请所述的传输点存在拥塞,为了快速消除所述传输点存在的拥塞,本申请的一种实施方式是,使所述传输点的队列中的全部数据包均出队列,使所述传输点达到无队列的状态。本申请将“使所述传输点达到无队列的状态”称为排空,即将传输点的队列中全部数据包清空,从而达到消除拥塞的目的。其中,本申请的一种实现方式中,指示所述传输点在排空时间内排空。所述排空时间是指示所述传输点中的队列包括的全部数据包出队列的时长。
应理解,在所述传输点中无队列的实施场景中,数据包从所述发送点经由所述传输点传输到所述接收点,再由所述接收点返回所述发送点的时长例如是rtt。在所述传输点中有队列的实施场景中,数据包从入队列到出队列的最大允许时长是tgt。得到数据包从所述发送点传输到所述接收点的最大允许传输时长是tgt+rtt。基于此,本申请的一个可选实施例中,所述排空时间T pause满足:T pause=a×(tgt+rtt)+tgt,其中,a是所述发送点根据所述数据流的发送速率和所述接收速率生成超速比因子,a满足:
Figure PCTCN2019082462-appb-000015
R 发送是指所述数据流的发送速率,R 接收是指所述接收速率。
进一步的,为达到排空的目的,发送点应当调整数据流的发送速率,以使数据包在所述传输点中入队列的速率小于出队列的速率。具体的,发送点根据所述排空时间T pause计算排空速率R pause,得到
Figure PCTCN2019082462-appb-000016
步骤S204,所述发送点将所述数据流的发送速率更新为所述排空速率。
接步骤S203,在确定所述数据流的排空速率之后,发送点将所述数据流的发送速率降为所述排空速率,以使所述传输点在排空时间内排空。
其中,本申请中,发送点将数据流的初始发送速率设置为满速率。其中,初始发送速率是指发送点初始时刻的发送速率。初始时刻是指发送点接入DCN网络的时刻。满速率是指发送点为数据流配置的最大发送速率。
采用方法200的实现方式,发送点将接收点的接收速率作为调整数据流发送速率的参数依据,能够有的放矢的降低数据流的发送速率,从而能够快速排空传输点中拥塞的队列包含的数据包,快速消除传输点存在的拥塞。
在方法200的基础上,发送点以排空速率发送数据流持续排空时间,从而将传输点的队列包含的全部数据包快速出队列,进而能够降低队列中包含的数据包的传输时延。本申请的一个可选实施方式中,将数据流的发送速率是所述排空速率的阶段称为排空阶段。
进一步的,在将所述传输点的队列中拥塞的数据包排空之后,为保证网络的吞吐,发送点升高数据流的发送速率。
其中,在传输点的队列包含的全部数据包排空后,若发送点发送数据流的速率与接收点接收所述数据流的数据包的速率相同,能够保证数据包在传输点中入队列的速率和出队列的速率相同,从而能够避免传输点再次出现拥塞。基于此,在排空阶段结束后,发送点将数据流的发送速率从排空速率更新为所述接收速率。本申请的一个可选实施方式中,将数据流的发送速率是所述接收速率的阶段称为稳速阶段。所述接收速率如方法200的步骤S202中所述。
综合上述,本申请的技术方案,在排空阶段,明确传输点存在的拥塞的排空时间和数据流的排空速率,对传输点存在的拥塞快速准确的排空。在稳速阶段,为发送点升高数据流的发送速率提供明确的目标,从而使得数据流发送速率的调整更加精确。
在所述稳速阶段,DCN网络的吞吐量可能并未饱和。基于此,为了提高数据包的传输效率,发送点可以在稳速阶段的基础上继续升高所述数据流的发送速率。
其中,在实际应用中,一个传输点硬件实体可能传输多条数据流,且,该多条数据流的发送速率可能均不同。但是,方法100中步骤S103升速阶段的升速方式中,该多条数据流中每条数据流对应相同的目标发送速率。因此,方法100所述的升速方式,使得该多条数据流中每条数据流受限于所述数据流的当前发送速率,从而导致升高发送速率的过程各数据流之间缺乏公平性。
基于此,本申请的一种可选实施例中,从进入稳速阶段开始,发送点可以检测数据流的发送速率是否是所述发送点的最大发送速率。最大发送速率是指所述发送点的最大可发送速率。若数据流的发送速率不是所述发送点的最大发送速率,指示所述数据流的发送速率还有升高的空间。进而,发送点判断所述发送点以数据流当前的发送速率发送所述数据流之后,第二预设间隔时长内是否接收到第二CNP。所述第二CNP指示所述传输点转发第二数据包时所述传输点存在拥塞,所述数据流包括所述第二数据包。若第二预设间隔时长内未接收到所述第二CNP,指示发送点以数据流当前的发送速率发送所述数据流未造成拥塞,发送点将所述数据流的发送速率更新为目标发送速率。本申请的一个实施例中,所述目标发送速率满足:
Figure PCTCN2019082462-appb-000017
然后,发送点重复执行上述判断数据流的发送速率是否是最大发送速率的操作,直到所述数据流的发送速率达到发送点的最大发送速率。在本申请的可选实施例中,将本阶段称为升速阶段。
当然,在本申请所述的升速过程中,发送点在任意时刻接收到所述数据流对应的新CNP,则执行方法200。此处不再详述。
应理解,根据方法200的步骤S201所述,本申请的技术方案中,发送点在不同时刻接收到的是不同的CNP。而本申请可选实施例所述的升速过程中,每一轮判断操作 所对应的时刻均不同,因此,本轮判断操作对应的CNP与上一轮判断操作对应的CNP不同。基于此,本申请的一种可选实施例在描述时,可以将每一轮判断操作对应的CNP的序数词描述为上一轮判断操作对应CNP的序数词加一。
例如,第一轮判断操作对应判断所述发送点是否接收到第二CNP,若所述发送点未接收到第二CNP,将所述数据流的发送速率更新,并进入第二轮判断。第二轮判断操作对应判断发送点是否接收到第三CNP,若所述发送点未接收到第三CNP,将所述数据流的发送速率再次更新,并进入第三轮判断。若所述发送点接收到第三CNP,则执行方法200,并在后续升速阶段可以对CNP重新设置序数词。
由此可见,本申请所述的升速阶段,所述数据流的发送点以其最大发送速率作为参考数据,升高所述数据流的发送速率,从而在有多条数据流需要升高发送速率时,能够保证各条数据流之间升速的公平性。
参见图6,图6是本申请传输速率控制方法另一个实施例的方法流程图。图6所示方法300应用在所述DCN中,在所述方法200执行之前由接收点执行。
应理解,所述方法300是所述方法200对端设备的实施例,所述方法300所保护的技术特征与所述方法200所保护的技术特征相对应。基于此,所述方法300中与所述方法200相同或者相应的技术术语以及操作步骤等的详细描述,参见方法200,方法300不再赘述。
方法300包括如下步骤:
步骤S301,所述接收点接收所述发送点发送且经由所述传输点转发的第一数据包。
步骤S302,所述接收点根据所述第一数据包包括的ECN标记,生成第一CNP。
其中,与方法100的描述相同的,本申请的技术方案中,传输点检测所述传输点的队列长度是否超过水线,若所述传输点的队列长度超过水线,指示所述传输点存在拥塞。
本申请的一种可选实施方式中,为了缩短接收点向发送点通告拥塞的时长,使得接收点及时向发送点发送CNP,当传输点存在拥塞时,所述传输点为入队列的数据包,出队列的数据包和所述传输点的队列中全部数据包均打ECN标记然后,继续传输所有打ECN标记的数据包。本实施方式中,所述打ECN标记的数据包包括所述第一数据包。
所述方法300中,所述第一数据包与数据流的关系,所述数据流与所述第一CNP的关系,详见所述方法200中相应的描述。所述第一CNP的帧结构详见图5所示,图5示出的帧结构中每项数据的含义,详见所述方法200中相应的描述。此处不再赘述。
与所述方法200对应的,所述第一CNP包含速率信息。在本申请的一个可选实施例中,所述接收点在接收到所述第一数据包之后,获取所述速率信息,并将所述速率信息写入CNP中的保留位。
与所述方法200相同的,在本申请的一种可选示例中,速率信息包括第一周期和所述接收点在所述第一周期内接收到所述数据流的数据包的长度总和。在本申请的另一种可选示例中,速率信息包括接收速率。本申请中所述的第一周期以及接收速率的具体实施方式,详见方法200中相应的描述。此处不再赘述。
步骤S303,所述接收点向所述发送点发送所述第一CNP。
其中,所述接收点将所述第一CNP发送到所述发送点之后,触发所述发送点执行所述方法200。
应理解,本申请所述技术方案,接收点不断检测所接收的所述数据流的数据包是否包含ECN标记,如果发送所述第一CNP第一预设间隔时长内,接收的数据流的数据包包含ECN标记,所述接收点再次执行步骤S302,生成并发送第二CNP。
综上,本申请所述的传输速率控制方法,接收点所接收的数据流的第一数据包包含ECN标记时,所述接收点将接收所述数据流的数据包的接收速率,通过所述数据流对应的CNP反馈到发送点。发送点根据所述接收速率确定所述数据流的目标发送速率,进而按照目标发送速率调整所述数据流的发送速率,使得所述数据流的发送速率处于排空阶段、稳速阶段或者升速阶段。由此可见,本申请的技术方案,能够精确的调整数据流的发送速率,从而能够消除传输点的队列拥塞,提高数据流的传输性能。此外,本申请以发送点的最大发送速率作为所述数据流升速的参数依据,还能够在有多条数据流需要升高发送速率时,保证各条数据流之间升速的公平性。
上述方法200和方法300均是结合逻辑等效后的DCN对本申请的描述,为了更加清楚、详细的阐述本申请的技术方案,下面结合DCN的一个硬件实体拓扑图对本方案进行描述。
参见图7,图7是本申请DCN一个实施例的拓扑图。其中,发送点A的数据流A顺次经传输点71、传输点73和传输点74传输到接收点X。发送点B发送数据流B1和数据流B2,其中,数据流B1顺次经传输点72、传输点73和传输点74传输到接收点X,数据流B2顺次经传输点72、传输点73和传输点74传输到接收点Y。发送点C发送的数据流C顺次经传输点72、传输点73和传输点74传输到接收点Y。
其中,接收点X和接收点Y在图7所示的网络建立连接开始,可以均以10μs为周期,不断记录每10μs所接收的每条数据流的数据包的长度总和,以得到相应10μs内,接收每条数据流的接收速率。
需要指出的,为了便于DCN网络统筹管理,上述将接收点X和接收点Y对应的预设周期时长设置为相同。但是,在实际使用中,接收点X和接收点Y对应的预设周期时长也可以设置为不同。本申请对此不限制。
图7所示的DCN中,传输点71、传输点72、传输点73和传输点74中每个传输点不断检测所述传输点的队列长度是否超过预设水线,若所述传输点的队列长度超过水线,指示该传输点产生拥塞,所述传输点将队列中的全部数据包均打ECN标记。本申请的一个可选实施例中,传输点72的队列长度是否超过预设水线,则传输点72为其队列中数据流B1的数据包、数据流B2的数据包和数据流C的数据包,均打上ECN标记。传输点71、传输点73和传输点74中每个传输点的队列长度均为超过水线,则传输点71、传输点73和传输点74不执行上述打ECN标记的操作。下文将本次打上ECN标记的数据流B1的数据包称为数据包B1,将本次打上ECN标记的数据流B2的数据包称为数据包B2,将本次打上ECN标记的数据流C的数据包称为数据包C。
应理解,按照数据流的流向,DCN网络中的传输点可以表述为多级。当多级传输点中至少两级传输点存在拥塞时,本申请的一种可选实现方式是,拥塞传输点中的第一级传输点为所述第一级传输点的队列中的数据包打ECN标记。且,如果所述至少两级拥塞的传输点所传输的数据流完全相同,所述至少两级拥塞的传输点中的其他级的传输点无需为其队列中的数据包打ECN标记。如果所述至少两级拥塞的传输点所传输的数据流部分相同时,所述至少两级拥塞的传输点中的其他级的传输点为其队列中未打ECN标记的数据包打ECN标记。
例如,传输点73和传输点74均传输数据流A的数据包、数据流B1的数据包、数据流B2的数据包和数据流C的数据包。当传输点73和传输点74均存在拥塞时,传输点73将所述传输点73的队列包含的全部数据包打ECN标记即可。基于此,传输点74中入队列的数据包均已包含ECN标记,所以,传输点74无需再为所述传输点74的队列包含的数据包打ECN标记。
再如,当传输点72和传输点73存在拥塞时,即使传输点72对所述传输点72的队列包含的全部数据包均已打ECN标记,但是,传输点72传输数据流B1的数据包、数据流B2的数据包和数据流C的数据包,而传输点73相较传输点72还传输数据流A的数据包,所以,传输点73还需要为所述传输点73的队列中包含的数据流A的数据包打ECN标记。
以图7中示出的传输点72存在拥塞为例,传输点72将数据包B1发送到接收点X,将数据包B2和数据包C发送到接收点Y。
以数据包B1、接收点X以及发送点B的操作过程为例进行描述。接收点X接收到数据包B1后,确定接收到数据包B1所在周期的时间段,然后,接收点X获取相应时间段内接收的数据流B1的数据包的长度总和计算得到接收点X接收数据流B1的接收速率。进一步的,接收点X生成第一CNP B1,并将所述第一CNP B1发送到发送点B。所述第一CNP B1包括数据流B1的流标识,以及所述接收点X接收数据流B1的接收 速率。
发送点B接收第一CNP B1后,读取第一CNP B1包含的接收速率。进而,发送点B按照方法200中所述的方法计算得到数据流B1的排空速率和排空时间,然后,将数据流B1的发送速率降为所述排空速率,使传输点72的队列中的数据流B1的数据包进入排空阶段。
应理解,在发送点B以所述排空速率发送数据流B1持续排空时间之后,传输点72的队列中数据流B1的数据包已经排空,但是,传输点72的队列中可能还包括数据流B2的数据包和数据流C的数据包。基于此,为避免传输点72再次进入拥塞状态,同时避免数据流B1的数据包欠吞吐,在以所述排空速率发送数据流B1持续排空时间之后,发送点B将数据流B1的发送速率有排空速率更新为所述第一CNP B1包含的接收速率,以使数据流B1的数据包在传输点72的入队列速率和出队列速率达到平衡。
本实施例中,接收点X两次发送数据流B1的最小间隔时长例如是50μs。相应的,发送点B在接收到第一CNP B1之后55μs内未接收到第二CNP B1,则认为传输点72存在的拥塞已消除。若传输点72存在的拥塞消除,发送点B仍以接收速率发送数据流B1,会使数据流B1的数据包欠吞吐。基于此,若以接收速率发送数据流B1的55μs内未接收到第二CNP B1,发送点B将数据流B1的发送速率升速至接收速率与发送点B的最大发送速率之和的一半。然后,发送点B检测55μs内是否接收到接收点X发送的第三CNP B1,若发送点B在升速后的55μs内未接收到第三CNP B1,将数据流B1的发送速率升速至数据流B1的当前发送速率与发送点B的最大发送速率之和的一半。重复执行上述判断过程,直到数据流B1的发送速率达到发送点B的最大发送速率。当然,若发送点B在升速期间接收到接收点X发送的CNP B1,则再次计算数据流B1对应的排空速率,并将数据流B1的发送速率降为本次计算得到的排空速率。
与接收点X的处理过程相同的,接收点Y接收到数据包B2和数据包C之后,生成第一CNP B2和第一CNP C。其中,所述第一CNP B2包括数据流B2的流标识,以及接收点Y接收数据流B2的数据包的接收速率,所述第一CNP C包括数据流C的流标识,以及接收点Y接收数据流C的数据包的接收速率。然后,接收点Y将所述第一CNP B2发送到发送点B,将所述第一CNP C发送到发送点C。
发送点B接收到所述第一CNP B2后,根据所述第一CNP B2中包含的接收速率,计算数据流B2的排空速率和排空时间,并将数据流B2的发送速率降为相应排空速率。然后,在以相应排空速率发送数据流B2持续所述据流B2的对应的排空时间后,发送点B将数据流B2的发送速率由相应排空速率升速为第一CNP B2包含的接收速率。进而,在升速阶段,发送点B判断是否接收到第n CNP B2,若未接收到第n CNP B2,则以数据流B2正在使用的发送速率和发送点B的最大发送速率为参数,进行升速。具体判断过程及升速过程,与数据流B1相似,此处不再详述。
相应的,发送点C接收到所述第一CNP C后,根据所述第一CNP C中包含的接收速率,计算数据流C的排空速率和排空时间,并将数据流C的发送速率降为相应排空 速率。然后,在以相应排空速率发送数据流C持续所述据流C的对应的排空时间后,发送点C将数据流C的发送速率由相应排空速率升速为第一CNP C包含的接收速率。进而,在升速阶段,发送点C判断是否接收到第n CNP C,若未接收到第n CNP C,则以数据流C正在使用的发送速率和发送点C的最大发送速率为参数,进行升速。具体判断过程及升速过程,与数据流B1相似,此处不再详述。
其中,本实施例中,n是二、三或四等序数词。
应理解,虽然接收点X还接收数据流A的数据包,但是传输数据流A的数据包的传输点71、传输点73和传输点74均不存在拥塞。所以,接收点X接收到的数据流A的数据包不包含ECN标记,接收点X也无需对应数据流A生成CNP。进而,发送点A无需调整数据流A的发送速率。若传输点73和/或传输点74存在拥塞,那么,接收点X接收到的数据流A的数据包也包含ECN标记。进而,接收点X生成并向发送点A发送第一CNP A,所述第一CNP A包含数据流A的流标识,和接收点X接收数据流A的数据包的接收速率。发送点A接收到第一CNP A之后,调整数据流A的发送速率。发送点A调整数据流A的发送速率的过程,与上述发送点B调整数据流B1的描述相似。本实施例不再详述。
综上,本申请所述的传输速率控制方法,接收点所接收的数据流的第一数据包包含ECN标记时,所述接收点将接收所述数据流的数据包的接收速率,通过所述数据流对应的CNP反馈到发送点。发送点根据所述接收速率确定所述数据流的目标发送速率,进而按照目标发送速率调整所述数据流的发送速率,使得所述数据流的发送速率处于排空阶段、稳速阶段或者升速阶段。由此可见,本申请的技术方案,能够精确的调整数据流的发送速率,从而能够消除传输点的队列拥塞,提高数据流的传输性能。此外,本申请以发送点的最大发送速率作为所述数据流升速的参数依据,还能够在有多条数据流需要升高发送速率时,保证各条数据流之间升速的公平性。
与上述传输速率控制方法对应的,本申请还提供了传输速率控制装置。
在本申请的一个可选实施例中,设置在所述发送点的传输速率控制装置包括接收模块、发送模块和处理模块。所述接收模块、所述发送模块和所述处理模块可以用于执行所述方法200以及图7对应的实施例中所述发送点执行的方法。
以上各个模块的划分仅仅是一种逻辑功能的划分,实际实现时,所述接收模块的功能可以集成到发送器,所述发送模块的功能可以集成到接收器,所述处理模块的功能可以集成到处理器实现。如图8所示,图8是本申请传输速率控制装置的一个实施例的结构示意图。该传输速率控制装置800包括发送器801、接收器802和处理器803。所述发送器801可以执行方法200以及图7对应的实施例中的数据流的发送。所述接收器802可以执行方法200以及图7对应的实施例中的CNP的接收。所述处理器803可以执行方法200以及图7对应的实施例中除了数据流的发送和CNP的接收之外的操 作。
例如,该发送器801可以用于向所述接收点发送所述数据流;该接收器802可以用于接收所述接收点发送的第一拥塞通告报文CNP,所述第一CNP指示所述传输点转发第一数据包时所述传输点存在拥塞,所述数据流包括所述第一数据包,所述第一CNP包括速率信息,所述速率信息指示所述接收点接收所述数据流包括的数据包的接收速率;该处理器803可以用于根据所述速率信息确定所述接收速率;根据所述接收速率确定排空速率,所述排空速率是指示所述传输点将所述传输点中的队列包括的全部数据包出队列的速率,所述队列包括所述数据流中的数据包;将所述数据流的发送速率更新为所述排空速率。
具体内容可以参考方法200以及图7对应的实施例中相关部分的描述,此处不再赘述。
与图8所示的传输速率控制装置对应的,本申请还提供了一种发送设备。如图9所示,图9是本申请发送设备的一个实施例的结构示意图。该发送设备900可以包括处理器901、收发器902和存储器903。其中,存储器903可以用于存储发送设备900预装的程序/代码,也可以存储用于处理器901执行时的代码等。
应理解,本申请的发送设备900可对应于本申请的方法200以及图7对应的实施例中的发送点,其中收发器902用于执行方法200以及图7对应的实施例中所述发送点执行的CNP的接收和数据流的发送,处理器901用于执行上述方法200以及图7对应的实施例中所述发送点除了CNP的接收和数据流的发送之外的其它处理。在此不再赘述。
在本申请的一个可选实施例中,设置在所述接收点的传输速率控制装置包括接收模块、发送模块和处理模块。所述接收模块、所述发送模块和所述处理模块可以用于执行所述方法300以及图7对应的实施例中所述发送点执行的方法。
以上各个模块的划分仅仅是一种逻辑功能的划分,实际实现时,所述接收模块的功能可以集成到发送器,所述发送模块的功能可以集成到接收器,所述处理模块的功能可以集成到处理器实现。如图10所示,图10是本申请传输速率控制装置的另一个实施例的结构示意图。该传输速率控制装置1000包括发送器1001、接收器1002和处理器1003。该发送器1001具体可以用于执行上述方法300以及图7对应的实施例中所述接收点执行的CNP的发送;该接收器1002具体可以用于执行上述方法300以及图7对应的实施例中所述接收点执行的数据包的接收;该处理器1003具体用于执行上述方法300以及图7对应的实施例中所述接收点除了数据包的接收和CNP的发送之外的其它处理。
例如,该发送器1001可以用于向所述发送点发送所述第一CNP;该接收器1002 可以用于接收所述发送点发送且经由所述传输点转发的第一数据包,所述数据流包括所述第一数据包,所述第一数据包包括显式拥塞通告ECN标记,所述ECN标记指示所述传输点转发所述第一数据包时所述传输点存在拥塞;以及向所述发送点发送所述第一CNP;该处理器1003可以用于根据所述第一数据包包括的ECN标记,生成第一拥塞通告报文CNP,所述第一CNP包括速率信息,所述速率信息指示所述接收点接收所述数据流包括的数据包的接收速率。
具体内容可以参考方法300以及图7对应的实施例中相关部分的描述,此处不再赘述。
与图10所示的传输速率控制装置对应的,本申请还提供了一种接收设备。如图11所示,图11是本申请接收设备的一个实施例的结构示意图。该接收设备1100可以包括处理器1101、收发器1102和存储器1103。其中,存储器1103可以用于存储接收设备1100预装的程序/代码,也可以存储用于处理器1101执行时的代码等。
应理解,本申请的接收设备1100可对应于本申请的方法300以及图7对应的实施例中所述接收点,其中收发器1102用于执行上述方法300以及图7对应的实施例中所述接收点执行的数据包的接收和CNP的发送,处理器1101用于执行上述方法300以及图7对应的实施例中所述接收点除了数据包的接收和CNP的发送之外的其它处理。在此不再赘述。
本申请还提供了一种DCN。该DCN包括发送点、传输点和接收点。其中,发送点可以是图8对应的实施例所提供的传输速率控制装置,或者图9对应的实施例所提供的发送设备,接收点可以是图10对应的实施例所提供的传输速率控制装置,或者图11对应的实施例所提供接收设备。所述DCN用于执行图4至图7对应的实施例中的方法。
具体实现中,对应发送设备和接收设备,本申请还分别提供一种计算机存储介质,其中,设置在任意设备中的计算机存储介质可存储有程序,该程序执行时,可实施包括图4至图7提供的传输速率控制方法的各实施例中的部分或全部步骤。任意设备中的存储介质均可为磁碟、光盘、只读存储记忆体(read-only memory,ROM)或随机存储记忆体(random access memory,RAM)等。
本申请中,收发器可以是有线收发器,无线收发器或其组合。有线收发器例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线收发器例如可以为无线局域网收发器,蜂窝网络收发器或其组合。处理器可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。处理器还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路 (application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。存储器可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器也可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器还可以包括上述种类的存储器的组合。
图9和图11中还可以包括总线接口,总线接口可以包括任意数量的互联的总线和桥,具体由处理器代表的一个或多个处理器和存储器代表的存储器的各种电路链接在一起。总线接口还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发器提供用于在传输介质上与各种其他设备通信的单元。处理器负责管理总线架构和通常的处理,存储器可以存储处理器在执行操作时所使用的数据。
本领域技术任何还可以了解到本申请实施例列出的各种说明性逻辑块(illustrative logical block)和步骤(step)可以通过电子硬件、电脑软件,或两者的结合进行实现。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本申请实施例保护的范围。
本申请实施例中所描述的各种说明性的逻辑单元和电路可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列(FPGA)或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
本申请实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件单元、或者这两者的结合。软件单元可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于UE中。可选地,处理器和存储媒介也可以设置于UE中的不同的部件中。
应理解,在本申请的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对实施例的实施过程构成任何限定。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本说明书的各个部分均采用递进的方式进行描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点介绍的都是与其他实施例不同之处。尤其,对于装置和系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例部分的说明即可。
另外,本申请提及的“第一”以及“第二”等序数词,用于对多个相同属性但包含不同内容的对象进行区分。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (18)

  1. 一种传输速率控制方法,其特征在于,所述方法应用于数据中心网络DCN,所述DCN包括发送点、传输点和接收点,所述发送点用于经由所述传输点向所述接收点发送数据流,所述方法包括:
    所述发送点接收所述接收点发送的第一拥塞通告报文CNP,所述第一CNP指示所述传输点转发第一数据包时所述传输点存在拥塞,所述数据流包括所述第一数据包,所述第一CNP包括速率信息,所述速率信息指示所述接收点接收所述数据流包括的数据包的接收速率;
    所述发送点根据所述速率信息确定所述接收速率;
    所述发送点根据所述接收速率确定排空速率,所述排空速率是指示所述传输点将所述传输点中的队列包括的全部数据包出队列的速率,所述队列包括所述数据流中的数据包;
    所述发送点将所述数据流的发送速率更新为所述排空速率。
  2. 如权利要求1所述的传输速率控制方法,其特征在于,所述发送点根据所述接收速率确定排空速率,包括:
    所述发送点根据所述数据流的发送速率和所述接收速率生成超速比因子a,所述超速比因子a满足:
    Figure PCTCN2019082462-appb-100001
    其中,R 发送是指所述数据流的发送速率,R 接收是指所述接收速率;
    所述发送点根据所述超速比因子a确定排空时间T pause,所述排空时间T pause满足:T pause=a×(tgt+rtt)+tgt,其中,tgt是指所述队列中的数据包出队列时的时间戳与入队列时的时间戳的差应满足的时间间隔,rtt是指所述传输点中无队列时,数据包从所述发送点经由所述传输点传输到所述接收点,再由所述接收点返回所述发送点的时长;
    所述发送点根据所述排空时间T pause计算所述排空速率R pause,所述排空速率R pause满足:
    Figure PCTCN2019082462-appb-100002
  3. 如权利要求1或2所述的传输速率控制方法,其特征在于,在所述发送点将所述数据流的发送速率更新为所述排空速率之后,还包括:
    所述发送点以所述排空速率发送所述数据流持续所述排空时间;
    所述发送点将所述数据流的发送速率更新为所述接收速率。
  4. 如权利要求3所述的传输速率控制方法,其特征在于,在所述发送点将所述数 据流的发送速率更新为所述接收速率之后,还包括:
    所述发送点检测所述数据流的发送速率是否达到所述发送点的最大发送速率;
    当所述数据流的发送速率未达到所述发送点的最大发送速率时,所述发送点判断第二预设间隔时长内是否接收到所述接收点发送的第二CNP,所述第二CNP指示所述传输点转发第二数据包时所述传输点存在拥塞,所述数据流包括所述第二数据包,所述第二预设间隔时长大于第一预设间隔时长,所述第一预设间隔时长是接收点发送CNP的最小间隔时长;
    当所述第二预设间隔时长内未接收到所述第二CNP时,所述发送点将所述数据流的发送速率更新为目标发送速率,所述目标发送速率满足:
    Figure PCTCN2019082462-appb-100003
    Figure PCTCN2019082462-appb-100004
    所述发送点重复执行所述检测所述数据流的发送速率是否达到所述发送点的最大发送速率的操作,直到所述数据流的发送速率达到所述发送点的最大发送速率。
  5. 如权利要求1所述的传输速率控制方法,其特征在于,
    所述速率信息包括:第一周期和所述接收点在所述第一周期内接收到所述数据流的数据包的长度总和;或者
    所述速率信息包括所述接收速率。
  6. 如权利要求5所述的传输速率控制方法,其特征在于,
    所述接收点在所述第一周期内接收到的所述数据流的数据包中包括所述第一数据包。
  7. 如权利要求5所述的传输速率控制方法,其特征在于,
    所述接收速率是指所述接收点接收的所述数据流的数据包包括所述第一数据包的周期对应的速率。
  8. 一种传输速率控制方法,其特征在于,所述方法应用于数据中心网络DCN,所述DCN包括发送点、传输点和接收点,所述接收点用于接收所述发送点经由所述传输点发送的数据流,所述方法包括:
    所述接收点接收所述发送点发送且经由所述传输点转发的第一数据包,所述数据流包括所述第一数据包,所述第一数据包包括显式拥塞通告ECN标记,所述ECN标记指示所述传输点转发所述第一数据包时所述传输点存在拥塞;
    所述接收点根据所述第一数据包包括的ECN标记,生成第一拥塞通告报文CNP,所述第一CNP包括速率信息,所述速率信息指示所述接收点接收所述数据流包括的数 据包的接收速率;
    所述接收点向所述发送点发送所述第一CNP。
  9. 如权利要求8所述的传输速率控制方法,其特征在于,
    所述速率信息包括:第一周期和所述接收点在所述第一周期内接收到所述数据流的数据包的长度总和;或者
    所述速率信息包括所述接收速率。
  10. 如权利要求9所述的传输速率控制方法,其特征在于,
    所述接收点在所述第一周期内接收到的所述数据流的数据包中包括所述第一数据包。
  11. 如权利要求9所述的传输速率控制方法,其特征在于,
    所述接收速率是指所述接收点接收的所述数据流的数据包包括所述第一数据包的周期对应的速率。
  12. 一种传输速率控制装置,其特征在于,设置在发送点,所述发送点设置在数据中心网络DCN,所述DCN还包括传输点和接收点,所述发送点用于经由所述传输点向所述接收点发送数据流,所述装置包括发送器、接收器和处理器,其中,
    所述发送器,用于向所述接收点发送所述数据流;
    所述接收器,用于接收所述接收点发送的第一拥塞通告报文CNP,所述第一CNP指示所述传输点转发第一数据包时所述传输点存在拥塞,所述数据流包括所述第一数据包,所述第一CNP包括速率信息,所述速率信息指示所述接收点接收所述数据流包括的数据包的接收速率;
    所述处理器,用于根据所述速率信息确定所述接收速率;还用于根据所述接收速率确定排空速率,所述排空速率是指示所述传输点将所述传输点中的队列包括的全部数据包出队列的速率,所述队列包括所述数据流中的数据包;还用于将所述数据流的发送速率更新为所述排空速率。
  13. 如权利要求12所述的传输速率控制装置,其特征在于,
    所述处理器,具体用于根据所述数据流的发送速率和所述接收速率生成超速比因子a,所述超速比因子a满足:
    Figure PCTCN2019082462-appb-100005
    其中,R 发送是指所述数据流的发送速率,R 接收是指所述接收速率;根据所述超速比因子a确定排空时间T pause,所述排空时间T pause满足:T pause=a×(tgt+rtt)+tgt,其中,tgt是指所述队列中的数据包出队列时的时间戳与入队列时的时间戳的差应满足的时间间隔,rtt是指所述传输点中无队列 时,数据包从所述发送点经由所述传输点传输到所述接收点,再由所述接收点返回所述发送点的时长;根据所述排空时间T pause计算所述排空速率R pause,所述排空速率R pause满足:
    Figure PCTCN2019082462-appb-100006
  14. 如权利要求12或13所述的传输速率控制装置,其特征在于,
    所述处理器,还用于控制所述发送器以所述排空速率发送所述数据流持续所述排空时间;还用于将所述数据流的发送速率更新为所述接收速率。
  15. 如权利要求14所述的传输速率控制装置,其特征在于,
    所述处理器,还用于检测所述数据流的发送速率是否达到所述发送点的最大发送速率;当所述数据流的发送速率未达到所述发送点的最大发送速率时,还用于判断第二预设间隔时长内是否接收到所述接收点发送的第二CNP,所述第二CNP指示所述传输点转发第二数据包时所述传输点存在拥塞,所述数据流包括所述第二数据包,所述第二预设间隔时长大于第一预设间隔时长,所述第一预设间隔时长是接收点发送CNP的最小间隔时长;当所述第二预设间隔时长内未接收到所述第二CNP时,还用于将所述数据流的发送速率更新为目标发送速率,所述目标发送速率满足:
    Figure PCTCN2019082462-appb-100007
    Figure PCTCN2019082462-appb-100008
    所述处理器,还用于重复执行所述检测所述数据流的发送速率是否达到所述发送点的最大发送速率的操作,直到所述数据流的发送速率达到所述发送点的最大发送速率。
  16. 一种传输速率控制装置,其特征在于,设置在接收点,所述接收点设置在数据中心网络DCN,所述DCN还包括发送点和传输点,所述接收点用于接收所述发送点经由所述传输点发送的数据流,所述装置包括发送器、接收器和处理器,其中,
    所述接收器,用于接收所述发送点发送且经由所述传输点转发的第一数据包,所述数据流包括所述第一数据包,所述第一数据包包括显式拥塞通告ECN标记,所述ECN标记指示所述传输点转发所述第一数据包时所述传输点存在拥塞;
    所述处理器,用于根据所述第一数据包包括的ECN标记,生成第一拥塞通告报文CNP,所述第一CNP包括速率信息,所述速率信息指示所述接收点接收所述数据流包括的数据包的接收速率;
    所述发送器,用于向所述发送点发送所述第一CNP。
  17. 一种发送设备,其特征在于,用作发送点,所述发送点设置在数据中心网络DCN,所述DCN还包括传输点和接收点,所述发送点用于经由所述传输点向所述接收点发送数据流,所述发送设备包括处理器和存储器,其中:
    所述存储器,用于存储程序指令;
    所述处理器,用于调用并执行所述存储器中存储的程序指令,以使所述发送设备执行权利要求1至7中任一项所述的传输速率控制方法。
  18. 一种接收设备,其特征在于,用作接收点,所述接收点设置在数据中心网络DCN,所述DCN还包括发送点和传输点,所述接收点用于接收所述发送点经由所述传输点发送的数据流,所述接收设备包括处理器和存储器,其中:
    所述存储器,用于存储程序指令;
    所述处理器,用于调用并执行所述存储器中存储的程序指令,以使所述接收设备执行权利要求8至11中任一项所述的传输速率控制方法。
PCT/CN2019/082462 2018-08-30 2019-04-12 传输速率控制方法、装置、发送设备和接收设备 WO2020042624A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811003680.7A CN109039936B (zh) 2018-08-30 2018-08-30 传输速率控制方法、装置、发送设备和接收设备
CN201811003680.7 2018-08-30

Publications (1)

Publication Number Publication Date
WO2020042624A1 true WO2020042624A1 (zh) 2020-03-05

Family

ID=64625678

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/082462 WO2020042624A1 (zh) 2018-08-30 2019-04-12 传输速率控制方法、装置、发送设备和接收设备

Country Status (2)

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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114938350A (zh) * 2022-06-15 2022-08-23 长沙理工大学 数据中心无损网络中基于拥塞反馈的数据流传输控制方法
CN117395206A (zh) * 2023-12-12 2024-01-12 南京邮电大学 面向无损数据中心网络的快速精确拥塞反馈方法

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109039936B (zh) * 2018-08-30 2021-12-28 华为技术有限公司 传输速率控制方法、装置、发送设备和接收设备
CN110113782A (zh) * 2019-04-29 2019-08-09 惠州Tcl移动通信有限公司 数据传输方法、装置及存储介质
CN110460491B (zh) * 2019-07-05 2021-05-18 锐捷网络股份有限公司 基于rdma的性能测试方法及装置
CN110505156B (zh) * 2019-08-23 2020-10-30 中国人民解放军国防科技大学 一种高速互连网络中低开销的拥塞控制方法
CN113132262B (zh) * 2020-01-15 2024-05-03 阿里巴巴集团控股有限公司 一种数据流处理及分类方法、装置和系统
CN113162862A (zh) * 2020-01-23 2021-07-23 华为技术有限公司 拥塞控制方法及装置
CN113794655A (zh) * 2020-07-17 2021-12-14 北京京东尚科信息技术有限公司 流量监控方法及装置、计算机存储介质、电子设备
CN112134809B (zh) * 2020-09-16 2024-04-23 山东云海国创云计算装备产业创新中心有限公司 一种流量控制方法、装置、设备及可读存储介质
CN113098785B (zh) * 2021-03-31 2022-05-27 新华三信息安全技术有限公司 一种报文处理方法及装置
CN116915722B (zh) * 2023-09-12 2023-12-19 珠海星云智联科技有限公司 一种网络拥塞调节方法、装置、计算设备及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101030926A (zh) * 2006-02-28 2007-09-05 华为技术有限公司 全球微波接入互操作性网络数据流量控制方法
US20110170410A1 (en) * 2010-01-11 2011-07-14 Research In Motion Limited Explicit congestion notification based rate adaptation using binary marking in communication systems
CN105915464A (zh) * 2016-06-21 2016-08-31 中南大学 一种快速简单的量化拥塞通告方法
CN108418767A (zh) * 2018-02-09 2018-08-17 华为技术有限公司 数据传输方法、设备及计算机存储介质
CN109039936A (zh) * 2018-08-30 2018-12-18 华为技术有限公司 传输速率控制方法、装置、发送设备和接收设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7821939B2 (en) * 2007-09-26 2010-10-26 International Business Machines Corporation Method, system, and computer program product for adaptive congestion control on virtual lanes for data center ethernet architecture

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101030926A (zh) * 2006-02-28 2007-09-05 华为技术有限公司 全球微波接入互操作性网络数据流量控制方法
US20110170410A1 (en) * 2010-01-11 2011-07-14 Research In Motion Limited Explicit congestion notification based rate adaptation using binary marking in communication systems
CN105915464A (zh) * 2016-06-21 2016-08-31 中南大学 一种快速简单的量化拥塞通告方法
CN108418767A (zh) * 2018-02-09 2018-08-17 华为技术有限公司 数据传输方法、设备及计算机存储介质
CN109039936A (zh) * 2018-08-30 2018-12-18 华为技术有限公司 传输速率控制方法、装置、发送设备和接收设备

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114938350A (zh) * 2022-06-15 2022-08-23 长沙理工大学 数据中心无损网络中基于拥塞反馈的数据流传输控制方法
CN114938350B (zh) * 2022-06-15 2023-08-22 长沙理工大学 数据中心无损网络中基于拥塞反馈的数据流传输控制方法
CN117395206A (zh) * 2023-12-12 2024-01-12 南京邮电大学 面向无损数据中心网络的快速精确拥塞反馈方法
CN117395206B (zh) * 2023-12-12 2024-03-12 南京邮电大学 面向无损数据中心网络的快速精确拥塞反馈方法

Also Published As

Publication number Publication date
CN109039936B (zh) 2021-12-28
CN109039936A (zh) 2018-12-18

Similar Documents

Publication Publication Date Title
WO2020042624A1 (zh) 传输速率控制方法、装置、发送设备和接收设备
CN111316605B (zh) 第3层公平速率拥塞控制通知
CN108418767B (zh) 数据传输方法、设备及计算机存储介质
US9497125B2 (en) Congestion control enforcement in a virtualized environment
WO2018210117A1 (zh) 一种拥塞控制方法、网络设备及其网络接口控制器
US8509074B1 (en) System, method, and computer program product for controlling the rate of a network flow and groups of network flows
WO2020244448A1 (zh) 一种拥塞控制方法、设备及计算机可读介质
US20050213507A1 (en) Dynamically provisioning computer system resources
US20080298248A1 (en) Method and Apparatus For Computer Network Bandwidth Control and Congestion Management
US20060203730A1 (en) Method and system for reducing end station latency in response to network congestion
US9444741B2 (en) Facilitating network flows
CN112104562B (zh) 拥塞控制方法及装置、通信网络、计算机存储介质
CN107852371B (zh) 数据分组网络
WO2021238025A1 (zh) 一种网络拥塞控制方法及相关产品
WO2017161967A1 (zh) 包每秒流量监管方法、装置和计算机存储介质
WO2017097201A1 (zh) 一种数据传输方法、发送装置及接收装置
WO2017114231A1 (zh) 一种报文发送方法、tcp代理以及tcp客户端
WO2021008562A1 (zh) 流速控制方法和装置
Lu et al. Dynamic ECN marking threshold algorithm for TCP congestion control in data center networks
WO2021238799A1 (zh) 一种数据报文传输方法及装置
WO2021238803A1 (zh) 一种网络拥塞控制方法及网络设备
CN113783785A (zh) Ecn水线值的配置方法、装置及网络设备
JP5308364B2 (ja) 送信装置、送信方法及びプログラム
EP2417719B1 (en) Method and system to manage network traffic congestion
US20230239248A1 (en) Traffic shaping method and apparatus

Legal Events

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

Ref document number: 19853747

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19853747

Country of ref document: EP

Kind code of ref document: A1