WO2018161262A1 - Data transmission method and device - Google Patents

Data transmission method and device Download PDF

Info

Publication number
WO2018161262A1
WO2018161262A1 PCT/CN2017/075902 CN2017075902W WO2018161262A1 WO 2018161262 A1 WO2018161262 A1 WO 2018161262A1 CN 2017075902 W CN2017075902 W CN 2017075902W WO 2018161262 A1 WO2018161262 A1 WO 2018161262A1
Authority
WO
WIPO (PCT)
Prior art keywords
path
delay
paths
determining
preset
Prior art date
Application number
PCT/CN2017/075902
Other languages
French (fr)
Chinese (zh)
Inventor
韦安妮
陈亨黄·安东尼
熊春山
Original Assignee
华为技术有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to PCT/CN2017/075902 priority Critical patent/WO2018161262A1/en
Publication of WO2018161262A1 publication Critical patent/WO2018161262A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/121Shortest path evaluation by minimising delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath

Definitions

  • the present disclosure relates to the field of communications technologies, and in particular, to a data transmitting method and apparatus.
  • TCP Transmission Control Protocol
  • standard TCP only one path is used between the terminal and the server for data transmission.
  • the terminal has multiple network interfaces, such as a WiFi interface and a 3G interface. Through the multiple network interfaces, the terminal and the server can use multiple paths for data transmission, if still used.
  • the standard TCP protocol uses only one path for data transmission, which wastes other path resources.
  • Multipath TCP Multipath TCP
  • MPTCP multipath TCP protocol
  • the core idea of this protocol is at the application layer and transport layer.
  • the terminal sends data to the server as an example.
  • the Multipath TCP layer of the terminal can divide the data transmitted by the application layer into multiple TCP sub-flows. Different TCP sub-flows are sent to the server through different network interfaces, and the server will be different.
  • the TCP substream is aggregated at the Multipath TCP layer and delivered to the application layer to implement multipath transmission between the terminal and the server.
  • the first aspect provides a data sending method, which is applied to a first device, where the method includes:
  • the first path is at least one of a plurality of paths for transmitting data between the first device and the second device, and the delay of data transmission performed by the first path does not meet the preset Delay requirement
  • the first path that does not satisfy the preset delay requirement can be determined from multiple paths, and the transmission on the path is abandoned, and the delay in the remaining path is adopted.
  • Small data transmission on at least one path improves the efficiency of data transmission.
  • the determining the first path includes:
  • the process of determining the first path is implemented by performing delay jitter detection on the path and determining the relationship between the path delay of each path and the preset delay requirement.
  • the determining the first path according to the path delay of each path of the multiple paths and the preset delay requirement includes:
  • the first path is determined by two different ways: path delay and path delay difference, which improves the flexibility of determining the first path.
  • the performing delay jitter detection on the multiple paths includes:
  • the first device can actively perform delay jitter detection, or perform delay jitter detection according to the indication of the second device, thereby improving flexibility of delay jitter detection.
  • a path delay of each path of the multiple paths is a one-way delay of each path, or a round-trip delay RTT of each path.
  • the flexibility of path delay detection is improved by adopting different forms of path delay.
  • the determining the first path includes:
  • the path that does not receive the second path switching indication in the multiple paths is determined as the First path
  • the determining the second path comprises: determining the at least one path as the second path.
  • the first device directly determines, according to the indication of the second device, a second path that can subsequently perform data transmission, and improves efficiency of determining, by the first device, the second path.
  • the method further includes:
  • the first path Performing delay jitter detection on the multiple paths to obtain a path delay of each of the multiple paths; if the path delay of the first path meets the preset delay requirement, The first path sends data to the second device, where the path delay of the first path meets the preset delay requirement, where the path delay of the first path is less than a first threshold, or The delay difference corresponding to a path is less than the second threshold.
  • the path delay of the first path meets the preset requirement, the first path can be re-enabled for data transmission, which improves the flexibility of data transmission.
  • a second aspect provides a data sending method, which is applied to a second device, where the method includes:
  • the path switching indication is sent to the first device, so that the first device can stop the data transmission on the path whose path delay does not meet the preset delay requirement according to the path switching indication, thereby improving Data transmission efficiency.
  • the detecting whether the buffered data meets a preset switching condition includes:
  • the detecting whether the buffered data packet is in an out-of-order state includes:
  • the serial number of the cached data packet is not continuous, and the duration of the serial number discontinuity exceeds a preset duration, determining that the cached data packet is in an out-of-sequence state; or, if the serial number of the cached data packet is discontinuous
  • the preset number determines that the cached data packet is out of order.
  • the flexibility of the trigger path switching is improved by adopting different conditions to determine whether the cached data satisfies the preset switching condition.
  • the sending, by the first device, a path switching indication includes:
  • the sending, by the first device, a path switching indication includes:
  • the determining the first path from the multiple paths includes:
  • a path that causes the serial number of the buffered data packet to be discontinuous is determined as the first path according to the received data packet of each of the plurality of paths.
  • the sending, by the first device, the path switching indication includes:
  • the manner of transmitting the path switching indication is defined by corresponding to different protocols, so that the data transmitting method can be applied to multiple multi-path protocols.
  • a third aspect provides a data sending method, which is applied to a first device, where the method includes:
  • the delay jitter detection is performed on the multiple paths, and the path delay of each path in the multiple paths is obtained, where the first path is the first device. At least one of the plurality of paths for transmitting data with the second device;
  • a path with a path delay that meets the preset delay requirement can be found in a path that does not perform data transmission, so that the path is used for data transmission, and the number of paths for data transmission is increased. , improve the efficiency of data transmission.
  • the determining the second path includes:
  • the path is determined as the second path; or,
  • the flexibility of the second path determination is improved by determining the second path in a different manner.
  • a path delay of each path of the multiple paths is a one-way delay of each path, or a round-trip delay RTT of each path.
  • the performing delay jitter detection on multiple paths includes:
  • the third path refers to a corresponding one of the plurality of paths except the first path
  • the path available for the type of network service area.
  • the delay jitter detection is triggered in different ways, which improves the flexibility of trigger delay jitter detection, so that the data transmission method can be applied to more scenarios.
  • the performing the delay jitter detection on the multiple paths, and obtaining the path delay of each path in the multiple paths including:
  • Delay jitter detection is performed in different ways by using a path for data transmission and a path for data transmission, thereby implementing delay jitter detection for multiple paths.
  • a fourth aspect a data transmitting apparatus is provided, the apparatus comprising at least one functional module, the at least one functional module for implementing the data transmitting method indicated by the first aspect and the possible implementation manner of any one of the first aspects And the same technical effects as the corresponding technical means in the first aspect can be obtained, and will not be described again here.
  • a fifth aspect a data transmitting apparatus is provided, the apparatus comprising at least one function module, wherein the at least one function module is configured to implement the data transmitting method indicated by the second aspect and the possible implementation manner of any one of the second aspect And the same technical effects as the corresponding technical means in the second aspect can be obtained, and will not be described again here.
  • a data transmitting apparatus comprising at least one functional module, the at least one function
  • the energy module is used to implement the data transmission method indicated by the foregoing third aspect and the possible implementation manner of any one of the third aspects, and the same technical effects as the corresponding technical means in the first aspect can be obtained, and details are not described herein again.
  • a first device including a processor; a memory for storing processor-executable instructions;
  • the processor is configured to perform the data transmission method performed by the first device in the first aspect, the second aspect or the third aspect, and can obtain the same technical effect.
  • a second device including a processor; a memory for storing processor executable instructions;
  • the processor is configured to perform the data transmission method performed by the second device in the first aspect or the second aspect described above, and can achieve the same technical effect.
  • Figure 1 is a schematic diagram of multipath transmission
  • 2A is an architectural diagram of data transmission using multiple paths according to an embodiment of the present disclosure
  • FIG. 2B is a schematic structural diagram of a terminal 200 according to an embodiment of the present disclosure.
  • FIG. 2C is a schematic structural diagram of a server 300 according to an embodiment of the present disclosure.
  • 3A is a flowchart of a data sending method according to an embodiment of the present disclosure
  • FIG. 3B is a schematic diagram of a QUIC protocol extended frame according to an embodiment of the present disclosure.
  • FIG. 5 is a flowchart of a data sending method according to an embodiment of the present disclosure.
  • FIG. 6 is a block diagram of a data sending apparatus according to an embodiment of the present disclosure.
  • FIG. 7 is a block diagram of a data transmitting apparatus according to an embodiment of the present disclosure.
  • FIG. 8 is a block diagram of a data transmitting apparatus according to an embodiment of the present disclosure.
  • FIG. 2A is a schematic diagram of data transmission by using multiple paths according to an embodiment of the present disclosure, involving a first device and a second device, where the first device and the second device may pass through a 3GPP network, a WiFi network, and/or other communication network. Data transfer.
  • the first device and the second device are each provided with multiple types of network interfaces, such as a WiFi interface, a 3G interface, a 4G interface, a 5G interface, and the like.
  • Different types of network interfaces correspond to different types of network service areas, for example, a WiFi interface corresponds to a WiFi network service area, and a 3G interface corresponds to a 3G network service area.
  • the first device and the second device can access the corresponding network service area through one or more network interfaces of the multiple network interfaces, thereby implementing single-path or multi-path data transmission between the devices, and FIG. 2 only takes two paths as Illustrated.
  • the maximum number of paths that can be used for data transmission between the first device and the second device depends on the number of network interfaces of the same type, for example, when both the first device and the second device have a WiFi interface and a 3G interface.
  • the two can use up to two paths for data transmission; when both the first device and the second device have a WiFi interface, a 3G interface, and a 4G interface, the two can use up to three paths for data transmission.
  • the network service area serves as a bridge between the first device and the second device for forwarding data sent by the first device or the second device to the communication peer.
  • the first device and the second device both support a multi-path transmission protocol for multi-path data transmission
  • the multi-path transmission protocol may be an MPTCP protocol or a User Datagram Protocol (UDP). Low latency UDP Internet Connection (QUIC), or other multipath transport protocol.
  • the multipath transmission protocol adds a multipath convergence layer (Convergence Layer) between the application layer and the transport layer of the TCP protocol.
  • the multipath aggregation layer of the transmitting end is used to divide the data of the application layer into multiple subflows, and then deliver the multiple substreams to the transport layer; the multipath convergence layer of the receiving end is used for the transport layer.
  • the submitted multiple substreams are aggregated and submitted to the application layer.
  • the different substreams are transmitted through different paths.
  • the multiple substreams are TCP substreams
  • the multiple substreams are UDP substreams.
  • the network interface belongs to the Internet Protocol (IP) layer, and corresponds to different network interfaces.
  • the first device and the second device can be configured with different IP addresses, and the WiFi interface and the 3G interface are respectively used.
  • the WiFi interface of the first device is configured with the IP address A1
  • the 3G interface is configured with the IP address A2
  • the WiFi interface of the second device is configured with the IP address B1
  • the 3G interface is configured with the IP address B2.
  • the first device and the second device can establish the path 1 through the respective WiFi interface and the WiFi network service area, and the two can also establish the path 2 through the respective 3G interface and the 3G network service area.
  • the transport layer of the first device allocates the sub-stream 1 of the two sub-flows to the WiFi interface corresponding to A1, and allocates the sub-flow 2 to the 3G interface corresponding to A2, thereby The path corresponding to the corresponding network interface is transmitted to the second device.
  • the first device and the second device can be used as the data receiving end or the data sending end, which is not limited in this example.
  • the first device may be provided as a terminal device, for example, the first device may be the terminal shown in FIG. 2B.
  • the second device may be provided as a server for providing network services to the first device, for example, the second device may be the server shown in FIG. 2C.
  • the first device may also be provided as a server, and the second device may also be provided as a terminal, which is not limited in this embodiment.
  • FIG. 3A to FIG. 5 are described by taking the first device as the transmitting end and the second device as the receiving end as an example, and do not perform the data transmission function on the first device and the second device. Limited.
  • FIG. 2B is a schematic structural diagram of a terminal 200 according to an embodiment of the present disclosure.
  • the terminal may be used to execute the first device in the data sending method provided in each embodiment of FIG. 3A to FIG. The process performed;
  • the terminal can be used to perform the process performed by the second device in the data transmitting method provided by the various embodiments of FIG. 3A to FIG. 5 described below.
  • the terminal 200 includes:
  • the terminal 200 may include an RF (Radio Frequency) circuit 110, a memory 120 including one or more computer readable storage media, an input unit 130, a display unit 140, a sensor 150, an audio circuit 160, and a WiFi (Wireless Fidelity, wireless).
  • the fidelity module 170 includes a processor 180 having one or more processing cores, and a power supply 190 and the like. It will be understood by those skilled in the art that the terminal structure shown in FIG. 2B does not constitute a limitation to the terminal, and may include more or less components than those illustrated, or a combination of certain components, or different component arrangements. among them:
  • the RF circuit 110 can be used for transmitting and receiving information or during a call, and receiving and transmitting signals. Specifically, after receiving downlink information of the base station, the downlink information is processed by one or more processors 180. In addition, the data related to the uplink is sent to the base station. .
  • the RF circuit 110 includes, but is not limited to, an antenna, at least one amplifier, a tuner, one or more oscillators, a Subscriber Identity Module (SIM) card, a transceiver, a coupler, an LNA (Low Noise Amplifier). , duplexer, etc.
  • RF circuitry 110 can also communicate with the network and other devices via wireless communication.
  • the none Line communication can use any communication standard or protocol, including but not limited to GSM (Global System of Mobile communication), GPRS (General Packet Radio Service), CDMA (Code Division Multiple Access) Divisional Multiple Access), WCDMA (Wideband Code Division Multiple Access), LTE (Long Term Evolution), e-mail, SMS (Short Messaging Service), and the like.
  • GSM Global System of Mobile communication
  • GPRS General Packet Radio Service
  • CDMA Code Division Multiple Access
  • WCDMA Wideband Code Division Multiple Access
  • LTE Long Term Evolution
  • e-mail Short Messaging Service
  • the memory 120 can be used to store software programs and modules, and the processor 180 executes various functional applications and data processing by running software programs and modules stored in the memory 120.
  • the memory 120 may mainly include a storage program area and a storage data area, wherein the storage program area may store an operating system, an application required for at least one function (such as a sound playing function, an image playing function, etc.), and the like; the storage data area may be stored according to The data created by the use of the terminal 200 (such as audio data, phone book, etc.) and the like.
  • memory 120 can include high speed random access memory, and can also include non-volatile memory, such as at least one magnetic disk storage device, flash memory device, or other volatile solid state storage device. Accordingly, memory 120 may also include a memory controller to provide access to memory 120 by processor 180 and input unit 130.
  • the input unit 130 can be configured to receive input numeric or character information and to generate keyboard, mouse, joystick, optical or trackball signal inputs related to user settings and function controls.
  • input unit 130 can include touch-sensitive surface 131 as well as other input devices 132.
  • Touch-sensitive surface 131 also referred to as a touch display or trackpad, can collect touch operations on or near the user (such as a user using a finger, stylus, etc., on any suitable object or accessory on touch-sensitive surface 131 or The operation near the touch-sensitive surface 131) and driving the corresponding connecting device according to a preset program.
  • the touch-sensitive surface 131 can include two portions of a touch detection device and a touch controller.
  • the touch detection device detects the touch orientation of the user, and detects a signal brought by the touch operation, and transmits the signal to the touch controller; the touch controller receives the touch information from the touch detection device, converts the touch information into contact coordinates, and sends the touch information.
  • the processor 180 is provided and can receive commands from the processor 180 and execute them.
  • the touch-sensitive surface 131 can be implemented in various types such as resistive, capacitive, infrared, and surface acoustic waves.
  • the input unit 130 can also include other input devices 132.
  • other input devices 132 may include, but are not limited to, one or more of a physical keyboard, function keys (such as volume control buttons, switch buttons, etc.), trackballs, mice, joysticks, and the like.
  • the display unit 140 can be used to display information input by the user or information provided to the user and various graphical user interfaces of the terminal 200, which can be composed of graphics, text, icons, video, and any combination thereof.
  • the display unit 140 may include a display panel 141.
  • the display panel 141 may be configured in the form of an LCD (Liquid Crystal Display), an OLED (Organic Light-Emitting Diode), or the like.
  • the touch-sensitive surface 131 may cover the display panel 141, and when the touch-sensitive surface 131 detects a touch operation thereon or nearby, it is transmitted to the processor 180 to determine the type of the touch event, and then the processor 180 according to the touch event The type provides a corresponding visual output on display panel 141.
  • touch-sensitive surface 131 and display panel 141 are implemented as two separate components to implement input and input functions, in some embodiments, touch-sensitive surface 131 can be integrated with display panel 141 for input. And output function.
  • Terminal 200 may also include at least one type of sensor 150, such as a light sensor, motion sensor, and other sensors.
  • the light sensor may include an ambient light sensor and a proximity sensor, wherein the ambient light sensor may adjust the brightness of the display panel 141 according to the brightness of the ambient light, and the proximity sensor may close the display panel 141 when the terminal 200 moves to the ear. / or backlight.
  • the gravity acceleration sensor can detect the magnitude of acceleration in each direction (usually three axes), and the magnitude and direction of gravity can be detected at rest, which can be used to identify the gesture of the mobile phone.
  • the audio circuit 160, the speaker 161, and the microphone 162 can provide an audio interface between the user and the terminal 200.
  • the audio circuit 160 can transmit the converted electrical data of the received audio data to the speaker 161 for conversion to the sound signal output by the speaker 161; on the other hand, the microphone 162 converts the collected sound signal into an electrical signal by the audio circuit 160. After receiving, it is converted into audio data, and then processed by the audio data output processor 180, transmitted to the terminal, for example, via the RF circuit 110, or outputted to the memory 120 for further processing.
  • the audio circuit 160 may also include an earbud jack to provide communication of the peripheral earphones with the terminal 200.
  • WiFi is a short-range wireless transmission technology
  • the terminal 200 can help users to send and receive emails, browse web pages, and access streaming media through the WiFi module 170, which provides wireless broadband Internet access for users.
  • FIG. 2B shows the WiFi module 170, it can be understood that it does not belong to the essential configuration of the terminal 200, and may be omitted as needed within the scope of not changing the essence of the present disclosure.
  • the processor 180 is the control center of the terminal 200, connecting various portions of the entire handset with various interfaces and lines, by running or executing software programs and/or modules stored in the memory 120, and recalling data stored in the memory 120, The various functions and processing data of the terminal 200 are performed to perform overall monitoring of the mobile phone.
  • the processor 180 may include one or more processing cores; preferably, the processor 180 may integrate an application processor and a modem processor, where the application processor mainly processes an operating system, a user interface, an application, and the like.
  • the modem processor primarily handles wireless communications. It can be understood that the above modem processor may not be integrated into the processor 180.
  • the terminal 200 also includes a power source 190 (such as a battery) for powering various components.
  • a power source 190 such as a battery
  • the power source can be logically coupled to the processor 180 through a power management system to manage functions such as charging, discharging, and power management through the power management system.
  • Power supply 190 may also include any one or more of a DC or AC power source, a recharging system, a power failure detection circuit, a power converter or inverter, a power status indicator, and the like.
  • the terminal 200 may further include a camera, a Bluetooth module, and the like, and details are not described herein again.
  • the display unit of the terminal is a touch screen display
  • the terminal further includes a memory, and one or more programs, wherein one or more programs are stored in the memory and configured to be processed by one or more Execution.
  • the one or more programs include a process performed by the first device in the data transmitting method provided by the various embodiments described below.
  • the second device is a terminal
  • the one or more programs include a process performed by the second device in the data transmission method provided by the various embodiments described below.
  • FIG. 2C is a schematic structural diagram of a server 300 according to an exemplary embodiment.
  • server 300 includes a processing component 322 that further includes one or more processors, and memory resources represented by memory 332 for storing instructions executable by processing component 322, such as an application.
  • An application stored in memory 332 may include one or more modules each corresponding to a set of instructions.
  • the processing component 322 is configured to execute an instruction to perform the process performed by the first device in the data transmitting method provided in FIGS. 3A and 4 described below.
  • the processing component 322 is configured to execute instructions to perform the processes performed by the second device in the data transmitting methods provided by Figures 3A and 4 described below.
  • Server 300 may also include a power component 326 configured to manage power of server 300, a wired or wireless network interface 350 configured to connect server 300 to the network, and an input/output (I/O) interface 358.
  • Server 300 can operate based on the operating system stored in memory 332, for example, Windows Server TM, Mac OS X TM , Unix TM, Linux TM, FreeBSD TM or similar.
  • FIG. 3A is a flowchart of a data sending method according to an embodiment of the present disclosure.
  • the interaction subject is a first device and a second device, and the following steps are included:
  • the second device detects whether the buffered data meets the path switching condition.
  • the multiple paths may be all paths that the first device and the second device can perform data transmission, or may be partial paths in all paths.
  • the second device caches the data received through the multiple paths to the buffer area, for example, buffers the received data packet to the buffer area. Since different paths have different delays during data transmission, when the path delays between different paths are different, the amount of data buffered by the second device may be too large, or the packets buffered by the buffer may be caused.
  • the serial number is in an out of order state.
  • the second device may determine whether the path switching needs to be performed according to the cached data, that is, the second device detects whether the cached data meets the preset switching condition, and the process may include the following two methods:
  • the second device detects whether the buffered data exceeds a preset threshold. If the buffered data exceeds a preset threshold, it determines that the cached data meets the preset switching condition.
  • the preset threshold may be preset by the second device according to the size of the buffer, for example, the preset threshold may be 80% of the maximum capacity of the buffer.
  • the second device detects whether the buffered data packet is in an out-of-order state; if the buffered data packet is in an out-of-sequence state, it determines that the cached data meets the preset switching condition.
  • the second device can detect whether the cached data packet is out of order by the following two methods:
  • Method 1 Detect whether the serial number of the buffered data packet is continuous, and if it is not continuous, the length of the serial number is not continuous.
  • the preset duration may be pre-configured or modified by the second device, which is not limited in this embodiment.
  • Method 2 Detect whether the serial number of the buffered data packet is continuous, and if not continuous, detect the number of consecutive serial numbers.
  • the preset number may be pre-configured or modified by the second device, which is not limited in this embodiment.
  • the first device sends 10 data packets to the second device, the sequence numbers are 1 to 10, and the sequence numbers of the data packets received by the second device are 1, 2, 3, 7, 9, and 10, and the sequence numbers are discontinuous.
  • the number refers to the number of data packets not received between sequence numbers 3 to 7 and sequence numbers 7 to 9, in which the number of discontinuous sequence numbers is 4.
  • the multi-path aggregation layer divides the data to be sent into a number of sub-flows corresponding to the multi-path, and the different sub-streams include data packets of different serial numbers.
  • the second device When the second device caches a certain number of consecutive serial data packets, the second device The multi-path aggregation layer delivers the consecutive serial number packets in the buffer area to the application layer, and if the serial number of the data packet does not reach the certain number, the received data packet is always cached in the buffer area, so when There are paths with excessive path delays in the multiple paths. When it occurs, the second device buffer overflows, or the packet sequence number of the buffer is out of order.
  • the first device sends a piece of voice data to the second device, and the first device packs the voice data into 10 data packets, the sequence number is 1 to 10, and now the 10 data packets are sent to the second device through two paths. It is assumed that the data packet whose sequence number is singular is divided into one sub-flow, and is sent to the second device through path 1, and the data packet with the serial number is divided into one sub-flow, and is sent to the second device through the path 2, and the second device
  • the multipath aggregation layer needs to be delivered to the application layer after receiving the 10 data packets. If the path delay of path 2 is much larger than the path delay of path 1, this may happen when the second device receives a packet with sequence numbers 1, 3, 5, 7, and 9 on path 1.
  • the second device sends a first path switching indication to the first device, where the first path switching indication is used to instruct the first device to perform delay jitter detection.
  • the second device may send the first path switching indication to the first device by using one of the multiple paths or multiple paths, which is not limited in this embodiment.
  • the QUIC protocol or the MPTCP protocol may be used for data transmission between the second device and the first device.
  • the first path switching indication may be carried in a specified field of the QUIC protocol, for example,
  • the specified field of the QUIC protocol may be a Flag field of a Common Header of the QUIC protocol, for example, the 0x40 indicator bit in the Flag field is used to indicate the first path switching indication, and when the indicator bit is 1, the first device is instructed to perform the Delay jitter detection. When the indication bit is 0, it indicates that the first device does not perform delay jitter detection.
  • the QUIC protocol can also be extended, for example, a new QUIC protocol extension frame is added, as shown in FIG.
  • the extended frame includes the following fields: a frame type field, a stream ID field, and a switch indication field.
  • the frame type is different from the existing frame type of the QUIC protocol, and the flow identifier is used to indicate the data substream to which the first path switch indication belongs, and the handover indication field is used to carry the first path switch indication.
  • the first path switching indication may be carried in a specified field of the MPTCP protocol, and the specified field of the MPTCP may be a Subtype field of the MPTCP.
  • the Subtype field can be redefined to carry the second path switching indication.
  • the data packet may be lost in the process of the transmission.
  • the second device may carry the first packet in multiple consecutive data packets.
  • the path switch indication is sent to the first device.
  • the second device may also send the reason information for performing the switching, for example, the buffer area is about to overflow.
  • the reason information for performing path switching may be carried in the handover indication field.
  • the first device After receiving the first path switching indication of the second device, the first device performs delay jitter detection on the multiple paths, and obtains a path delay of each path in the multiple paths.
  • the path delay of the path may be a unidirectional path delay of the path or a Round Trip Time (RTT) of the path for each path of the multiple paths.
  • RTT Round Trip Time
  • the one-way path delay refers to a time difference between a first time when the first device sends the data packet and a second time when the second device receives the data packet, where the process may be: the first device is in the second When the device sends a data packet, the first time of the data packet is recorded; the second device returns a feedback message according to the reception status of the data packet, and the first device And determining, according to the received feedback information of the second device, the second time that the second device receives the data packet.
  • the feedback information may include a second time when the second device receives the data packet.
  • the one-way path delay can more accurately reflect the delay of the first device sending data to the second device.
  • the received feedback information returned by the second device may not include the second time when the second device receives the data packet.
  • the first device may use the round-trip path delay of the path as the path delay of the path, for example, The first device may record the third time when the received feedback information is received, and the time difference between the third time and the first time is used as the path delay of the path. The delay difference between the third time and the first time is the round-trip path delay of the path.
  • the foregoing steps 301 to 303 are processes in which the first device performs delay jitter detection according to the first path switching indication of the second device.
  • the first device may also actively perform delay jitter detection, for example, A device performs delay jitter detection on a plurality of paths according to a preset period.
  • the preset period may be preset or modified by the first device, or may be pre-configured or modified by the second device, which is not limited in this embodiment. .
  • the first device determines the first path according to a path delay and a preset delay requirement of each path of the multiple paths.
  • the first path may be at least one of the multiple paths, and the first path may be determined from the multiple paths in the following two manners:
  • the first device directly determines the first path from the multiple paths according to the relationship between the path delay of each path and the preset delay requirement.
  • the first device detects whether the path delay of the path exceeds a first threshold, and if the path delay of the path exceeds a first threshold, determining the path The path delay does not meet the preset delay requirement, and the path is determined as the first path.
  • the first threshold may be determined by the path delay average value counted by the second device and configured to the first device.
  • the first device determines the first path from the multiple paths according to the delay difference of the path delay of each path and the preset delay requirement.
  • the first device determines a delay difference of each of the multiple paths according to a path delay of each path of the multiple paths; if the determined delay difference includes exceeding a second threshold
  • the path difference corresponding to the delay difference that exceeds the second threshold does not satisfy the preset delay requirement, and the path corresponding to the delay difference exceeding the second threshold is determined as the first path.
  • the second threshold may be determined by the average delay difference calculated by the second device and configured to the first device.
  • the process of determining the delay difference of each of the multiple paths may be: taking the difference of the path delays of the two adjacent paths in the order of the path delay from low to high, as the The delay difference between two adjacent paths.
  • the path delay of path 1 is 10ms (milliseconds)
  • the delay difference of path 2 is 13ms
  • the delay difference of path 3 is 15ms
  • the delay difference of path 4 is 30ms, according to the path.
  • the delay from low to high that is, the order of path 1 to path 4
  • obtains the delay difference between two adjacent paths and obtains the delay difference between path 1 and path 2 is 3 ms
  • the delay difference between path 2 and path 3 For 2ms, the delay difference corresponding to path 3 and path 4 is 15ms.
  • each of the obtained delay differences corresponds to two paths.
  • the two paths corresponding to the delay difference may be determined as The first path may be determined as the first path in the two paths corresponding to the delay difference.
  • the second threshold is 10 ms
  • the path difference between the path 3 and the path 4 is 15 ms
  • the path 3 and the path 4 are both determined as the first path.
  • the path 4 with a long path delay is determined as the first path.
  • the path 4 is determined as the first path, if there are other paths with longer path delays after the path 4, the path longer than the path delay of the path 4 is also determined to be the first path.
  • a path is determined as the first path.
  • the first device may mark the network interface corresponding to the first path as an unavailable state.
  • the above steps 303 to 304 are processes in which the first device determines the first path.
  • the first device determines a second path, where the second path is at least one path that is different from the first path among the multiple paths.
  • the second path may be all paths except the first path of the multiple paths.
  • the second path may also be multiple paths except the first path.
  • the first device may select one or more paths as the second path in the alternative paths except the first path.
  • the number of the multiple paths is 4, which are path 1 to path 4, respectively.
  • path 1 to path 3 may be determined as the second path, or may be in paths 1 to 3. Select one or two paths as the second path.
  • the process of selecting, by the first device, the at least one path from the candidate path as the second path may be: acquiring the path delay of each path in the candidate path, and the path delay is less than the third.
  • the path of the threshold is used as the second path, or the path delay is sorted from low to high, and the preset number of paths ranked first is used as the second path.
  • the third threshold and the preset number may be preset or modified by the first device, which is not limited in this embodiment.
  • the process of selecting the at least one path from the candidate path as the second path may also be: acquiring a path delay of the candidate path in the preset time period, and determining a delay of each path in the candidate path.
  • the floating value determines the path whose delay value is within the preset floating range as the second path.
  • the delay value of the path delay is used to indicate the severity of the path delay change of the path. The greater the delay floating value indicates the more severe the path delay change.
  • the first device may obtain the path delay of the candidate path multiple times in the preset time period, and the delay value of the path may be the difference between the maximum path delay and the minimum path delay of the multiple path delays of the path.
  • the value, or the variance value of the multiple path delays is not limited in this embodiment.
  • the preset floating range may be preset or modified by the first device, which is not limited in this embodiment.
  • the first device sends data to the second device by using the second path.
  • the first device After determining the first path, the first device stops sending data to the second device by using the first path, and sends data that needs to be sent subsequently to the second device by using the second path. For example, the first device divides the data to be sent into the number of substreams in the multipath aggregation layer according to the number of the second path, and uses a second path for each substream.
  • the first device stops transmitting data to the second device by using the first path, and may also be referred to as the first device abandoning the use of the first path to transmit data.
  • the data may be reused by using the first path.
  • the process may be: in the process of sending data to the second device by using only the second path, the multiple The path performs delay jitter detection to obtain a path delay of each path in the multiple paths. If the path delay of the first path meets the preset delay requirement, the data is sent to the second device on the first path.
  • the path delay of the first path meets the preset delay requirement, which means that the path delay of the first path is smaller than the first threshold.
  • the first device may periodically The first path performs the delay jitter detection, that is, the path delay of the first path is obtained.
  • the path delay of the first path is less than the first threshold, determining that the first path meets the preset delay requirement, The first path can be reused to transfer data.
  • the path delay of the first path meets the preset delay requirement, that is, the delay difference corresponding to the first path is smaller than the second Threshold
  • the first device may periodically perform delay jitter detection on the multiple paths (including the first path and the second path), and determine each of the multiple paths.
  • a delay difference of the path the process is the same as the process of determining the delay difference of each of the multiple paths in the step 304; if the delay difference corresponding to the first path is less than the second threshold, determining the first path
  • the first path can be reused to transmit data by meeting the preset delay requirement.
  • the delay difference corresponding to the first path is smaller than the second threshold.
  • the two delay differences corresponding to the first path are smaller than the second threshold.
  • the delay difference corresponding to the two paths of a path having a large path delay is smaller than the second threshold. For example, if the first path is path 3 in the example of step 304, the delay difference between the first path and the path 2 is When the second threshold is smaller than the second threshold, the path delay of the first path is determined to meet the preset delay requirement.
  • the second device when detecting that the cached data meets the path switching condition, notifies the first device to perform delay jitter detection of the path by using the path switching indication, and the first device detects the delay jitter detection result from the current Determining, by the plurality of paths for performing data transmission, a first path that does not satisfy the preset path delay and affecting data transmission efficiency, and abandoning transmission on the first path, and transmitting data through at least one path other than the first path, thereby improving The efficiency of data transmission.
  • the embodiment shown in FIG. 3A is that the first device performs delay jitter detection on multiple paths that are currently performing data transmission according to the path switching indication of the second device, and further excludes presets in multiple paths according to the detection result. The process of extending the requested path to send data to the second device through one or more paths in the remaining path.
  • the second device may notify the first device to perform at least one second path for subsequent data transmission by using the path switching indication.
  • a device transmits data on the second path, which is detailed in the embodiment provided in FIG.
  • FIG. 4 is a flowchart of a data sending method according to an embodiment of the present disclosure.
  • the interaction subject is a first device and a second device, and the following steps are included:
  • the second device detects whether the cached data meets the path switching condition.
  • This step is the same as the above step 301, and will not be described herein.
  • the second device determines the first path from the multiple paths, where the first path is a path that causes the buffered data to meet the path switching condition.
  • the first device may notify the second device of the sequence number of the data packet to be transmitted on each path in advance, and the second device establishes each path and the path to be transmitted.
  • the second device may determine, as the first path, a path that causes the sequence number of the buffered data packet to be discontinuous when the cached data meets the path switching condition, for example, the second device is configured according to the sequence number of the buffered data packet.
  • the sequence number of the unreceived data packet may be determined, and according to the foregoing correspondence, the path to which the unreceived data packet belongs is determined, and the path is determined as the first path.
  • the second device may determine all the paths that cause the sequence number to be discontinuous as the first path, or the sequence number in all the paths that cause the sequence number to be discontinuous.
  • the path with the largest number of discontinuities is determined as the first path.
  • the first device sends 10 data packets to the second device, the serial numbers are 1 to 10, and the sequence numbers of the data packets received by the second device are 1, 2, 3, 7, 9, 10, wherein the serial number 3 To 7 and the sequence number between 7 and 9 are not continuous. If the packets with sequence numbers 4 to 6 need to be sent through path 1, the sequence The data packet numbered 8 needs to be sent through path 3. If the number of consecutive numbers caused by path 1 is 3, and the number of consecutive numbers caused by path 3 is 1, the path 1 can be determined as the first path.
  • the second device sends a second path switching indication to the first device by using the second path, where the second path is at least one of the multiple paths except the first path.
  • the second path may be all paths except the first path of the multiple paths. In the second implementation manner, the second path may also be multiple paths except the first path. One or more paths in the alternate path.
  • the two implementations are the same as the two implementations in the above step 3056, and are not described herein.
  • the second device sends the second path switching indication by using the second path.
  • the QUIC protocol or the MPTCP protocol may be used for data transmission between the second device and the first device.
  • the second path switching indication may be carried in a specified field of the QUIC protocol, for example,
  • the specified field of the QUIC protocol may be a Flag field of a Common Header of the QUIC protocol, for example, the 0x40 indicator bit in the Flag field is used to indicate the second path switching indication, and when the indicator bit is 1, the first device is instructed to continue.
  • the data is transmitted using the corresponding path, and when the indication bit is 0, the first device is instructed to abandon the use of the corresponding path to transmit data. For example, for any of the plurality of paths, if the indication bit of the first device in the data packet received on the path changes from 1 to 0, the first device abandons using the path to transmit data.
  • the QUIC protocol can also be extended, for example, by adding a QUIC protocol extension frame, such as an extension frame as shown in FIG. 3B.
  • the extended frame includes the following fields: a frame type field, a stream ID field, and a switch indication field.
  • the frame type is different from the existing frame type of the QUIC protocol, and the flow identifier is used to indicate the data substream to which the first path switch indication belongs, and the handover indication field is used to carry the second path switch indication.
  • the first path switching indication may be carried in a specified field of the MPTCP protocol, and the specified field of the MPTCP may be a Subtype field of the MPTCP.
  • the Subtype field can be redefined to carry the second path switching indication.
  • steps 402 and 403 are processes in which the second device sends a path switching indication to the first device.
  • the first device receives the second path switching indication of the second device in the at least one of the multiple paths, the path that does not receive the second path switching indication in the multiple paths is determined as the first path, where At least one path is determined to be the second path.
  • the first device may mark the network interface corresponding to the first path as an unavailable state to indicate subsequent use of the first path to transmit data.
  • the first device sends data to the second device by using the second path.
  • step 306 This step is the same as step 306 above, and will not be described here.
  • the first device may re-use the first path to transmit data after the first path meets the preset delay requirement, and the process is re-used with the foregoing.
  • the process of transferring data by path is the same, and will not be described here.
  • the second device when detecting that the cached data satisfies the path switching condition, finds a path that affects the data transmission efficiency from multiple paths of the current data transmission according to the data cache condition, and passes the path.
  • the handover indication notifies the first device to abandon the transmission on the path, so that the first device performs data transmission only on the path with the remaining path delay, thereby improving the efficiency of data transmission.
  • FIG. 3A and FIG. 4 above are introduced from the perspective of the number of paths for data transmission between the first device and the second device, and the first device performs the partial path with the second device. Data transfer process In addition, the number of paths for data transmission can also be increased. For the detailed process, refer to the embodiment provided in FIG. 5.
  • FIG. 5 is a flowchart of a data sending method according to an embodiment of the present disclosure. Referring to FIG. 5, the following steps are included:
  • the first device In the process of performing data transmission by using the first path and the second device, the first device performs delay jitter detection on multiple paths, and obtains a path delay of each path in the multiple paths, where the first path is multiple At least one path in the path.
  • the multiple paths are all paths that can be used for data transmission between the first device and the second device, and the first path is a partial path among the multiple paths.
  • the delay difference between each two paths in the multiple paths is the one-way delay difference of each two paths, or the RTT delay difference of the round-trip delay, and the description of the one-way delay difference and the RTT delay difference.
  • the first device triggering delay jitter detection on multiple paths may include the following two situations:
  • the first device performs delay jitter detection on multiple paths according to a preset period.
  • the preset period may be pre-configured or modified by the first device or the second device, which is not limited in this embodiment.
  • the first path when the first device detects that the multiple paths include the third path, the first path performs delay jitter detection on the multiple paths, and the third path refers to a corresponding type of the multiple paths except the first path.
  • the path available to the network service area.
  • Different types of network interfaces of the first device correspond to different types of network service areas, and each network interface can establish a path with the second device, and the geographical location of the first device is within the corresponding network service area. A path is successfully established between the corresponding network interface and the second device.
  • the geographical location of the first device when the geographical location of the first device is in the corresponding network service area and can access the service area, it indicates that the network service area is available.
  • the WiFi interface corresponds to the WiFi network service area
  • the 3G interface corresponds to the 3G network service area.
  • the first device can establish a WiFi connection with the second device.
  • the 3G network service area is available, the first device can Establish a 3G connection with the second device.
  • the first device may detect whether the network service area of the corresponding type of the path is available, and if the network service area of the corresponding type of the path is available, determine the path as The third path. For example, if the first device does not currently establish a WiFi connection with the second device, when the location of the first device moves to a certain WiFi network service area, if the first device detects that the WiFi service area has been accessed, the The path corresponding to the WiFi interface is determined to be the third path.
  • the example defaults that the first device has enabled the WiFi function.
  • the process of the first device performing delay jitter detection on multiple paths may be: the first device determines the first according to the sending time of the data packet sent on the first path and the receiving feedback information of the second device to the data packet. Path delay of the path; for a path other than the first path of the multiple paths, the preset detection packet is sent on the path; according to the preset detection packet sending time and the second device receiving feedback information of the preset detection packet, Determine the path delay of the path. It should be noted that, because the first device has not used the path except the first path to transmit data, the first device may obtain the path delay of the path other than the first path by using the preset detection packet.
  • the preset detection packet may be a ping packet or other detection packet, which is not limited in this embodiment.
  • the first device determines a second path, where the second path is at least one path of the multiple paths except the first path and the corresponding path delay meets a preset delay requirement.
  • the process of determining, by the first device, the second path from the multiple paths may include the following two methods:
  • the second path is determined from the multiple paths according to the path delay of the path and the preset delay requirement.
  • the path delay of the path is less than the first threshold, it is determined that the path meets the preset delay requirement, and the path is determined to be the second path.
  • the method and the above step 304 The first way to determine whether the first path is included in multiple paths is the same, and will not be described here.
  • the second path is determined from the multiple paths according to the delay difference of the path delay of each path and the preset delay requirement.
  • the first device determines a delay difference between each of the plurality of paths according to a path delay of each of the plurality of paths; and the plurality of paths except the first path A path, if the delay difference corresponding to the path is less than the second threshold, determining that the path meets the preset delay requirement, and determining the path as the second path.
  • This method is the same as the second method of determining whether the first path is included in the multiple paths in the foregoing step 304, and details are not described herein.
  • the first device sends data to the second device by using the first path and the second path.
  • the first device may set the state of the network interface to an available state, thereby using the second path to the second device. send data.
  • the path is used for data transmission, thereby being able to perform the data according to the path.
  • the actual situation of the delay flexibly adjusts the path of data transmission and improves the efficiency of data transmission.
  • FIG. 6 is a block diagram of a data sending apparatus according to an embodiment of the present disclosure. Referring to FIG. 6, the first determining module 601, the second determining module 602, the sending module 603, and the detecting module 604 are included.
  • the first determining module 601 is configured to perform the process of determining the second path in the foregoing step 304 or 404;
  • the sending module 602 is configured to perform the process of step 306 or 405 above;
  • the detecting module 603 is configured to perform the process of step 303 above;
  • the second determining module 604 is configured to perform the process of determining the first path in step 305 or 404 above.
  • FIG. 7 is a block diagram of a data transmitting apparatus according to an embodiment of the present disclosure.
  • the detecting module 701 and the sending module 702 are included.
  • the detection module 701 includes a first detection sub-module 7011 and a second detection sub-module 7012.
  • the sending module 702 includes a determining submodule 7021 and a transmitting submodule 7022.
  • the detecting module 701 is configured to perform the process of step 301 or 401 described above;
  • the first detecting sub-module 7011 is configured to perform a correlation process of detecting whether the buffered data amount exceeds a preset threshold in the above step 301 or 401, and the second detecting sub-module 7012 is configured to perform the detecting the cached data in the above step 301 or 401. Whether the package is in an out of order state.
  • the transmitting module 702 is configured to perform the process of step 302 above; or the determining sub-module 7021 of the transmitting module 702 is configured to perform the process of step 402 above, and the transmitting sub-module 7022 is configured to perform the process of step 403 above.
  • FIG. 8 is a block diagram of a data transmitting apparatus according to an embodiment of the present disclosure. Referring to FIG. 8, the method includes: a detecting module 801, a determining module 802, and a sending module 803.
  • the detecting module 801 is configured to perform the process of step 501 described above;
  • the determining module 802 is configured to perform the process of step 502 above;
  • the transmitting module 803 is configured to perform the process of step 503 above.
  • the data sending apparatus provided by the foregoing embodiment only uses the above functional modules when transmitting data.
  • the division is exemplified.
  • the above function assignment can be completed by different functional modules as needed, that is, the internal structure of the device is divided into different functional modules to complete all or part of the functions described above.
  • the data transmitting apparatus and the data sending method embodiment provided by the foregoing embodiments are in the same concept, and the specific implementation process is described in detail in the method embodiment, and details are not described herein again.
  • a person skilled in the art may understand that all or part of the steps of implementing the above embodiments may be completed by hardware, or may be instructed by a program to execute related hardware, and the program may be stored in a computer readable storage medium.
  • the storage medium mentioned may be a read only memory, a magnetic disk or an optical disk or the like.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The present disclosure provides a data transmission method and device, belonging to the technical field of communications. The method comprises: determining a first path, wherein the first path is at least one of a plurality of paths for transmitting data between a first device and a second device, and the delay of the data transmission performed by the first path does not meet a preset delay requirement; determining a second path, wherein the second path is at least one of the plurality of paths, and the second path is different from the first path; and transmitting data to the second device through the second path. In the process of data transmission using the plurality paths, a first path that does not meet the preset delay requirement can be determined from the plurality of paths, and the transmission is abandoned on this path, but data transmission is performed on at least one path of the remaining paths of which delay is small, thereby improving the efficiency of data transmission.

Description

数据发送方法及装置Data transmission method and device 技术领域Technical field
本公开涉及通信技术领域,特别涉及一种数据发送方法及装置。The present disclosure relates to the field of communications technologies, and in particular, to a data transmitting method and apparatus.
背景技术Background technique
传统的移动互联网通信采用标准传输控制协议(Transmission Control Protocol,TCP)进行数据传输,在标准TCP中,终端和服务器之间只使用一条路径进行数据传输。而随着不同无线接入技术的相互融合,终端具有多种网络接口,例如WiFi接口和3G接口等,通过该多种网络接口终端和服务器之间可以采用多条路径进行数据传输,如果仍然采用标准TCP协议只使用一条路径进行数据传输,就会浪费其他路径资源。Traditional mobile Internet communication uses the Transmission Control Protocol (TCP) for data transmission. In standard TCP, only one path is used between the terminal and the server for data transmission. With the integration of different wireless access technologies, the terminal has multiple network interfaces, such as a WiFi interface and a 3G interface. Through the multiple network interfaces, the terminal and the server can use multiple paths for data transmission, if still used. The standard TCP protocol uses only one path for data transmission, which wastes other path resources.
目前,国际互联网工程任务组(The Internet Engineering Task Force,IETF)确定了一种用于进行多径传输的多径TCP协议(Multipath TCP,MPTCP),该协议的核心思想是在应用层和传输层之间加入支持多路径传输的Multipath TCP层,以实现多路径传输。如图1所示,以终端向服务器发送数据为例,终端的Multipath TCP层可以将应用层传输的数据分为多个TCP子流,不同TCP子流通过不同网络接口发送至服务器,服务器将不同的TCP子流在Multipath TCP层进行汇聚后递交至应用层,从而实现终端和服务器之间的多路径传输。At present, the Internet Engineering Task Force (IETF) has determined a multipath TCP protocol (Multipath TCP, MPTCP) for multipath transmission. The core idea of this protocol is at the application layer and transport layer. Join the Multipath TCP layer that supports multipath transmission to achieve multipath transmission. As shown in Figure 1, the terminal sends data to the server as an example. The Multipath TCP layer of the terminal can divide the data transmitted by the application layer into multiple TCP sub-flows. Different TCP sub-flows are sent to the server through different network interfaces, and the server will be different. The TCP substream is aggregated at the Multipath TCP layer and delivered to the application layer to implement multipath transmission between the terminal and the server.
在实现本公开的过程中,发明人发现现有技术至少存在以下问题:In carrying out the process of the present disclosure, the inventors have found that the prior art has at least the following problems:
实际数据传输过程中,并不是所有场景都适合采用多路径传输,比如,当多条路径中不同路径之间的时延差过大时,使得被分配至不同TCP子流的数据的传输时延差过大,从而造成数据的严重阻塞,影响数据的传输效率。In the actual data transmission process, not all scenarios are suitable for multi-path transmission. For example, when the delay difference between different paths in multiple paths is too large, the transmission delay of data allocated to different TCP sub-flows is made. The difference is too large, which causes serious blockage of data and affects the efficiency of data transmission.
发明内容Summary of the invention
为了解决现有技术的问题,本公开实施例提供了一种数据发送方法及装置。所述技术方案如下:In order to solve the problems of the prior art, embodiments of the present disclosure provide a data sending method and apparatus. The technical solution is as follows:
第一方面,提供了一种数据发送方法,应用于第一设备,所述方法包括:The first aspect provides a data sending method, which is applied to a first device, where the method includes:
确定第一路径,所述第一路径为第一设备与第二设备之间用于传输数据的多条路径中的至少一条,所述第一路径所进行的数据传输的时延不满足预设时延要求;Determining a first path, where the first path is at least one of a plurality of paths for transmitting data between the first device and the second device, and the delay of data transmission performed by the first path does not meet the preset Delay requirement
确定第二路径,所述第二路径为所述多条路径中的至少一条,所述第二路径不同于所述第一路径;Determining a second path, the second path being at least one of the plurality of paths, the second path being different from the first path;
通过所述第二路径,向所述第二设备发送数据。Transmitting data to the second device through the second path.
通过在采用多路径进行数据传输的过程中,能够从多条路径中确定出不满足预设时延要求的第一路径,并放弃在该路径上进行传输,而采用在剩余的路径时延较小的至少一个路径上进行数据传输,提高了数据传输的效率。In the process of data transmission by using multiple paths, the first path that does not satisfy the preset delay requirement can be determined from multiple paths, and the transmission on the path is abandoned, and the delay in the remaining path is adopted. Small data transmission on at least one path improves the efficiency of data transmission.
在一种可能的实现方式中,所述确定第一路径,包括:In a possible implementation manner, the determining the first path includes:
对所述多条路径进行时延抖动检测,得到所述多条路径中每条路径的路径时延;Performing delay jitter detection on the multiple paths to obtain a path delay of each of the multiple paths;
根据所述多条路径中每条路径的路径时延和所述预设时延要求,确定所述第一路径。 Determining the first path according to a path delay of each path of the multiple paths and the preset delay requirement.
通过对路径进行时延抖动检测,并根据得到的各个路径的路径时延和预设时延要求之间的关系,实现确定第一路径的过程。The process of determining the first path is implemented by performing delay jitter detection on the path and determining the relationship between the path delay of each path and the preset delay requirement.
在一种可能的实现方式中,所述根据所述多条路径中每条路径的路径时延和所述预设时延要求,确定所述第一路径,包括:In a possible implementation, the determining the first path according to the path delay of each path of the multiple paths and the preset delay requirement includes:
对于所述多条路径中的每条路径,如果所述路径的路径时延超过第一阈值,确定所述路径的路径时延不满足所述预设时延要求,将所述路径确定为所述第一路径;或,For each of the multiple paths, if the path delay of the path exceeds the first threshold, determining that the path delay of the path does not meet the preset delay requirement, determining the path as The first path; or,
根据所述多条路径中每条路径的路径时延,确定所述多条路径中每两条路径的时延差;如果确定的时延差中包括超过第二阈值的时延差,确定所述超过第二阈值的时延差对应路径的路径时延不满足所述预设时延要求,将所述超过第二阈值的时延差所对应的路径确定为所述第一路径。Determining a delay difference of each of the plurality of paths according to a path delay of each of the plurality of paths; if the determined delay difference includes a delay difference exceeding a second threshold, determining The path delay of the path corresponding to the delay difference exceeding the second threshold does not satisfy the preset delay requirement, and the path corresponding to the delay difference exceeding the second threshold is determined as the first path.
通过路径时延和路径时延差两种不同的方式来确定第一路径,提高了确定第一路径的灵活性。The first path is determined by two different ways: path delay and path delay difference, which improves the flexibility of determining the first path.
在一种可能的实现方式中,所述对所述多条路径进行时延抖动检测,包括:In a possible implementation, the performing delay jitter detection on the multiple paths includes:
根据预设周期对所述多条路径进行时延抖动检测;或,当接收到所述第二设备的第一路径切换指示时,对所述多条路径进行时延抖动检测,所述第一路径切换指示用于指示所述第一设备对所述多条路径进行时延抖动检测。Performing delay jitter detection on the multiple paths according to a preset period; or, when receiving the first path switching indication of the second device, performing delay jitter detection on the multiple paths, where the first The path switching indication is used to instruct the first device to perform delay jitter detection on the multiple paths.
本实施例中,第一设备能够主动进行时延抖动检测,或者根据第二设备的指示进行时延抖动检测,提高了时延抖动检测的灵活性。In this embodiment, the first device can actively perform delay jitter detection, or perform delay jitter detection according to the indication of the second device, thereby improving flexibility of delay jitter detection.
在一种可能的实现方式中,所述多条路径中每条路径的路径时延为所述每条路径的单向时延,或者为所述每条路径的往返时延RTT。通过采用不同形式的路径时延,提高了路径时延检测的灵活性。In a possible implementation manner, a path delay of each path of the multiple paths is a one-way delay of each path, or a round-trip delay RTT of each path. The flexibility of path delay detection is improved by adopting different forms of path delay.
在一种可能的实现方式中,所述确定第一路径,包括:In a possible implementation manner, the determining the first path includes:
如果在所述多条路径中的至少一条路径中接收到所述第二设备的第二路径切换指示,将所述多条路径中没有接收到所述第二路径切换指示的路径确定为所述第一路径;If the second path switching indication of the second device is received in the at least one of the multiple paths, the path that does not receive the second path switching indication in the multiple paths is determined as the First path;
相应地,所述确定第二路径,包括:将所述至少一条路径确定为所述第二路径。Correspondingly, the determining the second path comprises: determining the at least one path as the second path.
第一设备直接根据第二设备的指示,确定后续能够进行数据传输的第二路径,提高了第一设备确定第二路径的效率。The first device directly determines, according to the indication of the second device, a second path that can subsequently perform data transmission, and improves efficiency of determining, by the first device, the second path.
在一种可能的实现方式中,所述通过所述第二路径,向所述第二设备发送数据之后,所述方法还包括:In a possible implementation, after the sending, by the second path, data to the second device, the method further includes:
对所述多条路径进行时延抖动检测,得到所述多条路径中每条路径的路径时延;如果所述第一路径的路径时延满足所述预设时延要求,则通过所述第一路径向所述第二设备发送数据;其中,所述第一路径的路径时延满足预设时延要求是指所述第一路径的路径时延小于第一阈值,或,所述第一路径对应的时延差小于第二阈值。通过在第一路径的路径时延满足预设要求时,能够重新启用第一路径进行数据传输,提高了数据传输的灵活性。Performing delay jitter detection on the multiple paths to obtain a path delay of each of the multiple paths; if the path delay of the first path meets the preset delay requirement, The first path sends data to the second device, where the path delay of the first path meets the preset delay requirement, where the path delay of the first path is less than a first threshold, or The delay difference corresponding to a path is less than the second threshold. When the path delay of the first path meets the preset requirement, the first path can be re-enabled for data transmission, which improves the flexibility of data transmission.
第二方面,提供了一种数据发送方法,应用于第二设备,所述方法包括:A second aspect provides a data sending method, which is applied to a second device, where the method includes:
在采用多条路径与第一设备进行数据传输的过程中,检测缓存的数据是否满足路径切换条件;In the process of using multiple paths to perform data transmission with the first device, detecting whether the cached data meets the path switching condition;
如果所述缓存的数据满足所述路径切换条件,则向所述第一设备发送路径切换指示, 由所述第一设备根据所述路径切换指示在所述多条路径的部分路径上发送数据。Sending a path switching indication to the first device if the cached data meets the path switching condition, Transmitting, by the first device, data on a partial path of the plurality of paths according to the path switching indication.
通过在缓存的数据满足路径切换条件时,向第一设备发送路径切换指示,使得第一设备能够根据路径切换指示停止在路径时延不满足预设时延要求的路径上进行数据传输,从而提高了数据传输效率。When the buffered data meets the path switching condition, the path switching indication is sent to the first device, so that the first device can stop the data transmission on the path whose path delay does not meet the preset delay requirement according to the path switching indication, thereby improving Data transmission efficiency.
在一种可能的实现方式中,所述检测缓存的数据是否满足预设切换条件,包括:In a possible implementation, the detecting whether the buffered data meets a preset switching condition includes:
检测缓存的数据量是否超过预设阈值;如果所述缓存的数据量超过所述预设阈值,则确定所述缓存的数据满足所述预设切换条件;或,Determining whether the buffered data amount exceeds a preset threshold; if the buffered data amount exceeds the preset threshold, determining that the cached data meets the preset switching condition; or
检测缓存的数据包是否处于失序状态;如果所述缓存的数据包处于失序状态,则确定所述缓存的数据满足所述预设切换条件。Detecting whether the cached data packet is in an out-of-sequence state; if the cached data packet is in an out-of-order state, determining that the cached data meets the preset switching condition.
在一种可能的实现方式中,所述检测缓存的数据包是否处于失序状态,包括:In a possible implementation manner, the detecting whether the buffered data packet is in an out-of-order state includes:
如果所述缓存的数据包的序号不连续、且序号不连续的时长超过预设时长,确定所述缓存的数据包处于失序状态;或,如果所述缓存的数据包的序号不连续的数目超过预设数目,确定所述缓存的数据包处于失序状态。If the serial number of the cached data packet is not continuous, and the duration of the serial number discontinuity exceeds a preset duration, determining that the cached data packet is in an out-of-sequence state; or, if the serial number of the cached data packet is discontinuous The preset number determines that the cached data packet is out of order.
通过采用不同的条件来确定缓存的数据是否满足预设切换条件,提高了触发路径切换的灵活性。The flexibility of the trigger path switching is improved by adopting different conditions to determine whether the cached data satisfies the preset switching condition.
在一种可能的实现方式中,所述向所述第一设备发送路径切换指示,包括:In a possible implementation manner, the sending, by the first device, a path switching indication includes:
向所述第一设备发送第一路径切换指示,所述第一路径切换指示用于指示所述第一设备对所述多条路径进行时延抖动检测。And sending, by the first device, a first path switching indication, where the first path switching indication is used to instruct the first device to perform delay jitter detection on the multiple paths.
在一种可能的实现方式中,所述向所述第一设备发送路径切换指示,包括:In a possible implementation manner, the sending, by the first device, a path switching indication includes:
从所述多条路径中确定第一路径,所述第一路径为导致所述缓存的数据满足路径切换条件的路径;通过第二路径向所述第一设备发送第二路径切换指示,所述第二路径为所述多条路径中的至少一条,所述第二路径不同于所述第一路径。通过直接指示第一设备后续进行数据传输的第二路径,使得第一设备能够直接在确定的第二路径上传输数据,提高了数据发送的效率。Determining, by the plurality of paths, a first path, where the first path is a path that causes the cached data to meet a path switching condition; sending, by using the second path, a second path switching indication to the first device, where The second path is at least one of the plurality of paths, and the second path is different from the first path. By directly indicating the second path of the data transmission by the first device, the first device can directly transmit data on the determined second path, thereby improving the efficiency of data transmission.
在一种可能的实现方式中,所述从所述多条路径中确定第一路径,包括:In a possible implementation, the determining the first path from the multiple paths includes:
根据在所述多条路径中每条路径的接收的数据包,将导致缓存的数据包的序号不连续的路径确定为所述第一路径。A path that causes the serial number of the buffered data packet to be discontinuous is determined as the first path according to the received data packet of each of the plurality of paths.
在一种可能的实现方式中,所述向所述第一设备发送路径切换指示包括:In a possible implementation, the sending, by the first device, the path switching indication includes:
将所述路径切换指示携带在QUIC协议的指定字段内发送至所述第一设备;或,Transmitting the path switch indication to the first device in a specified field of the QUIC protocol; or
将所述路径切换指示携带在QUIC协议的扩展帧内发送至所述第一设备;或,Transmitting the path switch indication to the first device in an extended frame of the QUIC protocol; or
将所述路径切换指示携带在MPTCP协议的指定字段内发送至所述第一设备。And transmitting the path switch indication to the first device in a specified field of the MPTCP protocol.
通过对应不同协议,定义发送路径切换指示的方式,使得该数据发送方法能够适用于多种多路径协议。The manner of transmitting the path switching indication is defined by corresponding to different protocols, so that the data transmitting method can be applied to multiple multi-path protocols.
第三方面,提供了一种数据发送方法,应用于第一设备,所述方法包括:A third aspect provides a data sending method, which is applied to a first device, where the method includes:
在采用第一路径与第二设备进行数据传输的过程中,对多条路径进行时延抖动检测,得到所述多条路径中每条路径的路径时延,所述第一路径为第一设备与第二设备之间用于传输数据的所述多条路径中的至少一条;During the data transmission by using the first path and the second device, the delay jitter detection is performed on the multiple paths, and the path delay of each path in the multiple paths is obtained, where the first path is the first device. At least one of the plurality of paths for transmitting data with the second device;
确定第二路径,所述第二路径为所述多条路径中除所述第一路径以外的、且对应路径 时延满足预设时延要求的至少一条路径;Determining a second path, where the second path is other than the first path and corresponding path At least one path that meets the preset delay requirement;
通过所述第一路径和所述第二路径,向所述第二设备发送数据。Transmitting data to the second device through the first path and the second path.
通过对多条路径进行路径时延检测,可以在未进行数据传输的路径中及时发现路径时延满足预设时延要求的路径,从而采用该路径进行数据传输,增加了进行数据传输的路径数目,提高了数据传输的效率。By performing path delay detection on multiple paths, a path with a path delay that meets the preset delay requirement can be found in a path that does not perform data transmission, so that the path is used for data transmission, and the number of paths for data transmission is increased. , improve the efficiency of data transmission.
在一种可能的实现方式中,所述确定第二路径,包括:In a possible implementation manner, the determining the second path includes:
对于所述多条路径中除所述第一路径以外的路径,如果所述路径的路径时延小于第一阈值,则确定所述路径的路径时延满足所述预设时延要求,将所述路径确定为所述第二路径;或,If the path delay of the path is smaller than the first threshold, determining that the path delay of the path meets the preset delay requirement, The path is determined as the second path; or,
根据所述多条路径中每条路径的路径时延,确定所述多条路径中每两条路径之间的时延差;对于所述多条路径中除所述第一路径以外的路径,如果所述路径对应的时延差小于第二阈值,则确定所述路径的路径时延满足所述预设时延要求,将所述路径确定为所述第二路径。Determining a delay difference between each of the plurality of paths according to a path delay of each of the plurality of paths; and for a path other than the first path among the plurality of paths, If the delay difference corresponding to the path is less than the second threshold, determining that the path delay of the path meets the preset delay requirement, and determining the path as the second path.
通过采用不同的方式来确定第二路径,提高了第二路径确定的灵活性。The flexibility of the second path determination is improved by determining the second path in a different manner.
在一种可能的实现方式中,所述多条路径中每条路径的路径时延为所述每条路径的单向时延,或者为所述每条路径的往返时延RTT。In a possible implementation manner, a path delay of each path of the multiple paths is a one-way delay of each path, or a round-trip delay RTT of each path.
在一种可能的实现方式中,所述对多条路径进行时延抖动检测,包括:In a possible implementation manner, the performing delay jitter detection on multiple paths includes:
根据预设周期对所述多条路径进行时延抖动检测;或,Performing delay jitter detection on the plurality of paths according to a preset period; or
当检测到所述多条路径中包括第三路径时,对所述多条路径进行时延抖动检测,所述第三路径是指所述多条路径中除所述第一路径以外的、对应类型的网络服务区可用的路径。When detecting that the plurality of paths include the third path, performing delay jitter detection on the multiple paths, where the third path refers to a corresponding one of the plurality of paths except the first path The path available for the type of network service area.
通过不同的方式触发时延抖动检测,提高了触发时延抖动检测的灵活性,使得该数据发送方法能够适用于更多的场景。The delay jitter detection is triggered in different ways, which improves the flexibility of trigger delay jitter detection, so that the data transmission method can be applied to more scenarios.
在一种可能的实现方式中,所述对所述多条路径进行时延抖动检测,得到所述多条路径中每条路径的路径时延,包括:In a possible implementation, the performing the delay jitter detection on the multiple paths, and obtaining the path delay of each path in the multiple paths, including:
根据在所述第一路径上发送的数据包的发送时间以及所述第二设备对所述数据包的接收反馈信息,确定所述第一路径的路径时延;Determining a path delay of the first path according to a sending time of the data packet sent on the first path and receiving feedback information of the data packet by the second device;
对于所述多条路径中除所述第一路径以外的路径,在所述路径上发送预设检测包;根据所述预设检测包的发送时间以及所述第二设备对所述预设检测包的接收反馈信息,确定所述路径的路径时延。And sending, by the path other than the first path, a preset detection packet on the path; detecting a sending time of the packet according to the preset, and detecting, by the second device, the preset detection The packet receives feedback information to determine the path delay of the path.
通过对正在进行数据传输的路径和未进行数据传输的路径,采用不同的方式进行时延抖动检测,从而实现对多条路径的时延抖动检测。Delay jitter detection is performed in different ways by using a path for data transmission and a path for data transmission, thereby implementing delay jitter detection for multiple paths.
第四方面,提供了一种数据发送装置,该装置包括至少一个功能模块,该至少一个功能模块用于实现上述第一方面以及第一方面中任一种可能的实现方式所指示的数据发送方法,并且能够取得与第一方面中对应技术手段相同的技术效果,在这里不再赘述。A fourth aspect, a data transmitting apparatus is provided, the apparatus comprising at least one functional module, the at least one functional module for implementing the data transmitting method indicated by the first aspect and the possible implementation manner of any one of the first aspects And the same technical effects as the corresponding technical means in the first aspect can be obtained, and will not be described again here.
第五方面,提供了一种数据发送装置,该装置包括至少一个功能模块,该至少一个功能模块用于实现上述第二方面以及第二方面中任一种可能的实现方式所指示的数据发送方法,并且能够取得与第二方面中对应技术手段相同的技术效果,在这里不再赘述。A fifth aspect, a data transmitting apparatus is provided, the apparatus comprising at least one function module, wherein the at least one function module is configured to implement the data transmitting method indicated by the second aspect and the possible implementation manner of any one of the second aspect And the same technical effects as the corresponding technical means in the second aspect can be obtained, and will not be described again here.
第六方面,提供了一种数据发送装置,该装置包括至少一个功能模块,该至少一个功 能模块用于实现上述第三方面以及第三方面中任一种可能的实现方式所指示的数据发送方法,并且能够取得与第一方面中对应技术手段相同的技术效果,在这里不再赘述。In a sixth aspect, a data transmitting apparatus is provided, the apparatus comprising at least one functional module, the at least one function The energy module is used to implement the data transmission method indicated by the foregoing third aspect and the possible implementation manner of any one of the third aspects, and the same technical effects as the corresponding technical means in the first aspect can be obtained, and details are not described herein again.
第七方面,提供了一种第一设备,包括处理器;用于存储处理器可执行指令的存储器;In a seventh aspect, a first device is provided, including a processor; a memory for storing processor-executable instructions;
其中,所述处理器被配置为执行上述第一方面、第二方面或第三方面中第一设备所执行的数据发送方法,并且能够取得相同的技术效果。The processor is configured to perform the data transmission method performed by the first device in the first aspect, the second aspect or the third aspect, and can obtain the same technical effect.
第八方面,提供了一种第二设备,包括处理器;用于存储处理器可执行指令的存储器;In an eighth aspect, a second device is provided, including a processor; a memory for storing processor executable instructions;
其中,所述处理器被配置为执行上述第一方面或第二方面中第二设备所执行的数据发送方法,并且能够取得相同的技术效果。The processor is configured to perform the data transmission method performed by the second device in the first aspect or the second aspect described above, and can achieve the same technical effect.
附图说明DRAWINGS
图1是一种多径传输的示意图;Figure 1 is a schematic diagram of multipath transmission;
图2A是本公开实施例提供的一种采用多路径进行数据传输的架构图;2A is an architectural diagram of data transmission using multiple paths according to an embodiment of the present disclosure;
图2B是本公开实施例提供的一种终端200的结构示意图;FIG. 2B is a schematic structural diagram of a terminal 200 according to an embodiment of the present disclosure;
图2C是本公开实施例提供的一种服务器300的结构示意图;FIG. 2C is a schematic structural diagram of a server 300 according to an embodiment of the present disclosure;
图3A是本公开实施例提供的一种数据发送方法的流程图;3A is a flowchart of a data sending method according to an embodiment of the present disclosure;
图3B是本公开实施例提供的一种QUIC协议扩展帧的示意图;FIG. 3B is a schematic diagram of a QUIC protocol extended frame according to an embodiment of the present disclosure;
图4是本公开实施例提供的一种数据发送方法的流程图;4 is a flowchart of a data sending method according to an embodiment of the present disclosure;
图5是本公开实施例提供的一种数据发送方法的流程图;FIG. 5 is a flowchart of a data sending method according to an embodiment of the present disclosure;
图6是本公开实施例提供的一种数据发送装置的框图;FIG. 6 is a block diagram of a data sending apparatus according to an embodiment of the present disclosure;
图7是本公开实施例提供的一种数据发送装置的框图;FIG. 7 is a block diagram of a data transmitting apparatus according to an embodiment of the present disclosure;
图8是本公开实施例提供的一种数据发送装置的框图。FIG. 8 is a block diagram of a data transmitting apparatus according to an embodiment of the present disclosure.
具体实施方式detailed description
为使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开实施方式作进一步地详细描述。The embodiments of the present disclosure will be further described in detail below with reference to the accompanying drawings.
图2A是本公开实施例提供的一种采用多路径进行数据传输的架构图,涉及第一设备和第二设备,第一设备和第二设备可以通过3GPP网络、WiFi网络和/或其他通信网络进行数据传输。FIG. 2A is a schematic diagram of data transmission by using multiple paths according to an embodiment of the present disclosure, involving a first device and a second device, where the first device and the second device may pass through a 3GPP network, a WiFi network, and/or other communication network. Data transfer.
其中,第一设备和第二设备均设置有多种类型的网络接口,例如WiFi接口、3G接口、4G接口、5G接口等。不同类型的网络接口对应不同类型的网络服务区,例如,WiFi接口对应WiFi网络服务区,3G接口对应3G网络服务区等。第一设备和第二设备可以通过该多种网络接口中一个或多个网络接口接入相应的网络服务区,从而实现设备间单路径或多路径的数据传输,图2仅以两条路径为例示出。其中,第一设备和第二设备之间能够进行数据传输的路径的最大数目取决于二者同类型的网络接口的数目,比如,当第一设备和第二设备均具有WiFi接口和3G接口时,二者最多可以采用两条路径进行数据传输;当第一设备和第二设备均具有WiFi接口、3G接口和4G接口时,二者最多可以采用三条路径进行数据传输。网络服务区作为第一设备和第二设备通信的桥梁,用于将第一设备或第二设备发送的数据转发至通信对端。 The first device and the second device are each provided with multiple types of network interfaces, such as a WiFi interface, a 3G interface, a 4G interface, a 5G interface, and the like. Different types of network interfaces correspond to different types of network service areas, for example, a WiFi interface corresponds to a WiFi network service area, and a 3G interface corresponds to a 3G network service area. The first device and the second device can access the corresponding network service area through one or more network interfaces of the multiple network interfaces, thereby implementing single-path or multi-path data transmission between the devices, and FIG. 2 only takes two paths as Illustrated. The maximum number of paths that can be used for data transmission between the first device and the second device depends on the number of network interfaces of the same type, for example, when both the first device and the second device have a WiFi interface and a 3G interface. The two can use up to two paths for data transmission; when both the first device and the second device have a WiFi interface, a 3G interface, and a 4G interface, the two can use up to three paths for data transmission. The network service area serves as a bridge between the first device and the second device for forwarding data sent by the first device or the second device to the communication peer.
其中,第一设备和第二设备均支持多路径传输协议,以进行多路径的数据传输,该多路径传输协议可以为MPTCP协议,也可以为基于用户数据报协议(User Datagram Protocol,UDP)的低时延的互联网传输层协议(Quick UDP Internet Connection,QUIC),或者为其他多路径传输协议。多路径传输协议在TCP协议的应用层和传输层之间增加了多路径汇聚层(Convergence Layer)。在数据传输过程中,发送端的多路径汇聚层用于将应用层的数据划分为多个子流(subflow),再将该多个子流递交至传输层;接收端的多路径汇聚层用于将传输层递交的多个子流进行汇聚后递交至应用层。其中,不同子流通过不同路径传输,对于MPTCP协议,该多个子流为TCP子流;对于QUIC协议,该多个子流为UDP子流。The first device and the second device both support a multi-path transmission protocol for multi-path data transmission, and the multi-path transmission protocol may be an MPTCP protocol or a User Datagram Protocol (UDP). Low latency UDP Internet Connection (QUIC), or other multipath transport protocol. The multipath transmission protocol adds a multipath convergence layer (Convergence Layer) between the application layer and the transport layer of the TCP protocol. In the data transmission process, the multipath aggregation layer of the transmitting end is used to divide the data of the application layer into multiple subflows, and then deliver the multiple substreams to the transport layer; the multipath convergence layer of the receiving end is used for the transport layer. The submitted multiple substreams are aggregated and submitted to the application layer. The different substreams are transmitted through different paths. For the MPTCP protocol, the multiple substreams are TCP substreams; for the QUIC protocol, the multiple substreams are UDP substreams.
需要说明的是,网络接口属于网络互连的协议(Internet Protocol,IP)层,对应不同的网络接口,第一设备和第二设备均可以配置不同的IP地址,以WiFi接口和3G接口两个网络接口为例,如图2所示,第一设备的WiFi接口配置有IP地址A1,3G接口配置有IP地址A2;第二设备的WiFi接口配置有IP地址B1,3G接口配置有IP地址B2。第一设备和第二设备可以通过各自的WiFi接口以及WiFi网络服务区建立路径1,二者还可以通过各自的3G接口以及3G网络服务区建立路径2。在第一设备向第二设备发送数据的过程中,第一设备的传输层将两个子流中的子流1分配给A1对应的WiFi接口,将子流2分配给A2对应的3G接口,从而通过相应网络接口对应的路径传输至第二设备。It should be noted that the network interface belongs to the Internet Protocol (IP) layer, and corresponds to different network interfaces. The first device and the second device can be configured with different IP addresses, and the WiFi interface and the 3G interface are respectively used. For example, as shown in Figure 2, the WiFi interface of the first device is configured with the IP address A1, the 3G interface is configured with the IP address A2, the WiFi interface of the second device is configured with the IP address B1, and the 3G interface is configured with the IP address B2. . The first device and the second device can establish the path 1 through the respective WiFi interface and the WiFi network service area, and the two can also establish the path 2 through the respective 3G interface and the 3G network service area. In the process of the first device transmitting data to the second device, the transport layer of the first device allocates the sub-stream 1 of the two sub-flows to the WiFi interface corresponding to A1, and allocates the sub-flow 2 to the 3G interface corresponding to A2, thereby The path corresponding to the corresponding network interface is transmitted to the second device.
其中,在数据传输过程中,第一设备和第二设备均既可以作为数据接收端,也可以作为数据发送端,本实例对此不作限定。例如,第一设备可以被提供为一种终端设备,比如该第一设备可以为图2B所示的终端。第二设备可以被提供为一种服务器,该服务器用于向第一设备提供网络服务,例如该第二设备可以为图2C所示的服务器。当然,第一设备也可以被提供为一种服务器,第二设备也可以被提供为一种终端,本实施例对此不作限定。In the data transmission process, the first device and the second device can be used as the data receiving end or the data sending end, which is not limited in this example. For example, the first device may be provided as a terminal device, for example, the first device may be the terminal shown in FIG. 2B. The second device may be provided as a server for providing network services to the first device, for example, the second device may be the server shown in FIG. 2C. Of course, the first device may also be provided as a server, and the second device may also be provided as a terminal, which is not limited in this embodiment.
需要说明的是,下述图3A至图5所提供的实施例仅以第一设备作为发送端、第二设备作为接收端为例进行说明,并不对第一设备和第二设备的数据传输功能进行限定。It should be noted that the embodiments provided in FIG. 3A to FIG. 5 are described by taking the first device as the transmitting end and the second device as the receiving end as an example, and do not perform the data transmission function on the first device and the second device. Limited.
图2B是本公开实施例提供的一种终端200的结构示意图,当第一设备为终端时,该终端可以用于执行下述图3A至图5各个实施例提供的数据发送方法中第一设备所执行的过程;当第二设备为终端时,该终端可以用于执行下述图3A至图5各个实施例提供的数据发送方法中第二设备所执行的过程。参见图2B,该终端200包括:FIG. 2B is a schematic structural diagram of a terminal 200 according to an embodiment of the present disclosure. When the first device is a terminal, the terminal may be used to execute the first device in the data sending method provided in each embodiment of FIG. 3A to FIG. The process performed; when the second device is a terminal, the terminal can be used to perform the process performed by the second device in the data transmitting method provided by the various embodiments of FIG. 3A to FIG. 5 described below. Referring to FIG. 2B, the terminal 200 includes:
终端200可以包括RF(Radio Frequency,射频)电路110、包括有一个或一个以上计算机可读存储介质的存储器120、输入单元130、显示单元140、传感器150、音频电路160、WiFi(Wireless Fidelity,无线保真)模块170、包括有一个或者一个以上处理核心的处理器180、以及电源190等部件。本领域技术人员可以理解,图2B中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:The terminal 200 may include an RF (Radio Frequency) circuit 110, a memory 120 including one or more computer readable storage media, an input unit 130, a display unit 140, a sensor 150, an audio circuit 160, and a WiFi (Wireless Fidelity, wireless). The fidelity module 170 includes a processor 180 having one or more processing cores, and a power supply 190 and the like. It will be understood by those skilled in the art that the terminal structure shown in FIG. 2B does not constitute a limitation to the terminal, and may include more or less components than those illustrated, or a combination of certain components, or different component arrangements. among them:
RF电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器180处理;另外,将涉及上行的数据发送给基站。通常,RF电路110包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他设备通信。所述无 线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯***)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(Code Division Multiple Access,码分多址)、WCDMA(Wideband Code Division Multiple Access,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(Short Messaging Service,短消息服务)等。The RF circuit 110 can be used for transmitting and receiving information or during a call, and receiving and transmitting signals. Specifically, after receiving downlink information of the base station, the downlink information is processed by one or more processors 180. In addition, the data related to the uplink is sent to the base station. . Generally, the RF circuit 110 includes, but is not limited to, an antenna, at least one amplifier, a tuner, one or more oscillators, a Subscriber Identity Module (SIM) card, a transceiver, a coupler, an LNA (Low Noise Amplifier). , duplexer, etc. In addition, RF circuitry 110 can also communicate with the network and other devices via wireless communication. The none Line communication can use any communication standard or protocol, including but not limited to GSM (Global System of Mobile communication), GPRS (General Packet Radio Service), CDMA (Code Division Multiple Access) Divisional Multiple Access), WCDMA (Wideband Code Division Multiple Access), LTE (Long Term Evolution), e-mail, SMS (Short Messaging Service), and the like.
存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端200的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器120还可以包括存储器控制器,以提供处理器180和输入单元130对存储器120的访问。The memory 120 can be used to store software programs and modules, and the processor 180 executes various functional applications and data processing by running software programs and modules stored in the memory 120. The memory 120 may mainly include a storage program area and a storage data area, wherein the storage program area may store an operating system, an application required for at least one function (such as a sound playing function, an image playing function, etc.), and the like; the storage data area may be stored according to The data created by the use of the terminal 200 (such as audio data, phone book, etc.) and the like. Moreover, memory 120 can include high speed random access memory, and can also include non-volatile memory, such as at least one magnetic disk storage device, flash memory device, or other volatile solid state storage device. Accordingly, memory 120 may also include a memory controller to provide access to memory 120 by processor 180 and input unit 130.
输入单元130可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元130可包括触敏表面131以及其他输入设备132。触敏表面131,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面131上或在触敏表面131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面131。除了触敏表面131,输入单元130还可以包括其他输入设备132。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。The input unit 130 can be configured to receive input numeric or character information and to generate keyboard, mouse, joystick, optical or trackball signal inputs related to user settings and function controls. In particular, input unit 130 can include touch-sensitive surface 131 as well as other input devices 132. Touch-sensitive surface 131, also referred to as a touch display or trackpad, can collect touch operations on or near the user (such as a user using a finger, stylus, etc., on any suitable object or accessory on touch-sensitive surface 131 or The operation near the touch-sensitive surface 131) and driving the corresponding connecting device according to a preset program. Alternatively, the touch-sensitive surface 131 can include two portions of a touch detection device and a touch controller. Wherein, the touch detection device detects the touch orientation of the user, and detects a signal brought by the touch operation, and transmits the signal to the touch controller; the touch controller receives the touch information from the touch detection device, converts the touch information into contact coordinates, and sends the touch information. The processor 180 is provided and can receive commands from the processor 180 and execute them. In addition, the touch-sensitive surface 131 can be implemented in various types such as resistive, capacitive, infrared, and surface acoustic waves. In addition to the touch-sensitive surface 131, the input unit 130 can also include other input devices 132. Specifically, other input devices 132 may include, but are not limited to, one or more of a physical keyboard, function keys (such as volume control buttons, switch buttons, etc.), trackballs, mice, joysticks, and the like.
显示单元140可用于显示由用户输入的信息或提供给用户的信息以及终端200的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元140可包括显示面板141,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板141。进一步的,触敏表面131可覆盖显示面板141,当触敏表面131检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。虽然在图2B中,触敏表面131与显示面板141是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面131与显示面板141集成而实现输入和输出功能。The display unit 140 can be used to display information input by the user or information provided to the user and various graphical user interfaces of the terminal 200, which can be composed of graphics, text, icons, video, and any combination thereof. The display unit 140 may include a display panel 141. Alternatively, the display panel 141 may be configured in the form of an LCD (Liquid Crystal Display), an OLED (Organic Light-Emitting Diode), or the like. Further, the touch-sensitive surface 131 may cover the display panel 141, and when the touch-sensitive surface 131 detects a touch operation thereon or nearby, it is transmitted to the processor 180 to determine the type of the touch event, and then the processor 180 according to the touch event The type provides a corresponding visual output on display panel 141. Although in FIG. 2B, touch-sensitive surface 131 and display panel 141 are implemented as two separate components to implement input and input functions, in some embodiments, touch-sensitive surface 131 can be integrated with display panel 141 for input. And output function.
终端200还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在终端200移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用 (比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端200还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。 Terminal 200 may also include at least one type of sensor 150, such as a light sensor, motion sensor, and other sensors. Specifically, the light sensor may include an ambient light sensor and a proximity sensor, wherein the ambient light sensor may adjust the brightness of the display panel 141 according to the brightness of the ambient light, and the proximity sensor may close the display panel 141 when the terminal 200 moves to the ear. / or backlight. As a kind of motion sensor, the gravity acceleration sensor can detect the magnitude of acceleration in each direction (usually three axes), and the magnitude and direction of gravity can be detected at rest, which can be used to identify the gesture of the mobile phone. (such as horizontal and vertical screen switching, related games, magnetometer attitude calibration), vibration recognition related functions (such as pedometer, tapping), etc.; as well as gyroscopes, barometers, hygrometers, thermometers, infrared sensors that can be configured in the terminal 200 Other sensors, etc., will not be described here.
音频电路160、扬声器161,传声器162可提供用户与终端200之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经RF电路110以发送给比如另一终端,或者将音频数据输出至存储器120以便进一步处理。音频电路160还可能包括耳塞插孔,以提供外设耳机与终端200的通信。The audio circuit 160, the speaker 161, and the microphone 162 can provide an audio interface between the user and the terminal 200. The audio circuit 160 can transmit the converted electrical data of the received audio data to the speaker 161 for conversion to the sound signal output by the speaker 161; on the other hand, the microphone 162 converts the collected sound signal into an electrical signal by the audio circuit 160. After receiving, it is converted into audio data, and then processed by the audio data output processor 180, transmitted to the terminal, for example, via the RF circuit 110, or outputted to the memory 120 for further processing. The audio circuit 160 may also include an earbud jack to provide communication of the peripheral earphones with the terminal 200.
WiFi属于短距离无线传输技术,终端200通过WiFi模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图2B示出了WiFi模块170,但是可以理解的是,其并不属于终端200的必须构成,完全可以根据需要在不改变本公开的本质的范围内而省略。WiFi is a short-range wireless transmission technology, and the terminal 200 can help users to send and receive emails, browse web pages, and access streaming media through the WiFi module 170, which provides wireless broadband Internet access for users. Although FIG. 2B shows the WiFi module 170, it can be understood that it does not belong to the essential configuration of the terminal 200, and may be omitted as needed within the scope of not changing the essence of the present disclosure.
处理器180是终端200的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行终端200的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器180可包括一个或多个处理核心;优选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。The processor 180 is the control center of the terminal 200, connecting various portions of the entire handset with various interfaces and lines, by running or executing software programs and/or modules stored in the memory 120, and recalling data stored in the memory 120, The various functions and processing data of the terminal 200 are performed to perform overall monitoring of the mobile phone. Optionally, the processor 180 may include one or more processing cores; preferably, the processor 180 may integrate an application processor and a modem processor, where the application processor mainly processes an operating system, a user interface, an application, and the like. The modem processor primarily handles wireless communications. It can be understood that the above modem processor may not be integrated into the processor 180.
终端200还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理***与处理器180逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。电源190还可以包括一个或一个以上的直流或交流电源、再充电***、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。The terminal 200 also includes a power source 190 (such as a battery) for powering various components. Preferably, the power source can be logically coupled to the processor 180 through a power management system to manage functions such as charging, discharging, and power management through the power management system. Power supply 190 may also include any one or more of a DC or AC power source, a recharging system, a power failure detection circuit, a power converter or inverter, a power status indicator, and the like.
尽管未示出,终端200还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端的显示单元是触摸屏显示器,终端还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。当第一设备为终端时,所述一个或者一个以上程序包含用于执行下述各个实施例所提供的数据发送方法中第一设备所执行的过程。当第二设备为终端时,所述一个或者一个以上程序包含用于执行下述各个实施例所提供的数据发送方法中第二设备所执行的过程。Although not shown, the terminal 200 may further include a camera, a Bluetooth module, and the like, and details are not described herein again. Specifically, in this embodiment, the display unit of the terminal is a touch screen display, the terminal further includes a memory, and one or more programs, wherein one or more programs are stored in the memory and configured to be processed by one or more Execution. When the first device is a terminal, the one or more programs include a process performed by the first device in the data transmitting method provided by the various embodiments described below. When the second device is a terminal, the one or more programs include a process performed by the second device in the data transmission method provided by the various embodiments described below.
图2C是根据一示例性实施例示出的一种服务器300的结构示意图。参照图2C,服务器300包括处理组件322,其进一步包括一个或多个处理器,以及由存储器332所代表的存储器资源,用于存储可由处理部件322的执行的指令,例如应用程序。存储器332中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,当第一设备为服务器时,处理组件322被配置为执行指令,以执行下述图3A和图4所提供的数据发送方法中第一设备所执行的过程。当第二设备为服务器时,处理组件322被配置为执行指令,以执行下述图3A和图4所提供的数据发送方法中第二设备所执行的过程。FIG. 2C is a schematic structural diagram of a server 300 according to an exemplary embodiment. Referring to FIG. 2C, server 300 includes a processing component 322 that further includes one or more processors, and memory resources represented by memory 332 for storing instructions executable by processing component 322, such as an application. An application stored in memory 332 may include one or more modules each corresponding to a set of instructions. Further, when the first device is a server, the processing component 322 is configured to execute an instruction to perform the process performed by the first device in the data transmitting method provided in FIGS. 3A and 4 described below. When the second device is a server, the processing component 322 is configured to execute instructions to perform the processes performed by the second device in the data transmitting methods provided by Figures 3A and 4 described below.
服务器300还可以包括一个电源组件326被配置为服务器300的电源管理,一个有线 或无线网络接口350被配置为将服务器300连接到网络,和一个输入输出(I/O)接口358。服务器300可以操作基于存储在存储器332的操作***,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。 Server 300 may also include a power component 326 configured to manage power of server 300, a wired or wireless network interface 350 configured to connect server 300 to the network, and an input/output (I/O) interface 358. Server 300 can operate based on the operating system stored in memory 332, for example, Windows Server TM, Mac OS X TM , Unix TM, Linux TM, FreeBSD TM or similar.
图3A是本公开实施例提供的一种数据发送方法的流程图,参见图3A,涉及交互主体为第一设备和第二设备,包括以下步骤:FIG. 3A is a flowchart of a data sending method according to an embodiment of the present disclosure. Referring to FIG. 3A, the interaction subject is a first device and a second device, and the following steps are included:
301、在采用多条路径与第一设备进行数据传输的过程中,第二设备检测缓存的数据是否满足路径切换条件。301. In a process of performing data transmission with the first device by using multiple paths, the second device detects whether the buffered data meets the path switching condition.
其中,该多条路径可以为第一设备与第二设备能够进行数据传输的全部路径,也可以为全部路径中的部分路径。The multiple paths may be all paths that the first device and the second device can perform data transmission, or may be partial paths in all paths.
当第一设备和第二设备采用多条路径进行数据传输时,第二设备将通过该多条路径接收到的数据缓存至缓存区,例如将接收到的数据包缓存至缓存区。由于在数据传输过程中,不同路径会有不同程度的时延,当不同路径之间的路径时延相差较大时,会导致第二设备缓存数据量过大,或者导致缓存区缓存的数据包的序号处于失序状态。第二设备可以根据缓存的数据来确定当前是否需要进行路径切换,也即是,第二设备检测缓存的数据是否满足预设切换条件,该过程可以包括以下两种方式:When the first device and the second device use multiple paths for data transmission, the second device caches the data received through the multiple paths to the buffer area, for example, buffers the received data packet to the buffer area. Since different paths have different delays during data transmission, when the path delays between different paths are different, the amount of data buffered by the second device may be too large, or the packets buffered by the buffer may be caused. The serial number is in an out of order state. The second device may determine whether the path switching needs to be performed according to the cached data, that is, the second device detects whether the cached data meets the preset switching condition, and the process may include the following two methods:
第一种方式、第二设备检测缓存的数据量是否超过预设阈值,如果缓存的数据量超过预设阈值,则确定缓存的数据满足预设切换条件。In the first mode, the second device detects whether the buffered data exceeds a preset threshold. If the buffered data exceeds a preset threshold, it determines that the cached data meets the preset switching condition.
其中,预设阈值可以由第二设备根据缓存区容量的大小进行预先设置,比如,该预设阈值可以为缓存区最大容量的80%等。The preset threshold may be preset by the second device according to the size of the buffer, for example, the preset threshold may be 80% of the maximum capacity of the buffer.
第二种方式、第二设备检测缓存的数据包是否处于失序状态;如果缓存的数据包处于失序状态,则确定缓存的数据满足预设切换条件。In the second mode, the second device detects whether the buffered data packet is in an out-of-order state; if the buffered data packet is in an out-of-sequence state, it determines that the cached data meets the preset switching condition.
在该种方式中,第二设备可以通过以下两种方法检测缓存的数据包是否处于失序状态:In this manner, the second device can detect whether the cached data packet is out of order by the following two methods:
方法一、检测缓存的数据包的序号是否连续,如果不连续,检测序号不连续的时长。Method 1: Detect whether the serial number of the buffered data packet is continuous, and if it is not continuous, the length of the serial number is not continuous.
如果缓存的数据包的序号不连续、且序号不连续的时长超过预设时长,确定缓存的数据包处于失序状态。If the serial number of the buffered data packet is not continuous, and the length of the serial number is not continuous exceeds the preset duration, it is determined that the cached data packet is out of order.
其中,预设时长可以由第二设备进行预先配置或修改,本实施例对此不作限定。The preset duration may be pre-configured or modified by the second device, which is not limited in this embodiment.
方法二、检测缓存的数据包的序号是否连续,如果不连续,检测序号不连续的数目。Method 2: Detect whether the serial number of the buffered data packet is continuous, and if not continuous, detect the number of consecutive serial numbers.
如果缓存的数据包的序号不连续的数目超过预设数目,确定缓存的数据包处于失序状态。其中,预设数目可以由第二设备进行预先配置或修改,本实施例对此不作限定。例如,第一设备向第二设备发送了10个数据包,序号分别为1至10,第二设备接收到的数据包的序号为1、2、3、7、9、10,则序号不连续的数目是指序号3至7以及序号7至9之间未接收到的数据包的数目,在该举例中,序号不连续的数目为4。If the number of consecutive serial numbers of the buffered packets exceeds a preset number, it is determined that the cached data packets are out of order. The preset number may be pre-configured or modified by the second device, which is not limited in this embodiment. For example, the first device sends 10 data packets to the second device, the sequence numbers are 1 to 10, and the sequence numbers of the data packets received by the second device are 1, 2, 3, 7, 9, and 10, and the sequence numbers are discontinuous. The number refers to the number of data packets not received between sequence numbers 3 to 7 and sequence numbers 7 to 9, in which the number of discontinuous sequence numbers is 4.
下面对路径时延过长导致第二设备缓存数据量过大,或者导致缓存区缓存的数据包的序号处于失序状态进行解释说明:在向第二设备发送数据的过程中,第一设备的多路径汇聚层会将待发送数据划分为与该多路径等数目的子流,不同子流包括不同序号的数据包,当第二设备缓存有一定数目的序号连续的数据包后,第二设备的多路径汇聚层将缓存区中序号连续的数据包递交至应用层,而如果数据包的序号连续的数目没有达到该一定数目,接收到的数据包便会一直缓存在缓存区,因此,当该多条路径中存在路径时延过大的路径 时,便会导致第二设备缓存区的溢出,或者导致缓存区的数据包序号处于失序状态。If the path delay is too long, the amount of data buffered by the second device is too large, or the sequence number of the data packet buffered by the buffer is in an out-of-order state, and the first device is in the process of sending data to the second device. The multi-path aggregation layer divides the data to be sent into a number of sub-flows corresponding to the multi-path, and the different sub-streams include data packets of different serial numbers. When the second device caches a certain number of consecutive serial data packets, the second device The multi-path aggregation layer delivers the consecutive serial number packets in the buffer area to the application layer, and if the serial number of the data packet does not reach the certain number, the received data packet is always cached in the buffer area, so when There are paths with excessive path delays in the multiple paths. When it occurs, the second device buffer overflows, or the packet sequence number of the buffer is out of order.
例如,第一设备向第二设备发送一段语音数据,第一设备将该语音数据打包为10个数据包,序号依次为1至10,现在通过两条路径向第二设备发送该10个数据包,假设将序号为单数的数据包划分为一个子流,通过路径1发送至第二设备,将序号为双数的数据包划分为一个子流,通过路径2发送至第二设备,第二设备的多路径汇聚层需要在接收到该10个数据包之后递交至应用层。如果路径2的路径时延远远大于路径1的路径时延,则可能会发生这种情况:当第二设备在路径1上接收到序号为1、3、5、7、9的数据包时,在路径2上仅接收到序号为2的数据包,这样第二设备需要等待在路径2上传输的剩余的数据包,此时,第一设备还在继续通过路径1向第二设备发送其他业务的数据,从而便导致第二设备的缓存数据量过大,或者数据包处于失序状态。For example, the first device sends a piece of voice data to the second device, and the first device packs the voice data into 10 data packets, the sequence number is 1 to 10, and now the 10 data packets are sent to the second device through two paths. It is assumed that the data packet whose sequence number is singular is divided into one sub-flow, and is sent to the second device through path 1, and the data packet with the serial number is divided into one sub-flow, and is sent to the second device through the path 2, and the second device The multipath aggregation layer needs to be delivered to the application layer after receiving the 10 data packets. If the path delay of path 2 is much larger than the path delay of path 1, this may happen when the second device receives a packet with sequence numbers 1, 3, 5, 7, and 9 on path 1. Only the data packet with the sequence number 2 is received on the path 2, so that the second device needs to wait for the remaining data packets transmitted on the path 2. At this time, the first device continues to send the other device to the second device through the path 1. The data of the service, which causes the amount of cached data of the second device to be too large, or the data packet is out of order.
302、如果缓存的数据满足路径切换条件,第二设备向第一设备发送第一路径切换指示,该第一路径切换指示用于指示第一设备进行时延抖动检测。302. If the buffered data meets the path switching condition, the second device sends a first path switching indication to the first device, where the first path switching indication is used to instruct the first device to perform delay jitter detection.
其中,第二设备可以通过该多条路径中的一条路径或多条路径向第一设备发送该第一路径切换指示,本实施例对此不作限定。The second device may send the first path switching indication to the first device by using one of the multiple paths or multiple paths, which is not limited in this embodiment.
在实施过程中,第二设备和第一设备之间可以采用QUIC协议或者MPTCP协议进行数据传输,当采用QUIC协议时,该第一路径切换指示可以携带在QUIC协议的指定字段内发送,例如,该QUIC协议的指定字段可以为QUIC协议公共包头(Common Header)的Flag字段,比如采用Flag字段中的0x40指示位来表示该第一路径切换指示,当该指示位为1时指示第一设备进行时延抖动检测。当该指示位为0时指示第一设备不用进行时延抖动检测。当然,还可以对QUIC协议进行扩展,例如,新增一个QUIC协议扩展帧,如图3B所示为一种QUIC协议扩展帧的示意图。其中,该扩展帧中包括以下字段:帧类型(Type)字段、流标识(Stream ID)字段以及切换指示字段。其中,帧类型区别于QUIC协议现有的帧类型,流标识用于指示该第一路径切换指示所属的数据子流,切换指示字段用于承载该第一路径切换指示。In the implementation process, the QUIC protocol or the MPTCP protocol may be used for data transmission between the second device and the first device. When the QUIC protocol is adopted, the first path switching indication may be carried in a specified field of the QUIC protocol, for example, The specified field of the QUIC protocol may be a Flag field of a Common Header of the QUIC protocol, for example, the 0x40 indicator bit in the Flag field is used to indicate the first path switching indication, and when the indicator bit is 1, the first device is instructed to perform the Delay jitter detection. When the indication bit is 0, it indicates that the first device does not perform delay jitter detection. Of course, the QUIC protocol can also be extended, for example, a new QUIC protocol extension frame is added, as shown in FIG. 3B, which is a schematic diagram of a QUIC protocol extension frame. The extended frame includes the following fields: a frame type field, a stream ID field, and a switch indication field. The frame type is different from the existing frame type of the QUIC protocol, and the flow identifier is used to indicate the data substream to which the first path switch indication belongs, and the handover indication field is used to carry the first path switch indication.
当采用MPTCP协议时,该第一路径切换指示可以携带在MPTCP协议的指定字段内发送,该MPTCP的指定字段可以为MPTCP的Subtype字段。例如,可以对Subtype字段进行重新定义,以承载该第二路径切换指示。When the MPTCP protocol is adopted, the first path switching indication may be carried in a specified field of the MPTCP protocol, and the specified field of the MPTCP may be a Subtype field of the MPTCP. For example, the Subtype field can be redefined to carry the second path switching indication.
在本实施例中,由于数据包在传输的过程中有可能会丢失,为了保证第一设备能够接收到该第一路径切换指示,第二设备可以在连续的多个数据包中携带该第一路径切换指示并发送至第一设备。需要说明的是,第二设备在向第一设备发送第一路径切换指示的同时还可以发送进行切换的原因信息,比如,缓存区即将溢出等。比如,当采用QUIC协议时,可以在切换指示字段中携带进行路径切换的原因信息。In this embodiment, the data packet may be lost in the process of the transmission. To ensure that the first device can receive the first path switching indication, the second device may carry the first packet in multiple consecutive data packets. The path switch indication is sent to the first device. It should be noted that, when the second device sends the first path switching indication to the first device, the second device may also send the reason information for performing the switching, for example, the buffer area is about to overflow. For example, when the QUIC protocol is adopted, the reason information for performing path switching may be carried in the handover indication field.
303、第一设备接收到第二设备的第一路径切换指示后,对该多条路径进行时延抖动检测,得到该多条路径中每条路径的路径时延。303. After receiving the first path switching indication of the second device, the first device performs delay jitter detection on the multiple paths, and obtains a path delay of each path in the multiple paths.
其中,对于该多条路径中的每一条路径,该路径的路径时延可以为该路径的单向路径时延,或者为该路径的往返路径时延(Round Trip Time,RTT)。The path delay of the path may be a unidirectional path delay of the path or a Round Trip Time (RTT) of the path for each path of the multiple paths.
其中,单向路径时延是指,第一设备发送数据包的第一时间与第二设备接收到该数据包的第二时间之间的时间差,该过程可以为:第一设备在向第二设备发送数据包时,记录该数据包的第一时间;第二设备会根据对该数据包的接收情况返回接收反馈信息,第一设 备根据第二设备的接收反馈信息,确定第二设备接收到该数据包的第二时间。其中,该反馈信息中可以包括第二设备接收到该数据包的第二时间。该单向路径时延可以更准确地体现第一设备向第二设备发送数据的时延。The one-way path delay refers to a time difference between a first time when the first device sends the data packet and a second time when the second device receives the data packet, where the process may be: the first device is in the second When the device sends a data packet, the first time of the data packet is recorded; the second device returns a feedback message according to the reception status of the data packet, and the first device And determining, according to the received feedback information of the second device, the second time that the second device receives the data packet. The feedback information may include a second time when the second device receives the data packet. The one-way path delay can more accurately reflect the delay of the first device sending data to the second device.
另外,第二设备返回的接收反馈信息中可能不包含第二设备接收数据包的第二时间,此时,第一设备可以将该路径的往返路径时延作为该路径的路径时延,比如,第一设备可以记录接收到该接收反馈信息的第三时间,将该第三时间与第一时间之间的时间差作为该路径的路径时延。其中,第三时间与第一时间的时延差即为该路径的往返路径时延。In addition, the received feedback information returned by the second device may not include the second time when the second device receives the data packet. In this case, the first device may use the round-trip path delay of the path as the path delay of the path, for example, The first device may record the third time when the received feedback information is received, and the time difference between the third time and the first time is used as the path delay of the path. The delay difference between the third time and the first time is the round-trip path delay of the path.
上述步骤301至步骤303是第一设备根据第二设备的第一路径切换指示进行时延抖动检测的过程,在另一实施例中,第一设备还可以主动进行时延抖动检测,比如,第一设备根据预设周期对多条路径进行时延抖动检测,该预设周期可以由第一设备进行预先设定或修改,或者由第二设备进行预先配置或修改,本实施例对此不作限定。The foregoing steps 301 to 303 are processes in which the first device performs delay jitter detection according to the first path switching indication of the second device. In another embodiment, the first device may also actively perform delay jitter detection, for example, A device performs delay jitter detection on a plurality of paths according to a preset period. The preset period may be preset or modified by the first device, or may be pre-configured or modified by the second device, which is not limited in this embodiment. .
304、第一设备根据该多条路径中每条路径的路径时延和预设时延要求,确定第一路径。304. The first device determines the first path according to a path delay and a preset delay requirement of each path of the multiple paths.
其中,第一路径可以为该多条路径中的至少一条,可以采用以下两种方式来从多条路径中确定第一路径:The first path may be at least one of the multiple paths, and the first path may be determined from the multiple paths in the following two manners:
第一种方式、第一设备直接根据各个路径的路径时延与预设时延要求的关系,从多条路径中确定第一路径。In the first mode, the first device directly determines the first path from the multiple paths according to the relationship between the path delay of each path and the preset delay requirement.
在该种方式中,对于该多条路径中的每条路径,第一设备检测该路径的路径时延是否超过第一阈值,如果该路径的路径时延超过第一阈值,则确定该路径的路径时延不满足预设时延要求,将该路径确定为第一路径。In this manner, for each path of the multiple paths, the first device detects whether the path delay of the path exceeds a first threshold, and if the path delay of the path exceeds a first threshold, determining the path The path delay does not meet the preset delay requirement, and the path is determined as the first path.
其中,第一阈值可以由第二设备统计的路径时延均值确定并配置到第一设备。The first threshold may be determined by the path delay average value counted by the second device and configured to the first device.
第二种方式、第一设备根据各个路径的路径时延的时延差与预设时延要求,从该多条路径中确定第一路径。In the second mode, the first device determines the first path from the multiple paths according to the delay difference of the path delay of each path and the preset delay requirement.
在该种方式中,第一设备根据该多条路径中每条路径的路径时延,确定该多条路径中每两条路径的时延差;如果确定的时延差中包括超过第二阈值的时延差,确定超过第二阈值的时延差对应的路径不满足预设时延要求,将该超过第二阈值的时延差对应的路径确定为第一路径。其中,第二阈值可以由第二设备统计的时延差均值确定并配置到第一设备。In this manner, the first device determines a delay difference of each of the multiple paths according to a path delay of each path of the multiple paths; if the determined delay difference includes exceeding a second threshold The path difference corresponding to the delay difference that exceeds the second threshold does not satisfy the preset delay requirement, and the path corresponding to the delay difference exceeding the second threshold is determined as the first path. The second threshold may be determined by the average delay difference calculated by the second device and configured to the first device.
其中,确定该多条路径中每两条路径的时延差的过程可以为:按照路径时延从低到高的顺序,将顺序相邻的两个路径的路径时延的差值,作为该相邻的两个路径的时延差。The process of determining the delay difference of each of the multiple paths may be: taking the difference of the path delays of the two adjacent paths in the order of the path delay from low to high, as the The delay difference between two adjacent paths.
例如,假设有4条路径,路径1的路径时延为10ms(毫秒),路径2的时延差为13ms,路径3的时延差为15ms,路径4的时延差为30ms,则按照路径时延从低到高的顺序,即路径1至路径4的顺序获取相邻两条路径的时延差,得到路径1和路径2的时延差为3ms,路径2和路径3的时延差为2ms,路径3和路径4对应的时延差为15ms。For example, suppose there are 4 paths, the path delay of path 1 is 10ms (milliseconds), the delay difference of path 2 is 13ms, the delay difference of path 3 is 15ms, and the delay difference of path 4 is 30ms, according to the path. The delay from low to high, that is, the order of path 1 to path 4, obtains the delay difference between two adjacent paths, and obtains the delay difference between path 1 and path 2 is 3 ms, and the delay difference between path 2 and path 3 For 2ms, the delay difference corresponding to path 3 and path 4 is 15ms.
需要说明的是,得到的每个时延差对应两条路径,当某个时延差超过第二阈值时,在一种实施方式中,可以将该时延差对应的两条路径均确定为第一路径;在另一种实施方式中,还可以将该时延差对应的两条路径中路径时延较大的路径确定为第一路径。例如,假设第二阈值为10ms,则结合上述举例,路径3和路径4对应的时延差为15ms超过了第二阈值,则可以将该路径3和路径4均确定为第一路径,也可以将路径时延较长的路径4确定为第一路径。需要说明的是,在将路径4确定为第一路径时,如果排列在路径4之后,还有其他路径时延更长的路径,则比路径4的路径时延更长的路径也确定为第一路径。 It should be noted that each of the obtained delay differences corresponds to two paths. When a certain delay difference exceeds the second threshold, in an implementation manner, the two paths corresponding to the delay difference may be determined as The first path may be determined as the first path in the two paths corresponding to the delay difference. For example, if the second threshold is 10 ms, the path difference between the path 3 and the path 4 is 15 ms, and the path 3 and the path 4 are both determined as the first path. The path 4 with a long path delay is determined as the first path. It should be noted that when the path 4 is determined as the first path, if there are other paths with longer path delays after the path 4, the path longer than the path delay of the path 4 is also determined to be the first path. A path.
需要说明的是,第一设备在确定该多条路径中包括第一路径后,可以将该第一路径对应的网络接口标记为不可用状态。It should be noted that, after determining that the first path is included in the multiple paths, the first device may mark the network interface corresponding to the first path as an unavailable state.
上述步骤303至步骤304是第一设备确定第一路径的过程。The above steps 303 to 304 are processes in which the first device determines the first path.
305、第一设备确定第二路径,该第二路径为多条路径中不同于第一路径的至少一条路径。305. The first device determines a second path, where the second path is at least one path that is different from the first path among the multiple paths.
在一种实施方式中,该第二路径可以为该多条路径中除第一路径以外的所有路径;在第二种实施方式中,该第二路径还可以为多条路径除第一路径以外的备选路径中的一条或多条路径,此时,第一设备在确定第一路径之后,可以在除第一路径以外的备选路径中选取一条或多条路径作为第二路径。例如,该多条路径的数目为4,分别为路径1至路径4,其中,路径4是第一路径,则可以将路径1至路径3均确定为第二路径,也可以在路径1至3中选取一条或两条路径作为第二路径。In an embodiment, the second path may be all paths except the first path of the multiple paths. In the second implementation manner, the second path may also be multiple paths except the first path. One or more paths in the alternate path. At this time, after determining the first path, the first device may select one or more paths as the second path in the alternative paths except the first path. For example, the number of the multiple paths is 4, which are path 1 to path 4, respectively. Where path 4 is the first path, path 1 to path 3 may be determined as the second path, or may be in paths 1 to 3. Select one or two paths as the second path.
其中,对于第二种实施方式,第一设备从备选路径中选取至少一条路径作为第二路径的过程可以为:获取备选路径中每一条路径的路径时延,将路径时延小于第三阈值的路径作为第二路径,或者,按照路径时延从低到高的顺序进行排序,将排序靠前的预设数目的路径作为第二路径。其中,第三阈值和预设数目均可以由第一设备进行预先设定或修改,本实施例对此不作限定。For the second implementation manner, the process of selecting, by the first device, the at least one path from the candidate path as the second path may be: acquiring the path delay of each path in the candidate path, and the path delay is less than the third. The path of the threshold is used as the second path, or the path delay is sorted from low to high, and the preset number of paths ranked first is used as the second path. The third threshold and the preset number may be preset or modified by the first device, which is not limited in this embodiment.
另外,第一设备从备选路径中选取至少一条路径作为第二路径的过程还可以为:获取备选路径在预设时间段内的路径时延,确定备选路径中每条路径的时延浮动值,将时延浮动值在预设浮动范围内的路径,确定为第二路径。其中,路径的时延浮动值用于指示该路径的路径时延变化的剧烈程度,时延浮动值越大表示路径时延变化越剧烈。第一设备可以在预设时间段内多次获取备选路径的路径时延,该路径的时延浮动值可以为该路径的多个路径时延中最大路径时延与最小路径时延的差值,或者为多个路径时延的方差值等,本实施例对此不作限定。其中,预设浮动范围可以由第一设备进行预先设定或修改,本实施例对此不作限定。In addition, the process of selecting the at least one path from the candidate path as the second path may also be: acquiring a path delay of the candidate path in the preset time period, and determining a delay of each path in the candidate path. The floating value determines the path whose delay value is within the preset floating range as the second path. The delay value of the path delay is used to indicate the severity of the path delay change of the path. The greater the delay floating value indicates the more severe the path delay change. The first device may obtain the path delay of the candidate path multiple times in the preset time period, and the delay value of the path may be the difference between the maximum path delay and the minimum path delay of the multiple path delays of the path. The value, or the variance value of the multiple path delays, is not limited in this embodiment. The preset floating range may be preset or modified by the first device, which is not limited in this embodiment.
306、第一设备通过该第二路径,向第二设备发送数据。306. The first device sends data to the second device by using the second path.
第一设备在确定第一路径后,便停止采用第一路径向第二设备发送数据,将后续需要发送的数据通过第二路径发送至第二设备。比如,第一设备根据第二路径的数目,在多路径汇聚层中将待发送的数据划分为该数目的子流,对应每个子流,采用一个第二路径进行传输。After determining the first path, the first device stops sending data to the second device by using the first path, and sends data that needs to be sent subsequently to the second device by using the second path. For example, the first device divides the data to be sent into the number of substreams in the multipath aggregation layer according to the number of the second path, and uses a second path for each substream.
需要说明的是,第一设备停止采用第一路径向第二设备发送数据,也可以称为第一设备放弃使用该第一路径传输数据。本实施例中,在弃用第一路径传输数据后,还可以重新使用该第一路径传输数据,该过程可以为:在只采用第二路径向第二设备发送数据的过程中,对多条路径进行时延抖动检测,得到多条路径中每条路径的路径时延;如果第一路径的路径时延满足预设时延要求,则在第一路径上向第二设备发送数据。It should be noted that the first device stops transmitting data to the second device by using the first path, and may also be referred to as the first device abandoning the use of the first path to transmit data. In this embodiment, after the data is transmitted by the first path, the data may be reused by using the first path. The process may be: in the process of sending data to the second device by using only the second path, the multiple The path performs delay jitter detection to obtain a path delay of each path in the multiple paths. If the path delay of the first path meets the preset delay requirement, the data is sent to the second device on the first path.
其中,第一路径的路径时延满足预设时延要求是指第一路径的路径时延小于第一阈值,此时,第一设备可以在弃用第一路径后,可以周期性地对该第一路径进行时延抖动检测,也即是,获取该第一路径的路径时延,当该第一路径的路径时延小于第一阈值时,确定该第一路径满足预设时延要求,可以重新使用该第一路径传输数据。The path delay of the first path meets the preset delay requirement, which means that the path delay of the first path is smaller than the first threshold. In this case, the first device may periodically The first path performs the delay jitter detection, that is, the path delay of the first path is obtained. When the path delay of the first path is less than the first threshold, determining that the first path meets the preset delay requirement, The first path can be reused to transfer data.
或者,该第一路径的路径时延满足预设时延要求是指第一路径对应的时延差小于第二 阈值,此时,第一设备在弃用第一路径后,可以周期性地对该多条路径(包括第一路径和第二路径)进行时延抖动检测,确定该多条路径中每两条路径的时延差,该过程与步骤304中确定多条路径中每两条路径的时延差的过程同理;如果第一路径对应的时延差小于第二阈值,则确定该第一路径满足预设时延要求,可以重新使用该第一路径传输数据。由于一条路径可以对应两个时延差,本实施例中,第一路径对应的时延差小于第二阈值可以指第一路径对应的两个时延差均小于第二阈值;或者可以指第一路径作为路径时延较大的路径的两条路径对应的时延差小于第二阈值,例如,假设第一路径为步骤304举例中的路径3,则第一路径与路径2的时延差小于第二阈值时,确定第一路径的路径时延满足预设时延要求。Or the path delay of the first path meets the preset delay requirement, that is, the delay difference corresponding to the first path is smaller than the second Threshold, at this time, after the first device discards the first path, the first device may periodically perform delay jitter detection on the multiple paths (including the first path and the second path), and determine each of the multiple paths. a delay difference of the path, the process is the same as the process of determining the delay difference of each of the multiple paths in the step 304; if the delay difference corresponding to the first path is less than the second threshold, determining the first path The first path can be reused to transmit data by meeting the preset delay requirement. In this embodiment, the delay difference corresponding to the first path is smaller than the second threshold. The two delay differences corresponding to the first path are smaller than the second threshold. The delay difference corresponding to the two paths of a path having a large path delay is smaller than the second threshold. For example, if the first path is path 3 in the example of step 304, the delay difference between the first path and the path 2 is When the second threshold is smaller than the second threshold, the path delay of the first path is determined to meet the preset delay requirement.
本实施例提供的方法,第二设备在检测到缓存的数据满足路径切换条件时,通过路径切换指示通知第一设备进行路径的时延抖动检测,第一设备根据时延抖动检测结果,从当前进行数据传输的多条路径中确定不满足预设路径时延、影响数据传输效率的第一路径,并放弃在该第一路径上进行传输,通过第一路径以外的至少一条路径传输数据,提高了数据传输的效率。In the method provided by the embodiment, when detecting that the cached data meets the path switching condition, the second device notifies the first device to perform delay jitter detection of the path by using the path switching indication, and the first device detects the delay jitter detection result from the current Determining, by the plurality of paths for performing data transmission, a first path that does not satisfy the preset path delay and affecting data transmission efficiency, and abandoning transmission on the first path, and transmitting data through at least one path other than the first path, thereby improving The efficiency of data transmission.
图3A所示的实施例是第一设备根据第二设备的路径切换指示,对当前进行数据传输的多条路径进行时延抖动检测,进而根据检测结果在多条路径中排除不满足预设时延要求的路径,通过剩余路径中的一条或多条路径向第二设备发送数据的过程。在另一实施例中,第二设备在从当前进行数据传输的多条路径中确定第一路径后,可以直接通过路径切换指示通知第一设备后续进行数据传输的至少一条第二路径,由第一设备在第二路径上发送数据,该过程详见图4所提供的实施例。The embodiment shown in FIG. 3A is that the first device performs delay jitter detection on multiple paths that are currently performing data transmission according to the path switching indication of the second device, and further excludes presets in multiple paths according to the detection result. The process of extending the requested path to send data to the second device through one or more paths in the remaining path. In another embodiment, after determining the first path from the multiple paths that are currently performing data transmission, the second device may notify the first device to perform at least one second path for subsequent data transmission by using the path switching indication. A device transmits data on the second path, which is detailed in the embodiment provided in FIG.
图4是本公开实施例提供的一种数据发送方法的流程图,参见图4,涉及交互主体为第一设备和第二设备,包括以下步骤:FIG. 4 is a flowchart of a data sending method according to an embodiment of the present disclosure. Referring to FIG. 4, the interaction subject is a first device and a second device, and the following steps are included:
401、在采用多条路径与第一设备进行数据传输的过程中,第二设备检测缓存的数据是否满足路径切换条件。401. In a process of performing data transmission with the first device by using multiple paths, the second device detects whether the cached data meets the path switching condition.
该步骤与上述步骤301同理,在此不做赘述。This step is the same as the above step 301, and will not be described herein.
402、如果缓存的数据满足路径切换条件,第二设备从多条路径中确定第一路径,该第一路径为导致缓存的数据满足路径切换条件的路径。402. If the cached data meets the path switching condition, the second device determines the first path from the multiple paths, where the first path is a path that causes the buffered data to meet the path switching condition.
本实施例中,在通过多条路径进行数据传输时,第一设备可以将每条路径上即将传输的数据包序号预先通知给第二设备,第二设备建立每条路径与路径上即将传输的数据包序号之间的对应关系。根据该对应关系,第二设备可以在缓存的数据满足路径切换条件时,将导致缓存的数据包的序号不连续的路径确定为第一路径,比如,第二设备根据缓存的数据包的序号,可以确定未接收到的数据包的序号,并根据上述对应关系,确定未接收到的数据包所属的路径,将该路径确定为第一路径。In this embodiment, when data transmission is performed through multiple paths, the first device may notify the second device of the sequence number of the data packet to be transmitted on each path in advance, and the second device establishes each path and the path to be transmitted. The correspondence between the serial numbers of the packets. According to the correspondence, the second device may determine, as the first path, a path that causes the sequence number of the buffered data packet to be discontinuous when the cached data meets the path switching condition, for example, the second device is configured according to the sequence number of the buffered data packet. The sequence number of the unreceived data packet may be determined, and according to the foregoing correspondence, the path to which the unreceived data packet belongs is determined, and the path is determined as the first path.
需要说明的是,如果导致缓存的数据包的序号不连续的路径不止一条,第二设备可以将导致序号不连续的所有路径均确定为第一路径,或者将导致序号不连续的所有路径中序号不连续数目最大的路径确定为第一路径。例如,第一设备向第二设备发送了10个数据包,序号分别为1至10,第二设备接收到的数据包的序号为1、2、3、7、9、10,其中,序号3至7以及序号7至9之间不连续,假如,序号为4至6的数据包需要通过路径1发送,序 号为8的数据包需要通过路径3发送,则路径1导致的序号不连续数目为3,路径3导致的序号不连续数目为1,则可以将路径1确定为第一路径。It should be noted that if there is more than one path that causes the sequence number of the buffered data packet to be discontinuous, the second device may determine all the paths that cause the sequence number to be discontinuous as the first path, or the sequence number in all the paths that cause the sequence number to be discontinuous. The path with the largest number of discontinuities is determined as the first path. For example, the first device sends 10 data packets to the second device, the serial numbers are 1 to 10, and the sequence numbers of the data packets received by the second device are 1, 2, 3, 7, 9, 10, wherein the serial number 3 To 7 and the sequence number between 7 and 9 are not continuous. If the packets with sequence numbers 4 to 6 need to be sent through path 1, the sequence The data packet numbered 8 needs to be sent through path 3. If the number of consecutive numbers caused by path 1 is 3, and the number of consecutive numbers caused by path 3 is 1, the path 1 can be determined as the first path.
403、第二设备通过第二路径向第一设备发送第二路径切换指示,第二路径为多条路径中除第一路径以外的至少一条路径。403. The second device sends a second path switching indication to the first device by using the second path, where the second path is at least one of the multiple paths except the first path.
在一种实施方式中,该第二路径可以为该多条路径中除第一路径以外的所有路径;在第二种实施方式中,该第二路径还可以为多条路径除第一路径以外的备选路径中的一条或多条路径。这两种实施方式与上述步骤3056中的两种实施方式同理,在此不做赘述。In an embodiment, the second path may be all paths except the first path of the multiple paths. In the second implementation manner, the second path may also be multiple paths except the first path. One or more paths in the alternate path. The two implementations are the same as the two implementations in the above step 3056, and are not described herein.
其中,第二设备通过第二路径发送该第二路径切换指示。在实施过程中,第二设备和第一设备之间可以采用QUIC协议或者MPTCP协议进行数据传输,当采用QUIC协议时,该第二路径切换指示可以携带在QUIC协议的指定字段内发送,例如,该QUIC协议的指定字段可以为QUIC协议公共包头(Common Header)的Flag字段,比如采用Flag字段中的0x40指示位来表示该第二路径切换指示,当该指示位为1时指示第一设备继续使用相应路径传输数据,当该指示位为0时指示第一设备放弃使用相应路径传输数据。例如,对于该多条路径中的任一条路径,如果第一设备在该路径上接收到的数据包中该指示位由1变为0,则第一设备放弃使用该路径传输数据。The second device sends the second path switching indication by using the second path. In the implementation process, the QUIC protocol or the MPTCP protocol may be used for data transmission between the second device and the first device. When the QUIC protocol is adopted, the second path switching indication may be carried in a specified field of the QUIC protocol, for example, The specified field of the QUIC protocol may be a Flag field of a Common Header of the QUIC protocol, for example, the 0x40 indicator bit in the Flag field is used to indicate the second path switching indication, and when the indicator bit is 1, the first device is instructed to continue. The data is transmitted using the corresponding path, and when the indication bit is 0, the first device is instructed to abandon the use of the corresponding path to transmit data. For example, for any of the plurality of paths, if the indication bit of the first device in the data packet received on the path changes from 1 to 0, the first device abandons using the path to transmit data.
当然,还可以对QUIC协议进行扩展,例如,新增一个QUIC协议扩展帧,如图3B所示的一种扩展帧。其中,该扩展帧中包括以下字段:帧类型(Type)字段、流标识(Stream ID)字段以及切换指示字段。其中,帧类型区别于QUIC协议现有的帧类型,流标识用于指示该第一路径切换指示所属的数据子流,切换指示字段用于承载该第二路径切换指示。Of course, the QUIC protocol can also be extended, for example, by adding a QUIC protocol extension frame, such as an extension frame as shown in FIG. 3B. The extended frame includes the following fields: a frame type field, a stream ID field, and a switch indication field. The frame type is different from the existing frame type of the QUIC protocol, and the flow identifier is used to indicate the data substream to which the first path switch indication belongs, and the handover indication field is used to carry the second path switch indication.
当采用MPTCP协议时,该第一路径切换指示可以携带在MPTCP协议的指定字段内发送,该MPTCP的指定字段可以为MPTCP的Subtype字段。例如,可以对Subtype字段进行重新定义,以承载该第二路径切换指示。When the MPTCP protocol is adopted, the first path switching indication may be carried in a specified field of the MPTCP protocol, and the specified field of the MPTCP may be a Subtype field of the MPTCP. For example, the Subtype field can be redefined to carry the second path switching indication.
上述步骤402和步骤403是第二设备向第一设备发送路径切换指示的过程。The above steps 402 and 403 are processes in which the second device sends a path switching indication to the first device.
404、如果第一设备在多条路径中的至少一条路径中接收到第二设备的第二路径切换指示,将多条路径中没有接收到第二路径切换指示的路径确定为第一路径,将至少一条路径确定为第二路径。404. If the first device receives the second path switching indication of the second device in the at least one of the multiple paths, the path that does not receive the second path switching indication in the multiple paths is determined as the first path, where At least one path is determined to be the second path.
第一设备在确定第一路径之后,可以将该第一路径对应的网络接口标记为不可用状态,以指示后续使用该第一路径传输数据。After determining the first path, the first device may mark the network interface corresponding to the first path as an unavailable state to indicate subsequent use of the first path to transmit data.
405、第一设备通过该第二路径,向第二设备发送数据。405. The first device sends data to the second device by using the second path.
该步骤与上述步骤306同理,在此不做赘述。当然,在该实施例中,第一设备在弃用第一路径后,也可以在第一路径满足预设时延要求后,重新使用该第一路径传输数据,该过程与上述重新使用第一路径传输数据的过程同理,在此不做赘述。This step is the same as step 306 above, and will not be described here. Of course, in this embodiment, after the first path is discarded, the first device may re-use the first path to transmit data after the first path meets the preset delay requirement, and the process is re-used with the foregoing. The process of transferring data by path is the same, and will not be described here.
本实施例提供的方法,第二设备在检测到缓存的数据满足路径切换条件时,根据数据缓存的情况,从当前进行数据传输的多条路径中找出影响数据传输效率的路径,并通过路径切换指示通知第一设备放弃在该路径上进行传输,使得第一设备仅在剩余的路径时延较小的路径上进行数据传输,提高了数据传输的效率。In the method provided by the embodiment, when detecting that the cached data satisfies the path switching condition, the second device finds a path that affects the data transmission efficiency from multiple paths of the current data transmission according to the data cache condition, and passes the path. The handover indication notifies the first device to abandon the transmission on the path, so that the first device performs data transmission only on the path with the remaining path delay, thereby improving the efficiency of data transmission.
上述图3A和图4所提供的实施例是从第一设备和第二设备之间进行数据传输的路径数目由多到少的角度进行介绍,在第一设备在采用部分路径与第二设备进行数据传输的过程 中,还可以增加进行数据传输的路径个数,详细过程参见图5所提供的实施例。The embodiments provided in FIG. 3A and FIG. 4 above are introduced from the perspective of the number of paths for data transmission between the first device and the second device, and the first device performs the partial path with the second device. Data transfer process In addition, the number of paths for data transmission can also be increased. For the detailed process, refer to the embodiment provided in FIG. 5.
图5是本公开实施例提供的一种数据发送方法的流程图,参见图5,包括以下步骤:FIG. 5 is a flowchart of a data sending method according to an embodiment of the present disclosure. Referring to FIG. 5, the following steps are included:
501、在采用第一路径与第二设备进行数据传输的过程中,第一设备对多条路径进行时延抖动检测,得到多条路径中每条路径的路径时延,第一路径为多条路径中的至少一条路径。501: In the process of performing data transmission by using the first path and the second device, the first device performs delay jitter detection on multiple paths, and obtains a path delay of each path in the multiple paths, where the first path is multiple At least one path in the path.
其中,多条路径为第一设备与第二设备之间可用来进行数据传输的全部路径,第一路径为多条路径中的部分路径。多条路径中每两条路径之间的时延差为每两条路径的单向时延差,或者为往返时延RTT时延差,关于单向时延差和RTT时延差的说明与步骤303中的说明同理,在此不再赘述。The multiple paths are all paths that can be used for data transmission between the first device and the second device, and the first path is a partial path among the multiple paths. The delay difference between each two paths in the multiple paths is the one-way delay difference of each two paths, or the RTT delay difference of the round-trip delay, and the description of the one-way delay difference and the RTT delay difference The description in step 303 is the same, and will not be described again here.
本实施例中,第一设备触发对多条路径的时延抖动检测可以包括下述两种情况:In this embodiment, the first device triggering delay jitter detection on multiple paths may include the following two situations:
第一种情况、第一设备根据预设周期对多条路径进行时延抖动检测。该预设周期可以由第一设备或者第二设备进行预先配置或修改,本实施例对此不作限定。In the first case, the first device performs delay jitter detection on multiple paths according to a preset period. The preset period may be pre-configured or modified by the first device or the second device, which is not limited in this embodiment.
第二种情况、第一设备在检测到多条路径中包括第三路径时,对多条路径进行时延抖动检测,第三路径是指多条路径中除第一路径以外的、对应类型的网络服务区可用的路径。In the second case, when the first device detects that the multiple paths include the third path, the first path performs delay jitter detection on the multiple paths, and the third path refers to a corresponding type of the multiple paths except the first path. The path available to the network service area.
第一设备不同类型的网络接口对应不同类型的网络服务区,通过每个网络接口可以与第二设备之间建立一条路径,第一设备所处的地理位置在相应网络服务区内时,才能够通过相应的网络接口与第二设备之间成功建立一条路径。其中,第一设备所处的地理位置在相应网络服务区内且可以接入到该服务区时,表示该网络服务区可用。比如,WiFi接口对应WiFi网络服务区,3G接口对应3G网络服务区,当WiFi网络服务区可用时,第一设备才能与第二设备建立WiFi连接,当3G网络服务区可用时,第一设备才能与第二设备建立3G连接。Different types of network interfaces of the first device correspond to different types of network service areas, and each network interface can establish a path with the second device, and the geographical location of the first device is within the corresponding network service area. A path is successfully established between the corresponding network interface and the second device. Wherein, when the geographical location of the first device is in the corresponding network service area and can access the service area, it indicates that the network service area is available. For example, the WiFi interface corresponds to the WiFi network service area, and the 3G interface corresponds to the 3G network service area. When the WiFi network service area is available, the first device can establish a WiFi connection with the second device. When the 3G network service area is available, the first device can Establish a 3G connection with the second device.
在该第二种情况中,对于除第一路径以外的路径,第一设备可以检测该路径对应类型的网络服务区是否可用,如果该路径对应类型的网络服务区可用,则将该路径确定为第三路径。例如,第一设备当前没有与第二设备建立WiFi连接,则当第一设备的位置移动到某个WiFi网络服务区内时,如果第一设备检测到已经接入该WiFi服务区,则可以将WiFi接口对应的路径确定为第三路径。当然,该举例默认第一设备已经开启WiFi功能。In the second case, for a path other than the first path, the first device may detect whether the network service area of the corresponding type of the path is available, and if the network service area of the corresponding type of the path is available, determine the path as The third path. For example, if the first device does not currently establish a WiFi connection with the second device, when the location of the first device moves to a certain WiFi network service area, if the first device detects that the WiFi service area has been accessed, the The path corresponding to the WiFi interface is determined to be the third path. Of course, the example defaults that the first device has enabled the WiFi function.
其中,第一设备对多条路径进行时延抖动检测的过程可以为:第一设备根据在第一路径上发送的数据包的发送时间以及第二设备对数据包的接收反馈信息,确定第一路径的路径时延;对于多条路径中除第一路径以外的路径,在路径上发送预设检测包;根据预设检测包的发送时间以及第二设备对预设检测包的接收反馈信息,确定路径的路径时延。需要说明的是,由于第一设备还没有采用除第一路径以外的路径传输数据,第一设备可以通过预设检测包来获取第一路径以外的路径的路径时延。其中,预设检测包可以为ping包,或者为其他检测包,本实施例对此不作限定。The process of the first device performing delay jitter detection on multiple paths may be: the first device determines the first according to the sending time of the data packet sent on the first path and the receiving feedback information of the second device to the data packet. Path delay of the path; for a path other than the first path of the multiple paths, the preset detection packet is sent on the path; according to the preset detection packet sending time and the second device receiving feedback information of the preset detection packet, Determine the path delay of the path. It should be noted that, because the first device has not used the path except the first path to transmit data, the first device may obtain the path delay of the path other than the first path by using the preset detection packet. The preset detection packet may be a ping packet or other detection packet, which is not limited in this embodiment.
502、第一设备确定第二路径,该第二路径为所述多条路径中除第一路径以外的、且对应路径时延满足预设时延要求的至少一条路径。502. The first device determines a second path, where the second path is at least one path of the multiple paths except the first path and the corresponding path delay meets a preset delay requirement.
第一设备从多条路径中确定第二路径的过程可以包括以下两种方式:The process of determining, by the first device, the second path from the multiple paths may include the following two methods:
第一种方式、根据路径的路径时延和预设时延要求,从多条路径中确定第二路径。In the first manner, the second path is determined from the multiple paths according to the path delay of the path and the preset delay requirement.
在该种方式中,对于多条路径中除第一路径以外的路径,如果路径的路径时延小于第一阈值,则确定路径满足预设时延要求,将路径确定为第二路径。该种方式与上述步骤304 中确定多条路径中是否包括第一路径的第一种方式同理,在此不做赘述。In this manner, for a path other than the first path among the multiple paths, if the path delay of the path is less than the first threshold, it is determined that the path meets the preset delay requirement, and the path is determined to be the second path. The method and the above step 304 The first way to determine whether the first path is included in multiple paths is the same, and will not be described here.
第二种方式、根据各个路径的路径时延的时延差和预设时延要求,从多条路径中确定第二路径。In the second manner, the second path is determined from the multiple paths according to the delay difference of the path delay of each path and the preset delay requirement.
在该种方式中,第一设备根据该多条路径中每条路径的路径时延,确定多条路径中每两条路径之间的时延差;对于多条路径中除第一路径以外的路径,如果路径对应的时延差小于第二阈值,则确定路径满足预设时延要求,将路径确定为第二路径。该种方式与上述步骤304中确定多条路径中是否包括第一路径的第二种方式同理,在此不做赘述。In this manner, the first device determines a delay difference between each of the plurality of paths according to a path delay of each of the plurality of paths; and the plurality of paths except the first path A path, if the delay difference corresponding to the path is less than the second threshold, determining that the path meets the preset delay requirement, and determining the path as the second path. This method is the same as the second method of determining whether the first path is included in the multiple paths in the foregoing step 304, and details are not described herein.
503、第一设备通过第一路径和第二路径,向第二设备发送数据。503. The first device sends data to the second device by using the first path and the second path.
当第一设备确定第二路径后,如果该第二路径对应的网络接口处于不可用状态,则第一设备可以将该网络接口的状态设置为可用状态,从而通过该第二路径向第二设备发送数据。After the first device determines the second path, if the network interface corresponding to the second path is in an unavailable state, the first device may set the state of the network interface to an available state, thereby using the second path to the second device. send data.
本实施例提供的方法,当第一设备采用多路径的部分路径进行数据传输时,当检测到未进行数据传输的路径满足预设时延要求时,采用该路径进行数据传输,从而能够根据路径时延的实际情况灵活调整进行数据传输的路径,提高了数据传输的效率。The method provided in this embodiment, when the first device uses the partial path of the multipath to perform data transmission, when detecting that the path that does not perform data transmission meets the preset delay requirement, the path is used for data transmission, thereby being able to perform the data according to the path. The actual situation of the delay flexibly adjusts the path of data transmission and improves the efficiency of data transmission.
图6是本公开实施例提供的一种数据发送装置的框图,参见图6,包括:第一确定模块601,第二确定模块602,发送模块603和检测模块604。FIG. 6 is a block diagram of a data sending apparatus according to an embodiment of the present disclosure. Referring to FIG. 6, the first determining module 601, the second determining module 602, the sending module 603, and the detecting module 604 are included.
其中,第一确定模块601被配置为执行上述步骤304或404中确定第二路径的过程;The first determining module 601 is configured to perform the process of determining the second path in the foregoing step 304 or 404;
发送模块602被配置为执行上述步骤306或405的过程;The sending module 602 is configured to perform the process of step 306 or 405 above;
检测模块603被配置为执行上述步骤303的过程;The detecting module 603 is configured to perform the process of step 303 above;
第二确定模块604被配置为执行上述步骤305或404中确定第一路径的过程。The second determining module 604 is configured to perform the process of determining the first path in step 305 or 404 above.
图7是本公开实施例提供的一种数据发送装置的框图,参见图7,包括:检测模块701,发送模块702。其中,检测模块701包括第一检测子模块7011和第二检测子模块7012。发送模块702包括确定子模块7021和发送子模块7022。FIG. 7 is a block diagram of a data transmitting apparatus according to an embodiment of the present disclosure. Referring to FIG. 7, the detecting module 701 and the sending module 702 are included. The detection module 701 includes a first detection sub-module 7011 and a second detection sub-module 7012. The sending module 702 includes a determining submodule 7021 and a transmitting submodule 7022.
其中,检测模块701被配置为执行上述步骤301或401的过程;The detecting module 701 is configured to perform the process of step 301 or 401 described above;
第一检测子模块7011被配置为执行上述步骤301或401中检测缓存的数据量是否超过预设阈值的相关过程,第二检测子模块7012被配置为执行上述步骤301或401中检测缓存的数据包是否处于失序状态的过程。The first detecting sub-module 7011 is configured to perform a correlation process of detecting whether the buffered data amount exceeds a preset threshold in the above step 301 or 401, and the second detecting sub-module 7012 is configured to perform the detecting the cached data in the above step 301 or 401. Whether the package is in an out of order state.
发送模块702被配置为执行上述步骤302的过程;或者发送模块702的确定子模块7021被配置为执行上述步骤402的过程,发送子模块7022被配置为执行上述步骤403的过程。The transmitting module 702 is configured to perform the process of step 302 above; or the determining sub-module 7021 of the transmitting module 702 is configured to perform the process of step 402 above, and the transmitting sub-module 7022 is configured to perform the process of step 403 above.
图8是本公开实施例提供的一种数据发送装置的框图,参见图8,包括:检测模块801,确定模块802和发送模块803。FIG. 8 is a block diagram of a data transmitting apparatus according to an embodiment of the present disclosure. Referring to FIG. 8, the method includes: a detecting module 801, a determining module 802, and a sending module 803.
其中,检测模块801被配置为执行上述步骤501的过程;The detecting module 801 is configured to perform the process of step 501 described above;
确定模块802被配置为执行上述步骤502的过程;The determining module 802 is configured to perform the process of step 502 above;
发送模块803被配置为执行上述步骤503的过程。The transmitting module 803 is configured to perform the process of step 503 above.
需要说明的是:上述实施例提供的数据发送装置在发送数据时,仅以上述各功能模块 的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据发送装置与数据发送方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。It should be noted that the data sending apparatus provided by the foregoing embodiment only uses the above functional modules when transmitting data. The division is exemplified. In practical applications, the above function assignment can be completed by different functional modules as needed, that is, the internal structure of the device is divided into different functional modules to complete all or part of the functions described above. In addition, the data transmitting apparatus and the data sending method embodiment provided by the foregoing embodiments are in the same concept, and the specific implementation process is described in detail in the method embodiment, and details are not described herein again.
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。A person skilled in the art may understand that all or part of the steps of implementing the above embodiments may be completed by hardware, or may be instructed by a program to execute related hardware, and the program may be stored in a computer readable storage medium. The storage medium mentioned may be a read only memory, a magnetic disk or an optical disk or the like.
以上所述实施例并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。 The above-mentioned embodiments are not intended to limit the disclosure, and any modifications, equivalents, improvements, etc., made within the spirit and scope of the present disclosure are intended to be included within the scope of the present disclosure.

Claims (38)

  1. 一种数据发送方法,应用于第一设备,其特征在于,所述方法包括:A data sending method is applied to a first device, where the method includes:
    确定第一路径,所述第一路径为第一设备与第二设备之间用于传输数据的多条路径中的至少一条,所述第一路径所进行的数据传输的时延不满足预设时延要求;Determining a first path, where the first path is at least one of a plurality of paths for transmitting data between the first device and the second device, and the delay of data transmission performed by the first path does not meet the preset Delay requirement
    确定第二路径,所述第二路径为所述多条路径中的至少一条,所述第二路径不同于所述第一路径;Determining a second path, the second path being at least one of the plurality of paths, the second path being different from the first path;
    通过所述第二路径,向所述第二设备发送数据。Transmitting data to the second device through the second path.
  2. 根据权利要求1所述的方法,其特征在于,所述确定第一路径,包括:The method of claim 1, wherein the determining the first path comprises:
    对所述多条路径进行时延抖动检测,得到所述多条路径中每条路径的路径时延;Performing delay jitter detection on the multiple paths to obtain a path delay of each of the multiple paths;
    根据所述多条路径中每条路径的路径时延和所述预设时延要求,确定所述第一路径。Determining the first path according to a path delay of each path of the multiple paths and the preset delay requirement.
  3. 根据权利要求2所述的方法,其特征在于,所述根据所述多条路径中每条路径的路径时延和所述预设时延要求,确定所述第一路径,包括:The method according to claim 2, wherein the determining the first path according to the path delay of each path of the multiple paths and the preset delay requirement comprises:
    对于所述多条路径中的每条路径,如果所述路径的路径时延超过第一阈值,确定所述路径的路径时延不满足所述预设时延要求,将所述路径确定为所述第一路径;或,For each of the multiple paths, if the path delay of the path exceeds the first threshold, determining that the path delay of the path does not meet the preset delay requirement, determining the path as The first path; or,
    根据所述多条路径中每条路径的路径时延,确定所述多条路径中每两条路径的时延差;如果确定的时延差中包括超过第二阈值的时延差,确定所述超过第二阈值的时延差对应路径的路径时延不满足所述预设时延要求,将所述超过第二阈值的时延差所对应的路径确定为所述第一路径。Determining a delay difference of each of the plurality of paths according to a path delay of each of the plurality of paths; if the determined delay difference includes a delay difference exceeding a second threshold, determining The path delay of the path corresponding to the delay difference exceeding the second threshold does not satisfy the preset delay requirement, and the path corresponding to the delay difference exceeding the second threshold is determined as the first path.
  4. 根据权利要求2所述的方法,其特征在于,所述对所述多条路径进行时延抖动检测,包括:The method according to claim 2, wherein the performing delay jitter detection on the plurality of paths comprises:
    根据预设周期对所述多条路径进行时延抖动检测;或,Performing delay jitter detection on the plurality of paths according to a preset period; or
    当接收到所述第二设备的第一路径切换指示时,对所述多条路径进行时延抖动检测,所述第一路径切换指示用于指示所述第一设备对所述多条路径进行时延抖动检测。And performing a delay jitter detection on the multiple paths when the first path switching indication of the second device is received, where the first path switching indication is used to instruct the first device to perform the multiple paths Delay jitter detection.
  5. 根据权利要求2至4任一项所述的方法,其特征在于,所述多条路径中每条路径的路径时延为所述每条路径的单向时延,或者为所述每条路径的往返时延RTT。The method according to any one of claims 2 to 4, wherein a path delay of each of the plurality of paths is a one-way delay of each path, or each path Round trip delay RTT.
  6. 根据权利要求1所述的方法,其特征在于,所述确定第一路径,包括:The method of claim 1, wherein the determining the first path comprises:
    如果在所述多条路径中的至少一条路径中接收到所述第二设备的第二路径切换指示,将所述多条路径中没有接收到所述第二路径切换指示的路径确定为所述第一路径;If the second path switching indication of the second device is received in the at least one of the multiple paths, the path that does not receive the second path switching indication in the multiple paths is determined as the First path;
    相应地,所述确定第二路径,包括:Correspondingly, the determining the second path comprises:
    将所述至少一条路径确定为所述第二路径。The at least one path is determined as the second path.
  7. 根据权利要求1所述的方法,其特征在于,所述通过所述第二路径,向所述第二设备发送数据之后,所述方法还包括: The method according to claim 1, wherein after the sending the data to the second device by using the second path, the method further comprises:
    对所述多条路径进行时延抖动检测,得到所述多条路径中每条路径的路径时延;Performing delay jitter detection on the multiple paths to obtain a path delay of each of the multiple paths;
    如果所述第一路径的路径时延满足所述预设时延要求,则通过所述第一路径向所述第二设备发送数据;And if the path delay of the first path meets the preset delay requirement, sending data to the second device by using the first path;
    其中,所述第一路径的路径时延满足预设时延要求是指所述第一路径的路径时延小于第一阈值,或,所述第一路径对应的时延差小于第二阈值。The path delay of the first path meets the preset delay requirement, that is, the path delay of the first path is smaller than the first threshold, or the delay difference corresponding to the first path is smaller than the second threshold.
  8. 一种数据发送方法,应用于第二设备,其特征在于,所述方法包括:A data sending method is applied to a second device, where the method includes:
    在采用多条路径与第一设备进行数据传输的过程中,检测缓存的数据是否满足路径切换条件;In the process of using multiple paths to perform data transmission with the first device, detecting whether the cached data meets the path switching condition;
    如果所述缓存的数据满足所述路径切换条件,则向所述第一设备发送路径切换指示,由所述第一设备根据所述路径切换指示在所述多条路径的部分路径上发送数据。And if the cached data meets the path switching condition, sending a path switching indication to the first device, where the first device sends data on a part of the paths of the multiple paths according to the path switching indication.
  9. 根据权利要求8所述的方法,其特征在于,所述检测缓存的数据是否满足预设切换条件,包括:The method according to claim 8, wherein the detecting whether the buffered data meets a preset switching condition comprises:
    检测缓存的数据量是否超过预设阈值;如果所述缓存的数据量超过所述预设阈值,则确定所述缓存的数据满足所述预设切换条件;或,Determining whether the buffered data amount exceeds a preset threshold; if the buffered data amount exceeds the preset threshold, determining that the cached data meets the preset switching condition; or
    检测缓存的数据包是否处于失序状态;如果所述缓存的数据包处于失序状态,则确定所述缓存的数据满足所述预设切换条件。Detecting whether the cached data packet is in an out-of-sequence state; if the cached data packet is in an out-of-order state, determining that the cached data meets the preset switching condition.
  10. 根据权利要求9所述的方法,其特征在于,所述检测缓存的数据包是否处于失序状态,包括:The method according to claim 9, wherein the detecting whether the buffered data packet is in an out-of-sequence state comprises:
    如果所述缓存的数据包的序号不连续、且序号不连续的时长超过预设时长,确定所述缓存的数据包处于失序状态;或,If the serial number of the cached data packet is not continuous, and the duration of the serial number is not longer than the preset duration, determining that the cached data packet is in an out-of-sequence state; or
    如果所述缓存的数据包的序号不连续的数目超过预设数目,确定所述缓存的数据包处于失序状态。If the number of discontinuous serial numbers of the cached data packets exceeds a preset number, it is determined that the cached data packets are in an out-of-order state.
  11. 根据权利要求8所述的方法,其特征在于,所述向所述第一设备发送路径切换指示,包括:The method according to claim 8, wherein the sending the path switching indication to the first device comprises:
    向所述第一设备发送第一路径切换指示,所述第一路径切换指示用于指示所述第一设备对所述多条路径进行时延抖动检测。And sending, by the first device, a first path switching indication, where the first path switching indication is used to instruct the first device to perform delay jitter detection on the multiple paths.
  12. 根据权利要求8所述的方法,其特征在于,所述向所述第一设备发送路径切换指示,包括:The method according to claim 8, wherein the sending the path switching indication to the first device comprises:
    从所述多条路径中确定第一路径,所述第一路径为导致所述缓存的数据满足路径切换条件的路径;Determining, by the plurality of paths, a first path, where the first path is a path that causes the cached data to satisfy a path switching condition;
    通过第二路径向所述第一设备发送第二路径切换指示,所述第二路径为所述多条路径中的至少一条,所述第二路径不同于所述第一路径。Transmitting, by the second path, a second path switching indication to the first device, where the second path is at least one of the multiple paths, and the second path is different from the first path.
  13. 根据权利要求12所述的方法,其特征在于,所述从所述多条路径中确定第一路径, 包括:The method according to claim 12, wherein said determining said first path from said plurality of paths, include:
    根据在所述多条路径中每条路径的接收的数据包,将导致缓存的数据包的序号不连续的路径确定为所述第一路径。A path that causes the serial number of the buffered data packet to be discontinuous is determined as the first path according to the received data packet of each of the plurality of paths.
  14. 根据权利要求8所述的方法,其特征在于,所述向所述第一设备发送路径切换指示包括:The method according to claim 8, wherein the sending the path switching indication to the first device comprises:
    将所述路径切换指示携带在低时延的互联网传输层协议QUIC协议的指定字段内发送至所述第一设备;或,Transmitting the path switch indication to the first device in a specified field of a low latency internet transport layer protocol QUIC protocol; or
    将所述路径切换指示携带在QUIC协议的扩展帧内发送至所述第一设备;或,Transmitting the path switch indication to the first device in an extended frame of the QUIC protocol; or
    将所述路径切换指示携带在多径TCP协议MPTCP的指定字段内发送至所述第一设备。And transmitting the path switch indication to the first device in a specified field of the multipath TCP protocol MPTCP.
  15. 一种数据发送方法,应用于第一设备,其特征在于,所述方法包括:A data sending method is applied to a first device, where the method includes:
    在采用第一路径与第二设备进行数据传输的过程中,对多条路径进行时延抖动检测,得到所述多条路径中每条路径的路径时延,所述第一路径为第一设备与第二设备之间用于传输数据的所述多条路径中的至少一条;During the data transmission by using the first path and the second device, the delay jitter detection is performed on the multiple paths, and the path delay of each path in the multiple paths is obtained, where the first path is the first device. At least one of the plurality of paths for transmitting data with the second device;
    确定第二路径,所述第二路径为所述多条路径中除所述第一路径以外的、且对应路径时延满足预设时延要求的至少一条路径;Determining a second path, where the second path is at least one of the plurality of paths except the first path, and the corresponding path delay meets a preset delay requirement;
    通过所述第一路径和所述第二路径,向所述第二设备发送数据。Transmitting data to the second device through the first path and the second path.
  16. 根据权利要求15所述的方法,其特征在于,所述确定第二路径,包括:The method of claim 15, wherein the determining the second path comprises:
    对于所述多条路径中除所述第一路径以外的路径,如果所述路径的路径时延小于第一阈值,则确定所述路径的路径时延满足所述预设时延要求,将所述路径确定为所述第二路径;或,If the path delay of the path is smaller than the first threshold, determining that the path delay of the path meets the preset delay requirement, The path is determined as the second path; or,
    根据所述多条路径中每条路径的路径时延,确定所述多条路径中每两条路径之间的时延差;对于所述多条路径中除所述第一路径以外的路径,如果所述路径对应的时延差小于第二阈值,则确定所述路径的路径时延满足所述预设时延要求,将所述路径确定为所述第二路径。Determining a delay difference between each of the plurality of paths according to a path delay of each of the plurality of paths; and for a path other than the first path among the plurality of paths, If the delay difference corresponding to the path is less than the second threshold, determining that the path delay of the path meets the preset delay requirement, and determining the path as the second path.
  17. 根据权利要求15或16所述的方法,其特征在于,所述多条路径中每条路径的路径时延为所述每条路径的单向时延,或者为所述每条路径的往返时延RTT。The method according to claim 15 or 16, wherein a path delay of each of the plurality of paths is a one-way delay of each of the paths, or a round trip of each of the paths Extended RTT.
  18. 根据权利要求15所述的方法,其特征在于,所述对多条路径进行时延抖动检测,包括:The method according to claim 15, wherein the performing delay jitter detection on the plurality of paths comprises:
    根据预设周期对所述多条路径进行时延抖动检测;或,Performing delay jitter detection on the plurality of paths according to a preset period; or
    当检测到所述多条路径中包括第三路径时,对所述多条路径进行时延抖动检测,所述第三路径是指所述多条路径中除所述第一路径以外的、对应类型的网络服务区可用的路径。When detecting that the plurality of paths include the third path, performing delay jitter detection on the multiple paths, where the third path refers to a corresponding one of the plurality of paths except the first path The path available for the type of network service area.
  19. 根据权利要求15所述的方法,其特征在于,所述对所述多条路径进行时延抖动检测,得到所述多条路径中每条路径的路径时延,包括:The method according to claim 15, wherein the performing the delay jitter detection on the plurality of paths, and obtaining the path delay of each of the plurality of paths, comprising:
    根据在所述第一路径上发送的数据包的发送时间以及所述第二设备对所述数据包的接收 反馈信息,确定所述第一路径的路径时延;Transmitting time according to a data packet sent on the first path and receiving the data packet by the second device Feedback information, determining a path delay of the first path;
    对于所述多条路径中除所述第一路径以外的路径,在所述路径上发送预设检测包;根据所述预设检测包的发送时间以及所述第二设备对所述预设检测包的接收反馈信息,确定所述路径的路径时延。And sending, by the path other than the first path, a preset detection packet on the path; detecting a sending time of the packet according to the preset, and detecting, by the second device, the preset detection The packet receives feedback information to determine the path delay of the path.
  20. 一种数据发送装置,其特征在于,所述装置包括:A data transmitting device, characterized in that the device comprises:
    第一确定模块,用于确定第一路径,所述第一路径为第一设备与第二设备之间用于传输数据的多条路径中的至少一条,所述第一路径所进行的数据传输的时延不满足预设时延要求;a first determining module, configured to determine a first path, where the first path is at least one of a plurality of paths for transmitting data between the first device and the second device, and data transmission by the first path The delay does not meet the preset delay requirement;
    第二确定模块,用于确定第二路径,所述第二路径为所述多条路径中的至少一条,所述第二路径不同于所述第一路径;a second determining module, configured to determine a second path, where the second path is at least one of the multiple paths, where the second path is different from the first path;
    发送模块,用于通过所述第二路径,向所述第二设备发送数据。And a sending module, configured to send data to the second device by using the second path.
  21. 根据权利要求20所述的装置,其特征在于,所述装置还包括:The device of claim 20, wherein the device further comprises:
    检测模块,用于对所述多条路径进行时延抖动检测,得到所述多条路径中每条路径的路径时延;a detecting module, configured to perform delay jitter detection on the multiple paths, and obtain a path delay of each path in the multiple paths;
    所述第一确定模块,用于根据所述多条路径中每条路径的路径时延和所述预设时延要求,确定所述第一路径。The first determining module is configured to determine the first path according to a path delay of each path of the multiple paths and the preset delay requirement.
  22. 根据权利要求21所述的装置,其特征在于,所述第一确定模块,用于:The device according to claim 21, wherein the first determining module is configured to:
    对于所述多条路径中的每条路径,如果所述路径的路径时延超过第一阈值,确定所述路径不满足所述预设时延要求,将所述路径确定为所述第一路径;或,For each of the plurality of paths, if the path delay of the path exceeds a first threshold, determining that the path does not meet the preset delay requirement, determining the path as the first path ;or,
    根据所述多条路径中每条路径的路径时延,确定所述多条路径中每两条路径的时延差;如果确定的时延差中包括超过第二阈值的时延差,确定所述超过第二阈值的时延差对应的路径不满足所述预设时延要求,将所述超过第二阈值的时延差对应的路径确定为所述第一路径。Determining a delay difference of each of the plurality of paths according to a path delay of each of the plurality of paths; if the determined delay difference includes a delay difference exceeding a second threshold, determining The path corresponding to the delay difference exceeding the second threshold does not satisfy the preset delay requirement, and the path corresponding to the delay difference exceeding the second threshold is determined as the first path.
  23. 根据权利要求21所述的装置,其特征在于,所述检测模块,用于:The device according to claim 21, wherein the detecting module is configured to:
    根据预设周期对所述多条路径进行时延抖动检测;或,Performing delay jitter detection on the plurality of paths according to a preset period; or
    当接收到所述第二设备的第一路径切换指示时,对所述多条路径进行时延抖动检测,所述第一路径切换指示用于指示所述第一设备对所述多条路径进行时延抖动检测。And performing a delay jitter detection on the multiple paths when the first path switching indication of the second device is received, where the first path switching indication is used to instruct the first device to perform the multiple paths Delay jitter detection.
  24. 根据权利要求21至23任一项所述的装置,其特征在于,所述多条路径中每条路径的路径时延为所述每条路径的单向时延,或者为所述每条路径的往返时延RTT。The apparatus according to any one of claims 21 to 23, wherein a path delay of each of the plurality of paths is a one-way delay of each of the paths, or each of the paths Round trip delay RTT.
  25. 根据权利要求20所述的装置,其特征在于,所述第一确定模块,还用于如果在所述多条路径中的至少一条路径中接收到第二设备的第二路径切换指示,将所述多条路径中没有接收到所述第二路径切换指示的路径确定为所述第一路径,所述第二确定模块,还用于将所述至少一条路径确定为所述第二路径。The device according to claim 20, wherein the first determining module is further configured to: if a second path switching indication of the second device is received in at least one of the plurality of paths, The path that is not received by the second path switching indication is determined as the first path, and the second determining module is further configured to determine the at least one path as the second path.
  26. 根据权利要求20所述的装置,其特征在于,所述检测模块还用于对所述多条路径进 行时延抖动检测,得到所述多条路径中每条路径的路径时延;所述发送模块还用于如果所述第一路径的路径时延满足所述预设时延要求,则在所述第一路径上向所述第二设备发送数据;The apparatus according to claim 20, wherein said detecting module is further configured to feed said plurality of paths The line delay jitter detection is performed to obtain a path delay of each of the multiple paths. The sending module is further configured to: if the path delay of the first path meets the preset delay requirement, Transmitting data to the second device on the first path;
    其中,所述第一路径的路径时延满足预设时延要求是指所述第一路径的路径时延小于第一阈值,或,所述第一路径对应的时延差小于第二阈值。The path delay of the first path meets the preset delay requirement, that is, the path delay of the first path is smaller than the first threshold, or the delay difference corresponding to the first path is smaller than the second threshold.
  27. 一种数据发送装置,其特征在于,所述装置包括:A data transmitting device, characterized in that the device comprises:
    检测模块,用于在采用多条路径与第一设备进行数据传输的过程中,检测缓存的数据是否满足路径切换条件;a detecting module, configured to detect whether the cached data meets a path switching condition during a process of using a plurality of paths to perform data transmission with the first device;
    发送模块,用于当所述缓存的数据满足所述路径切换条件,向所述第一设备发送路径切换指示,由所述第一设备根据所述路径切换指示在所述多条路径的部分路径上发送数据。a sending module, configured to: when the cached data meets the path switching condition, send a path switching indication to the first device, where the first device indicates a partial path of the multiple paths according to the path switching Send data on.
  28. 根据权利要求27所述的装置,其特征在于,所述检测模块包括第一检测子模块和第二检测子模块,The apparatus according to claim 27, wherein said detecting module comprises a first detecting submodule and a second detecting submodule,
    所述第一检测子模块,用于检测缓存的数据量是否超过预设阈值;如果所述缓存的数据量超过所述预设阈值,则确定所述缓存的数据满足所述预设切换条件;或,The first detecting submodule is configured to detect whether the buffered data amount exceeds a preset threshold; if the cached data amount exceeds the preset threshold, determining that the cached data meets the preset switching condition; or,
    所述第二检测模块,用于检测缓存的数据包是否处于失序状态;如果所述缓存的数据包处于失序状态,则确定所述缓存的数据满足所述预设切换条件。The second detecting module is configured to detect whether the buffered data packet is in an out-of-order state; if the cached data packet is in an out-of-order state, determining that the cached data meets the preset switching condition.
  29. 根据权利要求28所述的装置,其特征在于,所述第二检测子模块用于:The apparatus according to claim 28, wherein said second detecting submodule is for:
    如果所述缓存的数据包的序号不连续、且序号不连续的时长超过预设时长,确定所述缓存的数据包处于失序状态;或,If the serial number of the cached data packet is not continuous, and the duration of the serial number is not longer than the preset duration, determining that the cached data packet is in an out-of-sequence state; or
    如果所述缓存的数据包的序号不连续的数目超过预设数目,确定所述缓存的数据包处于失序状态。If the number of discontinuous serial numbers of the cached data packets exceeds a preset number, it is determined that the cached data packets are in an out-of-order state.
  30. 根据权利要求27所述的装置,其特征在于,所述发送模块用于向所述第一设备发送第一路径切换指示,所述第一路径切换指示用于指示所述第一设备对所述多条路径进行时延抖动检测。The device according to claim 27, wherein the sending module is configured to send a first path switching indication to the first device, where the first path switching indication is used to instruct the first device to Multiple paths for delay jitter detection.
  31. 根据权利要求27所述的装置,其特征在于,所述发送模块包括确定子模块和发送子模块,The apparatus according to claim 27, wherein said transmitting module comprises a determining submodule and a transmitting submodule,
    所述确定子模块,用于从所述多条路径中确定第一路径,所述第一路径为导致所述缓存的数据满足路径切换条件的路径;The determining submodule is configured to determine a first path from the multiple paths, where the first path is a path that causes the cached data to meet a path switching condition;
    所述发送子模块,用于通过第二路径向所述第一设备发送第二路径切换指示,所述第二路径为所述多条路径中的至少一条,所述第二路径不同于所述第一路径。The sending submodule is configured to send, by using the second path, a second path switching indication to the first device, where the second path is at least one of the multiple paths, where the second path is different from the The first path.
  32. 根据权利要求31所述的装置,其特征在于,所述确定子模块用于根据在所述多条路径中每条路径的接收的数据包,将导致缓存的数据包的序号不连续的路径确定为所述第一路径。 The apparatus according to claim 31, wherein said determining submodule is configured to determine a path of the sequence number of the data packet that causes the buffer to be discontinuous according to the received data packet of each of the plurality of paths Is the first path.
  33. 根据权利要求27所述的装置,其特征在于,所述发送模块还用于:The device according to claim 27, wherein the sending module is further configured to:
    将所述路径切换指示携带在低时延的互联网传输层协议QUIC协议的指定字段内发送至所述第一设备;或,Transmitting the path switch indication to the first device in a specified field of a low latency internet transport layer protocol QUIC protocol; or
    将所述路径切换指示携带在QUIC协议的扩展帧内发送至所述第一设备;或,Transmitting the path switch indication to the first device in an extended frame of the QUIC protocol; or
    将所述路径切换指示携带在多径TCP协议MPTCP的指定字段内发送至所述第一设备。And transmitting the path switch indication to the first device in a specified field of the multipath TCP protocol MPTCP.
  34. 一种数据发送装置,其特征在于,所述装置包括:A data transmitting device, characterized in that the device comprises:
    检测模块,用于在第一设备采用第一路径与第二设备进行数据传输的过程中,对多条路径进行时延抖动检测,得到所述多条路径中每条路径的路径时延,所述第一路径为第一设备与第二设备之间用于传输数据的所述多条路径中的至少一条;a detecting module, configured to perform delay jitter detection on multiple paths in the process of using the first path and the second device to perform data transmission, to obtain a path delay of each path in the multiple paths, where The first path is at least one of the plurality of paths for transmitting data between the first device and the second device;
    确定模块,用于确定第二路径,所述第二路径为所述多条路径中除所述第一路径以外的、且对应路径时延满足预设时延要求的至少一条路径;a determining module, configured to determine a second path, where the second path is at least one path of the plurality of paths except the first path, and the corresponding path delay meets a preset delay requirement;
    发送模块,用于通过所述第一路径和所述第二路径,向所述第二设备发送数据。And a sending module, configured to send data to the second device by using the first path and the second path.
  35. 根据权利要求34所述的装置,其特征在于,所述确定模块用于:The apparatus according to claim 34, wherein said determining module is configured to:
    对于所述多条路径中除所述第一路径以外的路径,如果所述路径的路径时延小于第一阈值,则确定所述路径满足所述预设时延要求,将所述路径确定为所述第二路径;或,If the path delay of the path is smaller than the first threshold, the path is determined to meet the preset delay requirement, and the path is determined as The second path; or,
    根据所述多条路径的路径时延中每条路径的路径时延,确定所述多条路径中每两条路径之间的时延差;对于所述多条路径中除所述第一路径以外的路径,如果所述路径对应的时延差小于第二阈值,则确定所述路径的路径时延满足所述预设时延要求,将所述路径确定为所述第二路径。Determining a delay difference between each of the plurality of paths according to a path delay of each of the path delays of the plurality of paths; and selecting the first path for the plurality of paths If the path delay corresponding to the path is less than the second threshold, determining that the path delay of the path meets the preset delay requirement, and determining the path as the second path.
  36. 根据权利要求34或35所述的装置,其特征在于,所述多条路径中每条路径的路径时延为所述每条路径的单向时延,或者为所述每条路径的往返时延RTT。The apparatus according to claim 34 or 35, wherein a path delay of each of the plurality of paths is a one-way delay of each of the paths, or a round trip of each of the paths Extended RTT.
  37. 根据权利要求34所述的装置,其特征在于,所述检测模块用于:The device according to claim 34, wherein said detecting module is configured to:
    根据预设周期对所述多条路径进行时延抖动检测;或,Performing delay jitter detection on the plurality of paths according to a preset period; or
    当检测到所述多条路径中包括第三路径时,对所述多条路径进行时延抖动检测,所述第三路径是指所述多条路径中除所述第一路径以外的、对应类型的网络服务区可用的路径。When detecting that the plurality of paths include the third path, performing delay jitter detection on the multiple paths, where the third path refers to a corresponding one of the plurality of paths except the first path The path available for the type of network service area.
  38. 根据权利要求34所述的装置,其特征在于,所述检测模块还用于根据在所述第一路径上发送的数据包的发送时间以及所述第二设备对所述数据包的接收反馈信息,确定所述第一路径的路径时延;对于所述多条路径中除所述第一路径以外的路径,在所述路径上发送预设检测包;根据所述预设检测包的发送时间以及所述第二设备对所述预设检测包的接收反馈信息,确定所述路径的路径时延。 The apparatus according to claim 34, wherein the detecting module is further configured to: according to a sending time of a data packet sent on the first path and a receiving feedback information of the second device to the data packet Determining a path delay of the first path; sending, by the path other than the first path, a preset detection packet on the path; and detecting a sending time of the packet according to the preset And receiving feedback information of the preset detection packet by the second device, and determining a path delay of the path.
PCT/CN2017/075902 2017-03-07 2017-03-07 Data transmission method and device WO2018161262A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2017/075902 WO2018161262A1 (en) 2017-03-07 2017-03-07 Data transmission method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2017/075902 WO2018161262A1 (en) 2017-03-07 2017-03-07 Data transmission method and device

Publications (1)

Publication Number Publication Date
WO2018161262A1 true WO2018161262A1 (en) 2018-09-13

Family

ID=63447195

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/075902 WO2018161262A1 (en) 2017-03-07 2017-03-07 Data transmission method and device

Country Status (1)

Country Link
WO (1) WO2018161262A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112019443A (en) * 2020-09-02 2020-12-01 首都师范大学 Multi-path data transmission method and device
CN112105055A (en) * 2020-08-21 2020-12-18 深圳市科思科技股份有限公司 Data transmission method and device, electronic equipment and storage medium
CN113055293A (en) * 2019-12-27 2021-06-29 华为技术有限公司 Routing method and device in software defined wide area network and communication system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011073495A1 (en) * 2009-12-14 2011-06-23 Nokia Corporation Method and apparatus for multipath communication
CN105490933A (en) * 2015-12-28 2016-04-13 中国电子科技集团公司第五十四研究所 MPTCP path management method based on multi-path transmission protocol and device
CN105610820A (en) * 2015-12-28 2016-05-25 中国电子科技集团公司第五十四研究所 Multipath transport control protocol (MPTCP) based congestion control method and apparatus

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011073495A1 (en) * 2009-12-14 2011-06-23 Nokia Corporation Method and apparatus for multipath communication
CN105490933A (en) * 2015-12-28 2016-04-13 中国电子科技集团公司第五十四研究所 MPTCP path management method based on multi-path transmission protocol and device
CN105610820A (en) * 2015-12-28 2016-05-25 中国电子科技集团公司第五十四研究所 Multipath transport control protocol (MPTCP) based congestion control method and apparatus

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
THALES ET AL.: "Traffic Splitting Across Several Access Links Including Satellite", 3GPP TSG SA2 MEETING #118, S2-166374, 18 November 2016 (2016-11-18), XP051184933 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113055293A (en) * 2019-12-27 2021-06-29 华为技术有限公司 Routing method and device in software defined wide area network and communication system
CN112105055A (en) * 2020-08-21 2020-12-18 深圳市科思科技股份有限公司 Data transmission method and device, electronic equipment and storage medium
CN112105055B (en) * 2020-08-21 2023-04-07 深圳市科思科技股份有限公司 Data transmission method and device, electronic equipment and storage medium
CN112019443A (en) * 2020-09-02 2020-12-01 首都师范大学 Multi-path data transmission method and device
CN112019443B (en) * 2020-09-02 2023-09-12 首都师范大学 Multipath data transmission method and device

Similar Documents

Publication Publication Date Title
US11831448B2 (en) Communication processing method and apparatus related to a duplication mode of a radio bearer
WO2018121148A1 (en) Communication resource selection method, hand-held intelligent terminal and access device
WO2020134873A1 (en) State switching method, mobile terminal, network device and communication system
US11627486B2 (en) Data sending method and apparatus, and device
US11706655B2 (en) Data transmission method and terminal
WO2015058613A1 (en) Method and device for detecting data packet, and storage medium
CN110234124B (en) Information transmission method and terminal equipment
CN110149664B (en) Conditional switching method, related equipment and computer-readable storage medium
WO2018161262A1 (en) Data transmission method and device
US11088954B2 (en) Link detection method and related apparatus
WO2018171708A1 (en) Data transmission method and terminal device
EP3547752A1 (en) Cell switching method and terminal device
CN111641480B (en) Control method for TCP retransmission times, terminal equipment and storage medium
JP7250124B2 (en) Data processing method and equipment
JP7290717B2 (en) Resource scheduling methods and devices
WO2017147743A1 (en) Video optimization method, user equipment unit and network equipment unit
WO2018126407A1 (en) Data transmission method and device
WO2014205779A1 (en) Control method and device for rrc connection
CN109962822B (en) Wireless side transmission delay acquisition method and device
WO2016045062A1 (en) Data packet transmission device, system and method
CN109863821B (en) Data communication method, device and system
JP7392106B2 (en) Data transmission method and user equipment
WO2018068319A1 (en) Routing method and device in multi-host scenario
CN112333839A (en) Communication processing method, device and network equipment
CN114222340A (en) Network switching method and device and mobile terminal

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17900110

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17900110

Country of ref document: EP

Kind code of ref document: A1