説明

VPN装置及びIP通信装置、サーバ装置

【課題】P2P通信中に通信障害が発生した場合にも安定した通信を継続できるようにする。
【解決手段】通信制御部140は、相手装置との間でP2P通信を行っているときに、通信障害検出部147によって、相手装置からのKeep−aliveパケットが所定時間以上受信されない、規定値以上のエラー発生率が所定時間以上継続するなどにより、P2P通信が継続困難となる通信障害を検出する。通信障害が検出された場合、通信制御部140は、IPネットワークに設けられた中継サーバを用いたサーバ経由通信への移行処理を行い、P2P通信からサーバ経由通信に切り替える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のネットワーク間で経路を構築して互いに通信するVPN(Virtual Private Network)装置及びIP(Internet Protocol)通信装置、並びにサーバ装置に関する。
【背景技術】
【0002】
仮想プライベートネットワーク(VPN:Virtual Private Network、以下、VPNと記載する)を構築するVPN装置、あるいはIP電話による通話を行うIP電話装置等のIP通信装置は、IPネットワークにおいて通信相手との間で環境に応じて通信経路を構築して通信を行う。ここではVPN装置を使用する場合を想定して説明する。VPNでは、例えば、企業内等の2以上の拠点のローカルエリアネットワーク(LAN)相互間などのように、一般に、異なるネットワークセグメントを、広域ネットワーク(WAN)などを介して互いに接続する。そして、ネットワーク間の通信の秘匿性を担保することで、仮想的に全体が1つのプライベートネットワークであるように構成する。これにより、専用線を利用する場合と同様の通信サービスを可能にする。
【0003】
VPNを構築する場合は、ネットワークの中継装置または通信を行う端末等(以降、これらを「ピア」とも称する)に設けたVPN装置によって、パケットを暗号化及びカプセル化して仮想トンネルを構築する。これにより、ピア間を結ぶ閉じられた仮想的な直接通信(以下、P2P(Peer to Peer(ピアツーピア))通信ともいう)回線をインターネット等を介したネットワーク上に確立する。また、上記ネットワーク上の仮想的な直接通信回線を介したP2P通信以外の方法によって、複数の通信装置間で通信を行うときの通信経路を設定することも考えられる。例えばネットワーク上にデータ通信を中継する中継サーバを設け、中継サーバを介して通信を行うことも考えられる。
【0004】
このように複数の通信装置間で通信を行うための通信経路が複数存在する場合に、最短経路(最短時間でデータ伝送が可能となる通信経路)として、送信要求の送出後に最先に応答が返送された通信経路を選択する技術が知られている(例えば、特許文献1参照)。また、周知のダイクストラ法を用いて、2台の通信装置間で通信を行うときの通信経路を最短距離に設定する技術が知られている(例えば、特許文献2参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平8−228192号公報
【特許文献2】特表平11−508754号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ネットワーク上で複数の通信装置が通信を行う場合、上記のように、P2P通信を行うケースと、中継サーバなどを経由した通信を行うケースとに大別される。この際、通信の効率等の観点からはP2P通信が望ましいため、従来のVPN装置等のIP通信装置では、可能であるならばP2P通信を行うようになっている。
【0007】
しかしながら、P2P通信においては、その通信が特定の回線を利用する場合(例えばイントラネット内で集約する場合)には、一般回線とは異なり、通信障害が発生するとそのリカバリー処理(迂回接続など)が行われず、通信品質が悪化する、もしくは通信が不可になることが生じ得る。これに対し、通信障害が生じて通信状況が悪化した場合に、一旦公衆回線を経由することで正常にリカバリー処理(通信障害発生の箇所を避けた迂回通信)が可能になり、通信が安定して行える場合がある。
【0008】
本発明は、上記事情に鑑みてなされたもので、その目的は、P2P通信中に通信障害が発生した場合にも安定した通信を継続することが可能なVPN装置及びIP通信装置、サーバ装置を提供することにある。
【課題を解決するための手段】
【0009】
本発明は、IPネットワークにおいて、相手装置との間で仮想プライベートネットワークを構築して通信を行うVPN装置であって、前記相手装置との間でP2P通信を行っているときに、このP2P通信が継続困難となる通信障害を検出する通信障害検出部と、前記通信障害が検出された場合に、前記IPネットワークに設けられた中継サーバ経由の通信であるサーバ経由通信への移行処理を行う通信制御部と、を備えるVPN装置を提供する。
上記構成により、P2P通信中に通信障害が発生した場合、中継サーバを用いたサーバ経由通信に移行することで、安定した通信を継続することが可能となる。
【0010】
また、本発明は、上記のVPN装置であって、前記通信障害検出部は、前記P2P通信時における、前記相手装置からのKeep−aliveパケットの受信に基づき、所定期間以上前記Keep−aliveパケットの受信が無い場合に通信障害が発生したと判定するものを含む。
上記構成により、Keep−aliveパケットの受信の有無によって、通信障害の発生を検出し、通信障害発生時の処理(通信経路の切替処理)を実行可能である。
【0011】
また、本発明は、上記のVPN装置であって、前記通信障害検出部は、前記P2P通信時における、前記相手装置との通信のエラー発生率に基づき、前記エラー発生率が所定値を超えた状態が所定時間以上継続した場合に通信障害が発生したと判定するものを含む。
上記構成により、エラー発生率の高さ及びその継続時間によって、通信障害の発生を検出し、通信障害発生時の処理(通信経路の切替処理)を実行可能である。
【0012】
また、本発明は、上記のVPN装置であって、前記通信制御部は、前記サーバ経由通信への移行処理を行う際に、前記相手装置との接続を制御する呼制御サーバに対して、前記サーバ経由通信を行う中継サーバの利用要求を送信し、前記呼制御サーバから中継サーバの利用応答があった場合に、指定された宛先の中継サーバに接続して前記相手装置との間で中継サーバを経由した通信を開始するものを含む。
上記構成により、通信障害が発生した場合に、中継サーバを用いたサーバ経由通信への移行処理が可能となり、安定した通信を継続することができる。
【0013】
また、本発明は、IPネットワークにおいて、相手装置との間で通信を行うIP通信装置であって、前記相手装置との間でP2P通信を行っているときに、このP2P通信が継続困難となる通信障害を検出する通信障害検出部と、前記通信障害が検出された場合に、前記IPネットワークに設けられた中継サーバ経由の通信であるサーバ経由通信への移行処理を行う通信制御部と、を備えるIP通信装置を提供する。
【0014】
また、本発明は、IPネットワークにおいて、複数の通信装置間の接続を制御する呼制御サーバの機能を持つサーバ装置であって、前記複数の通信装置がP2P通信を行っているときに、いずれかの通信装置から、前記IPネットワークに設けられた中継サーバの利用要求を受信した場合、中継サーバの使用可否を判定し、前記中継サーバへの接続先情報を含む中継サーバの利用応答を、前記利用要求のあった通信装置に対して返信し、この通信装置を前記中継サーバに接続させることで、P2P通信からサーバ経由通信への移行制御を行う通信移行制御部を備えるサーバ装置を提供する。
上記構成により、通信装置から中継サーバの利用要求があった場合に、その通信装置を中継サーバに接続させてP2P通信からサーバ経由通信への移行させることが可能となる。
【0015】
また、本発明は、上記のサーバ装置であって、前記通信移行制御部は、前記中継サーバの利用要求を受信したときに、指定された通信に関して、既に中継指示中である場合、あるいは、中継サーバの割り当てがある場合には、中継サーバ利用不可の応答を前記利用要求のあった通信装置に対して返信するものを含む。
上記構成により、通信を行っている両方の通信装置でサーバ経由通信への移行処理が同時に発生し、中継サーバの利用要求が重複した場合でも、片方を抑制し、矛盾なく中継サーバ経由の通信へ移行することが可能となる。
【0016】
また、本発明は、IPネットワークにおいて、相手装置との間で仮想プライベートネットワークを構築して通信を行うVPN装置における通信方法であって、前記相手装置との間でP2P通信を行っているときに、このP2P通信が継続困難となる通信障害を検出するステップと、前記通信障害が検出された場合に、前記IPネットワークに設けられた中継サーバ経由の通信であるサーバ経由通信への移行処理を行うステップと、を有する通信方法を提供する。
上記手順により、P2P通信中に通信障害が発生した場合、中継サーバを用いたサーバ経由通信に移行することで、安定した通信を継続することが可能となる。
【発明の効果】
【0017】
本発明によれば、P2P通信中に通信障害が発生した場合にも安定した通信を継続することが可能なVPN装置及びIP通信装置、サーバ装置を提供できる。
【図面の簡単な説明】
【0018】
【図1】本発明の実施形態に係るIP通信装置を用いてVPNシステムを構築した場合のネットワークの構成例を示す図
【図2】本実施形態に係るIP通信装置(VPN装置)のハードウェア構成の構成例を示すブロック図
【図3】本実施形態に係るIP通信装置(VPN装置)の機能的な構成例を示すブロック図
【図4】中継サーバによるサーバ経由通信とP2P通信とを同時に行っている状態を示す模式図
【図5】本実施形態に係るIP通信装置(VPN装置)を用いたVPNシステムにおいてP2P通信を行うまでの各装置間の通信処理手順を示すシーケンス図
【図6】本実施形態のIP通信装置(VPN装置)における通信障害検出処理の動作アルゴリズムを示すフローチャート
【図7】本実施形態のIP通信装置(VPN装置)におけるサーバ経由通信移行処理の動作アルゴリズムを示すフローチャート
【図8】第1の実施形態に係るIP通信装置(VPN装置)を用いたVPNシステムにおいてP2P通信からサーバ経由通信への移行時の各装置間の通信処理手順を示すシーケンス図
【図9】第2の実施形態に係るIP通信装置(VPN装置)を用いたVPNシステムにおいてP2P通信からサーバ経由通信への移行時の各装置間の通信処理手順を示すシーケンス図
【図10】第3の実施形態に係るIP通信装置(VPN装置)を用いたVPNシステムにおいてP2P通信からサーバ経由通信への移行時の各装置間の通信処理手順を示すシーケンス図
【発明を実施するための形態】
【0019】
以下に、本発明に係るVPN装置及びIP通信装置の一例としての実施形態を説明する。ここでは、広域ネットワーク(WAN、グローバルネットワーク)を介して2つのローカルエリアネットワークの経路(LAN、ローカルネットワーク)を経路接続して仮想プライベートネットワーク(VPN)システムを構築する場合の構成例を示す。LANとしては、有線LANまたは無線LANなどが用いられる。WANとしては、インターネット等が用いられる。
【0020】
図1は本発明の実施形態に係るIP通信装置を用いてVPNシステムを構築した場合のネットワークの構成例を示す図である。本実施形態のVPNシステムは、一つの拠点に設けられたLAN100と、他の拠点に設けられたLAN300とを、インターネット等のWAN200を介して通信経路を接続する。そして、LAN100の配下に接続された端末103とLAN300の配下に接続された端末303との間で、VPNによる秘匿性を担保した通信(「VPN通信」とも称する)を可能にしている。具体的なVPN通信の用途(アプリケーションプログラム等)としては、IP電話(音声通話)、ネットミーティング(動画&音声通信)、ネットワークカメラ(ビデオ伝送)などが想定される。
【0021】
LAN100とWAN200との境界には中継装置としてのルータ102が配設され、WAN200とLAN300との境界には中継装置としてのルータ302が配設されている。また、本実施形態では、VPNの構築を可能にするために、LAN100にはVPN装置101が接続され、LAN300にはVPN装置301が接続されている。そして、VPN装置101には配下の端末103が接続され、VPN装置301には配下の端末303が接続されている。ここで、VPN装置101、301はそれぞれ本発明の「IP通信装置」に相当する。なお、本実施形態に係るIP通信装置の一例としてのVPN装置101、301は、ここでは通信装置または中継装置等において構成される独立した装置の構成例を示しているが、LAN内の他の通信機器または端末等においてVPN機能を有する装置として構成することも可能である。
【0022】
また、WAN200上には、VPN装置101とVPN装置301との間のVPNによる接続(以下、「VPN接続」と称する)を可能にするためのサーバ装置として、STUNサーバ201と呼制御サーバ202とが接続されている。STUNサーバ201は、STUN(Simple Traversal of User Datagram Protocol (UDP) through Network Address Translators (NATs))プロトコルを実行するために用いられるサーバである。呼制御サーバ202は、VPN装置または端末等のピア間の発呼、被呼のために用いられるサーバである。
【0023】
図1において、破線は外部アドレス(グローバルIPアドレス)とポートの情報を含む外部アドレス・ポート情報の流れを示している。また、一点鎖線は発呼及び被呼の制御に関する呼制御信号の流れを示している。また、実線はピア間で伝送される通信データに関するピア間通信(P2P(ピアツーピア)通信)の流れを示している。さらに、P2P通信のためにVPN接続された通信経路を仮想トンネルとして、図中に表す。
【0024】
各機器がWAN200を介して通信する場合、WAN200上では、伝送するパケットの発呼側または被呼側を特定するためのアドレス情報として、WANにおいて特定可能なグローバルなアドレス情報が用いられる。一般にはIPネットワークが用いられるため、グローバルIPアドレス及びポート番号が用いられる。しかし、各LAN100、300内の通信においては、発呼側または被呼側を特定するためのアドレス情報として、LAN内のみで特定可能なローカルなアドレス情報が用いられる。一般にはIPネットワークが用いられるため、ローカルIPアドレス及びポート番号が用いられる。したがって、各LAN100、300とWAN200との間の通信を可能にするために、アドレス変換機能の例として、ローカルなアドレス情報とグローバルなアドレス情報との相互変換を行うNAT(Network Address Translation)機能が、複数ネットワーク間を接続する中継装置としての各ルータ102、302に搭載されている。すなわち、アドレス変換機能とは、IPネットワーク層のIPアドレスと、トランスポート層のポートとを含めた、いわゆるNAPT(Network Address Port Translation)に相当する相互変換を行う。以下本発明の説明において、NAT機能とは狭義のNAPT機能を含めた広義のNAT機能を指すものとする。
【0025】
ただし、LAN100、300の配下の各端末103、303においては、外部からアクセス可能なグローバルなアドレス情報を自身で持っていない。また、特別な設定を行わない限り、LAN100配下の端末103が他のLAN300配下の端末303と直接通信することはできない。また、各ルータ102、302のNAT機能のため、普通の状態ではWAN200側から各LAN100、300内の各端末にアクセスすることもできない。すなわち「外部アドレス・ポート情報」とは、WAN200へ接続するために必要なアドレス・ポート情報であって、LAN100、300内で特定されるローカルなアドレス・ポート情報で機能しているVPN装置101、301からみて、グローバルネットワークWAN200は外部にあたることから「外部アドレス・ポート情報」と略称する。なお、「アドレス・ポート」は、アドレスのみ、アドレス及びポート、のいずれかを意味するものとする。
【0026】
このような状況であっても、本実施形態では、各拠点のLANにVPN装置101、301を設けることにより、図1において実線で示すP2P通信の経路のように、LAN間をVPN接続して端末103と端末303との間で仮想的な閉じられた通信経路を通じて直接通信することが可能になる。本実施形態に係るIP通信装置としてのVPN装置の構成、機能、及び動作については、以下に順を追って説明する。
【0027】
STUNサーバ201は、STUNプロトコルの実行に関するサービスを行うもので、NATを透過する通信(いわゆるNAT越えの通信)を行うために必要な情報を提供するアドレス情報サーバである。STUNは、音声、映像、文章などの双方向リアルタイムIP通信を行うアプリケーションにおいて、NAT透過の方法の1つとして使われる標準化されたクライアントサーバ型のインターネットプロトコルである。STUNサーバ201は、アクセス元からの要求に応じて、外部からアクセス可能な当該アクセス元に割り当てられているグローバルなアドレス情報として、外部ネットワークから見える外部アドレスとポートの情報を含む外部アドレス・ポート情報を返信する。外部アドレス・ポート情報としては、IPネットワークにおいてはIPネットワーク層のグローバルIPアドレス及びトランスポート層のポート番号が用いられる。
【0028】
各VPN装置101、301は、STUNサーバ201との間で所定のテスト手順の通信を実行し、STUNサーバ201から自装置の通信のために割り当てられたグローバルIPアドレス及びポート番号が含まれる応答パケットを受信する。これにより、各VPN装置101、301は自装置のグローバルIPアドレス及びポート番号を取得することができる。また、自装置の位置するLANとWANとの間にルータが複数存在する場合等であっても、また、これらのルータ等がUPnP(Universal Plug and Play)の機能を有していない場合であっても、確実にWAN200側と通信するために割り当てられたグローバルIPアドレス及びポート番号を取得できるという効果もある。
【0029】
呼制御サーバ202は、特定の相手先を呼び出して通信経路を確立するための通信装置間の呼制御に関するサービスを行う呼管理サーバである。呼制御サーバ202は、登録された各ユーザのVPN装置または端末の識別情報を保持しており、例えばIP電話の機能を有する通信システムの場合には、接続相手の電話番号に基づいて特定の相手先を呼び出すことができる。
【0030】
また、WAN200上には、VPN装置101とVPN装置301との間の通信を中継するためのサーバ装置として、中継サーバ203が接続されている。中継サーバ203は、P2P通信開始前またはP2P通信が不可の場合など、サーバ経由のVPN通信を行う際に、信号またはデータを中継する機能を有している。この中継サーバ203は、発呼側の装置から送出されたパケットを被呼側の装置に転送したり、被呼側の装置から送出されたパケットを発呼側の装置に転送したりする。この場合、VPN装置101、VPN装置301と中継サーバ203の間ではVPN接続された通信経路が確立され、前記P2P通信で確立したVPN接続同等の機能が実現されている。また、呼制御サーバ202においてもVPN接続開始時のVPN装置間の通信を中継する機能を有している。
【0031】
なお、STUNサーバ201、呼制御サーバ202、及び中継サーバ203は、ここでは別個のサーバ装置による構成例を示しているが、1つのサーバ装置にこれらのアドレス情報サーバ、呼管理サーバ、中継サーバの各サーバの機能を搭載して構成してもよいし、WAN上の他のいずれかのサーバ装置に同様の機能を搭載して構成することも可能である。
【0032】
次に、本実施形態に係るIP通信装置としてのVPN装置の構成及び機能について説明する。なお、VPN装置101とVPN装置301の構成及び機能は同様であり、ここではVPN装置101によって説明する。図2は本実施形態に係るIP通信装置(VPN装置)のハードウェア構成の構成例を示すブロック図である。
【0033】
VPN装置101は、マイクロコンピュータ等による中央演算処理装置(CPU)111、フラッシュRAM等による不揮発性メモリ112、SD RAM等によるメモリ113、ネットワークインタフェース114、ネットワークインタフェース115、LAN側ネットワーク制御部116、WAN側ネットワーク制御部117、通信中継部118、表示制御部119、表示部120を有して構成される。
【0034】
CPU111は、所定のプログラムを実行することによりVPN装置101全体の制御を実施する。不揮発性メモリ112は、CPU111が実行するプログラムを保持している。このプログラムの中には、VPN装置101が他の通信装置との通信時の異常を検出して通信制御を行うための通信異常時制御プログラムも含まれている。
【0035】
なお、CPU111が実行するプログラムについては、任意の通信経路を経由してオンラインで外部のサーバから取得することもできるし、例えばメモリカード、CD−ROMのような記録媒体から読み込んで取得することもできる。換言すれば、汎用のコンピュータにVPN装置の機能を実現するプログラムを記録媒体から読み込むことによってVPN装置、およびVPNネットワーキング方法を実現することができる。
【0036】
なお、CPU111がプログラムを実行する時には、不揮発性メモリ112上のプログラムの一部がメモリ113上に展開され、メモリ113上のプログラムが実行される場合もある。
【0037】
メモリ113は、VPN装置101の運用中のデータ管理、各種設定情報などを一時的に記憶するためのものである。設定情報としては、自装置の外部アドレス・ポート取得要求に対する応答に含まれる外部アドレス・ポート情報等、通信に必要な宛先アドレス情報などが含まれる。
【0038】
ネットワークインタフェース114は、VPN装置101と自装置が管理する配下の端末103とを通信可能な状態で接続するためのインタフェースである。ネットワークインタフェース115は、VPN装置101とLAN100とを通信可能な状態で接続するためのインタフェースである。LAN側ネットワーク制御部116は、LAN側のネットワークインタフェース114に関する通信制御を行うものである。WAN側ネットワーク制御部117は、WAN側のネットワークインタフェース115に関する通信制御を行うものである。
【0039】
通信中継部118は、LAN側に接続された配下の端末103から外部の被呼側(VPN装置301配下の端末303)へ送出するパケットデータと、反対に、外部の被呼側(VPN装置301配下の端末303)から配下の端末103宛に到着したパケットデータをそれぞれ中継する。
【0040】
表示部120は、VPN装置101としての動作状態の表示等を行う表示器により構成され、各種状態をユーザあるいは管理者に通知する。表示部120は、複数の発光ダイオード(LED)または液晶表示器(LCD)等により構成される。表示制御部119は、表示部120の表示制御を行うもので、CPU111からの表示信号に従って表示部120に表示する内容等を制御する。
【0041】
図3は本実施形態に係るIP通信装置(VPN装置)の機能的な構成例を示すブロック図である。
【0042】
VPN装置101は、機能構成として、システム制御部130、配下端末管理部131、メモリ部132、データ中継部133、設定用インタフェース部134、通信制御部140を有して構成される。メモリ部132は、外部アドレス・ポート情報記憶部135を有する。通信制御部140は、外部アドレス・ポート取得部141、VPN機能部142、呼制御機能部143、通信障害検出部147を有する。VPN機能部142は、暗号処理部145を有する。これらの各機能は、図2に示した各ブロックのハードウェアの動作、またはCPU111が所定のプログラムを実行することにより実現する。
【0043】
なお、VPN装置101のLAN側のネットワークインタフェース114は、配下の端末103と接続され、WAN側のネットワークインタフェース115は、LAN100及びルータ102を経由してWAN200と接続される。
【0044】
システム制御部130は、VPN装置101の全体の制御を行う。配下端末管理部131は、VPN装置101配下の端末103の管理を行う。メモリ部132は、外部アドレス・ポート情報記憶部135において、外部アドレス(WAN200上でのグローバルIPアドレス)とポート(IPネットワークのポート番号)の情報を含む外部アドレス・ポート情報を記憶する。外部アドレス・ポート情報としては、発呼側である配下の端末103に割り当てられたグローバルIPアドレス及びポート番号の情報、被呼側の端末303に割り当てられたグローバルIPアドレス及びポート番号の情報などを記憶する。また、外部アドレス・ポート情報記憶部135には、自装置と外部ネットワークとの間のNAT種別情報を記憶する場合もある。
【0045】
データ中継部133は、発呼側の端末103から被呼側の端末303に向かって転送されるパケット、あるいは、逆に被呼側の端末303から発呼側の端末103に向かって転送されるパケットをそれぞれ中継(送信/受信)する。設定用インタフェース部134は、ユーザあるいは管理者がVPN装置101に対する設定操作等の各種操作を行うためのユーザインタフェースである。このユーザインタフェースの具体例として、端末上で動作するブラウザによって表示するWebページなどが用いられる。
【0046】
通信制御部140の外部アドレス・ポート取得部141は、VPN装置101の配下の端末103に割り当てられた外部アドレス・ポート情報をSTUNサーバ201から取得する。また、被呼側の端末303の外部アドレス・ポート情報を含むパケットを呼制御サーバ202を経由して受信し、被呼側の端末303に割り当てられた外部アドレス・ポート情報を取得する。外部アドレス・ポート取得部141が取得した情報は、メモリ部132の外部アドレス・ポート情報記憶部135に保持される。
【0047】
通信制御部140のVPN機能部142は、暗号処理部145において、VPN通信のために必要な暗号処理を行う。すなわち、暗号処理部145は、送信するパケットをカプセリングして暗号化したり、受信したパケットをアンカプセリングして復号化して元のパケットを抽出したりする。なお、VPN通信は、図1に示したようなVPN装置間を直接接続するP2P通信ではなく、WAN200上に設けられる中継サーバ203でパケットの中継を行い、クライアント/サーバ方式でVPN通信を行うことも可能である。この場合には、サーバ側で暗号/復号化処理を行うようにしてもよい。また、カプセリングされたパケット中には、自装置配下の端末103を特定するための情報や、相手装置配下の端末303を特定するための情報が含まれる。この特定情報に基づいて、VPN装置及びVPN装置配下の端末間でデータ中継部133により通信データが中継される。
【0048】
通信制御部140の呼制御機能部143は、目的の被呼側に接続するための接続要求を呼制御サーバ202に送信したり、被呼側からの接続応答を呼制御サーバ202を経由して受信するための処理を実施したりする。
【0049】
通信制御部140の通信障害検出部147は、P2P通信時等における通信障害を検出する機能を有している。例えば、通信障害検出部147は、ネットワーク上での接続が有効であることを確認するために定期的に行われる通信であるKeep−aliveパケットを用いて通信障害を検出する。ここで、P2P通信開始時から通信相手からのKeep−aliveパケットの受信と通信品質(通信のエラー発生率)を測定し、所定期間以上相手からのKeep−aliveパケットが受信できない場合、あるいは所定時間以上通信のエラー発生率が非常に高い(例:エラー発生率60%以上が継続する)場合には、P2P通信の環境が正常ではないと判断する。この通信障害検出部147による通信障害検出処理及び呼制御機能部143による通信制御処理の動作の詳細については後で説明する。
【0050】
本実施形態の通信制御部140は、相手装置との間で、中継サーバ203等の中継サーバ経由の通信を行うサーバ経由通信と、P2P通信とが可能となっている。呼制御機能部143は、通信障害検出部147により通信障害が検出されてP2P通信が継続困難な状態であると判断された場合に、サーバ経由通信への移行処理を行う機能を有している。
【0051】
次に、本実施形態に係るIP通信装置による通信障害検出処理及びサーバ経由通信移行処理の動作について説明する。
【0052】
(第1の実施形態)
本発明に係るIP通信装置では、相手装置との間でP2P通信を行っているときに、P2P通信が継続困難な通信障害が発生したかを判断する通信障害検出処理を行う。ここで、P2P通信中に通信障害が発生した場合、現在の通信をP2P通信から中継サーバ203等を用いたサーバ経由の通信に変更することで、安定した通信環境を提供する。通信障害の判定のための継続時間としては、一時的な通信悪化はネットワーク上では通常考慮されるべき事象であるため、一時的ではない所定以上の継続時間で異常が発生した場合に、通信障害が発生したと判断する。例えば、Keep−aliveパケットが三回連続受信できない程度の時間などで継続して異常が発生した場合に、P2P通信が継続困難な通信障害状態であると判断する。通信障害が検出された場合、サーバ経由通信移行処理を実行し、P2P通信からサーバ経由の通信に切り替える。これにより、通信障害が生じて通信状況が悪化した場合に、正常にリカバリー処理を実行でき、通信を安定して継続することが可能である。
【0053】
ここで、中継サーバによるサーバ経由通信とP2P通信とを同時に行う場合の動作例を説明する。図4は中継サーバによるサーバ経由通信とP2P通信とを同時に行っている状態を示す模式図である。図4の例では、インターネット網等のWAN500に第1のLANのNATルータ521と、第2のLANのNATルータ522とが接続される。そして、NATルータ521を介してVPN装置511、通信装置531が順に接続され、NATルータ522を介してVPN装置512、通信装置532が順に接続されている。また、WAN500には中継サーバ503が接続されている。VPN装置511とVPN装置512とをVPN接続して秘匿性を有する通信経路を確保する場合、サーバ経由通信とP2P通信とでVPN通信を実現することが可能である。サーバ経由通信の場合、発呼側の通信装置から送出された信号またはデータを含むパケットは一旦中継サーバ503を介して中継され、被呼側の通信装置に転送される。P2P通信の場合は、発呼側の通信装置から送出されたパケットは直接被呼側の通信装置に転送される。
【0054】
サーバ経由通信とP2P通信とを併用する例として、例えば、まず最初にサーバ経由通信でVPN通信を開始し、その後P2Pの通信経路が確保できてからP2P通信を行うことが考えられる。このようなVPN通信の手順を用いることで、より短時間でVPN通信を開始できるとともに、P2P通信の実行によって通信効率を高めることができる。また、上述したように、P2P通信中に通信障害が発生した場合、サーバ経由通信に切り替えて安定した通信環境を維持することもできる。
【0055】
ここで、通信に用いるポートは、例えばサーバ経由通信用のポートとP2P通信用のポートとで別のポートを用いるようにする。なお、サーバ経由通信とP2P通信のプロトコルが異なる場合には、ポート番号が同一でも影響を与えないため、同一のポートを用いることも可能である。本明細書では、便宜上同一プロトコルでの通信を前提にした説明を行う。このため、サーバ経由通信とは異なるポートでP2P通信を行うものとする。
【0056】
第1の実施形態では、P2P通信を行っているときに一方のIP通信装置(VPN装置)において通信障害を検出する。ここで、通信の異常状態が所定時間以上継続し、通信障害が発生したと判断された場合は、P2P通信からサーバ経由通信に移行する。
【0057】
まず、VPN装置による接続開始からP2P通信を行うまでの処理について説明する。図5は本実施形態に係るIP通信装置(VPN装置)を用いたVPNシステムにおいてP2P通信を行うまでの各装置間の通信処理手順を示すシーケンス図である。ここでは、図1のネットワーク構成において、VPN装置101の配下の端末103からWAN200を経由して他のVPN装置301の配下の端末303に接続しようとする場合の処理を示している。
【0058】
まず、VPN装置101は、呼制御サーバ202にログインしてユーザ認証を受けるようにする(S101)。VPN装置101がユーザ認証に成功した場合、呼制御サーバ202において、VPN装置101の識別情報(MACアドレス、ユーザID、電話番号など)やネットワーク上の位置情報(グローバルIPアドレス)等の登録、設定が行われる。以降、VPN装置101と呼制御サーバ202との間で通信可能となる。なお、VPN装置101は発呼側であるが、被呼側であるVPN装置301についても同様に、呼制御サーバ202にログインしてユーザ認証を受け、呼制御サーバ202においてVPN装置301の識別情報等の登録、設定が行われる(S102)。
【0059】
そして、VPN装置101は、配下の端末103からのVPN接続の接続要求を受けると、ルータ102を介して呼制御サーバ202に対して、接続先の端末303を配下に持つVPN装置301へのVPNの通信経路を構築するための接続要求を送信する(S103)。呼制御サーバ202は、この接続要求を中継してルータ302を介してVPN接続の接続先となるVPN装置301へ送信する(S104)。
【0060】
接続先のVPN装置301は、呼制御サーバ202からの接続要求を受けると、接続応答を返信する(S105)。呼制御サーバ202は、VPN装置301からの接続応答を中継して接続元のVPN装置101へ送信する(S106)。
【0061】
VPN装置101は、呼制御サーバ202から接続応答を受けると、接続先のVPN装置301との間でP2P通信用の通信経路を確立し、VPN装置101、301間でP2P通信にてデータ通信を開始する(S107)。この際、P2P通信用のポートを用いて、VPN装置101とVPN装置301との間でWAN200を経由して直接データ通信を行う。なお、この際、接続元のVPN装置101と接続先のVPN装置301とは、P2P通信用の自装置の外部アドレス・ポート情報などを相手装置に通知する。これにより、お互いに相手のP2P通信用の外部アドレス・ポート情報(グローバルIPアドレス及びポート番号)を取得し、直接VPN接続可能にする。自装置の外部アドレス・ポート情報を取得するには、STUNサーバ201に対して外部アドレス・ポート取得要求を送信し、STUNサーバ201から返信される外部アドレス・ポート情報を受信する。
【0062】
なお、P2P通信を行う前に、一旦呼制御サーバ202経由で通信を開始したり、中継サーバ203を用いたサーバ経由通信を行ってもよい、この場合、より短時間で通信相手とのVPN通信を開始できる。
【0063】
次に、本実施形態における通信障害検出処理について説明する。図6は本実施形態のIP通信装置(VPN装置)における通信障害検出処理の動作アルゴリズムを示すフローチャートである。ここでは、通信障害検出処理として、P2P通信中のときに定期的に通信の状態を監視し、通信障害の発生の有無を判断する。図6の処理例は、通信相手とのKeep−alive確認動作(Keep−aliveパケットの確認)を行う通信方式に適用した例を示しているが、本動作を行わない通信形態も存在する。この場合には本処理を省略することも可能であるが、ここでは通信相手とのKeep−alive確認動作を行っていることを前提に説明を行う。この通信障害検出処理は、P2P通信中の定期診断として、所定のタイマにより定期的に実行するものとする。
【0064】
通信障害検出部147は、まず、Keep−aliveパケットを最後に受信した時間を取得する(ステップS11)。Keep−aliveパケットの送受信処理は、本処理とは別のルーチンで実行される。Keep−alive送信は、一定時間おきにNATの通信ポート維持と通信経路が存在することを通信相手に通知する目的で行うもので、Keep−aliveメッセージを通信相手に送信する。Keep−alive受信は、通信相手との通信経路が確立されていることを確認するもので、Keep−aliveメッセージを受信したら、その受信時間情報を記憶部に記憶する。そして、通信障害検出部147は、記憶部からKeep−aliveメッセージの受信時間情報を取り出し、最終受信時間を取得する。
【0065】
次に、通信障害検出部147は、取得したKeep−aliveパケットの最終受信時間から現在の時間までの、Keep−aliveパケットの未受信時間を算出し、未受信時間が所定の規定値を超えたかどうかを判断する(ステップS12)。この既定値は、通信経路保障時間に対応するものであり、ここではKeep−aliveパケットを最後に受信してから通信経路が保障されている時間が経過していないかを判定する。
【0066】
Keep−aliveパケットの未受信時間が通信経路保障時間を経過していた場合には、通信障害検出部147は、その通信経路において一定時間Keep−aliveパケットが受信できておらず、通信経路が不安定(もしくは存在しないもの)と判定する。すなわち、通信障害検出部147は、このKeep−aliveパケットの未受信時間が通信経路保障時間を経過したことの判定によって、現在の通信経路の通信障害を検出したと判断する。呼制御機能部143は、通信障害検出部147において通信障害が検出された場合、現在の通信経路を中継サーバ経由に移行するサーバ経由通信移行処理を実行する(ステップS13)。このサーバ経由通信移行処理については後述する。
【0067】
また、Keep−aliveパケットの未受信時間が通信経路保障時間を経過していない場合、通信障害検出部147は、現在の通信経路が有効であると判断して、次に通信状態の確認を行う。通信状態の確認動作として、まず、通信中のパケットのエラー発生率(通信エラー発生率)を取得する(ステップS14)。ここでいう通信エラー発生率とは、受信したパケットの正当性などを確認し通信エラーが発生した割合であり、本処理とは別に独立した制御方式で統計情報を取得しているものとする。そして、通信障害検出部147は、通信エラー発生率が所定の規定値を超えたかどうかを判断する(ステップS15)。この規定値は、例えば60%など、所定のエラーレートを適宜用い、通信エラー状態の発生を判定する。
【0068】
通信エラー発生率が規定値を超えた場合、エラー発生測定回数(通信エラー発生率の規定値超過が連続で発生した回数)に1を加算し(ステップS16)、このエラー発生測定回数を所定の規定値と比較する(ステップS17)。エラー発生測定回数の規定値は、本アルゴリズムの周期起動時間(P2P通信定期診断の間隔)に対し、通信エラー状態の判定(通信エラー発生率の規定値超過)が何回起こった場合にサーバ経由通信への移行処理を行うかを決定する値である。通常のネットワークでは、瞬間的な通信エラー発生は十分発生しうる事象であるため、「1」以上の規定値にするのが望ましい。ただし、安定したネットワーク環境が提供されていて、通信エラー発生が皆無と言う場合には、規定値として「0」を設定することも許容する。通信障害検出部147は、これらネットワークの環境と本P2P通信定期診断の間隔から決定された規定値と、エラー発生測定回数とを比較し、エラー発生測定回数が規定値を越えた場合には、現在の通信経路の通信障害を検出したと判断する。呼制御機能部143は、通信障害検出部147において通信障害が検出された場合、ステップS13のサーバ経由通信移行処理を実行する。
【0069】
また、ステップS17でエラー発生測定回数が規定値以下の場合は、通信障害検出部147は、本P2P通信定期診断を再度実行するためのタイマを設定する(ステップS18)。また、ステップS15で通信エラー発生率が規定値以下の場合には、通信障害検出部147は、エラー発生測定回数を初期化し(ステップS19)、ステップS18の本P2P通信定期診断を再度実行するためのタイマ設定を行う。
【0070】
このP2P通信定期診断を行うためのタイマ設定以降は、本タイマのタイムアウトによって、ステップS11に戻って同様の処理を繰り返す。
【0071】
なお、上記処理例では、連続した通信エラー発生によって通信障害を検出する方法を示したが、他の方法、例えばネットワーク上の通信状態の統計情報を収集し通信障害を検出する方法などでも同様の機能を得ることが可能である。
【0072】
次に、本実施形態におけるサーバ経由通信移行処理について説明する。図7は本実施形態のIP通信装置(VPN装置)におけるサーバ経由通信移行処理の動作アルゴリズムを示すフローチャートである。
【0073】
呼制御機能部143は、図6の通信障害検出処理により通信障害検出部147からサーバ経由通信移行処理が要求された場合、現在行っている通信相手とのP2P通信に対する中継サーバ利用要求を呼制御サーバ202に対して送信する(ステップS21)。これに対し、呼制御サーバ202は中継サーバ203に対して中継指示を行い、中継サーバ203からの中継応答を取得し、中継サーバ利用要求を受けた通信装置に対して中継サーバ利用応答を返信する。そして、呼制御機能部143は、呼制御サーバ202からの中継サーバ利用応答を受信し(ステップS22)、中継サーバの利用可否を判断する(ステップS23)。ここで、中継サーバが利用できない場合は、本処理を終了する。
【0074】
中継サーバが利用可能な場合は、呼制御機能部143は、現在のP2P通信から中継サーバ経由の通信への移行処理を実行する(ステップS24)。そして、中継サーバ203からの通信情報を受信する(ステップS25)。
【0075】
図8は第1の実施形態に係るIP通信装置(VPN装置)を用いたVPNシステムにおいてP2P通信からサーバ経由通信への移行時の各装置間の通信処理手順を示すシーケンス図である。このシーケンス図を用いて、第1の実施形態におけるサーバ経由通信移行処理を説明する。ここでは、図5と同様、図1のネットワーク構成において、VPN装置101の配下の端末103と他のVPN装置301の配下の端末303とがWAN200を経由して通信する場合の処理を示している。
【0076】
図5に示した処理によって、VPN装置101とVPN装置301とがP2P通信を行っているものとする(S201)。この際、VPN装置101は、上記の通信障害検出処理によって所定間隔でP2P通信定期診断を行う。ここで、データ通信に異常が発生し、P2P通信の異常(通信障害)が検出された場合(S202)、VPN装置101は、中継サーバ利用要求を呼制御サーバ202に対して送信する(S203)。呼制御サーバ202は、VPN装置101から中継サーバ利用要求を受信すると、使用する中継サーバを選択し、選択した中継サーバ203に対して中継指示を行う(S204)。この中継指示には、中継サーバ利用要求発行元のVPN装置101の外部アドレス・ポート情報などの接続装置情報を含める。なお、接続装置情報には通信相手先のVPN装置301の外部アドレス・ポート情報などを含めてもよい。
【0077】
中継サーバ203は、呼制御サーバ202からの中継指示を受信すると、自装置においてデータ通信の中継が可能かどうかを判断し、可能な場合は呼制御サーバ202へ中継応答を返信する(S205)。呼制御サーバ202は、中継サーバ203からの中継応答を受信すると、中継サーバ利用応答メッセージを中継サーバ利用要求があったVPN装置101に対して送信する(S206)。この中継サーバ利用応答には、利用する中継サーバ203の外部アドレス・ポート情報などを接続先情報として設定する。また、呼制御サーバ202は、中継サーバ選択処理において利用できる中継サーバが存在しない場合には、中継サーバ利用応答に中継サーバ利用NGの情報を設定し、中継サーバ利用要求のあったVPN装置101に対して送信する。このように、呼制御サーバ202は、中継サーバ利用要求があった場合に中継サーバの使用可否を判定し、P2P通信からサーバ経由通信への移行制御を行う通信移行制御部の機能を有している。
【0078】
VPN装置101は、中継サーバ利用応答を受信待ちし、中継サーバ利用応答を受信すると、中継サーバ利用応答メッセージに設定されている情報を確認する。ここで、中継サーバ利用NGの情報が設定されており、利用可能な中継サーバが存在しない場合には、中継サーバへの移行処理が行えないため、サーバ経由通信移行処理をそのまま終了する。ここでは、次のP2P通信定期診断のタイミングで通信障害が検出されれば、その際に再度サーバ経由通信移行処理が行われる可能性が高いため、リトライ処理などは行わない。
【0079】
また、VPN装置101は、中継サーバ利用応答において接続先情報が設定され、中継サーバの利用が可能な場合には、呼制御サーバ202により選択された中継サーバ203へのサーバ経由通信の移行処理を開始する。中継サーバへの移行処理としては、中継サーバ203へのログイン処理を行い(S207)、ログインが成功してログイン完了すると(S208)、通信相手のVPN装置301に対して呼制御サーバ202を介して中継サーバ接続指示メッセージを送信する(S209、S210)。この中継サーバ接続指示には、中継サーバ203の外部アドレス・ポート情報などを接続先情報として含める。
【0080】
通信相手のVPN装置301は、呼制御サーバ202を介してVPN装置101からの中継サーバ接続指示を受信すると、接続先情報で指定された中継サーバ203へのログイン処理を行う(S211)。そして、ログイン完了すると(S212)、VPN装置301は、呼制御サーバ202を介して、中継サーバ接続応答メッセージを中継サーバ接続指示送信元のVPN装置101に対して送信する(S213、S214)。
【0081】
VPN装置101は、通信相手のVPN装置301からの中継サーバ接続応答を受信すると、中継サーバ203との間でサーバ経由通信用の通信経路を確立し、中継サーバ203を経由して、VPN装置301との間でサーバ経由通信にてデータ通信を開始する(S215、S216)。この際、サーバ経由通信用のポートを用いて、VPN装置101−中継サーバ203−VPN装置301においてデータ通信を行う。そして、通信相手のVPN装置301からの中継サーバ203を介したパケット(データ)を受信したら、既存のP2P通信のセッション(通信)に関しては終了する(S217)。このようにして、P2P通信中に通信障害が発生した場合、自動的にP2P通信経路から中継サーバを利用したサーバ経由通信経路に変更し、より安定した通信を行うことが可能となる。
【0082】
(第2の実施形態)
第2の実施形態は、P2P通信を行っているときに双方のIP通信装置(VPN装置)において通信障害を検出する場合の処理例を示したものである。図6に示したP2P通信の定期診断は、通信を行っている装置双方で行うことも可能である。ここでは、両方の装置で通信障害が検出された場合の処理手順を示す。なお、第1の実施形態と異なる部分を中心に説明し、同様の動作については説明を省略する。
【0083】
通信を行っている装置双方でP2P通信の定期診断を行う場合、通信障害を早く検出した装置から中継サーバへのサーバ経由通信移行処理が開始されるため、通信障害の状態が短くなるという効果がある。しかし、双方でP2P通信の定期診断を行った場合には、同時に通信障害を検出し、双方で中継サーバへのサーバ経由通信移行処理を行おうとする処理の衝突が発生する可能性がある。そこで、第2の実施形態では、双方の装置での処理の衝突を回避するように、呼制御サーバにおいて処理状態を管理する。
【0084】
図9は第2の実施形態に係るIP通信装置(VPN装置)を用いたVPNシステムにおいてP2P通信からサーバ経由通信への移行時の各装置間の通信処理手順を示すシーケンス図である。このシーケンス図を用いて、第2の実施形態におけるサーバ経由通信移行処理を説明する。
【0085】
図5に示した処理によって、VPN装置101とVPN装置301とがP2P通信を行っているものとする(S301)。この際、VPN装置101は、上述した通信障害検出処理によって所定間隔でP2P通信定期診断を行う。ここで、データ通信に異常が発生し、P2P通信の異常(通信障害)が検出された場合(S302)、VPN装置101は、中継サーバ利用要求を呼制御サーバ202に対して送信する(S303)。呼制御サーバ202は、VPN装置101から中継サーバ利用要求を受信すると、使用する中継サーバを選択し、選択した中継サーバ203に対して接続装置情報を含めた中継指示を送信する(S304)。
【0086】
また、通信相手のVPN装置301も同様に、上述した通信障害検出処理によって所定間隔でP2P通信定期診断を行う。ここで、データ通信に異常が発生し、P2P通信の異常(通信障害)が検出された場合(S305)、VPN装置301は、中継サーバ利用要求を呼制御サーバ202に対して送信する(S306)。呼制御サーバ202は、中継サーバ利用要求を受信した際に、指定セッション(指定された通信)、すなわち、P2P通信からサーバ経由通信へ移行する要求を受けた対象の通信で既に中継サーバの選択及び中継指示を行っているかを判断する。ここで、指定セッションが既に中継指示中である場合は、中継サーバ利用不可の応答を返信する。図示例の場合、呼制御サーバ202は、VPN装置301から中継サーバ利用要求を受信すると、指定セッションでの中継指示中であるかを判断する(S307)。この場合は中継指示中であるので、呼制御サーバ202は中継サーバ利用応答に中継サーバ利用NGの情報を設定し、後に中継サーバ利用要求のあったVPN装置301に対して送信する(S308)。
【0087】
中継サーバ203は、呼制御サーバ202からの中継指示を受信すると、自装置においてデータ通信の中継が可能かどうかを判断し、可能な場合は呼制御サーバ202へ中継応答を返信する(S309)。呼制御サーバ202は、中継サーバ203からの中継応答を受信すると、接続先情報を含めた中継サーバ利用応答メッセージを中継サーバ利用要求があったVPN装置101に対して送信する(S310)。
【0088】
以降のVPN装置101の中継サーバ203へのログイン処理(S311)から、中継サーバ203を経由したサーバ経由通信への移行処理、及びP2P通信の終了処理(S321)までの処理手順は、上述した図8のS207〜S217の処理と同様であり、ここでは説明を省略する。
【0089】
このように、呼制御サーバで処理状態を管理することにより、通信を行っている両方の装置で中継サーバを利用したサーバ経由通信への移行処理が同時に発生した場合でも、片方を抑制し、矛盾なく中継サーバ経由の通信へ移行することが可能となる。
【0090】
(第3の実施形態)
第3の実施形態は、第2の実施形態の変形例であり、P2P通信を行っているときに双方のIP通信装置(VPN装置)において通信障害を検出する場合の他の処理例を示したものである。ここでは、第2の実施形態と同様に両方の装置で通信障害が検出された場合の処理手順を示す。なお、第1及び第2の実施形態と異なる部分を中心に説明し、同様の動作については説明を省略する。
【0091】
図10は第3の実施形態に係るIP通信装置(VPN装置)を用いたVPNシステムにおいてP2P通信からサーバ経由通信への移行時の各装置間の通信処理手順を示すシーケンス図である。このシーケンス図を用いて、第3の実施形態におけるサーバ経由通信移行処理を説明する。
【0092】
図5に示した処理によって、VPN装置101とVPN装置301とがP2P通信を行っているものとする(S401)。この際、VPN装置101は、上述した通信障害検出処理によって所定間隔でP2P通信定期診断を行う。ここで、データ通信に異常が発生し、P2P通信の異常(通信障害)が検出された場合(S402)、VPN装置101は、中継サーバ利用要求を呼制御サーバ202に対して送信する(S403)。呼制御サーバ202は、VPN装置101から中継サーバ利用要求を受信すると、使用する中継サーバを選択し、選択した中継サーバ203に対して接続装置情報を含めた中継指示を送信する(S404)。
【0093】
中継サーバ203は、呼制御サーバ202からの中継指示を受信すると、自装置においてデータ通信の中継が可能かどうかを判断し、可能な場合は呼制御サーバ202へ中継応答を返信する(S405)。呼制御サーバ202は、中継サーバ203からの中継応答を受信すると、接続先情報を含めた中継サーバ利用応答メッセージを中継サーバ利用要求があったVPN装置101に対して送信する(S406)。
【0094】
また、通信相手のVPN装置301も同様に、上述した通信障害検出処理によって所定間隔でP2P通信定期診断を行う。ここで、データ通信に異常が発生し、P2P通信の異常(通信障害)が検出された場合(S407)、VPN装置301は、中継サーバ利用要求を呼制御サーバ202に対して送信する(S408)。呼制御サーバ202は、中継サーバ利用要求を受信した際に、指定セッションで既に中継サーバの割り当てがあるかを判断し、中継サーバの割り当てがある場合は中継サーバ利用不可の応答を返信する。図示例の場合、呼制御サーバ202は、VPN装置301から中継サーバ利用要求を受信すると、指定セッションでの中継サーバの割り当てがあるかを判断する(S409)。この場合は中継サーバの割り当てがあるので、呼制御サーバ202は中継サーバ利用応答に中継サーバ利用NGの情報を設定し、後に中継サーバ利用要求のあったVPN装置301に対して送信する(S410)。
【0095】
以降のVPN装置101の中継サーバ203へのログイン処理(S411)から、中継サーバ203を経由したサーバ経由通信への移行処理、及びP2P通信の終了処理(S421)までの処理手順は、上述した図8のS207〜S217、図9のS311〜S321の処理と同様であり、ここでは説明を省略する。
【0096】
このように、呼制御サーバで処理状態を管理することにより、第2の実施形態と同様、通信を行っている両方の装置で中継サーバを利用したサーバ経由通信への移行処理が同時に発生した場合でも、片方を抑制し、矛盾なく中継サーバ経由の通信へ移行することが可能となる。
【0097】
なお、VPN装置が発側、着側を認識する場合などでは、どちらか一方でのみ図6に示したP2P通信の定期診断を行う処理にすることも可能である。この場合は図8に示した第1の実施形態と同様の処理となる。どちらか片方の装置のみでP2P通信定期診断を行った場合には、図9、図10のような中継サーバ利用要求が衝突する事象は発生せず、煩雑な処理を考慮しなくてもよいため、サーバ経由通信移行処理が単純化できるという効果がある。
【0098】
上述したように、本実施形態では、相手装置とP2P通信を行っているときに、相手装置からのKeep−aliveパケットが所定時間以上受信されない、規定値以上のエラー発生率が所定時間以上継続するなどにより、P2P通信が継続困難となる通信障害を検出する。通信障害を検出した場合は、P2P通信から中継サーバを用いたサーバ経由通信に移行する。これにより、P2P通信中に何らかの障害が発生した場合には、中継サーバを経由した安定した通信路へ通信経路を自動的に切り替えることができ、安定した通信サービスを提供することができる。したがって、本実施形態によれば、通信障害発生時のリカバリー処理を正常に実行でき、安定した通信を継続することが可能となる。
【0099】
なお、本発明は、本発明の趣旨ならびに範囲を逸脱することなく、明細書の記載、並びに周知の技術に基づいて、当業者が様々な変更、応用することも本発明の予定するところであり、保護を求める範囲に含まれる。また、発明の趣旨を逸脱しない範囲で、上記実施形態における各構成要素を任意に組み合わせてもよい。
【産業上の利用可能性】
【0100】
本発明は、P2P通信中に通信障害が発生した場合にも安定した通信を継続することが可能となる効果を有し、複数のネットワーク間で経路を構築して互いに通信するVPN装置、IP通信装置等として有用である。
【符号の説明】
【0101】
100、300 LAN
101、301、511、512 VPN装置
102、302 ルータ
103、303 端末
111 マイクロコンピュータ(CPU)
112 不揮発性メモリ
113 メモリ
114、115 ネットワークインタフェース
116 LAN側ネットワーク制御部
117 WAN側ネットワーク制御部
118 通信中継部
119 表示制御部
120 表示部
130 システム制御部
131 配下端末管理部
132 メモリ部
133 データ中継部
134 設定用インタフェース部
135 外部アドレス・ポート情報記憶部
140 通信制御部
141 外部アドレス・ポート取得部
142 VPN機能部
143 呼制御機能部
145 暗号処理部
147 通信障害検出部
200、500 WAN
201 STUNサーバ
202 呼制御サーバ
203、503 中継サーバ
521、522 NATルータ
531、532 通信装置


【特許請求の範囲】
【請求項1】
IPネットワークにおいて、相手装置との間で仮想プライベートネットワークを構築して通信を行うVPN装置であって、
前記相手装置との間でP2P通信を行っているときに、このP2P通信が継続困難となる通信障害を検出する通信障害検出部と、
前記通信障害が検出された場合に、前記IPネットワークに設けられた中継サーバ経由の通信であるサーバ経由通信への移行処理を行う通信制御部と、
を備えるVPN装置。
【請求項2】
請求項1に記載のVPN装置であって、
前記通信障害検出部は、前記P2P通信時における、前記相手装置からのKeep−aliveパケットの受信に基づき、所定期間以上前記Keep−aliveパケットの受信が無い場合に通信障害が発生したと判定するVPN装置。
【請求項3】
請求項1に記載のVPN装置であって、
前記通信障害検出部は、前記P2P通信時における、前記相手装置との通信のエラー発生率に基づき、前記エラー発生率が所定値を超えた状態が所定時間以上継続した場合に通信障害が発生したと判定するVPN装置。
【請求項4】
請求項1に記載のVPN装置であって、
前記通信制御部は、前記サーバ経由通信への移行処理を行う際に、前記相手装置との接続を制御する呼制御サーバに対して、前記サーバ経由通信を行う中継サーバの利用要求を送信し、前記呼制御サーバから中継サーバの利用応答があった場合に、指定された宛先の中継サーバに接続して前記相手装置との間で中継サーバを経由した通信を開始するVPN装置。
【請求項5】
IPネットワークにおいて、相手装置との間で通信を行うIP通信装置であって、
前記相手装置との間でP2P通信を行っているときに、このP2P通信が継続困難となる通信障害を検出する通信障害検出部と、
前記通信障害が検出された場合に、前記IPネットワークに設けられた中継サーバ経由の通信であるサーバ経由通信への移行処理を行う通信制御部と、
を備えるIP通信装置。
【請求項6】
IPネットワークにおいて、複数の通信装置間の接続を制御する呼制御サーバの機能を持つサーバ装置であって、
前記複数の通信装置がP2P通信を行っているときに、いずれかの通信装置から、前記IPネットワークに設けられた中継サーバの利用要求を受信した場合、中継サーバの使用可否を判定し、前記中継サーバへの接続先情報を含む中継サーバの利用応答を、前記利用要求のあった通信装置に対して返信し、この通信装置を前記中継サーバに接続させることで、P2P通信からサーバ経由通信への移行制御を行う通信移行制御部を備えるサーバ装置。
【請求項7】
請求項6に記載のサーバ装置であって、
前記通信移行制御部は、前記中継サーバの利用要求を受信したときに、指定された通信に関して、既に中継指示中である場合、あるいは、中継サーバの割り当てがある場合には、中継サーバ利用不可の応答を前記利用要求のあった通信装置に対して返信するサーバ装置。
【請求項8】
IPネットワークにおいて、相手装置との間で仮想プライベートネットワークを構築して通信を行うVPN装置における通信方法であって、
前記相手装置との間でP2P通信を行っているときに、このP2P通信が継続困難となる通信障害を検出するステップと、
前記通信障害が検出された場合に、前記IPネットワークに設けられた中継サーバ経由の通信であるサーバ経由通信への移行処理を行うステップと、
を有する通信方法。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2011−211490(P2011−211490A)
【公開日】平成23年10月20日(2011.10.20)
【国際特許分類】
【出願番号】特願2010−77419(P2010−77419)
【出願日】平成22年3月30日(2010.3.30)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】