(57)【特許請求の範囲】
【請求項１】
第一の物理回線および第二の物理回線を介してネットワークに接続される情報処理装置であって、
前記第一の物理回線を介して、他の情報処理装置が前記ネットワークに対して有する複数の物理回線の夫々との間で複数の論理コネクションを確立し、更に、前記第二の物理回線を介して、前記他の情報処理装置が有する前記複数の物理回線の夫々との間で複数の論理コネクションを確立する、コネクション確立手段と、
前記コネクション確立手段によって確立された複数の論理コネクションの夫々に対して優先度を設定する優先度設定手段と、
前記複数の論理コネクションを、前記優先度の高い論理コネクションがより多く利用されるような順序で用いて、前記他の情報処理装置に対してデータを送信するデータ送信手段と、
前記データ送信手段によって送信されるデータにシーケンスを付加するシーケンス付加手段と、
前記シーケンスと前記他の情報処理装置におけるデータ到着順序との不整合が所定の条件に合致した場合に前記他の情報処理装置から送信される通知を受信する通知受信手段と、を備え、
前記優先度設定手段は、前記通知が受信されたことを受けて、前記優先度を再設定する、
情報処理装置。
【請求項２】
前記複数の論理コネクションの夫々について通信速度を計測する通信速度計測手段を更に備え、
前記優先度設定手段は、前記通信速度に基づいて、前記複数の論理コネクションの夫々に対して優先度を設定する、
請求項１に記載の情報処理装置。
【請求項３】
前記論理コネクションの、前記データ送信手段によるデータ送信における利用適否を判断する利用適否判断手段を更に備え、
前記優先度設定手段は、前記複数の論理コネクションのうち、前記利用適否判断手段によって利用に適さないと判断された論理コネクションを除く論理コネクションの夫々に対して優先度を設定する、
請求項１または２に記載の情報処理装置。
【請求項４】
該情報処理装置および前記他の情報処理装置が有する物理回線の回線情報を取得する回線情報取得手段と、
前記回線情報に基づいて、前記論理コネクションの確立に用いることが可能な経路として、前記第一の物理回線を介した、他の情報処理装置が有する前記複数の物理回線の夫々との間の複数の経路、および前記第二の物理回線を介した、前記他の情報処理装置が有する前記複数の物理回線の夫々との間の複数の経路と、を特定する経路特定手段と、を更に備え、
前記コネクション確立手段は、前記経路特定手段によって特定された経路において、前記論理コネクションを確立する、
請求項１から３の何れか一項に記載の情報処理装置。
【請求項５】
前記コネクション確立手段によって少なくとも１つの論理コネクションが確立された後、確立された論理コネクションを介して該情報処理装置および前記他の情報処理装置が有する物理回線の回線情報を交換する回線情報交換手段を更に備え、
前記経路特定手段は、前記回線情報取得手段によって取得された回線情報および前記回線情報交換手段によって交換された回線情報に基づいて前記経路を特定する、
請求項４に記載の情報処理装置。
【請求項６】
前記情報処理装置は、管理下のネットワークと、他のゲートウェイ装置の管理下のネットワークとの間の通信を仲介するゲートウェイ装置であり、
前記管理下のネットワークに属する送信元端末から送信されたパケットを受信する受信手段と、
前記受信手段によって受信されたパケットに、前記他のゲートウェイ装置へパケットを転送するための情報を付加することでカプセル化するカプセル化手段と、
を更に備え、
前記データ送信手段は、前記カプセル化手段によってカプセル化されたパケットを、前記他のゲートウェイ装置に送信する、
請求項１から５の何れか一項に記載の情報処理装置。
【請求項７】
第一の物理回線および第二の物理回線を介してネットワークに接続されるコンピュータが、
前記第一の物理回線を介して、他のコンピュータが前記ネットワークに対して有する複数の物理回線の夫々との間で複数の論理コネクションを確立し、更に、前記第二の物理回線を介して、前記他のコンピュータが有する前記複数の物理回線の夫々との間で複数の論理コネクションを確立する、コネクション確立ステップと、
前記コネクション確立ステップにおいて確立された複数の論理コネクションの夫々に対して優先度を設定する優先度設定ステップと、
前記複数の論理コネクションを、前記優先度の高い論理コネクションがより多く利用されるような順序で用いて、前記他のコンピュータに対してデータを送信するデータ送信ステップと、
前記データ送信ステップで送信されるデータにシーケンスを付加するシーケンス付加ステップと、
前記シーケンスと前記他のコンピュータにおけるデータ到着順序との不整合が所定の条件に合致した場合に前記他のコンピュータから送信される通知を受信する通知受信ステップと、を実行し、
前記優先度設定ステップでは、前記通知が受信されたことを受けて、前記優先度が再設定される、
通信方法。
【請求項８】
前記コンピュータが、
該コンピュータおよび前記他のコンピュータが有する物理回線の回線情報を取得する回線情報取得ステップと、
前記回線情報に基づいて、前記論理コネクションの確立に用いることが可能な経路として、前記第一の物理回線を介した、他のコンピュータが有する前記複数の物理回線の夫々との間の複数の経路、および前記第二の物理回線を介した、前記他のコンピュータが有する前記複数の物理回線の夫々との間の複数の経路と、を特定する経路特定ステップと、を更に実行し、
前記コネクション確立ステップでは、前記経路特定ステップで特定された経路において、前記論理コネクションが確立される、
請求項７に記載の通信方法。
【請求項９】
第一の物理回線および第二の物理回線を介してネットワークに接続されるコンピュータに、
前記第一の物理回線を介して、他のコンピュータが前記ネットワークに対して有する複数の物理回線の夫々との間で複数の論理コネクションを確立し、更に、前記第二の物理回線を介して、前記他のコンピュータが有する前記複数の物理回線の夫々との間で複数の論理コネクションを確立する、コネクション確立ステップと、
前記コネクション確立ステップにおいて確立された複数の論理コネクションの夫々に対して優先度を設定する優先度設定ステップと、
前記複数の論理コネクションを、前記優先度の高い論理コネクションがより多く利用されるような順序で用いて、前記他のコンピュータに対してデータを送信するデータ送信ステップと、
前記データ送信ステップで送信されるデータにシーケンスを付加するシーケンス付加ステップと、
前記シーケンスと前記他のコンピュータにおけるデータ到着順序との不整合が所定の条件に合致した場合に前記他のコンピュータから送信される通知を受信する通知受信ステップと、を実行させ、
前記優先度設定ステップでは、前記通知が受信されたことを受けて、前記優先度が再設定される、
通信用プログラム。
【請求項１０】
前記コンピュータに、
該コンピュータおよび前記他のコンピュータが有する物理回線の回線情報を取得する回線情報取得ステップと、
前記回線情報に基づいて、前記論理コネクションの確立に用いることが可能な経路として、前記第一の物理回線を介した、他のコンピュータが有する前記複数の物理回線の夫々との間の複数の経路、および前記第二の物理回線を介した、前記他のコンピュータが有する前記複数の物理回線の夫々との間の複数の経路と、を特定する経路特定ステップと、を更に実行させ、
前記コネクション確立ステップでは、前記経路特定ステップで特定された経路において、前記論理コネクションが確立される、
請求項９に記載の通信用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、通信方法および通信用プログラムに関する。
【背景技術】
【０００２】
従来、１つの拠点に設けられた顧客端末を主系と従系の２つで冗長化構成されたエッジノードに夫々収容し、通常時は主系のエッジノードが使用されるエッジノード冗長システムがある（特許文献１を参照）。
【０００３】
また、リンクアグリゲーションによって回線の冗長化を行う技術があり（特許文献２を参照）、冗長構成をとった現用パスに２重障害が発生し、パケットを予備パスに迂回させる場合に、第１のラベルスイッチドパスを流れるべきパケットと、第２のラベルスイッチドパスを流れるべきパケットとに異なるラベルを付与して予備パスに転送する技術がある（特許文献３を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２００８／１２０２６７号
【特許文献２】特開２００７−２２１５２６号公報
【特許文献３】特開２００３−７８５５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来、ネットワークの可用性（Ａｖａｉｌａｂｉｌｉｔｙ）を高めるために、複数の回線を用いてＶＰＮを冗長化することや、バックアップ用のＶＰＮを設定することが行われている。しかし、従来のネットワークシステムでは、物理的に回線が切断された場合、仮に回線の冗長化が行われていたとしても、論理コネクションが切れ、再接続しなければならなかった。
【０００６】
本発明は、上記した問題に鑑み、回線の切断によっても通信が維持されるネットワークシステムを提供することを課題とする。
【課題を解決するための手段】
【０００７】
本発明では、上記課題を解決するために、以下の手段を採用した。即ち、本発明は、第一の物理回線および第二の物理回線を介してネットワークに接続される情報処理装置であって、前記第一の物理回線を介して、他の情報処理装置が前記ネットワークに対して有する複数の物理回線の夫々との間で複数の論理コネクションを確立し、更に、前記第二の物理回線を介して、前記他の情報処理装置が有する前記複数の物理回線の夫々との間で複数の論理コネクションを確立する、コネクション確立手段と、前記コネクション確立手段によって確立された複数の論理コネクションを介して、前記他の情報処理装置に対してデータを送信するデータ送信手段と、を備える情報処理装置である。
【０００８】
ここで、論理コネクションとは、通信を行う装置間で確立される、情報の送受信をするための論理的な通信路である。論理コネクションの例としては、ＶＰＮコネクション、ＴＣＰコネクション、等がある。本発明に係る情報処理装置は、１の物理回線から、通信の相手方である他の情報処理装置の複数の物理回線の夫々に対して、複数の論理コネクションを張り、このような複数の論理コネクションを確立した物理回線を複数用意する。このようにすることで、相手方の情報処理装置との間に、物理回線の数よりも多い、互いに異
なる経路（パス）の論理コネクションを確立することが出来る。
【０００９】
本発明によれば、相手方の情報処理装置との間に、物理回線の数よりも多い、互いに異なる経路の複数の論理コネクションを持つことで、物理的に回線が切断されても、影響を受けない経路における論理コネクションを維持することが出来、通信を途切れさせることなく維持することが可能となる。また、本発明において、確立される複数の論理コネクションは、情報処理装置と他の情報処理装置との間の単一の通信路（トンネル）として、束ねて利用することが可能である。このため、本発明によれば、通信速度を犠牲にすることなく、ネットワークシステムの可用性を高めることが可能である。
【００１０】
また、本発明に係る情報処理装置は、前記複数の論理コネクションの夫々に対して優先度を設定する優先度設定手段を更に備え、前記データ送信手段は、前記論理コネクションを、前記優先度に応じて用いて、前記他の情報処理装置に対してデータを送信してもよい。
【００１１】
本発明によれば、優先度に従って、データ送信に用いる論理コネクションを決定することで、複数の論理コネクションを全体として用いた場合の、データ送信の信頼性を向上させることが出来る。
【００１２】
また、本発明に係る情報処理装置は、前記複数の論理コネクションの夫々について通信速度を計測する通信速度計測手段を更に備え、前記優先度設定手段は、前記通信速度に基づいて、前記複数の論理コネクションの夫々に対して優先度を設定してもよい。
【００１３】
例えば、優先度設定手段は、速度がより速い論理コネクションにより高い優先度が設定されるようにすることが出来る。このようにして、通信速度に基づく優先度設定をすることで、本発明によれば、トラフィックをより効率よく論理コネクションに割り振ることが可能となり、データ送信の速度を高めることが可能となる。
【００１４】
また、本発明に係る情報処理装置は、前記論理コネクションの、前記データ送信手段によるデータ送信における利用適否を判断する利用適否判断手段を更に備え、前記優先度設定手段は、前記複数の論理コネクションのうち、前記利用適否判断手段によって利用に適さないと判断された論理コネクションを除く論理コネクションの夫々に対して優先度を設定してもよい。
【００１５】
本発明によれば、利用に適さない論理コネクションを発見して利用対象から除外することで、通信の品質を保つことが出来る。また、除外された論理コネクションについては、除外後にも論理コネクションの再確立が試行されてよい。
【００１６】
また、本発明に係る情報処理装置は、前記データ送信手段によって送信されるデータにシーケンスを付加するシーケンス付加手段と、前記シーケンスと前記他の情報処理装置におけるデータ到着順序との不整合が所定の条件に合致した場合に前記他の情報処理装置から送信される通知を受信する通知受信手段と、を更に備え、前記優先度設定手段は、前記通知が受信されたことを受けて、前記優先度を設定してもよい。
【００１７】
本発明によれば、シーケンスの付加によってデータの到着順序を判定可能とし、また、相手方装置において不整合が発生していることの通知を相手方の情報処理装置から受けて優先度を設定可能としたことによって、複数の論理コネクションを束ねて使用する際に発生し得る、データ到着順序の不整合を抑制することが可能となる。
【００１８】
また、本発明に係る情報処理装置は、該情報処理装置および前記他の情報処理装置が有
する物理回線の回線情報を取得する回線情報取得手段と、前記回線情報に基づいて、前記論理コネクションの確立に用いることが可能な経路として、前記第一の物理回線を介した、他の情報処理装置が有する前記複数の物理回線の夫々との間の複数の経路、および前記第二の物理回線を介した、前記他の情報処理装置が有する前記複数の物理回線の夫々との間の複数の経路と、を特定する経路特定手段と、を更に備え、前記コネクション確立手段は、前記経路特定手段によって特定された経路において、前記論理コネクションを確立してもよい。
【００１９】
本発明によれば、論理コネクションの確立に用いてよい回線情報を設定しておき、この回線情報に基づいて経路を特定することで、確立すべき論理コネクションを予め全て指定しておくことなく、システムの可用性を高めるための複数の論理コネクションを確立することが出来る。
【００２０】
また、本発明に係る情報処理装置は、前記コネクション確立手段によって少なくとも１つの論理コネクションが確立された後、確立された論理コネクションを介して該情報処理装置および前記他の情報処理装置が有する物理回線の回線情報を交換する回線情報交換手段を更に備え、前記経路特定手段は、前記回線情報取得手段によって取得された回線情報および前記回線情報交換手段によって交換された回線情報に基づいて前記経路を特定してもよい。
【００２１】
また、本発明において、前記情報処理装置は、管理下のネットワークと、他のゲートウェイ装置の管理下のネットワークとの間の通信を仲介するゲートウェイ装置であり、本発明に係る情報処理装置は、前記管理下のネットワークに属する送信元端末から送信されたパケットを受信する受信手段と、前記受信手段によって受信されたパケットに、前記他のゲートウェイ装置へパケットを転送するための情報を付加することでカプセル化するカプセル化手段と、を更に備え、前記データ送信手段は、前記カプセル化手段によってカプセル化されたパケットを、前記他のゲートウェイ装置に送信してもよい。
【００２２】
ここで、管理下のネットワークとは、ゲートウェイ装置によって外部ネットワークとの通信が仲介される、拠点ネットワーク等のネットワークである。本発明に係るゲートウェイ装置は、インターネット等の外部ネットワークを介して他のゲートウェイ装置と通信可能となっており、管理下のネットワークからの通信を他のゲートウェイ装置へ転送等することで、複数のゲートウェイ装置の管理下にある複数の拠点ネットワーク間での通信を可能とする。複数のゲートウェイ装置によって管理下ネットワーク間の通信が仲介されることで、仮想的なプライベートネットワークが構築される。
【００２３】
更に、本発明は、コンピュータによって実行される方法、又はコンピュータによって実行されるプログラムとしても把握することが可能である。また、本発明は、そのようなプログラムをコンピュータその他の装置、機械等が読み取り可能な記録媒体に記録したものでもよい。ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。
【発明の効果】
【００２４】
本発明によれば、回線の切断によっても通信が維持されるネットワークシステムを提供することが可能となる。
【図面の簡単な説明】
【００２５】
【図１】実施形態に係るＶＰＮシステムの構成の概略を示す図である。
【図２】実施形態に係るＶＰＮゲートウェイのハードウェア構成の概略を示す図である。
【図３】実施形態に係るＶＰＮゲートウェイの機能構成の概略を示す図である。
【図４】実施形態に係るＶＰＮトンネル構成テーブルの構成を示す図である。
【図５】実施形態におけるコネクション確立処理の流れを示すフローチャートである。
【図６】実施形態において確立されるコネクションの概要を示す図である。
【図７】実施形態におけるデータ送信処理の流れを示すフローチャートである。
【図８】実施形態におけるデータ送受信の流れを示すシーケンス図である。
【発明を実施するための形態】
【００２６】
＜システムの構成＞
以下、本発明に係るＶＰＮシステムの実施の形態について、図面に基づいて説明する。なお、以下に説明する実施の形態は、本発明を実施する一例を示すものであって、本発明を以下に説明する具体的構成に限定するものではない。本発明を実施するにあたっては、実施の形態に応じた具体的構成が適宜採用されることが好ましい。
【００２７】
本発明に係る情報処理装置は、複数の物理回線を介してネットワークに接続可能なものであればよく、本発明に係る情報処理装置を備えるシステムも、複数の情報処理装置（コンピュータ）が、複数の物理回線を介して通信を行うことが可能なシステムであれば適用可能である。例えば、本実施形態に係るＶＰＮシステムは、通常のＶＰＮ、基幹業務でのＶＰＮ、クラウド等のデータセンター間でのデータ通信用ネットワーク、等の様々なネットワークに用いることが出来る。
【００２８】
図１は、本実施形態に係るＶＰＮシステムの構成の概略を示す図である。本実施形態に係るＶＰＮシステムは、複数のＶＰＮゲートウェイ１ａ、１ｂがインターネット等のネットワーク９を介して通信可能に接続されたシステムである。ＶＰＮゲートウェイ１ａ、１ｂのＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）側ネットワークインターフェースには、ネットワーク９への複数の物理回線が収容されている。本実施形態では、ＶＰＮゲートウェイ１ａのＷＡＮ１（ＷＡＮポート１）が第一の物理回線１００に接続され、ＶＰＮゲートウェイ１ａのＷＡＮ２（ＷＡＮポート２）が第二の物理回線２００に接続され、ＶＰＮゲートウェイ１ｂのＷＡＮ１（ＷＡＮポート１）が物理回線３００に接続され、ＶＰＮゲートウェイ１ｂのＷＡＮ２（ＷＡＮポート２）が物理回線４００に接続されている。なお、ＶＰＮゲートウェイ１ａ、１ｂにおいて、ＷＡＮ１に接続される物理回線と、ＷＡＮ２に接続される物理回線とは、性質の異なる回線とすることが好ましい。例えば、一方が光ブロードバンド回線である場合には他方をＣＡＴＶ回線や電力系回線等とすることで、ＶＰＮシステムの信頼性を高めることが出来る。
【００２９】
また、ＶＰＮゲートウェイのＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）ポートには、１または複数のプライベートネットワーク（ＬＡＮ）が接続されている。これらのプライベートネットワークのデフォルトゲートウェイはＶＰＮゲートウェイ１ａまたは１ｂであり、プライベートネットワークに接続された端末２ａ、２ｂは、ＶＰＮゲートウェイ１ａまたは１ｂを介して、ＶＰＮゲートウェイ１ａまたは１ｂのＷＡＮ側ネットワークインターフェースに接続された外部ネットワークと通信可能となっている。なお、上記各装置間の接続形態は有線接続であるか無線接続であるかを問わない。また、本実施形態では、ＩＰネットワークが用いられるが、装置間の通信に用いられる通信方式やプロトコルは、各装置間で必要な情報を送受信可能なものであればよく、ＩＰに限定されない。ＶＰＮの方式に関しても、本発明は、ＳＳＨ、ＴＬＳ、ＳＳＬ等、様々な方式のＶＰＮにおいて採用することが可能である。
【００３０】
ＶＰＮゲートウェイ１ａ、１ｂは、管理下のネットワークと、他のＶＰＮゲートウェイ
（本実施形態では、ＶＰＮゲートウェイ１ａ、１ｂの何れか）の管理下のネットワークとの間の通信を仲介するＶＰＮゲートウェイ装置である。ＶＰＮゲートウェイ１ａ、１ｂは、自己のＬＡＮ側ネットワークインターフェースに接続されたプライベートネットワークから送信された、他のＶＰＮゲートウェイ１ａ、１ｂのＬＡＮ側ネットワークインターフェースに接続されたプライベートネットワーク宛のパケットを暗号化し、ヘッダや認証データ等を付す等してカプセリングすることで、複数のプライベートネットワーク間の通信を秘匿化し、仮想的なトンネルを構築する。このようにして複数のプライベートネットワーク間の通信がトンネリングされることで、ＶＰＮが構築される。
【００３１】
図２は、本実施形態に係るＶＰＮゲートウェイのハードウェア構成の概略を示す図である。本実施形態に係るＶＰＮゲートウェイ１ａ、１ｂは、何れも、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ネットワークインターフェースおよび記憶装置（ストレージ）を備える、情報処理装置（コンピュータ）である。ここで、ＶＰＮゲートウェイ１ａ、１ｂは、ネットワークインターフェースとして、プライベートネットワークが接続されるＬＡＮ側ネットワークインターフェース（ＬＡＮポート）と、ネットワーク９側へ接続されるＷＡＮ側ネットワークインターフェース（ＷＡＮ１およびＷＡＮ２）と、を備える。
【００３２】
また、端末２ａ、２ｂは、ＶＰＮゲートウェイ１ａ、１ｂと同様、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ネットワークインターフェースおよび記憶装置（ストレージ）を備える、情報処理装置（コンピュータ）である。なお、ＶＰＮゲートウェイ１ａ、１ｂおよび端末２ａ、２ｂ等が備える記憶装置としては、例えば、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）やＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等を用いることが出来る。
【００３３】
ＶＰＮゲートウェイ１ａ、１ｂに設定されているデフォルトゲートウェイは、一般にはインターネットへの接続を提供するＩＳＰ（Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）のルータである。即ち、ＶＰＮゲートウェイ１ａ、１ｂは、ＬＡＮ側ネットワークインターフェースで受信したパケットのうち、ＶＰＮに送出されるパケット以外のパケットについては、原則としてＩＳＰのルータへ送信する。
【００３４】
図３は、本実施形態に係るＶＰＮゲートウェイの機能構成の概略を示す図である。ＶＰＮゲートウェイ１ａ、１ｂは、夫々、ＲＡＭまたはＲＯＭに展開された通信用プログラムをＣＰＵが実行して、ＲＡＭ、ＲＯＭ、ネットワークインターフェースおよび記憶装置等の各構成を制御することで、送受信部１１、ＶＰＮ処理部１２、情報取得部１３、コネクション確立部１４、情報交換部１５、経路特定部１６、通信速度計測部１７、利用適否判断部１８、優先度設定部１９およびシーケンス付加部２０を備えるＶＰＮゲートウェイ１ａ、１ｂとして機能する。本実施形態に係るＶＰＮシステムでは、単一のソフトウェア（通信用プログラム）によって複数のＶＰＮコネクションが管理され、後述するコネクション確立処理およびデータ送信処理が行われることで、迅速な制御を実現する。
【００３５】
送受信部１１は、ＶＰＮゲートウェイ１ａ、１ｂの管理下のプライベートネットワーク、換言すれば、ＶＰＮゲートウェイ１ａ、１ｂのＬＡＮ側ネットワークインターフェースに接続されたネットワークに属する端末２ａ、２ｂとの間でパケットを送受信し、また、ネットワーク９を介して接続された他のＶＰＮゲートウェイ１ａ、１ｂとの間で、ＶＰＮ処理部１２によってカプセル化処理されたＶＰＮパケット（ユーザデータ）およびコントロールデータを送受信する。
【００３６】
ＶＰＮ処理部１２は、管理下のプライベートネットワークから受信されたパケットに、他のＶＰＮゲートウェイ１ａ、１ｂへパケットを転送するための情報を付加することでカプセル化するカプセル化処理と、ＶＰＮコネクションの接続相手側のＶＰＮゲートウェイ１ｂ、１ａから受信されたＶＰＮパケット（カプセル化パケット）から、転送のための情報が付加される前（カプセル化前）のパケットを取り出すパケット取出処理と、を実行する。
【００３７】
図４は、本実施形態に係るＶＰＮトンネル構成テーブルの構成を示す図である。ＶＰＮトンネル構成テーブルは、本実施形態において複数確立されるＶＰＮコネクションを束ねて用いるために参照される情報を保持するテーブルであり、各ＶＰＮコネクションとパスとの組み合わせに関連付けて、ＶＰＮコネクションの通信速度、および重みが保持されている。本実施形態において、「重み」とは、ＶＰＮコネクションを束ねて１つのＶＰＮトンネルとして使用する際に、各パケットの送信に用いるＶＰＮコネクションを決定するために参照される優先度を示す情報である。
【００３８】
＜処理の流れ＞
次に、本実施形態に係るコネクション確立処理、データ送信処理、およびデータ送受信の流れについて説明する。なお、以下に説明する処理の流れでは、ＶＰＮゲートウェイ１ａからＶＰＮコネクションを確立する場合のコネクション確立処理、ＶＰＮゲートウェイ１ａからデータ送信する場合のデータ送信処理、およびＶＰＮゲートウェイ１ａがデータ送信側である場合のデータ送受信の流れ、について説明する。但し、ＶＰＮゲートウェイ１ｂからＶＰＮコネクションを確立する場合のコネクション確立処理、ＶＰＮゲートウェイ１ｂからデータ送信する場合のデータ送信処理、およびＶＰＮゲートウェイ１ｂがデータ送信側である場合のデータ送受信の流れ、についても、処理の主体が異なるのみであり、処理の内容は概略同様である。
【００３９】
図５は、本実施形態におけるコネクション確立処理の流れを示すフローチャートである。本フローチャートに示された処理は、ＶＰＮゲートウェイ１ａの起動が完了したことを契機として実行される。但し、本フローチャートに示された処理は、ＶＰＮゲートウェイ１ａがＶＰＮゲートウェイ１ａ配下のプライベートネットワークからＶＰＮゲートウェイ１ｂ配下のプライベートネットワーク宛のパケットを受信したことや、設定された所定の時刻が到来したこと、ＶＰＮコネクション確立を指示する入力を受け付けたこと等、その他のイベントに応じて実行開始されてもよい。なお、本フローチャートに示された処理の具体的な内容および順序等は、本発明を実施する上での一例である。具体的な処理内容および順序等は、実施の形態に応じて適宜選択されることが好ましい。
【００４０】
ステップＳ１０１では、予め設定された回線情報が取得される。ＶＰＮゲートウェイ１ａの情報取得部１３は、本フローチャートの処理が実行されるのに先立って設定された、ＶＰＮに用いられる物理回線の指定（回線情報）を、ＶＰＮゲートウェイ１ａ記憶装置から取得する。ここで取得される回線情報には、ＶＰＮゲートウェイ１ａが有する物理回線の回線情報（例えば、ＶＰＮゲートウェイ１ａのＷＡＮ１およびＷＡＮ２）の他、ＶＰＮコネクションの確立相手方となるＶＰＮゲートウェイ１ｂが有する物理回線の回線情報（例えば、ＶＰＮゲートウェイ１ｂのＷＡＮ１およびＷＡＮ２）が含まれる。
【００４１】
なお、ＶＰＮに用いられる回線情報は、ＶＰＮゲートウェイ１ａの記憶装置以外の場所に保持されていてもよい。例えば、ＶＰＮゲートウェイ１ａの情報取得部１３は、管理サーバ（図示は省略する）に予め設定された回線情報を、ネットワーク９等を介して取得してもよい。管理サーバからは、接続相手となる情報処理装置（本実施形態では、ＶＰＮゲートウェイ１ｂ）のＩＰアドレスも取得されてよい。ＶＰＮゲートウェイ１ａ、１ｂは、
管理サーバに自装置のＩＰアドレスをアップロードしておき、相手方のＶＰＮゲートウェイに取得させることで、管理サーバを介してＩＰアドレスを取得することが出来る。
【００４２】
また、回線情報のうち、自装置（ＶＰＮゲートウェイ１ａ）に係る物理回線の情報は、予め設定されていなくともよい。ＶＰＮゲートウェイ１ａの情報取得部１３は、自装置のＲＡＭを参照することで、ＶＰＮゲートウェイ１ａにおいて現在アクティブな物理回線の全てをＶＰＮに用いる回線情報として取得してもよいし、現在アクティブな物理回線のうち所定の条件を満たす回線をＶＰＮに用いる回線情報として取得してもよい。ここで、所定の条件としては、例えば、物理回線が所定以上の通信速度や帯域を有していること、等が用いられてよい。その後、処理はステップＳ１０２へ進む。
【００４３】
ステップＳ１０２では、一つ目のＶＰＮコネクションが確立される。ＶＰＮゲートウェイ１ａのコネクション確立部１４は、ステップＳ１０１において取得された回線情報において指定された物理回線のうちの、ＶＰＮゲートウェイ１ａ側の何れか１つの物理回線と、ＶＰＮゲートウェイ１ｂ側の何れか１つの物理回線と、の間に、ＶＰＮコネクションを確立する。例えば、本実施形態では、ＶＰＮゲートウェイ１ａ側の第一の物理回線１００と、ＶＰＮゲートウェイ１ｂ側の物理回線３００との間に、ＶＰＮコネクションが確立される。
【００４４】
ＶＰＮコネクションは、ＶＰＮゲートウェイ１ａまたはＶＰＮゲートウェイ１ｂの何れかから、相手方のＶＰＮゲートウェイに対してＶＰＮコネクションの確立要求が送信され、これを受けてＶＰＮコネクション確立に必要な処理（認証、ＶＰＮコネクションの識別子の決定、等）が実行されて確立されるのが一般的である。但し、ＶＰＮコネクションの確立処理の具体的な内容は、採用されるＶＰＮ用プロトコルによって様々であり、ＶＰＮコネクションの確立には従来のＶＰＮ技術を採用することが可能であるため、詳細な説明は省略する。以下、ＶＰＮゲートウェイ１ａ側の第一の物理回線１００とＶＰＮゲートウェイ１ｂ側の物理回線３００とを用いた通信経路を「パス１」と称し、パス１において確立されたＶＰＮコネクションを「ＶＰＮコネクション１」と称する。その後、処理はステップＳ１０３へ進む。
【００４５】
ステップＳ１０３では、ＶＰＮゲートウェイ間での情報交換が行われる。ＶＰＮゲートウェイ１ａおよびＶＰＮゲートウェイ１ｂの情報交換部１５は、ステップＳ１０２において確立されたＶＰＮコネクション１を介して、以降の処理において必要な情報を交換する。ここで交換される情報には、例えば、ステップＳ１０１において取得された物理回線以外にＶＰＮ用途に利用できる回線があるか否か、および利用できる回線がある場合にはその回線の回線情報、等が含まれる。より具体的には、ＶＰＮゲートウェイ１ａおよびＶＰＮゲートウェイ１ｂは、ＶＰＮコネクション１においてＶＰＮ用途に利用できる回線の有無の問い合わせ、および問合せに対する応答、等をコントロールデータとして送受信することで、情報交換を行う。なお、コントロールデータとは、ＶＰＮコネクションの制御に用いられるデータであり、認証用のデータ、鍵交換用のデータ、ＶＰＮコネクションの回線状況の確認用のデータ、等を含む。パケットの送受信処理の遅延を防止するため、ＶＰＮゲートウェイ１ａのＣＰＵは、コントロールデータを扱う処理を、ユーザデータを扱う処理とは異なるスレッドで実行することが好ましい。本実施形態では、コントロールデータとして、ＶＰＮの冗長化および高速化のために用いられる情報が、ＶＰＮゲートウェイ１ａ、１ｂ間で交換される。その後、処理はステップＳ１０４へ進む。
【００４６】
ステップＳ１０４では、利用可能なパス数が算出される。ＶＰＮゲートウェイ１ａの経路特定部１６は、ステップＳ１０１およびステップＳ１０３において取得された回線情報に基づいて、ＶＰＮゲートウェイ１ｂに対してＶＰＮコネクションを確立可能なパスの数を算出する。ＶＰＮゲートウェイ１ａからＶＰＮゲートウェイ１ｂに対してＶＰＮコネク
ションを確立可能なパスの数は、以下の式を用いて算出される。
【００４７】
利用可能なパス数  ＝  （ＶＰＮゲートウェイ１ａが有するＶＰＮ利用可能な物理回線の数）  ＊  （ＶＰＮゲートウェイ１ｂが有するＶＰＮ利用可能な物理回線の数）
【００４８】
図６は、本実施形態において確立されるコネクションの概要を示す図である。図６に示された例では、ＶＰＮゲートウェイ１ａはＶＰＮ利用可能な２つの物理回線１００、２００を有しており、ＶＰＮゲートウェイ１ｂはＶＰＮ利用可能な２つの物理回線３００、４００を有している。このため、ＶＰＮゲートウェイ１ａとＶＰＮゲートウェイ１ｂとの間の利用可能パス数は、４（＝２＊２）である。即ち、図１に示された例では、ステップＳ１０２においてＶＰＮコネクションが確立されたパス１の他に、ＶＰＮゲートウェイ１ａ側の第一の物理回線１００とＶＰＮゲートウェイ１ｂ側の物理回線４００とを用いたパス２、ＶＰＮゲートウェイ１ａ側の第二の物理回線２００とＶＰＮゲートウェイ１ｂ側の物理回線３００とを用いたパス３、ＶＰＮゲートウェイ１ａ側の第二の物理回線２００とＶＰＮゲートウェイ１ｂ側の物理回線４００とを用いたパス４、が存在する。経路特定部１６は、情報取得部１３によって取得された回線情報および情報交換部１５によって交換された回線情報に基づいて、ＶＰＮコネクションの確立に用いることが可能なパスとして、上記パス１、パス２、パス３およびパス４を特定する。その後、処理はステップＳ１０５へ進む。
【００４９】
ステップＳ１０５では、夫々の利用可能パスにおいて、個別にＶＰＮコネクションが確立される。ＶＰＮゲートウェイ１ａのコネクション確立部１４は、ステップＳ１０４において特定されたパスのうち、既にＶＰＮコネクション１が確立されているパス１を除くパス（パス２、パス３およびパス４）の夫々において、ＶＰＮコネクション２、ＶＰＮコネクション３およびＶＰＮコネクション４を確立する。ＶＰＮコネクションの具体的な確立方法は、ＶＰＮコネクションが確立される物理回線が異なることを除いて、ステップＳ１０２において説明したＶＰＮコネクションの確立と同様である。なお、パケットの送受信処理の遅延を防止するため、ＶＰＮゲートウェイ１ａのＣＰＵは、接続されていないＶＰＮコネクションの確立や再確立を、他のＶＰＮコネクションを扱う処理とは異なるスレッドで実行することが好ましい。
【００５０】
図６に示した例では、ＶＰＮゲートウェイ１ａのＷＡＮ１に収容された第一の物理回線１００とＶＰＮゲートウェイ１ｂのＷＡＮ１に収容された物理回線３００とを用いたパス１においてＶＰＮコネクション１が確立され、第一の物理回線１００とＶＰＮゲートウェイ１ｂのＷＡＮ２に収容された物理回線４００とを用いたパス２においてＶＰＮコネクション２が確立されている。また、ＶＰＮゲートウェイ１ａのＷＡＮ２に収容された第二の物理回線２００とＶＰＮゲートウェイ１ｂの物理回線３００とを用いたパス３においてＶＰＮコネクション３が確立され、ＶＰＮゲートウェイ１ａの第二の物理回線２００とＶＰＮゲートウェイ１ｂの物理回線４００とを用いたパス４においてＶＰＮコネクション４が確立されている。利用可能なパスについてＶＰＮコネクションが確立されると、本フローチャートに示された処理は終了し、処理はデータ送信処理へ進む。
【００５１】
本実施形態に係るＶＰＮシステムによれば、このような複数のＶＰＮコネクションが確立されることによって、物理回線（下位レイヤ）に障害が発生した場合にも、影響を受けないパスにおけるＶＰＮコネクションによって通信を途切れさせることなく維持することが出来る。即ち、本実施形態に係るＶＰＮシステムによれば、再接続処理やバックアップ回線への切替処理等が不要である。
【００５２】
より具体的には、本実施形態に係るＶＰＮシステムにおいては、物理回線が１つ不通となった場合でも、２つのＶＰＮコネクションがそのまま継続利用可能である。また、本実
施形態に係るＶＰＮシステムでは、ＶＰＮゲートウェイ１ａ側で１つ、ＶＰＮゲートウェイ１ｂ側で１つの物理回線が生きていれば、何れかのＶＰＮコネクションが途切れずにそのまま確立維持された状態となっており、通信の瞬断も発生しない。従来の回線冗長化方式では、一方のゲートウェイ側で１つ、他方のゲートウェイ側で１つの物理回線が生きていても、コネクションの切断が発生する。また、バックアップ用のコネクションが設定されているネットワークであっても、従来は通信の切断が検知されてからコネクションが張り直されていたため、通信の途切れが発生する。
【００５３】
図７は、本実施形態におけるデータ送信処理の流れを示すフローチャートである。本フローチャートに示された処理は、図５を用いて説明したコネクション確立処理が終了したことを契機として実行される。なお、本フローチャートに示された処理の具体的な内容および順序等は、本発明を実施する上での一例である。具体的な処理内容および順序等は、実施の形態に応じて適宜選択されることが好ましい。
【００５４】
ステップＳ２０１では、回線状況の悪いＶＰＮコネクション、またはＶＰＮコネクションが切断されているパスについて、ＶＰＮコネクションの再確立が試行される。但し、ステップＳ２０１に示された処理は、ステップＳ２０７において後述するトンネルの再構成が行われた場合に実行される処理である。このため、ステップＳ２０１の処理の詳細は、ステップＳ２０７とともに後述する。
【００５５】
ステップＳ２０２では、各ＶＰＮコネクションの速度が双方向で計測される。ＶＰＮゲートウェイ１ａの通信速度計測部１７は、上記説明したＶＰＮコネクション確立処理において確立されたＶＰＮコネクションの夫々において、所定のサイズのデータを交換し、応答にかかった時間を計測することで、各ＶＰＮコネクションの通信速度を取得する。より具体的には、通信速度計測部１７は、各ＶＰＮコネクションにおいて、ＶＰＮゲートウェイ１ａからＶＰＮゲートウェイ１ｂに対して要求パケットを送信し、要求の送信からＶＰＮゲートウェイ１ａがＶＰＮゲートウェイ１ｂからの応答パケットを受信するまでにかかった時間を計測することで、各ＶＰＮコネクションの速度を取得する。取得された通信速度は、ＶＰＮトンネル構成テーブルに保存される。また、通信速度計測部１７は、各ＶＰＮコネクションにおいてパケットがＶＰＮゲートウェイ１ａから送信されてからＶＰＮゲートウェイ１ｂに到達するまでに要した時間（以下、「到達時間」と称する）を、ＶＰＮゲートウェイ１ａにおける送信時刻とＶＰＮゲートウェイ１ｂにおける受信時刻とを用いて算出することで取得する。なお、到達時間の算出に必要な情報は、ＶＰＮゲートウェイ１ｂから取得される。また、本実施形態では、速度計測のために交換されるデータは、各ＶＰＮコネクションにおけるコントロールデータとして交換される。但し、ユーザデータのトラフィックが所定の閾値以上である場合には、コントロールデータで負荷をかけないよう、速度計測を行わないか、速度計測を次回以降の速度計測タイミングまで延期することとしてもよい。その後、処理はステップＳ２０３へ進む。
【００５６】
なお、ＶＰＮコネクションの速度は、コントロールデータのデータ交換速度を計測する方式に代えて、ユーザデータのトラフィックを監視する方式を用いて計測されてもよい。ＶＰＮゲートウェイ１ａ、１ｂは、トラフィックを監視することで得られたユーザデータのトラフィック情報（ユーザデータのサイズおよびデータ転送にかかった時間等を含む）を、相手方のＶＰＮゲートウェイとの間でコントロールデータとして交換し、得られたトラフィック情報（ユーザデータのサイズおよびデータ転送にかかった時間等）に基づいて速度を算出することが出来る。
【００５７】
ステップＳ２０３では、回線状況の悪いＶＰＮコネクションの有無（ＶＰＮコネクションの利用適否）が判定される。ステップＳ２０２において速度計測のために送受信されるパケットは、各ＶＰＮコネクションの回線状況の確認用パケット（所謂ＫｅｅｐＡｌｉｖ
ｅ）としても利用される。但し、ＫｅｅｐＡｌｉｖｅは、速度計測のためのパケットとは別に送信されることとしてもよい。ＶＰＮゲートウェイ１ａの利用適否判断部１８は、ＶＰＮコネクションの、送受信部１１によるデータ送信における利用適否を判断する。より具体的には、利用適否判断部１８は、ＫｅｅｐＡｌｉｖｅパケットを送信したＶＰＮコネクションにおいて、ＶＰＮゲートウェイ１ｂからの応答がタイムアウトした場合、当該ＶＰＮコネクション（パス）の回線状況が悪い、換言すれば、利用に適さないＶＰＮコネクションであると判断する。回線状況の悪いＶＰＮコネクション（回線状況の確認に失敗したＶＰＮコネクション）が有る場合、処理はステップＳ２０７へ進む。これに対して、回線状況の悪いＶＰＮコネクションが発見されなかった場合、処理はステップＳ２０４へ進む。
【００５８】
ステップＳ２０４では、各ＶＰＮコネクションの重み付けが行われる。ＶＰＮゲートウェイ１ａの優先度設定部１９は、ステップＳ２０２において計測された各ＶＰＮコネクションの速度に基づいて、重み付けラウンドロビンによって用いられる各ＶＰＮコネクションの重み付け（優先度設定）を行う。図４に示された例では、各ＶＰＮコネクションの速度が、各ＶＰＮコネクションにおいて、データ要求の送信から応答の受信までにかかった時間で示されている。例えば、ＶＰＮコネクション１の速度は２０ｍｓｅｃであり、ＶＰＮコネクション２の速度は４０ｍｓｅｃであり、ＶＰＮコネクション３の速度は８０ｍｓｅｃであり、ＶＰＮコネクション４の速度は２０ｍｓｅｃである。本実施形態では、優先度設定部１９は、ＶＰＮトンネル構成テーブルを参照し、最も遅いＶＰＮコネクション（ここでは、ＶＰＮコネクション３）を基準として、各ＶＰＮコネクションが基準となるＶＰＮコネクションの何倍の速さであるかを算出することで、重み付けを行う。具体的には、図４に示された例では、ＶＰＮトンネル構成テーブルに、重み（ｗｅｉｇｈｔ）として、ＶＰＮコネクション１に値「４」が、ＶＰＮコネクション２に値「２」が、ＶＰＮコネクション３に値「１」が、ＶＰＮコネクション４に値「４」が設定される。各ＶＰＮコネクションの重み付けが完了すると、処理はステップＳ２０５へ進む。
【００５９】
なお、通信速度が使用に適さない速度を示す閾値よりも遅いＶＰＮコネクションがある場合は、当該ＶＰＮコネクションをＶＰＮトンネルから除外し、重み付けを行わないこととしてもよい。なお、ＶＰＮコネクションの除外は、該当するコネクションが除外されることを示すフラグやリスト等を用いて行われてもよいし、ＶＰＮトンネル構成テーブルにおいて該当するＶＰＮコネクションの重みを０（ゼロ）に設定することで行われてもよい。
【００６０】
ステップＳ２０５では、ユーザデータが送信される。ＶＰＮゲートウェイ１ａのＶＰＮ処理部１２は、ＶＰＮゲートウェイ１ａ配下のプライベートネットワークからＶＰＮゲートウェイ１ｂ配下のプライベートネットワーク宛のパケットを受信すると、受信したパケットにＶＰＮゲートウェイ１ｂへパケットを転送するための情報を付加して、受信したパケットをカプセル化することで、ＶＰＮパケット（カプセル化パケット）を作成する。ＶＰＮパケットが作成されると、ＶＰＮゲートウェイ１ａの送受信部１１は、作成されたＶＰＮパケットを、コネクション確立部１４によって確立された複数のＶＰＮコネクションを介して、ＶＰＮゲートウェイ１ｂへ送信する。送信されたＶＰＮパケットを受信したＶＰＮゲートウェイ１ｂは、受信されたＶＰＮパケットから、転送のための情報が付加される前のパケットを取り出し、取り出されたパケットをＶＰＮゲートウェイ１ｂ配下のプライベートネットワークに転送する。
【００６１】
本実施形態に係るデータ送信処理において、ＶＰＮゲートウェイ１ａ、１ｂは、確立された複数のＶＰＮコネクション１〜４を、全体として１つのＶＰＮトンネルとして用いる。この際、送受信部１１は、ＶＰＮコネクションを、優先度に応じて用いて、相手方のＶＰＮゲートウェイに対してデータを送信する。本実施形態において、ＶＰＮゲートウェイ
１ａがＶＰＮゲートウェイ１ｂに対してＶＰＮパケットを送信するために用いるＶＰＮコネクションは、重み付けラウンドロビン（Ｗｅｉｇｈｔｅｄ  Ｒｏｕｎｄ−ｒｏｂｉｎ、加重ラウンドロビン）で決定される。
【００６２】
重み付けラウンドロビンでは、各ＶＰＮコネクションに予め重み付け（優先度設定）がなされ、重み（優先度）の大きいＶＰＮコネクションがより多く利用されるようにスケジューリングされる。具体的には、本実施形態では、重み付けラウンドロビンにおいて、ステップＳ２０４でＶＰＮトンネル構成テーブルに設定された重みが参照され、利用される。送受信部１１は、一回のラウンドロビンにおいて、重み４が設定されたＶＰＮコネクション１およびＶＰＮコネクション４が４回（４スロット）、重み２が設定されたＶＰＮコネクション２が２回（２スロット）、重み１が設定されたＶＰＮコネクション３が１回（１スロット）利用されるようにスケジューリングし、各スロットにおいてＶＰＮゲートウェイ１ｂ宛のＶＰＮパケットを送信する。
【００６３】
例えば、データ送信に用いられるスロットは、以下のような順序で各ＶＰＮコネクションに割り当てられてよい。
（１）コネクション１→コネクション２→コネクション３→コネクション４→
（２）コネクション１→コネクション２→コネクション４→
（３）コネクション１→コネクション４→
（４）コネクション１→コネクション４→（１）へ戻る
【００６４】
ステップＳ２０６では、所定の更新時間が経過したか否かが判定される。ＶＰＮゲートウェイ１ａは、ステップＳ２０２におけるＶＰＮコネクションの速度計測および回線状況の確認から所定の更新時間が経過しているか否かを判定する。ＶＰＮコネクションの速度計測および回線状況の確認から更新時間が経過していないと判定された場合、処理はステップＳ２０５へ戻る。ＶＰＮコネクションの速度計測および回線状況の確認から更新時間が経過していると判定された場合、処理はステップＳ２０１へ戻る。即ち、本フローチャートに示された処理では、更新時間毎にＶＰＮコネクションの速度計測および回線状況の確認が行われることで、ＶＰＮにおいて用いるＶＰＮコネクションの状況が更新され（ステップＳ２０２）、ユーザデータの送信に用いられるＶＰＮコネクションの重み付けが更新される（ステップＳ２０４）。このようにすることで、本実施形態に係るＶＰＮシステムによれば、常に最新の回線状況に基づいて、効率のよいユーザデータの送信を行うことが出来る。
【００６５】
次に、回線状況の悪いＶＰＮコネクション（回線状況の確認に失敗したＶＰＮコネクション）が発見された場合の処理について説明する。ステップＳ２０３においてＫｅｅｐＡｌｉｖｅパケットへの応答がタイムアウトした場合、利用適否判断部１８は、タイムアウトが発生したＶＰＮコネクションの回線状況が悪いと判断する。この場合、処理はステップＳ２０７へ進む。
【００６６】
ステップＳ２０７では、トンネルが再構成される。ＶＰＮゲートウェイ１ａの優先度設定部１９は、ステップＳ２０３において利用適否判断部１８によって回線状況が悪く利用に適さないと判断されたＶＰＮコネクションを使用しない（利用対象から除外する）設定を行うことで、ＶＰＮトンネルの再構成を行う。例えば、ＶＰＮコネクション３においてＫｅｅｐＡｌｉｖｅがタイムアウトした場合、優先度設定部１９は、ＶＰＮコネクション３をＶＰＮゲートウェイ１ｂとの間のＶＰＮ通信に用いる対象ＶＰＮコネクションから除外する設定を行う。
【００６７】
更に、優先度設定部１９は、除外されたＶＰＮコネクション以外の各ＶＰＮコネクションについての重み付けを更新する。例えば、ＶＰＮコネクション３が除外された場合、残
るＶＰＮコネクション１の速度は２０ｍｓｅｃであり、ＶＰＮコネクション２の速度は４０ｍｓｅｃであり、ＶＰＮコネクション４の速度は２０ｍｓｅｃであるため、最も遅いＶＰＮコネクション２を基準に、重みとして、ＶＰＮコネクション１に値「２」が、ＶＰＮコネクション２に値「１」が、ＶＰＮコネクション４に値「２」が設定される。なお、送信側トンネル構成から除外されたＶＰＮコネクション（パス）は、バックアップ回線に指定される等して冗長化に利用されてもよい。トンネルの再構成の結果はＶＰＮトンネル構成テーブルに保存され、処理はステップＳ２０１へ進む。
【００６８】
ステップＳ２０１では、回線状況の悪いＶＰＮコネクション、またはＶＰＮコネクションが切断されているパスについて、ＶＰＮコネクションの再確立が試行される。ＶＰＮゲートウェイ１ａのコネクション確立部１４は、ステップＳ２０７において除外されたＶＰＮコネクション、および他の原因でＶＰＮコネクションが切断されているパスについて、ＶＰＮコネクションの確立を試行する。ＶＰＮコネクションの具体的な確立方法は、ＶＰＮコネクションが確立される物理回線が異なることを除いて、ステップＳ１０２において説明したＶＰＮコネクションの確立と同様である。
【００６９】
即ち、本フローチャートに示されたデータ送信処理によれば、回線状況の悪いＶＰＮコネクションを定期的に発見して利用対象から除外することで通信の品質を保ちつつ、除外されたＶＰＮコネクションについて定期的にＶＰＮコネクションの再確立を試行することが出来る。
【００７０】
本実施形態に係るＶＰＮシステムによれば、速度がより速いＶＰＮコネクションに、より高い優先度を設定して、重み付けラウンドロビンを用いることにより、トラフィックをより効率よくＶＰＮコネクションに割り振り、データ送信の速度を高めることが出来る。ここで、ＶＰＮコネクションの速度が互いに同等であった場合、ラウンドロビンによるパスの多重化によってより大きな高速化が期待できる。
【００７１】
なお、送信に用いるＶＰＮコネクションを決定するためのアルゴリズムには、重み付けラウンドロビン以外の方法が採用されてもよい。例えば、通信速度が所定値以上乖離した複数のＶＰＮコネクションが確立されている場合、ユーザデータの送信に、より高速なＶＰＮコネクションとより低速なＶＰＮコネクションとの何れを使用するかを、プロトコルや送信元等の定義に基づいて決定するオプションを用意し、必要に応じて、待機しているＶＰＮコネクションを利用する事としてもよい。また、その他のＶＰＮコネクションを決定方式として、重み付けを行わないラウンドロビンが採用されてもよい。
【００７２】
なお、本実施形態のように、複数のＶＰＮコネクションを束ねて１つのＶＰＮトンネルとして利用した場合、パケットの到着がデータ転送に用いたＶＰＮコネクションの転送速度によって前後する可能性がある。即ち、エンド−エンド間、図１に示す例では端末２ａから順次送信されたパケットが、送信順序と異なる到着順序で端末２ｂによって受信される可能性がある。このようなデータ到着順序の不整合の問題は、例えば、ＵＤＰのようなシーケンス制御を行わないプロトコルを用いた場合や、ＴＣＰの送信側において再送処理を行った場合、ＴＣＰにおいて受信側高速再送処理や選択的肯定応答を用いた場合等に発生し得る。
【００７３】
本実施形態では、重み付けラウンドロビンによってＶＰＮトンネルの構成アルゴリズムが決定される。このため、このようなデータ到着順序の不整合の発生は抑制されるが、それでも不整合が発生する場合には、不整合に対する対処が行われることが好ましい。ここで、データ到着順序の不整合に対しては、データを利用する端末の上位プロトコルにおいて対応することも考えられる。しかし、必ずしも上位プロトコルがデータ到着順序の不整合に対応する機能を有しているとは限らない。そこで、本実施形態では、ＶＰＮコネクシ
ョンを介して送受信されるユーザデータをカプセル化する際に、データの先頭にシーケンスを付加することで、データ到着順序の不整合に対応することとした。以下、本実施形態におけるデータ到着順序の不整合への対応方法を、図８を用いて説明する。
【００７４】
図８は、本実施形態におけるデータ送受信の流れを示すシーケンス図である。本シーケンス図に示された処理は、ＶＰＮゲートウェイ１ａが、データ送信処理（図７を参照）のステップＳ２０５に示されたユーザデータの送信を開始したことを契機として実行される。なお、本シーケンス図に示された処理の具体的な内容および順序等は、本発明を実施する上での一例である。具体的な処理内容および順序等は、実施の形態に応じて適宜選択されることが好ましい。
【００７５】
ステップＳ３０１およびステップＳ３０２では、パケットにシーケンスが付加され、ＶＰＮパケットが送信される。ＶＰＮゲートウェイ１ａのＶＰＮ処理部１２は、ＶＰＮゲートウェイ１ａ配下のプライベートネットワークからＶＰＮゲートウェイ１ｂ配下のプライベートネットワーク宛のパケットを受信すると、受信したパケットにＶＰＮゲートウェイ１ｂへパケットを転送するための情報を付加して、受信したパケットをカプセル化することで、ＶＰＮパケット（カプセル化パケット）を作成する。ここで、ＶＰＮゲートウェイ１ａのシーケンス付加部２０は、ユーザデータをカプセル化する際に、データの先頭に、パケットの順序を示すシーケンスを付加する（ステップＳ３０１）。ＶＰＮパケットが作成されると、ＶＰＮゲートウェイ１ａの送受信部１１は、作成されたＶＰＮパケットを、コネクション確立部１４によって確立された複数のＶＰＮコネクションを介して、ＶＰＮゲートウェイ１ｂへ送信する（ステップＳ３０２）。なお、この際、送受信部１１は、ＶＰＮコネクションを、優先度に応じて用いて、相手方のＶＰＮゲートウェイに対してデータを送信する（ステップＳ２０５の重み付けラウンドロビンの説明を参照）。
【００７６】
ステップＳ３０３からステップＳ３０６では、データ受信側のＶＰＮゲートウェイ１ｂにおいて、ＶＰＮパケットの受信、カプセル化解除、シーケンス整合、およびパケットの転送が行われる。ＶＰＮパケットを受信したＶＰＮゲートウェイ１ｂは、受信されたＶＰＮパケットから、カプセル化される前のパケットを取り出す（ステップＳ３０３およびステップＳ３０４）。ここで、ＶＰＮゲートウェイ１ｂは、所定のバッファ時間シーケンスを整える（ステップＳ３０５）。即ち、ＶＰＮゲートウェイ１ｂは、受信したユーザデータのシーケンスが実際の受信順序と一致している場合にはそのまま処理するが、シーケンスが飛んでいる場合には、受信パケットを転送せずに、シーケンスが飛んで受信されたパケットの受信時間から所定のバッファ時間（例えば、２０ミリ秒）保留し、その時間内にシーケンスが一致するデータが到着すれば、シーケンスを整えて、シーケンスに示された順に転送する。
【００７７】
ここで、所定のバッファ時間には、エンド−エンド間におけるパケットの送受信で許容できる程度の遅延のみを与える時間が設定される。エンド−エンド間におけるパケットの送受信で許容できる遅延の程度は、パケットに含まれるデータを用いる上位プロトコルやアプリケーションによっても異なるため、この所定のバッファ時間は、上位プロトコルやアプリケーションに応じて設定されてもよい。本実施形態では、ここで設定されるバッファ時間は、ステップＳ２０２において速度と併せて計測された到達時間（各ＶＰＮコネクションにおいてパケットがＶＰＮゲートウェイ１ａから送信されてからＶＰＮゲートウェイ１ｂに到達するまでに要した時間）、または到達時間の平均値を用いて算出される。本実施形態では、バッファ時間として、到達時間（またはその平均値）に２を乗算した値が設定される。例えば、到達時間が１０ミリ秒である場合、バッファ時間は２０ミリ秒（＝１０ミリ秒＊２）となる。但し、バッファ時間の算出方法は前記した例に限られない。バッファ時間の算出には、到達時間に所定の時間を積算して算出する方法等、実施の形態に応じて適した方法が採用されることが好ましい。また、バッファ時間には、各ＶＰＮコネ
クションにおいてパケットがＶＰＮゲートウェイ１ａから送信されてからこのパケットに対するＶＰＮゲートウェイ１ｂからの応答パケットがＶＰＮゲートウェイ１ａによって受信されるまでに要した時間（または、その平均値）等、その他の方法で算出された時間が設定されてもよいし、管理者によって任意の値が設定されてもよい。
【００７８】
なお、送信順序において先に使用されるＶＰＮコネクションの到達時間が、後に使用されるＶＰＮコネクションの到達時間によりも長い場合、これらのＶＰＮコネクション間で、パケットの受信順序が送信順序と、ほぼ毎回入れ替わる可能性がある。このような場合には、未到着のパケットの送受信に用いられるＶＰＮコネクションの到達時間を基に算出された未到着のパケットの到達予定時刻まで待てば、未到着のパケットが受信されると考えられる。このため、このような場合には、所定のバッファ時間として、未到着のパケットの送受信に用いられるＶＰＮコネクションの到達時間と到着済みパケットの送受信に用いられるＶＰＮコネクションの到達時間との差分が設定されてもよい。
【００７９】
シーケンスが整えられると、ＶＰＮゲートウェイ１ｂは、取り出されたパケットをＶＰＮゲートウェイ１ｂ配下のプライベートネットワークに転送する（ステップＳ３０６）。
【００８０】
ステップＳ３０７では、必要に応じて、送信アルゴリズムの変更指示が送信される。ゲートウェイ１ｂの送受信部１１は、シーケンスとデータ到着順序との不整合が所定の条件に合致した場合に、ＶＰＮゲートウェイ１ａに対して送信アルゴリズムの変更指示（通知）を送信する（ステップＳ３０７）。本実施形態では、受信側であるＶＰＮゲートウェイ１ｂにおいて所定の監視時間以内にシーケンスの順序が保てない場合、換言すると、所定の監視時間において所定の基準（閾値）以上のシーケンスの不整合が発生している場合、ＶＰＮゲートウェイ１ｂは、送信側であるＶＰＮゲートウェイ１ａの送信アルゴリズムに変更を加えるように指示する通知を、ＶＰＮゲートウェイ１ａ宛に送信する。
【００８１】
本実施形態では、所定の監視時間（例えば、１分）において発生したパケットの再送要求が、所定の基準（例えば、５）以上であるか否かが判定される。所定の基準には、「１」が設定されてもよい。ＶＰＮでは、ＶＰＮを流れるパケットを全てカプセル化するため、パケットの内容を参照して、特定のパケットを検知することが出来る。検知対象となるパケットの種類を特定のパケットに限定することで、パケットの検知処理に伴うパケット転送の遅延（レイテンシ）を抑制することが出来る。本実施形態では、受信されたパケットから再送要求パケットを検知し、所定の監視時間内に検知された再送要求の数が所定の基準以上である場合に、送信アルゴリズムの変更指示を送信する。但し、検知されるパケットは、遅延が発生した際に送信されるパケットであればよく、再送要求パケットに限定されない。なお、監視時間は、ＴＣＰのｓａｃｋや高速再送処理が見られる場合には、自動的に短くなるよう設定されてもよい。
【００８２】
ステップＳ３０８およびステップＳ３０９では、アルゴリズムの変更指示が受信され、送信アルゴリズムが変更される。ＶＰＮゲートウェイ１ａの送受信部１１は、ＶＰＮゲートウェイ１ｂによって送信されたアルゴリズムの変更指示を受信する（ステップＳ３０８）。ＶＰＮゲートウェイ１ａの優先度設定部１９は、変更指示が受信されたことを受けて、ＶＰＮパケットの送信アルゴリズムを、データ到着順序の不整合がより発生しにくいアルゴリズムへ変更する（ステップＳ３０９）。
【００８３】
例えば、ＶＰＮゲートウェイ１ａの優先度設定部１９は、上記説明した重み付けラウンドロビンにおいて参照されるＶＰＮトンネル構成テーブルを変更することで、ＶＰＮパケットの送信アルゴリズムを、データ到着順序の不整合がより発生しにくいアルゴリズムへ変更することが出来る。ＶＰＮトンネル構成テーブルを変更する方法としては、例えば、最も遅いコネクションまたは所定の閾値よりも遅いコネクションを除外して、重み付けを
再構成する方法等がある。コネクションの除外および重み付けの再構成については、ステップＳ２０７において説明した処理と同様であるため、説明を省略する。また、通知を受信したＶＰＮゲートウェイ１ａは、ＶＰＮパケットの送信アルゴリズムの変更として、ＭＳＳ（Ｍａｘｉｍｕｍ  Ｓｅｇｍｅｎｔ  Ｓｉｚｅ）またはＭＴＵ（Ｍａｘｉｍｕｍ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｕｎｉｔ）の変更を行うこととしてもよい。
【００８４】
＜システム構成のバリエーション＞
なお、本実施形態では、ＶＰＮコネクションがＶＰＮゲートウェイ間で確立され、ＶＰＮゲートウェイ配下のネットワーク間の通信がＶＰＮを介して行われるＶＰＮシステムについて説明した。但し、本発明は、端末間でＶＰＮコネクションが確立されて端末間の通信がＶＰＮを介して行われるＶＰＮシステムや、端末とＶＰＮゲートウェイとの間でＶＰＮコネクションが確立されて端末とＶＰＮゲートウェイ配下のネットワークとの間の通信がＶＰＮを介して行われるＶＰＮシステムに適用されてもよい。
【００８５】
ＶＰＮコネクションの一旦が端末である場合、端末の送受信部は、ネットワークを介して接続されたＶＰＮコネクションの相手側装置（ＶＰＮゲートウェイまたは端末）との間で、カプセル化処理されたＶＰＮパケットを送受信する。また、端末のＶＰＮ処理部は、自装置から送信されるパケットをカプセル化するカプセル化処理と、ＶＰＮコネクションの相手側装置から受信されたＶＰＮパケット（カプセル化パケット）から、カプセル化処理前のパケットを取り出すパケット取出処理と、を実行する。
【符号の説明】
【００８６】
１ａ、１ｂ  ＶＰＮゲートウェイ
１１  送受信部
１２  ＶＰＮ処理部
１３  情報取得部
１４  コネクション確立部
１５  情報交換部
１６  経路特定部
１７  通信速度計測部
１８  利用適否判断部
１９  優先度設定部
２０  シーケンス付加部
【図１】
0005605728.tif 000002
【図２】
0005605728.tif 000003
【図３】
0005605728.tif 000004
【図４】
0005605728.tif 000005
【図５】
0005605728.tif 000006
【図６】
0005605728.tif 000007
【図７】
0005605728.tif 000008
【図８】
0005605728.tif 000009