Может ли медленное интернет-соединение при загрузке большого файла вызвать его повреждение?
5 ответов
Зависит от того, как вы его передаете: при условии, что вы загружаете с использованием HTTP, FTP, BitTorrent или какой-либо другой службы TCP, все пакеты данных (в конечном итоге) будут в целости и сохранности. Это займет больше времени на медленном соединении.
Если бы вы передавали данные на модем V92 с помощью kermit или более примитивного механизма, то возможны ошибки при передаче.
Но используя интернет-протоколы, единственный способ получить поврежденный файл - это если загрузка была неполной; это может произойти, если ваш браузер или менеджер загрузок немного не решаются, когда закончится передача. Затем вы получаете короткий файл: ваши данные не повреждены, но у вас их нет.
Если ваше интернет-соединение ненадежное, и вы часто отключаетесь, ваше программное обеспечение все равно должно быть в состоянии справиться с этим и должно просто определить, где оно было прервано, когда вы вернетесь в сеть.
Базовый протокол TCP использует контрольную сумму, чтобы убедиться, что каждый пакет (фактически "сегмент" в TCP-говорить) является правильным, и будет повторно передавать сегменты, которые будут обнаружены поврежденными.
Сказав все это, вполне возможно, что некоторые паразитные космические лучи могут немного перевернуться в данных, когда они поступают на диск, поэтому при распределении больших файлов обычно где-то публикуется контрольная сумма: обычно это хеш MD5 или SHA, и вы может найти программное обеспечение для вычисления этих контрольных сумм на вашей собственной копии файла. Если вы беспокоитесь о приобретении какого-либо старого (возможно, изобилующего вирусами) бесплатного программного обеспечения, то Microsoft предоставляет инструмент для проверки контрольных сумм.
Клиенты BitTorrent неявно используют контрольные суммы, чтобы гарантировать, что данные не повреждены.
Обновление: в первой версии моего ответа я путал обнаружение ошибок кода Хемминга с обнаружением ошибок контрольной суммы, которое используется в TCP/IP. Гораздо менее вероятно, что ошибки останутся незамеченными, если будет использована контрольная сумма. Теоретически это все еще возможно, если есть ошибки в части контрольной суммы пакета и в остальной части. Но это очень маловероятно. Есть и другие источники ошибок, которые могут повредить данные.
Как упоминалось в другом ответе, вы можете обнаружить ошибки в загруженном файле, проверив контрольную сумму файла (например, MD5SUM).
Причиной повреждения данных всегда является неисправное соединение или другая аппаратная / программная ошибка (например, неисправная файловая система или жесткий диск), скорость соединения не важна. Но дефектное соединение может замедлить передачу и, следовательно, привести к медленной передаче данных.
Да, оно может... Ваш компьютер получает файлы с сервера в виде пакетов данных, если при передаче данных происходит какое-либо отключение из-за медленного соединения, это означает, что в вашем файле МОЖЕТ быть ошибка.
@Customizer пишет: «Но они способны обнаруживать только ограниченное количество ошибок в пакете (только одно- или двухбитные ошибки)» - Возможно, вы думаете о проверке ECC в модулях RAM? Контрольные суммы могут обнаруживать более чем одно- или двухбитные ошибки. Протокол TCP может также обнаруживать другие ошибки, помимо поврежденных данных пакета, см .: tcpipguide.com .
Написал бы это как комментарий, но кнопка «Отправить» скрыта в правом столбце текста в моем браузере.
Да, это возможно. Недавно я услышал о ком-то, у кого были подобные проблемы, и оказалось, что это были только файлы, которые они загружали при использовании определенного интернет-провайдера. Хотя это менее вероятно, стоит иметь в виду.