Возможности входящего TCP SYNs

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

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

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

2 ответа

Решение

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 пакет, сокет освобождается.

Другие вопросы по тегам