Контрольная сумма Интернета используется в стандартных интернет-протоколах, таких как IP, UDP и TCP. Это значение используется для проверки целостности данных после передачи по сети. Клиент включает значение контрольной суммы в заголовок сегмента, чтобы получатель мог использовать это значение для прямой проверки целостности данных.

Как рассчитываются контрольные суммы Интернета?

Средства вычисления контрольной суммы Интернета описаны в RFC1071 1988 г. и могут быть обобщены следующим образом:

  1. Преобразование данных в серию 16-битных целых чисел;
  2. Вычислить сумму всех 16-битных целых чисел с учетом переноса битов;
  3. Возьмите дополнение до 1 окончательной суммы (переверните биты)

Для чего используются контрольные суммы в Интернете?

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

  1. Преобразование сегмента данных в серию 16-битных целых чисел;
  2. Вычислить сумму всех 16-битных целых чисел с учетом переноса битов;
  3. Добавьте контрольную сумму к итоговой сумме;
  4. Если окончательная сумма состоит из единиц, данные проверяются;
  5. Если обнаружены какие-либо 0, данные были повреждены.

Как проверяются контрольные суммы Интернета?

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

  1. Вычисление суммы может быть выполнено одинаково независимо от машины endian-ness;
  2. можно использовать замену байтов, чтобы избежать проблем с границами слов;
  3. возможно параллельное суммирование на 32-битных машинах (в то время 32 было современно)
  4. Отсрочка переноса битов
  5. Сочетание контрольной суммы и копирования данных;
  6. Инкрементальные обновления контрольной суммы

Примечание. Шаг № 6 был обновлен в более позднем RFC1141.

Пошаговая разбивка

Теория вычисления контрольной суммы учитывает множество вариантов использования и может показаться довольно сложной для тех, кто не знаком с ее последствиями. Ниже приведена простая иллюстрация того, как можно вычислить контрольную сумму для сегмента данных из 8 бит, разделенного на 2 4-битных слова.

Окончательное значение 1101 представляет собой дополнение до 1 общей суммы битов данных сегмента. Это значение вставляется в заголовок для использования при проверке на стороне получателя. Получатель проверяет целостность данных аналогично тому, как создавалась контрольная сумма; путем организации данных в 16-битные сегменты, добавления всех значений и размещения битов переноса с циклическим переносом.

Затем к этой сумме добавляется контрольная сумма; если результатом являются все единицы, целостность данных проверяется. Если есть 0, данные считаются поврежденными. На следующем рисунке показан процесс проверки контрольной суммы Интернета на стороне получателя:

Обсуждение

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

Контрольная сумма статьи в Интернете: пошаговое руководство изначально была опубликована на веб-сайте Overcoded и опубликована здесь с разрешения.