CN113347681A - Data transmission method, data transmission device, storage medium and electronic device - Google Patents
Data transmission method, data transmission device, storage medium and electronic device Download PDFInfo
- Publication number
- CN113347681A CN113347681A CN202110605125.7A CN202110605125A CN113347681A CN 113347681 A CN113347681 A CN 113347681A CN 202110605125 A CN202110605125 A CN 202110605125A CN 113347681 A CN113347681 A CN 113347681A
- Authority
- CN
- China
- Prior art keywords
- path
- data
- sub
- paths
- determining
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 115
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000012544 monitoring process Methods 0.000 claims abstract description 61
- 238000004590 computer program Methods 0.000 claims description 16
- 101000741965 Homo sapiens Inactive tyrosine-protein kinase PRAG1 Proteins 0.000 claims description 5
- 102100038659 Inactive tyrosine-protein kinase PRAG1 Human genes 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 abstract description 5
- 239000002699 waste material Substances 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/02—Communication route or path selection, e.g. power-based or shortest path routing
- H04W40/12—Communication route or path selection, e.g. power-based or shortest path routing based on transmission quality or channel quality
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
The embodiment of the invention provides a data transmission method, a data transmission device, a storage medium and an electronic device, wherein the method comprises the following steps: determining monitoring information of each sub-path included in a plurality of paths in a case where it is determined that the plurality of paths for transmitting data have been established between the terminal and the server; determining a target sub-path for transmitting first data from the multiple paths based on the monitoring information, wherein the target sub-path comprises at least one sub-path; the first data is transmitted using the target sub-path. The invention solves the problem of bandwidth waste in data transmission in the related technology and improves the utilization rate of the bandwidth under multipath.
Description
Technical Field
The embodiment of the invention relates to the field of communication, in particular to a data transmission method, a data transmission device, a storage medium and an electronic device.
Background
With the development of technology and in order to adapt to heterogeneous network environments, many user terminals are often configured with multiple interfaces (e.g., Wi-Fi and 4G, 5G). In order to improve transmission performance, improve bandwidth utilization and enhance fault tolerance of a network by using characteristics of a plurality of network interfaces of a terminal, a plurality of multipath transmission protocols are provided. There are TCP-based and UDP-based. These protocols are aggregated over multiple sublinks. However, the inconsistency of the uplink bandwidth and the downlink bandwidth of the network is not considered, and the ratio of the uplink bandwidth to the downlink bandwidth of the network is about 1: 10, if the uplink bandwidth is insufficient, the data recovery fails, but the downlink bandwidth is still sufficient, the data is transferred to other links, and the network bandwidth is wasted.
A typical multipath transmission method is described below by taking a multipath protocol (e.g., mptcp protocol) as an example for communication between a terminal and a server:
the terminal and the server communicate in MPTCP (MPTCP protocol) topology, as shown in fig. 1, and the server and the terminal communicate using a multi-path transmission protocol (e.g., MPTCP protocol) and transmit using two paths, i.e., 4G and Wi-Fi. The schematic diagram of MPTCP transmission between the server and the terminal can be seen in fig. 2, and the data acknowledgement ACK on each path is transmitted only on the original path. The explanation is made according to the upper and lower bandwidths provided by the network operator: the downlink bandwidth of the Wi-Fi is 100Mbps, and the uplink bandwidth is 10 Mbps; the downlink bandwidth of 4G is 100Mbps, and the uplink bandwidth is 50 Mbps. Because the data acknowledgement ACK on each path is only transmitted on the original path, if packet loss, jitter and congestion occur in the uplink bandwidth of the Wi-Fi, the service end can reduce the transmission rate on the Wi-Fi and transfer part of the data to the 4G network for transmission; however, the downstream bandwidth of Wi-Fi is sufficient, which results in a reduced bandwidth utilization on the Wi-Fi link and, on the other hand, increases the consumption of 4G network traffic.
Therefore, the related art has the problem that the data transmission wastes bandwidth.
In view of the above problems in the related art, no effective solution has been proposed.
Disclosure of Invention
The embodiment of the invention provides a data transmission method, a data transmission device, a storage medium and an electronic device, which are used for at least solving the problem of bandwidth waste in data transmission in the related technology.
According to an embodiment of the present invention, there is provided a data transmission method including: determining monitoring information of each sub-path included in a plurality of paths under the condition that the plurality of paths for transmitting data are established between the terminal and the server; determining a target sub-path for transmitting first data from the plurality of paths based on the monitoring information, wherein the target sub-path comprises at least one sub-path; and transmitting the first data by utilizing the target sub-path.
According to another embodiment of the present invention, there is provided a data transmission apparatus including: a first determining module, configured to determine monitoring information of each sub-path included in a plurality of paths, when it is determined that the plurality of paths for transmitting data have been established between a terminal and a server; a second determining module, configured to determine, based on the monitoring information, a target sub-path for transmitting first data from the multiple paths, where the target sub-path includes at least one sub-path; and the transmission module is used for transmitting the first data by utilizing the target sub-path.
According to yet another embodiment of the invention, there is also provided a computer-readable storage medium having a computer program stored therein, wherein the computer program, when executed by a processor, implements the steps of the method as set forth in any of the above.
According to yet another embodiment of the present invention, there is also provided an electronic device, including a memory in which a computer program is stored and a processor configured to execute the computer program to perform the steps in any of the above method embodiments.
According to the invention, under the condition that a plurality of paths for transmitting data are established between the terminal and the server, the monitoring information of each sub-path in the plurality of paths is determined, the target sub-path for transmitting the first data is determined from the plurality of paths according to the monitoring information, and the first data is transmitted by using the target sub-path. The target sub-path for transmitting the first data can be determined according to the monitoring information of each sub-path, so that the condition that the path to be transmitted is switched to other paths under the condition that the bandwidth of the sub-path is sufficient is avoided, the problem that the bandwidth is wasted in data transmission in the related technology can be solved, and the utilization rate of the bandwidth under the multi-path is improved.
Drawings
Fig. 1 is a topology diagram of a terminal and a server communicating in MPTCP in the related art;
fig. 2 is a schematic diagram illustrating MPTCP transmission between a server and a terminal in the related art;
fig. 3 is a block diagram of a hardware structure of a mobile terminal of a data transmission method according to an embodiment of the present invention;
FIG. 4 is a flow chart of a method of data transmission according to an embodiment of the present invention;
FIG. 5 is a flow chart of monitoring information to determine each sub-path in accordance with an exemplary embodiment of the present invention;
FIG. 6 is a flow diagram of determining a target sub-path from a plurality of paths for transmitting first data based on monitoring information, according to an example embodiment of the present invention;
FIG. 7 is a flow chart of a first data transfer using a target sub-path in accordance with an exemplary embodiment of the present invention;
FIG. 8 is a flowchart for transmitting a second reply packet using a reply sub-path according to an exemplary embodiment of the present invention;
FIG. 9 is a diagram of a data transmission architecture according to an exemplary embodiment of the present invention;
FIG. 10 is a schematic diagram of a data transmission deployment system in accordance with an exemplary embodiment of the present invention;
fig. 11 is a block diagram of a data transmission apparatus according to an embodiment of the present invention.
Detailed Description
Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings in conjunction with the embodiments.
It should be noted that the terms "first," "second," and the like in the description and claims of the present invention and in the drawings described above are used for distinguishing between similar elements and not necessarily for describing a particular sequential or chronological order.
The method embodiments provided in the embodiments of the present application may be executed in a mobile terminal, a computer terminal, or a similar computing device. Taking the mobile terminal as an example, fig. 3 is a block diagram of a hardware structure of the mobile terminal of a data transmission method according to an embodiment of the present invention. As shown in fig. 3, the mobile terminal may comprise one or more (only one shown in fig. 3) processors 302 (the processor 302 may comprise, but is not limited to, a processing means such as a microprocessor MCU or a programmable logic device FPGA) and a memory 304 for storing data, wherein the mobile terminal may further comprise a transmission device 306 for communication functions and an input-output device 308. It will be understood by those skilled in the art that the structure shown in fig. 3 is only an illustration, and does not limit the structure of the mobile terminal. For example, the mobile terminal may also include more or fewer components than shown in FIG. 3, or have a different configuration than shown in FIG. 3.
The memory 304 may be used for storing computer programs, for example, software programs and modules of application software, such as computer programs corresponding to the data transmission method in the embodiment of the present invention, and the processor 302 executes various functional applications and data processing by running the computer programs stored in the memory 304, that is, implementing the above-mentioned methods. The memory 304 may include high-speed random access memory, and may also include 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 304 may further include memory located remotely from the processor 302, which may be connected to the mobile terminal through a network. Examples of such networks include, but are not limited to, the internet, intranets, local area networks, mobile communication networks, and combinations thereof.
The transmitting device 306 is used to receive or transmit data via a network. Specific examples of the network described above may include a wireless network provided by a communication provider of the mobile terminal. In one example, the transmission device 306 includes a Network adapter (NIC) that can be connected to other Network devices through a base station to communicate with the internet. In one example, the transmitting device 306 can be a Radio Frequency (RF) module, which is used to communicate with the internet in a wireless manner.
In this embodiment, a data transmission method is provided, and fig. 4 is a flowchart of a data transmission method according to an embodiment of the present invention, as shown in fig. 4, the flowchart includes the following steps:
step S402, under the condition that a plurality of paths for transmitting data are established between the terminal and the server, determining the monitoring information of each sub-path included in the plurality of paths;
step S404, determining a target sub-path for transmitting first data from the plurality of paths based on the monitoring information, wherein the target sub-path comprises at least one sub-path;
step S406, transmitting the first data by using the target sub-path.
In the above embodiments, the paths may include a 4G path, a 5G path, a WIFI path, and the like. That is, the sub-path may be a 4G path, a 5G path, a WIFI path, or the like. When data is transmitted, one or more modes of 4G, 5G or WIFI can be adopted for transmission.
In the above-described embodiment, in a case where it is determined that the terminal establishes a plurality of paths for transmitting data with the server, the monitoring information of each sub-path included in the plurality of paths is determined. The monitoring information may include a bandwidth, a packet loss rate, a channel quality, a congestion condition, and the like of each sub-path. After the monitoring information is determined, a target sub-path may be determined according to the monitoring information, for example, an optimal path is selected to transmit data.
In the above embodiment, the execution main body of the above step may be a terminal, or may be a server, where when the execution main body is the terminal, the data transmission is uplink transmission, and when the execution main body is the server, the data transmission is downlink transmission. When the data is transmitted in an uplink manner, after the data issued by the application layer is acquired, the data can be distributed to one or more paths with good path quality in the plurality of transmission paths to transmit the data.
According to the invention, under the condition that a plurality of paths for transmitting data are established between the terminal and the server, the monitoring information of each sub-path in the plurality of paths is determined, the target sub-path for transmitting the first data is determined from the plurality of paths according to the monitoring information, and the first data is transmitted by using the target sub-path. The target sub-path for transmitting the first data can be determined according to the monitoring information of each sub-path, so that the condition that the path to be transmitted is switched to other paths under the condition that the bandwidth of the sub-path is sufficient is avoided, the problem that the bandwidth is wasted in data transmission in the related technology can be solved, and the utilization rate of the bandwidth under the multi-path is improved.
In one exemplary embodiment, before determining the monitoring information of each sub-path included in the plurality of paths, the method further includes: detecting a first number of first transmission interfaces and a first interface type of the first transmission interfaces of the terminal, and detecting a second number of second transmission interfaces and a second interface type of the second transmission interfaces of the server, wherein the first transmission interfaces and the first interface types are used for transmitting data; and under the condition that the first number and the second number are both larger than a preset threshold value, the first interface type indicates that the terminal allows a plurality of transmission paths to be established with the server, and the second interface type indicates that the server allows a plurality of path transmission paths to be established with the terminal, the paths are established. In this embodiment, before determining the monitoring information of each sub-path included in the plurality of paths, the transmission interfaces and interface types of the terminal and the server may be detected to determine whether the terminal and the server allow the plurality of paths to be established. The number and the type of the interfaces of the equipment can be detected first, and guidance is provided for subsequently establishing multipath transmission. Firstly, judging whether the upper layer allows the establishment of multi-path transmission, and if not, entering a single-path transmission flow. If yes, checking whether the current client (terminal) and the current server (server) allow to establish a plurality of paths, determining the number of transmission interfaces of the terminal and the server, and establishing the plurality of paths between the terminal and the server under the condition that the number of the transmission interfaces is larger than a preset threshold value and the terminal and the server both allow to establish the plurality of paths. And if the terminal and the server do not allow a plurality of paths to be established, entering a path transmission process.
In one exemplary embodiment, determining monitoring information for each sub-path included in a plurality of said paths comprises: acquiring a first reply packet transmitted by each sub-path, wherein the first reply packet is a data packet generated by responding to received data by an opposite terminal device, and the opposite terminal device comprises the terminal or the server; determining a network status of each of the sub-paths based on the first reply packet; determining the network status as the monitoring information for each of the sub-paths. In this embodiment, the network status of each sub-path may be determined according to the received first reply packet, for example, RTT, packet loss rate, and the like of each sub-path are calculated according to the first reply packet. And updating the data of the network state information and the size of the congestion window according to the calculation result in proportion.
In the above embodiment, a flow chart of determining the monitoring information of each sub-path may refer to fig. 5, as shown in fig. 5, the monitoring information of each sub-path may be determined by the congestion control module, and the flow includes:
step S502, performing calculation according to the received reply packet to obtain a calculation result, such as calculating RTT and packet loss rate.
And step S504, updating the data of the network state information and the size of the congestion window in proportion according to the calculation result.
In an exemplary embodiment, determining a target sub-path for transmitting the first data from the plurality of paths based on the monitoring information comprises: determining a path selection rule based on the monitoring information; determining the target sub-path for sending the first data based on the path selection rule. In this embodiment, after the multiple paths are established, the path selection rule may be determined first, and the target sub-path may be determined according to the path selection rule and the monitoring information. The path selection rule may include a rule determined based on the priority of the sub-path, and for example, it may be set that the priority of the line path is higher than the priority of the wireless path, the priority of the wireless path is higher than the priority of the 5G path, and the priority of the 5G path is higher than the priority of the 4G path. And when the monitoring information indicates that the network state of each sub-path is at the same level, determining the target sub-path according to the priority. And when the monitoring information indicates that the network state of each sub-path is in different levels, determining the path with the optimal network state as a target sub-path. And when the monitoring information indicates that the network state of each sub-path is not good, determining the path with the network state ranking 2 as a target sub-path. When the target sub-path includes a plurality of sub-paths, the data to be transmitted may be allocated according to the network states of the plurality of sub-paths.
In the above embodiment, after the multipath is established, the network state and type of each sub-path are monitored, data distribution sub-path scheduling is performed according to the monitoring information, and which sub-path is prioritized for transmission can be determined according to the monitoring information, for example, Wi-Fi and 4G networks can adopt Wi-Fi prioritization; Wi-Fi, and wired networks, can employ wired preferences, etc. And then distributing the data to other sub-paths for transmission.
In the above embodiment, the process of determining the target sub-path for transmitting the first data from the multiple paths based on the monitoring information may be performed by the multi-path data transmission scheduling module, where a flowchart of determining the target sub-path for transmitting the first data from the multiple paths based on the monitoring information may refer to fig. 6, where as shown in fig. 6, the flowchart includes:
step S602, first detecting the number of interfaces and the types of interfaces of the devices (terminals and servers) to provide guidance for subsequently establishing multipath transmission.
In step S604, it is determined whether the multi-path transmission flow or the single-path transmission flow is performed. Firstly, judging whether an upper layer allows the establishment of multi-path transmission, and if not, entering a traditional single-path transmission flow; if yes, checking whether the current client and the current server allow the establishment of the multipath and the number of transmission interfaces of the client and the server is more than 1; if the determination result is yes, step S606 is executed, and if the determination result is no, step S608 is executed.
Step S606, it is satisfied that the multi-path transmission establishment procedure, the multi-path transmission establishment, and the process interaction for identifying whether a sub-path of a certain connection or a new connection is entered, and the transmission establishment is performed.
Step S608, enter the single path transmission flow.
Step S610, after establishing multipath.
Step S612, monitoring the network state and type of each sub-path, scheduling data distribution sub-paths according to the monitoring information, and judging which sub-path has priority for transmission according to configuration information, for example, Wi-Fi and 4G networks, and Wi-Fi priority can be adopted; Wi-Fi, and wired networks, can employ wired preferences, etc. And then distributing the data to other sub-paths for transmission.
Step S614 determines whether to exit the multi-path transmission according to the closing identifier of the multi-path transmission, if the closing identifier exists, step S616 is executed, and if the closing identifier does not exist, step S612 is executed.
Step S616, the multi-path data transmission scheduling module exits.
In one exemplary embodiment, transmitting the first data using the target sub-path comprises: reading a data packet of the first data under the condition that the monitoring information indicates that the target sub-path has the capacity of sending the first data; adding a protocol header in the data packet to obtain a first data packet under the condition that the data packet is read; and transmitting the first data packet by using the target sub-path. In this embodiment, after the target sub-path is determined, the first data may be sent through the target sub-path. Before sending data, the target sub-path may first determine whether the target sub-path currently has a capability of sending the first data, in the case that the target sub-path determines that the target sub-path has the capability of sending the first data, the data packet may be read from the sending buffer, in the case that the data packet is read, the protocol header is added to the data packet, and the data packet with the protocol header added thereto is sent through the target sub-path.
In the above embodiment, referring to fig. 7, a flowchart for transmitting the first data by using the target sub-path may be implemented by the data sending module, as shown in fig. 7, where the flowchart includes:
step S702, first, reads the result calculated by the congestion control algorithm: a transmission window and a transmission rate.
Step S704, determining whether to allow the data to be retransmitted currently according to the result of step S702, and if the data is allowed to be retransmitted, performing step S706, otherwise performing step S714.
Step S706, an attempt is made to read a data packet from the transmission buffer for transmission.
In step S708, it is determined whether a packet is fetched, and if the packet is fetched, the process proceeds to step S710, and if not, step S714 is performed.
Step S710, packing the read data packet, and adding a protocol header.
Step S712, invoking the UDP sending interface to send data.
Step S714, the data transmission module is exited.
In one exemplary embodiment, after transmitting the first data using the target sub-path, the method further comprises: determining a second reply packet based on a state of second data in case of receiving the second data; determining reply sub-paths for sending the second reply packet based on monitoring information of each sub-path included in the plurality of paths, wherein at least one sub-path is included in the reply sub-paths; and transmitting the second reply packet by using the reply sub-path. In this embodiment, in the case of receiving the second data, the second reply packet may be determined according to the state of the second data, the reply sub-path for sending the second reply packet is determined according to the monitoring information of each sub-path, and the second reply packet is transmitted through the reply sub-path. The state of the second data may include data packet loss, and the like. The reply sub-path may include one sub-path, or may include a plurality of sub-paths, for example, 2, 3, and so on.
In one exemplary embodiment, determining the second reply packet based on the state of the second data comprises: determining that the second reply packet includes NACK information under the condition that the state of the second data indicates that data packet loss exists; and determining that the second reply packet comprises ACK information under the condition that the state of the second data indicates that no data packet is lost. In this embodiment, when there is a packet loss in the received second data, the second reply packet with NACK information is replied through the reply sub-path. And under the condition that no packet loss exists in the received second data, replying a second reply packet with the ACK information through a reply sub-path.
In the above embodiment, referring to fig. 8, a flowchart of transmitting the second reply packet by using the reply sub-path may be implemented by the data receiving module, as shown in fig. 8, where the flowchart includes:
step S802, store the received data in the receiving buffer.
Step S804, determining whether there is a data packet loss according to the received data, if yes, performing step S806, and if no, performing step S808.
Step S806, if it is determined that there is a packet loss, an NACK reply packet is assembled to request the transmitting end to retransmit.
Step S808, if it is determined that there is no data packet loss, an ACK reply packet is replied.
Step S810, selecting 2 paths with the optimal network state from the sub-paths, and then sending the reply packet from the 2 sub-paths, so as to solve the problems existing in sending the reply packet only from the original return path, such as the situation that the bandwidth of the original return path is insufficient, the packet loss and the congestion are serious, which causes the sending rate of the original path to decrease, and the bandwidth of the original data sending path is sufficient, thereby causing the bandwidth utilization of the system to be insufficient.
Step S812, the data receiving module is exited.
In the foregoing embodiment, the data transmission structure diagram can refer to fig. 9, and as shown in fig. 9, the structure includes a multipath data transmission scheduling module, a data sending module, a data receiving module, and a congestion control module. The data transmission method is positioned below the application layer and above the UDP transmission layer, UDP can be used as a bottom layer transmission carrier to be suitable for real-time transmission of audio and video, and the whole direction is positioned in a user mode to be more convenient to update and deploy. The multi-path data transmission scheduling module is responsible for scheduling data issued by the application layer to a plurality of transmission paths, detecting a plurality of interfaces and establishing multi-path transmission. The data sending module is responsible for the sending control process of the data. The data receiving module is responsible for the receiving process and the reply processing process of the data. The congestion control module is responsible for detecting the network state of the path and controlling the congestion of the path.
Fig. 10 shows a schematic diagram of a data transmission deployment system, and as shown in fig. 10, a terminal and a server have 2 paths, where a downlink bandwidth of a path 1 is 100Mbps, and an uplink bandwidth is 50 Mbps; the downlink bandwidth of the path 2 is 100Mbps, the uplink bandwidth is 10Mbps, the downlink refers to from the service end to the terminal, and the uplink refers to from the terminal to the service end. The data packet is sent to the terminal through the downlink of the path 2, the reply packet in a common multi-path transmission protocol (for example, an mptcp protocol) is only sent back to the server end on the uplink of the path 2, and if the uplink bandwidth of the path 2 is insufficient, the packet is lost, and congestion occurs, the downlink speed of the path 2 is reduced, so that the bandwidth utilization rate of the system is reduced. In the above embodiment, when the reply packet is transmitted, 2 optimal paths may be selected to transmit the reply packet, and the reply packet may be returned to the server end through the uplink of path 1 in the schematic system, so that the downlink bandwidth of path 1 may not be slowed down even if the uplink reply packet through path 2 is lost, thereby improving the bandwidth utilization of the system and solving the problem of bandwidth waste caused by inconsistent uplink and downlink bandwidths.
Through the above description of the embodiments, those skilled in the art can clearly understand that the method according to the above embodiments can be implemented by software plus a necessary general hardware platform, and certainly can also be implemented by hardware, but the former is a better implementation mode in many cases. Based on such understanding, the technical solutions of the present invention may be embodied in the form of a software product, which is stored in a storage medium (e.g., ROM/RAM, magnetic disk, optical disk) and includes instructions for enabling a terminal device (e.g., a mobile phone, a computer, a server, or a network device) to execute the method according to the embodiments of the present invention.
In this embodiment, a data transmission device is further provided, and the data transmission device is used to implement the foregoing embodiments and preferred embodiments, which have already been described and are not described again. As used below, the term "module" may be a combination of software and/or hardware that implements a predetermined function. Although the means described in the embodiments below are preferably implemented in software, an implementation in hardware, or a combination of software and hardware is also possible and contemplated.
Fig. 11 is a block diagram of a data transmission apparatus according to an embodiment of the present invention, as shown in fig. 11, the apparatus including:
a first determining module 1102, configured to determine monitoring information of each sub-path included in a plurality of paths for transmitting data, if it is determined that the plurality of paths have been established between a terminal and a server;
a second determining module 1104, configured to determine, based on the monitoring information, a target sub-path for transmitting the first data from the multiple paths, where the target sub-path includes at least one sub-path;
a transmission module 1106 configured to transmit the first data using the target sub-path.
In an exemplary embodiment, the apparatus may be configured to detect a first number of first transmission interfaces for transmitting data and a first interface type of the first transmission interfaces of the terminal, and detect a second number of second transmission interfaces for transmitting data and a second interface type of the second transmission interfaces of the server, before determining monitoring information of each sub-path included in a plurality of the paths; and under the condition that the first number and the second number are both larger than a preset threshold value, the first interface type indicates that the terminal allows a plurality of transmission paths to be established with the server, and the second interface type indicates that the server allows a plurality of path transmission paths to be established with the terminal, the paths are established.
In an exemplary embodiment, the first determining module 1102 may determine the monitoring information of each sub-path included in the plurality of paths by: acquiring a first reply packet transmitted by each sub-path, wherein the first reply packet is a data packet generated by responding to received data by an opposite terminal device, and the opposite terminal device comprises the terminal or the server; determining a network status of each of the sub-paths based on the first reply packet; determining the network status as the monitoring information for each of the sub-paths.
In an exemplary embodiment, the second determining module 1104 may determine the target sub-path for transmitting the first data from the plurality of paths based on the monitoring information by: determining a path selection rule based on the monitoring information; determining the target sub-path for sending the first data based on the path selection rule.
In an exemplary embodiment, the transmission module 1106 may enable transmission of the first data using the target sub-path by: reading a data packet of the first data under the condition that the monitoring information indicates that the target sub-path has the capacity of sending the first data; adding a protocol header in the data packet to obtain a first data packet under the condition that the data packet is read; and transmitting the first data packet by using the target sub-path.
In an exemplary embodiment, the apparatus may be further configured to determine, after transmitting the first data using the target sub-path, a second reply packet based on a state of a second data in case the second data is received; determining reply sub-paths for sending the second reply packet based on monitoring information of each sub-path included in the plurality of paths, wherein at least one sub-path is included in the reply sub-paths; and transmitting the second reply packet by using the reply sub-path.
In an exemplary embodiment, the apparatus may determine the second reply packet based on the state of the second data by: determining that the second reply packet includes NACK information under the condition that the state of the second data indicates that data packet loss exists; and determining that the second reply packet comprises ACK information under the condition that the state of the second data indicates that no data packet is lost.
It should be noted that, the above modules may be implemented by software or hardware, and for the latter, the following may be implemented, but not limited to: the modules are all positioned in the same processor; alternatively, the modules are respectively located in different processors in any combination.
Embodiments of the present invention also provide a computer-readable storage medium having a computer program stored thereon, wherein the computer program, when executed by a processor, implements the steps of the method as set forth in any of the above.
In an exemplary embodiment, the computer-readable storage medium may include, but is not limited to: various media capable of storing computer programs, such as a usb disk, a Read-Only Memory (ROM), a Random Access Memory (RAM), a removable hard disk, a magnetic disk, or an optical disk.
Embodiments of the present invention also provide an electronic device comprising a memory having a computer program stored therein and a processor arranged to run the computer program to perform the steps of any of the above method embodiments.
In an exemplary embodiment, the electronic apparatus 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.
For specific examples in this embodiment, reference may be made to the examples described in the above embodiments and exemplary embodiments, and details of this embodiment are not repeated herein.
It will be apparent to those skilled in the art that the various modules or steps of the invention described above may be implemented using a general purpose computing device, they may be centralized on a single computing device or distributed across a network of computing devices, and they may be implemented using program code executable by the computing devices, such that they may be stored in a memory device and executed by the computing device, and in some cases, the steps shown or described may be performed in an order different than that described herein, or they may be separately fabricated into various integrated circuit modules, or multiple ones of them may be fabricated into a single integrated circuit module. Thus, the present invention is not limited to any specific combination of hardware and software.
The above description is only a preferred embodiment of the present invention and is not intended to limit the present invention, and various modifications and changes may be made by those skilled in the art. Any modification, equivalent replacement, or improvement made within the principle of the present invention should be included in the protection scope of the present invention.
Claims (10)
1. A method of data transmission, comprising:
determining monitoring information of each sub-path included in a plurality of paths under the condition that the plurality of paths for transmitting data are established between the terminal and the server;
determining a target sub-path for transmitting first data from the plurality of paths based on the monitoring information, wherein the target sub-path comprises at least one sub-path;
and transmitting the first data by utilizing the target sub-path.
2. The method of claim 1, wherein prior to determining monitoring information for each sub-path included in a plurality of the paths, the method further comprises:
detecting a first number of first transmission interfaces and a first interface type of the first transmission interfaces of the terminal, and detecting a second number of second transmission interfaces and a second interface type of the second transmission interfaces of the server, wherein the first transmission interfaces and the first interface types are used for transmitting data;
and under the condition that the first number and the second number are both larger than a preset threshold value, the first interface type indicates that the terminal allows a plurality of transmission paths to be established with the server, and the second interface type indicates that the server allows a plurality of path transmission paths to be established with the terminal, the paths are established.
3. The method of claim 1, wherein determining monitoring information for each sub-path included in the plurality of paths comprises:
acquiring a first reply packet transmitted by each sub-path, wherein the first reply packet is a data packet generated by responding to received data by an opposite terminal device, and the opposite terminal device comprises the terminal or the server;
determining a network status of each of the sub-paths based on the first reply packet;
determining the network status as the monitoring information for each of the sub-paths.
4. The method of claim 1, wherein determining a target sub-path from the plurality of paths for transmitting the first data based on the monitoring information comprises:
determining a path selection rule based on the monitoring information;
determining the target sub-path for sending the first data based on the path selection rule.
5. The method of claim 1, wherein transmitting the first data using the target sub-path comprises:
reading a data packet of the first data under the condition that the monitoring information indicates that the target sub-path has the capacity of sending the first data;
adding a protocol header in the data packet to obtain a first data packet under the condition that the data packet is read;
and transmitting the first data packet by using the target sub-path.
6. The method of claim 1, wherein after transmitting the first data using the target sub-path, the method further comprises:
determining a second reply packet based on a state of second data in case of receiving the second data;
determining reply sub-paths for sending the second reply packet based on monitoring information of each sub-path included in the plurality of paths, wherein at least one sub-path is included in the reply sub-paths;
and transmitting the second reply packet by using the reply sub-path.
7. The method of claim 6, wherein determining a second reply packet based on the state of the second data comprises:
determining that the second reply packet includes NACK information under the condition that the state of the second data indicates that data packet loss exists;
and determining that the second reply packet comprises ACK information under the condition that the state of the second data indicates that no data packet is lost.
8. A data transmission apparatus, comprising:
a first determining module, configured to determine monitoring information of each sub-path included in a plurality of paths, when it is determined that the plurality of paths for transmitting data have been established between a terminal and a server;
a second determining module, configured to determine, based on the monitoring information, a target sub-path for transmitting first data from the multiple paths, where the target sub-path includes at least one sub-path;
and the transmission module is used for transmitting the first data by utilizing the target sub-path.
9. A computer-readable storage medium, in which a computer program is stored, which computer program, when being executed by a processor, carries out the steps of the method according to any one of claims 1 to 7.
10. An electronic device comprising a memory and a processor, wherein the memory has stored therein a computer program, and wherein the processor is arranged to execute the computer program to perform the method of any of claims 1 to 7.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110605125.7A CN113347681B (en) | 2021-05-31 | 2021-05-31 | Data transmission method and device, storage medium and electronic device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110605125.7A CN113347681B (en) | 2021-05-31 | 2021-05-31 | Data transmission method and device, storage medium and electronic device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113347681A true CN113347681A (en) | 2021-09-03 |
CN113347681B CN113347681B (en) | 2023-07-14 |
Family
ID=77473672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110605125.7A Active CN113347681B (en) | 2021-05-31 | 2021-05-31 | Data transmission method and device, storage medium and electronic device |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113347681B (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114666265A (en) * | 2022-03-28 | 2022-06-24 | 阿里巴巴(中国)有限公司 | Data transmission method, device, computing equipment and medium |
CN115914112A (en) * | 2022-11-02 | 2023-04-04 | 杭州汇新通科技有限公司 | Multi-path scheduling algorithm and system based on PDAA3C |
CN117914775A (en) * | 2024-03-20 | 2024-04-19 | 苏州元脑智能科技有限公司 | Heterogeneous computing-oriented high-bandwidth data transmission method, CPU and system |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102185771A (en) * | 2011-05-05 | 2011-09-14 | 清华大学 | Dispatching method and system for data packet of sender in MPTCP (Multipath TCP (Transmission Control Protocol)) |
CN104243443A (en) * | 2013-06-06 | 2014-12-24 | 苹果公司 | System and method for establishment and control of multipath TCP subflow |
CN105490933A (en) * | 2015-12-28 | 2016-04-13 | 中国电子科技集团公司第五十四研究所 | MPTCP path management method based on multi-path transmission protocol and device |
CN105491561A (en) * | 2016-01-11 | 2016-04-13 | 中南大学 | Multiple-data packet and multiple-ACK (acknowledgement) selective forwarding attack detection method |
US20160373339A1 (en) * | 2015-02-09 | 2016-12-22 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and Device for Handling Multi Path Connections |
US20170181211A1 (en) * | 2015-12-16 | 2017-06-22 | At&T Intellectual Property I, L.P. | Method and apparatus for web browsing on multihomed mobile devices |
US20170346724A1 (en) * | 2016-05-25 | 2017-11-30 | Doru Calin | Dynamic multi-path control and adaptive end-to-end content delivery over wireless media |
CN107682258A (en) * | 2017-09-27 | 2018-02-09 | 北京邮电大学 | A kind of multi-path network transmission method and device based on virtualization |
CN107743698A (en) * | 2015-06-16 | 2018-02-27 | 三星电子株式会社 | Method and apparatus for multipath media delivery |
CN108449772A (en) * | 2017-02-16 | 2018-08-24 | 网宿科技股份有限公司 | Path selection method and system based on multipath transmission protocol, node server |
CN109257282A (en) * | 2018-08-09 | 2019-01-22 | 北京邮电大学 | A kind of data transmission method and device |
CN111107672A (en) * | 2018-10-26 | 2020-05-05 | 华为技术有限公司 | A method, apparatus and system for establishing a multi-path connected substream |
CN111277502A (en) * | 2020-01-20 | 2020-06-12 | 北京红云融通技术有限公司 | Method for transmitting data by multi-link aggregation and transmitting equipment |
US20210014153A1 (en) * | 2018-02-06 | 2021-01-14 | Deutsche Telekom Ag | Techniques for efficient multipath transmission |
-
2021
- 2021-05-31 CN CN202110605125.7A patent/CN113347681B/en active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102185771A (en) * | 2011-05-05 | 2011-09-14 | 清华大学 | Dispatching method and system for data packet of sender in MPTCP (Multipath TCP (Transmission Control Protocol)) |
CN104243443A (en) * | 2013-06-06 | 2014-12-24 | 苹果公司 | System and method for establishment and control of multipath TCP subflow |
US20160373339A1 (en) * | 2015-02-09 | 2016-12-22 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and Device for Handling Multi Path Connections |
CN107743698A (en) * | 2015-06-16 | 2018-02-27 | 三星电子株式会社 | Method and apparatus for multipath media delivery |
US20170181211A1 (en) * | 2015-12-16 | 2017-06-22 | At&T Intellectual Property I, L.P. | Method and apparatus for web browsing on multihomed mobile devices |
CN105490933A (en) * | 2015-12-28 | 2016-04-13 | 中国电子科技集团公司第五十四研究所 | MPTCP path management method based on multi-path transmission protocol and device |
CN105491561A (en) * | 2016-01-11 | 2016-04-13 | 中南大学 | Multiple-data packet and multiple-ACK (acknowledgement) selective forwarding attack detection method |
US20170346724A1 (en) * | 2016-05-25 | 2017-11-30 | Doru Calin | Dynamic multi-path control and adaptive end-to-end content delivery over wireless media |
CN108449772A (en) * | 2017-02-16 | 2018-08-24 | 网宿科技股份有限公司 | Path selection method and system based on multipath transmission protocol, node server |
CN107682258A (en) * | 2017-09-27 | 2018-02-09 | 北京邮电大学 | A kind of multi-path network transmission method and device based on virtualization |
US20210014153A1 (en) * | 2018-02-06 | 2021-01-14 | Deutsche Telekom Ag | Techniques for efficient multipath transmission |
CN109257282A (en) * | 2018-08-09 | 2019-01-22 | 北京邮电大学 | A kind of data transmission method and device |
CN111107672A (en) * | 2018-10-26 | 2020-05-05 | 华为技术有限公司 | A method, apparatus and system for establishing a multi-path connected substream |
CN111277502A (en) * | 2020-01-20 | 2020-06-12 | 北京红云融通技术有限公司 | Method for transmitting data by multi-link aggregation and transmitting equipment |
Non-Patent Citations (4)
Title |
---|
薛开平等: "基于MPTCP的多路径传输优化技术综述", 《计算机研究与发展》 * |
薛开平等: "基于MPTCP的多路径传输优化技术综述", 《计算机研究与发展》, no. 11, 15 November 2016 (2016-11-15), pages 1 - 18 * |
陶晓玲等: "多路径并行传输的路径动态决策方法", 《广西师范大学学报(自然科学版)》 * |
陶晓玲等: "多路径并行传输的路径动态决策方法", 《广西师范大学学报(自然科学版)》, no. 02, 15 June 2016 (2016-06-15), pages 1 - 8 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114666265A (en) * | 2022-03-28 | 2022-06-24 | 阿里巴巴(中国)有限公司 | Data transmission method, device, computing equipment and medium |
CN114666265B (en) * | 2022-03-28 | 2024-04-02 | 阿里巴巴(中国)有限公司 | Data transmission method, device, computing equipment and medium |
CN115914112A (en) * | 2022-11-02 | 2023-04-04 | 杭州汇新通科技有限公司 | Multi-path scheduling algorithm and system based on PDAA3C |
CN117914775A (en) * | 2024-03-20 | 2024-04-19 | 苏州元脑智能科技有限公司 | Heterogeneous computing-oriented high-bandwidth data transmission method, CPU and system |
Also Published As
Publication number | Publication date |
---|---|
CN113347681B (en) | 2023-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110636583B (en) | Path changing method and device | |
US9253015B2 (en) | Transparent proxy architecture for multi-path data connections | |
CN113347681B (en) | Data transmission method and device, storage medium and electronic device | |
EP3278514B1 (en) | Data transmission | |
CN108881008B (en) | A method, device and system for data transmission | |
EP3217609B1 (en) | Data transmission method and system | |
JP2020502948A (en) | Packet transmission system and method | |
US20050185621A1 (en) | Systems and methods for parallel communication | |
WO2014077905A1 (en) | Multi-hop error recovery | |
EP3533162B1 (en) | Handling of data packet transfer via a proxy | |
US12418463B2 (en) | Information acquisition method and apparatus, storage medium, and electronic apparatus | |
EP3534574B1 (en) | Techniques for policy management of multi-connectivity network protocols | |
JP2022505424A (en) | Packet processing method and equipment | |
CN104980257B (en) | Internet of things communication method and device | |
CN105262836A (en) | Information push method of server and push information reception method of client | |
US20160316022A1 (en) | Communication device, communication processing method, and storage medium | |
WO2023093804A1 (en) | Packet loss management method and related apparatus | |
KR20160131532A (en) | Adaptive Bidirectional Forwarding Detection protocol and equipment for maximizing service availability in network system | |
CN113132062A (en) | Message transmission method and electronic equipment | |
CN113765703B (en) | Data transmission switching control method and system of intelligent gateway | |
CN111147386B (en) | Method, electronic device and computer readable medium for handling data transmission congestion | |
US7317686B2 (en) | Fair sharing of multi-access channels | |
US11469990B2 (en) | Techniques for interaction between network protocols | |
CN107222299A (en) | A kind of data transmission method, system and electronic equipment | |
KR101663800B1 (en) | Apparatus and method for simultaneously transmitting data in heterogeneous network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |