公式仕様:http
://www.bittorrent.org/beps/bep_0000.html非公式仕様:http
://wiki.theory.org/BitTorrentSpecification
BEncodingは、いくつかの目的でbittorrentで使用されるデータシリアル化形式です。
DHTは、グローバルで分散型の反復的なUDPベースのルックアップシステムであり、マグネットリンクから直接取得するか、 .torrentメタデータファイルから計算できる情報ハッシュに基づいて、特定の群れに参加しているクライアントを見つけるために使用できます。 。
トラッカーのアナウンスURL (トレントファイルまたはマグネットリンクのオプション部分)がある場合は、トラッカーから直接クライアントアドレスを取得できます。
特定の群れのクライアントアドレスを取得したら、それらに接続できます-または、DHT /責任トラッカーに自分自身を発表した場合は、基本的に非同期のバイナリメッセージングプロトコルであるbittorrentワイヤープロトコルを使用して接続します。
完全に機能する最先端のビットトレントクライアントを入手するには、以下を実装する必要があります。
- DHTノード(UDPを介したベンコーディング)
- トラッカーはプロトコルをアナウンスしてスクレイプします(HTTPを介したbencodingとUDPを介したカスタムバイナリプロトコルを使用します)
- ビットトレントワイヤプロトコル(オプションの拡張レイヤーを備えたTCPを介したカスタムバイナリプロトコル。一部のメッセージはコード化されています。TCPの代替として、µTPと呼ばれる輻輳回避UDPベースのトランスポートプロトコルも存在します)
- トレントファイルパーサー(明らかにベンコーディング)
- アクティブトレントのキューイング、ファイル管理、高度な同時ネットワークIOなどの一般的なもの
これは、私の知る限り、ルビーでは行われていない多くの作業です。したがって、自分よりもはるかに進んでいるか、別の言語で記述されたビットトレントライブラリ(libtorrentなど)を使用するか、Webサービスを提供するクライアント(送信など)とのインターフェイスを使用することができます。