Method for processing out-of-order gse packets for dvr satellite transmission systems

By generating sequence information and window boundary information with a unified structure, and combining two-level rearrangement and adaptive control, the adaptability problem of out-of-order processing of GSE messages in the DVB satellite transmission system is solved, ensuring the stability and reliability of upper-layer service data units.

CN120979541BActive Publication Date: 2026-02-06COWAVE SATELLITE COMM TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202511501904.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-10-21
Publication Date
2026-02-06
Estimated Expiration
2045-10-21

AI Technical Summary

Technical Problem

In existing technologies for DVB satellite transmission systems, the out-of-order processing methods of the GSE protocol cannot effectively adapt to the dynamic nature of satellite links and the characteristics of the GSE protocol. This results in the inability to correctly reassemble out-of-order messages, affecting the stability and reliability of upper-layer service data units.

Method used

By parsing the GSE message stream, a list of parsed message entries and arrival statistics are generated. Sequence information and window boundary information with a unified structure are obtained, and a fragment-aware two-level rearrangement is performed. Adaptive control is then performed using the arrival statistics to form an ordered and deliverable queue.

Benefits of technology

It achieves efficient and robust sorting of GSE messages in a dynamic satellite link environment, reduces dependence on sorting information sources, and ensures stable output of upper-layer service data units.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120979541B_ABST
    Figure CN120979541B_ABST
Patent Text Reader

Abstract

The application discloses a method for GSE message disorder processing suitable for a DVB satellite transmission system, which comprises the following steps: analyzing an input GSE message stream, generating a list of parsed message items and arrival statistical information; obtaining sequence information and window boundary information of a unified structure from multiple source clues such as explicit sequence numbers, implicit window boundaries and inferred virtual sequence numbers according to the list and the statistical information; performing double-layer rearrangement with fragmentation awareness based on the sequence information and the window boundary information, wherein the rearrangement couples the ordering of the PDU layer and the aggregation integrity of the SDU layer for judgment; and adaptively controlling the window size and the timer threshold in the rearrangement process by using the arrival statistical information. The application can improve the success rate of in-order recovery under a complex satellite link environment, reduce the submission delay and has robust working ability in a weak clue scene.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention belongs to the field of satellite communication technology, and in particular to a method for handling out-of-order GSE messages applicable to DVB satellite transmission systems. Background Technology

[0002] In Digital Video Broadcasting (DVB) satellite communication systems, enhancement mechanisms such as Hybrid Automatic Repeat Request (HARQ) are commonly introduced to cope with complex and variable channel conditions and improve data transmission reliability. While ensuring data delivery, this mechanism introduces out-of-order packet problems, meaning that earlier-sent data packets may be retransmitted due to link errors, causing them to arrive at the receiver later than later-sent packets. The Generic Stream Encapsulation (GSE) protocol, as the core protocol for carrying upper-layer services such as IP in DVB systems, suffers from a lack of effective out-of-order processing capabilities at the receiver. This directly leads to the inability to correctly reassemble upper-layer Service Data Units (SDUs), causing service interruptions or performance degradation. Therefore, researching efficient and robust out-of-order processing methods applicable to GSE is a key technical requirement for ensuring the stable operation of DVB satellite communication systems.

[0003] To address out-of-order handling of link-layer packets, existing solutions include adding an explicit Sequence Number (SN) field to the protocol header and setting up a sliding window-based reordering buffer at the receiving end. Specifically, the sender assigns a monotonically increasing SN to each transmitted GSE packet, while the receiver maintains a fixed-size receive window. When a packet with a SN within the window is received, it is stored in the corresponding position in the buffer. Only when the packet expected at the lower edge of the window arrives does the receiver deliver that packet along with subsequent buffered packets to the upper layer and slide the window forward. Furthermore, the system configures a static t-Reordering timer. If a packet at the lower edge of the window fails to arrive after the timer expires, it is considered lost, triggering exception handling to prevent head-of-line blocking.

[0004] However, the existing solutions still face challenges in three areas when dealing with the characteristics of the GSE protocol and the dynamic satellite link environment: protocol semantic adaptation, link dynamic adaptation, and dependence on ordered information sources. Because the existing solutions do not have adaptation mechanisms designed for the characteristics of the GSE protocol and the dynamic nature of satellite links, further research and innovation are needed to address these problems in the existing technology. Summary of the Invention

[0005] Purpose of the invention: In view of the above-mentioned problems in the prior art, this application provides a method for out-of-order processing of GSE messages applicable to DVB satellite transmission systems.

[0006] Technical solution: According to one aspect of this application, a method for out-of-order processing of GSE messages in a DVB satellite transmission system includes:

[0007] parsing the input GSE packet stream to generate a parsed packet entry list and arrival statistics information;

[0008] acquiring sequence information and window boundary information of a uniform structure according to the parsed packet entry list and the arrival statistics information;

[0009] performing slice-aware double-layer rearrangement based on the sequence information and the window boundary information, and adaptively controlling the rearrangement process by using the arrival statistics information to form an in-sequence deliverable queue;

[0010] extracting data from the in-sequence deliverable queue and outputting the data as an in-sequence upper-layer service data unit stream.

[0011] According to another aspect of the present application, acquiring sequence information and window boundary information of a uniform structure comprises:

[0012] generating ordering clues from the parsed packet entry list and the arrival statistics information via at least two types of information sources;

[0013] wherein the types of information sources are selected from the group consisting of: explicit sequence numbers extracted from packet extension headers; implicit window boundaries indicated by preset patterns of packet protocol fields; virtual sequence numbers inferred based on arrival statistics information;

[0014] fusing the ordering clues to construct the sequence information and the window boundary information of a uniform structure.

[0015] Beneficial effects: The present application generates uniform sequence and window information, performs slice-aware double-layer rearrangement and adaptively controls the rearrangement process, can adapt to GSE protocol characteristics, dynamically responds to satellite link changes, reduces dependence on ordering sources, and guarantees in-sequence output of GSE packets and stability of upper-layer services. Related technical effects will be described in detail below in conjunction with specific embodiments. BRIEF DESCRIPTION OF DRAWINGS

[0016] Figure 1 A flowchart of a method for GSE packet disorder processing suitable for a DVB satellite transmission system is provided for embodiments of the present application.

[0017] Figure 2 A flowchart of inferring virtual sequence numbers is provided for embodiments of the present application.

[0018] Figure 3 A flowchart of generating implicit window boundaries is provided for embodiments of the present application.

[0019] Figure 4 A flowchart of fusing ordering clues is provided for embodiments of the present application.

[0020] Figure 5 The flow chart for adaptive control of the rearrangement process using arrival statistical information is provided for the embodiments of the present application. DETAILED DESCRIPTION

[0021] In order for those skilled in the art to better understand the present application, the technical solutions in the embodiments of the present application will be described clearly and completely below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, rather than all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those skilled in the art without creative labor should fall within the scope of protection of the present application.

[0022] It should be noted that the terms first, second, etc. in the specification of the present application and in the above-described drawings are used to distinguish similar objects, and do not necessarily have to be used to describe a specific order or sequence. It should be understood that the data thus used can be interchanged under appropriate circumstances, so that the embodiments of the present application described herein can be implemented in an order other than those illustrated or described herein. In addition, the terms include and have and any variations thereof are intended to cover non-exclusive inclusion, for example, a process, method, system, product or device including a series of steps or units does not have to be limited to the clearly listed steps or units, but can include other steps or units that are not clearly listed or inherent to these processes, methods, products or devices.

[0023] In order to solve the above problems, the applicant has conducted in-depth search and analysis, and found that:

[0024] The fragmentation mechanism of the GSE protocol makes the message in order and the complete service data unit two constraints that need to be met at the same time but are independent of each other. The traditional single-layer ordering mechanism that only focuses on the SN cannot effectively handle the coupling relationship between intra-slice consistency and inter-slice order, resulting in the problem that even if the message order is correct, the upper-layer service unit carried by the message cannot be delivered due to the key fragment not being aggregated on time. Further, the delay, jitter and retransmission intensity of the satellite link are greatly affected by various factors, and the use of a fixed-size rearrangement window and a static timeout timer strategy will cause recoverable messages to be lost due to a too small window or too early timeout when the link is deteriorating, and will introduce unnecessary cache delay and memory overhead due to overly conservative parameters when the link is good. On this basis, such methods are too dependent on the explicit SN field, and once intercommunication with devices that do not support this field or the field is error in strong interference, the entire out-of-order processing mechanism will fail, lacking robust working ability in weak clues or even no explicit clue scenarios.

[0025] In order to solve these problems, in combination with Figures 1 to 5 The present application is specifically illustrated by the following embodiments.

[0026] Embodiment one, provides a specific implementation process of GSE message out-of-order processing method, for understanding the background of the present application.

[0027] In this method, in order to realize the out-of-order rearrangement function of GSE message, the original GSE message header format needs to be expanded. For example, a sequence number (SN) field with a length of one byte can be inserted between the protocol type (PT) field and the GSE length (GSELENGTH) field in the GSE fixed header, which is used to uniquely identify each GSE message. At the sending end, a monotonically increasing SN number is associated with each GSE message sent.

[0028] Correspondingly, at the receiving end, in order to process GSE messages with SN numbers, the following state variables are defined:

[0029] VT(US): This variable is used to record the SN number of the next GSE protocol data unit (PDU) to be sent, and its initial value can be set to 0.

[0030] VR(UR): This variable is used to record the SN number of the earliest (i.e. the smallest sequence number) GSE PDU in the current reordering window at the receiving end, and its initial value can also be set to 0. Within the reordering window, all GSE PDUs with SN numbers less than VR(UR) are considered to have been successfully received and sequentially acknowledged.

[0031] VR(UX): This variable is used to record the next SN number of the GSE PDU that triggers the t-Reordering timer. When the t-Reordering timer starts, VR(UX) and VR(UR) together define the upper and lower boundaries of the SN number range that needs to be monitored.

[0032] VR(UH): This variable is used to record the upper boundary of the receiving window, and its value is equal to the SN number of the highest SN number GSE PDU received plus one, and the initial value is 0.

[0033] t-Reordering: Reordering timer, used by the receiving entity to check whether there is a GSE PDU loss. The threshold of this timer can be statically configured, for example, in the range of 0 milliseconds to 200 milliseconds.

[0034] Further, the processing flow of the receiving end is as follows: when receiving the GSE PDU, the SN number is extracted. If the SN number is within the receiving window defined by [VR(UR), VR(UH)], the PDU is stored in the receiving buffer. If the SN number is equal to VR(UR), it indicates that the expected PDU has arrived, at which time the PDU and all continuous and subsequent PDUs in the buffer can be delivered to the upper layer application, and the receiving window is slid forward, i.e. the value of VR(UR) is updated. If the expected PDU pointed to by VR(UR) has not arrived within the time set by the t-Reordering timer, it can be determined that the PDU is lost, triggering the corresponding exception processing mechanism. It should be understood that this method relies on a fixed SN field and a statically configured timer, and when facing high delay, high jitter and dynamic retransmission behavior of a satellite link, its adaptability and efficiency are limited.

[0035] Embodiment two, describes the general framework of a method for GSE packet reordering processing suitable for a DVB satellite transmission system, which comprises the following steps:

[0036] Step S2.1, an example, parses the input GSE packet stream to generate a parsed packet entry list and arrival statistical information. Specifically, the received original GSE packet stream is preliminarily processed and information is extracted to provide basic data for subsequent sequence identification and adaptive rearrangement, and a parsed packet entry list and arrival statistical information are output.

[0037] The parsed packet entry list is a structured list, in which each entry corresponds to a GSE packet. To generate the list, the header of each packet needs to be parsed to extract protocol fields such as the start flag (Start), end flag (End), label (Label) field, and payload length. On this basis, it is detected whether there is an extension header, and its marker is recorded. Each packet is timestamped while being parsed, and the timestamp is derived from the local time reference of the receiving end.

[0038] The arrival statistical information is a result set of statistical analysis of the arrival behavior of the packets within a sliding time window. For example, by analyzing the difference between the timestamps of consecutive packets, the distribution of arrival time intervals can be calculated, and further the high quantile value (such as the 95th quantile) can be obtained, which is the arrival jitter high quantile and is a key indicator for measuring the degree of link jitter. Further, by analyzing the burst interval and duplicate packets, and combining the known baseband frame period, the average retransmission round number and the high quantile of the round trip time (RTT) can be estimated. In order to enhance the robustness of the subsequent adaptive algorithm, the confidence interval of the statistical quantity can also be estimated.

[0039] Further, in this step, pre-check of packet fragment consistency can also be included. For example, a regular expression based state machine can be used to scan the parsed packet entry list to determine whether there is a missing Start flag, a missing End flag, or Start / End flag interleaving, etc. which does not conform to the protocol specification, and the entry is marked as abnormal. This is used to identify fragments that can not be successfully reassembled in advance, providing input for the subsequent differentiated discard strategy.

[0040] In another example, the out-of-order evidence collection and basic analysis can also be implemented in the following way: reading the input GSE packet stream (including fixed header, fragment flag Start / End, Label field, optional extension header, payload length and payload), and obtaining the arrival timestamp and bit stream frame period from the receiving end time reference, forming the arrival statistical information. In the analysis process, the Start / End flag, Fragment_ID, Label field content and extension header existence flag of each GSE packet are extracted, and the parsed packet entry list is generated as the unified input for subsequent sequence identification and rearrangement control.

[0041] In another example, the out-of-order evidence collection and basic analysis can also be implemented in the following way: reading the input GSE packet stream, parsing the start flag Start, end flag End, length field and payload length of each packet according to the GSE fixed header format, forming the fragment flag and length field in the parsed packet entry list. Based on the input GSE packet stream, the Label field and extension header existence flag are extracted; if a predefined extension header type value is detected, the extension header length and offset are recorded, and the Label field content and extension header flag in the parsed packet entry list are updated. Each packet is marked with a receiving timestamp; the baseband frame period and arrival jitter quantile are estimated in the sliding window to obtain the arrival time sequence and bit stream frame period estimation in the arrival statistical information.

[0042] The fragment flag and length field in the parsed packet entry list are scanned to determine whether there is a missing Start flag, a missing End flag, or Start / End flag interleaving, etc. which violates the rules, and the fragment consistency flag in the parsed packet entry list is generated. The Fragment_ID is checked for monotonicity within the same service stream, and the non-monotonic jump near the counting boundary is determined as a serious violation of the fragment (such as missing a critical starting fragment), which is put into the abnormal fragment candidate list for priority discard, reducing subsequent aggregation interference.

[0043] Differences are made to the arrival time sequence in the arrival statistics information to obtain the arrival interval, and the high quantile (such as the 95th quantile) of the arrival jitter in the arrival statistics information is calculated. In combination with the burst interval feature, the repeated message feature and the baseband frame period, the average retransmission round number and the high quantile of the round-trip delay are estimated, and the retransmission round number estimation and the high quantile of the round-trip delay in the arrival statistics information are generated. Confidence intervals are calculated for the statistical quantities, and the arrival statistics information with the confidence intervals is output, which is used for the selection of the conservative coefficient of the timer self-adjustment.

[0044] Step S2.2, optionally, according to the parsed message item list and the arrival statistics information, sequence information and window boundary information in a unified structure are obtained. Accordingly, various original clues are fused into a unified, structured, and structured sequence information and window boundary information data structure that can be directly used for rearrangement control. The data structure combines coarse-grained window boundaries and fine-grained sequence numbers to provide sequencing and advancing basis for subsequent double-layer rearrangement. This step can be implemented in various ways, such as parsing explicit sequence numbers in message extension headers, identifying implicit window boundaries indicated by preset patterns in protocol fields, or inferring virtual sequence numbers based on arrival statistics information when the former two are missing. Specific implementation methods will be described in subsequent embodiments.

[0045] Optionally, sequence information acquisition and consistency labeling are performed, and sequence information and window boundary information for rearrangement control are generated based on the parsed message item list and device-side capability configuration, completing the unified labeling of coarse-grained window boundaries and fine-grained sequence numbers so that they can be directly used by subsequent rearrangement state machines.

[0046] Step S2.3, as a possible implementation, double-layer rearrangement with slice awareness is performed based on the sequence information and window boundary information, and the rearrangement process is adaptively controlled using the arrival statistics information to form an in-sequence deliverable queue.

[0047] Specifically, slice awareness is embodied in the double-layer rearrangement mechanism. On the one hand, at the protocol data unit (PDU) level, messages are sorted in the receive buffer according to the sequence information; on the other hand, at the service data unit (SDU) level, slices belonging to the same upper layer service data unit are aggregated and integrity is determined in the aggregation container according to the Start / End flags of the messages. Only when both the PDU layer sequence is correct and the SDU layer aggregation is complete, can the rearrangement window advance to put the complete SDU into the in-sequence deliverable queue. On this basis, key parameters in the rearrangement process, such as window size and threshold of the timeout reordering timer, are not statically configured, but dynamically adjusted according to the real-time updated arrival statistics information (such as arrival jitter and retransmission round number).

[0048] As another possible implementation, the double-layer rearrangement and adaptive control includes: taking the sequence information and window boundary information as the sorting and advancing reference, processing in parallel on the two channels of PDU layer rearrangement and SDU layer aggregation, and completing the double-layer rearrangement of in-chip consistency and inter-chip order; and adaptively adjusting the window size and timer threshold according to the arrival statistical information to maintain stability under different modulation and coding and retransmission loads.

[0049] Step S2.4, exemplary, extracts data from the in-order deliverable queue, and outputs as an in-order upper-layer service data unit stream.

[0050] The complete, in-order upper-layer service data unit that can be delivered is taken out from the in-order deliverable queue in sequence as the final output stream, and is delivered to the upper-layer application. Further, this step is also responsible for exception handling. For example, when the window times out because of waiting for a certain oldest missing fragment, the adaptive timer triggers an exception advance, and according to the advance result, the data in the window is executed with labeled exception delivery or discard, and the handling process is recorded, so that the delivery process of the system is not blocked for a long time. Before delivery, a legality review can also be added to check the consistency of the candidate SDU and the current rearrangement state variable, for further guaranteeing the correctness of the output.

[0051] Another example, for in-order delivery and exception handling, the following method can be used: the upper-layer service data unit that has met the PDU layer order and the SDU layer completeness is taken out from the in-order deliverable queue in sequence, and is output as an in-order upper-layer service data unit stream; for the window that is still not complete after timeout, according to the timer advance result in the rearrangement state variable set, the labeled exception delivery or discard is executed, and the handling order that minimizes the impact (isolated fragments across windows first, and then large volume incomplete units) is recorded.

[0052] According to an aspect of the present application, a method for GSE packet disorder processing suitable for DVB satellite transmission system, specifically: parsing the input GSE packet stream to generate a packet entry list containing high-precision timestamps, and real-time aggregating arrival statistical information reflecting link dynamic characteristics, such as jitter quantile, round-trip delay and retransmission round number estimation.

[0053] Specifically, based on the above parsing results, through a hierarchical and recursive clue acquisition mechanism, the highest priority explicit sequence number extracted from the packet extension header, the secondary priority implicit window boundary indicated by the preset mode of the protocol field (such as Label reserved bit or Fragment_ID jump), and the virtual sequence number generated based on Bayesian inference in the weak clue scenario are fused, and a unified structure of sequence information is constructed.

[0054] Accordingly, the double-layer rearrangement with awareness of fragmentation is performed. The system maintains a receiving buffer which stores the PDUs in order according to the sequence information, and an aggregation container which aggregates the SDU fragments and determines the completeness of the SDUs. Only when the PDU in the next expected order is in place in the buffer, and the upper-layer SDU to which the PDU belongs is determined to be complete in the aggregation container, the SDU can be moved into the in-sequence deliverable queue, guaranteeing the double constraints of in-sequence at the PDU layer and completeness at the SDU layer. Further, the whole rearrangement process is adaptively controlled. The system uses the arrival statistical information to dynamically calculate the window size and the timeout timer threshold which match the current link state, and realizes the in-sequence recovery with high efficiency, robustness and low delay under complex and changeable satellite links.

[0055] Embodiment three describes the specific implementation process of obtaining the sequence information and the window boundary information in a unified structure, which is as follows:

[0056] Step S3.1, generate the sorting clues from the parsed message entry list and the arrival statistical information via at least two types of information sources; wherein the types of information sources are selected from the group consisting of: explicit sequence numbers extracted from message extension headers; implicit window boundaries indicated by preset patterns of message protocol fields; and virtual sequence numbers inferred based on arrival statistical information. Or, obtain the sorting clues based on at least two types of information sources from the parsed message entry list and the arrival statistical information; wherein the information sources specifically include: explicit sequence numbers directly extracted from the predefined extension headers contained in the GSE message stream; implicit window boundaries indicated by preset patterns of message protocol fields; and virtual sequence numbers inferred based on arrival statistical information. Accordingly, a layered and hierarchical clue acquisition mechanism is established, so that reliable sorting basis can be obtained under different link conditions and device capabilities.

[0057] Among them, the information sources include explicit sequence numbers extracted from message extension headers; they are the highest priority sorting clues. When the GSE message stream contains a predefined extension header, the fine-grained sequence number information can be directly parsed from it. For example, a private type of extension header can be defined in the GSE message header, and its structure can be [type value, length = 2 bytes, sequence number high byte, sequence number low byte]. The receiving end can locate and extract the 16-bit sequence number by identifying the type value, and the modulus of the sequence number is 65536, which can uniquely identify the message in a large range and reduce the frequency and ambiguity of sequence number wraparound. This way provides direct and accurate sequence number information, which is the first choice for sorting.

[0058] Further, the implicit window boundary is indicated by a preset pattern of the message protocol field. The generation of the implicit window boundary comprises: identifying a window boundary signal from the parsed message entry list by at least one of the following ways: detecting a deterministic jump of Fragment_ID field near a preset number boundary; or interpreting reserved bits in Label field as window number according to a preset pattern; and forming the implicit window boundary based on the identified window boundary signal. In other words, the window boundary signal can be identified from the parsed message entry list by detecting a deterministic jump of Fragment_ID field near a preset number boundary, or by interpreting reserved bits in Label field as window number according to a preset pattern; and the implicit window boundary is generated accordingly.

[0059] Correspondingly, when there is no extension header or the extension header cannot be parsed, the system will fall back to detecting the implicit but less costly coarse-grained window boundary signal. Such window boundary does not provide per-message sequence number, but can divide the message stream into several ordered windows or blocks, providing landmark reference for subsequent ordering and advancing.

[0060] In this step, one way to obtain the implicit window boundary is to detect a deterministic jump of Fragment_ID field near a preset number boundary. This way requires the cooperation of the sender and the receiver. The sender can artificially trigger GSE fragmentation operation on a specific traffic flow every time a preset message count value is reached (e.g. every 256 messages), so that the Fragment_ID field of the start piece (Start flag is 1) of the fragment produces a deterministic, non-monotonic jump (e.g. from a value close to 255 to 0). The receiver has made a candidate annotation on the jump of Fragment_ID, and in this step, the candidate annotation will be purified, and only the deterministic jump within a small tolerance range (e.g. ±2 messages) near the preset number boundary will be confirmed as a valid window boundary.

[0061] Another way to obtain the implicit window boundary is to interpret the reserved bits in Label field as window number according to a preset pattern. Correspondingly, the Label field of GSE protocol contains several reserved bits that can be disposed by the system itself. Through the prior agreement between the sender and the receiver, several bits (e.g. 2 bits) can be multiplexed as a cyclically increasing window number (e.g. 00, 01, 10, 11, 00,...). The receiver extracts the window number from the Label field according to the preset pattern when parsing the Label field. When a change in the window number is detected, it indicates the arrival of a new window boundary. Compared with Fragment_ID jump, this way has a more direct signal and does not require triggering fragmentation operation, so it has better universality.

[0062] On this basis, a virtual sequence number inferred based on arrival statistical information is further included. In an extremely weak clue scenario where neither explicit sequence number nor reliable implicit window boundary is available, a virtual sequence number generation mechanism based on Bayesian inference is enabled. This mechanism does not rely on any specific field of the packet content, but analyzes the behavioral characteristics (such as arrival time, length variation law) of the packet to perform statistical sorting.

[0063] Specifically, the virtual sequence number is inferred, including: for the parsed packet entry list, a plurality of candidate sequence hypotheses are established and maintained. The system will initialize no more than three parallel candidate hypotheses. Each hypothesis represents a possible prediction of the sequence of future packets. For example, hypothesis 1 predicts that the sequence number of the next packet is N, hypothesis 2 predicts that it is N+1 (a packet loss may have occurred), and hypothesis 3 predicts the beginning of a new window. Each hypothesis is assigned a corresponding prior probability. If there is ambiguous window boundary information from other sources, this information can be used as a strong prior to improve the accuracy of the initial hypothesis.

[0064] Further, at least one of the arrival time interval distribution in the arrival statistical information and the packet length transition probability and the Label transition probability counted from the parsed packet entry list is used to construct a likelihood function for each candidate sequence hypothesis; wherein the Label is a component of the GSE packet stream.

[0065] The likelihood function is used to evaluate how much probability a newly arrived packet conforms to a certain hypothesis; it is the product of a plurality of probability models, for example, the arrival time interval likelihood (f _dt ) is based on the statistical arrival interval distribution (which can be fitted as a lognormal distribution), to calculate the probability that the arrival time interval of the new packet conforms to the time interval predicted by the hypothesis. The packet length transition likelihood (f _len ) is based on the statistical packet length transition matrix (first-order Markov model), to calculate the probability that the length of the new packet appears immediately after the length of the previous packet. The Label transition likelihood (f _lab ) is also based on the transition matrix of the Label field value, to calculate the probability that the Label value of the new packet appears. Accordingly, the total likelihood value L of the new packet is L=f _dt *f _len *f _lab .

[0066] Further, a Bayesian inference method is used to update the posterior probability of each candidate sequence hypothesis in combination with the likelihood function. According to Bayes' theorem, the posterior probability Post _i of each hypothesis is proportional to the product of its prior probability Prior _i and the likelihood value L _i (Post _i ∝Prior_i *L _i ) ; wherein i denotes the i-th candidate hypothesis. After computing the posterior probabilities of all hypotheses, normalization is performed so that their sum is 1. Further, to control the computational complexity, hypotheses with posterior probabilities lower than a certain pruning threshold (e.g. 0.05) are discarded. Based on the posterior probabilities, the virtual sequence number and the corresponding confidence are determined.

[0067] When the posterior probability of a hypothesis exceeds a higher confirmation threshold (e.g. 0.95), the hypothesis is determined to be winning, and the system adopts the sequence corresponding to the hypothesis, outputs the virtual sequence number and its confidence (i.e. the posterior probability value). If the posterior probabilities of all hypotheses do not reach the confirmation threshold, the system can select the hypothesis with the highest posterior probability, but will also label a delayed submission prompt, informing the subsequent reordering module to hold a reserved attitude towards the order of this packet, and to wait for more evidence.

[0068] Step S3.2, fuse the ordering clues, construct the sequence information and window boundary information in a unified structure; for making various sources of clues of different granularities work together. Specifically, set priorities for the types of information sources, wherein the priority of explicit sequence numbers is higher than that of implicit window boundaries, and the priority of implicit window boundaries is higher than that of virtual sequence numbers. When the ordering clues provided by different information sources conflict, arbitrate according to the priorities, select the ordering clue with higher priority, and generate a conflict rollback record. That is, the priority order of information sources is: explicit sequence number > implicit window boundary > virtual sequence number; when the ordering clues conflict, select the ordering clue with higher priority and generate a conflict rollback record.

[0069] For example, if the window number parsed from the Label field indicates that it is currently window 3, and the result of the Fragment_ID jump detection indicates that it is the beginning of window 4, the system will adopt the result of Label, and generate a conflict rollback record. This record will be used as a conservative signal by the adaptive control module, which may temporarily increase the receive window or extend the timer threshold to cope with the uncertainty of the network.

[0070] Optionally, the arbitrated ordering clues are aligned and integrated to finally form the sequence information and window boundary information in a unified structure. Regardless of the combination and arbitration, the final output is always a data object with a unified structure. In this object, if there is an explicit sequence number, it is used as the primary ordering key; if not, the virtual sequence number and its confidence are used as the primary; in all cases, the most reliable window boundary information is retained as auxiliary. The design of this kind of unified structure makes the subsequent reordering module not need to care about the specific source of the sequence information, simplifying the system design.

[0071] Optionally, in a preferred embodiment, to reduce the computational overhead, the computationally intensive multi-hypothesis Bayesian inference mechanism can be enabled only in poor network conditions with high packet loss or strong out-of-order. In normal network conditions, the system can rely on the explicit sequence number and implicit window boundary information with lower computational cost, achieving a dynamic balance between performance and overhead.

[0072] According to an aspect of the present application, the embodiment can also be implemented by using sequence information acquisition and consistency marking, and the specific steps are as follows:

[0073] Step S3.31, read the parsed message entry list and compare the device side capability configuration to determine whether to enable the extended header carrying sequence number, Label field reserved bit multiplexing window number, CRC last bit implicit window heartbeat mode, and output the sequence acquisition mode selection flag.

[0074] Step S3.32, use the Start / End and Fragment_ID in the parsed message entry list to establish a fragmented upper layer service data unit aggregation identifier (SDU aggregation identifier), and extract coarse-grained window boundaries by the following two methods: detecting the deterministic jump of Fragment_ID at each pre-designed boundary (such as every 256 messages) as a window boundary marker; and interpreting the reserved bits as window numbers and forming window boundary markers according to the agreed parity identification mode in the Label field. The above results are uniformly output as window boundary information associated with the SDU aggregation identifier.

[0075] Step S3.33, when the extended header carries the sequence number, parse the two-byte extended sequence number to generate fine-grained sequence number information; if the extended header is missing or the signal-to-noise ratio is poor, perform statistical inference based on the arrival time interval distribution, message length transition probability and Label transition probability, maintain no more than three parallel hypotheses and output the virtual sequence number and confidence. When both the window boundary information and the fine-grained sequence number information are available, a unified mapping of window first and then sequence number is established; when only the window boundary information is available, a local relative sequence number is given within the window; when only the virtual sequence number and the confidence are available, a sequence number marked with confidence is output for the reordering state machine to adopt a differentiated strategy.

[0076] In some embodiments, step S3.32 can also be: periodically manipulating the allowed padding domain on the sending side to make the last 4 bits of the CRC present a target pattern; and performing sliding statistics on the parsed message entry list on the receiving side to obtain window boundary information for fallback when fine-grained sequence number is missing.

[0077] In other embodiments, step S3.33 can also be: only enable multi-hypothesis statistical inference in high packet loss or strong out-of-order, and otherwise rely on the extended header sequence number as the main and the window boundary as the auxiliary to reduce the computational overhead.

[0078] According to another aspect of the present application, sequence information acquisition and consistency marking can also be used for:

