MD5校验和广泛用于Http下载大文件的完整性检查。我的问题是,因为TCP本身提供了可靠的机制(即每个TCP包的校验和以确保其完整性)。因此,简而言之,TCP是可靠的。 Http基于TCP(因此Http也应该是可靠的),为什么我们需要另一种完整性检查机制(即MD5校验和)?
提前谢谢, 乔治答案 0 :(得分:11)
大多数情况下,您使用哈希值进行带外(例如,在网站上打印)检查下载完整性,而不是编程。
这可以防止操纵下载工件。
答案 1 :(得分:5)
我生命中超过3次我下载了一个破坏的ISO或EXE,当我再次下载它时,它工作了。这向我证明TCP机制不足以确保完整性。
答案 2 :(得分:4)
答案很简单。在您开始下载之前,源文件可能已经损坏。 TCP仅验证您下载的文件是否与源相同。 MD5保证您可以知道它是否已损坏原因是传输中的问题还是初始文件本身。
答案 3 :(得分:1)
当谈到35G的TED-LIUM语料库或者更大的400G小图像时,每次下载的文件中几乎都会出现错误。对于35G TED-LIUM语料库,我进行了至少20次下载和700G的网络传输,持续了几个月。 CRC只是一场噩梦。