Data processing method and device, electronic equipment and storage medium

CN118828100BActive Publication Date: 2026-08-11DOUYIN VISION CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-04-19
Publication Date
2026-08-11

AI Technical Summary

Benefits of technology

[0018]在本公开一个或多个实施例中,确定终端设备与服务器之间的多个数据传输路径中的每个数据传输路径的丢包率、每个数据传输路径的数据传输往返时长和每个数据传输路径的数据超时重传时长,根据每个数据传输路径的丢包率、数据传输往返时长和数据超时重传时长,分别确定每个数据传输路径从向服务器传输请求数据包开始到接收到与请求数据包对应的响应数据包为止所用的预估时长,基于每个数据传输路径的预估时长,在各个未传输的请求数据包中选择将由第一数据传输路径传输的目标请求数据包,通过第一数据传输路径向服务器传输目标请求数据包。可见,通过本公开一个或多个实施例,能够结合每个数据传输路径的从向服务器传输请求数据包开始到接收到相应的响应数据包为止所用的预估时长,为数据传输路径选择需要发送的请求数据包,从而使得各个请求数据包所对应的响应数据包能够尽可能按照期望顺序有序到达终端设备。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118828100B_ABST
    Figure CN118828100B_ABST
Patent Text Reader

Abstract

This disclosure provides a data processing method, apparatus, electronic device, and storage medium. The method includes: determining the packet loss rate, round-trip time, and timeout retransmission time for each of a plurality of data transmission paths between a terminal device and a server; determining an estimated time for each data transmission path from the start of transmitting a request data packet to the server to receiving a response data packet corresponding to the request data packet, based on the packet loss rate, round-trip time, and timeout retransmission time for each data transmission path; selecting a target request data packet to be transmitted by a first data transmission path from among the untransmitted request data packets based on the estimated time; and transmitting the target request data packet to the server through the first data transmission path. This embodiment enables data to arrive at the terminal device in the desired order as much as possible.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of communication technology, and in particular to a data processing method, apparatus, electronic device, and storage medium. Background Technology

[0002] Currently, user terminal devices can display data to users, such as playing videos. The specific process is as follows: the terminal device sends a request to the server, which can be in the form of a request data packet. The server returns the required data to the terminal device based on the request, and the terminal device then displays the data.

[0003] When displaying data, it is usually necessary to ensure that the data arrives at the terminal device in the expected order. For example, the video data corresponding to each video frame arrives at the terminal device in the order of video playback to ensure the smoothness of the user's video viewing.

[0004] Therefore, a technical solution is needed to ensure that data arrives at the terminal device in the desired order as much as possible. Summary of the Invention

[0005] This disclosure provides a data processing method, apparatus, electronic device, and storage medium to ensure that data arrives at the terminal device in the desired order as much as possible.

[0006] In a first aspect, embodiments of this disclosure provide a data processing method, including:

[0007] Determine the packet loss rate, round-trip time, and data timeout retransmission time for each of the multiple data transmission paths between the terminal device and the server;

[0008] Based on the packet loss rate, the round-trip time of data transmission, and the data timeout retransmission time for each data transmission path, the estimated time taken for each data transmission path from the start of transmitting the request data packet to the server until the response data packet corresponding to the request data packet is received is determined respectively.

[0009] Based on the estimated duration of each data transmission path, select the target request data packet to be transmitted by the first data transmission path from among the untransmitted request data packets;

[0010] The target request data packet is transmitted to the server through the first data transmission path.

[0011] Secondly, embodiments of this disclosure provide a data processing apparatus, including:

[0012] The data determination unit is used to determine the packet loss rate, the round-trip time of data transmission, and the data timeout retransmission time of each of the multiple data transmission paths between the terminal device and the server.

[0013] The duration determination unit is used to determine the estimated duration for each data transmission path from the start of transmitting a request data packet to the server to the receipt of a response data packet corresponding to the request data packet, based on the packet loss rate, the round-trip time of the data transmission, and the data timeout retransmission duration of each data transmission path.

[0014] A data selection unit is used to select, from among the untransmitted request data packets, a target request data packet to be transmitted by the first data transmission path, based on the estimated duration of each data transmission path.

[0015] The data transmission unit is used to transmit the target request data packet to the server through the first data transmission path.

[0016] Thirdly, embodiments of this disclosure provide an electronic device, including: a processor; and a memory configured to store computer-executable instructions, which, when executed, cause the processor to perform the steps of the method described in the first aspect above.

[0017] Fourthly, embodiments of this disclosure provide a computer-readable storage medium for storing computer-executable instructions that, when executed by a processor, implement the steps of the method described in the first aspect.

[0018] In one or more embodiments of this disclosure, the packet loss rate, round-trip time, and timeout retransmission time of each data transmission path in a plurality of data transmission paths between the terminal device and the server are determined. Based on the packet loss rate, round-trip time, and timeout retransmission time of each data transmission path, the estimated time taken for each data transmission path from the start of transmitting a request data packet to the server to the receipt of a response data packet corresponding to the request data packet is determined. Based on the estimated time of each data transmission path, a target request data packet to be transmitted by the first data transmission path is selected from among the untransmitted request data packets, and the target request data packet is transmitted to the server through the first data transmission path. Therefore, through one or more embodiments of this disclosure, the estimated time taken for each data transmission path from the start of transmitting a request data packet to the server to the receipt of the corresponding response data packet can be combined to select the request data packets to be sent for the data transmission path, thereby ensuring that the response data packets corresponding to each request data packet arrive at the terminal device in the desired order as much as possible. Attached Figure Description

[0019] To more clearly illustrate the technical solutions in one or more embodiments of this disclosure 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 some embodiments recorded in this disclosure. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0020] Figure 1 A schematic flowchart illustrating a data processing method provided in an embodiment of this disclosure;

[0021] Figure 2 A schematic flowchart illustrating a data processing method provided in another embodiment of this disclosure;

[0022] Figure 3 This is a schematic diagram illustrating an application scenario of data processing provided in an embodiment of this disclosure;

[0023] Figure 4 This is a schematic diagram of the structure of a data processing apparatus provided in an embodiment of the present disclosure;

[0024] Figure 5 This is a schematic diagram of the structure of an electronic device provided in an embodiment of the present disclosure. Detailed Implementation

[0025] To enable those skilled in the art to better understand the technical solutions in one or more embodiments of this disclosure, the technical solutions in one or more embodiments of this disclosure will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments of this disclosure, and not all of the embodiments. Based on one or more embodiments of this disclosure, all other embodiments obtained by those skilled in the art without creative effort should fall within the protection scope of this disclosure.

[0026] In existing technologies, multiple low-cost PCDN (Personal Content Delivery Network) service nodes are used simultaneously to transmit video data to terminal devices. The terminal device sends request packets to the service nodes, requesting data from them. Upon receiving the request packets, the service nodes return corresponding response packets to the terminal devices. Using multiple service nodes reduces the probability of transmission failures and provides greater bandwidth, but it also introduces new problems. Due to the heterogeneity of network quality between the terminal devices and service nodes, such as packet loss rate, transmission latency, and bandwidth, data may not arrive at the terminal devices in the correct order. This out-of-order problem will reduce download speed, and since download speed is related to video bitrate, it is highly likely to reduce the video bitrate, affecting the user's video viewing experience.

