English | Deutsch
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.
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.
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.