(torrent から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/11/19 09:41 UTC 版)
| 作者 | ブラム・コーエン |
|---|---|
| 開発元 | Rainberry |
| 初版 | 2001年 |
| 規格 | The BitTorrent Protocol Specification[1] |
| 種別 | P2Pファイル共有 |
| 公式サイト | www |
| ファイル共有 |
|---|
BitTorrent(ビットトレント)は、ブラム・コーエンによって開発された、Peer to Peerを用いたファイル転送用プロトコル。Bit(ビット)+Torrent(急流)から、「急流のように早く(ファイルを)ダウンロードできる」という意味を持つ。メインラインと呼ばれる本家のBitTorrent clientの他にも様々な互換クライアントが存在する。
開発者のコーエンは、かつて所属していたベンチャー企業で、P2Pプロトコルをベースにした情報コンテンツ流通プラットフォームの構築プロジェクトに携わった(プロジェクトは頓挫)。その際、従来のP2Pネットワークがピアの帯域を有効に利用していないことやその信頼性が低いことに不満を感じ、それらの欠点を解消するBitTorrentの開発を2001年に一人で始めた。2002年にP2Pプロトコルのファイナライズを、2003年にクライアントソフトをリリースした[2]。2003年4月にRed Hat Linux 9がリリースされた際に、そのISOイメージをドイツ人の一利用者がBitTorrentで公開し、3日間で3万個分のISOイメージが配布されたことで注目されるようになった[2]。
現在では、主要な自由ソフトウェアおよびオープンソースソフトウェアのほか、音楽や映画、商用アプリケーションを提供するために、BitTorrentが利用されている。
BitTorrentで配布されているファイルのダウンロードには、BitTorrentプロトコルを実装したクライアントソフトウェアを利用する。
インターネットでのBitTorrentが占めるトラフィックに関する報告は複数ある。CableLabs(北米CATV業界の研究機関)はCATVの上りトラフィックの55%[3]、英国調査会社CacheLogicはインターネットのトラフィックの35%[4]、別の論文はブロードバンドトラフィックの18%[5]であると報告している。
|
この節は検証可能な参考文献や出典が全く示されていないか、不十分です。 (2010年1月)
|
BitTorrentがこれまでのソフトウェアと大きく異なるのは、従来のインターネットにおける法則に反して、「人気のあるファイルであればあるほど、ダウンロードが早くなる」という特徴である(Winnyなど一部のP2Pプロトコルと同じ特徴)。
Napsterに代表される従来のP2Pソフトウェアの構図は、一極集中型であった。これは、限られた数の豊富な帯域を持っているユーザの周りに、帯域の貧弱な大量のユーザがぶら下がる構図である。このため、ある一つのファイルを取得するためにユーザが集まると、ダウンロード要求が一極集中し、全体の拡散速度としても豊富といわれた帯域を占有するだけの速度しか出すことができない。
この現象に対してBitTorrentでは、「相手(ピア)からファイルの一部を受けとるには、自分もファイルの一部を渡さなければならない」という規則を導入し、貧弱な帯域を持つユーザにも、全体のファイル配布に協力させるようにした。これにより、人気のあるファイルに対する要求であっても、それだけ多くのユーザが配布に協力することになり、結果としてユーザ全体が早くダウンロードすることができる。
また、この特徴より、自分からアップロードするのは、ダウンロード中かダウンロードが完了したファイルのみである。Winnyなどとは異なり、自分がダウンロードしていないファイルのアップロードに加担させられるということが起こらないのも大きな特徴である。
また、BitTorrentは、従来のP2Pに対する進歩というだけではなく、インターネット上でのファイル配布の可能性を広げた。一般的にファイルを配布する際には、サーバからそれぞれのユーザが別々にダウンロードするため、サーバの帯域が配布可能量を決めていた。しかし、BitTorrentを用いることでユーザ同士の帯域が利用可能になり、より多くのユーザにファイルを配布することができるようになる。
2006年10月23日に、BitTorrent, Inc.とPC周辺機器(ネットワーク機器)メーカーであるASUS、Planex、QNAPが提携し、BitTorrentクライアントを内蔵したルーターやNASを発売することを発表した。
BitTorrentがこれまでのP2Pソフトウェアともう一つ大きく異なるのは、indexing web site (index home page) からインデックストレントファイルをダウンロードしてからでないと、本体ファイルをP2Pからダウンロードできないということである。この点はWinny、Share、Perfect Dark、LimeWireなどの他のP2Pソフトとは異なる特徴である。
「P2P FINDER」というP2Pネットワーク監視サービスが存在しており、同サービスはBitTorrentのトラフィックも解析可能である。一般社団法人日本レコード協会は、このP2P FINDERを利用して発信者情報開示請求訴訟を起こし勝訴し、違法アップローダーを特定している。
クライアントソフトなしにブラウザ上でトレントを使用できるようにしたWebTorrentが存在する。
WebTorrentは通信にWebRTCを使っており、トランスポート層が異なる。そのためWebTorrentとBitTorrentは別々に動作し、これらを連携させるためにはWebTorrent Desktopというネットワークブリッジを使う必要がある。
|
この節は検証可能な参考文献や出典が全く示されていないか、不十分です。 (2010年1月)
|
BitTorrentクライアントは様々なプラットフォームに実装され、その多くが日本語を含む多言語に対応している。
(torrent から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/07/16 06:30 UTC 版)
|
|
この記事には複数の問題があります。
|
| 拡張子 | .torrent |
|---|---|
| MIMEタイプ | application/x-bittorrent |
| 国際標準 | BEP-0003 (v1),[1] BEP-0052 (v2)[2] |
BitTorrentファイル配布システムにおいて、トレントファイル(英: torrent file)またはメタ情報ファイル(英: meta-info file)とは、配布対象のファイルおよびフォルダに関するメタデータを含み、通常はトラッカーと呼ばれるコンピュータのネットワーク上の位置情報のリストも含むファイルである。トラッカーは、システム参加者同士が互いを見つけ、スウォームと呼ばれる効率的な配布グループを形成するのを助ける[1]。トレントファイルは通常、.torrentという拡張子を持つ。
トレントファイルは、トレントクライアントの使用により情報を見つけることが可能となる目次(インデックス)のような役割を果たす。トレントファイルを用いることで、元のファイルを既にダウンロード済みのコンピュータから小さな部分ごとに取得できる。これらの「ピア」は、プライマリサーバに加えて、あるいはその代替として、ファイルのダウンロードを可能にする。トレントファイル自体には配布されるコンテンツは含まれておらず、それらのファイルに関する情報、たとえばファイル名、ディレクトリ構造、サイズ、ファイル完全性を検証するための暗号学的ハッシュ関数によるハッシュ値などが含まれている。
トレントシステムは中央サーバへの負荷を軽減するために設計されており、個々のクライアントがサーバからファイルを取得するのではなく、必要な帯域幅を分担することで、大容量ファイルのダウンロード時間を短縮する。多くの自由ソフトウェアやフリーウェア、Linuxディストリビューションをはじめとする各種オペレーティングシステムは、上記の利点を求めるユーザーのためにトレントによるダウンロードオプションを提供している。メディアファイルなどの他の大容量ダウンロードもトレントによって行われることが多い。
一般的にインターネット接続は非対称型であり、アップロード速度よりもダウンロード速度が速く、各ダウンロードに割り当てられる帯域幅が制限されていたり、帯域制限やアクセス不能時間帯が設けられていたりする。このような状況では、多数のユーザーが同一ファイルセットを単一のソースから取得しようとする際に非効率が生じる。ソースは常時オンラインでなければならず、大量の送信帯域幅を必要とする。この問題を解決するためにトレントプロトコルは配布を分散化し、利用者同士が「P2P」でネットワークを構築する能力を活用する。
配布される各ファイルは「ピース」と呼ばれる小さな情報の断片に分割される。ダウンロードするピアは、スウォーム内の複数のコンピュータから同時に複数のピースを要求することで、高速なダウンロードを実現する。取得されたピースは通常、即座に他のスウォーム内の参加者がダウンロードできるように共有される。このようにして、ネットワーク負荷は中央の配布拠点ではなくダウンローダー間に分散される。すべてのピースが揃っていれば、ピア(ダウンローダーおよびアップローダー)は入退場自由であり、すべてのピースを保持していたりスウォームに常時接続していたりする必要はない。
共有対象のファイルまたはフォルダを表すために小さなトレントファイルが作成される。トレントファイルは実際のコンテンツのダウンロードを開始するための鍵となる。共有されたファイルまたはフォルダを取得したい者は、まず対応するトレントファイルを直接ダウンロードするか、マグネットリンクを利用して入手する。その後、ユーザーはそのファイルをトレントクライアントで開き、残りの処理は自動的に実行される。ピアのインターネット上の位置情報を得るため、クライアントはトレントファイルに記載されたトラッカーに接続、または分散ハッシュテーブルを利用して同様の結果を得る。そしてクライアントはピアに直接接続し、ピースの要求やスウォームへの参加を行う。クライアントは進捗状況をトラッカーに報告し、トラッカーによるピアの推薦を助ける場合もある。
すべてのピースが揃うと、トレントクライアントはそれらを組み立てて利用可能な形にする。またクライアントは引き続きピースを共有し、通常のピアではなく「シーダー」という役割を担うようになる。
トレントファイルは、ファイルの一覧とすべてのピースに関する完全性メタデータを含み、任意で多数のトラッカーのリストを含む。
トレントファイルは、以下のキーを持つBencode形式の連想配列(Bencoded辞書のキーは常に辞書式順序で並ぶ)である。
すべての文字列は piecesを除きUTF-8でエンコードされていなければならない。 piecesはバイナリデータを含む。
トレントはinfohashによって一意に識別される。これは info辞書の内容をBencode形式でSHA-1ハッシュ化したものである。他の部分を変更してもこのハッシュは変化しない。このハッシュは、DHTを通じたピア間通信やトラッカーとのやり取り、そしてマグネットリンクで使用される。
BitTorrent v2プロトコル(BEP-0052)は、トレントファイルの新たな定義を導入する[2]。基本構造は以下のとおりである。
新しい形式では、ピースのハッシュ化とinfohashの両方にSHA-256が使用され、破損したSHA-1に置き換わる。"btmh"マグネットリンクには32バイトの完全なハッシュが含まれ、トラッカーやDHTとの通信では旧来のメッセージ構造に収めるため20バイトに短縮されたバージョンが用いられる[2]。"v2"トレントとして新しいフィールドのみを用いたファイル、または旧形式と新形式の両方のフィールドを持つ「ハイブリッド」形式のファイルを構成することが可能である。ただし、v1とv2ではinfohashが異なるため、2つのスウォームが形成され、クライアントによる特別な統合処理が必要となる[3]。
新形式の中核的な特徴はハッシュ木の応用であり、ピースを16KiB単位で個別に検証・再取得することが可能となる。各ファイルは常に完全なピースサイズに適合し、独立したマークルルートハッシュを持つため、ピースサイズが異なる無関係なトレント間でも重複ファイルの検出が可能である。ファイルサイズ自体は変化しない(ピースサイズが同じである場合。v2のツリー構造により、大きなピースでも影響が少ない)一方、マグネットリンクに必要な info辞書のサイズは縮小される(v2専用トレントに限る)[3]。
トレントファイルには、BitTorrent仕様の拡張として定義された追加のメタデータを含めることができる[4]。これらは「BitTorrent Enhancement Proposals(BEP)」として知られている。その例としては、トレントの作成者や作成日時に関するメタデータがある。
これらの拡張は、1つ以上の実装において導入されており、かつ一貫した広範な使用により有用性が実証されている。わずかな改訂が必要な場合もあるが、基本的には完成したものと見なされており、ブラム・コーエンの承認を得て最終/アクティブプロセスの地位へと昇格することが期待されている。
BEP-0005[5]は、BitTorrentを分散ハッシュテーブル、特にMainline DHTに対応させるための拡張である。
トラッカーを持たないトレント辞書には announceキーが存在しない。その代わりに、 nodesキーが使用される。
{
# ...
'nodes': [["<host>", <port>], ["<host>", <port>], ...],
# ...
}
例えば、
'nodes': [["127.0.0.1", 6881], ["your.router.node", 4804]],
仕様では、 nodesは「トレント生成クライアントのルーティングテーブル内でK個の最も近いノードに設定されるべき」と推奨している。または「トレントを生成する者が運用する既知の良好なノード」でもよいとされている。
BEP-0012[6]は、BitTorrentにおいて複数のトラッカーをサポートするための拡張である。
新たなキー announce-listは、最上位の辞書(つまり announceおよび infoと同じ階層)に配置される。
{
# ...
'announce-list': [['<tracker1-url>']['<tracker2-url>']],
# ...
}
BEP-0019[7]は、BitTorrentでHTTPシードを使用可能にする2つの拡張のうちの1つである。
BEP-0019では、新たなキーurl-listが最上位のリストに配置される。クライアントはこのリンクを用いて通常のHTTP URLを組み立てる。サーバー側のサポートは不要である。この機能は、ソフトウェアのダウンロードを提供するオープンソースプロジェクトで非常によく使用されている。Webシードを利用することで、クライアントはP2PとHTTP(S)のいずれも含めたミラーサイトを賢く選択し、同時に使用できる。これによりプロジェクトのサーバー負荷を軽減しつつ、ダウンロード速度を最大化できる。MirrorBrainはWebシード付きのトレントを自動生成する。
BEP-0027[8]は、BitTorrentでプライベートトレントをサポートするための拡張である。
新たなキー privateは、 info辞書内に配置される。このキーの値が1であれば、そのトレントはプライベートである。
{
# ...
'info': {
# ...
'private': 1,
# ...
},
# ...
}
プライベートトレントは「プライベートトラッカー」と共に使用される。こうしたトラッカーは、ピアのIPを確認し、未知のIPにはピアリストを提供しないことでトレントへのアクセスを制限する。通常、ピアはゲート付きオンラインコミュニティを通じてトラッカーに登録され、プライベートトラッカーはそのコミュニティ内で使用されるデータ転送量の統計も保持する。
DHT、PeX、LSDといった分散型の手法は、集中管理を維持するために無効化される。プライベートトレントは手動で編集してプライベートフラグを削除できるが、その場合、info-hashは決定論的に変化し、別の「スウォーム」が形成される。一方、トラッカーリストを変更してもハッシュは変化しない。このフラグは真のプライバシーを提供するものではなく、むしろ紳士協定として機能する。