(57)【特許請求の範囲】
【請求項１】
それぞれが通信機能を持つ複数の仮想通信ノードを有する通信ノード装置であって、
前記複数の仮想通信ノードによる通信品質を監視する第１機能部と、
前記複数の仮想通信ノードの資源を登録し管理する第２機能部と、
前記複数の仮想通信ノードの各々の資源であるハードウェアロジックを追加若しくは削除する処理、新たな仮想通信ノードを構築する処理、及び、前記複数の仮想通信ノードのいずれかを解消する処理を実行する第３機能部と、
前記第１機能部によって観測された通信品質の情報に基づき、前記第２機能部に登録された空き資源を用いて、前記第３機能部に、前記複数の仮想通信ノードのいずれかのハードウェアロジックを追加若しくは削除する処理、新たな仮想通信ノードを構築する処理、及び、前記複数の仮想通信ノードのいずれかを解消する処理のいずれか一つ以上を実行させる第４機能部と
を有することを特徴とする通信ノード装置。
【請求項２】
前記通信ノード装置は、１又は複数台の物理ルータであり、
前記複数の仮想通信ノードは、複数の仮想ルータである
ことを特徴とする請求項１に記載の通信ノード装置。
【請求項３】
前記第１機能部が、仮想通信ノードのレイヤ３処理がボトルネックとなって通信品質の劣化を招いていると判断したときには、
前記第４機能部は、前記第３機能部に、
前記レイヤ３処理を行うためのＣＰＵタイムを増加させる対策、
前記レイヤ３処理を行うＣＰＵを増加させる対策、
前記レイヤ３処理に用いるメモリやバス占有時間を増加させる対策、
前記レイヤ３処理を行うハードウェアロジックを追加することによって、複数のハードウェアロジックで並列処理を行う対策、及び
前記レイヤ３処理を行うハードウェアロジックを追加し、パイプライン処理可能な構成を構築して対応する対策
のいずれか１つ以上の対策を実行させる
ことを特徴とする請求項１又は２に記載の通信ノード装置。
【請求項４】
前記第１機能部が、仮想通信ノードのパケットの経路表検索又はパケット転送処理がボトルネックとなって通信品質の劣化を招いていると判断したときには、
前記第４機能部は、前記第３機能部に、
前記経路検索処理又は前記パケット転送処理を行うためのＣＰＵタイムを増加させる対策、
前記経路検索処理又は前記パケット転送処理を行うＣＰＵを増加させる対策、
前記経路検索処理又は前記パケット転送処理に用いるメモリやバス占有時間を増加させる対策、
前記経路検索処理又は前記パケット転送処理を行うハードウェアロジックを追加することによって、複数のハードウェアロジックで並列処理を行う対策、及び
前記経路検索処理又は前記パケット転送処理を行うハードウェアロジックを追加し、パイプライン処理可能な構成として対応する対策
のいずれか１つ以上の対策を実行させる
ことを特徴とする請求項１又は２に記載の通信ノード装置。
【請求項５】
前記第１機能部が、仮想通信ノードにおける処理がボトルネックとなって通信品質の劣化を招いていると判断したときには、
前記第４機能部は、前記第３機能部に、
処理を行うためのＣＰＵタイムを増加させる処理を行う対策、
処理を行うＣＰＵを増加させる対策、
処理に用いるメモリやバス占有時間を増加させる対策、
処理を行うハードウェアロジックを追加することによって、複数のハードウェアロジックで並列処理を行う対策、及び
処理を行うハードウェアロジックを追加し、パイプライン処理可能な構成として対応する対策
のいずれか１つ以上の対策を実行させる
ことを特徴とする請求項１又は２に記載の通信ノード装置。
【請求項６】
前記第１機能部が、仮想通信ノードにおける処理が、パケットの到着間隔の狭まりに基づくものである場合、又は、特異な到着率特性に基づくものである場合には、
前記第４機能部は、前記第３機能部に、
キューイングメモリ量を増加させるように、仮想通信ノードに資源の割り当てを行うことで対応する対策を実行させる
ことを特徴とする請求項１又は２に記載の通信ノード装置。
【請求項７】
前記第３機能部は、
仮想ノードヘの資源割当を行う際、仮想ノード毎に、最低保障資源量、優先利用資源量、及び最大利用可能資源量を設定し、
第１機能部が監視する通信量がゼロのとき、各仮想通信ノードの割当資源量Ｒ（Ｖ）を、Ｒ（Ｖ）＝Ｒｍｉｎ（Ｖ）とし、
Ｒ（Ｖ）＝Ｒｍｉｎ（Ｖ）では、通信品質が担保できなくなる可能性があるときには、Ｒ（Ｖ）≦Ｒｐｒｅ（Ｖ）の範囲で資源を増加させ、
Ｒ（Ｖ）≦Ｒｐｒｅ（Ｖ）の範囲で資源が足りない場合には、他の仮想通信ノードがもし優先利用資源を使いきっていなければ、Ｒ（Ｖ）≦Ｒｍａｘ（Ｖ）の範囲で利用資源を増加させる
ことを特徴とする請求項１から６までのいずれか１項に記載の通信ノード装置。
【請求項８】
仮想ノード毎に設定される前記最低保障資源量、前記優先利用資源量、及び前記最大利用可能資源量を、資源の種類毎に設定し、資源の利用量を通信品質のボトルネックの要因に応じて変化させることを特徴とする請求項７に記載の通信ノード装置。
【請求項９】
前記資源の種類は、ＣＰＵタイム、ＣＰＵ個数、メモリ量、バス占有時間、及びハードウェアロジックのうちの１つ以上を含むことを特徴とする請求項８に記載の通信ノード装置。
【請求項１０】
前記複数の対応の内で、同一の性能を得られる複数の対応の候補がある場合、前記第４機能部は、前記第３機能部に、前記複数の対応の候補の中で、対応後の残り資源量を最大とする対応、又は、消費電力が最小となる対応を実行させることを特徴とする請求項３から６までのいずれか１項に記載の通信ノード装置。
【請求項１１】
前記第４機能部は、前記第３機能部が実行する対応の選択に際し、上記対応に加え、通信経路の最適化、各ノードで行う処理内容の分担量の変更、外部記憶装置、外部処理装置、外部の通信機能を持つ、センサ及びデジタルサイネージの少なくとも一方を含むデバイスで行う処理を含めた対応を実行させることを特徴とする請求項３から６までのいずれか１項に記載の通信ノード装置。
【請求項１２】
前記第４機能部は、前記第３機能部が実行する対応の選択に際し、上記対応に加え、通信経路の最適化、各ノードで行う処理内容の分担量の変更、外部記憶装置又は外部処理装置で行う処理を含めた対応を実行させることを特徴とする請求項３から６までのいずれか１項に記載の通信ノード装置。
【請求項１３】
前記第４機能部は、前記第３機能部が実行する対応の選択に際し、局所探索法、焼きなまし法、遺伝的アルゴリズム法、及びタブーサーチ法の内の１つ以上を用いて最適な対応を選択することを特徴とする請求項３から６までのいずれか１項に記載の通信ノード装置。
【請求項１４】
前記第４機能部は、前記第３機能部が実行する対応の選択に際し、一度得た状況とその際の対応を記憶し、次回、似た状況ではその対応を前記第３機能部に実行させる、又は、その対応を初期解として計算してより良い解を探して使用することを特徴とする請求項３から６までのいずれか１項に記載の通信ノード装置。
【請求項１５】
前記第４機能部は、前記第３機能部が実行する対応の選択に際し、資源量を変化させて、解を探す処理を実行することを特徴とする請求項３から６までのいずれか１項に記載の通信ノード装置。
【請求項１６】
前記第４機能部は、前記第３機能部が実行する対応の選択に際し、空き資源で仮想ノードを作らせ、初期解を計算結果として、資源量を変化させて、解を探す処理を実行することを特徴とする請求項３から６までのいずれか１項に記載の通信ノード装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想的に複数の通信ノードが存在するかのように動作する通信ノード装置に関するものである。
【背景技術】
【０００２】
仮想化技術を用いて複数の通信ノードが存在するかのように動作する（すなわち、複数の仮想通信ノードを構築する）ことができる通信ノード装置が、種々提案されている。
【０００３】
特許文献１（特開２００４−３４３１９１号公報）は、ブロードバンドアクセスルータ（通信ノード装置）の中に複数台の仮想ルータ（仮想通信ノード）が存在し、仮想ルータ毎に異なるインターネットサービスプロバイダ（ＩＳＰ）に接続することができるシステムを提案している。このシステムは、仮想ルータ毎に通信セッション数を計測し、新たな接続要求があった場合に、最も負荷が小さい仮想ルータを用いてＩＳＰに接続することで、通信品質の向上を図っている。
【０００４】
特許文献２（特開２００９−２６５８９４号公報）は、複数の仮想マシン（仮想通信ノード）を有する通信ノード装置において、障害発生時に通信フローを切断することなくサービスを再起動する技術を提案している。この通信ノード装置は、再起動前から使用されている旧仮想マシンと再起動後に使用される新仮想マシンを有し、再起動が行われたときには、旧仮想マシンと新仮想マシンとの間で通信フローを割り振り、通信トラヒックの処理を新仮想マシンに移行して、障害からの回復を図っている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−３４３１９１号公報（例えば、図１及び要約）
【特許文献２】特開２００９−２６５８９４号公報（例えば、図１、要約、段落００２２、段落００９２）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１が提案するシステムでは、仮想通信ノードの性能が固定されているので、その性能を超える通信セッションに対しては、仮想通信ノードは、通信品質の劣化を伴う対応、又は、通信セッションの拒否という対応をとらざるを得ず、良好な通信品質を維持できない場合があるという問題がある。
【０００７】
また、特許文献２が提案する通信ノード装置では、再起動の原因となる障害が、負荷増大に対する性能不足であった場合には、新たな仮想マシンを構築して、そこに通信セッションを移動しても、再び不具合が発生するだけであり、再起動の原因は本質的に解決されず、良好な通信品質を維持できない場合があるという問題がある。
【０００８】
そこで、本発明は、上記従来技術の課題を解決するためになされたものであり、その目的は、複数の仮想通信ノードの構成を動的に最適化することによって、良好な通信品質を維持することができる通信ノード装置を提供することにある。
【課題を解決するための手段】
【０００９】
本発明に係る通信ノード装置は、それぞれが通信機能を持つ複数の仮想通信ノードを有する通信ノード装置であって、前記複数の仮想通信ノードによる通信品質を監視する第１機能部と、前記複数の仮想通信ノードの資源を登録し管理する第２機能部と、前記複数の仮想通信ノードの各々の資源であるハードウェアロジックを追加若しくは削除する処理、新たな仮想通信ノードを構築する処理、及び、前記複数の仮想通信ノードのいずれかを解消する処理を実行する第３機能部と、前記第１機能部によって観測された通信品質の情報に基づき、前記第２機能部に登録された空き資源を用いて、前記第３機能部に、前記複数の仮想通信ノードのいずれかのハードウェアロジックを追加若しくは削除する処理、新たな仮想通信ノードを構築する処理、及び、前記複数の仮想通信ノードのいずれかを解消する処理のいずれか一つ以上を実行させる第４機能部とを有することを特徴としている。
【発明の効果】
【００１０】
本発明に係る通信ノード装置によれば、複数の仮想通信ノードの構成を、負荷に応じて動的に最適化することによって、通信ノード装置の実効的な性能を向上させ、その結果、良好な通信品質を維持することができるという効果がある。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態に係る通信ノード装置としての物理ルータの構成を概略的に示すブロック図である。
【図２】図１に示される制御ブロックの構成を概略的に示すブロック図である。
【図３】第１の実施形態に係る物理ルータを複数台用いて構築されるネットワークの説明図である。
【図４】第２の実施形態に係る通信ノード装置としての物理ルータにおける制御部（資源割当機能部）の構成を概略的に示すブロック図である。
【図５】図４に示される資源割当機能部が保有する資源割当テーブルの一例を示す図である。
【発明を実施するための形態】
【００１２】
《１》第１の実施形態
《１−１》第１の実施形態の構成
［物理ルータの説明］
図１は、第１の実施形態に係る通信ノード装置としての物理ルータの構成を概略的に示すブロック図である。また、図２は、図１に示される制御ブロック４００の構成を概略的に示すブロック図である。
【００１３】
通信ノード装置は、ルータ及びスイッチを主要な構成としている。図１には、通信ノード装置が、物理ルータである場合を示す。図１には、１台の物理ルータの内部に、仮想通信ノードとしての仮想ルータが３台構築され（すなわち、仮想ルータ（１）２１０、仮想ルータ（２）２２０、及び仮想ルータ（３）２３０）、運用されている様子を示している。
【００１４】
図１に示されるように、通信ノード装置としての物理ルータは、主要な構成として、入力ブロック１００と、仮想ルータブロック２００と、出力ブロック３００と、制御ブロック４００とを有している。ブロック１００，２００，３００，４００は、物理ルータが有する機能をブロックとして示したものである。
【００１５】
［入力ブロック１００の説明］
入力ブロック１００は、入力物理インタフェース（「物理ＩＦｘ−ＩＮ」とも記す。）１１０，１２０，１３０，１４０と、第１スイッチ１１１，１２１，１３１，１４１とを有している。ここで、「ｘ」は、１以上、入力物理インタフェースの個数以下の整数である。図１の例では、入力ブロック１００は、４個の入力物理インタフェース、すなわち、物理ＩＦ１−ＩＮ（１１０）、物理ＩＦ２−ＩＮ（１２０）、物理ＩＦ３−ＩＮ（１３０）、及び物理ＩＦ４−ＩＮ（１４０）と、４個の第１スイッチ１１１，１２１，１３１，１４１とを有している。ただし、入力物理インタフェースの個数、及び、第１スイッチの個数は、複数個であればよく、４個に限定されない。
【００１６】
［仮想ルータブロック２００の説明］
仮想ルータブロック２００は、仮想ルータ（１）２１０と、仮想ルータ（２）２２０と、仮想ルータ（３）２３０とを有している。入力ブロック１００の第１スイッチ１１１，１２１，１３１，１４１は、入力物理インタフェース１１０，１２０，１３０，１４０から入力したパケットを仮想ルータ（１）２１０、仮想ルータ（２）２２０、又は仮想ルータ（３）２３０のいずれに入力すべきか判定して、判定結果に従って、各パケットを仮想ルータ（１）２１０、仮想ルータ（２）２２０、又は仮想ルータ（３）２３０のいずれかに出力する。図１の例では、仮想ルータブロック２００は、３個の仮想ルータを有しているが、仮想ルータブロック２００に含まれる仮想ルータの個数は、３個に限定されない。
【００１７】
［出力ブロック３００の説明］
出力ブロック３００は、第４スイッチ（読出しスイッチ）３１１，３２１，３３１，３４１と、出力物理インタフェース（「物理ＩＦｘ−ＯＵＴ」とも記す。）３１０，３２０，３３０，３４０とを有している。ここで、「ｘ」は、１以上、出力物理インタフェースの個数以下の整数である。図１４の例では、出力ブロック３００は、４個の第４スイッチ３１１，３２１，３３１，３４１と、４個の出力物理インタフェース、すなわち、物理ＩＦ１−ＯＵＴ（３１０）、物理ＩＦ２−ＯＵＴ（３２０）、物理ＩＦ３−ＯＵＴ（３３０）、及び物理ＩＦ４−ＯＵＴ（３４０）とを有している。ただし、第４スイッチの個数は、及び、出力物理インタフェースの個数は、複数個であればよく、４個に限定されない。
【００１８】
［仮想ルータ（１）２１０の説明］
仮想ルータブロック２００の仮想ルータ（１）２１０は、入力物理インタフェース１１０，１２０，１３０，１４０の個数に対応する個数の入力バッファ２１１と、第２スイッチ（読出スイッチ）２１２と、ルータコア２１３と、第３スイッチ２１７と、出力物理インタフェース３１０，３２０，３３０，３４０の個数に対応する個数の出力バッファ２１８とを有している。第２スイッチ（読出スイッチ）２１２は、利用可能帯域又は優先度に応じて複数の入力バッファ２１１のいずれかからデータを読み出す。
【００１９】
ルータコア２１３は、経路表・経路表探索機能部２１４を有している。経路表・経路表探索機能部２１４は、入力されたパケットの経路を示す経路表を内蔵し、経路表から経路を探索し、この探索結果に基づいて出力物理インタフェース３１０，３２０，３３０，３４０のいずれからパケットを出力すべきかを判断し、この判断結果に基づく動作指示を第３スイッチ２１７に出力する。また、ルータコア２１３は、各種のレイヤ３プロトコル処理を行うレイヤ３プロトコル処理機能部２１５と、通信量及び通信品質を監視し、監視結果を制御ブロック４００に転送する通信量・品質監視機能部２１６とを有している。
【００２０】
第３スイッチ２１７は、ルータコア２１３で処理されたパケットを適切な出力バッファ（複数個の出力バッファ２１８のいずれか）に転送する。
【００２１】
出力バッファ２１８は、第４スイッチ（読出スイッチ）３１１，３２１，３３１，３４１のいずれかによってパケットが読み出されるまで、パケットを保持する。
【００２２】
［仮想ルータ（２）２２０の説明］
仮想ルータブロック２００の仮想ルータ（２）２２０は、仮想ルータ（１）２１０と同様の構成を有しており、同様の動作をする。
【００２３】
［仮想ルータ（３）２３０の説明］
仮想ルータブロック２００の仮想ルータ（３）２３０は、仮想ルータ（１）２１０及び仮想ルータ（２）２２０と同様の構成を有しており、同様の動作をする。
【００２４】
［第４スイッチ（読出スイッチ）３１１，３２１，３３１，３４１の説明］
出力ブロック３００の第４スイッチ（読出スイッチ）３１１，３２１，３３１，３４１は、３台の仮想ルータ２１０，２２０，２３０の出力バッファ２１８，２２８，２３８から、利用可能帯域や優先度に応じてパケットを読出し、このパケットを出力物理インタフェース３１０，３２０，３３０，３４０に送る。出力物理インタフェース３１０，３２０，３３０，３４０は、第４スイッチ（読出スイッチ）３１１，３２１，３３１，３４１を通して入力されたパケットを出力すべきかを判断して、出力すべき場合にパケットを出力する。
【００２５】
［制御ブロック４００の説明］
図２に示されるように、制御ブロック４００は、第１の実施形態に係る物理ルータの全体を管理する全体制御機能部（第４機能部）４１０と、仮想ルータ用資源管理機能部（第２機能部）４３０と、仮想ルータ構築・解消機能部（第３機能部）４４０と、仮想ルータ資源追加・削減機能部（第３機能部）４５０と、状態把握機能部（第１機能部）４６０と、要求条件管理機能部４７０とを有している。
【００２６】
仮想ルータ構築・解消機能部４４０は、例えば、新たな仮想網を構築するため、新たな仮想ノードが必要になった場合、仮想ルータ用資源管理機能部４３０から空き資源の利用許諾を受け、新たな仮想ノードを構築し、又は、既存の仮想網を閉鎖する際、既存の仮想ノードを解消する。また、仮想ルータ構築・解消機能部４４０は、仮想ノードを多重化（例えば、二重化又は三重化）するために、新たな仮想ノードを構築することができる。
【００２７】
仮想ルータ資源追加・削除機能部４５０は、既存の仮想ルータに資源を追加したり、既存の仮想ルータの資源を解放したりする。
【００２８】
仮想ルータ用資源管理機能部４３０は、仮想ルータ資源追加・削除機能部４５０による資源の追加及び解放、並びに、仮想ルータ構築・解消機能部４４０による新たな仮想ノードの構築、及び、既存の仮想網の閉鎖に伴う仮想ノードの解消の情報を管理する。
【００２９】
状態把握機能部４６０は、通信量・品質監視機能部２１６，２２６，２３６からの通信に関する情報（情報Ａ）又は各仮想ルータ２１０，２２０，２３０の健康状態情報（ヘルスデータ：情報Ｂ）を受け取り、管理する。なお、上記健康状態情報とは、当該ノードが正常に動作しているかを監視した情報であり、例えば、メモリエラーが発生した回数や、異常終了したプロセスの数、メモリやＣＰＵの使用率、電源電圧の計測値等である。また、以降の記載では、上記情報Ａと情報Ｂを併せて単に「状態情報」と記載する。
【００３０】
要求条件管理機能部４７０は、個別のフローに対する要求条件の定義が内蔵され、通信量・品質監視機能部２１６，２２６，２３６が持つ通信品質が、要求条件に適合するかを監視し、適合させるための対策が必要であれば、全体制御機能部４１０に通知する。
【００３１】
全体制御機能部４１０は、要求条件管理機能部４７０から得られた情報を元に、仮想ルータ２１０，２２０，２３０によるサービスの状況を判断し、仮想ルータ２１０，２２０，２３０に新たな資源を追加すべきと判断した際は、仮想ルータ資源追加・削減機能部４５０に仮想ルータ２１０，２２０，２３０のいずれかに対する資源の追加又は削減を実行させる。その際、全体制御機能部４１０は、仮想ルータ用資源管理機能部４３０に利用する資源の照会又は更新を行う。また、全体制御機能部４１０は、新たな仮想ルータを構築すべき場合、仮想ルータ用資源管理機能部４４０に照会して資源量を確認した上で、仮想ルータ構築・解消機能部４４０に命じて、構築を実行し、また、仮想ルータが不要になった際は、仮想ルータ構築・解消機能部４４０に命じて仮想ルータを解消させた上で、開放された資源を、仮想ルータ用資源管理機能部４３０に登録する。具体的な割当手法や割当アルゴリズム、そこで必要となる機能部間の情報信号の流れの例は、第２の実施形態で説明する。
【００３２】
なお、図１の構成において、入力物理インタフェース１００，１２０，１３０，１４０及び出力物理インタフェース３１０，３２０，３３０，３４０以外の構成は、論理的に等価な実装がされているだけで、物理的に同一の実装が行われているとは限らない。また、入力物理インタフェース１００，１２０，１３０，１４０及び出力物理インタフェース３１０，３２０，３３０，３４０以外の構成は、ソフトウェアを利用することによって実装してもよい（「ソフト的な仮想ルータ」とも言う。）。例えば、第１スイッチ１１１，１２１，１３１，１４１、第２スイッチ２１２，２２２，２３２、第３スイッチ２１７，２２７，２３７、及び第４スイッチ３１１，３２１，３３１，３４１は、物理的には共通のデータバスであり、そのデータバスを用いて、ある仮想デバイスから他の仮想デバイスにデータを転送するという実装を行うことによって、構成できる。他の例として、複数の入力バッファ２１１，２２１，２３１は、１つの共有ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）で実装することができる。
【００３３】
さらに、複数のルータコア２１３，２２３，２３３は、１つのＣＰＵ、１つのデータバス、及び１つのメモリという物理デバイスにおいて、３つのルータプロセスを実行することで、論理的に３つの仮想ルータが存在するかのように見せることができる。ただし、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等の変更可能な物理ロジックデバイスと複数のＣＰＵや複数のメモリによって構築されたハードウェア処理で大半の処理を行う柔軟性の高いハードウェアルータとして構築することもできる（「ハード的な仮想ルータ」と言う。）。仮想ルータの実装方法として、ソフト的な仮想ルータと、ハード的な仮想ルータの間に、多数の中間解があり、どの構成であってもよい。
【００３４】
《１−２》第１の実施形態の動作
図３は、第１の実施形態に係る通信ノード装置である物理ルータを複数台用いて構築されるネットワーク（網）の説明図である。第１の実施形態では、例えば、物理ルータ１，２，３，４は、ＩＰキャリアが保有しており、これらの物理ルータによって、物理網５が構成される。ここで、物理ルータ１，２，３，４の各々は、例えば、図１に示される物理ルータの構成を持つ。図３には、物理ルータ１はユーザ１の端末とキャッシュサーバに接続可能であり、物理ルータ３はユーザ２の端末に接続可能であり、物理ルータ４は、サーバに接続可能である場合が示されている。また、物理ルータは、センサネットワークのセンサ、デジタルサイネージ、ゲーム端末、ＲＦＩＤ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ  ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）機能等の通信機能を持つデバイス等と接続可能である。
【００３５】
図３に示されるように、物理ルータ１，２，３，４の内部に構築される仮想ルータ（１）２１０は、通常のインターネットトラヒック全般を取り扱い、いわゆるインターネットサービス網（ＩＰトラヒック網）１１を実現する。
【００３６】
また、物理ルータ１，２，３，４の内部に構築される別の仮想ルータ（２）２２０は、特定の企業のトラヒックだけを扱い、その企業にＶＰＮ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）１２を提供する。ＶＰＮの代表例として、専用線ＶＰＮ及びインターネットＶＰＮがある。専用線ＶＰＮは、特定の企業の会社内に設置したルータを、ＩＰキャリアから借りたＩＰ専用線に接続することによって構築することができる。専用線ＶＰＮは、通信品質を確保できるが、会社内に設置したルータの管理及び運用が必要である。インターネットＶＰＮでは、ルータは、インターネットサービスのルータをそのまま用い、データの暗号化によって秘話性を実現している。そのため、インターネットＶＰＮでは、一般的に、利用者が希望する通信品質やオリジナルサービスを実現することは困難である。ところが、本発明を適用することによって、ＩＰキャリアは、コストをかけることなく、特定の企業に専用の仮想ルータを提供し、通信品質や希望するオリジナルサービスを提供することが可能となる。
【００３７】
また、物理ルータ１，２，３，４の内部に構築される更に別の仮想ルータ（３）２３０は、ＩＰキャリアがオンラインゲームの提供事業者向けに構築して提供したもので、オンラインゲームに特化した専用の仮想網１３を提供し、オンラインゲームの特殊な要求条件（低遅延等）を満たす通信サービスを提供する。本実施形態は、各仮想ルータの構成やプロトコルは自由に変更できるので、仮想ルータで暗号化や演算処理など特殊でオリジナルな上位レイヤ処理を行うこともできる。更に、仮想ノードは、必ずしもＩＰルータである必要はない。仮想ノードは、ＩＰと異なるプロトコルのノードでも構わない。
【００３８】
次に、本発明の具体的な運用例を説明する。図３に示される網での運用が行われていたと仮定する。ここで、ある物理ルータの制御ブロック４００の状態把握機能部４６０が、いずれかの物理ルータ内の仮想ルータ（３）２３０の通信量・品質監視機能部２３６が、通信量増加を観測し、通信品質が低下しつつあることを観測した場合を説明する。
【００３９】
要求条件管理機能部４７０は、状態把握機能部４６０の情報と、事前に契約された要求通信品質情報を照合し、品質低下への対応の判断が必要であれば、全体制御機能部４１０に通知する。
【００４０】
この通知を受けた全体制御機能部４１０は、しばらく様子を見るか、通信品質改善の具体的対応をとるかを判断する。全体制御機能部４１０は、後者（具体的な対応をとる）と判断した場合には、その原因を解析し、
条件〈Ｒ１〉「空き資源を仮想ルータ（３）２３０に追加することで通信品質の改善が可能である。」、及び、
条件〈Ｒ２〉「契約上、資源の追加が可能である。」の両方を満足するならば、仮想ルータ資源追加・削除機能部４５０に命じて仮想ルータ（３）２３０に資源を追加する。
【００４１】
ここで、通信品質劣化の原因が、レイヤ３プロトコル処理機能部２１５，２２５，２３５の性能不足である場合に、ソフト的な仮想ルータによる「資源の追加」は、コンピューティング資源（例えば、ＣＰＵタイム）の追加で実現することができる。また、通信品質劣化の原因が、レイヤ３プロトコル処理機能部２１５，２２５，２３５の性能不足である場合に、ハード的な仮想ルータによる「資源の追加」は、空いているＦＰＧＡのロジックで、ボトルネックとなっている処理の専用のロジックを増設し、並列度を高めて処理速度を向上させたり、パイプライン処理をする方式に改造したりすることによって実現することができる。
言い換えれば、状態把握機能部４６０が、仮想通信ノードのレイヤ３プロトコル処理（レイヤ３処理）がボトルネックとなって通信品質の劣化を招いていると判断したときには、全体制御機能部４１０は、仮想ルータ構築・解消機能部４４０又は仮想ルータ資源追加・削減機能部４５０に、
〈Ｍ１〉レイヤ３処理を行うためのＣＰＵタイムを増加させる対策、
〈Ｍ２〉レイヤ３処理を行うＣＰＵを増加させる対策、
〈Ｍ３〉レイヤ３処理に用いるメモリやバス占有時間を増加させる対策、
〈Ｍ４〉レイヤ３処理を行うハードウェアロジックを追加することによって、複数のハードウェアロジックで並列処理を行う対策、及び
〈Ｍ５〉レイヤ３処理を行うハードウェアロジックを追加し、パイプライン処理可能な構成を構築して対応する対策
のいずれか１つ以上の対策を実行させる。
【００４２】
また、通信品質劣化の原因が、経路表・経路表探索機能部２１４，２２４，２３４にあるならば、同様に、検索のＣＰＵ割当時間を増加させたり、並列検索の並列度を増やすように、テーブルを分割して検索用ロジック数を増加させたりすることによって「資源の追加」を実現することができる。
言い換えれば、状態把握機能部４６０が、仮想通信ノードのパケットの経路表検索又はパケット転送処理がボトルネックとなって通信品質の劣化を招いていると判断したときには、全体制御機能部４１０は、仮想ルータ構築・解消機能部４４０又は仮想ルータ資源追加・削減機能部４５０に、
〈Ｍ１１〉経路検索処理又はパケット転送処理を行うためのＣＰＵタイムを増加させる対策、
〈Ｍ１２〉経路検索処理又はパケット転送処理を行うＣＰＵを増加させる対策、
〈Ｍ１３〉経路検索処理又はパケット転送処理に用いるメモリやバス占有時間を増加させる対策、
〈Ｍ１４〉経路検索処理又はパケット転送処理を行うハードウェアロジックを追加することによって、複数のハードウェアロジックで並列処理を行う対策、及び
〈Ｍ１５〉経路検索処理又はパケット転送処理を行うハードウェアロジックを追加し、パイプライン処理可能な構成として対応する対策
のいずれか１つ以上の対策を実行させる。
【００４３】
また、通信品質劣化の原因が、到着トラヒックのバースト性に基づくものならば、入力バッファ２１１，２２１，２３１のメモリ量を増加させることによって「資源の追加」を実現することができる。言い換えれば、状態把握機能部４６０が、仮想通信ノードにおける処理が、パケットの到着間隔の狭まりに基づくものであると判断した場合、又は、特異な到着率特性に基づくものであると判断した場合には、全体制御機能部４１０は、仮想ルータ構築・解消機能部４４０又は仮想ルータ資源追加・削減機能部４５０に、キューイングメモリ量を増加させるように、仮想通信ノードに資源の割り当てを行うことで対応する対策を実行させることができる。
【００４４】
逆に、性能に余裕があり、資源を減らしても大丈夫な場合、全体制御機能部４１０は、仮想ルータ資源追加・削除機能部４５０に命じて資源を解放し、その結果を仮想ルータ用資源管理機能部４３０に登録し、他の仮想ルータが利用可能とする。仮想ルータ用資源管理機能部４３０は、他の仮想ルータが資源の追加を必要とする場合に、資源に余裕があれば資源を融通する。
【００４５】
仮想ルータ構築・解消機能部４４０は、例えば、新たな仮想網を構築するため、新たな仮想ノードが必要になった場合、仮想ルータ用資源管理機能部４３０から空き資源の利用許諾を受け、新たな仮想ノードを構築し、又は、既存の仮想網を閉鎖する際、仮想ノードを解消する。また、仮想ルータ構築・解消機能部４４０は、仮想ノードを多重化（例えば、二重化又は三重化）するために、新たな仮想ノードを構築することができる。また、仮想ルータ構築・解消機能部４４０は、仮想ノードに大幅な修正を加える際、既存の仮想ノードに修正を加えるのではなく、新たに仮想ノードを構築し、トラヒックを新たに仮想ノードに全て移動する、といった作業に用いる。なお、仮想ルータ構築・解消機能部４４０は、第２の従来技術のようにシステムを止めることなく、全く同じ仮想ルータを再起動させるのに用いることも可能である。
【００４６】
《１−３》第１の実施形態の効果
以上に説明したように、第１の実施形態に係る通信ノード装置である物理ルータによれば、要求条件に応じて動的に仮想ノードの資源の追加若しくは削除、又は、新たな仮想ノードの構築若しくは削除を行うことができ、適切な網サービス品質を提供することができる。
【００４７】
また、第１の実施形態に係る通信ノード装置である物理ルータによれば、利用しない資源を解放することで、省電力を実現することができる。
【００４８】
また、第１の実施形態に係る通信ノード装置は、仮想通信ノードが特定のＩＳＰにしか接続できない場合であっても使用できる。
【００４９】
また、第１の実施形態に係る通信ノード装置は、常時複数の仮想通信ノードが動作するシステムに適用できる。
【００５０】
《１−４》第１の実施形態の変形例
上記第１の実施形態における説明では、品質低下に対する対応方法（対策）として、Ｍ１〜Ｍ５あるいは、Ｍ１１〜Ｍ１５という複数の方法を示した。しかし、
（１）品質低下に対する対応方法を、これらの対策の内のいずれか１つではなく、複数の対策を組合わせて実現することもできる。
（２）また、品質低下に対する対応方法として、上記複数の対策の内のどの組合せを採用するのが最適であるかは、一意には決まらない。例えば、
（ケース１）仮想網１で、特定プロトコルの通信でのパケット損失が対策の閾値付近にあり、且つ、仮想網３で、遅延時間の最悪値が対策の閾値付近にある場合、
（ケース２）仮想網１で、特定プロトコルの通信でのパケット損失が対策の閾値付近にある場合、又は、仮想網３で、遅延時間の最悪値が対策の閾値付近にある場合、
（ケース３）上記ケース１に加えて、仮想網２でもオリジナルの上位レイヤ処理で品質劣化が発生しつつある場合など、状況に応じて、最適な対応方法は異なる。
また、上記『最適』の定義として、同一の性能を達成するのに、未使用の資源を最大化する対処方法を『最適』とするポリシもあれば、消費電力を最小にする対処方法を『最適』とするポリシもある。消費電力を最小にする手法として、具体的には、例えば、状態把握機能部４６０が、どの資源の追加・削除、どの様な処理の実行によって、どれだけ消費電力が変動するかといった情報を収集し、資源割当機能部４２０が、割当をする際に、その収集された情報を用いて、消費電力最小化の計算を行う手法がある。また、実測前に事前に計算や実験で得た値を、仮想ルータ用資源管理機能部４３０に蓄積しておき、資源割当機能部４２０が、割当をする際に、計算や実験で得た値を利用する方法もある。
【００５１】
（３）また、最適な対応方法の別のアプローチとして、仮想網内部での通信経路の最適化で、上位レイヤ処理をしているルータを別のルータにしたり、キャッシュでのデータ保持により、品質が向上できる場合がある。加えて、近年の通信では、ユーザ端末、サーバ、キャッシュ以外に、センサネットワークのセンサ、デジタルサイネージ、ゲーム端末、ＲＦＩＤ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ  ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）機能等の通信機能を持つデバイス等、多くのものがネットワークに接続され、サーバも分散的に配置される場合がある。このため、これら多数の資源間での通信と連携によって得られるサービスに対する要求が存在すると考えられる。例えば、全国に配置された花粉センサ、風力計、温度計、及び分散配置された気象予報計算サーバを用いて、数時間後の花粉飛散情報を予測計算して街角のデジタルサイネージに表示する花粉飛散注意サービスが考えられる。この様な場合、「計測資源、通信に用いる資源、計算資源、表示資源のいずれをどれだけ用い、どの経路で伝達するか」といった条件によって、消費電力や実行速度に差が出るため、条件を最適化することが必要になる。この様な花粉飛散注意サービスの場合、図３に符号１１〜１３で示す仮想ネットワークに加えて、新たな仮想ネットワークが、仮想ルータと、前記資源群（センサ、通信機能付きの各種デバイス、デジタルサイネージ等）によって構築される。サーバは、使用するセンサや、計算に用いられるサーバ、表示するデジタルサイネージやユーザ端末の場所から、どのルータにどれだけの資源を割当て、どの経路でどれだけの伝送資源を用意すれば良いかを計算する。計算結果に基づいて、サーバは、仮想ネットワークを構築する。この仮想ネットワークの構築は、サーバから、ノードの制御ブロック４００内の全体制御機能部４１０に要求が出され、全体制御機能部４１０が、仮想ルータ構築・解消機能部４４０に仮想ルータの構築を指示することで実現される。これらに関して、最適な方法を得るために、局所探索法、焼きなまし法、遺伝的アルゴリズム法、タブーサーチ法等の既知の最適化手法の１つ以上を用いることができる。
【００５２】
なお、最適解を得るには、膨大な計算時間が必要であり、通常、ある一定時間内に得られた准最適解を使用する。ただし、その場合でも、モデルでの計算上の値と、実測値とは異なる場合があり課題となる。そこで、准最適解での運用実績を記憶して、次回、似た状況（又は同じ状況）ではその解を用いて計算時間をなくしたり、初期解として計算を始めることで、計算精度の向上を図ることができる。
【００５３】
また、最適解を得るための処理を行いながら（最適解を得るため運用中も）、
（１）余裕のある範囲で、資源量を変化させ、より良い解を探す方法、
（２）空き資源で、仮想ノードを作り、初期解を計算結果として、資源量を変化させて、より良い解（他の解）を探す方法を、採用することもできる。
ここで、上記（１）に関して、例えば、全体制御機能部４１０が、状態把握機能部４６０からの情報を元に、サービス品質が要求条件を満たすことを確認しつつ、仮想ルータ資源追加・削除機能部４５０に対して、資源量の変化を指示し、その結果であるサービス品質や消費電力、バッファ使用量などの情報を状態把握機能部４６０で観測して、より良い解を探すことができる。上記（２）に関しては、例えば、全体制御機能部４１０が、仮想ルータ構築・解消機能部４４０に命じて、仮想ノードを作り、仮想ネットワークを構築し、ユーザトラヒックを第１スイッチ１３１で、この新たな仮想ネットワークにも放送的に流し、運用中の仮想ネットワークとあたかも同じ様な仮想ネットワークを作り、全体制御機能部４１０が仮想ルータ資源追加・削除機能部４５０に対して、資源量の変化を指示し、その結果であるサービス品質や消費電力、バッファ使用量等の情報を状態把握機能部４６０で観測して、より良い解を探すことができる。
【００５４】
《２》第２の実施形態
《２−１》第２の実施形態の構成
図４は、第２の実施形態に係る通信ノード装置としての物理ルータにおける制御部（資源割当機能部）の構成を概略的に示すブロック図である。図５は、図４に示される資源割当機能部４２０が保有する資源割当テーブルの一例を示す図である。図４において、図２の構成と同一又は対応する構成には、同じ符号を付す。
【００５５】
第２の実施形態に係る通信ノード装置は、資源割当を行う際に必要となる資源割当機能部４２０を有する点が、第１の実施形態に係る通信ノード装置と異なる。他の点については、第２の実施形態は、第１の実施形態と同じである。したがって、第２の実施形態の説明には、図１及び図２をも参照する。
【００５６】
第２の実施形態に係る通信ノード装置の資源割当機能部４２０は、全体制御機能部４１０ａ（図２における全体制御機能部４１０に対応）の内部に実装することができる。ただし、資源割当機能部４２０を、全体制御機能部の外部に実装して、資源割当機能部４２０を全体制御機能部との間で通信を行ってもよい。
【００５７】
図４に示されるように、資源割当機能部４２０は、入出力インタフェース部４２２と、資源割当テーブル部４２４と、資源追加・削除判断機能部４２３と、制御機能部４２１とを有している。
【００５８】
また、資源割当機能部４２０は、外部機能部である、仮想ルータ用資源管理機能部４３０と、仮想ルータ構築・解消機能部４４０と、仮想ルータ資源追加・削減機能部４５０と、状態把握機能部４６０と、要求条件管理機能部４７０と、連携して動作する。
【００５９】
状態把握機能部４６０は、資源割当機能部４２０内の資源追加・削除判断機能部４２３に対して、通信品質情報や仮想ルータの健康状態情報（ヘルスデータ）を出力する。資源追加・削除判断機能部４２３は、要求条件管理機能部４７０から、仮想ノードが提供すべき通信品質の情報を入力し、資源の追加や削除の必要性を判断する。
【００６０】
状態把握機能部４６０は、入出力に非線形なヒステリシスを持たせ、僅かな入力の変化では追加や削除を要求せず、ある程度大きな変化が生じるまでは動作しない設定とすると安定的な動作に好適である。なお、状態把握機能部４６０は、要求条件や結果によっては、資源の追加又は削除ではなく、仮想ルータの構築又は削除を指示する場合もある。
【００６１】
資源追加・削除判断機能部４２３は、資源の追加又は削除が必要である判断した場合に、全体制御機能部４１０にその結果を通知する。制御機能部４２１は、状態把握機能部４６０から状態情報を受け取り、要求条件管理機能部４７０から要求条件を受け取り、仮想ルータ構築・解消機能部４４０から各通信サービスに許される資源量情報を受け取る。これと並行して、制御機能部４２１は、仮想ルータ用資源管理機能部４３０から、資源の利用状態の情報を受け取る。
【００６２】
制御機能部４２１が受け取った情報は、資源割当テーブル部４２４を用いて資源割当を行う。各通信サービスに許される資源量情報とは、例えば、仮想ルータ（２）２２０を使用するＶＰＮのユーザ企業は、支払金額とその対価として契約で定めた〈Ｒ１１〉最低保障資源量、〈Ｒ１２〉優先利用資源量、〈Ｒ１３〉最大利用可能資源量である。
【００６３】
制御機能部４２１は、資源割当テーブル部４２４の資源割当テーブルを用いて、これらの量を計算し、結果に従って、仮想ルータ資源追加・削減機能部４２３に対して資源の追加又は削除を命じる。その結果は、仮想ルータ用資源管理機能部４３０に通知され、情報が更新される。
【００６４】
《２−２》第２の実施形態の動作
図５に第２の実施形態の動作を示す。各機能部と入出力信号は、構成の説明に示したので、ここでは、資源割当の具体的な手法について説明する。図５に示すように、各仮想ルータは、利用可能な資源に関して、〈Ｒ１１〉最低保障資源量、〈Ｒ１２〉優先利用資源量、〈Ｒ１３〉最大利用可能資源量が契約などで定められている。これらの量は、仮想ルータ毎に異なる。仮想ルータの番号をＶとしたときに、番号Ｖの仮想ルータにおける〈Ｒ１１〉最低保障資源量、〈Ｒ１２〉優先利用資源量、〈Ｒ１３〉最大利用可能資源量をそれぞれ、最低保障資源量Ｒｍｉｎ（Ｖ）、優先利用資源量Ｒｐｒｅ（Ｖ）、最大利用可能資源量Ｒｍａｘ（Ｖ）で表現する。
【００６５】
通信量がゼロのとき、各仮想ルータの割当資源量Ｒ（Ｖ）は、最低保障資源量Ｒｍｉｎ（Ｖ）である。これを次式に表す。
Ｒ（Ｖ）＝Ｒｍｉｎ（Ｖ）
【００６６】
通信量が増え、Ｒ（Ｖ）＝Ｒｍｉｎ（Ｖ）では、通信品質が担保できなくなる可能性があるとき、仮想ルータの割当資源量Ｒ（Ｖ）が優先利用資源量Ｒｐｒｅ（Ｖ）を超えない範囲内で、割当資源量Ｒ（Ｖ）を増加させる。これを次式に表す。
Ｒ（Ｖ）≦Ｒｐｒｅ（Ｖ）
【００６７】
それでも資源が足りない場合、他の仮想ルータがもし優先利用資源を使いきっていなければ、仮想ルータの割当資源量Ｒ（Ｖ）が最大利用可能資源量Ｒｍａｘ（Ｖ）までの範囲で、割当資源量Ｒ（Ｖ）を増加させる。これを次式に表す。
Ｒ（Ｖ）≦Ｒｍａｘ（Ｖ）
ただし、この資源は、他の仮想ルータが必要な場合、直ちに返却しなければならない。
【００６８】
また、複数の仮想ルータ、例えば、仮想ルータ（１）２１０と仮想ルータ（２）２２０が共に、優先利用資源量Ｒｐｒｅ（１）及び優先利用資源量Ｒｐｒｅ（２）を超える資源の利用を希望し、仮想ルータ（３）２３０に、未使用の優先利用資源があれば、これを、仮想ルータ（１）２１０と仮想ルータ（２）２２０で分け合って使うことができる。
【００６９】
未使用の優先利用資源の分け方としては、単純に２分割する方法、両者のＲｍａｘ（ＲｐｒｅやＲｍｉｎでもよい）の大きさの比率に応じて割当てる方法、などが可能である。
【００７０】
このように、仮想ノード毎に設定される最低保障資源量、優先利用資源量、及び最大利用可能資源量を、資源の種類毎に設定し、資源の利用量を通信品質のボトルネックの要因に応じて変化させてもよい。具体的には、ＣＰＵ資源（ＣＰＵタイム、ＣＰＵ個数）、メモリ量、バス占有時間、ハードウェアロジック（ＦＰＧＡゲート量）などのうちの１つ以上を含む資源項目毎に、これらを割当てることが可能である。
【００７１】
全体制御機能部４１０ａが上記割当を行う際、要求される通信品質に応じて最も有効な資源の割当を行うことが好適である。例えば、ＶＰＮでの暗号化や複合化の処理能力がボトルネックとなっている場合、これらのコード・デコード用ハード資源を用いるが好適で、経路検索処理能力が不足している場合、ＣＰＵを増やして並列検索することが好適である。
【００７２】
この方法は、ＰＯＮ（Ｐａｓｓｉｖｅ  Ｏｐｔｉｃａｌ  Ｎｅｔｗｏｒｋ）の動的帯域割当手法（Ｄｙｎａｍｉｃ  Ｂａｎｄｗｉｄｔｈ  ＡＩｌｏｃａｔｉｏｎ）と類似しているが、本実施の形態ここでは、帯域ではなく、ルータの処理性能に関わる資源やハードの割当を行っている点が異なる。そのため、状況に応じて割当てるのに好適な資源が異なり、その制御を行う点が従来技術と異なる。
【００７３】
《２−３》第２の実施形態の効果
以上に説明したように、第２の実施形態に係る通信ノード装置によれば、要求条件に応じて動的に仮想ノードの資源の追加若しくは削除、又は、新たな仮想ノードの構築若しくは削除を行うことができ、適切な網サービス品質を提供することができる。
【００７４】
また、第２の実施形態に係る通信ノード装置によれば、利用しない資源を解放することで、省電力を実現することができる。
【００７５】
さらに、第２の実施形態に係る通信ノード装置によれば、好適な資源割当が可能となる。
【符号の説明】
【００７６】
１００  入力ブロック、  １１０，１２０，１３０，１４０  物理インタフェース、  １１１，１２１，１３１，１４１  第１スイッチ、  ２００  仮想ルータブロック、  ２１０  仮想ルータ（１）、  ２２０  仮想ルータ（２）、  ２３０  仮想ルータ（３）、  ２１１，２２１，２３１  入力バッファ、  ２１２，２２２，２３２  第２スイッチ（読出スイッチ）、  ２１３，２２３，２３３  ルータコア、  ２１４，２２４，２３４  経路表・経路表探索機能部、  ２１５，２２５，２３５  レイヤ３プロトコル処理、  ２１６，２２６，２３６  通信量・品質監視機能部、  ２１７，２２７，２３７  第３スイッチ、  ２１８，２２８，２３８  出力バッファ、  ３００  出力ブロック、  ３１０，３２０，３３０，３４０  出力物理インタフェース（物理ＩＦｘ−ＯＵＴ）、  ３１１，３２１，３３１，３４１  第４スイッチ（読出しスイッチ）、  ４００  制御ブロック、  ４１０  全体制御機能部（第４機能部）、  ４２０  資源割当機能部、  ４３０  仮想ルータ用資源管理機能部（第２機能部）、  ４４０  仮想ルータ構築・解消機能部（第３機能部）、  ４５０  仮想ルータ資源追加・削減機能部（第３機能部）、  ４６０  状態把握機能部（第１機能部）、  ４７０  要求条件管理機能部。
【図１】
0005304813.tif 000002
【図２】
0005304813.tif 000003
【図３】
0005304813.tif 000004
【図４】
0005304813.tif 000005
【図５】
0005304813.tif 000006