Data scheduling method and apparatus, electronic device, and storage medium

By judging and redundantly sending request data packets through multiple data transmission paths during video playback, the problem of uncertain video data arrival time is solved, improving the smoothness of video playback and saving resources.

CN118828101BActive Publication Date: 2026-05-12DOUYIN VISION CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
DOUYIN VISION CO LTD
Filing Date
2023-04-19
Publication Date
2026-05-12

AI Technical Summary

Technical Problem

During video playback, existing technologies cannot guarantee that video data will arrive at the terminal device within a specified time, resulting in unsmooth playback.

Method used

Based on the first duration, the second duration, and the first data volume, it is determined whether redundant request data packets need to be sent, and request data packets are sent through the first data transmission path and the second data transmission path respectively to ensure that the response data arrives at the terminal device within the specified time.

Benefits of technology

This ensures that response data reaches the terminal device within a specified time, saving network costs and computer resources, and improving the smoothness of video playback.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118828101B_ABST
    Figure CN118828101B_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure provide a data scheduling method and device, electronic equipment and storage medium, wherein the method comprises: determining whether the request data packet needs to be redundantly sent based on a first time length, a second time length and a first data amount, the first time length being a time length between a current time and a playing time of a video frame to which a response data packet corresponding to the request data packet belongs, the second time length being a time length required for a terminal device to receive the response data packet from a server, and the first data amount being a data amount of the request data packet redundantly transmitted in each data transmission path between the terminal device and the server; when it is determined that the request data packet needs to be redundantly sent, the request data packet is sent through a first data transmission path and a second data transmission path respectively; and when it is determined that the request data packet does not need to be redundantly sent, the request data packet is sent through the first data transmission path. Through the embodiment, the data can be made to arrive at the terminal device within a specified time 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 scheduling method, apparatus, electronic device, and storage medium. Background Technology

[0002] During the playback of video on a user's terminal device, the terminal device needs to send a request data packet to the server. The server returns the requested video data to the terminal device based on the request data packet, thereby enabling video playback on the terminal device.

[0003] To ensure smooth video playback, video data needs to reach the terminal device within a specified timeframe. For example, for a specific video frame, the corresponding video data should arrive at the terminal device before the frame is played. Therefore, there is an urgent need to provide a technical solution to ensure that data reaches the terminal device within the specified timeframe. Summary of the Invention

[0004] This disclosure provides a data scheduling method, apparatus, electronic device, and storage medium that can ensure data reaches the terminal device within a specified time as much as possible.

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

[0006] Based on the first duration, the second duration, and the first data volume, it is determined whether redundant transmission of request data packets is required. The first duration is the duration between the current time and the playback time of the video frame to which the response data packet corresponding to the request data packet belongs. The second duration is the duration required for the terminal device to receive the response data packet from the server. The first data volume is the data volume of the request data packets redundantly transmitted in each data transmission path between the terminal device and the server.

[0007] When it is determined that the request data packet needs to be sent redundantly, the request data packet is sent through the first data transmission path and the second data transmission path respectively, wherein each data transmission path includes the first data transmission path and the second data transmission path;

[0008] When it is determined that there is no need to redundantly send the request data packet, the request data packet is sent through the first data transmission path.

[0009] Secondly, embodiments of this disclosure provide a data scheduling apparatus applied to a terminal device, comprising:

[0010] The judgment unit is used to determine whether redundant transmission of request data packets is required based on a first duration, a second duration, and a first data volume. The first duration is the duration between the current time and the playback time of the video frame to which the response data packet corresponding to the request data packet belongs. The second duration is the duration required for the terminal device to receive the response data packet from the server. The first data volume is the data volume of the request data packets redundantly transmitted in each data transmission path between the terminal device and the server.

[0011] The first transmission unit is configured to send the request data packet through a first data transmission path and a second data transmission path respectively when it is determined that redundant transmission of the request data packet is required, wherein each data transmission path includes the first data transmission path and the second data transmission path;

[0012] The second transmission unit is used to send the request data packet through the first data transmission path when it is determined that redundant transmission of the request data packet is not required.

[0013] 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.

[0014] 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.

[0015] In one or more embodiments of this disclosure, a determination is made as to whether redundant transmission of request data packets is necessary based on a first duration, a second duration, and a first data volume. The first duration is the time interval between the current moment and the playback time of the video frame to which the response data packet corresponding to the request data packet belongs. The second duration is the time required for the terminal device to receive the response data packet from the server. The first data volume is the data volume of the request data packets redundantly transmitted in each data transmission path between the terminal device and the server. When it is determined that redundant transmission of request data packets is necessary, request data packets are transmitted through the first data transmission path and the second data transmission path, respectively. Each data transmission path includes the first data transmission path and the second data transmission path. When it is determined that redundant transmission of request data packets is not necessary, request data packets are transmitted through the first data transmission path. Therefore, through this embodiment, on the one hand, redundant transmission of request data packets can be achieved through the first data transmission path and the second data transmission path when redundant transmission is required. By redundantly transmitting request data packets, the response data corresponding to the request data packet can be requested multiple times, thereby ensuring that the response data arrives at the terminal device within a specified time as much as possible. On the other hand, by determining whether the request data packet needs to be sent redundantly based on the first duration, the second duration, and the first data, instead of sending redundant data packets for all request data packets, only necessary data is sent redundantly, saving network costs and computer resources. Attached Figure Description

[0016] 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.

[0017] Figure 1 A flowchart illustrating a data scheduling method provided in an embodiment of this disclosure;

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

[0019] Figure 3 A flowchart illustrating a data scheduling method provided in yet another embodiment of this disclosure;

[0020] Figure 4 This is a schematic diagram of the structure of a data scheduling device provided in an embodiment of the present disclosure;

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

[0022] 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.

[0023] This disclosure provides a data scheduling method that ensures data arrives at the terminal device within a specified timeframe. This data scheduling method can be applied to and executed by a user's terminal device, which may be a mobile phone, computer, tablet, in-vehicle computer, laptop, wearable device, etc. The terminal device can request data from a server. The specific request process is as follows: the terminal device sends a request data packet to the server, and the server returns response data to the terminal device based on the request data packet. For example, the request data packet may be a request for data packets included in a video frame; correspondingly, the response data may be a response data packet in response to the request. In this embodiment, redundant request and response data are achieved by redundantly sending request data packets. This redundancy ensures that the response data arrives at the terminal device within a specified timeframe, and by only redundantly sending necessary request data packets, network costs and computer resources are saved.

[0024] To facilitate understanding of the data scheduling method in this embodiment, the meaning of redundant transmission is explained here. When sending a request data packet, the first transmission is a normal transmission, and any additional transmissions beyond the first transmission are called redundant transmissions. Figure 1 This is a flowchart illustrating a data scheduling method provided in an embodiment of the present disclosure, as shown below. Figure 1 As shown, the process includes:

[0025] Step S102: Based on the first duration, the second duration, and the first data volume, determine whether redundant transmission of request data packets is required. The first duration is the duration between the current time and the playback time of the video frame to which the response data packet corresponding to the request data packet belongs. The second duration is the duration required for the terminal device to receive the response data packet from the server. The first data volume is the data volume of the request data packets redundantly transmitted in each data transmission path between the terminal device and the server.

[0026] Step S104: When it is determined that redundant request data packets need to be sent, request data packets are sent through the first data transmission path and the second data transmission path respectively, wherein each data transmission path includes the first data transmission path and the second data transmission path.

[0027] Step S106: When it is determined that redundant transmission of request data packets is not required, the request data packets are sent through the first data transmission path.

[0028] As can be seen, through this embodiment, on the one hand, when redundant transmission of request data packets is required, redundant transmission of request data packets can be achieved through the first data transmission path and the second data transmission path. By redundantly transmitting request data packets, the response data corresponding to the request data packets can be requested multiple times, thereby ensuring that the response data arrives at the terminal device within a specified time as much as possible. On the other hand, by determining whether redundant transmission of request data packets is required based on the first duration, the second duration, and the first data, rather than redundantly transmitting all request data packets, only necessary data is redundantly transmitted, saving network costs and computer resources.

[0029] In this embodiment, the terminal device has multiple data transmission paths, each of which can communicate with the server to request data. Each data transmission path has multiple windows, and each window can be used to send request data packets to the server. When a window is occupied sending request data packets, it is called a busy window; when a window is not sending request data packets, it is called an idle window. The first data transmission path can be any data transmission path. In one scenario, when there is an idle window on the first data transmission path and a response data packet sent by the server is received on the first data transmission path, a preset scheduling algorithm will determine whether to allocate a request data packet to be sent to the first data transmission path. The preset scheduling algorithm may or may not allocate a request data packet to be sent to the first data transmission path. In another scenario, when there is an idle window on the first data transmission path and the current time reaches the periodic time interval corresponding to the first data transmission path, the preset scheduling algorithm will determine whether to allocate a request data packet to be sent to the first data transmission path. The preset scheduling algorithm may or may not allocate a request data packet to be sent to the first data transmission path. When a terminal device sends a request data packet to the server through any data transmission path, it will also receive a response data packet returned by the server through the same data transmission path.

[0030] Based on this, it is determined whether a request data packet is allocated to the first data transmission path. If a request data packet is allocated to the first data transmission path, step S102 is performed to obtain the first duration between the current time and the playback time of the video frame to which the response data packet corresponding to the request data packet belongs, the second duration estimated in advance for receiving the response data packet from the server, and the first data volume of the redundantly transmitted request data packets in each data transmission path between the terminal device and the server. The response data packet is the data packet corresponding to the video frame, and video playback can be achieved based on the response data packet.

[0031] Specifically, when the response data packet is a video data packet, the playback time of the video frame to which the response data packet belongs is the playback time of that video frame. The first duration refers to the duration between the current time and the playback time, which can be represented by `playtime`. remain The second duration is the pre-estimated time required to obtain the response data packet from the server, which can be represented by `sendtime`. It should be noted that each data transmission path has a Round-Trip Time (RTT) metric. The RTTs for different data transmission paths may differ, while the second duration is a pre-estimated fixed value. The second duration can be calculated based on the RTTs of various data transmission paths; for example, the average RTT of all data transmission paths can be used as the second duration.

[0032] The first data volume refers to the amount of request data packets redundantly transmitted in each data transmission path between the terminal device and the server. For example, if a total of 10MB of data is being transmitted across all data transmission paths, and 1MB of that data is redundantly transmitted, then the first data volume is 1MB. Redundant data refers to the amount of data that has been sent twice, in addition to being sent once. For instance, if a request data packet is 1KB in size and has been redundantly sent once (i.e., sent twice), then the corresponding redundant data volume is 1KB.

[0033] In one embodiment, determining whether redundant transmission of request data packets is necessary based on a first duration, a second duration, and a first data volume includes:

[0034] Obtain the second data volume of all request data packets transmitted in each data transmission path;

[0035] Based on the first data volume and the second data volume, determine the proportion of redundant data transmitted in each data transmission path;

[0036] Based on the first duration, the second duration, and the proportion of data volume, determine whether redundant request data packets need to be sent.

[0037] First, obtain the second data volume of all request data packets transmitted in each data transmission path. Then, based on the first and second data volumes, determine the proportion of redundant data transmitted in each data transmission path. Finally, based on the first duration, the second duration, and the data volume proportion, determine whether redundant transmission of request data packets is necessary.

[0038] Specifically, the first data volume can be the total data volume of request data packets currently being transmitted across all data transmission paths, or it can be the sum of the total data volume of request data packets currently being transmitted across all data transmission paths and the total data volume of request data packets to be sent across all data transmission paths. Each data transmission path has a corresponding queue, and request data packets placed in this queue but not yet sent are the request data packets to be sent for the corresponding data transmission path.

[0039] The second data volume can be the total data volume of request data packets being redundantly transmitted across all data transmission paths, or it can be the sum of the total data volume of request data packets being redundantly transmitted across all data transmission paths and the total data volume of request data packets to be redundantly transmitted across all data transmission paths. Each data transmission path has a corresponding queue, and request data packets placed in this queue but not yet redundantly transmitted are the request data packets to be redundantly transmitted for the corresponding data transmission path.

[0040] It should be explained that the total amount of request data packets being redundantly transmitted in all data transmission paths is the amount of data that has been repeatedly sent after the request data packet has been sent once. For example, if the total amount of request data packets being transmitted in all data transmission paths is 10M, of which 1M was sent once before and is now being sent again, then the total amount of request data packets being redundantly transmitted in all data transmission paths is 1M.

[0041] Similarly, the total data volume of request data packets to be redundantly sent in all data transmission paths is the amount of data packets that have been added to the queue once and then repeatedly added to the queue. For example, if the total data volume of request data packets to be sent in all data transmission paths is 1M, of which 10KB is the amount of data packets that have been added to the queue before and then repeatedly added to the queue, then the total data volume of request data packets to be redundantly sent in all data transmission paths is 10KB.

[0042] As can be seen, in this embodiment, the proportion of redundant data transmitted in each data transmission path is determined based on the first data volume of redundant request data packets in each data transmission path and the second data volume of all request data packets transmitted in each data transmission path. This method has the advantage of accurately determining the proportion of data volume with small errors. Furthermore, based on the first duration, the second duration, and the proportion of data volume, it accurately determines whether redundant transmission of request data packets is necessary.

[0043] In one embodiment, determining the proportion of redundant data transmitted in each data transmission path based on the first data volume and the second data volume includes:

[0044] Calculate the ratio of the first data volume to the second data volume;

[0045] The ratio is determined as the proportion of redundant data transmitted in each data transmission path.

[0046] The percentage of redundant data transmitted in each data transmission path represents the proportion of redundant data transmitted in each path out of the total transmitted data. For example, if all data transmission paths are transmitting a total of 10MB of data, and 1MB of that data is redundantly transmitted, then that percentage is 10%. Redundant data refers to data that has been sent twice, in addition to being sent once. For instance, if a request data packet is 1KB in size and has been redundantly sent once (i.e., sent twice), then the corresponding redundant data transmission amount is 1KB.

[0047] As can be seen, this embodiment can calculate the proportion of redundant data transmitted in each data transmission path by calculating the ratio of the first data volume to the second data volume, which has the advantages of high efficiency and speed in calculation.

[0048] In this embodiment, not all request data packets are sent redundantly; only those request data packets that require redundant transmission are sent redundantly. Therefore, in this embodiment, it is also necessary to determine whether redundant transmission of request data packets is required based on the first duration, the second duration, and the data volume ratio.

[0049] In one embodiment, determining whether redundant transmission of request data packets is necessary based on a first duration, a second duration, and the data volume percentage includes:

[0050] Calculate the difference between the first duration and the second duration;

[0051] Based on the difference and the proportion of data volume, determine whether redundant request data packets need to be sent.

[0052] As mentioned earlier, the first duration can be achieved using playtime. remain This indicates that the second duration can be represented by `sendtime`, and the first duration is usually longer than the second duration. Here, we calculate the difference between the first and second durations, which is `playtime`. remain Subtract the difference from sendtime, and based on this difference and the aforementioned data volume ratio, determine whether redundant request data packets need to be sent.

[0053] As can be seen, in this embodiment, it is only necessary to calculate the difference between the first duration and the second duration. Based on this difference and the proportion of data volume, it is possible to determine whether redundant request data packets need to be sent. The implementation method is simple and can efficiently and quickly determine whether redundant request data packets need to be sent.

[0054] In one embodiment, determining whether redundant request data packets need to be sent based on the difference and the proportion of data volume includes:

[0055] Determine whether the difference is less than or equal to the first threshold, and determine whether the proportion of data volume is less than or equal to the second threshold;

[0056] If the difference is less than or equal to the first threshold and the data volume ratio is less than or equal to the second threshold, then it is determined that redundant request data packets need to be sent.

[0057] As previously known, this difference is playtime remain Subtracting the difference from sendtime, when the response data packet is a video data packet, the playtime is... remain This indicates the duration between the current time and the playback time of the video frame to which the response data packet belongs (i.e., the playback time of the video data packet). sendtime represents the estimated time required to obtain the response data packet from the server. If this difference is too small, it means that the response data packet must be obtained as soon as possible, otherwise it will cause the terminal device's display to stutter.

[0058] As previously mentioned, the data volume ratio is the proportion of redundant data transmitted in each data transmission path. If this data volume ratio is too large, it means that there is too much redundant data being transmitted and it is not suitable to increase the amount of redundant data transmission. Conversely, if this data volume ratio is too small, it means that there is too little redundant data being transmitted and it is possible to increase the amount of redundant data transmission.

[0059] Based on this, in this embodiment, it is determined whether the difference is less than or equal to the first threshold value, and whether the data volume ratio is less than or equal to the second threshold value. When the difference is less than or equal to the first threshold value and the data volume ratio is less than or equal to the second threshold value, that is, when it is necessary to obtain the response data packet as soon as possible and the current redundant transmission data is small, it is determined that the request data packet needs to be sent redundantly, and the request data packet is sent redundantly.

[0060] As can be seen, through this embodiment, the relationship between the difference and the first threshold value can reflect whether it is necessary to obtain the response data packet as soon as possible to avoid display lag. The relationship between the data volume ratio and the second threshold value can reflect whether the current redundant data transmission is too much or too little. Thus, when it is necessary to obtain the response data packet as soon as possible and the current redundant data transmission is too little, it is determined that redundant request data packets need to be sent. Redundant transmission of request data packets achieves the effect of targeted redundant data transmission, which saves network costs and computer resources and ensures that the response data packet arrives at the terminal device within the specified time.

[0061] In one embodiment, the first threshold value is determined through the following steps:

[0062] Obtain the maximum value among the preset data playback buffer time threshold and the round-trip time of data transmission for each data transmission path;

[0063] The first threshold value is determined based on the data playback buffer time threshold and this maximum value.

[0064] Specifically, the preset data playback buffer time threshold, also known as the playback buffer danger level, is denoted by threshold. Each data transmission path has a corresponding data transmission round-trip time (RTT). Here, the maximum value of each RTT for each data transmission path is obtained, and the first threshold value is determined based on the data playback buffer time threshold and this maximum value.

[0065] As can be seen, in this embodiment, the first threshold value can be determined based on the maximum value among the preset data playback buffer time threshold and the round-trip time of data transmission for each data transmission path, making the determination process simple. Furthermore, by using the maximum value among the round-trip times of data transmission for each data transmission path to determine the first threshold value, and judging whether the difference is less than or equal to the first threshold value, it is determined as one of the conditions for redundant transmission. This takes into account the situation where response data packets are lost after redundant transmission of request data packets. Even after packet loss, the response data packet can be obtained again through the slowest data transmission link, thereby ensuring that the response data packet arrives at the terminal device within the specified time.

[0066] In one embodiment, determining the first threshold value based on the data playback buffer time threshold and the aforementioned maximum value includes:

[0067] Calculate the sum of the above maximum values ​​between the data playback buffer time threshold and the predetermined multiple;

[0068] The sum is set as the first threshold value.

[0069] Specifically, the sum between the threshold and the maximum value of the predetermined multiple is calculated. The predetermined multiple can be 1 or 2 times, and the calculated sum is determined as the first threshold value.

[0070] As can be seen, through this embodiment, the first threshold value can be quickly determined by summing the maximum value of the data playback buffer time threshold and the predetermined multiple. The solution is simple to implement and reduces the complexity of the solution application.

[0071] In one embodiment, the response data packet corresponding to the aforementioned request data packet includes a video data packet, and the second threshold value is determined through the following steps:

[0072] Obtain the video download speed and video playback bitrate of the terminal device;

[0073] The second threshold value is determined based on the video download speed and video playback bitrate.

[0074] The video download speed can be the average video download speed of the terminal device, denoted by Varg, and the video playback bitrate is denoted by F. The second threshold value is determined based on the video download speed and the video playback bitrate.

[0075] As can be seen, in this embodiment, the second threshold value is determined by the video download speed and the video playback bitrate. Since both the video download speed and the video playback bitrate are parameters reflecting network quality, the second threshold value is also a parameter reflecting network quality. By comparing the above-mentioned data volume ratio with the second threshold value, it is possible to accurately determine whether the amount of redundant data transmission is too much or too little, thereby accurately determining whether redundant transmission of request data packets is required.

[0076] In one embodiment, determining the second threshold value based on the video download speed and the video playback bitrate includes:

[0077] Calculate the difference between video download speed and video playback bitrate;

[0078] Calculate the proportion of the difference to the video download speed;

[0079] The ratio is set as the second threshold value.

[0080] First, the video download speed is subtracted from the video playback bitrate to obtain a difference. When the download speed is greater than the playback bitrate, the video playback is smooth. This difference represents excess network resources. The ratio of this difference to the download speed is calculated, and this ratio is determined as the second threshold. This ratio represents the proportion of excess network resources in the download speed. If the proportion of redundant data transmission is greater than this ratio, it indicates excessive redundant data transmission, which will reduce the download speed. If the proportion of redundant data transmission is less than or equal to this ratio, it indicates insufficient redundant data transmission and will not reduce the download speed.

[0081] As can be seen, in this embodiment, the difference between the video download speed and the video playback bitrate is calculated, and the proportion of this difference to the video download speed is calculated. This proportion is determined as the second threshold value. The second threshold value calculated in this way can represent the proportion of network resources excess compared to video playback in the video download speed. When comparing the second threshold value with the proportion of redundant data transmission, if the proportion of redundant data transmission is greater than the second threshold value, it means that there is too much redundant data transmission, which will reduce the video download speed. If the proportion of redundant data transmission is less than or equal to the second threshold value, it means that there is not much redundant data transmission, which will not reduce the video download speed. Therefore, the second threshold value calculated by this embodiment can be accurately used as the basis for limiting the proportion of redundant data transmission.

[0082] In a specific embodiment, the following formulas (1) and (2) are determined:

[0083] playtime remain —sendtime <threhold+RTT max (1)

[0084]

[0085] In formula (1), playtime remain The first duration represents the time between the current moment and the playback time of the video frame to which the response data packet belongs, the sendtime represents the estimated second duration required to receive the response data packet from the server, the threshold represents the preset data playback buffer time threshold, and the RTT represents the total time taken. max This represents the maximum round-trip time for data transmission along each data transmission path.

[0086] In formula (2), `redundantdatasize` represents the sum of the total data size of request data packets being redundantly transmitted across all data transmission paths and the total data size of request data packets to be redundantly sent across all data transmission paths, i.e., the second data size; `flightdatasize` represents the total data size of request data packets being transmitted across all data transmission paths, i.e., the first data size; V arg This represents the average video download speed of the terminal device, and F represents the video playback bitrate.

[0087] If both formulas (1) and (2) are true, it is determined that the request data packet needs to be sent redundantly.

[0088] Continuing from above, Figure 1 In step S104, a second data transmission path is selected from among the various data transmission paths, and request data packets are sent through both the first and second data transmission paths, respectively. Each data transmission path includes both the first and second data transmission paths. In one embodiment, the second data transmission path is determined from among the various data transmission paths in the following manner:

[0089] Based on the round-trip time of each data transmission path, the second data transmission path is selected from among the data transmission paths.

[0090] As can be seen, in this embodiment, by selecting a second data transmission path for the first data transmission path based on the round-trip time of each data transmission path, a suitable second data transmission path can be selected based on the parameter of the round-trip time of data transmission. The request data packet is redundantly transmitted through the second data transmission path, thereby increasing the probability that the response data packet will be returned within the specified time.

[0091] In one embodiment, selecting a second data transmission path from among the data transmission paths based on the round-trip time of each data transmission path includes:

[0092] Based on the round-trip time of each data transmission path, at least one data transmission path whose round-trip time is greater than that of the first data transmission path is identified.

[0093] Select a second data transmission path from at least one determined data transmission path.

[0094] First, based on the round-trip time of each data transmission path, sort the data transmission paths, for example, sort them in descending order of duration. In the sorting, determine at least one data transmission path whose round-trip time is greater than that of the first data transmission path. From the determined at least one data transmission path, select the second data transmission path of the first data transmission path.

[0095] As can be seen, in this embodiment, at least one data transmission path with a data transmission round-trip time greater than that of the first data transmission path is determined among the various data transmission paths. Selecting a second data transmission path of the first data transmission path from the determined at least one data transmission path can make the data transmission round-trip time of the second data transmission path greater than that of the first data transmission path, thereby avoiding the second data transmission path from occupying too much network resources and affecting the data transmission process of the first data transmission path.

[0096] In one embodiment, selecting a second data transmission path from at least one determined data transmission path includes:

[0097] Among the at least one determined data transmission path, select the data transmission path with the shortest round-trip time as the second data transmission path.

[0098] As can be seen, in this embodiment, by selecting the data transmission path with the shortest round-trip time from at least one determined data transmission path as the second data transmission path of the first data transmission path, the data transmission performance of the second data transmission path can be improved, thereby increasing the likelihood that the response data packet will be returned to the terminal device within a specified time.

[0099] Figure 1 In step S104 above, request data packets are sent through the first data transmission path and the second data transmission path, respectively. In one embodiment, sending the request data packet through the second data transmission path includes:

[0100] The request data packet is assigned to the data sending queue of the second data transmission path, so that the second data transmission path sends the request data packet based on the data sending queue.

[0101] It needs to be explained in detail that each data transmission path has a corresponding data sending queue. Whether a data transmission path needs to send a data packet, and which data packet to send, depends on the scheduling result of the scheduling algorithm mentioned earlier. When the scheduling algorithm schedules a data packet that needs to be sent for a data transmission path, it puts the data packet into the corresponding data sending queue. Therefore, for the first data transmission path, since the request data packet is a data packet that the scheduling algorithm has scheduled to be sent for the first data transmission path, the scheduling algorithm first inserts the request data packet into the data sending queue of the first data transmission path, and then the first data transmission path reads the request data packet from the data sending queue and sends it. For the second data transmission path, redundant data packets need to be sent, and it also needs to rely on the scheduling algorithm to work. Therefore, in this embodiment, the request data packet is allocated to the data sending queue of the second data transmission path. This is equivalent to cooperating with the scheduling algorithm to allocate tasks to the data sending queue of the second data transmission path, and it is also equivalent to prioritizing the allocation of tasks to the second data transmission path. When the second data transmission path sends data packets subsequently, it needs to send them sequentially according to the order of each data packet in the data sending queue, thereby achieving priority and redundant sending of the request data packet.

[0102] As can be seen, by allocating the request data packet to the data sending queue of the second data transmission path through this embodiment, the second data transmission path can send the request data packet based on the data sending queue. This achieves the effect of allocating tasks to the data sending queue of the second data transmission path together with the scheduling algorithm, which is equivalent to prioritizing the allocation of tasks to the second data transmission path and realizing the priority redundant sending of the request data packet.

[0103] Figure 1 In step S106, when it is determined that redundant transmission of request data packets is not required, request data packets are transmitted through the first data transmission path.

[0104] Figure 2 A flowchart illustrating a data scheduling method provided in another embodiment of this disclosure is shown below. Figure 2 As shown, the process includes:

[0105] Step S202: Determine whether the total number of free windows for each data transmission path is greater than the total number of unsent request data packets;

[0106] Step S204: If yes, then the unsent request data packet is identified as the tail data packet;

[0107] Step S206: Redundantly send the tail data packet through the first data transmission path.

[0108] Specifically, each data transmission path has a preset number of windows. Each window can be used to send a request data packet and receive a corresponding response data packet. When a window is sending a request data packet or waiting for a response data packet to be sent back, the window is in a busy state and can be called a busy window. When a window is not sending a request data packet and is not waiting for a response data packet, the window is called an idle window.

[0109] In step S202 above, when no request data packets are allocated to the first data transmission path through the aforementioned scheduling algorithm, the total number of free windows for all data transmission paths is obtained, and the total number of all unsent request data packets is obtained. It is then determined whether the total number of free windows is greater than the total number of all unsent request data packets. If not, the process ends. If so, in step S204 above, the unsent request data packets are identified as tail data packets. In step S206 above, tail data packets are redundantly sent through the first data transmission path.

[0110] When the total number of idle windows exceeds the total number of all unsent request data packets, tail redundancy can be implemented. Tail redundancy involves using unsent request data packets as tail data packets and sending them redundantly to ensure that the response data packets corresponding to the tail data packets return to the terminal device within a specified time, thus avoiding a decrease in the overall file download efficiency due to the slow return speed of the tail data packets.

[0111] As can be seen, through this embodiment, when the total number of idle windows in each data transmission path is greater than the total number of unsent request data packets, the unsent request data packets can be identified as tail data packets, and the tail data packets can be redundantly sent through the first data transmission path, thereby achieving redundant sending of tail data packets. This ensures that the response data packets corresponding to the tail data packets return to the terminal device within a specified time, avoiding a decrease in the overall file download efficiency due to the slow return speed of the tail data packets.

[0112] It should be noted that the unsent request data packets and the aforementioned request data packets are request data packets from the same file. This embodiment considers how to send various request data packets from the same file.

[0113] In one embodiment, before redundantly sending the tail data packet via the first data transmission path, the method further includes:

[0114] Based on the round-trip time of the first data transmission path, determine whether the first data transmission path can send the tail data packet;

[0115] If possible, then perform the action of redundantly sending the tail data packets through the first data transmission path.

[0116] In this embodiment, tail data packets are not redundantly sent through any data transmission path. Instead, tail data packets are selectively sent redundantly through some data transmission paths based on data transmission performance. Therefore, in this embodiment, the first data transmission path is used to determine whether it can send tail data packets based on the round-trip time of the first data transmission path. If it can, the action of redundantly sending tail data packets through the first data transmission path is executed.

[0117] As can be seen, by selectively using partial data transmission path redundancy to send tail data packets according to data transmission performance in this embodiment, the response data packets corresponding to the tail data packets can be returned to the terminal device within a specified time as much as possible, thus avoiding a decrease in the overall file download efficiency due to the slow return speed of the tail data packets.

[0118] In one embodiment, determining whether the first data transmission path can send tail data packets based on the round-trip time of the first data transmission path includes:

[0119] Calculate the average round-trip time of data transmission for each data transmission path;

[0120] Determine whether the round-trip time of data transmission for the first data transmission path is less than or equal to the average value;

[0121] If so, then it is determined that the first data transmission path can send the tail data packet.

[0122] Specifically, the round-trip time (RTT) of each data transmission path is obtained, the average value of each RTT is calculated, and it is determined whether the RTT of the first data transmission path is less than or equal to the average value. If so, it is determined that the first data transmission path can send the tail data packet.

[0123] As can be seen, this embodiment enables the redundant transmission of tail data packets through data transmission paths whose round-trip time (RTT) is less than the average RTT of each data transmission path. This improves the utilization of each data transmission link and the transmission efficiency of tail data packets, avoiding the waste of resources caused by using data transmission links with poor data transmission performance to send tail data packets.

[0124] In one embodiment, redundantly sending tail data packets via a first data transmission path includes:

[0125] Select target tail data packets whose redundant transmission count has not reached the predetermined number in the tail data packets;

[0126] The target tail data packet is sent through the first data transmission path.

[0127] All request data packets to be sent across all data transmission links reside in a central queue. Therefore, tail data packets are also located in this queue. Following the order of their positions in the queue, each tail data packet is traversed sequentially. It is determined whether the redundant transmission count of the traversed tail data packet has reached a predetermined number (e.g., whether it has been redundantly transmitted once). If it has, the traversed tail data packet is ignored. If not, the traversed tail data packet is selected as the target tail data packet and redundantly transmitted through the first data transmission path. The first data transmission path can either traverse and transmit only one target tail data packet, or it can transmit all target tail data packets in the queue.

[0128] It should be noted that since the tail data packet may need to be sent multiple times redundantly, after the first data transmission path sends the target tail data packet, the target tail data packet is still kept in the queue so that other data transmission paths can continue to send it.

[0129] As can be seen, this embodiment can select target tail data packets that have not reached the predetermined number of redundant transmissions for redundant transmission, thereby avoiding excessive waste of network resources due to excessive redundant transmission of tail data packets.

[0130] Figure 3 A flowchart illustrating a data scheduling method provided in yet another embodiment of this disclosure is shown below. Figure 3 As shown, the process includes:

[0131] Step S302: Determine whether a requested data packet has been allocated to the first data transmission path through the scheduling algorithm;

[0132] If yes, proceed to step S304; otherwise, proceed to step S316.

[0133] Step S304: Obtain the first duration between the current time and the playback time of the video frame to which the response data packet to which the request data packet belongs; obtain the second duration estimated in advance for obtaining the response data packet from the server; and obtain the proportion of redundant data transmitted in each data transmission path.

[0134] Step S306: Determine whether the difference between the first duration and the second duration is less than or equal to the first threshold value;

[0135] If yes, proceed to step S308; otherwise, proceed to step S314.

[0136] Step S308: Determine whether the proportion of data volume is less than or equal to the second threshold value;

[0137] If yes, proceed to step S310; otherwise, proceed to step S314.

[0138] Step S310: Among the data transmission paths whose round-trip time is longer than that of the first data transmission path, determine the data transmission path with the shortest round-trip time and use it as the second data transmission path.

[0139] Step S312: Send a request data packet through the first data transmission path, and allocate the request data packet to the data transmission queue of the second data transmission path;

[0140] Step S314: Send a request data packet through the first data transmission path;

[0141] Step S316: Determine whether the total number of free windows for each data transmission path is greater than the total number of unsent request data packets;

[0142] If yes, proceed to step S318; otherwise, end the process.

[0143] Step S318: Determine whether the round-trip time of data transmission of the first data transmission path is less than or equal to the average round-trip time of data transmission of each data transmission path;

[0144] If yes, proceed to step S320; otherwise, end the process.

[0145] Step S320: Redundantly transmit unsent request data packets through the first data transmission path and keep the unsent request data packets in the queue.

[0146] pass Figure 3 The proposed method has two main advantages. First, when redundant transmission of request data packets is required, it enables redundant transmission via a first data transmission path and a second data transmission path. This redundant transmission allows the corresponding response data to be requested multiple times, ensuring the response data reaches the terminal device within the specified timeframe. Second, by determining whether redundant transmission of request data packets is necessary based on a first duration, a second duration, and the first data, rather than redundantly transmitting all request data packets, the method ensures that only necessary data is redundantly transmitted, saving network costs and computer resources.

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

[0148] The judgment unit 41 is used to determine whether redundant transmission of request data packets is required based on a first duration, a second duration, and a first data volume. The first duration is the duration between the current time and the playback time of the video frame to which the response data packet corresponding to the request data packet belongs. The second duration is the duration required for the terminal device to receive the response data packet from the server. The first data volume is the data volume of the request data packets redundantly transmitted in each data transmission path between the terminal device and the server.

[0149] The first transmission unit 42 is configured to send the request data packet through a first data transmission path and a second data transmission path respectively when it is determined that redundant transmission of the request data packet is required, wherein each data transmission path includes the first data transmission path and the second data transmission path;

[0150] The second transmission unit 43 is used to send the request data packet through the first data transmission path when it is determined that redundant transmission of the request data packet is not required.

[0151] Optionally, the judgment unit 41 is specifically used for:

[0152] Obtain the second data volume of all request data packets transmitted in each data transmission path;

[0153] Based on the first data volume and the second data volume, determine the proportion of redundant data transmitted in each data transmission path;

[0154] Based on the first duration, the second duration, and the data volume ratio, it is determined whether redundant request data packets need to be sent.

[0155] Optionally, the judgment unit 41 is also specifically used for:

[0156] Calculate the ratio of the first data volume to the second data volume;

[0157] The ratio is determined as the proportion of redundant data transmitted in each data transmission path.

[0158] Optionally, the judgment unit 41 is also specifically used for:

[0159] Calculate the difference between the first duration and the second duration;

[0160] Based on the difference and the proportion of data volume, determine whether redundant request data packets need to be sent.

[0161] Optionally, the judgment unit 41 is also specifically used for:

[0162] Determine whether the difference is less than or equal to a first threshold value, and determine whether the proportion of the data volume is less than or equal to a second threshold value;

[0163] If the difference is less than or equal to the first threshold and the data volume ratio is less than or equal to the second threshold, then it is determined that redundant request data packets need to be sent.

[0164] Optionally, it also includes a first threshold value determination unit, used for:

[0165] Obtain the maximum value among the preset data playback buffer time threshold and the round-trip time of data transmission for each data transmission path;

[0166] The first threshold value is determined based on the data playback buffer time threshold and the maximum value.

[0167] Optionally, the first threshold value determination unit is specifically used for:

[0168] Calculate the sum between the data playback buffer time threshold and the maximum value of the predetermined multiple;

[0169] The sum is determined as the first threshold value.

[0170] Optionally, it also includes a second threshold value determination unit, used for:

[0171] Obtain the video download speed and video playback bitrate of the terminal device;

[0172] The second threshold value is determined based on the video download speed and the video playback bitrate.

[0173] Optionally, the second threshold value determination unit is specifically used for:

[0174] Calculate the difference between the video download speed and the video playback bitrate;

[0175] Calculate the proportion of the difference to the video download speed;

[0176] The ratio is determined as the second threshold value.

[0177] Optionally, a path selection unit is also included for:

[0178] Based on the round-trip time of each data transmission path, a second data transmission path is selected from the various data transmission paths.

[0179] Optionally, the path selection unit is specifically used for:

[0180] Based on the round-trip time of each data transmission path, at least one data transmission path whose round-trip time is greater than that of the first data transmission path is determined among the data transmission paths.

[0181] The second data transmission path is selected from the at least one data transmission path.

[0182] Optionally, the path selection unit is also specifically used for:

[0183] The data transmission path with the shortest round-trip time among the at least one data transmission path is selected as the second data transmission path.

[0184] Optionally, the first transmission unit 42 is specifically used for:

[0185] The request data packet is assigned to the data sending queue of the second data transmission path, so that the second data transmission path sends the request data packet based on the data sending queue.

[0186] Optionally, it also includes a tail redundancy unit for:

[0187] Determine whether the total number of free windows across all data transmission paths is greater than the total number of unsent request packets;

[0188] If so, the unsent request data packet is identified as a tail data packet;

[0189] The tail data packet is redundantly transmitted through the first data transmission path.

[0190] Optionally, the tail redundancy unit is specifically used for:

[0191] Before the tail data packet is redundantly sent through the first data transmission path, it is determined whether the first data transmission path can send the tail data packet based on the round-trip time of the first data transmission path.

[0192] If possible, then the action of redundantly sending the tail data packet through the first data transmission path will be performed.

[0193] Optionally, the tail redundancy unit is also specifically used for:

[0194] Calculate the average round-trip time of data transmission for each data transmission path;

[0195] Determine whether the round-trip time of the data transmission along the first data transmission path is less than or equal to the average value;

[0196] If so, then it is determined that the first data transmission path can send tail data packets.

[0197] Optionally, the tail redundancy unit is specifically used for:

[0198] Select target tail data packets from the tail data packets whose redundant transmission count has not reached a predetermined number;

[0199] The target tail data packet is sent through the first data transmission path.

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

[0201] 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.

[0202] 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:

[0203] Based on the first duration, the second duration, and the first data volume, it is determined whether redundant transmission of request data packets is required. The first duration is the duration between the current time and the playback time of the video frame to which the response data packet corresponding to the request data packet belongs. The second duration is the duration required for the terminal device to receive the response data packet from the server. The first data volume is the data volume of the request data packets redundantly transmitted in each data transmission path between the terminal device and the server.

[0204] When it is determined that the request data packet needs to be sent redundantly, the request data packet is sent through the first data transmission path and the second data transmission path respectively, wherein each data transmission path includes the first data transmission path and the second data transmission path;

[0205] When it is determined that there is no need to redundantly send the request data packet, the request data packet is sent through the first data transmission path.

[0206] The electronic device in this embodiment can implement the various processes of the above-described data scheduling method embodiment and achieve the same effect and function, which will not be repeated here.

[0207] 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:

[0208] Based on the first duration, the second duration, and the first data volume, it is determined whether redundant transmission of request data packets is required. The first duration is the duration between the current time and the playback time of the video frame to which the response data packet corresponding to the request data packet belongs. The second duration is the duration required for the terminal device to receive the response data packet from the server. The first data volume is the data volume of the request data packets redundantly transmitted in each data transmission path between the terminal device and the server.

[0209] When it is determined that the request data packet needs to be sent redundantly, the request data packet is sent through the first data transmission path and the second data transmission path respectively, wherein each data transmission path includes the first data transmission path and the second data transmission path;

[0210] When it is determined that there is no need to redundantly send the request data packet, the request data packet is sent through the first data transmission path.

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

[0212] 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.

[0213] 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.

[0214] 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.

[0215] 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.

[0216] 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.

[0217] 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.

[0218] 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.

[0219] 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.

[0220] 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.

[0221] 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.

[0222] 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.

[0223] 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.

[0224] 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 scheduling method, characterized in that, The method is executed by a terminal device, and the method includes: Based on the first duration, the second duration, and the first data volume, it is determined whether redundant transmission of request data packets is required. The first duration is the duration between the current time and the playback time of the video frame to which the response data packet corresponding to the request data packet belongs. The second duration is the duration required for the terminal device to receive the response data packet from the server. The first data volume is the data volume of the request data packets redundantly transmitted in each data transmission path between the terminal device and the server. When it is determined that the request data packet needs to be sent redundantly, the request data packet is sent through the first data transmission path and the second data transmission path respectively, wherein each data transmission path includes the first data transmission path and the second data transmission path; When it is determined that redundant transmission of the request data packet is not required, the request data packet is transmitted through the first data transmission path; The step of determining whether redundant request data packets need to be sent based on the first duration, the second duration, and the first data volume includes: Obtain the second data volume of all request data packets transmitted in each data transmission path, and determine the proportion of redundant data transmitted in each data transmission path based on the first data volume and the second data volume. Calculate the difference between the first duration and the second duration. If the difference is less than or equal to the first threshold and the data volume ratio is less than or equal to the second threshold, then it is determined that redundant request data packets need to be sent.

2. The method according to claim 1, characterized in that, The step of determining the proportion of redundant data transmitted in each data transmission path based on the first data volume and the second data volume includes: Calculate the ratio of the first data volume to the second data volume; The ratio is determined as the proportion of redundant data transmitted in each data transmission path.

3. The method according to claim 1, characterized in that, The first threshold value is determined through the following steps: Obtain the maximum value among the preset data playback buffer time threshold and the round-trip time of data transmission for each data transmission path; The first threshold value is determined based on the data playback buffer time threshold and the maximum value.

4. The method according to claim 3, characterized in that, Determining the first threshold value based on the data playback buffer time threshold and the maximum value includes: Calculate the sum between the data playback buffer time threshold and the maximum value of the predetermined multiple; The sum is determined as the first threshold value.

5. The method according to claim 1, characterized in that, The second threshold value is determined through the following steps: Obtain the video download speed and video playback bitrate of the terminal device; The second threshold value is determined based on the video download speed and the video playback bitrate.

6. The method according to claim 5, characterized in that, Determining the second threshold value based on the video download speed and the video playback bitrate includes: Calculate the difference between the video download speed and the video playback bitrate; Calculate the proportion of the difference to the video download speed; The ratio is determined as the second threshold value.

7. The method according to claim 1, characterized in that, The second data transmission path is determined from the various data transmission paths in the following manner: Based on the round-trip time of each data transmission path, a second data transmission path is selected from the various data transmission paths.

8. The method according to claim 7, characterized in that, The step of selecting a second data transmission path from among the data transmission paths based on the round-trip time of each data transmission path includes: Based on the round-trip time of each data transmission path, at least one data transmission path whose round-trip time is greater than that of the first data transmission path is determined among the data transmission paths. The second data transmission path is selected from the at least one data transmission path.

9. The method according to claim 8, characterized in that, Selecting the second data transmission path from the at least one data transmission path includes: The data transmission path with the shortest round-trip time among the at least one data transmission path is selected as the second data transmission path.

10. The method according to claim 1, characterized in that, Sending the request data packet via the second data transmission path includes: The request data packet is assigned to the data sending queue of the second data transmission path, so that the second data transmission path sends the request data packet based on the data sending queue.

11. The method according to claim 1, characterized in that, The method further includes: Determine whether the total number of free windows across all data transmission paths is greater than the total number of unsent request packets; If so, the unsent request data packet is identified as a tail data packet; The tail data packet is redundantly transmitted through the first data transmission path.

12. The method according to claim 11, characterized in that, Before redundantly sending the tail data packet through the first data transmission path, the method further includes: Based on the round-trip time of the first data transmission path, determine whether the first data transmission path can send the tail data packet; If possible, then the action of redundantly sending the tail data packet through the first data transmission path will be performed.

13. The method according to claim 12, characterized in that, The step of determining whether the first data transmission path can send tail data packets based on the round-trip time of the first data transmission path includes: Calculate the average round-trip time of data transmission for each data transmission path; Determine whether the round-trip time of the data transmission along the first data transmission path is less than or equal to the average value; If so, then it is determined that the first data transmission path can send tail data packets.

14. The method according to claim 11, characterized in that, The step of redundantly sending the tail data packet through the first data transmission path includes: Select target tail data packets from the tail data packets whose redundant transmission count has not reached a predetermined number; The target tail data packet is sent through the first data transmission path.

15. A data scheduling device, characterized in that, Applied to terminal devices, including: The judgment unit is used to determine whether redundant transmission of request data packets is required based on a first duration, a second duration, and a first data volume. The first duration is the duration between the current time and the playback time of the video frame to which the response data packet corresponding to the request data packet belongs. The second duration is the duration required for the terminal device to receive the response data packet from the server. The first data volume is the data volume of the request data packets redundantly transmitted in each data transmission path between the terminal device and the server. The first transmission unit is configured to send the request data packet through a first data transmission path and a second data transmission path respectively when it is determined that redundant transmission of the request data packet is required, wherein each data transmission path includes the first data transmission path and the second data transmission path; The second transmission unit is used to send the request data packet through the first data transmission path when it is determined that there is no need to redundantly send the request data packet. Specifically, the judgment unit is used for: Obtain the second data volume of all request data packets transmitted in each data transmission path, and determine the proportion of redundant data transmitted in each data transmission path based on the first data volume and the second data volume. Calculate the difference between the first duration and the second duration. If the difference is less than or equal to the first threshold and the data volume ratio is less than or equal to the second threshold, then it is determined that redundant request data packets need to be sent.

16. An electronic device, characterized in that, 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-14.

17. 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-14.