[0027] Based on this, this disclosure provides a data processing method applied to a terminal device and executed by the terminal device. This method aims to ensure that data arrives at the terminal device from the server in the desired order. Terminal devices include, but are not limited to, electronic products such as mobile phones, computers, tablets, in-vehicle computers, and wearable devices. The request data packet sent by the terminal device to the server may include a data packet requesting video data, and the response data packet sent by the server to the terminal device may include the video data packet. Of course, the request data packet and response data packet may also include other data, which is not limited here.

[0028] Figure 1 This is a schematic flowchart of a data processing method provided in an embodiment of the present disclosure, as shown below. Figure 1 As shown, the method includes:

[0029] Step S102: Determine the packet loss rate, round-trip time, and data timeout retransmission time of each data transmission path among the multiple data transmission paths between the terminal device and the server.

[0030] Step S104: Based on the packet loss rate, data transmission round-trip time, and data timeout retransmission time of each data transmission path, determine the estimated time for each data transmission path from the start of transmitting the request data packet to the server until the response data packet corresponding to the request data packet is received.

[0031] Step S106: Based on the estimated duration of each data transmission path, select the target request data packet to be transmitted by the first data transmission path from among the untransmitted request data packets;

[0032] Step S108: Transmit the target request data packet to the server through the first data transmission path.

[0033] In this embodiment of the disclosure, the packet loss rate, round-trip time, and timeout retransmission time of each data transmission path in the multiple data transmission paths between the terminal device and the server are determined. Based on the packet loss rate, round-trip time, and timeout retransmission time of each data transmission path, the estimated time taken for each data transmission path from the start of transmitting a request data packet to the server to the receipt of a response data packet corresponding to the request data packet is determined. Based on the estimated time of each data transmission path, a target request data packet to be transmitted by the first data transmission path is selected from among the untransmitted request data packets, and the target request data packet is transmitted to the server through the first data transmission path. Therefore, through one or more embodiments of this disclosure, the estimated time taken for each data transmission path from the start of transmitting a request data packet to the server to the receipt of the corresponding response data packet can be combined to select the request data packets to be sent for the data transmission path, thereby ensuring that the response data packets corresponding to each request data packet arrive at the terminal device in the desired order as much as possible.

[0034] In step S102 above, the packet loss rate, round-trip time, and timeout retransmission time of each data transmission path in the multiple data transmission paths between the terminal device and the server are determined. Each data transmission path includes the first data transmission path for the request data packet to be allocated.

[0035] Specifically, the terminal device establishes connections with multiple PCDN nodes, and a data transmission path is established between the terminal device and each PCDN node. A data transmission path can have multiple data transmission windows, and each data transmission window can simultaneously send one request data packet to a PCDN node. A data transmission path can have a maximum of a fixed number of data transmission windows, namely CWND (congestion window). In all embodiments of this paper, the server can be a PCDN node; for simplicity, it will be consistently referred to as "server" in the following text.

[0036] When a data transmission path has an idle window and receives a response data packet from the server, that data transmission path is designated as the first data transmission path for the request data packet to be allocated, and then... Figure 1 The process involves determining the target request data packet for the first data transmission path. Alternatively, when a data transmission path has an idle window and the current time reaches its designated timeout period, that data transmission path is selected as the first data transmission path for the request data packet to be allocated, and then... Figure 1 The process involves determining the target request data packet for the first data transmission path.

[0037] The packet loss rate of a data transmission path can be represented by a loss function and can be calculated using any algorithm. Each data transmission path has its own packet loss rate, which can be the same or different across different paths. The round-trip time (RTT) of a data transmission path refers to the RTT metric, which reflects the length of the data transmission path. RTT can be calculated using any algorithm, and each data transmission path has its own RTT, which can be the same or different across different paths. In this embodiment, the round-trip time of a data transmission path can be the RTT calculated using any algorithm, the round-trip time used to transmit the previous data packet, the average round-trip time over a historical period, or the round-trip time calculated through iterative updates using a sliding window. No limitation is imposed here.

[0038] The data timeout retransmission duration for a data transmission path refers to the Retransmission Timeout (RTO) metric. If a request data packet is sent to the server and no response data packet is received within the RTO period, a data packet retransmission mechanism needs to be initiated. RTO can be calculated using any algorithm, and each data transmission path has its own RTO; the RTOs of different data transmission paths can be the same or different.

[0039] Here is a process for calculating RTO. The RTO of any data transmission path can be calculated based on the RTT of that path using the following formulas (1)-(3). Of course, the RTO of the data transmission path can also be calculated in other ways, which are not limited here.

[0040] RTT VAR = (1-beta)*RTT VAR +beta*|SRTT—RTT| (1)

[0041] SRTT=(1-alpha)*SRTT+alpha*RTT (2)

[0042] RTO = SRTT + 4 * RTT VAR (3)

[0043] In the above formulas (1)-(3), RTT VARSRTT represents the average deviation obtained after smoothing the RTT of the data transmission path for which RTO needs to be calculated; SRTT represents the smoothed RTT of the data transmission path for which RTO needs to be calculated; RTT is the RTT of the data transmission path for which RTO needs to be calculated; beta is the RTT. VAR The smoothing coefficient is typically 1 / 4; alpha is the smoothing coefficient of SRTT, typically 1 / 8.

[0044] When calculating RTO, starting from the establishment of the data transmission path, the RTT is updated every time the data transmission path receives a response data packet from the server. Then, the updated RTT is combined with the previously calculated RTT. VAR And SRTT, update RTT using the above formulas (1) and (2). VAR And SRTT, based on the updated RTT VAR And SRTT, update RTO using the above formula (3); after receiving the response data packet for the first time, RTT VAR The initial value can be set to RTT / 2, and the initial value of SRTT can be set to RTT to facilitate RTT updates. VAR And SRTT.

[0045] In step S104 above, based on the packet loss rate, round-trip time of data transmission, and data timeout retransmission time of each data transmission path, the estimated time taken for each data transmission path from the start of transmitting the request data packet to the server until the response data packet corresponding to the request data packet is received is determined.

[0046] Specifically, for each data transmission path, the estimated time taken from the start of transmitting the request data packet to the server to the receipt of the corresponding response data packet is determined based on the packet loss rate, data transmission round-trip time, and data timeout retransmission time of the data transmission path.

[0047] The key point is to explain the meaning of estimated duration. Estimated duration refers to the time taken from the start of sending a request data packet to the server to receiving the corresponding response data packet from the server. The premise for determining the estimated duration is that the data transmission path successfully obtains the response data packet. Unlike RTT, which is more of a measure of the length of the data transmission path (not necessarily receiving a response data packet within one RTT), the estimated duration is highly likely to receive one within an estimated duration. Alternatively, the estimated duration can be considered the average time for the data transmission path to successfully receive response data packets historically. Each data transmission path has an estimated duration, and the estimated durations of different data transmission paths may be equal or unequal.

[0048] In one embodiment, based on the packet loss rate, round-trip time, and timeout retransmission time for each data transmission path, the estimated time taken for each data transmission path from the start of transmitting the request data packet to the server until the response data packet corresponding to the request data packet is received is determined, including:

[0049] For each data transmission path, the adjustment weight of the data timeout retransmission duration for the data transmission path is determined based on the packet loss rate of the data transmission path.

