A congestion control method and a communication device

CN114979019BActive Publication Date: 2026-10-23HUAWEI TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202110196728.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-02-22
Publication Date
2026-10-23
Estimated Expiration
2041-02-22

AI Technical Summary

Technical Problem

[0004]但是,由于接入同一台AP的多个用户流量共享网络带宽,RTT较小的业务流量获取的网络带宽较大,RTT较大的业务流量获取的网络带宽较小,不同RTT的业务流量的网络带宽占用率不同,不同RTT的流量间报文传输的公平性较差

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114979019B_ABST
    Figure CN114979019B_ABST
Patent Text Reader

Abstract

The embodiment of the application discloses a congestion control method and a communication device, which are used for improving the fairness of message transmission between flows with different RTTs. The method of the embodiment of the application comprises the following steps: a communication device receives a data message sent by a sending end to a receiving end, determines a congestion proportion factor of a congestion identifier and a rate factor of a first message according to the first message of the congestion identifier and total data messages, and calculates a first receiving window value, so as to modify a second receiving window value in an acknowledgement message fed back by the receiving end according to the first message, so that the sending end modifies a sending window value.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of communications, and more particularly to a congestion control method and a communication device. Background Technology

[0002] In recent years, cloud computing data center technology has developed rapidly, with tens of thousands of server nodes forming clusters within data centers. The computing, storage, and networking resources of these nodes are abstracted for unified management, providing service capabilities unmatched by a single server. Cloud data centers have become the most efficient and promising infrastructure for supporting data storage and deploying diverse network services and applications. In enterprise campus networks, switch networking is typically divided into three layers: core switches, aggregation switches, and access switches. Campus traffic is primarily north-south (top-down), such as public cloud data flows, which pass through gateways, core switches, aggregation switches, access switches, and wireless access points (APs) to reach the terminal, or private cloud data flows, which pass through core switches, aggregation switches, access switches, and APs to reach the terminal. Users access the enterprise campus network through terminals, and the round-trip time (RTT) varies for different service traffic.

[0003] In the classic TCP congestion control algorithm, when the enterprise campus network receives an acknowledgment (ACK) message from the terminal, the enterprise campus network adjusts the size of the congestion window (CWND) using this classic congestion control algorithm.

[0004] However, since multiple user traffic connected to the same AP shares network bandwidth, traffic with a shorter RTT receives more network bandwidth, while traffic with a longer RTT receives less network bandwidth. This results in different network bandwidth utilization rates for traffic with different RTTs, leading to poor fairness in packet transmission between traffic with different RTTs. Summary of the Invention

[0005] This application provides a congestion control method and a communication device to improve the fairness of message transmission between traffic with different RTTs.

[0006] This application provides a congestion control method, comprising: a communication device receiving data packets from multiple traffic streams from a sender, wherein the communication device may be one or more; the communication device determining a congestion ratio factor of a congestion identifier and a rate factor for the transmission of the first packet based on a first message and a data packet, and calculating a first receiving window value, wherein the first receiving window value represents the amount of data that the sender is allowed to send by the receiver, and the first message is a message in which the communication device or one of the multiple communication devices sets a congestion identifier; the communication device modifying an acknowledgment message from the receiver based on the first receiving window value, wherein the acknowledgment message is determined by the receiver based on the packets in the traffic stream where the first message is located; and the communication device sending the modified acknowledgment message to the sender, so that the sender adjusts the sending window value based on the modified acknowledgment message, wherein the sending window value represents the amount of data that the sender sends.

[0007] In the first aspect described above, the sending end can interact with the receiving end through multiple traffic streams. The communication device can forward data packets exchanged between the sending and receiving ends. When some data packets experience data congestion, the communication device or one of the multiple communication devices can set a congestion flag in the header of the data packet. The data packet with the congestion flag is then designated as the first packet. The communication device can calculate the congestion ratio factor of the congestion flag and the rate factor of the first packet transmission based on the first packet and the total number of data packets. Based on the congestion ratio factor and the rate factor, it can calculate a first receiving window value indicating the amount of data the receiving end wants to receive. After receiving an acknowledgment packet from the receiving end, the communication device can modify the second receiving window value in the acknowledgment packet to the aforementioned first receiving window value before sending it back to the sending end. This allows the sending end to send the corresponding number of bytes of data. Based on the rate factor, the fairness of packet transmission between different RTT traffic streams can be improved, increasing the throughput of large RTT traffic while ensuring overall network bandwidth utilization.

[0008] In one possible implementation, the steps described above, whereby the communication device determines the congestion ratio factor of the congestion identifier and the rate factor of the first message transmission based on the first message and the data message, and calculates the first receive window value, include: the communication device determining the congestion ratio factor based on the first message and the messages in the traffic containing the first message, wherein the messages in the traffic containing the first message are included in the data message; the communication device determining the rate factor based on the number of messages in the traffic containing the first message; and the communication device calculating the first receive window value based on the congestion ratio factor and the rate factor.

[0009] In the above possible implementations, the communication device can obtain the flow rate of the traffic of multiple first messages within a timer period, and determine the rate factor through a preset calculation method. This rate factor is related to the flow rate of the first message, that is, it is related to the round-trip time (RTT) of the message, which can improve the fairness of message transmission between traffic with different RTTs.

[0010] In one possible implementation, the above steps of the communication device determining the congestion ratio factor based on the first message and the messages in the traffic containing the first message include: the communication device calculating the message ratio based on the ratio of the number of the first message and the number of messages in the traffic containing the first message; and the communication device determining the congestion ratio factor based on the message ratio and a preset calculation method.

[0011] In the above possible implementations, the communication device counts the number of the first packet in the data packets within a timer period and the total number of packets in the traffic where the first packet is located. That is, the packet ratio is obtained based on the two packet counts, and the congestion ratio factor of the congestion identifier can be calculated according to the preset calculation method, which can improve the feasibility of the solution.

[0012] In one possible implementation, the above steps of the communication device modifying the acknowledgment message from the receiving end according to the first receiving window value include: the communication device reading the second receiving window value in the acknowledgment message; and the communication device modifying the second receiving window value in the acknowledgment message according to the first receiving window value.

[0013] In the above possible implementations, the communication device needs to forward the acknowledgment message sent by the receiving end to the sending end. In this application, the communication device can intercept the acknowledgment message in order to read the second receiving window value in the acknowledgment message and modify the second receiving window value to the first receiving window value mentioned above, so as to improve the feasibility of the solution.

[0014] In one possible implementation, the above steps of the communication device modifying the acknowledgment message from the receiving end according to the first receiving window value include: when the sequence number of the first message is greater than or equal to the standard sequence number, the communication device updates the standard sequence number according to the first receiving window value, and modifies the acknowledgment message from the receiving end according to the first receiving window value, wherein the standard sequence number is a preset sequence number.

[0015] In the above possible implementations, the communication device can also detect the relationship between the sequence number of the first message and the standard sequence number, and update the standard sequence number and modify the acknowledgment message only when the sequence number is greater than or equal to the standard sequence number. The second receiving window value of the same acknowledgment message can be modified only once, which can prevent repeated modification or excessive modification and avoid incorrect adjustment of the sending window.

[0016] In one possible implementation, the congestion identifier is the Explicit Congestion Notification (ECN) identifier.

[0017] In the above possible implementations, the congestion identifier can be an explicit congestion notification (ECN) identifier. ECN-compatible switches and routers will mark network data packets when congestion is detected to form the aforementioned first packet.

[0018] A second aspect of this application provides a communication device, comprising: a receiving unit for receiving data packets from multiple traffic streams from a sending end, wherein the communication device may be one or more; a determining unit for determining a congestion ratio factor of a congestion identifier and a rate factor for the transmission of the first packet based on a first packet and a data packet, and calculating a first receiving window value, wherein the first receiving window value represents the amount of data that the receiving end allows the sending end to send, and the first packet is a packet in which one of the communication devices sets a congestion identifier; a modifying unit for modifying an acknowledgment packet from the receiving end based on the first receiving window value, wherein the acknowledgment packet is determined by the receiving end based on the packets in the traffic stream where the first packet is located; and a sending unit for sending the modified acknowledgment packet to the sending end, so that the sending end adjusts the sending window value based on the modified acknowledgment packet, wherein the sending window value represents the amount of data sent by the sending end.

[0019] The communication device is used to perform the method of the first aspect or any implementation thereof.

[0020] A third aspect of this application provides a communication device, including a processor, a memory, and a communication interface. The processor is configured to execute instructions stored in the memory, causing the communication device to perform the method provided by the first aspect or any optional method of the first aspect. The communication interface is configured to receive or transmit instructions. Specific details of the communication device provided in the third aspect can be found in the first aspect or any optional method of the first aspect, and will not be repeated here.

[0021] The fourth aspect of this application provides a computer-readable storage medium storing a program that, when executed by a computer, performs the method provided in the first aspect or any alternative method of the first aspect.

[0022] The fifth aspect of this application provides a computer program product that, when executed on a computer, performs the method provided in the first aspect or any alternative method of the first aspect. Attached Figure Description

