最新的版本: Stable: 0.50a | Beta: 0.50b
 Deutsch English Fran蓷is Hebrew Chinese Traditional Spanish Italian Polish Lithuanian Estonian Danish Swedish Dutch (Netherlands) Portuguese (Brazil) Czech Portuguese - Portuga Russian Catalan Turkish Finnish Romanian Greek Serbian Chinese Simplified 




Get eMule at SourceForge.net. Fast, secure and Free Open Source software downloads

損壞的處理 HelpNAV

eMule 使用各種的方式來確保檔案在網路分享及下載沒有錯誤. 萬一錯誤發生, 稱為損壞, eMule 有進階功能以最小的額外重新下載資料量來修正這個損壞.

檔案切細值和 ICH - 智慧型損壞處理

檔案切細值, 部分切細值 & 片段切細值
在網路分享的每個檔案有一個獨一無二的識別值是由 MD4 密碼數學運算所建立. 這個值稱為檔案切細值並且每個標準的 eD2k 連結都有包含, 例如

ed2k://|file|name|12043984|6744FC42EDA527B27F0B2F2538728B3E|/

其中 6744FC42EDA527B27F0B2F2538728B3E 是檔案切細值以確定這個檔案在整個網路是獨一無二的被識別出.
這個 檔案切細值 是將檔案劃分為 9.28 MB 為一個部分所計算出來. 每個部分的部分切細值也是使用相同的 MD4 運算方式計算出來. 那些 部分切細值, 稱為 片段切細值, 並且它是使用來計算出最終的檔案切細值. 例如一個 600 MB 檔案被劃分為 65 個部分每個部分都有它自己的 部分切細值 而它是用來建立最終的 檔案切細值.
為確保 eMule 總是接收到正確的一個特別的連結能包含片段切細值, 例如

ed2k://|file|name|12043984|6744FC42EDA527B27F0B2F2538728B3E| p=264E6F6B587985D87EB0157A2A7BAF40:17B9A4D1DCE0E4C2B672DF257145E98A|/

其中 p= 值表示 片段切細值. 每個 部分切細值 是由 ":" 來區隔. 這個檔案大小為 12043984 位元組 (=11.49 MB) 這表示它有一個完整的 9.28 部分和剩下的到 11.49 MB 部分為二個 部分切細片段.

ICH 智慧型損壞處理
無論何時 eMule 完成某一個部分它將會被檢查, 假如下載的資料和部分切細值一樣這個將成為已完成部分. 如果是, 這個部分會提供上載來幫助檔案的散佈.
假如不是, 一個損壞發生且這部分會再次下載. 為避免下載全部 9.28 MB, ICH 從這部分的開頭 180 KB 重新下載並且再次檢查部分是否完整. 假如不是, 下一個 180 KB 會再下載, 並再次檢查. 直到部分切細值正確為止. 最佳情況下假如損壞只在部分的開頭 eMule 只再次下載 180 KB. 最差的情況可能會整個重新下載. 在部分的損壞 ICH 平均可節省 50%.

AICH - 進階智慧型損壞處理
標準的 ICH 是相當有效的雖然它有它的限制只在整個 9.28 MB 能被驗證並且沒有完美的區塊. 假如超過一個以上的位置是損壞或是惡意客戶端一再的散佈損壞的資料或甚至是假的 部分切細值, ICH 再也沒有能力去處理.
在這裡 AICH 將會考慮完全的完整資料用一個最小重新下載量或者由建立非常完美的切細值來管理.

根切細值, 區塊切細值 & AICH 片段切細值



