Communication device, communication method, and program

JPWO2025115358A1Pending Publication Date: 2025-06-05
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025560848
Authority / Receiving Office
JP · JP
Patent Type
Applications
Priority Date
2023-11-30
Filing Date
2024-09-20
Publication Date
2025-06-05

AI Technical Summary

Technical Problem

Existing communication systems struggle to immediately detect sudden increases in delay in networks, particularly in mobile networks, leading to inappropriate path selection and reduced communication performance.

Method used

A communication device equipped with a scheduling unit that compares the unacknowledged response time with the delay time in the main transmission path or alternative paths to determine whether to switch the main transmission path, thereby ensuring optimal network selection.

Benefits of technology

This solution enables immediate detection of sudden delay increases and allows for appropriate network selection, enhancing communication reliability and performance by avoiding Head of Line Blocking and other performance issues.

✦ Generated by Eureka AI based on patent content.
Patent Text Reader

Abstract

A communication device used as a first communication device in a communication system that performs data transmission from a first communication device to a second communication device via a plurality of paths includes a scheduling unit that determines whether or not to switch a main transmission path to another path by comparing a non-confirmatory response time that pertains to an elapsed time from the transmission time of transmission data for which no confirmatory response has been received, in a main transmission path selected on the basis of quality measured or predicted for each of the plurality of paths, and a delay time in the main transmission path or another path.
Need to check novelty before this filing date? Find Prior Art

Description

Communication device, communication method, and program

[0001] The present invention relates to a communication system that connects a plurality of communication devices via a plurality of networks and multiplexes and transfers various communications over a single transport connection.

[0002] In recent years, advances in autonomous driving technology have led to the realization of Level 4 public road driving, where the system takes the lead in driving within limited areas. However, for safety reasons, continuous remote video monitoring is required, and video must be transmitted clearly and without interruption over unstable mobile networks.

[0003] In response to the above demands, protocols such as Multipath TCP (MPTCP), Multipath extension for QUIC (MPQUIC), and Multipath DCCP have been proposed to bundle multiple networks and improve throughput, fault tolerance, latency, etc.

[0004] In a reliable protocol that guarantees the order of arrival of data, such as MPTCP, delay differences and congestion across multiple networks can cause the order of arrival to be reversed, resulting in Head of Line Blocking (HoLB), and in some cases performance may be worse than when using a single network.Even in protocols that do not guarantee the order of arrival, such as MP-DCCP, similar order reversals can occur in the application layer when sending stream data such as video.

[0005] To improve the HoLB described above, many packet scheduling algorithms have been proposed to determine which data should be transmitted to which network (for example, Non-Patent Documents 1 to 8).

[0006] Furthermore, there are methods that use machine learning or the like to predict future network quality from past or current network quality and use the prediction results for packet scheduling.

[0007] BLEST: Blocking Estimation-based MPTCP Scheduler for Heterogeneous NetworksECF: An MPTCP Path Scheduler to Manage Heterogeneous PathsA High-Throughput Scheduler based on Multipath-State Machine in Wireless NetworksExperimental Evaluation of Multipath TCP SchedulersLow-Latency Scheduling in MPTCPOut-of-order Transmission for In-order Arrival Scheduling for Multipath TCPXLINK: QoE-Driven Multi-Path QUIC Transport in Large-scale Video ServicesHongjia Wu et al., Peekaboo: Learning-Based Multipath Scheduling for Dynamic Heterogeneous Environments

[0008] However, conventional technologies cannot quickly detect sudden increases in latency in networks (especially mobile networks), which makes it difficult to select an appropriate network for data transmission.

[0009] The present invention has been made in consideration of the above points, and aims to provide a technology that enables a sudden increase in latency in a network to be immediately detected and an appropriate network to be used for data transmission to be selected.

[0010] According to the disclosed technology, there is provided a communication device used as a first communication device in a communication system in which data is transmitted from a first communication device to a second communication device via multiple paths, the communication device having a scheduling unit that determines whether to switch the main transmission path to another path by comparing an unacknowledged response time, which is the time related to the elapsed time from the transmission time of transmission data for which an acknowledgment has not been received, on a main transmission path selected based on the quality measured or predicted for each of the multiple paths, with a delay time on the main transmission path or another path.

[0011] According to the disclosed technology, it is possible to immediately detect a sudden increase in delay in a network and appropriately select a network to use for data transmission.

[0012] 1 is a diagram showing a discrepancy between an actual RTT and srtt. FIG. 2 is a diagram showing a discrepancy between an actual RTT and srtt. FIG. 3 is a diagram for explaining an example of a case where an inappropriate path selection is performed. FIG. 4 is a diagram showing a conventional srtt-based method. FIG. 5 is a diagram showing a proposed method. FIG. 6 is a diagram for explaining an overview of a technology related to an embodiment of the present invention. FIG. 7 is a diagram showing an example of a configuration of a communication system in embodiment 1. FIG. 8 is a diagram showing an example of a configuration of a communication device 10. FIG. 9 is a diagram showing an example of a configuration of a multiplexing transport unit 12. FIG. 10 is a diagram showing a processing flow of a packet scheduling unit 122. FIG. 11 is a diagram showing a processing flow of an acknowledgment processing unit 125. FIG. 12 is a diagram showing a processing flow of a main transmission path selection method 2. FIG. 13 is a diagram showing a premise for explaining a difference between path selection methods. FIG. 14 is a diagram showing a main transmission path selection method 1. FIG. 15 is a diagram showing a main transmission path selection method 2. FIG. 16 is a diagram showing an example of retransmission data transmission. FIG. 17 is a diagram showing a processing flow of a probe data selection method 1. FIG. 18 is a diagram showing an example of a configuration of a communication system in embodiment 2. FIG. 19 is a diagram showing a processing flow of a main transmission path selection method 3. FIG. 20 is a diagram showing a processing flow of a main transmission path selection method 4. FIG. 21 is a diagram showing a processing flow of a main transmission path selection method 5. FIG. 22 is a diagram showing a processing flow of a main transmission path selection method 6. FIG. 23 is a diagram showing a processing flow of a probe data selection method 2. FIG. 2 is a diagram illustrating an example of a hardware configuration of a communication device 10.

[0013] Hereinafter, an embodiment of the present invention will be described with reference to the drawings. The embodiment described below is merely an example, and the embodiment to which the present invention is applied is not limited to the following embodiment.

[0014] Below, we will explain a technology for detecting a sudden deterioration in network quality and immediately utilizing the optimal network in a communication system that connects multiple communication devices via multiple networks and multiplexes and transfers various communications over a single transport connection.

[0015] First, the conventional technology and its problems will be described in more detail below, and then the technology according to the present embodiment will be described.

[0016] (Regarding the Prior Art) The following provides an overview of the prior art disclosed in non-patent literature.

[0017] (1) Lowest RTT First (LRF), NSDI 2012 (Non-Patent Document 4) In LRF, the path with the smallest srtt (smoothed RTT) and available congestion window size (cwnd) is selected from multiple paths as the path to transmit data. Furthermore, as a countermeasure against HolBlocking, when the receive buffer is depleted, the data with the smallest sequence number that has not yet received an ack is immediately retransmitted, halving the cwnd of the high-latency path.

[0018] (2) Out-of-order Transmission for In-order Arrival Scheduler (OTIAS), AINAW 2014 (Non-Patent Document 6) OTIAS estimates the packet arrival time for each path among multiple paths and always selects the path with the shortest arrival time.

[0019] (3) Blocking ESTimation-Based MPTCP Scheduler (BLEST), IFIP Networking 2016 (Non-Patent Document 1) BLEST estimates the amount of HolBlocking that occurs when using long-latency paths, and uses only the amount of long-latency paths that does not cause blocking.

[0020] (4) Earliest Completion First (ECF), CoNEXT'17 (Non-Patent Document 2) In ECF, similar to OTIAS, a path with the shortest transfer completion time is selected.

[0021] (5) Shortest Transfer Time First (STTF), IEEE / ACM Transactions on Networking, 2019 (Non-Patent Document 5). Like OTIAS, STTF estimates the transfer time for each path and uses the shortest path. However, unlike OTIAS, it takes into account the state of the congestion control algorithm.

[0022] (6) Multipath-State Machine Scheduler (MSM), ICC 2023 (Non-Patent Document 7) MSM is an algorithm that aims to maximize the utilization rate of each path, rather than the conventional in-order strategy. It divides the congestion state of each path into five categories and selects the path with the shortest link utilization rate and transfer time. For paths with high link utilization rates (Congestion, Risk), it transfers data redundantly.

[0023] (7) XLINK: QoE-Driven Multi-Path QUIC Transport in Large-scale Video Services, sigcomm 2021 (Non-Patent Document 3) In XLINK, when there is no more data to be transmitted for each stream or video frame, the unacknowledged data is retransmitted via another path without waiting for a PTO (Probe Timeout). Specifically, the retransmission is controlled by obtaining buffer information from the video playback application.

[0024] (8) Peekaboo: Hongjia Wu et al., Peekaboo: Learning-Based Multipath Scheduling for Dynamic Heterogeneous Environments (Non-Patent Document 8) Peekaboo is a packet scheduling algorithm that uses online reinforcement learning to determine transmission paths. It maximizes throughput by using cwnd, inflight, send window (receiver window), and RTT as feature quantities. However, because it uses online learning, there is a possibility that in the short term, randomness may be introduced, resulting in inefficient path selection, and performance may be highly dependent on parameter tuning, resulting in incorrect path selection. Furthermore, even in the case of offline learning, predictions may be incorrect due to an environment different from the time of learning, unpredictable congestion, or deterioration of wireless quality.

[0025] (About the issues) LRF, OTIAS, DAPS, BLEST, and STTF always select a path that minimizes packet arrival time or the amount of blocking. MSM aims to maximize the utilization efficiency of multiple networks by selecting paths with low congestion levels, rather than avoiding HoLB.

[0026] In mobile networks, fluctuations in wireless quality, HARQ retransmissions, etc., cause larger fluctuations in latency and available bandwidth compared to fixed lines, and it is not uncommon for sudden delays of several hundred milliseconds or more to occur. Note that sudden delays can occur in networks other than mobile networks.

[0027] LRF, OTIAS, BLEST, and STTF select paths based on the exponential moving average srtt to avoid HolBlocking. Therefore, they cannot respond immediately to sudden increases in latency or bandwidth reductions. Regarding this issue, we will discuss later how the discrepancy between the actual RTT and srtt occurs.

[0028] MSM considers the congestion state of each network instead of srtt to deal with fluctuations in wireless networks. However, because it prioritizes the degree of congestion, it may induce delay deterioration due to HoLB when cwnd is not rate-limiting or when the delay difference between paths is large.

[0029] In XLINK, if information from the application is not used, the number of retransmissions cannot be reduced, which may result in unnecessary retransmissions or congestion due to retransmitted packets.

[0030] Furthermore, a common problem with conventional technologies is that the quality of SRTT and other parameters of unused networks are not updated, making it impossible to take into account the latest conditions.

[0031] Furthermore, when path selection is based solely on quality values ​​predicted from past or current quality, it is necessary to accurately predict the quality of each line in absolute terms, and if the prediction is incorrect, there is a risk of further deterioration in communication quality.

[0032] <Regarding the Deviation Between Actual RTT and srtt> Here, the deviation between the actual RTT and srtt will be described in relation to the problem when using the srtt described above.

[0033] The srtt used in existing methods such as LRF, OTIAS, BLEST, and STTF deviates from the actual RTT, especially in mobile networks with large jitter. Furthermore, RTT and srtt can only be observed after experiencing RTT fluctuations. Figures 1 and 2 show examples of such deviations.

[0034] Figure 1 shows the fluctuations of RTT, SRTT, RTTVAR, and PTO when the RTT is normally distributed with a mean of 40 ms and a standard deviation of 20 ms. The top part of Figure 1 shows an example where SRTT is updated once per RTT. This is the minimum value recommended in RFC5690, draft-ietf-quic-ack-frequency-05.

[0035] The bottom part of Figure 1 shows an example where srtt is updated four times per RTT (every 0.25 RTT). This is the number of times that is empirically considered to be good. In both the top and bottom parts of Figure 1, there is a discrepancy.

[0036] Figure 2 shows the RTT and srtt when changing the RTT from 20 ms to 50 ms. The upper part of Figure 2 shows the case where srtt is updated once per RTT, and the lower part of Figure 2 shows the case where srtt is updated four times per RTT (every 0.25 RTT).

[0037] <Regarding Inappropriate Path Selection Due to Deviation Between Actual RTT and srtt> An example of a case where an inappropriate path is selected due to a deviation between the actual RTT and srtt will be described with reference to Fig. 3. Here, an example using an LRF will be described.

[0038] In the example shown in FIG. 3, there are path i and path j, and the relationship in magnitude of srtt between the paths at times t, t', and t'' is as follows:

[0039] srtt i,t <srtt j,t srtt i,t´ <srtt j,t´ srtt i,t´´ >srtt j,t´´ At first, "srtt i,t <srtt j,t ", so path i is selected. "srtt i,t <srtt j,t While "srtt" is satisfied, the use of path i continues even if the delay increases, as shown in (1). As shown in Figure 3, when the cwnd for path i is exhausted, a switch from path i to path j occurs. Then, "srtt" i,t´ <srtt j,t´ When "cwnd" becomes available, a switch from path j to path i occurs. i,t´´ >srtt j,t When this occurs, a switch from path i to path j occurs.

[0040] That is, as shown in (2), even if the increase in delay is resolved, the srtt is updated with a delay, resulting in unnecessary path switching.

[0041] In the case of OTIAS and BLEST, even if the cwnd of path i is exhausted, path i will continue to be used if it is determined that ack arrives earlier on path i than on path j. As a result, a path with even higher latency will be selected.

[0042] (Basic Concept of the Technology According to the Present Embodiment) The above-mentioned problems can be solved by the technology according to the present embodiment. The basic concept of the technology according to the present embodiment will be described.

[0043] In this embodiment, a communication device 10 (described later) utilizes, for packet scheduling, the time tif (time in flight) elapsed from the transmission time of the packet with the smallest packet number for which an ack has not been received (the oldest packet). Note that in this embodiment, "packet" may also be called "data." Furthermore, time in flight may also be called unacknowledged response time. The basic usage of time in flight is as follows. Note that the "unacknowledged response time" is not limited to time in flight and may be any time related to the elapsed time from the transmission time of transmission data for which an ack has not been received. For example, the "unacknowledged response time" may be a statistical value (e.g., an average value) of the elapsed time from the transmission time for multiple packets for which an ack has not been received.

[0044] The communication device 10 i∈P {tif i , srtt i ". In other words, from the set of paths P, select the path that is i and srtt i Select the path for which the larger of the two is the smallest.

[0045] When a temporary increase in delay occurs, the communication device 10 performs, for example, srtt j <tif iWhen this occurs, path i is switched to path j. A specific example will be described with reference to Figures 4 and 5. Note that srtt is an example of delay time. The delay time to be compared with the unacknowledged response time is not limited to srtt.

[0046] For comparison with the technology according to the present embodiment, Fig. 4 shows a conventional srtt-based method. As shown in Fig. 4, if srtt is small, path i continues to be used even if the delay increases, and switching to path j occurs when cwnd is exhausted.

[0047] Figure 5 shows the proposed method that takes into account tif (time in flight). In the example of Figure 5, even if cwnd is not exhausted, tif i >srtt j,t When this happens, path i is switched to path j. In this way, the proposed technology can detect delay deterioration more quickly than conventional technology.

[0048] The proposed technology assumes that the RTT and time in flight of unused paths are also updated. This assumption is realized by the processing flow described below.

[0049] (Outline of the embodiment) An outline of the technology according to the present embodiment will be described with reference to Fig. 6. Fig. 6 shows a configuration in which a communication device 10-1 and a communication device 10-2 are connected via paths 1 to m.

[0050] The communication device 10-1 transmits a probe packet for each RTT on each path, and updates the srtt, latest RTT, and unacknowledged response time.

[0051] In this embodiment, the data used as the probe packet is selected from among measurement-specific data (e.g., QUIC PING frame), the latest unsent data, and unacknowledged data depending on the path quality, which makes it possible to reduce the amount of probe traffic.

[0052] When the communication device 10-1 detects that the unacknowledged response time of the path (called the main transmission path) through which data is being transmitted has exceeded srtt, it switches the path to another path, for example, based on the unacknowledged response time of the path.

[0053] For example, if path m is the primary transmission path, then m <Unconfirmed response time m " and "srtt 2 <Unconfirmed response time m If ", change the primary transmission path from path m to path 2.

[0054] The specific configuration and operation will be described below using the first and second embodiments.

[0055] (Embodiment 1: System Configuration) Fig. 7 shows an example of the configuration of a communication system in embodiment 1. As shown in Fig. 7, this communication system includes communication device 10-1 and communication device 10-2, and performs communication between communication device 10-1 and communication device 10-2 via one or more networks. Networks 1 to 3 are shown in Fig. 7. Note that a "network" may also be called a "path."

[0056] More specifically, the communication device 10-1 and the communication device 10-2 perform communication in which a plurality of communication flows are multiplexed using a transport protocol such as MPTCP or MPQUIC.

[0057] Here, a communication flow means a series of related communication data. For example, a communication flow can mean "a group of packets that match one or more of the 5-tuple of IP address, port number, and protocol type in TCP / IP," "stream data sent with the same stream ID in QUIC," or "a group of related datagram frames, such as data generated by the same application, among communications sent in datagram frames in QUIC."

[0058] The communication device 10-1 and the communication device 10-2 basically have the same configuration. When describing the communication device without distinguishing between the communication device 10-1 and the communication device 10-2, they will be referred to as "communication device 10."

[0059] However, since the characteristics of the technology according to this embodiment are possessed by the transmitting communication device 10, it is assumed that the "communication device 10" hereinafter refers to the transmitting "communication device 10."

[0060] (Embodiment 1: Configuration of communication device 10) Fig. 8 shows an example configuration of the communication device 10. As shown in Fig. 8, the communication device 10 includes one or more communication applications 11, a multiplexed transport unit 12, and one or more communication I / Fs 13 that connect to an external network.

[0061] The communication application 11 sends transmission data to the multiplexed transport unit 12, and the multiplexed transport unit 12 transmits the transmission data to the communication device 10 at the other end of the external network via one or more communication I / Fs 13.

[0062] Each communication device 10 is not limited to transmitting data of the communication application 11. For example, a communication device 10 may act as a proxy that forwards data received from another communication device 10.

[0063] (Embodiment 1: Configuration and Operation Overview of Multiplexing Transport Unit 12) Fig. 9 shows an example configuration of the multiplexing transport unit 12. As shown in Fig. 9, the multiplexing transport unit 12 includes one or more flow transmission buffers 121, a packet scheduling unit 122, a congestion control unit 123, one or more path transmission buffers 124, and an acknowledgment processing unit 125. The packet scheduling unit 122 may also be called a "scheduling unit."

[0064] The flow transmission buffer 121 buffers transmission data for each flow. The packet scheduling unit 122 determines over which network the data stored in the flow transmission buffer 121 will be transmitted.

[0065] The congestion control unit 123 adjusts the amount of data transmission for each network according to the degree of congestion of each network.

[0066] The path transmission buffer 124 stores data to be transmitted to each network. The acknowledgement processing unit 125 receives an acknowledgement of arrival of the transmitted data.

[0067] The operation of the multiplexing transport unit 12 having the above configuration is outlined below.

[0068] Data transmitted from the communication application 11 is stored for each flow in a flow transmission buffer 121. When transmission data exists in any of the flow transmission buffers 121, the packet scheduling unit 122 determines the destination network for the transmission data based on information obtained from the congestion control unit 123 and the acknowledgement processing unit 125.

[0069] The congestion control unit 123 updates the congestion status of the destination network and stores data in the path transmission buffers 124 connected to the destination network. The data stored in each path transmission buffer 124 is transmitted to the network via a network interface card or the like.

[0070] The communication device 10 that receives the transmission data returns acknowledgement data indicating which transmission data it has received. The acknowledgement processing unit 125 receives the acknowledgement data and updates the information required for the packet scheduling unit 122 to determine a transmission path.

[0071] The multiplexed transport unit 12 also has functions commonly required for communications using TCP, QUIC, etc. TCP and QUIC themselves are existing technologies, so detailed explanations of these will be omitted.

[0072] (Explanation of Variables) The variables used in the operation explanation below are as follows.

[0073] P: A set of available paths (networks identified by a 4-tuple of sending and receiving IP addresses and port numbers) main : Path p for new data transmission probe :Probe path inflighti : Amount of unacknowledged data sent on path i time_in_flight i earliest_sent_time: Unacknowledged response time for path i (time elapsed since the oldest unacknowledged data was sent) i unsend_time: The transmission time of the oldest unacknowledged data sent on path i i sent_time: The time when no transmission was performed on path i i last_sent_time: The time when packet i was sent i latest_rtt: The time of the last transmission on path i i : The last measured round trip delay time srtt for path i i : exponential moving average of round trip delay time measured on path i rttvar i : latest_rtt i and srtt i Exponential moving average of deviation of minrtt i : latest_rtt within a certain time period i Minimum value of last_acked_time i : The time when the last ack was received on path i. Note that p main (the path for new data transmission) may be called the main transmission path. probe (The path to be probed) may be called the measurement target path.

[0074] In addition, based on rfc6298 and rfc9002, srtt and rttavr may be calculated using the following formula using an exponential moving average.

[0075] srtt=7 / 8×srtt+1 / 8×latest rtt rttavr=3 / 4×rttvar+1 / 4×|srtt−latest rtt| (First embodiment: Processing flow of packet scheduling unit 122) The processing flow of the packet scheduling unit 122 will be described with reference to the flowchart of FIG.

[0076] In S101, the packet scheduling unit 122 acquires the current time (now). In S102 to S107, processing is performed while incrementing i by 1 from i=0 to n. In other words, the processing in S103 and S104 / S105 is performed for each path.

[0077] In S103, the packet scheduling unit 122 sets the "inflight i . . 0", the presence or absence of unacked data (inflight) is confirmed, and if there is, the process proceeds to S104, and if there is not, the process proceeds to S105.

[0078] In S104, the packet scheduling unit 122 sets "time_in_flight i ←now-earliest_sent_time i " In other words, calculate the maximum unacknowledged time and set time_in_flight i Update.

[0079] In S105, the packet scheduling unit 122 sets "unsend_time i ←now- last_sent_time i " In other words, calculate the unsent time and set unsend_time i Update.

[0080] In S108, the packet scheduling unit 122 schedules the primary transmission path p main The path selection method will be described later.

[0081] In addition to the path determined in S108, if unsend_time is equal to or greater than latest_rtt, probe data (described below) is sent. This is done to update information such as RTT if no data has been sent during the most recently measured RTT. The operation in the flow of Figure 10 is as follows:

[0082] In S109 to S117, the process is executed while increasing i by 1 from i=0 to n. In other words, the process is executed for each pass.

[0083] Path i is selected path p main If so (Yes in S110), the packet scheduling unit 122 selects transmission data (S111). The method of selecting transmission data will be described later. If No in S110, the packet scheduling unit 122 selects "unsend_time i ≧latest_rtt i If the answer is Yes, the probe data is selected in S113, and if the answer is No, the process proceeds to S116. The method for selecting the probe data will be described later.

[0084] In S114, the selected data j is sent, and "sent_time i ←now".

[0085] In S115, the packet scheduling unit 122 i ←inflight i +Sent data amount", "last_sent_time i ←now", "unsend_time" i ←0" and update the variable.

[0086] In the above explanation, the data receiving side does not take into account delayed ack, which delays the acknowledgment response to improve performance. However, even if delayed ack, which delays the acknowledgment response, is taken into account, the technology of this embodiment can be applied by taking into account the expected amount of delay (notified at the time of negotiation in the case of QUIC).

[0087] The packet scheduling 122 constantly (for example, at regular time intervals) executes the flow shown in Fig. 10. As a result, not only the variables of paths that are being used, but also the variables of paths that are not being used are constantly updated.

[0088] (First Embodiment: Processing Flow of Acknowledgement Response Processing Unit 125) Next, the processing flow of the acknowledgement response processing unit 125 will be described with reference to the flowchart of FIG.

[0089] In S201, the acknowledgement processing unit 125 acquires the current time (now). In S202 to S205, processing is performed for each path.

[0090] In S203, the acknowledgement processing unit 125 receives an acknowledgement (ack) for the data j. Upon receiving the acknowledgement, the acknowledgement processing unit 125 updates various parameters used for transmission path selection and probe data transmission. The general method described in RFC6298 and RFC9002 is used to calculate srtt and rttvar.

[0091] Specifically, in S204, the confirmation response processing unit 125 i ←now-sent_time j " latest_rtt i Update and srtt i , rttvar i The acknowledgement processing unit 125 also calculates the "earliest_sent_time i ←min(sent_time k )," "inflight" i ←inflight i -ack data amount", "last_acked_time i ←now" to update the parameters.

[0092] (Embodiment 1: Primary Transmission Path Selection Method 1) Next, primary transmission path selection method 1 will be described. In primary transmission path selection method 1, the packet scheduling unit 122 selects a path for which the larger of srtt and time_in_flight has the smallest value. This selection method can be expressed as follows:

[0093] min max i∈P { srtt i , time_in_flight i} Furthermore, when the time_in_flight of a selected path exceeds the srtt (the srtt of another path), which is the time it is expected that an acknowledgment will arrive on average, the packet scheduling unit 122 selects a path with a smaller "srtt or time_in_flight." This makes it possible to immediately switch transmission paths when delays suddenly worsen.

[0094] For example, suppose there are paths 1 and 2. Path 1 is initially selected as the primary transmission path. If "srtt2 > time_in_flight 1 " After this, "srtt2<time_in_flight 1 " At this time, "time_in_flight 1 >time_in_flight 2 ", then path 2 is selected as the primary transmission path.

[0095] Furthermore, when inflight is 0 (when no data is being sent), the packet scheduling unit 122 may use latest_rtt instead of time_in_flight.

[0096] Alternatively, the packet scheduling unit 122 may estimate the time required for data transfer for each path according to, for example, the following formula, and use the path that takes the shortest time for data transfer.

[0097] (Embodiment 1: Primary Transmission Path Selection Method 2) Next, a description will be given of primary transmission path selection method 2. In primary transmission path selection method 2, when the time_in_flight of the path with the smallest srtt (minimum srtt path) exceeds the srtt, the packet scheduling unit 122 selects a transmission path taking into account the RTT deviation (rttvar) and the tolerable jitter amount.

[0098] Selection method 2 allows for earlier path reselection when time_in_flight exceeds srtt compared to selection method 1. Selection method 2 causes a path change even if the time_in_flight of the path with the smallest srtt does not deteriorate significantly, so although the average delay may worsen, it is effective in reducing the worst-case delay.

[0099] Here, the reference path is the minimum srtt path, but instead of the minimum srtt, the reference path may be selected based on an indicator such as the minimum transfer time (Equation 1) described in Transmission Path Selection Method 1, the amount of acknowledgement received per fixed time, or other algorithms.

[0100] A specific processing flow by the packet scheduling unit 122 in the main transmission path selection method 2 will be described with reference to FIG.

[0101] Steps S301 to S306 are steps for searching for a path with the smallest srtt. After initializing variables in step S301, the packet scheduling unit 122 checks the srtt of each path in steps S302 to S306 to find the path with the smallest srtt (p main ) to explore.

[0102] In S307 to S313, the packet scheduling unit 122 main When the time_in_flight of the shortest srtt path exceeds srtt, the path with the smallest larger "srtt and time_in_flight" is selected within the time calculated by adding rttvar, the exponential moving average of the RTT deviation, and the allowable jitter amount B to srtt.

[0103] Specifically, first, in S307, the packet scheduling unit 122 pmain <time_in_flight pmain If "Yes", the process goes to step S308. pmain + rttvar pmain +B" sets the initial value thresh.

[0104] In steps S309 to S313, the path selection is performed by updating thresh and comparing it with thresh for each path. i , srtt i If the answer is Yes, in step S311, main ←i" and "thresh←max{ time_in_flight i , srtt i + rttvar i}".

[0105] Note that the initial threshold value in the above process is an example. A coefficient may be introduced, or only one of rttvar and B may be used.

[0106] A specific example will be described. Suppose the values ​​are "Path 1: srtt 50 ms, rttvar 20 ms," "Path 2: srtt 100 ms, rttvar 10 ms," and "B: 50 ms." In this case, 50 ms + 20 ms + 50 ms > 110 ms, so the packet scheduling unit 122 determines that the time for which the arrival order is reversed is small, and if the unacknowledged response time for Path 1 exceeds 50 ms, it determines that data should be sent via Path 2.

[0107] (First embodiment: Transmission data selection method for the main transmission path) Next, a transmission data selection method for the main transmission path by the packet scheduling unit 122 will be described.

[0108] The packet scheduling unit 122 determines the transmission data for the main transmission path selected by the main transmission path selection method 1 or 2 in the following manner.

[0109] srtt pmain ≧time_in_flight pmain If so, or if the main transmission path has not changed since the previous data transmission, the packet scheduling unit 122 selects new data in the flow transmission buffer as the transmission data.

[0110] srtt pmain<time_in_flight pmain If the primary transmission path has been changed since the previous data transmission, the packet scheduling unit 122 schedules the original primary transmission path p main The unacknowledged data (data for which ACK has not been received) of the data previously transmitted is selected as the data to be transmitted. main After all unacknowledged data in the flow has been sent, new data in the flow send buffer is selected for sending.

[0111] As mentioned above, when time_in_flight exceeds srtt, there is a possibility that a sudden increase in latency occurs in the wireless network. This transmission data selection method allows unacknowledged data to be sent immediately using another path, so even if a sudden increase in latency occurs on a certain path, it is possible to avoid the increase in latency and send data.

[0112] In addition, in order to avoid any effect on congestion control algorithms that use retransmission as a trigger, an identifier may be assigned to unacknowledged data transmitted using this transmission data selection method to indicate that it is different from normal retransmission.

[0113] In addition, when determining whether to select unacknowledged data, the congestion state of the main transmission path after the change (such as the availability of congestion window size) may be taken into consideration, and retransmission data (unacknowledged data) may be sent only if congestion is not occurring.

[0114] (Embodiment 1: Differences in path selection methods and transmission data selection) The differences in path selection methods and transmission data selection under minrtt (round trip propagation delay), srtt (average expected time for ACK to be returned), and rttvar (degree of fluctuation in srtt) as shown in Figure 13 will be explained with reference to Figures 14 to 16.

[0115] Fig. 14 shows an example of using primary transmission path selection method 1. In the example of Fig. 14, switching from path i to path j occurs when the time_in_flight of path i becomes worse than the srtt or time_in_flight of path j. In other words, after the delay of path i has deteriorated to a certain extent, a better path j is selected.

[0116] FIG. 15 shows an example of the case where main transmission path selection method 2 is used. In the example of FIG. 15, if the time_in_flight of path i exceeds srtt and the difference between the srtt and the "larger of srtt and time_in_flight" of path j is less than the tolerance value, switching from path i to path j is performed early. In other words, if the delay worsens even slightly, a different path with a delay less than the tolerance value can be immediately selected. The tolerance value is "rttvar j +B".

[0117] Fig. 16 shows an example of retransmission data transmission. In the example of Fig. 16, when the path is switched due to deterioration of time_in_flight, transmission starts from unacknowledged data (data3).

[0118] (Embodiment 1: Probe Data Selection Method 1) Next, probe data selection method 1 executed by the packet scheduling unit 122 will be described with reference to the flowchart in Fig. 17. In this process, the packet scheduling unit 122 selects transmission data to be used for measurement (measurement data) according to the quality of each path.

[0119] In S401, the packet scheduling unit 122 sets "now-last_acked_time pprobe <latest_rtt pprobe If the answer is Yes, the process proceeds to S402, and if the answer is No, the process proceeds to S407.

[0120] In S402, the packet scheduling unit 122 sets "max{ time_in_flight pprobe , latest_rtt pprobe}<srtt pprobe + rttvar pprobe If the answer is Yes, the process proceeds to S403, and if the answer is No, the process proceeds to S407. In S407, the packet scheduling unit 122 selects the measurement-only data.

[0121] In S403, the packet scheduling unit 122 executes the command "thresh←srtt pmain+ rttvar pmain +B" to update the threshold.

[0122] In S404, the packet scheduling unit 122 determines whether "thresh>srtt pprobe + rttvar pprobe If the answer is Yes, the process proceeds to S405, and if the answer is No, the process proceeds to S408.

[0123] In S0405, the packet scheduling unit 122 sets "time_in_flight pmain <srtt pmain + rttvar pmain If the answer is Yes, the process proceeds to S406, and if the answer is No, the process proceeds to S409.

[0124] In S408, the packet scheduling unit 122 selects measurement-only data or data in a flow transmission buffer other than the main transmission path.

[0125] In S406, the packet scheduling unit 122 selects data in the new flow transmission buffer. In S409, the packet scheduling unit 122 main Select the unacknowledged data.

[0126] The processing in the flowchart can be explained more clearly as follows.

[0127] In the cases of (1) and (2) below, the recent quality of the path through which the probe data is sent is unknown or has deteriorated, so the packet scheduling unit 122 sends measurement data (such as a QUIC PING frame).

[0128] (1) No confirmation response has been received within the last RTT (Yes in S401). (2) The most recent RTT or time_in_flight of the probe path is larger than srtt (Yes in S402). Next, if the above does not apply but the delay of the path to be measured is larger than the delay of the main transmission path (No in S404), measurement data or data from a flow transmission buffer other than the main transmission path is transmitted to avoid HoLB with the main transmission path.

[0129] If the delay difference between the main transmission path and the probe transmission path is less than the threshold and the time_in_flight of the main transmission path is smaller than srtt (if Yes is reached in S405), the data in the new flow transmission buffer is used as probe data.

[0130] If the time_in_flight of the main transmission path exceeds srtt (No in S405), there is a possibility of a sudden increase in delay, so the unacknowledged data of the main transmission path is transmitted as probe data.

[0131] The above process makes it possible to effectively use the bandwidth by reducing the amount of measurement data sent just for the probe, while also enabling immediate retransmission (transmission of unacknowledged data) when the delay on the main transmission path worsens.

[0132] (Embodiment 2) Next, embodiment 2 will be described. The configuration and processing content of embodiment 2 are basically the same as the configuration and processing content of embodiment 1. Below, differences from embodiment 1 will be mainly described. The main difference from embodiment 1 is that embodiment 2 calculates a predicted value using past actual values ​​of communication quality.

[0133] (Embodiment 2: System Configuration) Fig. 18 shows an example of the configuration of a communication system in embodiment 2. As shown in Fig. 18, in addition to the basic configuration shown in Fig. 7 of embodiment 1, the system is equipped with a communication quality database 20 that stores past communication quality information and can be referenced by each communication device 10.

[0134] The communication quality database 20 collects and stores the location information and time of the communication device 10 and the communication quality information for each network from each communication device 10. The communication quality includes, for example, throughput, delay (including RTT, jitter, and the aforementioned unacknowledged response time), packet loss, etc.

[0135] The communication device 10 acquires past communication quality records from the communication quality database 20 at regular time intervals, at the timing requested by the communication device 10, or when a fluctuation in communication quality or the like is detected, based on the current location information of the communication device 10, and calculates future predicted quality information for each path based on the past communication quality records. For example, the packet scheduling unit 122 may acquire the past communication quality records and calculate the predicted quality.

[0136] (Embodiment 2: Primary Transmission Path Selection Method 3) Next, primary transmission path selection method 3 will be described with reference to the flowchart in FIG. 19. In S501, the packet scheduling unit 122 calculates, based on information acquired from the communication quality database 20, a path from among multiple paths that is predicted to have the best communication quality, and sets this path as the primary transmission path. The processes in S502 to S508 are the same as S307 to S313 in primary transmission path selection method 2 (FIG. 12). Note that using primary transmission path selection method 2 as the process after setting the primary transmission path is just an example, and a method other than primary transmission path selection method 2 may also be used.

[0137] That is, in the main transmission path selection method 3, the packet scheduling unit 122 selects a reference path (main transmission path p main ), the path with the best predicted communication quality calculated based on the data in the communication quality database 20 is selected, rather than the path with the smallest srtt.

[0138] Good communication quality means that one or more of the following factors are good: effective throughput, RTT, time_in_flight, etc.

[0139] "srtt pmain <time_in_flight pmain If this occurs, there is a possibility that the quality has temporarily deteriorated, so similar to main transmission path selection method 2, the packet scheduling unit 122 selects another path that satisfies the allowable jitter time.

[0140] Also, time_in_flight pmainThe primary transmission path may be changed based on not only an increase in the SRTT, but also other degradations in network quality, such as an increase in the SRTT, jitter, packet loss rate, or a decrease in the amount of acknowledgement received.

[0141] (Embodiment 2: Main Transmission Path Selection Method 4) Next, main transmission path selection method 4 will be described with reference to the flowchart of FIG.

[0142] In S601 and S602, the packet scheduling unit 122 searches for a path with the smallest srtt and assigns the path to p main Let's say.

[0143] In S603, "srtt pmain <time_in_flight pmain If ", proceed to S604. In S604, the packet scheduling unit 122 compares the network quality predicted value calculated in the past based on the data in the communication quality database 20 with the latest predicted value, and checks whether the quality has deteriorated. If the network quality has deteriorated, proceed to S605, and if not, proceed to S606.

[0144] In S605, the packet scheduling unit 122 reselects a primary transmission path from among paths with good network quality. S606 to S611 are the same as S308 to S313 in primary transmission path selection method 2 (FIG. 12). Note that using primary transmission path selection method 2 as a process when network quality has not deteriorated is just an example, and methods other than primary transmission path selection method 2 may also be used.

[0145] That is, the processing in the main transmission path selection method 4 is as follows.

[0146] In primary transmission path selection method 4, the packet scheduling unit 122 uses the path with the smallest srtt as a reference, but when the time_in_flight of the path with the smallest srtt deteriorates and exceeds srtt, the packet scheduling unit 122 compares the network quality predicted value calculated in the past from data in the communication quality database 20 with the latest predicted value to check whether quality has deteriorated. Deterioration in quality refers to deterioration in, for example, effective throughput, RTT, time_in_flight, etc.

[0147] If a deterioration is confirmed, a path with the smallest srtt and time_in_flight and a good network quality prediction value is immediately selected as the primary transmission path from one or more paths other than the path with the smallest srtt.

[0148] If no deterioration is confirmed, as in main transmission path selection method 2, etc., an increase in time_in_flight is used as an indicator of quality deterioration, and a path is selected that has the smallest "larger of srtt and time_in_flight" and is below the allowable jitter amount B.

[0149] This method enables faster and more accurate switching to a path with better quality when the time_in_flight of the path with the shortest srtt exceeds srtt.

[0150] A path may be reselected when a deterioration in the predicted communication quality is confirmed, without waiting for the time_in_flight of the path with the shortest srtt to exceed srtt. For example, the shortest RTT measured within a certain period may be used instead of srtt in S603, or S603 may be omitted.

[0151] (Embodiment 2: Main Transmission Path Selection Method 5) Next, main transmission path selection method 5 will be described. Main transmission path selection method 5 is a method for selecting a path based on the degree of fulfillment of predicted quality. That is, it is a method for calculating the current path utilization rate relative to the predicted quality and prioritizing paths with low utilization rates. Specific processing contents will be described with reference to the flowchart in FIG. 21.

[0152] The packet scheduling unit 122 executes S622 to S624 for each path (S621, S625, S626).

[0153] In S622, the packet scheduling unit 122 obtains the predicted available bandwidth BW of the path i from the communication quality database 20. i Get.

[0154] In S623, "(inflight i / srtt i ) <BW iIf ", proceed to S624. In S624, the packet scheduling unit 122 adds path i to the priority transmission path candidates. After executing S622 to S624 for all paths, proceed to S628 if a priority transmission path candidate exists, and proceed to S629 if not.

[0155] In S628, the packet scheduling unit 122 selects a primary transmission path from the priority transmission path candidates, and in S629, the packet scheduling unit 122 selects a primary transmission path from all paths.

[0156] That is, the processing in the main transmission path selection method 5 is as follows.

[0157] In the main transmission path selection method 5, the packet scheduling unit 122 selects a main transmission path based on the utilization rate of the current measured network quality value relative to the predicted network quality value obtained from the communication quality database 20.

[0158] The network quality prediction value represents, for example, the available bandwidth (throughput), and path selection is performed based on the amount of throughput actually being transmitted within the available bandwidth. Specifically, if the throughput during transmission exceeds the predicted available bandwidth, transmission over another path is prioritized.

[0159] In S623 in the example of the flow in FIG. 21, the packet scheduling unit 122 calculates the estimated transmission throughput as an actually measured value by dividing the amount of data for which an acknowledgment has not been received (inflight) by the current srtt for a certain path, and calculates this as the predicted available bandwidth BW i Compared with the actual measurement, i A path is designated as a preferred transmission path candidate in the following cases: If a degradation in the actual measurement value is detected, the primary transmission path is switched.

[0160] If there are one or more priority transmission path candidates, the primary transmission path is selected from among the one or more priority transmission path candidates, and if there are no priority transmission path candidates, the primary transmission path is selected from among all paths. When there are multiple priority transmission path candidates, the primary transmission path selection method may be any of primary transmission path selection methods 1 to 4 and 6, or another general method may be used.

[0161] In addition, in S623, the actual measurement value and BW i Instead of comparing the size of BW i Inflight i / (srtt i ×BW i )) and prioritize paths with low utilization.

[0162] (Embodiment 2: Primary Transmission Path Selection Method 6) Next, primary transmission path selection method 6 will be described. Primary transmission path selection method 6 is a technique for selecting a primary transmission path based on a relative ratio of predicted qualities and a congestion degree. The relative ratio of predicted qualities (which may also be referred to as a predicted quality ratio) is, for example, the ratio between the quality in a non-congested state and the predicted quality. Furthermore, the relative ratio of predicted qualities may be the ratio of predicted qualities among multiple paths.

[0163] In main transmission path selection method 6, the strength of the prediction is absorbed by using a relative ratio. Furthermore, the congestion level is taken into consideration to suppress the use of paths with high prediction quality. In other words, it is possible to level the path utilization rate according to the prediction value and the congestion level. Specific processing contents will be described with reference to the flowchart in FIG. 22.

[0164] The packet scheduling unit 122 executes S632 to S633 for each path (S631, S634, S635).

[0165] In S632, the packet scheduling unit 122 obtains the predicted available bandwidth BW of the path i from the communication quality database 20. i Get.

[0166] In S633, the packet scheduling unit 122 i =(inflight i / (minrtt i ×BW i ))×((max{srtt i ,time_in_flight i}) / minrtt iAfter steps S632 and S633 have been executed for all paths, the process proceeds to step S636.

[0167] In S636, the packet scheduling unit 122 i∈n (nwquality i ) is selected as the primary transmission path.

[0168] The formula in S632 is an example, and various indices that can be calculated from a combination of actually measured communication quality, quality in a non-congested state, predicted communication quality, and communication performance values ​​(inflight, delivery_rate, etc.) can be used.

[0169] That is, the process in the main transmission path selection method 6 is as follows.

[0170] In the main transmission path selection method 6, the packet scheduling unit 122 selects a main transmission path based on the ratio of the network quality prediction value acquired from the communication quality database 20 for each path and the degree of congestion of the path.

[0171] The ratio of the predicted value is, for example, the ratio of the predicted available bandwidth, the ratio of the inverse of the predicted delay, the ratio of the inverse of the packet loss rate, or an index calculated in a composite manner from multiple quality information. The "ratio" here is, for example, the ratio of the predicted value to the quality in a non-congested state (or the ratio of the predicted value to the quality in a non-congested state). The "ratio" may also be the ratio of the predicted quality among multiple paths.

[0172] The degree of congestion is an index calculated by combining the following values: the degree of increase in inflight, the decrease in cwnd, the degree of increase in delay-related values, the degree of increase in packet loss rate, and the occupancy rate of the transmission buffer.

[0173] In the example flow of FIG. 22, the main transmission path is determined based on the ratio of the predicted available bandwidth and the degree of congestion.

[0174] Specifically, in S633, nwquality, an index indicating the communication quality of each path, is calculated based on inflight, minrtt, BW, and time_in_flight. The smaller nwquality, the better the quality. Then, in S636, the path with the smallest nwquality is selected as the primary transmission path. Note that the index indicating communication quality may be defined so that the higher the index, the better the quality.

[0175] Here, when data is transmitted, the inflight increases, and the nwquality of the path increases. In other words, the main transmission path is selected so that the nwquality of all paths becomes equal in the long run.

[0176] Here, the first term on the right side of S633, "inflight i / (minrtt i ×BW i If we focus only on "minrtt", we can consider minrtt to be the round trip propagation delay when there is no congestion, and when the nwquality between paths is equal, the inflight (transmission volume) of each path is determined by the ratio of minrtt to BW. More specifically, the inflight (transmission volume) of each path is determined by the ratio of minrtt x BW between paths.

[0177] For example, when using a path with minrtt=100ms, BW=10Mbps and a path with minrtt=200ms, BW=10Mbps, the inflight ratio for each path is sent at 1:2. When using a path with minrtt=100ms, BW=10Mbps and a path with minrtt=200ms, BW=5Mbps, the inflight ratio is sent at 1:1.

[0178] In WRR and other methods, performance depends on parameters such as weight, token amount, and burst amount, and implementation is also complicated. However, by simply calculating nwquality in S633 using main transmission path selection method 6 and continuing to transmit to the path where this is the smallest value, data can be transmitted to each path based on the relative ratio of the predicted available bandwidth, taking into account propagation delay.

[0179] Furthermore, if the prediction is incorrect and congestion occurs, the amount of inflight reduction decreases, so the transmission volume on the path where congestion has begun can be reduced instantaneously.

[0180] Furthermore, the second term on the right side of S633, "(max{srtt i ,time_in_flight i}) / minrtt i " is the ratio of srtt or time_in_flight to minrtt, which indicates the ratio of the current srtt or time_in_flight to the minrtt when there is no congestion. By multiplying the first term on the right-hand side by the degree of RTT deterioration, it is possible to further reduce the amount of transmission to the congested path.

[0181] (Embodiment 2: Probe Data Selection Method 2) Next, probe data selection method 2 executed by the packet scheduling unit 122 will be described with reference to the flowchart of FIG.

[0182] In S701, the packet scheduling unit 20 checks the predicted network quality of the path, and if a deterioration in quality is confirmed, it does not transmit measurement data in order to avoid further deterioration in quality due to congestion, etc. (S708). At this time, it may stop using the path or assign a flag to lower the priority until the quality improves. Furthermore, when improving quality, it may transmit measurement data multiple times per RTT to update parameters such as srtt.

[0183] If no deterioration in quality is confirmed in S701, the process proceeds to S702. The processes from S702 onwards are the same as those in the probe data selection method 1 described in the first embodiment.

[0184] (Regarding the use of main transmission path selection methods) In main transmission path selection method 3, when the quality prediction accuracy is high, the main transmission path is selected mainly based on the predicted quality calculated using the communication database 20, but path switching control is performed using time_in_flight and other actual communication quality measurement values ​​to deal with increases in delay and congestion that occur in the short term.

[0185] In main transmission path selection method 4, when the quality prediction accuracy is low, the main transmission path is selected based on the mainly measured quality information (srtt, time_in_flight, cwnd, etc.), but when time_in_flight exceeds srtt, the quality prediction is used to determine the future degree of delay deterioration. Therefore, it is possible to more accurately determine whether to switch paths than when there is no quality prediction.

[0186] The main transmission path selection methods 1 to 6 can be flexibly selected and combined based on the quality prediction accuracy or other indicators. Furthermore, the main transmission path selection methods 1 to 6 are merely examples, and other selection methods may also be used.

[0187] (Hardware Configuration Example) The communication device 10 described in this embodiment can be realized, for example, by causing a computer to execute a program. This computer may be a physical computer or a virtual machine on a cloud.

[0188] That is, the communication device 10 can be realized by using hardware resources such as a CPU and memory built into a computer to execute a program corresponding to the processing performed by the communication device 10. The program can be recorded on a computer-readable recording medium (such as a portable memory) and stored or distributed. The program can also be provided via a network such as the Internet or email.

[0189] Fig. 24 is a diagram showing an example of the hardware configuration of the computer. The computer in Fig. 24 includes a drive device 1000, an auxiliary storage device 1002, a memory device 1003, a CPU 1004, an interface device 1005, a display device 1006, an input device 1007, an output device 1008, and the like, all of which are interconnected via a bus B. The computer may further include a GPU.

[0190] The program that realizes the processing on the computer is provided by a recording medium 1001, such as a CD-ROM or a memory card. When the recording medium 1001 storing the program is set in the drive device 1000, the program is installed from the recording medium 1001 to the auxiliary storage device 1002 via the drive device 1000. However, the program does not necessarily have to be installed from the recording medium 1001, but may be downloaded from another computer via a network. The auxiliary storage device 1002 stores the installed program as well as necessary files, data, etc.

[0191] The memory device 1003 reads and stores the program from the auxiliary storage device 1002 when an instruction to start the program is received. The CPU 1004 realizes functions related to the communication device 10 in accordance with the program stored in the memory device 1003. The interface device 1005 is used as an interface for connecting to a network, etc. The display device 1006 displays a GUI (Graphical User Interface) or the like according to the program. The input device 1007 is composed of a keyboard, mouse, buttons, a touch panel, etc., and is used to input various operation instructions. The output device 1008 outputs the results of calculations.

[0192] According to the technology of the present embodiment, in a communication system connecting multiple communication devices via multiple networks, it is possible to immediately detect a sudden increase in latency in a network (e.g., a mobile network) and, based on the detection, appropriately select a network to use for data transmission. In addition, it is possible to update quality information of each network while reducing the amount of measurement-only data transmitted.

[0193] Furthermore, when using a predicted value of communication quality, even if the prediction is incorrect, it is possible to prevent a deterioration in communication quality by detecting a deterioration in communication quality and selecting a network to use.

[0194] In particular, in the main transmission path selection method 6, the network to be used is selected taking into consideration the ratio of predicted communication quality and the degree of congestion, making it possible to utilize relative predicted information rather than absolute values ​​of communication quality.

[0195] (Summary of Technology Relating to the Embodiment) In the communication system according to the present embodiment, data is transmitted using a plurality of paths between communication devices 10. The communication device 10 periodically measures the quality (time_in_flight, srtt, latest_rtt, etc.) of each path, and selects a path for data transmission based on the elapsed time (time_in_flight (unacknowledged response time)) from the transmission time of the oldest transmitted data among the transmitted data for which an acknowledgement has not been received.

[0196] As explained in the primary transmission path selection method 2, when selecting a path for data transmission, the communication device 10 may take into account a tolerance for the difference in delay between the primary transmission path and a candidate path to switch to, and use multiple paths whose difference in delay is equal to or less than a certain value. This makes it possible to improve bandwidth utilization efficiency while suppressing E2E delay.

[0197] In addition, when the communication device 10 detects a deterioration in the unacknowledged response time and changes the main transmission path, it may transmit using the original main transmission path, and then transmit data that has not yet been acknowledged using the changed main transmission path.

[0198] The communication device 10 may select the measurement data to be used for the periodic measurement as shown in (1) to (3) below, depending on the quality of each path.

[0199] (1) When the latest quality of the path to be measured is unknown or the quality of the path to be measured has deteriorated, data dedicated to measurement is selected.

[0200] (2) If the quality of the measurement target path is good but the delay difference between the measurement target path and the main transmission path is large, measurement-only data or new data of a flow different from the flow currently being transmitted is selected.

[0201] (3) If the delay difference between the path to be measured and the main transmission path is small and the delay of the main transmission path has not worsened, select new data that has not yet been transmitted; if the delay difference between the path to be measured and the main transmission path is small and the delay of the main transmission path has worsened, select unacknowledged data.

[0202] The communication system may also include a communication quality database 20 that stores network quality results. In this case, the communication device 10 can select a path for data transmission based on the current unacknowledged response time and future path quality predicted from past results.

[0203] The following additional notes are provided regarding the above-described embodiments.

[0204] <Supplementary Notes> (Supplementary Item 1) A communication device used as a first communication device in a communication system in which data is transmitted from a first communication device to a second communication device via multiple paths, the communication device comprising: a scheduling unit that determines whether to switch the primary transmission path to another path by comparing an unacknowledged response time, which is a time related to the elapsed time from the transmission time of transmission data for which an acknowledgment has not been received, on a primary transmission path selected based on quality measured or predicted for each of the multiple paths, with a delay time on the primary transmission path or another path. (Supplementary Item 2) The communication device according to Supplementary Item 1, when switching from the pre-switching path to the primary transmission path is performed based on an increase in the unacknowledged response time on the pre-switching path, the scheduling unit selects data that was transmitted on the pre-switching path and for which an acknowledgment has not been received, as data to be transmitted on the primary transmission path. (Supplementary Item 3) The communication device according to Supplementary Item 1 or 2, wherein the scheduling unit selects, as measurement data to be transmitted via the measurement target path, measurement-dedicated data, data in a flow transmission buffer, or data transmitted via the main transmission path for which an acknowledgment has not been received, based on the most recent quality of the measurement target path. (Supplementary Item 4) A communication device used as the first communication device in a communication system in which data is transmitted from a first communication device to a second communication device via multiple paths, comprising: a scheduling unit that determines a main transmission path based on either an actual measurement value of communication quality or a predicted value of the communication quality, or both the actual measurement value and the predicted value, and switches the main transmission path to another path when deterioration of the actual measurement value is detected. (Supplementary Item 5) The communication device according to Supplementary Item 4, wherein the scheduling unit determines the main transmission path based on a degree of sufficiency of communication performance relative to the predicted value. (Supplementary Item 6) The communication device according to Supplementary Item 4, wherein the scheduling unit determines the main transmission path based on a relative ratio of the predicted value and a congestion degree of the path. (Supplementary Item 7) The communication device according to Supplementary Item 6, wherein the scheduling unit selects the primary transmission path with a predetermined quality index value that is minimum or maximum so as to equalize path utilization rates among paths.(Supplementary Item 8) A communication method executed by a communication device used as the first communication device in a communication system in which data is transmitted from a first communication device to a second communication device via multiple paths, comprising: determining whether to switch the main transmission path to another path by comparing an unacknowledged response time, which is a time related to the elapsed time from the transmission time of transmission data for which an acknowledgment has not been received, on a main transmission path selected based on quality measured or predicted for each of the multiple paths, with a delay time on the main transmission path or another path. (Supplementary Item 9) A communication method executed by a communication device used as the first communication device in a communication system in which data is transmitted from a first communication device to a second communication device via multiple paths, comprising: determining a main transmission path based on either an actual measurement value of communication quality or a predicted value of communication quality, or both the actual measurement value and the predicted value, and switching the main transmission path to another path when deterioration of the actual measurement value is detected. (Supplementary Item 10) A non-transitory storage medium storing a program for causing a computer to function as the communication device described in any one of Supplementary Items 1 to 7.

[0205] Although the present embodiment has been described above, the present invention is not limited to such a specific embodiment, and various modifications and changes are possible within the scope of the gist of the present invention described in the claims.

[0206] This patent application claims priority to PCT application PCT / JP2023 / 042903, filed on November 30, 2023, the entire contents of which are incorporated herein by reference.

[0207] REFERENCE SIGNS LIST 10 Communication device 11 Communication application 12 Multiplexing transport unit 13 Communication I / F 121 Flow transmission buffer 122 Packet scheduling unit 123 Congestion control unit 124 Path transmission buffer 125 Acknowledgement processing unit 1000 Drive device 1001 Recording medium 1002 Auxiliary storage device 1003 Memory device 1004 CPU 1005 Interface device 1006 Display device 1007 Input device 1008 Output device

Claims

1. A communication device used as a first communication device in a communication system in which data is transmitted from a first communication device to a second communication device via multiple paths, the communication device having a scheduling unit that determines whether to switch the main transmission path to another path by comparing an unacknowledged response time, which is the time elapsed from the transmission time of transmission data for which an acknowledgment has not been received, on a main transmission path selected based on the measured or predicted quality of each of the multiple paths, with a delay time on the main transmission path or another path.

2. The communication device according to claim 1, wherein when switching from the pre-switching path to the main transmission path is performed based on an increase in the unacknowledged response time on the pre-switching path, the scheduling unit selects data that has been transmitted on the pre-switching path and for which no acknowledgement has been received as data to be transmitted on the main transmission path.

3. The communication device according to claim 1, wherein the scheduling unit selects, based on the most recent quality of the path to be measured, measurement-only data, data in a flow transmission buffer, or data that has been transmitted via the main transmission path and for which no acknowledgement has been received, as measurement data to be transmitted via the path to be measured.

4. A communication device used as a first communication device in a communication system in which data is transmitted from a first communication device to a second communication device via multiple paths, the communication device having a scheduling unit that determines a main transmission path based on either an actual measurement value of communication quality or a predicted value of the communication quality, or both the actual measurement value and the predicted value, and switches the main transmission path to another path when deterioration of the actual measurement value is detected.

5. The communication device according to claim 4, wherein the scheduling unit determines the primary transmission path based on a degree of fulfillment of communication results relative to the predicted value.

6. The communication device according to claim 4, wherein the scheduling unit determines the primary transmission path based on a relative ratio of the predicted values ​​and a congestion degree of the path.

7. The communication device according to claim 6, wherein the scheduling unit selects the primary transmission path for which a predetermined quality index value is minimized or maximized so that the path utilization rates are equalized among the paths.

8. A communication method executed by a communication device used as a first communication device in a communication system in which data is transmitted from a first communication device to a second communication device via multiple paths, comprising a step of determining whether to switch the main transmission path to another path by comparing an unacknowledged response time, which is a time related to the elapsed time from the transmission time of transmission data for which an acknowledgment has not been received, on a main transmission path selected based on the quality measured or predicted for each of the multiple paths, with a delay time on the main transmission path or another path.

9. A communication method executed by a communication device used as a first communication device in a communication system in which data is transmitted from a first communication device to a second communication device via multiple paths, comprising the steps of: determining a main transmission path based on either an actual measurement value of communication quality or a predicted value of the communication quality, or both the actual measurement value and the predicted value; and switching the main transmission path to another path when deterioration of the actual measurement value is detected.

10. A program for causing a computer to function as the communication device according to any one of claims 1 to 7.