[0023] Figure 1 The system architecture of the enterprise campus network provided in the embodiments of this application;

[0024] Figure 2 A schematic diagram of an embodiment of a congestion control method provided in this application;

[0025] Figure 3 A flowchart for receiving data packets provided in this application embodiment;

[0026] Figure 4 A flowchart illustrating the receipt of an acknowledgment message provided in this application embodiment;

[0027] Figure 5 This is a schematic diagram of the hardware structure of the AP provided in the embodiments of this application;

[0028] Figure 6 This is a schematic diagram of traffic simulation provided in an embodiment of this application;

[0029] Figure 7 This is a schematic diagram of simulation results provided for an embodiment of this application;

[0030] Figure 8 A schematic diagram of the structure of a communication device provided in an embodiment of this application;

[0031] Figure 9 This is another structural schematic diagram of the communication device provided in an embodiment of this application. Detailed Implementation

[0032] This application provides a congestion control method and a communication device to improve the fairness of message transmission between traffic with different RTTs.

[0033] The embodiments of this application are described below with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments of this application, and not all of them. As those skilled in the art will recognize, with the development of technology and the emergence of new scenarios, the technical solutions provided by the embodiments of this application are also applicable to similar technical problems.

[0034] The terms "first," "second," etc., used in the specification, claims, and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments described herein can be implemented in a sequence other than that illustrated or described herein. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover a non-exclusive inclusion; for example, a process, method, system, product, or apparatus that comprises 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.

[0035] The term “exemplary” as used herein means “serving as an example, embodiment, or illustration.” Any embodiment illustrated herein as “exemplary” is not necessarily to be construed as superior to or better than other embodiments.

[0036] Furthermore, to better illustrate this application, numerous specific details are provided in the following detailed embodiments. Those skilled in the art should understand that this application can be implemented without certain specific details. In some instances, methods, means, components, and circuits well-known to those skilled in the art have not been described in detail in order to highlight the main points of this application.

[0037] In enterprise campus networks, switch networking is typically divided into three layers: core switches, aggregation switches, and access switches. Campus traffic is mainly north-south (from top to bottom), such as public cloud data flow, which passes through gateways, core switches, aggregation switches, access switches, and wireless access points (APs) to reach the terminal, or private cloud data flow, which passes through core switches, aggregation switches, access switches, and APs to reach the terminal.

[0038] Please see Figure 1 This application provides a system architecture for an enterprise campus network, such as... Figure 1 As shown, the system architecture includes a public cloud 1, a private cloud 2, an egress router 3, a core switch 4, an aggregation switch 5, an access switch 6, an AP 7, and a terminal 8.

[0039] Public Cloud 1: Cloud service providers in enterprise campus networks, such as Amazon, Alibaba Cloud, and Microsoft Cloud, provide public cloud services and can provide data streams for Terminal 8.

[0040] Private Cloud 2: A self-built data center or server room in an enterprise campus network that provides remote services such as computing, virtual machines, and services, and can provide data streams to Terminal 8.

[0041] Egress Router 3: Provides Layer 3 interface services for accessing wide area networks and provides packet forwarding functions for local area networks and wide area networks. Optionally, this device may not be present in some scenarios.

[0042] Core Switch 4: The switch located at the core layer is called Core Switch 4. In the networking industry, Core Switch 4 refers to a high-throughput Layer 2 or Layer 3 switch that handles and aggregates all transmission traffic, ensuring network performance. Its main function is to provide high-speed transmission and optimization for aggregation layer devices, essentially acting as an exit point or central hub.

[0043] Aggregation Switch 5: Aggregation Switch 5 is the convergence point for multiple access layer switches. It can handle all traffic from access layer devices and provide uplinks to the core layer. Therefore, compared to access layer switches, aggregation layer switches require higher performance, fewer interfaces, and higher switching rates. Aggregation switches are generally used between buildings, acting as a local or important relay station.

[0044] Access Switch 6: The purpose of the access layer is to allow end users to connect to the network. The part of the network that directly faces user connections or access is called the access layer. Access switches 6 are generally used to directly connect computers and feature low cost and high port density.

[0045] AP 7: It is a wireless switch used in wireless networks and is also the core of the wireless network. A wireless AP is an access point for mobile computer users to access a wired network. It is mainly used in broadband homes, inside buildings, and within campuses, and can cover a range of tens to hundreds of meters.