[0050] For each data transmission path, the estimated duration of the data transmission path is determined based on the adjustment weight of the data transmission path, the round-trip time of data transmission, and the timeout retransmission duration.

[0051] Specifically, firstly, for each data transmission path, the adjustment weight of the data timeout retransmission duration is determined based on the packet loss rate of that data transmission path. Then, for each data transmission path, the estimated duration of that data transmission path is determined based on the adjustment weight, the round-trip time of data transmission, and the data timeout retransmission duration.

[0052] As can be seen, through this embodiment, the adjustment weight of the data timeout retransmission duration of the data transmission path can be determined according to the packet loss rate of the data transmission path. Based on the adjustment weight, the round-trip time of data transmission, and the data timeout retransmission duration, the estimated duration of the data transmission path can be determined. Thus, the data timeout retransmission duration of the data transmission path can be adjusted in combination with the packet loss rate, so that the adjusted data timeout retransmission duration matches the packet loss situation, thereby accurately determining the estimated duration.

[0053] In one embodiment, for each data transmission path, the estimated duration of the data transmission path is determined based on the adjustment weight of the data transmission path, the data transmission round-trip time, and the data timeout retransmission time, including:

[0054] The data timeout retransmission duration of the data transmission path is adjusted by utilizing the adjustment weight of the data transmission path;

[0055] The estimated duration of the data transmission path is determined based on the adjusted data timeout retransmission duration and the round-trip time of the data transmission path.

[0056] Specifically, for any data transmission path, firstly, the data timeout retransmission duration is adjusted using the adjustment weight. For example, the adjustment weight is multiplied by the data timeout retransmission duration to obtain the adjusted data timeout retransmission duration. Then, based on the adjusted data timeout retransmission duration and the data transmission round-trip time, the estimated duration of the data transmission path is determined.

[0057] As can be seen, through this embodiment, after adjusting the data timeout retransmission duration, the estimated duration of the data transmission path can be determined by combining the adjusted data timeout retransmission duration and the data transmission round-trip time, thereby improving the accuracy of determining the estimated duration.

[0058] In one embodiment, for each data transmission path, the estimated duration of the data transmission path is determined based on the adjusted data timeout retransmission duration and the data transmission round-trip time of the data transmission path, including:

[0059] The adjusted data timeout retransmission time for the data transmission path is summed with the round-trip time of data transmission for the data transmission path to obtain the sum value;

[0060] The sum is used to determine the estimated duration of the data transmission path.

[0061] Specifically, for any data transmission path, after adjusting the data timeout retransmission duration, the adjusted data timeout retransmission duration is summed with the data transmission round-trip time to obtain the estimated duration.

[0062] As can be seen, this embodiment adds the adjusted data timeout retransmission duration to the data transmission round-trip time as the estimated duration. This ensures that the estimated duration considers both the data timeout retransmission duration and the data transmission round-trip time. Since the adjusted data timeout retransmission duration matches the packet loss situation, and the data transmission round-trip time reflects the length of the data transmission path, the estimated duration can represent the time taken from the start of sending a request data packet to the server to receiving the corresponding response data packet from the server. This ensures that the data transmission path is likely to receive the response data packet within an estimated duration, improving the accuracy of the estimated duration calculation. Therefore, selecting the target request data packet based on the estimated duration can avoid sending a large number of data packets on paths with short RTT but high packet loss rates.

[0063] In a specific embodiment, the estimated duration is determined for any data transmission path using the following formula (4), based on the packet loss rate, data transmission round-trip time, and data timeout retransmission time.

[0064]

[0065] In formula (4), loss is the packet loss rate, and E is the estimated duration. loss / 1-loss is the adjustment weight mentioned above. The design principle of formula (4) is as follows: it is assumed that the probability of the request data packet being successfully transmitted on the nth time (i.e., obtaining the response data packet) is the cumulative product of the probabilities of n-1 loss and 1 success. That is, loss n-1*(1-loss), the transmission time is ((n-1)*RTO+RTT), where n is a positive integer. The estimated duration E of the data transmission path is calculated using the above formula (4), which is independent of n after simplification.

[0066] As can be seen, through the above formula (4), we can more intuitively understand that the estimated duration can reflect the average time to successfully obtain the response data packet. By selecting the target request data packet according to the estimated duration, we can avoid sending a large number of data packets on a path with a short RTT but a high packet loss rate.

[0067] In this embodiment, for any data transmission link, the RTT and RTO are updated every time a response data packet is received. The packet loss rate is also a continuously updated value. After each RTT and RTO update, the estimated duration E is updated by combining the latest loss. Therefore, the estimated duration is also a value that changes over time. When it is necessary to allocate a request data packet for the first data transmission path, the latest estimated duration E value for all data transmission paths is determined in step S104 above.

[0068] In step S106 above, based on the estimated duration of each data transmission path, a target request data packet to be transmitted by the first data transmission path is selected from among the untransmitted request data packets. In one embodiment, selecting the target request data packet to be transmitted by the first data transmission path from among the untransmitted request data packets based on the estimated duration of each data transmission path includes:

[0069] Based on the estimated duration of each data transmission path, a second data transmission path whose estimated duration meets the preset requirements is selected from among the various data transmission paths;

[0070] Obtain the throughput of the second data transmission path;

[0071] Based on the estimated duration of the first data transmission path, the estimated duration of the second data transmission path, and the throughput of the second data transmission path, select the target request data packet to be transmitted by the first data transmission path from among the untransmitted request data packets.

[0072] Specifically, firstly, based on the estimated duration of each data transmission path, a second data transmission path whose estimated duration meets the preset requirements is selected from each data transmission path. Then, the throughput of the second data transmission path is obtained. Finally, based on the estimated duration of the first data transmission path, the estimated duration of the second data transmission path, and the throughput of the second data transmission path, a target request data packet that will be transmitted by the first data transmission path is selected from each untransmitted request data packet.

[0073] As can be seen, through this embodiment, a second data transmission path can be selected from various data transmission paths. By combining the estimated duration of the first data transmission path, the estimated duration of the second data transmission path, and the throughput of the second data transmission path, the target request data packet to be transmitted by the first data transmission path can be selected from among the untransmitted request data packets, thereby achieving the effect of accurately selecting the target request data packet and enabling the response data packet to be returned to the terminal device in an orderly manner.

[0074] In one embodiment, based on the estimated duration of each data transmission path, a second data transmission path whose estimated duration meets a preset requirement is selected from among the various data transmission paths, including:

[0075] Based on the estimated duration of each data transmission path, the path with an estimated duration less than that of the first data transmission path is selected as the second data transmission path.

[0076] Specifically, the data transmission paths are sorted in descending order of their estimated durations to obtain a sorting result. From this sorting result, the path with an estimated duration less than that of the first data transmission path is selected as the second data transmission path. The number of second data transmission paths can be one or more.

[0077] In this embodiment, since the estimated duration of the second data transmission path is less than that of the first data transmission path, the second data transmission path can acquire more response data packets than the first data transmission path within the same time period, provided that the data size of each response data packet is fixed. Therefore, the estimated duration and throughput of the second data transmission path and the estimated duration of the first data transmission path are related to the number of response data packets acquired by the second data transmission path compared to the first data transmission path within the same time period. Based on the estimated duration and throughput of the second data transmission path and the estimated duration of the first data transmission path, the target request data packet to be transmitted by the first data transmission path is selected from among the untransmitted request data packets, which enables the response data packets corresponding to the target request data packets and the response data packets corresponding to the second data transmission path to arrive at the terminal device in an orderly manner.

[0078] In this embodiment, the throughput of the second data transmission path is also obtained. In one embodiment, obtaining the throughput of the second data transmission path includes:

[0079] The first time for obtaining the response data packet corresponding to the request data packet with the first sequence number from the server and the second time for obtaining the response data packet corresponding to the request data packet with the second sequence number from the server are determined by the second data transmission path; the difference between the second sequence number and the first sequence number is a preset value;

[0080] The throughput of the second data transmission path is determined based on the time interval between the first and second times and the first total data size of the response packets obtained from the server within the time interval.

[0081] Specifically, the preset value can be a value related to CWND, such as an integer multiple of CWND or a value obtained by performing calculations on CWND. Setting the preset value to be related to CWND can avoid throughput calculation errors caused by deliberately increasing CWND when the congestion algorithm detects bandwidth.

[0082] For each second data transmission path, after the second data transmission path between the terminal device and the server is successfully established and data transmission begins through the second data transmission path, when the second data transmission path obtains the response data packet corresponding to the request data packet with sequence number 1 from the server, the time of obtaining the response data packet is taken as the first time. When the second data transmission path obtains the response data packet corresponding to the request data packet with sequence number 1 + a preset value from the server, the time of obtaining the data packet is taken as the second time.

[0083] The time interval between the first and second time points is calculated, and the total data volume of each response data packet obtained by the second data transmission path from the server within this time interval is taken as the first total data volume. The throughput of the second data transmission path is obtained by dividing the first total data volume by the duration corresponding to the time interval.

[0084] The sequence number of the request data packet can be set by the terminal device. For the same second data transmission path, when transmitting request data packets corresponding to the same file, the terminal device can assign a sequence number to each request data packet according to the order in which they are sent to the server. When the terminal device sends request data packets corresponding to different files to the server, the sequence number of the first request data packet for the file to be sent can be determined based on the sequence number of the last previously sent request data packet. That is, the sequence numbers of request data packets for different files are determined sequentially by the terminal device according to the order in which the request data packets are sent. Of course, the sequence numbers of request data packets for different files can also be determined by the terminal device starting from 1, without restriction.

[0085] Due to packet loss, after a terminal device sends multiple request data packets to the server, it may not receive all the response data packets corresponding to those multiple request data packets. Therefore, within the time interval between the first and second times mentioned above, the second data transmission path may not receive the preset number of response data packets, and may receive fewer than the preset number of response data packets.

[0086] Next, when the second data transmission path receives the response data packet corresponding to the request data packet with sequence number 2 + a preset value from the server, the acquisition time of the response data packet is again taken as the first time. When the second data transmission path receives the response data packet corresponding to the request data packet with sequence number 2 + 2 * a preset value from the server, the acquisition time of the response data packet is again taken as the second time. The time interval between the first time and the second time is continuously calculated, and the total data volume of all response data packets obtained by the second data transmission path from the server within this time interval is taken as the first total data volume. The ratio of the first total data volume to the duration corresponding to the time interval is calculated to obtain the throughput of the second data transmission path, and the throughput of the second data transmission path is updated. Furthermore, when the second data transmission path receives another response data packet, the difference in sequence number of the request data packet corresponding to the response data packet is calculated until the difference is equal to the preset value. The above process is repeated, and the throughput of the second data transmission path is updated through this continuous calculation method.

[0087] In this embodiment, the throughput can be calculated using the following formula (5).

[0088]

[0089] In formula (5), endtime represents the second time mentioned above, starttime represents the first time mentioned above, datasize represents the first total data volume, and Throughput represents the throughput.

[0090] As can be seen, in this embodiment, the first time for obtaining the response data packet corresponding to the request data packet with the first sequence number from the server and the second time for obtaining the response data packet corresponding to the request data packet with the second sequence number from the server are determined. The difference between the second sequence number and the first sequence number is a preset value. Due to the possibility of packet loss, the number of response data packets obtained from the server during the time interval between the first and second times may be less than or equal to the preset value. Based on this time interval and the first total data volume of the response data packets obtained from the server during this time interval, the throughput of the second data transmission path is determined, which can accurately determine the throughput of the second data transmission path in combination with the packet loss situation.

[0091] In one embodiment, obtaining the throughput of the second data transmission path includes:

[0092] Determine the second total data size of each response data packet obtained from the server within a predetermined time period for the second data transmission path;

[0093] The throughput of the second data transmission path is determined based on the predetermined duration and the second total data volume.

[0094] Specifically, the scheduled duration is a value related to RTT, such as an integer multiple of RTT or a value obtained by calculating RTT. It should be noted that the scheduled duration is calculated using the same calculation strategy as the preset value mentioned above. For example, if the preset value is a specified multiple of CWND, then the scheduled duration is also a specified multiple of RTT; if the preset value is a value calculated based on CWND, then the scheduled duration is also a value obtained by calculating RTT in the same way.

[0095] For each second data transmission path, after the second data transmission path between the terminal device and the server is successfully established and data transmission begins through the second data transmission path, timing begins. After a predetermined time, the total data volume of each response data packet obtained from the server within the predetermined time is determined as the second total data volume. The ratio of the second total data volume to the predetermined time is calculated to obtain the throughput of the second data transmission path.

[0096] Next, after the first timing ends, the timing is restarted, and after the predetermined duration is reached again, the total data volume of all response packets obtained from the server within the predetermined duration is repeatedly determined as the second total data volume. The ratio of the second total data volume to the predetermined duration is calculated to obtain the throughput of the second data transmission path, thereby updating the throughput of the second data transmission path. Furthermore, after the aforementioned timing ends, the timing is restarted again, and the above process is repeated, updating the throughput of the second data transmission path through this continuous calculation.

[0097] For the same second data transmission path, when transmitting request data packets corresponding to the same file, the terminal device can use the above timing method to time and determine the throughput. If the last timing result does not reach the predetermined duration when the same file transmission is completed, the timing is canceled, and the last historically calculated throughput is taken as the latest throughput of the second data transmission path. Furthermore, when the terminal device sends request data packets corresponding to other files to the server, the timing is restarted to update the throughput.

[0098] As can be seen, in this embodiment, the throughput of the second data transmission path can be determined based on the second total data size of each response data packet obtained from the server within a predetermined time period, and the throughput of the second data transmission path can be accurately determined by pre-setting the statistical time period.

[0099] The above describes two methods for determining the throughput of the second data transmission path. In a specific embodiment, the two methods can be combined to determine the throughput of the second data transmission path. In short, the two methods are executed simultaneously, and after the throughput is calculated by either method, that throughput is taken as the latest throughput of the second data transmission path.

[0100] In this embodiment, for each second data transmission path, after the second data transmission path between the terminal device and the server is successfully established and data transmission begins through the second data transmission path, while counting the sequence number of the request data packet corresponding to the response data packet obtained from the server by the second data transmission path, a timing operation for a predetermined duration is started simultaneously. When the difference between the sequence number of the first request data packet and the last request data packet among the multiple request data packets corresponding to the multiple response data packets accumulated from the server by the second data transmission path is a preset value, the throughput of the second data transmission path is calculated. After each throughput is obtained, the sequence number difference calculation process is repeated to update the throughput. Also, when the predetermined duration is reached, the throughput of the second data transmission path is calculated, and after each throughput is obtained, the timing process is repeated to update the throughput.

