2 des333Пример рассчета:
http://ru.wikipedia.org/wiki/UDP#.D0.9F.D1....BC.D0.BC.D1.8BОный пример видел, читал все понятно вод до этой строчки: "0x08c1 = 0000 1000 1100 0001 → 1111 Это и есть искомая контрольная сумма."
Извените за глупые вопросы, но откуда там взялась 0x0F - не могу ума приложить....
Нашел другую доку:
http://www.faqs.org/rfcs/rfc1071.htmlНа счет контрольной суммы в полях заголовков: как в полях транспортных протоколов так и протоколах сетевого уровня данное поле должно быть просчитано и забито (Возможен, правда вариант не просчета этого поля в UDP). Счёт для них происходит по одному алгоритму:поразрядное дополнение до единицы суммы всех 16-битных слов с поразрядным дополнением*(Wiki).
Разница лишь в том, что для UDP, TCP и т.д., сумма считается для всей датаграммы, а в IP - лишь для заголовка. А CRC-алгоритм применяется для подсчета контрольной суммы полностью сформированого пакета (с MAC и т.д. заголовками) и размещается в конце всей посылки.
Сообщение отредактировал s.i.suprun - Jul 13 2010, 07:37