По мере накопления опыта troubleshooting’а TCP-соединений вы начинаете замечать, что некоторые паттерны повторяются снова и снова. Поэтому не ленитесь запоминать или записывать свой опыт, это может очень сильно сэкономить время в будущем.
Недавно я столкнулся с одной интересной проблемой установления TCP-соединения.
Посмотрите на рисунок ниже:
Разберем подробно, что происходит. Видим, что клиент (IP 192.168.1.1) успешно выполняет 3-way handshake с FTP-сервером (IP 10.0.0.1), но внезапно, ещё перед тем, как получает хоть какую-то возможность передать команду, сервер ни с того ни с сего закрывает соединение (пакет 4).
Отсюда возникает вопрос: почему сервер позволил успешно завершить 3-way handshake, но не дал клиенту никакой возможности «говорить» дальше?