(57)【特許請求の範囲】
【請求項１】
複数のルータ間におけるデータフローのパスを構成するＶＰＮにより形成されるトポロジを制御するＶＰＮトポロジ制御装置であって、
前記トポロジを形成するＶＰＮを示すＶＰＮデータベースを記憶する記憶手段と、
前記トポロジを形成するＶＰＮにおけるデータフローの通信状況を監視する監視手段と、
前記複数のルータのうちデータフローの送信元および受信先を示すルータと、当該データフローの送信を開始するまでの待機可能時間とを示す生成要求情報を受信する受信手段と、
前記監視手段が監視する通信状況に基づいて、前記受信手段が受信した生成要求情報が示す待機可能時間内に、データフローが終了するＶＰＮを切断予約ＶＰＮとして決定する決定手段と、
前記ＶＰＮデータベースが示すＶＰＮと、前記決定手段が決定した切断予約ＶＰＮとに基づき、前記受信手段が受信した生成要求情報が示す２つのルータ間にＶＰＮを用いたパスと、当該パスを形成可能なトポロジとを、所定のアルゴリズムを用いて算出する算出手段と、
前記算出手段によって算出したトポロジを形成するように、前記複数のルータに対してＶＰＮの設定を行う設定手段と
を具備することを特徴とするＶＰＮトポロジ制御装置。
【請求項２】
前記監視手段が監視する通信状況から、データフローが終了したＶＰＮを切断する切断手段をさらに具備する
ことを特徴とする請求項１に記載のＶＰＮトポロジ制御装置。
【請求項３】
前記設定手段は、前記切断予約ＶＰＮのうち、前記算出手段によって算出したトポロジに含まれないＶＰＮが前記切断手段によって切断された以後に、前記算出手段によって算出したトポロジを形成するように、前記複数のルータに対してＶＰＮの設定を行う
ことを特徴とする請求項２に記載のＶＰＮトポロジ制御装置。
【請求項４】
前記設定手段は、前記切断予約ＶＰＮが前記切断手段によって全て切断された以後に、前記算出手段によって算出したトポロジを形成するように、前記複数のルータに対してＶＰＮの設定を行う
ことを特徴とする請求項２に記載のＶＰＮトポロジ制御装置。
【請求項５】
前記受信手段が受信する生成要求情報は、データフローのデータ総量を示す情報を含み、
前記決定手段は、前記監視手段が監視する通信状況と、前記受信手段が受信した生成要求情報が示すデータ総量とに基づいて、前記受信手段が受信した生成要求情報が示す待機可能時間内に、データフローが終了するＶＰＮを切断予約ＶＰＮとして決定する
ことを特徴とする請求項１乃至請求項４のいずれかに記載のＶＰＮトポロジ制御装置。
【請求項６】
前記決定手段は、前記算出手段が算出したパス上の各ルータに接続されたＶＰＮのうち、前記監視手段が監視する通信状況に基づいて、前記受信手段が受信した生成要求情報が示す待機可能時間内に、データフローが終了するＶＰＮを切断予約ＶＰＮとして決定する
ことを特徴とする請求項１乃至請求項５のいずれかに記載のＶＰＮトポロジ制御装置。
【請求項７】
前記設定手段による設定が終了した後に、前記生成要求情報の送信元に対して、前記２つのルータ間にデータフローのパスが生成されたことを示す生成応答情報を送信する送信手段をさらに具備する
ことを特徴とする請求項１乃至請求項６のいずれかに記載のＶＰＮトポロジ制御装置。
【請求項８】
各々の間でＶＰＮを形成できる複数のルータと、
前記ルータに接続される通信端末と、
請求項７に記載のＶＰＮトポロジ制御装置と
を具備し、
前記受信手段が受信する生成要求情報は、前記通信端末から送信され、当該生成要求情報が示す送信元のルータは、当該通信端末が接続されたルータを示し、
当該通信端末は、前記送信手段から送信される生成応答情報を受信した後に、データフローを送信し、
前記複数のルータは、当該通信端末が送信したデータフローが、当該生成要求情報が示す受信先のルータに接続された通信端末によって受信されるまでの経路のうち、当該送信元のルータと当該受信先のルータとの間の経路が、前記算出手段が算出したパスになるように制御する
ことを特徴とするＶＰＮトポロジ制御システム。
【請求項９】
複数のルータ間におけるデータフローのパスを構成するＶＰＮにより形成されるトポロジを制御するＶＰＮトポロジ制御方法であって、
前記トポロジを形成するＶＰＮを示すＶＰＮデータベースを記憶する記憶過程と、
前記トポロジを形成するＶＰＮにおけるデータフローの通信状況を監視する監視過程と、
前記複数のルータのうちデータフローの送信元および受信先を示すルータと、当該データフローの送信を開始するまでの待機可能時間とを示す生成要求情報を受信する受信過程と、
前記監視過程において監視する通信状況に基づいて、前記受信過程において受信した生成要求情報が示す待機可能時間内に、データフローが終了するＶＰＮを切断予約ＶＰＮとして決定する決定過程と、
前記ＶＰＮデータベースが示すＶＰＮと、前記決定過程において決定した切断予約ＶＰＮとに基づき、前記受信過程において受信した生成要求情報が示す２つのルータ間にＶＰＮを用いたパスと、当該パスを形成可能なトポロジとを、所定のアルゴリズムを用いて算出する算出過程と、
前記算出過程によって算出したトポロジを形成するように、前記複数のルータに対してＶＰＮの設定を行う設定過程と
を備えることを特徴とするＶＰＮトポロジ制御方法。
【請求項１０】
複数のルータ間におけるデータフローのパスを構成するＶＰＮにより形成されるトポロジを制御するコンピュータに、
前記トポロジを形成するＶＰＮを示すＶＰＮデータベースを記憶する記憶機能と、
前記トポロジを形成するＶＰＮにおけるデータフローの通信状況を監視する監視機能と、
前記複数のルータのうちデータフローの送信元および受信先を示すルータと、当該データフローの送信を開始するまでの待機可能時間とを示す生成要求情報を受信する受信機能と、
前記監視機能において監視する通信状況に基づいて、前記受信機能において受信した生成要求情報が示す待機可能時間内に、データフローが終了するＶＰＮを切断予約ＶＰＮとして決定する決定機能と、
前記ＶＰＮデータベースが示すＶＰＮと、前記決定機能において決定した切断予約ＶＰＮとに基づき、前記受信機能において受信した生成要求情報が示す２つのルータ間にＶＰＮを用いたパスと、当該パスを形成可能なトポロジとを、所定のアルゴリズムを用いて算出する算出機能と、
前記算出機能によって算出したトポロジを形成するように、前記複数のルータに対してＶＰＮの設定を行う設定機能と
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のルータを制御することによって通信状況に応じたＶＰＮのトポロジを形成する技術に関する。
【背景技術】
【０００２】
企業ネットワークにおいては、複数の拠点に点在するＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）をネットワーク接続する際に、セキュリティの関係からＶＰＮ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）で接続することが多い。ＶＰＮによって形成される様々なトポロジのうち、全て拠点間を相互に接続するフルメッシュ型のトポロジは遅延を最小化できるという意味で理想的であるが、各拠点に設けられるルータには処理能力の制限があり、ルータが同時に接続できるＶＰＮの数には限界がある。
【０００３】
そのため、フルメッシュ型のトポロジをとることが難しく、例えば、本社を中心として各支社を接続するスター型のトポロジを採用したり、ＶｏＩＰ（Ｖｏｉｃｅ  ｏｖｅｒ  Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）のようなリアルタイム性の強いアプリケーションを利用するために、支社間をＶＰＮで接続したりするケースもある。また、社内教育のような用途で用いる場合には、マルチキャストのストリーミングを行うこともあり、各拠点を階層的に接続するようなツリー型のトポロジを採用することもある。
【０００４】
このように、ＶＰＮによって形成される最適なトポロジは、使用するアプリケーションによって決まるものであるから、アプリケーションに応じてＶＰＮのトポロジを動的に変化させることが望ましい。このため、ＶＰＮを自動設定する技術が、例えば非特許文献１などに開示されている。
【非特許文献１】http://www.cisco.com/univercd/cc/td/doc/product/software/ios122/122newft/122t/122t13/ftgreips.htm
【発明の開示】
【発明が解決しようとする課題】
【０００５】
非特許文献１に開示された技術においては、予め設定されたトポロジに従って、自動設定するものである。そのため、事前にデータフローを予測してトポロジを設計しておく必要があるが、データフローの予測は難しく、最適なトポロジを設計することは難しかった。また、アプリケーションの変化に伴って、データフローが大きく変わるネットワークにおいては、固定的なトポロジでは帯域や遅延などの点でパフォーマンスが抑制されることがあった。
【０００６】
本発明は、上述の事情に鑑みてなされたものであり、各拠点間のデータフローの状況に応じて、各拠点間を接続するＶＰＮにより形成されるトポロジを自動的に変更することができるＶＰＮトポロジ制御装置、ＶＰＮトポロジ制御システム、ＶＰＮトポロジ制御方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述の課題を解決するため、本発明は、複数のルータ間におけるデータフローのパスを構成するＶＰＮにより形成されるトポロジを制御するＶＰＮトポロジ制御装置であって、前記トポロジを形成するＶＰＮを示すＶＰＮデータベースを記憶する記憶手段と、前記トポロジを形成するＶＰＮにおけるデータフローの通信状況を監視する監視手段と、前記複数のルータのうちデータフローの送信元および受信先を示すルータと、当該データフローの送信を開始するまでの待機可能時間とを示す生成要求情報を受信する受信手段と、前記監視手段が監視する通信状況に基づいて、前記受信手段が受信した生成要求情報が示す待機可能時間内に、データフローが終了するＶＰＮを切断予約ＶＰＮとして決定する決定手段と、前記ＶＰＮデータベースが示すＶＰＮと、前記決定手段が決定した切断予約ＶＰＮとに基づき、前記受信手段が受信した生成要求情報が示す２つのルータ間にＶＰＮを用いたパスと、当該パスを形成可能なトポロジとを、所定のアルゴリズムを用いて算出する算出手段と、前記算出手段によって算出したトポロジを形成するように、前記複数のルータに対してＶＰＮの設定を行う設定手段とを具備することを特徴とするＶＰＮトポロジ制御装置を提供する。
【０００８】
また、別の好ましい態様において、前記監視手段が監視する通信状況から、データフローが終了したＶＰＮを切断する切断手段をさらに具備してもよい。
【０００９】
また、別の好ましい態様において、前記設定手段は、前記切断予約ＶＰＮのうち、前記算出手段によって算出したトポロジに含まれないＶＰＮが前記切断手段によって切断された以後に、前記算出手段によって算出したトポロジを形成するように、前記複数のルータに対してＶＰＮの設定を行ってもよい。
【００１０】
また、別の好ましい態様において、前記設定手段は、前記切断予約ＶＰＮが前記切断手段によって全て切断された以後に、前記算出手段によって算出したトポロジを形成するように、前記複数のルータに対してＶＰＮの設定を行ってもよい。
【００１１】
また、別の好ましい態様において、前記受信手段が受信する生成要求情報は、データフローのデータ総量を示す情報を含み、前記決定手段は、前記監視手段が監視する通信状況と、前記受信手段が受信した生成要求情報が示すデータ総量とに基づいて、前記受信手段が受信した生成要求情報が示す待機可能時間内に、データフローが終了するＶＰＮを切断予約ＶＰＮとして決定してもよい。
【００１２】
また、別の好ましい態様において、前記決定手段は、前記算出手段が算出したパス上の各ルータに接続されたＶＰＮのうち、前記監視手段が監視する通信状況に基づいて、前記受信手段が受信した生成要求情報が示す待機可能時間内に、データフローが終了するＶＰＮを切断予約ＶＰＮとして決定してもよい。
【００１３】
また、別の好ましい態様において、前記設定手段による設定が終了した後に、前記生成要求情報の送信元に対して、前記２つのルータ間にデータフローのパスが生成されたことを示す生成応答情報を送信する送信手段をさらに具備してもよい。
【００１４】
また、本発明は、各々の間でＶＰＮを形成できる複数のルータと、前記ルータに接続される通信端末と、上記に記載のＶＰＮトポロジ制御装置とを具備し、前記受信手段が受信する生成要求情報は、前記通信端末から送信され、当該生成要求情報が示す送信元のルータは、当該通信端末が接続されたルータを示し、当該通信端末は、前記送信手段から送信される生成応答情報を受信した後に、データフローを送信し、前記複数のルータは、当該通信端末が送信したデータフローが、当該生成要求情報が示す受信先のルータに接続された通信端末によって受信されるまでの経路のうち、当該送信元のルータと当該受信先のルータとの間の経路が、前記算出手段が算出したパスになるように制御することを特徴とするＶＰＮトポロジ制御システムを提供する。
【００１５】
また、本発明は、複数のルータ間におけるデータフローのパスを構成するＶＰＮにより形成されるトポロジを制御するＶＰＮトポロジ制御方法であって、前記トポロジを形成するＶＰＮを示すＶＰＮデータベースを記憶する記憶過程と、前記トポロジを形成するＶＰＮにおけるデータフローの通信状況を監視する監視過程と、前記複数のルータのうちデータフローの送信元および受信先を示すルータと、当該データフローの送信を開始するまでの待機可能時間とを示す生成要求情報を受信する受信過程と、前記監視過程において監視する通信状況に基づいて、前記受信過程において受信した生成要求情報が示す待機可能時間内に、データフローが終了するＶＰＮを切断予約ＶＰＮとして決定する決定過程と、前記ＶＰＮデータベースが示すＶＰＮと、前記決定過程において決定した切断予約ＶＰＮとに基づき、前記受信過程において受信した生成要求情報が示す２つのルータ間にＶＰＮを用いたパスと、当該パスを形成可能なトポロジとを、所定のアルゴリズムを用いて算出する算出過程と、前記算出過程によって算出したトポロジを形成するように、前記複数のルータに対してＶＰＮの設定を行う設定過程とを備えることを特徴とするＶＰＮトポロジ制御方法を提供する。
【００１６】
また、本発明は、複数のルータ間におけるデータフローのパスを構成するＶＰＮにより形成されるトポロジを制御するコンピュータに、前記トポロジを形成するＶＰＮを示すＶＰＮデータベースを記憶する記憶機能と、前記トポロジを形成するＶＰＮにおけるデータフローの通信状況を監視する監視機能と、前記複数のルータのうちデータフローの送信元および受信先を示すルータと、当該データフローの送信を開始するまでの待機可能時間とを示す生成要求情報を受信する受信機能と、前記監視機能において監視する通信状況に基づいて、前記受信機能において受信した生成要求情報が示す待機可能時間内に、データフローが終了するＶＰＮを切断予約ＶＰＮとして決定する決定機能と、前記ＶＰＮデータベースが示すＶＰＮと、前記決定機能において決定した切断予約ＶＰＮとに基づき、前記受信機能において受信した生成要求情報が示す２つのルータ間にＶＰＮを用いたパスと、当該パスを形成可能なトポロジとを、所定のアルゴリズムを用いて算出する算出機能と、前記算出機能によって算出したトポロジを形成するように、前記複数のルータに対してＶＰＮの設定を行う設定機能とを実現させるためのプログラムを提供する。
【発明の効果】
【００１７】
本発明によれば、各拠点間のデータフローの状況に応じて、各拠点間を接続するＶＰＮにより形成されるトポロジを自動的に変更することができるＶＰＮトポロジ制御装置、ＶＰＮトポロジ制御システム、ＶＰＮトポロジ制御方法およびプログラムを提供することができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の一実施形態について説明する。
【００１９】
＜実施形態＞
本発明の実施形態に係るＶＰＮトポロジ制御装置１は、図１に示すようにネットワーク１００を介して、各拠点のルータ２−Ｒ１、２−Ｒ２、・・・、２−Ｒ６（以下、特に各拠点のルータを区別しない場合には、ルータ２という）と各情報の送受信を行う。各ルータ２−Ｒ１、２−Ｒ２、・・・、２−Ｒ６は、それぞれ複数の通信端末３と接続することにより、各拠点においてＬＡＮを構成している。そして、各ルータは、ＶＰＮトポロジ制御装置１の制御に基づいて、他のルータとＶＰＮによる接続を行うことができ、本実施形態においては、１台のルータは、最大３台のルータとＶＰＮによる接続を行うことができる。以下、ＶＰＮトポロジ制御装置１の構成について、次にルータ２の構成について説明する。
【００２０】
ＶＰＮトポロジ制御装置１の構成について、図２を用いて説明する。ＶＰＮトポロジ制御装置１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などを有する制御部と、ネットワーク１００を介して、各拠点のルータ２と各情報の送受信を行う通信部１１とを具備している。そして、ＣＰＵは、ＲＯＭに記憶されているプログラムを読み出して、ＲＡＭにロードして実行することにより、ＶＰＮトポロジ制御装置１の機能を実現する。
【００２１】
ＶＰＮトポロジ制御装置１のＣＰＵがプログラムを実行することにより実現する機能について、以下、詳細に説明する
【００２２】
ＶＰＮデータベース１２は、各ルータ２の間を接続しているＶＰＮにより形成されるトポロジを示す情報を有し、具体的には、図３（ａ）に示すように、各ルータ２の間を接続しているＶＰＮと、当該ＶＰＮを通過するデータフローとを示すとともに、各ＶＰＮについて切断予約フラグが立っているか否かを示すデータベースである。例えば、ＶＰＮ識別番号「１」は、ルータ２−Ｒ１とルータ２−Ｒ２を接続するＶＰＮを示し、このＶＰＮには、４つのデータフロー（フロー番号：１、２、１０、１１）が通過している。フロー番号は、後述するフローデータベース１３のフロー番号に対応し、各々のデータフローを特定している。また、ＶＰＮ識別番号「２」には切断予約フラグが立っているが、切断予約フラグは、新たにデータフローが発生した場合においても、このＶＰＮを通過させることを禁止し、既に通過中のデータフローが終了した後にＶＰＮを切断して消滅させる予定であることを示すフラグである。
【００２３】
フローデータベース１３は、全てのＶＰＮを通過するデータフローを示す情報を有し、具体的には、図３（ｂ）に示すように、ＶＰＮデータベース１２で用いられるフロー番号に対応して、データフローのフロー識別子、データフローの総データ量、待機可能時間を示すデータベースである。フロー識別子は、始点ＩＰアドレス、終点ＩＰアドレス、プロトコル、始点ポート番号、終点ポート番号を示す。待機可能時間は、データフローの送信の要求を行ってからデータフローの送信を開始するまでに待機可能な時間を示している。例えば、フロー番号「１」は、フロー識別子が始点ＩＰアドレス１９２．１６８．０．２、終点ＩＰアドレス１９２．１６８．１．２、プロトコルＴＣＰ、始点ポート番号５０２０、終点ポート番号２１、総データ量が２８５６４９６バイト、待機可能時間が２０秒であることを示している。
【００２４】
ＶＰＮトポロジ算出部１４は、新たなデータフローの送信のためにＶＰＮの生成を要求する通信端末３からルータ２を介して送信され、通信部１１が受信した生成要求情報が入力される。生成要求情報は、フローデータベース１３が有する情報と同様に、データフローのフロー識別子、データフローの総データ量、待機可能時間を示している。フロー識別子により、データフロー送信元の通信端末３（以下、送信端末３−Ａという）が接続された送信元のルータ２と、データフロー受信先の通信端末３（以下、受信端末３−Ｂという）が接続された受信先のルータ２とが特定される。また、ＶＰＮトポロジ算出部１４は、各ルータ２から送信され、通信部１１が受信したフロー情報が入力される。フロー情報については、後述する。
【００２５】
ＶＰＮトポロジ算出部１４は、生成要求情報が入力されると、当該生成要求情報と、ＶＰＮデータベース１２の内容と、フローデータベース１３の内容と、入力されたフロー情報とに基づき、送信元のルータと受信先のルータとの間にＶＰＮを用いたパスと、当該パスを形成可能なトポロジとを、所定のアルゴリズムを用いて算出する。所定のアルゴリズムについては、データフローが終了しているＶＰＮを切断して消滅させ、所定時間内にデータフローが終了する予定のＶＰＮを切断して消滅させる予定として記憶し、これらのＶＰＮが存在しないとした前提としたトポロジに基づいて、最適なパスを形成できるトポロジを算出するものであるが、その詳細については一例を後述する。
【００２６】
ルータ設定部１５は、通信部１１を介して、各ルータ２の各々に対して、ＶＰＮトポロジ算出部１４において算出された結果（トポロジ、パス）に基づいて生成した設定要求情報を送信する。各ルータ２の各々に送信される設定要求情報は、設定要求情報が送信されたルータ２と他のルータ２との間にＶＰＮの接続を指示する情報を有する。後述するように、各ルータ２は、設定要求情報に基づいて他のルータ２との間にＶＰＮの接続を行うことにより、ＶＰＮトポロジ算出部１４において算出されたトポロジになるように、ＶＰＮが形成される。
【００２７】
また、設定要求情報は、当該設定要求情報を受信するルータ２を通過するデータフローを示す情報（フロー識別子、総データ量）を有すると共に、設定要求情報が送信されたルータ２がデータフローの受信先のルータではない場合には、当該データフローを転送する他のＶＰＮの接続先となるルータ２を示す情報を有する。これにより、各ルータ２は、データフローのパスを認識することができ、各ルータ２が設定要求情報に従ってデータフローを転送すると、ＶＰＮトポロジ算出部１４において算出されたパスになるように、データフローが通過していくことになる。
【００２８】
データベース更新部１６は、各ルータ２から送信され、通信部１１が受信した設定応答情報が入力され、当該設定応答情報に基づいて、ＶＰＮデータベース１２およびフローデータベース１３の内容を更新する。設定応答情報については後述するが、各ルータ２おいて、設定要求情報に基づいてＶＰＮの接続が問題なく行われた場合には、ＶＰＮトポロジ算出部１４において算出したトポロジを示すようにＶＰＮデータベース１２が更新され、新たなデータフローが加わるようにフローデータベース１３が更新されるようになっている。
【００２９】
ＶＰＮ生成応答部１７は、通信部１１が受信した設定応答情報が入力され、各ルータ２において、設定要求情報に基づく設定が問題なく行われたか否かを示す生成応答情報を、通信部１１を介して送信端末３−Ａに対して送信する。なお、ＶＰＮ生成応答部１７は、ＶＰＮトポロジ算出部１４において算出したトポロジおよびパスと、ＶＰＮデータベース１２およびフローデータベース１３とが示すトポロジおよびパスとを比較し、それぞれが一致した場合には、生成応答情報を送信するようにしてもよい。
【００３０】
次に、各ルータ２の構成について、図４を用いて説明する。ルータ２は、ＣＰＵ、ＲＯＭ、ＲＡＭなどを有する制御部と、ネットワーク１００を介して、他のルータおよびＶＰＮトポロジ制御装置１と各情報の送受信を行うルータ通信部２１とを具備している。そして、ＣＰＵは、ＲＯＭに記憶されているプログラムを読み出して、ＲＡＭにロードして実行することにより、ルータ２の機能を実現する。
【００３１】
ルータ２のＣＰＵがプログラムを実行することにより実現する機能について、以下、詳細に説明する。
【００３２】
タイマ２２は、時刻の進行を測定する計時手段であって、所定の時刻を基準として経過した時間を算出することができる機能を有する。
【００３３】
通過データ検出部２３は、ルータ通信部２１において送受信するデータのデータ量（以下、通過データ量という）をデータフローごとに検出し、データフローと通過データ量を対応付けた情報をフローキャッシュ２４に出力する。
【００３４】
フローキャッシュ２４は、ルータ通信部２１において送受信するデータフローを示すキャッシュであって、図３（ｃ）に示すように、フローデータベース１３の説明で述べたようなフロー識別子、総データ量、通過データ検出部２３から入力された情報が示す通過データ量、データフローの送信が開始されてからの経過時間、データフローの送信が終了するまでに必要な時間（以下、終了予定時間という）を示すキャッシュである。経過時間は、通過データ量が増加し始めた時刻を基準として経過した時間をタイマ２２によって計時したものである。終了予定時間は、総データ量、通過データ量および経過時間に基づいて算出される。このように、フローキャッシュ２４が示す通過データ量、経過時間、終了予定時間については、随時更新されていく情報である。ここで、フロー識別番号は、ルータ２を通過するデータフローを区別するために設けられた番号であり、各ルータ２でそれぞれ独自に設けられるものである。なお、このフロー識別番号は、ＶＰＮトポロジ制御装置１で用いられるフロー番号と対応させた番号として設けるようにしてもよい。この場合は、ＶＰＮトポロジ制御装置１のルータ設定部がルータ２に送信する設定要求情報に含まれるデータフローを示す情報について、フロー識別子、総データ量のほか、フローデータベース１３に登録されたフロー番号も示すようにすればよい。
【００３５】
ＶＰＮ設定部２５は、ＶＰＮトポロジ制御装置１から送信され、ルータ通信部２１が受信した設定要求情報が入力され、ルータ通信部２１に対して、当該設定要求情報が示す他のルータ２と接続することによりＶＰＮを形成させるとともに、データフローごとに受信したデータフローの転送先となるルータ２または受信端末３−Ｂを設定する。これは、例えば、ルーティングテーブルなどを更新することによって行われる。また、ＶＰＮ設定部２５は、当該設定要求情報におけるデータフローを示す情報をフローキャッシュに登録する。そして、ＶＰＮ設定部２５は、上述した設定、登録が完了すると、ルータ通信部２１を介して、当該設定、登録の内容を示す設定応答情報をＶＰＮトポロジ制御装置１に対して送信する。
【００３６】
フロー情報生成部２６は、フローキャッシュ２４の終了予定時間を読み出し、各データフローの終了予定時間を示すフロー情報を生成して、ルータ通信部２１を介して、当該フロー情報をＶＰＮトポロジ制御装置１に対して送信する。フロー情報の送信は、定期的に行なってもよいし、ＶＰＮトポロジ制御装置１からの要求に応じて送信してもよい。ＶＰＮトポロジ制御装置１からの要求は、例えば、ＶＰＮトポロジ算出部１４が所定のアルゴリズムを用いた算出を行う際に行われるようにすればよい。以上がＶＰＮトポロジ制御装置１およびルータ２の構成について説明である。
【００３７】
次に、ＶＰＮトポロジ制御装置１、各ルータ２、送信端末３−Ａおよび受信端末３−Ｂにおける各情報の送受信の流れについて、図５を用いて説明する。
【００３８】
まず、送信端末３−Ａは、受信端末３−Ｂに対してデータフローの送信を行う要求が発生した場合には、ＶＰＮトポロジ制御装置１に対して、生成要求情報を送信する。
【００３９】
ＶＰＮトポロジ制御装置１は、生成要求情報を受けて、所定のアルゴリズムを用いて算出したトポロジを形成するように、各ルータ２に対して設定要求情報を送信する。各ルータ２は、設定要求情報に基づいて、ＶＰＮの接続設定、データフローの登録を行い、当該設定、登録の状況を示す設定応答情報をＶＰＮトポロジ制御装置１に送信する。
【００４０】
その後、ＶＰＮトポロジ制御装置１は、全てのルータから受信した設定応答情報が、ＶＰＮの接続設定、データフローの登録が成功したことを示しているか否かを示す生成応答情報を、送信端末３−Ａに対して送信する。送信端末３−Ａは、生成応答情報が成功したことを示している場合には、受信端末３−Ｂまでのパスが形成されたと判断し、データフローの送信を開始する。データフローは、ＶＰＮによるパス上の各ルータ２を経由し、送信端末３−Ａから受信端末３−Ｂへ送信される。
【００４１】
次に、ＶＰＮトポロジ制御装置１のＶＰＮトポロジ算出部１４における所定のアルゴリズムの一例について、図６、７、８のフローチャートを用いて説明する。
【００４２】
ＶＰＮトポロジ算出部１４は、生成要求情報が入力されると、送信端末３−Ａを有するルータ２すなわち送信元のルータ２をルータＳとし、受信端末３−Ｂを有するルータ２すなわち受信先のルータ２をルータＤとして定義する。また、アルゴリズムにおける基準となるルータ２をルータＰとして定義し、最初の基準としてＰ＝Ｓとする（図６ステップＳ１００）。このルータＰが示すルータＳは、以下に説明する処理を続けることにより、他のルータ２に変更されていく場合があり、その場合には、ルータＰが示したルータ２を順にたどった経路および最後にルータＰが示すルータ２からルータＤに到る経路が、ルータＳからルータＤへのデータフローのパスとなる。ここで、ルータＰが示すルータ２が他のルータ２に変更されるときには、過去に示したルータ２を再度示すことはなく、すなわち、データフローのパスにおいて２度同じルータ２を通ることがない。このような前提として、ＶＰＮトポロジ算出部１４が、生成要求情報、ＶＰＮデータベース１２、フローデータベース１３、フロー情報を参照して行う処理について説明を行う。
【００４３】
ＶＰＮトポロジ算出部１４は、ＶＰＮデータベース１２を参照し、ルータＰからルータＤまでのパスが存在するかを判断する（図６ステップＳ１０１）。当該パスが存在しないと判断した場合（図６ステップＳ１０１；Ｎｏ）には、後述する図６ステップＳ１１１〜ステップＳ１１４の処理を行って、ルータＰからルータＤへ直接ＶＰＮによる接続が可能かを判断する。
【００４４】
一方、当該パスが存在すると判断した場合（図６ステップＳ１０１；Ｙｅｓ）には、ルータＰからルータＤまでのパスのうち切断予約フラグが立っていないＶＰＮだけで構成されるパスが存在するかを判断する（図６ステップＳ１０２）。当該パスが存在すると判断した場合（図６ステップＳ１０２；Ｙｅｓ）は、後述する図７ステップＳ２０１に進む。この場合には、そのパスをそのままルータＰからのルータＤまでのパスとして利用することになる。
【００４５】
一方、図６ステップＳ１０２における判断において、切断予約フラグが立っていないＶＰＮだけで構成されるパスが存在しないと判断した場合（図６ステップＳ１０２；Ｎｏ）、には、現在用いられるＶＰＮを利用する前提として、後述する図８ステップＳ３０１へ進む。
【００４６】
図６ステップＳ１０１において、パスが存在しないと判断した場合（図６ステップＳ１０１；Ｎｏ）には、ＶＰＮトポロジ算出部１４は、ルータＰに接続されているＶＰＮが存在する場合、そのＶＰＮのうち、生成要求情報が示す新たなデータフローの待機可能時間内に、全てのデータフローが終了するＶＰＮがあるかをフロー情報が示す各データフローの終了予定時間から判断する（図６ステップＳ１１１）。全てのデータフローが終了するＶＰＮがあると判断した場合（図６ステップＳ１１１；Ｙｅｓ）は、当該ＶＰＮを記憶し、切断予約フラグを立てる（図６ステップＳ１１２）。
【００４７】
一方、全てのデータフローが終了するＶＰＮがないと判断した場合、またはルータＰに接続されているＶＰＮが存在しないことにより、全てのデータフローが終了するＶＰＮがないと判断した場合（図６ステップＳ１１１；Ｎｏ）は、ルータＰが接続しているＶＰＮの数が、接続可能なＶＰＮ上限数（本実施形態においては３）に達しているかを判断（図６ステップＳ１１３）し、達していると判断した場合（図６ステップＳ１１３；Ｙｅｓ）には、ルータＰとルータＤとを直接ＶＰＮによる接続ができないものとして、後述する図８ステップＳ３０１へ進む。
【００４８】
図６ステップＳ１１２の処理後、または図６ステップＳ１１３において、ＶＰＮ上限数に達していないと判断した場合（図６ステップＳ１１３；Ｎｏ）には、ルータＤが接続しているＶＰＮの数が、接続可能なＶＰＮの上限数（本実施形態においては３）に達しているかを判断（図６ステップＳ１１４）し、達していると判断した場合（図６ステップＳ１１４；Ｙｅｓ）には、ルータＰとルータＤとを直接ＶＰＮによる接続ができないものとして、後述する図８ステップＳ３０１へ進む。
【００４９】
図６ステップＳ１１４において、ＶＰＮ上限数に達していないと判断した場合（図６ステップＳ１１４；Ｎｏ）には、ルータＰとルータＤとを直接ＶＰＮによる接続できる、または図６ステップＳ１１２で記憶したＶＰＮを切断すれば、ルータＰとルータＤとを直接ＶＰＮによる接続できるものとして、ルータＰとルータＤとを接続するＶＰＮの生成を予約（図６ステップＳ１１５）して、図７ステップＳ２０１へ進む。
【００５０】
図７の説明に進む。ＶＰＮトポロジ算出部１４は、図６ステップＳ１１５、または後述する図８ステップＳ３０８、図８ステップＳ３０９において生成を予約したＶＰＮが存在するかを判断する（図７ステップＳ２０１）。生成を予約したＶＰＮが存在する場合（図７ステップＳ２０１；Ｙｅｓ）には、ＶＰＮトポロジ算出部１４は、図６ステップＳ１１２、および後述する図８ステップＳ３０５において記憶したＶＰＮを切断して消滅したものとするとともに、図６ステップＳ１１５、または後述する図８ステップＳ３０８、図８ステップＳ３０９において生成を予約したＶＰＮを形成したものとするトポロジを新たなトポロジとして算出するとともに、ルータＰの移動経路および最後のルータＰからルータＤに到る経路を、新たなデータフローのパスとして算出する（図７ステップＳ２０２）。そして、図６ステップＳ１１２、および後述する図８ステップＳ３０４において記憶した全てのＶＰＮにおけるデータフローが終了するまで待機（図７ステップＳ２０３）し、ＶＰＮトポロジ算出部１４は、ルータ設定部１５を制御して、算出結果に基づく設定要求情報を送信させる（図７ステップＳ２０５）。
【００５１】
一方、生成を予約したＶＰＮが存在しない場合（図７ステップＳ２０１；Ｎｏ）には、新たにＶＰＮが生成されることがないから、トポロジは変更されない。したがって、ＶＰＮトポロジ算出部１４は、新たなトポロジを算出することなく、ルータＰの移動経路および最後のルータＰからルータＤに到る経路を新たなデータフローのパスとして算出する（図７ステップＳ２０４）。そして、ＶＰＮトポロジ算出部１４は、ルータ設定部１５を制御して、算出結果に基づく設定要求情報を送信させる（図７ステップＳ２０５）。これにより設定要求情報を受信したルータ２は、設定要求情報に基づいてデータフローの登録を行うとともに、ルーティングテーブルなどを更新して、受信するデータフローの転送先を設定する。ここで、図７ステップＳ２０４の処理を経て、図７ステップＳ２０５における設定要求情報の送信を行った場合には、トポロジが変更されることがなく、パスの算出のみが行われるから、新たなＶＰＮが形成されることはない。
【００５２】
次に、図８の説明に進む。図６ステップＳ１０２における判断において、切断予約フラグが立っていないＶＰＮだけで構成されるパスが存在しないと判断した場合（図６ステップＳ１０２；Ｎｏ）、図６ステップＳ１１３における判断において、ルータＰが接続しているＶＰＮの数が、接続可能なＶＰＮ上限数に達していると判断した場合（図６ステップＳ１１３；Ｙｅｓ）、図６ステップＳ１１４における判断において、ルータＤが接続しているＶＰＮの数が、接続可能なＶＰＮ上限数に達していると判断した場合（図６ステップＳ１１４；Ｙｅｓ）には、ＶＰＮトポロジ算出部１４は、ルータＰに接続されているＶＰＮのうち、切断予約フラグが立っていないＶＰＮが存在するかを判断する（図８ステップＳ３０１）。
【００５３】
ＶＰＮトポロジ算出部１４は、切断予約フラグが立っていないＶＰＮが存在すると判断した場合（図８ステップＳ３０１；Ｙｅｓ）には、切断予約フラグが立っていないＶＰＮのうち、評価値の高いＶＰＮを選択する（図８ステップＳ３０２）。ここで、ＶＰＮの評価値は、本実施形態においては、通過しているデータフローの終了予定時間が長いほど、通過データ量の増加速度が速く通信速度が速いほど、通過しているデータフローの数が多いほど高くなるように定められている。なお、評価値は、このような基準でなくてもよく、１つのＶＰＮを選択することができれば、どのような基準で計算してもよい。このようにして選択されたＶＰＮによってルータＰと接続されるルータ２を、ルータＰとして変更（図８ステップＳ３０３）し、図６ステップＳ１０１に戻って処理を続ける。
【００５４】
一方、ＶＰＮトポロジ算出部１４は、切断予約フラグが立っていないＶＰＮが存在しないと判断した場合（図８ステップＳ３０１；Ｎｏ）には、ルータＰに接続されているＶＰＮのうち、生成要求情報が示す新たなデータフローの待機可能時間内に、全てのデータフローが終了するＶＰＮがあるかをフロー情報が示す各データフローの終了予定時間から判断する（図８ステップＳ３０４）。全てのデータフローが終了するＶＰＮがあると判断した場合（図８ステップＳ３０４；Ｙｅｓ）は、当該ＶＰＮを記憶する（図８ステップＳ３０５）。
【００５５】
一方、全てのデータフローが終了するＶＰＮがないと判断した場合（図８ステップＳ３０４；Ｎｏ）は、ルータＰが接続しているＶＰＮの数が、接続可能なＶＰＮ上限数に達しているかを判断（図８ステップＳ３０６）し、達していると判断した場合（図８ステップＳ３０６；Ｙｅｓ）には、ルータＰとルータＤをＶＰＮによる接続ができないことを示しているから再帰探索を行う。再帰探索は、ルータＰを直前に示していたルータ２に一旦戻し、図８ステップＳ３０２においてＶＰＮを選択する際に、評価値が次に高いＶＰＮを選択するようにして行われる。
【００５６】
図８ステップＳ３０５の処理後、または図８ステップＳ３０６において、ＶＰＮ上限数に達していないと判断した場合（図８ステップＳ３０６；Ｎｏ）には、ルータＤが接続しているＶＰＮの数が、接続可能なＶＰＮ上限数に達しているかを判断する（図８ステップＳ３０７）。達していないと判断した場合（図８ステップＳ３０７；Ｎｏ）には、ルータＰとルータＤとを直接ＶＰＮによる接続できる、または図８ステップＳ３０５で記憶したＶＰＮを切断すれば、ルータＰとルータＤとを直接ＶＰＮによる接続できるものとして、ルータＰとルータＤとを接続するＶＰＮの生成を予約（図８ステップＳ３０８）し、図７ステップＳ２０１に進む。
【００５７】
一方、図８ステップＳ３０７において、ＶＰＮ上限数に達していると判断した場合（図８ステップＳ３０７；Ｙｅｓ）には、ルータＰとルータＤとを直接ＶＰＮによる接続ができないものとして、評価値の高い別のルータ２を選択して、そのルータ２とルータＰとを接続するＶＰＮの生成を予約する（図８ステップＳ３０９）。ここで、ルータ２の評価値は、本実施形態においては、ルータ２が、ルータＤと切断予約フラグが立っていないＶＰＮにより接続され、ＶＰＮ上限数に達していない場合に高くなり、さらに、ルータＤと接続しているＶＰＮを通過するデータフローの終了予定時間が長いほど、通信速度が速いほど高くなるように定められている。なお、評価値は、このような基準でなくてもよく、１つのルータ２を選択することができれば、どのような基準で計算してもよい。このようにして選択されたルータ２を、ルータＰとして変更（図８ステップＳ３１０）し、図６ステップＳ１０１に戻って処理を続ける。以上が、ＶＰＮトポロジ算出部１４における所定のアルゴリズムの一例の説明である。
【００５８】
次に、上述したＶＰＮトポロジ算出部１４における所定のアルゴリズムにおける具体例について、図９、図１０を用いて説明する。図９、図１０における１〜６は、各ルータ２−Ｒ１、２−Ｒ２、・・・、２−Ｒ６を示している。ルータＳは、ルータ２−Ｒ１であり、ルータＤは、ルータ２−Ｒ４である。また、図９（ａ）、図１０（ａ）は、ＶＰＮトポロジ算出部１４における算出前の状態を示し、図中の直線はＶＰＮを示し、直線の横の時間は終了予定時間を示している。Ｆは、切断予約フラグが立っていることを示している。
【００５９】
図９（ａ）において、ルータ２−Ｒ１は、ルータ２−Ｒ２、２−Ｒ５、２−Ｒ６との間、ルータ２−Ｒ３は、ルータ２−Ｒ４と間にＶＰＮが形成されている。そして、ＶＰＮトポロジ制御装置１は、新たなデータフロー（待機可能時間２０秒）をルータ２−Ｒ１からルータ２−Ｒ４に発生させる生成要求情報を受信すると、ＶＰＮトポロジ算出部１４は、所定のアルゴリズムでのトポロジ、パスの算出を開始する。まず、ルータＰは、ルータ２−Ｒ１として定義される。ルータ２−Ｒ１からルータ２−Ｒ４へのパスがないから、図６ステップＳ１０１の判断はＮｏとなる。図６ステップＳ１１１における処理は、ルータ２−Ｒ１とルータ２−Ｒ５との間のＶＰＮが待機可能時間内にデータフローが終了することになるからＹｅｓとなる。
【００６０】
そして、図９（ｂ）に示すように、ルータ２−Ｒ１とルータ２−Ｒ５との間のＶＰＮを記憶するとともに、切断予約フラグＦを立てる。（図６ステップＳ１１２）。ルータ２−Ｒ４のＶＰＮの上限接続数「３」に達していないから、図６ステップＳ１１４；Ｎｏとなり、ルータ２−Ｒ１とルータ２−Ｒ４とを端点（図中の２点鎖線）として接続するＶＰＮの生成を予約する（図６ステップＳ１１５）。そして、図７ステップＳ２０１；Ｙｅｓとなり、図７ステップＳ２０２、図７ステップＳ２０３、図７ステップＳ２０５と処理を行って算出を終了する。
【００６１】
そして、ルータ２−Ｒ１とルータ２−Ｒ５のＶＰＮを切断し、ルータ２−Ｒ１とルータ２−Ｒ４にＶＰＮを生成する制御を行うための情報、データフローのパスが（１）ルータ２−Ｒ１、（２）ルータ２−Ｒ４となる情報を有する設定要求情報が、ルータ設定部１５から出力される。
【００６２】
次に、図１０（ａ）の場合について説明する。ＶＰＮトポロジ制御装置１は、新たなデータフロー（待機可能時間２０秒）をルータ２−Ｒ１からルータ２−Ｒ４に発生させる生成要求情報を受信すると、ＶＰＮトポロジ算出部１４は、所定のアルゴリズムでのトポロジ、パスの算出を開始する。
【００６３】
まず、ルータＰは、ルータ２−Ｒ１として定義される。ルータ２−Ｒ１からルータ２−Ｒ４へのパスがあるから、図６ステップＳ１０１の判断はＹｅｓとなる。図６ステップＳ１０２における判断は、ルータ２−Ｒ２とルータ２−Ｒ３との間のＶＰＮに切断予約フラグが立っているから、Ｎｏとなる。図８ステップＳ３０１の判断は、ルータＰであるルータ２−Ｒ１から切断予約フラグが立っていない２つのＶＰＮが存在するからＹｅｓとなる。
【００６４】
そして、終了予定時間が長いルータ２−Ｒ２へ接続されているＶＰＮを選択（図８ステップＳ３０２）し、ルータ２−Ｒ２をルータＰとする（図８ステップＳ３０３）。そして再び図６ステップＳ１０１；Ｙｅｓ、図６ステップＳ１０２；Ｎｏと進む。そして、ルータ２−Ｒ２に接続されたＶＰＮのうち、一度ルータＰとなったルータ２−Ｒ１を除けば、ルータ２−Ｒ２とルータ２−Ｒ３との間のＶＰＮのみであり、このＶＰＮは切断予約フラグが立っているから、図８ステップＳ３０１の判断はＮｏとなる。このＶＰＮの終了予定時間は４０秒であり、待機可能時間２０秒より長いから、図８ステップＳ３０４の判断はＮｏとなり、図８ステップＳ３０６；Ｎｏ、図８ステップＳ３０７；Ｎｏと判断が続き、ルータＰであるルータ２−Ｒ２とルータ２−Ｒ４とを接続（図中の２点鎖線）するＶＰＮの生成を予約する。そして、図７ステップＳ２０１；Ｙｅｓとなり、図７ステップＳ２０２、図７ステップＳ２０３（記憶したＶＰＮがないから実際には待機しない）、図７ステップＳ２０５と処理を行って終了する。
【００６５】
そしてルータ２−Ｒ２とルータ２−Ｒ４にＶＰＮを生成する制御を行うための情報、データフローのパスが（１）ルータ２−Ｒ１、（２）ルータ２−Ｒ２、（３）ルータ２−Ｒ４となる情報を有する設定要求情報が、ルータ設定部１５から出力される。このようにすると、ルータ２−Ｒ１のルータ通信部２１は、新たなデータフローをルータ２−Ｒ２に転送するように設定され、ルータ２−Ｒ２のルータ通信部２１は、新たなデータフローをルータ２−Ｒ４に転送するように設定され、新たなデータフローのＶＰＮによるパスが形成される。以上が、具体的な処理の説明である。
【００６６】
このように、ＶＰＮトポロジ制御装置１は、新たなデータフローが発生しても、ＶＰＮトポロジ算出部１４において、データフローが終了したＶＰＮを積極的に切断して消滅させることにより、各ルータ２のＶＰＮの接続数が少ない状態としつつ、データフローのパスの算出、および当該パスを形成可能なトポロジの算出を行うことができる。これにより、ルータ２のＶＰＮの接続上限数が少なくても、新たなデータフローのパスと、当該パスを形成可能なトポロジを容易に形成することができるから、各ルータ２間のデータフローの状況に応じて、各ルータ２間を接続するＶＰＮにより形成されるトポロジを自動的に変更することができる。
【００６７】
以上、本発明の実施形態について説明したが、本発明は以下のように、さまざまな態様で実施可能である。
【００６８】
＜変形例１＞
上述した実施形態においては、切断予約フラグが立っているＶＰＮのうち、データフロー待機可能時間内にデータフローが終了するＶＰＮであって、ＶＰＮトポロジ算出部１４が算出したデータフローのパスとなるルータに接続されたＶＰＮを切断するようにしていたが、このようなタイミングでの切断に限られない。例えば、データフローが終了したＶＰＮについては、新たなデータフローの発生の有無にかかわらず、データフローが終了した後にＶＰＮを切断するようにしてもよい。
【００６９】
この場合には、例えば、ルータ設定部１５にフロー情報が入力されるようにし、ルータ設定部１５は、当該フロー情報と、ＶＰＮデータベース１２と、フローデータベース１３とを参照して、データフローが終了したＶＰＮが存在することを認識した後に、当該ＶＰＮを切断する指示を示す設定要求情報を当該ＶＰＮにより接続されるルータ２に送信するようにすればよい。このようにすると、ＶＰＮのトポロジにおいて、ＶＰＮの数を低減することができるから、ＶＰＮトポロジ制御装置１は、新たなデータフローの発生時においても、さらに容易にトポロジの変更を行うことができる。
【００７０】
＜変形例２＞
上述した実施形態においては、特定の条件においてＶＰＮに切断予約フラグを立てていたが、ＶＰＮトポロジ算出部１４における所定のアルゴリズムの処理が開始された後に、新たなデータフローの待機可能時間内にデータフローが終了する、すなわち待機可能時間よりも終了予定時間が短いＶＰＮ全てに対して切断予約フラグを立てるようにしてもよい。なお、このような場合には、図７ステップＳ２０３における処理において、記憶されたＶＰＮだけでなく、切断予約フラグが立っている全てのＶＰＮを切断するようにしてもよい。
【００７１】
すなわち、切断予約フラグを立てる条件には、待機可能時間よりも終了予定時間が短いことが含まれていれば、実施形態におけるアルゴリズムのように他に要求する条件が含まれていてもよく、また、切断予約フラグを立てるタイミングはいつでもよい。このようにしても、実施形態と同様な効果を得ることができる。
【００７２】
＜変形例３＞
上述した実施形態においては、生成要求情報は、送信端末３−Ａから送信されていたが、送信端末３−Ａが接続されている送信元のルータ２において生成、送信されるようにしてもよい。この場合には、送信元のルータ２は、通信端末３−Ａのデータフローの送信要求に基づいて、データフローのフロー識別子、データフローの総データ量、待機可能時間を抽出し、生成要求情報を生成する手段を有するようにすればよい。このようにしても、実施形態と同様な効果を得ることができる。
【００７３】
＜変形例４＞
上述した実施形態においては、ルータＳからルータＤまでのパスが既に形成されている場合には、これを優先的に用いるようにしていたが、このパスが複数のルータ２を経由し、２以上のＶＰＮによって構成されている場合に、ルータＳとルータＤとを直接ＶＰＮによって接続することが可能であれば、ＶＰＮトポロジ算出部１４は、このＶＰＮをパスとして算出してもよい。なお、ルータ２の接続上限数の制限のためにすぐに接続が不可能であっても、切断予約フラグを立てたＶＰＮを切断することにより接続可能であれば、データフローが開始されるまでには、ＶＰＮを切断して消滅させることができるから、当該パスを算出することができる。このように、ＶＰＮトポロジ算出部１４における所定のアルゴリズムは、実施形態で説明した内容に限られず、新たなデータフローの待機可能時間と各ＶＰＮのデータフローの終了予定時間とに基づいて決定される切断予約フラグが立っているＶＰＮと、各ＶＰＮにより形成されるトポロジとに基づいて算出されるものであれば、どのようなアルゴリズムであってもよい。
【００７４】
＜変形例５＞
上述した実施形態において、ＶＰＮトポロジ制御装置１のＣＰＵが実行するプログラムはＲＯＭに記憶されたプログラムであったが、様々な記録媒体のデータを読み取ることができるデータ入力手段などを設け、当該プログラムが記憶された様々な記録媒体から取得したり、通信部１１を介してサーバなど外部装置との通信によって当該プログラムを取得したりして、外部から取得するようにしてもよい。
【図面の簡単な説明】
【００７５】
【図１】実施形態に係るＶＰＮトポロジ制御装置とルータの接続を示すブロック図である。
【図２】実施形態に係るＶＰＮトポロジ制御装置の構成を示すブロック図である。
【図３】実施形態に係るＶＰＮデータベース、フローデータベース、フローキャッシュの内容の一例を示す説明図である。
【図４】実施形態に係るルータの構成を示すブロック図である。
【図５】実施形態に係る各情報の流れを示す説明図である。
【図６】実施形態に係るＶＰＮトポロジ算出部におけるアルゴリズムのフローチャートである。
【図７】実施形態に係るＶＰＮトポロジ算出部におけるアルゴリズムのフローチャートである。
【図８】実施形態に係るＶＰＮトポロジ算出部におけるアルゴリズムのフローチャートである。
【図９】実施形態に係るＶＰＮトポロジ算出部における処理の一例を示す説明図である。
【図１０】実施形態に係るＶＰＮトポロジ算出部における処理の一例を示す説明図である。
【符号の説明】
【００７６】
１…ＶＰＮトポロジ制御装置、２，２−Ｒ１，２−Ｒ２，・・・，２−Ｒ６…ルータ、２−Ｓ…送信元のルータ、２−Ｄ…受信先のルータ、３…通信端末、３−Ａ…送信端末、３−Ｂ…受信端末、１１…通信部、１２…ＶＰＮデータベース、１３…フローデータベース、１４…ＶＰＮトポロジ算出部、１５…ルータ設定部、１６…データベース更新部、１７…ＶＰＮ生成応答部、２１…ルータ通信部、２２…タイマ、２３…通過データ検出部、２４…フローキャッシュ、２５…ＶＰＮ設定部、２６…フロー情報生成部
【図１】
0004821735.tif 000002
【図２】
0004821735.tif 000003
【図３】
0004821735.tif 000004
【図４】
0004821735.tif 000005
【図５】
0004821735.tif 000006
【図６】
0004821735.tif 000007
【図７】
0004821735.tif 000008
【図８】
0004821735.tif 000009
【図９】
0004821735.tif 000010
【図１０】
0004821735.tif 000011