[0046] Terminal 8: A terminal is a device with wireless transceiver capabilities. It can be a fixed device, a mobile device, a handheld device (e.g., a mobile phone), a wearable device, an in-vehicle device, or a wireless device (e.g., a communication module, modem, or chip system, etc.) built into the aforementioned devices. The terminal is used to connect people, objects, machines, etc., and can be widely used in various scenarios, including but not limited to the following: cellular communication, device-to-device (D2D) communication, vehicle-to-everything (V2X) communication, machine-to-machine / machine-type communications (M2M / MTC) communication, Internet of Things (IoT), virtual reality (VR), augmented reality (AR), industrial control, self-driving, remote medical care, smart grid, smart furniture, smart office, smart wearables, smart transportation, smart city, drones, robots, and other similar scenarios. The terminal may sometimes be referred to as user equipment (UE), terminal, access station, UE station, remote station, wireless communication equipment, or user device, etc.

[0047] When users access an enterprise campus network via a terminal, the round-trip time (RTT) varies for different service traffic. There are two main factors contributing to this difference in RTT: 1. The data center locations for different services differ, resulting in different network paths for traffic and thus different RTTs; 2. Different services have varying sensitivities to latency, leading to different RTTs after traffic passes through the data center and network equipment.

[0048] In classic congestion control algorithms of the Transmission Control Protocol (TCP), such as Cubic, the TCP sender adjusts the congestion window (CWND) size through a utility function when it receives an ACK. This congestion control algorithm is independent of RTT (Round-Trip Time), improving fairness among streams with different RTTs to some extent. However, since the sender's transmission requires ACK-driven processing, the ACK reception period is long when the RTT is large, resulting in weaker bandwidth competition with streams with smaller RTTs. When multiple users accessing the same access point share network bandwidth, the poor RTT fairness of current classic congestion control algorithms (such as Cubic) leads to different network bandwidth occupancy rates for streams with different RTTs. Streams with smaller RTTs receive more network bandwidth, while streams with larger RTTs receive less, resulting in poor fairness when multiple data streams have different RTTs.

[0049] To address the aforementioned issues, this application provides a congestion control method, as detailed below.

[0050] Please see Figure 2 ,like Figure 2 An embodiment of the congestion control method shown includes:

[0051] 201. The sending end sends a data packet to the communication device.

[0052] As a reliable stream-oriented transport protocol, TCP's reliability and flow control are guaranteed by the sliding window protocol, while congestion control is achieved by a control window combined with a series of control algorithms. The two ends of the TCP protocol are the sender and the receiver. Because it is a full-duplex protocol, the sender and receiver should each maintain an independent send buffer and receive buffer. Due to peer-to-peer nature (the sender sends and the receiver receives, or the receiver sends and the sender receives), we will use the scenario of the sender sending and the receiver receiving as an example.

[0053] The send window is a part of the send buffer, which is the part that can be sent by the TCP protocol. In fact, all the data that the application layer needs to send is put into the send buffer of the sender.

[0054] After each successful data transmission, the sending window moves sequentially within the sending buffer, incorporating new data into the window in preparation for transmission.

[0055] At the initial stage of TCP connection establishment, the receiving end informs the sending end of its receive window size. Only after the sending end successfully transmits data, i.e., after the received end confirms the transmitted data, will the sliding window move away from the already transmitted data. Simultaneously, the receiving end acknowledges consecutive data packets, and receives out-of-order packets first to avoid duplicate transmissions. The receiving end can also pass information to the sending end to prevent the sending end from transmitting data too quickly; this is a form of end-to-end control. The main method is that the ACK returned to the sending end includes the size of the receiving end's receive window, and this receive window size is used to control the sending end's data transmission.

[0056] The data message includes a first message, the header of which has a congestion flag to indicate that the first message has passed through data congestion.

[0057] In this embodiment, there can be multiple traffic interactions between the sending end and the receiving end. This traffic is service data traffic. The sending end sends data packets to the receiving end through a communication device. Specifically, the communication device can be... Figure 1 The device may be one or more of the following: egress router, core switch, aggregation switch, access switch, and AP. This embodiment does not limit the specific components.

[0058] 202. The communication equipment determines the congestion ratio factor based on the first message and the data message.

[0059] In this embodiment, when the communication device is an egress router, core switch, aggregation switch or access switch, after receiving a data packet, the communication device sets a congestion flag in the header of the data packet when it detects that the data packet has passed through congestion, so as to generate the first packet.

[0060] Communication equipment can determine a congestion ratio factor by counting the first message and the total number of data packets in the traffic containing the first message.

[0061] Optionally, the communication device can calculate the message ratio based on the ratio of the number of first messages to the number of data messages, and determine the congestion ratio factor based on the message ratio and a preset calculation method. Specifically, the communication device calculates the ratio F of the number of bytes containing congestion identifiers to the total number of bytes in each traffic flow within one RTT, and then converts it into a congestion ratio factor alpha according to a preset calculation method, which can be alpha = (1-g)*alpha + g*F (g = 0.0625).

[0062] Optionally, the congestion identifier can be an explicit congestion notification (ECN) identifier. ECN was originally defined for the TCP / Internet Protocol (IP) protocol in Request for Comments (RFC) 3168, and it is implemented by embedding a congestion indicator in the IP header and a congestion acknowledgment in the TCP header. ECN-compliant switches and routers mark network data packets when congestion is detected, forming the aforementioned first packet. Optionally, this first packet can also be notified of congestion via an inter-device communication message.

[0063] 203. The communication equipment determines the rate factor based on the number of messages in the traffic where the first message is located.

[0064] Communication equipment can statistically analyze the flow rate V = V1, V2, ... V of the first packet passing through the data congestion. n Where n is the number of the first packets that pass through data congestion. The rate factor beta is determined by the flow rate and the number of flows experiencing congestion; optionally, the calculation formula can be... beta1+beta2+…+beta n =n.

[0065] For example, the algorithm flow after receiving the data packet described above can be found in [reference needed]. Figure 3 The flowchart shown illustrates the process of receiving data packets. In step 301, the communication device receives data packets; in step 302, the communication device detects a first packet with a congestion flag in the data packets; in step 303, the communication device calculates a congestion ratio factor based on the first packet and the number of packets in the traffic where the first packet is located; and in step 304, the communication device obtains the number of packets in the traffic where the first packet is located within a timer period and calculates a rate factor.

[0066] 204. The communication equipment sends data packets to the receiving end.

[0067] After receiving a data packet from the sender, the communication device can forward the data packet to the receiver.

[0068] In this embodiment, the order of step 204 and steps 202 to 203 is not limited. It is only necessary that before step 204, the communication device sets a congestion flag for the data packets that have experienced data congestion.

[0069] 205. The receiving end sends an acknowledgment message to the communication device.

[0070] In this embodiment, after receiving a data packet, the receiving end can send an acknowledgment message to the sending end through a communication device. For the received first packet, the corresponding acknowledgment message also contains a congestion flag.

[0071] 206. The communication device reads the second receive window value in the acknowledgment message.

[0072] In this embodiment, the receiving end can send an acknowledgment message for the corresponding data packet back to the communication device. For the acknowledgment message corresponding to the packet on the traffic where the first packet is located, the communication device can intercept the acknowledgment message and read the second receiving window value in the acknowledgment message.

[0073] 207. The communication equipment calculates the first receiving window value based on the congestion ratio factor and the rate factor.

[0074] After calculating the congestion ratio factor alpha and the rate factor beta, the communication equipment can obtain the first receiving window value W corresponding to the first message of the first segment corresponding to the rate factor beta, i.e., the amount of data that the receiver allows the sender to transmit. This calculation method can be...

[0075] The value of alpha ranges from (0,1), representing the degree of traffic congestion. The larger the alpha, the higher the degree of congestion and the smaller the expected receiving window; conversely, the smaller the alpha, the lower the degree of congestion and the larger the expected receiving window.

[0076] The beta value is related to the respective rates and the number of traffic flows experiencing congestion. The higher the rate, the smaller the corresponding beta value. When alpha is neither 0 nor 1, and beta is less than 1, alpha... beta As the value increases, meaning the rate is higher, the expected window becomes smaller; conversely, when beta is greater than 1, alpha... beta The smaller the value, the smaller the rate, and the larger the expected window.

[0077] The order of steps 207 and steps 204 to 206 is not limited.

[0078] 208. The communication device modifies the second receive window value in the acknowledgment message according to the first receive window value.

[0079] After reading the second receive window value in the acknowledgment message, the communication device can obtain the first receive window value calculated in step 207 for the first message corresponding to the acknowledgment message, and modify the second receive window value to the first receive window value.

[0080] Optionally, when the sequence number of the first message is greater than or equal to the standard sequence number, the communication device updates the standard sequence number and modifies the acknowledgment message from the receiving end according to the first receiving window value. The standard sequence number is a preset sequence number, and the updated standard sequence number can be the expected standard sequence number, for example, it can be obtained based on the first receiving window multiplied by the average message length. In this embodiment, the communication device sets an intermediate variable CWRSeq for the first message, which is modified only once per receiving window. For example, when the sequence number seq of the first message is greater than or equal to CWRSeq, the communication device updates the second receiving window value in the acknowledgment message to the first receiving window value in step 207 above. When the sequence number seq of the first message is less than CWRSeq, the communication device directly forwards the acknowledgment message without modifying the second receiving window value. For example, the initial CWRSeq = 4, and seq increments by 1 each time; when seq = 4, the second receive window value is modified, and the next CWRSeq = 10 is calculated at the same time; then the second receive window is not modified when seq = 5...9, and when it reaches 10, the second receive window and CWRSeq are modified again.

