
решение1
Это просто заполнение пакета таким образом, чтобы он достиг минимального размера кадра Ethernet в 64 байта (шестнадцатеричное значение 40).
Поскольку сегмент ICMP меньше 64, его необходимо дополнить, чтобы соответствовать минимуму. Это делается просто добавлением алфавита, пока не будет достигнут минимум.
См. Википедию Ethernet-фрейм.
решение2
Полезная нагрузка не обязательнотолькоpadding. Фактически, полезная нагрузка может быть даже использована в некоторой степени для идентификации ОС. В этом случае я готов поспорить, что ping был запущен с машины Windows по двум причинам:
- Отсутствие временной метки в полезной нагрузке
- Идентификатор — 1
Сравните это с ping на основе Майка Муусса (FreeBSD, Mac OSX, ...), где:
- Первые 8 байтов полезной нагрузки представляют собой временную метку (struct tv32).
- Идентификатор — это младшие 16 бит идентификатора процесса
ping
самой программы.
Или в Solaris временная метка — это «struct timeval», где значение секунд может иметь 64-битное поле секунд. Другие ОС также могут изменять полезную нагрузку.
Для справки вы можете прочитать комментарии к старой ошибке Wireshark, а именно:Ошибка 5770.
Конечно, есть и другие применения полезной нагрузки ICMP, например, для туннелирования ICMP. Вот только одна статья, которая об этом говорит, под названием,Ping Power - туннель ICMP.
В любом случае полезная нагрузка ICMP не обязательно представляет собой просто заполнение.