ピア交換
From Wikipedia, the free encyclopedia
ピア交換(ピアこうかん、英: peer exchange, PEX)とは、BitTorrentファイル共有プロトコルを補完する通信プロトコルである。これは、特定のファイルを共有するために協力しているユーザー(ピア)のグループが、より迅速かつ効率的に共有を行えるようにするものである。
BitTorrentプロトコルの当初の設計では、ファイル共有グループ(スウォーム)内のピア(ユーザー)は、トラッカーと呼ばれる中央のコンピュータサーバに依存して互いを見つけ、スウォームを維持していた。PEXは、各ピアが現在スウォームに存在する他のピアの情報を直接伝達できるようにすることで、トラッカーへの依存を大幅に軽減する。中央集権的なトラッカーへの依存を減らすことで、PEXはBitTorrentプロトコルの速度、効率、および堅牢性を高める。
ピア交換の規約
ファイルのコピーを取得したいユーザーは通常、共有されるファイルを記述するトレントファイルと、それに記載された、ファイルを現在共有しているピアのリストを管理するトラッカーと呼ばれる一つまたは複数の中央コンピュータのURLを最初にダウンロードする。BitTorrentの元の設計では、その後、ピアはこの中央トラッカーに依存して互いを見つけ、スウォームを維持していた。後に分散ハッシュテーブル(DHT)が開発されることで、ピアの部分的なリストをスウォーム内の他のコンピュータが保持できるようになり、中央トラッカーの負荷が軽減された。PEXは、ピアがトラッカーやDHTに問い合わせ(ポーリング)を行わずに、スウォームに関する情報を直接交換できるようにする。これにより、PEXは接続されているピアに対し、そのピアが接続している他のピアのアドレスを尋ねることで情報を得る。この方法は、単一のトラッカーに依存するよりも高速かつ効率的であり、トラッカーの処理負荷を減らす。また、トラッカーがダウンしている場合でもスウォームの維持が可能になる[1]。
PEX単体では新しいピアをスウォームに参加させることはできない。スウォームと初めて接触するには、各ピアは.torrentファイルを用いてトラッカーに接続するか、ブートストラップノードと呼ばれるルーターコンピュータを使用してスウォームのピアリストを記述する分散ハッシュテーブル(DHT)を見つける必要がある。大多数のBitTorrentユーザーにとっては、BitTorrentクライアントを起動して.torrentファイルを開くことで、DHTとPEXは自動的に機能し始める。例外として、「プライベートトレント」は自由に利用できないものであり、これらではDHTが無効化されるのが一般的である。
PEXのようなBitTorrent拡張は、通常、AZMP[2]またはLTEP[3]という二つの一般的な拡張プロトコルのいずれかを用いて実装される。両方式とも、スウォームに追加すべきピア群および削除すべきピア群を含むメッセージを送信する。
AzureusとμTorrentの開発者の間で、上記いずれかのメカニズムを実装するクライアントは、以下の制限を守るよう努力するという合意がなされた[4]。
- 任意のPEXメッセージにおいて、追加されるピアと削除されるピアはそれぞれ最大50までとする。
- ピア交換メッセージの送信は1分に1回を超えてはならない。
一部のクライアントは、これらの制限を強制し、それを無視するクライアントからの接続を切断することもある[4]。
DHT
均一に分布するピア選択を提供するPEXプロトコルを作成するには、トレントにローカルな小規模の分散ハッシュテーブル(DHT)を構築することが考えられる。新たなピアを一つ得るごとに、一様にランダムなキーを探索し、そのキーを担当するノードを新しいピアとして利用する。これは概念的には単純であるが、大きなオーバーヘッドが発生する可能性がある[要出典]。
「トラッカーレス」トレントにおいては、PEXが有用であるかは明確ではない[要出典]。なぜなら、Mainline DHTが必要に応じて負荷を分散できるからである。各DHTノードはトラッカーとして機能し得るが、保持するピアのリストはDHTノードの負荷によって制約される「最大部分集合」であり、単一のピアの視点による制限は存在しない。プライベートトレントではDHTが無効化されることが一般的であり、この場合、PEXはトラッカーから十分な数のピアを得られるならば有用となる可能性がある。