Buffer tuning method for ad hoc networks
By dynamically adjusting the buffer size in 802.11 wireless ad hoc networks, the problem of buffer calculation not adapting to traffic changes is solved, achieving high link utilization and low latency.
Patent Information
- Application Number
- CN202211494453.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-11-25
- Publication Date
- 2025-10-03
- Estimated Expiration
- 2042-11-25
AI Technical Summary
In existing 802.11 wireless ad hoc networks, the buffer size calculation method fails to adapt to data traffic changes in real time, resulting in increased queuing delay and poor convergence, affecting throughput.
The buffer size is calculated by setting the target queuing delay, burst excess parameters, maximum and minimum buffer lengths, and service time, and the buffer size is adjusted during idle time to achieve dynamic tuning.
Maintain good convergence when data traffic changes dramatically, achieve high link utilization and minimize queuing delay.
Smart Images

Figure CN115865829B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of communication technology, and in particular to a buffer zone tuning method for an ad hoc network. Background Art
[0002] 802.11 technology based on CSMA / CA is becoming increasingly common in wireless ad hoc networks. To support rich multimedia applications such as high-definition video intercom and video conferencing, bandwidth requirements for ad hoc networks are increasing. The commonly used 802.11n standard supports wireless rates up to 150 Mbps, but this doesn't guarantee the same throughput at higher layers. The MAC (Multiple Access Channel) layer overhead alone can significantly impact overall throughput. Furthermore, simply improving the efficiency of the physical and MAC layers alone doesn't guarantee high system-level throughput; the efficiency of the interaction between the MAC and physical layers also needs to be considered.
[0003] In order to ensure the rate, a buffer is generally set. In related technologies, the general practice is to multiply the bandwidth of the link by the average delay (round-trip time) of the flow on this link, that is, the bandwidth-delay product (BDP) as a reference coefficient for the buffer size.
[0004] However, these methods fail to account for the characteristics of 802.11 wireless channels: 1) the average network service rate (bandwidth) depends on the number of network nodes and their corresponding traffic volume; 2) even with a fixed data rate, the timing of node transmissions varies randomly due to contention. These two factors prevent the calculated buffer size from adapting to the current situation in real time, leading to increased queuing delays and poor convergence when data rates fluctuate dramatically. Summary of the Invention
[0005] The present invention is to solve the above technical problems, and the purpose of the present invention is to provide a buffer tuning method for an ad hoc network.
[0006] To achieve the above object, the embodiment of the present invention proposes a buffer tuning method for an ad hoc network, comprising the following steps: setting the target queuing delay T', the burst excess parameter c, the maximum buffer length Q max and the minimum buffer length Q min ; Record the time t when each data packet arrives at the MAC layer network interface queue s The time t when the node receiving the data packet returns the ACK (Acknowledge Character) message e , according to t s and t e Calculate the average service time T for each data packetserv According to the target queuing delay T' and the average service time T serv Calculate the BDP corresponding to the data packet; according to the burst excess parameter c, the maximum length of the buffer Q max and the BDP to calculate the current first buffer size Q1; set the buffer size increase step a' and decrease step b'; measure the buffer idle time t with a first preset time t as the time interval i According to the first preset time t, the buffer idle time t i , the increase step a' and the decrease step b' calculate the update threshold Q of the buffer size new ; Update threshold Q according to the buffer size new , the maximum length of the buffer Q max and the minimum buffer length Q min Obtain a current second buffer size Q2; and obtain a current buffer size Q according to the current first buffer size Q1 and the current second buffer size Q2.
[0007] The buffer optimization method for an ad hoc network proposed in the present invention may also have the following additional technical features:
[0008] According to one embodiment of the present invention, the average service time T of each data packet is calculated according to the following formula: serv :T serv =(1-W)T serv +W(t e -t s ); where T serv is the average service time, W is the smoothing weight, t s is the time when the data packet arrives at the MAC layer network interface queue, t e The time it takes for the node that receives the data packet to return an ACK message.
[0009] According to one embodiment of the present invention, the current first buffer size Q1 is calculated specifically according to the following formula: Q1=min(BDP+c, Q max ); Wherein, Q1 is the current first buffer size, T serv is the average service time, c is the burst excess parameter, Q max is the maximum length of the buffer, and T' is the target queuing delay.
[0010] According to one embodiment of the present invention, the buffer size update threshold Q is calculated according to the following formula: new :Q new =q+a't i -b'(tti ); where Q new is the update threshold of the buffer size, q is the buffer size to be updated, a' is the increase step of the buffer size, b' is the decrease step of the buffer size, t i is the buffer idle time, and t is the first preset time.
[0011] According to one embodiment of the present invention, the current second buffer size Q2 is obtained according to the following formula: Wherein, Q2 is the current second buffer size, Q new is the update threshold of the buffer size, Q max is the maximum length of the buffer, Q min The minimum length of the buffer.
[0012] According to one embodiment of the present invention, the current buffer size Q is obtained according to the following formula: Q=min(Q1, Q2); wherein Q is the current buffer size, Q1 is the current first buffer size, and Q2 is the current second buffer size.
[0013] Beneficial effects of the present invention:
[0014] The present invention calculates the buffer size by calculating the BDP corresponding to the data packet based on the average service time of the data packet, and monitors the buffer idle time to perform feedback control on the buffer size. It has good convergence even when the data traffic changes drastically, and can minimize queuing delay while achieving high link utilization. BRIEF DESCRIPTION OF THE DRAWINGS
[0015] Figure 1 The present invention is a flowchart of a buffer tuning method for an ad hoc network according to an embodiment of the present invention. DETAILED DESCRIPTION
[0016] The following will clearly and completely describe the technical solutions in the embodiments of the present invention in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of the present invention.
[0017] Figure 1 FIG. 1 is a flow chart of a buffer tuning method for an ad hoc network according to an embodiment of the present invention. Figure 1 As shown, the method includes the following steps:
[0018] S1, set the target queuing delay T', burst excess parameter c, and maximum buffer length Q max and the minimum buffer length Qmin .
[0019] Specifically, the node receiving the data packet can calculate the target queuing delay T' based on the RTT (Round-Trip Time) of the data packet, or simply set it to a fixed value of 200ms (approximately the maximum value of RTT). Set a reasonable burst excess data packet c. According to actual experience, c = 200 can meet most network conditions. Set the maximum buffer length Q max (e.g. 400) and the minimum buffer length Q min , this parameter can be set according to actual conditions.
[0020] S2, records the time t when each data packet arrives at the MAC layer network interface queue s and the time t when the node receiving the data packet returns the ACK message e , according to t s and t e Calculate the average service time T for each data packet serv .
[0021] S3, based on the target queuing delay T' and the average service time T serv Calculate the BDP corresponding to the data packet.
[0022] Specifically, the node calculates the service rate by the data packet service time of the node, and processes each data packet arriving from the upper layer as follows: record the time t when the data packet arrives at the MAC layer network interface queue s Wait for the ACK message returned by the other end of the data packet to indicate that the data packet has been received correctly, and record the service end time (the time when the node receiving the data packet returns the ACK message t e ).
[0023] Use exponential averaging to calculate the average packet service time T serv , the average service time T of each data packet is calculated according to the following formula serv :
[0024] T serv =(1-W)T serv +W(t e -t s );
[0025] Among them, T serv is the average service time, W is the smoothing weight, t s is the time when the data packet arrives at the MAC layer network interface queue, t e The time it takes for the node that receives the data packet to return an ACK message.
[0026] The smoothing weight W is set according to the actual situation. W can be 0.001, 1 / T serv Expressed as the site service rate, T' / T serv is the corresponding BDP.
[0027] S4, based on the burst excess parameter c and the maximum buffer length Q max The current first buffer size Q1 is calculated using BDP.
[0028] Furthermore, according to an embodiment of the present invention, the current first buffer size Q1 is calculated specifically according to the following formula:
[0029] Q1=min(BDP+c,Q max );
[0030]
[0031] Among them, Q1 is the current first buffer size, T serv is the average service time, c is the burst excess parameter, Q max is the maximum length of the buffer, and T' is the target queuing delay.
[0032] The calculation results ensure that the current first buffer size is always positively correlated with the BDP. When the service rate decreases, the buffer size decreases, and when the service rate increases, the buffer size increases, thus ensuring a stable queuing time T'. Furthermore, to combat the impact of short bursts of TCP (Transmission Control Protocol) data flows, a burst excess parameter c is added.
[0033] S5, setting the increase step a' and the decrease step b' of the buffer size.
[0034] Specifically, a' and b' can be set according to actual conditions, for example, a'=10, b'=1.
[0035] S6, measuring the buffer idle time t with the first preset time t as the time interval i .
[0036] Specifically, the buffer idle time t is measured with a time interval of t seconds, where t is set in advance according to the actual situation. i , peak time is tt i .
[0037] S7, according to the first preset time t, the buffer idle time t i , increase step size a' and reduce step size b' to calculate the update threshold Q of the buffer size new .
[0038] Further, according to one embodiment of the present invention, the update threshold Q of the buffer size is calculated specifically according to the following formula: new :
[0039] Q new =q+a't i -b'(tt i );
[0040] Among them, Q new is the update threshold of the buffer size, q is the size of the buffer to be updated (the size of the current buffer before the update), a' is the step size of the buffer size increase, b' is the step size of the buffer size decrease, t i is the buffer idle time, and t is the first preset time.
[0041] According to the threshold update rule, when a't i =b't(-t i ), Q converges, and the link utilization is (tt i ) / t=1 / (1+b' / a'), the smaller b' / a' is, the greater the link utilization is.
[0042] S8, update threshold Q according to buffer size new , maximum buffer length Q max and the minimum buffer length Q min Get the current second buffer size Q2.
[0043] According to one embodiment of the present invention, the current second buffer size Q2 is obtained according to the following formula:
[0044]
[0045] Among them, Q2 is the current second buffer size, Q new is the update threshold of the buffer size, Q max is the maximum length of the buffer, Q min The minimum length of the buffer.
[0046] S9 , obtaining a current buffer size according to the current first buffer size Q1 and the current second buffer size Q2 , and updating the buffer size according to the current buffer size Q.
[0047] According to one embodiment of the present invention, the current buffer size Q is obtained according to the following formula:
[0048] Q = min(Q1, Q2);
[0049] Wherein, Q is the current buffer size, Q1 is the current first buffer size, and Q2 is the current second buffer size.
[0050] Specifically, based on the calculation results of steps S4 and S8, step 2 obtains the current buffer size and updates the buffer size based on the current buffer size Q. When channel conditions change, step S2 measures the bandwidth and adjusts the buffer size. The convergence time depends on W. After step S2 converges, the result stabilizes near a certain value. Step S6 is then used to further reduce multiplexing redundancy and obtain the optimal buffer size configuration.
[0051] In summary, according to the buffer tuning method of the self-organizing network according to the embodiment of the present invention, the buffer size is calculated based on the BDP corresponding to the data packet based on the average service time of the data packet, and the buffer idle time is monitored to feedback control the buffer size. It has good convergence even when the data traffic changes drastically, and can minimize queuing delay while achieving high link utilization.
[0052] In the description of this specification, the reference terms "one embodiment", "some embodiments", "example", "specific example", or "some examples" mean that the specific features, structures, materials or characteristics described in conjunction with the embodiment or example are included in at least one embodiment or example of the present invention. In this specification, the schematic representations of the above terms do not necessarily refer to the same embodiment or example. Moreover, the specific features, structures, materials or characteristics described can be combined in any one or more embodiments or examples in a suitable manner. In addition, those skilled in the art can combine and combine different embodiments or examples described in this specification and features of different embodiments or examples without contradiction.
[0053] 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 the technical features being referred to. Thus, a feature defined as "first" or "second" may explicitly or implicitly include at least one such feature. In the description of the present invention, "plurality" means at least two, such as two, three, etc., unless otherwise specifically defined.
[0054] Any process or method description in a flowchart or otherwise described herein may be understood to represent a module, segment or portion of code comprising one or more executable instructions for implementing the steps of a custom logical function or process, and the scope of the preferred embodiments of the present invention includes alternative implementations in which functions may be performed out of the order shown or discussed, including performing functions in a substantially simultaneous manner or in the reverse order depending on the functions involved, which should be understood by those skilled in the art to which the embodiments of the present invention pertain.
[0055] The logic and / or steps represented in the flowcharts or otherwise described herein, for example, can be considered as a sequenced list of executable instructions for implementing the logical functions, and can be embodied in any computer-readable medium for use by, or in conjunction with, an instruction execution system, apparatus, or device (e.g., a computer-based system, a system including a processor, or other system that can fetch and execute instructions from an instruction execution system, apparatus, or device). For purposes of this specification, a "computer-readable medium" can be any device that can contain, store, communicate, propagate, or transport a program for use by, or in conjunction with, an instruction execution system, apparatus, or device. More specific examples (a non-exhaustive list) of computer-readable media include the following: an electrical connection with one or more wires (electronic devices), a portable computer disk cartridge (magnetic device), random access memory (RAM), read-only memory (ROM), erasable and programmable read-only memory (EPROM or flash memory), fiber optic devices, and a portable compact disc read-only memory (CDROM). Furthermore, the computer-readable medium may even be paper or other suitable medium on which the program is printed, since the program may be obtained electronically, for example, by optically scanning the paper or other medium and then editing, interpreting or processing it in another suitable manner if necessary, and then storing it in a computer memory.
[0056] It should be understood that each part of the present invention can be implemented by hardware, software, firmware or a combination thereof. In the above embodiments, multiple steps or methods can be implemented by software or firmware stored in a memory and executed by a suitable instruction execution system.
[0057] Those skilled in the art will understand that all or part of the steps in the method of the above embodiment can be completed by instructing related hardware through a program, and the program can be stored in a computer-readable storage medium. When the program is executed, it includes one or a combination of the steps of the method embodiment.
[0058] In addition, the functional units in the various embodiments of the present invention may be integrated into a single processing module, or each unit may exist physically separately, or two or more units may be integrated into a single module. The aforementioned integrated modules may be implemented in the form of hardware or in the form of software functional modules. If the integrated modules are implemented in the form of software functional modules and sold or used as independent products, they may also be stored in a computer-readable storage medium.
[0059] The storage medium mentioned above may be a read-only memory, a magnetic disk, or an optical disk, etc. Although the embodiments of the present invention have been shown and described above, it is understood that the above embodiments are exemplary and are not to be construed as limiting the present invention. Persons skilled in the art may make changes, modifications, substitutions, and variations to the above embodiments within the scope of the present invention.
Claims
1. A buffer tuning method for an ad hoc network, characterized in that: The following steps are involved: Set the target queuing delay T', burst excess parameter c, and maximum buffer length Q max and the minimum buffer length Q min , c = 200; Record the time t when each data packet arrives at the MAC layer network interface queue s and the time t when the node receiving the data packet returns the ACK message e , according to t s and t e Calculate the average service time T for each data packet serv ; According to the target queuing delay T' and the average service time T serv Calculate the BDP corresponding to the data packet; According to the burst excess parameter c, the maximum length of the buffer Q max Calculate the current first buffer size Q1 with the BDP; Set the buffer size increase step a' and decrease step b'; The buffer idle time t is measured at a first preset time interval t i ; According to the first preset time t, the buffer idle time t i , the increase step a' and the decrease step b' calculate the update threshold Q of the buffer size new ; Update threshold Q according to the buffer size new , the maximum length of the buffer Q max and the minimum buffer length Q min Get the current second buffer size Q2; A current buffer size Q is acquired according to the current first buffer size Q1 and the current second buffer size Q2, and the buffer size is updated according to the current buffer size Q.
2. The buffer tuning method for an ad hoc network according to claim 1, wherein: Specifically, the current first buffer size Q1 is calculated according to the following formula: Q1=min(BDP+c,Q max ); Wherein, Q1 is the current first buffer size, T serv is the average service time, c is the burst excess parameter, Q max is the maximum length of the buffer, and T' is the target queuing delay.
3. The buffer tuning method for an ad hoc network according to claim 1, wherein: Specifically, the buffer size update threshold Q is calculated according to the following formula: new : Q new =q+a't i -b'(t-t i ); Among them, Q new is the update threshold of the buffer size, q is the buffer size to be updated, a' is the increase step of the buffer size, b' is the decrease step of the buffer size, t i is the buffer idle time, and t is the first preset time.
4. The buffer tuning method for an ad hoc network according to claim 1, wherein: Specifically, the current second buffer size Q2 is obtained according to the following formula: Wherein, Q2 is the current second buffer size, Q new is the update threshold of the buffer size, Q max is the maximum length of the buffer, Q min The minimum length of the buffer.
5. The buffer tuning method for an ad hoc network according to claim 1, wherein: The current buffer size Q is obtained according to the following formula: Q = min(Q1, Q2); Wherein, Q is the current buffer size, Q1 is the current first buffer size, and Q2 is the current second buffer size.
Citation Information
Patent Citations
Processing method of VoIP (voice over internet protocol) de-jitter buffer
CN102739503A
Self-adaptive cache adjustment control method and device and self-adaptive player
CN103402136A