Data Transmission Method, Apparatus, Device, and Storage Medium

By sending application feedback information to the sending device, dynamically scheduling the data transmission path, the traditional multi-path transmission solution has poor flexibility in the face of rapid changes in network status and dynamic needs of the receiver users, and has achieved more efficient data transmission performance and user experience.

CN113316263BActive Publication Date: 2025-05-30ALIBABA INNOVATION PRIVATE LIMITED
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202110425633.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-04-20
Publication Date
2025-05-30
Estimated Expiration
2041-04-20

AI Technical Summary

Technical Problem

When facing the rapid changes in network status and dynamic needs of the receiver users, the traditional multi-path transmission solution has poor flexibility and limited results, resulting in poor data transmission performance and affecting the user experience.

Method used

The application feedback information is dynamically sent to the sending device through the receiving device, and based on the feedback information, the data transmission path is dynamically scheduled, and a suitable target data transmission path is determined to send a data packet.

Benefits of technology

It realizes dynamic scheduling of data transmission paths according to the customized needs of the receiving end, meets the customized application needs of the receiving end for data transmission performance, improves user experience, and increases user stickiness.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113316263B_ABST
    Figure CN113316263B_ABST
Patent Text Reader

Abstract

The present invention provides a data transmission method, apparatus, device, and storage medium. The method includes: a sending device obtains application feedback information sent by a receiving device, determines at least one available data transmission path according to the application feedback information, determines a target data transmission path corresponding to a data packet to be sent among the at least one data transmission path, and sends the data packet to the receiving device through the target data transmission path. The sending device schedules the data transmission path based on the application feedback information dynamically sent by the receiving device, which can meet the customized application requirements of the receiving device for data transmission performance, improve the user experience, and increase user stickiness.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of communication technologies, and in particular, to a data transmission method, apparatus, device, and storage medium. Background Art

[0002] Due to the natural instability of wireless signals, the Multipath Transport (MPT) scheme that uses multiple data transmission paths to transmit data packets is widely adopted. For example, in scenarios with high requirements for bandwidth, latency, etc., such as multi-party video conferencing and live interactive sessions, the MPT scheme is often used.

[0003] In traditional MPT schemes, after multiple data transmission paths are initially established between the transceiver ends, the quality of different data transmission paths is measured, and based on the quality of each data transmission path and a certain path selection method, it is determined which data transmission path the data packet to be sent currently needs to be allocated to for transmission. For example, it is allocated to the data transmission path with the highest bandwidth, or the data transmission path with the minimum Round-Trip Time (RTT), etc.

[0004] The MPT scheme aims to ensure the smooth and reliable transmission of data. However, the above method of scheduling data transmission paths using a certain fixed strategy has poor flexibility and limited effects. Summary of the Invention

[0005] Embodiments of the present invention provide a data transmission method, apparatus, device, and storage medium, which can dynamically schedule data transmission paths according to the customized requirements of the receiving end.

[0006] In a first aspect, an embodiment of the present invention provides a data transmission method, which is applied to a sending-end device. The method includes:

[0007] Obtain application feedback information sent by a receiving-end device;

[0008] Determine at least one available data transmission path according to the application feedback information;

[0009] Determine a target data transmission path corresponding to the data packet to be sent among the at least one data transmission path;

[0010] Send the data packet to the receiving-end device through the target data transmission path.

[0011] In a second aspect, an embodiment of the present invention provides a data transmission apparatus, which is applied to a sending-end device. The apparatus includes:

[0012] An obtaining module, configured to obtain application feedback information sent by a receiving-end device;

[0013] A determination module, configured to determine at least one available data transmission path according to the application feedback information, and determine a target data transmission path corresponding to the data packet to be sent from the at least one data transmission path;

[0014] A sending module, configured to send the data packet to the receiving end device through the target data transmission path.

[0015] In a third aspect, an embodiment of the present invention provides an electronic device, including: a memory and a processor; wherein, an executable code is stored on the memory, and when the executable code is executed by the processor, the processor can at least implement the data transmission method as described in the first aspect.

[0016] In a fourth aspect, an embodiment of the present invention provides a non-transitory machine-readable storage medium, on which an executable code is stored, and when the executable code is executed by a processor of an electronic device, the processor can at least implement the data transmission method as described in the first aspect.

[0017] In a fifth aspect, an embodiment of the present invention provides a data transmission method, which is applied to a receiving end device, and the method includes:

[0018] Obtain application feedback information;

[0019] Send the application feedback information to a sending end device, so that the sending end device determines at least one available data transmission path according to the application feedback information, and determines a target data transmission path corresponding to the data packet to be sent from the at least one data transmission path;

[0020] Receive the data packet sent by the sending end device through the target data transmission path.

[0021] In a sixth aspect, an embodiment of the present invention provides a data transmission device, which is applied to a receiving end device, and the device includes:

[0022] An obtaining module, configured to obtain application feedback information;

[0023] A sending module, configured to send the application feedback information to a sending end device, so that the sending end device determines at least one available data transmission path according to the application feedback information, and determines a target data transmission path corresponding to the data packet to be sent from the at least one data transmission path;

[0024] A receiving module, configured to receive the data packet sent by the sending end device through the target data transmission path.

[0025] Seventh aspect, an embodiment of the present invention provides an electronic device, including: a memory, a processor; wherein, an executable code is stored on the memory, and when the executable code is executed by the processor, the processor can at least implement the data transmission method as described in the fifth aspect.

[0026] Eighth aspect, an embodiment of the present invention provides a non-transitory machine-readable storage medium, on which an executable code is stored, and when the executable code is executed by a processor of an electronic device, the processor can at least implement the data transmission method as described in the fifth aspect.

[0027] In the data transmission solution provided by the embodiment of the present invention, the receiving-end device can dynamically send application feedback information to the sending-end device based on application requirements set by the receiving-end user, the receiving situation of data, etc., so that the sending-end device can perform dynamic scheduling of the data transmission path based on the application feedback information. Specifically, the sending-end device can determine at least one currently available data transmission path among the multiple established data transmission paths based on the application feedback information, that is, at least one data transmission path that matches the application feedback information. Then, for the data packet to be sent currently, the sending-end device determines a target data transmission path corresponding to the data packet among the at least one data transmission path, and sends the data packet to the receiving-end device through the target data transmission path.

[0028] The sending-end device schedules the data transmission path based on the application feedback information dynamically sent by the receiving-end device, which can meet the customized application requirements of the receiving end for data transmission performance, improve the user experience, and increase user stickiness. BRIEF DESCRIPTION OF THE DRAWINGS

[0029] In order to more clearly illustrate the technical solutions in the embodiments of the present invention, the following will briefly introduce the drawings required for the description of the embodiments. Obviously, the drawings in the following description are some embodiments of the present invention. For those of ordinary skill in the art, other drawings can be obtained based on these drawings without creative efforts.

[0030] Figure 1 A schematic diagram of the allocation result of a traditional data transmission path provided by an embodiment of the present invention;

[0031] Figure 2 An interaction diagram of a data transmission method provided by an embodiment of the present invention;

[0032] Figure 3 A schematic diagram of a data transmission process provided by an embodiment of the present invention;

[0033] Figure 4A flowchart of a data transmission path determination process provided by an embodiment of the present invention;

[0034] Figure 5 A schematic diagram of a data redundancy transmission scenario provided by an embodiment of the present invention;

[0035] Figure 6 A schematic diagram of a data transmission scenario provided by an embodiment of the present invention;

[0036] Figure 7 A schematic structural diagram of a data transmission device provided by an embodiment of the present invention;

[0037] Figure 8 For Figure 7 A schematic structural diagram of an electronic device corresponding to the data transmission device shown in the embodiment;

[0038] Figure 9 A schematic structural diagram of a data transmission device provided by an embodiment of the present invention;

[0039] Figure 10 For Figure 9 A schematic structural diagram of an electronic device corresponding to the data transmission device shown in the embodiment. Detailed implementation manners

[0040] To make the objectives, technical solutions, and advantages of the embodiments of the present invention clearer, the technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present invention. Apparently, the described embodiments are some but not all of the embodiments of the present invention. All other embodiments obtained by those of ordinary skill in the art based on the embodiments of the present invention without creative efforts shall fall within the protection scope of the present invention.

[0041] In addition, the sequence of steps in the following method embodiments is only an example and is not strictly limited.

[0042] Suppose the following application scenario. A user is watching a video through a certain video client. At this time, the two devices that need to communicate are the video server that provides the video (which is the sending-end device) and the user terminal used by the user to watch the video (which is the receiving-end device). As described above, in the traditional multi-path transmission scheme, when multiple data transmission paths have been established between the video server and the user terminal, the video server can measure the quality of different data transmission paths, and select a data transmission path for the data packet to be sent based on the measured path quality and a certain path selection method set.

[0043] Commonly used path selection methods include:

[0044] Round-robin, which selects in turn among different data transmission paths;

[0045] Lowest Round-Trip Time (LowRTT), preferentially selects the data transmission path with the minimum RTT until the sending window or congestion window of the data transmission path with the minimum RTT is filled, and then selects the data transmission path corresponding to the sub-optimal RTT;

[0046] Highest Bandwidth (Highest-Sending-Rate), preferentially selects the data transmission path with the highest bandwidth until the congestion window of this data transmission path is filled, and then selects the sub-optimal data transmission path.

[0047] In the above video transmission scenario, the video consists of frames of images. During the process of transmitting the video to the user terminal, it is necessary to transmit each frame of the image one by one, and each frame of the image will be split into multiple data packets for transmission. The same applies to other scenarios. Therefore, in the embodiments of the present invention, the object of data transmission is called a data packet (packet).

[0048] In this article, a data transmission path (Path) refers to a data path formed by all connections and routing nodes between two communication nodes (the sending end and the receiving end). A data transmission path can usually be represented as a quadruple composed of (source IP, destination IP, source port, destination port).

[0049] Figure 1 illustrates the execution result of a path selection method based on a certain setting. In Figure 1 it is assumed that the sending queue of the video server includes data packet 1, data packet 2, data packet 3, and data packet 4, and it is assumed that two data transmission paths, path 1 and path 2, have been established between the video server and the user terminal. Assuming the LowRTT strategy, first allocate data packet 1 to path 1 (assuming the RTT of path 1 is less than the RTT of path 2), then allocate data packet 2 to path 2, then allocate data packet 3 to path 1, and then allocate data packet 4 to path 2.

[0050] The above method of scheduling data transmission paths based on the network state of the path and a certain fixed path selection method has the following problems:

[0051] First, for an application such as the video client exemplified above, the above scheduling scheme is a static scheme, that is, the scheduling scheme remains unchanged during the operation of the application. However, in wireless communication, the network state (such as bandwidth, latency, packet loss rate, etc.) changes relatively quickly, and the measurement results of the network state of each data transmission path relied on by the above scheme are inaccurate. This static scheduling strategy cannot adapt to the rapid changes in the network state, and is prone to problems such as head-of-line blocking and low bandwidth utilization.

[0052] Second, the network states and requirements seen by the client (such as the above user terminal) and the server (such as the above video server, content distribution server, etc.) are different. For example, the server needs to control the overall traffic cost and the overall network congestion situation, while the current user cares more about the personal experience. The current static scheduling method cannot coordinate the different perspectives and requirements of the client and the server, and has poor flexibility.

[0053] Third, the above scheduling strategy is determined before the application runs and will not change during the operation of the application. However, the running state of the application is dynamically changing. For example, in a video application, the amount of cached data of the player and the real-time state of the codec during the operation have a great impact on the Quality of Experience (QoE) of the user. The static scheduling scheme cannot dynamically adapt to the application requirements of the receiving-end users, affecting the user experience.

[0054] Among them, scheduling in this article can refer to the process of allocating a data packet to one or more data transmission paths according to a certain method or rule. In the traditional scheme, a data packet is only allocated to one data transmission path.

[0055] To solve the above one or more problems, the embodiments of the present invention provide a data transmission scheme. This data transmission scheme mainly combines more-dimensional information to flexibly schedule data transmission paths to ensure data transmission performance, improve user experience, and increase user stickiness.

[0056] Figure 2 An interaction diagram of a data transmission method provided by an embodiment of the present invention is shown in Figure 2 As shown, the method may include the following steps:

[0057] 201. The receiving-end device obtains application feedback information.

[0058] 202. The receiving-end device sends the application feedback information to the sending-end device.

[0059] 203. The sending device determines at least one available data transmission path according to the application feedback information, and determines a target data transmission path corresponding to the data packet to be sent from the at least one data transmission path.

[0060] 204. The sending device sends the data packet to the receiving device through the target data transmission path.

[0061] In the embodiments of the present invention, the sending device and the receiving device refer to a pair of devices for communication. Among them, the sending device refers to the device that sends the data packet, and the receiving device refers to the device that receives the data packet. In practical applications, the sending device and the receiving device can be any device such as a server, a network device, a user terminal, etc. that supports multiple data transmission paths.

[0062] For data transmission, both the sending device and the receiving device need to support a certain transmission protocol to establish multiple data transmission paths based on the transmission protocol. Common transmission protocols include Transmission Control Protocol (TCP for short), User Datagram Protocol (UDP for short), Quick UDP Internet Connection (QUIC for short) protocol, and so on.

[0063] Among them, TCP and UDP are transmission protocols located in the kernel state, and QUIC is a transmission protocol located in the user state. When multi-path transmission scheduling is required, a function module called a scheduler needs to be used. The scheduler is a decision-making module in multi-path transmission. Its main role is to determine which data transmission path a data packet to be sent will be distributed to. The scheduler is located in the sending device. When using TCP and UDP protocols, the scheduler runs in the kernel state. When a certain scheduling policy is placed in the kernel, if the scheduling policy needs to be changed, the kernel needs to be upgraded, and the change and upgrade of the kernel are relatively inconvenient. When using the QUIC protocol, the scheduler runs in the user state, so only the update of the application (App) needs to be released for protocol upgrade and modification, and the operating system does not need to be upgraded. Based on this, optionally, in the embodiments of the present invention, multi-path transmission scheduling can be implemented in the QUIC protocol.

[0064] Next, in combination with Figure 3 to exemplarily illustrate the execution process of the solution provided in the above embodiments.

[0065] In Figure 3Among them, assume that the sending device is the server shown in the figure, and the receiving device is the user terminal shown in the figure. Assume that three data transmission paths, namely path1, path2, and path3 shown in the figure, have been established between the server and the user terminal. Assume that the server currently sends packet 1 and packet 2 to path1, sends packet 3 to path2, and sends packet 4 to path3 based on a certain path selection method. Whenever the user terminal receives a packet, it can send the corresponding acknowledgment (ACK) information of the packet to the server to inform the server that the packet has been successfully received.

[0066] Assume that at a certain moment, based on the user's trigger and / or based on a set collection policy, the user terminal obtains the application feedback information at this time. Optionally, the user terminal can carry the application feedback information in the acknowledgment message of a received packet and send the acknowledgment message with the application feedback information to the sending device. For example, if the user terminal obtains the application feedback information before sending the acknowledgment message ACK4 corresponding to packet 4, it can carry the application feedback information in the acknowledgment message ACK4 corresponding to packet 4.

[0067] It can be understood that when using the acknowledgment message to carry the application feedback information, it is necessary to extend the traditional acknowledgment message to add field definitions related to the application feedback information. For example, add an application feedback information length field and an application feedback information field in the acknowledgment message.

[0068] Of course, optionally, a new message can also be redefined to carry the application feedback information.

[0069] After the server receives the acknowledgment message sent by the user terminal and parses the application feedback information from it, it adjusts the path scheduling policy in real time according to the application feedback information: perform switch control on path1, path2, and path3, that is, determine at least one available data transmission path currently, set the unavailable data transmission paths to the closed state, and set the available data transmission paths to the open state. In Figure 3 Among them, assume that the server sets path3 to the closed state, that is, the currently available data transmission paths are path1 and path2. After that, for the currently to-be-sent packet 5, the server determines the target data transmission path for transmitting packet 5 from path1 and path2. For example, it determines path2 as the target data transmission path based on the "minimum round-trip delay" method and distributes packet 5 to path2 for transmission to the user terminal.

[0070] In the embodiments of the present invention, the application feedback information, that is, the QoE information of the application, can reflect the user's current comprehensive subjective feelings about the quality, performance, etc. of the application being used, as well as the user's various requirements for data charges, terminal power consumption, etc. And the above subjective feelings are affected by the data transmission performance. Based on this, the data transmission solution provided by the embodiments of the present invention aims to make full use of the bandwidth resources of multiple paths, overcome the random fluctuations of the wireless bandwidth, achieve stable communication under high mobility, and at the same time balance the user's various requirements for data charges, terminal power consumption and data transmission performance.

[0071] In practical applications, the application feedback information includes at least one of the following: data transmission scenario type, data cache information of the receiving device, user's tariff preference information for different data transmission paths, and user's power consumption requirement for the receiving device. Among them, the power consumption requirement can be, for example, the battery life requirement or the power consumption requirement.

[0072] Among them, the data transmission scenario type can be defined according to the category of the data to be transmitted. For example, it can include: file, on-demand video, live video, etc. In other words, the data transmission scenario type can also be considered as the application scenario type. Thus, the path scheduling strategy in the embodiments of the present invention can achieve application preference: the path scheduling strategies for different application scenario types are different.

[0073] For example, if the current application scenario is a live broadcast scenario and the user is a live broadcaster, then when the live broadcaster pushes the live video stream to the server, what is more concerned about is latency and bandwidth, and is less sensitive to tariffs. Therefore, at this time, a data transmission path with good latency and bandwidth performance can be enabled.

[0074] For another example, if the current application scenario is a live broadcast scenario and the user is a viewer, then when the viewer pulls the video stream from the server, what may be more concerned about is bandwidth and tariffs. Therefore, at this time, a data transmission path with large bandwidth and low cost can be enabled.

[0075] For another example, if the current application scenario is an on-demand video scenario, at this time the user may be more concerned about bandwidth. Therefore, at this time, a data transmission path with large bandwidth can be enabled.

[0076] In summary, when considering the influence of the data transmission scenario type (i.e., the application scenario type) on the path scheduling strategy, the preference information for different scenario types can be preset, such as preference for latency, bandwidth, tariffs, etc. The sending device can determine the data transmission path that matches the preference information from the multiple established data transmission paths as the currently available data transmission path.

[0077] The data caching information of the receiving-end device may include the size of the cached data volume and may also include the data output rate, etc. Simply put, the larger the cached data volume, the less urgent it indicates that the receiving-end device is to obtain data from the sending-end device in a timely manner. On the contrary, the smaller the cached data volume, the more urgent the receiving-end device is to obtain the data of the sending-end device. Based on this, the influence mode of different cached data volumes on the path scheduling strategy can be preset. For example, if the cached data volume is lower than a certain threshold, the sending-end device can determine, among the multiple established data transmission paths, the data transmission path with a smaller round-trip delay (meeting a certain set requirement) as the currently available data transmission path.

[0078] The user's power consumption requirements for the receiving-end device, such as the user's desire to extend the battery life or the user's desire to reduce power consumption. Here, it is assumed that the user terminal is the receiving-end device. In practical applications, when the battery power of the user terminal is low, the user may trigger the need to reduce the power consumption of the user terminal. Based on this need, the sending-end device can determine, among the multiple established data transmission paths, the data transmission path with lower power consumption as the currently available data transmission path.

[0079] Different data transmission paths often correspond to different network types and different network operators, and the charging standards for the network services provided by different network types and different network operators also vary. For example, a user's user terminal supports 4G and 5G mobile cellular networks provided by different operators, and at the same time, the user terminal is also connected to a Wi-Fi network, and the charges for these several networks are different. In practical applications, the user may set to preferentially use the Wi-Fi network where the Wi-Fi network coverage is available to reduce the fees. Similarly, where the Wi-Fi network is not covered, the user may set to use a certain mobile cellular network with a lower fee. However, if the current user urgently needs to receive some important data, the user may not care about the fee situation. At this time, the user may set to use multiple data transmission paths simultaneously, even if the fees of some of the data transmission paths are relatively high. For another example, the charging standards of two mobile cellular networks are different, and the user can also set the usage ratio of these two mobile cellular networks. For example, 30% of the data uses the mobile cellular network with a high fee, and 70% of the data uses the mobile cellular network with a high fee. Based on this, the sending-end device can determine, among the multiple established data transmission paths, the data transmission path that meets the fee preference information set by the user as the currently available data transmission path.

[0080] It should be noted that the application feedback information may only include one type of feedback information exemplified above, or may include multiple types of feedback information. When multiple types of feedback information are included, contradictions may occur when determining the currently available data transmission path according to the scheduling strategy corresponding to each type of feedback information. For example, the user sets not to use the data transmission path corresponding to a certain mobile cellular network because the free traffic corresponding to the mobile cellular network is insufficient. On the other hand, since the amount of data cached in the receiving device is very small, it is determined to turn on the data transmission path corresponding to the mobile cellular network, which results in a contradictory situation. To avoid the occurrence of this contradictory situation, optionally, the priority corresponding to each type of application feedback information can be set. Thus, when the sending device receives multiple application feedback information, it can determine the available data transmission path according to the application feedback information and their respective priorities. Assuming that in the above example, the priority corresponding to the tariff preference information is higher than the priority corresponding to the data cache information, then the data transmission path corresponding to the mobile cellular network is determined to be closed according to the tariff preference information.

[0081] Combined with the above various examples, the sources of the application feedback information obtained by the receiving device can be: manual settings by the user, and automatic collection according to a certain collection strategy. Among them, for example, power consumption requirements and tariff preference information can be manually set by the user, and for example, data cache information and data transmission scenario types can be automatically collected. In the automatic collection method, the receiving device can be configured to continuously collect application feedback information at a certain set time interval to obtain dynamically changing application feedback information in real time.

[0082] It can be understood that assuming that the application feedback information is obtained at time T1, and the next time to collect the application feedback information is time T2, then during the period from time T1 to time T2, the available data transmission path determined based on the application feedback information obtained at time T1 is used.

[0083] In addition, in an alternative embodiment, in addition to the application feedback information, the quality information of the data transmission path can also be combined to determine at least one currently available data transmission path from the established multiple data transmission paths. In other words, determine at least one data transmission path whose path quality information meets the requirements of the application feedback information.

[0084] At this time, the action modes of the path quality information and the application feedback information can be: First, the sending device obtains the quality information of each data transmission path established between it and the receiving device. Then, filter out the data transmission paths whose quality does not meet the set conditions (that is, the quality is very low). Then, determine the data transmission paths that meet the application feedback information among the remaining data transmission paths.

[0085] Among them, the quality information of the path includes at least one of the following: path type, round-trip delay, and network bandwidth. Among them, the path type can be determined according to the operator or network type corresponding to the path.

[0086] After determining at least one currently available data transmission path based on the application feedback information, for the data packet to be sent currently, the sender needs to determine a target data transmission path for sending the data packet from these at least one data transmission path, and send the data packet to the receiving end device through the target data transmission path.

[0087] Among them, optionally, the sender device can determine the target data transmission path according to a certain set path selection method, such as minimum RTT, maximum bandwidth, polling, and so on.

[0088] In summary, the sender device schedules the data transmission path based on the application feedback information dynamically sent by the receiving end device, which can meet the customized application requirements of the receiving end for data transmission performance, improve the user experience, and increase user stickiness.

[0089] In an alternative embodiment, the determination of the target data transmission path can also be implemented in combination with the application feedback information. The following uses the following embodiments to exemplarily illustrate the determination process of the target data transmission path.

[0090] Figure 4 The flowchart of a data transmission path determination process provided by an embodiment of the present invention is as Figure 4 shown, and this determination process may include the following steps:

