WO2022143468A1 - 数据传输方法、装置、系统及存储介质 - Google Patents

数据传输方法、装置、系统及存储介质 Download PDF

Info

Publication number
WO2022143468A1
WO2022143468A1 PCT/CN2021/141242 CN2021141242W WO2022143468A1 WO 2022143468 A1 WO2022143468 A1 WO 2022143468A1 CN 2021141242 W CN2021141242 W CN 2021141242W WO 2022143468 A1 WO2022143468 A1 WO 2022143468A1
Authority
WO
WIPO (PCT)
Prior art keywords
measurement
unidirectional
path
paths
way
Prior art date
Application number
PCT/CN2021/141242
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 华为技术有限公司
Publication of WO2022143468A1 publication Critical patent/WO2022143468A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0858One way delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/06Generation of reports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/121Shortest path evaluation by minimising delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • 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/14Multichannel or multilink protocols
    • 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

Definitions

  • the present application relates to the field of communication technologies, and in particular, to a data transmission method, device, system, and storage medium.
  • Quick UDP Internet Connections are carried over the User Datagram Protocol (UDP)/Datagram Transport Layer Security (DTLS) protocol.
  • UDP User Datagram Protocol
  • DTLS Datagram Transport Layer Security
  • a QUIC packet includes a packet header and a frame packet.
  • the stream frame is a special type of frame in the QUIC packet, which is used to distinguish different service streams that carry an application.
  • the service stream is an audio and video service stream.
  • application text service flow or application layer control protocol service flow On the basis of the QUIC protocol, a unidirectional path used in transmission is extended to multiple unidirectional paths, thus forming the Multipath Quick UDP Internet Connection (MPQUIC) protocol.
  • MPQUIC Multipath Quick UDP Internet Connection
  • a QUIC session can create multiple connections (Connections), that is, paths.
  • the packets of a service flow can be transmitted on different connections, and even round-trip connections on the same physical link can be defined as different unidirectional connections.
  • the two parties interacting based on the MPQUIC protocol independently perform connection scheduling and routing when sending packets. If the data scheduling strategy of min-RTT-First (minRTT) is still used for scheduling in the scenario where the two ends of the multipath are independently selected, the scheduling error will be large and the transmission performance of the multipath transmission will be affected.
  • minRTT-First min-RTT-First
  • a data transmission method, device, system and storage medium are proposed.
  • the message receiving end that is, the first device, actively initiates a measurement request, and determines the second device through three interactions with the message sending end, that is, the second device. measure the corresponding one-way transmission delays of multiple one-way paths to the first device, and notify the second device of the measurements, so that the second device can schedule and select the one-way path with the smallest one-way transmission delay
  • Data transmission is performed to ensure the transmission performance of multi-path transmission.
  • an embodiment of the present application provides a data transmission method for use in a first device, where multiple unidirectional paths are established between the first device and the second device, and the method includes:
  • a measurement result announcement is sent to the second device, where the measurement result announcement is used to indicate the unidirectional path with the smallest unidirectional transmission delay or the numerical value or ranking result of the unidirectional transmission delay corresponding to each of multiple unidirectional paths.
  • multiple unidirectional paths are established between the first device and the second device, the first device sends a measurement request to the second device, and after receiving the measurement responses sent respectively on the multiple unidirectional paths , determine the measurement result advertisement according to the corresponding one-way transmission delays of the multiple one-way paths, and send the measurement result advertisement to the second device, where the measurement result advertisement is used to indicate the one-way path with the smallest one-way transmission delay or multiple one-way transmission delays.
  • the numerical value or sorting result of the corresponding one-way transmission delay of each direction path so that the subsequent second device can select the corresponding one-way path for data packet transmission according to the algorithm of the minimum one-way transmission delay priority according to the measurement result notification.
  • the accuracy of data scheduling is ensured and the transmission performance of multi-path transmission is guaranteed.
  • Identify measurement results announcements including:
  • the round-trip path After receiving the measurement response sent on each one-way path, determine the round-trip delay (Round-Trip Time, RTT) of the round-trip path corresponding to the measurement response.
  • the round-trip path includes the one-way path for transmitting the measurement request and the one-way path;
  • the one-way path identifiers and round-trip delays corresponding to the multiple round-trip paths determine the value or sorting result of the one-way transmission delays corresponding to the multiple one-way paths.
  • the one-way path identifier is used to indicate the one-way transmission measurement response. path;
  • the measurement result announcement is determined according to the numerical value or the sorting result of the corresponding one-way transmission delay of the multiple one-way paths.
  • the first device after receiving the measurement response sent on each one-way path, determines the round-trip delay of the round-trip path corresponding to the measurement response, and determines the round-trip delay of the round-trip path corresponding to the measurement response.
  • Delay determine the value or sorting result of the unidirectional transmission delay corresponding to each of the multiple unidirectional paths, so that the first device can accurately determine the unidirectional transmission delay corresponding to the multiple unidirectional paths from the second device to the first device. Measurement of transmission delay.
  • the method further includes:
  • the measurement sequence number corresponding to the measurement request and the sending time of the measurement request are recorded, and the measurement sequence number is used to indicate the current measurement task.
  • the first device records the measurement sequence number corresponding to the measurement request and the sending time of the measurement request, so that after the first device receives the measurement responses sent respectively on the multiple unidirectional paths, it can accurately estimate and compare the multiple single The corresponding one-way transmission delay of each direction path.
  • the measurement response carries a one-way path identifier, a measurement sequence number, and a local processing delay, where the local processing delay is the difference between the moment when the second device sends the measurement response and the moment when the measurement request is received.
  • the second device sends a measurement response to each unidirectional path to the first device, where the measurement response carries the unidirectional path identifier, the measurement sequence number, and the local processing delay, so as to ensure the subsequent calculation by the first device Accuracy of one-way transmission delay.
  • the fourth possible implementation manner of the first aspect after receiving the measurement response sent on each unidirectional path, determine the corresponding measurement response.
  • the round-trip delay of the round-trip path including:
  • the round-trip delay of the round-trip path corresponding to the measurement response is determined.
  • the first device determines the corresponding measurement response according to the reception time of the measurement response, the transmission time of the measurement request, and the local processing delay carried by the measurement response.
  • the round-trip delay of the round-trip path so that the one-way transmission delay of the one-way path from the second device to the first device in the round-trip path can be accurately determined subsequently.
  • sending a measurement request to the second device includes:
  • the notification message After receiving the notification message sent by the second device, send a measurement request to the second device, where the notification message is used to indicate that the number of one-way paths from the second device to the first device has changed; or,
  • a measurement request is sent to the second device according to a preconfigured or predefined measurement period.
  • the first device triggers the measurement task of the one-way transmission delay measurement when sensing the connection newly added event, that is, the measurement task is triggered based on the connection newly added event; or, the first device according to the pre-configured Or send a measurement request to the second device in a predefined measurement period, that is, the measurement task is triggered periodically, which reduces unnecessary measurement procedures and network overhead.
  • the method further includes:
  • the measurement responses respectively sent on the multiple unidirectional paths are received.
  • the first device starts the first timer of this measurement task after sending the measurement request to wait for the second device to send the measurement responses on multiple one-way paths respectively, so as to avoid waiting for a long time for reception This saves network overhead and ensures the controllability and reliability of this measurement task.
  • the measurement result advertisement includes a list of unidirectional path identifiers or a unidirectional path identifier of a unidirectional path with the smallest unidirectional transmission delay, and a list of unidirectional path identifiers.
  • a numerical value or ranking result used to indicate the corresponding one-way transmission delays of multiple one-way paths.
  • the measurement result notification may include a list of unidirectional path identifiers, and the unidirectional path identifier list is used to indicate the numerical value or sorting result of the one-way transmission delay corresponding to each of the multiple unidirectional paths, so that the first device can follow the
  • the currently available one-way path selected in the one-way path identifier list is used for data transmission;
  • the measurement result channel may also include the one-way path identifier of the one-way path with the smallest one-way transmission delay, so that the subsequent first device can perform data transmission in the currently available one-way path. Data is transmitted on the one-way path with the smallest transmission delay, which improves the transmission performance of multi-path transmission.
  • the measurement result notification is used to indicate The numerical value or ranking result of the one-way transmission delay corresponding to each of the multiple one-way paths, after sending the measurement result notification to the second device, further includes:
  • the second device selects the available one-way paths as the second one-way paths in the order of the one-way transmission delay from small to large, the second device sends data packets on the second one-way path, and the first device Receive data packets sent on the second unidirectional path; that is, the unidirectional path with the smallest unidirectional transmission delay is preferentially selected as the second unidirectional path.
  • the unidirectional path When the remaining bandwidth on the unidirectional path is insufficient, the unidirectional path An available unidirectional path with the smallest possible unidirectional transmission delay is selected as the second unidirectional path in order of the transmission delay from small to large, which further improves the transmission performance of multi-path transmission.
  • the measurement result notification is used to indicate The one-way path with the smallest one-way transmission delay, after sending the measurement result notification to the second device, further includes:
  • the second device uses the unidirectional path with the smallest unidirectional transmission delay as the third unidirectional path, sends data packets on the third unidirectional path, and the corresponding first device receives the data packets on the third unidirectional path.
  • the data packet sent to the path; the second device can directly send the data packet on the one-way path with the smallest one-way transmission delay, which further improves the transmission performance of multi-path transmission.
  • the measurement is sent to the second device requests, including:
  • a measurement request is sent to the second device on the first unidirectional path, where the first unidirectional path is any one of multiple unidirectional paths from the first device to the second device.
  • the first device selects any one of the unidirectional paths from the first device to the second device as the first unidirectional path, and sends the first unidirectional path to the second device once.
  • the measurement request enables the second device to feed back multiple measurement responses by sending a measurement request, so as to realize the measurement and comparison of the unidirectional transmission delay corresponding to each of the subsequent multiple unidirectional paths, and improve the measurement efficiency of the unidirectional transmission delay.
  • the unidirectional path includes MPQUIC A connection or unidirectional flow of a protocol.
  • a data transmission method based on the MPQUIC protocol is provided, which does not rely on network time protocols such as the IEEE1588 protocol to achieve the measurement and comparison of the corresponding one-way transmission delays of multiple one-way paths, so that the MPQUIC sender can
  • the scheduling selects the currently available one-way path with the smallest one-way transmission delay for data transmission, which ensures the transmission performance of the multi-path transmission of the MPQUIC protocol.
  • an embodiment of the present application provides a data transmission method for use in a second device, where multiple unidirectional paths are established between the first device and the second device, and the method includes:
  • a measurement result announcement sent by the first device is received, where the measurement result announcement is used to indicate the unidirectional path with the smallest unidirectional transmission delay or the numerical value or ranking result of the unidirectional transmission delay corresponding to each of multiple unidirectional paths.
  • the measurement response carries a one-way path identifier, a measurement sequence number, and a local processing delay
  • the one-way path identifier is used to indicate the one-way path for transmitting the measurement response
  • the measurement sequence number is used to indicate the current measurement task
  • the local processing delay is the difference between the moment when the second device sends the measurement response and the moment when the measurement request is received value.
  • the method further includes:
  • a notification message is sent to the first device.
  • the method further includes:
  • the measurement result notification is received before the second measurement timeout time indicated by the second timer.
  • the measurement result advertisement includes a list of unidirectional path identifiers or a unidirectional path identifier of a unidirectional path with the smallest unidirectional transmission delay, and a list of unidirectional path identifiers.
  • a numerical value or ranking result used to indicate the corresponding one-way transmission delays of multiple one-way paths.
  • the measurement result notification is used to indicate The numerical value or ranking result of the corresponding one-way transmission delays of the multiple one-way paths, and the method further includes:
  • the measurement result notification is used to indicate The one-way path with the smallest one-way transmission delay
  • the method further includes:
  • the data packet is sent to the first device on a third unidirectional path, where the third unidirectional path is a unidirectional path with the smallest unidirectional transmission delay.
  • the Measurement requests including:
  • a measurement request sent by the first device on a first unidirectional path is received, where the first unidirectional path is any one of multiple unidirectional paths from the first device to the second device.
  • the unidirectional path includes the MPQUIC protocol connection or unidirectional flow.
  • an embodiment of the present application provides a data transmission method, characterized in that, in a data transmission system including a first device and a second device, a plurality of One-way path, the method includes:
  • the first device sends a measurement request to the second device
  • the second device After receiving the measurement request sent by the first device, the second device sends measurement responses respectively on multiple unidirectional paths;
  • the first device After receiving the measurement responses sent on the multiple unidirectional paths, the first device determines the measurement result announcement according to the corresponding unidirectional transmission delays of the multiple unidirectional paths;
  • the first device sends a measurement result notification to the second device
  • the second device receives the measurement result notification sent by the first device
  • the measurement result announcement is used to indicate the unidirectional path with the smallest unidirectional transmission delay or the numerical value or ranking result of the unidirectional transmission delay corresponding to each of multiple unidirectional paths.
  • the first device after receiving the measurement responses sent respectively on the multiple unidirectional paths, the first device, according to the corresponding unidirectional paths of the Announcement of transmission delay determination measurement results, including:
  • the first device After receiving the measurement response sent on each one-way path, the first device determines the round-trip delay of the round-trip path corresponding to the measurement response, and the round-trip path includes the one-way path for transmitting the measurement request and the one-way path for transmitting the measurement response;
  • the first device determines the value or ranking result of the one-way transmission delay corresponding to each of the multiple one-way paths according to the one-way path identifiers and the round-trip delays corresponding to the multiple round-trip paths, and the one-way path identifier is used to indicate the transmission measurement response a one-way path;
  • the first device determines the measurement result announcement according to the numerical value or the sorting result of the one-way transmission delay corresponding to each of the multiple one-way paths.
  • the method further includes:
  • the first device records the measurement sequence number corresponding to the measurement request and the sending time of the measurement request, and the measurement sequence number is used to indicate the current measurement task.
  • the measurement response carries the one-way path identifier, the measurement sequence number, and the local processing delay, and the local processing delay is the first. The difference between the moment when the second device sends the measurement response and the moment when the measurement request is received.
  • the first device after receiving the measurement response sent on each unidirectional path, determines the corresponding measurement response.
  • the round-trip delay of the round-trip path including:
  • the first device After receiving the measurement response sent on each one-way path, the first device records the reception time of the measurement response;
  • the first device determines the round-trip delay of the round-trip path corresponding to the measurement response according to the reception time of the measurement response, the transmission time of the measurement request, and the local processing delay carried by the measurement response.
  • the method further includes:
  • the second device sends a notification message to the first device
  • the first device sends a measurement request to the second device, including:
  • the first device After receiving the notification message sent by the second device, the first device sends a measurement request to the second device.
  • the first device sends a measurement request to the second device, including:
  • the first device sends a measurement request to the second device according to a preconfigured or predefined measurement period.
  • the method further includes:
  • the first device starts the first timer of this measurement task after sending the measurement request
  • the first device receives the measurement responses sent respectively on the multiple unidirectional paths before the first measurement timeout time indicated by the first timer.
  • the method further includes:
  • the second device starts the second timer of this measurement task after receiving the measurement request
  • the second device receives the measurement result notification before the second measurement timeout time indicated by the second timer.
  • the measurement result advertisement includes a list of unidirectional path identifiers or a unidirectional path identifier of a unidirectional path with the smallest unidirectional transmission delay, and a list of unidirectional path identifiers.
  • a numerical value or ranking result used to indicate the corresponding one-way transmission delays of multiple one-way paths.
  • the measurement result notification is used to indicate The numerical value or sorting result of the one-way transmission delay corresponding to each of the multiple one-way paths, after the second device receives the measurement result notification sent by the first device, it further includes:
  • the second device selects the currently available second one-way path in descending order of one-way transmission delay
  • the second device sends a data packet to the first device on the second unidirectional path
  • the first device receives the data packet sent by the second device on the second unidirectional path.
  • the measurement result notification is used for Indicates the one-way path with the smallest one-way transmission delay.
  • the second device sends the data packet to the first device on a third unidirectional path, and the third unidirectional path is a unidirectional path with the smallest unidirectional transmission delay;
  • the first device receives the data packet sent by the second device on the third unidirectional path.
  • the first device sends the The second device sends a measurement request, including:
  • the first device sends a measurement request to the second device on a first unidirectional path, where the first unidirectional path is any one of multiple unidirectional paths from the first device to the second device.
  • the one-way path includes A connection or unidirectional stream for the MPQUIC protocol.
  • an embodiment of the present application provides a data transmission apparatus for use in a first device, where multiple unidirectional paths are established between the first device and the second device, the apparatus includes: a processor; a memory storing processor-executable instructions; wherein the processor is configured to:
  • a measurement result announcement is sent to the second device, where the measurement result announcement is used to indicate the unidirectional path with the smallest unidirectional transmission delay or the numerical value or ranking result of the unidirectional transmission delay corresponding to each of multiple unidirectional paths.
  • the processor is further configured to:
  • the round-trip path After receiving the measurement response sent on each one-way path, determine the round-trip delay of the round-trip path corresponding to the measurement response, and the round-trip path includes the one-way path for transmitting the measurement request and the one-way path for transmitting the measurement response;
  • the one-way path identifiers and round-trip delays corresponding to the multiple round-trip paths determine the value or sorting result of the one-way transmission delays corresponding to the multiple one-way paths.
  • the one-way path identifier is used to indicate the one-way transmission measurement response. path;
  • the measurement result announcement is determined according to the corresponding one-way transmission delay values or ranking results of the multiple one-way paths.
  • the processor is further configured to:
  • the measurement sequence number corresponding to the measurement request and the sending time of the measurement request are recorded, and the measurement sequence number is used to indicate the current measurement task.
  • the measurement response carries the unidirectional path identifier, the measurement sequence number, and the local processing delay, and the local processing The delay is the difference between the moment when the second device sends the measurement response and the moment when the measurement request is received.
  • the processor is further configured to:
  • the round-trip delay of the round-trip path corresponding to the measurement response is determined.
  • the processor is further configured to:
  • the notification message After receiving the notification message sent by the second device, send a measurement request to the second device, where the notification message is used to indicate that the number of one-way paths from the second device to the first device has changed; or,
  • a measurement request is sent to the second device according to a preconfigured or predefined measurement period.
  • the processor is further configured to:
  • the measurement responses respectively sent on the multiple unidirectional paths are received.
  • the measurement result advertisement includes a list of unidirectional path identifiers or a unidirectional path identifier of a unidirectional path with the smallest unidirectional transmission delay, and a list of unidirectional path identifiers.
  • a numerical value or ranking result used to indicate the corresponding one-way transmission delays of multiple one-way paths.
  • the processor is further configured for:
  • the measurement result notification is used to indicate One-way path with minimum one-way transmission delay
  • the processor is also configured to:
  • the processor is further configured for:
  • a measurement request is sent to the second device on the first unidirectional path, where the first unidirectional path is any one of multiple unidirectional paths from the first device to the second device.
  • the unidirectional path includes MPQUIC A connection or unidirectional flow of a protocol.
  • an embodiment of the present application provides a data transmission apparatus, which is used in a second device, and multiple unidirectional paths are established between the first device and the second device, and the apparatus includes: a processor; a memory storing processor-executable instructions; wherein the processor is configured to:
  • a measurement result announcement sent by the first device is received, where the measurement result announcement is used to indicate the unidirectional path with the smallest unidirectional transmission delay or the numerical value or ranking result of the unidirectional transmission delay corresponding to each of multiple unidirectional paths.
  • the measurement response carries a one-way path identifier, a measurement sequence number, and a local processing delay
  • the one-way path identifier is used to indicate the one-way path for transmitting the measurement response
  • the measurement sequence number is used to indicate the current measurement task
  • the local processing delay is the difference between the moment when the second device sends the measurement response and the moment when the measurement request is received value.
  • the processor is further configured to:
  • a notification message is sent to the first device.
  • the processor is further configured to:
  • the measurement result notification is received before the second measurement timeout time indicated by the second timer.
  • the measurement result advertisement includes a list of unidirectional path identifiers or a unidirectional path identifier of a unidirectional path with the smallest unidirectional transmission delay, and a list of unidirectional path identifiers.
  • a numerical value or ranking result used to indicate the corresponding one-way transmission delays of multiple one-way paths.
  • the processor is further configured for:
  • the measurement result notification is used to indicate One-way path with minimum one-way transmission delay
  • the processor is also configured to:
  • the data packet is sent to the first device on a third unidirectional path, where the third unidirectional path is a unidirectional path with the smallest unidirectional transmission delay.
  • the processor is further configured for:
  • a measurement request sent by the first device on a first unidirectional path is received, where the first unidirectional path is any one of multiple unidirectional paths from the first device to the second device.
  • the unidirectional path includes the MPQUIC protocol connection or unidirectional flow.
  • an embodiment of the present application provides a data transmission device, the device includes at least one unit, and the at least one unit is configured to implement the first aspect or any one of the possible implementations of the first aspect. data transfer method.
  • an embodiment of the present application provides a data transmission device, the device includes at least one unit, and the at least one unit is configured to implement the second aspect or any one of the possible implementations of the second aspect. data transfer method.
  • embodiments of the present application provide a computer program product, comprising computer-readable codes, or a non-volatile computer-readable storage medium carrying computer-readable codes, when the computer-readable codes are stored in an electronic device
  • the processor in the electronic device executes the data transmission method provided by the first aspect or any one of the possible implementation manners of the first aspect.
  • embodiments of the present application provide a computer program product, comprising computer-readable codes, or a non-volatile computer-readable storage medium carrying computer-readable codes, when the computer-readable codes are stored in an electronic device
  • the processor in the electronic device executes the data transmission method provided by the second aspect or any one of the possible implementation manners of the second aspect.
  • embodiments of the present application provide a non-volatile computer-readable storage medium on which computer program instructions are stored, and when the computer program instructions are executed by a processor, the first aspect or the first aspect is implemented.
  • a data transmission method provided by any possible implementation.
  • embodiments of the present application provide a non-volatile computer-readable storage medium, on which computer program instructions are stored, and when the computer program instructions are executed by a processor, the second aspect or the second aspect is implemented
  • the data transmission method provided by any one of the possible implementations.
  • an embodiment of the present application provides a data transmission system, the data transmission system includes a first device and a second device, and multiple unidirectional paths are established between the first device and the second device; the third A device includes the data transmission device according to the fourth aspect, the second device includes the data transmission device according to the fifth aspect; or, the first device includes the data transmission device according to the sixth aspect, and the second device includes The data transmission device according to the above seventh aspect.
  • an embodiment of the present application provides a data transmission system, the data transmission system includes a first device and a second device, and multiple unidirectional paths are established between the first device and the second device; the data The transmission system is configured to execute the data transmission method provided by the third aspect or any one of the possible implementation manners of the third aspect.
  • FIG. 1 shows a flow chart of the process of calculating the two-way transmission delay in the related art.
  • FIG. 2 shows a schematic diagram of the architecture of a communication system provided by an embodiment of the present application.
  • FIG. 3 shows a flowchart of a data transmission method provided by an exemplary embodiment of the present application.
  • FIG. 4 shows a flowchart of a data transmission method provided by another exemplary embodiment of the present application.
  • FIG. 5 shows a flowchart of a data transmission method provided by another exemplary embodiment of the present application.
  • FIG. 6 shows a flowchart of a data transmission method provided by another exemplary embodiment of the present application.
  • FIG. 7 shows a block diagram of a data transmission apparatus provided by an exemplary embodiment of the present application.
  • FIG. 8 shows a block diagram of a data transmission apparatus provided by another exemplary embodiment of the present application.
  • FIG. 9 shows a schematic structural diagram of a first device provided by an exemplary embodiment of the present application.
  • FIG. 10 shows a schematic structural diagram of a second device provided by an exemplary embodiment of the present application.
  • the level of webpage delay will affect the quality of network services.
  • the level of network delay is one of the most important indicators to satisfy the service quality.
  • the first aspect is the head-of-line blocking problem.
  • the head-of-line blocking problem refers to the fact that HyperText Transfer Protocol (HTTP) requests or responses must follow a certain order. If the previous request or response is not completed, the next request or response cannot be performed.
  • HTTP HyperText Transfer Protocol
  • TCP Transmission Control Protocol
  • This technique is called "pipelining" (pipelining) , however, there are some problems in the HTTP/1.1 protocol. Although it can make continuous requests on a TCP connection, all responses must be received in order in the order in which the requests were sent, so a single slow response can block all subsequent responses.
  • the SPDY protocol (the predecessor of the HTTP/2 protocol) adopts a multiplexing method, that is, multiple requests or responses share a TCP connection, and the transmission of multiple requests or responses is parallel. In this way, there will be no head-of-line blocking at the application layer.
  • the problem of head-of-line blocking means that since the SPDY protocol is multiplexed on a TCP connection, and the TCP connection only supports sequential transmission, the missing data of one request will affect the transmission of other requested data.
  • the second aspect is the priority setting of network content. If all requests or responses are transmitted indiscriminately, some key requests may be blocked in the case of limited bandwidth. Therefore, in the application layer protocol, the SPDY protocol introduces the concept of request priority, so that requests with high priority Or get more bandwidth resources in response, thereby optimizing the delay of key requests in a targeted manner. There are also protocol improvements at the transport layer for prioritizing network content. However, prioritization at the TCP level puts the burden on the application layer to manage connections and allocate resources. As a multiplexing protocol, QUIC can provide management and resource allocation for multiple streams at the transport layer. This feature makes it possible to prioritize different streams.
  • the QUIC protocol multiplexes the transport layer: after the basic connection between the client and the server is established, for the transmission of each web page element, it provides a separate "stream" for data transmission, where the stream is also called for business flow.
  • the opening and closing of service flows are lightweight and will not affect the connections to which they belong, and the service flows are independent of each other and do not affect their respective transmissions.
  • QUIC packets are carried on the User Datagram Protocol (UDP)/Datagram Transport Layer Security (DTLS) protocol.
  • QUIC packets include packet headers and frame packets.
  • Stream frames as a special type of frames in QUIC packets, are used to distinguish different service flows that carry an application, such as audio and video service flows and application text services.
  • one unidirectional path used for transmission is extended to multiple unidirectional paths, thus forming the MPQUIC protocol.
  • a QUIC session can create multiple connections (Connections), that is, paths.
  • the packets of a service flow can be transmitted on different connections, and even round-trip connections on the same physical link can be defined as different unidirectional connections.
  • the two parties interacting based on the MPQUIC protocol independently perform connection scheduling and routing when sending packets.
  • the MPQUIC protocol is used to perform performance-prioritized scheduling and routing of the flow on multiple unidirectional paths, and the flow is mainly scheduled through the minRTT scheduler.
  • the scheduling using the minRTT scheduler includes: when transmitting data, for each packaged data packet, selecting a one-way path with the smallest current RTT for transmission. In a multipath scenario, the path with the smallest RTT is used first until its send window is filled, then the path with the second smallest RTT is used, and so on.
  • the scheduling algorithm relies on the calculation of RTT.
  • the calculation method of RTT usually includes the following two possible implementations:
  • NTP Network Time Protocol
  • IEEE Institute of Electrical and Electronics Engineers 1588 protocol
  • the receiving end compares the sending timestamp in the received QUIC message with the local time to calculate the one-way transmission delay.
  • the accuracy of calculating the one-way transmission delay depends on the time synchronization status of the device (such as whether Turn on the time synchronization function, whether to lock the time synchronization source, complete synchronization calibration, etc.) and the accuracy of time synchronization.
  • the two-way transmission delay is calculated.
  • RTT is used to adjust the packet sending window of the QUIC protocol, which can prevent congestion. is appropriate.
  • packets of the same service flow may choose different one-way paths to send, so in this scenario, the use of measured RTT has a certain value for congestion avoidance, but minRTT is used as a QUIC packet.
  • the routing and scheduling algorithm cannot effectively guarantee the performance-first forwarding.
  • the above-mentioned minimum one-way transmission delay can be used as the routing scheduling algorithm, but the typical timing accuracy of the NTP protocol is 10ms, and the error is large, which is not suitable as the basis for RTT calculation.
  • IEEE 1588 protocols generally require hardware support and are not yet popular enough on terminal devices. Therefore, the related art has not yet provided a reasonable and effective method to solve the above-mentioned technical problems.
  • the embodiment of the present application provides a solution for supporting measurement of one-way transmission delay in a multi-path transmission delay measurement scenario.
  • a first device sends a measurement request to a second device, and after receiving a After sending the measurement response, determine the measurement result announcement according to the corresponding one-way transmission delays of the multiple one-way paths, and send the measurement result announcement to the second device.
  • the measurement result announcement is used to indicate the one-way transmission delay with the smallest one-way transmission delay.
  • the numerical value or ranking result of the corresponding one-way transmission delay of the path or multiple one-way paths thus, in a network with certain time-domain inertial characteristics, the second device can be notified according to the measurement result according to the minimum one-way transmission delay priority.
  • the algorithm selects the corresponding unidirectional path for data packet transmission, which avoids that different unidirectional paths may be used in the related art because the transmission paths of the same service flow are not bound to and from the packet, resulting in invalid RTT measurement results.
  • the problem of applying minRTT scheduling algorithm improves the accuracy of data scheduling and ensures the transmission performance of multi-path transmission.
  • Path is the path between the sender and the receiver.
  • a path may be identified by a quadruple used to represent a source address (and/or port) and destination address (and/or port) pair. It should be understood that, both the receiving end and the sending end supporting the multi-path transmission technology can prepare multiple addresses in their hosts so as to identify multiple paths.
  • a unidirectional path is also called a connection or a unidirectional flow path.
  • a unidirectional path is called a connection (Connection) or a unidirectional flow (uniflow).
  • connection Connection
  • unidirectional flow unidirectional flow
  • Multipath connection A set of connections that can communicate between two hosts through an application, and the set of connections includes multiple connections. Wherein, there may be a one-to-one mapping between the connection and the socket of the application, or a many-to-one mapping.
  • a multipath connection is a connection that uses multiple paths to transmit data. For example, in the QUIC protocol, an application creates a socket, corresponding to a QUIC session (Session), in which multiple connections can be created, and the application may not be aware of the existence of multiple connections.
  • Session QUIC session
  • multiple unidirectional paths that is, multi-path connections
  • the multi-path connections include MPQUIC protocol connections or resource reservation protocols based on traffic engineering extensions (Resource ReSerVation Protocol-Traffic Engineering, RSVP-TE), or Label Distribution Protocol (LDP), or Border Gateway Protocol (Border Gateway Protocol, BGP)-Virtual Private Network (Virtual Private Network, VPN)/Ethernet Virtual Private Network (Ethernet Virtual Private Network, EVPN) created Label Switched Path (Label Switched Path, LSP), or Virtual Extensible Local Area Network (Virtual Extensible Local Area Network, VXLAN) tunnel, or Generic Routing Encapsulation (Generic Routing Encapsulation, GRE) tunnel.
  • traffic engineering extensions Resource ReSerVation Protocol-Traffic Engineering, RSVP-TE
  • LDP Label Distribution Protocol
  • Border Gateway Protocol Border Gateway Protocol
  • BGP Border Gateway Protocol-Virtual Private Network
  • VPN Virtual Private Network
  • Ethernet Virtual Private Network Ethernet Virtual Private Network
  • EVPN
  • the following mainly takes the multi-path connection between the first device and the second device including the MPQUIC protocol connection as an example for description.
  • the delay measurement scenario of multi-path transmission of non-MPQUIC protocol can be referred to the related description by analogy, and will not be repeated here.
  • Packet A packet of data with a header, which can be logically complete or incomplete. Usually, it is a physical packaging of data, of course, it can also be a logical packaging of data. The concept of a packet is used to describe the interaction of data between a host and the network connected to that host.
  • the ACK message also known as acknowledgment packet, acknowledgment message, ACK, feedback message, notification.
  • the ACK message includes the ACK frame or MP_ACK frame of the QUIC protocol, such as the sequence number of a certain data packet, which is usually used to indicate that the receiving end notifies the sending end that the data packet has been received.
  • RTT Indicates the time delay experienced by the sender from the time it sends data until it receives the acknowledgement information (such as an ACK message) corresponding to the data sent by the receiver.
  • the first device/second device is a physical device or a virtual device.
  • a physical device refers to a physical device that actually exists
  • a virtual device refers to a device represented by a plurality of corresponding logical devices transformed from a physical device
  • a logical device refers to a mapping relationship with a physical device, and is represented by a logical device.
  • the mapping relationship may include a logical device name, a physical device name, and a device driver entry.
  • the first device and the second device may be on the same physical device or in the same cluster.
  • FIG. 2 shows a schematic structural diagram of a communication system provided by an embodiment of the present application.
  • the communication system may include a first device 10 and a second device 20 .
  • Both the first device 10 and the second device 20 include multiple network addresses.
  • the first device 10 and the second device 20 can establish multiple unidirectional paths through the multiple network addresses of each other.
  • unidirectional path 1, unidirectional path 2, ..., unidirectional path N, N is a positive integer greater than 1.
  • the first device 10 and the second device 20 may perform multi-path data transmission through the plurality of unidirectional paths.
  • the multipath connection established between the first device 10 and the second device 20 includes an MPQUIC protocol connection.
  • the MPQUIC protocol is used to transmit data between the first device 10 and the second device 20 .
  • the one-way transmission delay corresponding to each of the multiple one-way paths from the second device 20 to the first device 10 can be measured, and the first device 10 can also be measured.
  • the respective one-way transmission delays corresponding to multiple one-way paths from one device 10 to the second device 20 can be measured.
  • the first device 10 sends a measurement request to the second device 20 as the packet receiving end, and the second device 20, as a message sender, responds to the measurement request sent by the first device 10.
  • the second device 20 sends a measurement request to the first device 10 as the packet receiving end, and the first device 10 responds to the measurement request sent by the second device 20 as a message sender.
  • the first device 10 is used as the message receiving end, and the second device 20 is the message sending end, and the unidirectional transmission of multiple unidirectional paths from the second device 20 to the first device 10 is measured.
  • the time delay is taken as an example to illustrate.
  • the first device 10 and the second device 20 negotiate a data scheduling policy.
  • the data scheduling policy negotiation is actively initiated by the packet receiving end, that is, the first device 10, and the first device 10 is used to send the data to the second device.
  • the device 20 sends a measurement request; after receiving the measurement responses sent on the multiple unidirectional paths, the measurement result announcement is determined according to the corresponding unidirectional transmission delays of the multiple unidirectional paths; the measurement result is sent to the second device 20 Announcement, the measurement result announcement is used to indicate the unidirectional path with the smallest unidirectional transmission delay or the numerical value or sorting result of the unidirectional transmission delay corresponding to each of multiple unidirectional paths.
  • the above-mentioned one-way path can be WiFi connection, cellular connection (such as 4G LTE connection, 5G NR connection, 3G connection, Code Division Multiple Access (CDMA), 2G connection, etc.), Bluetooth connection, data connection, etc.
  • the transmission line, near field communication NFC, infrared, light fidelity (Light Fidelity, Li-fi) technology, etc. may also be other wireless connections or wired connections, which are not limited in the embodiments of the present application.
  • the first device 10 and/or the second device 20 may be electronic devices with a wireless communication function.
  • the first device 10 and/or the second device 20 are smart devices, and the smart devices are configured to cooperate with a wireless Internet access (Wi-Fi) router to provide a configuration-free hotspot function as required.
  • Wi-Fi wireless Internet access
  • the first device 10 and/or the second device 20 are terminal devices, such as a mobile phone (mobile phone), a tablet computer (Pad), a computer with a transceiver function, and a virtual reality (virtual reality, VR) terminal device , Augmented reality (AR) terminal equipment, wireless terminals in industrial control, wireless terminals in self-driving, wireless terminals in remote medical (remote medical), smart grid ( Wireless terminals in smart grid), wireless terminals in transportation safety, wireless terminals in smart cities, wireless terminals in smart homes, wearable devices, in-vehicle devices, etc.
  • terminal devices such as a mobile phone (mobile phone), a tablet computer (Pad), a computer with a transceiver function, and a virtual reality (virtual reality, VR) terminal device , Augmented reality (AR) terminal equipment, wireless terminals in industrial control, wireless terminals in self-driving, wireless terminals in remote medical (remote medical), smart grid ( Wireless terminals in smart grid), wireless terminals in transportation safety, wireless terminals in smart
  • the first device 10 and/or the second device 20 may also be network elements supporting multi-path transmission protocols, including network-side devices, such as gateways, access routers, core routers, front-end routers, or load balancers.
  • the first device 10 and/or the second device 20 may also be cloud devices, such as servers, that support a multi-path transmission protocol.
  • the server is also called the server.
  • the server can serve the client.
  • the server can provide resources to the client and save the client data.
  • the first device 10 and the second device 20 may be the same type of devices.
  • both the first device 10 and the second device 20 may be communication terminal devices, such as mobile phones, smart watches, desktop computers, and tablet computers. , Smart TV Box, UMPC, Netbook, PDA or PMP, etc.
  • the first device 10 and the second device 20 may also be different types of devices.
  • the second device 20 may be a network-side device, such as a gateway, a server, an access router, a core router, a front-end router, or a load balancer.
  • FIG. 3 shows a flowchart of a data transmission method provided by an exemplary embodiment of the present application. This embodiment is exemplified by using the method in the communication system shown in FIG. 2 . The method includes the following steps.
  • Step 301 the first device sends a measurement request to the second device.
  • multiple unidirectional paths are established between the second device and the first device, that is, the sending path identifier of the second device is in one-to-one correspondence with the receiving path identifier of the first device, and the sending path identifier of the first device and the receiving path identifier of the first device are in one-to-one correspondence.
  • the receiving path identifiers of the second devices are also in one-to-one correspondence.
  • the measurement request is a measurement request frame, or the measurement request is a measurement request option or flag bit carried in the data packet.
  • the first device sends a measurement request frame to the second device.
  • the first device sends a data packet carrying a measurement request option or a flag bit to the second device.
  • data packets are also called QUIC packets, and data packets are QUIC packets including Stream frames or ACK/MP_ACK frames.
  • the first device sends a measurement request to the second device on a first unidirectional path, where the first unidirectional path is any one of multiple unidirectional paths from the first device to the second device.
  • the first unidirectional path is a unidirectional path with the smallest unidirectional transmission delay among multiple unidirectional paths from the first device to the second device.
  • Step 302 the second device receives the measurement request sent by the first device.
  • the second device receives a measurement request sent by the first device on a unidirectional path, where the unidirectional path is any available unidirectional path from the first device to the second device, or the unidirectional path is the first The unidirectional path with the smallest unidirectional transmission delay among the multiple unidirectional paths from the device to the second device.
  • the measurement request is used to instruct the second device to send measurement responses respectively on multiple unidirectional paths after receiving the measurement request.
  • Step 303 the second device sends measurement responses respectively on multiple unidirectional paths.
  • the second device After receiving the measurement request, the second device sends corresponding measurement responses on multiple unidirectional paths from the second device to the first device, where the measurement responses are the measurement responses corresponding to the measurement requests, and the measurement responses are used to indicate the first The second device successfully receives the measurement request.
  • the second device sends the measurement response on the unidirectional path.
  • the multiple unidirectional paths from the second device to the first device are all unidirectional paths from the second device to the first device or multiple unidirectional paths from the second device to the first device that are specified for measurement. This embodiment of the present application does not limit this.
  • any one of the multiple unidirectional paths for transmitting the measurement response is different from the unidirectional path for transmitting the measurement request.
  • one of the multiple unidirectional paths for transmitting the measurement response is the same as the unidirectional path for transmitting the measurement request.
  • the measurement response is a measurement response frame.
  • Step 304 After receiving the measurement responses sent on the multiple unidirectional paths, the first device determines the measurement result announcement according to the corresponding unidirectional transmission delays of the multiple unidirectional paths.
  • the first device After successively receiving the measurement responses sent on the multiple unidirectional paths, the first device measures and compares the unidirectional transmission delays corresponding to the multiple unidirectional paths. According to the unidirectional transmission delays corresponding to the multiple unidirectional paths Determine the measurement result announcement.
  • the first device determines a unidirectional path with the smallest unidirectional transmission delay among the multiple unidirectional paths.
  • the measurement and comparison of the unidirectional transmission delays corresponding to the multiple unidirectional paths may be based on the connection measurement without distinguishing the service flow, or may be based on the service flow measurement. If it is based on the connection measurement, the measurement result will take effect for the data scheduling and routing of all service flows. If it is based on the service flow measurement, the measurement result will only take effect for the data scheduling and routing of the service flow specified for measurement.
  • Step 305 the first device sends a measurement result notification to the second device, and the measurement result notification is used to indicate the value or ranking result of the one-way transmission delay corresponding to the one-way path with the smallest one-way transmission delay or multiple one-way paths.
  • the first device sends a measurement result advertisement on a unidirectional path from the first device to the second device, where the unidirectional path is any available unidirectional path from the first device to the second device, or a unidirectional path It is the one-way path with the smallest one-way transmission delay among the multiple one-way paths from the first device to the second device.
  • the sorting result of the unidirectional transmission delays corresponding to the multiple unidirectional paths includes a sorting order of the unidirectional transmission delays corresponding to the multiple unidirectional paths from small to large.
  • the sorting result of the one-way transmission delay includes the sorting order of the corresponding one-way transmission delays of multiple one-way paths from large to small. This embodiment of the present application does not limit this.
  • the measurement result announcement carries the measurement sequence number.
  • the measurement result announcement is a measurement result announcement frame.
  • Step 306 the second device receives the measurement result notification sent by the first device.
  • the second device receives the measurement result notification sent by the first device, and the measurement result notification is used by the second device to select the corresponding one-way path to send the datagram according to the algorithm that prioritizes the minimum one-way transmission delay when sending data packets to the first device. arts.
  • the measurement result announcement is used to indicate the unidirectional path with the smallest unidirectional transmission delay or the numerical value or ranking result of the unidirectional transmission delay corresponding to each of multiple unidirectional paths.
  • the multiple unidirectional paths are all unidirectional paths from the second device to the first device or multiple unidirectional paths from the second device to the first device that are specified for measurement. This embodiment of the present application does not limit this.
  • the unidirectional transmission delay corresponding to a unidirectional path that does not participate in the measurement is the largest by default.
  • the second device receives a measurement result notification sent by the first device on a unidirectional path, where the unidirectional path is any available unidirectional path from the first device to the second device, or the unidirectional path is the first unidirectional path.
  • the unidirectional path is any available unidirectional path from the first device to the second device, or the unidirectional path is the first unidirectional path.
  • the unidirectional path with the smallest unidirectional transmission delay.
  • any one of the multiple unidirectional paths for transmitting the measurement response is different from the unidirectional path for transmitting the measurement result advertisement.
  • one of the multiple unidirectional paths for transmitting the measurement response is the same as the unidirectional path for transmitting the measurement result advertisement.
  • the unidirectional path for transmitting the measurement request and the unidirectional path for transmitting the measurement result advertisement are the same unidirectional path, or two different unidirectional paths. This embodiment does not limit this.
  • the measurement result notification is used to indicate the value of the one-way transmission delay corresponding to each of the multiple one-way paths.
  • the numerical value sorts multiple one-way paths. After sorting, according to the order of one-way transmission delay from small to large, the corresponding one-way path is selected to send data packets according to the algorithm that prioritizes the smallest one-way transmission delay.
  • the measurement result notification is used to indicate the sorting result of the unidirectional transmission delays corresponding to the multiple unidirectional paths, for example, the sorting result includes the unidirectional transmission delays corresponding to the multiple unidirectional paths.
  • Sort order from small to large after the completion of this measurement task, the second device selects the corresponding one-way path to send datagrams according to the order of the one-way transmission delay from small to large and according to the algorithm that prioritizes the smallest one-way transmission delay arts.
  • the measurement result notification is used to indicate the one-way path with the smallest one-way transmission delay, then after this measurement task is completed, the second device will be in the one-way path with the smallest one-way transmission delay. Send data packets on the path.
  • the data frames (such as measurement request frames, measurement response frames, and measurement result notification frames) exchanged between the first device and the second device can be encapsulated into data packets and sent, and the data is received by the peer device. After the message is parsed, the data frame in it is obtained.
  • data packets are QUIC packets.
  • the first device actively initiates a measurement request through the message receiving end, and through three interactions with the second device, the second device is notified of multiple unidirectional paths from the second device to the first device.
  • the transmission delay priority algorithm selects the corresponding one-way path for data packet transmission, which avoids the possibility of using different one-way paths in the related art because the transmission paths of the same service flow are not bound to and from the round-trip, resulting in RTT.
  • the measurement results cannot effectively apply the minRTT scheduling algorithm, which improves the accuracy of data scheduling and ensures the transmission performance of multi-path transmission.
  • a measurement response is sent to all unidirectional paths to the first device, so that the first device can accurately determine a plurality of single measurements from the second device to the first device.
  • FIG. 4 shows a flowchart of a data transmission method provided by another exemplary embodiment of the present application. This embodiment is exemplified by using the method in the communication system shown in FIG. 2 . The method includes the following steps.
  • Step 401 the first device sends a measurement request to the second device, and records the measurement sequence number and sending time corresponding to the measurement request.
  • the measurement request is an operation trigger, an event trigger, or a periodic task trigger. That is, the triggering condition for the first device to send the measurement request to the second device, including but not limited to the following possible implementations:
  • the first device sends a measurement request to the second device when receiving the preset operation signal.
  • the first device sends a measurement request to the second device when sensing the preset trigger event.
  • the preset trigger event is a connection addition event between the first device and the second device
  • the connection addition event is an event in which the number of one-way paths from the second device to the first device changes.
  • the first device after receiving the notification message sent by the second device, the first device sends a measurement request to the second device. Add event.
  • the second device When the number of one-way paths from the second device to the first device changes, the second device sends a notification packet to the first device. After receiving the notification message sent by the second device, the first device sends a measurement request to the second device.
  • the first device when the number of unidirectional paths from the second device to the first device changes (for example, from three to four), the first device receives an MPQUIC advertisement packet sent by the second device, and the MPQUIC protocol advertisement packet It is used to indicate a new connection event or a one-way flow new event. After the connection is successful, this measurement task is triggered, that is, a measurement request is sent to the second device.
  • the MPQUIC protocol advertisement message is a QUIC message including a NEW_CONNECTION_ID/MP_NEW_CONN ECTION_ID frame, which is used to request the creation of a new connection.
  • the MPQUIC protocol notification message is a QUIC message including a UNIFLOWS frame, and the unidirectional flow ID (uinflow ID) in the UNIFLOWS frame is not created locally by the first device, and is used to request the creation of a new unidirectional flow.
  • the first device receives a BGP-VPN advertisement packet sent by the second device, and the BGP-VPN advertisement packet is used to indicate a label route addition event and trigger this measurement task, that is, send a measurement to the second device. ask.
  • the first device sends a measurement request to the second device according to a preconfigured or predefined measurement period.
  • the measurement period may be pre-configured, or may be a measurement period determined after the protocol interaction between the first device and the second device.
  • the measurement period is 5s.
  • the first device starts a timer after sensing the connection addition event for the first time, and sends a measurement request to the second device according to the measurement period.
  • this embodiment does not limit the triggering condition for sending the measurement request.
  • the first device interacts with the second device to complete the establishment of the QUIC session and the multi-path connection.
  • the first device triggers this measurement task, it generates a measurement request for this measurement task, sends the measurement request to the second device, and records the measurement sequence number and sending time corresponding to the measurement request.
  • the measurement request carries a measurement sequence number, and the measurement sequence number is used to indicate the current measurement task.
  • the initial value of the measurement sequence number is zero, and the corresponding measurement sequence number is incremented by one after the next measurement task is created.
  • the first device further records a unidirectional path identifier indicating a unidirectional path for transmitting the measurement request.
  • the unidirectional path identifier is a communication channel identifier (Communication Channel ID, CID).
  • the first device starts the first timer of this measurement task to wait for receiving the measurement responses sent by the second device on multiple unidirectional paths respectively.
  • the first device generates a measurement request frame of this measurement task, encapsulates the measurement request frame into a data packet, and sends the data packet to the second device.
  • the sending time corresponding to the measurement request is the time when the first device generates the measurement request frame.
  • the measurement request frame includes but is not limited to the following fields: a type field, a measurement sequence number field, and a timestamp field.
  • Type field which is used to indicate that the frame type is a measurement request frame.
  • the type field Type indicating the measurement request frame is TBD1, such as 0x80.
  • the measurement sequence number field which is a field indicating the measurement sequence number.
  • the measurement sequence number field is MeasureTask SN.
  • a timestamp field which is a field indicating the sending time of the measurement request.
  • the timestamp field is TimeStamp.
  • the timestamp field is optional.
  • the header of the data packet encapsulated in the measurement request frame carries at least the first unidirectional path identifier.
  • Step 402 the second device receives the measurement request sent by the first device.
  • the second device receives the measurement request sent by the first device, and records the reception time of the measurement request.
  • Step 403 the second device sends measurement responses on multiple unidirectional paths respectively.
  • the second device After the second device receives the measurement request sent by the first device, for each unidirectional path in the multiple unidirectional paths from the second device to the second device, the second device sends the measurement response on the unidirectional path.
  • the measurement response carries a one-way path identifier, a measurement sequence number, and a local processing delay.
  • the one-way path identifier is used to indicate a one-way path for transmitting the measurement response.
  • the local processing delay is the time when the second device sends the measurement response and receives the measurement. The difference between the requested moments.
  • the measurement response further carries the reception time of the measurement request, that is, the time at which the second device receives the measurement request.
  • the second device after receiving the measurement request, the second device starts a second timer of this measurement task, and is used for waiting to receive a measurement result notification sent by the first device. That is, before the second measurement timeout time indicated by the second timer, the second device receives the measurement result notification.
  • the second device For each unidirectional path in multiple unidirectional paths from the second device to the second device, the second device generates a measurement response frame corresponding to the unidirectional path, and encapsulates the measurement response frame into a data packet. , and send the data packet encapsulated by the measurement response frame on the unidirectional path.
  • the moment when the second device sends the measurement response is the moment when the second device generates the measurement response frame.
  • the measurement response frame includes but is not limited to the following fields: a type field, a measurement sequence number field, a timestamp field, and a delay field.
  • Type field which is used to indicate that the frame type is a measurement response frame.
  • the type field Type indicating the measurement response frame is TBD2, such as 0x81.
  • the measurement sequence number field which is a field indicating the measurement sequence number.
  • the measurement sequence number field is MeasureTask SN.
  • a timestamp field where the timestamp field is a field indicating the sending time of the measurement request and/or a field indicating the receiving time of the measurement request, for example, the timestamp field is TimeStamp.
  • the timestamp field is optional.
  • a delay field which is a field indicating the local processing delay.
  • the delay field is Delay.
  • Step 404 After receiving the measurement responses sent on the multiple unidirectional paths, the first device determines the measurement result announcement according to the corresponding unidirectional transmission delays of the multiple unidirectional paths.
  • the first device starts the first timer of this measurement task after sending the measurement request, and receives the measurements sent respectively on multiple unidirectional paths before the first measurement timeout time indicated by the first timer. answer.
  • the second device may retransmit the measurement response on the unidirectional path before the first measurement timeout.
  • the first device determines the round-trip delay of the round-trip path corresponding to the measurement response, and the round-trip path includes the one-way path for transmitting the measurement request and the one-way path for transmitting the measurement response.
  • Direction path according to the corresponding one-way path identifiers and round-trip delays of the multiple round-trip paths, determine the value or sorting result of the one-way transmission delays corresponding to the multiple one-way paths, and the one-way path identifiers are used to indicate the transmission measurement response.
  • the first device determines the measurement result announcement according to the numerical value or the sorting result of the one-way transmission delay corresponding to each of the multiple one-way paths.
  • the round-trip path corresponding to the measurement response includes a one-way path for transmitting the measurement request and a one-way path for transmitting the measurement response.
  • the round-trip delay of the round-trip path is the sum of the one-way transmission delay corresponding to the one-way path for transmitting the measurement request and the one-way transmission delay corresponding to the one-way path for transmitting the corresponding measurement response.
  • any one of the multiple unidirectional paths for transmitting the measurement response is different from the unidirectional path for transmitting the measurement request.
  • one of the multiple unidirectional paths for transmitting the measurement response is the same as the unidirectional path for transmitting the measurement request.
  • the first device After receiving the measurement response sent on each unidirectional path, the first device records the reception time of the measurement response; according to the reception time of the measurement response, the transmission time of the measurement request, and the local processing delay carried by the measurement response , and determine the round-trip delay of the round-trip path corresponding to the measurement response.
  • the sending moment of the measurement request is carried in the measurement request and the measurement response.
  • the first device records the sending time of the measurement request, and fills the sending time into the measurement request.
  • the second device records the sending time of the measurement request, and fills the sending time of the measurement request into the measurement response.
  • the sending time of the measurement request is used to estimate and compare the unidirectional transmission delays corresponding to the multiple unidirectional paths after the first device receives the measurement responses sent respectively on the multiple unidirectional paths.
  • the first device locally caches the sending time of the measurement request, and the first device can delete the cached record (including the sending time of the measurement request) after receiving multiple measurement responses in this measurement task or after the current measurement task fails. If the measurement request and the measurement response carry the sending time of the measurement request, the first device may not locally cache the sending time of the measurement request.
  • the first device sequentially subtracts the reception time of the measurement response, the transmission time of the measurement request, and the local processing delay carried by the measurement response to obtain the round-trip delay of the round-trip path corresponding to the measurement response.
  • the first device sends a measurement request on the unidirectional path CID3, and records the sending time T1 of the measurement request, and the first device records the measurement response after receiving each measurement response frame.
  • the receiving time Tx of the QUIC message corresponding to the frame for example, the receiving time on the one-way path CID1 is T2, and the receiving time on the one-way path CID2 is T3
  • analyze and measure the local processing delay Dx in the response frame for example, the one-way path CID2 receives the time delay Dx.
  • the local processing delay of the forward path CID1 is D1
  • the local processing delay of the one-way path CID2 is D2).
  • the first device determines a numerical value or a sorting result of the one-way transmission delay corresponding to each of the multiple one-way paths according to the one-way path identifier and the round-trip delay corresponding to each of the multiple round-trip paths.
  • the multiple unidirectional paths are multiple unidirectional paths between the second device and the first device.
  • the measurement response also carries the reception time of the measurement request
  • the first device may determine the value or ranking result of the one-way transmission delay corresponding to each of the multiple one-way paths.
  • the first device determines the difference between the reception time of the measurement request and the transmission time of the measurement request as the one-way transmission delay of the one-way path used to transmit the measurement request; according to the one-way transmission delay, the one-way path identifier and the round-trip
  • the delay is to determine the unidirectional transmission delays corresponding to the multiple unidirectional paths between the second device and the first device, so as to determine the numerical value or sorting result of the unidirectional transmission delays corresponding to the multiple unidirectional paths.
  • the round-trip path includes a one-way path for transmitting the measurement request and a one-way path for transmitting the measurement response, and the round-trip delay of the round-trip path is compared with the one-way path for transmitting the measurement request.
  • the difference of the directional transmission delay is determined as the unidirectional transmission delay corresponding to each of the multiple unidirectional paths.
  • the measurement response does not carry the reception time of the measurement request
  • the first device may determine the sorting result of the unidirectional transmission delay corresponding to each of the multiple unidirectional paths. Since the round-trip delay is the sum of the one-way transmission delay of the one-way path used to transmit the measurement request and the one-way transmission delay of the one-way path used to transmit the measurement response, the measurement request is only transmitted once in the same measurement task, That is, the one-way paths used to transmit the measurement request are the same, then according to the respective round-trip delays of the multiple round-trip paths, determine the value or Sort results.
  • the sorting results corresponding to each of the multiple round-trip delays are the sorting results of the one-way transmission delays corresponding to the one-way paths used for transmitting the measurement response corresponding to the multiple round-trip delays.
  • RTT(CID3, CID1) and RTT(CID3, CID2) provided in the above example, if RTT(CID3, CID1) is less than RTT(CID3, CID2), then determine the one-way transmission time corresponding to CID1. The delay is smaller than the one-way transmission delay corresponding to CID2.
  • Step 405 the first device sends a measurement result announcement to the second device, and the measurement result announcement includes a unidirectional path identifier list or a unidirectional path identifier of a unidirectional path with the smallest unidirectional transmission delay, and the unidirectional path identifier list is used to indicate multiple paths.
  • the first device After determining the unidirectional path identifier list or the unidirectional path identifier of the unidirectional path with the smallest unidirectional transmission delay, the first device sends a measurement result notification to the second device, and the measurement result notification includes the unidirectional path identifier list or the unidirectional transmission time The unidirectional path identifier of the least extended unidirectional path.
  • the first device obtains a list of unidirectional path identifiers according to the values or sorting results of the unidirectional transmission delays corresponding to each of the multiple unidirectional paths, and fills the unidirectional path identifier list and the measurement sequence number into the measurement result announcement frame. , encapsulate the measurement result notification frame into a data packet and send it to the second device.
  • the measurement result announcement frame includes but is not limited to the following fields: a type field, a measurement sequence number field, a quantity field, a length field, and a unidirectional path identification list field.
  • Type field which is used to indicate that the frame type is a measurement result announcement frame.
  • the type field Type indicating the measurement result announcement frame is TBD3, such as 0x82.
  • the measurement sequence number field which is a field indicating the measurement sequence number.
  • the measurement sequence number field is MeasureTask SN.
  • the quantity field is a field indicating the number of one-way path identifiers in the one-way path identifier list. For example, the quantity field is unipath num.
  • the length field is a field indicating the length of the unidirectional path identifier, and the byte length of each unidirectional path identifier in the same group of QUIC sessions is defined the same.
  • the length field is unipath ID length.
  • One-way path identification list field is a field indicating the one-way path identification list.
  • the unipath id list field is unipath id list.
  • the list of unidirectional path identifiers includes a plurality of unidirectional path identifiers sorted according to the magnitude of the unidirectional transmission delay.
  • the list of unidirectional path identifiers includes a plurality of unidirectional path identifiers arranged in ascending order of unidirectional transmission delay.
  • the unidirectional path identification list includes a plurality of unidirectional paths and values of unidirectional transmission delays corresponding to each of the plurality of unidirectional paths.
  • the first device After the first device sends a measurement result notification to the second device, it closes the first timer. If the started first timer times out, it means that the current measurement task fails, and the first device releases the resources used for the current measurement task, including the first timer.
  • Step 406 the second device receives the measurement result notification sent by the first device.
  • the second device receives the measurement result notification sent by the first device, where the measurement result notification includes a list of unidirectional path identifiers or a unidirectional path identifier of a unidirectional path with the smallest unidirectional transmission delay, and the unidirectional path identifier list is used to indicate multiple unidirectional path identifiers.
  • the measurement result is advertised for the second device to use the minimum one-way transmission delay algorithm to schedule the service data to select an appropriate one-way path for data transmission, so as to satisfy the requirement of priority transmission of service data performance.
  • This data scheduling algorithm is invalid for data packets such as measurement response frames that need to be sent on each unidirectional path. Measurement response frames are usually not combined and packaged with other control frames or data frames into a data packet, such as control frames. It is an ACK frame, and the data frame is a Stream frame. If the measurement response frame and other frames are packaged in a data packet, the unidirectional path selection of the measurement response frame itself shall prevail.
  • the second device parses to obtain a measurement result notification frame.
  • Step 407 the second device sends a data packet to the first device on the second unidirectional path.
  • the measurement result advertisement includes a list of unidirectional path identifiers.
  • the second device selects the currently available second one-way path in the order of the one-way transmission delay from small to large according to the measurement result notification; sends data to the first device on the second one-way path message.
  • the second device preferentially selects the one-way path with the smallest one-way transmission delay as the second one-way path; when the remaining bandwidth on the one-way path is insufficient, the one-way The available unidirectional path is selected as the second unidirectional path in the largest order.
  • the measurement result advertisement includes the unidirectional path identifier of the unidirectional path with the smallest unidirectional transmission delay, and the unidirectional path corresponding to the unidirectional path identifier is the second unidirectional path.
  • the second device sends a data packet to the first device on the second one-way path.
  • Step 408 The first device receives the data packet sent by the second device on the second unidirectional path.
  • the first device receives a data packet sent by the second device on a second one-way path, where the second one-way path is a currently available one-way path selected by the second device in ascending order of one-way transmission delay.
  • the above data packets are also called QUIC packets.
  • the first device is host A
  • the second device is host B
  • two unidirectional paths are established between host A and host B, namely unidirectional path 1 and unidirectional path path 2.
  • host A actively initiates measurement.
  • Step 501 host A sends a measurement request frame to host B on one-way path 1, and records the sending time T1 of the measurement request frame.
  • Step 502 Host B sends a measurement response frame corresponding to the measurement request frame to host A on unidirectional path 1 and unidirectional path 2, respectively, where the measurement response frame carries the unidirectional path identifier and the local processing delay Delay.
  • host A For each measurement response frame in the measurement response frames sent on multiple unidirectional paths, after receiving the measurement response frame, host A records the reception time Tx of the measurement response frame (for example, on the unidirectional path 1).
  • the receiving time is T2
  • the receiving time on one-way path 2 is T3
  • read the one-way path identifier and local processing delay carried in the measurement response frame for example, the local processing delay of one-way path 1 is D1, and the one-way path delay is D1.
  • the local processing delay to path 2 is D2).
  • the host A calculates the RTT value corresponding to the round-trip connection according to the receiving time Tx, the sending time T1 and the local processing delay Delay (the calculation method can be analogous to the above-mentioned embodiment), so as to determine the one-way path 1 and the one-way path.
  • Step 503 Host A sends a measurement result announcement frame to host B on unidirectional path 1, where the measurement result announcement frame includes a unidirectional path identifier list, and the unidirectional path identifier list is used to indicate that unidirectional path 1 and unidirectional path 2 correspond to each other.
  • the numerical or sorted result of the one-way transmission delay is used to indicate that unidirectional path 1 and unidirectional path 2 correspond to each other.
  • the embodiment of the present application also sends a notification message to the first device when the number of one-way paths from the second device to the first device changes, and the first device receives the message sent by the second device.
  • a measurement request is sent to the second device; so that the first device triggers the measurement task of the one-way transmission delay measurement when sensing the newly added event of the connection, that is, the measurement task is triggered based on the newly added event of the connection, Reduce unnecessary measurement processes and network overhead.
  • the data transmission method provided by the embodiment of the present application includes a method for comparing the size of the unidirectional transmission delay corresponding to each of multiple unidirectional paths based on the MPQUIC protocol connection.
  • the first device such as an MPQUIC receiver (such as an MPQUIC client) and the second device as an MPQUIC sender (such as an MPQUIC server) as an example, compare the corresponding unidirectional transmissions of multiple unidirectional paths from the MPQUIC sender to the MPQUIC receiver. Delay size, before the measurement request is initiated, the MPQUIC receiver and MPQUIC sender have completed the establishment of the QUIC session and multipath connection. The measurement request is actively initiated by the MPQUIC receiver.
  • the MPQUIC receiving end includes the MPQUIC multi-connection management module.
  • the MPQUIC sender includes the MPQUIC protocol module.
  • the data transmission method provided by the embodiment of the present application includes but is not limited to the following steps, as shown in FIG. 6 :
  • step 601 the MPQUIC multi-connection management module at the MPQUIC receiving end senses the newly added connection event, and generates a UNICONNECTIONS_DELAY_REQ frame.
  • the MPQUIC multi-connection management module on the MPQUIC receiving end senses that the MPQUIC sending end and the MPQUIC receiving end are connected to multiple one-way paths, which is equivalent to sensing the newly added event of the connection, triggering this measurement task, and generating a measurement request frame, namely the UNICONNECTIONS_DELAY_REQ frame.
  • step 602 the MPQUIC multi-connection management module at the MPQUIC receiving end encapsulates the UNICONECTIONS_DELAY_REQ frame into a QUIC message, and sends the QUIC message to the MPQUIC sending end on any available one-way path.
  • the UNICONNECTIONS_DELAY_REQ frame carries the measurement sequence number SN of this measurement task.
  • the MPQUIC receiving end locally records the sending time T1 of the QUIC message, and starts the first timer of this measurement task to prepare to receive the corresponding measurement response frame, that is, the UNICONNECTIONS_DELAY_RESP frame.
  • the sending time T1 of the QUIC packet is carried in the UNICONNECTIONS_DELAY_REQ frame and the corresponding UNICONNECTIONS_DELAY_RESP frame.
  • Step 603 after receiving the QUIC message, the MPQUIC protocol module of the MPQUIC sender parses to obtain the UNICONNECTIONS_DELAY_REQ frame.
  • the MPQUIC protocol module at the MPQUIC sending end parses to obtain the UNICONECTIONS_DELAY_REQ frame, and records the time Tr of receiving the QUIC message and the measurement sequence number SN of this measurement task.
  • Step 604 the MPQUIC protocol module of the MPQUIC sender encapsulates the UNICONNECTIONS_DELAY_RESP frame corresponding to each unidirectional path into a QUIC packet, and sends the QUIC packets corresponding to the multiple unidirectional paths to the MPQUIC receiver respectively.
  • the MPQUIC protocol module of the MPQUIC sender detects the local sending connection list according to the measurement request.
  • the sending connection list includes multiple one-way paths from the MPQUIC sender to the MPQUIC receiver.
  • a measurement response frame ie UNICONECTIONS_DELAY_RESP frame
  • For each unidirectional path encapsulate the UNICONNECTIONS_DELAY_RESP frame corresponding to each unidirectional path into a QUIC packet, and before sending the QUIC packet, record the sending time Tt of the QUIC packet, and subtract Tt and Tr to get the result.
  • the local processing delay Dx and SN are stuffed into the UNICONNECTIONS_DELAY_RESP frame.
  • the MPQUIC protocol module of the MPQUIC sender sends multiple QUIC packets to the MPQUIC receiver respectively.
  • the MPQUIC protocol module at the MPQUIC sender starts a second timer after receiving the UNICONNECTIONS_DELAY_REQ frame, and the second timer is used to wait for the MPQUIC receiver to send a measurement result announcement frame, that is, a UNICONNECTIONS_DELAY_RESULT frame.
  • Step 605 The MPQUIC multi-connection management module at the MPQUIC receiving end receives each UNICONNECTIONS_DELAY_RESP frame, records the corresponding QUIC packet receiving time Tx, parses the local processing delay Dx carried in the UNICONNECTIONS_DELAY_RESP frame, and calculates the round-trip delay RTT value of the corresponding round-trip connection .
  • the MPQUIC multi-connection management module at the MPQUIC receiving end waits to receive all UNICONNECTIONS_DELAY_RESP frames sent by the MPQUIC sending end on the local receiving connection before the first measurement timeout time indicated by the first timer in the measurement period of the current measurement task. After each UNICONNECTIONS_DELAY_RESP frame is received, the corresponding QUIC message reception time Tx is recorded, and then the Dx of the UNICONNECTIONS_DELAY_RESP frame is parsed to calculate the RTT value of the corresponding connection.
  • the sending time of the measurement request is T1
  • the receiving time on the one-way path 1 from the MPQUIC sender to the MPQUIC receiver is T2
  • the corresponding local processing delay is D1
  • the one-way path 2 from the MPQUIC sender to the MPQUIC receiver The receiving time is T3, and the corresponding local processing delay is D2.
  • Step 606 after the MPQUIC multi-connection management module at the MPQUIC receiving end receives the multiple UNICONNECTIONS_DELAY_RESP frames, it determines the UNICONNECTIONS_DELAY_RESULT frame according to the corresponding one-way transmission delays of the multiple one-way paths.
  • the MPQUIC multi-connection management module at the MPQUIC receiving end compares the corresponding one-way transmission delays of the multiple one-way paths, and determines the measurement result, that is, the one-way path.
  • Identifier list or unidirectional path identifiers of unidirectional paths with the smallest unidirectional transmission delay.
  • the list of unidirectional path identifiers includes a plurality of unidirectional path identifiers sorted according to the magnitude of the unidirectional transmission delay.
  • the list of unidirectional path identifiers includes a plurality of unidirectional path identifiers arranged in descending order of unidirectional transmission delay.
  • the list of unidirectional path identifiers includes multiple unidirectional path identifiers and values of the one-way transmission delay corresponding to each of the multiple unidirectional path identifiers.
  • the MPQUIC multi-connection management module at the MPQUIC receiving end fills the measurement result and the measurement sequence number SN into the measurement result announcement frame, that is, the UNICONNECTIONS_DELAY_RESULT frame.
  • Step 607 the MPQUIC multi-connection management module at the MPQUIC receiving end encapsulates the UNICONECTIONS_DELAY_RESULT frame into a QUIC message, and sends the QUIC message to the MPQUIC sending end on any one-way path.
  • Step 608 after receiving the QUIC message, the MPQUIC protocol module of the MPQUIC sender parses to obtain the UNICONNECTIONS_DELAY_RESULT frame.
  • the MPQUIC protocol module at the MPQUIC sender parses it to obtain a UNICONECTIONS_DELAY_RESULT frame, and applies the measurement result (that is, the list of unidirectional path identifiers or the unidirectional path identifier of the unidirectional path with the smallest unidirectional transmission delay) to MPQUIC for transmission. It is used by the multi-connection scheduler of the terminal as the minimum transmission delay algorithm to schedule service data such as Stream frames and select an appropriate one-way path for data transmission, so as to meet the requirements of priority transmission of service data such as Stream frames.
  • the embodiment of the present application provides an extended transmission delay measurement scheme, and does not rely on network time protocols such as the IEEE 1588 protocol to achieve the measurement and comparison of the corresponding one-way transmission delays of multiple one-way paths, thereby It enables the MPQUIC sender to schedule and select the currently available one-way path with the smallest one-way transmission delay for data transmission, which ensures the transmission performance of the multi-path transmission of the MPQUIC protocol.
  • FIG. 7 shows a block diagram of a data transmission apparatus provided by an exemplary embodiment of the present application.
  • the data transmission apparatus may be implemented by software, hardware or a combination of the two to become all or a part of the first device shown in FIG. 2 .
  • the data transmission apparatus at least includes: a sending unit 710 and a processing unit 720 .
  • the sending unit 710 is configured to implement the functions of the above steps 301, 305, 401, 405, 501, 503, 602, and 607 and the implicit sending function on the first device side in each step.
  • the processing unit 720 is configured to implement the functions of the above steps 304 , 404 , 408 , 601 , 605 , and 606 and the processing functions on the first device side implicit in each step.
  • FIG. 8 shows a block diagram of a data transmission apparatus provided by another exemplary embodiment of the present application.
  • the data transmission apparatus may be implemented by software, hardware or a combination of the two to become all or a part of the second device shown in FIG. 2 .
  • the data transmission apparatus at least includes: a receiving unit 810 and a sending unit 820 .
  • the receiving unit 810 is configured to implement the functions of the above steps 302, 306, 402, and 406 and the receiving function on the second device side implicit in each step.
  • the sending unit 820 is configured to implement the functions of the above steps 303, 403, 502 and 604 and the sending function on the second device side implicit in each step.
  • FIG. 9 shows a schematic structural diagram of a first device provided by an exemplary embodiment of the present application.
  • the first device may be the first device shown in FIG. 2 .
  • the first device includes: a processor 91 , a receiver 92 , a transmitter 93 , a memory 94 and a bus 95 .
  • the processor 91 includes one or more processing cores, and the processor 91 executes various functional applications and information processing by running software programs and modules.
  • the receiver 92 and the transmitter 93 may be implemented as a communication component, which may be a communication chip, and the communication chip may include a receiving module, a transmitting module, a modulation and demodulation module, etc., for modulating and/or demodulating information. tune and receive or transmit that information via wireless signals.
  • the memory 94 is connected to the processor 91 via a bus 95 .
  • the memory 94 stores necessary program instructions and data for the first device.
  • the processor 91 is configured to execute program instructions and data in the memory 94 to implement the functions of each step performed by the first device in each method embodiment of the present application.
  • the processor 91 controls the receiver 92 to implement the receiving function on the first device side in the above steps by running at least one program instruction in the memory 94; the processor 91 controls the transmitter 93 by running at least one program instruction in the memory 94 to implement the sending function on the first device side in each of the above steps.
  • memory 94 may be implemented by any type of volatile or non-volatile storage device or combination thereof, such as static anytime access memory (SRAM), electrically erasable programmable read only memory (EEPROM), erasable Except programmable read only memory (EPROM), programmable read only memory (PROM), read only memory (ROM), magnetic memory, flash memory, magnetic disk or optical disk.
  • SRAM static anytime access memory
  • EEPROM electrically erasable programmable read only memory
  • EPROM erasable except programmable read only memory
  • PROM programmable read only memory
  • ROM read only memory
  • magnetic memory flash memory
  • flash memory magnetic disk or optical disk.
  • Figure 9 only shows a simplified design of the first device.
  • the first device may include any number of transmitters, receivers, processors, controllers, memories, communication units, etc., and all the first devices that can implement the present application are within the protection scope of the present application within.
  • FIG. 10 shows a schematic structural diagram of a second device provided by an exemplary embodiment of the present application.
  • the second device may be the second device shown in FIG. 2 .
  • the second device includes: a processor 101 , a receiver 102 , a transmitter 103 , a memory 104 and a bus 105 .
  • the processor 101 includes one or more processing cores, and the processor 101 executes various functional applications and information processing by running software programs and modules.
  • the receiver 102 and the transmitter 103 may be implemented as a communication component, which may be a communication chip, and the communication chip may include a receiving module, a transmitting module, a modulation and demodulation module, etc., for modulating and/or demodulating information. tune and receive or transmit that information via wireless signals.
  • the memory 104 is connected to the processor 101 through the bus 105 .
  • the memory 104 stores necessary program instructions and data for the second device.
  • the processor 101 is configured to execute the program instructions and data in the memory 104 to implement the functions of each step performed by the second device in each method embodiment of the present application.
  • the processor 101 controls the receiver 102 to implement the receiving function on the second device side in the above steps by running at least one program instruction in the memory 104; the processor 101 controls the transmitter 103 by running at least one program instruction in the memory 104 to implement the sending function on the second device side in each of the above steps.
  • memory 104 may be implemented by any type of volatile or non-volatile storage device or combination thereof, such as static anytime access memory (SRAM), electrically erasable programmable read only memory (EEPROM), erasable Except programmable read only memory (EPROM), programmable read only memory (PROM), read only memory (ROM), magnetic memory, flash memory, magnetic disk or optical disk.
  • SRAM static anytime access memory
  • EEPROM electrically erasable programmable read only memory
  • EPROM erasable except programmable read only memory
  • PROM programmable read only memory
  • ROM read only memory
  • magnetic memory flash memory
  • flash memory magnetic disk or optical disk.
  • Figure 10 only shows a simplified design of the second device.
  • the second device may include any number of transmitters, receivers, processors, controllers, memories, communication units, etc., and all second devices that can implement the present application are within the protection scope of the present application within.
  • An embodiment of the present application provides a data transmission apparatus, the apparatus includes: a processor and a memory for storing instructions executable by the processor; wherein the processor is configured to implement the above method when executing the instructions.
  • Embodiments of the present application provide a computer program product, including computer-readable codes, or a non-volatile computer-readable storage medium carrying computer-readable codes, when the computer-readable codes are executed in a processor of an electronic device , the processor in the electronic device executes the above method.
  • An embodiment of the present application provides a data transmission system, the data transmission system includes a first device and a second device, the first device includes a data transmission apparatus as shown in FIG. 7 , and the second device includes a data transmission device as shown in FIG. 8 . or, the first device includes the first device as shown in FIG. 9 , and the second device includes the second device as shown in FIG. 10 .
  • Embodiments of the present application provide a non-volatile computer-readable storage medium on which computer program instructions are stored, and when the computer program instructions are executed by a processor, the foregoing method is implemented.
  • a computer-readable storage medium may be a tangible device that can hold and store instructions for use by the instruction execution device.
  • the computer-readable storage medium may be, for example, but not limited to, an electrical storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing.
  • Computer-readable storage media include: portable computer disks, hard disks, random access memory (RAM), read only memory (ROM), erasable programmable read-only memory (Electrically Programmable Read-Only-Memory, EPROM or flash memory), static random access memory (Static Random-Access Memory, SRAM), portable compact disk read-only memory (Compact Disc Read-Only Memory, CD - ROM), Digital Video Disc (DVD), memory sticks, floppy disks, mechanically encoded devices, such as punch cards or raised structures in grooves on which instructions are stored, and any suitable combination of the foregoing .
  • RAM random access memory
  • ROM read only memory
  • EPROM erasable programmable read-only memory
  • EPROM Errically Programmable Read-Only-Memory
  • SRAM static random access memory
  • portable compact disk read-only memory Compact Disc Read-Only Memory
  • CD - ROM Compact Disc Read-Only Memory
  • DVD Digital Video Disc
  • memory sticks floppy disks
  • the computer readable program instructions or code described herein may be downloaded to various computing/processing devices from a computer readable storage medium, or to an external computer or external storage device over a network such as the Internet, a local area network, a wide area network and/or a wireless network.
  • the network may include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers, and/or edge servers.
  • a network adapter card or network interface in each computing/processing device receives computer-readable program instructions from a network and forwards the computer-readable program instructions for storage in a computer-readable storage medium in each computing/processing device .
  • the computer program instructions used to perform the operations of the present application may be assembly instructions, Instruction Set Architecture (ISA) instructions, machine instructions, machine-related instructions, microcode, firmware instructions, state setting data, or in one or more source or object code written in any combination of programming languages, including object-oriented programming languages such as Smalltalk, C++, etc., and conventional procedural programming languages such as the "C" language or similar programming languages.
  • the computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer, or entirely on the remote computer or server implement.
  • the remote computer may be connected to the user's computer through any kind of network—including a Local Area Network (LAN) or a Wide Area Network (WAN)—or, may be connected to an external computer (eg, use an internet service provider to connect via the internet).
  • electronic circuits such as programmable logic circuits, Field-Programmable Gate Arrays (FPGA), or Programmable Logic Arrays (Programmable Logic Arrays), are personalized by utilizing state information of computer-readable program instructions.
  • Logic Array, PLA the electronic circuit can execute computer readable program instructions to implement various aspects of the present application.
  • These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer or other programmable data processing apparatus to produce a machine that causes the instructions when executed by the processor of the computer or other programmable data processing apparatus , resulting in means for implementing the functions/acts specified in one or more blocks of the flowchart and/or block diagrams.
  • These computer readable program instructions can also be stored in a computer readable storage medium, these instructions cause a computer, programmable data processing apparatus and/or other equipment to operate in a specific manner, so that the computer readable medium on which the instructions are stored includes An article of manufacture comprising instructions for implementing various aspects of the functions/acts specified in one or more blocks of the flowchart and/or block diagrams.
  • Computer readable program instructions can also be loaded onto a computer, other programmable data processing apparatus, or other equipment to cause a series of operational steps to be performed on the computer, other programmable data processing apparatus, or other equipment to produce a computer-implemented process , thereby causing instructions executing on a computer, other programmable data processing apparatus, or other device to implement the functions/acts specified in one or more blocks of the flowcharts and/or block diagrams.
  • each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more functions for implementing the specified logical function(s) executable instructions.
  • the functions noted in the blocks may occur out of the order noted in the figures. For example, two blocks in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.
  • each block of the block diagrams and/or flowchart illustrations, and combinations of blocks in the block diagrams and/or flowchart illustrations can be implemented in hardware (eg, circuits or ASICs (Application) that perform the corresponding functions or actions. Specific Integrated Circuit, application-specific integrated circuit)), or can be implemented by a combination of hardware and software, such as firmware.

Landscapes

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

Abstract

本申请涉及通信技术领域,尤其涉及一种数据传输方法、装置、系统及存储介质。所述方法包括:第一设备向第二设备发送测量请求,第一设备和第二设备之间建立有多个单向路径;在接收到在多个单向路径上分别发送的测量应答后,根据多个单向路径各自对应的单向传输时延确定测量结果通告;向第二设备发送测量结果通告,测量结果通告用于指示单向传输时延最小的单向路径或者多个单向路径各自对应的单向传输时延的数值或排序结果。本申请实施例通过第一设备主动发起测量请求,通过与第二设备的三次交互,向第二设备通告单向传输时延的测量情况,从而使第二设备能够调度选择最小单向传输时延的单向路径进行数据传输,保证了多路径传输的传输性能。

Description

数据传输方法、装置、系统及存储介质
本申请要求于2020年12月31日提交中国专利局、申请号为202011631931.3、申请名称为“数据传输方法、装置、系统及存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信技术领域,尤其涉及一种数据传输方法、装置、系统及存储介质。
背景技术
快速UDP互联网连接(Quick UDP Internet Connections,QUIC)报文承载在用户数据报协议(User Datagram Protocol,UDP)/数据包传输层安全性(Datagram Transport Layer Security,DTLS)协议上。QUIC报文包括报文头部和帧包,其中业务流(Stream)帧作为QUIC报文中一种特殊类型的帧,用于区分承载一个应用的不同业务流,比如业务流为音视频业务流、应用文字业务流或应用层控制协议业务流。在QUIC协议的基础上将传输时所使用的一个单向路径扩展到多个单向路径,从而形成了多路径快速UDP因特网连接(Multipath Quick UDP Internet Connection,MPQUIC)协议。
一个QUIC会话可以创建多个连接(Connections)即路径,一个业务流的报文可以在不同的连接传输,而且即使是在同一条物理链路上的往返连接也可以定义成不同的单向连接,基于MPQUIC协议交互的双方在发包时分别独立进行连接调度选路。该多路径两端独立选路场景若仍采用最小往返时延优先(min-RTT-First,minRTT)的数据调度策略进行调度,会导致调度误差较大,影响多路径传输的传输性能。
发明内容
有鉴于此,提出了一种数据传输方法、装置、系统及存储介质,报文接收端即第一设备主动发起测量请求,通过与报文发送端即第二设备的三次交互,确定第二设备到第一设备的多个单向路径各自对应的单向传输时延的测量情况,并将测量情况通知至第二设备,从而使得第二设备能够调度选择最小单向传输时延的单向路径进行数据传输,保证了多路径传输的传输性能。
第一方面,本申请的实施例提供了一种数据传输方法,用于第一设备中,第一设备和第二设备之间建立有多个单向路径,该方法包括:
向第二设备发送测量请求;
在接收到在多个单向路径上分别发送的测量应答后,根据多个单向路径各自对应的单向传输时延确定测量结果通告;
向第二设备发送测量结果通告,测量结果通告用于指示单向传输时延最小的单向路径或者多个单向路径各自对应的单向传输时延的数值或排序结果。
在该实现方式中,第一设备和第二设备之间建立有多个单向路径,第一设备向第二设备发送测量请求,在接收到在多个单向路径上分别发送的测量应答后,根据多个 单向路径各自对应的单向传输时延确定测量结果通告,向第二设备发送测量结果通告,该测量结果通告用于指示单向传输时延最小的单向路径或者多个单向路径各自对应的单向传输时延的数值或排序结果,从而使得后续第二设备能够根据测量结果通告按照最小单向传输时延优先的算法选择对应的单向路径进行数据报文传输,提高了数据调度的准确性,保证了多路径传输的传输性能。
结合第一方面,在第一方面的第一种可能的实现方式中,在接收到在多个单向路径上分别发送的测量应答后,根据多个单向路径各自对应的单向传输时延确定测量结果通告,包括:
在接收到每个单向路径上发送的测量应答后,确定测量应答对应的往返路径的往返时延(Round-Trip Time,RTT),往返路径包括传输测量请求的单向路径和传输测量应答的单向路径;
根据多个往返路径各自对应的单向路径标识和往返时延,确定多个单向路径各自对应的单向传输时延的数值或排序结果,单向路径标识用于指示传输测量应答的单向路径;
根据多个单向路径各自对应的单向传输时延的数值或排序结果,确定测量结果通告。
在该实现方式中,第一设备在接收到每个单向路径上发送的测量应答后,确定测量应答对应的往返路径的往返时延,根据多个往返路径各自对应的单向路径标识和往返时延,确定多个单向路径各自对应的单向传输时延的数值或排序结果,以便第一设备能够准确地确定出第二设备到第一设备的多个单向路径各自对应的单向传输时延的测量情况。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,该方法还包括:
记录测量请求对应的测量序号和测量请求的发送时刻,测量序号用于指示本次测量任务。
在该实现方式中,第一设备记录测量请求对应的测量序号和测量请求的发送时刻,以便在第一设备接收到在多个单向路径上分别发送的测量应答后,准确估算比较多个单向路径各自对应的单向传输时延。
结合第一方面或第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,
测量应答携带有单向路径标识、测量序号和本地处理时延,本地处理时延为第二设备发送测量应答的时刻与接收测量请求的时刻之间的差值。
在该实现方式中,第二设备向到第一设备的每个单向路径上发送测量应答,该测量应答携带有单向路径标识、测量序号和本地处理时延,以便保证后续第一设备计算单向传输时延的准确性。
结合第一方面或第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,在接收到每个单向路径上发送的测量应答后,确定测量应答对应的往返路径的往返时延,包括:
在接收到每个单向路径上发送的测量应答后,记录测量应答的接收时刻;
根据测量应答的接收时刻、测量请求的发送时刻和测量应答携带的本地处理时延,确定测量应答对应的往返路径的往返时延。
在该实现方式中,对于在每个单向路径上发送的测量应答来说,第一设备根据测量应答的接收时刻、测量请求的发送时刻和测量应答携带的本地处理时延,确定测量应答对应的往返路径的往返时延,以便后续能够准确地确定出该往返路径中第二设备到第一设备的单向路径的单向传输时延。
结合第一方面,在第一方面的第五种可能的实现方式中,向第二设备发送测量请求,包括:
在接收到第二设备发送的通知报文后,向第二设备发送测量请求,通知报文用于指示第二设备到第一设备的单向路径数量发生变更;或者,
根据预配置或预定义的测量周期,向第二设备发送测量请求。
在该实现方式中,第一设备在感知到连接新增事件的情况下触发单向传输时延测量的测量任务,即测量任务是基于连接新增事件触发的;或者,第一设备按照预配置或预定义的测量周期向第二设备发送测量请求,即测量任务是周期性触发的,减少不必要的测量流程和网络开销。
结合第一方面,在第一方面的第六种可能的实现方式中,该方法还包括:
在发送测量请求后启动本次测量任务的第一定时器;
在第一定时器所指示的第一测量超时时刻前,接收在多个单向路径上分别发送的测量应答。
在该实现方式中,第一设备在发送测量请求后启动本次测量任务的第一定时器,用于等待接收第二设备在多个单向路径上分别发送该测量应答,避免长时间等待接收的情况,节省了网络开销,保证了本次测量任务的可控性和可靠性。
结合第一方面,在第一方面的第七种可能的实现方式中,测量结果通告包括单向路径标识列表或者单向传输时延最小的单向路径的单向路径标识,单向路径标识列表用于指示多个单向路径各自对应的单向传输时延的数值或排序结果。
在该实现方式中,测量结果通告可以包括单向路径标识列表,单向路径标识列表用于指示多个单向路径各自对应的单向传输时延的数值或排序结果,以便后续第一设备按照单向路径标识列表选择的当前可用的单向路径进行数据传输;测量结果通道还可以包括单向传输时延最小的单向路径的单向路径标识,以便后续第一设备在当前可用的单向传输时延最小的单向路径上传输数据,提高了多路径传输的传输性能。
结合第一方面及第一方面的第一种至第七种可能的实现方式中的任意一种可能的实现方式,在第一方面的第八种可能的实现方式中,测量结果通告用于指示多个单向路径各自对应的单向传输时延的数值或排序结果,向第二设备发送测量结果通告之后,还包括:
接收第二设备在第二单向路径上发送的数据报文,第二单向路径为第二设备按照单向传输时延从小到大的顺序选择的当前可用的单向路径。
在该实现方式中,第二设备按照单向传输时延从小到大的顺序选择可用的单向路径作为第二单向路径,第二设备在第二单向路径发送数据报文,第一设备接收在该第二单向路径上发送的数据报文;即优先选择单向传输时延最小的单向路径作为第二单 向路径,当该单向路径上的剩余带宽不足时,按照单向传输时延从小到大的顺序选择单向传输时延尽可能小的可用的单向路径作为第二单向路径,进一步提高了多路径传输的传输性能。
结合第一方面及第一方面的第一种至第七种可能的实现方式中的任意一种可能的实现方式,在第一方面的第九种可能的实现方式中,测量结果通告用于指示单向传输时延最小的单向路径,向第二设备发送测量结果通告之后,还包括:
接收第二设备在第三单向路径上发送的数据报文,第三单向路径为单向传输时延最小的单向路径。
在该实现方式中,第二设备将单向传输时延最小的单向路径作为第三单向路径,在第三单向路径上发送数据报文,对应的第一设备接收在该第三单向路径上发送的数据报文;使得第二设备能够直接在单向传输时延最小的单向路径上发送数据报文,进一步提高了多路径传输的传输性能。
结合第一方面及第一方面的第一种至第九种可能的实现方式中的任意一种可能的实现方式,在第一方面的第十种可能的实现方式中,向第二设备发送测量请求,包括:
在第一单向路径上向第二设备发送一次测量请求,第一单向路径为第一设备到第二设备的多个单向路径中的任意一个单向路径。
在该实现方式中,第一设备在第一设备到第二设备的多个单向路径中选择任意一个单向路径作为第一单线该路径,在第一单向路径上向第二设备发送一次测量请求,使得通过发送一次测量请求触发第二设备反馈多个测量应答,以实现后续多个单向路径各自对应的单向传输时延的测量比较,提高了单向传输时延的测量效率。
结合第一方面及第一方面的第一种至第十种可能的实现方式中的任意一种可能的实现方式,在第一方面的第十一种可能的实现方式中,单向路径包括MPQUIC协议的连接或者单向流。
在该实现方式中,提供了一种基于MPQUIC协议的数据传输方法,不依赖IEEE1588协议等网络时间协议实现多个单向路径各自对应的单向传输时延的测量比较,从而使得MPQUIC发送端能够调度选择当前可用的最小单向传输时延的单向路径进行数据传输,保证了MPQUIC协议的多路径传输的传输性能。
第二方面,本申请的实施例提供了一种数据传输方法,用于第二设备中,第一设备和第二设备之间建立有多个单向路径,该方法包括:
接收第一设备发送的测量请求;
在多个单向路径上分别发送测量应答;
接收第一设备发送的测量结果通告,测量结果通告用于指示单向传输时延最小的单向路径或者多个单向路径各自对应的单向传输时延的数值或排序结果。
结合第二方面,在第二方面的第一种可能的实现方式中,测量应答携带有单向路径标识、测量序号和本地处理时延;
其中,单向路径标识用于指示传输测量应答的单向路径,测量序号用于指示本次测量任务,本地处理时延为第二设备发送测量应答的时刻与接收测量请求的时刻之间的差值。
结合第二方面,在第二方面的第二种可能的实现方式中,该方法还包括:
在第二设备到第一设备的单向路径数量发生变更的情况下,向第一设备发送通知报文。
结合第二方面,在第二方面的第三种可能的实现方式中,该方法还包括:
在接收到测量请求后启动本次测量任务的第二定时器;
在第二定时器所指示的第二测量超时时刻前,接收测量结果通告。
结合第二方面,在第二方面的第四种可能的实现方式中,测量结果通告包括单向路径标识列表或者单向传输时延最小的单向路径的单向路径标识,单向路径标识列表用于指示多个单向路径各自对应的单向传输时延的数值或排序结果。
结合第二方面及第二方面的第一种至第四种可能的实现方式中的任意一种可能的实现方式,在第二方面的第五种可能的实现方式中,测量结果通告用于指示多个单向路径各自对应的单向传输时延的数值或排序结果,该方法还包括:
根据测量结果通告,按照单向传输时延从小到大的顺序选择当前可用的第二单向路径;
在第二单向路径上向第一设备发送数据报文。
结合第二方面及第二方面的第一种至第四种可能的实现方式中的任意一种可能的实现方式,在第二方面的第六种可能的实现方式中,测量结果通告用于指示单向传输时延最小的单向路径,该方法还包括:
在第三单向路径上向第一设备发送数据报文,第三单向路径为单向传输时延最小的单向路径。
结合第二方面及第二方面的第一种至第六种可能的实现方式中的任意一种可能的实现方式,在第二方面的第七种可能的实现方式中,接收第一设备发送的测量请求,包括:
接收第一设备在第一单向路径上发送的一次测量请求,第一单向路径为第一设备到第二设备的多个单向路径中的任意一个单向路径。
结合第二方面及第二方面的第一种至第七种可能的实现方式中的任意一种可能的实现方式,在第二方面的第八种可能的实现方式中,单向路径包括MPQUIC协议的连接或者单向流。
第三方面,本申请的实施例提供了一种数据传输方法,其特征在于,用于包括第一设备和第二设备的数据传输系统中,第一设备和第二设备之间建立有多个单向路径,该方法包括:
第一设备向第二设备发送测量请求;
第二设备在接收到第一设备发送的测量请求后,在多个单向路径上分别发送测量应答;
第一设备在接收到在多个单向路径上分别发送的测量应答后,根据多个单向路径各自对应的单向传输时延确定测量结果通告;
第一设备向第二设备发送测量结果通告;
第二设备接收第一设备发送的测量结果通告;
其中,测量结果通告用于指示单向传输时延最小的单向路径或者多个单向路径各自对应的单向传输时延的数值或排序结果。
结合第三方面,在第三方面的第一种可能的实现方式中,第一设备在接收到在多个单向路径上分别发送的测量应答后,根据多个单向路径各自对应的单向传输时延确定测量结果通告,包括:
第一设备在接收到每个单向路径上发送的测量应答后,确定测量应答对应的往返路径的往返时延,往返路径包括传输测量请求的单向路径和传输测量应答的单向路径;
第一设备根据多个往返路径各自对应的单向路径标识和往返时延,确定多个单向路径各自对应的单向传输时延的数值或排序结果,单向路径标识用于指示传输测量应答的单向路径;
第一设备根据多个单向路径各自对应的单向传输时延的数值或排序结果,确定测量结果通告。
结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,该方法还包括:
第一设备记录测量请求对应的测量序号和测量请求的发送时刻,测量序号用于指示本次测量任务。
结合第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,测量应答携带有单向路径标识、测量序号和本地处理时延,本地处理时延为第二设备发送测量应答的时刻与接收测量请求的时刻之间的差值。
结合第三方面的第三种可能的实现方式,在第三方面的第四种可能的实现方式中,第一设备在接收到每个单向路径上发送的测量应答后,确定测量应答对应的往返路径的往返时延,包括:
第一设备在接收到每个单向路径上发送的测量应答后,记录测量应答的接收时刻;
第一设备根据测量应答的接收时刻、测量请求的发送时刻和测量应答携带的本地处理时延,确定测量应答对应的往返路径的往返时延。
结合第三方面,在第三方面的第五种可能的实现方式中,该方法还包括:
在第二设备到第一设备的单向路径数量发生变更的情况下,第二设备向第一设备发送通知报文;
第一设备向第二设备发送测量请求,包括:
第一设备在接收到第二设备发送的通知报文后,向第二设备发送测量请求。
结合第三方面,在第三方面的第六种可能的实现方式中,第一设备向第二设备发送测量请求,包括:
第一设备根据预配置或预定义的测量周期,向第二设备发送测量请求。
结合第三方面,在第三方面的第七种可能的实现方式中,该方法还包括:
第一设备在发送测量请求后启动本次测量任务的第一定时器;
第一设备在第一定时器所指示的第一测量超时时刻前,接收在多个单向路径上分别发送的测量应答。
结合第三方面,在第三方面的第八种可能的实现方式中,该方法还包括:
第二设备在接收到测量请求后启动本次测量任务的第二定时器;
第二设备在第二定时器所指示的第二测量超时时刻前,接收测量结果通告。
结合第三方面,在第三方面的第九种可能的实现方式中,测量结果通告包括单向 路径标识列表或者单向传输时延最小的单向路径的单向路径标识,单向路径标识列表用于指示多个单向路径各自对应的单向传输时延的数值或排序结果。
结合第三方面及第三方面的第一种至第九种可能的实现方式中的任意一种可能的实现方式,在第三方面的第十种可能的实现方式中,测量结果通告用于指示多个单向路径各自对应的单向传输时延的数值或排序结果,第二设备接收第一设备发送的测量结果通告之后,还包括:
第二设备根据测量结果通告,按照单向传输时延从小到大的顺序选择当前可用的第二单向路径;
第二设备在第二单向路径上向第一设备发送数据报文;
第一设备接收第二设备在第二单向路径上发送的数据报文。
结合第三方面及第三方面的第一种至第九种可能的实现方式中的任意一种可能的实现方式,在第三方面的第十一种可能的实现方式中,测量结果通告用于指示单向传输时延最小的单向路径,第二设备接收第一设备发送的测量结果通告之后,还包括:
第二设备在第三单向路径上向第一设备发送数据报文,第三单向路径为单向传输时延最小的单向路径;
第一设备接收第二设备在第三单向路径上发送的数据报文。
结合第三方面及第三方面的第一种至第十一种可能的实现方式中的任意一种可能的实现方式,在第三方面的第十二种可能的实现方式中,第一设备向第二设备发送测量请求,包括:
第一设备在第一单向路径上向第二设备发送一次测量请求,第一单向路径为第一设备到第二设备的多个单向路径中的任意一个单向路径。
结合第三方面及第三方面的第一种至第十二种可能的实现方式中的任意一种可能的实现方式,在第三方面的第十三种可能的实现方式中,单向路径包括MPQUIC协议的连接或者单向流。
第四方面,本申请的实施例提供了一种数据传输装置,用于第一设备中,第一设备和第二设备之间建立有多个单向路径,该装置包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为:
向第二设备发送测量请求;
在接收到在多个单向路径上分别发送的测量应答后,根据多个单向路径各自对应的单向传输时延确定测量结果通告;
向第二设备发送测量结果通告,测量结果通告用于指示单向传输时延最小的单向路径或者多个单向路径各自对应的单向传输时延的数值或排序结果。
结合第四方面,在第四方面的第一种可能的实现方式中,该处理器还被配置为:
在接收到每个单向路径上发送的测量应答后,确定测量应答对应的往返路径的往返时延,往返路径包括传输测量请求的单向路径和传输测量应答的单向路径;
根据多个往返路径各自对应的单向路径标识和往返时延,确定多个单向路径各自对应的单向传输时延的数值或排序结果,单向路径标识用于指示传输测量应答的单向路径;
根据多个单向路径各自对应的单向传输时延的数值或排序结果,确定测量结果通 告。
结合第四方面或第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,该处理器还被配置为:
记录测量请求对应的测量序号和测量请求的发送时刻,测量序号用于指示本次测量任务。
结合第四方面或第四方面的第二种可能的实现方式,在第四方面的第三种可能的实现方式中,测量应答携带有单向路径标识、测量序号和本地处理时延,本地处理时延为第二设备发送测量应答的时刻与接收测量请求的时刻之间的差值。
结合第四方面或第四方面的第三种可能的实现方式,在第四方面的第四种可能的实现方式中,该处理器还被配置为:
在接收到每个单向路径上发送的测量应答后,记录测量应答的接收时刻;
根据测量应答的接收时刻、测量请求的发送时刻和测量应答携带的本地处理时延,确定测量应答对应的往返路径的往返时延。
结合第四方面,在第四方面的第五种可能的实现方式中,该处理器还被配置为:
在接收到第二设备发送的通知报文后,向第二设备发送测量请求,通知报文用于指示第二设备到第一设备的单向路径数量发生变更;或者,
根据预配置或预定义的测量周期,向第二设备发送测量请求。
结合第四方面,在第四方面的第六种可能的实现方式中,该处理器还被配置为:
在发送测量请求后启动本次测量任务的第一定时器;
在第一定时器所指示的第一测量超时时刻前,接收在多个单向路径上分别发送的测量应答。
结合第四方面,在第四方面的第七种可能的实现方式中,测量结果通告包括单向路径标识列表或者单向传输时延最小的单向路径的单向路径标识,单向路径标识列表用于指示多个单向路径各自对应的单向传输时延的数值或排序结果。
结合第四方面及第四方面的第一种至第七种可能的实现方式中的任意一种可能的实现方式,在第四方面的第八种可能的实现方式中,该处理器还被配置为:
接收第二设备在第二单向路径上发送的数据报文,第二单向路径为第二设备按照单向传输时延从小到大的顺序选择的当前可用的单向路径。
结合第四方面及第四方面的第一种至第七种可能的实现方式中的任意一种可能的实现方式,在第四方面的第九种可能的实现方式中,测量结果通告用于指示单向传输时延最小的单向路径,该处理器还被配置为:
接收第二设备在第三单向路径上发送的数据报文,第三单向路径为单向传输时延最小的单向路径。
结合第四方面及第四方面的第一种至第九种可能的实现方式中的任意一种可能的实现方式,在第四方面的第十种可能的实现方式中,该处理器还被配置为:
在第一单向路径上向第二设备发送一次测量请求,第一单向路径为第一设备到第二设备的多个单向路径中的任意一个单向路径。
结合第四方面及第四方面的第一种至第十种可能的实现方式中的任意一种可能的 实现方式,在第四方面的第十一种可能的实现方式中,单向路径包括MPQUIC协议的连接或者单向流。
第五方面,本申请的实施例提供了一种数据传输装置,用于第二设备中,第一设备和第二设备之间建立有多个单向路径,该装置包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为:
接收第一设备发送的测量请求;
在多个单向路径上分别发送测量应答;
接收第一设备发送的测量结果通告,测量结果通告用于指示单向传输时延最小的单向路径或者多个单向路径各自对应的单向传输时延的数值或排序结果。
结合第五方面,在第五方面的第一种可能的实现方式中,测量应答携带有单向路径标识、测量序号和本地处理时延;
其中,单向路径标识用于指示传输测量应答的单向路径,测量序号用于指示本次测量任务,本地处理时延为第二设备发送测量应答的时刻与接收测量请求的时刻之间的差值。
结合第五方面,在第五方面的第二种可能的实现方式中,该处理器还被配置为:
在第二设备到第一设备的单向路径数量发生变更的情况下,向第一设备发送通知报文。
结合第五方面,在第五方面的第三种可能的实现方式中,该处理器还被配置为:
在接收到测量请求后启动本次测量任务的第二定时器;
在第二定时器所指示的第二测量超时时刻前,接收测量结果通告。
结合第五方面,在第五方面的第四种可能的实现方式中,测量结果通告包括单向路径标识列表或者单向传输时延最小的单向路径的单向路径标识,单向路径标识列表用于指示多个单向路径各自对应的单向传输时延的数值或排序结果。
结合第五方面及第五方面的第一种至第四种可能的实现方式中的任意一种可能的实现方式,在第五方面的第五种可能的实现方式中,该处理器还被配置为:
根据测量结果通告,按照单向传输时延从小到大的顺序选择当前可用的第二单向路径;
在第二单向路径上向第一设备发送数据报文。
结合第五方面及第五方面的第一种至第四种可能的实现方式中的任意一种可能的实现方式,在第五方面的第六种可能的实现方式中,测量结果通告用于指示单向传输时延最小的单向路径,该处理器还被配置为:
在第三单向路径上向第一设备发送数据报文,第三单向路径为单向传输时延最小的单向路径。
结合第五方面及第五方面的第一种至第六种可能的实现方式中的任意一种可能的实现方式,在第五方面的第七种可能的实现方式中,该处理器还被配置为:
接收第一设备在第一单向路径上发送的一次测量请求,第一单向路径为第一设备到第二设备的多个单向路径中的任意一个单向路径。
结合第五方面及第五方面的第一种至第七种可能的实现方式中的任意一种可能的实现方式,在第五方面的第八种可能的实现方式中,单向路径包括MPQUIC协议的连 接或者单向流。
第六方面,本申请的实施例提供了一种数据传输装置,该装置包括至少一个单元,至少一个单元用于实现上述第一方面或第一方面中的任意一种可能的实现方式所提供的数据传输方法。
第七方面,本申请的实施例提供了一种数据传输装置,该装置包括至少一个单元,至少一个单元用于实现上述第二方面或第二方面中的任意一种可能的实现方式所提供的数据传输方法。
第八方面,本申请的实施例提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当计算机可读代码在电子设备中运行时,电子设备中的处理器执行上述第一方面或第一方面中的任意一种可能的实现方式所提供的数据传输方法。
第九方面,本申请的实施例提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当计算机可读代码在电子设备中运行时,电子设备中的处理器执行上述第二方面或第二方面中的任意一种可能的实现方式所提供的数据传输方法。
第十方面,本申请的实施例提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令被处理器执行时实现上述第一方面或第一方面中的任意一种可能的实现方式所提供的数据传输方法。
第十一方面,本申请的实施例提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令被处理器执行时实现上述第二方面或第二方面中的任意一种可能的实现方式所提供的数据传输方法。
第十二方面,本申请的实施例提供了一种数据传输系统,该数据传输系统包括第一设备和第二设备,第一设备和第二设备之间建立有多个单向路径;该第一设备包括如上述第四方面的数据传输装置,该第二设备包括如上述第五方面的数据传输装置;或者,该第一设备包括如上述第六方面的数据传输装置,该第二设备包括如上述第七方面的数据传输装置。
第十三方面,本申请的实施例提供了一种数据传输系统,该数据传输系统包括第一设备和第二设备,第一设备和第二设备之间建立有多个单向路径;该数据传输系统用于执行上述第三方面或第三方面中的任意一种可能的实现方式所提供的数据传输方法。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本申请的示例性实施例、特征和方面,并且用于解释本申请的原理。
图1示出了相关技术中计算双向传输时延的过程的流程图。
图2示出本申请实施例提供的一种通信系统的架构示意图。
图3示出了本申请一个示例性实施例提供的数据传输方法的流程图。
图4示出了本申请另一个示例性实施例提供的数据传输方法的流程图。
图5示出了本申请另一个示例性实施例提供的数据传输方法的流程图。
图6示出了本申请另一个示例性实施例提供的数据传输方法的流程图。
图7示出了本申请一个示例性实施例提供的数据传输装置的框图。
图8示出了本申请另一个示例性实施例提供的数据传输装置的框图。
图9示出了本申请一个示例性实施例提供的第一设备的结构示意图。
图10示出了本申请一个示例性实施例提供的第二设备的结构示意图。
具体实施方式
以下将参考附图详细说明本申请的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本申请,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本申请同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本申请的主旨。
随着网页内容丰富程度大大增加,网页元素的数量和分布范围也大幅增长,网页时延的高低会影响网络服务质量。对于时延敏感型的网络服务来说,即使很小的网络时延也会带来较大的损失。对于一些网络应用如在线游戏、视频聊天、实时支付、金融交易等应用,网络时延的高低是满足其服务质量最为重要的指标之一。
为了减少网络时延,提高网络服务质量,相关技术从不同层次对网络协议进行了一系列的优化。优化主要针对以下两个方面:
第一方面,队头阻塞(Head-of-line blocking)问题。在应用层,队头阻塞问题指的是超文本传输协议(HyperText Transfer Protocol,HTTP)请求或者响应必须遵循一定的顺序,如果前一个请求或者响应没有完成,则不能进行下一个请求或者响应。在HTTP/1.1协议中,在连续的请求时保持(Transmission Control Protocol,TCP)连接打开的状态,不用等待在接收到响应后再请求下一个元素,这种技术被称为“流水线”(pipelining),然而在HTTP/1.1协议中也存在一些问题,虽然它可以在一个TCP连接上连续请求,但是所有的响应必须按照请求发送的顺序来按序接收,因此单个慢响应可以阻塞其后的所有响应,为了解决这个问题,SPDY协议(HTTP/2协议的前身)采取了多路复用(multiplexing)的方法,即多个请求或响应共享一个TCP连接,且多个请求或响应的传输是并行的方式,在应用层不会相互产生队头阻塞。在传输层,队头阻塞的问题是指,由于SPDY协议在一条TCP连接上进行多路复用,而TCP连接只支持顺序传输,因此一个请求的数据缺失会影响到其他请求数据的传输。
第二方面,网络内容的优先级设置。如果无差别地传输所有请求或响应,在带宽有限的情况下,一些关键的请求可能会被阻塞,因此,在应用层协议中,SPDY协议引入了请求优先级的概念,使得优先级高的请求或响应得到更多的带宽资源,从而有针对性地优化了关键请求的时延。在传输层也有针对网络内容的优先级进行了协议的 改进。然而,在TCP层面做优先级划分的工作会给应用层带来管理连接和分配资源上的负担,作为一个多路复用的协议,QUIC可以在传输层提供对多个流的管理和资源分配功能,这一特性为不同流的优先级的划分提供了可能。QUIC协议对传输层进行了多路复用:在建立了客户端到服务器之间的基本连接之后,对于每个网页元素的传输,它都单独提供一个“流”进行数据传输,其中流也称为业务流。业务流的开启和关闭都是轻量级的,不会影响其所属连接且业务流与业务流相互之间独立,不影响各自的传输。
QUIC报文承载在用户数据报协议(User Datagram Protocol,UDP)/数据包传输层安全性(Datagram Transport Layer Security,DTLS)协议上。QUIC报文包括报文头部和帧包,其中Stream帧作为QUIC报文中一种特殊类型的帧,用于区分承载一个应用的不同业务流,比如业务流为音视频业务流、应用文字业务流或应用层控制协议业务流。在QUIC协议的基础上将传输时所使用的一个单向路径扩展到多个单向路径,从而形成了MPQUIC协议。
一个QUIC会话可以创建多个连接(Connections)即路径,一个业务流的报文可以在不同的连接传输,而且即使是在同一条物理链路上的往返连接也可以定义成不同的单向连接,基于MPQUIC协议交互的双方在发包时分别独立进行连接调度选路。
相关技术中,在传输过程中通过MPQUIC协议对流在多个单向路径上进行性能优先的调度选路,主要通过minRTT调度器对流进行调度。采用minRTT调度器进行调度包括:在传输数据时,对于每个打包好的数据包,选择当前RTT最小的单向路径进行传输。在多路径的场景中,首先使用RTT最小的路径(path)直到填满其发送窗口为止,然后使用RTT第二小的路径,以此类推。
该调度算法依赖计算RTT,在QUIC报文的往返路径固定的场景,RTT的计算方式通常包括如下两种可能的实现方式:
在一种可能的实现方式中,依赖网络设备之间的时间同步,比如网络时间协议(Network Time Protocol,NTP)或电子技术与信息科学工程师的协会(Institute of Electrical and Electronics Engineers,IEEE)1588协议,然后接收端通过收到的QUIC报文中的发送时间戳和本地时间进行比较,计算单向传输时延,该方案计算单向传输时延的准确性取决于设备的时间同步状态(比如是否开启时间同步功能,是否锁定时间同步源,完成同步校准等)和时间同步的精度。
在另一种可能的实现方式中,计算双向传输时延。如图1所示,计算双向传输时延的过程包括如下步骤:步骤101,发送端发送QUIC报文,并记录该QUIC报文的发送时刻T1;步骤102,接收端向发送端反馈该QUIC报文对应的确认(Acknowledge,ACK)报文,该ACK报文携带有接收端处理该QUIC报文的时延Delay;步骤103,发送端接收到该ACK报文后,记录ACK报文的接收时刻T2和读取ACK报文中携带的时延Delay;步骤104,发送端根据接收时刻T2、发送时刻T1和时延Delay计算RTT值,即RTT=T2-T1-Delay。
在基于QUIC协议的单路径交互场景,RTT用于调整QUIC协议的发包窗口,可以进行拥塞预防,往返数据的流量耦合在一个子流即等价于在一个单向路径上,采用上述数据调度策略是合适的。
但是在某些多路径传输的场景比如MPQUIC场景,为了解耦业务流和单向路径,允许数据/控制报文和其对应的ACK报文在不同的单向路径上传输。
在MPQUIC协议中,同一个业务流的报文(包括ACK报文)往返时可能选择不同的单向路径发送,所以该场景下使用测量RTT对拥塞避免有一定的价值,但是minRTT作为QUIC报文的选路调度算法就无法有效保障性能优先的转发。另外,可以采用上述的最小单向传输时延作为选路调度算法,但是NTP协议典型的授时精度是10ms,误差较大,不适合作为RTT计算依据,而高精度时间协议(Precision Time Protocol,PTP)和IEEE 1588协议一般需要硬件支持,在终端设备上还不够普及。所以相关技术中尚未提供一种合理且有效的方法可以解决上述的技术问题。
本申请实施例提供了一种多路径传输的时延测量场景中支持测量单向传输时延的方案,通过第一设备向第二设备发送测量请求,在接收到在多个单向路径上分别发送的测量应答后,根据多个单向路径各自对应的单向传输时延确定测量结果通告,向第二设备发送测量结果通告,该测量结果通告用于指示单向传输时延最小的单向路径或者多个单向路径各自对应的单向传输时延的数值或排序结果;从而在存在一定的时域惯性特征的网络中实现第二设备能够根据测量结果通告按照最小单向传输时延优先的算法选择对应的单向路径进行数据报文传输,避免了相关技术中因为同一个业务流的报文往返时传输路径无绑定关系即可能采用不同的单向路径,导致RTT测量结果无法有效应用minRTT调度算法的问题,提高了数据调度的准确性,保证了多路径传输的传输性能。
首先,对本申请实施例中可能涉及的术语进行解释。
路径:是发送端与接收端之间的路径。路径可以用四元组来标识,该四元组用于表示源地址(和/或端口)和目的地址(和/或端口)对。应理解,支持多路径传输技术的接收端和发送端,都可以在其主机(host)中准备多个地址,以便标识多个路径。
在本申请实施例中,单向路径也称连接或单向流路径。示意性的,在MP-QUIC协议中,单向路径称为连接(Connection)或者单向流(uniflow)。单向路径与物理链路存在映射关系,根据建链情况和网络路由信息可以将单向路径映射到物理链路上,该映射关系在单向路径的MP-QUIC协议定义的生命周期内并不是固定的,可能随着网络部署的冗余链路在单物理链路故障场景发生变化。
多路径连接:通过一个应用,在两个主机间可以通信的一组连接,该组连接包括多个连接。其中,连接和应用的套接字(socket)之间可以是一一映射,也可以是多对一映射。多路径连接就是使用多个路径传输数据的连接。比如,在QUIC协议中,一个应用创建一个套接字,对应一个QUIC会话(Session),其中可以创建多个连接,应用可以不感知存在多个连接。
在本申请实施例中,第一设备和第二设备之间建立有多个单向路径即多路径连接,多路径连接包括MPQUIC协议连接,或者包括基于流量工程扩展的资源预留协议(Resource ReSerVation Protocol-Traffic Engineering,RSVP-TE)、或标签分发协议(Label Distribution Protocol,LDP)、或边界网关协议(Border Gateway Protocol,BGP)-虚拟专用网络(Virtual Private Network,VPN)/以太网虚拟专用网络(Ethernet Virtual  Private Network,EVPN)创建的标记交换路径(Label Switched Path,LSP)、或虚拟扩展局域网(Virtual Extensible Local Area Network,VXLAN)隧道、或通用路由封装(Generic Routing Encapsulation,GRE)隧道。为了方便说明,下面主要以第一设备与第二设备之间的多路径连接包括MPQUIC协议连接为例进行说明。非MPQUIC协议的多路径传输的时延测量场景可类比参考相关描述,在此不再赘述。
包(packet):带有头部(header)的一包数据,该头部可以是逻辑上完整或者不完整的。通常,是一物理上打包(physical packaging of data)的数据,当然,也可以是一逻辑上打包的数据(logical packaging of data)。包这个概念用于描述数据在主机以及与该主机相连的网络之间的交互。
ACK报文:也称为确认包、确认报文、ACK、反馈报文、通知。ACK报文中包括QUIC协议的ACK帧或MP_ACK帧,比如某一数据包的序列号,通常用于表示接收端通知发送端已接收到该数据包。
需要说明的是,本申请实施例所涉及的一部分相关名词(比如主机、路径、链路、子流)可参考IETF标准组织的文件中对应的相关描述,本文对此不再赘述。
RTT:表示发送端从发送数据开始,直到接收到接收端发送的对应该数据的接收确认信息(如ACK报文)的过程,所经历的时延。
第一设备/第二设备:第一设备/第二设备为物理设备或者虚拟设备。其中,物理设备是指物理设备是实际存在的设备;虚拟设备是指通过由物理设备变化成的多个对应的逻辑设备来表现的设备;逻辑设备是指与物理设备具有映射关系的,由逻辑元件构成的,可以进行逻辑运算(与,或,非等)的设备。其中,该映射关系可以包括逻辑设备名、物理设备名、设备驱动程序入口。
在某些场景下,第一设备和第二设备可能在同一物理设备上或者同一个集群中。
请参考图2,其示出本申请实施例提供的一种通信系统的架构示意图。该通信系统可以包括第一设备10和第二设备20。第一设备10和第二设备20均包括多个网络地址,如图2所示,第一设备10与第二设备20可以通过彼此的多个网络地址建立多个单向路径。比如单向路径1,单向路径2,……,单向路径N,N为大于1的正整数。第一设备10和第二设备20可以通过该多个单向路径进行多路径数据传输。
可选地,第一设备10与第二设备20之间建立的多路径连接包括MPQUIC协议连接。第一设备10和第二设备20之间采用MPQUIC协议传输数据。
在第一设备10与第二设备20之间的多路径连接建立后,既可以测量第二设备20到第一设备10的多个单向路径各自对应的单向传输时延,也可以测量第一设备10到第二设备20的多个单向路径各自对应的单向传输时延。
若需要测量第二设备20到第一设备10的多个单向路径各自对应的单向传输时延,则第一设备10作为报文接收端向第二设备20发送的测量请求,第二设备20作为报文发送端响应第一设备10发送的测量请求。
若需要测量第一设备10到第二设备20的多个单向路径各自对应的单向传输时延,则第二设备20作为报文接收端向第一设备10发送的测量请求,第一设备10作为报文发送端响应第二设备20发送的测量请求。
为了方便说明,本申请实施例仅以第一设备10为报文接收端,第二设备20为报文发送端,测量第二设备20到第一设备10的多个单向路径的单向传输时延为例进行说明。
第一设备10和第二设备20在建立上述多个单向路径后,协商数据调度策略,数据调度策略协商由报文接收端即第一设备10主动发起,第一设备10用于向第二设备20发送测量请求;在接收到在多个单向路径上分别发送的测量应答后,根据多个单向路径各自对应的单向传输时延确定测量结果通告;向第二设备20发送测量结果通告,测量结果通告用于指示单向传输时延最小的单向路径或者多个单向路径各自对应的单向传输时延的数值或排序结果。
其中,上述的单向路径可以是WiFi连接,蜂窝连接(如4G LTE连接,5G NR连接,3G连接,码分多址连接(Code Division Multiple Access,CDMA),2G连接等),蓝牙连接,数据传输线,近场通信NFC,红外,光保真(Light Fidelity,Li-fi)技术等,还可以是其他无线连接或者有线连接,对此,本申请实施例不做限定。
其中,第一设备10和/或第二设备20可以是具有无线通信功能的电子设备。可选地,第一设备10和/或第二设备20为智能设备,该智能设备用于配合无线上网(Wi-Fi)路由器按需提供免配置热点功能。示意性的,第一设备10和/或第二设备20为终端设备,比如可以是手机(mobile phone)、平板电脑(Pad)、带收发功能的电脑、虚拟现实(virtual reality,VR)终端设备、增强现实(augmented reality,AR)终端设备、工业控制(industrial control)中的无线终端、无人驾驶(self-driving)中的无线终端、远程医疗(remote medical)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端、可穿戴设备、车载设备等。
第一设备10和/或第二设备20还可以是支持多路径传输协议的网元,包括网络侧设备,比如网关、接入路由器、核心路由器、前端路由器或者负载均衡器。第一设备10和/或第二设备20还可以是支持多路径传输协议的云端设备,比如服务器。服务器也称为服务端,服务端可以是为客户端服务的,服务端可以向客户端提供资源以及保存客户端数据等。
需要说明的是,第一设备10和第二设备20可以是同类的设备,比如,第一设备10和第二设备20均可以为通信终端类设备,如手机、智能手表、台式机、平板电脑、智能电视盒,UMPC、上网本、PDA或者PMP等。第一设备10和第二设备20也可以是不同类的设备。比如,第一设备10是通信终端类设备时,第二设备20可以是网络侧设备,如网关、服务器、接入路由器、核心路由器、前端路由器或者负载均衡器等。
下面,采用几个示例性实施例对本申请实施例提供的数据传输方法进行介绍。
请参考图3,其示出了本申请一个示例性实施例提供的数据传输方法的流程图,本实施例以该方法用于图2所示的通信系统中来举例说明。该方法包括以下几个步骤。
步骤301,第一设备向第二设备发送测量请求。
可选地,第二设备到第一设备之间建立完成多个单向路径,即第二设备的发送路径标识与第一设备的接收路径标识一一对应,且第一设备的发送路径标识和第二设备 的接收路径标识也一一对应。在第一设备与第二设备之间建立完成多个单向路径后,第一设备主动发起测量请求,其中第一设备为报文接收端,第二设备为报文发送端。
可选地,测量请求为测量请求帧,或者,测量请求为数据报文中携带的测量请求选项或标记位。在一种可能的实现方式中,第一设备向第二设备发送测量请求帧。在另一种可能的实现方式中,第一设备向第二设备发送携带有测量请求选项或标记位的数据报文。在MPQUIC协议中,数据报文也称为QUIC报文,数据报文为包括Stream帧或ACK/MP_ACK帧的QUIC报文。
第一设备在第一单向路径上向第二设备发送一次测量请求,第一单向路径为第一设备到第二设备的多个单向路径中的任意一个单向路径。
可选地,第一单向路径为第一设备到第二设备的多个单向路径中单向传输时延最小的单向路径。
步骤302,第二设备接收第一设备发送的测量请求。
可选地,第二设备接收到第一设备在单向路径上发送的测量请求,其中单向路径为第一设备到第二设备的任意一个可用的单向路径,或者单向路径为第一设备到第二设备的多个单向路径中单向传输时延最小的单向路径。
可选地,测量请求用于指示第二设备在接收到测量请求后在多个单向路径上分别发送测量应答。
步骤303,第二设备在多个单向路径上分别发送测量应答。
第二设备在接收到测量请求后,在第二设备到第一设备的多个单向路径上分别发送对应的测量应答,该测量应答为测量请求对应的测量应答,该测量应答用于指示第二设备成功接收到该测量请求。
可选地,对于第二设备到第一设备的多个单向路径中的每个单向路径,第二设备在该单向路径上发送该测量应答。其中,第二设备到第一设备的多个单向路径为第二设备到第一设备的所有单向路径或者第二设备到第一设备的指定测量的多个单向路径。本申请实施例对此不加以限定。
可选地,传输测量应答的多个单向路径中的任意一个单向路径与传输测量请求的单向路径均不相同。或者,传输测量应答的多个单向路径中存在一个单向路径与传输测量请求的单向路径相同。
可选地,测量应答为测量应答帧。
步骤304,第一设备在接收到在多个单向路径上分别发送的测量应答后,根据多个单向路径各自对应的单向传输时延确定测量结果通告。
第一设备依次接收到在多个单向路径上分别发送的测量应答后,测量比较多个单向路径各自对应的单向传输时延,根据多个单向路径各自对应的单向传输时延确定测量结果通告。
可选地,第一设备在多个单向路径中确定单向传输时延最小的单向路径。
需要说明的是,测量比较多个单向路径各自对应的单向传输时延,可以基于连接测量,不区分业务流,也可以基于业务流测量。若基于连接测量,则测量结果针对所有业务流的数据调度选路生效,若基于业务流测量,则测量结果只针对指定测量的业务流的数据调度选路生效。
步骤305,第一设备向第二设备发送测量结果通告,测量结果通告用于指示单向传输时延最小的单向路径或者多个单向路径各自对应的单向传输时延的数值或排序结果。
可选地,第一设备在第一设备到第二设备的单向路径上发送测量结果通告,其中单向路径为第一设备到第二设备的任意一个可用的单向路径,或者单向路径为第一设备到第二设备的多个单向路径中单向传输时延最小的单向路径。
可选地,多个单向路径各自对应的单向传输时延的排序结果包括多个单向路径各自对应的单向传输时延从小到大的排序顺序,或者,多个单向路径各自对应的单向传输时延的排序结果包括多个单向路径各自对应的单向传输时延从大到小的排序顺序。本申请实施例对此不加以限定。
其中,测量结果通告中携带有测量序号。可选地,测量结果通告为测量结果通告帧。
步骤306,第二设备接收第一设备发送的测量结果通告。
第二设备接收第一设备发送的测量结果通告,测量结果通告以供第二设备在向第一设备发送数据报文时按最小单向传输时延优先的算法选择对应的单向路径发送数据报文。
测量结果通告用于指示单向传输时延最小的单向路径或者多个单向路径各自对应的单向传输时延的数值或排序结果。其中,多个单向路径为第二设备到第一设备的所有单向路径或者第二设备到第一设备的指定测量的多个单向路径。本申请实施例对此不加以限定。
第二设备到第一设备的所有单向路径中未参与测量的单向路径对应的单向传输时延默认为最大。
可选地,第二设备接收到第一设备在单向路径上发送的测量结果通告,其中单向路径为第一设备到第二设备的任意一个可用的单向路径,或者单向路径为第一设备到第二设备的多个单向路径中单向传输时延最小的单向路径。
可选地,传输测量应答的多个单向路径中的任意一个单向路径与传输测量结果通告的单向路径均不相同。或者,传输测量应答的多个单向路径中存在一个单向路径与传输测量结果通告的单向路径相同。
可选地,传输测量请求的单向路径与传输测量结果通告的单向路径为同一个单向路径,或者为不同的两个单向路径。本实施例对此不加以限定。
在一种可能的实现方式中,测量结果通告用于指示多个单向路径各自对应的单向传输时延的数值,则在本次测量任务完成后,第二设备按照单向传输时延的数值将多个单向路径进行排序,在排序后根据单向传输时延从小到大的顺序,按最小单向传输时延优先的算法选择对应的单向路径发送数据报文。
在另一种可能的实现方式中,测量结果通告用于指示多个单向路径各自对应的单向传输时延的排序结果,比如排序结果包括多个单向路径各自对应的单向传输时延从小到大的排序顺序,则在本次测量任务完成后,第二设备根据单向传输时延从小到大的顺序,按最小单向传输时延优先的算法选择对应的单向路径发送数据报文。
在另一种可能的实现方式中,测量结果通告用于指示单向传输时延最小的单向路 径,则在本次测量任务完成后,第二设备在该单向传输时延最小的单向路径上发送数据报文。
需要说明的是,第一设备与第二设备之间交互的数据帧(比如测量请求帧、测量应答帧、测量结果通告帧)可以封装为数据报文后发送,并在对端设备接收到数据报文后解析得到其中的数据帧。在MPQUIC协议中,数据报文为QUIC报文。
综上所述,本申请实施例通过报文接收端即第一设备主动发起测量请求,通过与第二设备的三次交互,向第二设备通告第二设备到第一设备的多个单向路径各自对应的单向传输时延的数值或排序结果或者单向传输时延最小的单向路径;从而在存在一定的时域惯性特征的网络中实现第二设备能够根据测量结果通告按照最小单向传输时延优先的算法选择对应的单向路径进行数据报文传输,避免了相关技术中因为同一个业务流的报文往返时传输路径无绑定关系即可能采用不同的单向路径,导致RTT测量结果无法有效应用minRTT调度算法的问题,提高了数据调度的准确性,保证了多路径传输的传输性能。
本申请实施例还通过第二设备收到测量请求后,向所有到第一设备的单向路径上发送测量应答,以便第一设备能够准确地确定出第二设备到第一设备的多个单向路径各自对应的单向传输时延的测量情况。
请参考图4,其示出了本申请另一个示例性实施例提供的数据传输方法的流程图,本实施例以该方法用于图2所示的通信系统中来举例说明。该方法包括以下几个步骤。
步骤401,第一设备向第二设备发送测量请求,并记录测量请求对应的测量序号和发送时刻。
可选地,测量请求为操作触发或者事件触发或者周期任务触发。即第一设备向第二设备发送测量请求的触发条件,包括但不限于以下几种可能的实现方式:
在一种可能的实现方式中,第一设备在接收到预设操作信号的情况下,向第二设备发送测量请求。
在另一种可能的实现方式中,第一设备感知到预设触发事件的情况下,向第二设备发送测量请求。比如,预设触发事件为第一设备与第二设备之间的连接新增事件,连接新增事件为第二设备到第一设备的单向路径数量发生变更的事件。
可选的,第一设备在接收到第二设备发送的通知报文后,向第二设备发送测量请求,通知报文用于指示第二设备到第一设备的单向路径数量发生变更即连接新增事件。
在第二设备到第一设备的单向路径数量发生变更的情况下,第二设备向第一设备发送通知报文。第一设备在接收到第二设备发送的通知报文后,向第二设备发送测量请求。
示意性的,第二设备到第一设备的单向路径数量发生变更(比如从3个变成4个),第一设备接收到第二设备发送的MPQUIC通告报文,该MPQUIC协议通告报文用于指示连接新增事件或者单向流新增事件,在连接成功后触发本次测量任务,即向第二设备发送测量请求。
比如,MPQUIC协议通告报文为包括NEW_CONNECTION_ID/MP_NEW_CONN ECTION_ID帧的QUIC报文,用于请求创建新的连接。又比如,MPQUIC协议通告报 文为包括UNIFLOWS帧的QUIC报文,该UNIFLOWS帧中的单向流标识(uinflow I D)第一设备本地没有创建,用于请求创建新的单向流。
示意性的,第一设备接收到第二设备发送的BGP-VPN通告报文,该BGP-VPN通告报文用于指示标签路由新增事件,触发本次测量任务,即向第二设备发送测量请求。
在另一种可能的实现方式中,第一设备根据预配置或预定义的测量周期,向第二设备发送测量请求。
其中,测量周期可以是预配置的,也可以是第一设备与第二设备协议交互后确定的测量周期。比如,测量周期为5s。
示意性的,第一设备首次感知到连接新增事件后启动定时器,按照测量周期向第二设备发送测量请求。
需要说明的是,本实施例对发送测量请求的触发条件不加以限定。
可选地,以多路径连接为MPQUIC协议连接为例,第一设备与第二设备进行交互,完成QUIC会话和多路径连接的建立。第一设备触发本次测量任务时,生成本次测量任务的测量请求,向第二设备发送测量请求,并记录测量请求对应的测量序号和发送时刻。
其中,测量请求中携带有测量序号,测量序号用于指示本次测量任务。测量序号的初始值为零,创建下一次测量任务后对应的测量序号加一。
可选地,第一设备还记录指示传输测量请求的单向路径的单向路径标识。示意性的,单向路径标识为通信信道标识(Communication Channel ID,CID)。
可选地,第一设备在发送测量请求后启动本次测量任务的第一定时器,用于等待接收第二设备在多个单向路径上分别发送该测量应答。
可选地,第一设备生成本次测量任务的测量请求帧,将测量请求帧封装为数据报文,将数据报文发送至第二设备。可选地,测量请求对应的发送时刻为第一设备生成该测量请求帧的时刻。
示意性的,测量请求帧包括但不限于如下几个字段:类型字段、测量序号字段和时间戳字段。
1、类型字段,该类型字段用于指示帧类型为测量请求帧。比如,指示测量请求帧的类型字段Type为TBD1,比如0x80。
2、测量序号字段,该测量序号字段为指示测量序号的字段。比如,测量序号字段为MeasureTask SN。
3、时间戳字段,该时间戳字段为指示测量请求的发送时刻的字段。比如,时间戳字段为TimeStamp。其中,时间戳字段为可选的字段。
需要说明的是,上述仅示例性地对测量请求帧的帧格式进行介绍,本申请实施例对此不加以限定。
可选地,在MPQUIC协议中,测量请求帧封装的数据报文的报文头至少携带有第一单向路径标识。
步骤402,第二设备接收第一设备发送的测量请求。
第二设备接收第一设备发送的测量请求,并记录该测量请求的接收时刻。
需要说明的是,第二设备接收第一设备发送的测量请求的细节可参考上述实施例 中的相关描述,在此不再赘述。
步骤403,第二设备在多个单向路径上分别发送测量应答。
第二设备接收到第一设备发送的测量请求后,对于第二设备到第二设备的多个单向路径中的每个单向路径,第二设备在该单向路径上发送该测量应答。
其中,测量应答携带有单向路径标识、测量序号和本地处理时延,单向路径标识用于指示传输测量应答的单向路径,本地处理时延为第二设备发送测量应答的时刻与接收测量请求的时刻之间的差值。
可选地,测量应答还携带有测量请求的接收时刻,即第二设备接收到测量请求的时刻。
可选地,第二设备接收到测量请求后启动本次测量任务的第二定时器,用于等待接收第一设备发送的测量结果通告。即在第二定时器所指示的第二测量超时时刻前,第二设备接收测量结果通告。
可选地,对于第二设备到第二设备的多个单向路径中的每个单向路径,第二设备生成该单向路径对应的测量应答帧,将该测量应答帧封装为数据报文,在该单向路径上发送该测量应答帧封装后的数据报文。可选地,第二设备发送测量应答的时刻为第二设备生成该测量应答帧的时刻。
示意性的,测量应答帧包括但不限于如下几个字段:类型字段、测量序号字段、时间戳字段和时延字段。
1、类型字段,该类型字段用于指示帧类型为测量应答帧。比如,指示测量应答帧的类型字段Type为TBD2,比如0x81。
2、测量序号字段,该测量序号字段为指示测量序号的字段。比如,测量序号字段为MeasureTask SN。
3、时间戳字段,该时间戳字段为指示测量请求的发送时刻的字段和/或指示测量请求的接收时刻的字段,比如,时间戳字段为TimeStamp。其中,时间戳字段为可选的字段。
4、时延字段,该时延字段为指示本地处理时延的字段。比如,时延字段为Delay。
需要说明的是,上述仅示例性地对测量应答帧的帧格式进行介绍,本申请实施例对此不加以限定。
步骤404,第一设备在接收到在多个单向路径上分别发送的测量应答后,根据多个单向路径各自对应的单向传输时延确定测量结果通告。
可选地,第一设备在发送测量请求后启动本次测量任务的第一定时器,在第一定时器所指示的第一测量超时时刻前,接收在多个单向路径上分别发送的测量应答。
若在单向路径上传输的测量应答发生丢失,则在第一测量超时时刻前第二设备可以在该单向路径上重传该测量应答。
可选地,第一设备在接收到每个单向路径上发送的测量应答后,确定测量应答对应的往返路径的往返时延,往返路径包括传输测量请求的单向路径和传输测量应答的单向路径;根据多个往返路径各自对应的单向路径标识和往返时延,确定多个单向路径各自对应的单向传输时延的数值或排序结果,单向路径标识用于指示传输测量应答的单向路径。第一设备根据多个单向路径各自对应的单向传输时延的数值或排序结果, 确定测量结果通告。
其中测量应答对应的往返路径包括传输测量请求的单向路径和传输该测量应答的单向路径。往返路径的往返时延为传输测量请求的单向路径对应的单向传输时延与传输对应的测量应答的单向路径对应的单向传输时延之和。
可选地,传输测量应答的多个单向路径中的任意一个单向路径与传输测量请求的单向路径均不相同。或者,传输测量应答的多个单向路径中存在一个单向路径与传输测量请求的单向路径相同。
可选地,第一设备在接收到每个单向路径上发送的测量应答后,记录测量应答的接收时刻;根据测量应答的接收时刻、测量请求的发送时刻和测量应答携带的本地处理时延,确定测量应答对应的往返路径的往返时延。
可选地,测量请求的发送时刻在测量请求和测量应答中携带。第一设备在生成并发送测量请求时,记录该测量请求的发送时刻,将该发送时刻填充至测量请求中。第二设备记录测量请求的发送时刻,并将测量请求的发送时刻填充至测量应答中。
测量请求的发送时刻用于在第一设备接收到在多个单向路径上分别发送的测量应答后估算比较多个单向路径各自对应的单向传输时延。第一设备本地缓存该测量请求的发送时刻,在本次测量任务中第一设备收到多个测量应答或者本次测量任务失败后,可以删除缓存的记录(包括测量请求的发送时刻)。若测量请求和测量应答中携带有测量请求的发送时刻,则第一设备本地可以不用缓存该测量请求的发送时刻。
第一设备将测量应答的接收时刻与测量请求的发送时刻、测量应答携带的本地处理时延依次相减得到该测量应答对应的往返路径的往返时延。
示意性的,以单向路径标识为CID为例,第一设备在单向路径CID3发送测量请求,并记录测量请求的发送时刻T1,第一设备在接收到每个测量应答帧,记录测量应答帧对应的QUIC报文的接收时刻Tx(比如单向路径CID1上的接收时刻为T2,单向路径CID2上的接收时刻为T3),然后解析测量应答帧中的本地处理时延Dx(比如单向路径CID1的本地处理时延为D1,单向路径CID2的本地处理时延为D2),计算测量应答帧对应的往返路径的往返时延即RTT值。比如,往返路径即单向路径CID3和单向路径CID1的RTT(CID3,CID1)=T2-T1-D1=Delay(CID3)+Delay(CID1);往返路径即单向路径CID3和单向路径CID2的RTT(CID3,CID2)=T3-T1-D2=Delay(CID3)+Delay(CID2)。
可选地,第一设备根据多个往返路径各自对应的单向路径标识和往返时延,确定多个单向路径各自对应的单向传输时延的数值或排序结果。其中,多个单向路径为第二设备到第一设备之间的多个单向路径。
在一种可能的实现方式中,测量应答还携带有测量请求的接收时刻,第一设备可确定多个单向路径各自对应的单向传输时延的数值或排序结果。第一设备将测量请求的接收时刻与测量请求的发送时刻的差值确定为用于传输测量请求的单向路径的单向传输时延;根据该单向传输时延、单向路径标识和往返时延,确定第二设备到第一设备之间的多个单向路径各自对应的单向传输时延,从而确定多个单向路径各自对应的单向传输时延的数值或排序结果。
即对于每个往返路径,该往返路径包括用于传输测量请求的单向路径和用于传输 测量应答的单向路径,将往返路径的往返时延与用于传输测量请求的单向路径的单向传输时延的差值确定为多个单向路径各自对应的单向传输时延。
示意性的,基于上述例子提供的往返时延RTT(CID3,CID1)和RTT(CID3,CID2),若测量应答帧携带有测量请求的接收时刻T4,则确定CID3对应的单向传输时延T i=T4-T1,从而确定CID1对应的单向传输时延T y=T2-T1-D1-T i,CID2对应的单向传输时延T z=T3-T1-D2-T i
在另一种可能的实现方式中,测量应答未携带有测量请求的接收时刻,第一设备可确定多个单向路径各自对应的单向传输时延的排序结果。由于往返时延为用于传输测量请求的单向路径的单向传输时延与用于传输测量应答的单向路径的单向传输时延之和,同一次测量任务中测量请求只传输一次,即用于传输测量请求的单向路径是相同的,则根据多个往返路径各自对应的往返时延,确定用于传输测量应答的多个单向路径各自对应的单向传输时延的数值或排序结果。多个往返时延各自对应的排序结果,即为多个往返时延各自对应的用于传输测量应答的单向路径对应的单向传输时延的排序结果。
示意性的,基于上述例子提供的往返时延RTT(CID3,CID1)和RTT(CID3,CID2),若RTT(CID3,CID1)小于RTT(CID3,CID2),则确定CID1对应的单向传输时延小于CID2对应的单向传输时延。
步骤405,第一设备向第二设备发送测量结果通告,测量结果通告包括单向路径标识列表或者单向传输时延最小的单向路径的单向路径标识,单向路径标识列表用于指示多个单向路径各自对应的单向传输时延的数值或排序结果。
第一设备确定单向路径标识列表或者单向传输时延最小的单向路径的单向路径标识后,向第二设备发送测量结果通告,测量结果通告包括单向路径标识列表或者单向传输时延最小的单向路径的单向路径标识。
可选地,第一设备根据多个单向路径各自对应的单向传输时延的数值或排序结果,得到单向路径标识列表,将单向路径标识列表和测量序号填充至测量结果通告帧中,将测量结果通告帧封装为数据报文后发送至第二设备。
示意性的,测量结果通告帧包括但不限于如下几个字段:类型字段、测量序号字段、数量字段、长度字段和单向路径标识列表字段。
1、类型字段,该类型字段用于指示帧类型为测量结果通告帧。比如,指示测量结果通告帧的类型字段Type为TBD3,比如0x82。
2、测量序号字段,该测量序号字段为指示测量序号的字段。比如,测量序号字段为MeasureTask SN。
3、数量字段,数量字段为指示单向路径标识列表中的单向路径标识的数量的字段。比如,数量字段为unipath num。
4、长度字段,长度字段为指示单向路径标识的长度的字段,对于同一组QUIC会话中的各个单向路径标识的字节长度定义相同。比如,长度字段为unipath ID length。
5、单向路径标识列表字段,该单向路径标识列表字段为指示单向路径标识列表的字段。比如,单向路径标识列表字段为unipath id list。
需要说明的是,上述仅示例性地对测量结果通告帧的帧格式进行介绍,本申请实 施例对此不加以限定。
可选地,单向路径标识列表包括按照单向传输时延的大小顺序排序后的多个单向路径标识。比如,单向路径标识列表包括按照单向传输时延从小到大顺序依次排列的多个单向路径标识。
可选地,单向路径标识列表包括多个单向路径和多个单向路径各自对应的单向传输时延的数值。
第一设备向第二设备发送测量结果通告后,关闭第一定时器。若启动的第一定时器超时,表示本次测量任务失败,第一设备释放本次测量任务所使用的资源,包括第一定时器。
步骤406,第二设备接收第一设备发送的测量结果通告。
第二设备接收第一设备发送的测量结果通告,测量结果通告包括单向路径标识列表或者单向传输时延最小的单向路径的单向路径标识,单向路径标识列表用于指示多个单向路径各自对应的单向传输时延的数值或排序结果。
可选地,测量结果通告以供第二设备作为最小单向传输时延算法来调度业务数据选择合适的单向路径进行数据传输,满足业务数据的性能优先发送的述求。该数据调度算法对于测量应答帧这种需要在每个单向路径上发送的数据报文无效,测量应答帧通常不与其他的控制帧或数据帧合并打包到一个数据报文中,比如控制帧为ACK帧,数据帧为Stream帧。若将测量应答帧与其它的帧打包在一个数据报文,则以测量应答帧自身的单向路径选路为准。
可选地,第二设备接收到数据报文后解析得到测量结果通告帧。
需要说明的是,第二设备接收第一设备发送的测量结果通告的细节可参考上述实施例中的相关细节,在此不再赘述。
步骤407,第二设备在第二单向路径上向第一设备发送数据报文。
可选地,测量结果通告包括单向路径标识列表。在本次测量任务完成后,第二设备根据测量结果通告,按照单向传输时延从小到大的顺序选择当前可用的第二单向路径;在第二单向路径上向第一设备发送数据报文。
示意性的,第二设备根据测量结果通告,优先选择单向传输时延最小的单向路径作为第二单向路径;当该单向路径上的剩余带宽不足时,按照单向传输时延从小到大的顺序选择可用的单向路径作为第二单向路径。
可选地,测量结果通告包括单向传输时延最小的单向路径的单向路径标识,该单向路径标识对应的单向路径即为第二单向路径。在本次测量任务完成后,第二设备在该第二单向路径上向第一设备发送数据报文。
步骤408,第一设备接收第二设备在第二单向路径上发送的数据报文。
第一设备接收第二设备在第二单向路径上发送的数据报文,第二单向路径为第二设备按照单向传输时延从小到大的顺序选择的当前可用的单向路径。
需要说明的是,在MPQUIC协议中,上述的数据报文也称为QUIC报文。
在一个示意性的例子中,如图5所示,第一设备为主机A,第二设备为主机B,主机A与主机B之间建立有两个单向路径即单向路径1和单向路径2。若需测量主机B到主机A的多个单向路径各自对应的单向传输时延,则主机A主动发起测量。步骤 501,主机A在单向路径1上向主机B发送测量请求帧,记录该测量请求帧的发送时刻T1。步骤502,主机B在单向路径1和单向路径2上向主机A分别发送测量请求帧对应的测量应答帧,该测量应答帧携带有单向路径标识和本地处理时延Delay。对于在多个单向路径上分别发送的测量应答帧中的每个测量应答帧,主机A在接收到该测量应答帧后,记录该测量应答帧的接收时刻Tx(比如单向路径1上的接收时刻为T2,单向路径2上的接收时刻为T3),读取测量应答帧中携带的单向路径标识和本地处理时延Delay(比如单向路径1的本地处理时延为D1,单向路径2的本地处理时延为D2)。对于每个往返连接,主机A根据接收时刻Tx、发送时刻T1和本地处理时延Delay计算该往返连接对应的RTT值(计算方式可类比参考上述实施例),从而确定单向路径1和单向路径2各自对应的单向传输时延的数值或排序结果。步骤503,主机A在单向路径1上向主机B发送测量结果通告帧,测量结果通告帧包括单向路径标识列表,单向路径标识列表用于指示单向路径1和单向路径2各自对应的单向传输时延的数值或排序结果。
综上所述,本申请实施例还通过在第二设备到第一设备的单向路径数量发生变更的情况下,向第一设备发送通知报文,第一设备在接收到第二设备发送的通知报文后,向第二设备发送测量请求;使得第一设备在感知到连接新增事件的情况下触发单向传输时延测量的测量任务,即测量任务是基于连接新增事件触发的,减少不必要的测量流程和网络开销。
在一种可能的实现方式中,以MPQUIC协议为例,本申请实施例提供的数据传输方法包括基于MPQUIC协议连接,比较多个单向路径各自对应的单向传输时延的大小的方法。以第一设备为MPQUIC接收端(比如MPQUIC客户端),第二设备为MPQUIC发送端(比如MPQUIC服务器)为例,比较MPQUIC发送端到MPQUIC接收端的多个单向路径各自对应的单向传输时延大小,测量请求发起前,MPQUIC接收端和MPQUIC发送端已经完成QUIC会话和多路径连接的建立。测量请求由MPQUIC接收端主动发起。
其中,MPQUIC接收端包括MPQUIC多连接管理模块。MPQUIC发送端包括MPQUIC协议模块。本申请实施例提供的数据传输方法包括但不限于如下步骤,如图6所示:
步骤601,MPQUIC接收端的MPQUIC多连接管理模块感知到连接新增事件,生成UNICONNECTIONS_DELAY_REQ帧。
MPQUIC接收端的MPQUIC多连接管理模块感知到MPQUIC发送端和MPQUIC接收端连接了多个单向路径,相当于感知到连接新增事件,触发本次测量任务,生成一个测量请求帧即UNICONNECTIONS_DELAY_REQ帧。
示意性的,UNICONNECTIONS_DELAY_REQ帧的定义如下:UNICONNECTIO NS_DELAY_REQ Frame{Type(8)=TBD1,MeasureTask SN(24),TimeStamp(64)}。
步骤602,MPQUIC接收端的MPQUIC多连接管理模块将UNICONNECTIONS_DELAY_REQ帧封装为一个QUIC报文,在任意一个可用的单向路径上将QUIC报文发送至MPQUIC发送端。
其中,UNICONNECTIONS_DELAY_REQ帧中携带有本次测量任务的测量序号SN。
MPQUIC接收端本地记录QUIC报文的发送时刻T1,启动本次测量任务的第一定时器准备接收对应的测量应答帧即UNICONNECTIONS_DELAY_RESP帧。
可选地,QUIC报文的发送时刻T1携带在UNICONNECTIONS_DELAY_REQ帧和对应的UNICONNECTIONS_DELAY_RESP帧中。
步骤603,MPQUIC发送端的MPQUIC协议模块收到该QUIC报文后,解析得到UNICONNECTIONS_DELAY_REQ帧。
MPQUIC发送端的MPQUIC协议模块收到该QUIC报文后,解析得到UNICONNECTIONS_DELAY_REQ帧,并记录接收到该QUIC报文的时刻Tr和本次测量任务的测量序号SN。
步骤604,MPQUIC发送端的MPQUIC协议模块将每个单向路径对应的UNICONNECTIONS_DELAY_RESP帧封装为一个QUIC报文,将多个单向路径各自对应的QUIC报文分别发送给MPQUIC接收端。
MPQUIC发送端的MPQUIC协议模块根据测量请求,检测本地的发送连接列表,发送连接列表包括MPQUIC发送端到MPQUIC接收端的多个单向路径。然后为每个单向路径生成一个测量应答帧即UNICONNECTIONS_DELAY_RESP帧。对于每个单向路径,将每个单向路径对应的UNICONNECTIONS_DELAY_RESP帧封装为一个QUIC报文,并在发送QUIC报文前,记录该QUIC报文的发送时刻Tt,将Tt与Tr相减得到的本地处理时延Dx和SN填充到UNICONNECTIONS_DELAY_RESP帧中。MPQUIC发送端的MPQUIC协议模块将多个QUIC报文分别发送给MPQUIC接收端。
示意性的,UNICONNECTIONS_DELAY_RESP帧的定义如下:UNICONNECTIO NS_DELAY_RESP Frame{Type(8)=TBD2,Measure Task SN(24),TimeStamp(64),De lay(i)}。
可选的,MPQUIC发送端的MPQUIC协议模块接收到UNICONNECTIONS_DELAY_REQ帧后启动第二定时器,该第二定时器用于等待MPQUIC接收端发送测量结果通告帧即UNICONNECTIONS_DELAY_RESULT帧。
步骤605,MPQUIC接收端的MPQUIC多连接管理模块收到每个UNICONNECTIONS_DELAY_RESP帧,记录对应QUIC报文接收时间Tx,解析UNICONNECTIONS_DELAY_RESP帧中携带的本地处理时延Dx,计算对应的往返连接的往返时延RTT值。
MPQUIC接收端的MPQUIC多连接管理模块在本次测量任务的测量周期内第一定时器所指示的第一测量超时时刻前,等待接收所有本地接收连接上MPQUIC发送端发送过来的UNICONNECTIONS_DELAY_RESP帧。收到每个UNICONNECTIONS_DELAY_RESP帧,都记录对应QUIC报文接收时间Tx,然后解析UNICONNECTIONS_DELAY_RESP帧的Dx,计算对应连接的RTT值。比如:测量请求的发送时刻为T1,MPQUIC发送端到MPQUIC接收端的单向路径1上的接收时刻为T2,对应的本地处理时延为D1;MPQUIC发送端到MPQUIC接收端的单向路径2上的接收时刻为T3,对应的本地处理时延为D2。RTT(CID3,CID1)=T2-T1-D1=Delay(CID3)+Delay(CID1)。RTT(CID3,CID2)=T3-T1-D2=Delay(CID3) +Delay(CID2)。
步骤606,MPQUIC接收端的MPQUIC多连接管理模块接收到多个UNICONNECTIONS_DELAY_RESP帧后,根据多个单向路径各自对应的单向传输时延确定UNICONNECTIONS_DELAY_RESULT帧。
可选地,MPQUIC接收端的MPQUIC多连接管理模块在第一测量超时时刻前接收到所有的UNICONNECTIONS_DELAY_RESP帧后,比较多个单向路径各自对应的单向传输时延,确定测量结果,即单向路径标识列表或者单向传输时延最小的单向路径的单向路径标识。
可选地,单向路径标识列表包括按照单向传输时延的大小顺序排序后的多个单向路径标识。比如,单向路径标识列表包括按照单向传输时延从小到大顺序依次排列的多个单向路径标识。
可选地,单向路径标识列表包括多个单向路径标识和多个单向路径标识各自对应的单向传输时延的数值。
MPQUIC接收端的MPQUIC多连接管理模块将测量结果和测量序号SN填充到测量结果通告帧即UNICONNECTIONS_DELAY_RESULT帧中。
示意性的,UNICONNECTIONS_DELAY_RESULT帧的定义如下:UNICONNECTIONS_DELAY_RESULT Frame{Type(8)=TBD3,Measure Task SN(24),unipath num(8),unipath ID length(8),unipath id list(CID1,CID2)}。
步骤607,MPQUIC接收端的MPQUIC多连接管理模块将UNICONNECTIONS_DELAY_RESULT帧封装为一个QUIC报文,在任意一个单向路径上将该QUIC报文发送至MPQUIC发送端。
步骤608,MPQUIC发送端的MPQUIC协议模块收到该QUIC报文后,解析得到UNICONNECTIONS_DELAY_RESULT帧。
MPQUIC发送端的MPQUIC协议模块收到该QUIC报文后,解析得到UNICONNECTIONS_DELAY_RESULT帧,将测量结果(即单向路径标识列表或单向传输时延最小的单向路径的单向路径标识)应用给MPQUIC发送端的多连接调度器使用,供其作为最小传输时延算法来调度Stream帧等业务数据选择合适的单向路径进行数据传输,从而满足Stream帧等业务数据的性能优先发送的述求。
需要说明的是,本实施例中各个步骤的相关细节可参考上述实施例中的相关描述,在此不再赘述。
综上所述,基于MPQUIC协议,本申请实施例扩展提供了传输时延测量方案,不依赖IEEE 1588协议等网络时间协议实现多个单向路径各自对应的单向传输时延的测量比较,从而使得MPQUIC发送端能够调度选择当前可用的最小单向传输时延的单向路径进行数据传输,保证了MPQUIC协议的多路径传输的传输性能。
请参考图7,其示出了本申请一个示例性实施例提供的数据传输装置的框图。该数据传输装置可以通过软件、硬件或者两者的结合实现成为图2所示的第一设备的全部或者一部分。该数据传输装置至少包括:发送单元710和处理单元720。
发送单元710,用于实现上述步骤301、305、401、405、501、503、602、607的 功能以及各个步骤中隐含的第一设备侧的发送功能。
处理单元720,用于实现上述步骤304、404、408、601、605、606的功能以及各个步骤中隐含的第一设备侧的处理功能。
相关细节可结合参考图3至图6所述的方法实施例。
请参考图8,其示出了本申请另一个示例性实施例提供的数据传输装置的框图。该数据传输装置可以通过软件、硬件或者两者的结合实现成为图2所示的第二设备的全部或者一部分。该数据传输装置至少包括:接收单元810和发送单元820。
接收单元810,用于实现上述步骤302、306、402、406功能以及各个步骤中隐含的第二设备侧的接收功能。
发送单元820,用于实现上述步骤303、403、502、604的功能以及各个步骤中隐含的第二设备侧的发送功能。
相关细节可结合参考图3至图6所述的方法实施例。
请参考图9,其示出了本申请一个示例性实施例提供的第一设备的结构示意图。该第一设备可以是图2所示的第一设备。该第一设备包括:处理器91、接收器92、发射器93、存储器94和总线95。
处理器91包括一个或者一个以上处理核心,处理器91通过运行软件程序以及模块,从而执行各种功能应用以及信息处理。
接收器92和发射器93可以实现为一个通信组件,该通信组件可以是一块通信芯片,通信芯片中可以包括接收模块、发射模块和调制解调模块等,用于对信息进行调制和/或解调,并通过无线信号接收或发送该信息。
存储器94通过总线95与处理器91相连。存储器94存储有第一设备必要的程序指令和数据。
处理器91用于执行存储器94中的程序指令和数据以实现本申请各个方法实施例中由第一设备执行的各个步骤的功能。
处理器91通过运行存储器94中的至少一个程序指令,控制接收器92来实现上述各个步骤中第一设备侧的接收功能;处理器91通过运行存储器94中的至少一个程序指令,控制发射器93来实现上述各个步骤中第一设备侧的发送功能。
此外,存储器94可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随时存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
可以理解的是,图9仅仅示出了第一设备的简化设计。在其他的实施例中,第一设备可以包含任意数量的发射器,接收器,处理器,控制器,存储器,通信单元等,而所有可以实现本申请的第一设备都在本申请的保护范围之内。
请参考图10,其示出了本申请一个示例性实施例提供的第二设备的结构示意图。该第二设备可以是图2所示的第二设备。该第二设备包括:处理器101、接收器102、 发射器103、存储器104和总线105。
处理器101包括一个或者一个以上处理核心,处理器101通过运行软件程序以及模块,从而执行各种功能应用以及信息处理。
接收器102和发射器103可以实现为一个通信组件,该通信组件可以是一块通信芯片,通信芯片中可以包括接收模块、发射模块和调制解调模块等,用于对信息进行调制和/或解调,并通过无线信号接收或发送该信息。
存储器104通过总线105与处理器101相连。存储器104存储有第二设备必要的程序指令和数据。
处理器101用于执行存储器104中的程序指令和数据以实现本申请各个方法实施例中由第二设备执行的各个步骤的功能。
处理器101通过运行存储器104中的至少一个程序指令,控制接收器102来实现上述各个步骤中第二设备侧的接收功能;处理器101通过运行存储器104中的至少一个程序指令,控制发射器103来实现上述各个步骤中第二设备侧的发送功能。
此外,存储器104可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随时存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
可以理解的是,图10仅仅示出了第二设备的简化设计。在其他的实施例中,第二设备可以包含任意数量的发射器,接收器,处理器,控制器,存储器,通信单元等,而所有可以实现本申请的第二设备都在本申请的保护范围之内。
本申请的实施例提供了一种数据传输装置,该装置包括:处理器以及用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令时实现上述方法。
本申请的实施例提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当计算机可读代码在电子设备的处理器中运行时,电子设备中的处理器执行上述方法。
本申请的实施例提供了一种数据传输系统,该数据传输系统包括第一设备和第二设备,该第一设备包括如图7所示的数据传输装置,该第二设备包括如图8所示的数据传输装置;或者,该第一设备包括如图9所示的第一设备,该第二设备包括如图10所示的第二设备。
本申请的实施例提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令被处理器执行时实现上述方法。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(Random Access Memory,RAM)、只读存储器(Read Only Memory,ROM)、可擦式可编程只读存储器(Electrically Programmable Read-Only-Memory,EPROM或闪存)、静态随机存取存储器(Static Random-Access Memory,SRAM)、便携式压缩 盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、数字多功能盘(Digital Video Disc,DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。
这里所描述的计算机可读程序指令或代码可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本申请操作的计算机程序指令可以是汇编指令、指令集架构(Instruction Set Architecture,ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(Local Area Network,LAN)或广域网(Wide Area Network,WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或可编程逻辑阵列(Programmable Logic Array,PLA),该电子电路可以执行计算机可读程序指令,从而实现本申请的各个方面。
这里参照根据本申请实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本申请的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本申请的多个实施例的装置、系统、方法和计 算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。
也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行相应的功能或动作的硬件(例如电路或ASIC(Application Specific Integrated Circuit,专用集成电路))来实现,或者可以用硬件和软件的组合,如固件等来实现。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其它变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其它单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (39)

  1. 一种数据传输方法,其特征在于,用于第一设备中,所述第一设备和第二设备之间建立有多个单向路径,所述方法包括:
    向所述第二设备发送测量请求;
    在接收到在所述多个单向路径上分别发送的测量应答后,根据所述多个单向路径各自对应的单向传输时延确定测量结果通告;
    向所述第二设备发送所述测量结果通告,所述测量结果通告用于指示所述单向传输时延最小的单向路径或者所述多个单向路径各自对应的所述单向传输时延的数值或排序结果。
  2. 根据权利要求1所述的方法,其特征在于,所述在接收到在所述多个单向路径上分别发送的测量应答后,根据所述多个单向路径各自对应的单向传输时延确定测量结果通告,包括:
    在接收到每个所述单向路径上发送的所述测量应答后,确定所述测量应答对应的往返路径的往返时延,所述往返路径包括传输所述测量请求的单向路径和传输所述测量应答的单向路径;
    根据多个所述往返路径各自对应的单向路径标识和所述往返时延,确定所述多个单向路径各自对应的所述单向传输时延的数值或排序结果,所述单向路径标识用于指示传输所述测量应答的单向路径;
    根据所述多个单向路径各自对应的所述单向传输时延的数值或排序结果,确定所述测量结果通告。
  3. 根据权利要求2所述的方法,其特征在于,所述方法还包括:
    记录所述测量请求对应的测量序号和所述测量请求的发送时刻,所述测量序号用于指示本次测量任务。
  4. 根据权利要求3所述的方法,其特征在于,
    所述测量应答携带有所述单向路径标识、所述测量序号和本地处理时延,所述本地处理时延为所述第二设备发送所述测量应答的时刻与接收所述测量请求的时刻之间的差值。
  5. 根据权利要求2至4任一所述的方法,其特征在于,所述在接收到每个所述单向路径上发送的所述测量应答后,确定所述测量应答对应的往返路径的往返时延,包括:
    在接收到每个所述单向路径上发送的所述测量应答后,记录所述测量应答的接收时刻;
    根据所述测量应答的接收时刻、所述测量请求的发送时刻和所述测量应答携带的本地处理时延,确定所述测量应答对应的所述往返路径的所述往返时延。
  6. 根据权利要求1所述的方法,其特征在于,所述向所述第二设备发送测量请求,包括:
    在接收到所述第二设备发送的通知报文后,向所述第二设备发送所述测量请求,所述通知报文用于指示所述第二设备到所述第一设备的单向路径数量发生变更;或者,
    根据预配置或预定义的测量周期,向所述第二设备发送所述测量请求。
  7. 根据权利要求1所述的方法,其特征在于,所述方法还包括:
    在发送所述测量请求后启动本次测量任务的第一定时器;
    在所述第一定时器所指示的第一测量超时时刻前,接收在所述多个单向路径上分别发送的所述测量应答。
  8. 根据权利要求1所述的方法,其特征在于,
    所述测量结果通告包括单向路径标识列表或者所述单向传输时延最小的单向路径的单向路径标识,所述单向路径标识列表用于指示所述多个单向路径各自对应的所述单向传输时延的数值或排序结果。
  9. 根据权利要求1至8任一所述的方法,其特征在于,所述测量结果通告用于指示所述多个单向路径各自对应的所述单向传输时延的数值或排序结果,所述向所述第二设备发送所述测量结果通告之后,还包括:
    接收所述第二设备在第二单向路径上发送的数据报文,所述第二单向路径为所述第二设备按照所述单向传输时延从小到大的顺序选择的当前可用的单向路径。
  10. 根据权利要求1至8任一所述的方法,其特征在于,所述测量结果通告用于指示所述单向传输时延最小的单向路径,所述向所述第二设备发送所述测量结果通告之后,还包括:
    接收所述第二设备在第三单向路径上发送的数据报文,所述第三单向路径为所述单向传输时延最小的单向路径。
  11. 根据权利要求1至10任一所述的方法,其特征在于,所述向所述第二设备发送测量请求,包括:
    在第一单向路径上向所述第二设备发送一次所述测量请求,所述第一单向路径为所述第一设备到所述第二设备的多个单向路径中的任意一个单向路径。
  12. 根据权利要求1至11任一所述的方法,其特征在于,所述单向路径包括多路径快速UDP因特网连接MPQUIC协议的连接或者单向流。
  13. 一种数据传输方法,其特征在于,用于第二设备中,第一设备和所述第二设备之间建立有多个单向路径,所述方法包括:
    接收所述第一设备发送的测量请求;
    在所述多个单向路径上分别发送测量应答;
    接收所述第一设备发送的测量结果通告,所述测量结果通告用于指示所述单向传输时延最小的单向路径或者所述多个单向路径各自对应的单向传输时延的数值或排序结果。
  14. 根据权利要求13所述的方法,其特征在于,
    所述测量应答携带有单向路径标识、测量序号和本地处理时延;
    其中,所述单向路径标识用于指示传输所述测量应答的单向路径,所述测量序号用于指示本次测量任务,所述本地处理时延为所述第二设备发送所述测量应答的时刻与接收所述测量请求的时刻之间的差值。
  15. 根据权利要求13所述的方法,其特征在于,所述方法还包括:
    在所述第二设备到所述第一设备的单向路径数量发生变更的情况下,向所述第一设备发送通知报文。
  16. 根据权利要求13所述的方法,其特征在于,所述方法还包括:
    在接收到所述测量请求后启动本次测量任务的第二定时器;
    在所述第二定时器所指示的第二测量超时时刻前,接收所述测量结果通告。
  17. 根据权利要求13所述的方法,其特征在于,
    所述测量结果通告包括单向路径标识列表或者所述单向传输时延最小的单向路径的单向路径标识,所述单向路径标识列表用于指示所述多个单向路径各自对应的所述单向传输时延的数值或排序结果。
  18. 根据权利要求13至17任一所述的方法,其特征在于,所述测量结果通告用于指示所述多个单向路径各自对应的所述单向传输时延的数值或排序结果,所述方法还包括:
    根据所述测量结果通告,按照所述单向传输时延从小到大的顺序选择当前可用的第二单向路径;
    在所述第二单向路径上向所述第一设备发送数据报文。
  19. 根据权利要求13至17任一所述的方法,其特征在于,所述测量结果通告用于指示所述单向传输时延最小的单向路径,所述方法还包括:
    在第三单向路径上向所述第一设备发送数据报文,所述第三单向路径为所述单向传输时延最小的单向路径。
  20. 根据权利要求13至19任一所述的方法,其特征在于,所述接收所述第一设备发送的测量请求,包括:
    接收所述第一设备在第一单向路径上发送的一次所述测量请求,所述第一单向路径为所述第一设备到所述第二设备的多个单向路径中的任意一个单向路径。
  21. 根据权利要求13至20任一所述的方法,其特征在于,所述单向路径包括MPQUIC协议的连接或者单向流。
  22. 一种数据传输方法,其特征在于,用于包括第一设备和第二设备的数据传输系统中,所述第一设备和第二设备之间建立有多个单向路径,所述方法包括:
    所述第一设备向所述第二设备发送测量请求;
    所述第二设备在接收到所述第一设备发送的所述测量请求后,在所述多个单向路径上分别发送测量应答;
    所述第一设备在接收到在所述多个单向路径上分别发送的测量应答后,根据所述多个单向路径各自对应的单向传输时延确定测量结果通告;
    所述第一设备向所述第二设备发送所述测量结果通告;
    所述第二设备接收所述第一设备发送的所述测量结果通告;
    其中,所述测量结果通告用于指示所述单向传输时延最小的单向路径或者所述多个单向路径各自对应的所述单向传输时延的数值或排序结果。
  23. 根据权利要求22所述的方法,其特征在于,所述第一设备在接收到在所述多个单向路径上分别发送的测量应答后,根据所述多个单向路径各自对应的单向传输时延确定测量结果通告,包括:
    所述第一设备在接收到每个所述单向路径上发送的所述测量应答后,确定所述测量应答对应的往返路径的往返时延,所述往返路径包括传输所述测量请求的单向路径和传输所述测量应答的单向路径;
    所述第一设备根据多个所述往返路径各自对应的单向路径标识和所述往返时延,确定所述多个单向路径各自对应的所述单向传输时延的数值或排序结果,所述单向路径标识用于指示传输所述测量应答的单向路径;
    所述第一设备根据所述多个单向路径各自对应的所述单向传输时延的数值或排序结果,确定所述测量结果通告。
  24. 根据权利要求23所述的方法,其特征在于,所述方法还包括:
    所述第一设备记录所述测量请求对应的测量序号和所述测量请求的发送时刻,所述测量序号用于指示本次测量任务。
  25. 根据权利要求24所述的方法,其特征在于,
    所述测量应答携带有所述单向路径标识、所述测量序号和本地处理时延,所述本地处理时延为所述第二设备发送所述测量应答的时刻与接收所述测量请求的时刻之间的差值。
  26. 根据权利要求19至21任一所述的方法,其特征在于,所述第一设备在接收到每个所述单向路径上发送的所述测量应答后,确定所述测量应答对应的往返路径的往返时延,包括:
    所述第一设备在接收到每个所述单向路径上发送的所述测量应答后,记录所述测量应答的接收时刻;
    所述第一设备根据所述测量应答的接收时刻、所述测量请求的发送时刻和所述测量应答携带的所述本地处理时延,确定所述测量应答对应的所述往返路径的所述往返时延。
  27. 根据权利要求22所述的方法,其特征在于,所述方法还包括:
    在所述第二设备到所述第一设备的单向路径数量发生变更的情况下,所述第二设备向所述第一设备发送通知报文;
    所述第一设备向所述第二设备发送测量请求,包括:
    所述第一设备在接收到所述第二设备发送的所述通知报文后,向所述第二设备发送所述测量请求。
  28. 根据权利要求22所述的方法,其特征在于,所述第一设备向所述第二设备发送测量请求,包括:
    所述第一设备根据预配置或预定义的测量周期,向所述第二设备发送所述测量请求。
  29. 根据权利要求22所述的方法,其特征在于,所述方法还包括:
    所述第一设备在发送所述测量请求后启动本次测量任务的第一定时器;
    所述第一设备在所述第一定时器所指示的第一测量超时时刻前,接收在所述多个单向路径上分别发送的所述测量应答。
  30. 根据权利要求22所述的方法,其特征在于,所述方法还包括:
    所述第二设备在接收到所述测量请求后启动本次测量任务的第二定时器;
    所述第二设备在所述第二定时器所指示的第二测量超时时刻前,接收所述测量结果通告。
  31. 根据权利要求22所述的方法,其特征在于,
    所述测量结果通告包括单向路径标识列表或者所述单向传输时延最小的单向路径的单向路径标识,所述单向路径标识列表用于指示所述多个单向路径各自对应的所述单向传输时延的数值或排序结果。
  32. 根据权利要求22至31任一所述的方法,其特征在于,所述测量结果通告用于指示所述多个单向路径各自对应的所述单向传输时延的数值或排序结果,所述第二设备接收所述第一设备发送的所述测量结果通告之后,还包括:
    所述第二设备根据所述测量结果通告,按照所述单向传输时延从小到大的顺序选择当前可用的第二单向路径;
    所述第二设备在所述第二单向路径上向所述第一设备发送数据报文;
    所述第一设备接收所述第二设备在所述第二单向路径上发送的所述数据报文。
  33. 根据权利要求22至31任一所述的方法,其特征在于,所述测量结果通告用于指示所述单向传输时延最小的单向路径,所述第二设备接收所述第一设备发送的所述测量结果通告之后,还包括:
    所述第二设备在第三单向路径上向所述第一设备发送数据报文,所述第三单向路径为所述单向传输时延最小的单向路径;
    所述第一设备接收所述第二设备在所述第三单向路径上发送的所述数据报文。
  34. 根据权利要求22至33任一所述的方法,其特征在于,所述第一设备向所述第二设备发送测量请求,包括:
    所述第一设备在第一单向路径上向所述第二设备发送一次所述测量请求,所述第一单向路径为所述第一设备到所述第二设备的多个单向路径中的任意一个单向路径。
  35. 根据权利要求22至34任一所述的方法,其特征在于,所述单向路径包括MPQUIC协议的连接或者单向流。
  36. 一种数据传输装置,其特征在于,所述装置包括:
    处理器;
    用于存储处理器可执行指令的存储器;
    其中,所述处理器被配置为执行所述指令时实现权利要求1-12任意一项所述的方法,或者实现权利要求13-21任意一项所述的方法。
  37. 一种数据传输系统,其特征在于,所述数据传输系统包括第一设备和第二设备,所述第一设备和第二设备之间建立有多个单向路径;
    所述第一设备,用于执行权利要求1-12任意一项所述的方法;
    所述第二设备,用于执行权利要求13-21任意一项所述的方法。
  38. 一种数据传输系统,其特征在于,所述数据传输系统包括第一设备和第二设备,所述第一设备和第二设备之间建立有多个单向路径;
    所述数据传输系统,用于执行权利要求22-35任意一项所述的方法。
  39. 一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1-12任意一项所述的方法,或者实现权利要求13-21任意一项所述的方法。
PCT/CN2021/141242 2020-12-31 2021-12-24 数据传输方法、装置、系统及存储介质 WO2022143468A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202011631931.3 2020-12-31
CN202011631931.3A CN114697240A (zh) 2020-12-31 2020-12-31 数据传输方法、装置、系统及存储介质

Publications (1)

Publication Number Publication Date
WO2022143468A1 true WO2022143468A1 (zh) 2022-07-07

Family

ID=82134780

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/141242 WO2022143468A1 (zh) 2020-12-31 2021-12-24 数据传输方法、装置、系统及存储介质

Country Status (2)

Country Link
CN (1) CN114697240A (zh)
WO (1) WO2022143468A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024022334A1 (zh) * 2022-07-26 2024-02-01 抖音视界有限公司 数据传输方法、装置和系统
CN117081847B (zh) * 2023-09-27 2024-04-30 青岛中企英才集团教育科技有限公司 一种基于区块链的金融数据处理方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2101452A1 (en) * 2008-03-13 2009-09-16 Alcatel Lucent Methods and systems for recovery of bidirectional connections
CN103905463A (zh) * 2014-04-21 2014-07-02 北京邮电大学 一种适用于多路径传输的连接管理与控制方法
CN105791054A (zh) * 2016-04-22 2016-07-20 西安交通大学 一种基于流分类实现的自主可控可靠组播传输方法
CN105933232A (zh) * 2016-03-29 2016-09-07 东北大学 支持多业务数据传输需求的多径传输控制终端及方法
CN108092888A (zh) * 2017-10-31 2018-05-29 华为技术有限公司 一种基于Overlay网络的传输方法、网关及传输系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101631357A (zh) * 2008-07-18 2010-01-20 中国移动通信集团公司 一种选择性应答分组传输方法、装置及终端
CN102185771B (zh) * 2011-05-05 2013-09-04 清华大学 Mptcp中发送方数据包调度方法及系统
CN110086578B (zh) * 2018-01-25 2021-06-01 华为技术有限公司 数据传输方法、装置和系统
CN108696449B (zh) * 2018-05-09 2020-10-09 清华大学 一种数据调度方法及装置
CN108924063B (zh) * 2018-06-29 2020-05-15 浙江大学 一种时延约束感知的最小化端到端时延的流量分配方法
CN112040526B (zh) * 2020-08-25 2022-10-14 普联技术有限公司 一种通信路径选择方法、设备及通信系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2101452A1 (en) * 2008-03-13 2009-09-16 Alcatel Lucent Methods and systems for recovery of bidirectional connections
CN103905463A (zh) * 2014-04-21 2014-07-02 北京邮电大学 一种适用于多路径传输的连接管理与控制方法
CN105933232A (zh) * 2016-03-29 2016-09-07 东北大学 支持多业务数据传输需求的多径传输控制终端及方法
CN105791054A (zh) * 2016-04-22 2016-07-20 西安交通大学 一种基于流分类实现的自主可控可靠组播传输方法
CN108092888A (zh) * 2017-10-31 2018-05-29 华为技术有限公司 一种基于Overlay网络的传输方法、网关及传输系统

Also Published As

Publication number Publication date
CN114697240A (zh) 2022-07-01

Similar Documents

Publication Publication Date Title
US20200358886A1 (en) Data Transmission Method, Apparatus, And System
WO2020007202A1 (zh) 一种数据传输方法、装置及系统
CN109412946B (zh) 一种确定回源路径的方法、装置、服务器及可读存储介质
US10231163B2 (en) Efficient centralized resource and schedule management in time slotted channel hopping networks
US10057147B2 (en) Apparatus and method for controlling data flow in communication system
WO2022143468A1 (zh) 数据传输方法、装置、系统及存储介质
US11088957B2 (en) Handling of data packet transfer via a proxy
EP3739784B1 (en) Data packet sending method and related device
WO2019134383A1 (zh) 控制网络拥塞的方法、接入设备和计算机可读存储介质
US9635148B2 (en) Partitioning data sets for transmission on multiple physical links
EP3735768B1 (en) Improving qoe for video and web services using cross-layer information
WO2017045501A1 (zh) 一种报文调度方法和装置、存储介质
JP2018511275A (ja) Tcpトンネル及びネイティブtcp情報に基づくバンドリングシナリオにおけるパケットのスケジューリングのための方法及びシステム
WO2022078232A1 (zh) 确定性业务的转发方法及装置
JP7162678B2 (ja) サービスのサービス品質を検出するための方法およびシステム、ならびにデバイス
WO2015096734A1 (zh) 一种业务数据的下行传输方法及分组数据网关
US11647419B2 (en) Adjusting window size based on quality of experience
Guo et al. Join and spilt TCP for SDN networks: Architecture, implementation, and evaluation
Kumar et al. Device‐centric data reordering and buffer management for mobile Internet using Multipath Transmission Control Protocol
KR20120078288A (ko) 프록시를 사용하여 다중 무선 네트워크를 이용하는 통신 방법 및 장치
US11870865B2 (en) Distributed proxy for encrypted transport protocol with efficient multi-priority multiplexed transport for improving user's traffic QoS
WO2022057706A1 (zh) 一种数据传输方法及相关设备
WO2022027311A1 (zh) 一种通信方法及装置
WO2021212999A1 (zh) 媒体报文的传输方法、装置及系统
US11297634B2 (en) Systems, methods, and media for scheduling traffic of a communication session between an application on a WiFi network and another device

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21914205

Country of ref document: EP

Kind code of ref document: A1