(57)【要約】【課題】オーバレイネットワークにおける応答メッセージを、できる限り少ないホップ数で転送することができる経路制御方法等を提供する。【解決手段】送信元ピアノードが、当該送信元ピアノードの送信元識別値と、宛先ピアノードの宛先識別値と、初期化した要求ホップ数とを含む要求メッセージを、ルーティングテーブルに登録された次ピアノードへ送信する。次に、中継ピアノードが、要求メッセージに含まれる要求ホップ数を１増分し、更に転送する。そして、宛先ピアノードが、宛先識別値から送信元識別値までの応答ホップ数を推定し、応答ホップ数が、要求メッセージに含まれる要求ホップ数よりも小さい場合、要求メッセージに対する応答メッセージを、ルーティングテーブルに登録された次ピアノードに送信する。【選択図】図７
2010103787.tif 000002
【特許請求の範囲】
【請求項１】
複数のピアノードによって接続された物理ネットワーク上に、仮想的に構成されたオーバレイネットワークにおける応答メッセージの経路制御方法であって、
各ピアノードは、１ホップで通信可能な識別値を有する次ピアノードを登録したルーティングテーブルを有し、
送信元ピアノードが、当該送信元ピアノードの送信元識別値と、宛先ピアノードの宛先識別値と、初期化した要求ホップ数とを含む要求メッセージを、前記ルーティングテーブルに登録された次ピアノードに送信する第１のステップと、
前記要求メッセージを受信した中継ピアノードが、前記要求メッセージに含まれる前記要求ホップ数を１増分し、該要求メッセージを更に次ピアノードに転送する第２のステップと、
前記要求メッセージを受信した前記宛先ピアノードが、前記宛先識別値から前記送信元識別値までのホップ数である応答ホップ数を推定する第３のステップと、
前記宛先ピアノードが、前記応答ホップ数が、前記要求メッセージに含まれる前記要求ホップ数よりも小さいか否かを判定する第４のステップと、
前記宛先ピアノードは、前記応答ホップ数が前記要求ホップ数よりも小さいと判定された際に、前記要求メッセージに対する応答メッセージを、前記ルーティングテーブルに登録された次ピアノードに送信する第５のステップと
を有することを特徴とする応答メッセージの経路制御方法。
【請求項２】
前記オーバレイネットワークでは、各ピアノードの識別値から、２ｋ（ｋは１以上の整数）毎の識別値を有するピアノードへ、１ホップで通信可能であって、
第３のステップについて、
前記宛先ピアノードは、当該宛先ピアノードの宛先識別値と、送信元ピアノードの送信元識別値との差である距離値を算出し、
ｋを所定最大ホップ乗数から１減分しつつ、前記距離値から２ｋが減算できるか否かを判定し、減算できる場合に前記距離値から２ｋを減算し、減算された前記距離値が１ピアノードの管理する識別値空間である平均識別値空間より小さくなるまで繰り返し、
２ｋを減算することができた数に１を加えた値を、前記応答ホップ数として推定する
ことを特徴とする請求項１に記載の応答メッセージの経路制御方法。
【請求項３】
前記要求メッセージ及び前記応答メッセージは、ＩＥＴＦ(Internet Engineering Task Force)のＲＥＬＯＡＤ(REsource LOcation And Discovery)によって構成されており、
前記要求ホップ数は、前記要求メッセージのヘッダに含まれるVia List Lengthの値、又は、Via Listに登録された識別値数の計数値である
ことを特徴とする請求項１又は２に記載の応答メッセージの経路制御方法。
【請求項４】
複数のピアノードによって接続された物理ネットワーク上に、仮想的に構成されたオーバレイネットワークにおけるピアノードであって、
１ホップで通信可能な識別値を有する次ピアノードを登録したルーティングテーブルと、
送信元ピアノードが、当該送信元ピアノードの送信元識別値と、宛先ピアノードの宛先識別値と、初期化した要求ホップ数とを含む要求メッセージを、前記ルーティングテーブルに登録された次ピアノードに送信する要求メッセージ送信手段と、
前記要求メッセージを受信する要求メッセージ受信手段と、
前記要求メッセージの宛先識別値が当該ピアノードの識別値でない場合、前記要求メッセージに含まれる前記要求ホップ数を１増分し、該要求メッセージを更に次ピアノードに転送する要求メッセージ中継転送手段と、
前記要求メッセージの宛先識別値が当該ピアノードの識別値である場合、前記宛先識別値から前記送信元識別値までのホップ数である応答ホップ数を推定するホップ数推定手段と、
前記応答ホップ数が、前記要求メッセージに含まれる前記要求ホップ数よりも小さいか否かを判定するホップ数判定手段と、
前記応答ホップ数が前記要求ホップ数よりも小さいと判定された際に、前記要求メッセージに対する応答メッセージを、前記ルーティングテーブルに登録された次ピアノードに送信する応答メッセージ送信手段と
を有することを特徴とするピアノード。
【請求項５】
前記オーバレイネットワークでは、各ピアノードの識別値から、２ｋ（ｋは１以上の整数）毎の識別値を有するピアノードへ、１ホップで通信可能であって、
前記ホップ数推定手段は、
当該宛先ピアノードの宛先識別値と、送信元ピアノードの送信元識別値との差である距離値を算出し、
ｋを所定最大ホップ乗数から１減分しつつ、前記距離値から２ｋが減算できるか否かを判定し、減算できる場合に前記距離値から２ｋを減算し、減算された前記距離値が１ピアノードの管理する識別値空間である平均識別値空間より小さくなるまで繰り返し、
２ｋを減算することができた数に１を加えた値を、前記ホップ数として推定する
ことを特徴とする請求項４に記載のピアノード。
【請求項６】
前記要求メッセージ及び前記応答メッセージは、ＩＥＴＦのＲＥＬＯＡＤによって構成されており、
前記要求ホップ数は、前記要求メッセージのヘッダに含まれるVia List Lengthの値、又は、Via Listに登録された識別値数の計数値である
ことを特徴とする請求項４又は５に記載のピアノード。
【請求項７】
複数のピアノードによって接続された物理ネットワーク上に、仮想的に構成されたオーバレイネットワークにおけるピアノードに搭載されたコンピュータを機能させるプログラムであって、
１ホップで通信可能な識別値を有する次ピアノードを登録したルーティングテーブルと、
送信元ピアノードが、当該送信元ピアノードの送信元識別値と、宛先ピアノードの宛先識別値と、初期化した要求ホップ数とを含む要求メッセージを、前記ルーティングテーブルに登録された次ピアノードに送信する要求メッセージ送信手段と、
前記要求メッセージを受信する要求メッセージ送信手段と、
前記要求メッセージの宛先識別値が当該ピアノードの識別値でない場合、前記要求メッセージに含まれる前記要求ホップ数を１増分し、該要求メッセージを更に次ピアノードに転送する要求メッセージ中継転送手段と、
前記要求メッセージの宛先識別値が当該ピアノードの識別値である場合、前記宛先識別値から前記送信元識別値までのホップ数である応答ホップ数を推定するホップ数推定手段と、
前記応答ホップ数が、前記要求メッセージに含まれる前記要求ホップ数よりも小さいか否かを判定するホップ数判定手段と、
前記応答ホップ数が前記要求ホップ数よりも小さいと判定された際に、前記要求メッセージに対する応答メッセージを、前記ルーティングテーブルに登録された次ピアノードに送信する応答メッセージ送信手段と
してコンピュータを機能させることを特徴とするピアノード用のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オーバレイネットワークにおける応答メッセージの経路制御方法、ピアノード及びプログラムに関する。
【背景技術】
【０００２】
図１は、オーバレイネットワークのシステム構成図である。
【０００３】
図１のシステムによれば、複数のピアノード１と、複数の端末（送信元端末２及び宛先端末３）とが、物理ネットワーク４に接続されている。その物理ネットワーク４上には、複数のピアノード１によって仮想的にオーバレイネットワーク５が構成されている。オーバレイネットワークの代表的な例として、Ｐ２Ｐ(Peer to Peer)ネットワークがある。Ｐ２Ｐネットワークは、ＩＰ層を覆い隠して（オーバレイして）、端末間の相互接続を可能とする。図１によれば、端末２及び端末３が、ピアノード１に対するＳＩＰ−ＵＡ(SIP - User Agent)として機能する。オーバレイネットワークは、例えばＰ２ＰＳＩＰ(Peer to Peer - Session Initiation Protocol)によって構築されている。
【０００４】
近年、構造化オーバレイの代表例として、キーワードのハッシュ値に基づいて端末間のデータを分散管理する「分散ハッシュテーブル（ＤＨＴ:Distributed Hash Table）」の技術がある（例えば非特許文献１参照）。Napster又はGunutellaに代表される従来のＰ２Ｐ技術と異なって、「分散ハッシュテーブル」は、ネットワーク全体に分散配置されたデータを高速に検索することができる。ピアノードの頻繁な参加・離脱に対しても、自律分散的にネットワークを再構築することができる。
【０００５】
また、ＩＥＴＦ(Internet Engineering Task Force)によれば、ＳＩＰのシグナリング制御に、Ｐ２Ｐ(Peer-to-Peer)と称される自律分散ネットワークアーキテクチャ技術を融合させた「Ｐ２ＰＳＩＰ」技術を開示している（例えば非特許文献３参照）。Ｐ２ＰＳＩＰによれば、ＳＩＰによるセッション制御機能を、ピアノードに搭載することによって、サーバレスのシステムを実現する。Ｐ２Ｐを用いることにより、ピアノード間で情報の分散管理及び分散制御を実行するために、加入者数の増加に対してもサーバシステムの増強が不要となる。
【０００６】
更に、オーバレイネットワーク構築時やデータ検索時に必要となるメッセージングを規定したＲＥＬＯＡＤ(REsource LOcation And Discovery)がある（例えば非特許文献２参照）。メッセージヘッダのRoute Listによって中継経路を指定することができると共に、Via Listによって中継ピアノードが記録される。また、宛先端末は、Route Listの指定に従って応答メッセージを経路制御する。このように、要求メッセージに対する応答メッセージの転送経路は、要求メッセージの送信元ピアノードによって予め決定されるか、又は、経路制御方式として予め決定される。
【０００７】
更に、オーバレイネットワーク内で診断を実行する技術もある（例えば非特許文献３参照）。この技術によれば、診断を実行する第１の端末が、宛先識別値に向けてEcho要求メッセージを送信し、当該識別値を管理する第２の端末までの中継端末数及び遅延時間を測定する。Echoメッセージにタイムスタンプ情報を付加することで、第１の端末と第２の端末間での片方向／往復遅延の測定をすることができる。また、第２の端末でのプログラムの稼働時間(Uptime)及び空きディスク容量の情報も取得することができる。更に、第２の端末のみがEcho応答メッセージを送信するPingモードに加えて、Echo要求メッセージを中継した全ユーザ端末が、第１の端末に対してEcho応答メッセージを送信するTracerouteモードも規定されている。このモードを用いることによって、ネットワーク内のループの検出やボトルネック箇所を特定し、且つ、Malicious端末を検出することができる。
【０００８】
【非特許文献１】Ion Stoica, Robert Morris, David Karger, M.Frans Kaashoek, and Hari Balakrishnan、”Chord: A Scalable Peer-to-peer LookupService for Internet Applications”、Proc. ACM SIGCOMM'01、San Diego, Sept. 2001、[online]、［平成２０年１０月２４日検索］、インターネット＜ＵＲＬ：http://pdos.csail.mit.edu/papers/chord:sigcomm01/chord_sigcomm.pdf＞
【非特許文献２】IETF Internet Draft: “REsource LOcation AndDiscovery (RELOAD)”、draft-ietf-p2psip-reload-00.txt、[online]、［平成２０年１０月２４日検索］、インターネット＜ＵＲＬ：http://www.ietf.org/internet-drafts/draft-ietf-p2psip-reload-00.txt＞
【非特許文献３】IETF Internet Draft: “Diagnose P2PSIPOverlay Network Failures”, draft-zheng-p2psip-diagnose-02、[online]、［平成２０年１０月２４日検索］、インターネット＜ＵＲＬ：http://tools.ietf.org/id/draft-zheng-p2psip-diagnose-02.txt＞
【発明の開示】
【発明が解決しようとする課題】
【０００９】
オーバレイネットワークによれば、ピアノード数が膨大となった場合、宛先ピアノードまでの中継ピアノード数も膨大となる。そのために、メッセージの転送は、できる限りホップ数を少なくすることが必要となる。
【００１０】
しかしながら、オーバレイネットワークによれば、送信元ピアノードから宛先ピアノードへの識別値距離と、宛先ピアノードから送信元ピアノードへの識別値距離とは異なる。そのために、応答メッセージを転送する識別値距離によっては、応答メッセージを転送する応答ホップ数を、要求メッセージが転送された要求ホップ数よりも少なくすることができる場合もある。
【００１１】
そこで、本発明は、オーバレイネットワークにおける応答メッセージを、できる限り少ないホップ数で転送することができる経路制御方法、ピアノード及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明によれば、複数のピアノードによって接続された物理ネットワーク上に、仮想的に構成されたオーバレイネットワークにおける応答メッセージの経路制御方法であって、
各ピアノードは、１ホップで通信可能な識別値を有する次ピアノードを登録したルーティングテーブルを有し、
送信元ピアノードが、当該送信元ピアノードの送信元識別値と、宛先ピアノードの宛先識別値と、初期化した要求ホップ数とを含む要求メッセージを、ルーティングテーブルに登録された次ピアノードに送信する第１のステップと、
要求メッセージを受信した中継ピアノードが、要求メッセージに含まれる要求ホップ数を１増分し、該要求メッセージを更に次ピアノードに転送する第２のステップと、
要求メッセージを受信した宛先ピアノードが、宛先識別値から送信元識別値までのホップ数である応答ホップ数を推定する第３のステップと、
宛先ピアノードが、応答ホップ数が、要求メッセージに含まれる要求ホップ数よりも小さいか否かを判定する第４のステップと、
宛先ピアノードは、応答ホップ数が要求ホップ数よりも小さいと判定された際に、要求メッセージに対する応答メッセージを、ルーティングテーブルに登録された次ピアノードに送信する第５のステップと
を有することを特徴とする。
【００１３】
本発明の応答メッセージの経路制御方法における他の実施形態によれば、
オーバレイネットワークでは、各ピアノードの識別値から、２ｋ（ｋは１以上の整数）毎の識別値を有するピアノードへ、１ホップで通信可能であって、
第３のステップについて、
宛先ピアノードは、当該宛先ピアノードの宛先識別値と、送信元ピアノードの送信元識別値との差である距離値を算出し、
ｋを所定最大ホップ乗数から１減分しつつ、距離値から２ｋが減算できるか否かを判定し、減算できる場合に距離値から２ｋを減算し、減算された距離値が１ピアノードの管理する識別値空間である平均識別値空間より小さくなるまで繰り返し、
２ｋを減算することができた数に１を加えた値を、応答ホップ数として推定することも好ましい。
【００１４】
本発明の応答メッセージの経路制御方法における他の実施形態によれば、
要求メッセージ及び応答メッセージは、ＩＥＴＦ(Internet Engineering Task Force)のＲＥＬＯＡＤ(REsource LOcation And Discovery)によって構成されており、
要求ホップ数は、要求メッセージのヘッダに含まれるVia List Lengthの値、又は、Via Listに登録された識別値数の計数値であることも好ましい。
【００１５】
本発明によれば、複数のピアノードによって接続された物理ネットワーク上に、仮想的に構成されたオーバレイネットワークにおけるピアノードであって、
１ホップで通信可能な識別値を有する次ピアノードを登録したルーティングテーブルと、
送信元ピアノードが、当該送信元ピアノードの送信元識別値と、宛先ピアノードの宛先識別値と、初期化した要求ホップ数とを含む要求メッセージを、ルーティングテーブルに登録された次ピアノードに送信する要求メッセージ送信手段と、
要求メッセージを受信する要求メッセージ受信手段と、
要求メッセージの宛先識別値が当該ピアノードの識別値でない場合、要求メッセージに含まれる要求ホップ数を１増分し、該要求メッセージを更に次ピアノードに転送する要求メッセージ中継転送手段と、
要求メッセージの宛先識別値が当該ピアノードの識別値である場合、宛先識別値から送信元識別値までのホップ数である応答ホップ数を推定するホップ数推定手段と、
応答ホップ数が、要求メッセージに含まれる要求ホップ数よりも小さいか否かを判定するホップ数判定手段と、
応答ホップ数が要求ホップ数よりも小さいと判定された際に、要求メッセージに対する応答メッセージを、ルーティングテーブルに登録された次ピアノードに送信する応答メッセージ送信手段と
を有することを特徴とする。
【００１６】
本発明のピアノードにおける他の実施形態によれば、
オーバレイネットワークでは、各ピアノードの識別値から、２ｋ（ｋは１以上の整数）毎の識別値を有するピアノードへ、１ホップで通信可能であって、
ホップ数推定手段は、
当該宛先ピアノードの宛先識別値と、送信元ピアノードの送信元識別値との差である距離値を算出し、
ｋを所定最大ホップ乗数から１減分しつつ、距離値から２ｋが減算できるか否かを判定し、減算できる場合に距離値から２ｋを減算し、減算された距離値が１ピアノードの管理する識別値空間である平均識別値空間より小さくなるまで繰り返し、
２ｋを減算することができた数に１を加えた値を、ホップ数として推定することも好ましい。
【００１７】
本発明のピアノードにおける他の実施形態によれば、
要求メッセージ及び応答メッセージは、ＩＥＴＦのＲＥＬＯＡＤによって構成されており、
要求ホップ数は、要求メッセージのヘッダに含まれるVia List Lengthの値、又は、Via Listに登録された識別値数の計数値であることも好ましい。
【００１８】
本発明によれば、複数のピアノードによって接続された物理ネットワーク上に、仮想的に構成されたオーバレイネットワークにおけるピアノードに搭載されたコンピュータを機能させるプログラムであって、
１ホップで通信可能な識別値を有する次ピアノードを登録したルーティングテーブルと、
送信元ピアノードが、当該送信元ピアノードの送信元識別値と、宛先ピアノードの宛先識別値と、初期化した要求ホップ数とを含む要求メッセージを、ルーティングテーブルに登録された次ピアノードに送信する要求メッセージ送信手段と、
要求メッセージを受信する要求メッセージ送信手段と、
要求メッセージの宛先識別値が当該ピアノードの識別値でない場合、要求メッセージに含まれる要求ホップ数を１増分し、該要求メッセージを更に次ピアノードに転送する要求メッセージ中継転送手段と、
要求メッセージの宛先識別値が当該ピアノードの識別値である場合、宛先識別値から送信元識別値までのホップ数である応答ホップ数を推定するホップ数推定手段と、
応答ホップ数が、要求メッセージに含まれる要求ホップ数よりも小さいか否かを判定するホップ数判定手段と、
応答ホップ数が要求ホップ数よりも小さいと判定された際に、要求メッセージに対する応答メッセージを、ルーティングテーブルに登録された次ピアノードに送信する応答メッセージ送信手段と
してコンピュータを機能させることを特徴とする。
【発明の効果】
【００１９】
本発明における応答メッセージの経路制御方法、ピアノード及びプログラムによれば、オーバレイネットワークにおける応答メッセージを、できる限り少ないホップ数で転送することができる。
【発明を実施するための最良の形態】
【００２０】
以下では、図面を用いて、本発明を実施するための最良の形態について詳細に説明する。
【００２１】
図２は、本発明におけるオーバレイネットワークのシステム構成図である。
【００２２】
図２によれば、送信元ピアノードから宛先ピアノードへの要求メッセージの経路(N8->N42->N51->N54)と、宛先ピアノードから送信元ピアノードへの応答メッセージの経路(N54->N6->N8)とが、異なっている。本発明によれば、応答メッセージの経路における中継ピアノードのホップ数を、要求メッセージにおける中継ピアノードのホップ数以下にすることができる。
【００２３】
経路制御のRecursive方式について、応答メッセージの経路制御は、以下の２つに区分される。本発明によれば、応答メッセージを、以下のいずれの経路制御で返信するかを判定する。
「対称型(Symmetric)」：要求メッセージが中継転送されてきた経路を戻るように、応答メッセージを経路制御する。
「非対称型(Asymmetric)」：要求メッセージが中継転送されてきた経路とは別の経路、即ち、ルーティングテーブルに登録された次ピアノードへ、応答メッセージを経路制御する。
【００２４】
本発明によれば、要求メッセージを受信した宛先ピアノードが、ルーティングテーブルに従って応答メッセージを中継転送した場合の応答ホップ数を推定する。そして、応答ホップ数が、要求メッセージが中継転送されてきた要求ホップ数よりも少ない場合、応答メッセージは「非対称型」によって送信される。一方で、応答ホップ数が、要求ホップ数よりも多い場合、応答メッセージは「対称型」によって送信される。
【００２５】
「要求ホップ数」とは、各ピアノードのルーティングテーブルに従って、要求メッセージが応答ピアノードに到達するまでのホップ数をいう。「応答ホップ数」とは、各ピアノードのルーティングテーブルに従って、応答メッセージが要求ピアノードに到達するまでの推定ホップ数をいう。
【００２６】
図３は、本発明で用いる構造化オーバレイの説明図である。
【００２７】
分散ハッシュテーブル(ＤＨＴ:Distributed Hash Table)を用いた代表的な構造化オーバレイの技術として、Ｃｈｏｒｄがある。Ｃｈｏｒｄは、時計回りに識別値が増加していく、リング状（環状）の識別値（ハッシュ）空間を考える。識別値は、ＳＨＡ１ハッシュ関数の値である。ピアノードは、例えばＩＰアドレス及びポート番号を連結した値を入力としてハッシュ関数から得られた値を、ノード識別値として決定する。分散ハッシュテーブルの特徴の１つに、拡張性（スケーラビティ）がある。データを検索する際に中継するピアノード数は、ピアノード総数のログオーダに抑えられるため、ピアノード数が増加した場合であっても効率的な検索が可能となる。
【００２８】
ここで、「サクセッサリスト」及び「フィンガーテーブル」が用いられる。「サクセッサリスト」とは、識別値空間上で隣接する複数のピアノードの情報を保持する。従って、当該ピアノードの識別値ｋを与えたとき、時計回りに辿って、最初に存在するピアノードを得られる。
【００２９】
「フィンガーテーブル」には、ルーティングテーブルが保持される。フィンガーテーブルは、当該ピアノードの識別値（例えばＮ８）に、２のｋ乗（１，２，４，８，１６・・・）を加算した数ｘと、その数ｘを入力としたサクセッサ（ｘ）のピアノードの識別値とを記憶する。
【００３０】
図３は、６ビットのハッシュ識別値空間の例であり、フィンガーテーブルの行数は６個となる（例えば、１６０ビットのハッシュ識別値空間の場合、フィンガーテーブルの行数は１６０個）。以下では、送信元端末２が接続される送信元ピアノードの送信元識別値は、例えばＮ８であり、宛先端末３が接続される宛先ピアノードの宛先識別値は、例えばＮ５４であるとする。
【００３１】
（ホップ１）送信元ピアノードＮ８は、宛先ピアノードＮ５４へ、RELOADの要求メッセージを送信する。要求メッセージのRoute Listには、宛先ピアノードの宛先識別値Ｎ５４が設定され、Via List Length（要求ホップ数）が初期値０に設定される。また、フィンガーテーブルを参照し、Ｎ５４から反時計回りに最も近い、８＋２６（３２）＝４０、即ち、ピアノードが存在するＮ４２を検索する。そして、Ｎ８は、要求メッセージをＮ４２へ転送する。
【００３２】
（ホップ２）Ｎ４２は、Ｎ８から受信した要求メッセージの宛先識別値が、自ピアノード宛であるか否かを判定する。ここで、宛先識別値はＮ５４であるので、自ピアノード宛の要求メッセージではない。そして、要求メッセージのヘッダ内のVia Listに、送信元ピアノードの送信元識別値を登録し、Via List Length（要求ホップ数）を１増分する。また、フィンガーテーブルを参照し、Ｎ５４から反時計回りに最も近い数、４２＋２４（８）＝５０、即ち、ピアノードが存在するＮ５１を検索する。そして、Ｎ４２は、要求メッセージをＮ５１へ転送する。
【００３３】
（ホップ３）Ｎ５１は、Ｎ４２から受信した要求メッセージの宛先識別値が、自ピアノード宛であるか否かを判定する。ここで、宛先識別値はＮ５４であるので、自ピアノード宛の要求メッセージではない。そして、要求メッセージのヘッダ内のVia Listに、送信元ピアノードの送信元識別値を登録し、Via List Length（要求ホップ数）を１増分する。また、フィンガーテーブルを参照し、Ｎ５１から反時計回りに最も近い、５１＋２１（２）＝５３、即ち、ピアノードが存在するＮ５４を検索する。そして、Ｎ５１は、要求メッセージをＮ５４へ転送する。
【００３４】
尚、要求メッセージのVia List Lengthから、要求ホップ数を取得しているが、Via
Listに登録された識別値数を計数することによって、要求ホップ数を取得するものであってもよい。
【００３５】
Ｎ５４は、Ｎ５１から受信した要求メッセージの宛先識別値が、自ピアノード宛であるか否かを判定する。ここで、宛先識別値はＮ５４であるので、自ピアノード宛の要求メッセージである。そして、要求メッセージのヘッダ内のVia List Length（要求ホップ数）を１増分することによって、その要求メッセージにおける中継ピアノード数である要求ホップ数を取得する。
【００３６】
次に、要求メッセージを受信した宛先ピアノードＮ５４は、ルーティングテーブルに登録された次ピアノードを介して、送信元識別値Ｎ８までの応答ホップ数を推定する。
【００３７】
図４は、応答ホップ数を推定するプログラムである。
【００３８】
Ｃｈｏｒｄのオーバレイネットワークでは、送信元ピアノードのアドレスから導出される送信元識別値から、２ｋ（ｋは１以上の整数）毎の識別値を有するピアノードへ、１ホップで通信可能である。
interval：ピアノードが管理する識別値空間、あるいはサクセッサリストに含まれるハッシュ空間を、サクセッサ数で除算した１ピアノードが管理する識別値空間
distance：送信元ピアノードのアドレスから導出される送信元識別値と、宛先ピアノードのアドレスから導出される宛先識別値との差である距離値
hop：推定されたホップ数（初期値１）
bit_num：最大ホップ乗数（リング状識別値空間を表すビット数）
【００３９】
距離値distanceが平均識別値空間よりも大きい場合に、以下のステップが繰り返される。
（１）ｋを所定最大ホップ乗数から１減分する。
（２）距離値distanceから２ｋが減算できるか否か、即ち、距離値distanceが２ｋよりも大きいか否かを判定する。
減算できる場合に、ホップ数を増分する。
距離値から２ｋを減算する。
（３）距離値distanceが平均識別値空間よりも小さくなった場合、処理を終了する。
【００４０】
平均識別値空間を、ピアノード間で相互に交換されてもよい。これによって、自ピアノードにおける平均識別値空間と、他ピアノードにおける平均識別値空間とを、例えば平均することによって、自ピアノードにおける平均識別値空間を算出することができる。単一のピアノードにおける平均識別値空間では、オーバレイネットワーク全体から見て誤差を生じる場合があるからである。
【００４１】
図５は、図３に対応して、図４のプログラムの各ステップを説明したプログラムステップである。
【００４２】
図５によれば、Ｎ５４からＮ８に、応答メッセージを送信した場合におけるホップ数を推定する。
（ホップ１）Ｎ５４のフィンガーテーブルによれば、Ｎ５４から反時計回りに最も近い数は５４＋２４（１６）の７０（６４＋６＝７０：７０−６４＝６）である。ここで、ピアノードＮ６が存在すると仮定する。
（ホップ２）Ｎ６のフィンガーテーブルによれば、Ｎ５４から反時計回りに最も近い数は６＋２１（２）＝８である。ここで、送信元ピアノードＮ８と一致するので、応答ポップ数は「２」であると推定される。
【００４３】
そして、宛先ピアノードは、応答ホップ数が、要求メッセージに含まれる要求ホップ数よりも小さいか否かを判定する。
【００４４】
図６は、応答メッセージを、要求メッセージの経路の逆方向に送信した説明図である。
【００４５】
宛先ピアノードは、応答ホップ数が要求ホップ数以上であると判定した際に、要求メッセージが中継転送されてきた経路の逆方向に、応答メッセージを送信する（対称型）。応答メッセージは、要求メッセージのVia Listに登録された中継経路の逆順を、レスポンスのRoute Listに指定することによって、要求メッセージとは逆の経路に送信される。
【００４６】
図７は、応答メッセージを、ルーティングテーブルに従って送信した説明図である。
【００４７】
宛先ピアノードは、応答ホップ数が要求ホップ数よりも小さいと判定された際に、要求メッセージに対する応答メッセージを、ルーティングテーブルに登録された次ピアノードへ送信する（非対称型）。具体的には、宛先ピアノードは、送信元識別値Ｎ８のみをRoute Listに設定した応答メッセージを送信する。従って、Route Listによって中継経路を指定しない。
【００４８】
図８は、本発明におけるピアノードの機能構成図である。
【００４９】
図８によれば、ピアノード１は、ルーティングテーブル１０１と、要求メッセージ送信部１０２と、要求メッセージ受信部１０３と、要求メッセージ中継転送部１０４と、ホップ数推定部１０５と、ホップ数判定部１０６と、応答メッセージ送信部１０７とを有する。これら機能構成部は、ピアノードに搭載されたコンピュータを機能させるプログラムを実行することによって実現される。
【００５０】
ルーティングテーブル１０１は、１ホップで通信可能な識別値を有する次ピアノードを登録する。Ｃｈｏｒｄの場合におけるフィンガーテーブルである。オーバレイネットワークでは、送信元ピアノードの送信元識別値から、２ｋ（ｋは１以上の整数）毎の識別値を有するピアノードへ、１ホップで通信可能である。
【００５１】
要求メッセージ送信部１０２は、送信元ピアノードが、当該送信元ピアノードの送信元識別値と、宛先ピアノードの宛先識別値と、初期化した要求ホップ数とを含む要求メッセージを、ルーティングテーブル１０１に登録された次ピアノードへ送信する。
【００５２】
要求メッセージ受信部１０３は、要求メッセージを受信する。要求メッセージの宛先識別値が当該ピアノードの識別値でない場合、要求メッセージは、要求メッセージ中継転送部１０４へ出力される。一方で、要求メッセージの宛先識別値が当該ピアノードの識別値である場合、要求メッセージは、ホップ数推定部１０５へ出力される。
【００５３】
要求メッセージ中継転送部１０４は、要求メッセージに含まれる要求ホップ数を１増分し、その要求メッセージを、ルーティングテーブル１０１に登録された次ピアノードへ更に転送する。
【００５４】
ホップ数推定部１０５は、宛先識別値から送信元識別値までの応答ホップ数を推定する。最初に、宛先ピアノードの宛先識別値と、送信元ピアノードの送信元識別値との差である距離値を算出する。次に、ｋを所定最大ホップ乗数から１減分しつつ、距離値から２ｋが減算できるか否かを判定し、減算できる場合に距離値から２ｋを減算し、減算された距離値が１ピアノードの管理する識別値空間である平均識別値空間より小さくなるまで繰り返す。そして、２ｋを減算することができた数に１を加えた値を、ホップ数として推定する。推定された応答ホップ数は、ホップ数判定部１０６へ出力される。
【００５５】
ホップ数判定部１０６は、応答ホップ数が、要求メッセージに含まれる要求ホップ数よりも小さいか否かを判定する。
【００５６】
応答メッセージ送信部１０７は、応答ホップ数が要求ホップ数よりも小さいと判定された際に、要求メッセージに対する応答メッセージを、ルーティングテーブルに登録された次ピアノードへ送信する。
【００５７】
以上、詳細に説明したように、本発明の応答メッセージの経路制御方法、ピアノード及びプログラムによれば、オーバレイネットワークにおける応答メッセージを、できる限り少ないホップ数で転送することができる。
【００５８】
前述した本発明の種々の実施形態において、本発明の技術思想及び見地の範囲の種々の変更、修正及び省略は、当業者によれば容易に行うことができる。前述の説明はあくまで例であって、何ら制約しようとするものではない。本発明は、特許請求の範囲及びその均等物として限定するものにのみ制約される。
【図面の簡単な説明】
【００５９】
【図１】オーバレイネットワークのシステム構成図である。
【図２】本発明におけるオーバレイネットワークのシステム構成図である。
【図３】Ｃｈｏｒｄを用いた構造化オーバレイの説明図である。
【図４】応答ホップ数を推定するプログラムである。
【図５】図３に対応して、図４のプログラムの各ステップを説明したプログラムステップである。
【図６】応答メッセージを、要求メッセージの経路の逆方向に送信した説明図である。
【図７】応答メッセージを、ルーティングテーブルに従って送信した説明図である。
【図８】本発明におけるピアノードの機能構成図である。
【符号の説明】
【００６０】
１  ピアノード
１０１  ルーティングテーブル
１０２  要求メッセージ送信部
１０３  要求メッセージ受信部
１０４  要求メッセージ中継転送部
１０５  ホップ数推定部
１０６  ホップ数判定部
１０７  応答メッセージ送信部
２  送信元端末
３  宛先端末
４  物理ネットワーク
５  オーバレイネットワーク
【図１】
2010103787.tif 000003
【図２】
2010103787.tif 000004
【図３】
2010103787.tif 000005
【図４】
2010103787.tif 000006
【図５】
2010103787.tif 000007
【図６】
2010103787.tif 000008
【図７】
2010103787.tif 000009
【図８】
2010103787.tif 000010