IMFile

IMFile

A Free And Unlimited BT / HTTP / HTTPS / eD2k Download Software From Singapore

BitTorrent 割り当てられた番号 数字識別子

この記事では、BitTorrent プロトコルで既知のビットの使用と割り当て、およびメッセージ識別子について説明しています。

予約ビットの割り当て#

将来の要件に備えて予約されたいくつかのバイナリビット。これらのビットは現行のプロトコルバージョンでは使用されていませんが、将来の拡張性のために予約され、将来の目的に使用するために保持されます。予約ビットの割り当ては、通常、プロトコルの特定のフィールドで使用されます。たとえば、IP ヘッダ、TCP ヘッダ、UDP ヘッダなどです。これらのビットは将来の標準の更新に使用することができるため、将来の仕様やプロトコルは既存のプロトコルを変更する必要はありません。予約ビットの割り当てにより、プロトコルデザイナーはプロトコルが将来の拡張性を持つままであり、既存のシステムの機能を破壊することなく、後方互換性を維持できます。

既知のハッシュ衝突:#

ハッシュ関数には、2 つの異なる入力が同じ出力値を生成するという状況が存在します。この状況はハッシュ衝突と呼ばれます。ハッシュ関数の目的は、任意の長さのデータを固定サイズの出力にマッピングすることです。しかし、入力の不確実性と出力の有限性のため、一部の入力は同じ出力を生成する可能性があります。通常、ハッシュ関数は高度にランダムで複雑なものとして設計されており、ハッシュ衝突の確率は非常に低く、無視できるレベルです。しかし、攻撃者はハッシュ衝突を悪意のある攻撃に利用することがあります。たとえば、攻撃者はハッシュ衝突を使用してデジタル署名を偽造したり、リプレイ攻撃を実行したり、パスワードを解読したりすることがあります。

「拡張プロトコル」とも呼ばれる LibTorrent Extension Protocol(LTEP)は、BitTorrent プロトコルのさらなる拡張を実装するための推奨方法です。LTEP は、プロトコルに新機能を追加するための標準化されたメカニズムを提供します。LTEP は、ビットまたはメッセージ ID の衝突を防ぐために、新しい拡張ビットを割り当てることはありません。代わりに、すべての拡張は接続の開始時に協議され、一意の識別子が割り当てられます。これにより、各拡張には一意の識別子があり、他の拡張と衝突することはありません。同様に、LTEP を使用する場合、メッセージ ID の衝突も不可能になります。これは、メッセージ ID が接続の開始時に必要に応じて割り当てられるためです。つまり、各メッセージタイプには一意の ID があり、他のメッセージタイプと衝突することはありません。LTEP を使用する場合、拡張名の衝突は引き続き可能ですが、以前の方法と比較して、衝突の可能性ははるかに低くなります。これは、すべての拡張が BitTorrent コミュニティによって登録および追跡されるためです。これにより、新しい拡張が既存の拡張と衝突しないようにすることが保証されます。

予約メッセージ ID#

コアプロトコル:#

0x00 choke
0x01 unchoke
0x02 interested
0x03 not interested
0x04 have
0x05 bitfield
0x06 request
0x07 piece
0x08 cancel
choke と unchoke はアップロード帯域幅を制御するために使用されます。一方が他方を choked した場合、データの送信を停止することを通知します。unchoked の場合、データのダウンロードを許可します。
interested と not interested は、一方のピアが他方のピアが持っているデータに興味があるかどうかを示すために使用されます。
have と bitfield は、一方のピアが持っているデータを説明するために使用され、他のピアが必要なデータを知ることができます。
request と piece は、実際のデータ転送に使用されます。リクエストには必要なデータブロックのインデックスと長さが含まれ、ピースには実際のデータが含まれます。
cancel は、以前に送信したリクエストをキャンセルすることを可能にし、ネットワークトラフィックをより効果的に管理します。

DHT 拡張:#

0x09 port
port は DHT 拡張に使用され、他のピアにポート番号を公開します。

Fast 拡張:#

0x0D suggest
0x0E have all
0x0F have none
0x10 reject request
0x11 allowed fast
suggest、have all、have none、reject request、および allowed fast は、Fast 拡張の一部であり、ダウンロード速度を向上させることができます。

デプロイされたクライアントで使用される追加の ID:#

0x14 LTEP Handshake(libtorrent、uTorrentなどで実装)
LTEP ハンドシェイクは、libtorrent、uTorrent などのクライアントで実装されたハンドシェイクプロトコルであり、ダウンロードを開始する前に必要な手順を実行します。

ハッシュ転送プロトコル:#

0x15 hash request
0x16 hashes
0x17 hash reject
hash request、hashes、および hash reject は、ハッシュ転送プロトコルの一部であり、ピア間でハッシュ値を交換して共有ファイルの完全性を検証するために使用されます。

参考リンク#

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。