Анализ TCP с использованием Wireshark
Этичный Хакер
TCP или протокол управления передачей является одним из наиболее важных протоколов или стандартов для обеспечения возможной связи между устройствами, присутствующими в определенной сети. Он имеет алгоритмы, которые устраняют сложные ошибки, возникающие при передаче пакетов, т. Е. Поврежденные пакеты, недопустимые пакеты, дубликаты и т. Д. Поскольку он используется с IP (интернет-протоколом), его часто также называют TCP / IP. Чтобы начать общение, TCP сначала устанавливает соединение с помощью трехстороннего рукопожатия. Эффективность TCP по сравнению с другими протоколами заключается в его свойстве обнаружения и исправления ошибок. Мало того, он организует пакеты и сегментирует большие данные в несколько пакетов, не нарушая целостности данных.
Итак, теперь мы немного знакомы с TCP, давайте посмотрим, как мы можем анализировать TCP с помощью Wireshark, который является наиболее широко используемым анализатором протоколов в мире. Для анализа TCP сначала необходимо запустить Wireshark и выполнить шаги, приведенные ниже:
- В строке меню выберите пункт захват -> параметры -> интерфейсы.
- В интерфейсах выберите конкретный адаптер Ethernet и запишите его IP, а затем нажмите кнопку запуска выбранного адаптера.
- Теперь мы будем перехватывать пакеты. Перейдите к определенному веб-адресу, чтобы генерировать трафик для захвата пакетов из сообщения, например geeksforgeeks.org затем вернитесь в Wireshark и остановите захват, выбрав пункт остановить в меню захвата. Вы можете взглянуть на это на изображении ниже.

Теперь у нас есть захваченные пакеты, и на экране появится список захваченных пакетов. Поскольку при анализе TCP мы рассматриваем только TCP-пакеты, мы будем отфильтровывать TCP-пакеты из пула пакетов. Фильтр можно применить любым из следующих способов:
- В строке отображения фильтра на экране введите TCP и примените фильтр.

- В разделе анализ меню в строке меню выберите фильтры отображения или в разделе захват выберите фильтры захвата, а затем только TCP и ok.

Здесь у вас будет список TCP-пакетов. Первые три пакета из этого списка являются частью механизма трехстороннего квитирования TCP для установления соединения. Давайте получим базовые знания об этом механизме, который выполняется в следующие 3 шага:
- Пакет синхронизации (SYN) отправляется вашим локальным IP-адресом хоста на сервер, к которому он хочет подключиться.
- Сервер отвечает взаимностью, отправляя пакет подтверждения (ACK) на локальный хост, сигнализирующий о том, что он получил запрос SYN от IP-адреса хоста для подключения, а также отправляет пакет синхронизации (SYN) на локальный хост для подтверждения соединения. Итак, это, по сути, пакет SYN + ACK.
- Хост отвечает на этот запрос, отправляя подтверждение при получении SYN сервера. Вы можете лучше понять это, посмотрев на диаграмму ниже.

Вы можете наблюдать эти три шага в первых трех пакетах списка TCP, где каждый из типов пакетов, т.Е. ACK, SYN, SYN-ACK, указан на соответствующей стороне. Теперь, чтобы внимательно изучить пакет, мы выберем пакет и в экспертном представлении в разделе сведений о пакете чуть ниже списка пакетов у нас будут параметры TCP, как вы можете видеть на диаграмме ниже. Давайте рассмотрим каждый из них и их значение:
- Порт источника: это порт вашей хост-сети, используемый для связи.
- Порт назначения: это порт сервера назначения.
- Длина сегмента TCP: представляет длину данных в выбранном пакете.
- Порядковый номер: это метод, используемый Wireshark для присвоения определенной индексации каждому пакету для упрощения отслеживания пакетов. Эта индексация начинается с 0.
- Следующий порядковый номер: это сумма порядкового номера и длины сегмента текущего пакета.
- Номер подтверждения: Он содержит длину полученных данных в байтах.
- Длина заголовка: это длина заголовка TCP и может варьироваться от 20 до 60.
Основным разделом этого анализа пакетов TCP является раздел флага пакета, который предоставляет дополнительную подробную информацию о пакете. Раздел флага содержит следующие параметры, которые указаны с их соответствующим значением.
- Уменьшено окно перегрузки (CWR): оно сигнализирует о снижении скорости передачи.
- ECN-Echo: он настроен на получение более ранних уведомлений о перегрузке.
- Срочный: устанавливается, когда пакет должен считаться приоритетным.
- Подтверждение: указывает, содержит ли текущий пакет пакет подтверждения или нет.
- Push: данные должны быть сохранены и удалены из канала связи.
- Сброс: указывает на ошибку в связи.
- Syn: указывает, является ли пакет пакетом синхронизации или SYN или нет.
- Fin: это указывает на завершение, то есть конец связи

Далее, в подразделах мы имеем:
- Значение размера окна: это размер буфера текущего хоста.
- Контрольная сумма: используется для проверки того, что принятый пакет в порядке или имеет ошибку.
- Состояние контрольной суммы: контрольная сумма пакета по умолчанию не проверяется, но ее можно включить в соответствии с требованиями.
Наконец, после того, как мы провели анализ, пришло время понять, как закрывается TCP-соединение. Обычно он известен как рукопожатие завершения TCP. Далее это происходит на следующих этапах:
- Завершающая сторона или локальный хост отправляет пакет завершения или завершения.
- Сервер отправляет подтверждение, сигнализирующее о получении пакета FIN, и отправляет пакет FIN для подтверждения на стороне закрытия.
- Наконец, закрывающая сторона получает пакет FIN и отвечает взаимностью, отправляя пакет ACK, тем самым подтверждая завершение соединения. Для лучшего понимания вы можете взглянуть на приведенную ниже диаграмму.