(57)【要約】【課題】パケットロスの多いネットワークでパケット到達率を向上させ、再送のデメリットを緩和させ、動的に性能の変化するネットワークに追従して経路を変化させる。【解決手段】中継装置は、フローテーブルに記述されている入力パケット情報及び制御方法に従って転送パケットを生成し、転送パケットを記憶し、転送パケットを次段の通信装置に送信し、転送パケットの再送条件が成立した場合、記憶している転送パケットを読み出し、これをフローテーブルの制御方法に従って次段の通信装置に送信し、通信パケットと再送要求に基づいて、通信遅延と再送率を取得して、統計量データとして出力し、統計量データを送信する。スイッチ制御装置は、中継装置から統計量データを受信し、統計量データに基づいて、通信経路の構成及びパケット制御方法を指定するフローテーブルを生成し、中継装置に送信する。【選択図】図３
2015070583.tif 000002
【特許請求の範囲】
【請求項１】
前段の通信装置から通信パケットを受信し、フローテーブルに記述されている入力パケット情報及び制御方法に従って転送パケットを生成し、
前記転送パケットを記憶し、
転送パケットを次段の通信装置に送信し、転送パケットの再送条件が成立した場合、記憶している転送パケットを読み出し、これを前記フローテーブルの制御方法に従って次段の通信装置に送信し、
前記通信パケットと再送要求に基づいて、通信遅延と再送率を取得して、統計量データとして出力し、
前記統計量データを送信する
中継手段と、
前記中継手段から統計量データを受信し、
前記統計量データに基づいて、通信経路の構成及びパケット制御方法を指定するフローテーブルを生成し、
前記フローテーブルを前記中継手段に送信する
制御手段と
を有する通信システム。
【請求項２】
前記制御手段は、
前記統計量データに基づいて、閾値を超えた再送率を有する中継手段が存在するか否かを判定し、閾値を超えた再送率を有する中継装置が存在すると判定した場合、前記再送率が閾値を越えた中継手段の上流の別の中継手段との中継点となりうる更に別の中継手段を探し、中継点となりうる更に別の中継手段が存在する場合には、前記別の中継手段から前記閾値を超えた再送率を有する中継手段への通信パケットの転送を、前記更に別の中継手段が中継するように、それぞれの中継手段に対応するフローテーブルを生成し、それぞれの中継手段に対応するフローテーブルを送信し、
前記統計量データに基づいて、通信遅延が悪くなっている、若しくは、通信遅延が通信遅延要求値より悪い中継手段が存在するか否かを判定し、通信遅延が悪くなっている、若しくは、通信遅延が通信遅延要求値より悪い中継手段が存在すると判定した場合、隣接する3つの中継手段であって全ての中継手段について閾値を下回る再送率となっている組み合わせが存在するか否かを判定し、前記組み合わせが存在すると判定した場合、前記組み合わせに含まれる３つの中継手段のうち、他の２つの中継手段を中継する中継手段を通信経路から削除するようにそれぞれの中継手段に対応するフローテーブルを生成し、それぞれの中継手段に対応するフローテーブルを送信する、
請求項1に記載の通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に記載の実施の形態は、通信システムに関する。
【背景技術】
【０００２】
近年の通信技術、通信装置の普及発展により、全世界において通信ネットワークも普及発展してきている。しかし、地域の社会状況・経済状況によって通信ネットワークを支える通信インフラの状況は様々であり、通信ネットワークの提供事業者は、その地域の通信インフラの状況等に見合った、通信システムを構築する必要がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１５１７１８号公報
【特許文献１】特開２０１１−１６６７００号公報
【特許文献１】特開２０１２−１１４８９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一般に、通信システム構築前にネットワーク性能を十分に把握しなければならない。なぜなら、想定と異なるネットワーク性能(遅延、パケット損失率)だった場合、システムの信頼性が損なわれるからである。
【０００５】
しかし、ネットワーク性能は動的に変化するため、性能把握は難しく、より良い通信システムを提供するためには、ネットワーク性能を動的にチューニングすることが必要である。
【０００６】
本発明の実施の形態の目的は、パケットロスの多いネットワークでパケット到達率を向上させ、TCP通信時と同じく再送のデメリットを緩和させ、動的に性能の変化するネットワークに追従して経路を変化させていくことを可能とする技術を提供することにある。
【課題を解決するための手段】
【０００７】
本発明の実施の形態は通信システムとして提案される。この通信システムは、中継手段と、制御手段とを有する。
【０００８】
中継手段は、前段の通信装置から通信パケットを受信し、フローテーブルに記述されている入力パケット情報及び制御方法に従って転送パケットを生成し、前記転送パケットを記憶し、転送パケットを次段の通信装置に送信し、転送パケットの再送条件が成立した場合、記憶している転送パケットを読み出し、これを前記フローテーブルの制御方法に従って次段の通信装置に送信し、前記通信パケットと再送要求に基づいて、通信遅延と再送率を取得して、統計量データとして出力し、前記統計量データを送信する。
【０００９】
制御手段は、前記中継手段から統計量データを受信し、前記統計量データに基づいて、通信経路の構成及びパケット制御方法を指定するフローテーブルを生成し、前記フローテーブルを前記中継手段に送信する。
【図面の簡単な説明】
【００１０】
【図１】OpenFlow動作原理を示したブロック図
【図２】フローテーブルのデータ構成例を示す図
【図３】本実施の形態に係る通信システムの構成例を示すブロック図
【図４】中継装置の構成例を示す機能ブロック図
【図５】スイッチ制御装置の構成例を示す機能ブロック図
【図６】スイッチ制御装置の動作例を示したフローチャート
【図７】中継装置の主たる動作であるパケット受信時処理の例を示すフローチャート
【図８】始端位置中継装置受信時処理の一例を示したフローチャート
【図９】転送パケットバッファ登録処理の一例を示すフローチャート
【図１０】ステップS301で転送パケットバッファ記憶部に書き込まれるデータの構成例を示す図
【図１１】ステップS302で転送パケットバッファ記憶部に書き込まれるデータの構成例を示す図
【図１２】受信パケット再送処理の一例を示すフローチャート
【図１３】図１２のフローチャートに続くフローチャート
【図１４】終端位置中継装置受信時処理の一例を示したフローチャート
【図１５】図１４のフローチャートに続くフローチャート
【図１６】終端中継装置の受信パケット再送処理の一例を示すフローチャート
【図１７】中継位置中継装置受信時処理の一例を示したフローチャート
【図１８】図１７のフローチャートに続くフローチャート
【図１９】中継位置中継装置の受信パケット再送処理の一例を示すフローチャート
【図２０】図１９のフローチャートに続くフローチャート
【図２１】統計量データ収集処理の一例を示したフローチャート
【図２２】通信システムにおいて、送信元アプリケーションと送信先アプリケーションがTCP通信をする場合の動作例を示したフローチャート
【図２３】ステップS2201における通信システム１の状態を示すブロック図
【図２４】ステップS2202における通信システム１の状態を示すブロック図
【図２５】ステップS2203における通信システム１の状態を示すブロック図
【図２６】ステップS2204における通信システム１の状態を示すブロック図
【図２７】制御方法決定処理における中継装置追加処理の一例を示したフローチャート
【図２８】制御方法決定処理における中継装置削除処理の一例を示したフローチャート
【図２９】中継装置追加処理の実行前の通信システム１の例を示す図
【図３０】図２９の通信システム１が中継装置追加処理によって変化した状態を示す図
【図３１】中継装置削除処理の実行前の通信システム１の例を示す図
【図３２】図３１の通信システム１が中継装置追加処理によって変化した状態を示す図
【図３３】パケット転送処理の一例を示すフローチャート
【図３４】本実施の形態を適用した場合の通信時間短縮の例を示す図
【図３５】通信システムにおいて、送信元アプリケーションと送信先アプリケーションがTCP通信をする場合の動作例を示したフローチャート
【図３６】ステップS1201における通信システムの状態を示すブロック図
【図３７】ステップS1202における通信システムの状態を示すブロック図
【図３８】ステップS1203における通信システムの状態を示すブロック図
【図３９】ステップS1204における通信システムの状態を示すブロック図
【図４０】制御方法決定処理における中継装置追加処理の一例を示したフローチャート
【図４１】制御方法決定処理における中継装置削除処理の一例を示したフローチャート
【図４２】UDP通信時における中継装置２０パケット転送処理の例を示したフローチャート
【発明を実施するための形態】
【００１１】
以下、図面を参照して本発明の実施の形態に係る通信システムを説明する。
[０．用語の定義]
本明細書中で使用する用語の定義を述べる。
（１）OpenFlow
OpenFlowとは、SDN(Software Defined Network)を実現する規格をいう
（２）OpenFlowスイッチ(OFSW)
OpenFlowスイッチとはOpenFlow対応のスイッチをいう。OpenFlowを構成する要素の一つであって、パケット転送機能を司る。
【００１２】
（３）OpenFlowコントローラ(OFC)
OpenFlowコントローラとは、OpenFlow対応のコントローラをいう。OpenFlowコントローラは、パケット制御機能を司る。
【００１３】
（４）フローテーブル
フローテーブルとはOpenFlowにおいて、パケット制御方法が記載されたテーブルをいう。OFCがフローテーブルを作成しOFSWに送付することで、OFSWは受信したフローテーブルに従ったパケット制御をする。
【００１４】
[０．１．OpenFlow動作原理]
ここでOpenFlow動作原理を説明する。図１はOpenFlow動作原理を示したブロック図である。OpenFlowシステムは、OFCと、OFCに接続されたOFSWとで構成される。OFCはフローテーブルを生成し、このフローテーブルをOFSWに送信する。OFSWはパケットを受信し、パケットを送信する。OFSWは、OFSWに入力されたパケットがフローテーブルの入力パケット情報の条件を満たす場合に、制御方法に記載された制御を実行する。
【００１５】
図２にフローテーブルのデータ構成例を示す。フローテーブルは、一つのルールごとに一つのレコードを有し、各レコードは入力パケット情報を格納するフィールドと、制御方法を格納するフィールドと、統計情報を格納するフィールドを有する。入力パケット情報としては、送信元IPやトランスポート層のヘッダなどの情報が使用可能である。制御方法には、パケット転送やパケットドロップなどの処理がある。また、制御方法には、転送・ドロップ以外に、新たなパケット生成・送信を指定することも可能である。統計情報には、ルールに適合したパケットの個数情報などが記載される。
OFSWに入力されたパケットが入力パケット情報の条件を満たす場合に、OFSWは制御方法に記載された制御を実行する。
【００１６】
[１．実施の形態]
[１．１．構成例]
本発明の実施の形態について説明する。図３は、本実施の形態に係る通信システムの構成例を示すブロック図である。通信システム１は、遠隔制御装置１０と、この遠隔制御装置１０に接続された中継装置２０＿１と、中継装置２０＿１にシーケンスに接続された中継装置２０＿２、中継装置２０＿３、中継装置２０＿４と、中継装置２０＿４に接続されたデータ受信装置３０と、中継装置２０＿１から中継装置２０＿４のそれぞれと通信可能に接続されたスイッチ制御装置４０とを有している。なお、中継装置２０＿１、中継装置２０＿２、中継装置２０＿３、中継装置２０＿４を互いに区別しない場合には、これらを総称して中継装置２０と呼ぶ。
【００１７】
遠隔制御装置１０は、計測サイト５０内に設けられている。中継装置２０＿１は、計測サイト５０とインターネットなどの外部ネットワークとのネットワーク境界である。
【００１８】
データ受信装置３０はクラウド６０内に設けられている。中継装置２０＿４は、クラウド６０とインターネットなどの外部ネットワークとのネットワーク境界である。
[１．２．本実施の形態の主たる特徴]
まず、本実施の形態にかかる通信システム１の主たる特徴について説明する。  
【００１９】
[１．２．１．TCP通信]
通信システム１は、TCP通信に対しOFSWである中継装置２０を設け、(1) 端点である遠隔制御装置１０及びデータ受信装置３０と中継装置２０の間、(2) 中継装置２０と中継装置２０間のそれぞれの通信について個別にTCP通信となるようフロー制御する。こうすることで、以下の利点を得る。
(I)   通信区間が実効的に短くなり再送の発生率が減少する。
【００２０】
(II)  通信システム１内で、データの再送が発生しても(1)又は(2)の間での再送で足り、これは端点と端点間よりも短区間となり、結果として(I)、(II)より再送のデメリットが小さくなる。
【００２１】
単位通信距離当たりの再送発生率が大きければ、再送分の時間が減ることで通信速度向上効果も見込める。一方で、再送発生率が小さければ途中経路で余分な処理をしていることになり、通信速度は減少する。再送の発生率や通信速度といったデータから、動的に途中経路を構成する機能との併用が有効である。
【００２２】
[１．２．２．UDP通信]
通信システム１は、UDP通信に対し中継装置２０を設け、中継装置２０と中継装置２０間の通信について、再送機能を備えたフロー制御をする。再送条件は後述する。こうすることで、従来のUDP通信を実行する通信システムに比べて信頼性が向上するという効果が得られる。
【００２３】
通信システム１における再送発生率が大きければ、従来のUDP通信に比べて、再送回数が増えるので通信速度が低下する。一方で、再送発生率が小さければ従来のUDP通信との差異が小さいため、通信速度はほぼ同等となる。
前述したTCP通信と同様に、通信速度や再送発生率を考えて途中経路を再構成する機能が有効である。
【００２４】
なお、通信システム１は、再送する場合、論理ネットワークを分離し、「再送パケットが帯域を圧迫しないようにする」といったことも可能である。
通信システム１がUDP通信における再送を行う条件である再送条件として、中継装置２０間で受信確認をするようにし、
(1) 規定時間内に受信確認が受信できない場合
(2) 次のデータパケットが到着するまでに受信確認が受信できない場合
などが再送条件として適用可能である。
【００２５】
[１．２．３．動的な経路構成変更]
【００２６】
通信システム１において中継装置２０のパケット制御方法は動的に変更できるため、通信システム１の構築後に、新たな中継装置２０を通信システム１に組み込むことが可能である。さらに、通信システム１のネットワーク性能が運用中に変化していった場合に対しても、実際に中継させる中継装置２０の数を調整することで、通信システム１の動的なチューニングが可能となる。
【００２７】
[１．３．通信システム１の構成要素]
次に、通信システム１の構成要素のそれぞれを説明する。  
[１．３．１．中継装置]
中継装置２０は、OFSWとして機能する通信装置であって、スイッチ制御装置４０からの統計量データ送信要求を受信すると、統計量データを生成し、この統計量データをスイッチ制御装置４０に送信する機能を有する。中継装置２０は、本実施の形態の中継手段に相当する。
【００２８】
中継装置２０は、通信機能を備えた情報処理装置であって、この情報処理装置は、演算処理装置（ＣＰＵ）、主メモリ（ＲＡＭ）、読み出し専用メモリ（ROM）、入出力装置（Ｉ／Ｏ）、及び必要な場合にはハードディスク装置等の外部記憶装置を具備している装置である。
【００２９】
図４に中継装置２０の構成例を示す機能ブロック図を掲げる。なお、機能ブロック図中に示す構成要素は、中継装置２０の機能を機能ごとにまとめてブロックとして捉えたものであり、中継装置２０が各構成要素に対応する基板、装置、回路、部品などの物理的構成要素を備えていなければならないことを意味するわけではない。また、「接続されている」とは、データ、情報、命令などの送受信、受け取り、受け渡しなどが可能な状態になっていることをいい、互いに配線で連結されているような物理的な接続に限られる意味ではない。本明細書中の他の構成要素の機能ブロック図の説明についても同様である。
【００３０】
中継装置２０は、フローテーブル受信部２０１と、フローテーブル受信部２０１に接続されたフローテーブル記憶部２０２と、フローテーブル記憶部２０２に接続されたパケット転送部２０４と、パケット転送部２０４に接続された転送パケットバッファ部２０５と、パケット転送部２０４に接続された統計量計測部２０６と、統計量計測部２０６に接続された統計量データ記憶部２０７と、統計量データ記憶部２０７に接続された統計量データ送信部２０８と、フローテーブル記憶部２０２に接続されたパケット生成部２０３とを有している。
【００３１】
フローテーブル受信部２０１は、スイッチ制御装置４０からフローテーブルを受信する機能を有する。
フローテーブル記憶部２０２は、フローテーブル受信部２０１が受信したフローテーブルを記憶する機能を有する。
【００３２】
パケット生成部２０３は、前段の通信装置（遠隔制御装置１０又は中継装置２０）からパケット（入力パケット）を受信し、フローテーブルに記述されている入力パケット情報及び制御方法に従って転送用パケットを生成する機能を有する。
【００３３】
パケット転送部２０４はパケット生成部２０３で生成された転送用パケットを次段の通信装置（データ受信装置３０又は中継装置２０）に送信し、次段の通信装置から再送要求を受信した場合、後述する転送パケットバッファ部２０５に記憶されている転送パケットを読み出し、これを次段の通信装置に送信する機能を有する。
転送パケットバッファ部２０５は、パケット転送部２０４が次段の通信装置に送信したパケットである転送パケットをある程度の量記憶しておく機能を有する。
【００３４】
統計量計測部２０６は、パケット転送部２０４から再送要求受信回数と端点間の通信時間（通信遅延）ータを取得して、統計量データとして出力する機能を有する。端点間の通信時刻データは、計測サイト５０側の中継装置２０＿１で時刻データをパケットに入れ、クラウド６０側の中継装置２０＿４で取り出し、中継装置２０＿４がパケットに格納された時刻データとそのパケットの受信時刻から通信時刻を計測する。
統計量データ記憶部２０７は、統計量計測部２０６から出力された統計量データを記憶する機能を有する。
統計量データ送信部２０８は、統計量データ記憶部２０７に記憶された統計量データをスイッチ制御装置４０に送信する機能を有する。
【００３５】
[１．３．２．スイッチ制御装置]
スイッチ制御装置４０は、OFCとして機能する装置であって、中継装置２０から受信した統計量データと、事前に入力した中継装置位置情報と性能設定値から通信経路を決定し、通信経路中の中継装置２０について、後述するステップS120, S130, S140に示す処理から事前に登録したパケット制御方法を設定し、フローテーブルを生成し、生成したフローテーブルを各中継装置２０に送信する機能を有する。スイッチ制御装置４０は、本実施の形態の制御手段に相当する。なお、始端位置中継装置・中継位置中継装置・終端位置中継装置の各中継装置受信処理は予めスイッチ制御装置に登録しておく。
【００３６】
スイッチ制御装置４０は、通信機能を備えた情報処理装置であって、この情報処理装置は、演算処理装置（ＣＰＵ）、主メモリ（ＲＡＭ）、読み出し専用メモリ（ROM）、入出力装置（Ｉ／Ｏ）、及び必要な場合にはハードディスク装置等の外部記憶装置を具備している装置である。
【００３７】
図５にスイッチ制御装置４０の構成例を示した機能ブロック図を掲げる。スイッチ制御装置４０は、入力情報記憶部４１０と、入力情報記憶部４１０に接続された制御方法決定部４４０と、中継装置２０と通信可能に接続された統計量データ取得部４２０と、統計量データ取得部４２０及び制御方法決定部４４０に接続された制御装置内統計量データ記憶部２０７と、制御方法決定部４４０に接続された制御装置内フローテーブル記憶部４５０と、制御装置内フローテーブル記憶部４５０に接続された制御方法変更部４６０とを有している。
【００３８】
入力情報記憶部４１０は、本通信システム１のユーザや管理者等によって入力される情報を記憶する機能を有する。記憶される情報には、中継装置位置情報４１１、性能設定値４１２、パケット制御方法４１３が含まれている。
「中継装置位置情報」は、各中継装置２０のIPアドレスと、緯度と、経度と含む情報である。
「性能設定値」は、ネットワーク速度の最悪値、データロス率の許容値、再送要求受信回数閾値、応答パケット受信時間閾値を含む情報である。
【００３９】
「パケット制御方法」は、通信プロトコルごとに定められた制御方法を含む情報であって、例えば、TCP通信時の制御方法(スクリプトのイメージ)、UDP通信時の制御方法(スクリプトのイメージ)を含む情報である。
【００４０】
統計量データ取得部４２０は、中継装置２０に統計量データ送信依頼メッセージを送信し、中継装置２０から統計量データを受信し、これを制御装置内統計量データ記憶部２０７へ出力する機能を有する。
制御装置内統計量データ記憶部２０７は、統計量データ取得部４２０が中継装置２０から受信した統計量データを記憶する機能を有する。
【００４１】
制御方法決定部４４０は、制御装置内統計量データ記憶部２０７に記憶された統計量データ及び入力情報記憶部４１０に記憶された各情報に基づいて、使用する通信経路中の中継装置２０構成、パケット制御方法を指定するフローテーブルを生成し、出力する機能を有する。
制御装置内フローテーブル記憶部４５０は、制御方法決定部４４０が生成したフローテーブルを記憶する機能を有する。
制御方法変更部４６０は、制御装置内フローテーブル記憶部４５０に記憶されたフローテーブルを各中継装置２０に送信する機能を有する。
【００４２】
[１．３．３．遠隔制御装置]
遠隔制御装置１０は、中継装置２０＿１、中継装置２０＿２、中継装置２０＿３、中継装置２０＿４を順に経由して、データ受信装置３０へ通信パケットを送信可能な装置であって、例えばコンピュータ、携帯電話機、タブレットPC、携帯ゲーム機、その他の通信端末装置などである。遠隔制御装置１０は、通信機能を有するアプリケーションと、そのアプリケーションに使用するデータを有している。アプリケーションは遠隔制御装置１０とデータ受信装置３０との間で通信を行うアプリケーションであればどのようなものでも良い。
【００４３】
[１．３．４．データ受信装置]
データ受信装置３０は、遠隔制御装置５０から中継装置２０＿１、中継装置２０＿２、中継装置２０＿３、中継装置２０＿４を順に経由して送信されてくる通信パケットを受信可能な装置であって、例えば、コンピュータ、サーバなどである。
【００４４】
[１．３．５．計測サイト]
計測サイト５０は、遠隔制御装置１０が収容されるネットワークであって、例えば家庭内LAN、企業内LANである。
[１．３．６．クラウド]
クラウド６０は、データ受信装置３０が収容されるネットワークであって、例えばデータセンター内の仮想マシン群から構築されるLANである。
【００４５】
［２．動作例］
次に、通信システム１の動作例を説明する。  
通信システム１は、フローテーブル更新による動的な経路構成変更を実行する。  
パケット転送中、中継装置２０は入力パケットのヘッダフィールドからTCP通信かUDP通信かを判断し、統計量計測部２０６でそれぞれについて統計量データを作成し続ける。
【００４６】
統計量データの内容は、TCP通信の場合、再送要求パケット受信数であり、UDP通信の場合、パケット転送回数と受信確認応答受信回数である。「受信確認」は、パケットを転送した後、転送先中継装置２０が転送元中継装置へ送信するパケットである。
規定の周期時間で、スイッチ制御装置４０は統計量データ取得部４２０により中継装置２０から統計量データを取得する。
【００４７】
スイッチ制御装置４０は、統計量データ取得の後、制御方法決定部４４０により各中継装置２０の統計量データと、ユーザ入力情報記憶部４１０に記憶されている中継装置位置情報と性能設定値から経路を決定し、この経路中の中継装置２０について事前に登録したパケット制御方法を設定し、フローテーブルを生成する。
次にスイッチ制御装置４０はフローテーブル生成の後、このフローテーブルを各中継装置２０へ送信する。
【００４８】
各中継装置２０は、受信したフローテーブルを、従前のフローテーブルに替えてフローテーブル記憶部２０２に記憶させ、以後このフローテーブルに従ってパケットの転送を実行する。
通信システム１は、OpenFlowを使った特殊なパケット制御方法を実行する。
【００４９】
スイッチ制御装置４０から中継装置２０へ配信されるフローテーブルには、少なくとも以下の情報が記入されている。中継装置２０は、パケットが入力されるごとにフローテーブルを参照してパケット制御を実施する。
【００５０】
中継装置２０は、入力パケット情報として以下の情報を使用する。
（１）転送先中継装置２０や転送元中継装置２０のIPアドレス
（２）トランスポート層ヘッダ(TCPかUDPかの判断)
また、中継装置２０は、フローテーブルを参照して以下のパケット制御方法を実行する。
（１）TCP通信時の制御方法：
転送先中継装置２０へ入力パケット転送するとともに、転送元中継装置２０に入力パケットに対するACKパケットを送信する。
（２）UDP通信時の制御方法：
転送元中継装置２０へ受信確認応答パケットを送信するとともに、後述する条件のもとで、転送先中継装置２０に入力パケットを再送する。
【００５１】
［２．１．スイッチ制御装置の動作例］
図６にスイッチ制御装置４０の動作例を示したフローチャートを掲げる。
スイッチ制御装置４０、より詳しくは統計量データ取得部４２０は、各中継装置２０から統計量データを受信する（S10)。
【００５２】
次にスイッチ制御装置４０、より詳しくは制御方法決定部４４０は、ステップS10において受信した各中継装置２０の統計量データと、ユーザ入力情報記憶部４１０に記憶されている性能設定値データ、パケット制御方法、中継装置位置情報データから現在のフローテーブルデータを生成する（S20）。
スイッチ制御装置４０が中継装置２０から取得している統計量データは、以下の3種である
1.   始端中継装置２０＿１から終端中継装置２０＿４までの通信遅延時間
2.   各中継装置２０におけるパケット受信回数
3.   各中継装置２０におけるパケット再送回数
4．上記2と3から、3のデータ（値）÷2のデータ（値）＝パケットの再送率を得る。
上記1と4の情報を使ってルールを作成することができる。
【００５３】
入力パケット情報は、TCP条件かUDP条件のいずれかである。なお、中継装置２０のフローテーブル中には、TCPについてのルールとUDPについてのルールが存在していて良い。
本実施形態では複数のTCP通信やUDP通信は考えないが、その場合はポート番号も条件に入る。
【００５４】
制御方法は、(1)TCPかUDP、(2)中継装置２０の種類(始端/終端/それ以外)、(3)隣接する中継装置２０の情報(IPアドレス)によって決定される。詳細な制御方法については後述する中継装置２０の動作の説明で述べる。
【００５５】
次にスイッチ制御装置４０、より詳しくは制御方法決定部４４０は、ステップS20で生成したフローテーブルデータを各中継装置２０に送信する（S30）。フローテーブルデータを受信した中継装置２０は、このフローテーブルデータを記憶する。中継装置２０は、このフローテーブルに従って、パケットの転送処理を行う。その結果として、遠隔制御装置１０からデータ受信装置までの通信経路中の中継装置構成やパケット制御方法が変更される。
【００５６】
［２．１．中継装置の動作例］
中継装置２０の動作例を説明する。図７は、中継装置２０がパケットを受信した場合に実行する、主たる動作であるパケット受信時処理の例を示すフローチャートである。中継装置２０は、パケットを受信すると、自己（その中継装置２０）が、始端位置中継装置であるか、終端位置中継装置であるか、それ以外の中継装置である中継位置中継装置であるかを判定する（S110）。
【００５７】
始端位置中継装置とは、送信元アプリケーション（遠隔制御装置１０）に一番近い中継装置２０をいう。終端位置中継装置とは、送信先アプリケーション（データ受信装置３０）に一番近い中継装置をいう。中継位置中継装置とは、始端位置中継装置及び終端位置中継装置以外の中継装置をいう。
【００５８】
自己が始端位置中継装置であると判定した場合（S110,「始端位置中継装置である」）、その中継装置２０は始端位置中継装置受信時処理（S120）を実行し、パケット受信時処理を終了する。
【００５９】
自己が中継位置中継装置であると判定した場合（S110,「中継位置中継装置である」）、その中継装置２０は中継位置中継装置受信時処理（S130）を実行し、パケット受信時処理を終了する。
【００６０】
自己が終端位置中継装置であると判定した場合（S110,「終端位置中継装置である」）、その中継装置２０は終端位置中継装置受信時処理（S140）を実行し、パケット受信時処理を終了する。
【００６１】
［２．１．１．始端位置中継装置受信時処理］
上記の始端位置中継装置受信時処理（S120）を説明する。図８に始端位置中継装置受信時処理（S120）の一例を示したフローチャートを掲げる。
まず中継装置２０は、受信したパケットが、フローテーブル記憶部２０２に記憶されているフローテーブルの各ルールに適合するか順次比較する（S200）。次に中継装置２０は、受信したパケットがフローテーブル中のどのルールに適合するかを判定する（S201）。
【００６２】
受信したパケットが本実施の形態を適用したいパケットに対するルールに適合すると判定した場合（S201,「本実施の形態を適用したいパケットに対するルール」）、中継装置２０は、当該ルールの統計情報を更新する（S211）。
【００６３】
次に中継装置２０は、現在時刻を受信パケットに書き込み、宛先ＩＰアドレスを送信先中継装置２０のＩＰアドレスに書き換え、これら書き換えを行った受信パケットを転送パケットバッファ部２０５に記憶する（S212）。
次に中継装置２０は、ステップS212で書き換えを行った受信パケットを送信先中継装置２０に送信する（S213）。
【００６４】
次に中継装置２０は、その受信パケットがTCPによるパケットかUDPによるパケットかを判定する（S214）。TCPによるパケットであると判定した場合（S214、「TCP」）、中継装置２０はTCPのACKパケットを生成し、このTCPのACKパケットを送信元アプリケーション（遠隔制御装置１０）に宛てて送信する（S215）。次に中継装置２０は、規定時間内に送信先中継装置２０からACKパケットを受信しない場合（タイムアウト時）、該当の受信パケットを送信先中継装置２０へ再送信する（S216）。その後、中継装置２０は始端位置中継装置受信時処理（S120）を終了する。なお、「TCPのACKパケット」と「ACKパケット」は異なる。「TCPのACKパケット」は、TCP通信におけるACKパケットをいう。一方、本実施の形態にかかる「ACKパケット」は、ペイロードに後述するの受信パケットIDを持つパケットをいう。
【００６５】
一方、前述したステップS214において、UDPによるパケットであると判定した場合（S214、「UDP」）、中継装置２０はステップS215を実行せずに、ステップS216を実行して始端位置中継装置受信時処理（S120）を終了する。
【００６６】
前述したステップS201において、受信したパケットがACKパケットに対するルールに適合すると判定した場合（S201,「ACKパケットに対するルール」）、中継装置２０は、当該ルールの統計情報を更新する（S221）。
【００６７】
次に中継装置２０は、転送パケットバッファ部２０５からACKパケットに対応する受信パケットを検索する（S222）。中継装置２０は、上記ACKパケットに対応する受信パケットのデータを転送パケットバッファ部２０５から削除する（S223）。次に中継装置２０は、転送パケットバッファ部２０５に複数のパケットがあり、先に送信したパケットに対するACKパケットを受信しないうちに、後に送信したパケットに対するACKパケットを受信した場合、先に送信した受信パケットを即時に送信先中継装置２０に再送する（S224）。この際の再送方法はタイムアウト時と同様である。「タイムアウト時」とは、ステップS216の処理中に記載された、「規定時間内に送信先中継装置からACKパケットを受信しない場合」のタイムアウト時をいう。「再送方法」は、図１２に示す受信パケット再送処理と同様の処理である。
【００６８】
［２．１．１．１．始端中継装置の転送パケットバッファ登録処理］
前述のステップS212で行われる処理（「転送パケットバッファ登録処理」という）について説明する。図９は転送パケットバッファ登録処理の一例を示すフローチャートである。転送パケットバッファ登録処理において、中継装置２０は受信パケットがTCPによるものかUDPによるものかを判定する（S300）。受信パケットがTCPによるものであると判定した場合（S300,「TCP」）、中継装置２０は受信パケット内のTCPのSEQ番号を、当該受信パケットＩＤとして、受信パケットとともに転送パケットバッファ部２０５に書き込む（S301)。その後中継装置２０は転送パケットバッファ登録処理を終了する。
【００６９】
図１０に、ステップS301で転送パケットバッファ部２０５に書き込まれるデータの構成例を示す。この構成例では、受信パケットごとに一のレコード1000が生成され、各レコード1000は、受信パケットID格納フィールド1001と、受信パケット格納フィールド1002とを有している。受信パケットID格納フィールド1001には、受信パケット内のTCPのSEQ番号が受信パケットIDとして格納され、受信パケット格納フィールド1002には、受信パケットID受信パケットIDに対応する受信パケットのデータが格納される。
【００７０】
図９に戻り転送パケットバッファ登録処理の説明を続ける。前述したステップS300において、受信パケットがUDPによるものであると判定した場合（S300,「UDP」）、中継装置２０は、受信パケットのパケットペイロード中に受信パケットを識別するＩＤが含まれている前提として、そのＩＤを受信パケットＩＤとし、受信パケットとともに登録する（S302）。その後中継装置２０は転送パケットバッファ登録処理を終了する。
【００７１】
図１１に、ステップS302で転送パケットバッファ部２０５に書き込まれるデータの構成例を示す。この構成例では、受信パケットごとに一のレコード1100が生成され、各レコード1100は、受信パケットID格納フィールド1101と、受信パケット格納フィールド1102と、再送回数格納フィールド1103を有している。
【００７２】
受信パケットID格納フィールド1101には、受信パケット内のパケットペイロード中に含まれる受信パケットを識別するIDが受信パケットIDとして格納され、受信パケット格納フィールド1102には、受信パケットIDに対応する受信パケットのデータが格納され、再送回数格納フィールド1103には、その受信パケットの再送回数を格納する。
［２．１．１．２．始端中継装置の受信パケット再送処理］
【００７３】
前述のステップS224で行われる処理（「受信パケット再送処理」という）について説明する。図１２は受信パケット再送処理の一例を示すフローチャートであり、図１３は図１２のフローチャートに続くフローチャートである。
【００７４】
受信パケット再送処理において、再送要求を受信した中継装置２０、より詳しくはパケット転送部２０４は、転送パケットバッファ部２０５から再送対象の受信パケットを検索する（S401）。次に中継装置２０、より詳しくはパケット転送部２０４は検索の結果発見した受信パケットがTCPによるものかUDPによるものかを判定する（S402）。
【００７５】
ステップS402において受信パケットがTCPによるものであると判定した場合（S402、「TCP」）、中継装置２０、より詳しくはパケット転送部２０４は転送パケットバッファ部２０５から受信パケットを読み込み、その受信パケットの記録されている時刻データを現在時刻に更新する（S403）。次に中継装置２０はステップS403において時刻データを更新した受信パケットによって転送パケットバッファ部２０５の受信パケット情報を再度更新するとともに、時刻データを更新した受信パケットを再送要求先へ再送する（S404）。
【００７６】
次に中継装置２０、より詳しくはパケット転送部２０４は、統計量計測部２０６に統計量の該当受信パケットの再送回数をインクリメントするように要求し、統計量計測部２０６はこの要求に応じて、該当受信パケットの再送回数をインクリメントしたデータを統計量データ記憶部２０７に記憶させる（S405）。
【００７７】
次に中継装置２０、より詳しくはパケット転送部２０４は、ステップS404において再送した受信パケットがTCPによるものかUDPによるものかを判定する（S406）。ステップS406において受信パケットがTCPによるものであると判定した場合（S406、「TCP」）、中継装置２０、より詳しくはパケット転送部２０４は受信パケット再送処理を終了する。一方、ステップS406において受信パケットがUDPによるものであると判定した場合（S406、「UDP」）、中継装置２０、より詳しくはパケット転送部２０４は転送パケットバッファ部２０５中の該当受信パケットの再送回数（図１１、フィールド１１０３参照）をインクリメントし（S407）、その後受信パケット再送処理を終了する。
【００７８】
ステップS402において受信パケットがUDPによるものであると判定した場合（S402、「UDP」）、中継装置２０、より詳しくはパケット転送部２０４は、転送パケットバッファ部２０５のデータを検索し、当該受信パケットの再送回数（図１１、フィールド１１０３参照）を取得する（図１３、S408）。
【００７９】
中継装置２０、より詳しくはパケット転送部２０４はステップS408において取得した再送回数の値が、フローテーブル等に記録されているデータである最大再送回数の値と等しくなったか否かを判定する（S409）。再送回数の値が最大再送回数の値と等しくなったと判定した場合（S409, Yes）、中継装置２０、より詳しくはパケット転送部２０４は転送パケットバッファ部２０５から該当受信パケットのレコード１１００を削除し（S410）、その後受信パケット再送処理を終了する。
【００８０】
一方、ステップS409において再送回数の値が最大再送回数の値と等しくないと判定した場合（S409, No）、中継装置２０は前述したステップS403に進み、受信パケット再送処理を続行する。
以上で受信パケット再送処理（S401からS410）の説明を終了する。
【００８１】
［２．１．２．終端位置中継装置受信時処理］
上記の終端位置中継装置受信時処理（S140）を説明する。図１４に終端位置中継装置受信時処理（S140）の一例を示したフローチャート、図１５に図１４のフローチャートに続くフローチャートを掲げる。
【００８２】
まず中継装置２０は、受信したパケットが、フローテーブル記憶部２０２に記憶されているフローテーブルの各ルールに適合するか順次比較する（S501）。次に中継装置２０は、受信したパケットがフローテーブル中のどのルールに適合するかを判定する（S502）。
【００８３】
受信したパケットが本実施の形態を適用したいパケットに対するルールに適合すると判定した場合（S502、「本実施の形態を適用したいパケットに対するルール」）、中継装置２０は、当該ルールの統計情報を更新する（S503）。
【００８４】
次に中継装置２０、より詳しくは統計量計測部２０６は受信パケットの時刻データと現在時刻の差から通信遅延を得、統計量として通信遅延を統計量データ記憶部２０７に記憶させる（S504）。
【００８５】
次に中継装置２０、より詳しくはパケット転送部２０４は、本来の受信パケットに戻すため受信パケットから時刻データを削除し、宛先IPアドレスを送信先アプリケーションのものに変更し、受信パケットを転送パケットバッファに登録する（S505）。
次に中継装置２０、より詳しくはパケット転送部２０４は、送信先アプリケーションへ受信パケットを送信する（S507）。
次に次に中継装置２０、より詳しくはパケット転送部２０４はACKパケットを生成し、このACKパケットを送信元中継装置２０へ送信する（S508）。
【００８６】
次に中継装置２０、より詳しくはパケット転送部２０４はその受信パケットがTCPによるパケットかUDPによるパケットかを判定する（S509）。TCPによるパケットであると判定した場合（S509、「TCP」）、中継装置２０、より詳しくはパケット転送部２０４は規定時間内に送信先アプリケーションからTCPのACKパケットを受信しない場合(タイムアウト時)、該当の受信パケットを送信先アプリケーションへ、後述する受信パケット再送処理により再送し（S510）、終端位置中継装置受信時処理を終了する。
【００８７】
一方、前述のステップS509において受信パケットがUDPによるものであると判定した場合（S509,「UDP」）、中継装置２０、より詳しくはパケット転送部２０４は終端位置中継装置受信時処理を終了する。
【００８８】
前述のステップS502に戻って、終端位置中継装置受信時処理の説明を続ける。ステップS502において、受信したパケットがACKパケットに対するルールに適合すると判定した場合（S502,「ACKパケットに対するルール」）、中継装置２０は、当該ルールの統計情報を更新する（図１５、S511）。
【００８９】
次に中継装置２０、より詳しくはパケット転送部２０４は、転送パケットバッファ部２０５からACKパケットに対応する受信パケットを検索する（S512）。中継装置２０、より詳しくはパケット転送部２０４は、上記ACKパケットに対応する受信パケットのデータを転送パケットバッファ部２０５から削除する（S513）。次に中継装置２０、より詳しくはパケット転送部２０４は、従来のTCPの高速再転送の条件である、同一ACK番号であるTCPのACKパケットを３回続けて受信したときは、ACK番号と同じシーケンス番号を持つパケットを転送パケットバッファ部２０５から検索し、即時に検索の結果得られた受信パケットを再送する（S514）。この際の再送方法は、タイムアウト時と同様である。この後中継装置２０は終端位置中継装置受信時処理（S140）を終了する。
以上で、終端位置中継装置受信時処理の説明を終了する。
【００９０】
［２．１．２．１．終端中継装置の受信パケット再送処理］
前述のステップS510で行われる処理（「終端中継装置の受信パケット再送処理」という）について説明する。図１６は終端中継装置の受信パケット再送処理の一例を示すフローチャートである。
【００９１】
終端中継装置の受信パケット再送処理において、中継装置２０、より詳しくはパケット転送部２０４は、転送パケットバッファ部２０５から再送対象の受信パケットを検索する（S621）。次に中継装置２０、より詳しくはパケット転送部２０４は、転送パケットバッファから検索の結果特定された受信パケットを読み込み、この受信パケットを送信先アプリケーションへ送信する（S622）。
【００９２】
次に中継装置２０、より詳しくはパケット転送部２０４は、統計量計測部２０６に統計量の該当受信パケットの再送回数をインクリメントするように要求し、統計量計測部２０６はこの要求に応じて、該当受信パケットの再送回数をインクリメントしたデータを統計量データ記憶部２０７に記憶させる（S623）。この後中継装置２０は、受信パケット再送処理（S510）を終了する。
以上で終端中継装置の受信パケット再送処理（S510）の説明を終了する。
【００９３】
［２．１．３．中継位置中継装置受信時処理］
上記の中継位置中継装置受信時処理（S130）を説明する。図１７に中継位置中継装置受信時処理（S130）の一例を示したフローチャート、図１８に図１７のフローチャートに続くフローチャートを掲げる。
【００９４】
まず中継装置２０、より詳しくはパケット転送部２０４は、受信したパケットがフローテーブル記憶部２０２に記憶されているフローテーブルの各ルールに適合するか順次比較する（S601）。次に中継装置２０、より詳しくはパケット転送部２０４は、受信したパケットがフローテーブル中のどのルールに適合するかを判定する（S602）。
【００９５】
受信したパケットが本実施の形態を適用したいパケットに対するルールに適合すると判定した場合（S602,「本実施の形態を適用したいパケットに対するルール」）、中継装置２０、より詳しくはパケット転送部２０４は、統計量計測部２０６に当該ルールの統計情報を更新することを要求し、統計量計測部２０６は当該ルールの統計情報を更新して統計量データ記憶部に記憶させる（S603）。
【００９６】
次に中継装置２０、より詳しくはパケット転送部２０４は、現在時刻を受信パケットに書き込み、宛先ＩＰアドレスを送信先中継装置２０のＩＰアドレスに書き換え、これら書き換えを行った受信パケットを転送パケットバッファ部２０５に記憶する（S604）。
次に中継装置２０、より詳しくはパケット転送部２０４は、ステップS604で書き換えを行った受信パケットを送信先中継装置２０に送信する（S605）。
【００９７】
次に中継装置２０、より詳しくはパケット転送部２０４は、中継装置２０はACKパケットを生成し、このACKパケットを送信元中継装置２０に宛てて送信する（S606）。
【００９８】
次に中継装置２０、より詳しくはパケット転送部２０４は、規定時間内に送信先中継装置２０からACKパケットを受信しない場合(タイムアウト時)、後述する再送処理を実行する（S607）。この後、中継装置２０は中継位置中継装置受信時処理（S130）を終了する。
【００９９】
ステップS602に戻り、中継位置中継装置受信時処理の説明を続ける。ステップS602において受信したパケットがACKパケットに対するルールに適合すると判定した場合（S602,「ACKパケットに対するルール」）、中継装置２０、より詳しくはパケット転送部２０４は、統計量計測部２０６に当該ルールの統計情報を更新することを要求し、統計量計測部２０６は当該ルールの統計情報を更新して統計量データ記憶部に記憶させる（図１８、S608）。
【０１００】
次に中継装置２０、より詳しくはパケット転送部２０４は、転送パケットバッファ部２０５からACKパケットに対応する受信パケットを検索する（S609）。中継装置２０、より詳しくはパケット転送部２０４は、上記ACKパケットに対応する受信パケットのデータを転送パケットバッファ部２０５から削除する（S610）。
【０１０１】
次に中継装置２０、より詳しくはパケット転送部２０４は、転送パケットバッファ部２０５に複数のパケットがあり、先に転送したパケットに対してACKパケットを受信しないうちに、後に転送したパケットに対するACKパケットが届いた場合、先に転送したパケットに対する再送要求と判断し、即時に先に転送したパケットを再送する（S611）。この際の再送方法は、タイムアウト時と同様である。この後、中継装置２０は中継位置中継装置受信時処理（S130）を終了する。
以上で中継位置中継装置受信時処理（S130）の説明を終了する。
【０１０２】
［２．１．３．１．中継位置中継装置の受信パケット再送処理］
前述のステップS607で行われる処理（「中継位置中継装置の受信パケット再送処理」という）について説明する。図１９は中継位置中継装置の受信パケット再送処理の一例を示すフローチャートであり、図２０は図１９のフローチャートに続くフローチャートである。
【０１０３】
中継位置中継装置の受信パケット再送処理において、再送要求を受信した中継装置２０、より詳しくはパケット転送部２０４は、転送パケットバッファ部２０５から再送対象の受信パケットを検索する（S701）。次に中継装置２０、より詳しくはパケット転送部２０４は検索の結果発見した受信パケットがTCPによるものかUDPによるものかを判定する（S702）。
【０１０４】
ステップS702において受信パケットがTCPによるものであると判定した場合（S702、「TCP」）、中継装置２０、より詳しくはパケット転送部２０４は転送パケットバッファ部２０５から受信パケットを読み込み、その受信パケットを再送要求先へ送信する（S703）。
【０１０５】
次に中継装置２０、より詳しくはパケット転送部２０４は、統計量計測部２０６に統計量の該当受信パケットの再送回数をインクリメントするように要求し、統計量計測部２０６はこの要求に応じて、該当受信パケットの再送回数をインクリメントしたデータを統計量データ記憶部２０７に記憶させる（S704）。
【０１０６】
次に中継装置２０、より詳しくはパケット転送部２０４は、ステップS704において再送した受信パケットがTCPによるものかUDPによるものかを判定する（S705）。ステップS705において受信パケットがTCPによるものであると判定した場合（S705、「TCP」）、中継装置２０、より詳しくはパケット転送部２０４は受信パケット再送処理を終了する。一方、ステップS705において受信パケットがUDPによるものであると判定した場合（S705、「UDP」）、中継装置２０、より詳しくはパケット転送部２０４は転送パケットバッファ部２０５中の該当受信パケットの再送回数（図１１、フィールド１１０３参照）をインクリメントし（S706）、その後受信パケット再送処理を終了する。
【０１０７】
図１９のステップS702に戻り、受信パケット再送処理の説明を続ける。ステップS702において受信パケットがUDPによるものであると判定した場合（S702、「UDP」）、中継装置２０、より詳しくはパケット転送部２０４は、転送パケットバッファ部２０５のデータを検索し、当該受信パケットの再送回数（図１１、フィールド１１０３参照）を取得する（図２０、S707）。
【０１０８】
中継装置２０、より詳しくはパケット転送部２０４はステップS707において取得した再送回数の値が、フローテーブル等に記録されているデータである最大再送回数の値と等しくなったか否かを判定する（S708）。再送回数の値が最大再送回数の値と等しくなったと判定した場合（S708, Yes）、中継装置２０、より詳しくはパケット転送部２０４は転送パケットバッファ部２０５から該当受信パケットのレコード１１００を削除し（S709）、その後受信パケット再送処理を終了する。
【０１０９】
一方、ステップS708において再送回数の値が最大再送回数の値と等しくないと判定した場合（S708, No）、中継装置２０は前述したステップS７03に進み、受信パケット再送処理を続行する。
以上で中継位置中継装置２０の受信パケット再送処理（S607）の説明を終了する。
【０１１０】
［２．２．統計量取得時の動作例］
スイッチ制御装置４０が各中継装置２０から統計量データを収集する処理である統計量データ収集処理を説明する。図２１は統計量データ収集処理の一例を示したフローチャートである。図２１を参照しながら以下に統計量データ収集処理を説明する。
【０１１１】
統計量データ収集処理を開始するための所定の条件が満たされる（例えば、一定時間の経過）と、スイッチ制御装置４０、より詳しくは統計量データ取得部４２０が起動する。
【０１１２】
スイッチ制御装置４０、より詳しくは統計量データ取得部４２０は、ある特定のルールに対する統計量データの送信を要求するメッセージである統計量データ送信要求メッセージを全中継装置２０に送信する（S801）。「ある特定のルール」は、フローテーブルに記憶されているルールの内のどれか一つである。
【０１１３】
前記統計量データ送信要求メッセージを受信した中継装置２０、より詳しくは統計量データ送信部２０８は、前記統計量データ送信要求メッセージ中に含まれるルールと一致するルールをフローテーブル記憶部２０２に記憶されたフローテーブル中から検索する（S802）。統計量データには、ルールの参照回数やルールが作成されてからの時間が含まれる。
【０１１４】
中継装置２０、より詳しくは統計量データ送信部２０８は、ステップS802の検索の結果得られた該当ルールの統計量データを統計量データ記憶部２０７から読み出し、この統計量データをスイッチ制御装置４０に送信する（S803）。
【０１１５】
スイッチ制御装置４０、より詳しくは統計量データ取得部４２０は、該当ルールの統計量データを中継装置２０から受信すると、該当ルールの統計量データを統計量データ記憶部２０７に記憶させる（S804）。
【０１１６】
次にスイッチ制御装置４０、より詳しくは統計量データ取得部４２０は、特定の通信（TCP若しくはUDP）に対する再送回数の送信を要求するメッセージである再送回数要求メッセージを全中継装置２０に送信する（S805）。
【０１１７】
再送回数要求メッセージを受信した中継装置２０、より詳しくは統計量データ送信部２０８は、計測していた、前記特定の通信に対する再送回数をスイッチ制御装置４０に送信する（S806）。
但し、UDP通信時は終端中継装置２０は再送回数のデータを有さないので、再送回数の送信は行わない。
【０１１８】
スイッチ制御装置４０、より詳しくは統計量データ取得部４２０は、前記特定の通信に対する再送回数を受信すると、特定の通信に対する再送回数を統計量データ記憶部２０７に記憶させる（S807）。
【０１１９】
次にスイッチ制御装置４０、より詳しくは統計量データ取得部４２０は、前記特定の通信に対する通信遅延時間の送信を要求するメッセージである通信遅延時間要求メッセージを終端中継装置２０に送信する（S808）。
【０１２０】
通信遅延時間要求メッセージを受信した終端中継装置２０、より詳しくは統計量データ送信部２０８は、計測していた通信遅延時間をスイッチ制御装置４０に送信する（S809）。
【０１２１】
スイッチ制御装置４０、より詳しくは統計量データ取得部４２０は、前記特定の通信に対する通信遅延を受信すると、特定の通信に対する再送回数を統計量データ記憶部２０７に記憶させる（S810）。以上で、統計量データ収集処理は終了する。
【０１２２】
［３．実施例］
［３．１．アプリケーションがTCP通信をする場合の実施例］
通信システム１において、送信元アプリケーションと送信先アプリケーションがTCP通信をする場合の動作を述べる。図２２に、通信システム１において、送信元アプリケーション（遠隔制御装置１０に相当する）と送信先アプリケーション（データ受信装置３０に相当する）がTCP通信をする場合の動作例を示したフローチャートを掲げる。
【０１２３】
なお、スイッチ制御装置４０の各中継装置統計量記憶部４３０は、通信遅延時間と各中継装置の再送率を記憶しており、制御方法決定部４４０はパケット制御方法としてTCP通信時の制御方法（スクリプトのイメージ）及びパケット転送を記憶しており、中継装置位置情報４１１は、各中継装置２０のIPアドレス、緯度、経度を含んでおり、性能設定値４１２は、信遅延要求値、再送率閾値を含み、制御装置内フローテーブル記憶部４５０は、中継装置２０別のフローテーブル情報（その中継装置２０が現在適用中の制御方法データ）を記憶している。
【０１２４】
通信システム１において、各中継装置２０は、測定を行い、測定結果を用いて統計量データを生成する（S2201）。統計量データは、再送要求受信回数と端点間の通信遅延時間である。通信遅延時間は、計測サイト側の中継装置２０で時刻データをパケットに入れ、クラウド側の中継装置２０がこれを取り出し、現在時刻と比較して通信遅延時間を得る。
【０１２５】
図２３に、ステップS2201における通信システム１の状態を示すブロック図を掲げる。遠隔制御装置１０、各中継装置２０＿１、２０＿２、２０＿３，２０＿４、データ受信装置３０のそれぞれは送信先の装置に通信パケットを送信し、送信先の装置はこの通信パケットを受信すると、送信元の装置にACKパケットを送信している。この状態で各中継装置２０＿１、２０＿２、２０＿３，２０＿４は統計量の計測を実行し、測定結果に基づいて統計量データ生成している。
【０１２６】
ステップS2201の後、各中継装置２０＿１、２０＿２、２０＿３，２０＿４は統計量データをスイッチ制御装置４０に送信する（S2202）。本実施の形態では、統計量データの送信は、スイッチ制御装置４０が中継装置２０に統計量データの送信要求を送ることによって実行するが、その他のトリガによって統計量データの送信を行われるようにしても良い。図２４に、ステップS2202における通信システム１の状態を示すブロック図を掲げる。
【０１２７】
ステップS2202の後、スイッチ制御装置４０は、各中継装置２０＿１、２０＿２、２０＿３，２０＿４から統計量データを受信し、この統計量データに基づいて新たなフローテーブルを生成する（S2203）。図２５にステップS2203における通信システム１の状態を示すブロック図を掲げる。新たなフローテーブルは、中継装置２０の配置（他の中継装置との送受信関係）を決定する情報、TCP通信用の制御方法を特定する情報を有している。
【０１２８】
ステップS2203の後、スイッチ制御装置４０は、各中継装置２０＿１、２０＿２、２０＿３，２０＿４へステップS2203で生成したフローテーブルを送信する（S2204）。図２６にステップS2204における通信システム１の状態を示すブロック図を掲げる。
【０１２９】
ステップS2204の後、ステップS2204において新たなフローテーブルを受信した各中継装置２０＿１、２０＿２、２０＿３，２０＿４は、フローテーブル記憶部２０２に記憶されているフローテーブルをこの新たなフローテーブルに置き換え、パケットの転送等の処理をこの新たなフローテーブルに従って実行するように動作する。
【０１３０】
［３．１．１．制御方法の決定］
上記ステップS2203の制御方法決定処理の内容を述べる。図２７に制御方法決定処理における中継装置追加処理の一例を示したフローチャートを、図２８に制御方法決定処理における中継装置削除処理の一例を示したフローチャートを掲げる。
まず、図２７を参照しながら制御方法決定処理における中継装置追加処理の一例を説明する。
【０１３１】
［３．１．１．１．中継装置追加処理］
中継装置追加処理において、スイッチ制御装置４０、より詳しくは制御方法決定部４４０は、各中継装置統計量記憶部４３０を参照して、閾値を超えた再送率を有する中継装置が存在するか否かを判定する（S901）。閾値を超えた再送率を有する中継装置は存在しないと判定した場合（S901 ,No）、スイッチ制御装置４０、より詳しくは制御方法決定部４４０は中継装置追加処理を終了する。
【０１３２】
一方、ステップS901において閾値を超えた再送率を有する中継装置が存在すると判定した場合（S901 ,Yes）、スイッチ制御装置４０、より詳しくは制御方法決定部４４０は、入力情報記憶部４１０に記憶されている中継装置位置情報４１１を参照して、再送率が閾値を越えた中継装置２０と、その上流の中継装置との中継点となりうる中継装置を探す（S902）。ステップS902の結果、中継点となる中継装置２０が存在しないと判定した場合（S903,  No）、スイッチ制御装置４０、より詳しくは制御方法決定部４４０は、その中継装置２０についての中継装置追加処理を終了する。
【０１３３】
一方、ステップS902の結果、中継点となる中継装置２０が存在すると判定した場合（S903,  Yes）、以下の（１）から（３）の内容で制御方法を決定し、変更する（S904）。
（１）対象上流の中継装置を「転送先を中継位置中継装置にする」制御方法に変更する。
（２）中継位置中継装置には「対象上流の中継装置にACKを返し、転送先を対象下流の中継装置にする」制御方法に変更する。
（３）対象下流の中継装置を「中継位置中継装置にACKを返す」制御方法に変更する。
変更された制御方法は新たなフローテーブルの一部として、制御装置内フローテーブル記憶部４５０に記憶される。
以上で制御方法決定処理における中継装置追加処理は終了する。
【０１３４】
図２９及び図３０に、中継装置追加処理における通信システム１の例を示す。図２９は、中継装置追加処理の実行前の通信システム１の例を示し、図３０は、図２９の通信システム１が中継装置追加処理によって変化した状態を示す。図２９、図３０に示す通信システム１の構成は図３に示した通信システム１と同様である。同一の構成要素には同一の参照符号を付し、構成要素それぞれの説明は省略する。
【０１３５】
中継装置追加処理の実行前において、遠隔制御装置１０からデータ受信装置３０への通信パケットは、中継装置２０＿１から中継装置２０＿４を順に経由して送信される。中継装置＿２、中継装置＿３は、中継装置２０＿１から中継装置２０＿４と通信可能であるが、遠隔制御装置１０からデータ受信装置３０へのパケット転送にはかかわっていない。
【０１３６】
中継装置２０＿１と中継装置２０＿４との間は再送率が閾値を越えているものとする。この場合スイッチ制御装置４０は、中継装置２０＿１と中継装置２０＿４とを中継できる中継装置２０を探し、中継装置２０＿３を得たものとする。スイッチ制御装置４０は、以下の（１）から（３）を実行する。
【０１３７】
（１）対象上流の中継装置２０＿１について、「転送先を中継位置中継装置２０＿３にする」制御方法に変更する。
（２）中継位置中継装置２０＿３には「対象上流の中継装置２０＿１にACKを返し、転送先を対象下流の中継装置２０＿４にする」制御方法に変更する。
（３）対象下流の中継装置２０＿４を「中継位置中継装置２０＿３にACKを返す」制御方法に変更する。
【０１３８】
上記（１）から（３）の変更が行われた結果、遠隔制御装置１０からデータ受信装置３０への通信パケットの経路は図３０に示すように変更された。すなわち、遠隔制御装置１０からデータ受信装置３０への通信パケットは、中継装置２０＿１、中継装置＿３、中継装置２０＿４を順に経由して送信されるように変更された。この通信経路の変更によって、中継装置２０の再送区間が短くなり、再送のデメリット（再送に要する時間など）が軽減される。
【０１３９】
［３．１．１．２．中継装置削除処理］
次に、図２８を参照しながら、制御方法決定処理における中継装置削除処理を説明する。
中継装置削除処理において、スイッチ制御装置４０、より詳しくは制御方法決定部４４０は、各中継装置統計量記憶部４３０を参照して、通信遅延が悪くなっている、若しくは、通信遅延が通信遅延要求値より悪い中継装置２０が存在するか否かを判定する（S1001）。前記条件を満たす中継装置２０は存在しないと判定した場合（S1001, No）、スイッチ制御装置４０、より詳しくは制御方法決定部４４０は中継装置削除処理を終了する。
【０１４０】
一方、ステップS1001において前記条件を満たす中継装置２０が存在すると判定した場合（S1001, Yes）、スイッチ制御装置４０、より詳しくは制御方法決定部４４０は、各中継装置統計量記憶部４３０を参照して、隣接する3つの中継装置２０であって全ての中継装置２０について再送率閾値を下回る再送率となっている組み合わせが存在するか否かを判定する（S1002）。前記条件を満たす組み合わせが存在しないと判定した場合（S1002, No）、スイッチ制御装置４０、より詳しくは制御方法決定部４４０は中継装置削除処理を終了する。
【０１４１】
一方、ステップS1002において前記条件を満たす組み合わせが存在すると判定した場合（S1002, Yes）、スイッチ制御装置４０、より詳しくは制御方法決定部４４０は、上記条件を満たす組み合わせのうち、計測サイト５０側に近い中継装置２０の再送率が最も小さい組み合わせを抽出する（S1003）。
【０１４２】
スイッチ制御装置４０、より詳しくは制御方法決定部４４０はステップS1003で抽出した3つの隣接する中継装置２０について、以下の（１）から（３）の内容で制御方法を決定し、変更する（S1004）。
【０１４３】
（１）  抽出した組み合わせのうち上流の中継装置２０について、「転送先を下流中継装置にする」制御方法に変更。
（２）  抽出した組み合わせのうち中間の中継装置のフローテーブルは削除する。
（３）  抽出した組み合わせのうち下流の中継装置について、「上流中継装置にACKを
返す」制御方法に変更。
以上で制御方法決定処理における中継装置削除処理は終了する。
【０１４４】
図３１及び図３２に、中継装置削除処理における通信システム１の例を示す。図３１は、中継装置削除処理の実行前の通信システム１の例を示し、図３２は、図３１の通信システム１が中継装置追加処理によって変化した状態を示す。図３１、図３２に示す通信システム１の構成は図３に示した通信システム１と同様である。同一の構成要素には同一の参照符号を付し、構成要素それぞれの説明は省略する。
【０１４５】
中継装置削除処理の実行前において、遠隔制御装置１０からデータ受信装置３０への通信パケットは、中継装置２０＿１、中継装置２０＿２、中継装置２０＿３、中継装置２０＿４を順に経由して送信される。
【０１４６】
中継装置２０＿１、中継装置２０＿２、中継装置２０＿３間の再送率は少ないものとする。その場合、スイッチ制御装置４０は隣接する3つの中継装置２０であって全ての中継装置２０について再送率閾値を下回る再送率となっている組み合わせが存在するか否かを判定（S1002）し、そのような組み合わせのうち計測サイト５０側に近い中継装置２０の再送率が最も小さい組み合わせとして、中継装置２０＿１、中継装置２０＿２、中継装置２０＿３の組み合わせを取得する（S1003）。
【０１４７】
次にスイッチ制御装置４０は以下の（１）から（３）の内容で制御方法を決定し、変更する（S1004）。
（１）  抽出した組み合わせのうち上流の中継装置２０＿１について、「転送先を下流中継装置２０＿３にする」制御方法に変更。
（２）  抽出した組み合わせのうち中間の中継装置２０＿２のフローテーブルは削除する。
（３）  抽出した組み合わせのうち下流の中継装置２０＿３について、「上流中継装置２０＿１にACKを返す」制御方法に変更。
【０１４８】
（１）から（３）の内容で制御方法を変更した結果、遠隔制御装置１０からデータ受信装置３０への通信パケットの経路は図３２に示すように変更された。すなわち、遠隔制御装置１０からデータ受信装置３０への通信パケットは、中継装置２０＿１、中継装置＿３、中継装置２０＿４を順に経由して送信されるように変更された。この通信経路の変更によって、中継に関与する中継装置２０の数が少なくなり、遠隔制御装置１０からデータ受信装置３０への通信速度が有利となる。
【０１４９】
［３．１．２．TCP通信時のパケット転送処理］
次に、TCP通信の場合のパケット転送処理を説明する。図３３にパケット転送処理の一例を示すフローチャートを掲げる。
中継装置２０、より詳しくはパケット転送部２０４は、上流（送信元）の装置から通信パケットを受信すると、フローテーブル記憶部２０２に記憶されたフローテーブル（制御方法）に従って、その通信パケットを送信先（下流）の中継装置２０へ転送するとともに、この通信パケットを転送パケットバッファ部２０５に記憶させる（S1101）なお、通信パケットのヘッダは前述のように書き換えられている。
【０１５０】
次に中継装置２０、より詳しくはパケット転送部２０４は、ACKパケットを受信したか、又は再送要求を受信したか若しくは規定時間経過したかを判定する（S1102）。ACKパケットを受信したと判定した場合（S1102,「ACK受信」）、中継装置２０、より詳しくはパケット転送部２０４は、転送パケットバッファ部２０５からこのACKパケットに対応する通信パケットを削除し（S1103）、パケット転送処理を終了する。
【０１５１】
一方、ステップS1102において再送要求を受信したか若しくは規定時間経過したかと判定した場合（S1102,「再送要求受信、規定時間経過」、「転送パケットの再送条件」が成立した場合に相当する）、中継装置２０、より詳しくはパケット転送部２０４は、再送要求を受信したか若しくは規定時間経過した通信パケットを転送パケットバッファ部２０５から読み出し、その通信パケットを送信先の装置へ送信する（S1103）。その後ステップS1102に戻る。
以上でTCP通信の場合のパケット転送処理の説明を終了する。
【０１５２】
[３．１．３．TCP通信時における本実施の形態の利点]
図３４に、本実施の形態を適用した場合の通信時間短縮の例を示す。本実施の形態を適用してTCP通信を実行する場合、再送の多いネットワークで再送のデメリットが減ることで、通信速度が向上する。図３４に、本実施の形態が未適用である場合の通信時間と、本実施の形態が適用された場合の通信時間とを比較して示す。本実施の形態が未適用である場合の通信時間は、通信パケットが全区間（送信元装置、中継装置、送信先装置）を通過する時間の全区間と、送信先装置から送信元装置へ再送要求が到達するまでの再送要求転送時間と、再送された通信パケットが全区間（送信元装置、中継装置、送信先装置）を通過する時間の全区間’との合計時間である。なお、全区間は区間１から区間６までの６つの区間を持つものとする。
【０１５３】
これに対して、区間１、区間３、区間５で再送要求が発生したという条件下で、本実施の形態が適用された場合の通信時間を「適用時」として図３４に示す。適用時に要する全通信時間は、未適用時に要する全通信時間より、「通信時間短縮」分短縮されることになる。本実施の形態によれば、中継装置２０の削除と追加（中継装置２０の選択方法にランダム性を持たせることも可能)）を繰り返していくことで、動的に性能の変化するネットワークに追従して経路を変化させていくことができる。
【０１５４】
［３．２．アプリケーションがUDP通信をする場合の実施例］
通信システム１において、送信元アプリケーションと送信先アプリケーションがUDP通信をする場合の動作を述べる。図３５に、通信システム１において、送信元アプリケーションと送信先アプリケーションがTCP通信をする場合の動作例を示したフローチャートを掲げる。
【０１５５】
なお、スイッチ制御装置４０の各中継装置統計量記憶部４３０は、通信遅延時間と各中継装置の再送率を記憶しており、制御方法決定部４４０はパケット制御方法としてUDP通信時の制御方法（スクリプトのイメージ）及びパケット転送を記憶しており、中継装置位置情報４１１は、各中継装置２０のIPアドレス、緯度、経度を含んでおり、性能設定値４１２は、最大再送回数、通信遅延要求値、再送率閾値を含み、制御装置内フローテーブル記憶部４５０は、中継装置２０別のフローテーブル情報（その中継装置が現在適用中の制御方法データ）を記憶している。
【０１５６】
通信システム１において、各中継装置２０は、測定を行い、測定結果を用いて統計量データを生成する（S1201）。統計量データは、端点間の通信遅延時間と各中継装置での再送率である。通信遅延時間は、計測サイト側の中継装置２０で時刻データをパケットに入れ、クラウド側の中継装置２０がこれを取り出し、現在時刻と比較して通信遅延時間を得る。
【０１５７】
図３６に、ステップS1201における通信システム１の状態を示すブロック図を掲げる。遠隔制御装置１０、各中継装置２０＿１、２０＿２、２０＿３，２０＿４、データ受信装置３０のそれぞれは送信先の装置に通信パケットを送信し、送信先の装置はこの通信パケットを受信すると、送信元の装置に受信確認を送信している。中継装置２０は、パケット転送時に通し番号を付け、受信確認応答はその番号を返信する。受信確認応答を受信しない場合、送信元の中継装置２０はその番号の通信パケットを再送する。この状態で各中継装置２０＿１、２０＿２、２０＿３，２０＿４は統計量の計測を実行し、測定結果に基づいて統計量データ生成している。
【０１５８】
ステップS1201の後、各中継装置２０＿１、２０＿２、２０＿３，２０＿４は統計量データをスイッチ制御装置４０に送信する（S1202）。本実施の形態では、統計量データの送信は、スイッチ制御装置４０が中継装置２０に統計量データの送信要求を送ることによって、実行するとしているが、その他のトリガによって統計量データの送信を行われるようにしても良い。図３７に、ステップS1202における通信システム１の状態を示すブロック図を掲げる。
【０１５９】
ステップS1202の後、スイッチ制御装置４０は、各中継装置２０＿１、２０＿２、２０＿３，２０＿４から統計量データを受信し、この統計量データに基づいて新たなフローテーブルを生成する（S1203）。図３８にステップS1203における通信システム１の状態を示すブロック図を掲げる。新たなフローテーブルは、中継装置２０の配置（他の中継装置との送受信関係）を決定する情報、UDP通信用の制御方法を特定する情報を有している。
【０１６０】
ステップS1203の後、スイッチ制御装置４０は、各中継装置２０＿１、２０＿２、２０＿３，２０＿４へステップS1203で生成したフローテーブルを送信する（S1204）。図３９にステップS1204における通信システム１の状態を示すブロック図を掲げる。
【０１６１】
ステップS1204の後、ステップS1204において新たなフローテーブルを受信した各中継装置２０＿１、２０＿２、２０＿３，２０＿４は、フローテーブル記憶部２０２に記憶されているフローテーブルをこの新たなフローテーブルに置き換え、パケットの転送等の処理をこの新たなフローテーブルに従って実行するように動作する。
【０１６２】
［３．２．１．制御方法の決定］
上記ステップS1203の制御方法決定処理の内容を述べる。図４０に制御方法決定処理における中継装置追加処理の一例を示したフローチャートを、図４１に制御方法決定処理における中継装置削除処理の一例を示したフローチャートを掲げる。
【０１６３】
［３．２．１．１．中継装置追加処理］
まず、図４０を参照しながら御方法決定処理における中継装置追加処理の一例を説明する。中継装置追加処理において、スイッチ制御装置４０、より詳しくは制御方法決定部４４０は、各中継装置統計量記憶部４３０を参照して、閾値を超えた再送率を有する中継装置が存在するか否かを判定する（S1301）。閾値を超えた再送率を有する中継装置は存在しないと判定した場合（S1301 ,No）、スイッチ制御装置４０、より詳しくは制御方法決定部４４０は中継装置追加処理を終了する。
【０１６４】
一方、ステップS1301において閾値を超えた再送率を有する中継装置が存在すると判定した場合（S1301 ,Yes）、スイッチ制御装置４０、より詳しくは制御方法決定部４４０は、入力情報記憶部４１０に記憶されている中継装置位置情報４１１を参照して、再送率が閾値を越えた中継装置２０と、その上流の中継装置との中継点となりうる中継装置を探す（S1302）。ステップS1302の結果、中継点となる中継装置２０が存在しないと判定した場合（S1303, No）、スイッチ制御装置４０、より詳しくは制御方法決定部４４０は、最大再送回数をインクリメントし（S1305）、その中継装置２０についての中継装置追加処理を終了する。
【０１６５】
一方、ステップS902の結果、中継点となる中継装置２０が存在すると判定した場合（S1303, Yes）、以下の（１）から（３）の内容で制御方法を決定し、変更する（S1304）。
（１）対象上流の中継装置を「転送先を中継位置中継装置にする」制御方法に変更する。
（２）中継位置中継装置には「対象上流の中継装置に受信確認応答を返し、転送先を対象下流の中継装置にする」制御方法に変更する。
（３）対象下流の中継装置を「中継位置中継装置に受信確認応答を返す」制御方法に変更する。
変更された制御方法は新たなフローテーブルの一部として、制御装置内フローテーブル記憶部４５０に記憶される。
以上で制御方法決定処理における中継装置追加処理は終了する。
UDP通信時における中継装置追加処理における通信システム１の例は、図２８及び図２９に示すところと同様である。
【０１６６】
［３．２．１．２．中継装置削除処理］
次に、図４１を参照しながらUDP通信時における制御方法決定処理における中継装置削除処理を説明する。
中継装置削除処理において、スイッチ制御装置４０、より詳しくは制御方法決定部４４０は、各中継装置統計量記憶部４３０を参照して、通信遅延が悪くなっている、若しくは、通信遅延が通信遅延要求値より悪い中継装置２０が存在するか否かを判定する（S1401）。前記条件を満たす中継装置２０は存在しないと判定した場合（S1401, No）、スイッチ制御装置４０、より詳しくは制御方法決定部４４０は中継装置削除処理を終了する。
【０１６７】
一方、ステップS1401において前記条件を満たす中継装置２０が存在すると判定した場合（S1401, Yes）、スイッチ制御装置４０、より詳しくは制御方法決定部４４０は、各中継装置統計量記憶部４３０を参照して、隣接する3つの中継装置２０であって全ての中継装置２０について再送率閾値を下回る再送率となっている組み合わせが存在するか否かを判定する（S1402）。前記条件を満たす組み合わせが存在しないと判定した場合（S1402, No）、スイッチ制御装置４０、より詳しくは制御方法決定部４４０は中継装置削除処理を終了する。
【０１６８】
一方、ステップS1402において前記条件を満たす組み合わせが存在すると判定した場合（S1402, Yes）、スイッチ制御装置４０、より詳しくは制御方法決定部４４０は、上記条件を満たす組み合わせのうち、計測サイト５０側に近い中継装置２０の再送率が最も小さい組み合わせを抽出する（S1403）。
【０１６９】
スイッチ制御装置４０、より詳しくは制御方法決定部４４０はステップS1403で抽出した3つの隣接する中継装置２０について、以下の（１）から（３）の内容で制御方法を決定し、変更する（S1404）。
（１）  抽出した組み合わせのうち上流の中継装置２０について、「転送先を下流中継装置にする」制御方法に変更。
（２）  抽出した組み合わせのうち中間の中継装置のフローテーブルは削除する。
（３）  抽出した組み合わせのうち下流の中継装置について、「上流中継装置に受信確認応答を返す」制御方法に変更。
以上で制御方法決定処理における中継装置削除処理は終了する。
中継装置削除処理における通信システム１の例は図３０及び図３１に示すところと同様である。
【０１７０】
（１）から（３）の内容で制御方法を変更した結果、遠隔制御装置１０からデータ受信装置３０への通信パケットの経路は図３１に示すように変更された。すなわち、遠隔制御装置１０からデータ受信装置３０への通信パケットは、中継装置２０＿１、中継装置＿３、中継装置２０＿４を順に経由して送信されるように変更された。この通信経路の変更によって、中継に関与する中継装置２０の数が少なくなり、遠隔制御装置１０からデータ受信装置３０への通信速度が有利となる。
【０１７１】
［３．３．UDP通信時のパケット転送］
UDP通信時における中継装置２０パケット転送処理の例を説明する。図４２はUDP通信時における中継装置２０パケット転送処理の例を示したフローチャートである。
【０１７２】
中継装置２０、より詳しくはパケット転送部２０４は、上流（送信元）の装置から通信パケットを受信すると、フローテーブル記憶部２０２に記憶されたフローテーブル（制御方法）に従って、その通信パケットを送信先（下流）の中継装置２０へ転送するとともに、この通信パケットを転送パケットバッファ部２０５に記憶させる（S1501）。なお、通信パケットのヘッダは前述のように書き換えられている。
【０１７３】
次に中継装置２０、より詳しくはパケット転送部２０４は、パケット再送条件が達成されたか否かを判定する（S1502）。パケット再送条件が達成していないと判定した場合（S1502,  No）、中継装置２０、より詳しくはパケット転送部２０４は、転送パケットバッファ部２０５から対応する通信パケットを削除し（S1503）、パケット転送処理を終了する。
【０１７４】
一方、ステップS1502においてパケット再送条件が達成されたと判定した場合（S1502, Yes、転送パケットの再送条件が成立した場合に相当する）、中継装置２０、より詳しくはパケット転送部２０４は、通信パケットを転送パケットバッファ部２０５から読み出し、その通信パケットを送信先の装置へ送信する（S1504）。その後ステップS1502に戻る。
以上でUDP通信の場合のパケット転送処理の説明を終了する。
【０１７５】
［３．４．UDP通信時  再送条件例］
ステップS1502において判定に用いられる再送条件の例を示す。
（１）既定時間待って受信確認応答を未受信なら再送する。
（２）上流の装置からn個パケットを受信するまでに受信確認応答を未受信なら再送する。
（３）端点間の通信時間を計測するのと同じ方法で各中継装置２０間の通信時間を統計量として計測しておき、パケット転送後、中継装置２０間通信時間×2+マージン時間以内に受信応答確認を未受信なら再送する。
（４）上記条件が満たされた場合、n回まで再送する。
なお、再送頻度が高い条件の順序は予め与えておく。また、上記の「既定時間」、「n個」、「マージン時間」、「n回」は性能設定値４１２に加えておく。
【０１７６】
[３．５．UDP通信時における本実施の形態の利点]
（１）再送機能を有しているため、パケットロスの多いネットワークでパケット到達率が向上する。
（２）中継位置中継装置２０が存在することによって、TCP通信時と同じく再送のデメリットが緩和される。
（３）中継位置中継装置２０の削除と追加(中継位置中継装置２０の選択方法にランダム性を持たせることも可能)を繰り返していくことで、動的に性能の変化するネットワークに追従して経路を変化させていくことができる。
【０１７７】
[４．まとめ、その他]
以上、本発明の実施の形態を説明したが、本発明はこれらに限定されるものではなく、発明の趣旨を逸脱しない範囲内において、種々の変更、追加、組み合わせ等が可能である。
【符号の説明】
【０１７８】
１・・・通信システム；  １０・・・遠隔制御装置；  ２０・・・中継装置；  ３０・・・データ受信装置；  ４０・・・スイッチ制御装置；  ５０・・・計測サイト；  ６０・・・クラウド
【図１】
2015070583.tif 000003
【図２】
2015070583.tif 000004
【図３】
2015070583.tif 000005
【図４】
2015070583.tif 000006
【図５】
2015070583.tif 000007
【図６】
2015070583.tif 000008
【図７】
2015070583.tif 000009
【図８】
2015070583.tif 000010
【図９】
2015070583.tif 000011
【図１０】
2015070583.tif 000012
【図１１】
2015070583.tif 000013
【図１２】
2015070583.tif 000014
【図１３】
2015070583.tif 000015
【図１４】
2015070583.tif 000016
【図１５】
2015070583.tif 000017
【図１６】
2015070583.tif 000018
【図１７】
2015070583.tif 000019
【図１８】
2015070583.tif 000020
【図１９】
2015070583.tif 000021
【図２０】
2015070583.tif 000022
【図２１】
2015070583.tif 000023
【図２２】
2015070583.tif 000024
【図２３】
2015070583.tif 000025
【図２４】
2015070583.tif 000026
【図２５】
2015070583.tif 000027
【図２６】
2015070583.tif 000028
【図２７】
2015070583.tif 000029
【図２８】
2015070583.tif 000030
【図２９】
2015070583.tif 000031
【図３０】
2015070583.tif 000032
【図３１】
2015070583.tif 000033
【図３２】
2015070583.tif 000034
【図３３】
2015070583.tif 000035
【図３４】
2015070583.tif 000036
【図３５】
2015070583.tif 000037
【図３６】
2015070583.tif 000038
【図３７】
2015070583.tif 000039
【図３８】
2015070583.tif 000040
【図３９】
2015070583.tif 000041
【図４０】
2015070583.tif 000042
【図４１】
2015070583.tif 000043
【図４２】
2015070583.tif 000044