Hack Frontend Community

Что такое трёхстороннее рукопожатие (Three-way Handshake)?

Трёхстороннее рукопожатие (Three-way Handshake) — это процесс установления соединения между клиентом и сервером по протоколу TCP (Transmission Control Protocol).
Этот механизм обеспечивает надёжное и упорядоченное соединение между двумя сторонами до начала обмена данными.

Как работает трёхстороннее рукопожатие?

Установление TCP-соединения происходит в три шага:

1

1. SYN (с клиента)

Клиент инициирует соединение и отправляет SYN-пакет (synchronize) серверу с начальным номером последовательности.

2

2. SYN-ACK (с сервера)

Сервер получает SYN, подтверждает его с помощью ACK (acknowledgment), и одновременно отправляет свой SYN — то есть сервер говорит: «Я получил твой запрос и хочу установить соединение».

3

3. ACK (с клиента)

Клиент получает SYN-ACK, подтверждает его отправкой ACK-пакета. После этого соединение считается установленным, и начинается обмен данными.

Схема трёхстороннего рукопожатия


Зачем нужно трёхстороннее рукопожатие?

  • Устанавливает надёжное соединение между клиентом и сервером
  • Согласовывает начальные номера последовательности, чтобы избежать потери данных
  • Проверяет, что обе стороны готовы к передаче данных

Применение

  • При открытии веб-страницы — ваш браузер сначала устанавливает TCP-соединение с сервером с помощью этого процесса
  • Используется в HTTPS, FTP, SMTP и других протоколах поверх TCP

Важно:

Трёхстороннее рукопожатие относится только к TCP. Протокол UDP не требует установки соединения.


Вывод

ЭтапЧто делает
SYNКлиент просит соединение
SYN-ACKСервер подтверждает и предлагает соединение
ACKКлиент подтверждает соединение

После этого можно начинать передавать данные.