(57)【要約】【課題】アドレス変換が必要なネットワーク間において、速やかに通信可能性を判定し、短時間で通信可能な通信経路を構築できるようにする。【解決手段】通信装置であるＶＰＮ装置１０１は、ＷＡＮ２００を経由して通信を行う相手装置であるＶＰＮ装置３０１との通信可能性を判定する通信テスト部を有する。通信可能性判定の動作として、ＳＴＵＮサーバ２０１に対してテストパケットを送信し、アドレス変換機能を持つ中継装置であるルータ１０２のＷＡＮ２００側から自装置にアクセス可能なアドレス情報である、外部アドレス・ポート情報を含む応答パケットを受信する。テストパケットとして、少なくとも２つのテストパケットを異なるアドレスに対して送信し、異なるアドレスからの応答パケットに含まれる外部アドレス・ポート情報によって、通信可能性を判定する。【選択図】図１
2010283594.tif 000002
【特許請求の範囲】
【請求項１】
アドレス変換機能を持つ中継装置を介して相手装置との間で通信を行う通信装置であって、
前記中継装置の外部側から自装置にアクセス可能なアドレス情報である、外部アドレス・ポート情報を返信する機能を持つアドレス情報提供装置に対して、前記相手装置との通信可能性を判定するためのテストパケットを送信するテストパケット送信部と、
前記テストパケットに対する応答パケットに含まれる外部アドレス・ポート情報の内容に基づき、前記相手装置との通信可能性を判定する通信可能性判定部と、を備え、
前記テストパケット送信部は、前記テストパケットとして、少なくとも２つのテストパケットを異なるアドレス・ポートに対して送信するものであり、
前記通信可能性判定部は、前記異なるアドレス・ポートからの応答パケットに含まれる外部アドレス・ポート情報によって通信可能性を判定する通信装置。
【請求項２】
請求項１に記載の通信装置であって、
前記通信可能性判定部は、前記異なるアドレス・ポートからの応答パケットに含まれる外部アドレス・ポート情報が同一である場合に、前記相手装置との通信が可能であると判定する通信装置。
【請求項３】
請求項１に記載の通信装置であって、
前記通信可能性判定部は、前記異なるアドレス・ポートからの応答パケットに含まれる外部アドレス・ポート情報が同一でない場合、及び、前記異なるアドレス・ポートの少なくとも一方からの応答パケットが確認できない場合に、前記相手装置との通信が不可能であると判定する通信装置。
【請求項４】
請求項１に記載の通信装置であって、
前記テストパケット送信部は、第１のテストパケットと第２のテストパケットとをそれぞれ前記アドレス情報提供装置の異なるアドレス・ポートに対して一斉に送信するものであり、
前記通信可能性判定部は、前記第１のテストパケットに対する応答パケットと前記第２のテストパケットに対する応答パケットのそれぞれに含まれる外部アドレス・ポート情報が同一である場合に、前記相手装置との通信が可能であると判定する通信装置。
【請求項５】
請求項１に記載の通信装置であって、
前記テストパケット送信部は、
第１のテストパケットを、前記アドレス情報提供装置の第１のアドレス・ポートに対して送信し、
第２のテストパケットを、前記第１のテストパケットに対する応答パケットに含まれる前記アドレス情報提供装置の第２のアドレス・ポートに対して送信するものであり、
前記通信可能性判定部は、前記第１のテストパケットに対する応答パケットと前記第２のテストパケットに対する応答パケットのそれぞれに含まれる外部アドレス・ポート情報が同一である場合に、前記相手装置との通信が可能であると判定する通信装置。
【請求項６】
請求項１に記載の通信装置であって、
前記テストパケット送信部は、
第１のテストパケットを、前記アドレス情報提供装置の第１のアドレス・ポートに対して送信し、
第２のテストパケットを、前記第１のテストパケットに対する応答パケットに含まれる前記アドレス情報提供装置の第２のアドレス・ポートに対して、また、第３のテストパケットを、前記第１のテストパケットの宛先及び前記第２のテストパケットの宛先のそれぞれに対しアドレス及びポートの少なくとも一方が異なる宛先に対して、さらに、前記第３のテストパケットが前記第１のテストパケットからみて３宛先目となるように、前記第２のテストパケットと前記第３のテストパケットとを一斉に送信するものであり、
前記通信可能性判定部は、前記第２のテストパケットに対する応答パケットと前記第３のテストパケットに対する応答パケットのそれぞれに含まれる外部アドレス・ポート情報が同一である場合に、前記相手装置との通信が可能であると判定する通信装置。
【請求項７】
請求項１に記載の通信装置であって、
前記中継装置は、前記アドレス変換機能としてＮＡＴ機能を有するものであり、
前記通信可能性判定部は、前記中継装置のＮＡＴを透過する通信の可能性を判定する通信装置。
【請求項８】
請求項１に記載の通信装置であって、
前記アドレス情報提供装置は、ＳＴＵＮ（Simple Traversal of User Datagram Protocol (UDP) through Network Address Translators (NATs)）プロトコルを実行するＳＴＵＮサーバであり、
前記テストパケット送信部は、前記ＳＴＵＮサーバに対して前記テストパケットを送信する通信装置。
【請求項９】
請求項１に記載の通信装置であって、
前記相手装置と自装置との間で仮想プライベートネットワークを構築して通信を行うＶＰＮ装置の機能を持つ通信装置。
【請求項１０】
アドレス変換機能を持つ中継装置を介して相手装置との間で通信を行う通信装置における通信可能性判定方法であって、
前記中継装置の外部側から自装置にアクセス可能なアドレス情報である、外部アドレス・ポート情報を返信する機能を持つアドレス情報提供装置に対して、前記相手装置との通信可能性を判定するためのテストパケットを送信するステップと、
前記テストパケットに対する応答パケットに含まれる外部アドレス・ポート情報の内容に基づき、前記相手装置との通信可能性を判定するステップと、を有し、
前記テストパケットとして、少なくとも２つのテストパケットを異なるアドレス・ポートに対して送信し、
前記判定において、前記異なるアドレス・ポートからの応答パケットに含まれる外部アドレス・ポート情報によって通信可能性を判定する通信可能性判定方法。
【請求項１１】
コンピュータに、アドレス変換機能を持つ中継装置を介して相手装置との間で通信する際の通信テストを行う機能を実現させるプログラムであって、
前記中継装置の外部側から自装置にアクセス可能なアドレス情報である、外部アドレス・ポート情報を返信する機能を持つアドレス情報提供装置に対して、前記相手装置との通信可能性を判定するためのテストパケットを送信するテストパケット送信部と、
前記テストパケットに対する応答パケットに含まれる外部アドレス・ポート情報の内容に基づき、前記相手装置との通信可能性を判定する通信可能性判定部と、を含み、
前記テストパケット送信部は、前記テストパケットとして、少なくとも２つのテストパケットを異なるアドレス・ポートに対して送信するものであり、
前記通信可能性判定部は、前記異なるアドレス・ポートからの応答パケットに含まれる外部アドレス・ポート情報によって通信可能性を判定する、
各部の機能をコンピュータに実現させるプログラム。
【請求項１２】
コンピュータに、アドレス変換機能を持つ中継装置を介して相手装置との間で通信する際の通信テストを行う機能を実現させるプログラムを格納した記憶媒体であって、
前記中継装置の外部側から自装置にアクセス可能なアドレス情報である、外部アドレス・ポート情報を返信する機能を持つアドレス情報提供装置に対して、前記相手装置との通信可能性を判定するためのテストパケットを送信するテストパケット送信部と、
前記テストパケットに対する応答パケットに含まれる外部アドレス・ポート情報の内容に基づき、前記相手装置との通信可能性を判定する通信可能性判定部と、を含み、
前記テストパケット送信部は、前記テストパケットとして、少なくとも２つのテストパケットを異なるアドレス・ポートに対して送信するものであり、
前記通信可能性判定部は、前記異なるアドレス・ポートからの応答パケットに含まれる外部アドレス・ポート情報によって通信可能性を判定する、
各部の機能をコンピュータに実現させるプログラムを格納した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して通信装置が互いに通信をするために必要な情報を取得して通信経路を構築する際の通信テスト機能を持つ通信装置に関する。
【背景技術】
【０００２】
通信装置が複数のネットワーク間で経路を構築して互いに通信するには、ネットワーク相互間において透過的にアドレスを割り当てることができ、通信パケット中のアドレスを書き換える処理が必要となる。そこで、ネットワークアドレス変換（ＮＡＴ：Network Address Translation [RFC2663]）機能が提案された。そして、一般に、ＬＡＮ（Local Area Network）に接続された通信装置は、ＩＰ（Internet Protocol）ネットワークではプライベートＩＰアドレス（またはローカルアドレス）が割り当てられ、ＬＡＮ外部のネットワークとの間はルータ（あるいはサーバ）のＮＡＴ機能を用いてアドレス変換を行う構成が普及している。
【０００３】
ＮＡＴ機能が普及するにつれて、ＮＡＴを越えた先に存在するであろう相手との間で通信を行うために、ＳＴＵＮ（Simple Traversal of User Datagram Protocol (UDP) through Network Address Translators (NATs) [RFC3489]）技術が提案された（例えば、特許文献１参照）。ＳＴＵＮ技術は、グローバルなネットワーク上にＳＴＵＮサーバを設けて、通信装置側からＮＡＴ機能を有するルータを介してサーバにテストメッセージを送信し、応答が得られたかどうか、及び得られた応答の内容から、ＮＡＴを越えて通信するために必要な情報（例えば、グローバルＩＰアドレス、ポート番号、及びＮＡＴの種別）を取得しようとするものである（例えば、特許文献１、図９参照）。ところが、ＳＴＵＮ技術によっても誤判定を生じる場合があることが知られるに至った。
【０００４】
そこでさらに、ＮＡＴの種別判定を正確に行うための提案がなされた。例えば、ＮＡＴ設定規則等を予め登録するデータベースと、データベースの蓄積情報に基づいてＬＡＮのファイアウォールのＮＡＴアドレス変換情報等を作成するアドレス変換情報作成手段とを備えた技術が提案された（例えば、特許文献２、図７から１２参照）。あるいはまた、ＳＴＵＮ技術に加えて、ＮＡＴ検査要求メッセージの送信を繰り返し行うことによって、ＮＡＴの種別判定を正確に行う技術も提案された（例えば、特許文献１、図１７、１８参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−２５３８２４号（特許第４０８４３６５号）公報
【特許文献２】特開２００２−２６１７８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、ＳＴＵＮ技術によって網羅されないＮＡＴの種類が存在することを踏まえて、上記のようにＮＡＴの種別を正確に判定するためにテストメッセージの送信を繰り返せば、判定結果を得るまでに時間が浪費されるという課題がある。さらに、時間をかけて得られた判定結果はあくまでＮＡＴの種別判定であって、実際にＮＡＴを越えて通信するための通信経路を接続するまでは、通信可能性の判定が確定しないという課題がある。
【０００７】
本発明は、上記事情に鑑みてなされたもので、その目的は、アドレス変換が行われるネットワーク間において、速やかに通信可能性を判定し、短時間で通信可能な通信経路を構築することのできる通信装置及び通信可能性判定方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明は、第１の態様として、アドレス変換機能を持つ中継装置を介して相手装置との間で通信を行う通信装置であって、前記中継装置の外部側から自装置にアクセス可能なアドレス情報である、外部アドレス・ポート情報を返信する機能を持つアドレス情報提供装置に対して、前記相手装置との通信可能性を判定するためのテストパケットを送信するテストパケット送信部と、前記テストパケットに対する応答パケットに含まれる外部アドレス・ポート情報の内容に基づき、前記相手装置との通信可能性を判定する通信可能性判定部と、を備え、前記テストパケット送信部は、前記テストパケットとして、少なくとも２つのテストパケットを異なるアドレス・ポートに対して送信するものであり、前記通信可能性判定部は、前記異なるアドレス・ポートからの応答パケットに含まれる外部アドレス・ポート情報によって通信可能性を判定する通信装置を提供する。
【０００９】
また、本発明は、第２の態様として、上記の通信装置であって、前記通信可能性判定部は、前記異なるアドレス・ポートからの応答パケットに含まれる外部アドレス・ポート情報が同一である場合に、前記相手装置との通信が可能であると判定するものを含む。
【００１０】
また、本発明は、第３の態様として、上記の通信装置であって、前記通信可能性判定部は、前記異なるアドレス・ポートからの応答パケットに含まれる外部アドレス・ポート情報が同一でない場合、及び、前記異なるアドレス・ポートの少なくとも一方からの応答パケットが確認できない場合に、前記相手装置との通信が不可能であると判定するものを含む。
【００１１】
また、本発明は、第４の態様として、上記の通信装置であって、前記テストパケット送信部は、第１のテストパケットと第２のテストパケットとをそれぞれ前記アドレス情報提供装置の異なるアドレス・ポートに対して一斉に送信するものであり、前記通信可能性判定部は、前記第１のテストパケットに対する応答パケットと前記第２のテストパケットに対する応答パケットのそれぞれに含まれる外部アドレス・ポート情報が同一である場合に、前記相手装置との通信が可能であると判定するものを含む。
【００１２】
また、本発明は、第５の態様として、上記の通信装置であって、前記テストパケット送信部は、第１のテストパケットを、前記アドレス情報提供装置の第１のアドレス・ポートに対して送信し、第２のテストパケットを、前記第１のテストパケットに対する応答パケットに含まれる前記アドレス情報提供装置の第２のアドレス・ポートに対して送信するものであり、前記通信可能性判定部は、前記第１のテストパケットに対する応答パケットと前記第２のテストパケットに対する応答パケットのそれぞれに含まれる外部アドレス・ポート情報が同一である場合に、前記相手装置との通信が可能であると判定するものを含む。
【００１３】
また、本発明は、第６の態様として、上記の通信装置であって、前記テストパケット送信部は、第１のテストパケットを、前記アドレス情報提供装置の第１のアドレス・ポートに対して送信し、第２のテストパケットを、前記第１のテストパケットに対する応答パケットに含まれる前記アドレス情報提供装置の第２のアドレス・ポートに対して、また、第３のテストパケットを、前記第１のテストパケットの宛先及び前記第２のテストパケットの宛先のそれぞれに対しアドレス及びポートの少なくとも一方が異なる宛先に対して、さらに、前記第３のテストパケットが前記第１のテストパケットからみて３宛先目となるように、前記第２のテストパケットと前記第３のテストパケットとを一斉に送信するものであり、前記通信可能性判定部は、前記第２のテストパケットに対する応答パケットと前記第３のテストパケットに対する応答パケットのそれぞれに含まれる外部アドレス・ポート情報が同一である場合に、前記相手装置との通信が可能であると判定するものを含む。
【００１４】
また、本発明は、第７の態様として、上記の通信装置であって、前記中継装置は、前記アドレス変換機能としてＮＡＴ機能を有するものであり、前記通信可能性判定部は、前記中継装置のＮＡＴを透過する通信の可能性を判定するものを含む。
【００１５】
また、本発明は、第８の態様として、上記の通信装置であって、前記アドレス情報提供装置は、ＳＴＵＮ（Simple Traversal of User Datagram Protocol (UDP) through Network Address Translators (NATs)）プロトコルを実行するＳＴＵＮサーバであり、前記テストパケット送信部は、前記ＳＴＵＮサーバに対して前記テストパケットを送信するものを含む。
【００１６】
また、本発明は、第９の態様として、上記の通信装置であって、前記相手装置と自装置との間で仮想プライベートネットワークを構築して通信を行うＶＰＮ装置の機能を持つものを含む。
【００１７】
本発明は、第１０の態様として、アドレス変換機能を持つ中継装置を介して相手装置との間で通信を行う通信装置における通信可能性判定方法であって、前記中継装置の外部側から自装置にアクセス可能なアドレス情報である、外部アドレス・ポート情報を返信する機能を持つアドレス情報提供装置に対して、前記相手装置との通信可能性を判定するためのテストパケットを送信するステップと、前記テストパケットに対する応答パケットに含まれる外部アドレス・ポート情報の内容に基づき、前記相手装置との通信可能性を判定するステップと、を有し、前記テストパケットとして、少なくとも２つのテストパケットを異なるアドレス・ポートに対して送信し、前記判定において、前記異なるアドレス・ポートからの応答パケットに含まれる外部アドレス・ポート情報によって通信可能性を判定する通信可能性判定方法を含む。
【００１８】
本発明は、第１１の態様として、コンピュータに、アドレス変換機能を持つ中継装置を介して相手装置との間で通信する際の通信テストを行う機能を実現させるプログラムであって、前記中継装置の外部側から自装置にアクセス可能なアドレス情報である、外部アドレス・ポート情報を返信する機能を持つアドレス情報提供装置に対して、前記相手装置との通信可能性を判定するためのテストパケットを送信するテストパケット送信部と、前記テストパケットに対する応答パケットに含まれる外部アドレス・ポート情報の内容に基づき、前記相手装置との通信可能性を判定する通信可能性判定部と、を含み、前記テストパケット送信部は、前記テストパケットとして、少なくとも２つのテストパケットを異なるアドレス・ポートに対して送信するものであり、前記通信可能性判定部は、前記異なるアドレス・ポートからの応答パケットに含まれる外部アドレス・ポート情報によって通信可能性を判定する、各部の機能をコンピュータに実現させるプログラムを提供する。
【００１９】
本発明は、第１２の態様として、コンピュータに、アドレス変換機能を持つ中継装置を介して相手装置との間で通信する際の通信テストを行う機能を実現させるプログラムを格納した記憶媒体であって、前記中継装置の外部側から自装置にアクセス可能なアドレス情報である、外部アドレス・ポート情報を返信する機能を持つアドレス情報提供装置に対して、前記相手装置との通信可能性を判定するためのテストパケットを送信するテストパケット送信部と、前記テストパケットに対する応答パケットに含まれる外部アドレス・ポート情報の内容に基づき、前記相手装置との通信可能性を判定する通信可能性判定部と、を含み、前記テストパケット送信部は、前記テストパケットとして、少なくとも２つのテストパケットを異なるアドレス・ポートに対して送信するものであり、前記通信可能性判定部は、前記異なるアドレス・ポートからの応答パケットに含まれる外部アドレス・ポート情報によって通信可能性を判定する、各部の機能をコンピュータに実現させるプログラムを格納した記憶媒体を提供する。
【００２０】
上記構成により、例えばＳＴＵＮサーバ等のアドレス情報提供装置に対して、少なくとも２つのテストパケットを異なるアドレス・ポートに対して送信し、これらのテストパケットに対する異なるアドレス・ポートからの応答パケットに含まれる外部アドレス・ポート情報に基づき通信可能性を判定することによって、少ないテスト回数によって速やかに通信可能性を判定可能となる。例えば、２つのテストパケットを一斉に送信して応答パケットを得る１回のテストによって、応答パケットに含まれる外部アドレス・ポート情報が同じかどうかによって短時間に通信可能性を判定できる。これにより、アドレス変換が必要なネットワーク間において、速やかに通信可能性を判定し、短時間で通信可能な通信経路を構築することが可能となる。
【発明の効果】
【００２１】
本発明によれば、アドレス変換が行われるネットワーク間において、速やかに通信可能性を判定し、短時間で通信可能な通信経路を構築することが可能な通信装置及び通信可能性判定方法を提供できる。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施形態に係る通信装置を用いてＶＰＮシステムを構築した場合のネットワークの構成例を示す図
【図２】本実施形態に係る通信装置のハードウェア構成の構成例を示すブロック図
【図３】本実施形態に係る通信装置の機能的な構成例を示すブロック図
【図４】本実施形態に係る通信装置を用いたＶＰＮシステムにおける通信可能性判定の処理手順を示すシーケンス図
【図５】通信可能性判定処理における各パケットの一例を示す図
【図６】通信可能性判定処理における判定結果の一例を示す図
【図７】本実施形態の通信装置における通信可能性判定の処理内容を示すフローチャート
【図８】本実施形態に係る通信可能性判定の第１変形例の処理手順を示すシーケンス図
【図９】本実施形態に係る通信可能性判定の第２変形例の処理手順を示すシーケンス図
【発明を実施するための形態】
【００２３】
以下に、本発明に係る通信装置、通信可能性判定方法、及び記憶媒体の一例としての実施形態を説明する。ここでは、広域ネットワーク（ＷＡＮ、グローバルネットワーク）を介して２つのローカルエリアネットワークの経路を（ＬＡＮ、ローカルネットワーク）経路接続して仮想プライベートネットワーク（ＶＰＮ）システムを構築する場合に適用した構成例を示す。ＬＡＮとしては、有線ＬＡＮまたは無線ＬＡＮなどが用いられる。ＷＡＮとしては、インターネット等が用いられる。
【００２４】
図１は本発明の実施形態に係る通信装置を用いてＶＰＮシステムを構築した場合のネットワークの構成例を示す図である。本実施形態に係るＶＰＮシステムは、一つの拠点に設けられたＬＡＮ１００と、他の拠点に設けられたＬＡＮ３００とを、インターネット等のＷＡＮ２００を介して通信経路を接続する。そして、ＬＡＮ１００の配下に接続された端末１０３とＬＡＮ３００の配下に接続された端末３０３との間で、ＶＰＮによる秘匿性を担保した通信（以下、「ＶＰＮ通信」と称する）を可能にしている。具体的なＶＰＮ通信の用途（アプリケーションプログラム等）としては、ＩＰ電話（音声通話）、ネットミーティング（動画＆音声通信）、ネットワークカメラ（ビデオ伝送）などが想定される。
【００２５】
ＬＡＮ１００とＷＡＮ２００との境界には中継装置の一例としてのルータ１０２が配設され、ＷＡＮ２００とＬＡＮ３００との境界には中継装置の一例としてのルータ３０２が配設されている。また、本実施形態では、ＶＰＮの構築を可能にするために、ＬＡＮ１００にはＶＰＮ装置１０１が接続され、ＬＡＮ３００にはＶＰＮ装置３０１が接続されている。そして、ＶＰＮ装置１０１には配下の端末１０３が接続され、ＶＰＮ装置３０１には配下の端末３０３が接続されている。なお、ルータ１０２、３０２はそれぞれ本発明の「アドレス変換機能を持つ中継装置」に相当する。さらに、ＶＰＮ装置１０１、３０１はそれぞれ本発明の「通信装置」に相当する。なお、本実施形態に係る通信装置の一例としてのＶＰＮ装置１０１、３０１は、ここでは中継装置等において構成される独立した装置の構成例を示しているが、ＬＡＮ内の他の通信機器または端末等においてＶＰＮ機能を有する装置として構成することも可能である。
【００２６】
また、ＷＡＮ２００上には、ＶＰＮ装置１０１とＶＰＮ装置３０１との間のＶＰＮによる接続（以下、「ＶＰＮ接続」と称する）を可能にするために、ＳＴＵＮサーバ２０１と呼制御サーバ２０２とが接続されている。ＳＴＵＮサーバ２０１は、ＳＴＵＮ（Simple Traversal of User Datagram Protocol (UDP) through Network Address Translators (NATs)）プロトコルを実行するために用いられるサーバである。すなわち、ＳＴＵＮサーバ２０１は本発明の「外部アドレス・ポート情報を返信する機能を持つアドレス情報提供装置」に相当する。呼制御サーバ２０２は、ＶＰＮ装置または端末等のピア間の発呼、着呼のために用いられるサーバである。
【００２７】
図１において、破線は外部アドレスとポートの情報を含む外部アドレス・ポート情報の流れを示している。また、一点鎖線は発呼及び着呼の制御に関する呼制御信号の流れを示している。また、実線はピア間で伝送される通信データに関するピア間通信の流れを示している。さらに、ピア間通信のためにＶＰＮ接続された通信経路を仮想トンネルとして、図中に表す。
【００２８】
各機器がＷＡＮ２００を介して通信する場合、ＷＡＮ２００上では、伝送するパケットの送信元または送信先を特定するためのアドレス情報として、ＷＡＮにおいて特定可能なグローバルなアドレス情報が用いられる。一般にはＩＰネットワークが用いられるため、グローバルＩＰアドレス及びポート番号が用いられる。しかし、各ＬＡＮ１００、３００内の通信においては、送信元または送信先を特定するためのアドレス情報として、ＬＡＮ内のみで特定可能なローカルなアドレス情報が用いられる。一般にはＩＰネットワークが用いられるため、ローカルＩＰアドレス及びポート番号が用いられる。したがって、各ＬＡＮ１００、３００とＷＡＮ２００との間の通信を可能にするために、アドレス変換機能の例として、ローカルなアドレス情報とグローバルなアドレス情報との相互変換を行うＮＡＴ（Network Address Translation）機能が各ルータ１０２、３０２に搭載されている。すなわち、アドレス変換機能とは、ＩＰネットワーク層のＩＰアドレスと、トランスポート層のポートとを含めた、いわゆるＮＡＰＴ（Network Address Port Translation）に相当する相互変換を行う。以下本発明の説明において、ＮＡＴ機能とは狭義のＮＡＰＴ機能を含めた広義のＮＡＴ機能を指すものとする。
【００２９】
ただし、ＬＡＮ１００、３００の配下の各端末１０３、３０３においては、外部からアクセス可能なグローバルなアドレス情報を自身で持っていない。また、特別な設定を行わない限り、ＬＡＮ１００配下の端末１０３が他のＬＡＮ３００配下の端末３０３と直接通信することはできない。また、各ルータ１０２、３０２のＮＡＴ機能のため、普通の状態ではＷＡＮ２００側から各ＬＡＮ１００、３００内の各端末にアクセスすることもできない。すなわち「外部アドレス・ポート情報」とは、ＷＡＮ２００へ接続するために必要なアドレス・ポート情報であって、ＬＡＮ１００、３００内で特定されるローカルなアドレス・ポート情報で機能しているＶＰＮ装置１０１、３０１からみて、グローバルネットワークＷＡＮ２００は外部にあたることから「外部アドレス・ポート情報」と略称する。なお、「アドレス・ポート」は、アドレスのみ、アドレス及びポート、のいずれかを意味するものとする。
【００３０】
このような状況であっても、本実施形態では、各拠点のＬＡＮに設けたＶＰＮ装置１０１、３０１において通信の可能性を判定する通信可能性判定部を備えるようにし、速やかに通信可能性の判定を可能にする。これにより、図１において実線で示すピア間通信の経路のように、ＬＡＮ間をＶＰＮ接続して通信経路を構築し、端末１０３と端末３０３との間で仮想的な閉じられた通信経路を通じて直接通信することが可能になる。本実施形態に係る通信装置としてのＶＰＮ装置の構成、機能、及び動作については、以下に順を追って説明する。
【００３１】
ＳＴＵＮサーバ２０１は、ＳＴＵＮプロトコルの実行に関するサービスを行うもので、ＮＡＴを透過する通信（いわゆるＮＡＴ越えの通信）を行うために必要な情報を提供するアドレス情報サーバである。ＳＴＵＮは、音声、映像、文章などの双方向リアルタイムＩＰ通信を行うアプリケーションにおいて、ＮＡＴ透過の方法の１つとして使われる標準化されたクライアントサーバ型のインターネットプロトコルである。ＳＴＵＮサーバ２０１は、アクセス元からの要求に応じて、外部からアクセス可能な当該アクセス元のグローバルなアドレス情報として、外部ネットワークから見える外部アドレスとポートの情報を含む外部アドレス・ポート情報を返信する。外部アドレス・ポート情報としては、ＩＰネットワークにおいてはグローバルＩＰアドレス及びポート番号が用いられる。このＳＴＵＮサーバ２０１は、ＶＰＮ装置１０１、３０１、端末１０３、３０３等に対するアドレス情報提供装置の機能を有している。
【００３２】
各ＶＰＮ装置１０１、３０１は、ＳＴＵＮサーバ２０１との間で所定のテスト手順の通信を実行し、ＳＴＵＮサーバ２０１から自装置のグローバルＩＰアドレス及びポート番号が含まれる応答パケットを受信する。これにより、各ＶＰＮ装置１０１、３０１は自装置のグローバルＩＰアドレス及びポート番号を取得することができる。また、自装置の位置するＬＡＮとＷＡＮとの間にルータが複数存在する場合等であっても、これらのルータ等がＵＰｎＰ（Universal Plug and Play）の機能を有していない場合であっても、確実にグローバルＩＰアドレス及びポート番号を取得できるという効果もある。
【００３３】
呼制御サーバ２０２は、特定の相手先を呼び出して通信経路を確立するための通信装置間の呼制御に関するサービスを行う中継サーバである。呼制御サーバ２０２は、登録された各ユーザまたは端末の識別情報を保持しており、例えばＩＰ電話の機能を有する通信システムの場合には、接続相手の電話番号に基づいて特定の相手先を呼び出すことができる。また、呼制御サーバ２０２は、信号またはデータを中継する機能を有しており、発信側の装置から送出されたパケットを着信側の装置に転送したり、着信側の装置から送出されたパケットを発信側の装置に転送することも可能である。
【００３４】
呼制御サーバ２０２は、特定の相手先を呼び出して通信経路を確立するための通信装置間の呼制御に関するサービスを行う中継サーバである。呼制御サーバ２０２は、登録された各ユーザまたは端末の識別情報を保持しており、例えばＩＰ電話の機能を有する通信システムの場合には、接続相手の電話番号に基づいて特定の相手先を呼び出すことができる。また、呼制御サーバ２０２は、信号またはデータを中継する機能を有しており、発信側の装置から送出されたパケットを着信側の装置に転送したり、着信側の装置から送出されたパケットを発信側の装置に転送することも可能である。
【００３５】
なお、ＳＴＵＮサーバ２０１及び呼制御サーバ２０２は、ここでは別個のサーバによる構成例を示しているが、１つのサーバにこれらのアドレス情報サーバと中継サーバの２つのサーバの機能を搭載して構成してもよいし、ＷＡＮ上の他のいずれかのサーバに同様の機能を搭載して構成することも可能である。
【００３６】
次に、本実施形態に係る通信装置としてのＶＰＮ装置の構成及び機能について説明する。なお、ＶＰＮ装置１０１とＶＰＮ装置３０１の構成及び機能は同様であり、ここではＶＰＮ装置１０１によって説明する。図２は本実施形態に係る通信装置のハードウェア構成の構成例を示すブロック図である。
【００３７】
ＶＰＮ装置１０１は、マイクロコンピュータ（ＣＰＵ）１１１、フラッシュＲＡＭ等による不揮発性メモリ１１２、ＳＤ ＲＡＭ等によるメモリ１１３、ネットワークインタフェース１１４、ネットワークインタフェース１１５、ＬＡＮ側ネットワーク制御部１１６、ＷＡＮ側ネットワーク制御部１１７、通信中継部１１８、表示制御部１１９、表示部１２０を有して構成される。
【００３８】
マイクロコンピュータ１１１は、所定のプログラムを実行することによりＶＰＮ装置１０１全体の制御を実施する。不揮発性メモリ１１２は、マイクロコンピュータ１１１が実行するプログラムを保持している。このプログラムの中には、ＶＰＮ装置１０１が他の通信装置との通信可能性を判定するための通信テストプログラムも含まれている。
【００３９】
なお、マイクロコンピュータ１１１が実行するプログラムについては、任意の通信経路を経由してオンラインで外部のサーバから取得することもできるし、例えばメモリカード、ＣＤ−ＲＯＭのような記録媒体から読み込んで取得することもできる。換言すれば、汎用のコンピュータ（マイクロコンピュータ１１１）にＶＰＮ装置の機能を実現するプログラムを記録媒体から読み込むことによってＶＰＮ装置、およびＶＰＮネットワーキング方法を実現することができる。
【００４０】
なお、マイクロコンピュータ１１１がプログラムを実行する時には、不揮発性メモリ１１２上のプログラムの一部がメモリ１１３上に展開され、メモリ１１３上のプログラムが実行される場合もある。
【００４１】
メモリ１１３は、ＶＰＮ装置１０１の運用中のデータ管理、各種設定情報などを一時的に記憶するためのものである。設定情報としては、自装置の外部アドレス・ポート取得要求に対する応答に含まれる外部アドレス・ポート情報等、通信に必要な宛先アドレス情報などが含まれる。
【００４２】
ネットワークインタフェース１１４は、ＶＰＮ装置１０１と自装置が管理する配下の端末１０３とを通信可能な状態で接続するためのインタフェースである。ネットワークインタフェース１１５は、ＶＰＮ装置１０１とＬＡＮ１００とを通信可能な状態で接続するためのインタフェースである。ＬＡＮ側ネットワーク制御部１１６は、ＬＡＮ側のネットワークインタフェース１１４に関する通信制御を行うものである。ＷＡＮ側ネットワーク制御部１１７は、ＷＡＮ側のネットワークインタフェース１１５に関する通信制御を行うものである。
【００４３】
通信中継部１１８は、ＬＡＮ側に接続された配下の端末１０３から外部のＶＰＮ接続先（ＶＰＮ装置３０１配下の端末３０３）へ送出するパケットデータと、反対に、外部のＶＰＮ接続先（ＶＰＮ装置３０１配下の端末３０３）から配下の端末１０３宛に到着したパケットデータをそれぞれ中継する。
【００４４】
表示部１２０は、ＶＰＮ装置１０１としての動作状態の表示等を行う表示器により構成され、各種状態をユーザあるいは管理者に通知する。表示部１２０は、複数の発光ダイオード（ＬＥＤ）または液晶表示器（ＬＣＤ）等により構成される。表示制御部１１９は、表示部１２０の表示制御を行うもので、マイクロコンピュータ１１１からの表示信号に従って表示部１２０に表示する内容等を制御する。
【００４５】
図３は本実施形態に係る通信装置の機能的な構成例を示すブロック図である。
【００４６】
ＶＰＮ装置１０１は、機能構成として、システム制御部１３０、配下端末管理部１３１、メモリ部１３２、データ中継部１３３、設定用インタフェース部１３４、通信制御部１４０を有して構成される。メモリ部１３２は、外部アドレス・ポート情報記憶部１３５を有する。通信制御部１４０は、通信テスト部１４６、外部アドレス・ポート取得部１４１、ＶＰＮ機能部１４２、呼制御機能部１４３を有する。ＶＰＮ機能部１４２は、暗号処理部１４５を有する。これらの各機能は、図２に示した各ブロックのハードウェアの動作、またはマイクロコンピュータ１１１が所定のプログラムを実行することにより実現する。
【００４７】
なお、ＶＰＮ装置１０１のＬＡＮ側のネットワークインタフェース１１４は、配下の端末１０３と接続され、ＷＡＮ側のネットワークインタフェース１１５は、ＬＡＮ１００及びルータ１０２を経由してＷＡＮ２００と接続される。
【００４８】
システム制御部１３０は、ＶＰＮ装置１０１の全体の制御を行う。配下端末管理部１３１は、ＶＰＮ装置１０１配下の端末１０３の管理を行う。メモリ部１３２は、外部アドレス・ポート情報記憶部１３５において、外部アドレス（ＷＡＮ２００上でのグローバルＩＰアドレス）とポート（ＩＰネットワークのポート番号）の情報を含む外部アドレス・ポート情報を記憶する。外部アドレス・ポート情報としては、接続元である配下の端末１０３に割り当てられたグローバルＩＰアドレス及びポート番号の情報、接続先の端末３０３に割り当てられたグローバルＩＰアドレス及びポート番号の情報などを記憶する。
【００４９】
データ中継部１３３は、接続元の端末１０３から接続先の端末３０３に向かって転送されるパケット、あるいは、逆に接続先の端末３０３から接続元の端末１０３に向かって転送されるパケットをそれぞれ中継する。設定用インタフェース部１３４は、ユーザあるいは管理者がＶＰＮ装置１０１に対する設定操作等の各種操作を行うためのユーザインタフェースである。このユーザインタフェースの具体例として、端末上で動作するブラウザによって表示するＷｅｂページなどが用いられる。
【００５０】
通信制御部１４０の通信テスト部１４６は、通信可能性判定のためのテストパケットを生成してＳＴＵＮサーバ２０１に送出する。すなわち、通信テスト部１４６は本発明のテストパケット送信部である。また、通信テスト部１４６は、テストパケットに対するＳＴＵＮサーバ２０１からの応答パケットの内容に基づき、相手装置である他の通信装置との通信可能性を判定する。すなわち、通信テスト部１４６は本発明の通信可能性判定部でもある。この通信可能性判定動作の詳細については後で説明する。
【００５１】
通信制御部１４０の外部アドレス・ポート取得部１４１は、ＶＰＮ装置１０１の配下の端末１０３に割り当てられた外部アドレス・ポート情報をＳＴＵＮサーバ２０１から取得する。また、接続先の端末３０３の外部アドレス・ポート情報を含むパケットを呼制御サーバ２０２を経由して受信し、接続先の端末３０３に割り当てられた外部アドレス・ポート情報を取得する。外部アドレス・ポート取得部１４１が取得した情報は、メモリ部１３２の外部アドレス・ポート情報記憶部１３５に保持される。
【００５２】
通信制御部１４０のＶＰＮ機能部１４２は、暗号処理部１４５において、ＶＰＮ通信のために必要な暗号処理を行う。すなわち、暗号処理部１４５は、送信するパケットをカプセリングして暗号化したり、受信したパケットをアンカプセリングして復号化して元のパケットを抽出する。なお、ＶＰＮ通信は、図１に示したようなピア間通信ではなく、ＷＡＮ２００上に設けられるサーバでパケットの中継を行い、クライアント／サーバ方式でＶＰＮ通信を行うことも可能である。この場合には、サーバ側で暗号処理を行うようにしてもよい。
【００５３】
呼制御機能部１４３は、目的の接続先に接続するための接続要求を呼制御サーバ２０２に送信したり、接続先からの接続応答を呼制御サーバ２０２を経由して受信するための処理を実施する。
【００５４】
すなわち、通信制御部１４０は、通信テスト部１４６において、テストパケット送信部、通信可能性判定部の各機能を実現する。
【００５５】
次に、本実施形態に係る通信装置による通信可能性判定の動作について説明する。図４は本実施形態に係る通信装置を用いたＶＰＮシステムにおける通信可能性判定の処理手順を示すシーケンス図である。この図４では、通信装置としてのＶＰＮ装置１０１とＳＴＵＮサーバ２０１を含むネットワークにおいて、ＶＰＮ装置１０１による通信可能性判定に関する処理を示している。
【００５６】
ＶＰＮ装置１０１は、通信テスト部１４６のテストパケット送信部の機能により、通信可能性判定のためのテストパケットＴ１（第１のテストパケット）、テストパケットＴ２（第２のテストパケット）をルータ１０２を経由してＳＴＵＮサーバ２０１に対して一斉に送信する（ＰＲ１、ＰＲ２）。ここで、「一斉に送信」とは、ネットワーク制御部及びネットワークインタフェースにおける、ハードウェアの同時（アナログ的またはデジタル的）、ソフトウェアの同時、通信パケットの同時などの、同時またはほぼ同時に行われるパケットの送信、あるいはパケットの順次送信などを含む、送信処理によって準備した複数パケットの送信を意味するものとする。
【００５７】
この際、ＶＰＮ装置１０１は、送信元のＩＰアドレス及びポート番号として、自装置のＩＰアドレス（ＩＰ）：Ｃ、ポート（Ｐｏｒｔ）：ｃを出力するものとする。この場合、ＶＰＮ装置１０１のＩＰアドレス及びポート番号は、ＬＡＮ１００上のローカルＩＰアドレス及びポート番号である。そして、ルータ１０２のＮＡＴ機能により、ＶＰＮ装置１０１のＩＰアドレス及びポート番号が外部アドレス及びポートであるＷＡＮ２００上のグローバルＩＰアドレス及びポート番号にアドレス変換される。これにより、ルータ１０２からは、送信元のＩＰアドレス及びポート番号として、ＩＰアドレス：Ｇ、ポート：ｇが出力されるものとする。すなわち、テストパケットＴ１、Ｔ２は、ＶＰＮ装置１０１のＩＰアドレス：Ｃ、ポート：ｃから送出され、ルータ１０２のＩＰアドレス：Ｇ、ポート：ｇから外部ネットワークへ送出される。なお、以後の動作の説明においても、上述のように、テストパケットの送信から応答パケット受信に基づく通信可能性判定の間とその判定に続くＰ２Ｐ通信の一連の動作の間はＶＰＮ装置１０１のＩＰアドレス（ＩＰ）：Ｃ、ポート（Ｐｏｒｔ）：ｃはそれぞれ同一の値が維持されるものとする。
【００５８】
ＳＴＵＮサーバ２０１は、待ち受け用の外部アドレス及びポート（グローバルＩＰアドレス及びポート番号）として、２つのＩＰアドレスを持ち、各ＩＰアドレスに対して２つのポート番号を持つものとする。すなわち、ＳＴＵＮサーバ２０１は、ＩＰアドレス：Ａ、ポート：ａ，ｂと、ＩＰアドレス：Ｂ、ポート：ａ，ｂとを持ち、これらのＩＰアドレス及びポート番号においてテストパケットの待ち受け受信、応答パケットの送信を行う。
【００５９】
ここで、ＶＰＮ装置１０１は、テストパケットＴ１をＳＴＵＮサーバ２０１のＩＰアドレス：Ａ、ポート：ａ（第１のアドレス・ポート）に対して、テストパケットＴ２をＳＴＵＮサーバ２０１のＩＰアドレス：Ｂ、ポート：ｂ（第２のアドレス・ポート）に対してそれぞれ送信する。テストパケットＴ１、Ｔ２の宛先、すなわちＳＴＵＮサーバ２０１において待ち受けを行う２つの異なるＩＰアドレス及びポート番号の情報は、設定情報等によってＶＰＮ装置１０１に通知しておく。なお、テストパケットＴ１、Ｔ２の宛先は、互いにＩＰアドレスが異なるものであればよく、ポート番号については任意である。また、テストパケットＴ１、Ｔ２の宛先としては、ＳＴＵＮサーバ２０１に限らず、テストパケットに対してテストパケット送信元の外部アドレス・ポート情報を含む応答パケットを返信する機能を持つアドレス情報提供装置であれば、いずれの装置を用いてもよい。
【００６０】
ＳＴＵＮサーバ２０１は、これらのテストパケットＴ１、Ｔ２を受けると、それぞれに対応する応答パケットを返信する（ＰＲ３、ＰＲ４）。応答パケットには、テストパケットの送信元の外部アドレス及びポート（グローバルＩＰアドレス及びポート番号）の情報を含めるようにする。ＳＴＵＮサーバ２０１からの応答パケットは、ルータ１０２を経由してＶＰＮ装置１０１に転送される。この際、テストパケットＴ１の応答パケットは、外部アドレス・ポート情報であるパケット送信元ＩＰアドレス及びポート番号（Ｇ：ｇ）を含み、ＳＴＵＮサーバ２０１のＩＰアドレス：Ａ、ポート：ａから送出される。また、テストパケットＴ２の応答パケットは、外部アドレス・ポート情報であるパケット送信元ＩＰアドレス及びポート番号（Ｇ：ｇ）を含み、ＳＴＵＮサーバ２０１のＩＰアドレス：Ｂ、ポート：ｂから送出される。ＶＰＮ装置１０１は、通信テスト部１４６の通信可能性判定部の機能により、受信した応答パケットの内容によって通信可能性を判定する。
【００６１】
本実施形態においては、ネットワークの上位にあるルータ等がＮＡＴ機能を有する場合に、パケットがＮＡＴを通過するための、かつ、必要最低限のＩＰアドレス及びポート番号の組を探り出す処理を行う。この処理において、テストパケットの送信、その応答パケットの受信、及び、応答パケットの内容に基づく通信可能性の判定を実行する。通信可能なＩＰアドレス及びポート番号の組が取得できれば、このアドレス情報を用いて、ＮＡＴを経由した外部ネットワークとの通信、すなわち「ＮＡＴを透過する」通信が可能である。
【００６２】
そこで、本実施形態では、通信装置から２つのテストパケットＴ１、Ｔ２をＳＴＵＮサーバ等の互いに異なるアドレス・ポート宛に送出し、それぞれのアドレスからの応答パケットに含まれるテストパケットの送信元の外部アドレス及びポートが一致するかどうかによってＰ２Ｐ（Peer to Peer）通信などのＮＡＴを透過する通信の可能性を判定する。なお、「異なるアドレス・ポート」とは、アドレスとポートとの少なくともいずれか一方が異なることを意味するものとする。これらのテストパケットＴ１、Ｔ２によって、異なる宛先へパケットを送出しても、ＮＡＴを介して（つまり、図４のルータ１０２を経由して）同一ＩＰアドレス、ポートから外部へ出て行くかどうかを判定できる。したがって、ＳＴＵＮサーバ以外の宛先と通信する場合に、宛先へ通知した自装置の待ち受け用のＩＰアドレス、ポートが通信可能なものとして正しく伝わるかを判定できる。
【００６３】
ここでは、ＬＡＮに接続された通信装置から、ＮＡＴ機能を持つルータを介して、ＷＡＮ等の外部ネットワークを経由して他の通信装置と通信を行う場合を想定している。この場合、ＬＡＮ内の通信装置から送出されたパケットの送信元ＩＰアドレスは、ルータのＮＡＴによってＬＡＮ上のローカルＩＰアドレス（内部アドレス）から所定のグローバルＩＰアドレス（外部アドレス）にアドレス変換される。よって、外部ネットワークから見た通信装置のＩＰアドレスは、アドレス変換後のグローバルＩＰアドレスになり、応答パケットはこのグローバルＩＰアドレス宛に返信される。
【００６４】
このとき、ＮＡＴの種別によって、外部ネットワークからアクセス可能なＩＰアドレス及びポート番号の制限方式が異なる。また、異なるアドレス・ポート宛にパケットを送出した場合に、ＮＡＴ後の外部アドレスのＩＰアドレス及びポート番号の割り当てが異なることがある。例えばSymmetric NATでは、特定のアドレス・ポート宛のパケットに対して、送信元の外部アドレス及びポートとしてそれぞれ一意のＩＰアドレス及びポート番号を割り当てるようになっている。また、あるＮＡＴではプールされたＩＰアドレスを使い分ける機能を有しているため、宛先によってＩＰアドレスが異なるケースがある。よって、異なるアドレス・ポート宛にパケットを送出すると、それぞれ異なるＩＰアドレスまたはポート番号が送信元の外部アドレス及びポートとして割り当てられる。このため、異なる宛先のパケットにおけるＮＡＴ後の送信元アドレス情報は、外部アドレスのグローバルＩＰアドレスとポート番号の少なくとも一方が異なるようになる。
【００６５】
このような特性を考慮して、異なるアドレス・ポート宛にテストパケットを送出し、これらに対するそれぞれの応答パケットに含まれる、テストパケット送信元ＩＰアドレス及びポート番号が一致した場合、少なくとも間にあるルータのＮＡＴ種別がSymmetric NATではないことが判定できる。この場合、少なくとも一旦パケットを送信した宛先からであれば、外部ネットワークの異なるアドレス、ポートからであっても、自装置の待ち受け用外部アドレスのＩＰアドレス及びポート番号に対して送られてきたパケットがＮＡＴを透過する。したがって、複数宛先からの応答パケットに含まれるテストパケット送信元アドレス情報の一致判定によって、ＮＡＴを透過する通信の可能性を判定できる。ＶＰＮ装置１０１は、通信テスト部１４６の通信可能性判定部の機能によって、異なるアドレス・ポート宛のテストパケットＴ１、Ｔ２に対する応答パケットに含まれる外部アドレス・ポート情報の内容に基づき、通信の可能性を判定する。ここで、テストパケットＴ１、Ｔ２にそれぞれ対応する２つの応答パケットに含まれるテストパケット送信元アドレス情報が一致する場合、すなわち異なるアドレス・ポートからの応答パケットに含まれる外部アドレス・ポート情報が同一である場合は、ＮＡＴを透過する通信が可能であると判定する。また、上記２つの応答パケットに含まれるテストパケット送信元アドレス情報が一致しない場合、すなわち異なるアドレス・ポートからの応答パケットに含まれる外部アドレス・ポート情報が同一でない場合、及び、テストパケットＴ１、Ｔ２の少なくとも一方に対する応答パケットが確認できない場合は、ＮＡＴを透過する通信が不可能であると判定する。
【００６６】
図５は通信可能性判定処理における各パケットの一例を示す図である。この図５では、図４の処理例に対応した各装置（ノード）における送信元及び宛先のＩＰアドレス及びポート番号を示している。テストパケットＴ１については、ＶＰＮ装置１０１が出力するパケットは、送信元のＩＰアドレス及びポート番号（送信元ＩＰ：Ｐｏｒｔ）がＣ：ｃであり、宛先のＩＰアドレス及びポート番号（宛先ＩＰ：Ｐｏｒｔ）がＡ：ａである。そして、ルータ１０２が出力するパケットは、送信元のＩＰアドレス及びポート番号がＧ：ｇであり、宛先のＩＰアドレス及びポート番号がＡ：ａであるとする。これに対し、ＳＴＵＮサーバ２０１が出力する応答パケットは、送信元のＩＰアドレス及びポート番号がＡ：ａであり、宛先のＩＰアドレス及びポート番号がＧ：ｇである。応答パケットは、データ部にテストパケットの送信元ＩＰアドレス及びポート番号であるＧ：ｇを含むものとなっている。
【００６７】
また、テストパケットＴ２については、ＶＰＮ装置１０１が出力するパケットは、送信元のＩＰアドレス及びポート番号がＣ：ｃであり、宛先のＩＰアドレス及びポート番号がＢ：ｂである。そして、ルータ１０２が出力するパケットは、送信元のＩＰアドレス及びポート番号がＧ：ｇであり、宛先のＩＰアドレス及びポート番号がＢ：ｂであるとする。これに対し、ＳＴＵＮサーバ２０１が出力する応答パケットは、送信元のＩＰアドレス及びポート番号がＢ：ｂであり、宛先のＩＰアドレス及びポート番号がＧ：ｇであり、テストパケットの送信元ＩＰアドレス及びポート番号Ｇ：ｇを含んでいる。
【００６８】
図６は通信可能性判定処理における判定結果の一例を示す図である。ＶＰＮ装置１０１において、テストパケットＴ１、Ｔ２によるテスト結果として、どちらかの応答が無い場合は、ＵＤＰ通信不可と判定する。また、テスト結果として、テストパケットＴ１の応答パケットに含まれるポート番号ｇと、テストパケットＴ２の応答パケットに含まれるポート番号ｇとが等しい場合は、ＮＡＴを透過する通信が可能と判定する。また、テスト結果として、テストパケットＴ１の応答パケットに含まれるポート番号ｇと、テストパケットＴ２の応答パケットに含まれるポート番号ｇ′とが等しくない場合は、ＮＡＴを透過する通信が不可能と判定する。すなわち、ＶＰＮ装置１０１は、テストパケットＴ１、Ｔ２に対する応答として、両方の応答があるかどうか、及び、それぞれの応答パケットに含まれるテストパケット送信元のＩＰアドレス及びポート番号が同一かどうかによって、通信可能性を判定する。ここで、テストパケットＴ１、Ｔ２の両方に応答があり、双方のテストパケット送信元のＩＰアドレス及びポート番号が同一である場合は、ＮＡＴを透過する通信が可能であると判定する。
【００６９】
なお、テストパケットとして、ＳＴＵＮサーバに対する外部アドレス・ポート取得要求であるバインディングリクエスト（Binding Request 接続要求）パケットを用いることもできる。この場合、ＳＴＵＮサーバからの応答パケットとしては、外部アドレス・ポート情報返信であるバインディングレスポンス（Binding Response 接続応答）パケットが返信される。これらは、ＩＥＴＦのＲＦＣ ３４８９（STUN - Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs)）に記載されている。
【００７０】
図７は本実施形態の通信装置における通信可能性判定の処理内容を示すフローチャートである。この図７は、図４の通信可能性判定の動作に関する具体的な処理内容を示したものである。図７において、ステップＳ１１〜Ｓ１６は判定側のＶＰＮ装置１０１が行う処理の内容を示し、ステップＳ２１〜Ｓ２３は待ち受け側のＳＴＵＮサーバ２０１が行う処理の内容を示している。
【００７１】
ＶＰＮ装置１０１は、ＳＴＵＮサーバ２０１に対してテストパケットＴ１、Ｔ２を送出する（ＰＲ１、ＰＲ２、ステップＳ１１）。そして、所定の待ち時間を計測するタイマをセットする（ステップＳ１２）。ＳＴＵＮサーバ２０１は、待ち受け用のＩＰアドレス及びポート番号においてテストパケットＴ１、Ｔ２の要求を受信したかを判定する（ステップＳ２１）。ここで、テストパケットＴ１、Ｔ２を受信した場合は、これらに対する応答パケットを生成する（ステップＳ２２）。この際、受信パケットの送信元ＩＰアドレス及びポート番号（ＳｏｕｒｃｅＩＰ／Ｐｏｒｔ）Ｇ：ｇをデータ部に設定する。そして、ＳＴＵＮサーバ２０１は、テストパケットＴ１、Ｔ２にそれぞれ対応する応答パケットをテストパケットの送信元に対して送出する（ＰＲ３、ＰＲ４、ステップＳ２３）。
【００７２】
ＶＰＮ装置１０１は、ＳＴＵＮサーバ２０１からの応答パケットを両方とも受信したかどうかを判定する（ステップＳ１３）。ここで、応答パケットを両方とも受信した場合は、続いて、応答パケットに設定されたテストパケット送信元のＩＰアドレス及びポート番号Ｇ：ｇが同じかどうかを判定する（ステップＳ１４）。テストパケット送信元のＩＰアドレス及びポート番号Ｇ：ｇが同じである場合は、ＮＡＴを透過する通信が可能であると判定する（ステップＳ１５）。一方、テストパケット送信元のＩＰアドレス及びポート番号Ｇ：ｇが異なる場合は、ＮＡＴを透過する通信が不可能であると判定する（ステップＳ１６）。
【００７３】
通信可能であると判定された場合、２つの応答パケットにより通知された自装置の外部アドレス及びポート（ＩＰアドレス及びポート番号の組）によって、外部の通信装置との間でＮＡＴを透過した接続（通信経路の確立、構築）、及び通信が可能である。この場合、通信を行いたい対象の宛先の通信装置に対して自装置の外部アドレス及びポート（ＩＰアドレス及びポート番号）を通知し、この外部アドレス及びポートに対して通信相手先からパケットを送信するようにすれば、ＮＡＴを透過した通信が可能になる。したがって、テスト結果が通信可能判定の場合に、外部ネットワークを経由した相手装置との間で、ＮＡＴを介してＰ２ＰでのＶＰＮ通信が可能である。
【００７４】
ＶＰＮ通信を行うために、ＶＰＮ装置１０１の配下の端末１０３からＷＡＮ２００を経由して他のＶＰＮ装置３０１の配下の端末３０３に接続しようとする場合、端末１０３は呼制御サーバ２０２にログインしてユーザ認証を受けるようにする。端末１０３がユーザ認証に成功した場合、呼制御サーバ２０２において、端末１０３の識別情報（ＭＡＣアドレス、ユーザＩＤ、電話番号など）やネットワーク上の位置情報（グローバルＩＰアドレス）等の登録、設定が行われる。以降、端末１０３と呼制御サーバ２０２との間で通信可能となる。
【００７５】
そして、ＶＰＮ装置１０１は、外部アドレス・ポート取得部１４１の機能により、配下の端末１０３からのＶＰＮ接続の接続要求を受けると、ＳＴＵＮサーバ２０１に対して外部アドレス・ポート取得要求を送信し、自装置の外部アドレス・ポート情報（ＷＡＮ２００側からみたグローバルＩＰアドレス及びポート番号）を取得する。次に、ＶＰＮ装置１０１は、呼制御サーバ２０２に対して、接続先の端末３０３を配下に持つＶＰＮ装置３０１へのＰ２Ｐ（Peer to Peer）の通信経路を構築するための接続要求を送信する。この接続要求には、発呼側アドレス情報として、取得した自装置の外部アドレス・ポート情報を含めるようにする。呼制御サーバ２０２は、この接続要求を中継してＶＰＮ接続の接続先となるＶＰＮ装置３０１へ送信する。
【００７６】
接続先のＶＰＮ装置３０１は、呼制御サーバ２０２からの接続要求を受けると、ＳＴＵＮサーバ２０１に対して外部アドレス・ポート取得要求を送信し、自装置の外部アドレス・ポート情報（ＷＡＮ２００側からみたグローバルＩＰアドレス及びポート番号）を取得する。次に、ＶＰＮ装置３０１は、呼制御サーバ２０２に対して、接続要求に対する応答として、自装置の外部アドレス・ポート情報を含む接続応答を呼制御サーバ２０２へ送信する。呼制御サーバ２０２は、この接続応答を中継してＶＰＮ接続の接続要求元となるＶＰＮ装置１０１へ送信する。
【００７７】
これらの手順により、接続元のＶＰＮ装置１０１と接続先のＶＰＮ装置３０１とは、お互いに相手の外部アドレス・ポート情報を取得している。したがって、ＶＰＮ装置１０１及びＶＰＮ装置３０１は、互いに相手の外部アドレス・ポート情報（グローバルＩＰアドレス及びポート番号）の送信先に設定してＷＡＮ２００を経由してパケットを送信し、通信可能であること（ＶＰＮ接続）を確認し、暗号化したデータ通信（ＶＰＮ通信）を開始する。
【００７８】
次に、本実施形態に係る通信可能性判定の動作の変形例として、図４に示した処理例の一部を変更した例を示す。
【００７９】
図８は本実施形態に係る通信可能性判定の第１変形例の処理手順を示すシーケンス図である。ＶＰＮ装置１０１は、通信テスト部１４６の機能により、まずテストパケットＴ１（第１のテストパケット）をルータ１０２を経由してＳＴＵＮサーバ２０１の待ち受け用のＩＰアドレス及びポート番号（ＩＰアドレス：Ａ、ポート：ａ）に対して送信する（ＰＲ１１）。この際、テストパケットＴ１は、ＶＰＮ装置１０１のＩＰアドレス：Ｃ、ポート：ｃから送出され、ルータ１０２のＩＰアドレス：Ｇ、ポート：ｇから外部ネットワークへ送出される。
【００８０】
ＳＴＵＮサーバ２０１は、テストパケットＴ１を受けると、対応する応答パケットを返信する（ＰＲ１２）。応答パケットには、テストパケットの送信元の外部アドレス及びポート（グローバルＩＰアドレス及びポート番号）の情報と、自装置の別の待ち受け用の外部アドレス及びポート（グローバルＩＰアドレス及びポート番号）の情報とを含めるようにする。これにより、受信したパケットの送信元に対して、その送信元の外部から見たＩＰアドレス及びポート番号と、自装置の他の待ち受け用のＩＰアドレス及びポート番号とを通知する。ＳＴＵＮサーバ２０１からの応答パケットは、ルータ１０２を経由してＶＰＮ装置１０１に転送される。このテストパケットＴ１の応答パケットは、外部アドレスのパケット送信元ＩＰアドレス及びポート番号（Ｇ：ｇ）を含み、ＳＴＵＮサーバ２０１のＩＰアドレス：Ａ、ポート：ａから送出される。
【００８１】
ＶＰＮ装置１０１は、テストパケットＴ１の応答パケットから、ＳＴＵＮサーバ２０１における別の待ち受け用のＩＰアドレス及びポート番号（ＩＰアドレス：Ｂ、ポート：ａ，ｂ）を取得する。そして、その待ち受け用の宛先（ＩＰアドレス：Ｂ、ポート：ｂ）に対して、テストパケットＴ２（第２のテストパケット）をルータ１０２を経由して送信する（ＰＲ１３）。この際、テストパケットＴ２は、ＶＰＮ装置１０１のＩＰアドレス：Ｃ、ポート：ｃから送出され、ルータ１０２のＩＰアドレス：Ｇ、ポート：ｇから外部ネットワークへ送出される。なお、テストパケットＴ１、Ｔ２の宛先は、互いにＩＰアドレスが異なるものであればよく、ポート番号については任意である。
【００８２】
ＳＴＵＮサーバ２０１は、テストパケットＴ２を受けると、対応する応答パケットを返信する（ＰＲ１４）。応答パケットには、テストパケットの送信元の外部アドレス及びポート（グローバルＩＰアドレス及びポート番号）の情報を含めるようにする。ＳＴＵＮサーバ２０１からの応答パケットは、ルータ１０２を経由してＶＰＮ装置１０１に転送される。このテストパケットＴ２の応答パケットは、外部アドレスのパケット送信元ＩＰアドレス及びポート番号（Ｇ：ｇ）を含み、ＳＴＵＮサーバ２０１のＩＰアドレス：Ｂ、ポート：ｂから送出される。ＶＰＮ装置１０１は、通信テスト部１４６の機能により、上記と同様にして、テストパケットＴ１、Ｔ２に対する受信した応答パケットの内容によって通信可能性を判定する。
【００８３】
図９は本実施形態に係る通信可能性判定の第２変形例の処理手順を示すシーケンス図である。第２変形例は、図８の第１変形例に加えて、３つのテストパケットＴ１、Ｔ１′、Ｔ２を用いる例である。ＶＰＮ装置１０１からのテストパケットＴ１（第１のテストパケット）の送出（ＰＲ２１）、ＳＴＵＮサーバ２０１からの応答パケットの送出（ＰＲ２２）については、図８に示した第１変形例のＰＲ１１、ＰＲ１２と同様である。
【００８４】
ＶＰＮ装置１０１は、テストパケットＴ１の応答パケットから、ＳＴＵＮサーバ２０１における別の待ち受け用のＩＰアドレス及びポート番号（ＩＰアドレス：Ｂ、ポート：ａ，ｂ）を取得する。そして、ＶＰＮ装置１０１は、テストパケットＴ１′（第２のテストパケット）、テストパケットＴ２（第３のテストパケット）をルータ１０２を経由してＳＴＵＮサーバ２０１に対して一斉に送信する（ＰＲ２３、ＰＲ２４）。ここで、テストパケットＴ１′は、テストパケットＴ１の宛先と同じＩＰアドレスで異なるポート番号（ＩＰアドレス：Ａ、ポート：ｂ）に対して送信する。また、テストパケットＴ２は、上記取得した別の待ち受け用のＩＰアドレス及びポート番号（ＩＰアドレス：Ｂ、ポート：ｂ）に対して送信する。なお、テストパケットＴ１′の宛先は、テストパケットＴ１の宛先とはＩＰアドレス及びポート番号の少なくとも一方が異なっていればよい。また、テストパケットＴ２の宛先は、テストパケットＴ１、Ｔ１′の宛先とそれぞれＩＰアドレス及びポート番号の少なくとも一方が異なっていればよい。つまり、テストパケットＴ１、Ｔ１′、Ｔ２がそれぞれ異なる宛先のパケットであり、テストパケットＴ２が３宛先目となるようにすればよい。
【００８５】
ＳＴＵＮサーバ２０１は、これらのテストパケットＴ１′、Ｔ２を受けると、それぞれに対応する応答パケットを返信する（ＰＲ２５、ＰＲ２６）。応答パケットには、テストパケットの送信元の外部アドレス及びポート（グローバルＩＰアドレス及びポート番号）の情報を含めるようにする。ＳＴＵＮサーバ２０１からの応答パケットは、ルータ１０２を経由してＶＰＮ装置１０１に転送される。この際、テストパケットＴ１′の応答パケットは、外部アドレスのパケット送信元ＩＰアドレス及びポート番号（Ｇ：ｇ）を含み、ＳＴＵＮサーバ２０１のＩＰアドレス：Ａ、ポート：ｂから送出される。また、テストパケットＴ２の応答パケットは、外部アドレスのパケット送信元ＩＰアドレス及びポート番号（Ｇ：ｇ）を含み、ＳＴＵＮサーバ２０１のＩＰアドレス：Ｂ、ポート：ｂから送出される。ＶＰＮ装置１０１は、通信テスト部１４６の機能により、上記と同様にして、テストパケットＴ１′、Ｔ２に対する受信した応答パケットの内容によって通信可能性を判定する。
【００８６】
第２変形例では、テストパケットＴ２がテストパケットＴ１からみて３宛先目となるようにする。ルータによっては、ＮＡＴ機能において、３宛先目のパケットに対してSymmetric NATの挙動を示すものが存在する。これに対応するために、上記のようにテストパケットＴ１′の宛先（２宛先目）とテストパケットＴ２の宛先（３宛先目）とを異なるＩＰアドレスに設定する。そして、２宛先目のテストパケットと３宛先目のテストパケットのそれぞれに対する応答パケットの内容を参照し、両者に含まれるパケット送信元の外部アドレス及びポートを比較して同じかどうかを判定する。これにより、ルータのＮＡＴ機能が３宛先目のパケットに対してSymmetric NATの挙動を示す場合においても、通信可能性に関して正しい判定結果を得ることができる。
【００８７】
上述したように、本実施形態によれば、少なくとも２つのテストパケットの送受信による１回のテスト手順によって、ＮＡＴを透過した通信可能性の判定を行うことができる。また、本実施形態のテスト手順によって、統計的に最も大多数の接続形態をカバーすることができる。またこの場合、ＵＤＰ同時送信のための到達確認、再送処理が不要である。したがって、通信可能性判定のテストに要する時間を短縮でき、処理手順を削減できるため、短時間で、また、少ない手順で簡単に通信可能性の判定結果を得ることができる。
【００８８】
また、本実施形態の通信可能性判定処理によって、ＮＡＴを透過して通信可能にするＩＰアドレス及びポート番号の設定条件を抽出するので、ＮＡＴの種別に関わらず、抽出した設定条件に基づいて速やかにＮＡＴを透過可能な通信経路を構築し、通信を開始することができる。このため、通信開始までに要する時間を短縮できる。
【００８９】
なお、上記の実施形態では、一例としてＶＰＮ装置に適用した場合の通信装置の構成及び動作について説明したが、端末１０３、３０３など、その他の通信装置において同様に適用することも可能である。
【００９０】
なお、本発明は、本発明の趣旨ならびに範囲を逸脱することなく、明細書の記載、並びに周知の技術に基づいて、当業者が様々な変更、応用することも本発明の予定するところであり、保護を求める範囲に含まれる。また、発明の趣旨を逸脱しない範囲で、上記実施形態における各構成要素を任意に組み合わせてもよい。
【産業上の利用可能性】
【００９１】
本発明は、アドレス変換が行われるネットワーク間において、速やかに通信可能性を判定し、短時間で通信可能な通信経路を構築することが可能となる効果を有する。よって本発明は、ネットワークを介して通信装置が互いに通信をするために必要な情報を取得して通信経路を構築する際の通信テスト機能を持つ通信装置、通信可能性判定方法、及び通信テストプログラム、そのプログラムを記憶した記憶媒体等として有用である。
【符号の説明】
【００９２】
１００、３００  ＬＡＮ
１０１、３０１  ＶＰＮ装置
１０２、３０２  ルータ
１０３、３０３  端末
１１１  マイクロコンピュータ（ＣＰＵ）
１１２  不揮発性メモリ
１１３  メモリ
１１４、１１５  ネットワークインタフェース
１１６  ＬＡＮ側ネットワーク制御部
１１７  ＷＡＮ側ネットワーク制御部
１１８  通信中継部
１１９  表示制御部
１２０  表示部
１３０  システム制御部
１３１  配下端末管理部
１３２  メモリ部
１３３  データ中継部
１３４  設定用インタフェース部
１３５  外部アドレス・ポート情報記憶部
１４０  通信制御部
１４１  外部アドレス・ポート取得部
１４２  ＶＰＮ機能部
１４３  呼制御機能部
１４５  暗号処理部
１４６  通信テスト部
２００  ＷＡＮ
２０１  ＳＴＵＮサーバ
２０２  呼制御サーバ
【図１】
2010283594.tif 000003
【図２】
2010283594.tif 000004
【図３】
2010283594.tif 000005
【図４】
2010283594.tif 000006
【図５】
2010283594.tif 000007
【図６】
2010283594.tif 000008
【図７】
2010283594.tif 000009
【図８】
2010283594.tif 000010
【図９】
2010283594.tif 000011