(57)【要約】【課題】複数のＶＰＮ装置間でＶＰＮ通信経路を確立する際に発生するバースト的なパケットに対して、通信遅延、通信障害の発生を最小限に留めることが可能なＶＰＮ装置を提供する。【解決手段】本ＶＰＮ装置は、ネットワーク１００〜３００上で、他のＶＰＮ装置３０１との間でＶＰＮを構築してＶＰＮ通信を行うＶＰＮ装置１０１であって、ＶＰＮ構築前に呼制御サーバ２０２を経由して通信データをＶＰＮ装置３０１へ送信し、送信される通信データのプロトコル種別が、ＵＤＰプロトコル、ＴＣＰプロトコルのいずれであるかを判定し、ＴＣＰデータの送信を優先するＴＣＰ優先モード、ＵＤＰデータの送信を優先するＵＤＰ優先モード、のいずれかを優先モードとして設定し、判定された通信データのプロトコル種別及び設定された優先モードで優先されるプロトコル種別が、一致した場合には通信データを送信し、一致しない場合には通信データの送信を制限するよう制御する。【選択図】図４
2011239277.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上で、他のＶＰＮ装置との間で仮想プライベートネットワークを構築してＶＰＮ通信を行うＶＰＮ装置であって、
前記仮想プライベートネットワークが構築される前に、当該ＶＰＮ装置と前記他のＶＰＮ装置との間で呼制御処理を行う呼制御サーバを経由して、通信データを前記他のＶＰＮ装置へ送信する通信データ送信部と、
前記通信データ送信部により送信される前記通信データのプロトコル種別が、リアルタイム性を必要とする第１プロトコル、再送制御を行う第２プロトコルのいずれであるかを判定するデータ種別判定部と、
前記第１プロトコルの通信データの送信を優先する第１優先モード、前記第２プロトコルの通信データの送信を優先する第２優先モード、のいずれかを優先モードとして設定する優先モード設定部と、
前記データ種別判定部により判定された前記通信データのプロトコル種別及び前記優先モード設定部により設定された優先モードで優先されるプロトコル種別が、一致した場合には前記通信データを送信し、一致しない場合には前記通信データの送信を制限するよう、前記通信データ送信部を制御する送信制御部と、
を備えるＶＰＮ装置。
【請求項２】
請求項１に記載のＶＰＮ装置であって、更に、
前記データ種別判定部により前記通信データのプロトコルが前記第１プロトコルと判定され、前記優先モード設定部により前記第２優先モードに設定されている場合、前記通信データ送信部により送信される通信データのデータ量を制限するデータ量制限部を備えるＶＰＮ装置。
【請求項３】
請求項１に記載のＶＰＮ装置であって、更に、
前記データ種別判定部により前記通信データのプロトコルが前記第２プロトコルと判定され、前記優先モード設定部により前記第１優先モードに設定されている場合、前記通信データ送信部により通信データが送信される送信タイミングを制限する送信タイミング制限部を備えるＶＰＮ装置。
【請求項４】
請求項１または３に記載のＶＰＮ装置であって、更に、
前記通信データ送信部により送信される通信データを記憶する通信データ記憶部と、
前記通信データ記憶部の空き容量を検出する空き容量検出部と、
前記データ種別判定部により前記通信データのプロトコルが前記第２プロトコルと判定され、前記優先モード設定部により前記第１優先モードに設定されている場合、かつ、前記空き容量検出部により検出された前記通信データ記憶部の空き容量が所定容量以上である場合、前記通信データを前記通信データ記憶部へ記憶するよう制御する通信データ記憶制御部と、
を備えるＶＰＮ装置。
【請求項５】
ネットワーク上で、他のＶＰＮ装置との間で仮想プライベートネットワークを構築してＶＰＮ通信を行うＶＰＮ装置のＶＰＮネットワーキング方法であって、
前記仮想プライベートネットワークが構築される前に、当該ＶＰＮ装置と前記他のＶＰＮ装置との間で呼制御処理を行う呼制御サーバを経由して、通信データを前記他のＶＰＮ装置へ送信するステップと、
送信される前記通信データのプロトコル種別が、リアルタイム性を必要とする第１プロトコル、再送制御を行う第２プロトコルのいずれであるかを判定するステップと、
前記第１プロトコルの通信データの送信を優先する第１優先モードと、前記第２プロトコルの通信データの送信を優先する第２優先モードと、のいずれかを優先モードとして設定するステップと、
判定された前記通信データのプロトコル種別及び設定された優先モードで優先されるプロトコル種別が、一致した場合には前記通信データを送信し、一致しない場合には前記通信データの送信を制限するよう制御するステップと、
を有するＶＰＮネットワーキング方法。
【請求項６】
請求項５に記載のＶＰＮネットワーキング方法の各ステップを実行させるためのプログラム。
【請求項７】
請求項５に記載のＶＰＮネットワーキング方法の各ステップを実行させるためのプログラムを記録したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク通信において通信相手の固定された専用通信回線（専用線）の代わりに、多数の加入者で帯域を共用する通信網を利用してネットワーク間などを接続するＶＰＮ（Virtual Private Network：仮想プライベートネットワーク）技術におけるＶＰＮ装置、ＶＰＮネットワーキング方法、プログラム、及び記憶媒体に関するものである。
【背景技術】
【０００２】
仮想プライベートネットワーク（以下、ＶＰＮと記載する）は、たとえば、企業内等の２以上の拠点のローカルエリアネットワーク（ＬＡＮ）相互間などのような、一般に、異なるネットワークセグメントを、広域ネットワーク（ＷＡＮ）などを介して互いに接続する。そして、通信の秘匿性を担保することで、仮想的に全体が１つのプライベートネットワーク（専用線）であるように構成する。これにより、専用線を利用する場合と同様の通信サービスを可能にする。
【０００３】
このようなＶＰＮは、インターネット等のＷＡＮや公衆回線網を利用して構築するいわゆるインターネットＶＰＮと、通信事業者閉域網などのインターネット等とは異なる通信網を使用して構築するＩＰ−ＶＰＮと、に大別される。特に、インターネットＶＰＮは、昨今のネットワークインフラのブロードバンド化と、インターネットを利用することで安価にＶＰＮを構築可能であるために、利用者が増加している。
【０００４】
ＶＰＮを構築するにあたり、例えば異なる拠点間で通信を行う場合に、通信経路の途中にインターネット等の共用の通信網が介在するので、通信の漏洩、盗聴、改竄などの危険性がある。そこで、ＶＰＮ技術においては、通信の秘匿性を担保するために、ネットワークのいずれかの階層において、データを暗号化しカプセリングすることを基本的な技術思想としている。ここで、ある通信プロトコルを他の通信プロトコルのパケットで包んで送ることを「カプセル化（カプセリング）」という。
【０００５】
ＶＰＮ技術で用いられる暗号化プロトコルの具体例としては、ＩＰ（Internet Protocol）層で暗号化を施すＩＰｓｅｃ（Security Architecture for Internet Protocol）や、ＴＣＰ（Transmission Control Protocol）層（特にＨＴＴＰ：Hyper Text Transfer Protocolで使用）で暗号化を施すＳＳＬ（Secure Sockets Layer）などが知られている。また、他のＶＰＮ技術の例として、ＳＳＨ、ＴＬＳ、ＳｏｆｔＥｔｈｅｒ、ＰＰＴＰ、Ｌ２ＴＰ、Ｌ２Ｆ、ＭＰＬＳなどが知られている。ソフトウェアによってＶＰＮを構築するソフトウェアＶＰＮでは、上記のＩＰｓｅｃやＳＳＬを使用したトンネリング技術を使用する。ここで、ある通信プロトコルを、同じまたはより上位の階層のプロトコルのデータとして通信することを「トンネリング」という。ＶＰＮを構築する場合は、ネットワークの中継装置または通信を行う端末等（以降、これらを「ピア」とも称する）に設けたＶＰＮ装置によって、パケットを暗号化及びカプセル化して仮想トンネルを構築する。これにより、ピア間を結ぶ閉じられた通信経路を確立する。
【０００６】
例えば、ネットワーク間を相互接続する技術として、リバーストンネル技術を用いて通信路を構築し、通信路を維持するために通信路維持データを送信し、さらに、通信漏洩等を防止するために電子署名や暗号化を施すものが提案されている（例えば、特許文献１参照）。この特許文献１では、外部ネットワーク内の外部ホストがファイアウォールを越えて内部ネットワーク内の内部ホストとの間でトンネルを構築して通信を行うために、トンネルを維持するのに必要なタイミングに応じて前記トンネルを維持するための通信路維持データを送信する送信手段と、通信路維持データの中に電子署名を施す電子署名手段とを設けている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−１６０４９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、複数のＶＰＮ装置を用いてＶＰＮの通信経路を確立する際には、いずれかのＶＰＮ装置が希望する通信先のＶＰＮ装置へ接続要求を送信する。接続要求を受信したＶＰＮ装置は、この接続要求に対する接続応答を送信元のＶＰＮ装置へ送信する。そして、互いのＶＰＮ装置間でＶＰＮ通信が可能であればＶＰＮ通信経路が確立され、以降、ＶＰＮによる通信データの送受信が可能になる。
【０００９】
ここで、ＶＰＮ装置が行うＶＰＮ通信の通信形式としては、ＴＣＰ（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）の機能を有していない場合であっても、確実にグローバルＩＰアドレス及びポート番号を取得できるという効果もある。
【００３７】
呼制御サーバ２０２は、特定の相手先を呼び出して通信経路を確立するための通信装置間の呼制御に関するサービス（呼制御処理）を行う呼管理サーバである。呼制御サーバ２０２は、登録されたＶＰＮ装置または端末の識別情報を保持しており、例えばＩＰ電話の機能を有する通信システムの場合には、接続相手の電話番号に基づいて特定の相手先を呼び出すことも考えられる。また、呼制御サーバ２０２は、信号やデータを中継する機能を有しており、発信側の装置から送出されたパケットを着信側の装置に転送したり、着信側の装置から送出されたパケットを発信側の装置に転送したりすることも可能である。ただし、呼制御サーバ２０２は、主に呼制御に関するデータの送受信を行うことを想定しており、例えば動画データ等の多くの容量を必要とするデータの送受信は考慮していないことが多い。
【００３８】
なお、ＳＴＵＮサーバ２０１及び呼制御サーバ２０２は、ここでは別個のサーバによる構成例を示しているが、１つのサーバにこれらのアドレス情報サーバと中継サーバの２つのサーバの機能を搭載して構成してもよいし、ＷＡＮ上の他のいずれかのサーバに同様の機能を搭載して構成することも可能である。
【００３９】
中継サーバ２０３は、ＶＰＮ装置１０１とＶＰＮ装置３０１との通信を中継する。特に、呼制御サーバ２０２が呼制御処理を行った後に、動画データ等の多くの容量を必要とするデータの送受信を行うことに適している。また、ルータ１０２、３０２の種類によっては、Ｐ２Ｐ通信によるＶＰＮ接続を行うことができない場合もあるので、この場合に通信データの中継を行うことができる。なお、本実施形態では、中継サーバを１台のみ示したが、２台以上であってもよい。
【００４０】
次に、本実施形態のＶＰＮ装置の構成及び機能について説明する。なお、ＶＰＮ装置１０１とＶＰＮ装置３０１の構成及び機能は同様であり、ここではＶＰＮ装置１０１によって説明する。図２は本実施形態のＶＰＮ装置のハードウェア構成の構成例を示すブロック図である。
【００４１】
ＶＰＮ装置１０１は、中央演算処理装置（ＣＰＵ）１１１、フラッシュＲＡＭ等による不揮発性メモリ１１２、ＳＤ ＲＡＭ等によるメモリ１１３、ネットワークインタフェース１１４、ネットワークインタフェース１１５、ＬＡＮ側ネットワーク制御部１１６、ＷＡＮ側ネットワーク制御部１１７、通信中継部１１８、表示制御部１１９、表示部１２０を有して構成される。
【００４２】
ＣＰＵ１１１は、所定のプログラムを実行することによりＶＰＮ装置１０１全体の制御を実施する。不揮発性メモリ１１２は、ＣＰＵ１１１が実行するプログラムを保持している。このプログラムの中には、ＶＰＮ装置１０１が外部アドレス・ポート情報を取得するための外部アドレス・ポート取得プログラムも含まれている。
【００４３】
なお、ＣＰＵ１１１が実行するプログラムについては、任意の通信経路を経由してオンラインで外部のサーバから取得することもできるし、例えばメモリカードやＣＤ−ＲＯＭのような記録媒体から読み込んで取得することもできる。換言すれば、汎用のコンピュータにＶＰＮ装置の機能を実現するプログラムを記録媒体から読み込むことによってＶＰＮ装置、およびＶＰＮネットワーキング方法を実現することができる。
なお、ＣＰＵ１１１がプログラムを実行する時には、不揮発性メモリ１１２上のプログラムの一部がメモリ１１３上に展開され、メモリ１１３上のプログラムが実行される場合もある。
【００４４】
メモリ１１３は、ＶＰＮ装置１０１の運用中のデータ管理や、各種設定情報などを一時的に記憶するためのものである。設定情報としては、自端末の外部アドレス・ポート取得要求の応答に含まれる外部アドレス・ポート情報等、通信に必要なあて先アドレス情報などが含まれる。
【００４５】
ネットワークインタフェース１１４は、ＶＰＮ装置１０１と自装置が管理する配下の端末１０３とを通信可能な状態で接続するためのインタフェースである。ネットワークインタフェース１１５は、ＶＰＮ装置１０１とＬＡＮ１００とを通信可能な状態で接続するためのインタフェースである。ＬＡＮ側ネットワーク制御部１１６は、ＬＡＮ側のネットワークインタフェース１１４に関する通信制御を行うものである。ＷＡＮ側ネットワーク制御部１１７は、ＷＡＮ側のネットワークインタフェース１１５に関する通信制御を行うものである。
【００４６】
通信中継部１１８は、ＬＡＮ側に接続された配下の端末１０３から外部のＶＰＮ接続先（ＶＰＮ装置３０１配下の端末３０３）へ送出するパケットデータと、反対に、外部のＶＰＮ接続先（ＶＰＮ装置３０１配下の端末３０３）から配下の端末１０３宛に到着したパケットデータをそれぞれ中継する。
【００４７】
表示部１２０は、ＶＰＮ装置１０１としての動作状態の表示等を行う表示器により構成され、各種状態をユーザあるいは管理者に通知する。表示部１２０は、複数の発光ダイオード（ＬＥＤ）や液晶表示器（ＬＣＤ）等により構成される。表示制御部１１９は、表示部１２０の表示制御を行うもので、ＣＰＵ１１１からの表示信号に従って表示部１２０に表示する内容等を制御する。
【００４８】
図３は本実施形態のＶＰＮ装置の機能的な構成例を示すブロック図である。
【００４９】
ＶＰＮ装置１０１は、機能構成として、システム制御部１３０、配下端末管理部１３１、メモリ部１３２、データ中継部１３３、設定用インタフェース部１３４、通信制御部１４０を有して構成される。メモリ部１３２は、外部アドレス・ポート情報記憶部１３５、バッファ１３６を有する。通信制御部１４０は、外部アドレス・ポート取得部１４１、ＶＰＮ機能部１４２、呼制御機能部１４３、優先制御部１４４、ＴＣＰバッファリング制御部１４５、ＵＤＰ流量制御部１４６を有する。ＶＰＮ機能部１４２は、暗号処理部１４７を有する。これらの各機能は、図２に示した各ブロックのハードウェアの動作、またはＣＰＵ１１１が所定のプログラムを実行することにより実現する。
【００５０】
なお、ＶＰＮ装置１０１のＬＡＮ側のネットワークインタフェース１１４は、配下の端末１０３と接続され、ＷＡＮ側のネットワークインタフェース１１５は、ＬＡＮ１００及びルータ１０２を経由してＷＡＮ２００と接続される。
【００５１】
システム制御部１３０は、ＶＰＮ装置１０１の全体の制御を行う。配下端末管理部１３１は、ＶＰＮ装置１０１配下の端末１０３の管理を行う。メモリ部１３２は、外部アドレス・ポート情報記憶部１３５において、外部アドレス（ＷＡＮ２００上でのグローバルＩＰアドレス）とポート（ＩＰネットワークのポート番号）の情報を含む外部アドレス・ポート情報を記憶する。外部アドレス・ポート情報としては、接続元である配下の端末１０３に割り当てられたグローバルＩＰアドレス及びポート番号の情報や、接続先の端末３０３に割り当てられたグローバルＩＰアドレス及びポート番号の情報などを記憶する。また、メモリ部１３２は、必要に応じてＴＣＰデータを一時的に記憶するバッファ１３６を有する。
【００５２】
データ中継部１３３は、接続元の端末１０３から接続先の端末３０３に向かって転送されるパケットや、逆に接続先の端末３０３から接続元の端末１０３に向かって転送されるパケットをそれぞれ中継（受信／送信）する。すなわち、データ中継部１３３は、配下端末又はＶＰＮ装置３０１からの通信データを受信したり、配下端末又はＶＰＮ装置３０１へ通信データを送信したりする。設定用インタフェース部１３４は、ユーザあるいは管理者がＶＰＮ装置１０１に対する設定操作等の各種操作を行うためのユーザインタフェースである。このユーザインタフェースの具体例として、端末上で動作するブラウザによって表示するＷｅｂページなどが用いられる。
【００５３】
通信制御部１４０の外部アドレス・ポート取得部１４１は、ＶＰＮ装置１０１の配下の端末１０３に割り当てられた外部アドレス・ポート情報をＳＴＵＮサーバ２０１から取得する。また、接続先の端末３０３の外部アドレス・ポート情報を含むパケットを呼制御サーバ２０２を経由して受信し、接続先の端末３０３に割り当てられた外部アドレス・ポート情報を取得する。外部アドレス・ポート取得部１４１が取得した情報は、メモリ部１３２の外部アドレス・ポート情報記憶部１３５に保持される。
【００５４】
通信制御部１４０のＶＰＮ機能部１４２は、暗号処理部１４７において、ＶＰＮ通信のために必要な暗号処理を行う。すなわち、暗号処理部１４７は、送信するパケットをカプセリングして暗号化したり、受信したパケットをアンカプセリングして復号化して元のパケットを抽出したりする。なお、ＶＰＮ通信は、図１に示したようなＰ２Ｐ通信ではなく、ＷＡＮ２００上に設けられる中継サーバ２０３でパケットの中継を行い、クライアント／サーバ方式でＶＰＮ通信を行うことも可能である。この場合には、サーバ側で暗号処理を行うようにしてもよい。また、ＶＰＮ機能部１４２は、いずれかの方法でＶＰＮ通信が可能な状態であるか否かを判定する。また、カプセリングされたパケット中には、発呼側の端末１０３を特定するための情報や、被呼側の端末３０３を特定するための情報が含まれる。この特定情報に基づいて、ＶＰＮ装置及びＶＰＮ装置配下の端末間でデータ中継部１３３により通信データが中継される。
【００５５】
通信制御部１４０の呼制御機能部１４３は、目的の接続先に接続するための接続要求を呼制御サーバ２０２に送信したり、接続先からの接続応答を呼制御サーバ２０２を経由して受信するための処理を実施したりするなど、呼制御に関する処理（呼制御処理）を行う。
【００５６】
通信制御部１４０の優先制御部１４４は、データ中継部１３３によりＶＰＮ装置３０１へ送信すべき通信データの種別を判定する。具体的には、送信する通信データが、第１プロトコルとしてのＵＤＰプロトコルの通信データ（ＵＤＰデータ）であるか、第２プロトコルとしてのＴＣＰプロトコルの通信データ（ＴＣＰデータ）であるかを識別する。つまり、通信データのプロトコル種別を識別する。
【００５７】
また、優先制御部１４４は、優先モードの設定を行う。優先モードとは、データ中継部１３３により優先的に送信する特定の通信データを示すものである。優先モードとしては、ＵＤＰデータの送信を優先する第１優先モードとしてのＵＤＰ優先モード、ＴＣＰデータの送信を優先する第２優先モードとしてのＴＣＰ優先モードが含まれる。なお、優先制御部１４４により優先モードを設定する際には、ＶＰＮ装置１０１に付随するハード的なスイッチ、設定用インタフェース部１３４を介したソフトウェアの設定画面、ＶＰＮシステムにより定義される定義情報、のいずれを用いても設定してもよい。
【００５８】
また、優先制御部１４４は、送信すべき通信データのプロトコル種別と優先モードとに基づいて、通信データを送信する際の送信処理方式（後述する第１送信処理〜第４送信処理のいずれか）を決定する。具体的には、優先制御部１４４により判定された通信データのプロトコル種別と設定された優先モードとが、一致する場合には通信データの送信を許可し、不一致の場合には通信データの送信を制限するように、データ中継部１３３を制御する。通信データの送信制限としては、例えば送信データ量の制限、送信タイミングの制限などがある。これにより、なるべく早期に優先度の高い通信データの送信を開始することができ、かつ、呼制御サーバ２０２の処理負荷を軽減することができる。
【００５９】
なお、ＵＤＰプロトコルは、リアルタイム性を必要とするものであるが、信頼性が低く、再送制御を行わないプロトコルである。また、ＴＣＰプロトコルは、リアルタイム性を必要としないことが多いが、信頼性が高く、再送制御を行うプロトコルである。
【００６０】
通信制御部１４０のＴＣＰバッファリング制御部１４５は、必要に応じてＴＣＰデータをメモリ部１３２に記憶するよう制御する。特に、ＶＰＮ通信が可能か否かを判定する前、つまりＶＰＮ通信経路が確立される前に、ＵＤＰ優先モードかつ通信データがＴＣＰデータであるときに、所定容量以上の空き容量がメモリ部１３２に存在する場合に、ＴＣＰデータをメモリ部１３２のバッファ１３６に記憶するよう制御する。
【００６１】
また、ＴＣＰバッファリング制御部１４５は、必要に応じてＴＣＰデータを送信するタイミングを制御する。特に、ＶＰＮ通信経路が確立される前に、ＵＤＰ優先モードかつ通信データがＴＣＰデータであるときに、ＴＣＰデータを所定間隔空けて定期的に送信するなど、ＴＣＰデータの送信タイミングを制御する。
【００６２】
通信制御部１４０のＵＤＰ流量制御部１４６は、必要に応じてＵＤＰデータを送信するときのデータ量（流量）を制御する。特に、ＶＰＮ通信経路が確立される前に、ＴＣＰ優先モードかつ通信データがＵＤＰデータであるときに、ＵＤＰデータのデータ量を制御する。
【００６３】
次に、本実施形態のＶＰＮ装置１０１によるＶＰＮ構築時の動作について説明する。
図４は、本実施形態のＶＰＮシステムにおける通信データの種別及び優先モードの判定時の処理手順の一例を示すフローチャートである。なお、図４の処理が開始される前に、ＵＤＰ優先モードかＴＣＰ優先モードかは、優先制御部１４４によりあらかじめ設定されているものとする。
【００６４】
まず、優先制御部１４４は、ＶＰＮ装置１０１配下の端末１０３からの通信データ（通信パケット）の受信を検出すると（ステップＳ１０１）、設定されている優先モードがＴＣＰ優先モードかＵＤＰ優先モードかを判定する（ステップＳ１０２）。また、優先制御部１４４は、検出された通信データがＵＤＰデータであるかＴＣＰデータであるかを判定する（ステップＳ１０３、Ｓ１０４）。
【００６５】
ステップＳ１０２〜Ｓ１０４の判定の結果、設定された優先モードがＴＣＰ優先モード、かつ、検出された通信データがＴＣＰデータの場合には、優先制御部１４４は、ＶＰＮ装置１０１が第１送信処理を行うよう制御する（ステップＳ１０５）。また、設定された優先モードがＴＣＰ優先モード、かつ、検出された通信データがＵＤＰデータの場合には、優先制御部１４４は、ＶＰＮ装置１０１が第２送信処理を行うよう制御する（ステップＳ１０６）。また、設定された優先モードがＵＤＰ優先モード、かつ、検出された通信データがＴＣＰデータの場合には、優先制御部１４４は、ＶＰＮ装置１０１が第３送信処理を行うよう制御する（ステップＳ１０７）。また、設定された優先モードがＵＤＰ優先モード、かつ、検出された通信データがＵＤＰデータの場合には、優先制御部１４４は、ＶＰＮ装置１０１が第４送信処理を行うよう制御する（ステップＳ１０８）。なお、第１送信処理の詳細は図５に、第２送信処理の詳細は図６に、第３送信処理の詳細は図８に、第４送信処理の詳細は図１３に、示されている。
【００６６】
このような図４の処理によれば、複数のＶＰＮ装置１０１、３０１間でＶＰＮ通信経路を確立する際に発生するバースト的なパケットに対して、通信遅延、通信障害の発生を最小限に留めることが可能である。すなわち、優先モード（ＴＣＰ優先モードもしくはＵＤＰ優先モード）と送信すべき通信データの種別（ＴＣＰデータもしくはＵＤＰデータ）に応じて、複数の送信処理の中から好適な送信処理方式を決定することができる。これにより、データの通信遅延時間を最小限に抑えつつ、優先すべき通信データを早期に送信可能であり、さらに本来は呼制御処理以外のデータ通信（特にデータ量の大きなデータ通信）を行うことを想定されていない呼制御サーバ２０２の負荷を軽減することが可能である。
【００６７】
以下、第１送信処理〜第４送信処理の詳細について説明する。
【００６８】
（第１送信処理）
次に、優先モードがＴＣＰ優先モードかつ通信データがＴＣＰデータの場合の送信処理（第１送信処理）の一例について、図５を参照しながら説明する。
この図５では、図１に示したＶＰＮシステムにおいて、ＶＰＮ装置１０１の配下の端末１０３からＷＡＮ２００を経由して他のＶＰＮ装置３０１の配下の端末３０３に接続しようとする場合の処理を示している。
【００６９】
まず、図５に示す処理に先立ち、ＶＰＮ装置１０１は呼制御サーバ２０２にログインしてユーザ認証を受けるようにする。ＶＰＮ装置１０１がユーザ認証に成功した場合、呼制御サーバ２０２において、ＶＰＮ装置１０１の識別情報（ＭＡＣアドレス、ユーザＩＤ、電話番号など）やネットワーク上の位置情報（グローバルＩＰアドレス）等の登録、設定が行われる。以降、ＶＰＮ装置１０１と呼制御サーバ２０２との間で通信可能となる。なお、ＶＰＮ装置１０１は発呼側であるが、被呼側であるＶＰＮ装置３０１についても同様に、呼制御サーバ２０２にログインしてユーザ認証を受け、呼制御サーバ２０２においてＶＰＮ装置３０１の識別情報等の登録、設定が行われる。
【００７０】
配下の端末１０３からのＶＰＮ接続の接続要求を受けると、ＶＰＮ装置１０１は、呼制御サーバ２０２に対して、接続先の端末３０３を配下に持つＶＰＮ装置３０１へのＶＰＮ通信経路を構築するための接続要求を行う（ステップＳ２０１）。この接続要求には、発呼側（ＶＰＮ装置１０１）の識別情報、被呼側（ＶＰＮ装置３０１）の識別情報も含まれる。呼制御サーバ２０２は、この接続要求を中継してＶＰＮ接続の接続先となるＶＰＮ装置３０１へ送信する。この接続要求により、呼制御サーバ２０２は、ＶＰＮ装置１０１がＶＰＮ装置３０１へＶＰＮ通信経路構築のためのＶＰＮ接続をしたいという要求を接続先となる被呼側に通知する。
【００７１】
また、ＶＰＮ装置１０１は、外部アドレス・ポート取得部１４１の機能により、ＳＴＵＮサーバ２０１との間で外部アドレス・ポート取得手順を行う（ステップＳ２０２）。このとき、ＶＰＮ装置１０１は、自装置に割り当てられた外部アドレス・ポート情報（ＷＡＮ２００側からみたグローバルＩＰアドレス及びポート番号）を取得するため、ＳＴＵＮサーバ２０１に対して、外部アドレス・ポート取得要求としてバインディングリクエスト（Binding Request、RFC3489参照；以下同じ）パケットを送出する。一方、ＳＴＵＮサーバ２０１は、外部アドレス・ポート取得要求に対して応答し、ＶＰＮ装置１０１に外部アドレス・ポート情報返信として外部アドレス・ポート情報を含むバインディングレスポンス（Binding Response、RFC3489参照；以下同じ）パケットを返送する。そして、ＶＰＮ装置１０１は、外部アドレス・ポート情報返信により得られた外部アドレス・ポート情報を記憶する。
【００７２】
被呼側のＶＰＮ装置３０１は、呼制御サーバ２０２からの接続要求を受ける（ステップＳ２０３）と、呼制御サーバ２０２に対して、接続要求に対する接続応答を行う（ステップＳ２０４）。この接続応答には、発呼側（ＶＰＮ装置１０１）の識別情報、被呼側（ＶＰＮ装置３０１）の識別情報も含まれる。呼制御サーバ２０２は、この接続応答を中継してＶＰＮ接続の接続要求元となるＶＰＮ装置１０１へ送信する。この接続応答により、呼制御サーバ２０２は、接続要求に対するＶＰＮ装置３０１からＶＰＮ装置１０１への応答を接続要求元となる発呼側に通知する。そして、被呼側のＶＰＮ装置３０１は、呼制御サーバ２０２を介して、通信データの送信を開始する（ステップＳ２０５）。
【００７３】
また、ＶＰＮ装置３０１は、ＳＴＵＮサーバ２０１との間で外部アドレス・ポート取得手順を行う（ステップＳ２０６）。このとき、ＶＰＮ装置３０１は、発呼側のＶＰＮ装置１０１と同様、自装置に割り当てられた外部アドレス・ポート情報（ＷＡＮ２００側からみたグローバルＩＰアドレス及びポート番号）を取得するため、ＳＴＵＮサーバ２０１に対して、外部アドレス・ポート取得要求としてバインディングリクエストパケットを送出する。一方、ＳＴＵＮサーバ２０１は、外部アドレス・ポート取得要求に対して応答し、ＶＰＮ装置３０１に外部アドレス・ポート情報返信として外部アドレス・ポート情報を含むバインディングレスポンスパケットを返送する。そして、ＶＰＮ装置３０１は、外部アドレス・ポート情報返信により得られた外部アドレス・ポート情報を記憶する。
【００７４】
ＶＰＮ装置１０１は、外部アドレス・ポート情報を取得した後は、ＶＰＮ装置３０１からの接続要求に対する接続応答を受信するために待機しており、所定のタイミングで接続応答を受信したか否かを確認する（ステップＳ２０７）。ＶＰＮ装置１０１は、ステップＳ２０７においてＶＰＮ装置３０１からの接続応答を受信した後、ＶＰＮ装置３０１は、ステップＳ２０６において外部アドレス・ポート情報を取得した後に、呼制御サーバ２０２を介して、相互に通信データの送受信を開始する（ステップＳ２０８、Ｓ２０９）。
【００７５】
つまり、ＶＰＮ装置１０１、３０１は、ＶＰＮ通信経路を確立する前に、呼制御サーバ２０２を介して、通信データの通信を早期に開始することが可能である。
【００７６】
呼制御サーバ２０２経由でのデータ通信を開始した後、ＶＰＮ装置１０１は、呼制御サーバ２０２を介して、ＳＴＵＮサーバ２０１から取得したＶＰＮ装置１０１の外部アドレス・ポート情報をＶＰＮ装置３０１へ送信する（ステップ２１０）。そして、ＶＰＮ装置３０１は、このＶＰＮ装置１０１の外部アドレス・ポート情報を発呼側アドレス・ポート情報として受信し、記憶する（ステップＳ２１１）。同様に、ＶＰＮ装置３０１は、呼制御サーバ２０２を介して、ＳＴＵＮサーバ２０１から取得したＶＰＮ装置３０１の外部アドレス・ポート情報をＶＰＮ装置１０１へ送信する（ステップ２１２）。そして、ＶＰＮ装置１０１は、このＶＰＮ装置３０１の外部アドレス・ポート情報を被呼側アドレス・ポート情報として受信し、記憶する（ステップＳ２１３）。
【００７７】
この段階で、発呼側のＶＰＮ装置１０１と被呼側のＶＰＮ装置３０１とは、お互いに相手の外部アドレス・ポート情報を取得している。したがって、ＶＰＮ装置１０１及びＶＰＮ装置３０１は、互いに相手の外部アドレス・ポート情報（グローバルＩＰアドレス及びポート番号）を送信先に設定してＷＡＮ２００を経由してパケットを送信し、ＶＰＮ機能部１４２により、ＶＰＮ通信が可能な状態であるか否かを確認する（ステップＳ２１４）。例えば、ＶＰＮ装置１０１がＶＰＮ装置３０１へ任意のデータを送信し、この送信から所定期間内にＶＰＮ装置３０１から当該データを受信したことを示す応答を受信した場合には、ＶＰＮ通信が可能な状態であると判定する。
【００７８】
ＶＰＮ通信が可能な状態である場合には、ＶＰＮ装置１０１及びＶＰＮ装置３０１は、ＶＰＮ通信経路を介した通信データの送受信を開始する。具体的には、ＶＰＮ装置１０１は、ＶＰＮ通信経路で、ＶＰＮ装置３０１の外部アドレス・ポート情報（被呼側アドレス・ポート情報）を用いて、ＶＰＮ装置３０１へ通信データの送信を行う（ステップＳ２１５）。そして、ＶＰＮ装置３０１は、ＶＰＮ装置１０１からの通信データを受信する（ステップＳ２１６）。同様に、ＶＰＮ装置３０１は、ＶＰＮ通信経路で、ＶＰＮ装置１０１の外部アドレス・ポート情報（発呼側アドレス・ポート情報）を用いて、ＶＰＮ装置１０１へ通信データの送信を行う（ステップＳ２１７）。そして、ＶＰＮ装置１０１は、ＶＰＮ装置３０１からの通信データを受信する（ステップＳ２１８）。
【００７９】
このような第１送信処理によれば、ＶＰＮ装置１０１、３０１がＴＣＰデータを優先的に送信することができるので、ＴＣＰデータの送信要求が発生したときには、ＶＰＮ通信経路の確立前に、呼制御サーバ２０２を介してＴＣＰデータを早い段階で送信することが可能である。したがって、例えばストリーミングデータなど、ＴＣＰデータであってもリアルタイム性を要求される通信データを送信する場合に、データ遅延を最小限に抑えてデータ通信を行うことができる。同様に、ＴＶ会議などの映像通信では、データロスが大きく映像に影響が出るため、通信品質、通信速度が重視されるが、このような通信も好適に行うことができる。同様に、ＴＣＰの一種であるＲＴＳＰ（Real Time Streaming Protocol）による通信（例えばストリーミングによる映像配信）とＵＤＰ通信（例えばＩＰ電話の音声のみの通信）を併用して使用する場合には、音声通信のデータはある程度ロスしても音質にさほどの影響が出ないため、ＵＤＰ通信の通信品質は重視せず、ＲＴＳＰ通信のための通信品質、通信速度が重視されるが、このような通信も好適に行うことができる。
【００８０】
（第２送信処理）
次に、優先モードがＴＣＰ優先モードかつ通信データがＵＤＰデータの場合の送信処理（第２送信処理）の一例について、図６を参照しながら説明する。
この図６では、図１に示したＶＰＮシステムにおいて、ＶＰＮ装置１０１の配下の端末１０３からＷＡＮ２００を経由して他のＶＰＮ装置３０１の配下の端末３０３に接続しようとする場合の処理を示している。ここでは、ＶＰＮ装置１０１とＶＰＮ装置３０１の機能は同じであるので、ＶＰＮ装置１０１にて説明する。
【００８１】
第２送信処理は、先に説明した第１送信処理と比較すると、基本的には同様の処理であるが、ＶＰＮ通信経路の確立前に、呼制御サーバ２０２を介して行われるデータ通信において、通信データであるＵＤＰデータを送信することが許可されるデータ量が制限される点が異なる。つまり、ＶＰＮ装置１０１は、ＵＤＰ流量制御部１４６により、ステップＳ２０５Ｂ、２０８Ｂ、２０９Ｂにおいて、呼制御サーバ２０２経由での通信データ送信時のデータ量を制限する。また、ＶＰＮ通信経路が確立した後には、ＵＤＰ流量制御部１４６はデータ量の制限を解除する（ステップＳ２１５Ｂ、Ｓ２１７Ｂ）。したがって、ＶＰＮ通信経路が確立した後には、ＶＰＮ装置１０１は、データ量の制限なく通信データの送受信を行うことができる。
【００８２】
図７は、ＵＤＰ流量制御部１４６によるＵＤＰデータの流量制限処理の一例を示すフローチャートである。図７の処理は、ステップＳ２０５Ｂ、２０８Ｂ、２０９Ｂにおいて通信データの送信を開始した後、ステップＳ２１４においてＶＰＮ通信経路の確立が確認されるまで、定期的に行われる。
【００８３】
まず、ＵＤＰ流量制御部１４６は、ＶＰＮ装置１０１配下の端末１０３からの通信データ（通信パケット）の受信を検出すると（ステップＳ３０１）、ＵＤＰデータの送信回数が規定回数（例えば９回）よりも大きいか否かを判定する（ステップＳ３０２）。
【００８４】
ＵＤＰデータの送信回数（例えば１０回）が規定回数よりも大きい場合、ＵＤＰ流量制御部１４６は、受信した（つまり被呼側のＶＰＮ装置３０１へ送信すべき）ＵＤＰデータを破棄する（ステップＳ３０３）。そして、ＵＤＰ流量制御部１４６は、ＵＤＰデータの送信回数を初期化する（ステップＳ３０４）。
【００８５】
一方、ＵＤＰデータの送信回数（例えば８回）が規定回数よりも小さい場合、ＵＤＰ流量制御部１４６は、受信したＵＤＰデータを被呼側のＶＰＮ装置３０１へ送信する（ステップＳ３０５）。そして、ＵＤＰ流量制御部１４６は、現在のＵＤＰデータの送信回数を１カウントアップする（ステップＳ３０６）。
【００８６】
例えば、ＵＤＰデータの送信回数と比較される規定回数を「９」とした場合、ＵＤＰデータの送信連続回数１０回につき１回はＵＤＰデータが破棄されることとなる。この場合、ＵＤＰデータを１０％間引きすることができる。これにより、ＵＤＰデータを中継する呼制御サーバ２０２の負荷を軽減し、代わりにＴＣＰデータをより多く送信することが可能となる。なお、例えば使用するアプリケーションがＩＰ電話であり、ＵＤＰデータとして音声データを送信する場合には、４０％程度のＵＤＰデータを破棄しても問題は生じない。さらに、規定回数を「０」にすることで、ＶＰＮ通信経路が確定するまではＵＤＰデータの送信は中止するようにすることもできる。
【００８７】
また、上記規定回数は、先の説明のように固定値であってもよいし、ＴＣＰデータのデータ量と呼制御サーバ２０２の処理能力に基づいて、ＴＣＰ優先モードでＵＤＰデータを処理できる能力を計算し、その能力内で通信を行うように動的に規定回数を変化させ、設定するようにしてもよい。
【００８８】
このような第２送信処理によれば、優先モードにより優先されないＵＤＰデータを送信する場合であっても、ＵＤＰデータのデータ送信量を制限することで、リアルタイム性を要するＵＤＰデータを早期に送信することが可能であるとともに、ＶＰＮ通信経路の確立までの呼制御サーバ２０２にかかる負荷を軽減することができる。
【００８９】
（第３送信処理）
次に、優先モードがＵＤＰ優先モードかつ通信データがＴＣＰデータの場合の送信処理（第３送信処理）の一例について、図８を参照しながら説明する。
この図８では、図１に示したＶＰＮシステムにおいて、ＶＰＮ装置１０１の配下の端末１０３からＷＡＮ２００を経由して他のＶＰＮ装置３０１の配下の端末３０３に接続しようとする場合の処理を示している。ここでは、ＶＰＮ装置１０１とＶＰＮ装置３０１の機能は同じであるので、ＶＰＮ装置１０１にて説明する。
【００９０】
第３送信処理は、先に説明した第１送信処理と比較すると、基本的には同様の処理であるが、ＶＰＮ通信経路の確立前に、呼制御サーバ２０２を介して行われるデータ通信において、通信データであるＴＣＰデータを送信するタイミングを制限する点が異なる。つまり、ＶＰＮ装置１０１は、ＴＣＰバッファリング制御部１４５により、ステップＳ２０５Ｃ、２０８Ｃ、２０９Ｃにおいて、データ中継部１３３が呼制御サーバ２０２経由で通信データを例えば定期送信するよう制御する。また、第３送信処理では、ＵＤＰ優先モードが設定されているため、ＶＰＮ通信経路が確立されるまでは、優先モードにより優先されないＴＣＰデータは、所定の送信タイミングを除きメモリ部１３２のバッファ１３６に一時的に記憶されるか、もしくは破棄される。ＶＰＮ通信経路が確立した後には、ＴＣＰバッファリング制御部１４５は送信タイミングの制限を解除し、送信要求が発生したときに送信を行う。送信タイミングの制限が解除されると、ＶＰＮ装置１０１は、ＶＰＮ通信経路で、ＶＰＮ通信経路の確立前にバッファ１３６に蓄積された全てのＴＣＰデータを送信する（ステップＳ２１５Ｃ、Ｓ２１７Ｃ）。
【００９１】
図９は、ＴＣＰデータの定期的な送信のイメージ図である。定期的な送信とは、送信タイミングの制限の一例である。ＴＣＰバッファリング制御部１４５は、内部にタイマを有しており、このタイマは、初期時点又はリセット時点から所定時間（タイムアウト時間）までを計時する。図９に示すように、ｔ１〜ｔ４の各時点は、タイマによる計時がタイムアウトするタイミングを示している。このタイマは、初期状態又はタイムアウトした時点でリセットされ、計時を開始する。ｔ１〜ｔ４の時点のみＴＣＰデータの送信が許容され、これ以外のタイミングではＴＣＰデータの送信は制限されてＵＤＰデータの送信のみが許容される。
【００９２】
図１０は、ＶＰＮ装置１０１がＴＣＰデータを定期送信するときの動作の一例を示すフローチャートである。図１０の処理は、ステップＳ２０５Ｃ、２０８Ｃ、２０９Ｃにおいて通信データの送信を開始した後、ステップＳ２１４においてＶＰＮ通信経路の確立が確認されるまでに、定期タイマがタイムアウトしたときに行われる。
【００９３】
タイマがタイムアウトしたときは、ＴＣＰデータを送信すべきタイミングである。この場合、ＴＣＰバッファリング制御部１４５は、タイムアウトした時点でバッファ１３６に記憶されたＴＣＰデータが存在するか否かを判定する（ステップＳ４０１）。ＴＣＰデータがバッファ１３６に記憶されている場合、ＴＣＰバッファリング制御部１４５は、データ中継部１３３にＴＣＰデータの送信指令を行い、データ中継部１３３が、バッファ１３６に記憶されている所定のデータ量のＴＣＰデータを送信する（ステップＳ４０２）。
【００９４】
ここで、所定のデータ量だけ送信するのは、バッファリングされている全てのＴＣＰデータを送信した場合には、バースト的に送信が発生し、瞬間的に呼制御サーバ２０２の負荷が増大させてしまうためである。そのため、ＵＤＰ通信を優先させるために呼制御サーバ２０２へ負荷がかからない程度のＴＣＰデータを送信する。ＴＣＰバッファリング制御部１４５は、負荷が予測できる場合には、上記の負荷がかからない程度として呼制御サーバ２０２の動作に支障をきたさないデータ量を予め計算してもよい。ＴＣＰバッファリング制御部１４５は、当該データ量を、固定値として求めてもよいし、ＵＤＰデータを含むデータ量と呼制御サーバ２０２の処理能力とに基づいて動的に求めてもよい。
【００９５】
このような図１０の処理によれば、バッファ１３６に所定容量以上の空きがあれば、ＴＣＰデータを破棄するのではなく、ＶＰＮ装置１０１内で一旦バッファリングする。このように、バッファ１３６の空き容量を考慮することで、有限の容量であるバッファ１３６を効率よく使用することができる。
【００９６】
図１１は、ＶＰＮ装置１０１がＴＣＰデータをバッファリングするときの動作の一例を示すフローチャートである。図１１の処理は、ステップＳ２０５Ｃ、２０８Ｃ、２０９Ｃにおいて通信データの送信を開始した後、ステップＳ２１４においてＶＰＮ通信経路の確立が確認されるまでに、受信した通信データがＴＣＰデータの場合に行われる。
【００９７】
まず、ＴＣＰバッファリング制御部１４５は、ＴＣＰデータの受信を検出する（ステップＳ５０１）と、メモリ部１３２のバッファ１３６の空き容量が規定値以上であるか否かを判定する（ステップＳ５０２）。バッファ１３６の空き容量の規定値に関しては、受信した送信すべきＴＣＰデータをバッファリングしても問題ない程度（例えば、バッファリングするメモリ容量の２０％以上の空き容量）のサイズが規定され、あらかじめ設定される。
【００９８】
バッファ１３６の空き容量が規定値以上である場合には、ＴＣＰバッファリング制御部１４５は、受信した送信すべきＴＣＰデータをバッファ１３６に記憶させる（ステップＳ５０３）。一方、バッファ１３６の空き容量が規定値未満である場合には、ＴＣＰバッファリング制御部１４５は、受信した送信すべきＴＣＰデータを破棄する（ステップＳ５０４）。
【００９９】
このような図１１の処理によれば、定期的に送信を行うことで、ＵＤＰ優先モードでは非優先データとなるＴＣＰデータの通信開始時期も早めることができる。さらに、ＶＰＮ通信開始後のＴＣＰデータの送信データ量を減少させることができるため、ＴＣＰプロトコルによる再送制御による送信データ量を減らすことができ、ＶＰＮ装置１０１の負荷及びＶＰＮシステム内のネットワーク負荷を軽減することができる。
【０１００】
図１２は、バッファ１３６に記憶されたＴＣＰデータのバッファサイズと送受信タイミングの一例を示す図である。図１２に示すようにバッファ１３６から定期的にＴＣＰデータが送信され、このタイミングではバッファ１３６に記憶されたＴＣＰデータのデータ量（バッファサイズ）は減少する（時刻ｔ１〜ｔ４）。このとき、バッファ１３６の空き容量は増大する。また、バッファサイズが規定値（バッファサイズ規定値）未満であり、つまりバッファ１３６に他のＴＣＰデータを記憶できる余裕があるとき、受信した送信すべきＴＣＰデータはバッファ１３６に記憶される（時刻ｔ１１、ｔ２１、ｔ４１）。しかし、バッファ１３６の容量にも限りがあるため、バッファサイズが規定値を越えた場合（例えば、バッファ可能容量の８０％を越えた場合、つまりバッファ空き容量が２０％未満となった場合）には、バッファ１３６に記憶せずにＴＣＰデータを破棄する（時刻ｔ２２、ｔ２３）。また、ＶＰＮ通信経路が確立されると、バッファ１３６に記憶されているＴＣＰデータは全て送信される。
【０１０１】
このような第３送信処理によれば、ＵＤＰデータを優先的に送信するＵＤＰ優先モードであっても、ＴＣＰデータを定期的に送信することができるため、なるべく早期にＴＣＰデータを送信することができる。これは、ＴＣＰデータであってもリアルタイム性を要する通信データ（例えばストリーミングデータ）を送信する場合に好適である。
【０１０２】
また、ＶＰＮ装置１０１がＴＣＰデータのバッファリング制御及び定期送信を行うことで、ＴＣＰプロトコルによる再送処理を極力減らし、ＶＰＮ通信経路の確立までにＶＰＮシステム内の各装置（特に呼制御サーバ２０２）及びネットワークにかかる負荷が軽減することが可能である。
【０１０３】
さらに、ＴＣＰデータが破棄された場合であっても、ＴＣＰプロトコルの再送制御機能により、破棄されたＴＣＰパケットの再送要求を定期的に発生し、ＶＰＮ通信経路の確立後に、破棄されたＴＣＰデータと同一内容のデータをＶＰＮ装置３０１へ自動的に送信することができる。したがって、ＴＣＰパケットが欠落することもない。このように、ＵＤＰ優先モードであっても、複数のＶＰＮ装置１０１、３０１間でのＴＣＰ通信は保障される。
【０１０４】
（第４送信処理）
次に、優先モードがＵＤＰ優先モードかつ通信データがＵＤＰデータの場合の送信処理（第４送信処理）の一例について、図１３を参照しながら説明する。
この図１３では、図１に示したＶＰＮシステムにおいて、ＶＰＮ装置１０１の配下の端末１０３からＷＡＮ２００を経由して他のＶＰＮ装置３０１の配下の端末３０３に接続しようとする場合の処理を示している。また、各ステップ内の詳細な動作については、先に説明したものと同様であるため、説明を省略する。
【０１０５】
発呼側のＶＰＮ装置１０１は、発呼側の外部アドレス・ポート情報の取得（ステップＳ２０２）を行った後、接続要求を行い（ステップＳ２０１）、被呼側のＶＰＮ装置３０１との間で呼制御サーバ２０２経由での通信データの送信を開始する（ステップＳ６０１）。
【０１０６】
一方、被呼側のＶＰＮ装置３０１は、ＶＰＮ装置１０１からの接続要求を受信すると（ステップＳ２０３）、発呼側のＶＰＮ装置１０１との間で呼制御サーバ２０２経由での通信データの送受信を開始する（ステップＳ６０２）。
【０１０７】
ＶＰＮ装置３０１は、呼制御サーバ２０２経由での通信データの送信を開始した後に、被呼側の外部アドレス・ポート情報の取得を行い（ステップＳ２０６）、接続応答を行う（ステップＳ２０４）。また、ＶＰＮ装置１０１は、ＶＰＮ装置３０１からの接続応答を受信すると、引き続き呼制御サーバ２０２経由での通信データの送信を行う（ステップＳ６０３）。
【０１０８】
ＶＰＮ装置１０１、３０１は、ステップＳ６０３、Ｓ２０４の処理後は、第１送信処理と同様に、ステップＳ２１０〜Ｓ２１８の処理を行う。
【０１０９】
このような第４送信処理によれば、ＶＰＮ装置１０１、３０１がＵＤＰデータを優先的に送信することができるので、リアルタイム性を要するＵＤＰデータの送信要求が発生したときには、ＶＰＮ通信経路の確立前に、呼制御サーバ２０２を介してＵＤＰデータを早い段階で送信することが可能である。したがって、データ遅延を最小限に抑えてデータ通信を行うことができる。特に、図１３に示したように、ＶＰＮ装置１０１が接続要求とともにＵＤＰデータを送信することができるため、データ通信をより高速化することが可能である。
【０１１０】
（変形例）
先の説明ではＶＰＮ機能を有するＶＰＮ装置が独立した装置として配置され、その配下に端末が配置されることを示したが、図１４に示すように、ＶＰＮ装置１０４（ＶＰＮ機能を有する端末）のみが配置されるようにしてもよい。
【産業上の利用可能性】
【０１１１】
本発明は、複数のＶＰＮ装置間でＶＰＮ通信経路を確立する際に発生するバースト的なパケットに対して、通信遅延、通信障害の発生を最小限に留めることが可能なＶＰＮ装置、ＶＰＮネットワーキング方法、プログラム、及び記憶媒体に有用である。
【符号の説明】
【０１１２】
１００、３００  ＬＡＮ
１０１、３０１  ＶＰＮ装置
１０２、３０２  ルータ
１０３、３０３  端末
１０４、３０４  ＶＰＮ装置（端末）
１１１  マイクロコンピュータ（ＣＰＵ）
１１２  不揮発性メモリ
１１３  メモリ
１１４、１１５  ネットワークインタフェース
１１６  ＬＡＮ側ネットワーク制御部
１１７  ＷＡＮ側ネットワーク制御部
１１８  通信中継部
１１９  表示制御部
１２０  表示部
１３０  システム制御部
１３１  配下端末管理部
１３２  メモリ部
１３３  データ中継部
１３４  設定用インタフェース部
１３５  外部アドレス・ポート情報記憶部
１３６  バッファ
１４０  通信制御部
１４１  外部アドレス・ポート取得部
１４２  ＶＰＮ機能部
１４３  呼制御機能部
１４４  優先制御部
１４５  ＴＣＰバッファリング制御部
１４６  ＵＤＰ流量制御部
１４７  暗号処理部
２００  ＷＡＮ
２０１  ＳＴＵＮサーバ
２０２  呼制御サーバ
２０３  中継サーバ
【図１】
2011239277.tif 000003
【図２】
2011239277.tif 000004
【図３】
2011239277.tif 000005
【図４】
2011239277.tif 000006
【図５】
2011239277.tif 000007
【図６】
2011239277.tif 000008
【図７】
2011239277.tif 000009
【図８】
2011239277.tif 000010
【図９】
2011239277.tif 000011
【図１０】
2011239277.tif 000012
【図１１】
2011239277.tif 000013
【図１２】
2011239277.tif 000014
【図１３】
2011239277.tif 000015
【図１４】
2011239277.tif 000016