JP4335907B2 - ピアツーピアルックアップシステムに対するモビリティチャーン処理のための方法および装置 - Google Patents

ピアツーピアルックアップシステムに対するモビリティチャーン処理のための方法および装置 Download PDF

Info

Publication number
JP4335907B2
JP4335907B2 JP2006344352A JP2006344352A JP4335907B2 JP 4335907 B2 JP4335907 B2 JP 4335907B2 JP 2006344352 A JP2006344352 A JP 2006344352A JP 2006344352 A JP2006344352 A JP 2006344352A JP 4335907 B2 JP4335907 B2 JP 4335907B2
Authority
JP
Japan
Prior art keywords
node
peer
address
key
predecessor
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.)
Active
Application number
JP2006344352A
Other languages
English (en)
Other versions
JP2007174672A (ja
Inventor
アツシ・ミノクチ
ヴォルフガンク・ケレラー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NTT Docomo Inc filed Critical NTT Docomo Inc
Publication of JP2007174672A publication Critical patent/JP2007174672A/ja
Application granted granted Critical
Publication of JP4335907B2 publication Critical patent/JP4335907B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/30Managing network names, e.g. use of aliases or nicknames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5076Update or notification mechanisms, e.g. DynDNS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5084Providing for device mobility
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1048Departure or maintenance mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/30Types of network names
    • H04L2101/365Application layer names, e.g. buddy names, unstructured names chosen by a user or home appliance name
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、ピアツーピアルックアップシステム、特に構造化ピアツーピアルックアップシステムに対するモビリティチャーン(離脱)処理(mobility churn handling)のための方法および装置に関する。
ピアツーピアルックアップシステムは、あるオブジェクトのキーに基づいて該オブジェクトの位置を解決するための分散型システムである。構造化ピアツーピアルックアップシステムは、オーバーレイトポロジーおよびデータ配置が厳重に制御されたピアツーピアルックアップシステムである。この構造化ピアツーピアルックアップシステムは、Chordという名前のシステムとして既に実現されており、非特許文献1に記載されている。
以下、図1を参照して、Chordなどの構造化ピアツーピアルックアップシステムの基本的な動作について説明する。
図1は、ノードN1〜N51から成るリング型ネットワークを示している。ここで各ノードは、2つの近傍、つまりプレデセサ(predecessor)とサクセサ(successor)とを有している。Chordは、オブジェクトを検索するためにいわゆる分散ハッシュテーブル(DHT:distributed hash table)を利用する。このため各オブジェクトは、キーと呼ばれるmビットの識別子が割り当てられる。このキーは、SHA−1などのハッシュ関数によって構成されるとmビットの識別子となる。さらに、リング内の各ノードのIPアドレスも、同様にハッシュ関数によって構成される、対応するmビットの識別子を有する。ハッシュ関数は、IPアドレスを対応するmビットの識別子へと変換し、ノード識別子を構成する。オブジェクトは(キー、値)のペアによって特定される。ここで、キーはオブジェクトの識別子であり、値は、該オブジェクトが位置するノードのIPアドレスである。Chordリング内にシステマティックに分散している、これら(キー、値)のペアにより、オブジェクトが検索される。識別子の長さがmであるとすると、識別子は識別子円において2mを法として順序付けがなされる。
(キー、値)のペアの分散化は、以下のように実行される。各ノードは、該ノードの識別子とそのプレデセサの識別子との間の範囲内にあるキーを受け持つ。言い換えると、あるノードは、そのプレデセサのノード識別子よりも大きく、かつ最大でも該ノードのノード識別子と同じ大きさのキーを伴った(キー、値)のペアが割り当てられる。この様子を図1に概略的に示している。この図によれば、識別子51を有するノード(ノードN51)は、キーK49とK50とK51とを受け持つことがわかる。
サーチリクエストを発行することによりあるオブジェクトを検索する場合、該オブジェクトが保存されているノードを見つける必要がある。そのため、該オブジェクトに対応する(キー、値)のペアが保存されているノードを検索する必要がある。これは、サーチリクエストをリング内のノードに沿って送信することにより実行できる。しかしながら、このようなアプローチは、大規模な構造に拡張することはできない。
この手順を改善するために、各ノードは、別のルーティング情報、すなわち最大でm個のエントリを有するテーブルであるいわゆるフィンガーテーブルを含んでいる。該テーブル内のノードnにおける第i番目のエントリは、識別子円内でnから少なくとも2i-1だけ進んだ先にある最初のノードsの識別子を含んでいる。つまり、
s=successor(n+2i-1)、ここで1≦i≦m(全ての計算は2mを法とする)。
ノードsは、ノードnの第i番目のフィンガーと呼ばれ、n.finger[i]と表される。
したがってフィンガーテーブルは、あるキーに対するサーチクエリを、隣接するサクセサをバイパスし、フィンガーテーブルにより特定される有力なターゲットに向けてどのように効率よく転送するかをノードに指示するスキップリストと見なすことができる。図1には、ノードN8(ノード識別子8)に対するフィンガーテーブルが示されている。
最初のフィンガーは、(8+20)mod26=9だけ進んだ先にある最初のノード14を示している。
同様にノード8の最後のフィンガーは、(8+25)mod26=40だけ進んだ先にある最初のノード42を示している。フィンガーテーブルのエントリは、ノード識別子とそれに対応するIPアドレスとを含んでいる。
あるサーチリクエストによりあるキーを検索する場合、該リクエストを処理するノードとそのサクセサとの間に該キーが存在するかどうかをチェックする。存在しない場合、該リクエストは、検索されるキーに対応する、直近の先行ノード(closest preceding node)に向けて転送される。
図2は、キーK54に対するサーチリクエストが、ノードN8に到達した場合または該ノードにより発行された場合の様子を示している。キーK54は、N8とそのサクセサN14との間には存在していない。したがって、該サーチリクエストはノード42に向けて転送される。このノード42は、該検索されるキーに最も近い識別子を有するノードであって、かつ該検索されるキーの後続のノードではないノードである。次にノードN42が自己のフィンガーテーブルをチェックし、該フィンガーテーブルにおいて、検索されるキーK54に先行する最大のノードとしてノードN51を検出する。続いてノードN51は、自己のサクセサN56が検索されるキーK54の後続であることを検出し、ノードN8に向けてノード56を検索結果として返却する。続いてノードN8は、ノードN56に保存されているキーK54と、K54に対応するオブジェクトが実際に保存されているノードを示す、対応するIPアドレスとを取得するためにノードN56と直接通信する。
したがって、検索するキーに等しいかまたは該検索キーより大きなIDを有するノードに最も近い先行ノードであるノードを検索することにより、キーの検索が行われる。この最も近い先行ノードは、そのサクセサノードが該検索するキーを保存していることから、クエリを導くことのできるノードとして該サクセサノードを返却する。
図1に示されているリングは必ずしも静的なものではなく、ノードがリングに参加(join)したりリングから離脱(leave)したりする。この様子は図3に概略的に示されている。図3(a)は、ノードN21がノードN32の前にある状態を示している。図3(b)に示されているように、識別子N26が割り当てられた新たなノードがリングに参加しようとしている。その新たなノードの識別子はノードN21とノードN32との間に位置付けられるので、ノードN26はそれらの間の位置においてリングに参加する。K24などのキーは、その識別子によれば新たなノードN26に位置すべきものなのでノードN26に向けて転送される。転送が完了すると(図3(c)参照)、ノードN26はノードN32に通知し、キーK24はノードN32から削除される。
同様に、ノードN26がリングから離脱する場合、時間が許せば、離脱するノードのキーはそのサクセサに転送される。
ピアツーピアルックアップシステムの基本的な特徴は、ノードが独立して参加および離脱をすることができるということである。これは、構造化されていないシステムよりも構造化システムに対して多くの影響を与える。システムが理想的な状態にあれば、リッチな構造はスケーラブルで決定論的なキーの検索を可能にするが、継続的に発展しているシステムは、ほぼ決して理想的な状態に戻ることはない。ノードの参加および離脱のプロセスが継続的である場合、チャーン(変動、離脱)は、ピアツーピアルックアップシステム、特に構造化システムにとって基本的な問題である。
構造化システムにおいてチャーンを処理するためのいくつかの研究がなされている。理論的な研究が非特許文献2に記載されている。研究に基づいたシミュレーションは非特許文献3および非特許文献4に記載されている。
非特許文献4では、有線アクセスノードを含む、基礎となるシステムから無線アクセスノードを含む、基礎となるシステムに至るまで、主な利用シナリオの変化の動向が指摘されている。HSIAOらは、モビリティチャーンをノードの移動によるチャーンとして定義し、通常のチャーンをノードの参加および離脱によるチャーンとして定義している。ここで基礎となるネットワークは個別のモビリティ管理機能を全く持っていないという想定のもとで、HSIAOらは、モビリティチャーンが通常のチャーン処理手順を使用して処理される場合のシステム性能を広範囲にわたって評価している。
Chordと呼ばれるシステムによって行われ、非特許文献1にも記載されている、ノードの参加および離脱を処理するための、従来のチャーン処理手順について以下詳しく説明する。
最初にノードの参加を処理するための手順について説明する。
1.参加
あるノードがシステムに参加する際、最初にそのノードについてのシステム内の識別子が、基本となるハッシュ関数としてSHA−1を用いて、そのノードのIPアドレスをハッシュすることにより選択される(図3の例では識別子は26である)。次にノードのサクセサ(図3(a)におけるノードN32)が、以下の3つの手順のうちの第3番目の手順を利用して見出される。この第3番目の手順は、第1番目および第2番目の手順によってサポートされる。
Figure 0004335907
ここで、ノードはサイクルではなく付属物としてシステムに参加している(図3(b))。この時点でノードはキーを受け持っていない。次に安定化の手順が定期的または必要と認められるときに呼び出される。新たに参加したノードは、以下の疑似コードで書かれた2つの手順のうちの最初の手順を実行することにより、そのサクセサに自身がプレデセサになったことを通知する。このとき、新たに参加したノードに属することになるキーは、該新たに参加したノードにおいて複製される(図3(c))。続いて、新たに参加したノードのプレデセサは、以下の疑似コードで書かれた2つの手順のうちの第2番目の手順を実行することにより、自己のサクセサが新たに参加したノードであることを認識する。またこの手順により、新たに参加したノードに対して自身がそのプレデセサであることが通知される(図3(d))。
Figure 0004335907
新たに参加したノードはいまやシステム内のサイクルに取り込まれている(encompassed)。一方でフィンガーテーブルとサクセサリストとを作成する手順が、以下のように定期的に呼び出される。
Figure 0004335907
ここで、新たに参加したノードにおいて複製されたキーは、そのサクセサから削除される。
次に、ノードがシステムを離脱する際の手順について説明する。
2.離脱
本目的のため、Chordは、ノードが新たなプレデセサを受け入れることを可能にする以下のような手順を有する。
Figure 0004335907
サクセサも以下のようにチェックされる。
Figure 0004335907
Chordシステムは、ノードが(非自発的に)離脱するための手順として、ノードが離脱した後システムを維持するために定期的に呼び出される上記手順1と2以外の手順は全く有していない。これらの手順は、離脱が行われたときにネットワークを安定化させることから、「安定化手順」(stabilization procedure)と呼ばれる。しかしながら、これらは離脱が一時的なものである場合があるという点を考慮していない。
次に、ノードが自発的に離脱する場合について説明する。
3.ノードの自発的な離脱
ノードが自発的に離脱する方法においては、離脱するノードは、離脱前に自己のキーをサクセサに対し転送するとともに、自己のプレデセサとサクセサとに対し離脱する旨を通知する。
STOICA, I., MORRIS, R., LIBEN−NOWELL, D., KARGER, D. R., KAASHOEK, M. F., DABEK, F., AND BALAKRISHNAN, H. Chord: A Scalable Peer−to−Peer Lookup Pervice for Internet Applications. IEEE/ACM TRANSACTIONS NETWORKING, VOL. 11, NO. 1, February 2003 LIBEN−NOWELL, D., BALAKRISHNAN, H., AND KARGER, D. Analysis of the Evolution of Peer−to−Peer Systems, in Proc. ACM PODC 2002, July 2002 RHEA, S., GEELS, D., ROSCOE, T., AND KUBIATOWICZ, J. Handling Churn in a DHT. In Proc. USENIX’04, June 2004 HSIAO, H. C., AND KING, C. T. Mobility Churn in DHTs. In Proc. IEEE ICDCSW’05, June 2005
しかし例えばChordシステムで採用されている、上述した従来のチャーン処理手順は、モビリティチャーンを処理するには効果的ではない。
ノードがシステムに接続した状態を継続しながらもシステムからの一時的な離脱に伴い、そのアドレスを頻繁に変更するというシナリオがいくつか存在する。このようなシナリオの例として、ノードが移動する(nomadic)シナリオ、例えばWLANホットスポットにおいてIPアドレスを割り当てるためにDHCPを使用するシナリオ、またはノードにもともと割り当てられていたIPアドレスをNATが変換するシナリオなどがある。以下の説明では、これらのシナリオをモビリティシナリオと呼び、モビリティシナリオによって引き起こされるチャーンをモビリティチャーンと呼ぶことにする。
ノードのシステムへの「参加」とシステムからの「離脱」とを処理する既存の通常のチャーン処理手順は、現実のノード参加と現実のノード障害とノードの自発的な離脱とに関する限りうまく機能する。しかしながら、ノードがモビリティシナリオで動作し、自発的な離脱の準備をするのに十分な時間がない場合には問題が生じる。既存のシステムにおいて、このノードの挙動は頻繁な障害および参加であると見なされ、チャーンを引き起こす。このモビリティチャーンを処理するための従来の手順ではシステムへの負荷が増え、非効率的である。そのため構造化システムは不安定になり、その結果システムはもはや効率的ではなくなり、極端な場合にはシステムが破綻する。
以上のことから本発明の目的は、モビリティチャーンを処理するための改善された方法を提供することにある。
一実施形態によれば、モビリティチャーンは他のタイプのチャーンとは区別され、他のタイプのチャーンとは異なる方法で別個に処理される。これによりモビリティチャーンを隠すこと(hiding)でシステムを安定化させることができる。
例えば、ノードは、実際にはシステムを離脱せずに、またはシステムを離脱するつもりがないにも関わらず自己のIPアドレスを変更している場合がある。それゆえ、こうしたケースをシステムの通常の離脱とは異なる方法で処理することは有利である。
一実施形態によれば、あるノードが自己のIPアドレスを変更可能な構造化ピアツーピアシステムにおいてモビリティチャーンを処理するための方法であって、変更され得るIPアドレスと、変更されることのない一意なネーミング識別子とにより、前記ピアツーピアシステム内の各ノードを特定するステップと、各ノードの一意なネーミング識別子に基づいて、前記構造化ピアツーピアシステムにおける各ノードの位置を各ノードに対して割り当てるステップと、あるノードが前記ピアツーピアシステムを一時的に離脱した後に前記ピアツーピアシステムに戻る場合、前記構造化ピアツーピアシステム内の位置に戻り、前記ピアツーピアシステム内のメンバノードに対して該ノードの新たなIPアドレスを通知するステップと、前記ピアツーピアシステム内の他のノードに対して、システムに戻った前記ノードがIPアドレスの変更についての通知を送信し終えるまで、該ノードを指し示すフィンガーテーブル内のエントリの使用をサスペンドするよう通知するステップとを含む方法が提供される。
この実施形態によれば、基礎となるネットワークがモビリティ管理機能を全く有していないという想定のもとでも、モビリティチャーンを処理し、モビリティチャーンを隠すことでシステムを安定化させる方法が提案される。これにより、既存の構造化ピアツーピアルックアップシステムの改善がもたらされる。
前記ピアツーピアシステム内の他のノードに対して、ノードのアドレスの変更についての通知の送信が完了するまで、そのノードを指し示すフィンガーテーブル内のエントリの使用をサスペンドすることが通知される。これにより、そのノードに向けてクエリを送ろうとしているあるノードがそのクエリを何度も再送したり、タイムアウトが何度も起きたりするような状況が回避される。その結果、ノードはフィンガーテーブル内で前記ノードを指し示すものから1レベルを除いたエントリを使用する。これらのタイムアウトは検索時間を長くする。この実施形態では、フィンガーテーブル内の不完全なエントリはサスペンドされ、これによりノードはフィンガーテーブル内の適切なエントリを迅速に選択し、これらタイムアウトを回避することができる。
一実施形態によれば、前記方法は、あるノードがそのIPアドレスの変更により前記構造化ピアツーピアシステムから離脱する場合に、タイマーを所定の時間にセットするステップと、前記所定の時間内に前記ノードが前記ピアツーピアシステムに戻る場合に、前記構造化ピアツーピアシステム内の位置に戻り、前記ピアツーピアシステム内のメンバノードに対して前記ノードの新たなIPアドレスを通知するステップと を更に含む。
これは、モビリティチャーンは通常は一時的な現象であることと、モビリティチャーンにより離脱したノードは適切な時間内に戻るはずであり、もしそうでなければ、その離脱は一時的なものではなく永続的なものであると見なすことができることとを考慮している。
一実施形態によれば、前記方法は、前記ノードにアクセスしたノードを記録するアクセスログテーブルを管理するステップと、前記ピアツーピアシステムを離脱した前記ノードが前記システムに戻った場合に、前記アクセスログテーブル内のノードに対して、前記戻ったノードの新たなIPアドレスを通知するステップとを更に含む。
前記アクセスログテーブルにより、関連するノードに対して、一時的に離脱していたノードの新たなアドレスについて通知することが可能となる。
一実施形態によれば、前記アクセスログテーブルは、前記離脱したノードにアクセスした任意のノードと、自己のフィンガーテーブル内に前記離脱したノードを有する任意のノードとを含む。
これは、あるノードへのアクセスが、別のノードにより、このノードを対象とするクエリ、または別のノードのフィンガーテーブル内にこのノードを含めたことにより生じる場合があることを考慮するものである。
一実施形態によれば、前記方法は、前記ノードに保存されていたキーを、前記キーを対象とするクエリに対して補助的に応答する別のノードへと複製するステップを更に含む。
キーを複製することで、離脱したノードが受け持っていたキーを対象とするクエリであっても応答を得ることができる。
一実施形態によれば、前記複製されたキーの1つを対象とするクエリに対する、補助的なノードによって返却される応答は、補助的なノードによって返却されたものであるとしてマーク付けがなされる。
こうすることにより、その応答を受け取ったノードがそれを「一時的なもの」として取り扱うことが可能となる。したがって、これらノードは、離脱したノードがシステムに戻った場合に、更なる同一のクエリに対して異なる結果が返却される場合があることに備えることができる。
一実施形態によれば、前記方法は、ノードBのプレデセサがノードAであり、ノードBのサクセサがノードCである場合に、前記ノードBのキーを前記ノードCへ複製し、前記ノードCが、複製されたキーに対するセカンダリキーハンドラであることを前記ノードCに通知するステップと、前記ノードBが前記システムを離脱している間、ノードC内のキーを対象とするクエリに対して、前記ノードAが前記ノードCの受信アクセスハンドラであることを前記ノードAに通知するステップとを更に含む。
これにより、ノードが離脱しても、システムの完全な機能性を維持することが可能となる。
一実施形態によれば、あるノードが自己のIPアドレスを変更可能な構造化ピアツーピアシステムにおいてモビリティチャーンを処理するための装置であって、変更され得るIPアドレスと、変更されることのない一意なネーミング識別子とにより、前記ピアツーピアシステム内の各ノードを特定する特定ユニットと、各ノードの一意なネーミング識別子に基づいて、前記構造化ピアツーピアシステムにおける各ノードの位置を各ノードに対して割り当てる割り当てユニットと、あるノードが前記ピアツーピアシステムを一時的に離脱した後に前記ピアツーピアシステムに戻る場合、前記構造化ピアツーピアシステム内の自己の位置に戻ることを可能にし、前記ピアツーピアシステム内のメンバノードに対して該ノードの新たなIPアドレスを通知するリターンユニットと、前記ピアツーピアシステム内の他のノードに対して、システムに戻った前記ノードのアドレス変更についての通知の送信が完了するまで、該ノードを指し示すフィンガーテーブル内のエントリの使用をサスペンドするよう通知する通知ユニットとを備える装置が提供される。
一実施形態によれば、前記装置は、前記ピアツーピアシステム内の他のノードに対して、システムに戻った前記ノードのアドレス変更についての通知の送信が完了するまで、そのノードを指し示すフィンガーテーブル内のエントリの使用をサスペンドするよう通知する通知ユニットを更に備える。
一実施形態によれば、前記装置は、前記離脱したノードへアクセスしたノードまたはフィンガーテーブル内に前記ノードを有するノードを記録するアクセスログテーブルを管理する管理ユニットと、前記ピアツーピアシステムを離脱した前記ノードが前記システムに戻った場合に、前記アクセスログテーブル内のノードに対して、前記戻ったノードの新たなIPアドレスを通知する通知ユニットとを更に備える。
一実施形態によれば、前記装置は、前記ノードに保存されていたキーを、前記キーを対象とするクエリに対して補助的に応答する別のノードへと複製する複製ユニットを更に備える。
一実施形態によれば、前記複製されたキーの1つを対象とするクエリに対する、補助的なノードによって返却される応答は、補助的なノードによって返却されたものであるとしてマーク付けがなされる。
一実施形態によれば、前記装置は、ノードBのプレデセサがノードAであり、ノードBのサクセサがノードCである場合に、前記ノードBのキーを前記ノードCへ複製し、前記ノードCが、複製されたキーに対するセカンダリキーハンドラであることを前記ノードCに通知する手段と、前記ノードBが前記システムを離脱している間、前記ノードC内のキーを対象とするクエリに対して、前記ノードAが前記ノードCの受信アクセスハンドラであることを前記ノードAに通知する手段とを更に備える。
一実施形態によれば、前記キーは、クエリを行ったノードが、離脱したノードの代わりに通信する1つ以上のノードのアドレスを含んだ値を伴う。
これによって本発明の一実施形態によれば、位置管理を行うことが可能となる。
一実施形態によれば、コンピュータ上で、本発明のいずれか1つの実施形態に基づく方法を実行可能にするコンピュータ実行可能なコードを含むコンピュータプログラムが提供される。
以下、本発明の典型的な実施形態について詳細に説明する。
一実施形態によれば、システムと接続した状態を継続しつつも1回以上のシステムからの一時的な離脱にともなってアドレスを頻繁にまたは一時的に変更するノードを特定することを可能にする方法が提供される。この目的のため、一実施形態によれば、ノードの識別子(例えばURIなどの読み取り可能なネーミングスキームに基づく識別子、またはノードに割り当てられ、変更されることのないMACアドレスその他の一意の識別子)は、そのIPアドレスとは明確に区別される。言い換えると、このような識別子は、変更可能なIPアドレスに加えてノードの追加的な識別子として取り扱われる。ノードにはこのような識別子が割り当てられる。構造化ピアツーピアシステムにおけるノードの位置は、IPアドレスよりもむしろこの識別子に基づいている。これは、IPアドレスが変更される場合に、ノードがピアツーピアシステムにおける新たな位置を想定する必要はないという効果を有する。代わりに、ノードはピアツーピアシステム内で以前と同じ位置でその機能をレジュームすることができる。その他のノードは、該ノードと通信またはクエリを該ノードへ導くことができるように該ノードの新たなIPアドレスについて通知される。新たなIPアドレスについての通知が完了すると、そのノードはピアツーピアシステム内でその機能をレジュームする。
一実施形態によれば、サスペンドメッセージは、離脱したノードが入力されたフィンガーテーブル内のエントリを用いたクエリは今後一切転送されないようにすることができるという効果を持つ。本発明の別の実施形態によれば、サスペンドメッセージは、いま離脱している(またはIPアドレスを変更した)ノードとすでに一度は通信したことのある任意のノードが、以前に使用されていたIPアドレスを用いて直接通信することはしないという効果だけを持つ。しかしながら、このノードに対するクエリが依然発行される可能性があり、後に説明する一実施形態によれば、このようなクエリは、離脱しているノードに代わり補助的な役割を果たす異なるノードにより応答することができる。
ピアツーピア構造内でノードの位置を特定するためにIPアドレスではなく一意の識別子が使用されるという前述の実施形態による方法は、ピアツーピアシステムの任意の構造またはトポロジーと組み合わせて使用できるという点に注意すべきである。したがって、以下の説明では本発明の実施形態についてリング型構造を例にとって詳しく説明するが、他の構造またはトポロジーも本発明の実施形態と組み合わせて使用することができる。
一実施形態によれば、ピアツーピア構造におけるクエリのルーティングは、フィンガーテーブルを利用することによりスピードが速くなる。一意のネーミング識別子を提供することで、一意のネーミング識別子に加えて各エントリのIPアドレスを明示的に含むフィンガーテーブルとサクセサリストとを定義することができる。ノードが非自発的に離脱した後十分短い時間内にシステムに戻るとき、そのノードは(例えば、一実施形態においてはChordシステムの場合のようにリング型の)ピアツーピアシステム内の離脱前と同じ位置に戻る。このときプレデセサとサクセサも離脱前と同じである。既存のシステムとは対照的に、システムにおいてそのノードを移転する必要はない。むしろ戻ったノードはその新たなIPアドレスを通信するだけでシステム内に再び組み込まれる。
この目的のため、一実施形態によれば、ノードごとにその識別子n_idとアドレスn_address(例えばIPアドレス)とが与えられる。n_idは固定であり、例えばベースとなるハッシュ関数としてSHA−1を用いて、ノード名(例えば読み取り可能な別のネーミングスキームに基づく別のネーム識別子またはMACアドレス)をハッシュすることにより選択される。n_addressは変更可能である。フィンガーテーブル内のエントリに関して言えば、これらエントリはIPアドレスと一意の識別子とを含み、次のように表すことができる。
Figure 0004335907
各ノードには、サクセサ、または更にサクセサのサクセサリストも割り当てられる。このサクセサリストも同じ方法で表すことができる。
一実施形態によれば、ノードの離脱を処理する手順は、以下の仕組みに基づいている。ノードが離脱すると、このノードに関するクエリは、このノードがシステムに再度参加し、その新たなアドレスがその他のノードに配信されるまで、ある意味において「一時中断」または「サスペンド」される。以下、この実施形態について図4を参照して説明する。図4の実施形態は、トポロジーに関してStorica等の文献に記載されているものと同様のリング型ピアツーピア構造に関係している。しかしながら、Storica等とは対照的に、モビリティチャーンを処理するための具体的な仕組みが、以下に述べるように提供される。
図4Aは、(ノードAに保存された)キーに対する基本的なクエリの仕組みを示している。このようなクエリは、ノード内のフィンガーテーブルを使って最初にノードAのプレデセサを見つけることによりノードAに導かれる。ノードAのプレデセサが見つかると、このノードはそのサクセサのIDを当該クエリの発信元であるノードへ返却し、当該クエリは通知されたサクセサに導かれるべきであることをこのノードに通知するという意味で、このノードはそのサクセサに対する「受信アクセスハンドラ」の機能を果たす。続いて当該クエリは通知されたサクセサに導かれ、そのサクセサは検索対象のキーに対応するIPアドレスを返却することによりそのクエリに応答する。
図4Bは、一実施形態による、ノードAの離脱の処理の様子を示している。受信アクセスハンドラである、ノードAのプレデセサは、ノードAにアクセスしたノードをアクセスログテーブルに記録する。ノードAのアクセスログテーブルは、ノードAのプレデセサに保存されるものであり、一定の時間内にノードAにアクセスしたノードのリストである。このアクセスログテーブルは、ノードAに保存されたキーに対するクエリを発行したノードだけではなく、フィンガーテーブル内にノードAを含んでいるノードも含むことができる。ノードAのプレデセサはノードAへの全てのクエリが集約されるノードであることと、別のノードのフィンガーテーブル内にノードAがエントリされているということは、ノードAのプレデセサがこのノードからアクセスされたということを意味することとから、ノードAのプレデセサは、ノードAにアクセスしたことのあるノードであって、フィンガーテーブル内にノードAを有する全てのノードを認識している。アクセスログテーブル内の各エントリは、ノードの識別子とそのアドレス(IPアドレス)とから成る。
ノードAがそのアドレスを変更または離脱するとき、一実施形態によれば、ノードAはプレデセサにその旨を通知し、それにより所定の時間timer_as_predecessorに設定されたタイマーをトリガする。このタイマーが時間切れしていない限りは(この時間を「移行時間」とも呼ばれる)、ノードAのプレデセサは依然として自己をノードAのプレデセサと見なす。
一実施形態によれば、プレデセサは、例えばネットワーク上で実行される安定化の手順に基づいてノードAが離脱することを認識する。この手順ではノードAの直後のサクセサが確認されることから、プレデセサはノードAが離脱したことを認識することができる。
さらに、ノードAのプレデセサは、保存されているアクセスログテーブル内のノードへサスペンドメッセージを送り、ノードAは離脱していて現時点では通信不能であることを通知する。この仕組みにより、ノードAのアクセスログテーブルに含まれるノードは、ノードAへのルーティングによりその移行時間中に引き起こされるクエリまたはユーザデータの不要な再送を避けることができる。この仕組みは、クエリの頻度が高くノードAの移行時間が長いときに特に役立つ。ノードAのプレデセサは、ノードAのアクセスログテーブルを保存し、そのテーブルに含まれる各ノードにメッセージを送り、ノードAがシステムを離脱した後にノードAに対するフィンガーテーブル内のエントリをサスペンドすべきであることをそのメッセージを通じて要求する(このメッセージはサスペンドメッセージと呼ばれる)。各ノードがレジュームメッセージ、つまり、新たなアドレスを伴った、離脱していて戻ったノードAのアドレスA_addressの変更の通知を受信すると、サスペンド状態はレジュームされる。
ノードAがその新たなアドレスについてそのプレデセサに通知し、さらにtimer_as_predecessorに設定されたタイマーがまだ時間切れになっていない場合、ノードAのプレデセサは、アクセスログテーブルに含まれるエントリに対応するノードであってサスペンドメッセージを受信したノードに対し、レジュームメッセージを送りノードAの新たなアドレスについて通知する。こうして、これらのノードはノードAがピアツーピアシステムに再度参加したことを認識し、再びノードAと通信可能となる。
したがって、ノードの離脱が一時的な「移行時間」と、ノードの一時的ではない離脱とが区別される。一実施形態による「移行時間」の間は、通常の仕組みではちょうど「サスペンド」状態にあり、移行段階が完了したときに「レジューム」される。
一実施形態によれば、ノードAのプレデセサは、非特許文献1に記載されておりここでも既に説明したそれ自体のfind_successor(id)の手順をモニタすることで、ノードAのアクセスログテーブルにリストされる必要のあるノードを認識する。一実施形態によれば、ノードAのプレデセサは大きすぎない適切なサイズのテーブルを保持する。既に言及したように、ノードAの一意の識別子A_idは変更されないので、ノードAは常にピアツーピア構造内の以前と同じ位置へ戻る。そしてノードAが非自発的な離脱後、先行するノードに関して更なる変更が一切ないぐらい十分に短い時間内にシステムに戻る場合には、ノードAのプレデセサも以前と同じノードである。
ノードAが非自発的な離脱の後十分短い時間内にシステムに戻るとき、ノードAは、そのプレデセサに対してノードAのアクセスログテーブルに含まれるノードにA_address(ノードAのIPアドレス)の変更を通知させる。当然のことながら、ノードAのプレデセサ自体もA_addressの変更を認識する。次にノードAのプレデセサは、更にそのプレデセサに対し変更をサクセサリストに反映すべきことを通知し、適切なレベルまでこれは続く。「適切なレベル」とはここでは、サクセサリストにノードAが現れる全てのプレデセサが、それらのサクセサリスト内のノードAのアドレスを更新するまで、ノードAの新たなアドレスについて更なるプレデセサに通知することを意味する。ノードAはそのサクセサにもアドレスの変更を通知する。新たなアドレスについての通知は、再度参加したノードAに関して通常の手順のレジュームをトリガすることから「レジュームメッセージ」と呼ばれる。
既に言及したタイムアウトに関して言えば、この仕組みにより、ノードAのプレデセサはそのままの状態を続け、ノードAのサクセサのプレデセサになることを防ぐことができる。ノードの離脱といったネットワークにおける変更を処理する通常の「安定化の手順」が、移行時間と比べて短い時間内あるいは同程度の時間内に実行されるならば、ネットワークシステムの安定化の手順は、ノードAのプレデセサに新たな役割、すなわちノードAが離脱したことによるノードAのサクセサのプレデセサの役割を割り当てようとすることができる。こうしたケースでは、設定されたタイマーはノードAのプレデセサの役割の変更を防止し、ネットワーク管理構造の対応する変更を防止する。ノードAがシステムを離脱した後、A.predecessor.timer_as_predecessorは所定の値に設定される。タイマーが時間切れした場合には、ノードAのプレデセサは通常のノードの離脱が起きたものと見なし、ノードAのプレデセサは、ノードAのサクセサのプレデセサとしての新たな役割を引き受けることができる。しかしながら、タイマーが時間切れになるまでは、ノードAのプレデセサは、ノードAをそのサクセサと見なし続ける。
次に、システムのロバスト性を向上させることに重点を置いた更なる実施形態について説明する。この実施形態は、キーのような重要なキーワードを適切に複製することまたは情報をルーティングすることに基づいている。この仕組みは、ノードAの移行時間の間でも適切な検索を可能にし、ノードごとに2つのサクセサ(「通常の」サクセサと「セカンダリ」サクセサ)と、2つのキーハンドラ(「通常」のキーハンドラと「セカンダリ」キーハンドラ)とを定義することにより実現される。
以下、この実施形態について図5を参照して説明する。ノードAのプレデセサは、ノードAの移行時間の間にクエリが送られてきたときには、サクセサとしてsuccessor_auxiliary(これはノードAのサクセサである)を利用する。ノードAのキーはノードAのサクセサへ複製されており、ノードAのサクセサがノードAに代わって「セカンダリキーハンドラ」としてクエリに応答する機能を果たすことができるようになっている。ノードAのサクセサはこれによってノードAのプレデセサに対するsuccessor_auxiliaryとなる。
しかしながら、一実施形態によれば、この場合にはセカンダリキーハンドラによって返却されたクエリに対する応答は、successor_auxiliaryが使用されていることを示すフラグを含む。
successor_auxiliaryが使用される場合、ノードAのサクセサに対するアクセスログテーブルはノードAのプレデセサに保存されている。続いてこのアクセスログテーブルは、ノードAのサクセサとノードAのプレデセサとの間でピアツーピアシステムに後で参加する任意のノード(例えば戻ってきたノードA)に転送される。
次に、更なる実施形態として、図6を参照して個々のノードの役割、特にノードBがシステムを離脱する場合においてノードAのプレデセサとノードAのサクセサとがノードAに関して有する役割について詳しく説明する。ノードAのプレデセサは、フィンガーテーブル内にノードAを有するノードまたはノードAが保存するキーにアクセスしたノードを認識している。ノードAがシステムを完全に離脱した後、ノードAのサクセサは元々ノードAに属していたキーを引き受ける。図6にはこれらの役割が示されている。図6中、ノードAのプレデセサはノードAの受信アクセスハンドラの役割を果たし、ノードBの(前の)サクセサ(ノードBがシステムを離脱する直前までのノードBのサクセサ)は、ノードAのセカンダリキーハンドラの役割を果たす。
この実施形態によれば、ノードの一連の参加および離脱に対するシステムのロバスト性は、ノードとそのプレデセサとそのサクセサとの間の役割の関係を保つことで改善することができる。図6にその関係を示している。この図の中のノードBがシステムを離脱する場合、ノードCのアクセスログテーブルは失われる。このアクセスログテーブルは何らかの方法で保護する必要がある。そこでノードAに保存されたノードBのアクセスログテーブルは、ノードAのプレデセサへ事前に複製される。
同様に、ノードAのプレデセサに保存されているノードAのアクセスログテーブルは、ノードAのプレデセサのプレデセサへ複製される。そうすることでアクセスログテーブルは保護できる。
一実施形態によれば、ノードの移行時間の間、そのノードがクエリに応答するタスクは、セカンダリキーハンドラとして動作する後続のノードに引き継がれる。離脱するノードのプレデセサは、そのセカンダリキーハンドラへのアクセスをエントリとして有する別個のアクセスログテーブルを持っている。離脱したノードがネットワークに戻るとすぐに、その別個のアクセスログテーブルはその戻ったノードが保管するアクセスログテーブルと同期をとる。ただし、この場合エントリの整合性が求められるために注意が必要である。
上述した実施形態は、モビリティチャーンを隠すことにより、不安定な環境にある構造化ピアツーピアルックアップシステムを安定化させ、システム内の検索処理の精度と性能も改善させる。
既存のシステムでは、モビリティシナリオにおいてノードに保存されているキーは、そのノードが移動した後はキーの発行ノードがそのキーを再発行するまで失われる。これに対し、上述した本発明の実施形態では、これらのキーはシステム内に保持され、実施形態によっては、ノードの移行時間の間もそれらキーにアクセスすることが可能である。
既存のシステムでは、モビリティシナリオにおいてノードが移動するとき、フィンガーテーブル内の古くなった(stale)エントリは、検索処理において頻繁なタイムアウトを引き起こし、検索時間を長くする。上記の実施形態では、フィンガーテーブル内の古くなったエントリは削除された後、更新される。このようにすることでタイムアウトの回数は減少する。
次に、図7Aおよび図7Bを参照して、位置管理(Location Management)に重点を置いた更なる実施形態について説明する。
ノードMNは、キーとしての自己の名前(識別子)と、値としてのいくつかのIPアドレスとから成るエントリを自己のキーリスト内に有しているものとする。これらのIPアドレスは例えば、ノードMNの代わりにユーザが使用している端末、または応答するマシン(answering machine)に対するものであり、それらには優先順位を付けることができる。しかしながら、ノードMNの実際のIPアドレスはこのリストには含まれない。このリストは、そのエントリとともにノードMNのサクセサのキーリストへと複製される。そこで次に、モバイルノードがネットワークから消滅または離脱した場合でも代わりに応答するマシンまたは他のいずれかのノードに到達できる場合を含めて、このような構成が位置管理に対してどのように利用できるかについて説明する。
いま、ノードCNがキーMN_idを伴うクエリを送信、つまり言い換えると、ノードCNがモバイルノードMNの名前を検索するものとする。クエリはネットワーク内でルーティングされ、そのクエリは受信キーハンドラとしてのノードMNのプレデセサへメッセージ1で到達する(reaches in message 1)。MNのプレデセサは、「このキーは次のノードに保存されている」というメッセージをノードCNへ返却する。つまり言い換えると、クエリを出したノードにサクセサを照会する。しかしながら、図7Aにメッセージ2と2’で示されている2つの異なるケースを区別する必要がある。
ノードMNは、自己のプレデセサとサクセサとの間の位置でネットワークにまだ属しているとする。MNのプレデセサは、クエリを出したノードへMNのIPアドレスと名前とを含むメッセージを返却する。言い換えると、直接MNへ指示される。クエリを出したノードはノードMNのアドレスについて通知され、ノードMNのプレデセサによって返却されたアドレスを使ってノードMNと直接通信することができる。
しかしながら、ノードMNがネットワークを離脱した場合には異なる取扱いがなされる。ノードCNが既に一度ノードMNにアクセスしたことがあり、対応するエントリがアクセスログテーブル内に存在している場合、ノードMNが離脱することで、サスペンドメッセージがノードMNのプレデセサからノードCNへと送られる。こうすることでノードCNがノードMNに前回アクセスした際に使用したアドレスを使ってノードMNに直接通信することを防ぐ。
これは、少し結果は異なるものの図7Aに示されているようにノードCNが再度ノードMNを検索しなければならないことを意味する。クエリはこの場合も同じようにノードMNのプレデセサに到達する。しかし、ノードMNは離脱してしまっているので、ノードMNのサクセサは「auxiliary_sucessor」かつ「セカンダリキーハンドラ」となっており、そのためノードMNのプレデセサは、ノードMNのサクセサのアドレスと名前とを、クエリを出したノードへ返却する。この様子は図7Aの中のメッセージ2’に示されている。
クエリを出しているノードCNは、次にノードMNのセカンダリキーハンドラにアクセスし、セカンダリキーハンドラは、ノードMNからノードMNのサクセサに複製されたエントリ内に保存されているアドレスの中から1つ以上のアドレスを返却する。例えば、このエントリ内の最初のものはそのアドレスが応答するマシンに対応するエントリである場合があり、クエリを出したノードはこのときそのアドレスに接続することができる。2つ以上のアドレスが保存されていて、クエリを出したノードにそれらが返却された場合、クエリを出したノードはそれらの順番に従って一つずつ、クエリの送信先とすべきノードとしてノードMNが定めたノードに接続することができる。
いずれの場合も、ノードMNが移動した後または戻った後にノードMNのアドレスMN_addressは、図7Bに示されているようにノードMNのプレデセサが送ったレジュームメッセージによって継続的に更新される。こうすることで、ノードCNは、ノードMNがネットワークに再度参加するとすぐに再びノードMNと通信することができるようになる。
上述したように、この実施形態によれば、モバイルノードがネットワークから消滅または離脱しても、代わりに応答するマシンまたは他のいずれかのノードに到達することができるケースを含めて、いずれの中枢ノードを全く必要とすることなく、分散型の位置管理機能を実現することができる。
既存の構造化ピアツーピアシステムでは、ノードMNの名前といくつかのIPアドレスとから成るエントリは、あるリモートノードに保存されるが、それは大きな差異を生まない。しかしながら既存のシステムではキャッシュの更新をさらに考慮する必要があり、モビリティシナリオは適切に処理することができない。
モビリティシナリオは差異を生む。本発明の実施形態によればモビリティチャーンは隠されるが、既存のシステムでは明白である。本発明の実施形態は、基礎となるネットワーク上に固定的で安定したノードが存在するという想定をすることなく自立的に構築されるオーバーレイ離散モバイルネットワークを実現するのに寄与する。ノードの移動はオーバーレイネットワークの観点からは認識されないので、基礎となるネットワークにどのようなモビリティ管理機能が存在してもシステムの安定化に役立つ。
本発明の実施形態は、ネットワークサービスプロバイダがオーバーレイネットワークサービスを提供する場合にも適用することができる。
セルラネットワークとWLANネットワークとを両方含むプロバイダのネットワークまたはインターネットに接続したユーザノードは、ピアツーピアルックアップシステムにおけるピアノードとして機能するという取り決めのもとに「アフィリエイト」としての機能することができる。プロバイダは、システムにおいてピアノードとして機能する管理可能なノードを有することができる。システムは、あるプロバイダのネットワークだけではなく他のネットワーク管理者のネットワークも含む基礎となるネットワークに基づいてオーバーレイネットワークサービスを提供する要素と見なすことができる。システムにおいて、あるプロバイダは分散したアフィリエイトとともに機能するDHT(分散ハッシュテーブル:Distributed Hash Table)サービスプロバイダとして機能することができる。オーバーレイネットワークサービスの提供によりプロバイダはそのサービス範囲を、ネットワークインフラを持たないエリアにまで拡張することができる。
上述した実施形態は、よくあるケースだが、基礎となるネットワークの管理者のポリシーによりノードが静的に割り当てられたIPアドレスを持つことが許されない場合に、システムを安定化させるのに特に寄与する。
リング型のピアツーピア構造に関連して上記実施形態を説明してきたが、本発明の実施形態は一般に他のトポロジーのピアツーピア構造に関しても使用することができることは当業者に理解されよう。ネットワークトポロジー内のノードの位置に応じて変わることのない一意の識別子を利用するという原理は、任意のネットワークトポロジーに関して適用することが可能である。さらに、アクセスログテーブルの管理、キーが複製されるセカンダリキーハンドラの仕組み、またはサスペンドメッセージおよびレジュームメッセージも、ノードが内部で明確な位置を有する他の任意のトポロジーの構造化ピアツーピアシステムに関して使用することができる。
上述した実施形態は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせによって具現化することができることは当業者には理解されよう。本発明の実施形態に関連して説明したモジュールは全体的または部分的に、本発明の実施形態に関連して説明した方法に基づいて動作するように適切にプログラムされたマイクロプロセッサまたはコンピュータによって具現化することができる。
本発明の実施形態によれば、データキャリアに記憶され、または記録媒体もしくは伝送リンクなど何らかの物理的な手段によって具現化される他の何らかの方法で記憶されたコンピュータプログラムであって、コンピュータ上で上述した本発明の実施形態に従って動作することを可能するコンピュータプログラムが提供される。
従来技術に基づくピアツーピアシステムを示す図である。 従来技術に基づくピアツーピアシステムにおける検索の仕組みを示す図である。 (a)〜(d)は従来技術に基づくピアツーピアシステムにおける参加の仕組みを示す図である。 従来技術に基づくピアツーピアシステムにおける検索の仕組みを示す図である。 一実施形態によるピアツーピアシステムにおけるモビリティチャーンを処理する仕組みを示す図である。 本発明の更なる実施形態によるピアツーピアシステムにおけるモビリティチャーンを処理する仕組みを示す図である。 本発明の更なる実施形態によるピアツーピアシステムにおけるモビリティチャーンを処理する仕組みを示す図である。 本発明の更なる実施形態によるピアツーピアシステムにおけるモビリティチャーンを処理する仕組みを示す図である。 本発明の更なる実施形態によるピアツーピアシステムにおけるモビリティチャーンを処理する仕組みを示す図である。

Claims (13)

  1. あるノードが自己のIPアドレスを変更可能な構造化ピアツーピアシステムにおいてモビリティチャーンを処理するための方法であって、前記構造化ピアツーピアシステムはリング型構造を有し、
    変更され得るIPアドレスと、変更されることのない一意なネーミング識別子とにより、前記ピアツーピアシステム内の各ノードを特定するステップと、
    各ノードの一意なネーミング識別子に基づいて、前記構造化ピアツーピアシステムにおける各ノードの位置を各ノードに対して割り当てるステップと、
    あるノードがそのIPアドレスの変更により前記構造化ピアツーピアシステムから離脱する場合に、そのノードがそれ自体のプレデセサへ離脱する旨を通知し、該プレデセサがタイマーを所定の時間にセットするステップと、
    離脱したノードが前記所定の時間内に前記ピアツーピアシステムに戻る場合、前記構造化ピアツーピアシステム内の自己の位置に戻り、該ノードが自己の新たなIPアドレスを該ノードのプレデセサに通知し、前記ピアツーピアシステム内のメンバノードに対して該ノードの新たなIPアドレスを該ノードのプレデセサが通知するステップと、
    前記ピアツーピアシステム内の他のノードに対して、システムに戻った前記ノードのアドレス変更についての通知の送信が完了するまで、該ノードを指し示すフィンガーテーブル内のエントリの使用をサスペンドするよう該ノードのプレデセサが通知するステップと
    を含む方法。
  2. 前記ノードにアクセスしたノードを記録するアクセスログテーブルを管理するステップと、
    前記ピアツーピアシステムを離脱した前記ノードが前記システムに戻った場合に、前記アクセスログテーブル内のノードに対して、前記戻ったノードの新たなIPアドレスを通知するステップと
    を更に含む請求項に記載の方法。
  3. 前記アクセスログテーブルは、前記離脱したノードにアクセスした全てのノードと、自己のフィンガーテーブル内に前記離脱したノードを有する全てのノードとを含むものである、請求項1または2に記載の方法。
  4. 離脱するノードに保存されているキーを別のノードへと複製するステップと、
    前記キーを対象とするクエリに対して、前記キーが複製されたノードが補助的に応答するステップと
    を更に含む請求項1〜のいずれか一項に記載の方法。
  5. ノードBのプレデセサがノードAであり、ノードBのサクセサがノードCである場合に、
    前記ノードBのキーを前記ノードCへ複製し、前記ノードCが、複製されたキーに対するセカンダリキーハンドラとして機能することを前記ノードCに通知するステップと、
    前記ノードBが前記システムを離脱している間、前記ノードC内のキーを対象とするクエリに対して前記ノードAが前記ノードCの受信アクセスハンドラであることを前記ノードAに通知するステップと
    を更に含む請求項1〜のいずれか一項に記載の方法。
  6. 前記キーは、クエリを行ったノードが離脱したノードの代わりに通信する1つ以上のノードのアドレスを含んだ値を伴うものである、請求項4または5に記載の方法。
  7. あるノードが自己のIPアドレスを変更可能な構造化ピアツーピアシステムにおいてモビリティチャーンを処理するための装置であって、前記構造化ピアツーピアシステムはリング型構造を有し、
    変更され得るIPアドレスと、変更されることのない一意なネーミング識別子とにより、前記ピアツーピアシステム内の各ノードを特定する特定ユニットと、
    各ノードの一意なネーミング識別子に基づいて、前記構造化ピアツーピアシステムにおける各ノードの位置を各ノードに対して割り当てる割り当てユニットと、
    あるノードが自己のIPアドレスの変更により前記構造化ピアツーピアシステムから離脱する場合に、そのノードから離脱する旨の通知を受けてタイマーを所定の時間にセットするタイミングユニットと、
    離脱したノードが前記所定の時間内に前記ピアツーピアシステムに戻る場合、前記構造化ピアツーピアシステム内の自己の位置に戻ることを可能にし、該ノードの新たなIPアドレスについての通知を該ノードから受けて、前記ピアツーピアシステム内のメンバノードに対して該ノードの新たなIPアドレスを通知するリターンユニットと、
    前記ピアツーピアシステム内の他のノードに対して、システムに戻った前記ノードのアドレス変更についての通知の送信が完了するまで、該ノードを指し示すフィンガーテーブル内のエントリの使用をサスペンドするよう通知する通知ユニットと
    を備える装置。
  8. 前記ノードにアクセスしたノードを記録するアクセスログテーブルを管理する管理ユニットと、
    前記ピアツーピアシステムを離脱した前記ノードが前記システムに戻る場合に、前記アクセスログテーブル内のノードに対して、前記戻ったノードの新たなIPアドレスを通知する通知ユニットと
    を更に備える請求項に記載の装置。
  9. 前記アクセスログテーブルは、離脱した前記ノードにアクセスした全てのノードと、離脱した前記ノードを自己のフィンガーテーブル内に有する全てのノードとを含むものである、請求項7または8に記載の装置。
  10. 前記ノードに保存されているキーを、前記キーを対象とするクエリに対して補助的に応答する別のノードへと複製する複製ユニットを更に備える請求項7〜9のいずれか一項に記載の装置。
  11. ノードBのプレデセサがノードAであり、ノードBのサクセサがノードCである場合に、
    前記ノードBのキーを前記ノードCへ複製し、前記ノードCが、複製されたキーに対するセカンダリキーハンドラとして機能することを前記ノードCに通知する複製ユニットと、
    前記ノードBが前記システムを離脱している間、前記ノードC内のキーを対象とするクエリに対して、前記ノードAが前記ノードCの受信アクセスハンドラとして機能することを前記ノードAに通知する通知ユニットと
    を更に備える請求項7〜10のいずれか一項に記載の装置。
  12. 前記キーは、クエリを行ったノードが離脱したノードの代わりに通信する1つ以上のノードのアドレスを含んだ値を伴うものである、請求項7〜11のいずれか一項に記載の装置。
  13. コンピュータ上で、請求項1〜のいずれか一項に記載の方法を実行可能にするコンピュータ実行可能なコードを含むコンピュータプログラム。
JP2006344352A 2005-12-21 2006-12-21 ピアツーピアルックアップシステムに対するモビリティチャーン処理のための方法および装置 Active JP4335907B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP05112647A EP1802070B1 (en) 2005-12-21 2005-12-21 Method and apparatus for mobility churn handling for peer-to-peer lookup systems

Publications (2)

Publication Number Publication Date
JP2007174672A JP2007174672A (ja) 2007-07-05
JP4335907B2 true JP4335907B2 (ja) 2009-09-30

Family

ID=36533977

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006344352A Active JP4335907B2 (ja) 2005-12-21 2006-12-21 ピアツーピアルックアップシステムに対するモビリティチャーン処理のための方法および装置

Country Status (3)

Country Link
EP (1) EP1802070B1 (ja)
JP (1) JP4335907B2 (ja)
DE (1) DE602005007622D1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2031816B1 (en) * 2007-08-29 2012-02-22 NTT DoCoMo, Inc. Optimal operation of hierarchical peer-to-peer networks
CN101442479B (zh) 2007-11-22 2011-03-30 华为技术有限公司 P2p对等网络中节点失效后的路由更新方法、设备及系统
JP2010028551A (ja) * 2008-07-22 2010-02-04 Brother Ind Ltd コンテンツ分散保存システム、ノード装置、ノード処理プログラム、及びアドレス情報変更通知方法
JP5811703B2 (ja) * 2011-09-02 2015-11-11 富士通株式会社 分散制御プログラム、分散制御方法、および情報処理装置
CN103095744B (zh) * 2011-10-28 2016-05-25 中国移动通信集团公司 对等网络节点降级方法及系统、对等网络节点
JP6194296B2 (ja) * 2014-09-01 2017-09-06 日本電信電話株式会社 通信管理方法及びノード

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100539602C (zh) * 2002-03-27 2009-09-09 国际商业机器公司 瞬变网络中的动态寻址
US7206934B2 (en) * 2002-09-26 2007-04-17 Sun Microsystems, Inc. Distributed indexing of identity information in a peer-to-peer network

Also Published As

Publication number Publication date
JP2007174672A (ja) 2007-07-05
EP1802070A1 (en) 2007-06-27
DE602005007622D1 (de) 2008-07-31
EP1802070B1 (en) 2008-06-18

Similar Documents

Publication Publication Date Title
JP5227955B2 (ja) 自己統制ネットワークのための分散ハッシュメカニズム
JP5498594B2 (ja) フェデレーションインフラストラクチャ内の一貫性
JP5016063B2 (ja) 整合性のとれた耐障害性分散ハッシュテーブル(dht)オーバレイネットワーク
JP5567683B2 (ja) ピアツーピア・ネットワーク内でサービスを突き止める方法および装置
JP4335907B2 (ja) ピアツーピアルックアップシステムに対するモビリティチャーン処理のための方法および装置
TW200835265A (en) Address resolution request mirroring
JP2013514591A (ja) ピアツーピアネットワークを分解して、分解されたピアツーピアネットワークを使用するための方法および装置
JP4459999B2 (ja) 投票を活用した無停止サービスシステム及びそのシステムにおける情報更新及び提供方法
WO2008089616A1 (fr) Serveur, système réseau p2p et procédé d'acheminement et de transfert de l'affectation de la clé de ressource de ce dernier.......
US8392549B2 (en) Apparatus and method for registering node and searching for floating internet protocol address using distributed network
CN112612793B (zh) 资源查询方法、装置、节点设备及存储介质
JP2008521083A (ja) コンフィギュレーションを提供する方法、サーバ、ソフトウェア、装置及び信号
Harrell et al. Survey of locating & routing in peer-to-peer systems
JP4409604B2 (ja) オーバーレイネットワーク構築・維持方法及びプログラム
JP2006338624A (ja) サーバアクセス制御システム、サーバアクセス制御方法およびサーバアクセス制御プログラム
JP2004072603A (ja) 障害回復システム、障害回復方法、障害回復プログラムおよび記録媒体
KR100872170B1 (ko) P2p 네트워크 다중 라우팅 방법
KR100714462B1 (ko) 다중 지역 이동 에이전트 컴퓨팅 환경에서의 이동 에이전트위치관리 및 메시지 전달 방법 및 그 시스템
CN102148847B (zh) 基于reload的客户端接入对等网络的方法和系统
JP5617628B2 (ja) サーバ所在地追跡装置、方法、およびプログラム
CN106953804B (zh) 被叫用户的路由信息查询方法及装置
Fonseca et al. Improving scalability of autonomic systems: the frequency-aware search approach
Ogston et al. Peer sampling with improved accuracy
Biermann et al. An adaptive resource/performance trade-off for resolving complex queries in P2P networks
Lam et al. Silk: A routing fabric with K-connectivity for overlay networks

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090316

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090612

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090625

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120703

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4335907

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120703

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130703

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250