[0079] Accordingly, according to the extended header mark in the parsed message entry list and the device side capability configuration, an extended header availability flag is output. According to the device side capability configuration and the operation strategy, it is determined whether to enable the Label reserved bit to carry the window number, and a strategy flag of whether to enable the Label reserved bit to carry the window number is output. The link error rate and whether the adjustable padding field meets the embedding code requirement are evaluated, and a CRC implicit heartbeat enable flag is output. From the above, a sequence acquisition mode selection flag and a priority table (priority order: extended header sequence number > Label window number > fragmentation jump > CRC implicit heartbeat > statistical virtual sequence) are generated for subsequent calling.

[0080] Further, using the fragmentation flag and length field in the parsed message entry list and the fragmentation consistency mark in the parsed message entry list, a unique aggregation identifier is established for each upper layer service data unit, and an upper layer service data unit aggregation identifier is output. Threshold determination is performed on the window boundary candidate mark list (for example, confirming the deterministic jump within the range of message count boundary ± 2), and the first source of window boundary information is obtained. When the strategy flag of whether to enable the Label reserved bit to carry the window number is true, the window number is extracted from the Label field content in the parsed message entry list, and compared with the above window boundary information result; if there is a conflict, the priority table is used to retain the trusted source and record the conflict fallback record, and the second source of window boundary information is supplemented. Align the above obtained all window boundary marks with the upper layer service data unit aggregation identifier, and output the aligned window boundary information.

[0081] In another embodiment, if the CRC implicit heartbeat enable flag is true, the last 4 bits of CRC are counted every 16 messages, and the window boundary information is directly generated and participates in alignment.

[0082] Optionally, when the extended header availability flag is true, the extended sequence number is located from the extended header mark in the parsed message entry list, the length and the check code are checked, and the fine-grained sequence number information (modulo length 65536) is output. When the explicit sequence number is missing or its quality is poor, based on the arrival time sequence, the arrival jitter high quantile in the arrival statistical information, and the Label field content, no more than 3 hypotheses are established, the posterior probability of each hypothesis is calculated, and the virtual sequence number and the confidence are output.

[0083] The fine-grained sequence number information and the virtual sequence number and the confidence are mapped to the aligned window boundary information to construct unified sequence information and window boundary information (unified structure): if the explicit sequence number exists, it is the main one; otherwise, the virtual sequence number and the confidence are the main ones; in all cases, the window boundary is retained. When there is only aligned window boundary information, a window-in relative sequence number set is generated according to the in-window arrival order and the slice position.

[0084] In another embodiment, the multi-hypothesis statistical inference is enabled only under high out-of-order or high packet loss conditions; the fine-grained sequence number information and the aligned window boundary information are relied on under normal conditions.

[0085] Embodiment four provides an optional implementation scheme for obtaining an implicit window boundary, including:

[0086] Step S4.1, the last several bits of the CRC check code of each message in the parsed message entry list are executed for sliding statistics. Correspondingly, the receiving end can access the cyclic redundancy check code (CRC) field of the GSE message (or the underlying baseband frame), and the sending end has the ability to manipulate several bits (such as a legal padding domain) within the CRC coverage without changing the upper-layer service semantics. Specifically, the receiving end sets the length of the statistical sliding window, for example, 16 messages, and continuously pays attention to the last several bits of the CRC check code of each message, for example, the last 4 bits.

[0087] Step S4.2, the mode presented by the mode is extracted from the result of the sliding statistics. Specifically, within the sliding window, the receiving end calculates the mode of the last 4 bits of the CRC of 16 messages, that is, the value with the most occurrences. For example, if the last 4 bits of the CRC of 16 messages in the window are mostly 0010, then the mode is 0010.

[0088] Step S4.3, the change of the mode or the value itself is used as a window heartbeat signal, and the implicit window boundary is formed according to the window heartbeat signal. Further, the sending end can calculate and fill the correction byte so that the final whole packet CRC value meets the check correctness while the last 4 bits present the target mode preset by the sending end. This target mode can be designed to change synchronously with the window number. For example, in all messages within window 1, the sending end tries to make the last 4 bits of the CRC as 0001; in window 2, it tries to make it as 0010, and so on. Next, the sliding mode calculated by the receiving end will be equal to the current window number stably. When the receiving end detects that the sliding mode jumps from one stable value (such as 0001) to another stable value (such as 0010), it is equivalent to receiving the heartbeat signal marking the window switching, and thus a reliable implicit window boundary can be formed.

[0089] Further, to ensure the robustness of the method, the window boundary information obtained from the CRC heartbeat method is accompanied with a confidence level. This information is cross-checked with the window information from other methods (e.g. Label multiplexing or Fragment_ID hopping). If a conflict occurs, e.g. the CRC method indicates a window switch while the window number in the Label field does not change, the confidence level of the CRC method is reduced or it is downgraded to a reference only, so that the decision of the whole system is not misled by a single, possibly misjudging, source.

[0090] Embodiment five, preferred technical solution of the double-layer rearrangement mechanism with awareness of fragmentation; make GSE packets can be correctly processed in both dimensions of fragmentation and out-of-order.

[0091] Before performing the double-layer rearrangement, the system needs to initialize the necessary data structures and state variables. Among them, the receiving PDU buffer, the buffer created by the system to cache the out-of-order arriving GSE PDUs. This buffer is not a simple first-in-first-out queue, but an ordered data structure that can be efficiently inserted and retrieved according to the sequence information, such as skip list or balanced binary tree. Its index key is directly derived from the sequence information and window boundary information of the unified structure.

[0092] SDU aggregation container, the container created by the system to reassemble upper layer service data unit fragments. This container can be a hash table or dictionary structure. Its key value is a unique upper layer service data unit aggregation identifier established for each SDU (e.g. can be composed of service flow ID and Fragment_ID of the first fragment of the SDU). Its value is a data structure for storing all the fragment data of the SDU that has arrived, recording the aggregation state of the SDU (e.g. fragment bitmap received, whether the End fragment has been received, etc.).

[0093] Rearrangement state variable, initialize the pointer for managing the rearrangement window, for example, the receiving rearrangement lower pointer (pointing to the earliest PDU sequence number expected to be received) and the receiving rearrangement upper pointer (calculated dynamically according to the adaptive window size, defining the upper limit of the sequence number of the received PDU).

[0094] On this basis, the double-layer rearrangement step with awareness of fragmentation specifically includes:

[0095] Step S5.1, in the receiving PDU buffer, the arriving protocol data units PDU are sorted according to the sequence information and the window boundary information. When a new GSE PDU arrives, the system uses the uniform sequence information (either the explicit 16-bit sequence number, or the virtual sequence number with confidence) as the sorting basis, and inserts the PDU into the correct position in the receiving PDU buffer. If the sequence number of the PDU is within the valid receiving window currently bounded by the lower edge pointer and the upper edge pointer, the insertion operation is performed; if the sequence number is ahead of the window, it is temporarily stored or discarded according to the strategy; if the sequence number is behind the window, it is usually discarded directly. This step is used to maintain the ordered message sequence view at the PDU (i.e. GSE message) level, and solves the first level of the out-of-order problem.

[0096] Step S5.2, in the service data unit SDU aggregation container, the PDU fragments belonging to the same upper layer service data unit are aggregated, and the integrity of the upper layer service data unit is determined. While inserting the PDU into the receiving buffer, the system will perform the aggregation operation of the SDU in parallel. The system will extract the upper layer service data unit aggregation identifier to which the PDU belongs from the PDU, and use the identifier to find the corresponding entry in the SDU aggregation container. After finding, the content of the PDU (as a fragment) is added, and the aggregation state of the SDU is updated. For example, the system will check whether the PDU is a start fragment (Start flag is 1) or an end fragment (End flag is 1), and determine whether the SDU has been received completely according to the total number of fragments and the list of received fragments. The condition for the SDU to be determined as complete is that both the start fragment and the end fragment have arrived, and there is no missing fragment in between. This step maintains the integrity of the data at the SDU (i.e. upper layer service data) level, and solves the second level of the out-of-order problem, i.e. fragment recombination.

[0097] Step S5.3, the rearrangement window is advanced, and the complete upper layer service data unit is moved into the in-sequence deliverable queue, only when the next expected sequence PDU has been in place in the receiving PDU buffer, and the upper layer service data unit to which the PDU belongs has been determined as complete in the SDU aggregation container. That is, only when both conditions are met, the rearrangement window is advanced and the complete upper layer service data unit is moved into the in-sequence deliverable queue; the two conditions are that the expected PDU already exists in the receiving PDU buffer, and the status of the SDU to which the PDU belongs has been marked as complete.

[0098] Further, the two conditions of in-sequence at the PDU level and complete at the SDU level are ANDed as the only criterion for advancing the delivery process. Specifically, the system will continuously monitor the expected PDU with the smallest sequence number pointed to by the receiving rearrangement lower edge pointer.

[0099] Among them, condition one (PDU layer in order), check whether the expected PDU already exists in the receiving PDU buffer. Condition two (SDU layer complete), if condition one is satisfied, further to the SDU aggregation container to query the status of the PDU belongs to the SDU, judge whether it has been marked as complete. Only when the two conditions are met at the same time, the system will perform the delivery operation: the complete SDU is taken out from the aggregation container, put into the in-order deliverable queue, at the same time, remove all PDU fragments constituting the SDU from the PDU buffer, and move the receiving rearrangement lower pointer forward to the next unprocessed sequence number. This kind of double condition gating mechanism avoids the two errors that may occur in the traditional single layer rearrangement mechanism: one is that even if all fragments of the SDU have arrived (that is, the SDU is complete), the system will not mistakenly deliver it in advance if it is not the next expected to arrive in the PDU sequence, ensuring the strict timing between SDUs; The second is that even if the PDU is the next expected to arrive in the sequence, the system will not deliver the incomplete data unit if the SDU belonging to it still has fragments not arrived (that is, the SDU is not complete), ensuring the availability of the delivered data.

[0100] Embodiment six, provide a specific implementation scheme of adaptive control process, which makes the rearrangement mechanism can intelligently adapt to the dynamic change of satellite link characteristics. As a possible implementation, it is specific to:

