При проверке ping echo, кажется, что утилиты/библиотеки часто проверяют только контрольную сумму пакета и фактически не подтверждают, что отправленная полезная нагрузка соответствует возвращаемой полезной нагрузке. Например, синтаксический анализатор ICMP Wireshark проверяет только на неплохие контрольные суммы, и это все, что проверит и Ruby's net-ruby.Как проверить содержимое возвращенного пакета в ICMP Ping/Echo?
Я отлаживаю проблему сетевого драйвера низкого уровня, и мне нужно подтвердить, что данные не обрабатываются при получении, поэтому я хочу протестировать свой драйвер, используя запрос низкого уровня, такой как ICMP Echo. Однако мои существующие инструменты Ping недостаточны, потому что я боюсь, что, хотя контрольная сумма может соответствовать данным, содержащимся в эхо-ответе, данные в эхо-ответе не соответствуют данным в эхо-запросе. Поэтому, даже если у них есть действительные контрольные суммы (в коде контрольной суммы нет ошибки), в части приема данных есть ошибка, так что мой драйвер не получает то, что, по мнению хоста, он отправляет.
Как я могу проверить полезную нагрузку эха, чтобы подтвердить, что это то же самое, что и я отправил? Если есть автономная утилита «параноидального пинга», которую я мог бы использовать, это тоже хорошо - мне просто нужно иметь возможность изменять длину и частоту пинга, поскольку я вижу только проблему, когда сеть затоплена.
Я бы предпочел это в форме библиотеки/фрагмента Ruby, но любой язык или автономное приложение приемлемо, если я могу запустить его в Windows.
Спасибо!