JP2006246225A - P2pネットワークシステムにおける分散ハッシュ管理方法および装置 - Google Patents
P2pネットワークシステムにおける分散ハッシュ管理方法および装置 Download PDFInfo
- Publication number
- JP2006246225A JP2006246225A JP2005061244A JP2005061244A JP2006246225A JP 2006246225 A JP2006246225 A JP 2006246225A JP 2005061244 A JP2005061244 A JP 2005061244A JP 2005061244 A JP2005061244 A JP 2005061244A JP 2006246225 A JP2006246225 A JP 2006246225A
- Authority
- JP
- Japan
- Prior art keywords
- peer
- key
- address
- registration request
- peers
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Small-Scale Networks (AREA)
Abstract
【課題】 ネットワーク分割が生じた際にも必要な情報を維持管理する。
【解決手段】 P2Pネットワーク内に分散配置されたそれぞれのピアが分散ハッシュ表を管理する場合に、ピアとの接続を監視するアダプタ820(手段)を新設し、(1)アダプタ820がピアとの切断を検知したときにクライアントに対して切断を通知し、通知を受けたクライアントが再登録を行う、(2)ピアに切断を通知し、通知を受けたピアが再登録を行う、(3)アダプタ自身が再登録を行う、のいずれか一つを実行することで、ネットワーク分割が生じた場合にも分割後のネットワークで構成される分散ハッシュ表により必要な情報を維持管理する。
【選択図】 図1
【解決手段】 P2Pネットワーク内に分散配置されたそれぞれのピアが分散ハッシュ表を管理する場合に、ピアとの接続を監視するアダプタ820(手段)を新設し、(1)アダプタ820がピアとの切断を検知したときにクライアントに対して切断を通知し、通知を受けたクライアントが再登録を行う、(2)ピアに切断を通知し、通知を受けたピアが再登録を行う、(3)アダプタ自身が再登録を行う、のいずれか一つを実行することで、ネットワーク分割が生じた場合にも分割後のネットワークで構成される分散ハッシュ表により必要な情報を維持管理する。
【選択図】 図1
Description
本発明は、複数の端末がネットワークを介して接続され、前記それぞれの端末上で動作する複数のピアがハッシュ表の一部を保持して管理し、ピア同士が互いに通信してハッシュ表の全体管理を行う、P2Pネットワークシステムにおける分散ハッシュ管理方法および装置に関する。
P2P(Pear to Pear)ネットワークシステムでは分散ハッシュ表を用いてネットワークのルーティングを高速に実現することが行われている。
ネットワークトポロジが変化した場合でも上記した分散ハッシュ表を用いた検索を可能とする提案がなされている(例えば、非特許文献1参照)。具体的に、あるキーに対応するピアがネットワークから離脱したと仮定した場合、そのキーに対応するピアが、離脱すると仮定したピアが保持しているハッシュ表の複製を保持することで、任意のピアがネットワークから離脱した際にも分散ハッシュでの検索が可能となる。
「Robert Morris他著、Distributed Data Storage for P2P and Ad-hoc Networks、NTT Technical Review Vol.1 No.6、pp.29-36、2003年9月」
ネットワークトポロジが変化した場合でも上記した分散ハッシュ表を用いた検索を可能とする提案がなされている(例えば、非特許文献1参照)。具体的に、あるキーに対応するピアがネットワークから離脱したと仮定した場合、そのキーに対応するピアが、離脱すると仮定したピアが保持しているハッシュ表の複製を保持することで、任意のピアがネットワークから離脱した際にも分散ハッシュでの検索が可能となる。
「Robert Morris他著、Distributed Data Storage for P2P and Ad-hoc Networks、NTT Technical Review Vol.1 No.6、pp.29-36、2003年9月」
上記した非特許文献1には、あるキーに対するピア(node)を、「各ピアのアドレスにハッシュ関数を適応したハッシュ値がキーのハッシュ値よりも大きい中で最も小さいピア」として、あるキーと値の組の複製をそのキーのハッシュ値よりも大きいハッシュ値を持ついくつかのピアに持たせる方式が開示されている。
これにより、あるピアがネットワークから離脱した場合に、あるキーに対応する値を検索する場合には、そのピアが存在しない状態でそのキーに対応することになるピアが、そのキーと値との組の複製を保持しているため、検索を実行することが可能となる。
これにより、あるピアがネットワークから離脱した場合に、あるキーに対応する値を検索する場合には、そのピアが存在しない状態でそのキーに対応することになるピアが、そのキーと値との組の複製を保持しているため、検索を実行することが可能となる。
例えば、図8に示すP2Pネットワーク1を考える。P2Pネットワーク1では、端末10〜80が無線リンクで接続されており、互いに通信が可能である。各端末10〜80上では、分散ハッシュ表を管理するオブジェクトであるピアと、分散ハッシュ表のクライアントであるアプリケーションとが動作している。具体的に、図9に示されるように、端末10では、ピア110とアプリケーション510が動作してものとする。また、各端末10〜80上のピアはP2Pネットワーク1を通して互いに通信可能である。
なお、端末10〜80では、それぞれ、ピア110〜180(図示せず)、およびアプリケーション510〜580(図示せず)が動作しているものとする。
なお、端末10〜80では、それぞれ、ピア110〜180(図示せず)、およびアプリケーション510〜580(図示せず)が動作しているものとする。
ここで、P2Pネットワーク1上において図10に示すようなChordリング100を用いて分散ハッシュ表を管理することを考える。Chordリング100の円周は0〜255までの値に対応している。今、ピア110〜180のアドレスにハッシュ関数Hを適応した結果の値が、それぞれ、0、32、64、96、128、160、192、224だったとする。
ここで、ピアのアドレスとはそのピアが存在する端末のIPアドレスとメッセージを待ち受けるポート番号の組などで表せる。この時、ピア110は、225〜255、および0に対応するハッシュ値に対して、ピア120は、1〜32に対応するハッシュ値に対して、ピア130は、33〜64に対応するハッシュ値に対して、ピア140は、65〜96に対応するハッシュ値に対して、ピア150は、97〜128に対応するハッシュ値に対して、ピア160は、129〜160に対応するハッシュ値に対して、ピア170は、161〜192に対応するハッシュ値に対して、ピア180は、193〜224に対応するハッシュ値に対して、それぞれ責任を持つことになる。図11は、この時の各ピアの関係をChordリング上で表現したものである。例えば、ピア170は、区間190に対応するハッシュ値に対して責任を持つ。
ここで、ピアのアドレスとはそのピアが存在する端末のIPアドレスとメッセージを待ち受けるポート番号の組などで表せる。この時、ピア110は、225〜255、および0に対応するハッシュ値に対して、ピア120は、1〜32に対応するハッシュ値に対して、ピア130は、33〜64に対応するハッシュ値に対して、ピア140は、65〜96に対応するハッシュ値に対して、ピア150は、97〜128に対応するハッシュ値に対して、ピア160は、129〜160に対応するハッシュ値に対して、ピア170は、161〜192に対応するハッシュ値に対して、ピア180は、193〜224に対応するハッシュ値に対して、それぞれ責任を持つことになる。図11は、この時の各ピアの関係をChordリング上で表現したものである。例えば、ピア170は、区間190に対応するハッシュ値に対して責任を持つ。
図12は、ピア170が保持する情報を表した図である。図12において、ピア170は、ハッシュ関数Hを適用した値が区間190に入るキーとそれに対する値の組を保存したハッシュ表270、Chordリング上で自身の次に来るピア180のアドレスとそのハッシュ値、自身のアドレスのハッシュ値に28を法として、Chordリングのサイズの1/2および1/4上である27および26を加算した値に責任を持つピアである、ピア130およびピア110のアドレスとそのハッシュ値を保存したフィンガーテーブル670、Chordリング上で自身の直前のピアであるピア160のアドレスとそのハッシュ値とそれが保持するハッシュ表であるハッシュ表260の複製、とを保持する。
なお、他のピアも同様に関連するハッシュ表、先行ピアのアドレス、フィンガーテーブル、直前ピアのアドレスとハッシュ表の複製を保持する。例えばハッシュ表270の複製はピア180が保持する。
なお、他のピアも同様に関連するハッシュ表、先行ピアのアドレス、フィンガーテーブル、直前ピアのアドレスとハッシュ表の複製を保持する。例えばハッシュ表270の複製はピア180が保持する。
次に、登録処理の様子を説明する。アプリケーション570がキーKに対する値Vを登録する場合、端末70上のピア170にKとVの登録を依頼する。ピア170はキーKにハッシュ関数Hを適用したH(V)を計算する。ここではH(V)=28だったと仮定する。
ピア170は、自身が責任を持つ区間190および先行ピアであるピア180が責任を持つ193〜224に28が入らないため、28を法として28を超えない中で自身がアドレスを保持する最大のハッシュ値に対するアドレスを持つピアに登録要求を転送する。ここではハッシュ値0となるピア110が該当する。登録要求を受けたピア110は、やはり白身が責任を持つ225〜255、および0には28が入らないが、先行ピアであるピア120が責任を持つ1〜32に28が入るため、ピア120に登録要求を転送する。ピア120は、自身が保持するハッシュ表にKとVの組を登録する。
ピア170は、自身が責任を持つ区間190および先行ピアであるピア180が責任を持つ193〜224に28が入らないため、28を法として28を超えない中で自身がアドレスを保持する最大のハッシュ値に対するアドレスを持つピアに登録要求を転送する。ここではハッシュ値0となるピア110が該当する。登録要求を受けたピア110は、やはり白身が責任を持つ225〜255、および0には28が入らないが、先行ピアであるピア120が責任を持つ1〜32に28が入るため、ピア120に登録要求を転送する。ピア120は、自身が保持するハッシュ表にKとVの組を登録する。
検索の場合はアプリケーションがピアにキーを提示し、ピアは登録の場合と同様にそのキーに責任を持つピアに検索要求を転送していく。
ここで、各ピアはChordリング上で自身の直前のピアとの接続性を確認する。接続性の確認は、例えば定期的にパケットを送って、応答が返るかどうかで判断すれば良い。例えば、端末60がP2Pネットワーク1から離脱して図13に示すP2Pネットワーク2のようになった場合、Chordリング100は、図14に示すChordリング105になり、ピア170は区間290である、129〜192に責任を持つようになる。この区間のハッシュ表は、ハッシュ表270と、ハッシュ表260の複製から構築することが出来る。
ここで、各ピアはChordリング上で自身の直前のピアとの接続性を確認する。接続性の確認は、例えば定期的にパケットを送って、応答が返るかどうかで判断すれば良い。例えば、端末60がP2Pネットワーク1から離脱して図13に示すP2Pネットワーク2のようになった場合、Chordリング100は、図14に示すChordリング105になり、ピア170は区間290である、129〜192に責任を持つようになる。この区間のハッシュ表は、ハッシュ表270と、ハッシュ表260の複製から構築することが出来る。
上記したように、従来の分散ハッシュ管理方式では、一つあるいは複数の端末の離脱のみを考慮し、残った端未聞で離脱前と同様の情報を管理できるようにしていたため、ネットワークが分割して二つのサブネットワークに分かれた際に、両者のサブネットワークで必要な情報を離脱前と同様に管理することができないといった不都合があった。
上記した不都合について図を参照しながら説明する。図8で示したP2Pネットワーク1において、端末20ではピア120とアプリケーション520とオブジェクト700とオブジェクト710が動作している。ここで、アプリケーション520がオブジェクト700とオブジェクト710のIDをキーとして、それらのアドレスを値として登録する場合を考える。
オブジェクト700のIDのハッシュ値は180、オブジェクト710のIDのハッシュ値は200とすれば、最終的にオブジェクト700のIDとアドレス情報はピア170に、オブジェクト710のIDとアドレス情報はピア180にそれぞれ登録される。
オブジェクト700のIDのハッシュ値は180、オブジェクト710のIDのハッシュ値は200とすれば、最終的にオブジェクト700のIDとアドレス情報はピア170に、オブジェクト710のIDとアドレス情報はピア180にそれぞれ登録される。
図16は、P2Pネットワーク1において、端末40と端末50の間のリンクが切断され、ネットワーク3とネットワーク4に分割された様子を示している。この時、それぞれのネットワークでは、図17に示されるようなChordリング300とChordリング400が構成される。
ここで、例えばピア180が保持するハッシュ表は、ピア110が複製を持つため、どちらのネットワークでも維持管理することが可能である。例えば、端末10〜40上のアプリケーションは、上記したオブジェクト710のIDからアドレスを解決してオブジェクト710と通信することが可能である。
一方、ピア170が保持するハッシュ表の複製はピア180しか持っていないため、P2Pネットワーク3で構成されるChordリング300では維持管理することができない。例えば、端末10〜40上のアプリケーションは、上記したオブジェクト700のIDからアドレスを解決することができず、オブジェクト700と通信することができない。
ここで、例えばピア180が保持するハッシュ表は、ピア110が複製を持つため、どちらのネットワークでも維持管理することが可能である。例えば、端末10〜40上のアプリケーションは、上記したオブジェクト710のIDからアドレスを解決してオブジェクト710と通信することが可能である。
一方、ピア170が保持するハッシュ表の複製はピア180しか持っていないため、P2Pネットワーク3で構成されるChordリング300では維持管理することができない。例えば、端末10〜40上のアプリケーションは、上記したオブジェクト700のIDからアドレスを解決することができず、オブジェクト700と通信することができない。
本発明は、上記事情に基づいてなされたものであり、登録元に近いオブジェクトが登録先との接続を監視し、切断を検知したときに再登録を行うことにより、ネットワーク分割が生じた際にも必要な情報を維持管理することのできる、P2Pネットワークシステムにおける分散ハッシュ管理方法および装置を提供することを目的とする。
上記した課題を解決するために本発明は、複数の端末がネットワークを介して接続され、前記それぞれの端末上で動作する第1と第2のピアを含む複数のピアがハッシュ表の一部を保持して管理し、前記ピアが互いに通信して前記ハッシュ表の全体管理を行うと共に、前記ピアのそれぞれが、全てのピアで共通に保持するハッシュ関数と、前記ピアのそれぞれが担当するキーと、前記キーに対する値の組とを保持するハッシュ表と、任意のピアヘメッセージを送信するために必要な他のピアのアドレスとを保持して成る、P2Pネットワークシステムにおける分散ハッシュ表管理方法であって、前記端末上で動作するクライアントが、あるキーと値の組を記憶し、前記クライアントと同一、もしくは他の端末上で動作する第1のピアに対して、前記キーと前記値と前記クライアントと同一の端末上で動作するアダプタのアドレスとを含む登録要求を送信するステップと、前記登録要求を受信した第1のピアが、前記キーにハッシュ関数演算を実行して得られるハッシュ値に対応する第2のピアを決定し、前記決定された第2のピアに対し、前記キーと前記値と前記アダプタのアドレスと前記クライアントのアドレスとを含む登録要求を転送するステップと、前記登録要求を転送された第2のピアが、自身で保持するハッシュ表に前記登録要求に含まれるキーと値の組を追加し、前記登録要求に含まれる前記アダプタのアドレスに対して、前記第2のピア自身のアドレスと前記登録要求に含まれる前記クライアントのアドレスと前記キーとを含む登録先通知を送信するステップと、前記登録先通知を受信した前記アダプタが、前記登録先通知に含まれる前記第2のピアのアドレスと前記クライアントのアドレスと前記キーとを記憶し、前記第2のピアに対して接続確認を行い、切断を検知した場合、前記クライアントに対して前記キーを含む切断通知を送信するステップと、前記切断通知を受信した前記クライアントが、前記通知されたキーについて記憶済みの前記キーと値とを再登録するステップと、を有することを特徴とする。
また、本発明は、複数の端末がネットワークを介して接続され、前記それぞれの端末上で動作する第1〜第3のピアを含む複数のピアがハッシュ表の一部を保持して管理し、前記ピアが互いに通信して前記ハッシュ表の全体管理を行うと共に、前記ピアのそれぞれが、全てのピアで共通に保持するハッシュ関数と、前記ピアのそれぞれが担当するキーと、前記キーに対する値の組とを保持するハッシュ表と、任意のピアヘメッセージを送信するために必要な他のピアのアドレスとを保持して成る、P2Pネットワークシステムにおける分散ハッシュ表管理方法であって、前記端末上で動作するクライアントが、あるキーと値の組を記憶し、前記クライアントと同一、もしくは他の端末上で動作する第1のピアに対して、前記キーと前記値と前記クライアントと同一の端末上で動作するアダプタのアドレスとを含む登録要求を送信するステップと、前記登録要求を受信した第1のピアが、前記キーにハッシュ関数演算を実行して得られるハッシュ値に対応する第2のピアを決定し、前記決定された第2のピアに対し、前記キーと値と前記アダプタのアドレスとを含む登録要求を転送するステップと、前記第1のピアが、前記キーと値とを記憶し、前記キーと、自身のアドレスを含む登録元通知を前記アダプタに送信するステップと、前記登録要求を転送された第2のピアが、自身で保持するハッシュ表に、前記登録要求に含まれるキーと値の組を追加し、前記登録要求に含まれるアダプタに対し、自身のアドレスと前記登録要求に含まれるキーから成る登録先通知を送信するステップと、前記登録元通知を受信したアダプタが、前記登録元通知に含まれるキーと前記第1のピアのアドレスとの組を記憶するステップと、前記登録先通知を受信したアダプタが、前記登録先通知に含まれる前記第2のピアのアドレスとキーとを記憶し、前記第2のピアに対して接続確認を行い、切断を検知した場合には前記キーに対して記憶済みの第1のピアに対して切断通知を送信するステップと、前記切断通知を受信した第1のピアが、前記通知されたキーにハッシュ関数を演算して得られるハッシュ値に対応する第3のピアを決定し、前記第3のピアに対して記憶済みのキーと値の登録要求を送信するステップと、を有することを特徴とする。
また、本発明は、複数の端末がネットワークを介して接続され、前記それぞれの端末上で動作する第1と第2のピアを含む複数のピアがハッシュ表の一部を保持して管理し、前記ピアが互いに通信して前記ハッシュ表の全体管理を行うと共に、前記ピアのそれぞれが、全てのピアで共通に保持するハッシュ関数と、前記ピアのそれぞれが担当するキーと、前記キーに対する値の組とを保持するハッシュ表と、任意のピアヘメッセージを送信するために必要な他のピアのアドレスとを保持して成る、P2Pネットワークシステムにおける分散ハッシュ表管理方法であって、前記端末上で動作するクライアントが、あるキーと値の組を記憶し、前記クライアントと同一、もしくは他の端末上で動作する第1のピアに対して、前記キーと前記値と前記クライアントと同一の端末上で動作するアダプタのアドレスとを含む登録要求を送信するステップと、前記登録要求を受信した第1のピアが、前記キーにハッシュ関数演算を実行して得られるハッシュ値に対応する第2のピアを決定し、前記決定された第2のピアに対し、前記キーと値と前記アダプタのアドレスと、自身のアドレスを含む登録要求を転送すると共に、前記キーと値を記憶するステップと、前記登録要求を転送された第2のピアが、自身で保持するハッシュ表に前記登録要求に含まれる前記キーと値の組を追加し、前記アダプタに対して自身のアドレスと前記登録要求に含まれる前記第1のピアのアドレスとキーから成る登録先通知を送信するステップと、前記当録先通知を受信したアダプタが、前記登録先通知に含まれる前記第1のピアのアドレスと、前記第2のピアのアドレスとキーとを記憶し、前記第2のピアに対して接続確認を行い、切断を検知した場合に前記登録要求に含まれる前記第1のピアに対し、前記キーを含む切断通知を送信するステップと、切断通知を受信した前記第2のピアが、前記通知されたキーに対し、記憶済みのキーと値を再登録するステップと、を有することを特徴とする。
また、本発明は、複数の端末がネットワークを介して接続され、前記それぞれの端末上で動作する第1〜第3のピアを含む複数のピアがハッシュ表の一部を保持して管理し、前記それぞれのピアが互いに通信して前記ハッシュ表の全体管理を行うと共に、前記ピアのそれぞれが、全てのピアで共通に保持するハッシュ関数と、前記ピアのそれぞれが担当するキーと、前記キーに対する値の組とを保持するハッシュ表と、任意のピアヘメッセージを送信するために必要な他のピアのアドレスとを保持して成る、P2Pネットワークシステムにおける分散ハッシュ表管理方法であって、前記端末上で動作するクライアントが、あるキーと値の組を記憶し、前記クライアントと同一、もしくは他の端末上で動作する第1のピアに対して、前記キーと前記値と前記クライアントと同一の端末上で動作するアダプタのアドレスとを含む登録要求を送信するステップと、前記登録要求を受信した第1のピアが、前記キーにハッシュ関数演算を実行して得られるハッシュ値に対応する第2のピアを決定し、前記決定された第2のピアに対し、前記キーと値と前記アダプタのアドレスを含む登録要求を転送するステップと、前記登録要求を転送された第2のピアが、自身で保持するハッシュ表に前記登録要求に含まれるキーと値の組を追加し、前記登録要求に含まれる前記アダプタのアドレスに対し、前記第2のピア自身のアドレスと前記登録要求に含まれるキーと値を含む登録先通知を送信するステップと、前記登録先通知を受信したアダプタが、前記登録先通知に含まれる前記第2のピアのアドレスと前記キーと値を記憶すると共に、前記第2のピアに対して接続確認を行い、切断を検知した場合に、前記記憶したキーと値と自身のアドレスとを含む登録要求を前記キーにハッシュ関数演算を実行して得られるハッシュ値に対応する第3のピアに送信するステップと、を有することを特徴とする。
また、本発明は、複数の端末がネットワークを介して接続され、前記それぞれの端末上で動作する第1と第2のピアを含む複数のピアがハッシュ表の一部を保持して管理し、前記それぞれのピアが互いに通信して前記ハッシュ表の全体管理を行う、P2Pネットワークシステムにおける分散ハッシュ表管理装置であって、全てのピアで共通に保持するハッシュ関数と、前記ピアのそれぞれが担当するキーと、前記キーに対する値の組とを保持するハッシュ表と、任意のピアヘメッセージを送信するために必要な他のピアのアドレスとを保持する記憶手段と、あるキーと値の組を記憶し、自身と同一もしくは他の端末上で動作する第1のピアに対して、前記キーと前記値と自身と同一の端末上で動作するアダプタのアドレスとを含む登録要求を送信する、前記端末上で動作するクライアント機能実行手段と、前記登録要求を受信し、前記キーにハッシュ関数演算を実行して得られるハッシュ値に対応する第2のピアを決定し、前記決定された第2のピアに対して、前記キーと前記値と前記アダプタのアドレスと前記クライアントのアドレスとを含む登録要求を転送するピア機能実行手段と、前記登録要求を転送された第2のピアにより、自身が保持するハッシュ表に前記登録要求に含まれるキーと値の組が追加され、送信される、前記第2のピア自身のアドレスと前記登録要求に含まれる前記クライアントのアドレスと前記キーとを含む登録先通知を受信し、前記登録先通知に含まれる前記第2のピアのアドレスと前記クライアントのアドレスと前記キーとを記憶し、前記第2のピアに対して接続確認を行い、切断を検知した場合、前記クライアントに対して前記キーを含む切断通知を送信するアダプタ機能実行手段とを備え、前記クライアント機能実行手段は、前記アダプタ機能実行手段から前記切断通知を受信し、前記通知されたキーについて既に記憶済みの前記キーと値とを再登録することを特徴とする。
また、本発明は、複数の端末がネットワークを介して接続され、前記それぞれの端末上で動作する第1〜第3のピアを含む複数のピアがハッシュ表の一部を保持して管理し、前記それぞれのピアが互いに通信して前記ハッシュ表の全体管理を行う、P2Pネットワークシステムにおける分散ハッシュ表管理装置であって、全てのピアで共通に保持するハッシュ関数と、前記ピアのそれぞれが担当するキーと、前記キーに対する値の組とを保持するハッシュ表と、任意のピアヘメッセージを送信するために必要な他のピアのアドレスとを保持する記憶手段と、あるキーと値の組を記憶し、自身と同一もしくは他の端末上で動作する第1のピアに対して、前記キーと前記値と自身と同一の端末上で動作するアダプタのアドレスとを含む登録要求を送信する、前記端末上で動作するクライアント機能実行手段と、前記登録要求を受信し、前記キーにハッシュ関数演算を実行して得られるハッシュ値に対応する第2のピアを決定し、前記決定された第2のピアに対し、前記キーと値と前記アダプタのアドレスとを含む登録要求を転送すると共に、前記キーと値とを記憶し、前記記憶されたキーと、自身のアドレスを含む登録元通知を前記アダプタに送信するピア機能実行手段と、前記登録要求を転送された第2のピアにより、自身が保持するハッシュ表に前記登録要求に含まれるキーと値の組が追加され、送信される、前記第2のピア自身のアドレスと前記キーとを含む登録先通知を受信し、前記登録先通知に含まれる前記第2のピアのアドレスとキーとを記憶し、前記第2のピアに対して接続確認を行い、切断を検知した場合に前記キーに対応して記憶済みの第1のピアに対し切断通知を送信するアダプタ機能実行手段とを備え、前記切断通知を受信した第1のピアにおいて、前記通知されたキーにハッシュ関数を演算して得られるハッシュ値に対応する第3のピアが決定され、前記決定された第3のピアに対して記憶済みのキーと値の登録要求が送信されることを特徴とする。
また、本発明は、複数の端末がネットワークを介して接続され、前記それぞれの端末上で動作する第1と第2のピアを含む複数のピアがハッシュ表の一部を保持して管理し、前記それぞれのピアが互いに通信して前記ハッシュ表の全体管理を行う、P2Pネットワークシステムにおける分散ハッシュ表管理装置であって、全てのピアで共通に保持するハッシュ関数と、前記ピアのそれぞれが担当するキーと、前記キーに対する値の組とを保持するハッシュ表と、任意のピアヘメッセージを送信するために必要な他のピアのアドレスとを保持する記憶手段と、あるキーと値の組を記憶し、自身と同一もしくは他の端末上で動作する第1のピアに対して、前記キーと前記値と自身と同一の端末上で動作するアダプタのアドレスとを含む登録要求を送信する、前記端末上で動作するクライアント機能実行手段と、前記登録要求を受信し、前記キーにハッシュ関数を演算して得られるハッシュ値に対応する第2のピアを決定し、前記決定された第2のピアに対し、前記キーと値と前記アダプタのアドレスと、自身のアドレスを含む登録要求を転送すると共に、前記キーと値を記憶するピア機能実行手段と、前記登録要求が転送された第2のピアにより、自身で保持するハッシュ表に前記登録要求に含まれる前記キーと値の組が追加され、送信される、前記第2のピアのアドレスと前記登録要求に含まれる前記第1のピアのアドレスとキーから成る登録先通知を受信し、前記登録先通知に含まれる前記第2のピアのアドレスと、前記登録要求の前記第1のピアのアドレスとキーとを記憶すると共に、前記第2のピアに対して接続確認を行い、切断を検知した場合に前記登録要求に含まれる前記第1のピアに対し、前記キーを含む切断通知を送信するアダプタ機能実行手段とを備え、前記切断通知を受信した前記第2のピアにおいて、前記通知されたキーに対し既に記憶済みのキーと値が再登録されることを特徴とする。
また、本発明は、複数の端末がネットワークを介して接続され、前記それぞれの端末上で動作する第1〜第3のピアを含む複数のピアがハッシュ表の一部を保持して管理し、前記それぞれのピアが互いに通信して前記ハッシュ表の全体管理を行う、P2Pネットワークシステムにおける分散ハッシュ表管理装置であって、全てのピアで共通に保持するハッシュ関数と、前記ピアのそれぞれが担当するキーと、前記キーに対する値の組とを保持するハッシュ表と、任意のピアヘメッセージを送信するために必要な他のピアのアドレスとを保持する記憶手段と、あるキーと値の組を記憶し、自身と同一もしくは他の端末上で動作する第1のピアに対して、前記キーと前記値と自身と同一の端末上で動作するアダプタのアドレスとを含む登録要求を送信する、前記端末上で動作するクライアント機能実行手段と、前記登録要求を受信し、前記キーにハッシュ関数演算を実行して得られるハッシュ値に対応する第2のピアを決定し、前記決定された第2のピアに対し、前記キーと値と前記アダプタのアドレスを含む登録要求を転送するピア機能実行手段と、前記登録要求が転送された第2のピアにおいて、自身で保持するハッシュ表に前記登録要求に含まれるキーと値の組が追加され、送信される、前記第2のピア自身のアドレスと前記登録要求に含まれるキーと値を含む登録先通知を受信し、前記登録先通知に含まれる前記第2のピアのアドレスとキーと値を記憶すると共に、前記第2のピアに対して接続確認を行い、切断を検知した場合に、前記記憶したキーと値と自身のアドレスとを含む登録要求を前記キーにハッシュ関数演算を実行して得られるハッシュ値に対応する第3のピアに送信するアダプタ手段と、を備えたことを特徴とする。
本発明によれば、P2Pネットワーク内に分散配置されたそれぞれのピアが分散ハッシュ表を管理する場合に、ピアとの接続を監視するアダプタ(機能実行手段)を新設し、(1)アダプタがピアとの切断を検知したときにクライアントに対して切断を通知し、通知を受けたクライアントが再登録を行う、(2)ピアに切断を通知し、通知を受けたピアが再登録を行う、(3)アダプタ自身が再登録を行う、のいずれか一つを実行することで、ネットワーク分割が生じた場合にも分割後のネットワークで構成される分散ハッシュ表により必要な情報を維持管理することを可能にする。
このことにより、ネットワークトポロジが変化しても登録した情報の検索が可能となり、分散ハッシュ表を用いることでP2Pネットワークにおけるルーティングの高速化を実現できる。
本発明は、特に、分割が発生するネットワークで分散ハッシュ表を利用してある端末上のオブジェクトのIDとアドレスの組を登録する場合に、ネットワーク分割時にも分散ハッシユ表を利用して同じネットワークに存在するオブジェクトのIDからそのオブジェクトのアドレスを確実に解決した場合に顕著な効果が得られる。
本発明は、特に、分割が発生するネットワークで分散ハッシュ表を利用してある端末上のオブジェクトのIDとアドレスの組を登録する場合に、ネットワーク分割時にも分散ハッシユ表を利用して同じネットワークに存在するオブジェクトのIDからそのオブジェクトのアドレスを確実に解決した場合に顕著な効果が得られる。
以下、本発明実施形態にかかわる分散ハッシュ管理方法および装置について、図1〜図7を参照しながら詳細に説明する。
図1は、本発明実施形態にかかわる分散ハッシュ管理装置を含むP2Pネットワークシステムのシステム構成の一例を示す図である。
図1に示されるように、P2Pネットワークシステムは、端末10〜80が無線リンクを介して接続されており、互いに通信が可能である。各端末10〜80のそれぞれでは、オブジェクト、ならびに分散ハッシュ表を管理するオブジェクトであるピアと、分散ハッシュ表のクライアントであるアプリケーションの他に、本発明により付加されるアダプタとが動作している。なお、比較対照の意味で図15に従来における端末20のオブジェクトを示す。アダプタは、後述するように他の端末10〜80上で動作するピアとの接続性を監視し、当該ピアの切断が検知されたときにクライアント(アプリケーション520、525)に対して切断を通知し、自身がキーの再登録を行うか、もしくはクライアントか通知を受けたピアに対して再登録を行わせる機能を持つ。
また、各端末10〜80上のピアはP2Pネットワーク1を通して互いに通信可能である。
図1に示されるように、P2Pネットワークシステムは、端末10〜80が無線リンクを介して接続されており、互いに通信が可能である。各端末10〜80のそれぞれでは、オブジェクト、ならびに分散ハッシュ表を管理するオブジェクトであるピアと、分散ハッシュ表のクライアントであるアプリケーションの他に、本発明により付加されるアダプタとが動作している。なお、比較対照の意味で図15に従来における端末20のオブジェクトを示す。アダプタは、後述するように他の端末10〜80上で動作するピアとの接続性を監視し、当該ピアの切断が検知されたときにクライアント(アプリケーション520、525)に対して切断を通知し、自身がキーの再登録を行うか、もしくはクライアントか通知を受けたピアに対して再登録を行わせる機能を持つ。
また、各端末10〜80上のピアはP2Pネットワーク1を通して互いに通信可能である。
具体的に、端末20上では、ピア120と、分散ハッシュ表のクライアントであるアプリケーション520、525と、オブジェクト700、710、720と、アダプタ820が示されている。
なお、本発明の分散ハッシュ表管理装置は、端末10〜80のそれぞれに実装され、また、上記したピア120、クライアント(アプリケーション520、525)、アダプタ820のそれぞれは、いずれも端末20上で動作するプログラムであり、端末20に実装されるCPUがそのプログラムを逐次読み出し実行することにより、請求項に示す、ピア機能実行手段、クライアント機能実行手段、アダプタ機能実行手段のそれぞれとして機能する。
なお、本発明の分散ハッシュ表管理装置は、端末10〜80のそれぞれに実装され、また、上記したピア120、クライアント(アプリケーション520、525)、アダプタ820のそれぞれは、いずれも端末20上で動作するプログラムであり、端末20に実装されるCPUがそのプログラムを逐次読み出し実行することにより、請求項に示す、ピア機能実行手段、クライアント機能実行手段、アダプタ機能実行手段のそれぞれとして機能する。
(第1の実施形態)
図2は、本発明の第1の実施形態にかかわる分散ハッシュ表管理装置の動作を説明するために引用した動作シーケンス図である。
以下、図2に示す動作シーケンス図を参照しながら本発明の第1の実施形態にかかわる分散ハッシュ表管理装置の動作について詳細に説明する。ここでは、本発明の分散ハッシュ表管理装置として端末20が例示されており、当該端末20上でアダプタ820、ピア120、アプリケーション520、525、そして、オブジェクト700、710、720が動作するものとする。また、ここでは、Chordリングを用いて分散管理表を管理することとし、アプリケーション520がオブジェクト710のIDをキーに、アドレスを値にして、また、アプリケーション525がオブジェクト720のIDをキーに、アドレスを値にして登録する場合のシーケンスを示した。
図2は、本発明の第1の実施形態にかかわる分散ハッシュ表管理装置の動作を説明するために引用した動作シーケンス図である。
以下、図2に示す動作シーケンス図を参照しながら本発明の第1の実施形態にかかわる分散ハッシュ表管理装置の動作について詳細に説明する。ここでは、本発明の分散ハッシュ表管理装置として端末20が例示されており、当該端末20上でアダプタ820、ピア120、アプリケーション520、525、そして、オブジェクト700、710、720が動作するものとする。また、ここでは、Chordリングを用いて分散管理表を管理することとし、アプリケーション520がオブジェクト710のIDをキーに、アドレスを値にして、また、アプリケーション525がオブジェクト720のIDをキーに、アドレスを値にして登録する場合のシーケンスを示した。
アプリケーション520とアプリケーション525は、何らかの形でアダプタ820のアドレスおよびピア120のアドレスを知っているものとする。例えば、ユーザがキーボードから入力して通知しても良い。
まず、アプリケーション520はピア120にオブジェクト710のIDをキーに、アドレスを値にした登録要求を送信する(S900)。この時、アダプタ820のアドレスも登録要求に含める。ピア120は、オブジェクト710のIDにハッシュ関数を適用(ハッシュ演算)し、登録要求の転送先を決定する。ここでは、ピア170に決定されたものとし、ピア120は、アプリケーション520のアドレスとオブジェクト710のIDとアドレスとアダプタ820のアドレスを含んだ登録要求をピア170に転送する(S902)。
まず、アプリケーション520はピア120にオブジェクト710のIDをキーに、アドレスを値にした登録要求を送信する(S900)。この時、アダプタ820のアドレスも登録要求に含める。ピア120は、オブジェクト710のIDにハッシュ関数を適用(ハッシュ演算)し、登録要求の転送先を決定する。ここでは、ピア170に決定されたものとし、ピア120は、アプリケーション520のアドレスとオブジェクト710のIDとアドレスとアダプタ820のアドレスを含んだ登録要求をピア170に転送する(S902)。
ピア170は、登録要求に含まれたオブジェクト710のIDとアドレスの組を自身のハッシュ表に登録するとともに、アプリケーション520のアドレスとピア170のアドレスとオブジェクト710のIDを含んだ登録先通知をアダプタ820へ送信する(S904)。
アダプタ820は、ピア170のアドレスとアプリケーション520のアドレスとオブジェクト710のIDの組を記憶しておく。その後、アダプタ820は、一定時間ごとに接続確認をピア170に対して送信するとともに(S906)、タイマを設定する(S908)。ピア170が接続確認を受け取ると、接続応答を返送する(S910)。アダプタ 820は,タイマがタイムアウトする前に接続応答を受信した場合、ピア170に接続していると判断する。
アダプタ820は、ピア170のアドレスとアプリケーション520のアドレスとオブジェクト710のIDの組を記憶しておく。その後、アダプタ820は、一定時間ごとに接続確認をピア170に対して送信するとともに(S906)、タイマを設定する(S908)。ピア170が接続確認を受け取ると、接続応答を返送する(S910)。アダプタ 820は,タイマがタイムアウトする前に接続応答を受信した場合、ピア170に接続していると判断する。
次に、アプリケーション525がピア120にオブジェクト720のIDをキーに、アドレスを値にした登録要求を送信する(S901)。この時、アダプタ820のアドレスも登録要求に含める。ピア120は、オブジェクト720のIDにハッシュ関数を適用し、登録要求の転送先を決定する。
ここでは、ピア170に決定されたものとし、ピア120はアプリケーション525のアドレスとオブジェクト720のIDとアドレスとアダプタ820のアドレスを含む登録要求をピア170に転送する(S903)。
ここでは、ピア170に決定されたものとし、ピア120はアプリケーション525のアドレスとオブジェクト720のIDとアドレスとアダプタ820のアドレスを含む登録要求をピア170に転送する(S903)。
ピア170は、登録要求に含まれたオブジェクト720のIDとアドレスの組を自身のハッシュ表に登録するとともに、アプリケーション525のアドレスとピア170のアドレスとオブジェクト720のIDを含む登録先通知をアダプタ820へ送信する(S905)。
アダプタ820は、既にピア170のアドレスを記憶しているため、ピア170のアドレスに対してアプリケーション525のアドレスとオブジェクト720のIDの組を追加して記憶しておく。図3に、このとき、アダプタ820が保持するテーブルのデータ構造の一例を示す。
アダプタ820は、既にピア170のアドレスを記憶しているため、ピア170のアドレスに対してアプリケーション525のアドレスとオブジェクト720のIDの組を追加して記憶しておく。図3に、このとき、アダプタ820が保持するテーブルのデータ構造の一例を示す。
図3において、上記したテーブルは、登録先ピア管理表1000と、登録元情報管理表1010から成り、端末10〜80のそれぞれに実装される記憶装置(請求項に示す記憶部)に割り付けられ記憶される。
アダプタ820は、登録先ピア管理表1000において、自身が受信した登縁先通知の送信元ピアのアドレスと、そのピアに対する登録元情報管理表へのポインタを記憶する。例えば、一つのエントリとしてピア170のアドレスと登録元情報管理表1010へのポインタが記憶されている。登録元情報管理表1010には、ピア170へ転送された登録要求の送信元とキーであるアプリケーション520とオブジェクト710のID、およびアプリケーション525とオブジェクト720のIDが記憶されている。
アダプタ820は、登録先ピア管理表1000において、自身が受信した登縁先通知の送信元ピアのアドレスと、そのピアに対する登録元情報管理表へのポインタを記憶する。例えば、一つのエントリとしてピア170のアドレスと登録元情報管理表1010へのポインタが記憶されている。登録元情報管理表1010には、ピア170へ転送された登録要求の送信元とキーであるアプリケーション520とオブジェクト710のID、およびアプリケーション525とオブジェクト720のIDが記憶されている。
次に、図16に示したようにネットワークが分割されたとする。その後、アダプタ820は、接続確認を送信するとともに(S912)、タイマを設定するが(S914)、接続確認はピア170に届かないため、接続応答を受け取る前にタイマがタイムアウトし(S916)、アダプタ820は、ピア170との接続が切断されたと判断する。
なお、タイムアウトした場合に接続応答を何度か再送し、何度か連続してタイムアウトした場合に初めて切断と判断しても良い。また、アダプタ820が定期的に接続確認を送信するのではなく、登録先通知を送ったピア170が定期的に接続確認をアダプタ820に送信しても良い。アダプタ820は、登録先通知を受信した際に送信元ピアのアドレスを覚えておき、一定時間内に送信元ピア170から接続確認を受信しないことが何度か続いたら、送信元ピア170との接続が切断されたと判断する。
なお、タイムアウトした場合に接続応答を何度か再送し、何度か連続してタイムアウトした場合に初めて切断と判断しても良い。また、アダプタ820が定期的に接続確認を送信するのではなく、登録先通知を送ったピア170が定期的に接続確認をアダプタ820に送信しても良い。アダプタ820は、登録先通知を受信した際に送信元ピアのアドレスを覚えておき、一定時間内に送信元ピア170から接続確認を受信しないことが何度か続いたら、送信元ピア170との接続が切断されたと判断する。
ピア170との切断を検知したアダプタ820は、登録先ピア管理表1000を辿って登録元情報管理表1010を検索し、そこに記憶したエントリから、オブジェクト710のIDを含んだ切断通知をアプリケーション520に、オブジェクト720のIDを含んだ切断通知をアプリケーション525に、それぞれ送信する(S918、S919)。
アプリケーション520は再びピア120にオブジェクト710のIDをキーに、アドレスを値にした登録要求を送信する(S920)。このとき、ピア120は、オブジェクト710のIDにハッシュ関数を適用し、登録要求の転送先を決定する。
アプリケーション520は再びピア120にオブジェクト710のIDをキーに、アドレスを値にした登録要求を送信する(S920)。このとき、ピア120は、オブジェクト710のIDにハッシュ関数を適用し、登録要求の転送先を決定する。
ここでは、ネットワーク分割後はピア110に決定されるものとし、ピア120は、オブジェクト710のIDとアドレスとアプリケーション520のアドレスとアダプタ820のアドレスを含んだ登録要求をピア110に転送する(S922)。ピア110がこの登録要求に含まれるオブジェクト710のIDとアドレスの組を自身のハッシュ表に登録するとともに、ピア110のアドレスとアプリケーション520のアドレスとオブジェクト710のIDを含んだ登録先通知をアダプタ820へ送信する(S924)。
一方、アプリケーション525も再びピア120にオブジェクト720のIDをキーに、アドレスを値にした登録要求を送信する(S930)。ピア120は、オブジェクト720のIDにハッシュ関数を適用し、登録要求の転送先を決定する。
ここではネットワーク分割後はピア110に決定されるものとし、ピア120は、オブジェクト720のIDとアドレスとアプリケーション525のアドレスとアダプタ820のアドレスを含んだ登録要求をピア110に転送する(S932)。ピア110が登録要求に含まれたオブジェクト720のIDとアドレスの組を自身のハッシュ表に登録するとともに、ピア120のアドレスとアプリケーション525のアドレスとオブジェクト720のIDを含んだ登録先通知をアダプタ820へ送信し(S934)、以降は上記と同様の処理を続ける。
ここではネットワーク分割後はピア110に決定されるものとし、ピア120は、オブジェクト720のIDとアドレスとアプリケーション525のアドレスとアダプタ820のアドレスを含んだ登録要求をピア110に転送する(S932)。ピア110が登録要求に含まれたオブジェクト720のIDとアドレスの組を自身のハッシュ表に登録するとともに、ピア120のアドレスとアプリケーション525のアドレスとオブジェクト720のIDを含んだ登録先通知をアダプタ820へ送信し(S934)、以降は上記と同様の処理を続ける。
(第2、第3の実施形態)
図4は、本発明の第2、第3の実施形態にかかわる分散ハッシュ表管理装置の動作を説明するために引用した動作シーケンス図である。
以下、図4に示す動作シーケンス図を参照しながら本発明の第2、第3の実施形態にかかわる分散ハッシュ表管理装置の動作について詳細に説明する。ここで説明する本発明実施形態においてもChordに適用し、アプリケーション520がオブジェクト710のIDをキーに、アドレスを値にして登録する場合のシーケンスを示した。
図4は、本発明の第2、第3の実施形態にかかわる分散ハッシュ表管理装置の動作を説明するために引用した動作シーケンス図である。
以下、図4に示す動作シーケンス図を参照しながら本発明の第2、第3の実施形態にかかわる分散ハッシュ表管理装置の動作について詳細に説明する。ここで説明する本発明実施形態においてもChordに適用し、アプリケーション520がオブジェクト710のIDをキーに、アドレスを値にして登録する場合のシーケンスを示した。
まず、アプリケーション520は、何らかの形でアダプタ820のアドレスおよびピア120のアドレスを知っているものとする。例えば、ユーザがキーボードから人力して通知しても良い。
アプリケーション520は、ピア120にオブジェクト710のIDをキーに、アドレスを値にした登録要求を送信する(S950)。この時、アダプタ820のアドレスも登録要求に含める。
ピア120は、オブジェクト710のIDにハッシュ関数を適用し、登録要求の転送先を決定する。ここでは、ピア170に決定されたものとし、ピア120は、オブジェクト710のIDとアドレスとアダプタ820のアドレスを含んだ登録要求をピア170に転送する(S952)。
アプリケーション520は、ピア120にオブジェクト710のIDをキーに、アドレスを値にした登録要求を送信する(S950)。この時、アダプタ820のアドレスも登録要求に含める。
ピア120は、オブジェクト710のIDにハッシュ関数を適用し、登録要求の転送先を決定する。ここでは、ピア170に決定されたものとし、ピア120は、オブジェクト710のIDとアドレスとアダプタ820のアドレスを含んだ登録要求をピア170に転送する(S952)。
次に、ピア120は、オブジェクト710のIDとアドレスの組を記憶しておく。更に、ピア120は、オブジェクト710のIDとピア120のアドレスを含んだ登録元通知をアダプタ820に送信する(S954)。なお、第3の実施形態の場合は、ステップS952の登録要求にピア120のアドレスも含め、登録元通知の送信は行わない。
ピア170は、登録要求に含まれたオブジェクト710のIDとアドレスの組を自身のハッシュ表に登録するとともに、ピア170のアドレスとオブジェクト710のIDを含んだ登録先通知をアダプタ820へ送信する(S956)。なお、第3の実施形態の場合は、ステップS956の登録先通知にピア120のアドレスも含める。
ピア170は、登録要求に含まれたオブジェクト710のIDとアドレスの組を自身のハッシュ表に登録するとともに、ピア170のアドレスとオブジェクト710のIDを含んだ登録先通知をアダプタ820へ送信する(S956)。なお、第3の実施形態の場合は、ステップS956の登録先通知にピア120のアドレスも含める。
続いて、アダプタ820は、ピア120から送信された登録元通知を受信し(S954)、この登録元通知に含まれるオブジェクト710のIDとピア120のアドレスの組を記憶しておく。ここで、第2の実施形態の場合は、ステップS954の登録元通知の送信は行われない。
アダプタ820は、ピア170から送信された登録先通知に含まれるピア170のアドレスを記憶する(S956)。なお、第3の実施形態の場合、S956において登録先通知に含まれるオブジェクト710のIDから先に記憶したオブジェクト710のIDと、ピア120のアドレスの組と関連付けておく。なお、第3の実施形態の場合、S956における登録先通知には、オブジェクト710のIDとピア170のアドレスとピア120のアドレスが含まれているため、これらを関連付けておく。
アダプタ820は、ピア170から送信された登録先通知に含まれるピア170のアドレスを記憶する(S956)。なお、第3の実施形態の場合、S956において登録先通知に含まれるオブジェクト710のIDから先に記憶したオブジェクト710のIDと、ピア120のアドレスの組と関連付けておく。なお、第3の実施形態の場合、S956における登録先通知には、オブジェクト710のIDとピア170のアドレスとピア120のアドレスが含まれているため、これらを関連付けておく。
図5は、上記した第2、第3の実施形態にかかわるアダプタ820が保持するテーブルのデータ構造の一例を示す。
図5において、上記したテーブルは、登録先ピア管理表1000と、登録元情報管理表1020から成り、端末10〜80のそれぞれに実装される記憶装置(請求項に示す記憶部)に割り付けられ記憶される。例えば、アダプタ820は、登録先ピア管理表1000のピア170に関するエントリからポインタが設定された登録元情報管理表1030において、オブジェクト710のIDとピア120のアドレスを記憶しておく。
その後、アダプタ820は一定時間ごとに接続確認をピア170に送信するとともにタイマを設定する(S958、S960)。ピア170が接続確認を受け取ると接続応答を返送する(S962)。アダプタ820は、タイマがタイムアウトする前に接続応答を受信した場合はピア170と接続していると判断する。
図5において、上記したテーブルは、登録先ピア管理表1000と、登録元情報管理表1020から成り、端末10〜80のそれぞれに実装される記憶装置(請求項に示す記憶部)に割り付けられ記憶される。例えば、アダプタ820は、登録先ピア管理表1000のピア170に関するエントリからポインタが設定された登録元情報管理表1030において、オブジェクト710のIDとピア120のアドレスを記憶しておく。
その後、アダプタ820は一定時間ごとに接続確認をピア170に送信するとともにタイマを設定する(S958、S960)。ピア170が接続確認を受け取ると接続応答を返送する(S962)。アダプタ820は、タイマがタイムアウトする前に接続応答を受信した場合はピア170と接続していると判断する。
次に、図16に示されるようにネットワークが分割されたとする。その後、アダプタ820は、接続確認を送信するとともに(S964)、タイマを設定するが(S966)、接続確認はピア170に届かないため、接続応答を受け取る前にタイマがタイムアウトし(S968)、アダプタ820は、ピア170との接続が切断されたと判断する。
ピア170との切断を検知したアダプタ820は、登録先ピア管理表1000を辿って登録元情報管理表1020を検索し、そこに記憶したエントリから、オブジェクト710のIDを含んだ切断通知をピア120に送信する(S970)。
ピア120は、切断通知に含まれたオブジェクト710のIDから、以前に記憶したオブジェクト710のIDとアドレスの組を取り出し、オブジェクト710のIDにハッシュ関数を適用し、登録要求の転送先を決定する。
ピア120は、切断通知に含まれたオブジェクト710のIDから、以前に記憶したオブジェクト710のIDとアドレスの組を取り出し、オブジェクト710のIDにハッシュ関数を適用し、登録要求の転送先を決定する。
第2の実施形態によれば、ネットワーク分割後はピア110に決定されるものとし、ピア120は、オブジェクト710のIDとアドレスとを含む登録要求をピア110に送信する(S972)。この時にピア120がアダプタ820にピア120のアドレスとオブジェクト710のIDを含んだ登録元通知を送信しても良い。
なお、第3の実施形態によれば、ステップS972において登録要求にピア120のアドレスも含める。
なお、第3の実施形態によれば、ステップS972において登録要求にピア120のアドレスも含める。
一方、登録要求を受信したピア110は、当該登録要求に含まれたオブジェクト710のIDとアドレスの組を自身のハッシュ表に登録するとともに、ピア110のアドレスとオブジェクト710のIDを含む登録先通知をアダプタ820へ送信する(S974)。なお、第3の実施形態によれば、ステップS974における登録先通知にピア120のアドレスも含める。以降は上記と同様の処理を続ける。
(第4の実施形態)
図6は、本発明の第4の実施形態にかかわる分散ハッシュ表管理装置の動作を説明するために引用した動作シーケンス図である。
以下、図6に示す動作シーケンス図を参照しながら本発明の第4の実施形態にかかわる分散ハッシュ表管理装置の動作について詳細に説明する。ここで説明する本発明実施形態においてもChordに適用した場合において、アプリケーション520がオブジェクト710のIDをキーに、アドレスを値にして登録する場合のシーケンスを示した。
図6は、本発明の第4の実施形態にかかわる分散ハッシュ表管理装置の動作を説明するために引用した動作シーケンス図である。
以下、図6に示す動作シーケンス図を参照しながら本発明の第4の実施形態にかかわる分散ハッシュ表管理装置の動作について詳細に説明する。ここで説明する本発明実施形態においてもChordに適用した場合において、アプリケーション520がオブジェクト710のIDをキーに、アドレスを値にして登録する場合のシーケンスを示した。
まず、アプリケーション520は、何らかの形でアダプタ820のアドレスを知っており、また、アダプタ820は、何らかの形でピア120のアドレスを知っているものとする。例えば、ユーザがキーボードから入力して通知しても良い。
アプリケーション520は、ピア120にオブジェクト710のIDをキーに、アドレスを値にした登録要求を送信する(S1050)。この時、アダプタ820のアドレスも登録要求に含める。ピア120は、オブジェクト710のIDにハッシュ関数を適用し、登録要求の転送先を決定する。本実施形態によれば、ピア170に決定されたものとし、ピア120はオブジェクト710のIDとアドレスとアダプタ820のアドレスを含んだ登録要求をピア170に転送する(S1052)。
アプリケーション520は、ピア120にオブジェクト710のIDをキーに、アドレスを値にした登録要求を送信する(S1050)。この時、アダプタ820のアドレスも登録要求に含める。ピア120は、オブジェクト710のIDにハッシュ関数を適用し、登録要求の転送先を決定する。本実施形態によれば、ピア170に決定されたものとし、ピア120はオブジェクト710のIDとアドレスとアダプタ820のアドレスを含んだ登録要求をピア170に転送する(S1052)。
ピア170は、登録要求に含まれたオブジェクト710のIDとアドレスの組を自身のハッシュ表に登録するとともに、ピア170のアドレスとオブジェクト710のIDとアドレスを含んだ登録先通知をアダプタ820へ送信する(S1056)。
アダプタ820は、ピア170から送信された登録先通知に含まれたピア170のアドレスとオブジェクト710のIDとアドレスを関連付けて記憶しておく。
アダプタ820は、ピア170から送信された登録先通知に含まれたピア170のアドレスとオブジェクト710のIDとアドレスを関連付けて記憶しておく。
図7は、上記した第4の実施形態にかかわるアダプタ820が保持するテーブルのデータ構造の一例を示す。
図7において、上記したテーブルは、登録先ピア管理表1000と、登録情報管理表1030から成り、端末10〜80のそれぞれに実装される記憶装置(請求項に示す記憶部)に割り付けられ記憶される。例えば、アダプタ820は、登録先ビア管理表1000のピア170に関するエントリからポインタが設定された登録情報管理表1030において、オブジェクト710のIDとアドレスの組を記憶しておく。その後、アダプタ820は、一定時間ごとに接続確認をピア170に送信するとともに(S1058)、タイマを設定する(S1060)。
ピア170が接続確認を受け取ると(S1058)、接続応答を返送する(S1062)。アダプタ820は、タイマがタイムアウトする前に接続応答を受信した場合は、ピア170と接続していると判断する。
図7において、上記したテーブルは、登録先ピア管理表1000と、登録情報管理表1030から成り、端末10〜80のそれぞれに実装される記憶装置(請求項に示す記憶部)に割り付けられ記憶される。例えば、アダプタ820は、登録先ビア管理表1000のピア170に関するエントリからポインタが設定された登録情報管理表1030において、オブジェクト710のIDとアドレスの組を記憶しておく。その後、アダプタ820は、一定時間ごとに接続確認をピア170に送信するとともに(S1058)、タイマを設定する(S1060)。
ピア170が接続確認を受け取ると(S1058)、接続応答を返送する(S1062)。アダプタ820は、タイマがタイムアウトする前に接続応答を受信した場合は、ピア170と接続していると判断する。
次に、図16に示されるようにネットワークが分割されたとする。その後、アダプタ820は、接続確認を送信するとともに(S1064)、タイマを設定するが(S1066)、上記した接続確認はピア170に届かないため、接続応答を受け取る前にタイマがタイムアウトし(S1068)、アダプタ820は、ピア170との接続が切断されたと判断する。
ピア170との切断を検知したアダプタ820は、登録先ピア管理表1000を辿って登録情報管理表1030を検索し、そこに記憶したエントリから、オブジェクト710のIDとアドレスとアダプタ820のアドレスを含んだ登録要求をピア120に送信する(S1070)。
ピア170との切断を検知したアダプタ820は、登録先ピア管理表1000を辿って登録情報管理表1030を検索し、そこに記憶したエントリから、オブジェクト710のIDとアドレスとアダプタ820のアドレスを含んだ登録要求をピア120に送信する(S1070)。
ピア120は、登録要求に含まれるオブジェクト710のIDにハッシュ関数を適用し、登録要求の転送先を決定する。ここでは、ネットワーク分割後はピア110に決定されるものとし、ピア120は、オブジェクト710のIDとアドレスとアダプタ820のアドレスを含んだ登録要求をピア110に送信する(S1072)。
登録要求受信したピア110は、登録要求に含まれたオブジェクト710のIDとアドレスの組を自身のハッシュ表に登録するとともに、オブジェクト710のIDとアドレスを含んだ登録先通知をアダプタ820へ送信する(S1074)。以降は、上記と同様の処理を続ける。
登録要求受信したピア110は、登録要求に含まれたオブジェクト710のIDとアドレスの組を自身のハッシュ表に登録するとともに、オブジェクト710のIDとアドレスを含んだ登録先通知をアダプタ820へ送信する(S1074)。以降は、上記と同様の処理を続ける。
なお、上記した第1〜第4の実施形態によれば、アダプタ820とクライアント(アプリケーション520)を別のプログラムモジュールとして説明したが、一個のプログラムに実装しても良い。また、アダプタ820とピア120を一個のプログラムに実装しても良い。更に、クライアントごとに異なるアダプタ820を利用しても良い。
以上説明のように本発明によれば、あるクライアントが分散ハッシュに登録した場合に、登録先ピアからアダプタに登録先通知が送信され、その後アダプタが接続を確認する。そして、ネットワークが分割されて登録先との通信ができなくなった場合に、(1)アダプタがそのことを検出してクライアントに通知し、クライアントが再登録を行う(実施形態1)、(2)ピアに通知してピアが再登録を行う(実施形態2、3)、(3)アダプタ820自身が再登録を行う(実施形態4)、のうちのいずれかを実行することで、分割後のネットワーク上で構成される分散ハッシュ表に正しく登録され、分割後のネットワーク上で必要な情報を維持管理することを実現するものである。
従って、本発明は、分割が発生するネットワークで分散ハッシュ表を利用してある端末上のオブジェクトのIDとアドレスの組を登録する場合に、ネットワーク分割時にも分散ハッシュ表を利用して同じネットワークに存在するオブジェクトのIDからそのオブジェクトのアドレスを確実に解決したい場合に効果が得られる。
従って、本発明は、分割が発生するネットワークで分散ハッシュ表を利用してある端末上のオブジェクトのIDとアドレスの組を登録する場合に、ネットワーク分割時にも分散ハッシュ表を利用して同じネットワークに存在するオブジェクトのIDからそのオブジェクトのアドレスを確実に解決したい場合に効果が得られる。
なお、上記した、クライアント機能実行手段(アプリケーション520、525)と、ピア機能実行手段(120)と、アダプタ機能実行手段(820)のそれぞれで実行される手順をコンピュータ読取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって本発明の分散ハッシュ表管理装置が実現されるものとする。ここでいうコンピュータシステムとは、OSや周辺機器等のハードウェアを含むものである。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
10〜80…端末、120…ピア(ピア機能実行手段)、520、525…アプリケーション(クライアント機能実行手段)、700、710、720…オブジェクト、820…アダプタ(アダプタ機能実行手段)、1000…登録先ビア管理表(記憶手段)、1010、1020…登録元情報管理表(記憶手段)、1030…登録情報管理表(記憶手段)
Claims (8)
- 複数の端末がネットワークを介して接続され、前記それぞれの端末上で動作する第1と第2のピアを含む複数のピアがハッシュ表の一部を保持して管理し、前記ピアが互いに通信して前記ハッシュ表の全体管理を行うと共に、前記ピアのそれぞれが、全てのピアで共通に保持するハッシュ関数と、前記ピアのそれぞれが担当するキーと、前記キーに対する値の組とを保持するハッシュ表と、任意のピアヘメッセージを送信するために必要な他のピアのアドレスとを保持して成る、P2Pネットワークシステムにおける分散ハッシュ表管理方法であって、
前記端末上で動作するクライアントが、あるキーと値の組を記憶し、前記クライアントと同一、もしくは他の端末上で動作する第1のピアに対して、前記キーと前記値と前記クライアントと同一の端末上で動作するアダプタのアドレスとを含む登録要求を送信するステップと、
前記登録要求を受信した第1のピアが、前記キーにハッシュ関数演算を実行して得られるハッシュ値に対応する第2のピアを決定し、前記決定された第2のピアに対し、前記キーと前記値と前記アダプタのアドレスと前記クライアントのアドレスとを含む登録要求を転送するステップと、
前記登録要求を転送された第2のピアが、自身で保持するハッシュ表に前記登録要求に含まれるキーと値の組を追加し、前記登録要求に含まれる前記アダプタのアドレスに対して、前記第2のピア自身のアドレスと前記登録要求に含まれる前記クライアントのアドレスと前記キーとを含む登録先通知を送信するステップと、
前記登録先通知を受信した前記アダプタが、前記登録先通知に含まれる前記第2のピアのアドレスと前記クライアントのアドレスと前記キーとを記憶し、前記第2のピアに対して接続確認を行い、切断を検知した場合、前記クライアントに対して前記キーを含む切断通知を送信するステップと、
前記切断通知を受信した前記クライアントが、前記通知されたキーについて記憶済みの前記キーと値とを再登録するステップと、
を有することを特徴とする分散ハッシュ表管理方法。 - 複数の端末がネットワークを介して接続され、前記それぞれの端末上で動作する第1〜第3のピアを含む複数のピアがハッシュ表の一部を保持して管理し、前記ピアが互いに通信して前記ハッシュ表の全体管理を行うと共に、前記ピアのそれぞれが、全てのピアで共通に保持するハッシュ関数と、前記ピアのそれぞれが担当するキーと、前記キーに対する値の組とを保持するハッシュ表と、任意のピアヘメッセージを送信するために必要な他のピアのアドレスとを保持して成る、P2Pネットワークシステムにおける分散ハッシュ表管理方法であって、
前記端末上で動作するクライアントが、あるキーと値の組を記憶し、前記クライアントと同一、もしくは他の端末上で動作する第1のピアに対して、前記キーと前記値と前記クライアントと同一の端末上で動作するアダプタのアドレスとを含む登録要求を送信するステップと、
前記登録要求を受信した第1のピアが、前記キーにハッシュ関数演算を実行して得られるハッシュ値に対応する第2のピアを決定し、前記決定された第2のピアに対し、前記キーと値と前記アダプタのアドレスとを含む登録要求を転送するステップと、
前記第1のピアが、前記キーと値とを記憶し、前記キーと、自身のアドレスを含む登録元通知を前記アダプタに送信するステップと、
前記登録要求を転送された第2のピアが、自身で保持するハッシュ表に、前記登録要求に含まれるキーと値の組を追加し、前記登録要求に含まれるアダプタに対し、自身のアドレスと前記登録要求に含まれるキーから成る登録先通知を送信するステップと、
前記登録元通知を受信したアダプタが、前記登録元通知に含まれるキーと前記第1のピアのアドレスとの組を記憶するステップと、
前記登録先通知を受信したアダプタが、前記登録先通知に含まれる前記第2のピアのアドレスとキーとを記憶し、前記第2のピアに対して接続確認を行い、切断を検知した場合には前記キーに対して記憶済みの第1のピアに対して切断通知を送信するステップと、
前記切断通知を受信した第1のピアが、前記通知されたキーにハッシュ関数を演算して得られるハッシュ値に対応する第3のピアを決定し、前記第3のピアに対して記憶済みのキーと値の登録要求を送信するステップと、
を有することを特徴とする分散ハッシュ表管理方法。 - 複数の端末がネットワークを介して接続され、前記それぞれの端末上で動作する第1と第2のピアを含む複数のピアがハッシュ表の一部を保持して管理し、前記ピアが互いに通信して前記ハッシュ表の全体管理を行うと共に、前記ピアのそれぞれが、全てのピアで共通に保持するハッシュ関数と、前記ピアのそれぞれが担当するキーと、前記キーに対する値の組とを保持するハッシュ表と、任意のピアヘメッセージを送信するために必要な他のピアのアドレスとを保持して成る、P2Pネットワークシステムにおける分散ハッシュ表管理方法であって、
前記端末上で動作するクライアントが、あるキーと値の組を記憶し、前記クライアントと同一、もしくは他の端末上で動作する第1のピアに対して、前記キーと前記値と前記クライアントと同一の端末上で動作するアダプタのアドレスとを含む登録要求を送信するステップと、
前記登録要求を受信した第1のピアが、前記キーにハッシュ関数演算を実行して得られるハッシュ値に対応する第2のピアを決定し、前記決定された第2のピアに対し、前記キーと値と前記アダプタのアドレスと、自身のアドレスを含む登録要求を転送すると共に、前記キーと値を記憶するステップと、
前記登録要求を転送された第2のピアが、自身で保持するハッシュ表に前記登録要求に含まれる前記キーと値の組を追加し、前記アダプタに対して自身のアドレスと前記登録要求に含まれる前記第1のピアのアドレスとキーから成る登録先通知を送信するステップと、
前記当録先通知を受信したアダプタが、前記登録先通知に含まれる前記第1のピアのアドレスと、前記第2のピアのアドレスとキーとを記憶し、前記第2のピアに対して接続確認を行い、切断を検知した場合に前記登録要求に含まれる前記第1のピアに対し、前記キーを含む切断通知を送信するステップと、
切断通知を受信した前記第2のピアが、前記通知されたキーに対し、記憶済みのキーと値を再登録するステップと、
を有することを特徴とする分散ハッシュ表管理方法。 - 複数の端末がネットワークを介して接続され、前記それぞれの端末上で動作する第1〜第3のピアを含む複数のピアがハッシュ表の一部を保持して管理し、前記それぞれのピアが互いに通信して前記ハッシュ表の全体管理を行うと共に、前記ピアのそれぞれが、全てのピアで共通に保持するハッシュ関数と、前記ピアのそれぞれが担当するキーと、前記キーに対する値の組とを保持するハッシュ表と、任意のピアヘメッセージを送信するために必要な他のピアのアドレスとを保持して成る、P2Pネットワークシステムにおける分散ハッシュ表管理方法であって、
前記端末上で動作するクライアントが、あるキーと値の組を記憶し、前記クライアントと同一、もしくは他の端末上で動作する第1のピアに対して、前記キーと前記値と前記クライアントと同一の端末上で動作するアダプタのアドレスとを含む登録要求を送信するステップと、
前記登録要求を受信した第1のピアが、前記キーにハッシュ関数演算を実行して得られるハッシュ値に対応する第2のピアを決定し、前記決定された第2のピアに対し、前記キーと値と前記アダプタのアドレスを含む登録要求を転送するステップと、
前記登録要求を転送された第2のピアが、自身で保持するハッシュ表に前記登録要求に含まれるキーと値の組を追加し、前記登録要求に含まれる前記アダプタのアドレスに対し、前記第2のピア自身のアドレスと前記登録要求に含まれるキーと値を含む登録先通知を送信するステップと、
前記登録先通知を受信したアダプタが、前記登録先通知に含まれる前記第2のピアのアドレスと前記キーと値を記憶すると共に、前記第2のピアに対して接続確認を行い、切断を検知した場合に、前記記憶したキーと値と自身のアドレスとを含む登録要求を前記キーにハッシュ関数演算を実行して得られるハッシュ値に対応する第3のピアに送信するステップと、
を有することを特徴とする分散ハッシュ表管理方法。 - 複数の端末がネットワークを介して接続され、前記それぞれの端末上で動作する第1と第2のピアを含む複数のピアがハッシュ表の一部を保持して管理し、前記それぞれのピアが互いに通信して前記ハッシュ表の全体管理を行う、P2Pネットワークシステムにおける分散ハッシュ表管理装置であって、
全てのピアで共通に保持するハッシュ関数と、前記ピアのそれぞれが担当するキーと、前記キーに対する値の組とを保持するハッシュ表と、任意のピアヘメッセージを送信するために必要な他のピアのアドレスとを保持する記憶手段と、
あるキーと値の組を記憶し、自身と同一もしくは他の端末上で動作する第1のピアに対して、前記キーと前記値と自身と同一の端末上で動作するアダプタのアドレスとを含む登録要求を送信する、前記端末上で動作するクライアント機能実行手段と、
前記登録要求を受信し、前記キーにハッシュ関数演算を実行して得られるハッシュ値に対応する第2のピアを決定し、前記決定された第2のピアに対して、前記キーと前記値と前記アダプタのアドレスと前記クライアントのアドレスとを含む登録要求を転送するピア機能実行手段と、
前記登録要求を転送された第2のピアにより、自身が保持するハッシュ表に前記登録要求に含まれるキーと値の組が追加され、送信される、前記第2のピア自身のアドレスと前記登録要求に含まれる前記クライアントのアドレスと前記キーとを含む登録先通知を受信し、前記登録先通知に含まれる前記第2のピアのアドレスと前記クライアントのアドレスと前記キーとを記憶し、前記第2のピアに対して接続確認を行い、切断を検知した場合、前記クライアントに対して前記キーを含む切断通知を送信するアダプタ機能実行手段とを備え、
前記クライアント機能実行手段は、前記アダプタ機能実行手段から前記切断通知を受信し、前記通知されたキーについて既に記憶済みの前記キーと値とを再登録することを特徴とする分散ハッシュ表管理装置。 - 複数の端末がネットワークを介して接続され、前記それぞれの端末上で動作する第1〜第3のピアを含む複数のピアがハッシュ表の一部を保持して管理し、前記それぞれのピアが互いに通信して前記ハッシュ表の全体管理を行う、P2Pネットワークシステムにおける分散ハッシュ表管理装置であって、
全てのピアで共通に保持するハッシュ関数と、前記ピアのそれぞれが担当するキーと、前記キーに対する値の組とを保持するハッシュ表と、任意のピアヘメッセージを送信するために必要な他のピアのアドレスとを保持する記憶手段と、
あるキーと値の組を記憶し、自身と同一もしくは他の端末上で動作する第1のピアに対して、前記キーと前記値と自身と同一の端末上で動作するアダプタのアドレスとを含む登録要求を送信する、前記端末上で動作するクライアント機能実行手段と、
前記登録要求を受信し、前記キーにハッシュ関数演算を実行して得られるハッシュ値に対応する第2のピアを決定し、前記決定された第2のピアに対し、前記キーと値と前記アダプタのアドレスとを含む登録要求を転送すると共に、前記キーと値とを記憶し、前記記憶されたキーと、自身のアドレスを含む登録元通知を前記アダプタに送信するピア機能実行手段と、
前記登録要求を転送された第2のピアにより、自身が保持するハッシュ表に前記登録要求に含まれるキーと値の組が追加され、送信される、前記第2のピア自身のアドレスと前記キーとを含む登録先通知を受信し、前記登録先通知に含まれる前記第2のピアのアドレスとキーとを記憶し、前記第2のピアに対して接続確認を行い、切断を検知した場合に前記キーに対応して記憶済みの第1のピアに対し切断通知を送信するアダプタ機能実行手段とを備え、
前記切断通知を受信した第1のピアにおいて、前記通知されたキーにハッシュ関数を演算して得られるハッシュ値に対応する第3のピアが決定され、前記決定された第3のピアに対して記憶済みのキーと値の登録要求が送信されることを特徴とする分散ハッシュ表管理装置。 - 複数の端末がネットワークを介して接続され、前記それぞれの端末上で動作する第1と第2のピアを含む複数のピアがハッシュ表の一部を保持して管理し、前記それぞれのピアが互いに通信して前記ハッシュ表の全体管理を行う、P2Pネットワークシステムにおける分散ハッシュ表管理装置であって、
全てのピアで共通に保持するハッシュ関数と、前記ピアのそれぞれが担当するキーと、前記キーに対する値の組とを保持するハッシュ表と、任意のピアヘメッセージを送信するために必要な他のピアのアドレスとを保持する記憶手段と、
あるキーと値の組を記憶し、自身と同一もしくは他の端末上で動作する第1のピアに対して、前記キーと前記値と自身と同一の端末上で動作するアダプタのアドレスとを含む登録要求を送信する、前記端末上で動作するクライアント機能実行手段と、
前記登録要求を受信し、前記キーにハッシュ関数を演算して得られるハッシュ値に対応する第2のピアを決定し、前記決定された第2のピアに対し、前記キーと値と前記アダプタのアドレスと、自身のアドレスを含む登録要求を転送すると共に、前記キーと値を記憶するピア機能実行手段と、
前記登録要求が転送された第2のピアにより、自身で保持するハッシュ表に前記登録要求に含まれる前記キーと値の組が追加され、送信される、前記第2のピアのアドレスと前記登録要求に含まれる前記第1のピアのアドレスとキーから成る登録先通知を受信し、前記登録先通知に含まれる前記第2のピアのアドレスと、前記登録要求の前記第1のピアのアドレスとキーとを記憶すると共に、前記第2のピアに対して接続確認を行い、切断を検知した場合に前記登録要求に含まれる前記第1のピアに対し、前記キーを含む切断通知を送信するアダプタ機能実行手段とを備え、
前記切断通知を受信した前記第2のピアにおいて、前記通知されたキーに対し既に記憶済みのキーと値が再登録されることを特徴とする分散ハッシュ表管理装置。 - 複数の端末がネットワークを介して接続され、前記それぞれの端末上で動作する第1〜第3のピアを含む複数のピアがハッシュ表の一部を保持して管理し、前記それぞれのピアが互いに通信して前記ハッシュ表の全体管理を行う、P2Pネットワークシステムにおける分散ハッシュ表管理装置であって、
全てのピアで共通に保持するハッシュ関数と、前記ピアのそれぞれが担当するキーと、前記キーに対する値の組とを保持するハッシュ表と、任意のピアヘメッセージを送信するために必要な他のピアのアドレスとを保持する記憶手段と、
あるキーと値の組を記憶し、自身と同一もしくは他の端末上で動作する第1のピアに対して、前記キーと前記値と自身と同一の端末上で動作するアダプタのアドレスとを含む登録要求を送信する、前記端末上で動作するクライアント機能実行手段と、
前記登録要求を受信し、前記キーにハッシュ関数演算を実行して得られるハッシュ値に対応する第2のピアを決定し、前記決定された第2のピアに対し、前記キーと値と前記アダプタのアドレスを含む登録要求を転送するピア機能実行手段と、
前記登録要求が転送された第2のピアにおいて、自身で保持するハッシュ表に前記登録要求に含まれるキーと値の組が追加され、送信される、前記第2のピア自身のアドレスと前記登録要求に含まれるキーと値を含む登録先通知を受信し、前記登録先通知に含まれる前記第2のピアのアドレスとキーと値を記憶すると共に、前記第2のピアに対して接続確認を行い、切断を検知した場合に、前記記憶したキーと値と自身のアドレスとを含む登録要求を前記キーにハッシュ関数演算を実行して得られるハッシュ値に対応する第3のピアに送信するアダプタ手段と、
を備えたことを特徴とする分散ハッシュ表管理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005061244A JP2006246225A (ja) | 2005-03-04 | 2005-03-04 | P2pネットワークシステムにおける分散ハッシュ管理方法および装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005061244A JP2006246225A (ja) | 2005-03-04 | 2005-03-04 | P2pネットワークシステムにおける分散ハッシュ管理方法および装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006246225A true JP2006246225A (ja) | 2006-09-14 |
Family
ID=37052138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005061244A Pending JP2006246225A (ja) | 2005-03-04 | 2005-03-04 | P2pネットワークシステムにおける分散ハッシュ管理方法および装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006246225A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009089369A (ja) * | 2007-08-29 | 2009-04-23 | Ntt Docomo Inc | 階層的ピアツーピア・ネットワークの最適運用 |
CN112511659A (zh) * | 2017-02-15 | 2021-03-16 | 金钱猫科技股份有限公司 | 一种通过构建hash链表获取终端属性的方法及系统 |
-
2005
- 2005-03-04 JP JP2005061244A patent/JP2006246225A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009089369A (ja) * | 2007-08-29 | 2009-04-23 | Ntt Docomo Inc | 階層的ピアツーピア・ネットワークの最適運用 |
JP4652435B2 (ja) * | 2007-08-29 | 2011-03-16 | 株式会社エヌ・ティ・ティ・ドコモ | 階層的ピアツーピア・ネットワークの最適運用 |
CN112511659A (zh) * | 2017-02-15 | 2021-03-16 | 金钱猫科技股份有限公司 | 一种通过构建hash链表获取终端属性的方法及系统 |
CN112511659B (zh) * | 2017-02-15 | 2023-03-24 | 金钱猫科技股份有限公司 | 一种通过构建hash链表获取终端属性的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhang et al. | Scalable name-based data synchronization for named data networking | |
JP5049344B2 (ja) | ランデブーフェデレーション内の近傍域間通信 | |
US10951395B2 (en) | Data fetching in data exchange networks | |
Tarkoma | Overlay Networks: Toward Information Networking. | |
US20160277463A1 (en) | Multicast flow overlay using registration over a reliable transport | |
JP2009543447A (ja) | ランデブーフェデレーション内の近傍域間通信 | |
KR20170037818A (ko) | 작은 다중 경로 또는 단일 경로 포워딩 상태를 이용한 정보 중심 네트워킹 | |
CN103747083B (zh) | 一种基于ccn的内容推送方法 | |
CN101834783B (zh) | 一种报文转发方法、装置及网络设备 | |
JP5847185B2 (ja) | コンテンツ中心のネットワーク環境でグループ変更に関する情報を用いるコンテンツ共有方法及び装置 | |
JP2006244223A (ja) | P2pコンテンツ転送方法 | |
TWI599201B (zh) | 網路系統及建立資料連線的方法 | |
JP6752141B2 (ja) | パケットを処理するための方法およびフォワーダ | |
JP2011521573A (ja) | オーバレイネットワークにおける分散ハッシュテーブルの維持 | |
Zhang et al. | Partialsync: Efficient synchronization of a partial namespace in ndn | |
Moll et al. | A survey of distributed dataset synchronization in named data networking | |
JP2006246225A (ja) | P2pネットワークシステムにおける分散ハッシュ管理方法および装置 | |
WO2011041969A1 (zh) | 一种支持数据报文主动推送能力的实现方法及系统 | |
JP2023515955A (ja) | ルート更新方法及び装置 | |
JPWO2014102993A1 (ja) | パケット中継装置、パケット転送方法および通信システム | |
JP2014107595A (ja) | 転送プログラム、設定プログラム、送信プログラム、転送装置、設定装置、送信装置、転送方法、設定方法および送信方法 | |
KR101598577B1 (ko) | 해시를 이용한 게시-구독 네트워크 구성 방법 및 통신 지원 방법 | |
Li et al. | Supporting delay tolerant networking: A comparative study of epidemic routing and ndn | |
CN115665042B (zh) | 数据处理方法、装置、用户平面功能实体及存储介质 | |
JP7166359B2 (ja) | ネットワークエンティティのモバイルイベントメッセージの伝播方法 |