[0081] For example, the algorithm flow after receiving the acknowledgment message can be found in [reference needed]. Figure 4 The flowchart shown illustrates the process of receiving an acknowledgment message. Step 401 involves the communication device receiving an acknowledgment message from the receiving end. Step 402 involves the communication device determining that the acknowledgment message corresponds to a message on the same traffic flow as the first message (i.e., when the acknowledgment message is in a congested state), and checking whether the sequence number (seq) of the first message corresponding to the acknowledgment message is greater than or equal to a pre-set intermediate variable (CWRseq). If not, step 406 is executed; if yes, step 403 is executed. Step 403 involves the communication device updating the CWRseq to the aforementioned seq. Step 404 involves the communication device... Figure 3 The first receiving window value is calculated using the obtained alpha and beta; step 405 is for the communication device to update the second receiving window value in the acknowledgment message to the aforementioned first receiving window value; step 406 is for the function to be executed by the communication device after receiving the acknowledgment message to end.

[0082] 209. The communication device sends the modified confirmation message to the sender.

[0083] After the communication device modifies the second receiving window value in the acknowledgment message to the first receiving window value in step 207 above, it can send the modified acknowledgment message to the sending end. The sending end can then determine that the previous data transmission is complete, adjust its own sending window value according to the first receiving window value in the acknowledgment message, and then send data to the receiving end.

[0084] In this embodiment, the communication device determines the congestion ratio factor and rate factor of the congestion identifier based on the data packet from the sending end, calculates the first receiving window value, and then modifies the acknowledgment packet sent to the sending end so that the sending end adjusts the sending window value according to the modified acknowledgment packet in order to send the corresponding bytes of data to the receiving end. Based on the rate factor, the fairness of packet transmission between traffic with different RTTs can be improved, and the throughput of traffic with large RTTs can be improved while ensuring the overall network bandwidth utilization.

[0085] In this embodiment of the application, when the communication device is an access point (AP), the hardware structure of the AP can be referred to... Figure 5 As shown, the AP includes a wireless fidelity chip (WiFi chip) 51 and a central processing unit (CPU) 52. The WiFi chip 51 receives 802.11 packets from the air interface, performs physical layer processing, converts the 802.11 packets into 802.3 packets, and forwards them to the CPU 52. The CPU 52 can receive external 802.3 packets to calculate a first receive window value, or it can receive 802.3 packets from the WiFi chip 51. When the 802.3 packet from the WiFi chip 51 is an acknowledgment packet, it can modify the second receive window value in the acknowledgment packet to the aforementioned first receive window value.

[0086] Based on the simulation platform, please refer to the simulation of multiple RTT-different traffic flows. Figure 6 The traffic simulation diagram shown illustrates that server (i.e., the aforementioned public or private cloud) 61 sends two traffic streams to terminals (including the first terminal 62 and the second terminal 63). Both traffic streams (including the first traffic stream 66 and the second traffic stream 67) pass through switch 64 and AP 65 in the network, and their RTTs are different, with a baseline RTT of 10ms.

[0087] The results of the above simulation can be referred to Figure 7 As shown in the blank bars, the simulation results without using the RTT fairness algorithm show that when the RTT ratio of the two flows is 1:8, the throughput of the flow with the larger RTT only accounts for 30% of that of the flow with the smaller RTT. However, with the RTT fairness algorithm, as shown in the black bars, as the RTT ratio increases, the throughput of the flow with the larger RTT slowly decreases, but the throughput ratio is significantly improved compared to the baseline, indicating better RTT fairness.

[0088] The congestion control method has been described above. The following section describes the communication equipment that implements this congestion control method.

[0089] Please see Figure 8 ,like Figure 8As shown, this application embodiment provides a communication device, the communication device 80 including:

[0090] The receiving unit 801 is used to receive data packets from multiple traffic sources from the sending end, and the communication devices may be one or more.

[0091] The determining unit 802 is used to determine the congestion ratio factor of the congestion identifier and the rate factor of the first message transmission based on the first message and the data message, and to calculate the first receiving window value, which represents the amount of data that the receiving end allows the sending end to send. The first message is a message in which a communication device or one of multiple communication devices sets a congestion identifier in the data message.

[0092] Modification unit 803 is used to modify the acknowledgment message from the receiving end according to the first receiving window value. The acknowledgment message is determined by the receiving end based on the messages in the traffic where the first message is located.

[0093] The sending unit 804 is used to send the modified acknowledgment message to the sending end, so that the sending end can adjust the sending window value according to the modified acknowledgment message. The sending window value represents the amount of data sent by the sending end.

[0094] Optionally, the determining unit 802 is specifically used for:

[0095] The congestion ratio factor is determined based on the first message and the messages in the traffic containing the first message. The messages in the traffic containing the first message are included in the data messages.

[0096] The rate factor is determined based on the number of packets in the traffic where the first packet is located.

[0097] The first receiving window value is calculated based on the congestion ratio factor and the rate factor.

[0098] Optionally, the determining unit 802 is specifically used for:

[0099] The message ratio is calculated based on the ratio of the number of messages in the first message to the number of messages in the traffic containing the first message;

[0100] The congestion ratio factor is determined based on the message ratio and a preset calculation method.

[0101] Optionally, the modified unit 803 is specifically used for:

[0102] Read the second receive window value from the acknowledgment message;

[0103] Modify the second receive window value in the acknowledgment message according to the first receive window value.

[0104] Optionally, the modified unit 803 is specifically used for:

[0105] When the sequence number of the first message is greater than or equal to the standard sequence number, the standard sequence number is updated according to the first receiving window value, and the acknowledgment message from the receiving end is modified according to the first receiving window value. The standard sequence number is a preset sequence number.

[0106] Optionally, the congestion identifier is the Explicit Congestion Notification (ECN) identifier.

[0107] Figure 9 The diagram shown illustrates a possible logical structure of a communication device 90 provided in an embodiment of this application. The communication device 90 includes a processor 901, a communication interface 902, a storage system 903, and a bus 904. The processor 901, communication interface 902, and storage system 903 are interconnected via the bus 904. In an embodiment of this application, the processor 901 is used to control and manage the operation of the communication device 90; for example, the processor 901 is used to execute... Figure 2 The steps performed by the communication device in the method embodiment are described below. Communication interface 902 is used to support communication by communication device 90. Storage system 903 is used to store program code and data of communication device 90.

[0108] The processor 901 can be a central processing unit, a general-purpose processor, a digital signal processor, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. It can implement or execute various exemplary logic blocks, modules, and circuits described in conjunction with the disclosure of this application. The processor 901 can also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a digital signal processor and a microprocessor, etc. The bus 904 can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. The bus can be divided into address bus, data bus, control bus, etc. For ease of representation, Figure 9 The bus is represented by a single thick line, but this does not mean that there is only one bus or one type of bus.

[0109] The receiving unit 801 and the transmitting unit 804 in the communication device 80 are equivalent to the communication interface 902 in the communication device 90, and the determining unit 802 and the modifying unit 803 in the communication device 80 are equivalent to the processor 901 in the communication device 90.

[0110] The communication device 90 in this embodiment can correspond to the above-described... Figure 2 The communication device in the method embodiment, the communication interface 902 in the communication device 90 can achieve the above-mentioned... Figure 2For the sake of brevity, the functions of the communication device and / or the various steps implemented in the method embodiments will not be described in detail here.

[0111] In another embodiment of this application, a computer-readable storage medium is also provided, which stores computer-executable instructions. When the processor of the device executes the computer-executable instructions, the device performs the aforementioned... Figure 2 The steps of the congestion control method performed by the communication equipment.

[0112] In another embodiment of this application, a computer program product is also provided, which includes computer-executable instructions stored in a computer-readable storage medium; when the processor of the device executes the computer-executable instructions, the device performs the above-described... Figure 2 The steps of the congestion control method performed by the communication equipment.

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

[0114] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection between apparatuses or units through some interfaces, and may be electrical, mechanical, or other forms.

[0115] The units described as separate components may or may not be physically separate. 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 the units can be selected to achieve the purpose of this embodiment according to actual needs.

[0116] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.

[0117] If the integrated unit is implemented as 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 this application, in essence, 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. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.

Claims

