Исследование эха в ICMP-сообщениях
Как известно, в ICMP-сообщении об ошибке должна присутствовать часть дейтаграммы, вызвавшей эту ошибку. Эта часть состоит из IP-заголовка дейтаграммы и первых 64-х бит данных дейтаграммы, и называется "эхом" дейтаграммы.
Некоторые ОС используют IP-заголовок прибывшей дейтаграммы в качестве "рабочего пространства" на начальном этапе ее обработки. Это приводит к искажению IP-заголовка, и дейтаграмма с искаженным заголовком отправляется как эхо ICMP-сообщения.
Различные ОС по-разному искажают заголовок дейтаграммы. Например, ОС AIX и BSDI в IP-заголовке эха возвращают значение поля TotalLength на 20 байт больше первоначального значения исходной дейтаграммы. Некоторые версии ОС BSDI, FreeBSD, OpenBSD, ULTRIX и VAXen стирают поле ID в эхо-IP заголовке.
Не смотря на то, что поле "контрольная сумма" IP-заголовка так или иначе изменяется всвязи с изменением параметра TTL, некоторые ОС типа AIX, FreeBSD отправляют в эхо-дейтаграмме несоответствующую либо нулевую контрольную сумму. То же самое происходит и с контрольной суммой в UDP-пакете.
Вцелом, возможно проведение девяти различных тестов для проверки эха дейтаграммы в ICMP-сообщении и выявления различных закономерностей для разных ОС.