Wireshark захватывает TCP-пакеты_подробный анализ захвата пакетов
Wireshark захватывает TCP-пакеты_подробный анализ захвата пакетов

Всем привет, мы снова встретились, я ваш друг Цюаньчжаньцзюнь.

1. Экспериментальная цель

Благодаря этому эксперименту вы овладеете навыками использования Wireshark для захвата пакетов данных протокола TCP/IP и сможете проводить углубленный анализ формата кадров TCP и «трехэтапное рукопожатие TCP». Изучите протокол TCP/IP, захватывая и анализируя пакеты данных, чтобы еще больше улучшить способность соединять теорию с практикой.

2. Экспериментальный контент

1. Цель этого эксперимента: использовать Wireshark для захвата и анализа TCP-пакетов.

2. Сложность этого эксперимента: проанализировать захваченные TCP-пакеты.

3. Эта экспериментальная среда: Windows 7, Wireshark.

4. Содержание этого эксперимента:

Протокол TCP является наиболее широко используемым протоколом в компьютерных сетях. Многие службы приложений, такие как FTP, HTTP, SMTP и т. д., используют протокол TCP на транспортном уровне. Поэтому, если вы хотите перехватывать пакеты данных протокола TCP, вы можете перехватывать пакеты данных протокола TCP. соответствующее После анализа пакетов данных сетевых служб проанализируйте пакеты данных протокола TCP и получите глубокое понимание инкапсуляции протокола, процесса управления протоколом и процесса передачи данных. Эти два изображения представляют собой формат кадра TCP и трехэтапное подтверждение TCP.

3. Экспериментальный процесс

1. Процесс захвата и анализа TCP-пакетов выглядит следующим образом:

Первым шагом является определение используемого протокола и использование службы HTTP. Выберите http://www.sina.com.cn/ в качестве целевого адреса.

Вторым шагом является запуск захвата пакетов: нажмите [start], чтобы начать захват пакетов, и введите http://www.sina.com.cn в адресной строке браузера.

Третий шаг — получение пакетов данных первого прохода через фильтр отображения: большое количество пакетов данных получается посредством захвата пакетов. Чтобы облегчить анализ пакетов данных, необходимо использовать фильтры и добавлять локальный IP-адрес. условия фильтрации адресов и протоколов TCP.

(1) Откройте командную строку и проверьте локальный IP-адрес через ipconfig /all.

(2) Заполните условия фильтрации в диалоговом окне «Фильтр» на панели инструментов: tcp и ip.addr==196.168.100.131. Результаты фильтрации следующие:

Эффект оказался не очень хорошим, поэтому я поменял IP-адрес в условиях фильтрации на IP-адрес http://www.sina.com.cn. Процесс операции следующий:

(1) Откройте командную строку и проверьте целевой IP-адрес, пропинговав www.sina.com.cn.

(2) Откройте команду и заполните условия фильтрации в диалоговом окне «Фильтр» на панели инструментов: tcp и ip.addr==218.30.66.248. Результаты фильтрации следующие:

Среди них красное поле представляет собой трехэтапный процесс рукопожатия:

Четвертый шаг — проанализировать пакет данных TCP и проанализировать каждую часть пакета TCP в соответствии с форматом кадра данных на первом изображении.

  • Исходный порт/порт назначения (16 бит). Как показано на рисунке ниже, порт источника — 443, который идентифицирует процесс отправки; порт назначения — 3201, который идентифицирует процесс получения.
  • Серийный номер (32 бита). Как показано на рисунке ниже, порядковый номер отправки равен 0, что идентифицирует поток байтов данных, отправленный от исходной стороны к конечной стороне. Он указывает порядковый номер первого байта данных в этом конце сообщения. равно 32. Бит беззнакового типа, выражение порядкового номера достигает 2^32 – 1, а затем начинается с 0. Когда устанавливается новое соединение, флаг SYN равен 1, и серийный номер будет случайно выбран хостом в виде последовательности. номер ISN (начальный порядковый номер).
  • Номер подтверждения (32бит). Как показано на рисунке ниже, номер подтверждения равен 1 и содержит следующий порядковый номер, который ожидает получить сторона, отправляющая подтверждение. Следовательно, порядковый номер подтверждения должен быть порядковым номером последних успешно полученных данных плюс 1. Поле порядкового номера подтверждения действительно только тогда, когда флаг ACK равен 1. TCP предоставляет полнодуплексные услуги для прикладного уровня, что означает, что данные могут передаваться независимо в обоих направлениях, поэтому два конца соединения должны обеспечивать порядок передачи данных в каждом направлении.
  • Смещение (4 бита). Как показано на рисунке ниже, смещение составляет 32 байта. Здесь смещение фактически относится к длине заголовка TCP. Оно используется для указания количества 32-битных слов в заголовке TCP. С его помощью вы можете узнать, где именно. пользовательские данные TCP-пакета начинаются.
  • Зарезервированные биты (6 бит). Как показано на рисунке ниже, зарезервированный бит Reserved не установлен.
  • Флаг (6 бит). В заголовке TCP имеется 6 битов флагов, и несколько из них могут быть установлены в 1 одновременно. Как показано ниже:

URG (значительное поле срочного указателя): флаг аварийного указателя, используемый для обеспечения того, чтобы TCP-соединение не прерывалось, и побуждает промежуточное устройство обработать данные как можно скорее. Его значение на рисунке равно 1.

ACK (значение поля подтверждения): поле номера подтверждения. Когда это поле равно 1, это означает, что поле ответа является действительным, то есть номер ответа TCP будет включен в сообщение TCP. Его значение равно 1 на рисунке.

PSH (функция push): так называемая функция push означает, что принимающая сторона передает данные приложению сразу после их получения, вместо того, чтобы помещать их в очередь в буфере. На рисунке значение равно 0.

RST (Сброс соединения): Сброс соединения, но его перемещение означает разрыв соединения. Значение на рисунке равно 0.

SYN (порядковые номера синхронизации): порядковый номер синхронизации, используемый для инициирования запроса на соединение, на рисунке его значение равно 1.

FIN (нет данных от отправителя) указывает на то, что задача отправки отправителя завершена (т. е. соединение разорвано).

  • Размер окна (16 бит). Как показано на рисунке ниже, значение размера окна Windows равно 29200, что означает, что исходный хост может получить максимум 29200 байт.
  • Контрольная сумма (16 бит). Как показано на рисунке ниже, контрольная сумма — 0xc24f, которая содержит заголовок TCP и сегмент данных TCP. Это обязательное поле, которое должно быть рассчитано и сохранено отправителем и проверено получателем.
  • Указатель срочности (16 бит). Как показано на рисунке ниже, флаг URG равен 1. Это поле допустимо только в том случае, если флаг URG установлен в значение 1. Указатель аварийной ситуации представляет собой положительное смещение, которое добавляется к значению в поле порядкового номера для представления последовательности. номер последнего байта срочных данных. Аварийный режим TCP — это способ отправителя отправить срочные данные в другой сегмент.
  • TCP-параметры. Поле переменной длины длиной не менее 1 байта, определяющее допустимые параметры. Вид=0: конец таблицы параметров, Вид=1: нет операции, Вид=2: максимальная длина сегмента, Вид=3: коэффициент расширения окна, Вид=8: временная метка. Как показано на рисунке ниже, Kind равен 2, что соответствует максимальной длине сообщения MSS.
  • часть данных. Часть данных текущего пакета показана на рисунке ниже:

2. Трехстороннее рукопожатие TCP:

Первый пакет подтверждения: клиент отправляет TCP с битом флага SYN и порядковым номером 0, который представляет запрос клиента на установление соединения, как показано на рисунке ниже (первый элемент):

Пакет данных второго подтверждения: сервер отправляет обратно пакет подтверждения с битами флагов SYN, ACK. Установите номер подтверждения (номер подтверждения) на I S N клиента плюс 1. То есть 0 + 1 = 1, как показано на рисунке. рисунок ниже (№ ст. 2):

Пакет данных третьего подтверждения: клиент снова отправляет пакет подтверждения (ACK) с битом флага SYN равным 0 и битом флага ACK равным 1. И поле порядкового номера ACK, отправленного сервером + 1, помещается в поле поле подтверждения и отправлено другой стороне. После трехстороннего рукопожатия устанавливается TCP-соединение с сервером, как показано на рисунке ниже (третий пункт):

Заявление об авторских правах: Содержание этой статьи добровольно предоставлено пользователями Интернета, а мнения, выраженные в этой статье, представляют собой только точку зрения автора. Данный сайт лишь предоставляет услуги по хранению информации, не имеет никаких прав собственности и не несет соответствующей юридической ответственности. Если вы обнаружите на этом сайте какое-либо подозрительное нарушение авторских прав/незаконный контент, отправьте электронное письмо, чтобы сообщить. После проверки этот сайт будет немедленно удален.

Издатель: Лидер стека программистов полного стека, укажите источник для перепечатки: https://javaforall.cn/196391.html Исходная ссылка: https://javaforall.cn

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose