(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-28
(45)【発行日】2023-12-06
(54)【発明の名称】通信回路、ネットワークシステム、通信制御方法および通信制御プログラム
(51)【国際特許分類】
H04L 12/427 20060101AFI20231129BHJP
【FI】
H04L12/427
(21)【出願番号】P 2020034573
(22)【出願日】2020-03-02
【審査請求日】2023-02-15
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100109313
【氏名又は名称】机 昌彦
(74)【代理人】
【識別番号】100149618
【氏名又は名称】北嶋 啓至
(72)【発明者】
【氏名】中平 貴工
【審査官】小林 義晴
(56)【参考文献】
【文献】米国特許出願公開第2007/081461(US,A1)
【文献】国際公開第2006/016698(WO,A1)
【文献】中国特許出願公開第104184665(CN,A)
【文献】八木幸太郎,他4名,サイバーソサイエティを実現するリング型P2P-VPN技術,電子情報通信学会技術研究報告 Vol.105 No.87,日本,社団法人電子情報通信学会,2005年05月19日,第105巻,第87号,pp.61-66
【文献】生出拓馬,他2名,動的負荷分散特性に基づく構造化P2Pネットワークの構築,マルチメディア,分散,協調とモバイル(DICOMO2012)シンポジウム論文集 情報処理学会シンポジウムシリーズ Vol.2012 No.1 [CD-ROM],日本,一般社団法人情報処理学会,2012年07月04日,第2012巻,第1号,pp.1565-1572
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/427
(57)【特許請求の範囲】
【請求項1】
リング型の仮想ネットワークを形成する装置の通信の順番を示す情報を管理データとしてトークンに付加して送受信する送受信手段と、
新たに接続された装置を検出した際に、前記仮想ネットワーク上の他の装置において前記新たに接続された装置の前記仮想ネットワークへの追加処理が行われていない場合に、前記新たに接続された装置を前記仮想ネットワークの構成に追加した前記管理データを生成する管理データ生成手段と、
生成した前記管理データまたは前記仮想ネットワーク上の装置から受信した前記管理データを基に通信を制御する通信制御手段と
を備える通信回路。
【請求項2】
前記管理データ生成手段は、前記新たに接続された装置を検出したときに、受信した前記トークンに前記新たに接続された装置が追加処理中であることを示す情報が付加されていない場合に、前記新たに接続された装置を追加した前記管理データを生成する請求項1に記載の通信回路。
【請求項3】
前記仮想ネットワークを構成する他の装置それぞれとの間の応答時間を計測する応答時間計測手段をさらに備え、
前記通信制御手段は、前記応答時間計測手段が計測した前記応答時間の情報を前記管理データに付加して送信し、
前記管理データ生成手段は、前記トークンに付加された前記仮想ネットワークを構成する装置それぞれが互いに応答時間を計測した結果を基に、前記仮想ネットワーク上の各装置の通信の順番を決定する請求項1または2に記載の通信回路。
【請求項4】
前記通信制御手段が、前記仮想ネットワーク上において前記トークンに付加されている前記管理データが失われたことを検知すると、
前記管理データ生成手段は、保存していた前記管理データを前記トークンに付加して送信する請求項1から3いずれかに記載の通信回路。
【請求項5】
受信した前記トークンに他の装置が保存していた前記管理データが付加されていたとき、前記管理データ生成手段は、保存している前記管理データの情報を基に前記トークンに付加されている前記管理データを更新する請求項1から4いずれかに記載の通信回路。
【請求項6】
前記通信制御手段は、通信機能を有しない他の装置に代わって前記仮想ネットワークにおける通信を行い、
前記管理データ生成手段は、通信機能を有しない他の装置の情報を含む前記管理データを生成して、生成した前記管理データを前記トークンに付加して送信する請求項1から5いずれかに記載の通信回路。
【請求項7】
請求項1から6いずれかに記載の通信回路を有する複数の装置を備え、
前記複数の装置は、リング型の仮想ネットワークを形成し、前記装置それぞれの前記通信回路は、トークンに付加された管理データに基づいて通信を行うネットワークシステム。
【請求項8】
リング型の仮想ネットワークを形成する装置の通信の順番を示す情報を管理データとしてトークンに付加して送受信し、
新たに接続された装置を検出した際に、前記仮想ネットワーク上の他の装置において前記新たに接続された装置の前記仮想ネットワークへの追加処理が行われていない場合に、前記新たに接続された装置を前記仮想ネットワークの構成に追加した前記管理データを生成し、
生成した前記管理データまたは前記仮想ネットワーク上の装置から受信した前記管理データを基に通信を制御する通信制御方法。
【請求項9】
前記新たに接続された装置を検出したときに、受信した前記トークンに前記新たに接続された装置が追加処理中であることを示す情報が付加されていない場合に、前記新たに接続された装置を追加した前記管理データを生成する請求項8に記載の通信制御方法。
【請求項10】
リング型の仮想ネットワークを形成する装置の通信の順番を示す情報を管理データとしてトークンに付加して送受信する処理と、
新たに接続された装置を検出した際に、前記仮想ネットワーク上の他の装置において前記新たに接続された装置の前記仮想ネットワークへの追加処理が行われていない場合に、前記新たに接続された装置を前記仮想ネットワークの構成に追加した前記管理データを生成する処理と、
生成した前記管理データまたは前記仮想ネットワーク上の装置から受信した前記管理データを基に通信を制御する処理と
をコンピュータに実行させる通信制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークを構成する各機器間の通信技術に関するものであり、特に、リング型ネットワークにおける通信技術に関するものである。
【背景技術】
【0002】
カメラやセンサなど様々な機器が多数、ネットワークに接続され、各カメラが撮影した画像データやセンサの計測データがネットワークを介して収集されて利用されるようになっている。一方で、種類が異なる機器が多数、接続されているネットワークにおいて、機器の追加や設定変更を行った際に、ネットワークの設定変更に複雑な作業を要することで、ネットワークの停止時間が長時間化する恐れがある。そのため、機器の追加や設定変更を行った際に、ネットワークの設定変更を容易に行えることが望ましい。ネットワークの設定変更を容易に行う技術としては、例えば、特許文献1のような技術が開示されている。
【0003】
特許文献1のネットワークを構成する通信ノードのうち、スレーブの通信ノードは、自ノードに新たに通信ノードが接続されたとき、自ノードと新たに接続された通信ノードの接続関係を示す情報を管理局の機能を有する通信ノードに送信している。管理局の機能を有する通信ノードは、スレーブの通信ノードから送られてきた情報を基に、リング型の仮想ネットワークにおける巡回順序の情報を更新する。管理局の機能を有する通信ノードは、トークンに更新後の巡回順序の情報を付加してネットワークに送信し、スレーブの通信ノードはトークンに付加された情報に基づいて通信を制御する。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1の技術は次のような点で十分ではない。特許文献1では、管理局としてあらかじめ設定されている通信ノードがリング型のネットワークにおけるトークンの巡回順序の設定を行っている。そのため、管理局として設定されている通信ノードの障害が生じたときに、リング型のネットワークの構成の情報を更新できない恐れがある。
【0006】
本発明は、上記の課題を解決するため、ネットワークへの機器の新たな接続や設定の変更があった際に、ネットワークの構成情報の更新を容易に行うことができる通信回路等を提供することを目的としている。
【課題を解決するための手段】
【0007】
上記の課題を解決するため、本発明の通信回路は、送受信部と、通信制御部と、管理データ生成部を備える。送受信部は、リング型の仮想ネットワークを形成する装置の通信の順番を示す情報を管理データとしてトークンに付加して送受信する。管理データ生成部は、新たに接続された装置を検出した際に、仮想ネットワーク上の他の装置において新たに接続された装置の仮想ネットワークへの追加処理が行われていない場合に、新たに接続された装置を仮想ネットワークの構成に追加した管理データを生成する。通信制御部は、生成した管理データまたは仮想ネットワーク上の装置から受信した管理データを基に通信を制御する。
【0008】
本発明の通信制御方法は、リング型の仮想ネットワークを形成する装置の通信の順番を示す情報を管理データとしてトークンに付加して送受信し、新たに接続された装置を検出した際に、仮想ネットワーク上の他の装置において新たに接続された装置の仮想ネットワークへの追加処理が行われていない場合に、新たに接続された装置を仮想ネットワークの構成に追加した管理データを生成し、生成した管理データまたは仮想ネットワーク上の装置から受信した管理データを基に通信を制御する。
【0009】
本発明の通信制御プログラムは、リング型の仮想ネットワークを形成する装置の通信の順番を示す情報を管理データとしてトークンに付加して送受信する処理と、新たに接続された装置を検出した際に、仮想ネットワーク上の他の装置において新たに接続された装置の仮想ネットワークへの追加処理が行われていない場合に、新たに接続された装置を仮想ネットワークの構成に追加した管理データを生成する処理と、生成した管理データまたは仮想ネットワーク上の装置から受信した管理データを基に通信を制御する処理をコンピュータに実行させる。
【発明の効果】
【0010】
本発明によると、ネットワークへの機器の新たな接続や設定の変更があった際に、ネットワークの構成情報の更新を容易に行うことができる。
【図面の簡単な説明】
【0011】
【
図1A】本発明の第1の実施形態の構成の概要を示す図である。
【
図1B】本発明の第1の実施形態の動作フローの一例を示す図である。
【
図2】本発明の第2の実施形態のネットワークの構成の一例を示す図である。
【
図3】本発明の第2の実施形態の仮想ネットワークの構成の一例を示す図である。
【
図4】本発明の第2の実施形態のサーバが有する通信回路の構成を示す図である。
【
図5】本発明の第2の実施形態のネットワークの構成の一例を示す図である。
【
図6】本発明の第2の実施形態のサーバが有する通信回路の構成を示す図である。
【
図7】本発明の第2の実施形態のネットワークにおけるサーバの追加処理のフローを示す図である。
【
図8】本発明の第2の実施形態においてサーバの追加処理を行う際のサーバの動作フローを示す図である。
【
図9】本発明の第3の実施形態のネットワークの構成の一例を示す図である。
【
図10】本発明の第3の実施形態の仮想ネットワークの構成の一例を示す図である。
【
図11】本発明の第3の実施形態のサーバが有する通信回路の構成を示す図である。
【
図12】本発明の第3の実施形態のサーバの動作フローを示す図である。
【
図13】本発明の第3の実施形態のネットワークの構成の更新の動作の例を模式的に示す図である。
【
図14】本発明の第3の実施形態のサーバの動作フローを示す図である。
【
図15】本発明の第3の実施形態のネットワークの構成の更新の動作の例を模式的に示す図である。
【
図16】本発明の通信回路の他の構成の例を示す図である。
【
図17】本発明のネットワークの他の構成の例を示す図である。
【
図18】本発明のネットワークの他の構成の例を示す図である。
【
図19】本発明のネットワークの他の構成の例を示す図である。
【
図20】本発明のネットワークの他の構成の例を示す図である。
【発明を実施するための形態】
【0012】
(第1の実施形態)
本発明の第1の実施形態について図を参照して詳細に説明する。
図1Aは、本実施の通信回路の構成を示す図である。また、
図1Bは、本実施形態の通信回路の動作フローを示す図である。本実施形態の通信回路は、送受信部1と、管理データ生成部2と、通信制御部3を備えている。送受信部1は、リング型の仮想ネットワークを形成する装置の通信の順番を示す情報を管理データとしてトークンに付加して送受信する。具体的に、管理データとは、リング上での各装置の順番を示すデータのことをいい、管理データを基にトークンの巡回が行われる。管理データ生成部2は、新たに接続された装置を検出した際に、仮想ネットワーク上の他の装置において新たに接続された装置の仮想ネットワークへの追加処理が行われていない場合に、新たに接続された装置を仮想ネットワークの構成に追加した管理データを生成する。管理データは、他の装置が追加処理を行っていない場合に生成されるため、仮想ネットワーク上のいずれか一台の装置が新たに接続された装置を追加した管理データの生成を行う。通信制御部3は、生成した前記管理データまたは仮想ネットワーク上の装置から受信した管理データを基に通信を制御する。具体的には、通信制御部3は、同一の通信回路内の管理データ生成部2において管理データを生成した場合には、管理データ生成部2で生成した管理データを基に通信を制御し、仮想ネットワーク上の他の装置が管理データを生成した場合には、他の装置から受信する管理データを基に通信を制御する。
【0013】
次に、
図1Bを参照して通信回路の動作の一例について説明する。通信回路の送受信部1は、リング型の仮想ネットワークを形成する装置の順番を示す情報を管理データとしてトークンに付加して送受信する(ステップS1)。トークンは、仮想ネットワーク上の各装置間を管理データに基づいた順番で巡回される。新たにネットワークに接続された装置を検出すると、管理データ生成部2は、他の装置において新たに接続された装置の仮想ネットワークへの追加処理が行われていない場合に、検出した装置をリング型の仮想ネットワークの構成に追加した管理データを生成する(ステップS2)。同一の通信回路内の管理データ生成部2において管理データが生成されたとき、通信制御部3は、管理データ生成部2が生成した管理データを基にデータの送受信を行い、通信を制御する。また、同一の通信回路内の管理データ生成部2ではなく他の装置が管理データを生成した場合には、通信制御部3は、他の装置から受信する管理データを基に通信を制御する(ステップS3)。
【0014】
本実施形態の通信回路は、リング型の仮想ネットワークにおいてトークンに付加して管理データを送信することで、ネットワークの構成の情報を各装置間で共有し、データの送受信を行っている。本実施形態の通信回路を有する各装置が仮想ネットワークを形成することで、遅延や障害が発生した装置や通信経路がある場合に、ネットワークの構成を更新することができる。また、各装置の通信回路が管理データを生成することで、特定の装置に障害が生じた場合でも、他の装置が管理データを生成することができるため作業者の作業量を低減することができる。そのため、本実施形態の通信回路を用いることで、ネットワークへの機器の新たな接続や設定の変更があった際に、ネットワークの構成情報の更新を容易に行うことができる。
【0015】
(第2の実施形態)
本発明の第2の実施形態について図を参照して詳細に説明する。
図2は、本実施形態のネットワークシステムの構成の一例を示す図である。本実施形態のネットワークシステムは、ネットワークを介して接続された複数のサーバ10を備えている。
図2は、N台のサーバ10、すなわち、サーバ10-1からサーバ10-Nで構成されているネットワークシステムを示している。各サーバ10の接続関係は、
図2に示した構成に限られない。
【0016】
本実施形態のネットワークシステムは、VPN(Virtual Private Network)を用いたリング型の仮想ネットワークを形成している。
図3は、仮想ネットワーク上における各サーバ10の配置の例を示した図である。
図3では、サーバ10-1からサーバ10-NがVPNによるリング型のネットワークを形成している。
【0017】
サーバ10について
図4を参照して説明する。
図4は、サーバ10の構成を示す図である。サーバ10は、通常の情報処理装置が有する情報処理の機能に加え、内部に通信回路11を備えている。通信回路11は、送受信部12と、通信制御部13と、管理データ生成部14と、データ保存部15をさらに備えている。
【0018】
送受信部12は、ネットワークを介して他のサーバ10の通信回路11とデータの送受信を行う。また、送受信部12は、管理データをトークンに付加してネットワークに送信する。トークンは、リング型の仮想ネットワーク上を巡回数する。
【0019】
通信制御部13は、管理データに基づいて他のサーバ10とのデータの送受信を制御する。通信制御部13は、同一の通信回路11内の管理データ生成部14で管理データを生成した場合には、管理データ生成部14が生成した管理データを基に通信を制御する。また、通信制御部13は、他のサーバ10の通信回路11が管理データを生成した場合には、他のサーバ10から受信する管理データに基づいて通信を制御する。管理データとは、リング型の仮想ネットワークに参加しているサーバ10の仮想ネットワーク上の配置を示す情報である。管理データは、リング型の仮想ネットワークにおいてループを形成する各サーバ10の通信の順番および各サーバのアドレス情報によって構成されている。また、管理データは、各サーバ10の通信の順番や各サーバのアドレス情報以外の情報を含んでいてもよい。
【0020】
通信制御部13は、他の装置からの仮想ネットワークへの参加要求の有無を検知する。通信制御部13は、他の装置からの参加要求を受けると、他のサーバ10が参加要求の送信元の追加処理を行っていないことを確認し、追加処理中でなかった場合に、管理データ生成部14に、参加要求を送ってきた装置を追加した管理データの生成を要求する。通信制御部13は、管理データ生成部14が生成した管理データをデータ保存部15に保存する。また、通信制御部13は、生成した管理データを他のサーバに送受信部12を介して送信する。通信制御部13は、自装置が新たにネットワークに接続されたとき、ネットワークへの参加要求を他の装置に送受信部12を介して送信する。
【0021】
通信制御部13は、仮想ネットワークへの接続が可能であることを示す認証キーの情報を基に、仮想ネットワークへの接続の可否を判断する。また、通信制御部13は、公開鍵暗号化方式によって認証キーの暗号化および復号を行う。認証キーの情報の情報は、例えば、作業者によって通信回路11に入力される。
【0022】
管理データ生成部14は、管理データの生成を行う。管理データ生成部14は、参加要求を受け取ったサーバをループのいずれかの位置に追加し、管理データを生成する。
【0023】
データ保存部15は、管理データを保存している。また、データ保存部15は、認証キー、公開鍵および秘密鍵のデータを保存している。
【0024】
送受信部12、通信制御部13および管理データ生成部14は、半導体装置を用いて構成されている。送受信部12、通信制御部13および管理データ生成部14における各処理は、CPU(Central Processing Unit)がコンピュータプログラムを実行することで行われもよい。データ保存部15は、不揮発性の半導体記憶装置を用いて構成されている。
【0025】
本実施形態のネットワークシステムの動作について説明する。本実施形態のネットワークシステムの各サーバ10は、管理データに示されているリング型の仮想ネットワーク上での通信の順番に従ってトークンを巡回し、トークンを受信した際にデータ送信を行う。
【0026】
本実施形態のネットワークシステムにおいて、リング型の仮想ネットワークに、サーバを新たに追加する際の動作について説明する。以下の説明では、
図5のようにサーバ10-1とサーバ10-2で構成されたネットワークにおいて、サーバ100をサーバ10-1を介して新たにネットワークに接続する場合を例に説明する。サーバ100は、
図6に示すようにサーバ10と同様の通信回路11を備えている。
図6は、サーバ100の構成の例を示す図である。また、
図7は、サーバ100を追加する際の処理の順番を示す図である。
【0027】
新たにネットワークに接続されたサーバ100の通信制御部13は、送受信部12を介して、サーバ10に参加要求を送信する(ステップS11)。参加要求は、リング型の仮想ネットワークへ参加を要求する情報と、参加要求の送信元のサーバ100のアドレスの情報を含んでいる。新たに参加を要求するサーバであるサーバ100は、参加要求をブロードキャストで送信してもよい。
【0028】
参加要求を受け取ったサーバ10-1の通信制御部13は、データ保存部15に参加要求のデータを一時保存する。参加要求のデータを一時保存すると、通信制御部13は、トークンを受信するまで待機する。
【0029】
トークンを受信すると、通信制御部13は、トークンに付加された管理データに参加要求の送信元または他の新たな装置について、仮想ネットワーク上の他のサーバであるサーバ10-2が追加処理を行っている情報が管理データに書き込まれているかを確認する(ステップS12)。他のサーバが追加処理中であるとき、通信制御部13は、追加処理が終わるまで待機する。
【0030】
トークンに付加された管理データに追加処理中の情報等がないとき、通信制御部13は、追加処理中であることの通知を管理データに書き込み、トークンに付加してサーバ10-2に送信する(ステップS13)。
【0031】
追加処理中であることを示す通知を送信すると、通信制御部13は、公開鍵をサーバ100に送信する(ステップS14)。サーバ100の通信制御部13は、公開鍵を受信すると、認証キーを公開鍵を用いて暗号化する(ステップS15)。認証キーは、仮想ネットワークへの接続が許可される装置であるかを確認するための情報として、作業者によってサーバ100に入力される。認証キーを暗号化すると、サーバ100の通信制御部13は、暗号化された認証キーをサーバ10-1に送信する(ステップS16)。
【0032】
暗号化された認証キーを受信すると、サーバ10-1の通信制御部13は、公開鍵に対応する秘密鍵で暗号化された認証キーを複号する。認証キーを復号すると、通信制御部13は、認証キーが正しいものであるかを確認する(ステップS17)。仮想ネットワークへの接続を許可する認証キーの情報は、仮想ネットワーク上の各サーバにあらかじめ入力されている。
【0033】
認証キーが正規のものでないとき、サーバ10-1の通信制御部13は、サーバ100のネットワークへの追加の処理を終了する。認証キーが正しいものであるとき、通信制御部13は、ネットワークの状態と確認と装置情報の要求を送信する(ステップS18)。通信制御部13は、ネットワークの状態は、ネットワークの状態を確認するために、例えば、Pingを送信する。
【0034】
サーバ100の通信制御部13は、装置情報の要求を受け取ると、受けった要求を確認し返送用のデータを生成する(ステップS19)。装置情報の要求を受け取ると、受けった要求を確認し返送用のデータを生成する。返送用のデータは、アドレスおよび装置構成の情報を含む装置情報として生成される。返送用の装置情報を生成すると、サーバ100の通信制御部13は、装置情報をサーバ10-1に送信する(ステップS20)。また、サーバ100の通信制御部13は、Pingを受け取ると、Pingに応答する。
【0035】
装置情報を受け取ると、サーバ10-1の管理データ生成部14は、装置情報に基づき、仮想ネットワーク上でのサーバ100の配置を決定する(ステップS21)。サーバ100を追加したループを生成すると、サーバ10-1の通信制御部13は、決定したループに基づいてVPNコネクションの構築の指示をサーバ100に送信する(ステップS22)。
【0036】
VPNコネクション構築の指示を受け取ると、サーバ100は、サーバ10-2とのVPNコネクションを構築する(ステップS23)。
【0037】
VPNコネクションを構築すると、サーバ100は、完了通知をサーバ10-1に送る(ステップS24)。
【0038】
サーバ100からVPNコネクションの構築の完了通知を受け取ると、サーバ10-1の管理データ生成部14は、仮想ネットワークにサーバ100を追加した新たな構成を基に管理データを生成する(ステップS25)。管理データ生成部14が管理データを生成すると、通信制御部13は、生成した管理データをトークンに付加して送信する(ステップS26)。トークンに付加された管理データは、仮想ネット上の各サーバに送られる。各サーバは、受け取った管理データに基づいてデータの送受信を行う。
【0039】
次に、リング型の仮想ネットワークにサーバを追加する際のサーバ10の動作についてより詳細に説明する。
図8は、ネットワークにサーバを追加する際のサーバ10の動作フローを示す図である。
【0040】
新たに接続されたサーバがネットワークへの参加要求を送信すると、ネットワークに接続されているサーバ10の通信制御部13は、新たにネットワークに接続されたサーバから参加要求を送受信部12を介して受信する(ステップS31)。参加要求を受信すると、通信制御部13は、参加要求が宛先に自装置であるサーバ10-1を含むものであるかを確認する。参加要求が自装置であるサーバ10-1宛でないとき(ステップS32でNo)、通信制御部13は、参加要求を破棄して通常の動作を継続する。参加要求が自装置宛のとき(ステップS32でYes)、通信制御部13は、データ保存部15に参加要求のデータを一時保存する。参加要求のデータを一時保存すると、通信制御部13は、送受信部12がトークンを受信するまで待機する。
【0041】
送受信部12がトークンを受信すると、通信制御部13は、トークンに付加された管理データに他のサーバの追加処理中の情報が管理データに書き込まれているかを確認する。追加処理中の情報が書き込まれているとき(ステップS33でYes)、通信制御部13は、サーバの追加の処理を保留して他の通常の処理を継続する。管理データ中に追加処理中の情報がなく、他のサーバが追加処理中ではないとき(ステップS33でNo)、通信制御部13は、参加要求の送信元のサーバに公開鍵を送受信部12を介して送信する(ステップS34)。
【0042】
公開鍵を受信した参加要求の送信元のサーバは、公開鍵を用いて認証キーを暗号化する。参加要求の送信元のサーバは、暗号化した認証キーをサーバ10に送信する。
【0043】
送受信部12において暗号化された認証キーを受信すると、通信制御部13は、公開鍵に対応する秘密鍵を用いて暗号化された認証キーを復号する。認証キーを復号すると、通信制御部13は、認証キーが認証可能であるかを確認する。認証キーがあらかじめ設定されたものに対応せず、認証可能ではないとき(ステップS36でNo)、通信制御部13は、サーバの追加の処理を終了して通常の動作を継続する。
【0044】
認証可能であるとき(ステップS36でYes)、通信制御部13は、ネットワークの状態と、追加するサーバの装置情報を確認する(ステップS37)。通信制御部13は、各サーバにPingを送受信部12を介して送信し、ホップ数や応答時間を計測し正常に通信できるかを確認する。また、通信制御部13は、参加要求の送信元のサーバに装置情報を要求し、参加要求の送信元のサーバから装置情報を取得する。
【0045】
ネットワークの情報と装置情報を取得すると、通信制御部13は、追加するサーバの仮想ネットワーク上の配置を決定する(ステップS38)。通信制御部13は、例えば、ホップ数が平均化されるように参加要求の送信元の装置を仮想ネットワークに追加する。通信制御部13は、pingの応答時間を基に、参加要求の送信元の装置のループ上の位置を決定してもよい。
【0046】
追加するサーバの仮想ネットワーク上の位置を決定すると、通信制御部13は、VPNの構築の指示を参加要求の送信元のサーバに送る(ステップS39)。参加要求の送信元のサーバは、仮想ネットワーク上の各サーバとVPNの構築を構築する。参加要求の荘子元のサーバは、各サーバをVPNを構築すると完了したことを示す通知をサーバ10に送る。
【0047】
サーバからVPNの構築の完了の通知を受け取ると、通信制御部13は、リング型の仮想ネットワークのループの構成に参加要求の送信元のサーバが追加された管理データをトークンに付加し送受信部12を介して送信する(ステップS40)。参加要求の送信元のサーバが追加されたループの構成の情報を受け取った仮想ネットワーク上の各サーバは、受け取った情報を基にトークンを巡回させてデータの送受信を行う。
【0048】
本実施形態のネットワークシステムは、ネットワークに新たなサーバが接続された際に、既にネットワークに接続されているサーバ10のいずれかが、新たに接続されたサーバを追加した仮想ネットワーク構成を決定している。また、いずれかのサーバ10が生成した仮想ネットワークのリング構成を管理データとして各サーバ間で共有することでデータの送受信を行っている。本実施形態のネットワークシステムは、仮想ネットワークを用いることでネットワークの構成を柔軟に構成でき、また、各サーバがネットワークの構成を決定できるので、異常がある装置がある場合にも、新たにサーバが追加された際にネットワーク構成の変更を行うことができる。その結果、本実施形態のネットワークシステムは、ネットワークへの機器の新たな接続や設定の変更があった際に、ネットワークの構成情報の更新を容易に行うことができる。
【0049】
(第3の実施形態)
本発明の第3の実施形態について図を参照して詳細に説明する。
図9は、本実施形態のネットワークシステムの構成の一例を示す図である。本実施形態のネットワークシステムは、ネットワークを介して接続された複数のサーバ20を備えている。
図9は、N台のサーバ20、すなわち、サーバ20-1からサーバ20-Nで構成されているネットワークシステムを示している。各サーバ20の接続関係は、
図9に示した構成に限られない。
【0050】
本実施形態のネットワークシステムは、第2の実施形態と同様にVPNを用いたリング型の仮想ネットワークを形成している。
図10は、仮想ネットワーク上における各サーバ20の配置の例を示した図である。
図10では、サーバ20-1からサーバ20-NがVPNによるリング型の仮想ネットワークを形成している。
【0051】
第2の実施形態では、新たにサーバが接続された際に、新たなサーバを仮想ネットワークの構成に追加した管理データを生成していた。本実施形態のネットワークシステムは、そのような構成に加え、ネットワークの遅延や通信の異常が生じた際に、仮想ネットワークの構成を更新することを特徴とする。
【0052】
サーバ20について
図11を参照して説明する。
図11は、サーバ20の構成を示す図である。サーバ20は、通常の情報処理装置の機能に加え内部に通信回路21を備えている。通信回路21は、送受信部22と、通信制御部23と、監視部24と、管理データ生成部25と、データ保存部26と、応答時間計測部27をさらに備えている。
【0053】
本実施形態の送受信部22、管理データ生成部25およびデータ保存部26の構成と機能は、第2の実施形態の同名称の部位と同様である。
【0054】
通信制御部23は、第2の実施形態の通信制御部13と同様の機能を有する。また、通信制御部23は、ネットワークの遅延や通信の異常が生じた際に、仮想ネットワークの構成の更新を制御する。
【0055】
監視部24は、送受信部22が受信するトークンの周期を基にネットワークの遅延の有無を監視する。
【0056】
応答時間計測部27は、仮想ネットワークを形成している他のサーバと通信を行う際の応答時間を計測する。
【0057】
本実施形態のネットワークシステムの動作について説明する。本実施形態のネットワークシステムの通常時の動作と、新たに接続されたサーバを追加する際の動作は、第2の実施形態と同様である。そのため、以下ではネットワークの遅延や通信障害が発生した際に仮想ネットワークの構成を更新する際の動作について説明する。
【0058】
ネットワークの遅延が生じている際に、仮想ネットワークのリング上の各装置の配置を変更し仮想ネットワークの構成の更新を行う際の動作について
図12を参照して説明する。
図12は、ネットワークに遅延が生じた際にネットワークの構成の更新を行う際のサーバ20の動作フローを示す図である。
【0059】
監視部24は、送受信部22がトークンを受信する周期を監視する(ステップS51)。監視部24は、例えば、あらかじめ設定された時間におけるトークンの周期の平均値を計測する。監視部24は、あらかじめ設定された周回数におけるトークンの周期の平均値を計測してもよい。
【0060】
トークンを受信する周期が基準時間未満であるとき(ステップS52でYes)、監視部24は、トークンを受信する周期の監視を継続する。トークンが自装置に回ってくるまでに基準以上の時間を要しているとき(ステップS52でNo)、監視部24は、ネットワークに遅延が生じていると判断する。ネットワークに遅延が生じていると判断すると、監視部24は、遅延が生じていることを示す情報を通信制御部23に送る。
【0061】
遅延が生じていることを示す情報を受け取ると、通信制御部23は、トークンに付加されている管理データを参照し、他のサーバがネット構成の変更の処理を行っていないかを確認する。他のサーバが既に変更処理中であるとき(ステップS53でYes)、通信制御部23は、自装置での仮想ネットワークの構成の更新処理を終了する。
【0062】
他のサーバが仮想ネットワークの構成の更新処理をおこなっていないとき(ステップS53でNo)、通信制御部23は、仮想ネットワークの構成の更新処理を管理データ生成部25に要求する。仮想ネットワークの構成の更新処理を開始すると、通信制御部23は、仮想ネットワークの構成の更新処理を開始すると、通信制御部23は、構成の更新処理を行っていることを示す情報を管理データに書き込みトークンに付加して他のサーバに送る。
【0063】
追加処理中であることを示す情報を送ると、通信制御部23は、応答時間計測部27に、ネットワーク上の各サーバの応答時間の計測を要求する。応答時間の計測の要求を受けると、応答時間計測部27は、各サーバの応答時間を計測する(ステップS54)。
【0064】
応答時間の計測を開始すると、応答時間計測部27は、ネットワーク上にある全ての装置に対してPingを送受信部22を介して送信する。応答時間計測部27は、Pingとして、例えば、ICMP(Internet Control Message Protocol)を送信する。応答時間計測部27は、Pingの送信後、Pingが相手装置に到達したのち、自装置に応答が戻っててき送受信部22が受信するまでの時間の長さを応答時間として計測する。
【0065】
ネットワーク上の全てのサーバに対してPingを送信して応答時間を計測すると、応答時間計測部27は、各サーバの応答時間のデータを通信制御部23に送る。各サーバの応答時間のデータを受け取ると、通信制御部23は、各サーバの応答時間を管理データに書き込む。全てのサーバの応答時間を管理データに書き込むと、通信制御部23は、管理データをトークンに付加して送受信部22を介して送信する(ステップS55)。
【0066】
管理データは、仮想ネットワーク上の各サーバにおいてそれぞれ応答時間のデータが書き込まれ、最初に応答時間のデータを書き込んだサーバが、管理データを受信する(ステップS56)。各サーバがそれぞれ全ての他のサーバの応答時間を計測するため、管理データには同一の経路について応答時間の計測値が2回分、含まれている。
【0067】
最初に応答時間の計測を行ったサーバの通信制御部23は、全ての装置の計測結果が記録された管理データを受け取ると、同一経路と2回分のデータを比較する。同一経路の2回分の応答時間の差があらかじめ設定されている基準よりも大きいとき(ステップS57でNo)、通信制御部23は、再度、応答時間の計測する要求を応答時間計測部27に送りステップS54の動作を実行させる。
【0068】
同一経路の2回分の応答時間の差があらかじめ設定されている基準以下であるとき(ステップS57でYes)、計測した応答時間を基に、管理データ生成部25は、仮想ネットワークの組み替えを行って、仮想ネットワークの構成を更新する(ステップS58)。管理データ生成部25は、同一経路の応答時間の平均値を算出して、平均値を各経路の応答時間とみなし、トークンが各装置間を回る時間が平準化するように仮想ネットワークのリング上における各装置の順番を決定する。管理データ生成部25は、決定した各装置の順番に基づいて仮想ネットワークの構成を決定し管理データを更新する。管理データが更新されると、通信制御部23は、更新された管理データをデータ保存部26に保存する。また、通信制御部23は、更新した管理データをトークンに付加して他のサーバに送信する(ステップS59)。
【0069】
各装置の通信制御部23は、更新された管理データを受け取ると、受け取った管理データを用いて自装置が保存している管理データを更新する。管理データを更新すると、各装置の通信制御部23は、更新後の管理データを用いて通信を制御する。
【0070】
図13は、ネットワークの遅延が生じた際に構成の更新を行う際の動作を模式的に示した図である。
図13は、サーバA、サーバB、サーバC、サーバDの順に4台でリング型の仮想ネットワークを形成している例を示している。
図13において、サーバ間の実線の矢印は、トークンの経路を示している。また、
図13の破線の矢印は、他のサーバに対しての接続確認を示している。また、
図13における文章マークは、管理データを示しており、以下の図においても同様である。
【0071】
図13の例では、サーバDがネットワークの遅延を検知し、サーバA、サーバB、サーバCの順に各サーバとの応答時間を計測しながら管理データを巡回している。ネットワークの遅延を検知したサーバDに管理データが戻ると、ネットワークの構成の更新が行われる。
図13では、サーバA、サーバC、サーバD、サーバBの順で通信を行うネットワークの構成の更新が行われている。
【0072】
次に、トークンに付加した管理データがネットワーク上で失われ、回ってこない場合に仮想ネットワークの構成の更新を行う場合の動作について
図14を参照して説明する。
図14は、管理データがネットワーク上で失われ、回ってこない場合に、仮想ネットワークの構成の更新を行う際のサーバ20の動作フローを示す図である。
【0073】
監視部24は、送受信部22におけるトークンの送受信の有無を監視する(ステップS61)。トークンをあらかじめ設定された基準時間内で受信しているとき(ステップS62でYes)、監視部24は、送受信部22におけるトークンの送受信の有無の監視を継続する。
【0074】
トークンをあらかじめ設定された基準時間以上受信できないとき(ステップS62でNo)、監視部24は、基準時間内にトークンを受信できずにタイムアウトが発生したことを示す情報を通信制御部23に送る。
【0075】
リング型の仮想ネットワーク上をトークンがループする場合、ロストが発生した装置の次に管理データを受け取るはずだった装置の待ち時間が長くなり、次に管理データを受け取るはずだったサーバ20の監視部24がタイムアウトを検出する。
【0076】
タイムアウトを検出すると、監視部24は、タイムアウトが発生したことを示す情報を通信制御部23に送る。タイムアウトの発生の情報を受け取ると、通信制御部23は、リカバリーモードを開始する(ステップS63)。リカバリーモードを開始すると、通信制御部23は、データ保存部26に保存されている管理データを読み出す。
【0077】
管理データを読み出すと、通信制御部23は、トークンに付加した管理データを送受信部22を介して送信する。
【0078】
トークンを受信した各サーバは、自装置、すなわち、トークンを受信したサーバの通信回路21が保持している管理データで受け取った管理データを更新して次のサーバに送る。次の装置からの応答を受信できていない装置は、応答を受信できていないサーバをとばして、その次の装置に管理データを送信する。
【0079】
タイムアウトを検出したサーバ20が管理データを受信すると(ステップS65)、管理データ生成部25は、応答していない装置を切り離して新たなループを設定する(ステップS66)。管理データ生成部25は、組み換えを行った仮想ネットワークの構成を基に管理データを更新する。
【0080】
管理データ生成部25が管理データを更新すると、通信制御部23は、更新した管理データをデータ保存部26に保存する。また、通信制御部23は、更新した管理データをトークンに付加してネットワークに送信する(ステップS67)。
【0081】
各サーバの通信制御部23は、更新された管理データを受け取ると、受け取った管理データを用いて自装置が保存している管理データを更新する。管理データを更新すると、各装置の通信制御部23は、更新後の管理データを用いて通信を制御する。
【0082】
また、ロストしたと判断した管理データが回ってきたとき、通信制御部23は、回ってきた管理データを一時保存し、管理データが戻ってきたときに、一時保存していた管理データで自装置の管理データを更新する。自装置の管理データを更新すると、通信制御部23は、一時保存していた管理データを次の装置に送信する。
【0083】
図15は、ネットワークでの通信異常が生じた際に構成の更新を行う際の動作を模式的に示した図である。
図15は、サーバA、サーバB、サーバC、サーバDの順に4台でリング型の仮想ネットワークを形成している例を示している。
図15の例では、サーバDが管理データを受信しないことでネットワークの異常を検知し、サーバA、サーバBの順に各サーバとの接続を確認しながら管理データを巡回している。
図15の例では、サーバBがサーバCとの通信を行えずに、その次のサーバDに管理データを送信している。サーバDに管理データが戻ると、サーバDは、サーバCを削除してネットワークの構成の更新を行っている。
図15では、ネットワーク構成の更新後に、サーバA、サーバB、サーバD、の順で通信が行われている。
【0084】
本実施形態のネットワークシステムは、ネットワークに接続されているサーバ20のいずれかがネットワークの遅延または通信異常の発生を検知したときに、仮想ネットワークの構成の更新を行っている。本実施形態のネットワークシステムは、仮想ネットワークを用いることでネットワークの構成を柔軟に構成でき、また、各サーバがネットワークの構成を決定できるので、異常がある装置がある場合にも、ネットワーク構成の変更を行うことができる。その結果、本実施形態のネットワークシステムは、ネットワークの遅延や通信の異常が生じて構成の変更が必要な際に容易に変更を行うことができる。
【0085】
第2および第3の実施形態における通信回路は、
図16のような構成としてもよい。
図16は、通信回路として用いる通信回路30の構成を示した図である。
図16の通信回路30は、制御回路31と、メモリ32を備えている。制御回路31には、例えば、FPGA(Field Programmable Gate Array)を用いることができる。また、メモリ32には、不揮発性の半導体記憶装置が用いられる。制御回路31にFPGAを用いる場合、メモリ32には、各FPGAの回路パターンを構成するデータが記憶される。FPGAは、メモリ32から読み出したデータを基に回路を構成することで各処理を実行する。また、制御回路31は、CPUがメモリ32上のプログラムを実行することで通信回路が実行する各処理を行う構成であってもよい。
【0086】
第2の実施形態および第3の実施形態では、複数のサーバによって構成されたネットワークについて説明したが、ネットワークに接続される機器は、通信回路11または通信回路21と同様の通信機能を有する機器であればサーバ以外であってもよい。例えば、通信機能を有するカメラをネットワークに接続してもよい。
【0087】
図17は、サーバ、カメラ、映像機器および通信機器によって構成されるネットワークの例を示している。
図17の(A)、(B)、(K)および(M)は、サーバを示している。また、
図17の(C)、(F)、(N)、(I)および(H)は、通信機器を示している。また、
図17の(D)、(G)、(J)、(O)および(Q)は、ネットワークカメラを示している。また、
図15の(E)、(L)および(P)は、映像機器を示している。
図18は、
図17の各機器が構成するリング型の仮想ネットワークの例を示している。
図18のようにリング型の仮想ネットワークを構成することで、第2および第3の実施形態と同様に各機器が管理データを生成し、トークンに付加して共有することで各機器は、共通の管理データを基にして通信を行うことができる。
【0088】
第2および第3の実施形態では、ネットワークの構成を示すデータを管理データとしてトークンに付加して送信しているが、管理データには他のデータが付加されていてもよい。例えば、
図19のようにサーバとカメラが他の機器を介して接続されている場合に、撮影の要求やデータの要求が管理データに書き込まれてサーバからカメラに送られてもよい。また、そのような場合に、要求に応じたデータが管理データに付加されてカメラからサーバに送信されてもよい。また、サーバからカメラにファームウェアのデータや設定データが管理データに付加されて送信されてもよい。また、そのような構成とする場合に、カメラ間でファームウェアやデータの送信が行われてもよい。また、異常が生じた機器がある場合に、正常に動作する同種類の機器から異常が生じた機器にファームウェアや設定データの送信が行われてもよい。
【0089】
第2および第3の実施形態、並びに、
図17および
図18の例では、全体で1つのリングを形成しているが、
図20のように複数のリングが互いに接続されていもよい。
図20の例では、3つのリング型のネットワークが形成され、それぞれのリング型ネットワークがさらに接続されている。
図20のような構成とすることで、トークンが1周するのに要する時間を短くすることができるのでデータ通信の速度の低下を抑制することができる。
【符号の説明】
【0090】
1 送受信部
2 管理データ生成部
3 通信制御部
10 サーバ
11 通信回路
12 送受信部
13 通信制御部
14 管理データ生成部
15 データ保存部
20 サーバ
21 通信回路
22 送受信部
23 通信制御部
24 監視部
25 管理データ生成部
26 データ保存部
27 応答時間計測部