[0091] 401. Determine a first target data transmission path corresponding to the data packet to be sent from at least one data transmission path according to the set path selection method.

[0092] 402. Send the data packet to the first target data transmission path.

[0093] 403. Determine whether the data packet meets the redundant transmission condition according to the application feedback information and / or the transmission status of the data packet under the first target data transmission path.

[0094] 404. If the data packet meets the redundant transmission condition, determine at least one second target data transmission path from at least one data transmission path, and send the data packet to the at least one second target data transmission path.

[0095] In this embodiment, a redundant transmission mechanism is provided. Redundant transmission means that for a data packet, there can be more than one path for transmitting the data packet. That is to say, a data packet and its copy are redundantly transmitted on two or more data transmission paths.

[0096] The main objective of the redundant transmission mechanism is to overcome the problem of unstable network transmission and reduce the blocking problem caused by weak paths. Examples will be given below.

[0097] First, a general description of the path determination process provided in this embodiment is given: After the sending device determines the currently available N data transmission paths (i.e., the above-mentioned at least one data transmission path, where N is greater than or equal to 1), for the data packet i that needs to be sent currently, first, based on the set path selection method, such as the minimum RTT, polling, or maximum bandwidth, a data transmission path is determined from the N data transmission paths to transmit the data packet i, and this data transmission path is called the first target data transmission path. At the same time, the sending device determines whether the data packet i meets the redundant transmission condition. If it meets the condition, it means that the data packet i can be redundantly transmitted. At this time, at least one data transmission path required for redundant transmission is determined from the remaining N - 1 data transmission paths, which is called at least one second target data transmission path. At this time, the data packet i is copied to the at least one second target data transmission path for transmission. If it does not meet the condition, the data packet i is only transmitted on the first target data transmission path.

[0098] Among them, the basis for determining whether the data packet i meets the redundant transmission condition can be: application feedback information and / or the transmission state of the data packet i under the first target data transmission path.

[0099] Optionally, the transmission state of the data packet i under the first target data transmission path can be represented by the RTT. Among them, the RTT corresponds to the duration between the sending time of the data packet i and the receiving time of the acknowledgment message of the data packet i. Based on this, optionally, if the sending device does not receive the acknowledgment message of the data packet i within the set time, it can be determined that the data packet i meets the redundant transmission condition. On the contrary, if the acknowledgment message of the data packet i is received within the set time, it is considered that the data packet i does not meet the redundant transmission condition.

[0100] In practical applications, if the sending device does not receive the acknowledgment message of the data packet i for a relatively long time, it means that the RTT of the data packet i under the first target data transmission path is relatively large, which also reflects that the first target data transmission path is relatively blocked, that is, there are many data packets before the data packet i on the first target data transmission path that need to be transmitted. At this time, enabling another data transmission path to transmit the data packet i increases the probability that the data packet i is received by the receiving device in a timely manner. For example, there are fewer data packets to be transmitted on this other data transmission path, and the quality of this data transmission path is also relatively good.

[0101] In the above example, the RTT is used as the determination basis. Optionally, the quality information of other first target data transmission paths can also be used as the determination basis, such as packet loss rate, available bandwidth, and so on.

[0102] In addition, the determination of whether the data packet i meets the redundant transmission condition can also be made based on the application feedback information.

[0103] Among them, optionally, it can be preset that in certain specific application scenario types, that is, data transmission scenario types, the data packets to be transmitted all adopt the redundant transmission mechanism. Or, it can be preset that in certain specific application scenario types, that is, data transmission scenario types, the data packets to be transmitted all adopt the redundant transmission mechanism when the power of the receiving end device is sufficient (such as the remaining power is greater than the set threshold).

[0104] Or, optionally, when the application feedback information includes the data cache information of the receiving end device, it can also be determined whether the data packet i meets the redundant transmission condition according to the data cache information.

[0105] In an optional embodiment, determining whether the data packet i meets the redundant transmission condition according to the application feedback information can be implemented as:

[0106] If the output time of the cached data indicated by the data cache information is less than the first preset threshold, it is determined that the data packet i meets the redundant transmission condition;

[0107] If the output time of the cached data indicated by the data cache information is greater than the second preset threshold, it is determined that the data packet i does not meet the redundant transmission condition, and the first preset threshold is less than the second preset threshold.

[0108] In this embodiment, the output time of the cached data refers to how long the cached data can support the output in the scenario where the cached data needs to be output. For example, in the video playback scenario, the client will download and cache video data from the server, and how long the cached video data can support the playback is the output time of the cached video data.

[0109] In practical applications, optionally, the data cache information may include the size of the cached data volume and the output rate. Thus, the output time of the cached data can be taken as the quotient of the size of the cached data volume and the output rate. If this output time is less than the first preset threshold, it means that the amount of cached data is relatively small. In order to enable the user to obtain data smoothly and in a timely manner, the redundant transmission mechanism can be enabled at this time, so that the data packets sent by the sending end device can reach the receiving end device faster and more. On the contrary, if this output time is greater than the second preset threshold, it means that the amount of cached data is relatively large and can still output data smoothly for the user for a period of time. At this time, the redundant transmission mechanism can be not enabled to avoid excessive occupation of network resources and resources of the receiving end device.

[0110] In the above, an example is given by setting two thresholds. In fact, it is also possible to set only one threshold, that is, if the output time is greater than this threshold, the redundant transmission condition is not met and the redundant transmission mechanism is not enabled. On the contrary, if the output time is less than this threshold, the redundant transmission condition is met and the redundant transmission mechanism is enabled.

[0111] In addition, in practical applications, the definition method of the output time of the cached data is not limited to the above example. For example, in a video transmission scenario, for video playback, the receiving device includes a video codec and a video player. The video codec will only decode multiple data packets corresponding to a complete frame of image after receiving them, and then send the decoded frame of image to the video player for playback.

[0112] Therefore, from the perspective of the video codec, it will receive data packets from the sending device at a certain transmission rate and cache the received data packets. At this time, a transmission time can be defined as: cached_bytes / bit_rate, where cached_bytes is the size of the data volume cached by the video codec, and bit_rate is the transmission rate of the data packets, that is, the bit rate.

[0113] From the perspective of the video player, it will receive frames of images output by the video codec and play them at a set frame rate. At this time, another transmission time can be defined as: cached_frames / frame_rate, where cached_frames is the number of frames of images cached by the video player, and frames_rate is the frame rate.

[0114] Finally, optionally, the output time of the cached data of the receiving device can be defined as:

[0115] Min(cached_bytes / bit_rate,cached_frames / frame_rate), that is, the minimum value of the above two transmission times.

[0116] In another alternative embodiment, it is also possible to determine whether the data packet i meets the redundant transmission condition according to the application feedback information and the transmission status of the data packet i under the first target data transmission path. At this time, the determination process can be implemented as:

[0117] If the data cache information indicates that the output time of the cached data is less than the first preset threshold, it is determined that the data packet i meets the redundant transmission condition;

[0118] If the output time of the cached data indicated by the data cache information is greater than the second preset threshold, it is determined that the data packet i does not meet the redundant transmission condition, and the first preset threshold is less than the second preset threshold;

[0119] If the output time of the cached data indicated by the data cache information is between the first preset threshold and the second preset threshold, it is determined whether the data packet i meets the redundant transmission condition according to the transmission status of the data packet i under the first target data transmission path.

[0120] Wherein, when the output time is between the first preset threshold and the second preset threshold, optionally, if the sending device does not receive the acknowledgment message of the data packet i within the set time, it is determined that the data packet i meets the redundant transmission condition; if the acknowledgment message of the data packet i is received within the set time, it is determined that the data packet i does not meet the redundant transmission condition.

[0121] In the above embodiments, the data cache information is taken as an example to introduce how to determine whether a data packet needs to be redundantly transmitted. Actually, the corresponding relationship between other application feedback information and whether a data packet is redundantly transmitted can also be preset, and it is not limited to the above examples.

[0122] The following combines Figure 5 to exemplarily illustrate a scenario of data redundant transmission.

[0123] In Figure 5 it is assumed that the sending device determines that the currently available data transmission paths between the sending device and the receiving device based on the application feedback information sent by the receiving device include Path 1 and Path 2, and the data packets that the sending device needs to send in sequence are: Data Packet 1, Data Packet 2, Data Packet 3, Data Packet 4, Data Packet 5, Data Packet 6. Assume that the bandwidth of Path 1 is 3 and the delay is 1, and the bandwidth of Path 2 is 2 and the delay is 20. Based on this, assume that the sending device initially distributes Data Packet 1, Data Packet 2, and Data Packet 3 to be transmitted on Path 1 based on the "maximum bandwidth" method, and distributes Data Packet 4 and Data Packet 5 to be transmitted on Path 2. After that, due to the large delay on Path 2, the sending device may not receive the acknowledgment message of Data Packet 4 for a long time, and of course, it also does not receive the acknowledgment message of Data Packet 5, that is, Data Packet 4 and Data Packet 5 are in an unacknowledged state for a long time. At this time, it can be confirmed that Data Packet 4 and Data Packet 5 need to be redundantly transmitted, and Data Packet 4 and Data Packet 5 are redistributed to be transmitted on Path 1. Since the delay of Path 1 is relatively small, and there are relatively few data packets that need to be transmitted before Data Packet 4 and Data Packet 5 on Path 1, Data Packet 4 and Data Packet 5 may be able to be transmitted to the receiving device faster through Path 1, thus overcoming the head-of-line blocking problem of Path 2, that is, avoiding the problem that subsequent data packets cannot be normally transmitted due to the inability of previous data packets on Path 2 to be transmitted to the receiving device.

[0124] In summary, based on the data transmission solution provided by the embodiments of the present invention, it is allowed to dynamically and real-time change the path scheduling strategy through information interaction between the receiving end and the sending end, so as to make full use of the bandwidth resources of multiple paths, overcome the problem of wireless signal fluctuation, achieve stable communication, and at the same time balance various requirements of users for data charges, mobile phone power consumption, etc. and data transmission performance.

[0125] The data transmission solution provided by the embodiments of the present invention can be applied to any data transmission scenario, and can be particularly applied to scenarios with relatively high requirements for bandwidth and delay, such as multi-party video conferencing, live interaction, etc.

[0126] For example, in the video conferencing scenario, to ensure the smoothness of the video stream, there are relatively high requirements for bandwidth and delay. Therefore, assuming that the preset data transmission scenario types include the video conferencing scenario, and the preference information corresponding to this scenario includes delay and bandwidth, then when the data transmission solution provided by the embodiments of the present invention is adopted in a certain video conference, at least one available data transmission path can be determined based on the application feedback information of this data transmission scenario type of the video conferencing scenario. After that, for the data packet to be sent currently, it is necessary to determine the target data transmission path for sending the data packet from these at least one data transmission paths, and send the data packet through the target data transmission path.

[0127] For another example, in the live interaction scenario, as described above, two data transmission scenario types can be defined according to the two roles of the anchor and the audience, and then multiple data transmission paths can be determined according to the preference information of different data transmission scenario types. Of course, in this scenario, the anchor and the audience can also manually set the application feedback information according to their own needs. For example, if the battery power of a certain audience's mobile terminal is low, the application feedback information of "reducing the power consumption of the user terminal" can be set.

[0128] The process of determining multiple data transmission paths based on the application feedback information can refer to the relevant descriptions in the foregoing embodiments, and will not be elaborated here.

[0129] In addition, it should be noted that, in order to be compatible with the traditional multi-path transmission solution, the data transmission solution provided by the embodiments of the present invention can be provided to users as an optional service. That is to say, the data transmission solution provided by the embodiments of the present invention can be dynamically configured, that is, the user can configure to adopt this solution when needed, and in other cases, the traditional multi-path transmission solution can be adopted by default. For example, when a certain user sends short videos and pictures to friends, the traditional multi-path transmission solution can be adopted, and when the user acts as an anchor for live broadcast, the data transmission solution provided by this embodiment can be configured to be adopted.

[0130] Based on this, optionally, as Figure 6As shown, it is assumed that when a user is using a certain APP for data transmission ( Figure 6 The scenario shown in Figure 6 is that the user is watching a live video), the following options can be displayed on a certain interface 601 of the APP: Optimize the data transmission method. When the user does not select this option, the traditional multi-path transmission scheme is adopted by default. When the user selects this option, the data transmission scheme provided by the embodiments of the present invention is adopted.

[0131] As Figure 6 shown, when the user selects the above option, the display interface 602 is displayed, and various options corresponding to application feedback information can be displayed in the interface 602, such as: reducing the power consumption of the terminal device, data transmission scenario type, data caching, and less cost. When the user selects a certain option, the sending device determines at least one available data transmission path according to the option selected by the user, and then determines the target data transmission path corresponding to the data packet to be sent in the at least one data transmission path, and sends the data packet to the receiving device through the target data transmission path.

[0132] Optionally, the data transmission performance comparison before and after the user selects the option of "optimize the data transmission method" can also be displayed on the interface 601, such as the differences in data transmission speed, cost, etc., for the user to view the effects brought by this "optimize the data transmission method". Optionally, the above at least one data transmission path or the target data transmission path can also be further displayed on the interface 601.

[0133] The data transmission device of one or more embodiments of the present invention will be described in detail below. Those skilled in the art can understand that these data transmission devices can all be configured by using commercially available hardware components through the steps taught by this solution.

[0134] Figure 7 As shown in Figure 7 Figure 7 , the device includes: an acquisition module 11, a determination module 12, and a sending module 13.

[0135] The acquisition module 11 is used to acquire the application feedback information sent by the receiving device.

[0136] The determination module 12 is used to determine at least one available data transmission path according to the application feedback information, and determine the target data transmission path corresponding to the data packet to be sent in the at least one data transmission path.

[0137] The sending module 13 is used to send the data packet to the receiving device through the target data transmission path.

[0138] Optionally, the determination module 12 can specifically be used to: determine at least one available data transmission path according to the application feedback information and the priorities respectively corresponding to the application feedback information.

[0139] Optionally, the determination module 12 can specifically be used to: determine at least one available data transmission path according to the application feedback information and the quality information of the data transmission path.

[0140] Optionally, the quality information includes at least one of the following: path type, round-trip delay, network bandwidth.

[0141] Optionally, the application feedback information includes at least one of the following:

[0142] data transmission scenario type, data cache information of the receiving-end device, user's tariff preference information for different data transmission paths, user's power consumption requirement for the receiving-end device.

[0143] Optionally, the application feedback information is carried in the acknowledgment message of the data packet received by the receiving-end device.

[0144] During the process of determining the target data transmission path, optionally, the determination module 12 can specifically be used to: determine a first target data transmission path corresponding to the data packet to be sent from the at least one data transmission path according to the set path selection method; send the data packet to the first target data transmission path; determine whether the data packet meets the redundancy sending condition according to the application feedback information and / or the transmission status of the data packet on the first target data transmission path; if the data packet meets the redundancy sending condition, determine at least one second target data transmission path from the at least one data transmission path; send the data packet to the at least one second target data transmission path.

[0145] Optionally, the data cache information of the receiving-end device is included in the application feedback information, and the determination module 12 can specifically be used to: if the data cache information indicates that the output time of the cached data is less than a first preset threshold, determine that the data packet meets the redundancy sending condition; if the data cache information indicates that the output time of the cached data is greater than a second preset threshold, determine that the data packet does not meet the redundancy sending condition, where the first preset threshold is less than the second preset threshold.

[0146] Optionally, the application feedback information includes data cache information of the receiving end device. The determining module 12 may specifically be configured to: if the data cache information indicates that the output time of the cached data is less than a first preset threshold, determine that the data packet meets the condition for redundant transmission; if the data cache information indicates that the output time of the cached data is greater than a second preset threshold, determine that the data packet does not meet the condition for redundant transmission, where the first preset threshold is less than the second preset threshold; if the data cache information indicates that the output time of the cached data is between the first preset threshold and the second preset threshold, determine whether the data packet meets the condition for redundant transmission according to the transmission state of the data packet under the first target data transmission path.

[0147] The determining module 12 may specifically be configured to: if the acknowledgment message of the data packet is not received within a set time, determine that the data packet meets the condition for redundant transmission; if the acknowledgment message of the data packet is received within a set time, determine that the data packet does not meet the condition for redundant transmission.

[0148] Figure 7 The device shown may execute the data transmission scheme performed by the sending end device in the foregoing Figures 1 to 5 For the detailed execution process and technical effects, refer to the description in the foregoing embodiments and will not be elaborated here.

[0149] In a possible design, the structure of the foregoing Figure 7 shown data transmission device may be implemented as an electronic device. As Figure 8 shown, the electronic device may include: a first processor 21, a first memory 22, and a first communication interface 23. Wherein, executable code is stored on the first memory 22, and when the executable code is executed by the first processor 21, the first processor 21 can at least implement the data transmission method performed by the sending end device in the foregoing Figures 1 to 5 shown embodiment.

[0150] In addition, an embodiment of the present invention provides a non-transitory machine-readable storage medium, on which executable code is stored. When the executable code is executed by a processor of an electronic device, the processor can at least implement the data transmission method performed by the sending end device in the foregoing Figures 1 to 5 shown embodiment.

[0151] Figure 9 is a schematic structural diagram of a data transmission device provided by an embodiment of the present invention. As Figure 9 shown, the device includes: an obtaining module 31, a sending module 32, and a receiving module 33.

[0152] The obtaining module 31 is configured to obtain application feedback information.

[0153] A sending module 32, configured to send the application feedback information to a sending-end device, so that the sending-end device determines at least one available data transmission path according to the application feedback information, and determines a target data transmission path corresponding to a data packet to be sent from the at least one data transmission path.

[0154] A receiving module 33, configured to receive the data packet sent by the sending-end device through the target data transmission path.

[0155] Optionally, the application feedback information includes at least one of the following:

[0156] A data transmission scenario type, data cache information of the receiving-end device, a user's tariff preference information for different data transmission paths, a user's battery life requirement for the receiving-end device, and a user's power consumption requirement for the receiving-end device.

[0157] Optionally, the sending module 32 is specifically configured to: carry the application feedback information in an acknowledgement message of a received data packet; and send the acknowledgement message to the sending-end device.

[0158] Figure 9 The illustrated device may execute the data transmission scheme executed by the receiving-end device in the foregoing Figures 1 to 5 illustrated embodiment. For the detailed execution process and technical effects, refer to the description in the foregoing embodiment, which will not be elaborated herein.

[0159] In a possible design, the structure of the foregoing Figure 9 illustrated data transmission device may be implemented as an electronic device. As Figure 10 illustrated, the electronic device may include: a second processor 41, a second memory 42, and a second communication interface 43. Wherein, an executable code is stored on the second memory 42, and when the executable code is executed by the second processor 41, the second processor 41 can at least implement the data transmission method executed by the receiving-end device in the foregoing Figures 1 to 5 illustrated embodiment.

[0160] In addition, an embodiment of the present invention provides a non-transitory machine-readable storage medium, on which an executable code is stored. When the executable code is executed by a processor of an electronic device, the processor can at least implement the data transmission method executed by the receiving-end device in the foregoing Figures 1 to 5 illustrated embodiment.

[0161] The device embodiments described above are merely illustrative, where the units described as separate components may or may not be physically separated. Some or all of the modules can be selected according to actual needs to achieve the purpose of the solution of this embodiment. Those of ordinary skill in the art can understand and implement it without creative efforts.

[0162] Through the description of the above embodiments, those skilled in the art can clearly understand that each embodiment can be implemented by means of adding a necessary general hardware platform, and of course, it can also be implemented by a combination of hardware and software. Based on this understanding, the above technical solutions, in essence, or the part that contributes to the prior art can be embodied in the form of a computer product. The present invention can be implemented in the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk memories, CD-ROMs, optical memories, etc.) containing computer-usable program codes.

[0163] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, rather than to limit them; although the present invention has been described in detail with reference to the foregoing embodiments, those of ordinary skill in the art should understand that they can still modify the technical solutions recorded in the foregoing embodiments, or perform equivalent replacements for some of the technical features; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the spirit and scope of the technical solutions of the embodiments of the present invention.

Claims

1. A data transmission method, characterized in that, applied to a sending device, the method includes: obtaining application feedback information sent by a receiving device, the application feedback information including at least one of the following: data transmission scenario type, data cache information of the receiving device, user's tariff preference information for different data transmission paths, user's power consumption requirement for the receiving device; determining at least one available data transmission path according to the application feedback information; determining a target data transmission path corresponding to a data packet to be sent among the at least one data transmission path; sending the data packet to the receiving device through the target data transmission path.

2. The method according to claim 1, characterized in that, the determining a target data transmission path corresponding to a data packet to be sent among the at least one data transmission path includes: determining a first target data transmission path corresponding to the data packet to be sent from the at least one data transmission path according to a set path selection method; sending the data packet to the first target data transmission path; determining whether the data packet meets the redundant sending condition according to the application feedback information and / or the transmission state of the data packet on the first target data transmission path; if the data packet meets the redundant sending condition, determining at least one second target data transmission path from the at least one data transmission path; sending the data packet to the at least one second target data transmission path.

3. A data transmission method, characterized in that, applied to a receiving device, the method includes: obtaining application feedback information, the application feedback information including at least one of the following: data transmission scenario type, data cache information of the receiving device, user's tariff preference information for different data transmission paths, user's power consumption requirement for the receiving device; sending the application feedback information to a sending device, so that the sending device determines at least one available data transmission path according to the application feedback information, and determines a target data transmission path corresponding to a data packet to be sent among the at least one data transmission path; receiving the data packet sent by the sending device through the target data transmission path.

4. A data transmission device, characterized in that, applied to a sending device, the device includes: an obtaining module, configured to obtain application feedback information sent by a receiving device, the application feedback information including at least one of the following: data transmission scenario type, data cache information of the receiving device, user's tariff preference information for different data transmission paths, user's power consumption requirement for the receiving device; a determining module, configured to determine at least one available data transmission path according to the application feedback information, and determine a target data transmission path corresponding to a data packet to be sent among the at least one data transmission path; a sending module, configured to send the data packet to the receiving device through the target data transmission path.

5. An electronic device, characterized in that, including: A memory and a processor; wherein, executable code is stored on the memory, and when the executable code is executed by the processor, the processor is caused to execute the data transmission method according to any one of claims 1 or 2.

6. A non-transitory machine-readable storage medium, characterized in that, executable code is stored on the non-transitory machine-readable storage medium, and when the executable code is executed by a processor of an electronic device, the processor is caused to execute the data transmission method according to any one of claims 1 or 2.

7. A data transmission device, characterized in that, applied to a receiving-end device, the device includes: an obtaining module, configured to obtain application feedback information, where the application feedback information includes at least one of the following: a data transmission scenario type, data cache information of the receiving-end device, a user's tariff preference information for different data transmission paths, and a user's power consumption requirement for the receiving-end device; a sending module, configured to send the application feedback information to a sending-end device, so that the sending-end device determines at least one available data transmission path according to the application feedback information, and determines a target data transmission path corresponding to a data packet to be sent from the at least one data transmission path; a receiving module, configured to receive the data packet sent by the sending-end device through the target data transmission path.

8. An electronic device, characterized in that, comprising: a memory and a processor; wherein, executable code is stored on the memory, and when the executable code is executed by the processor, the processor is caused to execute the data transmission method according to claim 3.

9. A non-transitory machine-readable storage medium, characterized in that, executable code is stored on the non-transitory machine-readable storage medium, and when the executable code is executed by a processor of an electronic device, the processor is caused to execute the data transmission method according to claim 3.

Citation Information

Patent Citations

  • Device and method for dynamically optimizing data transmission

    CN105610711A