這次我們的起點是在一個檔案的 9.28 MB 部分. 每個部分是被分割成 180 KB 的區塊, 在每個部分將會產生 53 個區塊並且每個區塊使用 SHA1 切細運算方式計算出切細值. 那些值稱為 區塊切細值 並且根據一個低標準的一個完整 AICH 片段切細值.
在上面的圖片是顯示一個完整的切細值樹狀圖如何建立在一個完整 4 部分檔案的區塊. 每個部分包含 53 個區塊產生出 212 個 區塊切細值 其中建立在一個切細樹狀的第七層直到 根切細值 到達時. 這整個樹狀稱為 AICH 片段切細值.
綠色和黃色點顯示小型的 區塊切細值根切細值 之數學相關性. 這個表示假如我們有一個可信任的根切細值整個樹狀能被逆向的來驗證它.
eMule 能建立包含根切細值的連結, 例如

ed2k://|file|name|12043984|6744FC42EDA527B27F0B2F2538728B3E| h=A2NWOTYURUU3P3GCUB6KCNW3FTYYELQB|/

其中 h= 是 根切細值. 由提供一個可信賴的 根切細值 並發佈它應該能有明顯的改善檔案的損壞抵抗性. 閱讀 根切細值的信任

從一個損壞還原
無論何時 eMule 在一個部分偵測到一個損壞它需要用一個完整 AICH 切細值資料從隨便一個客戶端中取得一個還原封包. 這個還原封包包含在切細樹狀整體損壞部分的全部 53 個 區塊切細值 和一個 驗證切細值 的號碼. 上面圖片顯示一個 4 部分檔案的一個還原封包. 驗證切細值 的號碼是由檔案的分割部分數量來決定 (2^x >= '部分數量', 用 x = 驗證切細值號碼).
接收還原封包之後 eMule 檢查 驗證切細值 逆向確認它的根切細值. 假如它們相符, eMule 從還原封包的 區塊切細值 逆向檢查損壞部分的全部 53 個區塊. AICH 能還原全部區塊用它們的 區塊切細值 逆向相符來讓只有損壞的區塊重新下載.
在記錄中一個成功的還原看起來會像下面列出的:

09.09.2004 02:43:43: 已下載部分 6 損壞了 :( ([file])
09.09.2004 02:43:46: AICH 成功的還原 8.22 於 9.28 從部分 6 於 [file]

根切細值的信任
最佳的方式是從有 根切細值 的連結來下載. 假定這個連結的來源是可信任的根切細值而一但受信任將會把這個檔案的根切細值儲存在磁碟.
假如不是由連結提供的根切細值而是由檔案的來源送出的 eMule 也會去信任這根切細值. 它只會在一個 根切細值 最少 10 個不同的來源送出相同的值和最少全部 92% 的來源同意這個值才會去相信它是真的. 因為這個 根切細值 不是那麼可靠它只有效於目前工作階段並且不能儲存也不能用 根切細值 建連結.
一旦 eMule 建立整個 AICH 片段切細值, 例如:檔案已經完成, 它將開始傳播 根切細值 給其他的客戶端.

注意:
新釋放或罕見的檔案將也許沒有足夠的完整來源來產生一個可信任的 根切細值. 建議釋放檔案時包含這個切細值.
在一般情況下假如在那裡沒有 根切細值 或甚至是一個偽造的 eMule 將能夠成功下載並且完成這個檔案. 而 AICH 特徵不能使用在這種情況.
如同 AICH 片段切細值能非常大他們不儲存在記憶體但存在 known2.met 並且只能做讀取需求.
AICH 將只能在 eMule 客戶端 v.44a 及更新版本有效但保留舊客戶端的向下相容性.


最後更新在: 2004-09-11 , Monk 中文化:CML 2004-09-24


Last Update: 24.09.2004 11:02
常見問題
一般資訊
選項
連接埠, 防火牆 & 路由器
伺服器
特徵
 
  檔案的搜尋
額度系統
安全的使用者識別
禁止侵略性客戶端
來源交換
預覽多媒體檔案
上線簽名檔案
IRC 聊天
好友
IP 過濾
類別
Web 界面
指令行參數
MuleMRTG
eD2k 連結
來源管理
損壞的處理
發現及解決
  初學者指南
網路指南
工具