Вопрос проверяет понимание базового механизма установления соединения в TCP и принципов надежной передачи данных.
TCP использует механизм three-way handshake для установления соединения. Клиент отправляет пакет SYN, сервер отвечает SYN-ACK, после чего клиент отправляет ACK. После этого соединение считается установленным и стороны могут передавать данные. Такой процесс позволяет согласовать начальные номера последовательностей и убедиться, что обе стороны готовы к обмену.
TCP — это протокол с установлением соединения, поэтому перед передачей данных выполняется согласование параметров соединения.
Процесс состоит из трех шагов:
Клиент отправляет пакет с флагом SYN
сообщает о желании установить соединение
передает начальный sequence number
Сервер отвечает пакетом SYN + ACK
подтверждает получение SYN
отправляет свой начальный sequence number
Клиент отправляет пакет ACK
подтверждает получение ответа сервера
После этого соединение считается установленным.
Он решает несколько задач:
подтверждает доступность обеих сторон
синхронизирует номера последовательностей
предотвращает передачу "старых" пакетов
Client -> SYN -> Server
Client <- SYN+ACK <- Server
Client -> ACK -> Server
Three-way handshake необходим для надежного согласования параметров соединения перед передачей данных и является фундаментом работы TCP.