Веб-сайты, предоставляющие файлы ISO для загрузки, часто предоставляют контрольные суммы md5 этих файлов, которые мы можем использовать для подтверждения того, что файл загружен правильно и не поврежден.
Почему это необходимо? Конечно, корректирующие ошибки свойства TCP достаточны. Если пакет получен неправильно, он будет передан повторно. Разве сама природа соединения TCP / IP не гарантирует целостность данных?
Ответы:
Как отмечалось другими, существует много возможностей для повреждения данных, когда любая контрольная сумма на транспортном уровне не может помочь, например, повреждение происходит уже до того, как контрольная сумма вычислена на отправляющей стороне, MITM перехватывает и изменяет поток (данные также в качестве контрольных сумм), повреждение происходит после проверки контрольной суммы на принимающей стороне и т. д.
Если мы игнорируем все эти другие возможности и сосредоточимся на специфике самой контрольной суммы TCP и на том, что она на самом деле делает с точки зрения проверки целостности данных, оказывается, что свойства этой контрольной суммы совсем не являются исчерпывающими с точки зрения обнаружения ошибок. То, как был выбран этот алгоритм контрольной суммы, скорее отражает требование к скорости в сочетании с периодом времени (конец 1970-х годов).
Вот как вычисляется контрольная сумма TCP :
Это означает, что любое искажение, которое уравновешивается при суммировании данных таким образом, останется незамеченным. Существует несколько категорий искажения данных, которые это допустят, но это просто тривиальный пример: изменение порядка 16-битных слов всегда останется незамеченным.
На практике он улавливает много типичных ошибок, но совсем не гарантирует целостность. Этому также помогает то, как уровень L2 также выполняет проверки целостности (например, CRC32 кадров Ethernet), хотя только для передачи по локальной линии связи, и многие случаи поврежденных данных даже не передаются в стек TCP.
Проверка данных с использованием надежного хэша или, предпочтительно, криптографической подписи, находится на совершенно другом уровне с точки зрения обеспечения целостности данных. Эти два понятия едва ли можно сравнить.
источник
Вероятно, существует масса причин, по которым нужно проверять md5sum, но некоторые из них приходят мне на ум:
И все равно это займет всего несколько секунд.
источник
TCP / IP гарантирует целостность данных *. Но это не гарантирует, что 100% файла было загружено. Может быть много причин, почему это могло произойти. Например: возможно, что вы можете смонтировать ISO, который пропускает один или два байта где-то посередине. У вас не будет проблем с этим, пока вам не понадобится один или два поврежденных файла. Сравнение контрольных сумм гарантирует, что вы действительно загрузили весь файл.
* см. комментарий
источник
Контрольная сумма TCP составляет всего 16 бит. Это означает, что при отсутствии других контрольных сумм один из каждых 65536 поврежденных пакетов будет принят как не поврежденный. Например, если вы загружали образ DVD объемом 8 ГБ по зашумленной ссылке с уровнем коррупции 1%, вы ожидаете 81 необнаружимо поврежденных пакетов.
MD5 - намного большая контрольная сумма, в 128 битах. Вероятность того, что эти 81 пакет произведет что-то с той же контрольной суммой, что и оригинал, составляет примерно 1 на 1 000 000 000 000 000 000 000 000 000 000 000.
источник
Существует несколько причин для проверки контрольной суммы файла, загруженного через HTTP:
1 источник в комментарии, потому что LOL Rep
источник
Даниэль, в зависимости от инструмента, который вы используете для загрузки ISO, скажем. Если это Скажи Firefox .. Это может показать загрузку файла. Однако у вас может не быть полной целостности ISO. Если вы записали его, попробуйте использовать его, информация может отсутствовать. Это происходит время от времени на разных веб-серверах, размещающих файлы.
Рекомендуется хотя бы сравнить размер файла (общее количество байт или бит), чтобы убедиться, что они совпадают. Windows покажет число байтов файла, отличное от Linux. Проверка суммы MD5 покажет одинаковые значения независимо от того, какая ОС используется. Надеюсь, что это помогает немного. Приветствия ...
источник
Я замечаю много интересных ответов, но есть последнее, на что нужно обратить внимание: проблема двух генералов
Проблема двух генералов и проблема византийских генералов специально рассматривают последствия надежной передачи информации по ненадежным каналам.
Контрольные суммы - это всего лишь еще один уровень «повышения надежности», который имеет очень малую вероятность отказа. Это причина, почему он так популярен.
источник