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 - 通信制御装置、制御方法、通信システム、及びプログラム - Google Patents
[go: Go Back, main page]

JP7680392B2 - 通信制御装置、制御方法、通信システム、及びプログラム - Google Patents

通信制御装置、制御方法、通信システム、及びプログラム 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
English (en)
Other versions
JP2023146423A (ja
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/ja
Publication of JP2023146423A publication Critical patent/JP2023146423A/ja
Application granted granted Critical
Publication of JP7680392B2 publication Critical patent/JP7680392B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、TCPセッションの中継を行う通信システムにおける通信制御装置、制御方法、通信システム、及びプログラムに関する。
ネットワークを介したデータの送受信のためにTCP(伝送制御プロトコル)が使用されている。TCPによるデータの送受信においてはフロー制御が行われる(引用文献1、2)。データを受信する通信装置(以下、受信装置)は、データを送信する通信装置(以下、送信装置)からのパケットの受信状況を肯定応答(ACK)又は否定応答(NACK)で送信装置に通知する。なお、ACKはパケットを正常に受信していることを示し、NACKは損失パケットが生じたことを示す。
フロー制御において、送信装置は送信ウィンドウサイズを管理する。送信ウィンドウサイズは、送信装置が、受信装置からのACKを受信することなく送信できるパケット数を規定する。送信装置は、受信装置から報告される受信状況、つまり、ACK又はNACKに基づき送信ウィンドウサイズを増減させる。一般的に、送信装置は、NACKを受信すると送信ウィンドウサイズを減少させ、ACKのみを受信している間、所定のアルゴリズムに従い送信ウィンドウサイズを増加させる。送信ウィンドウサイズに応じて送信装置が送信するパケット数がネットワークの状態に応じて調整され、フロー制御が実現される。
従来のTCP通信では、往復遅延時間(ラウンドトリップタイム)が大きい環境で高速なTCP通信を実現しようとすると、送信ウィンドウサイズを大きくすることが必要であるが、送信ウィンドウサイズは通信が成功したことで拡大するため、通信の途中でデータロスが発生すれば、送信ウィンドウサイズの拡大が妨げられる。インターネットでは、データロスを完全になくすことができないため、ある程度の通信速度に頭打ちする。
図1(A)に示すように、送信機と受信機との間の2つのノードの間でTCP通信を行うとき、送信ウィンドウサイズがwtで、パケットの往復にかかる遅延時間(往復遅延時間)がrtのとき、そのスループットはwt/rtとなり、往復遅延時間に反比例してスループットが低下する。
非特許文献2は、往復遅延時間が大きい環境で、高速通信を実現する手段に、TCP通信を中継する方法を開示している。TCP通信を中継する場合には、中継ノードが受信機能と送信機能を備える。図1(B)に示すように、送信・受信ノードの間の往復遅延時間よりも、各区間(送信ノードと中継ノードの区間と、中継ノードと受信ノードの区間)の往復遅延時間rt1、rt2が小さい中継ノードを選択することで、スループットを向上することが可能になる。
"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.
ここで、送受信間の通信を開始する時点で中継ノードによって送受信間の通信を中継させる場合、送受信間の通信が十分に高速な速度に達する前に通信を終了する場合があり、中継ノードによるスループットの向上のメリットが得られないまま中継ノードに負荷がかかるという課題があった。
本発明は、上記課題に鑑みてなされたものであり、通信中のTCPセッションを中継ノードによって中継されるTCPセッションに適切に切り替える技術を提供するものである。
本発明の一態様によると、送信元ノードまたは宛先ノードに備えられる通信制御装置は、
通信を行っている切替元のTransmission Control Protocol(TCP)セッションが所定の条件を満たすか否かを判定する判定手段と、
複数の候補中継ノードのうちから、前記切替元のTCPセッションに対応する前記通信を中継させる中継装置を決定する決定手段と、
前記判定手段で前記切替元のTCPセッションが前記所定の条件を満たすと判定した場合に、前記決定手段で決定した前記中継装置と、前記切替元のTCPセッションの前記送信元ノードおよび前記宛先ノードのそれぞれとの間で切替先のTCPセッションを確立し、前記切替先のTCPセッションにおいて、前記切替元のTCPセッションに関連付けられた前記通信とは異なる事前通信の実行を指示する指示手段と、
前記事前通信を行った後に、前記切替元のTCPセッションから前記切替先のTCPセッションへ前記通信を切り替える切替手段と、
を備えることを特徴とする。
本発明によると、通信中のTCPセッションを中継ノードによって中継されるTCPセッションに適切に切り替える技術を提供することができる。
(A)は中継ノードを含まないTCPセッションのスループットを示す図、(B)は中継ノードを含むTCPセッションのスループットを示す図。 本実施形態に係る通信システムの説明図。 送信ノードおよび受信ノードの構成図。 中継ノードの構成図。 通信システムが実行する処理を示すシーケンス図。
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものでなく、また実施形態で説明されている特徴の組み合わせの全てが発明に必須のものとは限らない。実施形態で説明されている複数の特徴うち二つ以上の特徴が任意に組み合わされてもよい。また、同一若しくは同様の構成には同一の参照番号を付し、重複した説明は省略する。
本実施形態に係る通信システムは、送信ノードと受信ノードとの間のTCPセッションにおける通信を開始した後に、適切なタイミングで送信ノードと中継ノードとの間、および中継ノードと受信ノードとの間のTCPセッションに切り替えて通信を行う。これによって、通信速度が高くなる前に通信すべきデータがなくなり、通信を終了し、中継ノードの挿入による速度向上のメリットが得られないまま中継ノードの処理負荷を無駄に高めることになることを避けることができる。
図2は本実施形態に係る通信システムを示す図である。図2に示す通信システム1は、送信ノード10、受信ノード20、および複数の中継ノード30を含む。送信ノード10、受信ノード20、および複数の中継ノード30は、ネットワーク2を介して通信可能に接続された通信装置である。
送信ノード10は、受信ノード20とのTCPセッションを確立し、フロー制御を実行してデータ通信を行い、中継ノード30による中継を行わせるか否かを判定する通信制御装置の一例である。送信ノード10は、例えばインターネット上のサーバである。受信ノード20は、例えばスマートフォン、パーソナルコンピュータを含むユーザ装置である。
ネットワーク2は、TCP方式を使用してパケットの送受信が可能なネットワークであり、少なくとも一部にインターネットを含んでもよい。
中継ノード30は、送信ノード10および受信ノード20のそれぞれとTCPセッションを確立し、それぞれの通信区間でフロー制御を実行して送信ノード10から受信したデータパケットを受信ノード20に転送することで通信の中継を行う通信装置である。本実施形態では、図1に示すように送信ノード10が、3つの中継ノード30のうちから通信を中継させる中継ノード30を選択するものとして説明する。しかしながら、中継ノードの数は3つに限定されず、1つ以上であればよい。
図3を参照して本実施形態に係る送信ノード10および受信ノード20の構成を説明する。送信ノード10および受信ノード20は、一例において、プロセッサ301、ROM302、RAM303、記憶装置304、および通信回路305を有する。送信ノード10および受信ノード20のプロセッサ301は、例えばROM(Read Only Memory)302、RAM(Random Access Memory)303及び記憶装置304のいずれかに記録されたプログラムを実行する。
プロセッサ301は、プロセッサを実行することで、フロー制御部311、トリガ検出部312、中継ノード選択部313、事前調整部314、セッション切替部315の機能を実行する。なお、プロセッサ301は、CPU(中央処理装置)、ASIC(特定用途向け集積回路)、FPGA(フィールドプログラマブルゲートアレイ)、DSP(デジタルシグナルプロセッサ)等の1つ以上のプロセッサを備える。また、プロセッサ301は、ROM302、RAM303、記憶装置304のいずれかに記憶されたプログラムを実行して、送信ノード10および受信ノード20の全体を制御する。
なお、送信ノード10および受信ノード20は、各機能を実行する専用のハードウェアを備えてもよいし、一部をハードウェアで実行し、プログラムを動作させるコンピュータでその他の部分を実行してもよい。また、全機能がコンピュータとプログラムにより実行されてもよい。
また、送信ノード10および受信ノード20のいずれか一方がトリガ検出部312、中継ノード選択部313、事前調整部314、およびセッション切替部315の機能を有すればよい。すなわち、送信ノード10および受信ノード20の少なくともいずれかに通信制御装置としての機能が備えられればよく、送信ノード10および受信ノード20によって通信制御装置としての機能が実現されてもよい。本実施形態では、送信ノード10がトリガ検出部312、中継ノード選択部313、事前調整部314、およびセッション切替部315の機能を有するものとして説明を行う。
フロー制御部311は、TCPセッションにおいて送信ウィンドウサイズに従ってデータパケットを送信し、データパケットへの応答として受信したACK/NACK信号に基づいて送信ウィンドウサイズの制御を行う。
トリガ検出部312は、送受信間のTCPセッションを監視し、トリガイベントが発生したことを検出する。トリガイベントが発生したことを検出した場合は、中継ノード30によって送信ノード10と受信ノード20との間の通信を中継させる。
トリガイベントは、例えば送信ウィンドウサイズが所定の期間の間、例えば30秒間、変動していないことである。例えば、トリガイベントは、所定の期間内における送信ウィンドウサイズwtが、所定の期間内における最大送信ウィンドウサイズwmaxの最大値から所定の範囲内、すなわちa×wmax≦wt≦wmaxであることである。ここで、aはウィンドウサイズの範囲を定義する変数で0<a<1である。一例では、a=0.9である。
あるいは、トリガイベントは、例えば直近の所定の回数、例えば5回、取得した送信ウィンドウサイズが所定の範囲内であることである。この場合、トリガ検出部312は、取得した送信ウィンドウサイズをRAM303または記憶装置304に記憶する。そしてトリガ検出部312は、直近の5回の送信ウィンドウサイズの値wtのうちの最大値wmaxに対して他の送信ウィンドウサイズの値が所定の範囲内である、例えばwmax≧wt≧0.9×wmaxである場合に、直近の所定の回数取得した送信ウィンドウサイズが所定の範囲内であると判定することができる。
これによって、所定の期間内において、最大送信ウィンドウサイズに対する送信ウィンドウサイズの変動が小さい場合、すなわち最大送信ウィンドウサイズ以上に送信ウィンドウサイズの上昇が期待できない場合に、後述する方法で選択した中継ノード30を介して通信することで、スループットの向上が期待できる。
別の例では、トリガイベントは、例えば送信ウィンドウサイズが所定の期間内に変動しておらず、かつ所定の値以上であることである。例えば、トリガイベントは、所定の期間内における送信ウィンドウサイズwtが、所定の期間内における最大送信ウィンドウサイズwmaxの最大値から所定の範囲内、すなわちa×wmax≦wt≦wmaxであり、かつ所定の値b≦wtであることである。ここで、bは中継ノードの導入を可能にする閾値であり、例えばb=10Mbpsなどの値である。
あるいは、トリガイベントは、例えば直近の所定の回数、例えば5回、取得した送信ウィンドウサイズが所定の範囲内であり、かつ取得した送信ウィンドウサイズが所定の値以上であることである。この場合、トリガ検出部312は、取得した送信ウィンドウサイズをRAM303または記憶装置304に記憶する。そしてトリガ検出部312は、直近の5回の送信ウィンドウサイズの値wtのうちの最大値wmaxに対して他の送信ウィンドウサイズの値が所定の範囲内、例えばwmax≧wt≧0.9×wmaxであり、かつ所定の値b≦wtである場合に、直近の所定の回数取得した送信ウィンドウサイズが所定の範囲内であり、かつ所定の値以上であると判定することができる。
これによって、スループットが所定の値以上で所定の期間通信しており、送信ウィンドウサイズが所定の期間に変動していない場合、すなわち高スループットの通信を行っている場合、大容量のストリーミングなどのアプリケーションを使用している場合があり、今後も高スループットの通信を継続する可能性が高いと判定することができる。このような場合、後述する方法で選択した中継ノード30を介して通信を行うことで、中継ノード30による通信の中継によるメリットが得られる。
また、トリガイベントは、例えば送信ウィンドウサイズが所定の値以上であることである。この場合、トリガ検出部312は、取得した送信ウィンドウサイズの値wtが所定の値b≦wtである場合に、中継ノード30による通信セッションの中継を行うと判断する。これによって、高スループットが要求されていると判定した場合に、中継ノード30を介して通信を行うことで、中継ノード30によってスループットの向上が可能となり、通信の中継によるメリットが得られる。
中継ノード選択部313は、複数の中継ノード30のうちから、送信ノード10と受信ノード20との間の通信を中継させる中継ノード30を選択し、選択した中継ノード30に送信ノード10および受信ノード20との間のセッションを確立するよう指示する。中継ノード選択部313は、通信を中継させることでスループットを向上できる可能性が高い中継ノード30を選択する。図1を参照したように、パケットの往復にかかる往復遅延時間を短くすることでスループットを向上することができる。このため、本実施形態に係る中継ノード選択部313は、送信ノード10および受信ノード20のそれぞれと、中継ノード30との間の往復遅延時間に基づいて中継ノード30を選択する。一例では、送信ノード10および受信ノード20のうちのいずれかが、候補となる中継ノード30を選択し、他方が候補となる中継ノード30のうちから通信を中継させる中継ノード30を決定してもよい。
事前調整部314は、中継ノード選択部313で選択した中継ノード30に通信セッションを中継させる前に、送信ノード10と受信ノード20との間のセッション(切替前セッション)を維持したまま、送信ノード10と中継ノード30との間のセッション、および中継ノード30と受信ノード20との間のセッションを含むセッション(切替後セッション)の送信ウィンドウサイズを大きくするためのダミーデータの送受信を行う。これによって、切替後セッションに通信を切り替える前に、切替後セッションのスループットを向上することができる。
セッション切替部315は、事前調整部314によって切替後セッションの事前調整を行った後に、送信ノード10と受信ノード20との間の切替前セッションから、切替後セッションに通信を切り替えるよう指示を送信する。
図4を参照して中継ノード30の構成を説明する。中継ノードは、一例において、プロセッサ401、ROM402、RAM403、記憶装置404、および通信回路405を有する。中継ノード30のプロセッサ401は、例えばROM402、RAM403及び記憶装置404のいずれかに記録されたプログラムを実行する。
プロセッサ401は、プロセッサを実行することで、フロー制御部411、指示受付部412、および事前調整部413の機能を実行する。なお、プロセッサ401は、CPU(中央処理装置)、ASIC(特定用途向け集積回路)、FPGA(フィールドプログラマブルゲートアレイ)、DSP(デジタルシグナルプロセッサ)等の1つ以上のプロセッサを備える。また、プロセッサ401は、ROM402、RAM403、記憶装置404のいずれかに記憶されたプログラムを実行して、中継ノード30の全体を制御する。
通信回路405は、送信ノード10との間の通信セッションと、受信ノード20との間の通信セッションを同時に確立し、フロー制御部411は、それぞれのセッションを独立して制御する。一例では、通信回路405は、送信ノード10および受信ノード20のそれぞれと通信する複数の通信インタフェースを備える。
指示受付部412は、中継ノード選択部313から送信されたセッション確立指示を受信し、指示に応じて送信ノード10および受信ノード20のそれぞれとセッションを確立する。
事前調整部413は、指示受付部412が確立したセッションでダミーデータの送受信を行い、切替後セッションに通信を切り替える前に切替後セッションのウィンドウサイズを拡大する。
図5を参照して、本実施形態に係る通信システム1が実行する処理シーケンスの一例について説明する。
まず、S501で送信ノード10と受信ノード20はTCPセッションを確立し、S502で通信を開始する。ここで、トリガ検出部312は通信状況の監視を開始する。S501では、既存技術を使用してTCPセッションを確立することができる。なお、S502の通信開始後、図示していないが送信ノード10と受信ノード20とは切替元の通信セッションで通信を行うものとする。
その後、トリガ検出部312は、S502においてS501で確立したセッション(切替前セッション)が中継ノード30の利用を行うと判定するための条件を満たしたか否かを判定する。
中継ノード30の利用を行うと判定するための条件を満たさない場合は継続して通信状況の監視を継続する。中継ノード30の利用を行うと判定するための条件を満たすと判定した場合は、処理をS504に進め、中継ノード選択部313が中継ノード30の選択を行う。本実施形態では、送信ノード10の中継ノード選択部313は、候補となる中継ノード30の選択を行うものとする。S504では、送信ノード10の中継ノード選択部313は、複数の中継ノード30に対してpingコマンドなどの遅延時間を測定するプログラムを実行し、複数の中継ノード30のうちから、往復遅延時間が低い順に所定数、例えば5つの中継ノード30を選択する。
なお、一例では、送信ノード10は複数の中継ノード30に対して所定の時間間隔、例えば1分ごとに往復遅延時間を測定し、測定した往復遅延時間を中継ノード30と対応付けて記憶装置304に記憶し、S504では記憶装置304に記憶した往復遅延時間に基づいて候補となる中継ノード30を選択してもよい。
S504で中継ノード30の選択を行った中継ノード選択部313は、S505に処理を進め、受信ノード20に中継要求信号を送信する。S505で受信ノード20に送信する中継要求信号には、切替前のセッションで使用している受信ノード20のTCP通信の宛先ポート番号と、S510で後述する切替処理において使用する送信側のセッション番号を通知する。セッション番号は、例えば疑似ランダム関数を使用して生成されてもよい。また、S505で中継ノード30に送信する中継要求信号は、候補となる中継ノード30と、それぞれの往復遅延時間とを対応付けたリストを含む。
なお、S504で送信ノード10の中継ノード選択部313が通信を中継する1つの中継ノード30を選択する場合には、中継要求信号には、切替前のセッションで使用しているTCP通信のポート番号と、S510で後述する切替処理において使用するセッション番号と、当該中継ノード30を指定する情報とが含まれればよい。このような場合、中継要求信号は、候補となる中継ノード30と、それぞれの往復遅延時間とを対応付けたリストを含まなくてもよい。
S506で、受信ノード20は、中継要求信号に含まれるTCP通信の宛先ポート番号を通信に使用しているか否かを判定し、使用している場合には当該宛先ポート番号に対応するTCP通信を中継させると特定する。また、受信ノード20の中継ノード選択部313はS506で中継要求信号に含まれる候補中継ノードに対する往復遅延時間を取得し、通信を中継させる中継ノード30を選択する。S506では、受信ノード20の中継ノード選択部313は、複数の中継ノード30に対してpingコマンドなどの遅延時間を測定するプログラムを実行し、複数の中継ノード30のうちから、往復遅延時間が低い順に所定数、例えば5つの中継ノード30を選択する。あるいは、受信ノード20は複数の中継ノード30に対して所定の時間間隔、例えば1分ごとに往復遅延時間を測定し、測定した往復遅延時間を中継ノード30と対応付けて記憶装置304に記憶し、S506では記憶装置304に記憶した往復遅延時間に基づいて候補となる中継ノード30を選択してもよい。
ここで、S506で受信ノード20の中継ノード選択部313は、所定の中継ノード30と送信ノード10との間の往復遅延時間(送信側遅延時間)と、当該所定の中継ノード30と受信ノード20との間の往復遅延時間(受信側遅延時間)とに基づいて中継ノード30を選択する。
一例では、複数の候補中継ノードのうち、送信側遅延時間と受信側遅延時間との合計が最も小さくなる中継ノード30に通信を中継させると決定する。なお、送信側遅延時間と受信側遅延時間とのいずれか一方が、送信ノード10と受信ノード20との間の往復遅延時間よりも大きい候補中継ノードについては、通信を中継させないと決定する。
また、複数の候補中継ノードのうち、送信側遅延時間と受信側遅延時間との差が最も小さい中継ノード30に通信を中継させると決定してもよい。
中継ノード30を選択した受信ノード20は、S507で選択した中継ノード30の識別情報を含む中継応答信号を送信ノード10に送信する。また、S507で受信ノード20は、S510で後述する切替処理において使用する受信側のセッション番号を通知する。セッション番号は、例えば疑似ランダム関数を使用して生成されてもよい。
中継応答信号を受信した送信ノード10は、S508において、中継応答信号に含まれる中継ノード30に中継指示信号を送信する。中継指示信号には、切替元のTCPセッション情報として、送信ノード10および受信ノード20のIPアドレスおよびポート番号、並びに送信側および受信側のセッション番号が含まれる。
中継指示信号を受信した中継ノード30は、S509において中継通知信号を受信ノード20に送信する。中継通知信号には、TCPセッション情報として、切替元のTCPセッション情報として、送信ノード10および受信ノード20のIPアドレスおよびポート番号、並びに送信側および受信側のセッション番号が含まれる。
受信ノード20は、中継ノード30から受信したTCPセッション情報と、受信ノード20が記憶装置304に格納しているTCPセッション情報とが一致するか否かを判定する。情報が一致する場合、中継ノード30による中継を許可すると判断して、S510で中継通知応答を中継ノード30に送信する。中継通知応答には、受信ノード20が切替先のTCPセッションで使用する中継用受信ポート番号を示す情報と送信側および受信側のセッション番号を示す情報とが含まれる。
中継通知応答を受信した中継ノード30は、S511で送信ノード10に中継指示応答を送信する。中継指示応答には、送信側および受信側のセッション番号を示す情報と、中継ノード30が送信ノード10とのTCPセッションの確立に使用する中継ポート番号を示す情報とが含まれる。
また、中継ノード30は、S511の中継指示応答と並行して、S512で受信ノード20とのTCPセッションを確立する。ここで、中継ノード30は、中継通知応答に含まれる中継用受信ポート番号を指定してTCPセッションを確立する。
中継指示応答を受信した送信ノード10は、S513で中継ノード30に応答確認信号を送信する。応答確認信号には、送信側および受信側のセッション番号が含まれる。
また、S513で応答確認信号を受信した送信ノード10は、S514で中継ノード30とのTCPセッションを確立する。S514では、送信ノード10はS511で受信した中継指示応答に含まれる中継ポート番号を指定してTCPセッションを確立する。
S515で、送信ノード10は、調整設定信号を受信ノード20に送信する。調整設定信号には、例えば、切替先のTCPセッションのウィンドウサイズが超えるべき閾値を指示する情報を含む。例えば、閾値は、1MBなどの固定値であっても良いし、切替元のTCPセッションのウィンドウサイズに基づいて決定されてもよい。
別の例では、調整設定信号には送信するダミーデータの量を指示する情報を含む。一例では、切替元のTCPセッションのウィンドウサイズに基づいて決定されてもよい。例えば、切替元のTCPセッションの最大ウィンドウサイズの2倍のダミーデータを送信すれば、パケットロスがない場合にはウィンドウサイズが切替元のTCPセッションと同一になる。このため、一例では切替元のTCPセッションの最大ウィンドウサイズの2倍のダミーデータを送信するように送信するダミーデータの量を指示してもよい。これによって、送信ノード10は、切替先のTCPセッションのウィンドウサイズが所定の値より大きくなるまで事前通信を行うことができる。
S516で、受信ノード20は、調整設定信号への応答である設定応答信号を送信ノード10に送信する。S517で、送信ノード10は中継ノード30にダミーデータの送信を行う事前通信を行う。中継ノード30は、受信したダミーデータを受信ノード20に転送する。ダミーデータは、例えば擬似ランダムビット列であってもよい。ダミーデータの送信に成功することで、送信ノード10と中継ノード30との間のTCPセッションと、中継ノード30と受信ノード20との間のTCPセッションのウィンドウサイズを大きくすることができる。
S518で、送信ノード10および受信ノード20は、通信セッションを切り替えると判定する。一例では、送信ノード10および受信ノード20は、調整設定信号で指定した量のダミーデータの送受信が終了した場合に通信セッションを切り替えると判定する。また一例では、送信ノード10および受信ノード20は、切替先のTCPセッションのウィンドウサイズが所定の値以上になった場合に通信セッションを切り替えると判定する。なお、一例では、送信ノード10と受信ノード20と、または送信ノード10と中継ノード30とは、送信ノード10と中継ノード30との間のTCPセッションのウィンドウサイズと、受信ノード20と中継ノード30との間のTCPセッションのウィンドウサイズとに関する情報を送受信してもよい。
S518で通信セッションを切り替えると判定した場合、送信ノード10は、切替元のTCPセッションで送信していたデータ通信を切替先のTCPセッションで送信する。これによって、ウィンドウサイズが大きくなった状態でTCPセッションを切り替えることができる。
以上説明したように、本実施形態にかかる通信制御装置は、送信ノード10と受信ノード20との間のラウンドトリップタイムより、送信ノード10と中継ノード30との間のラウンドトリップタイムおよび中継ノード30と受信ノード20との間のラウンドトリップタイムが小さい中継ノード30にTCPセッションを中継させると決定する。これによって、中継ノードによって通信を中継させることでスループットの向上が期待できる。
また、本実施形態にかかる通信制御装置は、送信ノード10と受信ノード20との間のTCPセッションを中継する中継ノード30を決定し、中継ノード30を介した切替先のTCPセッションを確立する。そして、切替先のTCPセッションで、切替元のTCPセッションの通信とは関連しない事前通信を行う。そして、切替先のTCPセッションのウィンドウサイズが所定の値以上になった場合に、切替元のTCPセッションに対応付けられた通信を切替先のTCPセッションにおいて行う。これによって、スループットが向上できる状況においてTCPセッションの切替を行うことができ、中継ノード30による通信の中継を適切なタイミングで開始することができる。
また、本実施形態にかかる通信制御装置は、送信ノード10と受信ノード20との間のTCPセッションが、通信の中継によってメリットが得られると判断できる所定の条件を満たした場合に中継ノード30を決定し、中継ノード30を介した切替先のTCPセッションの確立とセッションの切替を開始する。これによって、通信の中継によってメリットが得られない状況で切替先のTCPセッションへの切替を行い、中継ノード30に負荷がかかることを避けることができる。
<その他の実施形態>
本実施形態では、中継ノード選択部313は、送信ノード10と中継ノード30との間の往復遅延時間(送信側遅延時間)と、受信ノード20と中継ノード30との間の往復遅延時間(受信側遅延時間)とに基づいて中継ノード30を選択するものとして説明を行った。一例では、中継ノード選択部313は、記憶装置304に過去の通信における最大ウィンドウサイズを記憶し、送信ノード10と中継ノード30との間の最大ウィンドウサイズ(送信側ウィンドウサイズ)と、受信ノード20と中継ノード30との間の最大ウィンドウサイズ(受信側ウィンドウサイズ)とに基づいて中継ノード30を選択してもよい。例えば、以下の評価値Sが最大となる中継ノード30を選択することで、高いスループットを期待することができる中継ノード30に通信を中継させることができる。
S=min{(送信側ウィンドウサイズ)/(送信側遅延時間)、(受信側ウィンドウサイズ)/(受信側遅延時間)}
ここで、min{}は2つの値のうち最小のものを選ぶ関数である。
また、本実施形態において、S508~S511、およびS513、S515、S516で送信される信号に含まれる送信側および受信側のセッション番号は、信号の送信元の正当性を検証するために使用される。しかしながら、信号の送信元の正当性を検証するために他の認証技術を適用してもよく、このような場合にはS508~S511、およびS513、S515、S516で送信される信号には送信側および受信側のセッション番号が含まれなくてもよい。
本実施形態では、S503の処理では、切替元のTCPセッションのウィンドウサイズのみに基づいて中継ノード30を介したTCPセッションの確立を行うか否かを判断するものとして説明を行った。一例では、候補中継ノードまでのラウンドトリップタイムに基づいてS503の処理が実行されてもよい。例えば、送信ノード10は、受信ノード20との間のラウンドトリップタイム(w)および候補中継ノードとの間のラウンドトリップタイム(wt1)を測定し、受信ノード20との間のラウンドトリップタイムより所定の割合以上小さいラウンドトリップタイムの候補中継ノードを検出した場合に、トリガイベントが発生したと判定してもよい。例えば、wt1<0.8×wを満たす候補中継ノードを検出した場合にトリガイベントが発生したと判定してもよい。このような場合、S506で候補中継ノードと受信ノード20との間のラウンドトリップタイム(wt2)を測定させ、S507でwt2を受信し、wt2<0.8×wの場合に、当該候補中継ノードと切替後のTCPセッションを確立すると判定してもよい。
なお、本発明による通信装置、つまり、上述した送信ノード10、受信ノード20、および中継ノードは、デバイスの1つ以上のプロセッサで実行されると、当該デバイスを送信ノード10及び/又は受信ノード20及び/又は中継ノード30として動作させるプログラムにより実現することができる。これらプログラムは、デバイス可読記憶媒体に格納されて、又は、ネットワーク経由で配布が可能なものである。
発明は上記の実施形態に制限されるものではなく、発明の要旨の範囲内で、種々の変形・変更が可能である。
10:送信ノード、20:受信ノード、30:中継ノード

Claims (11)

  1. 送信元ノードまたは宛先ノードに備えられる通信制御装置であって、
    通信を行っている切替元のTransmission Control Protocol(TCP)セッションが所定の条件を満たすか否かを判定する判定手段と、
    複数の候補中継ノードのうちから、前記切替元のTCPセッションに対応する前記通信を中継させる中継装置を決定する決定手段と、
    前記判定手段で前記切替元のTCPセッションが前記所定の条件を満たすと判定した場合に、前記決定手段で決定した前記中継装置と、前記切替元のTCPセッションの前記送信元ノードおよび前記宛先ノードのそれぞれとの間で切替先のTCPセッションを確立し、前記切替先のTCPセッションにおいて、前記切替元のTCPセッションに関連付けられた前記通信とは異なる事前通信の実行を指示する指示手段と、
    前記事前通信を行った後に、前記切替元のTCPセッションから前記切替先のTCPセッションへ前記通信を切り替える切替手段と、
    を備えることを特徴とする通信制御装置。
  2. 前記所定の条件は、直近の所定の期間において複数回取得した前記切替元のTCPセッションのウィンドウサイズが所定の範囲に含まれることであることを特徴とする請求項1に記載の通信制御装置。
  3. 前記所定の条件は、直近の所定の期間において取得した前記切替元のTCPセッションのウィンドウサイズが所定の閾値以上であることであることを特徴とする請求項1または2に記載の通信制御装置。
  4. 前記決定手段は、
    前記複数の候補中継ノードのそれぞれについて、前記送信元ノードとの間のパケットの往復にかかる第1の遅延時間と、前記宛先ノードとの間のパケットの往復にかかる第2の遅延時間とを取得し、
    前記第1の遅延時間および前記第2の遅延時間が前記送信元ノードと前記宛先ノードとの間のパケットの往復にかかる遅延時間より小さい候補中継ノードを前記中継装置として決定することを特徴とする請求項1から3のいずれか1項に記載の通信制御装置。
  5. 前記決定手段は、前記複数の候補中継ノードのそれぞれの前記第1の遅延時間と前記第2の遅延時間との合計が最も小さい候補中継ノードを前記中継装置として決定することを特徴とする請求項4に記載の通信制御装置。
  6. 前記決定手段は、前記複数の候補中継ノードのそれぞれの前記第1の遅延時間と前記第2の遅延時間との差が最も小さい候補中継ノードを前記中継装置として決定することを特徴とする請求項4に記載の通信制御装置。
  7. 前記指示手段は、前記事前通信において所定の量のダミーデータの通信を行うよう指示し、
    前記所定の量は、前記切替元のTCPセッションのウィンドウサイズに基づいて決定されることを特徴とする請求項1から6のいずれか1項に記載の通信制御装置。
  8. 前記切替手段は、前記切替先のTCPセッションのウィンドウサイズが前記切替元のTCPセッションのウィンドウサイズ以上になった場合に前記切替先のTCPセッションに通信を切り替えることを特徴とする請求項1から3のいずれか1項に記載の通信制御装置。
  9. 送信元ノードまたは宛先ノードに備えられる通信制御装置によって実行される通信制御方法であって、
    通信を行っている切替元のTransmission Control Protocol(TCP)セッションが所定の条件を満たすか否かを判定することと、
    複数の候補中継ノードのうちから、前記切替元のTCPセッションに対応する前記通信を中継させる中継装置を決定することと、
    前記切替元のTCPセッションが前記所定の条件を満たすと判定した場合に、決定した前記中継装置と、前記切替元のTCPセッションの前記送信元ノードおよび前記宛先ノードのそれぞれとの間で切替先のTCPセッションを確立し、前記切替先のTCPセッションにおいて前記切替元のTCPセッションに関連付けられた前記通信とは異なる事前通信の実行を指示することと、
    前記事前通信を行った後に、前記切替元のTCPセッションから前記切替先のTCPセッションへ前記通信を切り替えることと、
    を含むことを特徴とする通信制御方法。
  10. 送信ノード、受信ノード、および中継ノードを含む通信システムであって、
    前記送信ノードと前記受信ノードとの通信を行っている切替元のTransmission Control Protocol(TCP)セッションが所定の条件を満たすか否かを判定する判定手段と、
    複数の候補中継ノードのうちから、前記切替元のTCPセッションに対応する前記通信を中継させる中継装置を決定する決定手段と、
    前記切替元のTCPセッションが前記所定の条件を満たすと判定した場合に、前記決定手段で決定した前記中継装置と、前記送信ノードおよび前記受信ノードのそれぞれとの間で切替先のTCPセッションを確立し、前記切替先のTCPセッションにおいて、前記切替元のTCPセッションに関連付けられた前記通信とは異なる事前通信の実行を指示する指示手段と、
    前記事前通信を行った後に、前記切替元のTCPセッションから前記切替先のTCPセッションへ前記通信を切り替える切替手段と、
    を備えることを特徴とする通信システム。
  11. 1つ以上のプロセッサを有する装置の前記1つ以上のプロセッサで実行されると、前記装置を、請求項1から8のいずれか1項に記載の通信制御装置として機能させることを特徴とするプログラム。
JP2022053602A 2022-03-29 2022-03-29 通信制御装置、制御方法、通信システム、及びプログラム Active JP7680392B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022053602A JP7680392B2 (ja) 2022-03-29 2022-03-29 通信制御装置、制御方法、通信システム、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022053602A JP7680392B2 (ja) 2022-03-29 2022-03-29 通信制御装置、制御方法、通信システム、及びプログラム

Publications (2)

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

Family

ID=88286698

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022053602A Active JP7680392B2 (ja) 2022-03-29 2022-03-29 通信制御装置、制御方法、通信システム、及びプログラム

Country Status (1)

Country Link
JP (1) JP7680392B2 (ja)

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 (ja) 2011-12-07 2013-06-17 Nippon Telegr & Teleph Corp <Ntt> データパケット伝送方法及びシステム
JP2014078895A (ja) 2012-10-11 2014-05-01 Toshiba Corp サーバ装置及び通信システム
JP2016129274A (ja) 2015-01-09 2016-07-14 株式会社日立製作所 通信装置、通信装置の制御方法及び制御プログラム
JP2017139567A (ja) 2016-02-02 2017-08-10 エヌ・ティ・ティ・コミュニケーションズ株式会社 端末、中継装置選択装置、通信方法、中継装置選択方法、及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013121028A (ja) 2011-12-07 2013-06-17 Nippon Telegr & Teleph Corp <Ntt> データパケット伝送方法及びシステム
JP2014078895A (ja) 2012-10-11 2014-05-01 Toshiba Corp サーバ装置及び通信システム
JP2016129274A (ja) 2015-01-09 2016-07-14 株式会社日立製作所 通信装置、通信装置の制御方法及び制御プログラム
JP2017139567A (ja) 2016-02-02 2017-08-10 エヌ・ティ・ティ・コミュニケーションズ株式会社 端末、中継装置選択装置、通信方法、中継装置選択方法、及びプログラム

Also Published As

Publication number Publication date
JP2023146423A (ja) 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 (ko) 송신 윈도우 크기를 계산하는 방법
US8705381B2 (en) Communication embodiments and low latency path selection in a multi-topology network
CN112217723A (zh) 一种建立路由表的方法、电子设备及网络
WO2017035763A1 (zh) 一种IPv6网络中数据报文的发送方法及装置
JP4708978B2 (ja) 高スループットを実現する通信システム、通信端末、セッション中継装置、及び通信プロトコル
US20220094680A1 (en) Bi-directional forwarding detection authentication
JP7680392B2 (ja) 通信制御装置、制御方法、通信システム、及びプログラム
KR20200083582A (ko) 실시간 전송 네트워크 혼잡 조건에 기초하여 데이터 전송 네트워크 프로토콜을 가속 또는 감속하기 위한 시스템 및 방법
WO2017107148A1 (zh) 一种数据传输方法及网络侧设备
JPWO2008108144A1 (ja) 擬似的応答フレーム通信システム、擬似的応答フレーム通信方法及び擬似的応答フレーム送信装置
WO2004040861A1 (ja) 通信システム及び方法
JP2010161616A (ja) 通信装置、通信システム、通信方法、プログラム、及び集積回路
US9537764B2 (en) Communication apparatus, control apparatus, communication system, communication method, method for controlling communication apparatus, and program
CN108574615B (zh) 一种基于多路径mptcp的内容传输方法、设备及系统
KR102131427B1 (ko) Sctp에서의 혼잡 제어 방법 및 장치
JP4884921B2 (ja) 通信制御装置、無線通信装置、通信制御方法および無線通信方法
JP5662779B2 (ja) 通信システム及びノード装置
WO2018036613A1 (en) A method, network node and system for controlling tethering
WO2002033893A2 (en) Method and apparatus for communicating data within measurement traffic
JP2008053888A (ja) 通信装置、プログラム、情報記憶媒体および通信制御方法
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