[0101] By executing both methods simultaneously, after calculating the throughput using either method, this throughput is used as the latest throughput of the second data transmission path. This can supplement the calculation of the sequence number difference using a timing method, avoiding the situation where the sequence number difference cannot be calculated to the preset value for a long time when the packet loss rate is high.

[0102] After obtaining the throughput of the second data transmission path, based on the estimated duration of the first data transmission path, the estimated duration of the second data transmission path, and the throughput of the second data transmission path, a target request data packet to be transmitted by the first data transmission path is selected from among the untransmitted request data packets. In one embodiment, selecting the target request data packet to be transmitted by the first data transmission path from among the untransmitted request data packets based on the estimated duration of the first data transmission path, the estimated duration of the second data transmission path, and the throughput of the second data transmission path includes:

[0103] Determine the difference between the estimated duration of the first data transmission path and the estimated duration of each second data transmission path; the difference corresponds one-to-one with the second data transmission path;

[0104] Based on the difference and the throughput of the second data transmission path, select the target request data packet to be transmitted by the first data transmission path from among the untransmitted request data packets.

[0105] Specifically, there can be one or more second data transmission paths. For each second data transmission path, the difference between the estimated duration of the first data transmission path and the estimated duration of each second data transmission path is calculated, with each difference corresponding to a specific second data transmission path. This difference reflects the time it takes for the second data transmission path to successfully obtain the response data packet before the first data transmission path.

[0106] Next, based on the differences corresponding to each second data transmission path and the throughput of each second data transmission path, the target request data packet to be transmitted by the first data transmission path is selected from each untransmitted request data packet.

[0107] As can be seen, through this embodiment, based on the differences and throughput of each second data transmission path, the target request data packet to be transmitted by the first data transmission path is selected from the untransmitted request data packets. The difference can reflect the time it takes for the second data transmission path to successfully obtain the response data packet before the first data transmission path. This difference and the throughput of the second data transmission path are related to the amount of data that the second data transmission path successfully obtains more response data packets than the first data transmission path within the same time. Therefore, selecting the target request data packet for the first data transmission path based on the difference and the throughput of the second data transmission path can ensure that the target request data packet of the first data transmission path and the response data packets corresponding to the request data packets of the second data transmission path can be returned to the terminal device in an orderly manner.

[0108] In one embodiment, selecting the target request packet to be transmitted by the first data transmission path from among the untransmitted request packets based on the difference and the throughput of the second data transmission path includes:

[0109] Determine the product between the difference and the throughput of the corresponding second data transmission path; the product corresponds one-to-one with the second data transmission path;

[0110] Based on the product and the preset data packet size, select the target request data packet to be transmitted by the first data transmission path from among the untransmitted request data packets.

[0111] Specifically, for each second data transmission path, the product of the difference in the second data transmission path and the throughput of the second data transmission path is calculated, and the product corresponds one-to-one with the second data transmission path. Based on each product and a preset data packet size, the target request data packet to be transmitted by the first data transmission path is selected from each untransmitted request data packet.

[0112] As can be seen, in this embodiment, the product can represent the amount of data that the second data transmission path successfully obtains more response data packets than the first data transmission path within the same time period. Based on the extra amount of data and the preset data packet size, the target request data packet to be transmitted by the first data transmission path is selected from among the untransmitted request data packets. This can ensure that the response data packets corresponding to the target request data packets of the first data transmission path and the request data packets of the second data transmission path can be returned to the terminal device in an orderly manner.

[0113] In one embodiment, selecting the target request data packet to be transmitted by the first data transmission path from among the untransmitted request data packets based on the product and a preset data packet size includes:

[0114] Determine the ratio between the product and the preset data packet size; the ratio corresponds one-to-one with the second data transmission path;

[0115] The ratios are summed, and the position of the target request data packet to be transmitted by the first data transmission path among the untransmitted request data packets is determined based on the summation result.

[0116] Based on the arrangement position, select the target request data packet that will be transmitted by the first data transmission path from among the untransmitted request data packets.

[0117] Specifically, for each second data transmission path, the product represents the number of response data packets that the path successfully acquired more than the first data transmission path within the same time period. Here, it is assumed that all response data packets have the same size, a preset data packet size. Therefore, for each second data transmission path, the ratio between its product and the preset data packet size represents the number of response data packets that the second data transmission path successfully acquired more than the first data transmission path within the same time period. Each second data transmission path corresponds to a specific ratio.

[0118] Therefore, by summing the various ratios, we can obtain the total number of response data packets successfully acquired by all second data transmission paths within the same time period, which is greater than the number successfully acquired by the first data transmission path. This sum is rounded to a value, which determines the position of the target request data packet to be transmitted by the first data transmission path in the task queue where each untransmitted request data packet is located. For example, if the rounded value is 5, then the position of the target request data packet to be transmitted by the first data transmission path in the task queue where each untransmitted request data packet is located is 5. When each untransmitted request data packet is in the task queue, the request data packet stored at the 5th position in the task queue is the target request data packet. Thus, based on the determined position, the target request data packet to be transmitted by the first data transmission path is selected from the task queues where each untransmitted request data packet is located.

[0119] It should be noted that the calculated arrangement position is the inherent position in the task queue where the request data packet is located, and is independent of the number of remaining request data packets in the task queue. For example, if the positions in the task queue are 1, 2, 3, 4, 5, 6 in sequence, and request data packets are only stored at positions 3 and 5, then when the calculated arrangement position is 5, the request data packet stored at position 5 will be sent.

[0120] As can be seen, through this embodiment, the ratio between the product and the data packet size is calculated. This ratio can represent the number of response data packets successfully obtained by the second data transmission path more than the first data transmission path within the same time. The sum of each ratio represents the total number of response data packets successfully obtained by all second data transmission paths more than the first data transmission path within the same time. Therefore, the target request data packet can be obtained based on the position indicated by this total number, and the response data packets corresponding to the target request data packet of the first data transmission path and the request data packet of the second data transmission path can be returned to the terminal device in an orderly manner as much as possible.

[0121] In one specific embodiment, the arrangement of the target request data packet to be transmitted by the first data transmission path among the various untransmitted request data packets is determined by the following formula (6).

[0122]

[0123] In formula (6), the rounded value of pos represents the position of the target request data packet corresponding to the first data transmission path i in the queue of each untransmitted request data packet. i E represents the estimated duration of the first data transmission path i. j E represents the estimated duration of the second data transmission path j, and E i >E j Throughput j This represents the throughput of the second data transmission path j, PacketSize represents the preset data packet size, and n is the total number of data transmission paths.

[0124] The design idea of ​​formula (6) is as follows: whenever a data transmission path i needs to allocate a request data packet, first calculate the estimated duration of path i, and then traverse all data request transmission paths to calculate the estimated duration of all data request transmission paths. The smaller the estimated duration, the faster the transmission of a data packet can be completed. Assuming that the estimated duration of the first path is T and the throughput is R, the estimated duration of the second path is 2T, and the preset data packet size is S, then within the duration of 2T-T, the first path can obtain TR / S response data packets. If the second path directly sends the request data packet at the TR / S+1 position in the task queue, it can ensure that the response data packets arrive in an orderly manner, and the response data packets all arrive at the terminal device within 2T.

[0125] By obtaining the target request data packet using formula (6) and the process described above, when sending the request data packet, only the request data packet that the first data transmission path should send in this round is selected, and other request data packets in the task queue will not be allocated. When the network changes, the sending order of other request data packets in the task queue can be adjusted in a timely manner.

[0126] The position of the target request data packet to be transmitted by the first data transmission path in the order of the untransmitted request data packets may be invalid. For example, if there are 10 untransmitted request data packets, but the determined order is 11, then no request data packet will be allocated to the first data transmission path. Figure 2 A flowchart illustrating a data processing method provided in another embodiment of this disclosure is shown below. Figure 2 As shown, the process includes:

[0127] Step S202: Obtain the packet loss rate, round-trip time, and data timeout retransmission time of each data transmission path; each data transmission path includes the first data transmission path of the request data packet to be allocated.

[0128] Step S204: Based on the packet loss rate, round-trip time, and data timeout retransmission time of each data transmission path, determine the estimated time for each data transmission path from the start of transmitting the request data packet to the server to the receipt of the corresponding response data packet.

[0129] Step S206: Based on the estimated duration of each data transmission path, determine the position of the target request data packet to be transmitted by the first data transmission path in the task queue where each untransmitted request data packet is located.

[0130] The arrangement position is an inherent position in the task queue and is independent of the number of remaining request data packets in the task queue. For example, if the positions in the task queue are 1, 2, 3, 4, 5, and 6, and request data packets are stored only at positions 3 and 5, then when the arrangement position is calculated to be 5, the request data packet stored at position 5 will be sent.

[0131] Step S208: Determine whether the arrangement position is a valid position based on the length of the task queue;

[0132] If the arrangement position is within the length range, it is valid; otherwise, it is invalid.

[0133] If so, in step S210, the target request data packet is transmitted to the server through the first data transmission path;

[0134] If not, in step S212, no request data packet is allocated for the first data transmission path.

[0135] The data processing methods described in the above embodiments of this disclosure can achieve the effect of selecting target request data packets to be transmitted for the first data transmission path. It is particularly important to emphasize that, in this embodiment, request data packets are not allocated to the first data transmission path based on their order in the queue. Instead, the position of the request data packets to be transmitted by the first data transmission path within the untransmitted request data packets is calculated. Based on this position, request data packets are selected from the queue. This achieves the effect of skipping request data packets from an ordered queue of request data packets (e.g., request data packet 1, request data packet 2, request data packet 3), thus realizing the skipped transmission of request data packets, such as sending request data packet 3, request data packet 1, and request data packet 2 sequentially. This skipped transmission of request data packets solves the problem that response data packets are difficult to arrive at the terminal device in an orderly manner when request data packets are sent according to their order in the queue. It maximizes the orderly arrival of response data packets at the terminal device; for example, if the order of sending request data packets is request data packet 3, request data packet 1, and request data packet 2, the order of arrival of response data packets is response data packet 1, response data packet 2, and response data packet 3.

[0136] Figure 3 This is a schematic diagram illustrating an application scenario of data processing provided in an embodiment of this disclosure, such as... Figure 3 As shown, when it is necessary to allocate a request data packet for the first data transmission path, the estimated duration and throughput of each data transmission path between the terminal device and the server are obtained. Based on the estimated duration and throughput, the target request data packet to be transmitted by the first data transmission path is selected from the task queues where each untransmitted request data packet is located, and the target request data packet is sent through the first data transmission path.

[0137] In summary, based on the above... Figure 1 and Figure 2 The method flow in the document should have at least the following effects:

[0138] 1. It enables data to arrive in an orderly manner, improves data download speed, and reduces user lag;

[0139] 2. It can accurately assess the time it takes for the data transmission path to successfully obtain the response data packet, i.e., the estimated time. The time calculation method is decoupled from the congestion algorithm, and the calculation result can more accurately estimate the network connection quality, ensuring high robustness under different congestion algorithms.

[0140] 3. Directly select and send the target request data packet from the main queue. In dynamic network scenarios, this enables flexible data scheduling with lower computational overhead, ensuring the orderly arrival of data.

[0141] Figure 4 This is a schematic diagram of the structure of a data processing apparatus provided in an embodiment of the present disclosure, as shown below. Figure 4 As shown, the device includes:

[0142] The data determination unit 41 is used to determine the packet loss rate, the round-trip time of data transmission, and the data timeout retransmission time of each of the multiple data transmission paths between the terminal device and the server.

[0143] The duration determination unit 42 is used to determine the estimated duration for each data transmission path from the start of transmitting a request data packet to the server to the receipt of a response data packet corresponding to the request data packet, based on the packet loss rate, the round-trip time of the data transmission, and the data timeout retransmission duration of each data transmission path.

[0144] The data selection unit 43 is used to select, from among the untransmitted request data packets, the target request data packet to be transmitted by the first data transmission path based on the estimated duration of each data transmission path.

[0145] The data transmission unit 44 is used to transmit the target request data packet to the server through the first data transmission path.

[0146] Optionally, the duration determination unit 42 is specifically used for:

[0147] For each data transmission path, the adjustment weight of the data timeout retransmission duration of the data transmission path is determined based on the packet loss rate of the data transmission path.

[0148] For each data transmission path, the estimated duration of the data transmission path is determined based on the adjustment weight of the data transmission path, the data transmission round-trip time, and the data timeout retransmission time.

[0149] Optionally, the duration determination unit 42 is also specifically used for:

[0150] The data timeout retransmission duration of the data transmission path is adjusted using the adjustment weight of the data transmission path;

[0151] The estimated duration of the data transmission path is determined based on the adjusted data timeout retransmission duration of the data transmission path and the round-trip time of the data transmission path.

[0152] Optionally, the duration determination unit 42 is also specifically used for:

[0153] The adjusted data timeout retransmission duration of the data transmission path is summed with the round-trip time of the data transmission path to obtain the sum value;

[0154] The sum is determined as the estimated duration of the data transmission path.

[0155] Optionally, the data selection unit 43 is specifically used for:

[0156] Based on the estimated duration of each data transmission path, a second data transmission path whose estimated duration meets the preset requirements is selected from each data transmission path;

[0157] Obtain the throughput of the second data transmission path;

[0158] Based on the estimated duration of the first data transmission path, the estimated duration of the second data transmission path, and the throughput of the second data transmission path, a target request data packet to be transmitted by the first data transmission path is selected from among the untransmitted request data packets.

[0159] Optionally, the data selection unit 43 is also specifically used for:

[0160] Based on the estimated duration of each data transmission path, the path whose estimated duration is less than that of the first data transmission path is selected as the second data transmission path.

[0161] Optionally, the data selection unit 43 is also specifically used for:

[0162] The first time when the second data transmission path obtains the response data packet corresponding to the request data packet with the first sequence number from the server and the second time when it obtains the response data packet corresponding to the request data packet with the second sequence number from the server are determined; the difference between the second sequence number and the first sequence number is a preset value;

[0163] The throughput of the second data transmission path is determined based on the time interval between the first time and the second time and the first total data size of the response data packets obtained from the server within the time interval.

[0164] Optionally, the data selection unit 43 is also specifically used for:

[0165] Determine the second total data size of each response data packet obtained from the server within a predetermined time period for the second data transmission path;

[0166] The throughput of the second data transmission path is determined based on the predetermined duration and the second total data volume.

[0167] Optionally, the data selection unit 43 is also specifically used for:

[0168] Determine the difference between the estimated duration of the first data transmission path and the estimated duration of each of the second data transmission paths; the difference corresponds one-to-one with each of the second data transmission paths;

[0169] Based on the difference and the throughput of the second data transmission path, a target request data packet is selected from the untransmitted request data packets to be transmitted by the first data transmission path.

[0170] Optionally, the data selection unit 43 is also specifically used for:

[0171] Determine the product between the difference and the throughput of the corresponding second data transmission path; the product corresponds one-to-one with the second data transmission path;

[0172] Based on the product and the preset data packet size, a target request data packet is selected from among the untransmitted request data packets to be transmitted by the first data transmission path.

[0173] Optionally, the data selection unit 43 is also specifically used for:

[0174] Determine the ratio between the product and the preset data packet size; the ratio corresponds one-to-one with the second data transmission path;

[0175] The ratios are summed, and the position of the target request data packet to be transmitted by the first data transmission path in each untransmitted request data packet is determined based on the summation result.

[0176] Based on the arrangement, select the target request data packet to be transmitted by the first data transmission path from among the untransmitted request data packets.

[0177] The data processing apparatus in this embodiment can implement the various processes of the above-described data processing method embodiments and achieve the same effects and functions, which will not be repeated here.

[0178] One embodiment of this disclosure also provides an electronic device. Figure 5 This is a schematic diagram of the structure of an electronic device provided in an embodiment of the present disclosure, as shown below. Figure 5 As shown, electronic devices can vary considerably due to differences in configuration or performance. They may include one or more processors 501 and memories 502, with the memory 502 storing one or more application programs or data. The memory 502 can be temporary or persistent storage. The application programs stored in the memory 502 may include one or more modules (not shown), each module including a series of computer-executable instructions within the electronic device. Furthermore, the processor 501 may be configured to communicate with the memory 502, executing the series of computer-executable instructions stored in the memory 502 on the electronic device. The electronic device may also include one or more power supplies 503, one or more wired or wireless network interfaces 504, one or more input or output interfaces 505, one or more keyboards 506, etc.

[0179] In one specific embodiment, the electronic device includes a processor; and a memory configured to store computer-executable instructions, which, when executed, cause the processor to perform the following process:

[0180] Determine the packet loss rate, round-trip time, and data timeout retransmission time for each of the multiple data transmission paths between the terminal device and the server;

[0181] Based on the packet loss rate, the round-trip time of data transmission, and the data timeout retransmission time for each data transmission path, the estimated time taken for each data transmission path from the start of transmitting the request data packet to the server until the response data packet corresponding to the request data packet is received is determined respectively.

[0182] Based on the estimated duration of each data transmission path, select the target request data packet to be transmitted by the first data transmission path from among the untransmitted request data packets;

[0183] The target request data packet is transmitted to the server through the first data transmission path.

[0184] The electronic device in this embodiment can implement the various processes of the above-described data processing method embodiments and achieve the same effects and functions, which will not be repeated here.

[0185] Another embodiment of this disclosure also provides a computer-readable storage medium for storing computer-executable instructions that, when executed by a processor, implement the following process:

[0186] Determine the packet loss rate, round-trip time, and data timeout retransmission time for each of the multiple data transmission paths between the terminal device and the server;

[0187] Based on the packet loss rate, the round-trip time of data transmission, and the data timeout retransmission time for each data transmission path, the estimated time taken for each data transmission path from the start of transmitting the request data packet to the server until the response data packet corresponding to the request data packet is received is determined respectively.

[0188] Based on the estimated duration of each data transmission path, select the target request data packet to be transmitted by the first data transmission path from among the untransmitted request data packets;

[0189] The target request data packet is transmitted to the server through the first data transmission path.

[0190] The storage medium in this embodiment can implement the various processes of the above-described data processing method embodiments and achieve the same effects and functions, which will not be repeated here.

[0191] In various embodiments of this disclosure, the computer-readable storage medium includes read-only memory (ROM), random access memory (RAM), magnetic disk, or optical disk, etc.

[0192] In the 1990s, improvements to a technology could be clearly distinguished as either hardware improvements (e.g., improvements to the circuit structure of diodes, transistors, switches, etc.) or software improvements (improvements to the methodology). However, with technological advancements, many methodological improvements today can be considered direct improvements to the hardware circuit structure. Designers almost always obtain the corresponding hardware circuit structure by programming the improved methodology into the hardware circuit. Therefore, it cannot be said that a methodological improvement cannot be implemented using a hardware physical module. For example, a Programmable Logic Device (PLD) (e.g., a Field Programmable Gate Array (FPGA)) is such an integrated circuit whose logic function is determined by the user programming the device. Designers can program a digital system themselves to "integrate" it onto a PLD, without needing chip manufacturers to design and manufacture dedicated integrated circuit chips. Furthermore, nowadays, instead of manually manufacturing integrated circuit chips, this programming is mostly implemented using "logic compiler" software. Similar to the software compiler used in program development, the original code before compilation must be written in a specific programming language, called a Hardware Description Language (HDL). There are many HDLs, such as ABEL (Advanced Boolean Expression Language), AHDL (Altera Hardware Description Language), Confluence, CUPL (Cornell University Programming Language), HDCal, JHDL (Java Hardware Description Language), Lava, Lola, MyHDL, PALASM, and RHDL (Ruby Hardware Description Language). Currently, the most commonly used are VHDL (Very-High-Speed ​​Integrated Circuit Hardware Description Language) and Verilog. Those skilled in the art should understand that by simply performing some logic programming on the method flow using one of these hardware description languages ​​and programming it into an integrated circuit, the hardware circuit implementing the logical method flow can be easily obtained.

[0193] The controller can be implemented in any suitable manner. For example, it can take the form of a microprocessor or processor and a computer-readable medium storing computer-readable program code (e.g., software or firmware) executable by the (micro)processor, logic gates, switches, application-specific integrated circuits (ASICs), programmable logic controllers, and embedded microcontrollers. Examples of controllers include, but are not limited to, the following microcontrollers: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20, and Silicon Labs C8051F320. A memory controller can also be implemented as part of the control logic of the memory. Those skilled in the art will also recognize that, in addition to implementing the controller in purely computer-readable program code form, the same functionality can be achieved by logically programming the method steps to make the controller take the form of logic gates, switches, application-specific integrated circuits, programmable logic controllers, and embedded microcontrollers. Therefore, such a controller can be considered a hardware component, and the means included therein for implementing various functions can also be considered as structures within the hardware component. Alternatively, the means for implementing various functions can be considered as both software modules implementing the method and structures within the hardware component.

[0194] The systems, devices, modules, or units described in the above embodiments can be implemented by computer chips or entities, or by products with certain functions. A typical implementation device is a computer. Specifically, a computer can be, for example, a personal computer, laptop computer, cellular phone, camera phone, smartphone, personal digital assistant, media player, navigation device, email device, game console, tablet computer, wearable device, or any combination of these devices.

[0195] For ease of description, the above apparatus is described by dividing it into various functional units. Of course, in implementing the embodiments of this disclosure, the functions of each unit can be implemented in one or more software and / or hardware.

[0196] Those skilled in the art will understand that one or more embodiments of this disclosure can be provided as a method, system, or computer program product. Therefore, one or more embodiments of this disclosure can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, one or more embodiments of this disclosure can take the form of a computer program product implemented on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.

[0197] This disclosure is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this disclosure. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create a machine for implementing the flowchart illustrations and / or block diagrams. Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.

[0198] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.

[0199] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.

[0200] It should also be noted that the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.

[0201] One or more embodiments of this disclosure can be described in the general context of computer-executable instructions, such as program modules, that are executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform a particular task or implement a particular abstract data type. One or more embodiments of this disclosure can also be practiced in distributed computing environments where tasks are performed by remote processing devices connected via a communication network. In a distributed computing environment, program modules can reside in local and remote computer storage media, including storage devices.

[0202] The various embodiments in this disclosure are described in a progressive manner. Similar or identical parts between embodiments can be referred to mutually. Each embodiment focuses on describing the differences from other embodiments. In particular, the system embodiments are basically similar to the method embodiments, so the description is relatively simple; relevant parts can be referred to the descriptions of the method embodiments.

[0203] The above description is merely an embodiment of this disclosure and is not intended to limit the scope of this disclosure. Various modifications and variations can be made to this disclosure by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this disclosure should be included within the scope of the claims of this disclosure.

Claims

1. A data processing method, characterized by, The method is executed by a terminal device, and the method includes: Determine the packet loss rate, round-trip time, and data timeout retransmission time for each of the multiple data transmission paths between the terminal device and the server; Based on the packet loss rate, the round-trip time of data transmission, and the data timeout retransmission time for each data transmission path, the estimated time taken for each data transmission path from the start of transmitting the request data packet to the server until the response data packet corresponding to the request data packet is received is determined respectively. Based on the estimated duration of the first data transmission path, the estimated duration of the second data transmission path, and the throughput of the second data transmission path, the position of the target request data packet among the untransmitted request data packets is determined. According to the position, the target request data packet is selected from among the untransmitted request data packets. The first data transmission path is a path among the data transmission paths that has an idle window and receives a response data packet, or has an idle window and reaches the set time. The second data transmission path is a path whose estimated duration is less than that of the first data transmission path. The target request data packet is transmitted to the server through the first data transmission path.

2. The method of claim 1, wherein, The estimated time taken for each data transmission path, from the start of transmitting a request data packet to the server to the receipt of a response data packet corresponding to the request data packet, is determined based on the packet loss rate, the round-trip time of data transmission, and the data timeout retransmission time for each data transmission path. This includes: For each data transmission path, the adjustment weight of the data timeout retransmission duration for the data transmission path is determined based on the packet loss rate of the data transmission path. For each data transmission path, the estimated duration of the data transmission path is determined based on the adjusted weight of the data transmission path, the data transmission round-trip time, and the data timeout retransmission time.

3. The method of claim 2, wherein, The step of determining the estimated duration of the data transmission path based on the adjusted weight of the data transmission path, the data transmission round-trip time, and the data timeout retransmission time includes: The data timeout retransmission duration of the data transmission path is adjusted using the adjustment weight of the data transmission path; The estimated duration of the data transmission path is determined based on the adjusted data timeout retransmission duration of the data transmission path and the round-trip time of the data transmission path.

4. The method of claim 3, wherein, The step of determining the estimated duration of the data transmission path based on the adjusted data timeout retransmission duration and the round-trip time of the data transmission path includes: The adjusted data timeout retransmission duration of the data transmission path is summed with the round-trip time of the data transmission path to obtain the sum value; The sum is determined as the estimated duration of the data transmission path.

5. The method of claim 1, wherein, The method further includes: The first time when the second data transmission path obtains the response data packet corresponding to the request data packet with the first sequence number from the server and the second time when it obtains the response data packet corresponding to the request data packet with the second sequence number from the server are determined; the difference between the second sequence number and the first sequence number is a preset value; The throughput of the second data transmission path is determined based on the time interval between the first time and the second time and the first total data size of the response data packets obtained from the server within the time interval.

6. The method of claim 1, wherein, The method further includes: Determine the second total data size of each response data packet obtained from the server within a predetermined time period for the second data transmission path; The throughput of the second data transmission path is determined based on the predetermined duration and the second total data volume.

7. The method of claim 1, wherein, Determining the position of the target request data packet among the untransmitted request data packets based on the estimated duration of the first data transmission path, the estimated duration of the second data transmission path, and the throughput of the second data transmission path includes: Determine the difference between the estimated duration of the first data transmission path and the estimated duration of each of the second data transmission paths; the difference corresponds one-to-one with each of the second data transmission paths; Based on the difference and the throughput of the second data transmission path, the arrangement position of the target request data packet among the various untransmitted request data packets is determined.

8. The method of claim 7, wherein, Determining the position of the target request data packet among the untransmitted request data packets based on the difference and the throughput of the second data transmission path includes: Determine the product between the difference and the throughput of the corresponding second data transmission path; the product corresponds one-to-one with the second data transmission path; The position of the target request data packet among the various untransmitted request data packets is determined based on the product and the preset data packet size.

9. The method of claim 8, wherein, Determining the position of the target request data packet among the untransmitted request data packets based on the product and a preset data packet size includes: Determine the ratio between the product and the preset data packet size; the ratio corresponds one-to-one with the second data transmission path; The ratios are summed, and the position of the target request data packet among the untransmitted request data packets is determined based on the summation result.

10. A data processing apparatus, characterized by, include: The data determination unit is used to determine the packet loss rate, round-trip time, and data timeout retransmission time of each data transmission path among multiple data transmission paths between the terminal device and the server. The duration determination unit is used to determine the estimated duration for each data transmission path from the start of transmitting a request data packet to the server to the receipt of a response data packet corresponding to the request data packet, based on the packet loss rate, the round-trip time of the data transmission, and the data timeout retransmission duration of each data transmission path. A data selection unit is configured to determine the position of a target request data packet among untransmitted request data packets based on the estimated duration of a first data transmission path, the estimated duration of a second data transmission path, and the throughput of the second data transmission path; and to select the target request data packet from among the untransmitted request data packets according to the estimated duration of the first data transmission path. The first data transmission path is a path among the data transmission paths that has an idle window and has received a response data packet, or has an idle window and has reached a set time. The second data transmission path is a path whose estimated duration is less than that of the first data transmission path. The data transmission unit is used to transmit the target request data packet to the server through the first data transmission path.

11. An electronic device, comprising: include: processor; as well as, A memory configured to store computer-executable instructions, which, when executed, cause the processor to perform the steps of the method described in any one of claims 1-9.

12. A computer-readable storage medium, characterized in that, The computer-readable storage medium is used to store computer-executable instructions that, when executed by a processor, implement the steps of the method described in any one of claims 1-9.

Citation Information

Patent Citations

  • Data transmission method and data transmission device

    CN102843725A

  • Data scheduling method and device

    CN108696449A

  • Packet loss recovery method and device for data transmission network and computer equipment

    CN110391879A

  • Adaptive scheduling system and method for cross-protocol fusion transmission

    CN111416770A