WO2020063003A1 - 拥塞控制方法和网络设备 - Google Patents

拥塞控制方法和网络设备 Download PDF

Info

Publication number
WO2020063003A1
WO2020063003A1 PCT/CN2019/094171 CN2019094171W WO2020063003A1 WO 2020063003 A1 WO2020063003 A1 WO 2020063003A1 CN 2019094171 W CN2019094171 W CN 2019094171W WO 2020063003 A1 WO2020063003 A1 WO 2020063003A1
Authority
WO
WIPO (PCT)
Prior art keywords
network device
data
packet
active
data stream
Prior art date
Application number
PCT/CN2019/094171
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 华为技术有限公司
Priority to JP2021513244A priority Critical patent/JP2021536196A/ja
Priority to KR1020217004313A priority patent/KR102478440B1/ko
Priority to EP19865608.4A priority patent/EP3852323A4/en
Publication of WO2020063003A1 publication Critical patent/WO2020063003A1/zh
Priority to US17/211,815 priority patent/US11606297B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion
    • H04L47/115Identifying congestion using a dedicated packet
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • 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/29Flow control; Congestion control using a combination of thresholds
    • 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/33Flow control; Congestion control using forward notification

Definitions

  • the present application relates to the field of network technology, and more particularly, to a congestion control method and a network device.
  • the traditional congestion control method is mainly used by the receiver to send back the network congestion information to the sender.
  • the sender adjusts the data transmission rate based on the congestion information. For example, when the network is congested, the sending end will reduce the sending rate of the data packets. When the network is not congested, the sending end will gradually increase the sending rate of the data packets.
  • the sender will gradually adjust the sending rate of the data packet after learning the congestion status of the network.
  • the rate change is relatively slow, which may cause a certain delay in the transmission process of the data packet, resulting in the efficiency of congestion control. not tall.
  • the present application provides a congestion control method and a network device, which can better perform congestion control, thereby reducing network packet loss.
  • a congestion control method is provided.
  • the method is applied to a data center network, where the data center network includes a first network device and a second network device, and the first network device is configured to provide a second network device Sending a data stream, the method includes: the first network device receives a first message sent by the second network device, the first message carries a number of active streams, and the number of active streams is determined by the second network device according to A determined number of received data streams to which the data packet from the first network device belongs; and the first network device determines the number of active streams based on the number of active flows and the rated reception bandwidth of the second network device.
  • the second network device sends the packet sending control information of the data stream, wherein the packet sending control information instructs the first network device to send the data stream to the second network device according to the packet sending control information.
  • the actual receiving bandwidth of the second network device reaches the rated receiving bandwidth; the first network device sends the second network device to the second network according to the packet control information.
  • Apparatus transmits the data stream.
  • the number of active flows may refer to the number of data flows that are transmitting data packets in a certain statistical period. Specifically, the number of active flows may be the number of active flows received by the second network device from the first network device according to one statistical period. The number of data streams determined by the data stream to which the data packet belongs.
  • the encapsulation of the data stream sent by the first network device to the second network device according to the packet sending control information is a remote direct memory access protocol version 2 (remote direct access overconverged ethernet version 2 (RoCEv2) message based on fused ethernet).
  • RoCEv2 remote direct memory access protocol version 2
  • the first message is carried in an option field in an Acknowledgement (ACK) message.
  • ACK Acknowledgement
  • the data stream sent by the first network device to the second network device according to the packet sending control information may be a data stream (in this case, the data stream may be among all data streams sent by the first network device to the second network device). Any data stream), or multiple data streams (the multiple data streams may be all data streams sent by the first network device to the second network device).
  • the packet sending control information is used to control the first network device to send a data stream to the second network device, and when the first network device sends a data stream to the second network device according to the packet sending control information, the actual bandwidth of the second network device can be Reach the rated reception bandwidth of the second network device.
  • the rated receiving bandwidth of the second network device may be a fixed bandwidth.
  • information such as the rated receiving bandwidth of the second network device may be directly configured to the first network device, so that the first network device The rated receiving bandwidth of the second network device can be obtained from the configuration information.
  • the packet sending control information is determined by the number of active flows and the rated receiving bandwidth of the second network device, and the data flow sent by the first network device to the second network device is controlled according to the packet sending control information, which can better Perform congestion control to reduce network packet loss.
  • the first network device determines to send data to the second network device according to the number of active flows and a rated receiving bandwidth of the second network device.
  • the flow packet control information includes: when the number of active flows is less than a first threshold, the first network device determines to send the data flow packet control information to the second network device according to the following formula;
  • C is the rated receiving bandwidth of the second network device
  • active_qp is the number of active flows
  • T is a data packet sent by the first network device to the second network device when the network is idle.
  • the time required to reach the second network device V is the data amount of the data stream sent by the first network device to the second network device within T; the first network device controls according to the packet sending
  • the information sending the data stream to the second network device includes: a data amount of a data packet in the data stream sent by the first network device to the second network device within T is V.
  • the above-mentioned data volume may be a length of a data packet in a data stream.
  • data stream 1 includes data packet 1, data packet 2, and data packet 3, where the length of each data packet is 4 bytes, then the length of data stream 1 is 12 bytes.
  • the sending time and arrival time of a data packet sent by the first network device to the second network device may be recorded, and then T may be obtained by making a difference between the arrival time and the sending time.
  • the first network device can continuously send multiple data packets (for example, 1000 data packets) to the second network device, and then obtain each data packet from the first network based on the recorded time.
  • the first threshold may be set according to experience. For example, in a scenario with a large amount of data, a larger value may be set as the first threshold, and in a scenario with a smaller amount of data, a smaller value may be set. As the first threshold.
  • the above-mentioned first threshold may also be determined according to the rated receiving bandwidth, T of the second network device, and the length of a single data packet.
  • the value obtained by C * T / 1pkt may be determined as the first threshold.
  • 1pkt represents the length of a single data packet.
  • the specific length of 1pkt can be set according to the actual situation.
  • 1pkt can be set to different lengths. For example, in some scenarios with a small amount of data transmission (for example, smart meters regularly report power information) can be 1pkt sets a smaller length, and in scenarios where the amount of data transmission is large, you can set a larger length for 1pkt.
  • 1pkt can also be directly set as the maximum transmission unit (MTU) allowed by the network.
  • MTU maximum transmission unit
  • the first network device determines to send data to the second network device according to the number of active flows and a rated receiving bandwidth of the second network device.
  • the flow packet control information includes: when the number of active flows is greater than or equal to a first threshold, the first network device determines to send the packet flow control information of the data flow to the second network device according to the following formula;
  • 1pkt is the length of a single data packet
  • active_qp is the number of active flows
  • C is the rated receiving bandwidth of the second network device
  • interval is an adjacent data packet when the first network device sends the data flow
  • the time interval between the first network device and the second network device according to the packet sending control information includes: the first network device sends the data stream to the second network at an interval of interval The device sends a data packet in the data stream.
  • the length of the single data packet may be the number of single data packets. For example, the data size of a single data packet is 3 bytes. Then, the length of a single data packet is also 3 bytes.
  • the first network device determines to send data to the second network device according to the number of active flows and a rated receiving bandwidth of the second network device.
  • the packet sending control information of the flow includes: the first network device determines to send to the second network device according to the number of the active flows, the rated receiving bandwidth of the second network device, and the attribute information of the data flow.
  • the packet flow control information of the data stream wherein the attribute information of the data stream includes at least one of application information of the data stream and data amount information of the data stream, and the application information of the data stream is used for Indicates the type of service to which the data packet of the data stream belongs, and the data amount information of the data stream is used to indicate the data amount of the data packet belonging to the first data stream sent by the first network device within a preset time.
  • the packet sending control information when determining the packet sending control information of the data stream, the packet sending control information can be reasonably determined for the data stream according to the attribute information of the data stream.
  • the first network device determines a destination based on the number of active flows, a rated receiving bandwidth of the second network device, and attribute information of the data flow.
  • the sending, by the second network device, the packet sending control information of the data flow includes: when the number of active flows is less than a first threshold, the first network device determines to send the second network device according to the following formula: Packet flow control information for data flow;
  • C is the rated receiving bandwidth of the second network device
  • active_qp is the number of active flows
  • T is one that the first network device sends to the second network device when the network is idle.
  • the time required for a data packet to reach the second network device w is the weight of the data flow
  • w is determined according to the attribute information of the data flow
  • V is the first network device within T to the first network device.
  • the amount of data in the data stream sent by the two network devices; the sending, by the first network device to the second network device according to the packet sending control information, the first network device includes:
  • the data amount of the data packet in the data stream sent by the second network device is V.
  • the data transmission amount when determining the data transmission amount of the data stream, the data transmission amount can be reasonably determined for the data stream according to the data stream attribute information.
  • the first network device determines a destination based on the number of active flows, a rated receiving bandwidth of the second network device, and attribute information of the data flow.
  • the sending, by the second network device, packet sending control information of the data flow includes: when the number of active flows is greater than or equal to a first threshold, the first network device determines to send to the second network device according to the following formula Packet control information of the data stream;
  • 1pkt is the length of a single data packet
  • active_qp is the number of active flows
  • w is the weight of the data flow
  • w is determined according to the attribute information of the data flow
  • C is the value of the second network device.
  • Rated receiving bandwidth, interval is the time interval between adjacent data packets when the first network device sends the data stream; the first network device sends the second network device according to the packet control information
  • the data stream includes: the first network device sends a data packet in the data stream to the second network device at an interval of interval.
  • the data packet transmission time interval when determining the data packet transmission time interval of the data stream, the data packet transmission time interval can be reasonably determined for the data stream according to the data stream attribute information.
  • a congestion control method is provided.
  • the method is applied to a data center network, where the data center network includes a first network device and a second network device, and the second network device is configured to receive the first network device.
  • a data stream sent by a network device comprising: determining, by the second network device, the number of active streams according to a received data stream to which a data packet from the first network device belongs;
  • the first network device sends a first message, the first message carries the number of active flows, and the number of active flows is used by the first network to determine packet sending control information for sending a data flow to the second network device,
  • the packet sending control information indicates that when the first network device sends the data stream to the second network device according to the packet sending control information, an actual receiving bandwidth of the second network device reaches the value of the second network device.
  • Rated receiving bandwidth; the second network device receives the data stream sent by the first network device according to the rated receiving bandwidth.
  • the second network device reports the number of active flows to the first network device, so that the first network device can determine the packet sending control information based on the number of active flows and the rated receiving bandwidth of the second network device, and according to the packet sending control The information controls the data stream sent by the first network device to the second network device, so that the second network device can receive the data stream sent by the first network device with the rated receiving bandwidth, thereby achieving a full throughput state and improving the transmission efficiency of the data stream.
  • the second network device determines the number of active flows according to the received data flows to which the data packet from the first network device belongs, including: The second network device receives the first packet of the first group of data packets sent by the first network device, and adds 1 to the current active stream number to obtain the first active stream number; the second network device receives the first A tail packet of the first group of data packets sent by a network device, and determining a first congestion value according to the number of data packets carrying an external congestion notification ECN identifier in the first group of data packets; when the first congestion value When it is less than the congestion threshold, the second network device reduces the first active flow number by one to obtain the second active flow number; when the first congestion value is greater than or equal to the congestion threshold, the second The network device keeps the number of the first active flows unchanged.
  • the above-mentioned first congestion value is used to indicate a degree of congestion of the first network on which the second network device receives the data packet sent by the first network device.
  • the congestion threshold may be a preset threshold, and the congestion threshold may specifically be a threshold estimated according to a network state. For scenarios with low bandwidth utilization, you can set a smaller congestion threshold, and for scenarios with high bandwidth utilization, you can set a larger congestion threshold.
  • the congestion threshold in a scenario with low bandwidth utilization, may be 0.3, 0.4, or 0.5, and in a scenario with high bandwidth utilization, the congestion threshold may be 0.6, 0.7, or 0.8.
  • the current active flow number when receiving the first packet of the first group of data packets, the current active flow number needs to be increased by 1 to obtain the first active flow number.
  • the current number of active flows refers to the number of active flows that the second network device counts before receiving the first packet of the first group of data packets.
  • the number of active flows needs to be updated when the first packet of the first group of data packets is received. That is, the number of active flows that is calculated before the first packet of the first group of data packets is received is increased by one.
  • the second network device After receiving the tail packet of the first group of data packets, the second network device needs to update the number of first active flows again according to the number of data packets carrying the ECN identifier in the first group of data packets. If the first congestion value is less than Congestion threshold, then the number of active flows counted by the first network device after receiving the tail packet of the first group of data packets is the number of second active flows; if the first congestion value is less than the congestion threshold, then After the tail packet of a group of data packets, the number of active flows obtained by the first network device through statistics is the first active flow number.
  • the number of active flows obtained by statistics is the first active flow number (when the first congestion value is greater than or equal to the congestion threshold) or the second active flow number (the first When the congestion value is less than the congestion threshold).
  • the ECN identifier may be a congestion identifier added by another network device (specifically, a switching device) between the first network device and the second network device when receiving a data packet.
  • a congestion identifier added by another network device (specifically, a switching device) between the first network device and the second network device when receiving a data packet.
  • each data packet may also carry an identifier in a field, and the value of the identifier is used to indicate the type of the data packet (specifically, the first packet, the tail packet, or the data between the first packet and the tail packet). package).
  • Each of the above data packets can also be regarded as a message, and the identifier of each data packet can be carried in a certain field of the message.
  • the identity of the data packet can be carried in the opcode field in the RoCEv2 message.
  • the identifier of the data packet may also be carried in a reserved field (for example, the rsvd7 field) in the RoCEv2 packet.
  • the congestion situation can be determined according to the number of data packets carrying the ECN identifier in the group of data packets, and the number of active flows can be modified according to the congestion situation. Perform more accurate statistics on the number of active flows to obtain a more accurate number of active flows.
  • the traditional scheme does not take network congestion into consideration when counting the number of active flows.
  • the traditional scheme counts active flows based on the ideal situation of the network without congestion.
  • network congestion occurs, It will affect the number of data packets received by the receiving end within a period of time, which will lead to inaccurate statistics of the number of active flows.
  • statistics on the data packets carrying the ECN identifier in each group of data packets can be used to estimate the network congestion.
  • the number of active flows can be reduced by 1, and when the network congestion is severe It can keep the number of active flows unchanged, which can reduce the impact of network congestion on the number of active flows, and can achieve more accurate statistics.
  • the determining the first congestion value according to the number of data packets carrying an ECN identifier in the first group of data packets includes: A ratio of the number of data packets carrying the ECN identifier to the number of data packets of the first group of data packets is determined as the first congestion value.
  • determining the ratio of the number of data packets carrying the ECN identifier to the number of data packets of the first group of data packets as the first congestion value includes: A ratio of a total number of data packets carrying an ECN identifier to a first group of data packets and a total number of data packets of the first group of data packets is determined as the first congestion value.
  • the first group of data packets includes a total of 10 data packets (including the first packet and the tail packet). Among them, there are 5 data packets carrying the ECN identifier. Then, the first congestion threshold can be calculated as 0.5.
  • the ratio of the total number of data packets carrying the ECN identifier in the first group of data packets to the total number of data packets of the first group of data packets may be obtained first, and then the product of the ratio and a correction coefficient is used as The first congestion threshold.
  • the correction coefficient may be a coefficient set according to the operating conditions of the network.
  • the first congestion value is determined according to the data packet carrying the ECN identifier in the first group of data packets, which can reflect the current congestion situation in real time, and then can make more accurate statistics on the number of active flows according to the current congestion situation.
  • the method further includes : The second network device receives the first packet of the second group of data packets sent by the first network device, and adds one to the third active stream number to obtain a fourth active stream number, where the second group The data packet and the first group of data packets belong to the same data flow.
  • the number of the third active flows is equal to the number of the second active flows.
  • the number of third active flows is equal to the number of first active flows; the second network device receives the second group of data packets sent by the first network device And determine the second congestion value of the network according to the number of data packets carrying the ECN identifier in the second group of data packets and the first congestion value; when the second congestion value is less than the When a congestion threshold occurs, the second network The device subtracts 1 from the fourth active flow number to obtain a fifth active flow number; when the second congestion value is greater than or equal to the congestion threshold, the second network device maintains the fourth active flow number constant.
  • determining the ratio of the number of data packets carrying the ECN identifier to the number of data packets of the first group of data packets as the first congestion value includes: A ratio of a total number of data packets carrying an ECN identifier to a first group of data packets and a total number of data packets of the first group of data packets is determined as the first congestion value.
  • the first packet, the tail packet, and the data packets between the first packet and the tail packet in the first group of data packets described above may all carry an ECN identifier.
  • ECN identifier When each packet in the first group of data packets carries the ECN identifier, it means that the network congestion is serious.
  • the first group of data packets that carry the ECN identifier is small, it indicates that the network congestion is low (or that The network is relatively smooth).
  • processing may be performed in a similar manner as the first packet of the first group of data packets is received, and after the tail packet of the second group of packets is received, the second group is synthesized by
  • the data packet carrying the ECN identifier in the data packet and the above-mentioned first congestion value to comprehensively determine the second congestion value can prevent the second congestion value from changing too much, thereby obtaining a slowly changing congestion value, and making the number of active flows obtained by statistics No mutations occur.
  • the second network device may further determine the number and The number of data packets carrying the ECN identifier in the two groups of data packets is used to comprehensively determine the second congestion value.
  • the ratio of the total number of data packets carrying the ECN identifier in the first group of data packets and the second group of data packets to the total number of data packets included in the first group of data packets and the second group of data packets is determined as the first Second congestion value.
  • the statistics of the number of active flows may be performed on the receiving network device or on the switch device located between the sending end and the receiving end.
  • the switch device can feed back the number of active flows that are counted to the receiver, and then the receiver to the sender.
  • a network device in a third aspect, includes a module for performing various implementations of the first aspect or a method in various implementations of the second aspect.
  • a network device including a memory and a processor.
  • the memory is used to store the program
  • the processor is used to execute the program stored in the memory.
  • the processor is used to execute the various implementations of the first aspect or the various implementations of the second aspect.
  • the above-mentioned network device further includes a transceiver.
  • the processor and the transceiver are configured to execute the various implementation manners of the first aspect or the methods in the various implementation manners of the second aspect. .
  • a computer-readable storage medium stores instructions that, when run on a computer, cause the computer to execute various implementations of the first aspect or the second aspect Methods in various implementations.
  • a computer program product containing instructions, which, when run on a computer, causes the computer to execute the various implementations of the first aspect or the methods in the various implementations of the second aspect.
  • the computer may be a network device in a data center, for example, a service device and a transmission device.
  • FIG. 1 is a schematic diagram of a possible application scenario according to an embodiment of the present application.
  • FIG. 2 is a schematic flowchart of a congestion control method according to an embodiment of the present application.
  • FIG. 3 is a schematic flowchart of a congestion control method according to an embodiment of the present application.
  • FIG. 4 is a schematic flowchart of a congestion control method according to an embodiment of the present application.
  • FIG. 5 is a schematic flowchart of a congestion control method according to an embodiment of the present application.
  • FIG. 6 is a schematic block diagram of a network device according to an embodiment of the present application.
  • FIG. 7 is a schematic block diagram of a network device according to an embodiment of the present application.
  • FIG. 8 is a schematic block diagram of a network device according to an embodiment of the present application.
  • FIG. 1 is a schematic diagram of a possible application scenario according to an embodiment of the present application.
  • the sending end 1, the sending end 2, and the sending end 3 can send data streams to the receiving end 1 and the receiving end 2 through the switch 1 and the switch 2.
  • Both receiver 1 and receiver 2 can receive the data streams sent by sender 1 to sender 3 through switch 1 and switch 2 (switch 1 and switch 2 forward the data streams sent by sender 1 to sender 3 to the receiver 1 and the receiving end 2).
  • FIG. 1 is only a schematic diagram of a possible application scenario of the embodiment of the present application, and the embodiment of the present application may also be applied to other scenarios similar to FIG. 1.
  • the data stream sent by the sending end 1 to the receiving end 1 may cause congestion between the sending end 1 and the receiving end 1, thereby causing the delay of the data packet received by the receiving end 1 to change. Large, affecting network performance.
  • the receiving end 1 will feed back the congestion of the data stream to the sending end 1.
  • the sending end 1 will gradually reduce the sending rate of the data stream.
  • the sender can gradually increase the data packet transmission rate.
  • the sender will gradually adjust the packet transmission rate after learning the congestion status of the network. The rate change is relatively slow, and it is a kind of passive adjustment and congestion control after learning the network congestion status. The effect is not very good.
  • this application proposes a new congestion control method, which actively adjusts the sending rate of the data stream by the number of active streams and the rated receiving bandwidth of the receiving end, so that the actual receiving bandwidth of the receiving end can reach the rated receiving bandwidth, and the receiving end can reach Full throughput, thereby improving data stream transmission efficiency.
  • FIG. 2 is a schematic flowchart of a congestion control method according to an embodiment of the present application.
  • the method shown in FIG. 2 can be applied to networks such as a data center network and a metropolitan area network.
  • the first network device and the second network device are devices in these networks.
  • the method shown in FIG. 2 includes steps 101 to 103. These steps are described in detail below.
  • the second network device sends a first message to the first network device, and the first network device receives the first message.
  • the above first message carries the number of active flows, and the number of active flows is a number determined by the second network device according to the received data flow to which the data packet from the first network device belongs.
  • the above active flow may be a definition of the data flow by the second network device itself.
  • the active flow may be considered as a data flow that transmits data packets more frequently, and the inactive flow may be a transmission data packet.
  • Data flows with a long time interval for example, a data flow takes a long time to transmit a data packet, such a data flow can be considered an inactive flow. Therefore, for the second network device, the data flow received by the second network device can be divided into two types, that is, an active flow and an inactive flow.
  • the number of active flows may refer to the number of data flows that are transmitting data packets within a certain statistical period. Specifically, the number of active flows may be the number of active flows received by the second network device from the first in a statistical period. The number of data streams determined by the data stream to which the network device's data packet belongs.
  • the first network device sends a data stream to the second network device, and the second network device receives the data stream sent by the first network device.
  • the first network device may send data packets to the second network device in groups.
  • Each group of data packets includes a first packet, a tail packet, a first packet, a tail packet, and a first packet and a tail packet.
  • the data packets between the two packets have different identifiers.
  • the second network device can identify the first and last packets of a group of packets through these flags, and then send the active stream based on the first and last packets of each group of packets received. The number is counted to obtain the number of active flows (the specific number of active flows is described in detail in the method shown in FIG. 3 below).
  • the data stream may be sent to the second network device at the initial rate.
  • the initial rate can be defined in the following two ways.
  • the first network device determines the rated receiving bandwidth of the second network device as an initial rate, and sends a data stream to the second network device with the rated receiving bandwidth within t.
  • t is a request message sent from the first network device (the request message is used to request the second network device to receive the data stream sent by the first device), and the first network device receives the request message sent by the second network device The response time of the message.
  • the initial rate is the initial sending rate of each stream based on the remote memory direct access protocol version 2 (RoCEv2) defined by the integrated Ethernet.
  • RoCEv2 remote memory direct access protocol version 2
  • the initial rate may be a maximum sending rate allowed by a line card or a sending network board of the first network device.
  • first and last packets of each group of data packets are also defined in two ways.
  • the first definition is defined according to the RoCEv2 protocol.
  • data packets can be grouped according to messages (the message is an application Logical grouping of layers), the first message of the message is regarded as the first packet, and the last message of the message is regarded as the tail packet.
  • the specifics of the first packet and the tail packet can be defined in the remote memory based on the fusion ethernet direct access (remote direct access overwrites converged ethernet (RoCE) messages in the opcode field of the base transport header (Base Transport Header, BTH).
  • RoCE converged ethernet
  • the first and last packets of a data packet can also be directly defined according to a slice or segment. Specifically, the The corresponding data packets within a period of feedback of the initial rate or the number of active flows are divided into a group.
  • the first packet in a slice or segment is called the first packet
  • the last packet in a slice or segment is called the tail packet.
  • Two fields can be defined in a reserved field (for example, the rsvd7 field) of the BTH header, and the flag of each field can occupy 1 bit.
  • the first message may directly carry a specific number of active flows, so that the first network device may directly obtain the number of active flows according to the first message.
  • the first network device determines packet sending control information for sending a data stream to the second network device according to the number of active flows and the rated receiving bandwidth of the second network device.
  • the packet sending control information indicates that when the first network device sends a data stream to the second network device according to the packet sending control information, the actual receiving bandwidth of the second network device reaches the rated receiving bandwidth. That is, the foregoing packet sending control information is used to control the first network device to send a data stream to the second network device, and when the first network device sends a data stream to the second network device according to the packet sending control information, the second network device The actual bandwidth can reach the rated receiving bandwidth of the second network device.
  • the rated receiving bandwidth of the second network device may be a fixed bandwidth.
  • information such as the rated receiving bandwidth of the second network device may be directly configured to the first network device, so that the first network device The rated receiving bandwidth of the second network device can be obtained from the configuration information.
  • the first network device sends a data stream to the second network device according to the packet sending control information, and the second network device receives the data stream with a rated receiving bandwidth.
  • the data stream sent by the first network device to the second network device according to the packet sending control information may be a data stream (in this case, the data stream may be among all data streams sent by the first network device to the second network device). Any data stream), or multiple data streams (the multiple data streams may be all data streams sent by the first network device to the second network device).
  • the packet sending control information is determined by the number of active flows and the rated receiving bandwidth of the second network device, and the data flow sent by the first network device to the second network device is controlled according to the packet sending control information, so that the second network The device can reach full throughput, which can improve the transmission efficiency of data streams.
  • the packet sending control information may be determined in different ways according to the number of active flows.
  • the network has a strong tolerance for burst data. At this time, you can only control the maximum data sending volume of the data stream over a period of time.
  • the number of active streams is large, multi-stream synchronization has a greater impact on the network.
  • the network card the network card is located in the receiving end and is responsible for distributing the data packet transmission.
  • Period Allocation period sending a single message per period (that is, strictly controlling the transmission interval between data packets, and the transmission of each data packet can be considered a period).
  • the first network device determines, according to formula (1), packet sending control information for sending a data flow to the second network device.
  • C is the rated receiving bandwidth of the second network device
  • active_qp is the number of active streams
  • T is the time required for the data packet of the data stream sent by the first network device to reach the second network device
  • V The amount of data in the data stream sent by the first network device to the second network device within T.
  • the packet sending control information is determined, and the packet sending control information specifically indicates that the data stream of the data packet in any one of the data streams sent by the first network device to the second network device in V is V. It should be understood that the packet sending control information only indicates the data amount of the data packet in the data stream sent within T at this time, but the time interval between the data packets is not limited, as long as the data packet is in the data stream within T The amount of data can reach V.
  • the first network device After obtaining the packet sending control information according to the foregoing formula (1), the first network device sends a data stream to the second network device according to the packet sending control information, including: data in the data stream sent by the first network device to the second network device within T
  • the data volume of the packet is V.
  • the above-mentioned data volume may be a length of a data packet in a data stream.
  • data stream 1 includes data packet 1, data packet 2, and data packet 3, where the length of each data packet is 4 bytes, then the length of data stream 1 is 12 bytes.
  • T may be set in advance, and T may specifically be the time required for the data to reach the receiving end when the data packet is sent at a certain rate when the network is idle.
  • the above-mentioned T may specifically be a round-trip time (RTT).
  • RTT indicates that the data is sent from the sender to the receiver, and the receiver receives an acknowledgement from the receiver (the receiver sends an acknowledgement immediately after receiving the data) The total delay experienced.
  • the RTT can be obtained by measuring the static delay when the network device is initialized under no-load conditions.
  • the network when the number of active streams is small, the network has a strong tolerance for burst data, and can only control the maximum data transmission amount of the data stream within a period of time, which can simplify the operation of controlling the data stream transmission.
  • the first network device determines, according to formula (2), packet sending control information of the data flow to the second network device.
  • 1pkt is the length of a single packet
  • active_qp is the number of active streams
  • C is the rated receiving bandwidth of the second network device
  • interval is the interval between adjacent packets when the first network device sends the data stream. Time interval.
  • the packet sending control information is determined, and the packet sending control information specifically instructs the first network device to make the transmission time interval between the data packets reach an interval when sending each data stream.
  • the first network device sending a data stream to the second network device according to the packet sending control information includes: the first network device sends the data stream to the second network device at an interval of interval Packet.
  • the length of the single data packet may be the number of single data packets. For example, the data size of a single data packet is 3 bytes. Then, the length of a single data packet is also 3 bytes.
  • formula (3) Score the bandwidth for each data stream, and get the sending rate of each data stream as The sending rate of each data stream sent by the sender is In order to make the receiving end reach the full throughput state, formula (3) can be obtained, and the above formula (2) can be obtained by modifying formula (3).
  • the packet sending control information of the data stream can also be determined according to the specific situation of the data stream (for example, priority, etc.). In this case, different data streams can obtain Outgoing control information may be different. The manner of determining the packet sending control information of the data flow is described in detail below.
  • the determining, by the first network device according to the number of active flows and the rated receiving bandwidth of the second network device, packet sending control information of the data flow to the second network device includes: The rated receiving bandwidth of the network device and attribute information of the data flow determine the packet sending control information of the data flow to the second network device.
  • the attribute information of the data stream includes at least one of application information of the data stream and data amount information of the data stream.
  • the application information of the data stream is used to indicate a service type to which the data packet of the data stream belongs, and the data amount information of the data stream. It is used to indicate a data amount of a data packet belonging to the first data stream sent by the first network device within a preset time.
  • the application information of the data stream may specifically indicate a service type (for example, audio, video, etc.) to which a data packet of the data stream belongs, a priority corresponding to the service type, and the like.
  • a service type for example, audio, video, etc.
  • the packet sending control information when determining the packet sending control information of the data stream, the packet sending control information can be reasonably determined for the data stream according to the attribute information of the data stream.
  • the first network device determines, according to formula (4), packet sending control information for sending a data flow to the second network device.
  • C is the rated receiving bandwidth of the second network device
  • active_qp is the number of active streams
  • T is the time required for the data packet of the data stream sent by the first network device to reach the second network device
  • w is determined according to the attribute information of the data stream
  • V is the data amount of the data stream sent by the first network device to the second network device within T.
  • the first network device After obtaining the packet sending control information according to the above formula (4), the first network device sends a data stream to the second network device according to the packet sending control information, including: data in the data stream sent by the first network device to the second network device within T
  • the data volume of the packet is V.
  • w may be determined according to the application information of the data stream and / or the data amount information of the data stream in the data stream attribute information.
  • the value of w has a positive correlation with the importance of the service type indicated by the application information of the data stream.
  • the value of w is positively related to the priority of the service indicated by the application information of the data stream.
  • the value of w and the size of the data amount indicated by the data amount information of the data stream are inversely correlated. Specifically, the larger the data amount indicated by the data amount information of the data stream, the smaller the value of w is.
  • the data transmission amount when determining the data transmission amount of the data stream, the data transmission amount can be reasonably determined for the data stream according to the data stream attribute information.
  • the first network device determines, according to formula (5), packet sending control information for sending a data flow to the second network device.
  • 1pkt is the length of a single data packet
  • active_qp is the number of active streams
  • w is the weight of the data stream
  • w is determined according to the attribute information of the data stream
  • C is the rated reception of the second network device Bandwidth
  • interval is the time interval between adjacent packets when the first network device sends a data stream.
  • the first network device sending a data stream to the second network device according to the packet sending control information includes: the first network device sends the data stream to the second network device at an interval of interval Packet.
  • the value of w is inversely related to the importance of the service type indicated by the application information of the data stream.
  • the value of w in the formula (5) is inversely related to the priority of the service indicated by the application information of the data stream.
  • the value of w is positively related to the size of the data amount indicated by the data amount information of the data stream. Specifically, the larger the data amount indicated by the data amount information of the data stream, the larger the value of w.
  • the data packet transmission time interval when determining the data packet transmission time interval of the data stream, the data packet transmission time interval can be reasonably determined for the data stream according to the data stream attribute information.
  • formula (4) can be transformed into formula (6).
  • the packet sending control information for sending the data stream to the second network device can be directly determined according to formula (6).
  • w1 is determined according to the application information of the data stream in the data stream attribute information, and the meanings of other parameters are the same as those in the formula (4).
  • formula (4) can be transformed into formula (7).
  • the packet sending control information for sending the data stream to the second network device can be directly determined according to formula (7).
  • w2 is determined according to the data amount information of the data stream, and the other parameters have the same meanings as in the formula (4).
  • the value of w2 is inversely related to the amount of data indicated by the data amount information of the data stream.
  • formula (4) can be transformed into formula (8).
  • the packet sending control information for sending the data stream to the second network device can be directly determined according to formula (8).
  • w1 is determined according to the application information of the data flow in the data flow attribute information
  • w2 is determined according to the data amount information of the data flow.
  • the meaning of other parameters is the same as that in formula (3). the same.
  • the congestion control method of the embodiment of the present application is described in detail from the perspective of the sending end (the first network device) with reference to FIG. 2 above.
  • the congestion control method is described in detail.
  • FIG. 3 is a schematic flowchart of a congestion control method according to an embodiment of the present application.
  • the method shown in FIG. 3 can also be applied to networks such as a data center network and a metropolitan area network.
  • the first network device and the second network device are devices in these networks.
  • the method shown in FIG. 3 includes steps 201 to 203, and these steps are described in detail below.
  • the second network device determines the number of active flows according to the received data flow to which the data packet from the first network device belongs.
  • the second network device sends a first message to the first network device, where the first message carries the number of active streams.
  • the above number of active flows is used by the first network to determine packet sending control information for sending a data stream to a second network device.
  • the packet sending control information instructs the first network device to send a data stream to the second network device according to the packet sending control information.
  • the actual receiving bandwidth reaches the rated receiving bandwidth of the second network device.
  • the second network device receives the data stream sent by the first network device according to the rated receiving bandwidth.
  • steps 101 to 103 in the method shown in FIG. 2 described above correspond to steps 201 to 203 in the method shown in FIG. 3, and the relevant limitations and explanations of steps 101 to 103 described above also apply. Steps 201 to 203 are not described in detail here to avoid repetition.
  • the second network device reports the number of active flows to the first network device, so that the first network device can determine the packet sending control information based on the number of active flows and the rated receiving bandwidth of the second network device, and according to the packet sending control The information controls the data stream sent by the first network device to the second network device, so that the second network device can receive the data stream sent by the first network device with the rated receiving bandwidth, thereby achieving a full throughput state and improving the transmission efficiency of the data stream.
  • the determining, by the second network device according to the received data flow to which the data packet from the first network device belongs, the number of active flows includes: the second network device receiving the first The first packet of a group of data packets, and the current active stream number is increased by 1 to obtain the first active stream number; the second network device receives the tail packet of the first group of data packets sent by the first network device, and according to the first group The number of data packets carrying the external congestion notification ECN identifier in the data packet determines the first congestion value; when the first congestion value is less than the congestion threshold, the second network device reduces the first active flow number by one to obtain the second active flow number ; When the first congestion value is greater than or equal to the congestion threshold, the second network device keeps the first active flow number unchanged.
  • FIG. 4 is a flowchart of counting the number of active flows according to an embodiment of the present application.
  • the second network device in FIG. 4 is equivalent to the receiving end 1 or the receiving end 2 in FIG. 1 for receiving a data stream
  • the first network device in FIG. 4 is equivalent to the sending end (the sending end 1 or the sending end in FIG. 1). End 2 or Send 3), used to send data stream.
  • the process shown in FIG. 4 may include at least steps 301 to 304. Further, the process shown in FIG. 4 may further include steps 305 to 308. These steps are described in detail below.
  • a second network device receives a first packet of a first group of data packets.
  • each group of data packets includes a certain number of data packets, and each group of data packets includes a first packet and a tail packet.
  • the second network device can identify whether the data packet carries the first packet identifier and the tail packet. Identification to identify whether the data packet is the first packet or the tail packet.
  • the two definition methods are described below.
  • data packets may be grouped according to a message according to the definition of the RoCEv2 protocol.
  • the data packet can be grouped according to a message (the message is a logical grouping of the application layer), the first packet of the message is regarded as the first packet, and the last packet of the message is regarded as the tail packet.
  • the details of the packet and the tail packet can be defined in the opcode field of the BaseTransport Header (BTH) of the RoCEv2 message.
  • BTH BaseTransport Header
  • the data packets can be grouped according to slices or segments. Specifically, the corresponding data packets within a period of feedback based on the initial rate or the number of active flows can be divided into a group, and the first message in the slice or segment can be grouped. It is called the first packet, and the last message of the slice or segment is called the tail packet.
  • These two fields can be defined in the reserved field (for example, the rsvd7 field) of the BTH header, and the label of each field can occupy 1 bit.
  • the second network device adds 1 to the current active flow number to obtain the first active flow number.
  • the current number of active flows in step 302 refers to the number of active flows calculated by the second network device before receiving the first packet of the first group of data packets.
  • the active flows need to be updated when the first packet of the first group of data packets is received.
  • the number of active streams that is, the number of active streams calculated before the first packet of the first group of data packets is received, plus one.
  • the second network device receives a tail packet of the first group of data packets.
  • the first packet of the first group of data packets may be the first packet of the first group of data packets received by the second network device, and the tail packet of the first group of data packets may be received by the second network device The last packet in the first group of packets.
  • the number of data packets of each group of data packets can be set in advance.
  • each data packet may carry an identifier in a certain field, and the value of the identifier is used to indicate the type of the data packet (specifically, the first packet, the tail packet, or the data packet between the first packet and the tail packet).
  • each data packet further includes a data packet identifier, where the data packet identifier is used to indicate a type of the data packet.
  • the value of the identifier may be used to indicate that the data packet is a first packet, a tail packet, or a data packet located between the first packet and the tail packet of a group of data packets.
  • the packet identifier may be carried in a packet header or a payload of the packet, or the packet identifier may also be carried in a field other than the packet to carry the packet identifier
  • the field of is transmitted together with the message, so that the first network device can identify the type of the data packet according to the field.
  • the packet identifier can be carried in the opcode field in the RoCEv2 message, or the data packet The identifier can also be carried in a reserved field (for example, the rsvd7 field) in the RoCEv2 packet.
  • the second network device determines the first congestion value according to the number of data packets carrying the external congestion notification ECN identifier in the first group of data packets, and updates the number of active flows according to the relationship of the first congestion value range congestion threshold.
  • the number of first active flows needs to be updated again according to the number of data packets carrying the ECN identifier in the first group of data packets. If the first congestion value is less than the congestion threshold, then, upon receiving the first After the tail packet of a group of data packets, the number of active flows counted by the second network device is the number of the second active stream; if the first congestion value is less than the congestion threshold, then the The number of active flows obtained by the statistics of the two network devices is the number of the first active flows.
  • the number of active flows obtained by statistics is the first active flow number (when the first congestion value is greater than or equal to the congestion threshold) or the second active flow number (the first When the congestion value is less than the congestion threshold).
  • the congestion situation can be determined according to the number of data packets carrying the ECN identifier in the group of data packets, and the number of active flows can be modified according to the congestion situation. Perform more accurate statistics on the number of active flows to obtain a more accurate number of active flows.
  • the traditional scheme does not take network congestion into account when counting the number of active streams.
  • the traditional scheme counts the number of active streams based on the ideal situation of the network without congestion.
  • Congestion affects the number of data packets received by the receiving end within a period of time, which leads to inaccurate statistics on the number of active flows.
  • statistics on the data packets carrying the ECN identifier in each group of data packets can be used to estimate the network congestion.
  • the number of active flows can be reduced by 1, and when the network congestion is severe It can keep the number of active flows unchanged, which can reduce the impact of network congestion on the number of active flows, and can achieve more accurate statistics.
  • determining the first congestion value according to the number of data packets carrying the ECN identifier in the first group of data packets includes: comparing the number of data packets carrying the ECN identifier with the first group of data packets to the first group of data packets. A ratio of the number of data packets of a group of data packets is determined as a first congestion value.
  • the ratio of the total number of data packets carrying the ECN identifier to the first group of data packets and the number of data packets of the first group of data packets may be determined as the first congestion value.
  • the first group of data packets includes a total of 10 data packets (including the first packet and the tail packet). Among them, there are 5 data packets carrying the ECN identifier. Then, the first congestion value can be calculated as 0.5.
  • the ratio of the total number of data packets carrying the ECN identifier in the first group of data packets to the total number of data packets of the first group of data packets may be obtained first, and then the product of the ratio and a correction coefficient is used as The first congestion value.
  • the correction coefficient may be a coefficient set according to the operating conditions of the network.
  • the first group of data packets contains a total of 10 data packets (including the first packet and the tail packet). Among them, there are 8 data packets carrying the ECN identifier. Then, the total number of data packets carrying the ECN identifier can be calculated. The ratio of the total number of data packets is 0.8. Assuming the correction coefficient is 0.8, then the product of the ratio and the correction coefficient is 0.64, which is the first congestion value.
  • the process shown in FIG. 4 further includes: determining that the data stream where the first group of data packets is located is the first data stream, where the first data stream is the first network device at a preset time The number of received data packets is greater than a preset number of data streams.
  • the above-mentioned first data stream can be considered as a large data stream.
  • the statistics of the number of active streams is performed only on the first data stream (the large data stream is suitable to use the solution of this application for the number of active streams) to make the statistics of this application
  • the scheme of the number of active streams is more targeted.
  • the program performs statistics on the number of active flows.
  • the above steps 301 to 304 only show the case of counting the number of active flows according to a group of data packets.
  • the method for counting the number of active flows in the embodiment of the present application can also count the number of active flows according to multiple groups of data packets. .
  • the second network device may continue to receive the second group of data. Packet, and update the number of active streams again according to the reception of the second group of data packets.
  • the second network device receives a first packet of a second group of data packets.
  • the second group of data packets and the first group of data packets belong to the same data stream, and the second group of data packets may be a group of data packets received by the second network device after receiving the first group of data packets.
  • the second set of data packets and the first set of data packets may be two consecutive sets of data packets in the data stream (that is, the second set of data packets is a second network device that receives the first set of data packets immediately after receiving the first set of data packets. To the next set of packets).
  • the second network device adds 1 to the current active flow number to obtain a fourth active flow number.
  • the second network device receives a tail packet of the second group of data packets.
  • steps 305 to 307 are similar to the specific processes of steps 301 to 303, and are not repeated here.
  • the second network device determines the second congestion value according to the number of data packets carrying the external congestion notification ECN identifier in the second group of data packets, and updates the number of active flows according to the relationship of the congestion threshold in the second congestion value domain.
  • processing may be performed in a similar manner as the first packet of the first group of data packets is received, and after the tail packet of the second group of packets is received, the second group is synthesized by
  • the data packet carrying the ECN identifier in the data packet and the above-mentioned first congestion value to comprehensively determine the second congestion value can prevent the second congestion value from changing too much, thereby obtaining a slowly changing congestion value.
  • the second network device may further determine the number and The number of data packets carrying the ECN identifier in the two groups of data packets is used to comprehensively determine the second congestion value.
  • the ratio of the total number of data packets carrying the ECN identifier in the first group of data packets and the second group of data packets to the total number of data packets included in the first group of data packets and the second group of data packets is determined as the first Second congestion value.
  • the first group of data packets and the second group of data packets each include 10 data packets, of which the number of data packets carrying the ECN identifier in the first group of data packets is four, and the data packets carrying the ECN identifier in the second group of data packets Is 6, then the total number of data packets carrying the ECN identifier in the first group of data packets and the second group of data packets is 10, and the total number of packets of the first group of data packets and the second group of data packets is 20, then,
  • a congestion value can also be obtained according to the number of data packets carrying the ECN identifier in the first group of data packets, and then the number of data packets carrying the ECN identifier in the second group of data packets Another congestion value is obtained. Next, the two congestion values are weighted and summed to obtain a second congestion value.
  • determining the second congestion value of the network according to the number of data packets carrying the ECN identifier and the first congestion value in the second group of data packets includes: according to the ECN carried in the second group of data packets The number of identified data packets determines the third congestion value of the network; the second congestion value is determined according to formula (9).
  • con3 is a third congestion value
  • con1 is a first congestion value
  • con2 is a second congestion value
  • x1 is a preset first weight value
  • x2 is a preset second weight value.
  • each time the second network device receives the first packet of a group of data packets (for example, the first group of data packets and the second group of data packets before), the number of current active streams is increased by one. ;
  • the second network device receives the tail packet of a group of data packets it needs to adjust the number of active streams according to the number of data packets carrying the ECN identifier in the group of data (reducing the number of active streams by 1 or keeping the same), In order to achieve the real-time update of the number of active streams.
  • the method of counting the number of active data streams in the embodiment of the present application is described from the perspective of a second network device.
  • FIG. 5 is a flowchart of counting the number of active flows according to an embodiment of the present application.
  • the process shown in FIG. 5 may include at least steps 401 to 406. Further, the process shown in FIG. 5 may further include steps 407 to 411. These steps are described in detail below.
  • Step 401 indicates that statistics on the number of active flows are started. Step 401 may occur after receiving a group of data packets and updating the number of active flows, and then before receiving another group of data packets.
  • the second network device receives the first packet of the first group of data packets sent by the first network device, and executes counter ++.
  • counter is the current active flow number obtained by the second network device.
  • the counter is the number of currently active data streams obtained by the second network device when the second network device receives the first packet of the first group of data packets sent by the first network device.
  • the counter obtained after counter ++ in step 402 is the number of active streams after receiving the first packet of the first group of data and updating the current number of active streams.
  • the counter after counter ++ is equivalent to the first activity obtained in step 102 Number of streams.
  • the second network device receives the tail packet of the first group of data packets, and determines the first congestion value according to the number of data packets carrying the external congestion notification ECN identifier in the first group of data packets.
  • step 405 When the first congestion value is less than or equal to the congestion threshold, it indicates that the network is less congested. At this time, the number of current active flows needs to be reduced by 1, that is, step 405 is performed. When the first congestion value is greater than or equal to the congestion threshold, it indicates that Network congestion is severe. At this time, it is necessary to keep the current number of active flows unchanged, that is, step 406 is performed.
  • step 405 a counter is executed—the counter obtained is equivalent to the number of the second active stream mentioned above.
  • step 406 the counter is equal to the number of the first active flows.
  • the second network device receives the first packet of the second group of data packets sent by the first network device, and executes counter ++.
  • the counter obtained after executing counter ++ in step 407 is equivalent to the fourth active stream number mentioned above.
  • the second network device receives the tail packet of the second group of data packets, and determines the second packet according to the number of data packets carrying the ECN identifier in the first group of data packets and the number of data packets carrying the ECN identifier in the second group of data packets. Congestion value.
  • the second congestion value When the second congestion value is less than or equal to the congestion threshold, it indicates that the network is less congested. At this time, the number of current active flows needs to be reduced by 1, that is, step 210 is performed. When the second congestion value is greater than or equal to the congestion threshold, it indicates that Network congestion is severe. At this time, it is necessary to keep the current number of active flows unchanged, that is, step 411 is performed.
  • step 410 execute counter--the counter obtained is equal to the fifth active stream number above.
  • step 406 the counter is equivalent to the fourth active stream number mentioned above.
  • the counter indicates the current number of active streams. After different operation steps, the counter needs to be added or subtracted, or the counter must be kept unchanged. Real-time statistics of the current number of active streams.
  • the congestion control method according to the embodiment of the present application has been described in detail above with reference to FIGS. 1 to 5.
  • the network device according to the embodiment of the present application is described in detail below with reference to FIGS. 6 to 8. It should be understood that the network device shown in FIGS. 6 to 8 can execute the congestion control method according to the embodiment of the application (the network device shown in FIG. 6) 500 is equivalent to the first network device above, and the network device 500 may perform each step performed by the first network device above.
  • the network device 600 shown in FIG. 7 is equivalent to the second network device above, and the network device 600 may perform Each step performed by the second network device above), for the sake of brevity, when the network device shown in FIG. 6 to FIG. 8 is introduced below, the repeated description is appropriately omitted.
  • FIG. 6 is a schematic block diagram of a network device according to an embodiment of the present application.
  • the network device 500 in FIG. 6 includes:
  • the receiving module 501 is configured to receive a first message sent by a second network device, where the first message carries a number of active streams, and the number of active streams is data to which the second network device belongs according to the received data packet from the first network device The determined number of streams;
  • the processing module 502 is configured to determine packet sending control information for sending a data stream to the second network device according to the number of active flows and the rated receiving bandwidth of the second network device, where the packet sending control information instructs the first network device to send a packet to the first network device according to the packet sending control information.
  • the packet sending control information instructs the first network device to send a packet to the first network device according to the packet sending control information.
  • the sending module 503 is configured to send a data stream to the second network device according to the packet sending control information.
  • the processing module 502 is configured to: when the number of active flows is less than the first threshold, determine the packet sending control information of the data flow to the second network device according to the following formula;
  • C is the rated receiving bandwidth of the second network device
  • active_qp is the number of active flows
  • T is the time required for the data packet sent by the first network device to reach the second network device
  • V is the first network within T The data amount of the data stream sent by the device to the second network device
  • the sending module 503 is configured to send a data volume of a data packet in the data stream sent to the second network device within T to V.
  • the processing module 502 is configured to: when the number of active flows is greater than or equal to the first threshold, determine the packet sending control information of the data flow to the second network device according to the following formula;
  • 1pkt is the length of a single data packet
  • active_qp is the number of active streams
  • C is the rated receiving bandwidth of the second network device
  • interval is the time interval between adjacent data packets when the first network device sends the data stream
  • the sending module 503 is configured to send a data packet in a data stream to the second network device at an interval of interval.
  • the processing module 502 is configured to determine packet sending control information of the data stream to the second network device according to the number of active streams, the rated receiving bandwidth of the second network device, and attribute information of the data stream;
  • the attribute information of the data stream includes at least one of application information of the data stream and information about the data amount of the data stream.
  • the application information of the data stream is used to indicate the type of service to which the data packet of the data stream belongs.
  • the amount of data indicating that the first network device sends a data packet belonging to the first data stream within a preset time.
  • the processing module 502 is configured to: when the number of active flows is less than the first threshold, determine the packet sending control information of the data flow to the second network device according to the following formula;
  • C is the rated receiving bandwidth of the second network device
  • active_qp is the number of active flows
  • T is the time required for the data packet sent by the first network device to reach the second network device
  • w is the weight of the data flow. w is determined according to the attribute information of the data stream
  • V is the data amount of the data stream sent by the first network device to the second network device within T;
  • the sending module 503 is configured to send a data volume of a data packet in the data stream sent to the second network device within T to V.
  • the processing module 502 is configured to: when the number of active flows is greater than or equal to the first threshold, determine the packet sending control information of the data flow to the second network device according to the following formula;
  • 1pkt is the length of a single data packet
  • active_qp is the number of active streams
  • w is the weight of the data stream
  • w is determined according to the attribute information of the data stream
  • C is the rated receiving bandwidth of the second network device
  • interval is the first The time interval between adjacent data packets when a network device sends a data stream
  • the sending module 503 is configured to send a data packet in a data stream to the second network device at an interval of interval.
  • FIG. 7 is a schematic block diagram of a network device according to an embodiment of the present application.
  • the network device 600 in FIG. 7 includes:
  • a processing module 601, configured to determine the number of active flows according to the received data flow to which the data packet from the first network device belongs;
  • a sending module 602 configured to send a first message to a first network device, where the first message carries a number of active streams, and the number of active streams is used by the first network to determine packet sending control information for sending a data stream to a second network device, and the packet sending control information indicates When the first network device sends a data stream to the second network device according to the packet sending control information, the actual receiving bandwidth of the second network device reaches the rated receiving bandwidth of the second network device;
  • the receiving module 603 is configured to receive a data stream sent by the first network device according to a rated receiving bandwidth.
  • the receiving module 603 is configured to receive the first packet of the first group of data packets sent by the first network device; the processing module 601 is configured to add 1 to the current active stream number to obtain the first active stream number
  • a receiving module 603 is configured to receive a tail packet of a first group of data packets sent by a first network device; a processing module 601 is configured to determine a first congestion according to the number of data packets in the first group of data packets that carry an external congestion notification ECN identifier; Value; when the first congestion value is less than the congestion threshold, the second network device subtracts 1 from the first active flow to obtain the second active flow number; when the first congestion value is greater than or equal to the congestion threshold, the second network device maintains The number of first active streams does not change.
  • the processing module 601 is configured to determine the ratio of the number of data packets carrying the ECN identifier to the number of data packets of the first group of data packets as the first congestion value.
  • the receiving module 603 after the receiving module 603 receives the tail packet of the first group of data packets sent by the first network device, the receiving module 603 is further configured to receive the second group of data packets sent by the first network device.
  • the first packet; the processing module 601 is configured to increase the number of the third active stream by one to obtain the number of the fourth active stream, where the second group of data packets and the first group of data packets belong to the same data stream, and when the first congestion value is less than When the congestion threshold is set, the number of third active flows is equal to the number of second active flows. When the first congestion value is greater than or equal to the congestion threshold, the number of third active flows is equal to the number of first active flows.
  • the receiving module 603 is configured to receive the tail packet of the second group of data packets sent by the first network device; the processing module 601 is further configured to determine according to the number of the data packets carrying the ECN identifier and the first congestion value in the second group of data packets.
  • the second congestion value of the network when the second congestion value is less than the congestion threshold, the second network device reduces the number of the fourth active flow by 1 to obtain the fifth active flow number; when the second congestion value is greater than or equal to the congestion threshold, The second network device keeps the number of fourth active flows unchanged.
  • FIG. 8 is a schematic block diagram of a network device according to an embodiment of the present application.
  • the network device 700 in FIG. 8 includes: a memory 701, a transceiver 702, and a processor 703.
  • the processor 703 may be a central processing unit (CPU), a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), and a field programmable Gate array (field programmable array, FPGA) or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof.
  • the foregoing memory 701 is configured to store a program, and the processor 703 may execute the program stored in the memory 701. When the program stored in the memory 701 is executed by the processor 703, the processor 703 is configured to execute the congestion control method in the embodiment of the present application.
  • the transceiver 702 and the processor 703 may be configured to perform various steps performed by the first network device or the second network device above.
  • the disclosed systems, devices, and methods may be implemented in other ways.
  • the device embodiments described above are only schematic.
  • the division of the unit is only a logical function division.
  • multiple units or components may be combined or Can be integrated into another system, or some features can be ignored or not implemented.
  • the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, which may be electrical, mechanical or other forms.
  • the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, may be located in one place, or may be distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the objective of the solution of this embodiment.
  • each functional unit in each embodiment of the present application may be integrated into one processing unit, or each of the units may exist separately physically, or two or more units may be integrated into one unit.
  • the functions are implemented in the form of software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium.
  • the technical solution of this application is essentially a part that contributes to the existing technology or a part of the technical solution can be embodied in the form of a software product.
  • the computer software product is stored in a storage medium, including Several instructions are used to cause a computer device (which may be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the method described in the embodiments of the present application.
  • the aforementioned storage media include: U disks, mobile hard disks, read-only memories (ROMs), random access memories (RAMs), magnetic disks or compact discs and other media that can store program codes .

Landscapes

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

Abstract

本申请提供了一种拥塞控制方法和网络设备,方法包括:第一网络设备接收第二网络设备发送的第一消息,第一消息携带活跃流数目,活跃流数目是第二网络设备根据接收到的、来自第一网络设备的数据包所归属的数据流确定的数目;第一网络设备根据活跃流数目和第二网络设备的额定接收带宽,确定向第二网络设备发送数据流的发包控制信息,其中,发包控制信息指示第一网络设备根据发包控制信息向第二网络设备发送数据流时,第二网络设备的实际接收带宽达到额定接收带宽;第一网络设备根据发包控制信息向第二网络设备发送数据流。本申请能够对拥塞进行更好地控制,进而减少网络丢包。

Description

拥塞控制方法和网络设备
本申请要求于2018年09月25日提交中国国家知识产权局、申请号为201811119579.8、发明名称为“拥塞控制方法和网络设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及网络技术领域,并且更具体地,涉及一种拥塞控制方法和网络设备。
背景技术
随着人工智能、企业存储等新型应用的兴起,数据中心网络对低延时特性的需求也越来越迫切。而如何对数据中心网络进行拥塞控制,从而以保证数据中心网络的低延时特性是一个非常重要的问题。
传统的拥塞控制方法主要是由接收端向发送端反馈网络的拥塞信息,发送端在获知网络的拥塞信息之后,再根据拥塞信息对发送数据的速率进行调整。例如,当网络拥塞时,发送端会降低数据包的发送速率,当网络不拥塞时,发送端会逐步提高数据包的发送速率。
在上述方案中,发送端在得知网络的拥塞状态之后会逐步调整数据包的发送速率,速率的改变比较缓慢,可能会对数据包的传输过程中产生一定的延时,导致拥塞控制的效率不高。
发明内容
本申请提供一种拥塞控制方法和网络设备,能够更好地进行拥塞控制,进而减少网络丢包。
第一方面,提供了一种拥塞控制方法,所述方法应用于数据中心网络,所述数据中心网络包括第一网络设备和第二网络设备,所述第一网络设备用于向第二网络设备发送数据流,该方法包括:所述第一网络设备接收所述第二网络设备发送的第一消息,所述第一消息携带活跃流数目,所述活跃流数目是所述第二网络设备根据接收到的、来自所述第一网络设备的数据包所归属的数据流确定的数目;所述第一网络设备根据所述活跃流数目和所述第二网络设备的额定接收带宽,确定向所述第二网络设备发送所述数据流的发包控制信息,其中,所述发包控制信息指示所述第一网络设备根据所述发包控制信息向所述第二网络设备发送所述数据流时,所述第二网络设备的实际接收带宽达到所述额定接收带宽;所述第一网络设备根据所述发包控制信息向所述第二网络设备发送所述数据流。
上述活跃流数目可以是指在一定的统计周期内,正在传输数据包的数据流的数目,具体地,上述活跃流数目可以是第二网络设备根据一个统计周期内接收到的来自第一网络设备的数据包所归属的数据流确定的数据流的数目。
可选地,第一网络设备根据发包控制信息向第二网络设备发送的数据流的封装为基于融合以太的远程内存直接访问协议版本2(remote direct memory access over converged ethernet version 2,RoCEv2)报文。
可选地,上述第一消息携带在确认(Acknowledgement,ACK)报文中的option字段中。
应理解,第一网络设备根据发包控制信息向第二网络设备发送的数据流可以是一个数据流(此时,该数据流可以是第一网络设备向第二网络设备发送的所有数据流中的任意一个数据流),也可以是多个数据流(该多个数据流可以是第一网络设备向第二网络设备发送的所有的数据流)。
上述发包控制信息用于控制第一网络设备向第二网络设备发送数据流,并且,当第一 网络设备按照该发包控制信息向第二网络设备发送数据流时,第二网络设备的实际带宽能够达到第二网络设备的额定接收带宽。
第二网络设备的额定接收带宽可以是一个固定的带宽,在对第一网络设备进行配置时,可以直接将第二网络设备的额定接收带宽等信息配置给第一网络设备,使得第一网络设备能够从配置信息中获取第二网络设备的额定接收带宽。
本申请中,通过活跃流数目和第二网路设备的额定接收带宽来确定发包控制信息,并根据该发包控制信息对第一网络设备向第二网络设备发送数据流进行控制,能够更好地进行拥塞控制,从而减少网络丢包。
结合第一方面,在第一方面的某些实现方式中,所述第一网络设备根据所述活跃流数目和所述第二网络设备的额定接收带宽,确定向所述第二网络设备发送数据流的发包控制信息,包括:当所述活跃流数目小于第一阈值时,所述第一网络设备根据下列公式确定向所述第二网络设备发送所述数据流的发包控制信息;
Figure PCTCN2019094171-appb-000001
其中,C为所述第二网路设备的额定接收带宽,active_qp为所述活跃流数目,T是在网络空载的情况下,第一网络设备向所述第二网络设备发送的一个数据包达到所述第二网络设备所需的时间,V为T内所述第一网络设备向所述第二网络设备发送的所述数据流的数据量;所述第一网络设备根据所述发包控制信息向所述第二网络设备发送所述数据流,包括:所述第一网络设备在T内向所述第二网络设备发送的所述数据流中的数据包的数据量为V。
上述数据量(data volume)可以是数据流中的数据包的长度。例如,数据流1中包含数据包1、数据包2和数据包3,其中,每个数据包的长度为4个字节,那么,数据流1的长度为12个字节。
在获得上述T的获取方式有很多,下面对这些获取方式举例说明。
例如,可以在网络空载情况下,记录第一网络设备向第二网络设备发送的一个数据包的发送时间和到达时间,然后通过对到达时间和发送时间做差得到T。
另外,还可以在网络空载情况下,第一网络设备连续向第二网络设备发送多个数据包(例如,1000个数据包),然后通过记录的时间得到每个数据包到从第一网络设备发送到第二网络设备接收所需要的时间,接下来对这些时间进行平均,得到这些时间的平均值,最后将得到的平均值确定为T。
上述第一阈值可以根据经验来设置,例如,对于数据量较大的场景下,可以设置一个较大的数值作为第一阈值,而对于数据量较小的场景下,可以设置一个较小的数值作为第一阈值。
上述第一阈值还可以根据第二网络设备的额定接收带宽、T以及单个数据包的长度来确定。
具体地,可以将C*T/1pkt得到的数值确定为上述第一阈值。
其中,1pkt表示单个数据包的长度。1pkt的具体长度可以根据实际情况来设置,在不同的场景下,1pkt可以设置成不同的长度,例如,在某些数据传输量较小的场景下(例如,智能电表定期上报电量信息)可以为1pkt设置一个较小的长度,而在数据传输量较大的场景下,可以为1pkt设置一个较大的长度。另外,1pkt也可以直接设置为网络允许的最大传输单元(maximum transmission unit,MTU)。
结合第一方面,在第一方面的某些实现方式中,所述第一网络设备根据所述活跃流数目和所述第二网络设备的额定接收带宽,确定向所述第二网络设备发送数据流的发包控制信息,包括:当所述活跃流数目大于或者等于第一阈值时,所述第一网络设备根据下列公式确定向所述第二网络设备发送所述数据流的发包控制信息;
Figure PCTCN2019094171-appb-000002
其中,1pkt为单个数据包的长度,active_qp为所述活跃流数目,C为所述第二网路设备的额定接收带宽,interval为所述第一网络设备发送所述数据流时相邻数据包之间的时间间隔;所述第一网络设备根据所述发包控制信息向所述第二网络设备发送所述数据流,包括:所述第一网络设备以interval的时间间隔向所述第二网络设备发送所述数据流中的数据包。
上述单个数据包的长度具体可以是单个数据包的数量大小,例如,单个数据包的数据量大小为3字节,那么,单个数据包的长度也是3字节。
结合第一方面,在第一方面的某些实现方式中,所述第一网络设备根据所述活跃流数目和所述第二网络设备的额定接收带宽,确定向所述第二网络设备发送数据流的发包控制信息,包括:所述第一网络设备根据所述活跃流的数目、所述第二网络设备的额定接收带宽以及所述数据流的属性信息,确定向所述第二网络设备发送所述数据流的发包控制信息;其中,所述数据流的属性信息包括所述数据流的应用信息和所述数据流的数据量信息中的至少一种,所述数据流的应用信息用于指示所述数据流的数据包所属的业务类型,所述数据流的数据量信息用于指示所述第一网络设备在预设时间内发送的属于第一数据流的数据包的数据量。
本申请中,在确定数据流的发包控制信息时,能够根据数据流的属性信息为数据流合理确定发包控制信息。
结合第一方面,在第一方面的某些实现方式中,所述第一网络设备根据所述活跃流数目、所述第二网络设备的额定接收带宽以及所述数据流的属性信息,确定向所述第二网络设备发送所述数据流的发包控制信息,包括:当所述活跃流数目小于第一阈值时,所述第一网络设备根据下列公式确定向所述第二网络设备发送所述数据流的发包控制信息;
Figure PCTCN2019094171-appb-000003
其中,C为所述第二网路设备的额定接收带宽,active_qp为所述活跃流数目,T为在网络空载的情况下,所述第一网络设备向所述第二网络设备发送的一个数据包达到所述第二网络设备所需的时间,w为所述数据流的权重,w是根据所述数据流的属性信息确定的,V为T内所述第一网络设备向所述第二网络设备发送的所述数据流的数据量;所述第一网络设备根据所述发包控制信息向所述第二网络设备发送所述数据流,包括:所述第一网络设备在T内向所述第二网络设备发送的所述数据流中的数据包的数据量为V。
本申请中,在确定数据流的数据传输量时,能够根据数据流属性信息为数据流合理确定数据传输量。
结合第一方面,在第一方面的某些实现方式中,所述第一网络设备根据所述活跃流数目、所述第二网络设备的额定接收带宽以及所述数据流的属性信息,确定向所述第二网络设备发送所述数据流的发包控制信息,包括:当所述活跃流数目大于或者等于第一阈值时,所述第一网络设备根据下列公式确定向所述第二网络设备发送所述数据流的发包控制信息;
Figure PCTCN2019094171-appb-000004
其中,1pkt为单个数据包的长度,active_qp为所述活跃流数目,w为所述数据流的权重,w是根据所述数据流的属性信息确定的,C为所述第二网路设备的额定接收带宽,interval为所述第一网络设备发送所述数据流时相邻数据包之间的时间间隔;所述第一网络设备根据所述发包控制信息向所述第二网络设备发送所述数据流,包括:所述第一网络设备以interval的时间间隔向所述第二网络设备发送所述数据流中的数据包。
本申请中,在确定数据流的数据包传输时间间隔时,能够根据数据流属性信息为数据流合理确定数据包的传输时间间隔。
第二方面,提供了一种拥塞控制方法,所述方法应用于数据中心网络,所述数据中心网络包括第一网络设备和第二网络设备,所述第二网络设备用于接收所述第一网络设备发送的数据流,该方法包括:所述第二网络设备根据接收到的、来自所述第一网络设备的数据包所归属的数据流确定活跃流数目;所述第二网络设备向所述第一网络设备发送第一消息,所述第一消息携带所述活跃流数目,所述活跃流数目用于所述第一网络确定向所述第二网络设备发送数据流的发包控制信息,所述发包控制信息指示所述第一网络设备根据所述发包控制信息向所述第二网络设备发送所述数据流时,所述第二网络设备的实际接收带宽达到所述第二网络设备的额定接收带宽;所述第二网络设备按照所述额定接收带宽接收所述第一网络设备发送的所述数据流。
本申请中,第二网络设备通过向第一网络设备上报活跃流数目,使得第一网络设备能够通过活跃流数目和第二网路设备的额定接收带宽来确定发包控制信息,并根据该发包控制信息对第一网络设备向第二网络设备发送数据流进行控制,使得第二网络设备能够以额定接收带宽接收第一网络设备发送的数据流,从而达到满吞吐状态,能够提高数据流的传输效率。
结合第二方面,在第二方面的某些实现方式中,所述第二网络设备根据接收到的、来自所述第一网络设备的数据包所归属的数据流确定活跃流数目,包括:所述第二网络设备接收所述第一网络设备发送的第一组数据包的首包,并将当前活跃流数目加1,以得到第一活跃流数目;所述第二网络设备接收所述第一网络设备发送的所述第一组数据包的尾包,并根据所述第一组数据包中携带外部拥塞通知ECN标识的数据包的数量确定第一拥塞值;当所述第一拥塞值小于拥塞阈值时,所述第二网络设备将所述第一活跃流数目减1,以得到第二活跃流数目;当所述第一拥塞值大于或者等于所述拥塞阈值时,所述第二网络设备保持所述第一活跃流数目不变。
可选地,上述第一拥塞值用于指示第二网络设备接收到第一网络设备发送的数据包的第一网络的拥塞程度。
应理解,上述第一拥塞值越大,第一网络的拥塞程度越严重。
上述拥塞阈值可以是预先设置好的一个阈值,该拥塞阈值具体可以是根据网络状态估计的一个阈值。对于宽带利用率较低的场景,可以设置一下较小的拥塞阈值,而对于宽带利用率较高的场景,可以设置一个较大的拥塞阈值。
例如,在宽带利用率较低的场景下,拥塞阈值具体可以是0.3、0.4或者0.5等等,而在宽带利用率较高的场景下,拥塞阈值具体可以是0.6、0.7或者0.8等等。
应理解,在接收到第一组数据包的首包时需要将当前活跃流数目加1,以得到第一活 跃流数目。这里的当前活跃流数目是指第二网络设备在接收到第一组数据包的首包之前统计得到的活跃流的数目,在接收到第一组数据包的首包时需要更新活跃流的数目,也就是将接收到第一组数据包的首包之前统计得到的活跃流的数目加1。
而在接收到第一组数据包的尾包之后,第二网络设备需要根据第一组数据包中携带ECN标识的数据包的数量对第一活跃流数目进行再次更新,如果第一拥塞值小于拥塞阈值,那么,在接收到第一组数据包的尾包后第一网络设备统计得到的活跃流的数目为第二活跃流数目;如果第一拥塞值小于拥塞阈值,那么,在接收到第一组数据包的尾包后第一网络设备统计得到的活跃流的数目为第一活跃流数目。也就是说,在接收到第一组数据包的尾包后,统计得到的活跃流数目为第一活跃流数目(第一拥塞值大于或者等于拥塞阈值时)或者第二活跃流数目(第一拥塞值小于拥塞阈值时)。
上述ECN标识可以是第一网络设备和第二网络设备之间的其它网络设备(具体可以是交换设备)在接收到数据包时添加的一个拥塞标识。
可选地,每个数据包还可以在某个字段中携带一个标识,该标识的取值用于指示该数据包的类型(具体是首包、尾包还是首包与尾包之间的数据包)。
上述每个数据包还可以视为一个报文,每个数据包的标识可以携带在报文的某个字段中。例如,当数据包为基于融合以太的远程内存直接访问协议版本2(remote direct memory access over converged ethernet version 2,RoCEv2)报文时,数据包的标识可以携带在RoCEv2报文中的opcode字段中,或者,数据包的标识还可以携带的RoCEv2报文中的保留字段(例如,rsvd7字段)中。
本申请中,在接收到一组数据包的尾包时,可以根据该组数据包中携带ECN标识的数据包的个数来确定拥塞情况,进而可以根据拥塞情况对活跃流数目进行修正,能够对活跃流数目进行更精准的统计,进而得到更准确的活跃流数目。
具体地,传统方案在统计活跃流数目时并未考虑到网络拥塞情况,事实上,传统方案在进行活跃流数目统计是基于网络不出现拥塞的理想情况对活跃流进行统计的,当网络出现拥塞时会影响接收端在一段时间内接收到的数据包的数目,进而导致活跃流的数目统计不准。本申请中通过对每组数据包中携带ECN标识的数据包进行统计,能够实现对网络拥塞的估计,当网络拥塞程度较轻时,可以将活跃流数目减1,而当网络拥塞程度比较严重时可以保持活跃流数目不变,能够减少由于网络拥塞对活跃流数目统计的影响,能够实现更准确的统计。
结合第二方面,在第二方面的某些实现方式中,所述根据所述第一组数据包中携带ECN标识的数据包的数量确定第一拥塞值,包括:将所述第一组数据包携带有ECN标识的数据包的数量与所述第一组数据包的数据包数量的比值确定为所述第一拥塞值。
可选地,将所述第一组数据包携带有ECN标识的数据包的数量与所述第一组数据包的数据包数量的比值确定为所述第一拥塞值,包括:将所述第一组数据包携带有ECN标识的数据包的总数量与所述第一组数据包的数据包总数量的比值确定为所述第一拥塞值。
例如,第一组数据包共包含10个数据包(包括首包和尾包),其中,携带ECN标识的数据包共有5个,那么,可以计算出第一拥塞阈值为0.5。
另外,也可以先得到第一组数据包中携带有ECN标识的数据包的总数量与所述第一组数据包的数据包总数量的比值,然后再将该比值与一个修正系数的乘积作为第一拥塞阈值。该修正系数可以是根据网络的运行情况设置的一个系数。
本申请中,根据第一组数据包中携带ECN标识的数据包来确定第一拥塞值,能够实时的反映当前的拥塞情况,进而可以根据当前拥塞情况对活跃流数目作出较为准确的统计。
结合第二方面,在第二方面的某些实现方式中,在所述第二网络设备接收到所述第一网络设备发送的所述第一组数据包的尾包之后,所述方法还包括:所述第二网络设备接收所述第一网络设备发送的第二组数据包的首包,并将第三活跃流数目加1,以得到第四活跃流数目,其中,所述第二组数据包与所述第一组数据包属于同一个数据流,当所述第一拥塞值小于所述拥塞阈值时,所述第三活跃流数目等于所述第二活跃流数目,当所述第一拥塞值大于或者等于所述拥塞阈值时,所述第三活跃流数目等于所述第一活跃流数目;所述第二网络设备接收所述第一网络设备发送的所述第二组数据包的尾包,并根据所述第二组数据包中携带ECN标识的数据包的数量和所述第一拥塞值,确定所述网络的第二拥塞值;当所述第二拥塞值小于所述拥塞阈值时,所述第二网络设备将所述第四活跃流数目减1,以得到第五活跃流数目;当所述第二拥塞值大于或者等于所述拥塞阈值时,所述第二网络设备保持所述第四活跃流数目不变。
可选地,将所述第一组数据包携带有ECN标识的数据包的数量与所述第一组数据包的数据包数量的比值确定为所述第一拥塞值,包括:将所述第一组数据包携带有ECN标识的数据包的总数量与所述第一组数据包的数据包总数量的比值确定为所述第一拥塞值。
应理解,上述第一组数据包中的首包、尾包以及首包和尾包之间的数据包均可能携带ECN标识。当第一组数据包中的每个数据包均携带ECN标识时,说明网络拥塞比较严重,当第一组数据包中的携带ECN标识的数据包较小时,说明网络拥塞程度较低(或者说网络比较畅通)。
当接收到第二组数据包的首包之后,可以按照接收到第一组数据包的首包的类似的方式进行处理,而在接收到第二数据包的尾包之后,通过综合第二组数据包中携带ECN标识的数据包以及上述第一拥塞值来综合确定第二拥塞值,能够使得第二拥塞值不至于变化过大,从而得到缓慢变化的拥塞值,使得统计得到的活跃流数目不会产生突变。
可选地,当第二网络设备接收到所述第一网络设备发送的所述第二组数据包的尾包之后,还可以根据第一组数据包中携带ECN标识的数据包的数量和第二组数据包中携带ECN标识的数据包的数量来综合确定第二拥塞值。
可选地,将第一组数据包和第二组数据包中携带ECN标识的数据包的总数量与第一组数据包和第二组数据包包含的数据包的总数量的比值确定为第二拥塞值。
结合第二方面,在第二方面的某些实现方式中,所述根据所述第二组数据包中携带ECN标识的数据包的数量和所述第一拥塞值,确定所述网络的第二拥塞值,包括:根据所述第二组数据包中携带的ECN标识的数据包的数量确定所述网络的第三拥塞值;根据公式con2=x1*con3+x2*con1确定所述第二拥塞值,其中,con3为所述第三拥塞值,con1为所述第一拥塞值,con2为所述第二拥塞值,x1为预设的第一权重值,x2为预设的第二权重值。
应理解,在第二方面所示的方法中,活跃流数目的统计既可以由接收端的网络设备上执行,也可以由位于发送端和接收端之间的交换机设备上执行,当在交换机设备上执行时,交换机设备可以将统计得到的活跃流数目反馈给接收端,然后再由接收端给发送端。
第三方面,提供了一种网络设备,所述网络设备包含用于执行第一方面的各种实现方式或者第二方面的各种实现方式中的方法的模块。
第四方面,提供了一种网络设备,所述网络设备包括存储器和处理器。其中,存储器 用于存储程序,处理器用于执行存储器存储的程序,当存储器存储的程序被处理器执行时,处理器用于执行第一方面的各种实现方式或者第二方面的各种实现方式中的方法。
可选地,上述网络设备还包括收发器,当存储器存储的程序被处理器执行时,处理器和收发器用于执行第一方面的各种实现方式或者第二方面的各种实现方式中的方法。
第五方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行第一方面的各种实现方式或者第二方面的各种实现方式中的方法。
第六方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行第一方面的各种实现方式或者第二方面的各种实现方式中的方法。
上述计算机具体可以是数据中心中的网络设备,例如,服务设备和传输设备等。
附图说明
图1是本申请实施例的一种可能的应用场景的示意图;
图2是本申请实施例的拥塞控制方法的示意性流程图;
图3是是本申请实施例的拥塞控制方法的示意性流程图;
图4是本申请实施例的拥塞控制方法的示意性流程图;
图5是是本申请实施例的拥塞控制方法的示意性流程图;
图6是本申请实施例的网络设备的示意性框图;
图7是本申请实施例的网络设备的示意性框图;
图8是本申请实施例的网络设备的示意性框图。
具体实施方式
图1是本申请实施例的一种可能的应用场景的示意图。
如图1所示,发送端1、发送端2和发送端3可以通过交换机1和交换机2向接收端1和接收端2发送数据流。接收端1和接收端2均可以通过交换机1和交换机2接收到发送端1至发送端3发送的数据流(交换机1和交换机2将发送端1至发送端3发送的数据流转发给接收端1和接收端2)。应理解,图1只是本申请实施例一种可能的应用场景的示意图,本申请实施例还可以应用到其他与图1类似的场景中。
以发送端1和接收端1为例,发送端1向接收端1发送的数据流可能在发送端1和接收端1之间产生拥塞,从而导致接收端1接收到的数据包的延时变大,影响网路性能。为了进行拥塞控制,传统方案中,传统方案中,接收端1会向发送端1反馈数据流的拥塞情况,当数据流出现拥塞时,发送端1会逐步降低数据流的发送速率,当数据流不拥塞时,发送端可以逐步提升数据包的发送速率。在传统方案中,发送端在得知网络的拥塞状态之后会逐步调整数据包的发送速率,速率的改变比较缓慢,并且是在获知了网络的拥塞状况之后进行的一种被动调节,拥塞控制的效果并不太好。
因此,本申请提出了一种新的拥塞控制方法,通过活跃流数目和接收端的额定接收带宽来主动调节数据流的发送速率,使得接收端的实际接收带宽能够达到额定接收带宽,使得接收端能够达到满吞吐状态,进而提高数据流的传输效率。
图2是本申请实施例的拥塞控制方法的示意性流程图。图2所示的方法可以应用于数据中心网络、城域网等网络中,第一网络设备和第二网络设备是这些网络中的设备。图2所示的方法包括步骤101至步骤103,下面对这些步骤进行详细的介绍。
101、第二网络设备向第一网络设备发送第一消息,第一网络设备接收该第一消息。
上述第一消息携带活跃流数目,该活跃流数目是第二网络设备根据接收到的、来自第一网络设备的数据包所归属的数据流确定的数目。
应理解,上述活跃流可以是第二网络设备自身对数据流的定义,对于第二网络设备来说,活跃流可以认为是传输数据包比较频繁的数据流,而非活跃流可以是传输数据包的时间间隔较长的数据流(例如,某个数据流很长时间才会传输一个数据包,这样的数据流可以认为是非活跃流)。因此,对于第二网络设备来说,第二网络设备接收到的数据流可以分成两种,即活跃流和非活跃流。
另外,上述活跃流数目可以是指在一定的统计周期内,正在传输数据包的数据流的数目,具体地,上述活跃流数目可以是第二网络设备根据一个统计周期内接收到的来自第一网络设备的数据包所归属的数据流确定的数据流的数目。
可选地,在步骤101之前,第一网络设备向第二网络设备发送数据流,第二网络设备接收第一网络设备发送的数据流。
第一网络设备在向第二网络设备发送数据流时,可按组向第二网络设备发送数据包,每组数据包包括首包核尾包,首包,尾包以及首包和尾包之间的数据包具有不同的标识,第二网络设备可以通过这些标志识别出一组数据包的首包和尾包,然后根据接收到的每组数据包的首包和尾包的情况对活跃流数目进行统计,以得到活跃流数目(具体统计活跃流的数目在下面图3所示的方法进行详细描述)。
应理解,当第一网络设备采用图1所示的拥塞控制方法对数据流的发送速率进行控制之前,可以按照初始速率向第二网络设备发送数据流。该初始速率可以按照以下两种方式来定义。
第一种方式:第一网络设备将第二网络设备的额定接收带宽确定为初始速率,并在t内以该额定接收带宽向第二网络设备发送数据流。
其中,t是从第一网络设备发送请求报文(该请求报文用于请求第二网络设备接收第一设备的发送数据流),到第一网络设备接收到第二网络设备发送的请求报文的响应报文的一段时间。
第二种方式:初始速率是基于融合以太的远程内存直接访问协议版本2(remote direct memory access over converged ethernet version 2,RoCEv2)定义的每流的初始发送速率。
具体地,作为一种可能的实现方式,初始速率可以是第一网络设备的线卡或者发送网板允许的最大的发送速率。
另外,每组数据包的首包和尾包也有两种定义方式,第一种定义方式是根据RoCEv2协议来定义,具体地,可以将数据报文按照消息(Message)来分组(该消息是应用层的逻辑分组),将消息的第一个报文视为首包,将消息的最后一个报文视为尾包,首包和尾包的具体可以定义在基于融合以太的远程内存直接访问(remote direct memory access over converged ethernet,RoCE)报文的基础传输头(Base Transport Header,BTH)的opcode字段中。
除了根据应用层的逻辑分组对数据报文的首包和尾包进行定义之外,还可以直接根据片或段(segment)对数据包的首包和尾包进行定义,具体地,可以将根据初始速率或者活跃流数目反馈的一个周期内对应的数据报文分成一组,将片或段中的第一个报文称为首包,将片或段的最后一个报文称为尾包,这两个字段可以定义在BTH头的保留字段(例如,rsvd7字段)中,每个字段的标记可以占用1bit。
可选地,上述第一消息中可以直接携带活跃流的具体数目,这样,第一网络设备可以直接根据第一消息获取活跃流数目。
102、第一网络设备根据活跃流数目和第二网络设备的额定接收带宽,确定向第二网络设备发送数据流的发包控制信息。
上述发包控制信息指示第一网络设备根据发包控制信息向所述第二网络设备发送数据流时,第二网络设备的实际接收带宽达到所述额定接收带宽。也就是说,上述发包控制信息用于控制第一网络设备向第二网络设备发送数据流,并且,当第一网络设备按照该发包控制信息向第二网络设备发送数据流时,第二网络设备的实际带宽能够达到第二网络设备的额定接收带宽。
第二网络设备的额定接收带宽可以是一个固定的带宽,在对第一网络设备进行配置时,可以直接将第二网络设备的额定接收带宽等信息配置给第一网络设备,使得第一网络设备能够从配置信息中获取第二网络设备的额定接收带宽。
103、第一网络设备根据发包控制信息向第二网络设备发送数据流,第二网络设备以额定接收带宽接收该数据流。
应理解,第一网络设备根据发包控制信息向第二网络设备发送的数据流可以是一个数据流(此时,该数据流可以是第一网络设备向第二网络设备发送的所有数据流中的任意一个数据流),也可以是多个数据流(该多个数据流可以是第一网络设备向第二网络设备发送的所有的数据流)。
本申请中,通过活跃流数目和第二网路设备的额定接收带宽来确定发包控制信息,并根据该发包控制信息对第一网络设备向第二网络设备发送数据流进行控制,使得第二网络设备能够达到满吞吐状态,可以提高数据流的传输效率。
在根据活跃流数目和第二网络设备的额定接收带宽确定发包控制信息时,可以根据活跃流数目的大小采用不同的方式来确定发包控制信息。
例如,当活跃流的数目较小时,网络对突发数据具有较强的容忍性,此时,可以仅控制数据流在一段时间内的最大数据发送量。而当活跃流的数目较多时,多流同步对网络的影响较大,为了避免突发的大量数据导致网络拥塞,这时可以控制网卡(该网卡位于接收端中,负责分配数据包包的发送周期)的分配周期,每周期单报文发送(也就是严格控制数据包之间的传输间隔,每个数据包的传输可以认为是一个周期)。
可选地,当活跃流数目小于第一阈值时,第一网络设备根据公式(1)确定向第二网络设备发送数据流的发包控制信息。
Figure PCTCN2019094171-appb-000005
在上述公式(1)中,C为第二网路设备的额定接收带宽,active_qp为活跃流数目,T为第一网络设备发送的数据流的数据包到达第二网络设备所需的时间,V为T内第一网络设备向第二网络设备发送的数据流的数据量。
经过上述公式(1)确定了发包控制信息,该发包控制信息具体指示第一网络设备在T内向第二网络设备发送的任意一个数据流中的数据包的数据流为V。应理解,该发包控制信息此时只指示了在T内的发送的数据流中的数据包的数据量,但是对数据包之间的时间间隔并未限定,只要在T内在数据流中数据包的数据量达到V即可。
在根据上述公式(1)得到发包控制信息之后,第一网络设备根据发包控制信息向第 二网络设备发送数据流,包括:第一网络设备在T内向第二网络设备发送的数据流中的数据包的数据量为V。
上述数据量(data volume)可以是数据流中的数据包的长度。例如,数据流1中包含数据包1、数据包2和数据包3,其中,每个数据包的长度为4个字节,那么,数据流1的长度为12个字节。
上述T可以是预先设置好的,T具体可以在网络空载时按照某个速率发送数据包时,该数据到达到接收端所需要的时间。
或者,上述T具体也可以是往返时延(round-trip time,RTT),RTT表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认),总共经历的时延,RTT可以是在网络设备初始化时,在网络空载情况下通过测量静态时延得到的。
本申请中,当活跃流数目较小时,网络对突发数据有较强的容忍性,可以只控制数据流在一段时间内的最大数据发送量,能够简化控值数据流发送的操作。
可选地,当活跃流数目小于或者等于第一阈值时,第一网络设备根据公式(2)确定向第二网络设备发送数据流的发包控制信息。
Figure PCTCN2019094171-appb-000006
在上述公式(2)中,1pkt为单个数据包的长度,active_qp为活跃流数目,C为第二网路设备的额定接收带宽,interval为第一网络设备发送数据流时相邻数据包之间的时间间隔。
经过上述公式(2)确定了发包控制信息,该发包控制信息具体指示第一网络设备发送每个数据流时要使得数据包之间的传输时间间隔达到interval。
在根据上述公式(2)得到发包控制信息之后,第一网络设备根据发包控制信息向第二网络设备发送数据流,包括:第一网络设备以interval的时间间隔向第二网络设备发送数据流中的数据包。
上述单个数据包的长度具体可以是单个数据包的数量大小,例如,单个数据包的数据量大小为3字节,那么,单个数据包的长度也是3字节。
上述公式(2)的推导过程如下:
为每个数据流评分带宽,得到每个数据流的发送速率为
Figure PCTCN2019094171-appb-000007
而发送端发送的每个数据流的发送速率为
Figure PCTCN2019094171-appb-000008
为了使得接收端达到满吞吐状态,可以得到公式(3),对公式(3)进行变形可以得到上述公式(2)。
Figure PCTCN2019094171-appb-000009
本申请中,当活跃流数目较多时,多流同步对网络来说是一个很大的负担,通过合理设置数据包之间的传输时间间隔,能够避免多流同步对网络造成的冲击,避免网络拥塞。
在根据活跃流数目和第二网络设备的额定接收带宽确定发包控制信息时,除了采用上述公式(1)或者公式(2)确定每个数据流的发包控制信息(这种情况下,每个数据流的发包控制信息的确定方式相同)之外,还可以针对数据流的具体情况(例如,优先级等等)来确定数据流的发包控制信息,在这种情况下,不同的数据流得到的发包控制信息可能不同。下面对这种确定数据流的发包控制信息的方式进行详细的描述。
可选地,第一网络设备根据活跃流数目和第二网络设备的额定接收带宽,确定向第二网络设备发送数据流的发包控制信息,包括:第一网络设备根据活跃流的数目、第二网络设备的额定接收带宽以及数据流的属性信息,确定向第二网络设备发送数据流的发包控制信息。
其中,数据流的属性信息包括数据流的应用信息和数据流的数据量信息中的至少一种,数据流的应用信息用于指示数据流的数据包所属的业务类型,数据流的数据量信息用于指示第一网络设备在预设时间内发送的属于第一数据流的数据包的数据量。
上述数据流的应用信息具体可以指示数据流的数据包所属的业务类型(例如,音频,视频等等),以及该业务类型对应的优先级等等。
本申请中,在确定数据流的发包控制信息时,能够根据数据流的属性信息为数据流合理确定发包控制信息。
可选地,当活跃流数目小于第一阈值时,第一网络设备根据公式(4)确定向第二网络设备发送数据流的发包控制信息。
Figure PCTCN2019094171-appb-000010
在上述公式(4)中,C为第二网路设备的额定接收带宽,active_qp为活跃流数目,T为第一网络设备发送的数据流的数据包到达第二网络设备所需的时间,w为数据流的权重,w是根据数据流的属性信息确定的,V为T内第一网络设备向第二网络设备发送的数据流的数据量。
在根据上述公式(4)得到发包控制信息之后,第一网络设备根据发包控制信息向第二网络设备发送数据流,包括:第一网络设备在T内向第二网络设备发送的数据流中的数据包的数据量为V。
应理解,上述w可以根据数据流属性信息中的数据流的应用信息和/或数据流的数据量信息来确定。
可选地,在上述公式(4)中,w的取值与数据流的应用信息指示的业务类型的重要程度呈正相关的关系。
具体地,在上述公式(4)中数据流的应用信息指示的业务类型的重要程度越高,w的取值也越高。
可选地,在上述公式(4)中上述w的取值与数据流的应用信息指示的业务的优先级的高低呈正相关的关系。例如,数据流的应用信息指示的业务的优先级越高,w的取值也越高。
可选地,在上述公式(4)中,上述w的取值与数据流的数据量信息指示的数据量的大小为反相关关系。具体地,数据流的数据量信息指示的数据量越大,w的取值越小。
本申请中,在确定数据流的数据传输量时,能够根据数据流属性信息为数据流合理确定数据传输量。
可选地,当活跃流数目大于或者等于第一阈值时,第一网络设备根据公式(5)确定向第二网络设备发送数据流的发包控制信息。
Figure PCTCN2019094171-appb-000011
在上述公式(5)中,1pkt为单个数据包的长度,active_qp为活跃流数目,w为数据流的权重,w是根据数据流的属性信息确定的,C为第二网路设备的额定接收带宽,interval 为第一网络设备发送数据流时相邻数据包之间的时间间隔.
在根据上述公式(5)得到发包控制信息之后,第一网络设备根据发包控制信息向第二网络设备发送数据流,包括:第一网络设备以interval的时间间隔向第二网络设备发送数据流中的数据包。
可选地,在上述公式(5)中,w的取值与数据流的应用信息指示的业务类型的重要程度呈反相关的关系。
具体地,在上述公式(5)中,数据流的应用信息指示的业务类型的重要程度越高,w的取值越小。
可选地,上述公式(5)中w的取值与数据流的应用信息指示的业务的优先级的高低呈反相关的关系。
例如,数据流的应用信息指示的业务的优先级越高,w的取值越小。
可选地,在上述公式(5)中,上述w的取值与数据流的数据量信息指示的数据量的大小为正相关关系。具体地,数据流的数据量信息指示的数据量越大,w的取值越大。
本申请中,在确定数据流的数据包传输时间间隔时,能够根据数据流属性信息为数据流合理确定数据包的传输时间间隔。
可选地,当上述w是根据数据流属性信息中的数据流的应用信息确定时,w=w1,w1的取值与数据流的应用信息指示的业务类型的重要程度呈正相关的关系。例如,数据流的应用信息指示的业务类型的重要程度越高,w1的取值也越高。此时,公式(4)可以变形为公式(6),这种情况下,可以直接根据公式(6)确定向第二网络设备发送数据流的发包控制信息。
Figure PCTCN2019094171-appb-000012
在上述公式(6)中,w1是根据数据流属性信息中的数据流的应用信息确定的,其它参数的含义与公式(4)中的含义相同。
可选地,当上述w是数据流的数据量信息来确定时,w=w2,w2的取值与数据流的数据量信息指示的数据量的大小为反相关关系。例如,数据流的数据量信息指示的数据量越大,w2的取值越小。此时,公式(4)可以变形为公式(7),这种情况下,可以直接根据公式(7)确定向第二网络设备发送数据流的发包控制信息。
Figure PCTCN2019094171-appb-000013
在上述公式(7)中,w2是根据数据流的数据量信息来确定的,其它参数的含义与公式(4)中的含义相同。
可选地,上述w可以根据数据流属性信息中的数据流的应用信息和数据流的数据量信息来确定时,w=w1*w2,其中,w1的取值与数据流的应用信息指示的业务类型的重要程度呈正相关的关系,w2的取值与数据流的数据量信息指示的数据量的大小为反相关关系。此时,公式(4)可以变形为公式(8),这种情况下,可以直接根据公式(8)确定向第二网络设备发送数据流的发包控制信息。
Figure PCTCN2019094171-appb-000014
在上述公式(8)中,w1是根据数据流属性信息中的数据流的应用信息确定的,w2是根据数据流的数据量信息来确定的,其它参数的含义与公式(3)中的含义相同。
上文结合图2从发送端(第一网络设备)的角度对本申请实施例的拥塞控制方法进行了详细的描述,下面结合图3从接收端(第二网络设备)的角度对本申请实施例的拥塞控制方法进行详细的描述。
图3是是本申请实施例的拥塞控制方法的示意性流程图。图3所示的方法也可以应用于数据中心网络、城域网等网络中,第一网络设备和第二网络设备是这些网络中的设备。图3所示的方法包括步骤201至步骤203,下面对这些步骤进行详细的介绍。
201、第二网络设备根据接收到的、来自第一网络设备的数据包所归属的数据流确定活跃流数目。
202、第二网络设备向第一网络设备发送第一消息,第一消息携带活跃流数目。
上述活跃流数目用于第一网络确定向第二网络设备发送数据流的发包控制信息,发包控制信息指示第一网络设备根据发包控制信息向第二网络设备发送数据流时,第二网络设备的实际接收带宽达到第二网络设备的额定接收带宽。
203、第二网络设备按照额定接收带宽接收第一网络设备发送的数据流。
应理解,上述图2所示的方法中的步骤101至步骤103与图3所示的方法中的步骤201至203是相对应的,上文中对步骤101至步骤103的相关限定和解释也适用于步骤201至步骤203,为避免重复这里不再详细描述。
本申请中,第二网络设备通过向第一网络设备上报活跃流数目,使得第一网络设备能够通过活跃流数目和第二网路设备的额定接收带宽来确定发包控制信息,并根据该发包控制信息对第一网络设备向第二网络设备发送数据流进行控制,使得第二网络设备能够以额定接收带宽接收第一网络设备发送的数据流,从而达到满吞吐状态,能够提高数据流的传输效率。
可选地,作为一个实施例,第二网络设备根据接收到的、来自第一网络设备的数据包所归属的数据流确定活跃流数目,包括:第二网络设备接收第一网络设备发送的第一组数据包的首包,并将当前活跃流数目加1,以得到第一活跃流数目;第二网络设备接收第一网络设备发送的第一组数据包的尾包,并根据第一组数据包中携带外部拥塞通知ECN标识的数据包的数量确定第一拥塞值;当第一拥塞值小于拥塞阈值时,第二网络设备将第一活跃流数目减1,以得到第二活跃流数目;当第一拥塞值大于或者等于拥塞阈值时,第二网络设备保持第一活跃流数目不变。
下面结合图4和图5对第二网络设备根据接收到的、来自第一网络设备的数据包所归属的数据流确定活跃流数目进行详细的说明。
图4是本申请实施例的统计活跃流数的流程图。图4中的第二网络设备相当于图1中的接收端1或者接收端2,用于接收数据流,图4中的第一网络设备相当于图1中的发送端(发送端1或者发送端2或者发送端3),用于发送数据流。图4所示的过程至少可以包括步骤301至步骤304,进一步地,图4所示的过程还可以包括步骤305至步骤308,下面对这些步骤进行详细的介绍。
301、第二网络设备接收第一组数据包的首包。
本申请中,每组数据包包含一定数量的数据包,每组数据包包含首包和尾包,第二网络设备在接收到数据包之后可以通过识别该数据包是否携带首包标识和尾包标识来识别该数据包是否为首包或者尾包。
其中,首包标识和尾包标识的定义方式有两种,下面对这两种定义方式进行介绍。
第一种方式:
当本申请应用在RoCEv2场景下时,可以根据RoCEv2协议定义,将数据包按照消息(message)来分组。具体地,可以将数据包按照消息(Message)来分组(该消息是应用层的逻辑分组),将消息的第一个报文视为首包,将消息的最后一个报文视为尾包,首包和尾包的具体可以定义在RoCEv2报文的基础传输头(Base Transport Header,BTH)的opcode字段中。
第二种方式:
可以根据片或段(segment)对数据包进行分组,具体地,可以将根据初始速率或者活跃流数目反馈的一个周期内对应的数据包分成一组,将片或段中的第一个报文称为首包,将片或段的最后一个报文称为尾包,这两个字段可以定义在BTH头的保留字段(例如,rsvd7字段)中,每个字段的标记可以占用1bit。
302、第二网络设备将当前活跃流数目加1,得到第一活跃流数目。
步骤302中的当前活跃流数目是指第二网络设备在接收到第一组数据包的首包之前统计得到的活跃流的数目,在接收到第一组数据包的首包时需要更新活跃流的数目,也就是将接收到第一组数据包的首包之前统计得到的活跃流的数目加1。
303、第二网络设备接收第一组数据包的尾包。
应理解,上述第一组数据包的首包可以是第二网络设备接收到的第一组数据包中的第一个数据包,第一组数据包的尾包可以是第二网络设备接收到的第一组数据包中的最后一个数据包。每组数据包的数据包组成数量可以是预先设置好的。
另外,每个数据包可以在某个字段中携带一个标识,该标识的取值用于指示该数据包的类型(具体是首包、尾包还是首包与尾包之间的数据包)。
可选地,每个数据包还包括数据包标识,该数据包标识用于指示数据包的类型。具体地,该标识的取值可以用于指示该数据包是一组数据包的首包、尾包或者位于首包和尾包之间的数据包。
具体地,上述数据包标识可以携带在报文的报文头或者报文的有效载荷(payload)中,或者,上述数据包标识还可以携带在报文之外的字段中,携带该数据包标识的字段与报文一起传输,使得第一网络设备能够根据该字段识别数据包的类型。
例如,在基于融合以太的远程内存直接访问协议版本2(remote direct memory access over converged ethernet version 2,RoCEv2)的场景下,数据包标识可以携带在RoCEv2报文中的opcode字段中,或者,数据包标识还可以携带的RoCEv2报文中的保留字段(例如,rsvd7字段)中。
应理解,上述第一组数据包中的数据包均属于同一个数据流。
304、第二网络设备根据第一组数据包中携带外部拥塞通知ECN标识的数据包的数量确定第一拥塞值,并根据第一拥塞值域拥塞阈值的关系对活跃流数目进行更新。
可选地,在步骤304中,需要根据第一组数据包中携带ECN标识的数据包的数量对第一活跃流数目进行再次更新,如果第一拥塞值小于拥塞阈值,那么,在接收到第一组数据包的尾包后第二网络设备统计得到的活跃流的数目为第二活跃流数目;如果第一拥塞值小于拥塞阈值,那么,在接收到第一组数据包的尾包后第二网络设备统计得到的活跃流的数目为第一活跃流数目。也就是说,在接收到第一组数据包的尾包后,统计得到的活跃流数目为第一活跃流数目(第一拥塞值大于或者等于拥塞阈值时)或者第二活跃流数目(第一 拥塞值小于拥塞阈值时)。
本申请中,在接收到一组数据包的尾包时,可以根据该组数据包中携带ECN标识的数据包的个数来确定拥塞情况,进而可以根据拥塞情况对活跃流数目进行修正,能够对活跃流数目进行更精准的统计,进而得到更准确的活跃流数目。
具体而言,传统方案在统计活跃流数目时并未考虑到网络拥塞情况,事实上,传统方案在进行活跃流数目统计是基于网络不出现拥塞的理想情况对活跃流进行统计的,当网络出现拥塞时会影响接收端在一段时间内接收到的数据包的数目,进而导致活跃流的数目统计不准。本申请中通过对每组数据包中携带ECN标识的数据包进行统计,能够实现对网络拥塞的估计,当网络拥塞程度较轻时,可以将活跃流数目减1,而当网络拥塞程度比较严重时可以保持活跃流数目不变,能够减少由于网络拥塞对活跃流数目统计的影响,能够实现更准确的统计。
可选地,作为一个是实施例,根据第一组数据包中携带ECN标识的数据包的数量确定第一拥塞值,包括:将第一组数据包携带有ECN标识的数据包的数量与第一组数据包的数据包数量的比值确定为第一拥塞值。
具体地,可以将第一组数据包携带有ECN标识的数据包的总数量与所述第一组数据包的数据包数量的比值确定为第一拥塞值。
例如,第一组数据包共包含10个数据包(包括首包和尾包),其中,携带ECN标识的数据包共有5个,那么,可以计算出第一拥塞值为0.5。
另外,还可以先得到第一组数据包中携带有ECN标识的数据包的总数量与所述第一组数据包的数据包总数量的比值,然后再将该比值与一个修正系数的乘积作为第一拥塞值。该修正系数可以是根据网络的运行情况设置的一个系数。
例如,第一组数据包共包含10个数据包(包括首包和尾包),其中,携带ECN标识的数据包共有8个,那么,可以计算出携带有ECN标识的数据包的总数量与数据包的总数量的比值为0.8,假设修正系数为0.8,那么,该比值与修正系数的乘积0.64就是第一拥塞值。
可选地,在上述步骤302之前,图4所示的过程还包括:确定第一组数据包所在的数据流为第一数据流,其中,第一数据流为第一网络设备在预设时间内接收的数据包的数量大于预设数量的数据流。
上述第一数据流可以认为是大数据流,本申请中,通过仅对第一数据流进行活跃流数目的统计(大数据流适合采用本申请方案进行活跃流数目统计),使得本申请的统计活跃流数目的方案更有针对性。
具体地,由于小数据流中的数据包的数量较少,当网络发生拥塞时,小数据流受到的影响较小,而大数据流中的数据包的数量较多,当网络发生拥塞时,受到的影响较大。因此,对于小数据流,不统计活跃流(也就是说,对于小数据流来说即便是能够接收到数据包,也不将其视为活跃流),而对于大数据流,可以采用本申请的方案进行活跃流数目的统计。
上述步骤301至304仅示出了对根据一组数据包对活跃流数目进行统计的情况,事实上,本申请实施例的活跃流数目统计方法还可以根据多组数据包对活跃流数目进行统计。
可选地,在图4所示的过程中,当第二网络设备通过步骤301至步骤304实现了对第一组数据包的接收以及活跃流数目的更新后,还可以继续接收第二组数据包,并根据第二组数据包的接收情况对活跃流数目再次更新。
305、第二网络设备接收第二组数据包的首包。
应理解,第二组数据包和第一组数据包属于同一数据流,第二组数据包可以是第二网络设备在接收到第一组数据包之后接收到的一组数据包,具体地,第二组数据包和第一组数据包可以是数据流中连续的两组数据包(也就是说,第二组数据包是第二网络设备在接收到第一组数据包之后紧接着又接收到的下一组数据包)。
306、第二网络设备将当前活跃流数目加1,得到第四活跃流数目。
307、第二网络设备接收第二组数据包的尾包。
上述步骤305至步骤307与上文中的步骤301至步骤303的具体过程类似,这里不再赘述。
308、第二网络设备根据第二组数据包中携带外部拥塞通知ECN标识的数据包的数量确定第二拥塞值,并根据第二拥塞值域拥塞阈值的关系对活跃流数目进行更新。
当接收到第二组数据包的首包之后,可以按照接收到第一组数据包的首包的类似的方式进行处理,而在接收到第二数据包的尾包之后,通过综合第二组数据包中携带ECN标识的数据包以及上述第一拥塞值来综合确定第二拥塞值,能够使得第二拥塞值不至于变化过大,从而得到缓慢变化的拥塞值。
可选地,当第二网络设备接收到所述第一网络设备发送的所述第二组数据包的尾包之后,还可以根据第一组数据包中携带ECN标识的数据包的数量和第二组数据包中携带ECN标识的数据包的数量来综合确定第二拥塞值。
可选地,将第一组数据包和第二组数据包中携带ECN标识的数据包的总数量与第一组数据包和第二组数据包包含的数据包的总数量的比值确定为第二拥塞值。
例如,第一组数据包和第二组数据包均包含10个数据包,其中,第一组数据包中携带ECN标识的数据包为4个,第二组数据包中携带ECN标识的数据包为6个,那么,第一组数据包和第二组数据包携带ECN标识的数据包总数为10个,第一组数据包和第二组数据包的数据包总数量为20个,那么,得到第二拥塞值为10/20=0.5。
应理解,在确定第二拥塞值时,还可以根据第一组数据包中携带ECN标识的数据包的数量得到一个拥塞值,然后再根据第二组数据包中携带ECN标识的数据包的数量得到另一个拥塞值,接下来,将这两个拥塞值进行加权求和得到第二拥塞值。
可选地,作为一个实施例,根据第二组数据包中携带ECN标识的数据包的数量和第一拥塞值,确定网络的第二拥塞值,包括:根据第二组数据包中携带的ECN标识的数据包的数量确定网络的第三拥塞值;根据公式(9)确定第二拥塞值。
con2=x1*con3+x2*con1             (9)
在上述公式(9)中,con3为第三拥塞值,con1为第一拥塞值,con2为第二拥塞值,x1为预设的第一权重值,x2为预设的第二权重值。
应理解,在本申请中,第二网络设备每接收到一组数据包(例如,前面的第一组数据包和第二组数据包)的首包时都要将当前活跃流的数目加1;当第二网络设备每接收到一组数据包的尾包时要根据该组数据中携带ECN标识的数据包的数量对活跃流数目进行调整(将活跃流数目减1或者保持不变),以实现对活跃流数目的实时更新。
为了更好地理解本申请实施例的拥塞控制方法,下面从第二网络设备的角度对本申请实施例的统计活跃数据流数目的方法进行介绍。
图5是本申请实施例的统计活跃流数的流程图。图5所示的过程至少可以包括步骤401至步骤406,进一步地,图5所示的过程还可以包括步骤407至步骤411,下面对这些步骤进 行详细的介绍。
401、开始。
步骤401表示开始对活跃流数目进行统计。步骤401可以发生在接收完一组数据包并对活跃流数目进行更新之后,接下来再接收另一组数据包之前。
402、第二网络设备接收第一网络设备发送的第一组数据包的首包,并执行counter++。
其中,counter是第二网络设备统计得到的当前活跃流数目。具体地,counter是第二网络设备在接收到第一网络设备发送的第一组数据包的首包时第二网络设备统计得到的当前活跃的数据流的数目。
步骤402中的counter++之后得到的counter是接收到第一组数据包的首包,并对当前活跃流数目进行更新后的活跃流的数目,counter++之后的counter相当于步骤102中得到的第一活跃流数目。
403、第二网络设备接收第一组数据包的尾包,并根据第一组数据包中携带外部拥塞通知ECN标识的数据包的数量确定第一拥塞值。
404、确定第一拥塞值是否大于拥塞阈值。
当第一拥塞值小于或者等于拥塞阈值时,说明网络拥塞程度较轻,此时需要将当前活跃流数目减1,也就是执行步骤405;而当第一拥塞值大于或者等于拥塞阈值时,说明网络拥塞较为严重,此时需要保持当前活跃流数目不变,也就是执行步骤406。
405、执行couner--。
在步骤405中,执行counter—得到的counter相当于上文中的第二活跃流数目。
406、保持counter不变。
步骤406中,counter相当于上文中的第一活跃流数目。
407、第二网络设备接收第一网络设备发送的第二组数据包的首包,并执行counter++。
步骤407中执行counter++之后得到的counter相当于上文中的第四活跃流数目。
408、第二网络设备接收第二组数据包的尾包,并根据第一组数据包中携带ECN标识的数据包的数量和第二组数据包中携带ECN标识的数据包的数量确定第二拥塞值。
409、确定第二拥塞值是否大于拥塞阈值。
当第二拥塞值小于或者等于拥塞阈值时,说明网络拥塞程度较轻,此时需要将当前活跃流数目减1,也就是执行步骤210;而当第二拥塞值大于或者等于拥塞阈值时,说明网络拥塞较为严重,此时需要保持当前活跃流数目不变,也就是执行步骤411。
410、执行couner--。
在步骤410中,执行counter--得到的counter相当于上文中的第五活跃流数目。
411、保持counter不变。
步骤406中,counter相当于上文中的第四活跃流数目。
应理解,在图5所示的过程中的步骤401至步骤411中,counter均表示当前的活跃流数目,经过不同的操作步骤需要对counter进行加操作或者减操作,或者保持counter不变,以实时的统计出当前活跃流数目。
上文结合图1至图5对本申请实施例的拥塞控制方法进行了详细的描述。下面结合图6至图8对本申请实施例的网络设备进行详细的描述,应理解,图6至图8所示的网络设备能够执行本申请实施例的拥塞控制方法(图6所示的网络设备500相当于上文中的第一网络设备,网络设备500可以执行上文中第一网络设备执行的各个步骤,图7所示的网络设备600 相当于上文中的第二网络设备,网络设备600可以执行上文中的第二网络设备执行的各个步骤),为了简洁,下面在介绍图6至图8所示的网络设备时,适当省略重复的描述。
图6是本申请实施例的网络设备的示意性框图。图6中的网络设备500包括:
接收模块501,用于接收第二网络设备发送的第一消息,第一消息携带活跃流数目,活跃流数目是第二网络设备根据接收到的、来自第一网络设备的数据包所归属的数据流确定的数目;
处理模块502,用于根据活跃流数目和第二网络设备的额定接收带宽,确定向第二网络设备发送数据流的发包控制信息,其中,发包控制信息指示第一网络设备根据发包控制信息向第二网络设备发送数据流时,第二网络设备的实际接收带宽达到额定接收带宽;
发送模块503,用于根据发包控制信息向第二网络设备发送数据流。
可选地,作为一个实施例,处理模块502用于:当活跃流数目小于第一阈值时,根据下列公式确定向第二网络设备发送数据流的发包控制信息;
Figure PCTCN2019094171-appb-000015
其中,C为第二网路设备的额定接收带宽,active_qp为活跃流数目,T为第一网络设备发送的数据流的数据包到达第二网络设备所需的时间,V为T内第一网络设备向第二网络设备发送的数据流的数据量;
发送模块503用于在T内向第二网络设备发送的数据流中的数据包的数据量为V。
可选地,作为一个实施例,处理模块502用于:当活跃流数目大于或者等于第一阈值时,根据下列公式确定向第二网络设备发送数据流的发包控制信息;
Figure PCTCN2019094171-appb-000016
其中,1pkt为单个数据包的长度,active_qp为活跃流数目,C为第二网路设备的额定接收带宽,interval为第一网络设备发送数据流时相邻数据包之间的时间间隔;
发送模块503用于以interval的时间间隔向第二网络设备发送数据流中的数据包。
可选地,作为一个实施例,处理模块502用于根据活跃流的数目、第二网络设备的额定接收带宽以及数据流的属性信息,确定向第二网络设备发送数据流的发包控制信息;其中,数据流的属性信息包括数据流的应用信息和数据流的数据量信息中的至少一种,数据流的应用信息用于指示数据流的数据包所属的业务类型,数据流的数据量信息用于指示第一网络设备在预设时间内发送的属于第一数据流的数据包的数据量。
可选地,作为一个实施例,处理模块502用于:当活跃流数目小于第一阈值时,根据下列公式确定向第二网络设备发送数据流的发包控制信息;
Figure PCTCN2019094171-appb-000017
其中,C为第二网路设备的额定接收带宽,active_qp为活跃流数目,T为第一网络设备发送的数据流的数据包到达第二网络设备所需的时间,w为数据流的权重,w是根据数据流的属性信息确定的,V为T内第一网络设备向第二网络设备发送的数据流的数据量;
发送模块503用于在T内向第二网络设备发送的数据流中的数据包的数据量为V。
可选地,作为一个实施例,处理模块502用于:当活跃流数目大于或者等于第一阈值时,根据下列公式确定向第二网络设备发送数据流的发包控制信息;
Figure PCTCN2019094171-appb-000018
其中,1pkt为单个数据包的长度,active_qp为活跃流数目,w为数据流的权重,w是根据数据流的属性信息确定的,C为第二网路设备的额定接收带宽,interval为第一网络设备发送数据流时相邻数据包之间的时间间隔;
发送模块503用于以interval的时间间隔向第二网络设备发送数据流中的数据包。
图7是本申请实施例的网络设备的示意性框图。图7中的网络设备600包括:
处理模块601,用于根据接收到的、来自第一网络设备的数据包所归属的数据流确定活跃流数目;
发送模块602,用于向第一网络设备发送第一消息,第一消息携带活跃流数目,活跃流数目用于第一网络确定向第二网络设备发送数据流的发包控制信息,发包控制信息指示第一网络设备根据发包控制信息向第二网络设备发送数据流时,第二网络设备的实际接收带宽达到第二网络设备的额定接收带宽;
接收模块603,用于按照额定接收带宽接收第一网络设备发送的数据流。
可选地,作为一个实施例,接收模块603用于接收第一网络设备发送的第一组数据包的首包;处理模块601用于将当前活跃流数目加1,以得到第一活跃流数目;接收模块603用于接收第一网络设备发送的第一组数据包的尾包;处理模块601用于:根据第一组数据包中携带外部拥塞通知ECN标识的数据包的数量确定第一拥塞值;当第一拥塞值小于拥塞阈值时,第二网络设备将第一活跃流数目减1,以得到第二活跃流数目;当第一拥塞值大于或者等于拥塞阈值时,第二网络设备保持第一活跃流数目不变。
可选地,作为一个实施例,处理模块601用于将第一组数据包携带有ECN标识的数据包的数量与第一组数据包的数据包数量的比值确定为第一拥塞值。
可选地,作为一个实施例,在接收模块603接收到第一网络设备发送的第一组数据包的尾包之后,接收模块603还用于接收第一网络设备发送的第二组数据包的首包;处理模块601用于将第三活跃流数目加1,以得到第四活跃流数目,其中,第二组数据包与第一组数据包属于同一个数据流,当第一拥塞值小于拥塞阈值时,第三活跃流数目等于第二活跃流数目,当第一拥塞值大于或者等于拥塞阈值时,第三活跃流数目等于第一活跃流数目;
接收模块603用于接收第一网络设备发送的第二组数据包的尾包;处理模块601还用于:根据第二组数据包中携带ECN标识的数据包的数量和第一拥塞值,确定网络的第二拥塞值;当第二拥塞值小于拥塞阈值时,第二网络设备将第四活跃流数目减1,以得到第五活跃流数目;当第二拥塞值大于或者等于拥塞阈值时,第二网络设备保持第四活跃流数目不变。
可选地,作为一个实施例,处理模块601用于:根据第二组数据包中携带的ECN标识的数据包的数量确定网络的第三拥塞值;根据公式con2=x1*con3+x2*con1确定第二拥塞值,其中,con3为第三拥塞值,con1为第一拥塞值,con2为第二拥塞值,x1为预设的第一权重值,x2为预设的第二权重值。
图8是本申请实施例的网络设备的示意性框图。
图8中的网络设备700包括:存储器701,收发器702和处理器703。其中,处理器703可以是中央处理器(central processing unit,CPU)、通用处理器,数字信号处理器(digital signal processor,DSP)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻 辑器件、硬件部件或者其任意组合。上述存储器701用于存储程序,处理器703可以执行存储器701中存储的程序,当存储器701中存储的程序被处理器703执行时,处理器703用于执行本申请实施例的拥塞控制方法。具体地,收发器702和处理器703可以用于执行上文中由第一网络设备或者第二网络设备执行的各个步骤。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (24)

  1. 一种拥塞控制方法,所述方法应用于数据中心网络,所述数据中心网络包括第一网络设备和第二网络设备,所述第一网络设备用于向第二网络设备发送数据流,其特征在于,包括:
    所述第一网络设备接收所述第二网络设备发送的第一消息,所述第一消息携带活跃流数目,所述活跃流数目是所述第二网络设备根据接收到的、来自所述第一网络设备的数据包所归属的数据流确定的数目;
    所述第一网络设备根据所述活跃流数目和所述第二网络设备的额定接收带宽,确定向所述第二网络设备发送所述数据流的发包控制信息,其中,所述发包控制信息指示所述第一网络设备根据所述发包控制信息向所述第二网络设备发送所述数据流时,所述第二网络设备的实际接收带宽达到所述额定接收带宽;
    所述第一网络设备根据所述发包控制信息向所述第二网络设备发送所述数据流。
  2. 如权利要求1所述的方法,其特征在于,所述第一网络设备根据所述活跃流数目和所述第二网络设备的额定接收带宽,确定向所述第二网络设备发送数据流的发包控制信息,包括:
    当所述活跃流数目小于第一阈值时,所述第一网络设备根据下列公式确定向所述第二网络设备发送所述数据流的发包控制信息;
    Figure PCTCN2019094171-appb-100001
    其中,C为所述第二网路设备的额定接收带宽,active_qp为所述活跃流数目,T为在网络空载的情况下,所述第一网络设备向所述第二网络设备发送的一个数据包达到所述第二网络设备所需的时间,V为T内所述第一网络设备向所述第二网络设备发送的所述数据流的数据量;
    所述第一网络设备根据所述发包控制信息向所述第二网络设备发送所述数据流,包括:
    所述第一网络设备在T内向所述第二网络设备发送的所述数据流中的数据包的数据量为V。
  3. 如权利要求1或2所述的方法,其特征在于,所述第一网络设备根据所述活跃流数目和所述第二网络设备的额定接收带宽,确定向所述第二网络设备发送数据流的发包控制信息,包括:
    当所述活跃流数目大于或者等于第一阈值时,所述第一网络设备根据下列公式确定向所述第二网络设备发送所述数据流的发包控制信息;
    Figure PCTCN2019094171-appb-100002
    其中,1pkt为单个数据包的长度,active_qp为所述活跃流数目,C为所述第二网路设备的额定接收带宽,interval为所述第一网络设备发送所述数据流时相邻数据包之间的时间间隔;
    所述第一网络设备根据所述发包控制信息向所述第二网络设备发送所述数据流,包括:
    所述第一网络设备以interval的时间间隔向所述第二网络设备发送所述数据流中的数据包。
  4. 如权利要求1所述的方法,其特征在于,所述第一网络设备根据所述活跃流数目和 所述第二网络设备的额定接收带宽,确定向所述第二网络设备发送数据流的发包控制信息,包括:
    所述第一网络设备根据所述活跃流的数目、所述第二网络设备的额定接收带宽以及所述数据流的属性信息,确定向所述第二网络设备发送所述数据流的发包控制信息;
    其中,所述数据流的属性信息包括所述数据流的应用信息和所述数据流的数据量信息中的至少一种,所述数据流的应用信息用于指示所述数据流的数据包所属的业务类型,所述数据流的数据量信息用于指示所述第一网络设备在预设时间内发送的属于第一数据流的数据包的数据量。
  5. 如权利要求4所述的方法,其特征在于,所述第一网络设备根据所述活跃流数目、所述第二网络设备的额定接收带宽以及所述数据流的属性信息,确定向所述第二网络设备发送所述数据流的发包控制信息,包括:
    当所述活跃流数目小于第一阈值时,所述第一网络设备根据下列公式确定向所述第二网络设备发送所述数据流的发包控制信息;
    Figure PCTCN2019094171-appb-100003
    其中,C为所述第二网路设备的额定接收带宽,active_qp为所述活跃流数目,T为在网络空载的情况下,所述第一网络设备向所述第二网络设备发送的一个数据包达到所述第二网络设备所需的时间,w为所述数据流的权重,w是根据所述数据流的属性信息确定的,V为T内所述第一网络设备向所述第二网络设备发送的所述数据流的数据量;
    所述第一网络设备根据所述发包控制信息向所述第二网络设备发送所述数据流,包括:
    所述第一网络设备在T内向所述第二网络设备发送的所述数据流中的数据包的数据量为V。
  6. 如权利要求4或5所述的方法,其特征在于,所述第一网络设备根据所述活跃流数目、所述第二网络设备的额定接收带宽以及所述数据流的属性信息,确定向所述第二网络设备发送所述数据流的发包控制信息,包括:
    当所述活跃流数目大于或者等于第一阈值时,所述第一网络设备根据下列公式确定向所述第二网络设备发送所述数据流的发包控制信息;
    Figure PCTCN2019094171-appb-100004
    其中,1pkt为单个数据包的长度,active_qp为所述活跃流数目,w为所述数据流的权重,w是根据所述数据流的属性信息确定的,C为所述第二网路设备的额定接收带宽,interval为所述第一网络设备发送所述数据流时相邻数据包之间的时间间隔;
    所述第一网络设备根据所述发包控制信息向所述第二网络设备发送所述数据流,包括:
    所述第一网络设备以interval的时间间隔向所述第二网络设备发送所述数据流中的数据包。
  7. 一种拥塞控制方法,所述方法应用于数据中心网络,所述数据中心网络包括第一网络设备和第二网络设备,所述第二网络设备用于接收所述第一网络设备发送的数据流,其特征在于,包括:
    所述第二网络设备根据接收到的、来自所述第一网络设备的数据包所归属的数据流确定活跃流数目;
    所述第二网络设备向所述第一网络设备发送第一消息,所述第一消息携带所述活跃流 数目,所述活跃流数目用于所述第一网络确定向所述第二网络设备发送数据流的发包控制信息,所述发包控制信息指示所述第一网络设备根据所述发包控制信息向所述第二网络设备发送所述数据流时,所述第二网络设备的实际接收带宽达到所述第二网络设备的额定接收带宽;
    所述第二网络设备按照所述额定接收带宽接收所述第一网络设备发送的所述数据流。
  8. 如权利要求7所述的方法,其特征在于,所述第二网络设备根据接收到的、来自所述第一网络设备的数据包所归属的数据流确定活跃流数目,包括:
    所述第二网络设备接收所述第一网络设备发送的第一组数据包的首包,并将当前活跃流数目加1,以得到第一活跃流数目;
    所述第二网络设备接收所述第一网络设备发送的所述第一组数据包的尾包,并根据所述第一组数据包中携带外部拥塞通知ECN标识的数据包的数量确定第一拥塞值;
    当所述第一拥塞值小于拥塞阈值时,所述第二网络设备将所述第一活跃流数目减1,以得到第二活跃流数目;
    当所述第一拥塞值大于或者等于所述拥塞阈值时,所述第二网络设备保持所述第一活跃流数目不变。
  9. 如权利要求8所述的方法,其特征在于,所述根据所述第一组数据包中携带ECN标识的数据包的数量确定第一拥塞值,包括:
    将所述第一组数据包携带有ECN标识的数据包的数量与所述第一组数据包的数据包数量的比值确定为所述第一拥塞值。
  10. 如权利要求8或9所述的方法,其特征在于,在所述第二网络设备接收到所述第一网络设备发送的所述第一组数据包的尾包之后,所述方法还包括:
    所述第二网络设备接收所述第一网络设备发送的第二组数据包的首包,并将第三活跃流数目加1,以得到第四活跃流数目,其中,所述第二组数据包与所述第一组数据包属于同一个数据流,当所述第一拥塞值小于所述拥塞阈值时,所述第三活跃流数目等于所述第二活跃流数目,当所述第一拥塞值大于或者等于所述拥塞阈值时,所述第三活跃流数目等于所述第一活跃流数目;
    所述第二网络设备接收所述第一网络设备发送的所述第二组数据包的尾包,并根据所述第二组数据包中携带ECN标识的数据包的数量和所述第一拥塞值,确定所述网络的第二拥塞值;
    当所述第二拥塞值小于所述拥塞阈值时,所述第二网络设备将所述第四活跃流数目减1,以得到第五活跃流数目;
    当所述第二拥塞值大于或者等于所述拥塞阈值时,所述第二网络设备保持所述第四活跃流数目不变。
  11. 如权利要求10所述的方法,其特征在于,所述根据所述第二组数据包中携带ECN标识的数据包的数量和所述第一拥塞值,确定所述网络的第二拥塞值,包括:
    根据所述第二组数据包中携带的ECN标识的数据包的数量确定所述网络的第三拥塞值;
    根据公式con2=x1*con3+x2*con1确定所述第二拥塞值,其中,con3为所述第三拥塞值,con1为所述第一拥塞值,con2为所述第二拥塞值,x1为预设的第一权重值,x2为预设的第二权重值。
  12. 一种第一网络设备,其特征在于,所述第一网络设备包括:
    接收模块,用于接收第二网络设备发送的第一消息,所述第一消息携带活跃流数目,所述活跃流数目是所述第二网络设备根据接收到的、来自所述第一网络设备的数据包所归属的数据流确定的数目;
    处理模块,用于根据所述活跃流数目和所述第二网络设备的额定接收带宽,确定向所述第二网络设备发送所述数据流的发包控制信息,其中,所述发包控制信息指示所述第一网络设备根据所述发包控制信息向所述第二网络设备发送所述数据流时,所述第二网络设备的实际接收带宽达到所述额定接收带宽;
    发送模块,用于根据所述发包控制信息向所述第二网络设备发送所述数据流。
  13. 如权利要求12所述的第一网络设备,其特征在于,所述处理模块用于:
    当所述活跃流数目小于第一阈值时,根据下列公式确定向所述第二网络设备发送所述数据流的发包控制信息;
    Figure PCTCN2019094171-appb-100005
    其中,C为所述第二网路设备的额定接收带宽,active_qp为所述活跃流数目,T为在网络空载的情况下,所述第一网络设备向所述第二网络设备发送的一个数据包达到所述第二网络设备所需的时间,V为T内所述第一网络设备向所述第二网络设备发送的所述数据流的数据量;
    所述发送模块用于在T内向所述第二网络设备发送的所述数据流中的数据包的数据量为V。
  14. 如权利要求12或13所述的第一网络设备,其特征在于,所述处理模块用于:
    当所述活跃流数目大于或者等于第一阈值时,根据下列公式确定向所述第二网络设备发送所述数据流的发包控制信息;
    Figure PCTCN2019094171-appb-100006
    其中,1pkt为单个数据包的长度,active_qp为所述活跃流数目,C为所述第二网路设备的额定接收带宽,interval为所述第一网络设备发送所述数据流时相邻数据包之间的时间间隔;
    所述发送模块用于以interval的时间间隔向所述第二网络设备发送所述数据流中的数据包。
  15. 如权利要求12所述的第一网络设备,其特征在于,所述处理模块用于根据所述活跃流的数目、所述第二网络设备的额定接收带宽以及所述数据流的属性信息,确定向所述第二网络设备发送所述数据流的发包控制信息;
    其中,所述数据流的属性信息包括所述数据流的应用信息和所述数据流的数据量信息中的至少一种,所述数据流的应用信息用于指示所述数据流的数据包所属的业务类型,所述数据流的数据量信息用于指示所述第一网络设备在预设时间内发送的属于第一数据流的数据包的数据量。
  16. 如权利要求15所述的第一网络设备,其特征在于,所述处理模块用于:
    当所述活跃流数目小于第一阈值时,根据下列公式确定向所述第二网络设备发送所述数据流的发包控制信息;
    Figure PCTCN2019094171-appb-100007
    其中,C为所述第二网路设备的额定接收带宽,active_qp为所述活跃流数目,T为在网络空载的情况下,所述第一网络设备向所述第二网络设备发送的一个数据包达到所述第二网络设备所需的时间,w为所述数据流的权重,w是根据所述数据流的属性信息确定的,V为T内所述第一网络设备向所述第二网络设备发送的所述数据流的数据量;
    所述发送模块在T内向所述第二网络设备发送的所述数据流中的数据包的数据量为V。
  17. 如权利要求15或16所述的第一网络设备,其特征在于,所述处理模块用于:
    当所述活跃流数目大于或者等于第一阈值时,根据下列公式确定向所述第二网络设备发送所述数据流的发包控制信息;
    Figure PCTCN2019094171-appb-100008
    其中,1pkt为单个数据包的长度,active_qp为所述活跃流数目,w为所述数据流的权重,w是根据所述数据流的属性信息确定的,C为所述第二网路设备的额定接收带宽,interval为所述第一网络设备发送所述数据流时相邻数据包之间的时间间隔;
    所述发送模块用于以interval的时间间隔向所述第二网络设备发送所述数据流中的数据包。
  18. 一种第二网络设备,其特征在于,包括:
    处理模块,用于根据接收到的、来自所述第一网络设备的数据包所归属的数据流确定活跃流数目;
    发送模块,用于向所述第一网络设备发送第一消息,所述第一消息携带所述活跃流数目,所述活跃流数目用于所述第一网络确定向所述第二网络设备发送数据流的发包控制信息,所述发包控制信息指示所述第一网络设备根据所述发包控制信息向所述第二网络设备发送所述数据流时,所述第二网络设备的实际接收带宽达到所述第二网络设备的额定接收带宽;
    接收模块,用于按照所述额定接收带宽接收所述第一网络设备发送的所述数据流。
  19. 如权利要求18所述的第二网络设备,其特征在于,所述接收模块用于接收所述第一网络设备发送的第一组数据包的首包;
    所述处理模块用于将当前活跃流数目加1,以得到第一活跃流数目;
    所述接收模块用于接收所述第一网络设备发送的所述第一组数据包的尾包;
    所述处理模块用于:
    根据所述第一组数据包中携带外部拥塞通知ECN标识的数据包的数量确定第一拥塞值;
    当所述第一拥塞值小于拥塞阈值时,所述第二网络设备将所述第一活跃流数目减1,以得到第二活跃流数目;
    当所述第一拥塞值大于或者等于所述拥塞阈值时,所述第二网络设备保持所述第一活跃流数目不变。
  20. 如权利要求19述的第二网络设备,其特征在于,所述处理模块用于将所述第一组数据包携带有ECN标识的数据包的数量与所述第一组数据包的数据包数量的比值确定为所述第一拥塞值。
  21. 如权利要求19或20所述的第二网络设备,其特征在于,在所述接收模块接收到所述第一网络设备发送的所述第一组数据包的尾包之后,所述接收模块还用于接收所述第一网络设备发送的第二组数据包的首包;
    所述处理模块用于将第三活跃流数目加1,以得到第四活跃流数目,其中,所述第二组数据包与所述第一组数据包属于同一个数据流,当所述第一拥塞值小于所述拥塞阈值时,所述第三活跃流数目等于所述第二活跃流数目,当所述第一拥塞值大于或者等于所述拥塞阈值时,所述第三活跃流数目等于所述第一活跃流数目;
    所述接收模块用于接收所述第一网络设备发送的所述第二组数据包的尾包;
    所述处理模块还用于:
    根据所述第二组数据包中携带ECN标识的数据包的数量和所述第一拥塞值,确定所述网络的第二拥塞值;
    当所述第二拥塞值小于所述拥塞阈值时,所述第二网络设备将所述第四活跃流数目减1,以得到第五活跃流数目;
    当所述第二拥塞值大于或者等于所述拥塞阈值时,所述第二网络设备保持所述第四活跃流数目不变。
  22. 如权利要求21所述的第二网络设备,其特征在于,所述处理模块用于:
    根据所述第二组数据包中携带的ECN标识的数据包的数量确定所述网络的第三拥塞值;
    根据公式con2=x1*con3+x2*con1确定所述第二拥塞值,其中,con3为所述第三拥塞值,con1为所述第一拥塞值,con2为所述第二拥塞值,x1为预设的第一权重值,x2为预设的第二权重值。
  23. 一种第一网络设备,其特征在于,所述第一网络设备包括:
    存储器,用于存储程序;
    处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述第一网络设备用于执行如权利要求1-6中任一项所述的方法。
  24. 一种第二网络设备,其特征在于,所述第二网络设备包括:
    存储器,用于存储程序;
    处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述第二网络设备用于执行如权利要求7-11中任一项所述的方法。
PCT/CN2019/094171 2018-09-25 2019-07-01 拥塞控制方法和网络设备 WO2020063003A1 (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2021513244A JP2021536196A (ja) 2018-09-25 2019-07-01 輻輳制御方法及びネットワークデバイス
KR1020217004313A KR102478440B1 (ko) 2018-09-25 2019-07-01 혼잡 제어 방법 및 네트워크 디바이스
EP19865608.4A EP3852323A4 (en) 2018-09-25 2019-07-01 Congestion control method, and network apparatus
US17/211,815 US11606297B2 (en) 2018-09-25 2021-03-24 Congestion control method and network device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811119579.8 2018-09-25
CN201811119579.8A CN109067665B (zh) 2018-09-25 2018-09-25 拥塞控制方法和网络设备

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/211,815 Continuation US11606297B2 (en) 2018-09-25 2021-03-24 Congestion control method and network device

Publications (1)

Publication Number Publication Date
WO2020063003A1 true WO2020063003A1 (zh) 2020-04-02

Family

ID=64765968

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/094171 WO2020063003A1 (zh) 2018-09-25 2019-07-01 拥塞控制方法和网络设备

Country Status (6)

Country Link
US (1) US11606297B2 (zh)
EP (1) EP3852323A4 (zh)
JP (1) JP2021536196A (zh)
KR (1) KR102478440B1 (zh)
CN (1) CN109067665B (zh)
WO (1) WO2020063003A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109245959B (zh) * 2018-09-25 2021-09-03 华为技术有限公司 统计活跃流数目的方法、网络设备和系统
CN109067665B (zh) 2018-09-25 2022-01-11 华为技术有限公司 拥塞控制方法和网络设备
CN112822120B (zh) * 2019-11-18 2023-04-28 华为技术有限公司 一种实现拥塞控制的方法、装置和系统
CN113014498A (zh) * 2019-12-19 2021-06-22 华为技术有限公司 一种收发数据的方法及装置
CN113132246B (zh) * 2019-12-30 2024-04-26 华为技术有限公司 一种流量控制方法及相关设备
WO2021134621A1 (zh) * 2019-12-31 2021-07-08 华为技术有限公司 调度报文的方法和装置
TWI768812B (zh) * 2021-04-07 2022-06-21 聚騰科技股份有限公司 網路頻寬的偵測方法
CN113507420B (zh) * 2021-08-05 2022-03-15 清华大学 一种拥塞控制方法及装置
CN113872872B (zh) * 2021-09-29 2023-11-24 新华三信息安全技术有限公司 一种报文转发方法、装置及框式网络设备
CN113746724B (zh) * 2021-11-05 2022-04-12 阿里云计算有限公司 消息传输方法、装置、电子设备及介质
CN115002035A (zh) * 2022-06-27 2022-09-02 中国南方电网有限责任公司 基于业务级别的电力数据传输拥塞规避方法
CN115514708B (zh) * 2022-11-23 2023-03-21 江苏为是科技有限公司 拥塞控制方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102404187A (zh) * 2010-09-13 2012-04-04 华为技术有限公司 拥塞控制方法和系统以及网络设备
CN103916329A (zh) * 2014-03-21 2014-07-09 中国科学院计算技术研究所 一种命名数据网络传输控制方法及系统
CN105531968A (zh) * 2013-09-11 2016-04-27 思科技术公司 基于网络的自适应速率限制
US20170149665A1 (en) * 2014-07-16 2017-05-25 Nec Europe Ltd. Method and system for managing flows in a network
CN108494698A (zh) * 2017-12-13 2018-09-04 天津天地伟业机器人技术有限公司 一种基于传输速率的拥塞控制方法
CN109067665A (zh) * 2018-09-25 2018-12-21 华为技术有限公司 拥塞控制方法和网络设备

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5668948A (en) * 1994-09-08 1997-09-16 International Business Machines Corporation Media streamer with control node enabling same isochronous streams to appear simultaneously at output ports or different streams to appear simultaneously at output ports
US7304948B1 (en) * 2000-12-29 2007-12-04 Nortel Networks Limited Congestion control for signalling transport protocols
US7729347B2 (en) * 2006-05-31 2010-06-01 Zvi Rosberg Method and apparatus for fair flow control and congestion avoidance supporting multiple QoS class requirements
JP4893646B2 (ja) * 2008-02-04 2012-03-07 富士通株式会社 帯域制御装置および帯域制御方法
US8670324B2 (en) * 2008-07-30 2014-03-11 Fimax Technology Limited Fair weighted network congestion avoidance
US8949444B1 (en) * 2009-07-14 2015-02-03 Juniper Networks, Inc. Flow control scheme for parallel flows
WO2011043312A1 (ja) * 2009-10-06 2011-04-14 日本電気株式会社 ネットワークシステムとコントローラ、方法とプログラム
CN101854366B (zh) * 2010-06-10 2015-04-01 中兴通讯股份有限公司 一种对等网络流量识别的方法及装置
US8458327B1 (en) * 2010-07-15 2013-06-04 Google Inc. System and method of reducing network latency
WO2013081518A1 (en) * 2011-12-01 2013-06-06 Telefonaktiebolaget L M Ericsson (Publ) Reduction of packet header compression overhead due to high ecn rate
US8929399B2 (en) * 2011-12-29 2015-01-06 Qualcomm Incorporated Selectively multiplexing communication streams
JP5954074B2 (ja) * 2012-09-20 2016-07-20 富士通株式会社 情報処理方法、情報処理装置、及びプログラム。
RU2616169C2 (ru) * 2012-11-16 2017-04-12 Нек Корпорейшн Сетевая система, способ, устройство и программа
US9596182B2 (en) * 2013-02-12 2017-03-14 Adara Networks, Inc. Controlling non-congestion controlled flows
CN103457871B (zh) * 2013-09-18 2016-03-30 中南大学 Dcn中基于延迟约束的拥塞避免阶段的增窗方法
US10575008B2 (en) * 2015-06-01 2020-02-25 Apple Inc. Bandwidth management in devices with simultaneous download of multiple data streams
US10382495B2 (en) * 2015-09-25 2019-08-13 Telefonaktiebolaget Lm Ericsson (Publ) Method and interworking network node for enabling bit rate adaption in media streaming
EP3378207B1 (en) * 2015-11-16 2019-04-24 Telefonaktiebolaget LM Ericsson (publ) Method for congestion control in multiparty conferencing, multipoint control unit, computer program and computer program product
KR20170101537A (ko) * 2016-02-29 2017-09-06 한국전자통신연구원 무선 채널을 공유하는 무선 네트워크에서의 동적 큐 관리 방법 및 통신 노드
US20180069786A1 (en) * 2016-09-02 2018-03-08 Argela Yazilim ve Bilisim Teknolojileri San. ve Tic. A.S. Randomized route hopping in software defined networks
CN108243111B (zh) * 2016-12-27 2021-08-27 华为技术有限公司 确定传输路径的方法和装置
CN109995664B (zh) 2017-12-29 2022-04-05 华为技术有限公司 一种发送数据流的方法、设备和系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102404187A (zh) * 2010-09-13 2012-04-04 华为技术有限公司 拥塞控制方法和系统以及网络设备
CN105531968A (zh) * 2013-09-11 2016-04-27 思科技术公司 基于网络的自适应速率限制
CN103916329A (zh) * 2014-03-21 2014-07-09 中国科学院计算技术研究所 一种命名数据网络传输控制方法及系统
US20170149665A1 (en) * 2014-07-16 2017-05-25 Nec Europe Ltd. Method and system for managing flows in a network
CN108494698A (zh) * 2017-12-13 2018-09-04 天津天地伟业机器人技术有限公司 一种基于传输速率的拥塞控制方法
CN109067665A (zh) * 2018-09-25 2018-12-21 华为技术有限公司 拥塞控制方法和网络设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3852323A4

Also Published As

Publication number Publication date
CN109067665A (zh) 2018-12-21
KR102478440B1 (ko) 2022-12-15
KR20210028722A (ko) 2021-03-12
US11606297B2 (en) 2023-03-14
JP2021536196A (ja) 2021-12-23
US20210211380A1 (en) 2021-07-08
EP3852323A1 (en) 2021-07-21
EP3852323A4 (en) 2021-12-29
CN109067665B (zh) 2022-01-11

Similar Documents

Publication Publication Date Title
WO2020063003A1 (zh) 拥塞控制方法和网络设备
US8509074B1 (en) System, method, and computer program product for controlling the rate of a network flow and groups of network flows
US11166189B2 (en) Data transmission buffer discarding method and apparatus
CN110943933B (zh) 一种实现数据传输的方法、装置和系统
CN109714267B (zh) 管理反向队列的传输控制方法及系统
US9282049B2 (en) Systems, methods, and computer program products providing feedback for network congestion management
WO2020063299A1 (zh) 统计活跃流数目的方法、网络设备和系统
WO2019210725A1 (zh) 拥塞控制方法、装置、设备及存储介质
CN110808884B (zh) 一种网络拥塞控制方法
CN110944358B (zh) 数据传输方法和设备
WO2017114231A1 (zh) 一种报文发送方法、tcp代理以及tcp客户端
CN113141314B (zh) 一种拥塞控制方法及设备
CN113726671A (zh) 一种网络拥塞控制方法及相关产品
CN110868359B (zh) 一种网络拥塞控制方法
US20200162394A1 (en) Transmission timeout system
WO2019104343A1 (en) System and method for accelerating or decelerating a data transport network protocol based on real time transport network congestion conditions
WO2019062589A1 (zh) 控制流量的方法及装置
WO2014000467A1 (zh) 一种网络虚拟化系统中带宽调整的方法及装置
US11991082B2 (en) Network congestion processing method and related apparatus
US11190454B2 (en) Receiver-directed computer network congestion control system
WO2015127759A1 (zh) 一种数据拥塞的处理方法及装置
CN112787919B (zh) 报文传输方法及设备、可读介质
CN106534056B (zh) 通信装置以及通信方法
Szilágyi et al. Efficient LTE PDCP buffer management
US11870708B2 (en) Congestion control 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: 19865608

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 20217004313

Country of ref document: KR

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2021513244

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2019865608

Country of ref document: EP

Effective date: 20210415