(57)【要約】【課題】通信処理装置に送信履歴を残すためのバブルパケットが送信された場合に、そのバブルパケットの通過した通信処理装置のポートであるバブルパケット送信ポートの位置を正確に検出する。【解決手段】通信処理装置２を介してバブルパケットを送信するバブルパケット送信部１２と、バブルパケット送信ポートの位置を検出するために用いられる検出用パケットを、通信処理装置２の種類に応じて、検出用パケットの通過した通信処理装置２のポートである検出用パケット送信ポートと、バブルパケット送信ポートとが同一となる、または異なるように通信処理装置２を介して送信する検出用パケット送信部１６と、検出用パケット送信ポートの位置に基づいて、バブルパケット送信ポートの位置を検出するバブルパケット送信ポート検出部２１と、を備える。【選択図】図２
2006261895.tif 000002
【特許請求の範囲】
【請求項１】
通信に関する処理を行う通信処理装置を介して通信を行う情報処理装置であって、
前記通信処理装置に送信履歴を残すためのパケットであるバブルパケットを、前記通信処理装置を介して送信するバブルパケット送信部と、
前記バブルパケットの送信で用いられる、前記通信処理装置のポートであるバブルパケット送信ポートの位置を検出するために用いられるパケットである検出用パケットを、前記通信処理装置の種類に応じて、前記検出用パケットの通過した前記通信処理装置のポートである検出用パケット送信ポートと、前記バブルパケット送信ポートとが同一となる、または異なるように前記通信処理装置を介して送信する検出用パケット送信部と、を備えた情報処理装置。
【請求項２】
前記バブルパケットの送信先に関する情報である送信先情報を受け付ける送信先情報受付部をさらに備え、
前記バブルパケット送信部は、前記送信先情報に基づいて、前記バブルパケットを送信する、請求項１記載の情報処理装置。
【請求項３】
前記通信処理装置の種類を判断するために用いられるパケットである種類判断パケットを、前記通信処理装置を介して送信する種類判断パケット送信部をさらに備えた、請求項１または２記載の情報処理装置。
【請求項４】
前記種類判断パケットの通過した前記通信処理装置のポートの位置を示す情報である種類判断ポート情報を受け付ける種類判断ポート情報受付部と、
前記種類判断ポート情報に基づいて、前記通信処理装置の種類を判断する種類判断部と、をさらに備え、
前記検出用パケット送信部は、前記種類判断部によって判断された前記通信処理装置の種類に応じて、前記検出用パケットの送信を行う、請求項３記載の情報処理装置。
【請求項５】
前記通信処理装置の種類を示す情報である種類情報を受け付ける種類情報受付部をさらに備え、
前記検出用パケット送信部は、前記種類情報の示す前記通信処理装置の種類に応じて、前記検出用パケットの送信を行う、請求項１から３のいずれか記載の情報処理装置。
【請求項６】
前記検出用パケットに基づいて検出されたバブルパケット送信ポートの位置を示す情報であるバブルパケット送信ポート情報を受け付けるバブルパケット送信ポート受付部と、
前記バブルパケット送信ポート情報を出力する出力部と、をさらに備えた、請求項１から５のいずれか記載の情報処理装置。
【請求項７】
前記検出用パケットの通過した前記通信処理装置のポートの位置を示す情報である検出用ポート情報を受け付ける検出用ポート情報受付部と、
前記通信処理装置の種類に応じて、前記検出用ポート情報に基づいて、前記バブルパケット送信ポートの位置を検出するバブルパケット送信ポート検出部と、
前記バブルパケット送信ポート検出部が検出したバブルパケット送信ポートの位置を示す情報であるバブルパケット送信ポート情報を出力する出力部と、をさらに備えた、請求項１から５のいずれか記載の情報処理装置。
【請求項８】
前記検出用パケット送信部は、
前記通信処理装置の種類がコーン系である場合には、少なくとも１個の検出用パケットの通過する前記通信処理装置のポートが前記バブルパケット送信ポートと同一となり、前記通信処理装置の種類がシンメトリック系である場合には、検出用パケットの通過する前記
通信処理装置のポートと、前記バブルパケット送信ポートとが異なるように前記検出用パケットを送信する、請求項１から７のいずれか記載の情報処理装置。
【請求項９】
前記検出用パケット送信部は、
前記通信処理装置の種類がコーン系である場合に、前記バブルパケットの送信の前、あるいは後に、前記情報処理装置における前記バブルパケットが送信されるポートと同じポートを用いて前記検出用パケットを送信する、請求項１から８のいずれか記載の情報処理装置。
【請求項１０】
前記検出用パケット送信部は、
前記通信処理装置の種類がポートリューズである場合に、前記検出用パケットを送信する前記情報処理装置のポート（第１のポート）の位置と、当該検出用パケットが通過した前記通信処理装置のポート（第２のポート）の位置とが一致するまで、それまでに前記検出用パケットの送信で用いた前記情報処理装置のポートとは異なるポートから前記検出用パケットを送信し、
前記バブルパケット送信部は、前記第１のポートの位置と前記第２のポートの位置とが一致した場合における前記第１のポートから前記バブルパケットを送信する、請求項１から９のいずれか記載の情報処理装置。
【請求項１１】
前記検出用パケット送信部は、
前記通信処理装置の種類がポートリューズである場合に、前記バブルパケットの送信の前、あるいは後に、前記情報処理装置における前記バブルパケットが送信されるポートと同じポートを用いて前記検出用パケットを送信する、請求項１から９のいずれか記載の情報処理装置。
【請求項１２】
前記検出用パケット送信部は、
前記バブルパケットの送信の前、及び送信の後に、それぞれ異なるポートから前記検出用パケット送信し、一方の検出用パケットを、前記バブルパケット送信部が前記バブルパケットを送信するポートと同じポートから送信する、請求項１から８のいずれか記載の情報処理装置。
【請求項１３】
前記検出用パケット送信部は、
前記通信処理装置の種類がシンメトリック系である場合に、前記バブルパケットの送信の前、及び送信の後に前記検出用パケットを送信する、請求項１から１１のいずれか記載の情報処理装置。
【請求項１４】
前記検出用パケット送信部は、
前記通信処理装置の種類がシンメトリック系である場合に、前記情報処理装置において新たに割り当てられたポートを用いて前記検出用パケットを送信する、請求項１３記載の情報処理装置。
【請求項１５】
前記バブルパケット送信部は、前記バブルパケット送信ポートの位置を検出できなかった場合に、前記バブルパケットを再度送信し、
前記検出用パケット送信部は、前記バブルパケット送信ポートの位置を検出できなかった場合に、前記検出用パケットを再度送信し、
再度送信された前記バブルパケット、及び前記検出用パケットは、前記通信処理装置における新たに割り当てられたポートを介して送信される、請求項１１から１４のいずれか記載の情報処理装置。
【請求項１６】
前記通信処理装置におけるポート幅を検出するためのパケットであるポート幅検出用パケ
ットを、前記通信処理装置を介して送信するポート幅検出用パケット送信部をさらに備え、
当該ポート幅検出用パケットの通過した前記通信処理装置のポートの位置に基づいて検出された前記通信処理装置のポート幅を用いて、前記バブルパケット送信ポートの位置が検出される、請求項１から１５のいずれか記載の情報処理装置。
【請求項１７】
請求項１記載の情報処理装置から送信された検出用パケットの通過した前記通信処理装置のポートの位置を示す情報である検出用ポート情報を受け付ける検出用ポート情報受付部と、
前記通信処理装置の種類に応じて、前記検出用ポート情報に基づいて前記バブルパケット送信ポートの位置を検出するバブルパケット送信ポート検出部と、を備えたポート検出装置。
【請求項１８】
前記バブルパケット送信ポート検出部が検出したバブルパケット送信ポートの位置を示す情報であるバブルパケット送信ポート情報を出力する出力部をさらに備えた請求項１７記載のポート検出装置。
【請求項１９】
通信に関する処理を行う通信処理装置を介して通信を行う情報処理方法であって、
前記通信処理装置に送信履歴を残すためのパケットであるバブルパケットを、前記通信処理装置を介して送信するバブルパケット送信ステップと、
前記バブルパケットの送信で用いられる、前記通信処理装置のポートであるバブルパケット送信ポートの位置を検出するために用いられるパケットである検出用パケットを、前記通信処理装置の種類に応じて、前記検出用パケットの通過した前記通信処理装置のポートである検出用パケット送信ポートと、前記バブルパケット送信ポートとが同一となる、または異なるように前記通信処理装置を介して送信する検出用パケット送信ステップと、を備えた情報処理方法。
【請求項２０】
請求項１９記載の情報処理方法によって送信された検出用パケットの通過した前記通信処理装置のポートの位置を示す情報である検出用ポート情報を受け付ける検出用ポート情報受付ステップと、
前記通信処理装置の種類に応じて、前記検出用ポート情報に基づいて前記バブルパケット送信ポートの位置を検出するバブルパケット送信ポート検出ステップと、を備えたポート検出方法。
【請求項２１】
コンピュータに、
通信に関する処理を行う通信処理装置を介した通信を実行させるためのプログラムであって、
前記通信処理装置に送信履歴を残すためのパケットであるバブルパケットを、前記通信処理装置を介して送信するバブルパケット送信ステップと、
前記バブルパケットの送信で用いられる、前記通信処理装置のポートであるバブルパケット送信ポートの位置を検出するために用いられるパケットである検出用パケットを、前記通信処理装置の種類に応じて、前記検出用パケットの通過した前記通信処理装置のポートである検出用パケット送信ポートと、前記バブルパケット送信ポートとが同一となる、または異なるように前記通信処理装置を介して送信する検出用パケット送信ステップと、を実行させるためのプログラム。
【請求項２２】
コンピュータに、
請求項１９記載の情報処理方法によって送信された検出用パケットの通過した前記通信処理装置のポートの位置を示す情報である検出用ポート情報を受け付ける検出用ポート情報受付ステップと、
前記通信処理装置の種類に応じて、前記検出用ポート情報に基づいて前記バブルパケット送信ポートの位置を検出するバブルパケット送信ポート検出ステップと、を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットを送信する情報処理装置等に関する。
【背景技術】
【０００２】
パケットの通信において、ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）機能を有する通信処理装置が用いられることがある。その通信処理装置は、例えば、ルータと呼ばれるものである。
【０００３】
まず、そのＮＡＴの分類について説明する。ＮＡＴには、送信ポート割り当てルールと受信フィルタルールがあり、その組み合わせによりＮＡＴの分類がなされる。送信ポート割り当てルールには、パケットの宛先（ＩＰアドレス、ポート）に依存せず、ＮＡＴのローカル側（たとえば、ＬＡＮ側）の情報処理装置のポートとＩＰアドレスが同じであれば、ＮＡＴに割り当てられるグローバル側（たとえば、インターネットなどのＷＡＮ側）のポートが同一となるＣｏｎｅ（コーン）タイプと、パケットの宛先アドレスごとに新しいポートが割り当てられるＡｄｄｒｅｓｓ  Ｓｅｎｓｉｔｉｖｅ（アドレスセンシティブ）タイプと、パケットの宛先ポートごとに新しいポートが割り当てられるＰｏｒｔ  Ｓｅｎｓｉｔｉｖｅ（ポートセンシティブ）タイプと、送信元のポートと同一のポートを割り当てるＰｏｒｔ  Ｒｅｕｓｅ（ポートリューズ）タイプとがある。
【０００４】
ＮＡＴのローカル側からパケットが送信されたポートに対してグローバル側からのパケットの受信可能性を判断する受信フィルタルールには、そのポートからパケットを送信したアドレスからのみしかパケットを受信しないＡｄｄｒｅｓｓ  Ｓｅｎｓｉｔｉｖｅフィルタと、そのポートからパケットを送信したポートからのみしかパケットを受信しないＰｏｒｔ  Ｓｅｎｓｉｔｉｖｅフィルタと、フィルタが存在しないＮｏフィルタがある。これらの送信ポート割り当てルールと、受信フィルタルールとを組み合わせることにより、各種のＮＡＴが構成されることになる。
【０００５】
このようなＮＡＴを用いた通信において、図３８で示されるようなＰＣ１とＰＣ２との間でのサーバを介さない通信を確立する場合について考えられてきている（例えば、特許文献１、非特許文献１参照）。
【特許文献１】特開２００４−１８０００３号公報（第１頁、第１図等）
【非特許文献１】Ｊ．Ｒｏｓｅｎｂｅｒｇ、Ｊ．Ｗｅｉｎｂｅｒｇｅｒ、Ｃ．Ｈｕｉｔｅｍａ、Ｒ．Ｍａｈｙ、「ＳＴＵＮ  −  Ｓｉｍｐｌｅ  Ｔｒａｖｅｒｓａｌ  ｏｆ  Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ（ＵＤＰ）  Ｔｈｒｏｕｇｈ  Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｏｒｓ（ＮＡＴｓ）」、［Ｏｎｌｉｎｅ］、２００３年３月、Ｎｅｔｗｏｒｋ  Ｗｏｒｋｉｎｇ  Ｇｒｏｕｐ  Ｒｅｑｕｅｓｔ  ｆｏｒ  Ｃｏｍｍｅｎｔｓ：３４８９、［２００５年３月９日検索］、インターネット<ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｉｅｔｆ．ｏｒｇ／ｒｆｃ／ｒｆｃ３４８９．ｔｘｔ>
【発明の開示】
【発明が解決しようとする課題】
【０００６】
図３８で示されるように、ＰＣ１がＮＡＴ１を介してＰＣ２と通信を行う場合には、まず、ＮＡＴ１のローカル側からグローバル側にパケット（以下、「バブルパケット」と呼ぶ）を送信し、そのバブルパケットの通過した、ＮＡＴ１のグローバル側のポートに、ＰＣ２からパケットを送信することによって、ＰＣ１と、ＰＣ２とは通信を行うことができうる。したがって、ＰＣ１から送信されたバブルパケットの通過したＮＡＴ１のポートの位置を正確に検出できることが大切である。
【０００７】
しかしながら、上述の特許文献１、非特許文献１に記載された方法を用いても、バブルパケットの通過したＮＡＴのポートの位置を正確に検出できない場合がある。送信ポート割り当てルールがコーンタイプのＮＡＴでは、使用されなくなったポート番号をＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）でキューイングしておき、そのキューイングしているポート番号を新たなポート割り当てを行うときに用いるものもある。そのような場合には、ポート番号が番号順に割り当てられないため、例えば、上記特許文献１で開示されている方法を用いると、バブルパケットの通過したＮＡＴのポートの位置を正確に検出することはできない。一方、送信ポート割り当てルールがアドレスセンシティブタイプ、あるいは、ポートセンシティブタイプのＮＡＴでは、バブルパケットが通過したＮＡＴのポートの位置を、上記非特許文献１で開示されている方法で検出することはできない。
【０００８】
本発明は、上記問題点を解決するためになされたものであり、送信ポート割り当てルールを有する通信処理装置を介してバブルパケットが送信された場合に、そのバブルパケットの通過した通信処理装置のポートの位置を正確に検出することができる情報処理装置等を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明による情報処理装置は、通信に関する処理を行う通信処理装置を介して通信を行う情報処理装置であって、前記通信処理装置に送信履歴を残すためのパケットであるバブルパケットを、前記通信処理装置を介して送信するバブルパケット送信部と、前記バブルパケットの送信で用いられる、前記通信処理装置のポートであるバブルパケット送信ポートの位置を検出するために用いられるパケットである検出用パケットを、前記通信処理装置の種類に応じて、前記検出用パケットの通過した前記通信処理装置のポートである検出用パケット送信ポートと、前記バブルパケット送信ポートとが同一となる、または異なるように前記通信処理装置を介して送信する検出用パケット送信部と、を備えたものである。
【００１０】
このような構成により、情報処理装置から送信された検出用パケットの通過した通信処理装置のポートの位置を用いることにより、通信処理装置の種類に関わらず、バブルパケット送信ポートの位置を正確に検出することができうる。その結果、そのバブルパケット送信ポートの位置を用いて、情報処理装置と他の装置との通信を確実に確立することができうる。
【００１１】
また、本発明による情報処理装置では、前記バブルパケットの送信先に関する情報である送信先情報を受け付ける送信先情報受付部をさらに備え、前記バブルパケット送信部が、前記送信先情報に基づいて、前記バブルパケットを送信してもよい。
【００１２】
このような構成により、送信先情報によって、バブルパケット送信ポートの送信先を指定することができうる。例えば、通信処理装置が所定の受信フィルタルールを採用している場合には、バブルパケットの送信先のポートからバブルパケット送信ポートに送信されたパケットのみが、通信処理装置を介して情報処理装置に送信されることもある。そのような場合であっても、送信先情報によってバブルパケットの送信先を指定することができれば、情報処理装置と、他の装置との通信をより確実に確立することができうる。
【００１３】
また、本発明による情報処理装置では、前記通信処理装置の種類を判断するために用いられるパケットである種類判断パケットを、前記通信処理装置を介して送信する種類判断パケット送信部をさらに備えてもよい。
このような構成により、その種類判断パケットの通過した通信処理装置のポートの位置を用いることによって、通信処理装置の種類を判断することができうる。そして、その判
断結果である通信処理装置の種類を、例えば、検出用パケットの送信、またはバブルパケット送信ポートの位置の検出等に用いることができうる。
【００１４】
また、本発明による情報処理装置では、前記種類判断パケットの通過した前記通信処理装置のポートの位置を示す情報である種類判断ポート情報を受け付ける種類判断ポート情報受付部と、前記種類判断ポート情報に基づいて、前記通信処理装置の種類を判断する種類判断部と、をさらに備え、前記検出用パケット送信部が、前記種類判断部によって判断された前記通信処理装置の種類に応じて、前記検出用パケットの送信を行ってもよい。
このような構成により、種類判断パケットを用いて、通信処理装置の種類を情報処理装置において判断することができる。また、その判断結果を用いて、検出用パケットを適切に送信することができうる。
【００１５】
また、本発明による情報処理装置では、前記通信処理装置の種類を示す情報である種類情報を受け付ける種類情報受付部をさらに備え、前記検出用パケット送信部が、前記種類情報の示す前記通信処理装置の種類に応じて、前記検出用パケットの送信を行ってもよい。
このような構成により、種類情報受付部が受け付けた種類情報に応じて、検出用パケットを適切に送信することができる。その結果、バブルパケット送信ポートの位置の検出を的確に行うことができうる。
【００１６】
また、本発明による情報処理装置では、前記検出用パケットに基づいて検出されたバブルパケット送信ポートの位置を示す情報であるバブルパケット送信ポート情報を受け付けるバブルパケット送信ポート受付部と、前記バブルパケット送信ポート情報を出力する出力部と、をさらに備えてもよい。
【００１７】
このような構成により、バブルパケット送信ポート受付部が受け付けたバブルパケット送信ポート情報を、例えば、情報処理装置と通信を行う他の装置に送信することができ、他の装置と情報処理装置との間の通信を確立することができうる。
【００１８】
また、本発明による情報処理装置では、前記検出用パケットの通過した前記通信処理装置のポートの位置を示す情報である検出用ポート情報を受け付ける検出用ポート情報受付部と、前記通信処理装置の種類に応じて、前記検出用ポート情報に基づいて、前記バブルパケット送信ポートの位置を検出するバブルパケット送信ポート検出部と、前記バブルパケット送信ポート検出部が検出したバブルパケット送信ポートの位置を示す情報であるバブルパケット送信ポート情報を出力する出力部と、をさらに備えてもよい。
【００１９】
このような構成により、検出用パケットの通過した通信処理装置のポートの位置に基づいて、バブルパケット送信ポートの位置を検出することができる。また、その検出されたバブルパケット送信ポートの位置を示すバブルパケット送信ポート情報を、例えば、情報処理装置と通信を行う他の装置に送信することによって、他の装置と情報処理装置との間の通信を確立することができうる。
【００２０】
また、本発明による情報処理装置では、前記検出用パケット送信部が、前記通信処理装置の種類がコーン系である場合に、前記バブルパケットの送信の前、あるいは後に、前記情報処理装置における前記バブルパケットが送信されるポートと同じポートを用いて前記検出用パケットを送信してもよい。
【００２１】
このような構成により、通信処理装置の種類がコーン系である場合に、検出用パケットがバブルパケット送信ポートを通過することになる。したがって、検出用パケット送信ポートの位置を検出することによって、バブルパケット送信ポートの位置を検出することが
できるようになる。
【００２２】
また、本発明による情報処理装置では、前記検出用パケット送信部が、前記通信処理装置の種類がポートリューズである場合に、前記検出用パケットを送信する前記情報処理装置のポート（第１のポート）の位置と、当該検出用パケットが通過した前記通信処理装置のポート（第２のポート）の位置とが一致するまで、それまでに前記検出用パケットの送信で用いた前記情報処理装置のポートとは異なるポートから前記検出用パケットを送信し、前記バブルパケット送信部は、前記第１のポートの位置と前記第２のポートの位置とが一致した場合における前記第１のポートから前記バブルパケットを送信してもよい。
【００２３】
このような構成により、通信処理装置の種類がポートリューズである場合に、検出用パケットがバブルパケット送信ポートを通過することになる。また、その検出用パケットとして、第１のポートと第２のポートとが一致している検出用パケットを用いることができるため、検出用パケット送信ポートの位置を検出することによって、バブルパケット送信ポートの位置を的確に検出することができるようになる。
【００２４】
また、本発明による情報処理装置では、前記検出用パケット送信部が、前記通信処理装置の種類がポートリューズである場合に、前記バブルパケットの送信の前、あるいは後に、前記情報処理装置における前記バブルパケットが送信されるポートと同じポートを用いて前記検出用パケットを送信してもよい。
【００２５】
このような構成により、通信処理装置の種類がポートリューズである場合に、検出用パケットがバブルパケット送信ポートを通過することになる。したがって、検出用パケット送信ポートの位置を検出することによって、バブルパケット送信ポートの位置を検出することができるようになる。
【００２６】
また、本発明による情報処理装置では、前記検出用パケット送信部が、前記バブルパケットの送信の前、及び送信の後に、それぞれ異なるポートから前記検出用パケット送信し、一方の検出用パケットを、前記バブルパケット送信部が前記バブルパケットを送信するポートと同じポートから送信してもよい。
【００２７】
このような構成により、通信処理装置の種類に応じて検出用パケットの送信方法を変更することなく、通信処理装置の種類に応じて、検出用パケット送信ポートと、バブルパケット送信ポートとが同一となる、または異なるようにすることができる。このように、通信処理装置の種類に応じて検出用パケットの送信方法を変更する必要がないため、検出用パケットを送信するシーケンスを簡略化することができうる。
【００２８】
また、本発明による情報処理装置では、前記検出用パケット送信部が、前記通信処理装置の種類がシンメトリック系である場合に、前記バブルパケットの送信の前、及び送信の後に前記検出用パケットを送信してもよい。
【００２９】
このような構成により、通信処理装置の種類がシンメトリック系である場合に、バブルパケット送信ポートの２個の検出用パケット送信ポートではさむようにすることができる。その結果、２個の検出用パケット送信ポートの位置を検出することにより、バブルパケット送信ポートの位置を検出することができうる。
【００３０】
また、本発明による情報処理装置では、前記バブルパケット送信部は、前記バブルパケット送信ポートの位置を検出できなかった場合に、前記バブルパケットを再度送信し、前記検出用パケット送信部は、前記バブルパケット送信ポートの位置を検出できなかった場合に、前記検出用パケットを再度送信し、再度送信された前記バブルパケット、及び前記
検出用パケットは、前記通信処理装置における新たに割り当てられたポートを介して送信されてもよい。
このような構成により、バブルパケット、及び検出用パケットの送信を繰り返すことによって、確実にバブルパケット送信ポートの位置を検出することができるようになる。
【００３１】
また、本発明による情報処理装置では、前記通信処理装置におけるポート幅を検出するためのパケットであるポート幅検出用パケットを、前記通信処理装置を介して送信するポート幅検出用パケット送信部をさらに備え、当該ポート幅検出用パケットの通過した前記通信処理装置のポートの位置に基づいて検出された前記通信処理装置のポート幅を用いて、前記バブルパケット送信ポートの位置が検出されてもよい。
【００３２】
このような構成により、情報処理装置から送信されたポート幅検出用パケットの通過した通信処理装置のポートの位置を検出することにより、通信処理装置のポート幅を検出しうることになる。また、その通信処理装置のポート幅を用いることによって、バブルパケット送信ポートの位置の検出を行うことができるようになる。
【００３３】
本発明によるポート検出装置は、前記情報処理装置から送信された検出用パケットの通過した前記通信処理装置のポートの位置を示す情報である検出用ポート情報を受け付ける検出用ポート情報受付部と、前記通信処理装置の種類に応じて、前記検出用ポート情報に基づいて前記バブルパケット送信ポートの位置を検出するバブルパケット送信ポート検出部と、を備えたものである。
【００３４】
このような構成により、ポート検出装置において、バブルパケット送信ポートの位置を検出することができる。そして、その検出されたバブルパケット送信ポートの位置を用いることによって、情報処理装置と、他の装置との間の通信を確立することができうる。
【発明の効果】
【００３５】
本発明による情報処理装置等によれば、バブルパケットの通過した通信処理装置のポートの位置を、通信処理装置の送信ポート割り当てルールに関わらず、的確に検出することができうる。
【発明を実施するための最良の形態】
【００３６】
以下、本発明による情報処理装置等について、実施の形態を用いて説明する。なお、以下の実施の形態において、同じ符号を付した構成要素及びステップは同一または相当するものであり、再度の説明を省略することがある。
【００３７】
（実施の形態１）
本発明の実施の形態１による情報処理システム等について、図面を参照しながら説明する。
図１は、本実施の形態による情報処理システムの構成を示す図である。図１において、本実施の形態による情報処理システムは、通信処理装置２と、情報処理装置１０と、情報処理装置３０と、第１のサーバ４０と、第２のサーバ５０と、リレーサーバ６０とを備える。通信処理装置２、情報処理装置３０、第１のサーバ４０、第２のサーバ５０、リレーサーバ６０は、それぞれ有線または無線の通信回線１を介して接続されている。ここで、通信回線１は、例えば、インターネットやイントラネット、公衆電話回線網などである。
【００３８】
通信処理装置２は、情報処理装置１０と、情報処理装置３０や、第１のサーバ４０、第２のサーバ５０、リレーサーバ６０との間の通信に関する処理を行う。通信処理装置２は、アドレス変換を行うＮＡＴ機能を有する装置である。
【００３９】
ここで、以下の説明において、通信処理装置２がコーンタイプの送信ポート割り当てルールを有する場合に、通信処理装置２の種類がコーン系であるということにする。また、通信処理装置２がアドレスセンシティブタイプの送信ポート割り当てルールを有する場合、及び通信処理装置２がポートセンシティブタイプの送信ポート割り当てルールを有する場合に、通信処理装置２の種類がシンメトリック系であるということにする。また、通信処理装置２がポートリューズタイプの送信ポート割り当てルールを有する場合に、通信処理装置２の種類がポートリューズであるということにする。すなわち、通信処理装置２の種類は、通信処理装置２の送信ポート割り当てルールに応じて判断されるものとする。
【００４０】
図２は、本実施の形態による情報処理装置１０の構成を示すブロック図である。図２において、本実施の形態による情報処理装置１０は、送信先情報受付部１１と、バブルパケット送信部１２と、種類判断パケット送信部１３と、種類判断ポート情報受付部１４と、種類判断部１５と、検出用パケット送信部１６と、ポート幅検出用パケット送信部１７と、ポート幅検出用ポート情報受付部１８と、ポート幅検出部１９と、検出用ポート情報受付部２０と、バブルパケット送信ポート検出部２１と、出力部２２と、通信部２３とを備える。
【００４１】
送信先情報受付部１１は、後述するバブルパケットの送信先に関する情報である送信先情報を受け付ける。送信先情報は、例えば、バブルパケットの送信先のアドレスを示す情報を含んでもよく、バブルパケットの送信先のポートの位置を示す情報を含んでもよく、あるいは、バブルパケットの送信先のポートの基準となるポートの位置を示す情報を含んでもよい。ここで、バブルパケットの送信先のポートの基準となるポートとは、例えば、その基準となるポートのポート番号に１０を足したポート番号がバブルパケットの送信先のポートとなるような場合である。送信先情報受付部１１は、例えば、入力デバイス（例えば、キーボードやマウス、タッチパネルなど）から入力された送信先情報を受け付けてもよく、有線もしくは無線の通信回線を介して送信された送信先情報を受信してもよく、所定の記録媒体（例えば、光ディスクや磁気ディスク、半導体メモリなど）から読み出された送信先情報を受け付けてもよい。本実施の形態では、送信先情報受付部１１は、通信回線を介して送信された送信先情報を受信するものとする。なお、送信先情報受付部１１は、受け付けを行うためのデバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい。また、送信先情報受付部１１は、ハードウェアによって実現されてもよく、あるいは所定のデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【００４２】
バブルパケット送信部１２は、通信処理装置２を介してバブルパケットを送信する。ここで、バブルパケットとは、通信処理装置２に送信履歴を残すためのパケットである。すなわち、バブルパケットによって通信処理装置２に送信履歴が残されることにより、情報処理装置１０は、情報処理装置３０から、そのバブルパケットの通過した通信処理装置２のポートに送信されたパケットを受信することができるようになる。このバブルパケットのペイロードには、何らかの情報が含まれていてもよく、何も情報が含まれていなくてもよい。また、バブルパケットは、例えば、ＵＤＰのパケットであってもよい。バブルパケット送信部１２は、送信先情報受付部１１が受け付けた送信先情報に基づいて、バブルパケットを送信する。バブルパケット送信部１２は、例えば、送信先情報が示すアドレス、ポートの位置にバブルパケットを送信してもよく、あるいは、送信先情報が示すポートの位置から所定の間隔だけ離れたポートの位置にバブルパケットを送信してもよい。バブルパケット送信部１２は、バブルパケット送信ポートの位置を検出できなかった場合に、バブルパケットを再度送信してもよい。例えば、後述するバブルパケット送信ポート検出部２１においてバブルパケット送信ポートの位置を検出できなかった場合に、バブルパケット送信部１２は、再度、バブルパケットを送信してもよい。なお、バブルパケット送信部１２は、送信を行うための送信デバイス（例えば、モデムやネットワークカードなど）を
含んでもよく、あるいは含まなくてもよい（この場合には、バブルパケット送信部１２と通信処理装置２との間に図示しない送信デバイスが存在することとなる）。また、バブルパケット送信部１２は、ハードウェアによって実現されてもよく、あるいは送信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【００４３】
種類判断パケット送信部１３は、通信処理装置２を介して種類判断パケットを送信する。ここで、種類判断パケットとは、通信処理装置２の種類を判断するために用いられるパケットである。種類判断パケットの送信方法、及びその種類判断パケットを用いた通信処理装置２の種類を判断する方法などについては、後述する。この種類判断パケットのペイロードには、何らかの情報が含まれていてもよく、何も情報が含まれていなくてもよい。また、種類判断パケットは、例えば、ＵＤＰのパケットであってもよく、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）のパケットであってもよい。なお、種類判断パケット送信部１３は、送信を行うための送信デバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい（この場合には、種類判断パケット送信部１３と通信処理装置２との間に図示しない送信デバイスが存在することとなる）。また、種類判断パケット送信部１３は、ハードウェアによって実現されてもよく、あるいは送信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【００４４】
種類判断ポート情報受付部１４は、種類判断ポート情報を受け付ける。ここで、種類判断ポート情報とは、種類判断パケット送信部１３が送信した種類判断パケットの通過した通信処理装置２のポートの位置を示す情報である。そのポートの位置は、例えば、ポート番号によって示される。種類判断ポート情報受付部１４は、例えば、入力デバイス（例えば、キーボードやマウス、タッチパネルなど）から入力された種類判断ポート情報を受け付けてもよく、有線もしくは無線の通信回線を介して送信された種類判断ポート情報を受信してもよく、所定の記録媒体（例えば、光ディスクや磁気ディスク、半導体メモリなど）から読み出された種類判断ポート情報を受け付けてもよい。本実施の形態では、種類判断ポート情報受付部１４は、通信回線を介して送信された種類判断ポート情報を受信するものとする。なお、種類判断ポート情報受付部１４は、受け付けを行うためのデバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい。また、種類判断ポート情報受付部１４は、ハードウェアによって実現されてもよく、あるいは、所定のデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
種類判断部１５は、種類判断ポート情報受付部１４が受け付けた種類判断ポート情報に基づいて、通信処理装置２の種類を判断する。この判断方法については、後述する。
【００４５】
検出用パケット送信部１６は、通信処理装置２を介して検出用パケットを送信する。ここで、検出用パケットとは、バブルパケット送信ポートの位置を検出するために用いられるパケットである。また、バブルパケット送信ポートとは、バブルパケットの送信で用いられる、通信処理装置２のポートである。すなわち、バブルパケットの通過した通信処理装置２のポートがバブルパケット送信ポートである。検出用パケット送信部１６は、検出用パケットを、通信処理装置２の種類に応じて、検出用パケット送信ポートと、バブルパケット送信ポートとが同一となる、または異なるように送信する。ここで、検出用パケット送信ポートとは、検出用パケットの通過した通信処理装置２のポートである。また、「通信処理装置２の種類に応じて、検出用パケット送信ポートと、バブルパケット送信ポートとが同一となる、または異なる」のは、検出用パケット送信部１６が通信処理装置２の種類に応じて検出用パケットの送信方法を変更することによって実現されてもよく、あるいは、検出用パケット送信部１６は、通信処理装置２の種類に関わらず同じように検出用パケットを送信するが、結果として、そのことが実現されてもよい。検出用パケット送信部１６は、検出用パケットをバブルパケット送信ポートの位置の検出で用いる第１のサー
バ４０、及び第２のサーバ５０に送信する。具体的な送信方法については後述する。検出用パケット送信部１６は、バブルパケット送信ポートの位置を検出できなかった場合に、検出用パケットを再度送信してもよい。例えば、後述するバブルパケット送信ポート検出部２１においてバブルパケット送信ポートの位置を検出できなかった場合に、検出用パケット送信部１６は、再度、検出用パケットを送信してもよい。この検出用パケットのペイロードには、何らかの情報が含まれていてもよく、何も情報が含まれていなくてもよい。また、検出用パケットは、例えば、ＵＤＰのパケットであってもよく、ＴＣＰのパケットであってもよい。なお、検出用パケット送信部１６は、送信を行うための送信デバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい（この場合には、検出用パケット送信部１６と通信処理装置２との間に図示しない送信デバイスが存在することとなる）。また、検出用パケット送信部１６は、ハードウェアによって実現されてもよく、あるいは送信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【００４６】
ポート幅検出用パケット送信部１７は、通信処理装置２を介してポート幅検出用パケットを送信する。ここで、ポート幅検出用パケットとは、通信処理装置２におけるポート幅を検出するためのパケットである。すなわち、ポート幅検出用パケットの通過した通信処理装置２のポートの位置に基づいて、通信処理装置２のポート幅が検出される。その検出された通信処理装置２のポート幅は、後述するように、バブルパケット送信ポートの位置の検出において用いられる。通信処理装置２のポート幅とは、通信処理装置２において連続して使用される、すなわち、通信処理装置２において連続して割り当てられるポートの幅（間隔）のことである。例えば、ポートの位置がポート番号によって示される場合に、ポート幅が「１」であるとは、ポート番号「２００００」のポートの次に割り当てられるポートが、ポート番号「２０００１」のポートであることを示している。また、ポート幅が「２」であるとは、ポート番号「２００００」のポートの次に割り当てられるポートが、ポート番号「２０００２」のポートであることを示している。このポート幅検出用パケットのペイロードには、何らかの情報が含まれていてもよく、何も情報が含まれていなくてもよい。また、ポート幅検出用パケットは、例えば、ＵＤＰのパケットであってもよく、ＴＣＰのパケットであってもよい。なお、ポート幅検出用パケット送信部１７は、送信を行うための送信デバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい（この場合には、ポート幅検出用パケット送信部１７と通信処理装置２との間に図示しない送信デバイスが存在することとなる）。また、ポート幅検出用パケット送信部１７は、ハードウェアによって実現されてもよく、あるいは送信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【００４７】
ポート幅検出用ポート情報受付部１８は、ポート幅検出用ポート情報を受け付ける。ここで、ポート幅検出用ポート情報とは、ポート幅検出用パケット送信部１７が送信したポート幅検出用パケットの通過した通信処理装置２のポートの位置を示す情報である。そのポートの位置は、例えば、ポート番号によって示される。ポート幅検出用ポート情報受付部１８は、例えば、入力デバイス（例えば、キーボードやマウス、タッチパネルなど）から入力されたポート幅検出用ポート情報を受け付けてもよく、有線もしくは無線の通信回線を介して送信されたポート幅検出用ポート情報を受信してもよく、所定の記録媒体（例えば、光ディスクや磁気ディスク、半導体メモリなど）から読み出されたポート幅検出用ポート情報を受け付けてもよい。本実施の形態では、ポート幅検出用ポート情報受付部１８は、通信回線を介して送信されたポート幅検出用ポート情報を受信するものとする。なお、ポート幅検出用ポート情報受付部１８は、受け付けを行うためのデバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい。また、ポート幅検出用ポート情報受付部１８は、ハードウェアによって実現されてもよく、あるいは所定のデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【００４８】
ポート幅検出部１９は、ポート幅検出用ポート情報受付部１８が受け付けたポート幅検出用ポート情報に基づいて、通信処理装置２のポート幅を検出する。この検出方法については、後述する。
検出用ポート情報受付部２０は、検出用ポート情報を受け付ける。ここで、検出用ポート情報とは、検出用パケット送信部１６が送信した検出用パケットの通過した通信処理装置２のポートの位置を示す情報である。そのポートの位置は、例えば、ポート番号によって示される。検出用ポート情報受付部２０は、例えば、入力デバイス（例えば、キーボードやマウス、タッチパネルなど）から入力された検出用ポート情報を受け付けてもよく、有線もしくは無線の通信回線を介して送信された検出用ポート情報を受信してもよく、所定の記録媒体（例えば、光ディスクや磁気ディスク、半導体メモリなど）から読み出された検出用ポート情報を受け付けてもよい。本実施の形態では、検出用ポート情報受付部２０は、通信回線を介して送信された検出用ポート情報を受信するものとする。なお、検出用ポート情報受付部２０は、受け付けを行うためのデバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい。また、検出用ポート情報受付部２０は、ハードウェアによって実現されてもよく、あるいは所定のデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【００４９】
バブルパケット送信ポート検出部２１は、検出用ポート情報受付部２０が受け付けた検出用ポート情報に基づいて、バブルパケット送信ポートの位置を検出する。バブルパケット送信ポート検出部２１は、通信処理装置２の種類に応じて、そのバブルパケット送信ポートの位置の検出を行う。ここで、「通信処理装置２の種類に応じて、そのバブルパケット送信ポートの位置を検出する」とは、通信処理装置２の種類に応じて、結果として、バブルパケット送信ポートの位置を検出する方法が異なる場合をも含むものである。したがって、バブルパケット送信ポート検出部２１は、通信処理装置２の種類に応じて、バブルパケットの送信ポートの位置の検出方法を変更してもよく、あるいは、他の要因に基づいて、バブルパケットの送信ポートの位置の検出方法を変更してもよい。バブルパケット送信ポートの検出の具体的な方法については、後述する。
【００５０】
出力部２２は、バブルパケット送信ポート情報を出力する。ここで、バブルパケット送信ポート情報とは、バブルパケット送信ポート検出部２１が検出したバブルパケット送信ポートの位置を示す情報である。ここで、この出力は、例えば、表示デバイス（例えば、ＣＲＴや液晶ディスプレイなど）への表示でもよく、所定の機器への通信回線を介した送信でもよく、プリンタによる印刷でもよく、スピーカによる音声出力でもよく、記録媒体への蓄積でもよい。本実施の形態では、出力部２２は、バブルパケット送信ポート情報を、リレーサーバ６０を介して情報処理装置３０に送信するものとする。なお、出力部２２は、出力を行うデバイス（例えば、表示デバイスやプリンタなど）を含んでもよく、あるいは含まなくてもよい。また、出力部２２は、ハードウェアによって実現されてもよく、あるいは、それらのデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【００５１】
通信部２３は、情報処理装置１０と、情報処理装置３０との間で、リレーサーバ６０を介さないピアー・ツー・ピアー（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ）通信（以下、「Ｐ２Ｐ通信」と略することもある）が確立された場合に、そのＰ２Ｐ通信によって、情報処理装置３０との通信を行う。また、通信部２３は、そのＰ２Ｐ通信を確立するための処理等も行う。なお、通信部２３は、通信を行うための通信デバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい（この場合には、通信部２３と通信処理装置２との間に図示しない通信デバイスが存在することとなる）。また、通信部２３は、ハードウェアによって実現されてもよく、あるいは通信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【００５２】
なお、送信先情報受付部１１、バブルパケット送信部１２、種類判断パケット送信部１３、種類判断ポート情報受付部１４、検出用パケット送信部１６、ポート幅検出用パケット送信部１７、ポート幅検出用ポート情報受付部１８、検出用ポート情報受付部２０、出力部２２、通信部２３の任意の２以上の要素が通信に関するデバイスを有する場合に、それらは同一の手段であってもよく、あるいは別々の手段であってもよい。
【００５３】
図３は、本実施の形態による情報処理装置３０の構成を示すブロック図である。図３において、本実施の形態による情報処理装置３０は、送信先情報送信部３１と、バブルパケット送信ポート受付部３２と、返信パケット送信部３３と、通信部３４とを備える。
【００５４】
送信先情報送信部３１は、送信先情報を、リレーサーバ６０を介して情報処理装置１０に送信する。なお、送信先情報送信部３１は、送信を行うための送信デバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい（この場合には、送信先情報送信部３１と通信回線１との間に図示しない送信デバイスが存在することとなる）。また、送信先情報送信部３１は、ハードウェアによって実現されてもよく、あるいは送信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【００５５】
バブルパケット送信ポート受付部３２は、バブルパケット送信ポート情報を受け付ける。バブルパケット送信ポート受付部３２は、例えば、入力デバイス（例えば、キーボードやマウス、タッチパネルなど）から入力されたバブルパケット送信ポート情報を受け付けてもよく、有線もしくは無線の通信回線を介して送信されたバブルパケット送信ポート情報を受信してもよく、所定の記録媒体（例えば、光ディスクや磁気ディスク、半導体メモリなど）から読み出されたバブルパケット送信ポート情報を受け付けてもよい。本実施の形態では、バブルパケット送信ポート受付部３２は、通信回線を介して送信されたバブルパケット送信ポート情報を受信するものとする。なお、バブルパケット送信ポート受付部３２は、受け付けを行うためのデバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい。また、バブルパケット送信ポート受付部３２は、ハードウェアによって実現されてもよく、あるいは所定のデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【００５６】
返信パケット送信部３３は、バブルパケット送信ポート受付部３２が受け付けたバブルパケット送信ポート情報に基づいて、バブルパケット送信ポートに返信パケットを送信する。ここで、返信パケットとは、情報処理装置１０と、情報処理装置３０との間でのＰ２Ｐ通信を確立するために情報処理装置３０から送信されるパケットである。この返信パケットのペイロードには、何らかの情報が含まれていてもよく、何も情報が含まれていなくてもよい。返信パケットは、例えば、ＵＤＰのパケットであってもよい。なお、返信パケット送信部３３は、送信を行うための送信デバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい（この場合には、返信パケット送信部３３と通信回線１との間に図示しない送信デバイスが存在することとなる）。また、返信パケット送信部３３は、ハードウェアによって実現されてもよく、あるいは送信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【００５７】
通信部３４は、情報処理装置１０と、情報処理装置３０との間で、リレーサーバ６０を介さないピアー・ツー・ピアー（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ）通信（以下、「Ｐ２Ｐ通信」と略することもある）が確立された場合に、そのＰ２Ｐ通信によって、情報処理装置１０との通信を行う。また、通信部３４は、そのＰ２Ｐ通信を確立するための処理等も行う。なお、通信部３４は、通信を行うための通信デバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい（この場合には、通信部３４と通信回線１との間に図示しない通信デバイスが存在することとなる）。また、通信部３４
は、ハードウェアによって実現されてもよく、あるいは通信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【００５８】
なお、送信先情報送信部３１、バブルパケット送信ポート受付部３２、返信パケット送信部３３、通信部３４の任意の２以上の要素が通信に関するデバイスを有する場合に、それらは同一の手段であってもよく、あるいは別々の手段であってもよい。
【００５９】
図４は、本実施の形態による第１のサーバ４０の構成を示すブロック図である。図４において、本実施の形態による第１のサーバ４０は、種類判断パケット受信部４１と、種類判断ポート情報送信部４２と、検出用パケット受信部４３と、検出用ポート情報送信部４４と、ポート幅検出用パケット受信部４５と、ポート幅検出用ポート情報送信部４６とを備える。
【００６０】
種類判断パケット受信部４１は、情報処理装置１０から送信された種類判断パケットを受信する。なお、種類判断パケット受信部４１は、受信を行うための受信デバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい（この場合には、種類判断パケット受信部４１と通信回線１との間に図示しない受信デバイスが存在することとなる）。また種類判断パケット受信部４１は、ハードウェアによって実現されてもよく、あるいは受信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【００６１】
種類判断ポート情報送信部４２は、種類判断パケット受信部４１が受信した種類判断パケットの通過した通信処理装置２のポートの位置を示す種類判断ポート情報を情報処理装置１０に送信する。ここで、「種類判断ポート情報を情報処理装置１０に送信する」ことには、種類判断ポート情報の送信先を通信処理装置２のグローバル側のアドレスにする場合を含むものとする。通信処理装置２がＮＡＴ機能を有する場合には、種類判断ポート情報の送信先として情報処理装置１０のアドレスを指定することはできないが、通信処理装置２のアドレスを指定することによって、通信処理装置２においてアドレス変換が行われ、情報処理装置１０に送信されることになるからである。以下の説明においても、同様であるとする。なお、種類判断ポート情報送信部４２は、送信を行うための送信デバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい（この場合には、種類判断ポート情報送信部４２と通信回線１との間に図示しない送信デバイスが存在することとなる）。また、種類判断ポート情報送信部４２は、ハードウェアによって実現されてもよく、あるいは送信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【００６２】
検出用パケット受信部４３は、情報処理装置１０から送信された検出用パケットを受信する。なお、検出用パケット受信部４３は、受信を行うための受信デバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい（この場合には、検出用パケット受信部４３と通信回線１との間に図示しない受信デバイスが存在することとなる）。また、検出用パケット受信部４３は、ハードウェアによって実現されてもよく、あるいは受信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【００６３】
検出用ポート情報送信部４４は、検出用パケット受信部４３が受信した検出用パケットの通過した通信処理装置２のポートの位置を示す検出用ポート情報を情報処理装置１０に送信する。なお、検出用ポート情報送信部４４は、送信を行うための送信デバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい（この場合には、検出用ポート情報送信部４４と通信回線１との間に図示しない送信デバイスが存在することとなる）。また、検出用ポート情報送信部４４は、ハードウェアによって
実現されてもよく、あるいは送信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【００６４】
ポート幅検出用パケット受信部４５は、情報処理装置１０から送信されたポート幅検出用パケットを受信する。なお、ポート幅検出用パケット受信部４５は、受信を行うための受信デバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい（この場合には、ポート幅検出用パケット受信部４５と通信回線１との間に図示しない受信デバイスが存在することとなる）。また、ポート幅検出用パケット受信部４５は、ハードウェアによって実現されてもよく、あるいは受信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【００６５】
ポート幅検出用ポート情報送信部４６は、ポート幅検出用パケット受信部４５が受信したポート幅検出用パケットの通過した通信処理装置２のポートの位置を示すポート幅検出用ポート情報を情報処理装置１０に送信する。なお、ポート幅検出用ポート情報送信部４６は、送信を行うための送信デバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい（この場合には、ポート幅検出用ポート情報送信部４６と通信回線１との間に図示しない送信デバイスが存在することとなる）。また、ポート幅検出用ポート情報送信部４６は、ハードウェアによって実現されてもよく、あるいは送信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【００６６】
なお、種類判断ポート情報送信部４２、検出用ポート情報送信部４４、ポート幅検出用ポート情報送信部４６は、種類判断パケット受信部４１等が受信したパケットの送信元のアドレス、ポートに種類判断ポート情報等を送信してもよく、あるいは、情報処理装置１０と、第１のサーバ４０との間で情報を通信する通信処理装置２のポートがある場合には、そのポートに種類判断ポート情報等を送信してもよい。
【００６７】
また、種類判断パケット受信部４１、種類判断ポート情報送信部４２、検出用パケット受信部４３、検出用ポート情報送信部４４、ポート幅検出用パケット受信部４５、ポート幅検出用ポート情報送信部４６の任意の２以上の要素が通信に関するデバイスを有する場合に、それらは同一の手段であってもよく、あるいは別々の手段であってもよい。
【００６８】
図５は、本実施の形態による第２のサーバ５０の構成を示すブロック図である。図５において、本実施の形態による第２のサーバ５０は、種類判断パケット受信部５１と、種類判断ポート情報送信部５２とを備える。なお、種類判断パケット受信部５１、及び種類判断ポート情報送信部５２は、それぞれ、種類判断パケット受信部４１、及び種類判断ポート情報送信部４２と同様のものであり、その説明を省略する。
【００６９】
図６は、本実施の形態によるリレーサーバ６０の構成を示すブロック図である。図６において、本実施の形態によるリレーサーバ６０は、通信部６１と、アドレス情報記憶部６２と、アドレス情報蓄積部６３と、アドレス情報取得部６４とを備える。
【００７０】
通信部６１は、情報処理装置１０と、情報処理装置３０との間での情報の送受信を行い、一方の装置から他方の装置への情報のリレーを行う。また、後述するアドレス情報記憶部６２へのアドレス情報の登録の処理等に関する通信も行う。なお、通信部６１は、通信を行うための通信デバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい（この場合には、通信部６１と通信回線１との間に図示しない通信デバイスが存在することとなる）。また、通信部６１は、ハードウェアによって実現されてもよく、あるいは通信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【００７１】
アドレス情報記憶部６２は、アドレス情報を記憶している。ここで、アドレス情報とは、例えば、情報処理装置を識別する装置識別情報と、アドレスと、ポートの位置とを対応付ける情報である。アドレス情報記憶部６２は、所定の記録媒体（例えば、半導体メモリや磁気ディスク、光ディスクなど）によって実現されうる。
【００７２】
アドレス情報蓄積部６３は、通信部６１が受信したアドレス情報の登録を要求する情報に基づいて、アドレス情報をアドレス情報記憶部６２に蓄積する。
アドレス情報取得部６４は、通信部６１が受信した情報のリレー先に対応するアドレス情報を、アドレス情報記憶部６２から取得する。
【００７３】
リレーサーバ６０は、例えば、Ｈ．３２３のサーバや、ＳＩＰのサーバなどであってもよい。また、リレーサーバ６０は、２以上のサーバから構成されてもよい。すなわち、情報処理装置１０と、情報処理装置３０との間のデータリレーが、２以上のリレーサーバ（例えば、ＳＩＰプロキシサーバなど）を経由して行われてもよい。
【００７４】
次に、本実施の形態による情報処理システムの動作について、フローチャートを用いて説明する。図７は、本実施の形態による情報処理装置１０の動作を示すフローチャートである。
（ステップＳ１０１）情報処理装置１０は、通信処理装置２の種類を判断するための処理を行う。この処理の詳細については後述する。
【００７５】
（ステップＳ１０２）情報処理装置１０は、通信処理装置２のポート幅を検出するための処理を行う。この処理の詳細については後述する。
（ステップＳ１０３）情報処理装置１０は、バブルパケット及び検出用パケットを送信することによって、バブルパケット送信ポートの位置を検出する。そして、情報処理装置１０は、情報処理装置３０とのＰ２Ｐ通信を確立する処理を行う。この処理の詳細については後述する。
【００７６】
（ステップＳ１０４）情報処理装置１０は、情報処理装置３０とＰ２Ｐ通信を行う。
なお、図７のフローチャートにおいて、ステップＳ１０１の通信処理装置２の種類を判断する処理と、ステップＳ１０２の通信処理装置２のポート幅を検出する処理の順序は問わない。
【００７７】
図８は、図７のフローチャートのステップＳ１０１における、情報処理装置１０が通信処理装置２の種類を判断するための処理の詳細を示すフローチャートである。種類判断パケット等の通過するポートの位置を示す図９の模式図を参照しながら説明する。図８において、「通信元」とは、情報処理装置１０側のことである。なお、本実施の形態では、情報処理装置１０、通信処理装置２を通信元と呼び、情報処理装置３０を通信先と呼ぶことがある。
【００７８】
（ステップＳ２０１）情報処理装置１０の種類判断パケット送信部１３は、第１のサーバ４０のポートＰ１０４に種類判断パケットを送信する。種類判断パケット送信部１３は、第１のサーバ４０のアドレスや、ポートＰ１０４の位置をあらかじめ知っていてもよく、あるいは、種類判断パケットの送信時に他の構成要素等から受け取ってもよい。その種類判断パケットは、情報処理装置１０のポートＰ１０１から送信される。なお、このポートＰ１０１は、種類判断パケットを送信するときに、新たに割り当てられたポートであるとする。ここで、新たに割り当てられたポートとは、それまでに他の通信で用いていないポートのことである。通信処理装置２は、その種類判断パケットに対してポートＰ１０２を割り当てたとする。そして、その種類判断パケットは、第１のサーバ４０の種類判断パケット受信部４１で受信される。
【００７９】
（ステップＳ２０２）第１のサーバ４０の種類判断ポート情報送信部４２は、種類判断パケット受信部４１で受信された種類判断パケットのヘッダから、種類判断パケットの送信元のポートの位置を示す情報を取得する。そして、種類判断ポート情報送信部４２は、そのポートの位置を示す情報を含む種類判断ポート情報を構成して、種類判断パケット受信部４１が受信した種類判断パケットの送信元のアドレス、ポートＰ１０２に送信する。その種類判断ポート情報は、種類判断ポート情報受付部１４で受信される。
【００８０】
（ステップＳ２０３）情報処理装置１０の種類判断パケット送信部１３は、第１のサーバ４０のポートＰ１０４に種類判断パケットを送信する。その種類判断パケットは、情報処理装置１０のポートＰ１０６から送信される。ここで、ポートＰ１０６は、ポートＰ１０１と異なるポートであるとする。また、このポートＰ１０６は、種類判断パケットを送信するときに、新たに割り当てられたポートであるとする。また、このポートＰ１０６は、ポートＰ１０１の次に通常割り当てられるポートではないポートであることが好ましい。例えば、ポートＰ１０１のポート番号が「２００００」であり、通常、次に割り当てられるポートのポート番号が「２０００１」である場合には、ポートＰ１０６のポート番号は、「２００００」よりも十分大きい番号、例えば、「２０１００」や、「２００００」よりも小さい番号、例えば、「１９５００」であることが好ましい。このようにすることで、通信処理装置２の種類がポートリューズであるかどうかを適切に判断することができるからである。通信処理装置２は、その種類判断パケットに対してポートＰ１０７を割り当てたとする。そして、その種類判断パケットは、第１のサーバ４０の種類判断パケット受信部４１で受信される。
【００８１】
（ステップＳ２０４）第１のサーバ４０の種類判断ポート情報送信部４２は、ステップＳ２０２と同様にして、種類判断ポート情報を送信する。その種類判断ポート情報は、種類判断ポート情報受付部１４で受信される。
【００８２】
（ステップＳ２０５）情報処理装置１０の種類判断パケット送信部１３は、第２のサーバ５０のポートＰ１０５に種類判断パケットを送信する。なお、ポートＰ１０５の位置は、ポートＰ１０４の位置とは異なるものとする。種類判断パケット送信部１３は、第２のサーバ５０のアドレスや、ポートＰ１０５の位置をあらかじめ知っていてもよく、あるいは、種類判断パケットの送信時に他の構成要素等から受け取ってもよい。その種類判断パケットは、情報処理装置１０のポートＰ１０１から送信される。通信処理装置２は、その種類判断パケットに対してポートＰ１０３を割り当てたとする。そして、その種類判断パケットは、第２のサーバ５０の種類判断パケット受信部５１で受信される。
【００８３】
（ステップＳ２０６）第２のサーバ５０の種類判断ポート情報送信部５２は、種類判断パケット受信部５１で受信された種類判断パケットのヘッダから、種類判断パケットの送信元のポートの位置を示す情報を取得する。そして、種類判断ポート情報送信部５２は、そのポートの位置を示す情報を含む種類判断ポート情報を構成して、種類判断パケット受信部５１が受信した種類判断パケットの送信元のアドレス、ポートＰ１０３に送信する。その種類判断ポート情報は、種類判断ポート情報受付部１４で受信される。
【００８４】
なお、種類判断ポート情報送信部５２は、種類判断ポート情報を直接、通信処理装置２を介して情報処理装置１０に送信するのではなく、第１のサーバ４０、及び通信処理装置２を介して情報処理装置１０に送信してもよい。
【００８５】
（ステップＳ２０７）種類判断部１５は、種類判断ポート情報受付部１４が受信したポートＰ１０２、Ｐ１０３、Ｐ１０７の位置を示す情報に基づいて、通信処理装置２の種類を判断する。まず、ポートＰ１０１の位置がポートＰ１０２の位置に等しく、かつ、ポー
トＰ１０６の位置がポートＰ１０７の位置に等しい場合には、種類判断部１５は、通信処理装置２の種類がポートリューズであると判断する。一方、通信処理装置２の種類がポートリューズでなく、ポートＰ１０２の位置とポートＰ１０３の位置とが等しい場合には、種類判断部１５は、通信処理装置２の種類がコーン系であると判断し、通信処理装置２の種類がポートリューズでなく、ポートＰ１０２の位置とポートＰ１０３の位置とが異なる場合には、種類判断部１５は、通信処理装置２の種類がシンメトリック系であると判断する。種類判断部１５によって判断された判断結果は、適宜、検出用パケット送信部１６や、バブルパケット送信ポート検出部２１に渡される。
【００８６】
なお、ステップＳ２０４で送信された種類判断ポート情報が受信された時点で、ポートＰ１０１とポートＰ１０２とが等しく、ポートＰ１０６とポートＰ１０７とが等しいことがわかった場合には、ステップＳ２０５、Ｓ２０６の処理を行わないで、ステップＳ２０７の処理において、種類の判断を行ってもよい。この場合には、通信処理装置２の種類がポートリューズであると判断される。
【００８７】
また、ステップＳ２０５及びＳ２０６の処理を、ステップＳ２０１よりも先に行ってもよく、あるいは、ステップＳ２０２とステップＳ２０３との間で行ってもよい。
また、例えば、第１のサーバ４０から送信する２個の種類判断ポート情報をまとめて、１回で送信してもよい。あるいは、第１のサーバ４０、及び第２のサーバ５０から送信する３個の種類判断ポート情報をまとめて、１回で送信してもよい。この場合には、例えば、第２のサーバ５０から第１のサーバ４０に、種類判断ポート情報が渡されるものとする。
【００８８】
また、通信処理装置２の種類を判断する方法は、図８で示される方法に限定されるものではなく、その他の方法によって通信処理装置２の種類の判断を行ってもよい。例えば、送信ポート割り当てルールと共に、受信フィルタルールをも判断する処理を行ってもよい。また、例えば、ステップＳ２０１、Ｓ２０２の処理を複数回、繰り返して実行してもよい。ただし、種類判断パケットを送信する情報処理装置１０のポートの位置を、種類判断パケットを送信するごとにランダムに設定するものとする。そして、そのうちの一定以上の種類判断パケットについて、その種類判断パケットの送信された情報処理装置１０のポートと、種類判断パケットの通過した通信処理装置２のポートとが等しい場合には、通信処理装置２の種類をポートリューズであると判断してもよい。例えば、５個の種類判断パケットのうち、４個以上の種類判断パケットについて、その種類判断パケットの送信された情報処理装置１０のポートと、種類判断パケットの通過した通信処理装置２のポートとが等しい場合に、通信処理装置２の種類をポートリューズであると判断してもよい。
【００８９】
図１０は、図７のフローチャートのステップＳ１０２における、情報処理装置１０が通信処理装置２のポート幅を検出するための処理の詳細を示すフローチャートである。ポート幅検出用パケット等の通過するポートの位置を示す図１１の模式図を参照しながら説明する。
【００９０】
（ステップＳ３０１）ポート幅検出用パケット送信部１７は、第１のサーバ４０のポートＰ２０３にポート幅検出用パケットを送信する。ポート幅検出用パケット送信部１７は、第１のサーバ４０のアドレスや、ポートＰ２０３の位置をあらかじめ知っていてもよく、あるいは、種類判断パケットの送信時に他の構成要素等から受け取ってもよい。そのポート幅検出用パケットは、情報処理装置１０のポートＰ２０１から送信される。なお、このポートＰ２０１は、ポート幅検出用パケットを送信するときに、新たに割り当てられたポートであるとする。通信処理装置２は、そのポート幅検出用パケットに対してポートＰ２０２を割り当てたとする。そして、そのポート幅検出用パケットは、第１のサーバ４０のポート幅検出用パケット受信部４５で受信される。
【００９１】
（ステップＳ３０２）第１のサーバ４０のポート幅検出用ポート情報送信部４６は、ポート幅検出用パケット受信部４５で受信されたポート幅検出用パケットのヘッダから、ポート幅検出用パケットの送信元のポートの位置を示す情報を取得する。そして、ポート幅検出用ポート情報送信部４６は、そのポートの位置を示す情報を含むポート幅検出用ポート情報を構成して、ポート幅検出用パケット受信部４５が受信したポート幅検出用パケットの送信元のアドレス、ポートＰ２０２に送信する。そのポート幅検出用ポート情報は、ポート幅検出用ポート情報受付部１８で受信される。
【００９２】
（ステップＳ３０３）ポート幅検出用パケット送信部１７は、ステップＳ３０１と同様にして、第１のサーバ４０のポートＰ２０３にポート幅検出用パケットを送信する。そのポート幅検出用パケットは、情報処理装置１０のポートＰ２０４から送信される。なお、ポートＰ２０４は、ポートＰ２０１と異なるポートであるとする。また、このポートＰ２０４は、ポート幅検出用パケットを送信するときに、新たに割り当てられたポートであるとする。通信処理装置２は、そのポート幅検出用パケットに対してポートＰ２０５を割り当てたとする。そして、そのポート幅検出用パケットは、第１のサーバ４０のポート幅検出用パケット受信部４５で受信される。
【００９３】
（ステップＳ３０４）第１のサーバ４０のポート幅検出用ポート情報送信部４６は、ステップＳ３０２と同様にして、ポート幅検出用ポート情報を構成し、送信する。そのポート幅検出用ポート情報は、ポート幅検出用ポート情報受付部１８で受信される。
【００９４】
（ステップＳ３０５）ポート幅検出用パケット送信部１７は、ステップＳ３０１、Ｓ３０３と同様にして、第１のサーバ４０のポートＰ２０３にポート幅検出用パケットを送信する。そのポート幅検出用パケットは、情報処理装置１０のポートＰ２０６から送信される。なお、ポートＰ２０６は、ポートＰ２０１と異なるポートであり、ポートＰ２０４とも異なるポートであるとする。また、このポートＰ２０６は、ポート幅検出用パケットを送信するときに、新たに割り当てられたポートであるとする。通信処理装置２は、そのポート幅検出用パケットに対してポートＰ２０７を割り当てたとする。そして、そのポート幅検出用パケットは、第１のサーバ４０のポート幅検出用パケット受信部４５で受信される。
【００９５】
（ステップＳ３０６）第１のサーバ４０のポート幅検出用ポート情報送信部４６は、ステップＳ３０２、Ｓ３０４と同様にして、ポート幅検出用ポート情報を構成し、送信する。そのポート幅検出用ポート情報は、ポート幅検出用ポート情報受付部１８で受信される。
【００９６】
なお、ステップＳ３０１、Ｓ３０３、Ｓ３０５のポート幅検出用パケットの送信は、連続して行われるものとする。すなわち、ステップＳ３０１、Ｓ３０３、Ｓ３０５のポート幅検出用パケットの送信は、できるだけ短い送信間隔で行われるものとする。ポート幅検出用パケットが送信される間に、通信処理装置２のローカル側に接続されている他の機器から送信されたパケットに対して、通信処理装置２において新たなポート割り当てが行われた場合には、ポート幅の検出を正確に行うことができないからである。
【００９７】
（ステップＳ３０７）ポート幅検出部１９は、ポート幅検出用ポート情報受付部１８が受信したポートＰ２０２、Ｐ２０５、Ｐ２０７の位置を示す情報に基づいて、通信処理装置２のポート幅を判断する。例えば、ポートＰ２０２とポートＰ２０５との間隔と、ポートＰ２０５とポートＰ２０７との間隔とが等しい場合には、その間隔を通信処理装置２のポート幅として検出する。一方、例えば、ポートＰ２０２とポートＰ２０５との間隔と、ポートＰ２０５とポートＰ２０７との間隔とのうち、一方の間隔が他方の間隔よりも短い
場合には、短いほうの間隔を通信処理装置２のポート幅として検出する。ポート幅検出部１９によって検出された通信処理装置２のポート幅は、バブルパケット送信ポート検出部２１に渡される。
なお、第１のサーバ４０は、３個のポート幅検出用パケットを受信してから、まとめて、ポート幅検出用ポート情報を送信してもよい。
【００９８】
また、通信処理装置２のポート幅を検出する方法は、図１０で示される方法に限定されるものではなく、その他の方法によって通信処理装置２の種類の判断を行ってもよい。例えば、情報処理装置１０は、４個以上のポート幅検出用パケットを送信してもよく、あるいは、２個のポート幅検出用パケットを送信するだけであってもよい。
【００９９】
また、通信処理装置２の種類がポートリューズ、あるいはコーン系である場合には、バブルパケット送信ポートの位置の検出においてポート幅を用いないため、ポート幅を検出する処理を行わなくてもよい。また、通信処理装置２におけるポートの割り当てがランダムである場合にも、ポート幅を検出する処理を行わなくてもよい。通信処理装置２の種類がポートリューズである場合や、通信処理装置２におけるポートの割り当てがランダムである場合には、通信処理装置２のポート幅を判断したとしても、そのポート幅に意味がないからである。ここで、通信処理装置２におけるポートの割り当てがランダムであるとは、ポート番号が一定間隔でインクリメント、あるいはデクリメントするようにポートが割り当てられるのではなく、無秩序に割り当てられる場合のことである。
【０１００】
図１２は、図７のフローチャートのステップＳ１０３における、情報処理装置１０がバブルパケット送信ポートの位置を検出するための処理の詳細を示すフローチャートである。ここで、図１２について説明する前に、リレーサーバ６０における情報処理装置等のアドレスの登録処理について説明する。なお、ポートの位置を示す情報がポート番号であるとして説明する。以下の説明においても同様であるとする。
【０１０１】
情報処理装置１０と、情報処理装置３０との間でリレーサーバ６０を用いたデータリレーを行う場合には、情報処理装置１０、及び情報処理装置３０は、事前にアドレス等をリレーサーバ６０に登録しておく。具体的には、例えば、情報処理装置１０の装置を識別する情報である装置識別情報が「Ａ００１」であり、情報処理装置３０の装置識別情報が「Ａ００２」であるとすると、情報処理装置１０の通信部２３は、その装置識別情報「Ａ００１」を含むアドレス登録を要求するパケットをリレーサーバ６０に送信する。すると、そのパケットは、通信部６１で受信され、アドレス情報蓄積部６３に渡される。アドレス情報蓄積部６３は、そのパケットのヘッダに含まれるアドレスと、ポート番号と、そのパケットのペイロードに含まれる装置識別情報「Ａ００１」とを取得し、装置識別情報「Ａ００１」に対応付けて、取得したアドレスと、ポート番号とをアドレス情報記憶部６２に蓄積する。情報処理装置３０も、同様にして、アドレス登録を要求するパケットをリレーサーバ６０に送信する。
【０１０２】
図１３は、リレーサーバ６０において蓄積されたアドレス情報の一例を示す図である。１番目のレコードが情報処理装置１０に対応するアドレス情報である。ここで、情報処理装置１０の装置識別情報「Ａ００１」に対応付けられているアドレス「２０２．２２４．１３５．１０」及びポート番号「１２３４５」は、通信処理装置２のアドレス、及びポート番号である。情報処理装置１０は、ＮＡＴ機能を有する通信処理装置２を介して通信を行っているからである。２番目のレコードが情報処理装置３０に対応するアドレス情報である。このアドレス情報のアドレス、ポート番号は、情報処理装置３０のアドレス、及びポート番号である。情報処理装置３０は、ＮＡＴ機能を有する通信処理装置を介して通信を行っていないからである。
【０１０３】
次に、図１２のフローチャートについて説明する。
（ステップＳ４０１）情報処理装置１０の通信部２３は、通信元の情報処理装置１０の装置識別情報「Ａ００１」、通信先の情報処理装置３０の装置識別情報「Ａ００２」、及び送信先情報を送信する旨の要求を含む通信要求パケットを構成し、その通信要求パケットをリレーサーバ６０に送信する。
【０１０４】
（ステップＳ４０２）リレーサーバ６０の通信部６１は、その通信要求パケットを受信すると、その通信要求パケットに含まれる通信先の情報処理装置３０の装置識別情報「Ａ００２」を取得し、その装置識別情報「Ａ００２」をアドレス情報取得部６４に渡す。すると、アドレス情報取得部６４は、アドレス情報記憶部６２が記憶しているアドレス情報を参照し、装置識別情報「Ａ００２」に対応するアドレス、ポート番号を取得して通信部６１に渡す。すると、通信部６１は、情報処理装置１０から送信された通信要求パケットを、アドレス情報取得部６４から受け取ったアドレス、ポート番号に送信する。このようにして、通信要求パケットの転送が行われる。その通信要求パケットは、情報処理装置３０の通信部３４で受信される。
【０１０５】
（ステップＳ４０３）情報処理装置３０の通信部３４は、リレーサーバ６０から送信された通信要求パケットを受信すると、送信先情報送信部３１に送信先情報を送信する旨の指示を渡す。すると、送信先情報送信部３１は、通信元の情報処理装置３０の装置識別情報「Ａ００２」、通信先の情報処理装置１０の装置識別情報「Ａ００１」、及び送信先情報を含む送信先情報パケットを構成し、その送信先情報パケットをリレーサーバ６０に送信する。なお、送信先情報には、情報処理装置３０が情報処理装置１０とのＰ２Ｐ通信で用いる送信ポートのポート番号と、受信ポートのポート番号と、情報処理装置３０のアドレスとが含まれる。ここで、送信ポートとは、Ｐ２Ｐ通信において、情報処理装置３０が情報処理装置１０にパケットを送信するポートである。受信ポートとは、Ｐ２Ｐ通信において、情報処理装置３０が情報処理装置１０から送信されたパケットを受信するポートである。
【０１０６】
（ステップＳ４０４）リレーサーバ６０の通信部６１は、情報処理装置３０から送信された送信先情報パケットを受信すると、ステップＳ４０２の場合と同様にして、そのパケットを通信処理装置２に転送する。通信処理装置２は、そのパケットをアドレス変換し、情報処理装置１０に送信する。情報処理装置１０の送信先情報受付部１１は、その送信先情報パケットを受信する。
【０１０７】
（ステップＳ４０５）検出用パケット送信部１６、バブルパケット送信部１２は、それぞれ、検出用パケット、バブルパケットを送信する。また、検出用ポート情報受付部２０は、検出用ポート情報を受け付ける。この処理の詳細については、後述する。
【０１０８】
（ステップＳ４０６）バブルパケット送信ポート検出部２１は、バブルパケット送信ポートの位置を検出することができるかどうか判断する。そして、バブルパケット送信ポートの位置を検出することができる場合には、ステップＳ４０７に進み、そうでない場合には、ステップＳ４０５に戻る。
（ステップＳ４０７）バブルパケット送信ポート検出部２１は、バブルパケット送信ポートの位置を検出する。
【０１０９】
（ステップＳ４０８）出力部２２は、バブルパケット送信ポート検出部２１によって検出されたバブルパケット送信ポートのポート番号、通信処理装置２のグローバル側のアドレス、通信元の情報処理装置１０の装置識別情報「Ａ００１」、及び通信先の情報処理装置３０の装置識別情報「Ａ００２」を含む通信要求パケットを構成し、その通信要求パケットをリレーサーバ６０に送信する。
【０１１０】
（ステップＳ４０９）リレーサーバ６０の通信部６１は、ステップＳ４０２と同様にして、その通信要求パケットを情報処理装置３０に転送する。その通信要求パケットは、情報処理装置３０のバブルパケット送信ポート受付部３２で受信される。
【０１１１】
（ステップＳ４１０）通信部３４は、通信元の情報処理装置３０の装置識別情報「Ａ００２」、通信先の情報処理装置１０の装置識別情報「Ａ００１」、及びＰ２Ｐ通信を確立することができる環境が整った旨を含む応答パケットを構成し、その応答パケットをリレーサーバ６０に送信する。
【０１１２】
（ステップＳ４１１）リレーサーバ６０の通信部６１は、情報処理装置３０から送信された応答パケットを受信すると、ステップＳ４０４の場合と同様にして、そのパケットを通信処理装置２に転送する。通信処理装置２は、そのパケットをアドレス変換し、情報処理装置１０に送信する。情報処理装置１０の通信部２３は、その応答パケットを受信する。
【０１１３】
（ステップＳ４１２）通信部２３は、通信元の情報処理装置１０の装置識別情報「Ａ００１」、通信先の情報処理装置３０の装置識別情報「Ａ００２」、及び応答パケットを受信した旨を含む確認パケットを構成し、その確認パケットをリレーサーバ６０に送信する。
（ステップＳ４１３）リレーサーバ６０の通信部６１は、ステップＳ４０２と同様にして、その確認パケットを情報処理装置３０に転送する。その確認パケットは、情報処理装置３０の通信部３４で受信される。
【０１１４】
（ステップＳ４１４）返信パケット送信部３３は、バブルパケット送信ポート受付部３２で受信された通信要求パケットに含まれるアドレス、及びバブルパケット送信ポートに、返信パケットを送信する。その返信パケットは、通信処理装置２においてアドレス変換され、情報処理装置１０に送信される。情報処理装置１０の通信部２３は、その返信パケットを受信する。その後、情報処理装置１０の通信部２３が、送信先情報受付部１１が受信した送信先情報に含まれるアドレス、及び受信ポートにパケットを送信することによって、図７のステップＳ１０４のＰ２Ｐ通信が開始される。
【０１１５】
次に、本実施の形態による情報処理システムの動作について、具体例を用いて説明する。この具体例では、通信処理装置２の種類に応じて、検出用パケットの送信方法を変更する場合（具体例１）、及び通信処理装置２の種類に関わらず、所定の方法で検出用パケットを送信することにより、結果として、通信処理装置２の種類に応じた検出用パケットの送信となる場合（具体例２）について説明する。
【０１１６】
［具体例１］
この具体例では、検出用パケット送信部１６が、種類判断部１５によって判断された通信処理装置２の種類に応じて、検出用パケットの送信を行う場合について説明する。
【０１１７】
まず、通信処理装置２の種類がコーン系、あるいはポートリューズである場合の図１２のフローチャートのステップＳ４０５における処理について、図１４のフローチャートを用いて説明する。
（ステップＳ５０１）検出用パケット送信部１６は、情報処理装置１０のあるポートから検出用パケットを第１のサーバ４０に送信する。その検出用パケットは、第１のサーバ４０の検出用パケット受信部４３で受信される。
【０１１８】
（ステップＳ５０２）第１のサーバ４０の検出用ポート情報送信部４４は、検出用パケ
ット受信部４３で受信された検出用パケットのヘッダから、検出用パケットの送信元のアドレス、及びポート番号を取得する。そして、検出用ポート情報送信部４４は、そのアドレスとポート番号とを含む検出用ポート情報を構成し、検出用パケット受信部４３が受信した検出用パケットの送信元のアドレス、ポート番号に送信する。その検出用ポート情報は、通信処理装置２を介して情報処理装置１０に送信され、検出用ポート情報受付部２０で受信される。
【０１１９】
（ステップＳ５０３）バブルパケット送信部１２は、ステップＳ５０１の検出用パケットの送信で用いた情報処理装置１０のポートから、送信先情報受付部１１が受信した送信先情報の示すアドレス、ポート番号にバブルパケットを送信する。
【０１２０】
次に、通信処理装置２の種類がシンメトリック系である場合の図１２のフローチャートのステップＳ４０５における処理について、図１５のフローチャートを用いて説明する。
（ステップＳ６０１）検出用パケット送信部１６は、情報処理装置１０において新たに割り当てられたポートから、検出用パケットを第１のサーバ４０に送信する。その検出用パケットは、第１のサーバ４０の検出用パケット受信部４３で受信される。
【０１２１】
（ステップＳ６０２）第１のサーバ４０の検出用ポート情報送信部４４は、検出用パケット受信部４３で受信された検出用パケットのヘッダから、検出用パケットの送信元のアドレス、及びポート番号を取得する。そして、検出用ポート情報送信部４４は、そのアドレスとポート番号とを含む検出用ポート情報を構成し、検出用パケット受信部４３が受信した検出用パケットの送信元のアドレス、ポート番号に送信する。その検出用ポート情報は、通信処理装置２を介して情報処理装置１０に送信され、検出用ポート情報受付部２０で受信される。
【０１２２】
（ステップＳ６０３）バブルパケット送信部１２は、情報処理装置１０において新たに割り当てられたポートから、送信先情報受付部１１が受信した送信先情報の示すアドレス、ポート番号にバブルパケットを送信する。
（ステップＳ６０４）検出用パケット送信部１６は、情報処理装置１０において新たに割り当てられたポートから、検出用パケットを第１のサーバ４０に送信する。その検出用パケットは、第１のサーバ４０の検出用パケット受信部４３で受信される。
【０１２３】
（ステップＳ６０５）第１のサーバ４０の検出用ポート情報送信部４４は、ステップＳ６０２と同様に、検出用ポート情報を構成し、送信する。その検出用ポート情報は、通信処理装置２を介して情報処理装置１０に送信され、検出用ポート情報受付部２０で受信される。
【０１２４】
なお、ステップＳ６０１、Ｓ６０３、Ｓ６０４におけるパケットの送信は、連続して行われるものとする。すなわち、ステップＳ６０１、Ｓ６０３、Ｓ６０４の検出用パケット、及びバブルパケットの送信は、できるだけ短い送信間隔で行われるものとする。ポート幅検出用パケットが送信される間に、通信処理装置２のローカル側に接続されている他の機器から送信されたパケットに対して、通信処理装置２において新たなポート割り当てが行われた場合には、バブルパケット送信ポートの位置の検出を的確に行うことができないからである。
【０１２５】
このように、この具体例では、検出用パケット送信部１６は、通信処理装置２の種類がコーン系である場合には、検出用パケット送信ポートがバブルパケット送信ポートと同一となり、通信処理装置２の種類がシンメトリック系である場合には、検出用パケット送信ポートと、バブルパケット送信ポートとが異なるように検出用パケットを送信する。
【０１２６】
次に、この具体例における情報処理装置間でのＰ２Ｐ通信を確立する処理について、通信処理装置２の種類がコーン系である場合、シンメトリック系である場合、ポートリューズである場合のそれぞれについて説明する。
【０１２７】
まず、通信処理装置２の種類がコーン系である場合について説明する。種類判断パケット送信部１３は情報処理装置１０のポート番号「１００００」のポート（以下、このポートを「ポート１００００」と呼ぶことにする。他のポートについても同様であるとする）から第１のサーバ４０のポート１２０００に種類判断パケットを送信する（ステップＳ２０１）。その種類判断パケットは、通信処理装置２のポート１５０００を通過して第１のサーバ４０の種類判断パケット受信部４１で受信されたとする。種類判断ポート情報送信部４２は、種類判断パケット受信部４１による種類判断パケットの受信に応じて、ポート番号「１５０００」を示す種類判断ポート情報を含むパケットを通信処理装置２のポート１５０００に送信する（ステップＳ２０２）。その種類判断ポート情報を含むパケットは、通信処理装置２でアドレス変換され、情報処理装置１０の種類判断ポート情報受付部１４で受信される。
【０１２８】
次に、種類判断パケット送信部１３は、情報処理装置１０のポート９５００から第１のサーバ４０のポート１２０００に種類判断パケットを送信する（ステップＳ２０３）。その種類判断パケットは、通信処理装置２のポート１５００１を通過して種類判断パケット受信部４１で受信されたとする。種類判断ポート情報送信部４２は、ポート番号「１５００１」を示す種類判断ポート情報を含むパケットを通信処理装置２のポート１５００１に送信する（ステップＳ２０４）。その種類判断ポート情報を含むパケットは、通信処理装置２でアドレス変換され、情報処理装置１０の種類判断ポート情報受付部１４で受信される。
【０１２９】
次に、種類判断パケット送信部１３は、情報処理装置１０のポート１００００から、第２のサーバ５０のポート１２００１に種類判断パケットを送信する（ステップＳ２０５）。その種類判断パケットは、通信処理装置２のポート１５０００を通過して第２のサーバ５０の種類判断パケット受信部５１で受信されたとする。種類判断ポート情報送信部５２は、ポート番号「１５０００」を示す種類判断ポート情報を含むパケットを通信処理装置２のポート１５０００に送信する（ステップＳ２０６）。その種類判断ポート情報を含むパケットは、通信処理装置２でアドレス変換され、情報処理装置１０の種類判断ポート情報受付部１４で受信される。その後、種類判断部１５は、種類判断パケットの送信された情報処理装置１０のポート番号「１００００」、「９５００」と、その種類判断パケットの通過した通信処理装置２のポート番号「１５０００」、「１５００１」とが一致しないが、第１のサーバ４０に送信された種類判断パケットの通過した通信処理装置２のポート番号「１５０００」と、第２のサーバ５０に送信された種類判断パケットの通過した通信処理装置２のポート番号「１５０００」とが一致するため、通信処理装置２の種類がコーン系であると判断する（ステップＳ２０７）。そして、種類判断部１５は、通信処理装置２の種類がコーン系である旨を検出用パケット送信部１６、バブルパケット送信ポート検出部２１に渡す。
【０１３０】
ポート幅検出用パケット送信部１７は、情報処理装置１０のポート１０００１から、第１のサーバ４０のポート１３０００にポート幅検出用パケットを送信する（ステップＳ３０１）。そのポート幅検出用パケットは、通信処理装置２のポート１５００２を通過して、第１のサーバ４０のポート幅検出用パケット受信部４５で受信されたとする。ポート幅検出用ポート情報送信部４６は、ポート番号「１５００２」を示すポート幅検出用ポート情報を含むパケットを、通信処理装置２のポート１５００１に送信する（ステップＳ３０２）。そのポート幅検出用ポート情報を含むパケットは、通信処理装置２でアドレス変換され、情報処理装置１０のポート幅検出用ポート情報受付部１８で受信される。同様にし
て、情報処理装置１０のポート１０００２、１０００３からもそれぞれポート幅検出用パケットが送信され、第１のサーバ４０から、ポート番号「１５００３」、「１５００４」を示すポート幅検出用ポート情報を含むパケットがそれぞれ送信され、ポート幅検出用ポート情報受付部１８で受信されたとする（ステップＳ３０３〜Ｓ３０６）。その後、ポート幅検出部１９は、ポート幅検出用パケットの通過した通信処理装置２のポート番号が、１５００２、１５００３、１５００４であるため、通信処理装置２のポート幅「１」を検出する（ステップＳ３０７）。
【０１３１】
次に、情報処理装置１０の通信部２３は、送信先情報を送信する旨の要求を含む通信要求パケットを構成し、その通信要求パケットをリレーサーバ６０に送信する（ステップＳ４０１）。その通信要求パケットは、リレーサーバ６０を介して、情報処理装置３０に送信される（ステップＳ４０２）。なお、データリレーについては、図１２のフローチャートを用いて詳細に説明したため、この具体例では、リレーされるパケットに通信元の情報処理装置１０の装置識別情報「Ａ００１」、及び通信先の情報処理装置３０の装置識別情報「Ａ００２」などが含まれる旨の説明や、リレーサーバ６０におけるデータリレーの処理に関する説明を省略する。
【０１３２】
情報処理装置３０の通信部３４は、情報処理装置１０から送信された通信要求パケットを受信し、送信先情報送信部３１に送信先情報を送信する旨の指示を渡す。すると、送信先情報送信部３１は、あらかじめ設定されている送信ポートのポート番号「２００００」、受信ポートのポート番号「２０００１」、情報処理装置３０のアドレス「２０２．１３２．１０．６」を含む送信先情報を含む送信先情報パケットを構成し、その送信先情報パケットをリレーサーバ６０に送信する（ステップＳ４０３）。その送信先情報パケットは、リレーサーバ６０を介して、情報処理装置１０に送信される（ステップＳ４０４）。その送信先情報パケットは、情報処理装置１０の送信先情報受付部１１で受信され、その送信先情報パケットに含まれる送信先情報がバブルパケット送信部１２及び通信部２３に渡される。バブルパケット送信部１２及び通信部２３は、その送信先情報を図示しない記録媒体において保持しておく。
【０１３３】
通信処理装置２の種類がコーン系であると種類判断部１５によって判断されているため、この後、検出用パケット送信部１６等は、図１４のフローチャートで示されるようにバブルパケットや検出用パケットの送信を行う（ステップＳ４０５）。その処理について、図１６を用いて説明する。
【０１３４】
まず、検出用パケット送信部１６は、情報処理装置１０のポート１０１００から、検出用パケットを第１のサーバ４０のポート１４０００に送信する（ステップＳ５０１）。その検出用パケットに対して、通信処理装置２においてポート１５００５が割り当てられたとする。その検出用パケットは、第１のサーバ４０の検出用パケット受信部４３で受信され、検出用ポート情報送信部４４は、その検出用パケットのヘッダから、送信元のアドレス「２０２．２２４．１３５．１０」と、ポート番号「１５００５」とを取得して、それらを含む検出用ポート情報を構成し、その検出用ポート情報を含む検出用ポート情報パケットを構成して、検出用パケット受信部４３が受信した検出用パケットの送信元のアドレス、ポート番号に送信する（ステップＳ５０２）。その検出用ポート情報パケットは、通信処理装置２のポート１５００５を介して、情報処理装置１０に送信され、情報処理装置１０の検出用ポート情報受付部２０で受信される。そして、検出用ポート情報が検出用ポート情報受付部２０からバブルパケット送信ポート検出部２１に渡され、検出用ポート情報がバブルパケット送信ポート検出部２１で保持される。
【０１３５】
次に、バブルパケット送信部１２は、検出用パケットの送信された情報処理装置１０のポート１０１００から、バブルパケットを送信する（ステップＳ５０３）。このバブルパ
ケットの送信先は、送信先情報受付部１１が受信した送信先情報パケットに含まれる情報処理装置３０のアドレス、送信ポート２００００である。
【０１３６】
その後、バブルパケット送信ポート検出部２１は、通信処理装置２の種類がコーン系であるため、バブルパケット送信ポートの位置を検出可能であると判断し（ステップＳ４０７）、検出用パケットの通過した通信処理装置２のポート１５００５をバブルパケット送信ポートとして検出する（ステップＳ４０７）。
【０１３７】
出力部２２は、バブルパケット送信ポート検出部２１によって検出されたバブルパケット送信ポートのポート番号「１５００５」、及び検出用ポート情報受付部２０が受信した検出用ポート情報パケットに含まれる通信処理装置２のグローバル側のアドレス「２０２．２２４．１３５．１０」を含む通信要求パケットを構成して、リレーサーバ６０を介して情報処理装置３０に送信する（ステップＳ４０８、Ｓ４０９）。その通信要求パケットは、バブルパケット送信ポート受付部３２で受信される。そして、情報処理装置３０からは、Ｐ２Ｐ通信を確立することができる環境が整った旨を含む応答パケットが、リレーサーバ６０を介して情報処理装置１０に送信される（ステップＳ４１０、Ｓ４１１）。その応答パケットは、情報処理装置１０の通信部２３で受信され、通信部２３は、応答パケットを受信した旨を含む確認パケットを構成して、リレーサーバ６０を介して情報処理装置３０に送信する（ステップＳ４１２、Ｓ４１３）。その確認パケットは、情報処理装置３０の通信部３４で受信される。そして、返信パケット送信部３３は、バブルパケット送信ポート受付部３２で受信された通信要求パケットに含まれるアドレス、及びバブルパケット送信ポートに、送信ポート２００００から返信パケットを送信する（ステップＳ４１４）。その返信パケットは、通信処理装置２のバブルパケット送信ポート１５００５を介して情報処理装置１０に送信され、通信部２３で受信される。その後、情報処理装置１０の通信部２３が情報処理装置３０の受信ポート２０００１にパケットを送信することによって、情報処理装置１０と、情報処理装置３０との間で、リレーサーバ６０を介さないＰ２Ｐ通信が行われる（ステップＳ１０４）。
【０１３８】
次に、通信処理装置２の種類がシンメトリック系である場合について説明する。種類判断パケット送信部１３は、通信処理装置２の種類がコーン系である場合と同様に、第１のサーバ４０、及び第２のサーバ５０に種類判断パケットを送信したとする。その結果、情報処理装置１０のポート１００００から第１のサーバ４０に送信された種類判断パケットは、通信処理装置２のポート１５０００を通過したとする。また、情報処理装置１０のポート９５００から第１のサーバ４０に送信された種類判断パケットは、通信処理装置２のポート１５００１を通過したとする。また、情報処理装置１０のポート１００００から第２のサーバ５０に送信された種類判断パケットは、通信処理装置２のポート１５００２を通過したとする。同じポート１００００から第１のサーバ４０、及び第２のサーバ５０に送信された種類判断パケットが、通信処理装置２の異なるポートを介してそれぞれ送信されているため、種類判断部１５は、通信処理装置２の種類がシンメトリック系であると判断する（ステップＳ２０７）。そして、通信処理装置２の種類がシンメトリック系である旨を検出用パケット送信部１６、バブルパケット送信ポート検出部２１に渡す。
【０１３９】
なお、ポート幅検出用パケット送信部１７がポート幅検出用パケットを送信し、通信処理装置２のポート幅を検出する動作については、通信処理装置２の種類がコーン系である場合と同様であり、その説明を省略する。この場合にも、通信処理装置２のポート幅「１」が検出されたものとする。
【０１４０】
次に、情報処理装置１０の通信部２３は、送信先情報を送信する旨の要求を含む通信要求パケットを構成して、リレーサーバ６０を介して情報処理装置３０に送信する（ステップＳ４０１、Ｓ４０２）。その通信要求パケットは、情報処理装置３０の通信部３４で受
信される。その通信要求パケットの受信に応じて、送信先情報送信部３１は、あらかじめ設定されている送信ポートのポート番号「２００００」、受信ポートのポート番号「２０００１」、情報処理装置３０のアドレス「２０２．１３２．１０．６」を含む送信先情報を含む送信先情報パケットを構成して、リレーサーバ６０を介して情報処理装置１０に送信する（ステップＳ４０３、Ｓ４０４）。その送信先情報パケットは、情報処理装置１０の送信先情報受付部１１で受信され、その送信先情報パケットに含まれる送信先情報がバブルパケット送信部１２及び通信部２３に渡される。バブルパケット送信部１２及び通信部２３は、その送信先情報を図示しない記録媒体において保持しておく。
【０１４１】
通信処理装置２の種類がシンメトリック系であると種類判断部１５によって判断されているため、この後、検出用パケット送信部１６等は、図１５のフローチャートで示されるようにバブルパケットや検出用パケットの送信を行う（ステップＳ４０５）。その処理について、図１７を用いて説明する。
【０１４２】
まず、検出用パケット送信部１６は、情報処理装置１０のポート１０１００から、検出用パケットを第１のサーバ４０のポート１４０００に送信する（ステップＳ６０１）。そのポート１０１００は、情報処理装置１０において新たに割り当てられたポートである。その検出用パケットに対して、通信処理装置２においてポート１５００５が割り当てられたとする。その検出用パケットは、第１のサーバ４０の検出用パケット受信部４３で受信され、検出用ポート情報送信部４４は、その検出用パケットのヘッダから、送信元のアドレス「２０２．２２４．１３５．１０」と、ポート番号「１５００５」とを取得して、それらを含む検出用ポート情報を構成し、その検出用ポート情報を含む検出用ポート情報パケットを構成して、検出用パケット受信部４３が受信した検出用パケットの送信元のアドレス、ポート番号に送信する（ステップＳ６０２）。その検出用ポート情報パケットは、通信処理装置２のポート１５００５を介して、情報処理装置１０に送信され、情報処理装置１０の検出用ポート情報受付部２０で受信される。そして、その検出用ポート情報が検出用ポート情報受付部２０からバブルパケット送信ポート検出部２１に渡され、その検出用ポート情報がバブルパケット送信ポート検出部２１で保持される。
【０１４３】
次に、バブルパケット送信部１２は、情報処理装置１０において新たに割り当てられたポート１０１０１から、バブルパケットを送信する（ステップＳ６０３）。このバブルパケットの送信先は、送信先情報受付部１１が受信した送信先情報パケットに含まれる情報処理装置３０のアドレス「２０２．１３２．１０．６」、送信ポート２００００である。そのバブルパケットに対して、通信処理装置２においてポート１５００６が割り当てられたとする。
【０１４４】
その後、検出用パケット送信部１６は、再度、情報処理装置１０において新たに割り当てられたポート１０１０２から、検出用パケットを第１のサーバ４０のポート１４０００に送信する（ステップＳ６０４）。その検出用パケットに対して、通信処理装置２においてポート１５００７が割り当てられたとする。その検出用パケットは、第１のサーバ４０の検出用パケット受信部４３で受信され、検出用ポート情報送信部４４は、その検出用パケットのヘッダから、送信元のアドレス「２０２．２２４．１３５．１０」と、ポート番号「１５００７」とを取得して、それらを含む検出用ポート情報を構成し、その検出用ポート情報を含む検出用ポート情報パケットを構成して、検出用パケット受信部４３が受信した検出用パケットの送信元のアドレス、ポート番号に送信する（ステップＳ６０５）。その検出用ポート情報パケットは、通信処理装置２のポート１５００７を介して、情報処理装置１０に送信され、情報処理装置１０の検出用ポート情報受付部２０で受信される。そして、その検出用ポート情報が検出用ポート情報受付部２０からバブルパケット送信ポート検出部２１に渡され、その検出用ポート情報がバブルパケット送信ポート検出部２１で保持される。
【０１４５】
その後、バブルパケット送信ポート検出部２１は、保持している２個の検出用ポート情報の示す２個のポート番号の差が、ポート幅検出部１９によって検出された通信処理装置２のポート幅「１」の２倍であるかどうか判断する。この場合は、２倍であるので、バブルパケット送信ポートを検出可能であると判断し、バブルパケット送信ポートのポート番号を、検出用ポート情報の示す２個のポート番号「１５００５」、「１５００７」の真ん中のポート番号「１５００６」であると検出する（ステップＳ４０７）。その後、情報処理装置１０から通信要求パケットが送信され、情報処理装置３０から応答パケットが送信され、情報処理装置１０から確認パケットが送信され、情報処理装置３０から返信パケットが送信されることなどによって、情報処理装置１０と、情報処理装置３０との間でＰ２Ｐ通信が確立される処理は、通信処理装置２がコーン系である場合の説明と同様であり、その説明を省略する。
【０１４６】
なお、上記説明では、第１のサーバ４０から送信された検出用ポート情報の示す２個のポート番号の差が、ポート幅検出部１９によって検出された通信処理装置２のポート幅の２倍である場合について説明したが、２倍でない場合、例えば、一方の検出用ポート情報の示すポート番号が「１５００５」であり、他方の検出用ポート情報の示すポート番号が「１５００８」である場合には、バブルパケットがポート番号「１５００６」のポートを通過したのか、あるいは、ポート番号「１５００７」のポートを通過したのかを判断することができないため、バブルパケット送信ポート検出部２１は、バブルパケット送信ポートを検出できないと判断し、バブルパケット送信部１２、及び検出用パケット送信部１６に、バブルパケット、及び検出用パケットを再度送信する旨の指示を渡す。そして、検出用パケット、及びバブルパケットの送信が再度行われる。ここで、検出用パケット、及びバブルパケットを再度送信する場合には、それらのパケットは、通信処理装置２において新たに割り当てられるポートを介して送信されるものとする。そのためには、例えば、情報処理装置１０において新たに割り当てられたポートから、それらのパケットを送信すればよい。
【０１４７】
次に、通信処理装置２の種類がポートリューズである場合について説明する。種類判断パケット送信部１３は、通信処理装置２の種類がコーン系である場合と同様に、第１のサーバ４０、及び第２のサーバ５０に種類判断パケットを送信したとする。その結果、情報処理装置１０のポート１００００から第１のサーバ４０に送信された種類判断パケットは、通信処理装置２のポート１００００を通過したとする。また、情報処理装置１０のポート９５００から第１のサーバ４０に送信された種類判断パケットは、通信処理装置２のポート９５００を通過したとする。また、情報処理装置１０のポート１００００から第２のサーバ５０に送信された種類判断パケットは、通信処理装置２のポート１００００を通過したとする。情報処理装置１０から第１のサーバ４０に送信された２個の種類判断パケットについて、送信元の情報処理装置１０のポートのポート番号と、その種類判断パケットの通過した通信処理装置２のポートのポート番号とがそれぞれ等しいため、種類判断部１５は、通信処理装置２の種類がポートリューズであると判断する（ステップＳ２０７）。そして、通信処理装置２の種類がポートリューズである旨を検出用パケット送信部１６、バブルパケット送信ポート検出部２１に渡す。
【０１４８】
なお、ポート幅検出用パケット送信部１７がポート幅検出用パケットを送信し、通信処理装置２のポート幅を検出する動作については、通信処理装置２の種類がコーン系である場合と同様であり、その説明を省略する。この場合にも、通信処理装置２のポート幅「１」が検出されたものとする。ここで、通信処理装置２の種類がポートリューズである場合には、そのポート割り当てルールの性質上、通信処理装置２のポート幅は「１」となる。
【０１４９】
次に、情報処理装置１０の通信部２３は、送信先情報を送信する旨の要求を含む通信要
求パケットを構成して、リレーサーバ６０を介して情報処理装置３０に送信する（ステップＳ４０１、Ｓ４０２）。その通信要求パケットは、情報処理装置３０の通信部３４で受信される。その通信要求パケットの受信に応じて、送信先情報送信部３１は、あらかじめ設定されている送信ポートのポート番号「２００００」、受信ポートのポート番号「２０００１」、情報処理装置３０のアドレス「２０２．１３２．１０．６」を含む送信先情報を含む送信先情報パケットを構成して、リレーサーバ６０を介して情報処理装置１０に送信する（ステップＳ４０３、Ｓ４０４）。その送信先情報パケットは、情報処理装置１０の送信先情報受付部１１で受信され、その送信先情報パケットに含まれる送信先情報がバブルパケット送信部１２及び通信部２３に渡される。バブルパケット送信部１２及び通信部２３は、その送信先情報を図示しない記録媒体において保持しておく。
【０１５０】
通信処理装置２の種類がポートリューズであると種類判断部１５によって判断されているため、この後、検出用パケット送信部１６等は、図１４のフローチャートで示されるようにバブルパケットや検出用パケットの送信を行う（ステップＳ４０５）。その処理について、図１８を用いて説明する。
【０１５１】
まず、検出用パケット送信部１６は、情報処理装置１０のポート１０１００から、検出用パケットを第１のサーバ４０のポート１４０００に送信する（ステップＳ５０１）。その検出用パケットは、第１のサーバ４０の検出用パケット受信部４３で受信され、検出用ポート情報送信部４４は、その検出用パケットのヘッダから、送信元のアドレス「２０２．２２４．１３５．１０」と、ポート番号「１０１００」とを取得して、それらを含む検出用ポート情報を構成し、その検出用ポート情報を含む検出用ポート情報パケットを構成して、検出用パケット受信部４３が受信した検出用パケットの送信元のアドレス、ポート番号に送信する（ステップＳ５０２）。その検出用ポート情報パケットは、通信処理装置２のポート１０１００を介して、情報処理装置１０に送信され、情報処理装置１０の検出用ポート情報受付部２０で受信される。そして、検出用ポート情報が検出用ポート情報受付部２０からバブルパケット送信ポート検出部２１に渡され、検出用ポート情報がバブルパケット送信ポート検出部２１で保持される。
【０１５２】
次に、バブルパケット送信部１２は、同じくポート１０１００から、バブルパケットを送信する（ステップＳ５０３）。このバブルパケットの送信先は、送信先情報受付部１１が受信した送信先情報パケットに含まれる情報処理装置３０のアドレス、送信ポート２００００である。そのバブルパケットも、検出用パケットと同様に通信処理装置２のポート１０１００を通過する。
【０１５３】
その後、バブルパケット送信ポート検出部２１は、第１のサーバ４０から送信された検出用ポート情報の示すポート番号が、検出用パケットの送信された情報処理装置１０のポートのポート番号と等しいかどうか判断する。この場合には、両者が等しいため、バブルパケット送信ポートの位置を検出可能であると判断する（ステップＳ４０６）。そして、バブルパケット送信ポート検出部２１は、検出用パケットの通過した通信処理装置２のポート１０１００をバブルパケット送信ポートとして検出する（ステップＳ４０７）。その後、情報処理装置１０と、情報処理装置３０との間でＰ２Ｐ通信が開始されるまでの処理は、通信処理装置２がコーン系である場合の説明と同様であり、その説明を省略する。
【０１５４】
なお、バブルパケット送信ポート検出部２１は、第１のサーバ４０から送信された検出用ポート情報の示すポート番号が、検出用パケットの送信された情報処理装置１０のポートのポート番号と異なる場合には、バブルパケット送信ポートの位置の検出を行うことができないと判断し、検出用パケットの送信と、バブルパケットの送信とを再度行う旨の指示をバブルパケット送信部１２、及び検出用パケット送信部１６に渡す。
【０１５５】
このように、検出用パケット送信部１６は、通信処理装置２の種類がポートリューズである場合には、検出用パケットを送信する情報処理装置１０のポート（このポートを「第１のポート」と呼ぶことにする）の位置と、その検出用パケットが通過した通信処理装置２のポート（このポートを「第２のポート」と呼ぶことにする）の位置とが一致するまで、それまでに検出用パケットの送信で用いた情報処理装置１０のポートとは異なるポートから検出用パケットを送信する。そして、バブルパケット送信部１２は、第１のポートの位置と第２のポートの位置とが一致した場合における第１のポートからバブルパケットを送信することになる。
【０１５６】
すなわち、この具体例で説明したように、第１のポートの位置と、第２のポートの位置とが等しくなるまで、検出用パケットの送信と、バブルパケットの送信とを繰り返してもよく、あるいは、第１のポートの位置と、第２のポートの位置とが等しくなるまで、検出用パケットの送信のみを繰り返し、両者が等しくなった後に、両者が等しい検出用パケットを送信した情報処理装置１０のポートから、バブルパケットを送信するようにしてもよい。
【０１５７】
ここで、通信処理装置２の種類がポートリューズである場合に、なぜ、検出用パケットの送信された情報処理装置１０のポートのポート番号と、その検出用パケットの通過した通信処理装置２のポートのポート番号とが異なることがあるのかについて簡単に説明する。図１９で示されるように、通信処理装置２のローカル側に情報処理装置１０以外の情報処理装置３が存在する場合に、情報処理装置１０が検出用パケットをポート１０１００から送信するよりも以前に、情報処理装置３がポート１０１００から何らかのパケットを送信していたとする。その場合には、その情報処理装置３から送信されたパケットに対して、通信処理装置２においてポート１０１００が割り当てられることになる。したがって、情報処理装置１０が検出用パケットを送信したときには、すでに通信処理装置２におけるポート１０１００は使用されているため、通信処理装置２は、他のポート、例えば、ポート１０１０１を情報処理装置１０から送信された検出用パケットに割り当てることになる。したがって、このような場合には、通信処理装置２の種類がポートリューズであったとしても、検出用パケットの送信された情報処理装置１０のポートのポート番号と、その検出用パケットの通過した通信処理装置２のポートのポート番号とが異なることになる。
【０１５８】
なお、図１９で説明した通信処理装置２の送信ポート割り当てルールは一例である。例えば、情報処理装置３のポート１０１００から第１のサーバ４０のポート１４０００に何らかのパケットが送信された場合には、情報処理装置１０のポート１０１００から第１のサーバ４０のポート１４０００に送信された検出用パケットに対して、通信処理装置２のポート１０１００以外のポートが割り当てられるが、情報処理装置３のポート１０１００から第１のサーバ４０のポート１４０００以外のポート、あるいは、第１のサーバ４０以外の装置に何らかのパケットが送信された場合には、情報処理装置１０のポート１０１００から送信された検出用パケットに対して、通信処理装置２のポート１０１００が割り当てられる、という送信ポート割り当てルールもありうる。この場合であっても、情報処理装置３が第１のサーバ４０のポート１４０００に、情報処理装置３のポート１０１００からパケットを送信している場合には、情報処理装置１０のポート１０１００から送信された検出用パケットに、ポート１０１００以外のポートが通信処理装置２において割り当てられることになる。
【０１５９】
また、この具体例では、通信処理装置２の種類がコーン系である場合には、検出用パケット送信部１６が、バブルパケットが送信される前に、バブルパケットが送信される情報処理装置１０のポートと同じポートを用いて検出用パケットを送信すると説明したが、検出用パケット送信部１６は、バブルパケットが送信された後に、検出用パケットを送信してもよい。すなわち、検出用パケット送信部１６は、通信処理装置２の種類がコーン系で
ある場合に、バブルパケットの送信の前、あるいは後に、情報処理装置１０におけるバブルパケットが送信されるポートと同じポートを用いて検出用パケットを送信してもよい。
【０１６０】
また、この具体例では、通信処理装置２の種類がコーン系である場合に、バブルパケットと検出用パケットとが連続して送信されると説明したが、バブルパケットの送信時点と、検出用パケットの送信時点とは、時間的に離れていてもよい。ただし、通信処理装置２によっては、例えば、情報処理装置１０のポート１０１００から送信された検出用パケットがポート１５００５を通過してから、所定の時間が経過すると、その後に情報処理装置１０のポート１０１００から送信されたパケットに対して、ポート１５００５以外のポートが割り当てられることがある。その所定の時間のことをポート維持時間と呼ぶ。したがって、バブルパケットの送信時点と、検出用パケットの送信時点とが時間的に離れている場合であっても、そのポート維持時間以内であることが好ましい。
【０１６１】
また、この具体例では、検出用パケット送信部１６が、通信処理装置２の種類がシンメトリック系である場合に、バブルパケットの送信の前、及び送信の後に検出用パケットを連続して送信する場合について説明したが、検出用パケットの送信と、バブルパケットの送信とは連続していなくてもよい。例えば、図２０で示されるように、情報処理装置１０は、検出用パケット、バブルパケット、その他のパケット、検出用パケットを、その順番で連続して送信し、検出用パケットの通過した通信処理装置２のポートのポート番号と、通信処理装置２のポート幅とを知ることができれば、バブルパケット送信ポートの位置を検出することができる。ここで、「その他のパケット」とは、検出パケットでもなく、バブルパケットでもないパケットであり、情報処理装置１０もしくは情報処理装置１０に連携した図示しない情報処理装置が何らかの目的で送信するパケットである。例えば、図２０において、ポートＰ３０１のポート番号が「１５００５」であり、ポートＰ３０２のポート番号が「１５００８」であり、通信処理装置２のポート幅が「１」であれば、バブルパケット送信ポートＰ３０３のポート番号は、「１５００６」であると検出することができる。
【０１６２】
また、この具体例では、検出用パケット送信部１６が、通信処理装置２の種類がコーン系である場合には、検出用パケットの通過する通信処理装置２のポートがバブルパケット送信ポートと同一となり、通信処理装置２の種類がシンメトリック系である場合には、検出用パケットの通過する通信処理装置２のポートと、バブルパケット送信ポートとが異なるように検出用パケットを送信する場合について説明したが、通信処理装置２の種類がコーン系である場合にも、検出用パケット送信部１６は、２以上の検出用パケットを送信し、その２以上の検出用パケットのうち、少なくとも１個の検出用パケットに関する検出用パケット送信ポートがバブルパケット送信ポートと異なってもよい。すなわち、検出用パケット送信部１６は、通信処理装置２の種類がコーン系である場合には、少なくとも１個の検出用パケットの通過する通信処理装置２のポートがバブルパケット送信ポートと同一となり、通信処理装置２の種類がシンメトリック系である場合には、検出用パケットの通過する通信処理装置２のポートと、バブルパケット送信ポートとが異なるように検出用パケットを送信してもよい。
【０１６３】
また、この具体例では、通信処理装置２の種類がシンメトリック系であれば、情報処理装置１０において新たに割り当てられたポートを用いて検出用パケットを送信する場合について説明したが、通信処理装置２の種類がシンメトリック系であれば、２個の検出用パケットの送信先のアドレス及びポート番号をそれぞれ異なるものとすることによって、その２個の検出用パケットの送信において割り当てられる通信処理装置２のポートが異なるものとなるため、２個の検出用パケットを情報処理装置１０の同一のポートから送信し、その２個の検出用パケットの送信先のアドレス及びポート番号をそれぞれ異なるものとしてもよい。その場合には、第１のサーバ４０以外にも、検出用パケットを受信するサーバ
等が存在するものとする。
【０１６４】
［具体例２］
この具体例では、通信処理装置２の種類に関わらず、所定の方法で検出用パケットを送信することにより、結果として、通信処理装置２の種類に応じた検出用パケットの送信となる場合について説明する。すなわち、検出用パケット送信部１６は、バブルパケットの送信の前後に、それぞれ異なるポートから検出用パケット送信するものである。ただし、検出用パケット送信部１６は、バブルパケットの送信の前に送信する検出用パケットを、バブルパケット送信部１２がバブルパケットを送信するポートと同じポートから送信するものとする。まず、図１２のフローチャートのステップＳ４０５における処理について、図２１のフローチャートを用いて説明する。
【０１６５】
（ステップＳ７０１）検出用パケット送信部１６は、情報処理装置１０において新たに割り当てられたポートから、検出用パケットを第１のサーバ４０に送信する。その検出用パケットは、第１のサーバ４０の検出用パケット受信部４３で受信される。
【０１６６】
（ステップＳ７０２）第１のサーバ４０の検出用ポート情報送信部４４は、検出用パケット受信部４３で受信された検出用パケットのヘッダから、検出用パケットの送信元のアドレス、及びポート番号を取得する。そして、検出用ポート情報送信部４４は、そのアドレスとポート番号とを含む検出用ポート情報を構成し、検出用パケット受信部４３が受信した検出用パケットの送信元のアドレス、ポート番号に送信する。その検出用ポート情報は、通信処理装置２を介して情報処理装置１０に送信され、検出用ポート情報受付部２０で受信される。
【０１６７】
（ステップＳ７０３）バブルパケット送信部１２は、ステップＳ７０１において検出用パケットの送信された情報処理装置１０のポートから、送信先情報受付部１１が受信した送信先情報の示すアドレス、ポート番号にバブルパケットを送信する。
【０１６８】
（ステップＳ７０４）検出用パケット送信部１６は、情報処理装置１０において新たに割り当てられたポートから、検出用パケットを第１のサーバ４０に送信する。すなわち、ステップＳ７０１での検出用パケットの送信で用いた情報処理装置１０のポートとは異なるポートから検出用パケットを送信する。その検出用パケットは、第１のサーバ４０の検出用パケット受信部４３で受信される。
【０１６９】
（ステップＳ７０５）第１のサーバ４０の検出用ポート情報送信部４４は、ステップＳ７０２と同様に、検出用ポート情報を構成し、送信する。その検出用ポート情報は、通信処理装置２を介して情報処理装置１０に送信され、検出用ポート情報受付部２０で受信される。
【０１７０】
次に、この具体例における情報処理装置間でＰ２Ｐ通信を確立する処理について説明する。なお、通信処理装置２の種類を判断する処理については、具体例１と同様であり、その説明を省略する。また、この具体例では、ステップＳ３０１〜Ｓ３０７までのポート幅を検出する処理と、ステップＳ４０５のバブルパケット、検出用パケットを送信する処理とを一体として行う場合について説明する。したがって、まず、情報処理装置１０と、情報処理装置３０との間で、リレーサーバ６０を介した通信が行われ、情報処理装置３０から情報処理装置１０に、送信先情報が送信される（ステップＳ４０１〜Ｓ４０４）。この処理は、具体例１と同様であり、その説明を省略する。送信先情報の内容も、具体例１と同様であるとする。また、通信処理装置２の種類がコーン系、あるいはシンメトリック系である場合についてまず説明し、最後に、通信処理装置２の種類がポートリューズである場合について説明するものとする。
【０１７１】
まず、ポート幅検出用パケット送信部１７は、情報処理装置１０のポート１０１００から、第１のサーバ４０のポート１４０００にポート幅検出用パケットを送信する（ステップＳ３０１）。そのポート幅検出用パケットは、通信処理装置２のポート１５００２を通過して第１のサーバ４０のポート幅検出用パケット受信部４５で受信されたとする。ポート幅検出用ポート情報送信部４６は、ポート番号「１５００２」を示すポート幅検出用ポート情報を含むパケットを通信処理装置２のポート１５００１に送信する（ステップＳ３０２）。そのポート幅検出用ポート情報を含むパケットは、通信処理装置２でアドレス変換され、情報処理装置１０のポート幅検出用ポート情報受付部１８で受信される。同様にして、情報処理装置１０のポート１０００２からもポート幅検出用パケットが送信され、第１のサーバ４０から、ポート番号「１５００３」を示すポート幅検出用ポート情報を含むパケットが送信され、ポート幅検出用ポート情報受付部１８で受信されたとする（ステップＳ３０３、Ｓ３０４）。
【０１７２】
その後、検出用パケット送信部１６は、情報処理装置１０のポート１０１０２から、検出用パケットを第１のサーバ４０のポート１４０００に送信する（ステップＳ７０１）。なお、この検出用パケットは、ポート幅検出用パケットを兼ねている。その検出用パケットに対して、通信処理装置２においてポート１５００４が割り当てられたとする。その検出用パケットは、第１のサーバ４０の検出用パケット受信部４３で受信され、検出用ポート情報送信部４４は、その検出用パケットのヘッダから、送信元のアドレス「２０２．２２４．１３５．１０」と、ポート番号「１５００４」とを取得して、それらを含む検出用ポート情報を構成し、その検出用ポート情報を含む検出用ポート情報パケットを構成して、検出用パケット受信部４３が受信した検出用パケットの送信元のアドレス、ポート番号に送信する（ステップＳ７０２）。その検出用ポート情報パケットは、通信処理装置２のポート１５００４を介して、情報処理装置１０に送信され、情報処理装置１０の検出用ポート情報受付部２０で受信される。検出用ポート情報受付部２０は、その受信した検出用ポート情報パケットに含まれるポート番号「１５００４」をポート幅検出用ポート情報受付部１８に渡す。その結果、ポート幅検出部１９は、ポート幅検出用パケットの通過した通信処理装置２のポート番号「１５００２」、「１５００３」、「１５００４」を知ることができ、通信処理装置２のポート幅「１」を検出する（ステップＳ３０７）。また、検出用ポート情報が検出用ポート情報受付部２０からバブルパケット送信ポート検出部２１に渡され、検出用ポート情報がバブルパケット送信ポート検出部２１で保持される。
【０１７３】
バブルパケット送信部１２は、検出用パケットの送信された直後に、検出用パケットの送信された情報処理装置１０のポート１０１０２から、バブルパケットを送信する（ステップＳ７０３）。このバブルパケットの送信先は、送信先情報受付部１１が受信した送信先情報パケットに含まれる情報処理装置３０のアドレス、送信ポート２００００である。なお、そのバブルパケットに対して、通信処理装置２のポートＰ４０１が割り当てられたものとする。このポートＰ４０１は、通信処理装置２の種類がコーン系である場合には、ポート１５００４であり、通信処理装置２の種類がシンメトリック系である場合には、ポート１５００５である。
【０１７４】
その後、検出用パケット送信部１６は、情報処理装置１０のポート１０１０３から、検出用パケットを第１のサーバ４０のポート１４０００に送信する（ステップＳ７０４）。その検出用パケットに対して、通信処理装置２においてポートＰ４０２が割り当てられたとする。このポートＰ４０２は、通信処理装置２の種類がコーン系である場合には、ポート１５００５であり、通信処理装置２の種類がシンメトリック系である場合には、ポート１５００６である。その検出用パケットは、第１のサーバ４０の検出用パケット受信部４３で受信され、検出用ポート情報送信部４４は、その検出用パケットのヘッダから、送信元のアドレス「２０２．２２４．１３５．１０」と、ポートＰ４０２のポート番号とを取
得して、それらを含む検出用ポート情報を構成し、その検出用ポート情報を含む検出用ポート情報パケットを構成して、検出用パケット受信部４３が受信した検出用パケットの送信元のアドレス、ポート番号に送信する（ステップＳ７０５）。その検出用ポート情報パケットは、通信処理装置２のポートＰ４０２を介して、情報処理装置１０に送信され、情報処理装置１０の検出用ポート情報受付部２０で受信される。そして、検出用ポート情報が検出用ポート情報受付部２０からバブルパケット送信ポート検出部２１に渡され、検出用ポート情報がバブルパケット送信ポート検出部２１で保持される。
【０１７５】
バブルパケット送信ポート検出部２１は、種類判断部１５によって判断された通信処理装置２の種類がコーン系である場合には、バブルパケット送信ポートの位置を検出可能であると判断し（ステップＳ４０６）、ポート１５００４をバブルパケット送信ポートとして検出する（ステップＳ４０７）。
【０１７６】
一方、種類判断部１５によって判断された通信処理装置２の種類がシンメトリック系である場合には、バブルパケット送信ポート検出部２１は、ポートＰ４０２のポート番号と、ポート番号１５００４との差がポート幅「１」の２倍であるかどうか判断し、２倍であればバブルパケット送信ポートを検出可能であると判断し、２倍でなければバブルパケット送信ポートを検出できないと判断して、バブルパケット送信部１２、及び検出用パケット送信部１６に、バブルパケット、及び検出用パケットをそれぞれ再度送信するように指示し、バブルパケット、及び検出用パケットの送信が繰り返される。この場合には、ポートＰ４０２のポート番号が「１５００６」であるとすると、バブルパケット送信ポート検出部２１は、バブルパケット送信ポートを検出可能であると判断し、ポート１５００５をバブルパケット送信ポートとして検出する（ステップＳ４０７）。
【０１７７】
通信処理装置２の種類がポートリューズである場合には、図２３で示されるように、パケットの送信される情報処理装置１０のポート番号と、そのパケットの通過する通信処理装置２のポート番号とが等しくなる。その結果、通信処理装置２の種類がコーン系である場合と同様にして、ポート１０１０２がバブルパケット送信ポートとして検出される（ステップＳ４０７）。
その後、情報処理装置１０と、情報処理装置３０との間でＰ２Ｐ通信が開始されるまでの処理は、具体例１の説明と同様であり、その説明を省略する。
【０１７８】
なお、この具体例では、検出用パケット送信部１６が、バブルパケットの送信の前に送信する検出用パケットを、バブルパケット送信部１２がバブルパケットを送信するポートと同じポートから送信する場合について説明したが、検出用パケット送信部１６は、バブルパケットの送信の後に送信する検出用パケットを、バブルパケット送信部１２がバブルパケットを送信するポートと同じポートから送信してもよい。この場合には、バブルパケットの送信の前に送信する検出用パケットは、バブルパケット送信部１２がバブルパケットを送信するポートと異なるポートから送信されるものとする。このように、検出用パケット送信部１６は、バブルパケットの送信の前、及び送信の後に、それぞれ異なるポートから検出用パケット送信し、一方の検出用パケットを、バブルパケット送信部１２がバブルパケットを送信するポートと同じポートから送信するものとするものであればよい。
【０１７９】
また、この具体例では、情報処理装置３０の送信ポートと受信ポートとが異なる場合について説明したが、送信ポートと受信ポートとは同一のポートであってもよい。
また、この具体例では、通信処理装置２の種類がシンメトリック系である場合に、バブルパケット送信ポートを２個の検出用パケット送信ポートではさむことにより、厳密に検出する場合について説明したが、これは一例であって、例えば、通信処理装置２の種類がシンメトリック系である場合であっても、検出用パケットをバブルパケットの前後のいずれかに送信し、その検出用パケットの通過した検出用パケット送信ポートからポート幅だ
け離れたポートの位置を、バブルパケット送信ポートの位置として検出してもよい。例えば、図１７で示される図において、２回目の検出用パケットを送信せず、１回目の検出用パケットの通過したポート１５００５からポート幅「１」だけ離れたポート１５００６をバブルパケット送信ポートとして検出してもよい。
【０１８０】
以上のように、本実施の形態による情報処理システムによれば、通信処理装置２の種類に応じて、検出用パケット送信ポートと、バブルパケット送信ポートとが同一となる、または異なるように検出用パケットを送信することによって、通信処理装置２の種類に関わらず、バブルパケット送信ポートの位置を正確に検出することができうる。その結果、その検出されたバブルパケット送信ポートの位置を示す情報を用いて、情報処理装置間でのＰ２Ｐ通信を確実に確立することができうる。
【０１８１】
なお、本実施の形態では、通信処理装置２の種類に関わらず、図１２のフローチャートで示されるように通信要求パケットやバブルパケットなどを送信する場合について説明したが、通信処理装置２の種類に応じて、通信要求パケットやバブルパケットなどの送信順序を変更してもよい。例えば、通信処理装置２の種類がシンメトリック系である場合には、図１２で示されるようにパケットを送信し、通信処理装置２の種類がコーン系である場合には、図２４のフローチャートで示されるようにパケットを送信してもよい。図２４のフローチャートについて説明する。
【０１８２】
（ステップＳ８０１）情報処理装置１０の検出用パケット送信部１６は、検出用パケットを第１のサーバ４０に送信する。そして、情報処理装置１０の検出用ポート情報受付部２０は、第１のサーバ４０から送信された検出用ポート情報を受信する。
【０１８３】
（ステップＳ８０２）バブルパケット送信ポート検出部２１は、検出用ポート情報受付部２０が受信した検出用ポート情報に基づいて、その検出用ポート情報の示す検出用パケット送信ポートを、バブルパケット送信ポートとして検出する。
【０１８４】
（ステップＳ８０３）出力部２２は、ステップＳ４０１と同様に、通信要求パケットをリレーサーバ６０に送信する。ただし、この通信要求パケットには、ステップＳ８０２で検出されたバブルパケット送信ポートの位置を示すバブルパケット送信ポート情報が含まれている。
【０１８５】
（ステップＳ８０４）リレーサーバ６０は、ステップＳ４０２と同様に、通信要求パケットを転送する。
（ステップＳ８０５）情報処理装置３０の通信部３４は、ステップＳ４０３と同様に、送信先情報パケットを構成し、リレーサーバ６０に送信する。
【０１８６】
（ステップＳ８０６）リレーサーバ６０は、ステップＳ４０４と同様に、送信先情報パケットを、通信処理装置２を介して情報処理装置１０に転送する。
（ステップＳ８０７）バブルパケット送信部１２は、ステップＳ８０１で検出用パケットが送信された情報処理装置１０のポートと同一のポートから、バブルパケットを送信する。そのバブルパケットの送信先は、情報処理装置３０から送信された送信先情報の示すアドレス、送信ポートである。
【０１８７】
（ステップＳ８０８）通信部２３は、Ｐ２Ｐ通信を確立することができる環境が整った旨を含む応答パケットを構成し、その応答パケットをリレーサーバ６０に送信する。
（ステップＳ８０９）リレーサーバ６０は、その応答パケットを情報処理装置３０に転送する。
【０１８８】
（ステップＳ８１０）返信パケット送信部３３は、情報処理装置１０から送信されたバブルパケット送信ポート情報の示すアドレス、バブルパケット送信ポートに、返信パケットを送信する。その後、情報処理装置１０と、情報処理装置３０との間において、Ｐ２Ｐ通信が開始されるのは、本実施の形態で説明したとおりである。
【０１８９】
このように、バブルパケットや検出パケットの送信の順序や方法には、ある程度の任意性がある。したがって、本実施の形態、及び上記各具体例で説明した以外の方法であっても、通信処理装置２の種類に応じて、適切にバブルパケット送信ポートの位置を検出できるのであれば、その方法を用いてもよい。
【０１９０】
（実施の形態２）
本発明の実施の形態２による情報処理システム等について、図面を参照しながら説明する。本実施の形態による情報処理システム等は、情報処理装置ではなく、サーバにおいて通信処理装置の種類の判断や、ポート幅の検出、バブルパケット送信ポートの検出を行うものである。
【０１９１】
本実施の形態による情報処理システムの構成は、実施の形態１の図１において、情報処理装置１０、第１のサーバ４０、第２のサーバ５０に代えて、それぞれ情報処理装置７０、第１のサーバ８０、第２のサーバ９０を備える以外、実施の形態体１の図１と同様であるとし、情報処理装置７０、第１のサーバ８０、第２のサーバ９０以外の説明を省略する。
【０１９２】
図２５は、本実施の形態による情報処理装置７０の構成を示すブロック図である。図２５において、本実施の形態による情報処理装置７０は、送信先情報受付部１１と、バブルパケット送信部１２と、種類判断パケット送信部１３と、検出用パケット送信部１６と、ポート幅検出用パケット送信部１７と、通信部２３と、種類情報受付部７１と、再送信指示受付部７２と、バブルパケット送信ポート受付部７３と、出力部７４とを備える。なお、種類情報受付部７１、再送信指示受付部７２、バブルパケット送信ポート受付部７３、出力部７４以外の構成及び動作は、通信処理装置２の種類の判断、通信処理装置２のポート幅の検出、バブルパケット送信ポートの検出を第１のサーバ８０で行う以外、実施の形態１と同様であり、その説明を省略する。
【０１９３】
種類情報受付部７１は、通信処理装置２の種類を示す情報である種類情報を受け付ける。この種類情報は、例えば、通信処理装置２の種類がコーン系、シンメトリック系、ポートリューズのいずれであるのかを示す情報である。なお、本実施の形態では、検出用パケット送信部１６は、その種類情報の示す通信処理装置２の種類に応じて、検出用パケットの送信を行うものとする。すなわち、検出用パケット送信部１６は、種類情報の示す通信処理装置２の種類に応じて、検出用パケットの送信方法を変更するものとする。種類情報受付部７１は、例えば、入力デバイス（例えば、キーボードやマウス、タッチパネルなど）から入力された種類情報を受け付けてもよく、有線もしくは無線の通信回線を介して送信された種類情報を受信してもよく、所定の記録媒体（例えば、光ディスクや磁気ディスク、半導体メモリなど）から読み出された種類情報を受け付けてもよい。本実施の形態では、種類情報受付部７１が受け付ける種類情報は、種類判断パケット送信部１３が送信した種類判断パケットに基づいて判断された結果である場合について説明するが、それに限定されるものではなく、種類情報受付部７１が受け付ける種類情報は、例えば、通信処理装置２のマニュアル等に基づいてユーザによって判断された結果であってもよい。また、本実施の形態では、種類情報受付部７１は、通信回線を介して第１のサーバ８０から送信された種類情報を受信するものとする。また、種類情報受付部７１は、受け付けを行うためのデバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい。また、種類情報受付部７１は、ハードウェアによって実現されてもよく
、あるいは所定のデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【０１９４】
再送信指示受付部７２は、再送信指示を受け付ける。ここで、再送信指示とは、バブルパケット、及び検出用パケットを再度送信する旨の指示である。バブルパケット送信部１２、検出用パケット送信部１６は、再送信指示受付部７２が再送信指示を受け付けた場合に、バブルパケット、検出用パケットをそれぞれ再度送信する。バブルパケット送信部１２、及び検出用パケット送信部１６は、バブルパケット、及び検出用パケットを再度送信する場合に、実施の形態１での説明と同様に、通信処理装置２において新たに割り当てられるポートを介してそれらのパケットが送信されるようにする。例えば、バブルパケット送信部１２、及び検出用パケット送信部１６は、バブルパケット、及び検出用パケットを、それぞれ情報処理装置７０において新たに割り当てられたポートから送信することによって、それらのパケットが、通信処理装置２において新たに割り当てられるポートを介して送信されるようにする。再送信指示受付部７２は、例えば、入力デバイス（例えば、キーボードやマウス、タッチパネルなど）から入力された再送信指示を受け付けてもよく、有線もしくは無線の通信回線を介して送信された再送信指示を受信してもよい。本実施の形態では、再送信指示受付部７２は、通信回線を介して送信された再送信指示を受信するものとする。なお、再送信指示受付部７２は、受け付けを行うためのデバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい。また、再送信指示受付部７２は、ハードウェアによって実現されてもよく、あるいは所定のデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【０１９５】
バブルパケット送信ポート受付部７３は、バブルパケット送信ポート情報を受け付ける。ここで、バブルパケット送信ポート情報とは、検出用パケット送信部１６が送信した検出用パケットに基づいて検出されたバブルパケット送信ポートの位置を示す情報である。バブルパケット送信ポート受付部７３は、例えば、入力デバイス（例えば、キーボードやマウス、タッチパネルなど）から入力されたバブルパケット送信ポート情報を受け付けてもよく、有線もしくは無線の通信回線を介して送信されたバブルパケット送信ポート情報を受信してもよく、所定の記録媒体（例えば、光ディスクや磁気ディスク、半導体メモリなど）から読み出されたバブルパケット送信ポート情報を受け付けてもよい。本実施の形態では、バブルパケット送信ポート受付部７３は、通信回線を介して送信されたバブルパケット送信ポート情報を受信するものとする。なお、バブルパケット送信ポート受付部７３は、受け付けを行うためのデバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい。また、バブルパケット送信ポート受付部７３は、ハードウェアによって実現されてもよく、あるいは所定のデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【０１９６】
出力部７４は、バブルパケット送信ポート受付部７３が受け付けたバブルパケット送信ポート情報を出力する。ここで、この出力は、例えば、表示デバイス（例えば、ＣＲＴや液晶ディスプレイなど）への表示でもよく、所定の機器への通信回線を介した送信でもよく、プリンタによる印刷でもよく、スピーカによる音声出力でもよく、記録媒体への蓄積でもよい。本実施の形態では、出力部７４は、通信回線を介してバブルパケット送信ポート情報を送信するものとする。なお、出力部７４は、出力を行うデバイス（例えば、表示デバイスやプリンタなど）を含んでもよく、あるいは含まなくてもよい。また、出力部７４は、ハードウェアによって実現されてもよく、あるいは、それらのデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【０１９７】
なお、送信先情報受付部１１、バブルパケット送信部１２、種類判断パケット送信部１３、検出用パケット送信部１６、ポート幅検出用パケット送信部１７、通信部２３、種類情報受付部７１、再送信指示受付部７２、バブルパケット送信ポート受付部７３、出力部
７４の任意の２以上の要素が通信に関するデバイスを有する場合に、それらは同一の手段であってもよく、あるいは別々の手段であってもよい。
【０１９８】
図２６は、本実施の形態による第１のサーバ８０、及び第２のサーバ９０の構成を示すブロック図である。図２６において、本実施の形態による第１のサーバ８０は、種類判断パケット受信部４１と、検出用パケット受信部４３と、ポート幅検出用パケット受信部４５と、種類判断部８１と、種類情報送信部８２と、バブルパケット送信ポート検出部８３と、再送信指示送信部８４と、バブルパケット送信ポート送信部８５と、ポート幅検出部８６とを備える。なお、種類判断パケット受信部４１、検出用パケット受信部４３、ポート幅検出用パケット受信部４５の構成及び動作は、実施の形態１と同様であり、その説明を省略する。
【０１９９】
種類判断部８１は、実施の形態１による種類判断部１５と同様に、種類判断パケット受信部４１が受信した種類判断パケットに基づいて、通信処理装置２の種類を判断する。ここで、「種類判断パケットに基づいて通信処理装置２の種類を判断する」とは、種類判断パケットの通過した通信処理装置２のポートの位置を用いて通信処理装置２の種類を判断する、という意味である。
【０２００】
種類情報送信部８２は、種類判断部８１が判断した通信処理装置２の種類を示す情報である種類情報を、通信処理装置２を介して情報処理装置７０に送信する。なお、種類情報送信部８２は、送信を行うための送信デバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい（この場合には、種類情報送信部８２と通信回線１との間に図示しない送信デバイスが存在することとなる）。また、種類情報送信部８２は、ハードウェアによって実現されてもよく、あるいは送信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【０２０１】
バブルパケット送信ポート検出部８３は、実施の形態１によるバブルパケット送信ポート検出部２１と同様に、検出用パケット受信部４３が受信した検出用パケット受信部４３が受信した検出用パケットに基づいて、バブルパケット送信ポートの位置を検出する。ここで、「検出用パケットに基づいてバブルパケット送信ポートの位置を検出する」とは、検出用パケットの通過した通信処理装置２のポートの位置を用いてバブルパケット送信ポートの位置を検出する、という意味である。バブルパケット送信ポート検出部８３は、種類判断部８１が判断した通信処理装置２の種類に応じて、そのバブルパケット送信ポートの位置の検出を行う。
【０２０２】
再送信指示送信部８４は、バブルパケット送信ポート検出部８３がバブルパケット送信ポートの位置を適切に検出できない場合に、再送信指示を、通信処理装置２を介して情報処理装置７０に送信する。なお、再送信指示送信部８４は、送信を行うための送信デバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい（この場合には、再送信指示送信部８４と通信回線１との間に図示しない送信デバイスが存在することとなる）。また、再送信指示送信部８４は、ハードウェアによって実現されてもよく、あるいは送信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【０２０３】
バブルパケット送信ポート送信部８５は、バブルパケット送信ポート検出部８３が検出したバブルパケット送信ポートの位置を示すバブルパケット送信ポート情報を、通信処理装置２を介して情報処理装置７０に送信する。なお、バブルパケット送信ポート送信部８５は、送信を行うための送信デバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい（この場合には、バブルパケット送信ポート送信部８５と通信回線１との間に図示しない送信デバイスが存在することとなる）。また、バ
ブルパケット送信ポート送信部８５は、ハードウェアによって実現されてもよく、あるいは送信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【０２０４】
ポート幅検出部８６は、実施の形態１によるポート幅検出部１９と同様に、ポート幅検出用パケット受信部４５が受信したポート幅検出用パケットに基づいて、通信処理装置２のポート幅を検出する。ここで、「ポート幅検出用パケットに基づいて通信処理装置２のポート幅を検出する」とは、ポート幅検出用パケットの通過した通信処理装置２のポートの位置を用いて通信処理装置２のポート幅を検出する、という意味である。
【０２０５】
なお、種類判断パケット受信部４１、検出用パケット受信部４３、ポート幅検出用パケット受信部４５、種類情報送信部８２、再送信指示送信部８４、バブルパケット送信ポート送信部８５の任意の２以上の要素が通信に関するデバイスを有する場合に、それらは同一の手段であってもよく、あるいは別々の手段であってもよい。
【０２０６】
本実施の形態による第２のサーバ９０は、種類判断パケット受信部５１を備える。なお、種類判断パケット受信部５１の構成及び動作は、実施の形態１と同様であり、その説明を省略する。種類判断パケット受信部５１は、受信した種類判断パケットを、そのまま第１のサーバ８０の種類判断部８１に渡すものとする。第２のサーバ９０は、種類判断パケット受信部５１が受信した種類判断パケットを第１のサーバ８０に渡すための構成要素、例えば、送信部等を備えてもよい。送信部によって種類判断パケットを第１のサーバ８０に送信する場合には、種類判断パケットの通過した通信処理装置２のポートの位置がわかるように、例えば、種類判断パケット受信部５１が受信した種類判断パケットをそのままペイロードに含むパケットを構成して、第１のサーバ８０に送信するものとする。
【０２０７】
次に、本実施の形態による情報処理システムの動作について、フローチャートを用いて説明する。図２７は、本実施の形態による情報処理装置７０の動作を示すフローチャートである。
（ステップＳ９０１）種類判断パケット送信部１３は、複数の種類判断パケットを、通信処理装置２を介して第１のサーバ８０に送信する。この処理の詳細については後述する。
【０２０８】
（ステップＳ９０２）種類情報受付部７１は、種類情報を受け付けたかどうか判断する。そして、種類情報を受け付けた場合には、ステップＳ９０３に進み、そうでない場合には、種類情報を受け付けるまでステップＳ９０２の処理を繰り返す。
（ステップＳ９０３）ポート幅検出用パケット送信部１７は、ポート幅検出用パケットを、通信処理装置２を介して第１のサーバ８０に送信する。この処理の詳細については後述する。
【０２０９】
（ステップＳ９０４）情報処理装置７０は、バブルパケット及び検出用パケットの送信等を行う。その結果、第１のサーバ８０においてバブルパケット送信ポートの位置が検出され、第１のサーバ８０からバブルパケット送信ポート情報が奏される。そして、情報処理装置７０は、情報処理装置３０とのＰ２Ｐ通信を確立する処理を行う。この処理の詳細については後述する。
【０２１０】
（ステップＳ９０５）情報処理装置７０は、情報処理装置３０のＰ２Ｐ通信を行う。
なお、図２７フローチャートにおいて、ステップＳ９０１、Ｓ９０２の種類判断パケットを送信し、種類情報を受け付ける処理と、ステップＳ９０３のポート幅検出用パケットを送信する処理の順序は問わない。
【０２１１】
図２８は、図２７のフローチャートのステップＳ９０１における、情報処理装置７０が
種類判断パケットを送信し、種類情報を受信する処理の詳細を示すフローチャートである。なお、ステップＳ２０１、Ｓ２０３、Ｓ２０５において、情報処理装置７０の種類判断パケット送信部１３が３個の種類判断パケットを送信する処理は、実施の形態１の図８と同様であり、その説明を省略する。
【０２１２】
（ステップＳ１００１）第２のサーバ９０の種類判断パケット受信部５１は、受信した種類判断パケットを第１のサーバ８０の種類判断部８１に渡す。
（ステップＳ１００２）第１のサーバ８０の種類判断部８１は、種類判断パケット受信部４１が受信した２個の種類判断パケットと、第２のサーバ９０の種類判断パケット受信部５１が受信した１個の種類判断パケットとの通過した通信処理装置２のポートの位置に基づいて、通信処理装置２の種類を判断する。なお、この判断の方法は、実施の形態１における図９を用いた説明と同様であり、その説明を省略する。
【０２１３】
（ステップＳ１００３）種類情報送信部８２は、種類判断部８１が判断した通信処理装置２の種類を示す種類情報を、情報処理装置７０から送信されたいずれかの種類判断パケットの送信元に送信する。その種類情報は、情報処理装置７０の種類情報受付部７１で受信される。
【０２１４】
なお、通信処理装置２の種類を判断する方法は、図２８で示される方法に限定されるものではなく、その他の方法によって通信処理装置２の種類の判断を行ってもよい。例えば、送信ポート割り当てルールと共に、受信フィルタルールをも判断する処理を行ってもよい。
【０２１５】
図２９は、図２７のフローチャートのステップＳ９０３における、情報処理装置７０がポート幅検出用パケットを送信する処理の詳細を示すフローチャートである。なお、ステップＳ３０１、Ｓ３０３、Ｓ３０５において、情報処理装置７０のポート幅検出用パケット送信部１７が３個のポート幅検出用パケットを送信する処理は、実施の形態１の図１０と同様であり、その説明を省略する。
【０２１６】
（ステップＳ１１０１）ポート幅検出部８６は、ポート幅検出用パケット受信部が受信したポート幅検出用パケットの通過した通信処理装置２のポートの位置に基づいて、通信処理装置２のポート幅を検出する。なお、この検出の方法は、実施の形態１における図１１を用いた説明と同様であり、その説明を省略する。
【０２１７】
なお、通信処理装置２のポート幅を検出する方法は、図２９で示される方法に限定されるものではなく、その他の方法によって通信処理装置２の種類の判断を行ってもよい。例えば、情報処理装置７０は、４個以上のポート幅検出用パケットを送信してもよく、あるいは、２個のポート幅検出用パケットを送信するだけであってもよい。
また、通信処理装置２の種類がポートリューズ、あるいはコーン系である場合には、ポート幅を検出する処理を行わなくてもよい。
【０２１８】
図３０は、図２７のフローチャートのステップＳ９０４における、情報処理装置７０がバブルパケットを送信するなどの処理の詳細を示すフローチャートである。なお、ステップＳ４０１〜Ｓ４０４、Ｓ４０８〜Ｓ４１４の処理については、ステップＳ４０８において、バブルパケット送信ポート検出部２１が検出したバブルパケット送信ポートのポート番号等に代えて、バブルパケット送信ポート受付部７３が受信したバブルパケット送信ポート情報の示すバブルパケット送信ポートのポート番号等が送信される以外、実施の形態１と同様であり、その説明を省略する。
【０２１９】
（ステップＳ１２０１）検出用パケット送信部１６、バブルパケット送信部１２は、そ
れぞれ、検出用パケット、バブルパケットを送信する。この処理の詳細については、後述する。
（ステップＳ１２０２）バブルパケット送信ポート受付部７３は、バブルパケット送信ポート情報を受け付けたかどうか判断する。そして、バブルパケット送信ポート情報を受け付けた場合には、ステップＳ４０８に進み、そうでない場合には、ステップＳ１２０３に進む。
【０２２０】
（ステップＳ１２０３）再送信指示受付部７２は、再送信指示を受け付けたかどうか判断する。そして、再送信指示を受け付けた場合には、ステップＳ１２０１に戻り、そうでない場合には、ステップＳ１２０２に戻る。
【０２２１】
次に、本実施の形態による情報処理システムの動作について、具体例を用いて説明する。この具体例では、通信処理装置２の種類に応じて、検出用パケットの送信方法を変更する場合について説明する。
【０２２２】
まず、通信処理装置２の種類がコーン系、あるいはポートリューズである場合の図３０のフローチャートのステップＳ１２０１における処理について、図３１のフローチャートを用いて説明する。なお、ステップＳ５０１、Ｓ５０３の処理は、実施の形態１と同様であり、その説明を省略する。ただし、通信処理装置２の種類がポートリューズである場合には、ステップＳ５０１において検出用パケットを送信する場合に、その検出用パケットを送信する情報処理装置７０のポート番号をペイロードに含む検出用パケットを送信するものとする。なお、通信処理装置２の種類がコーン系である場合には、送信するポート番号をペイロードに含む検出用パケットを送信してもよく、そうでなくてもよい。
【０２２３】
（ステップＳ１３０１）バブルパケット送信ポート検出部８３は、バブルパケット送信ポートの位置を検出することができるかどうか判断する。具体的には、通信処理装置２の種類がコーン系である場合には、バブルパケット送信ポート検出部８３は、バブルパケット送信ポートの位置を検出することができると判断する。一方、通信処理装置２の種類がポートリューズである場合には、検出用パケットの通過した通信処理装置２のポートのポート番号と、その検出用パケットの送信された情報処理装置７０のポート番号とが一致するときに、バブルパケット送信ポートの位置を検出できると判断し、一致しないときに、バブルパケット送信ポートの位置を検出できないと判断する。その判断には、検出用パケットのペイロードに含まれる情報処理装置７０のポート番号を用いる。バブルパケット送信ポートの位置を検出することができる場合には、ステップＳ１３０２に進み、そうでない場合には、ステップＳ１３０４に進む。
【０２２４】
（ステップＳ１３０２）バブルパケット送信ポート検出部８３は、バブルパケット送信ポートの位置を検出する。具体的には、検出用パケット受信部４３が受信した検出用パケットの通過した通信処理装置２のポート番号を、バブルパケット送信ポートの位置として検出する。
【０２２５】
（ステップＳ１３０３）バブルパケット送信ポート送信部８５は、バブルパケット送信ポート検出部８３が検出したバブルパケット送信ポートの位置を示す情報、すなわち、通信処理装置２におけるバブルパケット送信ポートのポート番号、及び通信処理装置２のグローバル側のアドレスを示すバブルパケット送信ポート情報を構成し、そのバブルパケット送信ポート情報を検出用パケット受信部４３が受信した検出用パケットの送信元のアドレス、ポート番号に送信する。
【０２２６】
（ステップＳ１３０４）再送信指示送信部８４は、再送信指示を、検出用パケット受信部４３が受信した検出用パケットの送信元のアドレス、ポート番号に送信する。この再送
信指示は、再送信指示送信部８４が構成したものであってもよく、所定の記録媒体から読み出したものであってもよく、あるいは、他の構成要素から受け取ったものであってもよい。
【０２２７】
次に、通信処理装置２の種類がシンメトリック系である場合の図３０のフローチャートのステップＳ１２０１における処理について、図３２のフローチャートを用いて説明する。なお、ステップＳ６０１、Ｓ６０３、Ｓ６０４の処理は、実施の形態１と同様であり、その説明を省略する。
【０２２８】
（ステップＳ１４０１）バブルパケット送信ポート検出部８３は、検出用パケット受信部４３が受信した検出用パケットに基づいて、バブルパケット送信ポートの位置を検出することができるかどうか判断する。この判断は、２個の検出用パケットが通過した通信処理装置２の２個の検出用パケット送信ポートの間に、バブルパケット送信ポート以外のポートが割り当てられているかどうかによって判断する。すなわち、バブルパケット送信ポート検出部８３は、２個の検出用パケット送信ポートの間に、バブルパケット送信ポート以外のポートが割り当てられている場合には、バブルパケット送信ポートの位置を検出できないと判断し、２個の検出用パケット送信ポートの間に、バブルパケット送信ポートのみが割り当てられている場合には、バブルパケット送信ポートの位置を検出することができると判断する。具体的には、２個の検出用パケットの通過した通信処理装置２のポートのポート番号の差が、ポート幅検出部８６によって検出された通信処理装置２のポート幅の２倍であるかどうか判断する。そして、２倍であればバブルパケット送信ポートの位置の検出を行うことができると判断してステップＳ１４０２に進み、２倍でない場合には、バブルパケット送信ポートの位置を検出することができないと判断してステップＳ１４０４に進む。
【０２２９】
（ステップＳ１４０２）バブルパケット送信ポート検出部８３は、検出用パケット受信部４３が受信した検出用パケットに基づいて、バブルパケット送信ポートの位置を検出する。具体的には、バブルパケット送信ポート検出部８３は、２個の検出用パケットの通過した通信処理装置２の検出用パケット送信ポートの真ん中のポート番号を、バブルパケット送信ポートとして検出する。
【０２３０】
（ステップＳ１４０３）バブルパケット送信ポート送信部８５は、バブルパケット送信ポート検出部８３が検出したバブルパケット送信ポートの位置を示すバブルパケット送信ポート情報をいずれかの検出用パケットの送信元に送信する。そのバブルパケット送信ポート情報は、通信処理装置２を介して情報処理装置７０に送信され、情報処理装置７０のバブルパケット送信ポート受付部７３で受信される。
【０２３１】
（ステップＳ１４０４）再送信指示送信部８４は、再送信指示をいずれかの検出用パケットの送信元に送信する。その再送信指示は、通信処理装置２を介して情報処理装置７０に送信され、情報処理装置７０の再送信指示受付部７２で受信される。
【０２３２】
なお、通信処理装置２の種類の判断や、通信処理装置２のポート幅の検出、バブルパケット送信ポートの位置の検出などの動作の具体的な処理は、通信処理装置２の種類の判断や、通信処理装置２のポート幅の検出、バブルパケット送信ポートの位置の検出などを、情報処理装置１０において実行する代わりに、第１のサーバ８０において実行する以外、実施の形態１と同様であり、その説明を省略する。
【０２３３】
また、この具体例では、通信処理装置２の種類に応じて、情報処理装置７０における検出用パケットの送信の処理を変更する場合について説明したが、実施の形態１の具体例２のように、通信処理装置２の種類に関わらない検出用パケットの送信を行い、通信処理装
置２の種類に応じて、結果として検出用パケット送信ポートと、バブルパケット送信ポートとが同じとなったり、異なったりするようにしてもよい。その場合には、通信処理装置２の種類に応じて、検出用パケットの送信方法を変更する必要がないため、情報処理装置７０は、種類情報受付部７１を備えなくてもよい。一方、その場合には、第１のサーバ８０のバブルパケット送信ポート検出部８３では、通信処理装置２の種類に応じて、バブルパケット送信ポートの位置の検出方法を変更する必要がある。例えば、通信処理装置２の種類がコーン系やポートリューズであれば、ステップＳ１３０２の方法で検出を行い、通信処理装置２の種類がシンメトリック系であれば、ステップＳ１４０２の方法で検出を行ってもよい。
【０２３４】
以上のように、本実施の形態による情報処理システムでは、通信処理装置２の種類に応じて、検出用パケット送信ポートと、バブルパケット送信ポートとが同一となる、または異なるように検出用パケットを送信することによって、通信処理装置２の種類に関わらず、バブルパケット送信ポートの位置を正確に検出することができる。また、そのバブルパケット送信ポートの検出を、第１のサーバ８０において実行することができる。
【０２３５】
なお、本実施の形態では、情報処理装置７０が、バブルパケット送信ポート情報を受け付けるバブルパケット送信ポート受付部７３を備える場合について説明したが、バブルパケット送信ポート情報は、第１のサーバ８０から情報処理装置７０を経由しないで情報処理装置３０に送信されてもよい。例えば、第１のサーバ８０が、バブルパケット送信ポート情報を直接、情報処理装置３０に送信してもよい。
【０２３６】
また、本実施の形態では、通信処理装置２の種類がポートリューズである場合に、バブルパケット送信ポートの位置を検出することができるかどうか第１のサーバ８０で判断するために、検出用パケットを送信する情報処理装置７０のポート番号をペイロードに含む検出用パケットを送信する場合について説明したが、検出用パケットを送信する情報処理装置７０のポート番号は、検出用パケットとは別途、情報処理装置７０から第１のサーバ８０に送信されてもよい。
【０２３７】
また、本実施の形態では、情報処理装置７０が再送信指示受付部７２を備える場合について説明したが、情報処理装置７０は、再送信指示受付部７２を備えず、バブルパケット及び検出用パケットが送信されてから所定の期間が経過しても、バブルパケット送信ポート情報を受け付けることができない場合に、バブルパケット及び検出用パケットを、再度送信するようにしてもよい。
【０２３８】
（実施の形態３）
本発明の実施の形態３による情報処理システム等について、図面を参照しながら説明する。本実施の形態による情報処理システム等は、返信パケットを送信する情報処理装置において、バブルパケット送信ポートの検出を行うものである。
【０２３９】
本実施の形態による情報処理システムの構成は、実施の形態１の図１において、情報処理装置１０、情報処理装置３０に代えて、それぞれ情報処理装置１００、情報処理装置１１０を備える以外、実施の形態体１の図１と同様であるとし、情報処理装置１００、情報処理装置１１０以外の説明を省略する。
【０２４０】
図３３は、本実施の形態による情報処理装置１００の構成を示すブロック図である。図３３において、本実施の形態による情報処理装置１００は、送信先情報受付部１１と、バブルパケット送信部１２と、種類判断パケット送信部１３と、種類判断ポート情報受付部１４と、種類判断部１５と、検出用パケット送信部１６と、ポート幅検出用パケット送信部１７と、ポート幅検出用ポート情報受付部１８と、ポート幅検出部１９と、検出用ポー
ト情報受付部２０と、通信部２３と、情報送信部１０１とを備える。なお、情報送信部１０１以外の構成及び動作は、実施の形態１と同様であり、その説明を省略する。
【０２４１】
情報送信部１０１は、種類判断部１５が判断した通信処理装置２の種類を示す種類情報、ポート幅検出部１９が検出した通信処理装置２のポート幅を示すポート幅情報、検出用ポート情報受付部２０が受け付けた検出用ポート情報を、リレーサーバ６０を介して情報処理装置１１０に送信する。本実施の形態の検出用ポート情報には、検出用パケット送信ポートの位置を示す情報だけでなく、通信処理装置２のグローバル側のアドレスも含まれるものとする。なお、情報送信部１０１は、送信を行うための送信デバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい（この場合には、情報送信部１０１と通信処理装置２との間に図示しない送信デバイスが存在することとなる）。また、情報送信部１０１は、ハードウェアによって実現されてもよく、あるいは送信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【０２４２】
図３４は、本実施の形態による情報処理装置１１０の構成を示すブロック図である。図３４において、本実施の形態による情報処理装置１１０は、送信先情報送信部３１と、返信パケット送信部３３と、通信部３４と、検出用ポート情報受付部１１１と、バブルパケット送信ポート検出部１１２とを備える。なお、検出用ポート情報受付部１１１、バブルパケット送信ポート検出部１１２以外の構成及び動作は、実施の形態１と同様であり、その説明を省略する。
【０２４３】
検出用ポート情報受付部１１１は、情報処理装置１００から送信された検出用パケットの通過した通信処理装置２のポートの位置を示す検出用ポート情報を受け付ける。なお、本実施の形態では、検出用ポート情報受付部１１１は、検出用ポート情報と共に、種類情報、ポート幅情報も受け付けるものとする。検出用ポート情報受付部１１１は、例えば、入力デバイス（例えば、キーボードやマウス、タッチパネルなど）から入力された検出用ポート情報等を受け付けてもよく、有線もしくは無線の通信回線を介して送信された検出用ポート情報等を受信してもよく、所定の記録媒体（例えば、光ディスクや磁気ディスク、半導体メモリなど）から読み出された検出用ポート情報等を受け付けてもよい。本実施の形態では、検出用ポート情報受付部１１１は、通信回線を介して送信された検出用ポート情報等を受信するものとする。なお、検出用ポート情報受付部１１１は、受け付けを行うためのデバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい。また、検出用ポート情報受付部１１１は、ハードウェアによって実現されてもよく、あるいは所定のデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【０２４４】
バブルパケット送信ポート検出部１１２は、通信処理装置２の種類に応じて、検出用ポート情報受付部１１１が受け付けた検出用ポート情報に基づいてバブルパケット送信ポートの位置を検出する。なお、本実施の形態では、バブルパケット送信ポート検出部１１２は、バブルパケット送信ポートの位置の検出に必要な通信処理装置２の種類を示す種類情報と、通信処理装置２のポート幅を示すポート幅情報を、検出用ポート情報受付部１１１から受け取るものとする。なお、バブルパケット送信ポートの検出動作については、実施の形態１のバブルパケット送信ポート検出部２１の処理と同様であり、その説明を省略する。
【０２４５】
次に、本実施の形態による情報処理システムの動作について、フローチャートを用いて説明する。図３５は、本実施の形態による情報処理装置１００の動作を示すフローチャートである。なお、ステップＳ１５０１以外の処理は、実施の形態１の図７のフローチャートと同様であり、その説明を省略する。
（ステップＳ１５０１）情報処理装置１００は、検出用ポート情報、ポート幅情報、種
類情報を情報処理装置１１０に送信する。この処理の詳細については後述する。
【０２４６】
図３６は、図３５のフローチャートのステップＳ１５０１における、情報処理装置１００が検出用ポート情報を送信する処理等の詳細を示すフローチャートである。なお、ステップＳ１６０１、Ｓ１６０２以外の処理については、実施の形態１の図１２のフローチャートと同様であり、その説明を省略する。
【０２４７】
（ステップＳ１６０１）情報送信部１０１は、種類判断部１５が判断して通信処理装置２の種類を示す種類情報、ポート幅検出部１９が検出した通信処理装置２のポート幅を示すポート幅情報、検出用ポート情報受付部２０が受け付けた検出用ポート情報を含む通信要求パケットを構成して、リレーサーバ６０に送信する。なお、その通信要求パケットは、リレーサーバ６０を介して、情報処理装置１１０に送信され（ステップＳ４０９）、情報処理装置１１０の検出用ポート情報受付部１１１で受信される。
【０２４８】
（ステップＳ１６０２）バブルパケット送信ポート検出部１１２は、検出用ポート情報受付部１１１が受信した通信要求パケットに含まれる、種類情報、ポート幅情報、検出用ポート情報に基づいて、バブルパケット送信ポートの位置を検出する。その検出したバブルパケット送信ポートの位置を示す情報と、検出用ポート情報に含まれる通信処理装置２のグローバル側のアドレスとは、返信パケット送信部３３と、通信部３４とに渡されるものとする。そして、ステップＳ４１４では、そのバブルパケット送信ポート検出部１１２から返信パケット送信部３３に渡されたバブルパケット送信ポートの位置を示す情報、及び通信処理装置２のアドレスに基づいて、返信パケットが送信されるものとする。
【０２４９】
なお、本実施の形態による情報処理システムの動作の具体例については、情報処理装置１１０においてバブルパケット送信ポートの位置の検出が行われる以外、実施の形態１と同様であり、その説明を省略する。
【０２５０】
以上のように、本実施の形態による情報処理システムによれば、通信処理装置２の種類に応じて、検出用パケット送信ポートと、バブルパケット送信ポートとが同一となる、または異なるように検出用パケットを送信することによって、通信処理装置２の種類に関わらず、バブルパケット送信ポートの位置を正確に検出することができる。また、そのバブルパケット送信ポートの検出を、返信パケットを送信する情報処理装置１１０において実行することができる。
【０２５１】
なお、本実施の形態では、返信パケットを送信する情報処理装置１１０においてバブルパケット送信ポートの検出を行う場合について説明したが、バブルパケット送信ポートの検出を行うポート検出装置は、実施の形態１のようにバブルパケットの送信を行う情報処理装置であってもよく、実施の形態２のように第１のサーバであってもよく、本実施の形態のように返信パケットの送信を行う情報処理装置であってもよく、あるいは、その他の装置であってもよい。ポート検出装置が実施の形態１〜３で説明した以外の装置である場合には、図３７で示されるように、ポート検出装置１２０は、バブルパケット送信ポート検出部１１２が検出したバブルパケット送信ポートの位置を示すバブルパケット送信ポート情報を出力する出力部１２１を備えてもよい。ここで、この出力は、例えば、表示デバイス（例えば、ＣＲＴや液晶ディスプレイなど）への表示でもよく、所定の機器への通信回線を介した送信でもよく、プリンタによる印刷でもよく、スピーカによる音声出力でもよく、記録媒体への蓄積でもよい。なお、出力部１２１は、出力を行うデバイス（例えば、表示デバイスやプリンタなど）を含んでもよく、あるいは含まなくてもよい。また、出力部１２１は、ハードウェアによって実現されてもよく、あるいは、それらのデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。ここで、図３７では、ポート検出装置１２０が送信先情報送信部３１を備える構成について示しているが、ポート
検出装置１２０は送信先情報送信部３１を備えなくてもよい。
【０２５２】
また、本実施の形態では、情報処理装置１００から情報処理装置１１０に検出用ポート情報、種類情報、ポート幅情報が送信される場合について説明したが、これらの情報のうち、任意の１以上の情報が、例えば、第１のサーバから送信されてもよい。例えば、実施の形態２と同様に、第１のサーバにおいてポート幅の検出等を行い、その検出されたポート幅を示すポート幅情報等が第１のサーバから情報処理装置１１０に送信されてもよい。または、情報処理装置１１０に、ポート幅情報等がユーザの手入力等によって入力されてもよく、情報処理装置１１０がポート幅情報や検出用ポート情報等を受け付ける方法は問わない。
【０２５３】
また、本実施の形態では、情報処理装置１１０において、検出されたバブルパケット送信ポートの位置を用いて、返信パケットの送信を行う場合について説明したが、これは一例であって、情報処理装置１１０は、検出されたバブルパケット送信ポートの位置を用いて、処理を行う処理部を備えてもよい。この処理部は、例えば、前述のように返信パケットを送信してもよく、検出されたバブルパケット送信ポートの位置を示す情報を蓄積や送信してもよく、あるいは、その検出されたバブルパケット送信ポートの位置を示す情報を用いて、他の処理を行ってもよい。
【０２５４】
なお、上記各実施の形態では、バブルパケットを送信する情報処理装置のみが通信処理装置２を介して通信を行う場合について説明したが、返信パケットを送信する情報処理装置も、通信に関する処理を行う通信処理装置を介して通信を行ってもよい。その通信処理装置は、上記各実施の形態で説明した通信処理装置２と同様のものであるとする。
【０２５５】
また、上記各実施の形態では、情報処理システムが第１のサーバ、及び第２のサーバを備える構成について説明したが、情報処理システムは、第２のサーバを備えなくてもよい。その場合には、例えば、通信処理装置２の種類を、サーバを用いないで判断してもよい。サーバを用いない場合としては、例えば、ユーザが通信処理装置２のマニュアル等を参照することによって、通信処理装置２の種類を特定し、その種類を、所定の入力デバイスを介して、バブルパケットを送信する情報処理装置に入力する場合などがある。また、第１のサーバ、及び第２のサーバは、装置として一体に構成されてもよい。
【０２５６】
また、上記各実施の形態では、バブルパケット送信ポート検出部が通信処理装置の種類を示す情報を受け取って、その情報を用いてバブルパケット送信ポートの検出を行う場合について説明したが、バブルパケット送信ポート検出部は、通信処理装置の種類を示す情報を用いないでバブルパケット送信ポートの位置の検出を行ってもよい。例えば、実施の形態１の具体例１において、バブルパケット送信ポート検出部２１は、検出用ポート情報受付部２０が２個の検出用パケット送信ポートのポート番号を示す検出用ポート情報を受け付けた場合には、通信処理装置２の種類がシンメトリック系である場合のバブルパケット送信ポートの検出処理を行い、検出用ポート情報受付部２０が１個の検出用パケット送信ポートのポート番号を示す検出用ポート情報を受け付けた場合には、通信処理装置２の種類がコーン系、ポートリューズである場合のバブルパケット送信ポートの検出を行ってもよい。また、例えば、実施の形態１の具体例２において、バブルパケット送信ポート検出部２１は、通信処理装置２のポート幅「１」と、２個の検出用パケット送信ポートのポート番号とを受け取り、その２個の検出用パケット送信ポートのポート番号の差が、ポート幅「１」の２倍であれば、通信処理装置２の種類がシンメトリック系である場合のバブルパケット送信ポートの検出処理を行い、２個の検出用パケット送信ポートのポート番号の差が、ポート幅「１」の１倍であれば、通信処理装置２の種類がコーン系、ポートリューズである場合のバブルパケット送信ポートの検出を行ってもよい。このように、バブルパケット送信ポート検出部は、バブルパケット送信ポートの位置の検出において、直接、
通信処理装置２の種類を示す情報を用いなくてもよい。ただし、上述のように、通信処理装置２の種類に応じてバブルパケット送信ポートの検出手法を変えることは、通信処理装置２の種類に応じて、バブルパケット送信ポートの位置を検出することに含まれるものとする。
【０２５７】
また、実施の形態１において、通信処理装置２の種類の判断、通信処理装置２のポート幅の検出、バブルパケット送信ポートの位置の検出を、バブルパケットを送信する情報処理装置１０において行う場合について説明し、実施の形態２において、それらの処理を第１のサーバ８０において行う場合について説明し、実施の形態３において、通信処理装置２の種類の判断、通信処理装置２のポート幅の検出を、バブルパケットを送信する情報処理装置１００において行い、バブルパケット送信ポートの位置の検出を、返信パケットを送信する情報処理装置１１０において行う場合について説明したが、通信処理装置２の種類の判断の処理は、バブルパケットを送信する情報処理装置、サーバ、返信パケットを送信する情報処理装置、あるいは、その他の装置のいずれにおいて実行されてもよい。同様に、通信処理装置２のポート幅を検出する処理も、バブルパケットを送信する情報処理装置、サーバ、返信パケットを送信する情報処理装置、あるいは、その他の装置のいずれにおいて実行されてもよい。同様に、バブルパケット送信ポートの位置を検出する処理も、バブルパケットを送信する情報処理装置、サーバ、返信パケットを送信する情報処理装置、あるいは、その他の装置のいずれにおいて実行されてもよい。例えば、通信処理装置２の種類の判断は、第１のサーバにおいて行われ、通信処理装置２のポート幅の検出は、バブルパケットを送信する情報処理装置において行われ、通信処理装置２の種類を示す情報、及び通信処理装置２のポート幅を示す情報が、返信パケットを送信する情報処理装置に送信されて、その返信パケットを送信する情報処理装置において、バブルパケット送信ポートの位置の検出が行われてもよい。
【０２５８】
また、上記各実施の形態では、通信処理装置２の種類を、コーン系、シンメトリック系、ポートリューズの３個に分けてバブルパケット送信ポートの位置を検出する場合について考えたが、それ以外の種類の通信処理装置２の種類がある場合には、その種類をも含めて、通信処理装置２の種類に応じて、検出用パケット送信ポートと、バブルパケット送信ポートとが同一となる、あるいは異なるように検出用パケットを送信してもよく、その通信処理装置２の種類に応じて、バブルパケット送信ポートの位置の検出を行ってもよい。また、通信処理装置２の種類として、コーン系、シンメトリック系、ポートリューズの任意の２個の通信処理装置２の種類に応じて、検出用パケットを送信してもよく、バブルパケット送信ポートの位置を検出してもよい。また、通信処理装置２の種類が、シンメトリック系であるのか、または、コーン系もしくはポートリューズであるのかに応じて、検出用パケット送信ポートと、バブルパケット送信ポートとが同一となる、あるいは異なるように検出用パケットを送信してもよい。また、例えば、通信処理装置２の種類がコーン系であるのか、またはシンメトリック系であるのかに応じて検出用パケットの送信等を行う場合には、通信処理装置２の種類の判断において、通信処理装置２の種類がコーン系であるのか、またはシンメトリック系であるのかを判断するだけであってもよい。
【０２５９】
また、上記各実施の形態では、バブルパケットを送信する情報処理装置は、送信先情報を受け付け、その送信先情報に基づいてバブルパケットを送信する場合について説明したが、送信先情報は、バブルパケットを送信する情報処理装置においてあらかじめ設定されており、その設定されている送信先情報を用いて、バブルパケットの送信を行ってもよい。
【０２６０】
また、上記各実施の形態において、通信処理装置２の種類を、通信処理装置２においてどのような送信ポートの割り当てが行われるのかを調べることによって判断する場合について主に説明したが、それ以外の方法によって、通信処理装置２の種類を判断してもよい
。例えば、あるメーカーが、コーン系の通信処理装置２しか生産していない場合には、通信処理装置２のメーカーを判断することによって、通信処理装置２の種類を判断してもよい。通信処理装置２のメーカーは、例えば、ユーザの手入力によって情報処理装置等に入力されてもよく、あるいは、通信処理装置２のＭＡＣアドレスに含まれるベンダＩＤ等を用いて、通信処理装置２のメーカーを特定してもよい。
【０２６１】
また、上記各実施の形態において、検出用ポート情報や、バブルパケット送信ポート情報に通信処理装置２のグローバル側のアドレスが含まれることによって、バブルパケットを送信する情報処理装置が、通信処理装置２のグローバル側のアドレスを知ることができる場合について説明したが、検出用ポート情報や、バブルパケット送信ポート情報には、通信処理装置２のグローバル側のアドレスが含まれていなくてもよい。その場合には、バブルパケットを送信する情報処理装置は、例えば、所定のサーバから送信された情報や、ユーザ等から入力された情報によって、通信処理装置２のグローバル側のアドレスを知ることができるようにしてもよい。ここで、その所定のサーバは、例えば、受信したパケットのヘッダに含まれている送信元のアドレスをペイロードに含むパケットを、その受信したパケットの送信元に送信するものであってもよい。その所定のサーバの機能は、第１のサーバ等が有していてもよい。
【０２６２】
また、上記各実施の形態において、通信処理装置２がアドレス変換を行うＮＡＴ機能を有する装置である場合について説明したが、通信処理装置２は、送信ポート割り当てルールに基づいた送信ポート割り当てを行う装置であればよく、アドレス変換機能を有しない装置であってもよい。
【０２６３】
また、上記各実施の形態において、バブルパケットを送信する情報処理装置が種類判断パケット送信部１３、ポート幅検出用パケット送信部１７を備える場合について説明したが、通信処理装置２の種類の判断や、通信処理装置２のポート幅の検出を、種類判断パケットや、ポート幅検出用パケットを用いて行わない場合には、バブルパケットを送信する情報処理装置が種類判断パケット送信部１３や、ポート幅検出用パケット送信部１７を備えなくてもよい。ここで、通信処理装置２の種類の判断や、通信処理装置２のポート幅の検出を、種類判断パケットや、ポート幅検出用パケットを用いて行わない場合としては、例えば、通信処理装置２のマニュアル等を参照することにより、通信処理装置２の種類やポート幅を特定する場合などがある。
【０２６４】
また、上記各実施の形態において、検出用パケットやポート幅検出用パケットなどは、ＵＤＰのパケットであってもよく、ＴＣＰのパケットでもよいと説明したが、通信処理装置によっては、ＵＤＰのパケットと、ＴＣＰのパケットとでポート割り当ての異なるものもある。例えば、ＵＤＰのパケットには、一定の範囲のポート番号を割り当て、ＴＣＰのパケットには、その範囲とは異なる別の範囲のポート番号を割り当てる場合がある。そのような場合には、検出用パケットやポート幅検出用パケットなどとして、すべてＵＤＰのパケットを用いることが好ましい。
【０２６５】
また、上記各実施の形態において、検出用パケットやポート幅検出用パケット、種類判断パケットなどに、パケットの種類を示す情報や、パケットの送信元の装置を識別する情報などが含まれていてもよい。また、検出用パケット等に対応して送信される検出用ポート情報や、ポート幅検出用ポート情報、種類情報などのパケットに、パケットの種類を示す情報や、どの通信処理装置に関する情報であるのかを示す情報などが含まれていてもよい。このように、上記各実施の形態における各種のパケットの構造は問わないものとする。
【０２６６】
また、上記各実施の形態において、各処理（各機能）は、単一の装置（システム）によ
って集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
【０２６７】
また、上記各実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをＣＰＵ等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。なお、上記各実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、通信に関する処理を行う通信処理装置を介した通信を実行させるためのプログラムであって、前記通信処理装置に送信履歴を残すためのパケットであるバブルパケットを、前記通信処理装置を介して送信するバブルパケット送信ステップと、前記バブルパケットの送信で用いられる、前記通信処理装置のポートであるバブルパケット送信ポートの位置を検出するために用いられるパケットである検出用パケットを、前記通信処理装置の種類に応じて、前記検出用パケットの通過した前記通信処理装置のポートである検出用パケット送信ポートと、前記バブルパケット送信ポートとが同一となる、または異なるように前記通信処理装置を介して送信する検出用パケット送信ステップと、を実行させるためのものである。
【０２６８】
また、上記各実施の形態におけるポート検出装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、検出用パケットの通過した前記通信処理装置のポートの位置を示す情報である検出用ポート情報を受け付ける検出用ポート情報受付ステップと、前記通信処理装置の種類に応じて、前記検出用ポート情報に基づいて前記バブルパケット送信ポートの位置を検出するバブルパケット送信ポート検出ステップと、を実行させるためのものである。
【０２６９】
なお、上記プログラムにおいて、情報を送信する送信ステップや、情報を受け付ける受付ステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理（ハードウェアでしか行われない処理）は含まれない。
【０２７０】
また、このプログラムは、サーバなどからダウンロードされることによって実行されてもよく、所定の記録媒体（例えば、ＣＤ−ＲＯＭなどの光ディスクや磁気ディスク、半導体メモリなど）に記録されたプログラムが読み出されることによって実行されてもよい。
【０２７１】
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【０２７２】
以上より、本発明による情報処理装置等は、他の装置との通信を適切に確立することができるようにすることができ、２以上の情報処理装置間で通信を行う情報処理システム等において有用である。
【図面の簡単な説明】
【０２７３】
【図１】本発明の実施の形態１による情報処理システムの構成を示す図
【図２】同実施の形態による情報処理装置の構成を示すブロック図
【図３】同実施の形態による情報処理装置の構成を示すブロック図
【図４】同実施の形態による第１のサーバの構成を示すブロック図
【図５】同実施の形態による第２のサーバの構成を示すブロック図
【図６】同実施の形態によるリレーサーバの構成を示すブロック図
【図７】同実施の形態による情報処理装置の動作を示すフローチャート
【図８】同実施の形態による情報処理システムの動作を示すフローチャート
【図９】同実施の形態における通信処理装置の種類の判断について説明するための図
【図１０】同実施の形態による情報処理システムの動作を示すフローチャート
【図１１】同実施の形態における通信処理装置のポート幅の検出について説明するための図
【図１２】同実施の形態による情報処理システムの動作を示すフローチャート
【図１３】同実施の形態におけるデータリレーで用いる装置識別情報とアドレス等との対応を示す図
【図１４】同実施の形態による情報処理システムの動作を示すフローチャート
【図１５】同実施の形態による情報処理システムの動作を示すフローチャート
【図１６】同実施の形態におけるバブルパケット送信ポートの検出について説明するための図
【図１７】同実施の形態におけるバブルパケット送信ポートの検出について説明するための図
【図１８】同実施の形態におけるバブルパケット送信ポートの検出について説明するための図
【図１９】同実施の形態におけるポートリューズの通信処理装置の動作について説明するための図
【図２０】同実施の形態におけるバブルパケット送信ポートの検出について説明するための図
【図２１】同実施の形態による情報処理システムの動作を示すフローチャート
【図２２】同実施の形態におけるバブルパケット送信ポートの検出について説明するための図
【図２３】同実施の形態におけるバブルパケット送信ポートの検出について説明するための図
【図２４】同実施の形態による情報処理システムの動作を示すフローチャート
【図２５】本発明の実施の形態２による情報処理装置の構成を示すブロック図
【図２６】同実施の形態による第１のサーバ及び第２のサーバの構成を示すブロック図
【図２７】同実施の形態による情報処理装置の動作を示すフローチャート
【図２８】同実施の形態による情報処理システムの動作を示すフローチャート
【図２９】同実施の形態による情報処理システムの動作を示すフローチャート
【図３０】同実施の形態による情報処理システムの動作を示すフローチャート
【図３１】同実施の形態による情報処理システムの動作を示すフローチャート
【図３２】同実施の形態による情報処理システムの動作を示すフローチャート
【図３３】本発明の実施の形態３による情報処理装置の構成を示すブロック図
【図３４】同実施の形態による情報処理装置の構成を示すブロック図
【図３５】同実施の形態による情報処理装置の動作を示すフローチャート
【図３６】同実施の形態による情報処理システムの動作を示すフローチャート
【図３７】同実施の形態による情報処理装置の構成を示すブロック図
【図３８】情報処理システムの構成を示す図
【符号の説明】
【０２７４】
１  通信回線
２  通信処理装置
１０、３０、７０、１００、１１０  情報処理装置
１１  送信先情報受付部
１２  バブルパケット送信部
１３  種類判断パケット送信部
１４  種類判断ポート情報受付部
１５、８１  種類判断部
１６  検出用パケット送信部
１７  ポート幅検出用パケット送信部
１８  ポート幅検出用ポート情報受付部
１９、８６  ポート幅検出部
２０、１１１  検出用ポート情報受付部
２１、８３、１１２  バブルパケット送信ポート検出部
２２、７４、１２１  出力部
２３、３４、６１  通信部
３１  送信先情報送信部
３２、７３  バブルパケット送信ポート受付部
３３  返信パケット送信部
４０、８０  第１のサーバ
４１、５１  種類判断パケット受信部
４２、５２  種類判断ポート情報送信部
４３  検出用パケット受信部
４４  検出用ポート情報送信部
４５  ポート幅検出用パケット受信部
４６  ポート幅検出用ポート情報送信部
５０、９０  第２のサーバ
６０  リレーサーバ
６２  アドレス情報記憶部
６３  アドレス情報蓄積部
６４  アドレス情報取得部
７１  種類情報受付部
７２  再送信指示受付部
８２  種類情報送信部
８４  再送信指示送信部
８５  バブルパケット送信ポート送信部
１０１  情報送信部
１２０  ポート検出装置
【図１】
2006261895.tif 000003
【図２】
2006261895.tif 000004
【図３】
2006261895.tif 000005
【図４】
2006261895.tif 000006
【図５】
2006261895.tif 000007
【図６】
2006261895.tif 000008
【図７】
2006261895.tif 000009
【図８】
2006261895.tif 000010
【図９】
2006261895.tif 000011
【図１０】
2006261895.tif 000012
【図１１】
2006261895.tif 000013
【図１２】
2006261895.tif 000014
【図１３】
2006261895.tif 000015
【図１４】
2006261895.tif 000016
【図１５】
2006261895.tif 000017
【図１６】
2006261895.tif 000018
【図１７】
2006261895.tif 000019
【図１８】
2006261895.tif 000020
【図１９】
2006261895.tif 000021
【図２０】
2006261895.tif 000022
【図２１】
2006261895.tif 000023
【図２２】
2006261895.tif 000024
【図２３】
2006261895.tif 000025
【図２４】
2006261895.tif 000026
【図２５】
2006261895.tif 000027
【図２６】
2006261895.tif 000028
【図２７】
2006261895.tif 000029
【図２８】
2006261895.tif 000030
【図２９】
2006261895.tif 000031
【図３０】
2006261895.tif 000032
【図３１】
2006261895.tif 000033
【図３２】
2006261895.tif 000034
【図３３】
2006261895.tif 000035
【図３４】
2006261895.tif 000036
【図３５】
2006261895.tif 000037
【図３６】
2006261895.tif 000038
【図３７】
2006261895.tif 000039
【図３８】
2006261895.tif 000040