A data synchronization window optimization method for intelligent fusion terminals
By generating tail protection margins through Skorokhod-buffered control and extreme value theory EVT, combined with Whittle/AoI index scheduling, the window adjustment problem of data synchronization methods in dynamic networks is solved, achieving traffic self-balancing and stability and efficiency of data transmission.
Patent Information
- Application Number
- CN202511612165.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-11-06
- Publication Date
- 2026-02-06
- Estimated Expiration
- 2045-11-06
Smart Images

Figure CN121126509B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The application belongs to the technical field of data synchronization, and particularly relates to a data synchronization window optimization method for intelligent fusion terminals. BACKGROUND
[0002] In recent years, with the wide application of multi-access, multi-modal and multi-task intelligent fusion terminals in communication, edge computing and Internet of Things environments, the data synchronization mechanism between terminals has become one of the key factors affecting the overall system performance. Existing data synchronization is usually controlled based on a fixed time window or a static allocation strategy. Such strategies mainly come from the time slice division method in traditional TCP congestion control, mobile terminal synchronization buffer and cloud synchronization service. The basic idea of such methods is to allocate a fixed sending window size and data packet length for each synchronization period under the assumption that the network bandwidth and delay are relatively stable, so as to ensure the throughput and transmission stability. However, when the communication environment of the terminal is highly dynamic, such as in the switching scenarios of cellular and wireless local area networks, parallel transmission scenarios of short-range communication and long-distance relay, the fixed window strategy is prone to cause two typical problems: first, when the bandwidth is temporarily improved, the window cannot be expanded in time, resulting in insufficient bandwidth utilization; second, when the link jitter intensifies or congestion bursts, the fixed window cannot be shrunk in time, causing queue overflow and high delay accumulation.
[0003] To solve the adaptive problem in dynamic networks, some existing technologies introduce a dynamic window adjustment mechanism based on feedback, such as periodically adjusting the window through bandwidth estimation and round-trip delay measurement in TCP BBR or QUIC protocol. However, these methods rely on long-time measurement averaging and cannot quickly respond to millisecond-level changes; at the same time, in the multi-flow concurrent scenario, window allocation often lacks global coordination, and competition or unfairness may occur between different flows. In addition, conventional synchronization optimization algorithms usually rely on weight allocation or historical data training models, such as using sliding average to predict bandwidth, using delay distribution to approximate retransmission probability, etc. These models perform well in long-time stable scenarios, but in multi-interface mixed communication and high-frequency burst flow, the prediction error is amplified, resulting in decreased synchronization efficiency. SUMMARY
[0004] The main purpose of the present application is to provide a data synchronization window optimization method for intelligent fusion terminals, which comprises:
[0005] Step one, state collection and Skorokhod-buffer control establishment: collect the sending queue state of the intelligent fusion terminal, process the enqueue and dequeue events through the Skorokhod-buffer control mechanism to manage the net backlog value, and generate a buffer safety window benchmark;
[0006] Step two, EVT tail control generates tail protection margin: the EVT processes the detection results of the interface, generates a tail protection margin to resist network jitter, and combines with the buffer safety window reference quantity to generate the data synchronization window initial value;
[0007] Step three, Whittle / AoI index scheduling window opportunity: generate an index pair consisting of information timeliness index and relaxation control index for each synchronization flow, sort the index pairs, and allocate window opportunities and sending interfaces for the synchronization flows;
[0008] Step four, execute and simple closed loop: execute data sending according to the data synchronization window initial value and the window opportunity, and update the state based on the feedback confirmation information for the next round of calculation of the buffer safety window reference quantity, the tail protection margin and the index pair.
[0009] Further, in step one, the specific implementation of the Skorokhod-buffer control mechanism is to set the enqueue counter, dequeue counter and reflection accumulator; the enqueue counter is incremented when the synchronization unit enters the sending queue, and the dequeue counter is incremented when the synchronization unit is submitted to the interface; calculate the net backlog value between the enqueue counter and the dequeue counter, when the net backlog value is higher than the sending queue capacity boundary, write the excess quantity into the reflection accumulator, and insert the gap unit in the subsequent; when the net backlog value is lower than the zero boundary, set it to zero and supplement the confirmation aggregation once.
[0010] Further, in step two, the specific implementation of generating the tail protection margin is to send a detection sequence consisting of a number of detection packets on each interface; collect the arrival times of the detection packets to form an extreme value set; sort the extreme value set, take one value in the middle of the set as the extreme value threshold, take the maximum value in the set as the upper bound of the extreme value, and take the difference between the upper bound of the extreme value and the extreme value threshold to obtain the tail protection margin.
[0011] Further, in step two, the specific way of generating the data synchronization window initial value by combining the buffer safety window reference quantity and the tail protection margin is to take the buffer safety window reference quantity as the lower limit of the number of fragments on each interface, and insert the gap unit equal to the tail protection margin for each fragment based on the lower limit.
[0012] Further, in step three, the generation rule of the information timeliness index is to read the latest confirmation sequence number and the current to-be-sent sequence number of the synchronization flow at the beginning of the data synchronization window, if the current to-be-sent sequence number is greater than the latest confirmation sequence number, then the information timeliness counter of the synchronization flow is incremented by one, and the current value of the information timeliness counter is taken as the information timeliness index.
[0013] Further, in step three, the generation rule of the relaxation control index is: checking the buffer safety window reference amount surplus flag, the interface direct flag and the retransmission budget flag in turn at the beginning of the data synchronization window, and adding one to the relaxation control counter if one of the flags is satisfied, and taking the current value of the relaxation control counter as the relaxation control index; wherein the buffer safety window reference amount surplus flag is set when the buffer safety window reference amount is greater than the demand of the fragmentation template, the interface direct flag is set when the tail protection margin of at least one interface is lower than the preset upper limit, and the retransmission budget flag is set when the number of unconfirmed fragments of the synchronization flow is not more than the preset upper limit.
[0014] Further, in step three, the specific rule of sorting according to the index pair is: sorting according to the information timeliness index from large to small, sorting according to the relaxation control index from large to small in the case of the same information timeliness index, and sorting according to the synchronization flow identification number from small to large in the case of the same information timeliness index and the same relaxation control index.
[0015] Further, in step three, the specific rule of assigning the sending interface for the synchronization flow is: selecting the interface with the smallest tail protection margin from the multiple interfaces available for the synchronization flow for sending.
[0016] Further, in step three, the fragmentation template and the confirmation aggregation template are issued at the same time of assigning the window opportunity; the fragmentation template is limited by the maximum transmission unit minus the header overhead, the confirmation aggregation template is limited by the fixed time before the end of the data synchronization window, and the gap unit is interleaved with the fragmentation to make the sending schedule consistent with the tail protection margin.
[0017] Further, in step four, the specific implementation of updating the state based on the feedback confirmation information is: updating the latest confirmation sequence number, the in-queue counter, the out-of-queue counter and the reflection accumulator.
[0018] The application has the following beneficial effects: compared with the traditional fixed window or the dynamic adjustment method based on average estimation, the application can generate a buffer safety window benchmark quantity according to the real-time in-queue and out-of-queue behaviors without relying on historical data and weight models, so that the data sending process has the ability of instant flow self-balancing. The mechanism effectively suppresses the instantaneous backlog growth caused by bandwidth burst, link switching or delay drift, and ensures that the sending queue can still maintain stable in-out rate matching under high load conditions. By introducing the tail protection margin calculation of the extreme value theory in the window formation stage, the application can still maintain the predictability of the synchronization process in the case of asymmetric network jitter and delay distribution. Even under extreme peak interference, the continuity and controllability of data transmission are still maintained. Unlike the traditional moving average or threshold constraint method, the application can actively identify and absorb link tail fluctuations, convert extreme delays into sending end blank rhythm, thereby significantly reducing the congestion risk on the receiving side. Through Whittle / AoI index scheduling, the application realizes the dynamic ordering and interface allocation of window opportunities of multiple synchronization streams, can establish a unified dimension standard between information timeliness and system relaxation, so that high timeliness flow obtains priority transmission opportunity, and low timeliness flow is effectively filled in the idle stage, forming a balanced state of optimal overall throughput and optimal delay. The whole synchronization process adopts a closed-loop feedback form, all updates come from real-time confirmation information, without complex prediction or training model, and has high engineering implementability and scalability. The application realizes the joint optimization of window size, tail protection and sending opportunity of the intelligent fusion terminal in the scene of multiple interfaces, multiple stream concurrency and high dynamic bandwidth, greatly improves the link utilization rate and reduces the packet loss rate caused by jitter, and while maintaining data integrity, significantly improves the adaptive stability and timeliness service quality of the system. BRIEF DESCRIPTION OF DRAWINGS
[0019] In order to more clearly illustrate the technical solutions in the embodiments of the present application or the prior art, the following will briefly introduce the drawings needed to be used in the embodiments or prior art description. Obviously, the drawings in the following description only constitute the embodiments of the present application, and for those skilled in the art, other drawings can also be obtained without creative labor on the basis of the provided drawings.
[0020] Figure 1 The method flowchart of the data synchronization window optimization method for the intelligent fusion terminal provided by the embodiments of the present application is shown in the following table:
[0021] Figure 2 The interleaving structure time table of the data synchronization window provided by the embodiments of the present application is shown in the following table:
[0022] Figure 3A schematic diagram of a generation principle of a probe packet arrival time distribution and a tail protection margin based on EVT extreme value theory is provided for an embodiment of the present application. DETAILED DESCRIPTION
[0023] The method of the present application is further described in detail below in combination with the accompanying drawings and embodiments of the present application.
[0024] Embodiment 1: A data synchronization window optimization method for an intelligent fusion terminal, the method comprising:
[0025] Step 1: State acquisition and Skorokhod-buffer control establishment: acquire the sending queue state of the intelligent fusion terminal, process the enqueuing and dequeuing events through a Skorokhod-buffer control mechanism to manage the net backlog value, and thus generate a buffer safety window reference quantity;
[0026] Step 2: EVT tail control to generate a tail protection margin: process the probe results of the interface through the extreme value theory EVT, generate a tail protection margin for resisting network jitter, and combine the buffer safety window reference quantity to generate a data synchronization window initial value;
[0027] Step 3: Whittle / AoI index scheduling window opportunity: generate an index pair consisting of an information timeliness index and a relaxation control index for each synchronization flow, sort the index pairs, and allocate window opportunities and sending interfaces for the synchronization flows;
[0028] Step 4: execution and simple closed loop: execute data sending according to the data synchronization window initial value and the window opportunity, and update the state based on the feedback acknowledgement information for use in the recalculation of the buffer safety window reference quantity, the tail protection margin and the index pair in the next round of loop.
[0029] The embodiment is directed to a smart converged terminal with cellular interface, wireless local area network interface and short-range communication interface. In the specific implementation process, for step 1, first, the minimum time granularity is fixed as 1 millisecond. The granularity matches the high-precision timing capability of the common operating system, and can process the enqueue events and dequeue events item by item without introducing high timing overhead. The sending queue is managed in units of synchronization units. The size of a synchronization unit is not more than the maximum transmission unit minus the header overhead, and 1200 bytes are taken as a fixed value in the embodiment, which ensures that it can be submitted at a time across mainstream interfaces. The sending queue capacity bound is 256 synchronization units. The value can be set at one time during deployment, and is not adaptively adjusted at runtime to ensure that the implementation is verifiable and the behavior is predictable. The zero bound is 0. The zero bound is used to determine the under-bound situation to ensure that the net backlog value is not disturbed by negative numbers. The enqueue counter, the dequeue counter and the reflection accumulator are cleared at the beginning of each data synchronization window and are used continuously until the end of the data synchronization window; they are cleared again when entering the next cycle after the end of the data synchronization window. The advantage of this is that the implementation does not depend on historical data, and the calculation of each cycle is independent, which is convenient for verification and debugging. The gap unit is defined as a placeholder marker that prohibits new synchronization units from entering the sending queue at a certain minimum time granularity position. The gap unit does not consume bandwidth and does not change the order of the synchronization units already in the queue, but only blocks new enqueue operations, so that the dequeue operation has time to reduce the net backlog value.
[0030] At the beginning of each minimum time granularity, the sending queue occupancy, the number of pending submissions and the interface submission capability are read. The reading only reflects the current instantaneous state, does not smooth and predict, and avoids introducing historical dependence. Within the minimum time granularity, the system may receive several enqueue requests and initiate several dequeue submissions. Each time an enqueue event occurs, a synchronization unit is pushed into the sending queue; each time a dequeue event occurs, a synchronization unit at the head of the queue is submitted to the interface. For enqueue events and dequeue events, the enqueue counter and the dequeue counter are incremented by 1 respectively when the events occur, and the net backlog value update and the boundary determination are immediately performed. This "immediate event processing" method is better than batch processing because measures can be taken within the same millisecond when the upper bound appears, reducing the propagation of fluctuations.
[0031] The process of the item-by-item processing flow of the Skorokhod-buffer control includes:
[0032] 1. Calculate the net backlog value. Whenever the enqueue counter or the dequeue counter changes, immediately update the net backlog value with the difference between the two and enter the boundary determination.
[0033] 2. The situation above the sending queue capacity bound (upper bound):
[0034] 2.1 When the net backlog value is higher than the sending queue capacity bound, calculate the number of excesses, and add the number to the reflection accumulator.
[0035] 2.2 Convert the current value of the reflection accumulator into an equivalent number of gap units, and register it to the enqueue channel of the next minimum time granularity. The registration rule is "first come first registered": deduct 1 gap unit per millisecond from the next millisecond, until the reflection accumulator drops to 0.
[0036] 2.3 The reason for this treatment is that when the net backlog value exceeds the boundary, the problem comes from the enqueue speed temporarily being greater than the dequeue speed. Inserting gap units into the enqueue channel can immediately limit the newly added backlog at the source, and the existing dequeue operation can gradually reduce the net backlog value in the subsequent milliseconds; compared with directly discarding the synchronization units, inserting gap units does not destroy the order and does not cause retransmission, and has the advantages of minimum adjustment and transparency to the upper layer service.
[0037] 2.4 Numerical example: the sending queue occupancy is 250, 12 enqueues and 2 dequeues occur within 1 millisecond, the net backlog value increases from 250 to 260, which is higher than the sending queue capacity boundary 256, and the excess amount is 4. Write 4 into the reflection accumulator, and insert 1 gap unit in each of the next 4 milliseconds to block new enqueue operations. Since the dequeue continues to occur, the net backlog value can usually be pressed back to not higher than the sending queue capacity boundary within the first to third milliseconds.
[0038] 3. The case below the zero boundary (under boundary):
[0039] 3.1 When the net backlog value is less than the zero boundary, immediately reset the net backlog value to 0.
[0040] 3.2 Supplement the acknowledgment aggregation once within the same minimum time granularity. The direct effect of supplementing the acknowledgment aggregation is to speed up the recovery of the peer acknowledgment, and to avoid unnecessary idle gaps at the sending end due to waiting for scattered acknowledgments.
[0041] 3.3 The reason for triggering the acknowledgment aggregation once immediately when the under boundary is that the under boundary means that the sending queue is temporarily emptied, and continuing to maintain scattered acknowledgments will cause the next batch of enqueues to arrive without forming an effective flow rhythm with the arrival of acknowledgments, which is prone to jitter expansion. One-time acknowledgment aggregation can compress the acknowledgment to a single time without introducing additional data, and then the enqueue and dequeue form a stable alternation.
[0042] 3.4 Numerical example: the sending queue occupancy is 1, 0 enqueues and 2 dequeues occur within the same millisecond, the net backlog value is pulled into a negative number, immediately set to 0, and trigger an acknowledgment aggregation at the end of the millisecond, so that the peer can return a batch of acknowledgments in the next millisecond, avoiding idle in the subsequent milliseconds.
[0043] 4. Execution priority of gap unit: When a millisecond has both registered gap units and received new enqueue requests, consume gap units first, then determine whether there are still enqueue requests that have not been blocked; if the number of gap units registered by the millisecond has been completely consumed and there are still enqueue requests, the last enqueue request of the millisecond is allowed to enter the sending queue. This rule ensures that gap units in the reflection accumulator are executed and cannot be bypassed by an enqueue flood.
[0044] 5. Maintenance of event order: Enqueue events and dequeue events can occur in the same millisecond. This embodiment adopts a fixed order of "processing dequeue first, then processing enqueue, and then determining the boundary". Processing dequeue first can reduce the net backlog value as much as possible in the same millisecond, which is beneficial to reducing the number of gap units that need to be registered, thereby meeting the requirement of "adjustment as small as possible".
[0045] The generation of the buffer safety window reference quantity includes: generating a buffer safety window reference quantity once at the beginning of each data synchronization window, which is not changed within the data synchronization window; and re-generating at the beginning of the next data synchronization window. The current net backlog value and the sending queue occupancy number are read. The number of committable steps of the current data synchronization window is set to 20 (corresponding to 20 minimum time granularities). This value is set once at system deployment to avoid uncertainty caused by runtime adjustment. Counting starts from the head of the queue, and at most 20 synchronization units are counted; counting stops when the count reaches the current sending queue occupancy number; counting stops when the count reaches the fixed safety upper limit of 32. The actual count result obtained by the above item-by-item counting is used as the buffer safety window reference quantity. The reason for using the "item-by-item counting and stopping at the first of the three stopping conditions" method is to make the buffer safety window reference quantity meet three requirements at the same time: not exceeding the execution capability of the current data synchronization window, not exceeding the actual queue size available at present, and not exceeding the smoothness constraint brought by the fixed safety upper limit.
[0046] For example: the current sending queue occupancy number is 45, and the net backlog value has been reflected back to not higher than the sending queue capacity boundary within the same millisecond through gap units. When starting item-by-item counting, there are 45 consecutive sendable synchronization units at the head of the queue; the count hits the "20 committable steps" stopping condition at the 20th synchronization unit, and the buffer safety window reference quantity is obtained as 20. If the queue occupancy number is only 7, the count hits the "current available actual queue size" stopping condition at the 7th synchronization unit, and the buffer safety window reference quantity is obtained as 7. If the queue occupancy number is 120, the count stops at the 20th synchronization unit, and the buffer safety window reference quantity is obtained as 20, and will not continue to grow to 32 or more, thereby avoiding introducing an unexecutable commit plan within the current data synchronization window.
[0047] After the generation of the buffer safety window reference quantity, it is confirmed that the aggregation is performed once fixedly before the end of the current data synchronization window. Since the buffer safety window reference quantity has limited the number of submissions within the current data synchronization window, the confirmed aggregation performed once can cover all submissions with small confirmation overhead, avoiding unnecessary gaps caused by scattered confirmations.
[0048] Complete example of working process: At 0 ms, the sending queue occupancy is 250. 12 enqueues and 2 dequeues are received, and the net backlog value rises to 260. It is higher than the sending queue capacity limit 256, and the reflection accumulator registers 4. Then 1 gap unit is inserted at each of the 1st to 4th ms. At 1 ms, due to the effect of the gap unit, the new enqueue request is blocked once; 3 dequeues occur, and the net backlog value drops to 256. At 2 ms, 1 gap unit is consumed again and 3 dequeues continue, and the net backlog value drops to 253. The reflection accumulator remains 2. At 3 ms and 4 ms, the gap units are consumed in the same way and dequeued, and the net backlog values drop to 250 and 247 respectively, and the reflection accumulator drops to 0. When the start time of the current data synchronization window is reached: the buffer safety window reference quantity is 20 according to the item-by-item counting rule, and the confirmed aggregation is performed once fixedly before the end of the window.
[0049] In an optional implementation, when the timer resolution of the terminal is limited, the minimum time granularity can be set to 2 ms. Correspondingly, the gap units registered by the reflection accumulator are still deducted in the manner of “decrementing by milliseconds”, but each time the deduction spans 2 ms. In this way, the same reflection effect can be achieved on hardware with weak timing capability. For terminals with more sufficient memory resources, the sending queue capacity limit can be set to 512 synchronization units. At this value, the Skorokhod-buffer control flow remains unchanged, and only when the limit is exceeded, the number of gap units registered by the reflection accumulator can be larger, but it is still consumed in the manner of decrementing by milliseconds. When the maximum transmission unit of an interface is low, the synchronization unit size can be fixed to 800 bytes to ensure that a submission is necessarily less than the maximum transmission unit minus the header overhead. This replacement does not affect the update logic of the enqueue counter, the dequeue counter, and the reflection accumulator, nor does it change the generation steps of the buffer safety window reference quantity.
[0050] For step 2, first send a probing sequence for each interface separately. The probing sequence contains 40 probing packets, with a fixed packet size of 64 bytes, and a 1 ms interval between packets. The purpose of choosing 40 probing packets is to cover a rise and fall of short-term fluctuation, but the total time length does not exceed 40 ms, so that the result can be obtained quickly before the current data synchronization window starts. Each probing packet records the local sending time when it is sent, and records the local receiving time when the response from the opposite end is received. The arrival time of the probing packet is obtained by subtracting the sending time from the receiving time. The arrival time is in milliseconds, with a minimum resolution of 1 ms, and is rounded to an integer millisecond. This processing can suppress the timing error within 0.5 ms, which is convenient for subsequent direct insertion of gap units with the minimum time granularity. If a certain probing packet does not receive a response within 200 ms, it is determined that the probing packet has timed out and is excluded from this processing. The reason for exclusion is that the state of the link corresponding to the timeout has deviated from the current short-term window, and is not suitable for inclusion in the one-time extreme value evaluation; after exclusion, there are still enough arrival times for sorting and boundary taking. If the number of valid arrival times is less than 20, immediately reissue a one-time probing packet for the number of gaps, still using a 1 ms interval to collect the arrival time, until the number of valid arrival times reaches 20. This ensures that the size of the extreme value set is not too small, avoiding instability in the middle position.
[0051] Collect all valid arrival times obtained in the previous step into an extreme value set. The set only contains integer millisecond values obtained from the current one-time probing, without smoothing, averaging or other processing. The extreme value set is sorted in ascending order. The sorted sequence is numbered from position 1 to position N. Here, N is equal to the number of valid arrival times. Select a value at the middle position as the extreme value threshold. The specific rule is: when N is odd, select the value at the position equal to the half of N rounded up; when N is even, select the middle value on the back. For example, when N is 21, select the value at position 11; when N is 20, select the value at position 10. The reason for selecting the middle position is that the middle position is not sensitive to occasional abnormalities on both ends, and can stably represent the upper limit of common fluctuations, without being dragged by a small number of extremely low or extremely high values. Take the value at position N in the sequence as the upper limit of the extreme value. The upper limit of the extreme value obtained in this way is the maximum arrival time observed in this probing, which can cover the most severe jitter in this round.
[0052] Calculate the difference between the upper limit of the extreme value and the extreme value threshold. The difference is in milliseconds. Round up the difference to a multiple of the minimum time granularity. Since the minimum time granularity is 1 ms, the rounded-up value is still an integer millisecond. The integer millisecond is the tail protection margin. The significance of rounding up is that when generating the sending time table, leave a space that is not less than the tail jitter observed this time, to avoid cutting off the tail jitter outside the gap due to rounding down.
[0053] Numerical example one (wireless local area network interface): the value of the middle position after sorting is 14 milliseconds, the maximum value is 27 milliseconds, the difference is 13 milliseconds, and the tail protection margin after rounding up is 13 milliseconds. Numerical example two (cellular interface): the value of the middle position after sorting is 22 milliseconds, the maximum value is 41 milliseconds, the difference is 19 milliseconds, and the tail protection margin after rounding up is 19 milliseconds. If the tail protection margins of different interfaces differ greatly, do not average and fuse across interfaces, and keep the tail protection margins of each interface respectively. In this way, each interface can leave white space according to its own short-term extreme fluctuations, avoiding that the good state of one interface covers up the risk of another interface.
[0054] The process of combining the buffer safety window reference quantity and the generation of the data synchronization window initial value includes: at the beginning of the current data synchronization window, the buffer safety window reference quantity is read. The buffer safety window reference quantity has been given in step one, indicating the lower limit of the number of fragments that can be safely submitted within the current data synchronization window. On each interface, the buffer safety window reference quantity is used as the lower limit of the number of fragments, and the sending schedule is arranged for these fragments one by one. The arrangement rule is: according to the order of "a fragment followed by a gap unit", insert a gap unit equal to the tail protection margin of the interface for each fragment; after completing a fragment and its gap unit, start the next fragment. This will form an interleaved structure of "sending, white space, sending, white space". Fixed confirmation aggregation is performed once before the end of the data synchronization window. The fixed method can avoid the confirmation being scattered in the time axis, thereby concentrating the confirmation to a time point, reducing the disturbance to the interleaved structure, and making the gap unit mainly used to resist link jitter, rather than being occupied by confirmation. If the interleaved structure is full in the time axis of the current data synchronization window, stop inserting new fragments, and keep the already arranged content unchanged. Here, the existing fragments are not moved backward, and the gap units are not compressed, to ensure that the interleaved structure completely corresponds to the tail protection margin obtained by the current detection.
[0055] Numerical example: the buffer safety window reference quantity is 20. The tail protection margin of the wireless local area network interface is 13 milliseconds, and the tail protection margin of the cellular interface is 19 milliseconds. Then, on the wireless local area network interface, the schedule is interleaved and arranged in the manner of "fragment 1, gap 13 milliseconds; fragment 2, gap 13 milliseconds; …; fragment 20, gap 13 milliseconds"; and on the cellular interface, the schedule is interleaved and arranged in the manner of "fragment 1, gap 19 milliseconds; fragment 2, gap 19 milliseconds; …; fragment 20, gap 19 milliseconds". If the time available for the wireless local area network interface in the current data synchronization window is not enough to accommodate all 20 interleaved units, stop according to the number of time axes that can be accommodated, and do not compress the gap any more. Finally, perform a unified confirmation aggregation once before the end of the data synchronization window.
[0056] The middle position is selected as the extreme threshold, which can separate the common fluctuations in a single detection from the extreme fluctuations. The middle position is not affected by the individual values at both ends, and is stable. In continuous millisecond-level detection, it usually falls near the common congestion edge of the network. Taking this position as the extreme threshold is equivalent to taking the upper edge of the common congestion as the reference line. The maximum value is selected as the upper limit of the extreme value, which can integrate the most serious jitter seen in this detection. The difference between the upper limit of the extreme value and the extreme threshold is used for blanking, which is equivalent to reserving enough space above the upper edge of the common congestion to swallow the worst jitter. The blanking of the interleaving structure does not change the order of the fragments, nor does it discard any fragments. It only gives the irregular fluctuations on the interface side a fixed buffer time on the time axis. In this way, the original order of the data is maintained, and additional queuing caused by repeated retransmission is avoided.
[0057] In an optional embodiment, when the interface behaves as extremely low jitter in actual deployment, the number of probe packets can be reduced from 40 to 24, and the total time length is shortened to 24 milliseconds. The remaining steps are completely consistent, and the tail protection margin is still obtained by sorting, the middle position and the maximum value. When the number of valid arrival times is even, there are two positions in the middle. In order to more conservatively cover the upper edge of the common congestion at the boundary, the latter position is fixedly selected. For example, the value of position 12 is selected when the number is 24, instead of the value of position 11. In this way, 1 sample can be added to support the common upper edge, and the tail protection margin obtained is slightly larger, which is more conducive to maintaining a stable arrival rhythm in burst conditions. If you want to retain the effect of timeout for auditing purposes, you can count the timeout value as 200 milliseconds into the set. At this time, the maximum value after sorting is usually equal to 200 milliseconds, the extreme threshold is still given by the middle position, and the tail protection margin obtained will be larger, and the blanking of the interleaving structure will also increase accordingly, which can further reduce the congestion collision probability of fragments in weak coverage or tunnel switching period.
[0058] For step 3, the buffered safety window reference amount has been obtained. This value remains unchanged within the current data synchronization window. The tail protection margin for each interface has been obtained. Each interface holds a tail protection margin independently, without cross-interface fusion. Each synchronization stream has a synchronization stream identification number, a latest acknowledgement sequence number, a current pending sequence number, and an unacknowledged fragment number. The information staleness counter and the relaxation control counter are cleared at the beginning of each data synchronization window, and each generates an information staleness index and a relaxation control index within the window according to the rules of the present embodiment. The fragment template requirement is set to a default value of 4 in the present embodiment. When the current available pending fragments of a synchronization stream are less than 4, the fragment template requirement is equal to the current available pending fragments of the synchronization stream. This setting ensures that the minimum transmission plan of each synchronization stream within a window opportunity is explicit and executable. The preset upper limit of the unacknowledged fragment number is 64. The preset upper limit of the tail protection margin is 25 milliseconds. The upper limit of the size of a single fragment after removing the overhead of the maximum transmission unit is 1200 bytes.
[0059] At the beginning of the data synchronization window, the latest acknowledgement sequence number and the current pending sequence number of each synchronization stream are read respectively. If the current pending sequence number of a synchronization stream is greater than its latest acknowledgement sequence number, the information staleness counter of the synchronization stream is incremented by 1, and the current value is taken as the information staleness index of the synchronization stream; if not, the information staleness counter is kept at 0, and 0 is taken as the information staleness index of the synchronization stream. The reason for this processing is that the current pending sequence number being greater than the latest acknowledgement sequence number indicates that the synchronization stream has new data that has not been covered, and if it is not sent in time, the availability of the data at the receiving side will continue to decrease. Incrementing the information staleness counter by 1 and taking it as the information staleness index is equivalent to giving such a synchronization stream an explicit "faster update is needed" indication, which facilitates prioritization in sequencing. Since the judgment is performed only once at the beginning of each data synchronization window, the information staleness index remains stable within the window and will not change repeatedly due to temporary short jitter.
[0060] At the beginning of the data synchronization window, three types of flags are checked for each synchronization stream in turn: buffer safety window reference amount surplus flag, interface direct flag and retransmission budget flag. Buffer safety window reference amount surplus flag: set when the buffer safety window reference amount is greater than the fragment template requirement of the synchronization stream. This flag reflects that the available submission capacity in the current window is relatively abundant and can accommodate a window opportunity of the synchronization stream without squeezing the necessary space of other synchronization streams. Interface direct flag: set when the tail protection margin of at least one interface is less than 25 milliseconds. This flag indicates that there is a more stable sending path that can reliably insert fragments in an interleaved structure without changing the data order. Re-transmission budget flag: set when the number of unconfirmed fragments of the synchronization stream does not exceed 64. This flag ensures that continuing to send new fragments within the current window opportunity will not cause retransmission backlog. Each time a flag is met, the relaxation control counter is incremented by 1. After the three checks are completed, the current value of the relaxation control counter is the relaxation control index of the synchronization stream, with a value range of 0 to 3. The reason for using three types of flags is to give a one-time feasibility judgment from three dimensions of submission capacity, path stability and unconfirmed load. The three types of flags are immediate judgments and do not involve historical trajectories, which is convenient for consistent implementation on different terminal platforms.
[0061] For each synchronization stream, an index pair is formed using the information aging index and the relaxation control index. All synchronization streams are sorted according to the following rules: first, sort by information aging index from large to small. Synchronization streams with large information aging indexes are given priority to enter the sending queue, ensuring that new data is covered faster on the receiving side. When the information aging index is the same, sort by the relaxation control index from large to small. Synchronization streams with large relaxation control indexes are more likely to complete a complete interleaved structure sending and confirmation aggregation within the current window, and thus are given priority. When the information aging index and the relaxation control index are both the same, sort by synchronization stream identification number from small to large to ensure that the sorting process is determined and reproducible. After sorting, a total order list is obtained. This list will be used to allocate window opportunities in the current data synchronization window.
[0062] The window opportunity is assigned to each synchronization flow from front to back according to the ordered full sequence list. Each synchronization flow gets a window opportunity in one data synchronization window. The sending interface is selected from the available interfaces of the synchronization flow when the window opportunity is assigned to the synchronization flow. The selection rule is that the interface with the smallest tail protection margin is selected as the sending interface from the available interface set; when there are multiple interfaces with the same smallest tail protection margin, the interface priority sequence is selected, which is WLAN interface, cellular interface, short-range communication interface. The advantage of selecting the interface with the smallest tail protection margin is that the time dispersion of the interface is smaller, and the gap unit in the interleaving structure is easier to cover the actual fluctuation, thereby reducing the probability of congestion collision of continuous fragments; when there are multiple interfaces with the same smallest tail protection margin, the fixed interface priority sequence can avoid unpredictable differences in implementation of different devices.
[0063] After the window opportunity is assigned to the synchronization flow and the sending interface is selected, the fragment template and the acknowledgment aggregation template are immediately issued. The specific rule of the fragment template is that the size of a single fragment is not more than the maximum transmission unit minus the header overhead, and 1200 bytes is taken as the upper limit; the number of fragments that the synchronization flow attempts to send in the current window opportunity is not more than the fragment template requirement, and is not more than the remaining number of fragments that the sending interface can accommodate in the current data synchronization window; when the two conflict, the smaller one is used. The specific rule of the acknowledgment aggregation template is that the acknowledgment aggregation is fixedly performed once before the end of the current data synchronization window. The rule of the schedule arrangement is that the tail protection margin of the selected sending interface is aligned, and a gap unit equal to the tail protection margin is inserted after each fragment to form an interleaving structure of "fragment, gap, fragment, gap"; when the remaining time of the current data synchronization window is not enough to accommodate a complete interleaving structure, the insertion of new fragments is stopped, and the arranged content is kept unchanged. The direct effect of such arrangement is to absorb the short-time jitter on the interface side with fixed blanking, while the order of the fragments is not changed.
[0064] Complete numerical example: the buffer safety window reference amount is 20. The tail protection margin of the WLAN interface is 13 milliseconds, the tail protection margin of the cellular interface is 19 milliseconds, and the tail protection margin of the short-range communication interface is 7 milliseconds. There are three synchronization flows, which are the first synchronization flow identifier, the second synchronization flow identifier, and the third synchronization flow identifier. The number of unacknowledged fragments is 12, 4, and 68 respectively. The relationship between the current to-be-sent sequence number and the latest acknowledgment sequence number of each is that the current to-be-sent sequence number of the first synchronization flow identifier is greater than the latest acknowledgment sequence number, the current to-be-sent sequence number of the second synchronization flow identifier is greater than the latest acknowledgment sequence number, and the current to-be-sent sequence number of the third synchronization flow identifier is equal to the latest acknowledgment sequence number. The information age index of the first synchronization flow identifier is 1; the information age index of the second synchronization flow identifier is 1; and the information age index of the third synchronization flow identifier is 0.
[0065] For the first synchronization flow identification number: the buffer safety window reference amount is 20, which is greater than the fragment template requirement 4, the buffer safety window reference amount surplus flag is set; the tail protection margin of at least one interface is less than 25 milliseconds, the interface direct flag is set; the number of unacknowledged fragments is 12, which is less than 64, the retransmission budget flag is set; therefore, the relaxed control index is 3. For the second synchronization flow identification number: the buffer safety window reference amount is 20, which is greater than the fragment template requirement 4, the buffer safety window reference amount surplus flag is set; the tail protection margin of at least one interface is less than 25 milliseconds, the interface direct flag is set; the number of unacknowledged fragments is 4, which is less than 64, the retransmission budget flag is set; therefore, the relaxed control index is 3.
[0066] For the third synchronization flow identification number: the buffer safety window reference amount is 20, which is greater than the fragment template requirement 4, the buffer safety window reference amount surplus flag is set; the tail protection margin of at least one interface is less than 25 milliseconds, the interface direct flag is set; the number of unacknowledged fragments is 68, which is greater than 64, the retransmission budget flag is not set; therefore, the relaxed control index is 2. First, sort according to the information aging index from large to small, and the first synchronization flow identification number and the second synchronization flow identification number are in the front, and the third synchronization flow identification number is in the back; between the first synchronization flow identification number and the second synchronization flow identification number with the same information aging index, sort according to the relaxed control index from large to small, both of which are 3, and continue to sort according to the synchronization flow identification number from small to large, and the final order is the first synchronization flow identification number, the second synchronization flow identification number, and the third synchronization flow identification number.
[0067] Assign a window opportunity to the first synchronization flow identification number, and select the short-distance communication interface with the minimum tail protection margin of 7 milliseconds among the three interfaces as the sending interface; issue a fragment template, the fragment size is not greater than 1200 bytes, and the number of fragments to be sent is 4; issue an acknowledgment aggregation template, which is fixedly executed once before the end of the window; and arrange according to the interleaving structure of “fragment, gap 7 milliseconds, fragment, gap 7 milliseconds, fragment, gap 7 milliseconds, fragment, gap 7 milliseconds”.
[0068] Assign a window opportunity to the second synchronization flow identification number, and also select the short-distance communication interface of 7 milliseconds as the sending interface; if the short-distance communication interface has less than 4 remaining available fragments in the current data synchronization window, then the number of fragments to be sent is reduced to the remaining available number of the interface in the current window; and still arrange according to the interleaving structure of “fragment, gap 7 milliseconds”, until the time axis of the current data synchronization window cannot accommodate a complete interleaving unit.
[0069] The third synchronization flow identification number is allocated with a window opportunity, the smaller tail protection margin between the short-distance communication interface and the wireless LAN interface is selected, the short-distance communication interface is still the minimum of 7 ms, so the short-distance communication interface is selected; since the number of unacknowledged fragments of the synchronization flow is 68, the retransmission budget mark is not satisfied, but the window opportunity is not affected; the fragment template and the acknowledgement aggregation template are still issued within the window opportunity, the number of fragments to be sent is not more than the smaller value of the fragment template requirement and the current interface accommodated number, and the interleaving structure of "fragment, gap 7 ms" is arranged; if the remaining time of the current data synchronization window is not enough to accommodate any complete interleaving unit, the insertion is stopped, and the arranged content is kept unchanged. After the above arrangement, the three synchronization flows all obtain a window opportunity in the current data synchronization window, and are sent in the respective selected sending interface and interleaving structure. Since the interleaving structure and the tail protection margin are strictly aligned, the short-time jitter on the interface side is absorbed by the gap unit, the acknowledgement aggregation is fixedly executed once before the end of the window, and will not be scattered on the time axis to interfere with the arranged interleaving structure.
[0070] For step 4: The buffer safety window reference quantity has been given by step one. For example, the value is 20. The tail protection margin of each interface has been obtained by step two. For example, the wireless LAN interface is 13 ms, the cellular interface is 19 ms, and the short-distance communication interface is 7 ms. The window opportunity and the sending interface of each synchronization flow have been allocated by step three, and the fragment template and the acknowledgement aggregation template have been issued. The upper limit of the size of a single fragment of the fragment template is 1200 bytes; the acknowledgement aggregation template is fixedly executed once before the end of the data synchronization window.
[0071] The time axis is scaled in 1 millisecond. At the beginning of each scale, the dequeue is processed first, then the enqueue, and finally the check of whether a gap unit is needed. This order is consistent with step one, which can reduce the net backlog value in the same 1 millisecond, and reduce the number of gap units that need to be inserted subsequently. For the first synchronization stream that obtains a window opportunity, the fragments of the synchronization stream on the selected sending interface and the gap units are arranged on the time axis in the interleaving structure of "a fragment followed by a gap unit". If the sending interface is a short-distance communication interface and the tail protection margin is 7 milliseconds, the first fragment is submitted for dequeue at the beginning of the time axis, and then 7 gap units are continuously inserted, corresponding to 7 millisecond scales, to block new enqueue requests from entering the sending queue; at the 8th millisecond scale, the second fragment is submitted for dequeue, and then 7 gap units are inserted again; in this way, the alternation is performed until the fragments of the synchronization stream that are scheduled to be sent in the current window opportunity are all completed, or until the remaining time of the current data synchronization window is not enough to accommodate a complete "fragment plus gap" interleaving unit. The reason for placing a gap unit immediately after each fragment is to directly map the tail protection margin observed on the interface side to the time blank on the sending side. The larger the tail protection margin, the wider the arrival time fluctuation of the interface; by pre-allocating an equal-length blank interval on the sending side, the congestion collision that may occur on the receiving side can be transferred to the waiting on the sending side, so that the arrival rhythm is more uniform.
[0072] For the synchronization streams that are scheduled later, the time axis is independently arranged according to the sending interface to which the synchronization stream is allocated. The time axes of different interfaces do not occupy each other, and thus can be executed in parallel. For example, while the short-distance communication interface submits a fragment at 0 milliseconds and inserts 7 gap units, the wireless local area network interface can submit its own fragment at 0 milliseconds and insert 13 gap units. The direct benefit of such an arrangement is to improve the overall submission amount in the same data synchronization window, while maintaining the interleaving structure in each interface and strictly consistent with the tail protection margin of the interface.
[0073] When the remaining time of the time axis on a certain interface is not enough to accommodate a complete "fragment plus gap" interleaving unit, the arrangement of new fragments on the interface is immediately stopped, the already arranged content is kept unchanged, and the gap units are not compressed forward, nor is the order of the fragments changed. This avoids destroying the stable rhythm established by the tail protection margin in the previous step in pursuit of quantity.
[0074] Trigger an aggregation of acknowledgements once at the end of the data synchronization window. The trigger time can be set at 1 millisecond before the end. Triggering once avoids the insertion of acknowledgements scattered along the time axis. If acknowledgements were returned scattered across multiple millisecond ticks, they would occupy the same ticks as gap units, disrupting the interleaved structure that has been arranged; concentrating acknowledgements to a single time reduces the congestion of acknowledgements along the time axis, leaving the empty space previously reserved to combat jitter completely intact. After triggering the aggregation of acknowledgements, the receiving side merges the set of acknowledgement numbers returned according to the arrival within the current data synchronization window, and the sending side enters the state update after receiving the set.
[0075] For each synchronization stream, read the set of acknowledgement numbers for that synchronization stream, and check consecutively from the smallest number until the first unacknowledged number is encountered; the highest number that was acknowledged consecutively is set as the latest acknowledgement number for that synchronization stream. The immediate effect of this is that the latest acknowledgement number is advanced only by consecutive acknowledgements, avoiding the misjudgment of available progress due to the presence of unacknowledged fragments in between. Count the number of fragments actually submitted on all interfaces within the current data synchronization window, and add the number to the dequeue counter. Since dequeue is executed preferentially at the beginning of each millisecond tick, this count is consistent with the actual submission. Count the total number of enqueue events within the current data synchronization window, and add the number to the enqueue counter. Enqueue events include data writes from the upper layer and replenishment operations performed to restore the feasible band in the underbound case. Count the number of gap units registered due to overbound and consumed within the current data synchronization window, and subtract the number of consumed gap units from the reflection accumulator; if there are still un-consumed registered gap units at the end of the current data synchronization window, clear the registered number at the end and do not carry over to the next data synchronization window. The benefit of clearing is that the next cycle is completely driven by new enqueue and dequeue events, avoiding the bias caused by the residual of the previous cycle to the judgment of the new cycle. All the above updates are performed once after the aggregation of acknowledgements is completed, ensuring that the state is determined at the same time, providing the only input for the recalculation of the buffer safe window reference, the tail protection margin, and the index pair in the next cycle.
[0076] Complete numerical example: the buffer safe window reference is 20. There are three synchronization streams, the first synchronization stream identifier, the second synchronization stream identifier, and the third synchronization stream identifier; all three have obtained window opportunities in step three. The tail protection margin of the short-range communication interface is 7 milliseconds, and the tail protection margin of the wireless local area network interface is 13 milliseconds.
[0077] The first synchronization flow identifier selects a short-range communication interface. Four fragments are arranged in a "fragment, gap 7 ms" interleaving structure; one fragment is submitted for dequeuing at each of 0, 8, 16, and 24 ms. The second synchronization flow identifier selects a wireless local area network interface. Four fragments are arranged in a "fragment, gap 13 ms" interleaving structure; one fragment is submitted for dequeuing at each of 0, 14, 28, and 42 ms. The third synchronization flow identifier selects a short-range communication interface. Since the time axis of the short-range communication interface is occupied by the interleaving structure of the first synchronization flow identifier, only one complete "fragment plus gap" interleaving unit can be accommodated before 32 ms, so only one fragment is submitted for dequeuing at 32 ms and a 7 ms gap unit is inserted.
[0078] An acknowledgement aggregation is triggered once one millisecond before the end of the data synchronization window. The receiving side returns three sets: for the first synchronization flow identifier, four consecutive acknowledgements are returned. The sending side advances the latest acknowledgement number of the synchronization flow by four. For the second synchronization flow identifier, three consecutive acknowledgements and one unacknowledged fragment are returned. The sending side advances the latest acknowledgement number of the synchronization flow by three and leaves the gap corresponding to the unacknowledged fragment untreated. For the third synchronization flow identifier, one acknowledgement is returned. The sending side advances the latest acknowledgement number of the synchronization flow by one.
[0079] The dequeuing counter adds up to nine (five for the short-range communication interface and four for the wireless local area network interface) in the current data synchronization window. The enqueuing counter adds up to the actual number of enqueuing events written by the upper layer, for example, 12 enqueuing events occur in the current window, so the enqueuing counter adds 12. The reflection accumulator consumes the number of gap units equal to the number of gap units actually inserted and taking effect in the execution phase in the current window. For example, the short-range communication interface consumes 5 x 7 equaling 35 gap units and the wireless local area network interface consumes 4 x 13 equaling 52 gap units, so a total of 87 gap units are consumed; if there are still registered gaps that are not consumed, the registration is cleared at the end of the window. The latest acknowledgement numbers of the three synchronization flows are advanced according to the acknowledgement sets respectively, forming the determined starting points required for the next round of calculation.
[0080] After the above update is completed, the execution of the current data synchronization window and the simple closed loop end. When the next round starts, the new enqueuing events and dequeuing events are processed again at a 1 ms granularity according to step one, generating a new buffer safety window reference amount; the detection sequence is sent again for each interface to obtain a new tail protection margin according to step two; and the index pair is regenerated, sorted, and the new window opportunity and sending interface are assigned again under the new input according to step three. Since the reflection accumulator is cleared at the end of the last round, the determination of the new round is completely derived from the observation of the current round, avoiding cross-round residual interference.
[0081] Embodiment 2: Let denote the minimum time granularity (in milliseconds). The present example takes . Let denotes the sending queue capacity bound (in sync units), which is set to . Let denotes the enqueuing counter (in sync units), which is set to 0 at the beginning of each data synchronization window. Let denotes the dequeuing counter (in sync units), which is set to 0 at the beginning of each data synchronization window. Let denotes the reflection accumulator (in gap units), which is set to 0 at the beginning of each data synchronization window. Let denotes the net backlog (in sync units), which is defined as ;
[0082] Let denotes the maximum transmission unit (in bytes), which is set to . Let denotes the header overhead (in bytes), which is set to . Let denotes the upper bound of a single fragment size (in bytes), which is defined as . Let denotes the synchronization flow 's fragment template demand (in fragments) in a window opportunity. The base value of each synchronization flow is set to 4 by default, and the actual available number is taken when the available pending fragments are less than 4.
[0083] Let denotes the duration of a data synchronization window (in milliseconds), which is set to . Let denotes the number of commitable steps of the current data synchronization window (in minimum time granularity units), which is set to . Let denotes the upper bound of a safe smoothing (in fragments), which is set to . Let denotes the buffer safety window reference amount (in fragments), which is generated by step one: , where denotes the number of sync units occupied by the sending queue at the beginning of the window. Let denotes the arrival time sequence (in milliseconds, taking integer milliseconds) obtained by the interface in a probe, sorted in ascending order; let denotes the value of the middle position (taking the middle value for odd numbers, and the later one for even numbers), let denotes the maximum value. Let denotes the tail protection margin (in milliseconds) of the interface , which is defined as .
[0084] Let Indicates synchronous stream The current pending sequence number (unitless, monotonically increasing label), let... Indicates synchronous stream The latest confirmation number. Let... Indicates synchronous stream Information timeliness index (unitless, taking the value 0 or 1), is defined as follows: ;set up Indicates synchronous stream The number of unconfirmed fragments (in fragments). Let... This represents the preset upper limit for the number of unconfirmed fragments (in fragments). In this example, it is set to... .set up This represents the preset upper limit (in milliseconds) of the tail protection margin; in this example, it is taken as... .set up These represent the values (0 or 1) of the three types of instantaneous markers: .set up Indicates synchronous stream The relaxation control index (unitless, ranging from 0 to 3) is defined as follows: .set up This represents the sorting result (a sequence of synchronous stream identifiers), sorted by first... Descending order, then by Descending order, then ascending order by synchronization stream identifier.
[0085] set up Indicates synchronous stream The window opportunity within this data synchronization window (exactly 1 time per synchronization stream). Let... This represents the selected sending interface number for a certain synchronization stream, defined as follows: If there is a tie for the lowest value, a fixed priority order will be used for selection (in this example, the priority order is wireless LAN interface, cellular interface, and short-range communication interface). Let... Indicates synchronous stream In the interface Upper The dequeue time (in milliseconds, relative to the start of the current data synchronization window) of each slice is defined as follows: ,in Interface The starting orchestration time (in milliseconds; different interfaces can run in parallel, so each can be set to 0).
[0086] Events observed in the last 1 millisecond before the start of the data synchronization window: 12 enqueues and 2 dequeues occurred. Write the counter to: .because The last boundary is not triggered, reflection is not triggered, and the boundary is maintained. In the next millisecond, 0 enqueues and 3 dequeues occur: Still not over the limit. If the situation of occurs (to be shown later in this example), then units of gaps should be registered: The number of occupied sending queues at the start of the data synchronization window is recorded as The triple stop rule generates The reference amount of the buffer safety window is obtained .
[0087] Example of the arrival time (in milliseconds) of a one-time probe of the wireless local area network interface: There are a total of 20). The 10th value is taken as the middle position , and the maximum value is . To be consistent with the previous more conservative configuration, 13 can also be obtained under another group of samples in the same batch; this example is uniformly arranged according to 13 in the subsequent, recorded as .
[0088] Example of the arrival time of a one-time probe of the cellular interface: Take , and obtain To be consistent with the stronger burst period, 19 can also be used for blanking; this example is uniformly arranged according to . Example of the arrival time of a one-time probe of the short-distance communication interface: Take , and obtain To resist subsequent larger fluctuations, the conservative configuration is used in this example .
[0089] The input of the three synchronization streams is given: the synchronization stream The number of unconfirmed fragments is 4;
[0090] ; the number of unconfirmed fragments is
[0091] Because , the three synchronization streams all get . , the three synchronization streams all get The retransmission budget is: , Therefore .
[0092] The order is obtained according to the rules . Each synchronization stream is allocated in turn.
[0093] The interface selection uses , and because Minimum, and since all three synchronous streams in this example can use three interfaces, if the timeline allows, all three synchronous streams should preferentially choose short-range communication interfaces; considering the capacity within the window, the orchestration described later will also utilize wireless LAN interfaces to improve the overall commit capacity. Maximum size of a single fragment. In the interface Above, if it is a synchronous stream plan to send If there are multiple shards, then the time consumed by this interface is approximately... ,in One millisecond can be considered the "commit tick". When At that time, Reduced to the maximum achievable integer. The margin for short-range communication interfaces is... Therefore, each segment is followed by 7 gap units; the blank space for the wireless LAN interface is 13.
[0094] First synchronization stream (ranked first): Short-range communication interface is preferred. ,plan ,examine It can accommodate [number] people. Departure time: Second synchronization stream (second in order): To improve overall capacity, select the wireless LAN interface (in parallel with the short-range communication interface), and choose... ,plan ,examine It can accommodate [number] people. Departure time: The third synchronization stream (ranked third): Short-range communication interfaces remain the preferred choice. The short-range communication interface has been extended from time axis 0-31 (including the last 7 gap units) occupied by the first synchronization stream to 31. It can accommodate more within 64. An interleaved unit, therefore the plan It can also accommodate. Take Departure time: At this point, the two interfaces are operating in parallel: - The short-range communication interface has a total of 8 segments (4 from the first synchronization stream and 4 from the third synchronization stream), occupying the time axis from 0 to 63 (the last segment has a blank space of 7 after 56, reaching 63). - The wireless LAN interface has a total of 4 segments (4 from the second synchronization stream), occupying the time axis from 0 to 55 (the last blank space extends to 55).
[0095] 1 millisecond before the window ends Triggering acknowledgment aggregation, the receiving side merges and returns an acknowledgment set according to arrival status. Assume the acknowledgment results are as follows: First synchronization stream: 4 consecutive acknowledgments. Second synchronization stream: 3 consecutive acknowledgments and 1 unacknowledgment (corresponding to its 4th fragment). Third synchronization stream: 4 consecutive acknowledgments. The latest acknowledgment sequence number advances. .
[0096] The total number of actual departures in this window If the upper layer has 15 enqueues in this window, then The net backlog value is updated as During the scheduling of this window, the gap units are inserted as needed, and do not belong to the "over-limit triggered reflex registration"; if there is an over-limit in this window and registers gap units, then after consumption , if there is still a registration residual at the end of the window, it is cleared .
[0097] The total number of out-of-queue fragments completed by this window is 12, and the total schedule is strictly aligned with the tail protection margin; one-time confirmation aggregation avoids the discrete insertion of confirmation on the time axis, thereby ensuring that the gap units are completely aligned after each fragment, effectively absorbing short-term jitter at the interface.
[0098] At the start of the next window, the new enqueues and dequeues are processed again according to the granularity of , and the buffer safety window reference quantity is regenerated according to ; the arrival time set is re-detected for each interface and is calculated; based on the new and , a new ordering is generated, and new and are assigned. Since is cleared at the end of the previous window, the new decision is only driven by new observations, avoiding cross-window residuals.
[0099] Figure 2Fig. 2 is a diagram showing the interleaving of data segments and gap units in a data synchronization window. The diagram intends to show how the present application interleaves data segments and gap units on multiple network interfaces according to the tail protection margin independently calculated for each interface, to form a jitter-resistant transmission schedule. The diagram shows three independent network interfaces, labeled as interface 1, interface 2, and interface 3. The tail protection margin values for each interface are labeled on the right side of the diagram: the tail protection margin for interface 1 is 7 milliseconds, the tail protection margin for interface 2 is 13 milliseconds, and the tail protection margin for interface 3 is 19 milliseconds. These three values are derived from the independent probing and extreme value theory processing of each interface in step two, and the difference in values reflects the difference in stability of the interfaces under the current network environment. The smallest tail protection margin for interface 1 indicates that the arrival time fluctuation for this interface is small, and the link is relatively stable; the largest tail protection margin for interface 3 indicates that there is significant delay jitter for this interface. The bottom of the diagram is a unified time axis, with the horizontal axis in milliseconds and the scale from 0 to 60 milliseconds, covering the time span of a complete data synchronization window. Each scale on the time axis corresponds to the smallest time granularity used in the present application, which is 1 millisecond. On this time axis, the transmission activities of each interface are independently developed according to the interleaving structure. Taking interface 1 as an example, the diagram shows the specific arrangement of its interleaving structure. At the starting position of the time axis, a data segment is first submitted, which is represented in the diagram as a black-filled rectangular block labeled "P1", with a width corresponding to 1 smallest time granularity. Immediately following the P1 segment, 7 gap units are inserted, represented in the diagram as rectangular blocks with dashed borders labeled "gap 7ms", with a total width of 70 time scale units (corresponding to 7 milliseconds). The role of the gap units is to block new enqueued requests from entering the transmission queue for 7 milliseconds, providing sufficient time buffer for the possible delay fluctuations encountered by the submitted P1 segment on the interface side. After completing the P1 segment and its gap units, the second segment P2 is submitted at the 8th millisecond position, followed by another 7 gap units; and so on, completing the interleaving arrangement of P3 and P4 segments. This interleaving structure ensures that each segment is followed by a blank time equal to the tail protection margin of interface 1, so that even if the arrival time fluctuation on the interface side reaches a maximum of 13 milliseconds, the sending side has already absorbed this uncertainty in advance through the gap units. The interleaving structure of interface 2 is completely consistent with that of interface 1 in principle, but since its tail protection margin is 13 milliseconds, the width of the gap units inserted after each segment is 130 time scale units. The diagram shows the arrangement of P1 to P4 segments on interface 2, with the intervals between segments significantly larger than those of interface 1, reflecting a more generous time reservation for larger jitter amplitude. The tail protection margin of interface 3 is 19 milliseconds, so the width of the gap units in its interleaving structure after each segment reaches 190 time scale units.Because the gaps occupy a longer time, within the same data synchronization window, interface 3 can accommodate fewer fragments than interfaces 1 and 2. The figure only shows the interleaved arrangement of fragments P1 to P3. The right side of the figure provides a legend: the black-filled rectangle represents "fragment transmission," corresponding to the actual data submission action; the rectangle with a dashed border represents a "gap unit," corresponding to the active waiting period on the sending side. Through this interleaved arrangement, this invention directly maps the tail delay characteristics observed on the interface side to the rhythm control strategy on the sending side. Without changing the data fragment order or discarding any data, it trades time for stability, significantly reducing the risk of congestion and retransmission caused by network jitter.
[0100] Figure 3Figure 1 is a schematic diagram illustrating the principle of generating the tail protection margin based on the EVT (Extreme Value Theory) of the probe packet arrival time distribution. The diagram shows the complete process of how the present application handles the network probe results through the EVT to obtain a tail protection margin for combating network jitter. The horizontal axis represents the arrival time of the probe packets in milliseconds, with the scale ranging from 5 milliseconds to 40 milliseconds, reflecting the interval of the round-trip time distribution observed within a complete probe cycle. The vertical axis represents the frequency of the probe packets falling into each time interval, with the scale ranging from 0 to 10 times, for counting the frequency of packet occurrence within a specific arrival time period. The arrival time distribution characteristics of 40 probe packets are presented in the form of a histogram. It can be observed that the distribution of arrival times presents a typical right-skewed characteristic, mainly concentrated in the 10 to 25 millisecond interval, which corresponds to the normal congestion state of the network; while in the tail region beyond 25 milliseconds, the frequency gradually decreases but still exists, and these tail data points represent the extreme jitter situation of the network. Two key vertical dashed lines are marked in the diagram. The first dashed line is located at the horizontal coordinate of 14 milliseconds, marked as "Extreme Value Threshold (Middle Position 14 ms)". This extreme value threshold is obtained by sorting all valid arrival times in ascending order and selecting the value at the middle position of the sequence. When the number of valid arrival times is 40, the middle position corresponds to the 20th or 21st value, and the latter position is selected in this embodiment to obtain a more conservative boundary estimate. The physical meaning of the extreme value threshold is that it divides the entire arrival time distribution into two regions: the threshold left side is the normal response interval of the network, and the threshold right side is the transition and tail interval containing jitter components. The second dashed line is located at the horizontal coordinate of 27 milliseconds, marked as "Extreme Value Upper Bound (Maximum 27 ms)". This extreme value upper bound is the maximum arrival time observed in this probe sequence, representing the most severe delay peak value that occurs under the current network state. The range from the extreme value threshold to the extreme value upper bound is marked by the gray shaded area in the diagram, which is identified as the "Tail Jitter Region". The width of the tail jitter region is equal to the difference between the extreme value upper bound and the extreme value threshold, which is 27 milliseconds minus 14 milliseconds in this example, resulting in 13 milliseconds. This difference, after being rounded up, is the value of the tail protection margin. The bottom of the diagram clearly marks "Tail Protection Margin = 13 ms" with an endpoint-labeled horizontal double-headed arrow, which visually demonstrates the calculation basis and numerical source of the protection margin. The role of the tail protection margin is to reserve equal-length gap units for each data fragment in subsequent transmission window scheduling, allowing the sending end to actively buffer time for possible extreme delays on the interface side, thereby avoiding packet loss or retransmission due to congestion collision of consecutive fragments at the receiving side.
[0101] While specific embodiments of the application have been described above, it will be appreciated that those skilled in the art within the scope of the application can make modifications, substitutions and changes in the methods and systems described above without departing from the spirit and essential characteristics of the application. For example, acts recited in the foregoing method steps in combination, in the same or an equivalent method, for carrying out the same functions to achieve the same results while maintaining the essential characteristic of that which is recited are within the scope of this application. Accordingly, the scope of the application is to be construed in accordance with the appended claims rather than read expansively with reference to the description.
Claims
1. A method for optimizing the data synchronization window for intelligent converged terminals, characterized in that, The method includes: Step 1, Status Acquisition and Skorok-Buffer Control Establishment: Acquire the sending queue status of the intelligent fusion terminal, process enqueue and dequeue events through the Skorok-Buffer Control mechanism to manage the net backlog value, thereby generating a buffer safety window baseline. Step 2, EVT tail control generates tail protection margin: The detection results of the interface are processed by the extreme value theory EVT to generate a tail protection margin to resist network jitter, and combined with the buffer safety window reference value, the initial value of the data synchronization window is generated. Step 3, Whittle / AoI Index Scheduling Window Opportunities: Generate an index pair consisting of an information timeliness index and a relaxation control index for each synchronization stream, sort the index pairs, and allocate window opportunities and sending interfaces to the synchronization streams; Step 4, Execution and Simplified Closed Loop: Data transmission is executed based on the initial value of the data synchronization window and the window opportunity, and the status is updated based on the feedback confirmation information for recalculation of the buffer safety window baseline, tail guard margin, and index pairs in the next loop. In Step 1, the specific implementation of the Skorok-buffer control mechanism is as follows: An enqueue counter, a dequeue counter, and a reflection accumulator are set; the enqueue counter increments when a synchronization unit enters the transmission queue, and the dequeue counter increments when a synchronization unit is submitted to the interface; the net backlog between the enqueue counter and the dequeue counter is calculated, and when the net backlog... When the backlog value exceeds the sending queue capacity limit, the excess amount is written into the reflection accumulator and a gap unit is inserted subsequently; when the net backlog value is below the zero limit, it is set to zero and an acknowledgment aggregation is performed; in step two, the specific implementation of generating the tail protection margin is as follows: a probe sequence consisting of several probe packets is sent on each interface; the arrival times of the probe packets are collected to form an extreme value set; the extreme value set is sorted, and a value located in the middle of the set is taken as the extreme value threshold, and the maximum value in the set is taken as the extreme value upper bound. The difference between the extreme value upper bound and the extreme value threshold is rounded up to obtain the tail protection margin. In step two, the specific method for generating the initial value of the data synchronization window by combining the buffer safety window baseline and the tail protection margin is as follows: On each interface, the buffer safety window baseline is used as the lower limit for the number of fragments. Based on this lower limit, a gap unit equal to the tail protection margin is inserted into each fragment. In step three, the generation rule for the information timeliness index is as follows: At the start of the data synchronization window, the latest acknowledgment number and the current pending sequence number of the synchronization stream are read. If the current pending sequence number is greater than the latest acknowledgment number, the information timeliness counter of the synchronization stream is incremented by one, and the current value of the information timeliness counter is used as the information timeliness index. In step three, the relaxation control index is generated according to the following rules: at the beginning of the data synchronization window, the buffer safety window baseline quantity surplus flag, the interface direct access flag, and the retransmission budget flag are checked sequentially. If any one of them is satisfied, the relaxation control counter is incremented by one, and the current value of the relaxation control counter is used as the relaxation control index. Among them, the buffer safety window baseline quantity surplus flag is set when the buffer safety window baseline quantity is greater than the fragment template requirement, the interface direct access flag is set when the tail protection margin of at least one interface is lower than the preset upper limit, and the retransmission budget flag is set when the number of unacknowledged fragments in the synchronization stream does not exceed the preset upper limit.
2. The method according to claim 1, characterized in that, In step three, the specific rules for sorting based on the index are as follows: sort by information timeliness index from largest to smallest; if the information timeliness index is the same, sort by relaxation control index from largest to smallest; if both are the same, sort by synchronization stream identifier from smallest to largest.
3. The method according to claim 1, characterized in that, In step three, the specific rule for allocating a sending interface for the synchronization stream is: select the interface with the smallest tail protection margin from the multiple interfaces available for the synchronization stream for sending.
4. The method according to claim 1, characterized in that, In step three, while allocating window opportunities, fragmentation templates and acknowledgment aggregation templates are issued. The fragmentation template is capped at the maximum transmission unit minus the header overhead, and the acknowledgment aggregation template is based on a fixed number of times before the end of the data synchronization window. The gap units and fragments are interleaved to make the transmission schedule consistent with the tail protection margin.
5. The method according to claim 1, characterized in that, In step four, the specific implementation of updating the status based on the feedback confirmation information is as follows: updating the latest confirmation sequence number, enqueue counter, dequeue counter, and reflection accumulator.
Citation Information
Patent Citations
Method and apparatus for network congestion control using queue control and one-way delay measurements
US20060050640A1
Congestion control method and apparatus
US20230216809A1