tcp handshake — или рукопожатие — стандартная процедура установления соединения, которая выполняется каждый раз при установлении TCP соединения.
tcp handshake
Всегда присутствуют три этапа:
SYN — отправитель посылает syn, уведомляя о желании начать передачу
SYN-ACK — получатель отвечает с syn-ack если готов к установке соединения
ACK — отправитель подтверждает, что получил syn-ack
Если один из пакетов не дошел по той или иной причине — соединение установлено не будет. Если все пакеты дошли — к передаче готовы и отправитель и получатель.
Соединение установлено, далее возможна передача информации. Для передачи данных процесс требуется повторять с каждым пакетом. Это обеспечивает гарантированную доставку — данные отправляются только тогда, когда их готовы принимать.
Этим TCP отличается от UDP, где происходит только отправка без контроля обратной связи.
Фактически участниками взаимодействия могут быть клиент и веб-сервер, обрабатывающий запросы.
При TCP handshake постоянно производится контроль и подбор размера TCP окна. Оно определяет с какой скоростью возможна передача и подбирает наибольшую возможную.
Также читайте материал о порядке обработки SYN пакета сетевым оборудованием при передаче от одной машины, находящейся в сети общего доступа другой машине.