Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7680392B2 - COMMUNICATION CONTROL DEVICE, CONTROL METHOD, COMMUNICATION SYSTEM, AND PROGRAM - Google Patents
[go: Go Back, main page]

JP7680392B2 - COMMUNICATION CONTROL DEVICE, CONTROL METHOD, COMMUNICATION SYSTEM, AND PROGRAM - Google Patents

COMMUNICATION CONTROL DEVICE, CONTROL METHOD, COMMUNICATION SYSTEM, AND PROGRAM Download PDF

Info

Publication number
JP7680392B2
JP7680392B2 JP2022053602A JP2022053602A JP7680392B2 JP 7680392 B2 JP7680392 B2 JP 7680392B2 JP 2022053602 A JP2022053602 A JP 2022053602A JP 2022053602 A JP2022053602 A JP 2022053602A JP 7680392 B2 JP7680392 B2 JP 7680392B2
Authority
JP
Japan
Prior art keywords
node
communication
tcp session
relay
switching
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2022053602A
Other languages
Japanese (ja)
Other versions
JP2023146423A (en
Inventor
佳憲 北辻
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KDDI Corp
Original Assignee
KDDI Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by KDDI Corp filed Critical KDDI Corp
Priority to JP2022053602A priority Critical patent/JP7680392B2/en
Publication of JP2023146423A publication Critical patent/JP2023146423A/en
Application granted granted Critical
Publication of JP7680392B2 publication Critical patent/JP7680392B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、TCPセッションの中継を行う通信システムにおける通信制御装置、制御方法、通信システム、及びプログラムに関する。 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.

ネットワークを介したデータの送受信のためにTCP(伝送制御プロトコル)が使用されている。TCPによるデータの送受信においてはフロー制御が行われる(引用文献1、2)。データを受信する通信装置(以下、受信装置)は、データを送信する通信装置(以下、送信装置)からのパケットの受信状況を肯定応答(ACK)又は否定応答(NACK)で送信装置に通知する。なお、ACKはパケットを正常に受信していることを示し、NACKは損失パケットが生じたことを示す。 Transmission Control Protocol (TCP) 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 referred to as a receiving device) notifies the communication device that transmits data (hereafter referred to as a transmitting device) of the reception status of packets from the transmitting device by sending an acknowledgement (ACK) or a negative acknowledgement (NACK). Note that an ACK indicates that a packet has been received normally, and a NACK indicates that a packet has been lost.

フロー制御において、送信装置は送信ウィンドウサイズを管理する。送信ウィンドウサイズは、送信装置が、受信装置からのACKを受信することなく送信できるパケット数を規定する。送信装置は、受信装置から報告される受信状況、つまり、ACK又はNACKに基づき送信ウィンドウサイズを増減させる。一般的に、送信装置は、NACKを受信すると送信ウィンドウサイズを減少させ、ACKのみを受信している間、所定のアルゴリズムに従い送信ウィンドウサイズを増加させる。送信ウィンドウサイズに応じて送信装置が送信するパケット数がネットワークの状態に応じて調整され、フロー制御が実現される。 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 being received. The number of packets that the transmitting device transmits is adjusted according to the transmission window size according to the network conditions, thereby achieving flow control.

従来のTCP通信では、往復遅延時間(ラウンドトリップタイム)が大きい環境で高速なTCP通信を実現しようとすると、送信ウィンドウサイズを大きくすることが必要であるが、送信ウィンドウサイズは通信が成功したことで拡大するため、通信の途中でデータロスが発生すれば、送信ウィンドウサイズの拡大が妨げられる。インターネットでは、データロスを完全になくすことができないため、ある程度の通信速度に頭打ちする。 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. However, because the transmission window size increases when communication is successful, if data loss occurs during communication, this prevents the transmission window size from increasing. On the Internet, data loss cannot be completely eliminated, so communication speeds are limited to a certain level.

図1(A)に示すように、送信機と受信機との間の2つのノードの間でTCP通信を行うとき、送信ウィンドウサイズがwtで、パケットの往復にかかる遅延時間(往復遅延時間)がrtのとき、そのスループットはwt/rtとなり、往復遅延時間に反比例してスループットが低下する。 As shown in Figure 1 (A), when TCP communication is performed between two nodes, a transmitter and a receiver, if the transmission window size is wt and the delay time it takes for a packet to travel round trip (round trip delay time) is rt , the throughput is wt / rt , and the throughput decreases in inverse proportion to the round trip delay time.

非特許文献2は、往復遅延時間が大きい環境で、高速通信を実現する手段に、TCP通信を中継する方法を開示している。TCP通信を中継する場合には、中継ノードが受信機能と送信機能を備える。図1(B)に示すように、送信・受信ノードの間の往復遅延時間よりも、各区間(送信ノードと中継ノードの区間と、中継ノードと受信ノードの区間)の往復遅延時間rt1、rt2が小さい中継ノードを選択することで、スループットを向上することが可能になる。 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), by selecting a relay node whose round-trip delay times r t1 and r t2 of each section (the section between the transmitting node and the relay node, and the section between the relay node and the receiving node ) are smaller than the round-trip delay time between the transmitting and receiving nodes, it is possible to improve throughput.

"BBR: Congestion-Based Congestion Control," ACM Queue, Vol. 14, No. 5, pp. 50, Oct 2016."BBR: Congestion-Based Congestion Control," ACM Queue, Vol. 14, No. 5, pp. 50, Oct 2016. "Towards Multi-Domain Congestion Control in Next-Generation Networks," Proceedings of 2019 IEEE Wireless Communications and Networking Conference (WCNC),2019."Towards Multi-Domain Congestion Control in Next-Generation Networks," Proceedings of 2019 IEEE Wireless Communications and Networking Conference (WCNC), 2019.

ここで、送受信間の通信を開始する時点で中継ノードによって送受信間の通信を中継させる場合、送受信間の通信が十分に高速な速度に達する前に通信を終了する場合があり、中継ノードによるスループットの向上のメリットが得られないまま中継ノードに負荷がかかるという課題があった。 Here, if a relay node is used to relay communication between a sender and a receiver at the time communication between the sender and the receiver starts, the communication may end before the communication speed between the sender and the receiver reaches a sufficiently high speed, which creates an issue of imposing a load on the relay node without providing the benefit of improved throughput due to the relay node.

本発明は、上記課題に鑑みてなされたものであり、通信中のTCPセッションを中継ノードによって中継されるTCPセッションに適切に切り替える技術を提供するものである。 The present invention has been made in consideration of the above problems, and provides a technology for appropriately switching a TCP session in progress to a TCP session relayed by a relay node.

本発明の一態様によると、送信元ノードまたは宛先ノードに備えられる通信制御装置は、
通信を行っている切替元のTransmission Control Protocol(TCP)セッションが所定の条件を満たすか否かを判定する判定手段と、
複数の候補中継ノードのうちから、前記切替元のTCPセッションに対応する前記通信を中継させる中継装置を決定する決定手段と、
前記判定手段で前記切替元のTCPセッションが前記所定の条件を満たすと判定した場合に、前記決定手段で決定した前記中継装置と、前記切替元のTCPセッションの前記送信元ノードおよび前記宛先ノードのそれぞれとの間で切替先のTCPセッションを確立し、前記切替先のTCPセッションにおいて、前記切替元のTCPセッションに関連付けられた前記通信とは異なる事前通信の実行を指示する指示手段と、
前記事前通信を行った後に、前記切替元のTCPセッションから前記切替先のTCPセッションへ前記通信を切り替える切替手段と、
を備えることを特徴とする。
According to one aspect of the present invention, a communication control device provided in a source node or a destination node includes :
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;
The present invention is characterized by comprising:

本発明によると、通信中のTCPセッションを中継ノードによって中継されるTCPセッションに適切に切り替える技術を提供することができる。 The present invention provides a technology that appropriately switches a TCP session in progress to a TCP session relayed by a relay node.

(A)は中継ノードを含まないTCPセッションのスループットを示す図、(B)は中継ノードを含むTCPセッションのスループットを示す図。1A is a diagram showing the throughput of a TCP session that does not include a relay node, and FIG. 1B is a diagram showing the throughput of a TCP session that includes a relay node. 本実施形態に係る通信システムの説明図。FIG. 1 is an explanatory diagram of a communication system according to an embodiment of the present invention. 送信ノードおよび受信ノードの構成図。FIG. 2 is a diagram showing the configuration of a transmitting node and a receiving node. 中継ノードの構成図。FIG. 2 is a diagram showing the configuration of a relay node. 通信システムが実行する処理を示すシーケンス図。FIG. 4 is a sequence diagram showing a process executed by the communication system.

以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものでなく、また実施形態で説明されている特徴の組み合わせの全てが発明に必須のものとは限らない。実施形態で説明されている複数の特徴うち二つ以上の特徴が任意に組み合わされてもよい。また、同一若しくは同様の構成には同一の参照番号を付し、重複した説明は省略する。 The following embodiments are described in detail with reference to the attached 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 necessarily essential to the invention. Two or more of the features described in the embodiments may be combined in any desired manner. In addition, the same reference numbers are used for the same or similar configurations, and duplicate descriptions will be omitted.

本実施形態に係る通信システムは、送信ノードと受信ノードとの間のTCPセッションにおける通信を開始した後に、適切なタイミングで送信ノードと中継ノードとの間、および中継ノードと受信ノードとの間のTCPセッションに切り替えて通信を行う。これによって、通信速度が高くなる前に通信すべきデータがなくなり、通信を終了し、中継ノードの挿入による速度向上のメリットが得られないまま中継ノードの処理負荷を無駄に高めることになることを避けることができる。 In the communication system according to this embodiment, after starting communication in a TCP session between a sending node and a receiving node, communication is switched to a TCP session between the sending 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 where communication is terminated due to data being exhausted before the communication speed increases, resulting in an unnecessary increase in the processing load of the relay node without obtaining the benefit of the increased speed achieved by inserting a relay node.

図2は本実施形態に係る通信システムを示す図である。図2に示す通信システム1は、送信ノード10、受信ノード20、および複数の中継ノード30を含む。送信ノード10、受信ノード20、および複数の中継ノード30は、ネットワーク2を介して通信可能に接続された通信装置である。 Figure 2 is a diagram showing a communication system according to this embodiment. The communication system 1 shown in Figure 2 includes a transmitting node 10, a receiving node 20, and a number of relay nodes 30. The transmitting node 10, the receiving node 20, and the number of relay nodes 30 are communication devices connected to each other so as to be able to communicate with each other via a network 2.

送信ノード10は、受信ノード20とのTCPセッションを確立し、フロー制御を実行してデータ通信を行い、中継ノード30による中継を行わせるか否かを判定する通信制御装置の一例である。送信ノード10は、例えばインターネット上のサーバである。受信ノード20は、例えばスマートフォン、パーソナルコンピュータを含むユーザ装置である。 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 have the relay node 30 relay the data. 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.

ネットワーク2は、TCP方式を使用してパケットの送受信が可能なネットワークであり、少なくとも一部にインターネットを含んでもよい。 Network 2 is a network capable of sending and receiving packets using the TCP protocol, and may include the Internet at least in part.

中継ノード30は、送信ノード10および受信ノード20のそれぞれとTCPセッションを確立し、それぞれの通信区間でフロー制御を実行して送信ノード10から受信したデータパケットを受信ノード20に転送することで通信の中継を行う通信装置である。本実施形態では、図1に示すように送信ノード10が、3つの中継ノード30のうちから通信を中継させる中継ノード30を選択するものとして説明する。しかしながら、中継ノードの数は3つに限定されず、1つ以上であればよい。 The relay node 30 is a communication device that relays communication by establishing a TCP session with each of the transmitting node 10 and the receiving node 20, and performing flow control in each communication section to forward a data packet received from the transmitting node 10 to the receiving node 20. In this embodiment, as shown in FIG. 1, the transmitting node 10 is described as selecting one of the three relay nodes 30 to relay communication. However, the number of relay nodes is not limited to three, and may be one or more.

図3を参照して本実施形態に係る送信ノード10および受信ノード20の構成を説明する。送信ノード10および受信ノード20は、一例において、プロセッサ301、ROM302、RAM303、記憶装置304、および通信回路305を有する。送信ノード10および受信ノード20のプロセッサ301は、例えばROM(Read Only Memory)302、RAM(Random Access Memory)303及び記憶装置304のいずれかに記録されたプログラムを実行する。 The configuration of the transmitting node 10 and the receiving node 20 according to this embodiment will be described with reference to FIG. 3. In one example, the transmitting node 10 and the receiving node 20 have 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, the ROM (Read Only Memory) 302, the RAM (Random Access Memory) 303, or the storage device 304.

プロセッサ301は、プロセッサを実行することで、フロー制御部311、トリガ検出部312、中継ノード選択部313、事前調整部314、セッション切替部315の機能を実行する。なお、プロセッサ301は、CPU(中央処理装置)、ASIC(特定用途向け集積回路)、FPGA(フィールドプログラマブルゲートアレイ)、DSP(デジタルシグナルプロセッサ)等の1つ以上のプロセッサを備える。また、プロセッサ301は、ROM302、RAM303、記憶装置304のいずれかに記憶されたプログラムを実行して、送信ノード10および受信ノード20の全体を制御する。 By executing the processor, the processor 301 executes the functions of the flow control unit 311, the trigger detection unit 312, the relay node selection unit 313, the advance adjustment unit 314, and the session switching unit 315. 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 the ROM 302, the RAM 303, or the storage device 304 to control the entire transmitting node 10 and the receiving node 20.

なお、送信ノード10および受信ノード20は、各機能を実行する専用のハードウェアを備えてもよいし、一部をハードウェアで実行し、プログラムを動作させるコンピュータでその他の部分を実行してもよい。また、全機能がコンピュータとプログラムにより実行されてもよい。 The sending node 10 and the receiving node 20 may be provided with dedicated hardware for executing each function, or some functions may be executed by hardware and other functions may be executed by a computer running a program. Also, all functions may be executed by a computer and a program.

また、送信ノード10および受信ノード20のいずれか一方がトリガ検出部312、中継ノード選択部313、事前調整部314、およびセッション切替部315の機能を有すればよい。すなわち、送信ノード10および受信ノード20の少なくともいずれかに通信制御装置としての機能が備えられればよく、送信ノード10および受信ノード20によって通信制御装置としての機能が実現されてもよい。本実施形態では、送信ノード10がトリガ検出部312、中継ノード選択部313、事前調整部314、およびセッション切替部315の機能を有するものとして説明を行う。 Also, either the transmitting node 10 or the receiving node 20 may have 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. In other words, at least one of the transmitting node 10 and the receiving node 20 may have the functions of a communication control device, and the functions of the 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.

フロー制御部311は、TCPセッションにおいて送信ウィンドウサイズに従ってデータパケットを送信し、データパケットへの応答として受信したACK/NACK信号に基づいて送信ウィンドウサイズの制御を行う。 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 the ACK/NACK signal received in response to the data packet.

トリガ検出部312は、送受信間のTCPセッションを監視し、トリガイベントが発生したことを検出する。トリガイベントが発生したことを検出した場合は、中継ノード30によって送信ノード10と受信ノード20との間の通信を中継させる。 The trigger detection unit 312 monitors the TCP session between the sender and receiver, and detects the occurrence of a trigger event. When it detects the occurrence of a trigger event, it causes the relay node 30 to relay communication between the sender node 10 and the receiver node 20.

トリガイベントは、例えば送信ウィンドウサイズが所定の期間の間、例えば30秒間、変動していないことである。例えば、トリガイベントは、所定の期間内における送信ウィンドウサイズwtが、所定の期間内における最大送信ウィンドウサイズwmaxの最大値から所定の範囲内、すなわちa×wmax≦wt≦wmaxであることである。ここで、aはウィンドウサイズの範囲を定義する変数で0<a<1である。一例では、a=0.9である。 The trigger event is, for example, that the transmission window size has not changed for a predetermined period, for example, 30 seconds. For example, the trigger event is that the transmission window size wt in the predetermined period is within a predetermined range from the maximum value of the maximum transmission window size wmax in the predetermined period, i.e., a× wmaxwtwmax , where a is a variable that defines the range of the window size and is 0<a<1. In one example, a=0.9.

あるいは、トリガイベントは、例えば直近の所定の回数、例えば5回、取得した送信ウィンドウサイズが所定の範囲内であることである。この場合、トリガ検出部312は、取得した送信ウィンドウサイズをRAM303または記憶装置304に記憶する。そしてトリガ検出部312は、直近の5回の送信ウィンドウサイズの値wtのうちの最大値wmaxに対して他の送信ウィンドウサイズの値が所定の範囲内である、例えばwmax≧wt≧0.9×wmaxである場合に、直近の所定の回数取得した送信ウィンドウサイズが所定の範囲内であると判定することができる。 Alternatively, the trigger event may be, for example, the transmission window size acquired a predetermined number of times most recently, for example, five times, being within a predetermined range. In this case, the trigger detection unit 312 stores the acquired transmission window size in the RAM 303 or the storage device 304. Then, the trigger detection unit 312 can determine that the transmission window size acquired a predetermined number of times most recently is within the predetermined range when the value of the other transmission window size is within the predetermined range with respect to the maximum value wmax of the transmission window size values wt of the most recent five times, for example, wmaxwt ≧0.9× wmax .

これによって、所定の期間内において、最大送信ウィンドウサイズに対する送信ウィンドウサイズの変動が小さい場合、すなわち最大送信ウィンドウサイズ以上に送信ウィンドウサイズの上昇が期待できない場合に、後述する方法で選択した中継ノード30を介して通信することで、スループットの向上が期待できる。 As a result, when the variation in the transmission window size relative to the maximum transmission window size within a specified period is small, i.e., when the transmission window size is not expected to increase beyond the maximum transmission window size, improved throughput can be expected by communicating via a relay node 30 selected by the method described below.

別の例では、トリガイベントは、例えば送信ウィンドウサイズが所定の期間内に変動しておらず、かつ所定の値以上であることである。例えば、トリガイベントは、所定の期間内における送信ウィンドウサイズwtが、所定の期間内における最大送信ウィンドウサイズwmaxの最大値から所定の範囲内、すなわちa×wmax≦wt≦wmaxであり、かつ所定の値b≦wtであることである。ここで、bは中継ノードの導入を可能にする閾値であり、例えばb=10Mbpsなどの値である。 In another example, the trigger event is, for example, that the transmission window size has not changed within a predetermined period and is equal to or greater than a predetermined value. For example, the trigger event is that the transmission window size wt within a predetermined period is within a predetermined range from the maximum value of the maximum transmission window size wmax within the predetermined period, i.e., a× wmaxwtwmax , and a predetermined value b≦ wt , where b is a threshold value that enables the introduction of a relay node, and is, for example, a value such as b=10 Mbps.

あるいは、トリガイベントは、例えば直近の所定の回数、例えば5回、取得した送信ウィンドウサイズが所定の範囲内であり、かつ取得した送信ウィンドウサイズが所定の値以上であることである。この場合、トリガ検出部312は、取得した送信ウィンドウサイズをRAM303または記憶装置304に記憶する。そしてトリガ検出部312は、直近の5回の送信ウィンドウサイズの値wtのうちの最大値wmaxに対して他の送信ウィンドウサイズの値が所定の範囲内、例えばwmax≧wt≧0.9×wmaxであり、かつ所定の値b≦wtである場合に、直近の所定の回数取得した送信ウィンドウサイズが所定の範囲内であり、かつ所定の値以上であると判定することができる。 Alternatively, the trigger event may be, for example, the transmission window size acquired a predetermined number of times most recently, for example, five times, being within a predetermined range and being 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. Then, when the value of the other transmission window size is within a predetermined range with respect to the maximum value wmax of the transmission window size values wt of the most recent five times, for example wmaxwt ≧0.9× wmax , and the predetermined value b≦ wt , the trigger detection unit 312 can determine 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.

これによって、スループットが所定の値以上で所定の期間通信しており、送信ウィンドウサイズが所定の期間に変動していない場合、すなわち高スループットの通信を行っている場合、大容量のストリーミングなどのアプリケーションを使用している場合があり、今後も高スループットの通信を継続する可能性が高いと判定することができる。このような場合、後述する方法で選択した中継ノード30を介して通信を行うことで、中継ノード30による通信の中継によるメリットが得られる。 As a result, if communication has been performed for a specified period of time with a throughput equal to or greater than a specified value and the transmission window size has not fluctuated during the specified 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 cases, by performing communication via a relay node 30 selected by the method described below, the benefits of relaying communication by the relay node 30 can be obtained.

また、トリガイベントは、例えば送信ウィンドウサイズが所定の値以上であることである。この場合、トリガ検出部312は、取得した送信ウィンドウサイズの値wtが所定の値b≦wtである場合に、中継ノード30による通信セッションの中継を行うと判断する。これによって、高スループットが要求されていると判定した場合に、中継ノード30を介して通信を行うことで、中継ノード30によってスループットの向上が可能となり、通信の中継によるメリットが得られる。 Moreover, the trigger event is, for example, a transmission window size being equal to or larger than a predetermined value. In this case, when the acquired transmission window size value wt is a predetermined value b≦ wt , the trigger detection unit 312 determines that the relay node 30 is to relay the communication session. As a result, when it is determined that high throughput is required, the relay node 30 can improve the throughput by performing communication via the relay node 30, and the relay node 30 provides an advantage in relaying communication.

中継ノード選択部313は、複数の中継ノード30のうちから、送信ノード10と受信ノード20との間の通信を中継させる中継ノード30を選択し、選択した中継ノード30に送信ノード10および受信ノード20との間のセッションを確立するよう指示する。中継ノード選択部313は、通信を中継させることでスループットを向上できる可能性が高い中継ノード30を選択する。図1を参照したように、パケットの往復にかかる往復遅延時間を短くすることでスループットを向上することができる。このため、本実施形態に係る中継ノード選択部313は、送信ノード10および受信ノード20のそれぞれと、中継ノード30との間の往復遅延時間に基づいて中継ノード30を選択する。一例では、送信ノード10および受信ノード20のうちのいずれかが、候補となる中継ノード30を選択し、他方が候補となる中継ノード30のうちから通信を中継させる中継ノード30を決定してもよい。 The relay node selection unit 313 selects a relay node 30 from among the multiple relay nodes 30 to relay communication between the transmitting node 10 and the receiving node 20, 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, one of the transmitting node 10 and the receiving node 20 may select a candidate relay node 30, and the other may determine a relay node 30 to relay communication from among the candidate relay nodes 30.

事前調整部314は、中継ノード選択部313で選択した中継ノード30に通信セッションを中継させる前に、送信ノード10と受信ノード20との間のセッション(切替前セッション)を維持したまま、送信ノード10と中継ノード30との間のセッション、および中継ノード30と受信ノード20との間のセッションを含むセッション(切替後セッション)の送信ウィンドウサイズを大きくするためのダミーデータの送受信を行う。これによって、切替後セッションに通信を切り替える前に、切替後セッションのスループットを向上することができる。 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 the 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.

セッション切替部315は、事前調整部314によって切替後セッションの事前調整を行った後に、送信ノード10と受信ノード20との間の切替前セッションから、切替後セッションに通信を切り替えるよう指示を送信する。 After the pre-adjustment unit 314 performs pre-adjustment of the post-switching session, the session switching unit 315 sends 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.

図4を参照して中継ノード30の構成を説明する。中継ノードは、一例において、プロセッサ401、ROM402、RAM403、記憶装置404、および通信回路405を有する。中継ノード30のプロセッサ401は、例えばROM402、RAM403及び記憶装置404のいずれかに記録されたプログラムを実行する。 The configuration of the relay node 30 will be described with reference to FIG. 4. In one example, the relay node has 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.

プロセッサ401は、プロセッサを実行することで、フロー制御部411、指示受付部412、および事前調整部413の機能を実行する。なお、プロセッサ401は、CPU(中央処理装置)、ASIC(特定用途向け集積回路)、FPGA(フィールドプログラマブルゲートアレイ)、DSP(デジタルシグナルプロセッサ)等の1つ以上のプロセッサを備える。また、プロセッサ401は、ROM402、RAM403、記憶装置404のいずれかに記憶されたプログラムを実行して、中継ノード30の全体を制御する。 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 the 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 the ROM 402, the RAM 403, or the storage device 404 to control the entire relay node 30.

通信回路405は、送信ノード10との間の通信セッションと、受信ノード20との間の通信セッションを同時に確立し、フロー制御部411は、それぞれのセッションを独立して制御する。一例では、通信回路405は、送信ノード10および受信ノード20のそれぞれと通信する複数の通信インタフェースを備える。 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 has multiple communication interfaces that communicate with each of the transmitting node 10 and the receiving node 20.

指示受付部412は、中継ノード選択部313から送信されたセッション確立指示を受信し、指示に応じて送信ノード10および受信ノード20のそれぞれとセッションを確立する。 The instruction receiving unit 412 receives a session establishment instruction sent from the relay node selection unit 313, and establishes a session with each of the transmitting node 10 and the receiving node 20 in accordance with the instruction.

事前調整部413は、指示受付部412が確立したセッションでダミーデータの送受信を行い、切替後セッションに通信を切り替える前に切替後セッションのウィンドウサイズを拡大する。 The pre-adjustment unit 413 sends 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.

図5を参照して、本実施形態に係る通信システム1が実行する処理シーケンスの一例について説明する。 With reference to Figure 5, an example of a processing sequence executed by the communication system 1 according to this embodiment will be described.

まず、S501で送信ノード10と受信ノード20はTCPセッションを確立し、S502で通信を開始する。ここで、トリガ検出部312は通信状況の監視を開始する。S501では、既存技術を使用してTCPセッションを確立することができる。なお、S502の通信開始後、図示していないが送信ノード10と受信ノード20とは切替元の通信セッションで通信を行うものとする。 First, in S501, the transmitting node 10 and the receiving node 20 establish a TCP session, and in S502, communication begins. At this point, the trigger detection unit 312 begins monitoring the communication status. In S501, a TCP session can be established using existing technology. After communication begins in S502, the transmitting node 10 and the receiving node 20 communicate using the communication session from which the switch was made, although this is not shown.

その後、トリガ検出部312は、S502においてS501で確立したセッション(切替前セッション)が中継ノード30の利用を行うと判定するための条件を満たしたか否かを判定する。 Then, in S502, the trigger detection unit 312 determines whether the session established in S501 (the session before switching) satisfies the conditions for determining to use the relay node 30.

中継ノード30の利用を行うと判定するための条件を満たさない場合は継続して通信状況の監視を継続する。中継ノード30の利用を行うと判定するための条件を満たすと判定した場合は、処理をS504に進め、中継ノード選択部313が中継ノード30の選択を行う。本実施形態では、送信ノード10の中継ノード選択部313は、候補となる中継ノード30の選択を行うものとする。S504では、送信ノード10の中継ノード選択部313は、複数の中継ノード30に対してpingコマンドなどの遅延時間を測定するプログラムを実行し、複数の中継ノード30のうちから、往復遅延時間が低い順に所定数、例えば5つの中継ノード30を選択する。 If the conditions for determining whether to use the relay node 30 are not met, the communication status continues to be monitored. If it is determined that the conditions for determining whether to use the relay node 30 are met, 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 that measures delay times of ping commands, etc., 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 shortest round-trip delay times.

なお、一例では、送信ノード10は複数の中継ノード30に対して所定の時間間隔、例えば1分ごとに往復遅延時間を測定し、測定した往復遅延時間を中継ノード30と対応付けて記憶装置304に記憶し、S504では記憶装置304に記憶した往復遅延時間に基づいて候補となる中継ノード30を選択してもよい。 In one example, the sending node 10 may measure the round-trip delay times for multiple 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 step S504, a candidate relay node 30 may be selected based on the round-trip delay times stored in the memory device 304.

S504で中継ノード30の選択を行った中継ノード選択部313は、S505に処理を進め、受信ノード20に中継要求信号を送信する。S505で受信ノード20に送信する中継要求信号には、切替前のセッションで使用している受信ノード20のTCP通信の宛先ポート番号と、S510で後述する切替処理において使用する送信側のセッション番号を通知する。セッション番号は、例えば疑似ランダム関数を使用して生成されてもよい。また、S505で中継ノード30に送信する中継要求信号は、候補となる中継ノード30と、それぞれの往復遅延時間とを対応付けたリストを含む。 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. In addition, the relay request signal transmitted to the relay node 30 in S505 includes a list that associates candidate relay nodes 30 with their respective round trip delay times.

なお、S504で送信ノード10の中継ノード選択部313が通信を中継する1つの中継ノード30を選択する場合には、中継要求信号には、切替前のセッションで使用しているTCP通信のポート番号と、S510で後述する切替処理において使用するセッション番号と、当該中継ノード30を指定する情報とが含まれればよい。このような場合、中継要求信号は、候補となる中継ノード30と、それぞれの往復遅延時間とを対応付けたリストを含まなくてもよい。 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 that associates candidate relay nodes 30 with their respective round-trip delay times.

S506で、受信ノード20は、中継要求信号に含まれるTCP通信の宛先ポート番号を通信に使用しているか否かを判定し、使用している場合には当該宛先ポート番号に対応するTCP通信を中継させると特定する。また、受信ノード20の中継ノード選択部313はS506で中継要求信号に含まれる候補中継ノードに対する往復遅延時間を取得し、通信を中継させる中継ノード30を選択する。S506では、受信ノード20の中継ノード選択部313は、複数の中継ノード30に対してpingコマンドなどの遅延時間を測定するプログラムを実行し、複数の中継ノード30のうちから、往復遅延時間が低い順に所定数、例えば5つの中継ノード30を選択する。あるいは、受信ノード20は複数の中継ノード30に対して所定の時間間隔、例えば1分ごとに往復遅延時間を測定し、測定した往復遅延時間を中継ノード30と対応付けて記憶装置304に記憶し、S506では記憶装置304に記憶した往復遅延時間に基づいて候補となる中継ノード30を選択してもよい。 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 obtains 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 that measures delay times such as ping commands 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 the shortest round-trip delay times. 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 candidate relay nodes 30 based on the round-trip delay times stored in the storage device 304.

ここで、S506で受信ノード20の中継ノード選択部313は、所定の中継ノード30と送信ノード10との間の往復遅延時間(送信側遅延時間)と、当該所定の中継ノード30と受信ノード20との間の往復遅延時間(受信側遅延時間)とに基づいて中継ノード30を選択する。 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 specific relay node 30 and the transmitting node 10 and the round-trip delay time (receiver delay time) between the specific relay node 30 and the receiving node 20.

一例では、複数の候補中継ノードのうち、送信側遅延時間と受信側遅延時間との合計が最も小さくなる中継ノード30に通信を中継させると決定する。なお、送信側遅延時間と受信側遅延時間とのいずれか一方が、送信ノード10と受信ノード20との間の往復遅延時間よりも大きい候補中継ノードについては、通信を中継させないと決定する。 In one example, it is determined that the communication is to be relayed by the relay node 30 among multiple candidate relay nodes that has the smallest sum of the sending side delay time and the receiving side delay time. Note that it is determined not to relay the communication for a candidate relay node for which either the sending side delay time or the receiving side delay time is greater than the round-trip delay time between the sending node 10 and the receiving node 20.

また、複数の候補中継ノードのうち、送信側遅延時間と受信側遅延時間との差が最も小さい中継ノード30に通信を中継させると決定してもよい。 It may also be determined that the communication is to be relayed by the relay node 30 among multiple candidate relay nodes that has the smallest difference between the sending side delay time and the receiving side delay time.

中継ノード30を選択した受信ノード20は、S507で選択した中継ノード30の識別情報を含む中継応答信号を送信ノード10に送信する。また、S507で受信ノード20は、S510で後述する切替処理において使用する受信側のセッション番号を通知する。セッション番号は、例えば疑似ランダム関数を使用して生成されてもよい。 The receiving node 20 that 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, for example, using a pseudo-random function.

中継応答信号を受信した送信ノード10は、S508において、中継応答信号に含まれる中継ノード30に中継指示信号を送信する。中継指示信号には、切替元のTCPセッション情報として、送信ノード10および受信ノード20のIPアドレスおよびポート番号、並びに送信側および受信側のセッション番号が含まれる。 In S508, the transmitting node 10 that has received the relay response signal transmits a relay instruction signal to the relay node 30 contained in the relay response signal. The relay instruction signal contains the IP addresses and port numbers of the transmitting node 10 and the receiving node 20, as well as the session numbers of the transmitting side and the receiving side, as the source TCP session information.

中継指示信号を受信した中継ノード30は、S509において中継通知信号を受信ノード20に送信する。中継通知信号には、TCPセッション情報として、切替元のTCPセッション情報として、送信ノード10および受信ノード20のIPアドレスおよびポート番号、並びに送信側および受信側のセッション番号が含まれる。 The relay node 30 that receives the relay instruction signal transmits a relay notification signal to the receiving node 20 in S509. The relay notification signal includes, as TCP session information of the switching source, the IP addresses and port numbers of the sending node 10 and the receiving node 20, and the session numbers of the sending side and the receiving side.

受信ノード20は、中継ノード30から受信したTCPセッション情報と、受信ノード20が記憶装置304に格納しているTCPセッション情報とが一致するか否かを判定する。情報が一致する場合、中継ノード30による中継を許可すると判断して、S510で中継通知応答を中継ノード30に送信する。中継通知応答には、受信ノード20が切替先のTCPセッションで使用する中継用受信ポート番号を示す情報と送信側および受信側のセッション番号を示す情報とが含まれる。 The receiving node 20 determines 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 determines that relaying by the relay node 30 is permitted, 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 and receiving sides.

中継通知応答を受信した中継ノード30は、S511で送信ノード10に中継指示応答を送信する。中継指示応答には、送信側および受信側のセッション番号を示す情報と、中継ノード30が送信ノード10とのTCPセッションの確立に使用する中継ポート番号を示す情報とが含まれる。 The relay node 30 that has received the relay notification response transmits a relay instruction response to the sending node 10 in S511. The relay instruction response includes information indicating the session numbers of the sending and receiving sides, and information indicating the relay port number that the relay node 30 uses to establish a TCP session with the sending node 10.

また、中継ノード30は、S511の中継指示応答と並行して、S512で受信ノード20とのTCPセッションを確立する。ここで、中継ノード30は、中継通知応答に含まれる中継用受信ポート番号を指定してTCPセッションを確立する。 In addition, 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.

中継指示応答を受信した送信ノード10は、S513で中継ノード30に応答確認信号を送信する。応答確認信号には、送信側および受信側のセッション番号が含まれる。 The sending node 10 that receives the relay instruction response transmits a response confirmation signal to the relay node 30 in S513. The response confirmation signal includes the session numbers of the sending side and the receiving side.

また、S513で応答確認信号を受信した送信ノード10は、S514で中継ノード30とのTCPセッションを確立する。S514では、送信ノード10はS511で受信した中継指示応答に含まれる中継ポート番号を指定してTCPセッションを確立する。 Furthermore, the sending node 10, which received the response confirmation signal in S513, establishes a TCP session with the relay node 30 in S514. In S514, the sending node 10 specifies the relay port number included in the relay instruction response received in S511 to establish a TCP session.

S515で、送信ノード10は、調整設定信号を受信ノード20に送信する。調整設定信号には、例えば、切替先のTCPセッションのウィンドウサイズが超えるべき閾値を指示する情報を含む。例えば、閾値は、1MBなどの固定値であっても良いし、切替元のTCPセッションのウィンドウサイズに基づいて決定されてもよい。 At S515, the sending node 10 sends 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 must 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.

別の例では、調整設定信号には送信するダミーデータの量を指示する情報を含む。一例では、切替元のTCPセッションのウィンドウサイズに基づいて決定されてもよい。例えば、切替元のTCPセッションの最大ウィンドウサイズの2倍のダミーデータを送信すれば、パケットロスがない場合にはウィンドウサイズが切替元のTCPセッションと同一になる。このため、一例では切替元のTCPセッションの最大ウィンドウサイズの2倍のダミーデータを送信するように送信するダミーデータの量を指示してもよい。これによって、送信ノード10は、切替先のTCPセッションのウィンドウサイズが所定の値より大きくなるまで事前通信を行うことができる。 In another example, the adjustment setting signal includes information indicating the amount of dummy data to be transmitted. In one example, this may be determined based on the window size of the source TCP session. For example, if dummy data twice the maximum window size of the source TCP session is transmitted, the window size will be the same as that of the source TCP session if there is no packet loss. Therefore, in one example, the amount of dummy data to be transmitted may be indicated so that dummy data twice the maximum window size of the source TCP session is transmitted. This allows the transmitting node 10 to perform pre-communication until the window size of the destination TCP session becomes larger than a predetermined value.

S516で、受信ノード20は、調整設定信号への応答である設定応答信号を送信ノード10に送信する。S517で、送信ノード10は中継ノード30にダミーデータの送信を行う事前通信を行う。中継ノード30は、受信したダミーデータを受信ノード20に転送する。ダミーデータは、例えば擬似ランダムビット列であってもよい。ダミーデータの送信に成功することで、送信ノード10と中継ノード30との間のTCPセッションと、中継ノード30と受信ノード20との間のTCPセッションのウィンドウサイズを大きくすることができる。 At S516, the receiving node 20 transmits a setting response signal to the transmitting node 10 in 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.

S518で、送信ノード10および受信ノード20は、通信セッションを切り替えると判定する。一例では、送信ノード10および受信ノード20は、調整設定信号で指定した量のダミーデータの送受信が終了した場合に通信セッションを切り替えると判定する。また一例では、送信ノード10および受信ノード20は、切替先のTCPセッションのウィンドウサイズが所定の値以上になった場合に通信セッションを切り替えると判定する。なお、一例では、送信ノード10と受信ノード20と、または送信ノード10と中継ノード30とは、送信ノード10と中継ノード30との間のTCPセッションのウィンドウサイズと、受信ノード20と中継ノード30との間のTCPセッションのウィンドウサイズとに関する情報を送受信してもよい。 At 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 has ended. 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.

S518で通信セッションを切り替えると判定した場合、送信ノード10は、切替元のTCPセッションで送信していたデータ通信を切替先のTCPセッションで送信する。これによって、ウィンドウサイズが大きくなった状態でTCPセッションを切り替えることができる。 If it is determined in S518 that the communication session should be switched, the sending node 10 transmits the data communication that was being sent in the original TCP session in the new TCP session. This allows the TCP session to be switched with the window size increased.

以上説明したように、本実施形態にかかる通信制御装置は、送信ノード10と受信ノード20との間のラウンドトリップタイムより、送信ノード10と中継ノード30との間のラウンドトリップタイムおよび中継ノード30と受信ノード20との間のラウンドトリップタイムが小さい中継ノード30にTCPセッションを中継させると決定する。これによって、中継ノードによって通信を中継させることでスループットの向上が期待できる。 As described above, the communication control device according to this embodiment determines to relay a TCP session to a relay node 30 whose round trip time between the transmitting node 10 and the relay node 30 and 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. This is expected to improve throughput by relaying communications through the relay node.

また、本実施形態にかかる通信制御装置は、送信ノード10と受信ノード20との間のTCPセッションを中継する中継ノード30を決定し、中継ノード30を介した切替先のTCPセッションを確立する。そして、切替先のTCPセッションで、切替元のTCPセッションの通信とは関連しない事前通信を行う。そして、切替先のTCPセッションのウィンドウサイズが所定の値以上になった場合に、切替元のTCPセッションに対応付けられた通信を切替先のTCPセッションにおいて行う。これによって、スループットが向上できる状況においてTCPセッションの切替を行うことができ、中継ノード30による通信の中継を適切なタイミングで開始することができる。 The communication control device according to this embodiment also determines a relay node 30 that will relay the TCP session between the sending node 10 and the receiving node 20, and establishes a switching destination TCP session via the relay node 30. Then, in the switching destination TCP session, pre-communication that is not related to the communication of the switching source TCP session is performed. Then, when the window size of the switching destination TCP session becomes equal to or greater than a predetermined value, communication associated with the switching source TCP session is performed in the switching destination TCP session. This allows TCP session switching to be performed in a situation where throughput can be improved, and relaying of communication by the relay node 30 can be started at an appropriate time.

また、本実施形態にかかる通信制御装置は、送信ノード10と受信ノード20との間のTCPセッションが、通信の中継によってメリットが得られると判断できる所定の条件を満たした場合に中継ノード30を決定し、中継ノード30を介した切替先のTCPセッションの確立とセッションの切替を開始する。これによって、通信の中継によってメリットが得られない状況で切替先のTCPセッションへの切替を行い、中継ノード30に負荷がかかることを避けることができる。 The communication control device according to this embodiment also determines a relay node 30 when a TCP session between a sending node 10 and a receiving node 20 satisfies a predetermined condition that determines that a benefit will be gained by relaying the communication, and initiates the establishment of a switching destination TCP session via the relay node 30 and session switching. This makes it possible to avoid switching to a switching destination TCP session in a situation where no benefit will be gained by relaying the communication, thereby avoiding a load on the relay node 30.

<その他の実施形態>
本実施形態では、中継ノード選択部313は、送信ノード10と中継ノード30との間の往復遅延時間(送信側遅延時間)と、受信ノード20と中継ノード30との間の往復遅延時間(受信側遅延時間)とに基づいて中継ノード30を選択するものとして説明を行った。一例では、中継ノード選択部313は、記憶装置304に過去の通信における最大ウィンドウサイズを記憶し、送信ノード10と中継ノード30との間の最大ウィンドウサイズ(送信側ウィンドウサイズ)と、受信ノード20と中継ノード30との間の最大ウィンドウサイズ(受信側ウィンドウサイズ)とに基づいて中継ノード30を選択してもよい。例えば、以下の評価値Sが最大となる中継ノード30を選択することで、高いスループットを期待することができる中継ノード30に通信を中継させることができる。
<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 (transmission side delay time) between the transmitting node 10 and the relay node 30 and the round trip delay time (reception side 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 (transmission side window size) between the transmitting node 10 and the relay node 30 and the maximum window size (reception side 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.

S=min{(送信側ウィンドウサイズ)/(送信側遅延時間)、(受信側ウィンドウサイズ)/(受信側遅延時間)}
ここで、min{}は2つの値のうち最小のものを選ぶ関数である。
S = min {(sender window size)/(sender delay time), (receiver window size)/(receiver delay time)}
Here, min{ } is a function that selects the minimum of two values.

また、本実施形態において、S508~S511、およびS513、S515、S516で送信される信号に含まれる送信側および受信側のセッション番号は、信号の送信元の正当性を検証するために使用される。しかしながら、信号の送信元の正当性を検証するために他の認証技術を適用してもよく、このような場合にはS508~S511、およびS513、S515、S516で送信される信号には送信側および受信側のセッション番号が含まれなくてもよい。 In addition, in this embodiment, the sender and receiver session numbers included in the signals transmitted in S508 to S511, and S513, S515, and S516 are used to verify the authenticity of the signal sender. However, other authentication techniques may be applied to verify the authenticity of the signal sender, and in such cases, the signals transmitted in S508 to S511, and S513, S515, and S516 may not include the sender and receiver session numbers.

本実施形態では、S503の処理では、切替元のTCPセッションのウィンドウサイズのみに基づいて中継ノード30を介したTCPセッションの確立を行うか否かを判断するものとして説明を行った。一例では、候補中継ノードまでのラウンドトリップタイムに基づいてS503の処理が実行されてもよい。例えば、送信ノード10は、受信ノード20との間のラウンドトリップタイム(w)および候補中継ノードとの間のラウンドトリップタイム(wt1)を測定し、受信ノード20との間のラウンドトリップタイムより所定の割合以上小さいラウンドトリップタイムの候補中継ノードを検出した場合に、トリガイベントが発生したと判定してもよい。例えば、wt1<0.8×wを満たす候補中継ノードを検出した場合にトリガイベントが発生したと判定してもよい。このような場合、S506で候補中継ノードと受信ノード20との間のラウンドトリップタイム(wt2)を測定させ、S507でwt2を受信し、wt2<0.8×wの場合に、当該候補中継ノードと切替後のTCPセッションを確立すると判定してもよい。 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 TCP session at the switching source. 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 measure the round trip time (w t ) between the receiving node 20 and the round trip time (w t1 ) between the receiving node 20 and the candidate relay node, and may determine that a trigger event has occurred when a candidate relay node with a round trip time smaller than the round trip time between the receiving node 20 by a predetermined percentage or more may be detected. For example, a trigger event may be determined to have occurred when a candidate relay node that satisfies w t1 < 0.8 × w t is detected. In such a case, the round trip time (w t2 ) between the candidate relay node and the receiving node 20 may be measured in S506, w t2 may be received in S507, and if w t2 < 0.8 × w t , it may be determined that a TCP session after switching is to be established with the candidate relay node.

なお、本発明による通信装置、つまり、上述した送信ノード10、受信ノード20、および中継ノードは、デバイスの1つ以上のプロセッサで実行されると、当該デバイスを送信ノード10及び/又は受信ノード20及び/又は中継ノード30として動作させるプログラムにより実現することができる。これらプログラムは、デバイス可読記憶媒体に格納されて、又は、ネットワーク経由で配布が可能なものである。 The communication device according to the present invention, i.e., 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.

発明は上記の実施形態に制限されるものではなく、発明の要旨の範囲内で、種々の変形・変更が可能である。 The invention is not limited to the above-described embodiment, and various modifications and variations are possible within the scope of the invention.

10:送信ノード、20:受信ノード、30:中継ノード 10: Sending node, 20: Receiving node, 30: Relay node

Claims (11)

送信元ノードまたは宛先ノードに備えられる通信制御装置であって、
通信を行っている切替元のTransmission Control Protocol(TCP)セッションが所定の条件を満たすか否かを判定する判定手段と、
複数の候補中継ノードのうちから、前記切替元のTCPセッションに対応する前記通信を中継させる中継装置を決定する決定手段と、
前記判定手段で前記切替元のTCPセッションが前記所定の条件を満たすと判定した場合に、前記決定手段で決定した前記中継装置と、前記切替元のTCPセッションの前記送信元ノードおよび前記宛先ノードのそれぞれとの間で切替先のTCPセッションを確立し、前記切替先のTCPセッションにおいて、前記切替元のTCPセッションに関連付けられた前記通信とは異なる事前通信の実行を指示する指示手段と、
前記事前通信を行った後に、前記切替元のTCPセッションから前記切替先のTCPセッションへ前記通信を切り替える切替手段と、
を備えることを特徴とする通信制御装置。
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:
前記所定の条件は、直近の所定の期間において複数回取得した前記切替元のTCPセッションのウィンドウサイズが所定の範囲に含まれることであることを特徴とする請求項1に記載の通信制御装置。 The communication control device according to claim 1, characterized in that the specified condition is that the window size of the switching source TCP session acquired multiple times in the most recent specified period is within a specified range. 前記所定の条件は、直近の所定の期間において取得した前記切替元のTCPセッションのウィンドウサイズが所定の閾値以上であることであることを特徴とする請求項1または2に記載の通信制御装置。 The communication control device according to claim 1 or 2, characterized in that the specified condition is that the window size of the switching source TCP session acquired during the most recent specified period is equal to or larger than a specified threshold. 前記決定手段は、
前記複数の候補中継ノードのそれぞれについて、前記送信元ノードとの間のパケットの往復にかかる第1の遅延時間と、前記宛先ノードとの間のパケットの往復にかかる第2の遅延時間とを取得し、
前記第1の遅延時間および前記第2の遅延時間が前記送信元ノードと前記宛先ノードとの間のパケットの往復にかかる遅延時間より小さい候補中継ノードを前記中継装置として決定することを特徴とする請求項1から3のいずれか1項に記載の通信制御装置。
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.
前記決定手段は、前記複数の候補中継ノードのそれぞれの前記第1の遅延時間と前記第2の遅延時間との合計が最も小さい候補中継ノードを前記中継装置として決定することを特徴とする請求項4に記載の通信制御装置。 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. 前記決定手段は、前記複数の候補中継ノードのそれぞれの前記第1の遅延時間と前記第2の遅延時間との差が最も小さい候補中継ノードを前記中継装置として決定することを特徴とする請求項4に記載の通信制御装置。 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. 前記指示手段は、前記事前通信において所定の量のダミーデータの通信を行うよう指示し、
前記所定の量は、前記切替元のTCPセッションのウィンドウサイズに基づいて決定されることを特徴とする請求項1から6のいずれか1項に記載の通信制御装置。
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.
前記切替手段は、前記切替先のTCPセッションのウィンドウサイズが前記切替元のTCPセッションのウィンドウサイズ以上になった場合に前記切替先のTCPセッションに通信を切り替えることを特徴とする請求項1から3のいずれか1項に記載の通信制御装置。 The communication control device according to any one of claims 1 to 3, characterized in that the switching means switches communication to the destination TCP session when the window size of the destination TCP session becomes equal to or larger than the window size of the source TCP session. 送信元ノードまたは宛先ノードに備えられる通信制御装置によって実行される通信制御方法であって、
通信を行っている切替元のTransmission Control Protocol(TCP)セッションが所定の条件を満たすか否かを判定することと、
複数の候補中継ノードのうちから、前記切替元のTCPセッションに対応する前記通信を中継させる中継装置を決定することと、
前記切替元のTCPセッションが前記所定の条件を満たすと判定した場合に、決定した前記中継装置と、前記切替元のTCPセッションの前記送信元ノードおよび前記宛先ノードのそれぞれとの間で切替先のTCPセッションを確立し、前記切替先のTCPセッションにおいて前記切替元のTCPセッションに関連付けられた前記通信とは異なる事前通信の実行を指示することと、
前記事前通信を行った後に、前記切替元のTCPセッションから前記切替先のTCPセッションへ前記通信を切り替えることと、
を含むことを特徴とする通信制御方法。
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:
送信ノード、受信ノード、および中継ノードを含む通信システムであって、
前記送信ノードと前記受信ノードとの通信を行っている切替元のTransmission Control Protocol(TCP)セッションが所定の条件を満たすか否かを判定する判定手段と、
複数の候補中継ノードのうちから、前記切替元のTCPセッションに対応する前記通信を中継させる中継装置を決定する決定手段と、
前記切替元のTCPセッションが前記所定の条件を満たすと判定した場合に、前記決定手段で決定した前記中継装置と、前記送信ノードおよび前記受信ノードのそれぞれとの間で切替先のTCPセッションを確立し、前記切替先のTCPセッションにおいて、前記切替元のTCPセッションに関連付けられた前記通信とは異なる事前通信の実行を指示する指示手段と、
前記事前通信を行った後に、前記切替元のTCPセッションから前記切替先のTCPセッションへ前記通信を切り替える切替手段と、
を備えることを特徴とする通信システム。
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:
1つ以上のプロセッサを有する装置の前記1つ以上のプロセッサで実行されると、前記装置を、請求項1から8のいずれか1項に記載の通信制御装置として機能させることを特徴とするプログラム。 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 .
JP2022053602A 2022-03-29 2022-03-29 COMMUNICATION CONTROL DEVICE, CONTROL METHOD, COMMUNICATION SYSTEM, AND PROGRAM Active JP7680392B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022053602A JP7680392B2 (en) 2022-03-29 2022-03-29 COMMUNICATION CONTROL DEVICE, CONTROL METHOD, COMMUNICATION SYSTEM, AND PROGRAM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022053602A JP7680392B2 (en) 2022-03-29 2022-03-29 COMMUNICATION CONTROL DEVICE, CONTROL METHOD, COMMUNICATION SYSTEM, AND PROGRAM

Publications (2)

Publication Number Publication Date
JP2023146423A JP2023146423A (en) 2023-10-12
JP7680392B2 true JP7680392B2 (en) 2025-05-20

Family

ID=88286698

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022053602A Active JP7680392B2 (en) 2022-03-29 2022-03-29 COMMUNICATION CONTROL DEVICE, CONTROL METHOD, COMMUNICATION SYSTEM, AND PROGRAM

Country Status (1)

Country Link
JP (1) JP7680392B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4138506A1 (en) * 2021-08-19 2023-02-22 Advanced Digital Broadcast S.A. A method and a system for accessing a wireless channel in a dense environment

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013121028A (en) 2011-12-07 2013-06-17 Nippon Telegr & Teleph Corp <Ntt> Data packet transmission method and system
JP2014078895A (en) 2012-10-11 2014-05-01 Toshiba Corp Server device and communication system
JP2016129274A (en) 2015-01-09 2016-07-14 株式会社日立製作所 Communication device, control method therefor and control program
JP2017139567A (en) 2016-02-02 2017-08-10 エヌ・ティ・ティ・コミュニケーションズ株式会社 Terminal, relay device selection device, communication method, relay device selection method, and program

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013121028A (en) 2011-12-07 2013-06-17 Nippon Telegr & Teleph Corp <Ntt> Data packet transmission method and system
JP2014078895A (en) 2012-10-11 2014-05-01 Toshiba Corp Server device and communication system
JP2016129274A (en) 2015-01-09 2016-07-14 株式会社日立製作所 Communication device, control method therefor and control program
JP2017139567A (en) 2016-02-02 2017-08-10 エヌ・ティ・ティ・コミュニケーションズ株式会社 Terminal, relay device selection device, communication method, relay device selection method, and program

Also Published As

Publication number Publication date
JP2023146423A (en) 2023-10-12

Similar Documents

Publication Publication Date Title
US7756032B2 (en) Method and apparatus for communicating data within measurement traffic
US10795745B2 (en) Dynamic and adaptive approach for failure detection of node in a cluster
EP3761591B1 (en) Tcp link configuration method, apparatus, and computer program product
US9641650B2 (en) TCP proxy server
KR101071035B1 (en) Method for calculating a transmission window size
US8705381B2 (en) Communication embodiments and low latency path selection in a multi-topology network
CN112217723A (en) Method for establishing routing table, electronic equipment and network
WO2017035763A1 (en) Data packet transmission method utilized in ipv6 network and device utilizing same
JP4708978B2 (en) Communication system, communication terminal, session relay device, and communication protocol realizing high throughput
US20220094680A1 (en) Bi-directional forwarding detection authentication
JP7680392B2 (en) COMMUNICATION CONTROL DEVICE, CONTROL METHOD, COMMUNICATION SYSTEM, AND PROGRAM
KR20200083582A (en) Systems and methods for accelerating or decelerating data transmission network protocols based on real-time transmission network congestion conditions
WO2017107148A1 (en) Method of transmitting data and network equipment
JPWO2008108144A1 (en) Pseudo response frame communication system, pseudo response frame communication method, and pseudo response frame transmission apparatus
WO2004040861A1 (en) Communication system and method
JP2010161616A (en) Communication apparatus, communication system, communication method, program, and integrated circuit
US9537764B2 (en) Communication apparatus, control apparatus, communication system, communication method, method for controlling communication apparatus, and program
CN108574615B (en) Content transmission method, device and system based on multipath MPTCP
KR102131427B1 (en) Method and apparatus for performing a congestion control in stream control transmission protocol
JP4884921B2 (en) COMMUNICATION CONTROL DEVICE, RADIO COMMUNICATION DEVICE, COMMUNICATION CONTROL METHOD, AND RADIO COMMUNICATION METHOD
JP5662779B2 (en) Communication system and node device
WO2018036613A1 (en) A method, network node and system for controlling tethering
WO2002033893A2 (en) Method and apparatus for communicating data within measurement traffic
JP2008053888A (en) COMMUNICATION DEVICE, PROGRAM, INFORMATION STORAGE MEDIUM, AND COMMUNICATION CONTROL METHOD
Tode et al. A Novel Transport Protocol Suitable for Bufferless Optical Packet Switching Networks

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240201

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20241220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20250106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20250305

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20250414

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20250508

R150 Certificate of patent or registration of utility model

Ref document number: 7680392

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150