(57)【要約】      （修正有）【課題】複数のＶＰＮ装置間でのＶＰＮ通信開始時におけるサーバ負荷軽減、および通信遅延、通信障害の発生を最小限に留めることが可能なＶＰＮ装置を提供する。【解決手段】他のＶＰＮ装置３０１との間でＶＰＮを構築して通信を行うＶＰＮ装置１０１であって、ネットワークを介して、ＶＰＮ装置１０１の外部アドレス・ポート情報を取得し、上記ネットワークを介して、ＶＰＮ装置１０１の外部アドレス・ポート情報をＶＰＮ装置３０１へ送信し、ＶＰＮ装置３０１からのＶＰＮ装置３０１の外部アドレス・ポート情報を受信し、ＶＰＮ装置３０１の外部アドレス・ポート情報を用いて、ＶＰＮ装置１０１とＶＰＮ装置３０１との間でＶＰＮ通信が可能な状態であるか否かを判定する。この間にバースト的に発生するパケットの中から優先されるデータ通信を先に開始し、ＶＰＮ通信が可能な状態であるか否かの判定を行った後に全てのデータ通信を開始する。【選択図】図１
2011124770.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上で、他のＶＰＮ装置との間で仮想プライベートネットワークを構築して通信を行うＶＰＮ装置であって、
前記ネットワークを介して、当該ＶＰＮ装置が通信する際に使用するグローバルアドレス情報及びポート情報を取得する外部アドレス・ポート情報取得部と、
前記ネットワークを介して、当該ＶＰＮ装置の前記グローバルアドレス情報及び前記ポート情報を前記他のＶＰＮ装置へ送信する外部アドレス・ポート情報送信部と、
前記ネットワークを介して、前記他のＶＰＮ装置からの前記他のＶＰＮ装置のグローバルアドレス情報及びポート情報を受信する外部アドレス・ポート情報受信部と、
前記他のＶＰＮ装置の前記グローバルアドレス情報及び前記ポート情報を用いて、当該ＶＰＮ装置と前記他のＶＰＮ装置との間でＶＰＮ通信が可能な状態であるか否かを判定する通信状態判定部と、
通信データを前記他のＶＰＮ装置へ送信する通信データ送信部と、
前記通信データ送信部により送信される通信データのプロトコル種別を判定するデータ種別判定部と、
前記データ種別判定部による判定結果に基づいて、前記通信状態判定部による前記ＶＰＮ通信が可能な状態であるか否かの判定と前記通信データ送信部による前記通信データの送信開始との順序を決定する処理順序決定部と、
を備えるＶＰＮ装置。
【請求項２】
請求項１に記載のＶＰＮ装置であって、更に、
当該ＶＰＮ装置配下の通信端末からの通信データを受信する通信データ受信部を備え、
前記送信データ送信部は、前記通信データ受信部により受信された通信データを送信するＶＰＮ装置。
【請求項３】
請求項１または２に記載のＶＰＮ装置であって、
前記処理順序決定部は、前記データ種別判定部により前記通信データがＵＤＰデータであると判定された場合、前記通信状態判定部によって前記ＶＰＮ通信が可能な状態であるか否かが判定される前に前記通信データの送信を開始することを決定し、
前記データ送信部は、前記通信状態判定部による前記ＶＰＮ通信が可能な状態であるか否かの判定前に、前記ネットワークを介して、前記他のＶＰＮ装置へ通信データの送信を開始するＶＰＮ装置。
【請求項４】
請求項１または２に記載のＶＰＮ装置であって、
前記処理順序決定部は、前記データ種別判定部により前記通信データがＴＣＰデータであると判定された場合、前記通信状態判定部によって前記ＶＰＮ通信が可能な状態であるか否かが判定された後に前記通信データの送信を開始することを決定し、
前記データ送信部は、前記通信状態判定部による前記ＶＰＮ通信が可能な状態であるか否かの判定後に、前記ＶＰＮ通信が可能な状態であると判定された通信経路を介して、前記他のＶＰＮ装置へ通信データの送信を開始するＶＰＮ装置。
【請求項５】
ネットワーク上で、他のＶＰＮ装置との間で仮想プライベートネットワークを構築して通信を行うＶＰＮ装置のＶＰＮネットワーキング方法であって、
前記ネットワークを介して、当該ＶＰＮ装置が通信する際に使用するグローバルアドレス情報及びポート情報を取得するステップと、
前記ネットワークを介して、当該ＶＰＮ装置の前記グローバルアドレス情報及び前記ポート情報を前記他のＶＰＮ装置へ送信するステップと、
前記ネットワークを介して、前記他のＶＰＮ装置からの前記他のＶＰＮ装置のグローバルアドレス情報及びポート情報を受信するステップと、
前記他のＶＰＮ装置の前記グローバルアドレス情報及び前記ポート情報を用いて、当該ＶＰＮ装置と前記他のＶＰＮ装置との間でＶＰＮ通信が可能な状態であるか否かを判定するステップと、
通信データを前記他のＶＰＮ装置へ送信するステップと、
送信される通信データのプロトコル種別を判定するステップと、
前記通信データのプロトコル種別の判定結果に基づいて、前記ＶＰＮ通信が可能な状態であるか否かの判定と前記通信データの送信開始との順序を決定するステップと、
を有するＶＰＮネットワーキング方法。
【請求項６】
請求項５に記載のＶＰＮネットワーキング方法の各ステップを実行させるためのプログラム。
【請求項７】
請求項５に記載のＶＰＮネットワーキング方法の各ステップを実行させるためのプログラムを記録したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク通信において通信相手の固定された専用通信回線（専用線）の代わりに、多数の加入者で帯域を共用する通信網を利用してネットワーク間などを接続するＶＰＮ（Virtual Private Network：仮想プライベートネットワーク）技術におけるＶＰＮ装置、ＶＰＮネットワーキング方法、及び記憶媒体に関するものである。
【背景技術】
【０００２】
仮想プライベートネットワーク（以下、ＶＰＮと記載する）は、たとえば、企業内等の２以上の拠点のローカルエリアネットワーク（ＬＡＮ）相互間などのような、一般に、異なるネットワークセグメントを、広域ネットワーク（ＷＡＮ）などを介して互いに接続する。そして、通信の秘匿性を担保することで、仮想的に全体が１つのプライベートネットワーク（専用線）であるように構成する。これにより、専用線を利用する場合と同様の通信サービスを可能にする。
【０００３】
このようなＶＰＮは、インターネット等のＷＡＮや公衆回線網を利用して構築するいわゆるインターネットＶＰＮと、通信事業者閉域網などのインターネット等とは異なる通信網を使用して構築するＩＰ−ＶＰＮと、に大別される。特に、インターネットＶＰＮは、昨今のネットワークインフラのブロードバンド化と、インターネットを利用することで安価にＶＰＮを構築可能であるために、利用者が増加している。
【０００４】
ＶＰＮを構築するにあたり、例えば異なる拠点間で通信を行う場合に、通信経路の途中にインターネット等の共用の通信網が介在するので、通信の漏洩、盗聴、改竄などの危険性がある。そこで、ＶＰＮ技術においては、通信の秘匿性を担保するために、ネットワークのいずれかの階層において、データを暗号化しカプセリングすることを基本的な技術思想としている。ここで、ある通信プロトコルを他の通信プロトコルのパケットで包んで送ることを「カプセル化（カプセリング）」という。
【０００５】
ＶＰＮ技術で用いられる暗号化プロトコルの具体例としては、ＩＰ（Internet Protocol）層で暗号化を施すＩＰｓｅｃ（Security Architecture for Internet Protocol）や、ＴＣＰ（Transmission Control Protocol）層（特にＨＴＴＰ：Hyper Text Transfer Protocolで使用）で暗号化を施すＳＳＬ（Secure Sockets Layer）などが知られている。また、他のＶＰＮ技術の例として、ＳＳＨ、ＴＬＳ、ＳｏｆｔＥｔｈｅｒ、ＰＰＴＰ、Ｌ２ＴＰ、Ｌ２Ｆ、ＭＰＬＳなどが知られている。ソフトウェアによってＶＰＮを構築するソフトウェアＶＰＮでは、上記のＩＰｓｅｃやＳＳＬを使用したトンネリング技術を使用する。ここで、ある通信プロトコルを、同じまたはより上位の階層のプロトコルのデータとして通信することを「トンネリング」という。ＶＰＮを構築する場合は、ネットワークの中継装置または通信を行う端末等（以降、これらを「ピア」とも称する）に設けたＶＰＮ装置によって、パケットを暗号化及びカプセル化して仮想トンネルを構築する。これにより、ピア間を結ぶ閉じられた通信経路を確立する。
【０００６】
例えば、ネットワーク間を相互接続する技術として、リバーストンネル技術を用いて通信路を構築し、通信路を維持するために通信路維持データを送信し、さらに、通信漏洩等を防止するために電子署名や暗号化を施すものが提案されている（例えば、特許文献１
参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−１６０４９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、複数のＶＰＮ装置を用いて通信経路（ここでは、一例としてＰ２Ｐ（Peer to Peer）通信経路として説明する）を確立する場合には、いずれかのＶＰＮ装置が希望する通信先のＶＰＮ装置へ接続要求を送信する。接続要求を受信したＶＰＮ装置は、この接続要求に対する接続応答を送信元のＶＰＮ装置へ送信する。そして、互いのＶＰＮ装置間でＰ２Ｐ通信が可能であるか否かの判定を行う。Ｐ２Ｐ通信が可能である場合にはＰ２Ｐ通信経路が確立され、以降、通信データの送受信が可能になる。
【０００９】
ここで、Ｐ２Ｐ通信経路を確立するＶＰＮ装置が行う通信の通信形式としては、ＴＣＰ（Transmission Control Protocol）プロトコルによる通信（以下、ＴＣＰ通信という）及びＵＤＰ（User Datagram Protocol）プロトコルによる通信（以下、ＵＤＰ通信という）がある。ＴＣＰ通信は、コネクション型の通信形式であり、信頼性が高く、データ通信が保障されているが、リアルタイム性を必要としない通信形態である。一方、ＵＤＰ通信は、コネクションレス型の通信形式であり、リアルタイム性が高い通信に用いられるが、データ通信が保障されておらず、信頼性の低い通信形態である。
【００１０】
また、ＴＣＰ通信ではＴＣＰパケット（ＴＣＰデータ）が送受信され、ＵＤＰ通信ではＵＤＰパケット（ＵＤＰデータ）が送受信される。ＴＣＰパケットは、主にデータ通信用のパケット、制御用のパケット等の高い信頼性が必要とされるパケットに用いられ、ＵＤＰパケットは、主に画像通信用のパケット、音声通信用のパケット等のリアルタイム性が必要とされるパケットに用いられる。これらのパケットは、同時に送受信されることもある。一般的に通信時のパケット送信において、これらのパケットがバースト的に送受信されると、ＶＰＮ装置、システムの負荷が一時的に増大し、通信遅延、通信障害などが発生することがある。したがって、このような障害の発生をなるべく回避するために、これらのパケットがバースト的に送信される処理形態では、パケットの種別に応じて送受信すべきデータの優先順位を決定することが好ましい。
【００１１】
本発明は、上記事情に鑑みてなされたものであって、複数のＶＰＮ装置間でＶＰＮ通信が確立する際に発生するバースト的なパケットに対して、通信遅延、通信障害の発生を最小限に留めることが可能なＶＰＮ装置、ＶＰＮネットワーキング方法、プログラム、及び記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明のＶＰＮ装置は、ネットワーク上で、他のＶＰＮ装置との間でＶＰＮ（仮想プライベートネットワーク）を構築して通信を行うＶＰＮ装置であって、前記ネットワークを介して、当該ＶＰＮ装置が通信する際に使用するグローバルアドレス情報及びポート情報を取得する外部アドレス・ポート情報取得部と、前記ネットワークを介して、当該ＶＰＮ装置の前記グローバルアドレス情報及び前記ポート情報を前記他のＶＰＮ装置へ送信する外部アドレス・ポート情報送信部と、前記ネットワークを介して、前記他のＶＰＮ装置からの前記他のＶＰＮ装置のグローバルアドレス情報及びポート情報を受信する外部アドレス・ポート情報受信部と、前記他のＶＰＮ装置の前記グローバルアドレス情報及び前記ポート情報を用いて、当該ＶＰＮ装置と前記他のＶＰＮ装置との間でＶＰＮ通信が可能な状態であるか否かを判定する通信状態判定部と、通信データを前記他のＶＰＮ装置へ送信する通信データ送信部と、前記通信データ送信部により送信される通信データのプロトコル種別を判定するデータ種別判定部と、前記データ種別判定部による判定結果に基づいて、前記通信状態判定部による前記ＶＰＮ通信が可能な状態であるか否かの判定と前記通信データ送信部による前記通信データの送信開始との順序を決定する処理順序決定部と、を備える。
【００１３】
この構成により、複数のＶＰＮ装置間でのＶＰＮ通信経路確立までの通信遅延、通信障害の発生を最小限に留めることが可能である。
【００１４】
また、本発明のＶＰＮ装置は、当該ＶＰＮ装置配下の通信端末からの通信データを受信する通信データ受信部を備え、前記送信データ送信部が、前記通信データ受信部により受信された通信データを送信する。
【００１５】
この構成により、ＶＰＮ装置配下の端末からの送信要求があったときに、送信すべき端末からの通信データの種別に基づいて、その通信データの送信するタイミングを決定することができ、通信開始時のバースト的な通信発生に対するシステムへの負荷を軽減すると共に、通信データの通信遅延、通信障害の発生を最小限に留めることができる。
【００１６】
また、本発明のＶＰＮ装置は、前記処理順序決定部が、前記データ種別判定部により前記通信データがＵＤＰデータであると判定された場合、前記通信状態判定部によって前記ＶＰＮ通信が可能な状態であるか否かが判定される前に前記通信データの送信を開始することを決定し、前記データ送信部が、前記通信状態判定部による前記ＶＰＮ通信が可能な状態であるか否かの判定前に、前記ネットワークを介して、前記他のＶＰＮ装置へ通信データの送信を開始する。
【００１７】
この構成により、バースト的に通信データが発生したとしても、リアルタイム性が要求されるＵＤＰデータを迅速に送信することができ、ＶＰＮ通信確立時の通信遅延の発生を最小限に留めることができる。
【００１８】
また、本発明のＶＰＮ装置は、前記処理順序決定部が、前記データ種別判定部により前記通信データがＴＣＰデータであると判定された場合、前記通信状態判定部によって前記ＶＰＮ通信が可能な状態であるか否かが判定された後に前記通信データの送信を開始することを決定し、前記データ送信部が、前記通信状態判定部による前記ＶＰＮ通信が可能な状態であるか否かの判定後に、前記ＶＰＮ通信が可能な状態であると判定された通信経路を介して、前記他のＶＰＮ装置へ通信データの送信を開始する。
【００１９】
この構成により、ＴＣＰ／ＵＤＰのパケットによる通信でバースト的に通信データが発生したとしても、リアルタイム性が要求されないＴＣＰデータについては、ＶＰＮ通信経路が確立されるまでデータ送信を待機させ、リアルタイム性が要求されるＵＤＰデータを優先的に送信させることができ、ＶＰＮ通信開始時の通信遅延、通信障害の発生を最小限に留めることができる。さらに、ＴＣＰデータを待機中に破棄することがあっても、ＴＣＰプロトコルの再送制御機能により、ＴＣＰデータの欠落を防止することができる。
【００２０】
また、本発明のＶＰＮネットワーキング方法は、ネットワーク上で、他のＶＰＮ装置との間でＶＰＮ（仮想プライベートネットワーク）を構築して通信を行うＶＰＮ装置のＶＰＮネットワーキング方法であって、前記ネットワークを介して、当該ＶＰＮ装置が通信する際に使用するグローバルアドレス情報及びポート情報を取得するステップと、前記ネットワークを介して、当該ＶＰＮ装置の前記グローバルアドレス情報及び前記ポート情報を前記他のＶＰＮ装置へ送信するステップと、前記ネットワークを介して、前記他のＶＰＮ装置からの前記他のＶＰＮ装置のグローバルアドレス情報及びポート情報を受信するステップと、前記他のＶＰＮ装置の前記グローバルアドレス情報及び前記ポート情報を用いて、当該ＶＰＮ装置と前記他のＶＰＮ装置との間でＶＰＮ通信が可能な状態であるか否かを判定するステップと、通信データを前記他のＶＰＮ装置へ送信するステップと、送信される通信データのプロトコル種別を判定するステップと、前記通信データのプロトコル種別の判定結果に基づいて、前記ＶＰＮ通信が可能な状態であるか否かの判定と前記通信データの送信開始との順序を決定するステップと、を有する。
【００２１】
この方法により、複数のＶＰＮ装置間でのＶＰＮ通信開始時の通信遅延、通信障害の発生を最小限に留めることが可能である。
【００２２】
また、本発明のプログラムは、上記ＶＰＮネットワーキング方法の各ステップを実行させるためのプログラムである。
【００２３】
このプログラムにより、複数のＶＰＮ装置間でのＶＰＮ通信開始時の通信遅延、通信障害の発生を最小限に留めることが可能である。
【００２４】
また、本発明の記憶媒体は、上記ＶＰＮネットワーキング方法の各ステップを実行させるためのプログラムを記録したコンピュータ読み取り可能な記憶媒体である。
【００２５】
この記憶媒体により、複数のＶＰＮ装置間でのＶＰＮ通信開始時の通信遅延、通信障害の発生を最小限に留めることが可能である。
【発明の効果】
【００２６】
本発明によれば、複数のＶＰＮ装置間で通信を行う場合、ＶＰＮ通信開始時の通信遅延、通信障害の発生を最小限に留めることが可能である。
【図面の簡単な説明】
【００２７】
【図１】本発明の実施形態に係るＶＰＮシステムの構成例を示す図
【図２】本発明の実施形態のＶＰＮ装置のハードウェア構成の構成例を示すブロック図
【図３】本発明の実施形態のＶＰＮ装置の機能的な構成例を示すブロック図
【図４】本発明の実施形態のＶＰＮシステムにおける通信パケットの種別判定時の処理手順の一例を示すフローチャート
【図５】本発明の実施形態のＶＰＮシステムにおけるＴＣＰパケットを検出した場合のＶＰＮ構築時の処理手順を示すシーケンス図
【図６】本発明の実施形態のＶＰＮシステムにおけるＵＤＰパケットを検出した場合のＶＰＮ構築時の処理手順を示すシーケンス図
【図７】本発明の実施形態のＶＰＮシステムにおけるＵＤＰパケットを検出した場合のＶＰＮ構築時の別の処理手順を示すシーケンス図
【図８】本発明の実施形態のＶＰＮ装置におけるＴＣＰパケットを検出した場合のＶＰＮ構築時の処理内容を示すフローチャート
【図９】本発明の実施形態のＶＰＮ装置におけるＵＤＰパケットを検出した場合のＶＰＮ構築時の処理内容を示すフローチャート
【図１０】本発明の実施形態のＶＰＮ装置におけるＵＤＰパケットを検出した場合のＶＰＮ構築時の別の処理内容を示すフローチャート
【図１１】本発明の実施形態に係るＶＰＮシステムの変形構成例を示す図
【図１２】本発明の実施形態のＶＰＮ装置の機能的な変形構成例を示すブロック図
【発明を実施するための形態】
【００２８】
以下に、本発明に係るＶＰＮ装置、ＶＰＮネットワーキング方法、プログラム、及び記憶媒体の一例としての実施形態を説明する。ここでは、広域ネットワーク（ＷＡＮ、グローバルネットワーク）を介して２つのローカルエリアネットワークの経路（ＬＡＮ、ローカルネットワーク）を経路接続して仮想プライベートネットワーク（ＶＰＮ）システムを構築する場合の構成例を示す。ＬＡＮとしては、有線ＬＡＮまたは無線ＬＡＮなどが用いられる。ＷＡＮとしては、インターネット等が用いられる。
【００２９】
図１は本発明の実施形態に係るＶＰＮシステムの構成例を示す図である。本実施形態のＶＰＮシステムは、一つの拠点に設けられたＬＡＮ１００と、他の拠点に設けられたＬＡＮ３００とを、インターネット等のＷＡＮ２００を介して通信経路を接続する。そして、ＬＡＮ１００の配下に接続された端末１０３とＬＡＮ３００の配下に接続された端末３０３との間で、ＶＰＮによる秘匿性を担保した通信（「ＶＰＮ通信」とも称する）を可能にしている。具体的なＶＰＮ通信の用途（アプリケーションプログラム等）としては、ＩＰ電話（音声通話）、ネットミーティング（動画＆音声通信）、ネットワークカメラ（ビデオ伝送）などが想定される。
【００３０】
ＬＡＮ１００とＷＡＮ２００との境界にはルータ１０２が配設され、ＷＡＮ２００とＬＡＮ３００との境界にはルータ３０２が配設されている。また、本実施形態では、ＶＰＮの構築を可能にするために、ＬＡＮ１００にはＶＰＮ装置１０１が接続され、ＬＡＮ３００にはＶＰＮ装置３０１が接続されている。そして、ＶＰＮ装置１０１には配下の端末１０３が接続され、ＶＰＮ装置３０１には配下の端末３０３が接続されている。
【００３１】
また、ＷＡＮ２００上には、ＶＰＮ装置１０１とＶＰＮ装置３０１との間のＶＰＮによる接続（以下、「ＶＰＮ接続」と称する）を可能にするために、ＳＴＵＮサーバ２０１と呼制御サーバ２０２とが接続されている。ＳＴＵＮサーバ２０１は、ＳＴＵＮ（Simple Traversal of User Datagram Protocol (UDP) through Network Address Translators (NATs)）プロトコルを実行するために用いられるサーバである。呼制御サーバ２０２は、ＶＰＮ装置や端末等のピア間の発呼、着呼のために用いられるサーバである。
【００３２】
図１において、破線は外部アドレス（グローバルＩＰアドレス）とポートの情報を含む外部アドレス・ポート情報の流れを示している。また、一点鎖線は発呼及び着呼の制御に関する呼制御信号の流れを示している。また、実線はピア間で伝送される通信データに関するピア間通信（Ｐ２Ｐ通信）の流れを示している。さらに、Ｐ２Ｐ通信のためにＶＰＮ接続された通信経路を仮想トンネルとして、図中に表す。
【００３３】
各機器がＷＡＮ２００を介して通信する場合、ＷＡＮ２００上では、伝送するパケットの送信元や送信先を特定するためのアドレス情報として、ＷＡＮにおいて特定可能なグローバルなアドレス情報が用いられる。一般にはＩＰネットワークが用いられるため、グローバルＩＰアドレス及びポート番号が用いられる。しかし、各ＬＡＮ１００、３００内の通信においては、送信元や送信先を特定するためのアドレス情報として、ＬＡＮ内のみで特定可能なローカルなアドレス情報が用いられる。一般にはＩＰネットワークが用いられるため、ローカルＩＰアドレス及びポート番号が用いられる。したがって、各ＬＡＮ１００、３００とＷＡＮ２００との間の通信を可能にするために、ローカルなアドレス情報とグローバルなアドレス情報との相互変換を行うＮＡＴ（Network Address Translation）機能が各ルータ１０２、３０２に搭載されている。なお、ＩＰネットワーク以外の場合には、グローバルＩＰアドレス以外のグローバルなアドレス情報であってもよい。
【００３４】
ただし、ＬＡＮ１００、３００の配下の各端末においては、外部からアクセス可能なグローバルＩＰアドレス情報を自身で持っていない。また、特別な設定を行わない限り、ＬＡＮ１００配下の端末１０３が他のＬＡＮ３００配下の端末３０３と直接通信することはできない。また、各ルータ１０２、３０２のＮＡＴ機能のため、普通の状態ではＷＡＮ２００側から各ＬＡＮ１００、３００内の各端末にアクセスすることもできない。
【００３５】
このような状況であっても、本実施形態では、各拠点のＬＡＮにＶＰＮ装置１０１、３０１を設けることにより、図１において実線で示すＰ２Ｐ通信の経路のように、ＬＡＮ間をＶＰＮ接続して端末１０３と端末３０３との間で仮想的な閉じられた通信経路を通じて直接通信することが可能になる。本実施形態のＶＰＮ装置の構成、機能、及び動作について以下に順を追って説明する。
【００３６】
ＳＴＵＮサーバ２０１は、ＳＴＵＮプロトコルの実行に関するサービスを行うもので、いわゆるＮＡＴ越えの通信を行うために必要な情報を提供するアドレス情報サーバである。ＳＴＵＮは、音声、映像、文章などの双方向リアルタイムＩＰ通信を行うアプリケーションにおいて、ＮＡＴ通過の方法の１つとして使われる標準化されたクライアントサーバ型のインターネットプロトコルである。ＳＴＵＮサーバ２０１は、アクセス元からの要求に応じて、外部からアクセス可能な当該アクセス元のグローバルなアドレス情報として、外部ネットワークから見えるグローバルＩＰアドレスとポートの情報を含む外部アドレス・ポート情報を返信する。外部アドレス・ポート情報としては、ＩＰネットワークにおいてはＩＰネットワーク層のグローバルＩＰアドレス及びトランスポート層のポート番号が用いられる。
【００３７】
各ＶＰＮ装置１０１、３０１は、ＳＴＵＮサーバ２０１との間で所定のテスト手順の通信を実行し、ＳＴＵＮサーバ２０１から自装置のグローバルＩＰアドレス及びポート番号が含まれる応答パケットを受信する。これにより、各ＶＰＮ装置１０１、３０１は自装置のグローバルＩＰアドレス及びポート番号を取得することができる。また、自装置の位置するＬＡＮとＷＡＮとの間にルータが複数存在する場合等であっても、これらのルータ等がＵＰｎＰ（Universal Plug and Play）の機能を有していない場合であっても、確実にグローバルＩＰアドレス及びポート番号を取得できるという効果もある。
【００３８】
なお、ＶＰＮ装置１０１、３０１がグローバルＩＰアドレス及びポート番号を取得するための方法に関しては、ＩＥＴＦのＲＦＣ ３４８９（STUN）にて記載された手法を利用することもできる。しかし、ＳＴＵＮによる手法はグローバルＩＰアドレス及びポート番号を取得するところまでが可能なのであって、本実施形態では、通信に先立って予め各種パラメータの設定作業を行うこともなく、簡易かつ柔軟にＶＰＮを構築することができる。
【００３９】
呼制御サーバ２０２は、特定の相手先を呼び出して通信経路を確立するための通信装置間の呼制御に関するサービスを行う呼管理サーバである。呼制御サーバ２０２は、登録されたＶＰＮ装置または端末の識別情報を保持しており、例えばＩＰ電話の機能を有する通信システムの場合には、接続相手の電話番号に基づいて特定の相手先を呼び出すことも考えられる。また、呼制御サーバ２０２は、信号やデータを中継する機能を有しており、発信側の装置から送出されたパケットを着信側の装置に転送したり、着信側の装置から送出されたパケットを発信側の装置に転送したりすることも可能である。
【００４０】
なお、ＳＴＵＮサーバ２０１及び呼制御サーバ２０２は、ここでは別個のサーバによる構成例を示しているが、１つのサーバにこれらのアドレス情報サーバと中継サーバの２つのサーバの機能を搭載して構成してもよいし、ＷＡＮ上の他のいずれかのサーバに同様の機能を搭載して構成することも可能である。
【００４１】
次に、本実施形態のＶＰＮ装置の構成及び機能について説明する。なお、ＶＰＮ装置１０１とＶＰＮ装置３０１の構成及び機能は同様であり、ここではＶＰＮ装置１０１によって説明する。図２は本実施形態のＶＰＮ装置のハードウェア構成の構成例を示すブロック図である。
【００４２】
ＶＰＮ装置１０１は、中央演算処理装置（ＣＰＵ）１１１、フラッシュＲＡＭ等による不揮発性メモリ１１２、ＳＤ ＲＡＭ等によるメモリ１１３、ネットワークインタフェース１１４、ネットワークインタフェース１１５、ＬＡＮ側ネットワーク制御部１１６、ＷＡＮ側ネットワーク制御部１１７、通信中継部１１８、表示制御部１１９、表示部１２０を有して構成される。
【００４３】
ＣＰＵ１１１は、所定のプログラムを実行することによりＶＰＮ装置１０１全体の制御を実施する。不揮発性メモリ１１２は、ＣＰＵ１１１が実行するプログラムを保持している。このプログラムの中には、ＶＰＮ装置１０１が外部アドレス・ポート情報を取得するための外部アドレス・ポート取得プログラムも含まれている。
【００４４】
なお、ＣＰＵ１１１が実行するプログラムについては、任意の通信経路を経由してオンラインで外部のサーバから取得することもできるし、例えばメモリカードやＣＤ−ＲＯＭのような記録媒体から読み込んで取得することもできる。換言すれば、汎用のコンピュータにＶＰＮ装置の機能を実現するプログラムを記録媒体から読み込むことによってＶＰＮ装置、およびＶＰＮネットワーキング方法を実現することができる。
なお、ＣＰＵ１１１がプログラムを実行する時には、不揮発性メモリ１１２上のプログラムの一部がメモリ１１３上に展開され、メモリ１１３上のプログラムが実行される場合もある。
【００４５】
メモリ１１３は、ＶＰＮ装置１０１の運用中のデータ管理や、各種設定情報などを一時的に記憶するためのものである。設定情報としては、自端末の外部アドレス・ポート取得要求の応答に含まれる外部アドレス・ポート情報等、通信に必要なあて先アドレス情報などが含まれる。
【００４６】
ネットワークインタフェース１１４は、ＶＰＮ装置１０１と自装置が管理する配下の端末１０３とを通信可能な状態で接続するためのインタフェースである。ネットワークインタフェース１１５は、ＶＰＮ装置１０１とＬＡＮ１００とを通信可能な状態で接続するためのインタフェースである。ＬＡＮ側ネットワーク制御部１１６は、ＬＡＮ側のネットワークインタフェース１１４に関する通信制御を行うものである。ＷＡＮ側ネットワーク制御部１１７は、ＷＡＮ側のネットワークインタフェース１１５に関する通信制御を行うものである。
【００４７】
通信中継部１１８は、ＬＡＮ側に接続された配下の端末１０３から外部のＶＰＮ接続先（ＶＰＮ装置３０１配下の端末３０３）へ送出するパケットデータと、反対に、外部のＶＰＮ接続先（ＶＰＮ装置３０１配下の端末３０３）から配下の端末１０３宛に到着したパケットデータをそれぞれ中継する。
【００４８】
表示部１２０は、ＶＰＮ装置１０１としての動作状態の表示等を行う表示器により構成され、各種状態をユーザあるいは管理者に通知する。表示部１２０は、複数の発光ダイオード（ＬＥＤ）や液晶表示器（ＬＣＤ）等により構成される。表示制御部１１９は、表示部１２０の表示制御を行うもので、ＣＰＵ１１１からの表示信号に従って表示部１２０に表示する内容等を制御する。
【００４９】
図３は本実施形態のＶＰＮ装置の機能的な構成例を示すブロック図である。
【００５０】
ＶＰＮ装置１０１は、機能構成として、システム制御部１３０、配下端末管理部１３１、メモリ部１３２、データ中継部１３３、設定用インタフェース部１３４、通信制御部１４０を有して構成される。メモリ部１３２は、外部アドレス・ポート情報記憶部１３５を有する。通信制御部１４０は、外部アドレス・ポート取得部１４１、ＶＰＮ機能部１４２、呼制御機能部１４３、ＴＣＰ判定部１４４、処理順序決定部１４５を有する。ＶＰＮ機能部１４２は、暗号処理部１４６を有する。これらの各機能は、図２に示した各ブロックのハードウェアの動作、またはＣＰＵ１１１が所定のプログラムを実行することにより実現する。
【００５１】
なお、ＶＰＮ装置１０１のＬＡＮ側のネットワークインタフェース１１４は、配下の端末１０３と接続され、ＷＡＮ側のネットワークインタフェース１１５は、ＬＡＮ１００及びルータ１０２を経由してＷＡＮ２００と接続される。
【００５２】
システム制御部１３０は、ＶＰＮ装置１０１の全体の制御を行う。配下端末管理部１３１は、ＶＰＮ装置１０１配下の端末１０３の管理を行う。メモリ部１３２は、外部アドレス・ポート情報記憶部１３５において、外部アドレス（ＷＡＮ２００上でのグローバルＩＰアドレス）とポート（ＩＰネットワークのポート番号）の情報を含む外部アドレス・ポート情報を記憶する。外部アドレス・ポート情報としては、接続元である配下の端末１０３に割り当てられたグローバルＩＰアドレス及びポート番号の情報や、接続先の端末３０３に割り当てられたグローバルＩＰアドレス及びポート番号の情報などを記憶する。
【００５３】
データ中継部１３３は、接続元の端末１０３から接続先の端末３０３に向かって転送されるパケットや、逆に接続先の端末３０３から接続元の端末１０３に向かって転送されるパケットをそれぞれ中継（受信／送信）する。すなわち、データ中継部１３３は、配下端末からの通信データを受信する通信データ受信部、通信データを送信する通信データ送信部の各機能を実現する。設定用インタフェース部１３４は、ユーザあるいは管理者がＶＰＮ装置１０１に対する設定操作等の各種操作を行うためのユーザインタフェースである。このユーザインタフェースの具体例として、端末上で動作するブラウザによって表示するＷｅｂページなどが用いられる。
【００５４】
通信制御部１４０の外部アドレス・ポート取得部１４１は、ＶＰＮ装置１０１の配下の端末１０３に割り当てられた外部アドレス・ポート情報をＳＴＵＮサーバ２０１から取得する。また、接続先の端末３０３の外部アドレス・ポート情報を含むパケットを呼制御サーバ２０２を経由して受信し、接続先の端末３０３に割り当てられた外部アドレス・ポート情報を取得する。外部アドレス・ポート取得部１４１が取得した情報は、メモリ部１３２の外部アドレス・ポート情報記憶部１３５に保持される。
【００５５】
通信制御部１４０のＶＰＮ機能部１４２は、暗号処理部１４６において、ＶＰＮ通信のために必要な暗号処理を行う。すなわち、暗号処理部１４６は、送信するパケットをカプセリングして暗号化したり、受信したパケットをアンカプセリングして復号化して元のパケットを抽出したりする。なお、ＶＰＮ通信は、図１に示したようなＰ２Ｐ通信ではなく、ＷＡＮ２００上に設けられるサーバでパケットの中継を行い、クライアント／サーバ方式でＶＰＮ通信を行うことも可能である。この場合には、サーバ側で暗号処理を行うようにしてもよい。また、通信制御部１４０は、Ｐ２Ｐ通信が可能な状態（Ｐ２Ｐ通信可能状態）であるか否かを判定する。また、カプセリングされたパケット中には、自装置配下の端末１０３を特定するための情報や、相手装置配下の端末３０３を特定するための情報が含まれる。この特定情報に基づいて、ＶＰＮ装置及びＶＰＮ装置配下の端末間でデータ中継部１３３により通信データが中継される。なお、Ｐ２Ｐ通信が可能な状態であるか否かの判定は、ＶＰＮ通信が可能な状態であるか否かを判定することの一例である。
【００５６】
通信制御部１４０の呼制御機能部１４３は、目的の接続先に接続するための接続要求を呼制御サーバ２０２に送信したり、接続先からの接続応答を呼制御サーバ２０２を経由して受信するための処理を実施したりする。
【００５７】
通信制御部１４０のＴＣＰ判定部１４４は、データ中継部１３３により中継される通信パケット（通信データ）を検出する。そして、データ中継部１３３により中継すべき通信データの種別を判定する。具体的には、送信する通信パケットがＴＣＰパケット（ＴＣＰデータ）であるか、ＵＤＰパケット（ＵＤＰデータ）であるかを識別する。
【００５８】
通信制御部１４０の処理順序決定部１４５は、ＴＣＰ判定部１４４による判定結果に基づいて、所定の処理を行う優先順位を決定する。具体的には、ＶＰＮ機能部１４２によるＰ２Ｐ通信可能状態であるか否かの判定とデータ中継部１３３による通信データの送信開始との順序を決定する。ＴＣＰ判定部１４４により通信パケットがＵＤＰパケットであると判定された場合には、処理順序決定部１４５は、Ｐ２Ｐ通信可能状態であるか否かの判定前に通信パケットの送信を開始する。一方、ＴＣＰ判定部１４４により通信パケットがＴＣＰパケットであると判定された場合には、処理順序決定部１４５は、Ｐ２Ｐ通信可能状態であるか否かの判定後もしくは通信経路確定後、通信パケットの送信を開始する。通信経路確定後に通信パケットの送信を開始することで、呼制御サーバ２０２への負担を軽減することができる。
【００５９】
すなわち、通信制御部１４０は、自装置の外部アドレス・ポート情報を取得する外部アドレス・ポート情報取得部、自装置の外部アドレス・ポート情報を送信する外部アドレス・ポート情報送信部、相手装置の外部アドレス・ポート情報を受信する外部アドレス・ポート情報受信部の各機能を実現する。また、通信制御部１４０は、ＶＰＮ通信の通信経路を確立し、Ｐ２Ｐ通信が可能なＰ２Ｐ通信可能状態であるか否かを判定する通信状態判定部、通信データの種別を判定するデータ種別判定部、Ｐ２Ｐ通信可能状態であるか否かの判定と通信データの送信開始との順序を決定する処理順序決定部の各機能を実現する。
【００６０】
このようなＴＣＰ判定部１４４、処理順序決定部１４５を備えることにより、ＶＰＮ装置１０１が送信すべき通信パケットの種別に応じて、Ｐ２Ｐ通信可能状態であるか否かの判定と通信データの送信開始との順序を決定でき、Ｐ２Ｐ通信可能かの判定処理中にも優先的に通信を開始するパケット（プロトコル）選択でき、バースト的にパケットが発生した場合のパケットの抑制が可能なため、通信パケットを中継するサーバに発生する負荷を軽減すると共に通信開始時の通信遅延、通信障害の発生を最小限に留めることができる。
【００６１】
次に、本実施形態のＶＰＮ装置１０１によるＶＰＮ構築時の動作について説明する。
図４は本実施形態のＶＰＮシステムにおける通信パケットの種別判定時の手順の一例を示すフローチャートである。
【００６２】
まず、ＶＰＮ装置１０１は、ＴＣＰ判定部１４４により、ＶＰＮ装置１０１配下の端末１０３からの通信パケットの有無を検出する（ステップＳ１０１）。当該検出処理は、通信パケットを検出するまで反復される。通信パケットが検出されると、ＶＰＮ装置１０１は、ＴＣＰ判定部１４４により、検出された通信パケットがＴＣＰパケットであるかＵＤＰパケットであるかを判定する（ステップＳ１０２）。ＴＣＰパケットである場合には、ＶＰＮ装置１０１は、処理順序決定部１４５により、ＴＣＰ用フロー、つまり図５、図８に示す処理を行うことを決定する。一方、ＵＤＰパケットである場合には、ＶＰＮ装置１０１は、処理順序決定部１４５により、ＵＤＰ用フロー、つまり図６、７、９、１０に示す処理を行うことを決定する。
【００６３】
このように、ＶＰＮ装置１０１配下の端末１０３からの通信パケットの種別に基づいて、以降の通信確立処理手順（ＴＣＰ用フロー又はＵＤＰ用フロー）を決定することができる。したがって、リアルタイム性、信頼性の異なるＴＣＰパケット、ＵＤＰパケットの長所を活かした通信を行うことが可能となる。
【００６４】
次に、ＴＣＰ用フローについて、シーケンス図（図５）を参照しながら説明する。
図５は本実施形態のＶＰＮシステムにおけるＴＣＰパケットを検出した場合のＶＰＮ構築時の処理手順を示すシーケンス図である。この図５では、ＶＰＮ装置を含むネットワークにおいて、ＶＰＮ装置１０１の配下の端末１０３からＷＡＮ２００を経由して他のＶＰＮ装置３０１の配下の端末３０３に接続しようとする場合の処理を示している。
【００６５】
まず、図５に示す処理に先立ち、ＶＰＮ装置１０１は呼制御サーバ２０２にログインしてユーザ認証を受けるようにする。ＶＰＮ装置１０１がユーザ認証に成功した場合、呼制御サーバ２０２において、ＶＰＮ装置１０１の識別情報（ＭＡＣアドレス、ユーザＩＤ、電話番号など）やネットワーク上の位置情報（グローバルＩＰアドレス）等の登録、設定が行われる。以降、ＶＰＮ装置１０１と呼制御サーバ２０２との間で通信可能となる。なお、ＶＰＮ装置１０１は発呼側であるが、被呼側であるＶＰＮ装置３０１についても同様に、呼制御サーバ２０２にログインしてユーザ認証を受け、呼制御サーバ２０２においてＶＰＮ装置３０１の識別情報等の登録、設定が行われる。
【００６６】
この状態で、ＶＰＮ装置１０１は、ＶＰＮ通信を行うアプリケーションの起動に伴って外部アドレス・ポート取得部１４１の機能により、配下の端末１０３からのＶＰＮ接続の接続要求を受けると、ＳＴＵＮサーバ２０１との間で外部アドレス・ポート取得手順を行う（ステップＳ２０１）。このとき、ＶＰＮ装置１０１は、自装置に割り当てられた外部アドレス・ポート情報（ＷＡＮ２００側からみたグローバルＩＰアドレス及びポート番号）を取得するため、ＳＴＵＮサーバ２０１に対して、外部アドレス・ポート取得要求としてバインディングリクエスト（Binding Request、RFC3489参照；以下同じ）パケットを送出する。一方、ＳＴＵＮサーバ２０１は、外部アドレス・ポート取得要求に対して応答し、ＶＰＮ装置１０１に外部アドレス・ポート情報返信として外部アドレス・ポート情報を含むバインディングレスポンス（Binding Response、RFC3489参照；以下同じ）パケットを返送する。そして、ＶＰＮ装置１０１は、外部アドレス・ポート情報返信により得られた外部アドレス・ポート情報を記憶する。
【００６７】
続いて、ＶＰＮ装置１０１は、呼制御サーバ２０２に対して、接続先の端末３０３を配下に持つＶＰＮ装置３０１への通信経路を構築するための接続要求を行う（ステップＳＳ２０２）。このとき、ＶＰＮ装置１０１は、発呼側アドレス情報として、外部アドレス・ポート取得手順（ステップＳ２０１）で取得した自装置の外部アドレス・ポート情報（グローバルＩＰアドレス及びポート番号）を含む接続要求を呼制御サーバ２０２へ送信する。また、この接続要求には、被呼側（ＶＰＮ装置３０１）の識別情報も含まれる。呼制御サーバ２０２は、この接続要求を中継してＶＰＮ接続の接続先となるＶＰＮ装置３０１へ送信する。この接続要求により、呼制御サーバ２０２は、ＶＰＮ装置１０１がＶＰＮ装置３０１へＰ２Ｐ経路構築のためのＶＰＮ接続をしたいという要求を接続先に通知する。
【００６８】
接続先のＶＰＮ装置３０１は、呼制御サーバ２０２からの接続要求を受けると、ＳＴＵＮサーバ２０１との間で外部アドレス・ポート取得手順を行う（ステップＳ２０３）。このとき、ＶＰＮ装置３０１は、上記ＶＰＮ装置１０１と同様、自装置に割り当てられた外部アドレス・ポート情報（ＷＡＮ２００側からみたグローバルＩＰアドレス及びポート番号）を取得するため、ＳＴＵＮサーバ２０１に対して、外部アドレス・ポート取得要求としてバインディングリクエストパケットを送出する。一方、ＳＴＵＮサーバ２０１は、外部アドレス・ポート取得要求に対して応答し、ＶＰＮ装置３０１に外部アドレス・ポート情報返信として外部アドレス・ポート情報を含むバインディングレスポンスパケットを返送する。そして、ＶＰＮ装置３０１は、外部アドレス・ポート情報返信により得られた外部アドレス・ポート情報を記憶する。
【００６９】
続いて、ＶＰＮ装置３０１は、呼制御サーバ２０２に対して、接続要求に対する接続応答を行う（ステップＳ２０４）。このとき、ＶＰＮ装置３０１は、被呼側アドレス情報として、外部アドレス・ポート取得手順（ステップＳ２０３）で取得した自装置の外部アドレス・ポート情報（グローバルＩＰアドレス及びポート番号）を含む接続応答を呼制御サーバ２０２へ送信する。また、この接続応答には、発呼側（ＶＰＮ装置１０１）の識別情報も含まれる。呼制御サーバ２０２は、この接続応答を中継してＶＰＮ接続の接続要求元となるＶＰＮ装置１０１へ送信する。この接続応答により、呼制御サーバ２０２は、接続要求に対するＶＰＮ装置３０１からＶＰＮ装置１０１への応答を接続要求元に通知する。
【００７０】
この段階で、接続元のＶＰＮ装置１０１と接続先のＶＰＮ装置３０１とは、お互いに相手の外部アドレス・ポート情報を取得している。したがって、ＶＰＮ装置１０１及びＶＰＮ装置３０１は、互いに相手の外部アドレス・ポート情報（グローバルＩＰアドレス及びポート番号）の送信先に設定してＷＡＮ２００を経由してパケットを送信し、ＶＰＮ機能部１４２により、Ｐ２Ｐ通信可能状態（Ｐ２ＰでのＶＰＮ接続が可能な状態）であるか否かを確認する（ステップＳ２０５）。例えば、ＶＰＮ装置１０１がＶＰＮ装置３０１へパケットを送信し、この送信から所定期間内にＶＰＮ装置３０１からパケットを受信したことを示す応答を受信した場合には、Ｐ２Ｐ通信可能状態であると判定する。Ｐ２Ｐ通信可能状態であれば、ＶＰＮ装置１０１及びＶＰＮ装置３０１は、Ｐ２Ｐ通信経路を介して、暗号化したデータ通信（ＶＰＮ通信）を開始する（ステップＳ２０６）。つまり、Ｐ２Ｐ通信可能状態であるか否かの判定後に、実データ（音声パケットや映像パケット等の通信データ）の送信を開始する。
【００７１】
次に、ＵＤＰ用フローについて、シーケンス図（図６、７）を参照しながら説明する。
図６は本実施形態のＶＰＮシステムにおけるＵＤＰパケットを検出した場合のＶＰＮ構築時の処理手順を示すシーケンス図である。この図６では、ＶＰＮ装置を含むネットワークにおいて、ＶＰＮ装置１０１の配下の端末１０３からＷＡＮ２００を経由して他のＶＰＮ装置３０１の配下の端末３０３に接続しようとする場合の処理を示している。
【００７２】
まず、図５の処理手順と同様に、ＶＰＮ装置１０１及び３０１は呼制御サーバ２０２にログインしてユーザ認証を受け、呼制御サーバ２０２においてＶＰＮ装置１０１及びＶＰＮ装置３０１の識別情報等の登録、設定が行われる。
【００７３】
この状態で、ＶＰＮ装置１０１は、ＶＰＮ通信を行うアプリケーションの起動に伴って外部アドレス・ポート取得部１４１の機能により、配下の端末１０３からのＶＰＮ接続の接続要求を受けると、呼制御サーバ２０２に対して、接続先の端末３０３を配下に持つＶＰＮ装置３０１への通信経路を構築するための接続要求を行う（ステップＳ３０１）。このとき、ＶＰＮ装置１０１は、発呼側及び被呼側の識別情報を含む接続要求を呼制御サーバ２０２へ送信する。呼制御サーバ２０２は、この接続要求を中継してＶＰＮ接続の接続先となるＶＰＮ装置３０１へ送信する（ステップＳ３０２）。この接続要求により、呼制御サーバ２０２は、ＶＰＮ装置１０１がＶＰＮ装置３０１へＶＰＮ接続をしたいという要求を接続先に通知する。
【００７４】
ＶＰＮ装置１０１による接続要求と同時並行で、ＶＰＮ装置１０１は、ＳＴＵＮサーバ２０１との間で外部アドレス・ポート取得手順を行う（ステップＳ３０３）。このとき、ＶＰＮ装置１０１は、自装置に割り当てられた外部アドレス・ポート情報（ＷＡＮ２００側からみたグローバルＩＰアドレス及びポート番号）を取得するため、ＳＴＵＮサーバ２０１に対して、外部アドレス・ポート取得要求としてバインディングリクエストパケットを送出する。一方、ＳＴＵＮサーバ２０１は、外部アドレス・ポート取得要求に対して応答し、ＶＰＮ装置１０１に外部アドレス・ポート情報返信として外部アドレス・ポート情報を含むバインディングレスポンスパケットを返送する。そして、ＶＰＮ装置１０１は、外部アドレス・ポート情報返信により得られた外部アドレス・ポート情報を記憶する。
【００７５】
接続先のＶＰＮ装置３０１は、呼制御サーバ２０２からの接続要求を受けると、呼制御サーバ２０２に対して、接続要求に対する接続応答を行う（ステップＳ３０４）。このとき、ＶＰＮ装置３０１は、発呼側及び被呼側の識別情報を含む接続応答を呼制御サーバ２０２へ送信する。呼制御サーバ２０２は、この接続応答を中継してＶＰＮ接続の接続要求元となるＶＰＮ装置１０１へ送信する（ステップＳ３０５）。この接続応答により、呼制御サーバ２０２は、接続要求に対するＶＰＮ装置３０１からＶＰＮ装置１０１への応答を接続要求元に通知する。
【００７６】
ＶＰＮ装置３０１による接続応答と同時並行で、ＶＰＮ装置３０１は、ＳＴＵＮサーバ２０１との間で外部アドレス・ポート取得手順を行う（ステップＳ３０６）。このとき、ＶＰＮ装置３０１は、上記ＶＰＮ装置１０１と同様、自装置に割り当てられた外部アドレス・ポート情報（ＷＡＮ２００側からみたグローバルＩＰアドレス及びポート番号）を取得するため、ＳＴＵＮサーバ２０１に対して、外部アドレス・ポート取得要求としてバインディングリクエストパケットを送出する。一方、ＳＴＵＮサーバ２０１は、外部アドレス・ポート取得要求に対して応答し、ＶＰＮ装置３０１に外部アドレス・ポート情報返信として外部アドレス・ポート情報を含むバインディングレスポンスパケットを返送する。そして、ＶＰＮ装置３０１は、外部アドレス・ポート情報返信により得られた外部アドレス・ポート情報を記憶する。
【００７７】
ＶＰＮ装置１０１がＶＰＮ装置３０１から接続許可を含む接続応答を受信すると、ＶＰＮ装置１０１及びＶＰＮ装置３０１は、呼制御サーバ２０２を介して、互いに実データ（制御データ等の通信データ）の通信を行う（ステップＳ３０７）。つまり、実際の通信経路を確立する前に、実データの通信を開始している。
【００７８】
続いて、ＶＰＮ装置１０１及びＶＰＮ装置３０１は、呼制御サーバ２０２を介して、ＳＴＵＮサーバ２０１から取得した自装置の外部アドレス・ポート情報を互いに通知する（ステップＳ３０８）。
【００７９】
以降、先に説明したステップＳ２０５、Ｓ２０６の処理を行う。つまり、ＶＰＮ装置１０１及びＶＰＮ装置３０１は、互いに受信した相手の外部アドレス・ポート情報を用いて、ＶＰＮ装置１０１及びＶＰＮ装置３０１との間でＰ２Ｐ通信可能状態であるか否かを判定する（ステップＳ２０５）。ここでは、互いに相手の外部アドレス・ポート情報（グローバルＩＰアドレス及びポート番号）を送信先に設定してＷＡＮ２００を経由してパケットを送信し、通信可能であるか否かを確認する。Ｐ２Ｐ通信可能状態である場合には、Ｐ２Ｐの通信経路が確立されているため、ＶＰＮ装置１０１及びＶＰＮ装置３０１は、Ｐ２Ｐ通信により、互いに暗号化した実データの通信を開始する（ステップＳ２０６）。
【００８０】
次に、図７は本実施形態のＶＰＮシステムにおけるＵＤＰパケットを検出した場合のＶＰＮ構築時の別の処理手順を示すシーケンス図である。この図７では、ＶＰＮ装置を含むネットワークにおいて、ＶＰＮ装置１０１の配下の端末１０３からＷＡＮ２００を経由して他のＶＰＮ装置３０１の配下の端末３０３に接続しようとする場合の処理を示している。
【００８１】
まず、図５の処理手順と同様に、ＶＰＮ装置１０１及び３０１は呼制御サーバ２０２にログインしてユーザ認証を受け、呼制御サーバ２０２においてＶＰＮ装置１０１及びＶＰＮ装置３０１の識別情報等の登録、設定が行われる。
【００８２】
この状態で、ＶＰＮ装置１０１は、ＶＰＮ通信を行うアプリケーションの起動に伴って外部アドレス・ポート取得部１４１の機能により、配下の端末１０３からのＶＰＮ接続の接続要求を受けると、ＶＰＮ装置１０１は、ＳＴＵＮサーバ２０１との間で外部アドレス・ポート取得手順を行う（ステップＳ４０１）。このとき、ＶＰＮ装置１０１は、自装置に割り当てられた外部アドレス・ポート情報を取得するため、ＳＴＵＮサーバ２０１に対して、外部アドレス・ポート取得要求としてバインディングリクエストパケットを送出する。一方、ＳＴＵＮサーバ２０１は、外部アドレス・ポート取得要求に対して応答し、ＶＰＮ装置１０１に外部アドレス・ポート情報返信として外部アドレス・ポート情報を含むバインディングレスポンスパケットを返送する。そして、ＶＰＮ装置１０１は、外部アドレス・ポート情報返信により得られた外部アドレス・ポート情報を記憶する。
【００８３】
続いて、呼制御サーバ２０２に対して、接続先の端末３０３を配下に持つＶＰＮ装置３０１へのＰ２Ｐの通信経路を構築するための接続要求を行う（ステップＳ４０２）。このとき、ＶＰＮ装置１０１は、発呼側及び被呼側の識別情報を含む接続要求を呼制御サーバ２０２へ送信する。呼制御サーバ２０２は、この接続要求を中継してＶＰＮ接続の接続先となるＶＰＮ装置３０１へ送信する（ステップＳ４０３）。この接続要求により、呼制御サーバ２０２は、ＶＰＮ装置１０１がＶＰＮ装置３０１へＰ２Ｐ経路構築のためのＶＰＮ接続をしたいという要求を接続先に通知する。
【００８４】
また、ＶＰＮ装置１０１は、ＶＰＮ装置３０１へ接続要求を送信すると、呼制御サーバ２０２を介して実データ（制御データ等の通信データ）を送信する。そして、この実データをＶＰＮ装置３０１が受信する（ステップＳ４０４及びステップＳ４０５）。
【００８５】
接続先のＶＰＮ装置３０１は、呼制御サーバ２０２からの接続要求を受けると、ＳＴＵＮサーバ２０１との間で外部アドレス・ポート取得手順を行う（ステップＳ４０６）。このとき、ＶＰＮ装置３０１は、上記ＶＰＮ装置１０１と同様、自装置に割り当てられた外部アドレス・ポート情報を取得するため、ＳＴＵＮサーバ２０１に対して、外部アドレス・ポート取得要求としてバインディングリクエストパケットを送出する。一方、ＳＴＵＮサーバ２０１は、外部アドレス・ポート取得要求に対して応答し、ＶＰＮ装置３０１に外部アドレス・ポート情報返信として外部アドレス・ポート情報を含むバインディングレスポンスパケットを返送する。そして、ＶＰＮ装置３０１は、外部アドレス・ポート情報返信により得られた外部アドレス・ポート情報を記憶する。
【００８６】
続いて、ＶＰＮ装置３０１は、呼制御サーバ２０２に対して、接続要求に対する接続応答を行う（ステップＳ４０７）。このとき、ＶＰＮ装置３０１は、発呼側及び被呼側の識別情報を含む接続応答を呼制御サーバ２０２へ送信する。呼制御サーバ２０２は、この接続応答を中継してＶＰＮ接続の接続要求元となるＶＰＮ装置１０１へ送信する（ステップＳ４０８）。この接続応答により、呼制御サーバ２０２は、接続要求に対するＶＰＮ装置３０１からＶＰＮ装置１０１への応答を接続要求元に通知する。
【００８７】
また、ＶＰＮ装置３０１は、ＶＰＮ装置１０１へ接続許可を含む接続応答を送信すると、ＶＰＮ装置１０１との間で呼制御サーバ２０２を介して実データの通信（送信、受信のいずれも可能）を行う（ステップＳ４０９及びステップＳ４１０）。ＶＰＮ装置１０１及びＶＰＮ装置３０１が互いにデータ通信を開始した後、ＶＰＮ装置１０１及びＶＰＮ装置３０１は、呼制御サーバ２０２を介して、ＳＴＵＮサーバ２０１から取得した自装置の外部アドレス・ポート情報を互いに通知する（ステップＳ３０８）。そして、図５、図６の処理と同様に、Ｐ２Ｐ接続確認処理（ステップＳ２０５）を行い、Ｐ２Ｐ通信が可能な状態であればＰ２Ｐ通信を開始する（ステップＳ２０６）。
【００８８】
次に、ＴＣＰ用フローについて、フローチャート（図８）を説明する。
図８は本実施形態のＶＰＮ装置におけるＴＣＰパケットを検出した場合のＶＰＮ構築時の処理内容の一例を示すフローチャートである。この図８は、図５のＴＣＰパケットを検出した場合のＶＰＮ構築時の処理に関する具体的な処理内容を示したものである。
【００８９】
まず、図５の処理手順と同様に、ＶＰＮ装置１０１及び３０１は呼制御サーバ２０２にログインしてユーザ認証を受け、呼制御サーバ２０２においてＶＰＮ装置１０１及びＶＰＮ装置３０１の識別情報等の登録、設定が行われる。
【００９０】
ＶＰＮの構築にあたってＶＰＮ接続するために、発呼側のＶＰＮ装置１０１は、まず、待受用の外部アドレス・ポート情報として、自装置のグローバルＩＰアドレス及びポート番号を含む外部アドレス・ポート情報を取得する処理を行う（ステップＳ５０１、ステップＳ２０１）。
【００９１】
続いて、ＶＰＮ装置１０１は、被呼側のＶＰＮ装置３０１に対する接続要求を送信する（ステップＳ５０２、ステップＳ２０２）。この接続要求は、接続先の端末３０３を特定するための識別情報などを含むものである。また、接続要求には、ステップＳ５０１で取得した自装置の外部アドレス・ポート情報を含めて送信する。この接続要求は、呼制御サーバ２０２を経由してＶＰＮ装置３０１に伝送される。
【００９２】
被呼側のＶＰＮ装置３０１は、ＶＰＮ装置１０１からの接続要求を受信する（ステップＳ５０３）。接続要求を受信すると、ＶＰＮ装置３０１は、この接続要求に含まれている接続元（ＶＰＮ装置１０１側）の外部アドレス・ポート情報を取り出し、この情報をメモリに記憶する（ステップＳ５０４）。そして、ＶＰＮ装置３０１は、待受用の外部アドレス・ポート情報として、ステップＳ５０１と同様にして、自装置（ＶＰＮ装置１０１からから見ると相手装置）のグローバルＩＰアドレス及びポート番号を含む外部アドレス・ポート情報を取得する処理を行う（ステップＳ５０５、Ｓ２０３）。
【００９３】
続いて、ＶＰＮ装置３０１は、発呼側のＶＰＮ装置１０１から受信した接続要求に対する接続応答を送信する（ステップＳ５０６）。この接続応答には、ステップＳ５０５で取得した自装置の外部アドレス・ポート情報を含めて送信する。この接続応答は、呼制御サーバ２０２を経由してＶＰＮ装置１０１に伝送される。
【００９４】
発呼側のＶＰＮ装置１０１は、接続応答を受信したかを判定して接続応答の待受けを行う（ステップＳ５０７）。接続応答を受信すると、ＶＰＮ装置１０１は、この接続応答に含まれている接続先（ＶＰＮ装置３０１側）の外部アドレス・ポート情報を取り出し、この情報をメモリに記憶する（ステップＳ５０８）。そして、ＶＰＮ装置１０１及びＶＰＮ装置３０１は、互いにＰ２Ｐ通信可能状態であるか否かを確認する（ステップＳ５０９）。
【００９５】
上記の処理により、Ｐ２Ｐ通信可能状態である場合にＰ２Ｐ通信開始処理（Ｓ２０６）を実行する時点では、発呼側のＶＰＮ装置１０１は、自装置の外部アドレス・ポート情報と、被呼側のＶＰＮ装置３０１の外部アドレス・ポート情報とを取得している。一方、被呼側のＶＰＮ装置３０１は、自装置の外部アドレス・ポート情報と、発呼側のＶＰＮ装置１０１の外部アドレス・ポート情報とを取得している。
【００９６】
Ｐ２Ｐ通信開始後、発呼側のＶＰＮ装置１０１は、被呼側のＶＰＮ装置３０１が待ち受けているグローバルＩＰアドレス及びポート番号を宛先として、ＶＰＮ装置３０１に向けてＰ２Ｐ通信により実データを送信する（ステップＳ５１０）。一方、ＶＰＮ装置３０１は、自装置の待受用のグローバルＩＰアドレス及びポート番号によってデータの待ち受けを行い、発呼側のＶＰＮ装置１０１から送信された実データを受信する（ステップＳ５１１）。また、被呼側のＶＰＮ装置３０１は、発呼側のＶＰＮ装置１０１が待ち受けているグローバルＩＰアドレス及びポート番号を宛先として、ＶＰＮ装置１０１に向けてＰ２Ｐ通信により実データを送信する（ステップＳ５１２）。一方、ＶＰＮ装置１０１は、自装置の待受用のグローバルＩＰアドレス及びポート番号によってデータの待ち受けを行い、被呼側のＶＰＮ装置３０１から送信された実データを受信する（ステップＳ５１３）。
【００９７】
次に、ＵＤＰ用フローについて、フローチャート（図９、図１０）を説明する。
図９は図６のシーケンス図に対応するＵＤＰパケットを検出した場合のＶＰＮ構築時の処理手順を示すフローチャートである。この図９では、ＶＰＮ装置を含むネットワークにおいて、ＶＰＮ装置１０１の配下の端末１０３からＷＡＮ２００を経由して他のＶＰＮ装置３０１の配下の端末３０３に接続しようとする場合の処理を示している。
【００９８】
まず、図５の処理手順と同様に、ＶＰＮ装置１０１及び３０１は呼制御サーバ２０２にログインしてユーザ認証を受け、呼制御サーバ２０２においてＶＰＮ装置１０１及びＶＰＮ装置３０１の識別情報等の登録、設定が行われる。
【００９９】
ＶＰＮ装置１０１は、呼制御サーバ２０２を介してＶＰＮ装置３０１へ接続要求を送信する（ステップＳ６０１）とともに、ＳＴＵＮサーバ２０１から自装置の外部アドレス・ポート情報を取得する（ステップＳ６０２）。ＶＰＮ装置３０１は、ＶＰＮ装置１０１からの接続要求を受信すると（ステップＳ６０３）、ＳＴＵＮサーバ２０２から自装置の外部アドレス・ポート情報を取得する（ステップＳ６０４）とともに、呼制御サーバ２０２を介してＶＰＮ装置１０１へ接続応答を送信する（ステップＳ６０５）。
【０１００】
ＶＰＮ装置１０１は、ＶＰＮ装置３０１からの接続応答を受信したか否かを判定し（ステップＳ６０６）、受信していない場合には接続応答を受信するまで待機する。ＶＰＮ装置１０１が接続許可を含む接続応答を受信すると、ＶＰＮ装置１０１及びＶＰＮ装置３０１は、呼制御サーバ２０２を介して互いに実データの通信を開始する（ステップＳ６０７及びステップＳ６０８）。
【０１０１】
上記のデータ通信を開始した後、ＶＰＮ装置１０１は、呼制御サーバ２０２を介して、ＳＴＵＮサーバ２０１から取得したＶＰＮ装置１０１の外部アドレス・ポート情報をＶＰＮ装置３０１へ送信する（ステップ６０９）。そして、ＶＰＮ装置３０１は、このＶＰＮ装置１０１の外部アドレス・ポート情報を発呼側アドレス情報として受信する（ステップＳ６１０）。同様に、ＶＰＮ装置３０１は、呼制御サーバ２０２を介して、ＳＴＵＮサーバ２０１から取得したＶＰＮ装置３０１の外部アドレス・ポート情報をＶＰＮ装置１０１へ送信する（ステップ６１１）。そして、ＶＰＮ装置１０１は、このＶＰＮ装置３０１の外部アドレス・ポート情報を被呼側アドレス情報として受信する（ステップＳ６１２）。
【０１０２】
続いて、ＶＰＮ装置１０１及びＶＰＮ装置３０１は、互いに受信した相手の外部アドレス・ポート情報を用いて、Ｐ２Ｐ接続が可能であるか否かを確認する（ステップＳ６１３）。ここでは、先に説明したように、Ｐ２Ｐ通信可能状態であるか否かを確認する。
【０１０３】
Ｐ２Ｐ通信可能状態である場合には、ＶＰＮ装置１０１及びＶＰＮ装置３０１は、Ｐ２Ｐ通信を開始する。具体的には、ＶＰＮ装置１０１は、ＶＰＮ装置３０１の外部アドレス・ポート情報に基づいてＶＰＮ装置３０１へ実データの送信をＰ２Ｐ通信で行う（ステップＳ６１４）。そして、ＶＰＮ装置３０１は、ＶＰＮ装置１０１からの実データを受信する（ステップＳ６１５）。同様に、ＶＰＮ装置３０１は、ＶＰＮ装置１０１の外部アドレス・ポート情報に基づいてＶＰＮ装置１０１へ実データの送信をＰ２Ｐ通信で行う（ステップＳ６１６）。そして、ＶＰＮ装置１０１は、ＶＰＮ装置３０１からの実データを受信する（ステップＳ６１７）。
【０１０４】
次に、図１０は図７のシーケンス図に対応するＵＤＰパケットを検出した場合のＶＰＮ構築時の別の処理手順を示すフローチャートである。この図１０では、ＶＰＮ装置を含むネットワークにおいて、ＶＰＮ装置１０１の配下の端末１０３からＷＡＮ２００を経由して他のＶＰＮ装置３０１の配下の端末３０３に接続しようとする場合の処理を示している。
【０１０５】
まず、図５の処理手順と同様に、ＶＰＮ装置１０１及び３０１は呼制御サーバ２０２にログインしてユーザ認証を受け、呼制御サーバ２０２においてＶＰＮ装置１０１及びＶＰＮ装置３０１の識別情報等の登録、設定が行われる。
【０１０６】
ＶＰＮ装置１０１は、ＳＴＵＮサーバ２０２から自装置の外部アドレス・ポート情報を取得する（ステップＳ７０１）。続いて、ＶＰＮ装置１０１は、呼制御サーバ２０２を介してＶＰＮ装置３０１へ接続要求を送信する（ステップＳ７０２）。また、ＶＰＮ装置１０１は、接続要求を送信するとともに、呼制御サーバ２０２を介してＶＰＮ装置３０１への実データの送信を開始する（ステップＳ７０３）。
【０１０７】
ＶＰＮ装置３０１は、ＶＰＮ装置１０１からの接続要求を受信すると（ステップＳ７０４）、呼制御サーバ２０２を介してＶＰＮ装置１０１からの実データの受信を開始する（ステップＳ７０５）。続いて、ＶＰＮ装置３０１は、ＳＴＵＮサーバ２０１から自装置の外部アドレス・ポート情報を取得する（ステップＳ７０６）。
【０１０８】
続いて、ＶＰＮ装置３０１は、呼制御サーバ２０２を介してＶＰＮ装置１０１へ接続応答を送信する（ステップＳ７０７）。ＶＰＮ装置３０１は、接続許可を含む接続応答を送信すると、呼制御サーバ２０２を介して、ＶＰＮ装置１０１との間で実データの通信を開始する（ステップＳ７０８）。
【０１０９】
ＶＰＮ装置１０１は、ＶＰＮ装置３０１からの接続応答を受信したか否かを判定し（ステップＳ７０９）、受信していない場合には接続応答を受信するまで待機する。ＶＰＮ装置１０１は、接続許可を含む接続応答を受信すると、呼制御サーバ２０２を介して、ＶＰＮ装置３０１との間で実データの通信を開始する（ステップＳ７１０）。
【０１１０】
ＶＰＮ装置１０１及びＶＰＮ装置３０１が互いにデータ通信を開始した後の処理は、図９のステップＳ６０９〜Ｓ６１７の処理と同じである。
【０１１１】
このようなＴＣＰ用フロー、つまり図５、図８の処理手順によれば、ＴＣＰパケットに関しては、Ｐ２Ｐ通信可能状態であるか否かの確認前、つまりＰ２Ｐの通信経路を確立する前に、呼制御サーバ２０２経由でＴＣＰパケットの送受信を行うことはなく、リアルタイム性を必要とするＵＤＰパケットの送受信を優先的に実施させることができる。Ｐ２Ｐ通信可能状態であるか否かを判定する前に送信すべきＴＣＰパケットが存在していた場合であっても、そのＴＣＰパケットはＰ２Ｐ通信可能状態の判定前においては破棄される。このようにＴＣＰパケットを破棄した場合であっても、ＴＣＰプロトコルの再送制御機能により、定期的に破棄したＴＣＰパケットの再送要求が発生する。そして、Ｐ２Ｐ通信可能状態であるか否かの判定後の再送要求により、判定前には破棄されたＴＣＰパケットと同一内容のパケットをＶＰＮ装置３０１へ自動的に送信することができる。したがって、ＴＣＰパケットが欠落することもない。このように、複数のＶＰＮ装置１０１、３０１間でのＴＣＰ通信は通信経路確立後に保障される。
【０１１２】
また、このようなＵＤＰ用フロー、つまり図６、図７、図９、図１０の処理手順によれば、Ｐ２Ｐ通信可能状態であるか否かの確認前、つまりＰ２Ｐの通信経路を確立する前に、呼制御サーバ２０２を介してＵＤＰパケットの通信を行う。そのため、通信パケットがバースト的に発生した場合であっても、リアルタイム性が要求されるＵＤＰパケットについてはＴＣＰパケットよりも優先してＰ２Ｐ通信可能状態であるか否かの判定前に送信を開始することで、呼制御サーバにかかる負荷を軽減することができ、リアルタイム性が高く要求されるデータについてデータ通信の遅延や通信障害が発生することを回避することができる。また、ＵＤＰパケットについては、Ｐ２Ｐ通信可能状態か否かを確認するために要する時間に起因するデータ通信開始の遅延を回避し、データ通信を高速化することができる。特に、図７、図１０では接続要求とともにＵＤＰパケットを送信することができるため、データ通信をより高速化することが可能である。このように、複数のＶＰＮ装置１０１、３０１間での通信経路確立時までの通信パケットを中継するサーバに発生する負荷を軽減すると共に、通信遅延、通信障害の発生を最小限に留めることが可能である。
【０１１３】
（変形例）
先の説明ではＶＰＮ機能を有するＶＰＮ装置が独立した装置として配置され、その配下に端末が配置されることを示したが、ＶＰＮ装置（ここでは、ＶＰＮ機能を有する端末）のみが配置されるようにしてもよい。ここでは、図１に示したＶＰＮシステム及び図３に示したＶＰＮ装置と異なる点についてのみ説明する。
【０１１４】
図１１は本発明の実施形態に係るＶＰＮシステムの変形構成例を示す図である。図１に示したＶＰＮシステムの構成と異なる点は、ＶＰＮ装置１０１及びその配下の端末１０３の代わりに、ＶＰＮ装置１０４を備え、同様に、ＶＰＮ装置３０１及びその配下の端末３０３の代わりに、ＶＰＮ装置３０４を備える点である。
【０１１５】
図１２は本実施形態のＶＰＮ装置１０４の機能的な構成例（変形構成例）を示すブロック図である。ここでは、図３に示したＶＰＮ装置１０１と異なる点についてのみ説明する。
【０１１６】
ＶＰＮ装置１０４は、機能構成として、配下端末と接続するネットワークインタフェース１１４、配下端末管理部１３１、データ中継部１３３を備えておらず、代わりに、ＶｏＩＰ（Voice Over Internet Protocol）アプリケーション機能部１３６、音声データ制御部１３７、データ入出力部１３８を備える。これらの各機能は、ハードウェアの動作、またはＣＰＵ１１１が所定のプログラムを実行することにより実現する。
【０１１７】
ＶｏＩＰアプリケーション機能部１３６は、ＶｏＩＰアプリケーション機能を実現させる各種プログラムの実行を行う。音声データ制御部１３７は、上記各種プログラムの実行により、他の端末との間で送受信されたりデータ入出力部１３８により入出力されたりする音声データ等の制御を行う。データ入出力部１３８は、マイク、スピーカ、操作パネル等が有する機能であり、音声データ等の各種データの入出力を行う。また、通信制御部１４０は、データ中継部１３３に代わり、通信データを送信／受信する機能を有する。
【０１１８】
なお、ここでは、ＶＰＮ装置１０４がＶｏＩＰによる音声通話機能を有する場合を想定したが、先に示した他のＶＰＮ通信の用途を想定した端末としてもよい。
【０１１９】
また、ＶＰＮ構築時の処理手順については、基本的に図４〜１０に示した処理手順と同様であるが、ＶＰＮ装置１０４は、ＶｏＩＰアプリケーション機能部１３６によるアプリケーション起動により自ら接続要求を行う。また、ＶＰＮ装置１０４は、通信制御部１４０により送信すべき実データの種別を、ＴＣＰ判定部１４４により判定する。そして、その判定結果に基づいて、処理順序決定部１４５により、所定の処理を行う優先順位、つまり、Ｐ２Ｐ通信可能状態であるか否かの判定と実データの送信開始との順序を決定する。
【０１２０】
このような本実施形態のＶＰＮ装置１０４、３０４によれば、ＶＰＮ装置を独立して設けることなく、複数のＶＰＮ装置（ここでは、ＶＰＮ機能を有する端末）間で通信を行うときの通信遅延の発生を回避することができ、データ通信を高速化することができる。特に、通信パケットがＵＤＰパケットである場合には、リアルタイム性を重視して通信経路確立確認前に呼制御サーバ２０２を経由して通信開始を行うことができる。また、通信パケットがＴＣＰパケットである場合には、リアルタイム性を重視しないパケットであることが多いため、通信経路確立確認前にはパケットの送信を待機し、通信経路確立後に通信開始を行うことができる。このように、ＶＰＮ通信開始時にバースト的に送信すべき通信パケットが発生したとしても、通信パケットの特性に応じて通信パケットの送信優先度を決定することができ、それに応じた送信処理を行うことで呼制御サーバや回線負荷を軽減することが出来る。なお、ＴＣＰパケットの送信待機中には、実際にはＴＣＰパケットは破棄されるが、ＴＣＰプロトコルの再送制御機能により、同一パケットを所定期間後に再送することができることになる。
【０１２１】
なお、本実施形態では、主に、Ｐ２Ｐ通信を行う場合について具体的に説明したが、Ｐ２Ｐ通信以外のＶＰＮ通信を想定してもよい。
【産業上の利用可能性】
【０１２２】
本発明は、複数のＶＰＮ装置間での通信開始時におけるサーバ負荷軽減、および通信遅延、通信障害の発生を最小限に留めることが可能なＶＰＮ装置、ＶＰＮネットワーキング方法、プログラム、記憶媒体等に有用である。
【符号の説明】
【０１２３】
１００、３００  ＬＡＮ
１０１、３０１  ＶＰＮ装置
１０２、３０２  ルータ
１０３、３０３  端末
１０４、３０４  ＶＰＮ装置（端末）
１１１  ＣＰＵ
１１２  不揮発性メモリ
１１３  メモリ
１１４、１１５  ネットワークインタフェース
１１６  ＬＡＮ側ネットワーク制御部
１１７  ＷＡＮ側ネットワーク制御部
１１８  通信中継部
１１９  表示制御部
１２０  表示部
１３０  システム制御部
１３１  配下端末管理部
１３２  メモリ部
１３３  データ中継部
１３４  設定用インタフェース部
１３５  外部アドレス・ポート情報記憶部
１３６  ＶｏＩＰアプリケーション機能部
１３７  音声データ制御部
１３８  データ入出力部
１４０  通信制御部
１４１  外部アドレス・ポート取得部
１４２  ＶＰＮ機能部
１４３  呼制御機能部
１４４  ＴＣＰ判定部
１４５  処理順序決定部
１４６  暗号処理部
２００  ＷＡＮ
２０１  ＳＴＵＮサーバ
２０２  呼制御サーバ
【図１】
2011124770.tif 000003
【図２】
2011124770.tif 000004
【図３】
2011124770.tif 000005
【図４】
2011124770.tif 000006
【図５】
2011124770.tif 000007
【図６】
2011124770.tif 000008
【図７】
2011124770.tif 000009
【図８】
2011124770.tif 000010
【図９】
2011124770.tif 000011
【図１０】
2011124770.tif 000012
【図１１】
2011124770.tif 000013
【図１２】
2011124770.tif 000014