Congestion control method, device and system

By setting an indicator flag in the ACK message by the access point AP, the problem of TCP sending devices being unable to promptly perceive congestion on the wireless network side is solved, achieving faster congestion feedback and throughput improvement.

CN113055935BActive Publication Date: 2025-10-03HUAWEI TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN201911368603.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2019-12-26
Publication Date
2025-10-03
Estimated Expiration
2039-12-26

AI Technical Summary

Technical Problem

The TCP sending device cannot promptly detect the congestion on the wireless network side, resulting in delayed feedback on network congestion and reduced throughput.

Method used

The access point AP replaces some functions of the receiving device and directly sets an indicator in the ACK message to feedback the congestion situation on the wired network side. The sending device adjusts the sending rate of the data stream according to the ACK message.

Benefits of technology

The feedback delay of congestion signals is reduced, and TCP's response sensitivity to network congestion and performance optimization are improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113055935B_ABST
    Figure CN113055935B_ABST
Patent Text Reader

Abstract

The embodiment of the present application discloses a congestion control method, device, and system for use in the field of communication technology. The method of the embodiment of the present application includes: an access point AP receives a first data packet sent by a sending device, the first data packet carries a congestion mark; the AP sets an indicator for a first acknowledgment ACK packet cached by the AP based on the congestion mark of the first data packet; the AP sends the first ACK packet carrying the indicator to the sending device, the indicator is used to instruct the sending device to adjust the sending rate of the first data stream; the embodiment of the present application can reduce the transmission delay of the network congestion signal on the wireless network side, so that the TCP sending device receives the congestion signal in time and adjusts the data stream sending rate, thereby improving throughput.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments of the present application relate to the field of communication technology, and in particular to a congestion control method, device, and system. Background Art

[0002] Network congestion refers to the phenomenon that the number of packets in a communication network is too large, making the network unable to process the packets in time, resulting in a decrease in the performance of the entire network. Generally, network congestion can occur on the wired network side between the core network and the access point, or on the wireless network side between the terminal and the access point. Congestion on the wired network side is mainly due to the fact that the downlink port capacity of the switch is 100G, while the downlink port of the access switch is generally only 2.5G. When there is a sudden burst of instantaneous traffic, it will cause the access switch buffer to overflow and packet loss. At this time, the sending device based on the transmission control protocol (TCP) needs to speed up data transmission to control the number of data packets entering the network. The wireless network side is greatly affected by the environment. Interference at the physical layer of the wireless air interface can increase transmission delay, causing congestion or random packet loss. This congestion is different from network congestion in the wired network. It is not related to the number of packets in the wired network and does not require data transmission speed adjustment of the sending device.

[0003] In the existing TCP end-to-end congestion control technology, the TCP sending device cannot directly sense whether congestion has occurred on the link, and requires an intermediate routing device to detect its congestion situation. The TCP sending device determines whether the link is congested based on the congestion signal and adjusts the speed accordingly. Generally, when congestion occurs on the wired network side, the intermediate routing device will set a congestion flag in the data message sent by TCP. When the receiving device sends an acknowledgment message (ACK) for the data message to the sending device, it marks the ACK message according to the congestion flag. The sending device then adjusts the speed based on the mark in the ACK message to control the number of messages entering the network.

[0004] Since the TCP sending device is notified of network congestion through ACK messages, and the marked ACK message is a confirmation message sent by the receiving device, it needs to be transmitted through the wireless network to the wired network before it can be received by the sending device. When the ACK message is transmitted on the wireless network, the delay jitter problem will cause the round-trip time (RTT) of the message to increase, causing congestion feedback delays. The TCP sending device cannot adjust the speed in time, resulting in TCP's slow response to network congestion and low throughput. Summary of the Invention

[0005] The present application provides a congestion control method, device, and system for connecting a TCP receiving device to an access point AP via a wireless transmission network, which in turn connects the AP to a TCP sending device via a wired transmission network. This method implements a network scenario in which the TCP sending device and the TCP receiving device communicate based on TCP. This method can solve the problem that the network congestion signal has a large transmission delay on the wireless network side, and the TCP sending device cannot perform congestion control in a timely manner.

[0006] In a first aspect, a congestion control method is provided, comprising:

[0007] A sending device transmits a first data stream to a receiving device. When network congestion occurs during the transmission of the first data stream on the wired network side, an intermediate routing device on the wired network side adds a congestion mark to the first data packet in the first data stream. The first data packet is transmitted to the access point AP, and the AP confirms the response flow of the ACK packet corresponding to the first data stream in the local cache sequence, and sets an indication mark for the first confirmation ACK packet that has been cached and waiting to be sent, wherein the first data stream also includes the second data packet corresponding to the first ACK packet; then the AP sends the first ACK packet carrying the indication mark to the sending device, and the indication mark is used to indicate that network congestion has occurred on the wired network side of the sending device, and the sending rate of the first data stream needs to be adjusted accordingly.

[0008] The access point AP replaces some functions of the TCP receiving device. When the AP receives the first data packet carrying a congestion mark, the AP directly sets an indication flag in any confirmation ACK message of the same data stream that has been cached locally to indicate that network congestion has occurred on the wired network side. There is no need to first transmit the first data packet to the sending device, then have the sending device mark the ACK message of the first data packet, and then transmit the marked ACK message to the wireless access point AP via the wireless network, and finally have the AP transmit it to the receiving device via the wired network.

[0009] In this way, the wired network side can complete the feedback processing of the congestion signal, reducing the delay in feedback processing of the congestion signal. TCP responds more sensitively to network congestion and has better performance.

[0010] Based on the first aspect, in a first possible implementation of the first aspect:

[0011] The intermediate routing device sets the congestion mark through the Explicit Congestion Notification (ECN) field included in the Internet Protocol (IP) header of the data message. When network congestion occurs, the intermediate routing device sets the ECN field of the first data message in the first data stream to a first value. When the first data message is transmitted to the access point (AP), the AP sets the ECE field in the Transmission Control Protocol (TCP) header of the cached first ACK message to a second value based on the first value of the ECN field of the first data message. After the first ACK message is transmitted to the sending device, the sending device detects the value of the ECE field of the message. If it is the second value, the sending rate of the first data stream is reduced.

[0012] The AP uses the ECN field to detect network congestion on the wired network side, and uses the ECE field in the ACK message to process the network congestion signal and feedback the network congestion to the sending device. The sending device can then adjust the data flow sending rate based on the ECE field in the received ACK message, control the number of messages entering the wired network, and resolve network congestion problems.

[0013] Based on the first possible implementation of the first aspect, in a second possible implementation of the first aspect:

[0014] After the AP processes the congestion mark carried by the first data packet and uses the first ACK message corresponding to the previously transmitted second data packet to feed back to the sending device, the receiving device does not need to process the congestion mark again. Therefore, when the AP transmits the first data packet to the receiving device, it is necessary to eliminate the congestion mark, that is, set the ECN field of the first data packet to the third value before forwarding the first data packet to the receiving device.

[0015] Since the receiving device also detects the ECN field of the data packet and feeds back to the sending device, when the AP that first receives the first data packet responds to the congestion mark, if the receiving device that receives the first data packet later also feeds back based on the ACK message, the sending device may reduce the sending rate of the data stream again, causing the problem of throughput not being able to increase due to excessive speed reduction. By using this implementation method, the receiving device can avoid repeated processing of the congestion mark by the sending device, allowing the sending device to moderately reduce the sending rate, thereby improving the performance of controlling network congestion.

[0016] Based on the first aspect, in a third possible implementation of the first aspect:

[0017] Generally, the sending device only detects the ECE field of the ACK message, but does not detect the ECN field of the ACK message. In this embodiment, the access point AP uses the ECN field of the ACK message to feedback the network congestion situation to the sending device. When the AP detects that the ECN field of the first data message is the first value, that is, network congestion occurs, the AP sets the ECN field in the locally cached IP header of the first ACK message to the first value. When the sending device receives the first data message, it needs to detect the ECN field of the first data message. If the ECN field is the first value, the sending rate of the first data stream is reduced according to the first value.

[0018] When the first data packet carrying the congestion mark is received, the receiving device instructs the sending device to slow down based on the ECE field of the ACK message, while the AP instructs the sending device to slow down based on the ECN field of the ACK message. In this way, the sending device can identify the entity that instructs the speed reduction, which provides preparation for subsequent sending devices to adopt different speed reduction strategies according to different execution entities.

[0019] Based on the third possible implementation of the first aspect, in a fourth possible implementation of the first aspect:

[0020] After the AP feeds back the congestion mark through the ECN field of the ACK message, the receiving device does not need to process the congestion mark again. Therefore, when the AP transmits the first data message to the receiving device, the congestion mark can be eliminated, that is, the ECN field of the first data message is set to the third value before forwarding the first data message to the receiving device.

[0021] By using this implementation method, the receiving device can avoid repeated processing of the congestion signal, so that the sending device can moderately reduce the sending rate, thereby improving the performance of controlling network congestion.

[0022] Based on any one of the first aspect to the fourth possible implementation of the first aspect, in a fifth possible implementation of the first aspect:

[0023] When the AP receives a first data packet carrying a congestion mark, it can set an indication mark for the first ACK packet to be forwarded that has been cached in the current cache sequence, or it can set an indication mark for multiple second ACK packets to be forwarded, and the data packets corresponding to these ACK packets should all belong to the first data flow.

[0024] The AP sends an indication identifier to the sending device through multiple ACK messages, which can prevent the sending device from not receiving the indication identifier due to packet loss of one ACK message, thereby improving reliability.

[0025] A second aspect provides a congestion control method, including:

[0026] A sending device sends a first data stream to a receiving device. After receiving a data message of the first data stream, the receiving device sends an acknowledgment ACK message to the receiving device for each data message. When network congestion occurs during the transmission of the first data stream on the wired network side, the wireless access point AP sets an indication flag for the first ACK message based on a congestion flag in a first data message of the first data stream. The second data message corresponding to the first ACK message also belongs to the first data stream. After receiving the first ACK message, the sending device adjusts the sending rate of the first data stream based on the indication flag.

[0027] Since the sending device cannot directly perceive the network congestion in the link, other devices are needed to notify the network congestion. Setting an indicator flag on the access point AP can provide feedback on the network congestion on the wired network side, allowing the sending device to adjust the transmission rate of the data stream more promptly and improve throughput.

[0028] Based on the second aspect, in a first possible implementation of the second aspect:

[0029] When network congestion occurs, the AP will set the ECE field in the TCP header of the first ACK message to the second value. After the sending device receives the first ACK message, it will adjust the speed according to the value of the ECE field. If the value is the second value, the sending rate of the first data stream will be reduced.

[0030] The sending device adjusts the sending rate of the first data stream according to the indicator carried in the ACK message. When network congestion occurs, the sending device slows down the sending rate of the first data stream to reduce the number of data messages entering the network and improve throughput.

[0031] Based on the second aspect, in a second possible implementation of the second aspect:

[0032] The sending device may also detect the ECN field in the IP header of the ACK message, determine the network status based on different values ​​of the ECN field, and then adjust the sending rate of the first data stream. The indicator is the first value of the ECN field; when network congestion occurs, the AP sets the ECN field of the first ACK message to the first value; when network congestion does not occur, the AP sets the ECN field of the first ACK message to a third value; if the ECN field of the first ACK message received by the sending device is the first value, the sending rate of the first data message needs to be reduced; if the ECN field of the first ACK message received is the third value, the sending rate is not changed.

[0033] The sending device determines the transmission status of the first data stream according to the ECN field in the ACK message, and adjusts its sending rate according to the network situation, thereby controlling the number of data messages entering the wired network side and improving throughput.

[0034] A third aspect provides an access device, including:

[0035] a receiving unit, configured to receive a first data packet sent by a sending device, where the first data packet carries a congestion mark, where the congestion mark is used to indicate that network congestion occurs during transmission of a first data stream, and the first data stream includes the first data packet;

[0036] a processing unit, configured to set an indication flag for a first acknowledgment ACK message cached by the AP according to a congestion mark of the first data message; wherein the first data flow includes a second data message corresponding to the first ACK message;

[0037] The sending unit is configured to send the first ACK message carrying the indication identifier to the sending device, where the indication identifier is used to instruct the sending device to adjust the sending rate of the first data stream.

[0038] Based on the third aspect, in a first possible implementation of the third aspect:

[0039] The Internet Protocol (IP) header of the first data packet includes an ECN field, and the congestion mark is a first value of the ECN field of the first data packet;

[0040] The processing unit is specifically used to set the ECE field in the Transmission Control Protocol TCP header of the first ACK message to a second value, and the second value is used to instruct the sending device to adjust the sending rate of the first data stream from a first rate to a second rate, and the second rate is less than the first rate.

[0041] Based on the first possible implementation of the third aspect, in a second possible implementation of the third aspect:

[0042] The processing unit is further configured to set the ECN field of the first data message to a third value;

[0043] The sending unit is further configured to forward the first data message to the receiving device.

[0044] Based on the third aspect, a third possible implementation of the third aspect is:

[0045] The Internet Protocol IP header of the first data packet includes an ECN field, and the congestion mark is a first value of the ECN field of the first data packet;

[0046] The processing unit is specifically used to set the ECN field in the IP header of the first ACK message to the first value, and the first value is used to instruct the sending device to adjust the sending rate of the data stream from the first rate to the second rate, and the second rate is less than the first rate.

[0047] Based on the third possible implementation of the third aspect, in a fourth possible implementation of the third aspect:

[0048] The processing unit is further configured to set the ECN field of the first data message to a third value;

[0049] The sending unit is further configured to forward the first data message to the receiving device.

[0050] Based on any one of the third aspect to the fourth possible implementation of the third aspect, in a fifth possible implementation of the third aspect:

[0051] The processing unit is specifically configured to set the indication flag for the first ACK message and the second ACK message buffered by the AP according to the congestion mark of the first data message, wherein the first data flow includes a third data message corresponding to the second ACK message.

[0052] A fourth aspect provides a network device, including:

[0053] a sending unit, configured to send a first data packet, where the first data packet carries a congestion mark, where the congestion mark is used to indicate that network congestion occurs during transmission of the first data stream;

[0054] a receiving unit, configured to receive a first acknowledgment ACK message, where the first ACK message carries an indicator, the indicator being set by an access point AP according to the congestion mark, the first ACK message being a feedback message of a second data message sent by the network device, and the first data message and the second data message belonging to the first data flow;

[0055] A processing unit is configured to adjust a sending rate of the first data stream according to the indication identifier.

[0056] Based on the fourth aspect, in a first possible implementation of the fourth aspect:

[0057] The indicator is a second value of the ECE field in the TCP header of the first ACK message;

[0058] The processing unit is specifically configured to adjust the sending rate of the first data stream from a first rate to a second rate according to the second value of the ECE field, where the second rate is lower than the first rate.

[0059] Based on the fourth aspect, in a second possible implementation of the fourth aspect:

[0060] The indicator is a first value of the ECN field in the IP header of the first ACK message;

[0061] The processing unit is specifically configured to, when the ECN field of the first ACK message is the first value, cause the network device to adjust the sending rate of the data stream from a first rate to a second rate, where the second rate is lower than the first rate.

[0062] In a fifth aspect, the present application provides a wireless access device, comprising: at least one processor and a memory, wherein the memory stores computer-executable instructions that can be run on the processor, and when the computer-executable instructions are executed by the processor, the wireless access device executes the method described in the first aspect or any possible implementation of the first aspect.

[0063] In a sixth aspect, the present application provides a network device, comprising: at least one processor and a memory, the memory storing computer-executable instructions that can be run on the processor, and when the computer-executable instructions are executed by the processor, the sending device executes the method described in the second aspect or any possible implementation of the second aspect.

[0064] The seventh aspect of the present application provides a congestion control system, comprising: any wireless access device as described in the third aspect to the fifth embodiment of the third aspect, any network device as described in the fourth aspect to the second embodiment of the fourth aspect, and a receiving device; the network device sends a first data stream to the receiving device through the access device.

[0065] In an eighth aspect, the present application provides a computer storage medium for storing computer software instructions for the above-mentioned wireless access device or network device, including a program designed for executing the wireless access device or network device.

[0066] The wireless access device may be the wireless access device described in the third aspect above.

[0067] The network device may be the network device described in the fourth aspect above.

[0068] In a ninth aspect, the present application provides a chip or chip system, the chip or chip system including at least one processor and a communication interface, the communication interface and the at least one processor being interconnected via a line, the at least one processor being configured to run a computer program or instruction to perform the congestion control method described in any one of the first aspects to any one of the possible implementations of the first aspect;

[0069] The communication interface in the chip may be an input / output interface, a pin or a circuit, etc.

[0070] In one possible implementation, the chip or chip system described above in this application further includes at least one memory, in which instructions are stored. The memory may be a storage unit within the chip, such as a register, a cache, etc., or a storage unit of the chip (e.g., a read-only memory, a random access memory, etc.).

[0071] In a tenth aspect, the present application provides a chip or chip system, the chip or chip system including at least one processor and a communication interface, the communication interface and the at least one processor being interconnected via a line, the at least one processor being configured to run a computer program or instruction to perform the congestion control method described in any one of the second aspect to any one of the possible implementations of the second aspect;

[0072] The communication interface in the chip may be an input / output interface, a pin or a circuit, etc.

[0073] In one possible implementation, the chip or chip system described above in this application further includes at least one memory, in which instructions are stored. The memory may be a storage unit within the chip, such as a register, a cache, etc., or a storage unit of the chip (e.g., a read-only memory, a random access memory, etc.).

[0074] In an eleventh aspect, the present application provides a computer program product, which includes computer software instructions. The computer software instructions can be loaded by a processor to implement the process in the congestion control method of any one of the first to second aspects above.

[0075] It can be seen from the above technical solutions that this application has the following advantages:

[0076] The access point AP replaces some functions of the TCP receiving device. When the AP receives a data packet carrying a congestion mark, the AP directly sets an indication flag in any confirmation ACK message of the same data stream that has been cached locally to indicate that network congestion has occurred on the wired network side. The sending device can directly adjust the sending rate of the data packet according to the ACK message without waiting for the receiving device to mark the ACK message corresponding to the original data message. In this way, the wired network side can complete the marking of the ACK message without going through the receiving device on the wireless network side. The marked ACK message does not need to be transmitted on the wireless network side, which reduces the transmission delay of the sending device receiving the marked ACK message. TCP responds more sensitively to network congestion and has better performance. BRIEF DESCRIPTION OF THE DRAWINGS

[0077] Figure 1 A schematic diagram of the network topology provided in the embodiment of the present application;

[0078] Figure 2 Schematic diagram of the flow of the congestion control method in an embodiment of the present application;

[0079] Figure 3 A flowchart of another congestion control method provided in an embodiment of the present application;

[0080] Figure 4 A schematic diagram of the structure of an access device provided in an embodiment of the present application;

[0081] Figure 5 A schematic diagram of the structure of a sending device provided in an embodiment of the present application;

[0082] Figure 6 A schematic diagram of the structure of another access device provided in an embodiment of the present application;

[0083] Figure 7 A schematic diagram of the structure of another network device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0084] Embodiments of the present application provide a congestion control method, device, and system for reducing the transmission delay of a congestion signal to a sending device.

[0085] The technical solutions in this application will be described in detail below in conjunction with the drawings in this application. Obviously, the described embodiments are only part of the embodiments of this application, rather than all the embodiments.

[0086] The terms "first," "second," "third," "fourth," and the like (if any) in the specification and claims of this application and in the accompanying drawings are used to distinguish similar objects and are not necessarily used to describe a particular order or sequential sequence. It should be understood that the terms used in this manner are interchangeable where appropriate so that the embodiments described herein can be implemented in an order other than that illustrated or described herein. In addition, the terms "including" and "having," and any variations thereof, are intended to cover non-exclusive inclusions, e.g., a process, method, system, product, or apparatus comprising a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or apparatus.

[0087] See also Figure 1 , is a schematic diagram of the network topology provided in the embodiment of this application. Figure 1 As shown, in this architecture, the data center DC is connected to the core switch. As shown in the figure, S1 can be directly connected to the core switch, and S2 can also be connected to the core switch through the network device GW. The data packets entering the core switch are aggregated and divided into data streams entering different access networks, and then connected to the access point AP through other transit devices in the access network. They are all wired network connections. The terminal device H1 can be connected to the access point AP through a wireless access network or directly connected to the wired access network; among them, the traffic mainly flows in the north-south direction. For example, the DC sends a data packet, which is transmitted to the access point through the wired network, and then transmitted to the terminal through the wireless network.

[0088] The Transmission Control Protocol (TCP) is a connection-oriented, reliable transport layer communications protocol. A TCP connection is established between the sending and receiving devices, and a TCP data stream is transmitted over the TCP connection to the receiving device. The TCP data stream is divided into multiple data packets of appropriate length and transmitted over the network to the receiving device. To prevent packet loss, the sending device assigns each data packet a TCP sequence number. The receiving device uses the sequence number to sequentially organize the data packets into a data stream. The receiving device sends an ACK message to the sending device for each successfully received data packet. If the sending device does not receive the ACK message within a reasonable RTT time, the corresponding data packet is considered lost and needs to be retransmitted.

[0089] During TCP transmission, network congestion can cause packet loss, which can seriously affect throughput. Figure 1In the network topology shown, packet loss can be categorized as occurring on the wired network side and on the wireless network side. On the wired network side, the core switch and access switches have different capacities: the core switch's downlink port capacity is typically 100G, while the access switch's downlink port capacity is typically 2.5G. When traffic bursts occur, the access switch's buffer overflows easily, resulting in packet loss. This congestion on the wired network side, which causes packet loss, is primarily due to sudden bursts of traffic. This requires the sending device to promptly adjust the data packet transmission rate to control the number of data packets in the network. On the wireless network side, however, congestion and random packet loss can occur when the number of stations connected to the wireless access point increases or when the air interface status changes. The causes of random packet loss on the wireless network side are completely different from those of burst packet loss on the wired network side. Packet loss on the wireless network side is unrelated to the data transmission rate of the sending device and cannot be improved by adjusting the sending device's transmission rate.

[0090] To address network congestion, a variety of congestion control technologies have emerged, including: TCP end-to-end congestion control technology based on packet loss, TCP end-to-end congestion control technology based on delay, and congestion control technology based on the ECN mechanism.

[0091] In TCP end-to-end packet loss control technology, the sending device identifies the absence of TCP sequence numbers as a signal of network congestion. The sending device determines network congestion based on the packet loss and then adjusts the data packet sending rate based on the determined network congestion. However, with this method, the sending device can only identify packet loss based on the absence of TCP sequence numbers and cannot determine whether the packet loss occurred on the wired or wireless network side. Therefore, random packet loss on the wireless network side can be misidentified as network congestion on the wired network side, causing the sending device to adjust its sending rate. When random packet loss on the wireless network side causes the sending device to slow down, TCP throughput will not increase.

[0092] The delay-based TCP end-to-end congestion control technology is a technology in which the sending device uses the round-trip time (RTT) delay as a congestion signal. When network congestion occurs, the buffer area in the network is filled and the transmission delay will increase. When the sending device detects the increase in the RTT delay of the data packet, it can be determined that network congestion has occurred and the data transmission rate will be reduced. However, this method will mistakenly identify the frequent changes in delay (delay jitter) on the wireless network side due to environmental influences or changes in the air interface status as network congestion on the wired network side. The sending device will also reduce the speed, which will also lead to poor TCP performance and low throughput.

[0093] The ECN mechanism means that both the sending device and the receiving device support ECN feedback. The intermediate device on the wired network side will determine whether network congestion occurs on the wired network side based on the status of the cache sequence. When network congestion occurs, the intermediate device will mark the congestion tag in the ECN field of the IP header of the data packet. When the receiving device receives the data packet, it identifies the congestion tag in the ECN field and marks the ECE field in the TCP header of the ACK packet based on the congestion tag. The ACK packet is then sent to the sending device. The sending device then determines whether to adjust the speed based on the ECE field in the ACK packet.

[0094] Specifically, in IPv4, the ECN mechanism uses the last two bits of the TOS field in the IP header. In IPv6, the TOS field of IPv4 corresponds to the Traffic Class field. These two bits have four combinations: Not-ECT (Not ECN-Capable Transport), ECT(0), ECT(1), and CE (Congestion Experienced). The value of Not-ECT is 00, which is used to indicate to the endpoint that the data packet does not use the ECN mechanism. The value of ECT(0) is 10, which is used to indicate to the endpoint that the data packet uses the ECN mechanism. The value of CE is 11, which is used to indicate to the endpoint that data congestion has occurred.

[0095] Because the intermediate device adds a congestion tag to the ECN field based on the congestion situation on the wired network, this method avoids misjudging network congestion caused by the wireless network. However, since the congestion-tagged data packets must be transmitted over the wireless network to the receiving device, the receiving device must then send feedback to the sending device via the ECE field in the ACK before the sending device can react to and address the congestion. Therefore, if the wireless network experiences latency jitter, the RTT delay of the data packets will increase, and the sending device will not be able to respond to the congestion in a timely manner. This will result in the sending device not being able to respond to network congestion in a timely manner, and TCP throughput will not be improved.

[0096] See also Figure 2 , is a flow chart of the congestion control method in the embodiment of the present application. The embodiment of the present application is based on ECN technology, that is, the sending device, access point AP and receiving device all support the ECN mechanism. Figure 2 As shown, the method includes:

[0097] 201. A sending device sends a first data packet to an intermediate device;

[0098] Based on a TCP connection between a sending device and a receiving device, when the receiving device initiates a data request to the sending device, the sending device will provide a reliable end-to-end data stream to the receiving device. For example, the sending device transmits a first data stream to the receiving device. The data stream may flow from the sending device to an intermediate device, then to an access point (AP), then enter the wireless network through the AP, and finally be transmitted to the receiving device. The first data stream may include multiple data packets, and the sending device sends the first data packet in the first data stream to the intermediate device.

[0099] Exemplarily, the sending device may set the ECN field of the data packet in the first data stream to ECT(0), that is, the value of the ECN field is 10, to indicate to each endpoint that the data packet uses the ECN mechanism, and the TCP sending device supports the use of ECN technology to feedback network congestion.

[0100] 202. The intermediate device determines a value of the ECN field of the first data packet according to the network congestion situation;

[0101] The intermediate device can sense whether network congestion has occurred in the TCP connection based on the local cache sequence; optionally, when there are too many data packets in the link and the intermediate device cache overflows, it is determined that network congestion has occurred; when network congestion occurs on the wired network side, the intermediate device needs to set a congestion mark for the data packet; it can be understood that the intermediate device sets a congestion mark for the first data packet, and the congestion mark is used to indicate that network congestion has occurred during the transmission of the first data stream.

[0102] Exemplarily, in the ECN mechanism, the congestion mark is the first value of the ECN field. For example, when network congestion occurs, the intermediate device sets the ECN field of the first data packet to CE, that is, the value of the ECN field is 11; when network congestion does not occur, the intermediate device does not change the ECN field of the first data packet and still maintains the original value.

[0103] 203. The intermediate device forwards the first data packet to the access point AP;

[0104] It is understandable that the intermediate device may include multiple routing devices, and any routing device may mark the data message it transmits. After determining the ECN field of the data message, the data message needs to be forwarded and then reaches the access point AP.

