JP5607252B2 - 処理方法、代理処理エージェント、dhtクライアントノードのルーティングテーブルを埋めるシステムおよび方法、ルータ、ならびにdhtクライアントノード - Google Patents

処理方法、代理処理エージェント、dhtクライアントノードのルーティングテーブルを埋めるシステムおよび方法、ルータ、ならびにdhtクライアントノード Download PDF

Info

Publication number
JP5607252B2
JP5607252B2 JP2013524444A JP2013524444A JP5607252B2 JP 5607252 B2 JP5607252 B2 JP 5607252B2 JP 2013524444 A JP2013524444 A JP 2013524444A JP 2013524444 A JP2013524444 A JP 2013524444A JP 5607252 B2 JP5607252 B2 JP 5607252B2
Authority
JP
Japan
Prior art keywords
dht
node
client
proxy
request message
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
JP2013524444A
Other languages
English (en)
Other versions
JP2013537765A (ja
Inventor
フアン・アケレ,ミヘル
ミグデイソグル,ムラツトウ・ブラク
シヤルマ,プラナブ
Original Assignee
アルカテル−ルーセント
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 アルカテル−ルーセント filed Critical アルカテル−ルーセント
Publication of JP2013537765A publication Critical patent/JP2013537765A/ja
Application granted granted Critical
Publication of JP5607252B2 publication Critical patent/JP5607252B2/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/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • 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/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • 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/1068Discovery involving direct consultation or announcement among potential requesting and potential source peers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、一般には、分散ハッシュテーブル(DHT)クライアントノードのルーティングテーブルを埋めることに関連するシステムおよび方法の分野に関し、より詳細には、処理方法、代理処理エージェント、ルーティングテーブルを埋めるシステムおよび方法、ルータ、ならびにDHTクライアントノードに関する。
分散ハッシュテーブル(DHT)は高度に分散したノード間の通信に適する。ノードが分散していると、より低費用の通信が可能なノードが利用できる可能性があるにも関わらず、実際に関係するノードに明示的に知られていないために、しばしば結果的にノード間の通信が高費用になることがある。
現行では、DHTノードは、そのDHTノードが外部ノードに送信するDHT要求メッセージ(例えばDHTノード発見またはピア取得要求メッセージ)に対して受信するDHT応答メッセージに見つかるノード/ピアから、および/または、外部ノードから受信するDHT要求メッセージに見つかるノードから、および/または、BitTorrentトラッカー(tracker)に送信するBitTorrentアナウンス要求メッセージに対して受信するBitTorrent応答メッセージに見つかるピア等から、DHTネットワーク内の利用可能な外部ノードについてのビューを構築する。生成されたビューは、半恒久的にDHTノードのDHTルーティングテーブルに格納される。一旦DHTノードのルーティングテーブルに外部ノードが入れられると、通例は、少なくとも、その外部ノードがDHT要求メッセージに応答しなくなるまで、またはDHTノードが切断されるまでテーブル内にあり、その時点でDHTノードはDHTルーティングテーブルを更新(clean)することができる。DHTノードは、自身のDHTルーティングテーブルにある外部ノードのみを使用してDHTネットワーク内でさらに通信するため、DHTネットワークで実際に通信を行うノードについての制御はなく、結果として、例えば「近隣」ノードが利用可能である場合に「遠方」のノードを使用した必要以上に高費用の通信になり、大西洋をまたぐリンクや複数回のIPホップが必要になってしまう。
本発明の目的は、特にBitTorrentを適用する場合にDHTノード間の通信を向上させる、処理方法、代理処理エージェント、ルーティングテーブルを埋めるシステムおよび方法、ルータ、ならびにDHTクライアントノードを提供することである。
一実施形態によれば、分散ハッシュテーブル(DHT)クライアントが自身のDHTルーティングテーブルを埋めることを可能にするために、DHTクライアントからのDHTメッセージに応答するための処理方法が提供される。この方法は、複数の所定のノードを有する代理処理エージェントで行われる複数のステップを含み、各ノードはIPアドレスおよびポート番号を有する。最初のステップでは、それらノードの1つがDHTクライアントからDHT要求メッセージを受信する。次に、代理処理エージェントが、少なくとも1つのノード識別子を生成し、各ノード識別子をIPアドレスおよびポート番号に関連付ける。各IPアドレス/ポート番号の組み合わせは、代理処理エージェントのノードの1つに対応する。次に、前記少なくとも1つのノード識別子とそれに関連付けられたIPアドレスおよびポートを含んでいるDHT応答メッセージがDHTクライアントに送信される。通例は、代理処理エージェントが、生成されたノード識別子とそれに関連付けられたIPアドレスおよびポートを各DHTクライアントとの関連で記憶するデータベースを管理する。
この方法により、DHTクライアントノードのルーティングテーブルを制御することが可能になる。このような方法の実施形態は、例えば、ISPネットワーク上に存在するDHTノードが、通信費用が低いことが分かっている所定のノードで自身のルーティングテーブルを埋めることを保証することができる。
好ましい実施形態によれば、DHT要求メッセージは、関連付けられたDHT応答メッセージが少なくとも1つのノードを含むメッセージである。DHT要求メッセージは例えば次のいずれか1つである:DHTノード発見要求メッセージ、DHTping要求メッセージ、DHTピア取得要求メッセージ、DHTアナウンス要求メッセージ等。
本発明の処理方法の一実施形態によれば、特定のDHTクライアントから受信される最初のメッセージは、通例は、ブートストラップサーバを宛先としルータによって代理処理エージェントに転送された最初のDHT要求メッセージである。そして、生成ステップは、通例、ノード空間の第1のバケット(bucket)を埋めるための第1のノード識別子の第1のグループ、通例は8つのノード識別子を生成するステップを含む。本発明の処理方法の一実施形態によれば、同じDHTクライアントから受信されるさらなるDHT要求メッセージは、前記第1のグループの第1のノード識別子に関連付けられたアドレス/ポートを持つノードを宛先とする。そして、生成ステップは、さらに他のバケットを埋めるためのさらなるノード識別子のさらなるグループを生成するステップを含む。通例はそのDHTクライアントのルーティングテーブルを常に十分に埋めておくために、同じDHTクライアントからさらにDHT要求メッセージが受信される可能性があることが理解されよう。
好ましい実施形態によれば、受信されたDHTノード発見要求メッセージごとに、複数のノード識別子、通例は8つのノード識別子が生成される。この実施形態は、大きさが2160のノード空間に好ましく、その場合バケットは8つのノード識別子を保持している時に満杯とみなされる。
好ましい実施形態によれば、少なくとも1つのノード識別子は、DHTクライアントノードのノード識別子を考慮して、所定のパターンに従って生成される。好ましくは、受信されたDHT要求メッセージごとに、複数のノード識別子(例えば8つのノード識別子)が代理処理エージェントで生成される。さらに好ましくは、パターンは、前記生成された複数のノード識別子のすべてが同じバケットにあり、DHTクライアントのノード識別子が前記バケットに存在しないようにするパターンである。例えばルーティングテーブルが大きさ2160のノード空間を使用する場合、パターンは、ノード空間を2つのバケットに分割し、DHT識別子を含んでいない方のバケットに所定数、通例は8つの生成されたノード識別子を入れ、バケットサイズが所定の数、通例は8になるまで、前記分割およびテーブルを埋めるステップをその他のバケットに繰り返し、前記最後のバケットに最後に生成されたノード識別子を入れるものとすることができる。
可能な実施形態によれば、この方法はさらに、代理処理エージェントの前記複数のノードのうち1つのノードで、DHTクライアントから、さらなるDHT要求メッセージ(例えばDHTpingまたは反復されるノード発見要求メッセージ)を受信するステップを含む。そのDHT要求メッセージに応答して、前記DHTクライアントについて、前記ノードに関連付けられた格納されたノード識別子が検索され、前記検索された格納ノード識別子を含むDHT応答メッセージがDHTクライアントに送信される。
本発明はさらに、分散ハッシュテーブル(DHT)クライアントが自身のDHTルーティングテーブルを埋めることを可能にするために、DHTクライアントからのDHTメッセージに応答する代理処理エージェントに関する。このエージェントは、DHTクライアントからDHT要求メッセージを受信することが可能な複数のノードと、少なくとも1つのノード識別子を生成し、各ノード識別子にIPアドレスおよびポート番号を関連付ける処理手段と、前記DHT要求メッセージに応答してDHT応答メッセージを作成し、DHTクライアントに送信する手段であって、前記DHT応答メッセージは、少なくとも1つのノード識別子とそれに関連付けられたIPアドレスおよびポートを含む、手段と、少なくとも1つの生成されたノード識別子とそれに関連付けられたIPアドレスおよびポートを、前記DHTクライアントとの関連で記憶する記憶手段とを備える。
好ましい実施形態によれば、処理手段は、DHTクライアントのノード識別子を考慮して、所定のパターンに従ってノード識別子のグループを生成するように構成される。可能なパターンについては、上記の方法および下記の図の説明で与える例を参照されたい。
本発明はさらに、分散ハッシュテーブル(DHT)ブートストラップサーバを備えるDHTインフラストラクチャ内のDHTクライアントノードのルーティングテーブルを埋めるためのシステムに関する。このシステムは、複数の代理ノードを有する代理処理エージェントと、ブートストラップサーバを宛先とするパケットを前記代理処理エージェントに転送するように構成された複数のルータとを備える。そのようにして、代理処理エージェントは、ブートストラップサーバを宛先とするDHTクライアントからのDHT要求メッセージに応答することができる。したがって、返されるノードは、代理処理エージェントの複数のノードの中から選ぶことができ、その他の点では分散型のDHTインフラストラクチャに一定程度の集中化をもたらす。
本発明は、DHTクライアントノードのネットワーク内で使用するためのルータにも関し、このルータは、DHTブートストラップサーバを宛先とするパケットを、前記代理処理エージェントの前記複数の代理ノードのうち第1のノードに転送するように構成される。好ましくは、ルータは、DHTブートストラップサーバに関連付けられた特定のIPアドレス/UDPポートを行き先とするパケットを、代わりに、前記複数の代理ノードのうち第1のノードに関連付けられた第1のIPアドレス/UDPポートに送ることを指示したポリシー規則を保持する。
本発明はさらに、分散ハッシュテーブル(DHT)インフラストラクチャ内のDHTクライアントノードのルーティングテーブルを埋める方法に関し:
− ブートストラップサーバを宛先とするDHT要求メッセージを、前記少なくとも1つのルータのルータを通じて送信するステップと、
− 前記DHT要求メッセージに応答して、ノード識別子とそれに関連付けられたIPアドレスおよびポートをノードごとに含むノードグループを含んだDHT応答メッセージを、前記代理処理エージェントから受信するステップであって、前記グループは、代理処理エージェントで好ましくは所定のパターンに従って作成および管理される、ステップと、
− 前記ノード識別子のグループと、それに関連付けられたIPアドレスおよびポートをルーティングテーブルに格納するステップと
がDHTクライアントノードで行われる。
好ましい実施形態によれば、方法はさらに、前記グループのうち少なくとも1つのノードにさらにDHT要求メッセージを送信するステップと、ノードごとにノード識別子とそれに関連付けられたIPアドレスおよびポートを含む少なくとも1つのさらなるノードグループを前記少なくとも1つのノードから受信するステップがDHTクライアントノードで行われる。このさらなるグループは、上記で説明したように、代理処理エージェントで好ましくは所定のパターンに従って作成および管理されたものである。クライアントノードで受信されると、さらなるノード識別子のグループとそれらに関連付けられたIPアドレスおよびポートがそのノードのルーティングテーブルに格納される。通例は、ルーティングテーブルが十分に埋まるまで、各さらなるノードグループのうち複数のノードについて送信および受信ステップが繰り返される。
本発明の別の態様によれば、ルーティングテーブルを記憶した記憶手段を有するDHTクライアントノードが提供され、前記ルーティングテーブルは、上記開示の方法に従って取得されたノード識別子のグループを含む。
本発明の別の態様によれば、生成される複数のノード識別子のすべてが同じバケットにあり、DHTクライアントのノード識別子が前記バケットに存在しないようにするパターンを使用して、受信されたDHT要求メッセージごとに複数のノード識別子を生成するためのコンピュータプログラムが提供される。さらに別の態様によれば、そのようなコンピュータプログラム製品を記憶するコンピュータプログラム製品が提供される。
本発明の好ましい態様によれば、代理処理エージェントのノード(代理ノードとも呼ぶ)は、そのノードへの到達を可能とするノード識別番号、IPアドレスおよびUDPポートで特徴付けられるISPネットワークの所定のノードである。そして、上記開示のDHTクライアントとルータは、同じISPネットワーク内に置かれる。
本発明の一態様によれば、DHTノードのルーティングテーブル上で主要な制御を掌握することを介して、そのDHTノードが発信するDHT要求メッセージに対して一定程度の集中化がもたらされる。
好ましくは、所定の代理ノードのノード識別子は、代理ノードのセットで、ISPネットワーク内のどのDHTクライアントノードのルーティングテーブルも十分に埋まることが保証されるように生成される。
添付図面を使用して、本発明の現時点で好ましい非限定的な例示的実施形態を説明する。添付図面と併せて以下の詳細な説明を読むことにより、本発明の上記およびその他の利点、特徴、および目的がより明らかになり、本発明をより良く理解することができよう。
DHTノードのルーティングテーブルを埋める従来技術の方法を説明する図である。 本発明の方法およびシステムの好ましい実施形態を説明する図である。 本発明の一実施形態における、DHTクライアントXと代理ノード処理システムの間で交換されるメッセージと、DHTクライアントXと代理ノード処理システムで行われる、メッセージ間でのステップを説明する図である。 本発明の一実施形態における、DHTクライアントXと代理ノード処理システムの間で交換されるメッセージと、DHTクライアントXと代理ノード処理システムで行われる、メッセージ間でのステップを説明する図である。 本発明の代理ノード処理システムの一実施形態で管理されるデータベースの一例の図である。 本発明のシステムの第2の実施形態を説明する図である。
従来技術によれば、DHTクライアント100が最初にDHTネットワークに参入しようとする時、DHTクライアント100は、ブートストラップ処理を行う必要がある(図1A参照)。DHTクライアント100はまずDHTノード発見要求メッセージ101a(BitTorrentクライアントでハードコーディングされる)をブートストラップサーバ106に送信して、初期構成情報を取得する。この例では、DHTクライアントは8つの外部ノード102(ノード2−9)についての詳細を受け取る。用語「外部(foreign)」とは、クライアントノード100のISPネットワーク(図示せず)の外側にあるノードを意味する。従来技術の他の例では、ノード102の1つがクライアントのISPネットワーク内にある場合もあるが、一般に、それほど頻繁に生じるものではないことに留意されたい。ノード102の詳細は、通例、ノードID、IPアドレスおよびUDPポートを含む。次いで、DHTクライアント100は、受信したそれら外部ノード102の詳細をルーティングテーブルに入れ、ルーティングテーブルをさらに埋めるための他のノード102の詳細を得るためにDHT要求メッセージ103aをそれらのノード102に送信する。
本発明のシステムおよび方法の実施形態を図1Bに示す。DHTクライアント100が最初にDHTネットワークに参入しようとする時には、ブートストラップ処理を行う必要がある。すなわち、DHTクライアント100はまずDHTノード発見要求メッセージ101b(BitTorrentクライアントでハードコーディングされる)をブートストラップサーバ106に送信して初期構成情報を得る。しかし、本発明の実施形態によれば、このDHTノード発見要求メッセージ101bは、ルータ107で第1の「人工的に作成された」代理ノード、この場合は、ルータ107のISPドメイン内にある代理処理エージェント108の代理ノード1に転送される。この第1の代理ノードは、あらかじめ設定された一意のIPアドレス|UDPポートの組み合わせIP_1|p_1を有する。この転送を実現するために、ルータは、ブートストラップノード106のIPアドレス|UDPポートの組み合わせを宛先とする受信パケットを、IPアドレス|UDPポートの組み合わせIP_1|p_1に送るように構成される。
代理処理エージェント108は、通例は、複数の代理ノード動作を遂行することが可能なサーバマシンのセットとして実施される。より詳細には、代理処理エージェント108は、DHTクライアントからDHTメッセージを受信するように構成される。このメッセージは、ルータ107により転送された初期DHTノード発見要求メッセージ101b、またはさらなるDHT要求メッセージ103bである(下記を参照されたい)。そのようなメッセージに対して、代理処理エージェント108は、いくつかのノード識別子、通例は8つのノード識別子を生成する。この生成は、DHT要求メッセージ送信元のクライアントノード100のノード識別子、およびそのクライアントに対してすでに生成されたノード識別子を考慮に入れ、所定のパターンに従って行うことが好ましい(下記を参照されたい)。各ノード識別子は、代理ノード105を表す。さらに、エージェントは、各ノード識別子にIPアドレスおよびポート番号を関連付け、生成されたノード識別子とそれに関連付けられたIPアドレスおよびポートを含むDHT応答メッセージをDHTクライアントに送信することができる。また、代理処理エージェント108は、生成された数のノード識別子とそれに関連付けられたIPアドレスおよびポートをクライアント100ごとに記憶する記憶手段を備える。
図1Bの例では、初期DHTノード発見要求メッセージ101bを受け取った第1の代理ノード1は、8つの代理ノード、代理ノード2−代理ノード9を返す。それら8つの代理ノード105は、所定のパターンに従って生成されたノード識別子と、それに関連付けられた、事前に設定されたIPアドレス|UDPポートの組み合わせIP_x|p_yとを有する。xは、2048<y<65636の場合は1でよく、組み合わせの数がそれより多い場合は、xは2、3等とすることができる。次に、DHTノード100は、新たに返された代理ノード105に対してさらに連続したDHTノード発見要求メッセージ103bを発信し、それに対して代理ノード105は他の代理ノードを返す。それらの他の代理ノードも、所定のパターンに従って生成されたノード識別子と、それに対応する事前に設定されたIPアドレス|UDPポートの組み合わせIP_x|p_y)とを有する。
次いで、本発明のシステムおよび方法のより詳細な実施形態を図2を参照して説明する。この実施形態によれば、代理処理エージェントは、DHTクライアントノードのルーティングテーブルの十分な数の「バケット」が完全に埋められることが保証されるように、代理ノードのノード識別子(ノードID)を生成する。ここに示す例では、パターンは、要求元のDHTノード200自身のノードIDに応じて決まり、ノードIDは、DHTノードがDHTノード発見要求メッセージで通知する。このパターンは、DHTノード200ごとに異なるが、DHTノード200自身のノードID IDXを基準として決まる。図2を参照すると、ノードID IDXを有するDHTクライアント200が、ルータ207を介してブートストラップサーバ106に初期DHTノード発見要求メッセージ210を送信し、そのDHTノード発見要求メッセージは、IPアドレスIP_1およびUDPポートP_1を有する代理ノードに転送され、代理処理エージェント208に受信される(矢印211を参照されたい)。便宜上ポート番号は1から番号を振っているが、実際には番号2048から始まることに留意されたい。そのDHTノード発見要求メッセージに応答して、ステップ212で、エージェント208は、ノードIDがID2−ID9の8つの代理ノードを作成する。それらのノードIDは次のパターンを使用して生成される。全ノード空間(この場合は0−2160−1の範囲の値を有するノード空間)を等しい大きさの2つの「バケット」に分割し、自ノードのID IDXがないバケット内で8つの適切なノードIDを計算する。この例では、IDXが2番目のバケットにあると仮定し、ID2−ID9に値0−7が与えられる(ステップ214も参照されたい)。ステップ213で、エージェント208からDHTクライアント200に、値0−7を持つノードIDとそれに関連付けられたIPアドレス|UDPポートの組み合わせを含むDHT応答メッセージが送信される。ステップ214で、DHTクライアント200が、自身のノード空間にID2−9を入れ、ノード空間を2つのバケットに分割する。1番目のバケットは8つのノードIDを含んでいるので満杯とみなされる。ステップ215で、ルーティングテーブルにノードID ID2−9とそれらに関連付けられたIP|UDPの組み合わせを入れる。ステップ213および214は従来技術のDHTクライアントによって行うことができることに留意されたい。一方、エージェント側における8つの代理ノードの生成と、エージェント側でノードIDを選択する方式は、本発明のこの実施形態に特有である。
次のステップで、クライアントノード200は、さらなるDHTノード発見要求メッセージをノードID2−9に送信する。第1のそのようなDHTノード発見要求メッセージは、ステップ216で、IPアドレスがIP_1、UDPポートがP_2の代理ノードに送信される。そのDHTノード発見要求メッセージに応答して、ノードID ID10−17およびそれらに関連付けられたIP|UDPの組み合わせを有する8つの代理ノードがさらに生成される(ステップ217を参照されたい)。それらのノードIDは、ステップ212で使用されるパターンと同様の下記のパターンを使用して生成される。すなわち、IDXがあるバケットを等しい大きさの2つの(より小さい)「バケット」にさらに分割し(ステップ219も参照されたい)、IDXがないバケット内で8つの適切なノードID、ID10−17を選択する。この例では、IDXは1番目の(より小さい)バケットにあり、ID10−17に値3・2158−3・2158+7が与えられるとする。
次いで、クライアントノードの振る舞いに応じて、ルーティングテーブルが完全に埋まるまで(大きさが2160のノード空間の例では1280個のエントリで埋まる)、または十分に埋まるまで、さらにDHT要求メッセージ221を送信することができる。ルーティングテーブルを完全に埋めることが可能/望ましい場合は、バケットサイズが8になり(その場合はそれ以上分割できない)、最後のバケットが8つの適切なノードIDで埋まるまでステップ216−220を繰り返す。
当業者は、この独自方式の埋め方は本発明の実施形態で使用できる可能なパターンの1つに過ぎず、多くの他のパターンを使用してよく、そのようなパターンは、DHT処理に関連する他のパラメータに依存させることが可能であることを理解されよう。図2の例では、埋めようとするバケットの最初の8つの空間が選択されるが、当業者は、埋めようとするバケット中で他の空間を選択してノード識別子を分散させる、例えば埋めようとするバケットに均等に分散させることも可能であることを理解されよう。
図3に、代理処理エージェントで管理されるデータベースの実施形態を示す。クライアントXの値は図2の例に対応している。クライアントYについては、そのノードIDがノード空間の前半にあると仮定し、よって、図2の例のパターンに従って生成されたノードIDの第1のグループは2159−2159+7となる。
DHTノード100、200は、DHTping要求メッセージや反復されるDHTノード発見要求メッセージなどの連続したDHT要求メッセージを、それらDHTノードが認識するようになった個々の代理ノード105、205に対して発信して、それらの代理ノードがまだ生きているかどうかを確認することができる。通例は、それらの代理ノードが応答する限り、DHTノード100、200は、代理ノード105、205を自身のDHTルーティングテーブルに維持しておく。これは、通例、BitTorrentのクライアント実装に依存する。代理ノード105、205は、DHTノード100、200からのそのようなDHT要求メッセージに対して、そのDHTノード100、200に対する以前のDHTノード発見応答メッセージ内で代理ノード105、205に関連付けられていたノードIDと同じノードIDで応答する。これは、代理処理エージェントで管理されるデータベースによって可能になり、データベースには、生成されたノードIDおよびそれに関連付けられたアドレス|ポートの組み合わせがクライアントごとに記憶される。データはクライアント識別子に結び付けて記憶されるので、異なるクライアントに同じアドレス|ポートの組み合わせを使用することができることに留意されたい。
図4に、本発明のシステムのさらなる実施形態を示し、これは大規模なISPネットワークで使用するのに特に適する。この場合は、1つのISPネットワーク409内に2つの代理処理エージェント408が設けられる。ルータ407が、ブートストラップサーバを宛先とする受信パケットを、そのパケットの送信元に応じて、代理処理エージェント408の代理ノードの1つに転送するように構成される。図4の例では、ブートストラップサーバを宛先とするDHTクライアントノードXおよびYからのメッセージ401は、代理処理エージェント1に転送され、DHTクライアントノードZのメッセージ401は代理処理エージェント2に転送される。そして、さらなるDHT要求メッセージ403も個々のエージェント408の代理ノードに送信される。当業者は、3つ以上のエージェントがある他の変形例も本発明の範囲内にあることを理解されよう。
本発明の実施形態は、その他の点では完全に分散型のDHTネットワークに一定の集中化を導入する。その集中化を活用して、DHTネットワークの少なくとも一部分をISPの要求により合った方式で動作させることができ、エンドユーザによるBitTorrentのファイル交換の体験を損なわない。
本発明のさらなる実施形態は、市販されるDHTクライアントに変更を加える必要がないとう利点を有する。ただし、本発明を使用した市販のDHTクライアントは、その装置内のDHTルーティングテーブルに格納された情報から認識できることに留意されたい。本発明の実施形態では、DHTルーティングテーブルは、通例は十分に埋められる。また、通例は、DHTルーティングテーブルのエントリは、従来技術のように無作為ではなく特定のパターンに従う。
上記で本発明の原理について特定実施形態との関連で述べたが、この説明は、単なる実施例であり、添付の特許請求の範囲によって決定される保護範囲の限定ではないことを明確に理解されたい。

Claims (14)

  1. 分散ハッシュテーブル(DHT)クライアントが自身のDHTルーティングテーブルを埋めることを可能にするために、DHTクライアントからのDHTメッセージに応答するための処理方法であって、代理ノード動作を遂行する複数のノードを有する代理処理エージェントによって行われる、
    DHTクライアントからDHT要求メッセージを受信するステップと、
    少なくとも1つのノード識別子を生成し、各ノード識別子をIPアドレスおよびポート番号に関連付けるステップであって、各IPアドレス/ポート番号の組み合わせは、前記複数のノードのうち1つのノードに対応する、ステップと、
    前記少なくとも1つのノード識別子とそれに関連付けられたIPアドレスおよびポートを含んでいるDHT応答メッセージをDHTクライアントに送信するステップと、
    少なくとも1つの生成されたノード識別子とそれに関連付けられたIPアドレスおよびポートを前記DHTクライアントとの関連で記憶するステップと
    を含む、処理方法。
  2. 前記受信ステップが、ブートストラップサーバを宛先とし、ルータにより代理処理エージェントに転送された第1のDHT要求メッセージをDHTクライアントから受信するステップを含み、前記生成ステップは、ノード空間の第1のバケットを埋めるための第1のノード識別子の第1のグループを生成するステップを含み、かつ/または、
    前記受信ステップが、前記第1のノード識別子の第1のグループに関連付けられたIPアドレス/ポートを宛先とするさらなるDHT要求メッセージをDHTクライアントから受信するステップを含み、前記生成ステップが、ノード空間のさらに他のバケットを埋めるためのさらなるノード識別子のさらなるグループを生成するステップを含む、請求項1に記載の処理方法。
  3. DHT要求メッセージが、それに対して、関連付けられたDHT応答メッセージが少なくとも1つのノード識別子を含むメッセージであり、DHTノード発見、DHTping、DHTピア取得、またはDHTアナウンス要求メッセージ、のいずれか1つである、請求項1に記載の処理方法。
  4. 前記DHTクライアントがノード識別子を有し、DHT要求メッセージが前記ノード識別子を含み、DHTクライアントノードのノード識別子を考慮して、所定のパターンに従って少なくとも1つのノード識別子が生成される、請求項1に記載の処理方法。
  5. DHTクライアントが、受信したノード識別子をノード空間の連続したバケットに入れることによって自身のDHTルーティングテーブルを埋めることをさらに含み、受信されたDHT要求メッセージごとに代理処理エージェントで複数のノード識別子が生成され、パターンは、前記生成された複数のノード識別子のすべてが同じバケットにあり、DHTクライアントのノード識別子が前記バケットに存在しないようなパターンである、請求項4に記載の処理方法。
  6. 代理処理エージェントで、
    DHTクライアントから、pingまたは反復されるDHTノード発見要求メッセージ等のさらなるDHT要求メッセージを、代理処理エージェントの前記複数のノードのうち1つのノードで受信するステップと、
    前記DHTクライアントについて、前記ノードに関連付けられた格納されたノード識別子を検索するステップと、
    前記検索された格納ノード識別子を含むDHT応答メッセージを送信するステップと
    をさらに含む、請求項1に記載の処理方法。
  7. 分散ハッシュテーブル(DHT)クライアントが自身のDHTルーティングテーブルを埋めることを可能にするために、DHTクライアントからのDHTメッセージに応答する、代理ノード動作を遂行する代理処理エージェントであって、
    DHTクライアントからDHT要求メッセージを受信する複数のノードと、
    少なくとも1つのノード識別子を生成し、各ノード識別子にIPアドレスおよびポート番号を関連付ける処理手段であって、各IPアドレス/ポート番号の組み合わせは、前記複数のノードのうち1つのノードに対応する、手段と、
    前記DHT要求メッセージに応答してDHT応答メッセージを作成し、DHTクライアントに送信する手段であって、前記DHT応答メッセージは、前記少なくとも1つのノード識別子とそれに関連付けられたIPアドレスおよびポートを含む、手段と、
    少なくとも1つの生成されたノード識別子とそれに関連付けられたIPアドレスおよびポートを、前記DHTクライアントとの関連で記憶する記憶手段と
    を備える、代理処理エージェント。
  8. DHTメッセージがDHTクライアントのノード識別子を含み、
    前記処理手段が、DHTクライアントのノード識別子を考慮して、所定のパターンに従って前記少なくとも1つのノード識別子を生成するように構成される、請求項7に記載の代理処理エージェント。
  9. 分散ハッシュテーブル(DHT)ブートストラップサーバを備えるDHTインフラストラクチャ内のDHTクライアントノードのルーティングテーブルを埋めるためのシステムであって、
    請求項7または8に記載の代理処理エージェントと、
    ブートストラップサーバを宛先とするパケットを前記代理処理エージェントに転送するように構成された少なくとも1つのルータと
    を備える、システム。
  10. DHTブートストラップサーバを備えるDHTインフラストラクチャ内のDHTクライアントノードのルーティングテーブルを埋める方法で使用する、前記DHTクライアントノードのネットワーク内で使用するためのルータであって、前記ネットワークは、複数の代理ノードを持つ代理処理エージェントを有し、前記ルータは、DHTブートストラップサーバを宛先とするパケットを、前記代理処理エージェントの前記複数の代理ノードのうち第1のノードに転送するように構成される、ルータ。
  11. 前記ルータが、DHTブートストラップサーバに関連付けられた特定のIPアドレス/UDPポートを行き先とするパケットを、代わりに、前記複数の代理ノードのうち第1のノードに関連付けられた第1のIPアドレス/UDPポートに送ることを指示したポリシー規則を保持している、請求項10に記載のルータ。
  12. 分散ハッシュテーブル(DHT)ブートストラップサーバ、代理処理エージェント、および、DHTブートストラップサーバを宛先とするパケットを代理処理エージェントに転送するように構成された少なくとも1つのルータを備えているDTインフラストラクチャ内のDHTクライアントノードのルーティングテーブルを埋める方法であって、DHTクライアントノードで行われる、
    ブートストラップサーバを宛先とするDHT要求メッセージを、前記少なくとも1つのルータのルータを通じて送信するステップと、
    前記DHT要求メッセージに応答して、ノード識別子とそれに関連付けられたIPアドレスおよびポートをノードごとに含むノードグループを含んだDHT応答メッセージを、前記代理処理エージェントから受信するステップであって、前記グループは、代理処理エージェントで所定のパターンに従って作成および管理される、ステップと、
    前記ノード識別子のグループと、それに関連付けられたIPアドレスおよびポートをルーティングテーブルに格納するステップと
    を含む、方法。
  13. 前記グループのうち少なくとも1つのノードにさらにDHT要求メッセージを送信するステップと、ノードごとにノード識別子とそれに関連付けられたIPアドレスおよびポートを含む、少なくとも1つのさらなるノードグループを前記少なくとも1つのノードから受信するステップであって、前記さらなるグループは、代理処理エージェントで所定のパターンに従って作成および管理される、ステップと、前記さらなるノード識別子のグループとそれらに関連付けられたIPアドレスおよびポートとを前記ルーティングテーブルに格納し、任意で、さらなるノードグループのうち少なくとも1つのノードについて前記送信および受信ステップを繰り返すステップとをさらに含む、請求項12に記載の方法。
  14. 請求項4に記載の方法をコンピュータに実行させるためのコンピュータ実行可能命令を含むコンピュータプログラムであって、生成された複数のノード識別子のすべてが同じバケットにあり、DHTクライアントのノード識別子が前記バケットに存在しないようにするパターンを使用して、受信されたDHT要求メッセージごとに前記複数のノード識別子をコンピュータに生成させるためのコンピュータ実行可能命令をさらに含む、コンピュータプログラム。
JP2013524444A 2010-08-20 2011-08-16 処理方法、代理処理エージェント、dhtクライアントノードのルーティングテーブルを埋めるシステムおよび方法、ルータ、ならびにdhtクライアントノード Expired - Fee Related JP5607252B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP10305904.4 2010-08-20
EP10305904A EP2421225A1 (en) 2010-08-20 2010-08-20 Processing method, proxy processing agent, system and method for filling a routing table of a DHT client node, router and dht client node
PCT/EP2011/064107 WO2012022751A1 (en) 2010-08-20 2011-08-16 Processing method, proxy processing agent, system and method for filling a routing table of a dht client node, router and dht client node

Publications (2)

Publication Number Publication Date
JP2013537765A JP2013537765A (ja) 2013-10-03
JP5607252B2 true JP5607252B2 (ja) 2014-10-15

Family

ID=43446744

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013524444A Expired - Fee Related JP5607252B2 (ja) 2010-08-20 2011-08-16 処理方法、代理処理エージェント、dhtクライアントノードのルーティングテーブルを埋めるシステムおよび方法、ルータ、ならびにdhtクライアントノード

Country Status (6)

Country Link
US (1) US20130198332A1 (ja)
EP (1) EP2421225A1 (ja)
JP (1) JP5607252B2 (ja)
KR (1) KR101464452B1 (ja)
CN (1) CN103081445A (ja)
WO (1) WO2012022751A1 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8364633B2 (en) 2005-01-12 2013-01-29 Wandisco, Inc. Distributed computing systems and system components thereof
US9361311B2 (en) 2005-01-12 2016-06-07 Wandisco, Inc. Distributed file system using consensus nodes
US9424272B2 (en) 2005-01-12 2016-08-23 Wandisco, Inc. Distributed file system using consensus nodes
US9332069B2 (en) 2012-12-28 2016-05-03 Wandisco, Inc. Methods, devices and systems for initiating, forming and joining memberships in distributed computing systems
US9053311B2 (en) * 2011-11-30 2015-06-09 Red Hat, Inc. Secure network system request support via a ping request
US8700660B2 (en) * 2012-04-17 2014-04-15 Sap Ag Client-side statement routing for partitioned tables
US8793276B2 (en) 2012-04-17 2014-07-29 Sap Ag Client-side statement routing in distributed database
CN103051539B (zh) * 2012-12-14 2015-09-16 中兴通讯股份有限公司 一种基于dht的控制网络实现方法、系统和网络控制器
US9264516B2 (en) * 2012-12-28 2016-02-16 Wandisco, Inc. Methods, devices and systems enabling a secure and authorized induction of a node into a group of nodes in a distributed computing environment
US9009215B2 (en) 2013-03-15 2015-04-14 Wandisco, Inc. Methods, devices and systems for dynamically managing memberships in replicated state machines within a distributed computing environment
CA2938768C (en) 2014-03-31 2020-03-24 Wandisco, Inc. Geographically-distributed file system using coordinated namespace replication
US9935831B1 (en) * 2014-06-03 2018-04-03 Big Switch Networks, Inc. Systems and methods for controlling network switches using a switch modeling interface at a controller
US10075385B1 (en) 2014-07-16 2018-09-11 Ivanti, Inc. Systems and methods for discovering and downloading configuration files from peer nodes
EP3205178B1 (en) * 2014-10-07 2018-02-28 Telefonaktiebolaget LM Ericsson (publ) Routing in a communications network having a distributed s/pgw architecture
US10180845B1 (en) * 2015-11-13 2019-01-15 Ivanti, Inc. System and methods for network booting
KR101922795B1 (ko) * 2017-02-17 2019-02-20 박상준 사물인터넷 서비스 제공 장치 및 그 방법
US11360942B2 (en) 2017-03-13 2022-06-14 Wandisco Inc. Methods, devices and systems for maintaining consistency of metadata and data across data centers
CN110730244A (zh) * 2019-10-22 2020-01-24 深圳市网心科技有限公司 Dht系统的组网方法、系统及网络设备和存储介质
EP4057577B1 (en) * 2019-11-07 2024-10-23 Huawei Technologies Co., Ltd. Addressing method and addressing apparatus
CN111245727B (zh) * 2020-01-07 2022-08-12 深圳市网心科技有限公司 基于dht网络的消息路由方法、电子设备、代理节点及介质
CN111277635B (zh) * 2020-01-14 2022-11-08 深圳市迅雷网络技术有限公司 一种外部节点接入区块链方法、设备、装置及计算机介质
CN111224829B (zh) * 2020-01-17 2022-11-08 深圳市迅雷网络技术有限公司 外部节点接入区块链网络的方法及装置,区块链网络
US20230342163A1 (en) * 2022-04-24 2023-10-26 Vmware, Inc. Distribution of bootstrap management for application monitoring

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7123613B1 (en) * 2000-04-07 2006-10-17 Sun Microsystems, Inc. Apparatus and method for providing a transparent proxy server
US8250175B2 (en) * 2006-08-02 2012-08-21 Cisco Technology, Inc. Techniques for remapping content requests
CN100502339C (zh) * 2007-08-31 2009-06-17 华为技术有限公司 对等网络自治的方法、节点装置和系统
JP5160405B2 (ja) * 2008-12-26 2013-03-13 Kddi株式会社 P2p配信システム及び配信方法

Also Published As

Publication number Publication date
WO2012022751A1 (en) 2012-02-23
JP2013537765A (ja) 2013-10-03
CN103081445A (zh) 2013-05-01
EP2421225A1 (en) 2012-02-22
US20130198332A1 (en) 2013-08-01
KR101464452B1 (ko) 2014-11-21
KR20130050358A (ko) 2013-05-15

Similar Documents

Publication Publication Date Title
JP5607252B2 (ja) 処理方法、代理処理エージェント、dhtクライアントノードのルーティングテーブルを埋めるシステムおよび方法、ルータ、ならびにdhtクライアントノード
EP2705645B1 (en) Name-based neighbor discovery and multi-hop service discovery in information-centric networks
US9515874B2 (en) Efficient use of dynamic host configuration protocol in low power and lossy networks
US20070233832A1 (en) Method of distributed hash table node ID collision detection
US10110553B2 (en) Adaptive prefix delegation
US20070230468A1 (en) Method to support mobile devices in a peer-to-peer network
JP2018191290A (ja) 負荷分散を実現するための方法、装置、およびネットワークシステム
JP7366283B2 (ja) ルート更新方法及び装置
CN107547339B (zh) 一种网关媒体接入控制mac地址反馈方法及装置
JP5526015B2 (ja) ゲートウェイシステム、ゲートウェイ装置、負荷分散方法
CN105681249B (zh) 一种网络访问方法和网络转换设备
JP5818272B2 (ja) ホームゲートウェイ装置およびパケット転送方法
Tracey et al. Using a DHT in a Peer to Peer Architecture for the Internet of Things
WO2013075636A1 (zh) 分布式哈希表互通网络系统、域间节点及实现方法
Dressler et al. Inter-domain routing and data replication in virtual coordinate based networks
US7570600B1 (en) Overlay network with efficient routing and recovery
JP4633680B2 (ja) データ管理装置
KR100872170B1 (ko) P2p 네트워크 다중 라우팅 방법
JP2010062598A (ja) 負荷分散方法およびdhcpサーバ装置
US20130111068A1 (en) Creating an optimized distribution network for the efficient transfer of data between endpoints using crossover connections
JP2019036829A (ja) 配信構成管理装置、配信構成管理プログラム、及び情報配信システム
JP7091847B2 (ja) データ配信システム、データ配信方法、通信制御装置、通信制御プログラム、配信元ノード、配信処理プログラム、受信ノード、及び受信処理プログラム
Azgin et al. Hash-based overlay routing architecture for information centric networks
Tokunaga et al. A Link State Routing Method for CCN with Blockchain
Umaparvathi et al. Analysis of creido enhanced chord overlay protocol under different movement models in delay tolerant networks

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140401

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140630

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140827

R150 Certificate of patent or registration of utility model

Ref document number: 5607252

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees