Wireshark

Анализ захвата TCP-пакетов

Анализ захвата TCP-пакетов

Что такое TCP?

TCP (протокол управления передачей) - это протокол транспортного уровня, ориентированный на соединение.

Назначение этой статьи:

Понять весь TCP - непростая задача. В этой статье мы попытаемся разобраться в основных пакетах обмена TCP через Wireshark. Теорию можно прочитать в интернете. Мы сосредоточимся больше на анализе захвата пакетов.

Чем знаменит TCP?

TCP так знаменит по нескольким причинам:

  1. TCP - это протокол, ориентированный на соединение, поэтому надежность очень высока.
  2. TCP может контролировать перегрузку самостоятельно.
  3. TCP может обнаружить ошибку.
  4. TCP использует протокол управления потоком.
  5. TCP имеет функции ACK с задержкой.
  6. TCP имеет функцию выборочного ACK.
  7. TCP имеет функцию вызова Windows для улучшения пропускной способности.

Есть так много других функций, которые сделали TCP настолько известным.

Анализ TCP:

Мы выполним несколько шагов, чтобы сгенерировать фреймы TCP.

Шаг 1: Самый простой способ сгенерировать TCP-пакеты - получить доступ к любому веб-сайту HTTP. Причина в том, что HTTP - это протокол прикладного уровня, и он использует TCP как базовый протокол транспортного уровня.

Чтобы узнать о HTTP, перейдите по ссылке ниже

https: // linuxhint.ru / http_wireshark /

Шаг 2: Запустите Wireshark.

Шаг 3: Открыть ссылку ниже в любом браузере.

http: // gaia.CS.умасс.edu / wirehark-labs / Алиса.текст

Шаг 4: Остановите Wireshark и установите TCP как фильтр.

Шаг 5: АНАЛИЗ

Теперь мы должны увидеть пакеты TCP 3-way handshake. Вот простая диаграмма.

Кадр 1: SYN [синхронизация]

SYN - это первый пакет, который приходит от клиента к серверу. В нашем случае 192.168.1.6 - это клиент [система, в которой мы открыли браузер] и gaia.CS.умасс.edu это сервер.

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

Кадр SYN необходим для отправки возможностей клиента на сервер.

Кадр 2: SYN + ACK [синхронизация + подтверждение]

SYN, ACK - второй пакет приходит от сервера к клиенту.

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

SYN, кадр ACK необходим для отправки возможностей сервера клиенту.

Теперь клиент и сервер поделились своими возможностями.

Кадр 3: ACK [подтверждение]

ACK - это третий пакет, который приходит от клиента к серверу. Это в основном подтверждение от клиента к серверу, а также принятие возможностей, отправленных сервером.

Вот важные поля для ACK.

Давайте проверим важную информацию, передаваемую между клиентом и сервером:

КлиентСервер

Размер окна приема: 64240 байт                          Размер окна приема: 29200 байт

Максимальный размер сегмента: 1460 байт                         Максимальный размер сегмента: 1412 байт

SACK Разрешено: да                                                 SACK Разрешено: да

Масштаб окна: 8 (умножить на 256)                          Масштаб окна: 7 (умножить на 128)

Мы заметили разницу в ценностях. Если клиент или сервер принимает другие возможности, трехстороннее рукопожатие считается успешным.

Заголовок TCP:

Вот важные поля заголовка TCP:

  1. Исходный порт (16 бит): Это порт отправки.
Пример: Исходный порт: 50026 (50026)
  1. Порт назначения (16 бит): Это принимающий порт.
Пример: Порт назначения: http (80)
  1. Порядковый номер (32 бита):
Пример: порядковый номер: 0 (относительный порядковый номер)
  1. Номер подтверждения (32 бита): Если установлен флаг ACK, то значение этого поля является следующим порядковым номером, который ожидает отправитель ACK.
Пример: Номер подтверждения: 0
  1. Длина заголовка: Размер заголовка может варьироваться от 20 до 60 байтов.
Пример: 1000… = Длина заголовка: 32 байта (8)
  1. Флаги (9 бит):
Пример:
… = Зарезервировано: не установлено
… 0… = Nonce: не задано
… 0… = Уменьшенное окно перегрузки (CWR): не установлено
… 0… = ECN-Echo: не задано
… 0… = Срочно: не задано
… 0… = Подтверждение: не установлено
… 0… = Нажать: не задано
… 0… = Сброс: не задано
… 1. = Syn: Установить
… 0 = Fin: не задано
  1. Размер окна (16 бит): Это размер окна приема в байтах.
Пример: значение размера окна: 64240
  1. Контрольная сумма (16 бит):

Используется проверка ошибок заголовка.

Пример: Контрольная сумма: 0x436f
  1. Срочный указатель (16 бит):

Это смещение от порядкового номера, указывающего на последний байт срочных данных.

Пример: срочный указатель: 0
  1. Параметры:
Пример:
Параметр TCP - Максимальный размер сегмента: 1460 байт
Параметр TCP - Нет операции (NOP)
Параметр TCP - Масштаб окна: 8 (умножить на 256)
Параметр TCP - разрешен SACK

Наблюдение:

Размер заголовка TCP SYN составляет 32 байта.

Размер заголовка TCP SYN, ACK составляет 32 байта.

Размер заголовка TCP ACK составляет 20 байт, так как он не имеет полей параметров.

Данные TCP:

Вот снимок экрана с объяснением данных TCP и TCP ACK. Здесь мы можем увидеть функцию ACK задержки TCP. Сервер отправил клиенту три пакета данных TCP, а клиент отправил один ACK задержки, чтобы сообщить серверу, что он получил все три пакета данных TCP. Поэтому в TCP ACK [пакет номер 96 на скриншоте] мы видим ACK = 14121, что означает, что клиент получил до 14121 байт.

Справка:

Для базовой теории TCP см

https: // ru.википедия.org / wiki / Протокол_контроля_передачи

Левая кнопка мыши не работает в Windows 10
Если вы используете выделенную мышь со своим ноутбуком или настольным компьютером, но левая кнопка мыши не работает в Windows 10/8/7 по какой-то причи...
Курсор прыгает или перемещается случайным образом при наборе текста в Windows 10
Если вы обнаружите, что ваш курсор мыши прыгает или перемещается сам по себе, автоматически, случайным образом при вводе текста на ноутбуке или компью...
Как изменить направление прокрутки мыши и сенсорной панели в Windows 10
Мышь а также Сенсорная панельs не только упрощают вычисления, но и делают их более эффективными и требуют меньше времени. Мы не можем представить себе...