Round trip time estimation device, round trip time estimation method, and program
The round trip time estimation device and method address the issue of packet order reversals in multi-route environments by collecting and processing confirmed packets at a relay node, enhancing RTT estimation accuracy without altering communication nodes.
Patent Information
- Application Number
- PCT/JP2025/015580
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-04-26
- Filing Date
- 2025-04-22
- Publication Date
- 2025-10-30
AI Technical Summary
Conventional RTT estimation methods fail to maintain accuracy in environments where packet order reversals occur, especially when packets are sent and received over multiple routes, leading to unreliable results.
A round trip time estimation device and method that utilizes an outbound path collection unit, return path collection unit, target extraction unit, and calculation unit to collect and process packet information at a relay node, ensuring accurate RTT estimation by identifying and using only confirmed packets from the same route.
Improves the accuracy of RTT estimation by preventing delayed packets from being used in calculations, allowing reliable RTT estimation without modifying the communication nodes.
Smart Images

Figure JP2025015580_30102025_PF_FP_ABST
Abstract
Description
Round trip time estimation device, round trip time estimation method, and program CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This international application claims priority based on Japanese Patent Application No. 2024-072605, filed with the Japan Patent Office on April 26, 2024, the entire contents of which are incorporated herein by reference.
[0002] The present disclosure relates to techniques for estimating round trip time.
[0003] For example, Patent Document 1 listed below describes a technique for estimating round trip time (hereinafter referred to as RTT). Specifically, TCP packets on a network are captured, and for a packet pair in which the sequence number indicated in the outbound packet matches the ACK sequence number indicated in the inbound packet, the RTT is calculated from the sending time of the outbound packet and the receiving time of the inbound packet.
[0004] U.S. Pat. No. 1,516,098
[0005] However, as a result of detailed investigation by the inventors, it was found that with the conventional technology, even if outbound packets and inbound packets are matched, the accuracy of RTT estimation deteriorates in an environment where packet order reversals occur. In particular, when packets are sent and received over the same transport layer connection using multiple routes, packet order reversals due to delay differences between routes become a common occurrence, and the accuracy of RTT estimation becomes unreliable except for the rate-limiting link.
[0006] One aspect of the present disclosure provides a technique for achieving reliable RTT estimation even in an environment where packet reordering occurs.
[0007] According to one aspect of the present disclosure, there is provided a round trip time estimation device including an outbound path collection unit, a return path collection unit, a target extraction unit, and a calculation unit, wherein the round trip time estimation device is applied to a relay node that forwards outbound path packets transmitted from a communication source to a communication destination using multiple paths and forwards return path packets returned from the communication destination to the communication source.
[0008] The outbound route collection unit is configured to collect and store outbound route information each time an outbound packet is forwarded, the outbound route information including a route used by a relay node to forward the outbound packet, a sequence number extracted from the transport layer header of the outbound packet, and a transmission time of the outbound packet by the relay node.The return route collection unit is configured to collect and store return route information each time a return packet is forwarded, the return route information including a confirmation number extracted from the transport layer header of the return packet and indicating the sequence number of the outbound packet waiting to be received at the communication destination, and a reception time of the return packet by the relay node.
[0009] The target extraction unit is configured to extract, as a target packet, from among the new confirmation packets, the outbound packet that was last transferred using the same route as the target route before the reception time of the target packet, if the reception time of the previous packet is within a specified period before the reception time of the target packet. However, the target packet is one of the return route packets for which return route information has been collected. The new confirmation packet is an outbound route packet whose delivery to the communication destination has been newly confirmed by the reception of the target packet. The previous packet is the return route packet that was last transferred before the target packet. The target route is the route used to transfer the return route packet indicated by the confirmation number of the previous packet.
[0010] The calculation unit is configured to calculate the time from the transmission time of the target packet to the reception time of the target packet as an estimate of the round trip time of the target route.
[0011] With this configuration, packet order reversal occurs, which prevents outbound packets that experience delays before delivery is confirmed from being used in calculating the RTT, thereby improving the accuracy of the calculated RTT.
[0012] One aspect of the present disclosure is a round-trip time estimation method that is applied to a relay node that forwards outbound packets sent from a communication source to a communication destination using multiple routes, and forwards return packets returned from the communication destination to the communication source.
[0013] The round trip time estimation method includes collecting and storing outbound route information each time an outbound packet is forwarded, the outbound route information including the route used by the relay node to forward the outbound packet, a sequence number extracted from the transport layer header of the outbound packet, and the transmission time of the outbound packet by the relay node.
[0014] The round trip time estimation method includes collecting and storing return route information, which is extracted from the transport layer header of the return route packet and indicates the sequence number of the outgoing route packet waiting to be received at the communication destination, and includes the time of reception of the return route packet by the relay node, each time a return route packet is forwarded.
[0015] The round trip time estimation method includes extracting, from among the newly confirmed packets, as a target packet, an outbound packet that was last transferred using the same route as the target route before the reception time of the target packet, if the reception time of the previous packet is within a specified period before the reception time of the target packet. The target packet is one of the return packets for which return route information has been collected. The newly confirmed packet is an outbound packet whose reception at the communication destination is newly confirmed upon reception of the target packet. The previous packet is the return packet that was last transferred before the target packet. The target route is the route used to transfer the return packet indicated by the confirmation number of the previous packet.
[0016] The round trip time estimation method includes calculating the time from the transmission time of the target packet to the reception time of the target packet as an estimate of the round trip time of the target route.
[0017] By implementing this method, it is possible to obtain the same effect as the above-mentioned round trip time estimation device.
[0018] One aspect of the present disclosure is a program that causes a computer to function as an outbound journey collecting unit, a return journey collecting unit, a target extracting unit, and a calculating unit.
[0019] By executing such a program, the above-mentioned round trip time estimation method can be realized, and the same effects as those of the above-mentioned round trip time estimation device can be obtained.
[0020] 11 is a block diagram showing the configuration of a communication system. FIG. 12 is a block diagram showing the functions of a relay node in the first embodiment. FIG. 13 is a flowchart of an information collection process. FIG. 14 is an explanatory diagram showing the contents of collected outbound route information and return route information. FIG. 15 is a flowchart of a sampling process. FIG. 16 is an explanatory diagram illustrating the operation of a communication system and the calculation interval of an RTT. FIG. 17 is a block diagram showing the functions of a relay node in the second embodiment. FIG. 18 is a flowchart of a stop / restart process. FIG. 19 is an explanatory diagram illustrating the operation of a communication system and the calculation interval of an RTT when the restart condition is the acquisition of a sample of a target link. FIG. 19 is an explanatory diagram illustrating the operation of a communication system and the calculation interval of an RTT when the restart condition is the number of in-flights. FIG. 19 is an explanatory diagram showing the outbound route information and return route information extracted in the case shown in FIG. 10, and the number of in-flights calculated when a return route packet is received.
[0021] Hereinafter, embodiments of the present disclosure will be described with reference to the drawings.
[0022] 1. First Embodiment 1-1. Configuration A communication system 1 shown in FIG. 1 includes a wireless terminal 2, a first opposing relay node 5, a second opposing relay node 6, and an opposing node 7.
[0023] The wireless terminal 2 functions as a microcomputer including a CPU 21, a ROM 22, a RAM 23, etc. The wireless terminal 2 includes a communication node 3 and a relay node 4 as functional blocks realized by the CPU 21 executing a program.
[0024] The communication node 3 communicates with the correspondent node 7 using a connection of the transport layer (hereinafter referred to as L4) defined in the OSI reference model.
[0025] The relay node 4 transmits packets (hereinafter referred to as outbound packets) sent from the communication node 3 to the first opposing relay node 5 and the second opposing relay node 6 connected to the opposing node 7 via multiple links.
[0026] The first opposing relay node 5 transfers the outgoing packet received via the first link to the opposing node 7. The second opposing relay node 6 transfers the outgoing packet received via the second link to the opposing node 7.
[0027] The opposing node 7 returns a return path packet including a receipt confirmation for the received outbound path packet in accordance with the L4 protocol. For receipt confirmation, an ACK sequence number is used, which indicates the next sequence number expected to be received, in addition to the sequence number assigned to the outbound path packet. In other words, the ACK sequence number indicates that all outbound path packets with sequence numbers earlier than the ACK sequence number have been received by the opposing node 7. Hereinafter, the ACK sequence number will be referred to as the confirmation number.
[0028] The return path packet is transferred to the relay node 4 via the first link or the second link, and is then transferred to the communication node 3 via the relay node 4. Whether the first link or the second link is used to transfer the return path packet to the relay node 4 is determined appropriately by the transfer source.
[0029] If the wireless terminal 2 is, for example, a mobile terminal such as a smartphone or a tablet, one of the first link and the second link may be a cellular line and the other may be Wi-Fi.
[0030] As shown in FIG. 2, the relay node 4 includes a link selection unit 41, an information collection unit 42, and a sampling unit 43 as functions related to RTT estimation.
[0031] The link selection unit 41 selects whether to use the first link or the second link for forwarding an outgoing packet transmitted from the communication node 3. The link selection unit 41 selects a link according to preset rules for the purposes of load balancing, data offloading, providing redundancy, etc.
[0032] The information collection unit 42 collects information necessary for calculating the RTT, and executes an information collection process to extract a time interval to be used for calculating the RTT.
[0033] The sampling unit 43 uses the information collected by the information collection unit 42 to perform sampling processing for sampling the RTT.
[0034] [1-2. Processing] Next, the information collection processing executed by the information collection unit 42 will be described with reference to the flowchart shown in Fig. 3. The information collection processing is repeatedly executed when an L4 connection is established between the communication node 3 and the remote node 7.
[0035] In S110, the information collection unit 42 determines whether or not an outbound packet has been received from the communication node 3, and if an outbound packet has been received, the processing proceeds to S120; if an outbound packet has not been received, the processing proceeds to S150.
[0036] In S120, the information collection unit 42 acquires, from the link selection unit 41, selected link information indicating the link (hereinafter, selected link) to be used for transferring the received outbound packet.
[0037] In S130, the information collection unit 42 extracts the sequence number from the L4 header of the outbound packet, sets the current time as the transmission time, and stores in the RAM 23 outbound route information that associates the sequence number, transmission time, and selected link.
[0038] In S140, the information collection unit 42 transfers the received outbound packet using the selected link, and then ends the process.
[0039] In S150, the information collection unit 42 determines whether a return packet has been received via either the first link or the second link, and if a return packet has been received, proceeds to S160, and if a return packet has not been received, terminates the processing.
[0040] In S160, the information collection unit 42 extracts the ACK sequence number (i.e., confirmation number) from the L4 header of the received return path packet, and stores return path information in RAM 23 that corresponds the confirmation number to the reception time, using the current time as the reception time.
[0041] In S170, the information collection unit 42 transfers the received return path packet to the communication node 3, and ends the process.
[0042] By executing the information collection process, outbound route information and return route information are stored in RAM 23, as shown in Fig. 4. The outbound route information and return route information may be retained for a storage period set longer than the worst-case expected RTT value, and information that has passed the storage period may be sequentially deleted. The specific numerical values shown in Fig. 4 correspond to the sequence diagram shown in Fig. 6, which will be described later. However, T1 to T7, which represent the transmission time and reception time, indicate the times at which outbound route packets and return route packets were transferred by relay node 4, and the k in Tk indicates the order in which they were transferred.
[0043] Next, the sampling process performed by the sampling unit 43 using the outbound route information and return route information collected by the information collection process will be described with reference to the flowchart shown in Fig. 5. The sampling process is performed each time a return route packet is received. Hereinafter, the return route packet that triggers the start of the process will be referred to as the target packet.
[0044] In S210, the sampling unit 43 determines whether there is an outbound packet whose delivery to the opposing node 7 has been newly confirmed by the packet of interest (hereinafter referred to as a new confirmation packet). Specifically, the sampling unit 43 determines that there is a new confirmation packet by taking the last return packet received before the packet of interest as the previous packet and referring to the return path information, and if the confirmation number indicated in the packet of interest is larger than the confirmation number indicated in the previous packet, it determines that there is a new confirmation packet. If the sampling unit 43 determines that there is a new confirmation packet, it proceeds to S230, and if it determines that there is no new confirmation packet, it ends the processing.
[0045] In S220, the sampling unit 43 determines whether the previous packet was received within a specified past period starting from the reception time of the target packet. The specified period may be, for example, from the transmission time of the outgoing packet indicated by the confirmation number of the target packet to the reception time of the target packet. If the sampling unit 43 determines that the previous packet was received within the specified past period, the processing proceeds to S220. If the sampling unit 43 determines that the previous packet was not received within the specified past period, the processing ends.
[0046] Specifically, the return path packet that was last transferred before the target packet is set as the previous packet, and the return path information is referenced. If the confirmation number indicated in the target packet is larger than the confirmation number indicated in the previous packet, it is determined that a new confirmation packet exists.
[0047] In S230, the sampling unit 43 refers to the outbound route information and determines whether there is an outbound route packet (hereinafter referred to as a target packet) suitable for calculating the RTT. Specifically, the link used to transfer the outbound route packet identified from the confirmation number of the previous packet is set as the target link, and the outbound route packet that was last transferred before receiving the target packet, among new confirmation packets transferred using the same link as the target link, is set as the target packet. If the sampling unit 43 determines that there is a target packet, it proceeds to S240, and if it determines that there is no target packet, it ends the process.
[0048] In S240, the sampling unit 43 calculates the time from the transmission time of the target packet to the reception time of the packet of interest as an estimate of the RTT in the link of interest, and then ends the process.
[0049] [1-3. Operation] The overall operation of the communication system 1 will be described with reference to FIG.
[0050] 6, "Pi" indicates an outbound packet with a sequence number set to i, and "Ai" indicates a return packet with a confirmation number set to i. For ease of understanding, the sequence number is shown as being incremented by 1 each time an outbound packet is sent. The sequence number may be incremented by a value indicating the data length of the packet in bytes, as in the TCP protocol.
[0051] 6 shows a case in which the communication node 3 transmits outgoing packets P1 to P4 in order, and the relay node 4 transfers outgoing packets P1 and P3 using the second link and outgoing packets P2 and P4 using the first link. However, the first link is faster than the second link, and packet order reversals occur between outgoing packets P1 and P2, and between outgoing packets P3 and P4, etc. As a result, the outgoing packets P1 to P4 transmitted from the communication node 3 in the order of their sequence numbers are received by the opposing node 7 in the order P2, P4, P1, P3.
[0052] When the opposing node 7 receives outgoing packet P2, it transmits return packet A1 indicating that it is waiting to receive outgoing packet P1 because it has not yet received outgoing packet P1. Furthermore, when the opposing node 7 receives outgoing packets P4 and P1, it transmits return packet A3 indicating that it has received packets up to outgoing packet P2 and is waiting to receive outgoing packet P3. Furthermore, when the opposing node 7 receives outgoing packet P3, it transmits return packet A5 indicating that it has received packets up to outgoing packet P4 and is waiting to receive outgoing packet P5.
[0053] When the relay node 4 receives the return path packet A1, since there is no new confirmation packet, the target packet is not extracted, and as a result, the RTT is not calculated.
[0054] When the relay node 4 receives the return path packet A3, it compares it with the other most recent return path packet A1 and finds that outgoing path packets P1 and P2 are new confirmation packets. Furthermore, the other most recent return path packet A1 indicates that it is waiting to receive the outgoing path packet P1 transferred using the second link. Therefore, the outgoing path packet P1, which is one of the new confirmation packets and was transferred using the second link, is selected as the target packet. As a result, the time from the transmission time T1 of the outgoing path packet P1 to the reception time T6 of the return path packet A3 is calculated and used as the RTT sample for the second link.
[0055] When the relay node 4 receives the return path packet A5, it compares it with the other most recent return path packet A3 and finds that outgoing path packets P3 and P4 are new confirmation packets. Furthermore, the other most recent return path packet A3 indicates that it is waiting to receive outgoing path packet P3, which was transferred using the second link. Therefore, outgoing path packet P3, which is one of the new confirmation packets and was transferred using the second link, is selected as the target packet. As a result, the time from the transmission time T3 of outgoing path packet P3 to the reception time T7 of return path packet A5 is calculated and used as the RTT sample for the second link.
[0056] The adopted RTT samples may each be used as an RTT estimate, or a plurality of RTT samples may be statistically processed for each link, and the results may be used as the RTT estimate for each link.
[0057] [1-4. Correspondence of Terms] The relay node 4 that realizes the functions of the information collection unit 42 and the sampling unit 43 in this embodiment corresponds to the round trip estimation device of this disclosure. The information collection unit 42 that executes the processes of S110 to S130 in this embodiment corresponds to the outbound path collection unit of this disclosure, and the information collection unit 42 that executes the processes of S150 to S160 corresponds to the inbound path collection unit of this disclosure. The sampling unit 43 that executes the processes of S210 to S230 in this embodiment corresponds to the target extraction unit of this disclosure, and the sampling unit 43 that executes the process of S240 corresponds to the calculation unit of this disclosure. The communication node 3 in this embodiment corresponds to the communication source of this disclosure, and the opposing node 7 corresponds to the communication destination of this disclosure. The first link and the second link in this embodiment correspond to the multiple routes of this disclosure, and the link of interest corresponds to the route of interest of this disclosure.
[0058] [1-5. Effects] According to the first embodiment described above in detail, the following effects are achieved.
[0059] (1a) According to the relay node 4, the reversal of packet order prevents outbound packets, which are delayed until delivery is confirmed, from being used in calculating the RTT, thereby improving the accuracy of the calculated RTT.
[0060] (1b) According to the relay node 4, the RTT is estimated using information obtained by capturing outbound and inbound packets using a transport protocol transmitted and received between the communication node 3 and the opposing node 7. In other words, the RTT can be estimated without making any special changes to the functions of the communication node 3 and the opposing node 7, such as using special packets or adding special information to packets.
[0061] [2. Second Embodiment] [2-1. Differences from First Embodiment] The second embodiment has the same basic configuration as the first embodiment, so differences will be described below. Note that the same reference numerals as in the first embodiment indicate the same configuration, and the preceding description will be referred to.
[0062] The second embodiment differs from the first embodiment in that control is performed to ensure that RTT samples are acquired on all links by temporarily stopping some links depending on the acquisition status of RTT samples.
[0063] In the second embodiment, the relay node 4a includes a link selection unit 41, an information collection unit 42, a sampling unit 43, and a link stopping unit 44, as shown in FIG.
[0064] To resolve the situation where the RTT cannot be calculated for a particular link, the link stopping unit 44 executes a stop / restart process for temporarily stopping the transfer of outgoing packets for some links.
[0065] [2-2. Processing] Next, the stop / restart processing executed by the link stopping unit 44 will be described with reference to the flowchart in Fig. 8. Similar to the information collection processing, the stop / restart processing is repeatedly executed when an L4 connection is established between the communication node 3 and the remote node 7.
[0066] In S310, the link stopping unit 44 determines whether or not a return path packet has been received, and if a return path packet has been received, the process proceeds to S320, and if a return path packet has not been received, the process proceeds to S370.
[0067] In S320, the link stopping unit 44 refers to the return path information and determines whether the link identified by the confirmation number of the received return path packet (hereinafter referred to as the target packet) is the same as the link (hereinafter referred to as the target link) identified by the confirmation number of the previously received return path packet (hereinafter referred to as the previous packet). If the link stopping unit 44 determines yes in S320, it proceeds to S330, and if it determines no, it proceeds to S340.
[0068] In S330, the link stopping unit 44 increments the counter value C by 1, and the process proceeds to S350.
[0069] In S340, the link stopping unit 44 clears the counter value C to 0 and ends the process. That is, the counter value C indicates the number of times the same target link has appeared consecutively.
[0070] In S350, the link stopping unit 44 determines whether the count value C is greater than the threshold value TH (i.e., C>TH), and if C>TH, proceeds to S360, and if C≦TH, ends the process.
[0071] In S360, the link stopping unit 44 outputs an instruction to the link selecting unit 41 to prevent the target link from being selected by the link selecting unit 41, and then ends the process. In other words, since the sampling process is configured to calculate the RTT of the target link, it is possible to prevent the same link from continuing to be the target link.
[0072] In S370, the link stopping unit 44 determines whether there is a stopped link that has been instructed not to be selected by the link selecting unit 41, and if there is a stopped link, the process proceeds to S380, and if there is no stopped link, the process ends.
[0073] In S380, the link stopping unit 44 determines whether a restart condition for canceling the transfer stop of the stopped link and restarting the transfer is met. If the restart condition is met, the process proceeds to S390. If the restart condition is not met, the process ends. The restart condition may be, for example, that an RTT sample is acquired on a link other than the stopped link. Alternatively, the restart condition may be, for example, that the number of in-flight packets on the stopped link is zero and the number of in-flight packets on one link other than the stopped link is equal to or greater than a specified number. The number of in-flight packets is the number of unconfirmed outbound packets calculated based on the confirmation number of the return packet and the sequence number of the transmitted outbound packet.
[0074] In S390, the link stop unit 44 outputs an instruction to the link selection unit 41 so that the stopped link becomes selectable by the link selection unit 41, thereby resuming the transfer of outbound packets using the stopped link and ending the processing.
[0075] [2-3. Operation] The overall operation of the communication system 1 when the stop condition is TH=2 and the restart condition is that an RTT sample is acquired on a link other than the stopped link will be described with reference to FIG.
[0076] 9 shows a case in which, until a stop condition (i.e., C>2) is met, odd-numbered outbound packets P1, P3, ... are transferred using the second link, and even-numbered outbound packets P2, P4, ... are transferred using the first link. The first link is faster than the second link, and packet order reversals occur between outbound packets P1 and P2, between P3 and P4, between P5 and P6, and between P7 and P8, etc. As a result, outbound packets P1 to P8 transmitted from communication node 3 in the order of their sequence numbers are received by the opposing node 7 in the order P2, P4, P1, P3, P6, P5, P8, P7.
[0077] When the opposing node 7 receives outgoing packet P2, it transmits return packet A1; when it receives outgoing packets P4 and P1, it transmits return packets A3 and A6; and when it receives outgoing packet P3, it transmits return packet A5.
[0078] The operation of the relay node 4a when receiving the return packets A1, A3, and A5 is the same as in the first embodiment. Note that when the return packet A5 is received, the count value C becomes 3, and since C>TH, the second link used to transfer the outgoing packets P1, P3, and P5 becomes a stopped link.
[0079] Therefore, while the second link is stopped, all outgoing packets P9, P10, . . . are transferred using the first link.
[0080] The opposing node 7 transmits a return path packet A7 upon receiving outgoing path packets P5 and P8, and transmits a return path packet A11 upon receiving outgoing path packets P9, P10, and P7. Furthermore, the opposing node 7 transmits a return path packet A13 upon receiving outgoing path packets P11 and P12, and transmits a return path packet A15 upon receiving outgoing path packets P13 and P14.
[0081] When relay node 4a receives return path packet A7, it compares it with the previous return path packet A5 and finds that outgoing path packets P5 and P6 are new confirmation packets. Moreover, the previous return path packet A5 indicates that it is waiting to receive outgoing path packet P5, which was transferred using the second link, so outgoing path packet P5, which is one of the new confirmation packets, is selected as the target packet. As a result, the time from transmission time T6 of outgoing path packet P5 to reception time T14 of return path packet A7 is calculated and used as the RTT sample for the second link.
[0082] When relay node 4a receives return path packet A11, it compares it with the previous return path packet A7 and determines that outgoing path packets P7 to P10 are new confirmation packets. Moreover, the previous return path packet A7 indicates that it is waiting to receive outgoing path packet P5, which was transferred using the second link, so outgoing path packet P7, which is one of the new confirmation packets, is selected as the target packet. As a result, the time from the transmission time T9 of outgoing path packet P7 to the reception time T17 of return path packet A11 is used as the RTT sample for the second link.
[0083] When the relay node 4a receives the return path packet A13, it compares it with the previous return path packet A11 and finds that the outgoing path packets P11-P12 are new confirmation packets. Moreover, the previous return path packet A11 indicates that it is waiting to receive the outgoing path packet P11 transferred using the first link. Therefore, of the new confirmation packets, the most recent outgoing path packet P12 transferred using the first link is selected as the target packet. As a result, the time from the transmission time T16 of the outgoing path packet P12 to the reception time T20 of the return path packet A13 is calculated and adopted as the RTT sample of the first link. At this time, the resumption condition is met, and transfer using the second link is resumed thereafter.
[0084] When the relay node 4a receives the return path packet A15, it compares it with the previous return path packet A13 and finds that the outgoing path packets P13-P14 are new confirmation packets. Moreover, the previous return path packet A13 indicates that it is waiting to receive the outgoing path packet P13 transferred using the first link. Therefore, of the new confirmation packets, the most recent outgoing path packet P14 transferred using the first link is selected as the target packet. As a result, the time from the transmission time T19 of the outgoing path packet P14 to the reception time T23 of the return path packet A15 is calculated and used as the RTT sample for the first link.
[0085] That is, even after transfer using the second link is resumed, an RTT sample of the first link is still acquired.
[0086] Next, the overall operation of the communication system 1 when the threshold value that serves as the stop condition is TH=2 and the restart condition is that the number of in-flight packets on the stopped link is 0 and the number of in-flight packets on one link other than the stopped link is equal to or greater than a specified number will be described with reference to Fig. 10. Here, the specified number is set to 2.
[0087] The operations of outbound packets P1 to P12 and return packets A1 to A13 are the same as those explained using Fig. 9. Fig. 11 shows the number of in-flights on the first link and the second link at the time when the return packet is received, in addition to the outbound route information and return route information in the case of Fig. 10.
[0088] Focusing on reception time T5 of return packet A1, outbound packets P1 to P4 transmitted before time T5 in the outbound route information are all in-flight packets whose reception has not been acknowledged. Therefore, the number of in-flight packets on the first link is two, outbound packets P2 and P4, and the number of in-flight packets on the second link is two, outbound packets P1 and P3. Next, focusing on reception time T8 of outbound packet P3, at this point, reception of outbound packets P1 and P2 has been acknowledged, so outbound packets P3 to P6 transmitted before time T8 whose reception has not been acknowledged are in-flight packets. Therefore, the number of in-flight packets on the first link is two, outbound packets P4 and P6, and the number of in-flight packets on the second link is two, outbound packets P3 and P5. The same applies below.
[0089] When relay node 4a receives return path packet A11, the number of in-flights for the stopped second link becomes 0, and the number of in-flights for the operating first link becomes 2, and the restart condition is met. Therefore, forwarding of outgoing path packets using the second link is resumed thereafter. In other words, the difference from the case of FIG. 9 is that outgoing path packet P13 is forwarded using the second link.
[0090] Upon receiving the outgoing packet P14, the opposing node 7 transmits the second incoming packet A13, and upon receiving the outgoing packets P13 and P16, transmits the incoming packet A15.
[0091] When the relay node 4a receives the first return packet A13, the operation is the same as in Figure 9, and the time from the transmission time T16 of the outgoing packet P12 to the reception time T20 of the return packet A13 is calculated and adopted as the RTT sample of the first link.
[0092] When the relay node 4a receives the second return path packet A13, a comparison with the previous return path packet A13 reveals that there is no new outgoing path packet whose reception is confirmed, and therefore the target packet is not selected.
[0093] When the relay node 4a receives the return path packet A15, it compares it with the previous return path packet A13 and finds that the outgoing path packets P13 and P14 are new confirmation packets. Moreover, the previous return path packet A13 indicates that it is waiting to receive the outgoing path packet P13 transferred using the second link, so the outgoing path packet P13, which is one of the new confirmation packets and was transferred using the second link, is selected as the target packet. As a result, the time at which the return path packet A15 is received, T24, is calculated from the transmission time T18 of the outgoing path packet P13, and this is used as the RTT sample for the second link.
[0094] [2-4. Correspondence of Terms] The relay node 4a that realizes the functions of the information collecting unit 42, the sampling unit 43, and the link stopping unit 44 in this embodiment corresponds to the round trip estimation device of this disclosure. The link stopping unit 44 that executes the processes of S310 to S360 in this embodiment corresponds to the stopping unit of this disclosure, and the link stopping unit 44 that executes the processes of S370 to S390 corresponds to the resuming unit of this disclosure. The target link in this embodiment corresponds to the target route of this disclosure, and the stopped link corresponds to the stopped route of this disclosure.
[0095] [2-5. Effects] According to the second embodiment described above in detail, in addition to the effects (1a) and (1b) of the first embodiment described above, the following effects are also achieved.
[0096] (2a) According to the relay node 4a, if the delay difference between the links is large and the RTT of one of the links with the larger delay is continuously acquired for a certain period of time, the relay node 4a can temporarily stop the transfer using that link and acquire the RTT of the other link.
[0097] (2b) According to the relay node 4a, by adjusting the restart condition, it is possible to obtain any number of RTTs of the other link.
[0098] 3. Other Embodiments Although the embodiments of the present disclosure have been described above, the present disclosure is not limited to the above-described embodiments and can be implemented in various modifications.
[0099] (3a) In the above embodiment, the communication node 3 and the relay node 4 are realized as part of the functions of the wireless terminal 2. In other embodiments, the communication node 3 and the relay node 4 may be realized as independent devices. In that case, either one of the first link or the second link may be wired and the other may be wireless, or both may be wired.
[0100] (3b) The wireless terminal 2 and the method described herein may be implemented by a special-purpose computer configured by configuring a processor and memory programmed to execute one or more functions embodied in a computer program. Alternatively, the wireless terminal 2 and the method described herein may be implemented by a special-purpose computer configured by configuring a processor with one or more dedicated hardware logic circuits. Alternatively, the wireless terminal 2 and the method described herein may be implemented by one or more special-purpose computers configured by combining a processor and memory programmed to execute one or more functions with a processor configured with one or more hardware logic circuits. Furthermore, the computer program may be stored as instructions executed by a computer on a computer-readable non-transitory tangible recording medium. The method for implementing the functions of each unit included in the wireless terminal 2 does not necessarily need to include software; all of the functions may be implemented using one or more hardware components.
[0101] (3c) Multiple functions of one component in the above embodiments may be realized by multiple components, or one function of one component may be realized by multiple components. Also, multiple functions of multiple components may be realized by one component, or one function realized by multiple components may be realized by one component. Also, part of the configuration of the above embodiments may be omitted. Also, at least part of the configuration of the above embodiments may be added to or substituted for the configuration of another of the above embodiments.
[0102] (3d) The present disclosure can be realized in various forms, including a relay node as a round trip time estimation device, a system including the round trip time estimation device as a component, a program for causing a computer to function as the round trip time estimation device, a non-transient tangible recording medium such as a semiconductor memory on which this program is recorded, and a round trip time estimation method.
Claims
1. An outbound path collection unit (42: S110-S130) configured to collect and store outbound path information from a relay node that transfers outbound packets sent from a communication source to a communication destination using multiple paths and that transfers return path packets returned from the communication destination to the communication source, the outbound path information including the path used by the relay node to transfer the outbound path packets, a sequence number extracted from the transport layer header of the outbound path packets, and the transmission time of the outbound path packets by the relay node, each time the outbound path packets are transferred; and a return path collection unit (42: S150-S160) configured to collect and store return path information including a confirmation number extracted from the transport layer header of the return path packets and indicating the sequence number of the outbound path packet waiting to be received at the communication destination, and the reception time of the return path packets by the relay node, each time the return path packets are transferred. a target extraction unit (43: S210-S230) configured to extract, as a target packet, the outbound packet for which the return path information has been collected, which is a target packet; the outbound packet whose delivery to the communication destination has been newly confirmed by receiving the target packet, which is a new confirmation packet; the return path packet that was last transferred before the target packet, which is a previous packet; and the route used to transfer the return path packet indicated by the confirmation number of the previous packet, which is a target packet, when the reception time of the previous packet is within a specified period before the reception time of the target packet, the outbound path packet that was last transferred using the same route as the target route, before the reception time of the target packet; and a calculation unit (43: S240) configured to calculate the time from the transmission time of the target packet to the reception time of the target packet as an estimate of the round trip time of the target route.
2. A round trip time estimation device as claimed in claim 1, further comprising a stopping unit (44: S310 to S360) configured to temporarily stop the forwarding of the outbound packets by the relay node using a target route, which is one of the routes, when the state in which the round trip time is continuously calculated for a certain period of time by the calculation unit.
3. A round trip time estimation device according to claim 2, further comprising a restart unit (44: S370 to S390) configured to, when a preset restart condition is met, restart the forwarding of the outbound packet by the relay node using a stopped route, which is the route whose forwarding has been stopped by the stopping unit.
4. A round trip time estimation device according to claim 3, wherein the restart condition is that the calculation unit calculates the round trip time of the route other than the stopped route.
5. A round trip time estimation device according to claim 3, wherein the restart condition is that the number of in-flight packets on the stopped route is zero, and the number of in-flight packets on one of the routes other than the stopped route is equal to or greater than a specified number.
6. Forwarding an outbound packet transmitted from a communication source to a communication destination using a plurality of routes, and collecting and storing, from a relay node that forwards a return packet returned from the communication destination to the communication source, outbound route information each time the outbound packet is forwarded, the outbound route information including the route used by the relay node to forward the outbound packet, a sequence number extracted from the transport layer header of the outbound packet, and a transmission time of the outbound packet by the relay node (S110 to S130); and collecting and storing, each time the return packet is forwarded, return route information including a confirmation number extracted from the transport layer header of the return packet and indicating the sequence number of the outbound packet waiting to be received at the communication destination, and a reception time of the return packet by the relay node (S150 to S160); a target packet being the outbound packet whose reception at the communication destination is newly confirmed by receiving the target packet; a previous packet being the return packet that was last transferred before the target packet; a target packet being the route that was used to transfer the return packet indicated by the confirmation number of the previous packet; and, if the reception time of the previous packet is within a specified period before the reception time of the target packet, extracting, from the newly confirmed packets, the outbound packet that was last transferred using the same route as the target route before the reception time of the target packet, as a target packet (S210-S230); and calculating the time from the transmission time of the target packet to the reception time of the target packet as an estimate of the round trip time of the target route (S240).
7. A computer comprising: an outgoing route collection unit (S110-S130) configured to collect and store outgoing route information from a relay node that transfers outgoing route packets sent from a communication source to a communication destination using multiple routes and that transfers return route packets returned from the communication destination to the communication source, the outgoing route information including the route used by the relay node to transfer the outgoing route packet, a sequence number extracted from the transport layer header of the outgoing route packet, and a transmission time of the outgoing route packet by the relay node, each time the outgoing route packet is transferred; and a return route collection unit (S150-S160) configured to collect and store return route information including a confirmation number extracted from the transport layer header of the return route packet and indicating the sequence number of the outgoing route packet waiting to be received at the communication destination, and a reception time of the return route packet by the relay node, each time the return route packet is transferred. a target extraction unit (S210-S230) configured to extract, as a target packet, one of the return path packets for which the return path information has been collected; a target packet for which delivery to the communication destination has been newly confirmed by receiving the target packet; a previous packet for the return path packet that was last transferred before the target packet; a target route that is the route used to transfer the return path packet indicated by the confirmation number of the previous packet; and, if the reception time of the previous packet is within a specified period before the reception time of the target packet, extract, as a target packet, the outgoing path packet that was last transferred using the same route as the target route among the newly confirmed packets; and a calculation unit (S240) configured to calculate the time from the transmission time of the target packet to the reception time of the target packet as an estimate of the round trip time of the target route.
Citation Information
Patent Citations
Packet network
JP2002044125A
Analysis program, analysis device, and analysis method
JP2020150359A
Round trip time (RTT) measurement based upon sequence number
US20210243093A1