Ответ
TCP использует трехстороннее рукопожатие (SYN, SYN-ACK, ACK) для установки надежного соединения:
- SYN: Клиент отправляет SYN (synchronize) пакет с начальным номером последовательности (ISN) серверу.
- SYN-ACK: Сервер отвечает SYN-ACK (synchronize-acknowledge), подтверждая получение SYN и отправляя свой ISN.
- ACK: Клиент отправляет ACK (acknowledge), подтверждая получение SYN-ACK.
Пример кода (псевдо):
// Клиент
client.send(SYN, seq=x);
// Сервер
server.send(SYN-ACK, seq=y, ack=x+1);
// Клиент
client.send(ACK, ack=y+1);
После этого соединение считается установленным. Это гарантирует, что обе стороны готовы к передаче данных и синхронизированы.