JP5287500B2 - ノード装置およびノード装置用プログラム - Google Patents

ノード装置およびノード装置用プログラム Download PDF

Info

Publication number
JP5287500B2
JP5287500B2 JP2009125509A JP2009125509A JP5287500B2 JP 5287500 B2 JP5287500 B2 JP 5287500B2 JP 2009125509 A JP2009125509 A JP 2009125509A JP 2009125509 A JP2009125509 A JP 2009125509A JP 5287500 B2 JP5287500 B2 JP 5287500B2
Authority
JP
Japan
Prior art keywords
node
bit string
neighboring
node device
adjacent
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
JP2009125509A
Other languages
English (en)
Other versions
JP2010273277A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2009125509A priority Critical patent/JP5287500B2/ja
Publication of JP2010273277A publication Critical patent/JP2010273277A/ja
Application granted granted Critical
Publication of JP5287500B2 publication Critical patent/JP5287500B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、オーバレイネットワークにおけるノード装置、およびコンピュータをノード装置として動作させるためのノード装置用プログラム、特に、ノード装置間の近傍性の検出技術に関する。
オーバレイネットワークとは、例えばインターネットのような既存の物理的なコンピュータ・ネットワークを用いて、その上位層に目的に応じて構築された別の論理的(仮想的)なコンピュータ・ネットワークである。オーバレイネットワーク上のノード装置(コンピュータ)は、下位ネットワークのトポロジを意識せずに通信することができる。
オーバレイネットワークの代表例には、P2P(Peer to Peer)がある。P2Pは、従来のクライアント・サーバ型のシステムとは異なり、ネットワークに接続されるノード装置(ピアともいう)同士がネットワークを介して対等に(ある時はクライアントとなり、ある時はサーバとなって)通信を行うことができるシステムである。これにより、P2Pは、特定のサーバに負荷とトラフィックが集中することがなく、高いスケーラビリティ(拡張性)が得られるというメリットがある。
複数のノード装置を分散的に協調させてオーバレイネットワークを構築する技術として、構造化オーバレイネットワークがある。これは、ノード装置毎に割り当てられたID(識別符号)でネットワークの構成に制約を持たせ、ID空間上で効率的なネットワークを自立的に構築するものである(非特許文献1〜5参照)。
一般的に、構造化オーバレイネットワークにおけるIDは、各ノード装置に割り当てられたIP(Internet Protocol)アドレスとボート番号にハッシュ関数(例えば、SHA(Secure Hash Standard)−1、非特許文献6参照)を適用してランダム空間に写像された値が用いられる。これにより、物理ネットワークとは全く異なる論理的なネットワークが構築される。即ち、構造化オーバレイネットワークでは、任意の2つのノード装置の間において、ID空間上での近傍性と物理ネットワーク上での近傍性(ホップ数や伝送遅延等)は無関係である。
従って、たとえノード装置Aとノード装置Bが物理ネットワーク上で隣接している場合であっても、一方から他方にメッセージが到達するまでに、必要以上に多数のルータを経由する可能性がある。このため、従来のオーバレイネットワークでは、メッセージの伝送遅延が増大するという問題があった。
このような問題を解決するために、特許文献1には、非特許文献2の手法において、IDの上位ビットをIPアドレスのネットワークアドレスに基づいてハッシュ関数で決定し、下位ビットをノード装置のIPアドレスとポート番号の組からハッシュ関数で決定するデータ管理装置が開示されている。このデータ管理装置では、ネットワークアドレスが近いノード装置同士にID空間上でも近い値のIDが付与されるので、物理ネットワークにおけるルータのホップ数を少なくすることができる。
なお、特許文献2には、ピア間のトランスポートネットワーク(物理ネットワーク)による長距離接続を抑制するために、オーバレイネットワークに参加する複数のピアを、類似のトランスポートネットワーク近接度を有するようにグループ化し、グループ間接続の数を最小限に抑えるように構成するシステムが記載されている。
特許文献3には、オーバレイネットワークを構成する各ノード装置が、自ら提供するサービス名とサービス実体を記憶し、サービス名をハッシュ化したサービスキーと自ノードの識別情報をハッシュ化したノード識別子のハッシュ空間における距離D1に基づいてサービスの提供を行うシステムが記載されている。即ち、各ノード装置は、距離D1がハッシュ空間上に存在する自ノード以外のノードのノード識別子とサービスキーとの距離D2のいずれよりも近い場合に、サービス実体を起動して自立的にグローバルサービスの提供を開始する。
特許文献4には、オーバレイネットワークに参加する各ピアが、複数のランドマークに対する通信の応答時間を測定し、その応答時間に基づいて多次元の位置情報を算出し、更に多次元の位置情報を空間充填曲線を用いて一次元の位置情報に変換し、この一次元の位置情報に空間分布関数を適用して均一化された一次元の情報を取得し、この一次元の情報と論理識別子空間の積を取ることによってピアの論理識別子を決定するオーバレイ検索技術が記載されている。これにより、ピアの論理識別子の分布が均一になり、特定のピアに負荷が偏らなくなるとされている。
特許文献5には、オーバレイネットワークのゾーン空間を、インデックス用のゾーン空間とルーティング用のゾーン空間の二重構造とし、インデックス用のゾーン空間はピアの負荷に応じて分割し、ルーティング用のゾーン空間はノードの近接性を考慮して分割するオーバレイ構築技術が記載されている。これにより、2つのゾーン空間で同じ位置のゾーンを管理するピア同士を互いにリンクすると、ピアの負荷の偏りがインデックス用のゾーン空間の分割で解消し、ルーティング効率はルーティング用のゾーン空間によって改善するとされている。
特許文献6には、オーバレイネットワークへ参加するノード装置が自身の論理的位置を表すノードIDを決定するときに、他のノード装置と重複しない固有のノードIDを決定するための技術が記載されている。特許文献6によれば、オーバレイネットワークへの参加を要求する参加要求ノード装置は、自らのノードIDを決定し、ルーティングテーブルの作成を目的として参加メッセージをコンタクトノードに送信する。一方、各ノード装置は、自身が参加要求ノードではないが、参加メッセージの最終転送先ノードである状態で参加メッセージを受信した場合に、自身のノードIDを含む転送完了メッセージを参加要求ノードに送信する。更に、参加要求ノード装置は、受信した転送完了メッセージの最終転送先にノードIDが自身のノードIDと一致する場合に、自ノード装置のノードIDを変更し、再度参加メッセージをコンタクトノードに送信する。
特許文献7には、ノードの総数が大きい場合に、フルメッシュでオーバレイネットワークを構成することの困難性を回避するために、オーバレイネットワークを階層構造化する技術が記載されている。特許文献7によれば、オーバレイネットワークを構成するノードの内、所定の条件に合う幾つかをスーパーノードとして論理的に接続してスーパーノード層を形成する。また、その他の一般ノードは、最も近いスーパーノードに論理的に接続して所属させ、これらの一般ノードが存在する階層を一般ノード層として形成する。更に、各ノードには2次元の座標位置を与え、各スーパーノードは、自身を中心に2次元空間を角度θ=π/3で空間を6つのセクタに分割し、セクタj(j=1〜6)の空間に位置する他のスーパーノードの中から自己に最も距離が近いスーパーノードを、隣接スーパーノードとして論理的に接続してスーパーノード層を形成する。
特開2008−011330号公報 特開2005−094773号公報 特開2008−204299号公報 特開2008−269141号公報 特開2008−299586号公報 特開2009−017069号公報 特開2009−044371号公報
Sylvia Ratnasamy, Paul Francis, Mark Handley, Richard Karp, Scott Shenker, "A Scalable Content-Addressable Network", Proceedings of ACM SIGCOMM 2001. Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan, "Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications", Proceedings of ACM SIGCOMM 2001. Antony Rowstron, Peter Druschel, "Pastry: Scalable, decentralized object location and routing for large-scale peer-to-peer systems", Proceedings of the IFIP/ACM International Conference on Distributed Systems Platforms. Heiderberg, Germany, November 2001. Petar Maymounkov, David Mazieres "Kademlia: A Peer-to-peer Information System Based on the XOR Metric", Proceedings of IPTPS 2002, Cambrige, Mar. 2002. Ben Y. Zhao, Ling Huang, Jeremy Stribling, Sean C. Rhea, Anthony D. Joseph, John D. Kubiatowicz, "Tapestry: A Resilient Global-Scale Overlay for Service Deployment", IEEE Journal on Selected Areas in Communications, 2004. FIPS PUB 180-1, "SECURE HASH STANDARD", U.S. Department of Commerce, Apr. 1995. L. Yang, R. Dantu, T. Anderson, R. Gopal, "Forwarding and Control Element Separation (ForCES) Framework", RFC3746, IETF, Apr. 2004. Nick McKeown, Tom Anderson, Hari Balakrishnan, Guru Parulkar, Larry Peterson, Jennifer Rexford, Scott Shenker, Jonathan Turner, "OpenFlow: Enabling Innovation in Campus Networks", SIGCOMM Computer Communication Review, Mar. 2008.
特許文献1等に記載された従来の手法では、物理ネットワークにおけるIPアドレスの階層構造を用いて、近傍性の算出を行っている。このため、IPアドレスが存在しなかったり、存在していてもネットワークアドレス部が同じであったりする場合には、物理的近傍性を算出することができないという課題があった。
本発明は上記課題に鑑みてなされたもので、オーバレイネットワークにおけるIPアドレスの有無に拘わらず、与えられたグループ情報や個々のノード装置の近接情報に基づいてノード装置間の近傍性を示す値を算出し、この値同士の比較のみでノード装置間の距離を算出することを目的とする。
上記目的を達成するために、本発明の第1の観点に係るノード装置は、オーバレイネットワークシステムを構成する複数のノード装置であって、それぞれ、自身のノード装置に固有の情報と近接するノード装置に固有の情報とを縮退して近接ノードビット列を生成するビット列生成手段と、前記ビット列生成手段で生成された近接ノードビット列を他のノード装置へ送信するビット列送信手段と、前記他のノード装置から受信した近接ノードビット列と前記ビット列生成手段で生成された近接ノードビット列とを対応するビット同士で比較し、ビット間距離に従って該他のノード装置の近傍性を判定するビット列比較手段と、を備えることを特徴とする。
本発明の第2の観点に係るノード装置は、オーバレイネットワークシステムを構成する複数のノード装置であって、それぞれ、自身のノード装置を識別するためのノード固有ビット列を生成するノード固有ビット列生成部と、近接するノード装置を指定するための近接ノードリストを生成して記憶する近接ノードリスト生成記憶部と、前記ノード固有ビット列生成部で生成されたノード固有ビット列を、前記近接ノードリストに従って前記近接するノード装置に送信するノード固有ビット列送信部と、前記近接するノード装置から送信されてくるノード固有ビット列を受信するノード固有ビット列受信部と、前記ノード固有ビット列受信部で受信されたノード固有ビット列を送信元のノード装置に対応付けて記憶するノード固有ビット列記憶部と、前記近接ノードリストで指定される近接するノード装置に対応するノード固有ビット列と、前記ノード固有ビット列生成部で生成された自身のノード固有ビット列とを縮退して近接ノードビット列を生成する近接ノードビット列生成部と、前記近接ノードビット列生成部で生成された近接ノードビット列を他のノード装置へ送信する近接ノードビット列送信部と、前記他のノード装置から送信されてくる近接ノードビット列を受信する近接ノードビット列受信部と、前記近接ノードビット列受信部で受信された近接ノードビット列と前記近接ノードビット列生成部で生成された自身の近接ノードビット列とを対応するビット同士で比較し、ビット間距離に従って近傍性を判定する近接ノードビット列比較部と、を備えることを特徴とする。
本発明の第3の観点に係るノード装置は、オーバレイネットワークシステムを構成する複数のノード装置であって、それぞれ、近接するノード装置を指定するための近接ノードリストを生成して記憶する近接ノードリスト生成記憶部と、前記近接ノードリストで指定される近接するノード装置の近接ノードビット列を記憶する近接ノードビット列記憶部と、前記近接ノードビット列を生成すると共に、該近接ノードビット列と前記近接ノードリスト中の任意のノード装置の近接ノードビット列とのビット間距離が近づくように、該近接ノードビット列を変更する近接ノードビット列生成変更部と、他のノード装置から通知された近接ノードビット列と、自身のノード装置の近接ノードビット列とのビット間距離に従って近傍性を判定する近接ノードビット列比較部と、を備えることを特徴とする。
本発明の第4の観点に係るノード装置用プログラムは、コンピュータをオーバレイネットワークシステムを構成するノード装置として動作させるためのプログラムであって、自身のノード装置を識別するためのノード固有ビット列を生成するノード固有ビット列生成部、近接するノード装置を指定するための近接ノードリストを生成して記憶する近接ノードリスト生成記憶部、前記ノード固有ビット列生成部で生成されたノード固有ビット列を、前記近接ノードリストに従って前記近接するノード装置に送信するノード固有ビット列送信部、前記近接するノード装置から送信されてくるノード固有ビット列を受信するノード固有ビット列受信部、前記ノード固有ビット列受信部で受信されたノード固有ビット列を送信元のノード装置に対応付けて記憶するノード固有ビット列記憶部、前記近接ノードリストで指定される近接するノード装置に対応する前記ノード固有ビット列と、前記ノード固有ビット列生成部で生成された自身のノード固有ビット列とを縮退して近接ノードビット列を生成する近接ノードビット列生成部、前記近接ノードビット列生成部で生成された近接ノードビット列を他のノード装置へ送信する近接ノードビット列送信部、前記他のノード装置から送信されてくる近接ノードビット列を受信する近接ノードビット列受信部、および、前記近接ノードビット列受信部で受信された近接ノードビット列と前記近接ノードビット列生成部で生成された近接ノードビット列とを対応するビット同士で比較し、ビット間距離に従って近傍性を判定する近接ノードビット列比較部、としてコンピュータを機能させることを特徴とする。
本発明の第5の観点に係るノード装置用プログラムは、コンピュータをオーバレイネットワークシステムを構成するノード装置として動作させるためのプログラムであって、近接するノード装置を指定するための近接ノードリストを生成して記憶する近接ノードリスト生成記憶部、前記近接ノードリストで指定される近接するノード装置の近接ノードビット列を記憶する近接ノードビット列記憶部、前記近接ノードビット列を生成すると共に、該近接ノードビット列と前記近接ノードリスト中の任意のノード装置の近接ノードビット列とのビット間距離が近づくように、該近接ノードビット列を変更する近接ノードビット列生成変更部、および、他のノード装置から通知された近接ノードビット列と、自身のノード装置の近接ノードビット列とのビット間距離に従って近傍性を判定する近接ノードビット列比較部、としてコンピュータを機能させることを特徴とする。
本発明によれば、オーバレイネットワークにおけるIPアドレスの有無に拘わらず、与えられたグループ情報や個々のノード装置の近接情報に基づいてノード装置間の近傍性を示す値を算出し、この値同士の比較のみでノード装置間の距離を算出することができる。
本発明の実施形態のノード装置が適用されるネットワークの一例を示す構成図である。 本発明の第1の実施形態を示すノード装置の構成図である。 図2のノード装置の動作を示すフローチャートである。 本発明の第2の実施形態を示すノード装置の構成図である。 図4のノード装置の動作を示すフローチャートである。 本発明の第3の実施形態を示すノード装置の構成図である。 図6のノード装置の動作を示すフローチャートである。
以下、本発明の実施の形態について図面を参照して詳細に説明する。
(第1の実施形態)
本発明における第1の実施形態のノード装置は、図1に示すようなネットワークに適用される。このネットワークは、物理的な通信網1A,1B,1Cと、これらの通信網1A〜1Cの間を接続する基幹回線2A,2Bと、各通信網1A〜1Cに接続される複数のノード装置10で構成されている。
例えば、通信網1Aにはノード装置10−A1,10−A2,10−A3が接続され、通信網1Bにはノード装置10−B1,10−B2,10−B3が接続され、通信網1Cにはノード装置10−C1,10−C2,10−C3が接続されている。なお、通信網1A〜1Cの数や、各通信網1A〜1Cに接続されるノード装置10の数は、任意である。また、以下の説明では、特定のノード装置を指す場合を除き、ノード装置の符号におけるサフィックス(A1等)を省略する。
ノード装置10はいずれも同様の構成で、図2に示すように、ノード固有ビット列生成部11、近接ノードリスト生成記憶部12、ノード固有ビット列送信部13、ノード固有ビット列受信部14、ノード固有ビット列記憶部15、近接ノードビット列生成部16、近接ノードビット列送信部17、近接ノードビット列受信部18、および近接ノードビット列比較部19を備えている。
なお、ノード装置10は、一般的には通信機能を備えたパーソナル・コンピュータ等で構成され、ノード固有ビット列生成部11等の各部は、予め組み込まれたプログラムによって制御されるコンピュータの機能として実現されるようになっている。
ノード固有ビット列生成部11は、自身のノード装置10に固有のビット列であるノード固有ビット列を生成するものである。ノード固有ビット列は、具体的には、Nビット(但し、Nは2以上の整数)のビット列のうちで、任意のビット数n(但し、nは1以上の整数)を特定ビット値(例えば、論理値“1”)に設定したものである。ただし、特定ビット値を有するビットは疎である必要があるので、n<N/2となる。一度生成されたノード固有ビット列は、ノード固有ビット列生成部11に保存され、要求に応じてその保存された値が出力されるようになっている。
ノード固有ビット列の生成方法としては、乱数を用いる方法がある。即ち、1〜Nの整数を発生する乱数発生器を使用し、発生した乱数に対応する桁のビットを“1”にすることを繰り返し、Nビット中のnビットが“1”になるようにすれば良い。
また、他のノード固有ビット列の生成方法としては、例えば、IPアドレス、ポート番号、MAC(Media Access Control)アドレス、SSH(Secure Shell)のキー等の、ノード装置10に固有のIDに対して、ブルームフィルタをかける方法がある。ブルームフィルタは、異なる値を生成する複数のハッシュ関数を使用し、IDに対してハッシュ関数を通した値をビット列長Nで割って余りを算出し、余り+1に対応する桁のビットを“1”にするものである。
更に、他のノード固有ビット列の生成方法としては、ランダム生成値または固有のIDにブルームフィルタをかけた値と、あるグループ内のノード装置で共有されるIDにブルームフィルタをかけた値との論理和を取ってノード固有ビット列とする方法もある。なお、グループ内のノード装置で共有されるIDの具体例としては、インターネットにおけるBGP(Boarder Gateway Protocol)のAS(Autonomous System)番号や、OSPF(Open Shortest Path First)のエリア番号等がある。
近接ノードリスト生成記憶部12は、自身のノード装置10が属する近接ノード装置グループのリスト、即ち近接ノードリストを生成して記憶するものである。近接ノード装置グループは、ノード装置間で同じものであっても良いし、ノード装置毎に異なっていても良い。また、近接ノード装置グループは、物理的に近接するものであっても良いし、論理的に近接するものであっても良い。また、物理的な近接と論理的な近接の両方を考慮して、近接ノード装置グループを構成しても良い。更に、近接ノードリストは、単一の近接ノード装置グループに属するノード装置に限らず、複数の近接ノード装置グループのノード装置を含むことができる。
物理的な近接ノード装置グループは、アンダーレイのネットワーク・トポロジを考慮した近接関係を持つノード装置から構成される。具体的には、近接ノード装置グループは、当該ノード装置が接続している単一または複数のスイッチやルータ等のネットワーク中継装置に接続される他のノード装置で構成される。また、同一のネットワーク識別子(例えば、IPアドレスにおけるネットワークアドレス)を有するノード装置や、同一のネットワーク識別子のグループに属するノード装置によって、近接ノード装置グループを構成することもできる。
これらのアンダーレイのネットワーク情報は、ネットワーク中継装置の設定情報に基づいて事前に設定しても良いが、管理用情報取得機構(SNMP:Simple Network Management Protocol)等を用いて設定情報を取得して動的に設定することも可能である。
グループの単位としては、ノード装置が属する単一または複数のコンピュータ・クラスタとすることができる。また、ノード装置間の伝送遅延時間に基づいてグループ分けをすることができる。即ち、ノード装置間の伝送遅延時間がある閾値以内の場合に、そのノード装置は同じ通信網に属するグループであると判断する。
また、他のグループ化の方法としては、ルーティング・プロトコルのリンク情報(例えば、OSPFのLSA:Link-State Advertisement)や、隣接する中継装置を発見するプロトコル(例えば、LLDP:Link Layer Discovery Protocol)や、事前設定からネットワーク中継装置のトポロジ情報を取得し、ノード装置が接続されているネットワーク中継装置からのホップ数に従ってグループ化を行う方法がある。また、ルーティング・プロトコルの管理区分に応じて、ノード装置のグループ化を行うこともできる。
ネットワーク中継装置において、制御プレーンと中継プレーンを分離し、ノード間通信で用いられる通信網を介して繋がるアーキテクチャ(ForCES(非特許文献7参照)やOpenFlow(非特許文献8参照))の場合、中継プレーンであるネットワーク中継装置の接続に基づいて、制御プレーンが動作しているノード装置のグループ化を行うことができる。また、制御プレーンが接続しているネットワーク中継装置間の接続に基づいて、ノード装置のグループ化を行うこともできる。
一方、論理的な近接ノード装置グループは、情報の結びつきに基づいてノード装置をグループ化したものである。具体的には、通信頻度の高いノード装置や、必要とする情報が同一であるノード装置をグループ化する。通信頻度によるグループ化は、ノード装置毎の通信履歴を参照し、単位時間当たりの通信回数が閾値を超えたものを同一グループとする。必要とする情報によるグループ化は、共有データベースのテーブル名やメッセージング機構のメッセージチャネル名が同一であるものの数に基づき、その数が閾値を超えたものを同一グループとする。
また、論理的な近接ノード装置グループとして、ノード装置の管理構成を用いても良い。具体的なDNS(Domain Name System)のFQDN(Fully Qualified Domain Name)といった階層構造のドメインを持つノード装置名において、単一または複数の階層のドメインに属するノード装置を同一グループとしても良い。また、LDAP(Lightweight Directory Access Protocol)のディレクトリサービスでノード装置が管理されている場合には、そのディレクトリサービスにおいて単一または複数のディレクトリに属するノード装置を同一グループとしても良い。
更に、論理的な近接ノード装置グループとして、オーバレイネットワークに対する持続時間の長さによるグループ化を行うこともできる。P2Pネットワークでは、接続時間が短いほどオーバレイネットワークから離脱する可能性が高く、接続時間が長いノード装置ほどオーバレイネットワークに留まっている可能性が高い。従って、一定以上の接続時間を有するノード装置をグループ化することは、オーバレイネットワークの信頼性向上につながる。
ノード固有ビット列送信部13は、自身のノード固有ビット列をノード固有ビット列生成部11から読み出し、近接ノードリスト生成記憶部12に記憶されている近接ノードリストに従って、近接するノード装置10に送信するものである。
ノード固有ビット列受信部14は、近接する他のノード装置10から送られてくるノード固有ビット列を受信するものである。ノード固有ビット列受信部14で受信された他のノード装置10のノード固有ビット列は、ノード固有ビット列記憶部15に与えられ、このノード固有ビット列記憶部15によって、各ノード装置10に対応付けて記憶されるようになっている。
近接ノードビット列生成部16は、ノード装置10が属する近接ノード装置グループの各ノード装置10のノード固有ビット列と、自身のノード固有ビット列に従って、近接ノードの情報を縮退した近接ノードビット列を生成するものである。即ち、近接ノードビット列生成部16は、近接ノードリスト生成記憶部12から近接ノードリストを読み出し、この近接ノードリストに該当するノード装置10のノード固有ビット列をノード固有ビット列記憶部15から読み出す。更に、近接ノードビット列生成部16は、ノード固有ビット列生成部11から自身のノード固有ビット列を読み出し、自身と近接するノード装置10のノード固有ビット列の論理和を算出し、その算出結果を近接ノードビット列として出力する。
近接ノードビット列送信部17は、近接ノードビット列生成部16で生成された近接ノードビット列を、他のノード装置10へ送信するものである。この近接ノードビット列の送信は、単独ではなく、メッセージ送受信等の他の通信が行われるタイミングで、ペイロードに含めてメッセージ等と一緒に送信することが望ましい。
近接ノードビット列受信部18は、他のノード装置10から(メッセージ等と一緒に)送られてくる近接ノードビット列を受信するものである。
近接ノードビット列比較部19は、近接ノードビット列受信部18で受信された他のノード装置10からの近接ノードビット列と、近接ノードビット列生成部16で生成された自身の近接ノードビット列を比較し、ノード装置10間の近傍性を算出するものである。近傍性の算出方法としては、ハミング距離や一致したビット数によるビット間距離を用いる。ハミング距離の場合は、値が小さいほど近い位置となり、一致したビット数の場合は、一致数が多いほど近い位置となる。ノード固有ビット列として“1”のビットが疎な値を用いている場合には、ハミング距離または一致した“0”のビット数で比較する。
近接ノードビット列比較部19で算出されたノード装置10間の近傍性の判定結果は、実際のノード装置10間の接続制御に用いられる。例えば、あるノード装置10との間の距離が、ある閾値以下であれば該当するノード装置10との間の接続を続行し、この閾値を超えていればその接続を切断するように制御することができる。
次に、図3を参照しつつ、図2のノード装置の動作を説明する。なお、この動作説明では、図1中のノード装置10−A1を中心として、ノード装置10−A2,10−A3,10−B1,10−B2,10−B3が近接するノード装置に指定されるものとする。ここでは、ノード装置10−A1の動作を説明するが、他のノード装置10−A2等においても、それぞれ同様の動作が行われる。
図3(a)に示すノード固有ビット列生成/送受信処理では、まず、ノード装置10−A1のノード固有ビット列生成部11は、自身のノード固有ビット列を生成する(ステップS1)。ここでは、ノード固有ビット列の長さであるNを9ビットとし、特定ビット値(ここでは、論理値“1”)を有するビット数nを1とする。
これにより、ノード装置10−A1のノード固有ビット列は、例えば“000000001”に設定され、ノード装置10−A2,10−A3,10−B1,10−B2,10−B3,10−C1,10−C2,10−C3のノード固有ビット列は、それぞれ、“000000010",“000000100”,“000001000”,“000010000”,“000100000”,“001000000”,“010000000”,“100000000”に設定されるものとする。なお、各ノード装置10が同じノード固有ビット列を設定しないための方法は、例えば特許文献6に記載されている。
ノード装置10−A1の近接ノードリスト生成記憶部12は、物理的または論理的な近接関係に基づいて近接ノードリストを生成する(ステップS2)。ここでは、前述のように、物理的な近接関係に基づいて、ノード装置10−A2,10−A3,10−B1,10−B2,10−B3を近接するノード装置として、近接ノードリストが生成される。
また、ノード装置10−A1のノード固有ビット列送信部13は、ノード固有ビット列生成部11で生成されたノード固有ビット列を、近接ノードリスト生成記憶部12の近接ノードリストに登録されているノード装置10に送信する(ステップS3)。これにより、ノード装置10−A1のノード固有ビット列“000000001"が、近接するノード装置10−A2,10−A3,10−B1,10−B2,10−B3に送信される。
一方、ノード装置10−A1のノード固有ビット列受信部14は、他のノード装置10−A2等から送られてくるノード固有ビット列を受信し(ステップS4)、ノード固有ビット列記憶部15に記憶する(ステップS5)。このようにして、ノード装置10−A1のノード固有ビット列が近接するノード装置10−A2等に通知されると共に、これらの近接するノード装置10−A2等からそれぞれのノード装置10で設定されたノード固有ビット列が、このノード装置10−A1に通知される。
図3(b)に示す近接ノードビット列生成/送信処理では、近接ノードビット列生成部16が、ノード固有ビット列生成部11から自身のノード固有ビット列を読み出して取得する(ステップS11)。また、近接ノードビット列生成部16は、近接ノードリスト生成記憶部12から近接ノードリストを読み出し、この近接ノードリストに該当する近接するノード装置10のノード固有ビット列をノード固有ビット列記憶部15から読み出して取得する(ステップS12)。
更に、近接ノードビット列生成部16は、自身と近接するノード装置10のノード固有ビット列の論理和を算出し、その算出結果を近接ノードビット列として生成する(ステップS13)。これにより、ノード装置10−A1のノード固有ビット列“000000001”と、近接するノード装置10−A2,10−A3,10−B1,10−B2,10−B3のそれぞれのノード固有ビット列“000000010”,“000000100”,“000001000”,“000010000”,“000100000”の論理和“000111111”が、近接ノードビット列として生成される。
近接ノードビット列生成部16で生成された近接ノードビット列は、メッセージの送受信等の他の通信が行われるタイミングで、近接ノードビット列送信部17によって読み出され、ペイロードに載せられてメッセージ等と共に他のノード装置10に送信される(ステップS14)。
図3(c)に示す近傍性判定処理では、他のノード装置10からメッセージ等が送信されてくると、近接ノードビット列受信部18が、そのメッセージ等と共にペイロードに載せられてくる近接ノードビット列を受信する(ステップS21)。
近接ノードビット列受信部18で受信された近接ノードビット列は、近接ノードビット列比較部19に与えられ、近接ノードビット列生成部16で生成された近接ノードビット列と比較される(ステップS22)。
例えば、近傍性の算出にハミング距離を用いる場合、ノード装置10−A2が近接ノード装置としてノード装置10−A1,10−A3,10−B1〜10−B3を指定していれば、このノード装置10−A2の近接ノードビット列は、ノード装置10−A1の近接ノードビット列と同じ“000111111”である。従って、ノード装置10−A1とノード装置10−A2との間のハミング距離は0となる。
また、ノード装置10−B1が近接するノード装置として図1中のすべてのノード装置10−A1〜10−C3を指定している場合、このノード装置10−B1の近接ノードビット列は“111111111”である。従って、ノード装置10−A1とノード装置10−B1との間のハミング距離は3となる。
また、ノード装置10−C1が近接ノード装置としてノード装置10−B1〜10−B3,10−C2,10−C3を指定している場合、このノード装置10−C1の近接ノードビット列は“111111000”である。従って、ノード装置10−A1とノード装置10−C1との間のハミング距離は6となる。
近接ノードビット列比較部19で算出された近傍性判定結果は、図示しない接続管理部等に与えられ、ノード装置10間の接続制御に利用される。
以上詳細に説明したように、第1の実施形態のノード装置10は、近接ノードリストに従って近接ノードビット列を生成し、この近接ノードビット列と他のノード装置10から受信した近接ノードビット列のビット間距離に従って近傍性を判定している。
これにより、オーバレイネットワークにおけるIPアドレスの有無に拘わらず、与えられたグループ情報や個々のノード装置の近接情報に基づいて、即ち、任意の基準に従ってノード装置10間の近傍性を示す値を算出し、この値同士の比較のみでノード装置10間の距離を算出することができるという利点がある。
(第2の実施形態)
本発明における第2の実施形態のノード装置10Aは、図1中のノード装置10に代えて用いられるもので、図4に示すように、第1の実施形態のノード装置10に、近接ノードビット列記憶部20とノード固有ビット列変更部21を追加したものである。なお、図4において、図2中の構成要素と共通の要素には共通の符号を付し、その説明は省略する。
近接ノードビット列記憶部20は、近接ノードビット列受信部18で受信した近接ノードビット列を、それを送信したノード装置10Aと対応付けて記憶するものである。
ノード固有ビット列変更部21は、自身のノード装置10Aの近接ノードビット列と、近接ノードリスト生成記憶部12に登録されていないノード装置10Aの近接ノードビット列とのビット間距離が遠くなるように、自身のノード固有ビット列を変更するものである。
具体的に説明すると、ノード固有ビット列変更部21は、近接ノードリスト生成記憶部12の近接ノードリストを参照し、この近接ノードリストに存在しないノード装置10Aの近接ノードビット列を近接ノードビット列記憶部20から取得し、取得した近接ノードビット列と自身のノード固有ビット列とで一致しているビットを調べ、一致している自身のノード固有ビット列中の任意数のビットを変更するものである。この変更回数は1回でも良いし、複数回繰り返して行っても良い。
次に、図5を参照しつつ、図4のノード装置10Aにおけるノード固有ビット列変更処理の動作を説明する。
近接ノードビット列生成部16は、ノード固有ビット列生成部11から自身のノード固有ビット列を読み出して取得する(ステップS31)と共に、近接ノードリスト生成記憶部12から近接ノードリストを読み出し、この近接ノードリストに該当する近接するノード装置10Aのノード固有ビット列をノード固有ビット列記憶部15から読み出して取得する(ステップS32)。
更に、近接ノードビット列生成部16は、自身と近接するノード装置10Aのノード固有ビット列の論理和を算出し、その算出結果を近接ノードビット列として生成する(ステップS33)。
ノード固有ビット列変更部21は、まず、近接ノードビット列記憶部20に記憶された近接ノードビット列の内で、近接ノードリストに登録されていないノード装置10Aに対応する近接ノードビット列を取得する(ステップS34)。次に、ノード固有ビット列変更部21は、ステップS34で取得した近接ノードビット列と、近接ノードビット列生成部16で生成された自身の近接ノードビット列とをビット毎に比較し、一致しているビット数を算出する(ステップS35)。
更に、ノード固有ビット列変更部21は、近接ノードビット列中の一致しているビット数が閾値以下となるノード装置10Aが存在するか否かの判定を行う(ステップS36)。一致するビット数が閾値以下となるノード装置10Aが存在する場合には(ステップS36;はい)、ノード固有ビット列生成部11で生成した自身のノード装置10Aのノード固有ビット列を変更し(ステップS37)、ステップS33の処理へ戻る。
一方、ステップS35で算出した一致ビット数が閾値以下となるノード装置10Aが存在しない場合には(ステップS36;いいえ)、ノード固有ビット列送信部13は、ノード固有ビット列生成部11で生成された自身のノード装置10Aのノード固有ビット列を変更せずにそのまま、他のノード装置10Aへ送信する(ステップS38)。
なお、このノード固有ビット列変更処理は、ノード装置10Aの起動時に行われるだけでなく、動作中に周期的に行うことができる。これにより、近傍性のないノード装置10A間で近傍性があるような近接ノードビット列が生成されたとしても、時間の経過と共に近傍性をなくすことができる。
(第3の実施形態)
本発明における第3の実施形態のノード装置30は、図1中のノード装置10に代えて用いられるもので、図6に示すように、近接ノードリスト生成記憶部31、近接ノード間近接ノードビット列受信部32、近接ノードビット列記憶部33、近接ノードビット列生成変更部34、近接ノード間近接ノードビット列送信部35、近接ノードビット列送信部36、近接ノードビット列受信部37、および近接ノードビット列比較部38を備えている。
近接ノードリスト生成記憶部31は、自身のノード装置30が属する近接ノード装置グループのリスト、即ち近接ノードリストを生成して記憶するもので、図2中の近接ノードリスト生成記憶部12と同様の機能を有している。
近接ノード間近接ノードビット列受信部32は、近接ノードリスト生成記憶部31に記憶されている近接ノードリストのノード装置30から送信されてくる近接ノードビット列を受信するものである。
近接ノードビット列記憶部33は、近接ノード間近接ノードビット列受信部32で受信した近接ノードビット列を、送信元のノード装置30と対応付けて記憶するものである。近接ノードビット列記憶部33の記憶内容の更新は、任意のタイミングで行われる。この更新タイミングは、一定間隔でも良いし、一定間隔である確率に基づいて行っても良い。
近接ノードビット列生成変更部34は、自身のノード装置30の近接ノードビット列を生成すると共に、その生成した近接ノードビット列を近接ノードリスト中の任意のノード装置30の近接ノードビット列に近づくように変更するものである。
具体的には、近接ノードビット列生成変更部34は、近接ノードリスト生成記憶部31に記憶された近接ノードリストから単数または複数のノード装置30を選択し、選択したノード装置30に対応する近接ノードビット列を近接ノードビット列記憶部33から取得する。更に、取得した近接ノードビット列の任意箇所(複数箇所も可能)のビットを、自身のノード装置30の近接ノードビット列の対応する箇所に上書きする。これにより、自ノード装置30と他の任意のノード装置30の近接ノードビット列間のハミング距離が近づく。
もしも近接ノードビット列が存在しない場合には、乱数またはノード固有のID(例えば、IPアドレス、ポート番号、MACアドレス、SSHのキー、商用ソフトエアのシリアル番号等)にハッシュ関数をかけた値を準備し、その値の任意箇所のビットを、自身のノード装置30の近接ノードビット列の対応する箇所に上書きする。
なお、近接ノードビット列の変更によってすべてのノード装置30の近接ノードビット列が同じ値になることを防止するために、上書き変更よりも小さい確率でノード装置30の近接ノードビット列の任意箇所のビットを異なる値に変更するようにしても良い。
近接ノード間近接ノードビット列送信部35は、近接ノードリスト生成記憶部31に記憶された近接ノードリストのノード装置30に対して、近接ノードビット列生成変更部34で生成または変更された自身の近接ノードビット列を送信するものである。この近接ノードビット列の送信は、単独ではなく、メッセージの送受信等の他の通信が行われるタイミングで、ペイロードに含めてメッセージ等と一緒に送信することが望ましい。
近接ノードビット列送信部36は、近接ノードビット列生成変更部34で生成または変更された自身の近接ノードビット列を、近接ノードリストのノード装置30に限定せず、他のノード装置30に送信するものである。この近接ノードビット列の送信も、単独ではなく、メッセージの送受信等の他の通信が行われるタイミングで、ペイロードに含めてメッセージ等と一緒に送信することが望ましい。
なお、近接ノード間近接ノードビット列送信部35と近接ノードビット列送信部36とは、近接ノードビット列の送信先が、近接ノードリストで指定されたノード装置30であるか否かが相違するだけで、その他の機能は同一である。従って、近接ノード装置間の情報の送信であることが識別できれば、共有することができる。識別の方法としては、送信時に予め近接するノード装置30に対して識別用のフラグを入れる方法がある。
近接ノードビット列受信部37は、他のノード装置30からの近接ノードビット列を受信するものである。
なお、近接ノード間近接ノードビット列受信部32と近接ノードビット列受信部37とは、近接ノードビット列の送信元が、近接ノードリストで指定されたノード装置30であるか否かが相違するだけで、その他の機能は同一である。従って、近接ノード装置間の情報の受信であることが識別できれば、共有することができる。識別の方法としては、受信時に送信元のノード装置30を、近接ノードリストと照合する方法がある。
近接ノードビット列比較部38は、近接ノードビット列受信部37で受信された他のノード装置30からの近接ノードビット列と、近接ノードビット列生成変更部34で生成または変更された自身のノード装置30の近接ノードビット列を比較し、ノード装置30間の近傍性を算出するものである。近傍性の算出方法には、図2中の近接ノードビット列比較部19と同様に、ハミング距離や一致したビット数によるビット間距離を用いる方法がある。
次に、図7を参照しつつ、図6のノード装置30における近傍性判定処理の動作を説明する。
まず、近接ノードリスト生成記憶部31は、近接ノードリストを生成して記憶する(ステップS41)。一方、近接ノード間近接ノードビット列受信部32は、近接するノード装置30から送信されてくる近接ノードビット列を受信し(ステップS42)、近接ノードビット列記憶部33は、その受信した近接ノードビット列を記憶する(ステップS43)。
次に、近接ノードビット列生成変更部34は、自身の近接ノードビット列がまだ生成されていない場合には、近接ノードリスト生成記憶部31の近接ノードリストを参照して近接ノードビット列を生成する。既に近接ノードビット列が生成されていれば、近接ノードビット列生成変更部34は、近接ノードリスト生成記憶部31の近接ノードリストと近接ノードビット列記憶部33に記憶された近接ノードビット列に従って、自身の近接ノードビット列を変更する(ステップS44)。
近接ノード間近接ノードビット列送信部35は、近接ノードビット列生成変更部34で生成または変更された近接ノードビット列を、メッセージ等の送信タイミングに合わせて、近接するノード装置30へ送信する(ステップS45)。
近接ノードビット列受信部37は、他のノード装置30からメッセージ等と共に送信されてくる近接ノードビット列を受信する(ステップS46)。近接ノードビット列受信部37で受信された他のノード装置30の近接ノードビット列は、近接ノードビット列比較部38に与えられ、この近接ノードビット列比較部38において、近接ノードビット列生成変更部34に保持されている自身の近接ノードビット列と比較される(ステップS47)。
近接ノードビット列比較部38で算出された近傍性判定結果は、図示しない接続管理部等に与えられ、ノード装置30間の接続制御に利用される。
以上詳細に説明したように、第3の実施形態のノード装置30は、近接ノードビット列生成変更部34が、近接ノードリスト生成記憶部31で指定された近接ノードリストに従って自身の近接ノードビット列を生成すると共に、近接するノード装置30から受信して近接ノードビット列記憶部33に記憶された近接ノードビット列を用いて、自身の近接ノードビット列を変更するようにしている。
これにより、本実施形態のノード装置30は、第1の実施形態と同様の利点に加えて、近接するノード装置30の近接ノードビット列に従って近傍性を順次更新することができるという利点がある。
なお、本発明は、上記実施形態に限定されるものではなく、下記のような種々の変形が可能である。
(a) 第2の実施形態で、近接ノードビット列記憶部20とノード固有ビット列変更部21を設け、近接ノードリスト以外のノード装置10Aとのビット間距離が遠くなるように、自身のノード固有ビット列を変更するようにしているが、第3の実施形態でも同様の構成を採用することができる。
その場合、近接ノードビット列受信部37で受信した他の(近接ノード以外の)ノード装置30の近接ノードビット列を近接ノードビット列記憶部33に記憶し、近接ノードビット列生成変更部34において他のノード装置30とのビット間距離が遠くなるように近接ノードビット列を変更すれば良い。具体的には、近接ノードビット列比較部38の近傍性判定結果が遠ざかるように、近接ノードリスト生成記憶部31に記憶された近接ノードリストに入っていない任意のノード装置30の近接ノードビット列と、自身のノード装置30の近接ノードビット列の一致するビット数を減少させれば良い。
或いは、近接ノードビット列生成変更部34において、自身のノード装置30の近接ノードビット列の任意箇所のビットを異なる値に変更するようにしても良い。
(b) 第1〜第3の実施形態では、2値のビット列を用いて説明を行ったが、2のn乗となる多値のビットにおいても、2のn乗の要素を持つガロア体と考えることで対応が可能である。
(c) 第1〜第3の実施形態では、あるノード装置からの近接ノードビット列はすべて同じ値として説明したが、ノード装置毎に設定基準を定めて、異なる近接ノードビット列を算出するようにしても良い。ここで設定基準とは、特定のノード装置に対して特定のノード装置を近接ノードリストから外したり、特定のノード装置に対して特定のノード装置を近接ノードリストに加えたりすることである。また、近接ノードビット列に対して、特定のビット列を付加することもできる。
1A〜1C 通信網
2A,2B 基幹回線
10,10A,30 ノード装置
11 ノード固有ビット列生成部
12,31 近接ノードリスト生成記憶部
13 ノード固有ビット列送信部
14 ノード固有ビット列受信部
15 ノード固有ビット列記憶部
16 近接ノードビット列生成部
17,36 近接ノードビット列送信部
18,37 近接ノードビット列受信部
19,38 近接ノードビット列比較部
20,33 近接ノードビット列記憶部
21 ノード固有ビット列変更部
32 近接ノード間近接ノードビット列受信部
34 近接ノードビット列生成変更部
35 近接ノード間近接ノードビット列送信部