[0105] 204. The access point AP determines whether the ECN field of the first data message is the first value; if the determination result is yes, step 205 is executed; if the determination result is no, step 209 is directly executed;

[0106] In this embodiment, the access point (AP) replaces part of the functions of the receiving device and processes the congestion marking. Therefore, the AP needs to determine the ECN field of the data message transmitted to the local device, understand the network status based on the value of the ECN field, and take corresponding measures.

[0107] 205. The AP sets the ECE field in the TCP header of the buffered first ACK message to a second value.

[0108] Among them, when the ECN field of the first data message is the first value, it means that network congestion has occurred on the wired network side. The AP needs to set an indication mark for the first confirmation ACK message cached by the AP based on the congestion mark. The indication mark is used to instruct the sending device to adjust the sending rate of the data stream.

[0109] It is understandable that when network congestion occurs on the wired network side, the sending device cannot perceive it by itself, and other devices are required to feed back the network congestion situation to the sending device, and then the sending device will adjust the speed; in a TCP connection, the flow direction of the confirmation message and the flow direction of the data message are opposite. For example, the ACK message is transmitted to the access point AP through the wireless access network, and then forwarded by the intermediate device to the sending device. In this way, the network congestion situation can be fed back to the sending device through the ACK message; in this embodiment, the AP feeds back the network congestion situation to the sending device through an indicator flag in the ACK message.

[0110] For example, in the ECN mechanism, the sending device can identify the ECE field in the TCP header of the ACK message. When the ECE field is the second value mentioned above, such as 1, the sending device reduces the sending rate of the data stream. When the ECE field is 0, the sending device maintains the original sending rate unchanged.

[0111] For example, when the value of the ECN field of the first data packet received by the AP is 11, it indicates that network congestion has occurred. The AP sets the ECE field of the first ACK packet cached in the local cache sequence to 1, where the second data packet corresponding to the first ACK packet and the first data packet both belong to the first data flow, and the second data packet is a data packet in the first data flow transmitted before the first data packet.

[0112] In an optional embodiment, the AP may also set the above-mentioned indication flag for the second ACK message that has been cached by the AP according to the congestion mark, and the data messages corresponding to the first ACK message and the second ACK message belong to the same data stream; exemplarily, when the AP detects network congestion on the wired network side, the ECE bit of the first to-be-sent ACK message in the local cache sequence may be set to 1, or the ECE bits of the first and second ACK messages in the local cache sequence may be set, or the ECE bits of all cached ACK messages in the local cache sequence may be set to 1, without specific limitation, wherein these ACK messages are all response streams corresponding to the first data stream.

[0113] 206. The AP sends the first ACK message to the sending device.

[0114] After the AP determines the value of the ECE field in the ACK message, it forwards the ACK message.

[0115] 207. The sending device adjusts the sending rate of the first data stream according to the ECE field of the first ACK message;

[0116] After receiving the ACK message, the sending device needs to identify the ECE field of the ACK message. For example, when the ECE field of the ACK message takes a value of 1, it indicates that network congestion has occurred in the wired network, and the sending device needs to adjust the sending rate of the first data stream, that is, the sending device slows down the sending rate, thereby reducing the number of data messages entering the wired network side; when the ECE field of the ACK message takes a value of 0, it indicates that network congestion has not occurred on the wired network side, and the sending device does not need to slow down the sending rate.

[0117] 208. The AP sets the ECN field in the IP header of the first data packet to a third value.

[0118] After the AP identifies network congestion and processes the congestion marker, that is, after the AP executes steps 204-206 above, the receiving device no longer needs to set the ECE field of the ACK message corresponding to the first data message based on the ECN field in the first data message. To avoid excessive speed reduction of the sending device due to repeated congestion processing, the AP sets the ECN field of the first data message to a third value before forwarding the first data message to the receiving device. Specifically, the value of the ECN field is set from 11 to 10, 01, or 00. This causes the receiving device to no longer set an indicator in the ACK message corresponding to the first data message, that is, to no longer mark the ECE bit in the ACK message corresponding to the first data message.

[0119] 209. The AP sends a first data message to the receiving device.

[0120] It can be understood that step 208 has no timing relationship with step 205, step 206 and step 207. Step 208 and step 209 are the AP processing the data message and sending it to the receiving device, and step 205, step 206 and step 207 are the AP processing the ACK message and sending it to the sending device. The two processes can be simultaneous, or the data message can be processed first and the ACK message can be processed later, or the ACK message can be sent first and the data message can be sent later. There is no specific limitation.

[0121] In this embodiment, based on the marking method of the existing ECN mechanism, the access point AP replaces the marking function of the receiving device. When the AP receives a data packet carrying a congestion mark, the AP directly sets an indication flag in any acknowledgment ACK message of the same data stream that has been cached locally. The sending device can directly adjust the sending rate of the data packet according to the indication flag without waiting for the receiving device to mark the ACK message corresponding to the original data packet. In this way, the wired network side can complete the marking of the ACK message without going through the receiving device on the wireless network side, thereby reducing the delay of the marked ACK message on the wireless network side, making TCP more sensitive to network congestion and achieving more optimized performance.

[0122] exist Figure 2 In the illustrated embodiment, since the sending device adjusts the sending rate of the first data stream according to the ECE field of the ACK message, the sending device cannot know whether the ECE field is set by the receiving device or the access point AP. In some scenarios, it is necessary to distinguish the execution subjects. Therefore, in this embodiment, when the AP recognizes that network congestion occurs on the wired network side, a new indicator is used to feedback the network congestion situation to the sending device.

[0123] See also Figure 3 , which is a flow chart of another congestion control method provided by an embodiment of the present application, such as Figure 3 As shown, the method specifically includes:

[0124] 301. A sending device sends a first data packet to an intermediate device.

[0125] When the receiving device initiates a data request to the sending device, the sending device will provide a reliable end-to-end data stream to the receiving device; illustratively, the sending device transmits a first data stream to the receiving device, and the direction of the data stream can be from the sending device to the intermediate device and then to the access point AP, and then enter the wireless network side through the AP, and finally transmitted to the receiving device, wherein the first data packet belongs to the first data stream.

[0126] The sending device may set the ECN field of the data message in the first data stream to ECT(1), that is, the value is 01, which is used to indicate that the sending device supports the use of the marking method provided in the embodiment of the present application as congestion signal feedback.

[0127] 302. The intermediate device determines a value of the ECN field of the first data packet according to the network congestion situation;

[0128] Step 302 and Figure 2 Step 202 in the illustrated embodiment is similar and will not be described in detail here.

[0129] 303. The intermediate device forwards the first data packet to the access point;

[0130] Step 303 and Figure 2 Step 203 in the illustrated embodiment is similar and will not be described in detail here.

[0131] 304. The access point AP determines whether the ECN field of the first data message is the first value; if the determination result is yes, step 305 is executed; if the determination result is no, step 308 is executed;

[0132] Step 304 and Figure 2 Step 204 in the illustrated embodiment is similar and will not be described in detail here.

[0133] 305. The AP sets the ECN field in the IP header of the cached first acknowledgment ACK message to the first value.

[0134] In an embodiment of the present application, the sending device will identify the ECN field of the IP header of the ACK message. When the AP learns that network congestion has occurred on the wired network side through the congestion mark of the data message, it sets the ECN field of the first ACK message cached locally to a first value. The first value of the ECN field of the ACK message is used to instruct the sending device to adjust the sending rate of the data stream from the first rate to the second rate, and the second rate is less than the first rate.

[0135] For example, when the AP detects that the ECN field value of the first data packet in the first data stream is 11, that is, network congestion has occurred, then the AP sets the ECN field of the first ACK packet that has been locally cached in the response stream of the first data stream to 11. The first ACK packet is an acknowledgment packet of the second data packet transmitted before the first data packet in the first data stream. The ECN field of the first ACK packet is used to instruct the device to reduce the sending rate of the first data stream.

[0136] The AP may mark multiple buffered ACK messages, or may mark all buffered ACK messages, without specific limitation.

[0137] 306. The AP sends the first ACK message to the sending device.

[0138] After confirming the ECN field of the first ACK message, the AP forwards the first ACK message to the sending device.

[0139] 307. The sending device adjusts the sending rate of the first data stream according to the ECN field of the first ACK message;

[0140] The ECN field of the first ACK message can have multiple values. For example, when network congestion occurs, the ECN field of the first ACK message takes a value of 11, and the sending device reduces the sending rate of the first data stream based on the first value; when network congestion does not occur, the ECN field of the first ACK message takes a value of 10, and the sending device maintains the sending rate of the first data stream unchanged.

[0141] The value of the ECN field of the first ACK message can be set by yourself, and the specific form is not limited.

[0142] When the sending device receives an ACK message with an ECN mark, it can reduce the speed according to different window reduction rules. For example, it can reduce the speed only once within a delay period, or reduce the speed once every N ACK messages with ECN marks are received. The specific speed reduction rules are not limited.

[0143] 308. The AP sets the ECN field in the IP header of the first data packet to a third value.

[0144] After the AP identifies network congestion and processes the congestion marker, that is, after the AP executes steps 304-306 above, the receiving device no longer needs to set the ECE field of the ACK message corresponding to the first data message based on the ECN field in the first data message. To avoid excessive speed reduction of the sending device due to repeated congestion processing, the AP sets the ECN field of the first data message to a third value before forwarding the first data message to the receiving device. Specifically, the value of the ECN field is set from 11 to 10, 01, or 00. This causes the receiving device to no longer set an indicator in the ACK message corresponding to the first data message, that is, to no longer mark the ECE bit in the ACK message corresponding to the first data message.

[0145] 309. The AP sends a first data message to the receiving device.

[0146] Step 308 has no timing relationship with step 305, step 306 and step 307. Step 308 and step 309 are the AP processing the data message and sending it to the receiving device, and step 305, step 306 and step 307 are the AP processing the ACK message and sending it to the sending device. The two processes can be simultaneous, or the data message can be processed first and the ACK message can be processed later, or the ACK message can be sent first and the data message can be sent later. There is no specific limitation.

[0147] In an embodiment of the present application, the access point AP adopts a new marking method when setting an indication mark for the ACK message, that is, when the AP receives a data message carrying a congestion mark, the AP sets the ECN bit of any locally cached confirmation ACK message to the first value. Since in the prior art, the sending device only checks the ECE bit of the ACK message, and the receiving device can also set the ECE bit of the ACK message, it is impossible to identify the execution entity that sets the ACK message. However, using this embodiment, the AP sets the ECN bit of the ACK message according to network congestion. The sending device can identify the ECN bit and know that it is the indication mark set by the AP. In this way, different window lowering rules can be set according to different execution entities, thereby improving the flexibility of the congestion control algorithm.

[0148] See also Figure 4 , a schematic diagram of the structure of an access device provided in an embodiment of the present application. Figure 4 As shown, the access device 400 includes:

[0149] A receiving unit 401 is configured to receive a first data packet sent by a sending device, where the first data packet carries a congestion mark, where the congestion mark is used to indicate that network congestion occurs during transmission of a first data stream, and the first data stream includes the first data packet;

[0150] The processing unit 402 is configured to set an indication flag for the first acknowledgment ACK message buffered by the AP according to the congestion mark of the first data message; wherein the first data flow includes a second data message corresponding to the first ACK message;

[0151] The sending unit 403 is configured to send the first ACK message carrying the indication identifier to the sending device, where the indication identifier is used to instruct the sending device to adjust the sending rate of the first data stream.

[0152] In a possible implementation, the Internet Protocol (IP) header of the first data packet includes an ECN field, and the congestion mark is a first value of the ECN field of the first data packet;

[0153] The processing unit 402 is specifically used to set the ECE field in the Transmission Control Protocol TCP header of the first ACK message to a second value, and the second value is used to instruct the sending device to adjust the sending rate of the first data stream from a first rate to a second rate, and the second rate is less than the first rate.

[0154] In a possible implementation, the processing unit 402 is further configured to set the ECN field of the first data message to a third value;

[0155] The sending unit 403 is further configured to forward the first data message to the receiving device.

[0156] In another embodiment of an access device provided by the embodiment of the present application, the Internet Protocol IP header of the first data packet includes an ECN field, and the congestion mark is a first value of the ECN field of the first data packet;

[0157] The processing unit 402 is specifically configured to set the ECN field in the IP header of the first ACK message to the first value, where the first value is configured to instruct the sending device to adjust the sending rate of the data stream from a first rate to a second rate, where the second rate is less than the first rate.

[0158] In a possible implementation, the processing unit 402 is further configured to set the ECN field of the first data packet to a third value;

[0159] The sending unit 403 is further configured to forward the first data message to the receiving device.

[0160] In one possible implementation, the processing unit 402 is specifically configured to set the indication flag for the first ACK message and the second ACK message cached by the AP according to the congestion mark of the first data message, wherein the first data flow includes a third data message corresponding to the second ACK message.

[0161] For details on the functions of the various units of the above access equipment, please refer to the Figure 2 and Figure 3 The implementation details of the access point AP in the illustrated method embodiment will not be repeated here.

[0162] See also Figure 5 , a schematic diagram of the structure of a network device provided in an embodiment of the present application. Figure 5 As shown, the network device 500 includes:

[0163] A sending unit 501 is configured to send a first data packet, where the first data packet carries a congestion mark, where the congestion mark is used to indicate that network congestion occurs during transmission of the first data stream;

[0164] a receiving unit 502, configured to receive a first acknowledgment ACK message, where the first ACK message carries an indicator, the indicator being set by the access point AP according to the congestion mark, the first ACK message being a feedback message of a second data message sent by the network device 500, the first data message and the second data message belonging to the first data flow;

[0165] The processing unit 503 is configured to adjust the sending rate of the first data stream according to the indication identifier.

[0166] In one possible implementation, the indication identifier is a second value of an ECE field in a TCP header of the first ACK message;

[0167] The processing unit 503 is specifically configured to adjust the sending rate of the first data stream from a first rate to a second rate according to the second value of the ECE field, where the second rate is lower than the first rate.

[0168] In a possible implementation, the indication identifier is a first value of an ECN field in an IP header of the first ACK message;

[0169] The processing unit 503 is specifically configured to, when the ECN field of the first ACK message is the first value, cause the network device to adjust the sending rate of the data stream from a first rate to a second rate, where the second rate is lower than the first rate.

[0170] It should be noted that the functions of the various units of the above-mentioned sending device can be specifically referred to the above Figure 2 and Figure 3 The implementation details of the sending device in the illustrated method embodiment will not be repeated here.

[0171] See also Figure 6 , is a structural diagram of another access device provided in an embodiment of the present application, the access device includes: a processor 601, a memory 602, and a communication interface 603.

[0172] The processor 601, memory 602, and communication interface 603 are interconnected via a bus; the bus may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus. The bus may be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Figure 6 Only one thick line is used in the diagram, but this does not mean that there is only one bus or one type of bus.

[0173] The memory 602 may include volatile memory, such as random-access memory (RAM); the memory may also include non-volatile memory, such as flash memory, a hard disk drive (HDD) or a solid-state drive (SSD); the memory 602 may also include a combination of the above types of memory.

[0174] Processor 601 may be a central processing unit (CPU), a network processor (NP), or a combination of a CPU and an NP. Processor 601 may further include a hardware chip. The hardware chip may be an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a combination thereof. The PLD may be a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof.

[0175] The communication interface 603 may be a wired communication interface, a wireless communication interface, or a combination thereof. For example, the wired communication interface may be an Ethernet interface. The Ethernet interface may be an optical interface, an electrical interface, or a combination thereof. The wireless communication interface may be a WLAN interface, a cellular network communication interface, or a combination thereof.

[0176] Optionally, the memory 602 may also be used to store program instructions, and the processor 601 calls the program instructions stored in the memory 602 to execute Figure 2 or Figure 3 One or more steps in the illustrated method embodiment, or optional implementation methods thereof, enable the access device to implement the AP function in the above method, and the details will not be repeated here.

[0177] See also Figure 7 , is a structural diagram of another network device provided in an embodiment of the present application, which may include a processor 701, a memory 702, and a communication interface 703.

[0178] The processor 701, the memory 702, and the communication interface 703 are interconnected via a bus; the bus may be a PCI bus or an EISA bus, etc. The bus may be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Figure 7 Only one thick line is used in the diagram, but this does not mean that there is only one bus or one type of bus.

[0179] The memory 702 may include a volatile memory, such as RAM; the memory may also include a non-volatile memory, such as flash, HDD or SSD; the memory 702 may also include a combination of the above types of memory.

[0180] The processor 701 may be a CPU, an NP, or a combination of a CPU and an NP. The processor 701 may further include a hardware chip. The hardware chip may be an ASIC, a PLD, or a combination thereof. The PLD may be a CPLD, an FPGA, a GAL, or any combination thereof.

[0181] The communication interface 703 may be a wired communication interface, a wireless communication interface, or a combination thereof. For example, the wired communication interface may be an Ethernet interface. The Ethernet interface may be an optical interface, an electrical interface, or a combination thereof. The wireless communication interface may be a WLAN interface, a cellular network communication interface, or a combination thereof.

[0182] Optionally, the memory 702 may also be used to store program instructions, and the processor 701 calls the program instructions stored in the memory 702 to execute Figure 2 or Figure 3 One or more steps in the illustrated method embodiment, or optional implementation methods thereof, enable the network device 700 to implement the function of the sending device in the above method, and the details will not be repeated here.

[0183] The embodiment of the present application also provides a congestion control system, including: Figure 4 or Figure 6 The access device shown is Figure 5 or Figure 7 The sending device shown also includes a receiving device.

[0184] The embodiment of the present application also provides a chip or chip system, which includes at least one processor and a communication interface, the communication interface and the at least one processor are interconnected through a line, and the at least one processor runs an instruction or computer program to execute Figure 2 or Figure 3 One or more steps in the method embodiment shown, or optional implementation methods thereof, are used to implement the functions of the AP in the above method.

[0185] The communication interface in the chip may be an input / output interface, a pin or a circuit, etc.

[0186] In one possible implementation, the chip or chip system described above further includes at least one memory storing instructions. The memory may be a storage unit within the chip, such as a register or cache, or a storage unit of the chip (e.g., a read-only memory or a random access memory).

[0187] The embodiment of the present application also provides a chip or chip system, which includes at least one processor and a communication interface, the communication interface and the at least one processor are interconnected through a line, and the at least one processor is used to run a computer program or instruction to perform Figure 2 and Figure 3 An execution method of a sending device as described in any one of any possible implementation manners of the illustrated embodiment;

[0188] The communication interface in the chip may be an input / output interface, a pin or a circuit, etc.

[0189] In one possible implementation, the chip or chip system described above in this application further includes at least one memory, in which instructions are stored. The memory may be a storage unit within the chip, such as a register, a cache, etc., or a storage unit of the chip (e.g., a read-only memory, a random access memory, etc.).

[0190] An embodiment of the present application further provides a computer storage medium storing computer program instructions for implementing the access device functions in the congestion control method provided in the embodiment of the present application.

[0191] An embodiment of the present application further provides a computer storage medium storing computer program instructions for implementing the functions of a sending device in the congestion control method provided in the embodiment of the present application.

[0192] The present application also provides a computer program product, which includes computer software instructions that can be loaded by a processor to implement the above Figure 2 or Figure 3 The process in the congestion control method is shown.

[0193] In the above embodiments, all or part of the embodiments may be implemented by software, hardware, firmware, or any combination thereof. When implemented by software, all or part of the embodiments may be implemented in the form of a computer program product.

[0194] The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the process or function described in this application is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from a website, computer, server or data center to another website, computer, server or data center via a wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) method. The computer-readable storage medium can be any available medium that a computer can store or a data storage device such as a server or data center that includes one or more available media integrations. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state drive (SSD)).

[0195] Those skilled in the art will clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.

[0196] In the several embodiments provided in this application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of the units is merely a logical function division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or units, which can be electrical, mechanical or other forms.

[0197] The units described as separate components may or may not be physically separate, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of these units may be selected to achieve the purpose of this embodiment according to actual needs.

[0198] In addition, the functional units in the various embodiments of the present application may be integrated into a single processing unit, or each unit may exist physically separately, or two or more units may be integrated into a single unit. The aforementioned integrated units may be implemented in the form of hardware or software functional units.

[0199] If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application is essentially or the part that contributes to the prior art or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions for enabling a computer device (which can be a personal computer, server, or network device, etc.) to execute all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM, read-only memory), random access memory (RAM, random access memory), disk or optical disk, and other media that can store program code.

Claims

1. A congestion control method, characterized in that: The method comprises: An access point AP receives a first data packet sent by a sending device, where the first data packet carries a congestion mark, where the congestion mark is used to indicate that network congestion occurs during transmission of a first data stream, and the first data stream includes the first data packet; The AP sets an indication flag for the first ACK message buffered by the AP according to the congestion mark of the first data message; wherein the first data flow includes a second data message corresponding to the first ACK message; The AP sends the first ACK message carrying the indication identifier to the sending device, where the indication identifier is used to instruct the sending device to adjust the sending rate of the first data stream.

2. The method according to claim 1, characterized in that The Internet Protocol (IP) header of the first data packet includes an ECN field, and the congestion mark is a first value of the ECN field of the first data packet; The AP setting an indication flag for a first acknowledgment ACK message buffered by the AP according to the congestion mark of the first data message, including: The AP sets the ECE field in the Transmission Control Protocol TCP header of the first ACK message to a second value, where the second value is used to instruct the sending device to adjust the sending rate of the first data stream from a first rate to a second rate, and the second rate is less than the first rate.

3. The method according to claim 2, characterized in that After the AP sets the ECE field in the Transmission Control Protocol (TCP) header of the first ACK message to a second value, the method further includes: The AP sets the ECN field of the first data packet to a third value; The AP forwards the first data packet to a receiving device.

4. The method according to claim 1, wherein The Internet Protocol (IP) header of the first data packet includes an ECN field, and the congestion mark is a first value of the ECN field of the first data packet; The AP setting an indication flag for a first acknowledgment ACK message buffered by the AP according to the congestion mark of the first data message, including: The AP sets the ECN field in the IP header of the first ACK message to the first value, where the first value is used to instruct the sending device to adjust the sending rate of the data stream from a first rate to a second rate, where the second rate is less than the first rate.

5. The method according to claim 4, characterized in that After the AP sets the ECN field in the IP header of the first ACK message to the first value, the method further includes: The AP sets the ECN field of the first data packet to a third value; The AP forwards the first data packet to a receiving device.

6. The method according to any one of claims 1 to 5, characterized in that The AP setting an indication flag for a first acknowledgment ACK message buffered by the AP according to the congestion mark of the first data message, including: The AP sets the indication flag for the first ACK message and a second ACK message buffered by the AP according to the congestion mark of the first data message, wherein the first data flow includes a third data message corresponding to the second ACK message.

7. A congestion control method, characterized in that: The method comprises: The sending device sends a first data packet, where the first data packet carries a congestion mark, where the congestion mark is used to indicate that network congestion occurs during transmission of the first data stream; The sending device receives a first ACK message, where the first ACK message carries an indicator, where the indicator is set by an access point AP according to the congestion mark, and the first ACK message is a feedback message of a second data message sent by the sending device, where the first data message and the second data message belong to the first data flow; The sending device adjusts the sending rate of the first data stream according to the indication identifier.

8. The method according to claim 7, characterized in that The indicator is a second value of the ECE field in the TCP header of the first ACK message; The sending device adjusts the sending rate of the first data stream according to the indication identifier, including: The sending device adjusts the sending rate of the first data stream from a first rate to a second rate according to the second value of the ECE field, where the second rate is lower than the first rate.

9. The method according to claim 7, characterized in that The indicator is a first value of the ECN field in the IP header of the first ACK message; The sending device adjusts the sending rate of the first data stream according to the indication identifier, including: When the ECN field of the first ACK message is the first value, the sending device adjusts the sending rate of the data stream from a first rate to a second rate, where the second rate is lower than the first rate.

10. An access device, characterized in that: The device comprises: a receiving unit, configured to receive a first data packet sent by a sending device, where the first data packet carries a congestion mark, where the congestion mark is used to indicate that network congestion occurs during transmission of a first data stream, and the first data stream includes the first data packet; a processing unit, configured to set an indication flag for a first ACK message buffered by the access device according to a congestion mark of the first data message; wherein the first data flow includes a second data message corresponding to the first ACK message; The sending unit is configured to send the first ACK message carrying the indication identifier to the sending device, where the indication identifier is used to instruct the sending device to adjust the sending rate of the first data stream.

11. The device according to claim 10, characterized in that The Internet Protocol (IP) header of the first data packet includes an ECN field, and the congestion mark is a first value of the ECN field of the first data packet; The processing unit is specifically used to set the ECE field in the Transmission Control Protocol TCP header of the first ACK message to a second value, and the second value is used to instruct the sending device to adjust the sending rate of the first data stream from a first rate to a second rate, and the second rate is less than the first rate.

12. The device according to claim 11, characterized in that The processing unit is further configured to set the ECN field of the first data message to a third value; The sending unit is further configured to forward the first data message to a receiving device.

13. The device according to claim 10, characterized in that The Internet Protocol (IP) header of the first data packet includes an ECN field, and the congestion mark is a first value of the ECN field of the first data packet; The processing unit is specifically used to set the ECN field in the IP header of the first ACK message to the first value, where the first value is used to instruct the sending device to adjust the sending rate of the data stream from a first rate to a second rate, and the second rate is less than the first rate.

14. The device according to claim 13, characterized in that The processing unit is further configured to set the ECN field of the first data message to a third value; The sending unit is further configured to forward the first data message to a receiving device.

15. The device according to any one of claims 10 to 14, characterized in that The processing unit is specifically configured to set the indication flag for the first ACK message and the second ACK message buffered by the access device according to the congestion mark of the first data message, wherein the first data flow includes a third data message corresponding to the second ACK message.

16. A network device, characterized in that: The network equipment includes: a sending unit, configured to send a first data packet, where the first data packet carries a congestion mark, where the congestion mark is used to indicate that network congestion occurs during transmission of the first data stream; a receiving unit, configured to receive a first ACK message, where the first ACK message carries an indicator, where the indicator is set by an access point AP according to the congestion mark, where the first ACK message is a feedback message of a second data message sent by the network device, and the first data message and the second data message belong to the first data flow; A processing unit is configured to adjust a sending rate of the first data stream according to the indication identifier.

17. The network device according to claim 16, wherein: The indicator is a second value of the ECE field in the TCP header of the first ACK message; The processing unit is specifically configured to adjust the sending rate of the first data stream from a first rate to a second rate according to the second value of the ECE field, where the second rate is lower than the first rate.

18. The network device according to claim 16, wherein: The indicator is a first value of the ECN field in the IP header of the first ACK message; The processing unit is specifically configured to, when the ECN field of the first ACK message is the first value, cause the network device to adjust the sending rate of the data stream from a first rate to a second rate, where the second rate is lower than the first rate.

19. A congestion control system, characterized in that: include: The access device according to any one of claims 10 to 15, the network device according to any one of claims 16 to 18, and a receiving device; The network device sends a first data stream to the receiving device through the access device.

Citation Information

Patent Citations

  • Systems and methods for managing congestion

    CA2875457A1

  • Method, device and system for relieving congestion

    CN109981471A