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

Обновлено: 30.06.2024

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

Технологии обнаружения ошибок отвечают за проверку того, произошла ли какая-либо ошибка в кадре, который был передан по сети. При этом не учитывается количество битов ошибки и тип ошибки.

Для обнаружения ошибок отправителю необходимо отправить дополнительные биты вместе с битами данных. Приемник выполняет необходимые проверки на основе дополнительных избыточных битов. Если он обнаруживает, что данные не содержат ошибок, он удаляет избыточные биты перед передачей сообщения на верхние уровни.

Существует три основных метода обнаружения ошибок во фреймах: проверка четности, контрольная сумма и проверка циклическим избыточным кодом (CRC).

Контрольные суммы

Это метод блочного кода, при котором контрольная сумма создается на основе значений данных в блоках данных, которые должны быть переданы с использованием некоторого алгоритма и добавлены к данным. Когда получатель получает эти данные, вычисляется новая контрольная сумма и сравнивается с существующей контрольной суммой. Несоответствие указывает на ошибку.

Обнаружение ошибок по контрольным суммам

Для обнаружения ошибок по контрольным суммам данные делятся на кадры или сегменты фиксированного размера.

Конец отправителя. Отправитель складывает сегменты, используя арифметику с дополнением до 1, чтобы получить сумму. Затем он дополняет сумму, чтобы получить контрольную сумму, и отправляет ее вместе с фреймами данных.

Конец получателя. Получатель складывает входящие сегменты вместе с контрольной суммой, используя арифметику дополнения до 1, чтобы получить сумму, а затем дополняет ее.

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

Пример

Предположим, что отправитель хочет отправить 4 кадра по 8 бит каждый, где кадры 11001100, 10101010, 11110000 и 11000011.

Отправитель добавляет биты, используя арифметику с дополнением до 1. При сложении двух чисел с использованием арифметики с дополнением до 1, если есть перенос, он добавляется к сумме.

После добавления всех 4 фреймов отправитель дополняет сумму, чтобы получить контрольную сумму 11010011, и отправляет ее вместе с фреймами данных.

Приемник выполняет арифметическую сумму всех кадров, включая контрольную сумму, с точностью до 1 с. Результат дополняется и оказывается равным 0. Следовательно, получатель предполагает, что ошибки не произошло.

Подробнее об основных функциях, отличительных чертах, сильных и слабых сторонах платформ блокчейна, которые получают максимальную отдачу .

Эксперты высоко оценивают недавно предложенное Комиссией по ценным бумагам и биржам США правило раскрытия информации о климатических рисках, которое требует от компаний выявлять климатические риски .

Недавнее мероприятие Accenture Technology Vision подчеркнуло трансформационные возможности виртуальных миров, а также указало на .

Одного обвиняемого обвиняют в использовании печально известного вредоносного ПО Trisis или Triton против компаний энергетического сектора, включая домен .

Microsoft хочет сделать Defender единственным продуктом для защиты конечных точек, который нужен компаниям, но перевешивают ли преимущества недостатки? Прочтите .

От недовольных сотрудников до скомпрометированных пользователей и сторонних поставщиков — вот шесть типов внутренних угроз и рекомендации .

Новейшее аппаратное обеспечение Cisco и привязка Intersight к общедоступному облаку Kubernetes расширяют возможности гибридных облачных продуктов для клиентов. Но .

Чтобы преодолеть разрыв между командами NetOps и SecOps, сетевые специалисты должны знать основы безопасности, включая различные типы .

Какова реальность новых сетевых технологий? Здесь эксперты определяют риски — реальные или предполагаемые — и преимущества, которые они несут .

Удвоив свою инициативу RPA, ServiceNow представила версию своей платформы Now для Сан-Диего, которая содержит центр RPA и a.

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

Intel оптимистично настроена, что ее дорожная карта процессоров может вернуть компанию на первое место, но компания сталкивается со сложной перспективой .

Поставщик базы данных как услуги расширил возможности сбора данных об изменениях в своей облачной базе данных с помощью технологий из своего .

Поставщик платформы "база данных как услуга" стремится облегчить разработчикам создание приложений, управляемых данными, и возврат к исходному состоянию.

Хранилище данных Apache Pinot OLAP с открытым исходным кодом стало проще в развертывании, управлении и эксплуатации в облаке благодаря улучшенному .

Всегда существует вероятность того, что данные были повреждены (каким-либо образом изменены) во время передачи.

Это верно независимо от расстояния передачи.

Во избежание повреждения данных очень важно, чтобы компьютеры проверяли наличие ошибок и по возможности исправляли их.

Существует несколько методов проверки ошибок, некоторые из которых более эффективны, чем другие.

Проверка четности

Дополнительный бит (бит четности), добавляемый к строке двоичного кода, чтобы гарантировать, что количество 1-битов будет четным или нечетным, в зависимости от используемой системы проверки четности.

Метод

  1. Отправляющий и принимающий компьютеры согласовывают используемый протокол (четный или нечетный)
  2. Компьютер-отправитель добавляет к двоичным данным правильный бит четности (дополнительную 1 или 0)
  3. Компьютер-отправитель отправляет двоичные данные, включая бит четности.
  4. Принимающий компьютер проверяет, чтобы убедиться, что общая четность полученных данных соответствует согласованию (четное или нечетное число 1 битов)
  5. Если четность данных неверна, принимающий компьютер запросит повторную передачу данных

Недостатки проверки на четность

  • Если два бита переставлены (поменяны местами), компьютер может быть обманут, думая, что данные верны и не повреждены.
  • Если два случайных бита изменяют состояние, система также может быть обманута

Блок четности

Этот метод проверки на наличие ошибок похож на традиционную проверку на четность, за исключением того, что данные располагаются в виртуальной таблице с добавлением битов четности к каждой строке и столбцу.

На пересечении поврежденной строки и столбца можно обнаружить один поврежденный бит.

Несколько поврежденных битов также повредят эту систему.

Контрольная сумма

Блок данных отправляется вместе с рассчитанным значением контрольной суммы.

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

Затем значения контрольной суммы сравниваются, чтобы определить, не произошла ли ошибка при передаче.

Метод

  1. Компьютер-отправитель использует блок отправляемых данных и заранее заданный математический алгоритм для вычисления контрольной суммы.
  2. Компьютер-отправитель отправляет данные вместе со значением контрольной суммы.
  3. Принимающий компьютер использует полученные данные для вычисления того, что, по его мнению, должно быть контрольной суммой, используя тот же математический алгоритм.
  4. Принимающий компьютер сравнивает два значения контрольной суммы.
  5. Из-за характера алгоритма очень маловероятно, что произошло повреждение, если значения контрольной суммы совпадают.
  6. Если значения контрольной суммы не совпадают, принимающий компьютер запрашивает повторную передачу данных

Контрольная цифра

Контрольная цифра — это последняя цифра в коде чисел. Он рассчитывается из всех остальных цифр кода. Он предназначен для выявления человеческих ошибок при вводе данных.

Контрольные цифры часто встречаются в штрих-кодах, кодах продуктов или номерах книг ISBN.

Существует множество различных математических алгоритмов, которые можно использовать для вычисления контрольной цифры. В разных отраслях будет свой предпочтительный метод.

Метод

  1. Контрольная цифра вычисляется и добавляется к штрих-коду, упаковке, коду продукта и т. д. на месте производства.
  2. Человек вводит длинный числовой код в компьютер, например кассир введет номер штрих-кода в случае сбоя сканера или повреждения упаковки
  3. Компьютер вычисляет то, что, по его мнению, должно быть контрольной цифрой на основе чисел, введенных человеком.
  4. Затем компьютер сравнивает рассчитанную контрольную цифру с контрольной цифрой, введенной человеком (последняя цифра в длинном коде).
  5. Если они не совпадают, значит, человек допустил ошибку при вводе числового кода, например номер штрих-кода
  6. Компьютер попросит человека повторно ввести числовой код

Преимущества

Подходит для выявления человеческих ошибок, таких как:

  • Введена неверная цифра
  • Ошибка транспонирования (два числа меняют порядок)
  • Пропущенная или лишняя цифра

Автоматические повторные запросы (ARQ)

Эта форма обнаружения ошибок использует систему подтверждений и тайм-аутов. Автоматические повторные запросы часто используются для обеспечения надежной передачи через ненадежный сервис.

Подтверждения — это сообщения, отправленные с принимающего устройства обратно на исходное отправляющее устройство.

Подтверждение может быть отрицательным или положительным.

Положительное подтверждение означает, что данные были получены и прошли проверку на наличие ошибок.

Отрицательное подтверждение означает, что данные были получены, но их нельзя использовать, так как они не прошли проверку на наличие ошибок. Его необходимо отправить повторно.

Тайм-аут – это заданный период времени, в течение которого отправляющее устройство будет ожидать подтверждения отправленных данных.

Если по истечении времени ожидания подтверждение не получено, устройство снова отправит данные. Это продолжается автоматически до тех пор, пока не будет получено подтверждение или пока не будет выполнено максимальное количество повторных отправок.

Метод

  1. Компьютер-отправитель передает блок данных
  2. Компьютер-отправитель ждет некоторое время, чтобы проверить, подтверждает ли компьютер-получатель получение данных.
  3. После отсутствия подтверждения в течение заданного периода времени происходит тайм-аут, который запускает автоматическую повторную отправку данных отправляющим компьютером.
  4. Это будет продолжаться до тех пор, пока принимающий компьютер не подтвердит получение данных или пока не будет выполнено максимальное количество повторных отправок.

 Автоматический повтор запроса ARQ

Эхопроверка

При эхо-проверке принимающий компьютер немедленно отправляет копию данных обратно на отправляющий компьютер для сравнения.

