WO2020063003A1 - 拥塞控制方法和网络设备 - Google Patents
拥塞控制方法和网络设备 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 77
- 238000012545 processing Methods 0.000 claims description 30
- 230000015654 memory Effects 0.000 claims description 24
- 230000005540 biological transmission Effects 0.000 description 28
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000012937 correction Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 4
- 230000000875 corresponding effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000035772 mutation Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/27—Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/11—Identifying congestion
- H04L47/115—Identifying congestion using a dedicated packet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/25—Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/29—Flow control; Congestion control using a combination of thresholds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/33—Flow 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
Claims (24)
- 一种拥塞控制方法,所述方法应用于数据中心网络,所述数据中心网络包括第一网络设备和第二网络设备,所述第一网络设备用于向第二网络设备发送数据流,其特征在于,包括:所述第一网络设备接收所述第二网络设备发送的第一消息,所述第一消息携带活跃流数目,所述活跃流数目是所述第二网络设备根据接收到的、来自所述第一网络设备的数据包所归属的数据流确定的数目;所述第一网络设备根据所述活跃流数目和所述第二网络设备的额定接收带宽,确定向所述第二网络设备发送所述数据流的发包控制信息,其中,所述发包控制信息指示所述第一网络设备根据所述发包控制信息向所述第二网络设备发送所述数据流时,所述第二网络设备的实际接收带宽达到所述额定接收带宽;所述第一网络设备根据所述发包控制信息向所述第二网络设备发送所述数据流。
- 如权利要求1所述的方法,其特征在于,所述第一网络设备根据所述活跃流数目和所述第二网络设备的额定接收带宽,确定向所述第二网络设备发送数据流的发包控制信息,包括:当所述活跃流数目小于第一阈值时,所述第一网络设备根据下列公式确定向所述第二网络设备发送所述数据流的发包控制信息;其中,C为所述第二网路设备的额定接收带宽,active_qp为所述活跃流数目,T为在网络空载的情况下,所述第一网络设备向所述第二网络设备发送的一个数据包达到所述第二网络设备所需的时间,V为T内所述第一网络设备向所述第二网络设备发送的所述数据流的数据量;所述第一网络设备根据所述发包控制信息向所述第二网络设备发送所述数据流,包括:所述第一网络设备在T内向所述第二网络设备发送的所述数据流中的数据包的数据量为V。
- 如权利要求1或2所述的方法,其特征在于,所述第一网络设备根据所述活跃流数目和所述第二网络设备的额定接收带宽,确定向所述第二网络设备发送数据流的发包控制信息,包括:当所述活跃流数目大于或者等于第一阈值时,所述第一网络设备根据下列公式确定向所述第二网络设备发送所述数据流的发包控制信息;其中,1pkt为单个数据包的长度,active_qp为所述活跃流数目,C为所述第二网路设备的额定接收带宽,interval为所述第一网络设备发送所述数据流时相邻数据包之间的时间间隔;所述第一网络设备根据所述发包控制信息向所述第二网络设备发送所述数据流,包括:所述第一网络设备以interval的时间间隔向所述第二网络设备发送所述数据流中的数据包。
- 如权利要求1所述的方法,其特征在于,所述第一网络设备根据所述活跃流数目和 所述第二网络设备的额定接收带宽,确定向所述第二网络设备发送数据流的发包控制信息,包括:所述第一网络设备根据所述活跃流的数目、所述第二网络设备的额定接收带宽以及所述数据流的属性信息,确定向所述第二网络设备发送所述数据流的发包控制信息;其中,所述数据流的属性信息包括所述数据流的应用信息和所述数据流的数据量信息中的至少一种,所述数据流的应用信息用于指示所述数据流的数据包所属的业务类型,所述数据流的数据量信息用于指示所述第一网络设备在预设时间内发送的属于第一数据流的数据包的数据量。
- 如权利要求4所述的方法,其特征在于,所述第一网络设备根据所述活跃流数目、所述第二网络设备的额定接收带宽以及所述数据流的属性信息,确定向所述第二网络设备发送所述数据流的发包控制信息,包括:当所述活跃流数目小于第一阈值时,所述第一网络设备根据下列公式确定向所述第二网络设备发送所述数据流的发包控制信息;其中,C为所述第二网路设备的额定接收带宽,active_qp为所述活跃流数目,T为在网络空载的情况下,所述第一网络设备向所述第二网络设备发送的一个数据包达到所述第二网络设备所需的时间,w为所述数据流的权重,w是根据所述数据流的属性信息确定的,V为T内所述第一网络设备向所述第二网络设备发送的所述数据流的数据量;所述第一网络设备根据所述发包控制信息向所述第二网络设备发送所述数据流,包括:所述第一网络设备在T内向所述第二网络设备发送的所述数据流中的数据包的数据量为V。
- 如权利要求4或5所述的方法,其特征在于,所述第一网络设备根据所述活跃流数目、所述第二网络设备的额定接收带宽以及所述数据流的属性信息,确定向所述第二网络设备发送所述数据流的发包控制信息,包括:当所述活跃流数目大于或者等于第一阈值时,所述第一网络设备根据下列公式确定向所述第二网络设备发送所述数据流的发包控制信息;其中,1pkt为单个数据包的长度,active_qp为所述活跃流数目,w为所述数据流的权重,w是根据所述数据流的属性信息确定的,C为所述第二网路设备的额定接收带宽,interval为所述第一网络设备发送所述数据流时相邻数据包之间的时间间隔;所述第一网络设备根据所述发包控制信息向所述第二网络设备发送所述数据流,包括:所述第一网络设备以interval的时间间隔向所述第二网络设备发送所述数据流中的数据包。
- 一种拥塞控制方法,所述方法应用于数据中心网络,所述数据中心网络包括第一网络设备和第二网络设备,所述第二网络设备用于接收所述第一网络设备发送的数据流,其特征在于,包括:所述第二网络设备根据接收到的、来自所述第一网络设备的数据包所归属的数据流确定活跃流数目;所述第二网络设备向所述第一网络设备发送第一消息,所述第一消息携带所述活跃流 数目,所述活跃流数目用于所述第一网络确定向所述第二网络设备发送数据流的发包控制信息,所述发包控制信息指示所述第一网络设备根据所述发包控制信息向所述第二网络设备发送所述数据流时,所述第二网络设备的实际接收带宽达到所述第二网络设备的额定接收带宽;所述第二网络设备按照所述额定接收带宽接收所述第一网络设备发送的所述数据流。
- 如权利要求7所述的方法,其特征在于,所述第二网络设备根据接收到的、来自所述第一网络设备的数据包所归属的数据流确定活跃流数目,包括:所述第二网络设备接收所述第一网络设备发送的第一组数据包的首包,并将当前活跃流数目加1,以得到第一活跃流数目;所述第二网络设备接收所述第一网络设备发送的所述第一组数据包的尾包,并根据所述第一组数据包中携带外部拥塞通知ECN标识的数据包的数量确定第一拥塞值;当所述第一拥塞值小于拥塞阈值时,所述第二网络设备将所述第一活跃流数目减1,以得到第二活跃流数目;当所述第一拥塞值大于或者等于所述拥塞阈值时,所述第二网络设备保持所述第一活跃流数目不变。
- 如权利要求8所述的方法,其特征在于,所述根据所述第一组数据包中携带ECN标识的数据包的数量确定第一拥塞值,包括:将所述第一组数据包携带有ECN标识的数据包的数量与所述第一组数据包的数据包数量的比值确定为所述第一拥塞值。
- 如权利要求8或9所述的方法,其特征在于,在所述第二网络设备接收到所述第一网络设备发送的所述第一组数据包的尾包之后,所述方法还包括:所述第二网络设备接收所述第一网络设备发送的第二组数据包的首包,并将第三活跃流数目加1,以得到第四活跃流数目,其中,所述第二组数据包与所述第一组数据包属于同一个数据流,当所述第一拥塞值小于所述拥塞阈值时,所述第三活跃流数目等于所述第二活跃流数目,当所述第一拥塞值大于或者等于所述拥塞阈值时,所述第三活跃流数目等于所述第一活跃流数目;所述第二网络设备接收所述第一网络设备发送的所述第二组数据包的尾包,并根据所述第二组数据包中携带ECN标识的数据包的数量和所述第一拥塞值,确定所述网络的第二拥塞值;当所述第二拥塞值小于所述拥塞阈值时,所述第二网络设备将所述第四活跃流数目减1,以得到第五活跃流数目;当所述第二拥塞值大于或者等于所述拥塞阈值时,所述第二网络设备保持所述第四活跃流数目不变。
- 如权利要求10所述的方法,其特征在于,所述根据所述第二组数据包中携带ECN标识的数据包的数量和所述第一拥塞值,确定所述网络的第二拥塞值,包括:根据所述第二组数据包中携带的ECN标识的数据包的数量确定所述网络的第三拥塞值;根据公式con2=x1*con3+x2*con1确定所述第二拥塞值,其中,con3为所述第三拥塞值,con1为所述第一拥塞值,con2为所述第二拥塞值,x1为预设的第一权重值,x2为预设的第二权重值。
- 一种第一网络设备,其特征在于,所述第一网络设备包括:接收模块,用于接收第二网络设备发送的第一消息,所述第一消息携带活跃流数目,所述活跃流数目是所述第二网络设备根据接收到的、来自所述第一网络设备的数据包所归属的数据流确定的数目;处理模块,用于根据所述活跃流数目和所述第二网络设备的额定接收带宽,确定向所述第二网络设备发送所述数据流的发包控制信息,其中,所述发包控制信息指示所述第一网络设备根据所述发包控制信息向所述第二网络设备发送所述数据流时,所述第二网络设备的实际接收带宽达到所述额定接收带宽;发送模块,用于根据所述发包控制信息向所述第二网络设备发送所述数据流。
- 如权利要求12所述的第一网络设备,其特征在于,所述处理模块用于根据所述活跃流的数目、所述第二网络设备的额定接收带宽以及所述数据流的属性信息,确定向所述第二网络设备发送所述数据流的发包控制信息;其中,所述数据流的属性信息包括所述数据流的应用信息和所述数据流的数据量信息中的至少一种,所述数据流的应用信息用于指示所述数据流的数据包所属的业务类型,所述数据流的数据量信息用于指示所述第一网络设备在预设时间内发送的属于第一数据流的数据包的数据量。
- 一种第二网络设备,其特征在于,包括:处理模块,用于根据接收到的、来自所述第一网络设备的数据包所归属的数据流确定活跃流数目;发送模块,用于向所述第一网络设备发送第一消息,所述第一消息携带所述活跃流数目,所述活跃流数目用于所述第一网络确定向所述第二网络设备发送数据流的发包控制信息,所述发包控制信息指示所述第一网络设备根据所述发包控制信息向所述第二网络设备发送所述数据流时,所述第二网络设备的实际接收带宽达到所述第二网络设备的额定接收带宽;接收模块,用于按照所述额定接收带宽接收所述第一网络设备发送的所述数据流。
- 如权利要求18所述的第二网络设备,其特征在于,所述接收模块用于接收所述第一网络设备发送的第一组数据包的首包;所述处理模块用于将当前活跃流数目加1,以得到第一活跃流数目;所述接收模块用于接收所述第一网络设备发送的所述第一组数据包的尾包;所述处理模块用于:根据所述第一组数据包中携带外部拥塞通知ECN标识的数据包的数量确定第一拥塞值;当所述第一拥塞值小于拥塞阈值时,所述第二网络设备将所述第一活跃流数目减1,以得到第二活跃流数目;当所述第一拥塞值大于或者等于所述拥塞阈值时,所述第二网络设备保持所述第一活跃流数目不变。
- 如权利要求19述的第二网络设备,其特征在于,所述处理模块用于将所述第一组数据包携带有ECN标识的数据包的数量与所述第一组数据包的数据包数量的比值确定为所述第一拥塞值。
- 如权利要求19或20所述的第二网络设备,其特征在于,在所述接收模块接收到所述第一网络设备发送的所述第一组数据包的尾包之后,所述接收模块还用于接收所述第一网络设备发送的第二组数据包的首包;所述处理模块用于将第三活跃流数目加1,以得到第四活跃流数目,其中,所述第二组数据包与所述第一组数据包属于同一个数据流,当所述第一拥塞值小于所述拥塞阈值时,所述第三活跃流数目等于所述第二活跃流数目,当所述第一拥塞值大于或者等于所述拥塞阈值时,所述第三活跃流数目等于所述第一活跃流数目;所述接收模块用于接收所述第一网络设备发送的所述第二组数据包的尾包;所述处理模块还用于:根据所述第二组数据包中携带ECN标识的数据包的数量和所述第一拥塞值,确定所述网络的第二拥塞值;当所述第二拥塞值小于所述拥塞阈值时,所述第二网络设备将所述第四活跃流数目减1,以得到第五活跃流数目;当所述第二拥塞值大于或者等于所述拥塞阈值时,所述第二网络设备保持所述第四活跃流数目不变。
- 如权利要求21所述的第二网络设备,其特征在于,所述处理模块用于:根据所述第二组数据包中携带的ECN标识的数据包的数量确定所述网络的第三拥塞值;根据公式con2=x1*con3+x2*con1确定所述第二拥塞值,其中,con3为所述第三拥塞值,con1为所述第一拥塞值,con2为所述第二拥塞值,x1为预设的第一权重值,x2为预设的第二权重值。
- 一种第一网络设备,其特征在于,所述第一网络设备包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述第一网络设备用于执行如权利要求1-6中任一项所述的方法。
- 一种第二网络设备,其特征在于,所述第二网络设备包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述第二网络设备用于执行如权利要求7-11中任一项所述的方法。
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)
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)
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)
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 | 华为技术有限公司 | 一种发送数据流的方法、设备和系统 |
-
2018
- 2018-09-25 CN CN201811119579.8A patent/CN109067665B/zh active Active
-
2019
- 2019-07-01 EP EP19865608.4A patent/EP3852323A4/en active Pending
- 2019-07-01 JP JP2021513244A patent/JP2021536196A/ja active Pending
- 2019-07-01 WO PCT/CN2019/094171 patent/WO2020063003A1/zh unknown
- 2019-07-01 KR KR1020217004313A patent/KR102478440B1/ko active IP Right Grant
-
2021
- 2021-03-24 US US17/211,815 patent/US11606297B2/en active Active
Patent Citations (6)
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)
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 |