1

Сервер обычно отвечает SYN ACK при трехстороннем рукопожатии.

Что произойдет, если он просто ответит ACK?

1 ответ1

2

Клиент будет ждать пакета SYN, через некоторое время он истечет.

Соответствующим RFC является http://www.faqs.org/rfcs/rfc793.html.

Основная причина трехстороннего рукопожатия состоит в том, чтобы не допустить путаницы при инициации старых дублированных соединений. Чтобы справиться с этим, было разработано специальное управляющее сообщение reset. Если принимающий TCP находится в несинхронизированном состоянии (т. Е. SYN-SENT, SYN-RECEIVED), он возвращается к LISTEN при получении приемлемого сброса. Если TCP находится в одном из синхронизированных состояний (ESTABLISHED, FIN-WAIT-1, FIN-WAIT-2, CLOSE-WAIT, CLOSING, LAST-ACK, TIME-WAIT), он прерывает соединение и информирует своего пользователя. Мы обсудим этот последний случай под «полуоткрытыми» связями ниже.

RFC допускает отдельные ACK и SYN сервером, но отмечает, что они могут быть объединены в один пакет. На практике я считаю, что все распространенные реализации объединяют сервер SYN и ACK.

...

Стивенс † имеет диаграмму перехода состояний. Это говорит о том, что клиент переходит в состояние ЗАКРЫТО и, вероятно, попытается установить соединение заново.

Если какой-либо конец получает пакеты данных до того, как они достигнут состояния ESTABLISHED соединения, они будут в состоянии SYN_SENT или SYN_RCVD соответственно, и они отправят сброс (RST) и (я думаю) перейти в состояние ЗАКРЫТО или СЛУШАТЬ.

† ISBN 0-201--63346-9

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .