Cross-border game acceleration stability method and device based on real-time network state prediction
By using real-time network status prediction and dynamic error correction coding, the problems of lagging node selection and slow tunnel switching in cross-border game data transmission were solved, achieving a stable gaming experience with low packet loss rate and low jitter.
Patent Information
- Application Number
- CN202510947799.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-07-10
- Publication Date
- 2025-12-16
- Estimated Expiration
- 2045-07-10
AI Technical Summary
Existing game accelerators lack future-oriented network condition prediction in cross-border game data transmission. Node selection is lagging, error correction redundancy is difficult to match real-time network conditions, and tunnel switching processes are slow and prone to high packet loss and large latency jitter.
The client accelerator periodically probes the network status indicators of candidate proxy nodes, uses a time-series prediction model to predict future packet loss rates, dynamically adjusts forward error correction coding parameters, selects target nodes based on comprehensive scores and achieves seamless tunnel switching, and performs forward error correction decoding and order rearrangement.
It enables real-time adaptability of cross-border game data transmission, reduces packet loss rate and latency jitter, and improves network resource utilization and game continuity.
Smart Images

Figure CN120455513B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of game acceleration, and in particular to a cross-border game acceleration stability method and device based on real-time network state prediction. BACKGROUND
[0002] With the popularity of global network games, domestic players need to frequently access data centers located outside the country. Cross-border long-distance links usually go through multiple operator backbone networks, relay nodes and submarine cables, which are prone to packet loss, latency jitter and bandwidth fluctuations. In order to reduce delay and improve connectivity, game accelerators based on UDP tunnel or multi-path TCP have appeared in the market, which basically deploy relay proxy nodes between users and game servers to forward game data.
[0003] Most existing game accelerators use static or semi-static node selection strategies, supplemented by simple retransmission mechanisms or fixed parameter forward error correction (FEC) algorithms to offset the impact of packet loss. On the one hand, node selection usually relies on real-time monitoring of current packet loss rate, round-trip time and other indicators for passive decision-making, lacking prediction of network state evolution trends. On the other hand, the redundancy ratio of FEC is mostly a preset constant or a coarse-grained scale, which cannot be adjusted in time when network quality rapidly deteriorates or suddenly recovers, resulting in either insufficient redundancy causing data loss or excessive redundancy wasting bandwidth. In addition, existing solutions often need to disconnect the old link and establish a new link when switching tunnels, which can easily trigger game connection reset during the switching process.
[0004] In summary, the existing technology has the following outstanding problems in the process of cross-border game data transmission: first, there is a lack of network state prediction for future periods, and node scheduling and redundancy configuration lag behind actual network changes; second, the redundancy of forward error correction is difficult to match the real-time network conditions, making it difficult to balance reliability and bandwidth overhead; third, the tunnel switching process is slow and lacks mechanisms to interrupt transmission, which can still push up the peak packet loss rate. SUMMARY
[0005] Therefore, the embodiments of the present application provide a cross-border game acceleration stability method and device based on real-time network state prediction to solve the problems of high cross-border game transmission packet loss rate and large latency jitter caused by node selection lag, error correction redundancy rigidity and tunnel switching interruption in the prior art.
[0006] In a first aspect, the application provides a cross-border game acceleration and stabilization method based on real-time network state prediction, comprising: periodically sending, by a client accelerator, a probe data packet to at least two candidate proxy nodes, collecting network state indicators corresponding to each candidate proxy node, and generating time series data according to the network state indicators; inputting the time series data into a pre-trained time series prediction model to obtain a predicted packet loss rate of a target proxy node in at least one future monitoring period; determining a forward error correction coding parameter group according to the predicted packet loss rate, the forward error correction coding parameter group including at least a number of original fragments and a number of redundant fragments; grouping the game data packets to be sent based on the forward error correction coding parameter group to generate original fragments and corresponding redundant fragments carrying group identification and sequence number identification; calculating a comprehensive score of each candidate proxy node according to the network state indicators and the predicted packet loss rate, selecting a target proxy node with the highest score to establish a data transmission tunnel, and sending the original fragments and the redundant fragments to the target proxy node via the data transmission tunnel; at the target proxy node, when the number of received fragments reaches the number of original fragments, performing forward error correction decoding and sequential rearrangement to obtain a reconstructed game data packet sequence, and forwarding the game data packet sequence to a target game server or a target game client to complete the transmission of cross-border game data.
[0007] In a second aspect, the application provides a cross-border game acceleration and stabilization device based on real-time network state prediction, comprising: an acquisition module configured to periodically send, by a client accelerator, a probe data packet to at least two candidate proxy nodes, collect network state indicators corresponding to each candidate proxy node, and generate time series data according to the network state indicators; a prediction module configured to input the time series data into a pre-trained time series prediction model to obtain a predicted packet loss rate of a target proxy node in at least one future monitoring period; a determination module configured to determine a forward error correction coding parameter group according to the predicted packet loss rate, the forward error correction coding parameter group including at least a number of original fragments and a number of redundant fragments; a grouping module configured to group the game data packets to be sent based on the forward error correction coding parameter group to generate original fragments and corresponding redundant fragments carrying group identification and sequence number identification; a calculation module configured to calculate a comprehensive score of each candidate proxy node according to the network state indicators and the predicted packet loss rate, select a target proxy node with the highest score to establish a data transmission tunnel, and send the original fragments and the redundant fragments to the target proxy node via the data transmission tunnel; and a reconstruction module configured to, at the target proxy node, when the number of received fragments reaches the number of original fragments, perform forward error correction decoding and sequential rearrangement to obtain a reconstructed game data packet sequence, and forward the game data packet sequence to a target game server or a target game client to complete the transmission of cross-border game data.
[0008] The above at least one technical solution adopted by the embodiments of the application can achieve the following beneficial effects:
[0009] By periodically sending probe data packets to at least two candidate proxy nodes by using a client accelerator, collecting network state indicators corresponding to each candidate proxy node, and generating time series data according to the network state indicators; input the time series data into a pre-trained time series prediction model to obtain the predicted packet loss rate of the target proxy node in at least one future monitoring period; determine the forward error correction coding parameter set according to the predicted packet loss rate, the forward error correction coding parameter set at least includes the number of original fragments and the number of redundant fragments; group the game data packets to be sent based on the forward error correction coding parameter set, generate the original fragments carrying group identification and serial number identification and the corresponding redundant fragments; calculate the comprehensive score of each candidate proxy node according to the network state indicators and the predicted packet loss rate, select the target proxy node with the highest score to establish a data transmission tunnel, send the original fragments and redundant fragments to the target proxy node through the data transmission tunnel; at the target proxy node, when the number of received fragments reaches the number of original fragments, perform forward error correction decoding and sequential rearrangement to obtain the reconstructed game data packet sequence, and forward the game data packet sequence to the target game server or target game client to complete the transmission of cross-border game data. The application can adapt to the link state in real time, take into account reliability and bandwidth, continuously maintain data flow, and significantly reduce packet loss rate and inhibit delay jitter. BRIEF DESCRIPTION OF DRAWINGS
[0010] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the following will briefly introduce the drawings needed to be used in the embodiments or prior art description. Obviously, the drawings in the following description are only some embodiments of the present application, and those skilled in the art can obtain other drawings according to these drawings without creative labor.
[0011] Figure 1 is a flowchart of the cross-border game acceleration and stabilization method based on real-time network state prediction provided by the embodiments of the present application;
[0012] Figure 2 is a structural schematic diagram of the cross-border game acceleration and stabilization device based on real-time network state prediction provided by the embodiments of the present application;
[0013] Figure 3 is a structural schematic diagram of the electronic device provided by the embodiments of the present application. DETAILED DESCRIPTION
[0014] In the following description, for purposes of explanation and not limitation, specific details are set forth such as particular architectures, techniques, etc. in order to provide a thorough understanding of the embodiments of the present application. However, it will be apparent to those skilled in the art that the present application can be practiced in other embodiments that depart from these specific details. In other instances, detailed descriptions of well-known methods, devices, circuits, and
[0015] The existing game accelerator usually forwards the game traffic of domestic users to overseas servers through UDP tunnel or multi-path TCP. The node selection relies on real-time collection of instantaneous indicators such as packet loss rate and time delay. The error correction uses fixed or coarsely graded FEC parameters. The tunnel reselection is mostly a passive process of "first disconnect and then connect". Such a system is difficult to actively respond to rapid link deterioration or sudden recovery, resulting in significant packet loss and jitter in high-volatility cross-border links.
[0016] To address the above shortcomings, the present application proposes a cross-border game acceleration stability method based on real-time network state prediction. This scheme builds a "monitoring-prediction-scheduling-error correction-recovery" closed loop between the client accelerator and the center platform, mainly including:
[0017] Periodically send probe data packets, collect packet loss rate, round-trip time, jitter, bandwidth utilization, etc. of candidate proxy nodes and generate time series;
[0018] Input the time series into a pre-trained time series prediction model (such as double-layer LSTM), and output the predicted packet loss rate in the future monitoring period;
[0019] Adaptively determine the original number of fragments k and the redundant number of fragments n-k according to the predicted packet loss rate and bandwidth utilization, and dynamically adjust the FEC redundancy;
[0020] Adaptively weight each node's multi-dimensional indicators using information entropy, calculate the comprehensive score; when the score difference exceeds the switching threshold, seamlessly migrate through the pre-built standby tunnel;
[0021] On the proxy node side, when the effective fragments reach k, decode and reorder sequentially in parallel, complete data forwarding, and return the decoding results for model correction.
[0022] Through the above technical solutions, node switching and redundancy enhancement can be completed before the link quality deteriorates, and redundancy and bandwidth can be recovered in time after the link recovers, realizing continuous, low-packet-loss, and low-jitter cross-border game data transmission. At the same time, the tunnel switches without interruption, significantly improving the continuity of user gameplay and network resource utilization.
[0023] The content of the technical solutions of the present application will be described in detail below in combination with the drawings and specific embodiments.
[0024] Figure 1 is a flowchart of a cross-border game acceleration and stabilization method based on real-time network state prediction provided by an embodiment of the present application. As shown in the figure, the cross-border game acceleration and stabilization method based on real-time network state prediction can specifically include: Figure 1
[0025] S101, periodically sending a probe data packet to at least two candidate proxy nodes by using a client accelerator, collecting a network state index corresponding to each candidate proxy node, and generating time series data according to the network state index;
[0026] S102, inputting the time series data into a pre-trained time series prediction model to obtain a predicted packet loss rate of a target proxy node in at least one future monitoring period;
[0027] S103, determining a forward error correction coding parameter group according to the predicted packet loss rate, the forward error correction coding parameter group at least including a number of original fragments and a number of redundant fragments;
[0028] S104, grouping a game data packet to be sent based on the forward error correction coding parameter group to generate original fragments and corresponding redundant fragments carrying group identification and serial number identification;
[0029] S105, calculating a comprehensive score of each candidate proxy node according to the network state index and the predicted packet loss rate, selecting a target proxy node with the highest score to establish a data transmission tunnel, and sending the original fragments and the redundant fragments to the target proxy node via the data transmission tunnel;
[0030] S106, at the target proxy node, when the number of received fragments reaches the number of original fragments, performing forward error correction decoding and sequential rearrangement to obtain a reconstructed game data packet sequence, and forwarding the game data packet sequence to a target game server or a target game client to complete transmission of cross-border game data.
[0031] In some embodiments, collecting a network state index corresponding to each candidate proxy node and generating time series data according to the network state index includes:
[0032] periodically sending a preset number of probe data packets to each candidate proxy node, and recording a packet loss rate, a round-trip delay, a jitter degree, and an available bandwidth as network state indexes according to a response of the probe data packet in each monitoring period;
[0033] adding a time stamp corresponding to the monitoring period and a node identification to the network state index to form an index entry sorted by time;
[0034] The continuous index entries are spliced into time series data facing the candidate proxy nodes in chronological order and stored in a data buffer for time series prediction model invocation.
[0035] Specifically, the following embodiment takes the scenario of a client accelerator instance located in Beijing working with three candidate proxy nodes "Tokyo-1", "Seattle-2", "LA-3" to elaborate the whole process of collecting network status indicators and generating time series data. Those skilled in the art should understand that this embodiment is only used to illustrate the technical implementation manner and does not limit the protection scope of the present application.
[0036] After the client accelerator is started, the monitoring unit first reads the local configuration file to determine that the monitoring period is 100 ms and the number of probe packets is 100. Then, at the beginning of each monitoring period, the monitoring unit sends 100 fixed-length UDP probe packets to the three candidate proxy nodes through parallel non-blocking sockets. The probe packets carry 16-byte probe sequence numbers and 4-byte sending timestamps, which facilitate the backtracking of response messages.
[0037] When the probe packet responses return, the monitoring unit compares the response order according to the probe sequence numbers and records the "success", "timeout" or "loss" state. For each candidate proxy node, the monitoring unit completes the following calculations before the end of the current monitoring period: first, the success rate is obtained by dividing the number of successful probe entries by the total number of sent entries, and then the packet loss rate is obtained by subtracting the success rate from 1; second, the average round-trip time is obtained by averaging the time difference between the sending and receiving times of all successful probe entries; then, the jitter degree is obtained by dividing the absolute value of the difference between the maximum and minimum round-trip times by the average round-trip time; finally, the available bandwidth is estimated by combining the probe packet payload size and the effective total time length in the receive window. The monitoring unit packs the above four indicators in order as a single network status indicator and appends the current monitoring period start timestamp and the candidate proxy node identifier at the end.
[0038] To ensure that the index entries are written in order in a cross-thread environment, the monitoring unit uses an atomic incrementing ring buffer index and appends a 32-bit incrementing sequence number to each index entry before writing. After the index entry is written, it immediately enters the lock-free queue. The end of the write operation triggers an asynchronous callback, and the data aggregation sub-thread performs two-way merge sorting on the just-written entries according to the timestamp to ensure that the overall timing of the index entries of the same period and different nodes is correct.
[0039] The data aggregation sub-thread then concatenates the continuous index entries belonging to the same candidate agent node in time sequence according to the sorting result to form a time series data, and appends it to the time series buffer corresponding to the node. In order to reduce memory jitter, the time series buffer adopts a fixed segmentation + page alignment structure, and a batch persistence is triggered every time the threshold length is reached, and the full segment of sequence data is exposed to the read interface of the prediction service process through zero-copy shared memory.
[0040] After actual operation for twenty monitoring cycles, taking the candidate agent node "Tokyo-1" as an example, twenty index entries will be stored in the time series buffer, and the contents are in order packet loss rate, round-trip delay, jitter, available bandwidth, timestamp and node identifier. The prediction service process can directly read this segment of time series data from the shared memory, and generate the prediction input tensor of the future monitoring cycle according to the time series data.
[0041] Through the above-mentioned embodiments, the application completes the efficient collection and standardized time series processing of multi-node network status indicators under the monitoring granularity of milliseconds, and provides real-time and structured data input basis for time series prediction models.
[0042] In some embodiments, the time series data is input into a pre-trained time series prediction model to obtain the predicted packet loss rate of the target agent node in at least one future monitoring cycle, including:
[0043] The time series data is segmented according to a preset window length and step, and each segment is subjected to normalization, missing value completion and node identifier embedding processing to construct a standardized input tensor;
[0044] The input tensor is sequentially input into a time series prediction model based on a long short-term memory network to generate a predicted packet loss rate sequence corresponding to the target agent node;
[0045] The target predicted packet loss rate covering at least one future monitoring cycle is extracted from the predicted packet loss rate sequence.
[0046] Specifically, the embodiment aims to estimate the future packet loss rate of the candidate agent node by using the time series prediction model, and the core links include time series segmentation, data preprocessing, node identifier embedding, input tensor construction, model inference and result extraction.
[0047] The time series segmentation refers to the sliding slicing of the network status indicator sequence according to the preset window length W and step size S within the continuous monitoring period. The window length determines the historical range covered by the single model input, and the step size determines the time overlap degree of the segmentation. The indicator subsequence obtained after segmentation needs to be preprocessed. Data preprocessing includes three steps of normalization, missing value completion and node identifier embedding. The normalization adopts the mean μ and standard deviation σ maintained by the model microservice side, and performs z-score transformation on the packet loss rate, round-trip delay, jitter degree and available bandwidth four indicators respectively. The missing value completion is performed according to the principle of "priority to the last available value, degradation of the mean value": if a certain indicator is missing in the current monitoring period, the value of the indicator in the last monitoring period is used to complete it; if the consecutive missing exceeds the threshold, the historical mean μ is used to fill it. The node identifier embedding is to convert the character type node identifier into a fixed dimension d_e dense vector through a hash mapping table, and splice in the tensor feature dimension to provide node specific information.
[0048] After the above processing, a standardized input tensor with a dimension of (W, d_f+d_e) is constructed for each segment of the indicator subsequence, where d_f is the dimension of the four indicators. The input tensor is sent to the offline pre-trained double-layer long short-term memory network LSTM. The number of model hidden units h and the output step size H are determined according to system requirements and hardware capabilities before deployment. The model inference obtains the predicted packet loss rate sequence p_t+1…p_t+H, and then extracts the target predicted packet loss rate p_t+1 covering at least one future monitoring period, which is used as the basis for subsequent redundancy configuration and node scoring.
[0049] The implementation process is further described below in combination with a specific scenario. It is assumed that the client accelerator has accumulated the latest twenty network status indicators in the "Tokyo-1" node buffer and set the parameters W=12, S=3, d_e=8, h=64, H=3. The system performs the following steps:
[0050] In a first step, three sub-sequence segments are generated with the current time t as the tail end, with a window length W and a step size S. Segment 1 = [t-11…t], Segment 2 = [t-8…t-3], and Segment 3 = [t-5…t-1]. In a second step, the four indicators of each sub-sequence segment are normalized using the locally cached mean μ and standard deviation σ. If the available bandwidth measurement value at time t-8 in Segment 1 is missing, the value at time t-9 is used to fill in the missing value. If the value at time t-9 is still missing, the historical mean μ is used instead. In a third step, the index of the node identifier "Tokyo-1" in the hash mapping table is retrieved to obtain an eight-dimensional embedding vector E_tokyo, which is then concatenated with the normalized indicators in the feature dimension to construct a 12x12 input tensor T_tokyo. In a fourth step, T_tokyo is sent to the GPU memory, and the LSTM inference is performed with a batch size of 1. The inference output is Sequence = [p_t+1, p_t+2, p_t+3]. In a fifth step, the first item p_t+1 in Sequence is selected as the target predicted packet loss rate, which is written to the shared cache and appended with a timestamp t.
[0051] Through the method of the above embodiment, the system completes the prediction of the future packet loss trend of the candidate proxy node at the millisecond level, provides real-time basis for subsequent adaptive forward error correction and seamless tunnel switching, and ensures that the cross-border game acceleration link takes optimal adjustment measures before network fluctuations.
[0052] In some embodiments, the forward error correction encoding parameter group is determined according to the predicted packet loss rate, including:
[0053] The predicted packet loss rate corresponding to the target proxy node is read, and the basic original slice quantity and the basic redundant slice quantity matched with the predicted packet loss rate are retrieved in a preset multi-threshold mapping table;
[0054] Based on the bandwidth utilization rate of the target proxy node in the current monitoring period, a bandwidth correction coefficient is calculated, and the basic original slice quantity and the basic redundant slice quantity are respectively fine-tuned in increments according to the bandwidth correction coefficient to obtain a corrected original slice quantity and a corrected redundant slice quantity;
[0055] The corrected original slice quantity and the corrected redundant slice quantity are combined to form a forward error correction encoding parameter group, and written into an encoding control table.
[0056] Specifically, the present embodiment focuses on the process of "determining a forward error correction encoding parameter group according to a predicted packet loss rate", and first describes the key technical features and their lower implementation manners, and then explains the parameter generation process in combination with specific numerical scenarios.
[0057] Multi-threshold mapping table: The multi-threshold mapping table is stored in the read-only shared memory area of the client accelerator, and the entries are arranged in ascending order of the upper bound of the packet loss rate, each containing three items: the upper bound of the interval, the basic original shard number k_base, and the basic redundant shard number r_base. When the system starts, the default mapping relationship {1%→0 / 0, 30%→4 / 4, 100%→20 / 20} is loaded from the configuration file; during the running period, if the central control platform pushes updates, the monitoring unit completes hot replacement through atomic pointer switching to avoid lock blocking.
[0058] Predicted packet loss rate reading: The node scheduling unit pulls the predicted packet loss rate p̂ of the target proxy node from the Redis-like cache at the end of each monitoring period through a fixed key name, and the cache value is a sixteen-bit unsigned fixed-point number with a quantization precision of 0.01%. If the pull fails, it will fall back to the last period prediction value.
[0059] Bandwidth utilization monitoring: The available bandwidth B_avail is obtained by reversing the aforementioned probe packet, and the sending rate B_send is obtained by accumulating the data link layer counter, both of which are updated at a 100ms period. Bandwidth utilization B_util = B_send ÷ B_avail, and the result is rounded to two decimal places. To suppress transient spikes, a sliding average is introduced, and the average of the last three periods is used to participate in the correction coefficient calculation.
[0060] Bandwidth correction coefficient calculation: An exponential decay function C_bw = exp(-α·B_util) is used, where α is the sensitivity coefficient, and the default value is 1.2. C_bw takes values in the range (0, 1], and tends to 0 when the link is saturated, and tends to 1 when the link is idle. To prevent excessive redundancy, the system sets a lower limit of 0.2 for C_bw.
[0061] Redundancy increment fine tuning: k_base and r_base are weighted by C_bw to obtain the correction values k_corr and r_corr. If k_corr < k_base + 1, it is forced to add 1 to ensure effective error correction; if k_corr > k_base + 8, it is truncated to avoid excessive expansion. Similarly, r_corr is processed. Finally, k_corr and r_corr are always increased in pairs.
[0062] Encoding control table writing: The encoding control table is located in the ring buffer of the process shared memory, and each record structure contains the group identifier gid, k_corr, r_corr, and expire_time. The redundancy control unit writes with a lock-free ring pointer, and the FEC encoder queries by gid index. The expiration time is set to two monitoring periods, and it is automatically invalidated and recycled when the gid rolls over or the parameters are refreshed.
[0063] For example, in a specific scenario example, the client accelerator performs the following steps on the target proxy node "Seattle-2" at t0 period:
[0064] Step 1, read p = 25.7% from cache, look up mapping table to locate interval 1%-30%, get k_base = 4, r_base = 4.
[0065] Step 2, monitoring module records B_send = 95Mbps, probing module measures B_avail = 150Mbps, calculate B_util = 0.63, after three-period sliding average, get B_util_avg = 0.60.
[0066] Step 3, substitute a = 1.2 to calculate C_bw = exp(-1.2x0.60) = exp(-0.72) ≈ 0.486, because high bandwidth utilization rate reaches the lower limit, take C_bw = 0.486.
[0067] Step 4. Perform incremental fine-tuning, k_corr = round(k_base + C_bw) = round(4 + 0.486) = 5, r_corr = round(r_base + C_bw) = 5; After comparing the two values with the threshold range, both are legal.
[0068] Step 5, generate new group identifier gid = t0 timestamp compressed by CRC8, construct record {gid, k_corr = 5, r_corr = 5, expire_time = t0 + 200ms} and write it into encoding control table.
[0069] Step 6, when FEC encoder starts processing game data packets to be sent at t0 + 1 period, first read (k_corr, r_corr) = 5 / 5 corresponding to gid, perform RaptorQ encoding according to every ten packets (5 original + 5 redundancy) in each group, until the next round of parameter refresh.
[0070] Through the above detailed implementation, the system completes the prediction-driven redundancy fine-grained adjustment in milliseconds, so that the forward error correction neither causes additional congestion when the bandwidth is tight, nor provides sufficient fault tolerance before the link deteriorates, ensuring stable and reliable cross-border game transmission.
[0071] In some embodiments, the game data packets to be sent are grouped based on the forward error correction encoding parameter group, and original fragments and corresponding redundant fragments carrying group identifiers and sequence number identifiers are generated, including:
[0072] According to the maximum transmission unit length of the current data transmission tunnel, the game data packets are byte-aligned and divided to obtain a plurality of original fragments satisfying the modified number of original fragments;
[0073] Assign a group identification generated by combining a timestamp and an incremental random number to all original shards formed in the same monitoring period, and sequentially write a continuous sequence number identification for each original shard;
[0074] After determining the number of corrected redundant shards, call the polynomial matrix encoding module, use the cyclic shift generator polynomial to perform systematic forward error correction encoding on the original shard, obtain the redundant shard corresponding to the original shard, and write the group identification consistent with the corresponding original shard and the independent incremental sequence number identification in the header of the redundant shard.
[0075] Specifically, the embodiment will illustrate how to group and systematically forward error correction encode the game data packets to be sent on the client accelerator side according to the determined forward error correction encoding parameter group. The core technical features include “MTU alignment cutting”, “group identification and sequence number identification generation”, and “cyclic shift generator polynomial encoding”.
[0076] MTU alignment cutting: The current data transmission tunnel is carried by the QUIC protocol, and the maximum transmission unit length is 1200 bytes. In order to ensure that each shard is not segmented again at the link layer, the client accelerator first reads the game data packet length L_pkt, compares it with the MTU: if L_pkt≤MTU and the remaining group capacity is sufficient, then directly put it into the current original shard list; if L_pkt>MTU or the current group capacity is insufficient, then perform byte alignment cutting. When cutting, use the fixed segment strategy, and the length of each segment is L_seg=MTU-fixed header length. When the last segment is less than L_seg, use zero padding alignment to ensure that the shard length is consistent, and simplify the subsequent FEC matrix size.
[0077] Group identification and sequence number identification generation: In the monitoring period t, the redundancy control unit pre-generates a 16-bit group identification gid. The gid is composed of two parts: the high ten bits are the CRC10 compression of the start millisecond timestamp of the period, and the low six bits are the linear congruence algorithm increment of the random number seed. When a new group is created, gid is incremented by one, and when it is wrapped around, the random seed is reset to avoid conflicts. For the shards in the group, use a continuous sequence number seq_id, the initial value is 0, and the original shard and the redundant shard are incremented together to ensure the uniqueness of the rearrangement.
[0078] Cyclic shift generator polynomial encoding: The polynomial matrix encoding module implements systematic forward error correction using the generator polynomial g(x) = x^m + a x^(m-1) +... + b, where a and b are constants in the Galois field GF(256). The module first constructs a k x k identity matrix I, and a (k x (n-k)) cyclic shift matrix C to generate a k x n generator matrix G = [I / C] by horizontal concatenation. The encoding process is divided into two stages: matrix multiplication and byte-level domain operation. The matrix multiplication is accelerated using the CPU advanced vector instruction AVX2, and the single batch k = 5, n = 10 delay does not exceed 85 microseconds. The systematic encoding outputs the first k fragments as the original fragments themselves, and the last n-k fragments as redundant fragments. The module writes the gid and corresponding seq_id in the header of each redundant fragment, so that it maintains the same group view as the original fragments.
[0079] Transmission queue arrangement: After the packet is completed, the sending scheduler arranges ten fragments in the order of seq_id according to the "original priority, redundant insertion" strategy and pushes them into the sending ring queue. If multi-path concurrency is enabled, each odd seq_id fragment is assigned to the main tunnel, and even seq_id fragments are assigned to the standby tunnel to achieve path separation.
[0080] For example, in one specific scenario, suppose the forward error correction parameter group (k_corr = 5, r_corr = 5) has been determined for this period, and the client receives a frame of game state update packet with a length L_pkt = 3580 bytes.
[0081] Step 1, calculate the number of required original fragments k_req = ceil(3580 ÷ 1200) = 3, which is less than k_corr = 5, so create a new group gid = 0x2A3F.
[0082] Step 2, divide the original packet into three segments P0, P1, P2 according to L_seg = 1200 bytes, and pad P2 to 1200 bytes. Fill the remaining two original fragment spaces with Padding0 and Padding1 to occupy the space. Five original fragments are written with seq_id 0-4.
[0083] Step 3, call the polynomial matrix encoding module to multiply the original fragment matrix R(5 x 1200) by the generator matrix G(5 x 10) to obtain the redundant fragments E5-E9. The module fills E5-E9 with gid and seq_id 5-9.
[0084] Step 4, the sending scheduler pushes the fragments P0-E9 into the ring queue according to seq_id. If multi-path concurrency is enabled, set the standby path routing flag when the seq_id of the fragment is odd.
[0085] Step 5, after the fragments arrive at the proxy node, the decoding module detects that the gids are consistent and valid fragments reach k_corr=5, that is, the vector decoding can be executed to recover the original data packet and sequentially rearrange it. After successful decoding, a success label is returned to provide feedback for error correction adjustment in the next period.
[0086] Through the above embodiment, the system ensures that each fragment does not trigger the link layer to add a segment, while realizing consistent identification, continuous sequence number and fast systematic coding of the original fragments and redundant fragments, thereby providing robust data recovery capability for high packet loss scenarios of cross-border game acceleration links.
[0087] In some embodiments, a comprehensive score of each candidate proxy node is calculated according to the network state indicators and the predicted packet loss rate, and the target proxy node with the highest score is selected to establish a data transmission tunnel, including:
[0088] A multi-dimensional feature vector containing the current packet loss rate, round-trip delay, jitter degree, available bandwidth, processing load and predicted packet loss rate is generated for each candidate proxy node;
[0089] The multi-dimensional feature vector is normalized and weighted using a weight vector based on adaptive update of information entropy to obtain a corresponding first moment comprehensive score;
[0090] The first moment comprehensive score is executed with sliding window momentum smoothing to obtain a target comprehensive score for node sorting;
[0091] When the difference between the target comprehensive score of the candidate proxy node with the highest target comprehensive score and the target comprehensive score of the currently connected proxy node exceeds a preset switching threshold, the standby tunnel management module is called to activate an encrypted data transmission tunnel according to a preconfigured end-to-end key negotiation process, and the encrypted data transmission tunnel is set as the new data transmission tunnel.
[0092] Specifically, the present embodiment will first explain the core technical features and key implementation methods for the technical solution of "calculating the comprehensive score of each candidate proxy node according to the network state indicators and the predicted packet loss rate and performing tunnel switching", and then explain the complete operation process in combination with actual numerical scenarios.
[0093] Multi-dimensional feature vector construction: the client accelerator has obtained the current packet loss rate p_now, round-trip delay RTT, jitter degree J, available bandwidth B_avail, processing load C_load and predicted packet loss rate p_next of each candidate proxy node at the end of each monitoring period. The six indicators are spliced in a fixed order into a feature vector F=[p_now, RTT, J, B_avail, C_load, p_next]. To avoid weight bias caused by dimensional differences, the system performs z-score normalization on F, and the required μ and σ are updated in real time by the central platform through incremental learning and delivered.
[0094] Information entropy adaptive weight: In the node set N, the system statistics the distribution probability p_i(k) of each dimension index in the last T monitoring periods, according to which the information entropy H_k of the index is calculated. The higher the entropy value, the greater the index dispersion and the weaker the discrimination. The weight vector W is determined by the reciprocal of the entropy plus the soft threshold formula: w_k=(1 / H_k)^γ, which is normalized to satisfy ∑w_k=1. The index γ is used to control the entropy sensitivity, and the default γ=0.6. The weight vector is recalculated every ten monitoring periods, so that the scoring model dynamically converges with the link fluctuations.
[0095] Comprehensive score calculation: The normalized feature vector F_norm performs dot product with the weight vector W by dimension to obtain the first time comprehensive score S_raw. In order to smooth the instantaneous peak, the system uses sliding window momentum smoothing on S_raw: S_smooth(t)=β·S_smooth(t-1)+(1-β)·S_raw(t), where β is 0.3, and the window length is kept for three monitoring periods. The smoothed value is the target comprehensive score S_final used for node ranking.
[0096] Tunnel switching decision: If the difference ΔS between the highest score node S_final(max) and the current active node S_final(curr) is greater than or equal to the threshold δ, it is determined that the switching trigger is triggered. The threshold δ can be set to 0.15. After triggering, the standby tunnel management module takes out the tunnel bound to the highest score node from the pre-pooled idle UDP-QUIC tunnel, starts the TLS1.3-PSK pre-shared key negotiation, and enters the "Ready" state after the negotiation is completed. Subsequently, the routing table is hot updated, and the new tunnel identifier is written into the forwarding table; the old tunnel enters the "Draining" state and is closed after one RTT.
[0097] For example, in one specific scenario example, assume that there are three candidate proxy nodes Tokyo-1, Seattle-2, LA-3 in the current monitoring period t0, and the current active node is Seattle-2. The system collects the following indicators:
[0098] Tokyo-1: p_now=1.2%, RTT=145ms, J=18ms, B_avail=190Mbps, C_load=42%, p_next=1.5%;
[0099] Seattle-2: p_now=4.8%, RTT=170ms, J=23ms, B_avail=150Mbps, C_load=55%, p_next=5.4%;
[0100] LA-3: p_now = 3.1%, RTT = 180 ms, J = 27 ms, B_avail = 160 Mbps, C_load = 48%, p_next = 3.6%.
[0101] Step one, the system takes the last twenty cycles of metrics as samples, calculates the six-dimensional information entropy, and obtains {H1…H6}. Then, with γ = 0.6, the weight vector W ≈ {0.18, 0.16, 0.14, 0.20, 0.12, 0.20} is obtained.
[0102] Step two, the six-dimensional metrics of the three nodes are normalized by μ and σ to obtain F_norm(Tokyo-1), F_norm(Seattle-2), and F_norm(LA-3).
[0103] Step three, the three sets of F_norm are dot producted with W to obtain S_raw(Tokyo-1) = 0.82, S_raw(Seattle-2) = 0.57, and S_raw(LA-3) = 0.66. These three values are written into the sliding window and combined with the smoothed values of the previous two cycles to obtain S_final(Tokyo-1) = 0.79, S_final(Seattle-2) = 0.60, and S_final(LA-3) = 0.64.
[0104] Step four, ΔS = S_final(Tokyo-1) - S_final(Seattle-2) = 0.19 > δ = 0.15, which satisfies the switching condition. The standby tunnel management module immediately calls the tunnel context associated with Tokyo-1 to trigger TLS1.3-PSK negotiation; the negotiation takes 17 ms to complete. The routing table completes the redirection before the next batch of data packets arrives after the negotiation ends, and the new tunnel is set as the primary tunnel, while the old Seattle-2 tunnel enters the emptying phase and is closed after 200 ms.
[0105] Through the above embodiment, the system obtains entropy adaptive weights based on multi-dimensional real-time metrics and predicted values, calculates a comprehensive score in milliseconds, and uses momentum smoothing to suppress jitter. When the scores of new and old nodes differ significantly, seamless switching to a better node can be achieved, maintaining low packet loss and low latency for cross-border game links.
[0106] In some embodiments, when the number of received fragments reaches the number of original fragments, forward error correction decoding and sequential rearrangement are performed to obtain a reconstructed game data packet sequence, including:
[0107] The original fragments and redundant fragments carrying the same group identifier are written into the corresponding group buffer, and an index table is established according to the sequence number identifier in the group buffer;
[0108] When the number of valid fragments in the group buffer is detected to reach the number of original fragments, a parallel matrix inversion decoding module is called to perform vectorized forward error correction decoding on the valid fragments based on the forward error correction parameter set, to generate a decoded fragment sequence matching the number of original fragments;
[0109] The decoded fragment sequence is sequentially rearranged according to the sequence number, merged into a reconstructed game data packet sequence, and written into a forwarding queue for subsequent data forwarding.
[0110] Specifically, the embodiment will first describe the key technical features and their sub-implementation methods for the "performing forward error correction decoding and sequential rearrangement when the number of received fragments reaches the number of original fragments" process on the proxy node side, and then describe the decoding operation in combination with specific scenarios.
[0111] Group buffer and index table: The proxy node uses a ring buffer pool in user mode to manage fragment data. The buffer pool is divided into slots according to the group identifier gid, and each slot corresponds to a segment of continuous shared memory with a capacity of n x L_seg bytes. When a fragment arrives, it is positioned according to the gid, and the data is written into the slot and registered in the local hash index table with a <seq_id, address> key-value pair. The index table uses open-addressing hash to avoid list fragmentation, and the upper limit of the load factor is 0.7. When the fragment is filled, the write is closed.
[0112] Valid fragment count and threshold detection: Each slot maintains an atomic counter cnt_valid. After the fragment is written and the hash table is registered, it performs atomic increment. If cnt_valid=k_corr triggers a soft interrupt callback, it adds gid to the "to-be-decoded list". The list is implemented as a lock-free queue, and the CPU core can obtain the decoding task by polling the list.
[0113] Parallel matrix inversion decoding module: The decoding module is cooperated by multi-core CPU and GPU in dual-path. The CPU side is responsible for copying k_corr valid fragments into a page-aligned input matrix M(k_corr x L_seg) in ascending order of seq_id, and querying the encoding control table to obtain the generator matrix G(k_corr x n_corr). The GPU side uses CUDA kernel to perform parallel matrix inversion operation: first, perform Gaussian elimination on G in GF(256) field to generate the inverse matrix G_inv, and then multiply the redundant part of M by G_inv to obtain the missing fragments. To prevent GPU resource starvation, the module uses a batch aggregation strategy, and when the length of the to-be-decoded list is greater than or equal to 8, it submits in batches.
[0114] Sequential reordering and forwarding write: The decoded fragments output by GPU are consistent with the original fragment length. The CPU side writes k_corr fragments along with newly generated (n_corr-k_corr) fragments by seq_id into a linear array and performs memcpy to merge into a complete game data packet. The group buffer and index table are reset and returned to the buffer pool. The reconstructed packet header is written with gid and complete length, and the DPDK zero-copy forwarding queue is written by the forwarding thread.
[0115] For example, in one specific scenario example, assuming the current FEC parameter group (k_corr=5, n_corr=10), the proxy node "Tokyo-1" receives the following fragment sequence at t0: gid=0x2A3F, seq_id 0, 2, 3, 5, 8, a total of 5 fragments, and the remaining seq_id 1, 4, 6, 7, 9 are lost.
[0116] Step 1, five fragments are written into the gid=0x2A3F slot buffer in turn and the index table is registered, and cnt_valid is accumulated to 5 to trigger the callback.
[0117] Step 2, the CPU thread copies seq_id 0, 2, 3, 5, 8 fragments into the input matrix M, and reads the G matrix in the control table.
[0118] Step 3, construct a batch length of less than 8 and submit a single task, and the GPU executes GF(256) Gaussian elimination to find G_inv and reconstruct the missing fragments seq_id 1, 4, 6, 7, 9. The GPU core consumes 57µs.
[0119] Step 4, the CPU side retrieves ten fragments, concatenates them into a continuous byte stream in ascending order of seq_id, and writes them into the forwarding queue using memcpy.
[0120] Step 5, the forwarding thread detects that the five-tuple destination address is the target game server, performs NAT rewriting, and sends it out. The slot and index table are cleared, cnt_valid is reset to zero, and the gid slot is recycled.
[0121] Through the above embodiment, the proxy node can trigger parallel error correction decoding as soon as enough original fragments are received, quickly recover the lost fragments and maintain sequential consistency, so as to ensure that the game data can be delivered to the terminal in a complete and accurate manner under a high packet loss link.
[0122] The following is an apparatus embodiment of the present application, which can be used to execute the method embodiments of the present application. For details not disclosed in the apparatus embodiments of the present application, please refer to the method embodiments of the present application.
[0123] Figure 2 is a structural schematic diagram of a cross-border game acceleration and stabilization device based on real-time network state prediction provided by an embodiment of the present application. As shown in Figure 2As shown, the cross-border game acceleration and stabilization device based on real-time network state prediction comprises:
[0124] The collection module 201 is configured to periodically send probe data packets to at least two candidate proxy nodes by using a client accelerator, collect network state indicators corresponding to each candidate proxy node, and generate time series data according to the network state indicators.
[0125] The prediction module 202 is configured to input the time series data into a pre-trained time series prediction model to obtain a predicted packet loss rate of the target proxy node in at least one future monitoring period.
[0126] The determination module 203 is configured to determine a forward error correction coding parameter group according to the predicted packet loss rate, wherein the forward error correction coding parameter group at least includes an original fragment quantity and a redundant fragment quantity.
[0127] The grouping module 204 is configured to group the game data packets to be sent based on the forward error correction coding parameter group, to generate original fragments and corresponding redundant fragments carrying group identification and serial number identification.
[0128] The calculation module 205 is configured to calculate a comprehensive score of each candidate proxy node according to the network state indicators and the predicted packet loss rate, select a target proxy node with the highest score to establish a data transmission tunnel, and send the original fragments and the redundant fragments to the target proxy node via the data transmission tunnel.
[0129] The reconstruction module 206 is configured to, at the target proxy node, perform forward error correction decoding and sequential rearrangement when the number of received fragments reaches the original fragment quantity, to obtain a reconstructed game data packet sequence, and forward the game data packet sequence to a target game server or a target game client to complete the transmission of cross-border game data.
[0130] In some embodiments, Figure 2 The collection module 201 periodically sends a preset number of probe data packets to each candidate proxy node, and records the packet loss rate, round-trip delay, jitter degree and available bandwidth as network state indicators according to the response of the probe data packets in each monitoring period; adds a time stamp corresponding to the monitoring period and a node identification to the network state indicators to form index entries sorted by time; concatenates the continuous index entries into time series data for the candidate proxy nodes in time sequence, and stores them in a data buffer for calling of the time series prediction model.
[0131] In some embodiments, Figure 2The prediction module 202 segments the time series data according to the preset window length and step, and performs normalization, missing value completion and node identification embedding processing on each segment to construct a standardized input tensor; the input tensor is sequentially input into a time series prediction model based on a long short-term memory network to generate a predicted packet loss rate sequence corresponding to the target proxy node; the target predicted packet loss rate covering at least one future monitoring period is extracted from the predicted packet loss rate sequence.
[0132] In some embodiments, Figure 2 The determination module 203 reads the predicted packet loss rate corresponding to the target proxy node, and searches the preset multi-threshold mapping table to retrieve the basic original shard number and the basic redundant shard number matched with the predicted packet loss rate; based on the bandwidth utilization rate of the target proxy node in the current monitoring period, a bandwidth correction coefficient is calculated, and the basic original shard number and the basic redundant shard number are respectively adjusted by the bandwidth correction coefficient to obtain the corrected original shard number and the corrected redundant shard number; the corrected original shard number and the corrected redundant shard number are combined to form a forward error correction coding parameter group, and written into the coding control table.
[0133] In some embodiments, Figure 2 The grouping module 204 performs byte alignment segmentation on the game data packet according to the maximum transmission unit length of the current data transmission tunnel to obtain a plurality of original shards satisfying the corrected original shard number; all original shards formed in the same monitoring period are assigned a group identifier generated based on the combination of the timestamp and the incremental random array, and a continuous serial number identifier is sequentially written for each original shard; after determining the corrected redundant shard number, the polynomial matrix encoding module is called to perform systematic forward error correction encoding on the original shard using the cyclic shift generator polynomial to obtain a redundant shard corresponding to the original shard, and the group identifier consistent with the corresponding original shard and the independently incremental serial number identifier are written in the head of the redundant shard.
[0134] In some embodiments, Figure 2 The calculation module 205 generates a multi-dimensional feature vector containing the current packet loss rate, round-trip delay, jitter degree, available bandwidth, processing load and predicted packet loss rate for each candidate proxy node; the multi-dimensional feature vector is normalized and weighted using a weight vector based on information entropy adaptive update to obtain a corresponding first moment comprehensive score; the first moment comprehensive score is subjected to sliding window momentum smoothing to obtain a target comprehensive score for node sorting; when the difference between the target comprehensive score of the candidate proxy node with the highest target comprehensive score and the target comprehensive score of the currently connected proxy node exceeds the preset switching threshold, the standby tunnel management module is called to activate the encrypted data transmission tunnel according to the preconfigured end-to-end key negotiation process, and set the encrypted data transmission tunnel as the new data transmission tunnel.
[0135] In some embodiments,Figure 2 The reconstruction module 206 writes the original fragments and the redundant fragments carrying the same group identifier into the corresponding group buffer, and establishes an index table according to the sequence number identifier in the group buffer; when detecting that the number of valid fragments in the group buffer reaches the number of original fragments, the parallel matrix inversion decoding module is called to perform vectorized forward error correction decoding on the valid fragments based on the forward error correction parameter set, to generate a decoding fragment sequence matching the number of original fragments; the decoding fragment sequence is sequentially rearranged according to the sequence number identifier, merged into a reconstructed game data packet sequence, and written into the forwarding queue for subsequent data forwarding.
[0136] It should be understood that the size of the sequence number of each step in the above embodiments does not mean the order of execution, and the execution order of each process should be determined according to its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.
[0137] Figure 3 is a structural schematic diagram of an electronic device 3 provided by the embodiments of the present application. As shown in the figure, the electronic device 3 of the embodiments includes a processor 301, a memory 302, and a computer program 303 stored in the memory 302 and executable on the processor 301. The processor 301 implements the steps in each of the above method embodiments when executing the computer program 303. Alternatively, the processor 301 implements the functions of each module / unit in each of the above device embodiments when executing the computer program 303. Figure 3
[0138] By way of example, the computer program 303 can be divided into one or more modules / units, which are stored in the memory 302 and executed by the processor 301 to complete the present application. The one or more modules / units can be a series of computer program instruction segments capable of completing a specific function, which are used to describe the execution process of the computer program 303 in the electronic device 3.
[0139] The electronic device 3 can be a desktop computer, a notebook computer, a palm computer, a cloud server, and the like. The electronic device 3 can include but is not limited to the processor 301 and the memory 302. Those skilled in the art can understand that the electronic device 3 is only an example of the electronic device 3 and does not constitute a limitation on the electronic device 3, and can include more or fewer components than those shown, or combine certain components, or different components, for example, the electronic device can also include an input / output device, a network access device, a bus, and the like. Figure 3 The electronic device 3 is only an example of the electronic device 3 and does not constitute a limitation on the electronic device 3, and can include more or fewer components than those shown, or combine certain components, or different components, for example, the electronic device can also include an input / output device, a network access device, a bus, and the like.
[0140] The processor 301 can be a central processing unit (CPU), or other general purpose processors, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, etc. The general purpose processor can be a microprocessor or the processor can be any conventional processor.
[0141] The memory 302 can be an internal storage unit of the electronic device 3, for example, a hard disk or a memory of the electronic device 3. The memory 302 can also be an external storage device of the electronic device 3, for example, a plug-in hard disk, a smart media card (SMC), a secure digital (SD) card, a flash card, etc. equipped on the electronic device 3. Further, the memory 302 can include both the internal storage unit and the external storage device of the electronic device 3. The memory 302 is used to store computer programs and other programs and data required by the electronic device. The memory 302 can also be used to temporarily store data that has been output or will be output.
[0142] Those skilled in the art can clearly understand that, for the convenience and brevity of description, only the division of the above functional units and modules is exemplified, and in actual application, the above functions can be completed by different functional units and modules according to needs, that is, the internal structure of the device is divided into different functional units or modules to complete all or part of the functions described above. Each functional unit and module in the embodiment can be integrated in one processing unit, or each unit can exist physically, or two or more units can be integrated in one unit. The integrated unit can be realized in the form of hardware or in the form of software functional unit. In addition, the specific names of each functional unit and module are only for easy distinction, and do not limit the protection scope of the present application. The specific working process of the units and modules in the above system can refer to the corresponding process in the foregoing method embodiments, which will not be described here.
[0143] In the above embodiments, the description of each embodiment has its own emphasis, and the parts not described or recorded in detail in a certain embodiment can be referred to the relevant description of other embodiments.
[0144] Those skilled in the art can understand that the units and algorithm steps of each example described in combination with the embodiments disclosed herein can be realized by electronic hardware or a combination of computer software and electronic hardware. Whether the functions are realized in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of the present application.
[0145] In the embodiments provided in the present application, it should be understood that the disclosed apparatus / computer device and method can be implemented in other ways. For example, the apparatus / computer device embodiments described above are merely schematic, for example, the division of the modules or units is merely a logical function division, and actual implementation can have another division manner, multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the coupling or direct coupling or communication connection between the units shown or discussed can be indirect coupling or communication connection through some interface, device or unit, and can be electrical, mechanical or other forms.
[0146] The units described as separate components can or can not be physically separate, and the components shown as units can or can not be physical units, i.e. they can be located in one place or distributed on multiple network units. Part or all of the units can be selected to achieve the purpose of the embodiments according to actual needs.
[0147] In addition, each functional unit in each embodiment of the present application can be integrated into a processing unit, or each unit can exist physically independently, or two or more units can be integrated into one unit. The integrated unit can be realized in the form of hardware or in the form of a software functional unit.
[0148] The integrated modules / units, if implemented in the form of software functional units and sold or used as independent products, can be stored in a computer readable storage medium. Based on such understanding, all or part of the processes in the above-mentioned embodiment methods can also be completed by a computer program instructing related hardware, and the computer program can be stored in a computer readable storage medium. The computer program can be executed by a processor to implement the steps of the above-mentioned various method embodiments. The computer program can include computer program code, which can be in the form of source code, object code, executable files, or some intermediate forms. The computer readable medium can include any entity or device capable of carrying the computer program code, recording medium, U disk, mobile hard disk, magnetic disk, optical disk, computer memory, read-only memory (Read-Only Memory, ROM), random access memory (Random Access Memory, RAM), electric carrier wave signal, telecommunication signal, and software distribution medium, etc.
[0149] The above embodiments are only used to illustrate the technical solutions of the present application, not to limit them; although the technical solutions of the present application are described in detail with reference to the foregoing embodiments, those skilled in the art should understand that the technical solutions recorded in the foregoing embodiments can be modified, or some technical features can be replaced by equivalents; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the spirit and scope of the technical solutions of the embodiments of the present application, and should be included in the protection scope of the present application.
Claims
1. A method for stabilizing cross-border game acceleration based on real-time network state prediction, characterized in that, include: The client accelerator periodically sends probe data packets to at least two candidate proxy nodes, collects network status indicators corresponding to each candidate proxy node, and generates time series data based on the network status indicators. The time series data is input into a pre-trained time series prediction model to obtain the predicted packet loss rate of the target agent node in at least one future monitoring period. The forward error correction coding parameter set is determined based on the predicted packet loss rate, and the forward error correction coding parameter set includes at least the original number of fragments and the number of redundant fragments. Based on the forward error correction coding parameter group, the game data packets to be sent are grouped to generate original fragments carrying group identifiers and sequence number identifiers, as well as corresponding redundant fragments. The comprehensive score of each candidate proxy node is calculated based on the network status index and the predicted packet loss rate. The target proxy node with the highest score is selected to establish a data transmission tunnel, and the original fragment and redundant fragment are sent to the target proxy node through the data transmission tunnel. At the target proxy node, when the number of received fragments reaches the original number of fragments, forward error correction decoding and order rearrangement are performed to obtain a reconstructed game data packet sequence, and the game data packet sequence is forwarded to the target game server or target game client to complete the cross-border game data transmission. The step of grouping the game data packets to be sent based on the forward error correction coding parameter group to generate original fragments carrying group identifiers and sequence number identifiers, and corresponding redundant fragments, includes: According to the maximum transmission unit length of the current data transmission tunnel, the game data packet is byte-aligned and segmented to obtain several original fragments that meet the corrected original fragment number; Assign a group identifier based on a combination of timestamp and incremental random number to all original segments formed within the same monitoring period, and write consecutive sequence number identifiers to each original segment sequentially; After determining the number of corrected redundant fragments, the polynomial matrix encoding module is invoked, and the original fragments are systematically forward-corrected using a cyclic shift generator polynomial to obtain redundant fragments that correspond one-to-one with the original fragments. A group identifier and an independently incrementing sequence number identifier that are consistent with the corresponding original fragment are written into the header of the redundant fragment.
2. The method according to claim 1, characterized in that, The process of collecting network status indicators corresponding to each candidate agent node and generating time-series data based on these indicators includes: A preset number of probe data packets are periodically sent to each candidate agent node, and the packet loss rate, round-trip time, jitter and available bandwidth are recorded as network status indicators based on the response of the probe data packets in each monitoring period. Add timestamps and node identifiers corresponding to the monitoring period to the network status indicators to form indicator entries sorted by time; The consecutive indicator entries are concatenated into time series data for the candidate agent node in chronological order and stored in a data buffer for use in time series prediction model calls.
3. The method according to claim 1, characterized in that, The step of inputting the time series data into a pre-trained time series prediction model to obtain the predicted packet loss rate of the target agent node in at least one future monitoring period includes: The time series data is segmented according to a preset window length and step size, and normalization, missing value completion and node identifier embedding are performed on each segment to construct a standardized input tensor; The input tensors are sequentially input into a time-series prediction model based on a long short-term memory network to generate a predicted packet loss rate sequence corresponding to the target proxy node; Extract the target predicted packet loss rate covering at least one future monitoring period from the predicted packet loss rate sequence.
4. The method according to claim 1, characterized in that, The step of determining the forward error correction coding parameter set based on the predicted packet loss rate includes: Read the predicted packet loss rate corresponding to the target proxy node, and retrieve the basic original fragment number and basic redundant fragment number that match the predicted packet loss rate in a preset multi-threshold mapping table; Based on the bandwidth utilization of the target proxy node in the current monitoring period, a bandwidth correction coefficient is calculated, and the basic original fragment number and the basic redundant fragment number are incrementally adjusted according to the bandwidth correction coefficient to obtain the corrected original fragment number and the corrected redundant fragment number. The corrected original number of fragments and the corrected redundant number of fragments are combined to form a forward error correction coding parameter group, which is then written into the coding control table.
5. The method according to claim 1, characterized in that, The step of calculating a comprehensive score for each candidate proxy node based on the network status indicators and the predicted packet loss rate, and selecting the target proxy node with the highest score to establish a data transmission tunnel, includes: For each candidate proxy node, generate a multi-dimensional feature vector containing the current packet loss rate, round-trip latency, jitter, available bandwidth, processing load, and the predicted packet loss rate; The multidimensional feature vector is normalized and weighted using a weight vector that is adaptively updated based on information entropy to obtain the corresponding first-time comprehensive score; A sliding window momentum smoothing is performed on the comprehensive score at the first time step to obtain the target comprehensive score for node sorting; When the difference between the target comprehensive score of the candidate agent node with the highest target comprehensive score and the target comprehensive score of the currently connected agent node exceeds a preset switching threshold, the backup tunnel management module is invoked to activate the encrypted data transmission tunnel according to the pre-configured end-to-end key negotiation process, and the encrypted data transmission tunnel is set as the new data transmission tunnel.
6. The method according to claim 1, characterized in that, When the number of received fragments reaches the original number of fragments, forward error correction decoding and reordering are performed to obtain a reconstructed game data packet sequence, including: Write the original fragments and redundant fragments carrying the same group identifier into the corresponding group buffer, and build an index table in the group buffer according to the sequence number identifier; When the number of valid fragments in the group buffer is detected to reach the original number of fragments, the parallel matrix inversion decoding module is called to perform vectorized forward error correction decoding on the valid fragments based on the forward error correction coding parameter group, generating a decoded fragment sequence that matches the original number of fragments; The decoded fragment sequence is rearranged according to the sequence number identifier, merged into a reconstructed game data packet sequence, and written into the forwarding queue for subsequent data forwarding.
7. A cross-border game acceleration and stabilization device based on real-time network status prediction, characterized in that, include: The acquisition module is used to periodically send probe data packets to at least two candidate proxy nodes using a client accelerator, acquire network status indicators corresponding to each candidate proxy node, and generate time series data based on the network status indicators. The prediction module is used to input the time series data into a pre-trained time series prediction model to obtain the predicted packet loss rate of the target agent node in at least one future monitoring period. The determination module is used to determine the forward error correction coding parameter set based on the predicted packet loss rate. The forward error correction coding parameter set includes at least the original number of fragments and the number of redundant fragments. The grouping module is used to group the game data packets to be sent based on the forward error correction coding parameter group, and generate original fragments carrying group identifiers and sequence number identifiers and corresponding redundant fragments. The calculation module is used to calculate the comprehensive score of each candidate proxy node based on the network status index and the predicted packet loss rate, select the target proxy node with the highest score to establish a data transmission tunnel, and send the original fragment and redundant fragment to the target proxy node through the data transmission tunnel. The reconstruction module is used at the target proxy node to perform forward error correction decoding and order rearrangement when the number of received fragments reaches the original number of fragments, to obtain a reconstructed game data packet sequence, and to forward the game data packet sequence to the target game server or target game client to complete the cross-border game data transmission. The grouping module is used to perform byte-aligned segmentation of the game data packets according to the maximum transmission unit length of the current data transmission tunnel, to obtain several original fragments that meet the corrected original fragment number; to assign a group identifier based on a combination of timestamp and incremental random number to all original fragments formed within the same monitoring period, and to write consecutive sequence number identifiers to each original fragment; after determining the corrected redundant fragment number, the polynomial matrix encoding module is called to perform systematic forward error correction encoding on the original fragments using a cyclic shift generator polynomial, to obtain redundant fragments that correspond one-to-one with the original fragments, and to write a group identifier consistent with the corresponding original fragment and an independently incrementing sequence number identifier to the header of the redundant fragment.
8. An electronic device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the computer program, it implements the steps of the method as described in any one of claims 1 to 6.
9. A computer-readable storage medium storing a computer program, characterized in that, When the computer program is executed by a processor, it implements the steps of the method as described in any one of claims 1 to 6.
Citation Information
Patent Citations
Real-time streaming media transmission method and system based on cloud game and storage medium
CN119232713A
Game acceleration method, game accelerator and storage medium
CN120114824A
Cross-platform network speed measurement and adaptive path switching method and device, and storage medium
CN120238490A