Что такое трехстороннее рукопожатие TCP

Ответ

TCP использует трехстороннее рукопожатие (SYN, SYN-ACK, ACK) для установки надежного соединения:

  1. SYN: Клиент отправляет SYN (synchronize) пакет с начальным номером последовательности (ISN) серверу.
  2. SYN-ACK: Сервер отвечает SYN-ACK (synchronize-acknowledge), подтверждая получение SYN и отправляя свой ISN.
  3. 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);

После этого соединение считается установленным. Это гарантирует, что обе стороны готовы к передаче данных и синхронизированы.