Компьютер-отправитель сравнивает два набора данных, чтобы проверить, не возникли ли какие-либо ошибки в процессе передачи.

Тим Фишер имеет более чем 30-летний опыт работы в сфере технологий. Он пишет о технологиях более двух десятилетий и является вице-президентом и генеральным директором Lifewire.

Контрольная сумма — это результат выполнения алгоритма, называемого криптографической хеш-функцией, над фрагментом данных, обычно в одном файле. Сравнение контрольной суммы, созданной на основе вашей версии файла, с той, которая предоставлена ​​источником файла, помогает убедиться, что ваша копия файла является подлинной и не содержит ошибок.

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

Фото со словами

Простой пример контрольной суммы

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

Давайте начнем с простого примера, который, мы надеемся, продемонстрирует силу контрольных сумм для доказательства того, что что-то изменилось. Контрольная сумма MD5 для следующей фразы представляет собой длинную строку символов, представляющую это предложение.

Для наших целей они практически равны друг другу. Однако даже незначительное изменение, например удаление только точки, приведет к получению совершенно другой контрольной суммы.

Как видите, даже незначительное изменение в файле приведет к совершенно другой контрольной сумме, из чего становится ясно, что одно не равно другому.

Случай использования контрольной суммы

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

Как узнать, что файл получен правильно после загрузки? Что, если во время передачи были потеряны несколько битов, и файл, который сейчас находится на вашем компьютере, совсем не соответствует тому, что было задумано? Применение обновления к программе, которая отличается от той, в которой ее создал разработчик, может вызвать у вас большие проблемы.

Здесь сравнение контрольных сумм может успокоить вас. Предполагая, что веб-сайт, с которого вы загрузили файл, предоставляет данные контрольной суммы вместе с загружаемым файлом, вы можете использовать калькулятор контрольной суммы (см. «Калькуляторы контрольной суммы» ниже), чтобы вычислить контрольную сумму из загруженного файла.

Например, предположим, что веб-сайт предоставляет контрольную сумму MD5:5a828ca5302b19ae8c7a66149f3e1e98 для загруженного вами файла. Затем вы используете свой собственный калькулятор контрольной суммы для получения контрольной суммы с использованием той же криптографической хэш-функции, в данном примере MD5, для файла на вашем компьютере. Совпадают ли контрольные суммы? Здорово! Вы можете быть уверены, что эти два файла идентичны.

Контрольные суммы не совпадают? Это может означать что угодно: от того факта, что кто-то без вашего ведома заменил загрузку чем-то вредоносным, до менее зловещей причины, такой как то, что вы открыли и изменили файл, или сетевое соединение было прервано, и файл не завершил загрузку. Попробуйте загрузить файл еще раз, а затем создайте новую контрольную сумму для нового файла, а затем снова сравните.

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

Калькулятор контрольной суммы

Калькуляторы контрольных сумм — это инструменты, используемые для вычисления контрольных сумм. Их много, и каждая поддерживает свой набор криптографических хеш-функций.

Хорошим бесплатным вариантом является Microsoft File Checksum Integrity Verifier, сокращенно FCIV. Он поддерживает только криптографические хеш-функции MD5 и SHA-1, но на данный момент они являются наиболее популярными. Полное руководство см. в нашей статье о том, как проверить целостность файлов в Windows с помощью FCIV. Microsoft File Checksum Integrity Verifier — это программа командной строки, но она очень проста в использовании.

Вы также можете использовать встроенную в Windows программу certutil. Это также инструмент командной строки, но его также легко использовать для проверки контрольной суммы файлов MD5. В этой статье также описывается, как сделать то же самое в Linux с помощью md5sum.

Другим отличным бесплатным калькулятором контрольной суммы для Windows является IgorWare Hasher, и он полностью переносим, ​​поэтому вам не нужно ничего устанавливать (но вам понадобится программа для открытия файлов RAR, чтобы распаковать программу). Если вам не нравятся инструменты командной строки, этот инструмент, вероятно, будет лучшим выбором. Он поддерживает MD5 и SHA-1, а также CRC32. Вы можете использовать его для поиска контрольной суммы текста и файлов.

IgorWare Hasher

JDigest – это калькулятор контрольной суммы с открытым исходным кодом, который работает как в Windows, так и в macOS и Linux.

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

Да. Только одинаковые файлы будут иметь одинаковую контрольную сумму. Изменение чего-либо, кроме имени файла, приведет к другой контрольной сумме.

Калькуляторы контрольных сумм используют ряд алгоритмов, включая продольную проверку четности, контрольную сумму Флетчера, Adler-32 и проверки циклическим избыточным кодом (CRC).

Вы можете получить контрольную сумму сразу нескольких файлов с помощью команды MD5. Откройте терминал и введите md5, а затем имя каждого файла (через пробелы), затем нажмите Enter.

Читайте также: