Что такое трёхстороннее рукопожатие (Three-way Handshake)?
Трёхстороннее рукопожатие (Three-way Handshake) — это процесс установления соединения между клиентом и сервером по протоколу TCP (Transmission Control Protocol).
Этот механизм обеспечивает надёжное и упорядоченное соединение между двумя сторонами до начала обмена данными.
Как работает трёхстороннее рукопожатие?
Установление TCP-соединения происходит в три шага:
1. SYN (с клиента)
Клиент инициирует соединение и отправляет SYN-пакет (synchronize) серверу с начальным номером последовательности.
2. SYN-ACK (с сервера)
Сервер получает SYN, подтверждает его с помощью ACK (acknowledgment), и одновременно отправляет свой SYN — то есть сервер говорит: «Я получил твой запрос и хочу установить соединение».
3. ACK (с клиента)
Клиент получает SYN-ACK, подтверждает его отправкой ACK-пакета. После этого соединение считается установленным, и начинается обмен данными.
Схема трёхстороннего рукопожатия
Зачем нужно трёхстороннее рукопожатие?
- Устанавливает надёжное соединение между клиентом и сервером
- Согласовывает начальные номера последовательности, чтобы избежать потери данных
- Проверяет, что обе стороны готовы к передаче данных
Применение
- При открытии веб-страницы — ваш браузер сначала устанавливает TCP-соединение с сервером с помощью этого процесса
- Используется в HTTPS, FTP, SMTP и других протоколах поверх TCP
Важно:
Трёхстороннее рукопожатие относится только к TCP. Протокол UDP не требует установки соединения.
Вывод
Этап | Что делает |
---|---|
SYN | Клиент просит соединение |
SYN-ACK | Сервер подтверждает и предлагает соединение |
ACK | Клиент подтверждает соединение |
После этого можно начинать передавать данные.