A data processing method, system, device, medium and product

CN122554418APending Publication Date: 2026-08-11INSPUR INTELLIGENT TECHNOLOGY (JIANGSU) CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2026-07-15
Publication Date
2026-08-11

AI Technical Summary

Technical Problem

[0004]有鉴于此,本申请的目的在于提供一种数据处理方法、系统、设备、介质及产品,以解决数据包乱序抵达问题

Benefits of technology

[0017]通过以上方案可知,本申请提供了一种数据处理方法,应用于接收端,包括:若检测到待接收的目标数据,则根据已接收数据确定历史乱序率;基于所述历史乱序率和最新已接收数据的序列号,确定最新接收窗口;其中,所述序列号的长度基于所述接收端的数据传输速率确定;若利用所述最新接收窗口确认所述目标数据的目标序列号符合接收条件,则将所述目标数据按序存入预设的环形缓存。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122554418A_ABST
    Figure CN122554418A_ABST
Patent Text Reader

Abstract

This application discloses a data processing method, system, device, medium, and product in the field of computer technology. When data arrives at the receiving end, the receiving end first calculates the historical out-of-order rate of previously received data to determine the current out-of-order status of the transmission link. Then, based on the historical out-of-order rate and the sequence number of the latest received data, a new receiving window suitable for the current out-of-order status is determined, allowing the window length to be adaptively adjusted according to the transmission link's out-of-order status. Subsequently, the target sequence number of the target data to be received is verified using the new receiving window to determine whether the receiving conditions are met. Data meeting the conditions is temporarily stored in a circular buffer in sequence to ensure correct data sorting within the circular buffer. This allows the corresponding data to be arranged in order according to the sequence number, thus solving the problem of out-of-order arrival and reducing the probability of out-of-order packet loss, misordered data accumulation, and other problems, thereby improving data transmission stability.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer technology, and in particular to a data processing method, system, device, medium and product. Background Technology

[0002] Currently, the sequence number values ​​used for data packets during transmission at the link control layer have a limited range. When a large number of data packets need to be transmitted, the sequence number is cyclically selected from this limited range. Within a short period, multiple untransmitted data packets may have the same sequence number, resulting in sequence number wrapping. In this situation, the sending end may send these data packets with the same sequence number out of order, causing the receiving end to receive them out of order and creating problems for subsequent data packet processing.

[0003] Therefore, how to solve the problem of out-of-order data packet arrival is a problem that needs to be solved by those skilled in the art. Summary of the Invention

[0004] In view of this, the purpose of this application is to provide a data processing method, system, device, medium and product to solve the problem of out-of-order arrival of data packets.

[0005] Firstly, this application provides a data processing method applied at a receiving end, comprising: If target data to be received is detected, the historical out-of-order rate is determined based on the data already received. The latest receiving window is determined based on the historical out-of-order rate and the sequence number of the latest received data; the length of the sequence number is determined based on the data transmission rate of the receiving end. If the latest receiving window confirms that the target sequence number of the target data meets the receiving conditions, the target data is stored sequentially into the preset circular buffer.

[0006] Optionally, the historical out-of-order rate is determined based on the received data, including: Obtain the total number of received data packets and the number of out-of-order packets within a preset time period; determine the historical out-of-order rate based on the ratio of the number of out-of-order packets to the total number; Alternatively, obtain the total number of received data packets and the number of out-of-order packets within multiple preset time periods; calculate the ratio of the number of out-of-order packets in each time period to the total number in the corresponding time period to obtain multiple ratios; determine the historical out-of-order rate based on the average of multiple ratios.

[0007] Optionally, the latest reception window is determined based on the historical out-of-order rate and the sequence number of the latest received data, including: Increment the historical disorder rate by one to obtain the target value; The latest window length is determined based on the product of the default window size, the preset window adjustment factor, and the target value; Based on the latest window length and the sequence number of the latest received data, determine the left boundary and the right boundary of the latest received window.

[0008] Secondly, this application provides a data processing method applied at a sending end, comprising: Get the data transmission rate between the sending and receiving ends; The sequence number length is determined based on the data transmission rate; Generate a target sequence number based on the target data to be sent, with the sequence number length being the target data to be sent. Send target data containing the target sequence number to the receiving end so that the receiving end can detect the target data and determine the historical out-of-order rate based on the received data; determine the latest receiving window based on the historical out-of-order rate and the sequence number of the latest received data; if the latest receiving window confirms that the target sequence number meets the receiving conditions, then store the target data in the preset circular buffer in order.

[0009] Optionally, it also includes: Based on the preset data packet size, perform splitting or aggregation operations on the data to be sent to obtain the packet to be sent. Use the packet to be sent as the target data.

[0010] Optionally, sending target data containing the target sequence number to the receiving end includes: The target data, including the target sequence number, is sent to the receiving end according to the priority of the target data.

[0011] Thirdly, this application provides a data processing apparatus for use at a receiving end, comprising: The out-of-order determination module is used to determine the historical out-of-order rate based on the received data if target data to be received is detected. The window adjustment module is used to determine the latest receiving window based on the historical out-of-order rate and the sequence number of the latest received data; wherein, the length of the sequence number is determined based on the data transmission rate of the receiving end. The data caching module is used to store the target data into a preset circular buffer in sequence if the target sequence number of the target data is confirmed to meet the receiving conditions using the latest receiving window.

[0012] Fourthly, this application provides a data processing apparatus for use at a transmitting end, comprising: The acquisition module is used to acquire the data transmission rate between the sending end and the receiving end; The length determination module is used to determine the sequence number length based on the data transmission rate. The generation module is used to generate target sequence numbers for the target data to be sent according to the sequence number length; The sending module is used to send target data containing the target sequence number to the receiving end, so that after the receiving end detects the target data, it determines the historical out-of-order rate based on the received data; based on the historical out-of-order rate and the sequence number of the latest received data, it determines the latest receiving window; if the latest receiving window confirms that the target sequence number meets the receiving conditions, the target data is stored in a preset circular buffer in order.

[0013] Fifthly, this application provides a data processing system, comprising: The sending end is used to obtain the data transmission rate between the sending end and the receiving end; determine the sequence number length based on the data transmission rate; generate a target sequence number for the target data to be sent according to the sequence number length; and send the target data containing the target sequence number to the receiving end. The receiving end, after detecting target data, determines the historical out-of-order rate based on the received data; determines the latest receiving window based on the historical out-of-order rate and the sequence number of the latest received data; if the latest receiving window confirms that the target sequence number meets the receiving conditions, the target data is stored in a preset circular buffer in order.

[0014] Sixthly, this application provides an electronic device, comprising: Memory, used to store computer programs; A processor is used to execute the computer program to implement the aforementioned disclosed data processing method.

[0015] In a seventh aspect, this application provides a non-volatile storage medium for storing a computer program, wherein the computer program, when executed by a processor, implements the aforementioned disclosed data processing method.

[0016] Eighthly, this application provides a computer program product, including a computer program / instructions that, when executed by a processor, implement the steps of the aforementioned disclosed data processing method.

[0017] As can be seen from the above scheme, this application provides a data processing method applied to a receiving end, including: if target data to be received is detected, then determining the historical out-of-order rate based on the received data; determining the latest receiving window based on the historical out-of-order rate and the sequence number of the latest received data; wherein, the length of the sequence number is determined based on the data transmission rate of the receiving end; if the latest receiving window confirms that the target sequence number of the target data meets the receiving conditions, then storing the target data in sequence into a preset circular buffer.

[0018] As can be seen, when data arrives at the receiving end, this application first calculates the historical out-of-order rate of previously received data to determine the current out-of-order status of the transmission link. Then, based on the historical out-of-order rate and the sequence number of the latest received data, it determines the latest receiving window applicable to the current out-of-order situation, allowing the window length to be adaptively adjusted according to the transmission link's out-of-order status. Subsequently, the target sequence number of the target data to be received is verified using the latest receiving window to determine whether the receiving conditions are met. Data meeting the conditions is temporarily stored in a circular buffer in order to complete the correct data sorting, thus allowing the corresponding data to be arranged in order according to the sequence number. Furthermore, since the sequence number length is determined based on the data transmission rate of the receiving end, it is possible to: use a longer sequence number in high-transmission-rate scenarios to reduce the number of sequence number wraparounds, and use a shorter sequence number in low-transmission-rate scenarios to improve transmission efficiency, thereby avoiding out-of-order data transmission and arrival to a certain extent. Meanwhile, this application increases or decreases the window length of the receiving window based on the historical out-of-order rate, which can make the receiving window cover out-of-order data as much as possible. It also uses a circular buffer to rearrange out-of-order data, thus solving the problem of out-of-order data arrival and reducing the probability of out-of-order packet loss, misordered data accumulation, etc., thereby improving the stability of data transmission.

[0019] Correspondingly, the data processing apparatus, system, equipment, medium, and product provided in this application also have the aforementioned technical effects. Attached Figure Description

[0020] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only embodiments of this application. For those skilled in the art, other drawings can be obtained based on the provided drawings without creative effort.

[0021] Figure 1 This is a flowchart of the first data processing method disclosed in this application; Figure 2 This is a flowchart of the second data processing method disclosed in this application; Figure 3 This is a schematic diagram of the first type of data processing device disclosed in this application; Figure 4 This is a schematic diagram of the second type of data processing device disclosed in this application; Figure 5 This is a schematic diagram of an electronic device disclosed in this application; Figure 6 A server architecture diagram provided in this application; Figure 7 A terminal structure diagram provided for this application. Detailed Implementation

[0022] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other instances obtained by those of ordinary skill in the art without creative effort are within the scope of protection of this application.

[0023] Currently, the sequence number values ​​used by data packets during transmission at the link control layer have a limited range. When transmitting large batches of data packets, the sequence number is cyclically selected from this limited range. Within a short period, multiple untransmitted data packets may have the same sequence number, resulting in sequence number wrapping. In this case, the sending end may send these data packets with the same sequence number out of order, causing the receiving end to receive them out of order, thus creating problems for subsequent data packet processing. To address this, this application provides a data processing scheme that allows the receive window length to adaptively adjust to the out-of-order transmission link conditions. This ensures that the receive window correctly sorts the data in a circular buffer, solving the problem of out-of-order arrival and reducing the probability of out-of-order packet loss and backlog, thereby improving data transmission stability.

[0024] See Figure 1 As shown, this application discloses a first data processing method applied at a receiving end, including: S101. If target data to be received is detected, the historical out-of-order rate is determined based on the received data.

[0025] In this embodiment, the receiving end can monitor the data transmission link in real time. When target data is detected to arrive, it retrieves the locally stored historical reception records. Based on the timing and sequence number of the received data packets in these records, the historical out-of-order rate is calculated. This allows for the quantification of the link's out-of-order status based on real transmission records, providing an accurate and reliable basis for subsequent window adaptive adjustments. In one implementation, determining the historical out-of-order rate based on received data includes: obtaining the total number of received data packets and the number of out-of-order packets within a preset time period; determining the historical out-of-order rate based on the ratio of the number of out-of-order packets to the total number, such as directly using this ratio as the historical out-of-order rate; or, obtaining the total number of received data packets and the number of out-of-order packets within multiple preset time periods; calculating the ratio of the number of out-of-order packets in each time period to the total number in the corresponding time period to obtain multiple ratios; and determining the historical out-of-order rate based on the average of the multiple ratios, such as directly using this average as the historical out-of-order rate. This allows for the reflection of long-term out-of-order characteristics of the link with a smoothed average, avoiding single-time statistical bias.

[0026] This embodiment can set a fixed statistical duration, traverse the received records within this duration, count the total number of successfully received data packets, identify and count the number of out-of-order data packets whose sequence numbers arrive out of order, thereby limiting the statistical range and reducing the amount of invalid calculation. Furthermore, this embodiment supports two modes: single-time period ratio calculation and multi-time period average calculation, thus flexibly adapting to different scenarios to complete the out-of-order rate statistics.

[0027] S102. Determine the latest receiving window based on the historical out-of-order rate and the sequence number of the latest received data; wherein the length of the sequence number is determined based on the data transmission rate of the receiving end.

[0028] It should be noted that this embodiment can set a sequence number of corresponding length according to the current data transmission rate. For example, in high transmission rate scenarios, a longer sequence number is used to reduce the number of sequence number wrap-arounds, while in low transmission rate scenarios, a shorter sequence number can be used to improve transmission efficiency. The matching relationship between sequence number length and applicable scenarios can be referred to Table 1. Accordingly, a matching relationship table between sequence number length and data transmission rate can be preset, and the corresponding sequence number length can be determined by querying this table when the data transmission rate is known.

[0029] Table 1

[0030] This embodiment calculates the window size based on the historical out-of-order rate and the sequence number of the most recently received data. The length of the latest receiving window dynamically expands and contracts according to the link's out-of-order status. Since the sequence number length matches the transmission rate, it balances out-of-order coverage and data transmission efficiency. In one implementation, determining the latest receiving window based on the historical out-of-order rate and the sequence number of the most recently received data includes: incrementing the historical out-of-order rate by one to obtain a target value; determining the latest window length based on the product of the default window size, a preset window adjustment coefficient, and the target value; and determining the left and right boundaries of the latest receiving window based on the latest window length and the sequence number of the most recently received data.

[0031] S103. If the target sequence number of the target data is confirmed to meet the reception conditions using the latest receiving window, the target data is stored in the preset circular buffer in sequence.

[0032] In this embodiment, the left and right boundaries of the latest receiving window are represented by the data sequence number. Therefore, the target sequence number of the target data is compared with the boundary of the latest receiving window. If it falls within the window range, it is determined to meet the receiving conditions. Then, the target data is placed in the corresponding position of the circular buffer according to the sequence number to achieve sequential arrangement. Thus, through window compliance verification and orderly storage in the circular buffer, the out-of-order data can be automatically rearranged, ensuring that the data is stored and read completely in the order of the sequence number.

[0033] As can be seen, in this embodiment, when data arrives at the receiving end, the receiving end first calculates the historical out-of-order rate of previously received data to determine the current out-of-order status of the transmission link. Then, based on the historical out-of-order rate and the sequence number of the latest received data, a new receiving window suitable for the current out-of-order situation is determined. This allows the window length to be adaptively adjusted according to the out-of-order status of the transmission link. Subsequently, the target sequence number of the target data to be received is verified using the new receiving window to determine whether the receiving conditions are met. Data that meets the conditions is temporarily stored in a circular buffer in order to complete the correct sorting of the data. Thus, the corresponding data can be arranged in an orderly manner according to the sequence number. Furthermore, since the length of the sequence number is determined based on the data transmission rate of the receiving end, it is possible to: use a longer sequence number in high-transmission-rate scenarios to reduce the number of sequence number wraparounds, and use a shorter sequence number in low-transmission-rate scenarios to improve transmission efficiency. This can, to a certain extent, avoid out-of-order data transmission and arrival. Meanwhile, this application increases or decreases the window length of the receiving window based on the historical out-of-order rate, which can make the receiving window cover out-of-order data as much as possible. It also uses a circular buffer to rearrange out-of-order data, thus solving the problem of out-of-order data arrival and reducing the probability of out-of-order packet loss, misordered data accumulation, etc., thereby improving the stability of data transmission.

