Дополнение вместо суммы битов - PullRequest
3 голосов
/ 16 ноября 2009

Вопрос в моем домашнем задании по университету: зачем использовать дополнение, а не просто сумму битов в контрольной сумме TCP. Я не могу найти его в своей книге, и Google не помогает. Есть ли шанс, что кто-нибудь может указать мне правильное направление?

Спасибо, Mike

Ответы [ 2 ]

3 голосов
/ 16 ноября 2009

Так как это домашнее задание, вот подсказка:

Предположим, вы вычислили вторую контрольную сумму для всего пакета, включая первую контрольную сумму? Есть ли математическое выражение, которое определит результат?

2 голосов
/ 16 ноября 2009

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

Компьютеры Little Endian хранят шестнадцатеричные числа с последним LSB (например, процессоры Intel). Компьютеры Big Endian ставят LSB на первое место (например, мэйнфреймы IBM). Когда перенос добавляется в LSB для формирования суммы дополнения 1), не имеет значения, если мы добавим 03 + 01 или 01 + 03: результат будет таким же.

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

Ссылка: http://www.netfor2.com/checksum.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...