WO2019144836A1 - 数据传输方法、装置和系统 - Google Patents

数据传输方法、装置和系统 Download PDF

Info

Publication number
WO2019144836A1
WO2019144836A1 PCT/CN2019/072180 CN2019072180W WO2019144836A1 WO 2019144836 A1 WO2019144836 A1 WO 2019144836A1 CN 2019072180 W CN2019072180 W CN 2019072180W WO 2019144836 A1 WO2019144836 A1 WO 2019144836A1
Authority
WO
WIPO (PCT)
Prior art keywords
packet
data
quic
path
transmission
Prior art date
Application number
PCT/CN2019/072180
Other languages
English (en)
French (fr)
Inventor
韦安妮
陈·亨黄·安东尼
熊春山
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to BR112020015127-0A priority Critical patent/BR112020015127A2/pt
Priority to EP19743300.6A priority patent/EP3737016A4/en
Publication of WO2019144836A1 publication Critical patent/WO2019144836A1/zh
Priority to US16/938,420 priority patent/US20200358886A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/164Adaptation or special uses of UDP protocol
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/1887Scheduling and prioritising arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/1893Physical mapping arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/196Integration of transport layer protocols, e.g. TCP and UDP
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/003Arrangements for allocating sub-channels of the transmission path
    • H04L5/0044Arrangements for allocating sub-channels of the transmission path allocation of payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/003Arrangements for allocating sub-channels of the transmission path
    • H04L5/0053Allocation of signaling, i.e. of overhead other than pilot signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Definitions

  • the present application relates to the field of communications technologies, and in particular, to a data transmission method, apparatus, and system.
  • QUIC Quick UDP (User Datagram Protocol) Internet Connection, Fast UDP Internet Connection
  • QUIC Quick UDP (User Datagram Protocol) Internet Connection
  • the transmitting end needs to use QUIC connection to transmit data, it needs to establish a QUIC connection with the receiving end first, and then process the data to be transmitted, and generate multiple QUIC data packets that need to be transmitted based on the QUIC connection, and the header of each QUIC data packet is Carrying the data packet sequence number, and finally sending the QUIC data packets to the receiving end by using the established QUIC connection in descending order of the data packet sequence number.
  • the receiving end After receiving the QUIC data packet sent by the sending end, the receiving end sends an acknowledgment (ACK) packet to the sending end, where the acknowledgment packet is used to indicate the QUIC data packet received by the receiving end.
  • ACK acknowledgment
  • the receiving end cannot receive all the QUIC packets transmitted in sequence within a certain period of time, it will not be able to accurately determine whether the QUIC packets that are not received are lost, thereby affecting the transmission performance.
  • the present application provides a data transmission method, device and system.
  • the technical solutions are as follows:
  • a data transmission method comprising: generating a plurality of QUIC data packets, each QUIC data packet including a QUIC connection identifier and packet indication information, and a QUIC connection in the plurality of QUIC data packets
  • the identifiers are the same; the plurality of QUIC data packets are sent through at least two paths, wherein the packet indication information in each of the QUIC data packets is used to indicate a packet sequence number of the QUIC data packet on the transmission path.
  • the QUIC connection identifiers in the multiple QUIC data packets are the same, it indicates that the QUIC data packets all transmit data by using the same QUIC connection, and the present application transmits the data transmitted by the same QUIC connection through at least two paths, and for each path.
  • the data packets transmitted on the uplink are numbered separately, so that the receiving end can accurately determine the transmission status of the data packets on each path, and the data transmission is not affected because the transmission conditions of different paths are different.
  • the generating a plurality of QUIC data packets includes: acquiring data to be transmitted, the data to be transmitted includes data of at least two streams of the QUIC connection; determining data for each of the streams The QUIC packet header that carries the same path identifier is added to the data of the same stream, and the QUIC packet is obtained.
  • the determining the transmission path for the data of each stream may be in any of the following two ways:
  • the first type determines whether the respective streams are related; the transmission path of the data of the related stream is determined to be the same path.
  • a second type determining a transmission performance requirement of each of the flows, where the transmission performance requirement includes at least one of a transmission delay, a packet loss rate, and a bit error rate; and each of the flows is required according to a transmission performance requirement of each stream.
  • the data determines the transmission path.
  • the data of the related stream is transmitted by using the same path, that is, the transmission path of the data of the multiple related flows is determined to be the same path, thereby reducing the transmission performance of different paths and causing the use of the data. influences.
  • the overall performance of the data transmission can be improved by selecting a path that satisfies the demand for the stream as a transmission path according to the requirements of the transmission performance of the transmission path of each stream.
  • determining whether the flows are related to each other includes: determining whether each of the flows is related according to an identifier carried in data of each of the flows; or determining each of the flows according to each preset association rule Whether it is related.
  • the method further includes: receiving an acknowledgement packet sent by the receiving end, where the acknowledgement packet is used to indicate a data packet received by the receiving end on each path; and according to the received acknowledgement packet, determining that the weight is required The transmitted data packet; retransmits the data packet that needs to be retransmitted.
  • the first type determines a path for retransmission according to the transmission performance of each path, where the transmission performance includes one or more of a transmission delay, a packet loss rate, and a bit error rate; Retransmitting the data packet that needs to be retransmitted on the retransmitted path; or, secondly, retransmitting the data packet that needs to be retransmitted on the original transmission path of the data packet that needs to be retransmitted.
  • a second aspect of the present invention provides a data transmission method, the method comprising: receiving, by a sending end, a plurality of QUIC data packets sent by using at least two paths, where each QUIC data packet includes a QUIC connection identifier and a packet indication information, where The QUIC connection identifiers in the plurality of QUIC data packets are the same, and the packet indication information in each of the QUIC data packets is used to indicate a packet sequence number of the QUIC data packet on the transmission path; and determining, according to the packet indication information, Whether there are unreceived data packets in the data packets transmitted on each of the paths.
  • the method may further include: sending an acknowledgement packet to the sender, where the acknowledgement packet is used to instruct the receiver to receive the data packet on each path.
  • the sending the acknowledgement packet to the sending end includes: respectively sending respective corresponding acknowledgement packets on each of the paths.
  • a data transmission apparatus comprising means for implementing the method provided by any one of the possible embodiments of the first aspect, such as a generating unit, a transmitting unit, and the like.
  • a data transmission apparatus comprising means for implementing the method provided by any one of the possible embodiments of the second aspect, such as a receiving unit, a determining unit, and the like.
  • a data transmission apparatus comprising: a memory, a processor coupled to the memory, the memory for storing program code, when the processor is configured to run or execute to be stored in the memory
  • the method provided by any of the possible implementations of the first aspect may be performed while the program code is within.
  • a data transmission apparatus comprising: a memory, a processor coupled to the memory, the memory for storing program code, when the processor is configured to run or execute to be stored in the memory
  • the method provided by any of the possible implementations of the second aspect may be performed while the program code is within.
  • a seventh aspect further provides a computer readable storage medium having stored therein instructions for causing a computer to perform the first aspect or the first aspect described above when the computer readable storage medium is run on a computer Any of the alternatives provided by the method; or, when the computer readable storage medium is run on a computer, causing the computer to perform the method provided by any of the alternative aspects of the second aspect or the second aspect.
  • a computer program product comprising instructions for causing a computer to perform the method provided by any of the above first aspect or the first aspect, when the computer program product is run on a computer; or When the computer program product is run on a computer, causing the computer to perform the method provided by any of the alternative aspects of the second aspect or the second aspect.
  • a communication chip is further provided for use in a communication device, the communication chip comprising: a processor, a memory, and a communication interface; the processor, the memory, and the communication interface are coupled by a bus, and the memory is used for Storing program instructions, the processor, by executing program instructions stored in the memory, enabling a communication device loaded with the communication chip to perform the implementation of any of the first or second aspects described above method.
  • a tenth aspect further provides a data transmission system, where the system includes a transmitting end and a receiving end, where the transmitting end is configured to perform the method provided by any one of the foregoing first aspects, the receiving end A method for performing the method provided by any of the foregoing second aspects.
  • FIG. 1 is a schematic diagram of an application scenario of a data transmission method according to an embodiment of the present invention
  • FIG. 2 is a structural block diagram of a communication device according to an embodiment of the present invention.
  • FIG. 3 is a flowchart of a data transmission method according to an embodiment of the present invention.
  • FIG. 4 is a schematic diagram of a relationship between a QUIC connection and a flow according to an embodiment of the present invention
  • FIG. 5 is a schematic structural diagram of a UDP data packet encapsulated with a QUIC data packet according to an embodiment of the present invention
  • FIG. 6 is a schematic diagram of a format of a conventional QUIC packet header
  • FIG. 7 is a schematic diagram of a format of a QUIC packet header according to an embodiment of the present invention.
  • FIG. 8 is a schematic structural diagram of a data transmission apparatus according to an embodiment of the present invention.
  • FIG. 9 is a schematic structural diagram of another data transmission apparatus according to an embodiment of the present invention.
  • FIG. 10 is a schematic structural diagram of a data transmission system according to an embodiment of the present invention.
  • FIG. 1 is a schematic diagram of an application scenario of a data transmission method according to an embodiment of the present invention.
  • a QUIC connection is established between a transmitting end 11 and a receiving end 12 through a wireless access point.
  • data transmitted on a QUIC connection between a transmitting end (ie, communication device A) 11 and a receiving end (ie, communication device B) 12 can be transmitted through at least two paths, and different paths can be based on different
  • the wireless access technology can also be based on the same wireless access technology.
  • the wireless access technologies include, but are not limited to, Wi-Fi (Wireless Fidelity), 3GPP (3rd Generation Partnership Project) 3G, 4G, 5G and subsequent evolution technologies.
  • FIG. 1 there are two paths, a path F1 and a path F2, between the transmitting end 11 and the receiving end 12, wherein the path F1 is implemented based on a 3GPP network, and the path F2 is implemented based on Wi-Fi technology.
  • access may be performed through different wireless access points, for example, when Wi-Fi is adopted, the wireless router 13 is used for access, and when the wireless access technology is 3GPP, 3G, In 4G, 5G or its subsequent evolution techniques, the wireless access point may be a base station 14 (e.g., eNode B).
  • the wireless access point may be a base station 14 (e.g., eNode B).
  • Each path may be determined by the address information of the sending end and the address information of the receiving end, wherein the address information of the sending end includes at least one of an IP address and a port number, and the address information of the receiving end includes at least one of an IP address and a port number. If at least one of the address information of the receiving end and the transmitting end is different, it is a different path. For example, in the two paths between the transmitting end 11 and the receiving end 12 shown in FIG. 1, the address information of the transmitting end 11 of the path F1 is A2 (IP address) and PORT2, and the address information of the receiving end is B1 (IP address). And PORT1, the address information of the transmitting end of the path F2 is A1 (IP address), PORT1, and the address information of the receiving end is B2 (IP address) and PORT2.
  • the packet header of each QUIC data packet carries the data packet sequence number, and the transmitting end sequentially sends the data packet through the QUIC connection according to the sequence number of the data packet from small to large.
  • a QUIC connection transmits data through multiple paths, for example, a packet with a packet number of 1 is transmitted using path 1, and a packet with a sequence number of 2 and 3 is transmitted using path 2, due to the network environment of different paths. It may be different (for example, different access devices passing through different paths on a different path, different core network entities passing through when packets are transmitted on different paths, etc.), so the transmission delays of different paths may be different.
  • the receiving end may first receive a data packet with a larger sequence number, and then receive a data packet with a smaller serial number.
  • the receiving end may consider that the data packet with a smaller sequence number has been lost and sent to the transmitting end for feedback.
  • the acknowledgement packet of the currently received data packet If the data packet with the smaller sequence number is actually only due to the delay, the receiving end temporarily does not receive the data packet, and the transmitting end determines the data packet with the smaller sequence number according to the acknowledgement packet.
  • the lost data packet has been lost and retransmitted, which will cause a waste of transmission resources.
  • the buffer buffer of the receiving end may overflow, and when the receiving end does not receive a packet with a small sequence number, it may not be received while waiting.
  • the other data packets are handed over to the application layer in time, causing the user to wait too long and seriously affecting the user experience.
  • the transmitting end 11 refers to a communication device that transmits data
  • the receiving end 12 refers to a communication device that receives data, that is, the transmitting end and the receiving end are relatively speaking.
  • the first communication device transmits data to the second communication device
  • the first communication device is a transmitting end
  • the second communication device is a receiving end
  • the first communications device is a receiving end
  • the first communications device sends data to the second communications device and receives data sent by the second communications device
  • the first communications device and the second communications device are both transmitting ends It is also the receiving end.
  • the communication device may be a terminal device or a server.
  • Terminal devices include, but are not limited to, cell phones, notebook computers, personal computers, and the like.
  • FIG. 2 is a schematic structural diagram of a communication device 20 according to an embodiment of the present invention.
  • the communication device can be implemented as a receiving end or a transmitting end in FIG. 1 or as both a transmitting end and a receiving end.
  • the communication device 20 may include one or more core processors 21, a memory 22 including one or more computer readable storage media, and a communication interface 23, etc., and the processor 21 may use a bus and memory 22 and The communication interface 23 is connected.
  • the structure illustrated in Figure 2 does not constitute a limitation to the communication device 20 and may include more or fewer components than those illustrated, or some components may be combined, or different component arrangements. among them:
  • the processor 21 is the control center of the communication device 20, connecting various portions of the entire communication device 20 using various interfaces and lines, by running or executing software programs and/or application modules stored in the memory 22, and calling stored in the memory.
  • the data within 22 performs various functions and processing data of communication device 20 to provide overall monitoring of communication device 20.
  • the processor 21 may include one or more processing units, and the processing unit may be a central processing unit (CPU) or a network processor (NP).
  • the memory 22 can be used to store various data, such as various configuration parameters as well as computer instructions, which can be executed by the processor 21.
  • Memory 22 may include high speed random access memory, and may also include non-volatile memory, such as at least one magnetic disk, flash memory, or other volatile solid state storage devices. Accordingly, memory 22 may also include a memory controller to provide access by processor 21 to memory 22.
  • Communication interface 23 can be a transceiver or a network interface.
  • the transceiver may include a receiver Rx and a transmitter Tx, and the transceiver may also be implemented as a communication chip, and the communication chip may include a receiving module, a transmitting module, a modem module, etc., for modulating and demodulating information, and passing The wireless signal receives or transmits the information.
  • the processor 21 is configured to generate a plurality of QUIC data packets, where each QUIC data packet includes a QUIC connection identifier and packet indication information, and the QUIC connection identifiers in the plurality of QUIC data packets are the same;
  • the control communication interface 23 transmits the plurality of QUIC data packets through at least two paths, wherein the packet indication information in each of the QUIC data packets is used to indicate a packet sequence number of the QUIC data packet on the transmission path.
  • the processor 21 is configured to receive, by the sending end, a plurality of QUIC data packets sent by the sending end by using at least two paths, where each QUIC data packet includes a QUIC connection identifier and packet indication information, where the multiple QUICs
  • the QUIC connection identifiers in the data packets are the same, and the packet indication information in each of the QUIC data packets is used to indicate a packet sequence number of the QUIC data packet on the transmission path; and according to the packet indication information, each of the foregoing descriptions is determined. Whether there are unreceived packets in the packets transmitted on the path.
  • FIG. 3 is a flowchart of a data transmission method according to an embodiment of the present invention, which is implemented based on the scenario shown in FIG. 1. Referring to Figure 3, the method flow includes:
  • Each QUIC connection has a unique QUIC ID (Identifier).
  • the sender acquires data to be transmitted.
  • the data to be transmitted is the application layer data, and after the transmitting end obtains the data to be transmitted, the data to be transmitted is subjected to segmentation and reassembly.
  • the data to be transmitted includes data of at least two streams, and the data to be reassembled and reassembled refers to framing the data of each stream, wherein the frame is the smallest data unit in the data transmission using the QUIC connection, and A stream is a logical collection of data passed in a QUIC connection.
  • each stream has a unique stream identifier.
  • the client accesses the webpage, and the server sends the data on the webpage to the client by using a QUIC connection.
  • the webpage usually includes multiple objects, such as text, pictures, audio, etc., each of which can be used as a A stream, for example, a picture object as a stream, an audio object as a stream, and a text object as a stream.
  • the reassembly and reorganization is to further divide the data of each stream into frames.
  • one QUIC connection 40 transmits data of three streams.
  • Each stream includes a plurality of frames, for example, the first stream 41 includes frames 1-3, the second stream 42 includes frames 4-6, and the third stream 43 includes frames 7-8.
  • sequence numbers of the frames in FIG. 4 are only used to distinguish different frames, and do not represent the transmission order between frames.
  • the reassembly and reorganization of the data to be transmitted needs to consider the limitation and requirements of the data size of the QUIC packet. Specifically, for a QUIC packet transmitted based on the IPv6 protocol, the size of the QUIC packet cannot exceed 1350 bytes. For a QUIC packet transmitted based on the IPv4 protocol, the size of the QUIC packet cannot exceed 1370 bytes, and the packet to be transmitted is reassembled and reassembled.
  • the size and requirements of the QUIC data packet size need to be considered when reassembling and reassembling, at least, the minimum size of the divided data unit (ie, the frame) cannot exceed the aforementioned 1350 bytes. Or 1370 bytes.
  • the size of the QUIC frame in the same stream can be the same.
  • the size of QUIC frames in different streams may be the same or different.
  • the transmitting end determines a transmission path for data of each stream.
  • the data of the related stream may be transmitted by using the same path, that is, the transmission path of the data of the multiple related flows is determined to be the same path, thereby It can reduce the impact of different path transmission performance on the use of data.
  • video image data, audio data, and caption data in the same movie are respectively transmitted by three streams in one QUIC connection, one stream transmitting video image data, one stream transmitting audio data, and one stream transmitting subtitle data, and the three The related streams are transmitted on the same path.
  • the step 303 may include determining whether the respective flows of the QUIC connection are related; determining the transmission path of the data of the related flow as the same path.
  • the first type can determine the correlation of the flow according to the indication information carried in the packet header of the application layer of the data to be transmitted.
  • the indication information may be a set value of a specified field.
  • the data of the related stream may carry the same symbol identifier.
  • the symbol identifier may be carried in a Content Type header field of a HyperText Transfer Protocol (HTTP) packet. Accordingly, the sender can determine the stream to which the data having the same symbol mark belongs as the associated stream.
  • HTTP HyperText Transfer Protocol
  • the preset association rule includes an association relationship between the flow and the flow, and may be stored in the form of a list or a database. Further, the relationship between the flows may be determined by means of big data analysis. For example, if the data of the two flows is usually used in association, the association relationship is set for the data of the two flows.
  • the association relationship may be an association relationship of information in a Content Type header field of an HTTP packet.
  • the sender may first obtain the information in the Content Type header field of the HTTP data packet in the two streams, and then match the relationship information in the preset association rule. If the matching succeeds, the two Flow related; if the match is unsuccessful, it means that the two streams are irrelevant.
  • the matching success refers to the association relationship between the information in the Content Type header field of the HTTP data packet of the two streams included in the preset association rule.
  • the transmission path may also be determined for each flow according to the transmission performance requirements of each flow pair transmission path.
  • the step 303 may include: determining a transmission performance requirement of each of the flows, where the transmission performance requirement includes at least one of a transmission delay, a packet loss rate, and a bit error rate; and according to a transmission performance requirement of each stream, The data for each of the streams determines the transmission path.
  • the determining the transmission performance requirement of each stream may be performed by: obtaining a transmission performance requirement of each stream from a correspondence between the indication information of the pre-saved stream and the transmission performance requirement, and the indication information of the stream may be a Content Type of the HTTP packet. (Content Type) The information in the header field.
  • the transmitting end may determine the transmission delay of each data packet according to the sending time of the transmitted data packet and the receiving time of the corresponding data packet in the received acknowledgement packet, and the same A statistical value (for example, an average value) of transmission delays of a plurality of data packets transmitted on the path is used as a transmission delay of the corresponding path.
  • the transmitting end may determine the number of data packets received by the receiving end according to the acknowledgement packet, and then determine according to the number of data packets sent by the transmitting end itself and the determined number of data packets received by the receiving end.
  • the packet loss rate of the corresponding path For the bit error rate, the sender can determine the bit error rate of the corresponding path according to the cross-layer communication through the protocol stack to obtain the bit error rate statistics from the bottom layer, such as the physical layer.
  • the sender adds a QUIC packet header carrying the same path identifier to the data of the same transmission path to obtain a QUIC packet.
  • each data packet may include a QUIC frame of at least two of the multiple flows.
  • a UDP packet includes a UDP header (UDP Header), a Common Header (ie, a QUIC packet header), and a QUIC frame belonging to a different stream, such as a frame in stream 5 in FIG. 1.
  • the number of frames carried in each data packet can be set according to actual needs, and is not limited herein.
  • the flow to which the QUIC frame included in the single QUIC packet belongs may be all the flows corresponding to the path, that is, each flow corresponding to the path has a QUIC frame carried in each data packet; or, included in a single data packet.
  • the stream to which the QUIC frame belongs may be part of all the streams corresponding to the path.
  • the number of QUIC frames belonging to different streams may be the same or different.
  • the QUIC connection identifier and the packet indication information are carried in the QUIC packet header of each QUIC packet, and the QUIC connection identifier in the QUIC packet transmitted by using the same QUIC connection is the same.
  • the packet indication information is used to indicate the packet sequence number of the data packet on which the packet is located. That is to say, in this embodiment, the transmitting end may perform independent data packet ordering for each path. For example, the sequence number of the data packet on the path 1 starts from 1 and is sequentially incremented; the sequence number of the data packet on the path 2 It also starts from 1 and is incremented.
  • the packet indication information may include a path identifier and a path packet sequence number, where the path identifier is used to indicate a transmission path of the data packet, and the path packet sequence number is used to indicate a packet sequence number of the data packet on which the data packet is located.
  • FIG. 6 is a format of an existing QUIC packet header
  • FIG. 7 is a format of an extended QUIC packet header.
  • the QUIC packet header further includes a Type field, a Connection ID field, a packet number field, a Version field, and a Payload field.
  • the type field is used to carry the QUIC packet type and other header information, and may include 7 bits.
  • the connection identifier field is used to indicate the identifier of the QUIC connection, and may be 64 bits.
  • the packet sequence number field is used to indicate that the data packet is in the QUIC.
  • the serial number in all data packets transmitted by the connection may be 32 bits; the version field is used to indicate the version number used by the current QUIC, and 32 bits may be used; the payload field is used to carry data to be transmitted.
  • the path identifier field and the path packet sequence number field are added to the extended QUIC packet header, wherein the path identifier field is used to indicate the transmission path of the data packet, and 8 bits can be used.
  • the path packet sequence number field is used to indicate the packet sequence number indicating the data packet on which the data packet is located, and may take 32 bits. In other embodiments, the path identification field and the path packet sequence number field may be combined into one field, that is, only one field is used to carry the packet indication information.
  • the actual path corresponding to the same path identifier may be changed.
  • the path corresponding to the path identifier A is based on the path of the 3GPP network, and after the first time period.
  • the path corresponding to the path identifier A is based on the path of the WI-FI network. This is because the location of the terminal device may change, and the transmission performance of the same network may also change at different times, which may result in changes in transmission conditions (such as transmission delay, packet loss rate, etc.) of different paths.
  • transmission conditions such as transmission delay, packet loss rate, etc.
  • the QUIC packet carrying the same path identifier can be transmitted in the first transmission path in the first time period.
  • the second time period is transmitted by using the second transmission path.
  • the actual path corresponding to the same path identifier may also be unchanged.
  • the extended QUIC packet header further carries a multipath identifier for indicating whether multipath transmission is adopted, that is, whether more than one path is used to transmit data of the same QUIC connection.
  • a multipath identifier for indicating whether multipath transmission is adopted, that is, whether more than one path is used to transmit data of the same QUIC connection.
  • one of the type fields of the original QUIC packet header may be used to carry the multipath identifier.
  • a plurality of QUIC data packets can be generated by the above steps 302-304.
  • the transmitting end transmits the QUIC data packet by using a corresponding path.
  • the step 305 includes:
  • the IP packet is sent according to the IP header and the UDP header.
  • the UDP packet header includes a source port number and a destination port number
  • the IP packet header includes a source IP address and a destination IP address.
  • Sending an IP packet according to the IP header and the UDP header refers to sending the IP packet to the communication device corresponding to the destination IP address and the destination port number, that is, the receiving end.
  • the address information in the UDP header and IP header that may be added is different at different time periods.
  • the sender can be determined according to the actual situation (transmission delay of the path, packet loss rate, etc.).
  • the receiving end receives the data packet sent by the sending end on each path corresponding to the QUIC connection.
  • the receiving end generates an acknowledgement packet corresponding to each path according to the packet information of the received data packet.
  • the acknowledgement packet includes a SACK (Selective Acknowledgment) field, where the SACK field includes information about the received data packet.
  • SACK Selective Acknowledgment
  • the acknowledgement packet corresponding to the path in step 307 may be an acknowledgement packet on the same actual path, and the receiving end may follow the path identifier or the address corresponding to the path.
  • the information determines if a packet on the same path was received. If the actual path corresponding to the same path identifier can be changed, the confirmation packet corresponding to the path in step 307 refers to the confirmation packet corresponding to the same path identifier. That is, the receiving end determines whether the data packet sent on the same path is received according to the path identifier.
  • the receiving end sends the acknowledgement packet to the sending end on the corresponding path.
  • the sending end determines, according to the received confirmation packet, a data packet that needs to be retransmitted on each path.
  • the transmitting end may determine, according to the received acknowledgement packet, a data packet that has not been received by the receiving end in the data packet that has been sent on each path; and then, the data that is not received from the receiving end according to the set retransmission policy.
  • the retransmission policy may include, but is not limited to, important data packets that need to be retransmitted, and unimportant data packets do not need to be retransmitted.
  • the sender retransmits the data packet that needs to be retransmitted.
  • the step 310 may include:
  • the step 310 may include:
  • the transmission performance may be one or more of a transmission delay, a packet loss rate, and a bit error rate.
  • a transmission delay a transmission delay
  • a packet loss rate a packet loss rate
  • bit error rate a bit error rate
  • the data packet that needs to be retransmitted may be retransmitted on the path with the smallest transmission delay or the data packet that needs to be retransmitted may be retransmitted on the path with the smallest packet loss rate.
  • an embodiment of the present invention further provides a data transmission apparatus, which may be implemented as a whole or a part of a communication device through a dedicated hardware circuit or a combination of hardware and software.
  • the apparatus includes a generating unit 701 and a transmitting unit 702.
  • the generating unit 701 is configured to generate a plurality of QUIC data packets, where each QUIC data packet includes a QUIC connection identifier and a packet indication information, where the QUIC connection identifiers in the plurality of QUIC data packets are the same, and the packet indication information includes a path.
  • a path identifier where the path identifier is used to indicate a transmission path of the data packet, the path packet sequence number is used to indicate a packet sequence number of the data packet on the transmission path, and the sending unit 702 is configured to use the QUIC data packet.
  • Each of the QUIC data packets is sent by the corresponding transmission path, where the transmission path corresponding to the multiple QUIC data packets includes at least two paths.
  • the device further includes an obtaining unit 703, configured to acquire data to be transmitted, where the data to be transmitted includes data of at least two streams of the QUIC connection;
  • the transmission path is determined for the data of each of the flows;
  • the generating unit 701 is configured to add a QUIC packet header carrying the same path identifier to the data of the same transmission path to obtain the QUIC data packet.
  • the determining unit 704 is configured to determine whether each of the streams is related; the transmission path of the data of the related stream is determined to be the same path. Further, the determining unit 704 is configured to determine, according to the identifier carried in the data of each of the flows, whether each of the flows is related; or, according to each preset association rule, determine whether each of the flows is related.
  • the determining unit 704 is configured to determine a transmission performance requirement of each of the flows, where the transmission performance requirement includes at least one of a transmission delay, a packet loss rate, and a bit error rate; The transmission performance requires determining the transmission path for the data of each of the streams.
  • the device further includes: a receiving unit 705, and a retransmission unit 706, where the receiving unit 705 is configured to receive an acknowledgement packet sent by the receiving end, where the acknowledgement packet is used to indicate that the receiving end receives the path on each path.
  • the data packet; the retransmission unit 705 is configured to determine, according to the received acknowledgement packet, a data packet that needs to be retransmitted and retransmit the data packet that needs to be retransmitted.
  • the retransmission unit 706 is configured to determine a path for retransmission according to transmission performance of each path, where the transmission performance includes one or more of a transmission delay, a packet loss rate, and a bit error rate. Retransmitting a data packet that needs to be retransmitted on the determined path for retransmission; or, the retransmission unit 706 is configured to retransmit the original transmission path of the data packet that needs to be retransmitted The packet that needs to be retransmitted.
  • the foregoing generating unit 701, the obtaining unit 702, and the determining unit 703 may be implemented by a processor or may be implemented by a processor executing a program instruction in a memory.
  • the sending unit 702 and the retransmission unit 705 may be implemented by a transmitter Tx. Or the processor is implemented in conjunction with the transmitter Tx.
  • the receiving unit 704 can be implemented by the receiver Rx or the processor can be implemented by the receiver Rx.
  • an embodiment of the present invention further provides another data transmission apparatus, which may be implemented as a whole or a part of a communication device through a dedicated hardware circuit or a combination of hardware and software.
  • the apparatus includes a receiving unit 801 and a determining unit 802.
  • the receiving unit 801 is configured to receive, by the sending end, multiple QUIC data packets that are sent by the sending end by using at least two paths, where each QUIC data packet includes a QUIC connection identifier and packet indication information, and the QUIC connection identifier in the multiple QUIC data packets.
  • the packet indication information includes a path identifier and a path packet sequence number, where the path identifier is used to indicate a transmission path of the data packet, where the path packet sequence number is used to indicate a packet sequence number of the data packet on the transmission path;
  • the 802 is configured to determine, according to the packet indication information, whether there is an unreceived data packet in a data packet transmitted on each of the paths.
  • the device further includes: a sending unit 803, configured to send an acknowledgement packet to the sending end, where the acknowledgement packet is used to instruct the receiving end to receive the data packet on each path.
  • a sending unit 803 configured to send an acknowledgement packet to the sending end, where the acknowledgement packet is used to instruct the receiving end to receive the data packet on each path.
  • the sending unit 803 is configured to separately send respective corresponding acknowledgement packets on each of the paths.
  • the above determining unit 802 may be implemented by a processor or the processor may execute a program instruction in a memory.
  • the receiving unit 801 and the transmitting unit 803 may be implemented by a communication interface or the communication interface may be implemented in conjunction with a processor.
  • an embodiment of the present invention further provides a data transmission system, where the system includes: a transmitting end 901 and a receiving end 902.
  • the system also includes a data transmission network, such as a WIFI network, a 3GPP communication network, and the like.
  • a data transmission network such as a WIFI network, a 3GPP communication network, and the like.
  • Each data transmission network includes at least one wireless access point, such as a wireless router, base station, and the like.
  • the above embodiments it may be implemented in whole or in part by software, hardware, or a combination thereof.
  • a software program it may be implemented in whole or in part in the form of a computer program product.
  • the computer program product includes one or more computer instructions.
  • the computer instructions When the computer instructions are loaded and executed on a computer, the processes or functions described in accordance with embodiments of the present invention are generated in whole or in part.
  • the computer can 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 transferred from one computer readable storage medium to another computer readable storage medium, for example, the computer instructions may be from a website site, computer, server or data
  • the center transmits to another website site, computer, server, or data center by wire (eg, coaxial cable, twisted pair, fiber optic) or wireless (eg, infrared, microwave, etc.).
  • the computer readable storage medium can be any available media that can be accessed by a computer or a data storage device such as a server, data center, or the like that includes one or more available media.
  • the usable medium may be a magnetic medium (eg, a floppy disk, a hard disk, a magnetic tape), an optical medium, or a semiconductor medium (such as a solid state drive (SSD)) or the like.
  • a person skilled in the art may understand that all or part of the steps of implementing the above embodiments may be completed by hardware, or may be instructed by a program to execute related hardware, and the program may be stored in a computer readable storage medium.
  • the storage medium mentioned may be a read only memory, a magnetic disk or an optical disk or the like.

Abstract

本申请公开了一种数据传输方法、装置和系统,属于通信技术领域。所述方法包括:生成多个QUIC数据包,每个QUIC数据包中包括QUIC连接标识和包指示信息,所述多个QUIC数据包中的QUIC连接标识相同;将所述多个QUIC数据包通过至少两条路径发送,其中,每个所述QUIC数据包中的包指示信息均用于指示QUIC数据包在所在的传输路径上的包序号。通过为传输同一QUIC连接的数据的两条路径上的数据包分别编号,从而使得接收端可以分别判断各条路径上的数据包的传输情况,不会因为不同路径所处的传输条件不同而致使数据传输受到影响。

Description

数据传输方法、装置和系统
本申请要求于2018年01月25日提交的申请号为201810073548.7、申请名称为“数据传输方法、装置和系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信技术领域,特别涉及一种数据传输方法、装置和系统。
背景技术
QUIC(Quick UDP(User Datagram Protocol,用户数据报协议)Internet Connection,快速UDP互联网连接)是一种基于UDP的实现多路复用以及安全性保护的传输协议。发送端需要采用QUIC连接传输数据时,需要先与接收端建立QUIC连接,然后对待传输的数据进行处理,生成需要基于该QUIC连接传输的多个QUIC数据包,每个QUIC数据包的包头中均携带有数据包序号,最后将这些QUIC数据包按照数据包序号从小到大的顺序依次采用建立好的QUIC连接发送给接收端。接收端收到发送端发送的QUIC数据包后,会向发送端回复确认(ACK)包,该确认包用于指示接收端接收到的QUIC数据包。当接收端不能在特定时间段内接收到所有依次传输的QUIC数据包时,将无法准确判断没有收到的QUIC数据包是否丢失,从而影响传输性能。
发明内容
为了解决现有技术中接收端无法准确判断数据包是否丢失的问题,本申请提供了一种数据传输方法、装置和系统。技术方案如下:
第一方面,提供了一种数据传输方法,所述方法包括:生成多个QUIC数据包,每个QUIC数据包中包括QUIC连接标识和包指示信息,所述多个QUIC数据包中的QUIC连接标识相同;将所述多个QUIC数据包通过至少两条路径发送,其中,每个所述QUIC数据包中的包指示信息均用于指示QUIC数据包在所在的传输路径上的包序号。
当多个QUIC数据包中的QUIC连接标识相同时,表示这些QUIC数据包均采用同一QUIC连接传输数据,本申请通过将同一QUIC连接传输的数据通过至少两条路径进行传输,并且为每条路径上传输的数据包进行分别编号,使得接收端可以准确判断各条路径上的数据包的传输情况,不会因为不同路径所处的传输条件不同而致使数据传输受到影响。
实际应用中,由于每个QUIC连接通常会传输多个流的数据,因此在生成多个QUIC数据包时,需要为每个流分别确定传输路径。因此,在一些实施例中,所述生成多个QUIC数据包,包括:获取待传输数据,所述待传输数据包括所述QUIC连接的至少两个流的数据;为各个所述流的数据确定传输路径;为传输路径相同的流的数据添加携带同一路径标识的QUIC数据包包头,得到所述QUIC数据包。
其中,为各个流的数据确定传输路径可以采用以下两种方式中的任意一种:
第一种、确定各个所述流之间是否相关;将相关的流的数据的传输路径确定为同一条路径。
第二种、确定各个所述流的传输性能要求,所述传输性能要求包括传输时延、丢包率、误码率中的至少一种;根据各个流的传输性能要求为各个所述流的数据确定传输路径。
在第一种方式中,将相关的流的数据采用同一条路径传输,即将多个相关的流的数据的传输路径确定为同一条路径,从而可以减小不同路径传输性能不同对数据的使用造成影响。在第二种方式中,通过根据各个流对传输路径的传输性能的要求来为流选择能够满足其需求的路径作为传输路径,能够提高数据传输的整体性能。
进一步地,确定各个流之间是否相关,包括:根据各个所述流的数据中携带的标识,确定各个所述流之间是否相关;或者,根据各个预设的关联规则,确定各个所述流之间是否相关。
可选地,所述方法还包括:接收接收端发送的确认包,所述确认包用于指示接收端在各条路径上接收到的数据包;根据接收到的所述确认包,确定需要重传的数据包;重传所述需要重传的数据包。
对于需要重传的数据包,可以采用以下两种方式进行重传:
第一种、根据各条路径的传输性能确定用于重传的路径,其中,所述传输性能包括传输时延、丢包率、误码率中的一种或多种;在确定出的用于重传的路径上重传需要重传的数据包;或者,第二种、在所述需要重传的数据包的原传输路径上重传所述需要重传的数据包。
第二方面,还提供了一种数据传输方法,所述方法包括:接收发送端通过至少两条路径发送的多个QUIC数据包,每个QUIC数据包中包括QUIC连接标识和包指示信息,所述多个QUIC数据包中的QUIC连接标识相同,每个所述QUIC数据包中的包指示信息均用于指示QUIC数据包在所在的传输路径上的包序号;根据所述包指示信息,确定各条所述路径上传输的数据包中是否存在未收到的数据包。
可选地,所述方法还可以包括:向发送端发送确认包,所述确认包用于指示接收端在各条路径上接收到的数据包。
进一步地,所述向发送端发送确认包,包括:在各条所述路径上分别发送各自对应的确认包。
第三方面,提供了一种数据传输装置,所述装置包括用于实现第一方面中任意一种可能的实施方式提供的方法的单元,例如生成单元、发送单元等。
第四方面,提供了一种数据传输装置,所述装置包括用于实现第二方面中任意一种可能的实施方式提供的方法的单元,例如接收单元、确定单元等。
第五方面,还提供了一种数据传输装置,所述装置包括:存储器、与存储器连接的处理器,所述存储器用于存储程序代码,当所述处理器用于运行或执行存储在所述存储器内的程序代码时,可以执行第一方面中任意一种可能的实施方式提供的方法。
第六方面,还提供了一种数据传输装置,所述装置包括:存储器、与存储器连接的处理器,所述存储器用于存储程序代码,当所述处理器用于运行或执行存储在所述存储器内的程序代码时,可以执行第二方面中任意一种可能的实施方式提供的方法。
第七方面,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令, 当该计算机可读存储介质在计算机上运行时,使得计算机执行上述第一方面或第一方面的任一可选方式所提供的方法;或者,当该计算机可读存储介质在计算机上运行时,使得计算机执行上述第二方面或第二方面的任一可选方式所提供的方法。
第八方面,还提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第一方面或第一方面的任一可选方式所提供的方法;或者,当该计算机程序产品在计算机上运行时,使得计算机执行上述第二方面或第二方面的任一可选方式所提供的方法。
第九方面,还提供了一种通信芯片,应用在通信设备中,所述通信芯片包括:处理器、存储器以及通信接口;所述处理器、存储器以及通信接口通过总线耦合,所述存储器用于存储程序指令,所述处理器通过执行存储在所述存储器内的程序指令使得装载有所述通信芯片的通信设备能够执行如上述第一方面或第二方面中任意一种可能的实施方式提供的方法。
第十方面,还提供了一种数据传输系统,所述系统包括发送端和接收端,所述发送端用于执行前述第一方面中任意一种可能的实施方式提供的方法,所述接收端用于执行前述第二方面中任意一种可能的实施方式提供的方法。
附图说明
图1是本发明实施例提供的一种数据传输方法的应用场景示意图;
图2是本发明实施例提供的一种通信设备的结构框图;
图3是本发明实施例提供的一种数据传输方法的流程图;
图4是本发明实施例提供的QUIC连接与流的关系的示意图;
图5是本发明实施例提供的封装了QUIC数据包的UDP数据包的结构示意图;
图6是现有的QUIC数据包包头的格式示意图;
图7是本发明实施例提供的QUIC数据包包头的格式示意图;
图8是本发明实施例提供的一种数据传输装置的结构示意图;
图9是本发明实施例提供的另一种数据传输装置的结构示意图;
图10是本发明实施例提供的一种数据传输系统的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
图1是本发明实施例提供的数据传输方法的应用场景示意图,参见图1,发送端11和接收端12之间通过无线接入点建立QUIC连接。如图1所示,发送端(即通信设备A)11和接收端(即通信设备B)12之间的QUIC连接上传输的数据可以通过至少两条路径进行传输,不同的路径可以基于不同的无线接入技术,也可以基于相同的无线接入技术。其中,无线接入技术包括但不限于Wi-Fi(Wireless Fidelity,无线高保真)、3GPP(3rd Generation Partnership Project,第三代合作伙伴计划)的3G、4G、5G及其后续演进技术等。例如,图1中,发送端11和接收端12之间存在两条路径,路径F1和路径F2,其中,路径F1基于 3GPP网络实现,路径F2基于Wi-Fi技术实现。
当不同的路径基于不同的无线接入技术时,可能通过不同的无线接入点进行接入,例如当采用Wi-Fi时,采用无线路由器13接入,当无线接入技术为3GPP的3G、4G、5G或其后续演进技术时,无线接入点可以为基站14(例如eNode B)。
每条路径可以由发送端的地址信息和接收端的地址信息决定,其中,发送端的地址信息包括IP地址和端口号中的至少一种,接收端的地址信息包括IP地址和端口号中的至少一种,若接收端和发送端的地址信息中的至少一项不同,即为不同的路径。例如,图1所示的发送端11和接收端12之间的两条路径中,路径F1的发送端11的地址信息为A2(IP地址)、PORT2,接收端的地址信息为B1(IP地址)和PORT1,路径F2的发送端的地址信息为A1(IP地址)、PORT1,接收端的地址信息为B2(IP地址)和PORT2。
在发送端通过该QUIC连接向接收端传输数据时,每个QUIC数据包的包头中会携带有数据包序号,发送端按照数据包序号从小到大的顺序依次将数据包通过QUIC连接发送出去。当一个QUIC连接传输的数据通过多条路径传输时,例如,数据包序号为1的数据包采用路径1传输,数据包序号为2和3的数据包采用路径2传输,由于不同路径的网络环境可能不同(例如数据包在不同的路径上经过的接入设备不同、数据包在不同的路径上传输时所经过的核心网网络实体不同等),所以不同路径的传输时延可能不同。在这种情况下,接收端可能先收到序号较大的数据包,后收到序号较小的数据包。当收到序号较大的数据包和收到序号较小的数据包之间的时间间隔大于一定值时,接收端可能认为该序号较小的数据包已丢失而向发送端发送了用于反馈当前已收到的数据包的确认包,若实际上该序号较小的数据包仅仅只是因为时延导致接收端暂时未收到,而发送端却根据该确认包确定该序号较小的数据包已丢失,并重传了该序号较小的数据包,将会造成传输资源的浪费。而若接收端发送确认包的时间间隔设置得过长,则可能造成接收端缓存区溢出,并且,当接收端没有收到某序号较小的数据包时,在等待的同时无法将已接收到的其他数据包及时上交到应用层,导致用户等待时间过长,严重影响用户体验。
需要说明的是,在图1所示场景中,发送端11是指发送数据的通信设备,接收端12是指接收数据的通信设备,也就是说,发送端和接收端是相对而言的。例如,当第一通信设备向第二通信设备发送数据时,第一通信设备是发送端,第二通信设备是接收端;当第二通信设备向第一通信设备发送数据时,第二通信设备是发送端,第一通信设备是接收端;当第一通信设备既向第二通信设备发送数据,又接收第二通信设备发送的数据时,第一通信设备和第二通信设备均既是发送端也是接收端。
其中,通信设备可以是终端设备或者服务器。终端设备包括但不限于手机、笔记本电脑、个人计算机等。
图2为本发明实施例提供的一种通信设备20的结构示意图。该通信设备可以实现为图1中的接收端或者发送端或者同时作为发送端和接收端。
参见图2,通信设备20可以包括一个或者一个以上核心的处理器21、包括一个或一个以上计算机可读存储介质的存储器22、以及通信接口23等部件,处理器21可以用总线与存储器22和通信接口23相连。本领域技术人员可以理解,图2中示出的结构并不构成对通信设备20的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的 部件布置。其中:
处理器21是通信设备20的控制中心,利用各种接口和线路连接整个通信设备20的各个部分,通过运行或执行存储在存储器22内的软件程序和/或应用程序模块,以及调用存储在存储器22内的数据,执行通信设备20的各种功能和处理数据,从而对通信设备20进行整体监控。可选地,处理器21可以包括一个或者一个以上处理单元,该处理单元可以是中央处理单元(Central Processing Unit,CPU)或者网络处理器(Network Processor,NP)等。
存储器22可用于存储各种数据,例如各种配置参数以及计算机指令,该计算机指令可以由处理器21执行。存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘、闪存,也可以是其他易失性固态存储器件。相应地,存储器22还可以包括存储器控制器,以提供处理器21对存储器22的访问。
通信接口23可以为收发器或者网络接口。收发器可以包括接收机Rx和发射机Tx,收发器还可以实现成为一通信芯片,通信芯片中可以包括接收模块、发射模块和调制解调模块等,用于对信息进行调制解调,并通过无线信号接收或发送该信息。
当通信设备20为发送端时,处理器21用于生成多个QUIC数据包,每个QUIC数据包中包括QUIC连接标识和包指示信息,所述多个QUIC数据包中的QUIC连接标识相同;控制通信接口23将所述多个QUIC数据包通过至少两条路径发送,其中,每个所述QUIC数据包中的包指示信息均用于指示QUIC数据包在所在的传输路径上的包序号。
当通信设备20为接收端时,处理器21用于接收发送端通过至少两条路径发送的多个QUIC数据包,每个QUIC数据包中包括QUIC连接标识和包指示信息,所述多个QUIC数据包中的QUIC连接标识相同,每个所述QUIC数据包中的包指示信息均用于指示QUIC数据包在所在的传输路径上的包序号;根据所述包指示信息,确定各条所述路径上传输的数据包中是否存在未收到的数据包。
图3是本发明实施例提供的一种数据传输方法的流程图,基于图1所示场景实现。参见图3,方法流程包括:
301:发送端与接收端之间建立QUIC连接。
其中,每个QUIC连接均具有唯一的QUIC ID(Identifier,标识)。
发送端与接收端之间建立QUIC连接的方式可以参见现有的连接建立过程,在此省略详细描述。
302:发送端获取待传输数据。
该步骤302中,待传输数据为应用层数据,发送端获取待传输数据后,会将待传输数据进行分装重组(Segmentation and Reassembly)。进一步地,待传输数据包括至少两个流的数据,将待传输数据进行分装重组是指将每个流的数据分帧,其中,帧是采用QUIC连接进行数据传输中的最小数据单位,而流是指一个QUIC连接中传递的数据的逻辑集合。实际应用中,每个流均具有唯一的流标识符。
以客户端访问网页,服务器将网页上的数据均采用QUIC连接发送给客户端为例,网页上通常包括多个对象(object),例如文本、图片、音频等,其中每个对象都可以作为一个流,例如,一个图片对象作为一个流、一个音频对象作为一个流,一个文本对象作为一个流。而分装重组就是将每个流的数据进一步划分为帧。
如图4所示,一个QUIC连接40传输3个流的数据。每个流包括多个帧,例如,第一个流41包括帧1~3、第二个流42包括帧4~6,第三个流43包括帧7~8。需要说明的是,图4中的帧的序号仅仅用于区分不同的帧,并不代表帧之间的传输顺序。
实现时,对待传输数据进行分装重组需要考虑QUIC数据包数据大小的限制和要求。具体地,对于基于IPv6协议传输的QUIC数据包,要求其大小不能超过1350字节,对于基于IPv4协议传输的QUIC数据包,要求其大小不能超过1370字节,而对待传输数据进行分装重组是为了后续便于将数据封装成QUIC数据包,因此,分装重组时需要考虑QUIC数据包数据大小的限制和要求,至少满足,划分后的最小数据单位(即帧)的大小不能超过前述1350字节或者1370字节。
其中,同一个流中的QUIC帧的大小可以相同。不同的流中的QUIC帧的大小可以相同也可以不同。
303:发送端为各个流的数据确定传输路径。
在一种实施方式中,当待传输数据包括多个流的数据时,可以将相关的流的数据采用同一条路径传输,即将多个相关的流的数据的传输路径确定为同一条路径,从而可以减小不同路径传输性能不同对数据的使用造成影响。例如,同一部电影中的视频图像数据、音频数据以及字幕数据分别采用一个QUIC连接中的三个流传输,一个流传输视频图像数据、一个流传输音频数据、一个流传输字幕数据,将这三个相关的流采用同一路径传输。又例如,在网页访问时,可以网页中的一个图片以及该图片相关的文字描述分别采用一个QUIC连接中的两个流传输,并将这两个相关的流采用同一路径传输。在这种情况下,该步骤303可以包括:确定QUIC连接的各个流之间是否相关;将相关的流的数据的传输路径确定为同一条路径。
其中,确定各个流之间是否相关,可以采用以下方式:
第一种、可以根据待传输数据的应用层的包头中携带的指示信息来确定流的相关性。该指示信息可以为将指定字段的设定值。例如,相关的流的数据中可以携带相同的符号标识。实际应用中,可以在超文本传输协议(HTTP,HyperText Transfer Protocol)数据包的Content Type(内容类型)头域中携带该符号标识。相应地,发送端可以将具有相同的符号标记的数据所属的流确定为相关的流。
第二种,采用预设的关联规则来确定各个流之间是否相关。其中,预设的关联规则包括流与流之间的关联关系,可以以列表或者数据库的形式存储。进一步地,可以采用大数据分析的方式,确定出各个流之间的关联关系,例如,如果两个流的数据通常会关联使用,则为这两个流的数据设置关联关系。实际应用中,该关联关系可以为HTTP数据包的Content Type头域中的信息的关联关系。相应地,发送端可以先获取两个流中的HTTP数据包的Content Type头域中的信息,然后再与预设的关联规则中的各项关联关系信息相匹配,如果匹配成功,则表示两个流相关;若匹配不成功,则表示两个流不相关。其中,匹配成功是指预设的关联规则中包括了两个流的HTTP数据包的Content Type头域中的信息的关联关系。
在另一种实施方式中,还可以根据各个流对传输路径的传输性能要求,为各个流确定传输路径。此时,该步骤303可以包括:确定各个所述流的传输性能要求,所述传输性能要求包括传输时延、丢包率、误码率中的至少一种;根据各个流的传输性能要求为各个所 述流的数据确定传输路径。其中,确定各个流的传输性能要求可以采用以下方式:从预先保存的流的指示信息和传输性能要求的对应关系中获取各个流的传输性能要求,流的指示信息可以为HTTP数据包的Content Type(内容类型)头域中的信息。
实现时,对于各路径的传输时延,发送端可以根据已发送的数据包的发送时间和接收到的确认包中的对应的数据包的接收时间,确定各个数据包的传输时延,将同一路径上传输的多个数据包的传输时延的统计值(例如平均值)作为对应的路径的传输时延。对于各路径的丢包率,发送端可以根据确认包确定接收端接收到的数据包的数量,然后根据发送端自身发送的数据包的数量和确定出的接收端接收到的数据包的数量确定对应的路径的丢包率。对于误码率,发送端可以根据通过协议栈跨层通信从底层如物理层获取误码率统计数据来确定对应路径的误码率。
304:发送端为传输路径相同的流的数据添加携带同一路径标识的QUIC数据包包头,得到QUIC数据包。
其中,对于对应有多个流的路径,每个数据包中可以包括多个流中的至少两个流的QUIC帧。例如,如图5所示,一个UDP数据包包括UDP头(UDPHeader)、公共头(Common Header)(即QUIC数据包包头)以及属于不同流的QUIC帧,如图5中的流5中的帧1、流7中的帧1和流7中的帧2。每个数据包中携带的帧的数量可以根据实际需要设置,在此不做限定。
单个QUIC数据包中包括的QUIC帧所属的流可以为该路径对应的所有的流,即该路径对应的每个流均有QUIC帧携带在每个数据包中;或者,单个数据包中包括的QUIC帧所属的流可以为该路径对应的所有流中的一部分。并且,每个数据包中,属于不同流的QUIC帧的数量可以相同,也可以不同。
此外,每个QUIC数据包的QUIC数据包包头中均携带有QUIC连接标识和包指示信息,采用同一QUIC连接传输的QUIC数据包中的QUIC连接标识相同。包指示信息用于指示数据包在所在的传输路径上的包序号。也就是说,在本实施例中,发送端可以针对每条路径进行独立的数据包的排序,例如,路径1上的数据包的序号从1开始,依次递增;路径2上的数据包的序号同样也从1开始,依次递增。
进一步地,包指示信息可以包括路径标识和路径包序号,所述路径标识用于指示数据包的传输路径,所述路径包序号用于指示数据包在所在的传输路径上的包序号。
实际应用中,可以在数据包包头中新增字段来携带该包指示信息。示例性地,图6为现有的QUIC数据包包头的格式,图7为扩展后的QUIC数据包包头的格式。如图6所示,QUIC数据包包头中还包括类型(Type)字段、连接标识(Connection ID)字段、包序号(packet number)字段、版本(Version)字段和净荷(Payload)字段。其中,类型字段用于携带QUIC数据包类型以及其他头域信息,可以包括7个比特,连接标识字段用于指示QUIC连接的标识,可以采用64个比特;包序号字段用于指示数据包在QUIC连接传输的所有数据包中的序号,可以采用32个比特;版本字段用于指示目前QUIC使用的版本号,可以采用32个比特;净荷字段用于携带需要传输的数据。如图7所示,扩展后的QUIC数据包包头中增加了路径标识字段和路径包序号字段,其中路径标识字段用于指示数据包的传输路径,可以采用8个比特。路径包序号字段用于指示指示数据包在所在的传输路径上的包序号,可以采用32个比特。在其他实施例中,路径标识字段和路径包序号字段可以合并为一个字段,即 只采用一个字段来携带包指示信息。
需要说明的是,实际应用中,同一路径标识对应的实际路径可以是变化的,例如在第一时间段,路径标识A对应的路径是基于3GPP网络的路径,而在第一时间段之后的第二时间段,路径标识A对应的路径是基于WI-FI网络的路径。这是因为终端设备所在的位置可能会变化,同一网络的传输性能也可能在不同时刻会有所变化,这些都会导致不同的路径的传输条件(例如传输时延、丢包率等)发生变化,而对于确定采用同一路径传输的流,通常会希望能够在相同的传输条件下进行传输,因此,对于携带有同一路径标识的QUIC数据包可以在第一时间段采用第一传输路径传输,在第二时间段采用第二传输路径传输。当然,在一次数据传输过程中,同一路径标识对应的实际路径也可以是不变的。
需要说明的是,前述各字段所在的比特数仅为举例,可以根据实际需要设置。
可选地,扩展后的QUIC数据包包头中还携带有多径标识符,用于指示是否采用了多径传输,即是否采用了多于一条的路径来传输同一QUIC连接的数据。实现时,可以采用原QUIC数据包包头的类型字段中的一个比特来携带该多径标识符。
通过上述步骤302~304即可以生成多个QUIC数据包。
305:发送端将QUIC数据包采用对应的路径传输。
该步骤305包括:
为QUIC数据包添加路径标识对应的UDP包头,得到UDP数据包;
为UDP数据包添加IP包头,得到IP数据包;
根据IP包头和UDP包头发送IP数据包。
其中,UDP包头中包括源端口号和目的端口号,IP包头中包括源IP地址和目的IP地址。根据IP包头和UDP包头发送IP数据包,是指将IP数据包发送至目的IP地址和目的端口号对应的通信设备,即接收端。
如步骤304中所述,对于携带有相同的路径标识的QUIC数据包,在不同的时间段,可能添加的UDP包头和IP包头中的地址信息是不同的。发送端可以根据实际情况(路径的传输时延、丢包率等)确定。
306:接收端在该QUIC连接对应的各条路径上接收发送端发送的数据包。
307:接收端根据已收到的数据包的包信息,分别生成各条路径对应的确认包。
实际应用中,该确认包中包括SACK(SelectiveAcknowledgment,选择性确认)字段,该SACK字段中包括收到的数据包的信息。
需要说明的是,当同一路径标识对应的实际路径是固定不变的情况下,步骤307中路径对应的确认包可以是同一实际路径上的确认包,接收端可以按照路径标识或者路径对应的地址信息确定是否收到了同一路径上的数据包。当同一路径标识对应的实际路径可以变化的情况下,步骤307中路径对应的确认包是指同一路径标识对应的确认包。即接收端按照路径标识来确定是否收到了同一路径上发送的数据包。
308:接收端将确认包在对应的路径上发送给发送端。
309:发送端根据接收到的确认包确定各条路径上需要重传的数据包。
例如,发送端可以根据接收到的确认包确定在各条路径上已发送的数据包中,接收端没有接收到的数据包;然后根据设定的重传策略,从接收端没有接收到的数据包中,确定需要重传的数据包。其中,重传策略可以包括但不限于重要的数据包需要重传,不重要的 数据包不需要重传。
310:发送端对需要重传的数据包进行重传。
在一种实施方式中,该步骤310可以包括:
在需要重传的数据包的原传输路径上重传该需要重传的数据包。
在另一种实施方式中,该步骤310可以包括:
根据各条路径的传输性能确定用于重传的路径;
在确定出的用于重传的路径上重传需要重传的数据包。
其中,该传输性能可以为传输时延、丢包率、误码率中的一种或多种。确定传输时延、丢包率、误码率的方式可以参见前述步骤303,在此不再赘述。
实际应用中,可以在传输时延最小的路径上重传需要重传的数据包或者在丢包率最小的路径上重传需要重传的数据包。
参见图8,本发明实施例还提供了一种数据传输装置,该数据传输装置可以通过专用硬件电路,或者,软硬件的结合实现成为通信设备的全部或一部分。该装置包括:生成单元701和发送单元702。其中,生成单元701用于生成多个QUIC数据包,每个QUIC数据包中包括QUIC连接标识和包指示信息,所述多个QUIC数据包中的QUIC连接标识相同,所述包指示信息包括路径标识和路径包序号,所述路径标识用于指示数据包的传输路径,所述路径包序号用于指示数据包在所述传输路径上的包序号;发送单元702用于采用所述QUIC数据包对应的传输路径发送各个所述QUIC数据包,其中,所述多个QUIC数据包对应的传输路径包括至少两条路径。
可选地,该装置还包括获取单元703和确定单元704,获取单元703用于获取待传输数据,所述待传输数据包括所述QUIC连接的至少两个流的数据;所述确定单元704用于为各个所述流的数据确定传输路径;所述生成单元701用于为传输路径相同的流的数据添加携带同一路径标识的QUIC数据包包头,得到所述QUIC数据包。
在一种实施方式中,确定单元704用于确定各个所述流之间是否相关;将相关的流的数据的传输路径确定为同一条路径。进一步地,确定单元704用于根据各个所述流的数据中携带的标识,确定各个所述流之间是否相关;或者,根据各个预设的关联规则,确定各个所述流之间是否相关。
在另一种实施方式中,确定单元704用于确定各个所述流的传输性能要求,所述传输性能要求包括传输时延、丢包率、误码率中的至少一种;根据各个流的传输性能要求为各个所述流的数据确定传输路径。
可选地,所述装置还包括:接收单元705和重传单元706,其中,接收单元705用于接收接收端发送的确认包,所述确认包用于指示接收端在各条路径上接收到的数据包;重传单元705用于根据接收到的所述确认包,确定需要重传的数据包并重传所述需要重传的数据包。
进一步地,所述重传单元706用于根据各条路径的传输性能确定用于重传的路径,其中,所述传输性能包括传输时延、丢包率、误码率中的一种或多种;在确定出的用于重传的路径上重传需要重传的数据包;或者,所述重传单元706用于在所述需要重传的数据包的原传输路径上重传所述需要重传的数据包。
相关细节可结合参考图3-图5以及图6-图7的方法实施例。
需要说明的是,上述生成单元701、获取单元702和确定单元703可以由处理器实现或者,处理器执行存储器中的程序指令来实现,上述发送单元702、重传单元705可以由发送机Tx实现,或者处理器配合发送机Tx来实现,上述接收单元704可以由接收机Rx实现或者,处理器配合接收机Rx来实现。
参见图9,本发明实施例还提供了另一种数据传输装置,该数据传输装置可以通过专用硬件电路,或者,软硬件的结合实现成为通信设备的全部或一部分。该装置包括:接收单元801和确定单元802。其中,接收单元801用于接收发送端通过至少两条路径发送的多个QUIC数据包,每个QUIC数据包中包括QUIC连接标识和包指示信息,所述多个QUIC数据包中的QUIC连接标识相同,所述包指示信息包括路径标识和路径包序号,所述路径标识用于指示数据包的传输路径,所述路径包序号用于指示数据包在所述传输路径上的包序号;确定单元802用于根据所述包指示信息,确定各条所述路径上传输的数据包中是否存在未收到的数据包。
可选地,该装置还包括:发送单元803,用于向发送端发送确认包,所述确认包用于指示接收端在各条路径上接收到的数据包。
进一步地,所述发送单元803用于在各条所述路径上分别发送各自对应的确认包。
相关细节可结合参考图3-图5以及图6-图7的方法实施例。
需要说明的是,上述确定单元802可以由处理器实现或者,处理器执行存储器中的程序指令来实现。接收单元801和发送单元803可以由通信接口实现或者,通信接口结合处理器来实现。
参见图10,本发明实施例还提供了一种数据传输系统,该系统包括:发送端901和接收端902。
该系统还包括数据传输网络,例如WIFI网络、3GPP通信网络等。每种数据传输网络包括至少一个无线接入点,例如无线路由器、基站等。
需要说明的是:上述实施例提供的数据传输装置在进行数据传输时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据传输装置与数据传输方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件或者其组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以是存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、双绞线、光纤)或无线(例如红外、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多 个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质、或者半导体介质(例如固态硬盘(SSD))等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (23)

  1. 一种数据传输方法,其特征在于,所述方法包括:
    生成多个QUIC数据包,每个QUIC数据包中包括QUIC连接标识和包指示信息,所述多个QUIC数据包中的QUIC连接标识相同;
    将所述多个QUIC数据包通过至少两条路径发送,其中,每个所述QUIC数据包中的包指示信息均用于指示QUIC数据包在所在的传输路径上的包序号。
  2. 根据权利要求1所述的方法,其特征在于,所述生成多个QUIC数据包,包括:
    获取待传输数据,所述待传输数据包括所述QUIC连接的至少两个流的数据;
    为各个所述流的数据确定传输路径;
    为传输路径相同的流的数据添加携带同一路径标识的QUIC数据包包头,得到所述QUIC数据包。
  3. 根据权利要求2所述的方法,其特征在于,所述为各个所述流的数据确定传输路径,包括:
    确定各个所述流之间是否相关;
    将相关的流的数据的传输路径确定为同一条路径。
  4. 根据权利要求3所述的方法,其特征在于,所述确定各个流之间是否相关,包括:
    根据各个所述流的数据中携带的标识,确定各个所述流之间是否相关;或者,
    根据预设的关联规则,确定各个所述流之间是否相关。
  5. 根据权利要求2所述的方法,其特征在于,所述为各个所述流的数据确定传输路径,包括:
    确定各个所述流的传输性能要求,所述传输性能要求包括传输时延、丢包率、误码率中的至少一种;
    根据各个流的传输性能要求为各个所述流的数据确定传输路径。
  6. 根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
    接收接收端发送的确认包,所述确认包用于指示接收端在各条所述路径上接收到的数据包;
    根据接收到的所述确认包,确定需要重传的数据包;
    重传所述需要重传的数据包。
  7. 根据权利要求6所述的方法,其特征在于,所述重传所述需要重传的数据包,包括:
    根据各条路径的传输性能确定用于重传的路径,其中,所述传输性能包括传输时延、丢包率、误码率中的一种或多种;
    在确定出的用于重传的路径上重传需要重传的数据包;
    或者,所述重传所述需要重传的数据包,包括:
    在所述需要重传的数据包的原传输路径上重传所述需要重传的数据包。
  8. 一种数据传输方法,其特征在于,所述方法包括:
    接收发送端通过至少两条路径发送的多个QUIC数据包,每个QUIC数据包中包括QUIC连接标识和包指示信息,所述多个QUIC数据包中的QUIC连接标识相同,每个所述QUIC 数据包中的包指示信息均用于指示QUIC数据包在所在的传输路径上的包序号;
    根据所述包指示信息,确定各条所述路径上传输的数据包中是否存在未收到的数据包。
  9. 根据权利要求8所述的方法,其特征在于,所述方法还包括:
    向发送端发送确认包,所述确认包用于指示接收端在各条路径上接收到的数据包。
  10. 根据权利要求9所述的方法,其特征在于,所述向发送端发送确认包,包括:
    在各条所述路径上分别发送各自对应的确认包。
  11. 一种数据传输装置,其特征在于,所述装置包括:
    生成单元,用于生成多个QUIC数据包,每个QUIC数据包中包括QUIC连接标识和包指示信息,所述多个QUIC数据包中的QUIC连接标识相同;
    发送单元,用于将所述多个QUIC数据包通过至少两条路径发送,其中,每个所述QUIC数据包中的包指示信息均用于指示QUIC数据包在所在的传输路径上的包序号。
  12. 根据权利要求11所述的装置,其特征在于,所述装置还包括获取单元和确定单元,
    所述获取单元,用于获取待传输数据,所述待传输数据包括所述QUIC连接的至少两个流的数据;
    所述确定单元,用于为各个所述流的数据确定传输路径;
    所述生成单元,用于为传输路径相同的流的数据添加携带同一路径标识的QUIC数据包包头,得到所述QUIC数据包。
  13. 根据权利要求12所述的装置,其特征在于,所述确定单元用于确定各个所述流之间是否相关;将相关的流的数据的传输路径确定为同一条路径。
  14. 根据权利要求13所述的装置,其特征在于,所述确定单元用于根据各个所述流的数据中携带的标识,确定各个所述流之间是否相关;或者,根据各个预设的关联规则,确定各个所述流之间是否相关。
  15. 根据权利要求12所述的装置,其特征在于,所述确定单元用于确定各个所述流的传输性能要求,所述传输性能要求包括传输时延、丢包率、误码率中的至少一种;根据各个流的传输性能要求为各个所述流的数据确定传输路径。
  16. 根据权利要求11-15任一项所述的装置,其特征在于,所述装置还包括:
    接收单元,用于接收接收端发送的确认包,所述确认包用于指示接收端在各条路径上接收到的数据包;
    重传单元,用于根据接收到的所述确认包,确定需要重传的数据包并重传所述需要重传的数据包。
  17. 根据权利要求16所述的装置,其特征在于,所述重传单元用于根据各条路径的传输性能确定用于重传的路径,其中,所述传输性能包括传输时延、丢包率、误码率中的一种或多种;在确定出的用于重传的路径上重传需要重传的数据包;或者,所述重传单元用于在所述需要重传的数据包的原传输路径上重传所述需要重传的数据包。
  18. 一种数据传输装置,其特征在于,所述装置包括:
    接收单元,用于接收发送端通过至少两条路径发送的多个QUIC数据包,每个QUIC数据包中包括QUIC连接标识和包指示信息,所述多个QUIC数据包中的QUIC连接标识相同,每个所述QUIC数据包中的包指示信息均用于指示QUIC数据包在所在的传输路径上的包序号;
    确定单元,用于根据所述包指示信息,确定各条所述路径上传输的数据包中是否存在未收到的数据包。
  19. 根据权利要求18所述的装置,其特征在于,所述装置还包括:
    发送单元,用于向发送端发送确认包,所述确认包用于指示接收端在各条路径上接收到的数据包。
  20. 根据权利要求19所述的装置,其特征在于,所述发送单元用于在各条所述路径上分别发送各自对应的确认包。
  21. 一种数据传输装置,其特征在于,所述装置包括:存储器、与存储器连接的处理器,所述存储器用于存储程序代码,当所述处理器用于运行或执行存储在所述存储器内的程序代码时,执行如权利要求1-7任一项所述的方法。
  22. 一种数据传输装置,其特征在于,所述装置包括:存储器、与存储器连接的处理器,所述存储器用于存储程序代码,当所述处理器用于运行或执行存储在所述存储器内的程序代码时,执行如权利要求8-10任一项所述的方法。
  23. 一种数据传输系统,其特征在于,所述系统包括发送端和接收端,所述发送端用于执行权利要求1-7任一项所述的方法,所述接收端用于执行如权利要求8-10任一项所述的方法。
PCT/CN2019/072180 2018-01-25 2019-01-17 数据传输方法、装置和系统 WO2019144836A1 (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
BR112020015127-0A BR112020015127A2 (pt) 2018-01-25 2019-01-17 Método, aparelho, e sistema de transmissão de dados
EP19743300.6A EP3737016A4 (en) 2018-01-25 2019-01-17 DATA TRANSFER METHOD, DEVICE AND SYSTEM
US16/938,420 US20200358886A1 (en) 2018-01-25 2020-07-24 Data Transmission Method, Apparatus, And System

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201810073548.7 2018-01-25
CN201810073548.7A CN110086578B (zh) 2018-01-25 2018-01-25 数据传输方法、装置和系统

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/938,420 Continuation US20200358886A1 (en) 2018-01-25 2020-07-24 Data Transmission Method, Apparatus, And System

Publications (1)

Publication Number Publication Date
WO2019144836A1 true WO2019144836A1 (zh) 2019-08-01

Family

ID=67395266

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/072180 WO2019144836A1 (zh) 2018-01-25 2019-01-17 数据传输方法、装置和系统

Country Status (5)

Country Link
US (1) US20200358886A1 (zh)
EP (1) EP3737016A4 (zh)
CN (2) CN110086578B (zh)
BR (1) BR112020015127A2 (zh)
WO (1) WO2019144836A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022218132A1 (zh) * 2021-04-15 2022-10-20 华为技术有限公司 路由更新方法、装置及系统
WO2022233400A1 (en) * 2021-05-04 2022-11-10 Huawei Technologies Co., Ltd. Data transmission controllers and methods to generate data transmission packets according to modified quic protocol

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3844924A1 (en) * 2018-08-31 2021-07-07 Telefonaktiebolaget LM Ericsson (publ) Management of acknowledgement signalling in a multi-point communication system
CN111200830B (zh) * 2020-01-02 2022-04-26 腾讯科技(深圳)有限公司 数据传输方法及装置、电子设备
CN111901075B (zh) * 2020-07-16 2021-11-23 华中科技大学 多网络融合传输方法、传输系统及计算机可读存储介质
KR102345473B1 (ko) * 2020-11-30 2021-12-30 경북대학교 산학협력단 사물 인터넷 서비스를 제공하기 위한 QUIC-Proxy를 이용한 데이터 전달 방법 및 장치
CN114697240A (zh) * 2020-12-31 2022-07-01 华为技术有限公司 数据传输方法、装置、系统及存储介质
CN112637242A (zh) * 2021-01-06 2021-04-09 新华三技术有限公司 一种数据传输方法、装置、电子设备及存储介质
CN114765494A (zh) * 2021-01-14 2022-07-19 瑞昱半导体股份有限公司 具有数据重用机制的数据传输方法及装置
CN115529336A (zh) * 2021-06-25 2022-12-27 华为技术有限公司 数据传输的方法、系统、设备和存储介质
WO2023272702A1 (zh) * 2021-07-01 2023-01-05 Oppo广东移动通信有限公司 用于无线投屏的数据传输方法、装置、设备及存储介质
US11968115B2 (en) * 2021-10-31 2024-04-23 Avago Technologies International Sales Pte. Limited Method for verifying data center network performance
CN114640574B (zh) * 2022-02-28 2023-11-28 天翼安全科技有限公司 一种主备设备的切换方法及装置
CN114785873A (zh) * 2022-04-20 2022-07-22 陕西科技大学 一种广播发射机远程控制系统
CN115118392A (zh) * 2022-06-10 2022-09-27 网宿科技股份有限公司 D-sack的确定方法、处理器与通信系统
WO2024022335A1 (zh) * 2022-07-26 2024-02-01 抖音视界有限公司 数据传输方法、装置和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016048209A1 (en) * 2014-09-26 2016-03-31 Telefonaktiebolaget L M Ericsson (Publ) Forward error correction in cellular networks
CN106210924A (zh) * 2016-08-16 2016-12-07 北京东方嘉禾文化发展股份有限公司 视频网络传输控制方法和系统
CN106656909A (zh) * 2015-10-28 2017-05-10 瑞昱半导体股份有限公司 传输装置及其传输方法
WO2017087232A1 (en) * 2015-11-20 2017-05-26 Google Inc. Democratized cellular network connectivity through small cells

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0928086B8 (en) * 1997-05-13 2006-06-07 Matsushita Electric Industrial Co., Ltd. Packet transmitter
WO2010135860A1 (zh) * 2009-05-25 2010-12-02 华为技术有限公司 一种多载波ack信道分配的方法及设备
CN101719918A (zh) * 2009-11-27 2010-06-02 北京交通大学 一种改进的适用于多连接多路径的传输方法
MY166780A (en) * 2011-06-10 2018-07-23 Temasek Life Sciences Laboratory Ltd Genetic manipulation and expression system for pucciniomycotina and ustilaginomycotina subphyla
US9059932B2 (en) * 2011-11-03 2015-06-16 Qualcomm Incorporated Packet ordering based on delivery route changes in communication networks
US9026783B2 (en) * 2013-03-07 2015-05-05 Google Inc. Low latency server-side redirection of UDP-based transport protocols traversing a client-side NAT firewall
EP3016347B1 (en) * 2014-10-27 2019-02-13 Cisco Technology, Inc. Multipath provisioning of l4-l7 traffic in a network
FR3028124A1 (fr) * 2014-11-05 2016-05-06 Orange Procede de controle des politiques de trafic depuis un module de securite dans un terminal mobile
US9609078B2 (en) * 2015-03-24 2017-03-28 Fortinet, Inc. HTTP proxy
EP3437257B1 (en) * 2016-04-01 2020-11-11 Nokia Solutions and Networks Oy Dynamic experience management in communications

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016048209A1 (en) * 2014-09-26 2016-03-31 Telefonaktiebolaget L M Ericsson (Publ) Forward error correction in cellular networks
CN106656909A (zh) * 2015-10-28 2017-05-10 瑞昱半导体股份有限公司 传输装置及其传输方法
WO2017087232A1 (en) * 2015-11-20 2017-05-26 Google Inc. Democratized cellular network connectivity through small cells
CN106210924A (zh) * 2016-08-16 2016-12-07 北京东方嘉禾文化发展股份有限公司 视频网络传输控制方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3737016A4

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022218132A1 (zh) * 2021-04-15 2022-10-20 华为技术有限公司 路由更新方法、装置及系统
WO2022233400A1 (en) * 2021-05-04 2022-11-10 Huawei Technologies Co., Ltd. Data transmission controllers and methods to generate data transmission packets according to modified quic protocol

Also Published As

Publication number Publication date
BR112020015127A2 (pt) 2021-01-05
EP3737016A4 (en) 2021-03-03
CN110086578B (zh) 2021-06-01
EP3737016A1 (en) 2020-11-11
US20200358886A1 (en) 2020-11-12
CN110086578A (zh) 2019-08-02
CN113411313B (zh) 2023-03-17
CN113411313A (zh) 2021-09-17

Similar Documents

Publication Publication Date Title
WO2019144836A1 (zh) 数据传输方法、装置和系统
US20230083441A1 (en) Managing subpacket transmission and reception for advanced interactive services
CN113037440B (zh) 数据重传处理方法、装置、计算机设备和存储介质
WO2020155148A1 (zh) 一种传输数据的方法和装置
US9407734B2 (en) System and method for efficient frame aggregation based on aggregation limits or parameters
US11483225B2 (en) Technologies for out-of-order network packet management and selective data flow splitting
WO2019134383A1 (zh) 控制网络拥塞的方法、接入设备和计算机可读存储介质
WO2020048478A1 (zh) 一种传输控制方法和装置
WO2018113373A1 (zh) 一种数据传输方法及装置
US20180343182A1 (en) Network traffic capture analysis
WO2020147453A1 (zh) 数据传输方法及相关装置
CN109067796A (zh) 一种数据传输方法及装置
TW201737664A (zh) 集群精確限速方法和裝置
WO2019144802A1 (zh) 一种数据的传输方法及其相关设备
CN116074401B (zh) 一种在可编程交换机上的传输层协议实现方法
US10582410B2 (en) Predicting downlink throughput
WO2022143468A1 (zh) 数据传输方法、装置、系统及存储介质
WO2014100973A1 (zh) 视频处理方法、设备及系统
CN109873763A (zh) 一种通信方法及设备
WO2017067224A1 (zh) 一种报文处理方法及装置
Coudron Passive analysis for multipath TCP
Chen et al. An improved rudp for data transmission in embedded real-time system
Rajput et al. Comparing stream control and datagram congestion control with traditional transmission control protocol
WO2023213202A1 (zh) 通信方法和装置
Weinrank SCTP as an Universal Multiplexing Layer

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: 19743300

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2019743300

Country of ref document: EP

Effective date: 20200804

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: 112020015127

Country of ref document: BR

ENP Entry into the national phase

Ref document number: 112020015127

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20200724