WO2024104016A1 - 一种数据传输的方法、装置、电子设备及存储介质 - Google Patents
一种数据传输的方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- WO2024104016A1 WO2024104016A1 PCT/CN2023/124080 CN2023124080W WO2024104016A1 WO 2024104016 A1 WO2024104016 A1 WO 2024104016A1 CN 2023124080 W CN2023124080 W CN 2023124080W WO 2024104016 A1 WO2024104016 A1 WO 2024104016A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- link
- sending
- identifier
- stream
- connection identifier
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 155
- 230000005540 biological transmission Effects 0.000 title claims abstract description 106
- 230000004044 response Effects 0.000 claims description 62
- 238000001514 detection method Methods 0.000 claims description 50
- 238000004590 computer program Methods 0.000 claims description 25
- 238000012545 processing Methods 0.000 claims description 19
- 238000004891 communication Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 11
- 238000002474 experimental method Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 101000827703 Homo sapiens Polyphosphoinositide phosphatase Proteins 0.000 description 3
- 102100023591 Polyphosphoinositide phosphatase Human genes 0.000 description 3
- 230000000052 comparative effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 101001121408 Homo sapiens L-amino-acid oxidase Proteins 0.000 description 2
- 102100026388 L-amino-acid oxidase Human genes 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 101100012902 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) FIG2 gene Proteins 0.000 description 1
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000011895 specific detection Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/14—Multichannel or multilink protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
Definitions
- the present application relates to the field of communications, and in particular, to a method, device, electronic device and storage medium for data transmission.
- Quick UDP Internet Connection is a low-latency Internet transport layer protocol based on User Datagram Protocol (UDP). It has some obvious advantages over other protocols.
- the QUIC protocol works at the application layer and does not require kernel support.
- the QUIC protocol can reduce network latency, improve congestion control, and provide better multiplexing while ensuring reliability.
- the QUIC path established by the QUIC protocol cannot break through the performance bottleneck of the actual physical link. Under the constraints of physical link performance, the QUIC single path may not be able to achieve a higher transmission bandwidth.
- connection methods between devices are becoming more and more diverse, and there are multiple ways to connect from one device to another.
- How to apply the QUIC protocol to multiple connection methods between devices, establish multiple physical links between devices to transmit data, and then increase the bandwidth of data transmission between devices and improve user experience is an urgent problem to be solved.
- the embodiments of the present application provide a method, apparatus, electronic device, and storage medium for data transmission, which implement the use of the QUIC protocol to establish multiple physical links between devices to transmit data, thereby increasing the bandwidth of data transmission between devices and improving user experience.
- an embodiment of the present application provides a method for data transmission, the method being applied to a first device, including:
- the first link and the second link are links connecting the first device and the second device.
- a physical address of the first device corresponding to a link is different from a physical address of the first device corresponding to the second link, and the first link and the second link are links supporting a Fast User Datagram Protocol Internet Connection (QUIC) protocol;
- QUIC Fast User Datagram Protocol Internet Connection
- the second data flow is transmitted to the second device.
- an embodiment of the present application provides a method for data transmission, the method being applied to a second device, including:
- the first link and the second link are links connecting the first device and the second device, a physical address of the first device corresponding to the first link is different from a physical address of the first device corresponding to the second link, and the first link and the second link are links supporting a Fast User Datagram Protocol Internet Connection (QUIC) protocol;
- QUIC Fast User Datagram Protocol Internet Connection
- a first service data flow is determined according to the first data flow and the second data flow.
- an embodiment of the present application provides a data transmission device, including:
- a processing unit configured to allocate, according to the bandwidth of the first link and the bandwidth of the second link, a first data stream transmitted on the first link and a second data stream transmitted on the second link for the first service data stream,
- the first link and the second link are links connecting the first device and the second device, a physical address of the first device corresponding to the first link is different from a physical address of the first device corresponding to the second link, and the first link and the second link are links supporting a Fast User Datagram Protocol Internet Connection (QUIC) protocol;
- QUIC Fast User Datagram Protocol Internet Connection
- a transceiver unit configured to send the first data stream to the second device according to the sending stream of the first link
- the transceiver unit is further configured to send the second data stream to the second device according to the sending stream of the second link.
- an embodiment of the present application provides a data transmission device, including:
- a transceiver unit configured to receive a first data stream sent by a first device according to a receive stream of a first link
- the transceiver unit is further configured to receive a second data stream sent by the first device according to a received stream of the second link,
- the first link and the second link are links connecting the first device and the second device, the physical address of the first device corresponding to the first link is different from the physical address of the first device corresponding to the second link, and the first link and the second link support the Quick User Datagram Protocol Internet Connection QUIC protocol
- the proposed link
- a processing unit is used to determine a first service data flow according to the first data flow and the second data flow.
- the present application provides an electronic device, including:
- a processor adapted to implement computer instructions
- a memory stores computer instructions, where the computer instructions are suitable for being loaded by a processor and executing the method of the first aspect or the method of the second aspect.
- an embodiment of the present application provides a computer-readable storage medium, which stores computer instructions.
- the computer instructions When the computer instructions are read and executed by a processor of a computer device, the computer device executes the method of the first aspect or the method of the second aspect.
- an embodiment of the present application provides a computer program product or a computer program, the computer program product or the computer program including computer instructions, the computer instructions being stored in a computer-readable storage medium.
- a processor of a computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device executes the method of the first aspect or the method of the second aspect.
- the first device allocates the first data stream transmitted on the first link and the second data stream transmitted on the second link according to the bandwidth of the first link and the bandwidth of the second link, thereby realizing data transmission between different devices through multiple links, which can break through the performance bottleneck of the actual single physical link itself, and allocates data streams transmitted on different links according to the bandwidth of the links between different devices, reasonably allocates the data streams that need to be transmitted, and reduces the phenomenon of link data congestion.
- the first device sends the first data stream to the second device through the first sending stream of the first link, and the first device sends the second data stream to the second device through the first sending stream of the second link.
- the data transmission of the first service between the first device and the second device is carried out through the first link and the second link that support the QUIC protocol, which greatly improves the network transmission speed and improves the user experience.
- FIG1 is an optional schematic diagram of a system architecture involved in an embodiment of the present application.
- FIG2 is a schematic flow chart of a data transmission method provided in an embodiment of the present application.
- FIG3 is a schematic block diagram of two QUIC links between a first device and a second device provided in an embodiment of the present application;
- FIG4 is another schematic block diagram of two QUIC links between a first device and a second device provided in an embodiment of the present application;
- FIG5 is a schematic flow chart of a data transmission method provided in an embodiment of the present application.
- FIG6 is a schematic flowchart of a method for establishing a QUIC multipath provided in an embodiment of the present application
- FIG7 is a schematic flow chart of a data transmission method provided in an embodiment of the present application.
- FIG8 is a schematic flow chart of a data transmission method provided in an embodiment of the present application.
- FIG9 is an optional schematic diagram of an experimental scenario involved in an embodiment of the present application.
- FIG10 is a schematic diagram of QUIC single-path and QUIC multi-path link performance parameters provided by the present application.
- FIG11 is a schematic block diagram of a device according to an embodiment of the present application.
- FIG12 is a schematic block diagram of a device according to an embodiment of the present application.
- FIG. 13 is a schematic block diagram of an electronic device provided in an embodiment of the present application.
- Fig. 1 is an optional schematic diagram of a system architecture 100 involved in an embodiment of the present application.
- the system architecture 100 includes a client device 110 and a server device 120, wherein the client device 110 and the server 120 can communicate and interact with each other via wired or wireless means.
- the client device 110 supports the QUIC protocol.
- the client device 110 can be a wireless terminal device or a wired terminal device.
- the wireless terminal device can refer to a device with wireless transceiver functions, such as a smart phone, a tablet, etc. Computer (Pad), smart speaker, smart watch, laptop, virtual reality (VR) user equipment, augmented reality (AR) user equipment, vehicle-mounted equipment, wearable device, etc.
- the wired terminal can be a desktop computer, server, etc., but is not limited to this.
- the terminal and the server can be directly or indirectly connected through wired or wireless communication, and this application does not limit this.
- the server device 120 also supports the QUIC protocol.
- the server device 120 can be an independent physical server, a server cluster or a distributed system composed of multiple physical servers, or a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, CDN, as well as big data and artificial intelligence platforms.
- the QUIC protocol is a transport protocol based on the User Datagram Protocol (UDP). It has some obvious advantages over other protocols.
- the QUIC protocol works at the application layer and does not require kernel support.
- the QUIC protocol reduces network latency while ensuring reliability. It has the advantages of better congestion control, better multiplexing, link migration, etc., and improves the performance of a single physical path. Therefore, the QUIC protocol has been widely used in the Internet field.
- the QUIC data packet is divided into a header and data.
- the Header is transmitted in plain text and includes flags and a connection ID (CID).
- the CID can be used for connection migration.
- QUIC Version is the version number of QUIC, and Packet Number is the packet number used to ensure reliable transmission.
- the Data part is transmitted in ciphertext and includes some data frames, which include multiple frame types.
- the client device 110 shown in FIG1 establishes a network connection with the server device 120, and the client device 110 can watch the live content through the server device 120.
- existing streaming media transmission scenarios such as live streaming, streaming, on-demand, and content delivery network (CDN)
- CDN content delivery network
- QUIC protocol is used to establish a network connection between devices. Although it can reduce network latency to a certain extent, it cannot break through the performance bottleneck of the actual physical link itself. Under the constraints of physical link performance, the QUIC single path may not be able to achieve a higher transmission bandwidth, so that the user experience is still poor.
- WIFI Wireless Fidelity
- 5G/5G Wireless Fidelity
- WIFI Wireless Fidelity
- How to make full use of multiple links for parallel transmission to improve transmission bandwidth and use multiple links as link backup to improve link stability is of great significance to streaming media scenarios that require a large amount of network resources to transmit.
- the QUIC protocol can be used to establish multiple physical links, multi-path can superimpose multiple paths with limited capabilities to obtain a logical path with higher capabilities, which can greatly improve the transmission speed and increase the network bandwidth, thereby meeting the requirements for network resources in streaming media scenarios.
- the present application proposes a method for data transmission, which establishes a link supporting the QUIC protocol between a client device and a server device, which are respectively a first link and a second link.
- the client device can allocate a first business data stream to a first data stream transmitted on the first link and a second data stream transmitted on the second link according to the bandwidth of the first link and the bandwidth of the second link, and then send the first data stream to the server device through the first sending stream of the first link, and send the second data stream to the server device through the first sending stream of the second link.
- Data transmission between the client device and the server device is performed through the first link and the second link that support the QUIC protocol, which greatly improves the network bandwidth and network transmission speed, and improves the user experience.
- FIG. 2 is a schematic flow chart of a method 200 for data transmission provided in an embodiment of the present application.
- the method 200 can be performed by any electronic device having data processing capabilities.
- the electronic device can be implemented as a server or a computer.
- the following description is made by taking the electronic device as the first device as an example.
- the method 200 can include steps 201 to 206.
- the first device allocates a first data stream transmitted on the first link and a second data stream transmitted on the second link for the first service data stream according to the bandwidth of the first link and the bandwidth of the second link, wherein the first link and the second link are links connecting the first device and the second device, the physical address of the first device corresponding to the first link is different from the physical address of the first device corresponding to the second link, and the first link and the second link are links supporting the Fast User Datagram Protocol Internet Connection QUIC protocol.
- S220 The first device sends the first data stream to the second device according to the first sending stream of the first link.
- S230 The first device sends the second data stream to the second device according to the first sending stream of the second link.
- S240 The second device receives the first data stream sent by the first device according to the first receive stream of the first link.
- the second device receives a second data stream sent by the first device according to a first received stream of a second link.
- S260 The second device determines the first service data flow according to the first data flow and the second data flow.
- two first links and second links supporting the QUIC protocol are established between the first device and the second device, and the first device allocates the first link and the second link bandwidth according to the bandwidth of the first link and the bandwidth of the second link.
- the first data stream transmitted on the first link and the second data stream transmitted on the second link of the service data stream realize the transmission of data between different devices through multiple links, which can break through the performance bottleneck of the actual single physical link itself, and allocate the data streams transmitted by different links according to the bandwidth of the links between different devices, reasonably allocate the data streams that need to be transmitted, and reduce the phenomenon of link data congestion.
- the first device sends the first data stream to the second device through the first sending stream of the first link, and the first device sends the second data stream to the second device through the first sending stream of the second link.
- the data transmission of the first service between the first device and the second device is carried out through the first link and the second link that support the QUIC protocol, which greatly improves the network transmission speed and improves the user experience.
- establishing a multipath QUIC link can also improve system stability. For example, when the first link fails, the second link can continue to be used for data transmission between the first device and the second device.
- the two QUIC links established between the first device and the second device are the first link and the second link.
- the data stream adopted by the QUIC protocol is generally a unidirectional stream. Therefore, the first link includes a first sending stream and a second sending stream.
- the first sending stream is used for the first device to send data to the second device.
- the second device receives the data sent by the first device through the first sending stream.
- the first sending stream can also be called the first receiving stream; the second sending stream is used for the second device to send data to the first device.
- the first device receives the data sent by the second device through the second sending stream.
- the second sending stream can also be called the second receiving stream; similarly, the second link includes a first sending stream and a second sending stream.
- the first sending stream is used for the first device to send data to the second device.
- the second device receives the data sent by the second device through the first sending stream.
- the data sent by the first device, the first sending stream may also be referred to as the first receiving stream for the second device; the second sending stream is used for the second device to send data to the first device, and accordingly, the first device receives the data sent by the second device through the second sending stream, and the second sending stream may also be referred to as the second receiving stream for the first device, the first link and the second link are marked with a unique flow identification (UID), the first link is identified as a first UID, the second link is identified as a second UID, the first sending stream of the first link is identified as a first connection identification (CID), the second sending stream of the first link is identified as a second CID, the first sending stream of the second link is identified as a third CID, and the second sending stream of the second link is identified as a fourth CID.
- UID unique flow identification
- CID connection identification
- the second sending stream of the first link is identified as a second CID
- the first sending stream of the second link is identified as a third CID
- the first device needs to have two available physical links, such as two network cards installed in the first device, namely network card 1 and network card 2.
- the IP address of network card 1 is IP1
- the IP address of network card 2 is IP2
- the second device has at least one available physical link.
- the second device is installed with a network card, which is network card 3, and the IP address of network card 3 is IP3, as shown in Figure 3.
- Figure 3 is a schematic block diagram of two QUIC links between the first device and the second device provided in an embodiment of the present application.
- a physical address of the second device corresponding to the first link is different from a physical address of the second device corresponding to the second link.
- the second physical device may also be installed with two different network cards, such as network card 3 and network card 4, the IP address of network card 3 is IP3, the IP address of network card 4 is IP4, the first link is the link from network card 1 to network card 3, and the second link is the link from network card 2 to network card 4.
- FIG4 is another schematic block diagram of two QUIC links between the first device and the second device provided in an embodiment of the present application.
- the first device when the first device distributes the first service data stream to the first link and the second link for simultaneous transmission, in order to enable the second device to determine the first service data stream when receiving the first data stream of the first link and the second data stream of the second link, that is, to ensure the orderliness of the data, the first device may add an offset offset to the data packets corresponding to the first data stream and the second data stream respectively, and the offset indicates the position of the data packet to which it belongs in the original data packet, that is, the first service data stream.
- the second device sorts the data packets corresponding to the first data stream and the second data stream respectively according to the offset field in the data packets corresponding to the first data stream and the second data stream respectively, thereby determining the first service data stream.
- the second device may also send a second service data stream to the first device via the first link and the second link.
- FIG5 is a schematic flow chart of a method 200 for data transmission provided in an embodiment of the present application.
- the method 200 may also include steps 207 to 212.
- S207 The second device allocates the third data stream transmitted on the first link and the fourth data stream transmitted on the second link of the second service data stream according to the bandwidth of the first link and the bandwidth of the second link.
- the second device sends the third data stream to the second device according to the second sending stream of the first link.
- S209 The second device sends the fourth data stream to the second device according to the second sending stream of the second link.
- the first device receives a third data stream sent by the second device according to a second received stream of the first link.
- the first device receives a fourth data stream sent by the second device according to a second received stream of the second link.
- S212 The first device determines the second service data stream according to the third data stream and the fourth data stream. flow.
- the second transmission stream of the first link and the second transmission stream of the second link are used for the second device to send data to the first device.
- Two first links and second links supporting the QUIC protocol are established between the first device and the second device.
- the first link includes the first transmission stream and the second transmission stream, and the second link also includes the first transmission stream and the second transmission stream, so that data can be sent to each other between different devices.
- the second device can also allocate the first data stream transmitted on the first link and the second data stream transmitted on the second link according to the bandwidth of the first link and the bandwidth of the second link of the first service data stream, thereby realizing data transmission through multiple links between different devices, breaking through the performance bottleneck of the actual single physical link itself, and allocating data streams transmitted on different links according to the bandwidth of the links between different devices, reasonably allocating the data streams that need to be transmitted, improving the network transmission speed, and improving the user experience.
- step S201 The above describes the process of how the first device and the second device send data between multiple QUIC links. The following describes in detail how to establish a QUIC multipath between the first device and the second device. It should be understood that the method 300 is performed before step S201.
- FIG6 is a schematic flow chart of a method 300 for establishing a QUIC multipath provided in an embodiment of the present application.
- the method 300 can be performed by any electronic device with data processing capabilities.
- the electronic device can be implemented as a server or a computer.
- the following is an example in which the electronic device is the first device.
- the method 300 can include steps 301 to 313.
- the first device sends a link establishment request message to the second device, the link establishment request message includes a first connection identifier, the first connection identifier is the connection identifier of the first sending stream of the first link, and the link establishment request message also includes the capability of the first device to have the QUIC protocol multipath and/or the number of the QUIC protocol multipaths supported by the first device.
- the second device receives the link establishment request message sent by the first device.
- the second device sends a feedback message to the first device according to the link establishment request message, where the feedback message includes a second connection identifier, where the second connection identifier is a connection identifier of a second sending stream of the first link, and the feedback message also includes the capability of the second device to have the QUIC protocol multipath and/or the number of the QUIC protocol multipaths supported by the second device.
- the first device receives the feedback message sent by the second device.
- S303 The first device sends a message to the second device indicating that authentication is successful and confirming the establishment of an initial QUIC link.
- the first device generates parameter information of the first link according to the feedback message, where the parameter information of the first link includes: the first connection identifier, the second connection identifier, and a link identifier of the first link.
- the second device generates parameter information of the first link according to the link establishment request message, where the parameter information of the first link includes: the first connection identifier, the second connection identifier, and a link identifier of the first link.
- the first link is the first QUIC link established between the first device and the second device.
- the first device may exchange with the second device whether each has the capability of the QUIC protocol multipath and/or the number of the QUIC protocol multipaths supported by each. That is, the link establishment request message sent by the first device to the second device may include the capability of the first device having the QUIC protocol multipath and/or the number of the QUIC protocol multipaths supported by the first device, and the feedback message sent by the second device to the first device based on the link establishment request message may include the capability of the second device having the QUIC protocol multipath and/or the number of the QUIC protocol multipaths supported by the second device.
- the first device may not exchange with the second device whether each has the capability of the QUIC protocol multipath and/or the number of the QUIC protocol multipaths supported by each device, that is, the first device and the second device only establish a single-link QUIC connection, and the link establishment request message includes a first connection identifier.
- the first device When the first device detects that the bandwidth of the current transmission stream and the current transmission rate cannot meet the requirements of the first service, the first device sends a first message to the second device, the first message includes the capability of the first device to have the QUIC protocol multipath and/or the number of the QUIC protocol multipaths supported by the first device, and the second device receives the first message and sends a second message to the first device, the second message includes the capability of the second device to have the QUIC protocol multipath and/or the number of the QUIC protocol multipaths supported by the second device. Then, the first device and the second device negotiate QUIC multipath.
- the link establishment request message may be a client hello message, wherein the client hello message includes a first public number, wherein the first public number is used for the second device to generate a communication key, and the second device generates the communication key based on a randomly generated private key and the first public number.
- the feedback message may be a reject message, the reject message including a second public number, where the second public number is a configuration parameter of the second device, where the second public number is used to generate a communication key for the first device, and the first device generates the communication key based on a randomly generated private key and the second public number.
- the client hello message and the reject message are messages sent to each other when the first device and the second device establish an initial QUIC connection, and are mainly used for verification of the communicating parties.
- a QUIC connection only requires one round-trip time (RTT) to complete the communication.
- RTT round-trip time
- the first device can send the client hello message to the second device, and the first device calculates the communication key based on the configuration parameters of the second device, encrypts and sends the application data to the second device, and the second device calculates the communication key according to the client hello message.
- the first device can send application data without going through a handshake. This is the 0-RTT handshake.
- the process of negotiating the communication key through 1 RTT of QUIC connection and the process of QUIC connection 0 RTT please refer to the existing QUIC connection process, which will not be repeated here.
- the first device may carry the capability of the first device to have the QUIC protocol multipath and/or the number of the QUIC protocol multipaths supported by the first device when establishing a QUIC connection with the second device, such as the above-mentioned client hello message includes the capability of the first device to have the QUIC protocol multipath and/or the number of the QUIC protocol multipaths supported by the first device, the second device receives the client hello message, and the reject message sent by the second device to the first device includes the capability of the second device to have the QUIC protocol multipath and/or the number of the QUIC protocol multipaths supported by the second device; or,
- the first device may negotiate with the second device to establish the second link, and the first device sends a first message to the second device, the first message includes that the first device has the capability of the QUIC
- the first device sends to the second device the capability of the first device to transmit the QUIC protocol multipath and/or the number of the QUIC protocol multipaths supported by the first device
- the second device sends to the first device the capability of the second device to transmit the QUIC protocol multipath and/or the number of the QUIC protocol multipaths supported by the second device.
- the first device and the second device obtain the multipath capability supported by the other end, but the second link is not enabled, so the following steps are required:
- the first device sends a first detection message to the second device through the second link, where the first detection message includes a first path detection frame, and the first path detection frame includes the third connection identifier.
- the second device receives the first detection message sent by the first device through the second link.
- the second device generates parameter information of a first transmission flow of the second link, and the second link
- the parameter information of a sending flow includes: a third connection identifier and a link identifier of the second link, and the link identifier of the second link is a second link identifier.
- the second device sends a first response message to the first device through the second link, where the first response message includes a first path response frame.
- the first device receives a first response message sent by the second device through the second link, where the first response message includes a first path response frame.
- the first device generates parameter information of a first sending flow of the second link according to the first response message, where the parameter information of the sending flow of the second link includes: a third connection identifier and a link identifier of the second link.
- the first device creates a first transmission stream on the second link.
- the first device sends a first path detection frame, such as a PATH_CHALLENGE frame, on the second link; after receiving the PATH_CHALLENGE frame, the second device checks whether multipath is enabled. If the second device enables multipath, the second device creates a second link and a first receiving stream of the second link, and the second device generates parameter information of the first receiving stream of the second link.
- the parameter information of the first receiving stream of the second link includes: a third connection identifier and a link identifier of the second link, the third connection identifier is a connection identifier of the first transmission stream of the second link, and the link identifier of the second link is a second link identifier.
- the second device sends the first response message, such as a PATH_RESPONSE frame, to the first device. After receiving the first response message, the first device generates parameter information of the first transmission stream of the second link.
- the second link identifier and the first link identifier may be arranged in a continuously increasing order, such as the first link identifier is 1 and the second link identifier is 2.
- the first device can send data to the second device on the first transmission flow of the second link, but the reverse data transmission channel has not been established, that is, the second device cannot send data to the first device yet, and the following steps are required:
- S310 The second device sends a second detection message to the first device through the second link, where the first detection message includes a second path detection frame.
- the first device receives the second detection message sent by the second device through the second link.
- the first device generates parameter information of the second sending stream of the second link
- the parameter information of the second sending stream of the second link includes: a fourth connection identifier and a link identifier of the second link
- the fourth connection identifier is the connection identifier of the second sending stream of the second link
- the link identifier of the second link is the second link identifier.
- the first device sends a second response message to the second device via the second link.
- the second response message includes a second path response frame.
- the second device receives the second response message sent by the first device through the second link.
- the second device generates parameter information of the second sending stream of the second link according to the second response message, the parameter information of the sending stream of the second link includes: a fourth connection identifier and a link identifier of the second link, the fourth connection identifier is the connection identifier of the sending stream of the second link, and the link identifier of the second link is the second link identifier.
- the second device creates a second transmission stream on the second link.
- the second device sends a second path detection frame, such as a PATH_CHALLENGE frame, on the second link; after receiving the PATH_CHALLENGE frame, the first device checks whether multipath is enabled. If the first device enables multipath, the first device creates the second link and the second receiving stream of the second link, and the second device generates parameter information of the second receiving stream of the second link.
- the parameter information of the second receiving stream of the second link includes: a fourth connection identifier and a link identifier of the second link, the fourth connection identifier is the connection identifier of the transmission stream of the second link, and the link identifier of the second link is the second link identifier.
- the first device sends the second response message, such as a PATH_RESPONSE frame, to the second device. After receiving the first response message, the second device generates parameter information of the second transmission stream of the second link and parameter information of the second transmission stream.
- the second link is a QUIC link other than the first link between the first device and the second device.
- the second link may include one link or multiple links. If the second link includes multiple links, the link identifiers of the multiple links may be in ascending order. For example, if the link identifier of the first link is 1, the link identifier of the first link of the second link is 2, the link identifier of the second link of the second link is 3, and so on.
- multiple QUIC paths are established between the first device and the second device, and data streams can be sent and received between them through the multiple QUIC paths, breaking through the performance bottleneck of the actual single physical link itself, improving the network transmission speed, and improving the user experience.
- a complete multi-path system also includes functional modules such as path status management, path capability evaluation, and data flow packet sending decision.
- Path status management can include: checking whether the path is active and removing invalid paths. The following describes checking whether the path is active and removing invalid paths respectively.
- Fig. 7 is a schematic flow chart of a data transmission method 200 provided in an embodiment of the present application.
- the method 200 may also include steps 213 to 216.
- S213 The first device determines whether the first transmission flow of the first link and/or the first transmission flow of the second link is valid.
- S215 The second device receives the path elimination message sent by the first device through the first receiving stream of the second link.
- S216 The second device deletes the first sending flow of the first link marked by the first connection identifier according to the path removal message.
- the first device when the first device determines that the first sending stream of the first link is invalid, it sends a path removal message to the second device through the second sending stream of the second link.
- the second device deletes the first sending stream of the first link marked with the first connection identifier according to the path removal message, thereby realizing the management of the path status of multiple links.
- the second device can avoid misjudgment of the status of the first sending stream, and can also save some memory.
- FIG8 is a schematic flow chart of a data transmission method 200 provided in an embodiment of the present application.
- the method 200 may further include steps 217 to 220 .
- S217 The first device determines whether the first transmission flow of the first link and/or the first transmission flow of the second link is valid.
- S219 The second device receives the path elimination message sent by the first device through the first receiving stream of the first link.
- S220 The second device deletes the first sending flow of the second link marked by the third connection identifier according to the path removal message.
- the first device when the first device determines that the second sending stream of the first link is invalid, it sends a path removal message to the second device through the first sending stream of the second link.
- the second device deletes the second sending stream of the first link marked with the first connection identifier according to the path removal message, thereby realizing the management of the path status of multiple links.
- the second device can avoid misjudgment of the status of the second sending stream, and can also save some memory.
- the first device determining whether the first link is valid includes:
- the first device sends a path status detection message to the second device through a first transmission flow of the first link. interest;
- the first device When the first device receives the path status response message sent by the second device through the second receiving flow of the first link, determining that the first sending flow of the first link is valid;
- the first device When the first device does not receive the path status response message sent by the second device through the second receiving flow of the first link, it determines that the first sending flow of the first link is invalid.
- the path status detection message may be a data packet
- the path status response message may be an acknowledgment (ACK) frame.
- the path status detection message may be a Packet Internet Groper (PING) frame
- the path status response message may be a PONG frame.
- the first device may double-check the activity status of the path based on ACK and PING frames.
- the first link when data is sent on the first transmission stream of the first link within the preset time and an ACK frame sent by the second device is received, the first link is considered to be active; otherwise, a PING frame is sent on the first transmission stream of the first link. If the second device can respond to the PONG frame within the preset time, the first link is considered to be active. Otherwise, PING frames are continued to be sent on the first transmission stream of the first link (with an interval of 1/2/4/8) for up to 5 PING frames. If the second device does not respond within the preset time, the first link is invalid. When the path fails, the path removal is triggered, and a PATH_ABANBON frame is sent through the first transmission stream of the second link, carrying the identifier of the first link to be removed, to notify the second device to remove the first path.
- the second transmission stream of the first link and the second transmission stream of the second link are detected by the second device to see whether they are valid.
- the specific detection process can refer to the process in which the first device detects the first transmission stream of the first link and the first transmission stream of the second link, which will not be repeated here.
- the path capability assessment includes several parts: path bandwidth assessment, path congestion handling, etc.
- the QUIC protocol itself supports congestion algorithms such as Bottleneck Bandwidth and RTT (BBR), CBUIC (the CBUIC algorithm is an improved version of the Binary Increase Congestion-Transmission Control Protocol (BIC-TCP)), etc.
- BBR Bottleneck Bandwidth and RTT
- CBUIC the CBUIC algorithm is an improved version of the Binary Increase Congestion-Transmission Control Protocol (BIC-TCP)
- BBR Bottleneck Bandwidth and RTT
- CBUIC the CBUIC algorithm is an improved version of the Binary Increase Congestion-Transmission Control Protocol (BIC-TCP)
- BBR Bottleneck Bandwidth and RTT
- BIC-TCP Binary Increase Congestion-Transmission Control Protocol
- the first device and the second device can estimate the bandwidth of each path in real time based on the RTT extracted by the congestion algorithm and the amount of data sent per unit time.
- the first device and the second device extract the RTT and the amount of data sent per unit
- the first device allocates the first service data stream according to the bandwidth of the first link and the bandwidth of the second link.
- the first data stream transmitted on the first link and the second data stream transmitted on the second link include:
- the sending window of the first service data flow including a first sub-window and a second sub-window, the first sub-window corresponding to the sending flow of the first link, and the second sub-window corresponding to the sending flow of the second link;
- the second data stream is transmitted through the second link.
- the two different physical links, the first link and the second link can be regarded as a logical link, and the logical link is used to transmit the first service data flow.
- the logical link corresponds to a sending window
- the sending window includes a first sub-window and a second sub-window.
- the first sub-window corresponds to the sending flow of the first link
- the second sub-window corresponds to the sending flow of the second link.
- the first sub-window and the second sub-window are dynamically adjusted to achieve dynamic adjustment of the sending capacity of each path.
- the initial window sizes of the first sub-window and the second sub-window are the same.
- the first link evenly divides the sending window into the first link and the second link to ensure that each path has the opportunity to send stream data.
- the first device estimates the bandwidth of the first link and the second link based on the RTT extracted from the current congestion algorithm and the amount of data sent per unit time, and then dynamically adjusts the first sub-window and the second sub-window based on the estimated bandwidth ratio.
- the above method uses the QUIC protocol to establish multiple QUIC physical links between devices to transmit data, effectively solving the problem of low bandwidth and reduced frame rate caused by the performance bottleneck of a single QUIC physical link, and improving user experience.
- a set of experiments are used to illustrate it.
- FIG9 is an optional schematic diagram of an experimental scenario involved in an embodiment of the present application.
- system architecture 400 includes server 410, server 420, server 430, server 440 and user equipment 450, wherein server 410 has two network cards, network card 0 and network card 1, and a speed limiting tool is used to limit the bandwidth capacity of the physical link, setting the bandwidth of network card 0 to 2.4Mbps and the bandwidth of network card 1 to 1.6Mbps, and server 420 has one network card, network card 2.
- RTMP OVER QUIC single path pushes the stream through the physical link between the network card 0 of the server 410 and the server 420.
- the QUIC multipath between the server 410 and the server 420 is the first link and the second link, which are respectively the physical link between the network card 0 of the server 410 and the network card 2 of the server 420 and the physical link between the network card 1 of the server 410 and the network card 2 of the server 420.
- the server 410 transmits the stream through the Real Time Messaging Protocol (RTMP).
- the server 420 transmits the streaming data to the server 430, which may be a third-party computer room for providing application data to the user equipment.
- the server 430 sends the received streaming data to the server 440, which may be a service network accessed by the user.
- the user equipment 450 plays the streaming data from the server 440.
- the server 410 used RTMP OVER QUIC single-path and RTMP OVER QUIC multi-path tools to push streams with a bit rate of 3Mbps and a frame rate of 30 frames respectively, and then played the pushed stream effects on the statistical platform and user side of the live broadcast system for comparative experiments.
- the size of the sequence number of the above-mentioned processes does not mean the order of execution, and the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application. It should be understood that these sequence numbers can be interchanged where appropriate, so that the embodiments of the present application described can be implemented in an order other than those shown or described.
- Fig. 11 is a schematic block diagram of an apparatus 500 according to an embodiment of the present application, and the apparatus 500 can implement the function of the first apparatus in the above method.
- the apparatus 500 can include a processing unit 510 and a transceiver unit 520 .
- the processing unit 510 is configured to allocate, according to the bandwidth of the first link and the bandwidth of the second link, a first data stream transmitted on the first link and a second data stream transmitted on the second link for the first service data stream,
- the first link and the second link are links connecting the first device and the second device, the physical address of the first device corresponding to the first link is different from the physical address of the first device corresponding to the second link, and the first link and the second link are links supporting the Fast User Datagram Protocol Internet Connection QUIC protocol.
- the transceiver unit 520 is configured to send the first data stream to the second device according to the sending stream of the first link;
- the transceiver unit 520 is further configured to send the second data stream to the second device according to the sending stream of the second link.
- the transceiver unit 520 before allocating the first service data stream to the first data stream transmitted on the first link and the second data stream transmitted on the second link according to the bandwidth of the first link and the bandwidth of the second link, the transceiver unit 520 is further configured to:
- the link establishment request message including a first connection identifier, the first connection identifier being a connection identifier of a sending flow of the first link, the link establishment request message also including a capability of the first device having the QUIC protocol multipath and/or the number of the QUIC protocol multipaths supported by the first device;
- the feedback message includes a second connection identifier, where the second connection identifier is a connection identifier of a second sending flow of the first link, and the feedback message also includes a capability of the second device to have the QUIC protocol multipath and/or the number of the QUIC protocol multipaths supported by the second device;
- the processing unit 510 is further configured to:
- parameter information of the first link is generated, where the parameter information of the first link includes: the first connection identifier, the second connection identifier, and a link identifier of the first link, where the link identifier of the first link is a first link identifier.
- the transceiver unit 520 is further configured to:
- the processing unit 510 is further configured to:
- the parameter information of the transmission stream includes: a third connection identifier and a link identifier of the second link, the third connection identifier is the connection identifier of the transmission stream of the second link, and the link identifier of the second link is the second link identifier.
- the transceiver unit 520 is further configured to:
- a second response message is sent to the second device through the second link, where the second response message includes a second path response frame.
- the transceiver unit 520 is further configured to:
- a path removal message is sent to the second device through the first sending flow of the first link, where the path removal message includes the third connection identifier.
- the processing unit 510 is specifically configured to:
- the sending window of the first service data flow including a first sub-window and a second sub-window, the first sub-window corresponding to the sending flow of the first link, and the second sub-window corresponding to the sending flow of the second link;
- the transceiver unit 520 is also used for:
- the second data stream is transmitted through the second link.
- the transceiver unit 520 is further configured to:
- the processing unit 510 is further configured to:
- a second service data flow is determined according to the third data flow and the fourth data flow.
- a physical address of the second device corresponding to the first link is different from a physical address of the second device corresponding to the second link.
- the device embodiment and the method embodiment may correspond to each other, and similar descriptions may refer to the method embodiment. To avoid repetition, no further description is given here.
- the device 500 in this embodiment may correspond to the execution subject of the method 200 or the method 300 of the embodiment of the present application
- the aforementioned and other operations and/or functions of each module in the device 500 are respectively to implement the corresponding processes of the first device in the above-mentioned method 200 and the method 300. For the sake of brevity, they are not described here. I will elaborate on this.
- Fig. 12 is a schematic block diagram of an apparatus 600 according to an embodiment of the present application, and the apparatus 600 can implement the function of the second apparatus in the above method.
- the apparatus 600 can include a transceiver unit 610 and a processing unit 620 .
- the transceiver unit 610 is configured to receive a first data stream sent by a first device according to a receive stream of a first link;
- the transceiver unit 610 is further configured to receive a second data stream sent by the first device according to a received stream of the second link,
- the first link and the second link are links connecting the first device and the second device, a physical address of the first device corresponding to the first link is different from a physical address of the first device corresponding to the second link, and the first link and the second link are links supporting a Fast User Datagram Protocol Internet Connection (QUIC) protocol;
- QUIC Fast User Datagram Protocol Internet Connection
- the processing unit 620 is configured to determine a first service data flow according to the first data flow and the second data flow.
- the transceiver unit 610 before receiving the first data stream sent by the first device according to the first received stream of the first link, is further configured to:
- the link establishment request message including a first connection identifier, the first connection identifier being a connection identifier of a sending flow of the first link, the link establishment request message also including a capability of the first device having the QUIC protocol multipath and/or the number of the QUIC protocol multipaths supported by the first device;
- the feedback message includes a second connection identifier, where the second connection identifier is a connection identifier of a receiving stream of the first link, and the feedback message also includes a capability of the second device to have the QUIC protocol multipath and/or the number of the QUIC protocol multipaths supported by the second device;
- the processing unit 620 is further configured to:
- the parameter information of the first link includes: the first connection identifier, the second connection identifier, and a link identifier of the first link, where the link identifier of the first link is a first link identifier.
- the transceiver unit 610 is further configured to: receive, via the second link, a first detection message sent by the first device, wherein the first detection message includes a first path detection frame;
- a first response message is sent to the first device through the second link, where the first response message includes a first path response frame.
- the transceiver unit 610 is further configured to:
- the processing unit 620 is further configured to:
- parameter information of the sending stream of the second link is generated, and the parameter information of the sending stream of the second link includes: a fourth connection identifier and a link identifier of the second link, the fourth connection identifier is the connection identifier of the sending stream of the second link, and the link identifier of the second link is the second link identifier.
- the transceiver unit 610 is further configured to:
- a path removal message is sent to the first device through the sending flow of the first link, and the path removal message includes the second link identifier.
- processing unit 620 is further configured to:
- the transceiver unit 610 is also used for:
- the fourth data stream is sent to the first device according to the sending stream of the second link.
- a physical address of the second device corresponding to the first link is different from a physical address of the second device corresponding to the second link.
- the device embodiment and the method embodiment may correspond to each other, and similar descriptions may refer to the method embodiment. To avoid repetition, no further description is given here.
- the device 600 in this embodiment may correspond to the execution subject of the method 200 or the method 300 of the embodiment of the present application
- the aforementioned and other operations and/or functions of each module in the device 600 are the corresponding processes of the second device in the above-mentioned method 200 and the method 300, respectively, and for the sake of brevity, no further description is given here.
- the functional module can be implemented in the form of hardware, or can be implemented by instructions in the form of software, or can be implemented by a combination of hardware and software modules.
- each step of the method embodiment in the embodiment of the present application can be implemented by hardware in the processor.
- the steps of the method disclosed in the embodiment of the present application can be directly embodied as a hardware decoding processor, or can be executed by a combination of hardware and software modules in the decoding processor.
- the software module can be located in a mature storage medium in the art such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory, an electrically erasable programmable memory, a register, etc.
- the storage medium is located in the memory, and the processor reads the information in the memory and completes the steps in the above method embodiment in combination with its hardware.
- FIG13 is a schematic block diagram of an electronic device 700 provided in an embodiment of the present application.
- the electronic device 700 may include:
- the memory 710 and the processor 720 the memory 710 is used to store the computer program and transmit the program code to the processor 720.
- the processor 720 can call and run the computer program from the memory 710 to implement the method in the embodiment of the present application.
- the processor 720 may be used to execute the steps of each execution subject in the above-mentioned method 200 and method 300 according to the instructions in the computer program.
- the processor 720 may include but is not limited to:
- DSP digital signal processor
- ASIC application-specific integrated circuit
- FPGA field programmable gate array
- the memory 710 includes but is not limited to:
- Non-volatile memory can be read-only memory (ROM), programmable ROM (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM) or flash memory.
- the volatile memory can be random access memory (RAM), which is used as an external cache.
- RAM random access memory
- SRAM static RAM
- DRAM dynamic RAM
- SDRAM synchronous DRAM
- DDR SDRAM double data rate synchronous dynamic random access memory
- ESDRAM enhanced synchronous dynamic random access memory
- SLDRAM synchronous link DRAM
- Direct Rambus RAM Direct Rambus RAM
- the computer program may be divided into one or more modules. Multiple modules are stored in the memory 710 and executed by the processor 720 to complete the method provided by the present application.
- the one or more modules can be a series of computer program instruction segments that can complete specific functions, and the instruction segments are used to describe the execution process of the computer program in the electronic device 700.
- the electronic device 700 may further include:
- the communication interface 730 may be connected to the processor 720 or the memory 710 .
- the processor 720 may control the communication interface 730 to communicate with other devices, specifically, to send information or data to other devices, or to receive information or data sent by other devices.
- the communication interface 730 may include a transmitter and a receiver.
- the communication interface 730 may further include an antenna, and the number of antennas may be one or more.
- bus system includes not only a data bus but also a power bus, a control bus and a status signal bus.
- a communication device including a processor and a memory, wherein the memory is used to store a computer program, and the processor is used to call and run the computer program stored in the memory, so that the encoder executes the method of the above method embodiment.
- a computer storage medium on which a computer program is stored, and when the computer program is executed by a computer, the computer can perform the method of the above method embodiment.
- the present application embodiment also provides a computer program product containing instructions, and when the instructions are executed by a computer, the computer can perform the method of the above method embodiment.
- a computer program product or computer program includes computer instructions, the computer instructions are stored in a computer-readable storage medium.
- a processor of a computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device executes the method of the above method embodiment.
- the computer program product includes one or more computer instructions.
- the computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device.
- the computer instructions may be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium.
- the computer instructions may be transmitted from one website, computer, server, or data center to another website, computer, server, or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means.
- the computer-readable storage medium may be a computer. Any available medium that can be accessed by a computer or a data storage device such as a server or data center that includes one or more available media.
- the available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a digital video disc (DVD)), or a semiconductor medium (e.g., a solid state disk (SSD)).
- a magnetic medium e.g., a floppy disk, a hard disk, a tape
- an optical medium e.g., a digital video disc (DVD)
- DVD digital video disc
- SSD solid state disk
- B corresponding to A means that B is associated with A. In one implementation, B can be determined based on A. However, it should also be understood that determining B based on A does not mean determining B based only on A, and B can also be determined based on A and/or other information.
- At least one means one or more
- plural means two or more than two.
- and/or describes the association relationship of associated objects, indicating that three relationships may exist.
- a and/or B can represent: A exists alone, A and B exist at the same time, and B exists alone, where A and B can be singular or plural.
- the character “/” generally indicates that the associated objects before and after are in an “or” relationship.
- At least one of the following” or similar expressions refers to any combination of these items, including any combination of single or plural items.
- At least one of a, b, or c can represent: a, b, c, a-b, a-c, b-c, or a-b-c, where a, b, c can be single or multiple.
- modules and algorithm steps of each example described in the embodiments disclosed herein can be implemented in electronic hardware, or in a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Different methods may be used to implement the described functionality for each specific application, but such implementation should not be considered beyond the scope of the present application.
- the disclosed devices, apparatuses and methods can be implemented in other ways.
- the device embodiments described above are only schematic.
- the division of the module is only a logical function division. There may be other division methods in actual implementation, such as multiple modules or components can be combined or integrated into another system, or some features can be ignored or not executed.
- Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or modules, which can be electrical, mechanical or other forms.
- each functional module in each embodiment of the present application may be integrated into a processing module, or each module may exist physically separately, or two or more modules may be integrated into one module.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种数据传输的方法、装置、电子设备以及存储介质,涉及数据传输技术领域。该方法包括:根据第一链路的带宽和第二链路的带宽,分配第一业务数据流在该第一链路传输的第一数据流和在该第二链路传输的第二数据流,其中,该第一链路对应的该第一装置的物理地址与该第二链路对应的该第一装置的物理地址不同,该第一链路和该第二链路是支持快速用户数据报协议互联网连接QUIC协议的链路;根据该第一链路的第一发送流,向第二装置发送该第一数据流;根据该第二链路的第一发送流,向该第二装置发送该第二数据流。该方法实现了应用QUIC协议建立设备之间的多条物理链路来传输数据,进而提高设备之间数据传输的带宽,提高用户体验度。
Description
本申请要求于2022年11月16日提交中国专利局、申请号为202211436459.7、发明名称为“一种数据传输的方法、装置、电子设备及存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及通信领域,并且具体的,涉及一种数据传输的方法、装置、电子设备及存储介质。
快速用户数据报协议互联网连接(Quick UDP Internet Connection,QUIC)是一种基于用户数据报协议(User Datagram Protocol,UDP)的低时延的互联网传输层协议,相比其他协议有一些明显优势,QUIC协议工作于应用层不需要内核支持,QUIC协议在保证可靠性的同时可以降低网络延迟,改进的拥塞控制,更优的多路复用。但是根据QUIC协议建立的QUIC路径,无法突破实际物理链路的性能瓶颈,在物理链路性能约束的情况下,QUIC单路径可能也无法达到更高的传输带宽。
随着网络技术的发展,设备之间的连接方式越来越丰富,从一个设备到另一个设备会有多种连接方式。如何将QUIC协议应用于设备之间的多种连接方式,建立设备之间的多条物理链路来传输数据,进而提高设备之间数据传输的带宽,提高用户体验度,是一项亟待解决的问题。
发明内容
本申请实施例提供了一种数据传输的方法、装置、电子设备及存储介质,实现了应用QUIC协议建立设备之间的多条物理链路来传输数据,进而提高设备之间数据传输的带宽,提高用户体验度。
第一方面,本申请实施例提供了一种数据传输的方法,所述方法应用于第一装置,包括:
根据第一链路的带宽和第二链路的带宽,分配第一业务数据流在所述第一链路传输的第一数据流和在所述第二链路传输的第二数据流,
其中,所述第一链路和所述第二链路是所述第一装置与第二装置连接的链路,所述第
一链路对应的所述第一装置的物理地址与所述第二链路对应的所述第一装置的物理地址不同,所述第一链路和所述第二链路是支持快速用户数据报协议互联网连接QUIC协议的链路;
根据所述第一链路的第一发送流,向所述第二装置发送所述第一数据流;
根据所述第二链路的第一发送流,向所述第二装置发送所述第二数据流。
第二方面,本申请实施例提供了一种数据传输的方法,所述方法应用于第二装置,包括:
根据第一链路的第一接收流,接收第一装置发送的第一数据流;
根据第二链路的第一接收流,接收所述第一装置发送的第二数据流,
其中,所述第一链路和所述第二链路是所述第一装置与所述第二装置连接的链路,所述第一链路对应的所述第一装置的物理地址与所述第二链路对应的所述第一装置的物理地址不同,所述第一链路和所述第二链路是支持快速用户数据报协议互联网连接QUIC协议的链路;
根据所述第一数据流和所述第二数据流,确定第一业务数据流。
第三方面,本申请实施例提供了一种数据传输的装置,包括:
处理单元,用于根据第一链路的带宽和第二链路的带宽,分配第一业务数据流在所述第一链路传输的第一数据流和在所述第二链路传输的第二数据流,
其中,所述第一链路和所述第二链路是所述第一装置与第二装置连接的链路,所述第一链路对应的所述第一装置的物理地址与所述第二链路对应的所述第一装置的物理地址不同,所述第一链路和所述第二链路是支持快速用户数据报协议互联网连接QUIC协议的链路;
收发单元,用于根据所述第一链路的发送流,向所述第二装置发送所述第一数据流;
所述收发单元还用于根据所述第二链路的发送流,向所述第二装置发送所述第二数据流。
第四方面,本申请实施例提供了一种数据传输的装置,包括:
收发单元,用于根据第一链路的接收流,接收第一装置发送的第一数据流;
所述收发单元还用于根据第二链路的接收流,接收所述第一装置发送的第二数据流,
其中,所述第一链路和所述第二链路是所述第一装置与所述第二装置连接的链路,所述第一链路对应的所述第一装置的物理地址与所述第二链路对应的所述第一装置的物理地址不同,所述第一链路和所述第二链路是支持快速用户数据报协议互联网连接QUIC协
议的链路;
处理单元,用于根据所述第一数据流和所述第二数据流,确定第一业务数据流。
第五方面,本申请实施例本申请提供了一种电子设备,包括:
处理器,适于实现计算机指令;以及,
存储器,存储有计算机指令,计算机指令适于由处理器加载并执行上述第一方面的方法或者上述第二方面的方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机指令,该计算机指令被计算机设备的处理器读取并执行时,使得计算机设备执行上述第一方面的方法或者上述第二方面的方法。
第七方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述第一方面的方法或者上述第二方面的方法。
通过上述技术方案,所述第一装置通过根据第一链路的带宽和第二链路的带宽,分配第一业务数据流在所述第一链路传输的第一数据流和在所述第二链路传输的第二数据流,实现了不同装置之间通过多条链路来传输数据,可以突破实际单条物理链路本身的性能瓶颈,而且根据不同装置之间的链路的带宽分配不同链路传输的数据流,合理的对需要传输的数据流进行分配,降低了链路数据用塞的现象。随后,所述第一装置通过所述第一链路的第一发送流,向所述第二装置发送所述第一数据流,所述第一装置通过所述第二链路的第一发送流,向所述第二装置发送所述第二数据流。这样通过支持QUIC协议的第一链路和第二链路进行所述第一装置与所述第二装置之间的所述第一业务的数据传输,大大提高了网络传输速度,提高了用户的体验度。
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例涉及的系统架构的一个可选的示意图;
图2为本申请实施例提供的一种数据传输的方法的示意性流程图;
图3为本申请实施例提供的第一装置与第二装置之间的两条QUIC链路的示意性框图;
图4为本申请实施例提供的第一装置与第二装置之间的两条QUIC链路的另一示意性框图;
图5为本申请实施例提供的一种数据传输的方法的示意性流程图;
图6为本申请实施例提供的一种建立QUIC多路径的方法的示意性流程图;
图7为本申请实施例提供的一种数据传输的方法的示意性流程图;
图8为本申请实施例提供的一种数据传输的方法的示意性流程图;
图9是本申请实施例涉及的实验场景的一个可选的示意图;
图10是本申请实施提供的QUIC单路径和QUIC多路径链路性能参数示意图;
图11是本申请实施例的装置的示意性框图;
图12是本申请实施例的装置的示意性框图;
图13为本申请实施例提供的电子设备的示意性框图。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
图1为本申请实施例涉及的系统架构100的一个可选的示意图。如图1所示,系统架构100包括客户端设备110和服务端设备120,其中,客户端设备110和服务器120之间可以通过有线或无线方式进行通信交互。
客户端设备110支持QUIC协议,客户端设备110可以是无线终端设备也可以是有线终端设备,无线终端设备可以是指一种具有无线收发功能的设备,可以是智能手机、平板
电脑(Pad)、智能音箱、智能手表、笔记本电脑、虚拟现实(Virtual Reality,VR)用户设备、增强现实(Augmented Reality,AR)用户设备、车载设备、可穿戴设备等,有线终端可以是台式计算机、服务器等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
服务端设备120同样支持QUIC协议,服务端设备120可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
QUIC协议是一种基于用户数据包协议(User Datagram Protocol,UDP)的传输协议,相比其他协议有一些明显优势,QUIC协议工作于应用层不需要内核支持。QUIC协议保证可靠性的同时降低了网络延迟,其具有更优的拥塞控制、更优的多路复用、链接迁移等优点,提升了单物理路径的性能。因此,QUIC协议在互联网领域得到广泛的应用。
QUIC数据包分为包头Header和数据Data部分,其中Header是明文传输,Header中包括标志位(Flags),连接标识(Connection ID,CID),CID可用于连接迁移,QUIC Version是QUIC的版本号,Packet Number是包序号,用于保证可靠传输;Data部分是密文传输,Data包括一些数据帧,数据帧包括多种帧类型。
图1所示的客户端设备110和服务端设备120建立网络连接,客户端设备110可以通过服务端设备120观看直播内容。在现有的直播推流、拉流、点播、内容分发网络(Content Delivery Network,CDN)等流媒体传输场景下,往往需要消耗大量的网络资源,如对网络带宽、网络传播速度等要求较高。目前,在这些流媒体传输场景下,设备之间采用QUIC协议建立网络连接,虽然在一定程度上可以降低网络延迟,但是,无法突破实际物理链路本身的性能瓶颈,在物理链路性能约束的情况下,QUIC单路径可能也无法达到更高的传输带宽,使得用户的体验感依然不佳。
随着网络技术的发展,客户端设备的网络接入方式越来越丰富,从一个终端到另一个终端会有无线网络保真技术(Wireless Fidelity,WIFI)/4G/5G等多链路可达,这为多路径的实现提供了物理基础。如何充分利用多条链路进行并行的传输提高传输带宽、利用多条链路作为链路备份提高链路的稳定性,对需要消耗大量网络资源传输的流媒体场景有重要的意义。在这些场景下,如果可以利用QUIC协议建立多条物理链路,多路径把多条能力有限的路径叠加得到一条能力更高能力的逻辑路径,这样可以大大提高传输速度、增大网络带宽,进而满足了流媒体场景下对网络资源的要求。
因此,本申请提出了一种数据传输的方法,该方法在客户端设备与服务端设备之间建立了支持QUIC协议的链路,分别为第一链路和第二链路,客户端设备可以根据第一链路的带宽和第二链路的带宽,分配第一业务数据流在所述第一链路传输的第一数据流和在所述第二链路传输的第二数据流,然后通过所述第一链路的第一发送流,向所述服务端设备发送所述第一数据流,通过所述第二链路的第一发送流,向所述服务端设备发送所述第二数据流,通过支持QUIC协议的第一链路和第二链路进行所述客户端设备与所述服务端设备之间的数据传输,大大提高了网络带宽和网络传输速度,提高了用户的体验度。
以下结合附图对本申请实施例提供的方案进行描述。
图2为本申请实施例提供的一种数据传输的方法200的示意性流程图。方法200可以由任何具有数据处理能力的电子设备执行。例如,该电子设备可实施为服务器或计算机。下面以该电子设备是第一装置为例进行说明。如图2所示,方法200可以包括步骤201至206。
下面对方法200的具体步骤进行描述。
S210,第一装置根据第一链路的带宽和第二链路的带宽,分配第一业务数据流在所述第一链路传输的第一数据流和在所述第二链路传输的第二数据流,其中,所述第一链路和所述第二链路是所述第一装置与第二装置连接的链路,所述第一链路对应的所述第一装置的物理地址与所述第二链路对应的所述第一装置的物理地址不同,所述第一链路和所述第二链路是支持快速用户数据报协议互联网连接QUIC协议的链路。
S220,所述第一装置根据所述第一链路的第一发送流,向所述第二装置发送所述第一数据流。
S230,所述第一装置根据所述第二链路的第一发送流,向所述第二装置发送所述第二数据流。
S240,所述第二装置根据第一链路的第一接收流,接收所述第一装置发送的第一数据流。
S250,所述第二装置根据第二链路的第一接收流,接收所述第一装置发送的第二数据流。
S260,所述第二装置根据所述第一数据流和所述第二数据流,确定所述第一业务数据流。
在方法200中,所述第一装置与所述第二装置之间建立了两条支持QUIC协议的第一链路和第二链路,所述第一装置通过根据第一链路的带宽和第二链路的带宽,分配第一业
务数据流在所述第一链路传输的第一数据流和在所述第二链路传输的第二数据流,实现了不同装置之间通过多条链路来传输数据,可以突破实际单条物理链路本身的性能瓶颈,而且根据不同装置之间的链路的带宽分配不同链路传输的数据流,合理的对需要传输的数据流进行分配,降低了链路数据用塞的现象。随后,所述第一装置通过所述第一链路的第一发送流,向所述第二装置发送所述第一数据流,所述第一装置通过所述第二链路的第一发送流,向所述第二装置发送所述第二数据流。这样通过支持QUIC协议的第一链路和第二链路进行所述第一装置与所述第二装置之间的所述第一业务的数据传输,大大提高了网络传输速度,提高了用户的体验度。
还应理解,建立多路径QUIC链路,还可以提高系统稳定性,如在所述第一链路出现故障时,还能继续使用所述第二链路进行所述第一装置与所述第二装置之间的数据传输。
为了更清楚的理解方法200。下面对所述第一装置与所述第二装置之间建立的两条QUIC链路进行描述。所述第一装置与所述第二装置之间建立的两条QUIC链路,分别为第一链路和第二链路,QUIC协议采用的数据流一般为单向流,因此所述第一链路包括第一发送流和第二发送流,所述第一发送流用于所述第一装置向所述第二装置发送数据,相应的,所述第二装置通过所述第一发送流接收所述第一装置发送的数据,所述第一发送流对所述第二装置而言,也可以称作第一接收流;所述第二发送流用于所述第二装置向所述第一装置发送数据,相应的,所述第一装置通过所述第二发送流接收所述第二装置发送的数据,所述第二发送流对所述第一装置而言,也可以称作第二接收流;同样,所述第二链路包括第一发送流和第二发送流,所述第一发送流用于所述第一装置向所述第二装置发送数据,相应的,所述第二装置通过所述第一发送流接收所述第一装置发送的数据,所述第一发送流对所述第二装置而言,也可以称作第一接收流;所述第二发送流用于所述第二装置向所述第一装置发送数据,相应的,所述第一装置通过所述第二发送流接收所述第二装置发送的数据,所述第二发送流对所述第一装置而言,也可以称作第二接收流,所述第一链路和所述第二链路用单向流标识(unique flow identification,UID)标记,所述第一链路标识为第一UID,所述第二链路标识为第二UID,所述第一链路的第一发送流的标识为第一连接标识(connection identification,CID),所述第一链路的第二发送流的标识为第二CID,所述第二链路的第一发送流的标识为第三CID,所述第二链路的第二发送流的标识为第四CID。
应理解,在所述第一装置与所述第二装置之间建立两条QUIC链路,至少需要所述第一装置有两条可用的物理链路,如所述第一装置分别安装两张网卡,分别为网卡1和网卡
2,网卡1的IP地址为IP1,网卡2的IP地址为IP2,所述第二装置至少有一条可用的物理链路,如所述第二装置安装一张网卡,为网卡3,网卡3的IP地址为IP3,如图3所示,图3为本申请实施例提供的第一装置与第二装置之间的两条QUIC链路的示意性框图。
可选的,所述第一链路对应的所述第二装置的物理地址与所述第二链路对应的所述第二装置的物理地址不同。
具体而言,所述第二物理装置也可以安装有两张不同的网卡,如网卡3和网卡4,网卡3的IP地址为IP3,网卡4的IP地址为IP4,所述第一链路为网卡1至网卡3的链路,所述第二链路为网卡2至网卡4的链路。如图4所示,图4为本申请实施例提供的第一装置与第二装置之间的两条QUIC链路的另一示意性框图。
可选的,当所述第一装置将所述第一业务数据流分配在所述第一链路和所述第二链路同时传输时,为了使得所述第二装置在接收到所述第一链路的所述第一数据流和所述第二链路的第二数据流时,可以确定所述第一业务数据流,即为了保证数据的有序性,所述第一装置可以在所述第一数据流和所述第二数据流分别对应的数据包中添加偏移量offset,所述偏移量指示了其所在的数据包在原始数据包即第一业务数据流的位置,所述第二装置根据所述第一数据流和所述第二数据流分别对应的数据包中的offset字段,对所述第一数据流和所述第二数据流分别对应的数据包进行排序,从而确定所述第一业务数据流。
可选的,所述第二装置还可以通过所述第一链路和所述第二链路向所述第一装置发送第二业务数据流。如图5所示,图5为本申请实施例提供的一种数据传输的方法200的示意性流程图。所述方法200还可以包括步骤207至212。
S207,所述第二装置根据第一链路的带宽和第二链路的带宽,分配第二业务数据流在所述第一链路传输的第三数据流和在所述第二链路传输的第四数据流。
S208,所述第二装置根据所述第一链路的第二发送流,向所述第二装置发送所述第三数据流。
S209,所述第二装置根据所述第二链路的第二发送流,向所述第二装置发送所述第四数据流。
S210,所述第一装置根据第一链路的第二接收流,接收所述第二装置发送的第三数据流。
S211,所述第一装置根据第二链路的第二接收流,接收所述第二装置发送的第四数据流。
S212,所述第一装置根据所述第三数据流和所述第四数据流,确定所述第二业务数据
流。
应理解,如前文所述,所述第一链路的第二发送流,和所述第二链路的第二发送流是用于所述第二装置向所述第一装置发送数据的。所述第一装置与所述第二装置之间建立了两条支持QUIC协议的第一链路和第二链路,所述第一链路包括第一发送流和第二发送流,所述第二链路也包括第一发送流和第二发送流,因此可以实现不同装置之间相互发送数据。并且,所述第二装置也可以通过根据第一链路的带宽和第二链路的带宽,分配第一业务数据流在所述第一链路传输的第一数据流和在所述第二链路传输的第二数据流,实现了不同装置之间通过多条链路来传输数据,可以突破实际单条物理链路本身的性能瓶颈,而且根据不同装置之间的链路的带宽分配不同链路传输的数据流,合理的对需要传输的数据流进行分配,提高网络传输速度,提高了用户的体验度。
以上描述了所述第一装置与所述第二装置之间如何在多条QUIC链路间发送数据的过程。下面具体描述所述第一装置与所述第二装置之间如何建立QUIC多路径。应理解,所述方法300在步骤S201之前执行。
图6为本申请实施例提供的一种建立QUIC多路径的方法300的示意性流程图。方法300可以由任何具有数据处理能力的电子设备执行。例如,该电子设备可实施为服务器或计算机。下面以该电子设备是第一装置为例进行说明。如图6所示,方法300可以包括步骤301至313。
S301,所述第一装置向所述第二装置发送建链请求消息,所述建链请求消息包括第一连接标识,所述第一连接标识是所述第一链路的第一发送流的连接标识,所述建链请求消息还包括所述第一装置具备所述QUIC协议多路径的能力和/或所述第一装置支持的所述QUIC协议多路径的个数。
相应的,所述第二装置接收所述第一装置发送的建链请求消息。
S302,所述第二装置根据所述建链请求消息,向所述第一装置发送反馈消息,所述反馈消息包括第二连接标识,所述第二连接标识为所述第一链路的第二发送流的连接标识,所述反馈消息还包括所述第二装置具备所述QUIC协议多路径的能力和/或所述第二装置支持的所述QUIC协议多路径的个数。
相应的,所述第一装置接收所述第二装置发送的反馈消息。
S303,所述第一装置向所述第二装置发送认证通过,确认建立初始QUIC链路的消息。
S304,所述第一装置根据所述反馈消息,生成所述第一链路的参数信息,所述第一链路的参数信息包括:所述第一连接标识、所述第二连接标识和所述第一链路的链路标识。
S305,所述第二装置根据所述建链请求消息,生成所述第一链路的参数信息,所述第一链路的参数信息包括:所述第一连接标识、所述第二连接标识和所述第一链路的链路标识。
应理解,所述第一链路为所述第一装置与所述第二装置之间建立的第一条QUIC链路。
应理解,在所述第一装置与所述第二装置初始建立QUIC连时,所述第一装置可以和所述第二装置交换各自是否具备所述QUIC协议多路径的能力和/或各自支持的所述QUIC协议多路径的个数。即,所述第一装置向所述第二装置发送的建链请求消息可以包括所述第一装置具备所述QUIC协议多路径的能力和/或所述第一装置支持的所述QUIC协议多路径的个数,以及所述第二装置根据所述建链请求消息向所述第一装置发送的反馈消息可以包括所述第二装置具备所述QUIC协议多路径的能力和/或所述第二装置支持的所述QUIC协议多路径的个数。
还应理解,在所述第一装置与所述第二装置初始建立QUIC连时,所述第一装置可以和所述第二装置不交换各自是否具备所述QUIC协议多路径的能力和/或各自支持的所述QUIC协议多路径的个数,即,所述第一装置与所述第二装置只建立单条链路的QUIC连接,所述建链请求消息包括第一连接标识。在当所述第一装置检测到所述当前发送流的带宽,当前发送速率不能满足所述第一业务的要求时,所述第一装置向所述第二装置发送第一消息,所述第一消息包括所述第一装置具备所述QUIC协议多路径的能力和/或所述第一装置支持的所述QUIC协议多路径的个数,所述第二装置接收到所述第一消息,向所述第一装置发送第二消息,所述第二消息包括所述第二装置具备所述QUIC协议多路径的能力和/或所述第二装置支持的所述QUIC协议多路径的个数。然后,所述第一装置和所述第二装置协商QUIC多路径。
可选的,所述建链请求消息可以是客户问候(client hello)报文,所述client hello报文包括第一公开数,所述第一公开数用于所述第二装置信生成通密钥,所述第二装置根据随机生成的私钥和所述第一公开数生成所述通信密钥。
可选的,所述反馈消息可以是拒绝(reject)报文,所述reject报文包括第二公开数,所述第二公开数是所述第二装置配置参数,所述第二公开数用于所述第一装置信生成通信密钥,所述第一装置根据随机生成的私钥和所述第二公开数生成所述通信密钥。
具体而言,所述client hello报文和所述reject报文是所述第一装置与所述第二装置建立初始的QUIC连接时相互发送的报文,主要用于通信双方的验证。
一般而言,QUIC连接仅需要1次往返时延(Round-Trip Time,RTT)就可以完成通
信密钥的协商。当然,在所述第一装置缓存了所述第二装置的配置参数,如上述第二参数的情况下,所述第一装置可以向所述第二装置发送所述client hello报文,所述第一装置基于所述第二装置的配置参数,计算通信密钥,加密向所述第二装置发送应用数据,所述第二装置根据所述client hello报文计算通信密钥,也就是说,所述第一装置不需要经过握手就可以发送应用数据,这就是0-RTT握手。有关QUIC连接通过1次RTT协商通信密钥的过程以及QUIC连接0次RTT的过程可以参考现有的QUIC连接流程,此处不再赘述。
应理解的是,所述第一装置可以在与所述第二装置建立QUIC连接时,就携带所述第一装置具备所述QUIC协议多路径的能力和/或所述第一装置支持的所述QUIC协议多路径的个数,如上述的client hello报文包括所述第一装置具备所述QUIC协议多路径的能力和/或所述第一装置支持的所述QUIC协议多路径的个数,所述第二装置接收到所述client hello报文,所述第二装置向所述第一装置发送的所述reject报文包括所述第二装置具备所述QUIC协议多路径的能力和/或所述第二装置支持的所述QUIC协议多路径的个数;或者,在所述第一装置与所述第二装置已经建立所述第一链路时,在所述第一装置检测到所述当前发送流的带宽或者当前发送速率不能满足所述第一业务的要求时,所述第一装置可以向所述第二装置协商建立所述第二链路,所述第一装置向所述第二装置发送第一消息,所述第一消息包括所述第一装置具备所述QUIC协议多路径的能力和/或所述第一装置支持的所述QUIC协议多路径的个数,所述第二装置接收到所述第一消息,向所述第一装置发送第二消息,所述第二消息包括所述第二装置具备所述QUIC协议多路径的能力和/或所述第二装置支持的所述QUIC协议多路径的个数。然后,所述第一装置与所述第二装置建立所述第二链路。
通过所述第一装置向所述第二装置发送所述第一装置具备所述QUIC协议多路径的能力和/或所述第一装置支持的所述QUIC协议多路径的个数,所述第二装置向所述第一装置发送所述第二装置具备所述QUIC协议多路径的能力和/或所述第二装置支持的所述QUIC协议多路径的个数,所述第一装置与所述第二装置获得了对端支持的多路径的能力,但所述第二链路并没有开启,因此还需要进行下述步骤:
S306,所述第一装置通过所述第二链路,向所述第二装置发送第一检测消息,所述第一检测消息包括第一路径检测帧,所述第一路径检测帧包括所述第三连接标识。
相应的,所述第二装置通过所述第二链路,接收所述第一装置发送的所述第一检测消息。
S307,所述第二装置生成所述第二链路的第一发送流的参数信息,所述第二链路的第
一发送流的参数信息包括:第三连接标识和所述第二链路的链路标识,所述第二链路的链路标识为第二链路标识。
S308,所述第二装置通过所述第二链路,向所述第一装置发送第一响应消息,所述第一响应消息包括第一路径响应帧。
相应的,所述第一装置通过所述第二链路,接收所述第二装置发送的第一响应消息,所述第一响应消息包括第一路径响应帧。
S309,所述第一装置根据所述第一响应消息,生成所述第二链路的第一发送流的参数信息,所述第二链路的发送流的参数信息包括:第三连接标识和所述第二链路的链路标识。
具体而言,所述第一装置创建所述第二链路上的第一发送流。所述第一装置在所述第二链路上发送第一路径检测帧,如PATH_CHALLENGE帧;所述第二装置接收到PATH_CHALLENGE帧后,检查是否开启多路径,如所述第二装置开启了多路径,所述第二装置创建第二链路和所述第二链路的第一接收流,所述第二装置生成所述第二链路的第一接收流的参数信息,所述第二链路的第一接收流的参数信息包括:第三连接标识和所述第二链路的链路标识,所述第三连接标识为所述第二链路的第一发送流的连接标识,所述第二链路的链路标识为第二链路标识。所述第二装置向所述第一装置发送所述第一响应消息,如PATH_RESPONSE帧,所述第一装置接收到所述第一响应消息后,生成所述第二链路的第一发送流的参数信息。
可选的,所述第二链路标识与所述第一链路标识可以是连续递增的排列顺序。如所述第一链路标识为1,所述第二链路标识为2。
此时,所述第一装置可以在所述第二链路的第一发送流上向所述第二装置发送数据,但是反向的数据发送通道还没建立,即所述第二装置还无法向所述第一装置发送数据,需要还需要下述步骤:
S310,所述第二装置通过所述第二链路,向所述第一装置发送第二检测消息,所述第一检测消息包括第二路径检测帧。
相应的,所述第一装置通过所述第二链路,接收所述第二装置发送的所述第二检测消息。
S311,所述第一装置生成所述第二链路的第二发送流的参数信息,所述第二链路的第二发送流的参数信息包括:第四连接标识和所述第二链路的链路标识,所述第四连接标识为所述第二链路的第二发送流的连接标识,所述第二链路的链路标识为第二链路标识。
S312,所述第一装置通过所述第二链路,向所述第二装置发送第二响应消息,所述第
二响应消息包括第二路径响应帧。
相应的,所述第二装置通过所述第二链路,接收所述第一装置发送的第二响应消息。
S313,所述第二装置根据所述第二响应消息,生成所述第二链路的第二发送流的参数信息,所述第二链路的发送流的参数信息包括:第四连接标识和所述第二链路的链路标识,所述第四连接标识为所述第二链路的发送流的连接标识,所述第二链路的链路标识为第二链路标识。
具体而言,所述第二装置创建所述第二链路上的第二发送流。所述第二装置在所述第二链路上发送第二路径检测帧,如PATH_CHALLENGE帧;所述第一装置接收到PATH_CHALLENGE帧后,检查是否开启多路径,如所述第一装置开启了多路径,所述第一装置创建所述第二链路和所述第二链路的第二接收流,所述第二装置生成所述第二链路的第二接收流的参数信息,所述第二链路的第二接收流的参数信息包括:第四连接标识和所述第二链路的链路标识,所述第四连接标识为所述第二链路的发送流的连接标识,所述第二链路的链路标识为第二链路标识。所述第一装置向所述第二装置发送所述第二响应消息,如PATH_RESPONSE帧,所述第二装置接收到所述第一响应消息后,生成所述第二链路的第二发送流的参数信息,第二发送流的参数信息。
应理解,所述第二链路是所述第一装置与所述第二装置之间除了所述第一链路以外的其他QUIC链路,所述第二链路可以包括一条链路,也可以包括多条链路,如果所述第二链路包括多条链路,那么所述多条链路的链路标识可以采用按序递增的顺序,如所述第一链路的链路标识为1,则第一条所述第二链路的链路标识为2,所述第二条所述第二链路的链路标识为3等。
经过上述过程,所述第一装置与所述第二装置之间建立了多条QUIC路径,它们之间可以通过多条QUIC路径来收发数据流,突破了实际单条物理链路本身的性能瓶颈,提高了网络传输速度,提高了用户的体验度。
一个完整的多路径系统还包含路径状态管理、路径能力评估、数据流发包决策等功能模块。路径状态管理可以包含:检查路径是否活跃和剔除失效路径,下面分别描述检查路径是否活跃和剔除失效路径。
可选的,如图7所示,图7为本申请实施例提供的一种数据传输的方法200的示意性流程图。所述方法200还可以包括步骤213至216。
S213,所述第一装置确定所述第一链路的第一发送流和/或所述第二链路的第一发送流是否有效。
S214,当所述第一装置确定所述第一链路的第一发送流无效时,所述第一装置通过所述第二链路的第一发送流向所述第二装置发送路径剔除消息,所述路径剔除消息包括所述第一连接标识。
S215,所述第二装置通过所述第二链路的第一接收流接收所述第一装置发送的所述路径剔除消息。
S216,所述第二装置根据所述路径剔除消息,删除所述第一连接标识标记的所述第一链路的第一发送流。
上述步骤S213-S216中,所述第一装置在确定所述第一链路的第一发送流无效时,通过所述第二链路的第二发送流向所述第二装置发送路径剔除消息,所述第二装置根据所述路径剔除消息,删除所述第一连接标识标记的所述第一链路的第一发送流,实现了对多链路的路径状态的管理,通过及时删除连接标识可以避免所述第二装置对所述第一发送流的状态的误判,并且还可以节省部分内存。
可选的,如图8所示,图8为本申请实施例提供的一种数据传输的方法200的示意性流程图。所述方法200还可以包括步骤217至220。
S217,所述第一装置确定所述第一链路的第一发送流和/或所述第二链路的第一发送流是否有效。
S218,当所述第一装置确定所述第二链路的第一发送流无效时,所述第一装置通过所述第一链路的第一发送流向所述第二装置发送路径剔除消息,所述路径剔除消息包括所述第三连接标识。
S219,所述第二装置通过所述第一链路的第一接收流接收所述第一装置发送的所述路径剔除消息。
S220,所述第二装置根据所述路径剔除消息,删除所述第三连接标识标记的所述第二链路的第一发送流。
上述步骤S217-S220中,所述第一装置在确定所述第一链路的第二发送流无效时,通过所述第二链路的第一发送流向所述第二装置发送路径剔除消息,所述第二装置根据所述路径剔除消息,删除所述第一连接标识标记的所述第一链路的第二发送流,实现了对多链路的路径状态的管理,通过及时删除连接标识可以避免所述第二装置对所述第二发送流的状态的误判,并且还可以节省部分内存。
可选的,所述第一装置确定所述第一链路是否有效,包括:
所述第一装置通过所述第一链路的第一发送流向所述第二装置发送路径状态检测消
息;
当所述第一装置通过所述第一链路的第二接收流,接收到所述第二装置发送的路径状态响应消息时,确定所述第一链路的第一发送流有效;
所述第一装置通过所述第一链路的第二接收流,没有接收到所述第二装置发送的路径状态响应消息时,确定所述第一链路的第一发送流无效。
可选的,所述路径状态检测消息可以是数据包,所述路径状态响应消息可以是确认(Acknowledgment,ACK)帧。
可选的,所述路径状态检测消息可以是因特网包探索器(Packet Internet Groper,PING)帧,所述路径状态响应消息可以是PONG帧。
可选的,所述第一装置在检测所述第一链路是否有效时,可以基于ACK和PING帧双重检查路径的活跃状态。
具体而言,当所述第一链路的第一发送流上预设时间内有数据发送,并接收到所述第二装置发送的ACK帧时,则认为所述第一链路是活跃的;否则,在所述第一链路的第一发送流上发送PING帧,如果所述第二装置能在预设时间内时响应PONG帧,则认为所述第一链路是活跃的,否则继续在所述第一链路的第一发送流上发送PING帧(间隔发送时间1/2/4/8)最多发送5个PING帧,如果所述第二装置能在预设时间内都没有响应,则所述第一链路无效。当路径失效后,触发路径剔除,通过所述第二链路的第一发送流发送PATH_ABANBON帧,携带需要剔除的第一链路标识,通知所述第二装置剔除所述第一路径。
应理解,所述第一链路的第二发送流和所述第二链路的第二发送流由所述第二装置检测是否有效,具体检测过程可以参考上述所述第一装置检测所述第一链路的第一发送流和所述第二链路的第一发送流的过程,此处不再赘述。
下面描述路径能力评估。路径能力评估包含几个部分:路径带宽评估、路径拥塞处理等。QUIC协议本身支持瓶颈带宽和往返时延(Bottleneck Bandwidth and RTT,BBR)、CBUIC(CBUIC算法是二进制增加阻塞传输控制协议(Binary Increase Congestion-Transmission Control Protocol,BIC-TCP)的改进版本)等拥塞算法,所述第一装置与所述第二装置可以根据拥塞算法提取的RTT和单位时间的发送的数据量,实时估计每条路径的带宽,所述第一装置与所述第二装置根据拥塞算法提取RTT和单位时间的发送的数据量,可以参考现有技术,本申请不再叙述。
可选的,所述第一装置根据第一链路的带宽和第二链路的带宽,分配第一业务数据流
在所述第一链路传输的第一数据流和在所述第二链路传输的第二数据流,包括:
根据所述第一链路的带宽和所述第二链路的带宽,调整所述第一业务数据流的发送窗口,所述发送窗口包括第一子窗口和第二子窗口,所述第一子窗口对应所述第一链路的发送流,所述第二子窗口对应所述第二链路的发送流;
根据所述第一子窗口,通过所述第一链路传输所述第一数据流;
根据所述第二子窗口,通过所述第二链路传输所述第二数据流。
具体而言,所述第一链路和所述第二链路这两条不同的物理链路可以看成一条逻辑链路,所述逻辑链路用于传输所述第一业务数据流。所述逻辑链路对应一个发送窗口,所述发送窗口包括第一子窗口和第二子窗口,所述第一子窗口对应所述第一链路的发送流,所述第二子窗口对应所述第二链路的发送流。根据所述第一链路的带宽和所述第二链路的带宽,动态调整所述第一子窗口和所述第二子窗口,达到动态调整各路径的发送能力。
可选的,在所述第一子窗口与所述第二子窗口的初始窗口大小相同。
具体而言,在所述第一装置通过所述第一链路与所述第二链路初始传输所述第一业务数据流时建立多路径之初,所述第一链路把所述发送窗口均分给所述第一链路与所述第二链路,确保每条路径都有机会发送流数据。
可选的,所述第一装置根据当前拥塞算法里面提取的RTT和单位时间的发送的数据量,估计所述第一链路与所述第二链路的带宽,然后根据估计出的带宽比例,动态调整所述第一子窗口与所述第二子窗口。
上述方法实现了应用QUIC协议建立设备之间的多条QUIC物理链路来传输数据,有效解决了因为单条QUIC物理链路的性能瓶颈而引起带宽较低、帧率降低的问题,提高了用户体验度。为了更直观的展示该效果,下面通过一组实验进行说明。
图9是本申请实施例涉及的实验场景的一个可选的示意图。如图9所示,系统架构400包括服务器410、服务器420、服务器430、服务器440和用户设备450,其中,服务器410上有两张网卡,网卡0和网卡1,通过限速工具来限制物理链路的带宽能力,设置网卡0的带宽为2.4Mbps,网卡1网卡的带宽为1.6Mbps,服务器420有一张网卡,网卡2。
本次实验需要对比QUIC单路径和QUIC多路径的性能,RTMP OVER QUIC单路径通过所述服务器410的网卡0到所述服务器420之间的物理链路推流。所述服务器410与所述服务器420之间的QUIC多路径,为第一链路和第二链路,分别是通过所述服务器410的网卡0到所述服务器420的网卡2之间的物理链路和通过所述服务器410的网卡1到所述服务器420的网卡2之间的物理链路,所述服务器410通过实时消息传输协议(Real Time
Messaging Protocol,rtmp)over quic工具推流,将本地的流数据通过所述第一链路和所述第二链路传输至所述服务器420,所述服务器420将流数据传输到所述服务器430,所述服务器430可以是第三方机房,用于给用户设备提供应用数据,所述服务器430将接收到的流数据发送给所述服务器440,所述服务器440可以是用户接入的服务网络,用户设备450从所述服务器440处拉流播放。
在实验过程中,所述服务器410使用RTMP OVER QUIC单路径、RTMP OVER QUIC多路径工具分别推码率为3Mbps、帧率为30帧的码流,然后在直播系统的统计平台、用户侧播放推流的效果,进行对比实验。
经过对比实验表明:使用RTMP OVER QUIC单路径方式推流30帧、3Mbps的码流,在直播平台统计的平均帧率为25帧左右,观测侧的画面也由偶尔卡顿。使用RTMP OVER QUIC多路径方式推流30帧、3Mbps的码流,在直播平台统计的平均帧率为30帧左右,观众侧的画面更加流畅。对比数据如图10所示,图10是本申请实施提供的QUIC单路径和QUIC多路径链路性能参数示意图。在图10中,实线为QUIC单路径,虚线为QUIC多路径,由图10所提供的数据,可以看到QUIC多路径能突破单条物理链路的能力限制,通过叠加多条物理链路的能力,实现更佳的效果。
以上结合附图详细描述了本申请的具体实施方式,但是,本申请并不限于上述实施方式中的具体细节,在本申请的技术构思范围内,可以对本申请的技术方案进行多种简单变型,这些简单变型均属于本申请的保护范围。例如,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本申请对各种可能的组合方式不再另行说明。又例如,本申请的各种不同的实施方式之间也可以进行任意组合,只要其不违背本申请的思想,其同样应当视为本申请所公开的内容。
还应理解,在本申请的各种方法实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。应理解这些序号在适当情况下可以互换,以便描述的本申请的实施例能够以除了在图示或描述的那些以外的顺序实施。
上文结合图1至图10,详细描述了本申请的方法实施例,下文结合图11至图13,详细描述本申请的装置实施例。
图11是本申请实施例的装置500的示意性框图,该装置500可以实现上述方法中第一装置的功能。如图11所示,装置500可包括处理单元510和收发单元520。
处理单元510,用于根据第一链路的带宽和第二链路的带宽,分配第一业务数据流在所述第一链路传输的第一数据流和在所述第二链路传输的第二数据流,
其中,所述第一链路和所述第二链路是所述第一装置与第二装置连接的链路,所述第一链路对应的所述第一装置的物理地址与所述第二链路对应的所述第一装置的物理地址不同,所述第一链路和所述第二链路是支持快速用户数据报协议互联网连接QUIC协议的链路。
收发单元520,用于根据所述第一链路的发送流,向所述第二装置发送所述第一数据流;
所述收发单元520还用于根据所述第二链路的发送流,向所述第二装置发送所述第二数据流。
在一些实施例中,在所述根据第一链路的带宽和第二链路的带宽,分配第一业务数据流在所述第一链路传输的第一数据流和在所述第二链路传输的第二数据流之前,所述收发单元520还用于:
向所述第二装置发送建链请求消息,所述建链请求消息包括第一连接标识,所述第一连接标识是所述第一链路的发送流的连接标识,所述建链请求消息还包括所述第一装置具备所述QUIC协议多路径的能力和/或所述第一装置支持的所述QUIC协议多路径的个数;
接收所述第二装置发送的反馈消息,所述反馈消息包括第二连接标识,所述第二连接标识为所述第一链路的第二发送流的连接标识,所述反馈消息还包括所述第二装置具备所述QUIC协议多路径的能力和/或所述第二装置支持的所述QUIC协议多路径的个数;
所述处理单元510还用于:
根据所述反馈消息,生成所述第一链路的参数信息,所述第一链路的参数信息包括:所述第一连接标识、所述第二连接标识和所述第一链路的链路标识,所述第一链路的链路标识为第一链路标识。
在一些实施例中,所述收发单元520还用于:
通过所述第二链路,向所述第二装置发送第一检测消息,所述第一检测消息包括第一路径检测帧;
通过所述第二链路,接收所述第二装置发送的第一响应消息,所述第一响应消息包括第一路径响应帧;
所述处理单元510还用于:
根据所述第一响应消息,生成所述第二链路的发送流的参数信息,所述第二链路的发
送流的参数信息包括:第三连接标识和所述第二链路的链路标识,所述第三连接标识为所述第二链路的发送流的连接标识,所述第二链路的链路标识为第二链路标识。
在一些实施例中,所述收发单元520还用于:
通过所述第二链路,接收所述第二装置发送的第二检测消息,所述第二检测消息包括第二路径检测帧;
通过所述第二链路,向所述第二装置发送第二响应消息,所述第二响应消息包括第二路径响应帧。
在一些实施例中,所述收发单元520还用于:
当确定所述第一链路的第一发送流无效时,通过所述第二链路的第一发送流向所述第二装置发送路径剔除消息,所述路径剔除消息包括所述第一连接标识;或者,
当所述第二链路的第一发送流无效时,通过所述第一链路的第一发送流向所述第二装置发送路径剔除消息,所述路径剔除消息包括所述第三连接标识。
在一些实施例中,所述处理单元510具体用于:
根据所述第一链路的带宽和所述第二链路的带宽,调整所述第一业务数据流的发送窗口,所述发送窗口包括第一子窗口和第二子窗口,所述第一子窗口对应所述第一链路的发送流,所述第二子窗口对应所述第二链路的发送流;
所述收发单元520还用于:
根据所述第一子窗口,通过所述第一链路传输所述第一数据流;
根据所述第二子窗口,通过所述第二链路传输所述第二数据流。
在一些实施例中,所述收发单元520还用于:
根据所述第一链路的接收流,接收第二装置发送的第三数据流;
根据所述第二链路的接收流,接收所述第二装置发送的第四数据流;
所述处理单元510还用于:
根据所述第三数据流和所述第四数据流,确定第二业务数据流。
在一些实施例中,所述第一链路对应的所述第二装置的物理地址与所述第二链路对应的所述第二装置的物理地址不同。
应理解,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,当在该实施例中装置500可以对应于执行本申请实施例的方法200或方法300的执行主体时,装置500中的各个模块的前述和其它操作和/或功能分别为了实现上述方法200和方法300中第一装置的相应流程,为了简洁,在此不
再赘述。
图12是本申请实施例的装置600的示意性框图,该装置600可以实现上述方法中第二装置的功能。如图12所示,装置600可包括收发单元610和处理单元620。
所述收发单元610,用于根据第一链路的接收流,接收第一装置发送的第一数据流;
所述收发单元610,还用于根据第二链路的接收流,接收所述第一装置发送的第二数据流,
其中,所述第一链路和所述第二链路是所述第一装置与所述第二装置连接的链路,所述第一链路对应的所述第一装置的物理地址与所述第二链路对应的所述第一装置的物理地址不同,所述第一链路和所述第二链路是支持快速用户数据报协议互联网连接QUIC协议的链路;
所述处理单元620,用于根据所述第一数据流和所述第二数据流,确定第一业务数据流。
在一些实施例中,在所述根据第一链路的第一接收流,接收第一装置发送的第一数据流之前,所述收发单元610还用于:
接收所述第一装置发送的建链请求消息,所述建链请求消息包括第一连接标识,所述第一连接标识是所述第一链路的发送流的连接标识,所述建链请求消息还包括所述第一装置具备所述QUIC协议多路径的能力和/或所述第一装置支持的所述QUIC协议多路径的个数;
根据所述建链请求消息,向所述第一装置发送反馈消息,所述反馈消息包括第二连接标识,所述第二连接标识为所述第一链路的接收流的连接标识,所述反馈消息还包括所述第二装置具备所述QUIC协议多路径的能力和/或所述第二装置支持的所述QUIC协议多路径的个数;
所述处理单元620还用于:
生成所述第一链路的参数信息,所述第一链路的参数信息包括:所述第一连接标识、所述第二连接标识和所述第一链路的链路标识,所述第一链路的链路标识为第一链路标识。
在一些实施例中,所述收发单元610还用于:通过所述第二链路,接收所述第一装置发送的第一检测消息,所述第一检测消息包括第一路径检测帧;
通过所述第二链路,向所述第一装置发送第一响应消息,所述第一响应消息包括第一路径响应帧。
在一些实施例中,所述收发单元610还用于:
通过所述第二链路,向所述第一装置发送第二检测消息,所述第一检测消息包括第二路径检测帧;
通过所述第二链路,接收所述第一装置发送的第二响应消息,所述第二响应消息包括第二路径响应帧;
所述处理单元620还用于:
根据所述第二响应消息,生成所述第二链路的发送流的参数信息,所述第二链路的发送流的参数信息包括:第四连接标识和所述第二链路的链路标识,所述第四连接标识为所述第二链路的发送流的连接标识,所述第二链路的链路标识为第二链路标识。
在一些实施例中,所述收发单元610还用于:
当所述第一链路的发送流无效时,通过所述第二链路的发送流向所述第一装置发送路径剔除消息,所述路径剔除消息包括所述第一链路标识;或者,
当所述第二链路的发送流无效时,通过所述第一链路的发送流向所述第一装置发送路径剔除消息,所述路径剔除消息包括所述第二链路标识。
在一些实施例中,所述处理单元620还用于:
根据第一链路的带宽和第二链路的带宽,分配第二业务数据流在所述第一链路传输的第三数据流和在所述第二链路传输的第四数据流;
所述收发单元610还用于:
根据所述第一链路的发送流,向所述第一装置发送所述第三数据流;
根据所述第二链路的发送流,向所述第一装置发送所述第四数据流。
在一些实施例中,所述第一链路对应的所述第二装置的物理地址与所述第二链路对应的所述第二装置的物理地址不同。
应理解,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,当在该实施例中装置600可以对应于执行本申请实施例的方法200或方法300的执行主体时,装置600中的各个模块的前述和其它操作和/或功能分别为了上述方法200和方法300中的第二装置的相应流程,为了简洁,在此不再赘述。
上文中结合附图从功能模块的角度描述了本申请实施例的装置和系统。应理解,该功能模块可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过硬件和软件模块组合实现。具体地,本申请实施例中的方法实施例的各步骤可以通过处理器中的硬件
的集成逻辑电路和/或软件形式的指令完成,结合本申请实施例公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。可选地,软件模块可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例中的步骤。
如图13是本申请实施例提供的电子设备700的示意性框图。
如图13所示,该电子设备700可包括:
存储器710和处理器720,该存储器710用于存储计算机程序,并将该程序代码传输给该处理器720。换言之,该处理器720可以从存储器710中调用并运行计算机程序,以实现本申请实施例中的方法。
例如,该处理器720可用于根据该计算机程序中的指令执行上述方法200和方法300中各执行主体的步骤。
在本申请的一些实施例中,该处理器720可以包括但不限于:
通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。
在本申请的一些实施例中,该存储器710包括但不限于:
易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
在本申请的一些实施例中,该计算机程序可以被分割成一个或多个模块,该一个或者
多个模块被存储在该存储器710中,并由该处理器720执行,以完成本申请提供的方法。该一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述该计算机程序在该电子设备700中的执行过程。
可选的,该电子设备700还可包括:
通信接口730,该通信接口730可连接至该处理器720或存储器710。
其中,处理器720可以控制该通信接口730与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。示例性的,通信接口730可以包括发射机和接收机。通信接口730还可以进一步包括天线,天线的数量可以为一个或多个。
应当理解,该电子设备700中的各个组件通过总线系统相连,其中,总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。
根据本申请的一个方面,提供了一种通信装置,包括处理器和存储器,该存储器用于存储计算机程序,该处理器用于调用并运行所述存储器中存储的计算机程序,使得所述编码器执行上述方法实施例的方法。
根据本申请的一个方面,提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得该计算机能够执行上述方法实施例的方法。或者说,本申请实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的方法。
根据本申请的另一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方法实施例的方法。
换言之,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计
算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
应理解,在本申请实施例中,“与A对应的B”表示B与A相关联。在一种实现方式中,可以根据A确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
在本申请的描述中,除非另有说明,“至少一个”是指一个或多个,“多个”是指两个或多于两个。另外,“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
还应理解,本申请实施例中出现的第一、第二等描述,仅作示意与区分描述对象之用,没有次序之分,也不表示本申请实施例中对设备个数的特别限定,不能构成对本申请实施例的任何限制。
还应理解,说明书中与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
可以理解的是,在本申请的具体实施方式中,可能涉及到用户信息等相关的数据。当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可
以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。例如,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以该权利要求的保护范围为准。
Claims (28)
- 一种数据传输的方法,所述方法应用于第一装置,其特征在于,包括:根据第一链路的带宽和第二链路的带宽,分配第一业务数据流在所述第一链路传输的第一数据流和在所述第二链路传输的第二数据流,其中,所述第一链路和所述第二链路是在所述第一装置与第二装置之间连接的链路,所述第一链路对应的所述第一装置的物理地址与所述第二链路对应的所述第一装置的物理地址不同,所述第一链路和所述第二链路是用于快速用户数据报协议互联网连接QUIC协议的链路;根据所述第一链路的第一发送流,向所述第二装置发送所述第一数据流;根据所述第二链路的第一发送流,向所述第二装置发送所述第二数据流。
- 根据权利要求1所述的方法,其特征在于,在所述根据第一链路的带宽和第二链路的带宽,分配第一业务数据流在所述第一链路传输的第一数据流和在所述第二链路传输的第二数据流之前,所述方法还包括:向所述第二装置发送建链请求消息,所述建链请求消息包括第一连接标识,所述第一连接标识是所述第一链路的第一发送流的连接标识,所述建链请求消息还包括所述第一装置具备所述QUIC协议多路径的能力和/或所述第一装置支持的所述QUIC协议多路径的个数;接收所述第二装置发送的反馈消息,所述反馈消息包括第二连接标识,所述第二连接标识为所述第一链路的第二发送流的连接标识,所述反馈消息还包括所述第二装置具备所述QUIC协议多路径的能力和/或所述第二装置支持的所述QUIC协议多路径的个数;根据所述反馈消息,生成所述第一链路的参数信息,所述第一链路的参数信息包括:所述第一连接标识、所述第二连接标识和所述第一链路的链路标识,所述第一链路的链路标识为第一链路标识。
- 根据权利要求2所述的方法,其特征在于,所述方法还包括:通过所述第二链路,向所述第二装置发送第一检测消息,所述第一检测消息包括第一路径检测帧;通过所述第二链路,接收所述第二装置发送的第一响应消息,所述第一响应消息包括第一路径响应帧;根据所述第一响应消息,生成所述第二链路的第一发送流的参数信息,所述第二链路的第一发送流的参数信息包括:第三连接标识和所述第二链路的链路标识,所述第三连接 标识为所述第二链路的第一发送流的连接标识,所述第二链路的链路标识为第二链路标识。
- 根据权利要求2或3所述的方法,其特征在于,所述方法还包括:通过所述第二链路,接收所述第二装置发送的第二检测消息,所述第二检测消息包括第二路径检测帧;通过所述第二链路,向所述第二装置发送第二响应消息,所述第二响应消息包括第二路径响应帧。
- 根据权利要求3或4所述的方法,其特征在于,所述方法还包括:当所述第一链路的第一发送流无效时,通过所述第二链路的第一发送流向所述第二装置发送路径剔除消息,所述路径剔除消息包括所述第一连接标识;或者,当所述第二链路的第一发送流无效时,通过所述第一链路的第一发送流向所述第二装置发送路径剔除消息,所述路径剔除消息包括第三连接标识,所述第三连接标识为所述第二链路的第一发送流的连接标识。
- 根据权利要求1至5中任一项所述的方法,其特征在于,所述根据第一链路的带宽和第二链路的带宽,分配第一业务数据流在所述第一链路传输的第一数据流和在所述第二链路传输的第二数据流,包括:根据所述第一链路的带宽和所述第二链路的带宽,调整所述第一业务数据流的发送窗口,所述发送窗口包括第一子窗口和第二子窗口,所述第一子窗口对应所述第一链路的发送流,所述第二子窗口对应所述第二链路的发送流;根据所述第一子窗口,通过所述第一链路的第一发送流传输所述第一数据流;根据所述第二子窗口,通过所述第二链路的第一发送流传输所述第二数据流。
- 根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:根据所述第一链路的第一接收流,接收所述第二装置发送的第三数据流;根据所述第二链路的第一接收流,接收所述第二装置发送的第四数据流;根据所述第三数据流和所述第四数据流,确定第二业务数据流。
- 根据权利要求1至7中任一项所述的方法,其特征在于,所述第一链路对应的所述第二装置的物理地址与所述第二链路对应的所述第二装置的物理地址不同。
- 一种数据传输的方法,所述方法应用于第二装置,其特征在于,包括:根据第一链路的第一接收流,接收第一装置发送的第一数据流;根据第二链路的第一接收流,接收所述第一装置发送的第二数据流,其中,所述第一链路和所述第二链路是所述第一装置与所述第二装置连接的链路,所述第一链路对应的所述第一装置的物理地址与所述第二链路对应的所述第一装置的物理地址不同,所述第一链路和所述第二链路是支持快速用户数据报协议互联网连接QUIC协议的链路;根据所述第一数据流和所述第二数据流,确定第一业务数据流。
- 根据权利要求9所述的方法,其特征在于,在所述根据第一链路的第一接收流,接收第一装置发送的第一数据流之前,所述方法还包括:接收所述第一装置发送的建链请求消息,所述建链请求消息包括第一连接标识,所述第一连接标识是所述第一链路的发送流的连接标识,所述建链请求消息还包括所述第一装置具备所述QUIC协议多路径的能力和/或所述第一装置支持的所述QUIC协议多路径的个数;根据所述建链请求消息,向所述第一装置发送反馈消息,所述反馈消息包括第二连接标识,所述第二连接标识为所述第一链路的接收流的连接标识,所述反馈消息还包括所述第二装置具备所述QUIC协议多路径的能力和/或所述第二装置支持的所述QUIC协议多路径的个数;生成所述第一链路的参数信息,所述第一链路的参数信息包括:所述第一连接标识、所述第二连接标识和所述第一链路的链路标识,所述第一链路的链路标识为第一链路标识。
- 根据权利要求10所述的方法,其特征在于,所述方法还包括:通过所述第二链路,接收所述第一装置发送的第一检测消息,所述第一检测消息包括第一路径检测帧;通过所述第二链路,向所述第一装置发送第一响应消息,所述第一响应消息包括第一路径响应帧。
- 根据权利要求10或11所述的方法,其特征在于,所述方法还包括:通过所述第二链路,向所述第一装置发送第二检测消息,所述第二检测消息包括第二路径检测帧;通过所述第二链路,接收所述第一装置发送的第二响应消息,所述第二响应消息包括第二路径响应帧;根据所述第二响应消息,生成所述第二链路的第一发送流的参数信息,所述第二链路的第一发送流的参数信息包括:第四连接标识和所述第二链路的链路标识,所述第四连接 标识为所述第二链路的发送流的连接标识,所述第二链路的链路标识为第二链路标识。
- 根据权利要求11或12所述的方法,其特征在于,所述方法还包括:通过所述第二链路的第一接收流接收所述第一装置发送的路径剔除消息,所述路径剔除消息包括所述第一连接标识;或者,通过所述第一链路的第一接收流接收所述第一装置发送的路径剔除消息,所述路径剔除消息包括第三连接标识;根据所述路径剔除消息,删除所述第一链路的第一发送流或者所述第二链路的第一发送流。
- 根据权利要求9至13中任一项所述的方法,其特征在于,所述方法还包括:根据第一链路的带宽和第二链路的带宽,分配第二业务数据流在所述第一链路传输的第三数据流和在所述第二链路传输的第四数据流;根据所述第一链路的发送流,向所述第一装置发送所述第三数据流;根据所述第二链路的发送流,向所述第一装置发送所述第四数据流。
- 根据权利要求9至14中任一项所述的方法,其特征在于,所述第一链路对应的所述第二装置的物理地址与所述第二链路对应的所述第二装置的物理地址不同。
- 一种建立快速用户数据报协议互联网连接QUIC多路径的方法,所述方法应用于第一装置,其特征在于,包括:向第二装置发送建链请求消息,所述建链请求消息包括第一连接标识,所述第一连接标识是第一链路的第一发送流的连接标识,所述建链请求消息还包括所述第一装置具备所述QUIC协议多路径的能力和/或所述第一装置支持的所述QUIC协议多路径的个数;接收所述第二装置发送的反馈消息,所述反馈消息包括第二连接标识,所述第二连接标识为所述第一链路的第二发送流的连接标识,所述反馈消息还包括所述第二装置具备所述QUIC协议多路径的能力和/或所述第二装置支持的所述QUIC协议多路径的个数;根据所述反馈消息,生成所述第一链路的参数信息,所述第一链路的参数信息包括:所述第一连接标识、所述第二连接标识和所述第一链路的链路标识,所述第一链路的链路标识为第一链路标识。
- 根据权利要求16所述的方法,其特征在于,所述方法还包括:通过第二链路,向所述第二装置发送第一检测消息,所述第一检测消息包括第一路径检测帧;通过所述第二链路,接收所述第二装置发送的第一响应消息,所述第一响应消息包括 第一路径响应帧;根据所述第一响应消息,生成所述第二链路的发送流的参数信息,所述第二链路的发送流的参数信息包括:第三连接标识和所述第二链路的链路标识,所述第三连接标识为所述第二链路的第一发送流的连接标识,所述第二链路的链路标识为第二链路标识。
- 根据权利要求16或17所述的方法,其特征在于,所述方法还包括:通过第二链路,接收所述第二装置发送的第二检测消息,所述第二检测消息包括第二路径检测帧;通过所述第二链路,向所述第二装置发送第二响应消息,所述第二响应消息包括第二路径响应帧。
- 根据权利要求18所述的方法,其特征在于,所述方法还包括:根据所述第一链路的带宽和所述第二链路的带宽,分配第一业务数据流在所述第一链路传输的第一数据流和在所述第二链路传输的第二数据流,其中,所述第一链路和所述第二链路是所述第一装置与第二装置连接的链路,所述第一链路对应的所述第一装置的物理地址与所述第二链路对应的所述第一装置的物理地址不同,所述第一链路和所述第二链路是支持快速用户数据报协议互联网连接QUIC协议的链路;根据所述第一链路的第一发送流,向所述第二装置发送所述第一数据流;根据所述第二链路的第一发送流,向所述第二装置发送所述第二数据流。
- 一种建立快速用户数据报协议互联网连接QUIC多路径的方法,所述方法应用于第二装置,其特征在于,包括:接收第一装置发送的建链请求消息,所述建链请求消息包括第一连接标识,所述第一连接标识是第一链路的发送流的连接标识,所述建链请求消息还包括所述第一装置具备所述QUIC协议多路径的能力和/或所述第一装置支持的所述QUIC协议多路径的个数;根据所述建链请求消息,向所述第一装置发送反馈消息,所述反馈消息包括第二连接标识,所述第二连接标识为所述第一链路的接收流的连接标识,所述反馈消息还包括所述第二装置具备所述QUIC协议多路径的能力和/或所述第二装置支持的所述QUIC协议多路径的个数;生成所述第一链路的参数信息,所述第一链路的参数信息包括:所述第一连接标识、所述第二连接标识和所述第一链路的链路标识,所述第一链路的链路标识为第一链路标识。
- 根据权利要求20所述的方法,其特征在于,所述方法还包括:通过第二链路,接收所述第一装置发送的第一检测消息,所述第一检测消息包括第一路径检测帧;通过所述第二链路,向所述第一装置发送第一响应消息,所述第一响应消息包括第一路径响应帧。
- 根据权利要求21所述的方法,其特征在于,所述方法还包括:通过所述第二链路,向所述第一装置发送第二检测消息,所述第二检测消息包括第二路径检测帧;通过所述第二链路,接收所述第一装置发送的第二响应消息,所述第二响应消息包括第二路径响应帧;根据所述第二响应消息,生成所述第二链路的发送流的参数信息,所述第二链路的发送流的参数信息包括:第四连接标识和所述第二链路的链路标识,所述第四连接标识为所述第二链路的发送流的连接标识,所述第二链路的链路标识为第二链路标识。
- 根据权利要求20至22中任一项所述的方法,其特征在于,所述方法还包括:根据第一链路的第一接收流,接收第一装置发送的第一数据流;根据第二链路的第一接收流,接收所述第一装置发送的第二数据流,其中,所述第一链路和所述第二链路是所述第一装置与所述第二装置连接的链路,所述第一链路对应的所述第一装置的物理地址与所述第二链路对应的所述第一装置的物理地址不同,所述第一链路和所述第二链路是支持快速用户数据报协议互联网连接QUIC协议的链路;根据所述第一数据流和所述第二数据流,确定第一业务数据流。
- 一种数据传输的装置,所述装置为第一装置,其特征在于,包括:处理单元,用于根据第一链路的带宽和第二链路的带宽,分配第一业务数据流在所述第一链路传输的第一数据流和在所述第二链路传输的第二数据流,其中,所述第一链路和所述第二链路是所述第一装置与第二装置连接的链路,所述第一链路对应的所述第一装置的物理地址与所述第二链路对应的所述第一装置的物理地址不同,所述第一链路和所述第二链路是支持快速用户数据报协议互联网连接QUIC协议的链路;收发单元,用于根据所述第一链路的第一发送流,向所述第二装置发送所述第一数据流;所述收发单元还用于根据所述第二链路的第一发送流,向所述第二装置发送所述第二数据流。
- 一种数据传输的装置,所述装置为第二装置,其特征在于,包括:收发单元,用于根据第一链路的第一接收流,接收第一装置发送的第一数据流;所述收发单元还用于根据第二链路的第一接收流,接收所述第一装置发送的第二数据流,其中,所述第一链路和所述第二链路是所述第一装置与所述第二装置连接的链路,所述第一链路对应的所述第一装置的物理地址与所述第二链路对应的所述第一装置的物理地址不同,所述第一链路和所述第二链路是支持快速用户数据报协议互联网连接QUIC协议的链路;处理单元,用于根据所述第一数据流和所述第二数据流,确定第一业务数据流。
- 一种电子设备,其特征在于,包括处理器和存储器,所述存储器中存储有指令,所述处理器运行所述指令时,使得所述处理器执行权利要求1-8任一项所述的方法,或者执行权利要求9-15任一项所述的方法,或者执行权利要求16-19任一项所述的方法,或者执行权利要求20-23任一项所述的方法。
- 一种计算机存储介质,其特征在于,包括指令,当其在计算机上运行时,使得所述计算机执行权利要求1-8任一项所述的方法,或者执行权利要求9-15任一项所述的方法,或者执行权利要求16-19任一项所述的方法,或者执行权利要求20-23任一项所述的方法。
- 一种计算机程序产品,其特征在于,包括计算机程序代码,当所述计算机程序代码被电子设备运行时,使得所述电子设备执行权利要求1-8中任一项所述的方法,或者执行权利要求9-15任一项所述的方法,或者执行权利要求16-19任一项所述的方法,或者执行权利要求20-23任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211436459.7 | 2022-11-16 | ||
CN202211436459.7A CN118101782A (zh) | 2022-11-16 | 2022-11-16 | 一种数据传输的方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024104016A1 true WO2024104016A1 (zh) | 2024-05-23 |
Family
ID=91083799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2023/124080 WO2024104016A1 (zh) | 2022-11-16 | 2023-10-11 | 一种数据传输的方法、装置、电子设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN118101782A (zh) |
WO (1) | WO2024104016A1 (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200204484A1 (en) * | 2017-05-04 | 2020-06-25 | Liveu Ltd. | Device, system, and method of pre-processing and data delivery for multi-link communications and for media content |
CN112738855A (zh) * | 2020-09-29 | 2021-04-30 | 网络通信与安全紫金山实验室 | 一种应用在quic的基于多链路的传输方法和装置 |
CN113365369A (zh) * | 2020-03-06 | 2021-09-07 | 华为技术有限公司 | 通信方法和装置 |
CN113709901A (zh) * | 2020-05-21 | 2021-11-26 | 华为技术有限公司 | 通信方法和装置 |
CN114172948A (zh) * | 2022-02-09 | 2022-03-11 | 北京数码视讯技术有限公司 | 基于udp的ip透传网关传输系统和方法 |
-
2022
- 2022-11-16 CN CN202211436459.7A patent/CN118101782A/zh active Pending
-
2023
- 2023-10-11 WO PCT/CN2023/124080 patent/WO2024104016A1/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200204484A1 (en) * | 2017-05-04 | 2020-06-25 | Liveu Ltd. | Device, system, and method of pre-processing and data delivery for multi-link communications and for media content |
CN113365369A (zh) * | 2020-03-06 | 2021-09-07 | 华为技术有限公司 | 通信方法和装置 |
CN113709901A (zh) * | 2020-05-21 | 2021-11-26 | 华为技术有限公司 | 通信方法和装置 |
CN112738855A (zh) * | 2020-09-29 | 2021-04-30 | 网络通信与安全紫金山实验室 | 一种应用在quic的基于多链路的传输方法和装置 |
CN114172948A (zh) * | 2022-02-09 | 2022-03-11 | 北京数码视讯技术有限公司 | 基于udp的ip透传网关传输系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN118101782A (zh) | 2024-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10305904B2 (en) | Facilitating secure network traffic by an application delivery controller | |
US8307024B2 (en) | Assisted peer-to-peer media streaming | |
CN107278360B (zh) | 一种实现网络互连的系统、方法及装置 | |
CA2611776C (en) | Method and communication unit for communicating between communication apparatuses | |
US8437348B2 (en) | Method and system for controlling transmission of multicast packets over a local area network, related network and computer program product therefor | |
WO2022100264A1 (zh) | 数据传输方法、装置、存储介质及电子设备 | |
CN109067578B (zh) | 一种组播快速切换的方法和装置 | |
CN110169030B (zh) | 用于在异构网络上发送内容的方法及其设备 | |
US12052302B2 (en) | Data distribution method and network device | |
CN110445723B (zh) | 一种网络数据调度方法及边缘节点 | |
WO2021008591A1 (zh) | 数据传输方法、装置及系统 | |
CN103348657A (zh) | 流媒体播放方法、设备及系统 | |
WO2018119677A1 (zh) | 传输链路的续传方法、装置和系统 | |
US20160277246A1 (en) | Method and device for media multiplexing negotiation | |
US20140016532A1 (en) | Multicast transmission using a unicast protocol | |
CN114615237A (zh) | 流媒体通信方法、系统、设备及存储介质 | |
CN112398754B (zh) | 数据传输方法、装置、介质、电子设备及网络接入设备 | |
WO2024093284A1 (zh) | 数据传输方法、装置及设备 | |
CN112994946A (zh) | 一种链路聚合方法 | |
WO2024104016A1 (zh) | 一种数据传输的方法、装置、电子设备及存储介质 | |
CN114710568B (zh) | 音视频数据通信方法、设备及存储介质 | |
CN112838983A (zh) | 数据传输方法、系统、设备、代理服务器及存储介质 | |
US11381544B2 (en) | Service type determining method and related device | |
CN113645283A (zh) | 一种多链路通信方法、装置、存储介质及电子设备 | |
US20230353285A1 (en) | Data transmission method, data transmission apparatus, computer-readable medium, electronic device, and computer program product |
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: 23890453 Country of ref document: EP Kind code of ref document: A1 |