Libtorrentとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > Libtorrentの意味・解説 

libtorrent

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/05/18 02:49 UTC 版)

libtorrent
開発元 アルヴィド・ノーバーグ
初版 2005年9月 (19年前) (2005-09)
最新版
2.0.11[1]  / 2025年1月28日 (3か月前)
リポジトリ github.com/arvidn/libtorrent/
プログラミング
言語
C++
対応言語 英語
種別 BitTorrentライブラリ
ライセンス 三条項BSDライセンス
公式サイト libtorrent.org
テンプレートを表示

libtorrentオープンソースBitTorrentプロトコル実装である。C++でプログラムされており、主要なライブラリインターフェースもC++である。主な特徴としては、Mainline DHTIPv6、HTTPシード、μTorrentピア交換への対応が挙げられる。libtorrentはBoost、特にBoost.Asioを使用することで、プラットフォーム非依存性を実現している。libtorrentはWindowsおよびほとんどのUnix系オペレーティングシステム(OS XLinux、多数のBSD)でビルド可能であることが知られている。

libtorrentは、開発者にとって最も有用と見なされるBitTorrent拡張に対応するよう継続的に更新されており、より幅広い環境で動作するよう最適化が進められている。その多くの機能はコンパイル時に無効化することが可能であり、特定のユースケースで使用されないコードを含めないようにできる。libtorrentは、組み込みデバイス、デスクトップ、シードサーバーにとって最も適したlibtorrent実装を目指している。その実装の詳細については、「特徴」の節で述べられている。

libtorrentのオリジナル作者は アルヴィド・ノーバーグである。これはμTorrentと共に拡張プロトコルに初めて対応したクライアントであり、現在では多くの他の拡張の基盤となっている。

特徴

実装されたBEP

BEP(BitTorrent Enhancement Proposal)は、BitTorrent拡張提案プロセスの一部である。BEPとは、BitTorrentコミュニティに情報を提供する設計文書であり、またはBitTorrentプロトコルの新機能を説明するものである。BEPは、機能の簡潔な技術仕様と、その機能の根拠を提供すべきである。BEPは、新機能の提案、問題に対するコミュニティの意見収集、BitTorrentに関する設計決定の記録手段として機能することを目的としている。BEPの著者は、コミュニティ内でコンセンサスを構築し、反対意見を記録する責任を負う。

BEPはバージョン管理されたリポジトリ内でreStructured textファイルとして管理されており、そのリビジョン履歴は機能提案の歴史的記録となる[2]

BEPには以下の三種類がある。

  1. Standards Track BEPは、BitTorrentプロトコルの拡張、またはプロトコル内のアクター(現在はクライアント、トラッカー、Webサーバー)の動作の変更を記述する。
  2. Informational BEPは、BitTorrent設計上の問題について説明したり、BitTorrentコミュニティに対して一般的なガイドラインや情報を提供するが、拡張提案は行わない。Informational BEPは必ずしもBitTorrentコミュニティのコンセンサスや推奨を反映しているわけではないため、ユーザーや実装者はこれらを無視してもよいし、参考にしてもよい。
  3. Process BEPは、BitTorrentを取り巻くプロセスを説明したり、プロセスへの変更(または出来事)を提案する。Process BEPはStandards Track BEPに似ているが、BitTorrentプロトコル以外の分野に適用される。これらは単なる推奨にとどまらず、ユーザーは通常これを無視できない。例としては、リリーススケジュール、手順、ガイドライン、意思決定プロセスの変更、BitTorrent開発に使用されるツールや環境の変更などがある。
BEP # タイトル 備考
3 BitTorrentプロトコル
5 DHTプロトコル トラッカーなしトレント、メインライン Kademlia DHTプロトコル
7 IPv6 トラッカー拡張
9 ピアからメタデータファイルを送信するための拡張 メタデータ転送プロトコル、マグネットリンクを有効化
10 拡張プロトコル
11 ピア交換 μTorrent PEX
12 マルチトラッカーメタデータ拡張 μTorrentの解釈にも対応
14 ローカルピア検出
15 UDP トラッカープロトコル
16 スーパーシーディング
17 HTTPシーディング ホフマン方式
19 WebSeed - HTTP/FTPシーディング(GetRight方式)
21 部分シードのアップロードのみ
24 トラッカーが外部IPを返す
27 プライベートトレント
29 Micro Transport Protocol バージョン0.16.0以降[3]
30 ハッシュ木 バージョン0.15以降[4]
32 BitTorrent DHTのIPv6拡張 バージョン1.2以降
33 DHTスクレイプ バージョン0.16以降[4]
38 ミュータブルトレント バージョン1.1以降[4]
40 標準化ピア優先順位 バージョン1.0以降[4]
43 読み取り専用DHTノード バージョン1.0.3以降[4]
44 DHT put/get バージョン1.0以降[4]
47 パッドファイルとファイル属性 バージョン0.15以降[4]
51 DHT infohashインデクシング バージョン1.2以降
52 BitTorrentプロトコル仕様バージョン2 バージョン2.0以降
53 マグネットリンクのファイル選択 バージョン1.2以降
55 ホールパンチ拡張

Merkle hash tree torrents

これはBitTorrentプロトコルのBEP30である。Merkle hash tree torrentsは、ピースハッシュを形成するハッシュツリーのルートハッシュのみをトレントファイルに含めることを可能にする拡張である[5]。この機能の主な利点は、トレント内にいくつピースがあっても、.torrentファイルのサイズが常に一定であることである。.torrentファイルのサイズはファイル数に応じてのみ増加する(ファイル名を含める必要があるため)。

通常のトレントでは、クライアントはピースを検証する前に、複数のブロックを異なるピアから取得しなければならない。ピースのサイズが大きくなるほど、ピース全体をダウンロードして検証するまでに時間がかかる。ピースが検証されるまで、そのデータはスウォームと共有できないため、ピースサイズが大きいほど、ピアによってダウンロードされたデータの再配布までの時間が長くなる。平均すると、データはクライアントのバッファ内で検証待ちの状態になる時間が長くなる。

もう一つの大きなピースサイズの問題は、ピースが失敗した場合に悪意のある、またはバグのあるピアを特定しにくくなり、再ダウンロードに時間がかかり、成功するまでに試行回数が増えることである。

通常のトレントにおけるピースサイズは、.torrentファイルのサイズとピースサイズとのトレードオフである。例えば、4GBのファイルでは、.torrentファイルのサイズを大きくしすぎないようにするために、ピースサイズが2MBまたは4MBになることが多い。

Merkle hash tree torrentsは、この.torrentファイルサイズとピースサイズのトレードオフを解消することで、これらの問題を解決する。ピースサイズを最小のブロックサイズ(16KB)にし、これによりピアは他のピアから受け取ったすべてのデータブロックを即座に検証することが可能になる。これによりターンアラウンドタイムが最小化され、悪意のあるピアの特定の問題は完全に排除される。

アプリケーション

libtorrentを使用している主なアプリケーションは以下の通りである。

  • Deluge:クロスプラットフォームのBitTorrentクライアント
  • Electric Sheep:スクリーンセーバー用のBitTorrentクライアント
  • Free Download Manager:Windows向けのオープンソースダウンロードマネージャー
  • LimeWire:マルチプラットフォームのファイル共有クライアント
  • Miro:クロスプラットフォームのインターネットテレビアプリケーション
  • qBittorrent:C++/Qtを使用したBitTorrentクライアント
  • Tribler:分散型で匿名性を備えたBitTorrentクライアント
  • ミスティックストーン英語版』:FOGダウンローダーがゲームクライアントのアップデートにlibtorrentを使用しているMMORPG[要出典]
  • World of Tanks』:ランチャーがゲームクライアントのアップデートにlibtorrentを使用しているMMORPG[要出典]

関連項目

  • BitTorrentソフトウェアの比較英語版

脚注

  1. ^ https://github.com/arvidn/libtorrent/releases/tag/v2.0.11.
  2. ^ bep_0001.rst_post”. www.bittorrent.org. 2020年2月12日時点のオリジナルよりアーカイブ。2020年2月19日閲覧。
  3. ^ Google Code Archive - Long-term storage for Google Code Project Hosting.”. code.google.com. 2021年4月18日時点のオリジナルよりアーカイブ。2022年2月5日閲覧。
  4. ^ a b c d e f g arvidn/libtorrent” (2022年2月4日). 2022年2月5日時点のオリジナルよりアーカイブ。2022年2月5日閲覧。
  5. ^ Archived copy”. 2014年12月18日時点のオリジナルよりアーカイブ。2010年12月6日閲覧。

外部リンク




英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  
  •  Libtorrentのページへのリンク

辞書ショートカット

すべての辞書の索引

「Libtorrent」の関連用語

Libtorrentのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Libtorrentのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのlibtorrent (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS