Анализ трехстороннего рукопожатия TCP в Wireshark

Analiz Trehstoronnego Rukopozatia Tcp V Wireshark



Протокол управления передачей — очень важный протокол на транспортном уровне для модели OSI или TCP/IP. В TCP есть много преимуществ, таких как:

  • TCP выполняет повторную передачу, если какие-либо отправленные данные не подтверждаются получателем в течение некоторого времени.
  • TCP устанавливает некоторое соединение перед отправкой данных. Мы называем это соединение трехсторонним рукопожатием.
  • TCP имеет механизм контроля перегрузки.
  • TCP может обнаружить ошибку, используя некоторые методы.

Давайте изучим в основном трехстороннее рукопожатие TCP. Давайте также узнаем о важных полях в Wireshark для трехстороннего рукопожатия.







3-стороннее рукопожатие

При трехстороннем рукопожатии происходит обмен тремя кадрами:



  1. СИН
  2. ПРОСМОТР + ПОДТВЕРЖДЕНИЕ
  3. ПОДТВЕРЖДЕНИЕ

Первый кадр всегда отправляется клиентом на сервер. Давайте поймем это из простой диаграммы:



«КЛИЕНТ» «СЕРВЕР»

Frame1: клиент отправляет SYN-фрейм на сервер----------------------------------->

<----------------------------------------------------------Сервер отправляет кадр SYN+ACK клиенту: Frame2

Frame3: клиент отправляет кадр ACK на сервер----------------------------------->

Мы можем увидеть эти три кадра в Wireshark. Фильтр «tcp» можно использовать в Wireshark для просмотра всех кадров TCP. Вот скриншот для трех кадров:





Давайте теперь подробно разберем все три кадра:



СИН

Этот фрейм содержит много информации о возможностях клиента информировать сервер. На следующем снимке экрана показаны все важные поля кадра SYN:

Вот важные поля для кадра SYN:

Исходный порт: 50602
Порт назначения: 80
Порядковый номер: 0
Номер подтверждения: 0
Длина заголовка: 32 байта
Флаги: 0x002 (SYN):
Подтверждение: не установлено
Пуш: не установлено
Сброс: не установлено
Syn: Set -----> Этот бит установлен, потому что это кадр SYN.
Плавник: не установлен

Окно: 65535
Срочный указатель: 0
Опция TCP — максимальный размер сегмента: 1460 байт.
Опция TCP — масштаб окна: 3 (умножить на 8)
Опция TCP — SACK разрешен

ПРОСМОТР + ПОДТВЕРЖДЕНИЕ

Этот фрейм содержит много информации о возможностях сервера информировать клиента. На следующем снимке экрана показаны все важные поля кадра SYN+ACK:

Этот кадр также подтверждает кадр SYN, отправленный клиентом.

Вот важные поля для кадра SYN+ACK:

Исходный порт: 80
Порт назначения: 50602
Порядковый номер: 0
Номер подтверждения: 1

Длина заголовка: 32 байта (8)
Флаги: 0x012 (SYN, ACK)
Подтверждение: Установить
Пуш: не установлено
Сброс: не установлено
Его: Сет
Плавник: не установлен

Окно: 29200
Срочный указатель: 0
Опция TCP — максимальный размер сегмента: 1412 байт.
Опция TCP — SACK разрешен
Опция TCP — масштаб окна: 7 (умножить на 128)

Мы видим, что в этом кадре установлены биты «Подтверждение» и «SYN». Это потому, что этот кадр является SYN+ACK.

ПОДТВЕРЖДЕНИЕ

Этот кадр является последним кадром трехэтапного рукопожатия, а также подтверждением SYN+ACK клиентом. На следующем снимке экрана показаны все важные поля кадра ACK:

Вот важные поля для кадра ACK:

Исходный порт: 50602
Порт назначения: 80
Порядковый номер: 1
Номер подтверждения: 1
Длина заголовка: 20 байт (5)
Флаги: 0x010 (ACK)
Срочно: не установлено
Подтверждение: Установить
Пуш: не установлено
Сброс: не установлено
Син: не установлено
Плавник: не установлен

Окно: 32768

Здесь установлен только бит «Подтверждение», потому что это кадр ACK.

Объяснение некоторых важных общих полей

Порт 80 : В этом уроке мы наблюдали один фиксированный порт 80. Это потому, что это захват HTTP, а порт 80 фиксирован (на стороне сервера) для связи HTTP.

Порядковый номер : Порядковый номер этого кадра. Синхронизация — это первый кадр, поэтому у нас есть 0 в качестве порядкового номера.

Флаги TCP:

Подтверждение – Этот бит устанавливается, если кадр является ACK. Пример: SYN+ACK, кадр ACK.

СИН – Этот бит устанавливается, если кадр является SYN. Пример: СИН.

Окно : Это поле разделяет максимальный размер окна отправителя в режиме приема. Пример: у нас есть размер окна 65535 байт в кадре SYN. Это означает, что получатель может получить максимальное количество данных TCP 65535 байт в любой момент времени.

SACK Разрешено : Этот бит устанавливается, если отправка поддерживает SACK [выборочное подтверждение].

Максимальный размер сегмента : Мы также можем назвать это MSS. Это определяет максимальный кадр данных, который может получить отправитель. Пример: мы получаем MSS как 1460 байт в кадре SYN.

Заключение

Мы узнали о трехстороннем рукопожатии TCP и обо всех полезных полях для кадров SYN, SYN+ACK и ACK. Если вы хотите узнать больше о TCP, вы можете перейти по этой ссылке RFC https://tools.ietf.org/html/rfc793 .