Назад | Перейти на главную страницу

Возможности входящих TCP SYN

Это может быть общий вопрос TCP.

Могу ли я получить TCP SYN пакет на ESTABLISHED соединение ИЛИ соединение в TIME-WAIT штат?

Это возможно?

А SYN получен на ESTABLISHED TCP-соединение не должно происходить. Это может быть задержанный пакет, который можно безопасно отбросить.

Можно закончить сервер в ESTABLISHED государство и клиент в CLOSED состояние, если соединение потеряно и истекло время ожидания на клиенте, а не на сервере, или если клиент перезапущен. Попытка открыть новое соединение в этом сценарии приведет к SYN пакет, который будет получен в ESTABLISHED штат. Желаемый результат - закрытие старого соединения и открытие нового.

Путь к достижению желаемого результата заключается в следующем:

  • Клиент отправляет SYN чтобы создать новое соединение.
  • Сервер отправляет ACK для ESTABLISHED подключение.
  • Клиент отвечает на ACK с RST пакет, вызывающий ESTABLISHED связь уйти.
  • Клиентские ретрансляции SYN пакет для создания нового соединения.

А SYN пакет получен в TIME_WAIT состояние может произойти после того, как сервер закрыл соединение, а клиент открывает новое соединение с теми же номерами портов. Это приведет к открытию нового соединения.

Ни ...SYN используется только при первой установке соединения (трехстороннее рукопожатие) или при уничтожении пакета.

В принципе:

SYN (I want to start a connection) -> ACK/SYN (OK, I want to start a connection too) -> ACK (acknowledged connection, ready for data)

Разговор идет с ACK пакеты, отправленные обоими хостами, указывали, что они получили пакеты друг друга.

В конце, FIN отправляется на сервер и TIME_WAIT устанавливается на розетку. Когда сервер отвечает FIN пакет, сокет освобождается.