(57)【要約】【課題】ルータのＮＡＴ特性を、１つのＩＰアドレスを有する１台のサーバ１台のみと通信することによって調査することができ、調査されたＮＡＴ特性を利用して、効率的にＰ２Ｐ通信路の確立を行う通信装置を提供する。【解決手段】端末１００は、サーバ００１の複数のポートが宛先ポートに設定された複数のポート番号調査要求パケットを送信する。端末１００は、サーバ００１から受信したポート番号調査応答パケットを参照して、ポート番号調査要求パケットの各々にルータ１０１によるアドレス変換後の複数のポート番号を取得する。端末１００は、取得したアドレス変換後のポート番号に基づいて、ルータ１０１のＮＡＴ特性を判別する。端末１００及び２００は、判断されたＮＡＴ特性を利用することによって、効率的にＰ２Ｐ通信路を確立する。【選択図】図１
2006295909.tif 000002
【特許請求の範囲】
【請求項１】
ＮＡＴ（ネットワークアドレス変換）機能を有する第１の中継装置を介してサーバに接続される通信装置であって、
発信元ポート番号が同一であり、かつ、宛先ポート番号が相違する少なくとも２つのアドレス情報調査要求パケットを前記サーバに送信する第１の送信処理と、発信元ポート番号が前記第１の送信処理で使用した発信元ポート番号とは異なる少なくとも１つのアドレス情報調査要求パケットを前記サーバに送信する第２の送信処理とを、任意の順序で実行するアドレス情報調査要求送信部と、
前記第１及び第２の送信処理の間に、前記サーバとは異なる宛先に、発信元ポート番号が前記第１及び第２の送信処理において使用したいずれかの発信元ポート番号と同一である通信準備パケットを送信する通信準備要求送信部と、
前記第１の中継装置のＮＡＴ機能によって、前記アドレス情報調査要求パケットの発信元ポートアドレスから変換された中継ポート番号をデータ部に含む少なくとも３つのアドレス情報パケットを、前記サーバから受信するアドレス情報受信部と、
前記受信したアドレス情報パケットに含まれる中継ポート番号に基づいて、前記第１の中継装置のＮＡＴ特性を判断する中継特性判断部とを備える、通信装置。
【請求項２】
前記アドレス情報調査要求送信部は、
前記第１の送信処理において、
宛先ポート番号に前記サーバの第１のポート番号が設定され、かつ、発信元ポート番号に第１のローカルポート番号が設定された第１のアドレス情報調査要求パケットと、
宛先ポート番号に前記第１のポート番号とは異なる第２のポート番号が設定され、かつ、発信元ポート番号に前記第１のローカルポート番号が設定された第２のアドレス情報調査要求パケットとを送信し、
前記第２の送信処理において、
宛先ポート番号に前記第１のポート番号が設定され、かつ、発信元ポート番号に前記第１のローカルポート番号とは異なる第２のローカルポート番号が設定された第３のアドレス情報調査要求パケットとを送信し、
前記アドレス情報受信部は、
前記第１のアドレス情報調査要求パケットに応答して返送され、第１の中継ポート番号を含む第１のアドレス情報パケットと、
前記第２のアドレス情報調査要求パケットに応答して返送され、第２の中継ポート番号を含む第２のアドレス情報パケットと、
前記第３のアドレス情報調査要求パケットに応答して返送され、第３の中継ポート番号を含む第３のアドレス情報パケットとを受信し、
前記中継特性判断部は、前記第１〜第３の中継ポート番号の少なくとも２つに基づいて、前記第１の中継装置のＮＡＴ特性を判断することを特徴とする、請求項１に記載の通信装置。
【請求項３】
前記サーバには、ＮＡＴ機能を有する第２の中継装置を介して、接続先通信装置が接続されており、
前記通信装置は、
前記判断されたＮＡＴ特性を示す情報を含む第１の中継情報パケットを前記サーバに送信する中継情報送信部と、
前記第２の中継装置のＮＡＴ特性を示す情報を含む第２の中継情報パケットを、前記サーバから受信する中継情報パケット受信部と、
前記接続先通信装置にピア・ツー・ピア通信の開始を要求するために、前記第１及び第２の中継装置のＮＡＴ特性に基づいて、前記接続先通信装置に開始要求パケットを送信する通信制御部とを更に備える、請求項２に記載の通信装置。
【請求項４】
前記中継情報送信部は、前記中継特性判断部が前記第１及び第２の中継ポート番号が不一致であると判断した場合に、前記第３の中継ポート番号と、前記第１及び第２の中継ポート番号の差分値をデータ部に含む前記第１の中継情報パケットを送信することを特徴とする、請求項３に記載の通信装置。
【請求項５】
前記中継情報送信部は、前記中継特性判断部が、前記第１及び第２の中継ポート番号が同じ値であると判断し、かつ、前記第３の中継ポート番号と前記同じ値との差分値が１であると判断した場合に、前記第２の中継ポート番号をデータ部に含む前記第１の中継情報パケットを送信することを特徴とする、請求項３に記載の通信装置。
【請求項６】
前記中継情報送信部は、前記中継特性判断部が、前記第１及び第２の中継ポート番号が同じ値であると判断し、かつ、前記第３の中継ポート番号と前記同じ値との差分値が１より大きいと判断した場合に、前記第３の中継ポート番号をデータ部に含む前記第１の中継情報パケットを送信することを特徴とする、請求項３に記載の通信装置。
【請求項７】
前記中継情報送信部は、前記中継特性判断部が、前記第１の中継ポート番号及び前記第１のローカルポート番号が一致すると判断した場合に、第４のローカルポート番号をデータ部に含む前記第１の中継情報パケットを送信することを特徴とする、請求項３に記載の通信装置。
【請求項８】
前記中継情報送信部は、前記判断されたＮＡＴ特性を特定する情報をデータ部に含む前記第１の中継情報パケットを送信することを特徴とする、請求項３に記載の通信装置。
【請求項９】
前記第２の中継情報パケットは、前記第２の中継装置のＮＡＴ特性を特定する情報と、前記サーバから通知された第４〜第６の中継ポート番号及び第５のローカルポート番号のうち少なくとも１つとをデータ部に含み、
前記通信制御部は、前記第２の中継情報パケットに含まれる情報に基づいて、予め定められた複数の接続シーケンスの中から１つを選択することを特徴とする、請求項３に記載の通信装置。
【請求項１０】
前記第２の中継情報パケットは、前記第４及び第５の中継ポート番号が一致し、かつ、前記第４及び第５の中継ポート番号の差分値が１であることを示す情報と、前記第５の中継ポート番号とをデータ部に含み、
前記通信制御部は、発信元ポート番号に前記第１のローカルポート番号が設定され、かつ、宛先ポート番号に前記第５の中継ポート番号が設定された開始要求パケットを送信することを特徴とする、請求項９に記載の通信装置。
【請求項１１】
前記第２の中継情報パケットは、前記第４及び第５の中継ポート番号が一致し、かつ、前記第４及び第５の中継ポート番号との差分値が１より大きいことを示す情報と、前記第５及び第６の中継ポート番号とをデータ部に含み、
前記通信制御部は、発信元ポート番号に前記第１のローカルポート番号が設定され、かつ、前記第５の中継ポート番号以上で前記第６の中継ポート番号未満である範囲の値が宛先ポート番号に設定された複数の開始要求パケットを前記接続先通信装置に送信することを特徴とする、請求項９に記載の通信装置。
【請求項１２】
前記第２の中継情報パケットは、前記第２の中継装置が、前記接続先通信装置のローカルポート番号と同一のポート番号を使用することを示す情報と、前記第５のローカルポート番号とをデータ部に含み、
前記通信制御部は、発信元ポート番号に前記第１のローカルポート番号が設定され、かつ、宛先ポート番号に前記第５のローカルポート番号が設定された開始要求パケットを送信することを特徴とする、請求項９に記載の通信装置。
【請求項１３】
前記第２の中継情報パケットは、前記第４及び第５の中継ポート番号が不一致であることを示す情報と、前記第６の中継ポート番号と、前記第４及び第５の中継ポート番号の差分値とをデータ部に含み、
前記通信制御部は、前記中継特性判断部が、前記第１及び第２の中継ポート番号が同じ値であると判断し、かつ、前記第３の中継ポート番号と前記同じ値との差分値が１であると判断した場合に、発信元ポート番号に前記第１のローカルポート番号が設定され、かつ、宛先ポート番号に、前記第６の中継ポート番号と、前記第４及び第５の中継ポート番号の差分値とを加算した値が設定された開始要求パケットを送信することを特徴とする、請求項９に記載の通信装置。
【請求項１４】
前記第２の中継情報パケットは、前記第４及び第５の中継ポート番号が不一致であることを示す情報と、前記第６の中継ポート番号と、前記第４及び第５の中継ポート番号の差分値とをデータ部に含み、
前記通信制御部は、前記中継特性判断部が前記第１及び第２の中継ポート番号が同じ値であると判断し、かつ、前記第３の中継ポート番号と前記同じ値との差分値が１より大きいと判断した場合に、発信元ポート番号に前記第１のローカルポート番号が設定され、かつ、宛先ポート番号に、前記第６の中継ポート番号が前記第４及び第５の中継ポート番号の差分値ずつインクリメントされた値がそれぞれ設定された複数の開始要求パケットを送信することを特徴とする、請求項９に記載の通信装置。
【請求項１５】
前記第２の中継情報パケットは、前記第４及び第５の中継ポート番号が不一致であることを示す情報と、前記第６の中継ポート番号と、前記第４及び第５の中継ポート番号の差分値とをデータ部に含み、
前記通信制御部は、前記第１及び第２の中継ポート番号が不一致であると判断した場合に、発信元ポート番号に前記第１のローカルポート番号が設定され、かつ、宛先ポート番号に、前記第６の中継ポート番号と、前記第４及び第５の中継ポート番号の差分値とを加算した値が設定された開始要求パケットを送信することを特徴とする、請求項８に記載の通信装置。
【請求項１６】
前記通信制御部は、前記第１の中継装置のＮＡＴ特性に基づいて、発信元ポート番号に前記第４のローカルポート番号が設定された開始要求パケットを送信することを特徴とする、請求項７に記載の通信装置。
【請求項１７】
前記通信準備要求送信部は、前記通信準備パケットが前記第１の中継装置に到達し、かつ、前記第２の中継装置には到達しないように、前記通信準備パケットのヘッダに含まれるＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）の値を調整することを特徴とする、請求項３に記載の通信装置。
【請求項１８】
前記中継特性判断部は、前記第１及び第２の中継装置の各々のＮＡＴ特性を保持し、
前記通信制御部は、前記接続先通信装置と次に通信する際に、前記保持されているＮＡＴ特性に基づいて、前記接続開始要求パケットを前記接続先通信装置に送信することを特徴とする、請求項３に記載の通信装置。
【請求項１９】
ＮＡＴ（ネットワークアドレス変換）機能を有する第１の中継装置を介してサーバに接続される通信端末が通信するための通信方法であって、
発信元ポート番号が同一であり、かつ、宛先ポート番号が相違する少なくとも２つのアドレス情報調査要求パケットを前記サーバに送信する第１の送信処理と、発信元ポート番号が前記第１の送信処理で使用した発信元ポート番号とは異なる少なくとも１つのアドレス情報調査要求パケットを前記サーバに送信する第２の送信処理とを、任意の順序で実行し、
前記第１及び第２の送信処理の間に、前記サーバとは異なる宛先に、発信元ポート番号が前記第１及び第２の送信処理において使用したいずれかの発信元ポート番号と同一である通信準備パケットを送信し、
前記第１の中継装置のＮＡＴ機能によって、前記アドレス情報調査要求パケットの発信元ポートアドレスから変換された中継ポート番号をデータ部に含む少なくとも３つのアドレス情報パケットを、前記サーバから受信し、
前記受信したアドレス情報パケットに含まれる中継ポート番号に基づいて、前記第１の中継装置のＮＡＴ特性を判断する、通信方法。
【請求項２０】
通信システムであって、
サーバと、
ＮＡＴ（ネットワークアドレス変換）機能を有する第１の中継装置と、
ＮＡＴ機能を有する第２の中継装置と、
前記第１の中継装置を介して前記サーバに接続される第１の通信装置と、
前記第２の中継装置を介して前記サーバに接続される第２の通信装置とを備え、
前記第１及び第２の通信装置の各々は、
発信元ポート番号が同一であり、かつ、宛先ポート番号が相違する少なくとも２つのアドレス情報調査要求パケットを前記サーバに送信する第１の送信処理と、発信元ポート番号が前記第１の送信処理で使用した発信元ポート番号とは異なる少なくとも１つのアドレス調査情報要求パケットを前記サーバに送信する第２の送信処理とを、任意の順序で実行するアドレス情報調査要求送信部と、
前記第１及び第２の送信処理の間に、前記サーバとは異なる宛先に、発信元ポート番号が前記第１及び第２の送信処理において使用したいずれかの発信元ポート番号と同一である通信準備パケットを送信する通信準備要求送信部と、
各々が接続されている中継装置のＮＡＴ機能によって、前記アドレス情報調査要求パケットの発信元ポートアドレスから変換された中継ポート番号をデータ部に含む少なくとも３つのアドレス情報パケットを、前記サーバから受信するアドレス情報受信部と、
前記受信したアドレス情報パケットに含まれる中継ポート番号に基づいて、各々が接続されている中継装置のＮＡＴ特性を判断する中継特性判断部とを含み、
前記サーバは、
前記第１及び第２の通信装置の各々から送信された前記アドレス情報調査要求パケットに含まれる前記中継ポート番号を取り出すアドレス情報調査部と、
前記取り出された中継ポート番号をデータ部に含むアドレス情報調査要求応答パケットを送信するアドレス情報送信部とを含む、通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信システム及び通信方法に関し、より特定的には、異なる２つのプライベートネットワーク間にＰ２Ｐ通信路を確立することができる通信装置、通信システム及び通信方法に関する物である。
【背景技術】
【０００２】
一般に、ネットワークに接続される通信端末を識別するために、通信端末にはＩＰアドレスが付される。接続されるネットワーク全体で一意に決定され、一対一の通信（ピア・ツー・ピア通信：以下、「Ｐ２Ｐ通信」という）を可能とするＩＰアドレスを、グローバルＩＰアドレスという。また、特定のネットワーク内だけで一意に決定され、他のネットワークとのＰ２Ｐ通信に直接使用することができないＩＰアドレスを、ローカルＩＰアドレスという。ローカルＩＰアドレスによって通信端末が相互に識別されるネットワークを、プライベートネットワークという。
【０００３】
プライベートネットワークに接続される通信端末（ローカルＩＰアドレスを有する通信端末）が、グローバルネットワークに接続される通信機器（グローバルＩＰアドレスを有する通信端末）と通信するためには、一般に、プライベートネットワークとグローバルネットワークとの間に、ネットワークアドレス変換（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ：以下、「ＮＡＴ」という）の機能、あるいは、ネットワークアドレスポート変換（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｐｏｒｔ  Ｔｒａｎｓｌａｔｉｏｎ：以下、「ＮＡＰＴ」という）機能を有する通信機器（ルータ）が接続される。尚、以降においては、説明の簡略化のために、ＮＡＴとＮＡＰＴとを併せて「ＮＡＴ」という。
【０００４】
ところが、ルータが有するＮＡＴ機能によって、プライベートネットワークと、グローバルネットワークとの間を単にルータ等の通信機器によって中継するだけでは、それぞれ異なるプライベートネットワークに接続される２つの通信機器は、Ｐ２Ｐ通信のためのパケットを交換することができない。
【０００５】
そこで、各々がルータを介して異なるプライベートネットワークに接続されている２つの端末が、ルータのＮＡＴを越えてＰ２Ｐ通信路を確立するための手法として、ＳＴＵＮ（Ｓｉｍｐｌｅ  Ｔｒａｖｅｒｓａｌ  ＵＤＰ  ｔｈｒｏｕｇｈ  ＮＡＴ：ＲＦＣ３４８９）を利用する方法が知られている。尚、以下の説明においては、「パケット」とは、「ＵＤＰパケット」のことをいう。
【０００６】
まず、ＳＴＵＮを利用するＰ２Ｐ通信路確立手法の説明に先立ち、図１８Ａ〜図１８Ｅを参照しながら、ＮＡＴの種類について説明する。尚、プライベートネットワークは、家庭内、すなわち宅内のネットワークとして構築される場合に限らず、企業内のネットワークとして構築される場合もある。以下においては、説明の便宜上、プライベートネットワークが宅内ネットワークである場合を想定するが、下記の説明は、企業において構築される大規模なプライベートネットワークにも同様に当てはまる。また、ある宅内のプライベートネットワークから見た場合に、当該宅内ネットワークとは異なるネットワークのことを、宅外ネットワーク、あるいは、外部ネットワークという。更に、説明の便宜のために、ＩＰアドレスＩＰとポート番号Ｐとの組み合わせを、（ＩＰ、Ｐ）と表現する。
【０００７】
図１８Ａは、Ｆｕｌｌ  Ｃｏｎｅ  ＮＡＴと呼ばれるＮＡＴを説明するための図である。
【０００８】
Ｆｕｌｌ  Ｃｏｎｅ  ＮＡＴ特性を有するルータは、あるプライベートアドレスを有する宅内端末の特定のポート番号からある宅外端末へと送信されるパケットに対して、常に同一のポート番号を割り当てる。例えば、ルータは、宅内端末Ａ（ＩＰａ、Ｐａ）が送信したパケットに常にポート番号［Ｐｂ］を割り当て、当該パケットを外部ネットワークに接続される宅外端末Ｃへと転送する。また、Ｆｕｌｌ  Ｃｏｎｅ  ＮＡＴ特性を有するルータは、外部ネットワークに接続された宅外端末が（ＩＰｂ、Ｐｂ）宛に送信した全てのパケットを、宅内端末（ＩＰａ、Ｐａ）へと転送する。したがって、ルータは、宅外端末Ｄ（ＩＰｄ、Ｐｄ）が（ＩＰｂ、Ｐｂ）宛に送信したパケットも、宅内端末Ａ（ＩＰａ、Ｐａ）に転送する。
【０００９】
図１８Ｂは、Ｒｅｓｔｒｉｃｔｅｄ  Ｃｏｎｅ  ＮＡＴ（以下、「Ｒ  ＮＡＴ」という）と呼ばれるＮＡＴを説明するための図である。
【００１０】
Ｒ  ＮＡＴ特性を有するルータは、ある宅内端末Ａ（ＩＰａ、Ｐａ）が宅外ネットワークに向けて送信したパケットに対して、常に同一のポート番号［Ｐｂ］を割り当てる。ただし、Ｒ  ＮＡＴ特性を有するルータは、宅外端末Ａが送信したパケットの送信先である宅外端末Ｃ（ＩＰアドレスＩＰｃを有する）が（ＩＰｂ、Ｐｂ）宛てに送信したパケットのみを宅内端末Ａ（ＩＰａ、Ｐａ）へと転送する点で、Ｆｕｌｌ  Ｃｏｎｅ  ＮＡＴ特性を有するルータとは異なっている。したがって、ルータは、宅内端末Ａが送信したパケットの宛先でない宅外端末Ｄが、（ＩＰｂ、Ｐｂ）へと送信したパケットを宅内端末Ａへと転送しない。尚、Ｒ  ＮＡＴ特性を有するルータは、受信したパケットの発信元ＩＰアドレスが［ＩＰｃ］であれば、全ての発信元ポート番号のパケットを宅内端末Ａへと転送する。したがって、ルータは、宅外端末Ｃのポート［Ｐｃ２］から（ＩＰｂ、Ｐｂ）へと送信したパケットをも宅内端末Ａへと転送する。
【００１１】
図１８Ｃは、Ｐｏｒｔ  Ｒｅｓｔｒｉｃｔｅｄ  Ｃｏｎｅ  ＮＡＴ（以下、「ＰＲ  ＮＡＴ」という）と呼ばれるＮＡＴ特性を説明するための図である。
【００１２】
ＰＲ  ＮＡＴ特性を有するルータは、ある宅内端末Ａ（ＩＰａ、Ｐａ）が宅外ネットワークに向けて送信したパケットに対して、常に同一のポート番号［Ｐｂ］を割り当てる。ただし、ＰＲ  ＮＡＴ特性を有するルータは、宅内端末Ａが発信したパケットの宛先（ＩＰｃ１、Ｐｃ１）から（ＩＰｂ、Ｐｂ）へと送信されたパケットのみを宅内端末Ａ（ＩＰａ、Ｐａ）へと転送する点で、Ｒ  ＮＡＴ特性を有するルータとは相違する。したがって、ルータは、宅外端末Ｄの発信元（ＩＰｄ、Ｐｄ）から発信されたパケットのみならず、宅外端末の発信元（ＩＰｃ２、Ｐｃ２）から送信されたパケットをも破棄する。
【００１３】
以下においては、上記のＦｕｌｌ  Ｃｏｎｅ  ＮＡＴ、Ｒ  ＮＡＴ、ＰＲ  ＮＡＴを総称して「Ｃｏｎｅ  ＮＡＴ」という。
【００１４】
図１８Ｄは、Ａｄｒｅｓｓ  Ｓｅｎｓｉｔｉｖｅ  Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ（以下、「ＡＳ  ＮＡＴ」という）と呼ばれるＮＡＴを説明するための図である。
【００１５】
ＡＳ  ＮＡＴ特性を有するルータは、宅内端末Ａが発信したパケットの宛先ＩＰアドレスの各々に異なるポート番号を割り当てる。例えば、宅内端末Ａ（ＩＰａ、Ｐａ）から宅外端末Ｃ（ＩＰｃ、Ｐｃ）へと送信されたパケットには、ポート番号［Ｐｂ１］を割り当て、宅内端末Ａ（ＩＰａ、Ｐａ）から、宅外端末とは異なるＩＰアドレスを有する宅外端末Ｄ（ＩＰｄ、Ｐｄ）へと送信されたパケットには、ポート番号［Ｐｂ２］を割り当てる。また、ＡＳ  ＮＡＴ特性を有するルータは、あるポート番号に割り当てられた宅外端末から送信されたパケットのみを宅内端末Ａ（ＩＰａ、Ｐａ）へ転送し、当該ポート番号に割り当てられていない宅外端末から送信されたパケットを全て破棄する。例えば、ルータは、ＩＰアドレス［ＩＰｃ］を有する宅外端末Ｃから、（ＩＰｂ、Ｐｂ）宛に送信されたパケットを宅内端末Ａ（ＩＰａ、Ｐａ）へと転送するが、ＩＰアドレス［ＩＰｄ］を有する宅外端末Ｄから、（ＩＰｂ、Ｐｂ）宛に送信されたパケットを破棄する。尚、Ｒ  ＮＡＴ特性を有するルータは、（ＩＰｂ、Ｐｂ）宛に送信されたパケットの発信元ＩＰアドレスが［ＩＰｃ］であれば、全ての発信元ポート番号を有するパケットを宅内端末Ａへと転送する。
【００１６】
図１８Ｅは、Ｐｏｒｔ  Ｓｅｎｓｉｔｉｖｅ  Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ（以下、「ＰＳ  ＮＡＴ」という）と呼ばれるＮＡＴを説明するための図である。
【００１７】
ＰＳ  ＮＡＴ特性を有するルータは、宅内端末Ａが送信したパケットの宛先ＩＰアドレス及び宛先ポート番号の組み合わせの各々に、異なるポート番号を割り当て、当該受信パケットをネットワークへと送出する。例えば、ルータは、宅内端末Ａ（ＩＰａ、Ｐａ）から発信されたパケットの宛先（ＩＰｃ、Ｐｃ０）には、ポート番号［Ｐｂ０］を割り当て、宛先（ＩＰｃ、Ｐｃ１）には、ポート番号［Ｐｂ１］を割り当て、宛先（ＩＰｃ、Ｐｃ２）には、ポート番号［Ｐｂ２］を割り当てる。また、ルータは、あるポート番号に割り当てられた宅外端末から送信されたパケットを宅内端末Ａへと転送するが、当該ポート番号に割り当てた宅外端末以外から送信されたパケットを全て破棄する。したがって、ルータは、発信元（ＩＰｃ、Ｐｃ１）からポート番号［Ｐｂ１］を宛先として送信されたパケットを宅内端末Ａへと転送するが、発信元（ＩＰｃ、Ｐｃ２）及び発信元（ＩＰｄ、Ｐｄ１）からポート番号［Ｐｂ１］へと送信されたパケットを全て破棄する。
【００１８】
以下においては、上記のＡＳ  ＮＡＴ及びＰＳ  ＮＡＴを総称して、「Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ」という。
【００１９】
また、上述したＣｏｎｅ  ＮＡＴやＳｙｍｍｅｔｒｉｃ  ＮＡＴとは別に、宅内端末の発信元ポート番号と同じポート番号を用いてＮＡＴの設定を行う性質を有するルータが知られている。
【００２０】
図１９Ａは、Ｐｏｒｔ  Ｒｅｕｓｅ特性の概略を説明するための図である。
【００２１】
図１９Ａに示されるように、ルータは、宅内端末Ａのポート番号［Ｐａ］を発信元とするパケットにポート番号［Ｐａ］を割り当て、宅内端末Ａのポート番号［Ｐｂ］を発信元とするパケットにポート番号［Ｐｂ］を割り当て、宅内端末Ａのポート番号［Ｐｃ］を発信元とするパケットにポート番号［Ｐｃ］を割り当てる。このように、通信装置が、ある発信元ポート番号を含むパケットに、当該発信元ポート番号と同一のポート番号を割り当てる特性のことを、「Ｐｏｒｔ  Ｒｅｕｓｅ」という。
【００２２】
Ｐｏｒｔ  Ｒｅｕｓｅは、上記のＮＡＴ特性とは異なる特性である。したがって、Ｐｏｒｔ  Ｒｅｕｓｅ特性を有する通信装置は、必ず上述のＮＡＴ特性のいずれかを備える。
【００２３】
図１９Ｂは、Ｐｏｒｔ  Ｒｅｕｓｅ特性を有するルータの機能を説明するための図である。
【００２４】
図１９Ｂに示されるルータが「Ｐｏｒｔ  Ｒｅｕｓｅ特性及びＦｕｌｌ  Ｃｏｎｅ  ＮＡＴ特性」を備える場合、発信元ＩＰアドレス及び発信元ポート番号に（ＩＰａ、Ｐａ）が設定されたパケットに対して、ルータは、常にポート番号［Ｐａ］を割り当て、当該パケットを外部ネットワークへと送出する。また、ルータは、外部ネットワークに接続された宅外端末が宛先（ＩＰｂ、Ｐａ）へと発信した全てのパケットを宅内端末Ａに転送する。
【００２５】
次に、ルータのＮＡＴを越えてＰ２Ｐ通信路を確立するために、ＳＴＵＮを利用する方法について説明する。
【００２６】
各々がルータを介して異なるプライベートネットワークに接続される２つの通信端末の間にＰ２Ｐ通信路を確立するためには、各端末は、パケットに、宛先ＩＰアドレスと宛先ポート番号とを設定することが必要である。しかしながら、上述のように、ルータが有するＮＡＴ特性に応じて、アドレス変換方法が異なるので、通信端末は、ルータのＮＡＴ特性を考慮した上で、パケットの宛先を設定する必要がある。
【００２７】
そこで、Ｐ２Ｐ通信路を確立するためには、まず、ＳＴＵＮに規定される方法に従って、通信端末が接続されているルータのＮＡＴ特性が調査される。より詳細には、ＳＴＵＮにおいては、通信端末は、異なるＩＰアドレスを有する２つのサーバの各々へとテスト用パケットを送信する。そして、ルータが当該テスト用パケットの各々に割り当てたポート番号が一致するか否かを判断することによって、ルータのＮＡＴ特性がＣｏｎｅ  ＮＡＴであるか、または、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴであるかが判断される。
【００２８】
以下、図２０Ａ〜図２０Ｂ及び図２１を参照しながら、ＳＴＵＮによるＮＡＴ特性の調査方法を説明する。
【００２９】
図２０Ａは、ＳＴＵＮ−ＴｅｓｔＩの概略を示す図である。
【００３０】
ＴｅｓｔＩにおいては、宅内端末Ａは、発信元が（ＩＰａ、Ｐａ）であるパケットを、サーバ１（ＩＰｃ、Ｐｃ１）へと送信する。サーバ１は、宅内端末Ａから発信されたパケットを参照して、発信元ポート番号に［Ｐｃ１］が設定され、かつ、宛先ポート番号にルータが割り当てた［Ｐｂ］が設定されたパケットを送信する。
【００３１】
図２０Ｂは、ＳＴＵＮ−ＴｅｓｔＩＩの概略を示す図である。
【００３２】
ＴｅｓｔＩＩにおいては、宅内端末Ａは、発信元を（ＩＰａ、Ｐａ）とし、宛先をサーバ１の（ＩＰｃ、Ｐｃ１）とするパケットを送信する。これに対して、サーバ２が、発信元に（ＩＰｄ、Ｐｄ１）が設定され、かつ、宛先ポート番号にルータが割り当てた［Ｐｂ］が設定されたパケットを送信する。
【００３３】
図２０Ｃは、ＳＴＵＮ−ＴｅｓｔＩＩＩの概略を示す図である。
【００３４】
ＴｅｓｔＩＩＩにおいては、宅内端末Ａは、発信元を（ＩＰａ、Ｐａ）とし、宛先をサーバ１の（ＩＰｃ、Ｐｃ１）とするパケットを送信する。サーバ１は、発信元ポート番号に［Ｐｃ１］とは異なる［Ｐｃ２］が設定され、かつ、宛先ポート番号にポート番号［Ｐｂ］が設定されたパケットを送信する。
【００３５】
図２１は、ＳＴＵＮによってＮＡＴ特性を調査するためのフローチャートである。
【００３６】
まず、宅内端末Ａは、上記のＴｅｓｔＩを実行する（ステップＳ２５０１）し、サーバ１から応答を受信したか否かを判断する（ステップＳ２５０２）。宅内端末Ａは、サーバ１からの応答を受信した場合には、ステップＳ２５０４に進み、それ以外の場合は、宅内端末Ａは、サーバ１とのＵＤＰ通信が不能であると判断する（ステップＳ２５０３）。
【００３７】
宅内端末Ａがサーバ１からの応答を受信した場合（ステップＳ２５０１でＹｅｓ）、宅内端末Ａは、受信した応答パケットに含まれるアドレス変換後のＩＰアドレス［ＩＰｂ］と、自身のＩＰアドレス［ＩＰａ］が一致するか否かを判断する（ステップＳ２５０４）。宅内端末Ａは、応答パケットに含まれるＩＰアドレス［ＩＰｂ］と、自身のＩＰアドレス［ＩＰａ］とが一致する場合には、ステップＳ２５０５に進み、それ以外の場合には、ステップＳ２９０９へ進む。ＩＰアドレス［ＩＰｂ］及び［ＩＰａ］が一致することは、宅内端末Ａがルータを介さずに外部ネットワークに接続されており、宅内端末Ａ及びサーバ１の間でＮＡＴが行われていないことを示す。
【００３８】
ステップＳ２５０４でＹｅｓである場合、宅内端末Ａは、ＴｅｓｔＩＩを実行する（ステップＳ２５０５）し、サーバ２からの応答を受信したか否かを判断する（ステップＳ２５０６）。宅内端末Ａは、サーバ２からの応答を受信した場合には（ステップＳ２５０６でＹｅｓ）、送信先端末（サーバ１）以外の通信端末からもパケットを受信することが可能、すなわち、ネットワークに対してオープンであると判断する（ステップＳ２５０８）。一方、宅内端末Ａは、サーバ２からの応答を受信しない場合（ステップＳ２５０６でＮｏ）、宅内端末Ａは、ＵＤＰファイアウォールによってパケットの送受信が制限されていると判断する（ステップＳ２５０７）。
【００３９】
ＴｅｓｔＩの結果、ＩＰアドレス［ＩＰｂ］及び［ＩＰａ］が一致しない場合には（ステップＳ２５０４でＮｏ）、宅内端末Ａは、ＴｅｓｔＩＩを実行し（ステップＳ２５０９）、パケットの宛先とは異なるサーバ２からの応答を受信したか否かを判断する（ステップＳ２５１０）。宅内端末Ａがサーバ２からの応答を受信した場合には（ステップＳ２５１０でＹｅｓ）、宅内端末Ａが接続されるルータは、Ｆｕｌｌ  Ｃｏｎｅ  ＮＡＴ特性を有すると判断する（ステップＳ２５１１）。一方、宅内端末Ａがサーバ２からの応答を受信しなかった場合には（ステップＳ２５１０でＮｏ）、宅内端末Ａは、サーバ２に対してＴｅｓｔＩを実行する（ステップＳ２５１２）。ここで、宅内端末Ａからの送信パケットにルータが割り当てるポート番号を［Ｐｂ’］とする。宅内端末Ａは、ステップＳ２５１２においてサーバ２から受信した応答パケットに含まれ、ＮＡＴによって設定されたＩＰアドレスとポート番号との組み合わせ（ＩＰｂ、Ｐｂ’）と、ステップＳ２５０１においてサーバ１から受信した応答パケットに含まれ、ＮＡＴによって設定されたＩＰアドレスとポート番号との組み合わせ（ＩＰｂ、Ｐｂ）とが一致するか否かを判断する（ステップＳ２５１３）。宅内端末Ａは、（ＩＰｂ、Ｐｂ’）が（ＩＰｂ、Ｐｂ）と一致すると判断した場合には（ステップＳ２５１３でＹｅｓ）、ステップＳ２５１５へ進む。宅内端末Ａは、（ＩＰｂ、Ｐｂ’）及び（ＩＰｂ、Ｐｂ）が一致しないと判断した場合には（ステップＳ２５１３でＮｏ）、自身が接続されるルータがＳｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有すると判断する（ステップＳ２５１４）。
【００４０】
ステップＳ２５１３においてＹｅｓである場合、宅内端末Ａは、ＴｅｓｔＩＩＩを実行し（ステップＳ２５１５）、サーバ１から応答を受信したか否かを判断する（ステップＳ２５１６）。宅内端末Ａは、サーバ１から応答を受信した場合（ステップＳ２５１６でＹｅｓ）、自身が接続されるルータがＲ  ＮＡＴ特性を有すると判断し（ステップＳ２５１７）、それ以外の場合には、自身が接続されるルータがＰＲ  ＮＡＴ特性を有すると判断する（ステップＳ２５１８）。
【００４１】
上述のように、ＳＴＵＮに規定された方法においては、図２１に示される処理フローに従い、図２０Ａ〜図２０Ｃに示される３種類のテストを実行することによって、ＮＡＴの特性が調査される。
【００４２】
また、ＳＴＵＮによってＮＡＴ特性を調査した結果、２つの通信端末が共にＣｏｎｅ  ＮＡＴ特性を有するルータに接続されている場合、更に当該２つの通信端末間にＰ２Ｐ通信路を確立する手法も知られている。以下、図２２を参照しながら、ＳＴＵＮを利用するＰ２Ｐ通信路確立手法について説明する。
【００４３】
図２２は、ＳＴＵＮを利用するＰ２Ｐ通信路確立方法を示すシーケンス図である。
【００４４】
まず、端末１は、ＩＰアドレス及びポート番号の登録を要求するためのＩＰ／ポート登録要求パケットを、ルータ１を介してサーバへ送信する（ステップＳ２０１）。ルータ１は、端末１から受信したパケットの発信元を（ＩＰＬ１、ＬＰ１）から（ＩＰＧ１、ＧＰ１）へとアドレス変換し、アドレス変換されたパケットをサーバ１へ送信する。サーバは、ルータ２から受信したパケットに含まれる発信元ＩＰアドレスＩＰＧ１及び発信元ポート番号ＧＰ１を登録する（ステップＳ２０２）。
【００４５】
同様に、端末２は、ＩＰ／ポート登録要求パケットを、ルータ２を介してサーバへ送信する（ステップＳ２０３）。ルータ２は、端末２から受信したパケットの発信元を（ＩＰＬ２、ＬＰ２）から（ＩＰＧ２、ＧＰ２）へとアドレス変換し、アドレス変換されたパケットをサーバ２へ送信する。サーバは、ルータ２から受信したパケットに含まれる発信元ＩＰアドレスＩＰＧ１及び発信元ポート番号ＧＰ１を登録する（ステップＳ２０４）。
【００４６】
次に、端末２は、端末１とＰ２Ｐ通信するために、端末１にアクセスするためのＩＰ／ポート取得要求をサーバへ送信する（ステップＳ２０５）。サーバは、端末２からのＩＰ／ポート取得要求に応答して、ルータ１が端末１の発信元（ＩＰＬ１、ＬＰ１）に割り当てたＩＰアドレス及びポート番号の組み合わせ（ＩＰＧ１、ＧＰ１）を含むＩＰ／ポート取得応答パケットを端末２へ返送する（ステップＳ２０６）。
【００４７】
端末２は、サーバから受信したパケットを参照して、端末１にアクセスするためのＩＰアドレス及びポート番号（ＩＰＧ１、ＧＰ１）を取得する。そこで、端末２は、（ＩＰＧ１、ＧＰ１）を宛先とするＰ２Ｐ開始要求パケットを送信する（ステップＳ２０７）。
【００４８】
ここで、端末２から送信されたＰ２Ｐ開始要求パケットへのルータ１の対応は、ルータ１が備えるＮＡＴ特性に応じて異なる。
【００４９】
まず、ルータ１がＦｕｌｌ  Ｃｏｎｅ  ＮＡＴ（図１８Ａ）を実行する場合、ルータ１が端末２から送信されたＰ２Ｐ要求パケットを端末１へと転送することによって、端末１と端末２との間にＰ２Ｐ通信路が確立する。
【００５０】
次に、ルータ１がＲ  ＮＡＴ（図１８Ｂ）またはＰＲ  ＮＡＴ（図１８Ｃ）を実行する場合、ルータ１は、端末２から送信されたＰ２Ｐ開始要求パケットを破棄する。したがって、当該Ｐ２Ｐ開始要求パケットは、端末１（ＩＰＬ１、ＬＰ１）へ転送されることはない。
【００５１】
ここで注目すべきは、Ｃｏｎｅ  ＮＡＴ特性を有するルータ２は、発信元に（ＩＰＬ２、ＬＰ２）が設定され、かつ、宛先に（ＩＰＧ１、ＧＰ１）が設定されたパケットをルータ１へと転送することによって、ルータ１からの応答パケットを受け付けることができるようにＮＡＴを設定する点である。すなわち、ルータ２がＦｕｌｌ  Ｃｏｎｅ  ＮＡＴを実行する場合には、ルータ２は、全ての宅外端末がルータ２（ＩＰＧ２、ＧＰ２）へと発信したパケットを端末２（ＩＰＬ２、ＬＰ２）に転送するようにＮＡＴを設定する。ルータ２がＲ  ＮＡＴ特性を有する場合には、ルータ２は、発信元ＩＰアドレスが［ＩＰＧ１］であるパケットを端末２（ＩＰＬ２、ＬＰ２）に転送するようにＮＡＴを設定する。ルータ２がＰＲ  ＮＡＴ特性を有する場合には、発信元ＩＰアドレス及び発信元ポート番号が（ＩＰＧ１、ＧＰ１）であるパケットを端末２（ＩＰＬ２、ＬＰ２）に転送するようにＮＡＴを設定する。この結果、次に、発信元ＩＰアドレス及び発信元ポート番号が（ＩＰＧ１、ＧＰ１）であるパケットをルータ２が受信すれば、ルータ２は、当該パケットを端末２に転送することができ、よって、端末１及び端末２の間にＰ２Ｐ通信路が確立される。
【００５２】
そこで、端末１は、端末２にアクセスするためのパケットを、ＩＰ／ポート取得要求としてサーバへ送信する（ステップＳ２０８）。サーバは、端末１からのＩＰ／ポート取得要求に応答して、ルータ２が端末１の発信元（ＩＰＬ１、ＬＰ１）に割り当てたＩＰアドレス及びポート番号（ＩＰＧ２、ＧＰ２）を含むパケットを、ＩＰ／ポート取得応答として端末２に返信する（ステップＳ２０９）。
【００５３】
端末１は、サーバから受信したＩＰ／ポート取得応答を参照して、端末２のＩＰアドレス及びポート番号（ＩＰＬ２、ＰＬ２）に割り当てられているルータ２のＩＰアドレス及びポート番号（ＩＰＧ２、ＧＰ２）を取得する。
【００５４】
次に、端末１は、発信元が（ＩＰＬ１、ＬＰ１）に設定されたＰ２Ｐ開始要求パケットを端末２へと送信する（ステップＳ２１０）。上述したように、この段階においては、ルータ２は、発信元ＩＰアドレス及び発信元ポート番号が（ＩＰＬ１、ＬＰ１）であるパケットを破棄することなく、端末２へと転送する。一方、ルータ１は、発信元に（ＩＰＬ１、ＬＰ１）が設定されたパケットを、ルータ２へと転送することによって、ルータ２からの応答パケットを受け付けることができるようにＮＡＴを設定することができる。すなわち、ルータ１がＲ  ＮＡＴを実行する場合には、ルータ１は、発信元ＩＰアドレスが［ＩＰＧ２］であるパケットを端末１（ＩＰＬ１、ＬＰ１）に転送するように設定する。ルータ１がＰＲ  ＮＡＴを実行する場合には、発信元ＩＰアドレス及び発信元ポート番号が（ＩＰＧ２、ＧＰ２）であるパケットを端末２（ＩＰＬ２、ＬＰ２）に転送するように設定する。
【００５５】
したがって、端末２が、端末１からのＰ２Ｐ開始要求パケットに応答して、Ｐ２Ｐ開始応答パケットを端末１に送信すると（ステップＳ２１１）、端末１及び端末２の間にＰ２Ｐ通信路が確立される。
【００５６】
上記のような手法によれば、異なるプライベートネットワークに接続される２つの通信端末が共にＣｏｎｅ  ＮＡＴ特性を有するルータに接続されている場合には、当該２つの通信端末間にＰ２Ｐ通信路を確立することが可能である。
【００５７】
しかしながら、２つの通信端末がＳｙｍｍｅｔｒｉｃ  ＮＡＴを介して接続されている場合には、ＳＴＵＮを利用する手法によって、Ｐ２Ｐ通信路を確立することができない。以下、この理由を説明する。
【００５８】
図２３は、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有するルータを介して接続される２つの通信端末に、ＳＴＵＮを利用するＰ２Ｐ通信路確立方法を適用した場合の処理手順を示すシーケンス図である。より特定的には、図２３に示される例においては、あるプライベートネットワークに接続される端末１は、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴを実行するルータ１を介して外部ネットワークに接続されている。
【００５９】
まず、ステップＳ３０１〜Ｓ３０４において、図２２に示されるステップＳ２０１〜Ｓ２０４と同様に、端末１及び端末２の各々は、サーバへとＩＰ／ポート登録要求パケットを送信することによって、ＩＰアドレス及びポート番号をサーバに登録する。
【００６０】
次に、端末２は、端末１とＰ２Ｐ通信するために用いるＩＰアドレス及びポート番号を取得するために、ＩＰ／ポート取得要求パケットをサーバへ送信する（ステップＳ３０５）。サーバは、端末２からのＩＰ／ポート取得要求に応答して、ルータ１によって発信元ＩＰアドレス及び発信元ポート番号（ＩＰＬ１、ＬＰ１）に割り当てられたＩＰアドレス及びポート番号（ＩＰＧ１、ＧＰ１）を含むＩＰ／ポート取得応答パケットを端末２へ返送する（ステップＳ３０６）。
【００６１】
端末２は、サーバから受信したパケットを参照して、端末１にアクセスするためのＩＰアドレス及びポート番号（ＩＰＧ１、ＧＰ１）を取得する。そこで、端末２は、（ＩＰＧ１、ＧＰ１）を宛先とするパケットを、Ｐ２Ｐ開始要求として送信する（ステップＳ２０７）。
【００６２】
ここで、ルータ１がＳｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有する場合、ルータ１は、Ｐ２Ｐ開始要求パケットを端末１（ＩＰＬ１、ＬＰ１）に転送することなく破棄する。また、上述したように、Ｃｏｎｅ  ＮＡＴを実行するルータ２は、発信元に（ＩＰＬ２、ＬＰ２）が設定され、かつ、宛先に（ＩＰＧ１、ＧＰ１）が設定されたパケットをルータ１へと転送することによって、ルータ１からの応答パケットを受け付けることができるようにＮＡＴを設定する。
【００６３】
次に、端末１は、端末２にアクセスするためのパケットを、ＩＰ／ポート取得要求としてサーバへ送信する（ステップＳ３０８）。サーバは、端末１からのＩＰ／ポート取得要求に応答して、ルータ２が端末２の発信元ＩＰアドレス及び発信元ポート番号（ＩＰＬ２、ＬＰ２）に割り当てたＩＰアドレス及びポート番号（ＩＰＧ２、ＧＰ２）を含むパケットを、ＩＰ／ポート取得応答として端末２に返信する（ステップＳ３０９）。
【００６４】
端末１は、サーバから受信したＩＰ／ポート取得応答を参照して、端末２のＩＰアドレス及びポート番号（ＩＰＬ２、ＰＬ２）に割り当てられているルータ２のＩＰアドレス及びポート番号（ＩＰＧ２、ＧＰ２）を取得する。
【００６５】
次に、端末１は、発信元を（ＩＰＬ１、ＬＰ１）とするパケットを、Ｐ２Ｐ開始要求として、端末２へと送信する（ステップＳ３１０）。しかしながら、ルータ１は、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有するため、パケットの宛先毎に異なるポート番号を割り当てる。したがって、ルータ１は、端末１から受信したＰ２Ｐ開始要求パケットには、［ＧＰ１］とは異なるポート番号［ＧＰ３］を割り当て、当該パケットをルータ２へと転送する。
【００６６】
ここで、ルータ２がＦｕｌｌ  Ｃｏｎｅ  ＮＡＴ特性またはＲ  ＮＡＴ特性を有する場合には、ルータ２は、受信したＰ２Ｐ開始要求パケットを端末２（ＩＰＬ２、ＬＰ２）に転送するので、端末１及び端末２の間にＰ２Ｐ通信路が確立される。
【００６７】
しかしながら、ルータ２がＰＲ  ＮＡＴまたはＳｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有する場合には、ルータ２は、受信したＰ２Ｐ開始要求パケットを端末２に転送することなく破棄するため、端末１及び端末２の間におけるＰ２Ｐ通信路の確立に失敗する。
【００６８】
図２４は、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有するルータを介して接続される２つの通信端末に、ＳＴＵＮを利用するＰ２Ｐ通信路確立方法を適用した場合の処理手順を示すシーケンス図である。より特定的には、図２４に示される例においては、あるプライベートネットワークに接続される端末２は、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴを実行するルータ２を介して外部ネットワークに接続されている。
【００６９】
まず、ステップＳ４０１〜Ｓ４０４において、図２２に示されるステップＳ２０１〜Ｓ２０４と同様に、端末１及び端末２の各々は、サーバへとＩＰ／ポート登録要求パケットを送信することによって、ＩＰアドレス及びポート番号をサーバに登録する。
【００７０】
次に、端末２は、端末１とＰ２Ｐ通信するためのＩＰアドレス及びポート番号を取得するために、ＩＰ／ポート取得要求パケットをサーバへ送信する（ステップＳ４０５）。サーバは、端末２からのＩＰ／ポート取得要求に応答して、ルータ１によって発信元ＩＰアドレス及び発信元ポート番号（ＩＰＬ１、ＬＰ１）に割り当てられたＩＰアドレス及びポート番号（ＩＰＧ１、ＧＰ１）を含むＩＰ／ポート取得応答パケットを端末２へ返送する（ステップＳ４０６）。
【００７１】
端末２は、サーバから受信したパケットを参照して、端末１にアクセスするためのＩＰアドレス及びポート番号（ＩＰＧ１、ＧＰ１）を取得する。そこで、端末２は、（ＩＰＧ１、ＧＰ１）を宛先とするパケットを、Ｐ２Ｐ開始要求として送信する（ステップＳ４０７）。
【００７２】
ここで、ステップＳ４０７において端末２から送信されたＰ２Ｐ開始要求パケットの宛先は、ステップＳ４０３において端末２から送信されたＩＰ／ポート登録要求パケットの宛先と異なる。したがって、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴを実行するルータ２は、当該Ｐ２Ｐ開始要求パケットに、ポート番号［ＧＰ２］とは異なるポート番号［ＧＰ３］を割り当てる。すなわち、ルータ２は、ルータ２（ＩＰＧ２、ＧＰ３）を宛先として端末１が送信したパケットを、端末２（ＩＰＬ２、ＬＰ２）へと転送するように設定する。
【００７３】
それ故に、端末１がサーバから端末２へアクセスするためのＩＰアドレス及びポート番号（ＩＰＧ２、ＧＰ２）を取得した後に（ステップＳ４０８〜Ｓ４０９）、宛先ＩＰアドレス及び宛先ポート番号（ＩＰＧ２、ＧＰ２）を宛先とするＰ２Ｐ開始要求パケットを送信しても、ルータ２は、当該Ｐ２Ｐ開始要求パケットを破棄する。したがって、端末１及び端末２の間におけるＰ２Ｐ通信路の確立に失敗する。
【００７４】
以上説明したように、ルータ１またはルータ２の少なくとも一方がＳｙｍｍｅｔｒｉｃ  ＮＡＴを実行する場合、ＳＴＵＮを利用するＰ２Ｐ通信路確立方法が成功する可能性は高いとは言い難い。
【００７５】
上記のＳＴＵＮの問題点に対し、従来、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴを含む全てのＮＡＴの中で、任意の２つのＮＡＴの組み合わせに対して、Ｐ２Ｐ通信路を確立する方法が知られている（例えば、特許文献１参照）。
【００７６】
特許文献１に記載されているＰ２Ｐ通信路確立方法においては、ある通信端末は、Ｐ２Ｐ通信の接続先となる通信端末がＰ２Ｐ開始要求パケットを送信する際に使用するルータのポート番号を複数予測する。当該ある通信端末は、予測したポート番号を宛先ポートとするパケットを複数送信する。当該ある通信端末が接続されるルータは、接続先通信端末から送信されるパケットを受信することができるポート番号を複数を設定するため、Ｐ２Ｐ通信路の確立が成功する可能性を向上することができる。以下、更なる詳細について説明する。
【００７７】
図２５は、上記特許文献に記載されている従来のＰ２Ｐ通信路確立方法を示すシーケンス図である。図２５に示される例においては、ルータ１及びルータ２は共に、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有する。
【００７８】
まず、ステップＳ５０１〜Ｓ５０４において、図２２に示されるステップＳ２０１〜Ｓ２０４と同様に、端末１及び端末２の各々は、サーバへとＩＰ／ポート登録要求パケットを送信することによって、ＩＰアドレス及びポート番号をサーバに登録する。
【００７９】
次に、端末２は、端末１とＰ２Ｐ通信するために、Ｐ２Ｐ通信要求パケットをサーバに送信する（ステップＳ５０５）。ステップＳ５０５において、端末２は、発信元ポート番号を、ステップＳ５０３においてＩＰ／ポート登録要求パケットの送信に使用したポート番号［ＬＰ２］からポート番号［ＬＰ２＋ａ］へと変更する（ただし、ａは、任意の整数である）。端末２が新たなポート番号［ＬＰ２＋ａ］を発信元ポートとして使用する理由は、発信元ポート番号の変更に伴って、ルータ２が発信元（ＩＰＬ２、ＬＰ２＋ａ）に新たなポート番号［ＧＰ２＋ｂ］を割り当てると予測されるからである（ただし、ｂは、任意の整数であって、かつ、ルータ２において定められている増分値である）。
【００８０】
サーバは、Ｐ２Ｐ通信要求パケットを受信すると、受信したパケットを参照して、ルータ２が発信元（ＩＰＬ２、ＬＰ２＋ａ）に割り当てたＩＰアドレス及びポート番号（ＩＰＧ２、ＧＰ２＋ｂ）を含むパケットを、ＩＰ／ポート通知として端末１に送信する（ステップＳ５０６）。
【００８１】
端末１は、サーバから送信されたＩＰ／ポート通知パケットを受信すると、端末２にＰ２Ｐ通信を許可するか否かを判断し、判断結果をサーバに通知する（ステップＳ５０７）。ステップＳ５０７において、端末１は、発信元ポート番号を、ステップＳ５０１でＩＰ／ポート登録要求パケットの送信に使用した［ＬＰ１］から［ＬＰ１＋ｃ］へと変更する（ただし、ｃは、任意の整数である）。端末１が新たなポート番号［ＬＰ１＋ｃ］を発信元ポートとして使用する理由は、ルータ１が発信元（ＩＰＬ、ＬＰ１＋ｃ）に新たなポート番号［ＧＰ１＋ｄ］を割り当てると予測されるからである（ただし、ｄは、任意の整数であって、ルータ１において定められている増分値である）。
【００８２】
続いて、端末１は、受信したＩＰ／ポート通知パケットから取得したＩＰアドレス及びポート番号（ＩＰＧ２、ＧＰ２＋ｂ）に基づき、宛先に（ＩＰＧ２、ＧＰ２＋ｂ＋ｎ）が設定されたＰ２Ｐ開始要求パケットをサーバに送信する（ステップＳ５０８）。ただし、ｎは、任意の整数である。
【００８３】
端末１は、ステップＳ５０７及びＳ５０８の各々において、きわめて短時間の間に連続してパケットを送信する。したがって、ステップＳ５０７において送信されたパケットの発信元ポート番号［ＬＰ１＋ｃ］が［ＧＰ１＋ｄ］へと変換される場合、ルータ１におけるＮＡＴの設定に従い、ステップＳ５０８において送信されたパケットの発信元ポート番号［ＬＰ１＋ｃ＋１］は、［ＧＰ１＋ｄ＋１］へと変換される。
【００８４】
更に、ステップＳ５０８において端末１がパケットを送信した結果、ルータ１は、応答パケットを受信することができるように設定を変更する。すなわち、ルータ２が端末１から送信されたパケットの発信元（ＩＰＬ１、ＬＰ１＋ｃ＋１）を（ＩＰＧ１、ＧＰ１＋ｄ＋１）に変換して、当該パケットをルータ２（ＩＰＧ２、ＧＰ２＋ｂ＋ｎ）へと転送した後には、ルータ１は、送信元が（ＩＰＧ２、ＧＰ２＋ｂ＋ｎ）であるパケットを端末１（ＩＰＬ１、ＬＰ１＋ｃ＋１）へと転送することができる。尚、端末１が、取得した宛先ポート番号から任意の整数値ｎだけインクリメントされたポート番号へとパケットを送信する理由については後述する。
【００８５】
一方、サーバは、ステップＳ５０７において端末１から送信されたＰ２Ｐ通信許可パケットを受信すると、ルータ１のＩＰアドレス及びポート番号（ＩＰＧ１、ＧＰ１＋ｄ）を含む通信許可パケットを端末２に送信する（ステップＳ５０９）。
【００８６】
次に、端末２は、端末１にアクセスするためのＩＰアドレス及びポート番号（ＩＰＧ１、ＧＰ１＋ｄ）を受信するとすぐに、端末１へとＰ２Ｐ開始要求パケットを送信する（ステップＳ５１０）。ステップＳ５１０において、端末２は、発信元ポート番号を［ＬＰ１＋ａ＋１］から１ずつインクリメントしながら、ルータ１のポート番号［ＧＰ１＋ｄ＋１］を宛先ポートとするｎ個のＰ２Ｐ開始要求パケットを送出する。ルータ２は、端末２から送信されたｎ個のＰ２Ｐ開始要求パケットの各々の発信元ポート番号を、それぞれ、［ＧＰ２＋ｂ＋ｍ］〜［ＧＰ２＋ｍ＋ｎ−１］に変換する。ここで、ｎは、ステップＳ５０８〜Ｓ５１０が実行される間の若干の経過時間において、ルータ１に接続される他の端末（図示せず）から送信されるパケットによってＮＡＴの設定が変更される可能性を考慮して定められる値である。また、ｍは、ｎ以下の整数である。
【００８７】
結果として、ステップＳ５０８において端末１から送信されたパケットの宛先ポート番号［ＧＰ２＋ｂ＋ｎ］は、［ＧＰ２＋ｂ＋ｍ］〜［ＧＰ２＋ｂ＋ｍ＋ｎ−１］のいずれか１つと一致する。それ故に、ルータ１は、受信したｎ個のＰ２Ｐ開始要求パケットの１つを端末１へと転送する（ステップＳ５１０−２）。図２５においては、ポート番号［ＧＰ２＋ｂ＋ｎ］及び［ＧＰ２＋ｂ＋ｍ＋２］が一致した場合の例が示されている。
【００８８】
端末１は、ルータ１から転送されたＰ２Ｐ開始要求パケットを受信すると、Ｐ２Ｐ開始応答パケットを返信する（ステップＳ５１１）。ステップＳ５１０−２においてＮＡＴの設定が調整されたルータ２は、端末１から送信されたＰ２Ｐ開始応答パケットを端末２へと転送すると、端末１と端末２の間にＰ２Ｐ通信路が確立される。
【特許文献１】特開２００４−１８０００３号公報
【発明の開示】
【発明が解決しようとする課題】
【００８９】
上記のように、各々が異なるプライベートネットワークに接続される２つの通信端末間にＰ２Ｐ通信路を確立する方法として、ＳＴＵＮを利用する方法と、上記特許文献１に開示される方法とが知られている。
【００９０】
しかしながら、これらの従来の方法には、それぞれ次のような問題点がある。
【００９１】
まず、ＳＴＵＮを利用する方法においては、第１に、通信端末が接続されるＮＡＴ特性を調査するために、ＩＰアドレスが互いに異なる２台のサーバが必要である。したがって、現実的には、サーバの運用及び保守に要するコストの面で問題がある。第２に、ＳＴＵＮによる方法は、２つの通信端末のいずれか一方が、Ｃｏｎｅ  ＮＡＴ以外のＮＡＴ特性を有するルータに接続されている場合には、Ｐ２Ｐ通信路を確立することができない。
【００９２】
次に、上記特許文献１に開示される手法においては、確かに、通信端末が接続されるルータのＮＡＴ特性（すなわち、Ｃｏｎｅ  ＮＡＴまたはＳｙｍｍｅｔｒｉｃ  ＮＡＴ）に依存することなく、Ｐ２Ｐ通信路の確立が成功する可能性が向上する。より詳細には、端末２が次にパケットを送出した際に、端末１は、サーバから通知されたルータ２のＷＡＮ側ポート番号に基づいて、ルータ１内で割り当てられる可能性のあるポート番号を予測する。端末２は、ルータ２によって割り当てられるポート番号と、端末１に予測されるポート番号とが一致する可能性を高めるために、複数個のパケットを送出する。
【００９３】
しかしながら、２つの通信端末の両方がＦｕｌｌ  Ｃｏｎｅ  ＮＡＴ特性を有するルータに接続されている場合には、容易にポート番号を予測することができるため、一方の通信端末から複数個のパケットを送出する必要はない。逆に、一方の通信端末が複数個のパケットを送出することによって、次のような問題が生じる。第１に、複数の無駄なパケットを送出することによって、通信路確立に要する時間が増加する。第２に、通信端末に接続されるルータが侵入検知機能を有する場合には、当該ルータが、通信に使用されないポート番号を宛先とする複数のパケットを受信した際に、受信パケットが不正アクセスを企むパケットであると誤検知する可能性がある。侵入検知機能を有するルータは、不正アクセスを検知すると、受信したパケットを全て破棄するので、ルータに接続される通信端末が通信不能となる虞があり、結果として接続性が低下する。
【００９４】
それ故に、本発明は、ＮＡＴの特性を１つのＩＰアドレスを有する１台のサーバを用いて調査することができる通信装置、通信方法及び通信システムを提供することを目的とする。更に、調査されたＮＡＴ特性に基づいて、ＮＡＴ特性に応じた最適な接続手順によって、Ｐ２Ｐ通信路を確立することができる通信装置、通信システム及び通信方法を提供することを目的とする。これにより、２つの端末同士を接続する際に、接続時間及び接続性を改善する。
【課題を解決するための手段】
【００９５】
本発明の第１の局面は、ＮＡＴ（ネットワークアドレス変換）機能を有する第１の中継装置を介してサーバに接続される通信装置に向けられている。当該通信装置は、発信元ポート番号が同一であり、かつ、宛先ポート番号が相違する少なくとも２つのアドレス情報調査要求パケットをサーバに送信する第１の送信処理と、発信元ポート番号が第１の送信処理で使用した発信元ポート番号とは異なる少なくとも１つのアドレス情報調査要求パケットをサーバに送信する第２の送信処理とを、任意の順序で実行するアドレス情報調査要求送信部と、第１及び第２の送信処理の間に、サーバとは異なる宛先に、発信元ポート番号が第１及び第２の送信処理において使用したいずれかの発信元ポート番号と同一である通信準備パケットを送信する通信準備要求送信部と、第１の中継装置のＮＡＴ機能によって、アドレス情報調査要求パケットの発信元ポートアドレスから変換された中継ポート番号をデータ部に含む少なくとも３つのアドレス情報パケットを、サーバから受信するアドレス情報受信部と、受信したアドレス情報パケットに含まれる中継ポート番号に基づいて、第１の中継装置のＮＡＴ特性を判断する中継特性判断部とを備える。
【００９６】
第１の局面によって規定される通信装置は、サーバから返送されるアドレス情報パケットを参照して、第１の中継装置によって設定されたポート番号を取得する。したがって、当該通信装置は、１台のサーバと通信することによって、第１の中継装置のＮＡＴ特性を判別することができる。
【００９７】
第２の局面は、ＮＡＴ（ネットワークアドレス変換）機能を有する第１の中継装置を介してサーバに接続される通信端末が通信するための通信方法に向けられている。当該通信方法は、発信元ポート番号が同一であり、かつ、宛先ポート番号が相違する少なくとも２つのアドレス情報調査要求パケットをサーバに送信する第１の送信処理と、発信元ポート番号が第１の送信処理で使用した発信元ポート番号とは異なる少なくとも１つのアドレス情報調査要求パケットをサーバに送信する第２の送信処理とを、任意の順序で実行し、第１及び第２の送信処理の間に、サーバとは異なる宛先に、発信元ポート番号が第１及び第２の送信処理において使用したいずれかの発信元ポート番号と同一である通信準備パケットを送信し、第１の中継装置のＮＡＴ機能によって、アドレス情報調査要求パケットの発信元ポートアドレスから変換された中継ポート番号をデータ部に含む少なくとも３つのアドレス情報パケットを、サーバから受信し、受信したアドレス情報パケットに含まれる中継ポート番号に基づいて、第１の中継装置のＮＡＴ特性を判断することを含む。
【００９８】
第２の局面によって規定される通信方法は、サーバから返送されるアドレス情報パケットを参照して、端末装置が第１の中継装置によって設定されたポート番号を取得することを可能とする。したがって、当該通信装置は、１台のサーバと通信することによって、第１の中継装置のＮＡＴ特性を判別することができる。
【００９９】
第３の局面は、サーバと、ＮＡＴ（ネットワークアドレス変換）機能を有する第１の中継装置と、ＮＡＴ機能を有する第２の中継装置と、第１の中継装置を介してサーバに接続される第１の通信装置と、第２の中継装置を介してサーバに接続される第２の通信装置とを備える通信システムに向けられている。
【０１００】
当該通信システムに含まれる第１及び第２の通信装置の各々は、発信元ポート番号が同一であり、かつ、宛先ポート番号が相違する少なくとも２つのアドレス情報調査要求パケットをサーバに送信する第１の送信処理と、発信元ポート番号が第１の送信処理で使用した発信元ポート番号とは異なる少なくとも１つのアドレス調査情報要求パケットをサーバに送信する第２の送信処理とを、任意の順序で実行するアドレス情報調査要求送信部と、第１及び第２の送信処理の間に、サーバとは異なる宛先に、発信元ポート番号が第１及び第２の送信処理において使用したいずれかの発信元ポート番号と同一である通信準備パケットを送信する通信準備要求送信部と、各々が接続されている中継装置のＮＡＴ機能によって、アドレス情報調査要求パケットの発信元ポートアドレスから変換された中継ポート番号をデータ部に含む少なくとも３つのアドレス情報パケットを、サーバから受信するアドレス情報受信部と、受信したアドレス情報パケットに含まれる中継ポート番号に基づいて、各々が接続されている中継装置のＮＡＴ特性を判断する中継特性判断部とを備えていれば良い。
【０１０１】
一方、当該通信システムに含まれるサーバは、第１及び第２の通信装置の各々から送信されたアドレス情報調査要求パケットに含まれる中継ポート番号を取り出すアドレス情報調査部と、取り出された中継ポート番号をデータ部に含むアドレス情報調査要求応答パケットを送信するアドレス情報送信部とを備えていれば良い。
【０１０２】
第３の局面によって規定される通信システムは、第１及び第２の通信装置の各々は、サーバとパケットを交換することによって、各々が接続されている中継装置の特性を判断すると共に、判断結果をサーバを介して接続先通信装置に通知する。したがって、第１及び第２の通信装置の各々は、自身が接続される中継装置のＮＡＴ特性と、接続先通信装置に接続されている中継装置のＮＡＴ特性との両方を取得することができる。
【発明の効果】
【０１０３】
本発明に係る通信装置、通信システム及び通信方法によれば、１つのＩＰアドレスを有するサーバと通信を行うことによって、ルータのＮＡＴ特性を調査することができる。
【０１０４】
また、本発明に係る通信装置、通信システム及び通信方法によれば、調査されたルータのＮＡＴ特性に応じた最適な接続シーケンスに従って、Ｐ２Ｐ通信路を効率的に確立することが可能となる。
【０１０５】
加えて、本発明に係る通信装置、通信システム及び通信方法によれば、互いに異なるプライベートネットワークに接続された通信端末同士がＰ２Ｐ通信路を確立する際に、「接続時間の短縮」、「通信不能状態の回避」及び「接続性の向上」を実現することが可能となる。
【発明を実施するための最良の形態】
【０１０６】
図１は、本発明の実施形態に係る通信システムの全体構成を示すブロック図である。
【０１０７】
グローバルネットワーク００及びプライベートネットワーク０１は、グローバルＩＰアドレス［ＩＰＧ１］を有するルータ１０１を介して接続されている。また、グローバルネットワーク００及びプライベートネットワーク０２は、グローバルＩＰアドレス［ＩＰＧ２］を有するルータ２０１を介して接続されている。グローバルネットワーク００には、グローバルＩＰアドレス［ＩＰＳ］を有するサーバ００１が接続されている。プライベートネットワーク０１には、ローカルＩＰアドレス［ＩＰＬ１］を有する端末１００が接続されている。プライベートネットワーク０２には、ローカルＩＰアドレス［ＩＰＬ２］を有する端末２００が接続されている。
【０１０８】
図２Ａは、図１に示される端末１００の概略構成を示すブロック図である。
【０１０９】
端末１００は、アドレス情報調査要求送信部１００１と、アドレス情報受信部１００２と、直接通信準備要求送信部１００３と、中継特性判断部１００４と、中継情報送信部１００５と、中継情報受信部１００６と、通信制御部１００７と、通信部１００８とを備える。
【０１１０】
アドレス情報調査要求送信部１００１は、ルータ１０１のＮＡＴ機能によって、端末１００から送信されるパケットに設定されるポート番号を調査するために、ポート番号調査要求パケットをサーバ００１に送信する。より詳細には、アドレス情報調査要求送信部１００１は、宛先ポート番号が異なる少なくとも２つのパケットを送信する第１の送信処理と、発信元ポート番号が第１の送信処理で使用されたものとは異なる少なくとも１つのパケットを送信する第２の送信処理とを実行する。第１の送信処理において、アドレス情報調査要求送信部１００１は、発信元ポートが同一であり、かつ、宛先ポート番号が相違する２つのパケットを送信することがより好ましい。また、第１及び第２の送信処理の実行順序は、任意で良い。
【０１１１】
アドレス情報受信部１００２は、ポート番号調査要求パケットに応答してサーバ００１から返送されるポート番号調査応答パケットをサーバ００１から受信する。ポート番号調査応答パケットは、ルータ１０１のＮＡＴ機能によって設定されたポート番号をデータ部に含む。
【０１１２】
直接通信準備要求送信部１００３は、Ｐ２Ｐ通信に使用するポートをルータ１０１上に用意するために、第１及び第２の送信処理の一方が実行されてから他方が実行されるまでの間に、グローバルネットワーク００に接続される他の端末にＰ２Ｐ通信準備パケットを送信する。
【０１１３】
中継特性判断部１００４は、アドレス情報受信部１００２によって受信されたポート番号調査応答パケットのデータ部に含まれているポート番号に基づいて、ルータ１０１のＮＡＴ特性を判別する。
【０１１４】
中継情報送信部１００５は、中継特性判断部１００４によって判断されたルータ１０１のＮＡＴ特性をサーバ経由で接続先の端末２００に通知するために、ＮＡＴ情報通知パケットをサーバに送信する。
【０１１５】
中継情報受信部１００６は、接続先装置によって送信されたＮＡＴ情報通知パケットを受信する。受信されたＮＡＴ情報通知パケットは、接続先の端末２００に接続されているルータ２０１のＮＡＴ特性を特定するために必要な情報を含んでいる。
【０１１６】
通信制御部１００７は、端末１００が接続されているルータ１０１のＮＡＴ特性と、通信先の端末２００が接続されているルータ２０１のＮＡＴ特性との組み合わせに基づいて、予め用意された複数のシーケンスから、Ｐ２Ｐ通信を確立するための最適なシーケンスを選択し実行する。
【０１１７】
通信部１００８は、上記の各部において生成されたパケットをプライベートネットワーク０１へと送出し、また、端末１００宛てのパケットをプライベートネットワーク０１経由で受信する。
【０１１８】
図２Ｂは、図１に示される端末２００の概略構成を示すブロック図である。
【０１１９】
端末２００は、アドレス情報調査要求送信部２００１と、アドレス情報受信部２００２と、直接通信準備要求送信部２００３と、中継特性判断部２００４と、中継情報送信部２００５と、中継情報受信部２００６と、通信制御部２００７と、通信部２００８とを備える。アドレス情報調査要求送信部２００１〜通信部２００８の各々の機能は、図２Ａに示されるアドレス情報調査要求送信部１００１〜通信部１００８の各々の機能と同様であるので、ここでは、説明を繰り返さない。
【０１２０】
図２Ｃは、図１に示されるサーバ００１の概略構成を示すブロック図である。
【０１２１】
サーバ００１は、アドレス情報調査部００１１と、アドレス情報送信部００１２と、中継情報転送部００１３と、通信部００１４を備える。
【０１２２】
アドレス情報調査部００１１は、端末１００及び２００の各々からポート番号調査要求パケットを受信すると、受信したパケットのヘッダに含まれる発信元ポート番号を取り出す。アドレス情報調査部００１１が取り出した発信元ポート番号は、ルータ１０１または２０１のＮＡＴ機能によって設定された値である。アドレス情報調査部００１１は、取り出されたポート番号をアドレス情報送信部００１２に出力する。
【０１２３】
アドレス情報送信部００１２は、アドレス情報調査部００１１から受け取ったポート番号をデータ部に含むポート番号調査応答パケットを生成し、生成したパケットを端末に返信する。
【０１２４】
中継情報転送部００１３は、２つの端末の一方からＮＡＴ情報通知パケットを受信すると、受信したＮＡＴ情報通知パケットを他方の端末に転送する。
【０１２５】
通信部００１４は、各部において生成されたパケットをグローバルネットワーク００へと送出し、また、サーバ００１宛てのパケットをグローバルネットワーク００経由で受信する。
【０１２６】
ここで、本実施形態に係る通信システムにおける制御シーケンスについて説明する。
【０１２７】
図３は、本実施形態に係る通信システムがＰ２Ｐ通信路を確立するために実行する処理の概略を示すシーケンス図である。
【０１２８】
図３に示されるように、本実施形態に係るＰ２Ｐ通信路確立方法は、４つのフェーズ、すなわち、ＮＡＴ特性調査フェーズＳ８０１、準備フェーズＳ８０２、情報交換フェーズＳ８０３及びＰ２Ｐ通信路確立フェーズから構成される。
【０１２９】
ＮＡＴ特性調査フェーズＳ８０１において、端末１００は、サーバ００１と通信し、端末１００に接続されているルータ１０１のＮＡＴ特性（例えば、Ｃｏｎｅ  ＮＡＴまたはＳｙｍｍｅｔｒｉｃ  ＮＡＴ）を調査する。また、端末１００は、ルータ１０１がＰｏｒｔ  Ｒｅｕｓｅ特性を有しているか否かを調査する。同様に、端末２００は、サーバ００１と通信し、ルータ１０１のＮＡＴ特性と、Ｐｏｒｔ  Ｒｅｕｓｅ特性の有無とを調査する。
【０１３０】
準備フェーズＳ８０２において、端末１００は、自身が接続されているルータ１０１にパケットを送信し、端末２００と通信するために使用するルータ１０１のポートを開く。同様に、端末２００は、ルータ２０１にパケットを送信し、端末１００と通信するために使用するルータ２０１のポートを開く。
【０１３１】
情報交換フェーズＳ８０３において、端末１００及び２００の各々は、ＮＡＴ特性調査フェーズにおいて判別したＮＡＴ特性と、Ｐ２Ｐ通信路を確立するために必要な情報とを、サーバ００１経由で交換する。
【０１３２】
Ｐ２Ｐ通信路確立フェーズＳ８０４において、端末１００及び２００の各々は、情報交換フェーズＳ８０３において取得した情報に基づいて、相互にパケットを送信し、Ｐ２Ｐ通信路を確立する。
【０１３３】
尚、図３においては、図示の都合上、ＮＡＴ特性調査フェーズＳ８０１及び準備フェーズＳ８０２の順序が特定されているが、ＮＡＴ特性調査フェーズＳ８０１及び準備フェーズＳ８０２は、情報交換フェーズＳ８０３の前に完了していれば良い。
【０１３４】
以下、上記４つのフェーズについて、更に詳細に説明する。
【０１３５】
＜ＮＡＴ特性調査フェーズおよび準備フェーズ＞
図４Ａは、図３に示されるＮＡＴ特性調査フェーズ及び準備フェーズにおける処理の詳細を示すシーケンス図である。
【０１３６】
まず、端末１００は、ポート番号調査要求１をサーバ００１へ送信する（ステップＳ９０１）。より詳細には、アドレス情報調査要求送信部１００１は、発信元ポート番号に端末１００のポート番号［ＬＰ１］が設定され、かつ、宛先ポート番号にサーバ００１のポート番号［ＳＰ０］が設定されたポート番号調査要求パケット１を送信する。
【０１３７】
次に、サーバ００１は、端末１００から送信されたポート番号調査要求１に応答して、ポート番号調査応答１を端末に返送する（ステップＳ９０２）。より詳細には、通信部００１４は、ポート番号調査要求パケット１を受信し、受信したパケットをアドレス情報調査部００１１へと転送する。アドレス情報調査部００１１は、転送されたパケットのヘッダを参照して、発信元ポート番号、すなわち、ルータ１０１によって設定されたポート番号［ＧＰ１１］を取り出し、取り出した発信元ポート番号［ＧＰ１１］をアドレス情報送信部００１２へ出力する。
【０１３８】
アドレス情報送信部００１２は、アドレス情報調査部から受け取ったルータ１０１のポート番号［ＧＰ１１］を含むポート番号調査応答パケット１を生成し、生成したパケットを通信部００１４に出力する。通信部００１４は、アドレス情報送信部００１２から受け取ったパケットを端末１００へと返送する。端末１００において、通信部１００８は、ポート番号調査応答パケット１を受信すると、受信したパケットをアドレス情報受信部１００２へ転送する。
【０１３９】
次に、端末１００は、ポート番号調査要求２をサーバ００１へ送信する（ステップＳ９０３）。より詳細には、アドレス情報調査要求送信部１００１は、端末１００のポート番号［ＬＰ１］が発信元ポート番号に設定され、かつ、サーバ００１のポート番号［ＳＰ１］を宛先ポート番号に設定されたポート番号調査要求パケット２を送信する。
【０１４０】
次に、サーバ００１は、端末１００から送信されたポート番号調査要求２に応答して、ポート番号調査応答２を端末に返送する（ステップＳ９０４）。より詳細には、通信部００１４は、ポート番号調査要求パケット２を受信し、受信したパケットをアドレス情報調査部００１１へと転送する。アドレス情報調査部００１１は、転送されたパケットのヘッダを参照して、発信元ポート番号、すなわち、ルータ１０１のポート番号［ＧＰ１２］を取り出し、取り出した発信元ポート番号［ＧＰ１２］をアドレス情報送信部００１２へ出力する。
【０１４１】
次に、端末１００は、Ｐ２Ｐ通信準備パケットを端末２００に送信する（ステップＳ９０５）。より詳細には、端末１００は、端末２００とＰ２Ｐ通信する際に使用するポート番号［ＧＰ１３］を用意するために、端末２００のＩＰアドレス及びポート番号を宛先とするパケットをルータ１０１へ送信する。端末１００は、端末２００のＩＰアドレス及びポート番号を予め取得していても良い。また、サーバ００１がポート番号調査応答パケット１または２に端末２００のＩＰアドレス及びポート番号を設定し、端末１００は、受信したポート番号調査応答パケットを参照して、端末２００のＩＰアドレス及びポート番号を取得しても良い。
【０１４２】
ここで、端末１００が送信するパケットの宛先ポート番号は、実際にルータ２０１が使用しているポート番号（例えば、端末２００がサーバ００１と通信している際に、ルータ２０１が端末２００のパケットに割り当てているポート番号）であることが好ましい。というのも、ルータ２０１が侵入検知機能を有する場合、ルータ２０１が通信に使用していないポート番号が宛先ポート番号に設定されたＰ２Ｐ通信準備パケットを端末１００から受信すると、当該パケットを不正アクセスパケットであると誤検知する可能性がある。ルータ２０１は、不正アクセスパケットを検知すると、端末１００から送信された後続のパケットを全て破棄するため、端末１００は、端末２００と通信不能となる虞がある。
【０１４３】
あるいは、端末１００は、Ｐ２Ｐ通信準備パケットがルータ２０１に届かないように当該パケットのＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）の値を調整しても良い。端末１００がＰ２Ｐ通信準備パケットを送信するのは、自身が接続されるルータ１０１に、端末２００とのＰ２Ｐ通信のためのポート番号を用意するためであり、必ずしもルータ２０１にＰ２Ｐ通信準備パケットが届く必要はない。そこで、端末１００は、Ｐ２Ｐ通信準備パケットがルータ１０１に到達し、かつ、ルータ２０１に到達しないように、ＴＴＬの値を調整すれば良い。
【０１４４】
ステップＳ９０５において、ルータ１０１は、端末２００からルータ２０１を介してルータ１０１（ＩＰＧ１、ＧＰ１３）へと送信されたパケットを受け付けることができるように、ＮＡＴを設定する。ルータ１０１がＮＡＴを設定する方法は、ＮＡＴ特性（図１８Ａ〜図１８Ｅ）に応じて異なるが、ここでの説明を省略する。
【０１４５】
次に、端末１００は、ポート番号調査要求３をサーバ００１へ送信する（ステップＳ９０６）。より詳細には、アドレス情報調査要求送信部１００１は、端末１００のポート番号［ＬＰ２］が発信元ポート番号に設定され、かつ、サーバ００１のポート番号［ＳＰ０］を宛先ポート番号に設定されたパケットを、ポート番号調査要求３として送信する。
【０１４６】
サーバ００１は、端末１００から送信されたポート番号調査要求３に応答して、ポート番号調査応答３を端末１００に返送する（ステップＳ９０７）。より詳細には、通信部００１４は、ポート番号調査要求パケット２を受信し、受信したパケットをアドレス情報調査部００１１へと転送する。アドレス情報調査部００１１は、転送されたパケットのヘッダを参照して、発信元ポート番号、すなわち、ルータ１０１のポート番号［ＧＰ１４］を取り出し、取り出した発信元ポート番号［ＧＰ１４］をアドレス情報送信部００１２へ出力する。
【０１４７】
端末１００は、ポート番号調査応答パケット１〜３を受信すると、ルータ１０１のＮＡＴ特性を判断する（ステップＳ９０８）。より詳細には、端末１００において、中継特性判断部１００４は、ポート番号調査応答パケット１〜３に含まれるルータ１０１の３つのポート番号［ＧＰ１１］、［ＧＰ１２］及び［ＧＰ１４］に基づいて、次の処理フローに従ってルータ１０１のＮＡＴ特性を判断する。
【０１４８】
図４Ｂは、図４Ａに示されるステップＳ９０８の処理の詳細を示すフローチャートである。
【０１４９】
中継特性判断部１００４は、まず、取得したポート番号［ＧＰ１１］と［ＧＰ１２］とが一致するか否かを判断する（ステップＳ９０９）。ポート番号［ＧＰ１１］が［ＧＰ１２］に一致する場合（ステップＳ９０９でＹｅｓ）、中継特性判断部１００４は、ステップＳ９１１へ進む。一方、ポート番号［ＧＰ１１］が［ＧＰ１２］に一致しない場合（ステップＳ９０９でＮｏ）、中継特性判断部１００４は、ルータ１０１のＮＡＴがＰＳ  ＮＡＴであると判断し（ステップＳ９１０）、ステップＳ９１４へ進む。
【０１５０】
［ＧＰ１１］が［ＧＰ１２］に一致する場合（ステップＳ９０９でＹｅｓ）、中継特性判断部１００４は、取得したポート番号［ＧＰ１２］と［ＧＰ１４］との差の絶対値βを算出し、βが１であるか否かを判断する（ステップＳ９１１）。中継特性判断部１００４は、βが１である場合には、ルータ１０１のＮＡＴがＣｏｎｅ  ＮＡＴとであると判断し（ステップＳ９１２）、ステップＳ９１４へ進む。それ以外の場合には、中継特性判断部１００４は、ルータ１０１のＮＡＴがＣｏｎｅ若しくはＡＳ  ＮＡＴ特性のいずれかを有すると判断し（ステップＳ９１３）、ステップＳ９１４へ進む。
【０１５１】
更に、中継特性判断部１００４は、ステップＳ９０２で取得したルータ１０１のポート番号［ＧＰ１１］が、ステップＳ９０１で送信したポート番号調査要求パケット１の発信元ポート番号［ＬＰ１］に一致するか否かを判断する（ステップＳ９１４）。［ＧＰ１１］が［ＬＰ１］に一致する場合（ステップＳ９１４）、中継特性判断部１００４は、ルータ１０１がＰｏｒｔ  Ｒｅｕｓｅ特性を有すると判断し（ステップＳ９１５）、ＮＡＴ特性判断処理を終了する。それ以外の場合には、中継特性判断部１００４は、ＮＡＴ特性判断処理を終了する。
【０１５２】
尚、ルータ１０１がＰｏｒｔ  Ｒｅｕｓｅを有するか否かを厳密に判断するために、中継特性判断部１００４は、更に、ポート番号［ＧＰ１４］が［ＬＰ２］に一致するか否かを判断しても良い。この場合、中継特性判断部１００４は、［ＧＰ１１］が［ＬＰ１］に一致し、かつ、［ＧＰ１４］が［ＬＰ２］に一致する場合に、ルータ１０１がＰｏｒｔ  Ｒｅｕｓｅ特性を有していると判断する。また、ルータ１０１がＰｏｒｔ  Ｒｅｕｓｅ特性を有するか否かを緩やかに判断するために、［ＧＰ１１］が［ＬＰ１］に一致すること、あるいは、［ＧＰ１４］が［ＬＰ２］に一致することのいずれか一方を確認した場合に、中継特性判断部１００４は、ルータ１０１がＰｏｒｔ  Ｒｅｕｓｅ特性を有すると判断しても良い。また、ステップＳ９１４〜Ｓ９１５においてＰｏｒｔ  Ｒｅｕｓｅ特性を判断する処理を、ステップＳ９０９の前に行っても良い。
【０１５３】
以上のＮＡＴ特性判断処理を通じて、端末１００は、ルータ１０１のＮＡＴ特性を調査することができる。
【０１５４】
ここで、上記のＮＡＴ機能特性判断処理の具体例を説明する。
【０１５５】
図５Ａは、図４Ａに示されるステップＳ９１０を説明するための図である。
【０１５６】
中継特性判断部１００４が、ステップＳ９０９においてＮｏと判断すること、すなわち、「ＧＰ１１］が［ＧＰ１２］と異なることは、宛先ポート番号［ＳＰ０］及び［ＳＰ１］の各々に対応して、ルータ１０１が異なるポート番号を割り当てたことを示す。したがって、中継特性判断部１００４は、ルータ１０１がＰＳ  ＮＡＴ特性を有すると判断することができる。
【０１５７】
図５Ｂは、図４Ａに示されるステップＳ９１２を説明するための図である。
【０１５８】
中継特性判断部１００４が、ステップＳ９１１においてＹｅｓと判断すること、すなわち、［ＧＰ１２］と［ＧＰ１４］との差の絶対値βが１であると判断することは、Ｐ２Ｐ通信準備パケットの宛先ポート番号にルータが割り当てたポート番号［ＧＰ１３］が、［ＧＰ１１］及び［ＧＰ１２］に一致することを示す。したがって、中継特性判断部１００４は、ルータ１０１がＣｏｎｅ  ＮＡＴ特性を有すると判断することができる。
【０１５９】
図５Ｃ及び図５Ｄの各々は、図４Ａに示されるステップＳ９１３を説明するための図である。
【０１６０】
中継特性判断部１００４が、ステップＳ９１１においてＮｏと判断する場合、すなわち、［ＧＰ１２］と［ＧＰ１４］との差の絶対値βが１でないと判断する場合、Ｐ２Ｐ通信準備パケットの宛先ポート番号にルータが割り当てたポート番号［ＧＰ１３］が、［ＧＰ１１］及び［ＧＰ１２］に一致する場合（図５Ｃ）と、一致しない場合（図５Ｄ）とがある。したがって、中継特性判断部１００４は、ルータ１０１がＣｏｎｅ若しくはＡＳ  ＮＡＴ特性のいずれかを有すると判断する。
【０１６１】
尚、端末２００は、図４Ａ及び図４Ｂに示されるものと同様の手順に従って、ルータ２０１のＮＡＴ特性を調査し、ルータ２０１は、Ｐ２Ｐ通信で使用するためのポートを開く。
【０１６２】
また、図４Ａは、説明の便宜上、ＮＡＴ特性調査フェーズ（ステップＳ９０１〜Ｓ９０４、ステップＳ９０６〜Ｓ９０８）と準備フェーズ（ステップＳ９０２）とを併せて示しているが、ＮＡＴ特性調査フェーズと、準備フェーズとが互いに分離されていても良い。
【０１６３】
更に、ステップＳ９１３において、中継特性判断部１００４が、βが１でない場合に、Ｃｏｎｅ  ＮＡＴとＡＳ  ＮＡＴとを区別していないのは、後述するＰ２Ｐ通信路確立フェーズにおいて、両者を区別することなく処理することが可能であるからである。しかしながら、端末１００は、Ｃｏｎｅ  ＮＡＴとＡＳ  ＮＡＴとを区別するために、次に示す処理を更に実行しても良い。
【０１６４】
まず、端末１００において、アドレス情報調査要求送信部１００１は、サーバ００１のＩＰアドレス［ＩＰＳ］とは異なるＩＰアドレスが宛先アドレスに設定され、かつ、ポート番号［ＬＰ１］が発信元アドレスに設定されたパケットを、ポート番号調査要求として更に送信する。アドレス情報受信部は、ポート番号調査要求パケットに対する応答パケットを受信し、ルータ１０１がポート番号調査要求パケットに割り当てたポート番号［ＧＰ１５］が［ＧＰ１１］と一致するか否かを判断する。中継特性判断部１００４は、［ＧＰ１５］が［ＧＰ１１］に一致する場合は、ルータ１０１がＣｏｎｅ  ＮＡＴ特性を有すると判断することができ、それ以外の場合は、ルータ１０１がＡＳ  ＮＡＴ特性を有すると判断することができる。
【０１６５】
更に、ＮＡＴ特性調査フェーズ及び準備フェーズは、必ずしも本実施形態に示される順序で実行される必要はない。したがって、端末１００及び２００は、後続の情報交換フェーズの前に、ＮＡＴ特性調査フェーズ及び準備フェーズを完了していれば、本実施形態と異なる順序で各ステップを実行しても良い。
【０１６６】
＜情報交換フェーズ＞
図６は、図３に示される情報交換フェーズにおける処理の詳細を示すシーケンス図である。
【０１６７】
まず、端末２００は、自身が接続されているルータ２０１のＮＡＴ特性を示すＮＡＴ情報をサーバ００１へ通知する（ステップＳ１００１）。より詳細には、中継情報送信部２００５は、ＮＡＴ特性調査フェーズにおいて取得したルータ２０１のＮＡＴ特性を示すＮＡＴ情報をデータ部に含むパケットを生成し、生成したパケットを通信部２００８を介してサーバ００１へ送信する。
【０１６８】
ＮＡＴ情報は、（ａ）Ｃｏｎｅ  ＮＡＴ特性、（ｂ）Ｃｏｎｅ若しくはＡＳ  ＮＡＴ特性、（ｃ）ＰＳ  ＮＡＴ特性のいずれであるかを示す情報と、（ｄ）Ｐｏｒｔ  Ｒｅｕｓｅ特性の有無を示す情報とを含んでいる。
【０１６９】
また、ＮＡＴ情報は、ＮＡＴ特性に応じて、下記に示すパラメータを更に含む。
（ａ）ＮＡＴ特性がＣｏｎｅである場合、ＮＡＴ情報は、ポート番号［ＧＰ２２］（＝［ＧＰ２４］）の値を少なくとも含む。
（ｂ）ＮＡＴ特性がＣｏｎｅ若しくはＡＳである場合、ＮＡＴ情報は、ポート番号［ＧＰ２２］及び［ＧＰ２４］の値を少なくとも含む。
（ｃ）ＮＡＴ特性がＰＳである場合、ＮＡＴ情報は、ポート番号［ＧＰ２１］及び［ＧＰ２２］との差αと、ポート番号［ＧＰ２４］を少なくとも含む。
（ｄ）上記（ａ）〜（ｃ）に加えて、ＮＡＴがＰｏｒｔ  Ｒｅｕｓｅ特性を有する場合、端末２００が次のＰ２Ｐ通信路確立フェーズで新たに開くことを予定するポート番号［ＬＰ４］を少なくとも含む。ルータ２０１がＳｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有する場合には、ポート番号［ＬＰ４］は、新たな番号である必要があるが、ルータ２０１がＣｏｎｅ  ＮＡＴ特性を有する場合は、ポート番号［ＬＰ４］は、［ＧＰ２１］〜［ＧＰ２４］のいずれかであっても良い。
【０１７０】
サーバ００１は、ＮＡＴ情報通知パケットを受信すると、受信したＮＡＴ情報通知パケットを端末１００へと転送する（ステップＳ１００２）。より詳細には、サーバ００１において、中継情報転送部００１３は、端末２００から送信されたＮＡＴ情報通知パケットを通信部００１４を介して受信し、受信したＮＡＴ情報通知パケットを通信部００１４を介して端末１００へ送信する。
【０１７１】
次に、端末１００は、自身が接続されているルータ１０１のＮＡＴ特性を示すＮＡＴ情報をサーバ００１へ通知する（ステップＳ１００３）。より詳細には、中継情報送信部１００５は、ＮＡＴ特性調査フェーズにおいて取得したルータ１０１のＮＡＴ特性を示すＮＡＴ情報を含むパケットを生成し、生成したパケットを通信部１００８を介してサーバ００１へ送信する。端末１００がサーバ００１へと送信するＮＡＴ情報は、端末２００がサーバ００１へと送信するものと同様であるので、ここでの説明を繰り返さない。
【０１７２】
サーバ００１は、ＮＡＴ情報通知パケットを受信すると、受信したＮＡＴ情報通知パケットを端末２００へと転送する（ステップＳ１００４）。より詳細には、サーバ００１において、中継情報転送部００１３は、端末１００から送信されたＮＡＴ情報通知パケットを通信部００１４を介して受信し、受信したＮＡＴ情報通知パケットを通信部００１４を介して端末２００へ送信する。
【０１７３】
尚、本実施形態においては、端末１００及び２００の各々は、ＮＡＴ特性と、当該ＮＡＴ特性に応じたパラメータとをＮＡＴ情報としてサーバ００１へ通知しているが、３つのポート番号（ポート番号［ＧＰ１１］、［ＧＰ１２］及び［ＧＰ１４］、または、ポート番号［ＧＰ２１］、［ＧＰ２２］及び［ＧＰ２４］）をサーバ００１へ通知しても良い。この場合、端末１００及び２００の各々は、サーバ００１から取得した３つのポート番号に基づいて、図４Ｂに示される処理フローに従って、ルータ１０１及び２０１のそれぞれのＮＡＴ特性を判断し、かつ、αの値を計算すれば良い。あるいは、サーバ００１が、端末１００及び２００の各々から取得した３つのポート番号に基づいて、図４Ｂに従って、ルータ１０１及び２０１の各々のＮＡＴ特性をそれぞれ判断し、判断されたルータ１０１及び２０１のＮＡＴ特性をそれぞれ端末２００及び１００に通知しても良い。
【０１７４】
また、上記の説明において、ＮＡＴ情報は、項目（ａ）〜（ｄ）に例示される情報を含んでいるが、他の情報を含んでいても良い。例えば、ＮＡＴ情報は、Δ１＝｜［ＧＰ１２］−［ＧＰ１１］｜と、Δ２＝｜［ＧＰ１４］−［ＧＰ１２］｜によって規定される２つの値を含んでも良い。この場合、中継特性判断部は、Δ１及びΔ２の値を取得して、Δ１＝０かつΔ２＝０が満たされる場合に、ルータがＣｏｎｅ  ＮＡＴ特性を有すると判断し、Δ２＞１が満たされる場合に、ルータがＡＳ  ＮＡＴ特性を有すると判断し、Δ１≠０が満たされる場合に、ルータがＰＳ  ＮＡＴ特性を有すると判断しても良い。
【０１７５】
また、ＮＡＴ情報は、端末１００、端末２００及びサーバ００１の少なくとも１つがルータのＮＡＴ特性を判別するために有用な情報であれば、上述される以外の情報を含んでいても良い。
【０１７６】
更に、本実施形態においては、端末２００が先にＮＡＴ情報通知パケットを送信しているが、端末１００が先にＮＡＴ情報通知パケットを送信しても良い。
【０１７７】
＜Ｐ２Ｐ通信路確立フェーズ＞
図７は、図３に示されるＰ２Ｐ通信路確立フェーズにおいて、端末１００が実行する処理を示すフローチャートである。Ｐ２Ｐ通信路確立フェーズにおいて、端末１００及び２００は、情報交換フェーズにおいて取得したパラメータを用いて、Ｐ２Ｐ通信路の確立を図る。
【０１７８】
まず、通信制御部１００７は、ルータ２０１がＣｏｎｅ  ＮＡＴ特性を有するか否かを判断する（ステップＳ１２０１）。通信制御部１００７は、ルータ２０１がＣｏｎｅ  ＮＡＴ特性を有すると判断する場合には（ステップＳ１２０１でＹｅｓ）、後述するステップＳ１２０７へ進み、ルータ２０１のポート番号［ＧＰ２２］が宛先ポート番号に設定されたＰ２Ｐ開始要求パケットを送信する。
【０１７９】
ルータ２０１がＣｏｎｅ  ＮＡＴ特性を有しない場合（ステップＳ１２０１でＮｏ）、通信制御部１００７は、ルータ２０１がＣｏｎｅ若しくはＡＳ  ＮＡＴ特性の両方の可能性があるか否かを判断する（ステップＳ１２０２）。通信制御部１００７は、ルータ２０１がＣｏｎｅ若しくはＡＳ  ＮＡＴの両方の可能性があると判断する場合には（ステップＳ１２０２でＹｅｓ）、後述するステップＳ１２０８へ進み、［ＧＰ２２］以上かつ［ＧＰ２４］未満の範囲の値が宛先ポート番号に設定された複数のＰ２Ｐ通信開始要求パケットを送信する。
【０１８０】
ルータ２０１がＣｏｎｅ若しくはＡＳ  ＮＡＴ特性のいずれも有していない場合（ステップＳ１２０２でＮｏ）、通信制御部１００７は、ルータ２０１がＰｏｒｔ  Ｒｅｕｓｅ特性を有するか否かを判断する（ステップＳ１２０３）。ルータ２０１がＰｏｒｔ  Ｒｅｕｓｅ特性を有する場合（ステップＳ１２０３でＹｅｓ）、通信制御部１００７は、ルータ２０１のＮＡＴの特性を考慮することなく、ポート番号［ＬＰ４］が宛先ポート番号に設定されたＰ２Ｐ開始要求パケットを送信する。ルータ２０１がＰｏｒｔ  Ｒｅｕｓｅ特性を有しない場合（ステップＳ１２０３でＮｏ）、通信制御部１００７は、ステップＳ１２０４へ進む。
【０１８１】
通信制御部１００７がステップＳ１２０４に到達するのは、ルータ２０１がＣｏｎｅ  ＮＡＴ特性及びＡＳ  ＮＡＴ特性のいずれも備えていない場合、すなわち、ルータ２０１がＰＳ  ＮＡＴ特性を有する場合である。ルータ２０１がＰＳ  ＮＡＴである場合、端末１００は、以下に示すように、自身が接続されるルータ１０１の特性を考慮して、処理を選択する必要がある。
【０１８２】
通信制御部１００７は、ルータ１０１がＣｏｎｅ  ＮＡＴ特性を有すると特定されるか否かを判断する（ステップＳ１２０４）。ルータ１０１がＣｏｎｅ  ＮＡＴ特性を有する場合（ステップＳ１２０４でＹｅｓ）、通信制御部１００７は、後述するステップＳ１２１０へ進み、ポート番号［ＧＰ２４＋α２］が宛先ポート番号に設定されたＰ２Ｐ開始要求パケットを送信する。
【０１８３】
ルータ１０１がＣｏｎｅ  ＮＡＴ特性を有すると特定されない場合（ステップＳ１２０４でＮｏ）、通信制御部１００７は、ルータ１０１がＣｏｎｅ若しくはＡＳ  ＮＡＴ特性のいずれかを有しているか否かを判断する（ステップＳ１２０５）。ルータ１０１がＣｏｎｅ若しくはＡＳ  ＮＡＴ特性のいずれかを有する場合（ステップＳ１２０５でＹｅｓ）、通信制御部１００７は、後述するステップＳ１２１１へ進み、［ＧＰ２４＋α２］以上かつ［ＧＰ２４＋（ｎ−１）×α２］未満の範囲の値が宛先ポート番号に設定された複数のＰ２Ｐ開始要求パケットを送信する（ただし、ｎは任意の正の整数である）。
【０１８４】
ルータ１０１がＣｏｎｅ  ＮＡＴ特性及びＡＳ  ＮＡＴ特性のいずれも有していない場合（ステップＳ１２０５でＮｏ）、通信制御部１００７は、ルータ１０１がＰＳ  ＮＡＴ特性を有しているか否かを判断する（ステップＳ１２０６）。ルータ１０１がＰＳ  ＮＡＴ特性を有している場合（ステップＳ１２０６でＹｅｓ）、通信制御部１００７は、後述するステップＳ１２１２へ進み、ポート番号［ＧＰ２４＋α２］が宛先ポート番号に設定されたＰ２Ｐ通信開始パケットを送信する。ルータ１０１がＰＳ  ＮＡＴ特性を有していない場合には、リターンする。
【０１８５】
尚、Ｐ２Ｐ通信路確立フェーズにおいて、端末２００の通信制御部２００７が実行する処理は、端末２００が実行する処理と同様であるので、詳細な説明を省略する。
【０１８６】
また、図７に示されるシーケンス図においては、各判断処理の順序が一例として特定されているが、各判断処理は、図７に示される以外の順序で実行されても良い。例えば、ルータがＰｏｒｔ  Ｒｅｕｓｅ特性を有しているか否かの判断（ステップＳ１２０３）を最初に実行しても良い。
【０１８７】
以下、上述したステップＳ１２０７〜Ｓ１２１２の各々の詳細を説明する。
【０１８８】
＜接続シーケンス１：ルータ２０１がＣｏｎｅ  ＮＡＴである場合＞
図８は、図７に示される接続シーケンス１の詳細を示す図である。尚、図８においては、説明の簡略化のために、ルータ１０１がＣｏｎｅ  ＮＡＴ特性を有する場合を想定する。
【０１８９】
上述したように、端末１００は、情報交換フェーズ（図６）のステップＳ１００１及びＳ１００２において端末２００から通知された情報に基づき、端末２００が接続されるルータ２０１がＣｏｎｅ  ＮＡＴ特性を有することと、ＮＡＴ特性調査フェーズ及び準備フェーズにおいて、ルータ２０１が開いたポート番号［ＧＰ２２］及び［ＧＰ２４］とを把握する。ルータ２０１がＣｏｎｅ  ＮＡＴ特性を有するので、端末１００は、端末２００がＰ２Ｐ通信に使用するルータ２０１のポート番号が［ＧＰ２２］であると予測することができる。
【０１９０】
そこで、通信制御部１００７は、発信元ポート番号に［ＬＰ１］が設定され、かつ、宛先ポート番号に［ＧＰ２２］が設定されたパケットを、Ｐ２Ｐ開始要求として送信する（ステップＳ１３０１）。尚、ルータ１０１は、端末１００から送信されたパケットにポート番号［ＧＰ１３］を割り当てる。
【０１９１】
この段階では、ルータ２０１は、端末１００から送信された宛先ポート番号が［ＧＰ２２］に設定されたパケットを転送するようにＮＡＴを設定していないため、ルータ２０１は、ステップＳ１３０１において送信されたＰ２Ｐ開始要求パケットを破棄し、端末２００に転送しない。この段階において、ルータ１０１は、発信元ポート番号にルータ２０１のポート番号［ＧＰ２２］が設定され、かつ、宛先ＩＰアドレス及び宛先ポート番号に（ＩＰＧ１、ＧＰ１３）が設定されたパケットを、端末１００（ＩＰＬ１、ＬＰ１）へ転送するようにＮＡＴを設定する。
【０１９２】
一方、端末２００は、情報交換フェーズにおいて端末１００から通知された情報に基づき、端末１００が接続されるルータ１０１がＣｏｎｅ  ＮＡＴ特性を有することを示す情報と、ＮＡＴ特性調査フェーズ及び準備フェーズにおいて、ルータ１０１が開いたポート番号［ＧＰ１２］及び［ＧＰ１４］とを示す情報とを取得する。端末２００は、ルータ１０１のＮＡＴ特性に関する情報を取得すると、ルータ１０１がＣｏｎｅ  ＮＡＴ特性を有することに基づき、ルータ１０１がＰ２Ｐ通信に使用するポート番号が［ＧＰ１２］であることを予測し、すぐに、発信元ポート番号に［ＬＰ１］が設定され、宛先ポート番号に［ＧＰ１２］が設定されたパケットを、Ｐ２Ｐ開始要求として送信する（ステップＳ１３０２）。尚、ルータ１０１は、Ｃｏｎｅ  ＮＡＴ特性を有するため、ポート番号［ＧＰ１２］は、［ＧＰ１３］と同じである。
【０１９３】
ルータ１０１は、端末２００から送信されたＰ２Ｐ開始要求パケットを端末１００に転送する。端末１００において、通信制御部１００７は、ルータ１０１から転送されたＰ２Ｐ開始要求パケットに応答して、通信部１００８を介して、Ｐ２Ｐ開始応答パケットを端末２００へ送信する（ステップＳ１３０３）。
【０１９４】
ルータ２０１がＣｏｎｅ  ＮＡＴ特性を有する場合、上記の処理手順に従って、端末１００及び２００の間にＰ２Ｐ通信路を確立することができる。
【０１９５】
＜接続シーケンス２：ルータ２０１がＣｏｎｅ若しくはＡＳ  ＮＡＴ特性のいずれかを有する場合＞
図９Ａは、図７に示される接続シーケンス２の詳細を示す図であり、図９Ｂは、図９Ａに示されるポート番号を示す図である。尚、図９Ａにおいては、説明の簡略化のために、ルータ１０１がＣｏｎｅ  ＮＡＴ特性を有する場合を想定する。
【０１９６】
まず、前述の図５Ａに示される状況を端末２００に適用すると、ルータ２０１がＣｏｎｅ  ＮＡＴ特性を有する場合、ルータ２０１がＰ２Ｐ通信に割り当てるポート番号は、［ＧＰ２２］であることが予測される。
【０１９７】
次に、前述の図５Ｄに示される状況を端末２００に適用すると、ルータ２０１がＡＳ  ＮＡＴ特性を有する場合、ルータ２０１がＰ２Ｐ通信に割り当てるポート番号は、［ＧＰ２２］と［ＧＰ２４］との間のいずれか１つのポート番号である。
【０１９８】
そこで、端末１００において、通信制御部１００７は、発信元ポート番号に［ＬＰ１］が設定され、かつ、宛先ポート番号に［ＧＰ２２］以上かつ［ＧＰ２４］未満であるポート番号がそれぞれ設定された複数のＰ２Ｐ開始要求パケットを送信する（ステップＳ１４０１）。ルータ１０１は、準備フェーズにおいて用意したポート番号［ＧＰ１３］を全てのＰ２Ｐ開始要求パケットに割り当てる。
【０１９９】
ステップＳ１４０１においてＰ２Ｐ開始要求パケットが送信された時点では、ルータ２０１は、宛先ポート番号に［ＧＰ２２］以上［ＧＰ２４−１］以下の各々のポート番号が設定されたパケットを受信するようにＮＡＴを設定していない。したがって、この段階においては、ルータ２０１は、受信したＰ２Ｐ開始要求パケットの各々を破棄し、端末２００へと転送しない。尚、ルータ１０１は、宛先に（ＩＰＧ１、ＧＰ１３）が設定され、かつ、発信元ポート番号に［ＧＰ２２］〜［ＧＰ２４−１］の範囲の各ポート番号が設定されたパケットの各々を、端末１００（ＩＰＬ１、ＬＰ１）へ転送するようにＮＡＴを設定する。
【０２００】
一方、端末２００は、情報交換フェーズにおいて端末１００から通知された情報に基づき、端末１００が接続されるルータ１０１がＣｏｎｅ  ＮＡＴ特性を有することを示す情報と、ＮＡＴ特性調査フェーズ及び準備フェーズにおいて、ルータ１０１が開いたポート番号［ＧＰ１２］及び［ＧＰ１４］とを示す情報とを取得している。
【０２０１】
端末２００は、ルータ１０１のＮＡＴ特性に関する情報を取得すると、ルータ１０１がＣｏｎｅ  ＮＡＴ特性を有することに基づき、ルータ１０１がＰ２Ｐ通信に使用するポート番号が［ＧＰ１２］であることを予測し、すぐに、発信元ポート番号に［ＬＰ１］が設定され、宛先ポート番号に［ＧＰ１２］が設定されたパケットを、Ｐ２Ｐ開始要求として送信する（ステップＳ１４０２）。尚、ルータ１０１は、Ｃｏｎｅ  ＮＡＴ特性を有するため、ポート番号［ＧＰ１２］は、［ＧＰ１３］と同じである。
【０２０２】
ルータ１０１は、上述したステップＳ１４０１において、Ｐ２Ｐ開始要求パケットを送信することによって、発信元ポート番号が［ＧＰ２２＋ｎ］であるパケットを受け付けることができるように既にＮＡＴを設定している（ここで、［ＧＰ２２］≦［ＧＰ２２＋ｎ］＜［ＧＰ２４］、かつ、［ＧＰ２２＋ｎ］＝［ＧＰ２３］の関係が成立する）。
【０２０３】
したがって、ルータ１０１は、端末２００から送信されたＰ２Ｐ開始要求パケットを端末１００に転送する。端末１００において、通信制御部１００７は、ルータ１０１から転送されたＰ２Ｐ開始要求パケットに応答して、通信部１００８を介して、Ｐ２Ｐ開始応答パケットを端末２００へ送信する（ステップＳ１４０３）。
【０２０４】
ルータ２０１がＣｏｎｅ若しくはＡＳ  ＮＡＴ特性のいずれか特定されない場合には、上記の処理手順に従って、端末１００及び２００の間にＰ２Ｐ通信路を確立することができる。
【０２０５】
尚、変形例として、上記のステップＳ１４０１の代わりに、次のような処理を実行しても良い。
【０２０６】
図１０は、ルータのポート番号割り当て間隔を説明するための図である。
【０２０７】
上記の図９Ａに示される例においては、端末１００は、宛先ポート番号を［ＧＰ２２］以上かつ［ＧＰ２４］未満の範囲内で１ずつインクリメントしながら、Ｐ２Ｐ開始要求パケットを送信しているが、次の理由により、宛先ポート番号の増分は、１でなくても良い。
【０２０８】
例えば、ある種のルータは、受信したパケットの宛先ポート番号が、予め定められたポート番号割り当て規則に適合するか否かを判定することによって、不正侵入を検知する機能を有する。仮に、ルータ２０１がこの種の侵入検知機能を有する場合、ルータ２０１が端末１００から宛先ポート番号を１ずつインクリメントしながら送信されたＰ２Ｐ開始要求パケットを受信すると、侵入検知機能が作動する可能性がある。侵入検知機能の作動によって、端末１００が端末２００と通信が通信不能に陥ることが考えられる。
【０２０９】
そこで、ルータ２０１が侵入検知機能を有する場合を考慮して、端末２００が、ルータ２０１に割り当てられるポート番号の差分を予め取得しておくことが考えられる。
【０２１０】
より詳細には、図１０に示されるように、ＮＡＴ特性調査フェーズにおいて、ルータ２０１がＣｏｎｅ若しくはＡＳ  ＮＡＴ特性のいずれかを有すると判断した場合に、アドレス情報調査要求送信部２００１は、宛先ポート番号にサーバ００１のあるポート番号（例えば［ＳＰ０］）が設定された２以上のポート番号調査要求パケットを、発信元ポート番号を１ずつインクリメントしながら、送信する。
【０２１１】
サーバ００１は、受信したポート番号調査要求パケットの各々に応答して、ルータ２０１によって変換された発信元ポート番号を含む応答パケットを端末２００に送信する。端末２００において、中継情報送信部２００５は、サーバ００１から送信された応答パケットの各々を参照して、ルータ２０１によってポート番号調査応答パケットの各々に割り当てられたポート番号の増分を調べる。端末２００は、ポート番号の増分の最小値を、ポート割り当て間隔（Δ）として、ＮＡＴ情報通知パケットによって端末１００に送信する。
【０２１２】
端末１００の通信制御部１００７は、ステップＳ１４０１において、宛先ポート番号を、［ＧＰ２２］以上［ＧＰ２４］未満の範囲で、ポート割り当て間隔Δずつインクリメントしながら複数のＰ２Ｐ開始要求パケットを送信すれば良い。
【０２１３】
＜接続シーケンス３：ルータ２０１がＰｏｒｔ  Ｒｅｕｓｅ特性を有する場合＞
図１１は、図７に示される接続シーケンス３の詳細を示す図である。尚、図１１においては、説明の簡略化のために、ルータ１０１もまたＰｏｒｔ  Ｒｅｕｓｅ特性を有する場合を想定する。
【０２１４】
上述したように、端末１００は、情報交換フェーズ（図６）のステップＳ１００１及びＳ１００２において端末２００から通知された情報に基づき、端末２００が接続されるルータ２０１がＰｏｒｔ  Ｒｅｕｓｅ特性を有することと、ＮＡＴ特性調査フェーズ及び準備フェーズにおいて、ルータ２０１がＰ２Ｐ通信のために開く予定のポート番号［ＬＰ４］を示す情報を取得している。ルータ２０１は、Ｐｏｒｔ  Ｒｅｕｓｅ特性を有するため、発信元ポート番号に［ＬＰ４］が設定されたパケットを端末１００が送信すると、ルータ２０１は、当該パケットの転送のためにポート番号［ＬＰ４］を割り当てることが予想される。
【０２１５】
そこで、通信制御部１００７は、ステップＳ１００３及びＳ１００４において端末２００に通知したポート番号［ＬＰ３］が発信元ポート番号に設定され、宛先ポート番号に［ＬＰ４］が設定されたＰ２Ｐ開始要求パケットを送信する（ステップＳ１５０１）。ルータ１０１は、Ｐｏｒｔ  Ｒｅｕｓｅ特性を有するので、Ｐ２Ｐ開始要求パケットの発信ポート番号［ＬＰ３］と同一のポート番号を、Ｐ２Ｐ開始要求パケットに割り当てる。
【０２１６】
ステップＳ１５０１においてＰ２Ｐ開始要求パケットが送信された時点では、ルータ２０１は、宛先ポート番号に［ＬＰ４］が設定されたパケットを端末２００に転送することができるようにＮＡＴを設定していない。したがって、ルータ２０１は、Ｐ２Ｐ開始要求パケットを破棄し、当該パケットを端末２００に転送しない。一方、ルータ１０１は、Ｐ２Ｐ開始要求パケットを転送することによって、宛先に（ＩＰＧ１、ＬＰ３）が設定され、かつ、宛先ポート番号に［ＬＰ４］が設定されたパケットを、端末１００（ＩＰＬ１、ＬＰ３）に転送するようにＮＡＴを設定する。
【０２１７】
一方、端末２００は、情報交換フェーズにおいて端末１００から通知された情報に基づき、端末１００が接続されるルータ１０１がＰｏｒｔ  Ｒｅｕｓｅ特性を有することを示す情報と、端末１００のポート番号［ＬＰ３］を示す情報とを取得している。
【０２１８】
端末２００は、ルータ１０１のＮＡＴ特性に関する情報を取得するとすぐに、通信制御部２００７は、宛先ポート番号に［ＬＰ３］が設定されたＰ２Ｐ開始要求パケットを送信する（ステップＳ１５０２）。
【０２１９】
ルータ１０１は、端末２００から送信されたＰ２Ｐ開始要求パケットを端末１００に転送する。端末１００において、通信制御部１００７は、ルータ１０１から転送されたＰ２Ｐ開始要求パケットに応答して、通信部１００８を介して、Ｐ２Ｐ開始応答パケットを端末２００へ送信する（ステップＳ１５０３）。
【０２２０】
ルータ２０１がＰｏｒｔ  Ｒｅｕｓｅ特性を有する場合、上記の処理手順に従って、端末１００及び２００の間にＰ２Ｐ通信路を確立することができる。
【０２２１】
尚、図１１に示されるシーケンス図においては、端末１００が端末２００より先にＰ２Ｐ開始要求を送信しているが、端末２００が端末１００より先にＰ２Ｐ開始要求を送信しても良い。
【０２２２】
また、Ｐ２Ｐ通信路確立フェーズにおいて、Ｐ２Ｐ通信路の確立に成功する可能性を向上させるために、情報交換フェーズにおいて、端末１００及び２００は、複数のポート番号を相互に通知しても良い。
【０２２３】
＜接続シーケンス４：ルータ２０１がＰＳ  ＮＡＴ特性を有し、かつ、ルータ１０１がＣｏｎｅ  ＮＡＴ特性を有する場合＞
図１２Ａは、図７に示される接続シーケンス４の詳細を示す図であり、図１２Ｂは、図１２Ａに示されるポート番号を示す図である。
【０２２４】
上述したように、端末１００は、情報交換フェーズ（図６）のステップＳ１００１及びＳ１００２において、端末２００が接続されるルータ２０１がＰＳ  ＮＡＴ特性を有することと、ルータ２０１が開いたポート番号［ＧＰ２４］と、ルータ２０１のポート割り当て間隔αの値とを含むＮＡＴ特性情報を取得する。ＰＳ  ＮＡＴにおいては、新たにポートを開くたびに、ポート番号がαずつ増加するので、端末１００は、ルータ２０１がＰ２Ｐ通信に使用するポートが［ＧＰ２４＋α］であることを予測することができる。
【０２２５】
そこで、端末１００の通信制御部１００７は、宛先ポート番号に［ＧＰ２４＋α］が設定され、かつ、発信元ポート番号に［ＬＰ１］が設定されたＰ２Ｐ開始要求パケットを送信する（ステップＳ１６０１）。ルータ１０１は、Ｃｏｎｅ  ＮＡＴ特性を有するので、Ｐ２Ｐ通信開始パケットに、準備フェーズにおいて用意したポート番号［ＧＰ１３］を割り当てる。
【０２２６】
ステップＳ１６０１においてＰ２Ｐ開始要求パケットが送信された時点では、ルータ２０１は、宛先ポート番号に［ＧＰ２４＋α］が設定されたパケットを端末２００に転送するようにＮＡＴを設定していないので、ルータ２０１は、受信したパケットを破棄し、端末２００に転送しない。一方、ルータ１０１は、宛先に（ＩＰＧ１、ＧＰ１３）が設定され、かつ、発信元ポート番号に［ＧＰ２４＋α］が設定されたパケットを、端末１００（ＩＰＬ１、ＬＰ１）に転送するようにＮＡＴを設定する。
【０２２７】
一方、端末２００は、情報交換フェーズにおいて、端末１００が接続されるルータ１０１がＣｏｎｅ  ＮＡＴ特性を有することと、ルータ１０１が開いたポートの番号［ＧＰ１２］及び［ＧＰ１４］とを含むＮＡＴ特性情報を取得している。
【０２２８】
端末２００は、ルータ１０１のＮＡＴ特性に関する情報を取得すると、ルータ１０１がＣｏｎｅ  ＮＡＴ特性を有することに基づき、ルータ１０１がＰ２Ｐ通信に使用するポート番号が［ＧＰ１２］であることを予測し、すぐに、発信元ポート番号に［ＬＰ１］が設定され、かつ、宛先ポート番号に［ＧＰ１２］が設定されたＰ２Ｐ開始要求パケットを送信する（ステップＳ１６０２）。尚、ルータ１０１は、Ｃｏｎｅ  ＮＡＴ特性を有するため、ポート番号［ＧＰ１２］は、［ＧＰ１３］と同じである。
【０２２９】
ルータ１０１は、端末２００から送信されたＰ２Ｐ開始要求パケットを端末１００に転送する。端末１００において、通信制御部１００７は、ルータ１０１から転送されたＰ２Ｐ開始要求パケットに応答して、通信部１００８を介して、Ｐ２Ｐ開始応答パケットを端末２００へ送信する（ステップＳ１６０３）
ルータ２０１がＰＳ  ＮＡＴ特性を有し、かつ、ルータ１０１がＣｏｎｅ  ＮＡＴ特性を有する場合、上記の処理手順に従って、端末１００及び２００の間にＰ２Ｐ通信路を確立することができる。
【０２３０】
尚、本実施形態においては、端末１００は、宛先ポート番号が［ＧＰ２４＋α］である１つのＰ２Ｐ開始要求パケットを送信しているが、複数のＰ２Ｐ開始要求パケットを送信しても良い。例えば、ＮＡＴ情報通知フェーズにおいて、端末１００が端末２００と情報を交換している間に、端末２００の他のアプリケーションが先にルータ２０１のポート番号［ＧＰ２４＋α］を占有する可能性が考えられる。この可能性を考慮して、Ｐ２Ｐ通信路確立の確実性を向上させるために、［ＧＰ２４＋α］に加えて、［ＧＰ２４＋２α］及び［ＧＰ２４＋３α］のように、αずつインクリメントされた宛先ポート番号を有する複数のＰ２Ｐ開始要求パケットを送信しても良い。
【０２３１】
また、ステップＳ１６０１における処理に、次のような変形例を適用しても良い。
【０２３２】
図１２Ｃは、端末及びルータ間のポート番号の関係を示す図である。
【０２３３】
図１２Ｃに示されるように、端末１００は、［ＧＰ２４］から意図的に大きくずらされた［ＧＰ２４＋ｎα］（ただし、ｎは整数である）が発信ポート番号に設定されたＰ２Ｐ通信開始要求を送信する。例えば、ｎは、５に設定されている。その後、端末２００は、宛先ポート番号に［ＧＰ１２］が設定されたｎ個の要求パケットを送信する。端末２００から送信されたｎ個の要求パケットのうち、発信元ポート番号が［ＧＰ２４＋ｎα］に変換された１つのパケットがルータ１０１によって端末１００に転送され、これにより、Ｐ２Ｐ通信路が確立する。
【０２３４】
＜接続シーケンス５：ルータ２０１がＰＳ  ＮＡＴ特性を有し、かつ、ルータ１０１がＣｏｎｅ若しくはＡＳ  ＮＡＴ特性のいずれを有するか特定されない場合＞
図１３Ａは、図７に示される接続シーケンス５の詳細を示す図であり、図１３Ｂは、図１３Ａに示されるポート番号を示す図である。
【０２３５】
端末１００は、情報交換フェーズにおいて、ルータ２０１がＰＳ  ＮＡＴであることと、ルータ２０１のポート割り当て間隔αの値と、ルータ２０１のポート番号［ＧＰ２４］とを含むＮＡＴ特性情報を取得している。
【０２３６】
ルータ１０１がＣｏｎｅ若しくはＡＳ  ＮＡＴ特性のいずれかを有する場合、前述の理由により端末２００の通信制御部２００７は、宛先ポート番号に［ＧＰ１２］以上［ＧＰ１４］未満の範囲に含まれるポート番号の各々が設定されるｎ個のＰ２Ｐ開始要求パケットを送信すると考えられる。ルータ２０１は、ＰＳ  ＮＡＴ特性を有するので、端末２００がＰ２Ｐ開始要求パケットを送信するたびに、ルータ２０１は、パケットの各々にポート割り当て間隔αずつインクリメントされたポート番号を割り当てる。つまり、ルータ２０１は、Ｐ２Ｐ開始要求パケットの各々の送信元ポート番号を、［ＧＰ２４＋α］〜［ＧＰ２４＋ｎα］に変換する。このような理由により、端末１００の通信制御部１００７は、宛先ポート番号に［ＧＰ２４＋α］〜［ＧＰ２４＋ｎα］の各々が設定されたｎ個のＰ２Ｐ開始要求パケットを送信する（ステップＳ１７０１）。この時、ルータ１０１は、準備フェーズにおいて用意したポート番号［ＧＰ１３］を全てのＰ２Ｐ開始要求パケットに割り当てる。
【０２３７】
ステップＳ１７０１においてＰ２Ｐ開始要求パケットが送信された時点では、ルータ２０１は、宛先ポート番号に［ＧＰ２４＋α］〜［ＧＰ２４＋ｎα］に設定されたパケットを端末２００に転送するようにＮＡＴを設定していない。したがって、ルータ２０１は、宛先ポート番号に［ＧＰ２４＋α］〜［ＧＰ２４＋ｎα］が設定されたｎ個のＰ２Ｐ開始要求パケットを破棄し、当該パケットを端末２００に転送しない。一方、ルータ１０１は、ｎ個のＰ２Ｐ開始要求パケットを転送することによって、宛先に（ＩＰＧ１、ＧＰ１３）が設定され、かつ、発信元ポート番号に［ＧＰ２４＋α］〜［ＧＰ２４＋ｎα］のいずれかが設定されたパケットを端末１００（ＩＰＬ１、ＬＰ１）に転送するようにＮＡＴを設定する。
【０２３８】
一方、端末２００は、情報交換フェーズにおいて、ルータ１０１がＣｏｎｅ若しくはＡＳ  ＮＡＴ特性のいずれかであることと、端末１００がＮＡＴ特性調査フェーズおよび準備フェーズにおいて開いたポートの番号［ＧＰ１２］及び［ＧＰ１４］とを含むＮＡＴ特性情報を取得している。
【０２３９】
端末２００の通信制御部２００７は、宛先ポート番号に［ＬＰ１］が設定され、かつ、発信元ポート番号に［ＧＰ１２］以上［ＧＰ１４］未満の値が設定されたｎ個のＰ２Ｐ開始要求パケット（ただし、ｎ＝［ＧＰ１４］―［ＧＰ１２］）を送信する（ステップＳ１７０２）。
【０２４０】
ルータ１０１は、端末２００から送信されたｎ個のＰ２Ｐ開始要求パケットのうち、ルータ２０１のＮＡＴによって宛先ポート番号にポート番号［ＧＰ１３］が設定されたパケットのみを端末１００に転送する。端末１００は、ルータ１０１によって転送されたＰ２Ｐ開始要求パケットを受信すると、Ｐ２Ｐ開始応答パケットを端末２００に送信する（ステップＳ１７０３）。
【０２４１】
ルータ２０１がＰＳ  ＮＡＴ特性を有し、かつ、ルータ１０１がＣｏｎｅ若しくはＡＳ  ＮＡＴ特性のいずれを有するか特定されない場合には、上述の処理にしたがって、端末１００及び２００の間にＰ２Ｐ通信路を確立することができる。
【０２４２】
尚、本実施形態においては、端末１００は、ｎ個（すなわち、［ＧＰ１４］―［ＧＰ１２］）のＰ２Ｐ開始要求パケットを送信しているが、端末１００が送信するＰ２Ｐ開始要求パケットの数は、ｎ個でなくても良い。例えば、ＮＡＴ特性調査フェーズにおいて、ルータ２０１がポート［ＧＰ２４］を開いた後、端末１００及び２００が相互にＮＡＴ情報を交換している間に、端末２００上の他のアプリケーションが、［ＧＰ２４＋α］以上［ＧＰ２４＋ｎα］以下の範囲にある複数のポートのうちいくつかを占有する可能性が考えられる。この可能性を考慮し、Ｐ２Ｐ通信路確立の確実性を高めるために、端末１００は、ルータ２０１のポート番号［ＧＰ２４＋α］〜［ＧＰ２４＋（ｎ＋ｍ）α］を宛先ポート番号に設定した（ｎ＋ｍ）個のＰ２Ｐ開始要求パケット（ただし、ｍは整数である）を送信しても良い。
【０２４３】
＜接続シーケンス６：ルータ１０１及び２０１の両方がＰＳ  ＮＡＴ特性を有する場合の接続シーケンス＞
図１４Ａは、図７に示される接続シーケンス６の詳細を示す図であり、図１４Ｂは、図１４Ａに示されるポート番号を示す図である。
【０２４４】
端末１００は、情報交換フェーズにおいて、ルータ２０１がＰＳ  ＮＡＴであることと、ルータ２０１のポート割り当て間隔α２の値と、ルータ２０１のポート番号［ＧＰ２４］とを含むＮＡＴ特性情報を取得している。
【０２４５】
ＰＳ  ＮＡＴは、パケットにポート番号を割り当てるたびに、ポート割り当て間隔αずつインクリメントする。したがって、端末１００は、端末２００がＰ２Ｐ通信のために使用するポート番号が［ＧＰ２４＋α２］であると予測することができる。
【０２４６】
そこで、通信制御部１００７は、宛先ポート番号に［ＧＰ２４＋α２］が設定され、かつ、発信元ポート番号に［ＬＰ１］が設定されたＰ２Ｐ開始要求パケットを送信する（ステップＳ１８０１）。ルータ１０１もまたＰＳ  ＮＡＴ特性を有するため、ルータ１０１は、Ｐ２Ｐ開始要求パケットにポート番号［ＧＰ１４＋α１］を割り当てる（ただし、α１は、ルータ１０１のポート割り当て間隔である）。
【０２４７】
ステップＳ１８０１においてＰ２Ｐ開始要求パケットが送信された時点では、ルータ２０１は、宛先ポート番号に［ＧＰ２４＋α２］が設定されたパケットを端末２００に転送するようにＮＡＴを設定していない。したがって、ルータ２０１は、Ｐ２Ｐ開始要求パケットを破棄し、当該パケットを端末２００に転送しない。一方、ルータ１０１は、宛先に（ＩＰＧ１、ＧＰ１４＋α１）が設定され、発信元ポート番号に［ＧＰ２４＋α２］が設定されたパケットを、端末１００（ＩＰＬ１、ＬＰ１）に転送するようにＮＡＴを設定する。
【０２４８】
一方、端末２００は、情報交換フェーズにおいて、ルータ１０１がＰＳ  ＮＡＴ特性を有し手いることと、ポート割当て間隔α１の値と、ポート番号［ＧＰ１４］とを含むＮＡＴ特性情報を取得している。端末２００は、ルータ１０１がＰ２Ｐ通信に使用するポート番号が［ＧＰ１４＋α１］であると予測し、宛先ポート番号に［ＧＰ１４＋α１］が設定され、発信元ポート番号に［ＬＰ１］が設定されたＰ２Ｐ開始要求パケットを送信する（ステップＳ１８０２）。
【０２４９】
ルータ１０１は、端末２００から送信されたＰ２Ｐ開始要求パケットを端末１００に転送する。端末１００は、ルータ１０１によって転送されたＰ２Ｐ開始要求パケットを受信すると、Ｐ２Ｐ開始応答パケットを端末２００に送信する（ステップＳ１８０３）。
【０２５０】
ルータ１０１及び２０１が共にＰＳ  ＮＡＴ特性を有する場合には、上述の処理にしたがって、端末１００及び２００の間にＰ２Ｐ通信路を確立することができる。
【０２５１】
尚、本実施の形態においては、端末１００は、宛先ポート番号に［ＧＰ２４＋α２］が設定された１つＰ２Ｐ開始要求パケットを送信しているが、端末１００は、複数のＰ２Ｐ開始要求パケットを送信しても良い。端末１００は、Ｐ２Ｐ通信路確立に成功する可能性を高めるために、例えば［ＧＰ２４＋２×α２］及び［ＧＰ２４＋３×α２］のように、α２ずつインクリメントされたポート番号が宛先ポート番号に設定された複数のＰ２Ｐ開始要求パケットを送信しても良い。
【０２５２】
また、本実施形態においては、パケットにポートを割り当てる度に、割り当てられるポート番号が増加するルータが示されているが、本発明は、パケットにポートを割り当てる度に、割り当てられるポートが減少するルータにも同様に適用することができることは、言うまでもない。この場合、ポート番号割り当て間隔は、２つのポート番号の差の絶対値を算出することによって得られる。
【０２５３】
（その他の変形例）
上述の実施形態に係る通信システムは、次のように構成されても良い。
【０２５４】
端末１００及び２００は、最初にＰ２Ｐ通信路を確立した際に判断したＮＡＴ特性を記憶しておき、記憶されるＮＡＴ特性を再利用することによって、２回目以降にＰ２Ｐ通信路を確立する際に、ＮＡＴ特性調査フェーズを省略しても良い。また、端末１００及び２００は、ＮＡＴ調査フェーズの処理を実行することなくＰ２Ｐ通信路確立処理を進め、Ｐ２Ｐ通信路の確立に失敗したときに初めて、ＮＡＴ特性調査フェーズの処理を実行しても良い。
【０２５５】
このような構成によれば、端末１００及び２００がＮＡＴ特性を調査する回数が低減されるので、２回目以降のＰ２Ｐ通信路確立処理を効率的に実行することができる。
【０２５６】
更に、端末１００及び２００が一旦調査されたルータのＮＡＴ特性を記憶する場合、端末１００及び２００は、次のような手順に従って、記憶されているＮＡＴ特性が変化していないことを確認すれば良い。端末１００及び２００の各々は、Ｐ２Ｐ通信路確立フェーズの期間または端末１００及び２００がＰ２Ｐ通信している期間に、接続先装置のポート番号を含むパケットを当該接続先装置に送信する。また、サーバ００１は、サーバ００１との通信のためにルータ１０１が使用するポート番号含むパケットを、端末１００及び２００の各々に送信する。端末１００及び２００は、接続先装置から通知されたポート番号と、サーバ００１との通信のためにされるルータのポート番号とを比較することによって、ＮＡＴ特性を確認することができる。
【０２５７】
更に、端末装置１００及び２００は、ＮＡＴ特性調査フェーズにおいて、自身が接続されるルータがＣｏｎｅ若しくはＡＳ  ＮＡＴ特性のいずれかを有すると判断した場合、Ｃｏｎｅ  ＮＡＴ特性またはＡＳ  ＮＡＴ特性のいずれを有するかを特定しても良い。以下、Ｐ２Ｐ通信路確立フェーズにおいて、端末１００及び２００の各々が、自身のルータがＣｏｎｅまたはＡＳ  ＮＡＴ特性のいずれを有するかを判断するための処理について説明する。
【０２５８】
図１５Ａは、ルータ１０１のＮＡＴ特性がＣｏｎｅ若しくはＡＳ  ＮＡＴ特性のいずれであるかを特定する処理を含む接続シーケンス図であり、図１５Ｂは、図１５Ａに示されるポート番号を示す図である。
【０２５９】
端末１００は、情報交換フェーズにおいて、ルータ２０１がＣｏｎｅ  ＮＡＴ特性を有することと、ルータ２０１のポート番号［ＧＰ２２］を含むＮＡＴ特性情報を取得している。ルータ２０１がＣｏｎｅ  ＮＡＴ特性を有するので、端末１００は、端末２００がＰ２Ｐ通信に使用するルータ２０１のポート番号が［ＧＰ２２］であると予測することができる。
【０２６０】
そこで、通信制御部１００７は、発信元ポート番号に［ＬＰ１］が設定され、かつ、宛先ポート番号に［ＧＰ２２］が設定されたパケットを、Ｐ２Ｐ開始要求として送信する（ステップＳ２００１）。尚、ルータ１０１は、端末１００から送信されたパケットにポート番号［ＧＰ１３］を割り当てる。
【０２６１】
ステップＳ２００１においてＰ２Ｐ開始要求パケットが送信された段階では、ルータ２０１は、ルータ２０１は、端末１００から送信された宛先ポート番号が［ＧＰ２２］に設定されたパケットを転送するようにＮＡＴを設定していない。したがって、ルータ２０１は、受信したＰ２Ｐ開始要求パケットを破棄し、当該パケットを端末２００に転送しない。この段階において、ルータ１０１は、発信元ポート番号にルータ２０１のポート番号［ＧＰ２２］が設定され、かつ、宛先ＩＰアドレス及び宛先ポート番号に（ＩＰＧ１、ＧＰ１３）が設定されたパケットを、端末１００（ＩＰＬ１、ＬＰ１）へ転送するようにＮＡＴを設定する。
【０２６２】
一方、端末２００は、情報交換フェーズにおいて、端末１００が接続されるルータ１０１がＣｏｎｅ若しくはＡＳ  ＮＡＴ特性のいずれかを有することを示す情報と、ＮＡＴ特性調査フェーズ及び準備フェーズにおいて、ルータ１０１が開いたポート番号［ＧＰ１２］及び［ＧＰ１４］とを示すＮＡＴ特性情報を取得している。
【０２６３】
端末２００は、ルータ１０１のＮＡＴ特性に関する情報を取得すると、発信元ポート番号に［ＬＰ１］が設定され、かつ、宛先ポート番号に［ＧＰ１２］以上［ＧＰ１４］未満の値が設定された複数のＰ２Ｐ開始要求パケットを送信する（ステップＳ２００２）。
【０２６４】
端末２００から送信された複数のＰ２Ｐ開始要求パケットのうち、ルータ１０１は、ルータ２０１によって宛先ポート番号に［ＧＰ１３］に設定された１つのパケットのみを端末１００に転送する。端末１００は、ルータ１０１によって転送されたＰ２Ｐ開始要求パケットを受信すると、Ｐ２Ｐ開始応答パケットを端末２００に送信する（ステップＳ２００３）。
【０２６５】
ルータ１０１がＣｏｎｅ若しくはＡＳ  ＮＡＴ特性のいずれかを有し、かつ、ルータ２０１がＣｏｎｅ  ＮＡＴ特性を有する場合には、上述の処理にしたがって、端末１００及び２００の間にＰ２Ｐ通信路を確立することができる。
【０２６６】
次に、端末２００の通信制御部２００７は、端末１００からＰ２Ｐ開始応答パケットを受信すると、当該パケットの発信元ポート番号、すなわち、ルータ１０１のポート番号［ＧＰ１３］を取り出し、取り出したポート番号［ＧＰ１３］を含む通知パケットを端末１００に送信する（ステップＳ２００４）。
【０２６７】
端末１００の中継特性判断部１００４は、端末２００から送信された通知パケットを参照して、ルータ１０１のポート番号［ＧＰ１３］と、ＮＡＴ特性調査フェーズにおいて調査したポート番号［ＧＰ１２］とを比較する（ステップＳ２００５）。比較した結果、中継特性判断部１００４は、［ＧＰ１３］が［ＧＰ１２］に等しい場合には（ステップＳ２００５でＹｅｓ）、ルータ１０１がＣｏｎｅ  ＮＡＴ特性を有すると判断する（ステップＳ２００６）。それ以外の場合には（ステップＳ２００５）、中継特性判断部１００４は、ルータ１０１がＡＳ  ＮＡＴ特性を有すると判断する（ステップＳ２００６）。
【０２６８】
次に、中継特性判断部１００４は、ポート番号［ＧＰ１３］と［ＧＰ１２］との差を、ルータ１０１のポート割り当て間隔Δとして、所定の記憶部に格納する（ステップＳ２００８）。
【０２６９】
図１６は、一旦調査されたＮＡＴ特性が記憶されている場合における処理を示す接続シーケンス図である。
【０２７０】
端末１００は、ルータ１０１を既に調査したので、ＮＡＴ特性調査フェーズにおける処理を省略し、準備フェーズにおける処理を実行する。
【０２７１】
＜準備フェーズ＞
まず、端末１００において、アドレス情報調査要求送信部１００１は、発信元ポート番号に端末１００のポート番号［ＬＰ１］が設定され、かつ、宛先ポート番号にサーバ００１のポート番号［ＳＰ０］が設定されたポート番号調査要求パケットを送信する（ステップＳ２１０１）。
【０２７２】
サーバ００１において、アドレス情報調査部００１１は、ポート番号調査要求パケットの発信元ポート番号、すなわち、ルータ１０１のポート番号［ＧＰ１１］を含むポート番号調査応答パケットを、通信部００１４を介して送信する（ステップＳ２１０２）。
【０２７３】
次に、端末１００において、直接通信準備要求送信部１００３は、宛先に端末２００のＩＰアドレス及びポート番号が設定されたＰ２Ｐ通信準備パケットを送信することによって、端末２００とＰ２Ｐ通信するために使用するポート番号［ＧＰ１２］をルータ１０１上に準備する（ステップＳ２１０３）。ルータ１０１は、端末２００からルータ１０１（ＩＰＧ１、ＧＰ１２）に送信されたパケットを受け付けることができるようにＮＡＴを設定する。
【０２７４】
同様に、端末２００は、ＮＡＴ特性調査フェーズにおける処理を省略して、準備フェーズにおける処理（ステップＳ２１０４〜Ｓ２１０６）を実行する。ルータ２０１は、端末１００からルータ２０１（ＩＰＧ１、ＧＰ２２）に送信されたパケットを受け付けることができるようにＮＡＴを設定する。
【０２７５】
＜情報交換フェーズ＞
次に、端末２００は、ルータ２０１のＮＡＴ特性についての情報を含むＮＡＴ情報通知パケットをサーバ００１に送信する（ステップＳ２１０７）。ＮＡＴ情報は、ルータ２０１がＰｏｒｔ  Ｒｅｕｓｅ特性を有するか否かに応じて、下記のように、異なる情報を含む。
（ｅ）ルータ２０１がＰｏｒｔ  Ｒｅｕｓｅ特性を有していない場合、ＮＡＴ情報は、ルータ２０１のＮＡＴ特性と、ルータ２０１のポート番号［ＧＰ２１］とを少なくとも含む。また、前回のＰ２Ｐ通信の際に、ルータ２０１がＡＳ  ＮＡＴ特性を有すると判断された場合には、ＮＡＴ情報は、中継特性判断部２００４が記憶したポート割り当て間隔Δの値を更に含む。
（ｆ）ルータ２０１がＰｏｒｔ  Ｒｅｕｓｅ特性を有する場合、ＮＡＴ情報は、端末２００が次のＰ２Ｐ通信路確立フェーズで新たに開くことを予定するポート番号［ＬＰ４］を少なくとも含む。
【０２７６】
次に、サーバ１００において、中継情報転送部００１３は、端末２００から送信されたＮＡＴ情報通知パケットを受信すると、受信したＮＡＴ情報通知パケットを、通信部００１４を介して、端末１００に転送する（ステップＳ２１０８）。
【０２７７】
同様に、端末１００において、中継情報送信部１００５は、ルータ１０１のＮＡＴ特性についての情報を含むＮＡＴ情報通知パケットをサーバ００１に送信する（ステップＳ２１０９）。ＮＡＴ情報は、ルータ１０１がＰｏｒｔ  Ｒｅｕｓｅ特性を有するか否かに応じて、下記のように、異なる情報を含む。
（ｇ）ルータ１０１がＰｏｒｔ  Ｒｅｕｓｅ特性を有していない場合、ＮＡＴ情報は、ルータ１０１のＮＡＴ特性と、ルータ１０１のポート番号［ＧＰ１１］とを少なくとも含む。また、前回のＰ２Ｐ通信の際に、ルータ１０１がＡＳ  ＮＡＴ特性を有すると判断された場合には、ＮＡＴ情報は、中継特性判断部１００４が記憶したポート割り当て間隔Δの値を更に含む。
（ｈ）ルータ１０１がＰｏｒｔ  Ｒｅｕｓｅ特性を有する場合、ＮＡＴ情報は、端末１００が次のＰ２Ｐ通信路確立フェーズで新たに開くことを予定するポート番号［ＬＰ３］を少なくとも含む。
【０２７８】
次に、サーバ１００において、中継情報転送部００１３は、端末１００から送信されたＮＡＴ情報通知パケットを受信すると、受信したＮＡＴ情報通知パケットを、通信部００１４を介して、端末２００に転送する（ステップＳ２１１０）。
【０２７９】
尚、本実施形態においては、端末２００が端末１００より先にＮＡＴ情報通知パケットを送信しているが、端末１００が端末２００より先にＮＡＴ情報通知パケットを送信しても良い。
【０２８０】
＜接続フェーズ＞
以下においては、説明の簡略化のために、ルータ１０１がＣｏｎｅ  ＮＡＴ特性を有し、かつ、ルータ２０１がＡＳ  ＮＡＴ特性を有する場合を想定する。
【０２８１】
端末１００の通信制御部１００７は、ルータ２０１がＡＳ  ＮＡＴ特性を有することと、ルータ２０１のポート番号［ＧＰ２１］と、ルータ２０１のポート割り当て間隔Δとを含むＮＡＴ情報通知パケットに基づいて、端末２００が端末１００とＰ２Ｐ通信する際に、ルータが使用するポート番号が［ＧＰ２１＋Δ］であることを予測する。通信制御部１００７は、通信部１００８を介して、宛先ポート番号に［ＧＰ２１＋Δ］が設定されたＰ２Ｐ開始要求パケットをルータ２０１に送信する（ステップＳ２１１１）。尚、ルータ１０１は、Ｐ２Ｐ開始要求パケットにポート番号［ＧＰ１２］を割り当てる。
【０２８２】
ステップＳ２１１１においてＰ２Ｐ開始要求パケットが送信された時点では、ルータ２０１は、宛先ポート番号に［ＧＰ２１＋Δ］が設定されたパケットを端末２００に転送するようにＮＡＴを設定していない。したがって、ルータ２０１は、受信したＰ２Ｐ開始要求パケットを破棄し、当該パケットを端末２００に転送しない。一方、ルータ１０１は、Ｐ２Ｐ開始要求パケットを転送することによって、宛先に（ＩＰＧ１、ＧＰ１２）が設定され、かつ、発信元ポート番号に［ＧＰ２１＋Δ］が設定されたパケットを端末１００（ＩＰＬ１、ＬＰ１）に転送するようにＮＡＴを設定する。
【０２８３】
一方、端末２００は、情報交換フェーズにおいて、ルータ１０１がＣｏｎｅ  ＮＡＴ特性を有していることと、ルータ１０１のポート番号［ＧＰ１１］とを含むＮＡＴ特性情報を取得している。端末２００は、ルータ１０１がＰ２Ｐ通信に使用するポート番号が［ＧＰ１１］であると予測し、宛先ポート番号に［ＧＰ１１］が設定され、発信元ポート番号に［ＬＰ１］が設定されたＰ２Ｐ開始要求パケットを送信する（ステップＳ２１１２）。尚、ルータ１０１は、Ｃｏｎｅ  ＮＡＴ特性を有するので、［ＧＰ１２］は、［ＧＰ１１］と同一である。
【０２８４】
ルータ１０１は、端末２００から送信されたＰ２Ｐ開始要求パケットを端末１００に転送する。端末１００は、ルータ１０１によって転送されたＰ２Ｐ開始要求パケットを受信すると、Ｐ２Ｐ開始応答パケットを端末２００に送信する（ステップＳ２１１３）。
【０２８５】
尚、Ｐ２Ｐ通信路確立フェーズ（ステップＳ２１１１〜Ｓ２１１３）において、端末１００及び２００がＰ２Ｐ通信路の確立に失敗した場合、端末１００及び２００の各々は、ＮＡＴ特性調査フェーズから再度接続処理を繰り返せば良い。
【０２８６】
また、図７に示されるフローチャートにおいて、２つの端末のうちの一方は、他方の端末に接続されているルータがＰＳ  ＮＡＴ特性を有する場合（ステップＳ１２０４〜Ｓ１２０６）にのみ、自身に接続されているルータのＮＡＴ情報通知パケット情報特性を判断しているが、常に、自身に接続されているルータのＮＡＴ特性を判断しても良い。この場合、２つの端末の各々は、ＮＡＴ特性の組み合わせ毎に、接続シーケンスを選択すれば良い。
【０２８７】
尚、本実施形態においては、説明の簡略化のために、端末１００及びサーバ００１が１台のルータ１０１によって接続されている例を中心に示したが、端末１００及びサーバ００１は、複数のルータを介して接続されていても良い。また、端末２００及びサーバ００１間に配置されるルータの数も同様である。この点を以下に説明する。
【０２８８】
図１７Ａは、端末が３つのルータを介してグローバルネットワークに接続されている例を示す図である。
【０２８９】
図１７Ａに示されるように、端末１００は、Ｃｏｎｅ  ＮＡＴ特性を有するルータ１〜３を介してグローバルネットワーク００に接続されている。端末１００が発信元ポート番号に［ＬＰ１］が設定されたパケットを送信すると、当該パケットは、ルータ１のポートＲＰ１１、ルータ２のポートＲＰ２１、ルータ３のポートＲＰ３１を通って、ネットワーク００に到達する。この場合、グローバルネットワーク００に接続されるサーバは、見かけ上、端末１００が１台のＣｏｎｅ  ＮＡＴ特性を有するルータを介して自身に接続されていると見なすことができる。
【０２９０】
図１７Ｂは、端末が３つのルータを介してグローバルネットワークに接続されている他の例を示す図である。
【０２９１】
図１７Ｂに示されるように、端末１００は、Ｃｏｎｅ  ＮＡＴ特性を有するルータ１と、ＰＳ  ＮＡＴ特性を有するルータ２と、Ｃｏｎｅ  ＮＡＴ特性を有するルータ３とを介してグローバルネットワーク００に接続されている。端末１００が発信元ポート番号に［ＬＰ１］が設定されたパケットを送信すると、当該パケットは、ルータ１のポートＰＲ１１を通じてルータ２に到達する。ルータ２は、ＰＳ  ＮＡＴ特性を有するので、受信したパケットに異なるポートＲＰ２１、ＲＰ２２及びＲＰ２３を割り当て、パケットをルータ３に転送する。ルータ３がＣｏｎｅ  ＮＡＴ特性を有する場合であっても、送信元ポート番号が異なるパケットの各々は、ルータ３の異なるポートを通じてグローバルネットワークに転送されるので、グローバルネットワーク００に接続されるサーバは、見かけ上、端末１００が１台のＰＳ  ＮＡＴ特性を有するルータを介して自身に接続されていると見なすことができる。
【０２９２】
このように、端末及びサーバが複数のルータを介して接続されていても、グローバルネットワーク００から見える見かけ上のＮＡＴ特性に基づいて、接続シーケンスを選択することによって、２台の端末間にＰ２Ｐ通信路を確立することができる。
【０２９３】
尚、上記の実施形態に係る通信装置の機能ブロック（図２Ａ及び図２Ｂ）は、記憶装置（ＲＯＭ、ＲＡＭ、ハードディスク等）に格納された上述の処理手順をコンピュータに実行させることができるプログラムを、コンピュータに実行させることによっても実現できる。このコンピュータは、携帯端末装置に組み込まれたコンピュータを含む概念である。この場合、当該プログラムは、記録媒体を介して記憶装置内に格納された後に実行されても良いし、記憶媒体から直接実行されても良い。また、上記の実施形態に係る通信装置の機能ブロックは、集積回路として実現されても良い。
【産業上の利用可能性】
【０２９４】
本発明に係る通信装置、通信方法および通信システムは、１つのＩＰアドレスを有する１台のサーバとのみ通信することによって、ルータのＮＡＴ特性を調査することができる。したがって、本発明は、例えば、異なるプライベートネットワークに属する２台の端末の間でＰ２Ｐ通信を行う家電製品、通信機器等に有用である。
【図面の簡単な説明】
【０２９５】
【図１】本発明の実施形態に係る通信システムの全体構成を示すブロック図
【図２Ａ】図１に示される端末の概略構成を示すブロック図
【図２Ｂ】図１に示される端末の概略構成を示すブロック図
【図２Ｃ】図１に示されるサーバの概略構成を示すブロック図
【図３】本実施形態に係る通信システムがＰ２Ｐ通信路を確立するために実行する処理の概略を示すシーケンス図
【図４Ａ】図３に示されるＮＡＴ特性調査フェーズ及び準備フェーズにおける処理の詳細を示すシーケンス図
【図４Ｂ】図４Ａに示されるステップＳ９０８の処理の詳細を示すフローチャート
【図５Ａ】図４Ａに示されるステップＳ９１０を説明するための図
【図５Ｂ】図４Ａに示されるステップＳ９１２を説明するための図
【図５Ｃ】図４Ａに示されるステップＳ９１３を説明するための図
【図５Ｄ】図４Ａに示されるステップＳ９１３を説明するための図
【図６】図３に示される情報交換フェーズにおける処理の詳細を示すシーケンス図
【図７】図６に示されるＰ２Ｐ通信路確立フェーズにおいて、端末が実行する処理を示すフローチャート
【図８】図７に示される接続シーケンス１の詳細を示す図
【図９Ａ】図７に示される接続シーケンス２の詳細を示す図
【図９Ｂ】図９Ａに示されるポート番号を示す図
【図１０】ルータのポート番号割り当て間隔を説明するための図
【図１１】図７に示される接続シーケンス３の詳細を示す図
【図１２Ａ】図７に示される接続シーケンス４の詳細を示す図
【図１２Ｂ】図１２Ａに示されるポート番号を示す図
【図１２Ｃ】端末及びルータ間のポート番号の関係を示す図
【図１３Ａ】図７に示される接続シーケンス５の詳細を示す図
【図１３Ｂ】図１３Ａに示されるポート番号を示す図
【図１４Ａ】図７に示される接続シーケンス６の詳細を示す図
【図１４Ｂ】図１４Ａに示されるポート番号を示す図
【図１５Ａ】ルータのＮＡＴ特性がＣｏｎｅ若しくはＡＳ  ＮＡＴ特性のいずれであるかを特定する処理を含む接続シーケンス図
【図１５Ｂ】図１５Ａに示されるポート番号を示す図
【図１６】一旦調査されたＮＡＴ特性が記憶されている場合における処理を示す接続シーケンス図
【図１７Ａ】端末が３つのルータを介してグローバルネットワークに接続されている例を示す図
【図１７Ｂ】端末が３つのルータを介してグローバルネットワークに接続されている他の例を示す図
【図１８Ａ】Ｆｕｌｌ  Ｃｏｎｅ  ＮＡＴと呼ばれるＮＡＴを説明するための図
【図１８Ｂ】Ｒｅｓｔｒｉｃｔｅｄ  Ｃｏｎｅ  ＮＡＴ（Ｒ  ＮＡＴ）と呼ばれるＮＡＴを説明するための図
【図１８Ｃ】Ｐｏｒｔ  Ｒｅｓｔｒｉｃｔｅｄ  Ｃｏｎｅ  ＮＡＴ（ＰＲ  ＮＡＴ）と呼ばれるＮＡＴ特性を説明するための図
【図１８Ｄ】Ａｄｒｅｓｓ  Ｓｅｎｓｉｔｉｖｅ  Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ（ＡＳ  ＮＡＴ）と呼ばれるＮＡＴを説明するための図
【図１８Ｅ】Ｐｏｒｔ  Ｓｅｎｓｉｔｉｖｅ  Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ（ＰＳ  ＮＡＴ）と呼ばれるＮＡＴを説明するための図
【図１９Ａ】Ｐｏｒｔ  Ｒｅｕｓｅ特性の概略を説明するための図
【図１９Ｂ】Ｐｏｒｔ  Ｒｅｕｓｅ特性を有するルータの機能を説明するための図
【図２０Ａ】ＳＴＵＮ−ＴｅｓｔＩの概略を示す図
【図２０Ｂ】ＳＴＵＮ−ＴｅｓｔＩＩの概略を示す図
【図２０Ｃ】ＳＴＵＮ−ＴｅｓｔＩＩＩの概略を示す図
【図２１】ＳＴＵＮによってＮＡＴ特性を調査するためのフローチャート
【図２２】ＳＴＵＮを利用するＰ２Ｐ通信路確立方法を示すシーケンス図
【図２３】Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有するルータを介して接続される２つの通信端末に、ＳＴＵＮを利用するＰ２Ｐ通信路確立方法を適用した場合の処理手順を示すシーケンス図
【図２４】Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有するルータを介して接続される２つの通信端末に、ＳＴＵＮを利用するＰ２Ｐ通信路確立方法を適用した場合の処理手順を示すシーケンス図
【図２５】従来のＰ２Ｐ通信路確立方法を示すシーケンス図
【符号の説明】
【０２９６】
００  グローバルネットワーク
０１、０２  プライベートネットワーク
００１  サーバ
１００、２００  （宅内）端末
１０１、２０１  ルータ
００１１  アドレス情報調査部
００１２  アドレス情報送信部
００１３  中継情報転送部
１００１、２００１  アドレス情報調査要求送信部
１００２、２００２  アドレス情報受信部
１００３、２００３  直接通信準備要求送信部
１００４、２００４  中継特性判断部
１００５、２００５  中継情報送信部
１００６、２００６  中継情報受信部
１００７、２００７  通信制御部
１００８、２００８  通信部
【図１】
2006295909.tif 000003
【図２Ａ】
2006295909.tif 000004
【図２Ｂ】
2006295909.tif 000005
【図２Ｃ】
2006295909.tif 000006
【図３】
2006295909.tif 000007
【図４Ａ】
2006295909.tif 000008
【図４Ｂ】
2006295909.tif 000009
【図５Ａ】
2006295909.tif 000010
【図５Ｂ】
2006295909.tif 000011
【図５Ｃ】
2006295909.tif 000012
【図５Ｄ】
2006295909.tif 000013
【図６】
2006295909.tif 000014
【図７】
2006295909.tif 000015
【図８】
2006295909.tif 000016
【図９Ａ】
2006295909.tif 000017
【図９Ｂ】
2006295909.tif 000018
【図１０】
2006295909.tif 000019
【図１１】
2006295909.tif 000020
【図１２Ａ】
2006295909.tif 000021
【図１２Ｂ】
2006295909.tif 000022
【図１２Ｃ】
2006295909.tif 000023
【図１３Ａ】
2006295909.tif 000024
【図１３Ｂ】
2006295909.tif 000025
【図１４Ａ】
2006295909.tif 000026
【図１４Ｂ】
2006295909.tif 000027
【図１５Ａ】
2006295909.tif 000028
【図１５Ｂ】
2006295909.tif 000029
【図１６】
2006295909.tif 000030
【図１７Ａ】
2006295909.tif 000031
【図１７Ｂ】
2006295909.tif 000032
【図１８Ａ】
2006295909.tif 000033
【図１８Ｂ】
2006295909.tif 000034
【図１８Ｃ】
2006295909.tif 000035
【図１８Ｄ】
2006295909.tif 000036
【図１８Ｅ】
2006295909.tif 000037
【図１９Ａ】
2006295909.tif 000038
【図１９Ｂ】
2006295909.tif 000039
【図２０Ａ】
2006295909.tif 000040
【図２０Ｂ】
2006295909.tif 000041
【図２０Ｃ】
2006295909.tif 000042
【図２１】
2006295909.tif 000043
【図２２】
2006295909.tif 000044
【図２３】
2006295909.tif 000045
【図２４】
2006295909.tif 000046
【図２５】
2006295909.tif 000047