1. A congestion control method, characterized in that, include: A communication device receives data packets from multiple traffic streams from a sending end; the communication device may be one or more. The communication device determines a congestion ratio factor of the congestion identifier and a rate factor for the transmission of the first message based on the first message and the data message, and calculates a first receiving window value. The first receiving window value represents the amount of data that the receiving end allows the sending end to send. The first message is a message in which the communication device or one of multiple communication devices sets a congestion identifier in the data message. The process of determining the congestion ratio factor of the congestion identifier and the rate factor for the transmission of the first message based on the first message and the data message, and calculating the first receiving window value, includes: the communication device determining the congestion ratio factor based on the first message and the messages in the traffic containing the first message, wherein the messages in the traffic containing the first message are included in the data message; the communication device determining the rate factor based on the number of messages in the traffic containing the first message within a timer period; and the communication device calculating the first receiving window value based on the congestion ratio factor and the rate factor. The communication device modifies the acknowledgment message from the receiving end according to the first receiving window value, wherein the acknowledgment message is determined by the receiving end based on the messages in the traffic where the first message is located; wherein, the communication device modifying the acknowledgment message from the receiving end according to the first receiving window value includes: the communication device reading the second receiving window value in the acknowledgment message; the communication device modifying the second receiving window value in the acknowledgment message according to the first receiving window value; The communication device sends the modified acknowledgment message to the sending end, so that the sending end adjusts the sending window value according to the modified acknowledgment message, and the sending window value represents the amount of data sent by the sending end.

2. The congestion control method according to claim 1, characterized in that, The communication device determines the congestion ratio factor based on the first message and the messages in the traffic containing the first message, including: The communication device calculates the message ratio based on the ratio of the number of the first message to the number of messages in the traffic where the first message is located; The communication device determines the congestion ratio factor based on the message ratio and a preset calculation method.

3. The congestion control method according to any one of claims 1-2, characterized in that, The communication device modifies the acknowledgment message from the receiving end according to the first receiving window value, including: When the sequence number of the first message is greater than or equal to the standard sequence number, the communication device updates the standard sequence number according to the first receiving window value, and modifies the acknowledgment message from the receiving end according to the first receiving window value. The standard sequence number is a preset sequence number.

4. The congestion control method according to any one of claims 1-2, characterized in that, The congestion identifier is the Explicit Congestion Notification (ECN) identifier.

5. A communication device, characterized in that, include: A receiving unit is configured to receive data packets from multiple traffic streams from a sending end, wherein the communication device may be one or more. A determining unit is configured to determine a congestion ratio factor of a congestion identifier and a rate factor for the transmission of the first message based on a first message and the data message, and to calculate a first receiving window value, wherein the first receiving window value represents the amount of data that the receiving end is allowed the sending end to transmit, and the first message is a message in which the communication device or one of multiple communication devices sets a congestion identifier in the data message; wherein the determining unit is specifically configured to: determine the congestion ratio factor based on the first message and the messages in the traffic where the first message is located, wherein the messages in the traffic where the first message is located are included in the data message; determine the rate factor based on the number of messages in the traffic where the first message is located within a timer period; and calculate the first receiving window value based on the congestion ratio factor and the rate factor. The modification unit is configured to modify an acknowledgment message from the receiving end according to the first receiving window value, wherein the acknowledgment message is determined by the receiving end based on the messages in the traffic where the first message is located; wherein, the modification unit is specifically configured to: read the second receiving window value in the acknowledgment message; and modify the second receiving window value in the acknowledgment message according to the first receiving window value; The sending unit is used to send the modified acknowledgment message to the sending end, so that the sending end can adjust the sending window value according to the modified acknowledgment message, wherein the sending window value represents the amount of data sent by the sending end.

6. The communication device according to claim 5, characterized in that, The determining unit is specifically used for: The message ratio is calculated based on the ratio of the number of the first message to the number of messages in the traffic containing the first message; The congestion ratio factor is determined based on the packet ratio and a preset calculation method.

7. The communication device according to any one of claims 5-6, characterized in that, The modification unit is specifically used for: When the sequence number of the first message is greater than or equal to the standard sequence number, the standard sequence number is updated according to the first receiving window value, and the acknowledgment message from the receiving end is modified according to the first receiving window value. The standard sequence number is a preset sequence number.

8. The communication device according to any one of claims 5-6, characterized in that, The congestion identifier is the Explicit Congestion Notification (ECN) identifier.

9. A communication device, characterized in that, include: Processor and memory, The processor is used to execute instructions stored in the memory, causing the communication device to perform the method of any one of claims 1 to 4.

10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when run on a computer, causes the computer to perform the method as described in any one of claims 1 to 4.

11. A computer program product, characterized in that, Includes instructions that, when executed on a computer, cause the computer to perform the method as described in any one of claims 1 to 4.

Citation Information

Patent Citations

  • Congestion control method, network equipment and network interface controller thereof

    CN108881056A

  • Rapid congestion feedback method based on DCTCP

    CN111464452A