Я написал программу, которая (в бесконечном цикле) отправляет пакет эхо-запроса ICMP (пакет состоит только из заголовка IP и только заголовка ICMP), ждет некоторое время, а затем получает пакет эхо-ответа ICMP, отправленный сервером (если есть ).
Когда время ожидания достаточно велико (~ 10 с), все работает как положено - моя программа отправляет пакет, ждет, а затем, после времени ожидания, ответ готов к приему программой. Проблема возникает, когда я устанавливаю время ожидания менее 5 секунд (очевидно, оно все еще намного больше, чем время пинга): первая итерация цикла работает так, как должна, но на каждой последующей итерации я не получаю никаких пакетов эхо-ответа ICMP. Проблема появляется только тогда, когда заголовки ICMP всех пакетов, которые отправляет моя программа, одинаковы - когда заголовки имеют разные порядковые номера, проблема исчезает (для каждого запроса приходит ответ).
Я немного погуглил, но не нашел объяснения этому явлению. Сервер или один из маршрутизаторов на пути к серверу блокируют мои пакеты из-за того, что один и тот же контент поступает через слишком короткие промежутки времени? Это какая-то система против пинг-флуд-атаки?