JP4488094B2 - 通信ノードと通信方法およびコンピュータ・プログラム - Google Patents

通信ノードと通信方法およびコンピュータ・プログラム Download PDF

Info

Publication number
JP4488094B2
JP4488094B2 JP2008193429A JP2008193429A JP4488094B2 JP 4488094 B2 JP4488094 B2 JP 4488094B2 JP 2008193429 A JP2008193429 A JP 2008193429A JP 2008193429 A JP2008193429 A JP 2008193429A JP 4488094 B2 JP4488094 B2 JP 4488094B2
Authority
JP
Japan
Prior art keywords
node
information
determination condition
previous
supplied
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.)
Expired - Fee Related
Application number
JP2008193429A
Other languages
English (en)
Other versions
JP2010034761A (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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2008193429A priority Critical patent/JP4488094B2/ja
Priority to US12/509,522 priority patent/US8014302B2/en
Priority to CN2009101616857A priority patent/CN101640641B/zh
Publication of JP2010034761A publication Critical patent/JP2010034761A/ja
Application granted granted Critical
Publication of JP4488094B2 publication Critical patent/JP4488094B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/028Dynamic adaptation of the update intervals, e.g. event-triggered updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • 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
    • 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
    • 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/1053Group management mechanisms  with pre-configuration of logical or physical connections with a determined number of other peers
    • 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] 

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Description

この発明は、通信ノードと通信方法およびコンピュータ・プログラムに関する。詳しくは、分散ハッシュテーブルを用いたリング状のネットワークにおいて、アクセス不能なノードが発生しても、このアクセス不能なノードを除いてネットワークを自動的に修復できるようにするものである。
近年、サーバ機能を分散することでスケーラビリティを確保できるP2P(Peer-to-Peer)ネットワークが重要視されてきている。P2Pネットワークは、コンピュータネットワーク上に構成されたコンピュータネットワークであるオーバーレイネットワークであり、IPネットワークのトポロジーを意識せずに通信することができるようになされている。また、オーバーレイネットワークを構成する際に、通信したい相手(ノード)を高速に検索するため分散ハッシュ技術が用いられている。
分散ハッシュ技術を用いる代表的なプロトコルとして、Chordが非特許文献1で開示されている。Chordは、IPアドレスなどから取ったハッシュ値がノードIDとされているノードによって、リング状のオーバーレイネットワーク(以下「Chordリング」という)を構成したものである。また、Chordリング上にあるすべてのノードは、Chordリング上の各ノードと正しく通信経路クを確保するためのルーティング情報を保持している。ここで、時計回りで次のノードはサクセサ(successor)、反時計回りで次のノードはプレデセサ(predecessor)と呼ばれており、このサクセサおよびプレデセサを示す情報はルーティング情報として用いられる。また、各ノードにおいて、サクセサおよびプレデセサが正しいノードを示していれば、すべてのノードが正しく接続されて、Chordリングとしての正確性(correctness)が保たれることになる。
また、特許文献1では、リング状のオーバーレイネットワークを用いてコンテンツデータの配信を行うことが開示されている。
「Chord:A Scalable Peer-to-peer Lookup Protocol for Internet Applications」Ion Stoica, Robert Morris, David Liben-Nowell, David R. Karger, M. Frans Kaashoek, Frank Dabek,Hari Balakrishnan.IEEE Transactions on Networking Vol 11, February 2003 特開2006−195694号公報
ところで、Chordでは、何らかの原因でChordリングを構成しているノードがアクセス不能となった場合、ルーティングを正しく行うことができなくなってしまう。このため、非特許文献1では、ノードがアクセス不能となった場合でも、ルーティングを正しく行うことができるように、ルーティング情報として記憶するノードの数を増やすことが示されている。すなわち、ノードが1つのサクセサだけをルーティング情報として記憶するだけでなく、このノードのサクセサが示すサクセサ、さらに、このサクセサが示すサクセサ等をルーティング情報として記憶する。このように、複数個のサクセサをもつ「Successor-List」をルーティング情報として記憶する場合、「Successor-List」のサイズをr、「Successor-List」にある各サクセサが「Node Failure」となる発生確率を1/nとすると、すべてのサクセサが「Failure」を起こし、システムの正確性が失われることになる確率は、1/(nのr乗)まで下がることになる。このように、ルーティング情報として記憶するノードの数を増やすことでシステムの正確性が失われる確率を下げることはできるが、根本的に上記問題を回避することはできない。
そこで、この発明では、アクセス不能なノードが生じてもネットワークを自動的に修復可能とする通信ノードと通信方法およびコンピュータ・プログラムを提供するものである。
この発明の第1の側面は、
分散ハッシュテーブルを用いたリング状のネットワーク上における次ノードと前ノードを示すノード情報を記憶するルーティング情報記憶部と、
前記ルーティング情報記憶部に記憶されているノード情報の更新を行うルーティング情報更新部を備え、
前記ルーティング情報更新部は、次ノードがアクセス不能となったとき、前記ネットワーク上で常にアクセス可能とされている所定の1つのノードから前ノードを示すノード情報の取得を行い、該取得したノード情報に基づき該ノード情報を供給したノードが次ノードとなる判定条件を満たすか否か判定して、前記次ノードとなる判定条件を満たすとき、該ノード情報を供給したノードを前記次ノードに設定し、前記次ノードとなる判定条件を満たさないとき、前記取得したノード情報で示された前ノードから前記ノード情報を取得して、該ノード情報を供給したノードが次ノードとなる判定条件を満たすか否か判定する通信ノードにある。
この発明の通信ノードにおいて、ルーティング情報記憶部では、分散ハッシュテーブルを用いたリング状のネットワーク、例えばChordプロトコルを用いたリング状のオーバーレイネットワークであるChordリングにおいて、次ノードを示すノード情報と前ノードを示すノード情報がルーティング情報として記憶される。このルーティング情報の更新を行うルーティング情報更新部は、次ノードがアクセス不能となったとき、ネットワーク上で常にアクセス可能とされている所定の1つのノードから前ノードを示すノード情報の取得を行い、取得したノード情報に基づき、このノード情報を供給したノードが次ノードとなる判定条件を満たすか否か判定する。ここで、自己がノード情報で示された前ノードからノード情報を供給元したノードまでの間に位置するとき、またはノード情報で前ノードが示されていないとき、判定条件を満たすものとして、ノード情報を供給したノードを次ノードに設定する。また、判定条件を満たさないとき、すなわち、自己がノード情報で示された前ノードからノード情報を供給元したノードまでの間に位置していないとき、取得したノード情報で示された前ノードからノード情報を取得して、このノード情報を供給したノードが次ノードとなる判定条件を満たすか否かの判定を行うことで、所定の1つのノードを起点として、前ノードの方向に順に各ノードが自己の次ノードに得るか判定されて、次ノードとなる判定条件を満たすとき、このノードが自己の新たに次ノードとされる。
この発明の第2の側面は、
分散ハッシュテーブルを用いたリング状のネットワーク上における次ノードがアクセス不能となったとき、ルーティング情報更新部によって、前記ネットワーク上で常にアクセス可能とされている所定の1つのノードから前ノードを示すノード情報を取得するステップと、
前記ルーティング情報更新部によって、取得した前記ノード情報に基づき該ノード情報を供給したノードが次ノードとなる判定条件を満たすか否か判定して、前記次ノードとなる判定条件を満たすとき、該ノード情報を供給したノードを前記次ノードに設定し、前記次ノードとなる判定条件を満たさないとき、前記取得したノード情報で示された前ノードから前記ノード情報を取得して、該ノード情報を供給したノードが次ノードとなる判定条件を満たすか否か判定するステップを有する通信方法にある。
また、この発明の第3の側面は、
分散ハッシュテーブルを用いたリング状のネットワークに接続されているコンピュータに、
前記ネットワーク上の次ノードがアクセス不能となったとき、前記ネットワーク上で常にアクセス可能とされている所定の1つのノードから前ノードを示すノード情報を取得するステップと、
取得した前記ノード情報に基づき該ノード情報を供給したノードが次ノードとなる判定条件を満たすか否か判定して、前記次ノードとなる判定条件を満たすとき、該ノード情報を供給したノードを前記次ノードに設定し、前記次ノードとなる判定条件を満たさないとき、前記取得したノード情報で示された前ノードから前記ノード情報を取得して、該ノード情報を供給したノードが次ノードとなる判定条件を満たすか否か判定するステップを実行させるコンピュータ・プログラムにある。
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、光ディスクや磁気ディスク、半導体メモリなどの記憶媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
この発明によれば、アクセス不能なノードが発生したとき、ネットワーク上で常にアクセス可能とされている所定の1つのノードを起点として、前ノードの方向に順に各ノードが自己の次ノードに得るか判定されて、次ノードとなる判定条件を満たすとき、このノードが自己の新たに次ノードとされる。このため、アクセス不能なノードが発生したとき、このアクセス不能なノードを除くように、ノード情報が自動的に更新されるので、ネットワークを自動的に修復することができるようになる。
以下、図を参照しながら、この発明の実施の一形態について説明する。図1は、ネットワークシステム10の構成を示している。ネットワークシステム10において、複数の通信ノード(以下、単に「ノード」という)20-1〜20-nは、ネットワーク11に接続されている。また、ネットワーク11上に、オーバーレイネットワーク12が構成されて、このオーバーレイネットワーク12を介して複数のノード間で通信が行われる。
図2は、ノードの構成を示している。なお、図2では、ノードとしてコンピュータを用いた場合を例示している。
ノード20のCPU(Central Processing Unit)21は、ROM(Read Only Memory)22または記録部29に記録されているコンピュータ・プログラムにしたがって各種の処理を実行する。
RAM(Random Access Memory)23には、CPU21が実行するコンピュータ・プログラムやデータ等が適宜記憶される。これらのCPU21、ROM22、およびRAM23は、バス24により相互に接続されている。また、CPU21には、バス24を介して入出力インタフェース部25が接続されている。入出力インタフェース部25には、ユーザインタフェース部26、入力部27、出力部28、記録部29、通信部30、ドライブ部31等が接続されている。
ユーザインタフェース部26は、キーボードやポインティングデバイス、リモートコントロール信号受信部等を用いて構成されており、ユーザ操作に応じた操作信号をCPU21に供給する。入力部27は外部機器(図示せず)から供給された情報、例えば画像や音声等のデータの処理を行い、コンピュータで処理可能なデータに変換する。出力部28は、外部機器に出力する情報、例えば画像や音声等のデータを外部機器に対応したデータに変換して出力する。
記録部29は、例えばハードディスクや半導体メモリ等で構成されており、CPU21が実行するコンピュータ・プログラムや種々の情報例えば画像や音声等のデータを記録する。通信部30は、ノード20をネットワークに接続するためのものであり、通信部30を介してネットワーク上の他のノードと通信を行う。この通信部30を介して他のノードから取得した種々のデータやコンピュータ・プログラムは、例えばRAM23や記録部29に記録されて、必要に応じてCPU21によって読み出される。なお、ROM22が書き換え可能であるとき、通信部30を介して取得したコンピュータ・プログラムで、ROM22に記憶されているコンピュータ・プログラムを更新することも行われる。
ドライブ部31は、装着されているリムーバブルメディア40、例えば磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリなどに記録されている種々のデータやコンピュータ・プログラム等の読み出しを行うためのものである。なお、読み出されたコンピュータ・プログラムは、通信部30で取得したコンピュータ・プログラムと同様に処理される。
CPU21は、コンピュータ・プログラムを実行して、入力部27を介して供給された情報や記録部29およびドライブ部31に装着されているリムーバブルメディア40から読み出した情報の処理を行う。またCPU21は、オーバーレイネットワークを介して他のノードとの通信を制御する。
ここで、ネットワークを介して他のノードと通信を行うために用いられるルーティング情報はルーティング情報記憶部に記憶しておき、例えば次ノードや前ノード等を示すノード情報をルーティング情報として書き換え可能とされたROM22やRAM23に記憶しておく。また、アクセス不能なノードが生じたとき、ルーティング情報更新部は、アクセス不能なノードを経由することなくルーティングを行うことができるようにルーティング情報を更新する。例えば、CPU21は、アクセス不能なノードを経由することなくルーティングを行うことができるように、書き換え可能とされたROM22やRAM23に記憶されているノード情報を更新してネットワークを自己修復する。
オーバーレイネットワーク12は、例えば分散ハッシュテーブル(DHT:Distributed Hash Table)を利用してネットワーク11例えばIPネットワーク上に構成する。次に、分散ハッシュテーブルを利用したアルゴリズムについて説明する。
上述のように、ネットワークシステム10では、IPネットワーク11上に、分散ハッシュテーブルを利用してリング状のオーバーレイネットワーク12が構成される。このオーバーレイネットワーク12は、IPネットワーク11を用いた仮想的なリンクを構成するネットワークである。
オーバーレイネットワーク12に参加する各ノードは、ノード固有の識別情報であるノードIDを有している。このノードIDは、IPアドレスあるいは製造番号を共通のハッシュ関数(例えば、SHA−1(Secure Hash Algorithm 1)等)によりハッシュ化して得た一定けた数からなるハッシュ値が用いられている。この共通のハッシュ関数により求められたノードIDは、IPアドレスあるいは製造番号が異なれば、同じ値になる確率が極めて低いものである。したがって、オーバーレイネットワーク12、すなわち分散ハッシュテーブルを用いたネットワーク上の各ノードは、共通のハッシュ関数を用いてIPアドレスあるいは製造番号をハッシュ化して、ノード固有のノードIDを設定することができる。
分散ハッシュ技術を用いる代表的なプロトコルであるChordは、上述のようにIPアドレスなどを共通のハッシュ関数によりハッシュ化して得たハッシュ値をノードIDとしており、このノードIDの順に、時計回りノードを配置することでリング状のオーバーレイネットワークであるChordリングを構成したものである。また、Chordリング上の各ノードは、時計回りで次ノードであるサクセサ(successor)と時計回りで前ノードであるプレデセサ(predecessor)と示す情報が、ルーティング情報として記憶されており、このサクセサやプレデセサの情報を利用してルーティングが行われる。なお、Chordでは、ルーティングの効率を向上させるために、Finger Tableと呼ばれているルーティング情報も記憶されているが、この情報はノードの接続の正確性を確保するためのものではないので説明は省略する。
このように分散ハッシュテーブルを用いて構成されたネットワークを用いて通信を行う場合、アクセス不能なノードが生じてもネットワークを修復できるものとするため、このネットワーク上で常にアクセス可能な所定の1つのノード(以下「スーパーノード」という)を予め設定する。また、ネットワークに参加するすべてのノードは、スーパーノードにアクセスできるように、スーパーノードの識別情報を記憶させておくものとする。例えばスーパーノードのIPアドレスを記憶しておくものとする。このように、スーパーノードのIPアドレスを記憶しておくものとすれば、共通のハッシュ関数を用いてIPアドレスをハッシュ化して、スーパーノードのノードIDを算出できる。
次に、アクセス不能なノードが生じたときのネットワーク修復処理について説明する。アクセス不能なノードが生じたとき、すなわちアクセス可能なサクセサがなくなったノードは、修復アルゴリズムを実行することにより新たなサクセサを検出してネットワークの修復を行う。なお、アクセス可能なサクセサがなくなり、Chordリングが破損した状態を破損リングと呼ぶものとする。
修復アルゴリズムにおいて、アクセス可能なサクセサがなくなったノードのルーティング情報更新部は、予め指定されているノード、すなわちスーパーノードを起点としてプレデセサを示す情報の取得を行い、反時計回りでノードを辿っていき、辿った先々でそのノードが自分のサクセサになり得るかを判定する。ここで、ノードが判定条件を満たすときには、ルーティング情報記憶部に記憶されているノード情報の更新を行い、このノードを新たなサクセサとする。また、ルーティング情報更新部は、新たなサクセサに対して自分がプレデセサとなることを通知して自分とサクセサとの経路を確立させる。
図3は、アクセス可能なサクセサがなくなったノードnで行う修復アルゴリズムを示している。ノードnは、スーパーノードをノードn’として、ノードn’からプレデセサを示すノード情報を取得する。
ノードnは、取得したノード情報でプレデセサがないことが示された場合(n’.predecessor is nil)、または、ノードnが、取得したノード情報によって示されたプレデセサからノードn’の間に位置する場合(n∈(n’.predecessor,n’))、ノードn’をノードnのサクセサとする。さらに、ノードnは、自分がノードn’のプレデセサとなることをノードn’に通知する(n’.notify(n))。
また、ノードnは、他の場合、すなわち取得したノード情報によって示されたプレデセサからノードn’の間にノードnが位置していない場合、取得したノード情報によって示されたプレデセサをノードn’に設定して(n’=n’.predecessor)、新たに設定したノードn’からプレデセサのノード情報を取得して、上述の処理を行う。
プレデセサとなることの通知が供給されたノードのルーティング情報更新部は、通知を供給したノードがプレデセサとなる判定条件を満たすか否か判定して、この判定条件を満たすとき、通知を供給したノードをプレデセサに設定し、判定条件を満たさないときプレデセサを示すノード情報の更新を行わないものとする。
図4は、プレデセサとなることの通知が供給されたノードn’で行う修復アルゴリズムを示している。ノードn’は、設定されていたプレデセサがアクセス不能となりプレデセサがなくなっている場合、または、「notify」の通知で示されたノードnがノードn’のプレデセサからノードn’の間に位置する場合、ノードn’は「notify」の通知で示されたノードnをプレデセサに設定する。また、他の場合、ノードn’はノード情報の更新を行わないものとする。
なお、アクセス可能なサクセサがなくなったノードが複数あるときは、各ノードで上述の修復アルゴリズムを行う。
次に、修復動作について具体的に説明する。図5は、Chordリングを示しており、ノードND1〜ノードND8でオーバーレイネットワークが構成されているものとする。また、ルーティングは時計回り方向に進むものとして、例えばノードND1のサクセサはノードND2、ノードND1のプレデセサはノードND8とする。また、オーバーレイネットワークで常にオンラインでアクセス可能なノードであるスーパーノードをノードND1として以下の説明を行う。
このように構成されたChordリングにおいて、ノードND4がアクセス不能となると、修復前のChordリングは図6に示すものとなり、ノードND3は、サクセサであるノードND4に対してアクセスできないことから、図3に示す修復アルゴリズムを実行する。なお、図6および後述する図10において、一点鎖線は、アクセス不能となった経路を示している。
ノードND3は、図7に示すように、スーパーノードND1からプレデセサのノード情報を取得する。ここで、スーパーノードND1から取得したノード情報は、プレデセサとしてノードND8を示している。ノードND3は、スーパーノードND1から取得したノード情報に基づき、スーパーノードND1がサクセサになり得るか否かの判定を行う。スーパーノードND1から取得したノード情報は、プレデセサとしてノードND8を示しており、ノードND3は、取得したノード情報で示されたプレデセサであるノードND8からノードND1の間に位置していない。したがって、ノードND3は、ノードND1がサクセサになり得ないと判定して、ノード情報の要求先である図3のノードn’をノードND8として、次のノードND8がサクセサになり得るか否かの判定を行う。
ノードND3は、ノードND8からプレデセサを示すノード情報を取得する。ここで、ノードND8から取得したノード情報は、プレデセサとしてノードND7を示している。ノードND3は、ノードND8から取得したノード情報に基づき、ノードND8がサクセサになり得るか否かの判定を行う。ノードND8から取得したノード情報は、プレデセサとしてノードND7を示しており、ノードND3は、取得したノード情報で示されたプレデセサであるノードND7からノードND8の間に位置していない。したがって、ノードND3は、ノードND8がサクセサになり得ないと判定して、ノード情報の要求先である図3のノードn’をノードND7として、次のノードND7がサクセサになり得るか否かの判定を行う。
以下、同様の処理を繰り返すことにより反時計回りでノードをたどり、辿った先々でそのノードが自分のサクセサになり得るかを判定する。
その後、図8に示すように、ノードND3は、ノードND5からプレデセサを示すノード情報を取得する。ここで、ノードND5のプレデセサであったノードND4はアクセス不能となっているので、ノードND5から取得したノード情報は、プレデセサが存在していないことを示す「nil」となる。
ノードND3は、ノード情報が「nil」であることから、ノードND5がサクセサになると判定して、ノードND5をノードND3のサクセサに設定する(ND3.successor=ND5)。このように、ノードND3でルーティン情報を更新してノードND5をサクセサに設定すれば、時計回り方向に正しくルーティングを行うことができる。
ところで、ノードND5は、ノードND3によってサクセサに設定されているが、ノードND5のプレデセサはノードND3に変更されていないことから、ノードND5のルーティング情報は、ノードの接続を正しく示していないものとなる。そこで、ノードND3は、自分がノードND5のプレデセサとなるために、ノードND5に対してノードND3の存在を通知する(ND5.notify(ND3))。
ノードND3から「notify」の通知を受けたノードND5は、ノードND3がプレデセサとなる条件を満たすか否か判別する。ここで、ノードND5は、ノードND4がアクセス不能となっておりプレデセサが存在していないことから、図4の修復アルゴリズムにより、ノードND3をノードND5のプレデセサに設定する(ND5.predecessor=ND3)。
このような処理を行うものとすると、ノードND4がアクセス不能となったとき、ノードND3のサクセサはノードND5、ノードND5のプレデセサはノードND3に自動的に変更されて、図9に示すようにChordリングを自動的に修復することができる。
次に、アクセス不能なノードが複数生じた場合、例えば図10に示すように3つのノードND3,ND5,ND8がアクセス不能となった場合についての修復動作について説明する。
例えばノードND2は、サクセサであるノードND3がアクセス不能となったことから、修復アルゴリズムを実行して、図11に示すように、スーパーノードND1からプレデセサのノード情報を取得する。ここで、スーパーノードND1のプレデセサであるノードND8はアクセス不能となっていることから、取得したノード情報は、プレデセサが存在していないことを示す「nil」となる。
ノードND2は、取得したノード情報で示されたプレデセサが「nil」であることから、スーパーノードND1がサクセサになると判定して、ノードND1をノードND2のサクセサに設定する。また、ノードND2は、自分がスーパーノードND1のプレデセサとなるために、スーパーノードND1に対してノードND2の存在を通知する(ND1.notify(ND2))。
ノードND2から「notify」の通知を受けたスーパーノードND1は、ノードND2がプレデセサとなる条件を満たすか否か判別する。ここで、スーパーノードND1は、ノードND8がアクセス不能となっておりプレデセサが存在していないことから、図4の修復アルゴリズムにより、ノードND2をスーパーノードND1のプレデセサに設定する(ND1.predecessor=ND2)。
このような処理を行うものとすると、図12に示すように、暫定的にスーパーノードND1とノードND2からなるChordリングが構成される。
Chordでは、各ノードがサクセサ等を含むルーティング情報を更新するために、定期的にStabilizeが行われる。
図13は、Stabilizeのアルゴリズムを示している。ノードnがStabilizeを行う場合、ノードnは、サクセサに対してプレデセサを示すノード情報の要求を行い、取得したノード情報で示されたノードをノードxとする。さらに、ノードnは、ノードxが自分の新しいサクセサになり得るかどうかを判定する。ノードnは、ノードxがノードnからノードnのサクセサの間に位置するとき、ノードxをサクセサに設定する。また、ノードnは、ノードxがノードnからノードnのサクセサの間に位置していないとき、サクセサの変更を行わないものとする。
図12に示すようにノードND2における修復が完了したのち、例えばノードND4のサクセサであるノードND5がアクセス不能となっているため、ノードND4で修復アルゴリズムを実行すると、ノードND4は、スーパーノードND1からプレデセサのノード情報を取得する。ここで、スーパーノードND1のプレデセサは、ノードND2で修復アルゴリズムを実行したことによりノードND2となっている。ノードND4は、スーパーノードND1から取得したノード情報に基づき、スーパーノードND1がサクセサになり得るか否かの判定を行う。スーパーノードND1から取得したノード情報は、プレデセサとしてノードND2を示しており、ノードND4は、取得したノード情報で示されたプレデセサであるノードND2からスーパーノードND1の間に位置している。したがって、ノードND4は、スーパーノードND1をサクセサに設定する(ND4.successor=ND1)。また、ノードND4は、自分がスーパーノードND1のプレデセサとなるために、スーパーノードND1に対してノードND4の存在を通知する(ND1.notify(ND4))。
ノードND4から「notify」の通知を受けたスーパーノードND1は、ノードND4がプレデセサとなる条件を満たすか否か判別する。スーパーノードND1は、ノードND4がノードND1のプレデセサであるノードND2からノードND1の間に位置していることから、ノードND4をノードND1のプレデセサに設定する(ND1.predecessor=ND4)。
このような処理を行うものとすると、図14に示すように、ノードND1とノードND4を結ぶ経路が形成される。また、この状態でノードND2がStabilizeを行うと、ノードND2は、サクセサであるスーパーノードND1からプレデセサを示すノード情報を取得して、この取得したノード情報で示されたノードが、ノードND2の新しいサクセサになり得るかどうかを判定する。なお、スーパーノードND1のプレデセサは、ノードND4で修復アルゴリズムが実行されたことによりノードND4に設定されている。このため、スーパーノードND1から取得したプレデセサを示すノード情報は、ノードND4を示すものとなる。
ノードND2は、スーパーノードND1のプレデセサが自分の新しいサクセサになり得るかどうかを判定する。ここで、スーパーノードND1のプレデセサはノードND4であり、ノードND4は、ノードND2からノードND2のサクセサであるスーパーノードND1の間に位置する。したがってノードND2は、ノードND4をサクセサに設定する(ND2.successor=ND4)。また、ノードND2は、自分がノードND4のプレデセサとなるために、ノードND4に対してノードND2の存在を通知する(ND4.notify(ND2))。
ノードND2から「notify」の通知を受けたノードND4は、ノードND2がプレデセサとなる条件を満たすか否か判別する。ここで、ノードND4はノードND3がアクセス不能となっており、プレデセサが存在していないことから、図4の修復アルゴリズムにより、ノードND2をノードND4のプレデセサに設定する(ND4.predecessor=ND2)。
このような処理を行うものとすると、図15に示すように、スーパーノードND1とノードND2およびノードND4からなるChordリングが構成されることとなる。
ノードND2およびノードND4における修復が完了して、例えばノードND7で修復アルゴリズムが実行されると、ノードND7は、スーパーノードND1からプレデセサのノード情報を取得する。ここで、スーパーノードND1のプレデセサは、ノードND2およびノードND4で修復アルゴリズムを実行したことによりノードND4となっている。ノードND7は、スーパーノードND1から取得したノード情報に基づき、スーパーノードND1がサクセサになり得るか否かの判定を行う。スーパーノードND1から取得したノード情報は、プレデセサとしてノードND4を示しており、ノードND7は、取得したノード情報で示されたプレデセサであるノードND4からスーパーノードND1の間に位置している。したがって、ノードND7は、スーパーノードND1をサクセサに設定する(ND7.successor=ND1)。また、ノードND7は、自分がスーパーノードND1のプレデセサとなるために、スーパーノードND1に対してノードND7の存在を通知する(ND1.notify(ND7))。
ノードND7から「notify」の通知を受けたスーパーノードND1は、ノードND7がプレデセサとなる条件を満たすか否か判別する。スーパーノードND1は、ノードND7がノードND1のプレデセサであるノードND4からノードND1の間に位置していることから、ノードND7をノードND1のプレデセサに設定する(ND1.predecessor=ND7)。
このような処理を行うものとすると、図16に示すように、ノードND1とノードND7を結ぶ経路が形成される。また、この状態でノードND4がStabilizeを行うと、ノードND4は、サクセサであるスーパーノードND1からプレデセサを示すノード情報を取得して、この取得したノード情報で示されたノードが、ノードND4の新しいサクセサになり得るかどうかを判定する。なお、スーパーノードND1のプレデセサは、ノードND7で修復アルゴリズムが実行されたことによりノードND7に設定されている。このため、スーパーノードND1から取得したプレデセサを示すノード情報は、ノードND7を示すものとなる。
ノードND4は、スーパーノードND1のプレデセサが自分の新しいサクセサになり得るかどうかを判定する。ここで、スーパーノードND1のプレデセサはノードND7であり、ノードND7は、ノードND4からノードND4のサクセサであるスーパーノードND1の間に位置する。したがってノードND4は、ノードND7をサクセサに設定する(ND4.successor=ND7)。また、ノードND4は、自分がノードND7のプレデセサとなるために、ノードND7に対してノードND4の存在を通知する(ND7.notify(ND4))。
ノードND4から「notify」の通知を受けたノードND7は、ノードND4がプレデセサとなる条件を満たすか否か判別する。ここで、ノードND7のプレデセサはノードND6であり、ノードND4は、ノードND6からノードND7の間に位置していない。すなわち、ノードND7は、ノードND4がプレデセサとなる条件を満たしていないと判定して、プレデセサをノードND6からノードND4に変更しないものとする。
なお、ノードND1とノードND7を結ぶ経路が形成されたのち、他のノード例えばノードND6でStabilizeが行われても、Chordリングのトポロジーへの影響はない。すなわち、ノードND6のサクセサであるノードND7に対して「Predecessor」を示すノード情報を要求したとき、ノード情報ではノードND6が示されることから、ノードND6のサクセサの変更が行われることがなく、トポロジーへの影響はない。
ノードND1とノードND7を結ぶ経路が形成された状態で、ノードND4が再度Stabilizeを行うと、図17に示すように、ノードND4は、サクセサであるノードND7からプレデセサを示すノード情報を取得して、この取得したノード情報で示されたノードが、ノードND4の新しいサクセサになり得るかどうかを判定する。なお、ノードND7のプレデセサは、上述のようにノードND6に設定されている。このため、ノードND7から取得したプレデセサを示すノード情報は、ノードND6を示すものとなる。
ノードND4は、ノードND7のプレデセサが自分の新しいサクセサになり得るかどうかを判定する。ここで、ノードND7のプレデセサはノードND6であり、ノードND6は、ノードND4からノードND4のサクセサであるノードND7の間に位置する。したがってノードND4は、ノードND6をサクセサに設定する(ND4.successor=ND6)。また、ノードND4は、自分がノードND6のプレデセサとなるために、ノードND6に対してノードND4の存在を通知する(ND6.notify(ND4))。
ノードND2から「notify」の通知を受けたノードND6は、ノードND4がプレデセサとなる条件を満たすか否か判別する。ここで、ノードND6はノードND5がアクセス不能となっており、プレデセサが存在していないことから、図4の修復アルゴリズムにより、ノードND4をノードND6のプレデセサに設定する(ND6.predecessor=ND4)。
このような処理を行うものとすると、図18に示すように、アクセス不能なノードND3,ND5,ND8が除かれて、スーパーノードND1とノードND2,ND4,ND6,ND7からなるChordリングを構成することができる。
以上のように、障害を検出したノードで修復アルゴリズムを実行するものとし、また、ノードでStabilizeを行うものとすると、障害の発生したノードを除いてChordリングを構成することができる。
なお、上述の説明では、ノードND2で修復アルゴリズムを行ったのち、ノードND4で修復アルゴリズムを行い、その後、ノードND7で修復アルゴリズムを行うものとした。しかし、修復アルゴリズムを行うノードの順序は、上述の場合に限られるものではなく、任意の順番で行うものとしても、障害の発生したノードを除いてChordリングを構成することができる。
図19は、上述の修復動作を行うときのノードの動作を示すフローチャートである。ステップST1でCPU21は、障害が発生したか否かを判別する。CPU21は、サクセサがアクセス不能となったことを判別したときステップST2に進み、サクセサがアクセス不能となっていないことを判別したときステップST11に進む。
ステップST2でCPU21は、ノード情報の要求先をスーパーノードND1に設定してステップST3に進む。
ステップST3でCPU21は、ノード情報を取得する。CPU21は、ノード情報の要求先からプレデセサを示すノード情報を取得してステップST4に進む。
ステップST4でCPU21は、取得したノード情報で示されたノードが、サクセサの判定条件を満たすか否か判別する。CPU21は、ノード情報で示されたノードが判定条件を満たすとき、すなわち、取得したノード情報が「nil」であるとき、またはノード情報で示されたノードからこのノード情報の供給元であるノードの間に自己のノードが位置するとき、ノード情報で示されたノードが判定条件を満たすものとしてステップST6に進む。また、CPU21は、ノード情報で示されたノードが判定条件を満たしていないときステップST5に進む。
ステップST5でCPU21は、ノード情報の要求先をノード情報が示すプレデセサに設定する。CPU21は、ステップST3で取得したノード情報で示されているプレデセサをノード情報の要求先に設定してステップST3に戻る。このように、ステップST2乃至ステップST5の処理を行うものとすれば、スーパーノードを起点として、反時計回りでノードをたどっていきながら、たどった先々でノードが自己のサクセサになり得るか判別できる。
ステップST6でCPU21は、ノード情報の供給元をサクセサに設定してステップST7に進む。
ステップST7でCPU21は、サクセサに自己を通知する。CPU21は、新たに設定したサクセサに対して、自己のノードがプレデセサになることの通知「notify」を行ってステップST1に戻る。
ステップST1からステップST11に進むと、ステップST11でCPU21は、Stabilizeを行うか否かを判別する。Chordでは、上述のようにStabilizeを定期的に行う。したがって、CPU21は、Stabilizeを行うタイミングであるか否かを判別して、Stabilizeを行うタイミングであると判別したときステップST12に進み、Stabilizeを行うタイミングでないと判別したときステップST13に進む。
ステップST12でCPU21は、Stabilizeを行ってステップST13に進む。
ステップST13でCPU21は、他のノードからノード情報の要求が行われたか否かを判別する。CPU21は、ノード情報の要求が行われたときステップST14に進み、ノード情報の要求が行われていないときステップST15に進む。
ステップST14でCPU21は、ノード情報の要求を行ったノードに対して、プレデセサを示すノード情報を供給してステップST15に進む。
ステップST15でCPU21は、「notify」の通知を受けたか否か判別する。CPU21は、「notify」の通知を受けたときステップST15に進み、「notify」の通知を受けていないときステップST1に戻る。
ステップST16でCPU21は、受信した「notify」の通知の供給元であるノードが、プレデセサの判定条件を満たすか否か判別する。CPU21は、「notify」の通知の供給元であるノードが判定条件を満たすとき、すなわち、設定されていたプレデセサがアクセス不能となって、プレデセサが設定されていない状態となっているとき、またはプレデセサが示すノードから自己のノードの間に、「notify」の通知の供給元であるノードが位置するとき、「notify」の通知の供給元であるノードが判定条件を満たすものとしてステップST17に進む。また、CPU21は、「notify」の通知の供給元であるノードが判定条件を満たしていないときステップST1に戻る。
ステップST17でCPU21は、プレデセサの更新を行う。CPU21は、「notify」の通知の供給元であるノードを、新たなプレデセサに設定してステップST1に戻る。
なお、Stabilizeに関する処理と、ノード情報の要求に対応する処理、および「notify」の通知に関する処理の順序は、図19の順序に限られるものではなく、いすれの処理を優先させてもよい。
以上のように、各ノードで上述のような修復アルゴリズムを行うものとすれば、アクセス不能なノードが生じても、アクセス不能なノードを除いて、Chordリングを自己修復することができる。また、上述の修復アルゴリズムは、Chordプロトコルが提供している機能(API)のみを利用したものである。すなわち、新たな機能を追加する必要がないので、簡単に修復アルゴリズムを実現することが可能である。
なお、上述の実施の形態におけるノードの数やアクセス不能なノードの位置は例示的なものであり、限定的に解釈されるべきではない。本発明の要旨を逸脱しない範囲で当業者が実施の形態の修正や代用をなし得ることは自明であり、本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
この発明の通信ノードと通信方法およびコンピュータ・プログラムでは、アクセス不能なノードが発生したとき、このアクセス不能なノードを除くように次ノードや前ノードを示すノード情報が更新されて、ネットワークを自動的に修復できる。したがって、P2Pネットワーク等に好適である。
ネットワークシステムの構成を示す図である。 ノードの構成を示す図である。 アクセス可能なサクセサがなくなったノードで行う修復アルゴリズを示す図である。 プレデセサとなることの通知が供給されたノードで行う修復アルゴリズムを示す図である。 Chordリングを示す図である。 修復前のChordリングを示す図である。 修復途中のChordリングを示す図である。 修復途中のChordリングを示す図である。 修復後のChordリングを示す図である。 修復前のChordリングを示す図である。 修復途中のChordリングを示す図である。 修復途中のChordリングを示す図である。 Stabilizeのアルゴリズムを示す図である。 修復途中のChordリングを示す図である。 修復途中のChordリングを示す図である。 修復途中のChordリングを示す図である。 修復途中のChordリングを示す図である。 修復後のChordリングを示す図である。 ノードの動作を示すフローチャートである。
符号の説明
10・・・ネットワークシステム、11・・・IPネットワーク、12・・・オーバーレイネットワーク、20・・・ノード、21・・・CPU、22・・・ROM、23・・・RAM、24・・・バス、25・・・入出力インタフェース部、26・・・ユーザインタフェース部、27・・・入力部、28・・・出力部、29・・・記録部、30・・・通信部、31・・・ドライブ部、40・・・リムーバブルメディア

