以下に、本願の開示するネットワーク構成システム、ネットワーク構成装置、ネットワーク構成方法、及びネットワーク構成プログラムの実施形態を、図面を参照しながら詳細に説明する。なお、以下の実施形態により本願の開示するネットワーク構成システム、ネットワーク構成装置、ネットワーク構成方法、及びネットワーク構成プログラムが限定されるものではない。
まず、構成を説明する。図1は、CCN1上に構築された再構成前のVCCN1aの一例を示す図である。図1に示す様に、CNN1は、4つのACCN(Advanced Content Centric Networking)ルータ(実ルータ)10、20、30、40から構成され、各ACCNルータ10、20、30、40間は、それぞれCCNリンクL1により接続されている。これにより、各ACCNルータ10、20、30、40は、CCNレイヤレベルで、隣接するACCNルータと1ホップの直接通信が可能な状態となっている。また、各ACCNルータ10、20、30上には、仮想のCCNルータであるVCCNルータ10a、20a、30aが生成されている。これらのVCCNルータ10a、20a、30aが、それぞれ論理的なCCNリンクであるVCCNリンクL1aにより接続されることで、仮想のCCNであるVCCN1aが形成されている。各VCCNルータ10a、20a、30aについても、ACCNルータ10、20、30、40と同様、VCCNレイヤレベルで、隣接するVCCNルータと1ホップの直接通信が可能な状態となっている。すなわち、VCCN再構成システム100は、VCCNルータを内部で制御可能なACCNルータ10、20、30、40を有して構成される。
各ACCNルータ10、20、30、40には、ルータを識別するための識別子として、ACCNルータ識別子が付されている。また、CNN1には、“/vccnx/CCNrouter-ID”の識別子を有するコンテンツが登録されている。このため、CCN1において、該“/vccnx/CCNrouter-ID”がプレフィックスとして付されたCCN要求パケットが受信されると、上記ACCNルータ識別子を有するACCNルータ宛に、上記CCN要求パケットが転送される。なお、この場合、各ACCNルータ10、20、30、40間の経路に、VCCN再構成の機能をもたない通常のCCNルータが含まれていてもよい。
図2は、ACCNルータ10の機能構成を示すブロック図である。図2に示す様に、ACCNルータ10は、再構成要否判定部11とACCNルータ決定部12とVCCN再構成部13とを有する。これら各構成部分は、一方向又は双方向に、信号やデータの入出力が可能な様に接続されている。
再構成要否判定部11は、自ルータ10のリソース使用状況、及び自ルータ10上で動作するVCCNルータ10aの接続するVCCNリンクL1aの状態を定期的に監視する。再構成要否判定部11は、該監視の結果、ペンディング要求テーブルの平均使用率が、ネットワーク管理者により事前に設定された閾値以上となった場合、VCCN1a内にVCCNルータの生成(追加)が必要であると判定する。なお、VCCN1aの再構成の要否判定に用いられるパラメータは、上記平均使用率に限らず、例えば、ACCNルータ10のプロセッサの使用率、あるいは、メモリやハードディスクの使用容量であってもよい。
ACCNルータ決定部12は、隣接する各ACCNルータ20、30、40に対して、CCNの要求パケットを送信することで、VCCNルータの生成の要求先となるACCNルータを決定するための情報を要求する。当該情報には、例えば、上記要求パケットを受信したACCNルータ20、30、40が動作させているVCCNルータ20a、30a、40aの属するVCCNの識別子(VCCN識別子)と、各ACCNルータ20、30、40の有するリソースの状態を示す情報とが含まれている。リソースの状態を示す情報は、例えば、各ACCNルータ20、30、40のペンディング要求テーブルの使用容量や、プロセッサ、メモリの使用率であり、ACCNルータ決定部12による上記情報の収集には、コンテンツ識別子として、例えば、“/vccnx/CCN-routers/resources”が使用される。
上記要求パケット内には、生存時間(ライフタイム)が設定されている。該生存時間が経過するまでの間、上記要求パケットは、ACCNルータ20、30、40から、隣接する他のACCNルータに順次転送される。なお、上記要求パケットに対する応答パケットのキャッシュは、オフに設定されている。これにより、キャッシュをオンに設定した場合に懸念される、同一のコンテンツ識別子(例えば、“/vccnx/CCN-routers/resources”)を有する別の応答パケットが同一のコンテンツとして扱われてしまう、といった問題は確実に回避される。但し、各ACCNルータ20、30、40が、応答パケットのコンテンツ識別子の末尾に自ルータの識別子を埋め込む場合には、上記キャッシュをオンに設定しても上述の問題は生じない。すなわち、ACCNルータ決定部12は、CCN1におけるコンテンツのキャッシュ機能を用いることで、探索用パケットの応答を再利用し、余分な探索用パケットのCCN1上への流出を抑制する。その結果、ネットワーク負荷が低減される。
ACCNルータ決定部12は、上記応答パケットの示す情報(例えば、VCCN識別子、リソース使用状況)に基づき、ACCNルータ20、30、40の中から、VCCNルータを新たに生成させるべきACCNルータを決定する。例えば、ACCNルータ決定部12は、隣接するACCNルータ20、30、40の内、VCCN1a上でVCCNルータを動作させておらず、かつ、ペンディング要求テーブルの容量に余裕のあるACCNルータ(例えば、ACCNルータ20)を選択する。
なお、ACCNルータ20、30、40の中に条件を満たすACCNルータが存在しない場合には、ACCNルータ決定部12は、expanding ring searchにより、徐々に遠方のACCNルータまで上記要求パケットを送信する。要求パケットには、拡散範囲を示す情報(例えば、ホップ数)が埋め込まれており、ACCNルータ決定部12は、この拡散範囲を大きくとることで、より遠方のACCNルータまで、要求パケットを段階的に到達させる、といった調整が可能となる。同様に、要求パケットには、生存時間を示す情報が埋め込まれており、ACCNルータ決定部12は、この生存時間を長くすることで、より遠方のACCNルータまで要求パケットを到達させる、といった調整が可能となる。併せて、ACCNルータ決定部12が、新しいVCCNルータの生成先や移動先となるACCNルータを決定する際、ACCNルータ10の周辺のACCNルータへの探索用パケットの転送が抑制される。その結果、探索用パケットのCCN1上への不要な流出が未然に防止される。
VCCN再構成部13は、ACCNルータ決定部12により決定されたACCNルータに対して、自ルータ上におけるVCCNルータの制御を要求する。制御は、例えば、VCCNルータの生成、削除、移動、分割、統合等であるが、これらに限らない。また、VCCN再構成部13は、他のACCNルータからの要求に応じて、更に別のACCNルータとの間で、上記制御に必要な情報(例えば、VCCN識別子、ACCNルータの識別子)の交換を行う。そして、VCCN再構成部13は、ACCNルータ10におけるVCCNルータ10a、あるいは他のACCNルータ20、30、40との間のVCCNリンクL1aを、動的に制御する。
以上、ACCNルータ10の構成を代表的に説明したが、他のACCNルータ20、30、40の構成は、上述したACCNルータ10の構成と同様である。したがって、共通する構成要素には、末尾が同一の参照符号を用いると共に、その図示及び詳細な説明は省略する。
次に、動作を説明する。
(VCCNルータ生成処理)
まず、VCCN再構成システム100が、VCCN1a上にVCCNルータ20aを生成する際の動作を説明する。図3は、VCCN再構成システム100がVCCNルータ20aを生成する処理を説明するためのシーケンス図である。S1では、VCCN再構成部13は、ACCNルータ決定部12により選定されたACCNルータ20に対し、新たなVCCNルータの生成を要求するパケットを送信する。該パケットには、(a)問題を解決するACCNルータの識別子と、(b)新たなVCCNルータの生成されるVCCNの識別子と、(c)新たなVCCNルータの接続先となるVCCNルータの動作するACCNルータの識別子との各情報が少なくとも含まれる。本実施形態では、(a)の識別子として“ACCNルータ20”が、(b)の識別子として“VCCN1a”が、(c)の識別子として“ACCNルータ30、40”がそれぞれ含まれる。
ここで、CCNの要求パケットのコンテンツ識別子には、バイナリエンコーディングされた情報を埋め込むことができる。このため、ACCNルータ10は、上記(a)〜(c)の各情報をコンテンツ識別子に埋め込むことで、VCCNルータの生成に必要な情報を、CCNレイヤレベルで送信することができる。このとき使用されるコンテンツ識別子は、例えば、“/vccnx/CCNrouter-D/generate/VCCN-X/NFBLOB”である。なお、“NFBLOB”は、新たに生成されたVCCNルータの接続するVCCNルータの動作するACCNルータの識別子が、コンテンツとしてバイナリエンコーディングされた応答パケットである。
S2では、ACCNルータ20は、VCCN再構成部23により、ACCNルータ10から上記要求パケットを受信すると、該要求パケットから、上記(a)〜(c)の各情報を読み込み、(b)のVCCN識別子である“VCCN1a”を基に、空のVCCNルータのインスタンスを生成する。また、ACCNルータ20は、VCCN1aのための転送情報ベース・コンテンツストア・ペンディング要求テーブル用のメモリ領域を確保すると共に、VCCN1a宛のVCCNパケットが、上記テーブルを参照する様な設定を行う。
S3では、ACCNルータ20は、VCCN再構成部23により、上記(c)の識別子の示す“ACCNルータ30、40”に向けて、ACCNルータ20へのリンク接続を要求するパケット(ACCNリンクの生成要求パケット)を、VCCNレイヤレベルで送信する。該パケットのコンテンツ識別子には、(d)新たに生成されたVCCNルータの接続するACCNルータの識別子と、(e)新たなVCCNルータの生成されるVCCNの識別子と、(f)新たなVCCNルータの動作するACCNルータと通信可能となるフェースの情報との各情報が少なくとも含まれる。本実施形態では、(d)の識別子として“ACCNルータ30、40”が、(e)の識別子として“VCCN1a”が、(f)の情報として“ACCNルータ20のフェースインスタンス情報”がそれぞれ含まれる。
S4では、ACCNルータ30は、上記ACCNリンクの生成要求パケットをACCNルータ20から受信すると、VCCN再構成部33により、ACCNルータ20宛のフェースを新たに生成する。また、ACCNルータ40においても同様に、VCCN再構成部43により、ACCNルータ20宛のフェースを新たに生成する。
S5では、上記S3とは逆方向に、各ACCNルータ30、40が、VCCNレイヤレベルで、ACCNルータ20に対して、ACCNリンクの生成要求パケットを送信することで、ACCNルータ20とのリンク接続を要求する。該パケットのコンテンツ識別子には、(g)新たに生成されたVCCNルータの動作するACCNルータの識別子と、(h)新たなVCCNルータの生成されるVCCNの識別子と、(i)新たなVCCNルータの接続するACCNルータと通信可能となるフェースの情報との各情報が少なくとも含まれる。本実施形態では、(g)の識別子として“ACCNルータ20”が、(h)の識別子として“VCCN1a”が、(i)の情報として“ACCNルータ30、40のフェースインスタンス情報”がそれぞれ含まれる。
S6では、ACCNルータ20は、上記ACCNリンクの生成要求パケットを各ACCNルータ30、40から受信すると、VCCNルータ生成部131により、ACCNルータ30、40宛のフェースを新たに生成する。また、ACCNルータ20は、VCCNレイヤレベルで、リンク接続のためのパケットとリンクステートパケットとを、各ACCNルータ30、40上で動作するVCCNルータ30a、40a宛に送信する。その結果、新たに生成されたVCCNルータ20aと、既存のVCCNルータ30a、40aとの間に、新たなVCCNリンクL1aが生成される。
なお、VCCNルータ間が如何なる形態で接続されるかは、新たなVCCNルータ(本実施形態では、VCCNルータ20a)が生成される要因に基づいて決定される。例えば、本実施形態では、VCCN再構成システム100は、ACCNルータ10に掛かる負荷の分散を図るため、VCCNルータ20aとVCCNルータ30a、40aとの間にVCCNリンクL1aを1回線ずつ(計2回線)生成するものとした。しかしながら、迂回路や待機系の形成が必要になった場合等、負荷分散とは別の要因がある場合には、VCCN再構成システム100は、何れか一方の回線のVCCNリンクL1aのみを生成するものとしてもよい。
図4は、VCCNルータ20a生成後のVCCN1bの一例を示す図である。図4に示す様に、VCCN再構成システム100がVCCN再構成処理を実行した結果、VCCN1b上には、VCCNルータ20aが、CCNレイヤレベルでシームレスに(間断無く)生成される。VCCNルータ20aは、VCCNリンクL1bを介してVCCNルータ30a、40aと接続されていることから、再構成前まではVCCNルータ10aに集中していた、VCCNルータ30a、40aからのトラフィックは、VCCNルータ20aに分散される。これにより、VCCNルータ10aが受信していたVCCNパケットの一部は、VCCN1aの再構成後、VCCNルータ20aが受信することとなり、その結果、VCCNルータ10aのペンディング要求テーブルの平均使用率は低下する。
(VCCNルータ削除処理)
続いて、VCCN再構成システム100が、VCCN1a上に存在するVCCNルータ10aを削除する際の動作を説明する。かかる動作は、VCCNルータ10aの削除後においても、VCCNルータ30a、40a間の接続が維持されるケースと、該接続が終了するケースとに分けられるが、本実施形態では特に、通信継続性の高い前者のケースについて説明する。なお、事前処理である、VCCN再構成の要否判定処理及び制御対象ACCNルータの決定処理については、上述したVCCNルータ生成処理の事前処理と同様であるため、説明を省略する。
図5は、VCCN再構成システム100がVCCNルータ10aを削除する処理を説明するためのシーケンス図である。S11では、ACCNルータ10のVCCN再構成部13は、VCCNルータ10aを介して、VCCNルータ30a宛に、VCCNルータ30aがVCCNレイヤレベルでVCCNルータ40aとリンク接続することを要求するパケット(CCNリンク生成要求パケット)を送信する。同様に、VCCN再構成部13は、VCCNルータ40aに対しても、VCCNルータ40aがVCCNルータ30aとリンク接続することを要求するパケットを送信する。
該パケットのコンテンツ識別子には、(j)VCCNルータの接続するACCNルータの識別子と、(k)VCCNルータの削除されるVCCNの識別子と、(l)削除されるVCCNルータの動作しているACCNルータと通信可能となるフェースの情報との各情報が少なくとも含まれる。本実施形態では、(j)の識別子として“ACCNルータ30、40”が、(k)の識別子として“VCCN1a”が、(l)の情報として“ACCNルータ10のフェースインスタンス情報”がそれぞれ含まれる。
併せて、ACCNルータ10のVCCN再構成部13は、VCCNルータ10aを介して、VCCNルータ30a宛に、リンクステートパケットを送信する。該リンクステートパケットは、転送情報ベース内の宛先情報として“VCCNルータ10a”を含むエントリに、新たな宛先情報として“VCCNルータ40a”を追加することをVCCNルータ30aに指示するパケットである。同様に、ACCNルータ10のVCCN再構成部13は、VCCNルータ10aを介して、VCCNルータ40a宛にも、リンクステートパケットを送信する。該リンクステートパケットは、転送情報ベース内の宛先情報として“VCCNルータ10a”を含むエントリに、新たな宛先情報として“VCCNルータ30a”を追加することをVCCNルータ40aに指示するパケットである。これにより、VCCNルータ30a、40a間に、新たなVCCNリンクL1cが生成される(S12)。図6は、VCCNルータ10aが削除される過程におけるVCCN1cの一例を示す図である。図6に示す様に、現時点で、VCCNルータ30a、40a間は、2本のVCCNリンクL1c、L1dにより並列に接続されることで、冗長化される。
S13では、ACCNルータ10のVCCN再構成部13は、VCCNルータ10aを介して、VCCNルータ30a宛に、転送情報ベースの設定変更要求パケットを送信する。該パケットは、転送情報ベース内の宛先情報として“VCCNルータ10a”を含むエントリから、“VCCNルータ10a”を削除することをVCCNルータ30aに指示するパケットである。同様に、ACCNルータ10のVCCN再構成部13は、VCCNルータ10aを介して、VCCNルータ40a宛にも、上記設定変更要求パケットを送信する。該パケットは、転送情報ベース内の宛先情報として“VCCNルータ10a”を含むエントリから、“VCCNルータ10a”を削除することをVCCNルータ40aに指示するパケットである。
S14では、ACCNルータ30、40のVCCN再構成部33、43は、上記設定変更要求パケットによる指示に従い、転送情報ベースを、VCCNルータ10aが削除された状態に更新する。S15では、ACCNルータ10のVCCNルータ削除部132は、VCCNルータ10aのインスタンスを自ルータから削除する。また、VCCNルータ削除部132は、VCCN1cのための転送情報ベース・コンテンツストア・ペンディング要求テーブルのメモリ領域を開放すると共に、VCCN1cに向けたVCCNパケットが上記テーブルを参照する設定を解除する。
図7は、VCCNルータ10a削除後のVCCN1eの一例を示す図である。図7に示す様に、VCCN再構成システム100がVCCN再構成処理を実行した結果、VCCN1aから、VCCNルータ20aがシームレスに削除される。上述した様に、VCCNルータ30a、40a間には、事前にVCCNリンクL1eが生成されていることから、VCCNルータ10aの削除後においても、VCCNルータ30aとVCCNルータ40aとは、直接の通信が可能である。また、VCCNルータ10aの削除に伴う、VCCNルータ30a、40a間における通信の断絶は確実に防止される。
(VCCNルータ移動処理)
続いて、VCCN再構成システム100が、VCCN1a上に存在するVCCNルータ10aを移動(マイグレーション)する際の動作を説明する。本動作説明では、ACCNルータ10上のVCCNルータ10a(図1参照)がACCNルータ20に移動する場合を想定する。なお、事前処理である、VCCN再構成の要否判定処理及び制御対象ACCNルータの決定処理については、上述したVCCNルータ生成処理の事前処理と同様であるため、説明を省略する。
前提として、ACCNルータ10のVCCN再構成部13は、VCCNルータ10aの移動先をACCNルータ20に決定すると、ACCNルータ20に対して、新たなVCCNルータの生成を要求するパケットを送信する。ACCNルータ20は、該要求に応じて、VCCNルータ20aを生成することとなるが、生成した時点で、VCCNルータ20a、30a間、及びVCCNルータ20a、40a間のリンク接続を、図4に示した様に冗長化する。これにより、VCCNルータの移動に伴う通信の瞬断が未然に回避される。
図8は、VCCN再構成システム100がVCCNルータ10aを移動する処理を説明するためのシーケンス図である。S21では、ACCNルータ10のVCCN再構成部13は、ACCNルータ20に対し、VCCNルータ10aの保持するデータテーブルをACCNルータ20がコピーすることを要求するパケット(テーブルコピー要求パケット)を送信する。該パケットには、(m)問題を解決するACCNルータの識別子と、(n)VCCNルータの移動するVCCNの識別子と、(o)問題の発生したACCNルータの識別子と、(p)コピー対象のデータテーブルの種類との各情報が少なくとも含まれる。本実施形態では、(m)の識別子として“ACCNルータ20”が、(n)の識別子として“VCCN1a”が、(o)の識別子として“ACCNルータ10”が、(p)の種類として“FIB(Forwarding Information Base)”が、それぞれ含まれる。
なお、コピー対象のデータテーブルの種類としては、転送情報ベース(FIB)の他、コンテンツストア(CS)、ペンディング要求テーブル(PIT:Pending Interest Table)が指定されるものとしてもよい。あるいは、これらを組み合わせた情報が指定されるものとしてもよい。例えば、テーブルコピー要求パケットのコンテンツ識別子は、“/vccnx/CCNrouter-D/copy/VCCN-X/[コピー対象のデータテーブルの種類]/from/CCNrouter-B/”の様に指定される。
ACCNルータ20のVCCN再構成部23は、S21でACCNルータ10から送信された上記テーブルコピー要求パケットを受信すると、該パケットから、上記(m)〜(p)の各情報を読み込む。その後、VCCN再構成部23は、該パケットにて指定されているコピー対象のデータテーブル(上記(p))を要求するパケットを、テーブル要求パケットとして、VCCN1a(上記(n))上のVCCNルータ10aに対して送信する(S22)。例えば、テーブル要求パケットのコンテンツ識別子は、“/vccnx/CCNrouter-B/VCCN-X/[コピー対象のデータテーブルの種類]”の様に指定される。
データテーブルの要求を受けたACCNルータ10のVCCN再構成部13は、オンデマンドで、上記テーブル要求パケットにて指定されているデータテーブルの各エントリを、ACCNルータ20に返信する(S23)。すなわち、VCCN再構成部13は、コンテンツ識別子にタイムスタンプを埋め込んだ状態で、転送情報ベースをエントリ単位で返送する。なお、VCCN再構成部13は、全てのエントリを返送せず、ネットワーク管理者が予め設定した割合のエントリのみを返送するものとしてもよい。このとき、ACCNルータ10は、返送したエントリをメモリに記録しておく。
S24では、ACCNルータ20のVCCNルータ移動部233は、受信されたVCCNルータ10aのデータテーブルの内容を、VCCNルータ20aのデータテーブルに反映させる。ここで、VCCNルータ20aにはリンク接続が冗長化されているため、VCCNルータ20aは、既にリンクステートパケット等を受信済みであり、転送情報ベース内に、重複するエントリが複数存在することとなる可能性がある。この場合には、VCCN再構成部23は、上記コンテンツ識別子に記述されているタイムスタンプと、VCCNルータ20aにて重複するエントリの生成時刻とを比較し、最新のエントリを基に、データテーブルの更新を行う。
ACCNルータ10のVCCN再構成部13は、全てのエントリの送信が完了すると、上述したVCCNルータ削除処理と同様の手順により、VCCNルータ10aを削除する(S25)。なお、S23において、ACCNルータ10が、一部のエントリのみを送信した場合には、VCCN再構成部13は、該エントリのみを削除する。これにより、VCCNルータ10aは、擬似的に、VCCNルータ10aとVCCNルータ20aとに分割された状態となる。
図9は、VCCNルータ10a移動後のVCCN1fの一例を示す図である。図9に示す様に、VCCN再構成システム100がVCCN再構成処理を実行した結果、ACCNルータ10上で動作していたVCCNルータは、ACCNルータ20へシームレスに移動し、以降、ACCNルータ20上のVCCN1fで動作する。上述した様に、VCCNルータ20aとVCCNルータ30a、40aとの間には、事前にVCCNリンクL1fが生成されている。したがって、VCCNルータの移動後においても、移動先のVCCNルータ20a(図9参照)は、移動元のVCCNルータ10a(図1参照)と同様に、他のVCCNルータ30a、40aとの通信を容易に維持することができる。
実社会におけるVCCNの運用を想定すると、VCCNルータの生成、削除、移動等を含めたVCCNの再構成技術が望まれるが、CCNは、CCNレイヤ以下のプロトコルに依存しない仕様となっている。したがって、CCNの利便性を維持しつつVCCNを再構成するためには、VCCNの再構成技術は、上記CCNレイヤ以上の仕組みによって実現されるのが望ましい。また、VCCNの再構成技術には、シームレスな再構成が望まれることから、VCCNのサービスを極力停止させない運用が好ましい。更に、CCN上には、複数のVCCNが構築されるため、ネットワーク管理者が、何れのVCCNに対して如何なる量のリソースを割り当て、VCCNルータを制御するかを逐次適確に判断することは、極めて困難である。したがって、VCCNの再構成は、CCN上の各ACCNルータによって自律的に実行されることが望ましい。
そこで、以上説明した様に、VCCN再構成システム100は、ACCNルータ10と、ACCNルータ20とを有する。ACCNルータ10は、再構成要否判定部11と、ACCNルータ決定部12と、VCCN再構成部13とを有する。再構成要否判定部11は、VCCN1aの再構成の要否を判定する。ACCNルータ決定部12は、再構成要否判定部11によりVCCN1aの再構成が必要と判定された場合、ACCNルータ10以外のACCNルータ20、30、40の中から、VCCN1aにおいて制御(生成、削除、移動、分割、統合等)の対象となるVCCNルータ20aを動作させるACCNルータ20を決定する。VCCN再構成部13は、ACCNルータ決定部12により決定されたACCNルータ20に対し、VCCNルータ20aの制御を要求する。また、ACCNルータ20は、VCCN再構成部23を有する。VCCN再構成部23は、ACCNルータ10のVCCN再構成部13からの要求に応じて、VCCNルータ20aを制御する。
VCCN再構成システム100において、再構成要否判定部11は、ACCNルータ10のリソース状態に基づき、VCCN1aの再構成の要否を判定するものとしてもよい。また、ACCNルータ決定部12は、ACCNルータ10以外の各ACCNルータ20、30、40のリソース状態を用いて、ACCNルータ10以外の各ACCNルータ20、30、40の中から、ACCNルータ20を選択するものとしてもよい。
また、VCCN再構成システム100において、ACCNルータ20のVCCN再構成部23は、ACCNルータ10のVCCN再構成部13からの要求に応じて、VCCNルータ20aの生成、削除、移動、分割、統合の内、少なくとも1つの制御を行うものとしてもよい。
更に、VCCN再構成システム100において、ACCNルータ20のVCCN再構成部23は、ACCNルータ10のVCCN再構成部13からの要求に応じて、VCCNルータ20aに接続する仮想リンク(例えば、図4のVCCNリンクL1b)を制御するものとしてもよい。
また、VCCN再構成システム100において、ACCNルータ10のVCCN再構成部13は、VCCNルータ10aを削除する際、該削除により仮想リンク接続が切断される複数のVCCNルータ(例えば、図6のVCCNルータ30a、40a)間に仮想リンク(例えば、図6のVCCNリンクL1c)を生成した後、VCCNルータ10aをACCNルータ10から削除する制御を行うものとしてもよい。
本実施形態に係るVCCN再構成システム100によれば、CCNレイヤ以下のプロトコルによる制限を受けないVCCNを、シームレスかつ自律分散的に再構成することができる。
具体的には、再構成要否判定部11は、ACCNルータ10のリソース状態を定期的に監視する。再構成要否判定部11は、監視の結果、ネットワーク状況の変化を検知すると、リソース状態を表す値が所定の閾値に達したことを契機として、VCCN1aの再構成が必要であると判断する。リソース状態を表す値は、例えば、ペンディング要求テーブルの使用容量、プロセッサの使用率、メモリやディスクの使用割合であるが、これらの値の所定時間における増加率であってもよい。更に、プロセッサの平均温度またはその上昇率、あるいは、メモリの平均スワッピング回数を用いてもよい。また、閾値は、ネットワーク管理者が事前に設定するが、ACCNルータ10における大量のパケットロスの発生を回避可能な範囲内で、適宜変更可能である。
更に、再構成要否判定部11は、VCCN1aの再構成の要否を判定する指標として、VCCNルータ10aを動作させるACCNルータ10のコンテンツストアの平均ヒット率を採用してもよい。すなわち、ACCNルータ10のコンテンツストアの平均ヒット率の値が小さい場合、キャッシュされたコンテンツの再利用のレベルが低いとの推測が可能である。したがって、かかる態様では、再構成要否判定部11は、ACCNルータ10のコンテンツストアの平均ヒット率が所定の閾値以下となった場合、VCCN1aの再構成(特に、VCCNルータの生成及び移動)が必要であると判定する。
同様に、再構成要否判定部11は、VCCN1aの再構成の要否を判定する指標として、VCCNルータ10aを動作させるACCNルータ10のコンテンツストアの空き容量を採用してもよい。すなわち、ACCNルータ10のコンテンツストアの空き容量の値が小さい場合にも、キャッシュされたコンテンツの再利用のレベルが低いとの推測が可能である。したがって、かかる態様では、再構成要否判定部11は、ACCNルータ10のコンテンツストアの空き容量が所定の閾値以下となった場合、VCCN1aの再構成(特に、VCCNルータの生成及び移動)が必要であると判定する。
また、再構成要否判定部11は、VCCNルータ10aを動作させるACCNルータ10のフェース数が所定の閾値以上となった場合、ACCNルータ10の負荷が高いことから、VCCN1aの再構成(特に、VCCNルータの生成及び移動)が必要であると判定するものとしてもよい。更に、再構成要否判定部11は、VCCNルータ10aを動作させるACCNルータ10の転送情報ベース(FIB)に登録されているエントリの数が所定の閾値以上となった場合、FIBのルックアップ時間が大きいことから、VCCN1aの再構成(特に、VCCNルータの分割)が必要であると判定するものとしてもよい。
また、再構成要否判定部11は、VCCNルータ10aを動作させるACCNルータ10のペンディング要求テーブル(PIT)の平均変化率を、VCCN1aの再構成の要否を判定する指標として、使用することもできる。PITの平均変化率は、単位時間当たりにおける、PITのエントリの変化量を表す数値である。すなわち、かかる態様では、再構成要否判定部11は、VCCNルータ10aを動作させるACCNルータ10のPITの平均変化率が所定の閾値以上となった場合、ACCNルータ10がDDoS(Distributed Denial of Service)攻撃を受けている可能性が高いことから、VCCN1aの再構成(特に、VCCNルータの移動)が必要であると判定するものとしてもよい。
また、再構成要否判定部11は、VCCNルータ10aを動作させるACCNルータ10のPITの平均使用率が所定の閾値以下となった場合、VCCN1aの再構成(特に、VCCNルータの削除及び統合)が必要であると判定するものとしてもよい。これにより、ネットワークリソースの節約が可能となる。更に、再構成要否判定部11は、VCCNルータ10aを動作させるACCNルータ10及び隣接するACCNルータ20、30、40の転送情報ベース(FIB)に登録されているエントリの数が何れも所定の閾値以下となった場合にも、ネットワークリソースの節約のため、VCCN1aの再構成(特に、VCCNルータの削除)が必要であると判定することができる。
また、例えば、再構成要否判定部11は、VCCNルータ10aを動作させるACCNルータ10が送出する要求パケットに対し、応答パケットが返信され、到達するまでの平均RTT(Round Trip Time)を計測する。そして、再構成要否判定部11は、該平均RTTが所定の閾値以上となった場合、仮想的なコンテンツセントリックネットワークの性能改善のため、VCCN1aの再構成(特に、VCCNルータの移動)が必要であると判定するものとしてもよい。同様に、再構成要否判定部11は、VCCNルータ10aを動作させるACCNルータ10が送出する要求パケットの呼損率が所定の閾値以上となった場合にも、VCCN1aの再構成(特に、VCCNルータの移動)が必要であると判定するものとしてもよい。これにより、VCCN1aの性能が改善される。更に、再構成要否判定部11は、VCCNルータ10aを動作させるACCNルータ10と接続するリンクの利用率が所定の閾値以上となった場合に、仮想的なコンテンツセントリックネットワークの性能改善のため、VCCN1aの再構成(特に、VCCNルータの移動)が必要であると判定することもできる。
また、再構成要否判定部11は、VCCNルータ10aを動作させるACCNルータ10及び隣接するACCNルータ20、30、40の各CPU(Central Processing Unit)の平均使用率が何れも所定の閾値以下となった場合、ネットワークリソースの節約のため、VCCN1aの再構成(特に、VCCNルータの削除)が必要であると判定するものとしてもよい。上記各CPUの平均使用率は、各CPUの平均温度であってもよく、この場合にも同様の効果が得られる。更に、再構成要否判定部11は、VCCNルータ10aを動作させるACCNルータ10及び隣接するACCNルータ20、30、40の各メモリの空き容量が何れも所定の閾値以上となった場合、VCCN1aの再構成(特に、VCCNルータの削除)が必要であると判定するものとしてもよい。かかる態様によっても、ネットワークリソースの節約が可能となる。
更に、再構成要否判定部11は、上述した複数の条件を択一的に用いるのではなく、上述した複数の条件の内、2つ以上を組み合わせ、複数の条件が満たされた場合に初めて、VCCN1aの再構成が必要であるとの決定をするものとしてもよい。これにより、VCCN1aの再構成が必要となった要因が複数存在する場合にも対応可能となる。すなわち、ACCNルータ決定部12は、これら複数の要因の双方を解決することのできるACCNルータを、新しいVCCNルータの生成先及び移動先のACCNルータに選定する。これにより、ACCNルータ10に問題が複数存在する場合にも、ネットワークの適切な再構築が可能となる。
次に、ACCNルータ決定部12に関し、再構成が必要な場合、ACCNルータ決定部12は、リソース状態を示す情報を提供したACCNルータ20、30、40の内、例えば、リソース状態を表す値が最も低いACCNルータを、制御を行うACCNルータとして選択する。リソース状態を表す値は、例えば、ペンディング要求テーブルの使用容量、プロセッサやメモリ、ディスクの使用率であるが、所定時間における使用容量や使用率の増加率であってもよい。この場合、使用容量や使用率の減少率が最も高いACCNルータが、制御主体として選択されることとなる。また、ACCNルータ決定部12は、使用容量や使用率の大小に拘らず、ACCNルータ20、30、40の内、プロセッサの処理速度が最も高いACCNルータを選択してもよい。あるいは、ACCNルータ決定部12は、空き容量に拘らず、ペンディング要求テーブルやメモリ、ディスクの収容容量が最も大きいACCNルータを選択するものとしてもよい。
ACCNルータ決定部12は、制御(問題解決)を行うACCNルータの決定に際し、例えば、制御要求を行うACCNルータ10の有する問題を解決するACCNルータを選択するが、VCCN1aの性能を最大化する観点から最も好適なACCNルータを選択する様にしてもよい。これにより、VCCN再構成システム100は、VCCN1aの再構成が必要となった要因を除去することができると共に、VCCN1aのパフォーマンスを考慮に入れたネットワークの再構成が可能となる。なお、該パフォーマンスは、エンドユーザ視点でのパフォーマンスであってもよいし、ネットワーク管理者視点でのパフォーマンスであってもよい。また、ACCNルータ決定部12は、問題を解決するACCNルータを決定する際、事前に管理者によって設定されたRTT(Round Trip Time)を超過して応答パケットを返信したACCNルータを、問題解決ルータの選択候補から除外するものとしてもよい。換言すれば、VCCN再構成システム100は、探索用パケットへの応答が遅いACCNルータを、再構成が必要となった要因を除外するのに適さないACCNルータと見做すことで、VCCN1a全体のパフォーマンスを勘案した再構成を実現する。併せて、ACCNルータの決定に伴う、ACCNルータ10の処理負荷が軽減され、処理時間が短縮される。その結果、より効率的なVCCNの再構成が実現される。
(ネットワーク構成プログラム)
図10は、ネットワーク構成プログラムによる情報処理がコンピュータ200を用いて具体的に実現されることを示す図である。図10に例示する様に、コンピュータ200は、例えば、メモリ201と、CPU202と、ハードディスクドライブインタフェース203と、ディスクドライブインタフェース204と、シリアルポートインタフェース205と、ビデオアダプタ206と、ネットワークインタフェース207とを有し、これらの各部はバスBによって接続される。
メモリ201は、図10に例示する様に、ROM(Read Only Memory)201a及びRAM(Random Access Memory)201bを含む。ROM201aは、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース203は、図10に例示する様に、ハードディスクドライブ208に接続される。ディスクドライブインタフェース204は、図10に例示する様に、ディスクドライブ209に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ209に挿入される。シリアルポートインタフェース205は、図10に例示する様に、例えばマウス210、キーボード211に接続される。ビデオアダプタ206は、図10に例示する様に、例えばディスプレイ212に接続される。
ここで、図10に例示する様に、ハードディスクドライブ208は、例えば、OS(Operating System)208a、アプリケーションプログラム208b、プログラムモジュール208c、プログラムデータ208dを記憶する。すなわち、開示の実施形態に係るネットワーク構成プログラムは、コンピュータ200によって実行される指令が記述されたプログラムモジュール208cとして、例えばハードディスクドライブ208に記憶される。具体的には、上記実施形態で説明した再構成要否判定部11、21、31、41と、ACCNルータ決定部12、22、32、42と、VCCN再構成部13、23、33、43との各々と同様の情報処理を実行する各種手順が記述されたプログラムモジュール208cが、ハードディスクドライブ208に記憶される。また、ネットワーク構成プログラムによる情報処理に用いられるデータは、プログラムデータ208dとして、例えばハードディスクドライブ208に記憶される。そして、CPU202が、ハードディスクドライブ208に記憶されたプログラムモジュール208cやプログラムデータ208dを必要に応じてRAM201bに読み出し、上記各種手順を実行する。
なお、ネットワーク構成プログラムに係るプログラムモジュール208cやプログラムデータ208dは、ハードディスクドライブ208に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ209等を介してCPU202によって読み出されてもよい。あるいは、ネットワーク構成プログラムに係るプログラムモジュール208cやプログラムデータ208dは、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶され、ネットワークインタフェース207を介してCPU202によって読み出されてもよい。
なお、上記実施形態では、VCCNを再構成するための制御として、VCCNルータ及びVCCNリンクの生成、削除、移動を例示したが、制御の種類は、これらに限らず、VCCNルータの分割や統合、あるいは、複製、名称変更等であってもよい。例えば、図4に示したVCCNルータ10aとVCCNルータ20aとを、ACCNルータ20上に統合する場合について説明する。ACCNルータ10のACCNルータ決定部12は、隣接するACCNルータ20、30、40から、VCCN識別子及び各ACCNルータのリソース状態を検知すると、VCCNルータを動作させており、かつ、リソースに余裕のあるACCNルータを、統合の主体として選択する。リソースの状態は、例えば、ペンディング要求テーブルの使用容量、プロセッサ使用率、あるいは、メモリ、ハードディスク等の使用容量である。
例えば、ACCNルータ20が統合を実行するルータに選定された場合、ACCNルータ10は、上述のVCCNルータ移動処理(図8参照)と同様に、ACCNルータ20に、VCCNルータ10aのデータテーブルをコピーさせる。データテーブルのコピーが完了すると、ACCNルータ10は、上述したVCCNルータ削除処理(図5参照)と同様の手順で、VCCNルータ10aをACCNルータ10から削除する。このとき、VCCNルータ10aを削除する手法として、VCCNルータ30aとVCCNルータ40aとをリンク接続しない手法を採る。これにより、VCCN1f上で、VCCNルータ10aとVCCNルータ20aとがシームレスに統合される。その結果、VCCN再構成システム100は、図9に示した状態となる。すなわち、処理量の少ない複数台のVCCNルータ10a、20aの処理が、1台のVCCNルータ20aに集約される。その結果、ネットワーク資源が節約される。
また、上記実施形態では、各ACCNルータ10、20、30、40間をパケットが送受信されることで、VCCN1aが構成及び変更される態様を例示した。しかしながら、各ACCNルータ10、20、30、40は、制御の要求を、フレームやセグメント等、パケット以外のPDU(Protocol Data Unit)を用いて、実行してもよい。更に、上記実施形態では、制御を指示または実行する通信装置として、ルータを例示したが、通信装置は、これに限らず、例えば、リピータ、ハブ、ブリッジ、ゲートウェイ、スイッチ等であってもよい。また、ルータの種類に関しても、上記実施形態に係るネットワーク構成技術は、コアルータ、センタルータ、エッジルータ、リモートルータ、ブロードバンドルータ等、任意のルータに適用可能である。
また、ACCNルータ10、20、30、40の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的態様は、図示のものに限らず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することもできる。例えば、再構成要否判定部11とACCNルータ決定部12、あるいは、VCCNルータ生成部131とVCCNルータ削除部132とVCCNルータ移動部133とをそれぞれ1つの構成要素として統合してもよい。反対に、ACCNルータ決定部12に関し、他のACCNルータ20、30、40からリソース使用状況を示す情報を収集する部分と、収集された情報を基に、制御主体となるACCNルータを決定する部分とに分散してもよい。また、VCCN再構成部23に関し、CCNの要求・応答パケットにより、VCCNの再構成に必要な情報を他のACCNルータ10、30、40との間で交換する部分と、実際にVCCNルータ20aの制御を行う部分とに分けてもよい。更に、ハードディスクドライブ208を、各ACCNルータ10、20、30、40の外部装置としてネットワークやケーブル経由で接続する様にしてもよい。