(57)【要約】【課題】通信元の１以上の通信処理装置に送信履歴を残すためのバブルパケットに寿命を設定するために、通信元の情報処理装置と境界ノードとの間のホップ数をサーバで算出する。【解決手段】サーバ５は、寿命を変化させて測定パケットを通信元の情報処理装置１に送信することによって、境界ノード（通信処理装置３）とサーバ５との間のホップ数を示す中継情報を取得し、サーバ５と情報処理装置１との間のホップ数を示す中継情報を取得し、それらの中継情報を用いて、通信元の情報処理装置１と、境界ノード（通信処理装置３）との間のホップ数を示す中継情報を構成して、その中継情報を情報処理装置１に送信する。情報処理装置１は、受信した中継情報を用いて、バブルパケットが通信回線１００に到達するように、その寿命（ＴＴＬ）を設定してバブルパケットを送信する。【選択図】図１
2007324642.tif 000002
【特許請求の範囲】
【請求項１】
通信先の情報処理装置と、通信元の１以上の通信処理装置を介して、前記通信先の情報処理装置と通信を行う通信元の情報処理装置と、サーバとを備えた情報処理システムにおけるサーバであって、
測定パケットを、当該測定パケットの寿命を変化させて前記通信元の情報処理装置に送信することによって、前記通信元の情報処理装置の属するプライベートネットワークの中継ノードであり、グローバルネットワークに接続されている中継ノードである境界ノードと、前記サーバとの間のパケットの中継時間に応じた情報である中継情報を取得する第１の取得部と、
前記サーバと、前記通信元の情報処理装置との間のパケットの中継時間に応じた情報である中継情報を取得する第２の取得部と、
前記第１の取得部が取得した中継情報と、前記第２の取得部が取得した中継情報とを用いて、前記通信元の情報処理装置と、前記境界ノードとの間のパケットの中継時間に関する情報である中継情報を構成する中継情報構成部と、を備えたサーバ。
【請求項２】
前記中継情報構成部が構成した中継情報を送信する中継情報送信部をさらに備えた、請求項１記載のサーバ。
【請求項３】
前記通信元の情報処理装置から送信された通知パケットを受信する通知パケット受信部と、
前記通知パケット受信部が受信した通知パケットの送信元のアドレスを取得するアドレス取得部と、をさらに備え、
前記第１の取得部は、前記アドレス取得部が取得したアドレスを送信先とする測定パケットを送信する、請求項２記載のサーバ。
【請求項４】
測定パケットの受信に応じて前記通信元の情報処理装置から送信された返信パケットを受信する返信パケット受信部をさらに備え、
前記第２の取得部は、前記返信パケット受信部が受信した返信パケットに対応する測定パケットの寿命を、前記サーバと、前記通信元の情報処理装置との間のパケットの中継時間に応じた中継情報として取得する、請求項３記載のサーバ。
【請求項５】
前記通信元の情報処理装置は、所定の寿命を有する通知パケットを送信するものであり、前記第２の取得部は、前記通知パケット受信部が通知パケットを受信した時点での当該通知パケットの寿命と、前記所定の寿命とを用いて、前記サーバと、前記通信元の情報処理装置との間のパケットの中継時間に応じた中継情報を取得する、請求項１から請求項３のいずれか記載のサーバ。
【請求項６】
前記中継情報構成部が構成する中継情報は、グローバルネットワークにおける中継ノードであって、前記境界ノードに隣接する中継ノードと、前記通信元の情報処理装置との間のパケットの中継時間に応じた中継情報である、請求項１から請求項５のいずれか記載のサーバ。
【請求項７】
前記中継情報は、中継ノードのホップ数を示す情報である、請求項１から請求項６のいずれか記載のサーバ。
【請求項８】
請求項３記載のサーバに、前記通知パケットを送信する前記通信元の情報処理装置であって、
前記通知パケットを前記サーバに送信する通知パケット送信部と、
前記中継情報を受信する中継情報受信部と、
前記中継情報受信部が受信した中継情報を用いて、通信元の通信処理装置に送信履歴を残すために送信されるバブルパケットの寿命を、当該バブルパケットがグローバルネットワークに到達するように設定する寿命設定部と、
前記寿命設定部が設定した寿命を有するバブルパケットを、通信元の１以上の通信処理装置を介して送信するバブルパケット送信部と、を備えた情報処理装置。
【請求項９】
請求項４記載のサーバに、前記通知パケットを送信する前記通信元の情報処理装置であって、
前記通知パケットを前記サーバに送信する通知パケット送信部と、
測定パケットを受信するパケット受信部と、
前記パケット受信部が測定パケットを受信した場合に、前記サーバに返信パケットを送信する返信パケット送信部と、
前記中継情報を受信する中継情報受信部と、
前記中継情報受信部が受信した中継情報を用いて、通信元の通信処理装置に送信履歴を残すために送信されるバブルパケットの寿命を、当該バブルパケットがグローバルネットワークに到達するように設定する寿命設定部と、
前記寿命設定部が設定した寿命を有するバブルパケットを、通信元の１以上の通信処理装置を介して送信するバブルパケット送信部と、を備えた情報処理装置。
【請求項１０】
通信先の情報処理装置と、通信元の１以上の通信処理装置を介して、前記通信先の情報処理装置と通信を行う通信元の情報処理装置とを備えた情報処理システムであって、
前記通信先の情報処理装置は、
前記通信元の情報処理装置に対応するアドレスを受け付けるアドレス受付部と、
前記アドレス受付部が受け付けたアドレスを送信先とする測定パケットを、当該測定パケットの寿命を変化させて送信することによって、前記通信元の情報処理装置と前記通信先の情報処理装置との間のグローバルネットワーク上の通信経路に存在する中継ノードである第１の中継ノードと、前記通信元の情報処理装置と前記通信先の情報処理装置との間の通信経路において、前記第１の中継ノードよりも前記通信元の情報処理装置側に存在する中継ノードであり、少なくともグローバルネットワークに接続されている中継ノードである第２の中継ノードとの間のパケットの中継時間に関する情報である中継情報を構成する中継情報構成部と、
前記中継情報構成部が構成した中継情報を、所定のサーバを介して前記通信元の情報処理装置に送信する中継情報送信部と、を備え、
前記通信元の情報処理装置は、
前記所定のサーバを介して送信された前記中継情報を受信する中継情報受信部と、
前記通信元の情報処理装置と、前記境界ノードとの間のパケットの中継時間に応じた情報である中継情報を取得する中継情報取得部と、
前記中継情報受信部が受信した中継情報から得られる前記第１の中継ノードと前記第２の中継ノードとの間のパケットの中継時間に応じた情報である中継情報と、前記中継情報取得部が取得した中継情報とを用いて、通信元の通信処理装置に送信履歴を残すために送信されるバブルパケットの寿命を、当該バブルパケットがグローバルネットワークに到達するように設定する寿命設定部と、
前記寿命設定部が設定した寿命を有するバブルパケットを、通信元の１以上の通信処理装置を介して送信するバブルパケット送信部と、を備えた、情報処理システム。
【請求項１１】
前記中継情報構成部は、
前記第１の中継ノードと通信先の情報処理装置との間のパケットの中継時間に応じた情報である第１の中継情報を取得し、
前記第２の中継ノードと通信先の情報処理装置との間のパケットの中継時間に応じた情報である第２の中継情報を取得し、
前記第１の中継情報と、前記第２の中継情報とを用いて、前記第１の中継ノードと前記第２の中継ノードとの間のパケットの中継時間に関する中継情報を構成する、請求項１０記載の情報処理システム。
【請求項１２】
前記中継情報構成部が構成した中継情報は、前記第１の中継ノードと、前記第２の中継ノードとの間のパケットの中継時間に応じた情報である、請求項１０または請求項１１記載の情報処理システム。
【請求項１３】
前記中継情報は、中継ノードのホップ数を示す情報であり、
前記寿命は、ＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）、またはホップリミットである、請求項１０から請求項１２のいずれか記載の情報処理システム。
【請求項１４】
請求項１０から請求項１３のいずれか記載の情報処理システムを構成する通信元の情報処理装置。
【請求項１５】
請求項１０から請求項１３のいずれか記載の情報処理システムを構成する通信先の情報処理装置。
【請求項１６】
通信先の情報処理装置と、通信元の１以上の通信処理装置を介して、前記通信先の情報処理装置と通信を行う通信元の情報処理装置と、サーバとを備えた情報処理システムにおけるサーバであって、
前記通信元の情報処理装置から送信された、あらかじめ定められた寿命の設定されたパケットであり、当該通信元の情報処理装置の属するプライベートネットワークを識別する情報であるネットワーク識別情報を含むパケットを受信する受信部と、
プライベートネットワークの中継ノードであり、グローバルネットワークに接続されている中継ノードである境界ノードと前記サーバとの間のパケットの中継時間に応じた情報である中継情報と、前記プライベートネットワークを識別するネットワーク識別情報とを対応付けて有する情報であるグローバル中継情報が記憶されるグローバル中継情報記憶部と、
前記グローバル中継情報を用いて、前記受信部が受信したパケットに含まれるネットワーク識別情報に対応する中継情報を取得する中継情報取得部と、
前記受信部がパケットを受信した時点における、当該パケットの寿命を取得する寿命取得部と、
前記中継情報取得部が取得した中継情報と、前記寿命取得部が取得した寿命とを用いて、前記通信元の情報処理装置と、前記境界ノードとの間のパケットの中継時間に関する情報であるプライベート中継情報を構成するプライベート中継情報構成部と、
前記プライベート中継情報構成部が構成したプライベート中継情報を出力する出力部と、を備えたサーバ。
【請求項１７】
前記プライベート中継情報は、グローバルネットワークにおける中継ノードであって、前記境界ノードに隣接する中継ノードと、前記通信元の情報処理装置との間のパケットの中継時間に応じた情報である、請求項１６記載のサーバ。
【請求項１８】
前記ネットワーク識別情報は、前記境界ノードのグローバルネットワーク側のアドレスである、請求項１６または請求項１７記載のサーバ。
【請求項１９】
前記中継情報は、中継ノードのホップ数を示す情報である、請求項１６から請求項１８のいずれか記載のサーバ。
【請求項２０】
請求項１６から請求項１９のいずれか記載のサーバにパケットを送信する前記通信元の情
報処理装置であって、
前記サーバに、あらかじめ定められた寿命を設定したパケットを送信するパケット送信部と、
前記サーバの出力部から送信されたプライベート中継情報を受信するプライベート中継情報受信部と、
前記プライベート中継情報受信部が受信したプライベート中継情報を用いて、通信元の通信処理装置に送信履歴を残すために送信されるバブルパケットの寿命を、当該バブルパケットがグローバルネットワークに到達するように設定する寿命設定部と、
前記寿命設定部が設定した寿命を有するバブルパケットを、通信元の１以上の通信処理装置を介して送信するバブルパケット送信部と、を備えた情報処理装置。
【請求項２１】
通信先の情報処理装置と、通信元の１以上の通信処理装置を介して、前記通信先の情報処理装置と通信を行う通信元の情報処理装置と、サーバとを備えた情報処理システムにおけるサーバで用いられる情報処理方法であって、
測定パケットを、当該測定パケットの寿命を変化させて前記通信元の情報処理装置に送信することによって、前記通信元の情報処理装置の属するプライベートネットワークの中継ノードであり、グローバルネットワークに接続されている中継ノードである境界ノードと、前記サーバとの間のパケットの中継時間に応じた情報である中継情報を取得する第１の取得ステップと、
前記サーバと、前記通信元の情報処理装置との間のパケットの中継時間に応じた情報である中継情報を取得する第２の取得ステップと、
前記第１の取得ステップで取得した中継情報と、前記第２の取得ステップで取得した中継情報とを用いて、前記通信元の情報処理装置と、前記境界ノードとの間のパケットの中継時間に関する情報である中継情報を構成する中継情報構成ステップと、を備えた情報処理方法。
【請求項２２】
通信先の情報処理装置と、通信元の１以上の通信処理装置を介して、前記通信先の情報処理装置と通信を行う通信元の情報処理装置と、サーバとを備えた情報処理システムにおける通信元の情報処理装置で用いられる情報処理方法であって、
通知パケットを前記サーバに送信する通知パケット送信ステップと、
前記通信元の情報処理装置と、前記通信元の情報処理装置の属するプライベートネットワークの中継ノードであり、グローバルネットワークに接続されている中継ノードである境界ノードとの間のパケットの中継時間に関する情報である中継情報を受信する中継情報受信ステップと、
前記中継情報受信ステップで受信した中継情報を用いて、通信元の通信処理装置に送信履歴を残すために送信されるバブルパケットの寿命を、当該バブルパケットがグローバルネットワークに到達するように設定する寿命設定ステップと、
前記寿命設定ステップで設定した寿命を有するバブルパケットを、通信元の１以上の通信処理装置を介して送信するバブルパケット送信ステップと、を備えた情報処理方法。
【請求項２３】
通信先の情報処理装置と、通信元の１以上の通信処理装置を介して、前記通信先の情報処理装置と通信を行う通信元の情報処理装置とを備えた情報処理システムにおける通信先の情報処理装置で用いられる情報処理方法であって、
前記通信元の情報処理装置に対応するアドレスを受け付けるアドレス受付ステップと、
前記アドレス受付ステップで受け付けたアドレスを送信先とする測定パケットを、当該測定パケットの寿命を変化させて送信することによって、前記通信元の情報処理装置と前記通信先の情報処理装置との間のグローバルネットワーク上の通信経路に存在する中継ノードである第１の中継ノードと、前記通信元の情報処理装置と前記通信先の情報処理装置との間の通信経路において、前記第１の中継ノードよりも前記通信元の情報処理装置側に存在する中継ノードであり、少なくともグローバルネットワークに接続されている中継ノー
ドである第２の中継ノードとの間のパケットの中継時間に関する情報である中継情報を構成する中継情報構成ステップと、
前記中継情報構成ステップで構成した中継情報を、所定のサーバを介して前記通信元の情報処理装置に送信する中継情報送信ステップと、を備えた情報処理方法。
【請求項２４】
通信先の情報処理装置と、通信元の１以上の通信処理装置を介して、前記通信先の情報処理装置と通信を行う通信元の情報処理装置とを備えた情報処理システムにおける通信元の情報処理装置で用いられる情報処理方法であって、
前記通信元の情報処理装置と前記通信先の情報処理装置との間のグローバルネットワーク上の通信経路に存在する中継ノードである第１の中継ノードと、前記通信元の情報処理装置と前記通信先の情報処理装置との間の通信経路において、前記第１の中継ノードよりも前記通信元の情報処理装置側に存在する中継ノードであり、少なくともグローバルネットワークに接続されている中継ノードである第２の中継ノードとの間のパケットの中継時間に関する情報である中継情報を受信する中継情報受信ステップと、
前記通信元の情報処理装置と、前記境界ノードとの間のパケットの中継時間に応じた情報である中継情報を取得する中継情報取得ステップと、
前記中継情報受信ステップで受信した中継情報から得られる前記第１の中継ノードと前記第２の中継ノードとの間のパケットの中継時間に応じた情報である中継情報と、前記中継情報取得ステップで取得した中継情報とを用いて、通信元の通信処理装置に送信履歴を残すために送信されるバブルパケットの寿命を、当該バブルパケットがグローバルネットワークに到達するように設定する寿命設定ステップと、
前記寿命設定ステップで設定した寿命を有するバブルパケットを、通信元の１以上の通信処理装置を介して送信するバブルパケット送信ステップと、を備えた情報処理方法。
【請求項２５】
通信先の情報処理装置と、通信元の１以上の通信処理装置を介して、前記通信先の情報処理装置と通信を行う通信元の情報処理装置と、サーバとを備えた情報処理システムにおけるサーバで用いられる情報処理方法であって、
前記通信元の情報処理装置から送信された、あらかじめ定められた寿命の設定されたパケットであり、当該通信元の情報処理装置の属するプライベートネットワークを識別する情報であるネットワーク識別情報を含むパケットを受信する受信ステップと、
グローバル中継情報記憶部で記憶されている、プライベートネットワークの中継ノードであり、グローバルネットワークに接続されている中継ノードである境界ノードと前記サーバとの間のパケットの中継時間に応じた情報である中継情報と、前記プライベートネットワークを識別するネットワーク識別情報とを対応付けて有する情報であるグローバル中継情報を用いて、前記受信ステップで受信したパケットに含まれるネットワーク識別情報に対応する中継情報を取得する中継情報取得ステップと、
前記受信ステップでパケットを受信した時点における、当該パケットの寿命を取得する寿命取得ステップと、
前記中継情報取得ステップで取得した中継情報と、前記寿命取得ステップで取得した寿命とを用いて、前記通信元の情報処理装置と、前記境界ノードとの間のパケットの中継時間に関する情報であるプライベート中継情報を構成するプライベート中継情報構成ステップと、
前記プライベート中継情報構成ステップで構成したプライベート中継情報を出力する出力ステップと、を備えた情報処理方法。
【請求項２６】
通信先の情報処理装置と、通信元の１以上の通信処理装置を介して、前記通信先の情報処理装置と通信を行う通信元の情報処理装置と、サーバとを備えた情報処理システムにおける通信元の情報処理装置で用いられる情報処理方法であって、
前記サーバに、あらかじめ定められた寿命を設定したパケットを送信するパケット送信ステップと、
前記サーバから送信された、前記通信元の情報処理装置と、プライベートネットワークの中継ノードであり、グローバルネットワークに接続されている中継ノードである境界ノードとの間のパケットの中継時間に関する情報であるプライベート中継情報を受信するプライベート中継情報受信ステップと、
前記プライベート中継情報受信ステップで受信したプライベート中継情報を用いて、通信元の通信処理装置に送信履歴を残すために送信されるバブルパケットの寿命を、当該バブルパケットがグローバルネットワークに到達するように設定する寿命設定ステップと、
前記寿命設定ステップで設定した寿命を有するバブルパケットを、通信元の１以上の通信処理装置を介して送信するバブルパケット送信ステップと、を備えた情報処理方法。
【請求項２７】
コンピュータに、
通信先の情報処理装置と、通信元の１以上の通信処理装置を介して、前記通信先の情報処理装置と通信を行う通信元の情報処理装置と、サーバとを備えた情報処理システムにおけるサーバでの処理を実行させるためのプログラムであって、
測定パケットを、当該測定パケットの寿命を変化させて前記通信元の情報処理装置に送信することによって、前記通信元の情報処理装置の属するプライベートネットワークの中継ノードであり、グローバルネットワークに接続されている中継ノードである境界ノードと、前記サーバとの間のパケットの中継時間に応じた情報である中継情報を取得する第１の取得ステップと、
前記サーバと、前記通信元の情報処理装置との間のパケットの中継時間に応じた情報である中継情報を取得する第２の取得ステップと、
前記第１の取得ステップで取得した中継情報と、前記第２の取得ステップで取得した中継情報とを用いて、前記通信元の情報処理装置と、前記境界ノードとの間のパケットの中継時間に関する情報である中継情報を構成する中継情報構成ステップと、を実行させるためのプログラム。
【請求項２８】
コンピュータに、
通信先の情報処理装置と、通信元の１以上の通信処理装置を介して、前記通信先の情報処理装置と通信を行う通信元の情報処理装置と、サーバとを備えた情報処理システムにおける通信元の情報処理装置での処理を実行させるためのプログラムであって、
通知パケットを前記サーバに送信する通知パケット送信ステップと、
前記通信元の情報処理装置と、前記通信元の情報処理装置の属するプライベートネットワークの中継ノードであり、グローバルネットワークに接続されている中継ノードである境界ノードとの間のパケットの中継時間に関する情報である中継情報を受信する中継情報受信ステップと、
前記中継情報受信ステップで受信した中継情報を用いて、通信元の通信処理装置に送信履歴を残すために送信されるバブルパケットの寿命を、当該バブルパケットがグローバルネットワークに到達するように設定する寿命設定ステップと、
前記寿命設定ステップで設定した寿命を有するバブルパケットを、通信元の１以上の通信処理装置を介して送信するバブルパケット送信ステップと、を実行させるためのプログラム。
【請求項２９】
コンピュータに、
通信先の情報処理装置と、通信元の１以上の通信処理装置を介して、前記通信先の情報処理装置と通信を行う通信元の情報処理装置とを備えた情報処理システムにおける通信先の情報処理装置での処理を実行させるためのプログラムであって、
前記通信元の情報処理装置に対応するアドレスを受け付けるアドレス受付ステップと、
前記アドレス受付ステップで受け付けたアドレスを送信先とする測定パケットを、当該測定パケットの寿命を変化させて送信することによって、前記通信元の情報処理装置と前記通信先の情報処理装置との間のグローバルネットワーク上の通信経路に存在する中継ノー
ドである第１の中継ノードと、前記通信元の情報処理装置と前記通信先の情報処理装置との間の通信経路において、前記第１の中継ノードよりも前記通信元の情報処理装置側に存在する中継ノードであり、少なくともグローバルネットワークに接続されている中継ノードである第２の中継ノードとの間のパケットの中継時間に関する情報である中継情報を構成する中継情報構成ステップと、
前記中継情報構成ステップで構成した中継情報を、所定のサーバを介して前記通信元の情報処理装置に送信する中継情報送信ステップと、を実行させるためのプログラム。
【請求項３０】
コンピュータに、
通信先の情報処理装置と、通信元の１以上の通信処理装置を介して、前記通信先の情報処理装置と通信を行う通信元の情報処理装置とを備えた情報処理システムにおける通信元の情報処理装置での処理を実行させるためのプログラムであって、
前記通信元の情報処理装置と前記通信先の情報処理装置との間のグローバルネットワーク上の通信経路に存在する中継ノードである第１の中継ノードと、前記通信元の情報処理装置と前記通信先の情報処理装置との間の通信経路において、前記第１の中継ノードよりも前記通信元の情報処理装置側に存在する中継ノードであり、少なくともグローバルネットワークに接続されている中継ノードである第２の中継ノードとの間のパケットの中継時間に関する情報である中継情報を受信する中継情報受信ステップと、
前記通信元の情報処理装置と、前記境界ノードとの間のパケットの中継時間に応じた情報である中継情報を取得する中継情報取得ステップと、
前記中継情報受信ステップで受信した中継情報から得られる前記第１の中継ノードと前記第２の中継ノードとの間のパケットの中継時間に応じた情報である中継情報と、前記中継情報取得ステップで取得した中継情報とを用いて、通信元の通信処理装置に送信履歴を残すために送信されるバブルパケットの寿命を、当該バブルパケットがグローバルネットワークに到達するように設定する寿命設定ステップと、
前記寿命設定ステップで設定した寿命を有するバブルパケットを、通信元の１以上の通信処理装置を介して送信するバブルパケット送信ステップと、を実行させるためのプログラム。
【請求項３１】
コンピュータに、
通信先の情報処理装置と、通信元の１以上の通信処理装置を介して、前記通信先の情報処理装置と通信を行う通信元の情報処理装置と、サーバとを備えた情報処理システムにおけるサーバでの処理を実行させるためのプログラムであって、
前記通信元の情報処理装置から送信された、あらかじめ定められた寿命の設定されたパケットであり、当該通信元の情報処理装置の属するプライベートネットワークを識別する情報であるネットワーク識別情報を含むパケットを受信する受信ステップと、
グローバル中継情報記憶部で記憶されている、プライベートネットワークの中継ノードであり、グローバルネットワークに接続されている中継ノードである境界ノードと前記サーバとの間のパケットの中継時間に応じた情報である中継情報と、前記プライベートネットワークを識別するネットワーク識別情報とを対応付けて有する情報であるグローバル中継情報を用いて、前記受信ステップで受信したパケットに含まれるネットワーク識別情報に対応する中継情報を取得する中継情報取得ステップと、
前記受信ステップでパケットを受信した時点における、当該パケットの寿命を取得する寿命取得ステップと、
前記中継情報取得ステップで取得した中継情報と、前記寿命取得ステップで取得した寿命とを用いて、前記通信元の情報処理装置と、前記境界ノードとの間のパケットの中継時間に関する情報であるプライベート中継情報を構成するプライベート中継情報構成ステップと、
前記プライベート中継情報構成ステップで構成したプライベート中継情報を出力する出力ステップと、を実行させるためのプログラム。
【請求項３２】
コンピュータに、
通信先の情報処理装置と、通信元の１以上の通信処理装置を介して、前記通信先の情報処理装置と通信を行う通信元の情報処理装置と、サーバとを備えた情報処理システムにおける通信元の情報処理装置での処理を実行させるためのプログラムであって、
前記サーバに、あらかじめ定められた寿命を設定したパケットを送信するパケット送信ステップと、
前記サーバから送信された、前記通信元の情報処理装置と、プライベートネットワークの中継ノードであり、グローバルネットワークに接続されている中継ノードである境界ノードとの間のパケットの中継時間に関する情報であるプライベート中継情報を受信するプライベート中継情報受信ステップと、
前記プライベート中継情報受信ステップで受信したプライベート中継情報を用いて、通信元の通信処理装置に送信履歴を残すために送信されるバブルパケットの寿命を、当該バブルパケットがグローバルネットワークに到達するように設定する寿命設定ステップと、
前記寿命設定ステップで設定した寿命を有するバブルパケットを、通信元の１以上の通信処理装置を介して送信するバブルパケット送信ステップと、を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットの中継時間に関する情報である中継情報を構成するサーバ等に関する。
【背景技術】
【０００２】
従来、サーバを介することなく、情報処理装置間で直接、Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ等の通信を行う技術が開発されている。その通信において、図３０で示すように、情報処理装置ＰＣ１，ＰＣ２が、それぞれＮＡＴ１，ＮＡＴ２を介して通信を行う場合もある。ここで、ＮＡＴ１、ＮＡＴ２は、ローカル側（情報処理装置側）のプライベートＩＰアドレスと、通信回線側のグローバルＩＰアドレスとの変換を行う。そのＮＡＴ１、ＮＡＴ２等には、ポート割り当てルールと、受信フィルタルールとがあり、その組み合わせによってＮＡＴの分類がなされる。具体的には、送信ポート割り当てルールには、パケットの宛先（ＩＰアドレス、ポート）に依存せず、ＮＡＴのローカル側（たとえば、ＬＡＮ側）の情報処理装置のポートとＩＰアドレスが同じであれば、ＮＡＴに割り当てられるグローバル側（たとえば、インターネットなどのＷＡＮ側）のポートが同一となるＣｏｎｅタイプと、パケットの宛先アドレスごとに新しいポートが割り当てられるＡｄｄｒｅｓｓ  Ｓｅｎｓｉｔｉｖｅタイプと、パケットの宛先ポートごとに新しいポートが割り当てられるＰｏｒｔ  Ｓｅｎｓｉｔｉｖｅタイプがある。ＮＡＴのローカル側からパケットが送信されたポートに対してグローバル側からのパケットの受信可能性を判断する受信フィルタルールには、そのポートからパケットを送信したアドレスからのみしかパケットを受信しないＡｄｄｒｅｓｓ  Ｓｅｎｓｉｔｉｖｅフィルタと、そのポートからパケットを送信したポートからのみしかパケットを受信しないＰｏｒｔ  Ｓｅｎｓｉｔｉｖｅフィルタと、フィルタが存在しないＮｏフィルタがある。
【０００３】
そのようなＮＡＴを介した通信において、ＮＡＴのＬＡＮ側からＷＡＮ側に対してパケットの送信がなされていないと、ＷＡＮ側の他の情報処理装置からのパケットを受け付けることができないことがある。特に、ＮＡＴの受信フィルタルールがＡｄｄｒｅｓｓ  ＳｅｎｓｉｔｉｖｅフィルタやＰｏｒｔ  Ｓｅｎｓｉｔｉｖｅフィルタである場合には、ＷＡＮ側の情報処理装置や、その情報処理装置における所定のポートにパケットを送信していないと、そのＷＡＮ側の情報処理装置から送信されたパケットを受け付けることができない。したがって、ＮＡＴを介した情報処理装置間の通信を確立するために、ＮＡＴに送信履歴を残すためのパケット（以下、「バブルパケット」と称する）の送信等を行っていた（例えば、特許文献１、２参照）。
【０００４】
しかしながら、ＮＡＴの種類によっては、セキュリティーを向上させるために、受信フィルタルールによって受信することができないパケットを攻撃であるとみなし、そのパケットの通信元のＩＰアドレスから送信されたパケットを受け付けないものもある。そのような場合に、バブルパケットを通信先のＮＡＴに対して送信すると、そのバブルパケットが攻撃であるとみなされる。その結果、バブルパケットを受信したＮＡＴが、バブルパケットを送信した情報処理装置からのパケットを一切受け付けなくなり、バブルパケットを送信した情報処理装置と、バブルパケットが送信された側の情報処理装置との間での通信を適切に確立することができなくなる場合もある。
【０００５】
また、バブルパケットは、通信元のＮＡＴが通信先から送信されたパケットを適切に受信することができるように、通信元のＮＡＴに送信履歴を残すことを目的として送信されるものである。したがって、通常、バブルパケットは情報を伝達するために送信されるものではない。そのような情報を伝達する役割を持たないパケットによって、インターネッ
トなどの通信回線におけるトラフィックが増大することは、好ましいことではない。
これらの課題を解決するために、バブルパケットに寿命を設定する装置が開発されている（例えば、特許文献３参照）。
【特許文献１】国際公開第２００５／０４１５００号パンフレット
【特許文献２】国際公開第２００５／０４６１４３号パンフレット
【特許文献３】特開２００５−３２３０３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記特許文献３では、バブルパケットを送信する情報処理装置において、バブルパケットの送信に関する中継ノードの計数等が行われている。しかしながら、バブルパケットを送信する情報処理装置がバブルパケットの送信に関する中継ノードの計数等を行う機能を有していない場合もありうる。また、バブルパケットを送信する情報処理装置による中継ノードの計数等のみに基づいてバブルパケットを送信した場合には、適切なバブルパケットの送信ができない場合もありうる。例えば、中継ノードの計数等の処理時に、通信先のＮＡＴにパケットが到達してしまうこともありうるからである。
【０００７】
本発明は、上記のような事情に鑑みてなされたものであり、その一つの目的は、バブルパケットを送信する情報処理装置以外のサーバにおいて、バブルパケットに寿命を設定するための情報を取得することを目的とする。
【０００８】
また、本発明の他の目的は、バブルパケットを送信する情報処理装置と、バブルパケットを送信する情報処理装置以外の情報処理装置とにおいて、バブルパケットの寿命を設定するための情報を取得することにより、バブルパケットに適切な寿命を設定することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明によるサーバは、通信先の情報処理装置と、通信元の１以上の通信処理装置を介して、前記通信先の情報処理装置と通信を行う通信元の情報処理装置と、サーバとを備えた情報処理システムにおけるサーバであって、測定パケットを、当該測定パケットの寿命を変化させて前記通信元の情報処理装置に送信することによって、前記通信元の情報処理装置の属するプライベートネットワークの中継ノードであり、グローバルネットワークに接続されている中継ノードである境界ノードと、前記サーバとの間のパケットの中継時間に応じた情報である中継情報を取得する第１の取得部と、前記サーバと、前記通信元の情報処理装置との間のパケットの中継時間に応じた情報である中継情報を取得する第２の取得部と、前記第１の取得部が取得した中継情報と、前記第２の取得部が取得した中継情報とを用いて、前記通信元の情報処理装置と、前記境界ノードとの間のパケットの中継時間に関する情報である中継情報を構成する中継情報構成部と、を備えたものである。
【００１０】
このような構成により、通信元の情報処理装置は、中継情報構成部が構成した中継情報を用いることによって、バブルパケットの寿命を設定することができる。したがって、通信元の情報処理装置がバブルパケットの寿命を設定するためにトレースルート等の処理をする必要がなく、通信元の情報処理装置における処理負荷が軽減されることになる。また、通信元の情報処理装置がトレースルート等の処理をする場合には、通信元の情報処理装置から送信されたパケットが通信先の通信処理装置に当たることによって、その通信先の通信処理装置が、通信元の情報処理装置からのパケットを受け付けなくなることもありうるが、このように、サーバが測定パケットを送信することによって、そのような事態を回避することができる。
【００１１】
また、本発明によるサーバでは、前記中継情報構成部が構成した中継情報を送信する中継情報送信部をさらに備えてもよい。
このような構成により、サーバから通信元の情報処理装置に、中継情報構成部が構成した中継情報を通知することができる。
【００１２】
また、本発明によるサーバでは、前記通信元の情報処理装置から送信された通知パケットを受信する通知パケット受信部と、前記通知パケット受信部が受信した通知パケットの送信元のアドレスを取得するアドレス取得部と、をさらに備え、前記第１の取得部は、前記アドレス取得部が取得したアドレスを送信先とする測定パケットを送信してもよい。
【００１３】
このような構成により、第１の取得部は、そのアドレス取得部が取得したアドレスを用いて、測定パケットを送信することができる。このようにすることで、例えば、通信元の通信処理装置におけるアドレスやポート番号が頻繁に変わるような場合であっても、最新のアドレス等を用いて、適切な測定パケットの送信を行うことができうる。
【００１４】
また、本発明によるサーバでは、測定パケットの受信に応じて前記通信元の情報処理装置から送信された返信パケットを受信する返信パケット受信部をさらに備え、前記第２の取得部は、前記返信パケット受信部が受信した返信パケットに対応する測定パケットの寿命を、前記サーバと、前記通信元の情報処理装置との間のパケットの中継時間に応じた中継情報として取得してもよい。
【００１５】
このような構成により、第２の取得部は、通信元の情報処理装置から送信される返信パケットを用いることによって、通信元の情報処理装置とサーバとの間の中継情報を取得することができうる。
【００１６】
また、本発明によるサーバでは、前記通信元の情報処理装置は、所定の寿命を有する通知パケットを送信するものであり、前記第２の取得部は、前記通知パケット受信部が通知パケットを受信した時点での当該通知パケットの寿命と、前記所定の寿命とを用いて、前記サーバと、前記通信元の情報処理装置との間のパケットの中継時間に応じた中継情報を取得してもよい。
【００１７】
このような構成により、第２の取得部は、通知パケットが受信された時点での残りの寿命と、その通知パケットが通信元の情報処理装置から送信される時点で設定される寿命とを用いることによって、通信元の情報処理装置とサーバとの間の中継情報を取得することができうる。
【００１８】
また、本発明によるサーバでは、前記中継情報構成部が構成する中継情報は、グローバルネットワークにおける中継ノードであって、前記境界ノードに隣接する中継ノードと、前記通信元の情報処理装置との間のパケットの中継時間に応じた中継情報であってもよい。
【００１９】
このような構成により、通信元の情報処理装置は、中継情報構成部が構成した中継情報の示すパケットの中継時間やホップ数等を、そのままバブルパケットの寿命に設定することができうる。
【００２０】
本発明による情報処理装置は、前記サーバに、前記通知パケットを送信する前記通信元の情報処理装置であって、前記通知パケットを前記サーバに送信する通知パケット送信部と、前記中継情報を受信する中継情報受信部と、前記中継情報受信部が受信した中継情報を用いて、通信元の通信処理装置に送信履歴を残すために送信されるバブルパケットの寿命を、当該バブルパケットがグローバルネットワークに到達するように設定する寿命設定
部と、前記寿命設定部が設定した寿命を有するバブルパケットを、通信元の１以上の通信処理装置を介して送信するバブルパケット送信部と、を備えたものである。
【００２１】
このような構成により、通信元の情報処理装置は、受信した中継情報を用いることによって、バブルパケットの寿命を設定することができる。したがって、通信元の情報処理装置がバブルパケットの寿命を設定するためにトレースルート等の処理をする必要がなく、通信元の情報処理装置における処理負荷が軽減されることになる。
【００２２】
本発明による情報処理装置は、前記サーバに、前記通知パケットを送信する前記通信元の情報処理装置であって、前記通知パケットを前記サーバに送信する通知パケット送信部と、測定パケットを受信するパケット受信部と、前記パケット受信部が測定パケットを受信した場合に、前記サーバに返信パケットを送信する返信パケット送信部と、前記中継情報を受信する中継情報受信部と、前記中継情報受信部が受信した中継情報を用いて、通信元の通信処理装置に送信履歴を残すために送信されるバブルパケットの寿命を、当該バブルパケットがグローバルネットワークに到達するように設定する寿命設定部と、前記寿命設定部が設定した寿命を有するバブルパケットを、通信元の１以上の通信処理装置を介して送信するバブルパケット送信部と、を備えたものである。
【００２３】
このような構成により、通信元の情報処理装置は、受信した中継情報を用いることによって、バブルパケットの寿命を設定することができる。したがって、通信元の情報処理装置がバブルパケットの寿命を設定するためにトレースルート等の処理をする必要がなく、通信元の情報処理装置における処理負荷が軽減されることになる。また、返信パケットが送信されることにより、サーバにおいて、通信元の情報処理装置とサーバとの間の中継情報を適切に取得することができうる。
【００２４】
本発明による情報処理システムは、通信先の情報処理装置と、通信元の１以上の通信処理装置を介して、前記通信先の情報処理装置と通信を行う通信元の情報処理装置とを備えた情報処理システムであって、前記通信先の情報処理装置は、前記通信元の情報処理装置に対応するアドレスを受け付けるアドレス受付部と、前記アドレス受付部が受け付けたアドレスを送信先とする測定パケットを、当該測定パケットの寿命を変化させて送信することによって、前記通信元の情報処理装置と前記通信先の情報処理装置との間のグローバルネットワーク上の通信経路に存在する中継ノードである第１の中継ノードと、前記通信元の情報処理装置と前記通信先の情報処理装置との間の通信経路において、前記第１の中継ノードよりも前記通信元の情報処理装置側に存在する中継ノードであり、少なくともグローバルネットワークに接続されている中継ノードである第２の中継ノードとの間のパケットの中継時間に関する情報である中継情報を構成する中継情報構成部と、前記中継情報構成部が構成した中継情報を、所定のサーバを介して前記通信元の情報処理装置に送信する中継情報送信部と、を備え、前記通信元の情報処理装置は、前記所定のサーバを介して送信された前記中継情報を受信する中継情報受信部と、前記通信元の情報処理装置と、前記境界ノードとの間のパケットの中継時間に応じた情報である中継情報を取得する中継情報取得部と、前記中継情報受信部が受信した中継情報から得られる前記第１の中継ノードと前記第２の中継ノードとの間のパケットの中継時間に応じた情報である中継情報と、前記中継情報取得部が取得した中継情報とを用いて、通信元の通信処理装置に送信履歴を残すために送信されるバブルパケットの寿命を、当該バブルパケットがグローバルネットワークに到達するように設定する寿命設定部と、前記寿命設定部が設定した寿命を有するバブルパケットを、通信元の１以上の通信処理装置を介して送信するバブルパケット送信部と、を備えた、ものである。
【００２５】
このような構成により、通信元の情報処理装置において取得された、通信元の情報処理装置と境界ノードとの間の中継情報と、通信先の情報処理装置において取得された、グロ
ーバルネットワークにおける第１及び第２の中継ノードの間の中継情報とを用いて、バブルパケットの寿命の設定を適切に行うことができうる。
【００２６】
また、本発明による情報処理システムでは、前記中継情報構成部は、前記第１の中継ノードと通信先の情報処理装置との間のパケットの中継時間に応じた情報である第１の中継情報を取得し、前記第２の中継ノードと通信先の情報処理装置との間のパケットの中継時間に応じた情報である第２の中継情報を取得し、前記第１の中継情報と、前記第２の中継情報とを用いて、前記第１の中継ノードと前記第２の中継ノードとの間のパケットの中継時間に関する中継情報を構成してもよい。
このような構成により、第１及び第２の中継ノードの間の中継情報を構成することができる。
【００２７】
本発明によるサーバは、通信先の情報処理装置と、通信元の１以上の通信処理装置を介して、前記通信先の情報処理装置と通信を行う通信元の情報処理装置と、サーバとを備えた情報処理システムにおけるサーバであって、前記通信元の情報処理装置から送信された、あらかじめ定められた寿命の設定されたパケットであり、当該通信元の情報処理装置の属するプライベートネットワークを識別する情報であるネットワーク識別情報を含むパケットを受信する受信部と、プライベートネットワークの中継ノードであり、グローバルネットワークに接続されている中継ノードである境界ノードと前記サーバとの間のパケットの中継時間に応じた情報である中継情報と、前記プライベートネットワークを識別するネットワーク識別情報とを対応付けて有する情報であるグローバル中継情報が記憶されるグローバル中継情報記憶部と、前記グローバル中継情報を用いて、前記受信部が受信したパケットに含まれるネットワーク識別情報に対応する中継情報を取得する中継情報取得部と、前記受信部がパケットを受信した時点における、当該パケットの寿命を取得する寿命取得部と、前記中継情報取得部が取得した中継情報と、前記寿命取得部が取得した寿命とを用いて、前記通信元の情報処理装置と、前記境界ノードとの間のパケットの中継時間に関する情報であるプライベート中継情報を構成するプライベート中継情報構成部と、前記プライベート中継情報構成部が構成したプライベート中継情報を出力する出力部と、を備えたものである。
【００２８】
このような構成により、中継情報を取得するためのトレースルート等の処理をすることなく、通信元の情報処理装置と境界ノードとの間のパケットの中継時間に関する情報であるプライベート中継情報を構成し、出力することができる。
【００２９】
本発明による情報処理装置は、前記サーバにパケットを送信する前記通信元の情報処理装置であって、前記サーバに、あらかじめ定められた寿命を設定したパケットを送信するパケット送信部と、前記サーバの出力部から送信されたプライベート中継情報を受信するプライベート中継情報受信部と、前記プライベート中継情報受信部が受信したプライベート中継情報を用いて、通信元の通信処理装置に送信履歴を残すために送信されるバブルパケットの寿命を、当該バブルパケットがグローバルネットワークに到達するように設定する寿命設定部と、前記寿命設定部が設定した寿命を有するバブルパケットを、通信元の１以上の通信処理装置を介して送信するバブルパケット送信部と、を備えたものである。
このような構成により、通信元の情報処理装置やサーバにおいて、トレースルート等の処理を行うことなく、バブルパケットの寿命の設定を行うことができる。
【発明の効果】
【００３０】
本発明によるサーバ等によれば、サーバにおいて、通信元の情報処理装置と、境界ノードとの間のパケットの中継時間に関する情報である中継情報を構成し、その中継情報を用いて通信元の情報処理装置がバブルパケットの寿命を設定することによって、通信元の情報処理装置が、その中継情報を取得するためにトレースルート等の処理をする必要がなく
、通信元の情報処理装置の処理負担が軽減されている。また、バブルパケットの寿命を設定するために用いられるパケットが、通信先の通信処理装置に当たることがないようにすることができる。
【００３１】
また、本発明による情報処理システムによれば、通信元の情報処理装置において、その情報処理装置と境界ノードとの間の中継情報を取得し、通信先の情報処理装置において、グローバルネットワークにおける第１及び第２の中継ノードの間の中継情報を取得し、両者を用いて通信元の情報処理装置がバブルパケットの寿命を設定することによって、バブルパケットの寿命を設定するために用いられるパケットが、通信先の通信処理装置に当たることがないようにすることができる。
【００３２】
また、本発明による情報処理システムによれば、サーバにおいて、ネットワーク識別情報に対応付けて、境界ノードとサーバとの間の中継情報を保持することにより、中継情報を取得するためのトレースルート等の処理をすることなく、通信元の情報処理装置と境界ノードとの間のパケットの中継時間に関する情報であるプライベート中継情報を得ることができうる。
【発明を実施するための最良の形態】
【００３３】
以下、本発明による情報処理システムについて、実施の形態を用いて説明する。なお、以下の実施の形態において、同じ符号を付した構成要素及びステップは同一または相当するものであり、再度の説明を省略することがある。
【００３４】
（実施の形態１）
本発明の実施の形態１による情報処理システムについて、図面を参照しながら説明する。本実施の形態による情報処理システムでは、後述するように、サーバが通信元の情報処理装置と境界ノードとの間に関する中継情報を構成する。そして、通信元の情報処理装置は、その中継情報を用いてバブルパケットを送信する。
【００３５】
図１は、本実施の形態による情報処理システムの構成を示すブロック図である。図１において、本実施の形態による情報処理システムは、情報処理装置１，２と、通信処理装置３，４と、サーバ５とを備える。通信処理装置３，４、及びサーバ５は、有線または無線の通信回線１００を介して接続されている。この通信回線１００は、例えば、インターネットやイントラネット、公衆電話回線網等である。この通信回線１００は、いわゆるグローバルネットワークであるとする。
【００３６】
なお、図１では、通信処理装置３、４にそれぞれ、情報処理装置１、２のみが接続されている場合について示しているが、これ以外の装置が、通信処理装置３、４に接続されていてもよい。後述する実施の形態においても同様であるとする。
【００３７】
また、図１では、情報処理装置１、２にそれぞれ通信処理装置３、４が１個ずつ接続されている場合について示しているが、各情報処理装置に接続される通信処理装置は、多段であってもよい。すなわち、情報処理装置１、２から通信回線１００までの間に、２以上の通信処理装置が存在してもよい。後述する実施の形態においても同様であるとする。
【００３８】
また、本実施の形態では、情報処理装置１が通信元の情報処理装置として動作し、情報処理装置２が通信先の情報処理装置として動作する場合について説明する。ここで、通信元の情報処理装置と、通信先の情報処理装置とは、サーバ５を介さないＰｅｅｒ  ｔｏ  Ｐｅｅｒの通信（以下、「Ｐ２Ｐ通信」とすることもある）を行う２個の情報処理装置のそれぞれを識別するための名称である。なお、本実施の形態及び後述する実施の形態２，３において、Ｐ２Ｐ通信を確立するために、後述するバブルパケットを送信する側の情報
処理装置が通信元の情報処理装置であるとする。なお、通信を確立するとは、情報処理装置１と情報処理装置２との間において、サーバ等を介さないＰ２Ｐ通信を開始可能な状態にすることをいう。
【００３９】
図２は、本実施の形態による情報処理装置１の構成を示すブロック図である。図２において、本実施の形態による情報処理装置１は、通信制御部１１と、通知パケット送信部１２と、パケット受信部１３と、返信パケット送信部１４と、中継情報受信部１５と、寿命設定部１６と、バブルパケット送信部１７とを備える。
通信制御部１１は、通信元の情報処理装置１と、通信先の情報処理装置２との間での通信を確立させるための処理を行う。その処理の詳細については後述する。
【００４０】
通知パケット送信部１２は、通知パケットをサーバ５に送信する。この通知パケットは、後述する測定パケットの送信先のアドレス等をサーバ５に通知するために送信されるパケットである。通知パケットは、結果として、測定パケットの送信先のアドレス等をサーバ５に通知することができるのであれば、他の目的のため、例えば、何らかの情報をサーバ５に通知するために送信されるものであってもよい。通知パケットのペイロードには、何らかの有意な情報が含まれていてもよく、含まれていなくてもよい。通知パケットは、例えば、ＵＤＰやＴＣＰのパケットである。通知パケット送信部１２は、例えば、通知パケットの送信先であるサーバ５のアドレスをあらかじめ保持していてもよく、通知パケットの送信時に、サーバ５のアドレスを他の構成要素等から取得してもよい。
【００４１】
なお、通知パケット送信部１２は、送信を行うための送信デバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい。また、通知パケット送信部１２は、ハードウェアによって実現されてもよく、あるいは送信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【００４２】
パケット受信部１３は、サーバ５から送信された測定パケットを受信する。なお、パケット受信部１３は、受信を行うための受信デバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい。また、パケット受信部１３は、ハードウェアによって実現されてもよく、あるいは受信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【００４３】
返信パケット送信部１４は、パケット受信部１３が測定パケットを受信した場合に、返信パケットをサーバ５に送信する。返信パケットは、情報処理装置１が測定パケットを受信したことをサーバ５に通知するために送信されるため、返信パケット送信部１４は、パケット受信部１３が測定パケットを受信した直後に返信パケットを送信することが好ましい。返信パケットのペイロードには、何らかの有意な情報（例えば、返信パケットであることを示す情報等）が含まれていてもよく、あるいは、含まれていなくてもよい。返信パケットは、例えば、ＵＤＰやＴＣＰのパケットである。返信パケット送信部１４は、例えば、返信パケットの送信先であるサーバ５のアドレスをあらかじめ保持していてもよく、返信パケットの送信時に、受信された測定パケットからサーバ５のアドレスを取得してもよく、他の構成要素等からサーバ５のアドレスを取得してもよい。
【００４４】
なお、返信パケット送信部１４は、送信を行うための送信デバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい。また、返信パケット送信部１４は、ハードウェアによって実現されてもよく、あるいは送信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【００４５】
中継情報受信部１５は、サーバ５から送信された中継情報を受信する。中継情報受信部１５は、この中継情報を、サーバ５から直接受信してもよく、他のサーバ等のリレーを介
して受信してもよい。中継情報受信部１５が受信する中継情報については後述する。なお、中継情報受信部１５は、受信を行うための受信デバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい。また、中継情報受信部１５は、ハードウェアによって実現されてもよく、あるいは受信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【００４６】
寿命設定部１６は、中継情報受信部１５が受信した中継情報を用いてバブルパケットの寿命を設定する。ここで、バブルパケットとは、通信元の通信処理装置３に送信履歴を残すために送信されるパケットである。
【００４７】
寿命とは、パケットが存在しうる時間的な範囲、あるいは空間的な範囲を決定する情報である。パケットが存在しうる時間的な範囲を寿命が示す場合には、その寿命は、例えば、パケットが存在可能な期間の終期を特定可能な情報を含むものとする。その情報は、例えば、パケットの送信時刻と、その送信時刻からパケットが存在可能な期間とを示す情報であってもよく、パケットの存在可能な期間の終期を示す時刻であってもよく、各時点におけるパケットの存在可能な期間を示す情報（この期間は、パケットが通信されていく際に、時間の経過に応じて中継ノードによって減少させられるものとする）であってもよい。なお、パケットを転送する中継ノードにおいて、そのパケットが存在可能な期間の終期を経過したと判断された場合には、そのパケットは、それ以上転送されないことになる。パケットが存在しうる空間的な範囲を寿命が示す場合には、その寿命は、例えば、ＩＰｖ４における、いわゆるＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）であってもよく、ＩＰｖ６における、いわゆるホップリミット（Ｈｏｐ  Ｌｉｍｉｔ）であってもよい。ＴＴＬや、ホップリミットは、パケットが中継ノードを通過するごとに１だけ減算される。そして、パケットのＴＴＬ等の値が０になった場合に、そのパケットは、それ以上転送されないことになる。ここで、中継ノードとは、ルーティング機能を有するいわゆるルータのことであり、アドレス変換機能を有してもよく、有していなくてもよい。また、中継ノードは、グローバルアドレスからグローバルアドレスにパケットを中継（例えば、インターネットにおいて行われる）してもよく、プライベートアドレスからプライベートアドレスにパケットを中継（例えば、ＬＡＮにおいて行われる）してもよく、プライベートアドレスとグローバルアドレスとの間でパケットを中継（例えば、ＬＡＮとインターネットとの間で行われる）してもよい。
【００４８】
寿命設定部１６は、バブルパケットがグローバルネットワークに到達するように、そのバブルパケットの寿命を設定する。「バブルパケットがグローバルネットワークに到達する」とは、バブルパケットが少なくともグローバルネットワークを通過することである。寿命設定部１６が、バブルパケットの寿命の設定において、中継情報をどのように用いるのかについては後述する。寿命設定部１６は、例えば、所定の記録媒体等にバブルパケットの寿命を示すデータを蓄積することにより、寿命の設定を行う。
【００４９】
バブルパケット送信部１７は、寿命設定部１６が設定した寿命を有するバブルパケットを、通信元の１以上の通信処理装置３を介して送信する。このバブルパケットが送信されることにより、通信元の通信処理装置３に送信履歴が残され、その結果として、情報処理装置１は、通信先の情報処理装置２から送信されたパケットを受信することができうる。バブルパケット送信部１７は、例えば、寿命設定部１６が寿命を示すデータを蓄積した所定の記録媒体から寿命を示すデータを読み出し、その寿命をバブルパケットのヘッダ等の所定の領域に設定して送信する。バブルパケットのペイロードには、何らかの有意な情報が含まれていてもよく、含まれていなくてもよいが、バブルパケットは、サーバや情報処理装置等に到達しないパケットであるため、一般的に、このバブルパケットには有意な情報は含まれていない。バブルパケットは、例えば、ＵＤＰのパケットである。バブルパケット送信部１７の送信先は、一般的に、通信先の情報処理装置２に対応するグローバルＩ
Ｐアドレス、すなわち、情報処理装置２の存在するプライベートネットワークの最も通信回線１００側の通信処理装置（図１では、通信処理装置４）のＷＡＮ側のアドレスであるが、通信処理装置３の種類に応じては、他の送信先、例えば、通信回線１００に接続された所定のサーバ等であってもよい。バブルパケット送信部１７は、バブルパケットの送信先のアドレスをあらかじめ保持していてもよく、バブルパケットの送信時に、その送信先のアドレスを他の構成要素やサーバ等から取得してもよい。
【００５０】
なお、バブルパケット送信部１７は、送信を行うための送信デバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい。また、バブルパケット送信部１７は、ハードウェアによって実現されてもよく、あるいは送信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【００５１】
また、通信制御部１１，通知パケット送信部１２、パケット受信部１３、返信パケット送信部１４、中継情報受信部１５、バブルパケット送信部１７の任意の２以上の構成要素が通信に関するデバイスを有する場合に、それらは物理的に同一のものであってもよく、あるいは、別々のものであってもよい。
【００５２】
情報処理装置２は、情報処理装置１からのバブルパケットの送信に対して、応答パケットを送信する。そのようにして、情報処理装置１と、情報処理装置２との間での通信処理装置３，通信処理装置４を介した通信が確立することになる。ここで、情報処理装置２が送信する応答パケットは、バブルパケットの通過した通信処理装置３のポートに対して送信される。あらかじめバブルパケットが送信されていることにより、情報処理装置１は、この応答パケットを、通信処理装置３を介して受信することができうる。この応答パケットには、何らかの情報が含まれていてもよく、何も情報が含まれていなくてもよい。応答バケットは、例えば、ＵＤＰのパケットである。情報処理装置２は、応答パケットの送信先のアドレスやポート番号を所定のサーバ等から受信するものとする。なお、情報処理装置２から応答パケットが送信されることによって、情報処理装置１と、情報処理装置２との間でＰ２Ｐ通信が確立される処理については、上記特許文献１，２等において説明されており、その詳細な説明を省略する。
【００５３】
通信処理装置３は、情報処理装置１から送信されたパケット、あるいは、情報処理装置１に送信されたパケットのアドレス変換を行うＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ
Ｔｒａｎｓｌａｔｉｏｎ）の機能を有する装置である。具体的には、情報処理装置１側で使用されているローカルなアドレスと、通信回線１００側で使用されているグローバルなアドレスとの変換を行う。なお、通信処理装置３は、アドレス変換以外の他の機能を有していてもよい。この通信処理装置３は、ルーティング機能を有するものであり、いわゆる中継ノードの一つである。
通信処理装置４も、アドレス変換を行うＮＡＴの機能を有する、通信処理装置３と同様の装置である。
【００５４】
なお、通信処理装置３，通信処理装置４で使用される送信ポート割り当てルールと受信フィルタルールとは、情報処理装置１と情報処理装置２との間での通信を確立するためにバブルパケットの送信が必要である範囲において、限定されるものではない。ただし、本実施の形態では、通信処理装置３，４の送信ポート割り当てルールがＣｏｎｅタイプであり、受信フィルタルールがＡｄｄｒｅｓｓ  Ｓｅｎｓｉｔｉｖｅフィルタである場合について説明する。すなわち、通信処理装置３，４は、いわゆるＲｅｓｔｒｉｃｔｅｄ  Ｃｏｎｅ  ＮＡＴの機能を有するものであるとする。
【００５５】
図３は、本実施の形態によるサーバ５の構成を示すブロック図である。図３において、本実施の形態によるサーバ５は、通知パケット受信部５１と、アドレス取得部５２と、第
１の取得部５３と、返信パケット受信部５４と、第２の取得部５５と、中継情報構成部５６と、中継情報送信部５７とを備える。
【００５６】
通知パケット受信部５１は、通信元の情報処理装置１から送信された通知パケットを受信する。なお、通知パケット受信部５１は、受信を行うための受信デバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい。また、通知パケット受信部５１は、ハードウェアによって実現されてもよく、あるいは受信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【００５７】
アドレス取得部５２は、通知パケット受信部５１が受信した通知パケットの送信元のアドレスを取得する。アドレス取得部５２は、通知パケットの送信元ポート番号も取得してもよい。送信元アドレスや、送信元ポート番号は、通知パケット受信部５１が受信した通知パケットのヘッダに含まれている。
【００５８】
第１の取得部５３は、境界ノードと、サーバ５との間のパケットの中継時間に応じた情報である中継情報を取得する。境界ノードとは、通信元の情報処理装置１の属するプライベートネットワークの中継ノードであり、グローバルネットワークに接続されている中継ノードである。すなわち、境界ノードは、グローバルネットワークとプライベートネットワークとの境界に存在する中継ノードである。したがって、境界ノードは、グローバルネットワークの中継ノードであり、プライベートネットワークに接続されている中継ノードとも言うことができる。また、この境界ノードは、サーバ５と、情報処理装置１との間の通信経路に存在する。図１では、通信処理装置３が境界ノードである。
【００５９】
第１の取得部５３は、測定パケットを、その測定パケットの寿命を変化させて通信元の情報処理装置１に送信することによって、中継情報を取得する。ここで、「測定パケットを情報処理装置１に送信する」ことには、測定パケットの送信先を境界ノード（図１では通信処理装置３）のＷＡＮ側のアドレスにする場合を含むものとする。通信処理装置３がＮＡＴ機能を有する場合には、測定パケットの送信先として情報処理装置１のアドレスを指定することはできないが、通信処理装置３のアドレスを指定することによって、通信処理装置３においてアドレス変換が行われ、情報処理装置１に送信されることになるからである。第１の取得部５３は、アドレス取得部５２が取得したアドレスを送信先とする測定パケットを送信することによって、測定パケットを情報処理装置１に送信することができる。なお、アドレス取得部５２が取得したポート番号を、測定パケットの送信先のポート番号としてもよい。測定パケットは、例えば、ＵＤＰやＴＣＰのパケットである。
【００６０】
ここで、中継情報について説明する。第１の取得部５３が取得する中継情報は、（１）境界ノードとサーバ５との間のパケットの中継時間そのものを示す情報であってもよく、（２）境界ノードとサーバ５との間の中継ノードのホップ数（以下、「中継ホップ数」とすることもある）を示す情報であってもよい。本実施の形態では、第１の取得部５３が取得する中継情報は、中継ノードのホップ数を示すものとする。
【００６１】
上記（１）である場合に、その中継時間は、例えば、「秒」で示されるものである。また、その中継時間には、境界ノードでの処理時間が含まれてもよく、あるいは、含まれなくてもよい。前者の場合には、例えば、サーバ５をパケットが出た時点から、そのパケットが境界ノードに到達し、その境界ノードを出る時点までの期間が中継時間となる。一方、後者の場合には、例えば、サーバ５をパケットが出た時点から、そのパケットが境界ノードに到達した時点までの期間が中継時間となる。または、中継時間は、その前者と後者の間のいずれかの時間であってもよい。
【００６２】
また、上記（２）である場合に、その中継ホップ数は、一般的にサーバ５から境界ノー
ドまでの経路におけるノード間の数である。ただし、その中継ホップ数は、サーバ５から境界ノードまでの両端のノード（すなわち、サーバ５と境界ノード）を含むノード数であってもよく、サーバ５から境界ノードまでの両端のノードを含まないノード数であってもよい。例えば、サーバ５と境界ノードとの間に３個の中継ノードが存在する場合には、中継情報で示される中継ホップ数は、ノード間の数である「４」でもよく、両端を含むノード数である「５」でもよく、両端を含まないノード数である「３」でもよい。このように、中継情報の示す中継ホップ数は、注目している２個のノードの間に、何個の中継ノードが存在するのかを特定可能な情報であれば、その内容を問わない。中継情報の示すホップ数としてどれを採用するのかは、システムの設計者が任意に設定することができる。なお、本実施の形態及び後述する実施の形態２，３において、ホップ数の計数では、上記の一般的な場合、すなわち、ホップ数が、注目している２個のノードの間に存在するノード間の数を示す場合を用いるものとする。
【００６３】
なお、「中継情報を取得する」とは、結果として、その中継情報が特定されることを言う。例えば、その中継情報が所定の記録媒体等に蓄積されることであってもよく、あるいは、複数の中継情報を記憶している所定の記録媒体において、取得した中継情報に所定のフラグを設定することであってもよい。
また、第１の取得部５３によるサーバ５と境界ノードとの間の中継情報の取得方法については後述する。
【００６４】
また、本実施の形態及び後述する実施の形態２，３では、パケットの中継時間を示す情報や、パケットの中継ホップ数を示す情報を中継情報と呼ぶが、それらの情報を中継数や、中継コストと呼ぶことも可能である。
【００６５】
返信パケット受信部５４は、測定パケットの受信に応じて通信元の情報処理装置１から送信された返信パケットを受信する。なお、返信パケット受信部５４は、受信を行うための受信デバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい。また、返信パケット受信部５４は、ハードウェアによって実現されてもよく、あるいは受信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【００６６】
第２の取得部５５は、サーバ５と、通信元の情報処理装置１との間のパケットの中継時間に応じた情報である中継情報を取得する。この中継情報も、第１の取得部５３が取得する中継情報と同様に、例えば、中継時間そのものを示す情報であってもよく、中継ホップ数を示す情報であってもよい。本実施の形態では、第２の取得部５５が取得する中継情報は、中継ノードのホップ数を示すものとする。
【００６７】
ここで、第２の取得部５５が、その中継情報を取得する方法について説明する。
［返信パケットを用いる方法］
情報処理装置１が測定パケットの受信に応じて返信パケットを送信する場合には、返信パケット受信部５４が受信した返信パケットに対応する測定パケットの寿命を、サーバ５と、通信元の情報処理装置１との間のパケットの中継時間に応じた中継情報として取得してもよい。「返信パケットに対応する測定パケット」とは、情報処理装置１において、その返信パケットを送信する契機となった測定パケットのことである。なお、測定パケットを、その寿命を増加させながら送信している場合には、第２の取得部５５は、初めて受信した返信パケットに対応する測定パケットの寿命を、サーバ５と情報処理装置１との間の中継情報として取得する。一方、測定パケットを、その寿命を減少させながら送信している場合には、第２の取得部５５は、最後に受信した返信パケットに対応する測定パケットの寿命を、サーバ５と情報処理装置１との間の中継情報として取得する。なお、返信パケットのペイロードに、パケット受信部１３が受信した時点での測定パケットの寿命を含ま
せるようにしてもよい。このようにすることで、第２の取得部５５は、返信パケットが受信された場合に、そのペイロードに含まれる寿命を用いることによって、サーバ５と通信元の情報処理装置１との間のパケットの中継時間に応じた情報である中継情報を取得することができる。例えば、ＴＴＬ＝１０の寿命が設定された測定パケットの送信に対応して、ＴＴＬ＝１の寿命をペイロードに含む返信パケットが受信された場合には、第２の取得部５５は、サーバ５と通信元の情報処理装置１との間のパケットの中継時間に応じた中継情報として、ホップ数「１０」を取得することができる。なお、本実施の形態では、第２の取得部５５は、返信パケットを用いてサーバ５と情報処理装置１との間の中継情報を取得するものとする。また、本実施の形態では、測定パケットは、その寿命を増加させながら送信されるものとする。
【００６８】
このように、返信パケットを用いて第２の取得部５５がサーバ５と情報処理装置１との間の中継情報を取得する場合には、測定パケットは、境界ノードを越えて情報処理装置１に到達しなければならないため、サーバ５から送信される測定パケットは、アドレス取得部５２が取得した通知パケットの送信元ポート番号を送信先ポート番号として送信されなくてはならない。
【００６９】
［通知パケットを用いる方法］
情報処理装置１が送信する通知パケットに、あらかじめ決められている寿命が設定されており、サーバ５が、その寿命を知ることができる場合には、第２の取得部５５は、その通知パケットを用いて、サーバ５と、通信元の情報処理装置１との間のパケットの中継時間に応じた中継情報を取得してもよい。すなわち、通信元の情報処理装置１は、所定の寿命を有する通知パケットを送信し、第２の取得部５５は、通知パケット受信部５１が通知パケットを受信した時点での通知パケットの寿命と、所定の寿命とを用いて、サーバ５と、通信元の情報処理装置１との間のパケットの中継時間に応じた中継情報を取得してもよい。
【００７０】
具体的には、第２の取得部５５は、通知パケットが情報処理装置１から送信される時点での寿命から、その通知パケットが通知パケット受信部５１で受信された時点での残りの寿命を減算することにより、サーバ５と、情報処理装置１との間の中継情報を取得することができる。より具体的に中継情報がホップ数を示す場合について説明すると、第２の取得部５５は、通知パケットが通知パケット受信部５１で受信された時点でのホップ数から１減算したホップ数を算出する。そして、通知パケットが情報処理装置１から送信される時点での寿命として設定されるホップ数から、その算出したホップ数を減算したホップ数を、サーバ５と情報処理装置１との間の中継情報として取得する。なお、通知パケット受信部５１で受信された時点での通知パケットのホップ数から１減算するのは、サーバ５は中継ノードと異なり、パケットのＴＴＬを１だけ減少させる機能を有していないので、サーバ５が通知パケットを受信した時点における通知パケットの寿命は、サーバ５が受信した通知パケットに設定されている残りのホップ数よりも１だけ減算しなくてはならないからである。
【００７１】
このように、通知パケットを用いて第２の取得部５５がサーバ５と情報処理装置１との間の中継情報を取得する場合には、測定パケットは、境界ノードよりも情報処理装置１側に到達しなくてもよいため、サーバ５から送信される測定パケットは、アドレス取得部５２が取得した通知パケットの送信元ポート番号を用いないで送信されてもよい。その場合には、アドレス取得部５２は、通知パケットの送信元ポート番号を取得しなくてもよい。
【００７２】
また、このように、通知パケットを用いて第２の取得部５５がサーバ５と情報処理装置１との間の中継情報を取得する場合には、情報処理装置１は、パケット受信部１３と、返信パケット送信部１４とを備えていなくてもよい。
【００７３】
また、第２の取得部５５が、返信パケットを用いて中継情報を取得する場合に、通知パケットを用いる場合と同様に、返信パケットにあらかじめ決められている寿命を設定しておき、その返信パケットの寿命を用いて中継情報を取得する、あるいは、確認するようにしてもよい。
なお、第２の取得部５５においても、中継情報を取得するとは、結果として、その中継情報が特定されることを言う。
【００７４】
中継情報構成部５６は、第１の取得部５３が取得した中継情報と、第２の取得部５５が取得した中継情報とを用いて、通信元の情報処理装置１と、境界ノードとの間のパケットの中継時間に関する情報である中継情報を構成する。この中継情報も、第１の取得部５３や第２の取得部５５が取得する中継情報と同様に、例えば、中継時間そのものを示す情報であってもよく、中継ホップ数を示す情報であってもよい。本実施の形態では、中継情報構成部５６が構成する中継情報は、中継ノードのホップ数を示すものとする。
【００７５】
ここで、中継情報構成部５６が構成する中継情報について説明する。中継情報構成部５６が構成する中継情報は、第１の取得部５３や第２の取得部５５が取得する中継情報と異なり、結果として、通信元の情報処理装置１と、境界ノードとの間のパケットの中継時間やホップ数等を知ることができる情報であればよく、通信元の情報処理装置１と、境界ノードとの間のパケットの中継時間そのものや、ホップ数そのもの等を示す情報でなくてもよい。すなわち、中継情報構成部５６が構成する中継情報は、例えば、（１）通信元の情報処理装置１と、境界ノードとの間のパケットの中継時間に応じた情報であってもよく、（２）通信元の情報処理装置１と、境界ノードに接続されているグローバルネットワークに存在する中継ノードとの間のパケットの中継時間に応じた情報であってもよく、（３）第１の取得部５３が取得した中継情報と、第２の取得部５５が取得した中継情報とを含む情報であってもよい。
【００７６】
上記（１）の場合には、第２の取得部５５が取得したサーバ５と情報処理装置１との間の中継情報の示す中継時間や中継ホップ数から、第１の取得部５３が取得したサーバ５と、境界ノードとの間の中継情報の示す中継時間や中継ホップ数を減算することにより、中継情報を構成することができる。なお、この中継情報が情報処理装置１に送信され、バブルパケットの寿命が設定される場合に、中継情報構成部５６が構成した中継情報そのものを寿命に設定すると、バブルパケットは、グローバルネットワークに到達しないことになる。したがって、情報処理装置１の寿命設定部１６は、例えば、中継情報構成部５６が構成した中継情報の示す寿命に所定の中継時間（例えば、境界ノードに隣接するグローバルネットワーク情報中継ノードと境界ノードとの間の中継時間）や、ホップ数「１」を加算したものを、バブルパケットの寿命として設定する必要がある。
【００７７】
上記（２）の場合には、中継情報構成部５６が構成する中継情報は、グローバルネットワークにおける中継ノードであって、境界ノードに隣接する中継ノードと通信元の情報処理装置１との間のパケットの中継時間に応じた中継情報であってもよい。すなわち、中継情報構成部５６は、上記（１）で説明した中継情報に対して、例えば、境界ノードに隣接するグローバルネットワーク情報中継ノードと境界ノードとの間の中継時間や、ホップ数「１」を加算したものを、中継情報として構成してもよい。なお、境界ノードと中継ノードとが隣接するとは、境界ノードと、その中継ノードとの間に他の中継ノードが存在しないことを言う。この中継情報が情報処理装置１に送信された場合に、寿命設定部１６は、その中継情報をそのままバブルパケットの寿命として設定することができる。
【００７８】
上記（３）の場合には、上記（１）や、上記（２）における中継情報構成部５６による処理を、情報処理装置１において行うことによって、バブルパケットの寿命が設定される
ことになる。
【００７９】
中継情報送信部５７は、中継情報構成部５６が構成した中継情報を送信する。中継情報送信部５７は、その中継情報が最終的に情報処理装置１に到達するように送信する。したがって、中継情報送信部５７は、その中継情報を、例えば、情報処理装置１に直接送信してもよく、所定のサーバ等をリレーして情報処理装置１に送信してもよい。前者の場合には、中継情報の送信先として、例えば、通知パケット受信部５１で受信された通知パケットの送信元アドレス、送信元ポート番号や、返信パケット受信部５４で受信された返信パケットの送信元アドレス、送信元ポート番号等を用いてもよい。
【００８０】
なお、中継情報送信部５７は、送信を行うための送信デバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい。また、中継情報送信部５７は、ハードウェアによって実現されてもよく、あるいは送信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【００８１】
なお、通知パケット受信部５１、第１の取得部５３、返信パケット受信部５４、中継情報送信部５７の任意の２以上の構成要素が通信に関するデバイスを有する場合に、それらは物理的に同一のものであってもよく、あるいは、別々のものであってもよい。
【００８２】
次に、本実施の形態による情報処理装置１、サーバ５の動作について、フローチャートを用いて説明する。
図４は、本実施の形態による情報処理装置１の動作を示すフローチャートである。
【００８３】
（ステップＳ１０１）通知パケット送信部１２は、通知パケットを送信するかどうか判断する。そして、通知パケットを送信する場合には、ステップＳ１０２に進み、そうでない場合には、通知パケットを送信すると判断するまで、ステップＳ１０１の処理を繰り返す。なお、通知パケット送信部１２は、例えば、情報処理装置１と、情報処理装置２との間でのＰ２Ｐ通信を開始すると判断されたことをトリガーとして、通知パケットを送信すると判断してもよく、あるいは、他のタイミングで通知パケットを送信すると判断してもよい。
【００８４】
（ステップＳ１０２）通知パケット送信部１２は、通知パケットをサーバ５に送信する。
（ステップＳ１０３）パケット受信部１３は、測定パケットを受信したかどうか判断する。そして、測定パケットを受信した場合には、ステップＳ１０４に進み、そうでない場合には、測定パケットを受信するまでステップＳ１０３の処理を繰り返す。
【００８５】
（ステップＳ１０４）返信パケット送信部１４は、返信パケットをサーバ５に送信する。
（ステップＳ１０５）中継情報受信部１５は、中継情報を受信したかどうか判断する。そして、中継情報を受信した場合には、ステップＳ１０６に進み、そうでない場合には、中継情報を受信するまでステップＳ１０５の処理を繰り返す。
【００８６】
（ステップＳ１０６）寿命設定部１６は、中継情報受信部１５が受信した中継情報を用いて、バブルパケットの寿命を設定する。この寿命の設定方法は、中継情報構成部５６による中継情報の構成の箇所において説明したとおりである。
（ステップＳ１０７）バブルパケット送信部１７は、寿命設定部１６が設定した寿命のバブルパケットを送信する。
【００８７】
（ステップＳ１０８）通信制御部１１は、情報処理装置１と情報処理装置２との間でＰ
２Ｐ通信を確立するための処理を行う。
（ステップＳ１０９）情報処理装置１と、情報処理装置２とは、Ｐ２Ｐ通信を行う。そして、Ｐ２Ｐ通信を行うまでの一連の処理は終了となる。
【００８８】
図５は、本実施の形態によるサーバ５の動作を示すフローチャートである。
（ステップＳ２０１）通知パケット受信部５１は、通知パケットを受信したかどうか判断する。そして、通知パケットを受信した場合には、ステップＳ２０２に進み、そうでない場合には、通知パケットを受信するまで、ステップＳ２０１の処理を繰り返す。
【００８９】
（ステップＳ２０２）アドレス取得部５２は、通知パケット受信部５１が受信した通知パケットから、送信元アドレスと、必要に応じて送信元ポート番号を取得する。
【００９０】
（ステップＳ２０３）第１の取得部５３は、アドレス取得部５２が取得したアドレスを用いて、寿命の異なる測定パケットを送信し、サーバ５と境界ノードとの間の中継情報を取得する。この第１の取得部５３が中継情報を取得する処理の詳細については、図６のフローチャートを用いて後述する。
【００９１】
（ステップＳ２０４）第２の取得部５５は、サーバ５と情報処理装置１との間の中継情報を取得する。この第２の取得部５５が中継情報を取得する処理の詳細については、図７のフローチャートを用いて後述する。
【００９２】
（ステップＳ２０５）中継情報構成部５６は、第１の取得部５３が取得した中継情報と、第２の取得部５５が取得した中継情報とを用いて、中継情報を構成する。
【００９３】
（ステップＳ２０６）中継情報送信部５７は、中継情報構成部５６が構成した中継情報を送信する。そして、ステップＳ２０１に戻る。
なお、図５のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【００９４】
また、図５のフローチャートにおいて、最終的に中継情報の構成を行うことができるのであれば、ステップＳ２０３とステップＳ２０４との処理の順序は問わない。
【００９５】
図６は、図５のフローチャートにおける第１の取得部５３が中継情報を取得する処理（ステップＳ２０３）の詳細を示すフローチャートである。
（ステップＳ３０１）第１の取得部５３は、ＴＴＬを「１」に設定する。
【００９６】
（ステップＳ３０２）第１の取得部５３は、その時点におけるＴＴＬの示す寿命の設定された測定パケットを、アドレス取得部５２が取得したアドレスを送信先アドレスとして送信する。なお、アドレス取得部５２がポート番号も取得している場合には、第１の取得部５３は、そのポート番号を測定パケットの送信先ポート番号に設定してもよい。
【００９７】
（ステップＳ３０３）第１の取得部５３は、ＩＣＭＰ  Ｔｉｍｅ  Ｅｘｃｅｅｄｅｄを通知するために、中継ノードから送信されたパケットを受信したかどうか判断する。そして、そのパケットを受信した場合には、ステップＳ３０４に進み、そうでない場合には、そのパケットを受信するまで、ステップＳ３０３の処理を繰り返す。ここで、ＩＣＭＰ  Ｔｉｍｅ  Ｅｘｃｅｅｄｅｄについて説明する。所定のＴＴＬ（寿命）の設定されたパケットが送信されると、そのパケットのＴＴＬは、中継ノードを通過するごとに１だけ減少される。そして、ある中継ノードにＴＴＬ＝１のパケットが到達すると、その中継ノードにおいて、ＴＴＬ＝０となって寿命が尽きたことになり、そのパケットの送信元に、ＩＣＭＰ  Ｔｉｍｅ  Ｅｘｃｅｅｄｅｄを通知するパケットが送信される。このように、本実
施の形態による中継ノードは、パケットの寿命が到来した場合に、そのパケットの送信元にその旨を通知するものであるとする。
【００９８】
（ステップＳ３０４）第１の取得部５３は、測定パケットが境界ノードに到達したかどうか判断する。そして、境界ノードに到達していた場合には、ステップＳ３０６に進み、そうでない場合には、ステップＳ３０５に進む。なお、第１の取得部５３は、測定パケットが境界ノードに到達したかどうかを、ＩＣＭＰ  Ｔｉｍｅ  Ｅｘｃｅｅｄｅｄを通知するパケットの送信元アドレスが、アドレス取得部５２が取得した通知パケットの送信元アドレスと同じであるかどうかによって判断してもよい。両者が同じであれば、測定パケットが境界ノードに到達したことになる。
【００９９】
（ステップＳ３０５）第１の取得部５３は、ＴＴＬを１だけインクリメントする。そして、ステップＳ３０２に戻る。
（ステップＳ３０６）第１の取得部５３は、その時点でのＴＴＬの値を、サーバ５と境界ノードとの間の中継情報として保持する。そして、サーバ５と境界ノードとの間の中継情報を取得する処理は終了となる。
【０１００】
図７は、図５のフローチャートにおける第２の取得部５５が中継情報を取得する処理（ステップＳ２０４）の詳細を示すフローチャートである。
（ステップＳ４０１）第１の取得部５３は、図６のフローチャートにおける一連の処理の終了時点でのＴＴＬを１だけインクリメントする。
【０１０１】
（ステップＳ４０２）第１の取得部５３は、その時点におけるＴＴＬの示す寿命の設定された測定パケットを、アドレス取得部５２が取得したアドレスを送信先アドレスとして送信する。なお、この場合には、第１の取得部５３は、アドレス取得部５２が取得したポート番号を測定パケットの送信先ポート番号に設定する必要がある。測定パケットが、境界ノードのＬＡＮ側の中継ノードに到達するようにしなければならないからである。
【０１０２】
（ステップＳ４０３）第１の取得部５３は、ＩＣＭＰ  Ｔｉｍｅ  Ｅｘｃｅｅｄｅｄを通知するために、中継ノードから送信されたパケットを受信したかどうか判断する。そして、そのパケットを受信した場合には、ステップＳ４０１に戻り、そうでない場合には、ステップＳ４０４に進む。なお、所定の時間以上、ＩＣＭＰ  Ｔｉｍｅ  Ｅｘｃｅｅｄｅｄを通知するためのパケットを第１の取得部５３が取得しなかった場合には、タイムアウトであるとして、ステップＳ４０１に戻ってもよい。
【０１０３】
（ステップＳ４０４）返信パケット受信部５４は、返信パケットを受信したかどうか判断する。そして、返信パケットを受信した場合には、ステップＳ４０５に進み、そうでない場合には、ステップＳ４０３に戻る。
【０１０４】
（ステップＳ４０５）第２の取得部５５は、その時点で第１の取得部５３が管理しているＴＴＬの値を、サーバ５と通信元の情報処理装置１との間の中継情報として保持する。そして、サーバ５と通信元の情報処理装置１との間の中継情報を取得する処理は終了となる。
【０１０５】
なお、図７のフローチャートでは、第１の取得部５３がＴＴＬの値を管理し、測定パケットの送信や、ＩＣＭＰ  Ｔｉｍｅ  Ｅｘｃｅｅｄｅｄを通知するパケットの受信等を行う場合について説明したが、これらの処理を第２の取得部５５が行ってもよい。
【０１０６】
次に、図８を用いて、通信元の情報処理装置１と、通信先の情報処理装置２とがＰ２Ｐ通信を確立し、Ｐ２Ｐ通信を行う処理について簡単に説明する。
【０１０７】
（ステップＳ５０１）通信元の情報処理装置１のバブルパケット送信部１７は、バブルパケットを送信する。このバブルパケットには、寿命設定部１６によって寿命が設定されている。したがって、そのバブルパケットは、グローバルネットワークに到達して消滅する。
【０１０８】
（ステップＳ５０２）通信制御部１１は、バブルパケットが通過した通信処理装置３のポート（以下、「バブルパケット送信ポート」とすることがある）を検出するためのパケットを所定のサーバに送信する。この所定のサーバは、サーバ５であってもよく、その他のサーバであってもよい。
【０１０９】
（ステップＳ５０３）サーバは、そのポート検出用のパケットを受信し、そのパケットを用いてバブルパケット送信ポートの位置を検出する。
（ステップＳ５０４）サーバは、その検出したバブルパケット送信ポートを通信先の情報処理装置２に通知する。
【０１１０】
（ステップＳ５０５）通信先の情報処理装置２は、バブルパケット送信ポートに対して、応答パケットを送信する。すると、その応答パケットは、バブルパケット送信ポートを通過して、通信元の情報処理装置１で受信される。
（ステップＳ５０６、Ｓ５０７）通信元の情報処理装置１と、通信先の情報処理装置２とは、そのバブルパケット送信ポートを介して、Ｐ２Ｐ通信を行う。
【０１１１】
次に、本実施の形態による情報処理システムの動作について、具体例を用いて説明する。この具体例では、前述のように、通信処理装置３、４がＲｅｓｔｒｉｃｔｅｄ  Ｃｏｎｅ  ＮＡＴの機能を有するものであるとする。また、中継情報は、中継ノードのホップ数であるとする。また、寿命設定部１６は、バブルパケットのＴＴＬを設定することによって寿命を設定するものとする。また、情報処理装置１，２の間のＰ２Ｐ通信を確立するための処理をサーバ５が行うものとする。また、通信処理装置３、通信処理装置４、サーバ５の通信回線１００側の各ＩＰアドレスは、以下のとおりであるとする。
【０１１２】
通信処理装置３：２０２．１３２．１０．６
通信処理装置４：１３１．２０６．１０．２４０
サーバ５：１５５．３２．１０．１０
【０１１３】
図９〜図１４は、この具体例を説明するための図である。図９において、情報処理装置１は、サーバ５のＩＰアドレス「１５５．３２．１０．１０」をあらかじめ知っており、そのサーバ５に対して、情報処理装置１の機器ＩＤ「１２３４５６７８９０」を送信する。ここで、この機器ＩＤとしては、例えば、ＭＡＣアドレス等のＧＵＩＤ（Ｇｌｏｂａｌ
Ｕｎｉｑｕｅ  ＩＤ）を用いることができる。この機器ＩＤの送信は、情報処理装置１のポートＰ１から、通信処理装置３で割り当てられたポートＰ２を介して、サーバ５のポートＰ３に対して行われる。この送信によって、サーバ５は、情報処理装置１の機器ＩＤと、通信処理装置３のＩＰアドレス「２０２．１３２．１０．６」と、通信処理装置３におけるポートＰ２のポート番号「１００３４」とを知ることができる。これらの情報は、サーバ５において保持される。
【０１１４】
情報処理装置２も、情報処理装置１と同様にして、情報処理装置２の機器ＩＤ「９８７６５４３２１０」を送信する。その結果、通信処理装置４のＩＰアドレス「１３１．２０６．１０．２４０」と、情報処理装置２の機器ＩＤと、通信処理装置４におけるポートＰ５のポート番号「２３４９５」とがサーバ５において保持される。
【０１１５】
次に、情報処理装置１が、接続を要求する情報処理装置２の機器ＩＤ「９８７６５４３２１０」をサーバ５に送信することにより、情報処理装置２への接続要求を行う。すると、サーバ５は、その接続要求を受け取り、ポートＰ２を介して情報処理装置１に通信処理装置４のＩＰアドレス「１３１．２０６．１０．２４０」と、ポートＰ５のポート番号「２３４９５」とを通知する。
【０１１６】
情報処理装置１の通知パケット送信部１２は、情報処理装置１，２がＰ２Ｐ通信を開始するため、通知パケットを送信するタイミングであると判断し（ステップＳ１０１）、サーバ５のＩＰアドレス「１５５．３２．１０．１０」、及びポートＰ９を送信先とする通知パケットをポートＰ７から送信する（ステップＳ１０２）。すると、その通知パケットに通信処理装置３のポートＰ８が割り当てられる。そして、その通知パケットは、サーバ５の通知パケット受信部５１で受信され（ステップＳ２０１）、アドレス取得部５２は、通知パケットの送信元ＩＰアドレス「２０２．１３２．１０．６」と、送信元ポート番号「１００４０」とを取得する（ステップＳ２０２）。ポート番号「１００４０」が、ポートＰ８のポート番号である。
【０１１７】
次に、サーバ５の第１の取得部５３は、ＴＴＬを１に設定した測定パケットを送信する（ステップＳ３０１，Ｓ３０２）。その測定パケットの送信先には、アドレス取得部５２が取得したＩＰアドレス、及びポート番号が設定されている。その測定パケットは、サーバ５に隣接する中継ノードに到達した段階でＴＴＬが０となり、その中継ノードからＩＣＭＰ  Ｔｉｍｅ  Ｅｘｃｅｅｄｅｄを通知するパケットが送信され、そのパケットを第１の取得部５３が受信する（ステップＳ３０３）。そのパケットの送信元のアドレスは、アドレス取得部５２が取得したアドレスとは異なるものとする。すると、第１の取得部５３は、ＴＴＬを１だけインクリメントして、次の測定パケットを送信する（ステップＳ３０５，Ｓ３０２）。
【０１１８】
このようにして、図１０で示されるように、測定パケットの送信と、ＩＣＭＰ  Ｔｉｍｅ  Ｅｘｃｅｅｄｅｄを通知するパケットの受信とが繰り返し行われる。第１の取得部５３がＴＴＬ＝９の測定パケットを送信したことに応じて返送されたＩＣＭＰ  Ｔｉｍｅ  Ｅｘｃｅｅｄｅｄを通知するパケットの送信元ＩＰアドレスが「２０２．１３２．１０．６」であったとする。すると、第１の取得部５３は、測定パケットが境界ノードに到達したと判断し（ステップＳ３０４）、その時点のＴＴＬ＝９を、サーバ５と境界ノードとの間の中継情報とする（ステップＳ３０６）。
【０１１９】
第１の取得部５３は、そのＴＴＬを１だけインクリメントして（ステップＳ４０１）、そのＴＴＬの設定された測定パケットを送信する（ステップＳ４０２）。すると、その測定パケットは、図１１で示されるように、情報処理装置１に到達し、パケット受信部１３で受信される（ステップＳ１０３）。そして、返信パケット送信部１４は、返信パケットをサーバ５に送信する（ステップＳ１０４）。その返信パケットは、サーバ５の返信パケット受信部５４で受信され（ステップＳ４０４）、返信パケットが受信された旨が第２の取得部５５に通知される。第２の取得部５５は、その時点でのＴＴＬの値を第１の取得部５３から取得し、そのＴＴＬの値「１０」を、サーバ５と情報処理装置１との間の中継情報とする（ステップＳ４０５）。
【０１２０】
中継情報構成部５６は、サーバ５と情報処理装置１との間の中継情報が示すホップ数「１０」から、サーバ５と境界ノードとの間の中継情報が示すホップ数「９」を引いたホップ数「１」に、１を加算したホップ数「２」を示す情報を、情報処理装置１と境界ノードとの間のパケットの中継時間に関する中継情報として構成する（ステップＳ２０５）。中継情報送信部５７は、その中継情報構成部５６が構成した中継情報を、情報処理装置１に送信する（ステップＳ２０６）。
【０１２１】
サーバ５から送信された中継情報は、情報処理装置１の中継情報受信部１５で受信され（ステップＳ１０５）、寿命設定部１６に渡される。寿命設定部１６は、バブルパケットの寿命（ＴＴＬ）として、中継情報の示すホップ数「２」を設定する（ステップＳ１０６）。そして、バブルパケット送信部１７は、ＴＴＬ＝２の設定されたバブルパケットをポートＰ１０から送信する（ステップＳ１０７、Ｓ５０１）。なお、そのバブルパケットの送信先ＩＰアドレスと、ポート番号とは、サーバ５から通知された、通信処理装置４のＩＰアドレス「１３１．２０６．１０．２４０」と、ポートＰ５のポート番号「２３４９５」とである。
【０１２２】
そのバブルパケットは、図１２で示されるように、通信処理装置３のポート１１を介して送信され、通信処理装置３に隣接するグローバルネットワークに存在する中継ノードにおいてＴＴＬ＝０となり、消滅する。
【０１２３】
その後、通信制御部１１は、バブルパケットが送信されたポートＰ１０から、ポート検出用パケットをサーバ５に送信する（ステップＳ５０２）。そのポート検出用パケットは、サーバ５で受信され、ポートＰ１１のポート番号「１００４５」がバブルパケット送信ポートの位置として検出される（ステップＳ５０３）。サーバ５は、その検出したバブルパケット送信ポートの位置と、通信処理装置３のＩＰアドレスとを含むパケットを情報処理装置２に送信する（ステップＳ５０４）。
【０１２４】
情報処理装置２は、サーバ５から送信されたバブルパケット送信ポートの位置等を含むパケットを受信すると、そのパケットに含まれるＩＰアドレス、及びバブルパケット送信ポートを送信先とする応答パケットを送信する（ステップＳ５０５）。そのパケットは、バブルパケット送信ポートＰ１１を介して情報処理装置１で受信され、その結果、図１４で示されるように、情報処理装置１と情報処理装置２との間でＰ２Ｐ通信が行われる（ステップＳ１０８，Ｓ５０６，Ｓ５０７）。
【０１２５】
以上のように、本実施の形態による情報処理システムによれば、サーバ５において、通信元の情報処理装置１と境界ノードとの間のパケットの中継時間に関する中継情報を構成することができ、情報処理装置１は、そのサーバ５で構成された中継情報を用いることによって、通信処理装置３に適切に送信履歴を残すことができる寿命の設定されたバブルパケットを送信することができる。また、そのバブルパケットが通信先の通信処理装置４に到達しないようにすることができる。その結果、通信元の情報処理装置１と、通信先の情報処理装置２との間で、適切にＰ２Ｐ通信を確立することができる。
【０１２６】
また、サーバ５は、情報処理装置１と通信処理装置３を介した通信を行うことができるため、測定パケットが通信処理装置３において攻撃のパケットであると判断されることを回避することができる。また、たとえ測定パケットが通信処理装置３において攻撃のパケットであると判断されたとしても、例えば、Ｐ２Ｐを確立する処理をサーバ５以外のサーバにおいて行い、中継情報を所定のサーバのリレーによって送信する場合には、情報処理装置１による適切なバブルパケットの送信と、情報処理装置１，２間のＰ２Ｐ通信の確立が可能となる。
【０１２７】
なお、本実施の形態では、第１の取得部５３のみが測定パケットを送信する場合について説明したが、第２の取得部５５も測定パケットを送信してもよい。例えば、サーバ５と境界ノードとの間の中継情報を取得するための測定パケットを第１の取得部５３が送信し、サーバ５と通信元の情報処理装置１との間の中継情報を取得するための測定パケット、すなわち、通信元の情報処理装置１に到達しうる測定パケットを第２の取得部５５が送信するようにしてもよい。
【０１２８】
また、本実施の形態では、パケット受信部１３が測定パケットを受信した場合に、返信パケット送信部１４が返信パケットを送信する場合について説明したが、情報処理装置１に到達した時点で寿命が切れる測定パケットをパケット受信部１３が受信した場合には、返信パケット送信部１４が返信パケットを送信し、それ以外の測定パケットをパケット受信部１３が受信した場合には、返信パケット送信部１４は返信パケットを送信しないようにしてもよい。このようにすることで、サーバ５と情報処理装置１との間の中継情報を適切に取得することができるようになる。なお、情報処理装置１が、情報処理装置１に到達した時点で寿命が切れる測定パケットを受信するとは、例えば、情報処理装置１が、ＴＴＬ＝１の測定パケットを受信することである。
【０１２９】
また、本実施の形態では、図６のフローチャートで示されるように第１の取得部５３がサーバ５と境界ノードとの間の中継情報を取得する場合について説明したが、その取得において、トレースルートを用いてもよい。トレースルートを用いる場合には、各中継ノードに対応するアドレスを知ることができるため、サーバ５に最も近い中継ノードであって、通知パケットの送信元アドレスと同じアドレスを有する中継ノードを境界ノードと特定することができる。そして、その境界ノードまでのホップ数をカウントすることによって、サーバ５と境界ノードとの間の中継情報を取得することができうる。
【０１３０】
また、本実施の形態では、サーバ５が中継情報送信部５７を備え、中継情報を情報処理装置１に送信する場合について説明したが、サーバ５は、中継情報送信部５７を備えず、中継情報の送信を行わなくてもよい。その場合には、例えば、サーバ５は、中継情報構成部５６が構成した中継情報を表示したり、印刷したり、蓄積したりしてもよい。そして、その表示された中継情報や、印刷された中継情報、蓄積された中継情報等が所定の方法によって情報処理装置１に伝達されることによって、情報処理装置１で用いられるようになってもよい。その中継情報が伝達される所定の方法としては、例えば、表示や印刷された中継情報をユーザが入力デバイス（例えば、マウスやキーボード、タッチパネル等）を用いて情報処理装置１に入力することであってもよく、着脱可能な記録媒体に蓄積された中継情報を、ユーザがサーバ５から取り出して情報処理装置１に装着することであってもよい。
【０１３１】
また、本実施の形態では、サーバ５が通知パケット受信部５１と、アドレス取得部５２とを備え、測定パケットがそのアドレス取得部５２の取得したアドレスに送信される場合について説明したが、サーバ５は、通知パケット受信部５１と、アドレス取得部５２とを備えていなくてもよい。その場合には、例えば、サーバ５は、測定パケットの送信先のアドレスをあらかじめ記録媒体で保持していてもよく、あるいは、所定のサーバ等から取得してもよい。前者の場合には、例えば、その記録媒体にユーザ等が測定パケットの送信先を登録していてもよい。また、後者の場合には、例えば、所定のサーバにおいて、情報処理装置１を識別する情報に対応付けて情報処理装置１のアドレスが管理されており、サーバ５がそのサーバに問い合わせることによって、情報処理装置１のアドレスを取得してもよい。
【０１３２】
また、本実施の形態における測定パケットのペイロードに、測定パケットに設定された寿命が含まれていてもよい。その場合に、返信パケット送信部１４が、その測定パケットのペイロードに設定された寿命をペイロードに含む返信パケットを送信することにより、第２の取得部５５は、返信パケットに対応する測定パケットの寿命を、返信パケットのペイロードから取得することができる。また、この場合には、ＩＣＭＰ  Ｔｉｍｅ  Ｅｘｃｅｅｄｅｄを通知するパケットまたは返信パケットの受信を待たずに、次の測定パケットを送信することができ、効率のよい測定パケットの送信が可能となる。
【０１３３】
また、本実施の形態では、各中継ノードが適切にＩＣＭＰ  Ｔｉｍｅ  Ｅｘｃｅｅｄｅｄを通知するパケットを返信する場合について説明したが、ＩＣＭＰに準拠しない中継ノードが存在した場合には、そのＩＣＭＰに準拠しない中継ノードは、ＩＣＭＰ  Ｔｉｍｅ
Ｅｘｃｅｅｄｅｄを通知するパケットを返信しないこともある。境界ノードがそのような中継ノードであった場合には、サーバ５の中継情報構成部５６は、例えば、ＩＣＭＰ  Ｔｉｍｅ  Ｅｘｃｅｅｄｅｄを通知するパケットを返信した中継ノードのうち、グローバルアドレスを有する中継ノードであり、最もサーバ５から遠い中継ノードと、サーバ５との間の中継情報を構成し、その中継情報を、サーバ５と境界ノードとの間の中継情報と見なして処理を実行してもよい。そのような中継情報を構成して情報処理装置１に送信し、その中継情報を用いてバブルパケットの寿命を設定したとしても、バブルパケットの送信を適切に行うことができる場合もあるからである。
【０１３４】
（実施の形態２）
本発明の実施の形態２による情報処理システムについて、図面を参照しながら説明する。本実施の形態による情報処理システムでは、後述するように、通信先の情報処理装置において、第１の中継ノードと第２の中継ノードとの間に関する中継情報を構成する。また、通信元の情報処理装置において、通信元の情報処理装置と境界ノードとの間に関する中継情報を取得する。そして、通信元の情報処理装置は、両者の中継情報を用いてバブルパケットを送信する。なお、実施の形態１で説明した用語については、本実施の形態での説明を省略することがある。
【０１３５】
図１５は、本実施の形態による情報処理システムの構成を示すブロック図である。図１５において、本実施の形態による情報処理システムは、情報処理装置６，７と、通信処理装置３，４と、サーバ８とを備える。通信処理装置３，４、及びサーバ８は、通信回線１００を介して接続されている。通信処理装置３，４、及び通信回線１００は、実施の形態１と同様のものである。本実施の形態では、情報処理装置６が通信元の情報処理装置として動作し、情報処理装置７が通信先の情報処理装置として動作する場合について説明する。
【０１３６】
図１６は、本実施の形態による情報処理装置６の構成を示すブロック図である。図１６において、本実施の形態による情報処理装置６は、通信制御部１１と、バブルパケット送信部１７と、中継情報受信部６１と、中継情報取得部６２と、寿命設定部６３とを備える。通信制御部１１、バブルパケット送信部１７は、情報処理装置１が情報処理装置６となり、情報処理装置２が情報処理装置７となった以外、実施の形態１と同様のものであり、その説明を省略する。
【０１３７】
中継情報受信部６１は、情報処理装置７から所定のサーバを介して送信された中継情報を受信する。中継情報受信部６１が受信する中継情報の内容については後述する。なお、中継情報受信部６１は、受信を行うための受信デバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい。また、中継情報受信部６１は、ハードウェアによって実現されてもよく、あるいは受信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【０１３８】
中継情報取得部６２は、通信元の情報処理装置６と、境界ノードとの間のパケットの中継時間に応じた情報である中継情報を取得する。中継情報取得部６２が中継情報を取得する方法は問わない。例えば、上記特許文献３で記載されている方法を用いてもよい。中継情報取得部６２が取得する中継情報も、実施の形態１と同様に、例えば、中継時間そのものを示す情報であってもよく、中継ホップ数を示す情報であってもよい。本実施の形態では、中継情報取得部６２が取得する中継情報は、中継ノードのホップ数を示すものとする。
【０１３９】
なお、中継情報取得部６２は、通信を行うための通信デバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい。また、中継情報取得部６２は、ハードウェアによって実現されてもよく、あるいは通信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【０１４０】
寿命設定部６３は、通信元の通信処理装置（図１５では、通信処理装置３）に送信履歴を残すために送信されるバブルパケットの寿命を、そのバブルパケットがグローバルネットワークに到達するように設定する。寿命設定部６３は、中継情報受信部６１が受信した中継情報から得られる、第１の中継ノードと第２の中継ノードとの間のパケットの中継時間に応じた情報である中継情報と、中継情報取得部６２が取得した中継情報とを用いて、バブルパケットの寿命を設定する。第１の中継ノードや第２の中継ノード、バブルパケットの寿命の具体的な設定方法については、後述する。なお、寿命設定部６３が設定する寿命も、実施の形態１と同様に、パケットが存在しうる時間的な範囲（例えば、パケットの送信時刻と、その送信時刻からパケットが存在可能な期間とを示す情報）を決定する情報であってもよく、あるいは空間的な範囲を決定する情報（例えば、ＴＴＬやホップリミットなど）であってもよい。本実施の形態では、寿命設定部６３が設定する寿命は、ＴＴＬであるとする。
【０１４１】
なお、通信制御部１１、バブルパケット送信部１７、中継情報受信部６１、中継情報取得部６２の任意の２以上の構成要素が通信に関するデバイスを有する場合に、それらは物理的に同一のものであってもよく、あるいは、別々のものであってもよい。
【０１４２】
図１７は、本実施の形態による情報処理装置７の構成を示すブロック図である。図１７において、本実施の形態による情報処理装置７は、通信制御部７１と、アドレス受付部７２と、中継情報構成部７３と、中継情報送信部７４とを備える。
【０１４３】
通信制御部７１は、通信制御部１１と同様のものであり、通信元の情報処理装置６と、通信先の情報処理装置７との間での通信を確立させるための処理を行う。その処理の詳細については実施の形態１で説明したとおりである。
【０１４４】
アドレス受付部７２は、通信元の情報処理装置６に対応するアドレスを受け付ける。通信元の情報処理装置６に対応するアドレスは、通信元の情報処理装置６からグローバルネットワークに向けて送信されたパケットが通過する境界ノードのＷＡＮ側のアドレスであり、図１５では、通信処理装置３のＷＡＮ側のアドレスである。アドレス受付部７２は、例えば、通信元の情報処理装置６からリレーサーバ等を介して送信されたアドレスを受信してもよく、あるいは、アドレスを管理しているサーバ等に問い合わせることによって、そのアドレスを受信してもよい。また、アドレス受付部７２によるアドレスの受け付けは、例えば、入力デバイス（例えば、キーボードやマウス、タッチパネルなど）から入力されたアドレスの受け付けでもよく、所定の記録媒体（例えば、光ディスクや磁気ディスク、半導体メモリなど）から読み出されたアドレスの受け付けでもよい。本実施の形態では、アドレス受付部７２は、送信されたアドレスを受信するものとする。
【０１４５】
なお、アドレス受付部７２は、受け付けを行うための受付デバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい。また、アドレス受付部７２は、ハードウェアによって実現されてもよく、あるいは受付デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【０１４６】
中継情報構成部７３は、アドレス受付部７２が受け付けたアドレスを送信先とする測定パケットを、その測定パケットの寿命を変化させて送信することによって、第１の中継ノ
ードと、第２の中継ノードとの間のパケットの中継時間に関する情報である中継情報を構成する。ここで、第１の中継ノードとは、通信元の情報処理装置６と、通信先の情報処理装置７との間の通信経路に存在する中継ノードであって、グローバルネットワーク上に存在する中継ノードである。第２の中継ノードとは、通信元の情報処理装置６と、通信先の情報処理装置７との間の通信経路に存在する中継ノードであって、少なくともグローバルネットワークに接続されている中継ノードである。第２の中継ノードは、第１の中継ノードよりも、通信元の情報処理装置６側に存在するものとする。第２の中継ノードは、境界ノードであってもよく、あるいは、そうでなくてもよい。中継情報構成部７３が構成する中継情報も、実施の形態１と同様に、例えば、中継時間そのものを示す情報であってもよく、中継ホップ数を示す情報であってもよい。本実施の形態では、中継情報構成部７３が構成する中継情報は、中継ノードのホップ数を示すものとする。
【０１４７】
中継情報構成部７３は、例えば、第１の中継ノードと通信先の情報処理装置７との間のパケットの中継時間に応じた情報である第１の中継情報を取得し、第２の中継ノードと通信先の情報処理装置７との間のパケットの中継時間に応じた情報である第２の中継情報を取得し、その第１の中継情報と第２の中継情報とを用いて、第１の中継ノードと第２の中継ノードとの間のパケットの中継時間に関する中継情報を構成してもよい。あるいは、中継情報構成部７３は、例えば、トレースルートを実行し、そのトレースルートの結果を用いて中継情報を構成してもよい。具体的には、中継情報構成部７３は、トレースルートの結果を用いて、グローバルネットワークに対応付けられている第１の中継ノードと、第２の中継ノードとを選択する。また、トレースルートの結果から、その第１の中継ノードと情報処理装置７との間のホップ数を知ることができ、また、第２の中継ノードと情報処理装置７との間のホップ数を知ることができる。したがって、中継情報構成部７３は、それらの情報を用いて、第１の中継ノードと第２の中継ノードとの間のパケットの中継時間に関する中継情報を構成することができる。なお、トレースルートの宛先は、例えば、通信元の情報処理装置６側の境界ノードであってもよく、第２の中継ノードであってもよく、情報処理装置６と情報処理装置７との間の通信経路に存在するその他のノードであってもよい。
【０１４８】
ここで、中継情報構成部７３が構成する中継情報も、実施の形態１の中継情報構成部５６が構成する中継情報と同様に、結果として第１の中継ノードと、第２の中継ノードとの間のパケットの中継時間やホップ数等を知ることができる情報であればよく、第１の中継ノードと第２の中継ノードとの間のパケットの中継時間そのものや、ホップ数そのもの等を示す情報でなくてもよい。すなわち、中継情報構成部７３が構成する中継情報は、例えば、（１）第１の中継ノードと、第２の中継ノードとの間のパケットの中継時間に応じた情報であってもよく、（２）第１の中継ノードと通信先の情報処理装置７との間のパケットの中継時間に応じた情報である第１の中継情報と、第２の中継ノードと通信先の情報処理装置７との間のパケットの中継時間に応じた情報である第２の中継情報とを含む情報であってもよく、（３）トレースルートの結果そのものであってもよい。
【０１４９】
上記（１）の場合には、中継情報構成部７３は、例えば、第１の中継ノードと通信先の情報処理装置７との間のパケットの中継時間に応じた情報である第１の中継情報を取得し、第２の中継ノードと通信先の情報処理装置７との間のパケットの中継時間に応じた情報である第２の中継情報を取得し、第２の中継情報の示す中継時間や中継ホップ数から、第１の中継情報の示す中継時間や中継ホップ数を減算することにより、中継情報を構成することができる。なお、前述のように、トレースルートを用いて中継情報を構成してもよい。
【０１５０】
上記（２）の場合には、中継情報構成部７３は、例えば、第１の中継ノードと通信先の情報処理装置７との間のパケットの中継時間に応じた情報である第１の中継情報を取得し
、第２の中継ノードと通信先の情報処理装置７との間のパケットの中継時間に応じた情報である第２の中継情報を取得することにより、中継情報を構成することができる。なお、この場合には、上記（１）における中継情報構成部７３による処理を、情報処理装置６において行うことによって、第１の中継ノードと第２の中継ノードとの間のパケットの中継時間に応じた中継情報が算出されることになる。
【０１５１】
上記（３）の場合には、その中継情報を受信した情報処理装置６において、前述のように、そのトレースルートの結果から、グローバルネットワークに対応付けられている第１の中継ノードと第２の中継ノードとを選択し、第１の中継ノードと第２の中継ノードとの間のパケットの中継時間に応じた中継情報を算出することができる。
【０１５２】
中継情報送信部７４は、中継情報構成部７３が構成した中継情報を通信元の情報処理装置６に送信する。なお、Ｐ２Ｐ通信が確立される前にこの中継情報の送信が行われるため、中継情報送信部７４は、中継情報を情報処理装置６に直接送信することはできない。したがって、中継情報送信部７４は、所定のサーバを介して中継情報を通信元の情報処理装置６に送信する。
【０１５３】
なお、中継情報送信部７４は、送信を行うための送信デバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい。また、中継情報送信部７４は、ハードウェアによって実現されてもよく、あるいは送信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【０１５４】
なお、通信制御部７１、アドレス受付部７２、中継情報構成部７３、中継情報送信部７４の任意の２以上の構成要素が通信に関するデバイスを有する場合に、それらは物理的に同一のものであってもよく、あるいは、別々のものであってもよい。
【０１５５】
サーバ８は、情報処理装置６と、情報処理装置７との間でＰ２Ｐ通信を確立するために必要な処理等を行う。例えば、情報処理装置６に情報処理装置７に対応するアドレスを送信したり、情報処理装置７から送信された中継情報を、情報処理装置６にリレーしたりする。
【０１５６】
次に、本実施の形態による情報処理装置６，７の動作について、フローチャートを用いて説明する。
図１８は、本実施の形態による情報処理装置６の動作を示すフローチャートである。
【０１５７】
（ステップＳ６０１）通信制御部１１は、情報処理装置６に対応するアドレスを情報処理装置７に送信するかどうか判断する。そして、送信する場合には、ステップＳ６０２に進み、そうでない場合には、送信すると判断するまでステップＳ６０１の処理を繰り返す。
【０１５８】
（ステップＳ６０２）通信制御部１１は、情報処理装置６に対応するアドレスを、サーバ８を介して情報処理装置７に送信する。このアドレスの送信は、情報処理装置６に対応するアドレスをペイロードに含むパケットを、情報処理装置６がサーバ８に送信し、サーバ８がそのパケットを情報処理装置７にリレーすることによって行われてもよく、情報処理装置６がサーバ８にパケットを送信し、サーバ８がそのパケットの送信元のアドレスをペイロードに含むパケットを構成し、そのパケットを情報処理装置７に送信することによって行われてもよく、あるいは、情報処理装置６が、サーバ８において登録されている情報処理装置６のアドレスを情報処理装置７に送信する旨の指示をサーバ８に送信し、その登録されている情報処理装置６のアドレスが情報処理装置７に送信されることによって行われてもよい。
【０１５９】
（ステップＳ６０３）中継情報取得部６２は、情報処理装置６と、情報処理装置６の存在するプライベートネットワークの境界ノードとの間の中継情報を取得する。この中継情報取得部６２が中継情報を取得する処理の詳細については、図１９のフローチャートを用いて後述する。
【０１６０】
（ステップＳ６０４）中継情報受信部６１は、中継情報を受信したかどうか判断する。そして、中継情報を受信した場合には、ステップＳ６０５に進み、そうでない場合には、中継情報を受信するまでステップＳ６０４の処理を繰り返す。
【０１６１】
（ステップＳ６０５）寿命設定部６３は、中継情報受信部６１が受信した中継情報と、中継情報取得部６２が取得した中継情報とを用いて、バブルパケットの寿命を設定する。具体的には、寿命設定部６３は、中継情報受信部６１が受信した中継情報から得られる、第１の中継ノードと第２の中継ノードとの間の中継時間や中継ホップ数と、中継情報取得部６２が取得した中継情報の示す、情報処理装置６と境界ノードとの間の中継時間や中継ホップ数とを加算したものを、バブルパケットの寿命として設定する。
【０１６２】
（ステップＳ６０６）バブルパケット送信部１７は、寿命設定部６３が設定した寿命のバブルパケットを送信する。
（ステップＳ６０７）通信制御部１１は、情報処理装置６と情報処理装置７との間でＰ２Ｐ通信を確立するための処理を行う。
（ステップＳ６０８）情報処理装置６と、情報処理装置７とは、Ｐ２Ｐ通信を行う。そして、Ｐ２Ｐ通信を行うまでの一連の処理は終了となる。
【０１６３】
なお、図１８のフローチャートでは、情報処理装置６がアドレスを送信する処理（ステップＳ６０２）を行う場合について示しているが、前述のように、そのアドレスを送信する処理を行わず、情報処理装置７がアドレスを取得するようにしてもよい。
また、図１８のフローチャートにおいて、中継情報の取得の処理（ステップＳ６０３）を、中継情報を受信の処理（ステップＳ６０４）の後に行ってもよい。
【０１６４】
図１９は、図１８のフローチャートにおける中継情報を取得する処理（ステップＳ６０３）の詳細を示すフローチャートである。
（ステップＳ７０１）中継情報取得部６２は、ＴＴＬを「１」に設定する。
【０１６５】
（ステップＳ７０２）中継情報取得部６２は、その時点におけるＴＴＬの示す寿命の設定されたパケットを、サーバ８のアドレスに送信する。
（ステップＳ７０３）中継情報取得部６２は、ＩＣＭＰ  Ｔｉｍｅ  Ｅｘｃｅｅｄｅｄを通知するために、中継ノードから送信されたパケットを受信したかどうか判断する。そして、そのパケットを受信した場合には、ステップＳ７０４に進み、そうでない場合には、そのパケットを受信するまで、ステップＳ７０３の処理を繰り返す。
【０１６６】
（ステップＳ７０４）中継情報取得部６２は、ステップＳ７０２で送信したパケットがグローバルネットワークに到達したかどうか判断する。そして、到達した場合には、ステップＳ７０６に進み、そうでない場合には、ステップＳ７０５に進む。中継情報取得部６２は、ステップＳ７０３で受信したＩＣＭＰ  Ｔｉｍｅ  Ｅｘｃｅｅｄｅｄを通知するパケットの送信元のアドレスがグローバルネットワーク上の中継ノードのアドレスである場合に、ステップＳ７０２で送信したパケットがグローバルネットワークに到達したと判断する。
【０１６７】
（ステップＳ７０５）中継情報取得部６２は、ＴＴＬを１だけインクリメントする。そ
して、ステップＳ７０２に戻る。
（ステップＳ７０６）中継情報取得部６２は、その時点でのＴＴＬから１を減算した値を、通信元の情報処理装置６と境界ノードとの間の中継情報として保持する。そして、通信元の情報処理装置６と境界ノードとの間の中継情報を取得する処理は終了となる。
【０１６８】
なお、図１９のフローチャートのステップＳ７０２において、パケットをサーバ８に送信する場合について説明したが、パケットの送信先は、グローバルネットワークに存在するノードであれば、サーバ８以外であってもよい。
【０１６９】
また、図１９のフローチャートのステップＳ７０６において、その時点でのＴＴＬから１を減算した値を、通信元の情報処理装置６と境界ノードとの間の中継情報として保持する場合について説明したが、ＴＴＬから１を減算する処理を行わず、その時点でのＴＴＬをそのまま、通信元の情報処理装置６と境界ノードとの間の中継情報として保持してもよい。この場合には、ステップＳ６０５でのバブルパケットの寿命の設定において、例えば、中継情報取得部６２が取得した中継情報の示すホップ数と、中継情報受信部６１が受信した中継情報の示すホップ数との和から、１だけ減算した値をバブルパケットの寿命に設定してもよい。
【０１７０】
また、図１９のフローチャートの方法ではなく、トレースルートを用いることによって、通信元の情報処理装置６と境界ノードとの間の中継情報を取得するようにしてもよい。その方法は、例えば、上記特許文献３で示されている。
【０１７１】
図２０は、本実施の形態による情報処理装置７の動作を示すフローチャートである。
（ステップＳ８０１）アドレス受付部７２は、アドレスを受け付けたかどうか判断する。そして、アドレスを受け付けた場合には、ステップＳ８０２に進み、そうでない場合には、アドレスを受け付けるまでステップＳ８０１の処理を繰り返す。なお、前述のように、このアドレスの受け付けは、アドレスの受信である。
【０１７２】
（ステップＳ８０２）中継情報構成部７３は、中継情報を構成する処理を行う。この中継情報構成部７３が中継情報を構成する処理の詳細については、図２１のフローチャートを用いて後述する。
【０１７３】
（ステップＳ８０３）中継情報送信部７４は、中継情報構成部７３が構成した中継情報を所定のサーバを介して情報処理装置６に送信する。
（ステップＳ８０４）通信制御部７１は、情報処理装置６と情報処理装置７との間でＰ２Ｐ通信を確立するための処理を行う。
（ステップＳ８０５）情報処理装置６と、情報処理装置７とは、Ｐ２Ｐ通信を行う。そして、Ｐ２Ｐ通信を行うまでの一連の処理は終了となる。
【０１７４】
なお、図２０のフローチャートにおいて、アドレスが送信されてきて、情報処理装置７がそのアドレスを受信する（ステップＳ８０１）場合について説明したが、情報処理装置６がアドレスを送信しない場合には、例えば、中継情報を構成するタイミングで、情報処理装置７が所定のサーバ等にアドレスを要求し、その要求に応じて送信されたアドレスをアドレス受付部７２が受信してもよい。また、アドレス受付部７２が、入力デバイスや記録媒体等からアドレスを受け付けてもよいことは前述の通りである。
【０１７５】
図２１は、図２０のフローチャートにおける中継情報構成部７３が構成する処理（ステップＳ８０２）の詳細を示すフローチャートである。
（ステップＳ９０１）中継情報構成部７３は、アドレス受付部７２が受け付けたアドレスに対して、トレースルートを実行する。このトレースルートの結果、情報処理装置７か
ら、情報処理装置６が存在するプライベートネットワークの境界ノードまでの各中継ノードのアドレスを取得することができる。
【０１７６】
（ステップＳ９０２）中継情報構成部７３は、トレースルートで取得した各中継ノードのアドレスを用いることにより、グローバルネットワークのアドレスを有する２個の中継ノードを選択する。この２個の中継ノードは、異なる中継ノードであるとする。
【０１７７】
（ステップＳ９０３）中継情報構成部７３は、ステップＳ９０２で選択した２個の中継ノードの間の中継情報を構成する。具体的には、中継情報構成部７３は、次のようにして中継情報を構成する。すなわち、選択した２個の中継ノードのうち、情報処理装置７に近い方の中継ノードが第１の中継ノードとなり、遠い方の中継ノードが第２の中継ノードとなる。そして、トレースルートの結果から、中継情報構成部７３は、第１の中継ノードと情報処理装置７との間のホップ数を示す中継情報を取得し、第２の中継ノードと情報処理装置７との間のホップ数を示す中継情報を取得する。そして、後者のホップ数から前者のホップ数を減算することによって、第１の中継ノードと第２の中継ノードとの間のホップ数を示す中継情報を構成する。このようにして、中継情報を構成する処理は終了となる。
【０１７８】
なお、図２１のフローチャートでは、トレースルートを用いて中継情報を構成する場合について説明したが、それ以外の方法によって中継情報を構成してもよいことは前述の通りである。
【０１７９】
次に、本実施の形態による情報処理システムの動作について、具体例を用いて説明する。この具体例でも、実施の形態１の具体例と同様に、通信処理装置３、４がＲｅｓｔｒｉｃｔｅｄ  Ｃｏｎｅ  ＮＡＴの機能を有するものであるとする。また、中継情報は中継ノードのホップ数であり、寿命はＴＴＬであるとする。また、情報処理装置６，７の間のＰ２Ｐ通信を確立するための処理をサーバ８が行うものとする。また、通信処理装置３、通信処理装置４、サーバ８の通信回線１００側の各ＩＰアドレスは、サーバ５がサーバ８となった以外、実施の形態１の具体例と同様であるとする。
【０１８０】
実施の形態１の具体例と同様にして、情報処理装置６，７は、それぞれの機器ＩＤと、通信処理装置３，４のアドレスとをサーバに登録する。また、情報処理装置６は、接続を要求する情報処理装置７の機器ＩＤをサーバ８に送信することによって、サーバ８から通信処理装置４のアドレスと、ポート番号とを受信する。
【０１８１】
次に、情報処理装置６の通信制御部１１は、アドレスを送信するタイミングであると判断し（ステップＳ６０１）、情報処理装置６のアドレスを、情報処理装置７に送信する旨の指示を含むパケットをサーバ８に送信する（ステップＳ６０２）。
【０１８２】
情報処理装置６から送信されたパケットは、サーバ８で受信される。そして、サーバ８は、登録されている情報処理装置６のアドレス（厳密には、通信処理装置３のアドレス）を読み出し、そのアドレスをペイロードに含むパケットを構成して情報処理装置７に送信する。そのパケットは、通信処理装置４を介して情報処理装置７のアドレス受付部７２で受信される（ステップＳ８０１）。
【０１８３】
情報処理装置６の中継情報取得部６２は、中継情報を取得する処理を行う（ステップＳ６０３）。具体的には、中継情報取得部６２は、ＴＴＬを１に設定したパケットを、サーバ８を送信先として送信する（ステップＳ７０１，Ｓ７０２）。そのパケットは、通信処理装置３に到達した段階でＴＴＬが０となり、通信処理装置３からＩＣＭＰ  Ｔｉｍｅ  Ｅｘｃｅｅｄｅｄを通知するパケットが送信され、そのパケットを中継情報取得部６２が受信する（ステップＳ７０３）。そのパケットの送信元のＩＰアドレスは、プライベート
ネットワークにおけるアドレスである。したがって、中継情報取得部６２は、送信したパケットがグローバルネットワークに到達しなかったと判断し（ステップＳ７０４）、ＴＴＬを２に設定して再度、パケットを送信する（ステップＳ７０５，Ｓ７０２）。
【０１８４】
中継情報取得部６２が送信したＴＴＬが２のパケットは、通信処理装置３に隣接するグローバルネットワークに存在する中継ノードに到達し、その段階でＴＴＬが０となり、その中継ノードからＩＣＭＰ  Ｔｉｍｅ  Ｅｘｃｅｅｄｅｄを通知するパケットが送信され、そのパケットを中継情報取得部６２が受信する（ステップＳ７０３）。そのパケットの送信元のＩＰアドレスは、グローバルネットワークにおけるアドレスである。したがって、中継情報取得部６２は、送信したパケットがグローバルネットワークに到達したと判断し（ステップＳ７０４）、その時点でのＴＴＬ「２」から１を減算した値「１」を、通信元の情報処理装置６と境界ノードとの間のホップ数として取得し、その値を中継情報とする（ステップＳ７０６）。
【０１８５】
一方、アドレスを受信した通信先の情報処理装置７では、第１の中継ノードと第２の中継ノードとの間の中継情報を構成する処理が行われる（ステップＳ８０２）。具体的には、中継情報構成部７３は、アドレス受付部７２が受信したアドレスを宛先として、トレースルートを実行する（ステップＳ９０１）。このトレースルートの実行によって、図２２で示される結果が得られたとする。図２２において、各行がひとつの中継ノードに対応している。すなわち、最後の行はアドレス受付部７２が受信したアドレスの中継ノード、すなわち、通信処理装置３に対応している。各行の最も右側の情報が、各中継ノードの情報処理装置７側のＩＰアドレスである。また、このトレースルートでは、ひとつのＴＴＬの値に対して３個のパケットを送信している。その３個のパケットの返信までの時間が、各行に含まれる。また、各行の最も左側の情報が、対応する中継ノードの情報処理装置７からのホップ数である。この図２２で示されるトレースルートの結果により、中継情報構成部７３は、各中継ノードの情報処理装置７側のアドレスを知ることができる。中継情報構成部７３は、図２２で示されるトレースルートの結果における各通信処理装置のＩＰアドレスと、対応するホップ数とを、一時的に図示しない記録媒体において保持しておく。なお、トレースルートについては従来から公知であり、その詳細な説明を省略する。
【０１８６】
次に、中継情報構成部７３は、記録媒体において一時記憶しているトレースルートの結果から、２個のグローバルアドレスを選択する（ステップＳ９０２）。この２個のグローバルアドレスの選択によって、グローバルアドレスを有する２個の中継ノードが選択されたことになる。この選択の方法は任意である。例えば、トレースルートの結果からすべてのグローバルアドレスを選択し、そのグローバルアドレスからランダムに２個のグローバルアドレスを選択してもよい。また、例えば、トレースルートの結果からすべてのグローバルアドレスを選択し、そのグローバルアドレスから、通信先の情報処理装置７に最も近いグローバルアドレスと、通信先の情報処理装置７から最も遠いグローバルアドレスとを選択してもよい。この具体例では、中継情報構成部７３は、グローバルアドレス「１５５．３２．２．２」と、グローバルアドレス「２０２．１３３．１１．７」とを選択したとする。なお、グローバルアドレス「１５５．３２．２．２」を有する中継ノードの方が情報処理装置７に近いため、グローバルアドレス「１５５．３２．２．２」を有する中継ノードが第１の中継ノードとなり、グローバルアドレス「２０２．１３３．１１．７」を有する中継ノードが第２の中継ノードとなる。
【０１８７】
その後、中継情報構成部７３は、その選択した２個のグローバルアドレスに対応する情報処理装置７からのホップ数「３」、「１２」を、記録媒体において一時記憶しているトレースルートの結果から取得する。そして、中継情報構成部７３は、大きい方のホップ数「１２」から、小さい方のホップ数「３」を減算した値「９」を、選択した２個の中継ノードの間の中継情報とし（ステップＳ９０３）、その中継情報を中継情報送信部７４に渡
す。
【０１８８】
中継情報送信部７４は、その中継情報と、中継情報を情報処理装置６に送信する旨の指示とを含むパケットを構成し、そのパケットをサーバ８に送信する（ステップＳ８０３）。
【０１８９】
中継情報送信部７４が送信したパケットは、サーバ８で受信される。そして、サーバ８は、情報処理装置６に対応するアドレスを読み出して、そのアドレスを送信先として、中継情報を送信する。そのサーバ８から送信された中継情報は、情報処理装置６の中継情報受信部６１で受信される（ステップＳ６０４）。
【０１９０】
寿命設定部６３は、中継情報受信部６１が受信した中継情報の示すホップ数「９」と、中継情報取得部６２が取得した中継情報の示すホップ数「１」とを加算し、その加算結果をバブルパケットのＴＴＬに設定する（ステップＳ６０５）。すなわち、バブルパケットのＴＴＬは、「１０」に設定されたことになる。
【０１９１】
その後、バブルパケット送信部１７が、ＴＴＬが１０に設定されたバブルパケットを送信し（ステップＳ６０６）、通信元の情報処理装置６と通信先の情報処理装置７との間でＰ２Ｐ通信の確立（ステップＳ６０７，Ｓ８０４）と、Ｐ２Ｐ通信（ステップＳ６０８，Ｓ８０５）とが行われる処理については、実施の形態１の具体例と同様であり、その説明を省略する。
【０１９２】
以上のように、本実施の形態による情報処理システムによれば、通信元の情報処理装置６が境界ノードまでの中継情報を取得し、通信先の情報処理装置７が、グローバルネットワークにおける第１の中継ノードと第２の中継ノードとの間の中継情報を構成して情報処理装置６に送信することによって、情報処理装置６は、グローバルネットワークに到達すると共に、通信先の境界ノードには到達しない寿命を有するバブルパケットを送信することができる。したがって、そのバブルパケットは、通信元の情報処理装置６側の境界ノードに隣接するグローバルネットワーク上の中継ノードよりも、より遠い中継ノードに向けて送信されうることになる。
【０１９３】
その結果、例えば、通信元の情報処理装置６が存在するプライベートネットワークにおいて、新たな通信処理装置等が追加されたり、あるいは、通信元の情報処理装置６が存在するプライベートネットワークにおいて、ＩＣＭＰに準拠しない通信処理装置が存在したりする場合であっても、境界ノードに送信履歴を残すようにバブルパケットを送信しうることになる。また、バブルパケットが通信先の境界ノードに到達することを回避することができるため、通信先の境界ノードがセキュリティーの高いものであっても、バブルパケットの送信元からの通信が受け付けられなくなることを回避することができる。このようにして、情報処理装置６，７の間でのＰ２Ｐ通信の確立の成功率がより向上するように、バブルパケットの寿命を設定することができる。
【０１９４】
また、寿命を制限することなくバブルパケットを送信する場合（例えば、バブルパケットのＴＴＬを「２５５」に設定して送信する場合など）に比べて、バブルパケットが送信される範囲が制限されることになり、結果として、トラフィックの増大を回避することができる。
【０１９５】
なお、本実施の形態では、各中継ノードが適切にＩＣＭＰ  Ｔｉｍｅ  Ｅｘｃｅｅｄｅｄを通知するパケットを返信することによって、適切にトレースルート等を実行することができ、中継情報構成部７３が中継情報を適切に構成することができる場合について説明したが、ＩＣＭＰに準拠しない中継ノードが存在した場合には、そのＩＣＭＰ  Ｔｉｍｅ
Ｅｘｃｅｅｄｅｄを通知するパケットを返信しないこともある。そのような場合には、例えば、情報処理装置７から通信処理装置３にトレースルートを実行したとしても、中継ノードからの応答時間や中継ノードのアドレスを取得できない中継ノードも存在することになる。そのように、ＩＣＭＰに準拠しない中継ノードが存在する場合には、例えば、中継情報構成部７３は、トレースルートを実行し、応答のあった中継ノードであって、グローバルアドレスを有する中継ノードの個数をカウントして、そのカウントした個数以下であって、１以上の値を第１の中継ノードと第２の中継ノードとの間のホップ数を示す中継情報として構成してもよい。そのようにすることによって、第１の中継ノードと第２の中継ノードとは具体的に特定されていないことになるが、少なくとも、その中継情報で示されるホップ数だけ離れた第１の中継ノードと第２の中継ノードとは、通信元の情報処理装置と通信先の情報処理装置との間のグローバルネットワーク上の通信経路に存在するため、中継情報を適切に構成したことになる。
【０１９６】
（実施の形態３）
本発明の実施の形態３による情報処理システムについて、図面を参照しながら説明する。本実施の形態による情報処理システムでは、後述するように、サーバがネットワーク識別情報と、中継情報とを対応付けて保持しており、その中継情報を用いることにより、通信元の情報処理装置と境界ノードとの間のプライベート中継情報が構成される。そして、通信元の情報処理装置は、そのプライベート中継情報を用いてバブルパケットを送信する。なお、実施の形態１，２で説明した用語については、本実施の形態での説明を省略することがある。
【０１９７】
図２３は、本実施の形態による情報処理システムの構成を示すブロック図である。図２３において、本実施の形態による情報処理システムは、情報処理装置１０，２０と、通信処理装置３，４と、サーバ３０とを備える。通信処理装置３，４、及びサーバ３０は、通信回線１００を介して接続されている。通信処理装置３，４、及び通信回線１００は、実施の形態１と同様のものである。本実施の形態では、情報処理装置１０が通信元の情報処理装置として動作し、情報処理装置２０が通信先の情報処理装置として動作する場合について説明する。
【０１９８】
図２４は、本実施の形態による情報処理装置１０の構成を示すブロック図である。図２４において、本実施の形態による情報処理装置１０は、通信制御部１１と、寿命設定部１６と、バブルパケット送信部１７と、パケット送信部１０１と、プライベート中継情報受信部１０２とを備える。なお、通信制御部１１、寿命設定部１６、バブルパケット送信部１７は、情報処理装置１が情報処理装置１０となり、情報処理装置２が情報処理装置２０とり、寿命設定部１６が中継情報受信部１５の受信した中継情報に代えて、プライベート中継情報受信部１０２の受信したプライベート中継情報を用いてバブルパケットの寿命を設定する以外、実施の形態１と同様のものであり、その説明を省略する。
【０１９９】
パケット送信部１０１は、サーバ３０にパケットを送信する。なお、パケット送信部１０１は、あらかじめ定められた寿命を設定して、このパケットを送信する。例えば、寿命がＴＴＬであり、あらかじめ定められたＴＴＬの値が１００である場合には、パケット送信部１０１は、ＴＴＬが１００であるパケットを送信する。また、このパケットがサーバ３０に到達時点においては、通信元の情報処理装置１０の属するプライベートネットワーク（例えば、ＬＡＮ）を識別する情報であるネットワーク識別情報が含まれているものとする。
【０２００】
ここで、このネットワーク識別情報は、例えば、通信元の情報処理装置１０の属するプライベートネットワークにおける境界ノードのＷＡＮ側（グローバルネットワーク側）のアドレスであってもよく、そのプライベートネットワークに対してあらかじめ設定されて
いるＩＤであってもよく、そのプライベートネットワークのユーザのユーザＩＤであってもよく、そのプライベートネットワークを識別することができる情報であれば、どのようなものであってもよい。また、そのネットワーク識別情報は、パケット送信部１０１がパケットを送信する時点において、そのパケットに含まれていてもよく、あるいは、そうでなくてもよい。前者の場合には、パケット送信部１０１は、例えば、ネットワーク識別情報をペイロードに含むパケットを送信する。後者の場合には、例えば、ネットワーク識別情報が境界ノードのＷＡＮ側のアドレスであり、パケット送信部１０１は、あるパケットを送信し、そのパケットが境界ノードを通過する時点において、ネットワーク識別情報、すなわち、境界ノードのＷＡＮ側のアドレスが、そのパケットのヘッダに設定されることになる。
【０２０１】
パケット送信部１０１が送信するパケットは、例えば、ＵＤＰやＴＣＰのパケットである。パケット送信部１０１は、例えば、パケットの送信先であるサーバ３０のアドレスをあらかじめ保持していてもよく、パケットの送信時に、サーバ３０のアドレスを他の構成要素等から取得してもよい。
【０２０２】
なお、パケット送信部１０１は、送信を行うための送信デバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい。また、パケット送信部１０１は、ハードウェアによって実現されてもよく、あるいは送信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【０２０３】
プライベート中継情報受信部１０２は、サーバ３０から送信されたプライベート中継情報を受信する。プライベート中継情報については後述する。なお、プライベート中継情報受信部１０２は、受信を行うための受信デバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい。また、プライベート中継情報受信部１０２は、ハードウェアによって実現されてもよく、あるいは受信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【０２０４】
また、通信制御部１１、バブルパケット送信部１７、パケット送信部１０１、プライベート中継情報受信部１０２の任意の２以上の構成要素が通信に関するデバイスを有する場合に、それらは物理的に同一のものであってもよく、あるいは、別々のものであってもよい。
【０２０５】
情報処理装置２０は、実施の形態１の情報処理装置２と同様に、情報処理装置１０とＰ２Ｐ通信を確立し、Ｐ２Ｐ通信を行うものであり、その説明を省略する。
【０２０６】
図２５は、本実施の形態によるサーバ３０の構成を示すブロック図である。図２５において、本実施の形態によるサーバ３０は、受信部３０１と、グローバル中継情報記憶部３０２と、中継情報取得部３０３と、寿命取得部３０４と、プライベート中継情報構成部３０５と、出力部３０６とを備える。
【０２０７】
受信部３０１は、通信元の情報処理装置１０から送信されたパケットを受信する。そのパケットには、前述のように、通信元の情報処理装置１０の属するプライベートネットワークを識別するネットワーク識別情報が含まれている。なお、受信部３０１は、受信を行うための受信デバイス（例えば、モデムやネットワークカードなど）を含んでもよく、あるいは含まなくてもよい。また、受信部３０１は、ハードウェアによって実現されてもよく、あるいは受信デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
【０２０８】
グローバル中継情報記憶部３０２では、グローバル中継情報が記憶される。ここで、グ
ローバル中継情報とは、境界ノードとサーバとの間のパケットの中継時間に応じた情報である中継情報と、ネットワーク識別情報とを対応付けて有する情報である。そのネットワーク識別情報は、対応する境界ノードの接続されているプライベートネットワークのネットワーク識別情報である。グローバル中継情報記憶部３０２は、所定の記録媒体（例えば、半導体メモリや磁気ディスク、光ディスクなど）によって実現されうる。
【０２０９】
なお、グローバル中継情報記憶部３０２にグローバル中継情報が記憶される過程は問わない。例えば、記録媒体を介してグローバル中継情報がグローバル中継情報記憶部３０２で記憶されるようになってもよく、通信回線等を介して送信されたグローバル中継情報がグローバル中継情報記憶部３０２で記憶されるようになってもよく、あるいは、入力デバイスを介して入力されたグローバル中継情報がグローバル中継情報記憶部３０２で記憶されるようになってもよい。
【０２１０】
中継情報取得部３０３は、グローバル中継情報記憶部３０２が記憶しているグローバル中継情報を用いて、受信部３０１が受信したパケットに含まれるネットワーク識別情報に対応する中継情報を取得する。具体的には、中継情報取得部３０３は、受信部３０１が受信したパケットに含まれるネットワーク識別情報を検索キーとしてグローバル中継情報を検索し、そのネットワーク識別情報に対応する中継情報を取得する。
【０２１１】
寿命取得部３０４は、受信部３０１がパケットを受信した時点における、そのパケットの寿命を取得する。寿命取得部３０４が取得する寿命は、受信部３０１がパケットを受信した時点において、残存しているそのパケットの寿命である。例えば、寿命がＴＴＬやホップリミットである場合には、受信された時点でのそのパケットのＴＴＬ等をパケットの寿命として取得してもよく、あるいは、サーバ３０が中継ノードであれば行われたはずのＴＴＬ等を１だけ減少させる処理を行うために、受信された時点でのそのパケットのＴＴＬ等から１を減算した値をパケットの寿命として取得してもよい。本実施の形態では、後者の場合について説明する。一方、例えば、寿命がパケットの存在可能な期間の終期を示す時刻である場合には、パケットが受信された時点での時刻と、寿命の示す時刻との間の期間を、受信された時点でのそのパケットの寿命として取得してもよい。
【０２１２】
プライベート中継情報構成部３０５は、中継情報取得部３０３が取得した中継情報と、寿命取得部３０４が取得した寿命とを用いて、通信元の情報処理装置１０と境界ノードとの間のパケットの中継時間に関する情報であるプライベート中継情報を構成する。このプライベート中継情報も、前述の中継情報と同様に、例えば、中継時間そのものを示す情報であってもよく、中継ホップ数を示す情報であってもよい。本実施の形態では、プライベート中継情報は、中継ノードのホップ数を示すものとする。
【０２１３】
ここで、プライベート中継情報構成部３０５が構成するプライベート中継情報について説明する。このプライベート中継情報は、結果として、通信元の情報処理装置１０と境界ノードとの間のパケットの中継時間やホップ数等を知ることができる情報であればよく、通信元の情報処理装置１０と境界ノードとの間のパケットの中継時間そのものや、ホップ数そのもの等を示す情報でなくてもよい。すなわち、このプライベート中継情報は、（１）通信元の情報処理装置１０と境界ノードとの間のパケットの中継時間に応じた情報であってもよく、（２）通信元の情報処理装置１０と、境界ノードに接続されているグローバルネットワークに存在する中継ノードとの間のパケットの中継時間に応じた情報であってもよく、（３）中継情報取得部３０３が取得した中継情報と、寿命取得部３０４が取得した寿命とを含む情報であってもよい。
【０２１４】
上記（１）の場合には、通信元の情報処理装置１０が設定したパケットの寿命と、寿命取得部３０４が取得した寿命とを用いて、通信元の情報処理装置１０とサーバ３０との間
の中継時間や中継ホップ数を算出し、その中継時間や中継ホップ数から、中継情報取得部３０３が取得したサーバ３０と境界ノードとの間の中継情報の示す中継時間や中継ホップ数を減算することにより、プライベート中継情報を構成することができる。なお、このプライベート中継情報が情報処理装置１０に送信され、バブルパケットの寿命が設定される場合に、プライベート中継情報そのものを寿命に設定すると、バブルパケットは、グローバルネットワークに到達しないことになる。したがって、情報処理装置１０の寿命設定部１６は、例えば、プライベート中継情報の示す寿命に所定の中継時間（例えば、境界ノードに隣接するグローバルネットワーク情報中継ノードと境界ノードとの間の中継時間）や、ホップ数「１」を加算したものを、バブルパケットの寿命として設定する必要がある。
【０２１５】
上記（２）の場合には、プライベート中継情報は、グローバルネットワークにおける中継ノードであって、境界ノードに隣接する中継ノードと通信元の情報処理装置１０との間のパケットの中継時間に応じた中継情報であってもよい。すなわち、プライベート中継情報構成部３０５は、上記（１）で説明したプライベート中継情報に対して、例えば、境界ノードに隣接するグローバルネットワーク情報中継ノードと境界ノードとの間の中継時間や、ホップ数「１」を加算したものを、プライベート中継情報として構成してもよい。このプライベート中継情報が情報処理装置１０に送信された場合に、寿命設定部１６は、そのプライベート中継情報をそのままバブルパケットの寿命として設定することができる。
【０２１６】
なお、上記（１）、（２）の場合には、プライベート中継情報構成部３０５は、通信元の情報処理装置１０が設定したパケットの寿命を示す情報をあらかじめ保持しているか、あるいは、他の構成要素やサーバ等から取得可能であるとする。
【０２１７】
上記（３）の場合には、上記（１）や、上記（２）におけるプライベート中継情報構成部３０５による処理を、情報処理装置１０において行うことによって、バブルパケットの寿命が設定されることになる。
【０２１８】
出力部３０６は、プライベート中継情報構成部３０５が構成したプライベート中継情報を出力する。ここで、この出力は、例えば、表示デバイス（例えば、ＣＲＴや液晶ディスプレイなど）への表示でもよく、所定の機器への通信回線を介した送信でもよく、プリンタによる印刷でもよく、スピーカによる音声出力でもよく、記録媒体への蓄積でもよい。なお、出力部３０６は、出力を行うデバイス（例えば、表示デバイスやプリンタなど）を含んでもよく、あるいは含まなくてもよい。また、出力部３０６は、ハードウェアによって実現されてもよく、あるいは、それらのデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。本実施の形態では、出力部３０６は、プライベート中継情報を情報処理装置１０に送信するものとする。
【０２１９】
なお、受信部３０１、出力部３０６が通信に関するデバイスを有する場合に、それらは物理的に同一のものであってもよく、あるいは、別々のものであってもよい。
【０２２０】
次に、本実施の形態による情報処理装置１０、サーバ３０の動作について、フローチャートを用いて説明する。
図２６は、本実施の形態による情報処理装置１０の動作を示すフローチャートである。
【０２２１】
（ステップＳ１００１）パケット送信部１０１は、パケットを送信するかどうか判断する。そして、パケットを送信する場合には、ステップＳ１００２に進み、そうでない場合には、パケットを送信すると判断するまで、ステップＳ１００１の処理を繰り返す。なお、パケット送信部１０１は、例えば、情報処理装置１０と情報処理装置２０との間でのＰ２Ｐ通信を開始すると判断されたことをトリガーとして、通知パケットを送信すると判断してもよく、あるいは、他のタイミングで通知パケットを送信すると判断してもよい。
【０２２２】
（ステップＳ１００２）パケット送信部１０１は、パケットをサーバ３０に送信する。
（ステップＳ１００３）プライベート中継情報受信部１０２は、プライベート中継情報を受信したかどうか判断する。そして、プライベート中継情報を受信した場合には、ステップＳ１００４に進み、そうでない場合には、プライベート中継情報を受信するまでステップＳ１００３の処理を繰り返す。
【０２２３】
（ステップＳ１００４）寿命設定部１６は、プライベート中継情報を用いて、バブルパケットの寿命を設定する。この寿命の設定方法は、プライベート中継情報構成部３０５によるプライベート中継情報の構成の箇所において説明したとおりである。
【０２２４】
（ステップＳ１００５）バブルパケット送信部１７は、寿命設定部１６が設定した寿命のバブルパケットを送信する。
（ステップＳ１００６）通信制御部１１は、情報処理装置１０と情報処理装置２０との間でＰ２Ｐ通信を確立するための処理を行う。
（ステップＳ１００７）情報処理装置１０と、情報処理装置２０とは、Ｐ２Ｐ通信を行う。そして、Ｐ２Ｐ通信を行うまでの一連の処理は終了となる。
【０２２５】
図２７は、本実施の形態によるサーバ３０の動作を示すフローチャートである。
（ステップＳ１１０１）受信部３０１は、パケットを受信したかどうか判断する。そして、パケットを受信した場合には、ステップＳ１１０２に進み、そうでない場合には、パケットを受信するまでステップＳ１１０１の処理を繰り返す。
【０２２６】
（ステップＳ１１０２）中継情報取得部３０３は、受信部３０１が受信したパケットに含まれるネットワーク識別情報に対応する中継情報を、グローバル中継情報記憶部３０２が記憶しているグローバル中継情報から取得する。
【０２２７】
（ステップＳ１１０３）寿命取得部３０４は、受信部３０１が受信したパケットから、そのパケットの受信の時点における寿命を取得する。
（ステップＳ１１０４）プライベート中継情報構成部３０５は、中継情報取得部３０３が取得した中継情報と、寿命取得部３０４が取得した寿命とを用いて、プライベート中継情報を構成する。
【０２２８】
（ステップＳ１１０５）出力部３０６は、プライベート中継情報構成部３０５が構成したプライベート中継情報を出力する。そして、ステップＳ１１０１に戻る。
なお、図２７のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【０２２９】
次に、本実施の形態による情報処理システムの動作について、具体例を用いて説明する。この具体例でも、実施の形態１の具体例と同様に、通信処理装置３、４がＲｅｓｔｒｉｃｔｅｄ  Ｃｏｎｅ  ＮＡＴの機能を有するものであるとする。また、中継情報は中継ノードのホップ数であり、寿命はＴＴＬであるとする。また、情報処理装置１０，２０の間のＰ２Ｐ通信を確立するための処理をサーバ３０が行うものとする。また、通信処理装置３、通信処理装置４、サーバ３０の通信回線１００側の各ＩＰアドレスは、サーバ５がサーバ３０となった以外、実施の形態１の具体例と同様であるとする。
【０２３０】
また、グローバル中継情報記憶部３０２では、図２８で示されるグローバル中継情報が記憶されているものとする。図２８で示されるグローバル中継情報において、ネットワーク識別情報は、境界ノードのＷＡＮ側のアドレスである。また、そのネットワーク識別情報に対応付けられて、サーバ３０と境界ノードとの間のホップ数を示す中継情報が保持さ
れている。
【０２３１】
実施の形態１の具体例と同様にして、情報処理装置１０，２０は、それぞれの機器ＩＤと、通信処理装置３，４のアドレスとをサーバに登録する。また、情報処理装置１０は、接続を要求する情報処理装置２０の機器ＩＤをサーバ３０に送信することによって、サーバ３０から通信処理装置４のアドレスと、ポート番号とを受信する。
【０２３２】
次に、情報処理装置１０のパケット送信部１０１は、パケットを送信するタイミングであると判断し（ステップＳ１００１）、ペイロードに何も含まれないパケットをサーバ３０に送信する（ステップＳ１００２）。なお、そのパケットには、寿命としてＴＴＬ＝１００が設定されているものとする。そのパケットは、通信処理装置３を介してサーバ３０に到達し、サーバ３０の受信部３０１で受信される（ステップＳ１１０１）。
【０２３３】
中継情報取得部３０３は、受信部３０１が受信したパケットのヘッダから、送信元ＩＰアドレス、すなわち、通信処理装置３のＷＡＮ側のＩＰアドレス「２０２．１３２．１０．６」をネットワーク識別情報として取得し、図２８で示されるグローバル中継情報を用いて、そのネットワーク識別情報に対応する中継情報「１０」を取得する（ステップＳ１１０２）。この中継情報の示す値「１０」が、サーバ３０と境界ノードとの間のホップ数である。中継情報取得部３０３は、その取得した中継情報「１０」をプライベート中継情報構成部３０５に渡す。
【０２３４】
次に、寿命取得部３０４は、受信部３０１が受信したパケットのヘッダから、ＴＴＬの値を読み出す。そのＴＴＬの値は、「９０」であったとする。寿命取得部３０４は、その取得したパケットの寿命「９０」から「１」を減算した値「８９」を、パケットが受信された時点での、そのパケットの寿命として取得し、プライベート中継情報構成部３０５に渡す。
【０２３５】
プライベート中継情報構成部３０５は、あらかじめ保持しているパケットの寿命の設定値「１００」から、寿命取得部３０４が取得した寿命「８９」を減算し、「１１」を得る。この値「１１」が、通信元の情報処理装置１０とサーバ３０との間のホップ数である。次に、プライベート中継情報構成部３０５は、その値「１１」から、中継情報取得部３０３が取得したサーバ３０と境界ノードとの間のホップ数「１０」を減算して、情報処理装置１０と境界ノードとの間のホップ数「１」を得る。そして、プライベート中継情報構成部３０５は、そのホップ数「１」に「１」を加算した値「２」を、プライベート中継情報として構成し（ステップＳ１１０４）、出力部３０６に渡す。
【０２３６】
出力部３０６は、プライベート中継情報構成部３０５から受け取ったプライベート中継情報「２」をペイロードに含むパケットを情報処理装置１０に送信する（ステップＳ１１０５）。そのパケットは、通信処理装置３を介して情報処理装置１０に到達し、情報処理装置１０のプライベート中継情報受信部１０２で受信される（ステップＳ１００３）。そして、プライベート中継情報受信部１０２は、プライベート中継情報「２」を寿命設定部１６に渡す。
【０２３７】
寿命設定部１６は、バブルパケットの寿命であるＴＴＬを、プライベート中継情報の示す値「２」に設定する（ステップＳ１００４）。その後、バブルパケット送信部１７が、ＴＴＬが２に設定されたバブルパケットを送信し（ステップＳ１００５）、通信元の情報処理装置６と通信先の情報処理装置７との間でＰ２Ｐ通信の確立（ステップＳ１００６）と、Ｐ２Ｐ通信（ステップＳ１００７）とが行われる処理については、実施の形態１の具体例と同様であり、その説明を省略する。
【０２３８】
ここで、グローバル中継情報をグローバル中継情報記憶部３０２に登録する処理について簡単に説明する。例えば、図２９で示されるように、通信処理装置３のＬＡＮ側に情報処理装置１０と、情報処理装置４０とが接続されていたとする。通信回線２００は、ＬＡＮである。情報処理装置４０は、実施の形態２の情報処理装置６と同様に、情報処理装置４０と境界ノードとの間の中継情報を取得することができる機能を有していたとする。そして、情報処理装置４０は、その中継情報を取得し、グローバル中継情報の登録を要求するパケットをサーバ３０に送信する。そのパケットのＴＴＬは１００に設定されているとする。また、そのパケットのペイロードには、情報処理装置４０が取得した中継情報と、ＴＴＬの設定値「１００」とが含まれているものとする。
【０２３９】
サーバ３０は、そのパケットを受信し、その時点でのパケットのＴＴＬの値「９０」から「１」を減算した値「８９」を算出する。そして、ペイロードから読み出したＴＴＬの設定値「１００」から、その値「８９」と、情報処理装置４０が取得した中継情報の示すホップ数（ここでは、「１」であるとする）を減算して、サーバ３０と境界ノードとの間のホップ数「１０」を得る。そして、そのホップ数「１０」を示す中継情報を、情報処理装置４０から送信されたパケットの送信元ＩＰアドレス「２０２．１３２．１０．６」に対応付けてグローバル中継情報記憶部３０２に蓄積する。このようにして蓄積されたのが、図２８の１番目のレコードである。
中継情報が中継時間を示す場合であっても、同様にしてグローバル中継情報の登録を行うことができる。
【０２４０】
なお、ここでは、グローバル中継情報において、サーバ３０と境界ノードとの間のノード間の数を示す中継情報（上記の場合には、ホップ数「１０」を示す中継情報）が保持される場合について説明したが、グローバル中継情報において、サーバ３０と境界ノードとの間の両端のノードを含まない中継ノード数を示す中継情報が保持されるようにしてもよい。その場合には、上述のグローバル中継情報の登録において、サーバ３０は、ＴＴＬの設定値「１００」から、サーバ３０がパケットを受信した時点でのＴＴＬの値「９０」と、そのパケットのペイロードに含まれる、情報処理装置４０が取得した中継情報の示すホップ数「１」とを引いた値「９」を、中継情報とするグローバル中継情報を登録することになる。一方、プライベート中継情報の構成では、寿命取得部３０４は、受信部３０１がパケットを受信した時点でのＴＴＬの値「９０」をパケットの寿命として取得する。また、中継情報取得部３０３は、受信部３０１が受信したパケットに対応する中継情報「９」を取得する。そして、プライベート中継情報構成部３０５が、パケットのＴＴＬの設定値「１００」から、寿命取得部３０４が取得した寿命「９０」と、中継情報取得部３０３が取得した中継情報「９」とを減算し、それに「１」加算することによって、プライベート中継情報「２」を構成してもよい。このようにすることで、プライベート中継情報が構成されるまでの計算を、上記具体例の場合よりも少しだけ簡単にすることができうる。
【０２４１】
以上のように、本実施の形態による情報処理システムによれば、サーバ３０において、グローバル中継情報が保持されているため、情報処理装置１０やサーバ３０等によるホップ数の計数等を行うことなく、通信元の情報処理装置１０と境界ノードとの間のホップ数等を知ることができ、適切な寿命の設定されたバブルパケットの送信を行うことができる。したがって、情報処理装置１０やサーバ３０等がバブルパケットの寿命の設定のためにホップ数を計数する等の処理を行わなくてよいことになり、その処理負担を軽減することができる。
【０２４２】
なお、上記各実施の形態では、通信元の情報処理装置１，６，１０と通信回線１００との間に１個の通信処理装置３が存在する場合について説明したが、その通信処理装置の個数は、２以上であってもよい。また、通信元の情報処理装置１，６，１０と通信回線１００との間に１以上の通信処理装置が存在するかどうかに関わらず、上記各実施の形態で説
明した処理を実行するようにしてもよい。通信元の情報処理装置がＷＡＮに接続されているのか、あるいは、ＬＡＮに接続されているのかを判断することなく、同様の処理を実行すればよいからである。
【０２４３】
また、上記各実施の形態では、通信先の情報処理装置と通信回線１００との間に通信処理装置４が存在する場合について説明したが、その通信処理装置の個数は、２以上であってもよく、通信処理装置が存在しなくてもよい。
【０２４４】
また、上記各実施の形態では、通信処理装置３，４がＲｅｓｔｒｉｃｔｅｄ  Ｃｏｎｅ
ＮＡＴの機能を有するものである場合について説明したが、通信処理装置は、それ以外の種類のＮＡＴであってもよい。なお、通信処理装置におけるポート割り当てルールや、受信フィルタルールに応じて、Ｐ２Ｐ通信を確立するための処理が異なっていてもよいことは言うまでもない。
【０２４５】
また、上記各実施の形態では、通信処理装置３，４がＮＡＴの機能を有するものである場合について説明したが、通信処理装置３，４は、ＮＡＴの機能に代えて、あるいはＮＡＴの機能と共にパケットフィルタリングのファイアウォール（Ｆｉｒｅｗａｌｌ）の機能を有するものであってもよい。ここで、パケットフィルタリングとは、例えば、前述の受信フィルタルールに基づいた受信パケットの選択を行うものである。通信処理装置３が、そのような受信フィルタルールに基づいたファイアウォール機能を有する場合、ローカル側（例えば、情報処理装置１側）からグローバル側（例えば、通信回線１００側）へのバブルパケットの送信によって通信処理装置３に送信履歴を残すことで、バブルパケット送信ポートに送信された返信パケットを受け付けることができるようになる。また、通信処理装置４が受信フィルタルールによって受け付けることができないパケットを受信した場合に、そのパケットの通信元から一切のパケットを受け付けなくなるようなファイアウォールの機能を有する場合であっても、通信先の通信処理装置４に到達しない範囲の寿命がバブルパケットに設定されることによって、通信元の情報処理装置と通信先の情報処理装置との通信を適切に確立することができ得る。
【０２４６】
なお、通信元側あるいは通信先側に、ファイアウォールの機能のみを有する通信処理装置が存在する場合に、その通信処理装置は、ＮＡＴの機能を有する通信処理装置よりもグローバル側に存在してもよい。そのような場合には、そのファイアウォールの機能を有する通信処理装置が、グローバルネットワークとローカルネットワークの間に存在する中継ノードである境界ノードとなりうることになる。この場合には、そのファイアウォールの機能を有する通信処理装置よりもローカル側に存在するＮＡＴの機能を有する通信処理装置のグローバル側のアドレスは、グローバルネットワークのアドレスであるが、そのＮＡＴの機能を有する通信処理装置は、プライベートネットワークに属するものとする。境界ノードよりもローカル側に存在するからである。このように、グローバルネットワークとは、任意のノードがアクセスすることができるノードから構成されるネットワークである。一方、プライベートネットワークは、境界ノードがＮｏフィルタであるような例外的な場合を除き、グローバルネットワークから任意にアクセスすることができないノードから構成されるネットワークである。ただし、プライベートネットワークに属するノードであっても、境界ノードに対しては、グローバルネットワークからアクセスすることができる。
【０２４７】
また、上記各実施の形態では、サーバ５等のノードをアドレスによって特定する場合について説明したが、各ノードをドメイン名（例えば、ｓｅｒｖｅｒ．ｐａｎａ．ｎｅｔなど）によって特定してもよい。この場合には、そのドメイン名がＤＮＳサーバ等を用いてアドレスに変換されることにより、そのノードのアドレスを知ることができる。
また、本実施の形態における通信プロトコルは、例えば、ＩＰｖ４であってもよく、あ
るいは、ＩＰｖ６であってもよい。
【０２４８】
また、上記各実施の形態において、各処理または各機能は、単一の装置または単一のシステムによって集中処理されることによって実現されてもよく、あるいは、複数の装置または複数のシステムによって分散処理されることによって実現されてもよい。
【０２４９】
また、上記各実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをＣＰＵ等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。なお、上記実施の形態におけるサーバを実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、通信先の情報処理装置と、通信元の１以上の通信処理装置を介して、前記通信先の情報処理装置と通信を行う通信元の情報処理装置と、サーバとを備えた情報処理システムにおけるサーバでの処理を実行させるためのプログラムであって、測定パケットを、当該測定パケットの寿命を変化させて前記通信元の情報処理装置に送信することによって、前記通信元の情報処理装置の属するプライベートネットワークの中継ノードであり、グローバルネットワークに接続されている中継ノードである境界ノードと、前記サーバとの間のパケットの中継時間に応じた情報である中継情報を取得する第１の取得ステップと、前記サーバと、前記通信元の情報処理装置との間のパケットの中継時間に応じた情報である中継情報を取得する第２の取得ステップと、前記第１の取得ステップで取得した中継情報と、前記第２の取得ステップで取得した中継情報とを用いて、前記通信元の情報処理装置と、前記境界ノードとの間のパケットの中継時間に関する情報である中継情報を構成する中継情報構成ステップと、を実行させるためのものである。
【０２５０】
また、上記実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、通信先の情報処理装置と、通信元の１以上の通信処理装置を介して、前記通信先の情報処理装置と通信を行う通信元の情報処理装置と、サーバとを備えた情報処理システムにおける通信元の情報処理装置での処理を実行させるためのプログラムであって、通知パケットを前記サーバに送信する通知パケット送信ステップと、前記通信元の情報処理装置と、前記通信元の情報処理装置の属するプライベートネットワークの中継ノードであり、グローバルネットワークに接続されている中継ノードである境界ノードとの間のパケットの中継時間に関する情報である中継情報を受信する中継情報受信ステップと、前記中継情報受信ステップで受信した中継情報を用いて、通信元の通信処理装置に送信履歴を残すために送信されるバブルパケットの寿命を、当該バブルパケットがグローバルネットワークに到達するように設定する寿命設定ステップと、前記寿命設定ステップで設定した寿命を有するバブルパケットを、通信元の１以上の通信処理装置を介して送信するバブルパケット送信ステップと、を実行させるためのものである。
【０２５１】
また、上記実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、通信先の情報処理装置と、通信元の１以上の通信処理装置を介して、前記通信先の情報処理装置と通信を行う通信元の情報処理装置とを備えた情報処理システムにおける通信先の情報処理装置での処理を実行させるためのプログラムであって、前記通信元の情報処理装置に対応するアドレスを受け付けるアドレス受付ステップと、前記アドレス受付ステップで受け付けたアドレスを送信先とする測定パケットを、当該測定パケットの寿命を変化させて送信することによって、前記通信元の情報処理装置と前記通信先の情報処理装置との間のグローバルネットワーク上の通信経路に存在する中継ノードである第１の中継ノードと、前記通信元の情報処理装置と前記通信先の情報処理装置との間の通信経路において、前記第１の中継ノード
よりも前記通信元の情報処理装置側に存在する中継ノードであり、少なくともグローバルネットワークに接続されている中継ノードである第２の中継ノードとの間のパケットの中継時間に関する情報である中継情報を構成する中継情報構成ステップと、前記中継情報構成ステップで構成した中継情報を、所定のサーバを介して前記通信元の情報処理装置に送信する中継情報送信ステップと、を実行させるためのものである。
【０２５２】
また、上記実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、通信先の情報処理装置と、通信元の１以上の通信処理装置を介して、前記通信先の情報処理装置と通信を行う通信元の情報処理装置とを備えた情報処理システムにおける通信元の情報処理装置での処理を実行させるためのプログラムであって、前記通信元の情報処理装置と前記通信先の情報処理装置との間のグローバルネットワーク上の通信経路に存在する中継ノードである第１の中継ノードと、前記通信元の情報処理装置と前記通信先の情報処理装置との間の通信経路において、前記第１の中継ノードよりも前記通信元の情報処理装置側に存在する中継ノードであり、少なくともグローバルネットワークに接続されている中継ノードである第２の中継ノードとの間のパケットの中継時間に関する情報である中継情報を受信する中継情報受信ステップと、前記通信元の情報処理装置と、前記境界ノードとの間のパケットの中継時間に応じた情報である中継情報を取得する中継情報取得ステップと、前記中継情報受信ステップで受信した中継情報から得られる前記第１の中継ノードと前記第２の中継ノードとの間のパケットの中継時間に応じた情報である中継情報と、前記中継情報取得ステップで取得した中継情報とを用いて、通信元の通信処理装置に送信履歴を残すために送信されるバブルパケットの寿命を、当該バブルパケットがグローバルネットワークに到達するように設定する寿命設定ステップと、前記寿命設定ステップで設定した寿命を有するバブルパケットを、通信元の１以上の通信処理装置を介して送信するバブルパケット送信ステップと、を実行させるためのものである。
【０２５３】
また、上記実施の形態におけるサーバを実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、通信先の情報処理装置と、通信元の１以上の通信処理装置を介して、前記通信先の情報処理装置と通信を行う通信元の情報処理装置と、サーバとを備えた情報処理システムにおけるサーバでの処理を実行させるためのプログラムであって、前記通信元の情報処理装置から送信された、あらかじめ定められた寿命の設定されたパケットであり、当該通信元の情報処理装置の属するプライベートネットワークを識別する情報であるネットワーク識別情報を含むパケットを受信する受信ステップと、グローバル中継情報記憶部で記憶されている、プライベートネットワークの中継ノードであり、グローバルネットワークに接続されている中継ノードである境界ノードと前記サーバとの間のパケットの中継時間に応じた情報である中継情報と、前記プライベートネットワークを識別するネットワーク識別情報とを対応付けて有する情報であるグローバル中継情報を用いて、前記受信ステップで受信したパケットに含まれるネットワーク識別情報に対応する中継情報を取得する中継情報取得ステップと、前記受信ステップでパケットを受信した時点における、当該パケットの寿命を取得する寿命取得ステップと、前記中継情報取得ステップで取得した中継情報と、前記寿命取得ステップで取得した寿命とを用いて、前記通信元の情報処理装置と、前記境界ノードとの間のパケットの中継時間に関する情報であるプライベート中継情報を構成するプライベート中継情報構成ステップと、前記プライベート中継情報構成ステップで構成したプライベート中継情報を出力する出力ステップと、を実行させるためのものである。
【０２５４】
また、上記実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、通信先の情報処理装置と、通信元の１以上の通信処理装置を介して、前記通信先の情報処理装置と通信を行う通信元の情報処理装置と、サーバとを備えた情報処理システムにおける通信元の情報処理装
置での処理を実行させるためのプログラムであって、前記サーバに、あらかじめ定められた寿命を設定したパケットを送信するパケット送信ステップと、前記サーバから送信された、前記通信元の情報処理装置と、プライベートネットワークの中継ノードであり、グローバルネットワークに接続されている中継ノードである境界ノードとの間のパケットの中継時間に関する情報であるプライベート中継情報を受信するプライベート中継情報受信ステップと、前記プライベート中継情報受信ステップで受信したプライベート中継情報を用いて、通信元の通信処理装置に送信履歴を残すために送信されるバブルパケットの寿命を、当該バブルパケットがグローバルネットワークに到達するように設定する寿命設定ステップと、前記寿命設定ステップで設定した寿命を有するバブルパケットを、通信元の１以上の通信処理装置を介して送信するバブルパケット送信ステップと、を実行させるためのものである。
【０２５５】
なお、上記プログラムにおいて、情報を送信する送信ステップや、情報を受信する受信ステップなどでは、ハードウェアでしか行われない処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理は少なくとも含まれない。
【０２５６】
また、このプログラムは、サーバなどからダウンロードされることによって実行されてもよく、所定の記録媒体（例えば、ＣＤ−ＲＯＭなどの光ディスクや磁気ディスク、半導体メモリなど）に記録されたプログラムが読み出されることによって実行されてもよい。
【０２５７】
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【０２５８】
以上より、本発明によるサーバや情報処理装置によれば、バブルパケットの寿命の設定で用いる中継情報を適切に構成することができ、その結果、バブルパケットの寿命を適切に設定することができる。したがって、バブルパケットを送信することによって、情報処理装置間における通信を行う情報処理システム等において有用である。
【図面の簡単な説明】
【０２５９】
【図１】本発明の実施の形態１による情報処理システムの構成を示すブロック図
【図２】同実施の形態による情報処理装置の構成を示すブロック図
【図３】同実施の形態によるサーバの構成を示すブロック図
【図４】同実施の形態による情報処理装置の動作を示すフローチャート
【図５】同実施の形態によるサーバの動作を示すフローチャート
【図６】同実施の形態によるサーバの動作を示すフローチャート
【図７】同実施の形態によるサーバの動作を示すフローチャート
【図８】同実施の形態による情報処理装置及びサーバの動作を示すフローチャート
【図９】同実施の形態における具体例について説明するための図
【図１０】同実施の形態における具体例について説明するための図
【図１１】同実施の形態における具体例について説明するための図
【図１２】同実施の形態における具体例について説明するための図
【図１３】同実施の形態における具体例について説明するための図
【図１４】同実施の形態における具体例について説明するための図
【図１５】本発明の実施の形態２による情報処理システムの構成を示すブロック図
【図１６】同実施の形態による情報処理装置の構成を示すブロック図
【図１７】同実施の形態による情報処理装置の構成を示すブロック図
【図１８】同実施の形態による情報処理装置の動作を示すフローチャート
【図１９】同実施の形態による情報処理装置の動作を示すフローチャート
【図２０】同実施の形態による情報処理装置の動作を示すフローチャート
【図２１】同実施の形態による情報処理装置の動作を示すフローチャート
【図２２】同実施の形態におけるトレースルートの結果の一例を示す図
【図２３】本発明の実施の形態３による情報処理システムの構成を示すブロック図
【図２４】同実施の形態による情報処理装置の構成を示すブロック図
【図２５】同実施の形態によるサーバの構成を示すブロック図
【図２６】同実施の形態による情報処理装置の動作を示すフローチャート
【図２７】同実施の形態によるサーバの動作を示すフローチャート
【図２８】同実施の形態におけるグローバル中継情報の一例を示す図
【図２９】同実施の形態におけるグローバル中継情報の登録について説明するための図
【図３０】背景技術について説明するための図
【符号の説明】
【０２６０】
１，２，６，７，１０，２０，４０  情報処理装置
３，４  通信処理装置
５，８，３０  サーバ
１１  通信制御部
１２  通知パケット送信部
１３  パケット受信部
１４  返信パケット送信部
１５  中継情報受信部
１６  寿命設定部
１７  バブルパケット送信部
５１  通知パケット受信部
５２  アドレス取得部
５３  第１の取得部
５４  返信パケット受信部
５５  第２の取得部
５６  中継情報構成部
５７  中継情報送信部
６１  中継情報受信部
６２  中継情報取得部
６３  寿命設定部
７１  通信制御部
７２  アドレス受付部
７３  中継情報構成部
７４  中継情報送信部
１０１  パケット送信部
１０２  プライベート中継情報受信部
３０１  受信部
３０２  グローバル中継情報記憶部
３０３  中継情報取得部
３０４  寿命取得部
３０５  プライベート中継情報構成部
３０６  出力部
【図１】
2007324642.tif 000003
【図２】
2007324642.tif 000004
【図３】
2007324642.tif 000005
【図４】
2007324642.tif 000006
【図５】
2007324642.tif 000007
【図６】
2007324642.tif 000008
【図７】
2007324642.tif 000009
【図８】
2007324642.tif 000010
【図９】
2007324642.tif 000011
【図１０】
2007324642.tif 000012
【図１１】
2007324642.tif 000013
【図１２】
2007324642.tif 000014
【図１３】
2007324642.tif 000015
【図１４】
2007324642.tif 000016
【図１５】
2007324642.tif 000017
【図１６】
2007324642.tif 000018
【図１７】
2007324642.tif 000019
【図１８】
2007324642.tif 000020
【図１９】
2007324642.tif 000021
【図２０】
2007324642.tif 000022
【図２１】
2007324642.tif 000023
【図２２】
2007324642.tif 000024
【図２３】
2007324642.tif 000025
【図２４】
2007324642.tif 000026
【図２５】
2007324642.tif 000027
【図２６】
2007324642.tif 000028
【図２７】
2007324642.tif 000029
【図２８】
2007324642.tif 000030
【図２９】
2007324642.tif 000031
【図３０】
2007324642.tif 000032