TCP-рукопожатие

Для начала стоит пояснить, чем является TCP (Transmission Control Protocol) - это протокол, управляющий передачей данных. Почти всегда чтобы обеспечить надежную передачу пакетов TCP используется поверх IP, поэтому эту связку протоколов часто называют TCP/IP. По модели OSI он работает на 4-ом уровне, который также называют транспортным.

Что такое трехсторонее рукопожатие (TCP handshake)?

Чтобы установить надежное соединение, TCP использует процесс, называемый термином “трехстороннее рукопожатие” (TCP three-way/triple handshake). Установленное соединение будет полнодуплексным, то есть оба канала могут передавать информацию одновременно, а также они синхронизируют (SYN) и подтверждают (ACK) друг друга. Обмен выполняется следующим образом:

1) Клиент отправляет сегмент с установленным флагом SYN. При этом сегменту присваивается произвольный порядковый номер (sequence number) в интервале от 1 до 232 (т.н. initial sequence number), относительно которого будет вестись дальнейший отсчет последовательности сегментов в соединении.

2) Сервер получает запрос и отправляет ответный сегмент с одновременно установленными флагами SYN+ACK, при этом записывает в поле «номер подтверждения» (acknowledgement number), полученный порядковый номер, увеличенный на 1 (что подтверждает получение первого сегмента), а также устанавливает свой порядковый номер, который, как и в SYN-сегменте, выбирается произвольно.

3) После получения клиентом сегмента с флагами SYN+ACK соединение считается установленным, клиент, в свою очередь, отправляет в ответ сегмент с флагом ACK, обновленными номерами последовательности, и не содержащий полезной нагрузки.

4) Начинается передача данных.

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

Схема TCP рукопожатия

 

Принцип работы TCP рукопожатия

В процессе передачи данных клиент и сервер обмениваются сегментами с установленными флагами ACK или PSH+ASK, поочередно подтверждая число полученных пакетов путем увеличения счетчиков порядкового номера (sequence number) и подтверждения (acknowledgement number).

Этапы 1, 2 определяют параметр подключения (порядковый номер) для одного направления, и подтверждают его. Этапы 2, 3 определяют параметр подключения для другого направления, и также подтверждают его. С их помощью устанавливается полнодуплексная связь.

Интересно, что начальные параметры SYN выбираются случайным образом при установлении соединений между клиентом и сервером.

В заключение стоит добавить, что проверка номеров последовательности приходящих пакетов и принципов, используемых при 3-way handshake, позволяют реализовать простейшие методы фильтрации DDoS-атак.

Дата-центрColocationWAFDoSЧто такое DDoS-атака и как от нее защититься?Что такое smurf-атака (smurf attack)?ХостингВыделенный серверВ чем разница между VPS и VDS?DNS-хостингЧто такое GET-запрос?SSL-трафикЧто такое SYN-флаг?Что такое SYN-запрос?Что такое SYN-куки (SYN cookie)?DDoS-атаки «нулевого» дня (Zero Day DDoS attack, 0day DDoS attack)Что такое домен (доменное имя)?Полоса пропусканияЧто такое роутер или маршрутизатор?Что такое сервер?Сетевой трафикВремя приема-передачи (Round-Trip Time, RTT)Интернет-протокол (Internet Protocol, IP)Ширина канала, пропускная способность каналаРазмер окна (Window Size) TCPЧто такое куки (cookie)?Что такое CVE?Что такое эксплойт?Хактивизм (Hacktivism)Что такое проксирование?Сеть доставки контента (Content Delivery Network, CDN)Амплификация атаки (Attack Amplification)БотАтаки на сайтыЧто такое 95-й перцентиль?Что такое TLS fingerprintingDNSBLMAC-адрес (Media Access Control) или физический адресDoSIP-адресЧто такое прокси-сервер?Что такое firewall (брандмауэр)?Что такое одноранговая сеть (P2P, Peer-To-Peer)?
Мы используем cookie, чтобы сделать сайт быстрее и удобнее. Продолжая пользоваться сайтом, Вы соглашаетесь с нашей Политикой конфиденциальности
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
© 2013-2024 StormWall.pro. Все права защищеныПолитика конфиденциальностиГарантии безопасности при оплате онлайн