Communication device, communication method, and communication program

The communication device addresses sudden delays in mobile environments by calculating both observed and predicted delays to optimize data transmission, improving agility and redundancy in communication systems.

WO2025234186A1PCT designated stage Publication Date: 2025-11-13DENSO CORP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2025/005112
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-05-10
Filing Date
2025-02-17
Publication Date
2025-11-13

AI Technical Summary

Technical Problem

Existing communication systems fail to predict sudden delays in communication lines, leading to increased delays and packet loss when unexpected changes in communication quality occur, especially in mobile environments like vehicles, due to obstacles and congestion.

Method used

A communication device that calculates both observed and predicted delays to determine the best communication line for data transmission, using a transmitting unit, receiving unit, observed delay calculation, predicted delay calculation, line delay calculation, and transmission control to manage packet transmission and retransmission effectively.

Benefits of technology

This approach enhances the agility and redundancy of communication by promptly adapting to sudden delays, reducing congestion and ensuring timely data delivery by correctly identifying and utilizing stable communication lines.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2025005112_13112025_PF_FP_ABST
    Figure JP2025005112_13112025_PF_FP_ABST
Patent Text Reader

Abstract

A communication device (100) comprises: a transmitting unit (102) that uses a plurality of communication lines to transmit a packet to a partner device (200); a receiving unit (103) that receives, from the partner device, a confirmation response indicating that the packet has been received; an observed delay calculating unit (104) that, on the basis of the confirmation response, determines an observed delay of each communication line among the plurality of communication lines; a predicted delay calculating unit (105) that, if the confirmation response is not received, obtains a predicted delay using the elapsed time from the transmission time of the packet on each communication line to the current time; a line delay calculating unit (106) that sets the larger of the observed delay and the predicted delay as the line delay for each communication line; and a transmission control unit (107) that, on the basis of the line delays, determines a communication line from among the plurality of communication lines for transmitting the packet.
Need to check novelty before this filing date? Find Prior Art

Description

Communication device, communication method, and communication program CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application is based on Japanese Patent Application No. 2024-77567, filed on May 10, 2024, the contents of which are incorporated herein by reference.

[0002] The present application relates to a communication device that transmits data using multiple communication lines, for example, a communication device that transmits application data to a server using multiple communication lines from a communication device mounted on a mobile object such as an automobile.

[0003] When transmitting data from a communication device, using a multi-carrier communication device that can use multiple lines can shorten the data transmission time, and even if a communication failure or delay occurs on one line, communication can continue on another line. The speed and redundancy of such a multi-carrier communication device are particularly effective in vehicles that perform driving assistance or autonomous driving control.

[0004] In order to improve such speed and redundancy, for example, Patent Document 1 describes a technique for shortening communication time as much as possible.

[0005] JP 2017-73689 A

[0006] Here, the inventors have found the following problem after detailed investigation. When measuring delays in a communication line, it is common to calculate the delay time, i.e., the observed delay, from the time of data transmission and the time of receipt of an acknowledgment response from the other device. However, this method cannot predict sudden delays that occur unexpectedly. In particular, when a communication device moves, the communication environment changes due to obstacles such as buildings and handovers. Furthermore, congestion occurs when the device itself or surrounding devices transmit large amounts of data.

[0007] In such a situation, if a communication line with degraded communication quality due to a sudden delay is mistaken for a communication line with good communication quality and data continues to be sent, communication delays will increase further. Also, if a packet loss occurs and control is in place to retransmit the packet over a communication line other than the one where the packet loss occurred, if a sudden delay occurs on the other communication line, the arrival of the retransmitted packet will actually be delayed.

[0008] The present disclosure aims to improve the agility and redundancy of communication devices by using predicted delays in addition to observed delays.

[0009] A communication device according to one aspect of the present disclosure includes a transmitting unit that transmits a packet to a counterpart device using multiple communication lines; a receiving unit that receives an acknowledgement from the counterpart device indicating that the packet has been received; an observed delay calculation unit that calculates an observed delay for each of the multiple communication lines based on the acknowledgement; a predicted delay calculation unit that, if the acknowledgement is not received, calculates a predicted delay using the elapsed time from the transmission time of the packet for each of the communication lines to the current time; a line delay calculation unit that sets the larger of the observed delay and the predicted delay as the line delay for each of the communication lines; and a transmission control unit that determines a communication line from the multiple communication lines through which to transmit the packet based on the line delay.

[0010] a transmission control unit that determines a communication line from among the plurality of communication lines via which to transmit the packet, and a transmission unit that generates the confirmation response indicating that the packet has been received, the transmission unit having a first transmission unit that receives the confirmation response from the communication device, a first transmission unit that transmits the confirmation response to the communication device, and a second transmission unit that transmits the packet to a destination terminal device, the transmission unit having a second transmission unit that transmits the confirmation response to the communication device, and a transmission control unit that determines a communication line from among the plurality of communication lines via which to transmit the packet, the transmission unit having a first transmission unit that receives the confirmation response to the communication device, and a second transmission unit that transmits the packet to a destination terminal device, the transmission unit having a second transmission unit that transmits the confirmation response to the communication device, and a transmission control unit that determines a communication line from among the plurality of communication lines via which to transmit the packet, the transmission unit having a first transmission unit that transmits ... second transmission unit that transmits the confirmation response to the communication device, and a transmission control unit that determines a communication line from among the plurality of communication lines via which to transmit the packet, the transmission unit having a first transmission unit that transmits the confirmation response to the communication device, and a transmission control unit that determines a communication line from among the plurality of communication lines via which to transmit the packet, the transmission unit having a second transmission unit that transmits the confirmation response to the communication device, and a transmission control unit that determines a communication line from among the plurality of communication lines via which to transmit the packet, the transmission control unit having a second transmission unit that transmits the confirmation response to the

[0011] A communication method according to another aspect of the present disclosure is a communication method executed by a communication device that transmits a packet to a counterpart device using multiple communication lines, which receives an acknowledgement from the counterpart device indicating that the packet has been received, calculates an observed delay for each of the multiple communication lines based on the acknowledgement, and if the acknowledgement is not received, calculates a predicted delay using the elapsed time from the transmission time of the packet on each of the communication lines to the current time, sets the larger of the observed delay and the predicted delay as the line delay for each of the communication lines, determines a communication line from among the multiple communication lines to transmit a packet to be transmitted based on the line delay, and transmits the packet to the counterpart device.

[0012] A communication program according to another aspect of the present disclosure is a communication program executable by a communication device that transmits a packet to a counterpart device using multiple communication lines, the communication program causing the communication device to execute the following process: receive an acknowledgement from the counterpart device indicating that the packet has been received; calculate an observed delay for each of the multiple communication lines based on the acknowledgement; if the acknowledgement is not received, calculate a predicted delay using the elapsed time from the transmission time of the packet for each of the communication lines to the current time; set the larger of the observed delay and the predicted delay as the line delay for each of the communication lines; determine a communication line from among the multiple communication lines to transmit a packet to be transmitted based on the line delay; and transmit the packet to the counterpart device.

[0013] It should be noted that the numbers in parentheses in the claims indicate the correspondence between the present invention and the embodiments described below, and are not intended to limit the present invention.

[0014] With the above-described configuration, the communication device etc. of the present disclosure can improve the promptness and redundancy of the communication device by using the predicted delay in addition to the observed delay.

[0015] FIG. 1 is an explanatory diagram illustrating an overall configuration including a communication device 100 according to an embodiment, FIG. 2 is an explanatory diagram illustrating the layout of the communication device 100 according to an embodiment, FIG. 3 is a block diagram illustrating an example of the configuration of the communication device 100 according to an embodiment, FIG. 4 is an explanatory diagram illustrating line delay according to an embodiment, FIG. 5 is an explanatory diagram (conventional example) illustrating the operation of the communication device 100 when only observed delay is used in Example 1, FIG. 6 is an explanatory diagram illustrating the operation of the communication device 100 when observed delay and predicted delay are used in Example 1, and FIG. 7 is an explanatory diagram illustrating the operation of the communication device 100 when a packet lost due to random loss is retransmitted in Example 2. FIG. 8 is an explanatory diagram (conventional example) explaining the operation of the communication device 100 when retransmitting a packet lost due to random loss in Example 2; FIG. 9 is an explanatory diagram (conventional example) explaining the operation of the communication device 100 when retransmitting at a conventional timeout time in Example 4; FIG. 10 is an explanatory diagram explaining the operation of the communication device 100 when retransmitting at a timeout time in this example in Example 4; FIG. 11 is a block diagram explaining an example configuration of the counterpart device 200 of the embodiment; and FIG. 12 is a flow chart explaining the operation of the communication device 100 of the embodiment.

[0016] Hereinafter, embodiments of the present disclosure will be described with reference to the drawings.

[0017] The present invention described below refers to the invention described in the claims and is not limited to the following embodiments. Furthermore, at least the words in double quotation marks refer to the words described in the claims and are not limited to the following embodiments.

[0018] The configurations and methods recited in the dependent claims are optional configurations and methods in the inventions recited in the independent claims. The configurations and methods of the embodiments corresponding to the configurations and methods recited in the dependent claims, as well as the configurations and methods recited only in the embodiments without being recited in the claims, are optional configurations and methods in the present invention. The configurations and methods recited in the embodiments when the recitation of the claims is broader than the recitation of the embodiments are also optional configurations and methods in the present invention, in the sense that they are examples of the configurations and methods of the present invention. In either case, by being recited in the independent claims, they become essential configurations and methods of the present invention.

[0019] The effects described in the embodiments are effects obtained when the configurations of the embodiments are provided as examples of the present invention, and are not necessarily effects that the present invention has.

[0020] When there are multiple embodiments (including examples and control examples; the same applies in this paragraph), the configurations disclosed in each embodiment are not limited to each embodiment, but can be combined across the embodiments. For example, a configuration disclosed in one embodiment may be combined with another embodiment. Also, configurations disclosed in multiple embodiments may be collected and combined.

[0021] The problems described in this disclosure are not publicly known problems, but have been independently discovered by the inventors, and together with the configuration and method of this disclosure, these facts affirm the inventive step of the invention.

[0022] 1. Configurations Prerequisite for the Embodiments (1) Overall Configuration and Arrangement of Communication Devices First, the arrangement of communication devices in each embodiment will be described using FIGS. 1 and 2. First, an example of an overall configuration including a communication device 100 in an embodiment will be described using FIG. 1. This example illustrates a case where data is transmitted from a user terminal 10(N) (N: an integer assigned to each user terminal) used by a user to a destination terminal 20(M) (M: an integer assigned to each destination terminal). The user terminal 10(N) outputs data generated or acquired by the user terminal 10(N) to a client device. The client device divides the data into multiple packets, distributes the multiple packets over multiple communication lines, and transmits them to a server device. The server device rearranges the packets received from the multiple lines to restore the original data and transmits them to the destination terminal 20(M), which is the destination specified by the user terminal 10(N). The client device is, for example, a telematics control unit (TCU).

[0023] The client device distributes and transmits multiple packets across multiple communication lines, but the distribution method is arbitrary. For example, the client device determines the packets and the number of packets to be transmitted from each communication line so that the time it takes for the data to reach the server device is minimized. In this case, the client device may determine the number of packets and the number of packets based on, for example, the line delay of each communication line, the amount of in-flight data on each communication line, and the bandwidth of each communication line.

[0024] Furthermore, packets transmitted from the client device are assigned a first sequence number, which is a number incremented in the order of packets transmitted for each communication line, and a second sequence number, which is a number incremented in the order of packets constituting the data for each data flow. The flow is determined based on, for example, the IP address and port number of the source and the IP address and port number of the destination. In addition, a line number identifying the line and a flow identification number identifying the flow may be included. The server device can restore the data order of the packets received from the client device based on the second sequence number and transmit the restored packets to the destination terminal.

[0025] When the server device receives a packet from the client device, it transmits an acknowledgment (also called an ack) to the client device. The acknowledgment may be generated and transmitted each time a packet is received, or may include the reception status of multiple packets, or may be generated and transmitted periodically regardless of the reception status. Furthermore, an acknowledgment may be generated and transmitted for each communication line, or acknowledgments for all communication lines may be generated together and transmitted over one or more communication lines.

[0026] The content of the acknowledgment may be of any format or content as long as it can identify packets received by the server device and packets not received by the server device. In this embodiment, the acknowledgment includes the second sequence number of the received packet and is transmitted. For example, an acknowledgment in the format adopted by QUIC can be used.

[0027] The multiple communication lines may be communication lines using the same communication method or communication lines using different communication methods. For example, examples of wireless communication lines include IEEE 802.11 (Wi-Fi (registered trademark)), IEEE 802.16 (WiMAX (registered trademark)), W-CDMA (Wideband Code Division Multiple Access), HSPA (High Speed ​​Packet Access), LTE (Long Term Evolution), LTE-A (Long Term Evolution Advanced), 4G, 5G, etc., or DSRC (Dedicated Short Range Communication). In this embodiment, it is assumed that all of the multiple communication lines are wireless communication lines, but some or all of them may be wired communication lines. Examples of wired communication lines include LANs (Local Area Networks) such as Ethernet (registered trademark), the Internet, optical fiber lines, and fixed telephone lines.

[0028] The user terminal 10(N) and the client device may be integrated. Also, in this example, the client device divides the data into multiple packets, but the user terminal 10(N) may divide the data into multiple packets and output them to the client device. Note that the user terminal 10(N) and the destination terminal 20(M) may have any configuration in this embodiment.

[0029] In this example, when data is transmitted from a client device to a server device using an uplink, the client device corresponds to communication device 100 of the present embodiment, and the server device corresponds to counterpart device 200. Conversely, when data is transmitted from a server device to a client device using a downlink, the server device corresponds to communication device 100 of the present embodiment, and the client device corresponds to counterpart device 200. The communication device 100 and counterpart device 200 together form the communication system 1 of the present embodiment. Note that, in the case of using a downlink, when using the contents described in Chapter 1 (Configuration Prerequisite for the Embodiments), matters described as a client device should be interpreted as a server device, and matters described as a server device should be interpreted as a client device. For example, an acknowledgment response is generated by a client device that receives a packet, transmitted to the server device, and received by the server device.

[0030] Next, a case where the communication device 100 is mounted on a vehicle will be described using FIG. 2 . The communication device 100 is included in an electronic control system S consisting of multiple electronic control units (ECUs) mounted on a vehicle, which is a "mobile body," and is responsible for communication inside and outside the vehicle. The communication device 100 stores application data generated by an application running on the ECU in multiple packets and transmits the packets to a counterpart device 200 outside the vehicle. Here, a "mobile body" refers to a movable object, and may move at any speed. It also naturally includes a stationary mobile body. Examples include, but are not limited to, automobiles, motorcycles, bicycles, pedestrians, ships, aircraft, and objects mounted on these. "Mounted" includes not only a case where the device is directly fixed to the mobile body, but also a case where the device is not fixed to the mobile body but moves with the mobile body. For example, the device may be carried by a person riding on the mobile body, or may be mounted on cargo placed on the mobile body.

[0031] In this embodiment, the communication device 100 can communicate using, for example, multiple 5G lines operated by different telecommunications carriers, or can communicate in parallel using communication lines for three wireless communication methods: 5G, 4G, and Wi-Fi. Of course, the type and number of communication lines are arbitrary. Furthermore, an example of application data is image information acquired by an in-vehicle camera. Note that the data to be transmitted may be application data, software, or the program itself.

[0032] An embodiment of the present disclosure will be described below. This embodiment includes Examples 1 to 5. Furthermore, Example 1 includes Control Examples 1 to 3. In this embodiment, "arrival" refers to arrival at the other end of communication. Furthermore, "delivery" refers to transmission from the sending side and arrival at the other end of communication. The former is from the other end's perspective, and the latter is from the sending side's perspective, and both concepts include arrival at the other end. Furthermore, for both the delivery time and the arrival time, the time of arrival at the other end of communication may be used, or the time when an acknowledgment response is received, i.e., the time when it is confirmed that the message has arrived at the other end of communication, may be used. In the following embodiment, the time when an acknowledgment response is received is used for both the delivery time and the arrival time.

[0033] 3 is a block diagram showing the configuration of the communication device 100 according to this embodiment. The communication device 100 includes a transmission buffer 101, a transmitter 102, a receiver 103, an observed delay calculator 104, a predicted delay calculator 105, a line delay calculator 106, a transmission controller 107, and a retransmission decision unit 108.

[0034] The transmission buffer 101 receives and stores packets containing application data output from an external device, such as an ECU running an application, outside the communication device 100. The transmission buffer 101 may be a volatile memory such as a RAM, or a non-volatile memory such as a flash memory or a hard disk.

[0035] The transmitter 102 reads packets from the transmission buffer 101 and transmits the read packets to the counterpart device 200 using multiple communication lines. The reading of packets and the allocation of communication lines are in accordance with instructions from the transmission control unit 107, which will be described later. In FIG. 3, there are L communication lines, numbered 1 to L. Note that a packet for which a communication line to be used for transmission is determined based on the line delay of this embodiment, which will be described later, is referred to as a "packet to be transmitted" as necessary.

[0036] The receiving unit 103 receives an acknowledgment from the other device 200 indicating that the other device 200 has received the packet transmitted from the transmitting unit 102. The acknowledgment includes a sequence number indicating the received packet, allowing the communication device 100 to identify packets that were successfully transmitted and received. Either a first sequence number or a second sequence number may be used as the sequence number notified in the acknowledgment. For example, by recording the correspondence between the first sequence number and the second sequence number when transmitting a packet in the communication device 100, regardless of whether the sequence number notified in the acknowledgment is the first sequence number or the second sequence number, the communication device 100 can check the correspondence to determine both the packet delivery status for each line and the packet delivery status for each flow. In this embodiment, a case where the second sequence number is included will be described. Alternatively, a selective acknowledgment (SACK) may be used as the acknowledgment. According to SACK, the range of packets received by counterparty device 200 is notified to the sender, so that communication device 100 can easily identify packets that counterparty device 200 was unable to receive and can retransmit the packets if necessary. Note that receiving unit 103 also receives the bandwidth estimation result of counterparty device 200. For example, counterparty device 200 can estimate the upstream communication bandwidth (transmission bandwidth) of each line based on information about the reception interval and reception size when receiving packets transmitted from communication device 100.

[0037] The observed delay calculation unit 104 calculates the "observed delay" of each of the multiple communication lines based on the "acknowledgements" received by the receiving unit 103. For example, the observed delay calculation unit 104 calculates the difference (R1-S1) between the transmission time S1 at which a certain packet is transmitted and the reception time R1 at which an acknowledgment for that packet is received, and sets this as the observed delay. If there are multiple packets for which an acknowledgment has been received, it is desirable to use the transmission and reception time of the most recent packet. If the acknowledgment includes information on the reception time R2 at which the packet was received by the other device 200 and the transmission time S2 at which the acknowledgment for that packet was transmitted, the difference (S2-R2) may be subtracted from the difference (R1-S1) to set the observed delay. The difference (S2-R2) is called the acknowledgment delay (Ack Delay) and is the time required for internal processing in the other device 200. Therefore, by subtracting this difference, the delay caused by the communication line can be calculated more accurately. If the acknowledgement contains a value equivalent to the difference (S2-R2), it can be directly subtracted from the difference (R1-S1). Here, "based on the acknowledgement" includes not only the case where it is based on the information contained in the acknowledgement, but also the case where it is based on the status of the acknowledgement itself, such as the time of receipt of the acknowledgement or the status of receipt of the acknowledgement. "Observed delay" refers to the delay time calculated based on the actual measured time or time.

[0038] If the receiving unit 103 has not yet received an acknowledgment, the predicted delay calculation unit 105 calculates an "estimated delay" using the elapsed time from the transmission time of the packet on each communication line to the "current time." Examples of cases in which the receiving unit 103 has not received an acknowledgment include, but are not limited to, when there is a packet whose delivery status to the other device 200 has not been determined based on the acknowledgment, or when there is an in-flight packet. Regarding the method of calculating the predicted delay, for example, if the transmitting unit 102 has transmitted a packet but the receiving unit 103 has not received an acknowledgment for that packet, the predicted delay calculation unit 105 calculates the difference (T-S1) between the transmission time S1 at which the packet was transmitted and the current time T, and uses this as the predicted delay. The difference (T-S1) is used as the predicted delay because it includes an assumption or estimation that the line delay is at least (T-S1) or greater. If there are multiple packets for which an acknowledgment has not been received, the transmission time of the oldest packet is used. The current time T may be set either periodically or irregularly. For example, the predicted delay may be calculated every second or every time an acknowledgment is received, or the predicted delay may be calculated for each application data at the start of transmission of the application data. Here, the "current time" may be the time for which the predicted delay is calculated or a time close to that time, and may be, for example, a predetermined time (e.g., one second) before the current time. "Used" means that the calculation for calculating the predicted delay includes a term corresponding to the elapsed time. In other words, it is sufficient that the calculation is based on the elapsed time. "Predicted delay" refers to a delay time calculated using assumptions or estimates.

[0039] Note that a one-way delay may be added to (T-S1) to obtain the predicted delay. The fact that communication device 100 has not received an acknowledgment means that the packet has not been received at the time when counterpart device 200 transmits the acknowledgment. Even if the packet arrives at counterpart device 200 immediately after transmitting the acknowledgment, an extra one-way delay will be incurred. The one-way delay required for communication device 100 to receive the acknowledgment transmitted by counterpart device 200 can be calculated by (reception time of acknowledgment - transmission time of acknowledgment), but this may also be substituted by (observed delay / 2). Alternatively, a constant α may be multiplied by (T-S1) to obtain the predicted delay. The constant α is, for example, a value between 1.1 and 1.2. By multiplying by such a constant α, a certain margin is provided in the predicted delay, allowing the predicted delay to be closer to the actual value.

[0040] As described above, line delay may increase suddenly due to congestion, obstructions, handover, etc. The predicted delay in this embodiment is calculated without depending on the reception of an acknowledgment response, and therefore is a value that reflects sudden delays that occur in the communication line.

[0041] The line delay calculation unit 106 calculates the larger of the observed delay calculated by the observed delay calculation unit 104 and the predicted delay calculated by the predicted delay calculation unit 105, and sets this as the line delay of each communication line. In other words, when no sudden delay occurs, the observed delay is larger than the predicted delay, but when a sudden delay occurs, the predicted delay becomes larger than the observed delay. Therefore, by setting the larger of the observed delay and the predicted delay as the line delay, when a delay due to a sudden delay occurs, the sudden delay can be reflected in the line delay.

[0042] Specific examples of observed delay, predicted delay, and line delay in this embodiment will be described using FIG. 4. In this embodiment, the observed delay, predicted delay, and line delay are calculated for each communication line. However, FIG. 4 focuses on one communication line and explains how to calculate the observed delay, predicted delay, and line delay. FIG. 4(a) shows information transmitted and received between communication device 100 and counterpart device 200 and the transmission and reception times. For example, communication device 100 transmits packet 1 at transmission time t1a, and counterpart device 200 receives it at reception time t1b. Then, counterpart device 200 transmits acknowledgment response 1 (ACK1 in the figure) corresponding to packet 1 at transmission time t2b, and communication device 100 receives it at reception time t3a. The same applies to packets 2 and 3, and ACK2 corresponding to packet 2. It is assumed that ACK3 corresponding to packet 3 has not yet been transmitted.

[0043] At time t1, the observed delay calculation unit 104 calculates the observed delay using packet 1, which has been delivered by t1, and its corresponding acknowledgment, as follows: Observed delay (t1) = (t3a - t1a) - (t2b - t1b) Furthermore, at time t1, the packet for which no acknowledgment has been received is packet 2, so the predicted delay calculation unit 105 calculates the predicted delay using packet 2 as follows: Predicted delay (t1) = t1 - t2a Then, the line delay calculation unit 106 calculates the line delay using the observed delay (t1) and the predicted delay (t1): At time t1, the observed delay (t1) is greater than the predicted delay (t1), so: Line delay (t1) = max (observed delay (t1), predicted delay (t1)) = (t3a - t1a) - (t2b - t1b)

[0044] At time t2, the observed delay calculation unit 104 calculates the observed delay using packet 1, whose transmission and reception was completed by t2, and its corresponding acknowledgment, as follows: Observed delay (t2) = (t3a - t1a) - (t2b - t1b) Furthermore, at time t2, the packets for which no acknowledgment has been received are packet 2 and packet 3, so the predicted delay calculation unit 105 uses packet 2, which is the oldest in terms of time, to calculate the predicted delay as follows: Predicted delay (t2) = t2 - t2a Then, the line delay calculation unit 106 calculates the line delay using the observed delay (t2) and the predicted delay (t2): At time t2, the predicted delay (t2) is greater than the observed delay (t2), so: Line delay (t2) = max (observed delay (t2), predicted delay (t2)) = t2 - t2a In other words, since the communication device 100 detects the sudden delay based on the predicted delay at time t2, it can use the line delay that reflects the sudden delay to determine the transmission order of packets to be sent thereafter and the communication line to be used.

[0045] At time t3, the observed delay calculation unit 104 calculates the observed delay using packet 2, which is the most recent in terms of time, of packets 1 and 2 and their corresponding acknowledgments that have been transmitted and received by t3, and the acknowledgment response corresponding to it, as follows: Observed delay (t3) = (t5a - t2a) - (t4b - t3b) Furthermore, at time t3, the packet for which no acknowledgment response has been received is packet 3, so the predicted delay calculation unit 105 calculates the predicted delay using packet 3 as follows: Predicted delay (t3) = t3 - t4a Then, the line delay calculation unit 106 calculates the line delay using the observed delay (t3) and the predicted delay (t3) as follows: At time t3, the observed delay (t3) is greater than the predicted delay (t3), so: Line delay (t3) = max (observed delay (t3), predicted delay (t3)) = (t5a - t2a) - (t4b - t3b) In other words, the communication device 100 receives an acknowledgment response for the packet delayed due to the sudden delay at time t3, and detects the sudden delay through the observed delay, so it can use the line delay that reflects the sudden delay to determine the transmission order of the packets to be sent thereafter and the communication line to be used.

[0046] In this way, by using the delay prediction of this embodiment, sudden delays in the communication line can be detected early and reflected in the line delay, so that the transmission and reception of application data can be controlled to finish earlier.Furthermore, the load on the communication line where the sudden delay occurred can be reduced more quickly, so that the worsening or occurrence of congestion on the communication line can be prevented.

[0047] Returning to FIG. 3 , the transmission control unit 107 determines a communication line from among the multiple communication lines through which to transmit a to-be-sent packet based on the line delay calculated by the line delay calculation unit 106. Similarly, when multiple to-be-sent packets are transmitted, the transmission control unit 107 determines a communication line through which to transmit each to-be-sent packet. That is, based on the line delay, the transmission control unit 107 determines, for multiple to-be-sent packets constituting application data, from which of the multiple existing communication lines to transmit the number or amount of to-be-sent packets. A specific example of a control method for the transmission control unit 107 will be described later. The transmission control unit 107 then instructs the transmitting unit 102 to transmit the to-be-sent packets, and the transmitting unit 102 reads the to-be-sent packets from the transmission buffer 101 and transmits the read to-be-sent packets to the counterpart device 200.

[0048] The retransmission determination unit 108 determines to retransmit a packet when it detects packet loss based on an acknowledgment, or when it does not receive an acknowledgment for the packet even after a predetermined time has passed since the packet was transmitted. For example, if a sequence number is not included in the acknowledgment, the retransmission determination unit 108 determines that the packet corresponding to that sequence number has been lost due to random loss. For example, if delivery completion cannot be confirmed even after the delivery completion time predicted at the time of transmission has passed, the retransmission determination unit 108 determines that the packet corresponding to that sequence number has been lost due to tail loss. Based on the determination result, the retransmission determination unit 108 then instructs the transmission control unit 107 to retransmit the lost packet, and the transmission control unit 107 determines the communication line over which to retransmit the packet based on the determination result in addition to line delay.

[0049] (a) Example 1 of the Transmission Control Unit (Initial Transmission Packet and Retransmission Packet Based on Tail Loss Determination) This example relates to a method for transmitting an initial transmission packet and a retransmission packet when a tail loss determination has occurred. First, a description will be given of control for minimizing the time it takes for application data to reach the counterpart device 200. The transmission control unit 107 determines how many or how much packets to transmit from which communication line among multiple existing communication lines, so that the time it takes for application data stored in multiple packets to reach the counterpart device 200 is minimized. For example, when all application data is transmitted over line i at time t, the time required to confirm delivery completion is represented as Ci(t), and the following holds: Ci(t) = U(t) / Bi(t) + max(Di(t), Ii(t) / Bi(t)) ... (Formula 1) where U(t): unsent data size (bit) at time t Bi(t): transmission bandwidth (bit / s) of line i at time t Di(t): line delay (s) of line i at time t Ii(t): in-flight size (bit) of line i at time t Note that the in-flight size is the amount of data on the network, and more specifically, the data size of packets that have been sent but whose delivery status has not been confirmed.

[0050] In this embodiment, the value of the line delay calculated by the line delay calculation unit 106 is used for Di(t). Then, based on equation (1), the number of lines to be used that will minimize the time until delivery of unsent data is completed and the shortest time when using these number of lines are calculated. Specifically, the delivery completion time is calculated while increasing the number of lines to be used in order of the shortest time Ci(t) required to complete delivery when using only each line, and the combination of lines with the shortest delivery completion time is calculated. Then, based on this shortest time, the amount of data to be transmitted from each communication line at time t is calculated.

[0051] First, using FIG. 5, the operation of the communication device 100 when only conventional line delay, i.e., observed delay, is used for Di(t). Note that in the description of FIG. 5, conventional line delay is referred to as observed delay to distinguish it from the present embodiment. Also, in FIG. 5, packets on the transmitting side are assigned a second sequence number to distinguish them. The shape of the packets received on the receiving side is depicted taking into account the bandwidth of each communication line. That is, the vertical axis of the rectangular parallelepiped represents the bandwidth, and the horizontal axis represents the time required for reception. The same applies to the other figures. First, assume that at time t0, 14 packets of application data are stored in the transmission buffer 101 waiting to be transmitted. These packets are not retransmission packets but initial transmission packets to be transmitted for the first time. Then, when packets are distributed to three lines and transmitted, the case where the time until the 14 packets reach their destination is minimized is calculated based on (Equation 1). In the case of Figure 5, it is decided that packets 1, 2, 3, 4, 8, 9, 10, and 11 will be transmitted on line 1, packets 5, 6, 12, and 13 on line 2, and packets 7 and 14 on line 3. In Figure 5, the white rectangles indicate the initially transmitted packets. At time t0, no sudden delay has occurred on any of the lines, so each line is transmitting its assigned packets as scheduled.

[0052] At time t1, the observed delay on line 1 can be calculated as follows: Observed Delay = (tc3 - tc1) - (ts2 - ts1) tc1: Transmission time of packet 4 tc3: Reception time of the acknowledgment including the receipt report of packet 4 ts1: Reception time of packet 4 ts2: Transmission time of the acknowledgment including the receipt report of packet 4 The acknowledgment is not generated and transmitted for each packet, but is generated and transmitted at regular intervals, including the identification numbers of the packets received up to that point. For example, the acknowledgment transmitted from the counterparty device 200 at time ts2 and received by communication device 100 at time tc3 contains the identification numbers of packets 1 to 4. The acknowledgment also includes the second sequence numbers of the packets received on lines 2 and 3, but this is not shown in the description of FIG. 5. Furthermore, acknowledgments are also transmitted on lines 2 and 3, but this is not shown in FIG. 5.

[0053] At time t2, the observed delay for line 1 can be calculated as follows: Observed Delay = (tc4 - tc1) - (ts3 - ts1) tc1: Transmission time of packet 4 tc4: Reception time of acknowledgment including receipt report for packet 4 ts1: Reception time of packet 4 ts3: Transmission time of acknowledgment including receipt report for packet 4 At time t2, packet 8 has not yet arrived at the other device 200, so the identification numbers of packets 1 to 4 are stored in the acknowledgment sent at time ts3 and received at time tc4. Therefore, this acknowledgment is used to calculate the observed delay. However, since the observed delay calculated at time t1 and the observed delay calculated at time t2 are both the observed delay for packet 4, they are basically almost the same value. In other words, even though packets 8 and onward are delayed due to sudden delay at time t2, the observed delay is not updated.

[0054] Then, since communication device 100 has not received any acknowledgments for packets 8 and onward at time t2, retransmission decision unit 108 determines that packets 8 and onward have tail loss. Then, based on the line delay, transmission control unit 107 redistributes the packets deemed to have been lost due to tail loss to each line as retransmission packets. However, because the observed delay has not been updated, the packets are distributed in the same way as when the initial packets were transmitted, and many retransmission packets are assigned to line 1, whose communication quality has deteriorated due to the sudden delay. In Figure 5, black rectangles indicate retransmission packets.

[0055] At time t4, the observed delay can be calculated as follows: Line delay = (tc6 - tc2) - (ts6 - ts5) tc2: Transmission time of packet 8 tc6: Reception time of acknowledgment including receipt report for packet 8 ts5: Reception time of packet 8 ts6: Transmission time of acknowledgment including receipt report for packet 8 At time t4, packet 8 has arrived at counterparty device 200 and communication device 100 has received the acknowledgment for packet 8, so the observed delay of packet 8 can be determined. The measured observed delay is a value that reflects the sudden delay of packet 8. However, because packets after packet 8 have already been retransmitted on line 1, there will be a significant delay before these packets arrive at counterparty device 200.

[0056] In other words, if the line to which a retransmission packet should be assigned is determined based solely on observed delays, the timing of detecting a sudden delay will be delayed, resulting in a line with degraded communication quality being mistaken for the line with the best quality and the retransmission packet being assigned to that line. This can cause congestion and further increase delays. Furthermore, since it is necessary to wait for the delayed packets to arrive, the time when the delivery of application data is completed will be delayed.

[0057] Next, the operation of the communication device 100 when the line delay of this embodiment, that is, the larger of the observed delay and the predicted delay, is set as the line delay for Di(t) will be described with reference to Fig. 6. In the description of Fig. 6, the line delay refers to the line delay calculated by the line delay calculation unit 106.

[0058] At time t1, the line delay for line 1 can be calculated as follows: Line delay = max((tc3 - tc1) - (ts2 - ts1), (t1 - tc2)) = (tc3 - tc1) - (ts2 - ts1) tc1: transmission time of packet 4 tc3: reception time of acknowledgment response including reception report of packet 4 ts1: reception time of packet 4 ts2: transmission time of acknowledgment response including reception report of packet 4 tc2: transmission time of packet 8 At time t1, the observed delay is greater than the predicted delay, so the line delay is the value of the observed delay.

[0059] At time t2, the line delay for line 1 can be calculated as follows: Line delay = max((tc4 - tc1) - (ts3 - ts1), (t2 - tc2)) = (t2 - tc2) tc1: transmission time of packet 4 tc4: reception time of acknowledgment response including reception report of packet 4 ts1: reception time of packet 4 ts3: transmission time of acknowledgment response including reception report of packet 4 tc2: transmission time of packet 8 At time t2, the predicted delay is greater than the observed delay, so the line delay is the value of the predicted delay.

[0060] 5 , since the communication device 100 has not received any acknowledgements for packets 8 and onward at time t2, the retransmission determination unit 108 determines that packets 8 and onward are tail loss. Then, when retransmitting packets deemed to have been lost due to tail loss based on the line delay, the transmission control unit 107 uses equation (1) to determine from which of multiple communication lines the number or amount of packets to transmit. In this embodiment, the predicted delay value is used as the line delay, so the quality degradation of line 1 is reflected. In other words, the transmission control unit 107 allocates retransmission packets to lines 2 and 3, which have better communication quality than line 1. As a result, the delivery completion time of the application data becomes earlier than in the case of FIG. 5 .

[0061] As described above, when the line delay of this embodiment is used to determine the line to which the retransmission packet is to be assigned, the timing for detecting the sudden delay is accelerated, so that the line with degraded communication quality can be correctly recognized early and the retransmission packet can be assigned. As a result, the delivery of the application data can be completed without waiting for the packet initially transmitted on line 1 to arrive at the other device 200, thereby shortening the time required for the delivery of the application data.

[0062] (Control Example 1) In FIG. 6 , the transmission control unit 107 determines the communication line for transmitting retransmission packets using the line delay of this embodiment. That is, if the sudden delay on line 1 is not so large, some retransmission packets may also be allocated to line 1. In FIG. 6 , the reason why retransmission packets are not allocated to line 1 is because the line delay on line 1 is large, and this does not mean that the allocation of retransmission packets to line 1 is excluded. This control can be applied not only to retransmission packets but also to initial transmission packets. That is, in the case of FIG. 6 , the transmission control unit 107 determines the communication line for transmitting packets from among multiple communication lines, including communication lines whose predicted delay is "larger" than the observed delay. In this case, the degree of sudden delay is also taken into consideration when allocating retransmission packets and initial transmission packets, thereby enabling effective use of communication resources of the communication lines. Here, "larger than" includes both cases where the comparison targets are equal (≦) and cases where they are not (<).

[0063] (Control Example 2) Conversely, it is also possible to prevent retransmission packets from being allocated to communication lines where the predicted delay is greater than the observed delay. This control can be applied not only to retransmission packets but also to initial transmission packets. In other words, the transmission control unit 107 determines a communication line for transmitting packets from among multiple communication lines, excluding communication lines where the predicted delay is "greater" than the observed delay. In this case, by excluding a communication line where a sudden delay is occurring as an unstable line from the communication lines to which retransmission packets or initial transmission packets are allocated, it is possible to transmit retransmission packets or initial transmission packets only over stable communication lines.

[0064] (Control Example 3) In addition, in Figure 6, it is determined that tail loss has occurred on line 1, but the reason why retransmission packets are not allocated to line 1 is that it is determined that the occurrence of tail loss is not the direct cause, but rather that the line delay on line 1 is large and that using another line would shorten the time required to deliver application data. However, it is also possible to consider the communication line where tail loss is occurring as having a sudden delay and not allocate a retransmission packet to it. In other words, the transmission control unit 107 determines the communication line to which the packet will be retransmitted from among multiple communication lines excluding the communication line where tail loss has occurred. In this case, by excluding the communication line where tail loss is occurring from the communication lines to which retransmission packets are allocated as it is highly likely that a sudden delay is occurring in the communication line where tail loss is occurring, it is possible to transmit retransmission packets only over stable communication lines.

[0065] (Combination of Control Examples) Control Example 1 and Control Example 3 can be combined. Control Example 2 and Control Example 3 can also be combined.

[0066] (b) Second Embodiment of the Transmission Control Unit (Retransmission Packet Based on Random Loss Judgment) This embodiment relates to a method for transmitting a retransmission packet when a random loss occurs. As with the first embodiment, this embodiment also controls so that the time it takes for application data to arrive at the other device 200 is minimized. The calculation used for the control in this embodiment is also based on (Equation 1) in the first embodiment, and the value of the line delay calculated by the line delay calculation unit 106 is used for Di(t). Then, the number of lines in use when the time until the unsent data has completely arrived and the time in that case are calculated, and the amount of data to be transmitted from each communication line at time t is calculated.

[0067] First, a conventional method for transmitting a retransmitted packet when a random loss is detected will be described with reference to Fig. 7. The conventional method for transmitting a retransmitted packet is assumed to be performed over a line different from the line on which the packet loss occurred.

[0068] First, assume that at time t0, 14 packets of application data are stored in the transmission buffer 101 waiting to be transmitted. These packets are not retransmission packets but initial transmission packets to be transmitted for the first time. When packets are to be distributed to three lines and transmitted, the case where the time until the 14 packets have arrived is minimized is calculated based on (Equation 1). In the case of Figure 5, it is determined that packets 1, 2, 3, 4, 8, 9, 10, and 11 will be transmitted over line 1, packets 5, 6, 12, and 13 over line 2, and packets 7 and 14 over line 3. In Figure 5, the white rectangles indicate initial transmission packets.

[0069] 7, it is assumed that packets 4 and 10 transmitted over line 1 and packet 12 transmitted over line 2 are lost due to random loss and do not arrive at the other party's device 200. In this case, the sequence number of packet 4 is missing from the most recently received acknowledgment (ack1) at time t1. In this case, retransmission decision unit 108 detects the packet loss of packet 4 and determines that it is a random loss. Then, transmission control unit 107 transmits packet 4 over line 2 or line 3, where no packet loss has occurred. In the case of FIG. 7, packet 4 is transmitted over line 2, which has a wider transmission bandwidth and better communication quality. In FIG. 7, black rectangles indicate retransmitted packets.

[0070] At time t2, the most recently received acknowledgment (ack2) is missing the sequence numbers of packets 10 and 12. In this case, the retransmission decision unit 108 detects packet loss of packets 10 and 12 and determines that the loss is random. The retransmission decision unit 108 then transmits packets 10 and 12 over line 3, where no packet loss has occurred.

[0071] However, in the case of random loss, it is not necessarily the case that the quality of the communication line on which the packet loss was detected has deteriorated. Nevertheless, if retransmission is performed over a communication line other than the communication line on which the packet loss was detected, there is a possibility that the completion of retransmission will be delayed. Therefore, in this embodiment, the communication line on which the packet loss occurred is not excluded, and the communication line to be used for retransmission is determined based on the line quality evaluated based on the line delay of this embodiment. In other words, the transmission control unit 107 determines the communication line on which to retransmit the packet based on the communication quality from among multiple communication lines, including the communication line on which the packet loss occurred.

[0072] Next, a method for transmitting retransmission packets in this embodiment when a random loss is detected will be described with reference to Fig. 8. The allocation of the initially transmitted packets at time t0 and the packets lost due to random loss are assumed to be the same as those in Fig. 7.

[0073] At time t1, the retransmission determination unit 108 detects packet loss of packet 4 and determines that it is a random loss. Then, the transmission control unit 107 determines the communication line for retransmitting packet 4 from among the communication lines, including line 1 on which the packet loss occurred. In FIG. 8 , since no sudden delay occurred on any line, line 1 is determined to have the widest transmission bandwidth and the best communication quality. Therefore, based on (Equation 1), line 1 is selected because it takes the shortest time to reach the counterpart device 200.

[0074] At time t2, retransmission determination unit 108 detects packet loss of packets 10 and 12 and determines that the loss is random. Retransmission determination unit 108 then determines the communication line for retransmitting packets 10 and 12 from among the communication lines including line 1 and line 2 on which the packet loss occurred. In Fig. 8, line 1 is selected because it takes the shortest time to reach counterparty device 200, based on (Equation 1).

[0075] 8, no sudden delay occurred on any of the lines, but if a sudden delay occurs, the sudden delay is reflected in the line delay, and therefore, the communication line for transmitting the retransmission packet will naturally be selected taking this into consideration. In this case, as in Control Example 1 of Embodiment 1, the communication line for transmitting the retransmission packet may be determined from among a plurality of communication lines including a communication line in which the predicted delay is larger than the observed delay, or as in Control Example 2 of Embodiment 1, the communication line for transmitting the retransmission packet may be determined from among a plurality of communication lines excluding a communication line in which the predicted delay is larger than the observed delay.

[0076] As described above, when the line to which a retransmission packet is to be assigned is determined using the line delay of this embodiment, the retransmission packet can be assigned to a communication line whose communication quality is not degraded. In particular, since the line delay of this embodiment is used, the timing for detecting a sudden delay is accelerated, and a line whose communication quality has degraded can be correctly recognized early and a retransmission packet can be assigned.

[0077] (c) Third Embodiment of the Transmission Control Unit (Allowable Delay Time or Expiry Date of Application Data) When real-time performance is required for application data, an allowable delay time or expiration date of the application data may be set. In this case, the communication device 100 must transmit the application data so that it arrives within the allowable delay time. However, when the application data is stored in multiple packets and transmitted sequentially, degradation of the communication line may cause the packets to take a long time to transmit, and some of the packets may not arrive within the allowable delay time.

[0078] In such a case, the estimated arrival time of the packet can be calculated by using the larger of the observed delay and the predicted delay as the line delay, as in the present embodiment. That is, if the packet has an allowable delay time, the transmission control unit 107 stops transmitting packets that cannot arrive at the other device 200 at the allowable delay time based on the line delay calculated by the line delay calculation unit 106. As a result, packets that are predicted to exceed the allowable delay time are not transmitted, so that the communication line can be avoided from being used to transmit data whose utility value has decreased, and communication line resources can be used effectively.

[0079] In this embodiment, the line delay is defined as the time from the transmission time of a packet to the time the acknowledgement for that packet is received, but a one-way delay may be used instead. In this case, for example, the line delay calculated by the line delay calculation unit 106 may be multiplied by 1 / 2.

[0080] (d) Example 4 of the Transmission Control Unit (Setting of Timeout Time) As in Example 3, when the allowable delay time or expiration time of application data is determined, the communication device 100 must transmit the application data so that it arrives by the allowable delay time. However, since the timing of determining retransmission in the past was determined based on observed delay, there were cases where retransmission was wasted if the data arrived at the counterpart device 200 by the allowable delay time despite being delayed due to a sudden delay.

[0081] First, using Figure 9, we will explain the case of retransmission at the conventional timeout time. For example, suppose a sudden delay occurs in the transmission of packets 3 and onwards on line 1. Timeout time A, which is the timing for deciding to retransmit in the past, is the point in time when the observed delay multiplied by a constant β has elapsed since tc1, the transmission time of packet 3. In other words, in the past, if an acknowledgement for packets 3 and 4 had not been received at timeout time A, packets 3 and 4 would be retransmitted at timeout time A on line 2, which has the best communication quality of the lines where no packet loss has been observed. Timeout time A = tc1 + observed delay × β tc1: transmission time of packet 3 β: constant between 1.1 and 1.5

[0082] Here, the deadline time is the final time by which communication device 100 must confirm that each packet transmitted has been delivered to counterpart device 200, and is the time obtained by adding the allowable delay time and one-way delay specified for each packet to the time at which the application data packet is received in transmission buffer 101 of communication device 100. If a sudden delay occurs and initially transmitted packets 3 and 4 do not arrive by the deadline, as in case 2, retransmission on line 2 results in packets 3 and 4 arriving by the deadline, and therefore the retransmission can be considered appropriate. However, if initially transmitted packets 3 and 4 arrive by the deadline, as in case 1, they overlap with packets 3 and 4 retransmitted on line 2, resulting in a waste of retransmission. This is because the timeout time A, which is the timing for determining retransmission in the past, was determined based on observed delay.

[0083] Therefore, in this embodiment, the line delay of this embodiment is used to set the timeout time. A case where retransmission is performed at timeout time B of this embodiment will be described using FIG. 10 . First, as in this embodiment, the packets and the number of packets to be transmitted from each communication line are determined so as to minimize the time it takes for one or more packets to reach the other device 200. Furthermore, assuming that each packet cannot be delivered by the deadline, the time required to retransmit each packet over the line with the best communication quality among the lines excluding the line used for the initial transmission (hereinafter referred to as the other line retransmission time) is set as timeout time B. The other line retransmission time can be calculated by substituting the retransmission data size for U(t) in Equation 1, which has already been explained. In this embodiment, since line 2 has the second best communication quality after line 1, it is determined that packets 3 and 4 will be transmitted over line 2. Then, timeout time B is set as follows: timeout time B = deadline time - other line retransmission time. If an acknowledgement for packets 3 and 4 has not been received at timeout time B, packets 3 and 4 are retransmitted over line 2. As a result, it is possible to complete delivery of packets 3 and 4 to the other device 200 by the deadline.

[0084] In this way, by setting timeout time B to an appropriate time based on the line delay of this embodiment, it is possible to complete retransmission within the allowable delay while reducing unnecessary retransmission. For example, even if the completion of delivery of packets 3 and 4 exceeds the delivery completion time predicted at the time of transmission (= timeout time A) due to a sudden delay occurring on line 1, retransmission can be avoided if delivery completion can be confirmed by timeout time B (i.e., the time at which delivery can be completed by the deadline by retransmission via another line).

[0085] In the fourth embodiment, the deadline time was defined as the final time by which the communication device 100 must confirm that each packet has been delivered to the counterpart device 200. In this case, the communication device 100 was required to receive the acknowledgment responses for packets 3 and 4 by the deadline time. Alternatively, the deadline time may be defined as the final time by which each packet must arrive at the counterpart device 200. In this case, packets 3 and 4 must arrive at the counterpart device 200 by the deadline time, and this time can be calculated by adding the allowable delay time specified for each packet to the time at which the application data packets are received in the transmission buffer 101 of the communication device 100. In the fourth embodiment, the timeout time B was calculated when the packet was first transmitted. However, if a change in the communication quality of each line is observed after the packet transmission, the timeout time B may be updated by recalculating the retransmission time for the other line based on the changed communication quality.

[0086] (e) Example 5 of the Transmission Control Unit The line delay of this embodiment can be used for any control, but it is not essential to use it in all controls. For example, when line delay is used for congestion control, conventional observed delay may be used for the following reasons.

[0087] An example of congestion control is TCP's BBR (Bottleneck Bandwidth and Round-trip propagation time). BBR adjusts the congestion window size using two indicators, RTprop (Round-Trip propagation time) and BtlBw (Bottleneck Bandwidth), i.e., line delay and line bandwidth. In other words, by applying a load of line delay x line bandwidth, line bandwidth can be used most efficiently without causing congestion.

[0088] However, if the line delay of this embodiment is applied to the line delay in this case, a load equivalent to the delay taking into account sudden delay multiplied by the line bandwidth will be applied, increasing the possibility of causing congestion.

[0089] Therefore, the line delay used when performing congestion control is not the line delay that takes into account the predicted delay of this embodiment, but the line delay based only on the observed delay. It is preferable to use SRTT (Smoothed RTT) as the line delay based only on the observed delay. With SRTT, even if the RTT value changes significantly from the most recently used RTT measurement value, the rate of change is suppressed by smoothing processing, so using this for congestion control reduces the possibility of causing congestion.

[0090] 11 is a block diagram showing the configuration of the counterpart device 200 in this embodiment. The counterpart device 200 includes a receiving unit 201, an acknowledgment response generating unit 202, a first transmitting unit 203, a receiving buffer 204, and a second transmitting unit 205.

[0091] The receiving unit 201 receives packets transmitted from the communication device 100 via a plurality of communication lines.

[0092] The acknowledgment generation unit 202 generates an acknowledgment indicating that the receiving unit 201 has received a packet. The acknowledgment may be generated for each packet or for multiple packets. The acknowledgment may also be generated for each communication line at regular intervals, or for all communication lines at regular intervals. In this embodiment, the acknowledgment is generated including a second sequence number.

[0093] The first transmitting unit 203 transmits the acknowledgment generated by the acknowledgment generating unit 202. The communication line used for transmission may be the same as the communication line targeted by the acknowledgment, or the same acknowledgment may be transmitted over all communication lines. In particular, when transmitting an acknowledgment generated for all communication lines, it is desirable to transmit over all communication lines. This allows the acknowledgment to be delivered to the communication device 100 more reliably, regardless of the status of the communication lines.

[0094] The receiving buffer 204 rearranges the packets received by the receiving unit 201 so as to reproduce the application data based on the second sequence number, and stores the packets.

[0095] The second transmitting unit 205 reads the packet from the transmitting buffer 204 and transmits it to the destination terminal 20(M).

[0096] (3) Operation of Communication Device 100 Next, the operation of the communication device 100 will be described with reference to FIG. 12. FIG. 12 not only shows a communication method executed by the communication device 100, but also shows the processing procedure of a communication program that can be executed by the communication device 100. These processes are not limited to the order shown in FIG. 12. In other words, the order may be reversed as long as there are no constraints, such as a relationship in which a step uses the result of a previous step. The communication method or communication program of this embodiment is realized by combining the flow diagrams of FIG. 12(a) and FIG. 12(b).

[0097] First, the method for calculating line delay according to this embodiment will be described using the flow diagram in FIG. 12A. The receiver 103 receives an acknowledgment from the counterpart device 200 indicating that the packet transmitted by the communication device 100 has been received (S101). The observed delay calculator 104 calculates the observed delay of each of the multiple communication lines based on the acknowledgment received in S101 (S102). If no acknowledgment is received in S101, the predicted delay calculator 105 calculates the predicted delay, which is the elapsed time from the transmission time of the packet on each communication line to the current time (S103). The line delay calculator 106 calculates the larger of the observed delay calculated in S102 and the predicted delay calculated in S103 as the line delay of each communication line (S104).

[0098] Next, a packet transmission method according to this embodiment will be described using the flow diagram of FIG. 12(b). The communication device 100 receives application data from the user terminal 10(N) (S111). The application data is divided into multiple packets and stored in the transmission buffer 101. The transmission control unit 107 determines a communication line from among multiple communication lines through which to transmit packets to be transmitted, based on the line delay calculated in S104 (S112). Preferably, for multiple packets to be transmitted that constitute the application data, it determines which communication line, among multiple existing communication lines, to transmit the number or amount of packets to be transmitted. The transmitter 102 reads the packets to be transmitted from the buffer 101 and transmits each packet to the counterpart device 200 using the communication line determined in S112 (S113).

[0099] 12A includes an example in which the reception of an acknowledgement in S101 is used as a trigger to update the observed delay in S102, the predicted delay in S103, and the line delay of this embodiment in S104, but S101 does not necessarily have to be used as a trigger for the processing from S102 onwards. For example, the reception of application data in S111 may be used as a trigger to perform the processing from S102 onwards, or the processing from S102 onwards may be performed before the determination of the communication line in S112.

[0100] 12B includes an example in which the reception of application data in S111 is used as a trigger to perform the process of determining a communication line in S112, but S111 does not necessarily have to be used as a trigger for the processes after S112. For example, the process of S112 may be performed using the remaining capacity of the buffer 101 or the line delay obtained in S104 as a trigger.

[0101] (4) Summary According to the communication device 100 of this embodiment, the larger of the observed delay and the predicted delay is used as the line delay of each communication line, thereby enabling the timing of detecting sudden delays to be advanced. This allows lines with degraded communication quality to be recognized early and accurately, and packets to be allocated to each communication line. Furthermore, this line delay is used to control the time it takes for application data to reach the other device to be minimized, thereby enabling the arrival time of application data to be advanced compared to the conventional case where only the observed delay is used as the line delay. In particular, by using this line delay to control the transmission of retransmission packets, retransmission packets can be delivered to the other device earlier and more reliably.

[0102] 3. Summary The features of the communication devices and the like in each embodiment of the present disclosure have been described above.

[0103] The terms used in each embodiment are merely examples and may be replaced with synonymous terms or terms having the same functions.

[0104] The block diagrams used to explain the embodiments classify and organize the device configuration by function. The blocks representing each function can be realized by any combination of hardware or software. Furthermore, because they represent functions, the block diagrams can also be understood as disclosures of method inventions and program inventions that realize the methods.

[0105] The order of the functional blocks that can be understood as the processes, flows, and methods described in each embodiment may be changed as long as there are no constraints, such as one step utilizing the results of another step that precedes it.

[0106] The terms first, second, through Nth (N is an integer) used in each embodiment and in the claims are used to distinguish between two or more configurations or methods of the same type, and do not limit the order or superiority or inferiority.

[0107] Examples of the form of the communication device and the counterpart device of the present disclosure include the following: Examples of the form of components include semiconductor elements, electronic circuits, modules, and microcomputers; Examples of the form of semi-finished products include electronic control devices (ECUs (Electric Control Units)) and system boards; Examples of the form of finished products include mobile phones, smartphones, tablets, personal computers (PCs), workstations, and servers; and Other devices with communication functions, such as video cameras, still cameras, and car navigation systems.

[0108] Furthermore, necessary functions such as an antenna and a communication interface may be added to the communication device.

[0109] The communication device of the present disclosure is expected to be used, particularly on the server side, to provide various services, and the communication device of the present disclosure, the method of the present disclosure, and / or the program of the present disclosure will be used in providing these services.

[0110] In addition, the present disclosure can be realized not only by dedicated hardware having the configuration and functions described in each embodiment, but also by a combination of a program for realizing the present disclosure recorded on a recording medium such as a memory or a hard disk, and general-purpose hardware having a dedicated or general-purpose CPU and memory that can execute the program.

[0111] A program stored in a non-transient physical recording medium (for example, an external storage device (hard disk, USB memory, CD / BD, etc.) or an internal storage device (RAM, ROM, etc.)) of dedicated or general-purpose hardware can be provided to the dedicated or general-purpose hardware via the recording medium, or via a communication line from a server without using a recording medium. This makes it possible to always provide the latest functions through program upgrades.

[0112] The communication device of the present disclosure may be used in a mobile phone or smartphone that supports multi-SIM.

Claims

1. A communication device (100) comprising: a transmitting unit (102) that transmits a packet to a counterpart device (200) using a plurality of communication lines; a receiving unit (103) that receives an acknowledgment from the counterpart device indicating that the packet has been received; an observed delay calculation unit (104) that calculates an observed delay for each of the plurality of communication lines based on the acknowledgment; a predicted delay calculation unit (105) that, if the acknowledgment has not been received, calculates a predicted delay using the elapsed time from the transmission time of the packet for each of the communication lines to the current time; a line delay calculation unit (106) that sets the larger of the observed delay and the predicted delay as the line delay for each of the communication lines; and a transmission control unit (107) that determines a communication line from which to transmit the packet from among the plurality of communication lines based on the line delay.

2. The communication device according to claim 1, wherein the transmission control unit determines a communication line for transmitting each of the plurality of packets so as to minimize the time it takes for the application data stored in the plurality of packets to reach the other device.

3. The communication device according to claim 1, wherein the transmission control unit determines a communication line for transmitting the packet from among the plurality of communication lines excluding a communication line in which the predicted delay is greater than the observed delay.

4. The communication device according to claim 1, wherein the transmission control unit determines a communication line for transmitting the packet from among the plurality of communication lines, including a communication line in which the predicted delay is greater than the observed delay.

5. The communication device according to claim 1, further comprising a retransmission decision unit (108) that decides to retransmit the packet when packet loss is detected based on the acknowledgement response, or when the acknowledgement response for the packet is not received even after a predetermined time has elapsed since the packet was transmitted, and the transmission control unit decides the communication line for retransmitting the packet based on the line delay and the judgment of the retransmission decision unit.

6. The communication device according to claim 5, wherein, if the receiving unit does not receive the acknowledgment, the retransmission determination unit determines that a tail loss has occurred, and the transmission control unit determines a communication line for retransmitting the packet from among the plurality of communication lines excluding the communication line on which the tail loss has occurred.

7. The communication device according to claim 5, wherein, when the packet loss is detected in the acknowledgement, the retransmission determination unit determines that it is a random loss, and the transmission control unit determines a communication line for retransmitting the packet from among the plurality of communication lines including the communication line on which the random loss occurred.

8. The communication device according to claim 1, wherein, when the packet has an allowable delay time, the transmission control unit stops transmission of the packet that cannot reach the other device within the allowable delay time based on the line delay.

9. A communication device according to any one of claims 1 to 8, wherein the communication device is mounted on a mobile object.

10. A communication system comprising a communication device (100) and a counterpart device (200) that communicates with the communication device, wherein the communication device has: a transmitter (102) that transmits a packet to the counterpart device using a plurality of communication lines; a receiver (103) that receives an acknowledgment from the counterpart device indicating that the packet has been received; an observed delay calculation unit (104) that calculates an observed delay for each of the plurality of communication lines based on the acknowledgment; a predicted delay calculation unit (105) that calculates a predicted delay using the elapsed time from the transmission time of the packet for each of the communication lines to the current time when the acknowledgment has not been received; a line delay calculation unit (106) that sets the larger of the observed delay and the predicted delay as the line delay for each of the communication lines; and a transmission control unit (107) that determines a communication line from among the plurality of communication lines to transmit the packet based on the line delay; and the counterpart device has: a receiver (201) that receives the packet; and an acknowledgment generation unit (202) that generates the acknowledgment indicating that the packet has been received. A communication system (1) comprising: a first transmitting unit (203) that transmits the confirmation response to the communication device; and a second transmitting unit (205) that transmits the packet to a destination terminal device.

11. A communication method executed by a communication device (100) that transmits a packet to a counterpart device (200) using multiple communication lines, comprising: receiving an acknowledgement from the counterpart device indicating that the packet has been received (S101); calculating an observed delay for each of the multiple communication lines based on the acknowledgement (S102); if the acknowledgement has not been received, calculating a predicted delay using the elapsed time from the transmission time of the packet for each of the communication lines to the current time (S103); setting the larger of the observed delay and the predicted delay as the line delay for each of the communication lines (S104); determining a communication line from among the multiple communication lines to transmit a packet to be transmitted based on the line delay (S112); and transmitting the packet to the counterpart device (200) (S113).

12. A communication program executable by a communication device (100) that transmits a packet to a counterpart device (200) using multiple communication lines, the communication program causing the communication device to: receive an acknowledgement from the counterpart device indicating that the packet has been received (S101); calculate an observed delay for each of the multiple communication lines based on the acknowledgement (S102); if the acknowledgement is not received, calculate a predicted delay using the elapsed time from the transmission time of the packet for each of the communication lines to the current time (S103); set the larger of the observed delay and the predicted delay as the line delay for each of the communication lines (S104); determine a communication line from among the multiple communication lines to transmit a packet to be transmitted based on the line delay (S112); transmit the packet to the counterpart device (200) (S113), and execute processing.

Citation Information

Patent Citations

  • Communication processing unit

    JP1993336124A

  • Apparatus and program for abnormal data detection

    JP2005295212A