Data stream transmission method and device, storage medium and computer program product

By determining the window size of the transmission path sequence and data cache window based on the path description information of the data transmission path, the problem of sequential arrival of data packets in multi-path transmission is solved, and efficient data transmission is achieved.

CN119629131APending Publication Date: 2025-03-14HUANENG ZHEJIANG ENERGY SALES CO LTD +3
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
CN202411675414.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-11-21
Publication Date
2025-03-14

AI Technical Summary

Technical Problem

The existing multipath transmission technology cannot ensure that data packets arrive at the receiving end in the order of the sending end in the order of the sending end, resulting in the receiving end needing to reorder the data packets, increasing the transmission delay and reducing the data transmission efficiency.

Method used

By determining the transmission path sequence based on the path description information of the N data transmission paths, the order of the N data transmission paths in the transmission path sequence is negatively correlated with the time-consuming amount of the data they transmit to. Then, the data transmission path is traversed, the window size of the data cache window is determined according to the data transmission time of each path, and the object data in the data stream is successively filled into the data cache window of the respective paths, and finally data transmission is carried out according to the order indicated by the transmission path sequence.

Benefits of technology

It realizes that data arrives at the receiving end in the order in the data stream, avoiding data reordering at the receiving end, reducing data transmission time, and thus improving data transmission efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119629131A_ABST
    Figure CN119629131A_ABST
Patent Text Reader

Abstract

The invention discloses a data stream transmission method and device, a storage medium and a computer program product. The method comprises the following steps: determining a transmission path sequence corresponding to N data transmission paths according to respective path description information of the N data transmission paths; traversing the N data transmission paths, and determining the window size of the data cache window corresponding to the ith data transmission path according to the corresponding relationship between the first data transmission duration of the ith data transmission path in the transmission path sequence and the second data transmission duration of the (i + 1) th data transmission path; obtaining a to-be-transmitted data stream, and according to the window sizes of the data caching windows corresponding to the N data transmission paths, sequentially filling the object data in the data stream into the data caching windows corresponding to the N data transmission paths; and transmitting the object data included in the N data cache windows according to the sequence of the data transmission paths indicated by the transmission path sequence.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of computers, and in particular to a data stream transmission method and device, a storage medium, and a computer program product. Background Art

[0002] As the amount of data increases, users have higher and higher requirements for network throughput. In traditional data transmission networks, the bandwidth bottleneck of a single path has become increasingly difficult to improve. Therefore, researchers have focused on multi-path transmission technology. By aggregating the bandwidth of multiple paths, the end-to-end network bandwidth can be improved.

[0003] In the process of multi-path transmission, the data to be transmitted is divided into multiple data packets, each transmission path is responsible for transmitting a part of the data packets, and the transmitted data packets are aggregated at the receiving end. However, the existing multi-path transmission technology cannot make the transmitted data packets arrive at the receiving end in sequence. In other words, when data is sent to the receiving end through different transmission paths, it cannot be guaranteed that the data packets arrive at the receiving end in the order of the arrangement sequence at the sending end. Therefore, the receiving end cannot aggregate the data packets in the receiving order, which will cause the data received by the receiving end to be different from the data sent by the sending end. In order to make the data received by the receiving end the same as the data sent by the sending end, the data packets need to be reordered in the receiving buffer area and delivered to the receiving end application layer after reordering. The reordering process increases the transmission delay, making the efficiency of the data transmission process lower. In other words, there is a technical problem of low transmission efficiency when data is transmitted through multiple transmission paths in the related technology.

[0004] To address the above problems, no effective solution has been proposed yet. Summary of the invention

[0005] The embodiments of the present application provide a data stream transmission method and device, a storage medium, and a computer program product to at least solve the technical problem of low transmission efficiency when data is transmitted through multiple transmission paths in the related art.

[0006] According to one aspect of an embodiment of the present application, a data stream transmission method is provided, comprising: determining a transmission path sequence corresponding to the N data transmission paths according to path description information of each of the N data transmission paths, wherein the order of the N data transmission paths in the transmission path sequence is negatively correlated with the time taken by each of the N data transmission paths to transmit object data, and N is an integer greater than or equal to 2; traversing the N data transmission paths, and determining a window size of a data cache window corresponding to the ith data transmission path according to a correspondence between a first data transmission duration of the ith data transmission path in the transmission path sequence and a second data transmission duration of the i+1th data transmission path, wherein the first data transmission duration ... i+1th data transmission paths to transmit object data, and wherein N is an integer greater than or equal to 2; The method comprises the following steps: determining a first data transmission time duration according to the path description information of the transmission path, and determining a second data transmission duration according to the path description information of the i+1th data transmission path, where i is an integer greater than 1 and less than N; obtaining a data stream to be transmitted, and filling the object data in the data stream into the data cache window corresponding to each of the N data transmission paths in sequence according to the window size of the data cache window corresponding to each of the N data transmission paths; transmitting the object data included in the N data cache windows according to the order of the data transmission paths indicated by the transmission path sequence, wherein the first object data in the data cache window corresponding to the i+1th data transmission path will be transmitted to the target terminal before the second object data included in the data cache window corresponding to the i+1th data transmission path.

[0007] In an exemplary embodiment, according to the correspondence between the first data transmission duration of the i-th data transmission path in the transmission path sequence and the second data transmission duration of the i+1-th data transmission path, determining the window size of the data cache window corresponding to the i-th data transmission path includes: obtaining a first ratio between a window description parameter of the i-th data transmission path and a first path description parameter, wherein the window description parameter is used to indicate a reference window size of the data cache window of the i-th data transmission path, the first path description parameter indicates a rate at which the i-th data transmission path sends object data in the data cache window, and the path description information includes the first path description parameter; determining the first ratio as the first data transmission duration; determining the second path description parameter of the i+1-th data transmission path as the second data transmission duration, wherein the second path description parameter is half of the reference round-trip delay corresponding to the data transmission path; and determining at least one window description parameter that makes the first data transmission duration less than or equal to the second data transmission duration as a target description parameter for indicating the window size of the data cache window corresponding to the i-th data transmission path.

[0008] In an exemplary embodiment, before determining the sum of the first ratio and the second path description parameter as the first data transmission duration, it also includes: obtaining a first round-trip delay corresponding to the last reference message transmitted through the i-th data transmission path; obtaining a second round-trip delay obtained by the last delay estimation for the i-th data transmission path; and determining a weighted average of the first round-trip delay and the second round-trip delay as the reference round-trip delay.

[0009] In an exemplary embodiment, before obtaining the first ratio between the window description parameter of the i-th data transmission path and the first path description parameter, it also includes: obtaining a congestion window description data set matching the i-th data transmission path, wherein the congestion window description data set includes multiple historical congestion window description parameters of the i-th data transmission path; inputting the congestion window description data set into a target parameter prediction model to predict the next congestion window description parameter for the i-th data transmission path, wherein the target parameter prediction model is a neural network model trained based on multiple window description parameter samples, and the window description parameter samples include a sample window description data set corresponding to a target timestamp, and a label window description parameter corresponding to the target timestamp; determining an effective throughput parameter matching the i-th data transmission path based on a packet loss rate parameter, a congestion window description parameter, and a reference round-trip delay matching the i-th data transmission path; and determining the effective throughput parameter as the first path description parameter.

[0010] In an exemplary embodiment, a transmission path sequence corresponding to the N data transmission paths is determined based on the path description information of each of the N data transmission paths, including: obtaining the reference round-trip delay corresponding to each of the N data transmission paths from the path description information of each of the N data transmission paths; and determining the transmission path sequence corresponding to the N data transmission paths based on the results of sorting the reference round-trip delays from small to large.

[0011] In an exemplary embodiment, object data included in N data cache windows are transmitted according to the order of data transmission paths indicated by a transmission path sequence, including: obtaining a first data packet carrying first object data in the data cache window corresponding to the i-th data transmission path according to the order indicated by the transmission path sequence; when the first data packet in the data cache window is sent, obtaining the first second data packet carrying second object data from the data cache window corresponding to the i+1-th data transmission path; and sending the first second data packet to the target terminal.

[0012] According to another aspect of an embodiment of the present application, a data stream transmission device is also provided, including: a first determination unit: determining a transmission path sequence corresponding to the N data transmission paths according to the path description information of each of the N data transmission paths, wherein the order of the N data transmission paths in the transmission path sequence is negatively correlated with the time taken by each of the N data transmission paths to transmit object data, and N is an integer greater than or equal to 2; a second determination unit: traversing the N data transmission paths, and determining the window size of the data cache window corresponding to the ith data transmission path according to the correspondence between the first data transmission duration of the ith data transmission path in the transmission path sequence and the second data transmission duration of the i+1th data transmission path, wherein the first data transmission duration is calculated based on the first data transmission duration of the ith data transmission path in the transmission path sequence. The first data transmission path is determined according to the path description information of the i+1th data transmission path, and the second data transmission duration is determined according to the path description information of the i+1th data transmission path, where i is an integer greater than 1 and less than N; a filling unit: obtains the data stream to be transmitted, and fills the object data in the data stream into the data cache window corresponding to each of the N data transmission paths in sequence according to the window size of the data cache window corresponding to each of the N data transmission paths; a transmission unit: transmits the object data included in the N data cache windows according to the order of the data transmission paths indicated by the transmission path sequence, wherein the first object data in the data cache window corresponding to the i+1th data transmission path will be transmitted to the target terminal before the second object data included in the data cache window corresponding to the i+1th data transmission path.

[0013] According to another aspect of the embodiments of the present application, a computer-readable storage medium is provided, in which a computer program is stored, wherein the computer program is configured to execute the above-mentioned data stream transmission method when running.

[0014] According to another aspect of an embodiment of the present application, there is also provided an electronic device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the data stream transmission method through the computer program.

[0015] According to another aspect of the embodiments of the present application, a computer program product is provided, including a computer program, which implements the steps of the method in each embodiment of the present application when the computer program is executed by a processor.

[0016] Through the present application, the transmission path sequence corresponding to the N data transmission paths can be first determined according to the path description information of each of the N data transmission paths, wherein the order of the N data transmission paths in the transmission path sequence is negatively correlated with the time taken by each of the N data transmission paths to transmit the object data, and N is an integer greater than or equal to 2. Afterwards, the N data transmission paths are traversed, and the window size of the data cache window corresponding to the i-th data transmission path is determined according to the correspondence between the first data transmission duration of the i-th data transmission path in the transmission path sequence and the second data transmission duration of the i+1-th data transmission path, wherein the first data transmission duration is determined according to the path description information of the i-th data transmission path, and the second data transmission duration is determined according to the path description information of the i+1-th data transmission path, and i is an integer greater than 1 and less than N. Further, the data stream to be transmitted is obtained, and according to the window size of the data cache window corresponding to each of the N data transmission paths, the object data in the data stream is sequentially filled into the data cache window corresponding to each of the N data transmission paths. Finally, according to the order of the data transmission paths indicated by the transmission path sequence, the object data included in the N data cache windows are transmitted, wherein the first object data in the data cache window corresponding to the i-th data transmission path is transmitted to the target terminal before the second object data included in the data cache window corresponding to the i+1-th data transmission path. Thus, the data arrives at the receiving end in the order in the data stream, so that the receiving end does not need to rearrange the data, and the data transmission time is reduced, thereby solving the technical problem of low transmission efficiency when data is transmitted through multiple transmission paths in the related art. BRIEF DESCRIPTION OF THE DRAWINGS

[0017] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the present application and, together with the description, serve to explain the principles of the present application.

[0018] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, for ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative labor.

[0019] Figure 1 It is a hardware structure block diagram of a computer terminal of a data stream transmission method according to an embodiment of the present application;

[0020] Figure 2 is a flow chart of a data stream transmission method according to an embodiment of the present application;

[0021] Figure 3is a schematic diagram of a data stream transmission method according to an embodiment of the present application;

[0022] Figure 4 is a schematic diagram of another data stream transmission method according to an embodiment of the present application;

[0023] Figure 5 is a flowchart of another data stream transmission method according to an embodiment of the present application;

[0024] Figure 6 is a flowchart of another data stream transmission method according to an embodiment of the present application;

[0025] Figure 7 It is a structural block diagram of a data stream transmission device according to an embodiment of the present application. DETAILED DESCRIPTION

[0026] In order to enable those skilled in the art to better understand the solution of the present application, the technical solution in the embodiments of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work should fall within the scope of protection of the present application.

[0027] It should be noted that the terms "first", "second", etc. in the specification and claims of the present application and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. It should be understood that the data used in this way can be interchangeable where appropriate, so that the embodiments of the present application described herein can be implemented in an order other than those illustrated or described herein. In addition, the terms "including" and "having" and any of their variations are intended to cover non-exclusive inclusions, for example, a process, method, system, product or device comprising a series of steps or units is not necessarily limited to those steps or units clearly listed, but may include other steps or units that are not clearly listed or inherent to these processes, methods, products or devices.

[0028] The method embodiments provided in the embodiments of the present application can be executed in a computer terminal or a similar computing device. Taking running on a computer terminal as an example, Figure 1 1 is a hardware structure block diagram of a computer terminal of a data stream transmission method according to an embodiment of the present application. Figure 1 As shown, the computer terminal may include one or more ( Figure 1Only one is shown in the figure) a processor 102 (the processor 102 may include but is not limited to a processing device such as a microprocessor (Central Processing Unit, MCU) or a programmable logic device (Field Programmable Gate Array, FPGA)) and a memory 104 for storing data, wherein the above-mentioned computer terminal may also include a transmission device 106 and an input and output device 108 for communication functions. It can be understood by those skilled in the art that Figure 1 The structure shown is only for illustration and does not limit the structure of the above-mentioned computer terminal. Figure 1 More or fewer components as shown, or with Figure 1 Different configurations are shown.

[0029] The memory 104 can be used to store computer programs, for example, software programs and modules of application software, such as the computer program corresponding to the data stream transmission method in the embodiment of the present application. The processor 102 executes various functional applications and data processing by running the computer program stored in the memory 104, that is, to implement the above method. The memory 104 may include a high-speed random access memory, and may also include a non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memory. In some examples, the memory 104 may further include a memory remotely arranged relative to the processor 102, and these remote memories may be connected to the computer terminal via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.

[0030] A wireless network provided by a communication provider of a computer terminal. In one example, the transmission device 106 includes a network adapter (Network Interface Controller, referred to as NIC), which can be connected to other network devices through a base station so as to communicate with the Internet. In one example, the transmission device 106 can be a radio frequency (Radio Frequency, referred to as RF) module, which is used to communicate with the Internet wirelessly.

[0031] In this embodiment, a data stream transmission method is provided. Figure 2 is a flow chart of a data stream transmission method according to an embodiment of the present application, such as Figure 2 As shown, the process includes the following steps:

[0032] S202, determining a transmission path sequence corresponding to the N data transmission paths according to the path description information of each of the N data transmission paths, wherein the order of the N data transmission paths in the transmission path sequence is negatively correlated with the time taken by each of the N data transmission paths to transmit the object data, and N is an integer greater than or equal to 2;

[0033] S204, traversing N data transmission paths, and determining a window size of a data cache window corresponding to the i-th data transmission path according to a correspondence between a first data transmission duration of the i-th data transmission path in the transmission path sequence and a second data transmission duration of the i+1-th data transmission path, wherein the first data transmission duration is determined according to path description information of the i-th data transmission path, the second data transmission duration is determined according to path description information of the i+1-th data transmission path, and i is an integer greater than 1 and less than N;

[0034] S206, obtaining a data stream to be transmitted, and filling the object data in the data stream into the data cache windows corresponding to the N data transmission paths respectively in sequence according to the window sizes of the data cache windows corresponding to the N data transmission paths respectively;

[0035] S208, transmit the object data included in N data cache windows according to the order of the data transmission paths indicated by the transmission path sequence, wherein the first object data in the data cache window corresponding to the i-th data transmission path will be transmitted to the target terminal before the second object data included in the data cache window corresponding to the i+1-th data transmission path.

[0036] It can be understood that in the above step S202, the N data transmission paths in the above transmission path sequence are sorted from high to low according to the data transmission rate. Specifically, the transmission path sequence corresponding to the N data transmission paths is determined according to the path description information of each of the N data transmission paths, including:

[0037] S202-1, respectively obtaining reference round trip delays corresponding to the N data transmission paths from path description information of the N data transmission paths;

[0038] S202-2, determining a transmission path sequence corresponding to the N data transmission paths according to the results of sorting the reference round-trip delays from small to large.

[0039] It should be noted that the above reference round trip delay is used to describe the time required for a data packet to travel from the sending end to the receiving end and then return to the sending end.

[0040] Optionally, you can customize the data packets sent through the API interface and insert a timestamp in the data packets. The sender records the sending time when sending the data packet, and records the return time when receiving the return data. The difference between the return time and the sending time can be used as a reference round-trip delay.

[0041] As another optional implementation, the reference round-trip delay can also be obtained based on the ping command. By using the command and providing the target IP address or domain name, the reference round-trip delay from the data to the target can be measured. Specifically, for example, by inputting "ping www.XXX.com", the ping command will continuously send data to the server of "www.XXX.com" and record the round-trip time, and finally give an average round-trip time, so that the average round-trip time can be used as the reference round-trip delay.

[0042] In addition, the reference round-trip delay may also be obtained according to the TCP / IP protocol. For example, the TCP protocol performs a three-way handshake when establishing a connection, and the reference round-trip delay may be calculated by analyzing the timestamps in the handshake process.

[0043] Furthermore, after obtaining the reference round trip delays corresponding to the N data transmission paths, the above step S202-2 is performed to determine the transmission path sequence corresponding to the N data transmission paths according to the results of sorting the reference round trip delays from small to large.

[0044] Further, execute the above step S204, traverse N data transmission paths, and determine the window size of the data cache window corresponding to the i-th data transmission path based on the correspondence between the first data transmission duration of the i-th data transmission path in the transmission path sequence and the second data transmission duration of the i+1-th data transmission path.

[0045] Specifically, in the above traversal process, each time according to the correspondence between the first data transmission duration of the i-th data transmission path in the transmission path sequence and the second data transmission duration of the i+1-th data transmission path, determining the window size of the data cache window corresponding to the i-th data transmission path includes:

[0046] S204-1, obtaining a first ratio between a window description parameter of the i-th data transmission path and a first path description parameter, wherein the window description parameter is used to indicate a reference window size of a data cache window of the i-th data transmission path, the first path description parameter indicates a rate at which object data in the data cache window is sent by the i-th data transmission path, and the path description information includes the first path description parameter;

[0047] S204-2, determining the first ratio as a first data transmission duration;

[0048] S204-3, determining a second path description parameter of the (i+1)th data transmission path as a second data transmission duration, wherein the second path description parameter is half of a reference round trip delay corresponding to the data transmission path;

[0049] S204-4, determining at least one window description parameter that makes the first data transmission duration less than or equal to the second data transmission duration as a target description parameter for indicating the window size of the data cache window corresponding to the i-th data transmission path.

[0050] It can be understood that the above steps S204-1 to S204-4 are a complete process of solving the window size of the data cache window corresponding to the i-th data transmission path. The above target description parameter for indicating the window size of the data cache window corresponding to the i-th data transmission path can be specifically in bits or bytes, or in the number of data segments (messages) with a certain bit or byte size, which is not specifically limited here.

[0051] Specifically, the above steps S204-1 to S204-2 may conform to the following mathematical model:

[0052]

[0053] Among them, T1 is the first data transmission duration, Win true is the window description parameter of the i-th data transmission path, B f is the first path description parameter, which in the above mathematical model is specifically the transmission bandwidth of the ith data transmission path. It should be noted that in some embodiments, the first path description parameter here can be replaced by an effective data throughput rate.

[0054] Optionally, the above effective data throughput rate may be calculated using the following mathematical model.

[0055]

[0056] in, is the effective data throughput rate of the ith data transmission path, p i is the packet loss rate of the ith data transmission path, cw i is the congestion window size of the i-th data transmission path, which is used to describe the amount of data that has been sent and / or is ready to be sent but not received by the data end at a certain moment. RTT i is the reference round trip delay corresponding to the i data transmission path, and the effective data throughput is calculated Afterwards, the data throughput rate can be substituted into the calculation formula of the first data transmission duration T1 to replace B fThe first data transmission duration T1 is calculated using the effective data throughput rate as the first path description parameter.

[0057] Furthermore, after obtaining the first data transmission duration, the above step S204-3 is further executed to obtain the second data transmission duration of the i+1th data transmission path. It can be understood that the above second data transmission duration is the second path description parameter, and the second path description parameter is half of the reference round-trip delay of the first message in the data cache window corresponding to the i-th data transmission path.

[0058] Then, the above step S204-4 is performed, and at least one window description parameter that makes the first data transmission duration less than or equal to the second data transmission duration is determined as a target description parameter for indicating the window size of the data cache window corresponding to the i-th data transmission path. It can be understood that the above first data transmission duration less than or equal to the second data transmission duration is a constraint condition, which is specifically the following mathematical model.

[0059]

[0060] Among them, the above RTT s is the reference round-trip delay required for the first message in the data buffer window corresponding to the i+1th data transmission path. It can be understood that the above RTT s / 2 is the second data transmission time length, and the meanings of other variables have been explained in the previous application and will not be repeated here. Furthermore, the above constraints can be changed into the following mathematical model for calculating the window description parameters.

[0061]

[0062] Understandably, Win true is a target description parameter for indicating the window size of the data cache window corresponding to the i-th data transmission path. It is worth noting that the window size of the data cache window corresponding to the i-th data transmission path does not exceed the target description parameter Win true In this case, the time when the last message sent in the data cache window corresponding to the i-th data transmission path arrives at the receiving end will not be later than the time when the first message sent in the data cache window corresponding to the i+1-th data transmission path arrives at the receiving end.

[0063] Then, step S206 is executed to obtain the data stream to be transmitted, and according to the window size of the data cache window corresponding to each of the N data transmission paths, the object data in the data stream is sequentially filled into the data cache window corresponding to each of the N data transmission paths.

[0064] Specifically, the data stream to be transmitted includes a plurality of messages (data objects) with a certain bit size, and the plurality of data objects are sequentially filled into the data cache windows corresponding to the N data transmission paths, which is further illustrated below with examples.

[0065] For example, there are currently two data transmission paths, namely a fast sub-flow and a slow sub-flow. The data buffer window corresponding to the fast sub-flow can store data numbered from a1 to a i The data object of the slow sub-stream can be stored in the data cache window numbered a i+1 to a n data object, and change a1 to a i The data object is filled into the fast sub-stream and a i+1 to a n The data objects are filled into the slow sub-stream.

[0066] Further, step S208 is executed to transmit the object data included in the N data cache windows.

[0067] It should be noted that the above transmission of the object data included in the N data cache windows may be the simultaneous transmission of the object data included in the N data cache windows through the corresponding data transmission path. It may also be the transmission in a certain order. Specifically, the transmission of the object data included in the N data cache windows in a certain order includes the following steps:

[0068] S208-1, acquiring a first data message carrying first object data in a data cache window corresponding to an i-th data transmission path according to an order indicated by a transmission path sequence;

[0069] S208-2, when the first data message in the data cache window is sent, obtain the first second data message carrying the second object data from the data cache window corresponding to the (i+1)th data transmission path;

[0070] S208-3, sending the first second data message to the target terminal.

[0071] It can be understood that in the above steps S208-1 to S208-3, the data of the first data transmission path is sent first. After the data transmission is initiated, there is no need to wait for the data transmission to be completed, but the data of the second data transmission path is immediately initiated until the Nth data transmission path.

[0072] Through the above implementation of the present application, the transmission path sequence corresponding to the N data transmission paths can be first determined according to the path description information of each of the N data transmission paths, wherein the order of the N data transmission paths in the transmission path sequence is negatively correlated with the time taken by each of the N data transmission paths to transmit the object data, and N is an integer greater than or equal to 2. Afterwards, the N data transmission paths are traversed, and the window size of the data cache window corresponding to the i-th data transmission path is determined according to the correspondence between the first data transmission duration of the i-th data transmission path in the transmission path sequence and the second data transmission duration of the i+1-th data transmission path, wherein the first data transmission duration is determined according to the path description information of the i-th data transmission path, and the second data transmission duration is determined according to the path description information of the i+1-th data transmission path, and i is an integer greater than 1 and less than N. Further, the data stream to be transmitted is obtained, and according to the window size of the data cache window corresponding to each of the N data transmission paths, the object data in the data stream is sequentially filled into the data cache window corresponding to each of the N data transmission paths. Finally, according to the order of the data transmission paths indicated by the transmission path sequence, the object data included in the N data cache windows are transmitted, wherein the first object data in the data cache window corresponding to the i-th data transmission path is transmitted to the target terminal before the second object data included in the data cache window corresponding to the i+1-th data transmission path. Thus, the data arrives at the receiving end in the order in the data stream, so that the receiving end does not need to rearrange the data, and the data transmission time is reduced, thereby solving the technical problem of low transmission efficiency when data is transmitted through multiple transmission paths in the related art.

[0073] In an optional implementation manner, before determining the sum of the first ratio and the second path description parameter as the first data transmission duration, the method further includes:

[0074] S1, obtaining a first round trip delay corresponding to a previous reference message transmitted through the i-th data transmission path;

[0075] S2, obtaining the second round trip delay obtained by the last delay estimation of the i-th data transmission path;

[0076] S3: Determine a weighted average of the first round-trip delay and the second round-trip delay as a reference round-trip delay.

[0077] It should be noted that the round-trip delay can also be measured using the Timestamp option of the TCP protocol. The Timestamp option includes Timestamp_Value and Timestamp_Echo_Reply. Timestamp_Value indicates the timestamp corresponding to the current moment when the message is sent, and Timestamp_Echo_Reply is the timestamp of the last message received by the receiving end recorded in the received ACK packet. The above method of obtaining the round-trip delay through the Timestamp option of the TCP protocol can also be applied to other embodiments in this application.

[0078] Specifically, the first round trip delay corresponding to the previous reference message in step S1 above can be obtained through the following mathematical model.

[0079] SampleRTT=Timestamp_Value-Timestamp_Echo_Reply

[0080] Among them, SampleRTT is the first round-trip delay. After obtaining the first round-trip delay, step S2 is executed. It should be noted that at this time, the second round-trip delay obtained by step S2 is only a variable representation, not a specific value. The second round-trip delay and the first round-trip delay have the following constraints.

[0081] EstimatedRTT=(1-a)×EstimatedRTT+a×SampleRTT

[0082] EstimatedRTT is the second round-trip delay, a is a variable exponent, and the value is usually determined to be 0.125. No specific limitation is made here. The process of calculating the second round-trip delay through the above constraints and taking the result as the reference round-trip delay is the above step S3, and the weighted average value between the first round-trip delay and the second round-trip delay is determined as the reference round-trip delay.

[0083] In an optional implementation manner, before obtaining the first ratio between the window description parameter and the first path description parameter of the i-th data transmission path, the method further includes:

[0084] S1, obtaining a congestion window description data set matching the i-th data transmission path, wherein the congestion window description data set includes a plurality of historical congestion window description parameters of the i-th data transmission path;

[0085] S2, inputting the congestion window description data set into the target parameter prediction model to predict the next congestion window description parameter for the i-th data transmission path, wherein the target parameter prediction model is a neural network model trained according to a plurality of window description parameter samples, and the window description parameter samples include a sample window description data set corresponding to the target timestamp, and a label window description parameter corresponding to the target timestamp;

[0086] S3, determining an effective throughput parameter matching the i-th data transmission path according to a packet loss rate parameter matching the i-th data transmission path, a congestion window description parameter, and a reference round trip delay;

[0087] S4: Determine the effective throughput parameter as the first path description parameter.

[0088] It should be noted that the above-mentioned congestion window description data set includes multiple historical congestion window description parameters of the i-th data transmission path, each historical congestion window description parameter is the congestion window size of the i-th data transmission path at a certain moment, and the size of a congestion window represents the amount of data that has been initiated but has not yet been received by the receiving end.

[0089] The acquired congestion window description data set is input into the target parameter prediction model to predict the next congestion window description parameters for the i-th data transmission path. It should be noted that the above-mentioned target parameter prediction model is a neural network model trained according to multiple window description parameter samples, which can be a long short-term memory network, a bidirectional long short-term memory network, etc. This application does not make any specific limitations on this.

[0090] Furthermore, after predicting the next congestion window description parameter of the i-th data transmission path through the target prediction parameter model, execute step S3 to determine the effective throughput parameter matching the i-th data transmission path based on the packet loss rate parameter, congestion window description parameter, and reference round-trip delay matching the i-th data transmission path.

[0091] Specifically, the calculation process of the effective throughput parameter conforms to the following mathematical model mentioned above in this application.

[0092]

[0093] Among them, cw i is the next congestion window description parameter of the i-th data transmission path obtained in step S2 above, RTT i It can be the second round-trip delay EstimatedRTT mentioned above in the present application. The calculation process of the value of the second round-trip delay EstimatedRTT refers to the previous embodiment of the present application and will not be repeated here.

[0094] Then, step S4 is executed to determine the effective throughput parameter as the first path description parameter.

[0095] Through the above implementation of the present application, a congestion window description data set matching the i-th data transmission path can be first obtained, wherein the congestion window description data set includes multiple historical congestion window description parameters of the i-th data transmission path; and then the congestion window description data set is input into the target parameter prediction model to predict the next congestion window description parameter for the i-th data transmission path, thereby realizing the determination of the congestion window description parameter by the neural network model, and then determining the first description parameter according to the congestion window description parameter predicted by the neural network model, and further determining the window size of the data cache window corresponding to the i-th data transmission path, so that when the last message of the i-th data transmission path is transmitted, the first message of the i+1-th data transmission path is transmitted. The technical problem that the traditional scheduler cannot deploy machine learning models, cannot accurately perceive the state changes of the link, cannot learn the bandwidth change characteristics of the link, and thus causes the out-of-order arrival of messages and data transmission delays caused by message reordering is solved.

[0096] In an optional implementation manner, before the congestion window description data set is input into the target parameter prediction model and the next congestion window description parameter for the i-th data transmission path is predicted, the method further includes:

[0097] S1, obtaining multiple window description parameter samples matching the i-th data transmission path;

[0098] S2, inputs multiple window description parameter samples into the neural network model in the training stage, and updates the parameters of the neural network model through multiple iterations. In each iteration,

[0099] S3, predicting a next reference congestion window description parameter for the i-th data transmission path based on multiple window description parameter samples;

[0100] S4, obtaining an error between a reference congestion window description parameter and an actual congestion window description parameter;

[0101] S5-1, in which the neural network model is back-propagated according to the error to update the parameters of the neural network model;

[0102] S5-2, when multiple errors meet the target conditions, the neural network model of the current iteration round is used as the target parameter prediction model.

[0103] It can be understood that the above-mentioned multiple window description parameter samples are the training set of the neural network model. The above-mentioned multiple window description parameters are input into the neural network model in the training stage to train the neural network model. Specifically, the neural network model predicts the congestion window description parameters of the next moment based on the input multiple window description parameters, and calculates the prediction error of the model based on the predicted congestion window description parameters and the actual congestion window description parameters. When the multiple errors do not meet the target conditions, the above-mentioned step S5-1 is executed to update the parameters of the neural network model. When the multiple errors meet the target conditions, the above-mentioned step S5-2 is executed to use the neural network model of the current iteration round as the target parameter prediction model.

[0104] It should be noted that the above target condition may be that the determination coefficient of the model reaches more than 90% for a long time, indicating that the model has converged and the training can be terminated. Specifically, the above determination coefficient is calculated by the following mathematical model.

[0105]

[0106] Among them, R 2 is the determination coefficient, which ranges from 0 to 1. The closer the value is to 1, the better the prediction effect is. res is the residual sum of squares, and the calculation formula is:

[0107]

[0108] Here, y i is the actual i-th congestion window description parameter, Describe the parameters for the predicted i-th congestion window.

[0109] In addition, SS tot is the total sum of squares, and the calculation formula is:

[0110]

[0111] Here, The average value of all predicted congestion window description parameters.

[0112] Furthermore, after the determination coefficient is calculated by the above mathematical model, it can be further judged whether the model has converged. It should be noted that the above setting of the target condition as the determination coefficient reaching more than 90% for a long time is only an example. The target condition can also be judged based on other ratios. The specific iteration rounds that meet the condition can also be set by the user. For example, in the past five predictions, the model is judged to have converged when the determination coefficient reaches 95%. No specific limitation is made here.

[0113] The following combination Figures 3 to 6The transmission process of a complete data stream is described.

[0114] It should be noted that the following is a process of multipath data transmission using the MPQUIC protocol.

[0115] Figure 5 Steps S502 to S514 in the figure are a process of sending a round of data streams.

[0116] First, execute step S502 to determine whether there is a message to be sent. If the determination result is no, end this round. If the determination result is yes, it means that there is a data stream that needs to be transmitted. At this time, further execute step S504 to calculate the current window size.

[0117] It should be noted that the above-mentioned current window size is the window size of the data cache window corresponding to each of the N transmission paths. It is worth noting that the window size of the data cache window corresponding to each of the first N-1 transmission paths can be obtained by executing steps S204-1 to S204-4 described in the aforementioned embodiment, which will not be repeated here. The window size of the data cache window corresponding to the Nth transmission path is the difference between the amount of data to be transmitted and the total amount of data that can be accommodated by the data cache windows corresponding to each of the first N-1 transmission paths.

[0118] Specifically, the following further illustrates the situation that there are currently two transmission paths.

[0119] like Figure 3 As shown, there is a fast sub-stream 302 and a slow sub-stream 304, and steps S601 to S605 are executed to obtain the size of the data buffer window (Win) corresponding to the fast sub-stream.

[0120] It should be noted that in the case of a heterogeneous network, RTT (round-trip delay) data can be collected from the sub-stream network card to determine which of the two sub-streams is a fast sub-stream and which is a slow sub-stream. As for the initialization value of Win, it is first set to 0. Specific process: Maintain a Win value for each sub-stream, set it to 0, and wait for initialization. Determine which is the fast sub-stream and which is the slow sub-stream based on the collected sub-stream RTT data, and mark them. After that, only adjust the Win of the fast sub-stream.

[0121] Furthermore, when link conditions change, for example, a fast sub-flow becomes a slow sub-flow, or a slow sub-flow becomes a fast sub-flow, that is, when the roles of the two are swapped, the scheduler algorithm can react quickly.

[0122] S1, before each round of adjusting Win, first determine whether the fast and slow sub-flows have exchanged roles based on the collected RTT data.

[0123] S2, if the judgment result is no, data transmission is carried out normally, messages are allocated to each sub-flow, and the next round of data transmission is waited for. If yes, Win of the sub-flow is recalculated.

[0124] The following is further combined Figure 6 The following is further described by taking the first determination of the size of the data buffer window (Win) of the fast sub-stream 302 as an example.

[0125] It should be noted that, in the case where there are only the fast substream 302 and the slow substream 304, steps S601 to S602 are predictions of the data cache window of the fast substream 302, and the data cache window of the slow substream 304 is dynamically determined by the difference between the amount of data in the data stream to be transmitted and the fast substream 302. It can be understood that, in the case where there are three or more transmission paths, steps S601 to S602 are predictions of the data cache window of each transmission path except the slowest transmission path, and the size of the data cache window of the slowest transmission path is dynamically determined by the difference between the amount of data in the data stream to be transmitted and the sum of the data cache window sizes of each transmission path except the slowest transmission path.

[0126] First, step S601 is executed to establish a prediction model according to the congestion window and packet loss rate of each sub-flow, and a long short time network (LSTM) is taken as an example below.

[0127] Let s represent the set of sending states. The terminal has k network cards and supports the MPQUIC protocol. At time t, the sending state s of the device can be represented by the congestion window size of each sub-flow. At time t, the state s of the sender is t You can use collections t {cw1,cw2,…,cw i}, in the case of two transmission paths, fast subflow 302 and slow subflow 304, the value of k is 2. The size of the congestion window is determined by the congestion control algorithm of the subflow and the link bottleneck of the subflow. At the next moment, the change of the congestion window will be determined by the congestion control algorithm of the subflow. The LSTM model predicts the future based on the time series parameters of the past period of time. Therefore, when predicting the future congestion window of a subflow, the prediction can be made based on the historical congestion window changes of the subflow.

[0128] Furthermore, the congestion window change data for each subflow is collected over a certain period of time. For example, each subflow collects congestion window data for more than 5,000 sampling moments. During the training process, specifically, the congestion window data at a certain point in the past can be used to predict the congestion window data at the next moment. For example, the congestion window data at the past 60 sampling points can be used to predict the congestion window size at a future point. The hyperparameters during training can be determined and adjusted by the user based on the actual effect. For example, it is recommended to set Dropout to 0.2, Dense to 1, lose to MSE, and the optimizer to Adam and Adadelta. No specific limitation is made here. When the prediction effect is stable, for example, when the determination coefficient R 2 When it reaches more than 90% for a long time, it means that the model has converged and the training can be ended.

[0129] Further, execute step S602 to calculate the congestion window size of each sub-flow according to the prediction model. Specifically, after the LSTM model is trained through the above step S601, the congestion window of each enabled sub-flow can be predicted. Here, the congestion window of the fast sub-flow 302 is predicted. First, it is necessary to use the MPQUIC default scheduler (such as a round-robin scheduler or a minRTT scheduler) to run for a period of time to collect the congestion window data of each sub-flow above 60 sampling time points. After the collection is completed, the collected congestion window data is input into the trained LSTM model to predict the congestion window for each sub-flow. Suppose the window size of the i-th sub-flow in the next round of transmission is cw i .

[0130] After that, continue to execute step S603, calculate the current round-trip delay of each sub-flow according to the timestamp field in the data packet. It should be noted that the MPQUIC protocol can use the Timestamp option of the TCP protocol for RTT measurement. The Timestamp option includes Timestamp_Value and Timestamp_Echo_Reply. Timestamp_Value indicates the timestamp corresponding to the current moment when the message is sent, and Timestamp_Echo_Reply is the value of the last message received by the receiving end recorded in the received ACK packet. Then perform the following operation to obtain the round-trip delay (SampleRTT) of this message sending.

[0131] SampleRTT=Timestamp_Value-Timestamp_Echo_Reply

[0132] The exponentially weighted moving average method can be used to predict the round trip delay of the next message transmission (the current round trip delay in S603). The calculation formula is as follows:

[0133] EstimatedRTT=(1-a)×EstimatedRTT+a×SampleRTT

[0134] EstimatedRTT is the predicted current round-trip delay, a is a preset weight, usually 0.125, and step S604 is further executed to calculate the throughput of each sub-flow according to the congestion window size of each sub-flow and the predicted RTT. Specifically, the congestion window value of the fast sub-flow 302 calculated in step S602 and the EstimatedRTT calculated in step S603 are substituted into the following formula to calculate the effective data throughput of the fast sub-flow 302.

[0135]

[0136] The above optional, the above cw i is the size of the congestion window of the ith data transmission path. Here, the congestion window value of the fast sub-flow 302 calculated in step S602 is used as cw i ,RTT i The round trip delay of the next message sent on the i-th data transmission path. Here, the EstimatedRTT calculated in step S603 is used as the RTT i , p i is the packet loss rate.

[0137] Then, step S605 is executed to determine the Win size of the fast sub-flow according to the effective throughput. The specific calculation formula is as follows:

[0138]

[0139] It is worth noting that, because it is necessary to ensure that when the first packet of the slow sub-stream 304 arrives, the last packet of the fast sub-stream 302 also arrives. Therefore, the time required for the fast sub-stream 302 to send data is the one-way delay of the slow sub-stream to send a packet - RTT s / 2.

[0140] At this point, the size calculation of the current window Win of the fast substream 302 has been completed. As mentioned above, the current window Win of the slow substream 304 can be dynamically determined according to the difference between the amount of transmitted data and the size of the current window Win of the fast substream 302.

[0141] Further, step S506 is executed to determine whether the current window can be filled. If so, step S510 is executed to perform the current round of transmission. If not, step S512 is executed to fill the next window. Specifically, for example, assuming that the size of the current window Win of the fast substream 302 is the size of the data volume of three messages, when the number of messages in the current data stream to be transmitted does not exceed three, three messages are filled into the current window of the fast substream 302 and sent by the fast substream 302. If more than three, the first three messages are filled into the current window of the fast substream 302, and starting from the fourth message, they are filled into the slow substream 304.

[0142] Then, step S514 is executed to perform this round of transmission. Specifically, the transmission window 312 of the transmitting end transmits the data object to be transmitted to the receiving window 314 of the receiving end through the fast sub-stream 302 and the slow sub-stream 304. It can be understood that after the last data object in the fast sub-stream 302 is transmitted, the first data object in the slow sub-stream 304 is transmitted immediately. At this time, Figure 4 As shown, the sending window 312 of the sending end releases the space occupied by the fast sub-stream 302, and the released space can be used for the transmission of the data objects (c+1) to N, that is, executing step S402, network transmission. Then, the data objects in the sending window 312 of the sending end are transmitted to the receiving window 314 of the receiving end.

[0143] Through the description of the above implementation methods, those skilled in the art can clearly understand that the method according to the above embodiment can be implemented by means of software plus a necessary general hardware platform, and of course by hardware, but in many cases the former is a better implementation method. Based on such an understanding, the technical solution of the present application, or the part that contributes to the prior art, can be embodied in the form of a software product, which is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk), and includes a number of instructions for a terminal device (which can be a mobile phone, computer, server, or network device, etc.) to execute the methods of each embodiment of the present application.

[0144] In the present embodiment, a data stream transmission device is also provided, which is used to implement the above-mentioned embodiments and preferred implementation modes, and the descriptions thereof will not be repeated. As used below, the term "module" can implement a combination of software and / or hardware of a predetermined function. Although the equipment described in the following embodiments is preferably implemented in software, the implementation of hardware, or a combination of software and hardware, is also possible and contemplated.

[0145] Figure 7 : is a structural block diagram of a data stream transmission device according to an embodiment of the present application, the device comprising:

[0146] A first determining unit 71: determining a transmission path sequence corresponding to the N data transmission paths according to the path description information of each of the N data transmission paths, wherein the order of the N data transmission paths in the transmission path sequence is negatively correlated with the time taken by each of the N data transmission paths to transmit the object data, and N is an integer greater than or equal to 2;

[0147] The second determining unit 72 traverses N data transmission paths, and determines the window size of the data cache window corresponding to the i-th data transmission path according to the correspondence between the first data transmission duration of the i-th data transmission path in the transmission path sequence and the second data transmission duration of the i+1-th data transmission path, wherein the first data transmission duration is determined according to the path description information of the i-th data transmission path, the second data transmission duration is determined according to the path description information of the i+1-th data transmission path, and i is an integer greater than 1 and less than N;

[0148] Filling unit 73: obtains the data stream to be transmitted, and fills the object data in the data stream into the data cache windows corresponding to the N data transmission paths respectively in sequence according to the window sizes of the data cache windows corresponding to the N data transmission paths respectively;

[0149] Transmission unit 74: Transmits the object data included in N data cache windows according to the order of the data transmission paths indicated by the transmission path sequence, wherein the first object data in the data cache window corresponding to the i-th data transmission path will be transmitted to the target terminal before the second object data included in the data cache window corresponding to the i+1-th data transmission path.

[0150] Through the above device, the transmission path sequence corresponding to the N data transmission paths can be first determined according to the path description information of each of the N data transmission paths, wherein the order of the N data transmission paths in the transmission path sequence is negatively correlated with the time taken by each of the N data transmission paths to transmit the object data, and N is an integer greater than or equal to 2. Afterwards, the N data transmission paths are traversed, and the window size of the data cache window corresponding to the i-th data transmission path is determined according to the correspondence between the first data transmission duration of the i-th data transmission path in the transmission path sequence and the second data transmission duration of the i+1-th data transmission path, wherein the first data transmission duration is determined according to the path description information of the i-th data transmission path, and the second data transmission duration is determined according to the path description information of the i+1-th data transmission path, and i is an integer greater than 1 and less than N. Further, the data stream to be transmitted is obtained, and according to the window size of the data cache window corresponding to each of the N data transmission paths, the object data in the data stream is sequentially filled into the data cache window corresponding to each of the N data transmission paths. Finally, according to the order of the data transmission paths indicated by the transmission path sequence, the object data included in the N data cache windows are transmitted, wherein the first object data in the data cache window corresponding to the i-th data transmission path is transmitted to the target terminal before the second object data included in the data cache window corresponding to the i+1-th data transmission path. Thus, the data arrives at the receiving end in the order in the data stream, so that the receiving end does not need to rearrange the data, and the data transmission time is reduced, thereby solving the technical problem of low transmission efficiency when data is transmitted through multiple transmission paths in the related art.

[0151] In an exemplary embodiment, the above-mentioned first determination unit 71 is also used to obtain the reference round-trip delay corresponding to each of the N data transmission paths from the path description information of each of the N data transmission paths; and determine the transmission path sequence corresponding to the N data transmission paths based on the sorting results of the reference round-trip delays from small to large.

[0152] In an exemplary embodiment, the above-mentioned second determination unit 72 is also used to obtain a first ratio between a window description parameter of the i-th data transmission path and a first path description parameter, wherein the window description parameter is used to indicate a reference window size of a data cache window of the i-th data transmission path, the first path description parameter indicates a rate at which the i-th data transmission path sends object data in the data cache window, and the path description information includes the first path description parameter; the first ratio is determined as a first data transmission duration; the second path description parameter of the i+1-th data transmission path is determined as a second data transmission duration, wherein the second path description parameter is half of a reference round-trip delay corresponding to the data transmission path; at least one window description parameter that makes the first data transmission duration less than or equal to the second data transmission duration is determined as a target description parameter for indicating the window size of the data cache window corresponding to the i-th data transmission path.

[0153] In an exemplary embodiment, the transmission unit 74 is also used to obtain a first data packet carrying first object data in a data cache window corresponding to the i-th data transmission path according to the order indicated by the transmission path sequence; when the first first data packet in the data cache window is sent, obtain the first second data packet carrying second object data from the data cache window corresponding to the i+1-th data transmission path; and send the first second data packet to the target terminal.

[0154] In an exemplary embodiment, the transmission device of the above-mentioned data stream also includes a delay determination unit, which is used to obtain a first round-trip delay corresponding to the last reference message transmitted through the i-th data transmission path; obtain a second round-trip delay obtained by the last delay estimation of the i-th data transmission path; and determine the weighted average between the first round-trip delay and the second round-trip delay as the reference round-trip delay.

[0155] In an exemplary embodiment, the transmission device of the above-mentioned data stream also includes a parameter determination unit, which is used to obtain a congestion window description data set matching the i-th data transmission path, wherein the congestion window description data set includes multiple historical congestion window description parameters of the i-th data transmission path; input the congestion window description data set into a target parameter prediction model to predict the next congestion window description parameter for the i-th data transmission path, wherein the target parameter prediction model is a neural network model trained according to multiple window description parameter samples, and the window description parameter samples include a sample window description data set corresponding to a target timestamp, and a label window description parameter corresponding to the target timestamp; determine the effective throughput parameter matching the i-th data transmission path based on the packet loss rate parameter, the congestion window description parameter, and the reference round-trip delay matching the i-th data transmission path; determine the effective throughput parameter as the first path description parameter.

[0156] In an exemplary embodiment, the transmission device of the above-mentioned data stream also includes a model training unit, which is used to obtain multiple window description parameter samples matching the i-th data transmission path; input the multiple window description parameter samples into a neural network model in the training stage, and update the parameters of the neural network model through multiple iterations. In each iteration, the next congestion window description parameter for the i-th data transmission path is predicted based on the multiple window description parameter samples; the error between the reference congestion window description parameter and the actual congestion window description parameter is obtained; when the multiple errors do not meet the target conditions, the neural network model is back-propagated according to the errors to update the parameters of the neural network model; when the multiple errors meet the target conditions, the neural network model of the current iteration round is used as the target parameter prediction model.

[0157] An embodiment of the present application further provides a computer-readable storage medium, in which a computer program is stored, wherein the computer program is configured to execute the steps of any of the above method embodiments when running.

[0158] Optionally, in this embodiment, the storage medium may be configured to store a computer program for performing the following steps:

[0159] S1, determining a transmission path sequence corresponding to the N data transmission paths according to the path description information of each of the N data transmission paths, wherein the order of the N data transmission paths in the transmission path sequence is negatively correlated with the time taken by each of the N data transmission paths to transmit the object data, and N is an integer greater than or equal to 2;

[0160] S2, traversing N data transmission paths, and determining the window size of the data cache window corresponding to the i-th data transmission path according to the correspondence between the first data transmission duration of the i-th data transmission path in the transmission path sequence and the second data transmission duration of the i+1-th data transmission path, wherein the first data transmission duration is determined according to the path description information of the i-th data transmission path, the second data transmission duration is determined according to the path description information of the i+1-th data transmission path, and i is an integer greater than 1 and less than N;

[0161] S3, obtaining a data stream to be transmitted, and filling the object data in the data stream into the data cache windows corresponding to the N data transmission paths respectively in sequence according to the window sizes of the data cache windows corresponding to the N data transmission paths respectively;

[0162] S4, the object data included in the N data cache windows are transmitted, wherein the first object data in the data cache window corresponding to the i-th data transmission path is transmitted to the target terminal before the second object data included in the data cache window corresponding to the i+1-th data transmission path.

[0163] In an exemplary embodiment, the computer-readable storage medium may include, but is not limited to, various media that can store computer programs, such as a USB flash drive, a read-only memory (ROM), a random access memory (RAM), a mobile hard disk, a magnetic disk or an optical disk.

[0164] For specific examples in this embodiment, reference may be made to the examples described in the above embodiments and exemplary implementation modes, and this embodiment will not be described in detail herein.

[0165] An embodiment of the present application further provides an electronic device, including a memory and a processor, wherein a computer program is stored in the memory, and the processor is configured to run the computer program to execute the steps in any one of the above method embodiments.

[0166] Optionally, in this embodiment, the processor may be configured to perform the following steps through a computer program:

[0167] S1, determining a transmission path sequence corresponding to the N data transmission paths according to the path description information of each of the N data transmission paths, wherein the order of the N data transmission paths in the transmission path sequence is negatively correlated with the time taken by each of the N data transmission paths to transmit the object data, and N is an integer greater than or equal to 2;

[0168] S2, traversing N data transmission paths, and determining the window size of the data cache window corresponding to the i-th data transmission path according to the correspondence between the first data transmission duration of the i-th data transmission path in the transmission path sequence and the second data transmission duration of the i+1-th data transmission path, wherein the first data transmission duration is determined according to the path description information of the i-th data transmission path, the second data transmission duration is determined according to the path description information of the i+1-th data transmission path, and i is an integer greater than 1 and less than N;

[0169] S3, obtaining a data stream to be transmitted, and filling the object data in the data stream into the data cache windows corresponding to the N data transmission paths respectively in sequence according to the window sizes of the data cache windows corresponding to the N data transmission paths respectively;

[0170] S4, the object data included in the N data cache windows are transmitted, wherein the first object data in the data cache window corresponding to the i-th data transmission path is transmitted to the target terminal before the second object data included in the data cache window corresponding to the i+1-th data transmission path.

[0171] In an exemplary embodiment, the electronic device may further include a transmission device and an input / output device, wherein the transmission device is connected to the processor, and the input / output device is connected to the processor.

[0172] An embodiment of the present application further provides a computer program product, including a non-volatile computer-readable storage medium, wherein the non-volatile computer-readable storage medium stores the computer program product, and when the computer program is executed by a processor, the steps of the method in each embodiment of the present application are implemented.

[0173] Optionally, in this embodiment, the above computer program may be configured to implement the following steps when executed by a processor:

[0174] S1, determining a transmission path sequence corresponding to the N data transmission paths according to the path description information of each of the N data transmission paths, wherein the order of the N data transmission paths in the transmission path sequence is negatively correlated with the time taken by each of the N data transmission paths to transmit the object data, and N is an integer greater than or equal to 2;

[0175] S2, traversing N data transmission paths, and determining the window size of the data cache window corresponding to the i-th data transmission path according to the correspondence between the first data transmission duration of the i-th data transmission path in the transmission path sequence and the second data transmission duration of the i+1-th data transmission path, wherein the first data transmission duration is determined according to the path description information of the i-th data transmission path, the second data transmission duration is determined according to the path description information of the i+1-th data transmission path, and i is an integer greater than 1 and less than N;

[0176] S3, obtaining a data stream to be transmitted, and filling the object data in the data stream into the data cache windows corresponding to the N data transmission paths respectively in sequence according to the window sizes of the data cache windows corresponding to the N data transmission paths respectively;

[0177] S4, the object data included in the N data cache windows are transmitted, wherein the first object data in the data cache window corresponding to the i-th data transmission path is transmitted to the target terminal before the second object data included in the data cache window corresponding to the i+1-th data transmission path.

[0178] For specific examples in this embodiment, reference may be made to the examples described in the above embodiments and exemplary implementation modes, and this embodiment will not be described in detail herein.

[0179] Obviously, those skilled in the art should understand that the above modules or steps of the present application can be implemented by a general computing device, they can be concentrated on a single computing device, or distributed on a network composed of multiple computing devices, they can be implemented by a program code executable by a computing device, so that they can be stored in a storage device and executed by the computing device, and in some cases, the steps shown or described can be executed in a different order from that herein, or they can be made into individual integrated circuit modules, or multiple modules or steps therein can be made into a single integrated circuit module for implementation. Thus, the present application is not limited to any specific combination of hardware and software.

[0180] The above are only preferred implementations of the present application. It should be pointed out that for ordinary technicians in this technical field, several improvements and modifications can be made without departing from the principles of the present application. These improvements and modifications should also be regarded as the scope of protection of the present application.

Claims

1. A data stream transmission method, characterized in that: include: Determine a transmission path sequence corresponding to the N data transmission paths according to the path description information of each of the N data transmission paths, wherein the order of the N data transmission paths in the transmission path sequence is negatively correlated with the time taken by each of the N data transmission paths to transmit the object data, and N is an integer greater than or equal to 2; Traversing the N data transmission paths, and determining the window size of the data cache window corresponding to the ith data transmission path according to the correspondence between the first data transmission duration of the ith data transmission path in the transmission path sequence and the second data transmission duration of the i+1th data transmission path, wherein the first data transmission duration is determined according to the path description information of the ith data transmission path, and the second data transmission duration is determined according to the path description information of the i+1th data transmission path, and i is an integer greater than 1 and less than N; obtaining a data stream to be transmitted, and filling the object data in the data stream into the data cache windows corresponding to the N data transmission paths respectively according to the window sizes of the data cache windows corresponding to the N data transmission paths respectively; The object data included in the N data cache windows are transmitted, wherein the first object data in the data cache window corresponding to the i-th data transmission path is transmitted to the target terminal before the second object data included in the data cache window corresponding to the i+1-th data transmission path.

2. The method according to claim 1, characterized in that: The determining, according to a correspondence between a first data transmission duration of the i-th data transmission path in the transmission path sequence and a second data transmission duration of the i+1-th data transmission path, a window size of a data cache window corresponding to the i-th data transmission path comprises: Obtaining a first ratio between a window description parameter of the ith data transmission path and a first path description parameter, wherein the window description parameter is used to indicate a reference window size of the data cache window of the ith data transmission path, the first path description parameter indicates a rate at which the object data in the data cache window is sent by the ith data transmission path, and the path description information includes the first path description parameter; Determining the first ratio as the first data transmission duration; Determine a second path description parameter of the (i+1)th data transmission path as the second data transmission duration, wherein the second path description parameter is half of a reference round trip delay corresponding to the data transmission path; At least one of the window description parameters that makes the first data transmission duration less than or equal to the second data transmission duration is determined as a target description parameter for indicating the window size of the data cache window corresponding to the i-th data transmission path.

3. The method according to claim 2, characterized in that Before determining the sum of the first ratio and the second path description parameter as the first data transmission duration, the method further includes: Obtaining a first round trip delay corresponding to a previous reference message transmitted through the i-th data transmission path; Obtaining a second round trip delay obtained by performing a delay estimation on the i-th data transmission path last time; A weighted average of the first round-trip delay and the second round-trip delay is determined as the reference round-trip delay.

4. The method according to claim 2, characterized in that: Before obtaining the first ratio between the window description parameter of the i-th data transmission path and the first path description parameter, the method further includes: Acquire a congestion window description data set matching the i-th data transmission path, wherein the congestion window description data set includes a plurality of historical congestion window description parameters of the i-th data transmission path; Inputting the congestion window description data set into a target parameter prediction model to predict the next congestion window description parameter for the i-th data transmission path, wherein the target parameter prediction model is a neural network model trained according to a plurality of window description parameter samples, wherein the window description parameter samples include a sample window description data set corresponding to a target timestamp, and a label window description parameter corresponding to the target timestamp; Determine an effective throughput parameter matching the i-th data transmission path according to the packet loss rate parameter matching the i-th data transmission path, the congestion window description parameter, and the reference round-trip delay; The effective throughput parameter is determined as the first path description parameter.

5. The method according to claim 4, characterized in that Before inputting the congestion window description data set into the target parameter prediction model to predict the next congestion window description parameter for the i-th data transmission path, the method further includes: Acquire a plurality of window description parameter samples matching the i-th data transmission path; Input a plurality of the window description parameter samples into the neural network model in the training phase, and update the parameters of the neural network model through multiple iterations. In each iteration, Predicting and obtaining a next reference congestion window description parameter for the i-th data transmission path based on a plurality of the window description parameter samples; Obtaining an error between the reference congestion window description parameter and an actual congestion window description parameter; In the case where the plurality of errors do not satisfy the target condition, back-propagating the neural network model according to the errors to update the parameters of the neural network model; When a plurality of the errors satisfy the target conditions, the neural network model of the current iteration round is used as the target parameter prediction model.

6. The method according to any one of claims 1 to 5, characterized in that The determining, according to the path description information of each of the N data transmission paths, a transmission path sequence corresponding to the N data transmission paths comprises: Obtaining, from the path description information of each of the N data transmission paths, reference round-trip delays corresponding to each of the N data transmission paths; According to the results of sorting the reference round trip delays from small to large, a transmission path sequence corresponding to the N data transmission paths is determined.

7. A data stream transmission device, characterized in that: include: A first determining unit: determining a transmission path sequence corresponding to the N data transmission paths according to the path description information of each of the N data transmission paths, wherein the order of the N data transmission paths in the transmission path sequence is negatively correlated with the time taken by each of the N data transmission paths to transmit the object data, and obtaining that N is an integer greater than or equal to 2; A second determination unit: traverses the N data transmission paths, and determines the window size of the data cache window corresponding to the i-th data transmission path according to the correspondence between the first data transmission duration of the i-th data transmission path in the transmission path sequence and the second data transmission duration of the i+1-th data transmission path, wherein the first data transmission duration is determined according to the path description information of the i-th data transmission path, the second data transmission duration is determined according to the path description information of the i+1-th data transmission path, and i is an integer greater than 1 and less than N; Filling unit: obtaining a data stream to be transmitted, and filling the object data in the data stream into the data cache windows corresponding to the N data transmission paths respectively in sequence according to the window size of the data cache windows corresponding to the N data transmission paths respectively; Transmission unit: Transmits the object data included in N data cache windows according to the order of the data transmission paths indicated by the transmission path sequence, wherein the first object data in the data cache window corresponding to the i-th data transmission path will be transmitted to the target terminal before the second object data included in the data cache window corresponding to the i+1-th data transmission path.

8. A computer-readable storage medium, characterized in that: The computer-readable storage medium includes a stored program, wherein the program executes the method according to any one of claims 1 to 6 when executed.

9. An electronic device, comprising a memory and a processor, characterized in that: A computer program is stored in the memory, and the processor is configured to execute the method according to any one of claims 1 to 6 through the computer program.

10. A computer program product, comprising a computer program, characterized in that When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 6 are implemented.

Citation Information

Patent Citations

  • Long and short memory network and depth data cleaning-based financial time sequence prediction method, device and server

    CN110334881A

  • Multi-path transmission scheduling method and device for heterogeneous network

    CN115665060A

  • Data packet multipath transmission scheduling method and system, terminal and medium

    CN116155830A

  • Network traffic prediction method based on time-space diagram attention mechanism

    CN116170351A

  • High-efficiency data transmission method and system based on synchronous prediction of transmitting and receiving ends

    CN118861538A