Claims (8)

  1. 分散ハッシュテーブルを用いたリング状のネットワークにおける次ノードと前ノードを示すノード情報をルーティング情報として記憶するルーティング情報記憶部と、
    前記ルーティング情報記憶部に記憶されているノード情報の更新を行うルーティング情報更新部を備え、
    前記ルーティング情報更新部は、次ノードがアクセス不能となったとき、前記ネットワーク上で常にアクセス可能とされている所定の1つのノードから前ノードを示すノード情報の取得を行い、該取得したノード情報に基づき該ノード情報を供給したノードが次ノードとなる判定条件を満たすか否か判定して、前記次ノードとなる判定条件を満たすとき、該ノード情報を供給したノードを前記次ノードに設定し、前記次ノードとなる判定条件を満たさないとき、前記取得したノード情報で示された前ノードから前記ノード情報を取得して、該ノード情報を供給したノードが次ノードとなる判定条件を満たすか否か判定する通信ノード。
  2. 前記ルーティング情報更新部は、自己が前記ノード情報で示された前ノードから前記前ノードを示すノード情報を供給元したノードまでの間に位置するとき、または前記ノード情報で前ノードが示されていないときに、前記次ノードとなる判定条件を満たすものとする
    請求項1記載の通信ノード。
  3. 前記ルーティング情報更新部は、前記ノード情報を供給したノードを前記次ノードに設定したとき、自己が前記ノード情報を供給したノードの前ノードとなる通知を、前記ノード情報を供給したノードに対して行う
    請求項2記載の通信ノード。
  4. 前記ルーティング情報更新部は、前ノードとなる通知が供給されたとき、該通知を供給したノードが前ノードとなる判定条件を満たすか否か判定して、前記前ノードとなる判定条件を満たすとき、該通知を供給したノードを前記前ノードに設定し、前記前ノードとなる判定条件を満たさないとき、前記前ノードを示すノード情報の更新を行わないものとする
    請求項3記載の通信ノード。
  5. 前記ルーティング情報更新部は、自己の前ノードがアクセス不能であるとき、または前記前ノードとなる通知を供給したノードが、自己の前ノードから自己までの間に位置するときに、前記前ノードとなる判定条件を満たすものとする
    請求項4記載の通信ノード。
  6. 前記ルーティング情報更新部は、定期的に前記ルーティング情報記憶部に記憶されているノード情報の更新を行う
    請求項1記載の通信ノード。
  7. 分散ハッシュテーブルを用いたリング状のネットワークにおける次ノードがアクセス不能となったとき、ルーティング情報更新部によって、前記ネットワーク上で常にアクセス可能とされている所定の1つのノードから前ノードを示すノード情報を取得するステップと、
    前記ルーティング情報更新部によって、取得した前記ノード情報に基づき該ノード情報を供給したノードが次ノードとなる判定条件を満たすか否か判定して、前記次ノードとなる判定条件を満たすとき、該ノード情報を供給したノードを前記次ノードに設定し、前記次ノードとなる判定条件を満たさないとき、前記取得したノード情報で示された前ノードから前記ノード情報を取得して、該ノード情報を供給したノードが次ノードとなる判定条件を満たすか否か判定するステップを有する通信方法。
  8. 分散ハッシュテーブルを用いたリング状のネットワークに接続されているコンピュータに、
    前記ネットワーク上の次ノードがアクセス不能となったとき、前記ネットワーク上で常にアクセス可能とされている所定の1つのノードから前ノードを示すノード情報を取得するステップと、
    取得した前記ノード情報に基づき該ノード情報を供給したノードが次ノードとなる判定条件を満たすか否か判定して、前記次ノードとなる判定条件を満たすとき、該ノード情報を供給したノードを前記次ノードに設定し、前記次ノードとなる判定条件を満たさないとき、前記取得したノード情報で示された前ノードから前記ノード情報を取得して、該ノード情報を供給したノードが次ノードとなる判定条件を満たすか否か判定するステップを実行させるコンピュータ・プログラム。
JP2008193429A 2008-07-28 2008-07-28 通信ノードと通信方法およびコンピュータ・プログラム Expired - Fee Related JP4488094B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008193429A JP4488094B2 (ja) 2008-07-28 2008-07-28 通信ノードと通信方法およびコンピュータ・プログラム
US12/509,522 US8014302B2 (en) 2008-07-28 2009-07-27 Communication node, communication method, and computer program
CN2009101616857A CN101640641B (zh) 2008-07-28 2009-07-28 通信节点、通信方法和计算机程序

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008193429A JP4488094B2 (ja) 2008-07-28 2008-07-28 通信ノードと通信方法およびコンピュータ・プログラム

Publications (2)

Publication Number Publication Date
JP2010034761A JP2010034761A (ja) 2010-02-12
JP4488094B2 true JP4488094B2 (ja) 2010-06-23

Family

ID=41568610

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008193429A Expired - Fee Related JP4488094B2 (ja) 2008-07-28 2008-07-28 通信ノードと通信方法およびコンピュータ・プログラム

Country Status (3)

Country Link
US (1) US8014302B2 (ja)
JP (1) JP4488094B2 (ja)
CN (1) CN101640641B (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8848513B2 (en) * 2009-09-02 2014-09-30 Qualcomm Incorporated Seamless overlay connectivity using multi-homed overlay neighborhoods
EP2378435B1 (en) 2010-04-14 2019-08-28 Spotify AB Method of setting up a redistribution scheme of a digital storage system
US8619780B1 (en) * 2010-09-30 2013-12-31 Amazon Technologies, Inc. Processing packet routing information
CN102065136B (zh) * 2010-12-10 2014-11-05 中国科学院软件研究所 一种p2p网络安全数据传输方法及其***

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5546542A (en) * 1993-11-29 1996-08-13 Bell Communications Research, Inc. Method for efficiently determining the direction for routing a set of anticipated demands between selected nodes on a ring communication network
US6012096A (en) * 1998-04-23 2000-01-04 Microsoft Corporation Method and system for peer-to-peer network latency measurement
US6373826B1 (en) * 1998-12-15 2002-04-16 Nortel Networks Limited Spanning tree algorithm
US6865149B1 (en) * 2000-03-03 2005-03-08 Luminous Networks, Inc. Dynamically allocated ring protection and restoration technique
US20030031126A1 (en) * 2001-03-12 2003-02-13 Mayweather Derek T. Bandwidth reservation reuse in dynamically allocated ring protection and restoration technique
JP2005198201A (ja) * 2004-01-09 2005-07-21 Ntt Docomo Inc ネットワークトポロジー構成方法及びノード
US7349351B2 (en) * 2004-11-10 2008-03-25 Lucent Technologies Inc. Method for determining a master ring for an optical communications network
JP4670042B2 (ja) 2005-01-13 2011-04-13 ブラザー工業株式会社 ノード装置、ノード装置情報更新方法、及びノード装置情報更新プログラム

Also Published As

Publication number Publication date
US20100020807A1 (en) 2010-01-28
US8014302B2 (en) 2011-09-06
CN101640641A (zh) 2010-02-03
CN101640641B (zh) 2012-03-21
JP2010034761A (ja) 2010-02-12

Similar Documents

Publication Publication Date Title
US8792331B2 (en) Method of providing a successor list
US7895345B2 (en) Distributed routing table architecture and design
JP4488094B2 (ja) 通信ノードと通信方法およびコンピュータ・プログラム
BRPI0622079A2 (pt) serviço de transmissão contìnua em tempo real ponto-a-ponto com suporte a contribuição
JP2011172204A (ja) 分散型メッシュネットワーク
US9262219B2 (en) Distributed processing system, distributed processing method, and distributed processing program
JP5136585B2 (ja) 情報通信システム、ノード装置、情報処理方法、及び情報処理プログラム
JP2010271798A (ja) 分散データ管理装置及び方法及びプログラム
US20170286483A1 (en) Standing queries in memory
JP6131907B2 (ja) 分散データベース、データ共有方法、プログラム、装置
JP5370269B2 (ja) 分散保存システム、分散保存システムの接続情報通知方法及びプログラム
JP2008269141A (ja) オーバレイ検索装置、オーバレイ検索システム、オーバレイ検索方法およびオーバレイ検索用プログラム
JP5724154B2 (ja) データ配信システム、データ配信のためのデータ通信装置およびプログラム
JP6816511B2 (ja) セッション管理プログラム、セッション管理方法、情報処理装置、及び情報処理システム
US20130304823A1 (en) Information processing device, information processing system, information processing method, and information processing program
JP4770804B2 (ja) オーバレイネットワーク型通信システム、オーバレイネットワーク型ノード装置およびプログラム
JP2009087103A (ja) 情報配信システムにおける端末装置及びその情報処理プログラム並びに情報処理方法
JP4409604B2 (ja) オーバーレイネットワーク構築・維持方法及びプログラム
WO2012133211A1 (ja) データ転送装置及びデータ転送方法
JP7388585B1 (ja) 情報処理装置、情報処理方法、情報処理プログラム及び分散制御システム
JP2009157575A (ja) ネットワーク端末及びコンピュータプログラム
JP5434268B2 (ja) 分散保存システム、データファイル分散保存方法及びプログラム
US11503135B1 (en) Optimizing system alerts using dynamic location data
WO2023092951A1 (zh) 远程证明的应用方法、装置、设备、***及存储介质
JP7319564B2 (ja) データ共有システム、管理端末、データ共有方法、および、データ共有プログラム

Legal Events

Date Code Title Description
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: 20100309

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: 20100322

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

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140409

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees