From AMule Project FAQ
Revision as of 15:22, 4 August 2008 by Vollstrecker (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

English | Deutsch

The eD2k protocol is one of the most advanced in corruption handling methods.

The proper protocol defines two basic corruption handling designs, while further evolution has taken new methods into it. A description follows:

Basic hash checking

Any file in the eD2k network is identified by a unique value, which is known as the file hash. Up to here, this should be already known (check info on this in the eD2k FAQ). But this hash also allows to know if a completly downloaded file is corrupt. Check the documentation about chunk and the documentation about hash for further information.

NOTE: This corruption handling method requires Part hash checking.

Part hash checking

Since a file might be really big, the original eD2k protocol designers decided to devide all files into 9.28MB parts and hash each of them, so that it is possible to know which 9.28 part of a file is corrupt and re-download only the corrupted parts instead of the whole file.

For more information on this, read the the documentation about chunks and the documentation about hashes.


Nevertheless, losing 9.28MB might be a lot for some files, which either are rare so are hard to find sources, or are so little that 9.28MB might be mostly the whole of them, if not the whole or even, for slow connections, it might take several minutes/hours/days to download 9.28MB.

Having that in mind and in an attempt to lower the internet's load traffic with unnecessary data, a new implementation was taken into some eD2k clients, known as ICH. Read the ICH documentation for further information.


But ICH is an improvement on the client side, not a protocol feature, so it is not enough, since it's just a sort of workaround. With ICH it may happen that only 180KB have to be redownloaded, but it might also happen that a whole 9.28MB part has to be redownloaded.

This time, an improvement was made into the eD2k protocol, which is AICH. For further information, read the AICH documentation.