COMMUNICATION CONTROL DEVICE, CONTROL METHOD, COMMUNICATION SYSTEM, AND PROGRAM
The communication control device optimally switches TCP sessions to relay nodes based on transmission window size and round-trip delay, enhancing throughput by pre-adjusting the transmission window size, addressing throughput limitations in TCP communication.
Patent Information
- Application Number
- JP2022053602
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-03-29
- Publication Date
- 2025-05-20
- Estimated Expiration
- 2042-03-29
AI Technical Summary
In TCP communication, the throughput is capped at a certain level due to data loss, especially in environments with long round-trip times, leading to inefficient use of relay nodes without significant throughput improvement.
A communication control device that determines when to switch a TCP session to a relay node by monitoring transmission window size and selecting a relay node based on round-trip delay time, performing pre-adjustment with dummy data to increase the transmission window size before switching, ensuring high-throughput communication.
This approach allows for efficient switching to a relay node at the right time, improving throughput by reducing round-trip delay times and avoiding unnecessary load on the relay node.
Smart Images

Figure 0007680392000001 
Figure 0007680392000002 
Figure 0007680392000003
Abstract
Description
[Technical field]
[0001] The present invention relates to a communication control device, a control method, a communication system, and a program in a communication system that relays TCP sessions. [Background technology]
[0002] TCP (Transmission Control Protocol) is used to send and receive data over a network. Flow control is performed when sending and receiving data using TCP (References 1 and 2). A communication device that receives data (hereafter, receiving device) notifies the communication device that transmits data (hereafter, transmitting device) of the reception status of packets from the transmitting device by sending an acknowledgement (ACK) or a negative acknowledgement (NACK). Note that ACK indicates that a packet has been received normally, and NACK indicates that a packet has been lost.
[0003] In flow control, the transmitting device manages the transmission window size. The transmission window size specifies the number of packets that the transmitting device can transmit without receiving an ACK from the receiving device. The transmitting device increases or decreases the transmission window size based on the reception status reported by the receiving device, i.e., ACK or NACK. Generally, the transmitting device decreases the transmission window size when it receives a NACK, and increases the transmission window size according to a predetermined algorithm while only an ACK is received. The number of packets that the transmitting device transmits according to the transmission window size is adjusted according to the network state, thereby achieving flow control.
[0004] In conventional TCP communication, in order to achieve high-speed TCP communication in an environment with a long round-trip time, it is necessary to increase the transmission window size, but since the transmission window size increases when communication is successful, if data loss occurs during communication, the transmission window size is prevented from increasing. On the Internet, data loss cannot be completely eliminated, so the communication speed is capped at a certain level.
[0005] As shown in Figure 1(A), when TCP communication is performed between two nodes, a sender and a receiver, the transmission window size is w t The round-trip delay time for a packet is r t When , the throughput is w t / r t As a result, the throughput decreases inversely proportional to the round trip delay time.
[0006] Non-Patent Document 2 discloses a method of relaying TCP communication as a means for realizing high-speed communication in an environment with a large round-trip delay time. When relaying TCP communication, a relay node has a receiving function and a transmitting function. As shown in FIG. 1(B), the round-trip delay time r t1 , r t2 By selecting a relay node with a small , it is possible to improve the throughput. [Prior art documents] [Non-patent literature]
[0007] [Non-Patent Document 1] "BBR: Congestion-Based Congestion Control," ACM Queue, Vol. 14, No. 5, pp. 50, Oct 2016. [Non-Patent Document 2] "Towards Multi-Domain Congestion Control in Next-Generation Networks," Proceedings of 2019 IEEE Wireless Communications and Networking Conference (WCNC),2019. Summary of the Invention [Problem to be solved by the invention]
[0008] Here, if a relay node relays communication between a transmitter and a receiver at the time that communication between the transmitter and receiver starts, the communication may end before the communication between the transmitter and receiver reaches a sufficiently high speed, which creates a problem in that the relay node is burdened with a load without providing the benefit of improved throughput provided by the relay node.
[0009] The present invention has been made in view of the above-mentioned problems, and provides a technique for appropriately switching a TCP session in progress to a TCP session relayed by a relay node. [Means for solving the problem]
[0010] According to one aspect of the present invention, Located at the source or destination node The communication control device includes: A determination means for determining whether a Transmission Control Protocol (TCP) session in communication with a switching source satisfies a predetermined condition; A determination means for determining, from among a plurality of candidate relay nodes, a relay device that will relay the communication corresponding to the switching source TCP session; When the determining means determines that the source TCP session satisfies the predetermined condition, The determination means determines A relay device and the TCP session of the switching source The above Source node and The above an instruction means for establishing a destination TCP session with each of the destination nodes and instructing execution of a pre-communication, which is different from the communication associated with the source TCP session, in the destination TCP session; a switching means for switching the communication from the source TCP session to the destination TCP session after the pre-communication is performed; The present invention is characterized by comprising: Effect of the Invention
[0011] According to the present invention, it is possible to provide a technique for appropriately switching a TCP session in progress to a TCP session relayed by a relay node. [Brief description of the drawings]
[0012] [Figure 1] (A) shows the throughput of a TCP session that does not include a relay node, and (B) shows the throughput of a TCP session that includes a relay node. [Diagram 2] FIG. 1 is an explanatory diagram of a communication system according to an embodiment of the present invention. [Diagram 3] FIG. 2 is a diagram showing the configuration of a transmitting node and a receiving node. [Figure 4] FIG. 2 is a diagram showing the configuration of a relay node. [Diagram 5] FIG. 4 is a sequence diagram showing a process executed by the communication system. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0013] Hereinafter, the embodiments will be described in detail with reference to the accompanying drawings. Note that the following embodiments do not limit the invention according to the claims, and not all combinations of features described in the embodiments are essential to the invention. Two or more features among the multiple features described in the embodiments may be arbitrarily combined. In addition, the same reference numbers are used for the same or similar configurations, and duplicated descriptions are omitted.
[0014] In the communication system according to the present embodiment, after starting communication in a TCP session between a transmitting node and a receiving node, communication is performed by switching to a TCP session between the transmitting node and a relay node and between the relay node and a receiving node at an appropriate timing. This makes it possible to avoid a situation in which data to be communicated runs out before the communication speed increases, communication is terminated, and the processing load of the relay node is unnecessarily increased without obtaining the benefit of the speed increase due to the insertion of the relay node.
[0015] Fig. 2 is a diagram showing a communication system according to this embodiment. The communication system 1 shown in Fig. 2 includes a transmitting node 10, a receiving node 20, and a plurality of relay nodes 30. The transmitting node 10, the receiving node 20, and the plurality of relay nodes 30 are communication devices connected to each other via a network 2 so as to be able to communicate with each other.
[0016] The sending node 10 is an example of a communication control device that establishes a TCP session with the receiving node 20, executes flow control to perform data communication, and determines whether to relay the data through the relay node 30. The sending node 10 is, for example, a server on the Internet. The receiving node 20 is, for example, a user device including a smartphone or a personal computer.
[0017] The network 2 is a network capable of transmitting and receiving packets using the TCP protocol, and may include the Internet at least in part.
[0018] The relay node 30 is a communication device that establishes a TCP session with each of the transmitting node 10 and the receiving node 20, and relays communication by executing flow control in each communication section and transferring a data packet received from the transmitting node 10 to the receiving node 20. In this embodiment, the transmitting node 10 is described as selecting a relay node 30 to relay communication from among three relay nodes 30 as shown in Fig. 1. However, the number of relay nodes is not limited to three, and may be one or more.
[0019] The configurations of the transmitting node 10 and the receiving node 20 according to this embodiment will be described with reference to Fig. 3. The transmitting node 10 and the receiving node 20 each have, in one example, a processor 301, a ROM 302, a RAM 303, a storage device 304, and a communication circuit 305. The processor 301 of the transmitting node 10 and the receiving node 20 executes a program recorded in, for example, any one of the ROM (Read Only Memory) 302, the RAM (Random Access Memory) 303, and the storage device 304.
[0020] The processor 301 executes the functions of a flow control unit 311, a trigger detection unit 312, a relay node selection unit 313, a pre-adjustment unit 314, and a session switching unit 315 by executing the processor. The processor 301 includes one or more processors such as a CPU (Central Processing Unit), an ASIC (Application Specific Integrated Circuit), an FPGA (Field Programmable Gate Array), a DSP (Digital Signal Processor), etc. The processor 301 also executes a program stored in any one of the ROM 302, the RAM 303, and the storage device 304 to control the entire transmitting node 10 and the receiving node 20.
[0021] The sending node 10 and the receiving node 20 may be provided with dedicated hardware for executing each function, or some of the functions may be executed by hardware and other parts may be executed by a computer running a program, or all of the functions may be executed by a computer and a program.
[0022] Also, it is sufficient that either the transmitting node 10 or the receiving node 20 has the functions of the trigger detection unit 312, the relay node selection unit 313, the pre-adjustment unit 314, and the session switching unit 315. That is, it is sufficient that at least one of the transmitting node 10 and the receiving node 20 has the functions as a communication control device, and the functions as a communication control device may be realized by the transmitting node 10 and the receiving node 20. In this embodiment, the description will be given assuming that the transmitting node 10 has the functions of the trigger detection unit 312, the relay node selection unit 313, the pre-adjustment unit 314, and the session switching unit 315.
[0023] The flow control unit 311 transmits data packets in a TCP session according to the transmission window size, and controls the transmission window size based on an ACK / NACK signal received as a response to the data packet.
[0024] The trigger detection unit 312 monitors the TCP session between transmission and reception, and detects that a trigger event has occurred. If it detects that a trigger event has occurred, the relay node 30 relays the communication between the transmission node 10 and the reception node 20.
[0025] The trigger event is, for example, that the transmission window size has not changed for a predetermined period, for example, for 30 seconds. For example, the trigger event is that the transmission window size w t within a predetermined period is within a predetermined range from the maximum value of the maximum transmission window size w max within a predetermined range, that is, a×w max ≦w t ≦w max Here, a is a variable that defines the range of the window size and 0 < a < 1. In one example, a = 0.9.
[0026] Alternatively, the trigger event is, for example, that the acquired transmission window sizes are within a predetermined range for a predetermined number of times, for example, 5 times. In this case, the trigger detection unit 312 stores the acquired transmission window sizes in the RAM 303 or the storage device 304. And the trigger detection unit 312 determines that the acquired transmission window sizes are within a predetermined range when, for the maximum value w t among the values of the most recent 5 transmission window sizes w max the other transmission window size values are within a predetermined range, for example, w max ≧w t ≧0.9×w max
[0027]
[0028] Thus, when the variation of the transmission window size with respect to the maximum transmission window size is small within a predetermined period, that is, when the increase in the transmission window size cannot be expected to be greater than the maximum transmission window size, it is possible to expect an improvement in throughput by communicating via the relay node 30 selected by the method described later.In another example, the trigger event is, for example, the transmission window size not varying within a predetermined period and being equal to or greater than a predetermined value. For example, the trigger event is the transmission window size w t is the maximum transmission window size w max Within a specified range from the maximum value of a × w max ≦w t ≦w max and a predetermined value b≦w t Here, b is a threshold value that enables the introduction of a relay node, and is, for example, a value such as b=10 Mbps.
[0029] Alternatively, the trigger event may be, for example, the most recent predetermined number of times, for example, five times, when the acquired transmission window size is within a predetermined range and is equal to or greater than a predetermined value. In this case, the trigger detection unit 312 stores the acquired transmission window size in the RAM 303 or the storage device 304. The trigger detection unit 312 then detects the most recent five transmission window size values w t The maximum value of w max For other transmission window size values within a given range, e.g., w max ≧w t ≧0.9×w max and a predetermined value b≦w t If so, it can be determined that the transmission window size acquired a predetermined number of times most recently is within a predetermined range and is equal to or greater than a predetermined value.
[0030] As a result, if communication has been performed for a predetermined period of time with a throughput equal to or greater than a predetermined value and the transmission window size has not fluctuated during the predetermined period, i.e., if high-throughput communication is being performed, applications such as large-volume streaming may be in use, and it can be determined that there is a high possibility that high-throughput communication will continue in the future. In such a case, by performing communication via a relay node 30 selected by the method described below, the advantage of relaying communication by the relay node 30 can be obtained.
[0031] The trigger event is, for example, the transmission window size being equal to or larger than a predetermined value. In this case, the trigger detection unit 312 detects the acquired transmission window size value w t is a given value b≦w t If so, it is determined that the communication session should be relayed by the relay node 30. In this way, when it is determined that high throughput is required, by performing communication via the relay node 30, it becomes possible for the relay node 30 to improve the throughput, and the merit of relaying communication is obtained.
[0032] The relay node selection unit 313 selects a relay node 30 that will relay communication between the transmitting node 10 and the receiving node 20 from among the multiple relay nodes 30, and instructs the selected relay node 30 to establish a session between the transmitting node 10 and the receiving node 20. The relay node selection unit 313 selects a relay node 30 that is likely to improve throughput by relaying communication. As shown in FIG. 1, the throughput can be improved by shortening the round-trip delay time required for a packet to travel round trip. For this reason, the relay node selection unit 313 according to this embodiment selects a relay node 30 based on the round-trip delay time between the transmitting node 10 and the receiving node 20 and the relay node 30. In one example, either the transmitting node 10 or the receiving node 20 may select a candidate relay node 30, and the other may determine a relay node 30 that will relay communication from among the candidate relay nodes 30.
[0033] Before relaying a communication session to the relay node 30 selected by the relay node selection unit 313, the pre-adjustment unit 314 transmits and receives dummy data to increase the transmission window size of a session (post-switching session) including the session between the transmitting node 10 and the relay node 30 and the session between the relay node 30 and the receiving node 20, while maintaining the session (pre-switching session) between the transmitting node 10 and the receiving node 20. This makes it possible to improve the throughput of the post-switching session before switching communication to the post-switching session.
[0034] After the pre-adjustment unit 314 has performed pre-adjustment of the post-switching session, the session switching unit 315 transmits an instruction to switch communication from the pre-switching session between the transmitting node 10 and the receiving node 20 to the post-switching session.
[0035] The configuration of the relay node 30 will be described with reference to Fig. 4. In one example, the relay node includes a processor 401, a ROM 402, a RAM 403, a storage device 404, and a communication circuit 405. The processor 401 of the relay node 30 executes a program recorded in, for example, the ROM 402, the RAM 403, or the storage device 404.
[0036] The processor 401 executes the functions of a flow control unit 411, an instruction receiving unit 412, and a pre-adjustment unit 413 by executing a processor. The processor 401 includes one or more processors such as a CPU (Central Processing Unit), an ASIC (Application Specific Integrated Circuit), an FPGA (Field Programmable Gate Array), a DSP (Digital Signal Processor), etc. The processor 401 also executes a program stored in any one of the ROM 402, the RAM 403, and the storage device 404 to control the entire relay node 30.
[0037] The communication circuit 405 simultaneously establishes a communication session with the transmitting node 10 and a communication session with the receiving node 20, and the flow control unit 411 controls each session independently. In one example, the communication circuit 405 includes a plurality of communication interfaces for communicating with each of the transmitting node 10 and the receiving node 20.
[0038] The instruction receiving unit 412 receives a session establishment instruction transmitted from the relay node selecting unit 313, and establishes a session with each of the transmitting node 10 and the receiving node 20 in response to the instruction.
[0039] The pre-adjustment unit 413 transmits and receives dummy data in the session established by the instruction receiving unit 412, and expands the window size of the post-switching session before switching communication to the post-switching session.
[0040] An example of a processing sequence executed by the communication system 1 according to the present embodiment will be described with reference to FIG.
[0041] First, in S501, the transmitting node 10 and the receiving node 20 establish a TCP session, and start communication in S502. Here, the trigger detection unit 312 starts monitoring the communication status. In S501, a TCP session can be established using existing technology. After the communication starts in S502, the transmitting node 10 and the receiving node 20 communicate with each other in the communication session before switching, although this is not shown in the figure.
[0042] Thereafter, the trigger detection unit 312 determines in S502 whether or not the session established in S501 (the session before switching) satisfies the condition for determining that the relay node 30 is to be used.
[0043] If the condition for determining whether to use the relay node 30 is not satisfied, the communication status continues to be monitored. If it is determined that the condition for determining whether to use the relay node 30 is satisfied, the process proceeds to S504, where the relay node selection unit 313 selects a relay node 30. In this embodiment, the relay node selection unit 313 of the sending node 10 selects candidate relay nodes 30. In S504, the relay node selection unit 313 of the sending node 10 executes a program for measuring delay times of a ping command or the like for a plurality of relay nodes 30, and selects a predetermined number of relay nodes 30, for example, five relay nodes 30, from among the plurality of relay nodes 30, in order of shortest round-trip delay times.
[0044] In one example, the sending node 10 may measure the round trip delay times for a plurality of relay nodes 30 at a predetermined time interval, for example, every minute, and store the measured round trip delay times in the memory device 304 in association with the relay nodes 30. In S504, the sending node 10 may select candidate relay nodes 30 based on the round trip delay times stored in the memory device 304.
[0045] After selecting the relay node 30 in S504, the relay node selection unit 313 advances the process to S505 and transmits a relay request signal to the receiving node 20. The relay request signal transmitted to the receiving node 20 in S505 notifies the destination port number of the TCP communication of the receiving node 20 used in the session before switching and the session number of the transmitting side to be used in the switching process described later in S510. The session number may be generated using, for example, a pseudorandom function. Furthermore, the relay request signal transmitted to the relay node 30 in S505 includes a list in which the candidate relay nodes 30 are associated with their respective round trip delay times.
[0046] When the relay node selection unit 313 of the sending node 10 selects one relay node 30 to relay the communication in S504, the relay request signal only needs to include the port number of the TCP communication used in the session before switching, the session number used in the switching process described later in S510, and information specifying the relay node 30. In such a case, the relay request signal does not need to include a list associating candidate relay nodes 30 with their respective round trip delay times.
[0047] In S506, the receiving node 20 determines whether the destination port number of the TCP communication included in the relay request signal is used for communication, and if so, specifies that the TCP communication corresponding to the destination port number is to be relayed. In addition, in S506, the relay node selection unit 313 of the receiving node 20 acquires the round-trip delay time for the candidate relay node included in the relay request signal, and selects a relay node 30 to relay the communication. In S506, the relay node selection unit 313 of the receiving node 20 executes a program for measuring delay times, such as a ping command, for multiple relay nodes 30, and selects a predetermined number of relay nodes 30, for example, five relay nodes 30, from among the multiple relay nodes 30 in order of lowest round-trip delay time. Alternatively, the receiving node 20 may measure the round-trip delay times for multiple relay nodes 30 at predetermined time intervals, for example, every minute, associate the measured round-trip delay times with the relay nodes 30, and store the measured round-trip delay times in the storage device 304, and in S506, select a candidate relay node 30 based on the round-trip delay times stored in the storage device 304.
[0048] Here, in S506, the relay node selection unit 313 of the receiving node 20 selects a relay node 30 based on the round-trip delay time (sender delay time) between a specified relay node 30 and the transmitting node 10 and the round-trip delay time (receiver delay time) between the specified relay node 30 and the receiving node 20.
[0049] In one example, it is determined that the communication is to be relayed by the relay node 30 that has the smallest sum of the sending side delay time and the receiving side delay time among multiple candidate relay nodes. Note that it is determined that the communication is not to be relayed by a candidate relay node that has either the sending side delay time or the receiving side delay time that is greater than the round trip delay time between the sending node 10 and the receiving node 20.
[0050] Also, it may be determined that the relay node 30 having the smallest difference between the sending side delay time and the receiving side delay time among a plurality of candidate relay nodes is to relay the communication.
[0051] The receiving node 20, which has selected the relay node 30, transmits a relay response signal including the identification information of the relay node 30 selected in S507 to the transmitting node 10. Also, in S507, the receiving node 20 notifies the transmitting node 10 of the session number of the receiving side to be used in the switching process described later in S510. The session number may be generated using, for example, a pseudo-random function.
[0052] In S508, the transmitting node 10 that has received the relay response signal transmits a relay instruction signal contained in the relay response signal to the relay node 30. The relay instruction signal contains, as source TCP session information, the IP addresses and port numbers of the transmitting node 10 and the receiving node 20, and the session numbers of the transmitting side and the receiving side.
[0053] In S509, the relay node 30 that has received the relay instruction signal transmits a relay notification signal to the receiving node 20. The relay notification signal includes, as TCP session information of the switching source, the IP addresses and port numbers of the transmitting node 10 and the receiving node 20, and the session numbers of the transmitting side and the receiving side.
[0054] The receiving node 20 judges whether the TCP session information received from the relay node 30 matches the TCP session information that the receiving node 20 stores in the storage device 304. If the information matches, it decides to permit relay by the relay node 30, and transmits a relay notification response to the relay node 30 in S510. The relay notification response includes information indicating the relay receiving port number that the receiving node 20 uses in the switching destination TCP session, and information indicating the session numbers of the sending side and receiving side.
[0055] The relay node 30 that has received the relay notification response transmits a relay instruction response to the transmitting node 10 in S511. The relay instruction response includes information indicating the session numbers of the transmitting node and the receiving node, and information indicating the relay port number that the relay node 30 uses to establish a TCP session with the transmitting node 10.
[0056] In parallel with the relay instruction response of S511, the relay node 30 establishes a TCP session with the receiving node 20 in S512. Here, the relay node 30 establishes the TCP session by specifying the relay receiving port number included in the relay notification response.
[0057] Upon receiving the relay instruction response, the transmitting node 10 transmits, in S513, an acknowledgment signal to the relay node 30. The acknowledgment signal includes the session numbers of the transmitting side and the receiving side.
[0058] Furthermore, the sending node 10, having received the response confirmation signal in S513, establishes a TCP session with the relay node 30 in S514. In S514, the sending node 10 establishes a TCP session by designating the relay port number included in the relay instruction response received in S511.
[0059] In S515, the transmitting node 10 transmits an adjustment setting signal to the receiving node 20. The adjustment setting signal includes, for example, information indicating a threshold that the window size of the switching destination TCP session should exceed. For example, the threshold may be a fixed value such as 1 MB, or may be determined based on the window size of the switching source TCP session.
[0060] In another example, the adjustment setting signal includes information instructing the amount of dummy data to be transmitted. In one example, the amount may be determined based on the window size of the TCP session at the switching source. For example, if dummy data twice the maximum window size of the TCP session at the switching source is transmitted, the window size will be the same as that of the TCP session at the switching source if there is no packet loss. Therefore, in one example, the amount of dummy data to be transmitted may be instructed to transmit dummy data twice the maximum window size of the TCP session at the switching source. This allows the transmitting node 10 to perform pre-communication until the window size of the TCP session at the switching destination becomes larger than a predetermined value.
[0061] At S516, the receiving node 20 transmits a setting response signal to the transmitting node 10 as a response to the adjustment setting signal. At S517, the transmitting node 10 performs pre-communication to transmit dummy data to the relay node 30. The relay node 30 transfers the received dummy data to the receiving node 20. The dummy data may be, for example, a pseudo-random bit string. By successfully transmitting the dummy data, the window sizes of the TCP session between the transmitting node 10 and the relay node 30 and the TCP session between the relay node 30 and the receiving node 20 can be increased.
[0062] In S518, the transmitting node 10 and the receiving node 20 determine to switch the communication session. In one example, the transmitting node 10 and the receiving node 20 determine to switch the communication session when the transmission and reception of the amount of dummy data specified in the adjustment setting signal is completed. In another example, the transmitting node 10 and the receiving node 20 determine to switch the communication session when the window size of the TCP session at the switching destination becomes equal to or larger than a predetermined value. Note that, in one example, the transmitting node 10 and the receiving node 20, or the transmitting node 10 and the relay node 30 may transmit and receive information regarding the window size of the TCP session between the transmitting node 10 and the relay node 30 and the window size of the TCP session between the receiving node 20 and the relay node 30.
[0063] When it is determined in S518 that the communication session is to be switched, the sending node 10 transmits the data communication that was being sent in the source TCP session in the destination TCP session, thereby making it possible to switch the TCP session with the window size increased.
[0064] As described above, the communication control device according to this embodiment determines to relay a TCP session to the relay node 30 in which the round trip time between the transmitting node 10 and the relay node 30 and the round trip time between the relay node 30 and the receiving node 20 are shorter than the round trip time between the transmitting node 10 and the receiving node 20. In this way, an improvement in throughput can be expected by relaying communication through a relay node.
[0065] Moreover, the communication control device according to the present embodiment determines a relay node 30 that relays a TCP session between a sending node 10 and a receiving node 20, and establishes a TCP session at the switching destination via the relay node 30. Then, in the TCP session at the switching destination, a pre-communication unrelated to the communication of the TCP session at the switching source is performed. Then, when the window size of the TCP session at the switching destination becomes equal to or larger than a predetermined value, a communication associated with the TCP session at the switching source is performed in the TCP session at the switching destination. This makes it possible to switch the TCP session in a situation where the throughput can be improved, and allows the relaying of communication by the relay node 30 to start at an appropriate timing.
[0066] Furthermore, the communication control device according to this embodiment determines a relay node 30 when the TCP session between the sending node 10 and the receiving node 20 satisfies a predetermined condition that determines that a benefit can be obtained by relaying the communication, and starts establishing a switching destination TCP session and switching the session via the relay node 30. This makes it possible to avoid switching to the switching destination TCP session in a situation where no benefit can be obtained by relaying the communication, and to avoid placing a load on the relay node 30.
[0067] <Other embodiments> In the present embodiment, the relay node selection unit 313 has been described as selecting the relay node 30 based on the round trip delay time (sender delay time) between the transmitting node 10 and the relay node 30 and the round trip delay time (receiver delay time) between the receiving node 20 and the relay node 30. In one example, the relay node selection unit 313 may store the maximum window size in past communications in the storage device 304, and select the relay node 30 based on the maximum window size (sender window size) between the transmitting node 10 and the relay node 30 and the maximum window size (receiver window size) between the receiving node 20 and the relay node 30. For example, by selecting the relay node 30 with the maximum evaluation value S below, it is possible to have the communication relayed by the relay node 30 that is expected to have a high throughput.
[0068] S=min{(sender window size) / (sender delay), (receiver window size) / (receiver delay)} Here, min{} is a function that selects the minimum of two values.
[0069] In this embodiment, the session numbers of the sender and receiver included in the signals transmitted in S508 to S511, and S513, S515, and S516 are used to verify the authenticity of the sender of the signal. However, other authentication techniques may be applied to verify the authenticity of the sender of the signal, and in such cases, the signals transmitted in S508 to S511, and S513, S515, and S516 do not need to include the session numbers of the sender and receiver.
[0070] In this embodiment, the process of S503 has been described as determining whether or not to establish a TCP session via the relay node 30 based only on the window size of the source TCP session. In one example, the process of S503 may be executed based on the round trip time to the candidate relay node. For example, the sending node 10 may determine the round trip time (w t ) and the round trip time between the candidate relay nodes (wt1 ), and when a candidate relay node with a round trip time smaller than the round trip time between the receiving node 20 and the candidate relay node is detected by a predetermined ratio or more, it may be determined that a trigger event has occurred. For example, t1 <0.8×w t In such a case, in S506, the round trip time (w t2 ) and measure w in S507. t2 Receive and t2 <0.8×w t In this case, it may be determined that a post-switching TCP session is to be established with the candidate relay node.
[0071] The communication device according to the present invention, that is, the above-mentioned transmitting node 10, receiving node 20, and relay node, can be realized by a program that, when executed by one or more processors of a device, causes the device to operate as the transmitting node 10 and / or the receiving node 20 and / or the relay node 30. These programs can be stored in a device-readable storage medium or distributed via a network.
[0072] The invention is not limited to the above-described embodiment, and various modifications and variations are possible within the scope of the gist of the invention. [Explanation of symbols]
[0073] 10: transmitting node, 20: receiving node, 30: relay node
Claims
1. A communication control device provided in a source node or a destination node, A determination means for determining whether a transmission control protocol (TCP) session of a switching source which is performing communication satisfies a predetermined condition; a determining means for determining, from among a plurality of candidate relay nodes, a relay device that will relay the communication corresponding to the switching source TCP session; an instruction means for establishing a switching destination TCP session between the relay device determined by the determination means and each of the source node and destination node of the switching source TCP session when the determination means determines that the switching source TCP session satisfies the predetermined condition, and for instructing execution of a pre-communication, which is different from the communication associated with the switching source TCP session, in the switching destination TCP session; a switching means for switching the communication from the source TCP session to the destination TCP session after the preliminary communication is performed; A communication control device comprising:
2. 2. The communication control device according to claim 1, wherein the predetermined condition is that a window size of the TCP session of the switching source acquired a plurality of times in a recent predetermined period falls within a predetermined range.
3. 3. The communication control device according to claim 1, wherein the predetermined condition is that a window size of the TCP session of the switching source acquired in a most recent predetermined period is equal to or larger than a predetermined threshold value.
4. The determining means is For each of the plurality of candidate relay nodes, a first delay time required for a packet to travel to and from the source node and a second delay time required for a packet to travel to and from the destination node are obtained; 4. The communication control device according to claim 1, further comprising: determining, as the relay device, a candidate relay node whose first delay time and whose second delay time are smaller than the delay time required for a packet to travel round trip between the source node and the destination node.
5. 5. The communication control device according to claim 4, wherein the determining means determines, as the relay device, a candidate relay node having a smallest sum of the first delay time and the second delay time of each of the plurality of candidate relay nodes.
6. 5. The communication control device according to claim 4, wherein the determining means determines, as the relay device, a candidate relay node having a smallest difference between the first delay time and the second delay time of each of the plurality of candidate relay nodes.
7. the instruction means instructs to communicate a predetermined amount of dummy data in the preliminary communication, 7. The communication control device according to claim 1, wherein the predetermined amount is determined based on a window size of the TCP session of the switching source.
8. 4. The communication control device according to claim 1, wherein the switching means switches communication to the TCP session of the switching destination when the window size of the TCP session of the switching destination becomes equal to or larger than the window size of the TCP session of the switching source.
9. A communication control method executed by a communication control device provided in a source node or a destination node, comprising: Determining whether a Transmission Control Protocol (TCP) session of the switching source that is performing communication satisfies a predetermined condition; determining a relay device that relays the communication corresponding to the switching source TCP session from among a plurality of candidate relay nodes; when it is determined that the source TCP session satisfies the predetermined condition, establishing a destination TCP session between the determined relay device and each of the source node and the destination node of the source TCP session, and instructing execution of a pre-communication in the destination TCP session that is different from the communication associated with the source TCP session; switching the communication from the source TCP session to the destination TCP session after performing the pre-communication; A communication control method comprising:
10. A communication system including a transmitting node, a receiving node, and a relay node, a determination means for determining whether a transmission control protocol (TCP) session of a switching source, which is communicating between the transmitting node and the receiving node, satisfies a predetermined condition; a determining means for determining, from among a plurality of candidate relay nodes, a relay device that will relay the communication corresponding to the switching source TCP session; an instruction means for establishing a switching destination TCP session between the relay device determined by the determination means and each of the transmitting node and the receiving node when it is determined that the switching source TCP session satisfies the predetermined condition, and for instructing execution of a pre-communication, which is different from the communication associated with the switching source TCP session, in the switching destination TCP session; a switching means for switching the communication from the source TCP session to the destination TCP session after the preliminary communication is performed; A communication system comprising:
11. A program, when executed by one or more processors of an apparatus having one or more processors, that causes the apparatus to function as the communication control apparatus according to any one of claims 1 to 8.
Citation Information
Patent Citations
Data packet transmission method and system
JP2013121028A
Server device and communication system
JP2014078895A
Communication device, control method therefor and control program
JP2016129274A
Terminal, relay device selection apparatus, communication method, relay device selection method and program
JP2017139567A