Исследование поля ACK в TCP-пакете
Рекомендацией RFC 793 определено стандартное изменение поля ACK в TCP-пакетах при установлении соединения, передаче данных и закрытии соединения. Однако в нестандартных ситуациях различные ОС по-разному устанавливают значение этого поля.
Исследование проводится следующим образом. На закрытый TCP-порт хост отправляет FIN|PSH|URG-пакет с известным значением ISN в поле ISS. Большинство ОС скопируют значение ISN, прибывшее в ISS, в поле ACK ответа. Однако ОС Windows и некоторые сетевые принтеры отправят в поле ACK ответа ISN+1. Если хост пошлет SYN|FIN|PSH|URG-пакет, поведение Windows предсказать трудно. Иногда эта ОС отправляет в поле ACK ответа прибывший ISN, иногда - ISN+1, иногда - по всей видимости, случайное значение. Остается только догадываться, какой код написала Microsoft для обработки подобной ситуации.