web-dev-qa-db-ja.com

「強制再チェック」はどのように機能しますか?

私は長い間uTorrentを使用しています。私はその「強制再チェック」機能を無数の時間使ってきました。 uTorrentがファイルのどの部分がダウンロードされていて、どの部分がまだダウンロードされていないかを正常に検出する方法に驚かされるたびに。インターネットに接続していない場合でもチェックします。したがって、このチェックを行うためにインターネットからデータをダウンロードしないと思います。

この「強制再チェック」機能の仕組みを教えてください。私はすべての断片のハッシュが.torrentファイルに保持されていると思います。しかし、私にはわかりません、それは単なる推測です。 「torrent file format」というキーワードでGoogleを検索して.torrentファイルのファイル形式を見つけましたが、代わりに多くのtorrent検索結果が返されました。したがって、今回Googleは私の友達ではありません。説明してください。

10
hkBattousai

私が理解しているように、トレントファイルには、ダウンロードするファイルの各部分のハッシュが含まれています。チェックリストに照らして、あなたが持っていると思う各ピースのハッシュをチェックするだけです。トレントをダウンロードするときのように、一致しない部分は破棄されます。

より詳細には、 bitorrent仕様 に基づいて、ダウンロードしたファイルの「ピースの長さ」と「ピース」があります。ピースの長さは各ピースのサイズであり、ピースは単に各ピースのsha1の合計であり、前のピースに追加されて長い文字列を形成します。

物事を簡単にするために、ファイルを事前割り当てし、基本的にソースファイルと同じ長さの大きな「パディング」ファイルがあるとします。まず、断片の長さに基づいて、プログラムはファイルの最初のnビットを取得し、SHA1合計を実行します。次に、ファイルのSHA1合計を「ピース」の対応する部分と比較します。それらが一致する場合、私たちは良いです。それ以外の場合は、「不良」とマークされて破棄されます。

7
Journeyman Geek