JP4539603B2 - 情報通信システム、情報通信方法、情報通信システムに含まれるノード装置および情報処理プログラム - Google Patents

情報通信システム、情報通信方法、情報通信システムに含まれるノード装置および情報処理プログラム Download PDF

Info

Publication number
JP4539603B2
JP4539603B2 JP2006110626A JP2006110626A JP4539603B2 JP 4539603 B2 JP4539603 B2 JP 4539603B2 JP 2006110626 A JP2006110626 A JP 2006110626A JP 2006110626 A JP2006110626 A JP 2006110626A JP 4539603 B2 JP4539603 B2 JP 4539603B2
Authority
JP
Japan
Prior art keywords
information
node
node device
participation request
participation
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
JP2006110626A
Other languages
English (en)
Other versions
JP2007288307A (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.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
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 Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2006110626A priority Critical patent/JP4539603B2/ja
Priority to PCT/JP2007/055516 priority patent/WO2007119422A1/ja
Publication of JP2007288307A publication Critical patent/JP2007288307A/ja
Priority to US12/230,402 priority patent/US8218455B2/en
Application granted granted Critical
Publication of JP4539603B2 publication Critical patent/JP4539603B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/185Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • 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)
  • Computer And Data Communications (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

本発明は、ネットワークを介して互いに接続された複数のノード装置を備えたピアツーピア(Peer to Peer(P2P))型の情報通信システム及び方法等の技術分野に関する。
近年、ピアツーピアという技術が注目されてきている。ピアツーピア型の情報通信システムにおいて、例えば、分散ハッシュテーブル(以下、DHT(Distributed Hash Table)という)を利用して論理的に構築されたオーバーレイネットワークでは、各ノード装置が、当該オーバーレイネットワークに参加している全てのノード装置へのリンク情報(例えば、IPアドレス)を認識しているわけではなく、参加の際などに得られる一部のノード装置へのリンク情報だけを保持(記憶)しており、かかるリンク情報に基づき、データの問い合わせ等を行うようになっている。
このようなオーバーレイネットワークにおいては、ノード装置の参加及び脱退(離脱)が頻繁に行われても、負荷分散が適切に行われる必要があり、非特許文献1には、オーバーレイネットワークにおいて、参加及び脱退(離脱)が頻繁に行われる場合であっても、適切に負荷分散を行うための技術が開示されている。
岡敏生、森川博之、青山友紀、「分散ハッシュテーブルの軽量な負荷分散手法の検討」、電子情報通信学会技術研究報告、(日本)、社団法人電子情報通信学会、2004年2月5日、第103巻、第650号、p.7-12
あるノード装置がオーバーレイネットワークに新規に参加する際には、予め認識しているコンタクトノードへ参加要求メッセージを送信する。コンタクトノードや他のノード装置が以下のように動作することにより、参加要求メッセージの送信元のノード装置(以下、参加要求ノードという。)は、他のノード装置のリンク情報を取得し、DHTのルーティングテーブルを作成していく態様が考えられる。
コンタクトノードは、参加要求ノードから参加要求メッセージを受け取ると、DHTのルーティングテーブルの最も大きな括りの段階に登録している他のノード装置のリンク情報を返信する。また、コンタクトノードは、自ノード装置が参加要求ノードのルートノード(リンク情報に対応する固有の識別情報(ノードID)が、参加要求ノードから最も近いノード装置)でなければ、参加要求メッセージを他のノード装置に転送する。コンタクトノードが参加要求メッセージを転送する際には、参加要求ノードにリンク情報を返信する次の段階の情報を併せて送信する。
このように転送された参加要求メッセージを受信したノード装置は、リンク情報を返信する段階の情報に基づき、対応するノード装置のリンク情報を参加要求ノードに送信する。また、このノード装置は、自ノード装置が参加要求ノードのルートノードでなければ、参加要求メッセージを他のノード装置に転送する。参加要求メッセージを転送されたノード装置が、さらに参加要求メッセージを転送する際には、参加要求ノードにリンク情報を返信するさらに次の段階の情報を併せて送信する。
このようにして、参加要求メッセージは参加要求ノードのルートノードまで転送され、参加要求メッセージを受信したノード装置は、それぞれ所定の段階のリンク情報を参加要求ノードに返信する。
リンク情報を次々に受信した参加要求ノードは、当該各リンク情報を元に、DHTのルーティングテーブルを作成する。
しかしながら、上述の手順で参加要求ノードがルーティングテーブルを作成すると、受信した他のノード装置のリンク情報の中に、既にオーバーレイネットワークから脱退しているノード装置の情報が含まれている可能性がある。そうすると、脱退しているノード装置又はこれに近いノードIDを有するノード装置に情報を送信したい場合に、情報の転送が滞る場合がある。
そこで、本発明は、上記の不都合に鑑みてなされたものであり、通信経路を介して互いに接続された複数のノード装置を備えたピアツーピア型の情報通信システム及び方法等において、参加要求ノードが、オーバーレイネットワークに参加している(脱退していない)ノード装置のリンク情報のみを取得することができる情報通信システム及び方法等を提供することを課題とする。
上記課題を解決するために、請求項1に記載の発明は、通信経路を介して互いに接続された複数のノード装置の参加により形成されたオーバーレイネットワークを有する情報通信システムであって、前記複数のノード装置に含まれる一のノード装置は、情報の転送先の候補となるノード装置を示すノード情報を記憶する記憶手段と、前記オーバーレイネットワークへの参加要求を示し、かつ、参加要求する参加要求ノード装置のノード情報を含む参加要求情報を受信した場合に、前記参加要求ノード装置のノード情報に応じた転送先のノード装置を示すノード情報を記憶しているか否かを判別し、当該転送先のノード装置を示すノード情報を記憶している場合には当該ノード装置に前記参加要求情報を転送する参加要求情報転送手段と、前記参加要求情報を受信した場合に、当該参加要求情報の送信元である前記参加要求ノード装置のノード情報に応じた転送先以外のノード装置を示すノード情報を記憶しているか否かを判別し、当該転送先以外のノード装置を示すノード情報を記憶している場合には当該ノード装置に前記参加要求ノード装置のノード情報を含む存在確認情報を送信する存在確認情報送信手段と、前記存在確認情報を受信した場合に、前記参加要求ノード装置に返信情報を送信する返信情報送信手段と、を有することを特徴とする情報通信システムである。
これによれば、参加要求情報を受信したノード装置の存在確認情報送信手段が他のノード装置に存在確認情報を送信し、当該存在確認情報を受信したノード装置の返信情報送信手段が参加要求ノード装置(以下、単に参加要求ノードともいう。)に対して返信情報を送信するため、参加要求ノードは、返信情報の送信元のノード装置がオーバーレイネットワークに参加していることを確認できる。そのため、新規にオーバーレイネットワークに参加した参加要求ノードはオーバーレイネットワークに確実に参加しているノード装置のリンク情報となるノード情報(例えば、IPアドレス等)等を取得することができる。参加要求ノードは、この取得したノード情報等に基づき、記憶手段に各ノード情報を記憶していくことができる。
なお、存在確認情報の送信元のノード装置は、他のノード装置に存在確認情報を送信できた場合には、当該他のノード装置が存在していることを確認することができ、存在確認情報を送信できなかった場合には、当該他のノード装置が存在していないことを確認できるため、存在確認の動作も兼ねられて効率がよい。
上記課題を解決するために、請求項2に記載の発明は、通信経路を介して互いに接続された複数のノード装置の参加により形成されたオーバーレイネットワークを有する情報通信システムにおける通信方法であって、前記複数のノード装置に含まれる一のノード装置は、情報の転送先の候補となるノード装置を示すノード情報を記憶する工程と、前記オーバーレイネットワークへの参加要求を示し、かつ、参加要求する参加要求ノード装置のノード情報を含む参加要求情報を受信した場合に、前記参加要求ノード装置のノード情報に応じた転送先のノード装置を示すノード情報を記憶しているか否かを判別し、当該転送先のノード装置を示すノード情報を記憶している場合には当該ノード装置に前記参加要求情報を転送する工程と、前記参加要求情報を受信した場合に、当該参加要求情報の送信元である前記参加要求ノード装置のノード情報に応じた転送先以外のノード装置を示すノード情報を記憶しているか否かを判別し、当該転送先以外のノード装置を示すノード情報を記憶している場合には当該ノード装置に前記参加要求ノード装置のノード情報を含む存在確認情報を送信する工程と、前記存在確認情報を受信した場合に、前記参加要求ノード装置に返信情報を送信する工程と、を有することを特徴とする通信方法である。
上記課題を解決するために、請求項3に記載の発明は、通信経路を介して互いに接続された複数のノード装置の参加により形成されたオーバーレイネットワークを有する情報通信システムに含まれる一のノード装置であって、情報の転送先の候補となるノード装置を示すノード情報を記憶する記憶手段と、前記オーバーレイネットワークへの参加要求を示し、かつ、参加要求する参加要求ノード装置のノード情報を含む参加要求情報を受信した場合に、前記参加要求ノード装置のノード情報に応じた転送先のノード装置を示すノード情報を記憶しているか否かを判別し、当該転送先のノード装置を示すノード情報を記憶している場合には当該ノード装置に前記参加要求情報を転送する参加要求情報転送手段と、前記参加要求情報を受信した場合に、当該参加要求情報の送信元である前記参加要求ノード装置のノード情報に応じた転送先以外のノード装置を示すノード情報を記憶しているか否かを判別し、当該転送先以外のノード装置を示すノード情報を記憶している場合には当該ノード装置に前記参加要求ノード装置のノード情報を含む存在確認情報を送信する存在確認情報送信手段と、前記存在確認情報を受信した場合に、前記参加要求ノード装置に返信情報を送信する返信情報送信手段と、を有することを特徴とするノード装置である。
これによれば、ノード装置がこのような各手段を有していることにより、新規にオーバーレイネットワークに参加した参加要求ノードはオーバーレイネットワークに確実に参加しているノード装置のリンク情報を取得することができる。
上記課題を解決するために、請求項4に記載の発明は、請求項3に記載のノード装置から前記返信情報を受信したノード装置であって、受信した前記返信情報の送信元のノード装置に対応する前記ノード情報を記憶する記憶手段を有することを特徴とするノード装置である。
これによれば、参加要求ノードは、受信した返信情報に基づき、その時点でオーバーレイネットワークに確実に参加している他のノード装置のノード情報を記憶できる。そのため、情報通信システムにおける情報の転送等の処理が滞りなく進むこととなり、情報通信システム全体の通信効率が向上する。
上記課題を解決するために、請求項5に記載の発明は、請求項3に記載のノード装置であって、前記記憶手段は、前記ノード情報と、前記ノード情報に対応する固有の識別情報と、を前記識別情報の領域毎に対応付けて記憶し、前記参加要求情報転送手段は、前記参加要求情報を転送する際に、前記記憶手段における所定の領域を指定した領域指定情報を当該参加要求情報に付加し、前記存在確認情報送信手段は、受信した前記参加要求情報に前記領域指定情報が付加されているか否か及び前記領域指定情報の内容に応じて、送信先となる他のノード装置のノード情報を記憶している場合には当該ノード装置に前記存在確認情報を送信することを特徴とするノード装置である。
これによれば、ノード装置は、参加要求情報を転送する際に領域指定情報を付加することにより、参加要求ノードの識別情報に適した識別情報の各領域に属する他のノード装置に存在確認情報を送信することができる。そして、この存在確認情報を受信したノード装置は返信情報を参加要求ノードに送信するため、参加要求ノードは、参加要求ノードの識別情報に適した識別情報の各領域に属するノード装置のノード情報を取得することができ、各ノード装置のノード情報をバランスよく記憶することができる。参加要求ノードがこのように他のノード装置のノード情報を記憶することにより、情報通信システムにおける情報の転送等の処理が滞りなく進むこととなり、情報通信システム全体の通信効率がより向上する。
上記課題を解決するために、請求項6に記載の発明は、請求項5に記載のノード装置であって、前記識別情報の領域は、前記識別情報の規則に従って複数の領域に分かれており、自ノード装置のみが属する前記領域の存在する段階まで、自ノード装置が属する前記領域が前記識別情報の規則に従ってさらに複数の領域に分かれており、前記存在確認情報送信手段は、受信した前記参加要求情報に前記領域指定情報が付加されている場合には、記憶している前記識別情報の領域指定情報に対応する領域に属する他のノード装置に前記存在確認情報を送信し、前記参加要求情報転送手段は、受信した前記参加要求情報に前記領域指定情報が付加されている場合には、当該領域指定情報に対応する前記識別情報の領域よりも小さな範囲に対応する領域を指定した前記領域指定情報を前記参加要求情報に付加することを特徴とするノード装置である。
これによれば、上記のように識別情報の領域が分かれており、上記のように領域指定情報を付加することにより、参加要求ノードは、参加要求ノードの識別情報に適した識別情報の各領域に属するノード装置のノード情報を取得することができ、各ノード装置のノード情報をバランスよく記憶することができる。このような形態は、例えば、DHTを用いたルーティングテーブルに適用することができ、情報通信システムにおける情報の転送等に用いられるルーティングの処理を円滑に行うことができるため、情報通信システム全体の通信効率がより向上する。
上記課題を解決するために、請求項7に記載の発明は、請求項3、5又は6のいずれか一項に記載のノード装置であって、前記存在確認情報送信手段により前記存在確認情報を送信した場合に、当該存在確認情報の送信先であるノード装置のノード情報を前記参加要求ノード装置に送信するノード情報送信手段をさらに有することを特徴とするノード装置である。
これによれば、存在確認情報送信手段を機能させたノード装置が、当該存在確認情報の送信先であるノード装置のノード情報を参加要求ノードに送信することにより、当該ノード装置は、記憶しているノード情報の一部を参加要求ノードに送信することになる。参加要求ノードは、他のノード装置が記憶しているノード情報の一部を受信し、また、当該ノード情報に対応するノード装置からの返信情報を受信することにより、より正確にオーバーレイネットワークに参加しているノード装置のノード情報を記憶することができる。
上記課題を解決するために、請求項8に記載の発明は、コンピュータを、請求項3乃至7のいずれか一項に記載のノード装置として機能させることを特徴とする情報処理プログラムである。
本発明によれば、ノード装置が上記各手段、特に参加要求情報転送手段と存在確認情報送信手段と返信情報送信手段とを有していることにより、新規にオーバーレイネットワークに参加した参加要求ノードはオーバーレイネットワークに確実に参加しているノード装置のリンク情報を取得することができる。
以下、本発明の最良の実施形態を図面に基づいて説明する。以下に説明する実施の形態は、DHT、ノード情報としてのIPアドレス、識別情報としてのノードIDを利用した情報通信システムに本発明を適用した場合の実施形態である。本実施形態では、上記情報通信システムにおいて、新規にオーバーレイネットワークに参加するノード装置(参加要求ノード)が参加要求情報としての参加メッセージを任意のノード装置であるコンタクトノードに送信し、存在確認情報としての存在確認メッセージ及び返信情報としての応答メッセージを利用して、参加要求ノードがDHTルーティングテーブルを作成する。なお、本発明の情報通信システム等の発明は、以下に説明する実施形態に限定されず、本発明の技術思想の範囲内で適宜変更して実施される。
[1.情報通信システムの構成等]
始めに、図1を参照して、情報通信システムの概要構成等について説明する。
図1は、本実施形態に係る情報通信システムにおける各ノード装置の接続態様の一例を示す図である。
図1の下部枠101内に示すように、IX(Internet eXchange)3、ISP(Internet Service Provider)4、DSL(Digital Subscriber Line)回線事業者(の装置)5、FTTH(Fiber To The Home)回線事業者(の装置)6、および通信回線(例えば、電話回線や光ケーブル等)7等によって、インターネット等のネットワーク(現実世界のネットワーク)8が構築されている。
情報通信システムSは、このようなネットワーク8を介して相互に接続された複数のノード装置1a,1b,1c・・・1x,1y,1z・・・を備えて構成されることになり、ピアツーピア方式のネットワークシステムとなっている。各ノード装置1a,1b,1c・・・1x,1y,1z・・には、ノード装置を示す情報(本発明におけるノード情報)としての固有の製造番号およびIP(Internet Protocol)アドレスが割り当てられている。なお、製造番号およびIPアドレスは、複数のノード装置1間で重複しないものである。なお、以下の説明において、ノード装置1a,1b,1c・・・1x,1y,1z・・・のうち何れかのノード装置を示す場合には、便宜上、ノード装置1という場合がある。
[1.1.DHTの概要]
以下に、本実施形態に係る分散ハッシュテーブル(以下、DHT(Distributed Hash Table)という)を利用したアルゴリズムについて説明する。
上述した情報通信システムSにおいて、当該ノード装置1同士が、互いに情報をやり取りする際には、お互いのノード情報としてのIPアドレスを知っていなければならない。
例えば、コンテンツを互いに共有するシステムにおいては、ネットワーク8に参加している各ノード装置1が互いにネットワーク8に参加している全てのノード装置1のIPアドレスを知っておくのが単純な手法であるが、端末数が何万何十万と多数になると、その全てのノード装置1のIPアドレスを覚えておくのは現実的ではない。また、任意のノード装置の電源がON或いはOFFとすると、各ノード装置1にて記憶している当該任意のノード装置のIPアドレスの更新が頻繁になり、運用上困難となる。
そこで、1台のノード装置1では、ネットワーク8に参加している全てのノード装置1のうち、必要最低限のノード装置1のIPアドレスだけを覚えて(記憶して)おいて、IPアドレスを知らない(記憶していない)ノード装置1については、各ノード装置1間で互いに情報を転送し合って届けてもらうというシステムが考案されている。
このようなシステムの一例として、DHTを利用したアルゴリズムによって、図1の上部枠100内に示すような、オーバレイネットワーク9が構築されることになる。つまり、このオーバレイネットワーク9は、既存のネットワーク8を用いて形成された仮想的なリンクを構成するネットワークを意味する。
本実施形態においては、DHTを利用したアルゴリズムによって構築されたオーバレイネットワーク9を前提としており、このオーバレイネットワーク9上に配置されたノード装置1を、情報通信システムSに参加(言い換えれば、オーバレイネットワーク9に参加)しているノード装置1という。なお、情報通信システムSへの参加は、未だ参加していないノード装置(参加要求ノード)が、既に参加している任意のノード装置1(以下、コンタクトノードともいう。)に対して参加要求情報(以下、参加メッセージともいう。)を送ることによって行われる。なお、参加要求情報としての参加メッセージは、オーバーレイネットワークへの参加要求を示し、かつ、参加要求する参加要求ノードのノード情報を含むものである。
情報通信システムSに参加している各ノード装置1のノードID(識別情報)は、それぞれのノード装置毎にユニーク(固有)な番号を付与する。この番号は、ノード装置の最大運用台数を収容できるだけのbit数を持たせる必要がある。例えば、128bitの番号とすれば、2^128=340×10^36台のノード装置を運用できる。
より具体的には、各ノード装置1のノードIDは、それぞれのノード装置のIPアドレスあるいは製造番号等のノード装置毎に固有の値を、共通のハッシュ関数(ハッシュアルゴリズム)によりハッシュ化して得たハッシュ値であり、一つのID空間に偏りなく分散して配置されることになる。このように共通のハッシュ関数により求められた(ハッシュ化された)ノードIDは、当該IPアドレスあるいは製造番号が異なれば、同じ値になる確率が極めて低いものである。なお、ハッシュ関数については公知であるので詳しい説明を省略する。なお、本実施形態では、IPアドレス(グローバルIPアドレス;ノード情報)を共通のハッシュ関数によりハッシュ化した値をノードID(GUID(Global Unique IDentifier);識別情報)とする。
[1.2.ルーティングテーブルの作成]
図2を参照して、DHTで用いるルーティングテーブルの作成手法の一例について説明する。図2は、DHTによってルーティングテーブルが作成される様子の一例を示す図である。
各ノード装置1に付与されたノードIDは、共通のハッシュ関数によって生成したため、図2(A)乃至図2(C)に示す如く、同一のリング状のID空間上にさほど偏ることなく、散らばって存在するものとして考えることができる。同図は8bitでノードIDを付与し、図示したものである。図中黒点はノードIDを示し、反時計回りでIDが増加するものとする。
まず、図2(A)に示す如く、ID空間を幾つかのエリアに分割する。実際には、16分割程度が良く用いられるが、説明を簡単にするためここでは4分割とし、IDをビット長8Bitの4進数で表すこととした。そして、ノード装置1NのノードIDを「1023」とし、このノード装置1Nのルーティングテーブルを作る例について説明する。
(レベル1のルーティング)
まず、ID空間を4分割とすると、それぞれのエリアは4進数で表すと最大桁が異なる4つのエリア「0XXX」「1XXX」、「2XXX」、「3XXX」(Xは0から3の整数、以下同様。)で分けられる。ノード装置1Nは、当該ノード装置1N自身のノードIDが「1023」であるため、図中左下「1XXX」のエリアに存在することになる。そして、ノード装置1Nは、自分の存在するエリア(すなわち、「1XXX」のエリア)以外のエリアに存在するノード装置1を適当に選択し、当該ノードIDのIPアドレスをレベル1のテーブルに記憶する。図3(A)がレベル1のテーブルの一例である。2列目はノード装置1N自身を示しているため、IPアドレスを記憶する必要は無い。
(レベル2のルーティング)
次に、図2(B)に示す如く、上記ルーティングによって4分割したエリアのうち、自分の存在するエリアを更に4分割し、更に4つのエリア「10XX」「11XX」、「12XX」、「13XX」と分ける。そして、上記と同様に自分の存在するエリア以外のエリアに存在するノード装置1を適当に選択し、当該ノードIDのIPアドレスをレベル2のテーブルに記憶する。図3(B)がレベル2のテーブルの一例である。1列目はノード装置1N自身を示しているため、IPアドレスを記憶する必要は無い。
(レベル3のルーティング)
さらに、図2(C)に示す如く、上記ルーティングによって4分割したエリアのうち、自分の存在するエリアを更に4分割し、更に4つのエリア「100X」「101X」、「102X」、「103X」と分ける。そして、上記と同様に自分の存在するエリア以外のエリアに存在するノード装置1を適当に選択し、当該ノードIDのIPアドレスをレベル1のテーブルに記憶する。図3(C)がレベル3のテーブルの一例である。3列目はノード装置1N自身を示しているため、IPアドレスを記憶する必要は無く、2列目、4列目はそのエリアにノード装置が存在しないため空白となる。
このようにして、レベル4まで同様にルーティングテーブルを図3(D)に示す如く作成することにより、8bitのID全てを網羅することができる。レベルが上がる毎にテーブルの中に空白が目立つようになる。
以上説明した手法に従って作成したルーティングテーブルを、全てのノード装置1が夫々作成して所有することになる。このように、ノード装置1は、他のノード装置1のIPアドレスを記憶したDHTルーティングテーブルを作成していく。本実施形態においては、ノード装置1は、ノード情報としてのIPアドレスと、識別情報としてのノードIDと、識別情報の属する領域としてのノードID空間のエリア、すなわちDHTの各レベル及び各列と、を対応付けて記憶している。ここで、自ノード装置1NのノードIDに最も近いノードIDに対応するノード装置を、後述するルートノード(図2(C)及び図3(D)においてはノードID:1000のノード装置)とする。
なお、ノードIDの桁数に応じてレベルの数が決まり、進数の数に応じて図3(D)における各レベルの注目桁の数が決まる。具体的に、16桁16進数である場合には、64bitのIDとなり、レベル16で注目桁の(英)数字は0〜fとなる。後述するルーティングテーブルの説明においては、各レベルの注目桁の数を示す部分を単に「列」又は「列数」ともいう。
[2.ノード装置の構成等]
次に、図4を参照して、ノード装置1の構成および機能について説明する。尚、各ノード装置1の構成は同じである。図4は、ノード装置1の概要構成例を示す図である。
各ノード装置1は、図4に示すように、演算機能を有するCPU,作業用RAM,各種データおよびプログラムを記憶するROM等から構成されたコンピュータとしての制御部11と、コンテンツデータ、インデックス情報、上記DHTおよびプログラム等を記憶保存(格納)するためのHD等から構成された記憶手段としての記憶部12(上記コンテンツデータは、保存されていないノード装置1もある)と、受信されたコンテンツデータ等を一時蓄積するバッファメモリ13と、コンテンツデータに含まれるエンコードされたビデオデータ(映像情報)およびオーディオデータ(音声情報)等をデコード(データ伸張や復号化等)するデコーダ部14と、当該デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部15と、当該映像処理部15から出力されたビデオ信号に基づき映像表示するCRT,液晶ディスプレイ等の表示部16と、上記デコードされたオーディオデータをアナログオーディオ信号にD(Digital)/A(Analog)変換した後これをアンプにより増幅して出力する音声処理部17と、当該音声処理部17から出力されたオーディオ信号を音波として出力するスピーカ18と、ネットワーク8を通じて他のノード装置1との間の情報の通信制御を行うための通信部20と、ユーザからの指示を受け付け当該指示に応じた指示信号を制御部11に対して与える入力部(例えば、キーボード、マウス、或いは、操作パネル等)21と、を備えて構成され、制御部11、記憶部12、バッファメモリ13、デコーダ部14および通信部20はバス22を介して相互に接続されている。
そして、制御部11におけるCPUが記憶部12等に記憶された各種プログラムを実行することにより、ノード装置1全体を統括制御するようになっており、また、入力部21からの指示信号に応じて、コンテンツデータ登録処理等を行うようになっている。ノード装置1は、実行されるプログラムに応じて、情報を送信(転送)するノード装置、情報を受信するノード装置等として機能する。また、ノード装置1の制御部11は、本発明の参加要求情報転送手段、存在確認情報送信手段、返信情報送信手段、ノード情報送信手段、として機能する。
[3.情報通信システムの概略]
本実施形態の情報通信システムSの概略を図5乃至図7を用いて説明する。本実施形態の情報通信システムSは、一のノード装置がオーバーレイネットワークに参加した後、他のノード装置から返信情報としての応答メッセージを受信することにより、当該応答メッセージの送信元のノード装置の情報を元にDHTルーティングテーブルを作成していく。以下の説明においては、参加要求ノードをノードZとし、ノードZが初めに通信を行う、既にIPアドレスを知っている任意のノード装置(以下、コンタクトノードという。)をノードBとする。
なお、以下において、DHTルーティングテーブルを単にテーブルとも言う。また、他のノード装置のノード情報及び識別情報の記憶について、「登録」という言い方も用いる。
図5は、情報通信システムSに参加要求ノードが参加した後にDHTルーティングテーブルを作成するための各メッセージの流れを示す概略図であり、図6の各図は、既に情報通信システムSに参加しているノードB、ノードE及びノードGがそれぞれ記憶しているDHTルーティングテーブルの例であり、図7は、ノードZが返信情報(応答メッセージ)を受信することにより作成するDHTルーティングテーブルの例である。
図5に示すように、一のノード装置1(ノードZ)が情報通信システムSにおける通信ネットワークに参加すると、ノードZは、コンタクトノードであるノードBに参加要求情
報としての参加メッセージを送信する(矢印101)。すると、ノードは参加メッセージの送信が成功することにより、ノードBが存在していることを確認する(矢印102)。次いで、ノードBは、存在確認情報としての存在確認メッセージを図6(A)に示すようにレベル1に登録しているノードA、ノードE、ノードCに順次送信する(矢印103、105、107)。すると、ノードAは応答メッセージをノードZに送信し(矢印104)、ノードEは応答メッセージをノードZに送信し(矢印106)、ノードCは応答メッセージをノードZに送信する(矢印108)。なお、図6(A)乃至図6(C)において、レベル数の左に▲印がある場合には、そのレベルに登録されたノード装置に存在確認メッセージを送信することを意味し、二重の四角で囲まれたノード装置は、当該ノード装置に参加メッセージを転送することを意味する。
このとき、ノードZは、図7のテーブルにおけるノードA、ノードB、ノードC及びノードEのIPアドレスを取得するため、IPアドレスとこれに対応するノードIDとを対応付けて記憶できる。
そして、ノードBは、参加メッセージをノードZのルートノードに向けて、ここではノードEに転送する(矢印109)。このとき、存在確認メッセージの送信先を次のレベル2である旨の領域指定情報を参加メッセージに付加する。次いで、ノードEは、図6(B)に示すように、存在確認メッセージを次のレベル2に登録しているノードG、ノードD、ノードFに順次送信する(矢印110、112、114)。すると、ノードGは応答メッセージをノードZに送信し(矢印111)、ノードDは応答メッセージをノードZに送信し(矢印113)、ノードFは応答メッセージをノードZに送信する(矢印115)。
このとき、ノードZは、図7のテーブルにおけるノードD、ノードF及びノードGのIPアドレス及びノードIDを記憶できる。
そして、ノードEは、参加メッセージをノードZのルートノードに向けて、ここではノードGに転送する(矢印116)。このとき、存在確認メッセージの送信先を次のレベル3である旨の領域指定情報を参加メッセージに付加する。次いで、ノードGは、図6(C)に示すように、存在確認メッセージを次のレベル3に登録しているノードHに送信する(矢印117)。すると、ノードHは応答メッセージをノードZに送信する(矢印118)。ここで、ノードGは、ノードZのルートノードであり、これ以上転送先がないため、処理を終了する。
このとき、ノードZは、図7のテーブルにおけるノードHのIPアドレス及びノードIDを記憶でき、以上の流れによりノードZは図7に示すDHTルーティングテーブルを作成することができる。このノードZのテーブルは、それぞれ存在する各ノード装置1から受信した応答メッセージに基づいて作成したものであるため、テーブルに記憶されている他のノード装置1が脱退しているために、テーブルに基づく情報等の転送又は送信が滞る確率が低くなる。従って、情報通信システムS全体として、通信効率が向上する。
[3.1本実施形態の情報通信システムの動作]
次に、本実施形態の情報通信システムSにおける各ノード装置1の動作について図5乃至図10を用いて説明する。一のノード装置1(上述のノードZ)が情報通信システムSにおける通信ネットワークに参加した後の各ノード装置1における処理について、図8乃至図10のフローチャートを参照して説明する。なお、各処理は、いくつかのノード装置1を例に説明するが、どのノード装置1も同様の処理を行う。
(1)ノード装置の基本処理
図8を参照してノード装置1(ノードZ)の基本処理について説明する。なお、ノードZは、通信ネットワークに参加した後、上述の図5に示した手順により図7に示すDHTルーティングテーブルを作成し、保持(記憶)するものとする。
ノードZの制御部11は、入力部11等により自ノード装置に電源が入れられたことを認識すると、当該ノードZの各種設定が初期化され、基本処理を開始する(スタート)。なお、ノードZは、通信ネットワークに参加した際にまず通信を行うコンタクトノード装置1(ノードB)のIPアドレスを保持していることを前提とする。
基本処理が開始されると、制御部11は、コンタクトノード(ノードB)へ領域指定情報としてレベル1を指定した参加メッセージを送信する(ステップS1)。なお、ノードZの制御部11は、参加メッセージを送信するためにコンタクトノードBとの通信が確立した時点でコンタクトノードBが存在していることを確認し、後述する図10のステップS32に示すように、ノードBの情報をテーブルに登録することができる。次いで、制御部11は、電源が切られたか否かを判断し(ステップS2)、通常、電源が入れられた直後は電源が切られないため、電源が切られていないと判断し(ステップS2;NO)、他のノード装置1からメッセージ(情報)を受信したか否かを判断する(ステップS3)。このとき、少なくともノードAから応答メッセージを受信することとなるため、他のノード装置1(ノードA)からメッセージを受信したと判断し(ステップS3;YES)、メッセージの受信処理を行う(ステップS4)。なお、メッセージ受信処理については、図9を用いて後述する。
次いで、制御部11は、受信したメッセージの送信元のノード装置1(ノードB)について、テーブルへの登録処理を行う(ステップS5)。このテーブルへの登録処理については、図10を用いて後述する。このとき、ノードZのテーブルにおける、レベル1、各レベルの注目桁X=0のエリアに、ノードAの情報が登録される(図7参照)。
次いで、制御部11は、ステップS2に戻り、電源が切られておらず(ステップS2;NO)、メッセージを受信していない場合には(ステップS3;NO)、入力部21等からの入力に応じたその他の処理を行い(ステップS6)、ステップS2に戻る。ノードZの制御部11は、以後、ステップS2〜S5または、ステップS2、S3、S6の動作を場合に応じて繰り返し、ノードZの電源が切られた場合には、そのように判断し(ステップS2;YES)、基本処理を終了する(エンド)。
(2)ノード装置のメッセージ受信処理
図9を参照してノードZ、ノードB、ノードE、ノードG及びノードAのメッセージ受信処理について説明する。
(ノードZ)
ノードZの制御部11は、上述の基本処理におけるメッセージ受信処理(ステップS4)がスタートすると、このメッセージ受信処理を開始する(スタート)。ここでは、まずノードAからの応答メッセージを受信した前提で説明する。
メッセージ受信処理が開始されると、制御部11は、受信したメッセージが参加メッセージか否かを判断する(ステップS11)。ここでは、受信したメッセージは応答メッセージであるため、制御部11は、受信したメッセージが参加メッセージでないと判断し(ステップS11;NO)、次いで、受信したメッセージが存在確認メッセージか否かを判断する(ステップS12)。
ここでは、受信したメッセージは応答メッセージであるため、制御部11は、受信したメッセージが存在確認メッセージでないと判断し(ステップS12;NO)、次いで、受信したメッセージが応答メッセージであるか否かを判断する(ステップS13)。ここで、制御部11は、受信したメッセージは応答メッセージであると判断し(ステップS13;YES)、元々の処理の流れに戻る(リターン)。
(ノードB)
一方、コンタクトノードBにおいて、通信ネットワークに参加したノードZから参加メッセージを受信した場合のメッセージ受信処理を以下に説明する。ノードBは、図6(A)に示すテーブルを記憶しているものとする。
ノードBの制御部11は、参加メッセージを受信し、上述の基本処理におけるメッセージ受信処理(ステップS4)がスタートすると、このメッセージ受信処理を開始する(スタート)。ステップS11において、ノードBの制御部11が受信したメッセージは参加メッセージであると判断すると(ステップS11;YES)、当該参加メッセージに含まれるレベル1を示す領域指定情報を取得する(ステップS14)。制御部11は、この参加メッセージの領域指定情報に応じて、テーブルにおけるレベル数を1と決定する(ステップS15)。
次いで、制御部11は、テーブルにおける列数(各レベルの注目桁X)を0と決定し(ステップS16)、ノードBのテーブルを示す図6(A)におけるレベル1、注目桁X=0のエリアに注目する。
次いで、制御部11は、決定した列数がテーブル全体の列数以下か否かを判断し(ステップS17)、決定した列数0がテーブル全体の列数3以下であるため(ステップS17;YES)、注目する[レベル数][列数]に該当するノード装置が自ノード装置か否かを判断する(ステップS18)。
ここでは、図6(A)に示すように、注目する[レベル数1][列数0]に該当するノード装置が自ノード装置ではないため、そのように判断し(ステップS18;NO)、次いで、注目する[レベル数][列数]に他のノード装置の情報が記憶されているか否かを判断する(ステップS19)。
ここでは、[レベル数1][列数0]にノードID[0211]のノード装置が記憶されているため、制御部11はそのように判断し(ステップS19;YES)、参加メッセージの送信元であるノードZのIPアドレスを含む存在確認メッセージを作成し、[レベル数1][列数0]に記憶されているノードID[0211]のノード装置(ノードA)に当該存在確認メッセージを送信する(ステップS20)。ここでは、メッセージの送信が成功したものとする。
次いで、制御部11は、メッセージ送信処理が成功したか否かを判断し(ステップS21)、ここでは存在確認メッセージの送信処理が成功したため、そのように判断する(ステップS21;YES)。次いで、制御部11は、列数0の値に1を足して列数1とし(ステップS22)、ステップS17に戻る。
次いで、制御部11は、ステップS17;YES、ステップS18;NO、ステップS19;YES、ステップS20、ステップS21;YESを経て、[レベル数1][列数1]に記憶されているノードID[1221]のノード装置(ノードE)に存在確認メッセージを送信し、列数1の値に1を足して列数2とし(ステップS23)、ステップS17に戻る。
次いで、制御部11は、ステップS17;YESを経て、ステップS18において[レベル数1][列数2]のエリアは自ノード装置であると判断し(ステップS19;YES)、列数2の値に1を足して列数3とし(ステップS22)、ステップS17に戻る。
次いで、制御部11は、ステップS17;YES、ステップS18;NO、ステップS19;YES、ステップS20、ステップS21;YESを経て、[レベル数1][列数3]に記憶されているノードID[3121]のノード装置(ノードC)に存在確認メッセージを送信し、列数3の値に1を足して列数4とし(ステップS22)、ステップS17に戻る。
ここで、制御部11は、決定した列数がテーブル全体の列数以下か否かを判断し(ステップS17)、決定した列数4がテーブル全体の列数3以下でないため(ステップS17;NO)、参加メッセージの転送先(送信先)のノード装置を認定する(ステップS23)。このとき、図2を用いて説明したように、参加要求ノードであるノードZのノードID[1013]に最も近いノード装置がノードID[1221]のノードEであるため、ノードEを参加メッセージの転送先として認定する。
次いで、制御部11は、自ノード装置がルートノード、すなわち、参加要求ノードであるノードZのノードID[1013]に最も近いノード装置であるか否かを判断する(ステップS24)。上述のように、ここでは、参加要求ノードであるノードZのノードID[1013]に最も近いノード装置がノードID[1221]のノードEであり、自ノード装置がルートノードではないため、制御部11はそのように判断し(ステップS24;NO)、注目してきたレベル数に1を足したレベル数の情報を領域指定情報として付加した参加メッセージを作成し、ステップS24で認定した転送先に転送し(ステップS25)、元々の処理の流れに戻る(リターン)。ここでは、制御部11は、注目してきたレベル数が1であり、これに1を足したレベル数2の領域指定情報を参加メッセージに付加し、ノードEに転送し、元々の流れに戻る。
(ノードE)
次いで、ノードEにおいて、ノードBから参加メッセージを転送され、受信した場合のメッセージ受信処理を以下に説明する。ノードEは、図6(B)に示すテーブルを記憶しているものとする。
ノードEの制御部11は、参加メッセージを受信し、上述の基本処理におけるメッセージ受信処理(ステップS4)がスタートすると、このメッセージ受信処理を開始する(スタート)。ステップS11において、ノードEの制御部11が受信したメッセージは参加メッセージであると判断すると(ステップS11;YES)、当該参加メッセージに含まれるレベル2を示す領域指定情報を取得する(ステップS14)。制御部11は、この参加メッセージの領域指定情報に応じて、テーブルにおけるレベル数を2と決定する(ステップS15)。
次いで、制御部11は、テーブルにおける列数(各レベルの注目桁X)を0と決定し(ステップS16)、ノードEのテーブルを示す図6(B)におけるレベル2、注目桁X=0のエリアに注目する。制御部11は、決定した列数がテーブル全体の列数以下か否かを判断し(ステップS17)、決定した列数0がテーブル全体の列数3以下であるため(ステップS17;YES)、注目する[レベル数][列数]に該当するノード装置が自ノード装置か否かを判断する(ステップS18)。
ここでは、図6(B)に示すように、注目する[レベル数2][列数0]に該当するノード装置が自ノード装置ではないため、そのように判断し(ステップS18;NO)、次いで、注目する[レベル数][列数]に他のノード装置の情報が記憶されているか否かを判断する(ステップS19)。
ここでは、[レベル数2][列数0]にノードID[1023]のノード装置が記憶されているため、そのように判断し(ステップS19;YES)、参加要求ノードであるノードZのIPアドレスを含む存在確認メッセージを作成し、当該メッセージを[レベル数2][列数0]に記憶されているノードID[1023]のノード装置(ノードG)に送信する(ステップS20)。ここでは、メッセージ送信処理が成功したものとする。
次いで、制御部11は、メッセージ送信処理が成功したか否かを判断し(ステップS21)、ここでは存在確認メッセージの送信処理が成功したため、そのように判断する(ステップS21;YES)。次いで、制御部11は、列数0の値に1を足して列数1とし(ステップS22)、ステップS17に戻る。
次いで、制御部11は、ステップS17;YES、ステップS18;NO、ステップS19;YES、ステップS20、ステップS21;YESを経て、[レベル数2][列数1]に記憶されているノードID[1120]のノード装置(ノードD)に存在確認メッセージを送信し、列数1の値に1を足して列数2とし(ステップS22)、ステップS17に戻る。
次いで、制御部11は、ステップS17;YESを経て、ステップS18において[レベル数2][列数2]のエリアは自ノード装置であると判断し(ステップS18;YES)、列数2の値に1を足して列数3とし(ステップS22)、ステップS17に戻る。
次いで、制御部11は、ステップS17;YES、ステップS18;NO、ステップS19;YES、ステップS20、ステップS21;YESを経て、[レベル数2][列数3]に記憶されているノードID[1323]のノード装置(ノードF)に存在確認メッセージを送信し、列数3の値に1を足して列数4とし(ステップS22)、ステップS17に戻る。
ここで、制御部11は、決定した列数がテーブル全体の列数以下か否かを判断し(ステップS17)、決定した列数4がテーブル全体の列数3以下でないため(ステップS17;NO)、参加メッセージの転送先(送信先)のノード装置を認定する(ステップS23)。このとき、参加要求ノードであるノードZのノードID[1013]に最も近いノード装置がノードID[1023]のノードGであるため、ノードGを参加メッセージの転送先として認定する。
次いで、制御部11は、自ノード装置がルートノード、すなわち、参加要求ノードであるノードZのノードID[1013]に最も近いノード装置であるか否かを判断する(ステップS24)。上述のように、ここでは、参加要求ノードであるノードZのノードID[1013]に最も近いノード装置がノードID[1023]のノードGであり、自ノード装置がルートノードではないため、制御部11はそのように判断し(ステップS24;NO)、注目してきたレベル数に1を足したレベル数の情報を領域指定情報として付加した参加メッセージを作成し、転送先として認定した他のノード装置に転送し(ステップS25)、元々の処理の流れに戻る(リターン)。ここでは、制御部11は、注目してきたレベル数が2であり、これに1を足したレベル数3の領域指定情報を参加メッセージに付加し、転送先のノードGへ送信し、元々の処理の流れに戻る。
ここで、ステップS20におけるメッセージ送信処理が失敗に終わった場合、制御部11は、ステップS21において、メッセージ送信処理が成功でないと判断し(ステップS21;NO)、該当する[レベル数][列数]のノード装置1のIPアドレス等の情報をテーブルから削除し(ステップS26)、次のステップS22に戻る。
(ノードG)
次いで、ノードGにおいて、ノードEから参加メッセージを転送され、受信した場合のメッセージ受信処理を以下に説明する。ノードGは、図6(C)に示すテーブルを記憶しているものとする。
ノードGの制御部11は、参加メッセージを受信し、上述の基本処理におけるメッセージ受信処理(ステップS4)がスタートすると、このメッセージ受信処理を開始する(スタート)。ステップS11において、ノードGの制御部11が受信したメッセージは参加メッセージであると判断すると(ステップS11;YES)、当該参加メッセージに含まれるレベル3を示す領域指定情報を取得する(ステップS14)。制御部11は、この参加メッセージの領域指定情報に応じて、テーブルにおけるレベル数を3と決定する(ステップS15)。
次いで、制御部11は、テーブルにおける列数(各レベルの注目桁X)を0と決定し(ステップS16)、ノードGのテーブルを示す図6(C)におけるレベル3、注目桁X=0のエリアに注目する。制御部11は、決定した列数がテーブル全体の列数以下か否かを判断し(ステップS17)、決定した列数0がテーブル全体の列数3以下であるため(ステップS17;YES)、注目する[レベル数][列数]に該当するノード装置が自ノード装置か否かを判断する(ステップS18)。
ここでは、図6(C)に示すように、注目する[レベル数3][列数0]に該当するノード装置が自ノード装置ではないため、そのように判断し(ステップS18;NO)、次いで、注目する[レベル数][列数]に他のノード装置の情報が記憶されているか否かを判断する(ステップS19)。
ここでは、[レベル数3][列数0]に他のノード装置が記憶されていないため、そのように判断して(ステップS19;NO)、このエリアを飛ばし、列数0の値に1を足して列数1とし(ステップS22)、ステップS17に戻る。
次いで、制御部11は、ステップS17;YES、ステップS18;NO、ステップS19;NOを経て、[レベル数3][列数1]に他のノード装置が記憶されていないため、このエリアを飛ばし、列数1の値に1を足して列数2とし(ステップS22)、ステップS17に戻る。
次いで、制御部11は、ステップS17;YESを経て、ステップS18において[レベル数2][列数2]のエリアは自ノード装置であると判断し(ステップS18;YES)、列数2の値に1を足して列数3とし(ステップS22)、ステップS17に戻る。
次いで、制御部11は、ステップS17;YES、ステップS18;NO、ステップS19;YES、ステップS20、ステップS21;YESを経て、[レベル数2][列数3]に記憶されているノードID[1032]のノード装置(ノードH)に存在確認メッセージを送信し、列数3の値に1を足して列数4とし(ステップS22)、ステップS17に戻る。
ここで、制御部11は、決定した列数がテーブル全体の列数以下か否かを判断し(ステップS17)、決定した列数4がテーブル全体の列数3以下でないため(ステップS17;NO)、参加メッセージの転送先(送信先)のノード装置を認定する(ステップS23)。このとき、参加要求ノードであるノードZのノードID[1013]に最も近いノード装置がノードID[1023]の自ノード装置(ノードG)であるため、ノードGを参加メッセージの転送先として認定する。
次いで、制御部11は、自ノード装置がルートノード、すなわち、参加要求ノードであるノードZのノードID[1013]に最も近いノード装置であるか否かを判断する(ステップS24)。上述のように、ここでは、自ノード装置(ノードG)がルートノードであるため、制御部11はそのように判断し(ステップS24;YES)、元々の処理の流れに戻る(リターン)。
このようにして、参加要求ノードであるノードZのDHTルーティングテーブルを作成するための存在確認メッセージの送信処理と、参加メッセージの転送処理と、が終了する。
(ノードA)
一方、ノードAにおいて、コンタクトノードBから送信された存在確認メッセージを受信した場合のメッセージ受信処理を以下に説明する。
ノードAの制御部11は、存在確認メッセージを受信し、上述の基本処理におけるメッセージ受信処理(ステップS4)がスタートすると、このメッセージ受信処理を開始する(スタート)。ここでは、ノードBからの存在確認メッセージを受信した前提で説明する。
メッセージ受信処理が開始されると、制御部11は、受信したメッセージが参加メッセージか否かを判断する(ステップS11)。ここでは、受信したメッセージは存在確認メッセージであるため、制御部11は、受信したメッセージが参加メッセージでないと判断し(ステップS11;NO)、次いで、受信したメッセージが存在確認メッセージか否かを判断する(ステップS12)。
制御部11は、受信したメッセージは存在確認メッセージであると判断し(ステップS12;YES)、存在確認メッセージに付加された参加要求ノードであるノードZのIPアドレスを取得し、ノードZへ応答メッセージを送信し(ステップS27)、元々の処理の流れに戻る(リターン)。
その他、ノード装置1が受信したメッセージが参加メッセージ、存在確認メッセージ及び応答メッセージのいずれでもない場合には、ステップS11;NO、ステップS12;NO、ステップS13;NOと判断され、他のメッセージを受信した場合の処理を行い(ステップS30)、元々の処理の流れに戻る(リターン)。
(3)ノード装置における他のノード装置のテーブルへの登録処理
図10及び上述の図7を参照してノードZにおける他のノード装置1の登録処理について説明する。なお、ノードZは、ノードAから応答メッセージを受信したものとして、他のノード装置1の登録処理について説明する。
ノードZの制御部11は、上述の基本処理における他のノード装置1の登録処理(ステップS5)がスタートすると、ノードAのテーブルへの登録処理を開始する(スタート)。
テーブルへの登録処理が開始されると、制御部11は、受信した応答メッセージから送信元ノード装置であるノードAの情報、具体的にはIPアドレス等の情報を取得する(ステップS31)。次いで、制御部11は、取得したIPアドレスから、テーブルにおける登録するエリアを認定し、登録し(ステップS32)、元々の処理の流れに戻る(リターン)。ノードAは、図6(A)に示すように、ノードIDが0211であるため、図7において、その登録するエリアはレベル1、各レベルの注目桁X=0である。ノードZの制御部11は、このノードAの情報をテーブルのレベル1、各レベルの注目桁X=0のエリアに登録する。
なお、その後、ノードZは、ノードE、ノードC、ノードG、ノードD、ノードF、ノードHから次々に応答メッセージを受信することとなる。これらのノード装置からの応答メッセージに対応し、上述のステップS31、S32により各ノード装置1の情報をテーブルに登録し、図7に示すDHTルーティングテーブルを作成し、記憶する。また、ノードZは、上述のノードBに参加メッセージを送信した際のように、他のノード装置1と通信が確立した時点で、当該他のノード装置1が存在していることを確認し、当該他のノード装置1の情報をテーブルに登録することもできる。
[4.変形形態]
上述の実施形態において、ノード装置1の記憶部12は、DHTルーティングテーブルに他のノード装置1のIPアドレスとノードIDと対応付けて記憶している形態としたが、これに限定されず、少なくとも情報の転送先の候補となるノード装置1を示すノード情報を記憶していればよい。
ただし、ノード装置1の記憶手段としての記憶部12は、DHTルーティングテーブルのように、上記ノード情報と、ノード情報に対応する固有の識別情報と、を識別情報の属する領域毎に対応付けて記憶していることが好ましい。この場合には、上述の領域指定情報を用いることにより、参加要求ノードは、その識別情報に対して適した識別情報の各領域に属する各ノード装置のノード情報を取得し、バランスよく記憶することができる。さらに、DHTのルーティングテーブルのように、識別情報の領域は、識別情報の規則に従って複数の領域に分かれており、自ノード装置のみが属する領域の存在する段階まで、自ノード装置が属する領域が識別情報の規則に従ってさらに複数の領域に分かれていることが好ましい。
ここで、ノード情報は、IPアドレスの他、ポート番号等を含んでいてもよく、特に限定されない。識別情報はノードIDに限定されず、ノード情報に対応する他の固有の識別情報であってもよい。
上述の実施形態において、ノード装置1の制御部11は、参加メッセージを受信した場合に、その転送先のノード装置1を記憶しているか否かを判別し、記憶している場合には当該ノード装置1に参加メッセージを転送する形態としたが(ステップS23、S24;NO、S25)、これに限定されない。ノード装置1の参加要求情報転送手段としての制御部11は、オーバーレイネットワークへの参加要求を示し、かつ、参加要求する参加要求ノードのノード情報を含む参加要求情報を受信した場合に、参加要求ノードのノード情報に応じた転送先のノード装置を示すノード情報を記憶しているか否かを判別し、当該転送先のノード装置を示すノード情報を記憶している場合には当該ノード装置に参加要求情報を転送すればよい。
上述の実施形態において、ノード装置1の制御部11は、テーブルにおける一つのレベルに登録されているノード装置1に存在確認メッセージを送信する形態としたが(図6(A)乃至図6(C)の▲印参照)、これに限定されない。ノード装置1の存在確認情報送信手段としての制御部11は、参加要求ノード装置のノード情報に応じた転送先以外のノード装置を示すノード情報を記憶しているか否かを判別し、当該転送先以外のノード装置を示すノード情報を記憶している場合には当該ノード装置に参加要求ノードのノード情報を含む存在確認メッセージを送信すればよい。具体的に、制御部11は、複数のレベルに登録されているノード装置1に存在確認メッセージを送信する形態としてもよいし、任意に選択される登録されたノード装置1に存在確認メッセージを送信する形態としてもよい。また、制御部11は、上述の転送先以外のノード装置1に存在確認メッセージを送信していれば、参加要求ノード装置1のノード情報に応じた転送先のノード装置1に存在確認メッセージを送信してもよい。
上述の実施形態において、ノード装置1の制御部11は、参加メッセージを初めに送信する際や参加メッセージを転送する際に、DHTルーティングテーブルにおけるレベル数の情報である領域指定情報を送信する形態としたが(ステップS1、S25)、これに限定されない。ノード装置1の参加要求情報転送手段としての制御部11は、参加要求情報を転送する際に、記憶手段における所定の領域を指定した領域指定情報を当該参加要求情報に付加すればよく、領域指定情報は、レベル数の情報に限定されない。また、領域指定情報を用いた場合に、存在確認情報送信手段としての制御部11は、受信した参加要求情報に領域指定情報が付加されているか否か及び領域指定情報の内容に応じて(ステップS14、S15)、送信先となる他のノード装置のノード情報を記憶している場合には当該ノード装置に存在確認情報を送信する。
さらに、上述の実施形態のように、存在確認情報送信手段としての制御部11は、受信した参加要求情報に領域指定情報が付加されている場合には、記憶している識別情報の領域指定情報に対応する領域に属する他のノード装置に存在確認情報を送信する(ステップS14、S15、S20)ことが好ましい。なお、存在確認情報送信手段としての制御部11は、参加ノードが領域指定情報を用いなかった場合等、受信した参加要求情報に領域指定情報が付加されていない場合には、記憶している識別情報の最も大きな領域(上記実施形態ではレベル1)に属する他のノード装置に存在確認情報を送信する(ステップS20)ことが好ましい。このとき、参加要求情報転送手段としての制御部11は、受信した参加要求情報に領域指定情報が付加されている場合には、当該領域指定情報に対応する識別情報の領域よりも小さな範囲に対応する領域を指定した領域指定情報を参加要求情報に付加する(ステップS14、S15、S25)。また、参加要求情報転送手段としての制御部11は、受信した参加要求情報に領域指定情報が付加されていない場合には、識別情報の最も大きな領域(上述の実施形態ではレベル1)の次の段階の領域(上述の実施形態ではレベル2)を指定した領域指定情報を参加要求情報に付加する(ステップS25)。
本発明の情報通信システム等は、上述の領域指定情報を用いずに参加要求情報の転送処理や存在確認情報の送信処理、返信情報の送信処理を行うこともできる。
上述の実施形態においては、ノード装置1が情報通信システムSに参加する際の各ノード装置やシステム全体の動作は、図8乃至図10を用いて説明したものに限定されず、ステップS23、S24、S25の動作により参加要求情報転送手段を機能させたノード装置1は、さらに存在確認メッセージの送信先であるノード装置1のノード情報を参加要求ノードに送信する形態としてもよい。この動作は、ノード情報送信手段としての制御部11により行われる。この場合には、参加要求ノードが二つのノード装置から他のノード装置のノード情報を取得でき、より正確なDHTルーティングテーブルを記憶できることとなる。
上述の実施形態においては、存在確認メッセージを受信したノードA等が応答メッセージを参加要求ノード(ノードZ)に送信する形態としたが、これに限定されない。ノード装置1の返信情報送信手段としての制御部11は、少なくとも存在確認情報を受信した場合に、参加要求ノードに返信情報を送信すればよい。例えば、ノード装置1の返信情報送信手段としての制御部11は、さらに、参加要求情報を受信した場合に、参加要求ノードに返信情報を送信する形態としてもよい。
また、上述のノード装置1の各動作に対応するプログラムをフレキシブルディスク又はハードディスク等の情報記録媒体に記録しておき、或いはインターネット等のネットワークを介して取得して記録しておき、これをマイクロコンピュータ等により読み出して実行することにより、当該マイクロコンピュータを各実施形態に係る制御部11として機能させることも可能である。
本実施形態に係る情報通信システムにおける各ノード装置の接続態様の一例を示す図である。 DHTによるID空間及びルーティングテーブルが作成される様子の一例を示す図である。 (A)レベル1のテーブルの一例である。(B)レベル2のテーブルの一例である。(C)レベル3のテーブルの一例である。(D)完成したルーティングテーブルの一例である。 ノード装置1の概要構成例を示す図である。 ノード装置1がオーバーレイネットワークに参加した後にDHTルーティングテーブルを作成する態様を説明する図である。 (A)〜(C)は、他のノード装置1が記憶するDHTルーティングテーブルを示す各図である。 参加要求ノードであるノードZが作成するDHTルーティングテーブルを示す図である。 ノード装置1における基本処理を示すフローチャートである。 ノード装置1におけるメッセージ受信処理を示すフローチャートである。 ノード装置1における他のノード装置1のテーブルへの登録処理を示すフローチャートである。
符号の説明
1 ノード装置
8 ネットワーク
9 オーバーレイネットワーク
11 制御部
12 記憶部
13 バッファメモリ
14 デコーダ部
15 映像処理部
16 表示部
17 音声処理部
18 スピーカ
20 通信部
21 入力部
22 バス
S 情報通信システム

Claims (8)

  1. 通信経路を介して互いに接続された複数のノード装置の参加により形成されたオーバーレイネットワークを有する情報通信システムであって、
    前記複数のノード装置に含まれる一のノード装置は、
    情報の転送先の候補となるノード装置を示すノード情報を記憶する記憶手段と、
    前記オーバーレイネットワークへの参加要求を示し、かつ、参加要求する参加要求ノード装置のノード情報を含む参加要求情報を受信した場合に、前記参加要求ノード装置のノード情報に応じた転送先のノード装置を示すノード情報を記憶しているか否かを判別し、当該転送先のノード装置を示すノード情報を記憶している場合には当該ノード装置に前記参加要求情報を転送する参加要求情報転送手段と、
    前記参加要求情報を受信した場合に、当該参加要求情報の送信元である前記参加要求ノード装置のノード情報に応じた転送先以外のノード装置を示すノード情報を記憶しているか否かを判別し、当該転送先以外のノード装置を示すノード情報を記憶している場合には当該ノード装置に前記参加要求ノード装置のノード情報を含む存在確認情報を送信する存在確認情報送信手段と、
    前記存在確認情報を受信した場合に、前記参加要求ノード装置に返信情報を送信する返信情報送信手段と、
    を有することを特徴とする情報通信システム。
  2. 通信経路を介して互いに接続された複数のノード装置の参加により形成されたオーバーレイネットワークを有する情報通信システムにおける通信方法であって、
    前記複数のノード装置に含まれる一のノード装置は、情報の転送先の候補となるノード装置を示すノード情報を記憶する工程と、
    前記オーバーレイネットワークへの参加要求を示し、かつ、参加要求する参加要求ノード装置のノード情報を含む参加要求情報を受信した場合に、前記参加要求ノード装置のノード情報に応じた転送先のノード装置を示すノード情報を記憶しているか否かを判別し、当該転送先のノード装置を示すノード情報を記憶している場合には当該ノード装置に前記参加要求情報を転送する工程と、
    前記参加要求情報を受信した場合に、当該参加要求情報の送信元である前記参加要求ノード装置のノード情報に応じた転送先以外のノード装置を示すノード情報を記憶しているか否かを判別し、当該転送先以外のノード装置を示すノード情報を記憶している場合には当該ノード装置に前記参加要求ノード装置のノード情報を含む存在確認情報を送信する工程と、
    前記存在確認情報を受信した場合に、前記参加要求ノード装置に返信情報を送信する工程と、
    を有することを特徴とする通信方法。
  3. 通信経路を介して互いに接続された複数のノード装置の参加により形成されたオーバーレイネットワークを有する情報通信システムに含まれる一のノード装置であって、
    情報の転送先の候補となるノード装置を示すノード情報を記憶する記憶手段と、
    前記オーバーレイネットワークへの参加要求を示し、かつ、参加要求する参加要求ノード装置のノード情報を含む参加要求情報を受信した場合に、前記参加要求ノード装置のノード情報に応じた転送先のノード装置を示すノード情報を記憶しているか否かを判別し、当該転送先のノード装置を示すノード情報を記憶している場合には当該ノード装置に前記参加要求情報を転送する参加要求情報転送手段と、
    前記参加要求情報を受信した場合に、当該参加要求情報の送信元である前記参加要求ノード装置のノード情報に応じた転送先以外のノード装置を示すノード情報を記憶しているか否かを判別し、当該転送先以外のノード装置を示すノード情報を記憶している場合には当該ノード装置に前記参加要求ノード装置のノード情報を含む存在確認情報を送信する存在確認情報送信手段と、
    前記存在確認情報を受信した場合に、前記参加要求ノード装置に返信情報を送信する返信情報送信手段と、
    を有することを特徴とするノード装置。
  4. 請求項3に記載のノード装置から前記返信情報を受信したノード装置であって、
    受信した前記返信情報の送信元のノード装置に対応する前記ノード情報を記憶する記憶手段を有することを特徴とするノード装置。
  5. 請求項3に記載のノード装置であって、
    前記記憶手段は、前記ノード情報と、前記ノード情報に対応する固有の識別情報と、を前記識別情報の領域毎に対応付けて記憶し、
    前記参加要求情報転送手段は、前記参加要求情報を転送する際に、前記記憶手段における所定の領域を指定した領域指定情報を当該参加要求情報に付加し、
    前記存在確認情報送信手段は、受信した前記参加要求情報に前記領域指定情報が付加されているか否か及び前記領域指定情報の内容に応じて、送信先となる他のノード装置のノード情報を記憶している場合には当該ノード装置に前記存在確認情報を送信することを特徴とするノード装置。
  6. 請求項5に記載のノード装置であって、
    前記識別情報の領域は、前記識別情報の規則に従って複数の領域に分かれており、自ノード装置のみが属する前記領域の存在する段階まで、自ノード装置が属する前記領域が前記識別情報の規則に従ってさらに複数の領域に分かれており、
    前記存在確認情報送信手段は、受信した前記参加要求情報に前記領域指定情報が付加されている場合には、記憶している前記識別情報の領域指定情報に対応する領域に属する他のノード装置に前記存在確認情報を送信し、
    前記参加要求情報転送手段は、受信した前記参加要求情報に前記領域指定情報が付加されている場合には、当該領域指定情報に対応する前記識別情報の領域よりも小さな範囲に対応する領域を指定した前記領域指定情報を前記参加要求情報に付加することを特徴とするノード装置。
  7. 請求項3、5又は6のいずれか一項に記載のノード装置であって、
    前記存在確認情報送信手段により前記存在確認情報を送信した場合に、当該存在確認情報の送信先であるノード装置のノード情報を前記参加要求ノード装置に送信するノード情報送信手段をさらに有することを特徴とするノード装置。
  8. コンピュータを、請求項3乃至7のいずれか一項に記載のノード装置として機能させることを特徴とする情報処理プログラム。
JP2006110626A 2006-04-13 2006-04-13 情報通信システム、情報通信方法、情報通信システムに含まれるノード装置および情報処理プログラム Expired - Fee Related JP4539603B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006110626A JP4539603B2 (ja) 2006-04-13 2006-04-13 情報通信システム、情報通信方法、情報通信システムに含まれるノード装置および情報処理プログラム
PCT/JP2007/055516 WO2007119422A1 (ja) 2006-04-13 2007-03-19 情報通信システム、情報通信方法、情報通信システムに含まれるノード装置および情報処理プログラムが記録された記録媒体
US12/230,402 US8218455B2 (en) 2006-04-13 2008-08-28 Information communication system, information communication method, node device included in information communication system and recording medium recording information process program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006110626A JP4539603B2 (ja) 2006-04-13 2006-04-13 情報通信システム、情報通信方法、情報通信システムに含まれるノード装置および情報処理プログラム

Publications (2)

Publication Number Publication Date
JP2007288307A JP2007288307A (ja) 2007-11-01
JP4539603B2 true JP4539603B2 (ja) 2010-09-08

Family

ID=38609212

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006110626A Expired - Fee Related JP4539603B2 (ja) 2006-04-13 2006-04-13 情報通信システム、情報通信方法、情報通信システムに含まれるノード装置および情報処理プログラム

Country Status (3)

Country Link
US (1) US8218455B2 (ja)
JP (1) JP4539603B2 (ja)
WO (1) WO2007119422A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5136585B2 (ja) 2010-03-30 2013-02-06 ブラザー工業株式会社 情報通信システム、ノード装置、情報処理方法、及び情報処理プログラム
US20150083652A1 (en) * 2013-09-23 2015-03-26 Wayne R. HAWKS System and method for treating contaminated water
US20140282022A1 (en) * 2013-03-15 2014-09-18 Miselu Inc Configuring device layouts
US10269156B2 (en) 2015-06-05 2019-04-23 Manufacturing Resources International, Inc. System and method for blending order confirmation over menu board background
US10313037B2 (en) 2016-05-31 2019-06-04 Manufacturing Resources International, Inc. Electronic display remote image verification system and method
US11895362B2 (en) 2021-10-29 2024-02-06 Manufacturing Resources International, Inc. Proof of play for images displayed at electronic displays

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7805448B2 (en) * 2003-04-18 2010-09-28 Hewlett-Packard Development Company, L.P. Storing attribute values of computing resources in a peer-to-peer network
US7539771B2 (en) * 2003-06-06 2009-05-26 Microsoft Corporation Organizational locality in prefix-based structured peer-to-peer overlays
US7313565B2 (en) * 2004-02-19 2007-12-25 Microsoft Corporation Data overlay, self-organized metadata overlay, and associated methods
US7418454B2 (en) * 2004-04-16 2008-08-26 Microsoft Corporation Data overlay, self-organized metadata overlay, and application level multicasting
JP4696498B2 (ja) * 2004-08-20 2011-06-08 ブラザー工業株式会社 情報配信システム、ノード装置、所在情報検索方法、及び所在情報検索処理プログラム等
WO2006068365A1 (en) * 2004-12-21 2006-06-29 Electronics And Telecommunications Research Institute P2p overlay network construction method and apparatus
US20060209717A1 (en) * 2005-03-16 2006-09-21 Puneet Sharma Distributed storing of network position information for nodes

Also Published As

Publication number Publication date
JP2007288307A (ja) 2007-11-01
US8218455B2 (en) 2012-07-10
US20090003244A1 (en) 2009-01-01
WO2007119422A1 (ja) 2007-10-25

Similar Documents

Publication Publication Date Title
US8059561B2 (en) Information communication system, information communication method, node device included in information communication system, and recording medium having information processing program recorded on it
JP2010028551A (ja) コンテンツ分散保存システム、ノード装置、ノード処理プログラム、及びアドレス情報変更通知方法
CN101406006B (zh) 信息通信系统,信息通信方法,包括在信息通信系统中的节点装置
JP4371056B2 (ja) ノード装置、ネットワーク参加処理プログラム、及びネットワーク参加処理方法等
WO2007119422A1 (ja) 情報通信システム、情報通信方法、情報通信システムに含まれるノード装置および情報処理プログラムが記録された記録媒体
WO2008013036A1 (fr) Dispositif de nœud, support d'enregistrement contenant un programme de traitement d'informations, procédé de distribution de contenu et système de distribution de contenu
JP2007193626A (ja) コンテンツ配信システム、ノード装置及びその情報処理方法並びにそのプログラム
US8819295B2 (en) Information communication system, first information processing device, method for processing information, and computer readable storage medium
JP5370269B2 (ja) 分散保存システム、分散保存システムの接続情報通知方法及びプログラム
JP4622755B2 (ja) 情報通信システム、情報通信方法、情報通信システムに含まれるノード装置および情報処理プログラム
WO2007097130A1 (ja) 情報通信システム、情報収集方法、ノード装置、及び記録媒体
JP4770804B2 (ja) オーバレイネットワーク型通信システム、オーバレイネットワーク型ノード装置およびプログラム
JP4947106B2 (ja) 情報通信システム、情報通信方法、情報通信システムに含まれるノード装置、情報処理プログラムおよびノード装置のプログラム
JP4899990B2 (ja) 情報通信システムに含まれるノード装置及びその情報処理プログラム
JP2009232272A (ja) コンテンツ分散保存システム、コンテンツ再生方法、ノード装置、管理装置、ノード処理プログラム、及び管理処理プログラム
JP4797679B2 (ja) コンテンツ配信システム、コンテンツデータ管理装置及びその情報処理方法並びにそのプログラム
JP2008092236A (ja) コンテンツ配信システムにおける端末装置及びその情報処理方法並びにプログラム
JP2009230573A (ja) コンテンツ分散保存システム、コンテンツ再生方法、ノード装置、管理装置、ノード処理プログラム、及び管理処理プログラム
JP2012078903A (ja) ノード装置、ノード装置用プログラムおよび情報処理方法
JP2008181408A (ja) 通信システム、稼動制御方法、ノード装置及びノード処理プログラム
JP2012048664A (ja) 情報通信システム、ノード装置、情報処理方法及び情報処理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090402

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100316

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100430

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4539603

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees