ピア交換
ピア交換(ピアこうかん、英: 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はトラッカーから十分な数のピアを得られるならば有用となる可能性がある。
バージョン
[編集]互換性のない3つのPEX実装が存在し、それぞれがスウォーム内で異なるネットワークを形成している[5]。
- Vuze – Azureusで導入された。
- BitComet – プロプライエタリ – BitCometで導入され、バージョン1.19からBEP11をサポートし、メインラインと互換性がある[6][7]。
- メインライン – μTorrentで導入された。
ピア交換をサポートするクライアント
[編集]ほとんどのBitTorrentクライアントは、トラッカーやDHTに加えてピア交換(PEX)を用いてピアを収集している。Vuzeの3.0.5.0リリースにより、すべての主要なBitTorrentクライアントが互換性のあるピア交換機能を持つようになった。
以下のクライアントは、それぞれ何らかのPEX実装を搭載している:
- aria2 - μTorrent PEXをサポート[8]
- Vuze(旧Azureus)およびそれに基づくクライアント(Vuze PEXはTransmissionクライアントとのみ互換性がある。他のクライアントとのPEXはVuzeおよびAzureusのバージョン3.0.4.3以降に実装された)[9]
- BitComet - 古いバージョンではプロプライエタリなプロトコルによるPEXをサポートしている。バージョン1.19以降では、拡張プロトコルに基づいたμTorrent/メインラインのPEX実装もサポートされている[10][11]
- Bitflu[12]
- BitTorrent[13]
- KTorrentは2.1 RC1からμTorrent PEXを完全にサポートしている[14]
- libtorrentおよびそれに基づくクライアント(Deluge[15]、qBittorrent[16]、MooPolice[17])はμTorrentと互換性あり
- Tixati
- μTorrent[18]
- Opera 9.5 - μTorrent PEXをサポート[19]
- qBittorrent - μTorrent PEXをサポート[20]
- rTorrent[21]
- Transmission - μTorrentおよびVuzeの両実装と互換性あり[22]
- XTorrent - Transmissionのソースコードに基づいており、バージョン1.0(v40)以降、VuzeおよびμTorrentの実装を完全にサポートしている[23]
脚注
[編集]- ^ “Peer Exchange - VuzeWiki”. 2023年3月15日時点のオリジナルよりアーカイブ。2025年5月5日閲覧。
- ^ “Azureus messaging protocol - VuzeWiki”. wiki.vuze.com. 2019年11月20日閲覧。
- ^ “extension_protocol.rst”. www.rasterbar.com. 2019年11月20日閲覧。
- ^ a b “BitTorrentPeerExchangeConventions - Theory.org Wiki”. wiki.theory.org. 2019年11月20日閲覧。
- ^ [要出典]
- ^ <the8472.bep@infinite-source.de>, The 8472. “bep_0011.rst_post” (英語). www.bittorrent.org. 2021年5月23日閲覧。
- ^ “Bitcomet - Changelog”. 2025年5月5日閲覧。
- ^ “Ubuntu Manpage: Aria2c - the ultra fast download utility”. 2015年4月2日時点のオリジナルよりアーカイブ。2015年3月29日閲覧。
- ^ “utorrent PEX in Vuze.”. Vuze Wiki website. 2010年8月15日閲覧。
- ^ “PEX in BitComet.”. BitComet Wiki website. 2010年2月23日閲覧。
- ^ “Release notes for BitComet.”. BitComet official website. 2010年2月23日閲覧。
- ^ “Bitflu configuration example”. 2007年3月30日閲覧。
- ^ BitTorrent User Manual - Appendix A: The BitTorrent Interface - Miscellaneous - Torrent Properties - General - Other Settings - Peer Exchange Archived 2014-07-06 at the Wayback Machine.
- ^ “What's new in 2.1?”. KTorrent official website. 2006年4月2日時点のオリジナルよりアーカイブ。2007年3月30日閲覧。
- ^ “Deluge 0.5.1 Beta 1 changes”. 2008年12月25日時点のオリジナルよりアーカイブ。2007年9月11日閲覧。
- ^ “qBittorrent official website”. 2007年5月14日閲覧。
- ^ “MooPolice official website”. 2007年3月30日閲覧。
- ^ “μTorrent 1.4.1 beta and 1.4.2 beta changes”. 2006年11月25日時点のオリジナルよりアーカイブ。2007年9月11日閲覧。
- ^ “Opera 9.5 BitTorrent support”. 2007年9月4日閲覧。
- ^ “Details of qBittorrent package”. Debian Packages. 2011年4月15日閲覧。 “μTorrent-compatible Peer eXchange (PeX)”
- ^ “libTorrent 0.11.8 and rTorrent 0.7.8 Changelog”. 2007年11月3日時点のオリジナルよりアーカイブ。2007年9月11日閲覧。
- ^ “NEWS (rev 1579)”. Transmission SVN. 2007年8月24日時点のオリジナルよりアーカイブ。2007年3月30日閲覧。
- ^ Xtorrent P2P (for Mac OS X)