Всем привет, мы снова встретились, я ваш друг Цюаньчжаньцзюнь.
Благодаря этому эксперименту вы овладеете навыками использования Wireshark для захвата пакетов данных протокола TCP/IP и сможете проводить углубленный анализ формата кадров TCP и «трехэтапное рукопожатие TCP». Изучите протокол TCP/IP, захватывая и анализируя пакеты данных, чтобы еще больше улучшить способность соединять теорию с практикой.
1. Цель этого эксперимента: использовать Wireshark для захвата и анализа TCP-пакетов.
2. Сложность этого эксперимента: проанализировать захваченные TCP-пакеты.
3. Эта экспериментальная среда: Windows 7, Wireshark.
4. Содержание этого эксперимента:
Протокол TCP является наиболее широко используемым протоколом в компьютерных сетях. Многие службы приложений, такие как FTP, HTTP, SMTP и т. д., используют протокол TCP на транспортном уровне. Поэтому, если вы хотите перехватывать пакеты данных протокола TCP, вы можете перехватывать пакеты данных протокола TCP. соответствующее После анализа пакетов данных сетевых служб проанализируйте пакеты данных протокола TCP и получите глубокое понимание инкапсуляции протокола, процесса управления протоколом и процесса передачи данных. Эти два изображения представляют собой формат кадра TCP и трехэтапное подтверждение TCP.
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 в соответствии с форматом кадра данных на первом изображении.
URG (значительное поле срочного указателя): флаг аварийного указателя, используемый для обеспечения того, чтобы TCP-соединение не прерывалось, и побуждает промежуточное устройство обработать данные как можно скорее. Его значение на рисунке равно 1.
ACK (значение поля подтверждения): поле номера подтверждения. Когда это поле равно 1, это означает, что поле ответа является действительным, то есть номер ответа TCP будет включен в сообщение TCP. Его значение равно 1 на рисунке.
PSH (функция push): так называемая функция push означает, что принимающая сторона передает данные приложению сразу после их получения, вместо того, чтобы помещать их в очередь в буфере. На рисунке значение равно 0.
RST (Сброс соединения): Сброс соединения, но его перемещение означает разрыв соединения. Значение на рисунке равно 0.
SYN (порядковые номера синхронизации): порядковый номер синхронизации, используемый для инициирования запроса на соединение, на рисунке его значение равно 1.
FIN (нет данных от отправителя) указывает на то, что задача отправки отправителя завершена (т. е. соединение разорвано).
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