(57)【要約】【課題】ＮＡＴ装置が多段接続された場合のそれぞれのＮＡＴ装置のＮＡＴ種別を判定するための通信装置等を提供すること。【解決手段】端末装置４０５ａであって、外部サーバ４０１から送信されるＮＡＴ装置４０４ｂのＮＡＴ種別の判定の協力を依頼する判定協力依頼を受信する判定協力依頼受信部６５２と、判定協力依頼が受信された場合、ポートフォワードの実行を第ＮＡＴ装置４０４ａに命令するポートフォワード命令部６５３と、ポートフォワードに用いられるポート番号を含むポート情報を外部サーバ４０１に送信するポート情報送信部６５４と、ポート情報をサーバ装置から受信した、ＮＡＴ装置４０４ｂに接続された端末装置４０５ｂから送信されるＮＡＴ種別の判定のための判定パケットを受信する判定パケット送受信部６５５と、受信された判定パケットに基づいて得られる、ＮＡＴ種別の判定に用いられる判定情報を送信する判定情報送信部６５６とを備える。【選択図】図１０
2012019361.tif 000002
【特許請求の範囲】
【請求項１】
インターネットに接続された上段ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）装置と、前記上段ＮＡＴ装置に接続された第１下段ＮＡＴ装置とを介して、前記インターネットに接続されたサーバ装置と通信する通信装置であって、
前記サーバ装置から送信される、前記上段ＮＡＴ装置に接続された第２下段ＮＡＴ装置のＮＡＴ種別の判定の協力を依頼する判定協力依頼を受信する判定協力依頼受信部と、
前記判定協力依頼受信部により前記判定協力依頼が受信された場合、前記第１下段ＮＡＴ装置が受信するパケットを当該通信装置に転送させるためのポートフォワードの実行を前記第１下段ＮＡＴ装置に命令するポートフォワード命令部と、
前記ポートフォワードに用いられるポート番号を含むポート情報を前記サーバ装置に送信するポート情報送信部と、
前記第２下段ＮＡＴ装置に接続された依頼端末であって、前記ポート情報を前記サーバ装置から受信した依頼端末から送信される前記ＮＡＴ種別の判定のための判定パケットを受信する判定パケット受信部と、
前記判定パケット受信部により受信された判定パケットに基づいて得られる、前記ＮＡＴ種別の判定に用いられる判定情報を送信する判定情報送信部と
を備える通信装置。
【請求項２】
さらに、前記判定パケット受信部により受信された判定パケットに示される、前記第２下段ＮＡＴ装置のＩＰアドレスとポート番号とを、前記上段ＮＡＴ装置に接続された第３下段ＮＡＴ装置を介して、前記第３下段ＮＡＴ装置に接続された他の通信装置に通知する判定対象ＮＡＴ情報通知部を備える
請求項１記載の通信装置。
【請求項３】
インターネットと、前記インターネットに接続された上段ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）装置と、前記上段ＮＡＴ装置に接続された第１下段ＮＡＴ装置とを介して第１通信装置と通信し、かつ、前記インターネットと、前記上段ＮＡＴ装置と、前記上段ＮＡＴ装置に接続された第２下段ＮＡＴ装置とを介して第２通信装置と通信するサーバ装置であって、
前記第１通信装置の接続環境を示す接続環境情報であって、前記第１下段ＮＡＴ装置に関する情報を含む接続環境情報を受信する接続環境情報受信部と、
前記第２通信装置から送信される、前記第２下段ＮＡＴ装置のＮＡＴ種別の判定を依頼する判定依頼を受信する判定依頼受信部と、
前記判定依頼受信部により前記判定依頼が受信された場合、接続環境情報受信部により受信された接続環境情報を参照することで、所定の基準を満たす前記第１通信装置を協力端末として選択する協力端末選択部と、
前記協力端末選択部により選択された前記第１通信装置に、前記ＮＡＴ種別の判定の協力を依頼する判定協力依頼を送信する判定協力依頼送信部と、
前記判定協力依頼を受信した前記第１通信装置から送信されるポート情報であって、前記第１下段ＮＡＴ装置が受信するパケットを前記第１通信装置に転送させるためのポートフォワードに用いられるポート番号を含むポート情報を受信し、かつ、受信したポート情報を前記第２通信装置に送信するポート情報送受信部と
を備えるサーバ装置。
【請求項４】
さらに、
前記ポート情報を受信した前記第２通信装置と、前記第１通信装置との間で送受信される判定パケットに基づく判定情報であって、前記ＮＡＴ種別の判定に用いられる判定情報を、前記第１通信装置および前記第２通信装置のそれぞれから受信する判定情報受信部と、
前記判定情報受信部により受信された判定情報を用いて、前記ＮＡＴ種別の判定を行うＮＡＴ種別判定部と、
前記ＮＡＴ種別判定部による判定された前記ＮＡＴ種別を示す情報である判定結果を前記第２通信装置に送信する判定結果送信部と
を備える請求項３記載のサーバ装置。
【請求項５】
前記接続環境情報受信部は、前記第１下段ＮＡＴ装置がポートフォワード機能を有するか否かを示す情報を含む前記接続環境情報を受信し、
前記協力端末選択部は、前記接続環境情報が、前記第１下段ＮＡＴ装置がポートフォワード機能を有することを示す場合、前記第１下段ＮＡＴ装置を協力端末として選択する
請求項３または４に記載のサーバ装置。
【請求項６】
インターネットに接続された上段ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）装置と、前記上段ＮＡＴ装置に接続された第１下段ＮＡＴ装置とを介して、前記インターネットに接続されたサーバ装置と通信する通信装置であって、
前記第１下段ＮＡＴ装置のＮＡＴ種別の判定を依頼する判定依頼を前記サーバ装置に送信する判定依頼部と、
前記サーバ装置から送信されるポート情報であって、前記上段ＮＡＴ装置に接続された第２下段ＮＡＴ装置が受信するパケットを前記第２下段ＮＡＴ装置に接続された協力端末に転送させるためのポートフォワードに用いられるポート番号を含むポート情報を受信するポート情報受信部と、
前記ポート情報受信部により受信されたポート情報を用いて、前記ＮＡＴ種別の判定のための判定パケットを前記協力端末に送信する判定パケット送信部と、
前記判定パケット送信部により送信された前記判定パケットに基づいて求められた前記ＮＡＴ種別を示す情報である判定結果を取得する判定結果取得部と
を備える通信装置。
【請求項７】
前記判定結果取得部は、
前記判定パケット送信部により送信された前記判定パケットに基づく判定情報であって、前記ＮＡＴ種別の判定に用いられる判定情報を前記サーバ装置に送信する判定情報送信部と、
前記判定情報送信部により送信された判定情報を受信した前記サーバ装置から送信される前記判定結果を受信する判定結果受信部とを有する
請求項６記載の通信装置。
【請求項８】
前記判定結果取得部は、
前記判定パケット送信部により送信された前記判定パケットに基づく判定情報であって、前記ＮＡＴ種別の判定に用いられる判定情報を、前記ポート情報を受信した前記協力端末から受信する判定情報受信部と、
前記判定情報受信部により受信された判定情報を用いて、前記ＮＡＴ種別の判定を行うＮＡＴ種別判定部とを有する
請求項６記載の通信装置。
【請求項９】
インターネットに接続された上段ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）装置と、前記上段ＮＡＴ装置に接続された第１下段ＮＡＴ装置および第２下段ＮＡＴ装置と、前記第１下段ＮＡＴ装置に接続された第１通信装置と、前記第２下段ＮＡＴ装置に接続された第２通信装置と、前記インターネットに接続されたサーバ装置とを備える通信システムであって、
前記第２通信装置は、
前記第２下段ＮＡＴ装置のＮＡＴ種別の判定を依頼する判定依頼を前記サーバ装置に送信する判定依頼部と、
前記サーバ装置から送信されるポート情報であって、前記第１下段ＮＡＴ装置が受信するパケットを前記第１通信装置に転送させるためのポートフォワードに用いられるポート番号を含むポート情報を受信するポート情報受信部と、
前記ポート情報受信部により受信されたポート情報を用いて、前記ＮＡＴ種別の判定のための判定パケットを前記第１通信装置に送信する判定パケット送信部と、
前記判定パケット送信部により送信された前記判定パケットに基づいて求められた前記ＮＡＴ種別を示す情報である判定結果を取得する判定結果取得部とを備え、
前記サーバ装置は、
前記第１通信装置および前記第２通信装置それぞれの接続環境を示す接続環境情報であって、前記第１下段ＮＡＴ装置および前記第２下段ＮＡＴ装置に関する情報を含む接続環境情報を受信する接続環境情報受信部と、
前記第２通信装置から前記判定依頼を受信する判定依頼受信部と、
前記判定依頼受信部により前記判定依頼が受信された場合、接続環境情報受信部により受信された接続環境情報を参照することで、所定の基準を満たす前記第１通信装置を協力端末として選択する協力端末選択部と、
前記協力端末選択部により選択された前記第１通信装置に、前記ＮＡＴ種別の判定の協力を依頼する判定協力依頼を送信する判定協力依頼送信部と、
前記判定協力依頼を受信した前記第１通信装置から送信される前記ポート情報を受信し、かつ、受信した前記ポート情報を前記第２通信装置に送信するポート情報送受信部とを備え、
前記第１通信装置は、
前記サーバ装置から送信される前記判定協力依頼を受信する判定協力依頼受信部と、
前記判定協力依頼受信部により前記判定協力依頼が受信された場合、前記ポートフォワードの実行を前記第１下段ＮＡＴ装置に命令するポートフォワード命令部と、
前記ポート情報を前記サーバ装置に送信するポート情報送信部と、
前記ポート情報を前記サーバ装置から受信した前記第２通信装置から送信される前記判定パケットを受信する判定パケット受信部と、
前記判定パケット受信部により受信された判定パケットに基づいて得られる、前記ＮＡＴ種別の判定に用いられる判定情報を送信する判定情報送信部とを備え、
前記通信システムはさらに、前記判定情報送信部から送信される前記判定情報を受信して、受信した判定情報を用いて前記ＮＡＴ種別の判定を行うことで前記判定結果を得る判定部を備え、
前記判定結果取得部は、前記判定部から前記判定結果を取得する
通信システム。
【請求項１０】
インターネットに接続された上段ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）装置と、前記上段ＮＡＴ装置に接続された第１下段ＮＡＴ装置とを介して、前記インターネットに接続されたサーバ装置と通信する通信装置によって実行される通信方法であって、
前記サーバ装置から送信される、前記上段ＮＡＴ装置に接続された第２下段ＮＡＴ装置のＮＡＴ種別の判定の協力を依頼する判定協力依頼を受信する判定協力依頼受信ステップと、
前記判定協力依頼受信ステップにおいて前記判定協力依頼が受信された場合、前記第１下段ＮＡＴ装置が受信するパケットを当該通信装置に転送させるためのポートフォワードの実行を前記第１下段ＮＡＴ装置に命令するポートフォワード命令ステップと、
前記ポートフォワードに用いられるポート番号を含むポート情報を前記サーバ装置に送信するポート情報送信ステップと、
前記第２下段ＮＡＴ装置に接続された依頼端末であって、前記ポート情報を前記サーバ装置から受信した依頼端末から送信される前記ＮＡＴ種別の判定のための判定パケットを受信する判定パケット受信ステップと、
前記判定パケット受信ステップにおいて受信された判定パケットに基づいて得られる、前記ＮＡＴ種別の判定に用いられる判定情報を送信する判定情報送信ステップと
を含む通信方法。
【請求項１１】
インターネットと、前記インターネットに接続された上段（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）ＮＡＴ装置と、前記上段ＮＡＴ装置に接続された第１下段ＮＡＴ装置とを介して第１通信装置と通信し、かつ、前記インターネットと、前記上段ＮＡＴ装置と、前記上段ＮＡＴ装置に接続された第２下段ＮＡＴ装置とを介して第２通信装置と通信するサーバ装置によって実行される通信方法であって、
前記第１通信装置および前記第２通信装置それぞれの接続環境を示す接続環境情報であって、前記第１下段ＮＡＴ装置および前記第２下段ＮＡＴ装置に関する情報を含む接続環境情報を受信する接続環境情報受信ステップと、
前記第２通信装置から送信される、前記第２下段ＮＡＴ装置のＮＡＴ種別の判定を依頼する判定依頼を受信する判定依頼受信ステップと、
前記判定依頼受信ステップにおいて前記判定依頼が受信された場合、接続環境情報受信ステップにおいて受信された接続環境情報を参照することで、所定の基準を満たす前記第１通信装置を協力端末として選択する協力端末選択ステップと、
前記協力端末選択ステップにおいて選択された前記第１通信装置に、前記ＮＡＴ種別の判定の協力を依頼する判定協力依頼を送信する判定協力依頼送信ステップと、
前記判定協力依頼を受信した前記第１通信装置から送信されるポート情報であって、前記第１下段ＮＡＴ装置が受信するパケットを前記第１通信装置に転送させるためのポートフォワードに用いられるポート番号を含むポート情報を受信するポート情報受信ステップと、
ポート情報受信ステップにおいて受信されたポート情報を前記第２通信装置に送信するポート情報送信ステップと
を含む通信方法。
【請求項１２】
インターネットに接続された上段ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）装置と、前記上段ＮＡＴ装置に接続された第１下段ＮＡＴ装置とを介して、前記インターネットに接続されたサーバ装置と通信する通信装置によって実行される通信方法であって、
前記第１下段ＮＡＴ装置のＮＡＴ種別の判定を依頼する判定依頼を前記サーバ装置に送信する判定依頼ステップと、
前記サーバ装置から送信されるポート情報であって、前記上段ＮＡＴ装置に接続された第２下段ＮＡＴ装置が受信するパケットを前記第２下段ＮＡＴ装置に接続された協力端末に転送させるためのポートフォワードに用いられるポート番号を含むポート情報を受信するポート情報受信ステップと、
前記ポート情報受信ステップにおいて受信されたポート情報を用いて、前記ＮＡＴ種別の判定のための判定パケットを前記協力端末に送信する判定パケット送信ステップと、
前記判定パケット送信ステップにおいて送信された前記判定パケットに基づいて求められた前記ＮＡＴ種別を示す情報である判定結果を取得する判定結果取得ステップと
を含む通信方法。
【請求項１３】
インターネットに接続された上段ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）装置と、前記上段ＮＡＴ装置に接続された第１下段ＮＡＴ装置とを介して、前記インターネットに接続されたサーバ装置と通信する集積回路であって、
前記サーバ装置から送信される、前記上段ＮＡＴ装置に接続された第２下段ＮＡＴ装置のＮＡＴ種別の判定の協力を依頼する判定協力依頼を受信する判定協力依頼受信部と、
前記判定協力依頼受信部により前記判定協力依頼が受信された場合、前記第１下段ＮＡＴ装置が受信するパケットを当該通信装置に転送させるためのポートフォワードの実行を前記第１下段ＮＡＴ装置に命令するポートフォワード命令部と、
前記ポートフォワードに用いられるポート番号を含むポート情報を前記サーバ装置に送信するポート情報送信部と、
前記第２下段ＮＡＴ装置に接続された依頼端末であって、前記ポート情報を前記サーバ装置から受信した依頼端末から送信される前記ＮＡＴ種別の判定のための判定パケットを受信する判定パケット受信部と、
前記判定パケット受信部により受信された判定パケットに基づいて得られる、前記ＮＡＴ種別の判定に用いられる判定情報を送信する判定情報送信部と
を備える集積回路。
【請求項１４】
インターネットと、前記インターネットに接続された上段ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）装置と、前記上段ＮＡＴ装置に接続された第１下段ＮＡＴ装置とを介して第１通信装置と通信し、かつ、前記インターネットと、前記上段ＮＡＴ装置と、前記上段ＮＡＴ装置に接続された第２下段ＮＡＴ装置とを介して第２通信装置と通信する集積回路であって、
前記第１通信装置の接続環境を示す接続環境情報であって、前記第１下段ＮＡＴ装置に関する情報を含む接続環境情報を受信する接続環境情報受信部と、
前記第２通信装置から送信される、前記第２下段ＮＡＴ装置のＮＡＴ種別の判定を依頼する判定依頼を受信する判定依頼受信部と、
前記判定依頼受信部により前記判定依頼が受信された場合、接続環境情報受信部により受信された接続環境情報を参照することで、所定の基準を満たす前記第１通信装置を協力端末として選択する協力端末選択部と、
前記協力端末選択部により選択された前記第１通信装置に、前記ＮＡＴ種別の判定の協力を依頼する判定協力依頼を送信する判定協力依頼送信部と、
前記判定協力依頼を受信した前記第１通信装置から送信されるポート情報であって、前記第１下段ＮＡＴ装置が受信するパケットを前記第１通信装置に転送させるためのポートフォワードに用いられるポート番号を含むポート情報を受信し、かつ、受信したポート情報を前記第２通信装置に送信するポート情報送受信部と
を備える集積回路。
【請求項１５】
インターネットに接続された上段ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）装置と、前記上段ＮＡＴ装置に接続された第１下段ＮＡＴ装置とを介して、前記インターネットに接続されたサーバ装置と通信する集積回路であって、
前記第１下段ＮＡＴ装置のＮＡＴ種別の判定を依頼する判定依頼を前記サーバ装置に送信する判定依頼部と、
前記サーバ装置から送信されるポート情報であって、前記上段ＮＡＴ装置に接続された第２下段ＮＡＴ装置が受信するパケットを前記第２下段ＮＡＴ装置に接続された協力端末に転送させるためのポートフォワードに用いられるポート番号を含むポート情報を受信するポート情報受信部と、
前記ポート情報受信部により受信されたポート情報を用いて、前記ＮＡＴ種別の判定のための判定パケットを前記協力端末に送信する判定パケット送信部と、
前記判定パケット送信部により送信された前記判定パケットに基づいて求められた前記ＮＡＴ種別を示す情報である判定結果を取得する判定結果取得部と
を備える集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ、ネットワークアドレス変換）機能を有するネットワーク中継装置におけるアドレス変換方法の種別を判別する機能を有する通信装置および通信システムに関する。
【背景技術】
【０００２】
従来のインターネット技術を用いた通信方法においては、インターネットに直接接続された装置に対し、当該装置ごとに一意に定められたアドレスであるグローバルＩＰｖ４アドレス（以下グローバルＩＰアドレスと記載する）が割り当てられる。
【０００３】
しかし、グローバルＩＰアドレスの数は限られており、特に家庭向けのインターネット接続サービスにおいては、サービス１契約につき１つのグローバルＩＰアドレスしか割り当てられないことが多い。すなわち、１台の装置しかインターネットに直接接続することができない。
【０００４】
そこで、使用できるグローバルアドレスの数を越える複数の装置が同時にインターネット上の装置と通信できるようにするため、プライベートＩＰアドレスと、ＮＡＴ機能を有したルータ（以下、「ＮＡＴ装置」という。）とを利用したネットワーク構成が広く利用されている。
【０００５】
なお、プライベートＩＰアドレスとは、グローバルインターネット上のパケットの送信元ＩＰアドレスおよび宛先ＩＰアドレスとして使うことはできないが、ネットワーク装置のデバッグおよび企業内などの閉じられた（プライベートな）ネットワークにおける使用を目的としたＩＰアドレスである。
【０００６】
また、ＮＡＴ装置とは、グローバルＩＰアドレスとプライベートＩＰアドレスとの相互変換等を実行するＮＡＴ機能を有したネットワーク中継装置である。
【０００７】
なお、本明細書、特許請求の範囲、および図面において、「ＮＡＴ」とはポート変換も行うＮＡＰＴ（ネットワークアドレスポート変換、Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｐｏｒｔ  Ｔｒａｎｓｌａｔｉｏｎ）を含む意味で使用している。
【０００８】
プライベートＩＰアドレスとＮＡＴ装置とを用いたネットワーク構成では、ＮＡＴ装置配下の装置から通信を開始する限り、当該装置はインターネット上の他の装置と直接通信可能である。
【０００９】
また、インターネット上の端末装置から通信を開始して、ＮＡＴ装置配下の装置と直接通信する場合は、ＵＰｎＰ（Ｕｎｉｖｅｒｓａｌ  Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ）対応のＮＡＴ装置を利用する方法、および、非特許文献１で示されているＳＴＵＮ（Ｓｉｍｐｌｅ  Ｔｒａｖｅｒｓａｌ  ｏｆ  ＵＤＰ  ｔｈｒｏｕｇｈ  ＮＡＴｓ）を利用した方法が用いられる。
【００１０】
ＩＥＴＦ（Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ）が発行するＲＦＣ（Ｒｅｑｕｅｓｔ  Ｆｏｒ  Ｃｏｍｍｅｎｔ）３４８９に定義されるアルゴリズムによれば、ＮＡＴ種別は以下のように分類される。
【００１１】
すなわち、ＮＡＴ種別は、完全コーン型（Ｆｕｌｌ  Ｃｏｎｅ）、制限付きコーン型（Ｒｅｓｔｒｉｃｔｅｄ  Ｃｏｎｅ）、ポート制限付きコーン型（Ｐｏｒｔ  Ｒｅｓｔｒｉｃｔｅｄ  Ｃｏｎｅ）、および対称型（Ｓｙｍｍｅｔｒｉｃ）の４つの種別に分類される。４つのＮＡＴ種別の特徴をまとめたものが図１である。
【００１２】
ここで、ＲＦＣ３４８９に定義されたアルゴリズムに従うＮＡＴ種別の判定フローの例を図２に、また、その判定の際に実行する送信テスト（Ｉ、Ｉ´、ＩＩ、およびＩＩＩの４種類）の概略を図３Ａ〜図３Ｄに示す。
【００１３】
図２示すように、まず、ＮＡＴ種別の判定を行う端末装置は送信テストＩを実行する（Ｓ１０１）。この送信テストＩは、図３Ａに示すように、端末装置からＮＡＴ装置を介して第１の宛先であるＳＴＵＮサーバＡのＩＰアドレスａおよびポート番号ｐ（以下、ＩＰアドレスおよびポート番号の組み合わせを「アドレス（ａ，ｐ）」のように記載する。）に対してＢｉｎｄｉｎｇリクエストを送信することにより行われる。
【００１４】
この場合、ＳＴＵＮサーバＡに対してＢｉｎｄｉｎｇレスポンスの送信元ＩＰアドレスおよびポート番号の変更を要求するＣＨＡＮＧＥ−ＲＥＱＵＥＳＴ（送信元情報変更要求）属性は指定されない。
【００１５】
続いて、端末装置は、ＳＴＵＮサーバＡからの応答があったか否かを判定し（Ｓ１０２）、応答がなかった場合（Ｓ１０２でＮ）には、「（１）ＵＤＰをブロックするファイアウォールが存在している」と判定する。
【００１６】
一方、端末装置は、ＳＴＵＮサーバＡからのＢｉｎｄｉｎｇレスポンスを受信した場合（Ｓ１０２でＹ）、そのＭＡＰＰＥＤ−ＡＤＤＲＥＳＳ（マッピングアドレス）属性としてＢｉｎｄｉｎｇレスポンスに付加されたＩＰアドレス（すなわち、ＳＴＵＮサーバＡが受信したＢｉｎｄｉｎｇリクエストの送信元ＩＰアドレス）が、端末装置のプライベートＩＰアドレスと同一か否かを判定する（Ｓ１０３）。
【００１７】
そこで、ＩＰアドレスが同一の場合（Ｓ１０３でＹ）、端末装置は、自身がＮＡＴ装置の配下にないと判断し、さらに送信テストＩＩを実行する（Ｓ１０４）。
【００１８】
この送信テストＩＩでは、図３Ｃに示すように、送信テストＩと同一の宛先（アドレス（ａ，ｐ））に対してＢｉｎｄｉｎｇリクエストを送信するが、ＣＨＡＮＧＥ−ＲＥＱＵＥＳＴ属性において、ＳＴＵＮサーバＡが応答する際の送信元として、Ｂｉｎｄｉｎｇリクエストの受信先とは異なるＩＰアドレスおよびポート番号（アドレス（ｂ，ｑ））を設定する。
【００１９】
そこで、端末装置は、アドレス（ｂ，ｑ）を送信元とする応答、すなわち、ＳＴＵＮサーバＢからの応答があったか否かを判定し（Ｓ１０５）、応答がなかった場合（Ｓ１０５でＮ）には、「（２）アドレス変換をしないが、対称型ＮＡＴ装置のようにＵＤＰをブロックするファイアウォールが存在している」と判定する。
【００２０】
一方、ＳＴＵＮサーバＢからのＢｉｎｄｉｎｇレスポンスを受信した場合（Ｓ１０５でＹ）、「（３）アクセス制限のないオープン・インターネット」であると判定する。
【００２１】
一方、Ｓ１０３においてＩＰアドレスが同一でない（端末装置がＮＡＴ装置の配下にある）場合（Ｓ１０３でＮ）、端末装置は、Ｓ１０４と同様の送信テストＩＩを実行し（Ｓ１０６）、ＳＴＵＮサーバＢからの応答があったか否かを判定する（Ｓ１０７）。
【００２２】
そこで、応答があった場合（Ｓ１０７でＹ）には、端末装置の指示どおりに、Ｂｉｎｄｉｎｇリクエストの受信先とは異なるＩＰアドレスおよびポート番号（アドレス（ｂ，ｑ））から応答が返ってきたことを意味する。そのため、端末装置は、ＮＡＴ装置のＮＡＴ種別を「（４）完全コーン型（Ｆｕｌｌ  Ｃｏｎｅ）」であると判定する。
【００２３】
一方、応答がなかった場合（Ｓ１０７でＮ）、続いて、端末装置は送信テストＩ´を実行する（Ｓ１０８）。この送信テストＩ´は、図３Ｂに示すように、端末装置からＮＡＴ装置を介して第２の宛先であるＳＴＵＮサーバＢのアドレス（ｂ，ｑ）に対してＢｉｎｄｉｎｇリクエストを送信することにより行われる。この場合、送信テストＩと同様に、ＣＨＡＮＧＥ−ＲＥＱＵＥＳＴ属性は指定されない。
【００２４】
次に、端末装置は、送信テストＩ´のＢｉｎｄｉｎｇリクエストに対するＳＴＵＮサーバＢからのＢｉｎｄｉｎｇレスポンスを受信すると、そのＭＡＰＰＥＤ−ＡＤＤＲＥＳＳ属性として付加されたＩＰアドレスおよびポート番号（すなわち、ＳＴＵＮサーバＢが受信したＢｉｎｄｉｎｇリクエストの送信元ＩＰアドレスおよびポート番号）が、先の送信テストＩの際にＭＡＰＰＥＤ−ＡＤＤＲＥＳＳ属性として付加されたＩＰアドレスおよびポート番号と同一か否かを判定する（Ｓ１０９）。
【００２５】
そこで、これら２組のＩＰアドレスおよびポート番号が同一でない場合（Ｓ１０９でＮ）、異なるＳＴＵＮサーバのＩＰアドレス宛にＢｉｎｄｉｎｇリクエストを送信した際に送信元のＮＡＴ装置のポート番号が変更されることがわかる。そのため、端末装置は、ＮＡＴ装置のＮＡＴ種別を「（５）対称型（Ｓｙｍｍｅｔｒｉｃ）」であると判定する。
【００２６】
一方、Ｓ１０９において当該２組のＩＰアドレスおよびポート番号が同一である場合（Ｓ１０９でＹ）、続いて、端末装置は送信テストＩＩＩを実行し（Ｓ１１０）、ＳＴＵＮサーバＡからの応答があったか否かを判定する（Ｓ１１１）。
【００２７】
この送信テストＩＩＩでは、図３Ｄに示すように、送信テストＩと同一の宛先（アドレス（ａ，ｐ））に対してＢｉｎｄｉｎｇリクエストを送信する。しかし、送信テストＩＩＩでは、ＣＨＡＮＧＥ−ＲＥＱＵＥＳＴ属性において、ＳＴＵＮサーバＡが応答する際の送信元として、Ｂｉｎｄｉｎｇリクエストの受信先とは異なるポート番号（アドレス（ａ，ｑ））が設定される。
【００２８】
そこで、応答があった場合（Ｓ１１１でＹ）には、異なるポート番号であっても、同一ＩＰアドレスであれば応答が返ってくることから、端末装置は、ＮＡＴ装置のＮＡＴ種別を「（６）制限付きコーン型（Ｒｅｓｔｒｉｃｔｅｄ  Ｃｏｎｅ）」であると判定する。
【００２９】
一方、応答がなかった場合（Ｓ１１１でＮ）には、同一ＩＰアドレスかつ異なるポート番号からの応答が返ってこないことから、端末装置は、ＮＡＴ装置のＮＡＴ種別を「（７）ポート制限付きコーン型（Ｐｏｒｔ  Ｒｅｓｔｒｉｃｔｅｄ  Ｃｏｎｅ）」であると判定する。
【００３０】
このように、ＮＡＴ装置の配下の端末装置は、上記送信テストＩ〜テストＩＩＩおよびテストＩ´を適宜実行することで、当該ＮＡＴ装置のＮＡＴ種別を判定することが可能である。インターネット上の他の端末装置は、上記のＮＡＴ種別判定方法を用いて求められたＮＡＴ種別に合ったＮＡＴ越え手法を選択し、ＮＡＴ越えを行うことで、当該ＮＡＴ装置の配下の端末装置との通信を開始することができる。
【００３１】
一方、特許文献１には、ＳＴＵＮを利用したＮＡＴ種別判定方法とＵＰｎＰとを併用することで、ＮＡＴ越え手法を選択し、ＮＡＴ越えを実現する技術について開示されている。具体的には、特許文献１には、ＮＡＴ装置のＮＡＴ種別判定結果情報に加え、ＵＰｎＰ対応有無情報を端末間で外部サーバ経由により交換することで、外部サーバと端末装置との間にＮＡＴ装置が２つ以上存在する多段ＮＡＴ環境でも、ＮＡＴ越えを行う方式が記載されている。
【先行技術文献】
【特許文献】
【００３２】
【特許文献１】特開２００８−２３６２７８号公報
【非特許文献】
【００３３】
【非特許文献１】Ｊ．Ｒｏｓｅｎｂｅｒｇ，  ｅｔ  ａｌ．  “  ＲＦＣ３４８９、ＳＴＵＮ  −  Ｓｉｍｐｌｅ  Ｔｒａｖｅｒｓａｌ  ｏｆ  Ｕｓｅｒ    Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ  （  ＵＤＰ  ）  Ｔｈｒｏｕｇｈ  Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｏｒｓ  （  ＮＡＴｓ  ）    ”、  ［  ｏｎｌｉｎｅ  ］、  Ｍａｒｃｈ  ２００３、  ｒｅｔｒｉｅｖｅｄ  ｆｒｏｍ  ｔｈｅ  Ｉｎｔｅｒｎｅｔ：  ＜  ＵＲＬ：    ｈｔｔｐ：／／ｗｗｗ．ｉｅｔｆ．ｏｒｇ／ｒｆｃ／ｒｆｃ３４８９．ｔｘｔ＞
【発明の概要】
【発明が解決しようとする課題】
【００３４】
しかしながら、上記のＳＴＵＮを利用した判定方法によれば、図４Ａに示すように、ＳＴＵＮサーバ２０１と端末装置２０３との間に、ＮＡＴ装置２０２が、１つだけ存在する場合のみＮＡＴ種別判定できる。つまり、図４Ｂに示すように、ＳＴＵＮサーバ２０４と端末装置２０７の間に、ＮＡＴ装置が２つ以上（図４Ｂでは、ＮＡＴ装置２０５とＮＡＴ装置２０６）多段接続される場合には、これら複数のＮＡＴ装置のＮＡＴ種別を、個別に判定することができないという課題を有している。
【００３５】
具体的には、図４Ｂに示すネットワーク構成において、上記ＳＴＵＮを利用したＮＡＴ種別判定方法を用いた場合、２つのＮＡＴ装置を１つのＮＡＴ装置としてＮＡＴ種別が判定される。その結果、ＮＡＴ装置２０５およびＮＡＴ装置２０６のＮＡＴ種別のうち、制限の厳しい方のＮＡＴ種別が判定結果として得られ（図５参照）、これらＮＡＴ装置の個別のＮＡＴ種別を得ることができないという課題を有していた。
【００３６】
例えば、図４ＢのＮＡＴ装置２０５のＮＡＴ種別が完全コーン型であり、ＮＡＴ装置２０６のＮＡＴ種別が対称型である場合を想定する。この場合、対称型の方が完全コーン型よりも制限が厳しいため、上記ＳＴＵＮを利用したＮＡＴ種別判定の結果は、「対称型」となる。
【００３７】
また、ＮＡＴ装置２０５のＮＡＴ種別が対称型であり、ＮＡＴ装置２０６のＮＡＴ種別が完全コーン型である場合でも同様であり、判定結果は、「対称型」となる。
【００３８】
また、特許文献１に記載の技術でも、同様の課題を有しており、ＮＡＴ装置が多段接続される場合には、複数のＮＡＴ装置それぞれのＮＡＴ種別を、個別に判定することができない。
【００３９】
ここで、グローバルＩＰｖ４アドレスの枯渇問題の対策案として、図６のようにＩＳＰ（Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）がＩＳＰが管理する施設内などに、ＩＳＰレベルでのＮＡＴ装置（以下、「ＩＳＰ−ＮＡＴ装置」という。）３０２またはそれに準ずる装置を設置して、サービス利用者にプライベートＩＰｖ４アドレスを割り当てることが検討されている。その結果、多段ＮＡＴ環境が増えることが考えられると共に、同一のＩＳＰ−ＮＡＴ装置に接続された複数のＮＡＴ装置それぞれの配下の端末間における通信が発生しうる。
【００４０】
例えば、図６に示すネットワーク構成である場合、ＮＡＴ装置３０３の配下の端末装置３０４と、ＮＡＴ装置３０５の配下の端末装置３０６との間で通信が行われることが考えられる。
【００４１】
この場合、端末装置３０４と端末装置３０６との間の通信において、越えるべきＮＡＴ装置は、ＮＡＴ装置３０３とＮＡＴ装置３０５とである。このような通信環境において、ＳＴＵＮサーバ３０１を用いて従来のＮＡＴ種別判定方法を行った場合、ＮＡＴ装置３０３およびＮＡＴ装置３０５それぞれの個別のＮＡＴ種別判定はできず、適切なＮＡＴ越え手法選択ができないという問題が発生しうる。
【００４２】
本発明は、上記従来の課題を解決するもので、ＮＡＴ装置が多段接続された場合のそれぞれのＮＡＴ装置のＮＡＴ種別を判定するための通信装置、サーバ装置、通信システム、通信方法、および集積回路を提供することを目的とする。
【課題を解決するための手段】
【００４３】
上記従来の課題を解決するために、本発明の一態様に係る通信装置は、インターネットに接続された上段ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）装置と、前記上段ＮＡＴ装置に接続された第１下段ＮＡＴ装置とを介して、前記インターネットに接続されたサーバ装置と通信する通信装置であって、前記サーバ装置から送信される、前記上段ＮＡＴ装置に接続された第２下段ＮＡＴ装置のＮＡＴ種別の判定の協力を依頼する判定協力依頼を受信する判定協力依頼受信部と、前記判定協力依頼受信部により前記判定協力依頼が受信された場合、前記第１下段ＮＡＴ装置が受信するパケットを当該通信装置に転送させるためのポートフォワードの実行を前記第１下段ＮＡＴ装置に命令するポートフォワード命令部と、前記ポートフォワードに用いられるポート番号を含むポート情報を前記サーバ装置に送信するポート情報送信部と、前記第２下段ＮＡＴ装置に接続された依頼端末であって、前記ポート情報を前記サーバ装置から受信した依頼端末から送信される前記ＮＡＴ種別の判定のための判定パケットを受信する判定パケット受信部と、前記判定パケット受信部により受信された判定パケットに基づいて得られる、前記ＮＡＴ種別の判定に用いられる判定情報を送信する判定情報送信部とを備える。
【００４４】
この構成によれば、当該通信装置がＮＡＴ種別の判定を依頼された場合、当該通信装置の直上の第１下段ＮＡＴ装置に、ＮＡＴ種別の判定を依頼する依頼端末からの判定パケットを転送させる設定がなされる。また、その設定情報であるポート情報はサーバ装置を介して依頼端末に通知されるため、依頼端末は、ＮＡＴ種別の判定のための判定パケットを、第１下段ＮＡＴ装置を通過させて当該通信装置に到達させることができる。
【００４５】
また、当該通信装置が、このように受信した判定パケットに対して応答した場合、当該応答は、第１下段ＮＡＴ装置とって内部のネットワーク側から外部のネットワーク側の方向の通信であり、第１下段ＮＡＴ装置によりブロック等されることはない。従って、当該応答は、依頼端末の直上の第２下段ＮＡＴ装置まで到達する。
【００４６】
また、判定情報送信部により、当該通信装置が受信した判定パケットに基づく判定情報が送信される。そのため、この判定情報を受信する装置（例えば、サーバ装置、または依頼端末など）に、ＮＡＴ種別の判定を適切に実行させることができる。
【００４７】
このように、本態様の通信装置は、ＮＡＴ種別の判定に協力する協力端末としての動作を行うことで、多段ＮＡＴ環境における個別のＮＡＴ種別の判定を可能にしている。
【００４８】
また、本発明の一態様に係る通信装置はさらに、前記判定パケット受信部により受信された判定パケットに示される、前記第２下段ＮＡＴ装置のＩＰアドレスとポート番号とを、前記上段ＮＡＴ装置に接続された第３下段ＮＡＴ装置を介して、前記第３下段ＮＡＴ装置に接続された他の通信装置に通知する判定対象ＮＡＴ情報通知部を備えるとしてもよい。
【００４９】
この構成によれば、他の通信装置に、依頼端末側のＮＡＴ装置のＩＰアドレス等の宛先情報が通知される。従って、当該他の通信装置を協力端末として動作させることが可能となる。
【００５０】
また、本発明の一態様に係るサーバ装置は、インターネットと、前記インターネットに接続された上段ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）装置と、前記上段ＮＡＴ装置に接続された第１下段ＮＡＴ装置とを介して第１通信装置と通信し、かつ、前記インターネットと、前記上段ＮＡＴ装置と、前記上段ＮＡＴ装置に接続された第２下段ＮＡＴ装置とを介して第２通信装置と通信するサーバ装置であって、前記第１通信装置の接続環境を示す接続環境情報であって、前記第１下段ＮＡＴ装置に関する情報を含む接続環境情報を受信する接続環境情報受信部と、前記第２通信装置から送信される、前記第２下段ＮＡＴ装置のＮＡＴ種別の判定を依頼する判定依頼を受信する判定依頼受信部と、前記判定依頼受信部により前記判定依頼が受信された場合、接続環境情報受信部により受信された接続環境情報を参照することで、所定の基準を満たす前記第１通信装置を協力端末として選択する協力端末選択部と、前記協力端末選択部により選択された前記第１通信装置に、前記ＮＡＴ種別の判定の協力を依頼する判定協力依頼を送信する判定協力依頼送信部と、前記判定協力依頼を受信した前記第１通信装置から送信されるポート情報であって、前記第１下段ＮＡＴ装置が受信するパケットを前記第１通信装置に転送させるためのポートフォワードに用いられるポート番号を含むポート情報を受信し、かつ、受信したポート情報を前記第２通信装置に送信するポート情報送受信部とを備える。
【００５１】
この構成によれば、本態様のサーバ装置は、ＮＡＴ種別の判定依頼を受信した場合、協力端末として選択した通信装置に、ＮＡＴ種別の判定の協力を依頼することができる。また、協力を依頼した協力端末から、協力端末の直上のＮＡＴ装置を越えて当該協力端末にパケットを到達させるためのポート情報を受信することができ、このポート情報をＮＡＴ種別の判定依頼を送信した依頼端末に通知することができる。
【００５２】
従って、当該ポート情報の通知を受けた依頼端末は、判定パケットを協力端末に受信させることができ、協力端末を利用したＮＡＴ種別の判定のためのテストを適切に行うことができる。
【００５３】
このように、本態様のサーバ装置は、ＮＡＴ種別の判定を依頼する依頼端末に対し、この判定に協力する協力端末との通信に必要な情報を提供することで、多段ＮＡＴ環境における個別のＮＡＴ種別の判定を可能にしている。
【００５４】
また、本発明の一態様に係るサーバ装置はさらに、前記ポート情報を受信した前記第２通信装置と、前記第１通信装置との間で送受信される判定パケットに基づく判定情報であって、前記ＮＡＴ種別の判定に用いられる判定情報を、前記第１通信装置および前記第２通信装置のそれぞれから受信する判定情報受信部と、前記判定情報受信部により受信された判定情報を用いて、前記ＮＡＴ種別の判定を行うＮＡＴ種別判定部と、前記ＮＡＴ種別判定部による判定された前記ＮＡＴ種別を示す情報である判定結果を前記第２通信装置に送信する判定結果送信部とを備えるとしてもよい。
【００５５】
この構成によれば、本態様のサーバ装置は、依頼端末および協力端末の双方から判定情報を取得し、取得した判定情報を用いることで、ＮＡＴ種別の判定を適切に実行することができる。また、判定結果送信部により、この判定結果を依頼端末に通知することができる。
【００５６】
また、本発明の一態様に係るサーバ装置において、前記接続環境情報受信部は、前記第１下段ＮＡＴ装置がポートフォワード機能を有するか否かを示す情報を含む前記接続環境情報を受信し、前記協力端末選択部は、前記接続環境情報が、前記第１下段ＮＡＴ装置がポートフォワード機能を有することを示す場合、前記第１下段ＮＡＴ装置を協力端末として選択するとしてもよい。
【００５７】
この構成によれば、本態様のサーバ装置は、例えば、協力端末として最も適した通信装置を協力端末として選択することができる。
【００５８】
また、本発明の一態様に係る通信装置は、インターネットに接続された上段ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）装置と、前記上段ＮＡＴ装置に接続された第１下段ＮＡＴ装置とを介して、前記インターネットに接続されたサーバ装置と通信する通信装置であって、前記第１下段ＮＡＴ装置のＮＡＴ種別の判定を依頼する判定依頼を前記サーバ装置に送信する判定依頼部と、前記サーバ装置から送信されるポート情報であって、前記上段ＮＡＴ装置に接続された第２下段ＮＡＴ装置が受信するパケットを前記第２下段ＮＡＴ装置に接続された協力端末に転送させるためのポートフォワードに用いられるポート番号を含むポート情報を受信するポート情報受信部と、前記ポート情報受信部により受信されたポート情報を用いて、前記ＮＡＴ種別の判定のための判定パケットを前記協力端末に送信する判定パケット送信部と、前記判定パケット送信部により送信された前記判定パケットに基づいて求められた前記ＮＡＴ種別を示す情報である判定結果を取得する判定結果取得部とを備える。
【００５９】
この構成によれば、本態様の通信装置は、インターネットに接続されたサーバ装置から、協力端末の直上のＮＡＴ装置を越えて当該協力端末にパケットを到達させるためのポート情報を受信することができる。
【００６０】
これにより、当該通信装置は、協力端末に判定パケットを受信させることができる。つまり、当該通信装置は、自身の直上のＮＡＴ装置のＮＡＴ種別の判定のためのテストを、協力端末を利用して適切に実行することができ、その結果、当該ＮＡＴ種別の判定結果を取得することができる。
【００６１】
また、本発明の一態様に係る通信装置において、前記判定結果取得部は、前記判定パケット送信部により送信された前記判定パケットに基づく判定情報であって、前記ＮＡＴ種別の判定に用いられる判定情報を前記サーバ装置に送信する判定情報送信部と、前記判定情報送信部により送信された判定情報を受信した前記サーバ装置から送信される前記判定結果を受信する判定結果受信部とを有する。
【００６２】
この構成によれば、本態様の通信装置は、判定パケットに基づく判定情報を用いてＮＡＴ種別の判定を行う機能を有するサーバ装置に、ＮＡＴ種別の判定を行わせることができる。つまり、当該通信装置は、自身で判定情報を処理してＮＡＴ種別を判定する必要はなく、サーバ装置から、当該ＮＡＴ種別の判定結果を取得することができる。
【００６３】
また、本発明の一態様に係る通信装置において、前記判定結果取得部は、前記判定パケット送信部により送信された前記判定パケットに基づく判定情報であって、前記ＮＡＴ種別の判定に用いられる判定情報を、前記ポート情報を受信した前記協力端末から受信する判定情報受信部と、前記判定情報受信部により受信された判定情報を用いて、前記ＮＡＴ種別の判定を行うＮＡＴ種別判定部とを有する。
【００６４】
この構成によれば、本態様の通信装置は、判定パケットに基づく判定情報を用いてＮＡＴ種別の判定を行う機能を有する。
【００６５】
つまり、当該通信装置は、判定パケットの送受信等の、ＮＡＴ種別の判定のための処理には、サーバ装置等の他の装置を利用しつつ、最終的な判定結果を求める処理は当該通信装置で行うことができる。そのため、例えば、当該通信装置を、当該ＮＡＴ種別を他の装置から隠すことができる。
【００６６】
また、本発明は、上記いずれかの態様に係るサーバ装置と、上記いずれかの態様に係る依頼端末として機能する通信装置と、上記いずれかの態様に係る協力端末として機能する通信装置とを備える通信システムとして実現することができる。
【００６７】
また、本発明は、上記いずれかの態様に係る通信装置が実行する特徴的な処理を含む通信方法として実現することもできる。
【００６８】
また、本発明は、上記いずれかの態様に係るサーバ装置が実行する特徴的な処理を含む通信方法として実現することもできる。
【００６９】
また、これら通信方法のそれぞれが含む各処理をコンピュータに実行させるためのプログラムとして実現すること、および、そのプログラムが記録された記録媒体として実現することもできる。そして、そのプログラムをインターネット等の伝送媒体またはＤＶＤ等の記録媒体を介して配信することもできる。
【００７０】
また、本発明は、上記いずれかの態様に係る通信装置が有する特徴的な構成部を備える集積回路として実現することもできる。
【００７１】
また、本発明は、上記いずれかの態様に係るサーバ装置が有する特徴的な構成部を備える集積回路として実現することもできる。
【発明の効果】
【００７２】
本発明によれば、多段ＮＡＴ環境の場合、つまり、ＮＡＴ装置が多段接続された場合でも、それぞれのＮＡＴ装置のＮＡＴ種別を個別に判定することができる。
【００７３】
例えば、２段のＮＡＴ装置を有する通信環境では、本発明により、下段に位置するＮＡＴ装置のＮＡＴ種別が個別に判定できる。このように、下段のＮＡＴ装置のＮＡＴ種別が個別に判定可能になることにより、上段のＮＡＴ装置のＮＡＴ種別も容易に推定することができる。
【００７４】
また、上段のＮＡＴ装置がＩＳＰ−ＮＡＴ装置であった場合、当該ＩＳＰ−ＮＡＴ装置は、複数のユーザに共通して用いられる。そのため、例えば、複数のユーザのＮＡＴ種別判定結果を集め、管理することにより、複数ユーザのうちの一人でも、上段のＮＡＴ装置（ＩＳＰ−ＮＡＴ装置）のＮＡＴ種別が判定できれば、以後、上段のＮＡＴ装置の判定を行う必要がない。つまり、各ユーザは、上段のＮＡＴ装置のＮＡＴ種別判定結果を外部サーバ等に問い合わせるだけで、当該上段のＮＡＴ装置のＮＡＴ種別を得ることができる。
【図面の簡単な説明】
【００７５】
【図１】ＮＡＴ種別の特徴を示す図
【図２】従来のＳＴＵＮを利用したＮＡＴ種別の判定方法を示すフローチャート
【図３Ａ】従来のＳＴＵＮを利用したＮＡＴ種別の判定の際に実行するテストＩの説明図
【図３Ｂ】従来のＳＴＵＮを利用したＮＡＴ種別の判定の際に実行するテストＩ´の説明図
【図３Ｃ】従来のＳＴＵＮを利用したＮＡＴ種別の判定の際に実行するテストＩＩの説明図
【図３Ｄ】従来のＳＴＵＮを利用したＮＡＴ種別の判定の際に実行するテストＩＩＩの説明図
【図４Ａ】従来のＳＴＵＮを利用したＮＡＴ種別判定が可能なネットワーク構成を示す図
【図４Ｂ】従来のＳＴＵＮを利用したＮＡＴ種別判定が不可能なネットワーク構成を示す図
【図５】ＮＡＴ種別と、当該ＮＡＴ種別の制限の厳しさとの関係を示す図
【図６】今後予想されるネットワーク構成の一例を示す図
【図７】本発明の実施の形態１における通信システムの構成の一例を示す図
【図８】実施の形態１における外部サーバおよび端末装置ハードウェア構成を示す図
【図９】実施の形態１における端末装置（依頼端末）の機能ブロックの一例を示す図
【図１０】実施の形態１における端末装置（協力端末）の機能ブロックの一例を示す図
【図１１】実施の形態１における外部サーバの機能ブロックの一例を示す図
【図１２Ａ】実施の形態１における依頼端末の基本的な処理の流れを示すフロー図
【図１２Ｂ】実施の形態１における外部サーバの基本的な処理の流れを示すフロー図
【図１２Ｃ】実施の形態１における協力端末の基本的な処理の流れを示すフロー図
【図１３】実施の形態１の通信システムにおける各装置に割り当てられたＩＰアドレスの例を示す図
【図１４】実施の形態１における各端末装置がＮＡＴ情報を外部サーバに登録する際の通信シーケンスの一例を示す図
【図１５】実施の形態１におけるＮＡＴ情報管理部に格納されているＮＡＴ情報のデータ構成例を示す図
【図１６】実施の形態１における依頼端末がＮＡＴ種別判定依頼を送信してからＮＡＴ種別の判定結果を受信するまでの通信シーケンスの一例を示す図
【図１７Ａ】実施の形態１におけるＮＡＴ種別の判定のためのテストＡの説明図
【図１７Ｂ】実施の形態１におけるＮＡＴ種別の判定のためのテストＡ´の説明図
【図１７Ｃ】実施の形態１におけるＮＡＴ種別の判定のためのテストＢの説明図
【図１７Ｄ】実施の形態１におけるＮＡＴ種別の判定のためのテストＣの説明図
【図１８】実施の形態１におけるＮＡＴ種別の判定の流れの例を示すフローチャート
【図１９】２段のＮＡＴ環境で、上段ＮＡＴ装置のＮＡＴ種別が推定できる場合の一例を示す図
【図２０】２段のＮＡＴ環境で、同一の上段ＮＡＴ装置下の複数端末装置の情報により上段ＮＡＴ装置のＮＡＴ種別が推定できる場合の一例を示す図
【図２１】本発明の実施の形態２における通信システムの構成の一例を示す図
【図２２】実施の形態２の通信システムにおける各装置に割り当てられたＩＰアドレスの例を示す図
【図２３】実施の形態２における依頼端末がＮＡＴ種別判定依頼を送信してからＮＡＴ種別の判定結果を受信するまでの通信シーケンスの一例を示す図
【図２４】実施の形態２におけるＮＡＴ種別の判定の流れの例を示すフローチャート
【図２５】実施の形態１または２における端末装置がＮＡＴ種別判定機能を備える場合の機能ブロックの一例を示す図
【発明を実施するための形態】
【００７６】
以下、本発明を実施するための形態について、図面を参照しながら説明する。
【００７７】
（実施の形態１）
実施の形態１では、ＮＡＴ種別判定の対象となるＮＡＴ装置（以下、「判定対象ＮＡＴ装置」と記載する。）のＮＡＴ種別判定を行う場合に、ＮＡＴ種別判定に協力する端末装置（以下、「協力端末」と記載する。）としての条件に適した端末装置が２台以上存在する時に有効な構成の一例を示す。
【００７８】
まず、実施の形態１における通信システムの構成を説明する。
図７は、本発明の実施の形態１における通信システム４００の構成の一例を示す図である。
【００７９】
実施の形態１における通信システム４００は、本発明の通信システムの一例である。
通信システム４００は、図７に示すように、通信回線を介してインターネット４０２に接続された外部サーバ４０１、ＩＳＰレベルで設置されているＩＳＰ−ＮＡＴ装置４０３、ＮＡＴ装置４０４ａ、４０４ｂ、および４０４ｃ、並びに、端末装置４０５ａ、４０５ｂ、および４０５ｃを備える。
【００８０】
インターネット４０２は、例えば光回線、ＣＡＴＶ、または電話回線等で構成された有線回線、もしくは、無線回線を用いて構成された公衆通信ネットワーク、または、専用通信ネットワークである。インターネット４０２に接続された端末装置間で所定の通信プロトコルに従ってデータのやり取りを行うことが可能である。
【００８１】
端末装置４０５ａ〜４０５ｃのそれぞれは、本発明の通信装置の一例であり、ＴＣＰ／ＩＰおよびＵＤＰ／ＩＰネットワークで通信できる機能を持ち、それぞれの目的に合わせデータ通信を行う。また、端末装置４０５ａ〜４０５ｃのそれぞれは、本発明のサーバ装置の通信相手である第１通信装置または第２通信装置として動作する通信装置の一例である。
【００８２】
また、端末装置４０５ａ〜４０５ｃのそれぞれは、ＮＡＴ種別判定依頼を外部サーバ４０１に送信する機能（以下、ＮＡＴ種別判定依頼を送信する端末装置を、「依頼端末」と記載する）と、外部サーバ４０１からのＮＡＴ種別の判定の協力の依頼を示す判定協力依頼を受信する機能（以下、判定協力依頼を受信する端末装置を、「協力端末」と記載する）とを備える。
【００８３】
また、端末装置４０５ａ〜４０５ｃのそれぞれは、協力端末として動作することのできる機能を有する。具体的には、端末装置４０５ａ〜４０５ｃのそれぞれは、自身を直接的に配下に置くＮＡＴ装置、つまり自身の直上のＮＡＴ装置（以下、「協力ＮＡＴ装置」と記載する）に自動ポートフォワードを設定する機能と、判定パケットを送受信する機能と、判定パケットに基づく、ＮＡＴ種別判定に用いられる情報である判定情報を、外部サーバ４０１に送信する機能とを有する。以上説明した各機能の詳細は後述する。
【００８４】
ＮＡＴ装置４０４ａ〜４０４ｃは、ＮＡＴ機能を持つルータであり、パケットのルーティング機能を持つと共にＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を構成する。
【００８５】
なお、ＮＡＴ装置４０４ａ〜４０４ｃのそれぞれは、本発明の通信装置およびサーバ装置の通信を中継する第１下段ＮＡＴ装置、第２下段ＮＡＴ装置、または第３下段ＮＡＴ装置として機能する装置の一例である。
【００８６】
このＬＡＮに接続する各端末はプライベートＩＰアドレスを持ち、同一ＬＡＮ内に存在する端末同士ではプライベートＩＰアドレスを用いて通信を行うことができる。
【００８７】
ＩＳＰ−ＮＡＴ装置４０３は、ＩＳＰが設置するＮＡＴ機能を持つルータであり、各顧客へのＩＰアドレス割当管理などを行うが、パケットの転送機能としては、ＮＡＴ装置４０４ａ〜４０４ｃと同等の機能を有する。
【００８８】
なお、ＩＳＰ−ＮＡＴ装置４０３は、本発明の通信装置およびサーバ装置の通信を中継する上段ＮＡＴ装置として機能する装置の一例である。
【００８９】
外部サーバ４０１は、本発明のサーバ装置の一例である。外部サーバ４０１は、端末装置４０５ａ〜４０５ｃからのＮＡＴ種別判定依頼を受信する機能と、外部サーバ４０１内のＮＡＴ情報管理部に保持された情報を参照することで適切な協力端末を選択する機能と、選択した協力端末に判定協力依頼を送信する機能と、協力端末から自動マッピングしたポート番号を示すポート番号情報等を受信する機能と、前記ポート番号情報と共に、協力ＮＡＴ装置のＷＡＮ側ＩＰアドレス情報を、依頼端末へ通知する機能と、依頼端末と協力端末とから判定情報を受信する機能と、受信した判定情報から、判定対象ＮＡＴ装置のＮＡＴ種別を判定する機能とを有する。これら各機能の詳細は後述する。
【００９０】
なお、外部サーバ４０１が必ずしも、ＮＡＴ情報管理部を内包する必要はない。ＮＡＴ情報管理部を外部サーバ４０１とは別の装置に設け、ＮＡＴ情報を保持および管理する機能を実現してもよい。
【００９１】
次に、外部サーバ４０１および端末装置４０５ａ〜４０５ｃのハードウェア構成を説明する。
【００９２】
図８は、本発明の実施の形態１における外部サーバ４０１、および、端末装置４０５ａ〜４０５ｃのハードウェア構成を示す図である。
【００９３】
つまり、外部サーバ４０１および端末装置４０５ａ〜４０５ｃは、ソフトウェアを実行可能な通常のハードウェア構成を有する情報処理装置により実現可能である。
【００９４】
具体的には、外部サーバ４０１および端末装置４０５ａ〜４０５ｃには、ＣＰＵ（中央演算処理装置）５０１と、主記憶装置５０２と、通信制御装置５０３と、外部記憶装置５０４と、入力装置５０５と、出力装置５０６と、が含まれる。
【００９５】
各装置は、バス５０７を介して相互に接続され、各装置間で必要な情報が伝送可能に構成されている。なお、図８に示されたハードウェア構成は一例であり、外部サーバ４０１および端末装置４０５ａ〜４０５ｃそれぞれのハードウェア構成は、必ずしも、この通りの構成である必要はない。
【００９６】
例えば、出力装置５０６は、当該外部サーバまたは端末装置とは異なる装置（テレビジョン等）で実現されてもよい。この場合、当該外部サーバまたは端末装置には別途Ｄ／Ａコンバータ等のテレビジョン信号生成装置を具備し、当該外部サーバまたは端末装置と出力装置５０６とはＡＶケーブルや同軸ケーブル等で接続される。
【００９７】
図９は、本発明の実施の形態１における依頼端末の機能ブロックの一例を示す図である。
【００９８】
つまり、図９には、端末装置４０５ａ〜４０５ｃのそれぞれが有する、依頼端末として機能するための機能構成が図示されている。
【００９９】
なお、各機能ブロックは、例えば、依頼端末の主記憶装置５０２または外部記憶装置５０４に格納されたプログラムがＣＰＵ５０１によって実行されることで実現される。
【０１００】
ＮＡＴ情報登録部６０１は、依頼端末と外部サーバ４０１の間にある全ての、ＮＡＴ装置の情報（ＮＡＴ情報）を、外部サーバ４０１に登録する処理部であり、それらＮＡＴ装置の情報を収集する機能をも有する。
【０１０１】
上記の「ＮＡＴ情報」は本発明のサーバ装置における接続環境情報の一例であり、端末装置４０５ａ〜４０５ｃのそれぞれから外部サーバ４０１に登録される情報である。
【０１０２】
外部サーバ４０１に登録される、ＮＡＴ情報としては、各端末装置と外部サーバ４０１との間にあるＮＡＴ装置の数と、各ＮＡＴ装置のＷＡＮ側ＩＰアドレスおよびＬＡＮ側ＩＰアドレスと、ＵＰｎＰおよびＮＡＴ−ＰＭＰ（ＮＡＴ  Ｐｏｒｔ  ｍａｐｐｉｎｇ  Ｐｒｏｔｏｃｏｌ）等の自動ポートフォワード機能の有無情報等の情報とが例示される。なお、ＮＡＴ情報として収集される情報は、これらに限定されるものではない。
【０１０３】
ＮＡＴ種別判定依頼部６０２は、依頼端末が自端末より上位（自端末よりインターネットに近い位置）にあるＮＡＴ装置のＮＡＴ種別情報を得るための、ＮＡＴ種別判定依頼パケットを外部サーバ４０１へ送信する。
【０１０４】
このとき、例えば、外部サーバ４０１が備えるＮＡＴ情報管理部に、当該ＮＡＴ種別判定依頼に対応する判定対象ＮＡＴ装置のＮＡＴ種別情報があった場合には、外部サーバ４０１は当該ＮＡＴ種別情報を端末装置に返信してもよい。
【０１０５】
ポート情報受信部６０３は、協力端末が行った自動ポートフォワード命令に対応するポート情報（協力端末が協力ＮＡＴ装置に自動ポートフォワード命令を行ったことにより、当該ＮＡＴ装置に設定された、ポートフォワードが行われるポート番号等を示す情報）を、外部サーバ４０１経由で受信する。このとき、当該協力ＮＡＴ装置のＷＡＮ側ＩＰアドレスも同時に受信する。
【０１０６】
判定パケット送受信部６０４は、判定対象ＮＡＴ装置のＮＡＴ種別判定を行うために、依頼端末と協力端末との間で、判定パケットを送受信する。判定パケット送受信部６０４は、前記ポート情報受信部６０３で得た協力ＮＡＴ装置のポート番号とＷＡＮ側ＩＰアドレスとを、判定パケットの宛先ポートと宛先アドレスに指定して、判定パケットを送信する。当該機能の詳細は後述する。
【０１０７】
判定結果取得部６１０は、判定対象ＮＡＴ装置のＮＡＴ種別の判定結果を取得する。本実施の形態においては、外部サーバ４０１によりＮＡＴ種別の判定処理が行われ、判定結果取得部６１０は、その結果を外部サーバ４０１から取得する。判定結果取得部６１０は、このような判定結果を取得するための機能構成として、判定情報送信部６０５と判定結果受信部６０６とを有する。
【０１０８】
判定情報送信部６０５は、判定パケット送受信部６０４によって送信された、判定パケットに基づく判定情報であって、ＮＡＴ種別の判定に用いられる判定情報を、外部サーバ４０１に送信する。この送信処理は、判定パケット送受信の後に行われる。
【０１０９】
判定結果受信部６０６は、外部サーバ４０１が、依頼端末および協力端末から送信された判定情報を用いて判定した、判定対象ＮＡＴ装置のＮＡＴ種別を示す判定結果を、外部サーバ４０１がから受信する。これにより、依頼端末は判定対象ＮＡＴ装置のＮＡＴ種別を知ることができる。
【０１１０】
なお、図９、並びに、後述する図１０および図１１の各ブロック図において、点線の矩形で示される構成要素は、各図に示される装置に含まれている必要はない。
【０１１１】
例えば、図９におけるＮＡＴ情報登録部６０１は、依頼端末に含まれていなくてもよい。この場合、ＮＡＴ情報登録部６０１が外部サーバ４０１に登録すべきＮＡＴ情報を、例えば他の装置が外部サーバ４０１に登録してもよい。
【０１１２】
図１０は、本発明の実施の形態１における協力端末の機能ブロックの一例を示す図である。
【０１１３】
つまり、図１０には、端末装置４０５ａ〜４０５ｃのそれぞれが有する、協力端末として機能するための機能構成が図示されている。
【０１１４】
各機能ブロックは、例えば、協力端末の主記憶装置５０２または外部記憶装置５０４に格納されたプログラムがＣＰＵ５０１によって実行されることで実現される。
【０１１５】
ＮＡＴ情報登録部６５１は、依頼端末と外部サーバ４０１との間にある全てのＮＡＴ装置についてのＮＡＴ情報を、外部サーバ４０１に登録する。また、ＮＡＴ情報登録部６５１は、それらＮＡＴ装置の情報を収集する機能も有する。つまり、ＮＡＴ情報登録部６５１は依頼端末におけるＮＡＴ情報登録部６０１と同等の機能を有する。
【０１１６】
判定協力依頼受信部６５２は、外部サーバ４０１から、ＮＡＴ種別の判定への協力を依頼する判定協力依頼を受信する。具体的には、判定協力依頼受信部６５２は、当該依頼内容を示す判定協力依頼パケットを受信する。つまり、ある端末装置が備える判定協力依頼受信部６５２が判定協力依頼パケットを受信することにより、当該端末装置は、協力端末として判定対象ＮＡＴ装置の種別判定に協力し、判定パケットの送受信を行うことになる。当該機能の詳細は後述する。
【０１１７】
自動ポートフォワード命令部６５３は、協力ＮＡＴ装置へ、任意のポート番号を用いた自動ポートフォワード命令を送信する。当該機能はＵＰｎＰまたはＮＡＴ−ＰＭＰ等で実現される。また、この自動ポートフォワード命令は、当該端末装置が外部サーバ４０１から協力端末と選択され、判定協力依頼パケットを受信することで実行される。
【０１１８】
ポート情報送信部６５４は、自動ポートフォワード命令部６５３が用いたポート番号と、協力ＮＡＴ装置のＷＡＮ側ＩＰアドレスとをポート情報として、外部サーバ４０１経由で依頼端末へ通知する。
【０１１９】
また、このとき、協力端末は、ポート情報に協力ＮＡＴ装置のＷＡＮ側ＩＰアドレスを付与せず、外部サーバ４０１がＮＡＴ情報管理部から協力ＮＡＴ装置のＷＡＮ側ＩＰアドレスを取得して付与してもよい。また、２台の協力端末間でも、協力ＮＡＴ装置のＷＡＮ側ＩＰアドレスとポート番号情報とを含むポート情報の交換を、外部サーバ４０１経由で行う。
【０１２０】
判定パケット送受信部６５５は、判定対象ＮＡＴ装置のＮＡＴ種別判定のために、依頼端末と協力端末との間で、判定パケットを送受信する。判定パケット送受信部６５５は、依頼端末が備える判定パケット送受信部６０４から送信される判定パケットを受信するとともに、その判定パケットの送信元アドレスとポート番号を得て、その送信元アドレスに応答パケットを送信する。当該機能の詳細は後述する。
【０１２１】
判定情報送信部６５６は、判定パケット送受信部６５５によって受信された、判定パケットに基づく判定情報であって、ＮＡＴ種別の判定に用いられる判定情報を、外部サーバ４０１に送信する。この送信処理は、判定パケット送受信の後に行われる。
【０１２２】
判定結果受信部６５７は、例えば外部サーバ４０１から、ＮＡＴ種別の判定結果を受信する。なお、判定結果受信部６５７が受信する判定結果は、依頼端末の直上のＮＡＴ装置のＮＡＴ種別を示す情報であり、当該情報は、上述のように、上段のＮＡＴ装置（ＩＳＰ−ＮＡＴ装置４０３）のＮＡＴ種別の判定に用いることができる。
【０１２３】
判定対象ＮＡＴ情報通知部６５８は、判定パケット送受信部６５５により受信された判定パケットに示される、判定対象ＮＡＴ装置のＩＰアドレスとポート番号とを、外部サーバ４０１から判定協力依頼を受信した他の端末装置に通知する。
【０１２４】
なお、ＮＡＴ情報登録部６５１は協力端末に含まれていなくてもよい。この場合、ＮＡＴ情報登録部６５１部が外部サーバ４０１に登録すべきＮＡＴ情報を、例えば、他の装置が外部サーバ４０１に登録してもよい。
【０１２５】
また、判定結果受信部６５７は協力端末に含まれていなくてもよい。協力端末は、判定対象ＮＡＴ装置のＮＡＴ種別の判定に協力する機能を有していればよく、判定結果受信部６５７を備えないことで、当該機能が減殺されることはない。
【０１２６】
また、判定対象ＮＡＴ情報通知部６５８は協力端末に含まれていなくてもよい。後述する実施の形態２で説明するように、協力端末が１台のみ存在する場合であっても、判定対象ＮＡＴ装置のＮＡＴ種別の判定が可能な場合がある。そのため、他の協力端末に判定対象ＮＡＴ装置のポート番号等を通知する判定対象ＮＡＴ情報通知部６５８はなくてもよい。
【０１２７】
図１１は、本発明の実施の形態１における外部サーバ４０１の機能ブロックの一例を示す図である。
【０１２８】
各機能ブロックは、例えば外部サーバ４０１の主記憶装置５０２または外部記憶装置５０４に格納されたプログラムがＣＰＵ５０１によって実行されることで実現される。
【０１２９】
ＮＡＴ情報受信部７０１は、本発明のサーバ装置における接続環境情報受信部の一例であり、各端末装置から送信されてくる、当該端末装置と外部サーバ４０１との間にあるＮＡＴ装置の情報を含むＮＡＴ情報を受信する。
【０１３０】
ＮＡＴ情報受信部７０１が受信したＮＡＴ情報は、ＮＡＴ情報管理部７０６に格納され管理される。
【０１３１】
なお、ＮＡＴ情報管理部７０６は、外部サーバ４０１に必須の構成要素ではない、例えば、外部サーバ４０１とは別のサーバ装置を設置して、当該サーバ装置にこれらＮＡＴ情報を管理させてもよい。この場合、ＮＡＴ情報受信部７０１が当該サーバ装置からＮＡＴ情報を受信すればよい。
【０１３２】
また、ＮＡＴ情報管理部７０６により保持および管理されるＮＡＴ情報としては、ユニークな端末装置名と、ＮＡＴ装置の数と、各ＮＡＴ装置のＷＡＮ側ＩＰアドレスと、各ＮＡＴ装置のＬＡＮ側ＩＰアドレスと、ＵＰｎＰまたはＮＡＴ−ＰＭＰ等のＮＡＴ装置の自動ポートフォワード機能の有無情報などが例示されるが、これらに限られたものではない。ＮＡＴ情報管理部７０６の管理例は、処理フローの説明内で後述する。
【０１３３】
判定依頼受信部７０２は、依頼端末から送信されるＮＡＴ種別判定依頼を受信する。
協力端末選択部７０７は、判定依頼受信部７０２によりＮＡＴ種別判定依頼が受信された場合、上述のＮＡＴ情報を参照することで、所定の基準を満たす端末装置を協力端末として選択する。
【０１３４】
判定協力依頼送信部７０３は、協力端末選択部７０７により選択された協力端末へ、判定協力依頼パケットを送信する。
【０１３５】
ポート情報送受信部７０４は、協力端末が協力ＮＡＴ装置へ行った自動ポートフォワード命令に対応するポート情報を受信し、受信したポート情報を依頼端末に送信することで、協力ＮＡＴ装置のポート番号とＷＡＮ側ＩＰアドレスと依頼端末に通知する。
【０１３６】
なお、ポート情報送受信部７０４は、協力ＮＡＴ装置のＷＡＮ側ＩＰアドレスを含まないポート情報を協力端末から受信し、当該パケットに協力ＮＡＴ装置のＷＡＮ側ＩＰアドレス含めて依頼端末に転送するだけでもよい。
【０１３７】
判定部７１０は、判定対象ＮＡＴ装置のＮＡＴ種別を判定する。判定部７１０は、ＮＡＴ種別の判定処理を行うための機能構成として、判定情報受信部７０５とＮＡＴ種別判定部７０８とを有する。
【０１３８】
判定情報受信部７０５は、依頼端末と協力端末とからそれぞれ送信されてくる判定情報を受信する。ＮＡＴ種別判定部７０８は、判定情報受信部７０５により受信された判定情報を用いて、判定対象ＮＡＴ装置のＮＡＴ種別を判定する。
【０１３９】
判定結果送信部７０９は、判定部７１０から得られる判定結果を、依頼端末に通知する。
【０１４０】
なお、判定部７１０および判定情報受信部７０５は、外部サーバ４０１に必須の構成要素ではない。例えば、依頼端末または協力端末に判定部７１０に相当する機能を備えさせ、依頼端末または協力端末にＮＡＴ種別の判定処理を行わせてもよい。
【０１４１】
依頼端末が判定部７１０に相当する機能を有する場合の機能構成については、図２５を用いて後述する。
【０１４２】
また、図９〜図１１のそれぞれに示す機能構成の一部または全部は、１つの集積回路として実現することができる。つまり、依頼端末および協力端末の少なくとも一方として機能する端末装置４０５ａ（４０５ｂ、４０５ｃ）、および外部サーバ４０１は、それぞれ集積回路によって実現することができる。
【０１４３】
次に、図１２Ａ〜図１２Ｃを用いて、外部サーバ４０１、および、端末装置４０５ａ〜４０５ｃの基本的な処理の流れを説明する。
【０１４４】
図１２Ａは、本発明の実施の形態１における依頼端末の基本的な処理の流れを示すフロー図である。
【０１４５】
なお、図１２Ａを用いて、端末装置４０５ａが依頼端末として機能する場合の基本的な処理フローを説明するが、端末装置４０５ｂおよび４０５ｃも図１２Ａに示す処理を実行することで依頼端末として機能することができる。
【０１４６】
ＮＡＴ種別判定依頼部６０２は、判定対象ＮＡＴ装置であるＮＡＴ装置４０４ａのＮＡＴ種別の判定を依頼する判定依頼を、外部サーバ４０１に送信する（Ｓ１０）。
【０１４７】
ポート情報受信部６０３は、外部サーバ４０１から送信されるポート情報であって、協力ＮＡＴ装置から協力端末へのポートフォワードに用いられるポート番号を含むポート情報を受信する（Ｓ１１）。
【０１４８】
判定パケット送受信部６０４は、ポート情報受信部６０３により受信されたポート情報を用いて、判定パケットを協力端末に送信する（Ｓ１２）。つまり、ポート情報に含まれるポート番号を宛先ポートとして含む判定パケットを生成し、協力端末に送信する。
【０１４９】
判定結果取得部６１０は、上記判定パケットの送信結果を用いて求められた、ＮＡＴ装置４０４ａのＮＡＴ種別を示す情報である判定結果を取得する（Ｓ１３）。本実施の形態では、判定結果取得部６１０は、外部サーバ４０１から送信される判定結果を取得する。
【０１５０】
図１２Ｂは、本発明の実施の形態１における外部サーバ４０１の基本的な処理の流れを示すフロー図である。図１２Ｂを用いて、外部サーバ４０１の基本的な処理フローを説明する。
【０１５１】
ＮＡＴ情報受信部７０１は、各端末装置（４０５ａ〜４０５ｃ）から、ＮＡＴ装置に関する情報を含む接続環境情報を受信する（Ｓ２０）。本実施の形態においては、接続環境情報は、上述のように各ＮＡＴ装置のＷＡＮ側ＩＰアドレスおよびＬＡＮ側ＩＰアドレスなどを含むＮＡＴ情報である。
【０１５２】
また、本実施の形態においては、ＮＡＴ情報受信部７０１により受信されたＮＡＴ情報は、ＮＡＴ情報管理部７０６に格納される。
【０１５３】
判定依頼受信部７０２は、依頼端末から送信される、判定対象ＮＡＴ装置のＮＡＴ種別の判定を依頼するＮＡＴ種別判定依頼を受信する（Ｓ２１）。
【０１５４】
協力端末選択部７０７は、判定依頼受信部７０２がＮＡＴ種別判定依頼を受信した場合、ＮＡＴ情報受信部７０１により受信されたＮＡＴ情報を参照することで、所定の基準を満たす端末装置を協力端末として選択する（Ｓ２２）。
【０１５５】
判定協力依頼送信部７０３は、協力端末選択部７０７により選択された協力端末に、当該ＮＡＴ種別の判定の協力を依頼する判定協力依頼を送信する（Ｓ２３）。
【０１５６】
ポート情報送受信部７０４は、判定協力依頼を受信した協力端末からポート情報を受信する（Ｓ２４）。ポート情報送受信部７０４はさらに、受信したポート情報を依頼端末に送信する（Ｓ２５）。
【０１５７】
なお、上記ポート情報には、協力ＮＡＴ装置が受信するパケットを協力端末に転送させるためのポートフォワードに用いられるポート番号が含まれている、また、本実施の形態においては、協力ＮＡＴ装置のＷＡＮ側ＩＰアドレスも上記ポート情報に含まれている。
【０１５８】
図１２Ｃは、本発明の実施の形態１における協力端末の基本的な処理の流れを示すフロー図である。
【０１５９】
なお、図１２Ｃを用いて、端末装置４０５ａが協力端末として機能する場合の基本的な処理フローを説明するが、端末装置４０５ｂおよび４０５ｃも図１２Ｃに示す処理を実行することで協力端末として機能することができる。
【０１６０】
判定協力依頼受信部６５２は、外部サーバ４０１から送信される、前記上段ＮＡＴ判定対象ＮＡＴ装置のＮＡＴ種別の判定の協力を依頼する判定協力依頼を受信する（Ｓ３０）。
【０１６１】
判定協力依頼受信部６５２により判定協力依頼が受信された場合、協力ＮＡＴ装置であるＮＡＴ装置４０４ａが受信するパケットを端末装置４０５ａに転送させるためのポートフォワードの実行をＮＡＴ装置４０４ａに命令する（Ｓ３１）。
【０１６２】
ポート情報送信部６５４は、上記ポートフォワードに用いられるポート番号を含むポート情報を外部サーバ４０１に送信する（Ｓ３２）。本実施の形態においては、このポート情報にはＮＡＴ装置４０４ａのＷＡＮ側ＩＰアドレスも含まれている。
【０１６３】
判定パケット送受信部６５５は、上記ポート情報を外部サーバ４０１から受信した依頼端末から送信される、ＮＡＴ種別の判定のための判定パケットを受信する（Ｓ３３）。
【０１６４】
判定情報送信部６５６は、判定パケット送受信部６５５により受信された判定パケットに基づいて得られる、当該ＮＡＴ種別の判定に用いられる判定情報を外部サーバ４０１に送信する（Ｓ３４）。
【０１６５】
次に、実施の形態１における通信システム４００における各装置の処理の流れを、図１３〜図２０を用いて説明する。
【０１６６】
具体的には、図１３に示す環境を例に、通信システム４００が備える各装置の処理の流れを説明する。
【０１６７】
図１３は、実施の形態１の通信システム４００における各装置に割り当てられたＩＰアドレスの例を示す図である。
【０１６８】
図１３に示すように各装置に１つまたは２つのＩＰアドレスが割り当てられている環境を想定する。
【０１６９】
また、端末装置４０５ａであるＣＥ＿Ｘが、依頼端末としてＮＡＴ種別判定依頼パケットを送信する場合を想定し、以下の説明を行う。また、ＮＡＴ装置４０４ｂおよび４０４ｃは自動ポートフォワード機能を有し、協力ＮＡＴ装置として動作する場合を想定する。
【０１７０】
つまり、この場合、端末装置４０５ｂ（ＣＥ＿Ｙ）および端末装置４０５ｃ（ＣＥ＿Ｚ）は、協力端末として動作する。
【０１７１】
図１４は、実施の形態１における各端末装置がＮＡＴ情報を外部サーバ４０１に登録する際の通信シーケンスの一例を示す図である。
【０１７２】
まず、Ｓ２０１ａ〜Ｓ２０１ｃの各処理において、各端末装置（ＣＥ＿Ｘ、ＣＥ＿Ｙ、ＣＥ＿Ｚ）は、外部サーバ４０１との間にある全てのＮＡＴ装置の情報（ＮＡＴ情報）を取得する。
【０１７３】
取得するＮＡＴ情報としては、上述のように、各ＮＡＴ装置のＷＡＮ側ＩＰアドレスおよびＬＡＮ側ＩＰアドレスと、ＵＰｎＰおよびＮＡＴ−ＰＭＰ等における自動ポートフォワード機能の有無情報などである。
【０１７４】
なお、各ＮＡＴ装置のＷＡＮ側ＩＰアドレスおよびＬＡＮ側ＩＰアドレスは、ｔｒａｃｅｒｏｕｔｅ等のＩＣＭＰパケット、または、ＵＰｎＰのＧｅｔＥｘｔｅｒｎａｌＩＰＡｄｄｒｅｓｓ等を用いることにより得ることができる。また自動ポートフォワード機能の有無情報は、ＵＰｎＰ等の機能を使うことにより判断することができる。
【０１７５】
例えば、ＣＥ＿Ｘは、直上のＮＡＴ装置４０４ａ（判定対象ＮＡＴ装置＿Ｘ）にＵＰｎＰ等に規定された所定の問合せパケットを送信することで、判定対象ＮＡＴ装置＿ＸのＬＡＮ側ＩＰアドレス“１９２．１６８．１．１”およびＷＡＮ側ＩＰアドレス“１９２．１６８．０．２”、並びに、自動ポートフォワード機能の有無情報を取得する。また、ＣＥ＿Ｘは、ＩＳＰ−ＮＡＴ装置４０３に対しても同様に問合せパケットを送信することで、ＩＳＰ−ＮＡＴ装置４０３のＬＡＮ側ＩＰアドレス“１９２．１６８．０．１” およびＷＡＮ側ＩＰアドレス“１０．０．０．２” 、並びに、自動ポートフォワード機能の有無情報を取得する。
【０１７６】
また、ＣＥ＿Ｙは、直上のＮＡＴ装置４０４ｂ（協力ＮＡＴ装置＿Ｙ）およびＩＳＰ−ＮＡＴ装置４０３のそれぞれからＮＡＴ情報を取得し、ＣＥ＿Ｚは、直上のＮＡＴ装置４０４ｃ（協力ＮＡＴ装置＿Ｚ）およびＩＳＰ−ＮＡＴ装置４０３のそれぞれからＮＡＴ情報を取得する。
【０１７７】
なお、図１４に示すＳ２０１ａ〜Ｓ２０１ｃの各処理は、外部サーバ４０１を除く全端末装置が、自端末よりも上位にあるＮＡＴ装置の情報を取得する処理であり、得る情報はＮＡＴ装置のＬＡＮ側およびＷＡＮ側ＩＰアドレス、自動ポートフォワード機能の有無情報などであるが、その他の情報を取得してもよい。
【０１７８】
Ｓ２０２ａ〜Ｓ２０２ｃの各処理では、各端末装（ＣＥ＿Ｘ、ＣＥ＿Ｙ、ＣＥ＿Ｚ）は、上記Ｓ２０１ａ〜Ｓ２０１ｃで取得したＮＡＴ情報を外部サーバ４０１へ送信する。外部サーバ４０１はＳ２０３ａ〜Ｓ２０３ｃにおいてＮＡＴ情報を受信すると、外部サーバ４０１内のＮＡＴ情報管理部７０６にＮＡＴ情報を登録し管理する。
【０１７９】
なお、上記のＳ２０１ａ〜Ｓ２０１ｃ、Ｓ２０２ａ〜Ｓ２０２ｃおよびＳ２０３ａ〜Ｓ２０３ｃの各処理は、各端末装置（ＣＥ＿Ｘ、ＣＥ＿Ｙ、ＣＥ＿Ｚ）がネットワークに接続した時または電源起動時に行うことも可能である。つまり、これら各処理は、後述する図１６の処理フローが行われる前に実行されるのであれば、いつ実行されてもよい。
【０１８０】
図１５は、実施の形態１におけるＮＡＴ情報管理部７０６に格納されているＮＡＴ情報のデータ構成例を示す図である。
【０１８１】
ここで、図１５に示す“ＮＡＴ１”は、２段のＮＡＴ装置を介して外部サーバ４０１と通信する各端末装置についての上段のＮＡＴ装置を意味する。つまり、本実施の形態では、全ての端末装置について、ＮＡＴ１はＩＳＰ−ＮＡＴ装置４０３である。
【０１８２】
また、“ＮＡＴ２”は、各端末装置についての下段のＮＡＴ装置を意味する。つまり、本実施の形態においては、図１３に示すように、ＣＥ＿ＸについてのＮＡＴ２は、判定対象ＮＡＴ装置＿Ｘである。また、ＣＥ＿ＹについてのＮＡＴ２は、協力ＮＡＴ装置＿Ｙであり、ＣＥ＿ＺについてのＮＡＴ２は、協力ＮＡＴ装置＿Ｚである。
【０１８３】
また、自動ポートフォワード機能の欄の“１”は、自動ポートフォワード機能があることを意味し、自動ポートフォワード機能の欄の“０”は、自動ポートフォワード機能がないことを意味する。
【０１８４】
つまり、図１５では、ＩＳＰ−ＮＡＴ装置４０３は自動ポートフォワード機能を有さないことが示されている。また、図１５では、判定対象ＮＡＴ装置＿Ｘは、自動ポートフォワード機能を有さず、協力ＮＡＴ装置＿Ｙおよび協力ＮＡＴ装置＿Ｚは、自動ポートフォワード機能を有することが示されている。
【０１８５】
なお、これら各ＮＡＴ装置と、自動ポートフォワード機能の有無との対応は一例である。本実施の形態では、自動ポートフォワード機能を有するＮＡＴ装置が、協力ＮＡＴ装置として選択されればよい。
【０１８６】
図１６は、実施の形態１における依頼端末がＮＡＴ種別判定依頼を送信してからＮＡＴ種別の判定結果を受信するまでの通信シーケンスの一例を示す図である。
【０１８７】
図１６のＳ２５１では、依頼端末であるＣＥ＿Ｘは、外部サーバ４０１へ判定対象ＮＡＴ装置＿ＸのＮＡＴ種別の判定を依頼するＮＡＴ種別判定依頼を送信する。
【０１８８】
外部サーバ４０１は、Ｓ２５２で当該ＮＡＴ種別判定依頼を受信することで、協力端末選択処理Ｓ２５３の実行に移行する。
【０１８９】
処理Ｓ２５３では、ＮＡＴ種別判定依頼を受信した外部サーバ４０１が、ＮＡＴ情報管理部７０６に格納されているＮＡＴ情報を参照することで協力端末を選択する。
【０１９０】
本実施の形態では、このときの選択する基準は、以下の（１）および（２）である。
【０１９１】
（１）判定対象ＮＡＴ装置より、１段上位にある（インターネットに近い）ＮＡＴ装置のＬＡＮ側ＩＰアドレスと、選択対象の端末装置の直上のＮＡＴ装置の１段上位にあるＮＡＴ装置のＬＡＮ側ＩＰアドレスとが同一であること。
【０１９２】
（２）選択対象の端末装置の直上のＮＡＴ装置が自動ポートフォワード機能に対応していること。
【０１９３】
当該選択対象の端末装置が、これら（１）および（２）の基準を満たす場合、当該端末装置は協力端末として選択される。
【０１９４】
本例の場合、図１３に示すように、判定対象ＮＡＴ装置＿Ｘの１段上位にあるＩＳＰ−ＮＡＴ装置４０３は、ＣＥ＿ＹおよびＣＥ＿Ｚの直上のＮＡＴ装置４０４ｂおよびＮＡＴ装置４０４ｃの双方にとっての１段上位のＮＡＴ装置にも該当する。そのため、ＣＥ＿ＹおよびＣＥ＿Ｚの双方は上記基準（１）を満たす。
【０１９５】
また、ＮＡＴ装置４０４ｂおよびＮＡＴ装置４０４ｃの双方は、図１５に示すように自動ポートフォワード機能を有するため、ＣＥ＿ＹおよびＣＥ＿Ｚの双方は上記基準（２）も満たす。
【０１９６】
従って、ＣＥ＿ＹおよびＣＥ＿Ｚの双方は外部サーバ４０１が備える協力端末選択部７０７により、協力端末として選択される。
【０１９７】
なお、本実施の形態では、協力端末として２台の端末装置を選択するが、協力端末としての基準を満たす端末装置が３台以上存在する場合、これらの中での２台の選択手法は任意の選択手法でよい。
【０１９８】
Ｓ２５４では、上記Ｓ２５３が実行された後、外部サーバ４０１が選択した２台の協力端末（ＣＥ＿Ｙ、ＣＥ＿Ｚ）へ、判定協力依頼パケットが送信される。
【０１９９】
Ｓ２５５ｃおよびＳ２５５ｂにおいて判定協力依頼パケットを受信した各端末装置（ＣＥ＿Ｙ、ＣＥ＿Ｚ）は、協力端末として、処理Ｓ２５６ｂ、Ｓ２５６ｃ、Ｓ２５７ｂ、およびＳ２５７ｃを実行する。
【０２００】
なお、判定協力依頼パケットを受信した端末装置が、外部サーバ４０１へ協力依頼を拒否する機能を当該端末装置に設けてもよい。この場合は、外部サーバ４０１が、ＮＡＴ情報を参照することで協力端末を選択する処理を再度実行することになる。
【０２０１】
Ｓ２５６ｂおよびＳ２５６ｃでは、協力端末であるＣＥ＿ＹおよびＣＥ＿Ｚが、それぞれの直上にある協力ＮＡＴ装置へ、ＵＰｎＰまたはＮＡＴ−ＰＭＰ等の機能を用いて、任意の２つのポートに自動ポートフォワード命令を送信する。
【０２０２】
つまり、ＣＥ＿Ｙは協力ＮＡＴ装置＿Ｙへ、ＣＥ＿Ｚは協力ＮＡＴ装置＿Ｚへ、自動ポートフォワード命令を送信する。
【０２０３】
自動ポートフォワード命令の実行後、ＣＥ＿ＹおよびＣＥ＿Ｚは、Ｓ２５７ｂおよびＳ２５７ｃを実行する。
【０２０４】
以下、ＣＥ＿Ｙは、協力ＮＡＴ装置＿Ｙへの自動ポートフォワード命令を、ポートｐとポートｑとに行い、ＣＥ＿Ｚは、協力ＮＡＴ装置＿Ｚへの自動ポートフォワード命令をポートｒとポートｓとに行った場合を想定し、説明を行う。
【０２０５】
Ｓ２５７ｂおよびＳ２５７ｃでは、２台の協力端末（ＣＥ＿Ｙ、ＣＥ＿Ｚ）が、それぞれＳ２５６ｂおよびＳ２５６ｃで設定したポート番号情報と、協力ＮＡＴ装置のＷＡＮ側ＩＰアドレス情報とを、ポート情報として外部サーバ４０１へ送信する。
【０２０６】
外部サーバ４０１は、協力端末（ＣＥ＿Ｙ、ＣＥ＿Ｚ）からのポート情報を受信すると、Ｓ２５８で、受信したポート情報を依頼端末であるＣＥ＿Ｘへ送信する。
【０２０７】
また、２台の協力端末間、つまりＣＥ＿ＹとＣＥ＿Ｚとの間でも、外部サーバ４０１を経由して、互いのポート情報を交換する。
【０２０８】
なお、Ｓ２５７ｂおよびＳ２５７ｃにおいて２台の協力端末から外部サーバ４０１へ送信されるポート情報には、各協力ＮＡＴ装置のＷＡＮ側ＩＰが含まれていなくてもよい。この場合、外部サーバ４０１は、各協力ＮＡＴ装置のＷＡＮ側ＩＰアドレスを、例えばＮＡＴ情報管理部７０６から取得して各ポート情報に付与し、依頼端末ＣＥ＿Ｘに送信すればよい。
【０２０９】
このように外部サーバ４０１から送信されたポート情報は、Ｓ２５９で依頼端末ＣＥ＿Ｘに受信される。
【０２１０】
処理Ｓ２６０ａ〜Ｓ２６０ｃでは、依頼端末ＣＥ＿Ｘと２台の協力端末ＣＥ＿ＹおよびＣＥ＿Ｚとの間で、判定対象ＮＡＴ装置＿ＸのＮＡＴ種別の判定のための判定パケットが送受信される。
【０２１１】
ここで、依頼端末ＣＥ＿Ｘは、Ｓ２５９で、協力ＮＡＴ装置＿ＹのＷＡＮ側ＩＰアドレス（１９２．１６８．０．３）、および、自動マッピングされた２つのポート番号情報（ポートｐとポートｑ）、並びに、協力ＮＡＴ装置＿ＺのＷＡＮ側ＩＰアドレス（１９２．１６８．０．４）、および、自動マッピングされた２つのポート番号情報（ポートｒとポートｓ）を得ている。
【０２１２】
また、協力端末であるＣＥ＿ＹおよびＣＥ＿Ｚは、他方の直上のＮＡＴ装置のＷＡＮ側ＩＰアドレスと、自動マッピングされた２つのポート番号情報を得ている。
【０２１３】
そのため、ＣＥ＿Ｘ、ＣＥ＿Ｙ、およびＣＥ＿Ｚのそれぞれは、相互に通信が行える。
ＮＡＴ種別判定のためのテストは、図１７Ａ〜図１７Ｄに示す４つのテストを任意の順番で行うことで実行される。
【０２１４】
図１７Ａに示すテストＡは、図３Ａに示す従来技術である、ＳＴＵＮを利用したＮＡＴ種別判定のテストＩに相当する。
【０２１５】
依頼端末ＣＥ＿Ｘは、協力ＮＡＴ装置＿ＹのＷＡＮ側ＩＰアドレス１９２．１６８．０．３とポートｐとを宛先として判定パケットを送信する。判定パケットを受信した協力端末ＣＥ＿Ｙは、判定対象ＮＡＴ装置＿ＸのＷＡＮ側ＩＰアドレス１９２．１６８．０．２とポート番号とを得る。また、協力端末ＣＥ＿Ｙは、得た判定対象ＮＡＴ装置＿ＸのＷＡＮ側ＩＰアドレス１９２．１６８．０．２とポート番号とを宛先とし、送信元ポートをポートｐに指定したパケットを返信する。つまり、協力端末ＣＥ＿Ｙは判定パケットに対する応答パケットを送信する。
【０２１６】
依頼端末ＣＥ＿Ｘは、判定パケットに対する応答パケットが送信された場合は当該応答パケットを受信し、受信した応答パケットに含まれる、判定対象ＮＡＴ装置＿ＸのＷＡＮ側ＩＰアドレス１９２．１６８．０．２と、協力端末ＣＥ＿Ｙへの判定パケットで用いられた、判定対象ＮＡＴ装置＿Ｘのポート番号とを得る。また、依頼端末ＣＥ＿Ｘは、応答パケットを受信しない場合は、応答なしと判断する。
【０２１７】
図１７Ｂに示すテストＡ´は、図３Ｂに示す従来技術である、ＳＴＵＮを利用したＮＡＴ種別判定のテストＩ´に相当する。
【０２１８】
依頼端末ＣＥ＿Ｘは、協力ＮＡＴ装置＿ＺのＷＡＮ側ＩＰアドレス１９２．１６８．０．４とポートｓとを宛先として判定パケットを送信する。
【０２１９】
判定パケットを受信した協力端末ＣＥ＿Ｚは、判定対象ＮＡＴ装置＿ＸのＷＡＮ側ＩＰアドレス１９２．１６８．０．２とポート番号とを得る。協力端末ＣＥ＿Ｚは、得た判定対象ＮＡＴ装置のＷＡＮ側ＩＰアドレス１９２．１６８．０．２とポート番号とを宛先とし、送信元ポートをポートｑに指定した応答パケットを返信する。
【０２２０】
依頼端末ＣＥ＿Ｘは、応答パケットが返信された場合は、当該応答パケットを受信し、受信した応答パケットに含まれる、判定対象ＮＡＴ装置＿ＸのＷＡＮ側ＩＰアドレス１９２．１６８．０．２と、協力端末ＣＥ＿Ｚへの判定パケットで用いられた、判定対象ＮＡＴ装置＿Ｘのポート番号とを得る。また、依頼端末ＣＥ＿Ｘは、応答パケットを受信しない場合は、応答なしと判断する。
【０２２１】
図１７Ｃに示すテストＢは、図３Ｃに示す従来技術である、ＳＴＵＮを利用したＮＡＴ種別判定のテストＩＩに相当する。
【０２２２】
依頼端末ＣＥ＿Ｘは、協力ＮＡＴ装置＿ＹのＷＡＮ側ＩＰアドレス１９２．１６８．０．３とポートｐとを宛先として判定パケットを送信する。
【０２２３】
判定パケットを受信した協力端末ＣＥ＿Ｙは、判定対象ＮＡＴ装置＿ＸのＷＡＮ側ＩＰアドレス１９２．１６８．０．２とポート番号とを得る。協力端末ＣＥ＿Ｙの判定対象ＮＡＴ情報通知部６５８は、そのＩＰアドレス情報とポート番号とを、協力端末ＣＥ＿Ｚへ通知する。このときの協力端末間の通信で使用するポート番号は、上述のように協力端末間で交換されている。つまり、各協力端末は、この交換で得た、他方のポート番号のうちの任意のポート番号を協力端末間の通信に用いる。
【０２２４】
協力端末ＣＥ＿Ｚは、協力端末ＣＥ＿Ｙから得た判定対象ＮＡＴ装置＿ＸのＷＡＮ側ＩＰアドレス１９２．１６８．０．２とポート番号とを宛先とし、送信元ポートをポートｓに指定した応答パケットを返信する。
【０２２５】
依頼端末ＣＥ＿Ｘは、応答パケットが返信された場合は、当該応答パケットを受信し、返信がない場合は、応答なしと判断する。
【０２２６】
図１７Ｄに示すテストＣは、図３Ｄに示す従来技術である、ＳＴＵＮを利用したＮＡＴ種別判定のテストＩＩＩに相当する。
【０２２７】
依頼端末ＣＥ＿Ｘは、協力ＮＡＴ装置＿ＹのＷＡＮ側ＩＰアドレス１９２．１６８．０．３とポートｐとを宛先として判定パケットを送信する。
【０２２８】
判定パケットを受信した協力端末ＣＥ＿Ｙは、判定対象ＮＡＴ装置＿ＸのＷＡＮ側ＩＰアドレス１９２．１６８．０．２とポート情報を得る。協力端末ＣＥ＿Ｙは、得た判定対象ＮＡＴ装置＿ＸのＷＡＮ側ＩＰアドレス１９２．１６８．０．２とポート番号とを宛先とし、送信元ポートをポートｑに指定した応答パケットを返信する。
【０２２９】
依頼端末ＣＥ＿Ｘは、応答パケットが返信された場合は、受信をし、返信がない場合は、応答なしと判断する。
【０２３０】
次に、図１６に示すＳ２６１ａ〜Ｓ２６１ｃにおいて、上記Ｓ２６０ａ〜Ｓ２６０ｃで得た、テストＡ〜ＣおよびＡ´それぞれの結果を示す判定情報を、依頼端末ＣＥ＿Ｘと協力端末ＣＥ＿Ｙおよび協力端末ＣＥ＿Ｚが、外部サーバ４０１へ送信する。
【０２３１】
なお、判定情報には、例えば協力端末が依頼端末から受信した判定パケットに含まれるＩＰアドレスおよびポート番号を示す情報、または、依頼端末が協力端末から応答パケットを受信したか否かを示す情報等が含まれる。
【０２３２】
外部サーバ４０１は、Ｓ２６２で判定情報を受信することで、Ｓ２６３においてＮＡＴ種別の判定処理を実行する。
【０２３３】
なお、処理Ｓ２６２およびＳ２６３において、判定情報を受信しＮＡＴ種別の判定処理を実行する装置は、外部サーバ４０１でなくてもよい。依頼端末、協力端末、またはその他装置であっても、当該装置がＮＡＴ種別判定機能を有していれば、当該装置が判定情報を受信しＮＡＴ種別の判定処理を実行してもよい。
【０２３４】
本実施の形態では、Ｓ２６２で外部サーバ４０１が受信した判定情報を用いて、外部サーバ４０１が備えるＮＡＴ種別判定部７０８が、判定対象ＮＡＴ装置＿ＸのＮＡＴ種別を判定する（Ｓ２６３）。ＮＡＴ種別の判定フローを図１８に示す。
【０２３５】
まず、ＮＡＴ種別判定部７０８は、テストＡの結果、応答があったか否かを判定し（Ｓ３０１）、応答がなかった場合（Ｓ３０１でＮ）、「（１）ＵＤＰをブロックするファイアウォールが存在している」と判定する。
【０２３６】
一方、応答が受信された場合（Ｓ３０１でＹ）、ＮＡＴ種別判定部７０８は、協力端末ＣＥ＿Ｙの受信した判定パケットの送信元ＩＰアドレスが、依頼端末ＣＥ＿ＸのＩＰアドレスと同一か否かを判定する（Ｓ３０２）。
【０２３７】
この判定の結果、これらＩＰアドレスが同一の場合（Ｓ３０２でＹ）、ＮＡＴ種別判定部７０８は、判定対象ＮＡＴ装置＿Ｘが、実際にはＮＡＴ機能を有していないと判断し、さらにテストＢの結果判定を実行する（Ｓ３０３）。
【０２３８】
具体的には、ＮＡＴ種別判定部７０８は、テストＢの結果から、依頼端末ＣＥ＿Ｘが協力端末ＣＥ＿Ｚからの応答を受信したか否かを判定する（Ｓ３０３）。応答がなかった場合（Ｓ３０３でＮ）、ＮＡＴ種別判定部７０８は、「（２）アドレス変換をしないが、対称型ＮＡＴ装置のようにＵＤＰをブロックするファイアウォールが存在している」と判定する。一方、依頼端末ＣＥ＿Ｘが協力端末ＣＥ＿Ｚからの応答を受信した場合（Ｓ３０３でＹ）、ＮＡＴ種別判定部７０８は、「（３）ＮＡＴ機能なし」と判定する。
【０２３９】
また、Ｓ３０２において、協力端末ＣＥ＿Ｙが受信した判定パケットの送信元ＩＰアドレスが、依頼端末ＣＥ＿ＸのＩＰアドレスと同一でない（依頼端末ＣＥ＿ＸがＮＡＴ装置の配下にある）場合（Ｓ３０２でＮ）、テストＢで、協力端末ＣＥ＿Ｚからの応答があったか否かを判定する（Ｓ３０４）。そこで、応答があった場合（Ｓ３０４でＹ）、ＮＡＴ種別判定部７０８は、ＮＡＴ種別を「（４）完全コーン型（Ｆｕｌｌ  Ｃｏｎｅ）」であると判定する。
【０２４０】
一方、応答がなかった場合（Ｓ３０４でＮ）、続いて、テストＡの結果から得られる、協力端末ＣＥ＿Ｙが受信した判定パケットの送信元ＩＰアドレスおよびポート番号と、テストＡ´の結果から得られる、協力端末ＣＥ＿Ｚが受信した判定パケットの送信元ＩＰアドレスおよびポート番号が同一か否かを判定する（Ｓ３０５）。
【０２４１】
そこで、これら２組のＩＰアドレスおよびポート番号が同一でない場合（Ｓ３０５でＮ）、ＮＡＴ種別判定部７０８は、ＮＡＴ種別を「（５）対称型（Ｓｙｍｍｅｔｒｉｃ）」であると判定する。
【０２４２】
一方、Ｓ３０５において、これら２組のＩＰアドレスとポート番号との組み合わせが同一である場合（Ｓ３０５でＹ）、続いて、テストＣの結果から、協力端末ＣＥ＿Ｙからの応答があったか否かを判定する（Ｓ３０６）。応答があった場合（Ｓ３０６でＹ）には、送信パケットの宛先ポート番号および受信パケットの送信元ポート番号が、互いに異なるポート番号であっても、送信パケットの送信元ＩＰアドレスと、受信パケットの宛先ＩＰアドレスとが同一であれば応答が返ってくることを意味する。そこで、ＮＡＴ種別判定部７０８は、ＮＡＴ種別を「（６）制限付きコーン型（Ｒｅｓｔｒｉｃｔｅｄ  Ｃｏｎｅ）」であると判定する。
【０２４３】
一方、応答がなかった場合（Ｓ３０６でＮ）、上記２つのＩＰアドレスが同一であっても、上記２つのポート番号が互いに異なる場合には応答が返ってこないことから、ＮＡＴ種別判定部７０８は、ＮＡＴ種別を「（７）ポート制限付きコーン型（Ｐｏｒｔ  Ｒｅｓｔｒｉｃｔｅｄ  Ｃｏｎｅ）」であると判定する。
【０２４４】
次に、図１６に示すＳ２６４において、外部サーバ４０１は、上記のＳ２６３で得られた、判定対象ＮＡＴ装置＿ＸのＮＡＴ種別についての判定結果を、依頼端末ＣＥ＿Ｘに送信する。依頼端末ＣＥ＿Ｘは、Ｓ２６５において当該判定結果を受信する。
【０２４５】
以上説明したように、本実施の形態における通信システム４００では、２段ＮＡＴ環境における、下段ＮＡＴ装置のＮＡＴ種別を個別に判定することが可能となる。
【０２４６】
また、下段ＮＡＴ装置のＮＡＴ種別を判定することで、上段ＮＡＴ装置（本実施の形態ではＩＳＰ−ＮＡＴ装置４０３）のＮＡＴ種別を判定することも可能である。
【０２４７】
一例として、図１９に、２段のＮＡＴ環境で、下段のＮＡＴ装置４０４ａのＮＡＴ種別の判定結果（以下、「下段ＮＡＴ種別」と記載する）が完全コーン型であり、２段（ＩＳＰ−ＮＡＴ装置４０３とＮＡＴ装置４０４ａ）のＮＡＴ種別を統合した種別判定の結果（以下、「統合ＮＡＴ種別」と記載する）が対称型である場合の例を示す。
【０２４８】
ここで、例えばＳＴＵＮサーバを利用して、多段のＮＡＴ装置についての統合ＮＡＴ種別を求める場合、当該多段のＮＡＴ装置それぞれのＮＡＴ種別の中の最も制限が厳しいＮＡＴ種別が、統合ＮＡＴ種別として得られるという性質がある。
【０２４９】
従って、図１９に示す例の場合、統合ＮＡＴ種別（対称型）の方が下段ＮＡＴ種別（完全コーン型）より制限が厳しいため、端末装置４０５ａは、上段のＩＳＰ−ＮＡＴ装置４０３のＮＡＴ種別は、統合ＮＡＴ種別と等しいと推定できる。つまり、端末装置４０５ａは、具体的にはＩＳＰ−ＮＡＴ装置４０３のＮＡＴ種別は対称型であると断定できる。
【０２５０】
また、上段ＮＡＴ装置の制限が、下段ＮＡＴ装置の制限より易しく、上段ＮＡＴ装置のＮＡＴ種別が推定できない場合を想定する。
【０２５１】
この場合でも、当該上段ＮＡＴ装置の配下にいる複数の端末装置が取得したそれぞれのＮＡＴ種別の判定結果を集計することにより、当該上段ＮＡＴ装置のＮＡＴ種別を推定することができる。
【０２５２】
一例として、図２０に、上段ＮＡＴ装置の制限が下段ＮＡＴ装置の制限より易しい場合の通信システムを示す。
【０２５３】
具体的には、図２０では、上段のＩＳＰ−ＮＡＴ装置４０３のＮＡＴ種別が完全コーン型であり、２つ存在する下段のＮＡＴ装置（４０４ａ、４０４ｂ）のうち、ＮＡＴ装置４０４ａのＮＡＴ種別が制限付きコーン型であり、ＮＡＴ装置４０４ｂのＮＡＴ種別が完全コーン型である場合が示されている。
【０２５４】
図２０に示す例において、ＮＡＴ装置４０４ａおよびＩＳＰ−ＮＡＴ装置４０３についての下段ＮＡＴ種別（制限付きコーン型）は、上段のＩＳＰ−ＮＡＴ装置４０３のＮＡＴ種別（完全コーン型）よりも制限が厳しい。
【０２５５】
そのため、ＮＡＴ装置４０４ａの配下の端末装置４０５ａは、これら２段のＮＡＴ装置についての統合ＮＡＴ種別を取得したとしても、当該統合ＮＡＴ種別は、下段ＮＡＴ種別と同一の種別（制限付きコーン型）である。従って、端末装置４０５ａは、上段のＩＳＰ−ＮＡＴ装置４０３のＮＡＴ種別を推定することはできない。
【０２５６】
しかし、端末装置４０５ａと同一の上段ＮＡＴ装置の配下にある端末装置４０５ｂが本発明を用いることにより、端末装置４０５ａは、上段のＩＳＰ−ＮＡＴ装置４０３のＮＡＴ種別を取得することができる。
【０２５７】
具体的には、まず、端末装置４０５ｂは、本実施の形態における依頼端末として動作することで、直上のＮＡＴ装置４０４ｂのＮＡＴ種別が完全コーン型であることを取得する。また、端末装置４０５ｂは、例えばＳＴＵＮサーバを用いた方法により、ＮＡＴ装置４０４ｂおよびＩＳＰ−ＮＡＴ装置４０３についての統合ＮＡＴ種別が完全コーン型であることを取得する。
【０２５８】
この場合、下段ＮＡＴ種別が完全コーン型であり、かつ、統合ＮＡＴ種別も同じく完全コーン型であることから、端末装置４０５ｂは、上段のＩＳＰ−ＮＡＴ装置４０３のＮＡＴ種別が完全コーン型であると判断することができる。
【０２５９】
端末装置４０５ｂは、この判断結果を示す情報を、例えば外部サーバ４０１が備えるＮＡＴ情報管理部７０６に登録する。これにより、端末装置４０５ａは、上段のＩＳＰ−ＮＡＴ装置４０３のＮＡＴ種別が完全コーン型であることを、外部サーバ４０１から取得することができる。
【０２６０】
（実施の形態２）
実施の形態２では、判定対象ＮＡＴ装置のＮＡＴ種別の判定を行う場合に、協力端末としての基準を満たす端末装置が１台のみ存在する時に有効な構成の一例を示す。
【０２６１】
まず、実施の形態２における通信システムの構成を説明する。
図２１は、実施の形態２における通信システム９００の構成の一例を示す図である。
【０２６２】
実施の形態２における通信システム９００は、本発明の通信システムの別の一例である。
【０２６３】
通信システム９００は、図２１に示すように、通信回線を介してインターネット４０２に接続された外部サーバ９０１、ＩＳＰレベルで設置されているＩＳＰ−ＮＡＴ装置９０２、ＮＡＴ装置９０３ａおよび９０３ｂ、並びに、端末装置９０４ａおよび９０４ｂを備える。
【０２６４】
インターネット４０２は、実施の形態１と同じく、例えば光回線、ＣＡＴＶ、または電話回線等で構成された有線回線、もしくは、無線回線を用いて構成された公衆通信ネットワーク、または、専用通信ネットワークである。インターネット４０２に接続された端末装置間で所定の通信プロトコルに従ってデータのやり取りを行うことが可能である。
【０２６５】
外部サーバ９０１、並びに、端末装置９０４ａおよび９０４ｂのそれぞれが備える、ハードウェア構成および機能ブロックは、実施の形態１と同様（図８〜図１１参照）であるため、これらの図示および説明は省略する。
【０２６６】
つまり、端末装置９０４ａおよび９０４ｂのそれぞれは、依頼端末および協力端末として機能することができる。また、外部サーバ９０１は、協力端末から送信されたポート情報を依頼端末に転送する機能など、実施の形態１における外部サーバ４０１と同じ機能を備えている。
【０２６７】
また、端末装置９０４ａおよび９０４ｂ、並びに、外部サーバ９０１のそれぞれも、実施の形態１における端末装置４０５ａ等と同じく、集積回路によって実現することができる。
【０２６８】
また、ＩＳＰ−ＮＡＴ装置９０２、並びにＮＡＴ装置９０３ａおよび９０３ｂも、実施の形態１におけるＩＳＰ−ＮＡＴ装置４０３およびＮＡＴ装置４０４ａ等と同じく、ＮＡＴ機能を持つルータである。
【０２６９】
ここで、図２２に示す環境を例に、通信システム９００が備える各装置の処理の流れを説明する。
【０２７０】
図２２に示すように各装置に１つまたは２つのＩＰアドレスが割り当てられている環境を想定する。
【０２７１】
また、端末装置９０４ａであるＣＥ＿Ｘが、依頼端末として判定ＮＡＴ種別判定依頼パケットを送信する場合を想定し、以下の説明を行う。また、ＮＡＴ装置９０３ｂは自動ポートフォワード機能を有し、協力ＮＡＴ装置として動作する場合を想定する。つまり、この場合、端末装置９０４ｂ（ＣＥ＿Ｙ）は、協力端末として動作する。
【０２７２】
なお、端末装置９０４ａは、図９に示す、依頼端末として動作するための機能構成を有しており、端末装置９０４ｂは、図１０に示す、協力端末として動作するための機能構成を有している。また、外部サーバ９０１は、図１１に示す機能構成を有している。
【０２７３】
また、実施の形態２における通信システム９００においても、実施の形態１と同じく、各端末装置から外部サーバ９０１へのＮＡＴ情報の登録が行われる。しかし、この登録に係る処理フローは、実施の形態１の図１４に示される処理フローと同様であるため、図示および説明を省略する。
【０２７４】
図２３は、実施の形態２における依頼端末がＮＡＴ種別判定依頼を送信してからＮＡＴ種別の判定結果を受信するまでの通信シーケンスの一例を示す図である。
【０２７５】
図２３のＳ３５１では、依頼端末であるＣＥ＿Ｘは、外部サーバ９０１へ、ＮＡＴ装置９０３ａ（判定対象ＮＡＴ装置＿Ｘ）のＮＡＴ種別の判定を依頼するＮＡＴ種別判定依頼を送信する。
【０２７６】
外部サーバ９０１は、Ｓ３５２で当該ＮＡＴ種別判定依頼を受信することで、協力端末選択処理Ｓ３５３の実行に移行する。
【０２７７】
処理Ｓ３５３では、ＮＡＴ種別判定依頼を受信した外部サーバ９０１が、外部サーバ９０１が備えるＮＡＴ情報管理部７０６に格納されているＮＡＴ情報を参照することで、協力端末を１台選択する。
【０２７８】
このときの選択する基準は、実施の形態１と同様である。本例においては、ＣＥ＿Ｙのみが、基準を満たしており、ＣＥ＿Ｙのみが協力端末として選択される。
【０２７９】
Ｓ３５４では、上記Ｓ３５３が実行された後、外部サーバ９０１が選択した協力端末ＣＥ＿Ｙへ、判定協力依頼パケットが送信される。
【０２８０】
Ｓ３５５で判定協力依頼パケットを受信した端末装置ＣＥ＿Ｙは、協力端末として、Ｓ３５６およびＳ３５７を実行する。
【０２８１】
Ｓ３５６では、協力端末であるＣＥ＿Ｙが、直上にあるＮＡＴ装置９０３ｂ（協力ＮＡＴ装置＿Ｙ）に、ＵＰｎＰまたはＮＡＴ−ＰＭＰ等の機能を用いて、任意の２つのポートに自動ポートフォワード命令を送信する。協力端末ＣＥ＿Ｙは、自動ポートフォワード命令の実行後、Ｓ３５７を実行する。
【０２８２】
以下、協力端末ＣＥ＿Ｙは、協力ＮＡＴ装置＿Ｙへの自動ポートフォワード命令を、ポートｐとポートｑとに行った場合を想定し、説明を行う。
【０２８３】
Ｓ３５７では、協力端末ＣＥ＿Ｙが、上記Ｓ３５６で設定したポート番号情報と協力ＮＡＴ装置＿ＹのＷＡＮ側ＩＰアドレス情報とを、ポート情報として外部サーバ９０１へ送信する。
【０２８４】
外部サーバ９０１は、協力端末ＣＥ＿Ｙからのポート情報を受信すると、Ｓ３５８で、受信したポート情報を、依頼端末であるＣＥ＿Ｘへ送信する。
【０２８５】
なお。Ｓ３５７で協力端末ＣＥ＿Ｙから外部サーバ９０１へ送信されるポート情報には、協力ＮＡＴ装置＿ＹのＷＡＮ側ＩＰが含まれていなくてもよい。この場合、外部サーバ９０１は、協力ＮＡＴ装置＿ＹのＷＡＮ側ＩＰアドレスを、例えばＮＡＴ情報管理部７０６から取得して当該ポート情報に付与し、依頼端末ＣＥ＿Ｘに送信すればよい。
【０２８６】
処理Ｓ３６０ａおよびＳ３６０ｂでは、依頼端末ＣＥ＿Ｘと協力端末ＣＥ＿Ｙとの間で、判定対象ＮＡＴ装置＿Ｘの種別判定のための判定パケットが送受信される。
【０２８７】
依頼端末ＣＥ＿Ｘは、上記Ｓ３５７、Ｓ３５８、およびＳ３５９により、協力ＮＡＴ装置＿ＹのＷＡＮ側ＩＰアドレス（１９２．１６８．０．３）と自動マッピングされた２つのポート情報（ポートｐとポートｑ）とを得ている。そのため、依頼端末ＣＥ＿Ｘと協力端末ＣＥ＿Ｙとは相互に通信が行える。
【０２８８】
判定パケットの送受信によって行われるテストは、図１７Ａおよび図１７Ｄに示す２つのテスト（テストＡおよびテストＣ）を、任意の順番で行うことで実行される。なお、テストＡおよびテストＣの詳細は実施の形態１と同様であるためここでの説明は省略する。
【０２８９】
Ｓ３６１ａおよびＳ３６１ｂでは、上記Ｓ３６０ａおよびＳ３６０ｂで得られた、テストＡおよびテストＣの結果示す判定情報を、依頼端末ＣＥ＿Ｘと協力端末ＣＥ＿Ｙとが、外部サーバ９０１へ送信する。
【０２９０】
外部サーバ９０１は、Ｓ３６２で判定情報を受信することで、Ｓ３６３においてＮＡＴ種別の判定を実行する。
【０２９１】
なお、Ｓ３６２およびＳ３６３において、判定情報を受信しＮＡＴ種別の判定処理を実行する装置は、外部サーバ９０１でなくてもよい。依頼端末、協力端末、またはその他装置であっても、当該装置がＮＡＴ種別判定機能を有していれば、当該装置が判定情報を受信しＮＡＴ種別の判定処理を実行してもよい。
【０２９２】
Ｓ３６３では、Ｓ３６２で外部サーバ９０１が受信した判定情報を用いて、外部サーバ９０１のＮＡＴ種別判定部７０８が、判定対象ＮＡＴ装置＿ＸのＮＡＴ種別を判定する。ＮＡＴ種別の判定フローを図２４に示す。
【０２９３】
まず、ＮＡＴ種別判定部７０８は、テストＡの結果、応答があったか否かを判定し（Ｓ４０１）、応答がなかった場合（Ｓ４０１でＮ）、「（１）ＵＤＰをブロックするファイアウォールが存在している」と判定する。
【０２９４】
一方、応答が受信された場合（Ｓ４０１でＹ）、ＮＡＴ種別判定部７０８は、協力端末ＣＥ＿Ｙの受信した判定パケットの送信元ＩＰアドレスが、依頼端末ＣＥ＿ＸのＩＰアドレスと同一か否かを判定する（Ｓ４０２）。
【０２９５】
この判定の結果、これらＩＰアドレスが同一の場合（Ｓ４０２でＹ）、ＮＡＴ種別判定部７０８は、判定対象ＮＡＴ装置＿Ｘが、実際はＮＡＴ機能を有していないと判断し、「（２）アドレス変換をしないが、対称型ＮＡＴ装置のようにＵＤＰをブロックするファイアウォールが存在している」、または、「（３）ＮＡＴ機能なし」であると判定する。
【０２９６】
一方、Ｓ４０２において、協力端末ＣＥ＿Ｙの受信した判定パケットの送信元ＩＰアドレスが、依頼端末ＣＥ＿ＸのＩＰアドレスと同一でない（依頼端末ＣＥ＿ＸがＮＡＴ装置配下にある）場合（Ｓ４０２でＮ）、ＮＡＴ種別判定部７０８は、続いて、テストＣの結果から、協力端末ＣＥ＿Ｙからの応答があったか否かを判定する（Ｓ４０３）。
【０２９７】
この判定の結果、応答があった場合（Ｓ４０３でＹ）、ＮＡＴ種別判定部７０８は、ＮＡＴ種別を、「（４）完全  コーン型（Ｆｕｌｌ  Ｃｏｎｅ）」、または、「（６）制限付きコーン型（Ｒｅｓｔｒｉｃｔｅｄ  Ｃｏｎｅ）」であると判定する。
【０２９８】
一方、応答がなかった場合（Ｓ４０３でＮ）、ＮＡＴ種別判定部７０８は、ＮＡＴ種別を、「（５）対称型（Ｓｙｍｍｅｔｒｉｃ）」、もしくは「（７）ポート制限付きコーン型（Ｐｏｒｔ  Ｒｅｓｔｒｉｃｔｅｄ  Ｃｏｎｅ）」であると判定する。
【０２９９】
次に、図２３に示すＳ３６４では、外部サーバ９０１は、上記のＳ３６３で得られた判定対象ＮＡＴ装置＿ＸのＮＡＴ種別についての判定結果を、依頼端末ＣＥ＿Ｘに送信する。依頼端末ＣＥ＿Ｘは、Ｓ３６５で当該判定結果を受信する。
【０３００】
以上説明したように、実施の形態２における通信システム９００によれば、２段ＮＡＴ環境において、ＮＡＴ種別の判定の協力に適した端末装置が１台のみである場合であっても、下段ＮＡＴ装置のＮＡＴ種別の範囲を絞り込むことが可能となる。
【０３０１】
以上、本発明の通信装置、サーバ装置、通信システム、通信方法、および集積回路について、実施の形態１および２に基づいて説明した。しかしながら、本発明は、これらの実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものも、あるいは、上記説明された複数の構成要素を組み合わせて構築される形態も、本発明の範囲内に含まれる。
【０３０２】
例えば、上述のように、ＮＡＴ種別を判定する機能は、外部サーバ４０１（９０１）ではなく、例えば端末装置４０５ａ等の端末装置が備えてもよい。
【０３０３】
図２５は、実施の形態１または２における端末装置がＮＡＴ種別判定機能を備える場合の機能ブロックの一例を示す図である。
【０３０４】
図２５に示す端末装置４０５ａは、依頼端末として機能する装置であり、基本的な機能構成は、図９に示す機能構成と同じである。
【０３０５】
しかし、図２５に示す端末装置４０５ａは、判定結果取得部６１０ｂを備え、判定結果取得部６１０ｂは、判定情報受信部７０５とＮＡＴ種別判定部７０８とを有している。つまり、判定結果取得部６１０ｂは、図１１に示す判定部７１０を有している。
【０３０６】
判定情報受信部７０５およびＮＡＴ種別判定部７０８は、図１１の説明等で述べたように、判定情報を受信し、受信した判定情報からＮＡＴ種別の判定を行う処理部である。
【０３０７】
判定結果取得部６１０ｂが有する判定情報受信部７０５は、具体的には、協力端末（４０５ｂなど）から送信される判定情報を受信する。また、自端末の判定情報（判定パケットに対する応答があったか否かなど）は判定パケット送受信部６０４から取得する。
【０３０８】
判定結果取得部６１０ｂが有するＮＡＴ種別判定部７０８は、判定情報受信部７０５によって取得された協力端末および自端末からの判定情報を用いて、ＮＡＴ種別の判定処理を実行する。これにより、依頼端末である端末装置４０５ａは、判定対象ＮＡＴ装置あるＮＡＴ装置４０４ａのＮＡＴ種別を取得することができる。
【０３０９】
また、ＮＡＴ種別判定部７０８による判定結果は、例えば外部サーバ４０１に登録されることで、他の端末装置が当該判定結果を利用することができる。
【産業上の利用可能性】
【０３１０】
本発明に係る通信装置等によれば、多段ＮＡＴ環境下でも、各ＮＡＴ装置のＮＡＴ種別を個別に判定することが可能となる。その結果、多段ＮＡＴ環境で、ある端末装置がいかなる相手とのＰ２Ｐ通信を行う場合でも、個別にＮＡＴ装置のＮＡＴ種別を判定することができ、数あるＮＡＴ越え手法の中から、適切なＮＡＴ越え手法を選択することができる。そのため、本発明は、Ｐ２Ｐ通信時の接続性向上技術として有用である。
【０３１１】
また、本発明は、多段ＮＡＴ環境下において、ＮＡＴ越えができないために、Ｐ２Ｐ接続できない顧客へのサポートとして、ＮＡＴ越えにおいて問題となるＮＡＴ装置をピンポイントに提示することができる等の用途にも応用ができる。
【符号の説明】
【０３１２】
２０１、２０４、３０１    ＳＴＵＮサーバ
２０２、２０５、２０６、３０３、３０５、４０４ａ、４０４ｂ、４０４ｃ、９０３ａ、９０３ｂ    ＮＡＴ装置
２０３、２０７、３０４、３０６、４０５ａ、４０５ｂ、４０５ｃ、９０４ａ、９０４ｂ    端末装置
３０２、４０３、９０２    ＩＳＰ−ＮＡＴ装置
４００、９００    通信システム
４０１、９０１    外部サーバ
４０２    インターネット
５０１    ＣＰＵ
５０２    主記憶装置
５０３    通信制御装置
５０４    外部記憶装置
５０５    入力装置
５０６    出力装置
５０７    バス
６０１、６５１    ＮＡＴ情報登録部
６０２    ＮＡＴ種別判定依頼部
６０３    ポート情報受信部
６０４、６５５    判定パケット送受信部
６０５    判定情報送信部
６０６    判定結果受信部
６１０、６１０ｂ    判定結果取得部
６５２    判定協力依頼受信部
６５３    自動ポートフォワード命令部
６５４    ポート情報送信部
６５６    判定情報送信部
６５７    判定結果受信部
６５８    判定対象ＮＡＴ情報通知部
７０１    ＮＡＴ情報受信部
７０２    判定依頼受信部
７０３    判定協力依頼送信部
７０４    ポート情報送受信部
７０５    判定情報受信部
７０６    ＮＡＴ情報管理部
７０７    協力端末選択部
７０８    ＮＡＴ種別判定部
７０９    判定結果送信部
７１０    判定部
【図１】
2012019361.tif 000003
【図２】
2012019361.tif 000004
【図３Ａ】
2012019361.tif 000005
【図３Ｂ】
2012019361.tif 000006
【図３Ｃ】
2012019361.tif 000007
【図３Ｄ】
2012019361.tif 000008
【図４Ａ】
2012019361.tif 000009
【図４Ｂ】
2012019361.tif 000010
【図５】
2012019361.tif 000011
【図６】
2012019361.tif 000012
【図７】
2012019361.tif 000013
【図８】
2012019361.tif 000014
【図９】
2012019361.tif 000015
【図１０】
2012019361.tif 000016
【図１１】
2012019361.tif 000017
【図１２Ａ】
2012019361.tif 000018
【図１２Ｂ】
2012019361.tif 000019
【図１２Ｃ】
2012019361.tif 000020
【図１３】
2012019361.tif 000021
【図１４】
2012019361.tif 000022
【図１５】
2012019361.tif 000023
【図１６】
2012019361.tif 000024
【図１７Ａ】
2012019361.tif 000025
【図１７Ｂ】
2012019361.tif 000026
【図１７Ｃ】
2012019361.tif 000027
【図１７Ｄ】
2012019361.tif 000028
【図１８】
2012019361.tif 000029
【図１９】
2012019361.tif 000030
【図２０】
2012019361.tif 000031
【図２１】
2012019361.tif 000032
【図２２】
2012019361.tif 000033
【図２３】
2012019361.tif 000034
【図２４】
2012019361.tif 000035
【図２５】
2012019361.tif 000036