(57)【要約】【課題】Ｐ２Ｐ通信中に通信障害が発生した場合にも安定した通信を継続できるようにする。【解決手段】通信制御部１４０は、相手装置との間でＰ２Ｐ通信を行っているときに、通信障害検出部１４７によって、相手装置からのＫｅｅｐ−ａｌｉｖｅパケットが所定時間以上受信されない、規定値以上のエラー発生率が所定時間以上継続するなどにより、Ｐ２Ｐ通信が継続困難となる通信障害を検出する。通信障害が検出された場合、通信制御部１４０は、ＩＰネットワークに設けられた中継サーバを用いたサーバ経由通信への移行処理を行い、Ｐ２Ｐ通信からサーバ経由通信に切り替える。【選択図】図３
2011211490.tif 000002
【特許請求の範囲】
【請求項１】
ＩＰネットワークにおいて、相手装置との間で仮想プライベートネットワークを構築して通信を行うＶＰＮ装置であって、
前記相手装置との間でＰ２Ｐ通信を行っているときに、このＰ２Ｐ通信が継続困難となる通信障害を検出する通信障害検出部と、
前記通信障害が検出された場合に、前記ＩＰネットワークに設けられた中継サーバ経由の通信であるサーバ経由通信への移行処理を行う通信制御部と、
を備えるＶＰＮ装置。
【請求項２】
請求項１に記載のＶＰＮ装置であって、
前記通信障害検出部は、前記Ｐ２Ｐ通信時における、前記相手装置からのＫｅｅｐ−ａｌｉｖｅパケットの受信に基づき、所定期間以上前記Ｋｅｅｐ−ａｌｉｖｅパケットの受信が無い場合に通信障害が発生したと判定するＶＰＮ装置。
【請求項３】
請求項１に記載のＶＰＮ装置であって、
前記通信障害検出部は、前記Ｐ２Ｐ通信時における、前記相手装置との通信のエラー発生率に基づき、前記エラー発生率が所定値を超えた状態が所定時間以上継続した場合に通信障害が発生したと判定するＶＰＮ装置。
【請求項４】
請求項１に記載のＶＰＮ装置であって、
前記通信制御部は、前記サーバ経由通信への移行処理を行う際に、前記相手装置との接続を制御する呼制御サーバに対して、前記サーバ経由通信を行う中継サーバの利用要求を送信し、前記呼制御サーバから中継サーバの利用応答があった場合に、指定された宛先の中継サーバに接続して前記相手装置との間で中継サーバを経由した通信を開始するＶＰＮ装置。
【請求項５】
ＩＰネットワークにおいて、相手装置との間で通信を行うＩＰ通信装置であって、
前記相手装置との間でＰ２Ｐ通信を行っているときに、このＰ２Ｐ通信が継続困難となる通信障害を検出する通信障害検出部と、
前記通信障害が検出された場合に、前記ＩＰネットワークに設けられた中継サーバ経由の通信であるサーバ経由通信への移行処理を行う通信制御部と、
を備えるＩＰ通信装置。
【請求項６】
ＩＰネットワークにおいて、複数の通信装置間の接続を制御する呼制御サーバの機能を持つサーバ装置であって、
前記複数の通信装置がＰ２Ｐ通信を行っているときに、いずれかの通信装置から、前記ＩＰネットワークに設けられた中継サーバの利用要求を受信した場合、中継サーバの使用可否を判定し、前記中継サーバへの接続先情報を含む中継サーバの利用応答を、前記利用要求のあった通信装置に対して返信し、この通信装置を前記中継サーバに接続させることで、Ｐ２Ｐ通信からサーバ経由通信への移行制御を行う通信移行制御部を備えるサーバ装置。
【請求項７】
請求項６に記載のサーバ装置であって、
前記通信移行制御部は、前記中継サーバの利用要求を受信したときに、指定された通信に関して、既に中継指示中である場合、あるいは、中継サーバの割り当てがある場合には、中継サーバ利用不可の応答を前記利用要求のあった通信装置に対して返信するサーバ装置。
【請求項８】
ＩＰネットワークにおいて、相手装置との間で仮想プライベートネットワークを構築して通信を行うＶＰＮ装置における通信方法であって、
前記相手装置との間でＰ２Ｐ通信を行っているときに、このＰ２Ｐ通信が継続困難となる通信障害を検出するステップと、
前記通信障害が検出された場合に、前記ＩＰネットワークに設けられた中継サーバ経由の通信であるサーバ経由通信への移行処理を行うステップと、
を有する通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のネットワーク間で経路を構築して互いに通信するＶＰＮ（Virtual Private Network）装置及びＩＰ（Internet Protocol）通信装置、並びにサーバ装置に関する。
【背景技術】
【０００２】
仮想プライベートネットワーク（ＶＰＮ：Virtual Private Network、以下、ＶＰＮと記載する）を構築するＶＰＮ装置、あるいはＩＰ電話による通話を行うＩＰ電話装置等のＩＰ通信装置は、ＩＰネットワークにおいて通信相手との間で環境に応じて通信経路を構築して通信を行う。ここではＶＰＮ装置を使用する場合を想定して説明する。ＶＰＮでは、例えば、企業内等の２以上の拠点のローカルエリアネットワーク（ＬＡＮ）相互間などのように、一般に、異なるネットワークセグメントを、広域ネットワーク（ＷＡＮ）などを介して互いに接続する。そして、ネットワーク間の通信の秘匿性を担保することで、仮想的に全体が１つのプライベートネットワークであるように構成する。これにより、専用線を利用する場合と同様の通信サービスを可能にする。
【０００３】
ＶＰＮを構築する場合は、ネットワークの中継装置または通信を行う端末等（以降、これらを「ピア」とも称する）に設けたＶＰＮ装置によって、パケットを暗号化及びカプセル化して仮想トンネルを構築する。これにより、ピア間を結ぶ閉じられた仮想的な直接通信（以下、Ｐ２Ｐ（Peer to Peer（ピアツーピア））通信ともいう）回線をインターネット等を介したネットワーク上に確立する。また、上記ネットワーク上の仮想的な直接通信回線を介したＰ２Ｐ通信以外の方法によって、複数の通信装置間で通信を行うときの通信経路を設定することも考えられる。例えばネットワーク上にデータ通信を中継する中継サーバを設け、中継サーバを介して通信を行うことも考えられる。
【０００４】
このように複数の通信装置間で通信を行うための通信経路が複数存在する場合に、最短経路（最短時間でデータ伝送が可能となる通信経路）として、送信要求の送出後に最先に応答が返送された通信経路を選択する技術が知られている（例えば、特許文献１参照）。また、周知のダイクストラ法を用いて、２台の通信装置間で通信を行うときの通信経路を最短距離に設定する技術が知られている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平８−２２８１９２号公報
【特許文献２】特表平１１−５０８７５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ネットワーク上で複数の通信装置が通信を行う場合、上記のように、Ｐ２Ｐ通信を行うケースと、中継サーバなどを経由した通信を行うケースとに大別される。この際、通信の効率等の観点からはＰ２Ｐ通信が望ましいため、従来のＶＰＮ装置等のＩＰ通信装置では、可能であるならばＰ２Ｐ通信を行うようになっている。
【０００７】
しかしながら、Ｐ２Ｐ通信においては、その通信が特定の回線を利用する場合（例えばイントラネット内で集約する場合）には、一般回線とは異なり、通信障害が発生するとそのリカバリー処理（迂回接続など）が行われず、通信品質が悪化する、もしくは通信が不可になることが生じ得る。これに対し、通信障害が生じて通信状況が悪化した場合に、一旦公衆回線を経由することで正常にリカバリー処理（通信障害発生の箇所を避けた迂回通信）が可能になり、通信が安定して行える場合がある。
【０００８】
本発明は、上記事情に鑑みてなされたもので、その目的は、Ｐ２Ｐ通信中に通信障害が発生した場合にも安定した通信を継続することが可能なＶＰＮ装置及びＩＰ通信装置、サーバ装置を提供することにある。
【課題を解決するための手段】
【０００９】
本発明は、ＩＰネットワークにおいて、相手装置との間で仮想プライベートネットワークを構築して通信を行うＶＰＮ装置であって、前記相手装置との間でＰ２Ｐ通信を行っているときに、このＰ２Ｐ通信が継続困難となる通信障害を検出する通信障害検出部と、前記通信障害が検出された場合に、前記ＩＰネットワークに設けられた中継サーバ経由の通信であるサーバ経由通信への移行処理を行う通信制御部と、を備えるＶＰＮ装置を提供する。
上記構成により、Ｐ２Ｐ通信中に通信障害が発生した場合、中継サーバを用いたサーバ経由通信に移行することで、安定した通信を継続することが可能となる。
【００１０】
また、本発明は、上記のＶＰＮ装置であって、前記通信障害検出部は、前記Ｐ２Ｐ通信時における、前記相手装置からのＫｅｅｐ−ａｌｉｖｅパケットの受信に基づき、所定期間以上前記Ｋｅｅｐ−ａｌｉｖｅパケットの受信が無い場合に通信障害が発生したと判定するものを含む。
上記構成により、Ｋｅｅｐ−ａｌｉｖｅパケットの受信の有無によって、通信障害の発生を検出し、通信障害発生時の処理（通信経路の切替処理）を実行可能である。
【００１１】
また、本発明は、上記のＶＰＮ装置であって、前記通信障害検出部は、前記Ｐ２Ｐ通信時における、前記相手装置との通信のエラー発生率に基づき、前記エラー発生率が所定値を超えた状態が所定時間以上継続した場合に通信障害が発生したと判定するものを含む。
上記構成により、エラー発生率の高さ及びその継続時間によって、通信障害の発生を検出し、通信障害発生時の処理（通信経路の切替処理）を実行可能である。
【００１２】
また、本発明は、上記のＶＰＮ装置であって、前記通信制御部は、前記サーバ経由通信への移行処理を行う際に、前記相手装置との接続を制御する呼制御サーバに対して、前記サーバ経由通信を行う中継サーバの利用要求を送信し、前記呼制御サーバから中継サーバの利用応答があった場合に、指定された宛先の中継サーバに接続して前記相手装置との間で中継サーバを経由した通信を開始するものを含む。
上記構成により、通信障害が発生した場合に、中継サーバを用いたサーバ経由通信への移行処理が可能となり、安定した通信を継続することができる。
【００１３】
また、本発明は、ＩＰネットワークにおいて、相手装置との間で通信を行うＩＰ通信装置であって、前記相手装置との間でＰ２Ｐ通信を行っているときに、このＰ２Ｐ通信が継続困難となる通信障害を検出する通信障害検出部と、前記通信障害が検出された場合に、前記ＩＰネットワークに設けられた中継サーバ経由の通信であるサーバ経由通信への移行処理を行う通信制御部と、を備えるＩＰ通信装置を提供する。
【００１４】
また、本発明は、ＩＰネットワークにおいて、複数の通信装置間の接続を制御する呼制御サーバの機能を持つサーバ装置であって、前記複数の通信装置がＰ２Ｐ通信を行っているときに、いずれかの通信装置から、前記ＩＰネットワークに設けられた中継サーバの利用要求を受信した場合、中継サーバの使用可否を判定し、前記中継サーバへの接続先情報を含む中継サーバの利用応答を、前記利用要求のあった通信装置に対して返信し、この通信装置を前記中継サーバに接続させることで、Ｐ２Ｐ通信からサーバ経由通信への移行制御を行う通信移行制御部を備えるサーバ装置を提供する。
上記構成により、通信装置から中継サーバの利用要求があった場合に、その通信装置を中継サーバに接続させてＰ２Ｐ通信からサーバ経由通信への移行させることが可能となる。
【００１５】
また、本発明は、上記のサーバ装置であって、前記通信移行制御部は、前記中継サーバの利用要求を受信したときに、指定された通信に関して、既に中継指示中である場合、あるいは、中継サーバの割り当てがある場合には、中継サーバ利用不可の応答を前記利用要求のあった通信装置に対して返信するものを含む。
上記構成により、通信を行っている両方の通信装置でサーバ経由通信への移行処理が同時に発生し、中継サーバの利用要求が重複した場合でも、片方を抑制し、矛盾なく中継サーバ経由の通信へ移行することが可能となる。
【００１６】
また、本発明は、ＩＰネットワークにおいて、相手装置との間で仮想プライベートネットワークを構築して通信を行うＶＰＮ装置における通信方法であって、前記相手装置との間でＰ２Ｐ通信を行っているときに、このＰ２Ｐ通信が継続困難となる通信障害を検出するステップと、前記通信障害が検出された場合に、前記ＩＰネットワークに設けられた中継サーバ経由の通信であるサーバ経由通信への移行処理を行うステップと、を有する通信方法を提供する。
上記手順により、Ｐ２Ｐ通信中に通信障害が発生した場合、中継サーバを用いたサーバ経由通信に移行することで、安定した通信を継続することが可能となる。
【発明の効果】
【００１７】
本発明によれば、Ｐ２Ｐ通信中に通信障害が発生した場合にも安定した通信を継続することが可能なＶＰＮ装置及びＩＰ通信装置、サーバ装置を提供できる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施形態に係るＩＰ通信装置を用いてＶＰＮシステムを構築した場合のネットワークの構成例を示す図
【図２】本実施形態に係るＩＰ通信装置（ＶＰＮ装置）のハードウェア構成の構成例を示すブロック図
【図３】本実施形態に係るＩＰ通信装置（ＶＰＮ装置）の機能的な構成例を示すブロック図
【図４】中継サーバによるサーバ経由通信とＰ２Ｐ通信とを同時に行っている状態を示す模式図
【図５】本実施形態に係るＩＰ通信装置（ＶＰＮ装置）を用いたＶＰＮシステムにおいてＰ２Ｐ通信を行うまでの各装置間の通信処理手順を示すシーケンス図
【図６】本実施形態のＩＰ通信装置（ＶＰＮ装置）における通信障害検出処理の動作アルゴリズムを示すフローチャート
【図７】本実施形態のＩＰ通信装置（ＶＰＮ装置）におけるサーバ経由通信移行処理の動作アルゴリズムを示すフローチャート
【図８】第１の実施形態に係るＩＰ通信装置（ＶＰＮ装置）を用いたＶＰＮシステムにおいてＰ２Ｐ通信からサーバ経由通信への移行時の各装置間の通信処理手順を示すシーケンス図
【図９】第２の実施形態に係るＩＰ通信装置（ＶＰＮ装置）を用いたＶＰＮシステムにおいてＰ２Ｐ通信からサーバ経由通信への移行時の各装置間の通信処理手順を示すシーケンス図
【図１０】第３の実施形態に係るＩＰ通信装置（ＶＰＮ装置）を用いたＶＰＮシステムにおいてＰ２Ｐ通信からサーバ経由通信への移行時の各装置間の通信処理手順を示すシーケンス図
【発明を実施するための形態】
【００１９】
以下に、本発明に係るＶＰＮ装置及びＩＰ通信装置の一例としての実施形態を説明する。ここでは、広域ネットワーク（ＷＡＮ、グローバルネットワーク）を介して２つのローカルエリアネットワークの経路（ＬＡＮ、ローカルネットワーク）を経路接続して仮想プライベートネットワーク（ＶＰＮ）システムを構築する場合の構成例を示す。ＬＡＮとしては、有線ＬＡＮまたは無線ＬＡＮなどが用いられる。ＷＡＮとしては、インターネット等が用いられる。
【００２０】
図１は本発明の実施形態に係るＩＰ通信装置を用いてＶＰＮシステムを構築した場合のネットワークの構成例を示す図である。本実施形態のＶＰＮシステムは、一つの拠点に設けられたＬＡＮ１００と、他の拠点に設けられたＬＡＮ３００とを、インターネット等のＷＡＮ２００を介して通信経路を接続する。そして、ＬＡＮ１００の配下に接続された端末１０３とＬＡＮ３００の配下に接続された端末３０３との間で、ＶＰＮによる秘匿性を担保した通信（「ＶＰＮ通信」とも称する）を可能にしている。具体的なＶＰＮ通信の用途（アプリケーションプログラム等）としては、ＩＰ電話（音声通話）、ネットミーティング（動画＆音声通信）、ネットワークカメラ（ビデオ伝送）などが想定される。
【００２１】
ＬＡＮ１００とＷＡＮ２００との境界には中継装置としてのルータ１０２が配設され、ＷＡＮ２００とＬＡＮ３００との境界には中継装置としてのルータ３０２が配設されている。また、本実施形態では、ＶＰＮの構築を可能にするために、ＬＡＮ１００にはＶＰＮ装置１０１が接続され、ＬＡＮ３００にはＶＰＮ装置３０１が接続されている。そして、ＶＰＮ装置１０１には配下の端末１０３が接続され、ＶＰＮ装置３０１には配下の端末３０３が接続されている。ここで、ＶＰＮ装置１０１、３０１はそれぞれ本発明の「ＩＰ通信装置」に相当する。なお、本実施形態に係るＩＰ通信装置の一例としてのＶＰＮ装置１０１、３０１は、ここでは通信装置または中継装置等において構成される独立した装置の構成例を示しているが、ＬＡＮ内の他の通信機器または端末等においてＶＰＮ機能を有する装置として構成することも可能である。
【００２２】
また、ＷＡＮ２００上には、ＶＰＮ装置１０１とＶＰＮ装置３０１との間のＶＰＮによる接続（以下、「ＶＰＮ接続」と称する）を可能にするためのサーバ装置として、ＳＴＵＮサーバ２０１と呼制御サーバ２０２とが接続されている。ＳＴＵＮサーバ２０１は、ＳＴＵＮ（Simple Traversal of User Datagram Protocol (UDP) through Network Address Translators (NATs)）プロトコルを実行するために用いられるサーバである。呼制御サーバ２０２は、ＶＰＮ装置または端末等のピア間の発呼、被呼のために用いられるサーバである。
【００２３】
図１において、破線は外部アドレス（グローバルＩＰアドレス）とポートの情報を含む外部アドレス・ポート情報の流れを示している。また、一点鎖線は発呼及び被呼の制御に関する呼制御信号の流れを示している。また、実線はピア間で伝送される通信データに関するピア間通信（Ｐ２Ｐ（ピアツーピア）通信）の流れを示している。さらに、Ｐ２Ｐ通信のためにＶＰＮ接続された通信経路を仮想トンネルとして、図中に表す。
【００２４】
各機器がＷＡＮ２００を介して通信する場合、ＷＡＮ２００上では、伝送するパケットの発呼側または被呼側を特定するためのアドレス情報として、ＷＡＮにおいて特定可能なグローバルなアドレス情報が用いられる。一般にはＩＰネットワークが用いられるため、グローバルＩＰアドレス及びポート番号が用いられる。しかし、各ＬＡＮ１００、３００内の通信においては、発呼側または被呼側を特定するためのアドレス情報として、ＬＡＮ内のみで特定可能なローカルなアドレス情報が用いられる。一般にはＩＰネットワークが用いられるため、ローカルＩＰアドレス及びポート番号が用いられる。したがって、各ＬＡＮ１００、３００とＷＡＮ２００との間の通信を可能にするために、アドレス変換機能の例として、ローカルなアドレス情報とグローバルなアドレス情報との相互変換を行うＮＡＴ（Network Address Translation）機能が、複数ネットワーク間を接続する中継装置としての各ルータ１０２、３０２に搭載されている。すなわち、アドレス変換機能とは、ＩＰネットワーク層のＩＰアドレスと、トランスポート層のポートとを含めた、いわゆるＮＡＰＴ（Network Address Port Translation）に相当する相互変換を行う。以下本発明の説明において、ＮＡＴ機能とは狭義のＮＡＰＴ機能を含めた広義のＮＡＴ機能を指すものとする。
【００２５】
ただし、ＬＡＮ１００、３００の配下の各端末１０３、３０３においては、外部からアクセス可能なグローバルなアドレス情報を自身で持っていない。また、特別な設定を行わない限り、ＬＡＮ１００配下の端末１０３が他のＬＡＮ３００配下の端末３０３と直接通信することはできない。また、各ルータ１０２、３０２のＮＡＴ機能のため、普通の状態ではＷＡＮ２００側から各ＬＡＮ１００、３００内の各端末にアクセスすることもできない。すなわち「外部アドレス・ポート情報」とは、ＷＡＮ２００へ接続するために必要なアドレス・ポート情報であって、ＬＡＮ１００、３００内で特定されるローカルなアドレス・ポート情報で機能しているＶＰＮ装置１０１、３０１からみて、グローバルネットワークＷＡＮ２００は外部にあたることから「外部アドレス・ポート情報」と略称する。なお、「アドレス・ポート」は、アドレスのみ、アドレス及びポート、のいずれかを意味するものとする。
【００２６】
このような状況であっても、本実施形態では、各拠点のＬＡＮにＶＰＮ装置１０１、３０１を設けることにより、図１において実線で示すＰ２Ｐ通信の経路のように、ＬＡＮ間をＶＰＮ接続して端末１０３と端末３０３との間で仮想的な閉じられた通信経路を通じて直接通信することが可能になる。本実施形態に係るＩＰ通信装置としてのＶＰＮ装置の構成、機能、及び動作については、以下に順を追って説明する。
【００２７】
ＳＴＵＮサーバ２０１は、ＳＴＵＮプロトコルの実行に関するサービスを行うもので、ＮＡＴを透過する通信（いわゆるＮＡＴ越えの通信）を行うために必要な情報を提供するアドレス情報サーバである。ＳＴＵＮは、音声、映像、文章などの双方向リアルタイムＩＰ通信を行うアプリケーションにおいて、ＮＡＴ透過の方法の１つとして使われる標準化されたクライアントサーバ型のインターネットプロトコルである。ＳＴＵＮサーバ２０１は、アクセス元からの要求に応じて、外部からアクセス可能な当該アクセス元に割り当てられているグローバルなアドレス情報として、外部ネットワークから見える外部アドレスとポートの情報を含む外部アドレス・ポート情報を返信する。外部アドレス・ポート情報としては、ＩＰネットワークにおいてはＩＰネットワーク層のグローバルＩＰアドレス及びトランスポート層のポート番号が用いられる。
【００２８】
各ＶＰＮ装置１０１、３０１は、ＳＴＵＮサーバ２０１との間で所定のテスト手順の通信を実行し、ＳＴＵＮサーバ２０１から自装置の通信のために割り当てられたグローバルＩＰアドレス及びポート番号が含まれる応答パケットを受信する。これにより、各ＶＰＮ装置１０１、３０１は自装置のグローバルＩＰアドレス及びポート番号を取得することができる。また、自装置の位置するＬＡＮとＷＡＮとの間にルータが複数存在する場合等であっても、また、これらのルータ等がＵＰｎＰ（Universal Plug and Play）の機能を有していない場合であっても、確実にＷＡＮ２００側と通信するために割り当てられたグローバルＩＰアドレス及びポート番号を取得できるという効果もある。
【００２９】
呼制御サーバ２０２は、特定の相手先を呼び出して通信経路を確立するための通信装置間の呼制御に関するサービスを行う呼管理サーバである。呼制御サーバ２０２は、登録された各ユーザのＶＰＮ装置または端末の識別情報を保持しており、例えばＩＰ電話の機能を有する通信システムの場合には、接続相手の電話番号に基づいて特定の相手先を呼び出すことができる。
【００３０】
また、ＷＡＮ２００上には、ＶＰＮ装置１０１とＶＰＮ装置３０１との間の通信を中継するためのサーバ装置として、中継サーバ２０３が接続されている。中継サーバ２０３は、Ｐ２Ｐ通信開始前またはＰ２Ｐ通信が不可の場合など、サーバ経由のＶＰＮ通信を行う際に、信号またはデータを中継する機能を有している。この中継サーバ２０３は、発呼側の装置から送出されたパケットを被呼側の装置に転送したり、被呼側の装置から送出されたパケットを発呼側の装置に転送したりする。この場合、ＶＰＮ装置１０１、ＶＰＮ装置３０１と中継サーバ２０３の間ではＶＰＮ接続された通信経路が確立され、前記Ｐ２Ｐ通信で確立したＶＰＮ接続同等の機能が実現されている。また、呼制御サーバ２０２においてもＶＰＮ接続開始時のＶＰＮ装置間の通信を中継する機能を有している。
【００３１】
なお、ＳＴＵＮサーバ２０１、呼制御サーバ２０２、及び中継サーバ２０３は、ここでは別個のサーバ装置による構成例を示しているが、１つのサーバ装置にこれらのアドレス情報サーバ、呼管理サーバ、中継サーバの各サーバの機能を搭載して構成してもよいし、ＷＡＮ上の他のいずれかのサーバ装置に同様の機能を搭載して構成することも可能である。
【００３２】
次に、本実施形態に係るＩＰ通信装置としてのＶＰＮ装置の構成及び機能について説明する。なお、ＶＰＮ装置１０１とＶＰＮ装置３０１の構成及び機能は同様であり、ここではＶＰＮ装置１０１によって説明する。図２は本実施形態に係るＩＰ通信装置（ＶＰＮ装置）のハードウェア構成の構成例を示すブロック図である。
【００３３】
ＶＰＮ装置１０１は、マイクロコンピュータ等による中央演算処理装置（ＣＰＵ）１１１、フラッシュＲＡＭ等による不揮発性メモリ１１２、ＳＤ ＲＡＭ等によるメモリ１１３、ネットワークインタフェース１１４、ネットワークインタフェース１１５、ＬＡＮ側ネットワーク制御部１１６、ＷＡＮ側ネットワーク制御部１１７、通信中継部１１８、表示制御部１１９、表示部１２０を有して構成される。
【００３４】
ＣＰＵ１１１は、所定のプログラムを実行することによりＶＰＮ装置１０１全体の制御を実施する。不揮発性メモリ１１２は、ＣＰＵ１１１が実行するプログラムを保持している。このプログラムの中には、ＶＰＮ装置１０１が他の通信装置との通信時の異常を検出して通信制御を行うための通信異常時制御プログラムも含まれている。
【００３５】
なお、ＣＰＵ１１１が実行するプログラムについては、任意の通信経路を経由してオンラインで外部のサーバから取得することもできるし、例えばメモリカード、ＣＤ−ＲＯＭのような記録媒体から読み込んで取得することもできる。換言すれば、汎用のコンピュータにＶＰＮ装置の機能を実現するプログラムを記録媒体から読み込むことによってＶＰＮ装置、およびＶＰＮネットワーキング方法を実現することができる。
【００３６】
なお、ＣＰＵ１１１がプログラムを実行する時には、不揮発性メモリ１１２上のプログラムの一部がメモリ１１３上に展開され、メモリ１１３上のプログラムが実行される場合もある。
【００３７】
メモリ１１３は、ＶＰＮ装置１０１の運用中のデータ管理、各種設定情報などを一時的に記憶するためのものである。設定情報としては、自装置の外部アドレス・ポート取得要求に対する応答に含まれる外部アドレス・ポート情報等、通信に必要な宛先アドレス情報などが含まれる。
【００３８】
ネットワークインタフェース１１４は、ＶＰＮ装置１０１と自装置が管理する配下の端末１０３とを通信可能な状態で接続するためのインタフェースである。ネットワークインタフェース１１５は、ＶＰＮ装置１０１とＬＡＮ１００とを通信可能な状態で接続するためのインタフェースである。ＬＡＮ側ネットワーク制御部１１６は、ＬＡＮ側のネットワークインタフェース１１４に関する通信制御を行うものである。ＷＡＮ側ネットワーク制御部１１７は、ＷＡＮ側のネットワークインタフェース１１５に関する通信制御を行うものである。
【００３９】
通信中継部１１８は、ＬＡＮ側に接続された配下の端末１０３から外部の被呼側（ＶＰＮ装置３０１配下の端末３０３）へ送出するパケットデータと、反対に、外部の被呼側（ＶＰＮ装置３０１配下の端末３０３）から配下の端末１０３宛に到着したパケットデータをそれぞれ中継する。
【００４０】
表示部１２０は、ＶＰＮ装置１０１としての動作状態の表示等を行う表示器により構成され、各種状態をユーザあるいは管理者に通知する。表示部１２０は、複数の発光ダイオード（ＬＥＤ）または液晶表示器（ＬＣＤ）等により構成される。表示制御部１１９は、表示部１２０の表示制御を行うもので、ＣＰＵ１１１からの表示信号に従って表示部１２０に表示する内容等を制御する。
【００４１】
図３は本実施形態に係るＩＰ通信装置（ＶＰＮ装置）の機能的な構成例を示すブロック図である。
【００４２】
ＶＰＮ装置１０１は、機能構成として、システム制御部１３０、配下端末管理部１３１、メモリ部１３２、データ中継部１３３、設定用インタフェース部１３４、通信制御部１４０を有して構成される。メモリ部１３２は、外部アドレス・ポート情報記憶部１３５を有する。通信制御部１４０は、外部アドレス・ポート取得部１４１、ＶＰＮ機能部１４２、呼制御機能部１４３、通信障害検出部１４７を有する。ＶＰＮ機能部１４２は、暗号処理部１４５を有する。これらの各機能は、図２に示した各ブロックのハードウェアの動作、またはＣＰＵ１１１が所定のプログラムを実行することにより実現する。
【００４３】
なお、ＶＰＮ装置１０１のＬＡＮ側のネットワークインタフェース１１４は、配下の端末１０３と接続され、ＷＡＮ側のネットワークインタフェース１１５は、ＬＡＮ１００及びルータ１０２を経由してＷＡＮ２００と接続される。
【００４４】
システム制御部１３０は、ＶＰＮ装置１０１の全体の制御を行う。配下端末管理部１３１は、ＶＰＮ装置１０１配下の端末１０３の管理を行う。メモリ部１３２は、外部アドレス・ポート情報記憶部１３５において、外部アドレス（ＷＡＮ２００上でのグローバルＩＰアドレス）とポート（ＩＰネットワークのポート番号）の情報を含む外部アドレス・ポート情報を記憶する。外部アドレス・ポート情報としては、発呼側である配下の端末１０３に割り当てられたグローバルＩＰアドレス及びポート番号の情報、被呼側の端末３０３に割り当てられたグローバルＩＰアドレス及びポート番号の情報などを記憶する。また、外部アドレス・ポート情報記憶部１３５には、自装置と外部ネットワークとの間のＮＡＴ種別情報を記憶する場合もある。
【００４５】
データ中継部１３３は、発呼側の端末１０３から被呼側の端末３０３に向かって転送されるパケット、あるいは、逆に被呼側の端末３０３から発呼側の端末１０３に向かって転送されるパケットをそれぞれ中継（送信／受信）する。設定用インタフェース部１３４は、ユーザあるいは管理者がＶＰＮ装置１０１に対する設定操作等の各種操作を行うためのユーザインタフェースである。このユーザインタフェースの具体例として、端末上で動作するブラウザによって表示するＷｅｂページなどが用いられる。
【００４６】
通信制御部１４０の外部アドレス・ポート取得部１４１は、ＶＰＮ装置１０１の配下の端末１０３に割り当てられた外部アドレス・ポート情報をＳＴＵＮサーバ２０１から取得する。また、被呼側の端末３０３の外部アドレス・ポート情報を含むパケットを呼制御サーバ２０２を経由して受信し、被呼側の端末３０３に割り当てられた外部アドレス・ポート情報を取得する。外部アドレス・ポート取得部１４１が取得した情報は、メモリ部１３２の外部アドレス・ポート情報記憶部１３５に保持される。
【００４７】
通信制御部１４０のＶＰＮ機能部１４２は、暗号処理部１４５において、ＶＰＮ通信のために必要な暗号処理を行う。すなわち、暗号処理部１４５は、送信するパケットをカプセリングして暗号化したり、受信したパケットをアンカプセリングして復号化して元のパケットを抽出したりする。なお、ＶＰＮ通信は、図１に示したようなＶＰＮ装置間を直接接続するＰ２Ｐ通信ではなく、ＷＡＮ２００上に設けられる中継サーバ２０３でパケットの中継を行い、クライアント／サーバ方式でＶＰＮ通信を行うことも可能である。この場合には、サーバ側で暗号／復号化処理を行うようにしてもよい。また、カプセリングされたパケット中には、自装置配下の端末１０３を特定するための情報や、相手装置配下の端末３０３を特定するための情報が含まれる。この特定情報に基づいて、ＶＰＮ装置及びＶＰＮ装置配下の端末間でデータ中継部１３３により通信データが中継される。
【００４８】
通信制御部１４０の呼制御機能部１４３は、目的の被呼側に接続するための接続要求を呼制御サーバ２０２に送信したり、被呼側からの接続応答を呼制御サーバ２０２を経由して受信するための処理を実施したりする。
【００４９】
通信制御部１４０の通信障害検出部１４７は、Ｐ２Ｐ通信時等における通信障害を検出する機能を有している。例えば、通信障害検出部１４７は、ネットワーク上での接続が有効であることを確認するために定期的に行われる通信であるＫｅｅｐ−ａｌｉｖｅパケットを用いて通信障害を検出する。ここで、Ｐ２Ｐ通信開始時から通信相手からのＫｅｅｐ−ａｌｉｖｅパケットの受信と通信品質（通信のエラー発生率）を測定し、所定期間以上相手からのＫｅｅｐ−ａｌｉｖｅパケットが受信できない場合、あるいは所定時間以上通信のエラー発生率が非常に高い（例：エラー発生率６０％以上が継続する）場合には、Ｐ２Ｐ通信の環境が正常ではないと判断する。この通信障害検出部１４７による通信障害検出処理及び呼制御機能部１４３による通信制御処理の動作の詳細については後で説明する。
【００５０】
本実施形態の通信制御部１４０は、相手装置との間で、中継サーバ２０３等の中継サーバ経由の通信を行うサーバ経由通信と、Ｐ２Ｐ通信とが可能となっている。呼制御機能部１４３は、通信障害検出部１４７により通信障害が検出されてＰ２Ｐ通信が継続困難な状態であると判断された場合に、サーバ経由通信への移行処理を行う機能を有している。
【００５１】
次に、本実施形態に係るＩＰ通信装置による通信障害検出処理及びサーバ経由通信移行処理の動作について説明する。
【００５２】
（第１の実施形態）
本発明に係るＩＰ通信装置では、相手装置との間でＰ２Ｐ通信を行っているときに、Ｐ２Ｐ通信が継続困難な通信障害が発生したかを判断する通信障害検出処理を行う。ここで、Ｐ２Ｐ通信中に通信障害が発生した場合、現在の通信をＰ２Ｐ通信から中継サーバ２０３等を用いたサーバ経由の通信に変更することで、安定した通信環境を提供する。通信障害の判定のための継続時間としては、一時的な通信悪化はネットワーク上では通常考慮されるべき事象であるため、一時的ではない所定以上の継続時間で異常が発生した場合に、通信障害が発生したと判断する。例えば、Ｋｅｅｐ−ａｌｉｖｅパケットが三回連続受信できない程度の時間などで継続して異常が発生した場合に、Ｐ２Ｐ通信が継続困難な通信障害状態であると判断する。通信障害が検出された場合、サーバ経由通信移行処理を実行し、Ｐ２Ｐ通信からサーバ経由の通信に切り替える。これにより、通信障害が生じて通信状況が悪化した場合に、正常にリカバリー処理を実行でき、通信を安定して継続することが可能である。
【００５３】
ここで、中継サーバによるサーバ経由通信とＰ２Ｐ通信とを同時に行う場合の動作例を説明する。図４は中継サーバによるサーバ経由通信とＰ２Ｐ通信とを同時に行っている状態を示す模式図である。図４の例では、インターネット網等のＷＡＮ５００に第１のＬＡＮのＮＡＴルータ５２１と、第２のＬＡＮのＮＡＴルータ５２２とが接続される。そして、ＮＡＴルータ５２１を介してＶＰＮ装置５１１、通信装置５３１が順に接続され、ＮＡＴルータ５２２を介してＶＰＮ装置５１２、通信装置５３２が順に接続されている。また、ＷＡＮ５００には中継サーバ５０３が接続されている。ＶＰＮ装置５１１とＶＰＮ装置５１２とをＶＰＮ接続して秘匿性を有する通信経路を確保する場合、サーバ経由通信とＰ２Ｐ通信とでＶＰＮ通信を実現することが可能である。サーバ経由通信の場合、発呼側の通信装置から送出された信号またはデータを含むパケットは一旦中継サーバ５０３を介して中継され、被呼側の通信装置に転送される。Ｐ２Ｐ通信の場合は、発呼側の通信装置から送出されたパケットは直接被呼側の通信装置に転送される。
【００５４】
サーバ経由通信とＰ２Ｐ通信とを併用する例として、例えば、まず最初にサーバ経由通信でＶＰＮ通信を開始し、その後Ｐ２Ｐの通信経路が確保できてからＰ２Ｐ通信を行うことが考えられる。このようなＶＰＮ通信の手順を用いることで、より短時間でＶＰＮ通信を開始できるとともに、Ｐ２Ｐ通信の実行によって通信効率を高めることができる。また、上述したように、Ｐ２Ｐ通信中に通信障害が発生した場合、サーバ経由通信に切り替えて安定した通信環境を維持することもできる。
【００５５】
ここで、通信に用いるポートは、例えばサーバ経由通信用のポートとＰ２Ｐ通信用のポートとで別のポートを用いるようにする。なお、サーバ経由通信とＰ２Ｐ通信のプロトコルが異なる場合には、ポート番号が同一でも影響を与えないため、同一のポートを用いることも可能である。本明細書では、便宜上同一プロトコルでの通信を前提にした説明を行う。このため、サーバ経由通信とは異なるポートでＰ２Ｐ通信を行うものとする。
【００５６】
第１の実施形態では、Ｐ２Ｐ通信を行っているときに一方のＩＰ通信装置（ＶＰＮ装置）において通信障害を検出する。ここで、通信の異常状態が所定時間以上継続し、通信障害が発生したと判断された場合は、Ｐ２Ｐ通信からサーバ経由通信に移行する。
【００５７】
まず、ＶＰＮ装置による接続開始からＰ２Ｐ通信を行うまでの処理について説明する。図５は本実施形態に係るＩＰ通信装置（ＶＰＮ装置）を用いたＶＰＮシステムにおいてＰ２Ｐ通信を行うまでの各装置間の通信処理手順を示すシーケンス図である。ここでは、図１のネットワーク構成において、ＶＰＮ装置１０１の配下の端末１０３からＷＡＮ２００を経由して他のＶＰＮ装置３０１の配下の端末３０３に接続しようとする場合の処理を示している。
【００５８】
まず、ＶＰＮ装置１０１は、呼制御サーバ２０２にログインしてユーザ認証を受けるようにする（Ｓ１０１）。ＶＰＮ装置１０１がユーザ認証に成功した場合、呼制御サーバ２０２において、ＶＰＮ装置１０１の識別情報（ＭＡＣアドレス、ユーザＩＤ、電話番号など）やネットワーク上の位置情報（グローバルＩＰアドレス）等の登録、設定が行われる。以降、ＶＰＮ装置１０１と呼制御サーバ２０２との間で通信可能となる。なお、ＶＰＮ装置１０１は発呼側であるが、被呼側であるＶＰＮ装置３０１についても同様に、呼制御サーバ２０２にログインしてユーザ認証を受け、呼制御サーバ２０２においてＶＰＮ装置３０１の識別情報等の登録、設定が行われる（Ｓ１０２）。
【００５９】
そして、ＶＰＮ装置１０１は、配下の端末１０３からのＶＰＮ接続の接続要求を受けると、ルータ１０２を介して呼制御サーバ２０２に対して、接続先の端末３０３を配下に持つＶＰＮ装置３０１へのＶＰＮの通信経路を構築するための接続要求を送信する（Ｓ１０３）。呼制御サーバ２０２は、この接続要求を中継してルータ３０２を介してＶＰＮ接続の接続先となるＶＰＮ装置３０１へ送信する（Ｓ１０４）。
【００６０】
接続先のＶＰＮ装置３０１は、呼制御サーバ２０２からの接続要求を受けると、接続応答を返信する（Ｓ１０５）。呼制御サーバ２０２は、ＶＰＮ装置３０１からの接続応答を中継して接続元のＶＰＮ装置１０１へ送信する（Ｓ１０６）。
【００６１】
ＶＰＮ装置１０１は、呼制御サーバ２０２から接続応答を受けると、接続先のＶＰＮ装置３０１との間でＰ２Ｐ通信用の通信経路を確立し、ＶＰＮ装置１０１、３０１間でＰ２Ｐ通信にてデータ通信を開始する（Ｓ１０７）。この際、Ｐ２Ｐ通信用のポートを用いて、ＶＰＮ装置１０１とＶＰＮ装置３０１との間でＷＡＮ２００を経由して直接データ通信を行う。なお、この際、接続元のＶＰＮ装置１０１と接続先のＶＰＮ装置３０１とは、Ｐ２Ｐ通信用の自装置の外部アドレス・ポート情報などを相手装置に通知する。これにより、お互いに相手のＰ２Ｐ通信用の外部アドレス・ポート情報（グローバルＩＰアドレス及びポート番号）を取得し、直接ＶＰＮ接続可能にする。自装置の外部アドレス・ポート情報を取得するには、ＳＴＵＮサーバ２０１に対して外部アドレス・ポート取得要求を送信し、ＳＴＵＮサーバ２０１から返信される外部アドレス・ポート情報を受信する。
【００６２】
なお、Ｐ２Ｐ通信を行う前に、一旦呼制御サーバ２０２経由で通信を開始したり、中継サーバ２０３を用いたサーバ経由通信を行ってもよい、この場合、より短時間で通信相手とのＶＰＮ通信を開始できる。
【００６３】
次に、本実施形態における通信障害検出処理について説明する。図６は本実施形態のＩＰ通信装置（ＶＰＮ装置）における通信障害検出処理の動作アルゴリズムを示すフローチャートである。ここでは、通信障害検出処理として、Ｐ２Ｐ通信中のときに定期的に通信の状態を監視し、通信障害の発生の有無を判断する。図６の処理例は、通信相手とのＫｅｅｐ−ａｌｉｖｅ確認動作（Ｋｅｅｐ−ａｌｉｖｅパケットの確認）を行う通信方式に適用した例を示しているが、本動作を行わない通信形態も存在する。この場合には本処理を省略することも可能であるが、ここでは通信相手とのＫｅｅｐ−ａｌｉｖｅ確認動作を行っていることを前提に説明を行う。この通信障害検出処理は、Ｐ２Ｐ通信中の定期診断として、所定のタイマにより定期的に実行するものとする。
【００６４】
通信障害検出部１４７は、まず、Ｋｅｅｐ−ａｌｉｖｅパケットを最後に受信した時間を取得する（ステップＳ１１）。Ｋｅｅｐ−ａｌｉｖｅパケットの送受信処理は、本処理とは別のルーチンで実行される。Ｋｅｅｐ−ａｌｉｖｅ送信は、一定時間おきにＮＡＴの通信ポート維持と通信経路が存在することを通信相手に通知する目的で行うもので、Ｋｅｅｐ−ａｌｉｖｅメッセージを通信相手に送信する。Ｋｅｅｐ−ａｌｉｖｅ受信は、通信相手との通信経路が確立されていることを確認するもので、Ｋｅｅｐ−ａｌｉｖｅメッセージを受信したら、その受信時間情報を記憶部に記憶する。そして、通信障害検出部１４７は、記憶部からＫｅｅｐ−ａｌｉｖｅメッセージの受信時間情報を取り出し、最終受信時間を取得する。
【００６５】
次に、通信障害検出部１４７は、取得したＫｅｅｐ−ａｌｉｖｅパケットの最終受信時間から現在の時間までの、Ｋｅｅｐ−ａｌｉｖｅパケットの未受信時間を算出し、未受信時間が所定の規定値を超えたかどうかを判断する（ステップＳ１２）。この既定値は、通信経路保障時間に対応するものであり、ここではＫｅｅｐ−ａｌｉｖｅパケットを最後に受信してから通信経路が保障されている時間が経過していないかを判定する。
【００６６】
Ｋｅｅｐ−ａｌｉｖｅパケットの未受信時間が通信経路保障時間を経過していた場合には、通信障害検出部１４７は、その通信経路において一定時間Ｋｅｅｐ−ａｌｉｖｅパケットが受信できておらず、通信経路が不安定（もしくは存在しないもの）と判定する。すなわち、通信障害検出部１４７は、このＫｅｅｐ−ａｌｉｖｅパケットの未受信時間が通信経路保障時間を経過したことの判定によって、現在の通信経路の通信障害を検出したと判断する。呼制御機能部１４３は、通信障害検出部１４７において通信障害が検出された場合、現在の通信経路を中継サーバ経由に移行するサーバ経由通信移行処理を実行する（ステップＳ１３）。このサーバ経由通信移行処理については後述する。
【００６７】
また、Ｋｅｅｐ−ａｌｉｖｅパケットの未受信時間が通信経路保障時間を経過していない場合、通信障害検出部１４７は、現在の通信経路が有効であると判断して、次に通信状態の確認を行う。通信状態の確認動作として、まず、通信中のパケットのエラー発生率（通信エラー発生率）を取得する（ステップＳ１４）。ここでいう通信エラー発生率とは、受信したパケットの正当性などを確認し通信エラーが発生した割合であり、本処理とは別に独立した制御方式で統計情報を取得しているものとする。そして、通信障害検出部１４７は、通信エラー発生率が所定の規定値を超えたかどうかを判断する（ステップＳ１５）。この規定値は、例えば６０％など、所定のエラーレートを適宜用い、通信エラー状態の発生を判定する。
【００６８】
通信エラー発生率が規定値を超えた場合、エラー発生測定回数（通信エラー発生率の規定値超過が連続で発生した回数）に１を加算し（ステップＳ１６）、このエラー発生測定回数を所定の規定値と比較する（ステップＳ１７）。エラー発生測定回数の規定値は、本アルゴリズムの周期起動時間（Ｐ２Ｐ通信定期診断の間隔）に対し、通信エラー状態の判定（通信エラー発生率の規定値超過）が何回起こった場合にサーバ経由通信への移行処理を行うかを決定する値である。通常のネットワークでは、瞬間的な通信エラー発生は十分発生しうる事象であるため、「１」以上の規定値にするのが望ましい。ただし、安定したネットワーク環境が提供されていて、通信エラー発生が皆無と言う場合には、規定値として「０」を設定することも許容する。通信障害検出部１４７は、これらネットワークの環境と本Ｐ２Ｐ通信定期診断の間隔から決定された規定値と、エラー発生測定回数とを比較し、エラー発生測定回数が規定値を越えた場合には、現在の通信経路の通信障害を検出したと判断する。呼制御機能部１４３は、通信障害検出部１４７において通信障害が検出された場合、ステップＳ１３のサーバ経由通信移行処理を実行する。
【００６９】
また、ステップＳ１７でエラー発生測定回数が規定値以下の場合は、通信障害検出部１４７は、本Ｐ２Ｐ通信定期診断を再度実行するためのタイマを設定する（ステップＳ１８）。また、ステップＳ１５で通信エラー発生率が規定値以下の場合には、通信障害検出部１４７は、エラー発生測定回数を初期化し（ステップＳ１９）、ステップＳ１８の本Ｐ２Ｐ通信定期診断を再度実行するためのタイマ設定を行う。
【００７０】
このＰ２Ｐ通信定期診断を行うためのタイマ設定以降は、本タイマのタイムアウトによって、ステップＳ１１に戻って同様の処理を繰り返す。
【００７１】
なお、上記処理例では、連続した通信エラー発生によって通信障害を検出する方法を示したが、他の方法、例えばネットワーク上の通信状態の統計情報を収集し通信障害を検出する方法などでも同様の機能を得ることが可能である。
【００７２】
次に、本実施形態におけるサーバ経由通信移行処理について説明する。図７は本実施形態のＩＰ通信装置（ＶＰＮ装置）におけるサーバ経由通信移行処理の動作アルゴリズムを示すフローチャートである。
【００７３】
呼制御機能部１４３は、図６の通信障害検出処理により通信障害検出部１４７からサーバ経由通信移行処理が要求された場合、現在行っている通信相手とのＰ２Ｐ通信に対する中継サーバ利用要求を呼制御サーバ２０２に対して送信する（ステップＳ２１）。これに対し、呼制御サーバ２０２は中継サーバ２０３に対して中継指示を行い、中継サーバ２０３からの中継応答を取得し、中継サーバ利用要求を受けた通信装置に対して中継サーバ利用応答を返信する。そして、呼制御機能部１４３は、呼制御サーバ２０２からの中継サーバ利用応答を受信し（ステップＳ２２）、中継サーバの利用可否を判断する（ステップＳ２３）。ここで、中継サーバが利用できない場合は、本処理を終了する。
【００７４】
中継サーバが利用可能な場合は、呼制御機能部１４３は、現在のＰ２Ｐ通信から中継サーバ経由の通信への移行処理を実行する（ステップＳ２４）。そして、中継サーバ２０３からの通信情報を受信する（ステップＳ２５）。
【００７５】
図８は第１の実施形態に係るＩＰ通信装置（ＶＰＮ装置）を用いたＶＰＮシステムにおいてＰ２Ｐ通信からサーバ経由通信への移行時の各装置間の通信処理手順を示すシーケンス図である。このシーケンス図を用いて、第１の実施形態におけるサーバ経由通信移行処理を説明する。ここでは、図５と同様、図１のネットワーク構成において、ＶＰＮ装置１０１の配下の端末１０３と他のＶＰＮ装置３０１の配下の端末３０３とがＷＡＮ２００を経由して通信する場合の処理を示している。
【００７６】
図５に示した処理によって、ＶＰＮ装置１０１とＶＰＮ装置３０１とがＰ２Ｐ通信を行っているものとする（Ｓ２０１）。この際、ＶＰＮ装置１０１は、上記の通信障害検出処理によって所定間隔でＰ２Ｐ通信定期診断を行う。ここで、データ通信に異常が発生し、Ｐ２Ｐ通信の異常（通信障害）が検出された場合（Ｓ２０２）、ＶＰＮ装置１０１は、中継サーバ利用要求を呼制御サーバ２０２に対して送信する（Ｓ２０３）。呼制御サーバ２０２は、ＶＰＮ装置１０１から中継サーバ利用要求を受信すると、使用する中継サーバを選択し、選択した中継サーバ２０３に対して中継指示を行う（Ｓ２０４）。この中継指示には、中継サーバ利用要求発行元のＶＰＮ装置１０１の外部アドレス・ポート情報などの接続装置情報を含める。なお、接続装置情報には通信相手先のＶＰＮ装置３０１の外部アドレス・ポート情報などを含めてもよい。
【００７７】
中継サーバ２０３は、呼制御サーバ２０２からの中継指示を受信すると、自装置においてデータ通信の中継が可能かどうかを判断し、可能な場合は呼制御サーバ２０２へ中継応答を返信する（Ｓ２０５）。呼制御サーバ２０２は、中継サーバ２０３からの中継応答を受信すると、中継サーバ利用応答メッセージを中継サーバ利用要求があったＶＰＮ装置１０１に対して送信する（Ｓ２０６）。この中継サーバ利用応答には、利用する中継サーバ２０３の外部アドレス・ポート情報などを接続先情報として設定する。また、呼制御サーバ２０２は、中継サーバ選択処理において利用できる中継サーバが存在しない場合には、中継サーバ利用応答に中継サーバ利用ＮＧの情報を設定し、中継サーバ利用要求のあったＶＰＮ装置１０１に対して送信する。このように、呼制御サーバ２０２は、中継サーバ利用要求があった場合に中継サーバの使用可否を判定し、Ｐ２Ｐ通信からサーバ経由通信への移行制御を行う通信移行制御部の機能を有している。
【００７８】
ＶＰＮ装置１０１は、中継サーバ利用応答を受信待ちし、中継サーバ利用応答を受信すると、中継サーバ利用応答メッセージに設定されている情報を確認する。ここで、中継サーバ利用ＮＧの情報が設定されており、利用可能な中継サーバが存在しない場合には、中継サーバへの移行処理が行えないため、サーバ経由通信移行処理をそのまま終了する。ここでは、次のＰ２Ｐ通信定期診断のタイミングで通信障害が検出されれば、その際に再度サーバ経由通信移行処理が行われる可能性が高いため、リトライ処理などは行わない。
【００７９】
また、ＶＰＮ装置１０１は、中継サーバ利用応答において接続先情報が設定され、中継サーバの利用が可能な場合には、呼制御サーバ２０２により選択された中継サーバ２０３へのサーバ経由通信の移行処理を開始する。中継サーバへの移行処理としては、中継サーバ２０３へのログイン処理を行い（Ｓ２０７）、ログインが成功してログイン完了すると（Ｓ２０８）、通信相手のＶＰＮ装置３０１に対して呼制御サーバ２０２を介して中継サーバ接続指示メッセージを送信する（Ｓ２０９、Ｓ２１０）。この中継サーバ接続指示には、中継サーバ２０３の外部アドレス・ポート情報などを接続先情報として含める。
【００８０】
通信相手のＶＰＮ装置３０１は、呼制御サーバ２０２を介してＶＰＮ装置１０１からの中継サーバ接続指示を受信すると、接続先情報で指定された中継サーバ２０３へのログイン処理を行う（Ｓ２１１）。そして、ログイン完了すると（Ｓ２１２）、ＶＰＮ装置３０１は、呼制御サーバ２０２を介して、中継サーバ接続応答メッセージを中継サーバ接続指示送信元のＶＰＮ装置１０１に対して送信する（Ｓ２１３、Ｓ２１４）。
【００８１】
ＶＰＮ装置１０１は、通信相手のＶＰＮ装置３０１からの中継サーバ接続応答を受信すると、中継サーバ２０３との間でサーバ経由通信用の通信経路を確立し、中継サーバ２０３を経由して、ＶＰＮ装置３０１との間でサーバ経由通信にてデータ通信を開始する（Ｓ２１５、Ｓ２１６）。この際、サーバ経由通信用のポートを用いて、ＶＰＮ装置１０１−中継サーバ２０３−ＶＰＮ装置３０１においてデータ通信を行う。そして、通信相手のＶＰＮ装置３０１からの中継サーバ２０３を介したパケット（データ）を受信したら、既存のＰ２Ｐ通信のセッション（通信）に関しては終了する（Ｓ２１７）。このようにして、Ｐ２Ｐ通信中に通信障害が発生した場合、自動的にＰ２Ｐ通信経路から中継サーバを利用したサーバ経由通信経路に変更し、より安定した通信を行うことが可能となる。
【００８２】
（第２の実施形態）
第２の実施形態は、Ｐ２Ｐ通信を行っているときに双方のＩＰ通信装置（ＶＰＮ装置）において通信障害を検出する場合の処理例を示したものである。図６に示したＰ２Ｐ通信の定期診断は、通信を行っている装置双方で行うことも可能である。ここでは、両方の装置で通信障害が検出された場合の処理手順を示す。なお、第１の実施形態と異なる部分を中心に説明し、同様の動作については説明を省略する。
【００８３】
通信を行っている装置双方でＰ２Ｐ通信の定期診断を行う場合、通信障害を早く検出した装置から中継サーバへのサーバ経由通信移行処理が開始されるため、通信障害の状態が短くなるという効果がある。しかし、双方でＰ２Ｐ通信の定期診断を行った場合には、同時に通信障害を検出し、双方で中継サーバへのサーバ経由通信移行処理を行おうとする処理の衝突が発生する可能性がある。そこで、第２の実施形態では、双方の装置での処理の衝突を回避するように、呼制御サーバにおいて処理状態を管理する。
【００８４】
図９は第２の実施形態に係るＩＰ通信装置（ＶＰＮ装置）を用いたＶＰＮシステムにおいてＰ２Ｐ通信からサーバ経由通信への移行時の各装置間の通信処理手順を示すシーケンス図である。このシーケンス図を用いて、第２の実施形態におけるサーバ経由通信移行処理を説明する。
【００８５】
図５に示した処理によって、ＶＰＮ装置１０１とＶＰＮ装置３０１とがＰ２Ｐ通信を行っているものとする（Ｓ３０１）。この際、ＶＰＮ装置１０１は、上述した通信障害検出処理によって所定間隔でＰ２Ｐ通信定期診断を行う。ここで、データ通信に異常が発生し、Ｐ２Ｐ通信の異常（通信障害）が検出された場合（Ｓ３０２）、ＶＰＮ装置１０１は、中継サーバ利用要求を呼制御サーバ２０２に対して送信する（Ｓ３０３）。呼制御サーバ２０２は、ＶＰＮ装置１０１から中継サーバ利用要求を受信すると、使用する中継サーバを選択し、選択した中継サーバ２０３に対して接続装置情報を含めた中継指示を送信する（Ｓ３０４）。
【００８６】
また、通信相手のＶＰＮ装置３０１も同様に、上述した通信障害検出処理によって所定間隔でＰ２Ｐ通信定期診断を行う。ここで、データ通信に異常が発生し、Ｐ２Ｐ通信の異常（通信障害）が検出された場合（Ｓ３０５）、ＶＰＮ装置３０１は、中継サーバ利用要求を呼制御サーバ２０２に対して送信する（Ｓ３０６）。呼制御サーバ２０２は、中継サーバ利用要求を受信した際に、指定セッション（指定された通信）、すなわち、Ｐ２Ｐ通信からサーバ経由通信へ移行する要求を受けた対象の通信で既に中継サーバの選択及び中継指示を行っているかを判断する。ここで、指定セッションが既に中継指示中である場合は、中継サーバ利用不可の応答を返信する。図示例の場合、呼制御サーバ２０２は、ＶＰＮ装置３０１から中継サーバ利用要求を受信すると、指定セッションでの中継指示中であるかを判断する（Ｓ３０７）。この場合は中継指示中であるので、呼制御サーバ２０２は中継サーバ利用応答に中継サーバ利用ＮＧの情報を設定し、後に中継サーバ利用要求のあったＶＰＮ装置３０１に対して送信する（Ｓ３０８）。
【００８７】
中継サーバ２０３は、呼制御サーバ２０２からの中継指示を受信すると、自装置においてデータ通信の中継が可能かどうかを判断し、可能な場合は呼制御サーバ２０２へ中継応答を返信する（Ｓ３０９）。呼制御サーバ２０２は、中継サーバ２０３からの中継応答を受信すると、接続先情報を含めた中継サーバ利用応答メッセージを中継サーバ利用要求があったＶＰＮ装置１０１に対して送信する（Ｓ３１０）。
【００８８】
以降のＶＰＮ装置１０１の中継サーバ２０３へのログイン処理（Ｓ３１１）から、中継サーバ２０３を経由したサーバ経由通信への移行処理、及びＰ２Ｐ通信の終了処理（Ｓ３２１）までの処理手順は、上述した図８のＳ２０７〜Ｓ２１７の処理と同様であり、ここでは説明を省略する。
【００８９】
このように、呼制御サーバで処理状態を管理することにより、通信を行っている両方の装置で中継サーバを利用したサーバ経由通信への移行処理が同時に発生した場合でも、片方を抑制し、矛盾なく中継サーバ経由の通信へ移行することが可能となる。
【００９０】
（第３の実施形態）
第３の実施形態は、第２の実施形態の変形例であり、Ｐ２Ｐ通信を行っているときに双方のＩＰ通信装置（ＶＰＮ装置）において通信障害を検出する場合の他の処理例を示したものである。ここでは、第２の実施形態と同様に両方の装置で通信障害が検出された場合の処理手順を示す。なお、第１及び第２の実施形態と異なる部分を中心に説明し、同様の動作については説明を省略する。
【００９１】
図１０は第３の実施形態に係るＩＰ通信装置（ＶＰＮ装置）を用いたＶＰＮシステムにおいてＰ２Ｐ通信からサーバ経由通信への移行時の各装置間の通信処理手順を示すシーケンス図である。このシーケンス図を用いて、第３の実施形態におけるサーバ経由通信移行処理を説明する。
【００９２】
図５に示した処理によって、ＶＰＮ装置１０１とＶＰＮ装置３０１とがＰ２Ｐ通信を行っているものとする（Ｓ４０１）。この際、ＶＰＮ装置１０１は、上述した通信障害検出処理によって所定間隔でＰ２Ｐ通信定期診断を行う。ここで、データ通信に異常が発生し、Ｐ２Ｐ通信の異常（通信障害）が検出された場合（Ｓ４０２）、ＶＰＮ装置１０１は、中継サーバ利用要求を呼制御サーバ２０２に対して送信する（Ｓ４０３）。呼制御サーバ２０２は、ＶＰＮ装置１０１から中継サーバ利用要求を受信すると、使用する中継サーバを選択し、選択した中継サーバ２０３に対して接続装置情報を含めた中継指示を送信する（Ｓ４０４）。
【００９３】
中継サーバ２０３は、呼制御サーバ２０２からの中継指示を受信すると、自装置においてデータ通信の中継が可能かどうかを判断し、可能な場合は呼制御サーバ２０２へ中継応答を返信する（Ｓ４０５）。呼制御サーバ２０２は、中継サーバ２０３からの中継応答を受信すると、接続先情報を含めた中継サーバ利用応答メッセージを中継サーバ利用要求があったＶＰＮ装置１０１に対して送信する（Ｓ４０６）。
【００９４】
また、通信相手のＶＰＮ装置３０１も同様に、上述した通信障害検出処理によって所定間隔でＰ２Ｐ通信定期診断を行う。ここで、データ通信に異常が発生し、Ｐ２Ｐ通信の異常（通信障害）が検出された場合（Ｓ４０７）、ＶＰＮ装置３０１は、中継サーバ利用要求を呼制御サーバ２０２に対して送信する（Ｓ４０８）。呼制御サーバ２０２は、中継サーバ利用要求を受信した際に、指定セッションで既に中継サーバの割り当てがあるかを判断し、中継サーバの割り当てがある場合は中継サーバ利用不可の応答を返信する。図示例の場合、呼制御サーバ２０２は、ＶＰＮ装置３０１から中継サーバ利用要求を受信すると、指定セッションでの中継サーバの割り当てがあるかを判断する（Ｓ４０９）。この場合は中継サーバの割り当てがあるので、呼制御サーバ２０２は中継サーバ利用応答に中継サーバ利用ＮＧの情報を設定し、後に中継サーバ利用要求のあったＶＰＮ装置３０１に対して送信する（Ｓ４１０）。
【００９５】
以降のＶＰＮ装置１０１の中継サーバ２０３へのログイン処理（Ｓ４１１）から、中継サーバ２０３を経由したサーバ経由通信への移行処理、及びＰ２Ｐ通信の終了処理（Ｓ４２１）までの処理手順は、上述した図８のＳ２０７〜Ｓ２１７、図９のＳ３１１〜Ｓ３２１の処理と同様であり、ここでは説明を省略する。
【００９６】
このように、呼制御サーバで処理状態を管理することにより、第２の実施形態と同様、通信を行っている両方の装置で中継サーバを利用したサーバ経由通信への移行処理が同時に発生した場合でも、片方を抑制し、矛盾なく中継サーバ経由の通信へ移行することが可能となる。
【００９７】
なお、ＶＰＮ装置が発側、着側を認識する場合などでは、どちらか一方でのみ図６に示したＰ２Ｐ通信の定期診断を行う処理にすることも可能である。この場合は図８に示した第１の実施形態と同様の処理となる。どちらか片方の装置のみでＰ２Ｐ通信定期診断を行った場合には、図９、図１０のような中継サーバ利用要求が衝突する事象は発生せず、煩雑な処理を考慮しなくてもよいため、サーバ経由通信移行処理が単純化できるという効果がある。
【００９８】
上述したように、本実施形態では、相手装置とＰ２Ｐ通信を行っているときに、相手装置からのＫｅｅｐ−ａｌｉｖｅパケットが所定時間以上受信されない、規定値以上のエラー発生率が所定時間以上継続するなどにより、Ｐ２Ｐ通信が継続困難となる通信障害を検出する。通信障害を検出した場合は、Ｐ２Ｐ通信から中継サーバを用いたサーバ経由通信に移行する。これにより、Ｐ２Ｐ通信中に何らかの障害が発生した場合には、中継サーバを経由した安定した通信路へ通信経路を自動的に切り替えることができ、安定した通信サービスを提供することができる。したがって、本実施形態によれば、通信障害発生時のリカバリー処理を正常に実行でき、安定した通信を継続することが可能となる。
【００９９】
なお、本発明は、本発明の趣旨ならびに範囲を逸脱することなく、明細書の記載、並びに周知の技術に基づいて、当業者が様々な変更、応用することも本発明の予定するところであり、保護を求める範囲に含まれる。また、発明の趣旨を逸脱しない範囲で、上記実施形態における各構成要素を任意に組み合わせてもよい。
【産業上の利用可能性】
【０１００】
本発明は、Ｐ２Ｐ通信中に通信障害が発生した場合にも安定した通信を継続することが可能となる効果を有し、複数のネットワーク間で経路を構築して互いに通信するＶＰＮ装置、ＩＰ通信装置等として有用である。
【符号の説明】
【０１０１】
１００、３００  ＬＡＮ
１０１、３０１、５１１、５１２  ＶＰＮ装置
１０２、３０２  ルータ
１０３、３０３  端末
１１１  マイクロコンピュータ（ＣＰＵ）
１１２  不揮発性メモリ
１１３  メモリ
１１４、１１５  ネットワークインタフェース
１１６  ＬＡＮ側ネットワーク制御部
１１７  ＷＡＮ側ネットワーク制御部
１１８  通信中継部
１１９  表示制御部
１２０  表示部
１３０  システム制御部
１３１  配下端末管理部
１３２  メモリ部
１３３  データ中継部
１３４  設定用インタフェース部
１３５  外部アドレス・ポート情報記憶部
１４０  通信制御部
１４１  外部アドレス・ポート取得部
１４２  ＶＰＮ機能部
１４３  呼制御機能部
１４５  暗号処理部
１４７  通信障害検出部
２００、５００  ＷＡＮ
２０１  ＳＴＵＮサーバ
２０２  呼制御サーバ
２０３、５０３  中継サーバ
５２１、５２２  ＮＡＴルータ
５３１、５３２  通信装置
【図１】
2011211490.tif 000003
【図２】
2011211490.tif 000004
【図３】
2011211490.tif 000005
【図４】
2011211490.tif 000006
【図５】
2011211490.tif 000007
【図６】
2011211490.tif 000008
【図７】
2011211490.tif 000009
【図８】
2011211490.tif 000010
【図９】
2011211490.tif 000011
【図１０】
2011211490.tif 000012