
Еще раз повторим, почему увеличивается интервал ожидания каждого нового посланного
сегмента. Так как стек TCP/IP должен работать в произвольной составной сети, с заранее
непредсказуемыми задержками, он должен быть готов эффективно работать как в условиях малых
задержек (т.е. работать быстро при малых задержках), так и в условиях больших задержек (т.е.
обеспечивать возможность обмена данными при больших задержках). Именно поэтому стек
начинает повторы сегментов с небольших таймаутов, постепенно увеличивая эти таймауты в случае
отсутствия ответов.
Теперь рассмотрим другой пример: пусть станция получатель доступна в сети, но на порту, к
которому обращается клиент, отсутствует процесс. Убедимся с помощью утилиты netstat.exe, что на
узле 192.168.0.1 отсутствует служба на порту 999 и обратимся с помощью утилиты sock или telnet к
данному порту, проанализируем трафик (файл TCP4.cap).
Видно, что в сегменте 1 клиент предлагает серверу установить TCP соединение с портом
999, такой сегмент нам уже встречался неоднократно. Во втором сегменте сервер отвечает клиенту,
что установить соединение не возможно, так как у сервера на указанном порту отсутствует служба
– на это указывает флаг RST. Отметим при этом, что сервер заполняет поле Acknowledged Number
правильно (т.е. увеличивает на единицу значение поля Sequence Number из первого сегмента) для
того, чтобы клиент безошибочно понял, в ответ на какой сегмент посылается данный сегмент.