(57)【要約】  接続環境確認部（６０１）と、ポートマッピング命令を下段ＮＡＴ装置ａ（４０４）に対して行う判定用ポートマッピング命令部（６０２）と、ソースルーティング設定された判定パケットを生成する判定パケット生成部（６０３）と、判定パケットを送信する判定パケット送信部（６０８）と、判定パケット送信部（６０８）から送信され、上段ＮＡＴ装置ａ（４０３）および下段ＮＡＴ装置ａ（４０４）を経て、端末装置ａ（４０５）に到達する判定パケットを受信する判定パケット受信部（６０９）と、受信された判定パケットに示される下段ＮＡＴ装置ａ（４０４）のＷＡＮ側ポート番号を取得するポート番号取得部（６１５）とを備える端末装置ａ（４０５）。
2012046390.tif 000002
【特許請求の範囲】
【請求項１】
インターネットに接続された上段ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）装置と、前記上段ＮＡＴ装置に接続された下段ＮＡＴ装置とを介して、前記インターネットに接続されたサーバ装置と通信する通信装置であって、
前記上段ＮＡＴ装置のＬＡＮ側ＩＰアドレスを示す情報および前記下段ＮＡＴ装置のＷＡＮ側ＩＰアドレスを示す情報を収集する接続環境確認部と、
前記下段ＮＡＴ装置の所定のポート番号に到達したパケットを前記通信装置に転送させるためのポートマッピング命令を前記下段ＮＡＴ装置に対して行う判定用ポートマッピング命令部と、
ソースルーティング設定された判定パケットを生成する判定パケット生成部であって、
前記接続環境確認部が収集した、上段ＮＡＴ装置のＬＡＮ側ＩＰアドレスを、前記判定パケットの中継宛先として決定する中継宛先決定部、
前記接続環境確認部が収集した、前記下段ＮＡＴ装置のＷＡＮ側ＩＰアドレスを、前記判定パケットの最終宛先として決定する最終宛先決定部、および、
前記ポートマッピング命令に用いられた前記所定のポート番号と同じポート番号を、前記判定パケットの宛先ポート番号として決定する宛先ポート決定部
を有する判定パケット生成部と、
前記判定パケット生成部で生成された判定パケットを送信する判定パケット送信部と、
前記判定パケット送信部から送信され、前記上段ＮＡＴ装置および前記下段ＮＡＴ装置を経て、前記通信装置に到達する前記判定パケットを受信する判定パケット受信部と、
前記判定パケット受信部により受信された前記判定パケットに示される送信元ポート番号である、前記下段ＮＡＴ装置のＷＡＮ側ポート番号を取得するポート番号取得部と
を備える通信装置。
【請求項２】
前記通信装置は、さらに、前記判定パケット生成部で生成された判定パケットの送信元ポート番号と同じ送信元ポート番号を用いて前記サーバ装置に通知依頼パケットを送信することで、前記サーバ装置と通信する他の通信装置へのＮＡＴ越え情報の通知を、前記サーバ装置に行わせるＮＡＴ越え情報通知部を備え、
前記ＮＡＴ越え情報は、前記サーバ装置に受信された前記通知依頼パケットに示される前記上段ＮＡＴ装置のＷＡＮ側ＩＰアドレスとＷＡＮ側ポート番号とを含む
請求項１記載の通信装置。
【請求項３】
前記通信装置は、さらに、前記下段ＮＡＴ装置における、通信に使用するＷＡＮ側ポート番号の決定の規則であるポート発番規則を特定するポート発番規則特定部を備え、
前記判定パケット送信部は、複数の前記判定パケットを送信し、
前記判定パケット受信部は、前記判定パケット送信部により送信された複数の前記判定パケットを受信し、
前記ポート番号取得部は、前記判定パケット受信部により受信された複数の前記判定パケットのそれぞれに示される前記下段ＮＡＴ装置のＷＡＮ側ポート番号を取得し、
前記ポート発番規則特定部は、前記ポート番号取得部により取得された複数のＷＡＮ側ポート番号に基づいて、前記ポート発番規則を特定する
請求項１記載の通信装置。
【請求項４】
前記通信装置は、さらに、
（ｉ）前記ポート発番規則特定部によって特定されたポート発番規則を用いて特定される、前記下段ＮＡＴ装置が前記通信装置から次に送信されたパケットの転送に用いるＷＡＮ側ポート番号を、ＮＡＴ越え用ポート番号として決定し、かつ、（ｉｉ）前記ＮＡＴ越え用ポート番号に対応する、通知依頼パケットの送信元ポート番号を決定するＮＡＴ越え用ポート決定部と、
前記ＮＡＴ越え用ポート決定部により決定されたＮＡＴ越え用ポート番号に到達したパケットを前記通信装置に転送させるためのポートマッピング命令を前記下段ＮＡＴ装置に対して行うＮＡＴ越え用ポートマッピング命令部と、
前記ＮＡＴ越え用ポート決定部により決定された送信元ポート番号を用いて前記サーバ装置に前記通知依頼パケットを送信することで、前記サーバ装置と通信する他の通信装置へのＮＡＴ越え情報の通知を、前記サーバ装置に行わせるＮＡＴ越え情報通知部とを備え、
前記ＮＡＴ越え情報は、前記サーバ装置に受信された前記通知依頼パケットに示される前記上段ＮＡＴのＷＡＮ側ＩＰアドレスとＷＡＮ側ポート番号とを含む
請求項３記載の通信装置。
【請求項５】
前記判定パケット送信部は、送信元ポート番号が互いに異なる複数の前記判定パケットを送信し、
前記ポート発番規則特定部は、（ａ）複数の前記判定パケットのそれぞれについて、前記判定パケット送信部により送信された際の送信元ポート番号と、前記ポート番号取得部により取得されたＷＡＮ側ポート番号とが一致しているか否か、または、（ｂ）前記ポート番号取得部により順次取得された複数のＷＡＮ側ポート番号における、連続して取得された２つのＷＡＮ側ポート番号間の差分が一定であるか否か、に応じて前記ポート発番規則を特定する
請求項３または４に記載の通信装置。
【請求項６】
インターネットに接続された上段ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）装置と、前記上段ＮＡＴ装置に接続された下段ＮＡＴ装置とを介して、前記インターネットに接続されたサーバ装置と通信する通信装置によって実行される通信方法であって、
前記上段ＮＡＴ装置のＬＡＮ側ＩＰアドレスを示す情報および前記下段ＮＡＴ装置のＷＡＮ側ＩＰアドレスを示す情報を収集する接続環境確認ステップと、
前記下段ＮＡＴ装置の所定のポート番号に到達したパケットを前記通信装置に転送させるためのポートマッピング命令を前記下段ＮＡＴ装置に対して行う判定用ポートマッピング命令ステップと、
ソースルーティング設定された判定パケットを生成する判定パケット生成ステップであって、
前記接続環境確認ステップにおいて収集された、上段ＮＡＴ装置のＬＡＮ側ＩＰアドレスを、前記判定パケットの中継宛先として決定する中継宛先決定ステップ、
前記接続環境確認ステップにおいて収集された、前記下段ＮＡＴ装置のＷＡＮ側ＩＰアドレスを、前記判定パケットの最終宛先として決定する最終宛先決定ステップ、および、
前記ポートマッピング命令に用いられた前記所定のポート番号と同じポート番号を、前記判定パケットの宛先ポート番号として決定する宛先ポート決定ステップ
を含む判定パケット生成ステップと、
前記判定パケット生成ステップにおいて生成された判定パケットを送信する判定パケット送信ステップと、
前記判定パケット送信ステップにおいて送信され、前記上段ＮＡＴ装置および前記下段ＮＡＴ装置を経て、前記通信装置に到達する前記判定パケットを受信する判定パケット受信ステップと、
前記判定パケット受信ステップにおいて受信された前記判定パケットに示される送信元ポート番号である、前記下段ＮＡＴ装置のＷＡＮ側ポート番号を取得するポート番号取得ステップと
を含む通信方法。
【請求項７】
インターネットに接続された上段ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）装置と、前記上段ＮＡＴ装置に接続された下段ＮＡＴ装置とを介して、前記インターネットに接続されたサーバ装置と通信するためのプログラムであって、
前記上段ＮＡＴ装置のＬＡＮ側ＩＰアドレスを示す情報および前記下段ＮＡＴ装置のＷＡＮ側ＩＰアドレスを示す情報を収集する接続環境確認ステップと、
前記下段ＮＡＴ装置の所定のポート番号に到達したパケットを前記通信装置に転送させるためのポートマッピング命令を前記下段ＮＡＴ装置に対して行う判定用ポートマッピング命令ステップと、
ソースルーティング設定された判定パケットを生成する判定パケット生成ステップであって、
前記接続環境確認ステップにおいて収集された、上段ＮＡＴ装置のＬＡＮ側ＩＰアドレスを、前記判定パケットの中継宛先として決定する中継宛先決定ステップ、
前記接続環境確認ステップにおいて収集された、前記下段ＮＡＴ装置のＷＡＮ側ＩＰアドレスを、前記判定パケットの最終宛先として決定する最終宛先決定ステップ、および、
前記ポートマッピング命令に用いられた前記所定のポート番号と同じポート番号を、前記判定パケットの宛先ポート番号として決定する宛先ポート決定ステップ
を含む判定パケット生成ステップと、
前記判定パケット生成ステップにおいて生成された判定パケットを送信する判定パケット送信ステップと、
前記判定パケット送信ステップにおいて送信され、前記上段ＮＡＴ装置および前記下段ＮＡＴ装置を経て、前記通信装置に到達する前記判定パケットを受信する判定パケット受信ステップと、
前記判定パケット受信ステップにおいて受信された前記判定パケットに示される送信元ポート番号である、前記下段ＮＡＴ装置のＷＡＮ側ポート番号を取得するポート番号取得ステップと
をコンピュータに実行させるためのプログラム。
【請求項８】
インターネットに接続された上段ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）装置と、前記上段ＮＡＴ装置に接続された下段ＮＡＴ装置とを介して、前記インターネットに接続されたサーバ装置と通信する集積回路であって、
前記上段ＮＡＴ装置のＬＡＮ側ＩＰアドレスを示す情報および前記下段ＮＡＴ装置のＷＡＮ側ＩＰアドレスを示す情報を収集する接続環境確認部と、
前記下段ＮＡＴ装置の所定のポート番号に到達したパケットを前記通信装置に転送させるためのポートマッピング命令を前記下段ＮＡＴ装置に対して行う判定用ポートマッピング命令部と、
ソースルーティング設定された判定パケットを生成する判定パケット生成部であって、
前記接続環境確認部が収集した、上段ＮＡＴ装置のＬＡＮ側ＩＰアドレスを、前記判定パケットの中継宛先として決定する中継宛先決定部、
前記接続環境確認部が収集した、前記下段ＮＡＴ装置のＷＡＮ側ＩＰアドレスを、前記判定パケットの最終宛先として決定する最終宛先決定部、および、
前記ポートマッピング命令に用いられた前記所定のポート番号と同じポート番号を、前記判定パケットの宛先ポート番号として決定する宛先ポート決定部
を有する判定パケット生成部と、
前記判定パケット生成部で生成された判定パケットを送信する判定パケット送信部と、
前記判定パケット送信部から送信され、前記上段ＮＡＴ装置および前記下段ＮＡＴ装置を経て、前記通信装置に到達する前記判定パケットを受信する判定パケット受信部と、
前記判定パケット受信部により受信された前記判定パケットに示される送信元ポート番号である、前記下段ＮＡＴ装置のＷＡＮ側ポート番号を取得するポート番号取得部と
を備える集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）側から、ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ、ネットワークアドレス変換）機能を有するネットワーク中継装置を越えて通信を行うための通信装置、通信方法、集積回路、およびプログラムに関する。
【背景技術】
【０００２】
従来のインターネット技術を用いた通信方法においては、インターネットに直接接続された装置に対し、当該装置ごとに一意に定められたアドレスであるグローバルＩＰｖ４アドレス（以下グローバルＩＰアドレスと記載する）が割り当てられる。【０００３】
しかし、グローバルＩＰアドレスの数は限られており、特に家庭向けのインターネット接続サービスにおいては、サービス一契約につき一つのグローバルＩＰアドレスしか割り当てられないことが多い。すなわち、サービス一契約につき一台の装置しかインターネットに直接接続することができない。【０００４】
そこで、使用できるグローバルＩＰアドレスの数を越える複数の装置が同時にインターネット上の装置と通信できるようにするため、プライベートＩＰアドレスとＮＡＴ機能を有したルータ（以下、「ＮＡＴ装置」という。）とを利用したネットワーク構成が広く利用されている。【０００５】
なお、プライベートＩＰアドレスとは、グローバルインターネット上のパケットの送信元ＩＰアドレスおよび宛先ＩＰアドレスとして使うことは出来ないが、ネットワーク装置のデバッグおよび企業内などの閉じられた（プライベートな）ネットワークにおける使用を目的としたＩＰアドレスである。【０００６】
また、ＮＡＴ装置とは、グローバルＩＰアドレスとプライベートＩＰアドレスとの相互変換等を実行するネットワークアドレス変換（ＮＡＴ）機能を有したネットワーク中継装置である。【０００７】
なお、本明細書、請求の範囲、および図面において、「ＮＡＴ」とはポート変換も行うＮＡＰＴ（ネットワークアドレスポート変換、Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｐｏｒｔ  Ｔｒａｎｓｌａｔｉｏｎ）を含む意味で使用している。【０００８】
ＮＡＴ機能について図１を用いて説明する。ＮＡＴ装置１０２はＮＡＴ機能として、自身のＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）側の通信機器１０１から、自身のＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）側の通信機器１０４への通信パケットが送信されて来た場合、上位ネットワーク（インターネット１０３）へ転送する機能を有する。【０００９】
ＮＡＴ装置１０２は、この転送の際、通信パケット内の送信元ＩＰアドレスと送信元ポートとを、それぞれＮＡＴ装置１０２自身のＷＡＮ側ＩＰアドレスと、新たに割り当てるポート番号とに書き換える。そして、その返信として戻ってくる返信パケットは、ＮＡＴ装置１０２によって、宛先ＩＰアドレスとポート番号とがアドレス変換テーブル１０５に従って書き換えられ、通信機器１０１へ転送される。【００１０】
図１の例では、ＩＰアドレス“１０．０．０．１”をＷＡＮ側に有するＮＡＴ装置１０２が、ＩＰアドレス“１９２．１６８．０．２”を有する通信機器１０１の１００００番ポートから送信された、宛先ＩＰアドレス“１０．０．０．２”の８０番ポート宛のパケットを受信する。【００１１】
ＮＡＴ装置１０２は、当該パケットを受信すると、まず、アドレス変換テーブル１０５を参照し、受信したパケットの送信元ＩＰアドレスと送信元ポートとが、アドレス変換テーブル１０５に既に存在するかどうかをチェックする。その結果、アドレス変換テーブル１０５に該当データがない場合には、新たにアドレス変換テーブル１０５を作成する。【００１２】
図１の例では、該当データが存在せず、新たに送信元ポート２００００番を用いたアドレス変換テーブル１０５が作成された場合を想定している。なお、新たにアドレス変換テーブル１０５を作成する時に用いる送信元ポート番号は、他のアドレス変換に用いられてない番号であれば、任意のポート番号でよい。【００１３】
ＮＡＴ装置１０２は、新たにアドレス変換テーブル１０５を作成した後、作成したアドレス変換テーブル１０５に従い、受信したパケットの送信元ＩＰアドレスである“１９２．１６８．０．２”および送信元ポート番号である“１００００”を、それぞれＩＰアドレス“１０．０．０．１”およびポート番号“２００００”に書き換えて、ＩＰアドレス“１０．０．０．２”を有する通信機器１０４に当該パケットを送信する。【００１４】
そして、ＮＡＴ装置１０２は、その返信として通信機器１０４から送信された、宛先ＩＰアドレス“１０．０．０．１”の２００００番ポート宛の返信パケットを受信すると、アドレス変換テーブル１０５を参照し、宛先ＩＰアドレスである“１０．０．０．１”および宛先ポート番号である“２００００”を、それぞれＩＰアドレス“１９２．１６８．０．２”およびポート番号“１００００”に書き換える。【００１５】
これにより、通信機器１０１はＮＡＴ装置１０２で行われるアドレス変換に影響されることなく、通信機器１０４と通信を行うことができ、通信機器１０４に対する情報の伝達および通信機器１０４からの情報の取得をすることができる。【００１６】
しかし、ＮＡＴ機能のアドレス変換時に新たに割り当てるポート番号の割り当て基準やポート発番規則は、製品によって異なる。【００１７】
具体的には、ＮＡＴ機能のアドレス割り当て時のポート割り当て基準は主に３種類に分類され、ポート発番規則も主に３種類に分類される。【００１８】
図２に、ＮＡＴ機能のポート割り当て基準分類について示す。図２の（１）は、Ｃｏｎｅ型と呼ばれるポート割り当て基準分類であり、通信相手であるサーバＡおよびサーバＢなどの宛先ＩＰアドレス、並びに、宛先ポートがポートｐであるかポートｑであるかなどによらず、常に同じポートをアドレス変換時に割り当てる分類である。【００１９】
図２の（２）は、Ａｄｄｒｅｓｓ  Ｓｅｎｓｉｔｉｖｅ型と呼ばれるポート割り当て基準分類であり、通信相手のサーバＡおよびサーバＢの宛先ＩＰアドレスによって、割り当てるポートを変えるポート割り当て基準分類である。但し、通信相手の宛先ポートがポートｐであるかポートｑであるかなどによらず、常に同じポートをアドレス変換時に割り当てる。【００２０】
図２の（３）は、ｐｏｒｔ  Ｓｅｎｓｉｔｉｖｅ型と呼ばれるポート割り当て基準分類であり、通信相手のサーバＡおよびサーバＢの宛先ＩＰアドレスによって、割り当てるポートを変え、さらに宛先ポートがポートｐであるかポートｑであるかなどによっても、ポート割り当てを変えるポート割り当て基準分類である。【００２１】
図３に、ＮＡＴ機能のポート発番規則分類について示す。図３の（１）は、Ｐｏｒｔ  Ｒｅｕｓｅ型と呼ばれるポート発番規則分類であり、端末の送信する通信パケットの送信元ポート番号と同じポートをＮＡＴ装置でも割り当てる分類である。なお、ＮＡＴ装置のアドレス変換テーブル内で既にポートが使用されている場合には、別のポートを割り当てることもある。【００２２】
図３の（２）は、Ｓｅｑｕｅｎｔｉａｌ型と呼ばれるポート発番規則分類であり、端末から３つの通信パケットがそれぞれ送信元ポートとして１番ポート、３番ポート、５番ポートを用いて、順に送信された場合の例を示している。【００２３】
Ｓｅｑｕｅｎｔｉａｌ型では、端末の送信する通信パケットの送信元ポートに関わらず、送信されてきた通信パケット順に、一定間隔（図３では一定間隔Δ＝５）だけ離れたポート番号が割り当てられる。なお、このポート番号の間隔は製品によって異なる。【００２４】
図３の（３）は、Ｒａｎｄｏｍ型と呼ばれるポート発番規則分類であり、端末の送信する通信パケットの送信元ポートおよび順番に関わらず、不規則にポート番号を割り当てるポート発番規則分類である。【００２５】
また、ＮＡＴ装置のＮＡＴ機能には、セキュリティの観点から、ＷＡＮ側から来た通信パケットの送信元ＩＰアドレスやポート番号に基づいて、フィルタリングする機能が備えられている場合もある。【００２６】
前述のように、プライベートＩＰアドレスとＮＡＴ装置とを用いたネットワーク構成では、ＮＡＴ装置の配下の端末から通信を開始する限り、当該端末はインターネット上の他の装置と直接通信可能である。【００２７】
しかし、インターネット上の他の装置からの通信、もしくは異なるＮＡＴ装置の配下にある２端末間でのＰ２Ｐ（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ）通信を行うには、お互いが通信相手端末側のＮＡＴ装置を越えて、通信を行わなければならない。【００２８】
これは一般的に“ＮＡＴ越え”と呼ばれている。ＮＡＴ越えは、非特許文献１で示されているＵＰｎＰ（Ｕｎｉｖｅｒｓａｌ  Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ）のＩＧＤ（Ｉｎｔｅｒｎｅｔ  Ｇａｔｅｗａｙ  Ｄｅｖｉｃｅ）対応のＮＡＴ装置、もしくは、ＮＡＴ−ＰＭＰ（ＮＡＴ  Ｐｏｒｔ  ｍａｐｐｉｎｇ  Ｐｒｏｔｏｃｏｌ）対応のＮＡＴ装置を利用すること、または、非特許文献２で示されているＳＴＵＮ（Ｓｉｍｐｌｅ  Ｔｒａｖｅｒｓａｌ  ｏｆ  ＵＤＰ  ｔｈｒｏｕｇｈ  ＮＡＴｓ）を利用することで行われ、これによりＰ２Ｐ通信が可能となる。【００２９】
しかし、前者の方法では、ＮＡＴ装置のポートを端末から直接コントロールするため、安定した通信および接続が期待できるが、ＮＡＴ装置がＵＰｎＰのＩＧＤまたは、それと同等の機能に対応していなければ、使用できない。【００３０】
また、ＳＴＵＮは、外部サーバを利用することで多くのＮＡＴ装置に対応できる可能性を有する。しかし、通信経路上に存在するＮＡＴ装置のＮＡＴ分類およびその組合せによっては、ＮＡＴ装置のフィルタリング機能によって、通信パケットが遮断されてしまい、ＮＡＴ越えできないものもある。つまり、ＳＴＵＮを用いる方法は、ＵＰｎＰを用いる方法と比べると確実性が劣る。【００３１】
特に、ＮＡＴ装置が２つ以上存在する多段ＮＡＴ環境では、複数あるＮＡＴ装置のうち、最も制限の厳しいＮＡＴ装置の性質が支配的になるため、ＳＴＵＮによる接続成功率は、さらに低下しやすい。【００３２】
特許文献１には、ＮＡＴ装置のＮＡＴ種別判定結果情報に加え、ＵＰｎＰ対応有無情報を、端末間で、外部サーバ経由で交換することにより、外部サーバと端末との間にＮＡＴ装置が２つ以上存在する多段ＮＡＴ環境でも、ＳＴＵＮを用いたＮＡＴ越え、または、ＵＰｎＰのＩＧＤもしくはＮＡＴ−ＰＭＰ等を用いたＮＡＴ越えを行うことで接続率を向上させる方式が記載されている。
【先行技術文献】
【特許文献】
【００３３】
【特許文献１】特開２００８−２３６２７８号公報
【非特許文献】
【００３４】
【非特許文献１】Ｕｎｉｖｅｒｓａｌ  Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ  Ｉｎｔｅｒｎｅｔ  Ｇａｔｅｗａｙ  Ｄｅｖｉｃｅ  （ＩＧＤ）  Ｖ  １．０，  ｈｔｔｐ：／／ｕｐｎｐ．ｏｒｇ／ｓｐｅｃｓ／ｇｗ／ＵＰｎＰ−ｇｗ−ＩｎｔｅｒｎｅｔＧａｔｅｗａｙＤｅｖｉｃｅ−ｖ１−Ｄｅｖｉｃｅ．ｐｄｆ
【非特許文献２】Ｊ．Ｒｏｓｅｎｂｅｒｇ，  ｅｔ  ａｌ．  “  ＲＦＣ３４８９、ＳＴＵＮ  −  Ｓｉｍｐｌｅ  Ｔｒａｖｅｒｓａｌ  ｏｆ  Ｕｓｅｒ    Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ  （  ＵＤＰ  ）  Ｔｈｒｏｕｇｈ  Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｏｒｓ  （  ＮＡＴｓ  ）    ”、  ［  ｏｎｌｉｎｅ  ］、Ｍａｒｃｈ  ２００３、  ｒｅｔｒｉｅｖｅｄ  ｆｒｏｍ  ｔｈｅ  Ｉｎｔｅｒｎｅｔ：  ＜  ＵＲＬ：    ｈｔｔｐ：／／ｗｗｗ．ｉｅｔｆ．ｏｒｇ／ｒｆｃ／ｒｆｃ３４８９．ｔｘｔ＞
【発明の概要】
【発明が解決しようとする課題】
【００３５】
しかしながら、特許文献１に記載の技術では、２つ以上ＮＡＴ装置が存在する多段ＮＡＴ環境で、複数存在するＮＡＴ装置の全てがＵＰｎＰのＩＧＤ等に対応している場合のみ、ＵＰｎＰでのＮＡＴ越えが可能である。つまり、１台でもＵＰｎＰのＩＧＤ等に対応していないＮＡＴ装置がある場合、ＳＴＵＮでのＮＡＴ越えが行われる。しかし、現実的には、ＵＰｎＰの適用範囲は小さく、その結果、主にＳＴＵＮによるＮＡＴ越えが適用されるため、多段ＮＡＴ環境での接続率向上効果は限定的になるという課題を有している。【００３６】
特にグローバルＩＰｖ４アドレスの枯渇問題の対策案として、図４のようにＩＳＰ（Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）がＩＳＰ管理内施設などに、ＩＳＰレベルでのＮＡＴ機能付きＮＡＴ装置やそれに準ずる装置を設置して、サービス利用者にプライベートＩＰｖ４アドレスを割り当てるＬＳＮ（Ｌａｒｇｅ  Ｓｃａｌｅ  ＮＡＴ）が検討されている。従って、今後多段ＮＡＴ環境が増えることが考えられる。【００３７】
ＬＳＮ機器はＩＳＰの管理機器であり、ユーザ端末からの制御はサポートされないと考えられる。つまり、ＬＳＮ機器に対し、ＵＰｎＰのＩＧＤ等によるポートマッピング設定を用いるＮＡＴ越えが適用できる可能性は極めて低いと予想される。【００３８】
なお、図４において、ＩＳＰ−ＮＡＴ装置２０２およびＩＳＰ−ＮＡＴ装置２０７が、上記のＬＳＮ機器に該当する。【００３９】
図４に示すようにＩＳＰ−ＮＡＴ装置２０２の配下にある端末装置２０６と、ＩＳＰ−ＮＡＴ装置２０７の配下にある端末装置２０９との間でＰ２Ｐ通信を行う場合を想定する。この場合、特許文献１の手法を用いても、ＬＳＮ機器（ＩＳＰ−ＮＡＴ装置２０２および２０７）でＵＰｎＰのＩＧＤ等のポートマッピング設定機能を備えないため、ＳＴＵＮサーバ２０１を利用したＮＡＴ越えを余儀なくされる。しかしながら、この場合、ＮＡＴ装置２０５とＮＡＴ装置２０８との組合せによって接続できない場合が多く発生する。つまり、ＮＡＴ越えできない場合が多く発生する。【００４０】
また、ユーザにＮＡＴ装置２０５またはＮＡＴ装置２０８の制御を強要させ、静的なポートマッピング設定を行わせても、ＬＳＮ機器はユーザからの制御をサポートしないため、ＮＡＴ越えできない。【００４１】
ここで、上記のように、ＮＡＴ装置２０５とＮＡＴ装置２０８との組合せによって、ＮＡＴ越えの可否が変わってくる。つまりこのことは、ユーザ視点で考えれば、同じＰ２Ｐ通信ができる端末を持っている相手でも、Ｐ２Ｐ通信ができる相手とできない相手が出てくることを意味する。【００４２】
このとき、端末を販売する企業、および、サービスを提供する企業へのユーザの不満が多く発生することが考えられる。【００４３】
本発明は、ＵＰｎＰのＩＧＤ等のポートマッピング設定機能を備えないＮＡＴ装置を含む多段ＮＡＴ環境において、ＮＡＴを越えた通信を容易に確立させることのできる通信装置、通信方法、集積回路およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００４４】
本発明の一態様に係る通信装置は、インターネットに接続された上段ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）装置と、前記上段ＮＡＴ装置に接続された下段ＮＡＴ装置とを介して、前記インターネットに接続されたサーバ装置と通信する通信装置であって、前記上段ＮＡＴ装置のＬＡＮ側ＩＰアドレスを示す情報および前記下段ＮＡＴ装置のＷＡＮ側ＩＰアドレスを示す情報を収集する接続環境確認部と、前記下段ＮＡＴ装置の所定のポート番号に到達したパケットを前記通信装置に転送させるためのポートマッピング命令を前記下段ＮＡＴ装置に対して行う判定用ポートマッピング命令部と、ソースルーティング設定された判定パケットを生成する判定パケット生成部であって、前記接続環境確認部が収集した、上段ＮＡＴ装置のＬＡＮ側ＩＰアドレスを、前記判定パケットの中継宛先として決定する中継宛先決定部、前記接続環境確認部が収集した、前記下段ＮＡＴ装置のＷＡＮ側ＩＰアドレスを、前記判定パケットの最終宛先として決定する最終宛先決定部、および、前記ポートマッピング命令に用いられた前記所定のポート番号と同じポート番号を、前記判定パケットの宛先ポート番号として決定する宛先ポート決定部を有する判定パケット生成部と、前記判定パケット生成部で生成された判定パケットを送信する判定パケット送信部と、前記判定パケット送信部から送信され、前記上段ＮＡＴ装置および前記下段ＮＡＴ装置を経て、前記通信装置に到達する前記判定パケットを受信する判定パケット受信部と、前記判定パケット受信部により受信された前記判定パケットに示される送信元ポート番号である、前記下段ＮＡＴ装置のＷＡＮ側ポート番号を取得するポート番号取得部とを備える。【００４５】
この構成によれば、本態様の通信装置がパケットを送信した場合の、下段ＮＡＴ装置による変換後の送信元ポート番号が取得される。つまり、通信装置からの、その後の上り方向の通信において下段ＮＡＴ装置で使用されるＷＡＮ側ポート番号を特定するための情報が取得される。【００４６】
その結果、下段ＮＡＴ装置に、当該ＷＡＮ側ポート番号に到達したパケットを通信装置に転送するよう設定することが可能となる。これにより、インターネットに接続された他の装置に、下段ＮＡＴ装置を越えて当該通信装置にアクセスさせることが可能となる。【００４７】
また、本発明の一態様に係る通信装置は、さらに、前記判定パケット生成部で生成された判定パケットの送信元ポート番号と同じ送信元ポート番号を用いて前記サーバ装置に通知依頼パケットを送信することで、前記サーバ装置と通信する他の通信装置へのＮＡＴ越え情報の通知を、前記サーバ装置に行わせるＮＡＴ越え情報通知部を備え、前記ＮＡＴ越え情報は、前記サーバ装置に受信された前記通知依頼パケットに示される前記上段ＮＡＴ装置のＷＡＮ側ＩＰアドレスとＷＡＮ側ポート番号とを含むとしてもよい。【００４８】
この構成によれば、例えば、通信相手である他の通信装置に効率よくＮＡＴ越えに必要な情報を通知することができる。【００４９】
また、本発明の一態様に係る通信装置は、さらに、前記下段ＮＡＴ装置における、通信に使用するＷＡＮ側ポート番号の決定の規則であるポート発番規則を特定するポート発番規則特定部を備え、前記判定パケット送信部は、複数の前記判定パケットを送信し、前記判定パケット受信部は、前記判定パケット送信部により送信された複数の前記判定パケットを受信し、前記ポート番号取得部は、前記判定パケット受信部により受信された複数の前記判定パケットのそれぞれに示される前記下段ＮＡＴ装置のＷＡＮ側ポート番号を取得し、前記ポート発番規則特定部は、前記ポート番号取得部により取得された複数のＷＡＮ側ポート番号に基づいて、前記ポート発番規則を特定するとしてもよい。【００５０】
この構成によれば、例えば、下段ＮＡＴ装置のポート発番規則の特定が効率よく実行される。つまり、他の通信装置にＮＡＴ越えを実行させるために用いられる情報の効率的な取得が可能となる。【００５１】
また、本発明の一態様に係る通信装置は、さらに、（ｉ）前記ポート発番規則特定部によって特定されたポート発番規則を用いて特定される、前記下段ＮＡＴ装置が前記通信装置から次に送信されたパケットの転送に用いるＷＡＮ側ポート番号を、ＮＡＴ越え用ポート番号として決定し、かつ、（ｉｉ）前記ＮＡＴ越え用ポート番号に対応する、通知依頼パケットの送信元ポート番号を決定するＮＡＴ越え用ポート決定部と、前記ＮＡＴ越え用ポート決定部により決定されたＮＡＴ越え用ポート番号に到達したパケットを前記通信装置に転送させるためのポートマッピング命令を前記下段ＮＡＴ装置に対して行うＮＡＴ越え用ポートマッピング命令部と、前記ＮＡＴ越え用ポート決定部により決定された送信元ポート番号を用いて前記サーバ装置に前記通知依頼パケットを送信することで、前記サーバ装置と通信する他の通信装置へのＮＡＴ越え情報の通知を、前記サーバ装置に行わせるＮＡＴ越え情報通知部とを備え、前記ＮＡＴ越え情報は、前記サーバ装置に受信された前記通知依頼パケットに示される前記上段ＮＡＴのＷＡＮ側ＩＰアドレスとＷＡＮ側ポート番号とを含むとしてもよい。【００５２】
この構成によれば、例えば、下段ＮＡＴ装置に対するＮＡＴ越えのための設定に係る処理が効率よく実行され、かつ、他の通信装置へのＮＡＴ越え情報の通知が的確に実行される。【００５３】
また、本発明の一態様に係る通信装置において、前記判定パケット送信部は、送信元ポート番号が互いに異なる複数の前記判定パケットを送信し、前記ポート発番規則特定部は、（ａ）複数の前記判定パケットのそれぞれについて、前記判定パケット送信部により送信された際の送信元ポート番号と、前記ポート番号取得部により取得されたＷＡＮ側ポート番号とが一致しているか否か、または、（ｂ）前記ポート番号取得部により順次取得された複数のＷＡＮ側ポート番号における、連続して取得された２つのＷＡＮ側ポート番号間の差分が一定であるか否か、に応じて前記ポート発番規則を特定するとしてもよい。【００５４】
この構成によれば、例えば、下段ＮＡＴ装置が、様々なポート発番規則のうちのいずれを採用しているかが不明な場合であっても、当該ポート発番規則が的確に特定される。【００５５】
また、本発明は、上記いずれかの態様に係る通信装置が実行する特徴的な処理を含む通信方法として実現することもできる。【００５６】
また、本発明は、本発明の通信方法が含む各処理をコンピュータに実行させるためのプログラムとして実現すること、および、そのプログラムが記録された記録媒体として実現することもできる。そして、そのプログラムをインターネット等の伝送媒体またはＤＶＤ等の記録媒体を介して配信することもできる。【００５７】
また、本発明は、上記いずれかの態様に係る通信装置が有する特徴的な構成部を備える集積回路として実現することもできる。
【発明の効果】
【００５８】
本発明によれば、ＮＡＴ装置が多段接続された場合でも、下段のＮＡＴ装置がＵＰｎＰ対応であるなど、ポートマッピングの設定が可能であれば、下段ＮＡＴ装置のアドレス変換規則、および下段ＮＡＴ装置の使用するＷＡＮ側のポート番号を得られる。【００５９】
従って、これらの情報を元に、下段ＮＡＴ装置が使用するＷＡＮ側のポートに、当該通信装置のパケット受信用のポートが一致するように、ＵＰｎＰのＩＧＤ等のポートマッピング設定機能を用いてポートマッピングすることができる。これにより、上段ＮＡＴ装置においてＵＰｎＰのＩＧＤ等のポートマッピング機能がサポートされていない多段ＮＡＴ環境において、ネットワークの末端に位置する通信機器に対するパケット送信時におけるＮＡＴ越えが容易に実現される。具体的には、当該通信機器のみに機能拡張を加えるだけで、ＮＡＴ越えを行うことができる。
【図面の簡単な説明】
【００６０】
【図１】図１は、従来のＮＡＴ機能の概要を説明するための図である。
【図２】図２は、従来のＮＡＴのポート割り当て基準分類を示す図である。
【図３】図３は、従来のＮＡＴのポート発番規則分類を示す図である。
【図４】図４は、今後予想されるネットワーク構成の概要を示す図である。
【図５】図５は、多段ＮＡＴ環境での、従来手法によるＮＡＴ種別の判別結果の例を示す図である。
【図６】図６は、本発明の実施の形態１における通信システムの構成の一例を示す図である。
【図７】図７は、実施の形態１における外部サーバおよび端末装置のハードウェア構成例を示すブロック図である。
【図８】図８は、実施の形態１における端末装置の構成の一例を示す機能ブロック図である。
【図９】図９は、実施の形態１における端末装置の基本的な処理の流れを示すフロー図である。
【図１０】図１０は、実施の形態１の通信システムにおける各装置に割り当てられたＩＰアドレスの例を示す図である。
【図１１】図１１は、実施の形態１および２における、下段ＮＡＴ装置が使用するＷＡＮ側ポート番号の取得のための通信シーケンスの一例を示す図である。
【図１２】図１２は、実施の形態１における、ＮＡＴ越えを含む通信シーケンスの一例を示す図である。
【図１３】図１３は、実施の形態２における、ＮＡＴ越え含む通信シーケンスの一例を示す図である。
【図１４】図１４は、実施の形態２における、下段ＮＡＴ装置のポート発番規則の特定のための処理フローの一例を示す図である。
【発明を実施するための形態】
【００６１】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【００６２】
ＬＳＮは、キャリアおよびＩＳＰの方針、考え方によってその仕様は確定的ではないが、接続性や既存アプリとの互換性を考慮して、ＮＡＴのポート割り当て基準はＣｏｎｅ型になる可能性が高い。
【００６３】
Ｃｏｎｅ型ＮＡＴは、ＮＡＴについての制限が他の２つより緩い。そのため、ＳＴＵＮ等の従来手法である、外部サーバと端末との間でのＮＡＴ種別判別手法を多段ＮＡＴ環境で適用した結果は、下段ＮＡＴ装置である宅内ＮＡＴ装置のＮＡＴ制限条件が支配的となる。その結果、例えば図５のように判別される。
【００６４】
すなわち、Ｃｏｎｅ型ＮＡＴは、上りパケットに対するポート番号を固定的に変換するため、多段ＮＡＴ環境全体としては下段ＮＡＴ装置のＮＡＴ制限と等価となる。例えば、上段：Ｃｏｎｅ型、下段：Ｃｏｎｅ型であれば、多段ＮＡＴとしてもＣｏｎｅ型と判別される（図５の（１））。
【００６５】
上段：Ｃｏｎｅ型、下段：Ａｄｄｒｅｓｓ  Ｓｅｎｓｉｔｉｖｅ型であれば、多段ＮＡＴとしてはＡｄｄｒｅｓｓ  Ｓｅｎｓｉｔｉｖｅ型と判別される（図５の（２））。また、上段：Ｃｏｎｅ型、下段：Ｐｏｒｔ  Ｓｅｎｓｉｔｉｖｅ型であれば、多段ＮＡＴとしてはＰｏｒｔ  Ｓｅｎｓｉｔｉｖｅ型と判別される（図５の（３））。
【００６６】
なお、図５での上段ＮＡＴ装置３０２、３１２および３２２はＬＳＮに相当し、下段ＮＡＴ装置３０３、３１３および３２３は、宅内ＮＡＴ装置に相当する。
【００６７】
以上の理由により、下段ＮＡＴ装置である宅内ＮＡＴ装置のポート割り当て基準を、容易に判定することができる。
【００６８】
本発明は、３段以上の多段ＮＡＴ環境においても、適用可能であるが、実施の形態では、ＮＡＴ装置が２段の多段ＮＡＴ環境での例を示す。
【００６９】
具体的には、実施の形態１では、下段ＮＡＴ装置である宅内ＮＡＴ装置がＣｏｎｅ型である場合の、ＮＡＴ越えを伴う通信の一例を示し、実施の形態２では、下段ＮＡＴ装置である宅内ＮＡＴ装置がＡｄｄｒｅｓｓ  Ｓｅｎｓｉｔｉｖｅ型もしくはＰｏｒｔ  Ｓｅｎｓｉｔｉｖｅ型である場合の、ＮＡＴ越えを伴う通信の一例を示す。
【００７０】
なお、以下で説明する実施の形態のそれぞれは、本発明の好ましい一具体例を示すものである。各実施の形態で示される数値、形状、構成要素、構成要素の配置及び接続形態などは、一例であり、本発明を限定する主旨ではない。本発明は、請求の範囲によって限定される。よって、以下の各実施の形態における構成要素のうち、請求項１に記載されていない構成要素は、本発明の課題を達成するのに必ずしも必要ではないが、より好ましい形態を構成するものとして説明される。
【００７１】
（実施の形態１）
実施の形態１では、下段ＮＡＴ装置である宅内ＮＡＴ装置がＣｏｎｅ型である場合の、ＮＡＴ越えを伴う通信の一例を示す。
【００７２】
まず、実施の形態１における通信システムの構成を説明する。
【００７３】
図６は、実施の形態１における通信システムの構成の一例を示す図である。
【００７４】
図６に示す実施の形態１における通信システム４００は、外部サーバ４０１、ＩＳＰレベルで設置するＬＳＮに相当する上段ＮＡＴ装置ａ４０３および上段ＮＡＴ装置ｂ４０６、宅内ＮＡＴ装置に相当する下段ＮＡＴ装置ａ４０４および下段ＮＡＴ装置ｂ４０７、並びに端末装置ａ４０５および端末装置ｂ４０８を備える。
【００７５】
また、外部サーバ４０１、上段ＮＡＴ装置ａ４０３、および上段ＮＡＴ装置ｂ４０６は、通信回線を介してインターネット４０２に接続されている。
【００７６】
本実施の形態では、端末装置ａ４０５と端末装置ｂ４０８とがＰ２Ｐ通信を行う上で、端末装置ａ４０５から端末装置ｂ４０８へ向けての通信を開始し、端末装置ａ４０５がＮＡＴ越えのシーケンスを実行する場合を想定する。端末装置ａ４０５は具体的には、外部サーバ４０１と通信することで、端末装置ｂ４０８へ向けての通信を開始する。
【００７７】
外部サーバ４０１は、端末装置ａ４０５から、上段ＮＡＴ装置ａ４０３のＷＡＮ側ＩＰアドレスおよびＮＡＴ越えに使用するポート情報などのＮＡＴ越え情報を受信する機能、および、端末装置ａ４０５の通信相手となる端末装置ｂ４０８へ、上記ＮＡＴ越え情報を通知する機能を備える。
【００７８】
インターネット４０２は、例えば光回線、ＣＡＴＶ、または電話回線等で構成された有線回線、もしくは、無線回線を用いて構成された公衆通信ネットワーク、もしくは、専用通信ネットワークである。インターネット４０２に接続された端末装置間で所定の通信プロトコルにしたがってデータのやり取りを行うことが可能である。
【００７９】
端末装置ａ４０５および端末装置ｂ４０８は、ＴＣＰまたはＵＤＰでＩＰネットワークと通信できる機能を持ち、それぞれの目的に合わせてデータ通信を行う。
【００８０】
また、端末装置ａ４０５は、本発明の通信装置の一例である。端末装置ａ４０５は、各ＮＡＴ装置へ通信パケットを送信することで、各ＮＡＴ装置のＩＰアドレスなどの接続環境を示すＮＡＴ情報を取得する機能と、下段ＮＡＴ装置ａ４０４へＵＰｎＰのＩＧＤ等により判定用のポートマッピングの設定をさせる機能と、ソースルーティング機能を用いた判定パケットを上段ＮＡＴ装置ａ４０３経由で下段ＮＡＴ装置ａ４０４へ送信する機能と、当該判定パケットを受信する機能と、当該判定パケットから得た結果情報に基づいて、ＮＡＴ越え用に下段ＮＡＴ装置ａ４０４へＵＰｎＰのＩＧＤ等でポートマッピング設定をする機能と、ＮＡＴ越え情報を外部サーバ４０１に通知する機能とを持つ。
【００８１】
なお、「ポートマッピング」は、一般に「ポートフォワード」等とも呼ばれる。
【００８２】
端末装置ｂ４０８は、外部サーバ４０１と通信することで、端末装置ａ４０５のＮＡＴ越え情報を取得する機能と、取得したＮＡＴ越え情報を元に端末装置ａ４０５へアクセスする機能とを備える。
【００８３】
これらの機能と端末装置ａ４０５および端末装置ｂ４０８の構成との関係については後述する。
【００８４】
上段ＮＡＴ装置ａ４０３、上段ＮＡＴ装置ｂ４０６、下段ＮＡＴ装置ａ４０４および下段ＮＡＴ装置ｂ４０７は、ＮＡＴ機能を持つルータであり、パケットのルーティング機能をもつと共にＬＡＮの一部を構成する。
【００８５】
このＬＡＮに接続する各端末はプライベートＩＰアドレスをもち、同一ＬＡＮ内に存在する端末同士ではプライベートＩＰアドレスを用いて通信を行うことができる。
【００８６】
次に、外部サーバ４０１、端末装置ａ４０５および端末装置ｂ４０８のハードウェア構成を、図７を用いて説明する。
【００８７】
外部サーバ４０１、端末装置ａ４０５および端末装置ｂ４０８は、ソフトウェアを実行可能な通常のハードウェア構成を有する情報処理装置により実現可能である。
【００８８】
外部サーバ４０１、端末装置ａ４０５および端末装置ｂ４０８には、ＣＰＵ（演算処理装置）５０１と、主記憶装置５０２と、通信制御装置５０３と、外部記憶装置５０４と、入力装置５０５と、出力装置５０６と、が含まれる。
【００８９】
各装置は、バス５０７を介して相互に接続され、各装置間で必要な情報が伝送可能に構成されている。なお、図７に示されたハードウェア構成は一例であり、外部サーバ４０１および端末装置ａ４０５および端末装置ｂ４０８のハードウェア構成は、必ずしも、この通りである必要はない。
【００９０】
図８は、端末装置ａ４０５の機能ブロックの一例を示す。各機能ブロックは、例えば、端末装置ａ４０５の主記憶装置５０２または外部記憶装置５０４に格納されたプログラムがＣＰＵ５０１によって実行されることで実現される。
【００９１】
接続環境確認部６０１は、端末装置ａ４０５と外部サーバ４０１との間にある全ての、ＮＡＴ機能を備えたＮＡＴ装置の情報を収集する。ここで得られた情報を判定パケット生成部６０３へ通知する。ここで収集する情報は、端末装置ａ４０５と外部サーバ４０１との間にあるＮＡＴ装置のＷＡＮ側ＩＰアドレスと、ＬＡＮ側ＩＰアドレスと、ＵＰｎＰのＩＧＤまたはＮＡＴ−ＰＭＰ等のポートマッピング設定機能の有無情報等である。
【００９２】
つまり、上段ＮＡＴ装置ａ４０３のＬＡＮ側ＩＰアドレスを示す情報、下段ＮＡＴ装置ａ４０４のＷＡＮ側ＩＰアドレスを示す情報、上段ＮＡＴ装置ａ４０３のポートマッピング設定機能の有無情報、および下段ＮＡＴ装置ａ４０４のポートマッピング設定機能の有無情報等が、接続環境確認部６０１によって収集される。
【００９３】
なお、上記の、接続環境確認部６０１が収集する情報は一例であり、これらに限定されるものではない。
【００９４】
判定用ポートマッピング命令部６０２は、宛先ポート決定部６０６で決定されるポート番号を用いて、宅内ＮＡＴ装置に相当する下段ＮＡＴ装置ａ４０４へ、ＵＰｎＰのＩＧＤ等によりポートマッピング命令を行う。
【００９５】
つまり、判定用ポートマッピング命令部６０２は、下段ＮＡＴ装置ａ４０４のＷＡＮ側の所定のポート番号に到達したパケットを端末装置ａ４０５に転送させるためのポートマッピング命令を下段ＮＡＴ装置ａ４０４に対して行う。
【００９６】
判定パケット生成部６０３は、判定パケット送信部６０８により送信され、かつ、判定パケット受信部６０９に受信される、ソースルーティングの設定がされた判定パケットを生成する。
【００９７】
具体的には、判定パケット生成部６０３は、接続環境確認部６０１が収集した上段ＮＡＴ装置ａ４０３のＬＡＮ側ＩＰアドレスを判定パケットの中継宛先として決定する中継宛先決定部６０４と、接続環境確認部６０１が収集した下段ＮＡＴ装置ａ４０４のＷＡＮ側ＩＰアドレスを判定パケットの最終宛先として決定する最終宛先決定部６０５と、ポートマッピング命令に用いられた所定のポート番号と同じポート番号を、判定パケットの宛先ポート番号として決定する宛先ポート決定部６０６と、任意の送信元ポート番号を決定する送信元ポート決定部６０７とを有する。
【００９８】
判定パケット送信部６０８は、判定パケット生成部６０３で生成された、ソースルーティング設定された判定パケットをネットワークへ送信する。
【００９９】
判定パケット受信部６０９は、判定パケット送信部６０８から送信され、上段ＮＡＴ装置ａ４０３および下段ＮＡＴ装置ａ４０４を経て、端末装置ａ４０５自身へ送られてくる判定パケットを受信する。
【０１００】
ポート番号取得部６１５は、判定パケット受信部６０９により受信された判定パケットに示される送信元ポート番号である、下段ＮＡＴ装置ａ４０４のＷＡＮ側ポート番号を取得する。ポート番号取得部６１５により取得された当該ＷＡＮ側ポート番号は、判定結果として、ポート発番規則特定部６１０へ通知される。
【０１０１】
ポート発番規則特定部６１０は、下段ＮＡＴ装置ａ４０４における、通信に使用するＷＡＮ側ポート番号の決定の規則であるポート発番規則を特定する。
【０１０２】
具体的には、判定パケット受信部６０９が、判定パケット送信部６０８により送信された複数の判定パケットを受信し、かつ、ポート番号取得部６１５が、これら複数の判定パケットのそれぞれに示される、下段ＮＡＴ装置ａ４０４のＷＡＮ側ポート番号を取得する。
【０１０３】
ポート発番規則特定部６１０は、ポート番号取得部６１５から順次得られる複数のＷＡＮ側ポート番号に基づいて、下段ＮＡＴ装置ａ４０４のポート発番規則を特定する。
【０１０４】
ポート発番規則特定部６１０による、ＮＡＴ装置のポート発番規則の特定手法については、図１４を用いて後述する。
【０１０５】
ポート発番規則特定部６１０は、特定した結果をＮＡＴ越え用ポート決定部６１３へ通知し、ＮＡＴ越え用ポート決定部６１３は、当該結果に示されるポート番号をＮＡＴ越えのための処理に用いる。
【０１０６】
なお、下段ＮＡＴ装置ａ４０４のポート割り当て基準がＣｏｎｅ型であることが予め分かっている場合、ＮＡＴ越えのために、ポート発番規則を特定する必要がない。そのため、この場合は、ポート発番規則特定部６１０が有する機能を用いずにＮＡＴ越え用ポート決定部６１３へ処理が移行する。
【０１０７】
ＮＡＴ越え用ポート決定部６１３は、ポート発番規則特定部６１０から得られた結果から、ＮＡＴ越え用ポートマッピング命令部６１１でポートマッピング命令に用いるポート番号と、ＮＡＴ越え情報通知部６１２で用いられる通知依頼パケットの送信元ポート番号とを決定する。
【０１０８】
なお、下段ＮＡＴ装置ａ４０４のポート割り当て基準がＣｏｎｅ型であることが予め分かっている場合、上述のように、ポート発番規則特定部６１０ではポート発番規則の特定をせず、判定パケット受信部６０９で受信した１つの判定パケットの送信元ポート番号が、ポートマッピング命令に用いるポート番号として決定される。
【０１０９】
ＮＡＴ越え用ポートマッピング命令部６１１は、ＮＡＴ越え用ポート決定部６１３で決定された、ＮＡＴ越え用にポートマッピングすべきポート番号を用いて、下段ＮＡＴ装置ａ４０４へＵＰｎＰのＩＧＤ等を用いてポートマッピング命令をする。
【０１１０】
ＮＡＴ越え情報通知部６１２は、ＮＡＴ越え用ポート決定部６１３で決定された送信元ポート番号を用いて、外部サーバ４０１へ通知依頼パケットを送信することで、外部サーバ４０１と通信する他の端末装置へのＮＡＴ越え情報の通知を、外部サーバ４０１に行わせる。
【０１１１】
当該ＮＡＴ越え情報には、外部サーバ４０１に受信された通知依頼パケットに示される上段ＮＡＴ装置ａ４０３のＷＡＮ側ＩＰアドレスとＷＡＮ側ポート番号とが含まれている。つまり、当該ＮＡＴ越え情報には、当該他の端末装置がＮＡＴ越えをして端末装置ａ４０５と通信するために必要な、パケットの宛先を示す情報が含まれている。
【０１１２】
なお、ポート発番規則特定部６１０等の、図８において点線の矩形で示される機能ブロックは、端末装置ａ４０５が備えていなくてもよい。例えば、端末装置ａ４０５のポート番号取得部６１５が取得した、下段ＮＡＴ装置ａ４０４のＷＡＮ側ポート番号を他の装置に送信し、当該他の装置に、ポート発番規則の特定およびＮＡＴ越え用のポート番号の決定等の処理を行わせてもよい。
【０１１３】
また、図８に示す機能構成の一部または全部は、１つの集積回路として実現することができる。つまり、端末装置ａ４０５は、集積回路によって実現することができる。
【０１１４】
外部サーバ４０１は、端末装置ａ４０５から受信した通知依頼パケットからＮＡＴ越え情報を取得し、それを他端末へ通知する通信機器である。外部サーバ４０１は、従来のＮＡＴ越え手法で用いられる認証サーバまたはセッション管理サーバ等で実現できるものであるため、機能ブロック図は省略する。
【０１１５】
端末装置ｂ４０８は、端末装置ａ４０５からの通信依頼を外部サーバ４０１経由で受信し、外部サーバ４０１から端末装置ａ４０５との通信のためのＮＡＴ越え情報を受信し、その情報を基に端末装置ａ４０５へアクセスする機能を有する。つまり、端末装置ｂ４０８は、従来のＳＴＵＮあるいはそれに準じた機能を持った通信機器もしくは通信手段である。そのため、端末装置ｂ４０８の機能ブロック図は省略する。
【０１１６】
次に、図９を用いて、端末装置ａ４０５の基本的な処理の流れを説明する。
【０１１７】
図９は、本発明の実施の形態１における端末装置ａ４０５の基本的な処理の流れを示すフロー図である。
【０１１８】
接続環境確認部６０１は、ＮＡＴ情報を収集する（Ｓ１０）。具体的には、上段ＮＡＴ装置ａ４０３のＬＡＮ側ＩＰアドレスを示す情報、下段ＮＡＴ装置ａ４０４のＷＡＮ側ＩＰアドレスを示す情報、上段ＮＡＴ装置ａ４０３のポートマッピング設定機能の有無情報、および下段ＮＡＴ装置ａ４０４のポートマッピング設定機能の有無情報等が収集される。
【０１１９】
判定用ポートマッピング命令部６０２は、下段ＮＡＴ装置ａ４０４に対し、所定のポート番号を用いてポートマッピング命令を行う（Ｓ１１）。
【０１２０】
判定パケット生成部６０３は、ソースルーティング設定された判定パケットを生成する（Ｓ２０）。具体的には以下の処理が行われる。
【０１２１】
中継宛先決定部６０４は、接続環境確認部６０１が収集した、上段ＮＡＴ装置ａ４０３のＬＡＮ側ＩＰアドレスを、判定パケットの中継宛先として決定する（Ｓ２１）。
【０１２２】
最終宛先決定部６０５は、接続環境確認部６０１が収集した、下段ＮＡＴ装置ａ４０４のＷＡＮ側ＩＰアドレスを、判定パケットの最終宛先として決定する（Ｓ２２）。
【０１２３】
宛先ポート決定部６０６は、判定用ポートマッピング命令部６０２によるポートマッピング命令に用いられた所定のポート番号と同じポート番号を、判定パケットの宛先ポート番号として決定する（Ｓ２３）。
【０１２４】
なお、宛先ポート決定部６０６で決定される宛先ポート番号と、ポートマッピング命令に用いられる所定のポート番号とが同一であれば、当該同一のポート番号は、宛先ポート決定部６０６および判定用ポートマッピング命令部６０２のいずれが決定してもよい。
【０１２５】
判定パケット送信部６０８は、判定パケット生成部６０３で生成された判定パケットを送信する（Ｓ３０）。
【０１２６】
判定パケット受信部６０９は、判定パケット送信部６０８から送信され、上段ＮＡＴ装置ａ４０３および下段ＮＡＴ装置ａ４０４を経て、端末装置ａ４０５に到達する判定パケットを受信する（Ｓ３１）。
【０１２７】
ポート番号取得部６１５は、判定パケット受信部６０９により受信された判定パケットに示される送信元ポート番号である、下段ＮＡＴ装置ａ４０４のＷＡＮ側ポート番号を取得する（Ｓ３２）。
【０１２８】
以上の基本的な処理を実行する端末装置ａ４０５を含む通信システム４００における通信シーケンスの一例を、図１０〜図１２を用いて説明する。
【０１２９】
具体的には、図１０の環境を例に、端末装置ａ４０５から端末装置ｂ４０８へＮＡＴ越えをしてＰ２Ｐ通信を確立するまでの一連の処理の流れを、フロー図である図１１および図１２を用いて説明する。
【０１３０】
図１０は、実施の形態１の通信システム４００における各装置に割り当てられたＩＰアドレスの例を示す図である。
【０１３１】
図１０に示すように各装置に１つまたは２つのＩＰアドレスが割り当てられている環境を想定する。例えば、図１０において、下段ＮＡＴ装置ａ４０４には、ＬＡＮ側ＩＰアドレスとして“１９２．１６８．１１．１”が割り当てられ、ＷＡＮ側ＩＰアドレスとして“１９２．１６８．１０．２”が割り当てられている。また、上段ＮＡＴ装置ａ４０３には、ＬＡＮ側ＩＰアドレスとして“１９２．１６８．１０．１”が割り当てられ、ＷＡＮ側ＩＰアドレスとして“１０．０．０．２”が割り当てられている。
【０１３２】
このような環境において、端末装置ａ４０５が、自身が生成し送信した判定パケットを受信するまでの通信シーケンスを、図１１を用いて説明する。
【０１３３】
まず、端末装置ａ４０５の接続環境確認部６０１は、端末装置ａ４０５と外部サーバ４０１との間にある全てのＮＡＴ装置についてのＮＡＴ情報を取得する（Ｓ８０１）。接続環境確認部６０１が取得するＮＡＴ情報は、ＮＡＴ装置（本実施の形態では４０３および４０４）のＷＡＮ側ＩＰアドレス、ＬＡＮ側ＩＰアドレス、および、ＵＰｎＰのＩＧＤまたはＮＡＴ−ＰＭＰ等のポートマッピング設定機能の有無を示す情報等である。接続環境確認部６０１は、その他の情報を取得してもよい。
【０１３４】
また、ＮＡＴ装置のＷＡＮ側ＩＰアドレスおよびＬＡＮ側ＩＰアドレスは、ｔｒａｃｅｒｏｕｔｅ等のＩＣＭＰパケットまたはＵＰｎＰのＧｅｔＥｘｔｅｒｎａｌＩＰＡｄｄｒｅｓｓ等を用いることにより得ることができる。またＵＰｎＰのＩＧＤまたはＮＡＴ−ＰＭＰ等のポートマッピング設定機能の有無は、ＵＰｎＰのＩＧＤ等の機能を使うことにより判断することができる。
【０１３５】
なお、Ｓ８０１の処理は、端末装置ａ４０５がネットワークに接続された時または電源の起動時に行われてもよく、Ｓ８０２を行う前に実行することができれば、いつでもよい。
【０１３６】
次に、端末装置ａ４０５の判定用ポートマッピング命令部６０２は、下段ＮＡＴ装置ａ４０４へ、ＵＰｎＰのＩＧＤ等のポートマッピング設定機能を用いて、端末装置ａ４０５内の宛先ポート決定部６０６により決定される所定のポート番号を用いた判定用ポートマッピング命令を行う（Ｓ８０２）。
【０１３７】
本実施の形態では、端末装置ａ４０５の宛先ポート決定部６０６によって決定される所定のポート番号を、ｄ番として以後説明する。
【０１３８】
下段ＮＡＴ装置ａ４０４は、端末装置ａ４０５から判定用ポートマッピング命令を受け、指定されたポートであるｄ番ポートに対し、ＵＰｎＰのＩＧＤ等でポートマッピングの設定を行う。これにより、以後、下段ＮＡＴ装置ａ４０４のＷＡＮ側ＩＰアドレスである“１９２．１６８．１０．２”のｄ番ポート宛にパケットがＷＡＮ側から来た場合、下段ＮＡＴ装置ａ４０４はそのパケットの宛先を端末装置ａ４０５のＩＰアドレスである“１９２．１６８．１１．２”のｄ番ポートに書き換えることで、当該パケットを端末装置ａ４０５へ転送する（Ｓ８０３およびＳ８０４）。
【０１３９】
なお、この端末装置ａ４０５へのパケット転送時に、宛先ポート番号をｄ番以外のポートに転送するように指定してもよい。
【０１４０】
端末装置ａ４０５の判定パケット生成部６０３は、Ｓ８０１で得たＮＡＴ情報を元に判定パケットを生成する（Ｓ８０５）。
【０１４１】
ここで、判定パケットはソースルーティング設定がなされるため、通常のＩＰパケットにおける宛先ＩＰアドレスと送信元ＩＰアドレスだけでなく、最終宛先ＩＰアドレスが判定パケット内に含められる。すなわち、通常のＩＰヘッダ部にある宛先ＩＰアドレス部に指定されるＩＰアドレスは、中継宛先ＩＰアドレスとして扱われる。従って、以下、判定パケットの生成時にＩＰヘッダ部の宛先ＩＰアドレス部に指定されるＩＰアドレスを、中継宛先ＩＰアドレスと表記する。
【０１４２】
図１０に示す環境例の下では、端末装置ａ４０５の中継宛先決定部６０４が、中継宛先ＩＰアドレスに、上段ＮＡＴ装置ａ４０３のＬＡＮ側ＩＰアドレスである“１９２．１６８．１０．１”を指定する。また、最終宛先決定部６０５が、最終宛先ＩＰアドレスに、下段ＮＡＴ装置ａ４０４のＷＡＮ側ＩＰアドレス“１９２．１６８．１０．２”を指定する。
【０１４３】
一般的に市販されているブロードバンドＮＡＴ装置の中には、ＩＰヘッダのオプション部に指定される、ソースルーティング用の最終宛先ＩＰアドレスを含む通信パケットをフィルタリングする製品も存在する。そのため、本発明では、ＩＰヘッダのオプション部に最終宛先ＩＰアドレスを指定するのでなく、通信パケットのデータ部などのＩＰヘッダ部以外に、最終宛先ＩＰアドレスを指定して、ソースルーティングと同等の機能を行わせることも可能である。
【０１４４】
また、端末装置ａ４０５の宛先ポート決定部６０６が、判定パケットの宛先ポート番号を指定する。本実施の形態では上述のようにｄ番を指定する。さらに、端末装置ａ４０５の送信元ポート決定部６０７が、任意のポート番号を判定パケットの送信元ポート番号に指定する。本実施の形態ではｓ番ポートを送信元ポート番号に用いると想定する。
【０１４５】
そして、端末装置ａ４０５の判定パケット送信部６０８が、Ｓ８０５で生成された判定パケットを送信する。送信された判定パケットは、下段ＮＡＴ装置ａ４０４を通過し、中継宛先ＩＰアドレスで指定されている上段ＮＡＴ装置ａ４０３によって受信される（Ｓ８０６、Ｓ８０７およびＳ８０８）。
【０１４６】
このときＳ８０７で下段ＮＡＴ装置ａ４０４が判定パケットの送信元ＩＰアドレスと送信元ポート番号とをアドレス変換する。このときのアドレス変換では、送信元ＩＰアドレスは“１９２．１６８．１１．２”から、下段ＮＡＴ装置ａ４０４のＷＡＮ側ＩＰアドレスである“１９２．１６８．１０．２”に変換される。また、送信元ポート番号はｓ番から、ｓ´番に変換されたと想定する。
【０１４７】
上段ＮＡＴ装置ａ４０３は、Ｓ８０８で受信した判定パケットのＩＰヘッダ部にある宛先ＩＰアドレス部の中継宛先ＩＰアドレスを、判定パケット内に記述されている最終宛先ＩＰアドレスに変更する（Ｓ８０９）。
【０１４８】
上段ＮＡＴ装置ａ４０３は、Ｓ８０９で宛先変更が行われた判定パケットを、下段ＮＡＴ装置ａ４０４の、Ｓ８０４でポートマッピングされたポートｄ番ポートへ送信する（Ｓ８１０）。
【０１４９】
下段ＮＡＴ装置ａ４０４は、Ｓ８１０で上段ＮＡＴ装置ａ４０３から送信された判定パケットの宛先ＩＰアドレスを、端末装置ａ４０５のＩＰアドレス“１９２．１６８．１１．２”へ変更し、転送する（Ｓ８１１）。
【０１５０】
なお、Ｓ８１０およびＳ８１１が完了した後には、Ｓ８０２、Ｓ８０３およびＳ８０４において、下段ＮＡＴ装置ａ４０４へＵＰｎＰのＩＧＤ等で設定したポートマッピング機能を停止させる処理を行ってもよい。
【０１５１】
端末装置ａ４０５の判定パケット受信部６０９は、Ｓ８１０およびＳ８１１で送信され転送された判定パケットを受信する（Ｓ８１２）。ここで受信された判定パケットの送信元ＩＰアドレスと送信元ポート番号とは、それぞれ下段ＮＡＴ装置ａ４０４のＷＡＮ側ＩＰアドレスである“１９２．１６８．１０．２”と、下段ＮＡＴ装置ａ４０４がＳ８０７においてアドレス変換した結果のポート番号である“ｓ´”とである。
【０１５２】
端末装置ａ４０５のポート番号取得部６１５は、判定パケット受信部６０９が受信した判定パケットの送信元ポート番号である、下段ＮＡＴ装置ａ４０４のＷＡＮ側ポート番号である“ｓ´”を取得する。
【０１５３】
次に、端末装置ａ４０５が、ＮＡＴ越え用のポートを決定してから、ＮＡＴ越えアクセスを行うまでの各装置の処理の流れを、図１２を用いて説明する。
【０１５４】
ここで、本実施の形態は、下段ＮＡＴ装置ａ４０４のポート割り当て基準がＣｏｎｅ型である場合を想定しており、この場合、図１２におけるＳ９０１で必要になるＮＡＴ越え用ポートの決定には、ポート発番規則を特定する必要がない。
【０１５５】
そのため、端末装置ａ４０５の各機能ブロックの処理の流れとしては、判定パケット受信部６０９から、ＮＡＴ越え用ポート決定部６１３へ処理が遷移する。
【０１５６】
端末装置ａ４０５のＮＡＴ越え用ポート決定部６１３は、Ｓ９０２で下段ＮＡＴ装置ａ４０４へＵＰｎＰのＩＧＤ等でポートマッピング命令を行う際に用いるＮＡＴ越え用ポート番号と、Ｓ９０５で用いるＮＡＴ越え情報の通知依頼パケットの送信元ポート番号とを決定する（Ｓ９０１）。
【０１５７】
ここで、上述のように、本実施の形態における下段ＮＡＴ装置ａ４０４のポート割り当て基準はＣｏｎｅ型である。従って、ＮＡＴ越え用に決定されるポート番号と、ＮＡＴ越え情報の通知依頼パケットの送信元ポート番号とは、それぞれＳ８１２で受信した判定パケットの送信元ポート番号であるｓ´番ポートと、Ｓ８０６で用いられた送信元ポートｓ番とである。
【０１５８】
そのため、端末装置ａ４０５のＮＡＴ越え用ポートマッピング命令部６１１は、下段ＮＡＴ装置ａ４０４へ、ｓ´番ポートのポートマッピング命令をＵＰｎＰのＩＧＤ等を用いて、送信する（Ｓ９０２）。
【０１５９】
下段ＮＡＴ装置ａ４０４は、Ｓ９０２で送信されたＮＡＴ用ポートマッピング命令を受信し（Ｓ９０３）、指定されたポート番号ｓ´番のポートに対してポートマッピング設定を行う（Ｓ９０４）。以後、下段ＮＡＴ装置ａ４０４のＷＡＮ側ＩＰアドレスである“１９２．１６８．１０．２”のｓ´番ポート宛にパケットがＷＡＮ側から来た場合、下段ＮＡＴ装置ａ４０４はそのパケットの宛先を、端末装置ａ４０５のＩＰアドレスである“１９２．１６８．１１．２”のｓ番ポートへ書き換えることで、当該パケットを端末装置ａ４０５に転送する。
【０１６０】
端末装置ａ４０５のＮＡＴ越え情報通知部６１２は、送信元ＩＰアドレスを“１９２．１６８．１１．２”、送信元ポートをｓ番ポートとして、外部サーバ４０１宛に通知依頼パケットを送信する。
【０１６１】
具体的には、当該通知依頼パケットは、宛先ＩＰアドレスとして“１０．０．０．１”が指定され、宛先ポート番号として外部サーバ４０１が指定する任意のポート番号が指定される。このようにして、ＮＡＴ越え情報の外部サーバ４０１への送信が行われる（Ｓ９０５）。
【０１６２】
このとき、下段ＮＡＴ装置ａ４０４でアドレス変換が行われるが、下段ＮＡＴ装置ａ４０４はＣｏｎｅ型であり、かつ、端末装置ａ４０５からの通知依頼パケットの送信元ポート番号は、判定パケットの送信時（Ｓ８０６）の送信元ポート番号と同じ“ｓ”である。
【０１６３】
したがって、送信元ＩＰアドレスと送信元ポートが、それぞれ“１９２．１６８．１０．２”と、Ｓ８０７における変換結果であるｓ´番ポートに変換される（Ｓ９０６）。
【０１６４】
さらに、上段ＮＡＴ装置ａ４０３でもアドレス変換されることになる（Ｓ９０７）。このときの変換後の送信元ＩＰアドレスは“１０．０．０．２”である。また、当該変換後の送信元ポートを、ｓ´´番ポートとする。
【０１６５】
Ｓ９０８で外部サーバ４０１に届く通信パケットの送信元ＩＰアドレスと送信元ポート番号とは、それぞれ上段ＮＡＴ装置ａ４０３によるアドレス変換後の“１０．０．０．２”と“ｓ´´”とである。外部サーバ４０１は、これらの情報を、ＮＡＴ越え情報として外部サーバ４０１内に保存する（Ｓ９０８）。
【０１６６】
またＳ９０５において端末装置ａ４０５から送信される通知依頼パケット内に、端末装置ａ４０５の通信相手となる端末装置ｂ４０８の識別子またはＩＤ等を含めて送ってもよい。つまり、端末装置ａ４０５は、通信相手の識別子等を外部サーバ４０１に通知することもできる。
【０１６７】
Ｓ９０８の処理を終えた外部サーバ４０１は、端末装置ａ４０５の通信相手となる端末装置ｂ４０８に、Ｓ９０８で得たＮＡＴ越え情報を通知する（Ｓ９０９およびＳ９１０）。
【０１６８】
このとき通知される情報は、上段ＮＡＴ装置ａ４０３のＷＡＮ側ＩＰアドレスである“１０．０．０．２”とポート番号“ｓ´´”とであるが、それ以外の情報が含まれていてもよい。
【０１６９】
端末装置ｂ４０８は、Ｓ９１０で外部サーバ４０１から受信したＮＡＴ越え情報を用いて、端末装置ａ４０５へＮＡＴ越えをしてアクセスする（Ｓ９１１）。
【０１７０】
このときの通信パケットの宛先ＩＰアドレスと宛先ポート番号はそれぞれ、Ｓ９１０で得たＮＡＴ越え情報に示される、上段ＮＡＴ装置ａ４０３のＷＡＮ側ＩＰアドレス“１０．０．０．２”と、端末装置ａ４０５−外部サーバ４０１間通信で上段ＮＡＴ装置ａ４０３で行われたアドレス変換後のポート番号“ｓ´´”である。
【０１７１】
端末装置ｂ４０８が、この通信パケットを送信した場合、上段ＮＡＴ装置ａ４０３は、この通信パケットの宛先ＩＰアドレスと宛先ポート番号とを、それぞれ“１９２．１６８．１０．２”と“ｓ´”とへ書き換え、下段ＮＡＴ装置ａ４０４へ転送する（Ｓ９１２）。
【０１７２】
つまり、下段ＮＡＴ装置ａ４０４は、Ｓ９０３およびＳ９０４でポートマッピング設定されたポートであるｓ´番ポートで当該通信パケットを受信する。そのため、下段ＮＡＴ装置ａ４０４は、当該通信パケットの宛先ＩＰアドレスと宛先ポート番号とを、それぞれ端末装置ａ４０５のＩＰアドレス“１９２．１６８．１１．２”と“ｓ”とに書き換え、端末装置ａ４０５に転送する（Ｓ９１３）。
【０１７３】
このようにして、端末装置ａ４０５は、端末装置ｂ４０８からのＮＡＴ越えを果たした当該通信パケットを受信する（Ｓ９１４）。
【０１７４】
端末装置ａ４０５は、Ｓ９１４で受信した通信パケットに対して返信する。これにより、端末装置ａ４０５から端末装置ｂ４０８へのＮＡＴ越えが果たされ、Ｐ２Ｐ通信が確立される（Ｓ９１５およびＳ９１６）。
【０１７５】
以上の処理の流れにより、図１０に例示するネットワーク構成において、下段ＮＡＴ装置ａ４０４のポート割り当て分類がＣｏｎｅ型である場合、端末装置ｂ４０８から端末装置ａ４０５への通信パケットが、下段ＮＡＴ装置ａ４０４に設けられたＮＡＴ越え用ポートとして設定されたポートに到達する。これにより、当該通信パケットは下段ＮＡＴ装置ａ４０４を通過して端末装置ａ４０５に到達する。つまり、端末装置ｂ４０８から端末装置ａ４０５への通信におけるＮＡＴ越えが行われる。
【０１７６】
また、端末装置ａ４０５から端末装置ｂ４０８への通信パケットは、上記の端末装置ｂ４０８から端末装置ａ４０５への通信パケットの返信として、同じ経路（ポート番号）を用いて、上段ＮＡＴ装置ｂ４０６および下段ＮＡＴ装置ｂ４０７へ送信される。従って、当該返信の通信パケットは、前記２つのＮＡＴ装置でフィルタリングされることがない。つまり、端末装置ａ４０５から端末装置ｂ４０８への通信におけるＮＡＴ越えがなされ、端末装置ａ４０５から端末装置ｂ４０８への通信が実現できる。
【０１７７】
（実施の形態２）
実施の形態２では、下段ＮＡＴ装置である宅内ＮＡＴ装置がＡｄｄｒｅｓｓ  Ｓｅｎｓｉｔｉｖｅ型またはＰｏｒｔ  Ｓｅｎｓｉｔｉｖｅ型である場合の、ＮＡＴ越えを伴う通信の一例を示す。
【０１７８】
実施の形態２における、通信システムの構成、ならびに各装置のハードウェア構成および機能ブロック構成は実施の形態１の図６、図７、および図８と同様のため説明は省略する。
【０１７９】
また、実施の形態２における端末装置ａ４０５の基本的な処理の流れは、図９に示す通りであり、ここでの説明は省略する。
【０１８０】
以下に、多段ＮＡＴ環境下で異なるＮＡＴ装置配下にある端末装置ａ４０５と端末装置ｂ４０８との間で、ＮＡＴ越えを行い、Ｐ２Ｐ通信を行う場合の各装置の処理を説明する。
【０１８１】
具体的には、実施の形態１と同様に、図１０に例示される環境下において、端末装置ａ４０５から端末装置ｂ４０８へＮＡＴ越えをして、Ｐ２Ｐ通信をするまでの処理の流れを、図１１および図１３を用いて説明する。
【０１８２】
まず、端末装置ａ４０５の接続環境確認部６０１は、端末装置ａ４０５と外部サーバ４０１との間にある全てのＮＡＴ装置についてのＮＡＴ情報を取得する（Ｓ８０１）。接続環境確認部６０１が取得するＮＡＴ情報は、ＮＡＴ装置（本実施の形態では４０３および４０４）のＷＡＮ側ＩＰアドレス、ＬＡＮ側ＩＰアドレス、および、ＵＰｎＰのＩＧＤまたはＮＡＴ−ＰＭＰ等のポートマッピング設定機能の有無を示す情報等である。接続環境確認部６０１は、その他の情報を取得してもよい。
【０１８３】
また、ＮＡＴ装置のＷＡＮ側ＩＰアドレスおよびＬＡＮ側ＩＰアドレスは、ｔｒａｃｅｒｏｕｔｅ等のＩＣＭＰパケットまたはＵＰｎＰのＧｅｔＥｘｔｅｒｎａｌＩＰＡｄｄｒｅｓｓ等を用いることにより得ることができる。またＵＰｎＰのＩＧＤまたはＮＡＴ−ＰＭＰ等のポートマッピング設定機能の有無は、ＵＰｎＰのＩＧＤ等の機能を使うことにより判断することができる。
【０１８４】
本実施の形態では、Ｓ８０１が実行された後に、実施の形態１と同様に図１１のＳ８０２〜Ｓ８１２までが行われる。しかし、本実施の形態では、下段ＮＡＴ装置ａ４０４のポート発番規則の特定を行う必要がある。そのため、具体的には、図１１のＳ８０２〜Ｓ８１２の一連の処理を少なくとも３回行う必要がある。
【０１８５】
そこで、本実施の形態では図１１のＳ８０２〜Ｓ８１２の一連の処理が３回行われる。また、Ｓ８０２〜Ｓ８１２を行うにあたって、その都度変化させるべき項目は、Ｓ８０５の判定パケット生成の際に設定される送信元ポート番号である。
【０１８６】
本実施の形態では、ｎ回目のＳ８０２〜Ｓ８１２で、端末装置ａ４０５が判定パケットの送信元ポートとして使用するポートをｓ（ｎ）番ポートと表し、Ｓ８０７で、下段ＮＡＴ装置ａ４０４がｓ（ｎ）番ポートを変換した結果のポートをｓ´（ｎ）番ポートと表す。
【０１８７】
すなわち１回目のＳ８０２〜Ｓ８１２で用いられる判定パケットは、端末装置ａ４０５から送信される時点では、送信元ポートとしてｓ（１）番ポートが用いられ、下段ＮＡＴ装置ａ４０４ではｓ（１）番ポートからｓ´（１）番ポートへとアドレス変換される。
【０１８８】
このようなＳ８０２〜Ｓ８１２の一連の処理が３回行われた後、端末装置ａ４０５のポート発番規則特定部６１０は、各回で用いられた判定パケットの送信元ポート番号として使用されたｓ（１）、ｓ（２）、およびｓ（３）、ならびに、それらの変換結果として得られるポート番号ｓ´（１）、ｓ´（２）、およびｓ´（３）を用いて、下段ＮＡＴ装置ａ４０４のポート発番規則の特定を、例えば図１４に示す処理フローに沿って実行する（図１３のＳ１００１）。
【０１８９】
ここで、図１４に示されるポート発番規則の特定処理では、ポート発番規則特定部６１０は、ｓ（ｎ）とｓ´（ｎ）とを比較する（Ｓ１１０１）。この比較の結果、ｓ（ｎ）とｓ´（ｎ）が等しい場合（Ｓ１１０１でＹ）、ポート発番規則特定部６１０は、下段ＮＡＴ装置ａ４０４のポート発番規則を（１）Ｐｏｒｔ  Ｒｅｕｓｅ型と特定し、異なる場合には、次の比較処理（Ｓ１１０２）へ移行する。
【０１９０】
すなわち、本実施の形態では“ｓ（１）＝ｓ´（１）”かつ“ｓ（２）＝ｓ´（２）”かつ“ｓ（３）＝ｓ´（３）”の場合、ポート発番規則を［１］Ｐｏｒｔ  Ｒｅｕｓｅ型と特定する。
【０１９１】
次の比較処理（Ｓ１１０２）では、ポート発番規則特定部６１０は、ｓ´（ｎ）−ｓ´（ｎ−１）が一定である場合に、ポート発番規則を［２］Ｓｅｑｕｅｎｔｉａｌ型と特定し、一定ではない場合には［３］Ｒａｎｄｏｍ型と特定する。
【０１９２】
すなわち、ポート発番規則特定部６１０は、“ｓ´（３）−ｓ´（２）＝ｓ´（２）−ｓ´（１）”である場合、言い換えるとポート割り当て間隔が一定である場合に、ポート発番規則を［２］Ｓｅｑｕｅｎｔｉａｌ型と特定し、それ以外である場合には、［３］Ｒａｎｄｏｍ型と特定する。
【０１９３】
なお、下段ＮＡＴ装置ａ４０４のポート発番規則が［３］Ｒａｎｄｏｍ型と特定された場合、本発明で提案するＮＡＴ越え手法を行うことはできない。そのため、［３］Ｒａｎｄｏｍ型と特定された場合には、端末装置ａ４０５は、例えば外部サーバ４０１にＮＡＴ越え不可な旨を通知してもよい。また、外部サーバ４０１は、当該通知内容を端末装置ｂ４０８に知らせてもよい。
【０１９４】
ここで、［１］Ｐｏｒｔ  Ｒｅｕｓｅ型および［２］Ｓｅｑｕｅｎｔｉａｌ型のＮＡＴ装置は、ポート発番規則に従って、ポートマッピング設定をするポート番号を決定する。そのため、決定したポート番号が既に他の通信で使用されている場合には、本来のポート発番規則に反したポート番号を割り当てることがある。従って、本来［１］Ｐｏｒｔ  Ｒｅｕｓｅ型および［２］Ｓｅｑｕｅｎｔｉａｌ型のＮＡＴ装置でも、状況によっては間違ったポート発番規則が特定されることもあるが、この場合の対処については、本発明の本義ではないため、省略する。
【０１９５】
図１３に示す、Ｓ１００２〜Ｓ１０１７は、実施の形態１のＳ９０１〜Ｓ９１６とほぼ同等であるが、使用する送信元ポート番号および下段ＮＡＴ装置ａ４０４でのアドレス変換等に差異がある。そこで、下段ＮＡＴ装置ａ４０４が［１］Ｐｏｒｔ  Ｒｅｕｓｅ型である場合を実施の形態２の具体例１とし、［２］Ｓｅｑｕｅｎｔｉａｌ型である場合を実施の形態２の具体例２として、Ｓ１００２〜Ｓ１０１７の説明を以下に示す。
【０１９６】
（実施の形態２の具体例１：Ｐｏｒｔ  Ｒｅｕｓｅ型）
端末装置ａ４０５のポート発番規則特定部６１０が、下段ＮＡＴ装置ａ４０４のポート発番規則を、Ｐｏｒｔ  Ｒｅｕｓｅ型であると特定した後、ＮＡＴ越え用ポート決定部６１３は、下段ＮＡＴ装置ａ４０４にＮＡＴ越え用にポートマッピング設定をするポート番号を決定する（Ｓ１００２）。
【０１９７】
ここで、下段ＮＡＴ装置ａ４０４がＰｏｒｔ  Ｒｅｕｓｅ型であるときのポートマッピングの対象となるポート番号は、下段ＮＡＴ装置ａ４０４でアドレス変換後に割り当てられるポート番号であり、Ｓ１００６でのＮＡＴ越え情報送信時に、端末装置ａ４０５が用いる送信元ポート番号と同じポート番号である。
【０１９８】
Ｓ１００６でのＮＡＴ越え情報送信時に、端末装置ａ４０５が用いる送信元ポート番号は任意の番号でよい。しかし、Ｓ８０２〜Ｓ８１２で用いたポート番号ｓ（１）、ｓ（２）およびｓ（３）は、直前に使用したポート番号のため、下段ＮＡＴ装置ａ４０４が本来のポート発番規則であるＰｏｒｔ  Ｒｅｕｓｅ規則に反したポート発番を行う可能性があるため、避けるべきである。
【０１９９】
ここで、以後の説明のために、Ｓ１００６でのＮＡＴ越え情報送信時に、端末装置ａ４０５が通知依頼パケットの送信元ポート番号として用いるポート番号を“ｓ＿ｐｒ”と表記する。この場合、ＮＡＴ越え用としてポートマッピング設定をするポート番号も“ｓ＿ｐｒ”となる。
【０２００】
Ｓ１００２で決定したＮＡＴ越え用のポート番号“ｓ＿ｐｒ”を用いて、端末装置ａ４０５のＮＡＴ越え用ポートマッピング命令部６１１から下段ＮＡＴ装置ａ４０４へＵＰｎＰのＩＧＤ等でポートマッピング命令を行う。下段ＮＡＴ装置ａ４０４は当該命令に従い、ｓ＿ｐｒ番ポートに対してポートマッピング設定を行う（Ｓ１００３、Ｓ１００４およびＳ１００５）。
【０２０１】
以後、下段ＮＡＴ装置ａ４０４のＷＡＮ側ＩＰアドレスである“１９２．１６８．１０．２”のｓ＿ｐｒ番ポート宛にパケットがＷＡＮ側から来た場合、下段ＮＡＴ装置ａ４０４は、そのパケットの宛先を端末装置ａ４０５のＩＰアドレスである“１９２．１６８．１１．２”のｓ＿ｐｒ番ポートへ変換し、当該パケットを端末装置ａ４０５へ転送する。なお、この端末装置ａ４０５へのパケット転送時に、宛先ポートとしてｓ＿ｐｒ番以外のポートを指定してもよい。
【０２０２】
次に、端末装置ａ４０５のＮＡＴ越え情報通知部６１２から、外部サーバ４０１へＮＡＴ越え情報を通知する（Ｓ１００６）。具体的には、以下の処理が行われる。すなわち、ＮＡＴ越え情報通知部６１２は、送信元ＩＰアドレスと送信元ポート番号とを、それぞれ“１９２．１６８．１１．２”と“ｓ＿ｐｒ”とした通知依頼パケットを、外部サーバ４０１宛に送信する。当該通知依頼パケットの宛先ＩＰアドレスは、“１０．０．０．１”であり、宛先ポート番号は外部サーバ４０１が指定する任意のポート番号である。
【０２０３】
この場合、当該通知依頼パケットの、下段ＮＡＴ装置ａ４０４でのアドレス変換後の送信元ＩＰアドレスと送信元ポート番号は、それぞれ“１９２．１６８．１０．２”と“ｓ＿ｐｒ”になる（Ｓ１００７）。さらに、上段ＮＡＴ装置ａ４０３でもアドレス変換される（Ｓ１００８）。このとき変換後の送信元ＩＰアドレスは“１０．０．０．２”である。また、このときの変換後の送信元ポートをｓ´´＿ｐｒ番ポートとする。
【０２０４】
外部サーバ４０１に届く通知依頼パケットの送信元ＩＰアドレスと送信元ポート番号とは、それぞれ上段ＮＡＴ装置ａ４０３によるアドレス変換により得られた“１０．０．０．２”と“ｓ´´＿ｐｒ”とである。これらの情報はＮＡＴ越え情報として外部サーバ４０１内に保存される（Ｓ１００９）。
【０２０５】
またこのとき、端末装置ａ４０５から送信される通知依頼パケット内に、端末装置ａ４０５の通信相手となる端末装置ｂ４０８の識別子またはＩＤ等を含めて送ってもよい。
【０２０６】
Ｓ１００９の処理を終えた外部サーバ４０１は、端末装置ａ４０５の通信相手となる端末装置ｂ４０８に、ＮＡＴ越え情報を通知する（Ｓ１０１０およびＳ１０１１）。
【０２０７】
このとき通知される情報は、上段ＮＡＴ装置ａ４０３のＷＡＮ側ＩＰアドレスである“１０．０．０．２”と上段ＮＡＴ装置ａ４０３によるアドレス変換後のポート番号“ｓ´´＿ｐｒ”であるが、それ以外の情報を含めてもよい。
【０２０８】
端末装置ｂ４０８は、Ｓ１０１１で外部サーバ４０１から通知されたＮＡＴ越え情報を用いて、端末装置ａ４０５へＮＡＴ越えをしてアクセスする（Ｓ１０１２）。
【０２０９】
このときの通信パケットの宛先ＩＰアドレスと宛先ポート番号は、上段ＮＡＴ装置ａ４０３のＷＡＮ側ＩＰアドレス“１０．０．０．２”と端末装置ａ４０５−外部サーバ４０１間通信において上段ＮＡＴ装置ａ４０３で行われたアドレス変換後のポート番号“ｓ´´＿ｐｒ”である。
【０２１０】
上段ＮＡＴ装置ａ４０３はこの通信パケットを受信すると、その宛先ＩＰアドレスと宛先ポート番号を、それぞれ“１９２．１６８．１０．２”と“ｓ＿ｐｒ”へ書き換え、下段ＮＡＴ装置ａ４０４へ転送する（Ｓ１０１３）。
【０２１１】
この場合、下段ＮＡＴ装置ａ４０４は、自身のＷＡＮ側ＩＰアドレスと、Ｓ１００４およびＳ１００５でポートマッピング設定されたｓ＿ｐｒ番ポートとを宛先とする通信パケットを受信する。そのため、下段ＮＡＴ装置ａ４０４は、当該通信パケットの宛先ＩＰアドレスと宛先ポート番号を、それぞれ端末装置ａ４０５のＩＰアドレス“１９２．１６８．１１．２”と“ｓ＿ｐｒ”に書き換え、端末装置ａ４０５に転送する（Ｓ１０１４）。
【０２１２】
このようにして、端末装置ａ４０５は、端末装置ｂ４０８からのＮＡＴ越えを果たした通信パケットを受信する（Ｓ１０１５）。
【０２１３】
端末装置ａ４０５は、Ｓ１０１５で受信した通信パケットに対して返信する。これにより、端末装置ａ４０５から端末装置ｂ４０８へのＮＡＴ越えが果たされ、Ｐ２Ｐ通信が確立される（Ｓ１０１６およびＳ１０１７）。
【０２１４】
以上の処理の流れにより、図１０に例示するネットワーク構成において、下段ＮＡＴ装置ａ４０４のポート割り当て分類がＡｄｄｒｅｓｓ  Ｓｅｎｓｉｔｉｖｅ型もしくはＰｏｒｔ  Ｓｅｎｓｉｔｉｖｅ型であり、かつ、ポート発番規則がＰｏｒｔ  Ｒｅｕｓｅ型である場合のＮＡＴ越えが実現される。具体的には、端末装置ｂ４０８から端末装置ａ４０５への通信パケットが、下段ＮＡＴ装置ａ４０４に設けられたＮＡＴ越え用ポートとして設定されたポートに到達する。これにより、当該通信パケットは下段ＮＡＴ装置ａ４０４を通過して端末装置ａ４０５に到達する。つまり、端末装置ｂ４０８から端末装置ａ４０５への通信におけるＮＡＴ越えが行われる。
【０２１５】
また、下段ＮＡＴ装置ａ４０４で次に用いられるポート番号を予測して、予測したポート番号がＮＡＴ越え用ポートとして設定されている。そのため、端末装置ａ４０５から端末装置ｂ４０８への通信パケットは、端末装置ｂ４０８から端末装置ａ４０５への通信パケットと同じ経路（ポート番号）を用いて、上段ＮＡＴ装置ｂ４０６および下段ＮＡＴ装置ｂ４０７へ送信される。従って、当該通信パケットは、前記２つのＮＡＴ装置でフィルタリングされることがない。つまり、端末装置ａ４０５から端末装置ｂ４０８への通信におけるＮＡＴ越えがなされ、端末装置ａ４０５から端末装置ｂ４０８への通信が実現できる。
【０２１６】
（実施の形態２の具体例２：Ｓｅｑｕｅｎｔｉａｌ型）
端末装置ａ４０５のポート発番規則特定部６１０が、下段ＮＡＴ装置ａ４０４のポート発番規則をＳｅｑｕｅｎｔｉａｌ型であると特定した後、ＮＡＴ越え用ポート決定部６１３は、下段ＮＡＴ装置ａ４０４にＮＡＴ越え用にポートマッピング設定するポート番号を決定する（Ｓ１００２）。
【０２１７】
ここで、下段ＮＡＴ装置ａ４０４がＳｅｑｕｅｎｔｉａｌ型であるときのポートマッピング設定すべきポート番号は、下段ＮＡＴ装置ａ４０４で次のアドレス変換の際に割り当てられるポート番号であり、以下のように算出される。例えば、Ｓ８０２〜Ｓ８１２を複数回行った場合において最後に得られた判定パケットの送信元ポート番号が“ｓ´（３）”である場合、ポートマッピング設定すべきポート番号は“ｓ´（３）＋（ｓ´（３）−ｓ´（２））”である。
【０２１８】
ここで、以後の説明のために、Ｓ１００６のＮＡＴ越え情報送信時に、端末装置ａ４０５が通知依頼パケットの送信元として用いる送信元ポート番号を“ｓ＿ｓｅ”とし、ＮＡＴ越え用としてポートマッピング設定をするポート番号を、ｓ´＿ｓｅとする。なお、ｓ´＿ｓｅ＝ｓ´（３）＋（ｓ´（３）−ｓ´（２））である。
【０２１９】
この場合、端末装置ａ４０５のＮＡＴ越え用ポートマッピング命令部６１１は、Ｓ１００２で決定されたＮＡＴ越え用のポート番号“ｓ´＿ｓｅ”を用いて、下段ＮＡＴ装置ａ４０４へＵＰｎＰのＩＧＤ等でポートマッピング設定を行う（Ｓ１００３およびＳ１００４およびＳ１００５）。
【０２２０】
以後、下段ＮＡＴ装置ａ４０４のＷＡＮ側ＩＰアドレスである“１９２．１６８．１０．２”のｓ´＿ｓｅ番ポート宛にパケットがＷＡＮ側から来た場合、下段ＮＡＴ装置ａ４０４は、そのパケットの宛先を端末装置ａ４０５のＩＰアドレスである“１９２．１６８．１１．２”のｓ＿ｓｅ番ポートへ変換し、当該パケットを端末装置ａ４０５へ転送する。この端末装置ａ４０５へのパケット転送時に、宛先ポートとしてｓ＿ｓｅ番以外のポートを指定してもよい。
【０２２１】
次に、端末装置ａ４０５のＮＡＴ越え情報通知部６１２から、外部サーバ４０１へＮＡＴ越え情報を通知する（Ｓ１００６）。具体的には、以下の処理が行われる。すなわち、ＮＡＴ越え情報通知部６１２は、送信元ＩＰアドレスと送信元ポート番号とを、それぞれ“１９２．１６８．１１．２”と“ｓ＿ｓｅ”とした通知依頼パケットを、外部サーバ４０１宛に送信する。当該通知依頼パケットの宛先ＩＰアドレスは、“１０．０．０．１”であり、宛先ポート番号は外部サーバ４０１が指定する任意のポート番号である。
【０２２２】
この場合、当該通知依頼パケットの、下段ＮＡＴ装置ａ４０４でのアドレス変換後の送信元ＩＰアドレスと送信元ポート番号は、それぞれ“１９２．１６８．１０．２”と“ｓ´＿ｓｅ”になる（Ｓ１００７）。さらに、上段ＮＡＴ装置ａ４０３でもアドレス変換される（Ｓ１００８）。
【０２２３】
このとき変換後の送信元ＩＰアドレスと送信元ポートは“１０．０．０．２”である。また、このときの変換後の送信元ポートをｓ´´＿ｓｅ番ポートとする。
【０２２４】
外部サーバ４０１に届く通知依頼パケットの送信元ＩＰアドレスと送信元ポート番号は、それぞれ上段ＮＡＴ装置ａ４０３によるアドレス変換により得られた“１０．０．０．２”と“ｓ´´＿ｓｅ”である。これらの情報はＮＡＴ越え情報として外部サーバ４０１内に保存される（Ｓ１００９）。
【０２２５】
またこのとき、端末装置ａ４０５から送信される通知依頼パケット内に、端末装置ａ４０５の通信相手となる端末装置ｂ４０８の識別子やＩＤ等を含めて送ってもよい。
【０２２６】
Ｓ１００９の処理を終えた外部サーバ４０１は、端末装置ａ４０５の通信相手となる端末装置ｂ４０８に、ＮＡＴ越え情報を通知する（Ｓ１０１０およびＳ１０１１）。
【０２２７】
このとき通知される情報は、上段ＮＡＴ装置ａ４０３のＷＡＮ側ＩＰアドレスである“１０．０．０．２”と上段ＮＡＴ装置ａ４０３によるアドレス変換後のポート番号“ｓ´´＿ｓｅ”であるが、それ以外の情報を含めてもよい。
【０２２８】
端末装置ｂ４０８は、Ｓ１０１１で、外部サーバ４０１から通知されたＮＡＴ越え情報を用いて、端末装置ａ４０５へＮＡＴ越えをしてアクセスする（Ｓ１０１２）。
【０２２９】
このときの通信パケットの宛先ＩＰアドレスと宛先ポート番号は、Ｓ１０１１で得たＮＡＴ越え情報に示される、上段ＮＡＴ装置ａ４０３のＷＡＮ側ＩＰアドレス“１０．０．０．２”と端末装置ａ４０５−外部サーバ４０１間通信において上段ＮＡＴ装置ａ４０３で行われたアドレス変換後のポート番号“ｓ´´＿ｓｅ”である。
【０２３０】
上段ＮＡＴ装置ａ４０３はこの通信パケットを受信すると、その宛先ＩＰアドレスと宛先ポート番号を、それぞれ“１９２．１６８．１０．２”と“ｓ´＿ｓｅ”へ書き換え、下段ＮＡＴ装置ａ４０４へ転送する（Ｓ１０１３）。
【０２３１】
この場合、下段ＮＡＴ装置ａ４０４は、自身のＷＡＮ側ＩＰアドレスと、Ｓ１００４およびＳ１００５でポートマッピング設定されたｓ´＿ｓｅ番ポートとを宛先とする通信パケットを受信する。そのため、下段ＮＡＴ装置ａ４０４は、当該通信パケットの宛先ＩＰアドレスと宛先ポート番号を、それぞれ端末装置ａ４０５のＩＰアドレス“１９２．１６８．１１．２”と“ｓ＿ｓｅ”に書き換え、端末装置ａ４０５に転送する（Ｓ１０１４）。
【０２３２】
このようにして、端末装置ａ４０５は、端末装置ｂ４０８からのＮＡＴ越えを果たした通信パケットを受信する（Ｓ１０１５）。
【０２３３】
端末装置ａ４０５は、１０１５で受信した通信パケットに対して返信する。これにより、端末装置ａ４０５から端末装置ｂ４０８へのＮＡＴ越えが果たされ、Ｐ２Ｐ通信が確立される（Ｓ１０１６およびＳ１０１７）。
【０２３４】
以上の処理の流れにより、図１０に例示するネットワーク構成において、下段ＮＡＴ装置ａ４０４のポート割り当て分類がＡｄｄｒｅｓｓ  Ｓｅｎｓｉｔｉｖｅ型もしくはＰｏｒｔ  Ｓｅｎｓｉｔｉｖｅ型であり、ポート発番規則がＳｅｑｕｅｎｔｉａｌ型である場合のＮＡＴ越えが実現される。具体的には、端末装置ｂ４０８から端末装置ａ４０５への通信パケットが、下段ＮＡＴ装置ａ４０４に設けられたＮＡＴ越え用ポートとして設定されたポートに到達する。これにより、当該通信パケットは下段ＮＡＴ装置ａ４０４を通過して端末装置ａ４０５に到達する。つまり、端末装置ｂ４０８から端末装置ａ４０５への通信におけるＮＡＴ越えが行われる。
【０２３５】
また、下段ＮＡＴ装置ａ４０４で次に用いられるポート番号を予測して、予測したポート番号がＮＡＴ越え用ポートとして設定されている。そのため、端末装置ａ４０５から端末装置ｂ４０８への通信パケットは、端末装置ｂ４０８から端末装置ａ４０５への通信パケットと同じ経路（ポート番号）を用いて、上段ＮＡＴ装置ｂ４０６および下段ＮＡＴ装置ｂ４０７へ送信される。従って、当該通信パケットは、前記２つのＮＡＴ装置でフィルタリングされることがない。つまり、端末装置ａ４０５から端末装置ｂ４０８への通信におけるＮＡＴ越えがなされ、端末装置ａ４０５から端末装置ｂ４０８への通信が実現できる。
【０２３６】
以上、本発明の通信装置および通信方法について、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を各実施の形態に施したもの、および、互いに異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の範囲内に含まれる。
【産業上の利用可能性】
【０２３７】
本発明に係る通信装置によれば、ＵＰｎＰのＩＧＤ等のポートマッピング設定機能を備えないＮＡＴ装置を含んだ多段ＮＡＴ環境下でも、他の通信装置との間でのＰ２Ｐ通信を容易に確立させることができる。例えば、上下の２段のＮＡＴ環境において、下段ＮＡＴ装置がＵＰｎＰのＩＧＤ等のポートマッピング設定機能をサポートしていれば、下段ＮＡＴ装置のポート発番規則を、外部サーバ以外の他端末を用いずに特定することが可能である。その結果、上記多段ＮＡＴ環境でＰ２Ｐ通信を行う際に、ＳＴＵＮ系ＮＡＴ越え手法が適用できない場合でも、ＮＡＴ越えが可能となる。従って、本発明は、Ｐ２Ｐ通信時の接続性向上技術等として有用である。
【符号の説明】
【０２３８】
１０１、１０４  通信機器
１０２、２０５、２０８  ＮＡＴ装置
１０３、４０２  インターネット
１０５  アドレス変換テーブル
２０１  ＳＴＵＮサーバ
２０２、２０７  ＩＳＰ−ＮＡＴ装置
２０６、２０９  端末装置
３０２、３１２、３２２  上段ＮＡＴ装置
３０３、３１３、３２３  下段ＮＡＴ装置
４００  通信システム
４０１  外部サーバ
４０３  上段ＮＡＴ装置ａ
４０４  下段ＮＡＴ装置ａ
４０５  端末装置ａ
４０６  上段ＮＡＴ装置ｂ
４０７  下段ＮＡＴ装置ｂ
４０８  端末装置ｂ
５０１  ＣＰＵ
５０２  主記憶装置
５０３  通信制御装置
５０４  外部記憶装置
５０５  入力装置
５０６  出力装置
５０７  バス
６０１  接続環境確認部
６０２  判定用ポートマッピング命令部
６０３  判定パケット生成部
６０４  中継宛先決定部
６０５  最終宛先決定部
６０６  宛先ポート決定部
６０７  送信元ポート決定部
６０８  判定パケット送信部
６０９  判定パケット受信部
６１０  ポート発番規則特定部
６１１  ＮＡＴ越え用ポートマッピング命令部
６１２  ＮＡＴ越え情報通知部
６１３  ＮＡＴ越え用ポート決定部
６１５  ポート番号取得部
【図１】
2012046390.tif 000003
【図２】
2012046390.tif 000004
【図３】
2012046390.tif 000005
【図４】
2012046390.tif 000006
【図５】
2012046390.tif 000007
【図６】
2012046390.tif 000008
【図７】
2012046390.tif 000009
【図８】
2012046390.tif 000010
【図９】
2012046390.tif 000011
【図１０】
2012046390.tif 000012
【図１１】
2012046390.tif 000013
【図１２】
2012046390.tif 000014
【図１３】
2012046390.tif 000015
【図１４】
2012046390.tif 000016
【国際調査報告】
2012046390.tif 000017
2012046390.tif 000018
2012046390.tif 000019
2012046390.tif 000020