[0101] Step S6.1, use the arrival statistical information to dynamically calculate the window size of the adaptive control of the rearrangement process. In other embodiments, according to the arrival jitter high quantile and the average retransmission round number estimate contained in the arrival statistical information, the window size is dynamically calculated. Among them, the average retransmission round number estimate and the round-trip delay high quantile can be obtained by the following method: analyzing the message arrival time sequence in the arrival statistical information to identify the burst interval feature, scanning the parsed message entry list to identify the repeated message feature; combined with the burst interval feature, the repeated message feature, and the baseband frame period estimate already contained in the arrival statistical information, the average retransmission round number estimate and the round-trip delay high quantile are jointly estimated. That is, by analyzing the message arrival time sequence to identify the burst interval feature (usually related to retransmission), scanning the message entry list to identify the repeated message feature, and combining the baseband frame period estimate, the result is jointly estimated. And the arrival jitter high quantile is obtained by statistical analysis of the message arrival time interval (such as calculating the 95th quantile). Correspondingly, the calculation of the window size can use the following formula:

[0102] window _unbounded =α _jit *D _p95 +α _harq *N _retx *PDU _per_frame W _size= round(min(max(window _unbounded , W _min ), W _max ));

[0103] wherein, window _unbounded : represents the unconstrained theoretical window size; a _jit : represents the arrival jitter impact coefficient, which is a dimensionless weight, for example, the value range is between 0.8 and 1.5; D _p95 : represents the 95th percentile statistical value of the arrival jitter time, in milliseconds; a _harq : represents the HARQ retransmission impact coefficient, which is a dimensionless weight, for example, the value range is between 1.0 and 2.0; N _retx : represents the estimated average retransmission round number; PDU _per_frame : represents the average number of PDUs carried in the baseband frame; W _size : represents the final constrained actual window size, which is an integer; W _min , W _max : represent the preset lower limit and upper limit of the window size, respectively, for example, the lower limit is 32 and the upper limit is 1024, so as to prevent unnecessary discarding caused by too small window or too much memory consumption caused by too large window. When the link jitter is severe (D _p95 is large) or the retransmission is frequent (N _retx is high), the range and depth of packet reordering will increase, and therefore the system should actively expand the receive window (W _size increases) to accommodate the packets that may be delayed to arrive. Conversely, when the link is stable, the window should be reduced to reduce the cache delay and memory occupation.

[0104] Further, the window size calculated dynamically is used to update and constrain the double rearrangement process of the fragmentation awareness. The calculated W _size is immediately used to update the rearrangement state variables, which is specifically represented as updating the position of the receive rearrangement upper edge pointer (upper edge = lower edge + W _size ); it belongs to the feedback regulation link, so that the boundary of the rearrangement mechanism always matches the current network state.

[0105] Step S6.2, adaptively control the rearrangement process by using the arrival statistical information, and perform timer threshold self-tuning. In some embodiments, the round-trip delay high percentile in the arrival statistical information, the baseband frame period estimation and the average retransmission round number estimation are comprehensively used to determine the timer reorder threshold. In other words, the timer reorder threshold is obtained based on the arrival statistical information; wherein the arrival statistical information at least includes the round-trip delay (RTT) high percentile, the baseband frame period estimation and the average retransmission round number estimation. Accordingly, the threshold is used as the basis for determining whether the oldest PDU missing should be identified as timeout, and the determination formula can be:

[0106] T _reordering =β _rtt *RTT _p95 +β _bb *T _frame +β _harq *N _retx *T _frame ;

[0107] wherein T _reordering denotes the timer reordering threshold, in milliseconds; β _rtt , β _bb , β _harq denote the weighting coefficients for the round-trip delay RTT, the baseband frame period and the HARQ retransmission, respectively, for example, taking values in the range 0.5 to 1.2; RTT _p95 denotes the 95th percentile statistic of the round-trip delay; T _frame denotes the estimated baseband frame period.

[0108] On this basis, at least one of the high quantile of the round-trip delay, the baseband frame period estimation and the average retransmission round number estimation in the arriving statistics is evaluated for its statistical confidence interval. And, in the determination of the threshold, the weighting coefficients used to combine the statistics are dynamically adjusted according to the width of the confidence interval, wherein a wider confidence interval corresponds to a more conservative weighting coefficient; to further improve the reliability of the threshold.

[0109] For example, the actually used weighting coefficient β _eff may be β _base *(1+C _amp *CI _width ); wherein β _base is the base coefficient value, CI _width is the normalized width of the confidence interval of the corresponding statistic, and C _amp is the amplification factor; when the statistical value is unstable and the confidence interval is wide, CI _width increases, so that the effective coefficient β _eff also increases, and a longer and more conservative T _reordering threshold is calculated; the reasonable time length for waiting for missing packets should be slightly longer than the latest time it can arrive after one or more retransmissions. This time is directly related to the round-trip delay and the number of retransmissions of the link. This method dynamically adjusts the timer by real-time statistics of such parameters, avoiding the problem of static timer expiring too early when the link deteriorates, or waiting too long when the link is good. The adjustment of the confidence interval is to increase the safety margin when the statistical data itself is unreliable, to prevent false judgments due to false statistical estimates.

[0110] Further, the timer reordering threshold is used as a criterion to trigger abnormal advance in the double-layer reordering process due to the oldest gap timeout. In the reordering process, if the waiting time of the oldest missing PDU pointed by the reception reordering lower pointer exceeds the T _reordering threshold dynamically calculated in this step, the system will trigger abnormal advance, the specific handling mode of which will be described in subsequent embodiments.

[0111] As another possible implementation, the double-layer reordering and adaptive control can also include the following steps:

[0112] Step S6.31, establish a reception PDU buffer and an SDU aggregation container; map the sequence information and window boundary information into the ordering key of the PDU layer; initialize the reception reordering lower pointer, the reception reordering unknown pointer and the reception reordering upper pointer, and give the modulo counting rule of sequence comparison and the initial window size and initial timer reordering threshold.

[0113] Step S6.32, write the arriving PDU into the reception PDU buffer and sort it in the current window according to the sequence information and window boundary information; at the same time, aggregate the same upper layer service data unit in the Start / End pair in the SDU aggregation container and perform integrity judgment. Only when the PDU layer order is complete and the SDU layer integrity is satisfied, advance the boundary pointer in the reordering state variable set and add the upper layer service data unit to the in-sequence deliverable queue.

[0114] Step S6.33, calculate the high quantile of arrival jitter, estimate the average retransmission round number and baseband frame interval according to the arrival statistical information, update the window size and timer threshold; use the modulo counting comparison rule to handle sequence wraparound and avoid misjudging the wraparound as reverse order; when the oldest gap waiting time reaches the self-tuning threshold, trigger timeout advance to make delivery not be blocked for a long time. Correspondingly, the window size = constraint function (coefficient _到达抖动 × high quantile of arrival jitter + coefficient _重传强度 × retransmission round number estimate, lower limit, upper limit); the timer reordering threshold = coefficient _往返延迟 × round-trip delay high quantile + coefficient _帧周期 × frame period estimate + coefficient _重传强度 × retransmission round number estimate. Write the updated results back to the reordering state variable set and the comparison rule for guiding subsequent ordering and advance.

[0115] Step S6.34, when the reception PDU buffer approaches the upper limit of the capacity, implement differentiated discard by comprehensively considering the retransmission depth estimate of each PDU, the waiting time ratio and the size priority of the corresponding upper layer service data unit, preferentially remove isolated fragments that cross the window and are difficult to complete, ensure the continuous advance of the in-sequence deliverable queue and avoid the out-of-control of the buffer peak; the handling result is synchronized to the reordering state variable set.

[0116] According to an aspect of the present application, step S6.33 can also be: when only window boundary information is available and fine-grained sequence number is absent, a hybrid advancing rule of relative position within window + waiting time threshold is adopted; when virtual sequence number and confidence are available, entries with confidence lower than a threshold are delayed, and entries with high confidence are advanced to in-sequence deliverable judgment, and stable delivery is maintained in weak sequence information scenarios.

[0117] Embodiment seven describes the robustness design of PDU ordering in handling specific scenarios such as sequence number wraparound and weak sequence information. Details are as follows:

[0118] An example, in the processing scenario of sequence number wraparound, in a system with limited sequence number (SN) space (for example, when 16-bit SN is used, the modulus sn_mod is 65536), the sequence number will periodically wrap around from the maximum value (65535) to the minimum value (0); this brings ambiguity to sequence comparison. For example, a new packet with SN 10 and an old packet with SN 65530, simple numerical comparison will lead to a wrong conclusion.

[0119] To solve this problem, the embodiment uses the following method: apply the modulo counting comparison rule to define the wraparound neighborhood adjacent to half of the sequence number modulo value. Specifically, when judging the order of two sequence numbers SN_A and SN_B, modulo arithmetic is used for comparison. Calculate the difference d = (SN_A-SN_B+sn_mod)mod sn_mod. If 0<d<sn_mod / 2, then SN_A is determined to be after SN_B. This rule is effective in most cases. In the extreme case where the degree of disorder is close to half the size of the window, this rule may fail.

[0120] To this end, the method defines a wraparound neighborhood, which is an ambiguous area that needs additional arbitration. The width of this neighborhood can be determined according to the current adaptive window size W _size Dynamic setting, for example, the neighborhood threshold wrap _guard Can be set to max(4, floor(W _size *0.05)). When the calculated difference d falls within this neighborhood, for example, d is in the interval [0, wrap _guard ) or (sn_mod-wrap _guard , sn_mod), the auxiliary criterion is started.

[0121] On this basis, when the sequence number difference of the two PDUs to be compared falls into the wraparound neighborhood, then the confidence of the window boundary information in the uniform structure of the sequence information and the window boundary information, or the virtual sequence number, is introduced as an auxiliary criterion to arbitrate the sequence relationship thereof. When entering the ambiguous arbitration process of the wraparound neighborhood, the system makes a decision by comprehensively considering one or more auxiliary information: on the one hand, the window boundary information is checked to determine whether the two PDUs fall within the same window. If they belong to the same window, the result of the modulo arithmetic comparison is probably reliable; if they belong to different windows, the sequence relationship of the messages can be directly determined according to the order of the windows. On the other hand, the confidence of the virtual sequence number is used as a decision weight, wherein the sequence relationship indicated by the virtual sequence number with a confidence higher than a preset threshold is given a higher decision priority. For example, when arbitrating the relationship between SN_A and SN_B, if SN_A is a virtual sequence number with a confidence of 0.98 and the confidence of SN_B is only 0.7, the system will preferentially adopt the sequence relationship indicated by SN_A. As another aspect, the message waiting time is used as a heuristic rule, and the message that has been waiting in the receiving buffer for a longer time is more likely to be an earlier message. Through the mechanism of the normal comparison + multi-source arbitration in the neighborhood, the accuracy of the ordering near the wraparound point of the sequence number is improved, and the processing under various degrees of disorder is robust.

[0122] In another example, in the rollback ordering scenario in the weak sequence information scenario, under certain implementation manners or network conditions, it can be impossible to obtain the explicit or virtual sequence number with fine granularity, and only the window boundary information with coarse granularity can be obtained. For this case, when the sequence information and the window boundary information lack the sequence number with fine granularity, the embodiment further includes the following ordering step:

[0123] Step S7.1, for each PDU in the same window in the receiving PDU buffer, a window-in relative sequence number is generated according to the arrival order thereof. Specifically, when a new PDU arrives, the system classifies it into the corresponding window according to its window boundary information (for example, the window number parsed from the Label field). Inside the window, the system assigns a monotonically increasing window-in relative sequence number to the PDU according to its physical arrival time. For example, the first PDU to arrive in window N has a relative sequence number of 1, the second has a relative sequence number of 2, and so on.

[0124] As an optional implementation manner, in order to guarantee the absolute order between the windows, the system can use a two-level ordering key of the window number + the window-in relative sequence number. This makes any message in window N+1 necessarily after all the messages in window N, regardless of how early it arrives.

[0125] Step S7.2, combine the relative sequence number within the window with the waiting duration of the PDU to calculate the combined ranking score. Specifically, only relying on the arrival order can cause misjudgment on the link with larger jitter. In order to optimize the ranking, the system will calculate the dynamic combined ranking score for each PDU within the window. The score function can be designed as:

[0126] Score = W _pos *Rel _Seq_Num +W _wait *Waiting _Time ;

[0127] Wherein, Score is the combined ranking score, the smaller the score, the more priority (closer to the front) of the message; W _pos , W _wait : are the weight coefficients of the relative sequence number and the waiting duration, respectively, which can be adjusted according to the statistical characteristics of the link; Rel _Seq_Num : is the relative sequence number within the window; Waiting _Time : is the duration that the PDU has been waiting in the buffer since the arrival time.

[0128] Step S7.3, reorder the PDUs within the same window according to the combined ranking score. Correspondingly, the system will periodically or when a new message arrives, reorder all PDUs within the same window according to the latest score. This mechanism makes the ranking decision no longer static, but dynamic evolution: when the message arrives, its ranking is mainly determined by Rel _Seq_Num ; but as time goes on, the weight of Waiting _Time will gradually increase, so that the message which is actually in the front of the sequence but arrives late due to network jitter will gradually float to the front of the ranking queue.

[0129] Further, in the weak sequence scenario with only window boundary information, an adaptive timer can introduce an additional penalty mechanism, for example, increase the threshold value by the relative position penalty item within the window. For the PDU with a late relative sequence number within the window, its timeout tolerance will be lower. The gap at the tail of the window is used to avoid long waiting in the case of uncertain sequence information.

[0130] Embodiment eight provides a specific implementation of a differentiated discard and exception handling mechanism under cache constraints, to ensure the stable operation of the system when the cache resources are limited and the network appears unresolvable packet loss.

[0131] On the one hand, when the link quality deteriorates seriously, causing severe out-of-order and retransmission, the receiving PDU buffer may face the risk of being filled. In order to avoid indiscriminate packet loss and service interruption due to buffer overflow, the method introduces an active differentiated discard strategy aimed at minimizing the impact on in-order delivery.

[0132] Accordingly, after parsing the incoming GSE packet stream, PDUs determined to be unable to be reassembled due to not satisfying the preset fragment consistency rule are classified into the abnormal fragment candidate list. And in the step of performing differentiated discard, the PDUs in the abnormal fragment candidate list are given the highest discard priority. In other words, after parsing the incoming GSE packet stream, PDUs determined to be unable to be reassembled (not satisfying the preset fragment consistency rule) are classified into the abnormal fragment candidate list; when further performing differentiated discard, the discard priority of the PDUs is set to the highest. For example, there is no intermediate or end fragment corresponding to the start fragment, and a complete SDU cannot be formed, so it is put into this list in advance as the highest priority discard object.

[0133] When the buffer occupancy rate exceeds the preset high water level threshold (for example, 80%), the differentiated discard mechanism is activated. That is, when the buffer of the received PDU buffer is close to the upper limit, differentiated discard is performed, and the specific steps are as follows:

[0134] Step S8.1, considering the retransmission depth estimation from the arrival statistical information, the waiting time of the PDU itself, and the size of the upper layer service data unit to which it belongs, the discard priority of each PDU in the received PDU buffer is calculated. Accordingly, the system calculates the priority score Priority _Score for each PDU in the buffer. The lower the score, the greater the probability of being discarded. An exemplary score function is:

[0135] Priority _Score = w _harq *(1-N _retx_norm )+ w _wait *(1-T _wait_ratio )+ w _sdu *(1-SDU _size_rank );

[0136] where w _harq , w _wait , and w _sdu are weight coefficients of each factor; N _retx_norm is the normalized value of the estimated retransmission round number of the PDU. The more the number of retransmissions of a packet, the more the sending end is trying to make it arrive, and the more valuable it is, and the priority score should be higher. T _wait_ratio is the ratio of the waiting time of the PDU to the timeout threshold of the window to which it belongs. The longer the waiting time of a packet, the closer it is to being timed out, and the greater its uncertainty, and the priority can be appropriately reduced. SDU _size_rankis the normalized rank of the size of the SDU to which the PDU belongs (total number of fragments). One optional strategy is to preferentially preserve fragments of large data units, since discarding one fragment of a large data unit can result in loss of the entire large data unit.

[0137] Step S8.2, based on the discard priority, preferentially removing PDUs that contribute the least to in-order delivery, such as orphan fragments across windows. In other words, the discard decision is performed based on the priority score, in combination with the structural position of the PDU.

[0138] Accordingly, all PDUs in the list of exceptional fragment candidates are unconditionally discarded. Next, based on the Priority _Score PDU are discarded in order from low to high. In some scenarios, the lowest scoring PDU is an orphan fragment across windows, i.e., its sequence number is far beyond the upper edge of the current receive window, and no other fragments of its SDU have arrived. Discarding such a PDU has little impact on in-order delivery of the current window. In a preferred embodiment, when the buffer pressure is extremely high (e.g., occupancy rate exceeds 95%), the system can switch to a minimal impact delivery priority strategy. This strategy temporarily freezes the processing of windows that have many missing fragments and are difficult to complete in the short term, and concentrates all buffer and computing resources to ensure that windows that are nearly complete can be delivered smoothly, sacrificing the local in extreme cases to preserve the overall.

[0139] On this basis, after each execution of the discard operation, the system synchronously corrects the state in the SDU aggregation container and rearranges the state variable, for maintaining consistency of the internal data of the system.

[0140] On the other hand, when the waiting time of the oldest missing PDU (i.e., the oldest gap) exceeds the dynamically calculated timer threshold, the system triggers passive exception handling. Specifically, when exception advancement is triggered due to timeout of the oldest gap, the exception handling includes: identifying and preferentially releasing upper-layer data units whose own fragments have been aggregated completely but are blocked from delivery only because of the existence of the oldest gap. In other words, the system does not give up all data after the oldest gap because of the timeout of the gap. Instead, the system skips the gap and advances the lower edge pointer of the rearrangement window, and checks the PDU immediately following it. If the SDU to which the PDU belongs is complete in the aggregation container, the SDU is released and delivered to the upper layer (which can be accompanied by a marker indicating that there is data loss before it). This step is used to maximize data throughput and avoid head-of-line blocking problems, so that a single unrecoverable packet loss does not permanently hinder the delivery of all subsequent data.

[0141] On this basis, regardless of normal delivery, exception delivery, or discard, after all processes are completed, the system can also perform a result consistency check to verify the orderliness of the output stream and the correctness of the state variable, to achieve clean closure of the processing batch.

[0142] Embodiment Nine, provide specific reproducible numerical calculation cases, a plurality of algorithms in the foregoing embodiments (especially adaptive timer calculation, Bayesian virtual sequence number inference and exception handling) are connected in series to describe the cooperative working manner and technical effect in actual scenarios.

[0143] Specifically, assume that a GSE receiving end deploying the method of the present application has the following part of initial configuration parameters: window size lower limit W _min = 32; window size upper limit W _max = 1024. The basis weighting coefficient for timer threshold calculation is: β _rtt = 1.0; β _bb = 0.8; β _harq = 1.0. The confirmation threshold for Bayesian inference is 0.95, and the pruning threshold is 0.05.

[0144] At a certain moment, the state of the receiving end and the observed link statistical information are as follows: the lower pointer of the current rearrangement window (i.e. the oldest gap) points to sequence number SN = 100. The PDU of SN = 101, SN = 103, SN = 102 that arrived out of order has been stored in the receiving buffer. The arrival statistical information shows: round-trip delay 95 percentile; RTT _p95 = 550 milliseconds; baseband frame period estimation T _frame = 20 milliseconds; average retransmission round estimation N _retx = 1.5 rounds. Since the statistical sample of RTT _p95 is not large, the confidence interval is wide, so a conservative confidence interval amplification factor = 0.2 is given.

[0145] According to the adaptive control mechanism, the system needs to calculate the dynamic timeout threshold for the oldest gap SN = 100. Since the confidence interval of RTT estimation is wide, the weighting coefficient of RTT is adjusted to increase the safety margin. β _rtt_eff = β _rtt *(1 + confidence interval amplification factor) = 1.0*(1 + 0.2) = 1.2. Substitute the adjusted coefficient and other statistical quantities into:

[0146] T _reordering = β _rtt_eff *RTT _p95 + β _bb *T _frame + β _harq *N _retx *T _frame= 1.2*550ms + 0.8*20ms + 1.0*1.5*20ms = 660ms + 16ms + 30ms = 706ms; the calculation result shows that the system will wait for 706 milliseconds for the missing SN = 100. If the PDU does not arrive within this time, an abnormal advance will be triggered.

[0147] Further, the Bayesian inference on the PDU without explicit sequence number shows that a new PDU without extension header arrives in the process of waiting for SN = 100. Its previous confirmed PDU is SN = 103. The system needs to determine its virtual sequence number according to the Bayesian inference method.

[0148] The system establishes two main candidate hypotheses: hypothesis H1, the PDU is the next message immediately following SN = 103, that is, its virtual sequence number should be 104. Given its higher prior probability Prior(H1) = 0.8. Hypothesis H2, one message is lost between SN = 103 and the PDU, that is, its virtual sequence number should be 105. Given its lower prior probability Prior(H2) = 0.2. The system analyzes the behavior characteristics of the new PDU. It is measured that the arrival time interval with SN = 103 is 22 milliseconds, which is very close to T _frame (20 milliseconds). Therefore, its arrival time interval likelihood f _dt (H1) conforming to H1 (no packet loss) is high, for example, 0.9; while the likelihood f _dt (H2) conforming to H2 (with packet loss, should have a larger interval) is low, for example, 0.3.

[0149] Assuming that the message length conforms to the historical transition probability, similar high likelihoods f _len (H1) = 0.8, f _len (H2) = 0.7 are given to both. According to the Bayesian theorem, the posterior probability is updated:

[0150] Post _unnorm (H1) = Prior(H1)*f _dt (H1)*f _len (H1) = 0.8*0.9*0.8 = 0.576;

[0151] Post _unnorm (H2) = Prior(H2)*f _dt (H2)*f _len (H2) = 0.2*0.3*0.7 = 0.042;

[0152] The normalization factor Z = 0.576 + 0.042 = 0.618; Post(H1) = 0.576 / 0.618 ~ 0.932; Post(H2) = 0.042 / 0.618 ~ 0.068; the posterior probability of H1 is 0.932, which is high but does not reach the confirmation threshold of 0.95. Therefore, the system assigns the PDU a virtual sequence number 104 with a confidence of 0.932 and a hint bit indicating a delayed submission. The PDU is inserted into the corresponding position of the PDU buffer.

[0153] Further, the timeout triggers an exception handling assuming that the PDU with SN = 100 has not arrived after the waiting time of 706 ms. The system timer times out, triggering the exception advance mechanism. The lower pointer of the reordering window jumps from 100 to 101. At this time, there are SN = 101, 102, 103 and virtual SN = 104 in the buffer. Assuming that the three PDUs with SN = 101, 102, 103 have been confirmed to constitute a complete SDU_A in the SDU aggregation container. The system will identify that SDU_A, although later than the gap 100 in sequence, is already complete. The system extracts the complete SDU_A from the in-sequence deliverable queue, submits it to the upper layer application, and can attach metadata to indicate that the previous sequence (SN = 100) has data loss when submitting. The virtual SN = 104 is retained in the buffer because the SDU to which it belongs is not complete. From the above, the method of the application can combine adaptive timing, statistical inference and intelligent exception handling. Even in the complex case where there is packet loss and incomplete signal in the link, reasonable judgment can be made to ensure the in-sequence and complete delivery of data.

[0154] According to an aspect of the application, a capability negotiation mechanism, specifically: the sending end and the receiving end supporting the method can negotiate capabilities at the beginning of the session establishment or during operation, for synchronizing the sequence information enhancement functions supported by both parties. For example, the sending end can carry a capability announcement field in the first or specific control signaling it sends. The field can be a bit mask, where each bit corresponds to an enhancement function: bit 0 represents whether to support the 16-bit explicit sequence number carried by the extended header. Bit 1 represents whether to support multiplexing of window numbers in the reserved bits of the Label field. Bit 2 represents whether the sending end has and enables the function of implementing CRC implicit heartbeat by manipulating the padding field.

[0155] After receiving the announcement, the receiving end will match it with its own capabilities and send back a capability confirmation message to inform the sending end of the function set supported by both parties. Thereafter, both parties will communicate based on the negotiation result.

[0156] According to another aspect of the present application, dynamic fallback and mode selection, including: the receiving end will dynamically build a priority table of information sources according to the results of capability negotiation, and select the corresponding operation mode. The preferred mode (all functions negotiated successfully) is that if the negotiation result shows that both parties support the extension header, the receiving end will set the priority table as: [extension header sequence number>Label window number>CRC heartbeat>Fragment_ID jump>virtual sequence number]. The system will run in the highest precision and the most reliable mode.

[0157] The suboptimal mode (partially successful negotiation) is that if the negotiation result shows that the extension header is not supported, but the Label multiplexing is supported, the priority table will be automatically adjusted as: [Label window number>CRC heartbeat>Fragment_ID jump>virtual sequence number]. The system will smoothly fall back to the mode relying on implicit window boundary.

[0158] The basic mode (no negotiation function) is that if it communicates with a traditional device that does not support any enhanced function, the receiving end will rely on Bayesian inference based on multi-hypothesis tracking to generate a virtual sequence number, realizing the most basic out-of-order processing capability.

[0159] According to another aspect of the present application, runtime conflict detection and graceful degradation are used to cope with temporary signal quality problems or protocol conflicts. Accordingly, if the system is working in the preferred mode, but starts to continuously receive messages with failed extension header verification or format errors, the system will accumulate extension header fallback events. When the number of events exceeds a threshold value within a certain time, the system will automatically reduce the priority of the extension header to the lowest, switch to the suboptimal mode, and can also alarm the upper layer management system.

[0160] As described above, when window information from different sources (such as Label window number and Fragment_ID jump) conflicts, the system will arbitrate according to the priority to generate a conflict fallback record. This record is not only used for single decision, but also as input feedback to the adaptive control module. For example, continuous conflict records can be interpreted as a signal of unstable link, triggering the system to adopt more conservative window size and timer threshold parameters, at the cost of certain timeliness, in exchange for higher system stability.

[0161] In summary, through the three-dimensional compatibility mechanism of negotiation-fallback-degradation, the present application realizes out-of-order processing in technology, and has flexibility, compatibility and robustness in engineering practice, which can adapt to various network environments and support progressive upgrading of the network.

[0162] According to another aspect of the present application, double-layer rearrangement and adaptive control can also adopt the following steps:

[0163] Optionally, the receiving buffer and state initialization specifically includes: initializing the partition queue and window index according to the sequence information and window boundary information (uniform structure), and creating a receiving PDU buffer. The above layer service data unit aggregation identifier is used as a key to create an SDU aggregation container, and the number of required fragments is recorded for each container.

[0164] The initial window size and timer threshold are set using the arrival statistical information; the modulo counting rule of sequence comparison is defined (if there is an extended sequence number, modulo 65536, otherwise modulo 256 or window relative order), and a rearrangement state variable set (including three boundary pointers, window size initial value, timer threshold initial value and comparison rule) is output. Optionally, if there is an extended header sequence number, modulo 65536 is directly used; if there is only a window boundary, a two-level sorting key of window number + relative sequence number within the window is used.

[0165] Further, the fragment-aware double-layer rearrangement can also use the following implementation: the newly arrived PDU is written into the receiving PDU buffer and sorted according to the sequence information and window boundary information (uniform structure) and the comparison rule of the rearrangement state variable set, and the PDUs within the same window are sorted and the PDUs across the windows are temporarily stored and isolated. The fragments in the sorted receiving PDU buffer are loaded into the SDU aggregation container, the integrity is judged according to Start / End, and the integrity judgment result is obtained. When the lower edge of the window arrives at the sequence and the corresponding upper layer service data unit is complete, the boundary pointer of the rearrangement state variable set is advanced, and the upper layer service data unit is pushed into the in-sequence deliverable queue. In the absence of fine-grained sequence numbers, the window internal entries are back-ordered according to the window internal relative sequence number set and the high quantile of arrival jitter in the arrival statistical information, the probability of misordering is reduced, and the sorted receiving PDU buffer is updated.

[0166] As an example, the adaptive window and wraparound management + timer self-tuning can also be: based on the high quantile of arrival jitter in the arrival statistical information, the retransmission round number estimate and the stability of the aligned window boundary information, the window size is updated: window size = constraint function (coefficient_arrival jitter x high quantile of arrival jitter + coefficient_retransmission intensity x retransmission round number estimate, lower limit, upper limit). The new window size is written back to the rearrangement state variable set.

[0167] According to the modulo length of the sequence information and window boundary information (uniform structure) and the updated window size, the comparison thresholds of the forward direction of the front half area and the wraparound of the rear half area are set; when the sequence value close to the wraparound point appears, the updated sequence comparison threshold and the wraparound criterion are output by referring to the aligned window boundary information and the virtual sequence number and confidence.

[0168] Updating timer threshold with arrival statistics with confidence interval: timer reordering threshold = coefficient_roundtripdelay x delay high percentile + coefficient_frameperiod x frame period estimate + coefficient_retransstrength x retrans round estimate; triggering abnormal advance when the oldest gap latency exceeds the threshold, and recording the advance action, outputting the updated timer reordering threshold and the advance action. The above update result is sent to the previous step, so that the ordering and advance strategy is consistent with the latest network status.

[0169] As another example, the step can also be: when only aligned window boundary information is available, the timer threshold increases the relative position penalty term within the window, which is used to avoid premature timeout at the head of the window due to lack of fine-grained sequence numbers.

[0170] As an optional implementation, the retransmission-aware buffer constraint and differentiated discard, specifically: calculating the score of the entries in the received PDU buffer according to the priority function: priority score = weight_retrans x retrans round estimate + weight_wait x waiting time ratio + weight_size x upper layer service data unit size order; forming a discard priority list. According to the discard priority list, remove isolated fragments that cross windows and are difficult to complete (refer to the abnormal fragment candidate list), update the received PDU buffer. When the SDU aggregation container determines that the key fragment is missing for a long time and the timer advance confirmation is unreachable, perform whole unit discard and synchronize the state variable set.

[0171] The capacity of the updated received PDU buffer and the congestion indicator are fed back to the corresponding module of the slice-aware double-layer rearrangement, and the batch and granularity of insertion and rollback ordering are adjusted.

[0172] As another optional implementation, the step can also be: when the retransmission load is extremely high and the buffer is close to the limit, enable the minimum impact delivery priority strategy, dynamically freeze low-value windows, and concentrate resources to ensure the smooth delivery of the window that has been close to the aligned window.

[0173] According to another aspect of the present application, the in-sequence delivery and abnormal handling, the optional implementation method can also be:

[0174] Exemplarily, the in-sequence delivery process includes: taking out the candidate upper layer service data unit from the in-sequence deliverable queue, checking its consistency with the rearrangement state variable set (window position, boundary advance record, integrity determination), forming a passed review upper layer service data unit list. The passed review upper layer service data unit list is output as an in-sequence upper layer service data unit stream in the aligned order, and the delivery time and source window are recorded for each unit.

[0175] In some embodiments, the abnormal delivery under the timeout promotion specifically includes: according to the rearrangement state variable set, the updated timer reordering threshold and the promotion action, locking the window where the oldest gap is located and judging the timeout condition to form a window list requiring abnormal handling. The abnormal delivery is performed on the window list requiring abnormal handling: preferentially delivering the upper-layer service data unit which is complete but blocked by a single gap; performing differential discard cooperation discard on the unit which cannot be completed; and recording the abnormal delivery record with a label.

[0176] In other embodiments, the step can also be: if only the aligned window boundary information is missing the fine-grained sequence number, the abnormal delivery is prioritized by the window boundary promotion, and the remaining fragments in the window are handed over to the differential discard process.

[0177] Correspondingly, the discard policy execution and the write-back also include: performing discard in the updated received PDU buffer according to the discard priority list, and retaining the entry that contributes most to the completed window. The discard result is synchronized to the SDU aggregation container, and the rearrangement state variable set is updated to eliminate invalid dangling references.

[0178] On this basis, the result consistency check and the end condition include: performing window order and sequence consistency check on the in-sequence upper-layer service data unit stream, and outputting a consistency check pass flag. When the consistency check pass flag is true and there is no pending window in the rearrangement state variable set, a batch end confirmation is marked.

[0179] According to another aspect of the present application, the sequence information acquisition and consistency marking can also be implemented by steps S1a-S1c, which are executed alternatively or in combination, and the output of each of them is sequence information and window boundary information (uniform structure) which is aligned with the upper-layer service data unit aggregation identifier for subsequent use; specifically including:

[0180] Step S1a, using the implicit extension of the GSE protocol flexibility. Specifically, the extended header marker in the parsed message entry list and the Label field content are read, and it is judged whether the extended header carrying sequence number Label reserved bit multiplexing is supported to form a mode enabling flag (extended header enabling flag, Label multiplexing enabling flag). When the Label multiplexing enabling flag is true, the window number encoded by the reserved bits is extracted from the Label field content in the parsed message entry list; consistency check (parity bit / flow ID white list) is performed on each batch of messages to obtain window boundary information based on Label and conflict rollback record. The window boundary candidate marker list is read, and the deterministic jump within the message count boundary ± threshold is identified to output the Fragment-based window boundary information.

[0181] When the extension header enable flag is true, the extension header is located according to the extension header mark in the parsed message entry list, the two-byte sequence number is parsed, and the length / check code is checked to obtain fine-grained sequence number information (modulo length 65536); if the opposite end does not recognize the extension header (through capability detection or failure criterion checking), an extension header rollback event is recorded. The Label-based window boundary information and the Fragment-based window boundary information are fused (majority consistency, time adjacency is preferred), and are aligned mainly based on the fine-grained sequence number information; if there is no fine-grained sequence number, the window boundary is retained and a window-in relative sequence number strategy is marked. Sequence information and window boundary information (uniform structure) consistent with the main scheme are output, are aligned with the upper-layer service data unit aggregation identifier, and are used subsequently; at the same time, the conflict rollback record and the extension header rollback event are sent to the adaptive window and wrap-around management + timer self-adjusting step; and the window size and threshold are conservatively adjusted.

[0182] Step S1b, implicit channel based on CRC collision. Accordingly, the device-side capability configuration and the parsed message entry list are read, and it is judged whether the last 4 bits of the message-level CRC can be accessed; if accessible, a statistical sliding window length (default 16) and a stability threshold are set, a CRC heartbeat enable flag and statistical parameters are obtained. When the CRC heartbeat enable flag is true, the last 4 bits of the CRC in the parsed message entry list are read, and sliding mode estimation is performed according to the statistical parameters to obtain window boundary information based on CRC (with confidence).

[0183] The window boundary information based on CRC is compared with the first and second sources of the window boundary information (if present); when the deviation exceeds the threshold, the confidence of the CRC result is reduced or is rolled back to be only a reference mark, and the checked CRC window boundary information is formed. The checked CRC window boundary information is aligned with the upper-layer service data unit aggregation identifier, and sequence information and window boundary information (uniform structure) are constructed: when no fine-grained sequence number (extension header) is available, a window-in relative sequence number strategy is marked; when there is a fine-grained sequence number, the information is only used as a redundant boundary mark.

[0184] Step S1c, Bayesian inference based on multi-hypothesis tracking. Optionally, the arrival statistical information and the Label field content in the parsed message entry list are read, and the aligned window boundary information (if already output) is combined to initialize no more than three candidate window / sequence hypotheses, form a multi-hypothesis set and a prior probability. Based on the arrival time interval distribution in the arrival statistical information, the message length transition probability and the Label field transition probability, a likelihood function is constructed for each hypothesis to obtain an observation likelihood set. The observation likelihood set is multiplied by the multi-hypothesis prior probability and is normalized to obtain a posterior probability set; hypotheses with a posterior probability less than a threshold are pruned, and at most three active hypotheses are retained to form an updated active hypothesis set and a posterior probability.

[0185] When the posterior probability of a certain hypothesis exceeds the confirmation threshold, the virtual sequence number corresponding to the hypothesis and the confidence are output; if the threshold is not reached, the virtual sequence number corresponding to the maximum posterior and the current confidence are output, and a prompt bit indicating that the submission needs to be delayed is marked for backtracking reference. The virtual sequence number and the confidence are mapped to the aligned window boundary information (if not, only the virtual sequence number with the confidence is output and the relative strategy in the window is marked), aligned with the upper layer service data unit aggregation identifier, and the sequence information and the window boundary information (uniform structure) are constructed.

[0186] The preferred embodiments of the application are described in detail above, but the application is not limited to the specific details in the above-described embodiments. Within the technical concept of the application, various equivalent transformations of the technical solutions of the application can be made, and these equivalent transformations all belong to the protection scope of the application.

Claims

1. A method for GSE packet out-of-order processing suitable for DVB satellite transmission systems, characterized in that, The method comprises the following steps: parsing the input GSE message stream to generate a parsed message entry list and arrival statistical information; obtaining sequence information and window boundary information in a unified structure according to the parsed message entry list and the arrival statistical information; performing slice-aware double-layer rearrangement based on the sequence information and the window boundary information, and adaptively controlling the rearrangement process by using the arrival statistical information to form an in-order deliverable queue; extracting data from the in-order deliverable queue and outputting the data as an in-order upper-layer service data unit stream; wherein, obtaining the sequence information and the window boundary information in a unified structure comprises: generating ordering clues from at least two types of information sources in the parsed message entry list and the arrival statistical information; wherein, the types of information sources are selected from the group consisting of: an explicit sequence number extracted from a message extension header; an implicit window boundary indicated by a preset pattern of a message protocol field; a virtual sequence number inferred based on arrival statistical information; and fusing the ordering clues to construct the sequence information and the window boundary information in a unified structure.

2. The method of claim 1, wherein, inferring the virtual sequence number comprises: establishing and maintaining a plurality of candidate sequence hypotheses for the parsed message entry list; constructing a likelihood function for each candidate sequence hypothesis based on at least one of an arrival time interval distribution in the arrival statistical information and a message length transition probability and a Label transition probability counted from the parsed message entry list; wherein, the Label is a component of the GSE message stream; updating the posterior probability of each candidate sequence hypothesis by using a Bayesian inference method in combination with the likelihood function; determining the virtual sequence number and the corresponding confidence degree according to the posterior probability.

3. The method of claim 1, wherein, In the process of generating the ordering clues, the implicit window boundary is generated, and specifically: window boundary signals are identified from the parsed message entry list by at least one of the following ways: detecting a deterministic jump of a Fragment_ID field near a preset number boundary; and interpreting reserved bits in a Label field as a window number in a predetermined mode; forming the implicit window boundary based on the identified window boundary signals.

4. The method of claim 1, wherein, In the process of generating the ordering clues, another implementation manner of generating the implicit window boundary is: performing sliding statistics on the last several bits of a CRC check code of each message in the parsed message entry list; extracting a mode of a preset pattern from the result of the sliding statistics; using the change of the mode or the value of the mode itself as a window heartbeat signal to form the implicit window boundary.

5. The method of claim 1, wherein, Fusing the ordering clues comprises: setting priorities for the types of information sources, wherein, the priority of the explicit sequence number is higher than that of the implicit window boundary, and the priority of the implicit window boundary is higher than that of the virtual sequence number; when the ordering clues provided by different information sources conflict, arbitrating according to the priorities, selecting the ordering clue with a higher priority, and generating a conflict rollback record; aligning and integrating the arbitrated ordering clues to finally form the sequence information and the window boundary information in a unified structure.

6. The method of claim 1, wherein, Performing slice-aware double-layer rearrangement based on the sequence information and the window boundary information comprises: In the receiving PDU buffer, the arriving protocol data units (PDUs) are sequenced according to the sequence information and window boundary information; In the service data unit (SDU) aggregation container, the PDU fragments belonging to the same upper layer SDU are aggregated, and the integrity of the upper layer SDU is determined; The reordering window is advanced only when and if the PDU of the next expected sequence has been in place in the receiving PDU buffer, and the upper layer SDU to which it belongs is determined to be complete in the SDU aggregation container, and the complete upper layer SDU is moved into the in-sequence deliverable queue.

7. The method of claim 1, wherein, The reordering process is adaptively controlled by the arrival statistics, including: The window size is dynamically calculated according to the high quantile of the arrival jitter and the estimation of the average retransmission round number contained in the arrival statistics; The dynamically calculated window size is used to update and restrict the double-layer reordering process with PDU fragmentation awareness.

8. The method of claim 1, wherein, The reordering process is adaptively controlled by the arrival statistics, including: The timer reordering threshold is determined by integrating the high quantile of the round trip delay, the baseband frame period estimation and the estimation of the average retransmission round number in the arrival statistics; The timer reordering threshold is used as a criterion for triggering an abnormal advance in the double-layer reordering process due to the timeout of the oldest gap.

9. The method of claim 6, wherein, In the process of sequencing the PDUs according to the sequence information and window boundary information, the method for handling the wraparound of the sequence number includes: The modulo count comparison rule is applied to define the wraparound neighborhood adjacent to half of the modulo count value of the sequence number; When the difference between the sequence numbers of the two PDUs to be compared falls within the wraparound neighborhood, the confidence of the window boundary information in the uniform structure of the sequence information and window boundary information, or the virtual sequence number, is introduced as an auxiliary criterion.

Citation Information

Patent Citations

  • Packet reassembly and resequence method, apparatus and system

    CN103069757A

  • Data transmission method, base station and wireless communication device

    CN108847919A