ICH-de

From AMule Project FAQ
Revision as of 14:55, 22 January 2006 by Ihmselbst (Talk | contribs)

Jump to: navigation, search

English | Deutsch

Beschreibung

Wenn ein Chunk runtergeladen wurde, der sich als corrupt herausstellt, würde aMule normalerweise den gesamten Chunk (9.28MB) nochmal komplett runterladen, um die richtige Datei zu erhalten. ICH (Intelligent Corrupt Handling) ist eine Lösung, um das erneute Wiederrunterladen des gesamten Chunks möglichst zu vermeiden.

Wie funktioniert das?

Wenn ein Chunk als corrupt bekannt ist, wird damit begonnen, ihn erneut runterzuladen. Anstatt den gesamten, schon herabgeladenen Chunk zu verwerfen, wird er behalten, und nur die ersten 180KB gelöscht. Dann werden die ersten 180KB dieses Chunks erneut geladen.

Nachdem diese erhalten wurden, werden sie dem Rest des bereits runtergeladenen Chunks zugefügt, und dieser dann neu gehasht, um zu überprüfen, ob die Dateiprüfsumme der erwarteten entspricht. Falls dem so ist, wurde der Chunk erfolgreich fertiggestellt. Falls nicht, werden die nächsten 180KB des Chunks geladen, und so fort.

Welche Ergebnisse werden erzielt?

Der günstigste Fall, der bei ICH eintreten kann, ist, daß die ersten 180KB des Chunks corrupt sind. In diesem Fall mußten lediglich 180KB statt des gesamten, 9.18MB großen [FAQ_eD2k-Kademlia-de#Was_ist_ein_Block?|Chunk]]s nachgeladen werden.

Der schlimmste Fall wäre, wenn die letzten 180KB eines Chunks die corrupten Bytes sind. In diesem Fall wurde der komplette Chunk neu runtergeladen. Wie dem auch sei, wenn I.C.H. ausgeschaltet gewesen wäre, hätte man den Chunk ebenfalls komplett neu runtergeladen, also im Grunde kein großer Verlust (von etwas Prozessorleistung abgesehen).

Ist es nützlich?

Man sagt, daß es durchschnittlich bis zu 50% der corrupt runtergeladenen Chunks einspart, was bedeutet, daß von je 100MB corrupter Daten nur 50MB neu geladen werden müssen. Das ist ziemlich gut!

Benötigt es viel CPU-Leistung?

Überhaupt nicht. Das Hashen der Chunks benötigt mit modernen Prozessoren weit weniger Rechenleistung, als allgemein angenommen. Weil durchschnittlich 50% corrupter Daten (und möglicherweise sogar bis zu99%) eingespart werden, und der Dateihash nur gelegentlich, also bei Bedarf, neu berechnet wird, liegt die dadurch benötigte CPU-Belastung praktisch bei Null.

Selbst bei älteren Prozessoren sollte man sich dazu entscheiden, ICH nicht zu deaktivieren, weil die erforderliche Rechenleistung, verglichen mit der Menge eingesparter corrupter Daten schon ausreicht, es aktiviert zu lassen.

I.C.H. kann unter "Einstellungen" -> "Dateien" -> "Intelligente Fehlerkorrektur" -> "I.C.H." -> "I.C.H. aktiviert" ausgeschaltet werden.

Zusatzbemerkung: Man beachte in dem Zusammenhang auch die AICH-Dokumentation weil AICH eine Weiterentwicklung von I.C.H. ist.