(57)【要約】  通信装置（１０）は、宛先ポート番号に［ＳＰ１］を設定し、かつ、発信元ポート番号に互いに異なる［ＬＰ１］〜［ＬＰ３］のいずれかを設定した３つのアドレス情報調査要求１〜３をサーバ（００１）に送信する。また、通信装置（１０）は、アドレス情報調査要求１及び３の間に、発信元ポート番号に［ＬＰ１］〜［ＬＰ３］のいずれかを設定したＰ２Ｐ通信準備パケットを、サーバ（００１）とは異なる宛先に送信する。通信装置（１０）は、アドレス情報調査応答１〜３によって通知されるルータ（１０１）のポート番号［ＧＰ１１］、［ＧＰ１２］及び［ＧＰ１４］に基づいて、ルータ（１０１）のＮＡＴ特性を判別する。
2008035578.tif 000002
【特許請求の範囲】
【請求項１】
ＮＡＴ（ネットワークアドレス変換）機能を有する第１の中継装置を介してサーバに接続される通信装置であって、
前記通信装置のローカルポート番号であって互いに異なるポート番号が発信元ポート番号に設定され、かつ、前記サーバのポート番号であって互いに同一のポート番号が宛先ポート番号に設定された複数のアドレス情報調査要求パケットを、前記サーバに１つずつ送信するアドレス情報調査要求送信部と、
前記アドレス情報調査要求送信部が最初のアドレス情報調査要求パケットを送信した後、最後のアドレス情報調査要求パケットを送信する前までの間に、前記複数のアドレス情報調査要求パケットのいずれかの発信元ポート番号と同一のポート番号が発信元ポート番号に設定された通信準備パケットを、前記サーバとは異なる宛先に送信する通信準備要求送信部と、
前記アドレス情報調査要求パケットに応答して前記サーバから返送され、かつ、前記第１の中継装置において前記アドレス情報調査要求パケットの発信元ポート番号から変換された中継ポート番号を含むアドレス情報調査応答パケットを、前記アドレス情報調査要求パケットと同じ数だけ受信するアドレス情報受信部とを備える、通信装置。
【請求項２】
前記アドレス情報受信部において受信した各前記アドレス情報調査応答パケットに含まれる前記中継ポート番号に基づいて、前記第１の中継装置のＮＡＴ特性を判断する中継特性判断部を更に備える、請求項１に記載の通信装置。
【請求項３】
前記アドレス情報調査要求送信部は、
宛先ポート番号に前記サーバのポート番号が設定され、かつ、発信元ポート番号に前記通信装置の第１のローカルポート番号が設定された第１のアドレス情報調査要求パケットと、
宛先ポート番号が前記第１のアドレス情報調査要求パケットと同一であり、かつ、発信元ポート番号に前記第１のローカルポート番号とは異なる前記通信装置の第２のローカルポート番号が設定された第２のアドレス情報調査要求パケットと、
宛先ポート番号が前記第１のアドレス情報調査要求パケットと同一であり、かつ、発信元ポート番号に前記第１及び第２のローカルポート番号とは異なる前記通信装置の第３のローカルポート番号が設定された第３のアドレス情報調査要求パケットとを１つずつ送信し、
前記アドレス情報受信部は、
前記第１のアドレス情報調査要求パケットに応答して前記サーバから返送され、前記第１の中継装置の第１の中継ポート番号を含む第１のアドレス情報パケットと、
前記第２のアドレス情報調査要求パケットに応答して前記サーバから返送され、前記第１の中継装置の第２の中継ポート番号を含む第２のアドレス情報パケットと、
前記第３のアドレス情報調査要求パケットに応答して前記サーバから返送され、前記第１の中継装置の第３の中継ポート番号を含む第３のアドレス情報パケットとを受信し、
前記中継特性判断部は、前記第１と第２の中継ポート番号から計算される第１の差分値と、前記第２と第３の中継ポート番号から計算される第２の差分値とを計算し、前記第１及び第２の差分値の比較に基づいて、前記第１の中継装置のＮＡＴ特性を判断することを特徴とする、請求項２に記載の通信装置。
【請求項４】
前記サーバには、ＮＡＴ機能を有する第２の中継装置を介して、接続先通信装置が接続されており、
前記通信装置は、前記中継特性判断部によって判定された第１の中継装置のＮＡＴ特性に基づいて、前記接続先通信装置とのピア・ツー・ピア通信に前記第１の中継装置が割り当てる第１のＰ２Ｐ中継ポート番号を予測し、予測した第１のＰ２Ｐ中継ポート番号を含む第１の中継情報パケットを前記サーバに送信する中継情報送信部と、
接続先通信装置とのピア・ツー・ピア通信に前記第２の中継装置が割り当てる第２のＰ２Ｐ中継ポート番号を含む第２の中継情報パケットを、前記サーバから受信する中継情報受信部と、
前記接続先通信装置にピア・ツー・ピア通信の開始を要求するために、前記第２の中継情報パケットに含まれる前記第２のＰ２Ｐ中継ポート番号を宛先ポート番号に設定した開始要求パケットを送信する通信制御部とを更に備える、請求項３に記載の通信装置。
【請求項５】
前記中継情報送信部は、前記中継特性判断部が、前記第１及び第２の差分値が同じ値であると判断した場合に、前記第１〜第３の中継ポート番号のうちいずれか１つを前記第１のＰ２Ｐ中継ポート番号として含む前記第１の中継情報パケットを送信し、前記中継特性判断部が、前記第１及び第２の差分値が不一致であると判断した場合に、前記第３の中継ポート番号と、前記第１及び第２の差分値のうちいずれか小さい方とを加算した値を前記第１のＰ２Ｐ中継ポート番号として含む前記第１の中継情報パケットを送信することを特徴とする、請求項４に記載の通信装置。
【請求項６】
前記中継情報送信部は、前記中継特性判断部が、前記第１の中継ポート番号及び前記第１のローカルポート番号が一致すると判断した場合に、任意のローカルポート番号を前記第１のＰ２Ｐ中継ポート番号として含む前記第１の中継情報パケットを送信することを特徴とする、請求項４に記載の通信装置。
【請求項７】
前記通信準備要求送信部は、前記通信準備パケットが前記第１の中継装置に到達し、かつ、前記第２の中継装置には到達しないように、前記通信準備パケットのヘッダに含まれるＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）の値を調整することを特徴とする、請求項４に記載の通信装置。
【請求項８】
前記通信装置は、前記第１及び第２の差分値を保持するための記憶部を更に備え、
２回目以降のピア・ツー・ピア通信開始前において、前記中継特性判断部は、前記記憶部に保持される前記第１及び第２の差分値から前記第１の中継装置のＮＡＴ特性を判断することを特徴とする、請求項４に記載の通信装置。
【請求項９】
前記アドレス情報調査要求送信部は、宛先ポート番号に前記サーバのポート番号が設定され、かつ、発信元ポート番号に前記通信装置の第４のローカルポート番号が設定された第４のアドレス情報調査要求パケットを送信し、
前記アドレス情報受信部は、前記第４のアドレス情報調査要求パケットに応答して前記サーバから返送され、前記第１の中継装置の第４の中継ポート番号を含む第４のアドレス情報パケットを受信し、
前記中継情報送信部は、前記中継特性判断部が、前記記憶部に保持される前記第１及び第２の差分値が同じ値であると判断した場合、前記第４の中継ポート番号を前記第１のＰ２Ｐ中継ポート番号として含む前記第１の中継情報パケットを送信し、前記中継特性判断部が、前記記憶部に保持されている第１及び第２の差分値が不一致であると判断した場合、前記第４の中継ポート番号と、前記保持されている第１及び第２の差分値のうちいずれか小さい方とを加算した値を前記第１のＰ２Ｐ中継ポート番号として含む前記第１の中継情報パケットを送信することを特徴とする、請求項８に記載の通信装置。
【請求項１０】
前記通信装置は、前記第１の中継ポート番号及び前記第１のローカルポート番号が一致すると判断した場合に、前記第１の中継ポート番号及び前記第１のローカルポート番号が一致することを示す情報を前記記憶部に記憶し、
２回目以降のピア・ツー・ピア通信開始前において、前記中継特性判断部が、前記記憶部に前記第１の中継ポート番号及び前記第１のローカルポート番号が一致することを示す情報が保持されていると判断した場合、前記中継情報送信部は、任意のローカルポート番号を前記第１のＰ２Ｐ中継ポート番号として含む前記第１の中継情報パケットを送信することを特徴とする、請求項８に記載の通信装置。
【請求項１１】
各前記アドレス情報調査応答パケットに含まれる前記中継ポート番号の間隔と、当該間隔に応じて異なるＮＡＴ特性とを対応付けした対応情報を、予め保持した記憶部を更に備え、
前記アドレス情報調査要求送信部は、
宛先ポート番号に前記サーバのポート番号が設定され、かつ、発信元ポート番号に前記通信装置の第１のローカルポート番号が設定された第１のアドレス情報調査要求パケットと、
宛先ポート番号が前記第１のアドレス情報調査要求パケットと同一であり、かつ、発信元ポート番号に前記第１のローカルポート番号とは異なる前記通信装置の第２のローカルポート番号が設定された第２のアドレス情報調査要求パケットとを１つずつ送信し、
前記アドレス情報受信部は、
前記第１のアドレス情報調査要求パケットに応答して前記サーバから返送され、前記第１の中継装置の第１の中継ポート番号を含む第１のアドレス情報パケットと、
前記第２のアドレス情報調査要求パケットに応答して前記サーバから返送され、前記第１の中継装置の第２の中継ポート番号を含む第２のアドレス情報パケットとを受信し、
前記中継特性判断部は、前記対応情報において前記受信した第１と第２の中継ポート番号の間隔に対応するＮＡＴ特性を、前記第１の中継装置のＮＡＴ特性と判断することを特徴とする、請求項２に記載の通信装置。
【請求項１２】
ＮＡＴ（ネットワークアドレス変換）機能を有する第１の中継装置を介してサーバに接続される通信装置が、前記サーバと通信を行うことによって、前記第１の中継装置のＮＡＴ特性を判断する通信方法であって、
前記通信装置のローカルポート番号であって互いに異なるポート番号が発信元ポート番号に設定され、かつ、前記サーバのポート番号であって互いに同一のポート番号が宛先ポート番号に設定された複数のアドレス情報調査要求パケットを、前記サーバに１つずつ送信するアドレス情報調査要求送信ステップと、
前記アドレス情報調査要求送信ステップにおいて最初のアドレス情報調査要求パケットが送信された後、最後のアドレス情報調査要求パケットが送信される前までの間に、前記複数のアドレス情報調査要求パケットのいずれかの発信元ポート番号と同一のポート番号が発信元ポート番号に設定された通信準備パケットを、前記サーバとは異なる宛先に送信する通信準備要求送信ステップと、
前記アドレス情報調査要求パケットに応答して前記サーバから返送され、かつ、前記第１の中継装置において前記アドレス情報調査要求パケットの発信元ポート番号から変換された中継ポート番号を含むアドレス情報調査応答パケットを、前記アドレス情報調査要求パケットと同じ数だけ受信するアドレス情報受信ステップと、
前記アドレス情報受信ステップにおいて受信した各前記アドレス情報調査応答パケットに含まれる前記中継ポート番号に基づいて、前記第１の中継装置のＮＡＴ特性を判断する中継特性判断ステップとを備える、通信方法。
【請求項１３】
通信システムであって、
サーバと、
ＮＡＴ（ネットワークアドレス変換）機能を有する第１の中継装置と、
ＮＡＴ機能を有する第２の中継装置と、
前記第１の中継装置を介して前記サーバに接続される第１の通信装置と、
前記第２の中継装置を介して前記サーバに接続される第２の通信装置とを備え、
前記第１及び第２の通信装置の各々は、
自装置のローカルポート番号であって互いに異なるポート番号が発信元ポート番号に設定され、かつ、前記サーバのポート番号であって互いに同一のポート番号が宛先ポート番号に設定された複数のアドレス情報調査要求パケットを、前記サーバに１つずつ送信するアドレス情報調査要求送信部と、
前記アドレス情報調査要求送信部が最初のアドレス情報調査要求パケットを送信した後、最後のアドレス情報調査要求パケットを送信する前までの間に、前記複数のアドレス情報調査要求パケットのいずれかの発信元ポート番号と同一のポート番号が発信元ポート番号に設定された通信準備パケットを、前記サーバとは異なる宛先に送信する通信準備要求送信部と、
前記アドレス情報調査要求パケットに応答して前記サーバから返送され、かつ、各々に接続される中継装置において前記アドレス情報調査要求パケットの発信元ポート番号から変換された中継ポート番号を含むアドレス情報調査応答パケットを、前記アドレス情報調査要求パケットと同じ数だけ受信するアドレス情報受信部と、
前記アドレス情報受信部において受信した各前記アドレス情報調査応答パケットに含まれる前記中継ポート番号に基づいて、前記第１の中継装置のＮＡＴ特性を判断する中継特性判断部とを含み、
前記サーバは、
前記第１及び第２の通信装置の各々から送信された前記アドレス情報調査要求パケットに含まれる前記中継ポート番号を取り出すアドレス情報調査部と、
前記取り出された中継ポート番号を含むアドレス情報調査要求応答パケットを送信するアドレス情報送信部とを含む、通信システム。
【請求項１４】
通信システムであって、
サーバと、
ＮＡＴ（ネットワークアドレス変換）機能を有する第１の中継装置と、
ＮＡＴ機能を有する第２の中継装置と、
前記第１の中継装置を介して前記サーバに接続される第１の通信装置と、
前記第２の中継装置を介して前記サーバに接続される第２の通信装置とを備え、
前記第１及び第２の通信装置の各々は、
自装置のローカルポート番号であって互いに異なるポート番号が発信元ポート番号に設定され、かつ、前記サーバのポート番号であって互いに同一のポート番号が宛先ポート番号に設定された複数のアドレス情報調査要求パケットを、前記サーバに１つずつ送信するアドレス情報調査要求送信部と、
前記アドレス情報調査要求送信部が最初のアドレス情報調査要求パケットを送信した後、最後のアドレス情報調査要求パケットを送信する前までの間に、前記複数のアドレス情報調査要求パケットのいずれかの発信元ポート番号と同一のポート番号が発信元ポート番号に設定された通信準備パケットを、前記サーバとは異なる宛先に送信する通信準備要求送信部とを含み、
前記サーバは、前記第１及び第２の中継装置の各々において前記アドレス情報調査要求パケットの発信元ポート番号から変換された中継ポート番号に基づいて、前記第１及び第２の中継装置のＮＡＴ特性を判定するアドレス情報調査部を含む、通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信システム及び通信方法に関し、より特定的には、ルータのアドレス変換特性を調査し、異なる２つのプライベートネットワーク間にＰ２Ｐ通信路を確立することができる通信装置、通信システム及び通信方法に関するものである。
【背景技術】
【０００２】
一般に、ネットワークに接続される通信端末や通信機器（以降、併せて「通信装置」という）を識別するために、通信装置にはＩＰアドレスが付加される。接続されるネットワーク全体で一意に決定され、一対一の通信（ピア・ツー・ピア通信：以下、「Ｐ２Ｐ通信」という）を可能とするＩＰアドレスを、グローバルＩＰアドレスという。また、特定のネットワーク内だけで一意に決定され、他のネットワークとのＰ２Ｐ通信に直接使用することができないＩＰアドレスを、プライベートＩＰアドレスという。プライベートＩＰアドレスによって通信装置が相互に識別されるネットワークを、プライベートネットワークという。【０００３】
プライベートネットワークに接続される通信装置（プライベートＩＰアドレスを有する通信装置）が、グローバルネットワークに接続される通信装置（グローバルＩＰアドレスを有する通信装置）と通信するためには、一般に、プライベートネットワークとグローバルネットワークとの間に、ネットワークアドレス変換（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ：以下、「ＮＡＴ」という）の機能、あるいは、ネットワークアドレスポート変換（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｐｏｒｔ  Ｔｒａｎｓｌａｔｉｏｎ：以下、「ＮＡＰＴ」という）機能を有する通信機器（ルータ）が接続される。尚、以降においては、説明の簡略化のために、ＮＡＴとＮＡＰＴとを併せて「ＮＡＴ」という。【０００４】
ルータは、プライベートネットワークに接続される宅内装置から、グローバルネットワークに接続される宅外装置に向けて送信されたパケットを最初に受信した時に、送信元装置のプライベートアドレスをルータのグローバルアドレスに変換するためのルールと、その返信パケットを受け付けるためのルールとを作成し、作成したルールをＮＡＴルールとして保存する。以降の通信において、ルータは、保存したＮＡＴルールに従い、宅外装置からの受信パケットと、宅内装置からの受信パケットとの相互のアドレス変換を行い、受信パケットを宅内装置または宅外装置へと転送する。尚、作成されたＮＡＴルールは、通信が行われている間はルータで保持され、一定時間通信パケットが途切れたときに自動的に削除される。【０００５】
ところが、このＮＡＴが妨げとなり、プライベートＩＰアドレスを有する通信装置が、異なるプライベートネットワークに接続される通信装置とＰ２Ｐ通信を行えない場合がある。その理由は、ある通信装置が単に通信相手装置が有するプライベートアドレスを指定してパケットを送信しても、送信パケットは、グローバルＩＰアドレスでパケットが識別されるインターネットを経由できず、通信相手に届かないからである。【０００６】
そこで、ルータを介して異なるプライベートネットワークに接続されている２つの通信装置が、ルータのＮＡＴを越えてＰ２Ｐ通信路を確立するための手法として、ＳＴＵＮ（Ｓｉｍｐｌｅ  Ｔｒａｖｅｒｓａｌ  ＵＤＰ  ｔｈｒｏｕｇｈ  ＮＡＴ：ＲＦＣ３４８９）を利用する方法が知られている。尚、以下の説明においては、「パケット」とは、「ＵＤＰパケット」のことをいう。【０００７】
まず、ＳＴＵＮを利用するＰ２Ｐ通信路確立手法の説明に先立ち、図２３Ａ〜図２３Ｅを参照しながら、ＮＡＴの種類について説明する。尚、プライベートネットワークは、家庭内、すなわち宅内のネットワークとして構築される場合に限らず、企業内のネットワークとして構築される場合もある。以下においては、説明の便宜上、プライベートネットワークが宅内ネットワークである場合を想定するが、下記の説明は、企業において構築される大規模なプライベートネットワークにも同様に当てはまる。また、ある宅内のプライベートネットワークから見た場合に、当該宅内ネットワークとは異なるネットワークのことを、宅外ネットワーク、あるいは、外部ネットワークという。更に、説明の便宜のために、ＩＰアドレス［ＩＰ］とポート番号［Ｐ］との組み合わせを、（ＩＰ、Ｐ）と表現する。【０００８】
図２３Ａは、Ｆｕｌｌ  Ｃｏｎｅ  ＮＡＴと呼ばれるＮＡＴを説明するための図である。【０００９】
Ｆｕｌｌ  Ｃｏｎｅ  ＮＡＴ特性を有するルータは、あるプライベートアドレスを有する宅内装置の特定のポート番号からある宅外装置へと送信されるパケットに対して、常に同一のポート番号を割り当てる。例えば、ルータは、宅内装置Ａ（ＩＰａ、Ｐａ）が送信したパケットに常にポート番号［Ｐｂ］を割り当て、当該パケットを外部ネットワークに接続される宅外装置Ｃへと転送する。また、Ｆｕｌｌ  Ｃｏｎｅ  ＮＡＴ特性を有するルータは、外部ネットワークに接続された宅外装置が（ＩＰｂ、Ｐｂ）宛に送信した全てのパケットを、宅内装置（ＩＰａ、Ｐａ）へと転送する。したがって、ルータは、宅外装置Ｄ（ＩＰｄ、Ｐｄ）が（ＩＰｂ、Ｐｂ）宛に送信したパケットも、宅内装置Ａ（ＩＰａ、Ｐａ）に転送する。【００１０】
図２３Ｂは、Ｒｅｓｔｒｉｃｔｅｄ  Ｃｏｎｅ  ＮＡＴ（以下、「Ｒ  ＮＡＴ」という）と呼ばれるＮＡＴを説明するための図である。【００１１】
Ｒ  ＮＡＴ特性を有するルータは、ある宅内装置Ａ（ＩＰａ、Ｐａ）が宅外ネットワークに向けて送信したパケットに対して、常に同一のポート番号［Ｐｂ］を割り当てる。ただし、Ｒ  ＮＡＴ特性を有するルータは、宅外装置Ａが送信したパケットの送信先である宅外装置Ｃ（ＩＰアドレスＩＰｃを有する）が（ＩＰｂ、Ｐｂ）宛てに送信したパケットのみを宅内装置Ａ（ＩＰａ、Ｐａ）へと転送する点で、Ｆｕｌｌ  Ｃｏｎｅ  ＮＡＴ特性を有するルータとは異なっている。したがって、ルータは、宅内装置Ａが送信したパケットの宛先でない宅外装置Ｄが、（ＩＰｂ、Ｐｂ）へと送信したパケットを宅内装置Ａへと転送しない。尚、Ｒ  ＮＡＴ特性を有するルータは、受信したパケットの発信元ＩＰアドレスが［ＩＰｃ］であれば、全ての発信元ポート番号のパケットを宅内装置Ａへと転送する。したがって、ルータは、宅外装置Ｃのポート［Ｐｃ２］から（ＩＰｂ、Ｐｂ）へと送信したパケットをも宅内装置Ａへと転送する。【００１２】
図２３Ｃは、Ｐｏｒｔ  Ｒｅｓｔｒｉｃｔｅｄ  Ｃｏｎｅ  ＮＡＴ（以下、「ＰＲ  ＮＡＴ」という）と呼ばれるＮＡＴ特性を説明するための図である。【００１３】
ＰＲ  ＮＡＴ特性を有するルータは、ある宅内装置Ａ（ＩＰａ、Ｐａ）が宅外ネットワークに向けて送信したパケットに対して、常に同一のポート番号［Ｐｂ］を割り当てる。ただし、ＰＲ  ＮＡＴ特性を有するルータは、宅内装置Ａが発信したパケットの宛先（ＩＰｃ、Ｐｃ１）から（ＩＰｂ、Ｐｂ）へと送信されたパケットのみを宅内装置Ａ（ＩＰａ、Ｐａ）へと転送する点で、Ｒ  ＮＡＴ特性を有するルータとは相違する。したがって、ルータは、宅外装置Ｄの発信元（ＩＰｄ、Ｐｄ）から発信されたパケットのみならず、宅外装置の発信元（ＩＰｃ、Ｐｃ２）から送信されたパケットをも破棄する。【００１４】
以下においては、上記のＦｕｌｌ  Ｃｏｎｅ  ＮＡＴ、Ｒ  ＮＡＴ、ＰＲ  ＮＡＴを総称して「Ｃｏｎｅ  ＮＡＴ」という。【００１５】
図２３Ｄは、Ａｄｒｅｓｓ  Ｓｅｎｓｉｔｉｖｅ  Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ（以下、「ＡＳ  ＮＡＴ」という）と呼ばれるＮＡＴを説明するための図である。【００１６】
ＡＳ  ＮＡＴ特性を有するルータは、宅内装置Ａが発信したパケットの宛先ＩＰアドレスの各々に異なるポート番号を割り当てる。例えば、宅内装置Ａ（ＩＰａ、Ｐａ）から宅外装置Ｃ（ＩＰｃ、Ｐｃ）へと送信されたパケットには、ポート番号［Ｐｂ１］を割り当て、宅内装置Ａ（ＩＰａ、Ｐａ）から、宅外装置Ｃとは異なるＩＰアドレスを有する宅外装置Ｄ（ＩＰｄ、Ｐｄ）へと送信されたパケットには、ポート番号［Ｐｂ２］を割り当てる。また、ＡＳ  ＮＡＴ特性を有するルータは、あるポート番号に割り当てられた宅外装置から送信されたパケットのみを宅内装置Ａ（ＩＰａ、Ｐａ）へ転送し、当該ポート番号に割り当てられていない宅外装置から送信されたパケットを全て破棄する。例えば、ルータは、ＩＰアドレス［ＩＰｃ］を有する宅外装置Ｃから、（ＩＰｂ、Ｐｂ１）宛に送信されたパケットを宅内装置Ａ（ＩＰａ、Ｐａ）へと転送するが、ＩＰアドレス［ＩＰｄ］を有する宅外装置Ｄから、（ＩＰｂ、Ｐｂ１）宛に送信されたパケットを破棄する。【００１７】
図２３Ｅは、Ｐｏｒｔ  Ｓｅｎｓｉｔｉｖｅ  Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ（以下、「ＰＳ  ＮＡＴ」という）と呼ばれるＮＡＴを説明するための図である。【００１８】
ＰＳ  ＮＡＴ特性を有するルータは、宅内装置Ａが送信したパケットの宛先ＩＰアドレス及び宛先ポート番号の組み合わせの各々に、異なるポート番号を割り当て、当該受信パケットをネットワークへと送出する。例えば、ルータは、宅内装置Ａ（ＩＰａ、Ｐａ）から発信されたパケットの宛先（ＩＰｃ、Ｐｃ０）には、ポート番号［Ｐｂ０］を割り当て、宛先（ＩＰｃ、Ｐｃ１）には、ポート番号［Ｐｂ１］を割り当て、宛先（ＩＰｃ、Ｐｃ２）には、ポート番号［Ｐｂ２］を割り当てる。また、ルータは、あるポート番号に割り当てられた宅外装置から送信されたパケットを宅内装置Ａへと転送するが、当該ポート番号に割り当てた宅外装置以外から送信されたパケットを全て破棄する。したがって、ルータは、発信元（ＩＰｃ、Ｐｃ１）からポート番号［Ｐｂ１］を宛先として送信されたパケットを宅内装置Ａへと転送するが、発信元（ＩＰｃ、Ｐｃ２）及び発信元（ＩＰｄ、Ｐｄ１）からポート番号［Ｐｂ１］へと送信されたパケットを全て破棄する。【００１９】
以下においては、上記のＡＳ  ＮＡＴ及びＰＳ  ＮＡＴを総称して、「Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ」という。【００２０】
また、上述したＣｏｎｅ  ＮＡＴやＳｙｍｍｅｔｒｉｃ  ＮＡＴとは別に、宅内装置の発信元ポート番号と同じポート番号を用いてＮＡＴの設定を行う性質を有するルータが知られている。【００２１】
図２４Ａは、Ｐｏｒｔ  Ｒｅｕｓｅ特性の概略を説明するための図である。【００２２】
図２４Ａに示されるように、ルータは、宅内装置Ａのポート番号［Ｐａ］を発信元とするパケットにポート番号［Ｐａ］を割り当て、宅内装置Ａのポート番号［Ｐｂ］を発信元とするパケットにポート番号［Ｐｂ］を割り当て、宅内装置Ａのポート番号［Ｐｃ］を発信元とするパケットにポート番号［Ｐｃ］を割り当てる。このように、通信機器が、ある発信元ポート番号を含むパケットに、当該発信元ポート番号と同一のポート番号を割り当てる特性のことを、「Ｐｏｒｔ  Ｒｅｕｓｅ」という。【００２３】
Ｐｏｒｔ  Ｒｅｕｓｅは、上記のＮＡＴ特性とは異なる特性である。したがって、Ｐｏｒｔ  Ｒｅｕｓｅ特性を有する通信機器は、必ず上述のＮＡＴ特性のいずれかを備える。【００２４】
図２４Ｂは、Ｐｏｒｔ  Ｒｅｕｓｅ特性を有するルータの機能を説明するための図である。【００２５】
図２４Ｂに示されるルータがＰｏｒｔ  Ｒｅｕｓｅ特性とＦｕｌｌ  Ｃｏｎｅ  ＮＡＴ特性とを兼ね備える場合、発信元ＩＰアドレス及び発信元ポート番号に（ＩＰａ、Ｐａ）が設定されたパケットに対して、ルータは、常にポート番号［Ｐａ］を割り当て、当該パケットを外部ネットワークへと送出する。また、ルータは、外部ネットワークに接続された宅外装置が宛先（ＩＰｂ、Ｐａ）へと発信した全てのパケットを宅内装置Ａに転送する。【００２６】
次に、ルータのＮＡＴを越えてＰ２Ｐ通信路を確立するために、ＳＴＵＮを利用する方法について説明する。【００２７】
ルータを介して異なるプライベートネットワークに接続される２つの通信装置の間にＰ２Ｐ通信路を確立するためには、各装置は、パケットに、宛先ＩＰアドレスと宛先ポート番号とを設定することが必要である。しかしながら、上述のように、ルータが有するＮＡＴ特性に応じて、アドレス変換方法が異なるので、通信装置は、ルータのＮＡＴ特性を考慮した上で、パケットの宛先を設定する必要がある。【００２８】
そこで、Ｐ２Ｐ通信路を確立するために、まず、ＳＴＵＮに規定される方法に従って、通信装置が接続されているルータのＮＡＴ特性を調査する。より詳細には、ＳＴＵＮにおいては、通信装置は、異なるＩＰアドレスを有する２つのサーバの各々へとテスト用パケットを送信する。そして、ルータが当該テスト用パケットの各々に割り当てたポート番号が一致するか否かを判断することによって、ルータのＮＡＴ特性がＣｏｎｅ  ＮＡＴであるか、または、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴであるかを判断する。【００２９】
以下、図２５Ａ〜図２５Ｃ及び図２６を参照しながら、ＳＴＵＮによるＮＡＴ特性の調査方法を説明する。【００３０】
図２５Ａは、ＳＴＵＮ−ＴｅｓｔＩの概略を示す図である。【００３１】
ＴｅｓｔＩにおいては、宅内装置Ａは、発信元が（ＩＰａ、Ｐａ）であるパケットを、サーバ１（ＩＰｃ、Ｐｃ１）へと送信する。サーバ１は、宅内装置Ａから発信されたパケットを参照して、発信元ポート番号に［Ｐｃ１］が設定され、ルータが割り当てたポート番号［Ｐｂ］を宛先に含むパケットを宅内装置Ａに送信する。【００３２】
図２５Ｂは、ＳＴＵＮ−ＴｅｓｔＩＩの概略を示す図である。【００３３】
ＴｅｓｔＩＩにおいては、宅内装置Ａは、発信元を（ＩＰａ、Ｐａ）とし、宛先をサーバ１の（ＩＰｃ、Ｐｃ１）とするパケットを送信する。これに対して、サーバ２は、発信元に（ＩＰｄ、Ｐｄ１）が設定され、宛先にルータが割り当てたポート番号［Ｐｂ］が設定されたパケットを宅内装置Ａに送信する。【００３４】
図２５Ｃは、ＳＴＵＮ−ＴｅｓｔＩＩＩの概略を示す図である。【００３５】
ＴｅｓｔＩＩＩにおいては、宅内装置Ａは、発信元を（ＩＰａ、Ｐａ）とし、宛先をサーバ１の（ＩＰｃ、Ｐｃ１）とするパケットを送信する。サーバ１は、発信元ポート番号に［Ｐｃ１］とは異なる［Ｐｃ２］が設定され、ルータが割り当てたポート番号［Ｐｂ］を宛先に含むパケットを宅内装置Ａに送信する。【００３６】
図２６は、ＳＴＵＮによってＮＡＴ特性を調査するためのフローチャートである。【００３７】
まず、宅内装置Ａは、上記のＴｅｓｔＩを実行する（ステップＳ１６０１）し、サーバ１から応答を受信したか否かを判断する（ステップＳ１６０２）。宅内装置Ａは、サーバ１からの応答を受信した場合には、ステップＳ１６０４に進み、それ以外の場合は、宅内装置Ａは、サーバ１とのＵＤＰ通信が不能であると判断する（ステップＳ１６０３）。【００３８】
宅内装置Ａがサーバ１からの応答を受信した場合（ステップＳ１６０１でＹｅｓ）、宅内装置Ａは、受信した応答パケットに含まれるアドレス変換後のＩＰアドレス［ＩＰｂ］と、自身のＩＰアドレス［ＩＰａ］が一致するか否かを判断する（ステップＳ１６０４）。宅内装置Ａは、応答パケットに含まれるＩＰアドレス［ＩＰｂ］と、自身のＩＰアドレス［ＩＰａ］とが一致する場合には、ステップＳ１６０５に進み、それ以外の場合には、ステップＳ１６０９へ進む。ＩＰアドレス［ＩＰｂ］及び［ＩＰａ］が一致することは、宅内装置Ａがルータを介さずに外部ネットワークに接続されており、宅内装置Ａ及びサーバ１の間でＮＡＴが行われていないことを示す。【００３９】
ステップＳ１６０４でＹｅｓである場合、宅内装置Ａは、ＴｅｓｔＩＩを実行する（ステップＳ１６０５）し、サーバ２からの応答を受信したか否かを判断する（ステップＳ１６０６）。宅内装置Ａは、サーバ２からの応答を受信した場合には（ステップＳ１６０６でＹｅｓ）、送信先装置（サーバ１）以外の通信装置からもパケットを受信することが可能、すなわち、ネットワークに対してオープンであると判断する（ステップＳ１６０８）。一方、宅内装置Ａは、サーバ２からの応答を受信しない場合（ステップＳ１６０６でＮｏ）、宅内装置Ａは、ＵＤＰファイアウォールによってパケットの送受信が制限されていると判断する（ステップＳ１６０７）。【００４０】
ＴｅｓｔＩの結果、ＩＰアドレス［ＩＰｂ］及び［ＩＰａ］が一致しない場合には（ステップＳ１６０４でＮｏ）、宅内装置Ａは、ＴｅｓｔＩＩを実行し（ステップＳ１６０９）、パケットの宛先とは異なるサーバ２からの応答を受信したか否かを判断する（ステップＳ１６１０）。宅内装置Ａがサーバ２からの応答を受信した場合には（ステップＳ１６１０でＹｅｓ）、宅内装置Ａが接続されるルータは、Ｆｕｌｌ  Ｃｏｎｅ  ＮＡＴ特性を有すると判断する（ステップＳ１６１１）。一方、宅内装置Ａがサーバ２からの応答を受信しなかった場合には（ステップＳ１６１０でＮｏ）、宅内装置Ａは、サーバ２に対してＴｅｓｔＩを実行する（ステップＳ１６１２）。ここで、宅内装置Ａからの送信パケットにルータが割り当てるポート番号を［Ｐｂ’］とする。宅内装置Ａは、ステップＳ１６１２においてサーバ２から受信した応答パケットに含まれ、ＮＡＴによって設定されたＩＰアドレスとポート番号との組み合わせ（ＩＰｂ、Ｐｂ’）と、ステップＳ１６０１においてサーバ１から受信した応答パケットに含まれ、ＮＡＴによって設定されたＩＰアドレスとポート番号との組み合わせ（ＩＰｂ、Ｐｂ）とが一致するか否かを判断する（ステップＳ１６１３）。宅内装置Ａは、（ＩＰｂ、Ｐｂ’）が（ＩＰｂ、Ｐｂ）と一致すると判断した場合には（ステップＳ１６１３でＹｅｓ）、ステップＳ１６１５へ進む。宅内装置Ａは、（ＩＰｂ、Ｐｂ’）及び（ＩＰｂ、Ｐｂ）が一致しないと判断した場合には（ステップＳ１６１３でＮｏ）、自身が接続されるルータがＳｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有すると判断する（ステップＳ１６１４）。【００４１】
ステップＳ１６１３においてＹｅｓである場合、宅内装置Ａは、ＴｅｓｔＩＩＩを実行し（ステップＳ１６１５）、サーバ１から応答を受信したか否かを判断する（ステップＳ１６１６）。宅内装置Ａは、サーバ１から応答を受信した場合（ステップＳ１６１６でＹｅｓ）、自身が接続されるルータがＲ  ＮＡＴ特性を有すると判断し（ステップＳ１６１７）、それ以外の場合には、自身が接続されるルータがＰＲ  ＮＡＴ特性を有すると判断する（ステップＳ１６１８）。【００４２】
上述のように、ＳＴＵＮに規定された方法においては、図２６に示される処理フローに従い、図２５Ａ〜図２５Ｃに示される３種類のテストのいくつかを組み合わせて実行することによって、ＮＡＴの特性が調査される。【００４３】
また、ＳＴＵＮには、上述したＮＡＴ特性の調査の結果、２つの通信装置が共にＣｏｎｅ  ＮＡＴ特性を有するルータに接続されている場合、更に当該２つの通信装置間にＰ２Ｐ通信路を確立する手法も規定されている。以下、図２７を参照しながら、ＳＴＵＮに規定されているＰ２Ｐ通信路確立手法について説明する。【００４４】
図２７は、ＳＴＵＮを利用するＰ２Ｐ通信路確立方法を示すシーケンス図である。【００４５】
まず、装置１は、ＩＰアドレス及びポート番号の登録を要求するためのＩＰ／ポート登録要求パケットを、ルータ１を介してサーバへ送信する（ステップＳ１７０１）。ルータ１は、装置１から受信したパケットの発信元を（ＩＰＬ１、ＬＰ１）から（ＩＰＧ１、ＧＰ１）へとアドレス変換し、アドレス変換されたパケットをサーバへ送信する。サーバは、ルータ１から受信したパケットに含まれる発信元ＩＰアドレスＩＰＧ１及び発信元ポート番号ＧＰ１を登録する（ステップＳ１７０２）。【００４６】
同様に、装置２は、ＩＰ／ポート登録要求パケットを、ルータ２を介してサーバへ送信する（ステップＳ１７０３）。ルータ２は、装置２から受信したパケットの発信元を（ＩＰＬ２、ＬＰ２）から（ＩＰＧ２、ＧＰ２）へとアドレス変換し、アドレス変換されたパケットをサーバ２へ送信する。サーバは、ルータ２から受信したパケットに含まれる発信元ＩＰアドレスＩＰＧ１及び発信元ポート番号ＧＰ１を登録する（ステップＳ１７０４）。【００４７】
次に、装置２は、装置１とＰ２Ｐ通信するために必要な情報を取得するために、装置１のＩＰアドレス及びポート番号の送信を要求するＩＰ／ポート取得要求をサーバへ送信する（ステップＳ１７０５）。サーバは、装置２からのＩＰ／ポート取得要求に応答して、ルータ１が装置１の発信元（ＩＰＬ１、ＬＰ１）に割り当てたＩＰアドレス及びポート番号の組み合わせ（ＩＰＧ１、ＧＰ１）を含むＩＰ／ポート取得応答パケットを装置２へ返送する（ステップＳ１７０６）。【００４８】
装置２は、サーバから受信したパケットを参照して、装置１にアクセスするためのＩＰアドレス及びポート番号（ＩＰＧ１、ＧＰ１）を取得する。そこで、装置２は、（ＩＰＧ１、ＧＰ１）を宛先とするＰ２Ｐ開始要求パケットを送信する（ステップＳ１７０７）。【００４９】
ここで、装置２から送信されたＰ２Ｐ開始要求パケットに対するルータ１の対応は、ルータ１が備えるＮＡＴ特性に応じて異なる。【００５０】
まず、ルータ１がＦｕｌｌ  Ｃｏｎｅ  ＮＡＴ（図２３Ａ）を実行する場合、ルータ１が装置２から送信されたＰ２Ｐ要求パケットを装置１へと転送することによって、装置１と装置２との間にＰ２Ｐ通信路が確立する。【００５１】
次に、ルータ１がＲ  ＮＡＴ（図２３Ｂ）またはＰＲ  ＮＡＴ（図２３Ｃ）を実行する場合、ルータ１は、装置２から送信されたＰ２Ｐ開始要求パケットを破棄する。したがって、当該Ｐ２Ｐ開始要求パケットは、装置１（ＩＰＬ１、ＬＰ１）へ転送されることはない。【００５２】
ここで注目すべきは、Ｃｏｎｅ  ＮＡＴ特性を有するルータ２は、発信元に（ＩＰＬ２、ＬＰ２）が設定され、かつ、宛先に（ＩＰＧ１、ＧＰ１）が設定されたパケットをルータ１へと転送することによって、ルータ１からの応答パケットを受け付けることができるようにＮＡＴを設定する点である。すなわち、ルータ２がＦｕｌｌ  Ｃｏｎｅ  ＮＡＴを実行する場合には、ルータ２は、全ての宅外装置がルータ２（ＩＰＧ２、ＧＰ２）へと発信したパケットを装置２（ＩＰＬ２、ＬＰ２）に転送するようにＮＡＴを設定する。ルータ２がＲ  ＮＡＴ特性を有する場合には、ルータ２は、発信元ＩＰアドレスが［ＩＰＧ１］であるパケットを装置２（ＩＰＬ２、ＬＰ２）に転送するようにＮＡＴを設定する。ルータ２がＰＲ  ＮＡＴ特性を有する場合には、発信元ＩＰアドレス及び発信元ポート番号が（ＩＰＧ１、ＧＰ１）であるパケットを装置２（ＩＰＬ２、ＬＰ２）に転送するようにＮＡＴを設定する。この結果、次に、発信元ＩＰアドレス及び発信元ポート番号が（ＩＰＧ１、ＧＰ１）であるパケットをルータ２が受信すれば、ルータ２は、当該パケットを装置２に転送することができるので、装置１及び装置２の間にＰ２Ｐ通信路を確立可能な状態となる。【００５３】
そこで、装置１は、装置２にアクセスするために必要な情報を取得するために、ＩＰ／ポート取得要求をサーバへ送信する（ステップＳ１７０８）。サーバは、装置１からのＩＰ／ポート取得要求に応答して、ルータ２が装置１の発信元（ＩＰＬ１、ＬＰ１）に割り当てたＩＰアドレス及びポート番号（ＩＰＧ２、ＧＰ２）を含むパケットを、ＩＰ／ポート取得応答として装置２に返信する（ステップＳ１７０９）。【００５４】
装置１は、サーバから受信したＩＰ／ポート取得応答を参照して、装置２のＩＰアドレス及びポート番号（ＩＰＬ２、ＰＬ２）に割り当てられているルータ２のＩＰアドレス及びポート番号（ＩＰＧ２、ＧＰ２）を取得する。【００５５】
次に、装置１は、発信元が（ＩＰＬ１、ＬＰ１）に設定されたＰ２Ｐ開始要求パケットを装置２へと送信する（ステップＳ１７１０）。上述したように、この段階においては、ルータ２は、発信元ＩＰアドレス及び発信元ポート番号が（ＩＰＬ１、ＬＰ１）であるパケットを破棄することなく、装置２へと転送する。一方、ルータ１は、発信元に（ＩＰＬ１、ＬＰ１）が設定されたとするパケットを、ルータ２へと転送することによって、ルータ２からの応答パケットを受け付けることができるようにＮＡＴを設定することができる。すなわち、ルータ１がＲ  ＮＡＴを実行する場合には、ルータ１は、発信元ＩＰアドレスが［ＩＰＧ２］であるパケットを装置１（ＩＰＬ１、ＬＰ１）に転送するように設定する。ルータ１がＰＲ  ＮＡＴを実行する場合には、発信元ＩＰアドレス及び発信元ポート番号が（ＩＰＧ２、ＧＰ２）であるパケットを装置２（ＩＰＬ２、ＬＰ２）に転送するように設定する。【００５６】
したがって、装置２が、装置１からのＰ２Ｐ開始要求パケットに応答して、Ｐ２Ｐ開始応答パケットを装置１に送信すると（ステップＳ１７１１）、装置１及び装置２の間にＰ２Ｐ通信路が確立される。【００５７】
上記のようなＳＴＵＮを利用する手法によれば、異なるプライベートネットワークに接続される２つの通信装置が共にＣｏｎｅ  ＮＡＴ特性を有するルータに接続されている場合には、当該２つの通信装置間にＰ２Ｐ通信路を確立することが可能である。【００５８】
しかしながら、２つの通信装置がＳｙｍｍｅｔｒｉｃ  ＮＡＴを介して接続されている場合には、ＳＴＵＮを利用する手法によって、Ｐ２Ｐ通信路を確立することができない。以下、この理由を説明する。【００５９】
図２８は、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有するルータを介して接続される２つの通信装置に、ＳＴＵＮを利用するＰ２Ｐ通信路確立方法を適用した場合の処理手順を示すシーケンス図である。より特定的には、図２８に示される例においては、あるプライベートネットワークに接続される装置１は、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴを実行するルータ１を介して外部ネットワークに接続されている。【００６０】
まず、ステップＳ１８０１〜Ｓ１８０４において、図２７に示されるステップＳ１７０１〜Ｓ１７０４と同様に、装置１及び装置２の各々は、サーバへとＩＰ／ポート登録要求パケットを送信することによって、ＩＰアドレス及びポート番号をサーバに登録する。【００６１】
次に、装置２は、装置１とＰ２Ｐ通信するために用いるＩＰアドレス及びポート番号を取得するために、ＩＰ／ポート取得要求パケットをサーバへ送信する（ステップＳ１８０５）。サーバは、装置２からのＩＰ／ポート取得要求に応答して、ルータ１によって発信元ＩＰアドレス及び発信元ポート番号（ＩＰＬ１、ＬＰ１）に割り当てられたＩＰアドレス及びポート番号（ＩＰＧ１、ＧＰ１）を含むＩＰ／ポート取得応答パケットを装置２へ返送する（ステップＳ１８０６）。【００６２】
装置２は、サーバから受信したパケットを参照して、装置１のＩＰアドレス及びポート番号（ＩＰＧ１、ＧＰ１）を取得する。そこで、装置２は、（ＩＰＧ１、ＧＰ１）を宛先とするパケットを、Ｐ２Ｐ開始要求として送信する（ステップＳ１８０７）。【００６３】
ここで、ルータ１がＳｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有する場合、ルータ１は、Ｐ２Ｐ開始要求パケットを装置１（ＩＰＬ１、ＬＰ１）に転送することなく破棄する。また、上述したように、Ｃｏｎｅ  ＮＡＴを実行するルータ２は、発信元に（ＩＰＬ２、ＬＰ２）が設定され、かつ、宛先に（ＩＰＧ１、ＧＰ１）が設定されたパケットをルータ１へと転送することによって、ルータ１からの応答パケットを受け付けることができるようにＮＡＴを設定する。【００６４】
次に、装置１は、装置２にアクセスするために必要な情報を取得するために、ＩＰ／ポート取得要求をサーバへ送信する（ステップＳ１８０８）。サーバは、装置１からのＩＰ／ポート取得要求に応答して、ルータ２が装置２の発信元ＩＰアドレス及び発信元ポート番号（ＩＰＬ２、ＬＰ２）に割り当てたＩＰアドレス及びポート番号（ＩＰＧ２、ＧＰ２）を含むパケットを、ＩＰ／ポート取得応答として装置２に返信する（ステップＳ１８０９）。【００６５】
装置１は、サーバから受信したＩＰ／ポート取得応答を参照して、装置２のＩＰアドレス及びポート番号（ＩＰＬ２、ＰＬ２）に割り当てられているルータ２のＩＰアドレス及びポート番号（ＩＰＧ２、ＧＰ２）を取得する。【００６６】
次に、装置１は、発信元を（ＩＰＬ１、ＬＰ１）とするパケットを、Ｐ２Ｐ開始要求として、装置２へと送信する（ステップＳ１８１０）。しかしながら、ルータ１は、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有するため、パケットの宛先毎に異なるポート番号を割り当てる。したがって、ルータ１は、装置１から受信したＰ２Ｐ開始要求パケットには、［ＧＰ１］とは異なるポート番号［ＧＰ３］を割り当て、当該パケットをルータ２へと転送する。【００６７】
ここで、ルータ２がＦｕｌｌ  Ｃｏｎｅ  ＮＡＴ特性またはＲ  ＮＡＴ特性を有する場合には、ルータ２は、受信したＰ２Ｐ開始要求パケットを装置２（ＩＰＬ２、ＬＰ２）に転送するので、装置１及び装置２の間にＰ２Ｐ通信路が確立される。【００６８】
しかしながら、ルータ２がＰＲ  ＮＡＴまたはＳｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有する場合には、ルータ２は、受信したＰ２Ｐ開始要求パケットを装置２に転送することなく破棄するため、装置１及び装置２の間におけるＰ２Ｐ通信路の確立に失敗する。【００６９】
図２９は、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有するルータを介して接続される２つの通信装置に、ＳＴＵＮを利用するＰ２Ｐ通信路確立方法を適用した場合の処理手順を示すシーケンス図である。より特定的には、図２９に示される例においては、あるプライベートネットワークに接続される装置２は、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴを実行するルータ２を介して外部ネットワークに接続されている。【００７０】
まず、ステップＳ１９０１〜Ｓ１９０４において、図２７に示されるステップＳ１７０１〜Ｓ１７０４と同様に、装置１及び装置２の各々は、サーバへとＩＰ／ポート登録要求パケットを送信することによって、ＩＰアドレス及びポート番号をサーバに登録する。【００７１】
次に、装置２は、装置１とＰ２Ｐ通信するためのＩＰアドレス及びポート番号を取得するために、ＩＰ／ポート取得要求パケットをサーバへ送信する（ステップＳ１９０５）。サーバは、装置２からのＩＰ／ポート取得要求に応答して、ルータ１によって発信元ＩＰアドレス及び発信元ポート番号（ＩＰＬ１、ＬＰ１）に割り当てられたＩＰアドレス及びポート番号（ＩＰＧ１、ＧＰ１）を含むＩＰ／ポート取得応答パケットを装置２へ返送する（ステップＳ１９０６）。【００７２】
装置２は、サーバから受信したパケットを参照して、装置１にアクセスするためのＩＰアドレス及びポート番号（ＩＰＧ１、ＧＰ１）を取得する。そこで、装置２は、（ＩＰＧ１、ＧＰ１）を宛先とするパケットを、Ｐ２Ｐ開始要求として送信する（ステップＳ１９０７）。【００７３】
ここで、ステップＳ１９０７において装置２から送信されたＰ２Ｐ開始要求パケットの宛先は、ステップＳ１９０３において装置２から送信されたＩＰ／ポート登録要求パケットの宛先と異なる。したがって、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴを実行するルータ２は、当該Ｐ２Ｐ開始要求パケットに、ポート番号［ＧＰ２］とは異なるポート番号［ＧＰ３］を割り当てる。すなわち、ルータ２は、（ＩＰＧ２、ＧＰ３）を宛先として装置１が送信したパケットを、装置２（ＩＰＬ２、ＬＰ２）へと転送するようにＮＡＴを設定する。【００７４】
それ故に、装置１がサーバから装置２へアクセスするためのＩＰアドレス及びポート番号（ＩＰＧ２、ＧＰ２）を取得した後に（ステップＳ１９０８〜Ｓ１９０９）、（ＩＰＧ２、ＧＰ２）を宛先とするＰ２Ｐ開始要求パケットを送信しても、ルータ２は、当該Ｐ２Ｐ開始要求パケットを破棄する。したがって、装置１及び装置２の間におけるＰ２Ｐ通信路の確立に失敗する。【００７５】
以上説明したように、ルータ１またはルータ２の少なくとも一方がＳｙｍｍｅｔｒｉｃ
ＮＡＴを実行する場合、ＳＴＵＮに規定されるＰ２Ｐ通信路確立方法が成功する可能性は高いとは言い難い。【００７６】
上記のＳＴＵＮの問題点に対し、従来、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴを含む全てのＮＡＴの中で、任意の２つのＮＡＴの組み合わせに対して、Ｐ２Ｐ通信路を確立する方法が知られている（例えば、特開２００４−１８０００３号公報参照）。【００７７】
特開２００４−１８０００３号公報に記載されているＰ２Ｐ通信路確立方法においては、ある通信装置は、Ｐ２Ｐ通信の接続先となる通信装置がＰ２Ｐ開始要求パケットを送信する際に使用するルータのポート番号を複数予測し、予測したポート番号を宛先ポートとするパケットを複数送信する。当該通信装置が接続されるルータは、接続先通信装置から送信されるパケットを受信することができるポート番号を複数設定するため、Ｐ２Ｐ通信路の確立が成功する可能性を向上させることができる。以下、更なる詳細について説明する。【００７８】
図３０は、上記特許文献に記載されている従来のＰ２Ｐ通信路確立方法を示すシーケンス図である。図３０に示される例においては、ルータ１及びルータ２は共に、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有する。【００７９】
まず、ステップＳ２００１〜Ｓ２００４において、図２７に示されるステップＳ１７０１〜Ｓ１７０４と同様に、装置１及び装置２の各々は、サーバへとＩＰ／ポート登録要求パケットを送信することによって、ＩＰアドレス及びポート番号をサーバに登録する。【００８０】
次に、装置２は、装置１とＰ２Ｐ通信するために、Ｐ２Ｐ通信要求パケットをサーバに送信する（ステップＳ２００５）。このとき、装置２は、発信元ポート番号を、ステップＳ２００３においてＩＰ／ポート登録要求パケットの送信に使用したポート番号［ＬＰ２］からポート番号［ＬＰ２＋ａ］へと変更する（ただし、ａは、任意の整数である）。装置２が新たなポート番号［ＬＰ２＋ａ］を発信元ポートとして使用する理由は、発信元ポート番号の変更に伴って、ルータ２が発信元（ＩＰＬ２、ＬＰ２＋ａ）に新たなポート番号［ＧＰ２＋ｂ］を割り当てると予測されるからである（ただし、ｂは、任意の整数であって、かつ、ルータ２において定められている増分値である）。【００８１】
サーバは、Ｐ２Ｐ通信要求パケットを受信すると、受信したパケットを参照して、ルータ２が発信元（ＩＰＬ２、ＬＰ２＋ａ）に割り当てたＩＰアドレス及びポート番号（ＩＰＧ２、ＧＰ２＋ｂ）を含むパケットを、ＩＰ／ポート通知として装置１に送信する（ステップＳ２００６）。【００８２】
装置１は、サーバから送信されたＩＰ／ポート通知パケットを受信すると、装置２にＰ２Ｐ通信を許可するか否かを判断し、判断結果をサーバに通知する（ステップＳ２００７）。このとき、装置１は、発信元ポート番号を、ステップＳ２００１でＩＰ／ポート登録要求パケットの送信に使用した［ＬＰ１］から［ＬＰ１＋ｃ］へと変更する（ただし、ｃは、任意の整数である）。装置１が新たなポート番号［ＬＰ１＋ｃ］を発信元ポートとして使用する理由は、ルータ１が発信元（ＩＰＬ、ＬＰ１＋ｃ）に新たなポート番号［ＧＰ１＋ｄ］を割り当てると予測されるからである（ただし、ｄは、任意の整数であって、ルータ１において定められている増分値である）。【００８３】
続いて、装置１は、受信したＩＰ／ポート通知パケットから取得したＩＰアドレス及びポート番号（ＩＰＧ２、ＧＰ２＋ｂ）に基づき、宛先に（ＩＰＧ２、ＧＰ２＋ｂ＋ｎ）が設定されたＰ２Ｐ開始要求パケットをサーバに送信する（ステップＳ２００８）。ただし、ｎは、任意の整数である。【００８４】
装置１は、ステップＳ２００７及びＳ２００８において、きわめて短時間の間に連続してパケットを送信する。したがって、ステップＳ２００７において送信されたパケットの発信元ポート番号［ＬＰ１＋ｃ］が［ＧＰ１＋ｄ］へと変換される場合、ルータ１におけるＮＡＴの設定に従い、ステップＳ２００８において送信されたパケットの発信元ポート番号［ＬＰ１＋ｃ＋１］は、［ＧＰ１＋ｄ＋１］へと変換される。【００８５】
更に、ステップＳ２００８において装置１がパケットを送信した結果、ルータ１は、応答パケットを受信することができるように設定を変更する。すなわち、ルータ１が装置１から送信されたパケットの発信元（ＩＰＬ１、ＬＰ１＋ｃ＋１）を（ＩＰＧ１、ＧＰ１＋ｄ＋１）に変換して、当該パケットをルータ２（ＩＰＧ２、ＧＰ２＋ｂ＋ｎ）へと転送した後には、ルータ１は、送信元が（ＩＰＧ２、ＧＰ２＋ｂ＋ｎ）であるパケットを装置１（ＩＰＬ１、ＬＰ１＋ｃ＋１）へと転送することができる。尚、装置１が、取得した宛先ポート番号から任意の整数値ｎだけインクリメントされたポート番号へとパケットを送信する理由については後述する。【００８６】
一方、サーバは、ステップＳ２００７において装置１から送信されたＰ２Ｐ通信許可パケットを受信すると、ルータ１のＩＰアドレス及びポート番号（ＩＰＧ１、ＧＰ１＋ｄ）を含む通信許可パケットを装置２に送信する（ステップＳ２００９）。【００８７】
次に、装置２は、装置１にアクセスするためのＩＰアドレス及びポート番号（ＩＰＧ１、ＧＰ１＋ｄ）を受信するとすぐに、装置１へとＰ２Ｐ開始要求パケットを送信する（ステップＳ２０１０）。ステップＳ２０１０において、装置２は、発信元ポート番号を［ＬＰ２＋ａ＋１］から１ずつインクリメントしながら、ルータ１のポート番号［ＧＰ１＋ｄ＋１］を宛先ポートとするｎ個のＰ２Ｐ開始要求パケットを送出する。ルータ２は、装置２から送信されたｎ個のＰ２Ｐ開始要求パケットの各々の発信元ポート番号を、それぞれ、［ＧＰ２＋ｂ＋ｍ］〜［ＧＰ２＋ｍ＋ｎ−１］に変換する。ここで、ｎは、ステップＳ２００８〜Ｓ２０１０が実行される間の若干の経過時間において、ルータ１に接続される他の装置（図示せず）から送信されるパケットによってＮＡＴの設定が変更される可能性を考慮して定められる値である。また、ｍは、ｎ以下の整数である。【００８８】
結果として、ステップＳ２００８において装置１から送信されたパケットの宛先ポート番号［ＧＰ２＋ｂ＋ｎ］は、［ＧＰ２＋ｂ＋ｍ］〜［ＧＰ２＋ｂ＋ｍ＋ｎ−１］のいずれか１つと一致する。それ故に、ルータ１は、受信したｎ個のＰ２Ｐ開始要求パケットの１つを装置１へと転送する（ステップＳ２０１０−２）。図３０においては、ポート番号［ＧＰ２＋ｂ＋ｎ］及び［ＧＰ２＋ｂ＋ｍ＋２］が一致した場合の例が示されている。【００８９】
装置１は、ルータ１から転送されたＰ２Ｐ開始要求パケットを受信すると、Ｐ２Ｐ開始応答パケットを返信する（ステップＳ２０１１）。ステップＳ２０１０−２においてＮＡＴの設定が調整されたルータ２は、装置１から送信されたＰ２Ｐ開始応答パケットを装置２へと転送すると、装置１と装置２の間にＰ２Ｐ通信路が確立される。【００９０】
上記のように、各々が異なるプライベートネットワークに接続される２つの通信装置間にＰ２Ｐ通信路を確立する方法として、ＳＴＵＮを利用する方法と、上記特許文献に開示される方法とが知られている。
【特許文献１】特開２００４−１８０００３号公報
【発明の開示】
【発明が解決しようとする課題】
【００９１】
しかしながら、上記の従来のＰ２Ｐ通信路確立方法には、それぞれ以下に述べるような問題点がある。【００９２】
まず、ＳＴＵＮを利用する方法においては、次の２つの問題がある。第１に、通信装置が接続されるルータのＮＡＴ特性を調査するために必要なサーバ（ＳＴＵＮサーバ）の運用と保守に困難を要する。上述のように、ＳＴＵＮテストを実行するためには、常時ポートが開かれたサーバを２台用意する必要がある。サーバにおいて常時ポートを開いている状態は、悪意のある者からの不正アクセスや攻撃を受ける危険性を含んでおり、開くポートの数が多くなるにつれて、また、利用されるサーバの数が多くなるにつれて危険性も高まる。このため、ＩＰアドレスが互いに異なる２台のサーバ（ＡＳ  ＮＡＴ調査用）を用意し、かつ、一方のサーバにおいて互いに異なる２つのポート（ＰＳ  ＮＡＴ調査用）を常時開く必要のあるＳＴＵＮでは、サーバの運用及び保守に困難を要する。第２に、ＳＴＵＮによる方法は、２つの通信装置のいずれか一方が、Ｃｏｎｅ  ＮＡＴ以外のＮＡＴ特性を有するルータに接続されている場合には、Ｐ２Ｐ通信路を確立することができない。【００９３】
一方、上記特許文献に開示される手法においては、確かに、通信装置が接続されるルータのＮＡＴ特性（すなわち、Ｃｏｎｅ  ＮＡＴまたはＳｙｍｍｅｔｒｉｃ  ＮＡＴ）に依存することなく、Ｐ２Ｐ通信路の確立が成功する可能性が向上する。より詳細には、装置２が次にパケットを送出した際に、装置１は、サーバから通知されたルータ２のＷＡＮ側ポート番号に基づいて、ルータ１内で割り当てられる可能性のあるポート番号を予測する。装置２は、ルータ２によって割り当てられるポート番号と、装置１に予測されるポート番号とが一致する可能性を高めるために、複数個のパケットを送出する。【００９４】
しかしながら、２つの通信装置の両方がＦｕｌｌ  Ｃｏｎｅ  ＮＡＴ特性を有するルータに接続されている場合には、容易にポート番号を予測することができるため、一方の通信装置から複数個のパケットを送出する必要はない。逆に、一方の通信装置が複数個のパケットを送出することによって、次のような問題が生じる。第１に、複数の無駄なパケットを送出することによって、通信路確立に要する時間が増加する。第２に、通信装置に接続されるルータが侵入検知機能を有する場合には、当該ルータが、通信に使用されないポート番号を宛先とする複数のパケットを受信した際に、受信パケットが不正アクセスを企むパケットであると誤検知する可能性がある。侵入検知機能を有するルータは、不正アクセスを検知すると、受信したパケットを全て破棄するので、ルータに接続される通信装置が通信不能となる虞があり、結果として接続性が低下する。【００９５】
本発明は、ＮＡＴの特性を、１つのＩＰアドレスを有し、１つのポートを開いている１台のサーバを用いて調査することができる通信装置、通信方法及び通信システムを提供することを目的とする。更に、調査されたＮＡＴ特性に基づいて、ＮＡＴ特性に応じた最適な接続手順によって、Ｐ２Ｐ通信路を確立することができる通信装置、通信システム及び通信方法を提供することを目的とする。この結果、２つの装置同士を接続する際の接続時間及び接続性を改善する。
【課題を解決するための手段】
【００９６】
本発明の第１の局面は、ＮＡＴ（ネットワークアドレス変換）機能を有する第１の中継装置を介してサーバに接続される通信装置であって、通信装置のローカルポート番号であって互いに異なるポート番号が発信元ポート番号に設定され、かつ、サーバのポート番号であって互いに同一のポート番号が宛先ポート番号に設定された複数のアドレス情報調査要求パケットを、サーバに１つずつ送信するアドレス情報調査要求送信部と、アドレス情報調査要求送信部が最初のアドレス情報調査要求パケットを送信した後、最後のアドレス情報調査要求パケットを送信する前までの間に、複数のアドレス情報調査要求パケットのいずれかの発信元ポート番号と同一のポート番号が発信元ポート番号に設定された通信準備パケットを、サーバとは異なる宛先に送信する通信準備要求送信部と、アドレス情報調査要求パケットに応答してサーバから返送され、かつ、第１の中継装置においてアドレス情報調査要求パケットの発信元ポート番号から変換された中継ポート番号を含むアドレス情報調査応答パケットを、アドレス情報調査要求パケットと同じ数だけ受信するアドレス情報受信部とを備える。【００９７】
このような構成によれば、通信装置は、アドレス情報調査応答パケットに含まれる中継ポート番号を取得することにより、サーバとは異なる宛先に送信した通信準備要求パケットに割り当てられた中継ポート番号を把握できる。これにより、通信装置は、異なる宛先に送信された２種類のパケットのポート番号変換特性、つまり第１の中継装置のＮＡＴ特性を判断することが可能なポート番号変換特性を把握することができる。【００９８】
また、本発明に係る通信装置は、アドレス情報受信部において受信した各アドレス情報調査応答パケットに含まれる中継ポート番号に基づいて、第１の中継装置のＮＡＴ特性を判断する中継特性判断部を更に備えても良い。【００９９】
このような構成によれば、通信装置は、異なる宛先に送信され２種類のパケットのポート番号変換特性に基づいて、第１の中継装置のＮＡＴ特性を判断することが可能となる。【０１００】
アドレス情報調査要求送信部は、宛先ポート番号にサーバのポート番号が設定され、かつ、発信元ポート番号に通信装置の第１のローカルポート番号が設定された第１のアドレス情報調査要求パケットと、宛先ポート番号が第１のアドレス情報調査要求パケットと同一であり、かつ、発信元ポート番号に第１のローカルポート番号とは異なる通信装置の第２のローカルポート番号が設定された第２のアドレス情報調査要求パケットと、宛先ポート番号が第１のアドレス情報調査要求パケットと同一であり、かつ、発信元ポート番号に第１及び第２のローカルポート番号とは異なる通信装置の第３のローカルポート番号が設定された第３のアドレス情報調査要求パケットとを１つずつ送信し、アドレス情報受信部は、第１のアドレス情報調査要求パケットに応答してサーバから返送され、第１の中継装置の第１の中継ポート番号を含む第１のアドレス情報パケットと、第２のアドレス情報調査要求パケットに応答してサーバから返送され、第１の中継装置の第２の中継ポート番号を含む第２のアドレス情報パケットと、第３のアドレス情報調査要求パケットに応答してサーバから返送され、第１の中継装置の第３の中継ポート番号を含む第３のアドレス情報パケットとを受信し、中継特性判断部は、第１と第２の中継ポート番号から計算される第１の差分値と、第２と第３の中継ポート番号から計算される第２の差分値とを計算し、第１及び第２の差分値の比較に基づいて、第１の中継装置のＮＡＴ特性を判断しても良い。【０１０１】
このような構成によれば、ＮＡＴ機能によるポート割り当て間隔の規則性を利用して、第１の中継装置のＮＡＴ特性を効率的に判断することができる。【０１０２】
更に、サーバには、ＮＡＴ機能を有する第２の中継装置を介して、接続先通信装置が接続されており、通信装置は、中継特性判断部によって判定された第１の中継装置のＮＡＴ特性に基づいて、接続先通信装置とのピア・ツー・ピア通信に第１の中継装置が割り当てる第１のＰ２Ｐ中継ポート番号を予測し、予測した第１のＰ２Ｐ中継ポート番号を含む第１の中継情報パケットをサーバに送信する中継情報送信部と、接続先通信装置とのピア・ツー・ピア通信に第２の中継装置が割り当てる第２のＰ２Ｐ中継ポート番号を含む第２の中継情報パケットを、サーバから受信する中継情報受信部と、接続先通信装置にピア・ツー・ピア通信の開始を要求するために、第２の中継情報パケットに含まれる第２のＰ２Ｐ中継ポート番号を宛先ポート番号に設定した開始要求パケットを送信する通信制御部とを更に備えていても良い。【０１０３】
このような構成によれば、通信装置は、接続先通信装置とＰ２Ｐ通信を行う際に第１の中継装置が開くと予想されるポート番号を接続先通信装置に通知すると共に、開始要求パケットを送信して、第１の中継装置上にＰ２Ｐ通信用のポート番号を用意する。したがって、通信装置は、接続先通信装置からのＰ２Ｐ開始要求パケットの受信を契機として、Ｐ２Ｐ通信を開始することが可能となる。【０１０４】
この場合、中継情報送信部は、中継特性判断部が、第１及び第２の差分値が同じ値であると判断した場合に、第１〜第３の中継ポート番号のうちいずれか１つを第１のＰ２Ｐ中継ポート番号として含む第１の中継情報パケットを送信し、中継特性判断部が、第１及び第２の差分値が不一致であると判断した場合に、第３の中継ポート番号と、第１及び第２の差分値のうちいずれか小さい方とを加算した値を第１のＰ２Ｐ中継ポート番号として含む第１の中継情報パケットを送信しても良い。【０１０５】
このような構成によれば、通信装置は、第１及び第２の差分値が同じ値である場合に、第１の中継装置がＣｏｎｅ  ＮＡＴ特性を有することを考慮して決定したポート番号を接続先通信装置に通知し、第１及び第２の差分値が不一致である場合に、第１の中継装置がＳｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有することを考慮して決定したポート番号を接続先通信装置に通知するので、接続先通信装置からの送信パケットが第１の中継装置を超えてパケットを伝送できる可能性を高めることができる。【０１０６】
あるいは、中継情報送信部は、中継特性判断部が、第１の中継ポート番号及び第１のローカルポート番号が一致すると判断した場合に、任意のローカルポート番号を第１のＰ２Ｐ中継ポートとして含む第１の中継情報パケットを送信しても良い。【０１０７】
このような構成によれば、通信装置は、第１の中継装置がＰｏｒｔ  Ｒｅｕｓｅ特性を有すること考慮して決定したポート番号を接続先通信装置に通知するので、接続先通信装置からの送信パケットが第１の中継装置を超えてパケットを伝送できる可能性を高めることができる。【０１０８】
更に、通信準備要求送信部は、通信準備パケットが第１の中継装置に到達し、かつ、第２の中継装置には到達しないように、通信準備パケットのヘッダに含まれるＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）の値を調整することが好ましい。【０１０９】
このような構成によれば、通信準備パケットが通信相手に接続される第２の中継装置に届かないため、第２の中継装置が侵入検知機能を有している場合に、通信準備パケットが不正侵入であると誤検知されることを回避できる。【０１１０】
また、通信装置は、第１及び第２の差分値を保持するための記憶部を更に備えても良い。この場合、２回目以降のピア・ツー・ピア通信開始前において、中継特性判断部は、記憶部に保持される第１及び第２の差分値から第１の中継装置のＮＡＴ特性を判断しても良い。【０１１１】
このような構成によれば、通信装置は、記憶部に保持される第１及び第２の差分を再利用することができるので、通信装置が２回目以降にＰ２Ｐ通信を行う際に、再度のアドレス調査要求パケットの送信の省略が可能となり、Ｐ２Ｐ通信路の確立に要する時間を短縮できる。【０１１２】
アドレス情報調査要求送信部は、宛先ポート番号にサーバのポート番号が設定され、かつ、発信元ポート番号に通信装置の第４のローカルポート番号が設定された第４のアドレス情報調査要求パケットを送信し、アドレス情報受信部は、第４のアドレス情報調査要求パケットに応答してサーバから返送され、第１の中継装置の第４の中継ポート番号を含む第４のアドレス情報パケットを受信し、中継情報送信部は、中継特性判断部が、記憶部に保持される第１及び第２の差分値が同じ値であると判断した場合、第４の中継ポート番号を第１のＰ２Ｐ中継ポート番号として含む第１の中継情報パケットを送信し、中継特性判断部が、記憶部に保持されている第１及び第２の差分値が不一致であると判断した場合、第４の中継ポート番号と、保持されている第１及び第２の差分値のうちいずれか小さい方とを加算した値を第１のＰ２Ｐ中継ポート番号として含む第１の中継情報パケットを送信しても良い。【０１１３】
このような構成によれば、記憶部に保持される情報と、第４の中継ポート番号とに基づいて、第１の中継装置がＰ２Ｐ通信で使用すると予測されるポート番号を効率的に求めることができる。【０１１４】
通信装置は、第１の中継ポート番号及び第１のローカルポート番号が一致すると判断した場合に、第１の中継ポート番号及び第１のローカルポート番号が一致することを示す情報を記憶部に記憶しても良い。この場合、２回目以降のピア・ツー・ピア通信開始前において、中継特性判断部が、記憶部に第１の中継ポート番号及び第１のローカルポート番号が一致することを示す情報が保持されていると判断した場合、中継情報送信部は、任意のローカルポート番号を第１のＰ２Ｐ中継ポート番号として含む第１の中継情報パケットを送信しても良い。【０１１５】
このような構成によれば、前回のＮＡＴ特性調査において、ルータのＮＡＴ特性がＰｏｒｔＲｅｕｓｅであった場合、今回のＰ２Ｐ通信路確立時には、ＮＡＴ特性調査を省略して、第１の中継装置がＰ２Ｐ通信で使用すると予測されるポート番号として、自身がＰ２Ｐ通信の際に開く予定の任意のローカルポート番号を接続先通信装置に通知することが可能となる。【０１１６】
また、通信装置は、各アドレス情報調査応答パケットに含まれる中継ポート番号の間隔と、当該間隔に応じて異なるＮＡＴ特性とを対応付けした対応情報を、予め保持した記憶部を更に備え、アドレス情報調査要求送信部は、宛先ポート番号にサーバのポート番号が設定され、かつ、発信元ポート番号に通信装置の第１のローカルポート番号が設定された第１のアドレス情報調査要求パケットと、宛先ポート番号が第１のアドレス情報調査要求パケットと同一であり、かつ、発信元ポート番号に第１のローカルポート番号とは異なる通信装置の第２のローカルポート番号が設定された第２のアドレス情報調査要求パケットとを１つずつ送信し、アドレス情報受信部は、第１のアドレス情報調査要求パケットに応答してサーバから返送され、第１の中継装置の第１の中継ポート番号を含む第１のアドレス情報パケットと、第２のアドレス情報調査要求パケットに応答してサーバから返送され、第１の中継装置の第２の中継ポート番号を含む第２のアドレス情報パケットとを受信し、中継特性判断部は、対応情報において受信した第１と第２の中継ポート番号の間隔に対応するＮＡＴ特性を、第１の中継装置のＮＡＴ特性と判断しても良い。【０１１７】
このような構成によれば、ＮＡＴ機能によるポート割り当て間隔の規則性を利用して、第１の中継装置のＮＡＴ特性を効率的に判断することができる。【０１１８】
本発明の第２の局面は、ＮＡＴ（ネットワークアドレス変換）機能を有する第１の中継装置を介してサーバに接続される通信装置が、サーバと通信を行うことによって、第１の中継装置のＮＡＴ特性を判断する通信方法であって、通信装置のローカルポート番号であって互いに異なるポート番号が発信元ポート番号に設定され、かつ、サーバのポート番号であって互いに同一のポート番号が宛先ポート番号に設定された複数のアドレス情報調査要求パケットを、サーバに１つずつ送信するアドレス情報調査要求送信ステップと、アドレス情報調査要求送信ステップにおいて最初のアドレス情報調査要求パケットが送信された後、最後のアドレス情報調査要求パケットが送信される前までの間に、複数のアドレス情報調査要求パケットのいずれかの発信元ポート番号と同一のポート番号が発信元ポート番号に設定された通信準備パケットを、サーバとは異なる宛先に送信する通信準備要求送信ステップと、アドレス情報調査要求パケットに応答してサーバから返送され、かつ、第１の中継装置においてアドレス情報調査要求パケットの発信元ポート番号から変換された中継ポート番号を含むアドレス情報調査応答パケットを、アドレス情報調査要求パケットと同じ数だけ受信するアドレス情報受信ステップと、アドレス情報受信ステップにおいて受信した各アドレス情報調査応答パケットに含まれる中継ポート番号に基づいて、第１の中継装置のＮＡＴ特性を判断する中継特性判断ステップとを備える。【０１１９】
このような構成によれば、通信装置は、アドレス情報調査応答パケットに含まれる中継ポート番号を取得することにより、サーバとは異なる宛先に送信した通信準備要求パケットに割り当てられた中継ポート番号を把握できる。これにより、通信装置は、異なる宛先に送信された２種類のパケットのポート番号変換特性を把握することができ、当該ポート番号変換特性に基づいて第１の中継装置のＮＡＴ特性を判断することが可能となる。【０１２０】
本発明の第３の局面は、サーバと、ＮＡＴ（ネットワークアドレス変換）機能を有する第１の中継装置と、ＮＡＴ機能を有する第２の中継装置と、第１の中継装置を介してサーバに接続される第１の通信装置と、第２の中継装置を介してサーバに接続される第２の通信装置とを備える通信システムに向けられている。第１及び第２の通信装置の各々は、自装置のローカルポート番号であって互いに異なるポート番号が発信元ポート番号に設定され、かつ、サーバのポート番号であって互いに同一のポート番号が宛先ポート番号に設定された複数のアドレス情報調査要求パケットを、サーバに１つずつ送信するアドレス情報調査要求送信部と、アドレス情報調査要求送信部が最初のアドレス情報調査要求パケットを送信した後、最後のアドレス情報調査要求パケットを送信する前までの間に、複数のアドレス情報調査要求パケットのいずれかの発信元ポート番号と同一のポート番号が発信元ポート番号に設定された通信準備パケットを、サーバとは異なる宛先に送信する通信準備要求送信部と、アドレス情報調査要求パケットに応答してサーバから返送され、かつ、各々に接続される中継装置においてアドレス情報調査要求パケットの発信元ポート番号から変換された中継ポート番号を含むアドレス情報調査応答パケットを、アドレス情報調査要求パケットと同じ数だけ受信するアドレス情報受信部と、アドレス情報受信部において受信した各アドレス情報調査応答パケットに含まれる中継ポート番号に基づいて、第１の中継装置のＮＡＴ特性を判断する中継特性判断部とを含み、サーバは、第１及び第２の通信装置の各々から送信されたアドレス情報調査要求パケットに含まれる中継ポート番号を取り出すアドレス情報調査部と、取り出された中継ポート番号を含むアドレス情報調査要求応答パケットを送信するアドレス情報送信部とを含む。【０１２１】
このような構成によれば、通信装置は、アドレス情報調査応答パケットに含まれる中継ポート番号を取得することにより、サーバとは異なる宛先に送信した通信準備要求パケットに割り当てられた中継ポート番号を把握できる。これにより、通信装置は、異なる宛先に送信された２種類のパケットのポート番号変換特性を把握することができ、当該ポート番号変換特性に基づいて第１の中継装置のＮＡＴ特性を判断することが可能となる。【０１２２】
本発明の第４の局面は、サーバと、ＮＡＴ（ネットワークアドレス変換）機能を有する第１の中継装置と、ＮＡＴ機能を有する第２の中継装置と、第１の中継装置を介してサーバに接続される第１の通信装置と、第２の中継装置を介してサーバに接続される第２の通信装置とを備える通信システムに向けられている。第１及び第２の通信装置の各々は、自装置のローカルポート番号であって互いに異なるポート番号が発信元ポート番号に設定され、かつ、サーバのポート番号であって互いに同一のポート番号が宛先ポート番号に設定された複数のアドレス情報調査要求パケットを、サーバに１つずつ送信するアドレス情報調査要求送信部と、アドレス情報調査要求送信部が最初のアドレス情報調査要求パケットを送信した後、最後のアドレス情報調査要求パケットを送信する前までの間に、複数のアドレス情報調査要求パケットのいずれかの発信元ポート番号と同一のポート番号が発信元ポート番号に設定された通信準備パケットを、サーバとは異なる宛先に送信する通信準備要求送信部とを含み、サーバは、第１及び第２の中継装置の各々においてアドレス情報調査要求パケットの発信元ポート番号から変換された中継ポート番号に基づいて、第１及び第２の中継装置のＮＡＴ特性を判定するアドレス情報調査部を含む。【０１２３】
このような構成によれば、第１及び第２の中継装置の各々においてアドレス情報調査要求パケットの発信元ポート番号から変換された中継ポート番号に基づいて、サーバは、第１及び第２の中継装置のＮＡＴ特性を判断することができる。
【発明の効果】
【０１２４】
本発明に係る通信装置、通信方法及び通信システムによれば、１つのＩＰアドレスを有し、１つのポートを開いている１台のサーバとの通信することによって、中継装置のＮＡＴ特性を調査することができる。これにより、ＮＡＴ特性調査に必要なハードウェア資源を節約することができるので、サーバの運用や保守を容易にし、必要なコストを最小限に抑えることが可能となる。【０１２５】
更に、異なるプライベートネットワークに配置された通信装置同士がＰ２Ｐ通信路を確立する際に、「接続時間の短縮」と「通信不能の回避」とを実現することが可能となる。
【図面の簡単な説明】
【０１２６】
【図１】図１は、本発明の実施の形態１に係る通信システムの全体構成を示すブロック図である。
【図２Ａ】図２Ａは、図１に示される装置１０の概略構成を示すブロック図である。
【図２Ｂ】図２Ｂは、図１に示される装置２０の概略構成を示すブロック図である。
【図２Ｃ】図２Ｃは、図１に示されるサーバ００１の概略構成を示すブロック図である。
【図３】図３は、本実施の形態に係る通信システムがＰ２Ｐ通信路を確立するために実行する処理の概略を示すシーケンス図である。
【図４Ａ】図４Ａは、図３に示されるＮＡＴ特性調査フェーズ及び準備フェーズにおける処理の詳細を示すシーケンス図である。
【図４Ｂ】図４Ｂは、図４Ａに示されるステップＳ４０８の処理の詳細を示すフローチャートである。
【図５Ａ】図５Ａは、図４Ａに示されるステップＳ４１０を説明するための図である。
【図５Ｂ】図５Ｂは、図４Ａに示されるステップＳ４１１を説明するための図である。
【図６】図６は、図３に示される情報交換フェーズにおける処理の詳細を示すシーケンス図である。
【図７】図７は、図３に示されるＰ２Ｐ通信路確立フェーズにおける処理の詳細を示すシーケンス図である。
【図８】図８は、ルータ１０１がＣｏｎｅ  ＮＡＴである場合の接続シーケンスの詳細を示す図である。
【図９Ａ】図９Ａは、ルータ１０１がＳｙｍｍｅｔｒｉｃ  ＮＡＴである場合の接続シーケンスの詳細を示す図である。
【図９Ｂ】図９Ｂは、図９Ａに示されるポート番号を示す図である。
【図１０】図１０は、ルータ１０１がＰｏｒｔ  Ｒｅｕｓｅである場合の接続シーケンスの詳細を示す図である。
【図１１】図１１は、本発明の実施の形態２に係る通信システムの接続シーケンス図である。
【図１２】図１２は、本発明の実施の形態３に係る通信システムの全体構成を示すブロック図である。
【図１３】図１３は、Ｐ２Ｐ通信路確立のために送受信されるパケットと、ＳＩＰメッセージとの対応関係を示す図である。
【図１４】図１４は、ＳＩＰのＯＰＴＩＯＮＳリクエストのメッセージフォーマットの例を示す図である。
【図１５】図１５は、ＳＩＰの２００  ＯＫレスポンスのメッセージフォーマットの例を示す図である。
【図１６】図１６は、ＳＩＰのＩＮＶＩＴＥリクエストのメッセージフォーマットの例を示す図である。
【図１７】図１７は、ＳＩＰの１８３  Ｓｅｓｓｉｏｎ  Ｐｒｏｇｒｅｓｓレスポンスのメッセージフォーマットの例を示す図である。
【図１８】図１８は、ＳＩＰプロトコルを用いたＮＡＴ特性調査フェーズ及び準備フェーズにおける処理の詳細を示すシーケンス図である。
【図１９】図１９は、本発明の第３の実施形態に係る通信システムがＰ２Ｐ通信路を確立するための制御処理を示すシーケンス図である。
【図２０Ａ】図２０Ａは、情報交換フェーズにおいて、２台のルータのＮＡＴ特性の組み合わせ毎に、各ルータが通知するＰ２Ｐポートの組み合わせを示す表である。
【図２０Ｂ】図２０Ｂは、Ｐ２Ｐ通信路確立フェーズにおいて、２台のルータのＮＡＴ特性の組み合わせ毎に、各ルータに接続される装置が実行する処理の組み合わせを示す表である。
【図２１Ａ】図２１Ａは、装置が３つのルータを介してグローバルネットワークに接続されている例を示す図である。
【図２１Ｂ】図２１Ｂは、装置が３つのルータを介してグローバルネットワークに接続されている他の例を示す図である。
【図２２Ａ】図２２Ａは、ポート割当て間隔が１であり、かつ、Ｃｏｎｅ  ＮＡＴ特性を有するルータの図である。
【図２２Ｂ】図２２Ｂは、ポート割当て間隔が１であり、かつ、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有するルータの図である。
【図２３Ａ】図２３Ａは、Ｆｕｌｌ  Ｃｏｎｅ  ＮＡＴと呼ばれるＮＡＴを説明するための図である。
【図２３Ｂ】図２３Ｂは、Ｒｅｓｔｒｉｃｔｅｄ  Ｃｏｎｅ  ＮＡＴと呼ばれるＮＡＴを説明するための図である。
【図２３Ｃ】図２３Ｃは、Ｐｏｒｔ  Ｒｅｓｔｒｉｃｔｅｄ  Ｃｏｎｅ  ＮＡＴと呼ばれるＮＡＴ特性を説明するための図である。
【図２３Ｄ】図２３Ｄは、Ａｄｒｅｓｓ  Ｓｅｎｓｉｔｉｖｅ  Ｓｙｍｍｅｔｒｉｃ  ＮＡＴと呼ばれるＮＡＴを説明するための図である。
【図２３Ｅ】図２３Ｅは、Ｐｏｒｔ  Ｓｅｎｓｉｔｉｖｅ  Ｓｙｍｍｅｔｒｉｃ  ＮＡＴと呼ばれるＮＡＴを説明するための図である。
【図２４Ａ】図２４Ａは、Ｐｏｒｔ  Ｒｅｕｓｅ特性の概略を説明するための図である。
【図２４Ｂ】図２４Ｂは、Ｐｏｒｔ  Ｒｅｕｓｅ特性を有するルータの機能を説明するための図である。
【図２５Ａ】図２５Ａは、ＳＴＵＮ−ＴｅｓｔＩの概略を示す図である。
【図２５Ｂ】図２５Ｂは、ＳＴＵＮ−ＴｅｓｔＩＩの概略を示す図である。
【図２５Ｃ】図２５Ｃは、ＳＴＵＮ−ＴｅｓｔＩＩＩの概略を示す図である。
【図２６】図２６は、ＳＴＵＮによってＮＡＴ特性を調査するためのフローチャートである。
【図２７】図２７は、ＳＴＵＮを利用するＰ２Ｐ通信路確立方法を示すシーケンス図である。
【図２８】図２８は、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有するルータを介して接続される２つの通信装置に、ＳＴＵＮを利用するＰ２Ｐ通信路確立方法を適用した場合の処理手順を示すシーケンス図である。
【図２９】図２９は、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有するルータを介して接続される２つの通信装置に、ＳＴＵＮを利用するＰ２Ｐ通信路確立方法を適用した場合の処理手順を示すシーケンス図である。
【図３０】図３０は、従来のＰ２Ｐ通信路確立方法を示すシーケンス図である。
【符号の説明】
【０１２７】
００                グローバルネットワーク
０１、０２          プライベートネットワーク
００１              サーバ
１０、２０          装置
１０１、２０１      ルータ
３００              ＳＩＰサーバ
００１１            アドレス情報調査部
００１２            アドレス情報送信部
００１３            中継情報転送部
１００１、２００１  アドレス情報調査要求送信部
１００２、２００２  アドレス情報受信部
１００３、２００３  直接通信準備要求送信部
１００４、２００４  中継特性判断部
１００５、２００５  中継情報送信部
１００６、２００６  中継情報受信部
１００７、２００７  通信制御部
１００８、２００８  通信部
【発明を実施するための最良の形態】
【０１２８】
（実施の形態１）
図１は、本発明の実施の形態１に係る通信システムの全体構成を示すブロック図である。【０１２９】
図１に示されるように、プライベートネットワーク０１は、グローバルＩＰアドレス［ＩＰＧ１］を有するルータ１０１を介して、グローバルネットワーク００に接続されている。また、プライベートネットワーク０２は、グローバルＩＰアドレス［ＩＰＧ２］を有するルータ２０１を介して、グローバルネットワーク００に接続されている。グローバルネットワーク００には、グローバルＩＰアドレス［ＩＰＳ］を有するサーバ００１が接続され、プライベートネットワーク０１及び０２には、ローカルＩＰアドレス［ＩＰＬ１］を有する装置１０及びローカルＩＰアドレス［ＩＰＬ２］を有する装置２０がそれぞれ接続されている。【０１３０】
図２Ａは、図１に示される装置１０の概略構成を示すブロック図である。【０１３１】
装置１０は、アドレス情報調査要求送信部１００１と、アドレス情報受信部１００２と、直接通信準備要求送信部１００３と、中継特性判断部１００４と、中継情報送信部１００５と、中継情報受信部１００６と、通信制御部１００７と、通信部１００８とを備える。【０１３２】
アドレス情報調査要求送信部１００１は、中継装置であるルータ１０１のＮＡＴ機能によって、装置１０から送信されるパケットに設定されるポート番号を調査するために、アドレス情報調査要求パケットをサーバ００１に送信する。より詳細には、アドレス情報調査要求送信部１００１は、発信元ポート番号が異なり、かつ、宛先ポート番号が同一である少なくとも３つのアドレス情報調査要求パケットをサーバ００１に送信する。【０１３３】
アドレス情報受信部１００２は、アドレス情報調査要求パケットに応答してサーバ００１から返送されるアドレス情報調査応答パケットをサーバ００１から受信する。アドレス情報調査応答パケットは、ルータ１０１のＮＡＴ機能によって設定されたポート番号（装置１０のローカルポート番号から変換されたポート番号）をデータ部に含む。【０１３４】
直接通信準備要求送信部１００３は、Ｐ２Ｐ通信時にルータ１０１によって割り当てられるポート番号を推測するため、アドレス情報調査要求送信部１００１が３つのアドレス情報調査要求パケットを送信する処理の間に、グローバルネットワーク００に接続される他の装置にＰ２Ｐ通信準備パケットを送信する。【０１３５】
中継特性判断部１００４は、アドレス情報受信部１００２によって受信されたアドレス情報調査応答パケットのデータ部に含まれているポート番号に基づいて、ルータ１０１のＮＡＴ特性を判別する。【０１３６】
中継情報送信部１００５は、中継特性判断部１００４によって判断されたルータ１０１のＮＡＴ特性に基づいて、Ｐ２Ｐ通信に使用するルータ１０１のポート番号を予測する。中継情報送信部１００５は、Ｐ２Ｐ通信に使用するポート番号をサーバ経由で接続先の装置２０に通知するために、予測したポート番号をデータ部に含むＮＡＴ情報通知パケットをサーバに送信する。【０１３７】
中継情報受信部１００６は、接続先装置から送信されたＮＡＴ情報通知パケットを受信する。受信されたＮＡＴ情報通知パケットは、接続先の装置２０に接続されているルータ２０１がＰ２Ｐ通信に使用するポート番号を含んでいる。【０１３８】
通信制御部１００７は、受信されたＮＡＴ情報通知パケットからルータ２０１のＰ２Ｐ通信に使用するポート番号を取り出し、それを宛先ポート番号に設定したＰ２Ｐ開始要求パケットを生成する。【０１３９】
通信部１００８は、上記の各部において生成されたパケットをプライベートネットワーク０１へと送出し、また、装置１０宛てのパケットをプライベートネットワーク０１から受信する。【０１４０】
図２Ｂは、図１に示される装置２０の概略構成を示すブロック図である。【０１４１】
装置２０は、アドレス情報調査要求送信部２００１と、アドレス情報受信部２００２と、直接通信準備要求送信部２００３と、中継特性判断部２００４と、中継情報送信部２００５と、中継情報受信部２００６と、通信制御部２００７と、通信部２００８とを備える。アドレス情報調査要求送信部２００１〜通信部２００８の各々の機能は、図２Ａに示されるアドレス情報調査要求送信部１００１〜通信部１００８の各々の機能と同様であるので、ここでは説明を繰り返さない。【０１４２】
図２Ｃは、図１に示されるサーバ００１の概略構成を示すブロック図である。【０１４３】
サーバ００１は、アドレス情報調査部００１１と、アドレス情報送信部００１２と、中継情報転送部００１３と、通信部００１４を備える。【０１４４】
アドレス情報調査部００１１は、装置１０及び２０の各々からアドレス情報調査要求パケットを受信すると、受信したパケットのヘッダに含まれる発信元ポート番号を取り出す。アドレス情報調査部００１１が取り出した発信元ポート番号は、ルータ１０１または２０１のＮＡＴ機能によって設定された値である。アドレス情報調査部００１１は、取り出されたポート番号をアドレス情報送信部００１２に出力する。【０１４５】
アドレス情報送信部００１２は、アドレス情報調査部００１１から受け取ったポート番号をデータ部に含むアドレス情報調査応答パケットを生成し、生成したパケットを装置に返信する。【０１４６】
中継情報転送部００１３は、２つの装置の一方からＮＡＴ情報通知パケットを受信すると、受信したＮＡＴ情報通知パケットを他方の装置に転送する。【０１４７】
通信部００１４は、各部において生成されたパケットをグローバルネットワーク００へと送出し、また、サーバ００１宛てのパケットをグローバルネットワーク００経由で受信する。【０１４８】
ここで、本実施の形態に係る通信システムにおける制御シーケンスについて説明する。【０１４９】
図３は、本実施の形態に係る通信システムがＰ２Ｐ通信路を確立するために実行する処理の概略を示すシーケンス図である。【０１５０】
図３に示されるように、本実施の形態に係るＰ２Ｐ通信路確立方法は、４つのフェーズ、すなわち、ＮＡＴ特性調査フェーズＳ３０１、準備フェーズＳ３０２、情報交換フェーズＳ３０３及びＰ２Ｐ通信路確立フェーズＳ３０４から構成される。【０１５１】
まず、ＮＡＴ特性調査フェーズＳ３０１において、装置１０は、サーバ００１と通信し、装置１０に接続されているルータ１０１のＮＡＴ特性（例えば、Ｃｏｎｅ  ＮＡＴまたはＳｙｍｍｅｔｒｉｃ  ＮＡＴ）を調査する。また、装置１０は、ルータ１０１がＰｏｒｔ  Ｒｅｕｓｅ特性を有しているか否かを調査する。同様に、装置２０は、サーバ００１と通信し、中継装置であるルータ２０１のＮＡＴ特性と、Ｐｏｒｔ  Ｒｅｕｓｅ特性の有無とを調査する。【０１５２】
次に、準備フェーズＳ３０２において、装置１０は、自身が接続されているルータ１０１にパケットを送信し、装置２０と通信するために使用するルータ１０１のポートを開く。同様に、装置２０は、ルータ２０１にパケットを送信し、装置１０と通信するために使用するルータ２０１のポートを開く。【０１５３】
次に、情報交換フェーズＳ３０３において、装置１０及び２０の各々は、ＮＡＴ特性調査フェーズにおいて判別したＮＡＴ特性と、Ｐ２Ｐ通信路を確立するために必要な情報とを、サーバ００１経由で交換する。【０１５４】
そして、Ｐ２Ｐ通信路確立フェーズＳ３０４において、装置１０及び２０の各々は、情報交換フェーズＳ３０３において取得した情報に基づいて、相互にパケットを送信し、Ｐ２Ｐ通信路を確立する。【０１５５】
尚、図３においては、図示の都合上、ＮＡＴ特性調査フェーズＳ３０１及び準備フェーズＳ３０２の順序が特定されているが、ＮＡＴ特性調査フェーズＳ３０１及び準備フェーズＳ３０２は、情報交換フェーズＳ３０３の前に完了している限り、どちらが先に実行されても良い。【０１５６】
以下、上記４つのフェーズについて、更に詳細に説明する。【０１５７】
＜ＮＡＴ特性調査フェーズ及び準備フェーズ＞
図４Ａは、図３に示されるＮＡＴ特性調査フェーズ及び準備フェーズにおける処理の詳細を示すシーケンス図である。【０１５８】
まず、装置１０は、アドレス情報調査要求１をサーバ００１へ送信する（ステップＳ４０１）。より詳細には、アドレス情報調査要求送信部１００１は、発信元ポート番号に装置１０のポート番号［ＬＰ１］が設定され、かつ、宛先ポート番号にサーバ００１のポート番号［ＳＰ１］が設定されたアドレス情報調査要求パケット１を送信する。【０１５９】
次に、サーバ００１は、装置１０から送信されたアドレス情報調査要求１に応答して、アドレス情報調査応答１を装置に返送する（ステップＳ４０２）。より詳細には、通信部００１４は、アドレス情報調査要求パケット１を受信し、受信したパケットをアドレス情報調査部００１１へと転送する。アドレス情報調査部００１１は、転送されたパケットのヘッダを参照して、発信元ポート番号、すなわち、ルータ１０１によって設定されたポート番号［ＧＰ１１］を取り出し、取り出した発信元ポート番号［ＧＰ１１］をアドレス情報送信部００１２へ出力する。そして、アドレス情報送信部００１２は、アドレス情報調査部から受け取ったルータ１０１のポート番号［ＧＰ１１］をデータ部に含むアドレス情報調査応答パケット１を生成し、生成したパケットを通信部００１４に出力する。通信部００１４は、アドレス情報送信部００１２から受け取ったパケットを装置１０へと返送する。装置１０において、通信部１００８がアドレス情報調査応答パケット１を受信すると、受信したパケットをアドレス情報受信部１００２へ転送する。【０１６０】
次に、装置１０は、アドレス情報調査要求２をサーバ００１へ送信する（ステップＳ４０３）。より詳細には、アドレス情報調査要求送信部１００１は、装置１０のポート番号［ＬＰ２］が発信元ポート番号に設定され、かつ、宛先ポート番号にサーバ００１のポート番号［ＳＰ１］が設定されたアドレス情報調査要求パケット２を送信する。【０１６１】
次に、サーバ００１は、装置１０から送信されたアドレス情報調査要求２に応答して、アドレス情報調査応答２を装置に返送する（ステップＳ４０４）。より詳細には、通信部００１４は、アドレス情報調査要求パケット２を受信し、受信したパケットをアドレス情報調査部００１１へと転送する。アドレス情報調査部００１１は、転送されたパケットのヘッダを参照して、発信元ポート番号、すなわち、ルータ１０１によって設定されたポート番号［ＧＰ１２］を取り出し、取り出した発信元ポート番号［ＧＰ１２］をアドレス情報送信部００１２へ出力する。そして、アドレス情報送信部００１２は、アドレス情報調査部から受け取ったルータ１０１のポート番号［ＧＰ１２］をデータ部に含むアドレス情報調査応答パケット２を生成し、生成したパケットを通信部００１４に出力する。通信部００１４は、アドレス情報送信部００１２から受け取ったパケットを装置１０へと返送する。装置１０においては、通信部１００８がアドレス情報調査応答パケット１を受信すると、受信したパケットをアドレス情報受信部１００２へ転送する。【０１６２】
次に、装置１０は、Ｐ２Ｐ通信準備パケットを装置２０に送信する（ステップＳ４０５）。より詳細には、装置１０は、サーバとは異なるＩＰアドレスを持つ装置２０とのＰ２Ｐ通信に使用するためのポート番号［ＧＰ１３］をルータ１０１上に用意するために、装置１０のポート番号［ＬＰ１］が発信元ポート番号に設定され、かつ、装置２０のＩＰアドレス及びポート番号を宛先とするパケットをルータ１０１へ送信する。【０１６３】
ルータ１０１は、ステップＳ４０５において、装置２０からルータ２０１を介してルータ１０１（ＩＰＧ１、ＧＰ１３）へと送信されたパケットを受け付けることができるように、ＮＡＴを設定する。ルータ１０１がＮＡＴを設定する方法は、ＮＡＴ特性（図２３Ａ〜図２３Ｅ）に応じて異なるが、ここでの説明を省略する。【０１６４】
次に、装置１０は、アドレス情報調査要求３をサーバ００１へ送信する（ステップＳ４０６）。より詳細には、アドレス情報調査要求送信部１００１は、装置１０のポート番号［ＬＰ３］が発信元ポート番号に設定され、かつ、サーバ００１のポート番号［ＳＰ１］を宛先ポート番号に設定されたパケットを、アドレス情報調査要求３として送信する。【０１６５】
サーバ００１は、装置１０から送信されたアドレス情報調査要求３に応答して、アドレス情報調査応答３を装置１０に返送する（ステップＳ４０７）。より詳細には、通信部００１４は、アドレス情報調査要求パケット３を受信し、受信したパケットをアドレス情報調査部００１１へと転送する。アドレス情報調査部００１１は、転送されたパケットのヘッダを参照して、発信元ポート番号、すなわち、ルータ１０１のポート番号［ＧＰ１４］を取り出し、取り出した発信元ポート番号［ＧＰ１４］をアドレス情報送信部００１２へ出力する。そして、アドレス情報送信部００１２は、アドレス情報調査部から受け取ったルータ１０１のポート番号［ＧＰ１４］をデータ部に含むアドレス情報調査応答パケット３を生成し、生成したパケットを通信部００１４に出力する。通信部００１４は、アドレス情報送信部００１２から受け取ったパケットを装置１０へと返送する。装置１０においては、通信部１００８がアドレス情報調査応答パケット１を受信すると、受信したパケットをアドレス情報受信部１００２へ転送する。【０１６６】
次に、装置１０は、アドレス情報調査応答パケット１〜３を受信すると、ルータ１０１のＮＡＴ特性を判断する（ステップＳ４０８）。装置１０の中継特性判断部１００４は、アドレス情報調査応答パケット１〜３に含まれるルータ１０１の３つのポート番号［ＧＰ１１］、［ＧＰ１２］及び［ＧＰ１４］に基づいて、後述する処理フローに従ってルータ１０１のＮＡＴ特性を判断する。【０１６７】
尚、本実施の形態において、Ｐ２Ｐ通信準備パケットをアドレス情報調査要求２の送信後に送信しているが、当該パケットの送信タイミングは必ずしもこの通りである必要はない。具体的には、Ｐ２Ｐ通信準備パケットは、アドレス情報調査要求１の送信後、アドレス情報調査要求３を送信する前までの間に送信されれば良い。言い換えれば、Ｐ２Ｐ通信準備パケットと、アドレス情報調査要求パケット２とは、任意の順序で送信されればよい。【０１６８】
また、図４Ａの例では、Ｐ２Ｐ通信準備パケットの発信元ポート番号に［ＬＰ１］が設定されているが、アドレス情報調査要求パケット１〜３を送信するポート番号［ＬＰ１］〜［ＬＰ３］のいずれかと同一であれば良い。【０１６９】
更に、上記のＰ２Ｐ通信準備パケット（ステップＳ４０５）の宛先に関し、装置１０は、装置２０のＩＰアドレス及びポート番号を予め取得していても良い。あるいは、サーバ００１がアドレス情報調査応答パケット１または２のいずれかに、装置２０のＩＰアドレス及びポート番号を設定して装置１０に送信し、装置１０は、受信したアドレス情報調査応答パケット１または２を参照して、装置２０のＩＰアドレス及びポート番号を取得しても良い。【０１７０】
更に、ステップＳ４０５においては、ルータ２０１が不正侵入検知機能を備える可能性を考慮して、Ｐ２Ｐ通信パケットに更に次のような工夫をすることがより好ましい。【０１７１】
例えば、装置１０が装置２０宛てに送信するパケットの宛先ポート番号は、実際にルータ２０１が使用しているポート番号（例えば、装置２０がサーバ００１と通信している際に、ルータ２０１が装置２０のパケットに割り当てているポート番号）を設定する。というのも、ルータ２０１が侵入検知機能を有する場合に、ルータ２０１が、通信に使用していないポート番号を宛先ポート番号に含むＰ２Ｐ通信準備パケットを装置１０から受信すると、当該パケットを不正アクセスパケットであると誤検知する可能性があるからである。ルータ２０１は、不正アクセスパケットを検知すると、装置１０から送信された後続のパケットを全て破棄するため、装置１０は、装置２０と通信不能となる虞がある。【０１７２】
あるいは、装置１０は、Ｐ２Ｐ通信準備パケットがルータ２０１に届かないように当該パケットのＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）の値を調整しても良い。装置１０がＰ２Ｐ通信準備パケットを送信するのは、自身が接続されるルータ１０１に、装置２０とのＰ２Ｐ通信のためのポート番号を用意するためであり、必ずしもルータ２０１にＰ２Ｐ通信準備パケットが届く必要はない。そこで、装置１０は、Ｐ２Ｐ通信準備パケットがルータ１０１に到達し、かつ、ルータ２０１に到達しないように、ＴＴＬの値を予め調整しておけば、ルータ２０１において不正侵入と検出されことを回避できる。【０１７３】
図４Ｂは、図４Ａに示されるステップＳ４０８の処理の詳細を示すフローチャートである。【０１７４】
上述のように、装置１０は、サーバ００１から返信されるアドレス情報調査応答パケット１〜３を参照して、アドレス情報調査要求パケット１〜３の送信時にルータ１０１が使用したポート番号［ＧＰ１１］、「ＧＰ１２］及び「ＧＰ１４］を取得する。ルータ１０１が、Ｐ２Ｐ通信準備パケットに割り当てるポート番号［ＧＰ１３］は、ルータ１０１のＮＡＴ特性に応じて異なり、［ＧＰ１１］、［ＧＰ１２］及び［ＧＰ１４］の３つのポート番号のいずれかに一致する場合と、一致しない場合とがある。また、一般に、ルータが開く隣接する２つのポート番号の間隔は一定である。それ故、３つのポート番号［ＧＰ１１］、［ＧＰ１２］及び［ＧＰ１４］のうち、隣接する２つのポート番号の差分を調べることによって、ＮＡＴ特性を判別することができる。【０１７５】
中継特性判断部１００４は、まず、取得したポート番号［ＧＰ１１］と［ＧＰ１２］との差分値Δ１（＝｜［ＧＰ１２］−［ＧＰ１１］｜）と、［ＧＰ１２］と［ＧＰ１４］との差分値Δ２（＝｜［ＧＰ１４］−［ＧＰ１２］｜）とが一致するか否かを判断する（ステップＳ４０９）。差分値Δ１とΔ２とが一致する場合（ステップＳ４０９でＹｅｓ）、中継特性判断部１００４は、ルータ１０１のＮＡＴがＣｏｎｅ  ＮＡＴであると判断し（ステップＳ４１０）、ステップＳ４１２へ進む。一方、差分値Δ１とΔ２とが一致しない場合（ステップＳ４０９でＮｏ）、中継特性判断部１００４は、ルータ１０１のＮＡＴがＳｙｍｍｅｔｒｉｃ  ＮＡＴであると判断し（ステップＳ４１１）、ステップＳ４１２へ進む。【０１７６】
更に、中継特性判断部１００４は、ステップＳ４０２で取得したルータ１０１のポート番号［ＧＰ１１］が、ステップＳ４０１で送信したアドレス情報調査要求パケット１の発信元ポート番号［ＬＰ１］に一致するか否かを判断する（ステップＳ４１２）。［ＧＰ１１］が［ＬＰ１］に一致する場合（ステップＳ４１２でＹｅｓ）、中継特性判断部１００４は、ルータ１０１がＰｏｒｔ  Ｒｅｕｓｅ特性を有すると判断し（ステップＳ４１３）、ＮＡＴ特性判断処理を終了する。それ以外の場合には、中継特性判断部１００４は、ＮＡＴ特性判断処理を終了する。【０１７７】
尚、ルータ１０１がＰｏｒｔ  Ｒｅｕｓｅ特性を有するか否かを厳密に判断するために、中継特性判断部１００４は、更に、ポート番号［ＧＰ１２］が［ＬＰ２］に一致するか否かを判断しても良い。この場合、中継特性判断部１００４は、［ＧＰ１１］が［ＬＰ１］に一致し、かつ、［ＧＰ１２］が［ＬＰ２］に一致する場合に、ルータ１０１がＰｏｒｔ  Ｒｅｕｓｅ特性を有していると判断する。また、ルータ１０１がＰｏｒｔ  Ｒｅｕｓｅ特性を有するか否かを緩やかに判断するために、［ＧＰ１１］が［ＬＰ１］に一致すること、あるいは、［ＧＰ１２］が［ＬＰ２］に一致することのいずれか一方を確認した場合に、中継特性判断部１００４は、ルータ１０１がＰｏｒｔ  Ｒｅｕｓｅ特性を有すると判断しても良い。また、ステップＳ４１２及びＳ４１３においてＰｏｒｔ  Ｒｅｕｓｅ特性を判断する処理を、ステップＳ４０９の前に行っても良い。【０１７８】
また、ルータ１０１がＰｏｒｔ  Ｒｅｕｓｅ特性を有する場合で、かつ、［ＬＰ１］及び［ＬＰ２］の差分と、［ＬＰ２］及び［ＬＰ３］の差分とが等しくない場合には、差分値Δ１とΔ２とは等しくならない。したがって、図４Ｂのフローチャートでは、ルータ１０１がＰｏｒｔ  ＲｅｕｓｅのＣｏｎｅ  ＮＡＴである場合に、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴであると判定される可能性が残る。ただし、後続のＰ２Ｐ接続シーケンスにおいて、Ｐｏｒｔ  ＲｅｕｓｅのＣｏｎｅ  ＮＡＴと、Ｐｏｒｔ  ＲｅｕｓｅのＳｙｍｍｅｔｒｉｃ  ＮＡＴに対して、共通の処理が用意されているので、Ｐｏｒｔ  ＲｅｕｓｅであることがステップＳ４１２及びＳ４１３で判定される限り、特に不具合が生じることはない。【０１７９】
更に、図４Ａのシーケンスにおいて、装置１０は、ステップＳ４０２でサーバ００１からアドレス情報調査応答パケット１を受信した時点で、ステップＳ４１２〜Ｓ４１３を実行し、ルータ１０１がＰｏｒｔＲｅｕｓｅであると判断した場合には、ステップＳ４０３〜Ｓ４０８を省略しても良い。【０１８０】
以上のＮＡＴ特性判定処理を通じて、装置１０は、ルータ１０１のＮＡＴ特性を調査することができる。【０１８１】
次に、上記のＮＡＴ特性判定処理の具体例を説明する。【０１８２】
図５Ａは、図４Ａに示されるステップＳ４１０を説明するための図である。【０１８３】
中継特性判断部１００４が、ステップＳ４０９においてＹｅｓと判断すること、すなわち、差分値Δ１がΔ２と一致することは、サーバのＩＰアドレス及びポート番号を宛先に含むパケットと、装置２０のＩＰアドレス及びポート番号を宛先に含むパケットとの両方に、ルータ１０１が同一のポート番号を割り当てたことを意味する。したがって、中継特性判断部１００４は、ルータ１０１がＣｏｎｅ  ＮＡＴ特性を有すると判断することができる。【０１８４】
図５Ｂは、図４Ａに示されるステップＳ４１１を説明するための図である。【０１８５】
中継特性判断部１００４が、ステップＳ４０９においてＮｏと判断すること、すなわち、差分値Δ１とΔ２とが異なることは、サーバのＩＰアドレス及びポート番号を宛先に含むパケットと、装置２０のＩＰアドレス及びポート番号を宛先に含むパケットとに、ルータ１０１がそれぞれ異なるポート番号を割り当てたことを意味する。したがって、中継特性判断部１００４は、ルータ１０１がＳｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有すると判断することができる。【０１８６】
尚、装置２０は、図４Ａに示されるものと同様の手順に従って、ルータ２０１のＮＡＴ特性を調査し、ルータ２０１は、Ｐ２Ｐ通信で使用するためのポートを開く。【０１８７】
また、図４Ａでは、説明の便宜上、ＮＡＴ特性調査フェーズ（ステップＳ４０１〜Ｓ４０４、ステップＳ４０６〜Ｓ４０８）と、準備フェーズ（ステップＳ４０５）とを併せて示しているが、ＮＡＴ特性調査フェーズと、準備フェーズとが互いに分離されていても良い。【０１８８】
更に、ＮＡＴ特性調査フェーズ及び準備フェーズは、必ずしも本実施の形態に示される順序で実行される必要はない。したがって、装置１０及び２０は、後続の情報交換フェーズの前に、ＮＡＴ特性調査フェーズ及び準備フェーズを完了していれば、本実施の形態と異なる順序で各ステップを実行しても良い。【０１８９】
＜情報交換フェーズ＞
図６は、図３に示される情報交換フェーズにおける処理の詳細を示すシーケンス図である。【０１９０】
以下の説明の前提条件として、装置１０及び２０の各々は、サーバ００１にルータ１０１及び２０１経由で予めパケットを送信して通信路を確立しており、サーバ経由でリアルタイムに情報を交換できる状態である。【０１９１】
まず、装置２０は、自身が接続されているルータ２０１のＰ２Ｐ通信に使用するポート番号（以降、Ｐ２Ｐ通信ポート番号）を装置１０に通知するために、サーバ００１へ送信する（ステップＳ６０１）。より詳細には、中継情報送信部２００５は、ＮＡＴ特性調査フェーズにおいてルータ２０１のＮＡＴ特性を判定し、判定結果に基づいてＰ２Ｐ通信ポート番号を予測する。そして、中継情報送信部２００５は、予測したポート番号をデータ部に含むＮＡＴ情報通知パケットを生成し、生成したＮＡＴ情報通知パケットを通信部２００８を介してサーバ００１へと送信する。【０１９２】
Ｐ２Ｐ通信ポート番号は、ＮＡＴ特性に応じて、下記のように決定される。【０１９３】
（ａ）ＮＡＴ特性がＣｏｎｅである場合
装置２０は、ポート番号［ＧＰ２１］、［ＧＰ２２］、［ＧＰ２４］の値のうち、いずれか１つをＰ２Ｐ通信ポート番号として決定する。本実施の形態においては、［ＧＰ２１］をＰ２Ｐ通信ポート番号として選択する。【０１９４】
（ｂ）ＮＡＴ特性がＳｙｍｍｅｔｒｉｃである場合
Ｓｙｍｍｅｔｒｉｃ  ＮＡＴは、パケットにポート番号を割り当てるたびに、所定の値ずつポート番号をインクリメント（または、デクリメント）する。以下の説明では、この所定の値を「ポート割り当て間隔」という。図５Ｂに例示されるように、差分値Δ１及びΔ２のうち小さい方が、ルータ２０１のポート割り当て間隔に相当するので、次にルータ２０１が開くポート番号は、［ＧＰ２４＋Δ１］であると予測される。したがって、装置２０は、［ＧＰ２４＋Δ１］をＰ２Ｐ通信ポート番号として決定する。【０１９５】
（ｃ）ＮＡＴがＰｏｒｔ  Ｒｅｕｓｅ特性を有する場合
装置２０は、次のＰ２Ｐ通信路確立フェーズで新たに開くことを予定するポート番号［ＬＰ４］をＰ２Ｐ通信ポート番号として決定する。尚、ポート番号［ＬＰ４］は、アドレス情報調査要求送信処理で使用した［ＬＰ１］、［ＬＰ２］、［ＬＰ３］とは異なる任意のポート番号で良い。【０１９６】
サーバ００１は、ＮＡＴ情報通知パケットを受信すると、受信したＮＡＴ情報通知パケットを装置１０へと転送する（ステップＳ６０２）。より詳細には、サーバ００１において、中継情報転送部００１３は、装置２０から送信されたＮＡＴ情報通知パケットを通信部００１４を介して一旦受信し、受信したＮＡＴ情報通知パケットを通信部００１４を介して装置１０へ転送する。【０１９７】
次に、装置１０は、自身が接続されているルータ１０１のＰ２Ｐ通信ポート番号を装置２０へ通知するために、サーバ００１へＮＡＴ情報を通知する（ステップＳ６０３）。より詳細には、中継情報送信部１００５は、ＮＡＴ特性調査フェーズにおいて取得したルータ１０１のＮＡＴ特性に基づいてＰ２Ｐ通信ポート番号を予測し、予測したポート番号をデータ部に含むＮＡＴ情報通知パケットを生成し、生成したＮＡＴ情報通知パケットを通信部１００８を介してサーバ００１へと送信する。装置１０がサーバ００１へ送信するＮＡＴ情報通知は、装置２０がサーバ００１へと送信するものと同様であるので、ここでの説明を繰り返さない。【０１９８】
サーバ００１は、ＮＡＴ情報通知パケットを受信すると、受信したＮＡＴ情報通知パケットを装置２０へと転送する（ステップＳ６０４）。より詳細には、サーバ００１において、中継情報転送部００１４は、装置１０から送信されたＮＡＴ情報通知パケットを通信部００１４を介して一旦受信し、受信したＮＡＴ情報通知パケットを通信部００１４を介して装置２０へ転送する。【０１９９】
尚、本実施の形態においては、装置１０及び２０の各々は、ＮＡＴ特性に基づき決定したＰ２Ｐ通信ポート番号をＮＡＴ情報として装置２０及び装置１０へしているが、３つのポート番号（ポート番号［ＧＰ１１］、［ＧＰ１２］及び［ＧＰ１４］、または、ポート番号［ＧＰ２１］、［ＧＰ２２］及び［ＧＰ２４］）をサーバ００１へ通知しても良い。この場合、装置１０及び２０の各々は、図４Ｂに示される処理フローに従って、サーバ００１から取得した３つのポート番号から、通信相手装置が接続されるルータ２０１及び１０１のそれぞれのＮＡＴ特性を判断し、ルータのＰ２Ｐ通信ポート番号の値を計算すれば良い。【０２００】
あるいは、サーバ００１が、図４Ｂに示される処理フローに従って、装置１０及び２０の各々から取得した３つのポート番号から、ルータ１０１及び２０１の各々のＮＡＴ特性をそれぞれ判断し、それに基づいて計算したルータ１０１及び２０１のＰ２Ｐ通信ポート番号をそれぞれ装置２０及び１０に通知しても良い。【０２０１】
また、ＮＡＴ情報は、装置１０、装置２０及びサーバ００１の少なくとも１つがルータのＮＡＴ特性を判別するために有用な情報であれば、上述される以外の情報を含んでいても良い。【０２０２】
更に、本実施の形態においては、装置２０が先にＮＡＴ情報通知パケットを送信しているが、装置１０が先にＮＡＴ情報通知パケットを送信しても良い。【０２０３】
更に、装置１０及び２０は、情報交換フェーズにおいて、ＮＡＴ特性調査フェーズで利用したサーバと同一のサーバを利用してＮＡＴ情報通知パケットを交換しているが、異なるサーバを利用しても良い。【０２０４】
＜Ｐ２Ｐ通信路確立フェーズ＞
図７は、図３に示されるＰ２Ｐ通信路確立フェーズにおける処理の詳細を示すシーケンス図である。図７では、ルータ２０１がＰＲ  Ｃｏｎｅ  ＮＡＴ特性またはＳｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有する場合が例示されている。【０２０５】
まず、装置１０の通信制御部１００７は、ステップＳ６０２において取得したルータ２０１のＰ２Ｐ通信ポート番号を宛先ポート番号に設定したＰ２Ｐ開始要求パケットを送信する（ステップＳ７０１）。ここで、発信元ポート番号に設定されるポート番号は、装置１０のＮＡＴ特性に応じて異なるが、詳細は後述する。【０２０６】
この段階では、ルータ２０１は、装置１０から送信されたパケットを転送するようにＮＡＴを設定していないため、ルータ２０１は、ステップＳ７０１において送信されたＰ２Ｐ開始要求パケットを破棄し、装置２０に転送しない。ただし、ルータ１０１は、発信元ポート番号にルータ２０１のＰ２Ｐ通信ポート番号が設定され、かつ、宛先ポート番号にルータ１０１のＰ２Ｐ通信ポート番号が設定されたパケットを、装置１０へ転送するようにＮＡＴを設定する。【０２０７】
一方、装置２０の通信制御部２００７は、ステップＳ６０４において取得したルータ１０１のＰ２Ｐ通信ポート番号を宛先ポート番号に設定したＰ２Ｐ開始要求パケットを送信する（ステップ７０２）。ここで、発信元ポート番号に設定されるポート番号は、ルータ２０１のＮＡＴ特性に応じて異なるが、詳細は後述する。【０２０８】
ルータ１０１は、装置２０から送信されたＰ２Ｐ開始要求パケットの宛先ＩＰアドレス（ここではルータ１０１のＩＰアドレス［ＩＰＧ１］）を装置１０のＩＰアドレス［ＩＰＬ１］に変換して、装置１０に転送する（以下、単に「転送」という）。装置１０において、通信制御部１００７は、ルータ１０１から転送されたＰ２Ｐ開始要求パケットに応答して、通信部１００８を介して、Ｐ２Ｐ開始応答パケットを装置２０へ送信する（ステップＳ７０３）。【０２０９】
尚、本実施の形態においては、装置１０が先にＰ２Ｐ開始要求を送信しているが、Ｐ２Ｐ開始要求の送信順序はこの限りではない。装置２０が先にＰ２Ｐ開始要求を送信した場合にも、図７のシーケンスと同様に、Ｐ２Ｐ通信路を確立することができる。【０２１０】
また、図７においては、ルータ２０１がＰＲ  Ｃｏｎｅ  ＮＡＴ特性またはＳｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有する場合のシーケンスの例として、ステップＳ７０１でルータ２０１がＰ２Ｐ開始要求パケットを破棄している。ルータ２０１がＦｕｌｌ  Ｃｏｎｅ  ＮＡＴまたはＲ  Ｃｏｎｅ  ＮＡＴ特性を有する場合、ルータ２０１は、ルータ１０１からのパケットを装置２０に転送するようにＮＡＴを既に設定しているので（図６のステップＳ６０１）、ステップＳ７０１において、ルータ２０１は、装置１０から送信されたＰ２Ｐ開始要求を装置２０に転送する。したがって、ステップＳ７０２において、装置２０がＰ２Ｐ開始要求を送信することによって、Ｐ２Ｐ通信路の確立が完了したと見なすことができる。以降のＰ２Ｐ接続シーケンスについても同様である。【０２１１】
以下、図８〜図１０を参照しながら、装置１０が装置２０との間にＰ２Ｐ通信路を確立するための接続シーケンスについて、ルータ１０１のＮＡＴ特性毎に分説する。【０２１２】
＜接続シーケンス１：ルータ１０１がＣｏｎｅ  ＮＡＴである場合＞
図８は、ルータ１０１がＣｏｎｅ  ＮＡＴである場合の接続シーケンスの詳細を示す図である。尚、図８においては、説明の簡略化のために、ルータ２０１がＣｏｎｅ  ＮＡＴ特性を有する場合を想定する。【０２１３】
上述したように、装置１０は、情報交換フェーズ（図６）のステップＳ６０１及びＳ６０２において装置２０からサーバ００１経由で通知された情報に基づき、装置２０が接続されるルータ２０１のＰ２Ｐ通信ポート番号を把握する。ルータ２０１がＣｏｎｅ  ＮＡＴ特性を有する場合、ＮＡＴ情報通知パケットにはルータ２０１のＰ２Ｐ通信ポート番号として［ＧＰ２１］が含まれる。一方、ルータ１０１もＣｏｎｅ  ＮＡＴ特性を有するので、ステップＳ６０３及びＳ６０４において、装置１０は、ルータ１０１のＰ２Ｐ通信ポート番号として［ＧＰ１１］をサーバ００１経由で装置２０に通知している。【０２１４】
そこで、装置１０の通信制御部１００７は、［ＬＰ１］が発信元ポート番号に設定され、かつ、宛先ポート番号に［ＧＰ２１］が設定されたパケットを、Ｐ２Ｐ開始要求として送信する（ステップＳ８０１）。ルータ１０１は、装置１０から送信されたパケットにポート番号［ＧＰ１１］（＝［ＧＰ１３］）を割り当てる。【０２１５】
この段階では、ルータ２０１は、装置１０から送信され、宛先ポート番号に［ＧＰ２１］が設定されたパケットを、装置２０に転送するようにＮＡＴを設定していないため、ルータ２０１は、ステップＳ８０１において送信されたＰ２Ｐ開始要求パケットを破棄し、装置２０に転送しない。ただし、ルータ１０１は、発信元ポート番号にルータ２０１のポート番号［ＧＰ２１］が設定され、かつ、宛先ＩＰアドレス及び宛先ポート番号に（ＩＰＧ１、ＧＰ１１）が設定されたパケットを、装置１０（ＩＰＬ１、ＬＰ１）へ転送するようにＮＡＴを設定する。【０２１６】
次に、装置２０は、情報交換フェーズにおいてサーバ００１から通知された情報に基づき、装置１０が接続されるルータ１０１のＰ２Ｐ通信ポート番号を取得する。通信制御部２００７は、［ＧＰ２１］に対応する［ＬＰ１］が発信元ポート番号に設定され、かつ、宛先ポート番号に［ＧＰ１１］が設定されたパケットを、Ｐ２Ｐ開始要求として送信する（ステップＳ８０２）。【０２１７】
ルータ１０１は、装置２０から送信されたＰ２Ｐ開始要求パケットを装置１０に転送する。装置１０において、通信制御部１００７は、ルータ１０１から転送されたＰ２Ｐ開始要求パケットに応答して、通信部１００８を介して、Ｐ２Ｐ開始応答パケットを装置２０へ送信する（ステップＳ８０３）。【０２１８】
ルータ１０１がＣｏｎｅ  ＮＡＴ特性を有する場合、上記の処理手順に従って、装置１０及び２０の間にＰ２Ｐ通信路を確立することができる。【０２１９】
＜接続シーケンス２：ルータ１０１がＳｙｍｍｅｔｒｉｃ  ＮＡＴである場合＞
図９Ａは、ルータ１０１がＳｙｍｍｅｔｒｉｃ  ＮＡＴである場合の接続シーケンスの詳細を示す図であり、図９Ｂは、図９Ａに示されるポート番号を示す図である。尚、図９においては、説明の簡略化のために、ルータ２０１がＣｏｎｅ  ＮＡＴ特性を有する場合を想定する。【０２２０】
上述したように、装置１０は、情報交換フェーズ（図６）のステップＳ６０１及びＳ６０２において装置２０から通知された情報に基づき、装置２０が接続されるルータ２０１のＰ２Ｐ通信ポート番号を把握する。ルータ２０１がＣｏｎｅ  ＮＡＴ特性を有する場合、ＮＡＴ情報通知にはルータ２０１のＰ２Ｐ通信ポート番号として［ＧＰ２１］が含まれる。一方、ルータ１０１はＳｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有する場合、装置１０は、ステップＳ６０３及びＳ６０４において、ルータ１０１のＰ２Ｐ通信ポート番号として［ＧＰ１４＋Δ１］をサーバ００１経由で装置２０に通知している。【０２２１】
そこで、装置１０の通信制御部１００７は、［ＬＰ４］が発信元ポート番号に設定され、かつ、宛先ポート番号に［ＧＰ２１］が設定されたパケットを、Ｐ２Ｐ開始要求として送信する（ステップＳ９０１）。【０２２２】
装置１０から送信されたパケットに対して、ルータ１０１はポート番号［ＧＰ１４＋Δ１］を割り当てる（ただし、Δ１は、ルータ１０１のポート割当て間隔である）。【０２２３】
この段階では、ルータ２０１は、装置１０から送信された宛先ポート番号が［ＧＰ２１］に設定されたパケットを装置２０に転送するようにＮＡＴを設定していない。したがって、ルータ２０１は、ステップＳ９０１において送信されたＰ２Ｐ開始要求パケットを破棄し、装置２０に転送しない。ただし、ルータ１０１は、発信元ポート番号にルータ２０１のポート番号［ＧＰ２１］が設定され、かつ、宛先ＩＰアドレス及び宛先ポート番号に（ＩＰＧ１、ＧＰ１４＋Δ１）が設定されたパケットを、装置１０（ＩＰＬ１、ＬＰ１）へと転送するようにＮＡＴを設定する。【０２２４】
装置２０は、情報交換フェーズにおいてサーバ００１から通知された情報に基づき、装置１０が接続されるルータ１０１のＰ２Ｐ通信ポート番号を取得している。通信制御部２００７は、［ＧＰ２１］に対応する［ＬＰ１］が発信元ポート番号に設定され、かつ、宛先ポート番号に［ＧＰ１４＋Δ１］が設定されたパケットを、Ｐ２Ｐ開始要求として送信する（ステップＳ９０２）。【０２２５】
ルータ１０１は、装置２０から送信されたＰ２Ｐ開始要求パケットを装置１０に転送する。装置１０において、通信制御部１００７は、ルータ１０１から転送されたＰ２Ｐ開始要求パケットに応答して、通信部１００８を介して、Ｐ２Ｐ開始応答パケットを装置２０へ送信する（ステップＳ９０３）。【０２２６】
ルータ１０１がＳｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有する場合、上記の処理手順に従って、装置１０及び２０の間にＰ２Ｐ通信路を確立することができる。【０２２７】
尚、本実施の形態においては、装置１０は、発信元ポート番号に［ＬＰ４］を設定しているが、ルータ１０１の特性がＳｙｍｍｅｔｒｉｃ  ＮＡＴである場合には、ステップＳ４０５においてＰ２Ｐ通信準備パケットを送信したポート番号［ＬＰ１］以外の任意のポート番号を設定しても良い。【０２２８】
より詳細には、ルータ１０１がＡＳ  Ｓｙｍｍｅｔｒｉｃ  ＮＡＴである場合には、ポート番号［ＬＰ１］から送信されたＰ２Ｐ開始要求パケットは、ステップＳ４０５のＰ２Ｐ通信準備パケットと同じ宛先に向けて送信されるため、ルータ１０１は、Ｐ２Ｐ開始要求パケットにポート番号［ＧＰ１３］を割り当てる。【０２２９】
また、ルータ１０１がＰＳ  Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有する場合には、任意のポート番号から送信したＰ２Ｐ開始要求パケットの発信元ポート番号は、ルータ１０１によって、［ＧＰ１４＋Δ１］に変換されることが予測される。【０２３０】
以上を考慮すれば、ＡＳ及びＰＳいずれのＳｙｍｍｅｔｒｉｃ  ＮＡＴにおいても、Ｐ２Ｐ開始要求パケットに［ＧＰ１４＋Δ１］が割り当てられるように、装置１０は発信元ポート番号に［ＬＰ１］以外のポート番号を設定する必要がある。【０２３１】
また、本実施の形態においては、装置２０は、宛先ポート番号［ＧＰ１４＋Δ１］に向けて１つのＰ２Ｐ開始要求パケットを送信しているが、装置２０は、複数のＰ２Ｐ開始要求パケットを送信しても良い。例えば、装置２０は、Ｐ２Ｐ通信路の確立に成功する可能性を高めるために、例えば、［ＧＰ１４＋Δ１］に加えて、［ＧＰ１４＋２×Δ１］及び［ＧＰ１４＋３×Δ１］のように、Δ１ずつインクリメントされたポート番号が宛先ポート番号に設定された複数のＰ２Ｐ開始要求パケットを送信しても良い。【０２３２】
更にＰ２Ｐ通信路確立の成功率を高めるために、装置１０が送信するＰ２Ｐ開始要求パケットの数に比べて、装置２０が送信するＰ２Ｐ開始要求パケットの数を多くしても良い。具体的には、装置１０は、発信元ポート番号に［ＬＰ４］〜［ＬＰ４＋α］（αは、正の整数）の各々が設定され、宛先ポート番号に［ＧＰ２１］が設定されたα個のＰ２Ｐ開始要求パケットを送信する。これに対して、装置２０は、宛先ポート番号に［ＧＰ１４＋Δ１］〜［ＧＰ１４＋（ｍ＋α）×Δ１］（ｍは、正の整数）の各々が設定された（ｍ＋α）個のＰ２Ｐ開始要求パケットを送信する。この場合、装置１０がα個のパケットを送信している最中に、ルータ１０１に接続される他の宅内装置からｍ個のパケットが送信されたとしても、装置２０から送信された（ｍ＋α）個のＰ２Ｐ開始要求パケットの少なくとも１つが装置１０に到達する。その後、装置１０が装置２０から受信したＰ２Ｐ開始要求パケットのいずれか１つに対してＰ２Ｐ開始応答を送信することによって、装置１０及び２０の間にＰ２Ｐ通信路が確立される。【０２３３】
＜接続シーケンス３：ルータ１０１がＰｏｒｔ  Ｒｅｕｓｅである場合＞
図１０は、ルータ１０１がＰｏｒｔ  Ｒｅｕｓｅである場合の接続シーケンスの詳細を示す図である。尚、図１０においては、説明の簡略化のために、ルータ２０１がＣｏｎｅ
ＮＡＴ特性を有する場合を想定する。【０２３４】
上述したように、装置１０は、情報交換フェーズ（図６）のステップＳ６０１及びＳ６０２においてサーバ００１から通知された情報に基づき、装置２０が接続されるルータ２０１のＰ２Ｐ通信ポート番号を把握する。ルータ２０１がＣｏｎｅ  ＮＡＴ特性を有するので、ＮＡＴ情報通知にはルータ２０１のＰ２Ｐ通信ポート番号として［ＧＰ２１］が含まれる。一方、ルータ１０１はＰｏｒｔ  Ｒｅｕｓｅ特性を有するので、ステップＳ６０３及びＳ６０４において、装置１０はルータ１０１のＰ２Ｐ通信ポート番号としてＰ２Ｐ通信路確立フェーズで新たに開くことを予定するポート番号［ＬＰ４］を装置２０に通知している。【０２３５】
そこで、装置１０の通信制御部１００７は、［ＬＰ４］が発信元ポート番号に設定され、かつ、宛先ポート番号に［ＧＰ２１］が設定されたパケットを、Ｐ２Ｐ開始要求として送信する（ステップＳ１００１）。尚、ルータ１０１は、装置１０から送信されたパケットにポート番号［ＬＰ４］を割り当てる。【０２３６】
この段階では、ルータ２０１は、装置１０から送信され、宛先ポート番号が［ＧＰ２１］に設定されたパケットを装置２０に転送するようにＮＡＴを設定していないため、ルータ２０１は、ステップＳ１００１において送信されたＰ２Ｐ開始要求パケットを破棄し、装置２０に転送しない。ただし、この段階において、ルータ１０１は、発信元ポート番号にルータ２０１のポート番号［ＧＰ２１］が設定され、かつ、宛先ＩＰアドレス及び宛先ポート番号に（ＩＰＧ１、ＬＰ４）が設定されたパケットを、装置１０（ＩＰＬ１、ＬＰ４）へ転送するようにＮＡＴを設定する。【０２３７】
一方、装置２０は、情報交換フェーズにおいてサーバ００１から通知された情報に基づき、装置１０が接続されるルータ１０１のＰ２Ｐ通信ポート番号を取得する。通信制御部２００７は、［ＧＰ２１］に対応する［ＬＰ１］が発信元ポート番号に設定され、かつ、宛先ポート番号に［ＬＰ４］が設定されたパケットを、Ｐ２Ｐ開始要求として送信する（ステップＳ１００２）。【０２３８】
ルータ１０１は、装置２０から送信されたＰ２Ｐ開始要求パケットを装置１０に転送する。装置１０において、通信制御部１００７は、ルータ１０１から転送されたＰ２Ｐ開始要求パケットに応答して、通信部１００８を介して、Ｐ２Ｐ開始応答パケットを装置２０へ送信する（ステップＳ１００３）。【０２３９】
ルータ１０１がＰｏｒｔ  Ｒｅｕｓｅ特性を有する場合、上記の処理手順に従って、装置１０及び２０の間にＰ２Ｐ通信路を確立することができる。【０２４０】
尚、上述のＮＡＴ特性判定処理（図４Ｂ）においては、Ｐｏｒｔ  ＲｅｕｓｅのＣｏｎｅ  ＮＡＴがＳｙｍｍｅｔｒｉｃ  ＮＡＴであると判定される可能性があるが、現時点で利用できるＰｏｒｔ  ＲｅｕｓｅのＳｙｍｍｅｔｒｉｃ  ＮＡＴは知られていないので、Ｐｏｒｔ  Ｒｅｕｓｅの場合に、Ｃｏｎｅ  ＮＡＴの接続シーケンスを実行しても良い。【０２４１】
以上のように、本実施の形態に係る通信システムにおいては、装置１０及び２０は、１つのポート［ＳＰ１］を開いている１台のサーバ００１とパケットを送受信することによって、接続されているルータのＣｏｎｅ  ＮＡＴ特性、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ特性及びＰｏｒｔ  Ｒｅｕｓｅ特性を判定することができる。装置１０及び２０は、ＮＡＴ特性の判定結果に基づいて、Ｐ２Ｐ通信に利用するルータのポート番号を交換した後、Ｐ２Ｐ通信路を確立することができる。【０２４２】
尚、上記の図８〜図１０に示される各シーケンス図においては、装置１０が装置２０より先にＰ２Ｐ開始要求を送信しているが、装置２０が装置１０より先にＰ２Ｐ開始要求を送信しても良い。【０２４３】
Ｐ２Ｐ通信路確立フェーズにおいて、Ｐ２Ｐ通信路の確立に成功する可能性を向上させるために、装置１０は、情報交換フェーズにおいて、複数のポート番号を装置２０に通知しても良い。【０２４４】
また、本実施の形態においては、パケットにポートを割り当てる度に、割り当てられるポート番号が増加するルータが示されているが、本発明は、パケットにポートを割り当てる度に、割り当てられるポート番号が減少するルータにも同様に適用することができることは、言うまでもない。【０２４５】
（実施の形態２）
以下、本発明の実施の形態２に係る通信システムについて、実施の形態１との相違点を中心に説明する。【０２４６】
本実施の形態に係る装置１０及び２０は、実施の形態１に係る構成に加えて、更に、一旦判断したＮＡＴ特性を記憶する記憶部を備え、２回目以降にＰ２Ｐ通信路を確立する際に、記憶部に記憶されるＮＡＴ特性を再利用する。これにより、２回目以降にＰ２Ｐ通信路を確立する際には、ＮＡＴ特性調査フェーズを省略することができる。【０２４７】
また、装置１０及び２０は、ＮＡＴ調査フェーズの処理を実行することなくＰ２Ｐ通信路確立処理を進め、Ｐ２Ｐ通信路の確立に失敗したときに初めて、ＮＡＴ特性調査フェーズの処理を実行しても良い。【０２４８】
尚、記憶部が記憶するのはＮＡＴ特性だけに限られず、更に差分値Δ１、Δ２を記憶しても良い。この場合、２回目以降のＰ２Ｐ通信路確立時に、中継特性判断部１００４及び２００４は、図４Ｂのフローチャートに従って、記憶部に記憶される差分値Δ１、Δ２からＮＡＴ特性を判断しても良い。【０２４９】
本実施形態に係る通信システムによれば、装置１０及び２０がＮＡＴ特性を調査する回数が低減されるので、２回目以降のＰ２Ｐ通信路確立処理を効率的に実行することができる。【０２５０】
図１１は、本発明の実施の形態２に係る接続シーケンス図である。図１１の例では、ルータ１０１がＳｙｍｍｅｔｒｉｃ  ＮＡＴ、ルータ２０１がＣｏｎｅ  ＮＡＴ特性を有する場合を想定する。【０２５１】
以下では、装置１０及び２０が一旦調査したルータ１０１及び２０１のＮＡＴ特性と、ルータ１０１及びルータ２０１のそれぞれのポート割り当て間隔Δ１とを記憶部に記憶している場合を想定する。尚、本実施の形態においては、ＮＡＴ特性とポート割当て間隔Δ１を記憶しているが、差分値Δ１、Δ２の２つを記憶しておき、必要に応じて、２つの差分値からＮＡＴ特性を判断してもよい。【０２５２】
＜基準ポート番号取得フェーズ＞
装置１０は、前回Ｐ２Ｐ通信路を確立した際に実行したＮＡＴ特性調査フェーズにおいて、ルータ１０１のＮＡＴ特性とポート割当て間隔を既に調査している。そこで、本実施の形態では、装置１０は、ＮＡＴ特性調査フェーズ及び準備フェーズにおける処理を省略し、代わりにＰ２Ｐ通信ポート番号を決定するための基準ポートを取得する。【０２５３】
まず、装置１０において、アドレス情報調査要求送信部１００１は、発信元ポート番号に装置１０のポート番号［ＬＰ１］が設定され、かつ、宛先ポート番号にサーバ００１のポート番号［ＳＰ１］が設定されたアドレス情報調査要求パケットを送信する（ステップＳ１１０１）。【０２５４】
サーバ００１において、アドレス情報調査部００１１は、アドレス情報調査要求パケットの発信元ポート番号、すなわち、ルータ１０１のポート番号［ＧＰ１１］を含むアドレス情報調査応答パケットを、通信部００１４を介して送信する（ステップＳ１１０２）。【０２５５】
装置１０は、ステップＳ１１０２で取得したポート番号［ＧＰ１１］を、Ｐ２Ｐ通信ポート番号を決定するための基準ポート番号とする。【０２５６】
同様に、装置２０は、ＮＡＴ特性調査フェーズ及び準備フェーズにおける処理を省略して、Ｐ２Ｐ通信ポート番号決定のための基準ポート番号［ＧＰ２１］を取得する（ステップＳ１１０３〜Ｓ１１０４）。【０２５７】
尚、図１１においては、図示の都合上、装置１０が先にアドレス情報調査要求を送信しているが、装置２０が先にアドレス情報調査要求を送信しても良い。すなわち、装置１０及び２０のアドレス情報調査要求は、情報交換フェーズが行われる前に完了していれば、その順序及び実行タイミングは任意で良い。【０２５８】
＜情報交換フェーズ＞
次に、装置２０は、ルータ２０１のＰ２Ｐ通信ポート番号を含むＮＡＴ情報通知パケットをサーバ００１に送信する（ステップＳ１１０５）。図１１の例では、ルータ２０１がＣｏｎｅ  ＮＡＴ特性を有するので、ＮＡＴ情報通知には、Ｐ２Ｐ通信ポート番号として、ステップＳ１１０４で取得した基準ポート番号［ＧＰ２１］が含まれる。【０２５９】
次に、サーバ００１において、中継情報転送部００１３は、装置２０から送信されたＮＡＴ情報通知パケットを受信すると、受信したＮＡＴ情報通知パケットを、通信部００１４を介して装置１０に転送する（ステップＳ１１０６）。【０２６０】
同様に、装置１０において、中継情報送信部１００５は、ルータ１０１のＰ２Ｐ通信ポート番号を含むＮＡＴ情報通知パケットをサーバ００１に送信する（ステップＳ１１０７）。図１１の例では、ルータ１０１はＳｙｍｍｅｔｒｉｃ  ＮＡＴを有するので、ＮＡＴ情報通知には、ステップＳ１１０２で取得した基準ポート番号［ＧＰ１１］と、前回のＮＡＴ特性調査フェーズで記憶部に格納したポート番号割当て間隔Δ１とを加算した値［ＧＰ１１＋Δ１］が、Ｐ２Ｐ通信ポート番号として含まれる。【０２６１】
次に、サーバ００１において、中継情報転送部００１３は、装置１０から送信されたＮＡＴ情報通知パケットを受信すると、受信したＮＡＴ情報通知パケットを、通信部００１４を介して装置２０に転送する（ステップＳ１１０８）。【０２６２】
尚、本実施の形態においては、装置２０が装置１０より先にＮＡＴ情報通知パケットを送信しているが、装置１０が装置２０より先にＮＡＴ情報通知パケットを送信しても良い。【０２６３】
図１１の例のように、ルータ１０１及びルータ２０１のいずれもＰｏｒｔ  Ｒｅｕｓｅではない場合には、基準ポート番号取得フェーズ（ステップＳ１１０１〜Ｓ１１０４）を実施することが必要である。ただし、装置１０及び２０が記憶しているＮＡＴ特性がＰｏｒｔＲｅｕｓｅである場合には、後続の処理においてルータ１０１及び２０１が開くポート番号を容易に予測できる。したがって、装置１０及び２０は、基準ポート番号取得フェーズを省略して、情報交換フェーズに進み、自身がＰ２Ｐ通信に使用する予定であるポート番号［ＬＰ４］を含むＮＡＴ情報通知を送信すれば良い。【０２６４】
＜接続フェーズ＞
装置１０の通信制御部１００７は、ルータ２０１のＰ２Ｐ通信ポート番号［ＧＰ２１］を取得している。通信制御部１００７は、通信部１００８を介して、発信元ポート番号に［ＬＰ１］が設定され、かつ、宛先ポート番号に［ＧＰ２１］が設定されたＰ２Ｐ開始要求パケットをルータ２０１に送信する（ステップＳ１１０９）。図１１の例では、ルータ１０１はＳｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有するので、装置１０から送信されたパケットにポート番号［ＧＰ１１＋Δ１］を割り当てる（ただし、Δ１は、ルータ１０１のポート割当て間隔である）。【０２６５】
尚、本実施の形態においては、発信元ポート番号に［ＬＰ１］を設定しているが、ルータ１０１がＳｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有する場合には、任意のポート番号を設定してもよい。その場合、任意のポート番号から送信したＰ２Ｐ開始要求パケットの発信元ポート番号は、ルータ１０１によって、［ＧＰ１１＋Δ１］に変換されると考えられるためである。【０２６６】
ステップＳ１１０９においてＰ２Ｐ開始要求パケットが送信された時点では、ルータ２０１は、宛先ポート番号に［ＧＰ２１］が設定されたパケットを装置２０に転送するようにＮＡＴを設定していない。したがって、ルータ２０１は、受信したＰ２Ｐ開始要求パケットを破棄し、当該パケットを装置２０に転送しない。一方、ルータ１０１は、Ｐ２Ｐ開始要求パケットを転送することによって、宛先に（ＩＰＧ１、ＧＰ１１＋Δ１）が設定され、かつ、発信元ポート番号に［ＧＰ２１］が設定されたパケットを装置１０（ＩＰＬ１、ＬＰ１）に転送するようにＮＡＴを設定する。【０２６７】
一方、装置２０は、情報交換フェーズにおいて、ルータ１０１のＰ２Ｐ通信ポート番号［ＧＰ１１＋Δ１］を含むＮＡＴ特性情報を取得している。装置２０は、発信元ポート番号に［ＬＰ１］が設定され、かつ、宛先ポート番号に［ＧＰ１１＋Δ１］が設定されたＰ２Ｐ開始要求パケットを送信する（ステップＳ１１１０）。【０２６８】
ルータ１０１は、装置２０から送信されたＰ２Ｐ開始要求パケットを装置１０に転送する。装置１０は、ルータ１０１によって転送されたＰ２Ｐ開始要求パケットを受信すると、Ｐ２Ｐ開始応答パケットを装置２０に送信する（ステップＳ１１１１）。【０２６９】
尚、Ｐ２Ｐ通信路確立フェーズ（ステップＳ１１０９〜Ｓ１１１１）において、装置１０及び２０がＰ２Ｐ通信路の確立に失敗した場合、装置１０及び２０の各々は、ＮＡＴ特性調査フェーズから再度接続処理を繰り返せば良い。【０２７０】
（実施の形態３）
実施の形態３では、本発明に係る通信システムが、汎用プロトコルの１つであるＳＩＰ（Ｓｅｓｓｉｏｎ  Ｉｎｉｔｉａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ：ＲＦＣ３２６１、ＲＦＣ３５８１）を実装した１台のＳＩＰサーバを用いて実現される例について説明する。【０２７１】
図１２は、本発明の実施の形態３に係る通信システムの全体構成を示すブロック図である。【０２７２】
実施の形態１（図１）と同様に、プライベートネットワーク０１及び０２は、グローバルＩＰアドレス［ＩＰＧ１］を有するルータ１０１及びグローバルＩＰアドレス［ＩＰＧ２］を有するルータ２０１をそれぞれ介して、グローバルネットワーク００に接続されている。また、グローバルネットワーク００には、グローバルＩＰアドレス［ＩＰＳ］を有し、ポート番号［ＳＰ１］をグローバルネットワーク００上で開放しているＳＩＰサーバ３００が接続されている。更に、プライベートネットワーク０１には、ローカルＩＰアドレス［ＩＰＬ１］を有する装置１０が接続され、プライベートネットワーク０２には、ローカルＩＰアドレス［ＩＰＬ２］を有する装置２０が接続されている。【０２７３】
尚、ＳＩＰサーバ３００は、ＳＩＰプロトコル処理能力に加えて、実施の形態１に係るサーバ００１と同様の構成（図２Ｃ）及び機能を備える。装置１０及び２０は、ＳＩＰプロトコルを利用して、ＳＩＰサーバ３００を介してＰ２Ｐ通信のための呼制御を行う装置（例えばＩＰ電話など）であり、実施の形態１に係る装置１０及び２０と同様の構成（図２Ａ及び図２Ｂ）及び機能を備える。したがって、装置１０、２０及びＳＩＰサーバ３００の構成についての詳細な説明を省略する。【０２７４】
図１３は、Ｐ２Ｐ通信路確立のために送受信されるパケットと、ＳＩＰメッセージとの対応関係を示す図である。【０２７５】
本実施の形態では、装置１０及び２０は、ＳＩＰメッセージを利用して、Ｐ２Ｐ通信路の確立に必要な情報（例えば、ＩＰアドレスやポート番号）を交換する。ただし、装置１０及び２０が直接交換するメッセージは、特に限定されず、ＳＩＰメッセージであっても良いし、非ＳＩＰメッセージであっても良い。【０２７６】
以下、図１３を参照しながら、本実施形態に係る通信システムで送受信されるメッセージＮｏ．１〜１２について順に説明する。【０２７７】
（メッセージＮｏ．１：アドレス情報調査要求）
本実施の形態において、装置１０及び２０がサーバへと送信するアドレス情報調査要求（図４ＡのステップＳ４０１、Ｓ４０３及びＳ４０６）は、ＳＩＰにおけるＯＰＴＩＯＮＳリクエスト、ＵＰＤＡＴＥリクエスト、ＭＥＳＳＡＧＥリクエストのいずれかによって実現される。以下の例では、アドレス情報調査要求がＯＰＴＩＯＮＳリクエストを用いてサーバに送信される場合について説明する。ＯＰＴＩＯＮＳリクエストのメッセージフォーマットの例を図１４に示す。【０２７８】
（メッセージＮｏ．２：アドレス情報調査応答）
サーバから装置１０及び２０のそれぞれに返信されるアドレス情報調査応答（図４ＡのステップＳ４０２、Ｓ４０４及びＳ４０７）は、ＳＩＰにおける２００  ＯＫレスポンスによって実現される。２００  ＯＫレスポンスのメッセージフォーマットの例を図１５に示す。【０２７９】
（メッセージＮｏ．３：Ｐ２Ｐ通信準備）
装置１０から装置２０宛てに、あるいは、装置２０から装置１０宛てに送信されるＰ２Ｐ準備パケット（図４ＡのステップＳ４０５）は、サーバ経由で送信されないため、ＳＩＰの呼制御メッセージを利用する必要がない。したがって、Ｐ２Ｐ準備パケットは、任意のフォーマットのメッセージを含んでいれば良く、その図示を省略する。【０２８０】
（メッセージＮｏ．４：ＮＡＴ情報通知）
サーバから装置１０及び２０のそれぞれに返信されるＮＡＴ情報通知（図６のステップＳ６０１及びＳ６０２）は、ＳＩＰにおけるＩＮＶＩＴＥリクエストによって実現される。ＩＮＶＩＴＥリクエストのメッセージフォーマットの例を図１６に示す。【０２８１】
（メッセージＮｏ．５）
メッセージＮｏ．５は、装置１０からサーバへ、あるいは、サーバから装置２０へと、呼制御において「試行中」であることを通知する１００  Ｔｒｙｉｎｇレスポンスである。ただし、このメッセージは、本実施の形態に係るシステムがＰ２Ｐ通信路を確立するために使用するものではない。また、メッセージフォーマットの図示も省略する。【０２８２】
（メッセージＮｏ．６：ＮＡＴ情報通知）
装置１０からサーバへ、あるいは、サーバから装置２０へと送信されるＮＡＴ情報通知（図６のステップＳ６０３及びＳ６０４）は、ＳＩＰにおける１８３  Ｓｅｓｓｉｏｎ  Ｐｒｏｇｒｅｓｓレスポンスによって実現される。１８３  Ｓｅｓｓｉｏｎ  Ｐｒｏｇｒｅｓｓレスポンスのメッセージフォーマットを図１７に示す。【０２８３】
（メッセージＮｏ．７：Ｐ２Ｐ開始要求）
装置１０から装置２０へと送信されるＰ２Ｐ開始要求（図７のステップＳ７０１、図８のステップＳ８０１、図９のステップＳ９０１、図１０のステップＳ１００１）は、サーバ経由で送信されないため、ＳＩＰの呼制御メッセージでなくても良い。すなわち、Ｐ２Ｐ開始要求は、任意のフォーマットのメッセージであれば良く、また、その図示を省略する。【０２８４】
（メッセージＮｏ．８：Ｐ２Ｐ開始要求）
装置２０から装置１０へと送信されるＰ２Ｐ開始要求（図７のステップＳ７０２、図８のステップＳ８０２、図９のＳステップ９０２、図１０のステップＳ１００２）は、サーバ経由で送信されるメッセージではないない。したがって、装置２０から装置１０へと送信されるＰ２Ｐ開始要求は、必ずしもＳＩＰメッセージである必要はなく、任意のフォーマットのメッセージであれば良い。【０２８５】
（メッセージＮｏ．９：Ｐ２Ｐ開始応答）
装置１０から装置２０へと送信されるＰ２Ｐ開始応答（図７ステップＳ７０３、図８のステップＳ８０３、図９のステップＳ９０３、図１０のステップＳ１００３）は、サーバ経由で送信されるメッセージではない。したがって、装置１０から装置２０へと送信されるＰ２Ｐ開始応答は、必ずしもＳＩＰメッセージである必要はなく、任意のフォーマットのメッセージであれば良い。【０２８６】
（メッセージＮｏ．１０）
メッセージＮｏ．１０は、装置２０からサーバへ、あるいは、サーバから装置１０へと、呼制御において「呼出し中」であることを通知する１８０  Ｒｉｎｇｉｎｇレスポンスである。ただし、このメッセージは、本実施の形態に係るシステムがＰ２Ｐ通信路を確立するために使用するものではない。また、メッセージフォーマットの図示も省略する。【０２８７】
（メッセージＮｏ．１１）
メッセージＮｏ．１１は、装置１０からサーバへ、あるいは、サーバから装置２０へと、呼制御において「リクエストの成功」を通知する２００  ＯＫレスポンスである。ただし、このメッセージは、本実施の形態に係るシステムがＰ２Ｐ通信路を確立するために使用するものではない。また、メッセージフォーマットの図示も省略する。【０２８８】
（メッセージＮｏ．１２）
メッセージＮｏ．１２は、装置２０からサーバへ、あるいは、サーバから装置１０へと、呼制御において「セッション（Ｐ２Ｐ通信路）の確立」を通知するＡＣＫリクエストである。ただし、このメッセージは、本実施の形態に係るシステムがＰ２Ｐ通信路を確立するために使用するものではない。また、メッセージフォーマットの図示も省略する。【０２８９】
尚、図１３に示されるメッセージの対応関係は、単なる例示に過ぎない。本発明に係るＰ２Ｐ通信路確立方法を実行するために必要な情報（上記のメッセージＮｏ．１、２、４及び６）は、ＳＩＰで規定される他のメッセージを利用して送受信されても良い。【０２９０】
以下、図１４〜図１９を併せて参照しながら、本実施形態に係る装置１０及び２０がＳＩＰプロトコルを利用してルータ１０１及び２０１のＮＡＴ特性を調査し、更に、Ｐ２Ｐ通信路を確立するための制御シーケンスを説明する。【０２９１】
＜ＮＡＴ特性調査フェーズ及び準備フェーズ＞
図１８は、ＳＩＰプロトコルを用いたＮＡＴ特性調査フェーズ及び準備フェーズにおける処理の詳細を示すシーケンス図である。【０２９２】
まず、装置１０は、ＯＰＴＩＯＮＳリクエストパケット１をＳＩＰサーバ３００へ送信する（ステップＳ２４０１）。より詳細には、アドレス情報調査要求送信部１００１は、発信元ポート番号と宛先ポート番号とに、それぞれ装置１０のポート番号［ＬＰ１］とＳＩＰサーバ３００のポート番号［ＳＰ１］とを設定し、更に、データ部にＳＩＰのＯＰＴＩＯＮＳリクエストメッセージを挿入したＯＰＴＩＯＮＳリクエストパケット１を作成する。【０２９３】
このとき、図１４に示されるように、ＯＰＴＩＯＮＳリクエストメッセージの「Ｖｉａヘッダ」には、「ｒｐｏｒｔパラメータ」が設定される。Ｖｉａヘッダは、リクエストが辿ったパス及びリクエストがルーティングされる時に辿るパスを記述するためのものであるが、ここにｒｐｏｒｔパラメータが記述されているか否かによって、ＳＩＰサーバ３００は、受け取ったパケットがアドレス情報調査要求であることを識別することができる。【０２９４】
次に、ＳＩＰサーバ３００は、装置１０から送信されたＯＰＴＩＯＮＳリクエストパケット１に応答して、２００  ＯＫレスポンス１を装置に返送する（ステップＳ２４０２）。より詳細には、通信部００１４は、ＯＰＴＩＯＮＳリクエストパケット１を受信し、受信したパケットをアドレス情報調査部００１１へと転送する。【０２９５】
アドレス情報調査部００１１は、Ｖｉａヘッダの「ｓｅｎｔ−ｂｙパラメータ」に付与されているＩＰアドレス（図１４の例では［ＩＰＬ１］）と、転送されたパケットの送信元ＩＰアドレスが異なるため、転送されたパケットのヘッダを参照して、発信元ＩＰアドレス、すなわち、ルータ１０１のＩＰアドレス［ＩＰＧ１］を取り出す。また、Ｖｉａヘッダにｒｐｏｒｔパラメータが指定されているため、アドレス情報調査部００１１は、転送されたパケットのヘッダを参照して、発信元ポート番号、すなわち、ルータ１０１によって設定されたポート番号［ＧＰ１１］を取り出す。アドレス情報調査部００１１は、取り出した発信元ＩＰアドレス及び発信元ポート番号（ＩＰＧ１、ＧＰ１１）をアドレス情報送信部００１２へ出力する。【０２９６】
アドレス情報送信部００１２は、アドレス情報調査部００１１から受け取ったルータ１０１のＩＰアドレス及びポート番号（ＩＰＧ１、ＧＰ１１）をデータ部に含む２００  ＯＫレスポンスパケット１を生成し、生成したパケットを通信部００１４に出力する。より詳細には、図１５に示されるように、アドレス情報送信部００１２は、２００  ＯＫメッセージのフォーマットにおいて、「ｒｅｃｅｉｖｅｄパラメータ」にルータ１０１のＩＰアドレス［ＩＰＧ１］を記述し、「ｒｐｏｒｔパラメータ」にルータ１０１のポート番号［ＧＰ１１］を記述し、更に、ＳＩＰサーバのアドレス情報を付加した「Ｖｉａヘッダ」を追加したメッセージをデータ部に挿入した２００  ＯＫレスポンスパケット１をルータ１０１へ送信する。【０２９７】
ルータ１０１は、アドレス情報送信部００１２から受け取ったパケットを装置１０へと転送する。また、装置１０において、通信部１００８が２００  ＯＫレスポンスパケット１を受信すると、受信したパケットをアドレス情報受信部１００２へ転送する。【０２９８】
次に、装置１０は、ＯＰＴＩＯＮＳリクエストパケット２をサーバ００１へ送信する（ステップＳ２４０３）。より詳細には、アドレス情報調査要求送信部１００１は、装置１０のポート番号［ＬＰ２］を発信元ポート番号に設定され、かつ、ＳＩＰサーバ３００のポート番号［ＳＰ１］を宛先ポート番号に設定されたＯＰＴＩＯＮＳリクエストパケット２を送信する。ＯＰＴＩＯＮＳリクエストパケット１と同様に、ＯＰＴＩＯＮＳリクエストパケット２のｖｉａヘッダにも「ｒｐｏｒｔパラメータ」が設定される。【０２９９】
次に、ＳＩＰサーバ３００は、装置１０から送信されたＯＰＴＩＯＮＳリクエストパケット２に応答して、２００  ＯＫレスポンスパケット２を装置に返送する（ステップＳ２４０４）。より詳細には、通信部００１４は、ＯＰＴＩＯＮＳリクエストパケット２を受信し、受信したパケットをアドレス情報調査部００１１へと転送する。アドレス情報調査部００１１は、転送されたパケットのヘッダを参照して、発信元ＩＰアドレス及びポート番号、すなわち、ルータ１０１のＩＰアドレス及びポート番号（ＩＰＧ１、ＧＰ１２）を取り出し、取り出したＩＰアドレス及びポート番号（ＩＰＧ１、ＧＰ１２）をアドレス情報送信部００１２へ出力する。【０３００】
アドレス情報送信部００１２は、アドレス情報調査部００１１から受け取ったルータ１０１のＩＰアドレス及びポート番号（ＩＰＧ１、ＧＰ１２）をデータ部に含む２００  ＯＫレスポンスパケット２を生成し、生成したパケットを通信部００１４に出力する。より詳細には、図１５に示されるように、２００  ＯＫメッセージのフォーマットにおいて、「ｒｅｃｅｉｖｅｄパラメータ」にルータ１０１のＩＰアドレス［ＩＰＧ１］を記載し、「ｒｐｏｒｔパラメータ」にルータ１０１のポート番号［ＧＰ１２］を記載し、更に、ＳＩＰサーバのアドレス情報を含む「Ｖｉａヘッダ」を追加したメッセージをデータ部に挿入した２００  ＯＫレスポンスパケット２をルータ１０１へ送信する。【０３０１】
ルータ１０１通信部００１４は、アドレス情報送信部００１２から受け取ったパケットを装置１０へと転送する。また、装置１０において、通信部１００８は、２００  ＯＫレスポンスパケット２を受信すると、受信したパケットをアドレス情報受信部１００２へ転送する。【０３０２】
次に、装置１０は、Ｐ２Ｐ通信準備パケットを装置２０に送信する（ステップＳ２４０５）。より詳細には、装置１０は、サーバとは異なるＩＰアドレスを持つ装置２０に対して割り当てられるポート番号［ＧＰ１３］をルータ１０１上に用意するために、装置１０のポート番号［ＬＰ１］が発信元ポート番号に設定され、かつ、装置２０のＩＰアドレス及びポート番号を宛先とするパケットをルータ１０１へ送信する。【０３０３】
次に、装置１０は、ＯＰＴＩＯＮＳリクエストパケット３をサーバ００１へ送信する（ステップＳ２４０６）。より詳細には、アドレス情報調査要求送信部１００１は、装置１０のポート番号［ＬＰ３］が発信元ポート番号に設定され、かつ、ＳＩＰサーバ３００のポート番号［ＳＰ１］が宛先ポート番号に設定されたパケットを、ＯＰＴＩＯＮＳリクエストパケット３として送信する。ＯＰＴＩＯＮＳリクエストパケット１及び２と同様に、ＯＰＴＩＯＮＳリクエストパケット３のＶｉａヘッダには、「ｒｐｏｒｔパラメータ」が付与される。【０３０４】
ＳＩＰサーバ３００は、装置１０から送信されたＯＰＴＩＯＮＳ３に応答して、２００  ＯＫレスポンス３を装置１０に返送する（ステップＳ２４０７）。より詳細には、通信部００１４は、アドレス情報調査要求パケット３を受信し、受信したパケットをアドレス情報調査部００１１へと転送する。アドレス情報調査部００１１は、転送されたパケットのヘッダを参照して、発信元ＩＰアドレス及びポート番号、すなわち、ルータ１０１のＩＰアドレス及びポート番号（ＩＰＧ１、ＧＰ１４）をアドレス情報送信部００１２へ出力する。【０３０５】
アドレス情報送信部００１２は、アドレス情報調査部から受け取ったルータ１０１のＩＰアドレス及びポート番号（ＩＰＧ１、ＧＰ１４）をデータ部に含む２００  ＯＫレスポンスパケット３を生成し、生成したパケットを通信部００１４に出力する。より詳細には、図１５に示される２００  ＯＫメッセージのフォーマットにおいて、「ｒｅｃｅｉｖｅｄパラメータ」にルータ１０１のＩＰアドレス［ＩＰＧ１］を記述し、「ｒｐｏｒｔパラメータ」にルータ１０１のポート番号［ＧＰ１４］を記述し、更に、ＳＩＰサーバのアドレス情報を含む「Ｖｉａヘッダ」を追加したメッセージをデータ部に挿入した２００  ＯＫレスポンスパケット３をルータ１０１へ送信する。【０３０６】
ルータ１０１通信部００１４は、アドレス情報送信部００１２から受け取ったパケットを装置１０へと転送する。また、装置１０において、通信部１００８は、２００  ＯＫレスポンスパケット３を受信すると、受信したパケットをアドレス情報受信部１００２へ転送する。【０３０７】
次に、装置１０は、２００  ＯＫレスポンスパケット１〜３に基づいて、ルータ１０１のＮＡＴ特性を判断する（ステップＳ２４０８）。より詳細には、装置１０において、中継特性判断部１００４は、２００  ＯＫレスポンスパケット１〜３に含まれるルータ１０１の３つのポート番号［ＧＰ１１］、［ＧＰ１２］及び［ＧＰ１４］から、実施の形態１における図４Ｂの処理フローに従ってルータ１０１のＮＡＴ特性を判断する。【０３０８】
装置２０は、図１８と同様の手順に従って、ルータ２０１のＮＡＴ特性を調査し、ルータ２０１にＰ２Ｐ通信で使用するためのポートを用意する。【０３０９】
尚、装置１０が送信するパケットの宛先ポート番号は、実際にルータ２０１が使用しているポート番号（例えば、装置２０がＳＩＰサーバ３００と通信している際に、ルータ２０１が装置２０のパケットに割り当てているポート番号）であることが好ましい。というのも、ルータ２０１が侵入検知機能を有する場合、ルータ２０１が通信に使用していないポート番号が宛先ポート番号に設定されたＰ２Ｐ通信準備パケットを装置１０から受信すると、当該パケットを不正アクセスパケットであると誤検知する可能性があるからである。ルータ２０１が不正アクセスパケットを検知した場合、装置１０から送信された後続のパケットを全て破棄するため、装置１０は、装置２０と通信不能となる虞がある。【０３１０】
あるいは、装置１０は、Ｐ２Ｐ通信準備パケットがルータ２０１に届かないように当該パケットのＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）の値を調整しても良い。装置１０がＰ２Ｐ通信準備パケットを送信するのは、自身が接続されるルータ１０１に、装置２０とのＰ２Ｐ通信のためのポート番号を用意するためであり、必ずしもルータ２０１にＰ２Ｐ通信準備パケットが届く必要はない。そこで、装置１０は、Ｐ２Ｐ通信準備パケットがルータ１０１に到達し、かつ、ルータ２０１に到達しないように、ＴＴＬの値を調整すれば良い。【０３１１】
ステップＳ２４０５において、ルータ１０１は、装置２０からルータ２０１を介してルータ１０１（ＩＰＧ１、ＧＰ１３）へと送信されたパケットを受け付けることができるように、ＮＡＴを設定する。ルータ１０１がＮＡＴを設定する方法は、ＮＡＴ特性（図２３Ａ〜図２３Ｅ）に応じて異なるが、ここでの説明を省略する。【０３１２】
また、本実施の形態において、Ｐ２Ｐ通信準備パケットをＯＰＴＩＯＮＳリクエストパケット２の送信後に送信しているが、Ｐ２Ｐ通信準備パケットの送信タイミングはこの限りではない。より詳細には、Ｐ２Ｐ通信準備パケットは、ＯＰＴＩＯＮＳリクエストパケット３の送信前に送信されていれば良く、ＯＰＴＩＯＮＳリクエストパケット１の次に送信されても良い。また、Ｐ２Ｐ通信準備パケットの発信元ポート番号は、必ずしも［ＬＰ１］である必要はなく、ＯＰＴＩＯＮＳリクエストパケット１〜３の発信元ポート番号［ＬＰ１］〜［ＬＰ３］のいずれかと同一であれば良い。【０３１３】
更に、図１８では、説明の便宜上、ＮＡＴ特性調査フェーズ（ステップＳ２４０１〜Ｓ２４０４、ステップＳ２４０６〜Ｓ２４０８）と、準備フェーズ（ステップＳ２４０５）とが併せて示されているが、ＮＡＴ特性調査フェーズと、準備フェーズとが互いに分離されていても良い。【０３１４】
更に、ＮＡＴ特性調査フェーズ及び準備フェーズは、必ずしも本実施形態に示される順序で実行される必要はない。したがって、装置１０及び２０は、後続の情報交換フェーズの前に、ＮＡＴ特性調査フェーズ及び準備フェーズを完了していれば、本実施形態と異なる順序で各ステップを実行しても良い。【０３１５】
＜情報交換フェーズ及びＰ２Ｐ通信路確立フェーズ＞
図１９は、本発明の第３の実施形態に係る通信システムがＰ２Ｐ通信路を確立するための制御処理を示すシーケンス図である。図１９では、一例として、ルータ１０１がＳｙｍｍｅｔｒｉｃ  ＮＡＴであり、ルータ２０２がＣｏｎｅ  ＮＡＴである場合のシーケンスが示されている。【０３１６】
図１９に示されるステップＳ２５０１〜Ｓ２５０２と、ステップＳ２５０５〜Ｓ２５０６とは、実施の形態１に係る情報交換フェーズ（図６）に相当する。また、図１９のステップＳ２５０７〜Ｓ２５０９は、実施の形態１に係るＰ２Ｐ通信路確立フェーズ（図９Ａ）に相当する。図１９に示されるステップＳ２５０３〜Ｓ２５０４と、ステップＳ２５１０〜Ｓ２５１５とは、ＳＩＰプロトコルの一般的なシーケンスであり、本発明に係るＰ２Ｐ通信路確立方法においては特に規定されるものではない。【０３１７】
以下、図１９を参照しながら、ＳＩＰプロトコルを用いた情報交換フェーズ及びＰ２Ｐ通信路確立フェーズにおける処理の詳細を示すシーケンスについて説明する。【０３１８】
上述したように、情報交換フェーズにおいては、各装置は自身が接続されるルータのＮＡＴ特性に基づいてルータのＰ２Ｐ通信ポート番号を決定し、決定したポート番号をサーバに通知する。Ｐ２Ｐ通信のためにルータに設けるポート番号は、実施の形態１で説明した手順で決定する。【０３１９】
まず、装置２０は、自身が接続されているルータ２０１のＰ２Ｐ通信ポート番号をＳＩＰサーバ３００へ通知する（ステップＳ２５０１）。より詳細には、中継情報送信部２００５は、ＮＡＴ特性調査フェーズにおいてルータ２０１のＮＡＴ特性がＣｏｎｅ  ＮＡＴであると判断しているため、ポート番号［ＧＰ２１］をＰ２Ｐ通信ポート番号としてデータ部に含むＩＮＶＩＴＥリクエストパケットを生成する。【０３２０】
このとき、中継情報送信部２００５は、図１６に示されるＩＮＶＩＴＥリクエストメッセージにおいて、メッセージボディ（ＳＤＰ：Ｓｅｓｓｉｏｎ  Ｄｅｓｃｒｉｐｔｉｏｎ
Ｐｒｏｔｏｃｏｌ）の「ｏパラメータ」あるいは「ｃパラメータ」の一方もしくは両方に、ルータ２０１のＩＰアドレス［ＩＰＧ２］を記載し、「ｍパラメータ」にルータ２０１のＰ２Ｐ通信ポート番号［ＧＰ２１］を記載する。中継情報送信部２００５は、生成したＩＮＶＩＴＥリクエストパケットを、通信部２００８を介してＳＩＰサーバ３００へ送信する。【０３２１】
ＳＩＰサーバ３００は、ＩＮＶＩＴＥリクエストパケットを受信すると、受信したＩＮＶＩＴＥリクエストパケットを装置１０へと転送する（ステップＳ２５０２）。より詳細には、ＳＩＰサーバ３００において、中継情報転送部００１３は、装置２０から送信されたＩＮＶＩＴＥリクエストパケットを通信部００１４を介して受信し、受信したＩＮＶＩＴＥリクエストパケットを通信部００１４を介して装置１０へ送信する。【０３２２】
ＩＮＶＩＴＥリクエストを受信した装置１０は、「試行中状態」を装置２０に通知するため、１００  Ｔｒｙｉｎｇレスポンス（メッセージフォーマットは図示せず）パケットをＳＩＰサーバ３００経由で装置２０へ送信する（ステップＳ２５０３及びＳ２５０４）。【０３２３】
次に、装置１０は、自身が接続されているルータ１０１のＰ２Ｐ通信ポート番号をＳＩＰサーバ３００へ通知する（ステップＳ２５０５）。より詳細には、中継情報送信部１００５は、ＮＡＴ特性調査フェーズにおいてルータ１０１のＮＡＴ特性がＳｙｍｍｅｔｒｉｃ  ＮＡＴであると判断しているため、ポート番号［ＧＰ１４＋Δ１］をＰ２Ｐ通信ポート番号としてデータ部に含む１８３  Ｓｅｓｓｉｏｎ  Ｐｒｏｇｒｅｓｓレスポンスパケットを生成する。【０３２４】
このとき、中継情報送信部１００５は、図１７に示される１８３  Ｓｅｓｓｉｏｎ  Ｐｒｏｇｒｅｓｓレスポンスメッセージにおいて、メッセージボディ（ＳＤＰ）の「ｏパラメータ」あるいは「ｃパラメータ」の一方もしくは両方に、ルータ１０１のＩＰアドレス［ＩＰＧ１］を記載し、「ｍパラメータ」にルータ１０１のＰ２Ｐ通信ポート番号［ＧＰ１４＋Δ１］を記載する。中継情報送信部１００５は、生成した１８３  Ｓｅｓｓｉｏｎ
Ｐｒｏｇｒｅｓｓレスポンスパケットを、通信部１００８を介してＳＩＰサーバ３００へ送信する。【０３２５】
ＳＩＰサーバ３００は、１８３  Ｓｅｓｓｉｏｎ  Ｐｒｏｇｒｅｓｓレスポンスパケットを受信すると、受信した１８３  Ｓｅｓｓｉｏｎ  Ｐｒｏｇｒｅｓｓレスポンスパケットを装置２０へと転送する（ステップＳ２５０６）。より詳細には、ＳＩＰサーバ３００において、中継情報転送部００１３は、装置１０から送信された１８３  Ｓｅｓｓｉｏｎ
Ｐｒｏｇｒｅｓｓレスポンスパケットを、通信部００１４を介して受信し、受信した１８３  Ｓｅｓｓｉｏｎ  Ｐｒｏｇｒｅｓｓレスポンスパケットを、通信部００１４を介して装置２０へ送信する。【０３２６】
尚、本実施の形態においては、装置２０が先にＩＮＶＩＴＥリクエストパケットを送信しているが、装置１０が先にＩＮＶＩＴＥリクエストパケットを送信しても良い。その場合には、装置２０が１００  Ｔｒｙｉｎｇレスポンスと、１８３  Ｓｅｓｓｉｏｎ  Ｐｒｏｇｒｅｓｓレスポンスパケットとを送信する。【０３２７】
装置１０は、情報交換フェーズのステップＳ２５０１及びＳ２５０２において、装置２０からＩＮＶＩＴＥリクエストパケットを受信すると、メッセージボディ（ＳＤＰ）に記載される情報に基づき、装置２０が接続されるルータ２０１のＰ２Ｐ通信ポート番号を把握する。図１９の例では、ルータ２０１がＣｏｎｅ  ＮＡＴ特性を有するので、ＳＤＰの「ｍパラメータ」にはルータ２０１のＰ２Ｐ通信ポート番号として［ＧＰ２１］が記述されている。一方、ルータ１０１はＳｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有するので、ステップＳ２５０５及びＳ２５０６において、装置１０はルータ１０１のＰ２Ｐ通信ポート番号として［ＧＰ１４＋Δ１］を装置２０に通知している。【０３２８】
そこで、装置１０の通信制御部１００７は、［ＬＰ４］が発信元ポート番号に設定され、かつ、宛先ポート番号に［ＧＰ２１］が設定されたパケットを、Ｐ２Ｐ開始要求として送信する（ステップＳ２５０７）。【０３２９】
この段階では、ルータ２０１は、装置１０から送信された宛先ポート番号が［ＧＰ２１］に設定されたパケットを転送するようにＮＡＴを設定していないため、ルータ２０１は、ステップＳ２５０５において送信されたＰ２Ｐ開始要求パケットを破棄し、装置２０に転送しない。この段階において、ルータ１０１は、発信元ポート番号にルータ２０１のポート番号［ＧＰ２１］が設定され、かつ、宛先ＩＰアドレス及び宛先ポート番号に（ＩＰＧ１、ＧＰ１４＋Δ１）が設定されたパケットを、装置１０（ＩＰＬ１、ＬＰ１）へ転送するようにＮＡＴを設定する。【０３３０】
一方、装置２０は、情報交換フェーズにおいて装置１０から通知された情報に基づき、装置１０が接続されるルータ１０１のＰ２Ｐ通信ポート番号を取得する。通信制御部２００７は、［ＧＰ２１］に対応する［ＬＰ１］が発信元ポート番号に設定され、かつ、宛先ポート番号に［ＧＰ１４＋Δ１］が設定されたパケットを、Ｐ２Ｐ開始要求として送信する（ステップＳ２５０８）。【０３３１】
ルータ１０１は、装置２０から送信されたＰ２Ｐ開始要求パケットを装置１０に転送する。装置１０において、通信制御部１００７は、ルータ１０１から転送されたＰ２Ｐ開始要求パケットに応答して、通信部１００８を介して、Ｐ２Ｐ開始応答パケットを装置２０へ送信する（ステップＳ２５０９）。【０３３２】
Ｐ２Ｐ開始応答を送信し、Ｐ２Ｐ通信路を確立した装置１０は、「呼出し中状態（例えば電話のベルが鳴っている状態）」を装置２０に通知するため、１８０  Ｒｉｎｇｉｎｇレスポンス（メッセージフォーマットは図示せず）パケットをＳＩＰサーバ３００経由で装置２０へ送信する（ステップＳ２５１０〜Ｓ２５１１）。【０３３３】
その後、装置１０のユーザが受話器を取ると、装置１０は、「呼出し中状態」から「呼出し完了状態（ユーザが受話器を取った状態）」に変化したことを通知するため、２００
ＯＫレスポンス（メッセージフォーマットは図示せず）パケットをＳＩＰサーバ３００経由で装置２０へ送信する（ステップＳ２５１２及びＳ２５１３）。【０３３４】
装置２０は、ＳＩＰサーバ３００から２００  ＯＫレスポンスパケットを受信すると、「呼確立状態」を装置１０に通知するため、ＡＣＫリクエスト（メッセージフォーマットは図示せず）パケットをＳＩＰサーバ３００経由で装置１０へ送信する（ステップＳ２５１４及びＳ２５１５）。【０３３５】
ステップＳ２５１５以降は、装置１０と装置２０との間で、例えばＩＰ電話での通話などのＰ２Ｐ通信を行うことが可能となる。【０３３６】
尚、本実施の形態において、発信元ポート番号に［ＬＰ４］を設定しているが、ルータの特性がＳｙｍｍｅｔｒｉｃ  ＮＡＴである場合には、ステップＳ４０５においてＰ２Ｐ通信準備パケットを送信したポート番号［ＬＰ１］以外の任意のポート番号を設定しても良い。より詳細には、ルータ１０１がＡＳ  Ｓｙｍｍｅｔｒｉｃ  ＮＡＴである場合には、［ＬＰ１］から送信したＰ２Ｐ開始要求パケットは、ステップＳ２４０５における宛先アドレスと同じ宛先に向けて送信されるため、［ＧＰ１３］が割り当てられる。また、ルータ２０１がＰＳ  Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有する場合には、任意のポート番号から送信したＰ２Ｐ開始要求パケットの発信元ポート番号は、ルータ１０１によって、［ＧＰ１４＋Δ１］に変換されると考えられる。このことにより、ＡＳ及びＰＳどちらのＳｙｍｍｅｔｒｉｃ  ＮＡＴでも［ＧＰ１４＋Δ１］を割り当てられるために［ＬＰ１］以外のポート番号を設定する必要がある。【０３３７】
また、本実施の形態における情報通知フェーズ及びＰ２Ｐ通信路確立フェーズは一例であり、図１９に示されるものと異なるＳＩＰメッセージ及びシーケンスを採用しても良い。例えば、Ｓ２５０５〜Ｓ２５０６の１８３  Ｓｅｓｓｉｏｎ  Ｐｒｏｇｒｅｓｓレスポンスを省略しても良い。この場合、ＮＡＴ情報通知を表す図１７のメッセージボディ（ＳＤＰ）を、Ｓ２５０３〜Ｓ２５０４の１００  Ｔｒｙｉｎｇレスポンスのデータ部に挿入する。また例えば、ステップＳ２５０１〜Ｓ２５０２に示すＩＮＶＩＴＥリクエストの後、Ｓ２５０５〜Ｓ２５０６の１８３  Ｓｅｓｓｉｏｎ  Ｐｒｏｇｒｅｓｓレスポンスの代わりに、Ｓ２５１０〜Ｓ２５１１の１８０  Ｒｉｎｇｉｎｇレスポンスを送信しても良い。この場合、ＮＡＴ情報通知を表す図１７のメッセージボディ（ＳＤＰ）を、Ｓ２５１０〜Ｓ２５１１の１８０  Ｒｉｎｇｉｎｇレスポンスのデータ部に挿入する。その他、様々なシーケンスによって、本実施の形態に係るＰ２Ｐ通信路確立方法を実現することができる。【０３３８】
また、図１４〜図１７に示したメッセージフォーマットは、最低限の必須ヘッダを含む例であり、更に他のオプションヘッダやパラメータなどを含んでいても良い。【０３３９】
上記の各実施形態においては、説明の簡略化のために、ルータ２０１がＣｏｎｅ  ＮＡＴ特性を有する場合について説明した。ただし、ルータ２０１がＣｏｎｅ  ＮＡＴ以外のＮＡＴ特性を有する場合にも、本発明を同様に適用することができる。以下、ルータ１０１及び２０１のＮＡＴ特性のあらゆる組み合わせに本発明が適用可能であることを簡単に説明する。【０３４０】
図２０Ａは、情報交換フェーズにおいて、２台のルータのＮＡＴ特性の組み合わせ毎に、各ルータが通知するＰ２Ｐポートの組み合わせを示す表である。【０３４１】
図２０Ａに示される（ａ）〜（ｃ）は、上記の図６に関する説明で示した項目（ａ）〜（ｃ）のそれぞれに対応する。例えば、ルータ１０１がＣｏｎｅ  ＮＡＴで、ルータ２０１がＳｙｍｍｅｔｒｉｃ  ＮＡＴである場合、ルータ１０１に接続される装置１０が（ａ）の情報をＮＡＴ情報通知で装置２０に通知し、装置２０が（ｂ）の情報をＮＡＴ情報通知で装置１０に通知する。【０３４２】
図２０Ｂは、Ｐ２Ｐ通信路確立フェーズにおいて、２台のルータのＮＡＴ特性の組み合わせ毎に、各ルータに接続される装置が実行する処理の組み合わせを示す表である。【０３４３】
図２０Ｂに示される（ｅ）、（ｆ）及び（ｇ）は、図８の装置１０の処理、図９の装置１０の処理及び図１０の装置１０の処理に相当する。例えば、ルータ１０１がＣｏｎｅ  ＮＡＴで、ルータ２０１がＳｙｍｍｅｔｒｉｃ  ＮＡＴである場合、ルータ１０１に接続される装置１０が（ｅ）の処理（図８の装置１０と同様の処理）を実行し、ルータ２０１に接続される装置２０が（ｆ）の処理（図１０の装置１０と同様の処理）を実行することにより、Ｐ２Ｐ通信路を確立することができる。【０３４４】
また、上記の各実施形態においては、説明の簡略化のために、装置１０及びサーバ００１が１台のルータ１０１を介してグローバルネットワーク００に接続される例を説明したが、装置１０及びサーバ００１は、複数のルータを介して接続されていても良い。また、装置２０及びサーバ００１間に配置されるルータの数も同様である。この点を以下に説明する。【０３４５】
図２１Ａは、装置が３つのルータを介してグローバルネットワークに接続されている例を示す図である。【０３４６】
図２１Ａに示されるように、装置１０は、Ｃｏｎｅ  ＮＡＴ特性を有する３台のルータ１〜３を介してグローバルネットワーク００に接続されている。装置１０が発信元ポート番号に［ＬＰ１］が設定されたパケットを送信すると、当該パケットは、ルータ１のポートＲＰ１１、ルータ２のポートＲＰ２１、ルータ３のポートＲＰ３１を通って、ネットワーク００に到達する。この場合、グローバルネットワーク００に接続されるサーバは、見かけ上、装置１０が１台のＣｏｎｅ  ＮＡＴ特性を有するルータを介して自身に接続されていると見なすことができる。【０３４７】
図２１Ｂは、装置が３つのルータを介してグローバルネットワークに接続されている他の例を示す図である。【０３４８】
図２１Ｂに示されるように、装置１０は、Ｃｏｎｅ  ＮＡＴ特性を有するルータ１と、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有するルータ２と、Ｃｏｎｅ  ＮＡＴ特性を有するルータ３とを介してグローバルネットワーク００に接続されている。装置１０が発信元ポート番号に［ＬＰ１］が設定されたパケットを送信すると、当該パケットは、ルータ１のポート［ＲＰ１１］を通じてルータ２に到達する。ルータ２は、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有するので、受信したパケットに異なるポート［ＲＰ２１］、［ＲＰ２２］及び［ＲＰ２３］を割り当て、パケットをルータ３に転送する。ルータ３がＣｏｎｅ  ＮＡＴ特性を有する場合であっても、送信元ポート番号が異なるパケットの各々は、ルータ３の異なるポートを通じてグローバルネットワークに転送されるので、グローバルネットワーク００に接続されるサーバは、見かけ上、装置１０が１台のＳｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有するルータを介して自身に接続されていると見なすことができる。【０３４９】
このように、装置及びサーバが複数のルータを介して接続されていても、グローバルネットワーク００から見える見かけ上のＮＡＴ特性に基づいて、接続シーケンスを選択することによって、２台の装置間にＰ２Ｐ通信路を確立することができる。【０３５０】
更に、上記の実施の形態１及び３のＮＡＴ特性調査フェーズ（図４Ａ及び図１８）において、装置は、アドレス情報調査要求に対するアドレス情報調査応答を受信してから、次のアドレス情報調査要求を送信しているが、アドレス情報調査応答を待たずに、次のアドレス情報調査要求を送信しても良い。具体的には、装置は、アドレス情報調査要求１及び２と、Ｐ２Ｐ通信準備パケットと、アドレス情報調査要求３との４つのパケットを連続して送信し、その後、サーバ００１からアドレス情報調査応答１〜３を受信しても良い。これら４つのパケットを極めて短時間に続けて送信した場合、４つのパケットの送信期間に、ルータに共通に接続される他の装置から送信されたパケットが割り込む可能性を低減することができるので、差分値Δ１及びΔ２が本来の値から変動することを防止できる。したがって、Ｃｏｎｅ  ＮＡＴが、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴであると誤判定される可能性を低減することが可能となる。【０３５１】
更に、誤判定抑制の観点では、ＮＡＴ特性調査フェーズを２回以上繰り返し行うことによって、ＮＡＴ特性の判定精度を高めても良い。この場合、ポート割当て間隔を正確に測定することも可能となる。【０３５２】
更に、ルータのＮＡＴ特性によっては、次のような方法によって、簡易にＮＡＴ特性を判定することも可能である。【０３５３】
市販されている家庭用のルータの中では、ポート割当て間隔が一定値（例えば、１）であるものが多数存在する。このようにポート割り当て間隔が一定値である場合、２つのアドレス調査要求を送信する間にＰ２Ｐ通信準備パケットを送信することによって、ＮＡＴ特性を判定することができる。以下、その理由を説明する。【０３５４】
図２２Ａは、ポート割当て間隔が１であり、かつ、Ｃｏｎｅ  ＮＡＴ特性を有するルータの図であり、図２２Ｂは、ポート割当て間隔が１であり、かつ、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有するルータの図である。【０３５５】
まず、図２２Ａを参照して、ルータ１０１がＣｏｎｅ  ＮＡＴ特性を有する場合、Ｐ２Ｐ通信準備パケットに割り当てられるポート番号［ＧＰ１３］は、２つのアドレス情報調査要求パケットに割り当てられるポート番号［ＧＰ１１］または［ＧＰ１２］のいずれかと等しい。したがって、サーバ００１から返信される２つのアドレス情報調査応答パケットに含まれるポート番号の差分Δは１となる。【０３５６】
次に、図２２Ｂを参照して、ルータ１０１がＳｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有する場合には、Ｐ２Ｐ通信準備パケットに割り当てられるポート番号［ＧＰ１３］は、２つのアドレス情報調査要求パケットとに割り当てられるポート番号［ＧＰ１１］及び［ＧＰ１２］のいずれとも相違する。したがって、サーバ００１から返信される２つのアドレス情報調査応答パケットに含まれるポート番号の差分Δは２となる。【０３５７】
以上のように、２つのアドレス情報調査応答パケットから取得される２つのポート番号の差分Δが一定値（この例では、１）である場合には、ルータ１０１がＣｏｎｅ  ＮＡＴ特性であると判定でき、それ以外の場合には、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ特性であると判定できる。【０３５８】
尚、図２２Ａおよび図２２Ｂに示される処理を実現するには、装置１０の記憶部（図示なし）に、２つのアドレス情報調査応答パケットに含まれるポート番号の間隔（差分Δ）と当該間隔に応じて異なるＮＡＴ特性とが対応付けされた対応情報を、予め保持しておけば良い。例えば、対応情報において、差分Δ（１）とＣｏｎｅ  ＮＡＴ特性とが対応付けされ、差分Δ（２）とＳｙｍｍｅｔｒｉｃ  ＮＡＴ特性とが対応付けされているとする。この場合、装置１０は、この対応情報を参照することで、差分Δが１であれば、Ｃｏｎｅ  ＮＡＴ特性であると判定でき、差分Δが２であれば、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ特性であると判定できる。【０３５９】
尚、上記各実施の形態に係る通信装置の機能ブロック（図２Ａ及び図２Ｂ）は、記憶装置（ＲＯＭ、ＲＡＭ、ハードディスク等）に格納された上述の処理手順をコンピュータに実行させることができるプログラムを、コンピュータに実行させることによっても実現できる。このコンピュータは、携帯装置等の電子装置に組み込まれたコンピュータを含む概念である。この場合、当該プログラムは、記録媒体を介して記憶装置内に格納された後に実行されても良いし、記憶媒体から直接実行されても良い。また、上記の実施形態に係る通信装置の機能ブロックは、集積回路として実現されても良い。【０３６０】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示にすぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。
【産業上の利用可能性】
【０３６１】
本発明に係る通信装置、通信方法及び通信システムは、１つのＩＰアドレスを有する１台のサーバとのみ通信することによって、ルータのＮＡＴ特性を調査することができる。したがって、本発明は、例えば、異なるプライベートネットワークに属する２台の装置の間でＰ２Ｐ通信を行う家電製品、通信装置等に有用である。
【図１】
2008035578.tif 000003
【図２Ａ】
2008035578.tif 000004
【図２Ｂ】
2008035578.tif 000005
【図２Ｃ】
2008035578.tif 000006
【図３】
2008035578.tif 000007
【図４Ａ】
2008035578.tif 000008
【図４Ｂ】
2008035578.tif 000009
【図５Ａ】
2008035578.tif 000010
【図５Ｂ】
2008035578.tif 000011
【図６】
2008035578.tif 000012
【図７】
2008035578.tif 000013
【図８】
2008035578.tif 000014
【図９Ａ】
2008035578.tif 000015
【図９Ｂ】
2008035578.tif 000016
【図１０】
2008035578.tif 000017
【図１１】
2008035578.tif 000018
【図１２】
2008035578.tif 000019
【図１３】
2008035578.tif 000020
【図１４】
2008035578.tif 000021
【図１５】
2008035578.tif 000022
【図１６】
2008035578.tif 000023
【図１７】
2008035578.tif 000024
【図１８】
2008035578.tif 000025
【図１９】
2008035578.tif 000026
【図２０Ａ】
2008035578.tif 000027
【図２０Ｂ】
2008035578.tif 000028
【図２１Ａ】
2008035578.tif 000029
【図２１Ｂ】
2008035578.tif 000030
【図２２Ａ】
2008035578.tif 000031
【図２２Ｂ】
2008035578.tif 000032
【図２３Ａ】
2008035578.tif 000033
【図２３Ｂ】
2008035578.tif 000034
【図２３Ｃ】
2008035578.tif 000035
【図２３Ｄ】
2008035578.tif 000036
【図２３Ｅ】
2008035578.tif 000037
【図２４Ａ】
2008035578.tif 000038
【図２４Ｂ】
2008035578.tif 000039
【図２５Ａ】
2008035578.tif 000040
【図２５Ｂ】
2008035578.tif 000041
【図２５Ｃ】
2008035578.tif 000042
【図２６】
2008035578.tif 000043
【図２７】
2008035578.tif 000044
【図２８】
2008035578.tif 000045
【図２９】
2008035578.tif 000046
【図３０】
2008035578.tif 000047
【手続補正書】
【提出日】平成21年1月16日(2009.1.16)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信システム及び通信方法に関し、より特定的には、ルータのアドレス変換特性を調査し、異なる２つのプライベートネットワーク間にＰ２Ｐ通信路を確立することができる通信装置、通信システム及び通信方法に関するものである。
【背景技術】
【０００２】
一般に、ネットワークに接続される通信端末や通信機器（以降、併せて「通信装置」という）を識別するために、通信装置にはＩＰアドレスが付加される。接続されるネットワーク全体で一意に決定され、一対一の通信（ピア・ツー・ピア通信：以下、「Ｐ２Ｐ通信」という）を可能とするＩＰアドレスを、グローバルＩＰアドレスという。また、特定のネットワーク内だけで一意に決定され、他のネットワークとのＰ２Ｐ通信に直接使用することができないＩＰアドレスを、プライベートＩＰアドレスという。プライベートＩＰアドレスによって通信装置が相互に識別されるネットワークを、プライベートネットワークという。
【０００３】
プライベートネットワークに接続される通信装置（プライベートＩＰアドレスを有する通信装置）が、グローバルネットワークに接続される通信装置（グローバルＩＰアドレスを有する通信装置）と通信するためには、一般に、プライベートネットワークとグローバルネットワークとの間に、ネットワークアドレス変換（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ：以下、「ＮＡＴ」という）の機能、あるいは、ネットワークアドレスポート変換（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｐｏｒｔ  Ｔｒａｎｓｌａｔｉｏｎ：以下、「ＮＡＰＴ」という）機能を有する通信機器（ルータ）が接続される。尚、以降においては、説明の簡略化のために、ＮＡＴとＮＡＰＴとを併せて「ＮＡＴ」という。
【０００４】
ルータは、プライベートネットワークに接続される宅内装置から、グローバルネットワークに接続される宅外装置に向けて送信されたパケットを最初に受信した時に、送信元装置のプライベートアドレスをルータのグローバルアドレスに変換するためのルールと、その返信パケットを受け付けるためのルールとを作成し、作成したルールをＮＡＴルールとして保存する。以降の通信において、ルータは、保存したＮＡＴルールに従い、宅外装置からの受信パケットと、宅内装置からの受信パケットとの相互のアドレス変換を行い、受信パケットを宅内装置または宅外装置へと転送する。尚、作成されたＮＡＴルールは、通信が行われている間はルータで保持され、一定時間通信パケットが途切れたときに自動的に削除される。
【０００５】
ところが、このＮＡＴが妨げとなり、プライベートＩＰアドレスを有する通信装置が、異なるプライベートネットワークに接続される通信装置とＰ２Ｐ通信を行えない場合がある。その理由は、ある通信装置が単に通信相手装置が有するプライベートアドレスを指定してパケットを送信しても、送信パケットは、グローバルＩＰアドレスでパケットが識別されるインターネットを経由できず、通信相手に届かないからである。
【０００６】
そこで、ルータを介して異なるプライベートネットワークに接続されている２つの通信装置が、ルータのＮＡＴを越えてＰ２Ｐ通信路を確立するための手法として、ＳＴＵＮ（Ｓｉｍｐｌｅ  Ｔｒａｖｅｒｓａｌ  ＵＤＰ  ｔｈｒｏｕｇｈ  ＮＡＴ：ＲＦＣ３４８９）を利用する方法が知られている。尚、以下の説明においては、「パケット」とは、「ＵＤＰパケット」のことをいう。
【０００７】
まず、ＳＴＵＮを利用するＰ２Ｐ通信路確立手法の説明に先立ち、図２３Ａ〜図２３Ｅを参照しながら、ＮＡＴの種類について説明する。尚、プライベートネットワークは、家庭内、すなわち宅内のネットワークとして構築される場合に限らず、企業内のネットワークとして構築される場合もある。以下においては、説明の便宜上、プライベートネットワークが宅内ネットワークである場合を想定するが、下記の説明は、企業において構築される大規模なプライベートネットワークにも同様に当てはまる。また、ある宅内のプライベートネットワークから見た場合に、当該宅内ネットワークとは異なるネットワークのことを、宅外ネットワーク、あるいは、外部ネットワークという。更に、説明の便宜のために、ＩＰアドレス［ＩＰ］とポート番号［Ｐ］との組み合わせを、（ＩＰ、Ｐ）と表現する。
【０００８】
図２３Ａは、Ｆｕｌｌ  Ｃｏｎｅ  ＮＡＴと呼ばれるＮＡＴを説明するための図である。
【０００９】
Ｆｕｌｌ  Ｃｏｎｅ  ＮＡＴ特性を有するルータは、あるプライベートアドレスを有する宅内装置の特定のポート番号からある宅外装置へと送信されるパケットに対して、常に同一のポート番号を割り当てる。例えば、ルータは、宅内装置Ａ（ＩＰａ、Ｐａ）が送信したパケットに常にポート番号［Ｐｂ］を割り当て、当該パケットを外部ネットワークに接続される宅外装置Ｃへと転送する。また、Ｆｕｌｌ  Ｃｏｎｅ  ＮＡＴ特性を有するルータは、外部ネットワークに接続された宅外装置が（ＩＰｂ、Ｐｂ）宛に送信した全てのパケットを、宅内装置（ＩＰａ、Ｐａ）へと転送する。したがって、ルータは、宅外装置Ｄ（ＩＰｄ、Ｐｄ）が（ＩＰｂ、Ｐｂ）宛に送信したパケットも、宅内装置Ａ（ＩＰａ、Ｐａ）に転送する。
【００１０】
図２３Ｂは、Ｒｅｓｔｒｉｃｔｅｄ  Ｃｏｎｅ  ＮＡＴ（以下、「Ｒ  ＮＡＴ」という）と呼ばれるＮＡＴを説明するための図である。
【００１１】
Ｒ  ＮＡＴ特性を有するルータは、ある宅内装置Ａ（ＩＰａ、Ｐａ）が宅外ネットワークに向けて送信したパケットに対して、常に同一のポート番号［Ｐｂ］を割り当てる。ただし、Ｒ  ＮＡＴ特性を有するルータは、宅外装置Ａが送信したパケットの送信先である宅外装置Ｃ（ＩＰアドレスＩＰｃを有する）が（ＩＰｂ、Ｐｂ）宛てに送信したパケットのみを宅内装置Ａ（ＩＰａ、Ｐａ）へと転送する点で、Ｆｕｌｌ  Ｃｏｎｅ  ＮＡＴ特性を有するルータとは異なっている。したがって、ルータは、宅内装置Ａが送信したパケットの宛先でない宅外装置Ｄが、（ＩＰｂ、Ｐｂ）へと送信したパケットを宅内装置Ａへと転送しない。尚、Ｒ  ＮＡＴ特性を有するルータは、受信したパケットの発信元ＩＰアドレスが［ＩＰｃ］であれば、全ての発信元ポート番号のパケットを宅内装置Ａへと転送する。したがって、ルータは、宅外装置Ｃのポート［Ｐｃ２］から（ＩＰｂ、Ｐｂ）へと送信したパケットをも宅内装置Ａへと転送する。
【００１２】
図２３Ｃは、Ｐｏｒｔ  Ｒｅｓｔｒｉｃｔｅｄ  Ｃｏｎｅ  ＮＡＴ（以下、「ＰＲ  ＮＡＴ」という）と呼ばれるＮＡＴ特性を説明するための図である。
【００１３】
ＰＲ  ＮＡＴ特性を有するルータは、ある宅内装置Ａ（ＩＰａ、Ｐａ）が宅外ネットワークに向けて送信したパケットに対して、常に同一のポート番号［Ｐｂ］を割り当てる。ただし、ＰＲ  ＮＡＴ特性を有するルータは、宅内装置Ａが発信したパケットの宛先（ＩＰｃ、Ｐｃ１）から（ＩＰｂ、Ｐｂ）へと送信されたパケットのみを宅内装置Ａ（ＩＰａ、Ｐａ）へと転送する点で、Ｒ  ＮＡＴ特性を有するルータとは相違する。したがって、ルータは、宅外装置Ｄの発信元（ＩＰｄ、Ｐｄ）から発信されたパケットのみならず、宅外装置の発信元（ＩＰｃ、Ｐｃ２）から送信されたパケットをも破棄する。
【００１４】
以下においては、上記のＦｕｌｌ  Ｃｏｎｅ  ＮＡＴ、Ｒ  ＮＡＴ、ＰＲ  ＮＡＴを総称して「Ｃｏｎｅ  ＮＡＴ」という。
【００１５】
図２３Ｄは、Ａｄｒｅｓｓ  Ｓｅｎｓｉｔｉｖｅ  Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ（以下、「ＡＳ  ＮＡＴ」という）と呼ばれるＮＡＴを説明するための図である。
【００１６】
ＡＳ  ＮＡＴ特性を有するルータは、宅内装置Ａが発信したパケットの宛先ＩＰアドレスの各々に異なるポート番号を割り当てる。例えば、宅内装置Ａ（ＩＰａ、Ｐａ）から宅外装置Ｃ（ＩＰｃ、Ｐｃ）へと送信されたパケットには、ポート番号［Ｐｂ１］を割り当て、宅内装置Ａ（ＩＰａ、Ｐａ）から、宅外装置Ｃとは異なるＩＰアドレスを有する宅外装置Ｄ（ＩＰｄ、Ｐｄ）へと送信されたパケットには、ポート番号［Ｐｂ２］を割り当てる。また、ＡＳ  ＮＡＴ特性を有するルータは、あるポート番号に割り当てられた宅外装置から送信されたパケットのみを宅内装置Ａ（ＩＰａ、Ｐａ）へ転送し、当該ポート番号に割り当てられていない宅外装置から送信されたパケットを全て破棄する。例えば、ルータは、ＩＰアドレス［ＩＰｃ］を有する宅外装置Ｃから、（ＩＰｂ、Ｐｂ１）宛に送信されたパケットを宅内装置Ａ（ＩＰａ、Ｐａ）へと転送するが、ＩＰアドレス［ＩＰｄ］を有する宅外装置Ｄから、（ＩＰｂ、Ｐｂ１）宛に送信されたパケットを破棄する。
【００１７】
図２３Ｅは、Ｐｏｒｔ  Ｓｅｎｓｉｔｉｖｅ  Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ（以下、「ＰＳ  ＮＡＴ」という）と呼ばれるＮＡＴを説明するための図である。
【００１８】
ＰＳ  ＮＡＴ特性を有するルータは、宅内装置Ａが送信したパケットの宛先ＩＰアドレス及び宛先ポート番号の組み合わせの各々に、異なるポート番号を割り当て、当該受信パケットをネットワークへと送出する。例えば、ルータは、宅内装置Ａ（ＩＰａ、Ｐａ）から発信されたパケットの宛先（ＩＰｃ、Ｐｃ０）には、ポート番号［Ｐｂ０］を割り当て、宛先（ＩＰｃ、Ｐｃ１）には、ポート番号［Ｐｂ１］を割り当て、宛先（ＩＰｃ、Ｐｃ２）には、ポート番号［Ｐｂ２］を割り当てる。また、ルータは、あるポート番号に割り当てられた宅外装置から送信されたパケットを宅内装置Ａへと転送するが、当該ポート番号に割り当てた宅外装置以外から送信されたパケットを全て破棄する。したがって、ルータは、発信元（ＩＰｃ、Ｐｃ１）からポート番号［Ｐｂ１］を宛先として送信されたパケットを宅内装置Ａへと転送するが、発信元（ＩＰｃ、Ｐｃ２）及び発信元（ＩＰｄ、Ｐｄ１）からポート番号［Ｐｂ１］へと送信されたパケットを全て破棄する。
【００１９】
以下においては、上記のＡＳ  ＮＡＴ及びＰＳ  ＮＡＴを総称して、「Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ」という。
【００２０】
また、上述したＣｏｎｅ  ＮＡＴやＳｙｍｍｅｔｒｉｃ  ＮＡＴとは別に、宅内装置の発信元ポート番号と同じポート番号を用いてＮＡＴの設定を行う性質を有するルータが知られている。
【００２１】
図２４Ａは、Ｐｏｒｔ  Ｒｅｕｓｅ特性の概略を説明するための図である。
【００２２】
図２４Ａに示されるように、ルータは、宅内装置Ａのポート番号［Ｐａ］を発信元とするパケットにポート番号［Ｐａ］を割り当て、宅内装置Ａのポート番号［Ｐｂ］を発信元とするパケットにポート番号［Ｐｂ］を割り当て、宅内装置Ａのポート番号［Ｐｃ］を発信元とするパケットにポート番号［Ｐｃ］を割り当てる。このように、通信機器が、ある発信元ポート番号を含むパケットに、当該発信元ポート番号と同一のポート番号を割り当てる特性のことを、「Ｐｏｒｔ  Ｒｅｕｓｅ」という。
【００２３】
Ｐｏｒｔ  Ｒｅｕｓｅは、上記のＮＡＴ特性とは異なる特性である。したがって、Ｐｏｒｔ  Ｒｅｕｓｅ特性を有する通信機器は、必ず上述のＮＡＴ特性のいずれかを備える。
【００２４】
図２４Ｂは、Ｐｏｒｔ  Ｒｅｕｓｅ特性を有するルータの機能を説明するための図である。
【００２５】
図２４Ｂに示されるルータがＰｏｒｔ  Ｒｅｕｓｅ特性とＦｕｌｌ  Ｃｏｎｅ  ＮＡＴ特性とを兼ね備える場合、発信元ＩＰアドレス及び発信元ポート番号に（ＩＰａ、Ｐａ）が設定されたパケットに対して、ルータは、常にポート番号［Ｐａ］を割り当て、当該パケットを外部ネットワークへと送出する。また、ルータは、外部ネットワークに接続された宅外装置が宛先（ＩＰｂ、Ｐａ）へと発信した全てのパケットを宅内装置Ａに転送する。
【００２６】
次に、ルータのＮＡＴを越えてＰ２Ｐ通信路を確立するために、ＳＴＵＮを利用する方法について説明する。
【００２７】
ルータを介して異なるプライベートネットワークに接続される２つの通信装置の間にＰ２Ｐ通信路を確立するためには、各装置は、パケットに、宛先ＩＰアドレスと宛先ポート番号とを設定することが必要である。しかしながら、上述のように、ルータが有するＮＡＴ特性に応じて、アドレス変換方法が異なるので、通信装置は、ルータのＮＡＴ特性を考慮した上で、パケットの宛先を設定する必要がある。
【００２８】
そこで、Ｐ２Ｐ通信路を確立するために、まず、ＳＴＵＮに規定される方法に従って、通信装置が接続されているルータのＮＡＴ特性を調査する。より詳細には、ＳＴＵＮにおいては、通信装置は、異なるＩＰアドレスを有する２つのサーバの各々へとテスト用パケットを送信する。そして、ルータが当該テスト用パケットの各々に割り当てたポート番号が一致するか否かを判断することによって、ルータのＮＡＴ特性がＣｏｎｅ  ＮＡＴであるか、または、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴであるかを判断する。
【００２９】
以下、図２５Ａ〜図２５Ｃ及び図２６を参照しながら、ＳＴＵＮによるＮＡＴ特性の調査方法を説明する。
【００３０】
図２５Ａは、ＳＴＵＮ−ＴｅｓｔＩの概略を示す図である。
【００３１】
ＴｅｓｔＩにおいては、宅内装置Ａは、発信元が（ＩＰａ、Ｐａ）であるパケットを、サーバ１（ＩＰｃ、Ｐｃ１）へと送信する。サーバ１は、宅内装置Ａから発信されたパケットを参照して、発信元ポート番号に［Ｐｃ１］が設定され、ルータが割り当てたポート番号［Ｐｂ］を宛先に含むパケットを宅内装置Ａに送信する。
【００３２】
図２５Ｂは、ＳＴＵＮ−ＴｅｓｔＩＩの概略を示す図である。
【００３３】
ＴｅｓｔＩＩにおいては、宅内装置Ａは、発信元を（ＩＰａ、Ｐａ）とし、宛先をサーバ１の（ＩＰｃ、Ｐｃ１）とするパケットを送信する。これに対して、サーバ２は、発信元に（ＩＰｄ、Ｐｄ１）が設定され、宛先にルータが割り当てたポート番号［Ｐｂ］が設定されたパケットを宅内装置Ａに送信する。
【００３４】
図２５Ｃは、ＳＴＵＮ−ＴｅｓｔＩＩＩの概略を示す図である。
【００３５】
ＴｅｓｔＩＩＩにおいては、宅内装置Ａは、発信元を（ＩＰａ、Ｐａ）とし、宛先をサーバ１の（ＩＰｃ、Ｐｃ１）とするパケットを送信する。サーバ１は、発信元ポート番号に［Ｐｃ１］とは異なる［Ｐｃ２］が設定され、ルータが割り当てたポート番号［Ｐｂ］を宛先に含むパケットを宅内装置Ａに送信する。
【００３６】
図２６は、ＳＴＵＮによってＮＡＴ特性を調査するためのフローチャートである。
【００３７】
まず、宅内装置Ａは、上記のＴｅｓｔＩを実行する（ステップＳ１６０１）し、サーバ１から応答を受信したか否かを判断する（ステップＳ１６０２）。宅内装置Ａは、サーバ１からの応答を受信した場合には、ステップＳ１６０４に進み、それ以外の場合は、宅内装置Ａは、サーバ１とのＵＤＰ通信が不能であると判断する（ステップＳ１６０３）。
【００３８】
宅内装置Ａがサーバ１からの応答を受信した場合（ステップＳ１６０１でＹｅｓ）、宅内装置Ａは、受信した応答パケットに含まれるアドレス変換後のＩＰアドレス［ＩＰｂ］と、自身のＩＰアドレス［ＩＰａ］が一致するか否かを判断する（ステップＳ１６０４）。宅内装置Ａは、応答パケットに含まれるＩＰアドレス［ＩＰｂ］と、自身のＩＰアドレス［ＩＰａ］とが一致する場合には、ステップＳ１６０５に進み、それ以外の場合には、ステップＳ１６０９へ進む。ＩＰアドレス［ＩＰｂ］及び［ＩＰａ］が一致することは、宅内装置Ａがルータを介さずに外部ネットワークに接続されており、宅内装置Ａ及びサーバ１の間でＮＡＴが行われていないことを示す。
【００３９】
ステップＳ１６０４でＹｅｓである場合、宅内装置Ａは、ＴｅｓｔＩＩを実行する（ステップＳ１６０５）し、サーバ２からの応答を受信したか否かを判断する（ステップＳ１６０６）。宅内装置Ａは、サーバ２からの応答を受信した場合には（ステップＳ１６０６でＹｅｓ）、送信先装置（サーバ１）以外の通信装置からもパケットを受信することが可能、すなわち、ネットワークに対してオープンであると判断する（ステップＳ１６０８）。一方、宅内装置Ａは、サーバ２からの応答を受信しない場合（ステップＳ１６０６でＮｏ）、宅内装置Ａは、ＵＤＰファイアウォールによってパケットの送受信が制限されていると判断する（ステップＳ１６０７）。
【００４０】
ＴｅｓｔＩの結果、ＩＰアドレス［ＩＰｂ］及び［ＩＰａ］が一致しない場合には（ステップＳ１６０４でＮｏ）、宅内装置Ａは、ＴｅｓｔＩＩを実行し（ステップＳ１６０９）、パケットの宛先とは異なるサーバ２からの応答を受信したか否かを判断する（ステップＳ１６１０）。宅内装置Ａがサーバ２からの応答を受信した場合には（ステップＳ１６１０でＹｅｓ）、宅内装置Ａが接続されるルータは、Ｆｕｌｌ  Ｃｏｎｅ  ＮＡＴ特性を有すると判断する（ステップＳ１６１１）。一方、宅内装置Ａがサーバ２からの応答を受信しなかった場合には（ステップＳ１６１０でＮｏ）、宅内装置Ａは、サーバ２に対してＴｅｓｔＩを実行する（ステップＳ１６１２）。ここで、宅内装置Ａからの送信パケットにルータが割り当てるポート番号を［Ｐｂ'］とする。宅内装置Ａは、ステップＳ１６１２においてサーバ２から受信した応答パケットに含まれ、ＮＡＴによって設定されたＩＰアドレスとポート番号との組み合わせ（ＩＰｂ、Ｐｂ'）と、ステップＳ１６０１においてサーバ１から受信した応答パケットに含まれ、ＮＡＴによって設定されたＩＰアドレスとポート番号との組み合わせ（ＩＰｂ、Ｐｂ）とが一致するか否かを判断する（ステップＳ１６１３）。宅内装置Ａは、（ＩＰｂ、Ｐｂ'）が（ＩＰｂ、Ｐｂ）と一致すると判断した場合には（ステップＳ１６１３でＹｅｓ）、ステップＳ１６１５へ進む。宅内装置Ａは、（ＩＰｂ、Ｐｂ'）及び（ＩＰｂ、Ｐｂ）が一致しないと判断した場合には（ステップＳ１６１３でＮｏ）、自身が接続されるルータがＳｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有すると判断する（ステップＳ１６１４）。
【００４１】
ステップＳ１６１３においてＹｅｓである場合、宅内装置Ａは、ＴｅｓｔＩＩＩを実行し（ステップＳ１６１５）、サーバ１から応答を受信したか否かを判断する（ステップＳ１６１６）。宅内装置Ａは、サーバ１から応答を受信した場合（ステップＳ１６１６でＹｅｓ）、自身が接続されるルータがＲ  ＮＡＴ特性を有すると判断し（ステップＳ１６１７）、それ以外の場合には、自身が接続されるルータがＰＲ  ＮＡＴ特性を有すると判断する（ステップＳ１６１８）。
【００４２】
上述のように、ＳＴＵＮに規定された方法においては、図２６に示される処理フローに従い、図２５Ａ〜図２５Ｃに示される３種類のテストのいくつかを組み合わせて実行することによって、ＮＡＴの特性が調査される。
【００４３】
また、ＳＴＵＮには、上述したＮＡＴ特性の調査の結果、２つの通信装置が共にＣｏｎｅ  ＮＡＴ特性を有するルータに接続されている場合、更に当該２つの通信装置間にＰ２Ｐ通信路を確立する手法も規定されている。以下、図２７を参照しながら、ＳＴＵＮに規定されているＰ２Ｐ通信路確立手法について説明する。
【００４４】
図２７は、ＳＴＵＮを利用するＰ２Ｐ通信路確立方法を示すシーケンス図である。
【００４５】
まず、装置１は、ＩＰアドレス及びポート番号の登録を要求するためのＩＰ／ポート登録要求パケットを、ルータ１を介してサーバへ送信する（ステップＳ１７０１）。ルータ１は、装置１から受信したパケットの発信元を（ＩＰＬ１、ＬＰ１）から（ＩＰＧ１、ＧＰ１）へとアドレス変換し、アドレス変換されたパケットをサーバへ送信する。サーバは、ルータ１から受信したパケットに含まれる発信元ＩＰアドレスＩＰＧ１及び発信元ポート番号ＧＰ１を登録する（ステップＳ１７０２）。
【００４６】
同様に、装置２は、ＩＰ／ポート登録要求パケットを、ルータ２を介してサーバへ送信する（ステップＳ１７０３）。ルータ２は、装置２から受信したパケットの発信元を（ＩＰＬ２、ＬＰ２）から（ＩＰＧ２、ＧＰ２）へとアドレス変換し、アドレス変換されたパケットをサーバ２へ送信する。サーバは、ルータ２から受信したパケットに含まれる発信元ＩＰアドレスＩＰＧ１及び発信元ポート番号ＧＰ１を登録する（ステップＳ１７０４）。
【００４７】
次に、装置２は、装置１とＰ２Ｐ通信するために必要な情報を取得するために、装置１のＩＰアドレス及びポート番号の送信を要求するＩＰ／ポート取得要求をサーバへ送信する（ステップＳ１７０５）。サーバは、装置２からのＩＰ／ポート取得要求に応答して、ルータ１が装置１の発信元（ＩＰＬ１、ＬＰ１）に割り当てたＩＰアドレス及びポート番号の組み合わせ（ＩＰＧ１、ＧＰ１）を含むＩＰ／ポート取得応答パケットを装置２へ返送する（ステップＳ１７０６）。
【００４８】
装置２は、サーバから受信したパケットを参照して、装置１にアクセスするためのＩＰアドレス及びポート番号（ＩＰＧ１、ＧＰ１）を取得する。そこで、装置２は、（ＩＰＧ１、ＧＰ１）を宛先とするＰ２Ｐ開始要求パケットを送信する（ステップＳ１７０７）。
【００４９】
ここで、装置２から送信されたＰ２Ｐ開始要求パケットに対するルータ１の対応は、ルータ１が備えるＮＡＴ特性に応じて異なる。
【００５０】
まず、ルータ１がＦｕｌｌ  Ｃｏｎｅ  ＮＡＴ（図２３Ａ）を実行する場合、ルータ１が装置２から送信されたＰ２Ｐ要求パケットを装置１へと転送することによって、装置１と装置２との間にＰ２Ｐ通信路が確立する。
【００５１】
次に、ルータ１がＲ  ＮＡＴ（図２３Ｂ）またはＰＲ  ＮＡＴ（図２３Ｃ）を実行する場合、ルータ１は、装置２から送信されたＰ２Ｐ開始要求パケットを破棄する。したがって、当該Ｐ２Ｐ開始要求パケットは、装置１（ＩＰＬ１、ＬＰ１）へ転送されることはない。
【００５２】
ここで注目すべきは、Ｃｏｎｅ  ＮＡＴ特性を有するルータ２は、発信元に（ＩＰＬ２、ＬＰ２）が設定され、かつ、宛先に（ＩＰＧ１、ＧＰ１）が設定されたパケットをルータ１へと転送することによって、ルータ１からの応答パケットを受け付けることができるようにＮＡＴを設定する点である。すなわち、ルータ２がＦｕｌｌ  Ｃｏｎｅ  ＮＡＴを実行する場合には、ルータ２は、全ての宅外装置がルータ２（ＩＰＧ２、ＧＰ２）へと発信したパケットを装置２（ＩＰＬ２、ＬＰ２）に転送するようにＮＡＴを設定する。ルータ２がＲ  ＮＡＴ特性を有する場合には、ルータ２は、発信元ＩＰアドレスが［ＩＰＧ１］であるパケットを装置２（ＩＰＬ２、ＬＰ２）に転送するようにＮＡＴを設定する。ルータ２がＰＲ  ＮＡＴ特性を有する場合には、発信元ＩＰアドレス及び発信元ポート番号が（ＩＰＧ１、ＧＰ１）であるパケットを装置２（ＩＰＬ２、ＬＰ２）に転送するようにＮＡＴを設定する。この結果、次に、発信元ＩＰアドレス及び発信元ポート番号が（ＩＰＧ１、ＧＰ１）であるパケットをルータ２が受信すれば、ルータ２は、当該パケットを装置２に転送することができるので、装置１及び装置２の間にＰ２Ｐ通信路を確立可能な状態となる。
【００５３】
そこで、装置１は、装置２にアクセスするために必要な情報を取得するために、ＩＰ／ポート取得要求をサーバへ送信する（ステップＳ１７０８）。サーバは、装置１からのＩＰ／ポート取得要求に応答して、ルータ２が装置１の発信元（ＩＰＬ１、ＬＰ１）に割り当てたＩＰアドレス及びポート番号（ＩＰＧ２、ＧＰ２）を含むパケットを、ＩＰ／ポート取得応答として装置２に返信する（ステップＳ１７０９）。
【００５４】
装置１は、サーバから受信したＩＰ／ポート取得応答を参照して、装置２のＩＰアドレス及びポート番号（ＩＰＬ２、ＰＬ２）に割り当てられているルータ２のＩＰアドレス及びポート番号（ＩＰＧ２、ＧＰ２）を取得する。
【００５５】
次に、装置１は、発信元が（ＩＰＬ１、ＬＰ１）に設定されたＰ２Ｐ開始要求パケットを装置２へと送信する（ステップＳ１７１０）。上述したように、この段階においては、ルータ２は、発信元ＩＰアドレス及び発信元ポート番号が（ＩＰＬ１、ＬＰ１）であるパケットを破棄することなく、装置２へと転送する。一方、ルータ１は、発信元に（ＩＰＬ１、ＬＰ１）が設定されたとするパケットを、ルータ２へと転送することによって、ルータ２からの応答パケットを受け付けることができるようにＮＡＴを設定することができる。すなわち、ルータ１がＲ  ＮＡＴを実行する場合には、ルータ１は、発信元ＩＰアドレスが［ＩＰＧ２］であるパケットを装置１（ＩＰＬ１、ＬＰ１）に転送するように設定する。ルータ１がＰＲ  ＮＡＴを実行する場合には、発信元ＩＰアドレス及び発信元ポート番号が（ＩＰＧ２、ＧＰ２）であるパケットを装置２（ＩＰＬ２、ＬＰ２）に転送するように設定する。
【００５６】
したがって、装置２が、装置１からのＰ２Ｐ開始要求パケットに応答して、Ｐ２Ｐ開始応答パケットを装置１に送信すると（ステップＳ１７１１）、装置１及び装置２の間にＰ２Ｐ通信路が確立される。
【００５７】
上記のようなＳＴＵＮを利用する手法によれば、異なるプライベートネットワークに接続される２つの通信装置が共にＣｏｎｅ  ＮＡＴ特性を有するルータに接続されている場合には、当該２つの通信装置間にＰ２Ｐ通信路を確立することが可能である。
【００５８】
しかしながら、２つの通信装置がＳｙｍｍｅｔｒｉｃ  ＮＡＴを介して接続されている場合には、ＳＴＵＮを利用する手法によって、Ｐ２Ｐ通信路を確立することができない。以下、この理由を説明する。
【００５９】
図２８は、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有するルータを介して接続される２つの通信装置に、ＳＴＵＮを利用するＰ２Ｐ通信路確立方法を適用した場合の処理手順を示すシーケンス図である。より特定的には、図２８に示される例においては、あるプライベートネットワークに接続される装置１は、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴを実行するルータ１を介して外部ネットワークに接続されている。
【００６０】
まず、ステップＳ１８０１〜Ｓ１８０４において、図２７に示されるステップＳ１７０１〜Ｓ１７０４と同様に、装置１及び装置２の各々は、サーバへとＩＰ／ポート登録要求パケットを送信することによって、ＩＰアドレス及びポート番号をサーバに登録する。
【００６１】
次に、装置２は、装置１とＰ２Ｐ通信するために用いるＩＰアドレス及びポート番号を取得するために、ＩＰ／ポート取得要求パケットをサーバへ送信する（ステップＳ１８０５）。サーバは、装置２からのＩＰ／ポート取得要求に応答して、ルータ１によって発信元ＩＰアドレス及び発信元ポート番号（ＩＰＬ１、ＬＰ１）に割り当てられたＩＰアドレス及びポート番号（ＩＰＧ１、ＧＰ１）を含むＩＰ／ポート取得応答パケットを装置２へ返送する（ステップＳ１８０６）。
【００６２】
装置２は、サーバから受信したパケットを参照して、装置１のＩＰアドレス及びポート番号（ＩＰＧ１、ＧＰ１）を取得する。そこで、装置２は、（ＩＰＧ１、ＧＰ１）を宛先とするパケットを、Ｐ２Ｐ開始要求として送信する（ステップＳ１８０７）。
【００６３】
ここで、ルータ１がＳｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有する場合、ルータ１は、Ｐ２Ｐ開始要求パケットを装置１（ＩＰＬ１、ＬＰ１）に転送することなく破棄する。また、上述したように、Ｃｏｎｅ  ＮＡＴを実行するルータ２は、発信元に（ＩＰＬ２、ＬＰ２）が設定され、かつ、宛先に（ＩＰＧ１、ＧＰ１）が設定されたパケットをルータ１へと転送することによって、ルータ１からの応答パケットを受け付けることができるようにＮＡＴを設定する。
【００６４】
次に、装置１は、装置２にアクセスするために必要な情報を取得するために、ＩＰ／ポート取得要求をサーバへ送信する（ステップＳ１８０８）。サーバは、装置１からのＩＰ／ポート取得要求に応答して、ルータ２が装置２の発信元ＩＰアドレス及び発信元ポート番号（ＩＰＬ２、ＬＰ２）に割り当てたＩＰアドレス及びポート番号（ＩＰＧ２、ＧＰ２）を含むパケットを、ＩＰ／ポート取得応答として装置２に返信する（ステップＳ１８０９）。
【００６５】
装置１は、サーバから受信したＩＰ／ポート取得応答を参照して、装置２のＩＰアドレス及びポート番号（ＩＰＬ２、ＰＬ２）に割り当てられているルータ２のＩＰアドレス及びポート番号（ＩＰＧ２、ＧＰ２）を取得する。
【００６６】
次に、装置１は、発信元を（ＩＰＬ１、ＬＰ１）とするパケットを、Ｐ２Ｐ開始要求として、装置２へと送信する（ステップＳ１８１０）。しかしながら、ルータ１は、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有するため、パケットの宛先毎に異なるポート番号を割り当てる。したがって、ルータ１は、装置１から受信したＰ２Ｐ開始要求パケットには、［ＧＰ１］とは異なるポート番号［ＧＰ３］を割り当て、当該パケットをルータ２へと転送する。
【００６７】
ここで、ルータ２がＦｕｌｌ  Ｃｏｎｅ  ＮＡＴ特性またはＲ  ＮＡＴ特性を有する場合には、ルータ２は、受信したＰ２Ｐ開始要求パケットを装置２（ＩＰＬ２、ＬＰ２）に転送するので、装置１及び装置２の間にＰ２Ｐ通信路が確立される。
【００６８】
しかしながら、ルータ２がＰＲ  ＮＡＴまたはＳｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有する場合には、ルータ２は、受信したＰ２Ｐ開始要求パケットを装置２に転送することなく破棄するため、装置１及び装置２の間におけるＰ２Ｐ通信路の確立に失敗する。
【００６９】
図２９は、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有するルータを介して接続される２つの通信装置に、ＳＴＵＮを利用するＰ２Ｐ通信路確立方法を適用した場合の処理手順を示すシーケンス図である。より特定的には、図２９に示される例においては、あるプライベートネットワークに接続される装置２は、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴを実行するルータ２を介して外部ネットワークに接続されている。
【００７０】
まず、ステップＳ１９０１〜Ｓ１９０４において、図２７に示されるステップＳ１７０１〜Ｓ１７０４と同様に、装置１及び装置２の各々は、サーバへとＩＰ／ポート登録要求パケットを送信することによって、ＩＰアドレス及びポート番号をサーバに登録する。
【００７１】
次に、装置２は、装置１とＰ２Ｐ通信するためのＩＰアドレス及びポート番号を取得するために、ＩＰ／ポート取得要求パケットをサーバへ送信する（ステップＳ１９０５）。サーバは、装置２からのＩＰ／ポート取得要求に応答して、ルータ１によって発信元ＩＰアドレス及び発信元ポート番号（ＩＰＬ１、ＬＰ１）に割り当てられたＩＰアドレス及びポート番号（ＩＰＧ１、ＧＰ１）を含むＩＰ／ポート取得応答パケットを装置２へ返送する（ステップＳ１９０６）。
【００７２】
装置２は、サーバから受信したパケットを参照して、装置１にアクセスするためのＩＰアドレス及びポート番号（ＩＰＧ１、ＧＰ１）を取得する。そこで、装置２は、（ＩＰＧ１、ＧＰ１）を宛先とするパケットを、Ｐ２Ｐ開始要求として送信する（ステップＳ１９０７）。
【００７３】
ここで、ステップＳ１９０７において装置２から送信されたＰ２Ｐ開始要求パケットの宛先は、ステップＳ１９０３において装置２から送信されたＩＰ／ポート登録要求パケットの宛先と異なる。したがって、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴを実行するルータ２は、当該Ｐ２Ｐ開始要求パケットに、ポート番号［ＧＰ２］とは異なるポート番号［ＧＰ３］を割り当てる。すなわち、ルータ２は、（ＩＰＧ２、ＧＰ３）を宛先として装置１が送信したパケットを、装置２（ＩＰＬ２、ＬＰ２）へと転送するようにＮＡＴを設定する。
【００７４】
それ故に、装置１がサーバから装置２へアクセスするためのＩＰアドレス及びポート番号（ＩＰＧ２、ＧＰ２）を取得した後に（ステップＳ１９０８〜Ｓ１９０９）、（ＩＰＧ２、ＧＰ２）を宛先とするＰ２Ｐ開始要求パケットを送信しても、ルータ２は、当該Ｐ２Ｐ開始要求パケットを破棄する。したがって、装置１及び装置２の間におけるＰ２Ｐ通信路の確立に失敗する。
【００７５】
以上説明したように、ルータ１またはルータ２の少なくとも一方がＳｙｍｍｅｔｒｉｃ
ＮＡＴを実行する場合、ＳＴＵＮに規定されるＰ２Ｐ通信路確立方法が成功する可能性は高いとは言い難い。
【００７６】
上記のＳＴＵＮの問題点に対し、従来、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴを含む全てのＮＡＴの中で、任意の２つのＮＡＴの組み合わせに対して、Ｐ２Ｐ通信路を確立する方法が知られている（例えば、特開２００４−１８０００３号公報参照）。
【００７７】
特開２００４−１８０００３号公報に記載されているＰ２Ｐ通信路確立方法においては、ある通信装置は、Ｐ２Ｐ通信の接続先となる通信装置がＰ２Ｐ開始要求パケットを送信する際に使用するルータのポート番号を複数予測し、予測したポート番号を宛先ポートとするパケットを複数送信する。当該通信装置が接続されるルータは、接続先通信装置から送信されるパケットを受信することができるポート番号を複数設定するため、Ｐ２Ｐ通信路の確立が成功する可能性を向上させることができる。以下、更なる詳細について説明する。
【００７８】
図３０は、上記特許文献に記載されている従来のＰ２Ｐ通信路確立方法を示すシーケンス図である。図３０に示される例においては、ルータ１及びルータ２は共に、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有する。
【００７９】
まず、ステップＳ２００１〜Ｓ２００４において、図２７に示されるステップＳ１７０１〜Ｓ１７０４と同様に、装置１及び装置２の各々は、サーバへとＩＰ／ポート登録要求パケットを送信することによって、ＩＰアドレス及びポート番号をサーバに登録する。
【００８０】
次に、装置２は、装置１とＰ２Ｐ通信するために、Ｐ２Ｐ通信要求パケットをサーバに送信する（ステップＳ２００５）。このとき、装置２は、発信元ポート番号を、ステップＳ２００３においてＩＰ／ポート登録要求パケットの送信に使用したポート番号［ＬＰ２］からポート番号［ＬＰ２＋ａ］へと変更する（ただし、ａは、任意の整数である）。装置２が新たなポート番号［ＬＰ２＋ａ］を発信元ポートとして使用する理由は、発信元ポート番号の変更に伴って、ルータ２が発信元（ＩＰＬ２、ＬＰ２＋ａ）に新たなポート番号［ＧＰ２＋ｂ］を割り当てると予測されるからである（ただし、ｂは、任意の整数であって、かつ、ルータ２において定められている増分値である）。
【００８１】
サーバは、Ｐ２Ｐ通信要求パケットを受信すると、受信したパケットを参照して、ルータ２が発信元（ＩＰＬ２、ＬＰ２＋ａ）に割り当てたＩＰアドレス及びポート番号（ＩＰＧ２、ＧＰ２＋ｂ）を含むパケットを、ＩＰ／ポート通知として装置１に送信する（ステップＳ２００６）。
【００８２】
装置１は、サーバから送信されたＩＰ／ポート通知パケットを受信すると、装置２にＰ２Ｐ通信を許可するか否かを判断し、判断結果をサーバに通知する（ステップＳ２００７）。このとき、装置１は、発信元ポート番号を、ステップＳ２００１でＩＰ／ポート登録要求パケットの送信に使用した［ＬＰ１］から［ＬＰ１＋ｃ］へと変更する（ただし、ｃは、任意の整数である）。装置１が新たなポート番号［ＬＰ１＋ｃ］を発信元ポートとして使用する理由は、ルータ１が発信元（ＩＰＬ、ＬＰ１＋ｃ）に新たなポート番号［ＧＰ１＋ｄ］を割り当てると予測されるからである（ただし、ｄは、任意の整数であって、ルータ１において定められている増分値である）。
【００８３】
続いて、装置１は、受信したＩＰ／ポート通知パケットから取得したＩＰアドレス及びポート番号（ＩＰＧ２、ＧＰ２＋ｂ）に基づき、宛先に（ＩＰＧ２、ＧＰ２＋ｂ＋ｎ）が設定されたＰ２Ｐ開始要求パケットをサーバに送信する（ステップＳ２００８）。ただし、ｎは、任意の整数である。
【００８４】
装置１は、ステップＳ２００７及びＳ２００８において、きわめて短時間の間に連続してパケットを送信する。したがって、ステップＳ２００７において送信されたパケットの発信元ポート番号［ＬＰ１＋ｃ］が［ＧＰ１＋ｄ］へと変換される場合、ルータ１におけるＮＡＴの設定に従い、ステップＳ２００８において送信されたパケットの発信元ポート番号［ＬＰ１＋ｃ＋１］は、［ＧＰ１＋ｄ＋１］へと変換される。
【００８５】
更に、ステップＳ２００８において装置１がパケットを送信した結果、ルータ１は、応答パケットを受信することができるように設定を変更する。すなわち、ルータ１が装置１から送信されたパケットの発信元（ＩＰＬ１、ＬＰ１＋ｃ＋１）を（ＩＰＧ１、ＧＰ１＋ｄ＋１）に変換して、当該パケットをルータ２（ＩＰＧ２、ＧＰ２＋ｂ＋ｎ）へと転送した後には、ルータ１は、送信元が（ＩＰＧ２、ＧＰ２＋ｂ＋ｎ）であるパケットを装置１（ＩＰＬ１、ＬＰ１＋ｃ＋１）へと転送することができる。尚、装置１が、取得した宛先ポート番号から任意の整数値ｎだけインクリメントされたポート番号へとパケットを送信する理由については後述する。
【００８６】
一方、サーバは、ステップＳ２００７において装置１から送信されたＰ２Ｐ通信許可パケットを受信すると、ルータ１のＩＰアドレス及びポート番号（ＩＰＧ１、ＧＰ１＋ｄ）を含む通信許可パケットを装置２に送信する（ステップＳ２００９）。
【００８７】
次に、装置２は、装置１にアクセスするためのＩＰアドレス及びポート番号（ＩＰＧ１、ＧＰ１＋ｄ）を受信するとすぐに、装置１へとＰ２Ｐ開始要求パケットを送信する（ステップＳ２０１０）。ステップＳ２０１０において、装置２は、発信元ポート番号を［ＬＰ２＋ａ＋１］から１ずつインクリメントしながら、ルータ１のポート番号［ＧＰ１＋ｄ＋１］を宛先ポートとするｎ個のＰ２Ｐ開始要求パケットを送出する。ルータ２は、装置２から送信されたｎ個のＰ２Ｐ開始要求パケットの各々の発信元ポート番号を、それぞれ、［ＧＰ２＋ｂ＋ｍ］〜［ＧＰ２＋ｍ＋ｎ−１］に変換する。ここで、ｎは、ステップＳ２００８〜Ｓ２０１０が実行される間の若干の経過時間において、ルータ１に接続される他の装置（図示せず）から送信されるパケットによってＮＡＴの設定が変更される可能性を考慮して定められる値である。また、ｍは、ｎ以下の整数である。
【００８８】
結果として、ステップＳ２００８において装置１から送信されたパケットの宛先ポート番号［ＧＰ２＋ｂ＋ｎ］は、［ＧＰ２＋ｂ＋ｍ］〜［ＧＰ２＋ｂ＋ｍ＋ｎ−１］のいずれか１つと一致する。それ故に、ルータ１は、受信したｎ個のＰ２Ｐ開始要求パケットの１つを装置１へと転送する（ステップＳ２０１０−２）。図３０においては、ポート番号［ＧＰ２＋ｂ＋ｎ］及び［ＧＰ２＋ｂ＋ｍ＋２］が一致した場合の例が示されている。
【００８９】
装置１は、ルータ１から転送されたＰ２Ｐ開始要求パケットを受信すると、Ｐ２Ｐ開始応答パケットを返信する（ステップＳ２０１１）。ステップＳ２０１０−２においてＮＡＴの設定が調整されたルータ２は、装置１から送信されたＰ２Ｐ開始応答パケットを装置２へと転送すると、装置１と装置２の間にＰ２Ｐ通信路が確立される。
【００９０】
上記のように、各々が異なるプライベートネットワークに接続される２つの通信装置間にＰ２Ｐ通信路を確立する方法として、ＳＴＵＮを利用する方法と、上記特許文献に開示される方法とが知られている。
【特許文献１】特開２００４−１８０００３号公報
【発明の開示】
【発明が解決しようとする課題】
【００９１】
しかしながら、上記の従来のＰ２Ｐ通信路確立方法には、それぞれ以下に述べるような問題点がある。
【００９２】
まず、ＳＴＵＮを利用する方法においては、次の２つの問題がある。第１に、通信装置が接続されるルータのＮＡＴ特性を調査するために必要なサーバ（ＳＴＵＮサーバ）の運用と保守に困難を要する。上述のように、ＳＴＵＮテストを実行するためには、常時ポートが開かれたサーバを２台用意する必要がある。サーバにおいて常時ポートを開いている状態は、悪意のある者からの不正アクセスや攻撃を受ける危険性を含んでおり、開くポートの数が多くなるにつれて、また、利用されるサーバの数が多くなるにつれて危険性も高まる。このため、ＩＰアドレスが互いに異なる２台のサーバ（ＡＳ  ＮＡＴ調査用）を用意し、かつ、一方のサーバにおいて互いに異なる２つのポート（ＰＳ  ＮＡＴ調査用）を常時開く必要のあるＳＴＵＮでは、サーバの運用及び保守に困難を要する。第２に、ＳＴＵＮによる方法は、２つの通信装置のいずれか一方が、Ｃｏｎｅ  ＮＡＴ以外のＮＡＴ特性を有するルータに接続されている場合には、Ｐ２Ｐ通信路を確立することができない。
【００９３】
一方、上記特許文献に開示される手法においては、確かに、通信装置が接続されるルータのＮＡＴ特性（すなわち、Ｃｏｎｅ  ＮＡＴまたはＳｙｍｍｅｔｒｉｃ  ＮＡＴ）に依存することなく、Ｐ２Ｐ通信路の確立が成功する可能性が向上する。より詳細には、装置２が次にパケットを送出した際に、装置１は、サーバから通知されたルータ２のＷＡＮ側ポート番号に基づいて、ルータ１内で割り当てられる可能性のあるポート番号を予測する。装置２は、ルータ２によって割り当てられるポート番号と、装置１に予測されるポート番号とが一致する可能性を高めるために、複数個のパケットを送出する。
【００９４】
しかしながら、２つの通信装置の両方がＦｕｌｌ  Ｃｏｎｅ  ＮＡＴ特性を有するルータに接続されている場合には、容易にポート番号を予測することができるため、一方の通信装置から複数個のパケットを送出する必要はない。逆に、一方の通信装置が複数個のパケットを送出することによって、次のような問題が生じる。第１に、複数の無駄なパケットを送出することによって、通信路確立に要する時間が増加する。第２に、通信装置に接続されるルータが侵入検知機能を有する場合には、当該ルータが、通信に使用されないポート番号を宛先とする複数のパケットを受信した際に、受信パケットが不正アクセスを企むパケットであると誤検知する可能性がある。侵入検知機能を有するルータは、不正アクセスを検知すると、受信したパケットを全て破棄するので、ルータに接続される通信装置が通信不能となる虞があり、結果として接続性が低下する。
【００９５】
本発明は、ＮＡＴの特性を、１つのＩＰアドレスを有し、１つのポートを開いている１台のサーバを用いて調査することができる通信装置、通信方法及び通信システムを提供することを目的とする。更に、調査されたＮＡＴ特性に基づいて、ＮＡＴ特性に応じた最適な接続手順によって、Ｐ２Ｐ通信路を確立することができる通信装置、通信システム及び通信方法を提供することを目的とする。この結果、２つの装置同士を接続する際の接続時間及び接続性を改善する。
【課題を解決するための手段】
【００９６】
本発明の第１の局面は、ＮＡＴ（ネットワークアドレス変換）機能を有する第１の中継装置を介してサーバに接続される通信装置であって、通信装置のローカルポート番号であって互いに異なるポート番号が発信元ポート番号に設定され、かつ、サーバのポート番号であって互いに同一のポート番号が宛先ポート番号に設定された複数のアドレス情報調査要求パケットを、サーバに１つずつ送信するアドレス情報調査要求送信部と、アドレス情報調査要求送信部が最初のアドレス情報調査要求パケットを送信した後、最後のアドレス情報調査要求パケットを送信する前までの間に、複数のアドレス情報調査要求パケットのいずれかの発信元ポート番号と同一のポート番号が発信元ポート番号に設定された通信準備パケットを、サーバとは異なる宛先に送信する通信準備要求送信部と、アドレス情報調査要求パケットに応答してサーバから返送され、かつ、第１の中継装置においてアドレス情報調査要求パケットの発信元ポート番号から変換された中継ポート番号を含むアドレス情報調査応答パケットを、アドレス情報調査要求パケットと同じ数だけ受信するアドレス情報受信部とを備える。
【００９７】
このような構成によれば、通信装置は、アドレス情報調査応答パケットに含まれる中継ポート番号を取得することにより、サーバとは異なる宛先に送信した通信準備要求パケットに割り当てられた中継ポート番号を把握できる。これにより、通信装置は、異なる宛先に送信された２種類のパケットのポート番号変換特性、つまり第１の中継装置のＮＡＴ特性を判断することが可能なポート番号変換特性を把握することができる。
【００９８】
また、本発明に係る通信装置は、アドレス情報受信部において受信した各アドレス情報調査応答パケットに含まれる中継ポート番号に基づいて、第１の中継装置のＮＡＴ特性を判断する中継特性判断部を更に備えても良い。
【００９９】
このような構成によれば、通信装置は、異なる宛先に送信され２種類のパケットのポート番号変換特性に基づいて、第１の中継装置のＮＡＴ特性を判断することが可能となる。
【０１００】
アドレス情報調査要求送信部は、宛先ポート番号にサーバのポート番号が設定され、かつ、発信元ポート番号に通信装置の第１のローカルポート番号が設定された第１のアドレス情報調査要求パケットと、宛先ポート番号が第１のアドレス情報調査要求パケットと同一であり、かつ、発信元ポート番号に第１のローカルポート番号とは異なる通信装置の第２のローカルポート番号が設定された第２のアドレス情報調査要求パケットと、宛先ポート番号が第１のアドレス情報調査要求パケットと同一であり、かつ、発信元ポート番号に第１及び第２のローカルポート番号とは異なる通信装置の第３のローカルポート番号が設定された第３のアドレス情報調査要求パケットとを１つずつ送信し、アドレス情報受信部は、第１のアドレス情報調査要求パケットに応答してサーバから返送され、第１の中継装置の第１の中継ポート番号を含む第１のアドレス情報パケットと、第２のアドレス情報調査要求パケットに応答してサーバから返送され、第１の中継装置の第２の中継ポート番号を含む第２のアドレス情報パケットと、第３のアドレス情報調査要求パケットに応答してサーバから返送され、第１の中継装置の第３の中継ポート番号を含む第３のアドレス情報パケットとを受信し、中継特性判断部は、第１と第２の中継ポート番号から計算される第１の差分値と、第２と第３の中継ポート番号から計算される第２の差分値とを計算し、第１及び第２の差分値の比較に基づいて、第１の中継装置のＮＡＴ特性を判断しても良い。
【０１０１】
このような構成によれば、ＮＡＴ機能によるポート割り当て間隔の規則性を利用して、第１の中継装置のＮＡＴ特性を効率的に判断することができる。
【０１０２】
更に、サーバには、ＮＡＴ機能を有する第２の中継装置を介して、接続先通信装置が接続されており、通信装置は、中継特性判断部によって判定された第１の中継装置のＮＡＴ特性に基づいて、接続先通信装置とのピア・ツー・ピア通信に第１の中継装置が割り当てる第１のＰ２Ｐ中継ポート番号を予測し、予測した第１のＰ２Ｐ中継ポート番号を含む第１の中継情報パケットをサーバに送信する中継情報送信部と、接続先通信装置とのピア・ツー・ピア通信に第２の中継装置が割り当てる第２のＰ２Ｐ中継ポート番号を含む第２の中継情報パケットを、サーバから受信する中継情報受信部と、接続先通信装置にピア・ツー・ピア通信の開始を要求するために、第２の中継情報パケットに含まれる第２のＰ２Ｐ中継ポート番号を宛先ポート番号に設定した開始要求パケットを送信する通信制御部とを更に備えていても良い。
【０１０３】
このような構成によれば、通信装置は、接続先通信装置とＰ２Ｐ通信を行う際に第１の中継装置が開くと予想されるポート番号を接続先通信装置に通知すると共に、開始要求パケットを送信して、第１の中継装置上にＰ２Ｐ通信用のポート番号を用意する。したがって、通信装置は、接続先通信装置からのＰ２Ｐ開始要求パケットの受信を契機として、Ｐ２Ｐ通信を開始することが可能となる。
【０１０４】
この場合、中継情報送信部は、中継特性判断部が、第１及び第２の差分値が同じ値であると判断した場合に、第１〜第３の中継ポート番号のうちいずれか１つを第１のＰ２Ｐ中継ポート番号として含む第１の中継情報パケットを送信し、中継特性判断部が、第１及び第２の差分値が不一致であると判断した場合に、第３の中継ポート番号と、第１及び第２の差分値のうちいずれか小さい方とを加算した値を第１のＰ２Ｐ中継ポート番号として含む第１の中継情報パケットを送信しても良い。
【０１０５】
このような構成によれば、通信装置は、第１及び第２の差分値が同じ値である場合に、第１の中継装置がＣｏｎｅ  ＮＡＴ特性を有することを考慮して決定したポート番号を接続先通信装置に通知し、第１及び第２の差分値が不一致である場合に、第１の中継装置がＳｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有することを考慮して決定したポート番号を接続先通信装置に通知するので、接続先通信装置からの送信パケットが第１の中継装置を超えてパケットを伝送できる可能性を高めることができる。
【０１０６】
あるいは、中継情報送信部は、中継特性判断部が、第１の中継ポート番号及び第１のローカルポート番号が一致すると判断した場合に、任意のローカルポート番号を第１のＰ２Ｐ中継ポートとして含む第１の中継情報パケットを送信しても良い。
【０１０７】
このような構成によれば、通信装置は、第１の中継装置がＰｏｒｔ  Ｒｅｕｓｅ特性を有すること考慮して決定したポート番号を接続先通信装置に通知するので、接続先通信装置からの送信パケットが第１の中継装置を超えてパケットを伝送できる可能性を高めることができる。
【０１０８】
更に、通信準備要求送信部は、通信準備パケットが第１の中継装置に到達し、かつ、第２の中継装置には到達しないように、通信準備パケットのヘッダに含まれるＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）の値を調整することが好ましい。
【０１０９】
このような構成によれば、通信準備パケットが通信相手に接続される第２の中継装置に届かないため、第２の中継装置が侵入検知機能を有している場合に、通信準備パケットが不正侵入であると誤検知されることを回避できる。
【０１１０】
また、通信装置は、第１及び第２の差分値を保持するための記憶部を更に備えても良い。この場合、２回目以降のピア・ツー・ピア通信開始前において、中継特性判断部は、記憶部に保持される第１及び第２の差分値から第１の中継装置のＮＡＴ特性を判断しても良い。
【０１１１】
このような構成によれば、通信装置は、記憶部に保持される第１及び第２の差分を再利用することができるので、通信装置が２回目以降にＰ２Ｐ通信を行う際に、再度のアドレス調査要求パケットの送信の省略が可能となり、Ｐ２Ｐ通信路の確立に要する時間を短縮できる。
【０１１２】
アドレス情報調査要求送信部は、宛先ポート番号にサーバのポート番号が設定され、かつ、発信元ポート番号に通信装置の第４のローカルポート番号が設定された第４のアドレス情報調査要求パケットを送信し、アドレス情報受信部は、第４のアドレス情報調査要求パケットに応答してサーバから返送され、第１の中継装置の第４の中継ポート番号を含む第４のアドレス情報パケットを受信し、中継情報送信部は、中継特性判断部が、記憶部に保持される第１及び第２の差分値が同じ値であると判断した場合、第４の中継ポート番号を第１のＰ２Ｐ中継ポート番号として含む第１の中継情報パケットを送信し、中継特性判断部が、記憶部に保持されている第１及び第２の差分値が不一致であると判断した場合、第４の中継ポート番号と、保持されている第１及び第２の差分値のうちいずれか小さい方とを加算した値を第１のＰ２Ｐ中継ポート番号として含む第１の中継情報パケットを送信しても良い。
【０１１３】
このような構成によれば、記憶部に保持される情報と、第４の中継ポート番号とに基づいて、第１の中継装置がＰ２Ｐ通信で使用すると予測されるポート番号を効率的に求めることができる。
【０１１４】
通信装置は、第１の中継ポート番号及び第１のローカルポート番号が一致すると判断した場合に、第１の中継ポート番号及び第１のローカルポート番号が一致することを示す情報を記憶部に記憶しても良い。この場合、２回目以降のピア・ツー・ピア通信開始前において、中継特性判断部が、記憶部に第１の中継ポート番号及び第１のローカルポート番号が一致することを示す情報が保持されていると判断した場合、中継情報送信部は、任意のローカルポート番号を第１のＰ２Ｐ中継ポート番号として含む第１の中継情報パケットを送信しても良い。
【０１１５】
このような構成によれば、前回のＮＡＴ特性調査において、ルータのＮＡＴ特性がＰｏｒｔＲｅｕｓｅであった場合、今回のＰ２Ｐ通信路確立時には、ＮＡＴ特性調査を省略して、第１の中継装置がＰ２Ｐ通信で使用すると予測されるポート番号として、自身がＰ２Ｐ通信の際に開く予定の任意のローカルポート番号を接続先通信装置に通知することが可能となる。
【０１１６】
また、通信装置は、各アドレス情報調査応答パケットに含まれる中継ポート番号の間隔と、当該間隔に応じて異なるＮＡＴ特性とを対応付けした対応情報を、予め保持した記憶部を更に備え、アドレス情報調査要求送信部は、宛先ポート番号にサーバのポート番号が設定され、かつ、発信元ポート番号に通信装置の第１のローカルポート番号が設定された第１のアドレス情報調査要求パケットと、宛先ポート番号が第１のアドレス情報調査要求パケットと同一であり、かつ、発信元ポート番号に第１のローカルポート番号とは異なる通信装置の第２のローカルポート番号が設定された第２のアドレス情報調査要求パケットとを１つずつ送信し、アドレス情報受信部は、第１のアドレス情報調査要求パケットに応答してサーバから返送され、第１の中継装置の第１の中継ポート番号を含む第１のアドレス情報パケットと、第２のアドレス情報調査要求パケットに応答してサーバから返送され、第１の中継装置の第２の中継ポート番号を含む第２のアドレス情報パケットとを受信し、中継特性判断部は、対応情報において受信した第１と第２の中継ポート番号の間隔に対応するＮＡＴ特性を、第１の中継装置のＮＡＴ特性と判断しても良い。
【０１１７】
このような構成によれば、ＮＡＴ機能によるポート割り当て間隔の規則性を利用して、第１の中継装置のＮＡＴ特性を効率的に判断することができる。
【０１１８】
本発明の第２の局面は、ＮＡＴ（ネットワークアドレス変換）機能を有する第１の中継装置を介してサーバに接続される通信装置が、サーバと通信を行うことによって、第１の中継装置のＮＡＴ特性を判断する通信方法であって、通信装置のローカルポート番号であって互いに異なるポート番号が発信元ポート番号に設定され、かつ、サーバのポート番号であって互いに同一のポート番号が宛先ポート番号に設定された複数のアドレス情報調査要求パケットを、サーバに１つずつ送信するアドレス情報調査要求送信ステップと、アドレス情報調査要求送信ステップにおいて最初のアドレス情報調査要求パケットが送信された後、最後のアドレス情報調査要求パケットが送信される前までの間に、複数のアドレス情報調査要求パケットのいずれかの発信元ポート番号と同一のポート番号が発信元ポート番号に設定された通信準備パケットを、サーバとは異なる宛先に送信する通信準備要求送信ステップと、アドレス情報調査要求パケットに応答してサーバから返送され、かつ、第１の中継装置においてアドレス情報調査要求パケットの発信元ポート番号から変換された中継ポート番号を含むアドレス情報調査応答パケットを、アドレス情報調査要求パケットと同じ数だけ受信するアドレス情報受信ステップと、アドレス情報受信ステップにおいて受信した各アドレス情報調査応答パケットに含まれる中継ポート番号に基づいて、第１の中継装置のＮＡＴ特性を判断する中継特性判断ステップとを備える。
【０１１９】
このような構成によれば、通信装置は、アドレス情報調査応答パケットに含まれる中継ポート番号を取得することにより、サーバとは異なる宛先に送信した通信準備要求パケットに割り当てられた中継ポート番号を把握できる。これにより、通信装置は、異なる宛先に送信された２種類のパケットのポート番号変換特性を把握することができ、当該ポート番号変換特性に基づいて第１の中継装置のＮＡＴ特性を判断することが可能となる。
【０１２０】
本発明の第３の局面は、サーバと、ＮＡＴ（ネットワークアドレス変換）機能を有する第１の中継装置と、ＮＡＴ機能を有する第２の中継装置と、第１の中継装置を介してサーバに接続される第１の通信装置と、第２の中継装置を介してサーバに接続される第２の通信装置とを備える通信システムに向けられている。第１及び第２の通信装置の各々は、自装置のローカルポート番号であって互いに異なるポート番号が発信元ポート番号に設定され、かつ、サーバのポート番号であって互いに同一のポート番号が宛先ポート番号に設定された複数のアドレス情報調査要求パケットを、サーバに１つずつ送信するアドレス情報調査要求送信部と、アドレス情報調査要求送信部が最初のアドレス情報調査要求パケットを送信した後、最後のアドレス情報調査要求パケットを送信する前までの間に、複数のアドレス情報調査要求パケットのいずれかの発信元ポート番号と同一のポート番号が発信元ポート番号に設定された通信準備パケットを、サーバとは異なる宛先に送信する通信準備要求送信部と、アドレス情報調査要求パケットに応答してサーバから返送され、かつ、各々に接続される中継装置においてアドレス情報調査要求パケットの発信元ポート番号から変換された中継ポート番号を含むアドレス情報調査応答パケットを、アドレス情報調査要求パケットと同じ数だけ受信するアドレス情報受信部と、アドレス情報受信部において受信した各アドレス情報調査応答パケットに含まれる中継ポート番号に基づいて、第１の中継装置のＮＡＴ特性を判断する中継特性判断部とを含み、サーバは、第１及び第２の通信装置の各々から送信されたアドレス情報調査要求パケットに含まれる中継ポート番号を取り出すアドレス情報調査部と、取り出された中継ポート番号を含むアドレス情報調査要求応答パケットを送信するアドレス情報送信部とを含む。
【０１２１】
このような構成によれば、通信装置は、アドレス情報調査応答パケットに含まれる中継ポート番号を取得することにより、サーバとは異なる宛先に送信した通信準備要求パケットに割り当てられた中継ポート番号を把握できる。これにより、通信装置は、異なる宛先に送信された２種類のパケットのポート番号変換特性を把握することができ、当該ポート番号変換特性に基づいて第１の中継装置のＮＡＴ特性を判断することが可能となる。
【０１２２】
本発明の第４の局面は、サーバと、ＮＡＴ（ネットワークアドレス変換）機能を有する第１の中継装置と、ＮＡＴ機能を有する第２の中継装置と、第１の中継装置を介してサーバに接続される第１の通信装置と、第２の中継装置を介してサーバに接続される第２の通信装置とを備える通信システムに向けられている。第１及び第２の通信装置の各々は、自装置のローカルポート番号であって互いに異なるポート番号が発信元ポート番号に設定され、かつ、サーバのポート番号であって互いに同一のポート番号が宛先ポート番号に設定された複数のアドレス情報調査要求パケットを、サーバに１つずつ送信するアドレス情報調査要求送信部と、アドレス情報調査要求送信部が最初のアドレス情報調査要求パケットを送信した後、最後のアドレス情報調査要求パケットを送信する前までの間に、複数のアドレス情報調査要求パケットのいずれかの発信元ポート番号と同一のポート番号が発信元ポート番号に設定された通信準備パケットを、サーバとは異なる宛先に送信する通信準備要求送信部とを含み、サーバは、第１及び第２の中継装置の各々においてアドレス情報調査要求パケットの発信元ポート番号から変換された中継ポート番号に基づいて、第１及び第２の中継装置のＮＡＴ特性を判定するアドレス情報調査部を含む。
【０１２３】
このような構成によれば、第１及び第２の中継装置の各々においてアドレス情報調査要求パケットの発信元ポート番号から変換された中継ポート番号に基づいて、サーバは、第１及び第２の中継装置のＮＡＴ特性を判断することができる。
【発明の効果】
【０１２４】
本発明に係る通信装置、通信方法及び通信システムによれば、１つのＩＰアドレスを有し、１つのポートを開いている１台のサーバとの通信することによって、中継装置のＮＡＴ特性を調査することができる。これにより、ＮＡＴ特性調査に必要なハードウェア資源を節約することができるので、サーバの運用や保守を容易にし、必要なコストを最小限に抑えることが可能となる。
【０１２５】
更に、異なるプライベートネットワークに配置された通信装置同士がＰ２Ｐ通信路を確立する際に、「接続時間の短縮」と「通信不能の回避」とを実現することが可能となる。
【発明を実施するための最良の形態】
【０１２６】
（実施の形態１）
図１は、本発明の実施の形態１に係る通信システムの全体構成を示すブロック図である。
【０１２７】
図１に示されるように、プライベートネットワーク０１は、グローバルＩＰアドレス［ＩＰＧ１］を有するルータ１０１を介して、グローバルネットワーク００に接続されている。また、プライベートネットワーク０２は、グローバルＩＰアドレス［ＩＰＧ２］を有するルータ２０１を介して、グローバルネットワーク００に接続されている。グローバルネットワーク００には、グローバルＩＰアドレス［ＩＰＳ］を有するサーバ００１が接続され、プライベートネットワーク０１及び０２には、ローカルＩＰアドレス［ＩＰＬ１］を有する装置１０及びローカルＩＰアドレス［ＩＰＬ２］を有する装置２０がそれぞれ接続されている。
【０１２８】
図２Ａは、図１に示される装置１０の概略構成を示すブロック図である。
【０１２９】
装置１０は、アドレス情報調査要求送信部１００１と、アドレス情報受信部１００２と、直接通信準備要求送信部１００３と、中継特性判断部１００４と、中継情報送信部１００５と、中継情報受信部１００６と、通信制御部１００７と、通信部１００８とを備える。
【０１３０】
アドレス情報調査要求送信部１００１は、中継装置であるルータ１０１のＮＡＴ機能によって、装置１０から送信されるパケットに設定されるポート番号を調査するために、アドレス情報調査要求パケットをサーバ００１に送信する。より詳細には、アドレス情報調査要求送信部１００１は、発信元ポート番号が異なり、かつ、宛先ポート番号が同一である少なくとも３つのアドレス情報調査要求パケットをサーバ００１に送信する。
【０１３１】
アドレス情報受信部１００２は、アドレス情報調査要求パケットに応答してサーバ００１から返送されるアドレス情報調査応答パケットをサーバ００１から受信する。アドレス情報調査応答パケットは、ルータ１０１のＮＡＴ機能によって設定されたポート番号（装置１０のローカルポート番号から変換されたポート番号）をデータ部に含む。
【０１３２】
直接通信準備要求送信部１００３は、Ｐ２Ｐ通信時にルータ１０１によって割り当てられるポート番号を推測するため、アドレス情報調査要求送信部１００１が３つのアドレス情報調査要求パケットを送信する処理の間に、グローバルネットワーク００に接続される他の装置にＰ２Ｐ通信準備パケットを送信する。
【０１３３】
中継特性判断部１００４は、アドレス情報受信部１００２によって受信されたアドレス情報調査応答パケットのデータ部に含まれているポート番号に基づいて、ルータ１０１のＮＡＴ特性を判別する。
【０１３４】
中継情報送信部１００５は、中継特性判断部１００４によって判断されたルータ１０１のＮＡＴ特性に基づいて、Ｐ２Ｐ通信に使用するルータ１０１のポート番号を予測する。中継情報送信部１００５は、Ｐ２Ｐ通信に使用するポート番号をサーバ経由で接続先の装置２０に通知するために、予測したポート番号をデータ部に含むＮＡＴ情報通知パケットをサーバに送信する。
【０１３５】
中継情報受信部１００６は、接続先装置から送信されたＮＡＴ情報通知パケットを受信する。受信されたＮＡＴ情報通知パケットは、接続先の装置２０に接続されているルータ２０１がＰ２Ｐ通信に使用するポート番号を含んでいる。
【０１３６】
通信制御部１００７は、受信されたＮＡＴ情報通知パケットからルータ２０１のＰ２Ｐ通信に使用するポート番号を取り出し、それを宛先ポート番号に設定したＰ２Ｐ開始要求パケットを生成する。
【０１３７】
通信部１００８は、上記の各部において生成されたパケットをプライベートネットワーク０１へと送出し、また、装置１０宛てのパケットをプライベートネットワーク０１から受信する。
【０１３８】
図２Ｂは、図１に示される装置２０の概略構成を示すブロック図である。
【０１３９】
装置２０は、アドレス情報調査要求送信部２００１と、アドレス情報受信部２００２と、直接通信準備要求送信部２００３と、中継特性判断部２００４と、中継情報送信部２００５と、中継情報受信部２００６と、通信制御部２００７と、通信部２００８とを備える。アドレス情報調査要求送信部２００１〜通信部２００８の各々の機能は、図２Ａに示されるアドレス情報調査要求送信部１００１〜通信部１００８の各々の機能と同様であるので、ここでは説明を繰り返さない。
【０１４０】
図２Ｃは、図１に示されるサーバ００１の概略構成を示すブロック図である。
【０１４１】
サーバ００１は、アドレス情報調査部００１１と、アドレス情報送信部００１２と、中継情報転送部００１３と、通信部００１４を備える。
【０１４２】
アドレス情報調査部００１１は、装置１０及び２０の各々からアドレス情報調査要求パケットを受信すると、受信したパケットのヘッダに含まれる発信元ポート番号を取り出す。アドレス情報調査部００１１が取り出した発信元ポート番号は、ルータ１０１または２０１のＮＡＴ機能によって設定された値である。アドレス情報調査部００１１は、取り出されたポート番号をアドレス情報送信部００１２に出力する。
【０１４３】
アドレス情報送信部００１２は、アドレス情報調査部００１１から受け取ったポート番号をデータ部に含むアドレス情報調査応答パケットを生成し、生成したパケットを装置に返信する。
【０１４４】
中継情報転送部００１３は、２つの装置の一方からＮＡＴ情報通知パケットを受信すると、受信したＮＡＴ情報通知パケットを他方の装置に転送する。
【０１４５】
通信部００１４は、各部において生成されたパケットをグローバルネットワーク００へと送出し、また、サーバ００１宛てのパケットをグローバルネットワーク００経由で受信する。
【０１４６】
ここで、本実施の形態に係る通信システムにおける制御シーケンスについて説明する。
【０１４７】
図３は、本実施の形態に係る通信システムがＰ２Ｐ通信路を確立するために実行する処理の概略を示すシーケンス図である。
【０１４８】
図３に示されるように、本実施の形態に係るＰ２Ｐ通信路確立方法は、４つのフェーズ、すなわち、ＮＡＴ特性調査フェーズＳ３０１、準備フェーズＳ３０２、情報交換フェーズＳ３０３及びＰ２Ｐ通信路確立フェーズＳ３０４から構成される。
【０１４９】
まず、ＮＡＴ特性調査フェーズＳ３０１において、装置１０は、サーバ００１と通信し、装置１０に接続されているルータ１０１のＮＡＴ特性（例えば、Ｃｏｎｅ  ＮＡＴまたはＳｙｍｍｅｔｒｉｃ  ＮＡＴ）を調査する。また、装置１０は、ルータ１０１がＰｏｒｔ  Ｒｅｕｓｅ特性を有しているか否かを調査する。同様に、装置２０は、サーバ００１と通信し、中継装置であるルータ２０１のＮＡＴ特性と、Ｐｏｒｔ  Ｒｅｕｓｅ特性の有無とを調査する。
【０１５０】
次に、準備フェーズＳ３０２において、装置１０は、自身が接続されているルータ１０１にパケットを送信し、装置２０と通信するために使用するルータ１０１のポートを開く。同様に、装置２０は、ルータ２０１にパケットを送信し、装置１０と通信するために使用するルータ２０１のポートを開く。
【０１５１】
次に、情報交換フェーズＳ３０３において、装置１０及び２０の各々は、ＮＡＴ特性調査フェーズにおいて判別したＮＡＴ特性と、Ｐ２Ｐ通信路を確立するために必要な情報とを、サーバ００１経由で交換する。
【０１５２】
そして、Ｐ２Ｐ通信路確立フェーズＳ３０４において、装置１０及び２０の各々は、情報交換フェーズＳ３０３において取得した情報に基づいて、相互にパケットを送信し、Ｐ２Ｐ通信路を確立する。
【０１５３】
尚、図３においては、図示の都合上、ＮＡＴ特性調査フェーズＳ３０１及び準備フェーズＳ３０２の順序が特定されているが、ＮＡＴ特性調査フェーズＳ３０１及び準備フェーズＳ３０２は、情報交換フェーズＳ３０３の前に完了している限り、どちらが先に実行されても良い。
【０１５４】
以下、上記４つのフェーズについて、更に詳細に説明する。
【０１５５】
＜ＮＡＴ特性調査フェーズ及び準備フェーズ＞
図４Ａは、図３に示されるＮＡＴ特性調査フェーズ及び準備フェーズにおける処理の詳細を示すシーケンス図である。
【０１５６】
まず、装置１０は、アドレス情報調査要求１をサーバ００１へ送信する（ステップＳ４０１）。より詳細には、アドレス情報調査要求送信部１００１は、発信元ポート番号に装置１０のポート番号［ＬＰ１］が設定され、かつ、宛先ポート番号にサーバ００１のポート番号［ＳＰ１］が設定されたアドレス情報調査要求パケット１を送信する。
【０１５７】
次に、サーバ００１は、装置１０から送信されたアドレス情報調査要求１に応答して、アドレス情報調査応答１を装置に返送する（ステップＳ４０２）。より詳細には、通信部００１４は、アドレス情報調査要求パケット１を受信し、受信したパケットをアドレス情報調査部００１１へと転送する。アドレス情報調査部００１１は、転送されたパケットのヘッダを参照して、発信元ポート番号、すなわち、ルータ１０１によって設定されたポート番号［ＧＰ１１］を取り出し、取り出した発信元ポート番号［ＧＰ１１］をアドレス情報送信部００１２へ出力する。そして、アドレス情報送信部００１２は、アドレス情報調査部から受け取ったルータ１０１のポート番号［ＧＰ１１］をデータ部に含むアドレス情報調査応答パケット１を生成し、生成したパケットを通信部００１４に出力する。通信部００１４は、アドレス情報送信部００１２から受け取ったパケットを装置１０へと返送する。装置１０において、通信部１００８がアドレス情報調査応答パケット１を受信すると、受信したパケットをアドレス情報受信部１００２へ転送する。
【０１５８】
次に、装置１０は、アドレス情報調査要求２をサーバ００１へ送信する（ステップＳ４０３）。より詳細には、アドレス情報調査要求送信部１００１は、装置１０のポート番号［ＬＰ２］が発信元ポート番号に設定され、かつ、宛先ポート番号にサーバ００１のポート番号［ＳＰ１］が設定されたアドレス情報調査要求パケット２を送信する。
【０１５９】
次に、サーバ００１は、装置１０から送信されたアドレス情報調査要求２に応答して、アドレス情報調査応答２を装置に返送する（ステップＳ４０４）。より詳細には、通信部００１４は、アドレス情報調査要求パケット２を受信し、受信したパケットをアドレス情報調査部００１１へと転送する。アドレス情報調査部００１１は、転送されたパケットのヘッダを参照して、発信元ポート番号、すなわち、ルータ１０１によって設定されたポート番号［ＧＰ１２］を取り出し、取り出した発信元ポート番号［ＧＰ１２］をアドレス情報送信部００１２へ出力する。そして、アドレス情報送信部００１２は、アドレス情報調査部から受け取ったルータ１０１のポート番号［ＧＰ１２］をデータ部に含むアドレス情報調査応答パケット２を生成し、生成したパケットを通信部００１４に出力する。通信部００１４は、アドレス情報送信部００１２から受け取ったパケットを装置１０へと返送する。装置１０においては、通信部１００８がアドレス情報調査応答パケット１を受信すると、受信したパケットをアドレス情報受信部１００２へ転送する。
【０１６０】
次に、装置１０は、Ｐ２Ｐ通信準備パケットを装置２０に送信する（ステップＳ４０５）。より詳細には、装置１０は、サーバとは異なるＩＰアドレスを持つ装置２０とのＰ２Ｐ通信に使用するためのポート番号［ＧＰ１３］をルータ１０１上に用意するために、装置１０のポート番号［ＬＰ１］が発信元ポート番号に設定され、かつ、装置２０のＩＰアドレス及びポート番号を宛先とするパケットをルータ１０１へ送信する。
【０１６１】
ルータ１０１は、ステップＳ４０５において、装置２０からルータ２０１を介してルータ１０１（ＩＰＧ１、ＧＰ１３）へと送信されたパケットを受け付けることができるように、ＮＡＴを設定する。ルータ１０１がＮＡＴを設定する方法は、ＮＡＴ特性（図２３Ａ〜図２３Ｅ）に応じて異なるが、ここでの説明を省略する。
【０１６２】
次に、装置１０は、アドレス情報調査要求３をサーバ００１へ送信する（ステップＳ４０６）。より詳細には、アドレス情報調査要求送信部１００１は、装置１０のポート番号［ＬＰ３］が発信元ポート番号に設定され、かつ、サーバ００１のポート番号［ＳＰ１］を宛先ポート番号に設定されたパケットを、アドレス情報調査要求３として送信する。
【０１６３】
サーバ００１は、装置１０から送信されたアドレス情報調査要求３に応答して、アドレス情報調査応答３を装置１０に返送する（ステップＳ４０７）。より詳細には、通信部００１４は、アドレス情報調査要求パケット３を受信し、受信したパケットをアドレス情報調査部００１１へと転送する。アドレス情報調査部００１１は、転送されたパケットのヘッダを参照して、発信元ポート番号、すなわち、ルータ１０１のポート番号［ＧＰ１４］を取り出し、取り出した発信元ポート番号［ＧＰ１４］をアドレス情報送信部００１２へ出力する。そして、アドレス情報送信部００１２は、アドレス情報調査部から受け取ったルータ１０１のポート番号［ＧＰ１４］をデータ部に含むアドレス情報調査応答パケット３を生成し、生成したパケットを通信部００１４に出力する。通信部００１４は、アドレス情報送信部００１２から受け取ったパケットを装置１０へと返送する。装置１０においては、通信部１００８がアドレス情報調査応答パケット１を受信すると、受信したパケットをアドレス情報受信部１００２へ転送する。
【０１６４】
次に、装置１０は、アドレス情報調査応答パケット１〜３を受信すると、ルータ１０１のＮＡＴ特性を判断する（ステップＳ４０８）。装置１０の中継特性判断部１００４は、アドレス情報調査応答パケット１〜３に含まれるルータ１０１の３つのポート番号［ＧＰ１１］、［ＧＰ１２］及び［ＧＰ１４］に基づいて、後述する処理フローに従ってルータ１０１のＮＡＴ特性を判断する。
【０１６５】
尚、本実施の形態において、Ｐ２Ｐ通信準備パケットをアドレス情報調査要求２の送信後に送信しているが、当該パケットの送信タイミングは必ずしもこの通りである必要はない。具体的には、Ｐ２Ｐ通信準備パケットは、アドレス情報調査要求１の送信後、アドレス情報調査要求３を送信する前までの間に送信されれば良い。言い換えれば、Ｐ２Ｐ通信準備パケットと、アドレス情報調査要求パケット２とは、任意の順序で送信されればよい。
【０１６６】
また、図４Ａの例では、Ｐ２Ｐ通信準備パケットの発信元ポート番号に［ＬＰ１］が設定されているが、アドレス情報調査要求パケット１〜３を送信するポート番号［ＬＰ１］〜［ＬＰ３］のいずれかと同一であれば良い。
【０１６７】
更に、上記のＰ２Ｐ通信準備パケット（ステップＳ４０５）の宛先に関し、装置１０は、装置２０のＩＰアドレス及びポート番号を予め取得していても良い。あるいは、サーバ００１がアドレス情報調査応答パケット１または２のいずれかに、装置２０のＩＰアドレス及びポート番号を設定して装置１０に送信し、装置１０は、受信したアドレス情報調査応答パケット１または２を参照して、装置２０のＩＰアドレス及びポート番号を取得しても良い。
【０１６８】
更に、ステップＳ４０５においては、ルータ２０１が不正侵入検知機能を備える可能性を考慮して、Ｐ２Ｐ通信パケットに更に次のような工夫をすることがより好ましい。
【０１６９】
例えば、装置１０が装置２０宛てに送信するパケットの宛先ポート番号は、実際にルータ２０１が使用しているポート番号（例えば、装置２０がサーバ００１と通信している際に、ルータ２０１が装置２０のパケットに割り当てているポート番号）を設定する。というのも、ルータ２０１が侵入検知機能を有する場合に、ルータ２０１が、通信に使用していないポート番号を宛先ポート番号に含むＰ２Ｐ通信準備パケットを装置１０から受信すると、当該パケットを不正アクセスパケットであると誤検知する可能性があるからである。ルータ２０１は、不正アクセスパケットを検知すると、装置１０から送信された後続のパケットを全て破棄するため、装置１０は、装置２０と通信不能となる虞がある。
【０１７０】
あるいは、装置１０は、Ｐ２Ｐ通信準備パケットがルータ２０１に届かないように当該パケットのＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）の値を調整しても良い。装置１０がＰ２Ｐ通信準備パケットを送信するのは、自身が接続されるルータ１０１に、装置２０とのＰ２Ｐ通信のためのポート番号を用意するためであり、必ずしもルータ２０１にＰ２Ｐ通信準備パケットが届く必要はない。そこで、装置１０は、Ｐ２Ｐ通信準備パケットがルータ１０１に到達し、かつ、ルータ２０１に到達しないように、ＴＴＬの値を予め調整しておけば、ルータ２０１において不正侵入と検出されことを回避できる。
【０１７１】
図４Ｂは、図４Ａに示されるステップＳ４０８の処理の詳細を示すフローチャートである。
【０１７２】
上述のように、装置１０は、サーバ００１から返信されるアドレス情報調査応答パケット１〜３を参照して、アドレス情報調査要求パケット１〜３の送信時にルータ１０１が使用したポート番号［ＧＰ１１］、「ＧＰ１２］及び「ＧＰ１４］を取得する。ルータ１０１が、Ｐ２Ｐ通信準備パケットに割り当てるポート番号［ＧＰ１３］は、ルータ１０１のＮＡＴ特性に応じて異なり、［ＧＰ１１］、［ＧＰ１２］及び［ＧＰ１４］の３つのポート番号のいずれかに一致する場合と、一致しない場合とがある。また、一般に、ルータが開く隣接する２つのポート番号の間隔は一定である。それ故、３つのポート番号［ＧＰ１１］、［ＧＰ１２］及び［ＧＰ１４］のうち、隣接する２つのポート番号の差分を調べることによって、ＮＡＴ特性を判別することができる。
【０１７３】
中継特性判断部１００４は、まず、取得したポート番号［ＧＰ１１］と［ＧＰ１２］との差分値Δ１（＝｜［ＧＰ１２］−［ＧＰ１１］｜）と、［ＧＰ１２］と［ＧＰ１４］との差分値Δ２（＝｜［ＧＰ１４］−［ＧＰ１２］｜）とが一致するか否かを判断する（ステップＳ４０９）。差分値Δ１とΔ２とが一致する場合（ステップＳ４０９でＹｅｓ）、中継特性判断部１００４は、ルータ１０１のＮＡＴがＣｏｎｅ  ＮＡＴであると判断し（ステップＳ４１０）、ステップＳ４１２へ進む。一方、差分値Δ１とΔ２とが一致しない場合（ステップＳ４０９でＮｏ）、中継特性判断部１００４は、ルータ１０１のＮＡＴがＳｙｍｍｅｔｒｉｃ  ＮＡＴであると判断し（ステップＳ４１１）、ステップＳ４１２へ進む。
【０１７４】
更に、中継特性判断部１００４は、ステップＳ４０２で取得したルータ１０１のポート番号［ＧＰ１１］が、ステップＳ４０１で送信したアドレス情報調査要求パケット１の発信元ポート番号［ＬＰ１］に一致するか否かを判断する（ステップＳ４１２）。［ＧＰ１１］が［ＬＰ１］に一致する場合（ステップＳ４１２でＹｅｓ）、中継特性判断部１００４は、ルータ１０１がＰｏｒｔ  Ｒｅｕｓｅ特性を有すると判断し（ステップＳ４１３）、ＮＡＴ特性判断処理を終了する。それ以外の場合には、中継特性判断部１００４は、ＮＡＴ特性判断処理を終了する。
【０１７５】
尚、ルータ１０１がＰｏｒｔ  Ｒｅｕｓｅ特性を有するか否かを厳密に判断するために、中継特性判断部１００４は、更に、ポート番号［ＧＰ１２］が［ＬＰ２］に一致するか否かを判断しても良い。この場合、中継特性判断部１００４は、［ＧＰ１１］が［ＬＰ１］に一致し、かつ、［ＧＰ１２］が［ＬＰ２］に一致する場合に、ルータ１０１がＰｏｒｔ  Ｒｅｕｓｅ特性を有していると判断する。また、ルータ１０１がＰｏｒｔ  Ｒｅｕｓｅ特性を有するか否かを緩やかに判断するために、［ＧＰ１１］が［ＬＰ１］に一致すること、あるいは、［ＧＰ１２］が［ＬＰ２］に一致することのいずれか一方を確認した場合に、中継特性判断部１００４は、ルータ１０１がＰｏｒｔ  Ｒｅｕｓｅ特性を有すると判断しても良い。また、ステップＳ４１２及びＳ４１３においてＰｏｒｔ  Ｒｅｕｓｅ特性を判断する処理を、ステップＳ４０９の前に行っても良い。
【０１７６】
また、ルータ１０１がＰｏｒｔ  Ｒｅｕｓｅ特性を有する場合で、かつ、［ＬＰ１］及び［ＬＰ２］の差分と、［ＬＰ２］及び［ＬＰ３］の差分とが等しくない場合には、差分値Δ１とΔ２とは等しくならない。したがって、図４Ｂのフローチャートでは、ルータ１０１がＰｏｒｔ  ＲｅｕｓｅのＣｏｎｅ  ＮＡＴである場合に、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴであると判定される可能性が残る。ただし、後続のＰ２Ｐ接続シーケンスにおいて、Ｐｏｒｔ  ＲｅｕｓｅのＣｏｎｅ  ＮＡＴと、Ｐｏｒｔ  ＲｅｕｓｅのＳｙｍｍｅｔｒｉｃ  ＮＡＴに対して、共通の処理が用意されているので、Ｐｏｒｔ  ＲｅｕｓｅであることがステップＳ４１２及びＳ４１３で判定される限り、特に不具合が生じることはない。
【０１７７】
更に、図４Ａのシーケンスにおいて、装置１０は、ステップＳ４０２でサーバ００１からアドレス情報調査応答パケット１を受信した時点で、ステップＳ４１２〜Ｓ４１３を実行し、ルータ１０１がＰｏｒｔＲｅｕｓｅであると判断した場合には、ステップＳ４０３〜Ｓ４０８を省略しても良い。
【０１７８】
以上のＮＡＴ特性判定処理を通じて、装置１０は、ルータ１０１のＮＡＴ特性を調査することができる。
【０１７９】
次に、上記のＮＡＴ特性判定処理の具体例を説明する。
【０１８０】
図５Ａは、図４Ａに示されるステップＳ４１０を説明するための図である。
【０１８１】
中継特性判断部１００４が、ステップＳ４０９においてＹｅｓと判断すること、すなわち、差分値Δ１がΔ２と一致することは、サーバのＩＰアドレス及びポート番号を宛先に含むパケットと、装置２０のＩＰアドレス及びポート番号を宛先に含むパケットとの両方に、ルータ１０１が同一のポート番号を割り当てたことを意味する。したがって、中継特性判断部１００４は、ルータ１０１がＣｏｎｅ  ＮＡＴ特性を有すると判断することができる。
【０１８２】
図５Ｂは、図４Ａに示されるステップＳ４１１を説明するための図である。
【０１８３】
中継特性判断部１００４が、ステップＳ４０９においてＮｏと判断すること、すなわち、差分値Δ１とΔ２とが異なることは、サーバのＩＰアドレス及びポート番号を宛先に含むパケットと、装置２０のＩＰアドレス及びポート番号を宛先に含むパケットとに、ルータ１０１がそれぞれ異なるポート番号を割り当てたことを意味する。したがって、中継特性判断部１００４は、ルータ１０１がＳｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有すると判断することができる。
【０１８４】
尚、装置２０は、図４Ａに示されるものと同様の手順に従って、ルータ２０１のＮＡＴ特性を調査し、ルータ２０１は、Ｐ２Ｐ通信で使用するためのポートを開く。
【０１８５】
また、図４Ａでは、説明の便宜上、ＮＡＴ特性調査フェーズ（ステップＳ４０１〜Ｓ４０４、ステップＳ４０６〜Ｓ４０８）と、準備フェーズ（ステップＳ４０５）とを併せて示しているが、ＮＡＴ特性調査フェーズと、準備フェーズとが互いに分離されていても良い。
【０１８６】
更に、ＮＡＴ特性調査フェーズ及び準備フェーズは、必ずしも本実施の形態に示される順序で実行される必要はない。したがって、装置１０及び２０は、後続の情報交換フェーズの前に、ＮＡＴ特性調査フェーズ及び準備フェーズを完了していれば、本実施の形態と異なる順序で各ステップを実行しても良い。
【０１８７】
＜情報交換フェーズ＞
図６は、図３に示される情報交換フェーズにおける処理の詳細を示すシーケンス図である。
【０１８８】
以下の説明の前提条件として、装置１０及び２０の各々は、サーバ００１にルータ１０１及び２０１経由で予めパケットを送信して通信路を確立しており、サーバ経由でリアルタイムに情報を交換できる状態である。
【０１８９】
まず、装置２０は、自身が接続されているルータ２０１のＰ２Ｐ通信に使用するポート番号（以降、Ｐ２Ｐ通信ポート番号）を装置１０に通知するために、サーバ００１へ送信する（ステップＳ６０１）。より詳細には、中継情報送信部２００５は、ＮＡＴ特性調査フェーズにおいてルータ２０１のＮＡＴ特性を判定し、判定結果に基づいてＰ２Ｐ通信ポート番号を予測する。そして、中継情報送信部２００５は、予測したポート番号をデータ部に含むＮＡＴ情報通知パケットを生成し、生成したＮＡＴ情報通知パケットを通信部２００８を介してサーバ００１へと送信する。
【０１９０】
Ｐ２Ｐ通信ポート番号は、ＮＡＴ特性に応じて、下記のように決定される。
【０１９１】
（ａ）ＮＡＴ特性がＣｏｎｅである場合
装置２０は、ポート番号［ＧＰ２１］、［ＧＰ２２］、［ＧＰ２４］の値のうち、いずれか１つをＰ２Ｐ通信ポート番号として決定する。本実施の形態においては、［ＧＰ２１］をＰ２Ｐ通信ポート番号として選択する。
【０１９２】
（ｂ）ＮＡＴ特性がＳｙｍｍｅｔｒｉｃである場合
Ｓｙｍｍｅｔｒｉｃ  ＮＡＴは、パケットにポート番号を割り当てるたびに、所定の値ずつポート番号をインクリメント（または、デクリメント）する。以下の説明では、この所定の値を「ポート割り当て間隔」という。図５Ｂに例示されるように、差分値Δ１及びΔ２のうち小さい方が、ルータ２０１のポート割り当て間隔に相当するので、次にルータ２０１が開くポート番号は、［ＧＰ２４＋Δ１］であると予測される。したがって、装置２０は、［ＧＰ２４＋Δ１］をＰ２Ｐ通信ポート番号として決定する。
【０１９３】
（ｃ）ＮＡＴがＰｏｒｔ  Ｒｅｕｓｅ特性を有する場合
装置２０は、次のＰ２Ｐ通信路確立フェーズで新たに開くことを予定するポート番号［ＬＰ４］をＰ２Ｐ通信ポート番号として決定する。尚、ポート番号［ＬＰ４］は、アドレス情報調査要求送信処理で使用した［ＬＰ１］、［ＬＰ２］、［ＬＰ３］とは異なる任意のポート番号で良い。
【０１９４】
サーバ００１は、ＮＡＴ情報通知パケットを受信すると、受信したＮＡＴ情報通知パケットを装置１０へと転送する（ステップＳ６０２）。より詳細には、サーバ００１において、中継情報転送部００１３は、装置２０から送信されたＮＡＴ情報通知パケットを通信部００１４を介して一旦受信し、受信したＮＡＴ情報通知パケットを通信部００１４を介して装置１０へ転送する。
【０１９５】
次に、装置１０は、自身が接続されているルータ１０１のＰ２Ｐ通信ポート番号を装置２０へ通知するために、サーバ００１へＮＡＴ情報を通知する（ステップＳ６０３）。より詳細には、中継情報送信部１００５は、ＮＡＴ特性調査フェーズにおいて取得したルータ１０１のＮＡＴ特性に基づいてＰ２Ｐ通信ポート番号を予測し、予測したポート番号をデータ部に含むＮＡＴ情報通知パケットを生成し、生成したＮＡＴ情報通知パケットを通信部１００８を介してサーバ００１へと送信する。装置１０がサーバ００１へ送信するＮＡＴ情報通知は、装置２０がサーバ００１へと送信するものと同様であるので、ここでの説明を繰り返さない。
【０１９６】
サーバ００１は、ＮＡＴ情報通知パケットを受信すると、受信したＮＡＴ情報通知パケットを装置２０へと転送する（ステップＳ６０４）。より詳細には、サーバ００１において、中継情報転送部００１４は、装置１０から送信されたＮＡＴ情報通知パケットを通信部００１４を介して一旦受信し、受信したＮＡＴ情報通知パケットを通信部００１４を介して装置２０へ転送する。
【０１９７】
尚、本実施の形態においては、装置１０及び２０の各々は、ＮＡＴ特性に基づき決定したＰ２Ｐ通信ポート番号をＮＡＴ情報として装置２０及び装置１０へしているが、３つのポート番号（ポート番号［ＧＰ１１］、［ＧＰ１２］及び［ＧＰ１４］、または、ポート番号［ＧＰ２１］、［ＧＰ２２］及び［ＧＰ２４］）をサーバ００１へ通知しても良い。この場合、装置１０及び２０の各々は、図４Ｂに示される処理フローに従って、サーバ００１から取得した３つのポート番号から、通信相手装置が接続されるルータ２０１及び１０１のそれぞれのＮＡＴ特性を判断し、ルータのＰ２Ｐ通信ポート番号の値を計算すれば良い。
【０１９８】
あるいは、サーバ００１が、図４Ｂに示される処理フローに従って、装置１０及び２０の各々から取得した３つのポート番号から、ルータ１０１及び２０１の各々のＮＡＴ特性をそれぞれ判断し、それに基づいて計算したルータ１０１及び２０１のＰ２Ｐ通信ポート番号をそれぞれ装置２０及び１０に通知しても良い。
【０１９９】
また、ＮＡＴ情報は、装置１０、装置２０及びサーバ００１の少なくとも１つがルータのＮＡＴ特性を判別するために有用な情報であれば、上述される以外の情報を含んでいても良い。
【０２００】
更に、本実施の形態においては、装置２０が先にＮＡＴ情報通知パケットを送信しているが、装置１０が先にＮＡＴ情報通知パケットを送信しても良い。
【０２０１】
更に、装置１０及び２０は、情報交換フェーズにおいて、ＮＡＴ特性調査フェーズで利用したサーバと同一のサーバを利用してＮＡＴ情報通知パケットを交換しているが、異なるサーバを利用しても良い。
【０２０２】
＜Ｐ２Ｐ通信路確立フェーズ＞
図７は、図３に示されるＰ２Ｐ通信路確立フェーズにおける処理の詳細を示すシーケンス図である。図７では、ルータ２０１がＰＲ  Ｃｏｎｅ  ＮＡＴ特性またはＳｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有する場合が例示されている。
【０２０３】
まず、装置１０の通信制御部１００７は、ステップＳ６０２において取得したルータ２０１のＰ２Ｐ通信ポート番号を宛先ポート番号に設定したＰ２Ｐ開始要求パケットを送信する（ステップＳ７０１）。ここで、発信元ポート番号に設定されるポート番号は、装置１０のＮＡＴ特性に応じて異なるが、詳細は後述する。
【０２０４】
この段階では、ルータ２０１は、装置１０から送信されたパケットを転送するようにＮＡＴを設定していないため、ルータ２０１は、ステップＳ７０１において送信されたＰ２Ｐ開始要求パケットを破棄し、装置２０に転送しない。ただし、ルータ１０１は、発信元ポート番号にルータ２０１のＰ２Ｐ通信ポート番号が設定され、かつ、宛先ポート番号にルータ１０１のＰ２Ｐ通信ポート番号が設定されたパケットを、装置１０へ転送するようにＮＡＴを設定する。
【０２０５】
一方、装置２０の通信制御部２００７は、ステップＳ６０４において取得したルータ１０１のＰ２Ｐ通信ポート番号を宛先ポート番号に設定したＰ２Ｐ開始要求パケットを送信する（ステップ７０２）。ここで、発信元ポート番号に設定されるポート番号は、ルータ２０１のＮＡＴ特性に応じて異なるが、詳細は後述する。
【０２０６】
ルータ１０１は、装置２０から送信されたＰ２Ｐ開始要求パケットの宛先ＩＰアドレス（ここではルータ１０１のＩＰアドレス［ＩＰＧ１］）を装置１０のＩＰアドレス［ＩＰＬ１］に変換して、装置１０に転送する（以下、単に「転送」という）。装置１０において、通信制御部１００７は、ルータ１０１から転送されたＰ２Ｐ開始要求パケットに応答して、通信部１００８を介して、Ｐ２Ｐ開始応答パケットを装置２０へ送信する（ステップＳ７０３）。
【０２０７】
尚、本実施の形態においては、装置１０が先にＰ２Ｐ開始要求を送信しているが、Ｐ２Ｐ開始要求の送信順序はこの限りではない。装置２０が先にＰ２Ｐ開始要求を送信した場合にも、図７のシーケンスと同様に、Ｐ２Ｐ通信路を確立することができる。
【０２０８】
また、図７においては、ルータ２０１がＰＲ  Ｃｏｎｅ  ＮＡＴ特性またはＳｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有する場合のシーケンスの例として、ステップＳ７０１でルータ２０１がＰ２Ｐ開始要求パケットを破棄している。ルータ２０１がＦｕｌｌ  Ｃｏｎｅ  ＮＡＴまたはＲ  Ｃｏｎｅ  ＮＡＴ特性を有する場合、ルータ２０１は、ルータ１０１からのパケットを装置２０に転送するようにＮＡＴを既に設定しているので（図６のステップＳ６０１）、ステップＳ７０１において、ルータ２０１は、装置１０から送信されたＰ２Ｐ開始要求を装置２０に転送する。したがって、ステップＳ７０２において、装置２０がＰ２Ｐ開始要求を送信することによって、Ｐ２Ｐ通信路の確立が完了したと見なすことができる。以降のＰ２Ｐ接続シーケンスについても同様である。
【０２０９】
以下、図８〜図１０を参照しながら、装置１０が装置２０との間にＰ２Ｐ通信路を確立するための接続シーケンスについて、ルータ１０１のＮＡＴ特性毎に分説する。
【０２１０】
＜接続シーケンス１：ルータ１０１がＣｏｎｅ  ＮＡＴである場合＞
図８は、ルータ１０１がＣｏｎｅ  ＮＡＴである場合の接続シーケンスの詳細を示す図である。尚、図８においては、説明の簡略化のために、ルータ２０１がＣｏｎｅ  ＮＡＴ特性を有する場合を想定する。
【０２１１】
上述したように、装置１０は、情報交換フェーズ（図６）のステップＳ６０１及びＳ６０２において装置２０からサーバ００１経由で通知された情報に基づき、装置２０が接続されるルータ２０１のＰ２Ｐ通信ポート番号を把握する。ルータ２０１がＣｏｎｅ  ＮＡＴ特性を有する場合、ＮＡＴ情報通知パケットにはルータ２０１のＰ２Ｐ通信ポート番号として［ＧＰ２１］が含まれる。一方、ルータ１０１もＣｏｎｅ  ＮＡＴ特性を有するので、ステップＳ６０３及びＳ６０４において、装置１０は、ルータ１０１のＰ２Ｐ通信ポート番号として［ＧＰ１１］をサーバ００１経由で装置２０に通知している。
【０２１２】
そこで、装置１０の通信制御部１００７は、［ＬＰ１］が発信元ポート番号に設定され、かつ、宛先ポート番号に［ＧＰ２１］が設定されたパケットを、Ｐ２Ｐ開始要求として送信する（ステップＳ８０１）。ルータ１０１は、装置１０から送信されたパケットにポート番号［ＧＰ１１］（＝［ＧＰ１３］）を割り当てる。
【０２１３】
この段階では、ルータ２０１は、装置１０から送信され、宛先ポート番号に［ＧＰ２１］が設定されたパケットを、装置２０に転送するようにＮＡＴを設定していないため、ルータ２０１は、ステップＳ８０１において送信されたＰ２Ｐ開始要求パケットを破棄し、装置２０に転送しない。ただし、ルータ１０１は、発信元ポート番号にルータ２０１のポート番号［ＧＰ２１］が設定され、かつ、宛先ＩＰアドレス及び宛先ポート番号に（ＩＰＧ１、ＧＰ１１）が設定されたパケットを、装置１０（ＩＰＬ１、ＬＰ１）へ転送するようにＮＡＴを設定する。
【０２１４】
次に、装置２０は、情報交換フェーズにおいてサーバ００１から通知された情報に基づき、装置１０が接続されるルータ１０１のＰ２Ｐ通信ポート番号を取得する。通信制御部２００７は、［ＧＰ２１］に対応する［ＬＰ１］が発信元ポート番号に設定され、かつ、宛先ポート番号に［ＧＰ１１］が設定されたパケットを、Ｐ２Ｐ開始要求として送信する（ステップＳ８０２）。
【０２１５】
ルータ１０１は、装置２０から送信されたＰ２Ｐ開始要求パケットを装置１０に転送する。装置１０において、通信制御部１００７は、ルータ１０１から転送されたＰ２Ｐ開始要求パケットに応答して、通信部１００８を介して、Ｐ２Ｐ開始応答パケットを装置２０へ送信する（ステップＳ８０３）。
【０２１６】
ルータ１０１がＣｏｎｅ  ＮＡＴ特性を有する場合、上記の処理手順に従って、装置１０及び２０の間にＰ２Ｐ通信路を確立することができる。
【０２１７】
＜接続シーケンス２：ルータ１０１がＳｙｍｍｅｔｒｉｃ  ＮＡＴである場合＞
図９Ａは、ルータ１０１がＳｙｍｍｅｔｒｉｃ  ＮＡＴである場合の接続シーケンスの詳細を示す図であり、図９Ｂは、図９Ａに示されるポート番号を示す図である。尚、図９においては、説明の簡略化のために、ルータ２０１がＣｏｎｅ  ＮＡＴ特性を有する場合を想定する。
【０２１８】
上述したように、装置１０は、情報交換フェーズ（図６）のステップＳ６０１及びＳ６０２において装置２０から通知された情報に基づき、装置２０が接続されるルータ２０１のＰ２Ｐ通信ポート番号を把握する。ルータ２０１がＣｏｎｅ  ＮＡＴ特性を有する場合、ＮＡＴ情報通知にはルータ２０１のＰ２Ｐ通信ポート番号として［ＧＰ２１］が含まれる。一方、ルータ１０１はＳｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有する場合、装置１０は、ステップＳ６０３及びＳ６０４において、ルータ１０１のＰ２Ｐ通信ポート番号として［ＧＰ１４＋Δ１］をサーバ００１経由で装置２０に通知している。
【０２１９】
そこで、装置１０の通信制御部１００７は、［ＬＰ４］が発信元ポート番号に設定され、かつ、宛先ポート番号に［ＧＰ２１］が設定されたパケットを、Ｐ２Ｐ開始要求として送信する（ステップＳ９０１）。
【０２２０】
装置１０から送信されたパケットに対して、ルータ１０１はポート番号［ＧＰ１４＋Δ１］を割り当てる（ただし、Δ１は、ルータ１０１のポート割当て間隔である）。
【０２２１】
この段階では、ルータ２０１は、装置１０から送信された宛先ポート番号が［ＧＰ２１］に設定されたパケットを装置２０に転送するようにＮＡＴを設定していない。したがって、ルータ２０１は、ステップＳ９０１において送信されたＰ２Ｐ開始要求パケットを破棄し、装置２０に転送しない。ただし、ルータ１０１は、発信元ポート番号にルータ２０１のポート番号［ＧＰ２１］が設定され、かつ、宛先ＩＰアドレス及び宛先ポート番号に（ＩＰＧ１、ＧＰ１４＋Δ１）が設定されたパケットを、装置１０（ＩＰＬ１、ＬＰ１）へと転送するようにＮＡＴを設定する。
【０２２２】
装置２０は、情報交換フェーズにおいてサーバ００１から通知された情報に基づき、装置１０が接続されるルータ１０１のＰ２Ｐ通信ポート番号を取得している。通信制御部２００７は、［ＧＰ２１］に対応する［ＬＰ１］が発信元ポート番号に設定され、かつ、宛先ポート番号に［ＧＰ１４＋Δ１］が設定されたパケットを、Ｐ２Ｐ開始要求として送信する（ステップＳ９０２）。
【０２２３】
ルータ１０１は、装置２０から送信されたＰ２Ｐ開始要求パケットを装置１０に転送する。装置１０において、通信制御部１００７は、ルータ１０１から転送されたＰ２Ｐ開始要求パケットに応答して、通信部１００８を介して、Ｐ２Ｐ開始応答パケットを装置２０へ送信する（ステップＳ９０３）。
【０２２４】
ルータ１０１がＳｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有する場合、上記の処理手順に従って、装置１０及び２０の間にＰ２Ｐ通信路を確立することができる。
【０２２５】
尚、本実施の形態においては、装置１０は、発信元ポート番号に［ＬＰ４］を設定しているが、ルータ１０１の特性がＳｙｍｍｅｔｒｉｃ  ＮＡＴである場合には、ステップＳ４０５においてＰ２Ｐ通信準備パケットを送信したポート番号［ＬＰ１］以外の任意のポート番号を設定しても良い。
【０２２６】
より詳細には、ルータ１０１がＡＳ  Ｓｙｍｍｅｔｒｉｃ  ＮＡＴである場合には、ポート番号［ＬＰ１］から送信されたＰ２Ｐ開始要求パケットは、ステップＳ４０５のＰ２Ｐ通信準備パケットと同じ宛先に向けて送信されるため、ルータ１０１は、Ｐ２Ｐ開始要求パケットにポート番号［ＧＰ１３］を割り当てる。
【０２２７】
また、ルータ１０１がＰＳ  Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有する場合には、任意のポート番号から送信したＰ２Ｐ開始要求パケットの発信元ポート番号は、ルータ１０１によって、［ＧＰ１４＋Δ１］に変換されることが予測される。
【０２２８】
以上を考慮すれば、ＡＳ及びＰＳいずれのＳｙｍｍｅｔｒｉｃ  ＮＡＴにおいても、Ｐ２Ｐ開始要求パケットに［ＧＰ１４＋Δ１］が割り当てられるように、装置１０は発信元ポート番号に［ＬＰ１］以外のポート番号を設定する必要がある。
【０２２９】
また、本実施の形態においては、装置２０は、宛先ポート番号［ＧＰ１４＋Δ１］に向けて１つのＰ２Ｐ開始要求パケットを送信しているが、装置２０は、複数のＰ２Ｐ開始要求パケットを送信しても良い。例えば、装置２０は、Ｐ２Ｐ通信路の確立に成功する可能性を高めるために、例えば、［ＧＰ１４＋Δ１］に加えて、［ＧＰ１４＋２×Δ１］及び［ＧＰ１４＋３×Δ１］のように、Δ１ずつインクリメントされたポート番号が宛先ポート番号に設定された複数のＰ２Ｐ開始要求パケットを送信しても良い。
【０２３０】
更にＰ２Ｐ通信路確立の成功率を高めるために、装置１０が送信するＰ２Ｐ開始要求パケットの数に比べて、装置２０が送信するＰ２Ｐ開始要求パケットの数を多くしても良い。具体的には、装置１０は、発信元ポート番号に［ＬＰ４］〜［ＬＰ４＋α］（αは、正の整数）の各々が設定され、宛先ポート番号に［ＧＰ２１］が設定されたα個のＰ２Ｐ開始要求パケットを送信する。これに対して、装置２０は、宛先ポート番号に［ＧＰ１４＋Δ１］〜［ＧＰ１４＋（ｍ＋α）×Δ１］（ｍは、正の整数）の各々が設定された（ｍ＋α）個のＰ２Ｐ開始要求パケットを送信する。この場合、装置１０がα個のパケットを送信している最中に、ルータ１０１に接続される他の宅内装置からｍ個のパケットが送信されたとしても、装置２０から送信された（ｍ＋α）個のＰ２Ｐ開始要求パケットの少なくとも１つが装置１０に到達する。その後、装置１０が装置２０から受信したＰ２Ｐ開始要求パケットのいずれか１つに対してＰ２Ｐ開始応答を送信することによって、装置１０及び２０の間にＰ２Ｐ通信路が確立される。
【０２３１】
＜接続シーケンス３：ルータ１０１がＰｏｒｔ  Ｒｅｕｓｅである場合＞
図１０は、ルータ１０１がＰｏｒｔ  Ｒｅｕｓｅである場合の接続シーケンスの詳細を示す図である。尚、図１０においては、説明の簡略化のために、ルータ２０１がＣｏｎｅ
ＮＡＴ特性を有する場合を想定する。
【０２３２】
上述したように、装置１０は、情報交換フェーズ（図６）のステップＳ６０１及びＳ６０２においてサーバ００１から通知された情報に基づき、装置２０が接続されるルータ２０１のＰ２Ｐ通信ポート番号を把握する。ルータ２０１がＣｏｎｅ  ＮＡＴ特性を有するので、ＮＡＴ情報通知にはルータ２０１のＰ２Ｐ通信ポート番号として［ＧＰ２１］が含まれる。一方、ルータ１０１はＰｏｒｔ  Ｒｅｕｓｅ特性を有するので、ステップＳ６０３及びＳ６０４において、装置１０はルータ１０１のＰ２Ｐ通信ポート番号としてＰ２Ｐ通信路確立フェーズで新たに開くことを予定するポート番号［ＬＰ４］を装置２０に通知している。
【０２３３】
そこで、装置１０の通信制御部１００７は、［ＬＰ４］が発信元ポート番号に設定され、かつ、宛先ポート番号に［ＧＰ２１］が設定されたパケットを、Ｐ２Ｐ開始要求として送信する（ステップＳ１００１）。尚、ルータ１０１は、装置１０から送信されたパケットにポート番号［ＬＰ４］を割り当てる。
【０２３４】
この段階では、ルータ２０１は、装置１０から送信され、宛先ポート番号が［ＧＰ２１］に設定されたパケットを装置２０に転送するようにＮＡＴを設定していないため、ルータ２０１は、ステップＳ１００１において送信されたＰ２Ｐ開始要求パケットを破棄し、装置２０に転送しない。ただし、この段階において、ルータ１０１は、発信元ポート番号にルータ２０１のポート番号［ＧＰ２１］が設定され、かつ、宛先ＩＰアドレス及び宛先ポート番号に（ＩＰＧ１、ＬＰ４）が設定されたパケットを、装置１０（ＩＰＬ１、ＬＰ４）へ転送するようにＮＡＴを設定する。
【０２３５】
一方、装置２０は、情報交換フェーズにおいてサーバ００１から通知された情報に基づき、装置１０が接続されるルータ１０１のＰ２Ｐ通信ポート番号を取得する。通信制御部２００７は、［ＧＰ２１］に対応する［ＬＰ１］が発信元ポート番号に設定され、かつ、宛先ポート番号に［ＬＰ４］が設定されたパケットを、Ｐ２Ｐ開始要求として送信する（ステップＳ１００２）。
【０２３６】
ルータ１０１は、装置２０から送信されたＰ２Ｐ開始要求パケットを装置１０に転送する。装置１０において、通信制御部１００７は、ルータ１０１から転送されたＰ２Ｐ開始要求パケットに応答して、通信部１００８を介して、Ｐ２Ｐ開始応答パケットを装置２０へ送信する（ステップＳ１００３）。
【０２３７】
ルータ１０１がＰｏｒｔ  Ｒｅｕｓｅ特性を有する場合、上記の処理手順に従って、装置１０及び２０の間にＰ２Ｐ通信路を確立することができる。
【０２３８】
尚、上述のＮＡＴ特性判定処理（図４Ｂ）においては、Ｐｏｒｔ  ＲｅｕｓｅのＣｏｎｅ  ＮＡＴがＳｙｍｍｅｔｒｉｃ  ＮＡＴであると判定される可能性があるが、現時点で利用できるＰｏｒｔ  ＲｅｕｓｅのＳｙｍｍｅｔｒｉｃ  ＮＡＴは知られていないので、Ｐｏｒｔ  Ｒｅｕｓｅの場合に、Ｃｏｎｅ  ＮＡＴの接続シーケンスを実行しても良い。
【０２３９】
以上のように、本実施の形態に係る通信システムにおいては、装置１０及び２０は、１つのポート［ＳＰ１］を開いている１台のサーバ００１とパケットを送受信することによって、接続されているルータのＣｏｎｅ  ＮＡＴ特性、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ特性及びＰｏｒｔ  Ｒｅｕｓｅ特性を判定することができる。装置１０及び２０は、ＮＡＴ特性の判定結果に基づいて、Ｐ２Ｐ通信に利用するルータのポート番号を交換した後、Ｐ２Ｐ通信路を確立することができる。
【０２４０】
尚、上記の図８〜図１０に示される各シーケンス図においては、装置１０が装置２０より先にＰ２Ｐ開始要求を送信しているが、装置２０が装置１０より先にＰ２Ｐ開始要求を送信しても良い。
【０２４１】
Ｐ２Ｐ通信路確立フェーズにおいて、Ｐ２Ｐ通信路の確立に成功する可能性を向上させるために、装置１０は、情報交換フェーズにおいて、複数のポート番号を装置２０に通知しても良い。
【０２４２】
また、本実施の形態においては、パケットにポートを割り当てる度に、割り当てられるポート番号が増加するルータが示されているが、本発明は、パケットにポートを割り当てる度に、割り当てられるポート番号が減少するルータにも同様に適用することができることは、言うまでもない。
【０２４３】
（実施の形態２）
以下、本発明の実施の形態２に係る通信システムについて、実施の形態１との相違点を中心に説明する。
【０２４４】
本実施の形態に係る装置１０及び２０は、実施の形態１に係る構成に加えて、更に、一旦判断したＮＡＴ特性を記憶する記憶部を備え、２回目以降にＰ２Ｐ通信路を確立する際に、記憶部に記憶されるＮＡＴ特性を再利用する。これにより、２回目以降にＰ２Ｐ通信路を確立する際には、ＮＡＴ特性調査フェーズを省略することができる。
【０２４５】
また、装置１０及び２０は、ＮＡＴ調査フェーズの処理を実行することなくＰ２Ｐ通信路確立処理を進め、Ｐ２Ｐ通信路の確立に失敗したときに初めて、ＮＡＴ特性調査フェーズの処理を実行しても良い。
【０２４６】
尚、記憶部が記憶するのはＮＡＴ特性だけに限られず、更に差分値Δ１、Δ２を記憶しても良い。この場合、２回目以降のＰ２Ｐ通信路確立時に、中継特性判断部１００４及び２００４は、図４Ｂのフローチャートに従って、記憶部に記憶される差分値Δ１、Δ２からＮＡＴ特性を判断しても良い。
【０２４７】
本実施形態に係る通信システムによれば、装置１０及び２０がＮＡＴ特性を調査する回数が低減されるので、２回目以降のＰ２Ｐ通信路確立処理を効率的に実行することができる。
【０２４８】
図１１は、本発明の実施の形態２に係る接続シーケンス図である。図１１の例では、ルータ１０１がＳｙｍｍｅｔｒｉｃ  ＮＡＴ、ルータ２０１がＣｏｎｅ  ＮＡＴ特性を有する場合を想定する。
【０２４９】
以下では、装置１０及び２０が一旦調査したルータ１０１及び２０１のＮＡＴ特性と、ルータ１０１及びルータ２０１のそれぞれのポート割り当て間隔Δ１とを記憶部に記憶している場合を想定する。尚、本実施の形態においては、ＮＡＴ特性とポート割当て間隔Δ１を記憶しているが、差分値Δ１、Δ２の２つを記憶しておき、必要に応じて、２つの差分値からＮＡＴ特性を判断してもよい。
【０２５０】
＜基準ポート番号取得フェーズ＞
装置１０は、前回Ｐ２Ｐ通信路を確立した際に実行したＮＡＴ特性調査フェーズにおいて、ルータ１０１のＮＡＴ特性とポート割当て間隔を既に調査している。そこで、本実施の形態では、装置１０は、ＮＡＴ特性調査フェーズ及び準備フェーズにおける処理を省略し、代わりにＰ２Ｐ通信ポート番号を決定するための基準ポートを取得する。
【０２５１】
まず、装置１０において、アドレス情報調査要求送信部１００１は、発信元ポート番号に装置１０のポート番号［ＬＰ１］が設定され、かつ、宛先ポート番号にサーバ００１のポート番号［ＳＰ１］が設定されたアドレス情報調査要求パケットを送信する（ステップＳ１１０１）。
【０２５２】
サーバ００１において、アドレス情報調査部００１１は、アドレス情報調査要求パケットの発信元ポート番号、すなわち、ルータ１０１のポート番号［ＧＰ１１］を含むアドレス情報調査応答パケットを、通信部００１４を介して送信する（ステップＳ１１０２）。
【０２５３】
装置１０は、ステップＳ１１０２で取得したポート番号［ＧＰ１１］を、Ｐ２Ｐ通信ポート番号を決定するための基準ポート番号とする。
【０２５４】
同様に、装置２０は、ＮＡＴ特性調査フェーズ及び準備フェーズにおける処理を省略して、Ｐ２Ｐ通信ポート番号決定のための基準ポート番号［ＧＰ２１］を取得する（ステップＳ１１０３〜Ｓ１１０４）。
【０２５５】
尚、図１１においては、図示の都合上、装置１０が先にアドレス情報調査要求を送信しているが、装置２０が先にアドレス情報調査要求を送信しても良い。すなわち、装置１０及び２０のアドレス情報調査要求は、情報交換フェーズが行われる前に完了していれば、その順序及び実行タイミングは任意で良い。
【０２５６】
＜情報交換フェーズ＞
次に、装置２０は、ルータ２０１のＰ２Ｐ通信ポート番号を含むＮＡＴ情報通知パケットをサーバ００１に送信する（ステップＳ１１０５）。図１１の例では、ルータ２０１がＣｏｎｅ  ＮＡＴ特性を有するので、ＮＡＴ情報通知には、Ｐ２Ｐ通信ポート番号として、ステップＳ１１０４で取得した基準ポート番号［ＧＰ２１］が含まれる。
【０２５７】
次に、サーバ００１において、中継情報転送部００１３は、装置２０から送信されたＮＡＴ情報通知パケットを受信すると、受信したＮＡＴ情報通知パケットを、通信部００１４を介して装置１０に転送する（ステップＳ１１０６）。
【０２５８】
同様に、装置１０において、中継情報送信部１００５は、ルータ１０１のＰ２Ｐ通信ポート番号を含むＮＡＴ情報通知パケットをサーバ００１に送信する（ステップＳ１１０７）。図１１の例では、ルータ１０１はＳｙｍｍｅｔｒｉｃ  ＮＡＴを有するので、ＮＡＴ情報通知には、ステップＳ１１０２で取得した基準ポート番号［ＧＰ１１］と、前回のＮＡＴ特性調査フェーズで記憶部に格納したポート番号割当て間隔Δ１とを加算した値［ＧＰ１１＋Δ１］が、Ｐ２Ｐ通信ポート番号として含まれる。
【０２５９】
次に、サーバ００１において、中継情報転送部００１３は、装置１０から送信されたＮＡＴ情報通知パケットを受信すると、受信したＮＡＴ情報通知パケットを、通信部００１４を介して装置２０に転送する（ステップＳ１１０８）。
【０２６０】
尚、本実施の形態においては、装置２０が装置１０より先にＮＡＴ情報通知パケットを送信しているが、装置１０が装置２０より先にＮＡＴ情報通知パケットを送信しても良い。
【０２６１】
図１１の例のように、ルータ１０１及びルータ２０１のいずれもＰｏｒｔ  Ｒｅｕｓｅではない場合には、基準ポート番号取得フェーズ（ステップＳ１１０１〜Ｓ１１０４）を実施することが必要である。ただし、装置１０及び２０が記憶しているＮＡＴ特性がＰｏｒｔＲｅｕｓｅである場合には、後続の処理においてルータ１０１及び２０１が開くポート番号を容易に予測できる。したがって、装置１０及び２０は、基準ポート番号取得フェーズを省略して、情報交換フェーズに進み、自身がＰ２Ｐ通信に使用する予定であるポート番号［ＬＰ４］を含むＮＡＴ情報通知を送信すれば良い。
【０２６２】
＜接続フェーズ＞
装置１０の通信制御部１００７は、ルータ２０１のＰ２Ｐ通信ポート番号［ＧＰ２１］を取得している。通信制御部１００７は、通信部１００８を介して、発信元ポート番号に［ＬＰ１］が設定され、かつ、宛先ポート番号に［ＧＰ２１］が設定されたＰ２Ｐ開始要求パケットをルータ２０１に送信する（ステップＳ１１０９）。図１１の例では、ルータ１０１はＳｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有するので、装置１０から送信されたパケットにポート番号［ＧＰ１１＋Δ１］を割り当てる（ただし、Δ１は、ルータ１０１のポート割当て間隔である）。
【０２６３】
尚、本実施の形態においては、発信元ポート番号に［ＬＰ１］を設定しているが、ルータ１０１がＳｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有する場合には、任意のポート番号を設定してもよい。その場合、任意のポート番号から送信したＰ２Ｐ開始要求パケットの発信元ポート番号は、ルータ１０１によって、［ＧＰ１１＋Δ１］に変換されると考えられるためである。
【０２６４】
ステップＳ１１０９においてＰ２Ｐ開始要求パケットが送信された時点では、ルータ２０１は、宛先ポート番号に［ＧＰ２１］が設定されたパケットを装置２０に転送するようにＮＡＴを設定していない。したがって、ルータ２０１は、受信したＰ２Ｐ開始要求パケットを破棄し、当該パケットを装置２０に転送しない。一方、ルータ１０１は、Ｐ２Ｐ開始要求パケットを転送することによって、宛先に（ＩＰＧ１、ＧＰ１１＋Δ１）が設定され、かつ、発信元ポート番号に［ＧＰ２１］が設定されたパケットを装置１０（ＩＰＬ１、ＬＰ１）に転送するようにＮＡＴを設定する。
【０２６５】
一方、装置２０は、情報交換フェーズにおいて、ルータ１０１のＰ２Ｐ通信ポート番号［ＧＰ１１＋Δ１］を含むＮＡＴ特性情報を取得している。装置２０は、発信元ポート番号に［ＬＰ１］が設定され、かつ、宛先ポート番号に［ＧＰ１１＋Δ１］が設定されたＰ２Ｐ開始要求パケットを送信する（ステップＳ１１１０）。
【０２６６】
ルータ１０１は、装置２０から送信されたＰ２Ｐ開始要求パケットを装置１０に転送する。装置１０は、ルータ１０１によって転送されたＰ２Ｐ開始要求パケットを受信すると、Ｐ２Ｐ開始応答パケットを装置２０に送信する（ステップＳ１１１１）。
【０２６７】
尚、Ｐ２Ｐ通信路確立フェーズ（ステップＳ１１０９〜Ｓ１１１１）において、装置１０及び２０がＰ２Ｐ通信路の確立に失敗した場合、装置１０及び２０の各々は、ＮＡＴ特性調査フェーズから再度接続処理を繰り返せば良い。
【０２６８】
（実施の形態３）
実施の形態３では、本発明に係る通信システムが、汎用プロトコルの１つであるＳＩＰ（Ｓｅｓｓｉｏｎ  Ｉｎｉｔｉａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ：ＲＦＣ３２６１、ＲＦＣ３５８１）を実装した１台のＳＩＰサーバを用いて実現される例について説明する。
【０２６９】
図１２は、本発明の実施の形態３に係る通信システムの全体構成を示すブロック図である。
【０２７０】
実施の形態１（図１）と同様に、プライベートネットワーク０１及び０２は、グローバルＩＰアドレス［ＩＰＧ１］を有するルータ１０１及びグローバルＩＰアドレス［ＩＰＧ２］を有するルータ２０１をそれぞれ介して、グローバルネットワーク００に接続されている。また、グローバルネットワーク００には、グローバルＩＰアドレス［ＩＰＳ］を有し、ポート番号［ＳＰ１］をグローバルネットワーク００上で開放しているＳＩＰサーバ３００が接続されている。更に、プライベートネットワーク０１には、ローカルＩＰアドレス［ＩＰＬ１］を有する装置１０が接続され、プライベートネットワーク０２には、ローカルＩＰアドレス［ＩＰＬ２］を有する装置２０が接続されている。
【０２７１】
尚、ＳＩＰサーバ３００は、ＳＩＰプロトコル処理能力に加えて、実施の形態１に係るサーバ００１と同様の構成（図２Ｃ）及び機能を備える。装置１０及び２０は、ＳＩＰプロトコルを利用して、ＳＩＰサーバ３００を介してＰ２Ｐ通信のための呼制御を行う装置（例えばＩＰ電話など）であり、実施の形態１に係る装置１０及び２０と同様の構成（図２Ａ及び図２Ｂ）及び機能を備える。したがって、装置１０、２０及びＳＩＰサーバ３００の構成についての詳細な説明を省略する。
【０２７２】
図１３は、Ｐ２Ｐ通信路確立のために送受信されるパケットと、ＳＩＰメッセージとの対応関係を示す図である。
【０２７３】
本実施の形態では、装置１０及び２０は、ＳＩＰメッセージを利用して、Ｐ２Ｐ通信路の確立に必要な情報（例えば、ＩＰアドレスやポート番号）を交換する。ただし、装置１０及び２０が直接交換するメッセージは、特に限定されず、ＳＩＰメッセージであっても良いし、非ＳＩＰメッセージであっても良い。
【０２７４】
以下、図１３を参照しながら、本実施形態に係る通信システムで送受信されるメッセージＮｏ．１〜１２について順に説明する。
【０２７５】
（メッセージＮｏ．１：アドレス情報調査要求）
本実施の形態において、装置１０及び２０がサーバへと送信するアドレス情報調査要求（図４ＡのステップＳ４０１、Ｓ４０３及びＳ４０６）は、ＳＩＰにおけるＯＰＴＩＯＮＳリクエスト、ＵＰＤＡＴＥリクエスト、ＭＥＳＳＡＧＥリクエストのいずれかによって実現される。以下の例では、アドレス情報調査要求がＯＰＴＩＯＮＳリクエストを用いてサーバに送信される場合について説明する。ＯＰＴＩＯＮＳリクエストのメッセージフォーマットの例を図１４に示す。
【０２７６】
（メッセージＮｏ．２：アドレス情報調査応答）
サーバから装置１０及び２０のそれぞれに返信されるアドレス情報調査応答（図４ＡのステップＳ４０２、Ｓ４０４及びＳ４０７）は、ＳＩＰにおける２００  ＯＫレスポンスによって実現される。２００  ＯＫレスポンスのメッセージフォーマットの例を図１５に示す。
【０２７７】
（メッセージＮｏ．３：Ｐ２Ｐ通信準備）
装置１０から装置２０宛てに、あるいは、装置２０から装置１０宛てに送信されるＰ２Ｐ準備パケット（図４ＡのステップＳ４０５）は、サーバ経由で送信されないため、ＳＩＰの呼制御メッセージを利用する必要がない。したがって、Ｐ２Ｐ準備パケットは、任意のフォーマットのメッセージを含んでいれば良く、その図示を省略する。
【０２７８】
（メッセージＮｏ．４：ＮＡＴ情報通知）
サーバから装置１０及び２０のそれぞれに返信されるＮＡＴ情報通知（図６のステップＳ６０１及びＳ６０２）は、ＳＩＰにおけるＩＮＶＩＴＥリクエストによって実現される。ＩＮＶＩＴＥリクエストのメッセージフォーマットの例を図１６に示す。
【０２７９】
（メッセージＮｏ．５）
メッセージＮｏ．５は、装置１０からサーバへ、あるいは、サーバから装置２０へと、呼制御において「試行中」であることを通知する１００  Ｔｒｙｉｎｇレスポンスである。ただし、このメッセージは、本実施の形態に係るシステムがＰ２Ｐ通信路を確立するために使用するものではない。また、メッセージフォーマットの図示も省略する。
【０２８０】
（メッセージＮｏ．６：ＮＡＴ情報通知）
装置１０からサーバへ、あるいは、サーバから装置２０へと送信されるＮＡＴ情報通知（図６のステップＳ６０３及びＳ６０４）は、ＳＩＰにおける１８３  Ｓｅｓｓｉｏｎ  Ｐｒｏｇｒｅｓｓレスポンスによって実現される。１８３  Ｓｅｓｓｉｏｎ  Ｐｒｏｇｒｅｓｓレスポンスのメッセージフォーマットを図１７に示す。
【０２８１】
（メッセージＮｏ．７：Ｐ２Ｐ開始要求）
装置１０から装置２０へと送信されるＰ２Ｐ開始要求（図７のステップＳ７０１、図８のステップＳ８０１、図９のステップＳ９０１、図１０のステップＳ１００１）は、サーバ経由で送信されないため、ＳＩＰの呼制御メッセージでなくても良い。すなわち、Ｐ２Ｐ開始要求は、任意のフォーマットのメッセージであれば良く、また、その図示を省略する。
【０２８２】
（メッセージＮｏ．８：Ｐ２Ｐ開始要求）
装置２０から装置１０へと送信されるＰ２Ｐ開始要求（図７のステップＳ７０２、図８のステップＳ８０２、図９のＳステップ９０２、図１０のステップＳ１００２）は、サーバ経由で送信されるメッセージではないない。したがって、装置２０から装置１０へと送信されるＰ２Ｐ開始要求は、必ずしもＳＩＰメッセージである必要はなく、任意のフォーマットのメッセージであれば良い。
【０２８３】
（メッセージＮｏ．９：Ｐ２Ｐ開始応答）
装置１０から装置２０へと送信されるＰ２Ｐ開始応答（図７ステップＳ７０３、図８のステップＳ８０３、図９のステップＳ９０３、図１０のステップＳ１００３）は、サーバ経由で送信されるメッセージではない。したがって、装置１０から装置２０へと送信されるＰ２Ｐ開始応答は、必ずしもＳＩＰメッセージである必要はなく、任意のフォーマットのメッセージであれば良い。
【０２８４】
（メッセージＮｏ．１０）
メッセージＮｏ．１０は、装置２０からサーバへ、あるいは、サーバから装置１０へと、呼制御において「呼出し中」であることを通知する１８０  Ｒｉｎｇｉｎｇレスポンスである。ただし、このメッセージは、本実施の形態に係るシステムがＰ２Ｐ通信路を確立するために使用するものではない。また、メッセージフォーマットの図示も省略する。
【０２８５】
（メッセージＮｏ．１１）
メッセージＮｏ．１１は、装置１０からサーバへ、あるいは、サーバから装置２０へと、呼制御において「リクエストの成功」を通知する２００  ＯＫレスポンスである。ただし、このメッセージは、本実施の形態に係るシステムがＰ２Ｐ通信路を確立するために使用するものではない。また、メッセージフォーマットの図示も省略する。
【０２８６】
（メッセージＮｏ．１２）
メッセージＮｏ．１２は、装置２０からサーバへ、あるいは、サーバから装置１０へと、呼制御において「セッション（Ｐ２Ｐ通信路）の確立」を通知するＡＣＫリクエストである。ただし、このメッセージは、本実施の形態に係るシステムがＰ２Ｐ通信路を確立するために使用するものではない。また、メッセージフォーマットの図示も省略する。
【０２８７】
尚、図１３に示されるメッセージの対応関係は、単なる例示に過ぎない。本発明に係るＰ２Ｐ通信路確立方法を実行するために必要な情報（上記のメッセージＮｏ．１、２、４及び６）は、ＳＩＰで規定される他のメッセージを利用して送受信されても良い。
【０２８８】
以下、図１４〜図１９を併せて参照しながら、本実施形態に係る装置１０及び２０がＳＩＰプロトコルを利用してルータ１０１及び２０１のＮＡＴ特性を調査し、更に、Ｐ２Ｐ通信路を確立するための制御シーケンスを説明する。
【０２８９】
＜ＮＡＴ特性調査フェーズ及び準備フェーズ＞
図１８は、ＳＩＰプロトコルを用いたＮＡＴ特性調査フェーズ及び準備フェーズにおける処理の詳細を示すシーケンス図である。
【０２９０】
まず、装置１０は、ＯＰＴＩＯＮＳリクエストパケット１をＳＩＰサーバ３００へ送信する（ステップＳ２４０１）。より詳細には、アドレス情報調査要求送信部１００１は、発信元ポート番号と宛先ポート番号とに、それぞれ装置１０のポート番号［ＬＰ１］とＳＩＰサーバ３００のポート番号［ＳＰ１］とを設定し、更に、データ部にＳＩＰのＯＰＴＩＯＮＳリクエストメッセージを挿入したＯＰＴＩＯＮＳリクエストパケット１を作成する。
【０２９１】
このとき、図１４に示されるように、ＯＰＴＩＯＮＳリクエストメッセージの「Ｖｉａヘッダ」には、「ｒｐｏｒｔパラメータ」が設定される。Ｖｉａヘッダは、リクエストが辿ったパス及びリクエストがルーティングされる時に辿るパスを記述するためのものであるが、ここにｒｐｏｒｔパラメータが記述されているか否かによって、ＳＩＰサーバ３００は、受け取ったパケットがアドレス情報調査要求であることを識別することができる。
【０２９２】
次に、ＳＩＰサーバ３００は、装置１０から送信されたＯＰＴＩＯＮＳリクエストパケット１に応答して、２００  ＯＫレスポンス１を装置に返送する（ステップＳ２４０２）。より詳細には、通信部００１４は、ＯＰＴＩＯＮＳリクエストパケット１を受信し、受信したパケットをアドレス情報調査部００１１へと転送する。
【０２９３】
アドレス情報調査部００１１は、Ｖｉａヘッダの「ｓｅｎｔ−ｂｙパラメータ」に付与されているＩＰアドレス（図１４の例では［ＩＰＬ１］）と、転送されたパケットの送信元ＩＰアドレスが異なるため、転送されたパケットのヘッダを参照して、発信元ＩＰアドレス、すなわち、ルータ１０１のＩＰアドレス［ＩＰＧ１］を取り出す。また、Ｖｉａヘッダにｒｐｏｒｔパラメータが指定されているため、アドレス情報調査部００１１は、転送されたパケットのヘッダを参照して、発信元ポート番号、すなわち、ルータ１０１によって設定されたポート番号［ＧＰ１１］を取り出す。アドレス情報調査部００１１は、取り出した発信元ＩＰアドレス及び発信元ポート番号（ＩＰＧ１、ＧＰ１１）をアドレス情報送信部００１２へ出力する。
【０２９４】
アドレス情報送信部００１２は、アドレス情報調査部００１１から受け取ったルータ１０１のＩＰアドレス及びポート番号（ＩＰＧ１、ＧＰ１１）をデータ部に含む２００  ＯＫレスポンスパケット１を生成し、生成したパケットを通信部００１４に出力する。より詳細には、図１５に示されるように、アドレス情報送信部００１２は、２００  ＯＫメッセージのフォーマットにおいて、「ｒｅｃｅｉｖｅｄパラメータ」にルータ１０１のＩＰアドレス［ＩＰＧ１］を記述し、「ｒｐｏｒｔパラメータ」にルータ１０１のポート番号［ＧＰ１１］を記述し、更に、ＳＩＰサーバのアドレス情報を付加した「Ｖｉａヘッダ」を追加したメッセージをデータ部に挿入した２００  ＯＫレスポンスパケット１をルータ１０１へ送信する。
【０２９５】
ルータ１０１は、アドレス情報送信部００１２から受け取ったパケットを装置１０へと転送する。また、装置１０において、通信部１００８が２００  ＯＫレスポンスパケット１を受信すると、受信したパケットをアドレス情報受信部１００２へ転送する。
【０２９６】
次に、装置１０は、ＯＰＴＩＯＮＳリクエストパケット２をサーバ００１へ送信する（ステップＳ２４０３）。より詳細には、アドレス情報調査要求送信部１００１は、装置１０のポート番号［ＬＰ２］を発信元ポート番号に設定され、かつ、ＳＩＰサーバ３００のポート番号［ＳＰ１］を宛先ポート番号に設定されたＯＰＴＩＯＮＳリクエストパケット２を送信する。ＯＰＴＩＯＮＳリクエストパケット１と同様に、ＯＰＴＩＯＮＳリクエストパケット２のｖｉａヘッダにも「ｒｐｏｒｔパラメータ」が設定される。
【０２９７】
次に、ＳＩＰサーバ３００は、装置１０から送信されたＯＰＴＩＯＮＳリクエストパケット２に応答して、２００  ＯＫレスポンスパケット２を装置に返送する（ステップＳ２４０４）。より詳細には、通信部００１４は、ＯＰＴＩＯＮＳリクエストパケット２を受信し、受信したパケットをアドレス情報調査部００１１へと転送する。アドレス情報調査部００１１は、転送されたパケットのヘッダを参照して、発信元ＩＰアドレス及びポート番号、すなわち、ルータ１０１のＩＰアドレス及びポート番号（ＩＰＧ１、ＧＰ１２）を取り出し、取り出したＩＰアドレス及びポート番号（ＩＰＧ１、ＧＰ１２）をアドレス情報送信部００１２へ出力する。
【０２９８】
アドレス情報送信部００１２は、アドレス情報調査部００１１から受け取ったルータ１０１のＩＰアドレス及びポート番号（ＩＰＧ１、ＧＰ１２）をデータ部に含む２００  ＯＫレスポンスパケット２を生成し、生成したパケットを通信部００１４に出力する。より詳細には、図１５に示されるように、２００  ＯＫメッセージのフォーマットにおいて、「ｒｅｃｅｉｖｅｄパラメータ」にルータ１０１のＩＰアドレス［ＩＰＧ１］を記載し、「ｒｐｏｒｔパラメータ」にルータ１０１のポート番号［ＧＰ１２］を記載し、更に、ＳＩＰサーバのアドレス情報を含む「Ｖｉａヘッダ」を追加したメッセージをデータ部に挿入した２００  ＯＫレスポンスパケット２をルータ１０１へ送信する。
【０２９９】
ルータ１０１は、アドレス情報送信部００１２から受け取ったパケットを装置１０へと転送する。また、装置１０において、通信部１００８は、２００  ＯＫレスポンスパケット２を受信すると、受信したパケットをアドレス情報受信部１００２へ転送する。
【０３００】
次に、装置１０は、Ｐ２Ｐ通信準備パケットを装置２０に送信する（ステップＳ２４０５）。より詳細には、装置１０は、サーバとは異なるＩＰアドレスを持つ装置２０に対して割り当てられるポート番号［ＧＰ１３］をルータ１０１上に用意するために、装置１０のポート番号［ＬＰ１］が発信元ポート番号に設定され、かつ、装置２０のＩＰアドレス及びポート番号を宛先とするパケットをルータ１０１へ送信する。
【０３０１】
次に、装置１０は、ＯＰＴＩＯＮＳリクエストパケット３をサーバ００１へ送信する（ステップＳ２４０６）。より詳細には、アドレス情報調査要求送信部１００１は、装置１０のポート番号［ＬＰ３］が発信元ポート番号に設定され、かつ、ＳＩＰサーバ３００のポート番号［ＳＰ１］が宛先ポート番号に設定されたパケットを、ＯＰＴＩＯＮＳリクエストパケット３として送信する。ＯＰＴＩＯＮＳリクエストパケット１及び２と同様に、ＯＰＴＩＯＮＳリクエストパケット３のＶｉａヘッダには、「ｒｐｏｒｔパラメータ」が付与される。
【０３０２】
ＳＩＰサーバ３００は、装置１０から送信されたＯＰＴＩＯＮＳ３に応答して、２００  ＯＫレスポンス３を装置１０に返送する（ステップＳ２４０７）。より詳細には、通信部００１４は、アドレス情報調査要求パケット３を受信し、受信したパケットをアドレス情報調査部００１１へと転送する。アドレス情報調査部００１１は、転送されたパケットのヘッダを参照して、発信元ＩＰアドレス及びポート番号、すなわち、ルータ１０１のＩＰアドレス及びポート番号（ＩＰＧ１、ＧＰ１４）をアドレス情報送信部００１２へ出力する。
【０３０３】
アドレス情報送信部００１２は、アドレス情報調査部から受け取ったルータ１０１のＩＰアドレス及びポート番号（ＩＰＧ１、ＧＰ１４）をデータ部に含む２００  ＯＫレスポンスパケット３を生成し、生成したパケットを通信部００１４に出力する。より詳細には、図１５に示される２００  ＯＫメッセージのフォーマットにおいて、「ｒｅｃｅｉｖｅｄパラメータ」にルータ１０１のＩＰアドレス［ＩＰＧ１］を記述し、「ｒｐｏｒｔパラメータ」にルータ１０１のポート番号［ＧＰ１４］を記述し、更に、ＳＩＰサーバのアドレス情報を含む「Ｖｉａヘッダ」を追加したメッセージをデータ部に挿入した２００  ＯＫレスポンスパケット３をルータ１０１へ送信する。
【０３０４】
ルータ１０１は、アドレス情報送信部００１２から受け取ったパケットを装置１０へと転送する。また、装置１０において、通信部１００８は、２００  ＯＫレスポンスパケット３を受信すると、受信したパケットをアドレス情報受信部１００２へ転送する。
【０３０５】
次に、装置１０は、２００  ＯＫレスポンスパケット１〜３に基づいて、ルータ１０１のＮＡＴ特性を判断する（ステップＳ２４０８）。より詳細には、装置１０において、中継特性判断部１００４は、２００  ＯＫレスポンスパケット１〜３に含まれるルータ１０１の３つのポート番号［ＧＰ１１］、［ＧＰ１２］及び［ＧＰ１４］から、実施の形態１における図４Ｂの処理フローに従ってルータ１０１のＮＡＴ特性を判断する。
【０３０６】
装置２０は、図１８と同様の手順に従って、ルータ２０１のＮＡＴ特性を調査し、ルータ２０１にＰ２Ｐ通信で使用するためのポートを用意する。
【０３０７】
尚、装置１０が送信するパケットの宛先ポート番号は、実際にルータ２０１が使用しているポート番号（例えば、装置２０がＳＩＰサーバ３００と通信している際に、ルータ２０１が装置２０のパケットに割り当てているポート番号）であることが好ましい。というのも、ルータ２０１が侵入検知機能を有する場合、ルータ２０１が通信に使用していないポート番号が宛先ポート番号に設定されたＰ２Ｐ通信準備パケットを装置１０から受信すると、当該パケットを不正アクセスパケットであると誤検知する可能性があるからである。ルータ２０１が不正アクセスパケットを検知した場合、装置１０から送信された後続のパケットを全て破棄するため、装置１０は、装置２０と通信不能となる虞がある。
【０３０８】
あるいは、装置１０は、Ｐ２Ｐ通信準備パケットがルータ２０１に届かないように当該パケットのＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）の値を調整しても良い。装置１０がＰ２Ｐ通信準備パケットを送信するのは、自身が接続されるルータ１０１に、装置２０とのＰ２Ｐ通信のためのポート番号を用意するためであり、必ずしもルータ２０１にＰ２Ｐ通信準備パケットが届く必要はない。そこで、装置１０は、Ｐ２Ｐ通信準備パケットがルータ１０１に到達し、かつ、ルータ２０１に到達しないように、ＴＴＬの値を調整すれば良い。
【０３０９】
ステップＳ２４０５において、ルータ１０１は、装置２０からルータ２０１を介してルータ１０１（ＩＰＧ１、ＧＰ１３）へと送信されたパケットを受け付けることができるように、ＮＡＴを設定する。ルータ１０１がＮＡＴを設定する方法は、ＮＡＴ特性（図２３Ａ〜図２３Ｅ）に応じて異なるが、ここでの説明を省略する。
【０３１０】
また、本実施の形態において、Ｐ２Ｐ通信準備パケットをＯＰＴＩＯＮＳリクエストパケット２の送信後に送信しているが、Ｐ２Ｐ通信準備パケットの送信タイミングはこの限りではない。より詳細には、Ｐ２Ｐ通信準備パケットは、ＯＰＴＩＯＮＳリクエストパケット３の送信前に送信されていれば良く、ＯＰＴＩＯＮＳリクエストパケット１の次に送信されても良い。また、Ｐ２Ｐ通信準備パケットの発信元ポート番号は、必ずしも［ＬＰ１］である必要はなく、ＯＰＴＩＯＮＳリクエストパケット１〜３の発信元ポート番号［ＬＰ１］〜［ＬＰ３］のいずれかと同一であれば良い。
【０３１１】
更に、図１８では、説明の便宜上、ＮＡＴ特性調査フェーズ（ステップＳ２４０１〜Ｓ２４０４、ステップＳ２４０６〜Ｓ２４０８）と、準備フェーズ（ステップＳ２４０５）とが併せて示されているが、ＮＡＴ特性調査フェーズと、準備フェーズとが互いに分離されていても良い。
【０３１２】
更に、ＮＡＴ特性調査フェーズ及び準備フェーズは、必ずしも本実施形態に示される順序で実行される必要はない。したがって、装置１０及び２０は、後続の情報交換フェーズの前に、ＮＡＴ特性調査フェーズ及び準備フェーズを完了していれば、本実施形態と異なる順序で各ステップを実行しても良い。
【０３１３】
＜情報交換フェーズ及びＰ２Ｐ通信路確立フェーズ＞
図１９は、本発明の第３の実施形態に係る通信システムがＰ２Ｐ通信路を確立するための制御処理を示すシーケンス図である。図１９では、一例として、ルータ１０１がＳｙｍｍｅｔｒｉｃ  ＮＡＴであり、ルータ２０２がＣｏｎｅ  ＮＡＴである場合のシーケンスが示されている。
【０３１４】
図１９に示されるステップＳ２５０１〜Ｓ２５０２と、ステップＳ２５０５〜Ｓ２５０６とは、実施の形態１に係る情報交換フェーズ（図６）に相当する。また、図１９のステップＳ２５０７〜Ｓ２５０９は、実施の形態１に係るＰ２Ｐ通信路確立フェーズ（図９Ａ）に相当する。図１９に示されるステップＳ２５０３〜Ｓ２５０４と、ステップＳ２５１０〜Ｓ２５１５とは、ＳＩＰプロトコルの一般的なシーケンスであり、本発明に係るＰ２Ｐ通信路確立方法においては特に規定されるものではない。
【０３１５】
以下、図１９を参照しながら、ＳＩＰプロトコルを用いた情報交換フェーズ及びＰ２Ｐ通信路確立フェーズにおける処理の詳細を示すシーケンスについて説明する。
【０３１６】
上述したように、情報交換フェーズにおいては、各装置は自身が接続されるルータのＮＡＴ特性に基づいてルータのＰ２Ｐ通信ポート番号を決定し、決定したポート番号をサーバに通知する。Ｐ２Ｐ通信のためにルータに設けるポート番号は、実施の形態１で説明した手順で決定する。
【０３１７】
まず、装置２０は、自身が接続されているルータ２０１のＰ２Ｐ通信ポート番号をＳＩＰサーバ３００へ通知する（ステップＳ２５０１）。より詳細には、中継情報送信部２００５は、ＮＡＴ特性調査フェーズにおいてルータ２０１のＮＡＴ特性がＣｏｎｅ  ＮＡＴであると判断しているため、ポート番号［ＧＰ２１］をＰ２Ｐ通信ポート番号としてデータ部に含むＩＮＶＩＴＥリクエストパケットを生成する。
【０３１８】
このとき、中継情報送信部２００５は、図１６に示されるＩＮＶＩＴＥリクエストメッセージにおいて、メッセージボディ（ＳＤＰ：Ｓｅｓｓｉｏｎ  Ｄｅｓｃｒｉｐｔｉｏｎ
Ｐｒｏｔｏｃｏｌ）の「ｏパラメータ」あるいは「ｃパラメータ」の一方もしくは両方に、ルータ２０１のＩＰアドレス［ＩＰＧ２］を記載し、「ｍパラメータ」にルータ２０１のＰ２Ｐ通信ポート番号［ＧＰ２１］を記載する。中継情報送信部２００５は、生成したＩＮＶＩＴＥリクエストパケットを、通信部２００８を介してＳＩＰサーバ３００へ送信する。
【０３１９】
ＳＩＰサーバ３００は、ＩＮＶＩＴＥリクエストパケットを受信すると、受信したＩＮＶＩＴＥリクエストパケットを装置１０へと転送する（ステップＳ２５０２）。より詳細には、ＳＩＰサーバ３００において、中継情報転送部００１３は、装置２０から送信されたＩＮＶＩＴＥリクエストパケットを通信部００１４を介して受信し、受信したＩＮＶＩＴＥリクエストパケットを通信部００１４を介して装置１０へ送信する。
【０３２０】
ＩＮＶＩＴＥリクエストを受信した装置１０は、「試行中状態」を装置２０に通知するため、１００  Ｔｒｙｉｎｇレスポンス（メッセージフォーマットは図示せず）パケットをＳＩＰサーバ３００経由で装置２０へ送信する（ステップＳ２５０３及びＳ２５０４）。
【０３２１】
次に、装置１０は、自身が接続されているルータ１０１のＰ２Ｐ通信ポート番号をＳＩＰサーバ３００へ通知する（ステップＳ２５０５）。より詳細には、中継情報送信部１００５は、ＮＡＴ特性調査フェーズにおいてルータ１０１のＮＡＴ特性がＳｙｍｍｅｔｒｉｃ  ＮＡＴであると判断しているため、ポート番号［ＧＰ１４＋Δ１］をＰ２Ｐ通信ポート番号としてデータ部に含む１８３  Ｓｅｓｓｉｏｎ  Ｐｒｏｇｒｅｓｓレスポンスパケットを生成する。
【０３２２】
このとき、中継情報送信部１００５は、図１７に示される１８３  Ｓｅｓｓｉｏｎ  Ｐｒｏｇｒｅｓｓレスポンスメッセージにおいて、メッセージボディ（ＳＤＰ）の「ｏパラメータ」あるいは「ｃパラメータ」の一方もしくは両方に、ルータ１０１のＩＰアドレス［ＩＰＧ１］を記載し、「ｍパラメータ」にルータ１０１のＰ２Ｐ通信ポート番号［ＧＰ１４＋Δ１］を記載する。中継情報送信部１００５は、生成した１８３  Ｓｅｓｓｉｏｎ
Ｐｒｏｇｒｅｓｓレスポンスパケットを、通信部１００８を介してＳＩＰサーバ３００へ送信する。
【０３２３】
ＳＩＰサーバ３００は、１８３  Ｓｅｓｓｉｏｎ  Ｐｒｏｇｒｅｓｓレスポンスパケットを受信すると、受信した１８３  Ｓｅｓｓｉｏｎ  Ｐｒｏｇｒｅｓｓレスポンスパケットを装置２０へと転送する（ステップＳ２５０６）。より詳細には、ＳＩＰサーバ３００において、中継情報転送部００１３は、装置１０から送信された１８３  Ｓｅｓｓｉｏｎ
Ｐｒｏｇｒｅｓｓレスポンスパケットを、通信部００１４を介して受信し、受信した１８３  Ｓｅｓｓｉｏｎ  Ｐｒｏｇｒｅｓｓレスポンスパケットを、通信部００１４を介して装置２０へ送信する。
【０３２４】
尚、本実施の形態においては、装置２０が先にＩＮＶＩＴＥリクエストパケットを送信しているが、装置１０が先にＩＮＶＩＴＥリクエストパケットを送信しても良い。その場合には、装置２０が１００  Ｔｒｙｉｎｇレスポンスと、１８３  Ｓｅｓｓｉｏｎ  Ｐｒｏｇｒｅｓｓレスポンスパケットとを送信する。
【０３２５】
装置１０は、情報交換フェーズのステップＳ２５０１及びＳ２５０２において、装置２０からＩＮＶＩＴＥリクエストパケットを受信すると、メッセージボディ（ＳＤＰ）に記載される情報に基づき、装置２０が接続されるルータ２０１のＰ２Ｐ通信ポート番号を把握する。図１９の例では、ルータ２０１がＣｏｎｅ  ＮＡＴ特性を有するので、ＳＤＰの「ｍパラメータ」にはルータ２０１のＰ２Ｐ通信ポート番号として［ＧＰ２１］が記述されている。一方、ルータ１０１はＳｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有するので、ステップＳ２５０５及びＳ２５０６において、装置１０はルータ１０１のＰ２Ｐ通信ポート番号として［ＧＰ１４＋Δ１］を装置２０に通知している。
【０３２６】
そこで、装置１０の通信制御部１００７は、［ＬＰ４］が発信元ポート番号に設定され、かつ、宛先ポート番号に［ＧＰ２１］が設定されたパケットを、Ｐ２Ｐ開始要求として送信する（ステップＳ２５０７）。
【０３２７】
この段階では、ルータ２０１は、装置１０から送信された宛先ポート番号が［ＧＰ２１］に設定されたパケットを転送するようにＮＡＴを設定していないため、ルータ２０１は、ステップＳ２５０５において送信されたＰ２Ｐ開始要求パケットを破棄し、装置２０に転送しない。この段階において、ルータ１０１は、発信元ポート番号にルータ２０１のポート番号［ＧＰ２１］が設定され、かつ、宛先ＩＰアドレス及び宛先ポート番号に（ＩＰＧ１、ＧＰ１４＋Δ１）が設定されたパケットを、装置１０（ＩＰＬ１、ＬＰ１）へ転送するようにＮＡＴを設定する。
【０３２８】
一方、装置２０は、情報交換フェーズにおいて装置１０から通知された情報に基づき、装置１０が接続されるルータ１０１のＰ２Ｐ通信ポート番号を取得する。通信制御部２００７は、［ＧＰ２１］に対応する［ＬＰ１］が発信元ポート番号に設定され、かつ、宛先ポート番号に［ＧＰ１４＋Δ１］が設定されたパケットを、Ｐ２Ｐ開始要求として送信する（ステップＳ２５０８）。
【０３２９】
ルータ１０１は、装置２０から送信されたＰ２Ｐ開始要求パケットを装置１０に転送する。装置１０において、通信制御部１００７は、ルータ１０１から転送されたＰ２Ｐ開始要求パケットに応答して、通信部１００８を介して、Ｐ２Ｐ開始応答パケットを装置２０へ送信する（ステップＳ２５０９）。
【０３３０】
Ｐ２Ｐ開始応答を送信し、Ｐ２Ｐ通信路を確立した装置１０は、「呼出し中状態（例えば電話のベルが鳴っている状態）」を装置２０に通知するため、１８０  Ｒｉｎｇｉｎｇレスポンス（メッセージフォーマットは図示せず）パケットをＳＩＰサーバ３００経由で装置２０へ送信する（ステップＳ２５１０〜Ｓ２５１１）。
【０３３１】
その後、装置１０のユーザが受話器を取ると、装置１０は、「呼出し中状態」から「呼出し完了状態（ユーザが受話器を取った状態）」に変化したことを通知するため、２００
ＯＫレスポンス（メッセージフォーマットは図示せず）パケットをＳＩＰサーバ３００経由で装置２０へ送信する（ステップＳ２５１２及びＳ２５１３）。
【０３３２】
装置２０は、ＳＩＰサーバ３００から２００  ＯＫレスポンスパケットを受信すると、「呼確立状態」を装置１０に通知するため、ＡＣＫリクエスト（メッセージフォーマットは図示せず）パケットをＳＩＰサーバ３００経由で装置１０へ送信する（ステップＳ２５１４及びＳ２５１５）。
【０３３３】
ステップＳ２５１５以降は、装置１０と装置２０との間で、例えばＩＰ電話での通話などのＰ２Ｐ通信を行うことが可能となる。
【０３３４】
尚、本実施の形態において、発信元ポート番号に［ＬＰ４］を設定しているが、ルータの特性がＳｙｍｍｅｔｒｉｃ  ＮＡＴである場合には、ステップＳ４０５においてＰ２Ｐ通信準備パケットを送信したポート番号［ＬＰ１］以外の任意のポート番号を設定しても良い。より詳細には、ルータ１０１がＡＳ  Ｓｙｍｍｅｔｒｉｃ  ＮＡＴである場合には、［ＬＰ１］から送信したＰ２Ｐ開始要求パケットは、ステップＳ２４０５における宛先アドレスと同じ宛先に向けて送信されるため、［ＧＰ１３］が割り当てられる。また、ルータ２０１がＰＳ  Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有する場合には、任意のポート番号から送信したＰ２Ｐ開始要求パケットの発信元ポート番号は、ルータ１０１によって、［ＧＰ１４＋Δ１］に変換されると考えられる。このことにより、ＡＳ及びＰＳどちらのＳｙｍｍｅｔｒｉｃ  ＮＡＴでも［ＧＰ１４＋Δ１］を割り当てられるために［ＬＰ１］以外のポート番号を設定する必要がある。
【０３３５】
また、本実施の形態における情報通知フェーズ及びＰ２Ｐ通信路確立フェーズは一例であり、図１９に示されるものと異なるＳＩＰメッセージ及びシーケンスを採用しても良い。例えば、Ｓ２５０５〜Ｓ２５０６の１８３  Ｓｅｓｓｉｏｎ  Ｐｒｏｇｒｅｓｓレスポンスを省略しても良い。この場合、ＮＡＴ情報通知を表す図１７のメッセージボディ（ＳＤＰ）を、Ｓ２５０３〜Ｓ２５０４の１００  Ｔｒｙｉｎｇレスポンスのデータ部に挿入する。また例えば、ステップＳ２５０１〜Ｓ２５０２に示すＩＮＶＩＴＥリクエストの後、Ｓ２５０５〜Ｓ２５０６の１８３  Ｓｅｓｓｉｏｎ  Ｐｒｏｇｒｅｓｓレスポンスの代わりに、Ｓ２５１０〜Ｓ２５１１の１８０  Ｒｉｎｇｉｎｇレスポンスを送信しても良い。この場合、ＮＡＴ情報通知を表す図１７のメッセージボディ（ＳＤＰ）を、Ｓ２５１０〜Ｓ２５１１の１８０  Ｒｉｎｇｉｎｇレスポンスのデータ部に挿入する。その他、様々なシーケンスによって、本実施の形態に係るＰ２Ｐ通信路確立方法を実現することができる。
【０３３６】
また、図１４〜図１７に示したメッセージフォーマットは、最低限の必須ヘッダを含む例であり、更に他のオプションヘッダやパラメータなどを含んでいても良い。
【０３３７】
上記の各実施形態においては、説明の簡略化のために、ルータ２０１がＣｏｎｅ  ＮＡＴ特性を有する場合について説明した。ただし、ルータ２０１がＣｏｎｅ  ＮＡＴ以外のＮＡＴ特性を有する場合にも、本発明を同様に適用することができる。以下、ルータ１０１及び２０１のＮＡＴ特性のあらゆる組み合わせに本発明が適用可能であることを簡単に説明する。
【０３３８】
図２０Ａは、情報交換フェーズにおいて、２台のルータのＮＡＴ特性の組み合わせ毎に、各ルータが通知するＰ２Ｐポートの組み合わせを示す表である。
【０３３９】
図２０Ａに示される（ａ）〜（ｃ）は、上記の図６に関する説明で示した項目（ａ）〜（ｃ）のそれぞれに対応する。例えば、ルータ１０１がＣｏｎｅ  ＮＡＴで、ルータ２０１がＳｙｍｍｅｔｒｉｃ  ＮＡＴである場合、ルータ１０１に接続される装置１０が（ａ）の情報をＮＡＴ情報通知で装置２０に通知し、装置２０が（ｂ）の情報をＮＡＴ情報通知で装置１０に通知する。
【０３４０】
図２０Ｂは、Ｐ２Ｐ通信路確立フェーズにおいて、２台のルータのＮＡＴ特性の組み合わせ毎に、各ルータに接続される装置が実行する処理の組み合わせを示す表である。
【０３４１】
図２０Ｂに示される（ｅ）、（ｆ）及び（ｇ）は、図８の装置１０の処理、図９の装置１０の処理及び図１０の装置１０の処理に相当する。例えば、ルータ１０１がＣｏｎｅ  ＮＡＴで、ルータ２０１がＳｙｍｍｅｔｒｉｃ  ＮＡＴである場合、ルータ１０１に接続される装置１０が（ｅ）の処理（図８の装置１０と同様の処理）を実行し、ルータ２０１に接続される装置２０が（ｆ）の処理（図１０の装置１０と同様の処理）を実行することにより、Ｐ２Ｐ通信路を確立することができる。
【０３４２】
また、上記の各実施形態においては、説明の簡略化のために、装置１０及びサーバ００１が１台のルータ１０１を介してグローバルネットワーク００に接続される例を説明したが、装置１０及びサーバ００１は、複数のルータを介して接続されていても良い。また、装置２０及びサーバ００１間に配置されるルータの数も同様である。この点を以下に説明する。
【０３４３】
図２１Ａは、装置が３つのルータを介してグローバルネットワークに接続されている例を示す図である。
【０３４４】
図２１Ａに示されるように、装置１０は、Ｃｏｎｅ  ＮＡＴ特性を有する３台のルータ１〜３を介してグローバルネットワーク００に接続されている。装置１０が発信元ポート番号に［ＬＰ１］が設定されたパケットを送信すると、当該パケットは、ルータ１のポートＲＰ１１、ルータ２のポートＲＰ２１、ルータ３のポートＲＰ３１を通って、ネットワーク００に到達する。この場合、グローバルネットワーク００に接続されるサーバは、見かけ上、装置１０が１台のＣｏｎｅ  ＮＡＴ特性を有するルータを介して自身に接続されていると見なすことができる。
【０３４５】
図２１Ｂは、装置が３つのルータを介してグローバルネットワークに接続されている他の例を示す図である。
【０３４６】
図２１Ｂに示されるように、装置１０は、Ｃｏｎｅ  ＮＡＴ特性を有するルータ１と、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有するルータ２と、Ｃｏｎｅ  ＮＡＴ特性を有するルータ３とを介してグローバルネットワーク００に接続されている。装置１０が発信元ポート番号に［ＬＰ１］が設定されたパケットを送信すると、当該パケットは、ルータ１のポート［ＲＰ１１］を通じてルータ２に到達する。ルータ２は、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有するので、受信したパケットに異なるポート［ＲＰ２１］、［ＲＰ２２］及び［ＲＰ２３］を割り当て、パケットをルータ３に転送する。ルータ３がＣｏｎｅ  ＮＡＴ特性を有する場合であっても、送信元ポート番号が異なるパケットの各々は、ルータ３の異なるポートを通じてグローバルネットワークに転送されるので、グローバルネットワーク００に接続されるサーバは、見かけ上、装置１０が１台のＳｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有するルータを介して自身に接続されていると見なすことができる。
【０３４７】
このように、装置及びサーバが複数のルータを介して接続されていても、グローバルネットワーク００から見える見かけ上のＮＡＴ特性に基づいて、接続シーケンスを選択することによって、２台の装置間にＰ２Ｐ通信路を確立することができる。
【０３４８】
更に、上記の実施の形態１及び３のＮＡＴ特性調査フェーズ（図４Ａ及び図１８）において、装置は、アドレス情報調査要求に対するアドレス情報調査応答を受信してから、次のアドレス情報調査要求を送信しているが、アドレス情報調査応答を待たずに、次のアドレス情報調査要求を送信しても良い。具体的には、装置は、アドレス情報調査要求１及び２と、Ｐ２Ｐ通信準備パケットと、アドレス情報調査要求３との４つのパケットを連続して送信し、その後、サーバ００１からアドレス情報調査応答１〜３を受信しても良い。これら４つのパケットを極めて短時間に続けて送信した場合、４つのパケットの送信期間に、ルータに共通に接続される他の装置から送信されたパケットが割り込む可能性を低減することができるので、差分値Δ１及びΔ２が本来の値から変動することを防止できる。したがって、Ｃｏｎｅ  ＮＡＴが、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴであると誤判定される可能性を低減することが可能となる。
【０３４９】
更に、誤判定抑制の観点では、ＮＡＴ特性調査フェーズを２回以上繰り返し行うことによって、ＮＡＴ特性の判定精度を高めても良い。この場合、ポート割当て間隔を正確に測定することも可能となる。
【０３５０】
更に、ルータのＮＡＴ特性によっては、次のような方法によって、簡易にＮＡＴ特性を判定することも可能である。
【０３５１】
市販されている家庭用のルータの中では、ポート割当て間隔が一定値（例えば、１）であるものが多数存在する。このようにポート割り当て間隔が一定値である場合、２つのアドレス調査要求を送信する間にＰ２Ｐ通信準備パケットを送信することによって、ＮＡＴ特性を判定することができる。以下、その理由を説明する。
【０３５２】
図２２Ａは、ポート割当て間隔が１であり、かつ、Ｃｏｎｅ  ＮＡＴ特性を有するルータの図であり、図２２Ｂは、ポート割当て間隔が１であり、かつ、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有するルータの図である。
【０３５３】
まず、図２２Ａを参照して、ルータ１０１がＣｏｎｅ  ＮＡＴ特性を有する場合、Ｐ２Ｐ通信準備パケットに割り当てられるポート番号［ＧＰ１３］は、２つのアドレス情報調査要求パケットに割り当てられるポート番号［ＧＰ１１］または［ＧＰ１２］のいずれかと等しい。したがって、サーバ００１から返信される２つのアドレス情報調査応答パケットに含まれるポート番号の差分Δは１となる。
【０３５４】
次に、図２２Ｂを参照して、ルータ１０１がＳｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有する場合には、Ｐ２Ｐ通信準備パケットに割り当てられるポート番号［ＧＰ１３］は、２つのアドレス情報調査要求パケットとに割り当てられるポート番号［ＧＰ１１］及び［ＧＰ１２］のいずれとも相違する。したがって、サーバ００１から返信される２つのアドレス情報調査応答パケットに含まれるポート番号の差分Δは２となる。
【０３５５】
以上のように、２つのアドレス情報調査応答パケットから取得される２つのポート番号の差分Δが一定値（この例では、１）である場合には、ルータ１０１がＣｏｎｅ  ＮＡＴ特性であると判定でき、それ以外の場合には、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ特性であると判定できる。
【０３５６】
尚、図２２Ａおよび図２２Ｂに示される処理を実現するには、装置１０の記憶部（図示なし）に、２つのアドレス情報調査応答パケットに含まれるポート番号の間隔（差分Δ）と当該間隔に応じて異なるＮＡＴ特性とが対応付けされた対応情報を、予め保持しておけば良い。例えば、対応情報において、差分Δ（１）とＣｏｎｅ  ＮＡＴ特性とが対応付けされ、差分Δ（２）とＳｙｍｍｅｔｒｉｃ  ＮＡＴ特性とが対応付けされているとする。この場合、装置１０は、この対応情報を参照することで、差分Δが１であれば、Ｃｏｎｅ  ＮＡＴ特性であると判定でき、差分Δが２であれば、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ特性であると判定できる。
【０３５７】
尚、上記各実施の形態に係る通信装置の機能ブロック（図２Ａ及び図２Ｂ）は、記憶装置（ＲＯＭ、ＲＡＭ、ハードディスク等）に格納された上述の処理手順をコンピュータに実行させることができるプログラムを、コンピュータに実行させることによっても実現できる。このコンピュータは、携帯装置等の電子装置に組み込まれたコンピュータを含む概念である。この場合、当該プログラムは、記録媒体を介して記憶装置内に格納された後に実行されても良いし、記憶媒体から直接実行されても良い。また、上記の実施形態に係る通信装置の機能ブロックは、集積回路として実現されても良い。
【０３５８】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示にすぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。
【産業上の利用可能性】
【０３５９】
本発明に係る通信装置、通信方法及び通信システムは、１つのＩＰアドレスを有する１台のサーバとのみ通信することによって、ルータのＮＡＴ特性を調査することができる。したがって、本発明は、例えば、異なるプライベートネットワークに属する２台の装置の間でＰ２Ｐ通信を行う家電製品、通信装置等に有用である。
【図面の簡単な説明】
【０３６０】
【図１】本発明の実施の形態１に係る通信システムの全体構成を示すブロック図
【図２Ａ】図１に示される装置１０の概略構成を示すブロック図
【図２Ｂ】図１に示される装置２０の概略構成を示すブロック図
【図２Ｃ】図１に示されるサーバ００１の概略構成を示すブロック図
【図３】本実施の形態に係る通信システムがＰ２Ｐ通信路を確立するために実行する処理の概略を示すシーケンス図
【図４Ａ】図３に示されるＮＡＴ特性調査フェーズ及び準備フェーズにおける処理の詳細を示すシーケンス図
【図４Ｂ】図４Ａに示されるステップＳ４０８の処理の詳細を示すフローチャート
【図５Ａ】図４Ａに示されるステップＳ４１０を説明するための図
【図５Ｂ】図４Ａに示されるステップＳ４１１を説明するための図
【図６】図３に示される情報交換フェーズにおける処理の詳細を示すシーケンス図
【図７】図３に示されるＰ２Ｐ通信路確立フェーズにおける処理の詳細を示すシーケンス図
【図８】ルータ１０１がＣｏｎｅ  ＮＡＴである場合の接続シーケンスの詳細を示す図
【図９Ａ】ルータ１０１がＳｙｍｍｅｔｒｉｃ  ＮＡＴである場合の接続シーケンスの詳細を示す図
【図９Ｂ】図９Ａに示されるポート番号を示す図
【図１０】ルータ１０１がＰｏｒｔ  Ｒｅｕｓｅである場合の接続シーケンスの詳細を示す図
【図１１】本発明の実施の形態２に係る通信システムの接続シーケンス図
【図１２】本発明の実施の形態３に係る通信システムの全体構成を示すブロック図
【図１３】Ｐ２Ｐ通信路確立のために送受信されるパケットと、ＳＩＰメッセージとの対応関係を示す図
【図１４】ＳＩＰのＯＰＴＩＯＮＳリクエストのメッセージフォーマットの例を示す図
【図１５】ＳＩＰの２００  ＯＫレスポンスのメッセージフォーマットの例を示す図
【図１６】ＳＩＰのＩＮＶＩＴＥリクエストのメッセージフォーマットの例を示す図
【図１７】ＳＩＰの１８３  Ｓｅｓｓｉｏｎ  Ｐｒｏｇｒｅｓｓレスポンスのメッセージフォーマットの例を示す図
【図１８】ＳＩＰプロトコルを用いたＮＡＴ特性調査フェーズ及び準備フェーズにおける処理の詳細を示すシーケンス図
【図１９】本発明の第３の実施形態に係る通信システムがＰ２Ｐ通信路を確立するための制御処理を示すシーケンス図
【図２０Ａ】情報交換フェーズにおいて、２台のルータのＮＡＴ特性の組み合わせ毎に、各ルータが通知するＰ２Ｐポートの組み合わせを示す表
【図２０Ｂ】Ｐ２Ｐ通信路確立フェーズにおいて、２台のルータのＮＡＴ特性の組み合わせ毎に、各ルータに接続される装置が実行する処理の組み合わせを示す表
【図２１Ａ】装置が３つのルータを介してグローバルネットワークに接続されている例を示す図
【図２１Ｂ】装置が３つのルータを介してグローバルネットワークに接続されている他の例を示す図
【図２２Ａ】ポート割当て間隔が１であり、かつ、Ｃｏｎｅ  ＮＡＴ特性を有するルータの図
【図２２Ｂ】ポート割当て間隔が１であり、かつ、Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有するルータの図
【図２３Ａ】Ｆｕｌｌ  Ｃｏｎｅ  ＮＡＴと呼ばれるＮＡＴを説明するための図
【図２３Ｂ】Ｒｅｓｔｒｉｃｔｅｄ  Ｃｏｎｅ  ＮＡＴと呼ばれるＮＡＴを説明するための図
【図２３Ｃ】Ｐｏｒｔ  Ｒｅｓｔｒｉｃｔｅｄ  Ｃｏｎｅ  ＮＡＴと呼ばれるＮＡＴ特性を説明するための図
【図２３Ｄ】Ａｄｒｅｓｓ  Ｓｅｎｓｉｔｉｖｅ  Ｓｙｍｍｅｔｒｉｃ  ＮＡＴと呼ばれるＮＡＴを説明するための図
【図２３Ｅ】Ｐｏｒｔ  Ｓｅｎｓｉｔｉｖｅ  Ｓｙｍｍｅｔｒｉｃ  ＮＡＴと呼ばれるＮＡＴを説明するための図
【図２４Ａ】Ｐｏｒｔ  Ｒｅｕｓｅ特性の概略を説明するための図
【図２４Ｂ】Ｐｏｒｔ  Ｒｅｕｓｅ特性を有するルータの機能を説明するための図
【図２５Ａ】ＳＴＵＮ−ＴｅｓｔＩの概略を示す図
【図２５Ｂ】ＳＴＵＮ−ＴｅｓｔＩＩの概略を示す図
【図２５Ｃ】ＳＴＵＮ−ＴｅｓｔＩＩＩの概略を示す図
【図２６】ＳＴＵＮによってＮＡＴ特性を調査するためのフローチャート
【図２７】ＳＴＵＮを利用するＰ２Ｐ通信路確立方法を示すシーケンス図
【図２８】Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有するルータを介して接続される２つの通信装置に、ＳＴＵＮを利用するＰ２Ｐ通信路確立方法を適用した場合の処理手順を示すシーケンス図
【図２９】Ｓｙｍｍｅｔｒｉｃ  ＮＡＴ特性を有するルータを介して接続される２つの通信装置に、ＳＴＵＮを利用するＰ２Ｐ通信路確立方法を適用した場合の処理手順を示すシーケンス図
【図３０】従来のＰ２Ｐ通信路確立方法を示すシーケンス図
【符号の説明】
【０３６１】
００                グローバルネットワーク
０１、０２          プライベートネットワーク
００１              サーバ
１０、２０          装置
１０１、２０１      ルータ
３００              ＳＩＰサーバ
００１１            アドレス情報調査部
００１２            アドレス情報送信部
００１３            中継情報転送部
１００１、２００１  アドレス情報調査要求送信部
１００２、２００２  アドレス情報受信部
１００３、２００３  直接通信準備要求送信部
１００４、２００４  中継特性判断部
１００５、２００５  中継情報送信部
１００６、２００６  中継情報受信部
１００７、２００７  通信制御部
１００８、２００８  通信部
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ＮＡＴ（ネットワークアドレス変換）機能を有する第１の中継装置を介してサーバに接続される通信装置であって、
前記通信装置のローカルポート番号であって互いに異なるポート番号が発信元ポート番号に設定され、かつ、前記サーバのポート番号であって互いに同一のポート番号が宛先ポート番号に設定された複数のアドレス情報調査要求パケットを、前記サーバに１つずつ送信するアドレス情報調査要求送信部と、
前記アドレス情報調査要求送信部が最初のアドレス情報調査要求パケットを送信した後、最後のアドレス情報調査要求パケットを送信する前までの間に、前記複数のアドレス情報調査要求パケットのいずれかの発信元ポート番号と同一のポート番号が発信元ポート番号に設定された通信準備パケットを、前記サーバとは異なる宛先に送信する通信準備要求送信部と、
前記アドレス情報調査要求パケットに応答して前記サーバから返送され、かつ、前記第１の中継装置において前記アドレス情報調査要求パケットの発信元ポート番号から変換された中継ポート番号を含むアドレス情報調査応答パケットを、前記アドレス情報調査要求パケットと同じ数だけ受信するアドレス情報受信部とを備える、通信装置。
【請求項２】
前記アドレス情報受信部において受信した各前記アドレス情報調査応答パケットに含まれる前記中継ポート番号に基づいて、前記第１の中継装置のＮＡＴ特性を判断する中継特性判断部を更に備える、請求項１に記載の通信装置。
【請求項３】
前記アドレス情報調査要求送信部は、
宛先ポート番号に前記サーバのポート番号が設定され、かつ、発信元ポート番号に前記通信装置の第１のローカルポート番号が設定された第１のアドレス情報調査要求パケットと、
宛先ポート番号が前記第１のアドレス情報調査要求パケットと同一であり、かつ、発信元ポート番号に前記第１のローカルポート番号とは異なる前記通信装置の第２のローカルポート番号が設定された第２のアドレス情報調査要求パケットと、
宛先ポート番号が前記第１のアドレス情報調査要求パケットと同一であり、かつ、発信元ポート番号に前記第１及び第２のローカルポート番号とは異なる前記通信装置の第３のローカルポート番号が設定された第３のアドレス情報調査要求パケットとを１つずつ送信し、
前記アドレス情報受信部は、
前記第１のアドレス情報調査要求パケットに応答して前記サーバから返送され、前記第１の中継装置の第１の中継ポート番号を含む第１のアドレス情報パケットと、
前記第２のアドレス情報調査要求パケットに応答して前記サーバから返送され、前記第１の中継装置の第２の中継ポート番号を含む第２のアドレス情報パケットと、
前記第３のアドレス情報調査要求パケットに応答して前記サーバから返送され、前記第１の中継装置の第３の中継ポート番号を含む第３のアドレス情報パケットとを受信し、
前記中継特性判断部は、前記第１と第２の中継ポート番号から計算される第１の差分値と、前記第２と第３の中継ポート番号から計算される第２の差分値とを計算し、前記第１及び第２の差分値の比較に基づいて、前記第１の中継装置のＮＡＴ特性を判断することを特徴とする、請求項２に記載の通信装置。
【請求項４】
前記サーバには、ＮＡＴ機能を有する第２の中継装置を介して、接続先通信装置が接続されており、
前記通信装置は、前記中継特性判断部によって判定された第１の中継装置のＮＡＴ特性に基づいて、前記接続先通信装置とのピア・ツー・ピア通信に前記第１の中継装置が割り当てる第１のＰ２Ｐ中継ポート番号を予測し、予測した第１のＰ２Ｐ中継ポート番号を含む第１の中継情報パケットを前記サーバに送信する中継情報送信部と、
接続先通信装置とのピア・ツー・ピア通信に前記第２の中継装置が割り当てる第２のＰ２Ｐ中継ポート番号を含む第２の中継情報パケットを、前記サーバから受信する中継情報受信部と、
前記接続先通信装置にピア・ツー・ピア通信の開始を要求するために、前記第２の中継情報パケットに含まれる前記第２のＰ２Ｐ中継ポート番号を宛先ポート番号に設定した開始要求パケットを送信する通信制御部とを更に備える、請求項３に記載の通信装置。
【請求項５】
前記中継情報送信部は、前記中継特性判断部が、前記第１及び第２の差分値が同じ値であると判断した場合に、前記第１〜第３の中継ポート番号のうちいずれか１つを前記第１のＰ２Ｐ中継ポート番号として含む前記第１の中継情報パケットを送信し、前記中継特性判断部が、前記第１及び第２の差分値が不一致であると判断した場合に、前記第３の中継ポート番号と、前記第１及び第２の差分値のうちいずれか小さい方とを加算した値を前記第１のＰ２Ｐ中継ポート番号として含む前記第１の中継情報パケットを送信することを特徴とする、請求項４に記載の通信装置。
【請求項６】
前記中継情報送信部は、前記中継特性判断部が、前記第１の中継ポート番号及び前記第１のローカルポート番号が一致すると判断した場合に、任意のローカルポート番号を前記第１のＰ２Ｐ中継ポート番号として含む前記第１の中継情報パケットを送信することを特徴とする、請求項４に記載の通信装置。
【請求項７】
前記通信準備要求送信部は、前記通信準備パケットが前記第１の中継装置に到達し、かつ、前記第２の中継装置には到達しないように、前記通信準備パケットのヘッダに含まれるＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）の値を調整することを特徴とする、請求項４に記載の通信装置。
【請求項８】
前記通信装置は、前記第１及び第２の差分値を保持するための記憶部を更に備え、
２回目以降のピア・ツー・ピア通信開始前において、前記中継特性判断部は、前記記憶部に保持される前記第１及び第２の差分値から前記第１の中継装置のＮＡＴ特性を判断することを特徴とする、請求項４に記載の通信装置。
【請求項９】
前記アドレス情報調査要求送信部は、宛先ポート番号に前記サーバのポート番号が設定され、かつ、発信元ポート番号に前記通信装置の第４のローカルポート番号が設定された第４のアドレス情報調査要求パケットを送信し、
前記アドレス情報受信部は、前記第４のアドレス情報調査要求パケットに応答して前記サーバから返送され、前記第１の中継装置の第４の中継ポート番号を含む第４のアドレス情報パケットを受信し、
前記中継情報送信部は、前記中継特性判断部が、前記記憶部に保持される前記第１及び第２の差分値が同じ値であると判断した場合、前記第４の中継ポート番号を前記第１のＰ２Ｐ中継ポート番号として含む前記第１の中継情報パケットを送信し、前記中継特性判断部が、前記記憶部に保持されている第１及び第２の差分値が不一致であると判断した場合、前記第４の中継ポート番号と、前記保持されている第１及び第２の差分値のうちいずれか小さい方とを加算した値を前記第１のＰ２Ｐ中継ポート番号として含む前記第１の中継情報パケットを送信することを特徴とする、請求項８に記載の通信装置。
【請求項１０】
前記通信装置は、前記第１の中継ポート番号及び前記第１のローカルポート番号が一致すると判断した場合に、前記第１の中継ポート番号及び前記第１のローカルポート番号が一致することを示す情報を前記記憶部に記憶し、
２回目以降のピア・ツー・ピア通信開始前において、前記中継特性判断部が、前記記憶部に前記第１の中継ポート番号及び前記第１のローカルポート番号が一致することを示す情報が保持されていると判断した場合、前記中継情報送信部は、任意のローカルポート番号を前記第１のＰ２Ｐ中継ポート番号として含む前記第１の中継情報パケットを送信することを特徴とする、請求項８に記載の通信装置。
【請求項１１】
各前記アドレス情報調査応答パケットに含まれる前記中継ポート番号の間隔と、当該間隔に応じて異なるＮＡＴ特性とを対応付けした対応情報を、予め保持した記憶部を更に備え、
前記アドレス情報調査要求送信部は、
宛先ポート番号に前記サーバのポート番号が設定され、かつ、発信元ポート番号に前記通信装置の第１のローカルポート番号が設定された第１のアドレス情報調査要求パケットと、
宛先ポート番号が前記第１のアドレス情報調査要求パケットと同一であり、かつ、発信元ポート番号に前記第１のローカルポート番号とは異なる前記通信装置の第２のローカルポート番号が設定された第２のアドレス情報調査要求パケットとを１つずつ送信し、
前記アドレス情報受信部は、
前記第１のアドレス情報調査要求パケットに応答して前記サーバから返送され、前記第１の中継装置の第１の中継ポート番号を含む第１のアドレス情報パケットと、
前記第２のアドレス情報調査要求パケットに応答して前記サーバから返送され、前記第１の中継装置の第２の中継ポート番号を含む第２のアドレス情報パケットとを受信し、
前記中継特性判断部は、前記対応情報において前記受信した第１と第２の中継ポート番号の間隔に対応するＮＡＴ特性を、前記第１の中継装置のＮＡＴ特性と判断することを特徴とする、請求項２に記載の通信装置。
【請求項１２】
ＮＡＴ（ネットワークアドレス変換）機能を有する第１の中継装置を介してサーバに接続される通信装置が、前記サーバと通信を行うことによって、前記第１の中継装置のＮＡＴ特性を判断する通信方法であって、
前記通信装置のローカルポート番号であって互いに異なるポート番号が発信元ポート番号に設定され、かつ、前記サーバのポート番号であって互いに同一のポート番号が宛先ポート番号に設定された複数のアドレス情報調査要求パケットを、前記サーバに１つずつ送信するアドレス情報調査要求送信ステップと、
前記アドレス情報調査要求送信ステップにおいて最初のアドレス情報調査要求パケットが送信された後、最後のアドレス情報調査要求パケットが送信される前までの間に、前記複数のアドレス情報調査要求パケットのいずれかの発信元ポート番号と同一のポート番号が発信元ポート番号に設定された通信準備パケットを、前記サーバとは異なる宛先に送信する通信準備要求送信ステップと、
前記アドレス情報調査要求パケットに応答して前記サーバから返送され、かつ、前記第１の中継装置において前記アドレス情報調査要求パケットの発信元ポート番号から変換された中継ポート番号を含むアドレス情報調査応答パケットを、前記アドレス情報調査要求パケットと同じ数だけ受信するアドレス情報受信ステップと、
前記アドレス情報受信ステップにおいて受信した各前記アドレス情報調査応答パケットに含まれる前記中継ポート番号に基づいて、前記第１の中継装置のＮＡＴ特性を判断する中継特性判断ステップとを備える、通信方法。
【請求項１３】
通信システムであって、
サーバと、
ＮＡＴ（ネットワークアドレス変換）機能を有する第１の中継装置と、
ＮＡＴ機能を有する第２の中継装置と、
前記第１の中継装置を介して前記サーバに接続される第１の通信装置と、
前記第２の中継装置を介して前記サーバに接続される第２の通信装置とを備え、
前記第１及び第２の通信装置の各々は、
自装置のローカルポート番号であって互いに異なるポート番号が発信元ポート番号に設定され、かつ、前記サーバのポート番号であって互いに同一のポート番号が宛先ポート番号に設定された複数のアドレス情報調査要求パケットを、前記サーバに１つずつ送信するアドレス情報調査要求送信部と、
前記アドレス情報調査要求送信部が最初のアドレス情報調査要求パケットを送信した後、最後のアドレス情報調査要求パケットを送信する前までの間に、前記複数のアドレス情報調査要求パケットのいずれかの発信元ポート番号と同一のポート番号が発信元ポート番号に設定された通信準備パケットを、前記サーバとは異なる宛先に送信する通信準備要求送信部と、
前記アドレス情報調査要求パケットに応答して前記サーバから返送され、かつ、各々に接続される中継装置において前記アドレス情報調査要求パケットの発信元ポート番号から変換された中継ポート番号を含むアドレス情報調査応答パケットを、前記アドレス情報調査要求パケットと同じ数だけ受信するアドレス情報受信部と、
前記アドレス情報受信部において受信した各前記アドレス情報調査応答パケットに含まれる前記中継ポート番号に基づいて、前記第１の中継装置のＮＡＴ特性を判断する中継特性判断部とを含み、
前記サーバは、
前記第１及び第２の通信装置の各々から送信された前記アドレス情報調査要求パケットに含まれる前記中継ポート番号を取り出すアドレス情報調査部と、
前記取り出された中継ポート番号を含むアドレス情報調査要求応答パケットを送信するアドレス情報送信部とを含む、通信システム。
【請求項１４】
通信システムであって、
サーバと、
ＮＡＴ（ネットワークアドレス変換）機能を有する第１の中継装置と、
ＮＡＴ機能を有する第２の中継装置と、
前記第１の中継装置を介して前記サーバに接続される第１の通信装置と、
前記第２の中継装置を介して前記サーバに接続される第２の通信装置とを備え、
前記第１及び第２の通信装置の各々は、
自装置のローカルポート番号であって互いに異なるポート番号が発信元ポート番号に設定され、かつ、前記サーバのポート番号であって互いに同一のポート番号が宛先ポート番号に設定された複数のアドレス情報調査要求パケットを、前記サーバに１つずつ送信するアドレス情報調査要求送信部と、
前記アドレス情報調査要求送信部が最初のアドレス情報調査要求パケットを送信した後、最後のアドレス情報調査要求パケットを送信する前までの間に、前記複数のアドレス情報調査要求パケットのいずれかの発信元ポート番号と同一のポート番号が発信元ポート番号に設定された通信準備パケットを、前記サーバとは異なる宛先に送信する通信準備要求送信部とを含み、
前記サーバは、前記第１及び第２の中継装置の各々において前記アドレス情報調査要求パケットの発信元ポート番号から変換された中継ポート番号に基づいて、前記第１及び第２の中継装置のＮＡＴ特性を判定するアドレス情報調査部を含む、通信システム。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2008035578.tif 000048
【図２Ａ】
2008035578.tif 000049
【図２Ｂ】
2008035578.tif 000050
【図２Ｃ】
2008035578.tif 000051
【図３】
2008035578.tif 000052
【図４Ａ】
2008035578.tif 000053
【図４Ｂ】
2008035578.tif 000054
【図５Ａ】
2008035578.tif 000055
【図５Ｂ】
2008035578.tif 000056
【図６】
2008035578.tif 000057
【図７】
2008035578.tif 000058
【図８】
2008035578.tif 000059
【図９Ａ】
2008035578.tif 000060
【図９Ｂ】
2008035578.tif 000061
【図１０】
2008035578.tif 000062
【図１１】
2008035578.tif 000063
【図１２】
2008035578.tif 000064
【図１３】
2008035578.tif 000065
【図１４】
2008035578.tif 000066
【図１５】
2008035578.tif 000067
【図１６】
2008035578.tif 000068
【図１７】
2008035578.tif 000069
【図１８】
2008035578.tif 000070
【図１９】
2008035578.tif 000071
【図２０Ａ】
2008035578.tif 000072
【図２０Ｂ】
2008035578.tif 000073
【図２１Ａ】
2008035578.tif 000074
【図２１Ｂ】
2008035578.tif 000075
【図２２Ａ】
2008035578.tif 000076
【図２２Ｂ】
2008035578.tif 000077
【図２３Ａ】
2008035578.tif 000078
【図２３Ｂ】
2008035578.tif 000079
【図２３Ｃ】
2008035578.tif 000080
【図２３Ｄ】
2008035578.tif 000081
【図２３Ｅ】
2008035578.tif 000082
【図２４Ａ】
2008035578.tif 000083
【図２４Ｂ】
2008035578.tif 000084
【図２５Ａ】
2008035578.tif 000085
【図２５Ｂ】
2008035578.tif 000086
【図２５Ｃ】
2008035578.tif 000087
【図２６】
2008035578.tif 000088
【図２７】
2008035578.tif 000089
【図２８】
2008035578.tif 000090
【図２９】
2008035578.tif 000091
【図３０】
2008035578.tif 000092
【国際調査報告】
2008035578.tif 000093
2008035578.tif 000094