6

Может ли медленное интернет-соединение при загрузке большого файла вызвать его повреждение?

5 ответов5

9

Зависит от того, как вы его передаете: при условии, что вы загружаете с использованием HTTP, FTP, BitTorrent или какой-либо другой службы TCP, все пакеты данных (в конечном итоге) будут в целости и сохранности. Это займет больше времени на медленном соединении.

Если бы вы передавали данные на модем V92 с помощью kermit или более примитивного механизма, то возможны ошибки при передаче.

Но используя интернет-протоколы, единственный способ получить поврежденный файл - это если загрузка была неполной; это может произойти, если ваш браузер или менеджер загрузок немного не решаются, когда закончится передача. Затем вы получаете короткий файл: ваши данные не повреждены, но у вас их нет.

Если ваше интернет-соединение ненадежное, и вы часто отключаетесь, ваше программное обеспечение все равно должно быть в состоянии справиться с этим и должно просто определить, где оно было прервано, когда вы вернетесь в сеть.

Базовый протокол TCP использует контрольную сумму, чтобы убедиться, что каждый пакет (фактически "сегмент" в TCP-говорить) является правильным, и будет повторно передавать сегменты, которые будут обнаружены поврежденными.

Сказав все это, вполне возможно, что некоторые паразитные космические лучи могут немного перевернуться в данных, когда они поступают на диск, поэтому при распределении больших файлов обычно где-то публикуется контрольная сумма: обычно это хеш MD5 или SHA, и вы может найти программное обеспечение для вычисления этих контрольных сумм на вашей собственной копии файла. Если вы беспокоитесь о приобретении какого-либо старого (возможно, изобилующего вирусами) бесплатного программного обеспечения, то Microsoft предоставляет инструмент для проверки контрольных сумм.

Клиенты BitTorrent неявно используют контрольные суммы, чтобы гарантировать, что данные не повреждены.

5

Обновление: в первой версии моего ответа я путал обнаружение ошибок кода Хемминга с обнаружением ошибок контрольной суммы, которое используется в TCP/IP. Гораздо менее вероятно, что ошибки останутся незамеченными, если будет использована контрольная сумма. Теоретически это все еще возможно, если есть ошибки в части контрольной суммы пакета и в остальной части. Но это очень маловероятно. Есть и другие источники ошибок, которые могут повредить данные.

Как упоминалось в другом ответе, вы можете обнаружить ошибки в загруженном файле, проверив контрольную сумму файла (например, MD5SUM).

Причиной повреждения данных всегда является неисправное соединение или другая аппаратная / программная ошибка (например, неисправная файловая система или жесткий диск), скорость соединения не важна. Но дефектное соединение может замедлить передачу и, следовательно, привести к медленной передаче данных.

1

Да, оно может... Ваш компьютер получает файлы с сервера в виде пакетов данных, если при передаче данных происходит какое-либо отключение из-за медленного соединения, это означает, что в вашем файле МОЖЕТ быть ошибка.

1

@Customizer пишет: «Но они способны обнаруживать только ограниченное количество ошибок в пакете (только одно- или двухбитные ошибки)» - Возможно, вы думаете о проверке ECC в модулях RAM? Контрольные суммы могут обнаруживать более чем одно- или двухбитные ошибки. Протокол TCP может также обнаруживать другие ошибки, помимо поврежденных данных пакета, см .: tcpipguide.com .

Написал бы это как комментарий, но кнопка «Отправить» скрыта в правом столбце текста в моем браузере.

0

Да, это возможно. Недавно я услышал о ком-то, у кого были подобные проблемы, и оказалось, что это были только файлы, которые они загружали при использовании определенного интернет-провайдера. Хотя это менее вероятно, стоит иметь в виду.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .