萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 軟體知識 >  >> 多媒體工具

eMule 檔案損壞修復機制深度解析:ICH 智能修復與 AICH 進階修復原理

檔案損壞處理

檔案 Hash 與 Hashset 基礎

  • 每檔案經 MD4 算出唯一檔案 Hash,包含於 eD2k 連結中(如 6744FC42EDA527B27F0B2F2538728B3E)。
  • 檔案切分為 9.28MB 檔案段,各段算出檔案段 Hash,組成 Hashset 再算出檔案 Hash。
  • 可建立含 Hashset 的擴展連結(p= 參數),確保來源可信。

ICH - 智能損壞處理

下載完檔案段 → 驗證段 Hash。
✅ 通過:可上傳分享。
❌ 失敗:報告損壞,重新下載該段前 180KB 再驗證,錯誤則繼續下載下一個 180KB,直到段 Hash 通過。
平均節省 50% 重下載量,最佳僅需 180KB,最差全段重下。

AICH - 進階智能損壞處理

ICH 僅能驗證 9.28MB 大段,多點損壞或惡意偽造段 Hash 時失效。AICH 引入更細緻驗證:

  • 每 9.28MB 段切分為 53 個 180KB 區塊,各算 SHA1 區塊 Hash。
  • 構建 7 層 Hash 樹,葉節點為區塊 Hash,根節點為 Root Hash,整體稱 AICH Hashset。
    AICH Hash樹結構
  • 可信 Root Hash 可反向驗證整棵樹。
  • 支援含 Root Hash 的擴展連結(h= 參數),發布者提供可信 Root Hash 大幅提升修復能力。

資料修復流程

  1. 偵測到段損壞 → 隨機向客戶端請求含完整 AICH Hashset 的資料修復包(含 53 區塊 Hash + 校驗 Hash)。
  2. 驗證校驗 Hash 反算 Root Hash 是否匹配。
  3. 比對 53 區塊 Hash,保留正確區塊,僅重下載損壞區塊(最小 180KB 粒度)。

日誌範例:
09.09.2004 02:43:43: 下載的文件段 6 已經損壞
09.09.2004 02:43:46: AICH 成功的恢復了 8.22 MB / 9.28 MB 文件段:6

Root Hash 信任機制

  • 最佳:從含 Root Hash 連結下載,假設來源可靠,Root Hash 信任一次並存盤。
  • 次佳:無 Root Hash 連結,信任 ≥10 來源且 92% 一致的 Root Hash(僅當前會話有效,不存盤)。
  • 完成下載後傳播 Root Hash 給其他客戶端。

注意: 新發布/稀有檔案來源不足難生成可信 Root Hash,強烈建議發布者在連結中包含 Hashset/Root Hash。無 Root Hash 仍可正常下載,但 AICH 功能失效。AICH Hashset 過大不常駐記憶體,存於 known2.met 需時讀取。支援 v0.44a+,兼容舊版。

copyright © 萬盛學電腦網 all rights reserved