WO2018161262A1 - 数据发送方法及装置 - Google Patents
数据发送方法及装置 Download PDFInfo
- 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
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/121—Shortest path evaluation by minimising delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
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
本公开提供了一种数据发送方法及装置,属于通信技术领域。所述方法包括:确定第一路径,所述第一路径为第一设备与第二设备之间用于传输数据的多条路径中的至少一条,所述第一路径所进行的数据传输的时延不满足预设时延要求;确定第二路径,所述第二路径为所述多条路径中的至少一条,所述第二路径不同于所述第一路径;通过所述第二路径,向所述第二设备发送数据。通过在采用多路径进行数据传输的过程中,能够从多条路径中确定出不满足预设时延要求的第一路径,并放弃在该路径上进行传输,而采用在剩余的路径时延较小的至少一个路径上进行数据传输,提高了数据传输的效率。
Description
本公开涉及通信技术领域,特别涉及一种数据发送方法及装置。
传统的移动互联网通信采用标准传输控制协议(Transmission Control Protocol,TCP)进行数据传输,在标准TCP中,终端和服务器之间只使用一条路径进行数据传输。而随着不同无线接入技术的相互融合,终端具有多种网络接口,例如WiFi接口和3G接口等,通过该多种网络接口终端和服务器之间可以采用多条路径进行数据传输,如果仍然采用标准TCP协议只使用一条路径进行数据传输,就会浪费其他路径资源。
目前,国际互联网工程任务组(The Internet Engineering Task Force,IETF)确定了一种用于进行多径传输的多径TCP协议(Multipath TCP,MPTCP),该协议的核心思想是在应用层和传输层之间加入支持多路径传输的Multipath TCP层,以实现多路径传输。如图1所示,以终端向服务器发送数据为例,终端的Multipath TCP层可以将应用层传输的数据分为多个TCP子流,不同TCP子流通过不同网络接口发送至服务器,服务器将不同的TCP子流在Multipath TCP层进行汇聚后递交至应用层,从而实现终端和服务器之间的多路径传输。
在实现本公开的过程中,发明人发现现有技术至少存在以下问题:
实际数据传输过程中,并不是所有场景都适合采用多路径传输,比如,当多条路径中不同路径之间的时延差过大时,使得被分配至不同TCP子流的数据的传输时延差过大,从而造成数据的严重阻塞,影响数据的传输效率。
发明内容
为了解决现有技术的问题,本公开实施例提供了一种数据发送方法及装置。所述技术方案如下:
第一方面,提供了一种数据发送方法,应用于第一设备,所述方法包括:
确定第一路径,所述第一路径为第一设备与第二设备之间用于传输数据的多条路径中的至少一条,所述第一路径所进行的数据传输的时延不满足预设时延要求;
确定第二路径,所述第二路径为所述多条路径中的至少一条,所述第二路径不同于所述第一路径;
通过所述第二路径,向所述第二设备发送数据。
通过在采用多路径进行数据传输的过程中,能够从多条路径中确定出不满足预设时延要求的第一路径,并放弃在该路径上进行传输,而采用在剩余的路径时延较小的至少一个路径上进行数据传输,提高了数据传输的效率。
在一种可能的实现方式中,所述确定第一路径,包括:
对所述多条路径进行时延抖动检测,得到所述多条路径中每条路径的路径时延;
根据所述多条路径中每条路径的路径时延和所述预设时延要求,确定所述第一路径。
通过对路径进行时延抖动检测,并根据得到的各个路径的路径时延和预设时延要求之间的关系,实现确定第一路径的过程。
在一种可能的实现方式中,所述根据所述多条路径中每条路径的路径时延和所述预设时延要求,确定所述第一路径,包括:
对于所述多条路径中的每条路径,如果所述路径的路径时延超过第一阈值,确定所述路径的路径时延不满足所述预设时延要求,将所述路径确定为所述第一路径;或,
根据所述多条路径中每条路径的路径时延,确定所述多条路径中每两条路径的时延差;如果确定的时延差中包括超过第二阈值的时延差,确定所述超过第二阈值的时延差对应路径的路径时延不满足所述预设时延要求,将所述超过第二阈值的时延差所对应的路径确定为所述第一路径。
通过路径时延和路径时延差两种不同的方式来确定第一路径,提高了确定第一路径的灵活性。
在一种可能的实现方式中,所述对所述多条路径进行时延抖动检测,包括:
根据预设周期对所述多条路径进行时延抖动检测;或,当接收到所述第二设备的第一路径切换指示时,对所述多条路径进行时延抖动检测,所述第一路径切换指示用于指示所述第一设备对所述多条路径进行时延抖动检测。
本实施例中,第一设备能够主动进行时延抖动检测,或者根据第二设备的指示进行时延抖动检测,提高了时延抖动检测的灵活性。
在一种可能的实现方式中,所述多条路径中每条路径的路径时延为所述每条路径的单向时延,或者为所述每条路径的往返时延RTT。通过采用不同形式的路径时延,提高了路径时延检测的灵活性。
在一种可能的实现方式中,所述确定第一路径,包括:
如果在所述多条路径中的至少一条路径中接收到所述第二设备的第二路径切换指示,将所述多条路径中没有接收到所述第二路径切换指示的路径确定为所述第一路径;
相应地,所述确定第二路径,包括:将所述至少一条路径确定为所述第二路径。
第一设备直接根据第二设备的指示,确定后续能够进行数据传输的第二路径,提高了第一设备确定第二路径的效率。
在一种可能的实现方式中,所述通过所述第二路径,向所述第二设备发送数据之后,所述方法还包括:
对所述多条路径进行时延抖动检测,得到所述多条路径中每条路径的路径时延;如果所述第一路径的路径时延满足所述预设时延要求,则通过所述第一路径向所述第二设备发送数据;其中,所述第一路径的路径时延满足预设时延要求是指所述第一路径的路径时延小于第一阈值,或,所述第一路径对应的时延差小于第二阈值。通过在第一路径的路径时延满足预设要求时,能够重新启用第一路径进行数据传输,提高了数据传输的灵活性。
第二方面,提供了一种数据发送方法,应用于第二设备,所述方法包括:
在采用多条路径与第一设备进行数据传输的过程中,检测缓存的数据是否满足路径切换条件;
如果所述缓存的数据满足所述路径切换条件,则向所述第一设备发送路径切换指示,
由所述第一设备根据所述路径切换指示在所述多条路径的部分路径上发送数据。
通过在缓存的数据满足路径切换条件时,向第一设备发送路径切换指示,使得第一设备能够根据路径切换指示停止在路径时延不满足预设时延要求的路径上进行数据传输,从而提高了数据传输效率。
在一种可能的实现方式中,所述检测缓存的数据是否满足预设切换条件,包括:
检测缓存的数据量是否超过预设阈值;如果所述缓存的数据量超过所述预设阈值,则确定所述缓存的数据满足所述预设切换条件;或,
检测缓存的数据包是否处于失序状态;如果所述缓存的数据包处于失序状态,则确定所述缓存的数据满足所述预设切换条件。
在一种可能的实现方式中,所述检测缓存的数据包是否处于失序状态,包括:
如果所述缓存的数据包的序号不连续、且序号不连续的时长超过预设时长,确定所述缓存的数据包处于失序状态;或,如果所述缓存的数据包的序号不连续的数目超过预设数目,确定所述缓存的数据包处于失序状态。
通过采用不同的条件来确定缓存的数据是否满足预设切换条件,提高了触发路径切换的灵活性。
在一种可能的实现方式中,所述向所述第一设备发送路径切换指示,包括:
向所述第一设备发送第一路径切换指示,所述第一路径切换指示用于指示所述第一设备对所述多条路径进行时延抖动检测。
在一种可能的实现方式中,所述向所述第一设备发送路径切换指示,包括:
从所述多条路径中确定第一路径,所述第一路径为导致所述缓存的数据满足路径切换条件的路径;通过第二路径向所述第一设备发送第二路径切换指示,所述第二路径为所述多条路径中的至少一条,所述第二路径不同于所述第一路径。通过直接指示第一设备后续进行数据传输的第二路径,使得第一设备能够直接在确定的第二路径上传输数据,提高了数据发送的效率。
在一种可能的实现方式中,所述从所述多条路径中确定第一路径,包括:
根据在所述多条路径中每条路径的接收的数据包,将导致缓存的数据包的序号不连续的路径确定为所述第一路径。
在一种可能的实现方式中,所述向所述第一设备发送路径切换指示包括:
将所述路径切换指示携带在QUIC协议的指定字段内发送至所述第一设备;或,
将所述路径切换指示携带在QUIC协议的扩展帧内发送至所述第一设备;或,
将所述路径切换指示携带在MPTCP协议的指定字段内发送至所述第一设备。
通过对应不同协议,定义发送路径切换指示的方式,使得该数据发送方法能够适用于多种多路径协议。
第三方面,提供了一种数据发送方法,应用于第一设备,所述方法包括:
在采用第一路径与第二设备进行数据传输的过程中,对多条路径进行时延抖动检测,得到所述多条路径中每条路径的路径时延,所述第一路径为第一设备与第二设备之间用于传输数据的所述多条路径中的至少一条;
确定第二路径,所述第二路径为所述多条路径中除所述第一路径以外的、且对应路径
时延满足预设时延要求的至少一条路径;
通过所述第一路径和所述第二路径,向所述第二设备发送数据。
通过对多条路径进行路径时延检测,可以在未进行数据传输的路径中及时发现路径时延满足预设时延要求的路径,从而采用该路径进行数据传输,增加了进行数据传输的路径数目,提高了数据传输的效率。
在一种可能的实现方式中,所述确定第二路径,包括:
对于所述多条路径中除所述第一路径以外的路径,如果所述路径的路径时延小于第一阈值,则确定所述路径的路径时延满足所述预设时延要求,将所述路径确定为所述第二路径;或,
根据所述多条路径中每条路径的路径时延,确定所述多条路径中每两条路径之间的时延差;对于所述多条路径中除所述第一路径以外的路径,如果所述路径对应的时延差小于第二阈值,则确定所述路径的路径时延满足所述预设时延要求,将所述路径确定为所述第二路径。
通过采用不同的方式来确定第二路径,提高了第二路径确定的灵活性。
在一种可能的实现方式中,所述多条路径中每条路径的路径时延为所述每条路径的单向时延,或者为所述每条路径的往返时延RTT。
在一种可能的实现方式中,所述对多条路径进行时延抖动检测,包括:
根据预设周期对所述多条路径进行时延抖动检测;或,
当检测到所述多条路径中包括第三路径时,对所述多条路径进行时延抖动检测,所述第三路径是指所述多条路径中除所述第一路径以外的、对应类型的网络服务区可用的路径。
通过不同的方式触发时延抖动检测,提高了触发时延抖动检测的灵活性,使得该数据发送方法能够适用于更多的场景。
在一种可能的实现方式中,所述对所述多条路径进行时延抖动检测,得到所述多条路径中每条路径的路径时延,包括:
根据在所述第一路径上发送的数据包的发送时间以及所述第二设备对所述数据包的接收反馈信息,确定所述第一路径的路径时延;
对于所述多条路径中除所述第一路径以外的路径,在所述路径上发送预设检测包;根据所述预设检测包的发送时间以及所述第二设备对所述预设检测包的接收反馈信息,确定所述路径的路径时延。
通过对正在进行数据传输的路径和未进行数据传输的路径,采用不同的方式进行时延抖动检测,从而实现对多条路径的时延抖动检测。
第四方面,提供了一种数据发送装置,该装置包括至少一个功能模块,该至少一个功能模块用于实现上述第一方面以及第一方面中任一种可能的实现方式所指示的数据发送方法,并且能够取得与第一方面中对应技术手段相同的技术效果,在这里不再赘述。
第五方面,提供了一种数据发送装置,该装置包括至少一个功能模块,该至少一个功能模块用于实现上述第二方面以及第二方面中任一种可能的实现方式所指示的数据发送方法,并且能够取得与第二方面中对应技术手段相同的技术效果,在这里不再赘述。
第六方面,提供了一种数据发送装置,该装置包括至少一个功能模块,该至少一个功
能模块用于实现上述第三方面以及第三方面中任一种可能的实现方式所指示的数据发送方法,并且能够取得与第一方面中对应技术手段相同的技术效果,在这里不再赘述。
第七方面,提供了一种第一设备,包括处理器;用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述第一方面、第二方面或第三方面中第一设备所执行的数据发送方法,并且能够取得相同的技术效果。
第八方面,提供了一种第二设备,包括处理器;用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述第一方面或第二方面中第二设备所执行的数据发送方法,并且能够取得相同的技术效果。
图1是一种多径传输的示意图;
图2A是本公开实施例提供的一种采用多路径进行数据传输的架构图;
图2B是本公开实施例提供的一种终端200的结构示意图;
图2C是本公开实施例提供的一种服务器300的结构示意图;
图3A是本公开实施例提供的一种数据发送方法的流程图;
图3B是本公开实施例提供的一种QUIC协议扩展帧的示意图;
图4是本公开实施例提供的一种数据发送方法的流程图;
图5是本公开实施例提供的一种数据发送方法的流程图;
图6是本公开实施例提供的一种数据发送装置的框图;
图7是本公开实施例提供的一种数据发送装置的框图;
图8是本公开实施例提供的一种数据发送装置的框图。
为使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开实施方式作进一步地详细描述。
图2A是本公开实施例提供的一种采用多路径进行数据传输的架构图,涉及第一设备和第二设备,第一设备和第二设备可以通过3GPP网络、WiFi网络和/或其他通信网络进行数据传输。
其中,第一设备和第二设备均设置有多种类型的网络接口,例如WiFi接口、3G接口、4G接口、5G接口等。不同类型的网络接口对应不同类型的网络服务区,例如,WiFi接口对应WiFi网络服务区,3G接口对应3G网络服务区等。第一设备和第二设备可以通过该多种网络接口中一个或多个网络接口接入相应的网络服务区,从而实现设备间单路径或多路径的数据传输,图2仅以两条路径为例示出。其中,第一设备和第二设备之间能够进行数据传输的路径的最大数目取决于二者同类型的网络接口的数目,比如,当第一设备和第二设备均具有WiFi接口和3G接口时,二者最多可以采用两条路径进行数据传输;当第一设备和第二设备均具有WiFi接口、3G接口和4G接口时,二者最多可以采用三条路径进行数据传输。网络服务区作为第一设备和第二设备通信的桥梁,用于将第一设备或第二设备发送的数据转发至通信对端。
其中,第一设备和第二设备均支持多路径传输协议,以进行多路径的数据传输,该多路径传输协议可以为MPTCP协议,也可以为基于用户数据报协议(User Datagram Protocol,UDP)的低时延的互联网传输层协议(Quick UDP Internet Connection,QUIC),或者为其他多路径传输协议。多路径传输协议在TCP协议的应用层和传输层之间增加了多路径汇聚层(Convergence Layer)。在数据传输过程中,发送端的多路径汇聚层用于将应用层的数据划分为多个子流(subflow),再将该多个子流递交至传输层;接收端的多路径汇聚层用于将传输层递交的多个子流进行汇聚后递交至应用层。其中,不同子流通过不同路径传输,对于MPTCP协议,该多个子流为TCP子流;对于QUIC协议,该多个子流为UDP子流。
需要说明的是,网络接口属于网络互连的协议(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接口,从而通过相应网络接口对应的路径传输至第二设备。
其中,在数据传输过程中,第一设备和第二设备均既可以作为数据接收端,也可以作为数据发送端,本实例对此不作限定。例如,第一设备可以被提供为一种终端设备,比如该第一设备可以为图2B所示的终端。第二设备可以被提供为一种服务器,该服务器用于向第一设备提供网络服务,例如该第二设备可以为图2C所示的服务器。当然,第一设备也可以被提供为一种服务器,第二设备也可以被提供为一种终端,本实施例对此不作限定。
需要说明的是,下述图3A至图5所提供的实施例仅以第一设备作为发送端、第二设备作为接收端为例进行说明,并不对第一设备和第二设备的数据传输功能进行限定。
图2B是本公开实施例提供的一种终端200的结构示意图,当第一设备为终端时,该终端可以用于执行下述图3A至图5各个实施例提供的数据发送方法中第一设备所执行的过程;当第二设备为终端时,该终端可以用于执行下述图3A至图5各个实施例提供的数据发送方法中第二设备所执行的过程。参见图2B,该终端200包括:
终端200可以包括RF(Radio Frequency,射频)电路110、包括有一个或一个以上计算机可读存储介质的存储器120、输入单元130、显示单元140、传感器150、音频电路160、WiFi(Wireless Fidelity,无线保真)模块170、包括有一个或者一个以上处理核心的处理器180、以及电源190等部件。本领域技术人员可以理解,图2B中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
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,短消息服务)等。
存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端200的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器120还可以包括存储器控制器,以提供处理器180和输入单元130对存储器120的访问。
输入单元130可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元130可包括触敏表面131以及其他输入设备132。触敏表面131,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面131上或在触敏表面131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面131。除了触敏表面131,输入单元130还可以包括其他输入设备132。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元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集成而实现输入和输出功能。
终端200还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在终端200移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用
(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端200还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路160、扬声器161,传声器162可提供用户与终端200之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经RF电路110以发送给比如另一终端,或者将音频数据输出至存储器120以便进一步处理。音频电路160还可能包括耳塞插孔,以提供外设耳机与终端200的通信。
WiFi属于短距离无线传输技术,终端200通过WiFi模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图2B示出了WiFi模块170,但是可以理解的是,其并不属于终端200的必须构成,完全可以根据需要在不改变本公开的本质的范围内而省略。
处理器180是终端200的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行终端200的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器180可包括一个或多个处理核心;优选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。
终端200还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源190还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,终端200还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端的显示单元是触摸屏显示器,终端还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。当第一设备为终端时,所述一个或者一个以上程序包含用于执行下述各个实施例所提供的数据发送方法中第一设备所执行的过程。当第二设备为终端时,所述一个或者一个以上程序包含用于执行下述各个实施例所提供的数据发送方法中第二设备所执行的过程。
图2C是根据一示例性实施例示出的一种服务器300的结构示意图。参照图2C,服务器300包括处理组件322,其进一步包括一个或多个处理器,以及由存储器332所代表的存储器资源,用于存储可由处理部件322的执行的指令,例如应用程序。存储器332中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,当第一设备为服务器时,处理组件322被配置为执行指令,以执行下述图3A和图4所提供的数据发送方法中第一设备所执行的过程。当第二设备为服务器时,处理组件322被配置为执行指令,以执行下述图3A和图4所提供的数据发送方法中第二设备所执行的过程。
服务器300还可以包括一个电源组件326被配置为服务器300的电源管理,一个有线
或无线网络接口350被配置为将服务器300连接到网络,和一个输入输出(I/O)接口358。服务器300可以操作基于存储在存储器332的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
图3A是本公开实施例提供的一种数据发送方法的流程图,参见图3A,涉及交互主体为第一设备和第二设备,包括以下步骤:
301、在采用多条路径与第一设备进行数据传输的过程中,第二设备检测缓存的数据是否满足路径切换条件。
其中,该多条路径可以为第一设备与第二设备能够进行数据传输的全部路径,也可以为全部路径中的部分路径。
当第一设备和第二设备采用多条路径进行数据传输时,第二设备将通过该多条路径接收到的数据缓存至缓存区,例如将接收到的数据包缓存至缓存区。由于在数据传输过程中,不同路径会有不同程度的时延,当不同路径之间的路径时延相差较大时,会导致第二设备缓存数据量过大,或者导致缓存区缓存的数据包的序号处于失序状态。第二设备可以根据缓存的数据来确定当前是否需要进行路径切换,也即是,第二设备检测缓存的数据是否满足预设切换条件,该过程可以包括以下两种方式:
第一种方式、第二设备检测缓存的数据量是否超过预设阈值,如果缓存的数据量超过预设阈值,则确定缓存的数据满足预设切换条件。
其中,预设阈值可以由第二设备根据缓存区容量的大小进行预先设置,比如,该预设阈值可以为缓存区最大容量的80%等。
第二种方式、第二设备检测缓存的数据包是否处于失序状态;如果缓存的数据包处于失序状态,则确定缓存的数据满足预设切换条件。
在该种方式中,第二设备可以通过以下两种方法检测缓存的数据包是否处于失序状态:
方法一、检测缓存的数据包的序号是否连续,如果不连续,检测序号不连续的时长。
如果缓存的数据包的序号不连续、且序号不连续的时长超过预设时长,确定缓存的数据包处于失序状态。
其中,预设时长可以由第二设备进行预先配置或修改,本实施例对此不作限定。
方法二、检测缓存的数据包的序号是否连续,如果不连续,检测序号不连续的数目。
如果缓存的数据包的序号不连续的数目超过预设数目,确定缓存的数据包处于失序状态。其中,预设数目可以由第二设备进行预先配置或修改,本实施例对此不作限定。例如,第一设备向第二设备发送了10个数据包,序号分别为1至10,第二设备接收到的数据包的序号为1、2、3、7、9、10,则序号不连续的数目是指序号3至7以及序号7至9之间未接收到的数据包的数目,在该举例中,序号不连续的数目为4。
下面对路径时延过长导致第二设备缓存数据量过大,或者导致缓存区缓存的数据包的序号处于失序状态进行解释说明:在向第二设备发送数据的过程中,第一设备的多路径汇聚层会将待发送数据划分为与该多路径等数目的子流,不同子流包括不同序号的数据包,当第二设备缓存有一定数目的序号连续的数据包后,第二设备的多路径汇聚层将缓存区中序号连续的数据包递交至应用层,而如果数据包的序号连续的数目没有达到该一定数目,接收到的数据包便会一直缓存在缓存区,因此,当该多条路径中存在路径时延过大的路径
时,便会导致第二设备缓存区的溢出,或者导致缓存区的数据包序号处于失序状态。
例如,第一设备向第二设备发送一段语音数据,第一设备将该语音数据打包为10个数据包,序号依次为1至10,现在通过两条路径向第二设备发送该10个数据包,假设将序号为单数的数据包划分为一个子流,通过路径1发送至第二设备,将序号为双数的数据包划分为一个子流,通过路径2发送至第二设备,第二设备的多路径汇聚层需要在接收到该10个数据包之后递交至应用层。如果路径2的路径时延远远大于路径1的路径时延,则可能会发生这种情况:当第二设备在路径1上接收到序号为1、3、5、7、9的数据包时,在路径2上仅接收到序号为2的数据包,这样第二设备需要等待在路径2上传输的剩余的数据包,此时,第一设备还在继续通过路径1向第二设备发送其他业务的数据,从而便导致第二设备的缓存数据量过大,或者数据包处于失序状态。
302、如果缓存的数据满足路径切换条件,第二设备向第一设备发送第一路径切换指示,该第一路径切换指示用于指示第一设备进行时延抖动检测。
其中,第二设备可以通过该多条路径中的一条路径或多条路径向第一设备发送该第一路径切换指示,本实施例对此不作限定。
在实施过程中,第二设备和第一设备之间可以采用QUIC协议或者MPTCP协议进行数据传输,当采用QUIC协议时,该第一路径切换指示可以携带在QUIC协议的指定字段内发送,例如,该QUIC协议的指定字段可以为QUIC协议公共包头(Common Header)的Flag字段,比如采用Flag字段中的0x40指示位来表示该第一路径切换指示,当该指示位为1时指示第一设备进行时延抖动检测。当该指示位为0时指示第一设备不用进行时延抖动检测。当然,还可以对QUIC协议进行扩展,例如,新增一个QUIC协议扩展帧,如图3B所示为一种QUIC协议扩展帧的示意图。其中,该扩展帧中包括以下字段:帧类型(Type)字段、流标识(Stream ID)字段以及切换指示字段。其中,帧类型区别于QUIC协议现有的帧类型,流标识用于指示该第一路径切换指示所属的数据子流,切换指示字段用于承载该第一路径切换指示。
当采用MPTCP协议时,该第一路径切换指示可以携带在MPTCP协议的指定字段内发送,该MPTCP的指定字段可以为MPTCP的Subtype字段。例如,可以对Subtype字段进行重新定义,以承载该第二路径切换指示。
在本实施例中,由于数据包在传输的过程中有可能会丢失,为了保证第一设备能够接收到该第一路径切换指示,第二设备可以在连续的多个数据包中携带该第一路径切换指示并发送至第一设备。需要说明的是,第二设备在向第一设备发送第一路径切换指示的同时还可以发送进行切换的原因信息,比如,缓存区即将溢出等。比如,当采用QUIC协议时,可以在切换指示字段中携带进行路径切换的原因信息。
303、第一设备接收到第二设备的第一路径切换指示后,对该多条路径进行时延抖动检测,得到该多条路径中每条路径的路径时延。
其中,对于该多条路径中的每一条路径,该路径的路径时延可以为该路径的单向路径时延,或者为该路径的往返路径时延(Round Trip Time,RTT)。
其中,单向路径时延是指,第一设备发送数据包的第一时间与第二设备接收到该数据包的第二时间之间的时间差,该过程可以为:第一设备在向第二设备发送数据包时,记录该数据包的第一时间;第二设备会根据对该数据包的接收情况返回接收反馈信息,第一设
备根据第二设备的接收反馈信息,确定第二设备接收到该数据包的第二时间。其中,该反馈信息中可以包括第二设备接收到该数据包的第二时间。该单向路径时延可以更准确地体现第一设备向第二设备发送数据的时延。
另外,第二设备返回的接收反馈信息中可能不包含第二设备接收数据包的第二时间,此时,第一设备可以将该路径的往返路径时延作为该路径的路径时延,比如,第一设备可以记录接收到该接收反馈信息的第三时间,将该第三时间与第一时间之间的时间差作为该路径的路径时延。其中,第三时间与第一时间的时延差即为该路径的往返路径时延。
上述步骤301至步骤303是第一设备根据第二设备的第一路径切换指示进行时延抖动检测的过程,在另一实施例中,第一设备还可以主动进行时延抖动检测,比如,第一设备根据预设周期对多条路径进行时延抖动检测,该预设周期可以由第一设备进行预先设定或修改,或者由第二设备进行预先配置或修改,本实施例对此不作限定。
304、第一设备根据该多条路径中每条路径的路径时延和预设时延要求,确定第一路径。
其中,第一路径可以为该多条路径中的至少一条,可以采用以下两种方式来从多条路径中确定第一路径:
第一种方式、第一设备直接根据各个路径的路径时延与预设时延要求的关系,从多条路径中确定第一路径。
在该种方式中,对于该多条路径中的每条路径,第一设备检测该路径的路径时延是否超过第一阈值,如果该路径的路径时延超过第一阈值,则确定该路径的路径时延不满足预设时延要求,将该路径确定为第一路径。
其中,第一阈值可以由第二设备统计的路径时延均值确定并配置到第一设备。
第二种方式、第一设备根据各个路径的路径时延的时延差与预设时延要求,从该多条路径中确定第一路径。
在该种方式中,第一设备根据该多条路径中每条路径的路径时延,确定该多条路径中每两条路径的时延差;如果确定的时延差中包括超过第二阈值的时延差,确定超过第二阈值的时延差对应的路径不满足预设时延要求,将该超过第二阈值的时延差对应的路径确定为第一路径。其中,第二阈值可以由第二设备统计的时延差均值确定并配置到第一设备。
其中,确定该多条路径中每两条路径的时延差的过程可以为:按照路径时延从低到高的顺序,将顺序相邻的两个路径的路径时延的差值,作为该相邻的两个路径的时延差。
例如,假设有4条路径,路径1的路径时延为10ms(毫秒),路径2的时延差为13ms,路径3的时延差为15ms,路径4的时延差为30ms,则按照路径时延从低到高的顺序,即路径1至路径4的顺序获取相邻两条路径的时延差,得到路径1和路径2的时延差为3ms,路径2和路径3的时延差为2ms,路径3和路径4对应的时延差为15ms。
需要说明的是,得到的每个时延差对应两条路径,当某个时延差超过第二阈值时,在一种实施方式中,可以将该时延差对应的两条路径均确定为第一路径;在另一种实施方式中,还可以将该时延差对应的两条路径中路径时延较大的路径确定为第一路径。例如,假设第二阈值为10ms,则结合上述举例,路径3和路径4对应的时延差为15ms超过了第二阈值,则可以将该路径3和路径4均确定为第一路径,也可以将路径时延较长的路径4确定为第一路径。需要说明的是,在将路径4确定为第一路径时,如果排列在路径4之后,还有其他路径时延更长的路径,则比路径4的路径时延更长的路径也确定为第一路径。
需要说明的是,第一设备在确定该多条路径中包括第一路径后,可以将该第一路径对应的网络接口标记为不可用状态。
上述步骤303至步骤304是第一设备确定第一路径的过程。
305、第一设备确定第二路径,该第二路径为多条路径中不同于第一路径的至少一条路径。
在一种实施方式中,该第二路径可以为该多条路径中除第一路径以外的所有路径;在第二种实施方式中,该第二路径还可以为多条路径除第一路径以外的备选路径中的一条或多条路径,此时,第一设备在确定第一路径之后,可以在除第一路径以外的备选路径中选取一条或多条路径作为第二路径。例如,该多条路径的数目为4,分别为路径1至路径4,其中,路径4是第一路径,则可以将路径1至路径3均确定为第二路径,也可以在路径1至3中选取一条或两条路径作为第二路径。
其中,对于第二种实施方式,第一设备从备选路径中选取至少一条路径作为第二路径的过程可以为:获取备选路径中每一条路径的路径时延,将路径时延小于第三阈值的路径作为第二路径,或者,按照路径时延从低到高的顺序进行排序,将排序靠前的预设数目的路径作为第二路径。其中,第三阈值和预设数目均可以由第一设备进行预先设定或修改,本实施例对此不作限定。
另外,第一设备从备选路径中选取至少一条路径作为第二路径的过程还可以为:获取备选路径在预设时间段内的路径时延,确定备选路径中每条路径的时延浮动值,将时延浮动值在预设浮动范围内的路径,确定为第二路径。其中,路径的时延浮动值用于指示该路径的路径时延变化的剧烈程度,时延浮动值越大表示路径时延变化越剧烈。第一设备可以在预设时间段内多次获取备选路径的路径时延,该路径的时延浮动值可以为该路径的多个路径时延中最大路径时延与最小路径时延的差值,或者为多个路径时延的方差值等,本实施例对此不作限定。其中,预设浮动范围可以由第一设备进行预先设定或修改,本实施例对此不作限定。
306、第一设备通过该第二路径,向第二设备发送数据。
第一设备在确定第一路径后,便停止采用第一路径向第二设备发送数据,将后续需要发送的数据通过第二路径发送至第二设备。比如,第一设备根据第二路径的数目,在多路径汇聚层中将待发送的数据划分为该数目的子流,对应每个子流,采用一个第二路径进行传输。
需要说明的是,第一设备停止采用第一路径向第二设备发送数据,也可以称为第一设备放弃使用该第一路径传输数据。本实施例中,在弃用第一路径传输数据后,还可以重新使用该第一路径传输数据,该过程可以为:在只采用第二路径向第二设备发送数据的过程中,对多条路径进行时延抖动检测,得到多条路径中每条路径的路径时延;如果第一路径的路径时延满足预设时延要求,则在第一路径上向第二设备发送数据。
其中,第一路径的路径时延满足预设时延要求是指第一路径的路径时延小于第一阈值,此时,第一设备可以在弃用第一路径后,可以周期性地对该第一路径进行时延抖动检测,也即是,获取该第一路径的路径时延,当该第一路径的路径时延小于第一阈值时,确定该第一路径满足预设时延要求,可以重新使用该第一路径传输数据。
或者,该第一路径的路径时延满足预设时延要求是指第一路径对应的时延差小于第二
阈值,此时,第一设备在弃用第一路径后,可以周期性地对该多条路径(包括第一路径和第二路径)进行时延抖动检测,确定该多条路径中每两条路径的时延差,该过程与步骤304中确定多条路径中每两条路径的时延差的过程同理;如果第一路径对应的时延差小于第二阈值,则确定该第一路径满足预设时延要求,可以重新使用该第一路径传输数据。由于一条路径可以对应两个时延差,本实施例中,第一路径对应的时延差小于第二阈值可以指第一路径对应的两个时延差均小于第二阈值;或者可以指第一路径作为路径时延较大的路径的两条路径对应的时延差小于第二阈值,例如,假设第一路径为步骤304举例中的路径3,则第一路径与路径2的时延差小于第二阈值时,确定第一路径的路径时延满足预设时延要求。
本实施例提供的方法,第二设备在检测到缓存的数据满足路径切换条件时,通过路径切换指示通知第一设备进行路径的时延抖动检测,第一设备根据时延抖动检测结果,从当前进行数据传输的多条路径中确定不满足预设路径时延、影响数据传输效率的第一路径,并放弃在该第一路径上进行传输,通过第一路径以外的至少一条路径传输数据,提高了数据传输的效率。
图3A所示的实施例是第一设备根据第二设备的路径切换指示,对当前进行数据传输的多条路径进行时延抖动检测,进而根据检测结果在多条路径中排除不满足预设时延要求的路径,通过剩余路径中的一条或多条路径向第二设备发送数据的过程。在另一实施例中,第二设备在从当前进行数据传输的多条路径中确定第一路径后,可以直接通过路径切换指示通知第一设备后续进行数据传输的至少一条第二路径,由第一设备在第二路径上发送数据,该过程详见图4所提供的实施例。
图4是本公开实施例提供的一种数据发送方法的流程图,参见图4,涉及交互主体为第一设备和第二设备,包括以下步骤:
401、在采用多条路径与第一设备进行数据传输的过程中,第二设备检测缓存的数据是否满足路径切换条件。
该步骤与上述步骤301同理,在此不做赘述。
402、如果缓存的数据满足路径切换条件,第二设备从多条路径中确定第一路径,该第一路径为导致缓存的数据满足路径切换条件的路径。
本实施例中,在通过多条路径进行数据传输时,第一设备可以将每条路径上即将传输的数据包序号预先通知给第二设备,第二设备建立每条路径与路径上即将传输的数据包序号之间的对应关系。根据该对应关系,第二设备可以在缓存的数据满足路径切换条件时,将导致缓存的数据包的序号不连续的路径确定为第一路径,比如,第二设备根据缓存的数据包的序号,可以确定未接收到的数据包的序号,并根据上述对应关系,确定未接收到的数据包所属的路径,将该路径确定为第一路径。
需要说明的是,如果导致缓存的数据包的序号不连续的路径不止一条,第二设备可以将导致序号不连续的所有路径均确定为第一路径,或者将导致序号不连续的所有路径中序号不连续数目最大的路径确定为第一路径。例如,第一设备向第二设备发送了10个数据包,序号分别为1至10,第二设备接收到的数据包的序号为1、2、3、7、9、10,其中,序号3至7以及序号7至9之间不连续,假如,序号为4至6的数据包需要通过路径1发送,序
号为8的数据包需要通过路径3发送,则路径1导致的序号不连续数目为3,路径3导致的序号不连续数目为1,则可以将路径1确定为第一路径。
403、第二设备通过第二路径向第一设备发送第二路径切换指示,第二路径为多条路径中除第一路径以外的至少一条路径。
在一种实施方式中,该第二路径可以为该多条路径中除第一路径以外的所有路径;在第二种实施方式中,该第二路径还可以为多条路径除第一路径以外的备选路径中的一条或多条路径。这两种实施方式与上述步骤3056中的两种实施方式同理,在此不做赘述。
其中,第二设备通过第二路径发送该第二路径切换指示。在实施过程中,第二设备和第一设备之间可以采用QUIC协议或者MPTCP协议进行数据传输,当采用QUIC协议时,该第二路径切换指示可以携带在QUIC协议的指定字段内发送,例如,该QUIC协议的指定字段可以为QUIC协议公共包头(Common Header)的Flag字段,比如采用Flag字段中的0x40指示位来表示该第二路径切换指示,当该指示位为1时指示第一设备继续使用相应路径传输数据,当该指示位为0时指示第一设备放弃使用相应路径传输数据。例如,对于该多条路径中的任一条路径,如果第一设备在该路径上接收到的数据包中该指示位由1变为0,则第一设备放弃使用该路径传输数据。
当然,还可以对QUIC协议进行扩展,例如,新增一个QUIC协议扩展帧,如图3B所示的一种扩展帧。其中,该扩展帧中包括以下字段:帧类型(Type)字段、流标识(Stream ID)字段以及切换指示字段。其中,帧类型区别于QUIC协议现有的帧类型,流标识用于指示该第一路径切换指示所属的数据子流,切换指示字段用于承载该第二路径切换指示。
当采用MPTCP协议时,该第一路径切换指示可以携带在MPTCP协议的指定字段内发送,该MPTCP的指定字段可以为MPTCP的Subtype字段。例如,可以对Subtype字段进行重新定义,以承载该第二路径切换指示。
上述步骤402和步骤403是第二设备向第一设备发送路径切换指示的过程。
404、如果第一设备在多条路径中的至少一条路径中接收到第二设备的第二路径切换指示,将多条路径中没有接收到第二路径切换指示的路径确定为第一路径,将至少一条路径确定为第二路径。
第一设备在确定第一路径之后,可以将该第一路径对应的网络接口标记为不可用状态,以指示后续使用该第一路径传输数据。
405、第一设备通过该第二路径,向第二设备发送数据。
该步骤与上述步骤306同理,在此不做赘述。当然,在该实施例中,第一设备在弃用第一路径后,也可以在第一路径满足预设时延要求后,重新使用该第一路径传输数据,该过程与上述重新使用第一路径传输数据的过程同理,在此不做赘述。
本实施例提供的方法,第二设备在检测到缓存的数据满足路径切换条件时,根据数据缓存的情况,从当前进行数据传输的多条路径中找出影响数据传输效率的路径,并通过路径切换指示通知第一设备放弃在该路径上进行传输,使得第一设备仅在剩余的路径时延较小的路径上进行数据传输,提高了数据传输的效率。
上述图3A和图4所提供的实施例是从第一设备和第二设备之间进行数据传输的路径数目由多到少的角度进行介绍,在第一设备在采用部分路径与第二设备进行数据传输的过程
中,还可以增加进行数据传输的路径个数,详细过程参见图5所提供的实施例。
图5是本公开实施例提供的一种数据发送方法的流程图,参见图5,包括以下步骤:
501、在采用第一路径与第二设备进行数据传输的过程中,第一设备对多条路径进行时延抖动检测,得到多条路径中每条路径的路径时延,第一路径为多条路径中的至少一条路径。
其中,多条路径为第一设备与第二设备之间可用来进行数据传输的全部路径,第一路径为多条路径中的部分路径。多条路径中每两条路径之间的时延差为每两条路径的单向时延差,或者为往返时延RTT时延差,关于单向时延差和RTT时延差的说明与步骤303中的说明同理,在此不再赘述。
本实施例中,第一设备触发对多条路径的时延抖动检测可以包括下述两种情况:
第一种情况、第一设备根据预设周期对多条路径进行时延抖动检测。该预设周期可以由第一设备或者第二设备进行预先配置或修改,本实施例对此不作限定。
第二种情况、第一设备在检测到多条路径中包括第三路径时,对多条路径进行时延抖动检测,第三路径是指多条路径中除第一路径以外的、对应类型的网络服务区可用的路径。
第一设备不同类型的网络接口对应不同类型的网络服务区,通过每个网络接口可以与第二设备之间建立一条路径,第一设备所处的地理位置在相应网络服务区内时,才能够通过相应的网络接口与第二设备之间成功建立一条路径。其中,第一设备所处的地理位置在相应网络服务区内且可以接入到该服务区时,表示该网络服务区可用。比如,WiFi接口对应WiFi网络服务区,3G接口对应3G网络服务区,当WiFi网络服务区可用时,第一设备才能与第二设备建立WiFi连接,当3G网络服务区可用时,第一设备才能与第二设备建立3G连接。
在该第二种情况中,对于除第一路径以外的路径,第一设备可以检测该路径对应类型的网络服务区是否可用,如果该路径对应类型的网络服务区可用,则将该路径确定为第三路径。例如,第一设备当前没有与第二设备建立WiFi连接,则当第一设备的位置移动到某个WiFi网络服务区内时,如果第一设备检测到已经接入该WiFi服务区,则可以将WiFi接口对应的路径确定为第三路径。当然,该举例默认第一设备已经开启WiFi功能。
其中,第一设备对多条路径进行时延抖动检测的过程可以为:第一设备根据在第一路径上发送的数据包的发送时间以及第二设备对数据包的接收反馈信息,确定第一路径的路径时延;对于多条路径中除第一路径以外的路径,在路径上发送预设检测包;根据预设检测包的发送时间以及第二设备对预设检测包的接收反馈信息,确定路径的路径时延。需要说明的是,由于第一设备还没有采用除第一路径以外的路径传输数据,第一设备可以通过预设检测包来获取第一路径以外的路径的路径时延。其中,预设检测包可以为ping包,或者为其他检测包,本实施例对此不作限定。
502、第一设备确定第二路径,该第二路径为所述多条路径中除第一路径以外的、且对应路径时延满足预设时延要求的至少一条路径。
第一设备从多条路径中确定第二路径的过程可以包括以下两种方式:
第一种方式、根据路径的路径时延和预设时延要求,从多条路径中确定第二路径。
在该种方式中,对于多条路径中除第一路径以外的路径,如果路径的路径时延小于第一阈值,则确定路径满足预设时延要求,将路径确定为第二路径。该种方式与上述步骤304
中确定多条路径中是否包括第一路径的第一种方式同理,在此不做赘述。
第二种方式、根据各个路径的路径时延的时延差和预设时延要求,从多条路径中确定第二路径。
在该种方式中,第一设备根据该多条路径中每条路径的路径时延,确定多条路径中每两条路径之间的时延差;对于多条路径中除第一路径以外的路径,如果路径对应的时延差小于第二阈值,则确定路径满足预设时延要求,将路径确定为第二路径。该种方式与上述步骤304中确定多条路径中是否包括第一路径的第二种方式同理,在此不做赘述。
503、第一设备通过第一路径和第二路径,向第二设备发送数据。
当第一设备确定第二路径后,如果该第二路径对应的网络接口处于不可用状态,则第一设备可以将该网络接口的状态设置为可用状态,从而通过该第二路径向第二设备发送数据。
本实施例提供的方法,当第一设备采用多路径的部分路径进行数据传输时,当检测到未进行数据传输的路径满足预设时延要求时,采用该路径进行数据传输,从而能够根据路径时延的实际情况灵活调整进行数据传输的路径,提高了数据传输的效率。
图6是本公开实施例提供的一种数据发送装置的框图,参见图6,包括:第一确定模块601,第二确定模块602,发送模块603和检测模块604。
其中,第一确定模块601被配置为执行上述步骤304或404中确定第二路径的过程;
发送模块602被配置为执行上述步骤306或405的过程;
检测模块603被配置为执行上述步骤303的过程;
第二确定模块604被配置为执行上述步骤305或404中确定第一路径的过程。
图7是本公开实施例提供的一种数据发送装置的框图,参见图7,包括:检测模块701,发送模块702。其中,检测模块701包括第一检测子模块7011和第二检测子模块7012。发送模块702包括确定子模块7021和发送子模块7022。
其中,检测模块701被配置为执行上述步骤301或401的过程;
第一检测子模块7011被配置为执行上述步骤301或401中检测缓存的数据量是否超过预设阈值的相关过程,第二检测子模块7012被配置为执行上述步骤301或401中检测缓存的数据包是否处于失序状态的过程。
发送模块702被配置为执行上述步骤302的过程;或者发送模块702的确定子模块7021被配置为执行上述步骤402的过程,发送子模块7022被配置为执行上述步骤403的过程。
图8是本公开实施例提供的一种数据发送装置的框图,参见图8,包括:检测模块801,确定模块802和发送模块803。
其中,检测模块801被配置为执行上述步骤501的过程;
确定模块802被配置为执行上述步骤502的过程;
发送模块803被配置为执行上述步骤503的过程。
需要说明的是:上述实施例提供的数据发送装置在发送数据时,仅以上述各功能模块
的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据发送装置与数据发送方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述实施例并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (38)
- 一种数据发送方法,应用于第一设备,其特征在于,所述方法包括:确定第一路径,所述第一路径为第一设备与第二设备之间用于传输数据的多条路径中的至少一条,所述第一路径所进行的数据传输的时延不满足预设时延要求;确定第二路径,所述第二路径为所述多条路径中的至少一条,所述第二路径不同于所述第一路径;通过所述第二路径,向所述第二设备发送数据。
- 根据权利要求1所述的方法,其特征在于,所述确定第一路径,包括:对所述多条路径进行时延抖动检测,得到所述多条路径中每条路径的路径时延;根据所述多条路径中每条路径的路径时延和所述预设时延要求,确定所述第一路径。
- 根据权利要求2所述的方法,其特征在于,所述根据所述多条路径中每条路径的路径时延和所述预设时延要求,确定所述第一路径,包括:对于所述多条路径中的每条路径,如果所述路径的路径时延超过第一阈值,确定所述路径的路径时延不满足所述预设时延要求,将所述路径确定为所述第一路径;或,根据所述多条路径中每条路径的路径时延,确定所述多条路径中每两条路径的时延差;如果确定的时延差中包括超过第二阈值的时延差,确定所述超过第二阈值的时延差对应路径的路径时延不满足所述预设时延要求,将所述超过第二阈值的时延差所对应的路径确定为所述第一路径。
- 根据权利要求2所述的方法,其特征在于,所述对所述多条路径进行时延抖动检测,包括:根据预设周期对所述多条路径进行时延抖动检测;或,当接收到所述第二设备的第一路径切换指示时,对所述多条路径进行时延抖动检测,所述第一路径切换指示用于指示所述第一设备对所述多条路径进行时延抖动检测。
- 根据权利要求2至4任一项所述的方法,其特征在于,所述多条路径中每条路径的路径时延为所述每条路径的单向时延,或者为所述每条路径的往返时延RTT。
- 根据权利要求1所述的方法,其特征在于,所述确定第一路径,包括:如果在所述多条路径中的至少一条路径中接收到所述第二设备的第二路径切换指示,将所述多条路径中没有接收到所述第二路径切换指示的路径确定为所述第一路径;相应地,所述确定第二路径,包括:将所述至少一条路径确定为所述第二路径。
- 根据权利要求1所述的方法,其特征在于,所述通过所述第二路径,向所述第二设备发送数据之后,所述方法还包括:对所述多条路径进行时延抖动检测,得到所述多条路径中每条路径的路径时延;如果所述第一路径的路径时延满足所述预设时延要求,则通过所述第一路径向所述第二设备发送数据;其中,所述第一路径的路径时延满足预设时延要求是指所述第一路径的路径时延小于第一阈值,或,所述第一路径对应的时延差小于第二阈值。
- 一种数据发送方法,应用于第二设备,其特征在于,所述方法包括:在采用多条路径与第一设备进行数据传输的过程中,检测缓存的数据是否满足路径切换条件;如果所述缓存的数据满足所述路径切换条件,则向所述第一设备发送路径切换指示,由所述第一设备根据所述路径切换指示在所述多条路径的部分路径上发送数据。
- 根据权利要求8所述的方法,其特征在于,所述检测缓存的数据是否满足预设切换条件,包括:检测缓存的数据量是否超过预设阈值;如果所述缓存的数据量超过所述预设阈值,则确定所述缓存的数据满足所述预设切换条件;或,检测缓存的数据包是否处于失序状态;如果所述缓存的数据包处于失序状态,则确定所述缓存的数据满足所述预设切换条件。
- 根据权利要求9所述的方法,其特征在于,所述检测缓存的数据包是否处于失序状态,包括:如果所述缓存的数据包的序号不连续、且序号不连续的时长超过预设时长,确定所述缓存的数据包处于失序状态;或,如果所述缓存的数据包的序号不连续的数目超过预设数目,确定所述缓存的数据包处于失序状态。
- 根据权利要求8所述的方法,其特征在于,所述向所述第一设备发送路径切换指示,包括:向所述第一设备发送第一路径切换指示,所述第一路径切换指示用于指示所述第一设备对所述多条路径进行时延抖动检测。
- 根据权利要求8所述的方法,其特征在于,所述向所述第一设备发送路径切换指示,包括:从所述多条路径中确定第一路径,所述第一路径为导致所述缓存的数据满足路径切换条件的路径;通过第二路径向所述第一设备发送第二路径切换指示,所述第二路径为所述多条路径中的至少一条,所述第二路径不同于所述第一路径。
- 根据权利要求12所述的方法,其特征在于,所述从所述多条路径中确定第一路径, 包括:根据在所述多条路径中每条路径的接收的数据包,将导致缓存的数据包的序号不连续的路径确定为所述第一路径。
- 根据权利要求8所述的方法,其特征在于,所述向所述第一设备发送路径切换指示包括:将所述路径切换指示携带在低时延的互联网传输层协议QUIC协议的指定字段内发送至所述第一设备;或,将所述路径切换指示携带在QUIC协议的扩展帧内发送至所述第一设备;或,将所述路径切换指示携带在多径TCP协议MPTCP的指定字段内发送至所述第一设备。
- 一种数据发送方法,应用于第一设备,其特征在于,所述方法包括:在采用第一路径与第二设备进行数据传输的过程中,对多条路径进行时延抖动检测,得到所述多条路径中每条路径的路径时延,所述第一路径为第一设备与第二设备之间用于传输数据的所述多条路径中的至少一条;确定第二路径,所述第二路径为所述多条路径中除所述第一路径以外的、且对应路径时延满足预设时延要求的至少一条路径;通过所述第一路径和所述第二路径,向所述第二设备发送数据。
- 根据权利要求15所述的方法,其特征在于,所述确定第二路径,包括:对于所述多条路径中除所述第一路径以外的路径,如果所述路径的路径时延小于第一阈值,则确定所述路径的路径时延满足所述预设时延要求,将所述路径确定为所述第二路径;或,根据所述多条路径中每条路径的路径时延,确定所述多条路径中每两条路径之间的时延差;对于所述多条路径中除所述第一路径以外的路径,如果所述路径对应的时延差小于第二阈值,则确定所述路径的路径时延满足所述预设时延要求,将所述路径确定为所述第二路径。
- 根据权利要求15或16所述的方法,其特征在于,所述多条路径中每条路径的路径时延为所述每条路径的单向时延,或者为所述每条路径的往返时延RTT。
- 根据权利要求15所述的方法,其特征在于,所述对多条路径进行时延抖动检测,包括:根据预设周期对所述多条路径进行时延抖动检测;或,当检测到所述多条路径中包括第三路径时,对所述多条路径进行时延抖动检测,所述第三路径是指所述多条路径中除所述第一路径以外的、对应类型的网络服务区可用的路径。
- 根据权利要求15所述的方法,其特征在于,所述对所述多条路径进行时延抖动检测,得到所述多条路径中每条路径的路径时延,包括:根据在所述第一路径上发送的数据包的发送时间以及所述第二设备对所述数据包的接收 反馈信息,确定所述第一路径的路径时延;对于所述多条路径中除所述第一路径以外的路径,在所述路径上发送预设检测包;根据所述预设检测包的发送时间以及所述第二设备对所述预设检测包的接收反馈信息,确定所述路径的路径时延。
- 一种数据发送装置,其特征在于,所述装置包括:第一确定模块,用于确定第一路径,所述第一路径为第一设备与第二设备之间用于传输数据的多条路径中的至少一条,所述第一路径所进行的数据传输的时延不满足预设时延要求;第二确定模块,用于确定第二路径,所述第二路径为所述多条路径中的至少一条,所述第二路径不同于所述第一路径;发送模块,用于通过所述第二路径,向所述第二设备发送数据。
- 根据权利要求20所述的装置,其特征在于,所述装置还包括:检测模块,用于对所述多条路径进行时延抖动检测,得到所述多条路径中每条路径的路径时延;所述第一确定模块,用于根据所述多条路径中每条路径的路径时延和所述预设时延要求,确定所述第一路径。
- 根据权利要求21所述的装置,其特征在于,所述第一确定模块,用于:对于所述多条路径中的每条路径,如果所述路径的路径时延超过第一阈值,确定所述路径不满足所述预设时延要求,将所述路径确定为所述第一路径;或,根据所述多条路径中每条路径的路径时延,确定所述多条路径中每两条路径的时延差;如果确定的时延差中包括超过第二阈值的时延差,确定所述超过第二阈值的时延差对应的路径不满足所述预设时延要求,将所述超过第二阈值的时延差对应的路径确定为所述第一路径。
- 根据权利要求21所述的装置,其特征在于,所述检测模块,用于:根据预设周期对所述多条路径进行时延抖动检测;或,当接收到所述第二设备的第一路径切换指示时,对所述多条路径进行时延抖动检测,所述第一路径切换指示用于指示所述第一设备对所述多条路径进行时延抖动检测。
- 根据权利要求21至23任一项所述的装置,其特征在于,所述多条路径中每条路径的路径时延为所述每条路径的单向时延,或者为所述每条路径的往返时延RTT。
- 根据权利要求20所述的装置,其特征在于,所述第一确定模块,还用于如果在所述多条路径中的至少一条路径中接收到第二设备的第二路径切换指示,将所述多条路径中没有接收到所述第二路径切换指示的路径确定为所述第一路径,所述第二确定模块,还用于将所述至少一条路径确定为所述第二路径。
- 根据权利要求20所述的装置,其特征在于,所述检测模块还用于对所述多条路径进 行时延抖动检测,得到所述多条路径中每条路径的路径时延;所述发送模块还用于如果所述第一路径的路径时延满足所述预设时延要求,则在所述第一路径上向所述第二设备发送数据;其中,所述第一路径的路径时延满足预设时延要求是指所述第一路径的路径时延小于第一阈值,或,所述第一路径对应的时延差小于第二阈值。
- 一种数据发送装置,其特征在于,所述装置包括:检测模块,用于在采用多条路径与第一设备进行数据传输的过程中,检测缓存的数据是否满足路径切换条件;发送模块,用于当所述缓存的数据满足所述路径切换条件,向所述第一设备发送路径切换指示,由所述第一设备根据所述路径切换指示在所述多条路径的部分路径上发送数据。
- 根据权利要求27所述的装置,其特征在于,所述检测模块包括第一检测子模块和第二检测子模块,所述第一检测子模块,用于检测缓存的数据量是否超过预设阈值;如果所述缓存的数据量超过所述预设阈值,则确定所述缓存的数据满足所述预设切换条件;或,所述第二检测模块,用于检测缓存的数据包是否处于失序状态;如果所述缓存的数据包处于失序状态,则确定所述缓存的数据满足所述预设切换条件。
- 根据权利要求28所述的装置,其特征在于,所述第二检测子模块用于:如果所述缓存的数据包的序号不连续、且序号不连续的时长超过预设时长,确定所述缓存的数据包处于失序状态;或,如果所述缓存的数据包的序号不连续的数目超过预设数目,确定所述缓存的数据包处于失序状态。
- 根据权利要求27所述的装置,其特征在于,所述发送模块用于向所述第一设备发送第一路径切换指示,所述第一路径切换指示用于指示所述第一设备对所述多条路径进行时延抖动检测。
- 根据权利要求27所述的装置,其特征在于,所述发送模块包括确定子模块和发送子模块,所述确定子模块,用于从所述多条路径中确定第一路径,所述第一路径为导致所述缓存的数据满足路径切换条件的路径;所述发送子模块,用于通过第二路径向所述第一设备发送第二路径切换指示,所述第二路径为所述多条路径中的至少一条,所述第二路径不同于所述第一路径。
- 根据权利要求31所述的装置,其特征在于,所述确定子模块用于根据在所述多条路径中每条路径的接收的数据包,将导致缓存的数据包的序号不连续的路径确定为所述第一路径。
- 根据权利要求27所述的装置,其特征在于,所述发送模块还用于:将所述路径切换指示携带在低时延的互联网传输层协议QUIC协议的指定字段内发送至所述第一设备;或,将所述路径切换指示携带在QUIC协议的扩展帧内发送至所述第一设备;或,将所述路径切换指示携带在多径TCP协议MPTCP的指定字段内发送至所述第一设备。
- 一种数据发送装置,其特征在于,所述装置包括:检测模块,用于在第一设备采用第一路径与第二设备进行数据传输的过程中,对多条路径进行时延抖动检测,得到所述多条路径中每条路径的路径时延,所述第一路径为第一设备与第二设备之间用于传输数据的所述多条路径中的至少一条;确定模块,用于确定第二路径,所述第二路径为所述多条路径中除所述第一路径以外的、且对应路径时延满足预设时延要求的至少一条路径;发送模块,用于通过所述第一路径和所述第二路径,向所述第二设备发送数据。
- 根据权利要求34所述的装置,其特征在于,所述确定模块用于:对于所述多条路径中除所述第一路径以外的路径,如果所述路径的路径时延小于第一阈值,则确定所述路径满足所述预设时延要求,将所述路径确定为所述第二路径;或,根据所述多条路径的路径时延中每条路径的路径时延,确定所述多条路径中每两条路径之间的时延差;对于所述多条路径中除所述第一路径以外的路径,如果所述路径对应的时延差小于第二阈值,则确定所述路径的路径时延满足所述预设时延要求,将所述路径确定为所述第二路径。
- 根据权利要求34或35所述的装置,其特征在于,所述多条路径中每条路径的路径时延为所述每条路径的单向时延,或者为所述每条路径的往返时延RTT。
- 根据权利要求34所述的装置,其特征在于,所述检测模块用于:根据预设周期对所述多条路径进行时延抖动检测;或,当检测到所述多条路径中包括第三路径时,对所述多条路径进行时延抖动检测,所述第三路径是指所述多条路径中除所述第一路径以外的、对应类型的网络服务区可用的路径。
- 根据权利要求34所述的装置,其特征在于,所述检测模块还用于根据在所述第一路径上发送的数据包的发送时间以及所述第二设备对所述数据包的接收反馈信息,确定所述第一路径的路径时延;对于所述多条路径中除所述第一路径以外的路径,在所述路径上发送预设检测包;根据所述预设检测包的发送时间以及所述第二设备对所述预设检测包的接收反馈信息,确定所述路径的路径时延。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2017/075902 WO2018161262A1 (zh) | 2017-03-07 | 2017-03-07 | 数据发送方法及装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2017/075902 WO2018161262A1 (zh) | 2017-03-07 | 2017-03-07 | 数据发送方法及装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2018161262A1 true WO2018161262A1 (zh) | 2018-09-13 |
Family
ID=63447195
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2017/075902 Ceased WO2018161262A1 (zh) | 2017-03-07 | 2017-03-07 | 数据发送方法及装置 |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2018161262A1 (zh) |
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112019443A (zh) * | 2020-09-02 | 2020-12-01 | 首都师范大学 | 多路径数据传输方法及装置 |
| CN112105055A (zh) * | 2020-08-21 | 2020-12-18 | 深圳市科思科技股份有限公司 | 数据传输方法、装置、电子设备及存储介质 |
| CN113055293A (zh) * | 2019-12-27 | 2021-06-29 | 华为技术有限公司 | 软件定义广域网中的选路方法及装置、通信系统 |
| CN115396529A (zh) * | 2022-08-25 | 2022-11-25 | 深圳市元征科技股份有限公司 | 多通道通信方法、装置、终端设备及存储介质 |
| CN115696434A (zh) * | 2021-07-30 | 2023-02-03 | 维沃移动通信有限公司 | 数据传输方法、装置、终端及介质 |
| WO2024207870A1 (zh) * | 2023-04-07 | 2024-10-10 | 腾讯科技(深圳)有限公司 | 一种数据传输方法和相关装置 |
Citations (3)
| 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 (zh) * | 2015-12-28 | 2016-04-13 | 中国电子科技集团公司第五十四研究所 | 基于多路径传输协议mptcp的路径管理方法及装置 |
| CN105610820A (zh) * | 2015-12-28 | 2016-05-25 | 中国电子科技集团公司第五十四研究所 | 一种基于mptcp的拥塞控制方法及装置 |
-
2017
- 2017-03-07 WO PCT/CN2017/075902 patent/WO2018161262A1/zh not_active Ceased
Patent Citations (3)
| 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 (zh) * | 2015-12-28 | 2016-04-13 | 中国电子科技集团公司第五十四研究所 | 基于多路径传输协议mptcp的路径管理方法及装置 |
| CN105610820A (zh) * | 2015-12-28 | 2016-05-25 | 中国电子科技集团公司第五十四研究所 | 一种基于mptcp的拥塞控制方法及装置 |
Non-Patent Citations (1)
| 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 (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113055293A (zh) * | 2019-12-27 | 2021-06-29 | 华为技术有限公司 | 软件定义广域网中的选路方法及装置、通信系统 |
| CN112105055A (zh) * | 2020-08-21 | 2020-12-18 | 深圳市科思科技股份有限公司 | 数据传输方法、装置、电子设备及存储介质 |
| CN112105055B (zh) * | 2020-08-21 | 2023-04-07 | 深圳市科思科技股份有限公司 | 数据传输方法、装置、电子设备及存储介质 |
| CN112019443A (zh) * | 2020-09-02 | 2020-12-01 | 首都师范大学 | 多路径数据传输方法及装置 |
| CN112019443B (zh) * | 2020-09-02 | 2023-09-12 | 首都师范大学 | 多路径数据传输方法及装置 |
| CN115696434A (zh) * | 2021-07-30 | 2023-02-03 | 维沃移动通信有限公司 | 数据传输方法、装置、终端及介质 |
| CN115396529A (zh) * | 2022-08-25 | 2022-11-25 | 深圳市元征科技股份有限公司 | 多通道通信方法、装置、终端设备及存储介质 |
| WO2024207870A1 (zh) * | 2023-04-07 | 2024-10-10 | 腾讯科技(深圳)有限公司 | 一种数据传输方法和相关装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11831448B2 (en) | Communication processing method and apparatus related to a duplication mode of a radio bearer | |
| WO2018161262A1 (zh) | 数据发送方法及装置 | |
| US11627486B2 (en) | Data sending method and apparatus, and device | |
| US11706655B2 (en) | Data transmission method and terminal | |
| WO2018121148A1 (zh) | 一种通信资源选择方法,手持智能终端及接入设备 | |
| CN110149664B (zh) | 条件切换方法、相关设备及计算机可读存储介质 | |
| CN110234124B (zh) | 信息传输方法及终端设备 | |
| CN111615162A (zh) | 一种带宽部分bwp切换方法及设备 | |
| US11088954B2 (en) | Link detection method and related apparatus | |
| WO2018171708A1 (zh) | 数据传输方法和终端设备 | |
| CN111436084A (zh) | 辅助信息上报方法及装置、通信设备 | |
| JP7290717B2 (ja) | リソーススケジューリング方法およびデバイス | |
| WO2022104956A1 (zh) | 网络连接方法、存储介质及电子设备 | |
| CN111641480B (zh) | 一种tcp重传次数的控制方法及终端设备、存储介质 | |
| EP3547752B1 (en) | Cell switching method and terminal device | |
| CN111885689A (zh) | 一种天线控制方法、装置及终端设备 | |
| CN104854952B (zh) | 一种rrc连接的控制方法和设备 | |
| WO2017147743A1 (zh) | 视频优化方法、用户设备和网络设备 | |
| CN109962822B (zh) | 无线侧传输时延获取方法及装置 | |
| CN111935848B (zh) | 一种周期性业务更新方法、装置及终端设备 | |
| CN113079536A (zh) | 一种定时提前量的更新方法、装置及移动终端 | |
| CN109863821B (zh) | 一种数据通信的方法、装置及系统 | |
| CN110035553A (zh) | 资源调度请求方法、装置和移动终端 | |
| CN112333839A (zh) | 一种通信处理方法、装置及网络设备 | |
| WO2018068319A1 (zh) | 多宿主场景下进行路由的方法及装置 |
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 |