в вычислении контрольной суммы заголовка ICMP?

0

в заголовке ICMP они заполняют контрольную сумму следующим утверждением

я нашел значение ICMP_ECHO как 8

 icmp->checksum = htons(~(ICMP_ECHO << 8));

может ли кто-нибудь сказать мне, что именно он будет делать, и как он заполнит детали контрольной суммы

Теги:
networking
packet
icmp

1 ответ

2
Лучший ответ

Контрольная сумма ICMP является контрольной суммой RFC 1071:

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

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

Поле типа и кода должно быть 0x08 0x00 для сообщения ICMP_ECHO (тип 8, код 0), и если это все данные, которые содержит сообщение, это также сумма из 16-битных целых чисел, которые должны формировать контрольную сумму.

  • 0
    спасибо, извините за очень поздний ответ

Ещё вопросы

Сообщество Overcoder
Наверх
Меню