[0034] The second data processing method provided in the embodiments of this application is described below. The second data processing method described below can be referred to in conjunction with other embodiments described herein.

[0035] See Figure 2 As shown in the embodiments of this application, a second data processing method is disclosed, applied at the sending end, including: S201. Obtain the data transmission rate between the sending end and the receiving end.

[0036] The sending end obtains the current data transmission rate in real time through link detection or handshake interaction with the receiving end, thereby enabling it to perceive the current link transmission status in real time and providing an objective basis for the reasonable setting of the sequence number length.

[0037] S202. Determine the serial number length based on the data transmission rate.

[0038] This embodiment can set a sequence number of corresponding length according to the current data transmission rate between the sending and receiving ends. For example, a longer sequence number is used in high-speed scenarios and a shorter sequence number is used in low-speed scenarios. This allows for reducing the probability of loopback when using a longer sequence number at high transmission rates and improving transmission efficiency when using a shorter sequence number at low transmission rates, thus achieving link adaptive matching. The matching relationship between sequence number length and data transmission rate can be found in Table 1.

[0039] S203. Generate a target sequence number for the target data to be sent according to the sequence number length.

[0040] This embodiment can assign a unique and consecutive target sequence number to each target data in an incremental manner according to a determined sequence number length, thereby giving each data packet a unique and ordered identifier and providing a unified standard for data sorting at the receiving end.

[0041] S204. Send target data containing the target sequence number to the receiving end so that after the receiving end detects the target data, it determines the historical out-of-order rate based on the received data; based on the historical out-of-order rate and the sequence number of the latest received data, it determines the latest receiving window; if the latest receiving window confirms that the target sequence number meets the receiving conditions, it stores the target data in the preset circular buffer in order.

[0042] This embodiment can encapsulate the target sequence number into the target data and send it to the receiving end according to the transmission protocol. The receiving end then performs subsequent out-of-order processing and caching, thereby enabling the transmission of standardized identified data to the receiving end and providing support for the receiving end to perform out-of-order processing and ordered caching.

[0043] Furthermore, in order to standardize the packet size of the data to be transmitted and avoid problems such as uneven transmission delay and increased link jitter caused by excessive differences in data packet size, this embodiment performs packet splitting or aggregation operations on the data to be sent according to the preset data packet size to obtain various packets to be sent with similar sizes; the packets to be sent are used as target data, thereby making the data transmission process more stable and orderly, and also reducing the probability of data packets arriving out of order.

[0044] It should be noted that the sending end can also configure corresponding priorities for different target data according to the data's service type, importance, or latency requirements. During transmission scheduling, high-priority data is transmitted first, while low-priority data is queued and waits to be transmitted in order, thereby completing the transmission of target data containing the target sequence number. In one embodiment, sending target data containing the target sequence number to the receiving end includes: sending the target data containing the target sequence number to the receiving end according to the priority of the target data.

[0045] As can be seen in this embodiment, the sending end customizes the sequence number length according to the transmission rate, standardizes the data identifier from the sending side, provides an accurate basis for the receiving end to judge the window and sort the data, and reduces the difficulty of out-of-order processing from the source.

[0046] This application optimizes the data transmission process between different devices in a wireless mesh network.

[0047] First, at the sending end, the packet transmission rate between different devices is periodically calculated. Based on the calculated packet transmission rate, a sequence number length of 12 bits, 24 bits, or 32 bits is set. This ensures that the sequence number length adapts to the actual transmission rate, preventing frequent data anomalies caused by repeated sequence number wrapping. Second, critical data (such as control packets, small data packets, and core service packets) is given high priority, allowing high-priority data to be transmitted first and reducing its latency fluctuations. Non-critical data is given low priority to prevent non-critical data from preempting transmission resources, thus ensuring stable, low-latency transmission of critical data. For large data packets, an adaptive fragmentation strategy is adopted, dynamically adjusting the fragment size (i.e., the preset data packet size) based on link quality. When link quality is poor, fragmentation is reduced to lower retransmission costs; when link quality is good, fragmentation is increased to improve transmission efficiency. This reduces data out-of-order issues caused by increased packet loss due to fragmentation. For small data packets, an aggregation method is used to combine multiple small data packets into a large packet for transmission, reducing the total number of data packets transmitted. This reduces the problem of data out-of-order transmission caused by the loss of one or more discontinuous small data packets, thereby reducing the probability of out-of-order transmission and large delays from the source of transmission and reducing the pressure on subsequent data processing.

[0048] Furthermore, the receiving end provides a dynamic receiving window, which calculates the proportion of out-of-order data received per unit time based on historical real-time network data streams, and determines the left and right boundaries of the window accordingly, so that the receiving window accurately matches the current network out-of-order level. When the out-of-order proportion is high, the window length is increased to cover more out-of-order packets, and when the out-of-order proportion is low, the window length is decreased to save cache resources.

[0049] The receiving window includes three core parameters: the left boundary of the window, the right boundary of the window, and the dynamic window size (i.e., the window length). The definition and function of each parameter are shown in Table 2.

[0050] Table 2

[0051] Specifically, the dynamic window size is calculated based on the proportion of out-of-order data received per unit time, OutOfOrder_Ratio, using the formula: W = β × Base_Window × (1 + OutOfOrder_Ratio). Here, β is the window adjustment coefficient (1.2~1.8, configurable), and Base_Window is the base window size (default 512, to adapt to low out-of-order scenarios). The higher the out-of-order proportion, the larger the window length, ensuring accurate coverage of the current network's out-of-order sequence numbers while avoiding meaningless window redundancy.

[0052] The receiving end calculates OutOfOrder_Ratio as the number of out-of-order packets divided by the total number of received packets. If necessary, OutOfOrder_Ratio can be taken as the average of the OutOfOrder_Ratio over the most recent three time units to smooth out instantaneous fluctuations and avoid single-period abnormal data affecting window stability.

[0053] In one example, the window size W is calculated every second, and the left and right boundaries of the window are set. The minimum window length can be set to 512, and the maximum window length to 2048, both configurable. If the calculated W is lower than the minimum window length, the minimum window length is used; if it is higher than the maximum window length, the maximum window length is used.

[0054] When updating the window boundaries, the right boundary is updated synchronously with the window size, i.e., Right_Edge = Left_Edge + W. The left boundary only moves to the right when consecutive data packets are submitted in sequence, i.e., Left_Edge = the maximum sequence number submitted + 1. This ensures that the window always focuses on the currently valid receiving interval.

[0055] In this embodiment, the buffer nodes of the circular buffer are used to store data packet payloads, payload lengths, sequence numbers, and reception timestamps. Data packets are inserted into the circular buffer in ascending order of sequence number, thereby improving the efficiency of subsequent sequential data retrieval. Furthermore, two types of data in the circular buffer are periodically cleaned: expired packets with sequence numbers less than the left boundary of the window, and timed-out packets with buffer times exceeding T_timeout. T_timeout = 3 × preset unit time × (1 + 0.5 × OutOfOrder_Ratio). The higher the proportion of out-of-order packets, the longer the timeout, thus preventing the accidental deletion of large-latency out-of-order packets in high-out-of-order scenarios. The preset unit time is a set value, such as 1 second, 1 minute, 10 minutes, etc.

[0056] In one example, the data receiving process at the receiving end includes: receiving data packets and parsing the packet header, extracting the sequence number (ESN), and counting the total number of received packets and the number of out-of-order packets within the current unit of time; judging the validity of the sequence number: if the ESN is less than the left boundary of the window, then discard the expired packet; if the ESN is greater than the right boundary of the window, then store it in the out-of-order buffer and wait for the window to expand dynamically; if the ESN is between the left and right boundaries of the window, then store it in the circular buffer according to the sequence number.

[0057] When processing data in the circular buffer, start from the head of the circular buffer to check if there are consecutive sequence numbers starting from the left boundary. If there are consecutive sequence numbers, extract data packets from the circular buffer in sequence and submit them to the upper layer in order. At the same time, update the left boundary of the window to the maximum sequence number that has been submitted + 1.

[0058] Specifically, the window size can be recalculated every second and the right boundary of the window can be updated. Expired and timed-out packets in the circular cache can be cleared every 500ms. The timeout criterion is that the cache time exceeds 3 units of time, in order to adapt to the data reception statistics cycle.

[0059] As can be seen, this embodiment reduces the probability of data out-of-order and large delays from the source of transmission by adaptively setting the sequence number length at the sending end, transmitting data according to priority, and fragmenting and aggregating data into small packets. By dynamically adjusting the receiving window at the receiving end and setting a ring buffer to accurately match the degree of network out-of-order transmission, it can solve the problem of large delays and out-of-order wrapping in wireless mesh networking, and improve the reliability and accuracy of data transmission.

[0060] The first data processing apparatus provided in the embodiments of this application is described below. The data processing apparatus described below can be referred to in conjunction with the other embodiments described herein.

[0061] See Figure 3 As shown, this application provides a first data processing apparatus applied at a receiving end, comprising: The out-of-order determination module 301 is used to determine the historical out-of-order rate based on the received data if target data to be received is detected. The window adjustment module 302 is used to determine the latest receiving window based on the historical out-of-order rate and the sequence number of the latest received data; wherein the length of the sequence number is determined based on the data transmission rate of the receiving end. The data caching module 303 is used to store the target data into a preset circular buffer in sequence if the target sequence number of the target data is confirmed to meet the receiving conditions using the latest receiving window.

[0062] In one implementation, the out-of-order determination module is used for: Obtain the total number of received data packets and the number of out-of-order packets within a preset time period; determine the historical out-of-order rate based on the ratio of the number of out-of-order packets to the total number; or, obtain the total number of received data packets and the number of out-of-order packets within multiple preset time periods; calculate the ratio of the number of out-of-order packets in each time period to the total number in the corresponding time period, obtaining multiple ratios; determine the historical out-of-order rate based on the average of the multiple ratios.

[0063] In one implementation, the window adjustment module is used for: Increment the historical disorder rate by one to obtain the target value; The latest window length is determined based on the product of the default window size, the preset window adjustment factor, and the target value; Based on the latest window length and the sequence number of the latest received data, determine the left boundary and the right boundary of the latest received window.

[0064] For more detailed information on the working process of each module and unit in this embodiment, please refer to the relevant content disclosed in the foregoing embodiments, which will not be repeated here.

[0065] As can be seen, this embodiment provides a data processing device that enables the receiving window length to be adaptively adjusted according to the out-of-order situation of the transmission link. This allows the receiving window to correctly sort the data in the circular buffer, thus solving the problem of out-of-order data arrival and reducing the probability of out-of-order packet loss, misordered packet accumulation, and other problems, thereby improving the stability of data transmission.

[0066] The second data processing apparatus provided in the embodiments of this application is described below. The data processing apparatus described below can be referred to in conjunction with the other embodiments described herein.

[0067] See Figure 4 As shown, this application embodiment provides a second data processing apparatus, applied at the sending end, including: The acquisition module 401 is used to acquire the data transmission rate between the sending end and the receiving end; The length determination module 402 is used to determine the sequence number length based on the data transmission rate. The generation module 403 is used to generate a target sequence number for the target data to be sent according to the sequence number length; The sending module 404 is used to send target data containing the target sequence number to the receiving end, so that after the receiving end detects the target data, it determines the historical out-of-order rate based on the received data; determines the latest receiving window based on the historical out-of-order rate and the sequence number of the latest received data; if the latest receiving window confirms that the target sequence number meets the receiving conditions, the target data is stored in a preset circular buffer in order.

[0068] In one implementation, it further includes: The packet processing module is used to perform unpacking or aggregation operations on the data to be sent according to the preset data packet size to obtain the packet to be sent; and to use the packet to be sent as the target data.

[0069] In one implementation, the sending module is used to: The target data, including the target sequence number, is sent to the receiving end according to the priority of the target data.

[0070] For more detailed information on the working process of each module and unit in this embodiment, please refer to the relevant content disclosed in the foregoing embodiments, which will not be repeated here.

[0071] As can be seen, this embodiment provides a data processing device that enables the receiving window length to be adaptively adjusted according to the out-of-order situation of the transmission link. This allows the receiving window to correctly sort the data in the circular buffer, thus solving the problem of out-of-order data arrival and reducing the probability of out-of-order packet loss, misordered packet accumulation, and other problems, thereby improving the stability of data transmission.

[0072] The following describes a data processing system provided by an embodiment of this application. The data processing system described below can be referred to in conjunction with other embodiments described herein.

[0073] This application discloses a data processing system, including: The sending end is used to obtain the data transmission rate between the sending end and the receiving end; determine the sequence number length based on the data transmission rate; generate a target sequence number for the target data to be sent according to the sequence number length; and send the target data containing the target sequence number to the receiving end. The receiving end, after detecting target data, determines the historical out-of-order rate based on the received data; determines the latest receiving window based on the historical out-of-order rate and the sequence number of the latest received data; if the latest receiving window confirms that the target sequence number meets the receiving conditions, the target data is stored in a preset circular buffer in order.

[0074] In one implementation, the receiving end is configured to obtain the total number of received data packets and the number of out-of-order packets within a preset time period; determine the historical out-of-order rate based on the ratio of the number of out-of-order packets to the total number; or, obtain the total number of received data packets and the number of out-of-order packets within multiple preset time periods; calculate the ratio of the number of out-of-order packets in each time period to the total number in the corresponding time period to obtain multiple ratios; and determine the historical out-of-order rate based on the average of the multiple ratios.

[0075] In one implementation, the receiving end increments the historical out-of-order rate by one to obtain a target value; determines the latest window length based on the product of the default window size, the preset window adjustment coefficient, and the target value; and determines the left boundary and the right boundary of the latest receiving window based on the latest window length and the sequence number of the latest received data.

[0076] In one implementation, the sending end is used to perform a packet splitting or aggregating operation on the data to be sent according to a preset data packet size to obtain a packet to be sent; and to use the packet to be sent as the target data.

[0077] In one implementation, the sending end is configured to send target data containing a target sequence number to the receiving end according to the priority of the target data.

[0078] For more detailed information on the working process of each terminal in this embodiment, please refer to the relevant content disclosed in the foregoing embodiments, which will not be repeated here.

[0079] As can be seen, this embodiment provides a data processing system in which the sending end adaptively sets the sequence number length, transmits data according to priority, and segments or aggregates data into small packets, thereby reducing the probability of data out-of-order and large delays from the transmission source. By dynamically adjusting the receiving window and setting a ring buffer to accurately match the degree of network out-of-order, the system can solve the problem of data out-of-order wrapping and improve the reliability and accuracy of data transmission.

[0080] The following describes an electronic device provided by an embodiment of this application. The electronic device described below can be referred to in conjunction with other embodiments described herein.

[0081] See Figure 5 As shown in the figure, an embodiment of this application discloses an electronic device, including: Memory 501 is used to store computer programs; Processor 502 is configured to execute the computer program to implement the method disclosed in any of the above embodiments.

[0082] Furthermore, embodiments of this application also provide an electronic device. The aforementioned electronic device can be, for example,... Figure 6 The server shown can also be as follows: Figure 7 The terminal shown. Figure 6 and Figure 7 These are all diagrams illustrating the structure of an electronic device according to an exemplary embodiment. The content in the diagrams should not be considered as any limitation on the scope of this application.

[0083] Figure 6This is a schematic diagram of a server structure provided in an embodiment of this application. The server may specifically include: at least one processor, at least one memory, a power supply, a communication interface, an input / output interface, and a communication bus. The memory stores a computer program, which is loaded and executed by the processor to implement the relevant steps in the data processing disclosed in any of the foregoing embodiments.

[0084] In this embodiment, the power supply is used to provide operating voltage for each hardware device on the server; the communication interface can create a data processing channel between the server and external devices, and the communication protocol it follows can be any communication protocol applicable to the technical solution of this application, and is not specifically limited here; the input / output interface is used to acquire external input data or output data to the outside world, and its specific interface type can be selected according to specific application needs, and is not specifically limited here.

[0085] In addition, the memory, as a carrier for resource storage, can be a read-only memory, random access memory, disk or optical disk, etc. The resources stored on it include operating system, computer programs and data, etc., and the storage method can be temporary storage or permanent storage.

[0086] The operating system manages and controls the various hardware devices and computer programs on the server to enable the processor to perform operations and processes on the data in the memory. It can be Windows Server, Netware, Unix, Linux, etc. In addition to computer programs capable of performing the data processing methods disclosed in any of the foregoing embodiments, the computer programs may further include computer programs capable of performing other specific tasks. The data may include application update information and application developer information.

[0087] Figure 7 This is a schematic diagram of the structure of a terminal provided in an embodiment of this application. The terminal may include, but is not limited to, a smartphone, tablet computer, laptop computer, or desktop computer.

[0088] Typically, the terminal in this embodiment includes a processor and a memory.

[0089] The processor may include one or more processing cores, such as a quad-core processor or an octa-core processor. The processor can be implemented using at least one hardware form of DSP (Digital Signal Processing), FPGA (Field-Programmable Gate Array), or PLA (Programmable Logic Array). The processor may also include a main processor and coprocessors. The main processor, also known as the CPU (Central Processing Unit), is used to process data in the wake-up state; the coprocessor is a low-power processor used to process data in the standby state. In some embodiments, the processor may integrate a GPU (Graphics Processing Unit), which is responsible for rendering and drawing the content to be displayed on the screen. In some embodiments, the processor may also include an AI (Artificial Intelligence) processor, which handles computational operations related to machine learning.

[0090] The memory may include one or more computer non-volatile storage media, which may be non-transitory. The memory may also include high-speed random access memory and non-volatile memory, such as one or more disk storage devices or flash memory devices. In this embodiment, the memory is used to store at least the following computer program, which, after being loaded and executed by the processor, is capable of implementing the relevant steps in the data processing method executed by the terminal side as disclosed in any of the foregoing embodiments. In addition, the resources stored in the memory may also include operating systems and data, and the storage method may be temporary or permanent storage. The operating system may include Windows, Unix, Linux, etc. The data may include, but is not limited to, application update information.

[0091] In some embodiments, the terminal may further include a display screen, an input / output interface, a communication interface, a sensor, a power supply, and a communication bus.

[0092] Those skilled in the art will understand that Figure 7 The structure shown does not constitute a limitation on the terminal and may include more or fewer components than illustrated.

[0093] The following describes a non-volatile storage medium provided in an embodiment of this application. The non-volatile storage medium described below can be referred to in conjunction with other embodiments described herein.

[0094] A non-volatile storage medium is provided for storing a computer program, wherein the computer program, when executed by a processor, implements the data processing method disclosed in the foregoing embodiments. The non-volatile storage medium is a computer-readable non-volatile storage medium, which, as a carrier for resource storage, can be a read-only memory, random access memory, disk, or optical disk, etc. The resources stored thereon include an operating system, computer programs, and data, and the storage method can be temporary storage or permanent storage.

[0095] The following describes a computer program product provided by an embodiment of this application. The computer program product described below can be referred to in conjunction with other embodiments described herein.

[0096] A computer program product includes a computer program / instructions that, when executed by a processor, implement the steps of the aforementioned disclosed data processing method.

[0097] Any of the components, modules, units, parts, methods, and operations described herein can be implemented using software, firmware, hardware (e.g., fixed logic circuitry), manual processing, or any combination thereof. Alternatively or additionally, any functionality described herein can be executed at least in part by one or more hardware logic components, such as, but not limited to, a central processing unit (CPU), a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), an application-specific standard product (ASSP), a system-on-a-chip (SoC), a complex programmable logic device (CPLD), a microprocessor (MCU), etc. The terms "system," "computing device," or "apparatus" as used herein encompass various means, devices, and machines for processing data, including, for example, one or more programmable processors, computers, SoCs, or combinations thereof. The apparatus may also include code that creates an execution environment for the computer program in question, such as code constituting processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or one or more combinations thereof. The aforementioned computer program (also known as a program, software, software application, app, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and can be deployed in any form, including as a standalone program or as a module, component, subroutine, object, or other unit suitable for a computing environment.

[0098] The various embodiments in this specification are described in a progressive manner. Each embodiment focuses on the differences from other embodiments. The same or similar parts between the various embodiments can be referred to each other.

[0099] The steps of the methods or algorithms described in conjunction with the embodiments disclosed herein can be implemented directly by hardware, a software module executed by a processor, or a combination of both. The software module can be located in random access memory (RAM), main memory, read-only memory (ROM), electrically programmable ROM, electrically erasable programmable ROM, registers, hard disk, removable disk, CD-ROM, or any other form of non-volatile storage medium known in the art.

[0100] This document uses specific examples to illustrate the principles and implementation methods of this application. The descriptions of the above embodiments are only intended to help understand the methods and core ideas of this application. At the same time, for those skilled in the art, there will be changes in the specific implementation methods and application scope based on the ideas of this application. Therefore, the content of this specification should not be construed as a limitation of this application.

Claims

1. A data processing method, characterized in that, Applied to the receiving end, including: If target data to be received is detected, the historical out-of-order rate is determined based on the data already received. The latest receiving window is determined based on the historical out-of-order rate and the sequence number of the latest received data; wherein the length of the sequence number is determined based on the data transmission rate of the receiving end. If the latest receiving window confirms that the target sequence number of the target data meets the receiving conditions, the target data is stored sequentially into a preset circular buffer.

2. The method according to claim 1, characterized in that, The historical out-of-order rate is determined based on the received data, including: Obtain the total number of received data packets and the number of out-of-order packets within a preset time period; determine the historical out-of-order rate based on the ratio of the number of out-of-order packets to the total number; Alternatively, the total number of received data packets and the number of out-of-order packets are obtained within multiple preset time periods; the ratio of the number of out-of-order packets in each time period to the total number in the corresponding time period is calculated to obtain multiple ratios; the historical out-of-order rate is determined based on the average of the multiple ratios.

3. The method according to any one of claims 1 to 2, characterized in that, Based on the historical out-of-order rate and the sequence number of the latest received data, the latest reception window is determined, including: Increment the historical disorder rate by one to obtain the target value; The latest window length is determined based on the product of the default window size, the preset window adjustment factor, and the target value; Based on the latest window length and the sequence number of the latest received data, the left boundary and the right boundary of the latest received window are determined.

4. A data processing method, characterized in that, Applied to the sending end, including: Obtain the data transmission rate between the sending end and the receiving end; The sequence number length is determined based on the data transmission rate; Generate a target sequence number according to the target data to be sent, with the specified sequence number length. The target data containing the target sequence number is sent to the receiving end, so that after the receiving end detects the target data, it determines the historical out-of-order rate based on the received data; based on the historical out-of-order rate and the sequence number of the latest received data, it determines the latest receiving window; if the latest receiving window confirms that the target sequence number meets the receiving conditions, the target data is stored in a preset circular buffer in sequence.

5. The method according to claim 4, characterized in that, Also includes: Based on the preset data packet size, perform splitting or aggregation operations on the data to be sent to obtain the packet to be sent. The packet to be sent is taken as the target data.

6. The method according to claim 4, characterized in that, Sending the target data containing the target sequence number to the receiving end includes: The target data, containing the target sequence number, is sent to the receiving end according to the priority of the target data.

7. A data processing system, characterized in that, include: The sending end is used to obtain the data transmission rate between the sending end and the receiving end; The sequence number length is determined based on the data transmission rate; Generate a target sequence number according to the target data to be sent, with the specified sequence number length. Send the target data containing the target sequence number to the receiving end; The receiving end is configured to, upon detecting the target data, determine the historical out-of-order rate based on the received data; determine the latest receiving window based on the historical out-of-order rate and the sequence number of the latest received data; and if the latest receiving window confirms that the target sequence number meets the receiving conditions, then store the target data in a preset circular buffer in sequence.

8. An electronic device, characterized in that, include: Memory, used to store computer programs; A processor for executing the computer program to implement the method as claimed in any one of claims 1 to 6.

9. A non-volatile storage medium, characterized in that, Used to store a computer program, wherein the computer program, when executed by a processor, implements the method as described in any one of claims 1 to 6.

10. A computer program product comprising a computer program / instructions, characterized in that, When the computer program / instructions are executed by the processor, they implement the method described in any one of claims 1 to 6.