JP4631531B2 - ネットワークシステム、接続確立方法、及びノード装置等 - Google Patents

ネットワークシステム、接続確立方法、及びノード装置等 Download PDF

Info

Publication number
JP4631531B2
JP4631531B2 JP2005136890A JP2005136890A JP4631531B2 JP 4631531 B2 JP4631531 B2 JP 4631531B2 JP 2005136890 A JP2005136890 A JP 2005136890A JP 2005136890 A JP2005136890 A JP 2005136890A JP 4631531 B2 JP4631531 B2 JP 4631531B2
Authority
JP
Japan
Prior art keywords
port number
node
network
network system
identification information
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
JP2005136890A
Other languages
English (en)
Other versions
JP2006319384A (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 JP2005136890A priority Critical patent/JP4631531B2/ja
Priority to PCT/JP2006/307714 priority patent/WO2006120831A1/ja
Publication of JP2006319384A publication Critical patent/JP2006319384A/ja
Application granted granted Critical
Publication of JP4631531B2 publication Critical patent/JP4631531B2/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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management

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)

Description

本発明は、ネットワークを介して互いに接続可能な複数のノード装置を備えたネットワークシステムに関し、特に、1のノード装置が他のノード装置との間で接続を確立する方法等の技術分野に関する。
インターネット等により構築されたネットワーク上において、例えばパーソナルコンピュータ等の端末が、目的のサーバに接続して情報の提供を受けるためには、一般に、そのサーバのIP(Internet Protocol)アドレス及びポート番号(待ち受けポート番号)を取得する必要がある。
ここで、ポート番号とは、ネットワーク上において、IPアドレスの下に設けられた補助アドレスであり、アプリケーション(ソフトウェア)の種類を区別するために(つまり、アプリケーション層からトランスポート層への接続口を意味する)使われる。
特許文献1には、端末が接続仲介サーバから目的のサーバのIPアドレス及びポート番号を予め取得し、当該サーバのIPアドレス及びポート番号を用いて、当該サーバに接続することが開示されている。
ところで、近年、クライアント(ノード装置)間でネットワークを介して相互接続し、情報の授受を行うピアツーピア(Peer to Peer(P2P))型のネットワークシステムが注目されている。音楽配信で有名なNapster(ナプスタ)やGnutella(グヌーテラ)がその例である。
このようなP2P型のネットワークシステムにおいては、映画、音楽等の様々なコンテンツデータを多くのノード装置に分散して保存させておき、例えば、公知の分散ハッシュテーブル(以下、DHT(Distributed Hash Table)という)を利用した検索方法によって、あるノード装置が、所望のコンテンツデータの所在、つまり、当該コンテンツデータを保存しているノード装置のIPアドレスを取得することで当該コンテンツデータを取得することが可能になっている。
特開2004−194016号公報
しかしながら、従来のP2P型のネットワークシステムにおいては、DHTを利用した検索方法によって所望のコンテンツデータを保存しているノード装置のIPアドレスを効率良く取得することができるが、待ち受けポート番号を効率良く取得する方法は確立されていない。
当該ポート番号を取得する方法の一例として、ノード装置が例えば上記接続仲介サーバのようなポート番号紹介(照会)サーバに接続して、目的のノード装置の待ち受けポート番号を問い合わせて取得する方法が考えられるが、この方法では、コンテンツデータの検索が行われる度に、ポート番号紹介サーバへの問い合わせが行われることになり、待ち受けポート番号を取得するまで時間がかかる上、ポート番号紹介サーバの負担が大きくなる。
一方、全てのノード装置の待ち受けポート番号を同一にすれば、ポート番号紹介サーバが必要とはならないが、これでは、セキュリティ上望ましくない。
本発明は、以上の問題等に鑑みてなされたものであり、ポート番号紹介サーバを必要とすることなく、かつ、セキュリティの向上を図りつつ、より効率良く待ち受けポート番号を取得可能なネットワークシステム、接続確立方法、及びノード装置等を提供することを課題とする。
上記課題を解決するために、請求項1に記載の発明は、ネットワークを介して互いに接続可能な複数のノード装置を備えたネットワークシステムにおいて、夫々の前記ノード装置は、自己又は自己が前記ネットワークに接続するために必要な中継機器に一意に割り当てられた識別情報、及び当該ネットワークシステムにおいて共通の関数を記憶する記憶手段と、前記共通の関数、自己又は前記中継機器に割り当てられた前記識別情報を用いて、第1ポート番号を生成する第1ポート番号生成手段と、前記生成された第1ポート番号を待ち受けポート番号として設定する待ち受けポート設定手段と、他の前記ノード装置に接続する場合に、当該他のノード装置又は当該他のノード装置が前記ネットワークに接続するために必要な中継機器に一意に割り当てられた識別情報を取得する識別情報取得手段と、前記共通の関数、前記取得された識別情報を用いて、第2ポート番号を生成する第2ポート番号生成手段と、前記生成された第2ポート番号に基づいて前記他のノード装置との間の接続を確立する接続確立手段と、を備えることを特徴とする。
この発明によれば、各ノード装置の待ち受けポート番号は、各ノード装置に一意に割り当てられた識別情報が、共通の関数により生成され設定されるので、セキュリティの向上を図ることができるとともに、各ノード装置は、ポート番号紹介サーバに照会することなく、接続相手のノード装置の待ち受けポート番号を上記共通の関数を用いて効率良く取得することができる。
また、請求項2に記載の発明は、請求項1に記載のネットワークシステムにおいて、前記第1ポート番号生成手段及び前記第2ポート番号生成手段は、前記共通の関数を用いて生成された前記ポート番号がウェルノウンポート番号と重複する場合には、前記ウェルノウンポート番号と重複しなくなるように、当該生成されたポート番号に対して所定の演算を施した結果の番号を前記ポート番号とすることを特徴とする。
この発明によれば、ウェルノウンポート番号と重複することなく、適切な待ち受けポート番号を設定することができる。
請求項3に記載の発明は、請求項1に記載のネットワークシステムにおいて、前記夫々のノード装置における共通の関数は、定期的に更新され、前記夫々のノード装置における待ち受けポート番号が定期的に設定し直されることを特徴とする。
この発明によれば、より一層、セキュリティの向上を図ることができる。
請求項4に記載の発明は、請求項1に記載のネットワークシステムにおいて、前記夫々のノード装置の記憶手段には、複数の前記共通の関数が予め記憶されており、前記夫々のノード装置における前記第1ポート番号生成手段は、一定時間毎に前記記憶手段に記憶された複数の共通の関数のうちから一の共通の関数を取得し、これを用いて前記第1ポート番号を生成し、前記待ち受けポート設定手段は、当該生成された第1ポート番号を前記待ち受けポート番号として設定し直し、前記夫々のノード装置における前記第2ポート番号生成手段は、前記待ち受けポート設定手段による前記待ち受けポート番号の設定し直しに同期して、用いるべき前記共通の関数を変更することを特徴とする。
この発明によれば、一定時間毎に前記用いられる共通の関数が変更されるので、より一層、セキュリティの向上を図ることができる。
請求項5に記載の発明は、請求項1に記載のネットワークシステムにおいて、前記共通の関数は、前記ネットワークを介して前記夫々のノード装置に対して定期的に配信されて前記記憶手段に記憶され、前記夫々のノード装置における前記第1ポート番号生成手段は、前記配信された共通の関数を用いて前記第1ポート番号を生成し、前記待ち受けポート設定手段は、当該生成された第1ポート番号を前記待ち受けポート設定手段として設定し直し、前記夫々のノード装置における前記第2ポート番号生成手段は、前記待ち受けポート設定手段による前記待ち受けポート番号の設定し直しに同期して、用いるべき前記共通の関数を変更することを特徴とする。
この発明によれば、一定時間毎に前記用いられる共通の関数が変更されるので、より一層、セキュリティの向上を図ることができる。
請求項6に記載の発明は、請求項1乃至5の何れか一項に記載のネットワークシステムにおいて、前記共通の関数は、ハッシュ関数であることを特徴とする。
この発明によれば、各ノード装置の待ち受けポート番号ができるだけ異なる番号になり、分散されるので、より一層のセキュリティの向上を図ることができる。
請求項7に記載の発明は、請求項1乃至6の何れか一項に記載のネットワークシステムにおいて、前記識別情報は、IPアドレス、又はノードIDであることを特徴とする。
この発明によれば、各ノード装置が接続先となるノード装置のIPアドレス又はノードIDを取得しやすい環境(例えば、ノード装置のIPアドレス及びノードIDが登録されたDHTが用いられるネットワークシステム)において特に有効である。
請求項8に記載の発明は、ネットワークを介して互いに接続可能な複数のノード装置を備えたネットワークシステムにおけるノード装置であって、自己又は自己が前記ネットワークに接続するために必要な中継機器に一意に割り当てられた識別情報、及び当該ネットワークシステムにおいて共通の関数を記憶する記憶手段と、前記共通の関数、自己又は前記中継機器に割り当てられた前記識別情報とを用いて、第1ポート番号を生成する第1ポート番号生成手段と、前記生成された第1ポート番号を待ち受けポート番号として設定する待ち受けポート設定手段と、他の前記ノード装置に接続する場合に、当該他のノード装置又は当該他のノード装置が前記ネットワークに接続するために必要な中継機器に一意に割り当てられた識別情報を取得する識別情報取得手段と、前記共通の関数、前記取得された識別情報とを用いて、第2ポート番号を生成する第2ポート番号生成手段と、前記生成された第2ポート番号に基づいて前記他のノード装置との間の接続を確立する接続確立手段と、を備えることを特徴とする。
請求項9に記載にプログラムは、コンピュータを、請求項に記載のノード装置として機能させることを特徴とする。
請求項10に記載の発明は、ネットワークを介して互いに接続可能な複数のノード装置を備えたネットワークシステムにおける接続確立方法であって、夫々の前記ノード装置が、自己又は自己が前記ネットワークに接続するために必要な中継機器に一意に割り当てられた識別情報、及び当該ネットワークシステムにおいて共通の関数を記憶する工程と、前記夫々のノード装置が、前記共通の関数、自己又は前記中継機器に割り当てられた前記識別情報とを用いて、第1ポート番号を生成する工程と、前記夫々のノード装置が、前記生成された第1ポート番号を待ち受けポート番号として設定する工程と、他の前記ノード装置に接続する場合に、当該他のノード装置又は当該他のノード装置が前記ネットワークに接続するために必要な中継機器に一意に割り当てられた識別情報を取得する工程と、前記1のノード装置が、前記共通の関数、前記取得された識別情報とを用いて、第2ポート番号を生成する工程と、前記1のノード装置が、前記生成された第2ポート番号に基づいて前記他のノード装置との間の接続を確立する工程と、を備えることを特徴とする。
本発明によれば、各ノード装置の待ち受けポート番号は、各ノード装置に一意に割り当てられた識別情報が、共通の関数により生成され設定されるので、セキュリティの向上を図ることができるとともに、各ノード装置は、ポート番号紹介サーバに照会することなく、接続相手のノード装置の待ち受けポート番号を上記共通の関数を用いて効率良く取得することができる。
以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、コンテンツ配信システムに対して本発明を適用した場合の実施形態である。
[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アドレス」という場合は、グローバルIPアドレスを示す)が割り当てられる。なお、製造番号及びIPアドレスは、複数のノード装置1間で重複しないものである。また、以下の説明において、ノード装置1a,1b,1c・・・1x,1y,1z・・・を総称して「ノード1」というものとする。
そして、このコンテンツ配信システムSにおいては、特定のアルゴリズム、例えば、DHTを利用したアルゴリズムによって、図1の上部枠100内に示すような、オーバーレイネットワーク9が構築されることになる。つまり、このオーバーレイネットワーク9は、既存のネットワーク8を用いて形成された仮想的なリンクを構成するネットワークを意味する。
本実施形態においては、DHTを利用したアルゴリズムによって構築されたオーバーレイネットワーク9を前提としており、このオーバーレイネットワーク9上に配置されたノード1を、オーバーレイネットワーク9に参加しているノード1という。オーバーレイネットワーク9への参加は、未だ参加していないノード1が、既に参加している任意のノード1に対して参加要求を送ることによって行われる。
また、オーバーレイネットワーク9に参加している各ノード1は、ノードIDを有しており、当該ノードIDは、例えば、IPアドレスあるいは製造番号を共通のハッシュ関数(例えば、SHA−1等のハッシュ関数(以下、「ノードID用ハッシュ関数」という)によりハッシュ化した値(例えば、bit長は160bit)であり、一つのID空間に偏りなく分散して配置されることになる。このようにノードID用ハッシュ関数により求められた(ハッシュ化された)ノードIDは、当該IPアドレスあるいは製造番号が異なれば、同じ値になる確率が極めて低いものである。なお、ハッシュ関数については公知であるので詳しい説明を省略する。
また、オーバーレイネットワーク9に参加している各ノード1は、夫々、DHTを保持している。このDHTには、他のノード1への経路情報、すなわち、ノードID空間内で適度に離れた他のノード1のノードIDとそのIPアドレスが、複数登録されている。このようなDHTは、ノード1がオーバーレイネットワーク9に参加する際に与えられることになる。また、コンテンツ配信システムSにおいては、ノード1がオーバーレイネットワーク9への参加若しくは脱退を行うため、定期的に(例えば数十分から数時間間隔で)DHTの更新が必要かどうかが確認されると共に、その更新情報が他のノード1のDHTに登録されている経路を介して伝達されるようになっている。これにより、DHTを最新の状態に保つことが可能となる。なお、DHTの生成方法については公知であるので詳しい説明を省略する。
また、オーバーレイネットワーク9に参加している何れか複数のノード1には、配信情報としてのコンテンツ(例えば、映画や音楽等)データが分散されて保存(格納)されている。例えば、ノード1aには、タイトルがXXXの映画のコンテンツデータが保存されており、一方、ノード1bには、タイトルがYYYの映画のコンテンツデータが保存されるというように、互いに異なるコンテンツデータが、複数のノード1に分散されて保存される。また、あるコンテンツデータは、1つのノード1に保存されているとは限らず、複数のノード1に同じコンテンツデータが保存されうる。これらのコンテンツデータには、夫々、コンテンツ名(タイトル)等が付与されている。
更に、このように分散保存されている各コンテンツデータ毎の所在を示す所在情報(例えば、コンテンツデータが保存されているノード(以下、「コンテンツホルダ」という)のIPアドレス)もまた、オーバーレイネットワーク9に参加している複数のノード1に分散して保存されている。例えば、あるコンテンツデータのコンテンツ名(或いは、当該コンテンツデータの先頭数バイトでも良い)が、上記ノードID用ハッシュ関数によりハッシュ化され(つまり、ノード1のIPアドレスのハッシュ値と同一のID空間に配置)、そのハッシュ値(当該ハッシュ値がコンテンツIDとなる)と最も近い(例えば、上位桁がより多く一致する)ノードIDを有するノード1(以下、「ルートノード」という)に、当該コンテンツデータの所在情報が保存されることになる。つまり、同一のコンテンツデータ(コンテンツIDが同一)が、夫々、複数のコンテンツホルダに保存されている場合であっても、かかるコンテンツデータの所在を示す所在情報(複数のコンテンツホルダのIPアドレス等)は、1つのルートノードで管理することができる。
そして、あるコンテンツデータを取得(ダウンロード)したいユーザが使用するノード(以下、これを「ユーザノード」という)は、ルートノードからコンテンツデータの所在を示す所在情報を取得して、これに基づきコンテンツホルダに接続し、当該コンテンツデータを取得することになる。
図2は、DHTのノードID空間において、ユーザノードが所在情報を取得する場合におけるDHTルーティングの一例を示す図である。
図2の例では、ユーザノード1aが、所望のコンテンツデータのコンテンツIDが付加されたクエリ(問合せ情報)を他のノード1に対して送出することにより、当該クエリは、DHTルーティングによっていくつかのノード(以下、これを「中継ノード」という)を経由してそのコンテンツデータの所在を示す所在情報を保存しているルートノード1bに辿り着く。上記各中継ノード1nは、受信したクエリに付加されたコンテンツIDと、DHTに登録されているノードIDとを比較して、次に転送すべきノード1を特定(例えば、コンテンツIDの上位数桁が一致するノードIDに対応するノード1のIPアドレスを特定)し、そこにクエリを転送することになる。こうして、ユーザノード1aは、上記ルートノード1bから所在情報を取得(受信)して、コンテンツホルダ1cから上記コンテンツデータを取得(受信)することになる。
なお、ユーザノード1aからルートノード1bに至るまでのDHTを用いたクエリの転送方法は、例えば「Pastry」等で公知であるので更なる詳しい説明を省略する。また、クエリがルートノードに辿り着くまでの間に当該ルートノードと同じ所在情報をキャッシュしているノード1から当該所在情報が取得(受信)されるように構成してもよい。
このようなコンテンツ配信システムSにおいて、上記各ノード1は、コンテンツ配信システムSにおける各ノード1間において共通の関数であるハッシュ関数(以下、「ポート番号用ハッシュ関数」という。これは、上記ノードID用ハッシュ関数と同一のハッシュ関数であってもよいし、異なるハッシュ関数であっても良い)を用いて、例えば自己に割り当てられているIPアドレスに対応するポート番号(第1ポート番号)を生成(例えば、IPアドレスをポート番号用ハッシュ関数にかけ、求めた値の下位16ビット(16進数で4桁(最大値“FFFFh”))をポート番号とする)し、当該ポート番号を待ち受けポート番号として設定するようになっている。そして、あるノード1が、他のノード1にIPアドレスを用いて接続する場合に、上記共通のポート番号用ハッシュ関数を用いて、当該他のノード1のIPアドレスに対応するポート番号(第2ポート番号)を生成(例えば、IPアドレスをポート番号用ハッシュ関数にかけ、求めた値の下位16ビット(16進数で4桁)をポート番号とする)し、当該ポート番号を宛先ポート番号として当該他のノード1との間の接続を確立するようになっている。
なお、ポート番号用ハッシュ関数にかける対象としてはIPアドレスに限られず、各ノード1に固有の識別情報であって他のノード1から取得可能な識別情報であれば如何なるものでも適用可能であり、例えば、ノードID、MACアドレスであっても構わない。
また、プライベートIPアドレスが割り当てられたノード1が、企業等の組織のイントラネット等に接続されており、インターネット(グローバルネットワーク)に接続するときに、自己の中継機器としてのNAT(Network Address Translation)機能搭載ルータがIPパケット中のプライベートIPアドレスをグローバルIPアドレスに変換して通信するような(つまり、ノード1がNAT機能搭載ルータの内側に存在する)場合、プライベートIPアドレスは他のノード1と重複する場合があるので、ポート番号用ハッシュ関数にかける対象とすることができない。かかる場合、当該ノード1がインターネットに接続するために必要な中継機器としてのNAT機能搭載ルータ(図示せず)に割り当てられているグローバルIPアドレスを、当該ノード1の固有の識別情報とし、上記共通のポート番号用ハッシュ関数を用いて、当該グローバルIPアドレスに対応するポート番号を生成して、これを当該ノード1の待ち受けポート番号としてNAT機能搭載ルータにおいて設定する。そして、当該NAT機能搭載ルータの待ち受けポートに送信されてきたデータは、当該ノード1に転送(ポートフォワーディング)されるように設定される。
ところで、ポート番号には、公知の如く、10進数で0から65535(16進数で0からFFFF)までの数字が使用されるが、このうち、0から1023までは、ウェルノウンポート番号(Well-known port:言い換えれば、予約されたポート番号)であり(例えば、25番のポート番号の場合、SMTP(Simple Mail Transfer Protocol)を指定することになる)、各ノード1が自由に使用することができない。従って、例えば、上記生成されたポート番号が1024未満の値となる(ウェルノウンポート番号と重複する)場合には、当該ウェルノウンポート番号と重複しなくなるように、当該生成されたポート番号に対して所定の演算を施した結果の番号を待ち受けポート番号とする(詳細は後述)。
[2.ノードの構成等]
次に、図3等を参照して、コンテンツ配信システムSにおけるノード1の構成及び機能について説明する。
図3は、ノード1の概要構成例を示す図である。
各ノード1は、図3に示すように、演算機能を有するCPU,作業用RAM,各種データ及びプログラムを記憶するROM等から構成されたコンピュータとしての制御部11と、ノードID用ハッシュ関数、ポート番号用ハッシュ関数、上記コンテンツデータ、上記所在情報、DHT及びプログラム等を記憶保存(格納)するためのHDD等から構成された記憶手段としての記憶部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、及び入力部21はバス22を介して相互に接続されている。なお、ノード1としては、STB(Set Top Box)やパーソナルコンピュータを適用可能である。
そして、制御部11は、CPUが記憶部12等に記憶された各種プログラムを実行することにより、ノード1全体を統括制御するようになっており、上述したユーザノード1a、ルートノード1b、コンテンツホルダ1c、及び中継ノード1nの何れの動作を行うことが可能になっている。そして、制御部11は、本発明の第1ポート番号生成手段、待ち受けポート設定手段、識別情報取得手段、第2ポート番号生成手段、及び接続確立手段として機能し、後述する各種処理を行うようになっている。
なお、上記プログラムは、例えば、ネットワーク8上の所定のサーバからダウンロードされるようにしてもよいし、例えば、CD−ROM等の記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしてもよい。
[3.コンテンツ配信システムの動作]
次に、コンテンツ配信システムSの動作について実施形態1と実施形態2に分けて夫々、説明する。
(実施形態1)
始めに、実施形態1におけるコンテンツ配信システムSの動作について、図4乃至図7等を参照して説明する。なお、実施形態1では、IPアドレスをポート番号用ハッシュ関数にかける対象とした場合の実施形態である。
図4は、ノードの制御部11における待ち受けポート番号設定処理を示すフローチャートであり、図5は、ユーザノードの制御部11におけるコンテンツデータ検索処理を示すフローチャートであり、図6は、中継ノード又はルートノードの制御部11におけるコンテンツデータの検索処理を示すフローチャートであり、図7は、ユーザノードの制御部11におけるコンテンツデータの取得処理を示すフローチャートである。
図4の処理は、例えばユーザが入力部21を操作して、オーバーレイネットワーク9への参加要求指示を入力した場合に開始され、制御部11は、先ず、自己のノード1がNAT機能搭載ルータの内側に存在するか否かを判別する(ステップS1)。自己がNAT機能搭載ルータの内側に存在しない場合(ステップS1:N)、ステップS2に移行し、自己がNAT機能搭載ルータの内側に存在する場合(ステップS1:Y)、ステップS6に移行する。
ステップS2では、制御部11は、自己のノード1に割り当てられているIPアドレスをポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出する(ステップS2)。例えば、ポート番号用ハッシュ関数により求められたハッシュ値が“A3178692h”(末尾のhは16進数を示す)であったと仮定すると、下位2バイト“8692h”が抽出される。
次いで、制御部11は、ポート番号として抽出された値が“400h”(16進数:10進数で1024)未満であるか否かを判別し(ステップS3)、“400h”未満でない場合には(ステップS3:N)、当該ポート番号として抽出された値を待ち受けポート番号として設定(開放)し(ステップS5)、ステップS13に移行する。一方、抽出された値が“400h”未満である場合(ステップS3:Y)、つまり、抽出された値がウェルノウンポート番号と重複する場合には、制御部11は、例えば、当該ポート番号として抽出された値に“4E20h” (16進数:10進数で20000)を加算して(ステップS4)得た値(つまり、ウェルノウンポート番号と重複しなくなるように、当該生成されたポート番号に対して所定の演算を施した結果の番号)を待ち受けポート番号として設定(開放)し(ステップS5)、ステップS13に移行する。
一方、ステップS6では、制御部11は、自己のノード1が接続するNAT機能搭載ルータのIPアドレスを取得する。そして、制御部11は、当該取得したIPアドレスをポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出する(ステップS7)。
次いで、制御部11は、ステップS3と同様、ポート番号として抽出された値が“400h”未満であるか否かを判別し(ステップS8)、“400h”未満でない場合には(ステップS8:N)、ステップS10に移行し、“400h”未満である場合には(ステップS8:Y)、当該ポート番号として抽出された値に“4E20h”(16進数:10進数で20000)を加算して(ステップS9)、ステップS10に移行する。
ステップS10では、制御部11は、ステップS7若しくはステップS9で得たポート番号が、他のノード1の待ち受けポート番号として既に使用中であるか否かをNAT機能搭載ルータに問い合わせることによって判別する。つまり、NAT機能搭載ルータの内側にノード1が複数存在し、既に他のノード1によりNAT機能搭載ルータのIPアドレスから得られたポート番号が待ち受けポート番号として設定されているか否かが判別される。
そして、ステップS7若しくはステップS9で得られたポート番号が他のノード1により使用中でない場合には(ステップS10:N)、制御部11は、当該ポート番号を待ち受けポート番号として設定(開放)し(ステップS11)、ステップS13に移行する。かかる設定では、NAT機能搭載ルータに対して、当該ノード1の上記ポート番号を待ち受けポート番号として設定する指令がなされ(ポートフォワーディング設定)、これによりNAT機能搭載ルータにおいて当該ノード1の待ち受けポート番号が設定される。
一方、ステップS7若しくはステップS9で得られたポート番号が他のノード1により使用中である場合には(ステップS10:Y)、制御部11は、例えば表示部16における表示画面上に他のノード1によってポート番号が使用中である旨(例えば、「他のノードによってポート番号が使用されています」)等のメッセージを表示させ(ステップS12)、当該処理を終了する。
そして、ステップS13では、制御部11は、既にオーバーレイネットワーク9に参加している任意のノード1のIPアドレスを取得する(例えば、ノード1の出荷時に記憶部12に記憶されていてもよいし、ネットワーク3に接続された所定のサーバから取得しても良い)。
次いで、制御部11は、当該取得したIPアドレスを上記ポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出する(ステップS14)。
次いで、制御部11は、ポート番号として抽出された値が“400h”未満であるか否かを判別し(ステップS15)、“400h”未満でない場合には(ステップS15:N)、上記抽出したIPアドレス及び当該ポート番号を、それぞれ宛先IPアドレス及び宛先ポート番号として、当該任意のノード1との間の接続を確立して(ステップS16)、当該任意のノード1に対してオーバーレイネットワーク9への参加要求を示す参加要求情報(送信元IPアドレスとして自己のノード1のIPアドレス(NAT機能搭載ルータの内側のノード1の場合、プライベートIPアドレス(NTA機能搭載ルータでグローバルIPアドレスに変換されて出て行く))及びペイロード中にノードIDが含まれる)を送信し(ステップS17)、当該処理を終了する。
一方、ポート番号として抽出された値が“400h”未満である場合には(ステップS15:Y)、当該ポート番号として抽出された値に“4E20h”(16進数:10進数で20000)を加算して(ステップS18)、これをポート番号とし、上記抽出したIPアドレス及び当該ポート番号を、それぞれ宛先IPアドレス及び宛先ポート番号として、上記任意のノード1との間の接続を確立し(ステップS16)、当該任意のノード1に対して上記参加要求情報を送信して(ステップS17)、当該処理を終了する。
これにより、自己のノード1は、オーバーレイネットワーク9への参加をし、DHTを取得することになり、また、当該ノード1のIPアドレス及びノードIDが他の何れかの1又は複数のノード1におけるDHTに登録されることになる。このように、オーバーレイネットワーク9に参加する全てのノード1は、ポート番号用ハッシュ関数及びIPアドレスにより生成した値を待ち受けポート番号として開放することになる。
なお、上記処理においては、NAT機能搭載ルータの内側にノード1が複数存在し、生成されたポート番号が他のノード1により使用中である場合に、「他のノードによって使用されています」等のメッセージを表示させるように構成したが、他のノード1により使用中となることがないように夫々のノード1の待ち受けポート番号を設定することも可能である。例えば、上記ステップS7において、ノード1に固有に与えられているMACアドレス又は製造番号をポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出し、ステップS8,9を経て、ステップS11にて待ち受けポート番号を設定するように構成する。このような構成では、上記ステップS13で送信される参加要求情報には、MACアドレス又は製造番号、当該ノード1のノードID、及びNAT機能搭載ルータのIPアドレスが含まれることになり、当該MACアドレス又は製造番号と、NAT機能搭載ルータのIPアドレスの組がノードIDと共に他の何れかの1又は複数のノード1におけるDHTに登録される(この場合、他のノード1はMACアドレス又は製造番号をポート番号用ハッシュ関数によりハッシュ化して待ち受けポート番号を求める)ことになる。また、ノード1に固有に与えられているノードIDをポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出し、ステップS8,9を経て、ステップS11にて待ち受けポート番号を設定するように構成してもよい。
次に、図5の処理は、ユーザノード1aにおけるユーザが例えば入力部21を操作して、コンテンツデータ検索指示を入力した場合に開始され、制御部11は、例えば記憶部12に記憶されているコンテンツリストのデータを読み出し、これを表示部16における表示画面上に表示させる(ステップS21)。このコンテンツリストには、複数のコンテンツデータのコンテンツ名等の情報が記述されている。
このような表示状態において、ユーザが入力部21を操作して、所望のコンテンツ名を選択すると、制御部11は、これに応じ(ステップS22:Y)、選択されたコンテンツ名を、ノードID用ハッシュ関数によりハッシュ化してコンテンツIDを求める(ステップS23)。
次いで、制御部11は、DHTを参照し、例えば当該コンテンツIDの最上位桁が一致するノードIDに対応する他のノード1(クエリを送信すべき他のノード1)のIPアドレスを抽出する(ステップS24)。
次いで、制御部11は、抽出したIPアドレスを上記ポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出する(ステップS25)。
次いで、制御部11は、ポート番号として抽出された値が“400h”未満であるか否かを判別し(ステップS26)、“400h”未満でない場合には(ステップS26:N)、上記抽出したIPアドレス及び当該ポート番号を、それぞれ宛先IPアドレス及び宛先ポート番号として、当該他のノード1との間の接続を確立して(ステップS27)、上記ステップS23で求めたコンテンツIDが付加されたクエリを当該他のノード1に送信し(ステップS28)、当該処理を終了する。
一方、ポート番号として抽出された値が“400h”未満である場合には(ステップS26:Y)、当該ポート番号として抽出された値に“4E20h”(16進数:10進数で20000)を加算して(ステップS29)、これをポート番号とし、上記抽出したIPアドレス及び当該ポート番号を、それぞれ宛先IPアドレス及び宛先ポート番号として、当該他のノード1との間の接続を確立し(ステップS27)、上記ステップS23で求めたコンテンツIDが付加されたクエリ(自己のIPアドレスを含む)を当該他のノード1に送信して(ステップS28)、当該処理を終了する。
次に、図6の処理は、ユーザノード1aから送信されてきたクエリが受信された場合に開始され、先ず、制御部11は、自己のノード1が、上記受信したクエリに付加されたコンテンツIDに対応するコンテンツデータのルートノード1bであるか否かを、例えば、自己のノード1のノードIDが当該コンテンツIDと最も近い(例えば、上位桁がより多く一致する)か否かによって判別する(ステップS31)。
自己のノード1がルートノード1bでない場合には(ステップS31:N)、制御部11は、DHTを参照し、例えば当該コンテンツIDの上位数桁目(例えば、上位2桁目)が一致するノードIDに対応する他のノード1(クエリを転送すべき他のノード1)のIPアドレスを抽出する(ステップS32)。
次いで、制御部11は、抽出したIPアドレスを上記ポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出する(ステップS33)。
次いで、制御部11は、ポート番号として抽出された値が“400h”未満であるか否かを判別し(ステップS34)、“400h”未満でない場合には(ステップS34:N)、上記抽出したIPアドレス及び当該ポート番号を、それぞれ宛先IPアドレス及び宛先ポート番号として、当該他のノード1との間の接続を確立して(ステップS35)、上記受信されたクエリを当該他のノード1に送信(転送)し(ステップS36)、当該処理を終了する。
一方、ポート番号として抽出された値が“400h”未満である場合には(ステップS34:Y)、当該ポート番号として抽出された値に“4E20h” (16進数:10進数で20000)を加算して(ステップS37)、これをポート番号とし、上記抽出したIPアドレス及び当該ポート番号を、それぞれ宛先IPアドレス及び宛先ポート番号として、当該他のノード1との間の接続を確立し(ステップS35)、上記受信されたクエリを当該他のノード1に送信(転送)して(ステップS36)、当該処理を終了する。
一方、ステップS31において、自己のノード1がルートノード1bである場合には(ステップS31:Y)、制御部11は、クエリにより要求されたコンテンツデータの所在情報を記憶部12から取得する(ステップS38)。
次いで、制御部11は、上記クエリからユーザノード1aのIPアドレスを取り出し(ステップS39)、当該IPアドレスを上記ポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出する(ステップS40)。
次いで、制御部11は、ポート番号として抽出された値が“400h”未満であるか否かを判別し(ステップS41)、“400h”未満でない場合には(ステップS41:N)、上記取り出したIPアドレス及び当該ポート番号を、それぞれ宛先IPアドレス及び宛先ポート番号として、ユーザノード1aとの間の接続を確立して(ステップS42)、上記ステップS38で取得したコンテンツデータの所在情報を当該ユーザノード1aに送信し(ステップS43)、当該処理を終了する。
一方、ポート番号として抽出された値が“400h”未満である場合には(ステップS41:Y)、当該ポート番号として抽出された値に“4E20h” (16進数:10進数で20000)を加算して(ステップS44)、これをポート番号とし、上記取り出したIPアドレス及び当該ポート番号を、それぞれ宛先IPアドレス及び宛先ポート番号として、ユーザノード1aとの間の接続を確立し(ステップS42)、上記ステップS38で取得したコンテンツデータの所在情報を当該ユーザノード1aに送信し(ステップS43)、当該処理を終了する。
次に、図7の処理は、例えば、ルートノード1cから送信されてきたコンテンツデータの所在情報が受信された場合に開始され、先ず、制御部11は、所在情報のうちからコンテンツホルダ1cのIPアドレスを取得する(ステップS51)。なお、所在情報に複数のコンテンツホルダのIPアドレスが含まれている場合には、その中からランダムに選択された1つのIPアドレス、或いは、ユーザにより入力部21を介して選択された1つのIPアドレスが取得されることになる。
次いで、制御部11は、取得したIPアドレスを上記ポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出する(ステップS52)。
次いで、制御部11は、ポート番号として抽出された値が“400h”未満であるか否かを判別し(ステップS53)、“400h”未満でない場合には(ステップS53:N)、上記取得したIPアドレス及び当該ポート番号を、それぞれ宛先IPアドレス及び宛先ポート番号として、当該コンテンツホルダ1cとの間の接続を確立して(ステップS54)、コンテンツデータの要求情報を当該コンテンツホルダ1cに送信し(ステップS55)、これに応じてコンテンツホルダ1cにより送信されてきたコンテンツデータを受信し(ステップS56)、当該処理を終了する。
一方、ポート番号として抽出された値が“400h”未満である場合には(ステップS53:Y)、当該ポート番号として抽出された値に“4E20h”(16進数:10進数で20000)を加算して(ステップS57)、これをポート番号とし、上記取得したIPアドレス及び当該ポート番号を、それぞれ宛先IPアドレス及び宛先ポート番号として、当該コンテンツホルダ1cとの間の接続を確立して(ステップS54)、コンテンツデータの要求情報を当該コンテンツホルダ1cに送信し(ステップS55)、これに応じてコンテンツホルダ1cから送信されてきたコンテンツデータを受信し(ステップS56)、当該処理を終了する。
(実施形態2)
次に、実施形態2におけるコンテンツ配信システムSの動作について、図8乃至図11等を参照して説明する。なお、実施形態2では、ノードIDをポート番号用ハッシュ関数にかける対象とした場合の実施形態である。
図8は、ノードの制御部11における待ち受けポート番号設定処理を示すフローチャートであり、図9は、ユーザノードの制御部11におけるコンテンツデータ検索処理を示すフローチャートであり、図10は、中継ノード又はルートノードの制御部11におけるコンテンツデータの検索処理を示すフローチャートであり、図11は、ユーザノードの制御部11におけるコンテンツデータの取得処理を示すフローチャートである。
図8の処理は、例えばユーザが入力部21を操作して、オーバーレイネットワーク9への参加要求指示を入力した場合に開始され、制御部11は、例えば自己のノード1に一意に割り当てられている製造番号をノードID用ハッシュ関数によりハッシュ化してノードID(例えば、1CF2 A0B6 F32B 4581h(16進数))を求める(ステップS101)。
次いで、制御部11は、当該ノードIDをポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値(例えば、B356 8976h(16進数))の下位16ビット(16進数で4桁)をポート番号(例えば、8976h)として抽出する(ステップS102)。
次いで、制御部11は、ポート番号として抽出された値が“400h”(16進数)未満であるか否かを判別し(ステップS103)、“400h”未満でない場合には(ステップS103:N)、ステップS105に移行し、“400h”未満である場合には(ステップS103:Y)、当該ポート番号として抽出された値に“4E20h”(16進数)を加算して(ステップS104)、ステップS105に移行する。
ステップS105では、制御部11は、自己のノード1がNAT機能搭載ルータの内側に存在するか否かを判別する。そして、自己がNAT機能搭載ルータの内側に存在しない場合(ステップS105:N)、ステップS106に移行し、自己がNAT機能搭載ルータの内側に存在する場合(ステップS105:Y)、ステップS107に移行する。
ステップS106では、制御部11は、ステップS102若しくはステップS104においてポート番号として得られた値を待ち受けポート番号として設定(開放)し(ステップS106)、ステップS110に移行する。
一方、ステップS107では、制御部11は、ステップS102若しくはステップS104においてポート番号として得られた値が、他のノード1の待ち受けポート番号として既に使用中であるか否かを、NAT機能搭載ルータに問い合わせることによって判別する。つまり、NAT機能搭載ルータの内側にノード1が複数存在し、ステップS102若しくはステップS104においてポート番号として得られた値が、同じNAT機能搭載ルータの内側に存在する他のノード1により既に得られた(ポート番号用ハッシュ関数により)値と同一であるか否かが判別される。これは、NAT機能搭載ルータの内側に存在する複数のノード1のノードIDは互いに異なるが、これらのハッシュ値の下位16ビット(16進数で4桁)の値(或いは、“4E20h” (16進数)が加算された値)が一致する場合が考えられるためである。但し、一致しない場合も十分に考えられるため、実施形態1のようにIPアドレスをポート番号用ハッシュ関数によりハッシュ化してポート番号を得るよりも、ノードIDをポート番号用ハッシュ関数によりハッシュ化してポート番号を得る方が待ち受けポート番号の設定の幅が広がるという利点がある。
そして、ステップS102若しくはステップS104で得られたポート番号が他のノード1により使用中でない場合には(ステップS107:N)、制御部11は、当該ポート番号を待ち受けポート番号として設定(開放)し(ステップS108)、ステップS110に移行する。かかる設定では、NAT機能搭載ルータに対して、当該ノード1の上記ポート番号を待ち受けポート番号として設定する指令がなされ(ポートフォワーディング設定)、これによりNAT機能搭載ルータにおいて当該ノード1の待ち受けポート番号が設定される。
一方、ステップS102若しくはステップS104で得られたポート番号が他のノード1により使用中である場合には(ステップS107:Y)、制御部11は、例えば表示部16における表示画面上に他のノード1によってポート番号が使用中である旨(例えば、「他のノードによってポート番号が使用されています」)等のメッセージを表示させ(ステップS109)、当該処理を終了する。
ステップS110では、制御部11は、既にオーバーレイネットワーク9に参加している任意のノード1のIPアドレスとノードIDを取得する。
次いで、制御部11は、当該取得したノードIDを上記ポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出する(ステップS111)。
次いで、制御部11は、ポート番号として抽出された値が“400h”未満であるか否かを判別し(ステップS112)、“400h”未満でない場合には(ステップS112:N)、上記抽出したIPアドレス及び当該ポート番号を、それぞれ宛先IPアドレス及び宛先ポート番号として、当該任意のノード1との間の接続を確立して(ステップS113)、当該任意のノード1に対してオーバーレイネットワーク9への参加要求を示す参加要求情報(送信元アドレスとして自己のノード1のIPアドレス(NAT機能搭載ルータの内側のノード1の場合、プライベートIPアドレス)及びペイロード中にノードIDが含まれる)を送信し(ステップS114)、当該処理を終了する。
一方、ポート番号として抽出された値が“400h”未満である場合には(ステップS112:Y)、当該ポート番号として抽出された値に“4E20h”(16進数:10進数で20000)を加算して(ステップS115)、これをポート番号とし、上記抽出したIPアドレス及び当該ポート番号を、それぞれ宛先IPアドレス及び宛先ポート番号として、上記任意のノード1との間の接続を確立して(ステップS113)、当該任意のノード1に対して上記参加要求情報を送信して(ステップS114)、当該処理を終了する。
これにより、自己のノード1は、オーバーレイネットワーク9への参加をし、DHTを取得することになり、また、当該ノード1のIPアドレス及びノードIDが他の何れかの1又は複数のノード1におけるDHTに登録されることになる。このように、オーバーレイネットワーク9に参加する全てのノード1は、ポート番号用ハッシュ関数及びノードIDにより生成した値を待ち受けポート番号として開放することになる。
次に、図9の処理は、ユーザノード1aにおけるユーザが例えば入力部21を操作して、コンテンツデータ検索指示を入力した場合に開始される。なお、ステップS121からS123までの処理は、図5に示すステップS21からS23までの処理と同様であるので重複する説明を省略する。
次いで、制御部11は、DHTを参照し、例えば当該コンテンツIDの最上位桁が一致するノードIDとこれに対応する他のノード1のIPアドレスを抽出する(ステップS124)。
次いで、制御部11は、抽出したノードIDを上記ポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出する(ステップS125)。
なお、ステップS126からS129までの処理は、図5に示すステップS26からS29までの処理と同様であるので重複する説明を省略する。
次に、図10の処理は、ユーザノード1aから送信されてきたクエリ(ユーザノード1aのIPアドレス及びノードIDを含む)が受信された場合に開始され、先ず、制御部11は、自己のノード1が、上記受信したクエリに付加されたコンテンツIDに対応するコンテンツデータのルートノード1bであるか否かを、例えば、自己のノード1のノードIDが当該コンテンツIDと最も近い(例えば、上位桁がより多く一致する)か否かによって判別する(ステップS131)。
自己のノード1がルートノード1bでない場合には(ステップS131:N)、制御部11は、DHTを参照し、例えば当該コンテンツIDの上位数桁目(例えば、上位2桁目)が一致するノードIDとこれに対応するIPアドレスを抽出する(ステップS132)。
次いで、制御部11は、抽出したノードIDを上記ポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出する(ステップS133)。
なお、ステップS134からS137までの処理は、図6に示すステップS34からS37までの処理と同様であるので重複する説明を省略する。
一方、ステップS131において、自己のノード1がルートノード1bである場合には(ステップS131:Y)、制御部11は、クエリにより要求されたコンテンツデータの所在情報を記憶部12から取得する(ステップS138)。
次いで、制御部11は、上記クエリからユーザノード1aのノードID及びIPアドレスを取り出し(ステップS139)、当該ノードIDを上記ポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出する(ステップS140)。
なお、ステップS141からS144までの処理は、図6に示すステップS41からS44までの処理と同様であるので重複する説明を省略する。なお、ルートノード1cはコンテンツデータの所在情報と共にノードIDをユーザノード1aに送信することになる。
次に、図11の処理は、例えば、ルートノード1cから送信されてきたコンテンツデータの所在情報とノードIDが受信された場合に開始され、先ず、制御部11は、所在情報のうちからコンテンツホルダ1cのIPアドレスを取得する(ステップS151)。
次いで、制御部11は、受信したノードIDを上記ポート番号用ハッシュ関数によりハッシュ化し、これにより求めたハッシュ値の下位16ビット(16進数で4桁)をポート番号として抽出する(ステップS152)。
なお、ステップS153からS157までの処理は、図7に示すステップS53からS57までの処理と同様であるので重複する説明を省略する。
以上説明したように、上記実施形態によれば、各ノード1の待ち受けポート番号は、各ノード1に一意に割り当てられたIPアドレス又はノードID等が、共通のポート番号用ハッシュ関数によりハッシュ化された値に基づき生成されるので、基本的には夫々異なって分散されることになり、したがって、セキュリティの向上を図ることができるとともに、各ノード1は、ポート番号紹介(照会)サーバに照会することなく、接続相手のノード1の待ち受けポート番号を上記共通のポート番号用ハッシュ関数を用いて(つまり、待ち受けポート番号を設定するノード1と同一のポート番号用ハッシュ関数を用い、同一の演算により)効率良く取得することができる。また、これにより、ポート番号紹介(照会)サーバを設けるコストを削減することもできる。
なお、上記実施形態において、各ノード1が共通に有するポート番号用ハッシュ関数が、定期的(例えば、DHTの更新タイミングで)に更新(変更)されると共に、当該更新されたポート番号用ハッシュ関数を基にポート番号が生成され待ち受けポート番号も定期的に変更される(設定し直される)ように構成しても良い。このように構成すれば、より一層、セキュリティの向上を図ることができる。
例えば、夫々のノード1の記憶部12に予め複数(互いに異なる複数種類、例えば12種類)のポート番号用ハッシュ関数(例えば、1〜12番までのポート番号用ハッシュ関数)を記憶させておき、夫々のノード1における制御部11は、一定時間毎に記憶部12に記憶された複数のポート番号用ハッシュ関数のうちから一のポート番号用ハッシュ関数を取得(例えば、毎月1日の0時に、その月に対応した番号を持つポート番号用ハッシュ関数を取得)し、これを用いて第1ポート番号を生成し、当該生成された第1ポート番号を待ち受けポート番号として設定し直す。そして、夫々のノード装置における制御部11は、上記待ち受けポート番号の設定し直しに同期して、用いるべきポート番号用ハッシュ関数を変更、つまり、他のノード1に接続する際に用いるポート番号用ハッシュ関数を適宜、記憶部12から取得(例えば、その月に対応した番号を持つポート番号用ハッシュ関数を取得)してこれを用いて宛先となる待ち受けポート番号を生成するように構成する。
また、ポート番号用ハッシュ関数は、ネットワーク3に接続された所定のノード、或いはサーバから、当該ネットワーク3を介して夫々のノード1に対して定期的に(例えば、月毎に)配信(配布)されて記憶部12に記憶(例えば、以前の古いポート番号用ハッシュ関数を配信された、新しいポート番号用ハッシュ関数で上書き更新)されるようにし、夫々のノード1における制御部11は、配信されたポート番号用ハッシュ関数(例えば、当該ハッシュ関数には、更新日時を示す情報も付加されている)を取得し(例えば、更新日時になったら)、これを用いて第1ポート番号を生成し、当該生成された第1ポート番号を待ち受けポート番号として設定し直す。そして、夫々のノード装置における制御部11は、上記待ち受けポート番号の設定し直しに同期して、用いるべきポート番号用ハッシュ関数を変更、つまり、他のノード1に接続する際に用いるポート番号用ハッシュ関数を記憶部12から取得してこれを用いて宛先となる待ち受けポート番号を生成するように構成する。
なお、このようなポート番号用ハッシュ関数の定期的な更新(変更)は、オーバーレイネットワーク9に参加している全てのノード1において同期して(同一タイミングで)行われる必要があることから、全てノード1は、日付及び時刻を正確に認識している必要があるため、例えば、NTP(Network Time Protocol)を用いて正確な日付を取得するように構成される。これによりポート番号用ハッシュ関数の更新タイミングを正確にすることができる。
また、上記実施形態においては、IPアドレス等をポート番号用ハッシュ関数にかけ、得られた値の16進数で下4桁を抽出し、これに基づき待ち受けポート番号を設定したが、これに限定されるものではなく、例えば、IPアドレス等をポート番号用ハッシュ関数にかけ、得られた値の10進数で10進数の下4桁を抽出し、抽出された値に例えば10000〜60000を加えて、待ち受けポート番号としても良い(但し、1023以下又は65536以上になった場合、1024以上65535以下になるように調整される)。
また、上記ステップS9,S18,S29,S37,S44,S57,S104,S115,S129,S137,S144,及びS157全てにおいて、一定の値である“4E20h”を加算していたが、上記各ステップにおいて共通の値であれば、他の値であっても良いし、加算でなくてもよい。
例えば、ポート番号用ハッシュ関数から求められた値が1024(10進数)未満の値の場合は、以下のような演算によっても求めること可能である。
(1)65535から、求められた値(1024未満の値)を減算
(2)1024以上の値(共通の値)と、求められた値(1024未満の値)とのビット単位での排他的論理和
(3)求められた値(1024未満の値)の補数(全ビットの反転した値)
また、上記実施形態においては、DHTを利用したアルゴリズムによって構築されたオーバーレイネットワーク9を前提として説明したが、本発明はこれに限定されるものではなく、その他のコンピュータネットワークシステムに対しても適用可能である。
本実施形態に係るコンテンツ配信システムにおける各ノード装置の接続態様の一例を示す図である。 DHTのノードID空間において、ユーザノードが所在情報を取得する場合におけるDHTルーティングの一例を示す図である。 ノード1の概要構成例を示す図である。 実施形態1において、ノードの制御部11における待ち受けポート番号設定処理を示すフローチャートである。 実施形態1において、ユーザノードの制御部11におけるコンテンツデータ検索処理を示すフローチャートである。 実施形態1において、中継ノード又はルートノードの制御部11におけるコンテンツデータの検索処理を示すフローチャートである。 実施形態1において、ユーザノードの制御部11におけるコンテンツデータの取得処理を示すフローチャートである。 実施形態2において、ノードの制御部11における待ち受けポート番号設定処理を示すフローチャートである。 実施形態2において、ユーザノードの制御部11におけるコンテンツデータ検索処理を示すフローチャートである。 実施形態2において、中継ノード又はルートノードの制御部11におけるコンテンツデータの検索処理を示すフローチャートである。 実施形態2において、ユーザノードの制御部11におけるコンテンツデータの取得処理を示すフローチャートである。
符号の説明
1 ノード
8 ネットワーク
9 オーバーレイネットワーク
11 制御部
12 記憶部
13 バッファメモリ
14 デコーダ部
15 映像処理部
16 表示部
17 音声処理部
18 スピーカ
20 通信部
21 入力部
22 バス

Claims (10)

  1. ネットワークを介して互いに接続可能な複数のノード装置を備えたネットワークシステムにおいて、
    夫々の前記ノード装置は、
    自己又は自己が前記ネットワークに接続するために必要な中継機器に一意に割り当てられた識別情報、及び当該ネットワークシステムにおいて共通の関数を記憶する記憶手段と、
    前記共通の関数、自己又は前記中継機器に割り当てられた前記識別情報とを用いて、第1ポート番号を生成する第1ポート番号生成手段と、
    前記生成された第1ポート番号を待ち受けポート番号として設定する待ち受けポート設定手段と、
    他の前記ノード装置に接続する場合に、当該他のノード装置又は当該他のノード装置が前記ネットワークに接続するために必要な中継機器に一意に割り当てられた識別情報を取得する識別情報取得手段と、
    前記共通の関数、前記取得された識別情報とを用いて、第2ポート番号を生成する第2ポート番号生成手段と、
    前記生成された第2ポート番号に基づいて前記他のノード装置との間の接続を確立する接続確立手段と、
    を備えることを特徴とするネットワークシステム。
  2. 請求項1に記載のネットワークシステムにおいて、
    前記第1ポート番号生成手段及び前記第2ポート番号生成手段は、前記共通の関数を用いて生成された前記ポート番号がウェルノウンポート番号と重複する場合には、前記ウェルノウンポート番号と重複しなくなるように、当該生成されたポート番号に対して所定の演算を施した結果の番号を前記ポート番号とすることを特徴とするネットワークシステム。
  3. 請求項1に記載のネットワークシステムにおいて、
    前記夫々のノード装置における共通の関数は、定期的に更新され、前記夫々のノード装置における待ち受けポート番号が定期的に設定し直されることを特徴とするネットワークシステム。
  4. 請求項1に記載のネットワークシステムにおいて、
    前記夫々のノード装置の記憶手段には、複数の前記共通の関数が予め記憶されており、
    前記夫々のノード装置における前記第1ポート番号生成手段は、一定時間毎に前記記憶手段に記憶された複数の共通の関数のうちから一の共通の関数を取得し、これを用いて前記第1ポート番号を生成し、前記待ち受けポート設定手段は、当該生成された第1ポート番号を前記待ち受けポート番号として設定し直し、
    前記夫々のノード装置における前記第2ポート番号生成手段は、前記待ち受けポート設定手段による前記待ち受けポート番号の設定し直しに同期して、用いるべき前記共通の関数を変更することを特徴とするネットワークシステム。
  5. 請求項1に記載のネットワークシステムにおいて、
    前記共通の関数は、前記ネットワークを介して前記夫々のノード装置に対して定期的に配信されて前記記憶手段に記憶され、
    前記夫々のノード装置における前記第1ポート番号生成手段は、前記配信された共通の関数を用いて前記第1ポート番号を生成し、前記待ち受けポート設定手段は、当該生成された第1ポート番号を前記待ち受けポート番号として設定し直し、
    前記夫々のノード装置における前記第2ポート番号生成手段は、前記待ち受けポート設定手段による前記待ち受けポート番号の設定し直しに同期して、用いるべき前記共通の関数を変更することを特徴とするネットワークシステム。
  6. 請求項1乃至5の何れか一項に記載のネットワークシステムにおいて、
    前記共通の関数は、ハッシュ関数であることを特徴とするネットワークシステム。
  7. 請求項1乃至6の何れか一項に記載のネットワークシステムにおいて、
    前記識別情報は、IPアドレス、又はノードIDであることを特徴とするネットワークシステム。
  8. ネットワークを介して互いに接続可能な複数のノード装置を備えたネットワークシステムにおけるノード装置であって、
    自己又は自己が前記ネットワークに接続するために必要な中継機器に一意に割り当てられた識別情報、及び当該ネットワークシステムにおいて共通の関数を記憶する記憶手段と、
    前記共通の関数、自己又は前記中継機器に割り当てられた前記識別情報とを用いて、第1ポート番号を生成する第1ポート番号生成手段と、
    前記生成された第1ポート番号を待ち受けポート番号として設定する待ち受けポート設定手段と、
    他の前記ノード装置に接続する場合に、当該他のノード装置又は当該他のノード装置が前記ネットワークに接続するために必要な中継機器に一意に割り当てられた識別情報を取得する識別情報取得手段と、
    前記共通の関数、前記取得された識別情報とを用いて、第2ポート番号を生成する第2ポート番号生成手段と、
    前記生成された第2ポート番号に基づいて前記他のノード装置との間の接続を確立する接続確立手段と、
    を備えることを特徴とするノード装置。
  9. コンピュータを、請求項に記載のノード装置として機能させることを特徴とするプログラム。
  10. ネットワークを介して互いに接続可能な複数のノード装置を備えたネットワークシステムにおける接続確立方法であって、
    夫々の前記ノード装置が、自己又は自己が前記ネットワークに接続するために必要な中継機器に一意に割り当てられた識別情報、及び当該ネットワークシステムにおいて共通の関数を記憶する工程と、
    前記夫々のノード装置が、前記共通の関数、自己又は前記中継機器に割り当てられた前記識別情報とを用いて、第1ポート番号を生成する工程と、
    前記夫々のノード装置が、前記生成された第1ポート番号を待ち受けポート番号として設定する工程と、
    他の前記ノード装置に接続する場合に、当該他のノード装置又は当該他のノード装置が前記ネットワークに接続するために必要な中継機器に一意に割り当てられた識別情報を取得する工程と、
    前記1のノード装置が、前記共通の関数、前記取得された識別情報とを用いて、第2ポート番号を生成する工程と、
    前記1のノード装置が、前記生成された第2ポート番号に基づいて前記他のノード装置との間の接続を確立する工程と、
    を備えることを特徴とする接続確立方法。
JP2005136890A 2005-05-10 2005-05-10 ネットワークシステム、接続確立方法、及びノード装置等 Expired - Fee Related JP4631531B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005136890A JP4631531B2 (ja) 2005-05-10 2005-05-10 ネットワークシステム、接続確立方法、及びノード装置等
PCT/JP2006/307714 WO2006120831A1 (ja) 2005-05-10 2006-04-12 ネットワークシステム、接続確立方法、及びノード装置等

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005136890A JP4631531B2 (ja) 2005-05-10 2005-05-10 ネットワークシステム、接続確立方法、及びノード装置等

Publications (2)

Publication Number Publication Date
JP2006319384A JP2006319384A (ja) 2006-11-24
JP4631531B2 true JP4631531B2 (ja) 2011-02-16

Family

ID=37396346

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005136890A Expired - Fee Related JP4631531B2 (ja) 2005-05-10 2005-05-10 ネットワークシステム、接続確立方法、及びノード装置等

Country Status (2)

Country Link
JP (1) JP4631531B2 (ja)
WO (1) WO2006120831A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9725422B2 (en) 2014-03-04 2017-08-08 Mitsui Chemicals, Inc. Isocyanurate composition

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8693392B2 (en) * 2007-02-21 2014-04-08 Avaya Canada Corp. Peer-to-peer communication system and method
JP5163910B2 (ja) * 2007-06-15 2013-03-13 日本電気株式会社 アドレス変換装置及びアドレス変換方法
JP4770804B2 (ja) * 2007-07-03 2011-09-14 ブラザー工業株式会社 オーバレイネットワーク型通信システム、オーバレイネットワーク型ノード装置およびプログラム
JP5684671B2 (ja) * 2011-08-05 2015-03-18 日本電信電話株式会社 条件検索データ保存方法、条件検索データベースクラスタシステム、ディスパッチャ、およびプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004265122A (ja) * 2003-02-28 2004-09-24 Nec Engineering Ltd 非公開通信におけるセキュリティ確保方法および方式
JP2005182250A (ja) * 2003-12-17 2005-07-07 Hitachi Ulsi Systems Co Ltd コンピュータサーバ装置
JP2006094122A (ja) * 2004-09-24 2006-04-06 Matsushita Electric Ind Co Ltd 構内交換機、ip内線端末及び構内交換機システム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004265122A (ja) * 2003-02-28 2004-09-24 Nec Engineering Ltd 非公開通信におけるセキュリティ確保方法および方式
JP2005182250A (ja) * 2003-12-17 2005-07-07 Hitachi Ulsi Systems Co Ltd コンピュータサーバ装置
JP2006094122A (ja) * 2004-09-24 2006-04-06 Matsushita Electric Ind Co Ltd 構内交換機、ip内線端末及び構内交換機システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9725422B2 (en) 2014-03-04 2017-08-08 Mitsui Chemicals, Inc. Isocyanurate composition

Also Published As

Publication number Publication date
WO2006120831A1 (ja) 2006-11-16
JP2006319384A (ja) 2006-11-24

Similar Documents

Publication Publication Date Title
JP4747733B2 (ja) ノード装置、共用情報更新処理プログラム、共用情報更新方法、及び情報共有システム
US8321586B2 (en) Distributed storage system, node device, recording medium in which node processing program is recorded, and address information change notifying method
US20080235321A1 (en) Distributed contents storing system, copied data acquiring method, node device, and program processed in node
US20090116406A1 (en) Node device, memory medium saving computer program, information delivery system, and network participation method
JP2007280303A (ja) 情報通信システム、コンテンツカタログ情報配信方法、及びノード装置等
JP2007053662A (ja) 情報通信システム、情報通信方法、情報通信システムに含まれるノード装置および情報処理プログラム
JP2007280304A (ja) 情報通信システム、コンテンツカタログ情報検索方法、及びノード装置等
JP4631531B2 (ja) ネットワークシステム、接続確立方法、及びノード装置等
US20090041035A1 (en) Information communication system, information communication method, node device included in information communication system and recording medium recording information processing program
WO2006103800A1 (ja) 情報処理装置及び蓄積装置、情報処理方法及び蓄積方法並びに情報処理用プログラム及び蓄積装置用プログラム
US8099506B2 (en) Communication system, node device, node process program and a message transmitting and receiving method
JP2007058597A (ja) 情報配信システム、情報配信方法、情報配信システムに含まれるノード装置および情報処理プログラム
JP4655986B2 (ja) ノード装置、記憶制御プログラム及び情報記憶方法
US20110246674A1 (en) Information communication system, first information processing device, method for processing information, and computer readable storage medium
JP2006101277A (ja) 情報通信システム、ノード装置、及びオーバーレイネットワーク形成方法等
JP4877107B2 (ja) 情報配信システムにおける端末装置及び情報処理プログラム、並びに端末装置の情報処理方法
JP5212292B2 (ja) 情報通信システム、ノード装置、ノード装置確認方法及びプログラム
US20080240138A1 (en) Tree type broadcast system, connection target determination method, connection management device, connection management process program, and the like
US8312068B2 (en) Node device, information communication system, method for managing content data, and computer readable medium
JP4548271B2 (ja) 情報通信システム、情報通信方法、ノード装置、及びコンピュータプログラム
JP2009232272A (ja) コンテンツ分散保存システム、コンテンツ再生方法、ノード装置、管理装置、ノード処理プログラム、及び管理処理プログラム
JP2011008657A (ja) コンテンツ配信システム、ノード装置、コンテンツ配信方法及びノードプログラム
JP6369264B2 (ja) 通信システム及び情報処理装置
JP4947106B2 (ja) 情報通信システム、情報通信方法、情報通信システムに含まれるノード装置、情報処理プログラムおよびノード装置のプログラム
JP2010238162A (ja) コンテンツ配信システム、ノード装置、コンテンツ配信方法及びコンテンツ取得処理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080430

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20080728

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100629

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100830

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4631531

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees