A mechanism and apparatus for accurate congestion feedback for wireless local area networks
By generating AP-ACK acknowledgment packets on the wireless access point (AP) and using the Count-Min Sketch storage structure, the problem of TCP congestion judgment errors in wireless networks is solved, achieving accurate congestion feedback and throughput improvement.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- XI AN JIAOTONG UNIV
- Filing Date
- 2023-03-16
- Publication Date
- 2026-05-08
AI Technical Summary
The characteristics of wireless networks affect the congestion assessment of existing TCP transmission protocols. Incorrect congestion assessments will cause the TCP sender to unnecessarily reduce the sending rate, thus affecting network system performance.
An AP-ACK acknowledgment packet is generated on the wireless access point (AP) to report the congestion status of the wired link. The data stream buffer usage is recorded through the Count-Min Sketch storage structure to generate an accurate congestion feedback mechanism. The transmission rate of the transmitter is adjusted in combination with dynamic thresholds.
It achieves accurate congestion feedback in wireless LANs, avoids the adverse effects of wireless network characteristics on TCP congestion judgment, improves the throughput of the sending end and the system transmission performance, and is compatible with traditional TCP mechanisms.
Smart Images

Figure CN116367221B_ABST
Abstract
Description
Technical Field
[0001] This invention belongs to the field of computer network technology, and specifically relates to an accurate congestion feedback mechanism and feedback device for wireless local area networks. Background Technology
[0002] Wireless LANs have become the primary internet access method in the field of mobile computing. With the rise of mobile games, live video streaming, and other applications, users have increasingly higher demands for high throughput, low latency, and reliability in wireless networks. The Transmission Control Protocol (TCP), widely used in networks, ensures reliable end-to-end transmission. However, the characteristics of wireless networks cause TCP to err in its congestion assessment and control, preventing it from achieving good performance in wireless environments.
[0003] Traditional TCP congestion control mechanisms treat packet loss or latency increases as congestion signals. In congestion control mechanisms that use packet loss as a congestion indicator (such as Reno and Cubic), if the sender detects packet loss, it assumes network congestion and alleviates it by reducing the transmission rate. However, signal fluctuations and attenuation in wireless networks can cause random packet loss not due to congestion. The sender may mistakenly interpret this as a congestion signal, unnecessarily reducing the transmission rate, leading to reduced bandwidth utilization and slower data transmission speeds. In congestion control mechanisms based on latency or link capacity (such as Vegas and BBR), the sender determines congestion based on the round-trip time of packets or its estimated available bandwidth or network capacity. If latency increases or the estimated parameters change, the sender assumes link congestion and reduces the transmission rate. However, channel contention mechanisms and host mobility in wireless networks cause fluctuations and unpredictability in transmission latency, affecting the sender's accurate congestion assessment.
[0004] In summary, the characteristics of wireless networks affect the congestion assessment of existing TCP transmission protocols. Incorrect congestion assessments will cause the TCP sender to unnecessarily reduce the sending rate, which will adversely affect the performance of the network system. Summary of the Invention
[0005] This invention provides an accurate congestion feedback mechanism for wireless local area networks, which on the one hand meets users' needs for high-bandwidth, low-latency wireless network services, and on the other hand enables fair use of the channel among different data streams.
[0006] To achieve the above objectives, the present invention adopts the following technical solution:
[0007] This invention proposes an accurate congestion feedback mechanism for wireless local area networks (WLANs) based on a segmented connection scheme that generates AP-ACK acknowledgment packets on the wireless access point (AP) to provide feedback on the partial congestion status of the wired link.
[0008] An accurate congestion feedback mechanism for wireless local area networks includes the following steps:
[0009] Step 1: The sending end generates data packets;
[0010] Step 2: When the data packet arrives at the wireless access point (AP), the data stream buffer occupancy is updated, the dynamic threshold is updated, the receive window value is calculated using the data stream buffer occupancy and the dynamic threshold, and then an AP-ACK is generated based on the data packet information and the receive window value and sent to the sending end. The congestion status information of the wired link and the available buffer size of the data stream on the wireless access point (AP) are fed back. Subsequently, the data packet is dequeued from the buffer, leaves the wireless access point (AP) and is transmitted to the wireless receiving end. The data stream buffer occupancy is updated, the dynamic threshold is updated, a new receive window value is calculated, and an AP-ACK is generated and sent to the sending end.
[0011] Step 3: After receiving the data packet, the wireless receiver returns an ACK packet to the sender;
[0012] Step 4: When the sending end receives the AP-ACK containing wired link status information, it performs congestion control based on the wired link delay information and data packet transmission rate fed back by the AP-ACK; the wired link delay information is calculated and obtained from the AP-ACK timestamp information.
[0013] Step 5: When the sending end receives an ACK from the receiving end, it confirms the information based on the ACK feedback.
[0014] Furthermore, in step 2, updating the data stream cache usage includes the following steps:
[0015] Step A1: After the data packet is stored in the queue, obtain the 5-tuple information and the data packet payload size. Increase the current data stream cache usage. ;
[0016] Step A2: After the data packet is dequeued and transmitted to the wireless receiver, the 5-tuple information and data packet payload size are obtained, and the current data stream buffer usage is reduced. .
[0017] Furthermore, in step 2, updating the dynamic threshold includes the following steps:
[0018] Obtain the total buffer size on the wireless access point (AP) and determine if the total buffer size on the AP is 0:
[0019] If the cache is 0, set the dynamic threshold to 32. Target queue length;
[0020] Otherwise, calculate the total target queue length based on the number of data streams:
[0021] If the total target queue length is greater than the cache length, set the dynamic threshold to 0.5. (The difference between the total target queue length and the cache length);
[0022] Otherwise, set the dynamic threshold to 0.
[0023] Furthermore, in step 2, an AP-ACK is generated based on the data packet information and the receive window value and sent to the sending end to provide feedback on the partial congestion status information of the wired link, including the following steps:
[0024] Step B1: Enqueue the data packet, obtain the data stream buffer usage corresponding to the data packet, compare the data stream buffer usage with the dynamic threshold, if the data stream buffer usage is greater than or equal to the dynamic threshold, send an AP-ACK with a receive window of 0 to the sender to inform the sender that the data stream buffer on the AP is full and slow down the sending rate.
[0025] Step B2: Update the data stream cache usage and update the dynamic threshold;
[0026] Step B3: If the AP-ACK generator was not invoked in step B1, then the AP-ACK generator is invoked to generate AP-ACK feedback on wired link congestion information;
[0027] Step B4: After the data packet is dequeued from the AP buffer, update the data stream buffer occupancy and the dynamic threshold. Calculate the available buffer size of the data stream based on the data stream buffer occupancy and the dynamic threshold. If the corresponding data stream is marked as a zero-window data stream and the available buffer size of the data stream is greater than 0, call the AP-ACK generator to generate an AP-ACK and send it to the sender to indicate that the data stream has an available buffer on the AP. Adjust the sending rate of the sender.
[0028] Furthermore, the AP-ACK generator generates an AP-ACK and sends it to the sender, including the following steps:
[0029] Step B3.1: Obtain the parameters required to generate the acknowledgment packet based on the data packet header information;
[0030] Step B3.2: Subtract the data stream buffer usage from the dynamic threshold to obtain the receive window value. If the receive window value is 0, mark the data stream as a zero-window data stream.
[0031] Step B3.3: Generate AP-ACK based on the parameters obtained in steps B3.1 and B3.2 and send it to the sender.
[0032] Furthermore, in step B3.3, the source IP address, destination IP address, and protocol number information are used to generate the IP header required for AP-ACK, and the source port number, destination port number, packet sequence number, timestamp, and receive window value information are used to generate the TCP header required for AP-ACK, so as to transmit the AP-ACK acknowledgment to the sender.
[0033] Furthermore, step 5 includes the following steps: For an ACK from the receiving end, if it is a normal ACK, the data packet is confirmed to have been successfully received based on its header information, and the receiving end sliding window is moved. If it is an ACK reporting a lost data packet, the location of the lost data packet is determined by the marker in the sending buffer. If the packet loss is due to a wired link, it indicates that congestion has occurred. The congestion window is reduced, and the sending speed is slowed down to alleviate the congestion. If the packet loss is due to a wireless link, there is no congestion in the link. Only the data packet is retransmitted to ensure fast data transmission.
[0034] An accurate congestion feedback device for wireless local area networks includes a packet processor, a Count-MinSketch storage structure, an AP-ACK generator, and an acknowledgment packet processor.
[0035] The packet processor is used to update the required parameters on the wireless access point (AP) and call the AP-ACK generator when packets are enqueued or inbounded.
[0036] The Count-Min Sketch storage structure is used to record the amount of data stream cached on the wireless access point (AP).
[0037] The AP-ACK generator is used to send an AP-ACK back to the sender after receiving a data packet, informing it of the wired link status information and the available buffer size of the wireless access point (AP), and guiding the sender's acknowledgment packet processor to perform accurate congestion control and control the transmission speed.
[0038] The acknowledgment packet processor is located at the sending end, and uses AP-ACK from the wireless access point (AP) for congestion control processing and ACK from the receiving end for transmission acknowledgment.
[0039] Furthermore, the Count-Min Sketch storage structure is composed of The array is composed of two-dimensional arrays, where each element serves as a counter; each row of the array corresponds to a hash function, i.e., there are a total of [number] hash functions. There are 5 hash functions, and the hash functions are independent of each other; the data stream 5-tuple information is mapped to different positions in each row through the hash function for counting and storage, and the cache usage count of each data stream is maintained.
[0040] Compared with the prior art, the present invention has at least the following beneficial technical effects:
[0041] First, this invention proposes to provide accurate congestion feedback in a wireless network environment by feeding back wired link congestion status information at the wireless access point (AP), thus avoiding incorrect TCP congestion assessments caused by wireless characteristics. Before a data packet enters the wireless network, the AP generates an acknowledgment (AP-ACK) based on the packet information. This AP-ACK only contains wired link congestion status information. The transmitting end uses the wired link status information obtained from the AP-ACK to perform congestion control, preventing the "last hop" wireless network from adversely affecting congestion assessment, thereby improving the transmitting end's throughput and enhancing system transmission performance.
[0042] Second: This invention only requires minor modifications to the TCP mechanism at the wireless access point (AP) and the sending end, without violating the end-to-end semantics of TCP, and is compatible with the traditional TCP mechanism, without affecting the operation and use of the traditional TCP mechanism.
[0043] Furthermore, this invention uses dynamic thresholds to manage data stream buffering at the wireless access point (AP), enabling data streams to share link bandwidth more fairly. Attached Figure Description
[0044] Figure 1 This is a structural diagram of an accurate congestion feedback mechanism for wireless local area networks.
[0045] Figure 2 This is a schematic diagram illustrating the workflow of the AP after receiving a data packet;
[0046] Figure 3 This is the pseudocode for the dynamic threshold algorithm;
[0047] Figure 4 This is a schematic diagram of the workflow of the sender's acknowledgment packet processor.
[0048] Figure 5 Topology diagram used for the simulation environment;
[0049] Figure 6 This is a graph showing the performance test results of the audio player in a wireless environment. Detailed Implementation
[0050] To make the objectives and technical solutions of this invention clearer and easier to understand, the invention will be further described in detail below with reference to the accompanying drawings and embodiments. The specific embodiments described herein are for illustrative purposes only and are not intended to limit the invention.
[0051] In the description of this invention, it should be understood that the terms "center," "longitudinal," "lateral," "upper," "lower," "front," "rear," "left," "right," "vertical," "horizontal," "top," "bottom," "inner," and "outer," etc., indicating orientation or positional relationships based on the orientation or positional relationships shown in the accompanying drawings, are only for the convenience of describing the invention and simplifying the description, and do not indicate or imply that the device or element referred to must have a specific orientation, or be constructed and operated in a specific orientation, and therefore should not be construed as a limitation of the invention. Furthermore, the terms "first" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of indicated technical features. Thus, a feature defined with "first" or "second" may explicitly or implicitly include one or more of that feature. In the description of this invention, unless otherwise stated, "a plurality of" means two or more. In the description of this invention, it should be noted that, unless otherwise explicitly specified and limited, the terms "installation," "connection," and "linking" should be interpreted broadly. For example, they can refer to a fixed connection, a detachable connection, or an integral connection; they can refer to a mechanical connection or an electrical connection; they can refer to a direct connection or an indirect connection through an intermediate medium; and they can refer to the internal connection of two components. Those skilled in the art can understand the specific meaning of the above terms in this invention based on the specific circumstances.
[0052] This invention, based on the segmented connection concept, divides wireless network transmission into a wired portion from the transmitter to the wireless access point (AP) and a wireless portion from the AP to the receiver. A wired link congestion feedback mechanism is implemented at the AP, using a Count-Min Sketch storage structure to record the data stream's buffer usage on the AP. AP acknowledgment packets (AP-ACKs) are generated to report wired link congestion and AP buffer status to the transmitter. The wireless portion utilizes a wireless link layer acknowledgment mechanism for simple flow control, preventing the wireless environment from affecting TCP congestion control. Simultaneously, a dynamic threshold is used on the AP to adjust the available window size, controlling the transmitter's sending rate and ensuring fair use of wired bandwidth for all data streams.
[0053] The system structure of the present invention is as follows: Figure 1 As shown. The accurate congestion feedback system for wireless local area networks provided by this invention consists of four parts: a packet processor, a Count-Min Sketch storage structure, an AP-ACK generator, and an acknowledgment packet processor.
[0054] Specifically, the output terminal of the packet processor's quintuple and load information is connected to the input terminal of the quintuple and load information of the Count-Min Sketch storage structure, and the output terminal of the packet information is connected to the input terminal of the AP-ACK generator; the output terminal of the data stream buffer information of the Count-Min Sketch storage structure is connected to the input terminal of the data stream buffer information of the AP-ACK generator.
[0055] The packet processor outputs packet quintuple information and payload information to the Count-Min Sketch storage structure and outputs packet information to the AP-ACK generator. The Count-Min Sketch storage structure outputs data stream buffer information to the AP-ACK generator.
[0056] The packet processor, Count-Min Sketch storage structure, and AP-ACK generator are located at the wireless access point (AP).
[0057] The packet processor updates the necessary parameters on the AP during packet enqueueing and dequeueing and calls the AP-ACK generator at the appropriate time. The Count-Min Sketch storage structure records the buffer usage of the data stream on the AP. After receiving a packet, the AP-ACK generator sends an AP-ACK back to the sender, informing it of the wired link status information and the available buffer size of the AP, guiding the sender's acknowledgment packet processor to perform accurate congestion control and control the transmission rate. The acknowledgment packet processor is located at the sender, using the AP-ACK from the AP for congestion control processing and the ACK from the receiver for transmission acknowledgment, ensuring reliable data transmission.
[0058] The invention is characterized by using segmented connections to provide accurate congestion status information to the sender. The following detailed description, in conjunction with the accompanying drawings, illustrates the complete process of a TCP data packet being sent from the sender to receiving its AP-ACK and ACK:
[0059] This invention sets up a packet processor on the wireless access point (AP) to record the parameters required for operation, uses an AP-ACK generator to generate AP-ACK feedback on the wired link status information, and uses a Count-Min Sketch storage structure to record the buffer usage of each data stream. It consists of a two-dimensional array, where each element acts as a counter. Each row of the array corresponds to a hash function, meaning there are a total of [number of rows]. There are several independent hash functions. The hash functions map the 5-tuple information of the data stream to different positions in each row for counting and storage, maintaining a cache usage count for each data stream.
[0060] The Count-Min Sketch storage structure supports three basic operations: increasing cache usage (Increase(item)), decreasing cache usage (Decrease(item)), and querying cache usage (Count(item)).
[0061] Increase(item): Where item represents a data packet element. This operation increments the corresponding data stream buffer occupancy count after a data packet is enqueued. This operation is completed in the following 3 steps:
[0062] Step A1: Obtain the 5-tuple information and packet payload size of the data packet from the IP header and TCP header. ;
[0063] Step A2: Use A hash function maps the quintuple information to... In the row One counter;
[0064] Step A3: Increment the value of all located counters. .
[0065] Decrease(item): Where item represents a data packet element. This operation decrements the corresponding data stream buffer occupancy count after a data packet is dequeued. This operation is completed in the following 3 steps:
[0066] Step B1: Obtain the 5-tuple information and packet payload size of the data packet from the IP header and TCP header. ;
[0067] Step B2: Use A hash function maps the quintuple information to... In the row One counter;
[0068] Step B3: Decrease the values of all located counters. .
[0069] Count(item): Where item represents a data packet element, this operation is used to query the data stream cache usage. This operation is completed in the following 3 steps:
[0070] Step C1: Obtain the 5-tuple information of the data packet from the IP header and TCP header;
[0071] Step C2: Use A hash function maps the quintuple information to... In the row One counter;
[0072] Step C3: Return The minimum value among the counters.
[0073] Figure 2 This demonstrates the workflow of a wireless access point (AP) after receiving a data packet. Upon receiving a data packet, the packet processor performs the following operations:
[0074] DynamicThreshold(): This operation calculates a dynamic threshold based on the data stream buffer occupancy in the Count-Min Sketch and the given target queue length parameter. It then obtains the available buffer size for each data stream and feeds it back to the corresponding sender via AP-ACK to adjust the data stream transmission rate, thereby ensuring that data streams enter the AP buffer queue fairly. The algorithm pseudocode is as follows: Figure 3 As shown, the function GetNBytes() obtains the total buffer size on the AP. When there is no buffer on the AP, a larger threshold is set to encourage the sender to send data quickly. When there is a buffer, a smaller threshold is set to avoid data queuing on the AP, which would increase latency. This operation is completed in the following 5 steps:
[0075] Step D1: Obtain the total cache size on the AP. If the cache size is 0, proceed to step D2; otherwise, proceed to step D3.
[0076] Step D2: Set the dynamic threshold to 32 Target queue length;
[0077] Step D3: Calculate the total target queue length based on the number of data streams. If the total target queue length is greater than the cache length, proceed to step 4; otherwise, proceed to step 5.
[0078] Step D4: Set the dynamic threshold to 0.5 (The difference between the total target queue length and the cache length);
[0079] Step D5: Set the dynamic threshold to 0.
[0080] Enqueue(item): where item represents a data packet element. This operation is used to update relevant parameters after the data packet is stored in the AP cache. This operation is completed in the following 4 steps:
[0081] Step E1: Obtain the data stream cache usage corresponding to the data packet in the Count-Min Sketch storage structure, compare the value with the dynamic threshold. If the data stream cache usage is less than the dynamic threshold, proceed to step E3; otherwise, proceed to step E2.
[0082] Step E2: If the data stream buffer occupancy is greater than or equal to the dynamic threshold, call the AP-ACK generator to send an AP-ACK with a receive window of 0 to the sender, and then proceed to step E3.
[0083] Step E3: Update the corresponding data stream cache usage in Count-Min Sketch based on the packet quintuple and load information, and update the dynamic threshold.
[0084] Step E4: If step E2 was not performed, call the AP-ACK generator to generate AP-ACK.
[0085] Dequeue(item): where item represents a data packet element. This operation updates relevant parameters after a data packet is dequeued. This operation is completed in the following two steps:
[0086] Step F1: Update the corresponding data stream cache usage in the Count-Min Sketch based on the packet quintuple and load information, and update the dynamic threshold;
[0087] Step F2: If the data stream corresponding to the data packet is marked as a zero-window data stream, and the available buffer size of the data stream is greater than 0 after updating the parameters in step F1, call the AP-ACK generator to generate a new AP-ACK.
[0088] After collecting and calculating the relevant information and required parameters of the data packet, the AP-ACK generator is used to generate the AP-ACK, and the following operations are performed:
[0089] GenerateApAck(item): where item represents a data packet element. This operation generates the corresponding AP-ACK based on the data packet, feeding back wired link congestion status information and the available buffer size for the data stream to the sender. This operation is completed in the following three steps:
[0090] Step G1: Obtain information such as the 5-tuple, sequence number, and timestamp based on the IP header and TCP header of the data packet;
[0091] Step G2: Calculate the available buffer size for the data stream based on the data stream buffer usage and dynamic threshold in the Count-Min Sketch, and use it as the receiving window value;
[0092] Step G3: Generate TCP header and IP header from the information obtained in steps G1 and G2, generate AP-ACK and send it. If the calculated receive window value is 0, mark the data stream as a zero window data stream.
[0093] The acknowledgment packet processor at the sending end performs different operations on the AP-ACK acknowledgment packet from the AP and the normal ACK from the receiving end. The following section combines these operations with... Figure 4The workflow of the acknowledgment packet processor is described in detail. Upon receiving an acknowledgment packet, the acknowledgment packet processor performs the following operations:
[0094] Step H1: Distinguish between AP-ACK and receiver ACK based on TCP header flags. If it is receiver ACK, proceed to step 2; if it is AP-ACK, proceed to step 3.
[0095] Step H2: Calculate the overall link round-trip time and retransmission timeout (RTO) based on the TCP header information, update the window size, and confirm that the data is received correctly;
[0096] Step H3: Update the window size based on the TCP header load information, calculate the wired link round-trip time (RTT) and data transmission rate, perform congestion control operations, and adjust the congestion window and transmission rate.
[0097] Furthermore, to distinguish the location of packet loss for accurate congestion control, after receiving AP-ACK, the sending end marks the corresponding AP receiving status in the sending buffer. After packet loss or timeout, the location of packet loss is determined by the marking. If it occurs in the wired link, congestion is handled in the traditional way to reduce the congestion window; otherwise, the congestion window is not modified.
[0098] When data packets are transmitted over a network, they go through the following steps:
[0099] Step X1: The sending end generates a data packet;
[0100] Step X2: When the data packet arrives at the wireless access point (AP), the packet processor calls the Count-Min Sketch storage structure to update the data stream buffer occupancy and the dynamic threshold. It then uses the data stream buffer occupancy and dynamic threshold recorded in the Count-Min Sketch to calculate the receive window value and calls the AP-ACK generator at the appropriate time. The AP-ACK generator generates an AP-ACK based on the data packet information and the receive window value and sends it to the sending end, providing feedback on the congestion status of the wired link and the available buffer size for the data stream on the AP. Subsequently, the data packet is dequeued from the buffer, leaves the AP, and is transmitted to the wireless receiver. The packet processor calls the Count-Min Sketch storage structure to update the data stream buffer occupancy and the dynamic threshold, calculates the new receive window value using the data stream buffer occupancy and dynamic threshold recorded in the Count-Min Sketch, and calls the AP-ACK generator at the appropriate time.
[0101] The dynamic threshold is calculated based on the unused buffer space of the AP and the cache usage of the data streams stored in the Count-Min Sketch. It is used to control the length of the data stream queue to reduce latency and ensure fair bandwidth sharing among all data streams. Data packet information includes source IP address, destination IP address, source port number, destination port number, protocol number, packet sequence number, and timestamp. This data is used to generate the TCP header and IP header for AP-ACK transmission.
[0102] The receive window value represents the available buffer size for this data stream on the AP, which is used by the sender to adjust the transmission rate.
[0103] Step X3: After receiving the data packet, the wireless receiver returns an ACK packet to the sender;
[0104] Step X4: When the sending end receives the AP-ACK with wired link status information, it performs congestion control based on the wired link delay information and data packet transmission rate fed back by the AP-ACK; the wired link delay information is calculated and obtained from the AP-ACK timestamp information.
[0105] Step X5: When the sending end receives an ACK from the receiving end, it performs a reliable confirmation based on the information fed back by the ACK.
[0106] In step X2, when the AP receives a data packet, the Count-Min Sketch storage structure needs to perform the following steps:
[0107] Step Y1: After the data packet is stored in the queue, obtain the 5-tuple information and the data packet payload size. Increase the current data stream cache usage in Count-Min Sketch. ;
[0108] Step Y2: After the data packet is dequeued and transmitted to the wireless receiver, obtain the 5-tuple information and the data packet payload size, and reduce the current data stream buffer usage in the Count-Min Sketch. .
[0109] In steps Y1 and Y2, the 5-tuple information consists of the source IP address, destination IP address, source port number, destination port number, and protocol number. The source IP address, destination IP address, and protocol number are obtained from the IP header of the data packet, while the source port number and destination port number are obtained from the TCP header of the data packet.
[0110] In step X2, when a data packet arrives at or leaves the AP, the packet processor calls the Count-Min Sketch storage structure to update the data stream buffer occupancy, updates the dynamic threshold, and calls the AP-ACK generator at appropriate times to feed back wired link congestion information and the available buffer size of the data stream on the AP to the sender. The following steps need to be performed:
[0111] Step Z1: Enqueue the data packet. Obtain the data stream buffer usage corresponding to the data packet from the Count-Min Sketch storage structure. Compare the data stream buffer usage with the dynamic threshold. If the data stream buffer usage is greater than or equal to the dynamic threshold, call the AP-ACK generator to send an AP-ACK with a receive window of 0 to the sender, informing the sender that the data stream buffer on the AP is full and slowing down the sending rate.
[0112] Step Z2: Call the Count-Min Sketch storage structure to update the data stream cache usage and update the dynamic threshold;
[0113] Step Z3: If the AP-ACK generator was not called in step Z1, then the AP-ACK generator is called to generate AP-ACK feedback on wired link congestion information;
[0114] Step Z4: After the data packet is dequeued from the AP buffer, the Count-Min Sketch storage structure is called to update the data stream buffer occupancy and the dynamic threshold. The available buffer size of the data stream is calculated based on the data stream buffer occupancy and the dynamic threshold. If the corresponding data stream is marked as a zero-window data stream and the available buffer size of the data stream is greater than 0, the AP-ACK generator is called to generate an AP-ACK and send it to the sender. The available buffer size of the data stream on the AP is fed back, and the sending rate of the sender is adjusted.
[0115] The AP-ACK generator generates an AP-ACK and sends it to the sender, providing feedback on the congestion status of the wired link and the available buffer size for the corresponding data stream on the AP. This requires the following steps:
[0116] Step S1: Obtain the parameters required to generate the acknowledgment packet based on the data packet header information;
[0117] Step S2: Subtract the data stream buffer usage from the dynamic threshold to obtain the receive window value. If the receive window value is 0, mark the data stream as a zero window data stream.
[0118] Step S3: Generate IP header and TCP header based on the parameters obtained in steps S1 and S2, encapsulate them with blank data packets to generate AP-ACK and send them to the sender.
[0119] Furthermore, the parameters required for packet confirmation in step S1 include the source IP address, destination IP address, source port number, destination port number, protocol number, packet sequence number, and timestamp. The source IP address, destination IP address, and protocol number are obtained from the IP header of the data packet, while the source port number, destination port number, packet sequence number, and timestamp are obtained from the TCP header of the data packet.
[0120] In step S3, the source IP address, destination IP address, and protocol number information are used to generate the IP header required for AP-ACK. The source port number, destination port number, data packet sequence number, timestamp, and receive window value information are used to generate the TCP header required for AP-ACK. The header is then encapsulated with a blank data packet to form an AP-ACK acknowledgment and transmitted to the sender.
[0121] The acknowledgment packet processor processes AP-ACK packets from the AP and ACK packets from the receiver differently, requiring the following steps:
[0122] Step T1: Determine the source of the received acknowledgment packet based on its TCP header information. If it comes from the wireless access point (AP), proceed to step T2; if it comes from the receiving end, proceed to step T3.
[0123] Step T2: For AP-ACK from AP, mark the data that has been acknowledged to be received by AP in the transmit buffer, calculate the round-trip time (RTT) and data transmission rate of the wired link based on its packet header load information, perform congestion control, and use the receive window value information in AP-ACK to control data transmission.
[0124] Step T3: For the ACK from the receiver, if it is a normal ACK, confirm the successful reception of the data packet based on its header information and move the receiver's sliding window. If it is an ACK reporting data packet loss, determine the location of the lost data packet by checking the flags in the sending buffer. If the packet loss is due to a wired link, it indicates congestion. In this case, reduce the congestion window and slow down the sending speed to alleviate the congestion, following the traditional approach. If the packet loss is due to a wireless link, there is no congestion in the link. Only retransmit the data packet to ensure fast data transmission.
[0125] The listening mechanism was verified and its performance evaluated on the ns-3 simulation platform. The simulation experiment used... Figure 5The topology is shown. In the middle is the wireless access point (AP), to the left are wired link transmitting hosts S1 and S2, and to the right are wireless link receiving hosts R1 and R2. In the performance test, the test data stream (S1 to AP to R1) has a wired link rate of 100 Mbps, and the background stream (S2 to AP to R2) has a wired link rate of 50 Mbps. The propagation delay for both links is 25 ms, and both streams continuously transmit packets. The wireless links use the 802.11ax protocol. In the fairness test, both data streams have a wired link rate of 50 Mbps, a propagation delay of 25 ms, and both streams continuously transmit packets. The wireless links use the 802.11ax protocol. In the test stream simulating real network traffic, the test stream rate is 100 Mbps, and the packet transmission process follows a Poisson distribution.
[0126] To test the applicability of Diting in a wireless network environment, we selected various application scenarios to test Diting's throughput and fairness in a wireless network environment. Figure 6 In the diagram, (a), (b), and (c) show the transmission performance of the eavesdropping mechanism under varying distances between the mobile host and the access point. Figure 6 (a) in the table represents the comparison results under the condition that only the test stream exists. Figure 6 (b) shows the comparison results with background flow present. Figure 6 (c) shows the test flow comparison results simulating real network traffic. The farther the wireless receiving host is from the AP, the weaker the wireless signal emitted by the AP, and the lower the wireless link transmission speed. Compared with traditional congestion control algorithms, the BBR algorithm and Cubic algorithm using the listening mechanism have achieved better throughput. Especially when the wireless signal is weak, the congestion algorithm using the listening mechanism performs far better than the traditional mechanism. Figure 6 In the diagram, (d), (e), and (f) demonstrate the good performance achieved by the Cubic algorithm using the sniffing mechanism in wireless networks with different wireless link packet loss rates. Figure 6 (d) in the table represents the comparison results under the condition that only the test stream exists. Figure 6 (e) in the figure represents the comparison results with background flow present. Figure 6 (f) in the diagram represents the test flow comparison results simulating real network traffic. It can be seen that compared to the traditional Cubic algorithm, the listening mechanism utilizes available bandwidth more effectively by accurately judging congestion packet loss and random packet loss. Figure 6 (g) and (h) in the text show that the listening mechanism enables data streams to share the same data link more fairly. Figure 6 The upper graph (g) shows the data throughput change using the BBR algorithm, and the lower graph shows the data throughput change using the listening mechanism in the BBR algorithm. Figure 6The upper graph (h) shows the data flow throughput change using the Cubic algorithm, and the lower graph shows the data flow throughput change using the Cubic algorithm with the listening mechanism. After the background flow is sent, the test flow can quickly utilize the available bandwidth and converge to a suitable rate.
[0127] The above description, which discloses specific embodiments and drawings of the present invention for illustrative purposes only, aims to help understand the content of the invention and implement it accordingly. However, those skilled in the art should understand that various substitutions, variations, and modifications are possible without departing from the spirit and scope of the present invention and the appended claims. The present invention should not be limited to the content disclosed in the embodiments and drawings of this specification; the scope of protection of the present invention is defined by the claims.
Claims
1. An accurate congestion feedback mechanism for wireless local area networks, characterized in that, Includes the following steps: Step 1: The sending end generates data packets; Step 2: When the data packet arrives at the wireless access point (AP), the data stream buffer occupancy is updated, the dynamic threshold is updated, the receive window value is calculated using the data stream buffer occupancy and the dynamic threshold, and then an AP-ACK is generated based on the data packet information and the receive window value and sent to the sending end. The congestion status information of the wired link and the available buffer size of the data stream on the wireless access point (AP) are fed back. Subsequently, the data packet is dequeued from the buffer, leaves the wireless access point (AP) and is transmitted to the wireless receiving end. The data stream buffer occupancy is updated, the dynamic threshold is updated, a new receive window value is calculated, and an AP-ACK is generated and sent to the sending end. Step 3: After receiving the data packet, the wireless receiver returns an ACK packet to the sender; Step 4: When the sending end receives the AP-ACK containing wired link status information, it performs congestion control based on the wired link delay information and data packet transmission rate fed back by the AP-ACK; the wired link delay information is calculated and obtained from the AP-ACK timestamp information. Step 5: When the sending end receives an ACK from the receiving end, it confirms the information provided in the ACK. Step 5 includes the following steps: For an ACK from the receiving end, if it is a normal ACK, the data packet is confirmed to have been successfully received based on its header information, and the receiving end sliding window is moved. If it is an ACK reporting a lost data packet, the location of the lost data packet is determined by the marker in the sending buffer. If the packet loss is due to a wired link, it indicates that congestion has occurred. The congestion window is reduced, and the sending speed is slowed down to alleviate the congestion. If the packet loss is due to a wireless link, there is no congestion in the link. Only the data packet is retransmitted to ensure fast data transmission.
2. The accurate congestion feedback mechanism for wireless local area networks according to claim 1, characterized in that, Step 2, updating the data stream cache usage, includes the following steps: Step A1: After the data packet is stored in the queue, obtain the 5-tuple information and the data packet payload size. Increase the current data stream cache usage. ; Step A2: After the data packet is dequeued and transmitted to the wireless receiver, the 5-tuple information and data packet payload size are obtained, and the current data stream buffer usage is reduced. .
3. The accurate congestion feedback mechanism for wireless local area networks according to claim 1, characterized in that, Step 2, updating the dynamic threshold, includes the following steps: Obtain the total buffer size on the wireless access point (AP) and determine if the total buffer size on the AP is 0: If the cache is 0, set the dynamic threshold to 32. Target queue length; Otherwise, calculate the total target queue length based on the number of data streams: If the total target queue length is greater than the cache length, set the dynamic threshold to 0.
5. (The difference between the total target queue length and the cache length); Otherwise, set the dynamic threshold to 0.
4. The accurate congestion feedback mechanism for wireless local area networks according to claim 1, characterized in that, In step 2, AP-ACK is generated based on the data packet information and the receive window value and sent to the sending end to provide feedback on the partial congestion status of the wired link. This includes the following steps: Step B1: Enqueue the data packet, obtain the data stream buffer usage corresponding to the data packet, compare the data stream buffer usage with the dynamic threshold, if the data stream buffer usage is greater than or equal to the dynamic threshold, send an AP-ACK with a receive window of 0 to the sender to inform the sender that the data stream buffer on the AP is full and slow down the sending rate. Step B2: Update the data stream cache usage and update the dynamic threshold; Step B3: If the AP-ACK generator was not invoked in step B1, then the AP-ACK generator is invoked to generate AP-ACK feedback on wired link congestion information; Step B4: After the data packet is dequeued from the AP buffer, update the data stream buffer occupancy and the dynamic threshold. Calculate the available buffer size of the data stream based on the data stream buffer occupancy and the dynamic threshold. If the corresponding data stream is marked as a zero-window data stream and the available buffer size of the data stream is greater than 0, call the AP-ACK generator to generate an AP-ACK and send it to the sender to indicate that the data stream has an available buffer on the AP. Adjust the sending rate of the sender.
5. The accurate congestion feedback mechanism for wireless local area networks according to claim 4, characterized in that, The AP-ACK generator generates an AP-ACK and sends it to the sender, which includes the following steps: Step B3.1: Obtain the parameters required to generate the acknowledgment packet based on the data packet header information; Step B3.2: Subtract the data stream buffer usage from the dynamic threshold to obtain the receive window value. If the receive window value is 0, mark the data stream as a zero-window data stream. Step B3.3: Generate AP-ACK based on the parameters obtained in steps B3.1 and B3.2 and send it to the sender.
6. The accurate congestion feedback mechanism for wireless local area networks according to claim 5, characterized in that, In step B3.3, the source IP address, destination IP address, and protocol number information are used to generate the IP header required for AP-ACK, and the source port number, destination port number, data packet sequence number, timestamp, and receive window value information are used to generate the TCP header required for AP-ACK, so as to transmit the AP-ACK acknowledgment to the sending end.
7. An accurate congestion feedback device for wireless local area networks, characterized in that, This includes a packet processor, a Count-Min Sketch storage structure, an AP-ACK generator, and an acknowledgment packet processor; The packet processor is used to update the required parameters on the wireless access point (AP) and call the AP-ACK generator when packets are enqueued or inbounded. The Count-Min Sketch storage structure is used to record the amount of data stream cached on the wireless access point (AP). The AP-ACK generator is used to send an AP-ACK back to the sender after receiving a data packet, informing it of the wired link status information and the available buffer size of the wireless access point (AP), and guiding the sender's acknowledgment packet processor to perform accurate congestion control and control the transmission speed. The acknowledgment packet processor is located at the sending end, and uses AP-ACK from the wireless access point (AP) for congestion control processing and ACK from the receiving end for transmission acknowledgment.
8. The accurate congestion feedback mechanism for wireless local area networks according to claim 7, characterized in that, The Count-Min Sketch storage structure consists of The array is composed of two-dimensional arrays, where each element serves as a counter; each row of the array corresponds to a hash function, i.e., there are a total of [number] hash functions. There are 5 hash functions, and the hash functions are independent of each other; the data stream 5-tuple information is mapped to different positions in each row through the hash function for counting and storage, and the cache usage count of each data stream is maintained.