в заголовке ICMP они заполняют контрольную сумму следующим утверждением
я нашел значение ICMP_ECHO как 8
icmp->checksum = htons(~(ICMP_ECHO << 8));
может кто-нибудь сказать мне, что именно он будет делать и как он будет заполнять детали контрольной суммы
ICMP контрольная сумма является Контрольная сумма RFC 1071:
(1) Соседние октеты, подлежащие контрольной сумме, соединены в 16-битную форму
целые числа, и сумма дополнения 1 этих 16-битных целых чисел
формируется.(2) Для создания контрольной суммы само поле контрольной суммы очищается,
сумма дополнения 16-битного 1 вычисляется по октетам
обеспокоен, и дополнение 1 этой суммы помещается в
поле контрольной суммы.
Поле типа и кода должно быть 0x08 0x00
для сообщения ICMP_ECHO (тип 8, код 0), и если это все данные, содержащиеся в сообщении, то это также сумма 16-битных целых чисел, которые должны формировать контрольную сумму.
Других решений пока нет …