WO2021008473A1 - 一种评估往返时延的系统、方法及装置 - Google Patents

一种评估往返时延的系统、方法及装置 Download PDF

Info

Publication number
WO2021008473A1
WO2021008473A1 PCT/CN2020/101547 CN2020101547W WO2021008473A1 WO 2021008473 A1 WO2021008473 A1 WO 2021008473A1 CN 2020101547 W CN2020101547 W CN 2020101547W WO 2021008473 A1 WO2021008473 A1 WO 2021008473A1
Authority
WO
WIPO (PCT)
Prior art keywords
time
ack
rtt
owd
sending
Prior art date
Application number
PCT/CN2020/101547
Other languages
English (en)
French (fr)
Inventor
李彤
郑凯
陈胜军
陈君森
王凡钊
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to EP20839648.1A priority Critical patent/EP3832953A4/en
Publication of WO2021008473A1 publication Critical patent/WO2021008473A1/zh
Priority to US17/199,773 priority patent/US11611498B2/en

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/003Arrangements for allocating sub-channels of the transmission path
    • H04L5/0053Allocation of signaling, i.e. of overhead other than pilot signals
    • H04L5/0055Physical resource allocation for ACK/NACK
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/1896ARQ related signaling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • 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/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0864Round trip delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • H04L43/106Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/18Protocol analysers

Definitions

  • This application relates to the field of communication technology, and in particular to a system, method, and device for evaluating round-trip delay.
  • the "high throughput” poses new challenges to the acknowledgement (ACK) mechanism.
  • MAC media access control
  • MAC Media Access Control
  • TCP Transmission Control Protocol
  • ACK Acknowledgement
  • Delayed acknowledgement is the most common method to reduce the frequency of ACKs. Delayed acknowledgment, as a feedback method in the transmission control protocol, specifically refers to that after a data packet arrives at the receiving node (that is, the receiving node of the above data) from the sending node (that is, the sending node of the above data), the receiving node does not Reply with an ACK immediately, but wait for more data packets to arrive, or wait for a period of time to reply with an ACK.
  • Round-Trip Time refers to the total time elapsed from when a data packet is sent from the sending node to when the data packet arrives at the receiving node, and then the ACK corresponding to the data packet is received by the sending node. Since the real-time transmission performance of the network will fluctuate, the RTT value obtained by the sending node at different times will also fluctuate. Therefore, the measured value of the RTT in the actual business (hereinafter referred to as RTT), and calculated from multiple RTT measured values
  • the statistical value of (hereinafter referred to as the RTT statistical value) can be used as an important parameter for evaluating the transmission performance of a connection. Many transmission control strategies are formulated or adjusted based on the RTT or RTT statistical value.
  • the statistical value of RTT can be the minimum RTT (Minimum Round-Trip Time, minRTT), that is, the data sending node receives the smallest value among multiple RTTs; the maximum RTT (Maximum Round-Trip Time, maxRTT), that is, the data sending node Receive the one with the largest value among multiple RTTs; average RTT, that is, the average value of multiple RTTs received by the data sending node.
  • the average RTT can have multiple calculation methods; the Kth largest RTT among multiple RTTs and multiple RTTs L% of the value before the small RTT (0 ⁇ L ⁇ 100% ), e.g., 95% of large RTT (95th percentile Round-Trip Time , 95 th RTT) and the like.
  • the multiple RTT measurement values used to calculate the above-mentioned RTT statistical value are values within a time period.
  • the time period may be a preset length (such as 5S, 10S, or 13S, etc.)
  • a certain historical time period of ), an endpoint of the historical time period may be the current time.
  • the present application provides a system, method, and device for evaluating round-trip delay.
  • the timestamp carried in the ACK is filtered through the one-way delay OWD, thereby assisting the evaluation of RTT, and improving the accuracy and availability of evaluating RTT.
  • an embodiment of the present application provides a system for evaluating round-trip delay RTT.
  • the system includes a first device and a second device.
  • the first device is configured to send multiple packets to the second device through the same path. Each of the multiple packets carries a timestamp indicating the sending time of the packet; the second device is used to calculate the statistical value of the one-way delay OWD of the multiple packets from the
  • the first time stamp is determined from the time stamps carried in the multiple packets, where the first time stamp indicates the transmission time of the first packet in the multiple packets, and the measured value of the OWD of the first packet is equal to the multiple
  • the second device is used to send an acknowledgment ACK to the first device, the ACK includes the first timestamp and ACK time information, the ACK time information and the second device from receiving the first device
  • a message is related to the duration of sending the ACK; the first device is used to receive the ACK, and based on the first time stamp
  • the above-mentioned first device can be regarded as the sending device (or sending node), the path for the first device to send packets to the second device is the forward path, and the second device can be regarded as the receiving device (or receiving node), and the second device
  • the path for sending ACK to the first device is the reverse path.
  • the communication between the first device and the second device can be multi-path transmission technology, such as MPTCP, then the RTT of a sub-stream is evaluated.
  • the same path means that multiple packets sent use the same route. In a multi-path scenario, it means that the multiple packets belong to the same subflow.
  • the foregoing multiple messages may be received by the second device within a first time window, and the statistical value of the OWD of the multiple messages is the statistical value of the OWD of the path in the first time window.
  • the message sent by the first device may be a data message or a control message.
  • the second device can calculate the one-way delay of the path, because the second device may receive multiple messages before returning an ACK.
  • the second device uses the statistical value of OWD to determine which message’s transmission timestamp is carried in the ACK, and also carries the information corresponding to the message that can indicate the ACK transmission delay in the ACK, that is, with the help of OWD Analyze to evaluate RTT, so that through the cooperation of the first device and the second device, the accuracy of evaluating RTT can be improved.
  • the data transmission of the path is controlled based on the RTT, which is more accurate and closer to the actual network situation, and can improve the transmission performance of the path.
  • the ACK time information is related to the time period from the second device receiving the first message to sending the ACK, which means that based on the ACK time information, it can be determined or reflected that the second device is from receiving the first message to The duration of sending the ACK, so the ACK time information can have multiple expressions.
  • the ACK time information includes a third time stamp and a fourth time stamp, the third time stamp indicates the time when the second device received the first packet, and the fourth time stamp indicates the second device The time when the ACK was sent.
  • the ACK time information includes a first time period, and the first time period indicates a time period from receiving the first packet to sending the ACK by the second device.
  • the first device can calculate the measured value of RTT in multiple ways.
  • the first device is specifically configured to subtract the time indicated by the second timestamp from the time indicated by the first timestamp, and subtract the difference between the fourth timestamp and the third timestamp. Difference to get a measured value of the RTT of the path.
  • the first device is specifically configured to subtract the time indicated by the second time stamp from the time indicated by the first time stamp and subtract the first time period to obtain a measured value of the RTT of the path.
  • some post-processing is performed, for example, the result is corrected by some formulas, and the corrected result is used as a measurement value of the RTT of the path.
  • These post-processing is based on processing data in engineering, for example, to make the data smoother. Since the evaluated RTT is further used in business scenarios such as transmission control or monitoring, these post-processing may occur.
  • the first device is also used to calculate multiple measured values of the RTT of the path based on multiple ACKs collected in a time window, and calculate statistics corresponding to the multiple measured values of the RTT of the path value.
  • the statistical value can better reflect the transmission performance of the path than the measured value, because the statistical value is obtained from multiple measured values over a period of time, which can reduce the influence of subtle changes in the network on the RTT evaluation. Since multiple measured values are closer to the actual situation and more accurate, the statistical values obtained based on these multiple measured values can also more accurately reflect the true transmission performance of the path.
  • this time window may be a period of time from the time when the first device receives the aforementioned ACK.
  • the multiple ACKs mentioned above should also correspond to packets transmitted through the same path.
  • the OWD statistics of the multiple messages are of the same type as the RTT statistics of the path, and the type is one of the maximum value, the minimum value and the average value.
  • these types can follow different calculation formulas. For example, there are more subdivided types of average values.
  • they can also be types of other statistical values, such as the K-th largest RTT among multiple RTTs (OWD) ( OWD) and multiple RTTs (OWD) whose median value is the RTT (OWD) (0 ⁇ L ⁇ 100%) which is the smallest in the top L%, etc.
  • the types of the statistical values of the OWD of the multiple packets and the statistical values of the RTT of the path may also be different, which can be formulated according to user requirements.
  • the statistical value of the OWD of the multiple messages is the minimum OWD of the multiple messages
  • the statistical value of the RTT of the path is the minimum RTT of the multiple measured values.
  • the above methods reduce the dependence of the accuracy of RTT statistics on the confirmation mechanism of each packet, while RTT can still be more accurate statistics or measurement, and it can also make many transmission control algorithms based on RTT such as congestion control better play Function to improve transmission efficiency.
  • the present application provides a method for evaluating time delay.
  • the method includes: a second device receives multiple messages from a first device through the same path, each of the multiple messages carries A timestamp indicating the sending time of the message; the second device determines the first timestamp from the timestamps carried in the plurality of messages by calculating the statistical value of the one-way delay OWD of the plurality of messages, where ,
  • the first time stamp indicates the transmission time of the first message among the plurality of messages, the measured value of the OWD of the first message is equal to the statistical value of the OWD of the plurality of messages;
  • the second device sends the A device sends an acknowledgment ACK so that the first device evaluates the RTT of the path based on the ACK.
  • the ACK includes the first timestamp and ACK time information.
  • the ACK time information is related to the time when the second device receives the first packet.
  • the duration of sending the ACK is related.
  • the second aspect describes the method executed by the second device, which corresponds to the system described in the first aspect. Therefore, for the specific implementation and beneficial effects of the second aspect, please refer to the description of the first aspect.
  • the present application provides an apparatus for evaluating delay.
  • the apparatus includes: a receiving module configured to receive multiple messages from a first device through the same path, each of the multiple messages carries There is a timestamp indicating the sending time of the message; the timestamp determining module is used to determine the first one from the timestamps carried by the plurality of messages by calculating the statistical value of the one-way delay OWD of the plurality of messages A timestamp, where the first timestamp indicates the transmission time of the first message among the plurality of messages, and the measured value of the OWD of the first message is equal to the statistical value of the OWD of the plurality of messages; the sending module, It is used to send an acknowledgment ACK to the first device so that the first device evaluates the RTT of the path based on the ACK.
  • the ACK includes the first timestamp and ACK time information.
  • the ACK time information and the second device receive the The time from the first message to the sending of the ACK is related.
  • the present application provides an evaluation delay device, which includes: a communication interface, a processing circuit, and a storage medium; the storage medium is used to store a software program, and the communication interface is used to communicate with other information through instructions in the storage medium.
  • the device sends and receives messages, and the processing circuit is used to run instructions in the storage medium to control the communication interface to implement the process executed by the second device in the foregoing aspect.
  • the third and fourth aspects describe two implementations of the second device in the system described in the first aspect. Therefore, for the specific implementation and beneficial effects of the third and fourth aspects, please refer to the description of the first aspect.
  • the present application provides a chip that includes: a communication interface and a processing circuit; the processing circuit is used to control the communication interface to implement any one of the implementation modes of the first aspect or any one of the second aspects The process executed by the second device in the implementation mode.
  • an embodiment of the present application provides a chip, which is connected to a memory, and is used to read and execute a software program stored in the memory to implement any one of the implementation modes of the first aspect or the second aspect The process executed by the second device in any of the implementation manners.
  • an embodiment of the present application also provides a computer storage medium, the storage medium stores a software program, and the software program can implement any one of the first aspect when read and executed by one or more processors An implementation manner or a process executed by the second device in any implementation manner of the second aspect.
  • the embodiments of the present application provide a computer program product containing instructions, which when run on a computer, cause the computer to execute any implementation manner of the first aspect or any implementation manner of the second aspect The process executed by the second device.
  • Figures 1(a)-(c) are schematic diagrams of returning ACK in three scenarios provided by the embodiments of this application;
  • FIG. 2 is a schematic diagram of a communication system architecture provided by an embodiment of the application.
  • FIG. 3(a) is a schematic diagram of the process of evaluating the round-trip delay provided by an embodiment of this application;
  • Figure 3(b) is an indication diagram for calculating one-way delay provided by an embodiment of this application.
  • FIG. 5 is a schematic structural diagram of a data transmission device (corresponding to a receiving node) according to an embodiment of the application;
  • Fig. 6 is a schematic structural diagram of a data transmission device (corresponding to a receiving node) provided by an embodiment of the application.
  • the receiving node or sending node involved in this application can be a terminal device (also referred to as a terminal for short), such as a sensor, a mobile phone, a tablet, a notebook computer, a personal computer, a vehicle terminal, a set-top box, a TV box, etc.; it can also be a network Equipment, such as gateways, access routers, core routers, front-end routers, load balancers, servers, etc.
  • a terminal device also referred to as a terminal for short
  • a network Equipment such as gateways, access routers, core routers, front-end routers, load balancers, servers, etc.
  • the end-to-end scenario can be that a mobile phone projects a video on a smart TV or projects it on a display through a TV box or receiver.
  • a video call is made between two terminal devices through a certain application, one of the terminals and the server of the application are the terminal cloud scenarios to which the method described in this application applies.
  • the receiving node and the sending node in this application all refer to a device, or both refer to an operating system running on the device.
  • a receiving node refers to a device that receives data and sends feedback information or an operating system running on the device in a connection
  • a sending node refers to a device that sends data or an operating system running on the device in a connection.
  • Nodes can also send control messages.
  • the same device can be a receiving node for a period of time and a sending node for another period of time.
  • this device can also be a receiving node and a sending node at the same time, such as a mobile phone.
  • the sending node in the embodiment of the present application is also referred to as the first node or the first device
  • the receiving node is also referred to as the second node or the second device.
  • the first node or the first device sends multiple messages in an RTT evaluation process, and the messages can be data packets or control messages; while the second node or the second device is in an RTT evaluation process , Send feedback information, such as ACK, SACK or NACK.
  • the solution of this application can be applied to all end-to-end protocols that support delay statistics.
  • These end-to-end protocols can be, transmission control protocol (transport control protocol, TCP), user data protocol (user data protocol, UDP), quick UDP internet connection (QUIC), stream control transmission protocol (stream control) Transmission protocol, SCTP), etc., and even subflows in multipath transmission scenarios can be used, which is not limited in this application.
  • the messages used to evaluate the round-trip delay should be sent through the same path, that is, the forward path of these messages should be the same, and the network status of the messages sent using different paths may be different due to different routes. Different, it is inappropriate to use in the evaluation of a round-trip delay.
  • the path refers to the route from the sending node to the receiving node.
  • the round trip delay is equal to the current time when the sending node receives the ACK minus the echo time carried in the ACK. Since both the current time and the echo time are obtained in the actual networking, the calculated RTT value can be used as the measured value of the RTT of a path used to transmit the ACK response data packet.
  • the echo time refers to the time when the ACK response data packet is sent from the sending node, and the current time can be used to indicate the ACK reception time.
  • the measured value of the RTT of the path can be obtained according to the receiving time of the ACK (that is, the current time) and the sending time of the data packet (that is, the echo time).
  • the measurement values of multiple RTTs can be calculated through statistical calculations, such as maximum value, minimum value, average value, etc., to obtain statistical values corresponding to these multiple RTTs.
  • path refers to the route from the sending node to the receiving node.
  • the path of the transmission message may also change.
  • the global minimum RTT (that is, the minimum value of all the RTTs counted) is used to evaluate the transmission performance of the path. distortion.
  • the minimum RTT calculated in this application is the minimum RTT of a path, that is, the data packet for calculating the minimum RTT is transmitted from the sending node to the receiving node through the same path.
  • the sending node is located in the first device or the first device
  • the receiving node is located in the second device or the second device.
  • the sending node uses a Windowed Minimum Filter to calculate the minimum RTT of the pair of nodes (sending node and receiving node) in a certain time window for the measured values of multiple RTTs, and This is used as the minimum RTT measurement for the path.
  • the implementation of the minimum window filter is as follows:
  • RTT t represents the RTT measurement value at time t
  • T represents the current time
  • W R represents a time window, generally several seconds (for example, 5s, 8s, 10s or 14s, etc.).
  • This application can be used for various delay statistics requirements that are more accurate, but in scenarios where the number of ACKs returned by the receiving node is small, the number of packets received by the receiving node is less equal to the number of ACKs sent by the receiving node.
  • the delay statistics in the delayed confirmation scenario, and even some delay statistics in the per-packet confirmation scenario stipulate that the TCP ACK cannot be delayed more than 2 data packets And the delay cannot exceed a threshold (for example, 500 ms).
  • a threshold for example, 500 ms
  • delayed acknowledgment can not only reduce the frequency of ACKs, but also reduce the overhead of communication parties and intermediate network equipment.
  • each black square in the sending node represents a data packet
  • each circle in the receiving node represents an ACK. All data packets are transmitted using the same path.
  • (A) in Figure 1 shows that the sending node sends 5 data packets. Under the per-packet acknowledgment mechanism, the receiving node replies with an ACK every time it receives a data packet. The ratio of the corresponding data packets to the ACK is (1:1). The sending node can obtain 5 RTT measurement values, which are 20ms, 16ms, 22ms, 15ms, and 30ms.
  • the sending node calculates that the minimum RTT is 15ms.
  • the ratio of the number of corresponding data packets to ACK in (b) is (5:3), and the sending node can get 3
  • the measured value of RTT is 20ms, 22ms, 30ms.
  • the sending node calculates that the minimum RTT of the path is 20ms, and the deviation between the statistical result and the result of Fig. 1(a) reaches 30%. As shown in Figure 1(c), it shows the situation that every N (N>2) data packets reply an ACK.
  • the basic idea of this application is to estimate the change of round-trip time (RTT, round-trip time) through the change of one-way delay (OWD) at the receiving node, and make full use of the difference in the capabilities of the receiving node to reduce time.
  • Delay statistics rely on the confirmation mechanism of each packet to perform more accurate delay statistics in an indirect way.
  • One-way delay refers to the time from when a data packet is sent from the sending node to when the data packet reaches the receiving node.
  • OWD measurement values and OWD statistical values (such as minimum OWD, maximum OWD, average OWD, etc.) appearing below can refer to the interpretation and definition of the corresponding RTT measurement values and statistical values. Definition, I will not repeat it below.
  • the statistical value of OWD and the statistical value of RTT are both statistical values within a period of time, such as a time window.
  • the time window of the RTT statistical value is longer than the OWD statistical value.
  • the embodiments of the present application provide a data transmission method and device to improve the accuracy of RTT evaluation, thereby improving data transmission performance.
  • the method and the device are based on the same inventive concept. Since the principles of the method and the device to solve the problem are similar, the implementation of the device and the method can be referred to each other, and the repetition will not be repeated.
  • At least one refers to one or more, and “multiple or several” refers to two or more.
  • And/or describes the association relationship of the associated objects, indicating that there can be three relationships, for example, A and/or B, which can mean: the existence of A alone, A and B at the same time, and B alone, where A, B can be singular or plural.
  • the character “/” generally indicates that the associated objects are in an “or” relationship.
  • the following at least one item (a)” or similar expressions refers to any combination of these items, including any combination of a single item (a) or plural items (a).
  • At least one item (a) of a, b, or c can represent: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or multiple . It should be understood that although the terms first, second, etc. may be used to describe each object in the embodiments of the present application, these terms are only used to distinguish each object from each other.
  • FIG. 2 it is a schematic diagram of a specific architecture of a communication system as an example of an embodiment of this application.
  • the communication system includes a sending node and a receiving node.
  • the sending node includes a data packet construction module 201, a data packet sending module 202, an ACK analysis module 203, and a round trip delay statistics module 204.
  • the receiving node implements the data packet analysis module 205, the one-way delay OWD statistics module 206,
  • the ACK construction module 207 and the ACK sending module 208, the receiving node may also include a data packet receiving module, which is not shown in FIG. 2.
  • the sending node and the receiving node may also include other modules not described in this application, and the present invention does not impose any limitation on the number of modules on the node.
  • the architecture of FIG. 2 is only an example, and this application does not limit the modules included in each of the receiving node and the sending node.
  • the functions of some of the above modules may also be implemented in one module.
  • the following uses the system of FIG. 2 as an example to introduce how a device structure implements the method described in this application.
  • This example uses the sending node to send a data packet as an example.
  • the sending node constructs a data packet through the data packet construction module 201, and sends the data packet to the receiving node through the communication path through the data packet sending module 202.
  • the data packet carries the sending timestamp of the data packet.
  • the sending time stamp of a data packet (also called the data packet sending time stamp) indicates the time when the data packet is sent from the sending node.
  • the receiving node obtains the data packet sending timestamp carried in the data packet through the data packet analysis module 205, and records the arrival timestamp of the data packet.
  • the arrival timestamp of a data packet (also called the arrival timestamp of the data packet) indicates the time when the data packet arrives at the receiving node.
  • the receiving node uses the one-way delay statistics module 206 to calculate the one-way delay of the data packet according to the sending and arrival timestamp of the data packet. In this way, the receiving node can count the one-way delay of each received data packet.
  • the receiving node analyzes the one-way delay of multiple data packets received within a period of time through the one-way delay analysis module 206, and obtains the analysis result of the one-way delay.
  • the analysis result can be the information of the packet corresponding to the smallest one-way delay among the packets received by the receiving node during this time, such as the identifier of the packet.
  • the analysis result is the information received during this time. Whether the fluctuation of one-way delay exceeds a threshold.
  • the receiving node constructs an ACK according to the analysis result of the one-way delay through the ACK construction module 207.
  • the receiving node sends the ACK to the sending node through the communication path through the ACK sending module 208.
  • the ACK carries information needed by the sending node to calculate the round-trip delay.
  • the information can be a value indicating the OWD measurement value of a certain packet, or a statistical value of OWD within a certain period of time.
  • the information may also be the sending timestamp of the ACK and the sending delay time of the ACK, such as the time difference between the time when a data packet is received and the ACK corresponding to the data packet is sent.
  • the sending node parses the received ACK through the ACK analysis module 203, obtains the information required by the sending node to calculate the round trip delay, and outputs the information to the round trip delay statistics module 204.
  • the sending node obtains a measured value of the round trip delay according to the information output by the ACK analysis module 203 (that is, the information required by the sending node to calculate the round trip delay) through the round trip delay statistics module 204.
  • the above process occurs multiple times, and multiple measured values of the round-trip delay can be obtained.
  • the sending node uses the round-trip delay statistics module 204 to calculate the round-trip delay statistics according to multiple measured values of the round-trip delay.
  • this application also provides another communication system, which includes a first device and a second device, where the first device is equivalent to the sending node in the system shown in FIG. 2, and the second device is equivalent to the one shown in FIG. Indicates the sending node in the system.
  • the first device is used to send multiple messages to the second device through the same path, and each of the multiple messages carries a timestamp indicating the sending time of the message; the second device is used to calculate For the statistical value of the one-way delay OWD of multiple messages, the first time stamp is determined from the time stamps carried in the multiple messages, where the first time stamp indicates the transmission time of the first message among the multiple messages, The measured value of OWD of the first message is equal to the statistical value of OWD of multiple messages.
  • the second device is used to send an acknowledgment ACK to the first device.
  • the ACK includes a first time stamp and ACK time information.
  • the ACK time information is related to the time period from the second device receiving the first packet to sending the ACK.
  • the first device is used to receive the ACK, and based on the first timestamp, the ACK time information, and the second timestamp, determine a measurement value of the RTT of the path, where the second timestamp indicates the time when the first device receives the ACK.
  • the ACK time information includes a third time stamp and a fourth time stamp, the third time stamp indicates the time when the second device receives the first packet, and the fourth time stamp indicates the time when the second device sends the ACK.
  • first device and the second device may not include as many modules as in the system corresponding to FIG. 2, that is to say, there are various ways to divide the modules in the device or the node.
  • the ACK time information includes a first time period, and the first time period indicates the time period from the second device receiving the first packet to sending the ACK.
  • the first device is further configured to calculate multiple measurement values of the RTT of the path based on multiple ACKs collected within a time window, and calculate statistical values corresponding to the multiple measurement values of the RTT of the path.
  • the OWD statistics of multiple packets and the RTT statistics of the path are of maximum value, minimum value, or average value.
  • the above-mentioned system can improve the accuracy of RTT evaluation by using OWD.
  • the receiving node can obtain the measured value or statistical value of the one-way delay OWD according to the "demand” of the sending node (the first device).
  • "On-demand” shows that the statistical value of RTT includes many forms, such as the minimum RTT, the maximum RTT, the K-th largest RTT (0 ⁇ K ⁇ 100%), and the average RTT, etc., which are calculated by the receiving node
  • the statistical value of OWD is the same as the statistical value of RTT calculated by the sending node.
  • the "demand" of the sending node is the statistical minimum RTT, it corresponds to the minimum OWD on the receiving node; for another example, the "demand” of the sending node is the statistical maximum RTT, which corresponds to the maximum OWD on the receiving node; and so on .
  • the statistical value of OWD is different from the statistical value of RTT, that is, regardless of whether the "demand" of the sending node is the smallest RTT, the largest RTT, or the K-th largest RTT (0 ⁇ K ⁇ 100 %) is still the average RTT, corresponding to the K-th largest OWD (0 ⁇ K ⁇ 100%) on the receiving node, but the value corresponding to K is different.
  • the K value corresponding to the minimum RTT is 5%
  • the K value corresponding to the maximum RTT is 95%
  • the K value corresponding to the average TTT is 50%.
  • the sending node also called the first node or the first device
  • the receiving node also called the second node or the second device
  • the message carries the timestamp when the sending node sends the message (that is, the message sending timestamp).
  • the receiving node After receiving one or more messages within a time window, the receiving node calculates the OWD statistics of these messages, and in the reply ACK, carries a timestamp and the information required by the sending node to calculate the round-trip delay (That is, ACK time information), for example, used to indicate the OWD measurement value of a certain message, or a statistical value of OWD in a certain period of time (such as the first time window), or the sending timestamp of the ACK and the ACK Send delay time.
  • the time stamp carried in the ACK indicates the transmission time of one of the multiple packets, and the measured value of the OWD of this packet is equal to the statistical value of the OWD of the multiple packets.
  • the sending node can obtain the RTT measurement value more accurately based on the ACK or further calculate the RTT statistical value. For example, the sending node can calculate the RTT value during the period based on the multiple ACKs received in the second time window. Statistics.
  • the above process also involves the calculation or statistics steps of the receiving node and the sending node of the time delay.
  • the receiving node can use the time stamp when a data packet arrives at the receiving node and the data packet sending time stamp carried in the data packet to calculate the OWD measurement value and perform certain processing on it; the receiving node can also use the OWD measurement value,
  • a certain type of OWD statistical value is calculated to determine the time stamp representing the sending time of a message to be carried in the ACK.
  • the above method reduces the dependence of the accuracy of RTT statistics on the confirmation mechanism of each packet, while RTT can still be more accurate statistics or measurement, and it can also make many transmission control algorithms based on RTT such as congestion control work better and improve Transmission efficiency.
  • BBR detects the maximum bandwidth and minimum RTT of the network in real time to calculate the bandwidth delay product (BDP), and then determines the maximum amount of data that can be sent to the network according to the BDP to control congestion. If the measured minimum RTT is too large, the total amount of BBR sent to the network will exceed the capacity of the network itself, which will easily cause packet loss, increased queuing delay and other consequences, and reduce transmission efficiency.
  • BDP bandwidth delay product
  • Figure 3(a) describes a process for calculating the minimum RTT, which includes:
  • Step 301 At time t1, the sending node sends a data packet to the receiving node through the forward path, where the data packet includes a time stamp indicating the sending time (ie, t1).
  • the timestamp indicating the sending time is the packet sending timestamp of the data packet.
  • the sending node may include multiple data packets to be sent, and the data in the data packets to be sent may be sent by an application running on the sending node, encapsulated by the protocol stack, and waiting to be sent in the sending queue.
  • Figure 3(b) describes that the sending node has multiple messages to be sent, one is sent at t1, and the message sent at t1 is received by the receiving node at t2, the receiving node will generate an ACK, And send ACK to the sending node through the reverse path.
  • Step 303 The receiving node records the sending timestamp of the packet with the smallest OWD according to the multiple packets received within a time window.
  • the measured value or statistical value of OWD is calculated to evaluate the ACK delay time that is more accurate and closer to the actual situation.
  • the receiving node can receive multiple data packets with time stamps, obtain multiple OWD measurement values, and then pass the windowed minimum filter (Windowed Minimum). Filter) to determine the OWD with the smallest value in the duration of a time window (called the first time window) (referred to as the minimum OWD, represented by minOWD).
  • the length of the time window is preset, for example, it can be configured as needed, such as 20 ms.
  • OWD t represents the measured value of OWD at time t
  • T represents the current time
  • the function MIN() represents the minimum value
  • W1 represents the length of the first time window, which can be configured as required, such as 20ms.
  • the receiving node records the sending timestamp of the data packet with the smallest OWD.
  • the data packet that happens to be recorded to obtain the smallest OWD is the data packet described in the previous example as an example.
  • the transmission time stamp of the data packet is t1
  • the time stamp of the data packet arriving at the receiving node is t2.
  • step 303 may not be performed.
  • Step 304 The receiving node constructs an ACK, and sends the constructed ACK to the sending node through a reverse path.
  • the ACK includes a transmission time stamp of a data packet and information indicating the delay time of the ACK.
  • the information indicating the ACK delay time can be the ACK delay time, or it can carry a data packet receiving timestamp (indicating the timestamp of the receiving node to receive the data packet) and the sending timestamp of the ACK corresponding to the data packet ( Indicate the timestamp at which the receiver sends the ACK iteratively)
  • the sending node only needs to calculate the measured value of the RTT, the sending timestamp of any packet corresponding to the sending timestamp carried in the ACK.
  • the following describes the sending timestamp of the data packet corresponding to the smallest OWD as an example.
  • Figure 4(a) is described from the perspective of the receiving node.
  • the transmission time stamp of the data packet with the smallest OWD is t3, and the time stamp when the data packet arrives at the receiving node is t4.
  • the receiving node After receiving the data packet, the receiving node sends an ACK at t5.
  • the ACK delay time ack_delay t5-t4. It should be understood that the receiving node may have received other data packets between t4 and t5.
  • the ACK constructed by the receiving node includes ack_delay and t3. These two parameters can be in the ACK header, option field, or data field.
  • time stamp option already contains 10 bytes. Except for 2 bytes indicating the option type, the remaining 8 bytes include the time stamp t3 (4 bytes). ) And time stamp t5 (4 bytes). Therefore, you only need to modify the TCP message option field and replace the value of t5 with the value of ack_delay.
  • the ACK constructed by the receiving node includes t3, t4, and the timestamp t5 for sending the ACK.
  • These three parameters can be in the header of the ACK, the option field, or the data field.
  • the options field (options) timestamp option in the existing TCP message already contains 10 bytes. Except for 2 bytes indicating the option type, the remaining 8 bytes include t3 (4 bytes) and t5 (4 byte). Therefore, only need to modify the time stamp in the TCP packet option field to 14 bytes, t3, t4, and t5 occupy 4 bytes respectively, because t3, t4, and t5 can be distinguished numerically (for example, increase or decrease in sequence ), the order of these three parameters can be unlimited.
  • Step 305 The sending node calculates an RTT measurement value according to the ACK.
  • the sending node uses sRTT as the RTT measurement value.
  • Step 306 The sending node calculates a minimum RTT according to multiple received ACKs in a time window (ie, a second time window) corresponding to the RTT.
  • the sending node can receive multiple ACKs and calculate multiple RTT measurement values, and the sending node can pass the Windowed Minimum Filter to the multiple RTTs.
  • the measured value is filtered to get the minimum RTT (represented by minRTT), that is, use the following formula:
  • OWD t represents the OWD measurement value at time t
  • the function MIN() represents the minimum value
  • T represents the current time
  • the duration of the first time period and the second time period are set, they can be updated subsequently.
  • RTT is the round-trip time delay.
  • the main idea of this application is to use the statistical value of "toward” to indirectly evaluate the statistical value of "round-trip".
  • the minimum OWD corresponds to the "to" part of the RTT, and the "to” part is not evaluated. If the packet with the smallest OWD encounters network jitter during the "return", such as congestion on the "return” path, the RTT measurement value will be larger. If you directly take this measurement value as the minimum RTT value, it will not be accurate. In order to avoid this abnormal situation, we calculate the minimum value of multiple measured values according to the second time window at the sending end, mainly to eliminate errors.
  • this method is an existing method, but its function in the method described in this application is slightly different from the existing method. That is, the existing method is to eliminate the error caused by "to” and "to” at the same time, but in this embodiment, it is to eliminate the error of "to".
  • the foregoing description takes the information of the data packet corresponding to the minimum OWD carried in each ACK as an example.
  • Such "on-demand" statistics can more accurately calculate the minimum RTT.
  • the ACK can also carry the sending and receiving timestamps of any data packet corresponding to the ACK.
  • the sending node can also calculate the minimum RTT based on multiple ACKs, which can also be compared to The existing technology is closer to the actual situation and more accurate RTT statistics.
  • the receiving node only triggers the sending node to record the ACK arrival time by sending the ACK, and the sending node combines the data packet sending time corresponding to the ACK recorded by itself, that is, the sending node according to the arrival time of the ACK fed back by the receiving node To obtain the measured value or statistical value of the RTT, the receiving node does not perform any work other than sending the standard ACK for calculating the RTT during the whole process.
  • this application adopts the method of cooperation between the sending and receiving parties.
  • the prior art directly calculates the RTT measurement value at the sending node, and takes the smallest value among the RTT measurement values as the minimum RTT.
  • the present invention adopts an indirect method.
  • the receiving node calculates the OWD measurement value, takes the OWD measurement value as the minimum OWD, and then the sending node calculates the RTT measurement value corresponding to the data packet that has the minimum OWD; For multiple RTT measurement values, the smallest value among the RTT measurement values is taken as the minimum RTT.
  • the scheme described in this application can ensure the accuracy of the minimum RTT evaluation.
  • the present invention does not require clock synchronization between the sending node and the receiving node.
  • the measurement of one-way delay has a common problem, that is, the clocks of the sending node and the receiving node may not be synchronized, so if you want to obtain an accurate value of OWD, clock synchronization must be performed.
  • the receiving node only performs a comparison operation on the OWD measurement value, and only involves the difference between OWD. Therefore, the present invention does not need to perform clock synchronization, nor does it need to obtain the actual OWD measurement value during evaluation. This eliminates the influence of systematic errors in the measurement system.
  • the value of OWD in the present invention is a relative value with clock synchronization error, and the relative value will not affect the effect of the present invention.
  • the solution described in this application can also be used by the receiving node to measure or count the transmission parameters of other receiving nodes based on data packets from the sending node, such as bandwidth, jitter, packet loss rate, and The receiving rate of the receiving node and so on.
  • the receiving rate of the receiving node refers to the amount of data received by the receiving node in a unit time.
  • the sending node determines the RTT measurement value based on the data packet sending timestamp carried in the ACK and the information indicating the ACK delay time.
  • the required statistical values can be obtained.
  • This method can reduce the dependence of delay statistics on the confirmation mechanism of each packet, and ensure the accuracy of the minimum RTT measurement, thereby making the protocol congestion control based on the minimum RTT more accurate. For example, in a test scenario, the inherent round-trip delay of the network is set to 100ms, and the receiving node replies with an ACK packet every 20ms.
  • a more accurate minimum RTT can make the protocol congestion control based on the minimum RTT more accurate, thereby improving transmission efficiency. For example, improving transmission efficiency can be reflected in reducing queuing delay and reducing redundancy.
  • the redundancy rate is also called the retransmission rate, which is used to indicate the ratio between the retransmitted data packets and the total transmitted data packets.
  • the BBR algorithm under the ACK delay mechanism, the BBR algorithm is implemented, and the minimum RTT statistics in the BBR algorithm adopt the existing technology and the solution of the application respectively.
  • the virtual machines are rented in Sydney and Tokyo in the Google data center respectively, and data is transmitted between Sydney and Tokyo.
  • the comparison result is: the average queuing delay of the prior art is 63ms, and the redundancy rate is 1.41%; the average queuing delay of the present invention It is 36ms, and the redundancy rate is 0.65%. Therefore, compared with the prior art, the present invention can reduce the queuing delay by 43% and reduce the redundancy rate by 54%.
  • the receiving node needs to buffer and manage the information of each received data packet, such as the time when the data packet is received.
  • the receiving node only needs to buffer and manage part of the received data packet information, which reduces the resource occupation and system overhead of the receiving node, but the obtained RTT statistical value is more accurate, so that a smaller overhead is obtained More accurate round-trip delay statistics.
  • the above method can also be used to monitor the RTT calculation, that is, the receiving node can prompt the sending node to update the RTT calculation by sensing the jitter of the OWD.
  • This kind of monitoring can be used in single-path or multi-path connection. If it is a multi-path connection, the packets used in the following should be transmitted in the same sub-stream, that is, the RTT is the RTT of the same round-trip path.
  • the following implementation does not limit the transport protocol of the transport layer, such as TCP, UDP, MP protocol, QUIC protocol, etc. are all applicable.
  • the following uses the UDP protocol as an example for description. Simply put, it means that the sending node sends to the receiving node the packets carrying the RTT estimation.
  • These packets can be control packets or data packets. Such packets are also called delay detection packets.
  • the receiving node returns ACK and ACK. Including the information needed to count the RTT for the sending node to calculate, for example, the information indicating the ACK delay time and the sending timestamp of the UDP packet corresponding to the ACK. In this way, the sending node can calculate the measured value or statistical value of the RTT.
  • the difference from the previous method is that the receiving node can estimate the RTT according to the OWD according to the delay detection packet. When the estimated RTT jitter exceeds a range, the estimated RTT is sent to the sending node to prompt the sending node to calculate the RTT measurement value again Or statistical value.
  • the sending node sends the first UDP packet to the receiving node, and the first UDP packet is a delay detection packet.
  • the first UDP packet includes the sending timestamp of the first UDP packet.
  • the receiving node replies to the sending node based on the first UDP packet with an ACK, and the ACK carries information indicating the ACK delay time and the sending timestamp of the UDP packet.
  • the sending node calculates the RTT of the first UDP packet according to the ACK delay time, the sending timestamp, and the time when the ACK is received, which is recorded as RTT 0 .
  • the receiving node may estimate the RTT between the sending node and the receiving node based on the first UDP packet.
  • the first packet is UDP OWD OWD 0
  • take RTT aOWD 0, wherein 1 ⁇ a ⁇ 2.
  • RTT is greater than or equal to OWD. That is to say, on the one hand, the receiving node can estimate the RTT and send the RTT to the sending node, and the sending node will regard this as the measured value of RTT, without the sending node calculating the measured value of RTT.
  • the sending node may still calculate the RTT measurement value, and the RTT estimated by the receiving node is only used to estimate the jitter of the RTT.
  • the value of the transmission parameter of the network connection will also change, and this change can be called the jitter of the transmission parameter value. Due to the existence of jitter, the RTT 0 calculated above has been used as the round-trip delay of a connection is not accurate enough. Combining the above process, after the receiving node estimates the RTT, the sending node can still calculate the RTT measurement value.
  • the RTT estimated by the receiving node is only used to estimate the RTT jitter, and the estimated RTT jitter is used to remind the sending node when to update the calculation
  • the measured value of RTT that is, the specific implementation can be that when the jitter of the RTT estimated by the receiving node exceeds a certain threshold, the receiving node sends instructions or information, for example, the receiving node carries the most recently evaluated RTT in the ACK Sent to the sending node to trigger the sending node to update (that is, recalculate or revise) the measured value or statistical value of the RTT.
  • the next stage of this scheme is to evaluate this jitter through the OWD of the later received packet, and to correct RTT 0 in this way.
  • the second stage includes the following steps:
  • the sending node sends a second UDP packet to the receiving node, and the second UDP packet carries the sending timestamp and the RTT0 obtained in the foregoing steps.
  • the second UDP packet can be the first packet sent by the sending node after receiving the ACK of the first UDP packet, or it can be sent after a period of time after receiving the ACK of the first UDP packet. During this period of time, the sending node may have received or sent other packets.
  • each subsequent UDP packet sent can carry RTT 0 , where the RTT carried can be RTT 0 , or it can be the ACK of the sending node based on the first UDP packet ACK received afterwards, RTT obtained.
  • RTT 0 is a reference value, so the reference value can also be updated, which helps the receiving node to more accurately estimate the RTT of the current connection. If there is no need to change these values for a period of time, the packets sent by the sending node during this period of time may not carry RTT 0 , which can reduce the amount of data to be transmitted and save network resources.
  • the receiving node After receiving the second UDP packet, the receiving node estimates the current RTT based on the OWD of the second UDP packet and the first UDP packet. In one implementation, the receiving node calculates the OWD of the second UDP packet (denoted as OWD 1 ) according to the sending time stamp carried in the second UDP packet and the receiving time of the second UDP packet recorded by the receiving node. The receiving node calculates the difference between the OWD of the second UDP packet and the OWD (denoted as OWD 0 ) of the first UDP packet, and the difference is denoted as ⁇ OWD 0 .
  • steps A and B can occur multiple times.
  • the following takes the i-th UDP packet received by the receiving node as an example, where i is greater than 2.
  • the i-th UDP packet is a packet sent by the sending node after the second UDP packet, and it is also the receiving node that receives the i-th UDP packet after the second UDP packet.
  • the OWD of the i- th UDP packet is denoted as OWD i-1 .
  • the receiving node calculates the difference between the OWD of the i- th UDP packet and the OWD (denoted as OWD i-2 ) of the i- 1th UDP packet, and the difference is denoted as ⁇ OWD i-1 .
  • RTT i-1 RTT i-2 + b ⁇ OWD 0 , where 1 ⁇ b ⁇ 2, it should be noted that RTTi-2 may Equal to any value from RTT0 to RTTi-2, that is, the role of RTT i-2 is a base, and it has not changed from the base.
  • the receiving node can monitor the jitter of RTT by estimating the RTT.
  • the estimated RTT change is higher than the threshold, it can notify the sending node to re-measure, so there is no need to calculate the RTT measurement value or statistical value at any time, which can save the sending node
  • the processing resources can also enable the sending node to update the RTT with the actual changes in the network. It also takes into account the real-time and accuracy, and can more accurately reflect the transmission performance of the path.
  • the goal of the method that is different from the previous description is to obtain a more accurate RTT measurement value or statistical value; in the above embodiment using UDP as an example, the receiving node monitors the change in the transmission state, and activates the sending node to update the RTT measurement value or Statistics.
  • the change of RTT is estimated by counting the change of OWD at the receiving node, thereby reducing the dependence of delay statistics on the number of ACKs, reducing unnecessary ACK packets, and reducing transmission overhead; secondly, calculating the changes of OWD at the receiving node, It can directly reflect the status of forward path transmission and eliminate the interference caused by jitter on the reverse path during ACK transmission on the reverse path, so that the estimated delay change is closer to the true forward path transmission status, and the transmission The control is more accurate.
  • an embodiment of the present application also provides a system for evaluating round-trip delay.
  • the system includes a first device and a second device, and can execute various methods described above.
  • the first device corresponds to the previous message.
  • the first device is used to send multiple messages to the second device through the same path, and each of the multiple messages carries an indication of the message.
  • the timestamp of the sending time of the message; the second device is used to determine the first timestamp from the timestamps carried by the plurality of messages by calculating the statistical value of the one-way delay OWD of the plurality of messages, where:
  • the first time stamp indicates the transmission time of the first message among the plurality of messages, and the measured value of the OWD of the first message is equal to the statistical value of the OWD of the plurality of messages;
  • the second device is used to send the The first device sends an acknowledgment ACK, the ACK includes the first time stamp and ACK time information, and the ACK time information is related to the length of time from receiving the first packet to sending the ACK by the second device; the first device is used for The ACK is received, and a measurement value of the RTT of the path is determined based on the first time stamp, the ACK time information, and the second time stamp, where the second time stamp indicates the time when the first device received the ACK.
  • the second device can calculate the one-way delay of the path, because the second device may receive multiple messages before returning an ACK.
  • the second device uses the statistical value of OWD to determine which message’s transmission timestamp is carried in the ACK, and also carries the information corresponding to the message that can indicate the ACK transmission delay in the ACK, that is, with the help of OWD Analyze to evaluate RTT, so that through the cooperation of the first device and the second device, the accuracy of evaluating RTT can be improved.
  • the data transmission of the path is controlled based on the RTT, which is more accurate and closer to the actual network situation, and can improve the transmission performance of the path.
  • an embodiment of the present application also provides a data transmission device, which corresponds to the receiving node described above, that is, corresponds to the second device or second node described above, and can communicate with the sending node (That is, the first device or the first node in the foregoing) cooperates to execute the method for evaluating the round-trip delay described in this application.
  • the device may specifically be a device, a processor, a chip, or a chip system in the device, which is described below with reference to FIG. 5.
  • the data transmission device 500 includes a receiving module 501 for receiving multiple messages from a first device through the same path, and each of the multiple messages carries a message indicating the transmission time of the message.
  • the timestamp determining module 502 is used to determine the first timestamp from the timestamps carried by the plurality of messages by calculating the statistical value of the one-way delay OWD of the plurality of messages, where all The first time stamp indicates the transmission time of the first message among the plurality of messages, and the measured value of the OWD of the first message is equal to the statistical value of the OWD of the plurality of messages; and the sending module 503, Used to send an acknowledgment ACK to the first device so that the first device evaluates the RTT of the path based on the ACK, where the ACK includes the first timestamp and ACK time information, and the ACK time information is the same as The second device is related to the length of time from receiving the first packet to sending the ACK.
  • the data transmission device 500 is also a receiving node in the system corresponding to FIG. 2, that is, the internal structure of the receiving node can be implemented in multiple ways.
  • This application only lists a few schematically, as long as the receiving node can execute Various methods are described above.
  • the data packet analysis module 205, the one-way delay statistics module 206, and the ACK construction module of the receiving node in FIG. 2 can be regarded as corresponding to the timestamp determining module 502 in FIG. 5.
  • functions, and technical effects that can be achieved by the data transmission device 500 please refer to the relevant description in the previous method section, and will not be repeated here.
  • the division of modules in the embodiments of the present application is illustrative, and is only a logical function division. In actual implementation, there may be other division methods.
  • the functional modules in each embodiment of the present application It can be integrated in a processor, or it can exist alone physically, or two or more modules can be integrated in one module.
  • the above-mentioned integrated modules can be implemented in the form of hardware or software functional modules.
  • the apparatus 600 may include a processing circuit 601, and the apparatus 600 may also include at least one storage medium 603 for storing program instructions and/or data.
  • the storage medium 603 and the processing circuit 601 are coupled.
  • the coupling in the embodiments of the present application is an indirect coupling or communication connection between devices, units, or modules, and may be in electrical, mechanical or other forms, and is used for information exchange between devices, units or modules.
  • the processing circuit 601 may cooperate with the storage medium 603.
  • the processing circuit 601 may execute program instructions stored in the storage medium 603.
  • at least a part of the storage medium 603 may be included in the processing circuit 601.
  • the apparatus 600 may further include a communication interface 604, and the apparatus 600 may exchange information with other devices through the communication interface 604.
  • the communication interface 604 may be a circuit, a bus, a transceiver, an antenna, or any other device that can be used for information exchange.
  • the apparatus 600 may be applied to a receiving node, and may be an apparatus capable of supporting the receiving node to implement the function of the receiving node in any of the above-mentioned embodiments.
  • the storage medium 603 stores necessary computer program instructions and/or data to realize the function of the receiving node in any of the foregoing embodiments.
  • the processing circuit 601 can execute computer program instructions stored in the storage medium 603 to complete the method executed by the receiving node in any of the foregoing embodiments.
  • the functions of the receiving module 501, the time stamp determining module 502, and the sending module 503 shown in FIG. 5 can all be implemented by the processing circuit 601.
  • the functions of the data packet analysis module 205, the one-way delay OWD statistics module 206, and the ACK construction module 207 described in FIG. 2 can also be implemented by the processing circuit 601.
  • it may be an electrical connection.
  • the connection mode between other components through the bus 602 is shown in FIG. 6 for illustrative purposes only, and is not intended to be limiting.
  • the bus can be divided into address bus, data bus, control bus, etc. For ease of representation, only one thick line is used in FIG. 6, but it does not mean that there is only one bus or one type of bus.
  • the processing circuit 601 may be a general-purpose processor, a digital signal processor, an application specific integrated circuit, a field programmable gate array or other programmable logic device, a discrete gate or transistor logic device, or a discrete hardware component. Or execute various methods and logical block diagrams disclosed in the embodiments of the present application.
  • the general-purpose processor may be a microprocessor or any conventional processor. The method disclosed in combination with the embodiments of the present application may be directly embodied as being executed by a hardware processor, or executed by a combination of hardware and software modules in the processor.
  • the storage medium 603 may be a non-volatile memory, such as a hard disk drive (HDD) or a solid-state drive (SSD), etc., and may also be a volatile memory (volatile memory). , Such as random-access memory (RAM).
  • the storage medium 603 may also be any other medium that can be used to carry or store desired program codes in the form of instructions or data structures and that can be accessed by a computer, but is not limited thereto.
  • the memory in the embodiments of the present application may also be a circuit or any other device capable of realizing a storage function, for storing program instructions and/or data.
  • This application also provides a chip, which may include a communication interface and a processing circuit; the processing circuit is used to control the communication interface to implement the method described above. It should be understood that the chip can run on a device that includes a storage medium.
  • the storage medium can store instructions or codes for executing the method described above, so that after the chip is powered on, the processing circuit can call the storage medium in the device Instruction or code in.
  • the embodiments of the present application can be provided as methods, systems, or computer program products. Therefore, the present application may adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Moreover, this application may adopt the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program codes.
  • a computer-usable storage media including but not limited to disk storage, CD-ROM, optical storage, etc.
  • These computer program instructions can also be stored in a computer-readable memory that can guide a computer or other programmable data processing equipment to work in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture including the instruction device.
  • the device implements the functions specified in one process or multiple processes in the flowchart and/or one block or multiple blocks in the block diagram.
  • These computer program instructions can also be loaded on a computer or other programmable data processing equipment, so that the method described above can be executed on the computer or other programmable equipment.

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Environmental & Geological Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种评估往返时延的系统,方法及装置,用以提高往返时延的评估精度。该系统中,第一设备通过同一路径向所述第二设备发送多个报文,该多个报文中的每一个报文都携带有指示所述报文的发送时间的时间戳。第二设备通过计算所述多个报文的单向时延的统计值,从所述多个报文携带的时间戳中确定出一个时间戳,第二设备向第一设备发送ACK,该ACK包括确定出的时间戳和ACK时间信息。第一设备基于ACK中的戳、ACK时间信息以接收该ACK的时间,确定该路径的RTT的一个测量值。

Description

一种评估往返时延的系统、方法及装置 技术领域
本申请涉及通信技术领域,尤其涉及一种评估往返时延的系统、方法及装置。
背景技术
虚拟现实(VR,virtual reality)、增强现实、高清无线投屏以及基于人工智能的新型应用的兴起,催生出广域网(WAN,Wide Area Network)和无线局域网(WLAN,Wireless LAN)上海量数据传输的需求。对带宽的需求越来越大,因此数据包传输要求高吞吐量。例如4K视频要求吞吐在15-18Mbps,高清VR甚至高达167Mbps,然而,现有WLAN传输能力远远无法满足高清视频应用的带宽需求,例如,2017年全球移动网络传输能力平均值仅8.7Mbps。虽然底层技术在不断革新,但是传输层协议对数据路径层的协议并不友好,导致即使带宽有600Mbps,带宽利用率可能仅仅只有61%。
而“高吞吐”对确认信息(acknowledgement,ACK)机制提出新的挑战。例如,IEEE802.11中,介质访问控制(MAC,Media Access Control)层协议强制要求每次频谱资源请求之前必须有一段空间时间,然而某些传输层协议,如传输控制协议(Transmission Control Protocol,TCP)是一个对称的协议,每发一个或两个数据包,就会回一个确认(ACK,Acknowledgement)字符,这种方式被称为每包确认。由于ACK与数据包消耗了几乎同样多的频谱资源,高吞吐场景下,单位时间正向路径(从数据的发送节点到数据的接收节点的路径,也称数据路径)传输的数据包增加,使得单位时间反向路径(从数据的接收节点到数据的发送节点的用于传输确认字符的路径,也称控制路径)传输的ACK的数量也会增大。这样,就会导致正向路径上数据的吞吐急剧下降。因此,减少ACK的频率是提高带宽利用率的有效手段。
延迟确认是减少ACK的频率的最常用的方法。延迟确认作为传输控制协议中的一种反馈方式,特指一个数据包从发送节点(即上文的数据的发送节点)到达接收节点(即上文的数据的接收节点)后,接收节点并不立刻回复一个ACK,而是等待更多的数据包到达,或者等过一段时间再回复一个ACK的反馈方式。
往返时延(Round-Trip Time,RTT)是指数据包从发送节点发出到该数据包到达接收节点,然后该数据包对应的ACK被该发送节点接收到,所经历的总时间。由于网络的实时的传输性能会有波动,发送节点在不同的时间得到的RTT数值也同样会波动,因此,实际业务中RTT的测量值(下文简称RTT),以及由多个RTT测量值计算出的统计值(下文简称RTT的统计值)都可以作为评估一个连接的传输性能的重要参数,很多传输控制策略都要基于RTT或RTT的统计值制定或者调整。其中RTT的统计值可以是最小RTT(Minimum Round-Trip Time,minRTT),即数据发送节点接收到多个RTT中值最小的一个;最大RTT(Maximum Round-Trip Time,maxRTT),即数据发送节点接收到多个RTT中值最大的一个;平均RTT,即数据发送节点接收到多个RTT的平均值,平均RTT可以有多种计算方法;多个RTT中排第K大的RTT以及多个RTT中值为前L%小的RTT(0<L<100%),如,第95%大的RTT(95th percentile Round-Trip Time,95 th RTT)等等。一些方式下,用于计算上述的RTT的统计值的多个RTT的测量值是在一个时间段内的值,例如,这个时间段可以是时长为预设长度(例如5S,10S或者13S等等)的某个历史时间段,该历史时间段的一个端点可以是当前时刻。
然而,延迟确认的场景下,RTT的计算只能依靠为数稀少的ACK来进行采样,这种采样的方式导致现有的方法很难保证对RTT的评估的准确性和可用性,也制约了数据传输的性能的提高。
发明内容
本申请提供一种评估往返时延的系统,方法和装置,通过单向时延OWD来筛选携带在ACK中的时间戳,从而辅助对RTT的评估,以提高对评估RTT的准确性和可用性。
第一方面,本申请实施例提供一种评估往返时延RTT的系统,该系统包括第一设备和第二设备,该第一设备用于通过同一路径向该第二设备发送多个报文,该多个报文中的每一个报文都携带有指示该报文的发送时间的时间戳;该第二设备用于通过计算该多个报文的单向时延OWD的统计值,从该多个报文携带的时间戳中确定第一时间戳,其中,该第一时间戳指示该多个报文中第一报文的发送时间,该第一报文的OWD的测量值等于该多个报文的OWD的统计值;该第二设备用于向该第一设备发送确认ACK,该ACK包括该第一时间戳和ACK时间信息,该ACK时间信息与该第二设备从接收该第一报文到发送该ACK的时长有关;该第一设备用于接收该ACK,以及基于该第一时间戳,该ACK时间信息以及第二时间戳,确定该路径的RTT的一个测量值,其中,该第二时间戳指示该第一设备接收该ACK的时间。
上述第一设备可以看做是发送设备(或发送节点),第一设备向第二设备发送报文的路径是正向路径,第二设备可看做是接收设备(或接收节点),第二设备向第一设备发送ACK的路径是反向路径。第一设备和第二设备之间的通信可以多路径传输技术,例如MPTCP,那么评估的就是一条子流的RTT。
同一路径是指发送的多个报文使用相同的路由,多路径场景下,就是指该多个报文属于同一子流。
上述的多个报文可以是第二设备在一个第一时间窗内接收到的,则该多个报文的OWD的统计值就是第一时间窗内该路径的OWD的统计值。第一设备发送的报文可以是数据报文也可以是控制报文。
由于第一设备发送的报文中携带有指示该报文发送时间的时间戳,第二设备就可以计算路径的单向时延,因为第二设备可能接受了多个报文后才返回ACK,第二设备通过OWD的统计值来确定在ACK中携带哪个报文的发送时间戳,并将对应于该报文的能指示ACK发送时延的信息也携带在ACK中,也就是借助对OWD的分析来评估RTT,这样就可通过第一设备和第二设备的配合,提高评估RTT的准确性。基于更准确更贴近实际网络情况的RTT控制该路径的数据传输,能提高该路径的传输性能。
该ACK时间信息与该第二设备从接收该第一报文到发送该ACK的时长有关,是指基于该ACK时间信息,能够确定出或者反映出该第二设备从接收该第一报文到发送该ACK的时长,故该ACK时间信息可以有多种表达方式。一种实现方式下,该ACK时间信息包括第三时间戳和第四时间戳,该第三时间戳指示该第二设备接收该第一报文的时间,该第四时间戳指示该第二设备发送该ACK的时间。另一种实现方式下,该ACK时间信息包括第一时间段,该第一时间段指示该第二设备从接收该第一报文到发送该ACK的时长。
另外,该第一设备计算RTT的测量值可以有多种方式。例如,一种实现方式下,该第一设备具体用于将该第二时间戳指示的时间减去该第一时间戳指示的时间,以及减去该第四时间戳与该第三时间戳之差,以得到该路径的RTT的一个测量值。再例如,该第一设备具体用于将该第二时间戳指示的时间减去该第一时间戳指示的时间,以及减去该第一时间段,以得到该路径的RTT的一个测量值。再例如,该第一设备完成上述的减法计算后,再做一些后处理,例如通过一些公式修正结果,将修正后的结果作为该路径的RTT的一个测量值。这些后处理是基于工程上处理数据的,比如使得数据更加平滑,由于评估的RTT进一步用于传输控制或者监控等业务场景,这些后处理是可能发生的。
一种实现方式下,该第一设备还用于基于在一个时间窗内收集的多个ACK,计算该路径的RTT的多个测量值,以及计算该路径的RTT的多个测量值对应的统计值。统计值可以比测量值更好地反映路径的传输性能,因为统计值是一段时间内的多个测量值得到的,能减少网络的细微变化对RTT评估的影响。由于多个测量值是比较贴近实际情况比较准确的,基于这多个测量值得到的统计值也能比较准确地反映路径的真实的传输性能。
例如,这个时间窗可以是从第一设备收到上述ACK的时间起的一段时长。上述的多个ACK也应当是对应通过同一路径传输的报文。
一种实现方式下,该多个报文的OWD的统计值与该路径的RTT的统计值的类型相同,该类型为最大值,最小值和平均值中的一种。当然,这些类型可以遵循不同的计算公式,例如平均值还有更细分的种类,另一方面,还可以是其他统计值的类型,如多个RTT(OWD)中排第K大的RTT(OWD)以及多个RTT(OWD)中值为前L%小的RTT(OWD)(0<L<100%)等等。当然,另一种实现方式下,该多个报文的OWD的统计值与该路径的RTT的统计值的类型也可以不同,可按照用户的需求制定。
例如一个场景下,该多个报文的OWD的统计值为该多个报文的最小OWD,该路径的RTT的统计值为该多个测量值中的最小RTT。
综上,上述方法降低了RTT统计的准确性对每包确认机制的依赖程度,而RTT仍然能较为准确统计或者测量,也能使得很多基于RTT进行例如拥塞控制的传输控制算法能更好地发挥作用,提高传输效率。
第二方面,本申请提供一种评估时延的方法,该方法包括:第二设备通过同一路径接收来自第一设备的多个报文,该多个报文中的每一个报文都携带有指示该报文的发送时间的时间戳;该第二设备通过计算该多个报文的单向时延OWD的统计值,从该多个报文携带的时间戳中确定第一时间戳,其中,该第一时间戳指示该多个报文中第一报文的发送时间,该第一报文的OWD的测量值等于该多个报文的OWD的统计值;该第二设备向该第一设备发送确认ACK,以便该第一设备基于该ACK评估该路径的RTT,该ACK包括该第一时间戳和ACK时间信息,该ACK时间信息与该第二设备从接收该第一报文到发送该ACK的时长有关。
第二方面描述的是第二设备执行的方法,对应于第一方面描述的系统,因此,第二方面的具体实现方式和有益效果,请参考对第一方面的描述。
第三方面,本申请提供一种评估时延装置,该装置包括:接收模块,用于通过同一路径接收来自第一设备的多个报文,该多个报文中的每一个报文都携带有指示该报文的发送时间的时间戳;时间戳确定模块,用于通过计算该多个报文的单向时延OWD的统计值,从该多个报文携带的时间戳中确定第一时间戳,其中,该第一时间戳指示该多个报文中第一报文的发送时间,该第一报文的OWD的测量值等于该多个报文的OWD的统计值;发送模块,用于向该第一设备发送确认ACK,以便该第一设备基于该ACK评估该路径的RTT,该ACK包括该第一时间戳和ACK时间信息,该ACK时间信息与该第二设备从接收该第一报文到发送该ACK的时长有关。
第四方面,本申请提供一种评估时延装置,该装置包括:通信接口、处理电路和存储介质;该存储介质用于存储软件程序,该通信接口用于通过该存储介质中的指令与其他设备收发报文,该处理电路用于运行该存储介质中的指令控制该通信接口以实现前述方面中第二设备执行的流程。
第三、四方面描述的是第一方面描述的系统中,第二设备的两种实现方式,因此,第三、四方面的具体实现方式和有益效果,请参考对第一方面的描述。
第五方面,本申请提供一种的芯片,该芯片包括:通信接口和处理电路;该处理电路用于控制该通信接口以实现第一方面的任意一种实现方式或第二方面的任意一种实现方式中第二设备执行的流程。
第六方面,本申请实施例提供了一种芯片,该芯片与存储器相连,用于读取并执行所述存储器中存储的软件程序,以实现第一方面的任意一种实现方式或第二方面的任意一种实现方式中第二设备执行的流程。
第七方面,本申请实施例中还提供一种计算机存储介质,该存储介质中存储软件程序,该软件程序在被一个或多个处理器读取并执行时可实现第一方面的任意一种实现方式或第二方面的任意一种实现方式中第二设备执行的流程。
第八方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行第一方面的任意一种实现方式或第二方面的任意一种实现方式中第二设备执行的流程。
应当理解的是,本申请的第五至第八方面与本申请的第一方面和第二方面的技术方案相同或者类似,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
附图说明
图1(a)-(c)为本申请实施例提供的三种场景下返回ACK的示意图;
图2为本申请实施例提供的一种通信系统架构示意图;
图3(a)为本申请实施例提供的评估往返时延的流程示意图;
图3(b)为本申请实施例提供的计算单向时延的指示图;
图4(a)-(c)为本申请实施例提供的发送ACK的时序和结构示意图;
图5为本申请实施例提供的一种数据传输装置(对应接收节点)的结构示意图;
图6为本申请实施例提供的一种数据传输装置(对应接收节点)的结构示意图。
具体实施方式
本申请实施例提供的方案可用在端到端通信,端云通信以及云到云通信等多种通信场景中。因此,本申请涉及到的接收节点或者发送节点可以是终端设备(也可以简称为终端),例如传感器、手机、平板、笔记本电脑、个人计算机、车载终端、机顶盒、电视盒子等;也可以是网络设备,例如网关、接入路由器、核心路由器、前端路由器、负载均衡器、服务器等。例如,端到端场景可以是,手机将一段视频投屏在智能电视或者通过电视盒子或接收器投屏在显示器上。再例如,两个终端设备之间通过某个应用的视频通话,则其中的一个终端和该应用的服务器,就是适用本申请描述的方法的端云场景。
应理解,本申请中的接收节点和发送节点都指设备,或者都指设备上运行的操作系统。例如,接收节点是指一个连接中,接收数据且发送反馈信息的设备或者该设备上运行的操作系统,发送节点是指一个连接中,发送数据的设备或者该设备上运行的操作系统,当然发送节点也可以发送控制报文。同一个设备可以在一段时间内是接收节点,而另一段时间内是发送节点,或者,由于一个设备可能是多条连接的端节点,这个设备还可以同时是接收节点和发送节点,例如一个手机,一边向网盘上传图片,这就可看作发送节点,一边打开新闻网站中的标题供用户阅读文章,这就可看作接收节点。为便于理解,本申请以一条连接的发送节点和接收节点为例描述。后续描述时,本申请实施例中发送节点也被称为第一节点或者第一设备,接收节点也被称为第二节点或者第二设备。换句话说,第一节点或者第一设备在一个RTT评估流程中,发送多个报文,该报文可以是数据包或者控制报文;而第二节点或者第二设备在一个RTT评估流程中,发送反馈信息,例如ACK,SACK或NACK。
本申请的方案可以适用到所有支持时延统计的端到端协议中。这些端到端协议可以是,传输控制协议(transport control protocol,TCP)、用户数据协议(user data protocol,UDP)、快速UDP网络连接(quick UDP internet connection,QUIC),流控制传输协议(stream control transmission protocol,SCTP)等等,甚至可以使用在多路径传输场景的子流(subflow),本申请不做限制。本申请中,评估往返时延所使用的报文应当是通过同一路径(path)发送的, 即这些报文的正向路径应当相同,使用不同路径发送的报文由于路由不同,网络状态也可能不同,是不合适用在一个往返时延的评估中的。其中,路径是指从发送节点到接收节点的路由。
通常,往返时延(RTT)等于发送节点接收到ACK时的当前时间减去ACK中携带的回显时间。由于当前时间和回显时间都是在实际组网中获取的,这样计算出的RTT的值可以作为一条路径的RTT的测量值,该路径用于传输该ACK回应的数据包。回显时间是指该ACK回应的数据包从发送节点发出的时间,而当前时间可用于指示ACK的接收时间。即可根据ACK的接收时间(即当前时间)和数据包的发送时间(即回显时间),得到该路径的RTT的测量值。多个RTT的测量值通过统计学的运算,例如求最大值,最小值,平均值等,就可以得到对应这多个RTT的统计值。另外,路径(path)是指从发送节点到接收节点的路由。
下面以计算最小RTT为例,简单描述RTT的统计值的计算方法。发送节点到接收节点可以有多条路径,在传输过程中,传输报文的路径也可能发生变化,采用全局最小RTT(也就是所有统计到的RTT中的最小值)来评估路径的传输性能会失真。本申请中计算的最小RTT是一条路径的最小RTT,也就是说,计算该最小RTT的数据包是通过同一条路径从发送节点传输到接收节点的。其中,发送节点位于第一设备,或者就是第一设备,接收节点位于第二设备,或者就是第二设备。现有技术的做法是,发送节点针对多个RTT的测量值,通过最小窗口过滤器(Windowed Minimum Filter)计算该对节点(发送节点和接收节点)在某一时间窗口内的最小RTT,并以此作为该路径的最小RTT的测量值。其中,最小窗口过滤器的实现如下:
Figure PCTCN2020101547-appb-000001
其中,RTT t表示表示t时刻的RTT测量值,T表示当前时刻,W R表示一个时间窗口,一般为若干秒(例如5s,8s,10s或者14s等等)。
本申请的可用于各种对时延的统计要求比较精准,可是接收节点返回的ACK数量较少的场景中,较少是相对于接收节点接收到的报文数目等于接收节点发送的ACK的数目这种情况。例如,延迟确认场景下的时延统计,甚至包括某些每包确认场景下的时延统计,例如一些传输协议(例如TCP协议,标准RFC 1122)规定的TCP的ACK不能延迟超过2个数据包且延迟不能超过一个阈值(例如500ms),这种情况虽然可以被理解为每包确认场景,但本申请描述的方法一样适用。延迟确认作为一种反馈机制,不仅能够减少ACK的频率,而且能够降低通信双方和中间网络设备的开销。
下面结合图1,描述延迟确认场景对评估RTT及其统计值的影响,具体以最小RTT为例。图1中,发送节点中的每个黑色方块代表一个数据包,接收节点中的每个圆形代表一个ACK,所有数据包使用同一路径传输。图1中的(a)示意,发送节点发送5个数据包,每包确认机制下,接收节点每收到一个数据包回复一个ACK,对应数据包和ACK的数量比为(1:1),发送节点可以获取5个RTT的测量值,分别是20ms,16ms,22ms,15ms,30ms。发送节点根据这5个RTT的测量值,统计出最小RTT为15ms。在延迟确认机制下,假设每两个数据包回复一个ACK,图1中只有5个数据包,故(b)中对应数据包和ACK的数量比为(5:3),发送节点可获取3个RTT的测量值,分别是20ms,22ms,30ms。发送节点根据测量RTT的集合,统计的该路径的最小RTT为20ms,该统计结果与图1(a)的结果的偏差达到了30%。再如图1(c),示意的是每N(N>2)个数据包回复一个ACK的情况,图1中的(c)示意为(5:1),假设N=5,发送节点只能获取1个数据包的测量RTT,即30ms。因此,这种情况下统计的该路径的最小RTT为30ms,该统计结果与图1(a)的结果的偏差达到了100%。
可见,在接收多个数据包后才返回一个ACK的情况下,RTT的统计值很容易有偏差。因为机械地、粗暴地减少ACK数目,会产生一些问题:如1.改变发送模式产生流量突发(Burst),扰乱发送窗口更新和丢包检测算法;2.对ACK丢失变得更加敏感;以及3.无法准 确评估RTT等。
可见,RTT的测量依赖ACK,如果ACK数量较每包确认一个ACK少,现有的方法获得准确的RTT测量值和统计值的概率就会降低,不同情况下,RTT测量值和统计值的结果波动大,容易造成测量和统计的结果错误、或者与实际不附。因此,设计一种更好保障RTT的准确测量和统计,减少结果波动,尽量贴近实际情况的方法,对于WLAN以及非对称网络等场景具有重大的现实意义。
本申请的基本思想是在接收节点通过单向时延(OWD,one-way delay)的变化来推测往返时延(RTT,round-trip time)的变化,充分利用接收节点的能力差异,减少时延统计对每包确认机制的依赖,以一种间接的方式进行更为精准的时延统计。单向时延,是指一个数据包从发送节点发出到该数据包到达接收节点所经历的时间。需要说明的是,下文出现的OWD的测量值,OWD的统计值(例如最小OWD,最大OWD,OWD的平均值等)的解释和定义,可以参照对应的RTT的测量值和统计值的解释和定义,下文不再赘述。
其中,OWD的统计值和RTT的统计值都是一段时间内的统计值,例如一个时间窗口。一种实现方式下,RTT统计值的时间窗口长于OWD的统计值。
在传输控制中,相比ACK,上层业务更关注被传输的数据包本身。例如,传输一个文件,用户体验与文件传输完成时间相关联,因此,用户只关心数据包从发送节点尽快到达接收节点,而不太关心其ACK的传输。由于OWD只与数据包的传输有关,RTT则与数据包和ACK的传输都相关,本申请通过OWD变化来推测RTT的变化,是合理的,可行的。
基于此,本申请实施例提供一种数据传输方法及装置,用以提高对RTT的评估的准确性,从而提高数据的传输性能。其中,方法和装置是基于同一发明构思的,由于方法及装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。
另外,需要说明的是,本申请中,“至少一个”是指一个或者多个,“多个或者若干”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B以及单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。应当理解,尽管在本申请实施例中可能采用术语第一、第二等来描述各对象、但这些术语仅用来将各对象彼此区分开。
如图2所示,为本申请实施例示例的一种通信系统的具体的架构示意图。通信系统中包括发送节点和接收节点。示例性的,发送节点包括数据包构造模块201、数据包发送模块202、ACK解析模块203和往返时延统计模块204,在接收节点实现数据包解析模块205、单向时延OWD统计模块206、ACK构造模块207和ACK发送模块208,接收节点还可以包括数据包接收模块,图2中没有示出。要说明的是,发送节点和接收节点还可以包含其它本申请未说明的模块,本发明并不对节点上的模块数目做任何限制。另外,图2的架构只是一种举例,本申请不限定接收节点和发送节点中各自包括的模块,具体实现时,上述模块中的某几个模块的功能也可能在一个模块中实现。
下面以图2的系统为例,介绍一种装置结构如何完成本申请描述的方法,这个例子以发送节点发送数据包为例进行说明。
1.发送节点通过数据包构造模块201,构造数据包,通过数据包发送模块202,将数据包经过通信路径发送给接收节点。其中,数据包中携带该数据包的发送时间戳。
其中,一个数据包的发送时间戳(又称数据包发送时间戳)指示该数据包从发送节点发出的时刻。
2.接收节点通过数据包解析模块205,获取数据包中携带的数据包发送时间戳,并记录该数据包的到达时间戳。
其中,一个数据包的到达时间戳(又称数据包到达时间戳)指示该数据包到达接收节 点的时刻。
3.接收节点通过单向时延统计模块206,根据该数据包的发送时间戳和到达时间戳,计算该数据包的单向时延。通过这种方式,接收节点可以统计每个接收到的数据包的单向时延。
4.接收节点通过单向时延分析模块206,分析一段时间内接收到的多个数据包的单向时延,获得单向时延的分析结果。
例如,分析结果可以是接收节点在这段时间内接收到的包中,对应最小单向时延的包的信息,例如该包的标识,再例如,这个分析结果为这段时间内接收到的单向时延的波动是否超过一个阈值。
5.接收节点通过ACK构造模块207,根据单向时延的分析结果,构造ACK。接收节点通过ACK发送模块208,将ACK经过通信路径发送给发送节点。
其中,ACK中携带发送节点计算往返时延所需要的信息。该信息可以是一个值,用于指示某个包的OWD测量值,或者某段时间内OWD的一种统计值。该信息还可以是该ACK的发送时间戳,以及该ACK的发送延迟时间,比如从接收到数据包到发送该数据包对应的ACK的时间之间的时间差。
6.发送节点通过ACK解析模块203,解析接收到的ACK,获得发送节点计算往返时延所需要的信息,并将该信息输出给往返时延统计模块204。
7.发送节点通过往返时延统计模块204,根据ACK解析模块203输出的信息(即发送节点计算往返时延所需要的信息),得到往返时延的一个测量值。
上述过程发生多次,就可以得到往返时延的多个测量值。
8.发送节点通过往返时延统计模块204,根据往返时延的多个测量值,计算往返时延统计值。
另外,本申请还提供另一种通信系统,该系统中包括第一设备和第二设备,其中第一设备就相当于图2所示系统中的发送节点,第二设备就相当于图2所示系统中的发送节点。有关该通信系统如何实现下述流程的进一步详细的描述,请参考本申请其他的对应段落,例如对方法的描述,以及上文的说明。
第一设备用于通过同一路径向第二设备发送多个报文,该多个报文中的每一个报文都携带有指示该报文的发送时间的时间戳;第二设备用于通过计算多个报文的单向时延OWD的统计值,从多个报文携带的时间戳中确定第一时间戳,其中,第一时间戳指示多个报文中第一报文的发送时间,第一报文的OWD的测量值等于多个报文的OWD的统计值。第二设备用于向第一设备发送确认ACK,ACK包括第一时间戳和ACK时间信息,ACK时间信息与第二设备从接收第一报文到发送ACK的时长有关。第一设备用于接收ACK,以及基于第一时间戳,ACK时间信息以及第二时间戳,确定路径的RTT的一个测量值,其中,第二时间戳指示第一设备接收ACK的时间。一种实现方式下,ACK时间信息包括第三时间戳和第四时间戳,第三时间戳指示第二设备接收第一报文的时间,第四时间戳指示第二设备发送ACK的时间。
可见,第一设备和第二设备中可以不包括如图2对应的系统中那么多的模块,也就是说,对设备或者节点中模块的划分方式是多样的。
一种实现方式下,ACK时间信息包括第一时间段,第一时间段指示第二设备从接收第一报文到发送ACK的时长。
一种实现方式下,第一设备还用于基于在一个时间窗内收集的多个ACK,计算路径的RTT的多个测量值,以及计算路径的RTT的多个测量值对应的统计值。
一种实现方式下,多个报文的OWD的统计值与路径的RTT的统计值的种类都是最大值,最小值,或平均值。
这样,上述的系统就可以通过借助OWD,提高对RTT的评估准确度。
上述过程中,接收节点(第二设备)可以按照发送节点(第一设备)的“需求”得到 单向时延OWD的测量值或者统计值。“按需”表现在RTT的统计值包括多种形式,例如前文提到的最小RTT、最大RTT、第K大的RTT(0<K<100%)和平均RTT等等,而接收节点计算的OWD的统计值与发送节点计算的RTT的统计值类别相同。例如,发送节点的“需求”是统计最小RTT,则对应在接收节点上统计最小OWD;再例如,发送节点的“需求”是统计最大RTT,则对应在接收节点上统计最大OWD;依此类推。这样,可以节省计算资源。当然,还可以有其他实施方式,是OWD的统计值与RTT的统计值类别不相同,即,不论发送节点的“需求”是最小RTT、最大RTT、第K大的RTT(0<K<100%)还是平均RTT,对应在接收节点上都统计第K大的OWD(0<K<100%),只是对应K的取值不相同。例如,最小RTT对应的K值为5%,最大RTT对应的K值为95%,平均TTT对应的K值为50%。
下面描述本申请提出的评估往返时延的方法。简单来说,发送节点(也称第一节点或第一设备)通过同一路径向接收节点(也称第二节点或第二设备)发送报文(该报文可以是数据包或者控制报文),在报文中携带发送节点发送该报文时的时间戳(即报文发送时间戳)。接收节点在一个时间窗内接收到一个或多个报文后,计算这些报文的OWD的统计值,以及在回复的ACK中,携带一个时间戳和发送节点计算往返时延所需要的信息(即ACK时间信息),例如用于指示某个报文的OWD测量值,或者某段时间(如第一时间窗)内OWD的一种统计值,或者是该ACK的发送时间戳和该ACK的发送延迟时间。ACK中携带的时间戳指示所述多个报文中一个报文的发送时间,这个报文的OWD的测量值等于所述多个报文的OWD的统计值。这样,发送节点就可以基于ACK,更准确地得到RTT的测量值或者进一步计算得到RTT的统计值,例如,发送节点基于第二时间窗内收到的多个ACK,计算该段时间内RTT的统计值。
上述过程还涉及接收节点和发送节点对时延的计算或者统计步骤。例如,接收节点可使用一个数据包到达该接收节点的时间戳和该数据包中携带的数据包发送时间戳计算OWD测量值并对其做一定的处理;接收节点还可以基于OWD的测量值,按照发送节点对RTT统计值的需要,计算某个类型的OWD统计值,从而确定要在ACK中携带的表示一个报文的发送时间的时间戳。
上述方法降低了RTT统计的准确性对每包确认机制的依赖程度,而RTT仍然能较为准确统计或者测量,也能使得很多基于RTT进行例如拥塞控制的传输控制算法能更好地发挥作用,提高传输效率。
接下来,以评估最小RTT为例,结合图3(a),图3(b),图4(a),图4(b)和图4(c),描述本申请方法的一种实现方式。很多传输控制协议都依赖于最小RTT评估的准确性,例如,瓶颈带宽和往返传输时间(Bottleneck Bandwidth and Round-trip propagation time,BBR)和Copa是两种新型的拥塞控制算法,其中Copa是在USENIX NSDI 2018上发表的新算法,目前还没有对应的中文翻译。它们的算法效率与最小RTT统计的准确度密切相关。以BBR为例,BBR实时探测网络最大带宽和最小RTT,从而计算带宽时延积(bandwidth delay product,BDP),然后根据BDP确定最大能够往网络中发送的数据总量,从而进行拥塞控制。如果测量的最小RTT偏大,就会导致BBR往网络中发送的数量总量超过网络本身的容量,容易造成丢包、排队时延增大等后果,降低传输效率。
图3(a)描述了一种计算最小RTT的流程,其中包括:
步骤301:在t1时刻,发送节点通过正向路径向接收节点发送一个数据包,其中,该数据包中包括一个指示发送时刻(即t1)的时间戳。
其中,该指示发送时刻的时间戳即该数据包的数据包发送时间戳。
发送节点内可包括多个待发送的数据包,这些待发送的数据包中的数据可以是发送节点上运行的应用下发的,经过协议栈的封装,在发送队列中等待发送。
步骤302:接收节点在t2时刻接收到该数据包,t2即为该数据包的接收时刻。则接收节点可基于该数据包中的指示发送时刻的时间戳和接收时刻得到该数据包在正向路径上的单向时延OWD。并且,将该数据包的OWD,作为OWD的测量值OWD=t2-t1,如图3(b)所示。 图3(b)中描述的是发送节点有多个待发送的报文,在t1时刻发送了一个,且该在t1时刻发送的报文在t2时刻被接收节点接收,接收节点将生成ACK,以及通过反向路径向发送节点发送ACK。
另一种实现中,接收节点通过指数加权移动平均的方法,对该数据包的OWD进行平滑,得到对应的平滑的OWD(用sOWD表示),即sOWD=a*sOWD+(1-a)*OWD,其中a是一个可调因子,比如a=0.9,最终,接收节点把sOWD作为OWD测量值。
步骤303:接收节点根据一个时间窗口内接收的多个报文,记录取得最小OWD的报文的发送时间戳。
上述步骤中计算OWD的测量值或者统计值,是为了评估出较为准确,较为贴近实际情况的ACK延迟时间。
由于发送节点可以不断发送数据包,则按照步骤302中的处理方式,接收节点可接收多个带有时间戳的数据包,分别得到多个OWD的测量值,再通过最小窗口过滤器(Windowed Minimum Filter),确定出一个时间窗口(称第一时间窗口)的时长中,值最小的OWD(简称最小OWD,用minOWD表示)。其中,时间窗口的长度是预设的,例如可按需配置,比如20ms。
Figure PCTCN2020101547-appb-000002
其中,OWD t表示t时刻的OWD的测量值,T表示当前时刻,函数MIN()表示取最小值,W1表示第一时间窗口的时长,可按需配置,比如20ms。
接收节点记录取得最小OWD的数据包的发送时间戳。例如,恰好记录到取得最小OWD的数据包就是前文作为例子描述的那个数据包,该数据包的发送时间戳就是t1,该数据包到达接收节点的时间戳是t2。接收节点可以有自己的管理这些时间戳的方式,如设置一些参数记录这些时间戳。比如记t3=t1,t4=t2。
如果发送节点只需要计算RTT的测量值,那么步骤303可以不执行。
步骤304:接收节点构造ACK,以及将构造好的ACK通过反向路径发送给发送节点。该ACK包括一个数据包的发送时间戳,和指示ACK延迟时间的信息。
其中,指示ACK延迟时间的信息,例如可以是ACK的延迟时长,也可以携带一个数据包接收时间戳(指示接收节点接收该数据包的时间戳)和该数据包对应的ACK的发送时间戳(指示接收迭代发送该ACK的时间戳)。
如果发送节点只需要计算RTT的测量值,该ACK中携带的发送时间戳对应的任意一个包的发送时间戳。下文以携带对应最小OWD的数据包的发送时间戳为例描述。
下面结合图4(a),图4(b)和图4(c)来描述该过程的几种实现方式。
图4(a)以接收节点的视角描述。取得最小OWD的数据包的发送时间戳为t3,该数据包到达接收节点的时间戳为t4,接收节点在接收到该数据包后,在t5发送一个ACK,则对于这个数据包,ACK延迟时间ack_delay=t5-t4。需理解,接收节点可能在t4到t5之间还接收了其他的数据包。
一种实现方式下,如图4(b)所示,接收节点构造的ACK中包括ack_delay和t3。这两个参数可以在ACK的包头,或者option字段,也可以是数据字段。
以TCP协议为例,现有TCP报文中选项(option)字段中,时间戳选项已包含10字节,除了2字节表示选项类型以外,剩余8字节包括了时间戳t3(4字节)和时间戳t5(4字节)。因此,只需修改TCP报文选项字段,用ack_delay的值替换t5的值即可。
一种实现方式下,如图4(c)所示,接收节点构造的ACK中包括t3、t4和发送该ACK的时间戳t5。这三个参数可以在ACK的包头,或者option字段,也可以是数据字段。
这样,发送节点接收到ACK后,可通过t5和t4计算ACK延迟时间ack_delay=t5-t4。以TCP为例,现有TCP报文中选项字段(options)时间戳选项已包含10字节,除了2字节表示选项类型以外,剩余8字节包括了t3(4字节)和t5(4字节)。因此,只需修改TCP 报文选项字段中的时间戳为14字节,t3、t4和t5分别占用4字节,由于t3、t4和t5从数值上可以区分(例如依次增大或者依次减小),这三个参数的先后顺序可以不限定。
步骤305:发送节点根据ACK,计算一个RTT测量值。
发送节点通过ACK中的数据包发送时间戳,以及指示ACK发送时延的信息,结合该ACK到达发送节点的时间戳t6,计算出一个RTT测量值,即,一个ACK可得到一个RTT测量值,例如基于上文描述的ACK,RTT=t6-t3-ack_delay。
一种实现方式下,发送节点基于ACK中携带的信息以及该ACK到达发送节点的时间戳计算出一个RTT的值后(例如RTT=t6-t3-ack_delay),进一步通过指数加权移动平均的方法,对这个值进行平滑,得到对应的平滑的RTT(用sRTT表示),即sRTT=a*sRTT+(1-a)*RTT,a是一个可调因子,比如a=0.9。发送节点将sRTT作为RTT测量值。
步骤306:发送节点根据RTT对应的一个时间窗口(即第二时间窗口)内的多个接收的ACK,计算最小RTT。
类似接收节点在步骤303中的方式,按照步骤305中的处理方式,发送节点可接收多个ACK以及计算多个RTT测量值,发送节点通过最小窗口过滤器(Windowed Minimum Filter)对该多个RTT测量值进行过滤,以得到最小RTT(用minRTT表示),即使用如下公式:
Figure PCTCN2020101547-appb-000003
其中,OWD t表示t时刻的OWD测量值,函数MIN()表示取最小值,T表示当前时刻,W2表示第二时间窗口的时长,可按需配置。可见,第二时间窗口可以是从当前时刻起向以前回溯某个时长的时间段。一般W2大于W1,比如W2=10s。
上文中的第一时间段和第二时间段的时长设定后,后续可以被更新。
RTT是往返时延,本申请的主要思想是用“往”的统计值来间接评估“往返”的统计值。最小OWD对应的是RTT中的“往”的部分,而“返”的部分是没有做任何评估的。如果最小OWD的那个数据包,在“返”的时候遇到了网络抖动,比如“返”的路径上拥塞了,就会导致这个RTT测量值较大。如果直接取这个测量值作为最小RTT的值,就不准确。为了避免这种异常情况,我们在发送端再根据第二时间窗口,计算多个测量值的最小值,主要还是为了消除误差。也就是说,虽然发送端计算多个RTT测量值的最小值,这个方法是现有的,但是,它在本申请描述的方法里的作用跟现有方法中有细微的差别。即,现有方法是为了同时消除“往”和“返”带来的误差,而本实施例中是为了消除“返”的误差。
当然,前文是以每个ACK中携带的是最小OWD对应的数据包的信息为例进行说明的,这样的“按需”统计能够更加准确地计算RTT的最小值。另一种实现方式下,ACK中也可携带与该ACK对应的任一个数据包的发送时间戳和接收时间戳,发送节点同样可根据多个ACK来计算最小RTT,同样也能得到相比于现有技术,更贴近实际情况,更为准确的RTT统计值。
上述过程是以最小RTT作为例子来描述的,但也可以扩展到计算其他种类的RTT统计值,例如最大RTT、多个RTT中排第K大的RTT,多个RTT中值为前L%小的RTT或者平均RTT等。相应的,如果是“按需”统计,仅需把最小OWD相应地换成最大OWD、多个OWD中排第K大的OWD,多个OWD中值为前L%小的OWD或者平均OWD即可,如果不“按需”统计,则更加灵活。
现有技术中,接收节点只通过发送的ACK触发发送节点记录ACK到达时间,发送节点再结合本身记录的与该ACK对应的数据包发送时间,即由发送节点根据接收节点反馈的ACK的到达时间,获得RTT的测量值或者统计值,整个过程接收节点并没有为计算RTT做除发送标准的ACK外的工作。而本申请采用的是收发双方协作的方式。
另一方面,现有技术直接在发送节点计算RTT测量值,取所述RTT测量值中的最小值作为最小RTT。本发明采用的是一种间接的方式,接收节点计算OWD测量值,取所述OWD测量值作为最小OWD,然后发送节点计算取到所述最小OWD的数据包对应的RTT测量值;发送节点根据多个RTT测量值,再取所述RTT测量值中的最小值作为最小RTT。ACK返 回数目较每包确认少的情况下,本申请描述的方案能够保证最小RTT评估的准确性。
再者,与现有技术对比,本申请的方案中,本发明不需要发送节点和接收节点进行时钟同步。单向时延的测量具有一个通用的难题,就是发送节点和接收节点的时钟可能不同步,因此如果要获得OWD的准确值,必须进行时钟同步。但是,在本发明中,接收节点只对OWD测量值进行比较操作,仅仅涉及OWD之间的差值,因此,本发明不需要进行时钟同步,在评估也不需要获取真实的OWD测量值,也就消除了测量体系内系统误差的影响。本发明中的OWD的值都是带有时钟同步误差的相对值,该相对值不会影响本发明的效果。
本申请描述的方案在做适应性的改动后,同样可以用在接收节点基于来自发送节点的数据包,测量或者统计其他接收节点的传输参数,例如带宽,抖动(jitter),丢包率,以及接收节点的接收速率等等。其中接收节点的接收速率是指单位时间内,接收节点接收到的数据量。接收节点统计出某个传输参数后,将统计出的传输参数携带在ACK中反馈给发送节点。这样,发送节点基于ACK中携带的信息,可更准确地获知路径的传输性能,缓解现有技术基于ACK计算这些参数的方法准确度低,测量不便的现状。其中,本申请描述的方法和装置用在测量其他传输参数的场景时,只需对上述提及的一些参数做简单的替换,本申请不再赘述。例如,传输参数为接收节点的接收速率的场景,仅需把上述对RTT的测量换成对接收速率的计算。
这样,通过OWD,在ACK比较稀疏的场景或者ACK延迟回复的场景下,发送节点基于ACK中携带的数据包发送时间戳和指示ACK延迟时间的信息,确定出RTT的测量值,当有多个测量值的情况下,就可以得到所需的统计值。这种方法可以减少时延统计对每包确认机制的依赖,确保最小RTT测量的精确度,从而使基于最小RTT进行控制的协议拥塞控制更加精准。例如,在一个测试场景下,网络固有往返时延设置为100ms,接收节点每20ms回复一个ACK包,分别使用本申请描述的方法和在发送节点采样RTT的现有技术,计算最小RTT,实验结果表明,现有方案统计的最小RTT值有6%-18%的偏差(在不同的时间点采样计算结果会有抖动),而本申请的方案统计的最小RTT则更加精确,偏差在1%以内。
另外,较为准确的最小RTT可以使基于最小RTT进行控制的协议拥塞控制更加精准,从而提高传输效率。例如,提高传输效率可以体现在降低排队时延和降低冗余率。冗余率又被称为重传率,用于表示重传的数据包与总共发送的数据包之间的比例。例如,在ACK延迟机制下,实现BBR算法,BBR算法中的最小RTT统计分别采用现有技术和本申请的方案。在谷歌数据中心的悉尼和东京分别租用虚拟机,在悉尼和东京之间进行数据传输,对比结果为:现有技术平均排队时延为63ms,冗余率为1.41%;本发明平均排队时延为36ms,冗余率为0.65%。因此,本发明相比现有技术,可以使排队时延降低43%,使冗余率降低54%。
另一方面,现有技术中,在延迟场景下,由于一个ACK要对应多个数据包,接收节点需要将接收的每个数据包的信息,例如接收到数据包的时间都缓存和管理起来。而使用上述方法接收节点则只需要缓存和管理部分接收到的数据包的信息,减少了接收节点的资源占用以及系统开销,但得到的RTT的统计值却更加精确,这样就较小的开销获得较为精准的往返时延统计值。
上述方法还可以用在监控RTT的计算上,也就是接收节点通过感知OWD的抖动,提示发送节点更新对RTT的计算。这种监控可用在单路径或者多路径连接,如果是多路径连接,那么下文中被使用的包应当都是在相同子流传输的,即RTT是同一往返路径的RTT。下述实现不限定传输层的传输协议,例如TCP,UDP,MP协议,QUIC协议等都适用。下文中以UDP协议为例进行描述。简单说,就是发送节点向接收节点发送携带用于估计RTT的包,这些包可以是控制报文,也可以是数据报文,这样的包也称时延探测包,接收节点返回ACK,ACK中包括统计RTT所需要的信息以便发送节点计算,例如指示ACK延迟时间的信息和该ACK对应的UDP包的发送时间戳。这样,发送节点就可以计算出RTT的测量值或 者统计值。与前述方法不同的是,可以由接收节点根据时延探测包根据OWD估计RTT,当估计的RTT抖动超过一个范围时,把估计的RTT发送给发送节点,以提示发送节点再次计算RTT的测量值或者统计值。
下面以时延测量为例,描述上述方案在UDP协议场景下的一种实现方式。
第一阶段过程与前述方法类似,此处仅简单描述:发送节点向接收节点发送第一UDP包,该第一UDP包为时延探测包。该第一UDP包中包括该第一UDP包的发送时间戳。接收节点基于该第一UDP包,向发送节点回复ACK,该ACK携带指示ACK延迟时间的信息和该UDP包的发送时间戳。发送节点收到ACK后,根据ACK延迟时间和发送时间戳、以及接收到ACK的时刻,计算该第一UDP包的RTT,记为RTT 0
其中,接收节点接收到第一UDP包后,可基于该第一UDP包,估计发送节点与接收节点之间的RTT。例如,记第一UDP包的OWD为OWD 0,取RTT=aOWD 0,其中1≤a≤2。这是由基于RTT和OWD的定义,RTT大于等于OWD。就是说一方面可以接收节点来估计RTT,并将RTT发送给发送节点,发送节点就将此视为RTT的测量值,而无需发送节点计算RTT的测量值。另一方面,接收节点估计了RTT后,也可以仍然由发送节点计算RTT测量值,接收节点估计的RTT只用于估计RTT的抖动。
随着时间的变化,网络连接的传输参数的值也会发生变化,这个变化可称为传输参数值的抖动。由于抖动的存在,一直使用上述计算出的RTT 0作为一条连接的往返时延不够准确。结合上述的过程,接收节点估计了RTT后,也可以仍然由发送节点计算RTT测量值,接收节点估计的RTT只用于估计RTT的抖动,估计RTT的抖动是用于提示发送节点何时更新计算RTT的测量值,也就是说,具体实现,可以是在接收节点估计的RTT的抖动超过某一阈值的情况下,接收节点通过发送指令或信息,例如接收节点将最近评估的RTT携带在ACK中发给发送节点,以触发发送节点更新(即重新计算或修正)RTT的测量值或者统计值。本方案的下一阶段就通过后来接收的包的OWD来评估这种抖动,并用这种方式来修正RTT 0
第二阶段,包括以下步骤:
A.发送节点向接收节点发送第二UDP包,该第二UDP包携带发送时间戳以及前述步骤得到的RTT0。从发送节点的时序看,第二UDP包可以是发送节点接收到第一UDP包的ACK后发送的第一个包,也可以是接收到第一UDP包的ACK后又经过一段时间后发送的,在经过的这一段时间,发送节点可能接收或者发送了其他的包。
上述的第二UDP包将RTT 0发送给接收节点后,后续发送的每个UDP包可以都携带RTT 0,其中,携带的RTT可以是RTT 0,也可以是发送节点基于第一UDP包的ACK之后接收到的ACK,得到的RTT。正如前文所述,RTT 0是一个基准值,那么该基准值也是可以被更新的,这样有助于接收节点更准确地估计当前连接的RTT。如果一段时间内,都无需改变这些值,则在这段时间内发送节点发送的包都可以不携带RTT 0,这样能够减少被传输的数据量,节约网络资源。
B.接收节点收到该第二UDP包后,基于第二UDP包和第一UDP包的OWD来估计当前的RTT。一种实现方式下,接收节点根据第二UDP包中携带的发送时间戳和接收节点记录的第二UDP包的接收时间,计算第二UDP包的OWD(记为OWD 1)。接收节点计算第二UDP包的OWD与第一UDP包的OWD(记为OWD 0)之间的差值,该差值记为ΔOWD 0。进一步的,估计第二UDP包的RTT(记为RTT 1),RTT1=RTT 0+bΔOWD 0,其中1≤b≤2。另外,估计此时发送节点与接收节点之间的连接的往返时延为RTT=c*RTT 1+(1-c)*RTT 0,其中0≤c≤1。这样,估计出的RTT会更加准确,也可以通过这种方式在接收节点估计RTT的变化。
在一个连接中传输数据的过程中,步骤A和B是可以多次发生的,下面以接收节点接收到第i个UDP包为例进行说明,其中i大于2。第i个UDP包是发送节点在第二UDP包之后发送的包,也是接收节点在第二UDP包之后接收第i个UDP包。第i个UDP包的OWD记为OWD i-1。接收节点计算第i个UDP包的OWD与第i-1个UDP包的OWD(记为OWD i-2)之间的差值,该差值记为ΔOWD i-1。进一步的,估计第i-1个UDP包的RTT(记为RTT i-1),RTT i-1=RTT i-2+bΔOWD 0,其中1≤b≤2,需说明的是RTTi-2可能等于RTT0到RTTi-2中的任意一个值,即RTT i-2的作用就是一个基数,与作为基数的一直没有变化。接收节点计算ΔOWD i-1=OWD i-1-OWD i-2,估计RTT i+1=RTT i+2ΔOWD i;RTT=a*RTT i+1+(1-a)*RTT i
这样,接收节点就可以通过估计RTT来监控RTT的抖动,当估计的RTT的变化高于阈值,则可通知发送节点重新测量,这样无需时刻计算RTT的测量值或统计值,就可以节省发送节点的处理资源,还可以使发送节点随着网络的实际变化更新RTT,也兼顾了实时性和准确性,能更准确反映路径的传输性能。
不同于之前描述的方法的目标是获得较为准确的RTT的测量值或统计值;上述以UDP为例的实施例中,接收节点监控传输状态的变化,按需激活发送节点更新RTT的测量值或统计值。具体来说,通过在接收节点统计OWD的变化来推测RTT的变化,从而降低时延统计对ACK数目的依赖,减少不必要的ACK包,降低传输开销;其次,在接收节点统计OWD的变化,可以直接反映正向路径传输的状态,消除了反向路径上ACK传输过程中因反向路径上的抖动导致的干扰,从而使得时延变化估计值更接近真实的正向路径传输状态,使传输控制更准确。
基于与上述方法实施例同样的发明构思,本申请实施例还提供一种评估往返时延的系统。该系统包括第一设备和第二设备,可以执行前文描述的各种方法。一种实现方式下,第一设备对应前文的发送该第一设备用于通过同一路径向该第二设备发送多个报文,该多个报文中的每一个报文都携带有指示该报文的发送时间的时间戳;该第二设备用于通过计算该多个报文的单向时延OWD的统计值,从该多个报文携带的时间戳中确定第一时间戳,其中,该第一时间戳指示该多个报文中第一报文的发送时间,该第一报文的OWD的测量值等于该多个报文的OWD的统计值;该第二设备用于向该第一设备发送确认ACK,该ACK包括该第一时间戳和ACK时间信息,该ACK时间信息与该第二设备从接收该第一报文到发送该ACK的时长有关;该第一设备用于接收该ACK,以及基于该第一时间戳,该ACK时间信息以及第二时间戳,确定该路径的RTT的一个测量值,其中,该第二时间戳指示该第一设备接收该ACK的时间。
由于第一设备发送的报文中携带有指示该报文发送时间的时间戳,第二设备就可以计算路径的单向时延,因为第二设备可能接受了多个报文后才返回ACK,第二设备通过OWD的统计值来确定在ACK中携带哪个报文的发送时间戳,并将对应于该报文的能指示ACK发送时延的信息也携带在ACK中,也就是借助对OWD的分析来评估RTT,这样就可通过第一设备和第二设备的配合,提高评估RTT的准确性。基于更准确更贴近实际网络情况的RTT控制该路径的数据传输,能提高该路径的传输性能。
关于该系统的各种实施细节,请参考前文对方法的描述,此处不再赘述。
基于与上述方法实施例同样的发明构思,本申请实施例还提供一种数据传输的装置,该装置对应前文描述的接收节点、也就是对应前文的第二设备或者第二节点,可以与发送节点(即前文的第一设备或者第一节点)配合,执行本申请描述的评估往返时延的方法。该装置具体可以是设备、设备中的处理器、芯片或芯片系统,下面结合图5进行描述。该数据传输装置500包括接收模块501,用于通过同一路径接收来自第一设备的多个报文,所述多个报文中的每一个报文都携带有指示所述报文的发送时间的时间戳;时间戳确定模块502,用于通过计算所述多个报文的单向时延OWD的统计值,从所述多个报文携带的时间戳中确定第一时间戳,其中,所述第一时间戳指示所述多个报文中第一报文的发送时间,所述第 一报文的OWD的测量值等于所述多个报文的OWD的统计值;以及发送模块503,用于向所述第一设备发送确认ACK,以便所述第一设备基于所述ACK评估所述路径的RTT,所述ACK包括所述第一时间戳和ACK时间信息,所述ACK时间信息与所述第二设备从接收所述第一报文到发送所述ACK的时长有关。
其中,数据传输装置500也是图2对应的系统中的接收节点,也就是说,接收节点的内部结构可以有多种实现方式,本申请中只示意性地列出几种,只要接收节点可以执行前文描述各种的方法即可。例如,图2中接收节点的数据包解析模块205、单向时延统计模块206和ACK构造模块可以认为对应的是图5中的时间戳确定模块502。有关数据传输装置500的其他实现方式、功能以及所能达到的技术效果,请参考前文方法部分的相关描述,此处不再赘述。
应理解的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
基于相同的构思,如图6所示,为本申请提供的一种设备600。装置600可以包括处理电路601,装置600还可以包括至少一个存储介质603,用于存储程序指令和/或数据。存储介质603和处理电路601耦合。本申请实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。处理电路601可能和存储介质603协同操作。处理电路601可能执行存储介质603中存储的程序指令。可选的,存储介质603中的至少一部分可以包括于处理电路601中。
装置600中还可以包括通信接口604,装置600可以通过通信接口604和其它设备进行信息交互。通信接口604可以是电路、总线、收发器、天线或者其它任意可以用于进行信息交互的装置。
在一种可能的实施方式中,该装置600可以应用于接收节点,可以是能够支持接收节点实现上述涉及的任一实施例中接收节点的功能的装置。存储介质603保存实现上述任一实施例中的接收节点的功能的必要计算机程序指令和/或数据。所述处理电路601可执行所述存储介质603存储的计算机程序指令,完成上述任一实施例中接收节点执行的方法。应用于接收节点时,图5所示的接收模块501,时间戳确定模块502以及发送模块503的功能均可以由处理电路601实现。另外,图2中所述的数据包解析模块205、单向时延OWD统计模块206、ACK构造模块207和的功能也可以由处理电路601实现。
本申请实施例中不限定上述通信接口604、处理电路601以及存储介质603之间的具体连接介质和连接方式,比如可以是电连接。图6中示意的是通过总线602,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在本申请实施例中,处理电路601可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各种方法及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
在本申请实施例中,存储介质603可以是非易失性存储器,比如硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM)。存储介质603还可以是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
本申请还提供一种芯片,该芯片可以包括通信接口和处理电路;该处理电路用于控制该通信接口以实现前文描述的方法。应理解,该芯片可以运行在一个设备上,该设备中包括存储介质,存储介质中可以保存执行前文描述方法的指令或者代码,这样该芯片上电后,处理电路就可以调用设备中的存储介质中的指令或者代码。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行前文描述的方法。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (19)

  1. 一种评估往返时延RTT的系统,所述系统包括第一设备和第二设备,其特征在于,
    所述第一设备用于通过同一路径向所述第二设备发送多个报文,所述多个报文中的每一个报文都携带有指示所述报文的发送时间的时间戳;
    所述第二设备用于通过计算所述多个报文的单向时延OWD的统计值,从所述多个报文携带的时间戳中确定第一时间戳,其中,所述第一时间戳指示所述多个报文中第一报文的发送时间,所述第一报文的OWD的测量值等于所述多个报文的OWD的统计值;
    所述第二设备用于向所述第一设备发送确认ACK,所述ACK包括所述第一时间戳和ACK时间信息,所述ACK时间信息与所述第二设备从接收所述第一报文到发送所述ACK的时长有关;
    所述第一设备用于接收所述ACK,以及基于所述第一时间戳,所述ACK时间信息以及第二时间戳,确定所述路径的RTT的一个测量值,其中,所述第二时间戳指示所述第一设备接收所述ACK的时间。
  2. 根据权利要求1所述的系统,其特征在于,所述ACK时间信息包括第三时间戳和第四时间戳,所述第三时间戳指示所述第二设备接收所述第一报文的时间,所述第四时间戳指示所述第二设备发送所述ACK的时间。
  3. 根据权利要求1或2任一所述的系统,其特征在于,所述ACK时间信息包括第一时间段,所述第一时间段指示所述第二设备从接收所述第一报文到发送所述ACK的时长。
  4. 根据权利要求1到3任一权要所述的系统,其特征在于,所述第一设备还用于基于在一个时间窗内收集的多个ACK,计算所述路径的RTT的多个测量值,以及计算所述路径的RTT的多个测量值对应的统计值。
  5. 根据权利要求4所述的系统,其特征在于,所述多个报文的OWD的统计值与所述路径的RTT的统计值的类型相同,所述类型为最大值,最小值和平均值中的一种。
  6. 根据权利要求4或5任一所述的系统,其特征在于,所述多个报文的OWD的统计值为所述多个报文的最小OWD,所述路径的RTT的统计值为所述多个测量值中的最小RTT。
  7. 根据权利要求2所述的系统,其特征在于,所述第一设备具体用于将所述第二时间戳指示的时间减去所述第一时间戳指示的时间,以及减去所述第四时间戳与所述第三时间戳之差,以得到所述路径的RTT的一个测量值。
  8. 根据权利要求3所述的系统,其特征在于,所述第一设备具体用于将所述第二时间戳指示的时间减去所述第一时间戳指示的时间,以及减去所述第一时间段,以得到所述路径的RTT的一个测量值。
  9. 一种评估时延的方法,其特征在于,所述方法包括:
    第二设备通过同一路径接收来自第一设备的多个报文,所述多个报文中的每一个报文都携带有指示所述报文的发送时间的时间戳;
    所述第二设备通过计算所述多个报文的单向时延OWD的统计值,从所述多个报文携带的时间戳中确定第一时间戳,其中,所述第一时间戳指示所述多个报文中第一报文的发送时间,所述第一报文的OWD的测量值等于所述多个报文的OWD的统计值;
    所述第二设备向所述第一设备发送确认ACK,以便所述第一设备基于所述ACK评估所述路径的RTT,所述ACK包括所述第一时间戳和ACK时间信息,所述ACK时间信息与所述第二设备从接收所述第一报文到发送所述ACK的时长有关。
  10. 根据权利要求9所述的方法,其特征在于,所述ACK时间信息包括第三时间戳和第四时间戳,所述第三时间戳指示所述第二设备接收所述第一报文的时间,所述第四时间戳指示所述第二设备发送所述ACK的时间。
  11. 根据权利要求9或10任一所述的方法,其特征在于,所述ACK时间信息包括第一时间段,所述第一时间段指示所述第二设备从接收所述第一报文到发送所述ACK的时长。
  12. 根据权利要求9到11任一所述的方法,其特征在于,所述多个报文的OWD的统计值类型是最大值,最小值,或平均值。
  13. 一种评估时延的装置,其特征在于,所述装置包括:
    接收模块,用于通过同一路径接收来自第一设备的多个报文,所述多个报文中的每一个报文都携带有指示所述报文的发送时间的时间戳;
    时间戳确定模块,用于通过计算所述多个报文的单向时延OWD的统计值,从所述多个报文携带的时间戳中确定第一时间戳,其中,所述第一时间戳指示所述多个报文中第一报文的发送时间,所述第一报文的OWD的测量值等于所述多个报文的OWD的统计值;
    发送模块,用于向所述第一设备发送确认ACK,以便所述第一设备基于所述ACK评估所述路径的RTT,所述ACK包括所述第一时间戳和ACK时间信息,所述ACK时间信息与所述第二设备从接收所述第一报文到发送所述ACK的时长有关。
  14. 根据权利要求13所述的装置,其特征在于,所述ACK时间信息包括第三时间戳和第四时间戳,所述第三时间戳指示所述第二设备接收所述第一报文的时间,所述第四时间戳指示所述第二设备发送所述ACK的时间。
  15. 根据权利要求13或14任一所述的装置,其特征在于,所述ACK时间信息包括第一时间段,所述第一时间段指示所述第二设备从接收所述第一报文到发送所述ACK的时长。
  16. 根据权利要求13到15任一所述的装置,其特征在于,所述多个报文的OWD的统计值种类是最大值,最小值,或平均值。
  17. 一种评估时延的装置,其特征在于,包括:
    通信接口、处理电路和存储介质;
    所述存储介质用于存储软件程序,所述通信接口用于通过所述存储介质中的指令与其他设备收发报文,所述处理电路用于运行所述存储介质中的指令控制所述通信接口以实现权利要求9至12任一项所述的方法。
  18. 一种芯片,其特征在于,包括:
    通信接口和处理电路;所述处理电路用于控制所述通信接口以实现权利要求9至12任一项所述的方法。
  19. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储软件程序,所述软件程序在被一个或多个处理器读取并执行时可实现权利要求7到10任一项所述的方法
PCT/CN2020/101547 2019-07-12 2020-07-13 一种评估往返时延的系统、方法及装置 WO2021008473A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP20839648.1A EP3832953A4 (en) 2019-07-12 2020-07-13 SYSTEM, METHOD AND DEVICE FOR EVALUATING THE CIRCULATION TIME
US17/199,773 US11611498B2 (en) 2019-07-12 2021-03-12 Round-trip time evaluation system, method, and apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910631286.6A CN112217686B (zh) 2019-07-12 2019-07-12 一种评估往返时延的系统、方法及装置
CN201910631286.6 2019-07-12

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/199,773 Continuation US11611498B2 (en) 2019-07-12 2021-03-12 Round-trip time evaluation system, method, and apparatus

Publications (1)

Publication Number Publication Date
WO2021008473A1 true WO2021008473A1 (zh) 2021-01-21

Family

ID=74047932

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/101547 WO2021008473A1 (zh) 2019-07-12 2020-07-13 一种评估往返时延的系统、方法及装置

Country Status (4)

Country Link
US (1) US11611498B2 (zh)
EP (1) EP3832953A4 (zh)
CN (1) CN112217686B (zh)
WO (1) WO2021008473A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114666243A (zh) * 2022-03-29 2022-06-24 迈普通信技术股份有限公司 网络质量测量方法、装置、系统、电子设备及存储介质

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT201900010362A1 (it) * 2019-06-28 2020-12-28 Telecom Italia Spa Abilitazione della misura di perdita di pacchetti round-trip in una rete di comunicazioni a commutazione di pacchetto
CN113473185B (zh) * 2021-04-28 2022-08-26 清华大学 基于视频流关键帧突发特性的可用带宽探测方法及装置
CN113364646B (zh) * 2021-06-03 2022-05-17 杭州网易智企科技有限公司 确定往返延迟的方法、装置及系统、存储介质和电子设备
CN113411228B (zh) * 2021-06-04 2023-04-07 网宿科技股份有限公司 一种网络状况的确定方法及服务器
US20220417303A1 (en) * 2021-06-28 2022-12-29 Tencent America LLC Techniques for monitoring encrypted streaming traffic using underlying transport metrics
CN113890841B (zh) * 2021-09-16 2023-03-24 清华大学 高效的大规模单向延迟测量方法及装置
US11848868B2 (en) * 2021-09-29 2023-12-19 Huawei Technologies Co., Ltd. Methods, systems and devices for network management using control packets
EP4207704A1 (en) * 2021-12-28 2023-07-05 Vestas Wind Systems A/S A method for testing data transfer in a wind power surveillance system
US20230231789A1 (en) * 2022-01-18 2023-07-20 Level 3 Communications, Llc Network quality testing
US20230327998A1 (en) * 2022-04-07 2023-10-12 Mellanox Technologies Ltd. System and method for network rate limiting
US11863451B2 (en) 2022-05-16 2024-01-02 Huawei Technologies Co., Ltd. Hardware accelerated temporal congestion signals
CN115002040B (zh) * 2022-05-27 2024-03-01 长沙理工大学 基于大数据的感知优先级流控的负载均衡方法及其系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002374302A (ja) * 2001-06-15 2002-12-26 Ntt Docomo Inc Rtt測定方法、及び、rtt測定システム
US7123616B2 (en) * 2000-06-09 2006-10-17 Ixia Determining round-trip time delay
CN104618922A (zh) * 2015-01-21 2015-05-13 杭州华三通信技术有限公司 一种rtt测量定位系统中的测量结果匹配方法和装置
CN106656642A (zh) * 2015-10-28 2017-05-10 华为技术有限公司 一种往返时延的测量方法、装置及系统
CN108737207A (zh) * 2017-04-25 2018-11-02 华为技术有限公司 传输时延探测方法、设备和系统

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2394628B (en) 2002-10-25 2005-10-19 Siemens Plc A method of determining a timing offset between a first clock and a second clock in a communications network
US7286482B2 (en) * 2002-11-29 2007-10-23 Alcatel Lucent Decentralized SLS monitoring in a differentiated service environment
US7675856B2 (en) * 2005-03-24 2010-03-09 Microsoft Corporation Bandwidth estimation in broadband access networks
JP4402619B2 (ja) * 2005-06-02 2010-01-20 日本電信電話株式会社 マルチキャスト通信フロー制御方法および装置
CN101232718A (zh) 2007-01-22 2008-07-30 华为技术有限公司 一种测距方法、设备及系统
JP4367505B2 (ja) * 2007-03-06 2009-11-18 日本電気株式会社 通信端末、通信システム、輻輳制御方法、及び輻輳制御用プログラム
CN101510849B (zh) 2009-03-18 2011-05-18 中国电信股份有限公司 获取传输路径上节点传输信息的方法和系统
CN102185673B (zh) 2011-03-22 2013-03-27 深信服网络科技(深圳)有限公司 一种rtt统计方法和rtt统计系统
US9215157B2 (en) * 2011-11-04 2015-12-15 Microsoft Technology Licensing, Llc Adaptive bandwidth estimation
EP2627040B1 (en) * 2012-02-12 2018-02-28 Hochschule Anhalt (FH) Method for eliminating systematical error components in a set of one-way delay measurement results for communications between two or more computing systems in a communication network, apparatus for performing the method and computer program product
WO2014191048A1 (en) 2013-05-31 2014-12-04 Telecom Italia S.P.A. Performance measurement of a link of a packet-switched communication network
KR101535721B1 (ko) * 2013-10-30 2015-07-10 삼성에스디에스 주식회사 큐잉 지연 추정 방법 및 장치
WO2015090364A1 (en) 2013-12-17 2015-06-25 Telecom Italia S.P.A. Time measurement in a packet-switched communication network
AU2015351161C1 (en) * 2014-11-19 2019-02-07 Nec Corporation Round-trip delay time measurement system, round-trip delay time measurement method, return method, communication device, program, and data structure
CN105471757B (zh) 2015-12-11 2018-08-03 福建星网锐捷网络有限公司 一种tcp拥塞控制方法及装置
CN109327288B (zh) 2015-12-14 2023-11-10 华为技术有限公司 数据传输加速方法、装置及系统
CN106936661B (zh) 2015-12-31 2020-01-03 华为技术有限公司 一种网络监测方法、装置及系统
US9787461B1 (en) * 2016-11-28 2017-10-10 Rad Data Communications Ltd. One-way packet delay measurement
US10742555B1 (en) * 2017-12-11 2020-08-11 Amazon Technologies, Inc. Network congestion detection and resolution
CN108173718A (zh) 2018-01-29 2018-06-15 赛特斯信息科技股份有限公司 基于sd-wan场景的bfd链路检测及评估的系统和方法
CN108833207B (zh) 2018-06-19 2021-02-02 中国联合网络通信集团有限公司 时延测量方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7123616B2 (en) * 2000-06-09 2006-10-17 Ixia Determining round-trip time delay
JP2002374302A (ja) * 2001-06-15 2002-12-26 Ntt Docomo Inc Rtt測定方法、及び、rtt測定システム
CN104618922A (zh) * 2015-01-21 2015-05-13 杭州华三通信技术有限公司 一种rtt测量定位系统中的测量结果匹配方法和装置
CN106656642A (zh) * 2015-10-28 2017-05-10 华为技术有限公司 一种往返时延的测量方法、装置及系统
CN108737207A (zh) * 2017-04-25 2018-11-02 华为技术有限公司 传输时延探测方法、设备和系统

Non-Patent Citations (1)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114666243A (zh) * 2022-03-29 2022-06-24 迈普通信技术股份有限公司 网络质量测量方法、装置、系统、电子设备及存储介质

Also Published As

Publication number Publication date
US20210203578A1 (en) 2021-07-01
EP3832953A1 (en) 2021-06-09
CN112217686B (zh) 2022-12-27
CN112217686A (zh) 2021-01-12
EP3832953A4 (en) 2021-11-24
US11611498B2 (en) 2023-03-21

Similar Documents

Publication Publication Date Title
WO2021008473A1 (zh) 一种评估往返时延的系统、方法及装置
US8441943B2 (en) Information processing apparatus and method, program, and recording medium
JP4348124B2 (ja) QoSを推定する方法および通信装置
EP2044514B1 (en) Methods and apparatus for improved determination of network metrics
WO2020207479A1 (zh) 一种网络拥塞控制方法和装置
WO2017084487A1 (zh) 用于获得目标传输路径的方法和网络节点
EP2689602B1 (en) Buffer sizing for multi-hop network
US20070121523A1 (en) Methods and apparatus for determining reverse path delay
US9426080B2 (en) Data communication apparatus, data transmission method, and computer system
WO2021238803A1 (zh) 一种网络拥塞控制方法及网络设备
JP2014532379A (ja) データ送信制御
Gangam et al. Estimating TCP latency approximately with passive measurements
US11115308B2 (en) System and method for congestion control using time difference congestion notification
JP2014165586A (ja) 通信情報計測装置及びプログラム
CN104780117A (zh) 一种网络拥塞信息的获取方法和装置
CN115002008B (zh) 一种网络时延测量的方法、装置、设备以及存储介质
JP4930275B2 (ja) 通信システム、通信方法、送信機、受信機、レート計算方法およびプログラム
CA2940077C (en) Buffer bloat control
CN109417515A (zh) 用于处理互联网协议分组的方法、装置和系统
JP5662779B2 (ja) 通信システム及びノード装置
JP2004312725A (ja) サービスの品質を決定する方法および装置
CN113950099A (zh) 一种网络拥塞控制方法及设备
Shah et al. A fluid flow model for SCTP traffic over the internet
US9882751B2 (en) Communication system, communication controller, communication control method, and medium
WO2024016175A1 (zh) 确定性流传输方法、系统及电子设备

Legal Events

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

Ref document number: 20839648

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2020839648

Country of ref document: EP

Effective date: 20210305

NENP Non-entry into the national phase

Ref country code: DE