Congestion notification method, apparatus, chip, device, medium and program product
Patent Information
- Application Number
- CN202510545167.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-04-28
- Publication Date
- 2026-10-30
AI Technical Summary
[0046]本申请的第二方面至第八方面的技术方案及对应的可能的实现方式所取得的技术效果,可以参见上文说明的第一方面及对应的可能的实现方式所取得的技术效果,此处不再赘述。上述第二方面提及的拥塞通知装置可以为第三方面提及的芯片、第四方面提及的芯片或者第五方面提及的网络设备。
Smart Images

Figure CN123020486A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of communication technology, and in particular to congestion notification methods, apparatus, chips, devices, media, and program products. Background Technology
[0002] In the field of communication technology, congestion notification refers to informing the sending communication device of congestion occurring in the communication system. This allows the sending communication device to reduce its message transmission rate when congestion occurs, thereby mitigating or eliminating the congestion. Therefore, how to implement congestion notification is a problem worthy of attention. Summary of the Invention
[0003] This application provides a congestion notification method, apparatus, chip, device, medium, and program product to implement congestion notification. The technical solution provided by this application includes the following aspects.
[0004] In a first aspect, a congestion notification method is provided, applied to a communication system including a first device, which is connected to a second device and a third device. In this method, the first device receives a first message sent by the second device, the first message carrying a first identifier indicating that the second device supports congestion notification. In the event of congestion in the communication system, the first device obtains a second message, the second message carrying a second identifier indicating that congestion has occurred in the communication system. The first device sends the second message to the second device, and also sends a third message to the third device, the third message carrying a third identifier indicating that no congestion has occurred in the communication system; the third message is obtained based on the first message.
[0005] Because the third identifier carried in the third message indicates that the communication system is not congested, the third device will not detect that congestion has occurred in the communication system and does not need to notify the second device of the congestion. Because the second identifier carried in the second message indicates that the communication system is congested, the second device can know that the communication system is congested, thus enabling the congestion notification to the second device.
[0006] Therefore, the congestion notification implementation in this application does not rely on a third device; instead, the first device notifies the second device of congestion via a second message. Thus, even if the third device (e.g., a terminal) is outdated, lacks congestion notification capabilities, or has compatibility issues, congestion notification can still be achieved. Because congestion notification is implemented, the second device (e.g., a server) can adjust the message sending rate promptly and quickly to improve congestion management, avoid packet loss, and ensure low latency, low packet loss rate, and high throughput.
[0007] Furthermore, in the case of a wired connection between the first device and the second device, and a wireless connection between the first device and the third device, since the implementation of congestion notification does not depend on the third device, the third device does not need to participate in the process of the first device obtaining the second message. This ensures that the process of the first device obtaining the second message is not affected by fluctuations in the wireless environment, thereby improving the efficiency of congestion notification to the second device.
[0008] In one possible implementation, congestion in the communication system includes congestion in a first device. The method further includes: acquiring first congestion information, which includes at least one of media access control (MAC) layer information or network layer information of the first device. In the event of congestion in the communication system, acquiring a second message includes: generating a second message if congestion is determined to have occurred in the first device based on the first congestion information.
[0009] In this implementation, the first device obtains first congestion information locally and determines whether congestion has occurred on the first device. If congestion occurs on the first device, the first device generates a second message locally and sends it to the second device to achieve congestion notification.
[0010] In one possible implementation, the communication system further includes a fourth device, through which the first device is connected to the third device, and the communication system congestion includes congestion in the fourth device. The method further includes: receiving second congestion information sent by the fourth device, the second congestion information indicating the congestion status of the fourth device; in the event of communication system congestion, acquiring a second message, including: generating a second message if congestion is determined to have occurred in the fourth device based on the second congestion information; and sending a third message to the third device, including: sending a third message to the fourth device, the third message being used by the fourth device to send to the third device.
[0011] In this implementation, the fourth device obtains the second congestion information locally, and the first device receives the second congestion information and determines whether the fourth device is experiencing congestion. If the fourth device is experiencing congestion, the first device generates a second message locally and sends it to the second device to achieve congestion notification.
[0012] In one possible implementation, the communication system further includes a fourth device, through which the first device is connected to the third device, and the communication system congestion includes congestion of the fourth device. In the event of communication system congestion, obtaining a second message includes: receiving a second message sent by the fourth device after determining that the fourth device is congested. Sending a third message to the third device includes: sending a first message to the fourth device, the first message being used by the fourth device to obtain the third message based on the first message and to send the third message to the third device.
[0013] In this implementation, the fourth device obtains the second congestion information locally and determines whether congestion has occurred on the fourth device. If congestion occurs on the fourth device, the fourth device generates a second message locally and sends it to the first device. The first device then forwards the second message to the second device, thus achieving congestion notification.
[0014] In one possible implementation, the method further includes: receiving second congestion information sent by a fourth device, the second congestion information indicating the congestion status of the fourth device.
[0015] Since the second congestion information indicates the congestion status of the fourth device, the first device can determine the congestion status of the fourth device by sending the second congestion information to the first device, which facilitates the first device's management, such as managing the air interface occupancy priority of the fourth device.
[0016] In one possible implementation, the method further includes sending second congestion information to a second device.
[0017] Since the second congestion information indicates the congestion status of the fourth device, sending the second congestion information to the second device enables the second device to determine the congestion status of the fourth device, and thus reasonably adjust the message transmission rate according to the congestion status of the fourth device. For example, the degree of adjustment to the message transmission rate can be determined based on the congestion status of the fourth device, and the adjustment can be carried out according to that degree.
[0018] In one possible implementation, the second congestion information includes at least one of the following: whether the fourth device is congested; the number of packets sent by the fourth device; the number of packets congested at the fourth device; and the percentage of packets congested at the fourth device among all unsent packets.
[0019] In this implementation method, the second congestion information is easily obtained by the fourth device, making the implementation simple and quick.
[0020] In one possible implementation, the method further includes: obtaining control information based on the second congestion information, the control information indicating the air interface occupancy priority; and sending control information to the fourth device, the control information being used by the fourth device to occupy the air interface according to the air interface occupancy priority.
[0021] In this implementation, the first device can not only notify the second device of congestion, enabling the second device to adjust its message transmission rate to alleviate congestion, but the first device can also adjust air interface occupancy priority to improve congestion. For example, for a congested fourth device, the air interface occupancy priority can be increased, allowing the congested fourth device to preferentially occupy the air interface and transmit messages, thereby improving congestion. These two methods work together to quickly and effectively improve congestion and reduce the probability of packet loss.
[0022] In one possible implementation, the control information includes enhanced distributed channel access (EDCA) parameters.
[0023] This type of control information can be supported by both the first and fourth devices, making it highly practical.
[0024] Secondly, a congestion notification device is provided, which is applied to a first device in a communication system, the first device being connected to a second device and a third device respectively, and the device includes a transceiver module and an acquisition module.
[0025] The transceiver module is used to receive a first message sent by the second device. The first message carries a first identifier, which indicates that the second device supports congestion notification.
[0026] The acquisition module is used to acquire a second message in the event of congestion in the communication system. The second message carries a second identifier, which indicates that the communication system is congested.
[0027] The transceiver module is also used to send a second message to a second device.
[0028] The transceiver module is also used to send a third message to a third device. The third message carries a third identifier, which indicates that there is no congestion in the communication system. The third message is obtained based on the first message.
[0029] In one possible implementation, the communication system congestion includes a first device experiencing congestion; the acquisition module is further configured to acquire first congestion information, which includes at least one of the MAC layer information or network layer information of the first device; the acquisition module is configured to generate a second message if it is determined that the first device is experiencing congestion based on the first congestion information.
[0030] In one possible implementation, the communication system further includes a fourth device, through which the first device is connected to the third device, and the congestion in the communication system includes congestion in the fourth device; a transceiver module is further configured to receive second congestion information sent by the fourth device, the second congestion information indicating the congestion status of the fourth device; an acquisition module is configured to generate a second message if it is determined that the fourth device is congested based on the second congestion information; and a transceiver module is configured to send a third message to the fourth device, the third message being used by the fourth device to send to the third device.
[0031] In one possible implementation, the communication system further includes a fourth device, through which the first device is connected to the third device, and the congestion in the communication system includes congestion in the fourth device; an acquisition module for receiving a second message sent by the fourth device when it is determined that the fourth device is congested; and a transceiver module for sending a first message to the fourth device, the first message being used by the fourth device to acquire a third message based on the first message and send the third message to the third device.
[0032] In one possible implementation, the transceiver module is further configured to receive second congestion information sent by the fourth device, the second congestion information indicating the congestion status of the fourth device.
[0033] In one possible implementation, the transceiver module is also used to send second congestion information to the second device.
[0034] In one possible implementation, the second congestion information includes at least one of the following: whether the fourth device is congested; the number of packets sent by the fourth device; the number of packets congested at the fourth device; and the percentage of packets congested at the fourth device among all unsent packets.
[0035] In one possible implementation, the acquisition module is further configured to acquire control information based on the second congestion information, the control information indicating the air interface occupancy priority; the transceiver module is further configured to send control information to the fourth device, the control information being used by the fourth device to occupy the air interface according to the air interface occupancy priority.
[0036] In one possible implementation, the control information includes EDCA parameters.
[0037] Thirdly, a chip is provided, including a processor for calling and executing instructions stored in memory from memory, causing a network device equipped with the chip to perform the congestion notification method provided in the first aspect or any possible implementation thereof.
[0038] Fourthly, another chip is provided, comprising: an input interface, an output interface, a processor, and a memory, wherein the input interface, the output interface, the processor, and the memory are connected via an internal connection path, the processor is used to execute code in the memory, and when the code is executed, the network device with the chip installed executes the congestion notification method provided by the first aspect or any possible implementation thereof.
[0039] Fifthly, a network device is provided, including a memory and a processor; the memory stores at least one computer instruction, which is loaded and executed by the processor to enable the network device to implement the congestion notification method provided in the first aspect or any possible implementation thereof.
[0040] Optionally, there may be one or more processors and one or more memories.
[0041] Alternatively, the memory can be integrated with the processor, or the memory can be set separately from the processor.
[0042] In a sixth aspect, a communication system is provided, comprising a first device, a second device, and a third device, wherein the second device and the third device are respectively connected to the first device. The first device is configured to execute the congestion notification method provided in the first aspect or any possible implementation thereof.
[0043] Optionally, the communication system further includes a fourth device, through which the first device is connected to the third device. The fourth device is used to perform the steps related to the fourth device in the congestion notification method provided by the first aspect or any possible implementation of the first aspect described above.
[0044] In a seventh aspect, a computer-readable storage medium is provided that stores computer instructions, wherein when the computer instructions are executed on a network device, the congestion notification method provided in the first aspect or any possible implementation thereof is executed by the network device.
[0045] Eighthly, a computer program or computer program product is provided, comprising: computer instructions that, when executed by a network device, cause the network device to perform the congestion notification method provided in the first aspect or any possible implementation thereof.
[0046] The technical effects achieved by the technical solutions and corresponding possible implementations of the second to eighth aspects of this application can be found in the technical effects achieved by the first aspect and corresponding possible implementations described above, and will not be repeated here. The congestion notification device mentioned in the second aspect can be the chip mentioned in the third aspect, the chip mentioned in the fourth aspect, or the network device mentioned in the fifth aspect. Attached Figure Description
[0047] Figure 1 A schematic diagram of an implementation environment provided for an embodiment of this application;
[0048] Figure 2 A schematic diagram illustrating another implementation environment provided for an embodiment of this application;
[0049] Figure 3 A flowchart illustrating a related technology provided in this application embodiment;
[0050] Figure 4 A flowchart illustrating another related technology provided in this application embodiment;
[0051] Figure 5 This is a flowchart illustrating another related technology provided in an embodiment of this application;
[0052] Figure 6 A schematic diagram illustrating a congestion notification method provided in an embodiment of this application;
[0053] Figure 7 A schematic diagram illustrating another congestion notification method provided in an embodiment of this application;
[0054] Figure 8 A flowchart illustrating another congestion notification method provided in this application embodiment;
[0055] Figure 9 A schematic diagram illustrating yet another congestion notification method provided in an embodiment of this application;
[0056] Figure 10 A flowchart illustrating yet another congestion notification method provided in this application embodiment;
[0057] Figure 11 A flowchart illustrating another congestion notification method provided in this application embodiment;
[0058] Figure 12 A flowchart illustrating another congestion notification method provided in this application embodiment;
[0059] Figure 13 A schematic diagram illustrating another congestion notification method provided in an embodiment of this application;
[0060] Figure 14 A flowchart illustrating another congestion notification method provided in this application embodiment;
[0061] Figure 15 A schematic diagram of a congestion notification device provided in an embodiment of this application;
[0062] Figure 16 This is a schematic diagram of the structure of a network device provided in an embodiment of this application. Detailed Implementation
[0063] The terminology used in the implementation section of this application is for the purpose of explaining specific embodiments of this application only, and is not intended to limit this application.
[0064] In communication systems, an access point (AP) is a network device used to provide wireless access services. See also... Figure 1The communication system includes a server, an access point (AP), and terminals. The server and AP are connected via a wired connection, while the AP and terminals are connected wirelessly to enable internet access. For example, the wireless connection between the AP and terminals includes the terminal accessing the AP via wireless local area network (WLAN) technology.
[0065] Fiber to the room (FTTR) networking is a communication system used in home environments. In an FTTR network, the access point (AP) includes a main FTTR unit (MFU, also known as the main optical modem or optical gateway) and sub-FTTR units (SFU, also known as the sub-optical modem). For example... Figure 2 As shown, the server is connected to the MFU via a wired connection, and the MFU is connected to the SFU via a fiber optic cable. Different SFUs are deployed in different rooms within the home. The MFU and SFU are wirelessly connected to terminals. For example, a terminal can access at least one AP in the MFU or SFU via Wi-Fi technology (a WLAN technology). This allows the fiber optic cable to be extended to different rooms, enabling the wireless signal provided by the AP to cover every corner of the home environment.
[0066] With the rapid development of the Internet and artificial intelligence (AI) technologies, services such as video streaming, immersive interactive games, extended reality (XR), 3D displays, and the Internet of Things have emerged. These services place higher demands on the performance of communication systems, especially requiring communication systems to have strong stability and low latency.
[0067] End-to-end (E2E) latency is a network performance metric used to measure the performance of a communication system. E2E latency refers to the time required for a packet sent by a server to travel to the terminal. E2E latency includes link latency, which is the time required for a packet forwarded by an access point (AP) (sent from the server to the AP) to travel to the terminal. Link latency includes access latency and queuing latency. In a communication system, different APs coordinate with each other using carrier sense multiple access (CSMA) to compete for and share air interface (Air Interface, essentially a wireless channel) resources. Based on CSMA, each AP needs to monitor the status of the wireless channel before sending a wireless signal. If the wireless channel is found to be idle, it randomly backs off for a certain period (determined based on the EDCA mechanism) before occupying the wireless channel to send wireless signals. This forwarding of wireless signals enables the packets to be transmitted from the AP to the terminal. Therefore, the occupation of wireless channels by an Access Point (AP) has a certain degree of randomness, and access latency refers to the duration required for an AP to occupy a wireless channel. Additionally, an AP maintains a transmission queue. The AP receives packets from the server, adds them to the transmission queue, and then retrieves packets from the queue in an orderly manner for forwarding. Queuing latency refers to the time a packet remains in the transmission queue.
[0068] Fluctuations in the wireless environment can lead to increased access latency and queuing latency, causing AP congestion. Link latency and E2E latency will also increase accordingly, resulting in reduced communication system performance and impacting services. Therefore, servers need to be promptly aware of congestion and adaptively adjust the message transmission rate to mitigate the congestion.
[0069] In traditional Transmission Control Protocol (TCP) congestion control, the server identifies congestion by detecting packet loss. Specifically, the server sends a packet to the access point (AP), which forwards the packet to the terminal. Upon receiving the packet, the terminal returns a TCP acknowledgement (ACK) to the AP, indicating that the terminal has received the packet. The AP forwards the TCP ACK to the server, which then uses the TCP ACK to determine that the terminal has received the packet. When the server receives duplicate TCP ACKs multiple times (e.g., three times), it indicates that packet loss has been detected and congestion has been identified. Therefore, the server retransmits packets and reduces the packet transmission rate to alleviate congestion.
[0070] However, traditional TCP congestion control techniques only offer delayed congestion relief after packet loss has already occurred, which is somewhat limiting. Furthermore, retransmission increases the number of packets in the communication system, potentially increasing queuing delay at the access point (AP), exacerbating congestion, and thus affecting end-to-end (E2E) latency. While some queue management algorithms can appropriately reduce queuing delay, their effectiveness is limited.
[0071] In new TCP congestion control technologies, see [link to relevant documentation]. Figure 3 The AP forwards synchronization (SYN) packets, SYNACK packets, and ACK packets to complete the three-way handshake between the server and the terminal, establishing a TCP connection between them. Based on this, see... Figure 4 The server sends a message to the access point (AP). The AP buffers the message and forwards it to the terminal. This message includes a physical layer protocol data unit (PPDU). The AP forwards multiple messages to the terminal. After receiving multiple messages, the terminal returns a block acknowledgement (BA) to the AP, indicating that it has received multiple messages. When the AP detects packet loss based on the BA, previously returned PPDUs (e.g., PPDUs returned by the terminal before receiving the message), and autoregressive moving average (ARMA) technology, it retransmits the message based on the buffered message (this retransmission process does not rely on the server) and sends a TCP ACK to the server. This causes the server to reduce the message sending rate based on the TCP ACK, thereby alleviating congestion.
[0072] Compared to traditional TCP congestion control techniques, the new TCP congestion control techniques improve retransmission efficiency. However, these new techniques still only improve congestion after packet loss has occurred, which is somewhat limiting.
[0073] Therefore, both traditional and novel TCP congestion control technologies have limitations. When services have high (or are highly sensitive) requirements for communication system stability and E2E latency, TCP congestion control alone is insufficient to meet these performance demands. Therefore, more advanced low-latency, low-loss, scalable throughput (L4S) technologies can be used to replace TCP congestion control, adapting to services sensitive to communication system stability and E2E latency, achieving lower E2E latency, lower packet loss rate, and higher throughput within the communication system.
[0074] L4S technology employs a novel congestion control mechanism, enabling the Access Point (AP) to notify the server of congestion as early as possible before packet loss occurs. This allows the server to adjust its packet transmission rate promptly, mitigating congestion and preventing packet loss, thus ensuring lower end-to-end latency, lower packet loss rate, and higher throughput. Figure 5 As shown, the server sends Internet Protocol (IP) packets to the access point (AP). In the event of AP congestion, the AP marks the IP packet in the IP header and sends the marked packet to the terminal. The terminal receives the marked packet, generates feedback information indicating congestion. The terminal sends the feedback information to the AP, which receives and forwards it to the server. This allows the server to adjust its packet transmission rate based on the feedback information to alleviate congestion.
[0075] However, this L4S technology only applies when the terminal has congestion notification capabilities. If the terminal is older, lacks congestion notification capabilities, or has compatibility issues, it will not generate and send feedback information even if it receives a tagged message, rendering L4S technology unsuitable and significantly limiting its application. Furthermore, as explained above, AP congestion may be caused by fluctuations in the wireless environment. In such cases, the air interface between the AP and the terminal is busy, requiring a longer time to occupy the air interface. Consequently, the time required for the AP to send tagged messages to the terminal and for the terminal to send feedback information to the AP is longer, slowing down the server's ability to adjust the message transmission rate based on feedback information and affecting the effectiveness of the congestion control mechanism provided by L4S.
[0076] To address this, embodiments of this application provide a congestion notification method, which is applied to a first device included in a communication system. The first device is a network device. For example, in Figure 1 In the implementation environment shown, the first device includes an access point (AP). For example, in... Figure 2 In the illustrated implementation environment, the first device includes an MFU (Medium-Level Function). The first device is connected to both the second and third devices, with the second device acting as a message sender and the third device as a message receiver. Optionally, the second device includes a server, and the first device is wiredly connected to the second device. The third device includes a terminal, and the first device is wirelessly connected to the third device. Figure 6 As shown, the method includes the following steps 601 to 604.
[0077] Step 601: The first device receives a first message sent by the second device. The first message carries a first identifier, which indicates that the second device supports congestion notification.
[0078] In this configuration, the second device acts as the message sender. The second device sends a first message carrying a first identifier to the first device, indicating that the second device supports congestion notification. Optionally, the first message is a service message, and its payload carries service data. Taking video streaming as an example, the service data includes encoded video data. Therefore, congestion notification can be implemented during the normal transmission of service messages.
[0079] For example, the first message is an IP message, which includes an IP header, and a first identifier is located in the IP header. For instance, the IP header includes an explicit congestion notification (ECN) field, which includes an ECN capable transport (ECT) bit and a congestion experienced (CE) bit. When the ECT bit is 1 and the CE bit is 0, that is, when the ECN field is 10, it indicates that the second device supports congestion notification. Therefore, the first identifier includes an ECN field with a value of 10.
[0080] The first device receives the first message, parses the first message, and obtains the first identifier. Since the first identifier indicates that the second device supports congestion notification, the first device can determine that the second device supports congestion notification based on the indication of the first identifier.
[0081] For example, the first device receives an IP packet (i.e., the first packet), parses the IP packet, and obtains an ECN field (i.e., the first identifier) with a value of 10 carried in the IP packet header. Based on the ECN field with a value of 10, the first device determines that the second device supports congestion notification.
[0082] Step 602: In the event of congestion in the communication system, the first device acquires a second message. The second message carries a second identifier, which indicates that the communication system is congested.
[0083] The communication system is the system in which the first device resides. Congestion in the communication system can refer to congestion occurring in the first device, or it can refer to congestion occurring in other devices within the communication system besides the first device. For example, other devices include the fourth device described below, such as... Figure 2 The SFU in the implementation environment shown below. Different scenarios of communication system congestion will be described in detail below, and will not be elaborated upon here.
[0084] In the event of congestion in the communication system, the first device acquires a second message carrying a second identifier indicating that the communication system is congested.
[0085] For example, the second message is a TCP ACK message. A TCP ACK message includes a TCP header, and a second identifier is located within the TCP header. For instance, the TCP header includes a congestion window reduced (CWR) bit and an echo of congestion encountered (ECE) bit. When the CWR bit is 0 and the ECE bit is 1, that is, when the fields (including the CWR and ECE bits) are both 0 or 1, it indicates that congestion has occurred in the communication system. Therefore, the second identifier includes fields with a value of 0 or 1.
[0086] Optionally, the TCP header also includes an accurate ECN (AE) bit. The AE bit, CWR bit, and ECE bit constitute the ACE field. Each of the AE, CWR, and ECE bits occupies one bit and has two values: 0 and 1. Therefore, the ACE field has 2... 3 The ACE field has eight possible values: 000, 001, 010, 011, 100, 101, 110, and 111. Different values represent different levels of congestion. For example, a value of 000 indicates no congestion in the communication system. A value of 001 indicates mild congestion. A value of 111 indicates severe congestion. Therefore, the second identifier can include ACE values of 001, 010, 011, 100, 101, 110, or 111 (i.e., ACE values other than 000).
[0087] Step 603: The first device sends a second message to the second device.
[0088] Since the first device obtained the second message through step 602, the first device is able to send the second message to the second device.
[0089] Accordingly, the second device receives the second message, parses the second message, and obtains the second identifier. Since this second identifier indicates that the communication system is congested, the second device can determine that the communication system is congested based on the indication of the second identifier.
[0090] For example, the second device receives a TCP ACK packet (i.e., the second packet), parses the TCP ACK packet, and obtains the ACE field (i.e., the second identifier) carried in the TCP header, which has a value of 01 or a value other than 000. The second device determines that congestion has occurred in the communication system based on the field with a value of 01. Alternatively, the second device determines that congestion has occurred in the communication system based on the ACE field with a value other than 000, and determines the degree of congestion.
[0091] When the second device determines that the communication system is congested, the second device can adjust the message sending rate in a timely and rapid manner (the degree of adjustment of the message sending rate by the second device may vary depending on the degree of congestion) to improve the congestion, thereby achieving lower E2E latency, lower packet loss rate and higher throughput in the communication system.
[0092] Step 604: The first device sends a third message to the third device. The third message carries a third identifier, which indicates that there is no congestion in the communication system. The third message is obtained based on the first message.
[0093] The first device sends a third message carrying a third identifier to the third device. The third identifier indicates that no congestion has occurred in the communication system. Optionally, since the third message is obtained based on the first message, if the first message is a service message, the third message is also a service message, and the payload of the third message carries service data.
[0094] For example, the third message is an IP message, which includes an IP header and a third identifier located within the IP header. For instance, the IP header includes an ECN field, which includes an ECT bit and a CE bit. When the ECT bit is 0 or 1 and the CE bit is 0, that is, when the ECN field is 00 or 10, it indicates that the communication system is not congested. Therefore, the third identifier includes an ECN field with a value of 00 or 10.
[0095] In one example, the first identifier includes an ECN field with a value of 10, and the third identifier includes an ECN field with a value of 00. In the process of obtaining the third message based on the first message, the value of the ECN field in the first message is updated from 10 to 00 to obtain the third message.
[0096] In another example, the first identifier includes an ECN field with a value of 10, and the third identifier includes an ECN field with a value of 10. In the process of obtaining the third message based on the first message, there is no need to update the value of the ECN field in the first message to obtain the third message.
[0097] Accordingly, the third device is the message receiver. The third device receives the third message, parses it, and obtains the third identifier. Since this third identifier indicates that no congestion has occurred in the communication system, the third device determines that no congestion has occurred. In other words, the third device is unaware of any congestion in the communication system and does not need to participate in the process of notifying the second device of congestion. In this embodiment, the implementation of congestion notification does not depend on the third device; the first device can notify the second device of congestion via the aforementioned second message.
[0098] For example, a third device receives an IP packet (i.e., a third packet), parses the IP packet, and obtains the ECN field (i.e., the third identifier) carried in the IP packet header, which has a value of 00 or 10. Based on the ECN field with a value of 00 or 10, the third device determines that no congestion has occurred in the communication system.
[0099] In one example, the third identifier includes an ECN field with a value of 00. Besides determining that no congestion has occurred in the communication system, the third device also determines that the second device does not support congestion notification based on the ECT bit's value of 0. Therefore, regardless of whether the third device has congestion notification capabilities, it will not send a congestion notification to the second device.
[0100] In another example, the third identifier includes an ECN field with a value of 10. Besides determining that no congestion has occurred in the communication system, the third device also determines that the second device supports congestion notification based on the ECT bit value of 1. Therefore, regardless of whether the third device has congestion notification capabilities, it does not need to send congestion notifications to the second device. Alternatively, although the implementation of congestion notification in this embodiment does not depend on the third device, if the third device has congestion notification capabilities, it can still send congestion notifications to the second device according to actual needs, making the implementation of congestion notification more flexible and diverse, because the first and third devices can send congestion notifications to the second device separately.
[0101] Furthermore, by parsing the third message, the third device can also obtain the service data carried in the payload, thus ensuring the normal operation of the service. Taking video streaming as an example, the service data includes encoded video data. The third device decodes the encoded video data to obtain the decoded video data. The third device then plays the decoded video data, ensuring the normal operation of the video streaming service.
[0102] Based on the descriptions of steps 601 to 604 above, it is clear that in this embodiment, the third device will not be aware of congestion in the communication system and does not need to notify the second device of congestion. In this embodiment, the implementation of congestion notification does not depend on the third device; instead, the first device notifies the second device of congestion via a second message. Therefore, even if the third device (e.g., a terminal) is outdated, lacks congestion notification capabilities, or has compatibility issues, congestion notification can still be implemented, facilitating the application of L4S technology. Because congestion notification is implemented, the second device (e.g., a server) can adjust the message sending rate promptly and quickly to improve congestion and avoid packet loss, ensuring low E2E latency, low packet loss rate, and high throughput.
[0103] In addition, since the third device does not need to participate in the process of congestion notification to the second device, it also does not need to participate in the process of the first device obtaining the second message. This ensures that the process of the first device obtaining the second message is not affected by fluctuations in the wireless environment, improves the efficiency of congestion notification to the second device, and guarantees the effectiveness of the congestion control mechanism provided by L4S.
[0104] In an exemplary embodiment, the interaction between the first device, the second device, and the third device includes, but is not limited to, the following three cases.
[0105] In the first scenario, congestion in the communication system includes congestion in the first device. The method further includes: the first device acquiring first congestion information, which includes at least one of the first device's MAC layer information or network layer information. Step 602 includes: if it is determined that the first device is congested based on the first congestion information, the first device generates a second message.
[0106] In the first case, the first device is, for example, Figure 1 The AP shown, or Figure 2 The MFU shown is an example of a third device connecting to the first device via Wi-Fi, enabling the first device to obtain the first congestion information.
[0107] In other words, the first device receives the first message and, based on the indication of the first identifier carried in the first message, determines that the second device supports congestion notification. The first device obtains the first congestion information locally and performs congestion identification based on the first congestion information. If the congestion identification determines that the first device is experiencing congestion, it generates a second message and sends the second message to the second device. In addition, the first device also generates a third message based on the first message and sends the third message to the third device.
[0108] When the first congestion information includes MAC information, the MAC layer information includes, but is not limited to, at least one of the following: air interface occupancy rate, aggregated packet length, MAC layer buffer information, or MAC layer transmission rate. When the amount of service data to be transmitted is large, the service data will be divided into multiple parts and carried through multiple packets. The aggregated packet length refers to the total length of the multiple packets. The MAC layer buffer information indicates the number of packets not sent by the MAC layer, and the MAC layer transmission rate indicates the rate at which the MAC layer sends packets. If the air interface occupancy rate is greater than the occupancy rate threshold, the aggregated packet length is greater than the length threshold, the number indicated by the MAC layer buffer information is greater than a first quantity threshold, or the MAC layer transmission rate is less than the rate threshold, the first device can determine that congestion has occurred on the first device.
[0109] If the first congestion information includes network layer information, this network layer information includes, but is not limited to, network layer cache information. The network layer cache information indicates the number of packets that the network layer has not sent. If the number indicated by the network layer cache information exceeds a second threshold, the first device can determine that congestion has occurred on the first device.
[0110] Optionally, the first device is deployed with a physical layer, a MAC layer, a network layer, and a TCP proxy layer. The first device receives a first packet through the physical layer. The first device performs ① congestion identification based on the first congestion information through the MAC layer or the network layer. If the first device is determined to be congested through congestion identification, the first device marks the first packet ② through the network layer, indicating that the first device is congested, obtains the marked packet, and sends the marked packet to the TCP proxy layer. The first device determines that it is congested based on the indication of the marked packet through the TCP proxy layer, and therefore performs ③ congestion statistics to generate a second packet. The first device sends the second packet to the second device through the physical layer, realizing ④ congestion notification. For example, after the first device generates the second packet through the TCP proxy layer, it adds the second packet to the sending queue (equivalent to buffering the second packet), then retrieves the second packet from the sending queue and sends the second packet to the second device through the physical layer. In addition, the first device also generates a third packet based on the first packet through the TCP proxy layer and sends the third packet to the third device through the physical layer, realizing ⑤ service transmission.
[0111] When the first device performs congestion identification based on the first congestion information at the MAC layer, the first congestion information includes MAC layer information. When the first device performs congestion identification based on the first congestion information at the network layer, the first congestion information includes network layer information. The processes of congestion identification at the MAC layer and at the network layer are explained separately below.
[0112] See Figure 7 and Figure 8 , Figure 7 and Figure 8 This illustrates the scenario where the first device identifies congestion based on MAC layer information through the MAC layer.
[0113] The second device generates a first message through the transport layer, network layer, and MAC layer. The first message carries a first identifier, for example, ECT=1 and CE=0 (i.e., ECN=10). The second device sends the first message to the first device through the physical layer.
[0114] The first device receives the first message through the physical layer. The first device determines, through the MAC layer, that the second device supports congestion notification based on the first identifier, obtains MAC layer information, and performs ① congestion identification based on the MAC layer information. If congestion is determined to have occurred in the first device through ① congestion identification, the first device sends the first message to the network layer through the MAC layer.
[0115] The first device marks the first packet at the network layer to obtain the marked packet. For example, the first device updates CE=0 to CE=1 in the first packet at the network layer, so that the marked packet includes ECT=1 and CE=1 (i.e., ECN=11). The first device then sends the marked packet to the TCP proxy layer at the network layer.
[0116] The first device, through the TCP proxy layer, determines that it is experiencing congestion based on the indication of the tagged message. Therefore, it performs congestion statistics (③) to generate a second message. The second message carries a second identifier, for example, CWR=0 and ECE=1. The first device sends the second message to the second device through the physical layer, achieving congestion notification (④), which enables the second device to adjust its message sending rate.
[0117] The first device also generates a third message based on the first message through the TCP proxy layer. The third message carries a third identifier, such as CE=0 (the value of the ECT bit is not limited). The first device sends the third message to the third device through the physical layer to realize the transmission of service ⑤ and ensure the normal operation of the service.
[0118] Optionally, the third device may also return a TCP ACK to the first device, indicating that the third device has received the third packet.
[0119] See Figure 9 and Figure 10 , Figure 9 and Figure 10 This illustrates the scenario where the first device identifies congestion based on network layer information at the network layer.
[0120] The second device generates a first message through the transport layer, network layer, and MAC layer. The first message carries a first identifier, for example, ECT=1 and CE=0 (i.e., ECN=10). The second device sends the first message to the first device through the physical layer.
[0121] The first device receives the first message through the physical layer. The first device sends the first message to the network layer through the MAC layer.
[0122] The first device determines that the second device supports congestion notification based on the first identifier through the network layer, obtains network layer information, and performs ① congestion identification based on the network layer information. If the first device is found to be congested through ① congestion identification, the first packet is ② marked to obtain a marked packet. For example, the first device updates CE=0 to CE=1 in the first packet through the network layer, so that the marked packet includes ECT=1 and CE=1 (i.e., ECN=11). The first device then sends the marked packet to the TCP proxy layer through the network layer.
[0123] The first device, through the TCP proxy layer, determines that it is experiencing congestion based on the indication of the tagged message. Therefore, it performs congestion statistics (③) to generate a second message. The second message carries a second identifier, for example, CWR=0 and ECE=1. The first device sends the second message to the second device through the physical layer, achieving congestion notification (④), which enables the second device to adjust its message sending rate.
[0124] The first device also generates a third message based on the first message through the TCP proxy layer. The third message carries a third identifier, such as CE=0 (the value of the ECT bit is not limited). The first device sends the third message to the third device through the physical layer to realize the transmission of service ⑤ and ensure the normal operation of the service.
[0125] Optionally, the third device may also return a TCP ACK to the first device, indicating that the third device has received the third packet.
[0126] In the second scenario, the communication system further includes a fourth device, through which the first device connects to the third device. Congestion in the communication system includes congestion in the fourth device. The method further includes: the first device receiving second congestion information sent by the fourth device, the second congestion information indicating the congestion status of the fourth device. Step 602 includes: if it is determined that the fourth device is congested based on the second congestion information, the first device generates a second message. Step 604 includes: the first device sending a third message to the fourth device, the third message being used by the fourth device to send to the third device.
[0127] In the second case, the first device is, for example, Figure 2 The MFU shown, the fourth device is, for example, Figure 2 The SFU shown is illustrated. The third device connects to the fourth device via Wi-Fi technology, enabling the fourth device to obtain the second congestion information and send it to the first device. For example, the fourth device sends the second congestion information to the first device through the WLAN management control interface (WMCI).
[0128] In other words, the first device receives the first message and, based on the indication of the first identifier carried in the first message, determines that the second device supports congestion notification. The first device generates a third message based on the first message and sends the third message to the fourth device. The fourth device receives the third message and sends it to the second device. Additionally, the fourth device performs congestion identification. If congestion identification determines that the fourth device is congested, it retrieves second congestion information locally and sends it to the first device. The first device receives the second congestion information. If, based on the second congestion information, it determines that the fourth device is congested, the first device generates a second message and sends it to the second device.
[0129] For example, the fourth device obtains third congestion information, which includes at least one of the fourth device's MAC layer information or network layer information. The fourth device performs congestion identification based on the third congestion information. For instance, if the fourth device has a MAC layer deployed, it performs congestion identification based on its MAC layer information through that MAC layer. Alternatively, if the fourth device has a network layer deployed, it performs congestion identification based on its network layer information through that network layer. The methods for obtaining the third congestion information and for the fourth device to perform congestion identification can be referred to the explanation in the first scenario above, and will not be repeated here.
[0130] Optionally, the first device deploys a physical layer, a MAC layer, a network layer, and a TCP proxy layer, while the fourth device deploys a physical layer, a MAC layer, and a network layer, but does not deploy a TCP proxy layer. The first device receives a first packet through the physical layer and also generates a third packet based on the first packet through the TCP proxy layer. The first device sends the third packet to the fourth device through the physical layer. The fourth device receives the third packet through the physical layer and sends it back to the third device through the physical layer, thus achieving service transmission (⑤). Additionally, the fourth device performs congestion identification (①). If congestion identification determines that the fourth device is congested, the fourth device sends second congestion information to the first device through the physical layer. The first device receives the second congestion information through the physical layer. If congestion is determined to occur in the fourth device based on the second congestion information, the first device marks the first packet (②) through the network layer, indicating that the fourth device is congested, obtains the marked packet, and sends the marked packet to the TCP proxy layer. The first device, through the TCP proxy layer, determines that the fourth device is congested based on the indication of the marked packet, and therefore performs congestion statistics (③) to generate the second packet. The first device sends a second message to the second device through the physical layer to achieve congestion notification.
[0131] Therefore, in the second scenario, there is no need to deploy a TCP proxy layer on the fourth device; deploying a TCP proxy layer on the first device is sufficient. This reduces design complexity and cost while still achieving congestion notification.
[0132] In an exemplary embodiment, the second congestion information sent by the fourth device to the first device includes at least one of the following: whether the fourth device is experiencing congestion; the number of packets sent by the fourth device; the number of packets congested at the fourth device; and the percentage of packets congested at the fourth device among all unsent packets (hereinafter referred to as percentage).
[0133] Accordingly, when the second congestion information indicates that the fourth device is congested, the number of messages sent by the fourth device is less than the third quantity threshold, or the number of congested messages at the fourth device is greater than the fourth quantity threshold or the proportion is greater than the proportion threshold, the first device can determine that the fourth device is congested based on the second congestion information, and thus mark the first message with ②.
[0134] See Figure 11 , Figure 11 This illustrates the situation where the fourth device performs congestion identification, combined with... Figure 11 Let's illustrate the second scenario with an example.
[0135] The second device generates a first message through the transport layer, network layer, and MAC layer. The first message carries a first identifier, for example, ECT=1 and CE=0 (i.e., ECN=10). The second device sends the first message to the first device through the physical layer.
[0136] The first device receives the first message through the physical layer. The first device determines, based on the first identifier, that the second device supports congestion notification through the MAC layer or network layer, and sends the first message to the TCP proxy layer. The first device generates a third message based on the first message through the TCP proxy layer. The third message carries a third identifier, for example, CE=0 (the value of the ECT bit is not limited). The first device sends the third message to the fourth device through the physical layer.
[0137] The fourth device receives the third message through the physical layer and sends the third message to the third device through the physical layer, thereby realizing the transmission of service ⑤ and ensuring the normal operation of the service.
[0138] Optionally, the third device may also return a TCP ACK to the fourth device, indicating that the third device has received the third packet.
[0139] The fourth device performs congestion identification through the MAC layer or network layer. If the congestion identification determines that the fourth device is congested, the fourth device sends second congestion information to the first device through the physical layer.
[0140] The first device receives the second congestion information through the physical layer. If it determines that the fourth device is congested based on the second congestion information, it marks the first packet with ② through the network layer to indicate that the fourth device is congested, thus obtaining the marked packet. For example, the first device updates CE=0 to CE=1 in the first packet through the network layer, so that the marked packet includes ECT=1 and CE=1 (i.e., ECN=11), and sends the marked packet to the TCP proxy layer.
[0141] The first device, through the TCP proxy layer, determines that the fourth device is congested based on the indication of the tagged message, and therefore performs congestion statistics (③) to generate a second message. The second message carries a second identifier, for example, CWR=0 and ECE=1. The first device sends the second message to the second device through the physical layer, achieving congestion notification (④), which enables the second device to adjust its message sending rate.
[0142] In the third scenario, the communication system also includes a fourth device, through which the first device connects to the third device. Congestion in the communication system includes congestion in the fourth device. Step 602 includes: the first device receiving a second message sent by the fourth device in the event of congestion in the fourth device. Step 604 includes: the first device sending a first message to the fourth device, the first message being used by the fourth device to obtain a third message based on the first message and to send the third message to the third device.
[0143] In the third case, the first device is, for example, Figure 2 The MFU shown, the fourth device is, for example, Figure 2 The SFU shown is shown. The third device connects to the fourth device via Wi-Fi technology.
[0144] In other words, the first device receives the first message and sends it to the fourth device. The fourth device receives the first message and, based on the indication of the first identifier carried in the first message, determines that the second device supports congestion notification. The fourth device performs congestion identification, the method of which can be found in the explanation of the second scenario and will not be repeated here. If congestion identification determines that the fourth device is congested, the fourth device generates a second message and sends it to the first device. The first device receives the second message and sends it to the second device. Additionally, the fourth device also generates a third message based on the first message and sends it to the third device.
[0145] Optionally, the first device deploys a physical layer, a MAC layer, and a network layer, but does not deploy a TCP proxy layer. The fourth device deploys a physical layer, a MAC layer, a network layer, and a TCP proxy layer. The first device receives a first packet through the physical layer and sends the first packet to the fourth device through the physical layer. The fourth device receives the first packet through the physical layer and performs ① congestion identification. If congestion identification determines that the fourth device is congested, the fourth device marks the first packet through the network layer, indicating that the fourth device is congested, obtains the marked packet, and sends the marked packet to the TCP proxy layer. The fourth device, through the TCP proxy layer, determines that the fourth device is congested based on the indication of the marked packet, and therefore performs ③ congestion statistics to generate a second packet. The fourth device sends the second packet to the first device through the physical layer. The first device receives the second packet through the physical layer and sends the second packet to the second device through the physical layer, thus achieving ④ congestion notification. The fourth device also generates a third packet based on the first packet through the TCP proxy layer and sends the third packet to the third device through the physical layer, thus achieving ⑤ service transmission.
[0146] Therefore, in the third scenario, no TCP proxy layer needs to be deployed on the first device, while a TCP proxy layer can be deployed on the fourth device. This reduces the design complexity and cost while still achieving congestion notification.
[0147] See Figure 12 Figure 12 illustrates the fourth device's congestion identification, labeling, and congestion statistics, combined with... Figure 12 Let's illustrate the third scenario with an example.
[0148] The second device generates a first message through the transport layer, network layer, and MAC layer. The first message carries a first identifier, for example, ECT=1 and CE=0 (i.e., ECN=10). The second device sends the first message to the first device through the physical layer.
[0149] The first device receives the first message through the physical layer and sends the first message to the fourth device through the physical layer.
[0150] The fourth device determines that the second device supports congestion notification based on the first identifier through the MAC layer or network layer, and performs ① congestion identification. If the fourth device is found to be congested through ① congestion identification, the fourth device performs ② marking on the first packet through the network layer to obtain the marked packet. For example, the fourth device updates CE=0 to CE=1 in the first packet through the network layer, so that the marked packet includes ECT=1 and CE=1 (i.e., ECN=11). The fourth device then sends the marked packet to the TCP proxy layer through the network layer.
[0151] The fourth device, through the TCP proxy layer, determines that it is experiencing congestion based on the indication in the tagged message, and therefore performs congestion statistics to generate a second message. The second message carries a second identifier, for example, CWR=0 and ECE=1. The fourth device then sends the second message to the first device through the physical layer.
[0152] The first device receives the second message through the physical layer and sends the second message to the second device through the physical layer, thereby achieving congestion notification and enabling the second device to adjust the message sending rate.
[0153] The fourth device also generates a third message based on the first message through the TCP proxy layer. The third message carries a third identifier, such as CE=0 (the value of the ECT bit is not limited). The fourth device sends the third message to the third device through the physical layer to realize the transmission of service ⑤ and ensure the normal operation of the service.
[0154] Optionally, the third device may also return a TCP ACK to the first device, indicating that the third device has received the third packet.
[0155] In an exemplary embodiment, the method provided in this application further includes: a first device receiving second congestion information sent by a fourth device, the second congestion information indicating the congestion status of the fourth device.
[0156] In the third scenario, the fourth device sends a second message to the first device, but does not send the second congestion information as in the second scenario. Therefore, in the third scenario, the fourth device can still send the second congestion information to the first device, for example, via WMCI. The first device receives the second congestion information, thus enabling it to obtain the second congestion information and determine the congestion status of the fourth device.
[0157] The above text described three scenarios of interaction between the first, second, and third devices. The commonalities of these three scenarios can be found in [link to relevant documentation]. Figure 13 , Figure 13 This illustrates a scenario where a TCP proxy layer is deployed on a network device. The network device can perform the aforementioned ③ congestion statistics through the TCP proxy layer, thereby achieving the aforementioned ④ congestion notification and ⑤ service transmission.
[0158] exist Figure 1 In the implementation environment shown, network devices with deployed TCP proxy layers include access points (APs). Figure 2 In the implementation environment shown, the network devices deployed with the TCP proxy layer include at least one AP from either an MFU or an SFU. Neither the second device (as the message sender) nor the third device (as the message receiver) needs to be aware of the TCP proxy layer deployed on the network devices, simplifying implementation.
[0159] As can be seen from the above description, in both the second and third scenarios, the first device can receive the second congestion information sent by the fourth device. Accordingly, in the exemplary embodiment, the method provided in this application further includes: the first device obtaining control information based on the second congestion information, the control information indicating the air interface occupancy priority; the first device sending control information to the fourth device, the control information being used by the fourth device to occupy the air interface according to the air interface occupancy priority.
[0160] Specifically, the control information sent by the first device to the congested fourth device indicates a higher air interface occupancy priority, allowing the congested fourth device to occupy air interface resources more preferentially and thus alleviate congestion. Conversely, the control information sent by the first device to the non-congested fourth device indicates a lower air interface occupancy priority, allowing the non-congested fourth device to obtain fewer air interface resources, thus ensuring that air interface resources are available to the congested fourth device.
[0161] This application does not limit the number of fourth devices. When there is only one fourth device, the first device receives second congestion information sent by the fourth device, obtains control information based on the second congestion information, and then sends control information to the fourth device, so that the fourth device receives the control information and occupies the air interface according to the air interface occupancy priority indicated by the control information. Alternatively, when there are multiple fourth devices (e.g., at least two), the first device receives second congestion information sent by some or all of the multiple fourth devices (e.g., each fourth device), obtains control information corresponding to each fourth device based on the received second congestion information, and sends the corresponding control information to each fourth device, so that each fourth device receives the corresponding control information and occupies the air interface according to the air interface occupancy priority indicated by the corresponding control information.
[0162] For example, the first device can also control itself based on the received second congestion information, so that the first device occupies the air interface according to the appropriate air interface occupancy priority.
[0163] like Figure 14As shown, fourth device A sends second congestion information to first device. First device receives the second congestion information and obtains control information based on it. The control information includes control information A corresponding to fourth device A and control information B corresponding to fourth device B. First device sends control information A to fourth device A, causing fourth device A to receive control information A and occupy the air interface according to the air interface occupancy priority indicated by control information A. First device also sends control information B to fourth device B, causing fourth device B to receive control information B and occupy the air interface according to the air interface occupancy priority indicated by control information B. First device also controls itself to occupy the air interface according to the appropriate air interface occupancy priority.
[0164] When the second congestion information indicates that the fourth device A is congested, control information A indicates a higher air interface occupancy priority, and control information B indicates a lower air interface occupancy priority. The first device occupies the air interface according to the lower air interface occupancy priority. As a result, the fourth device A can occupy the air interface with higher priority and obtain more air interface resources, thereby alleviating the congestion occurring at the fourth device A.
[0165] This application does not limit the execution order of the first device sending control information A, sending control information B, and controlling itself. The first device can complete the sending and control simultaneously, or it can complete the sending and control sequentially according to actual needs.
[0166] Optionally, the control information includes, but is not limited to, time-frequency resources, which include at least one of time resources or frequency resources. Time resources, for example, include EDCA parameters.
[0167] As explained above, when different Access Points (APs) in a communication system coordinate with each other using CSMA (Content Conflict Mode), an AP will randomly back off for a certain period before occupying the wireless channel (i.e., the air interface) if it detects that the wireless channel is idle. The duration of this random backoff is determined based on the EDCA (Early Access Control and Response) mechanism. The EDCA mechanism provides EDCA parameters, which affect the duration of the random backoff and thus the air interface occupancy priority. For example, EDCA parameters include the contention window minimum / contention window maximum (CWmin / CWmax), where CWmin / CWmax indicates the range of values for the random backoff duration. CWmin is the lower limit of the range, and CWmax is the upper limit; CWmin is less than CWmax. A smaller CWmin / CWmax results in a shorter random backoff duration and a higher air interface occupancy priority. Conversely, a larger CWmin / CWmax results in a longer random backoff duration and a lower air interface occupancy priority.
[0168] For example, EDCA parameters may also include the arbitration inter-framespace number (AIFSN) and the transmission opportunity (TXOP). AIFSN indicates the waiting time before occupying the air interface; a shorter waiting time indicates higher air interface occupancy priority, and a longer waiting time indicates lower air interface occupancy priority. TXOP indicates the number of packets that can be continuously transmitted after occupying the air interface; a larger number of packets that can be continuously transmitted indicates higher air interface occupancy priority, and a smaller number of packets that can be continuously transmitted indicates lower air interface occupancy priority.
[0169] Therefore, in the event of congestion, on the one hand, the first device notifies the second device of the congestion, enabling the second device to adjust the message sending rate to improve the congestion; on the other hand, the first device adjusts the air interface occupancy priority of the first device and each of the fourth devices to improve the congestion.
[0170] In an exemplary embodiment, the method provided in this application further includes: the first device sending second congestion information to the second device.
[0171] Optionally, the second congestion information is carried in the second message, that is, the second message carries both the aforementioned second identifier and the second congestion information. The first device sends the second message to the second device, and the second device can determine that the communication system is congested based on the second identifier, and can also determine the congestion status of the fourth device based on the second congestion information.
[0172] Alternatively, the second congestion information may be carried in other messages, which are different from the second message. The first device sends the second message (carrying the second identifier) to the second device, and the second device determines that congestion has occurred in the communication system based on the second identifier. The first device also sends other messages (carrying the second congestion information) to the second device, and the second device determines the congestion status of the fourth device based on the second congestion information.
[0173] For example, the second message or other message includes an accurate ECN TCP options field, where the second congestion information is located.
[0174] In addition, the first device may also send at least one of its MAC layer information or network layer information to the second device, as detailed in the description of the first scenario. This at least one piece of information is located in the second message or other messages, for example, in the accurate ECN TCP options field, which will not be elaborated upon here.
[0175] Optionally, the second message and other messages mentioned above may be generated by the first device (corresponding to the second case) or by the fourth device (corresponding to the third case), and this application embodiment does not limit this.
[0176] The congestion notification method provided in the embodiments of this application has been described above. Corresponding to the above method, the embodiments of this application also provide a congestion notification device. This device is applied to a first device included in a communication system, the first device being connected to a second device and a third device respectively. The device is used to notify congestion through… Figure 15 Each module shown performs the above... Figure 6 The steps performed by the first device in the congestion notification method shown. See also Figure 15 The congestion notification device provided in this application includes a transceiver module 1501 and an acquisition module 1502.
[0177] The transceiver module 1501 is used to receive a first message sent by the second device. The first message carries a first identifier, which indicates that the second device supports congestion notification.
[0178] The acquisition module 1502 is used to acquire a second message in the event of congestion in the communication system. The second message carries a second identifier, which indicates that the communication system is congested.
[0179] The transceiver module 1501 is also used to send a second message to a second device.
[0180] The transceiver module 1501 is also used to send a third message to a third device. The third message carries a third identifier, which indicates that there is no congestion in the communication system. The third message is obtained based on the first message.
[0181] In one possible implementation, the communication system congestion includes the first device experiencing congestion; the acquisition module 1502 is further configured to acquire first congestion information, which includes at least one of the MAC layer information or network layer information of the first device; the acquisition module 1502 is configured to generate a second message when it is determined that the first device is experiencing congestion based on the first congestion information.
[0182] In one possible implementation, the communication system further includes a fourth device, through which the first device is connected to the third device, and the congestion in the communication system includes congestion in the fourth device; the transceiver module 1501 is also used to receive second congestion information sent by the fourth device, the second congestion information indicating the congestion status of the fourth device; the acquisition module 1502 is used to generate a second message if it is determined that the fourth device is congested based on the second congestion information; the transceiver module 1501 is used to send a third message to the fourth device, the third message being used by the fourth device to send to the third device.
[0183] In one possible implementation, the communication system further includes a fourth device, through which the first device is connected to the third device, and the congestion in the communication system includes congestion in the fourth device; an acquisition module 1502 is used to receive a second message sent by the fourth device when it is determined that the fourth device is congested; and a transceiver module 1501 is used to send a first message to the fourth device, the first message being used by the fourth device to acquire a third message based on the first message and send the third message to the third device.
[0184] In one possible implementation, the transceiver module 1501 is further configured to receive second congestion information sent by the fourth device, the second congestion information indicating the congestion status of the fourth device.
[0185] In one possible implementation, the transceiver module 1501 is also used to send second congestion information to the second device.
[0186] In one possible implementation, the second congestion information includes at least one of the following: whether the fourth device is congested; the number of packets sent by the fourth device; the number of packets congested at the fourth device; and the percentage of packets congested at the fourth device among all unsent packets.
[0187] In one possible implementation, the acquisition module 1502 is further configured to acquire control information based on the second congestion information, the control information indicating the air interface occupancy priority; the transceiver module 1501 is further configured to send control information to the fourth device, the control information being used by the fourth device to occupy the air interface according to the air interface occupancy priority.
[0188] In one possible implementation, the control information includes EDCA parameters.
[0189] It should be understood that the above Figure 15 The congestion notification device shown, in performing its function, possesses beneficial effects and... Figure 6 The congestion notification method shown has the same beneficial effects. Figure 15 The congestion notification device shown is illustrated using the above-described division of functional modules as an example. In practical applications, the functions described can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. Furthermore, the device and method embodiments provided in the above examples belong to the same concept, and their specific implementation processes are detailed in the method embodiments, which will not be repeated here.
[0190] This application also provides a network device, including a memory and a processor. The memory stores at least one computer instruction, which is loaded and executed by the processor to enable the network device to perform... Figure 6The congestion notification method is shown. Network devices can also be called computer devices, computers, etc., without limitation here.
[0191] See Figure 16 , Figure 16 A schematic diagram of the structure of an exemplary network device 1600 of this application is shown. The network device 1600 includes at least one processor 1601, a memory 1603, and at least one network interface 1604.
[0192] Processor 1601 is, for example, a general-purpose central processing unit (CPU), a digital signal processor (DSP), a network processor (NP), a graphics processing unit (GPU), a neural-network processing unit (NPU), a data processing unit (DPU), a microprocessor, or one or more integrated circuits or application-specific integrated circuits (ASICs), programmable logic devices (PLDs), other general-purpose processors or other programmable logic devices, discrete gates, transistor logic devices, discrete hardware components, or any combination thereof used to implement the scheme of this application. A PLD is, for example, a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), generic array logic (GAL), or any combination thereof. A general-purpose processor can be a microprocessor or any conventional processor. It is worth noting that the processor can be a processor supporting an advanced reduced instruction set machine (RISC) machine (ARM) architecture. It can implement or execute various logic blocks, modules, and circuits described in conjunction with the disclosure of this application. The processor can also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, etc.
[0193] Optionally, network device 1600 also includes bus 1602. Bus 1602 is used to transmit information between the components of network device 1600. Bus 1602 can be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus, etc. Bus 1602 can be divided into address bus, data bus, control bus, etc. For ease of representation, Figure 16 The symbol is represented by only one line, but this does not mean that there is only one bus or one type of bus.
[0194] The memory 1603 may be, for example, volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. The non-volatile memory may be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. The volatile memory may be random access memory (RAM), which is used as an external cache.
[0195] By way of example, but not limitation, many forms of ROM and RAM are available. For example, ROM is a compact disc read-only memory (CD-ROM). RAM includes, but is not limited to, static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous linked dynamic random access memory (SLDRAM), and direct rambus RAM (DR RAM).
[0196] The memory 1603 can also be other types of storage devices capable of storing static information and instructions. Alternatively, it can be other types of dynamic storage devices capable of storing information and instructions. It can also be other optical disc storage, optical disk storage (including compressed optical discs, laser discs, optical discs, digital versatile optical discs, Blu-ray discs, etc.), magnetic disk storage media, or other magnetic storage devices, or any other medium capable of carrying or storing desired program code in the form of instructions or data structures that can be accessed by a computer, but is not limited thereto. The memory 1603 may exist independently, for example, and be connected to the processor 1601 via bus 1602. The memory 1603 may also be integrated with the processor 1601.
[0197] Network interface 1604 uses any transceiver-like device for communicating with other devices or communication networks, such as Ethernet, radio access network (RAN), or wireless local area network (WLAN). Network interface 1604 can include wired network interfaces and wireless network interfaces. Specifically, network interface 1604 can be an Ethernet interface, such as Fast Ethernet (FE), Gigabit Ethernet (GE), Asynchronous Transfer Mode (ATM), WLAN, cellular network, or combinations thereof. The Ethernet interface can be an optical interface, an electrical interface, or a combination thereof. In some embodiments of this application, network interface 1604 can be used by network device 1600 to communicate with other devices.
[0198] In specific implementations, as some embodiments, the processor 1601 may include one or more CPUs, such as Figure 16 The CPU0 and CPU1 shown are examples of processors. Each of these processors can be a single-core processor or a multi-core processor. A processor here can refer to one or more devices, circuits, and / or processing cores used to process data (e.g., computer program instructions).
[0199] In specific implementations, as some methods, network device 1600 may include multiple processors, such as Figure 16 The processors 1601 and 1605 are shown. Each of these processors may be a single-core processor or a multi-core processor. Here, "processor" may refer to one or more devices, circuits, and / or processing cores used to process data (such as computer program instructions).
[0200] In some embodiments, memory 1603 is used to store program instructions 1610 for executing the scheme of this application, and processor 1601 can execute the program instructions 1610 stored in memory 1603. That is, network device 1600 can implement the method provided in the method embodiment through processor 1601 and program instructions 1610 in memory 1603, i.e. Figure 6 The congestion notification method is shown. Program instructions 1610 may include one or more software modules. Optionally, processor 1601 itself may also store program instructions for executing the scheme of this application.
[0201] In specific implementation, the network device 1600 of this application can correspond to a first device for executing the above method. The processor 1601 in the network device 1600 reads instructions from the memory 1603, causing... Figure 16 The network device 1600 shown is capable of performing all or part of the steps in the method embodiments.
[0202] Network device 1600 can also correspond to the above. Figure 15 The device shown, Figure 15 Each functional module in the illustrated device is implemented using software from network device 1600. In other words, Figure 15 The device shown includes functional modules generated by the processor 1601 of the network device 1600 after reading the program instructions 1610 stored in the memory 1603.
[0203] in, Figure 6 Each step of the congestion notification method shown is completed through integrated logic circuits in the hardware or software instructions in the processor of the network device 1600. The steps of the method embodiments disclosed in this application can be directly implemented by the hardware processor, or by a combination of hardware and software modules in the processor. The software modules can reside in random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other mature storage media in the art. This storage medium is located in memory; the processor reads information from the memory and, in conjunction with its hardware, completes the steps of the above method embodiments. To avoid repetition, details are not provided here.
[0204] This application provides a chip, including a processor, for calling and executing instructions stored in memory, causing a network device with the chip installed to perform... Figure 6 The congestion notification method shown.
[0205] This application also provides another type of chip, including: an input interface, an output interface, a processor, and a memory. The input interface, output interface, processor, and memory are connected through internal interconnection paths. The processor is used to execute code in the memory. When the code is executed, the network device with the chip installed performs... Figure 6 The congestion notification method shown.
[0206] This application provides a communication system including a first device, a second device, and a third device, wherein the second device and the third device are respectively connected to the first device. The first device is used to perform the above-described... Figure 6 The congestion notification method shown.
[0207] Optionally, the communication system further includes a fourth device, through which the first device is connected to the third device. The fourth device is used to perform... Figure 6 The congestion notification method shown.
[0208] This application also provides a computer-readable storage medium that stores computer instructions. When the computer instructions are executed on a network device, the above-mentioned... Figure 6 The congestion notification method shown is executed by the network device.
[0209] This application also provides a computer program or computer program product, which includes: computer instructions that, when executed by a network device, cause the network device to perform... Figure 6 The congestion notification method shown.
[0210] In the above embodiments, implementation can be achieved, in whole or in part, through software, hardware, firmware, or any combination thereof. When implemented in software, it can be implemented, in whole or in part, as a computer program product. A computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the processes or functions according to this application are 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. For example, computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state disk).
[0211] In this application, the terms "first," "second," etc., are used to distinguish identical or similar items that have essentially the same function. It should be understood that there is no logical or temporal dependency between "first," "second," and "nth," nor does it limit the quantity or order of execution. It should also be understood that although the following description uses the terms "first," "second," etc., to describe various elements, these elements should not be limited by the terms. These terms are merely used to distinguish one element from another.
[0212] It should also be understood that, in the various embodiments of this application, the sequence number of each process does not imply the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.
[0213] In this application, the term "at least one" means one or more, and the term "multiple" means two or more; for example, "multiple" means two or more. The terms "system" and "network" are often used interchangeably in this document.
[0214] It should be understood that the terminology used in the description of the various examples herein is for the purpose of describing the particular examples only and is not intended to be limiting. As used in the description of the various examples and in the appended claims, the singular forms “a” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise.
[0215] It should also be understood that the term "and / or" as used herein refers to and covers any and all possible combinations of one or more of the associated listed items. The term "and / or" describes an association between related objects, indicating that three relationships can exist; for example, A and / or B can represent: A alone, A and B simultaneously, or B alone. Additionally, the character " / " in this application generally indicates that the preceding and following related objects are in an "or" relationship.
[0216] It should also be understood that the terms “if” and “if” can be interpreted as meaning “when” or “upon”, or “in response to determination” or “in response to detection”. Similarly, depending on the context, the phrases “if determination…” or “if detection [the stated condition or event]” can be interpreted as meaning “when determination…”, or “in response to determination…”, or “when detection [the stated condition or event]” or “in response to detection [the stated condition or event]”.
[0217] The above are merely embodiments of this application and are not intended to limit this application. Any modifications, equivalent substitutions, improvements, etc., made within the principles of this application should be included within the protection scope of this application.
Claims
1. A congestion notification method, characterized in that, The method is applied to a first device in a communication system, the first device being connected to a second device and a third device respectively, the method comprising: Receive a first message sent by the second device, the first message carrying a first identifier, the first identifier indicating that the second device supports congestion notification; In the event of congestion in the communication system, a second message is acquired, the second message carrying a second identifier, the second identifier indicating that the communication system is congested; Send the second message to the second device; A third message is sent to the third device, the third message carrying a third identifier, the third identifier indicating that the communication system is not congested, and the third message is obtained based on the first message.
2. The method according to claim 1, characterized in that, The congestion in the communication system includes congestion in the first device; The method further includes: obtaining first congestion information, wherein the first congestion information includes at least one of the media access control (MAC) layer information or network layer information of the first device; The step of obtaining the second message in the event of congestion in the communication system includes: generating the second message when it is determined that the first device is congested based on the first congestion information.
3. The method according to claim 1, characterized in that, The communication system further includes a fourth device, through which the first device is connected to the third device, and congestion in the communication system includes congestion in the fourth device; The method further includes: receiving second congestion information sent by the fourth device, wherein the second congestion information indicates the congestion status of the fourth device; The step of obtaining the second message in the event of congestion in the communication system includes: generating the second message when it is determined that the fourth device is congested based on the second congestion information; Sending the third message to the third device includes sending the third message to the fourth device, wherein the third message is used by the fourth device to send to the third device.
4. The method according to claim 1, characterized in that, The communication system further includes a fourth device, through which the first device is connected to the third device, and congestion in the communication system includes congestion in the fourth device; The step of obtaining the second message in the event of congestion in the communication system includes: receiving the second message sent by the fourth device when it is determined that the fourth device is experiencing congestion; Sending the third message to the third device includes: sending the first message to the fourth device, wherein the first message is used by the fourth device to obtain the third message based on the first message and send the third message to the third device.
5. The method according to claim 4, characterized in that, The method further includes: The system receives second congestion information sent by the fourth device, which indicates the congestion status of the fourth device.
6. The method according to claim 3 or 5, characterized in that, The method further includes: Send the second congestion information to the second device.
7. The method according to any one of claims 3, 5, and 6, characterized in that, The second congestion information includes at least one of the following: Is the fourth device experiencing congestion? The number of messages sent by the fourth device; The number of congested packets at the fourth device; The percentage of congested packets at the fourth device out of all unsent packets.
8. The method according to any one of claims 3, 5-7, characterized in that, The method further includes: Control information is obtained based on the second congestion information, and the control information indicates the air interface occupancy priority. The control information is sent to the fourth device, and the control information is used by the fourth device to occupy the air interface according to the air interface occupation priority.
9. The method according to claim 8, characterized in that, The control information includes Enhanced Distributed Channel Access (EDCA) parameters.
10. A congestion notification device, characterized in that, The device is applied to a first device included in a communication system, the first device being connected to a second device and a third device respectively, and the device includes: The transceiver module is used to receive a first message sent by the second device, the first message carrying a first identifier, the first identifier indicating that the second device supports congestion notification; The acquisition module is configured to acquire a second message in the event of congestion in the communication system, the second message carrying a second identifier indicating that congestion has occurred in the communication system; The transceiver module is also used to send the second message to the second device; The transceiver module is further configured to send a third message to the third device, the third message carrying a third identifier, the third identifier indicating that the communication system is not congested, and the third message being obtained based on the first message.
11. A chip, characterized in that, The chip includes a processor configured to retrieve and execute instructions stored in a memory, causing a network device equipped with the chip to perform the congestion notification method according to any one of claims 1-9.
12. A network device, characterized in that, The network device has a memory and a processor, wherein the memory stores at least one computer instruction, which is loaded and executed by the processor to enable the network device to implement the congestion notification method according to any one of claims 1-9.
13. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer instructions, and when the computer instructions are run on the network device, the congestion notification method of any one of claims 1-9 is executed by the network device.
14. A computer program product, characterized in that, The computer program product includes computer instructions that, when executed by a network device, cause the network device to perform the congestion notification method according to any one of claims 1-9.