Claims (22)

  1. オーバレイネットワークシステムを構成する複数のノード装置であって、それぞれ、
    自身のノード装置に固有の情報と近接するノード装置に固有の情報とを縮退して近接ノードビット列を生成するビット列生成手段と、
    前記ビット列生成手段で生成された近接ノードビット列を他のノード装置へ送信するビット列送信手段と、
    前記他のノード装置から受信した近接ノードビット列と前記ビット列生成手段で生成された近接ノードビット列とを対応するビット同士で比較し、ビット間距離に従って該他のノード装置の近傍性を判定するビット列比較手段と、
    を備えることを特徴とするノード装置。
  2. オーバレイネットワークシステムを構成する複数のノード装置であって、それぞれ、
    自身のノード装置を識別するためのノード固有ビット列を生成するノード固有ビット列生成部と、
    近接するノード装置を指定するための近接ノードリストを生成して記憶する近接ノードリスト生成記憶部と、
    前記ノード固有ビット列生成部で生成されたノード固有ビット列を、前記近接ノードリストに従って前記近接するノード装置に送信するノード固有ビット列送信部と、
    前記近接するノード装置から送信されてくるノード固有ビット列を受信するノード固有ビット列受信部と、
    前記ノード固有ビット列受信部で受信されたノード固有ビット列を送信元のノード装置に対応付けて記憶するノード固有ビット列記憶部と、
    前記近接ノードリストで指定される近接するノード装置に対応するノード固有ビット列と、前記ノード固有ビット列生成部で生成された自身のノード固有ビット列とを縮退して近接ノードビット列を生成する近接ノードビット列生成部と、
    前記近接ノードビット列生成部で生成された近接ノードビット列を他のノード装置へ送信する近接ノードビット列送信部と、
    前記他のノード装置から送信されてくる近接ノードビット列を受信する近接ノードビット列受信部と、
    前記近接ノードビット列受信部で受信された近接ノードビット列と前記近接ノードビット列生成部で生成された自身の近接ノードビット列とを対応するビット同士で比較し、ビット間距離に従って近傍性を判定する近接ノードビット列比較部と、
    を備えることを特徴とするノード装置。
  3. 前記近接ノードビット列受信部で受信された近接ノードビット列を送信元のノード装置に対応付けて記憶する近接ノードビット列記憶部と、
    前記近接ノードリストで指定されていないノード装置を送信元として前記近接ノードビット列記憶部に記憶された近接ノードビット列と、前記ノード固有ビット列生成部で生成されたノード固有ビット列とのビット間距離が遠くなるように該ノード固有ビット列を変更するノード固有ビット列変更部と、
    を更に備えることを特徴とする請求項2に記載のノード装置。
  4. 前記ノード固有ビット列変更部は、前記ノード固有ビット列生成部で生成されたノード固有ビット列の内で、前記近接ノードリストで指定されていないノード装置を送信元として前記近接ノードビット列記憶部に記憶された近接ノードビット列と一致している任意数のビットを変更することを特徴とする請求項3に記載のノード装置。
  5. 前記ノード固有ビット列生成部は、前記ノード固有ビット列として疎なビット列を生成することを特徴とする請求項2、3または4に記載のノード装置。
  6. 前記ノード固有ビット列生成部は、自身のノード装置に固有の識別符号からブルームフィルタを用いて前記疎なビット列を生成することを特徴とする請求項5に記載のノード装置。
  7. 前記ノード固有ビット列生成部は、前記疎なビット列とグループ毎に固有の識別符号に対してブルームフィルタを用いて算出したビット列とのビット毎の論理和を取った値を、前記ノード固有ビット列として生成することを特徴とする請求項6に記載のノード装置。
  8. 前記近接ノードリスト生成記憶部は、物理的な距離または論理的な距離のいずれか一方が近い他のノード装置、或いは物理的な距離と論理的な距離の両方が近い他のノード装置を、前記近接ノードリストによって近接するノード装置として指定することを特徴とする請求項2乃至7のいずれか1項に記載のノード装置。
  9. 前記近接ノードリスト生成記憶部は、物理的な距離として、アンダーレイのネットワーク・トポロジ、ノード装置間の遅延時間、およびノード装置間の中継装置のホップ数の内の1つ以上の要素に基づく近接関係を用いることを特徴とする請求項8に記載のノード装置。
  10. 前記近接ノードリスト生成記憶部は、論理的な距離として、情報の結びつきによるグループ化に基づく近接関係を用いることを特徴とする請求項8に記載のノード装置。
  11. 前記近接ノードリスト生成記憶部は、論理的な距離として、ノード装置の管理構成のグループ化に基づく近接関係を用いることを特徴とする請求項8に記載のノード装置。
  12. 前記近接ノードビット列生成部は、前記近接ノードリストで指定される近接するノード装置に対応する前記ノード固有ビット列と、前記ノード固有ビット列生成部で生成された自身のノード固有ビット列の対応するビット同士の論理和によって前記近接ノードビット列を生成することを特徴とする請求項2乃至11のいずれか1項に記載のノード装置。
  13. 前記近接ノードビット列比較部は、前記近接ノードビット列受信部で受信された近接ノードビット列と前記近接ノードビット列生成部で生成された近接ノードビット列との、ハミング距離または特定ビット値の一致数に従って前記ビット間距離を算出し、近傍性を判定することを特徴とする請求項2乃至12のいずれか1項に記載のノード装置。
  14. オーバレイネットワークシステムを構成する複数のノード装置であって、それぞれ、
    近接するノード装置を指定するための近接ノードリストを生成して記憶する近接ノードリスト生成記憶部と、
    前記近接ノードリストで指定される近接するノード装置の近接ノードビット列を記憶する近接ノードビット列記憶部と、
    前記近接ノードビット列を生成すると共に、該近接ノードビット列と前記近接ノードリスト中の任意のノード装置の近接ノードビット列とのビット間距離が近づくように、該近接ノードビット列を変更する近接ノードビット列生成変更部と、
    他のノード装置から通知された近接ノードビット列と、自身のノード装置の近接ノードビット列とのビット間距離に従って近傍性を判定する近接ノードビット列比較部と、
    を備えることを特徴とするノード装置。
  15. 前記近接ノードリスト生成記憶部は、物理的な距離または論理的な距離のいずれか一方が近い他のノード装置、或いは物理的な距離と論理的な距離の両方が近い他のノード装置を、前記近接ノードリストによって近接するノード装置として指定することを特徴とする請求項14に記載のノード装置。
  16. 前記近接ノードビット列生成変更部は、前記近接ノードリストから単数または複数のノード装置を選択し、該選択したノード装置の近接ノードビット列を取得し、該取得した近接ノードビット列の任意箇所のビットを自身のノード装置の近接ノードビット列の対応する箇所に上書きすることによって、該近接ノードビット列を変更することを特徴とする請求項14または15に記載のノード装置。
  17. 前記近接ノードビット列生成変更部は、前記近接ノードリストで指定されていない任意のノード装置を選択し、該選択したノード装置の近接ノードビット列を取得し、該取得した近接ノードビット列と自身の装置の近接ノードビット列とのビット間距離が遠ざかるように該自身の近接ノードビット列を変更することを特徴とする請求項14または15に記載のノード装置。
  18. 前記近接ノードビット列生成変更部は、前記近接ノードリストで指定されていない任意のノード装置を選択し、該選択したノード装置の近接ノードビット列を取得し、自身のノード装置の近接ノードビット列の内で、該取得した近接ノードビット列とで一致しているビットを変化させることによってビット間距離が遠ざかるように該自身の近接ノードビット列を変更することを特徴とする請求項14または15に記載のノード装置。
  19. 前記近接ノードビット列生成変更部は、自身のノード装置の近接ノードビット列の任意箇所のビットを異なる値に変更することを特徴とする請求項14乃至18のいずれか1項に記載のノード装置。
  20. 前記近接ノードビット列比較部は、他のノード装置から通知された近接ノードビット列と、自身のノード装置の近接ノードビット列との、ハミング距離または特定ビット値の一致数に従って前記ビット間距離を算出して、近傍性を判定することを特徴とする請求項14乃至19のいずれか1項に記載のノード装置。
  21. コンピュータをオーバレイネットワークシステムを構成するノード装置として動作させるためのノード装置用プログラムであって、
    自身のノード装置を識別するためのノード固有ビット列を生成するノード固有ビット列生成部、
    近接するノード装置を指定するための近接ノードリストを生成して記憶する近接ノードリスト生成記憶部、
    前記ノード固有ビット列生成部で生成されたノード固有ビット列を、前記近接ノードリストに従って前記近接するノード装置に送信するノード固有ビット列送信部、
    前記近接するノード装置から送信されてくるノード固有ビット列を受信するノード固有ビット列受信部、
    前記ノード固有ビット列受信部で受信されたノード固有ビット列を送信元のノード装置に対応付けて記憶するノード固有ビット列記憶部、
    前記近接ノードリストで指定される近接するノード装置に対応する前記ノード固有ビット列と、前記ノード固有ビット列生成部で生成された自身のノード固有ビット列とを縮退して近接ノードビット列を生成する近接ノードビット列生成部、
    前記近接ノードビット列生成部で生成された近接ノードビット列を他のノード装置へ送信する近接ノードビット列送信部、
    前記他のノード装置から送信されてくる近接ノードビット列を受信する近接ノードビット列受信部、および、
    前記近接ノードビット列受信部で受信された近接ノードビット列と前記近接ノードビット列生成部で生成された近接ノードビット列とを対応するビット同士で比較し、ビット間距離に従って近傍性を判定する近接ノードビット列比較部、
    としてコンピュータを機能させることを特徴とするノード装置用プログラム。
  22. コンピュータをオーバレイネットワークシステムを構成するノード装置として動作させるためのノード装置用プログラムであって、
    近接するノード装置を指定するための近接ノードリストを生成して記憶する近接ノードリスト生成記憶部、
    前記近接ノードリストで指定される近接するノード装置の近接ノードビット列を記憶する近接ノードビット列記憶部、
    前記近接ノードビット列を生成すると共に、該近接ノードビット列と前記近接ノードリスト中の任意のノード装置の近接ノードビット列とのビット間距離が近づくように、該近接ノードビット列を変更する近接ノードビット列生成変更部、および、
    他のノード装置から通知された近接ノードビット列と、自身のノード装置の近接ノードビット列とのビット間距離に従って近傍性を判定する近接ノードビット列比較部、
    としてコンピュータを機能させることを特徴とするノード装置用プログラム。
JP2009125509A 2009-05-25 2009-05-25 ノード装置およびノード装置用プログラム Expired - Fee Related JP5287500B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009125509A JP5287500B2 (ja) 2009-05-25 2009-05-25 ノード装置およびノード装置用プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009125509A JP5287500B2 (ja) 2009-05-25 2009-05-25 ノード装置およびノード装置用プログラム

Publications (2)

Publication Number Publication Date
JP2010273277A JP2010273277A (ja) 2010-12-02
JP5287500B2 true JP5287500B2 (ja) 2013-09-11

Family

ID=43420912

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009125509A Expired - Fee Related JP5287500B2 (ja) 2009-05-25 2009-05-25 ノード装置およびノード装置用プログラム

Country Status (1)

Country Link
JP (1) JP5287500B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7339542B2 (ja) * 2020-01-29 2023-09-06 富士通株式会社 管理装置、管理システムおよび管理方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3654554B2 (ja) * 1997-11-21 2005-06-02 株式会社小松製作所 ネットワークシステム及びdhcpサーバ選択方法
JP4732972B2 (ja) * 2006-06-30 2011-07-27 株式会社エヌ・ティ・ティ・ドコモ アドホックネットワーク、ノード、経路制御方法、及び経路制御プログラム
JP4306740B2 (ja) * 2007-02-21 2009-08-05 ソニー株式会社 オーバレイネットワークシステム及びサービス提供プログラム

Also Published As

Publication number Publication date
JP2010273277A (ja) 2010-12-02

Similar Documents

Publication Publication Date Title
US7660320B2 (en) Communication network, a method of routing data packets in such communication network and a method of locating and securing data of a desired resource in such communication network
Castro et al. Topology-aware routing in structured peer-to-peer overlay networks
US8233489B2 (en) System, method, and router for routing data packets in an overlay network
US7304994B2 (en) Peer-to-peer system and method with prefix-based distributed hash table
US7379428B2 (en) Autonomous system topology based auxiliary network for peer-to-peer overlay network
EP2230802B1 (en) A method and apparatus for maintaining route information
US20080130516A1 (en) P2p Overplay Network Construction Method and Apparatus
CN101202746B (zh) 节点标识符生成方法及负载均衡方法及装置
Dhara et al. Overview of structured peer-to-peer overlay algorithms
JP5287500B2 (ja) ノード装置およびノード装置用プログラム
Al-Oqily et al. SORD: A fault-resilient service overlay for mediaport resource discovery
US20140207933A1 (en) Naming system layer
Pethalakshmi et al. Geo-chord: Geographical location based chord protocol in grid computing
Karrakchou et al. A survey of routing mechanisms in ICNs
KR100641796B1 (ko) P2p 오버레이 네트워크 구축 방법 및 장치
Spathis et al. Leveraging replication in content-centric networks
Yu et al. BGKR: A novel P2P network based on generalized Kautz and ring with constant congestion
Popescu et al. On the implementation of a content-addressable network
Haque et al. Distributed low overhead id in a wireless sensor network
Ktari et al. Exploiting power-law node degree distribution in chord overlays
Fayçal et al. CAP: a context-aware peer-to-peer system
Tomimoto et al. Capability-Aware ID Assignment and Message Routing based on Skip List in Large-Scale Heterogeneous P2P Networks
Millar et al. Integrating peer-to-peer functionalities and routing in mobile ad-hoc networks
WO2012003623A1 (zh) 基于对等网络的资源信息处理方法、对等网络及节点
Lai et al. Tunnel Vector: A New Routing Algorithm with Scalability

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120411

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130321

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130507

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130520

LAPS Cancellation because of no payment of annual fees