(57)【要約】【課題】通信装置及び通信相手の機能に応じた通信の接続方向を決定する。【解決手段】通信装置１０３ａは、当該通信装置１０３ａの通信において可能な役割を判定するとともに、通信相手１０３ｂの通信における役割を示す情報を取得する。そして、１０３ａは、当該通信装置１０３ａの通信において可能な役割と、取得した通信相手１０３ｂの役割を示す情報とに基づいて、当該通信装置１０３ａの通信における役割を決定する。【選択図】図１
2011035665.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続された通信装置であって、
当該通信装置が接続されたネットワーク環境に関する情報を収集する収集手段と、
前記収集手段により収集された情報に基づいて当該通信装置の通信において可能な役割を判定する判定手段と、
通信相手の通信における役割を示す情報を取得する取得手段と、
前記判定手段により判定された当該通信装置の通信において可能な役割と、前記取得手段により取得された前記通信相手の役割を示す情報とに基づいて、当該通信装置の通信における役割を決定する決定手段とを有することを特徴とする通信装置。
【請求項２】
前記判定手段により判定された当該通信装置の通信において可能な役割を示す情報を含む接続要求情報を前記通信相手に対して送信する接続要求手段を更に有することを特徴とする請求項１に記載の通信装置。
【請求項３】
前記判定手段により当該通信装置が通信においてサーバとしての役割が可能であると判定された場合、前記通信相手からの通信接続を待ち受けることを特徴とする請求項１又は２に記載の通信装置。
【請求項４】
前記通信相手からの通信接続の待ち受けを開始した後に、通信に対するフィルタを設定する第１の設定手段を更に有することを特徴とする請求項３に記載の通信装置。
【請求項５】
前記決定手段により当該通信装置に対してクライアントとしての役割が決定された場合、通信に対するフィルタを設定する第２の設定手段を更に有することを特徴とする請求項１乃至４の何れか１項に記載の通信装置。
【請求項６】
前記通信相手との通信を切断する際、当該通信装置の役割がサーバである場合、通信接続の待ち受けを終了することを特徴とする請求項３に記載の通信装置。
【請求項７】
前記決定手段により決定された当該通信装置の通信における役割を示す情報を含む、前記通信相手からの接続要求情報に対する返信情報を、前記通信相手に対して送信する返信手段を更に有することを特徴とする請求項１に記載の通信装置。
【請求項８】
前記決定手段により当該通信装置に対してサーバとしての役割が決定された場合、前記通信相手からの通信接続を待ち受けることを特徴とする請求項１又は７に記載の通信装置。
【請求項９】
前記返信手段により前記通信相手に対して返信をした後、通信に対するフィルタを設定する設定手段を更に有することを特徴とする請求項７に記載の通信装置。
【請求項１０】
前記通信相手との通信を切断する際、当該通信装置の役割がサーバである場合、通信接続の待ち受けを終了することを特徴とする請求項８に記載の通信装置。
【請求項１１】
ネットワークに接続された通信装置の制御方法であって、
当該通信装置が接続されたネットワーク環境に関する情報を収集する収集ステップと、
前記収集ステップにより収集された情報に基づいて当該通信装置の通信において可能な役割を判定する判定ステップと、
通信相手の通信における役割を示す情報を取得する取得ステップと、
前記判定ステップにより判定された当該通信装置の通信において可能な役割と、前記取得ステップにより取得された前記通信相手の役割を示す情報とに基づいて、当該通信装置の通信における役割を決定する決定ステップとを含むことを特徴とする通信装置の制御方法。
【請求項１２】
ネットワークに接続されたコンピュータに、
当該コンピュータが接続されたネットワーク環境に関する情報を収集する収集ステップと、
前記収集ステップにより収集された情報に基づいて当該コンピュータの通信において可能な役割を判定する判定ステップと、
通信相手の通信における役割を示す情報を取得する取得ステップと、
前記判定ステップにより判定された当該コンピュータの通信において可能な役割と、前記取得ステップにより取得された前記通信相手の役割を示す情報とに基づいて、当該コンピュータの通信における役割を決定する決定ステップとを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置及び通信相手の機能に応じた通信の接続方向を決定する技術に関するものである。
【背景技術】
【０００２】
従来、サーバの役割の通信装置に対してクライアントの役割の通信装置が接続する接続形態のアプリケーションにおいては、サーバの役割の通信装置とクライアントの役割の通信装置とを予め設定しておき、アプリケーションを開始する必要があった。
【０００３】
特許文献１には、通信パケットに対する暗号、認証規則を示すセキュリティポリシと通信装置の通信状態を示すプレゼンス情報を通信装置間で交換し、通信状況に応じたセキュリティポリシを用いたピアツーピア通信を開始する技術が開示されている。また、特許文献２には、ＶＰＮ接続の認証情報を電話・電子メール・インスタントメッセンジャーで交換して、ＶＰＮ接続を確立する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−２７２７２４号公報
【特許文献２】特開２００７−１１０３８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来の技術においては、クライアントの役割の通信装置がサーバの役割の通信装置に対してアクセスすることにより通信を開始することはできる。しかしながら、サーバの役割の通信装置がクライアントの役割の通信装置を呼び出して通信を開始することができなかった。
【０００６】
そこで、本発明の目的は、通信装置が接続されたネットワーク環境に応じた通信の接続方向を決定することにある。
【課題を解決するための手段】
【０００７】
本発明の通信装置は、当該通信装置の通信において可能な役割を判定する判定手段と、通信相手の通信における役割を示す情報を取得する取得手段と、前記判定手段により判定された当該通信装置の通信において可能な役割と、前記取得手段により取得された前記通信相手の役割を示す情報とに基づいて、当該通信装置の通信における役割を決定する決定手段とを有することを特徴とする。
【発明の効果】
【０００８】
本発明においては、通信装置が接続されたネットワーク環境に関する情報に基づいて通信装置の通信において可能な役割を判定し、それに基づいて通信装置の通信における役割を決定するように構成している。従って、通信装置が接続されたネットワーク環境に応じた通信の接続方向を決定することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態に係るネットワーク構成を示す図である。
【図２】通信装置のハードウェア構成を示す図である。
【図３】通信装置のモジュール構成を示す図である。
【図４】通信装置における接続開始処理の流れを示すフローチャートである。
【図５】通信装置における接続開始処理の流れを示すフローチャートである。
【図６】通信装置における通信終了処理の流れを示すフローチャートである。
【図７】通信装置における通信終了処理の流れを示すフローチャートである。
【図８】ＶＰＮの接続方向を決定する表を示す図である。
【図９】通信装置を利用するアプリケーションの接続から切断までの一連の流れを示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
【００１１】
図１は、本発明の実施形態に係るネットワーク構成を示す図である。インターネット１００は、インターネットである。インターネット１００は、インターネットに限らず、ＷＡＮ(Wide Area Network)やＬＡＮ(Local Area Network)でもよいし、それらの複合でもよい。
【００１２】
ルータ１０１は、ＩＧＤ(Internet Gateway Device)機能を持つルータである。ルータ１０１は、インターネット１００側のインタフェースに接続可能なグローバルＩＰアドレスを持ち、ＬＡＮ１０６ａに対して、ＮＡＴ(Network Address Translation)のネットワークアドレス変換を行っている。
【００１３】
ルータ１０２は、インターネット１００側のインタフェースにグローバルＩＰアドレスを持たないルータである。ルータ１０２は、インターネット１００へ接続のみ可能（例えば、ルータ１０２の上流にＮＡＴを行うルータが存在する）である。ルータ１０２は、グローバルＩＰアドレスを持たないため、外部からルータ１０２へ直接アクセスすることはできない。即ち、ルータ１０２及びルータ１０２より下流の通信装置１０３ｂは、外部からの接続を受け付けることができない。
【００１４】
通信装置１０３ａは、ＬＡＮ１０６ａに接続し、通信装置１０３ｂに環境情報から生成した接続提案情報を送信し、接続提案返信情報を受信することによって、ＶＰＮの接続方向を決定する機能を持つ装置である。本実施形態では、ＬＡＮ１０６ａに接続するパターンで記述するが、それに限定されるものではない。通信装置１０３ａが直接インターネット１００に接続する場合、Wireless LAN等を介してインターネット１００に接続する場合でも実施できることはいうまでもない。ＶＰＮとは、Virtual Private Networkの略称である。
【００１５】
通信装置１０３ｂは、ＬＡＮ１０６ｂに接続し、通信装置１０３ａの接続提案情報を受信し、接続提案情報から接続提案返信情報を生成する。通信装置１０３ｂは、通信装置１０３ａに接続提案返信情報を送信することによって、ＶＰＮの接続方向を決定する機能を持つ装置である。本実施形態では、ＬＡＮ１０６ｂに接続するパターンで記述するが、それに限定されるものではない。通信装置１０３ｂが直接インターネット１００に接続する場合、Wireless LAN等を介してインターネット１００に接続する場合でも実施できることはいうまでもない。
【００１６】
アプリケーション送信装置１０４は、ＬＡＮ１０６ａに接続し、通信装置１０３ａにＶＰＮ接続の開始依頼の機能、及び、ストリーミング配信の機能を持つ装置である。本実施形態では、アプリケーション送信装置１０４の中に全て入るＶＰＮ接続の開始依頼の機能、ストリーミング配信の機能は、それぞれ別の装置に実装されても実施できることはいうまでもない。
【００１７】
アプリケーション受信装置１０５は、ＬＡＮ１０６ｂに接続し、ストリーミング受信の機能を持つ装置である。
【００１８】
ＬＡＮ１０６ａ及びＬＡＮ１０６ｂは、ＬＡＮである。ＬＡＮ１０６ａ及びＬＡＮ１０６ｂは、ＬＡＮに限らず、Wireless LAN、Bluetooth等でもよいし、それらの複合でも実施できることはいうまでもない。
【００１９】
図２は、通信装置１０３ａのハードウェア構成を示す図である。通信装置１０３ａは、ＰＣ等のコンピュータシステムで構成することができる。それ以外にも、ワークステーション、ノートブックＰＣ、パームトップＰＣ、コンピュータを内蔵したテレビ等の各種家電製品、通信機能を有するゲーム機、携帯電話、ＰＨＳ等を含む他の通信装置と通信するための通信機能を有する端末で構成してもよい。また、これらの組合せによっても実施可能である。
【００２０】
２０１は、コンピュータシステムの制御を司る中央演算装置（以下、ＣＰＵ）である。２０２は、ランダムアクセスメモリ（以下、ＲＡＭ）であり、ＣＰＵ２０１の主メモリとして、及び実行プログラムの領域や該プログラムの実行エリア並びにデータエリアとして機能する。
【００２１】
２０３は、ＣＰＵ２０１の動作処理手順を記録しているリードオンリーメモリ（以下、ＲＯＭ）である。ＲＯＭ２０３には、コンピュータシステムの機器制御を行うシステムプログラムである基本ソフト（ＯＳ）を記録したプログラムＲＯＭとシステムを稼動するために必要な情報等が記録されたデータＲＯＭがある。ＲＯＭ２０３の代わりに後述のＨＤＤ２０９を用いる場合もある。
【００２２】
２０４は、ネットワークインタフェース（以下、ＮＥＴＩＦ）であり、ネットワークを介してコンピュータシステム間のデータ転送を行うための制御や接続状況の診断を行う。２０５は、ビデオＲＡＭ（以下、ＶＲＡＭ）であり、コンピュータシステムの稼動状態を示す後述する表示装置２０６の画面に表示される画像を展開し、その表示の制御を行う。２０６は、表示装置であって、例えば、ＣＲＴディスプレイである。
【００２３】
２０７は、後述する外部入力装置２０８からの入力信号を制御するコントローラである。２０８は、コンピュータシステムの利用者がコンピュータシステムに対して行う操作を受け付けるための外部入力装置であり、例えばキーボード等である。２０９は、記憶装置を示し、例えばハードディスク等である。アプリケーションプログラムや環境情報等のデータ保存用に用いられる。
【００２４】
２１０は、外部入出力装置であって、例えばフロッピー（登録商標）ディスクドライブ、ＣＤ−ＲＯＭドライブ等のリムーバブルを入出力するものであり、上述したアプリケーションプログラムの媒体からの読み出し等に用いられる。以下、外部入出力装置２１０をＦＤＤ２１０と記す。なお、ＨＤＤ２０９に格納するアプリケーションプログラムやデータをＦＤＤ２１０に格納して使用することも可能である。
【００２５】
２００は、上述した各ユニット間の接続するための入出力バス（アドレスバス、データバス、及び制御バス）である。
【００２６】
図３は、通信装置１０３ａ及び通信装置１０３ｂのモジュール構成を示す図である。以下では、通信装置１０３ａを例に挙げて説明する。
【００２７】
３０１は、接続提案情報及び接続提案返信情報から、ＶＰＮの接続方向を決定する接続判断部である。
【００２８】
３０２は、ＳＳＬ(Secure Socket Layer)を利用したＶＰＮの接続受付、及び、ＶＰＮの接続開始といったＶＰＮの制御を行うＶＰＮ制御部である。また、ＶＰＮ制御部３０２は、ＶＰＮに対するフィルタの設定、及び、フィルタの解除といったフィルタ制御も行う。本実施形態では、ＳＳＬを利用したＶＰＮで実施しているが、これに限らず、ＩＰｓｅｃなどの別のＶＰＮでも実現できることはいうまでもない。
【００２９】
３０３は、ＳＩＰ(Session Initiation Protocol)を制御するＳＩＰ制御部である。ＳＩＰ制御部３０３は、ＳＤＰ処理部３０４で生成されたＳＤＰをＳＩＰのメッセージに付与して送信する。
【００３０】
３０４は、ＳＤＰ(Session Description Protocol)を処理するＳＤＰ処理部である。ＳＤＰ処理部３０４は、接続提案情報及び接続提案返信情報を、ＳＤＰの形式にする処理やＳＤＰから取り出す処理を行う。３０５は、環境情報収集部３０６で収集された環境情報から、ＶＰＮの接続方向を含む接続提案情報を生成する接続提案情報生成部である。
【００３１】
３０６は、環境情報を収集する環境情報収集部である。環境情報収集部３０６は、ＬＡＮ１０６ａを介して、ＩＧＤ(Internet Gateway Device)のコントロールポイントを利用して、ルータ１０１からＩＰアドレスを取得し、ポート番号を制御する。これにより、環境情報収集部３０６は、現在接続するネットワーク環境に関する環境情報を収集できる。環境情報収集部３０６は、通信装置１０３ａのＶＰＮ制御部３０２がサーバやクライアントになれるモジュールを持つかの情報を収集する。さらに、環境情報収集部３０６は、ＶＰＮ制御部３０２がＳＳＬのサーバの秘密鍵やサーバ証明書、クライアントの秘密鍵やクライアント証明書を保持するかの情報を収集する。本実施形態では、ＩＧＤを利用したが、これに限らず、ＳＴＵＮ(Simple Traversal of UDP through NATs)、ＴＵＲＮ(Traversal Using Relay NAT)、ＩＣＥ(Interactive Connectivity Establishment)、ＮＡＴ−ＰＭＰ(NAT Port Mapping Protocol)、UDP hole punching等の複合によって、実現できる。
【００３２】
図９は、通信装置１０３ａ及び通信装置１０３ｂを利用するアプリケーションの接続から切断までの一連の流れを示す図である。
【００３３】
Ｆ１２０１において、アプリケーション送信装置１０４は、通信装置１０３ａに対して、アプリケーション受信装置１０５に接続するための接続指示を送信する。接続指示には、アプリケーション受信装置１０５の識別子が含まれている。本実施形態では、アプリケーション受信装置１０５の識別子を含んでいるが、これに限らず、通信装置１０３ｂの識別子が含まれていてもよいし、通信装置１０３ａに予め設定してあってもよい。
【００３４】
Ｆ１２０２において、通信装置１０３ａは、通信装置１０３ｂと、ＳＩＰ及びＳＤＰを利用した接続提案処理を行う。通信装置１０３ａ及び通信装置１０３ｂは、ＶＰＮの接続方向を含む接続のためのパラメータを決定することができる。
【００３５】
Ｆ１２０３において、通信装置１０３ｂは、アプリケーション受信装置１０５にアプリケーション送信装置１０４からの接続要求があることを通知する。本実施形態では、アプリケーション送信装置１０４からの接続要求を通知しているが、これに限らず、通信装置１０３ａからの接続要求としてもよい。
【００３６】
Ｆ１２０４において、アプリケーション受信装置１０５は、アプリケーション送信装置１０４からの接続を受け付けたと判断すると、接続受領を通信装置１０３ｂに送信する。
【００３７】
本実施形態では、Ｆ１２０１、Ｆ１２０２、Ｆ１２０３及びＦ１２０４は、アプリケーション送信装置１０４から指示を開始しているが、これに限らず、アプリケーション受信装置１０５から指示を開始してもよい。また、Ｆ１２０３及びＦ１２０４を用いて、アプリケーション受信装置１０５に通知・受領せずに、通信装置１０３ｂ内で自動的に接続を受け付けることにしてもよい。
【００３８】
Ｆ１２０５において、通信装置１０３ａと通信装置１０３ｂは、Ｆ１２０２で決定された接続方向を含む接続のためのパラメータを用いて、ＶＰＮ接続を開始する。本実施形態においては、通信装置１０３ｂが通信装置１０３ａに接続する。
【００３９】
Ｆ１２０６において、通信装置１０３ａは、アプリケーション送信装置１０４にＶＰＮ接続が完了したことを示す接続通知を送信する。Ｆ１２０７において、通信装置１０３ｂは、アプリケーション受信装置１０５にＶＰＮ接続が完了したことを示す接続通知を送信する。
【００４０】
Ｆ１２０８において、アプリケーション送信装置１０４は、アプリケーション受信装置１０５に向けてアプリケーション通信の開始を行う。本実施形態において、アプリケーション送信装置１０４は、アプリケーション受信装置１０５にストリーミング配信を行う。
【００４１】
アプリケーション送信装置１０４は、アプリケーション受信装置１０５に対するストリーミング配信を終了する。すると、Ｆ１２０９において、アプリケーション送信装置１０４は、通信装置１０３ａにアプリケーション受信装置１０５を切断するための切断指示を送信する。
【００４２】
Ｆ１２１０において、通信装置１０３ａは、通信装置１０３ｂとのＶＰＮの切断処理を行う。Ｆ１２１１において、通信装置１０３ｂは、アプリケーション受信装置１０５に対してＶＰＮの切断処理を受け付けたことを示す切断受付通知を送信する。
【００４３】
本実施形態において、Ｆ１２０９、Ｆ１２１０及びＦ１２１１は、アプリケーション送信装置１０４から指示しているが、これに限らず、アプリケーション受信装置１０５から指示してもよい。
【００４４】
Ｆ１２１２において、アプリケーション受信装置１０５は、アプリケーション送信装置１０４とのアプリケーションの通信を切断する。Ｆ１２１２は、Ｆ１２０９の前に実行してもよい。本実施形態において、アプリケーション受信装置１０５からアプリケーションの通信を切断したが、これに限らず、アプリケーション送信装置１０４から切断してもよい。
【００４５】
Ｆ１２１３において、アプリケーション受信装置１０５は、切断を受け付けてアプリケーションの切断を終了したこと示す切断受領を通信装置１０３ｂに送信する。
【００４６】
Ｆ１２１４において、通信装置１０３ｂは、通信装置１０３ａとの間のＶＰＮを切断する。Ｆ１２１５において、通信装置１０３ａは、アプリケーション送信装置１０４にＶＰＮの切断通知を送信する。Ｆ１２１６において、通信装置１０３ｂは、アプリケーション受信装置１０５にＶＰＮの切断通知を送信する。
【００４７】
図４は、通信装置１０３ａにおける接続開始処理の流れを示すフローチャートである。通信装置１０３ａは、ＬＡＮ１０６ａを介してアプリケーション送信装置１０４から、ＶＰＮ接続の要求を受け付ける。ＶＰＮ接続の要求を受け付けた通信装置１０３ａは、アプリケーション送信装置１０４に指定された、又は、予め設定された通信装置１０３ｂへのＶＰＮ接続が開始される。接続判断部３０１が、アプリケーション送信装置１０４からのＶＰＮ接続の要求を受け付けたと判断すると、ステップＳ４００からの処理を開始する。
【００４８】
ステップＳ４００において、環境情報収集部３０６は、ＩＧＤのコントロールポイントを利用して、ルータ１０１のネットワーク情報を取得し、ステップＳ４０１に進む。ネットワーク情報とは、ルータ１０１のインターネット１００側のアドレス、ＶＰＮ接続で利用するポート番号が利用可能であるかのネットワーク環境情報である。環境情報収集部３０６は、ＩＧＤで規定されるGetExternalIPAddressアクションを利用して、ルータ１０１のインターネット１００側のアドレスを取得する。環境情報収集部３０６は、ＩＧＤで規定されるAddPortMappingアクション、及び、DeletePortMappingアクションを利用して、ＶＰＮ接続で利用するポート番号が利用可能であるかのチェックを行う。
【００４９】
ステップＳ４０１において、接続判断部３０１は、アプリケーション送信装置１０４に指定された、又は、予め設定された認証情報、自身の設定情報から、ＶＰＮ接続のサーバ側、又は、クライアント側になれるかを判断する。即ちここでは、ＶＰＮ接続の通信において通信装置１０３ａにとって可能な役割を判定している。なお、ステップＳ４０１は、本発明の請求項１における判定手段の処理例である。本実施形態において、ＰＡＳＳＩＶＥとは、通信装置がＶＰＮのサーバになれるという意味である。ＡＣＴＩＶＥとは、通信装置がＶＰＮのクライアントになれるという意味である。ＤＵＡＬとは、通信装置がＶＰＮのサーバ及びクライアントになれるという意味である。接続判断部３０１がＰＡＳＳＩＶＥのみ可能である判断すると、ステップＳ４０２に進む。また、接続判断部３０１がＤＵＡＬが可能であると判断すると、ステップＳ４０６に進む。また、接続判断部３０１がＡＣＴＩＶＥが可能であると判断すると、ステップＳ４０８に進む。
【００５０】
ステップＳ４０２において、接続判断部３０１は、通信装置１０３ａがグローバルアドレスを持っているかの判断を行う。接続判断部３０１がグローバルアドレスを持つと判断すると、ステップＳ４０４に進む。接続判断部３０１がグローバルアドレスを持たないと判断すると、ステップＳ４０３に進む。
【００５１】
ステップＳ４０３において、接続判断部３０１は、ステップＳ４００で取得したネットワーク情報から、ルータ１０１のインターネット１００側のアドレスがグローバルアドレスであり、且つＶＰＮ接続で利用するポート番号が利用可能であるか否かを判断する。ルータ１０１のインターネット１００側のアドレスがグローバルアドレスであり、且つＶＰＮ接続で利用するポート番号が利用可能である場合、ステップＳ４０４に進む。一方、ルータのインターネット１００側のアドレスがグローバルアドレスでない、又は、ＶＰＮ接続で利用するポート番号が利用不可能であると判断されると、ステップＳ４２４に進む。
【００５２】
ステップＳ４０４において、接続提案情報生成部３０５は、ネットワーク情報、及び、アプリケーション送信装置１０４に指定された、又は、予め設定された認証情報、自身の設定情報といった環境情報から、ＰＡＳＳＩＶＥモードの接続提案情報を生成する。以下に環境情報の一例を示す。即ち、ルータ、又は、通信装置のグローバルアドレス、ポート番号、ＳＳＬサーバ秘密鍵の有無とＳＳＬサーバの秘密鍵の実体、ＳＳＬクライアント秘密鍵の有無とＳＳＬクライアントの秘密鍵の実体、ＶＰＮのサーバモジュールの有無、ＶＰＮのクライアントモジュールの有無、ＶＰＮの最大セッション数、処理負荷、帯域状態等である。本実施形態では、以上の環境情報を示したが、これに限らず、ＦｉｒｅＷａｌｌの情報や暗号情報等を含んでも実施できることはいうまでもない。ステップＳ４０４における接続提案情報には、グローバルアドレス、ポート番号、ＳＳＬサーバ証明書、ＶＰＮ接続方向が含まれる。
【００５３】
ステップＳ４０５において、接続判断部３０１は、通信装置１０３ａがグローバルアドレスを持っているかの判断を行う。接続判断部３０１がグローバルアドレスを持つと判断すると、ステップＳ４０７に進む。一方、接続判断部３０１がグローバルアドレスを持たないと判断すると、ステップＳ４０６に進む。
【００５４】
ステップＳ４０６において、接続判断部３０１は、ステップＳ４００で取得したネットワーク情報から、ルータ１０１のインターネット１００側のアドレスがグローバルアドレスであり、且つＶＰＮ接続で利用するポート番号が利用可能であるか否かを判断する。ルータ１０１のインターネット１００側のアドレスがグローバルアドレスであり、且つＶＰＮ接続で利用するポート番号が利用可能である場合、ステップＳ４０７に進む。一方、ルータ１０１のインターネット１００側のアドレスがグローバルアドレスでない、又は、ＶＰＮ接続で利用するポート番号が利用不可能であると判断されると、ステップＳ４０８に進む。
【００５５】
ステップＳ４０７において、接続提案情報生成部３０５は、ネットワーク情報、及び、アプリケーション送信装置１０４に指定された、又は、予め設定された認証情報、自身の設定情報といった環境情報から、ＤＵＡＬモードの接続提案情報を生成する。接続提案情報が生成された後、ステップＳ４０９に進む。ステップＳ４０７における接続提案情報には、グローバルアドレス、ポート番号、ＳＳＬサーバ証明書、ＳＳＬのクライアント証明書、ＶＰＮ接続方向が含まれる。
【００５６】
ステップＳ４０８において、接続提案情報生成部３０５は、ネットワーク情報、及び、アプリケーション送信装置１０４に指定された、又は、予め設定された認証情報、自身の設定情報といった環境情報から、ＡＣＴＩＶＥモードの接続提案情報を生成する。接続提案情報が生成された後、ステップＳ４０９に進む。ステップＳ４０８における接続提案情報には、ＳＳＬクライアント証明書、ＶＰＮ接続方向が含まれる。
【００５７】
ステップＳ４０９において、ＶＰＮ制御部３０２は、ＩＧＤを用いてルータ１０１のポートマッピングを追加した後、ＶＰＮの待ち受け（即ち、通信接続の待ち受け）を開始し、ステップＳ４１０に進む。
【００５８】
ステップＳ４１０において、ＶＰＮ制御部３０２は、ＶＰＮに対するフィルタの設定を行い、ステップＳ４１１に進む。フィルタは、ＶＰＮのチャネルは張られているが、利用不可能な状態にするために用いられる。なお、ステップＳ４１０は、本発明の請求項４における第１の設定手段の処理例である。
【００５９】
ステップＳ４１１において、ＳＤＰ処理部３０４は、接続提案情報をＩＮＶＩＴＥメッセージのＳＤＰに追加する。その後、ＳＩＰ制御部３０３は、通信装置１０３ｂ宛てのＩＮＶＩＴＥメッセージ（接続要求情報）を送信し、ステップＳ４１２に進む。なお、ステップＳ４１１は、本発明の請求項１における接続要求手段の処理例である。
【００６０】
ステップＳ４１２において、ＳＩＰ制御部３０３は、通信装置１０３ｂから暫定応答である１８０メッセージを受信し、ステップＳ４１３に進む。ＳＤＰ処理部３０４は、１８０メッセージから接続提案返信情報を取得する。
【００６１】
ステップＳ４１３において、ＳＩＰ制御部３０３は、時間内に１８０メッセージを受信したかの判断を行う。受信したと判断されると、ステップＳ４１４に進む。一方、受信していないと判断されると、ステップＳ４２４に進む。
【００６２】
ステップＳ４１４において、接続判断部３０１は、接続提案返信情報から通信装置１０３ｂのＶＰＮの接続方向を取得する。なお、ステップＳ４１４においてＶＰＮの接続方向を取得する処理は、本発明の請求項１における取得手段の処理例である。接続判断部３０１は、通信装置１０３ａのＶＰＮの接続方向（ＰＡＳＳＩＶＥ、ＡＣＴＩＶＥ、ＤＵＡＬ）と通信装置１０３ｂのＶＰＮの接続方向（ＰＡＳＳＩＶＥ、ＡＣＴＩＶＥ）とから、ＶＰＮの接続方向を決定する。通信装置１０３ａのＶＰＮの接続方向がＤＵＡＬ又はＰＡＳＳＩＶＥであって、通信装置１０３ｂのＶＰＮの接続方向がＡＣＴＩＶＥの場合、ステップＳ４１５に進む。通信装置１０３ａのＶＰＮの接続方向がＤＵＡＬ又はＡＣＴＩＶＥであって、通信装置１０３ｂのＶＰＮの接続方向がＰＡＳＳＩＶＥの場合、ステップＳ４１７に進む。上記に当てはまらない場合、ステップＳ４２４に進む。図８にＶＰＮの接続方向を決定する表を示す。図中の発呼から開始は、通信装置１０３ａから見た場合、ＡＣＴＩＶＥにあたる。図中の着呼から開始は、通信装置１０３ａから見た場合、ＰＡＳＳＩＶＥにあたる。
【００６３】
ステップＳ４１５において、接続判断部３０１は、通信装置１０３ａ側はＰＡＳＳＩＶＥになると決定し、ステップＳ４１６に進む。ステップＳ４１６において、ＶＰＮ制御部３０２は、通信装置１０３ｂからのＶＰＮ接続の受け付けを行い、ステップＳ４２２に進む。
【００６４】
ステップＳ４１７において、接続判断部３０１は、通信装置１０３ａ側はＡＣＴＩＶＥになると決定し、ステップＳ４１８に進む。なお、ステップＳ４１５、Ｓ４１７は、本発明の請求項１における決定手段の処理例である。
【００６５】
ステップＳ４１８において、接続判断部３０１は、通信装置１０３ａが生成した接続提案情報に含まれるＶＰＮの接続方向の確認を行う。通信装置１０３ａが生成した接続提案情報に含まれるＶＰＮの接続方向がＰＡＳＳＩＶＥ又はＤＵＡＬであった場合、ステップＳ４２１に進む。通信装置１０３ａが生成した接続提案情報に含まれるＶＰＮの接続方向がＡＣＴＩＶＥであった場合、ステップＳ４１９に進む。
【００６６】
ステップＳ４１９において、ＶＰＮ制御部３０２は、ＶＰＮに対するフィルタの設定を行い、ステップＳ４２０に進む。なお、ステップＳ４１９は、本発明の請求項５における第２の設定手段の処理例である。
【００６７】
ステップＳ４２０において、ＶＰＮ制御部３０２は、接続提案返信情報に含まれるパラメータを利用して、通信装置１０３ｂにＶＰＮ接続を開始し、ステップＳ４２２に進む。ステップＳ４２１において、ＶＰＮ制御部は、ＶＰＮの待ち受けを終了した後、ＩＧＤを用いてルータ１０１にポートマッピングの消去を行い、ステップＳ４１９に進む。
【００６８】
ステップＳ４２２において、ＳＩＰ制御部３０３は、通信装置１０３ｂから応答である２００メッセージを受信し、ステップＳ４２３に進む。
【００６９】
ステップＳ４２３において、ＳＩＰ制御部３０３は、一定時間以内に通信装置１０３ｂから２００メッセージを受信したかの判断を行う。ＳＩＰ制御部３０３が２００メッセージを受け取ったと判断すると、ステップＳ４２５に進む。一方、ＳＩＰ制御部３０３が２００メッセージを受け取っていないと判断すると、ステップＳ４２４に進む。
【００７０】
ステップＳ４２４において、接続判断部３０１は、エラーが発生したと判断し、処理を終了する。ステップＳ４２５において、ＶＰＮ制御部３０２は、ＶＰＮのフィルタを解除し、ＶＰＮを利用可能な状態にし、処理を終了する。
【００７１】
本実施形態では、ＶＰＮがＳＩＰのセッションにあたる。接続要求に対する２００の応答を返却すると、ＳＩＰでは繋がった状態、つまり、ＶＰＮが接続された状態になる。そのため、その後にＶＰＮを接続することは、状態の不整合に繋がるので、本実施形態では、上記のようなフローを採用している。
【００７２】
以上のことから、２００の応答の前にＶＰＮ接続を行わなければならないが、２００の応答の後に実際の動作をスタートさせなければならない。本実施形態では、フィルタを用いて、これを解決している。しかしながら、これに限らず、ＶＰＮの抑制状態を利用することや、ＶＰＮの動作を妨げる方法でも解決することができることはいうまでもない。
【００７３】
図５は、通信装置１０３ｂにおける接続開始処理の流れを示すフローチャートである。通信装置１０３ｂは、ＬＡＮ１０６ｂを介して通信装置１０３ａからのＶＰＮ接続要求を受け付け、ＶＰＮ接続を開始する。通信装置１０３ｂは、通信装置１０３ａと同様のモジュール構成であるので、通信装置１０３ａの動作も図３のモジュール構成図を用いて説明する。
【００７４】
接続判断部３０１が、通信装置１０３ａからのＶＰＮ接続の要求を受け付けたと判断すると、ステップＳ５００からの処理が開始される。
【００７５】
ステップＳ５００において、ＳＩＰ制御部３０３は、通信装置１０３ａからＩＮＶＩＴＥメッセージを受信する。その後、ＳＤＰ処理部３０４は、ＩＮＶＩＴＥメッセージに含まれるＳＤＰから接続提案情報を取得し、ステップＳ５０１に進む。なお、ステップＳ５００は、本発明の請求項７における取得手段の処理例である。
【００７６】
ステップＳ５０１において、環境情報収集部３０６は、ＩＧＤのコントロールポイントを利用して、ルータ１０２のネットワーク情報を取得し、ステップＳ５０２に進む。ネットワーク情報とは、ルータ１０２のインターネット１００側のアドレス、ＶＰＮ接続で利用するポート番号が利用可能であるかのネットワーク環境情報である。環境情報収集部３０６は、ＩＧＤで規定されるGetExternalIPAddressアクションを利用して、ルータ１０２のインターネット１００側のアドレスを取得する。環境情報収集部３０６は、ＩＧＤで規定されるAddPortMappingアクション、及び、DeletePortMappingアクションを利用して、ＶＰＮ接続で利用するポート番号が利用可能であるかのチェックを行う。
【００７７】
ステップＳ５０２において、接続判断部３０１は、アプリケーション受信装置１０５に指定された、又は、予め設定された認証情報、自身の設定情報から、ＶＰＮ接続のサーバ側、或いは、クライアント側になれるかを判断する。即ちここでは、通信装置１０３ｂが通信において可能な役割を判定している。なお、ステップＳ５０２は、本発明の請求項７における判定手段の処理例である。接続判断部３０１がＡＣＴＩＶＥであると判断すると、ステップＳ５０３に進む。ＤＵＡＬであると判断されると、ステップＳ５０５に進む。ＰＡＳＳＩＶＥであると判断されると、ステップＳ５０８に進む。
【００７８】
ステップＳ５０３において、接続判断部３０１は、通信装置１０３ａから取得した接続提案情報に含まれるＶＰＮの接続方向を判断する。接続判断部３０１がＡＣＴＩＶＥであると判断すると、ステップＳ５０４に進む。接続判断部３０１がＤＵＡＬ又はＰＡＳＳＩＶＥであると判断すると、ステップＳ５０６に進む。
【００７９】
ステップＳ５０４において、接続判断部３０１は、エラーであると判断し、ステップＳ５１９に進む。ステップＳ５１９において、ＳＩＰ制御部３０３は、通信装置１０３ａにエラーが発生したことを知らせる５００メッセージを送信し、処理を終了する。
【００８０】
ステップＳ５０５において、接続判断部３０１は、通信装置１０３ａから取得した接続提案情報に含まれるＶＰＮの接続方向を判断する。接続判断部３０１がＤＵＡＬ又はＰＡＳＳＩＶＥであると判断すると、ステップＳ５０６に進む。一方、接続判断部３０１がＡＣＴＩＶＥであると判断すると、ステップＳ５０７に進む。
【００８１】
ステップＳ５０６において、接続提案情報生成部３０５は、ネットワーク情報、及び、アプリケーション受信装置１０５に指定された、又は、予め設定された認証情報、自身の設定情報といった環境情報から、ＡＣＴＩＶＥモードの接続提案返信情報を生成する。その後、ステップＳ５１２に進む。ステップＳ５０６における接続提案返信情報には、ＶＰＮ接続方向が含まれる。
【００８２】
ステップＳ５０７において、接続提案情報生成部３０５は、ネットワーク情報、及び、アプリケーション受信装置１０５に指定された、乃至、予め設定された認証情報、自身の設定情報といった環境情報から、ＰＡＳＳＩＶＥモードの接続提案返信情報を生成する。その後、ステップＳ５０９に進む。図１５は、ステップＳ５０６における接続提案返信情報である。なお、ステップＳ５０６、Ｓ５０７において通信装置１０３ｂの役割（クライアントか、サーバか）を決定する処理は、本発明の請求項７における決定手段の処理例である。
【００８３】
ステップＳ５０８において、接続判断部３０１は、通信装置１０３ａから取得した接続提案情報に含まれるＶＰＮの接続方向を判断する。接続判断部３０１がＤＵＡＬ又はＡＣＴＩＶＥであると判断すると、ステップＳ５０７に進む。一方、接続判断部３０１がＰＡＳＳＩＶＥであると判断すると、ステップＳ５０４に進む。
【００８４】
ステップＳ５０９において、接続判断部３０１は、通信装置１０３ｂがグローバルアドレスを持っているかの判断を行う。接続判断部３０１がグローバルアドレスを持つと判断すると、ステップＳ５１１に進む。一方、接続判断部３０１がグローバルアドレスを持たないと判断すると、ステップＳ５１０に進む。
【００８５】
ステップＳ５１０において、接続判断部３０１は、ステップＳ５０１で取得したネットワーク情報から、ルータ１０２のインターネット１００側のアドレスがグローバルアドレスであり、ＶＰＮ接続で利用するポート番号が利用可能であるか否かを判断する。ルータ１０２のインターネット１００側のアドレスがグローバルアドレスであり、ＶＰＮ接続で利用するポート番号が利用可能である場合、ステップＳ５１１に進む。一方、ルータ１０２のインターネット１００側のアドレスがグローバルアドレスでない、又は、ＶＰＮ接続で利用するポート番号が利用不可能である場合、ステップＳ５０４に進む。
【００８６】
ステップＳ５１１において、ＶＰＮ制御部３０２は、ＩＧＤを用いてルータ１０２のポートマッピングを追加した後、ＶＰＮの待ち受けを開始し、ステップＳ５１２に進む。
【００８７】
ステップＳ５１２において、ＳＤＰ処理部３０４は、１８０メッセージのＳＤＰに接続提案返信情報を付与する。その後、ＳＩＰ制御部３０３は、通信装置１０３ａに暫定応答である１８０メッセージを送信し、ステップＳ５１３に進む。なお、１８０メッセージは、本発明の返信情報の適用例となる構成である。
【００８８】
ステップＳ５１３において、ＶＰＮ制御部３０２は、ＶＰＮに対するフィルタの設定を行い、ステップＳ５１４に進む。なお、ステップＳ５１３は、本発明の請求項１０における設定手段の処理例である。
【００８９】
ステップＳ５１４において、接続判断部３０１は、１８０メッセージのＳＤＰに付与した接続提案返信情報のＶＰＮの接続方向を判断する。接続判断部３０１がＡＣＴＩＶＥであると判断すると、ステップＳ５１５に進む。一方、接続判断部３０１がＰＡＳＳＩＶＥであると判断すると、ステップＳ５１７に進む。
【００９０】
ステップＳ５１５において、ＶＰＮ制御部３０２は、通信装置１０３ａにＶＰＮ接続の開始を行い、ステップＳ５１６に進む。ステップＳ５１６において、ＳＩＰ制御部３０３は、通信装置１０３ａに応答である２００メッセージを送信し、ステップＳ５１８に進む。
【００９１】
ステップＳ５１７において、ＶＰＮ制御部３０２は、通信装置１０３ａにＶＰＮ接続の受け付けを行い、ステップＳ５１６に進む。
【００９２】
ステップＳ５１８において、ＶＰＮ制御部３０２は、ＶＰＮのフィルタを解除し、ＶＰＮを利用可能な状態にし、処理を終了する。
【００９３】
図６は、通信装置１０３ａにおける通信終了処理の流れを示すフローチャートである。通信装置１０３ａは、ＬＡＮ１０６ａを介してアプリケーション送信装置１０４からのＶＰＮ切断要求を受け付け、ＶＰＮを切断する。
【００９４】
接続判断部３０１がアプリケーション送信装置１０４からのＶＰＮ接続の切断の要求を受け付けたと判断すると、ステップＳ６００からの処理が開始される。
【００９５】
ステップＳ６００において、ＶＰＮ制御部３０２は、通信装置１０３ｂとのＶＰＮの切断を行い、ステップＳ６０１に進む。ステップＳ６０１において、ＳＩＰ制御部３０３は、通信装置１０３ｂに終了を表すＢＹＥメッセージを送信し、ステップＳ６０２に進む。ステップＳ６０２において、ＳＩＰ制御部３０３は、通信装置１０３ｂから終了の受領を表す２００メッセージを受信すると、ステップＳ６０３に進む。
【００９６】
ステップＳ６０３において、ＳＩＰ制御部３０３は、一定時間以内に２００メッセージを受信したかの判断を行う。一定時間以内に２００メッセージを受信した場合、ステップＳ６０５に進む。一方、一定時間以内に２００メッセージを受信しなかった場合、ステップＳ６０４に進む。ステップＳ６０４において、接続判断部３０１は、エラーが発生したと判断し、処理を終了する。
【００９７】
ステップＳ６０５において、接続判断部３０１は、通信装置１０３ａにおけるＶＰＮの接続方向の判断を行う。ＰＡＳＳＩＶＥであると判断されると、ステップＳ６０６に進む。一方、ＡＣＴＩＶＥであると判断されると、処理を終了する。
【００９８】
ステップＳ６０６において、ＶＰＮ制御部３０２は、ＶＰＮサーバが同一のポート番号等を利用する他のチャネルを持つか否かの判断を行う。他のチャネルがあると判断されると、ステップＳ６０７に進む。一方、他のチャネルがないと判断されると、ステップＳ６０８に進む。
【００９９】
ステップＳ６０７において、ＶＰＮ制御部３０２は、現在の接続数などの変更を行い、処理を終了する。ステップＳ６０８において、ＶＰＮ制御部３０２は、ＶＰＮの待ち受けを終了し、ステップＳ６０９に進む。
【０１００】
ステップＳ６０９において、ＶＰＮ制御部３０２は、通信装置１０３ａがグローバルアドレスを持たない場合、ＩＧＤを用いてルータ１０１のポートマッピングを削除し、処理を終了する。
【０１０１】
図７は、通信装置１０３ｂにおける通信終了処理の流れを示すフローチャートである。通信装置１０３ｂは、ＬＡＮ１０６ｂを介して通信装置１０３ａからのＶＰＮ切断要求を受け付け、ＶＰＮを切断する。
【０１０２】
ステップＳ７００において、ＶＰＮ制御部３０２は、通信装置１０３ａからＶＰＮの切断が行われると、ステップＳ７０１に進む。ステップＳ７０１において、ＳＩＰ制御部３０３は、通信装置１０３ａから終了を表すＢＹＥメッセージを受信し、ステップＳ７０２に進む。
【０１０３】
ステップＳ７０２において、ＳＩＰ制御部３０３は、通信装置１０３ａに終了の受領を表す２００メッセージを送信すると、ステップＳ７０３に進む。ステップＳ７０３において、接続判断部３０１は、通信装置１０３ｂにおけるＶＰＮの接続方向の判断を行う。ＰＡＳＳＩＶＥであると判断されると、ステップＳ７０４に進む。一方、ＡＣＴＩＶＥであると判断されると、処理を終了する。
【０１０４】
ステップＳ７０４において、ＶＰＮ制御部３０２は、ＶＰＮサーバが同一のポート番号等を利用する他のチャネルを持つか否かの判断を行う。他のチャネルがあると判断されると、ステップＳ７０５に進む。一方、他のチャネルがないと判断されると、ステップＳ５０６に進む。
【０１０５】
ステップＳ７０５において、ＶＰＮ制御部３０２は、現在の接続数などの変更を行い、処理を終了する。
【０１０６】
ステップＳ７０６において、ＶＰＮ制御部３０２は、ＶＰＮの待ち受けを終了し、ステップＳ７０７に進む。ステップＳ７０７において、ＶＰＮ制御部３０２は、通信装置１０３ｂがグローバルアドレスを持たない場合、ＩＧＤを用いてルータ１０２のポートマッピングを削除し、処理を終了する。
【０１０７】
本実施形態では、通信装置１０３ａから切断をしたが、これに限らず、通信装置１０３ｂからも同様に切断できることはいうまでもない。
【０１０８】
本実施形態では、通信相手と環境情報から生成した接続提案情報と接続提案返信情報を交換することによって、通信の接続方向（どちらがサーバの役割、及び、クライアントの役割になるか）を決定し、通信を開始できる。
【０１０９】
更に、通信相手の状態が変化し、サーバの役割が維持できなくなった場合にも、同じ接続方向から通信を開始することができるようになる。
【０１１０】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【０１１１】
１０１、１０２：ルータ、１０３ａ、１０３ｂ：通信装置、１０４：アプリケーション送信装置、１０５：アプリケーション受信装置、１０６ａ、１０６ｂ：ＬＡＮ、３０１：接続判断部、３０２：ＶＰＮ制御部、３０３：ＳＩＰ制御部、３０４：ＳＤＰ処理部、３０５：接続提案情報生成部、３０６：環境情報収集部
【図１】
2011035665.tif 000003
【図２】
2011035665.tif 000004
【図３】
2011035665.tif 000005
【図４】
2011035665.tif 000006
【図５】
2011035665.tif 000007
【図６】
2011035665.tif 000008
【図７】
2011035665.tif 000009
【図８】
2011035665.tif 000010
【図９】
2011035665.tif 000011