
- •«Анализ сетевого трафика»
- •Структура icmp пакета
- •Перейдём к нашему «тестовому стенду»:
- •Параметры реального сетевого адаптера для выхода в интернет
- •Параметры виртуального сетевого адаптера, «вид из хост-машины»:
- •Параметры виртуального сетевого адаптера Клиент-машины в Windows xp:
- •Приступим к выполнению поставленных задач:
- •1. При помощи программы Microsoft Network Monitor 3.4 (или аналогичной) проанализировать трафик между двумя узлами локальной сети:
- •2. При помощи Microsoft Network Monitor 3.4 проанализировать интернет-трафик:
Нижегородский Государственный Технический Университет
им. Р.Е. Алексеева
ЛАБОРАТОРНАЯ РАБОТА №3
по предмету «Сети ЭВМ»
«Анализ сетевого трафика»
Выполнил: студент группы 210-ВМ
Панитков С.Ю.
Проверил:
Нижний Новгород
2013
Задачи:
1. При помощи программы Microsoft Network Monitor 3.4 (или аналогичной) проанализировать трафик между двумя узлами локальной сети:
- выполнить ping второго узла (проанализировать ICMP-пакеты — запрос/ответ);
- выполнить обзор компьютеров рабочей группы (проанализировать пакеты NetBIOS —
запрос/ответ).
2. При помощи Microsoft Network Monitor 3.4 проанализировать интернет-трафик:
- сделать запрос удалённого URL через браузер (проанализировать GET-запрос и ответ);
- выполнить tracert (traceroute) до удалённого узла, проанализировать результат.
Содержимое отчёта:
- краткая информация о рассматриваемых программных технологиях;
- конфигурация сети и оборудования (тип адаптеров и способ подключения к интернету);
- анализ соответствующих пакетов.
Старт отчёта.
Для начала, остановимся подробнее на применяемых терминах, для более простого ориентирования в изучаемом практическом материале.
Ping – имеет несколько значений.
- повседневное название эхо-запроса из протокола ICMP, служащего для проверки состояния сети.
- название самой утилиты, выполняющей этот запрос.
- в разговорной речи пингом называют время, затраченное на передачу пакета информации в компьютерных сетях от клиента к серверу и обратно от сервера к клиенту. На пользовательском уровне наиболее часто употребляем в области активных компьютерных игр, где пинг (время реакции на действие) является одним из важнейших атрибутов соединения пользователя.
ICMP (Internet Control Message Protocol — протокол межсетевых управляющих сообщений) — сетевой протокол, входящий в стек протоколов TCP/IP. В основном ICMP используется для передачи сообщений об ошибках и других исключительных ситуациях, возникших при передаче данных, например, запрашиваемая услуга недоступна, или хост, или маршрутизатор не отвечают. Также на ICMP возлагаются некоторые сервисные функции.
ICMP основан на протоколе IP. Каждое ICMP-сообщение инкапсулируется непосредственно в пределах одного IP-пакета, и, таким образом, как и UDP и в отличие от TCP, ICMP является т. н. "ненадежным" (не контролирующим доставку и её правильность). В отличие от UDP, где реализация надёжности возложена на ПО прикладного уровня, ICMP (в силу специфики применения) обычно не нуждается в реализации надёжной доставки. Его цели отличны от целей транспортных протоколов, таких как TCP и UDP: он, как правило, не используется для передачи и приема данных между конечными системами. ICMP не используется непосредственно в приложениях пользователей сети (исключение составляют инструменты Ping и Traceroute). Тот же Ping, например, служит обычно как раз для проверки потерь IP-пакетов на маршруте.
Структура icmp пакета
Ознакомимся с имплементацией ICMP в датаграмме IPv4-пакета:
Как строится ICMP пакет:
- IP Header:
в Protocol устанавливается значение - 1 (ICMP) и в Type of Service - 0
- ICMP Header:
Type of ICMP message (8 бит) - указывается тип сообщения ICMP
Code (8 бит) – код сообщения
Checksum (16 бит) - контрольная сумма, вычисляется из части ICMP пакета, заголовок не используется.
Header Data (32 бита) - содержит Идентификатор(Identifier) (16 бит) и Порядковый номер(Sequence number) (16 бит) необходимые для корректного определения отправителя.
- ICMP Payload (Payload – «полезная нагрузка»)
Payload - необходим для хранения и передачи ответов различного типа. К примеру TimeStamp.
Все другие «пользовательские» данные также передаются в Payload (типа мусора-алфавита)
NetBIOS (Network Basic Input/Output System) — протокол для работы в локальных сетях на персональных ЭВМ типа IBM/PC, разработан в виде интерфейса, который не зависит от фирмы-производителя. Он включает в себя интерфейс сеансового уровня (англ. NetBIOS interface), в качестве транспортных протоколов использует TCP и UDP.
NetBIOS обеспечивает:
регистрацию и проверку сетевых имен;
установление и разрыв соединений;
связь с гарантированной доставкой информации;
связь с негарантированной доставкой информации;
поддержку управления и мониторинга драйвера и сетевой карты.
Traceroute — это служебная компьютерная программа, предназначенная для определения маршрутов следования данных в сетях TCP/IP. Traceroute может использовать разные протоколы передачи данных в зависимости от операционной системы устройства. Такими протоколами могут быть UDP, TCP, ICMP или GRE. Компьютеры с установленной операционной системой Windows используют ICMP-протокол, при этом операционные системы Linux и маршрутизаторы Cisco — протокол UDP.
Traceroute входит в поставку большинства современных сетевых операционных систем. В системах Microsoft Windows эта программа носит название tracert, а в системах GNU/Linux, Cisco IOS и Mac OS — traceroute.
Как работает программа в операционной системе Windоws:
Программа tracert выполняет отправку данных указанному узлу сети, при этом отображая сведения о всех промежуточных маршрутизаторах, через которые прошли данные на пути к целевому узлу. В случае проблем при доставке данных до какого-либо узла программа позволяет определить, на каком именно участке сети возникли неполадки. Здесь хочется отметить, что программа работает только в направлении от источника пакетов и является весьма грубым инструментом для выявления неполадок в сети. В силу особенностей работы протоколов маршрутизации в сети Интернет, обратные маршруты часто не совпадают с прямыми, причем это справедливо для всех промежуточных узлов в трейсе. Поэтому ICMP ответ от каждого промежуточного узла может идти своим собственным маршрутом, затеряться или прийти с большой задержкой, хотя в реальности с пакетами, которые адресованы конечному узлу, этого не происходит. Кроме того, на промежуточных маршрутизаторах часто стоит ограничение числа ответов ICMP в единицу времени, что приводит к появлению ложных потерь.
Для определения промежуточных маршрутизаторов traceroute отправляет целевому узлу серию ICMP-пакетов (по умолчанию 3 пакета), с каждым шагом увеличивая значение поля TTL («время жизни») на 1. Это поле обычно указывает максимальное количество маршрутизаторов, которое может быть пройдено пакетом. Первая серия пакетов отправляется с TTL, равным 1, и поэтому первый же маршрутизатор возвращает обратно ICMP-сообщение «time exceeded in transit», указывающее на невозможность доставки данных. Traceroute фиксирует адрес маршрутизатора, а также время между отправкой пакета и получением ответа (эти сведения выводятся на монитор компьютера). Затем traceroute повторяет отправку серии пакетов, но уже с TTL, равным 2, что заставляет первый маршрутизатор уменьшить TTL пакетов на единицу и направить их ко второму маршрутизатору. Второй маршрутизатор, получив пакеты с TTL=1, так же возвращает «time exceeded in transit».
Процесс повторяется до тех пор, пока пакет не достигнет целевого узла. При получении ответа от этого узла процесс трассировки считается завершённым.
На оконечном хосте IP-дейтаграмма с TTL = 1 не отбрасывается и не вызывает ICMP-сообщения типа срок истёк, а должна быть отдана приложению.
URL (Uniform Resource Locator) — единообразный локатор (определитель местонахождения) ресурса. Говоря понятнее, это стандартизированный способ записи адреса ресурса в сети Интернет.
Структура URL:
<схема>://<логин>:<пароль>@<хост>:<порт>/<URL‐путь>?<параметры>#<якорь>
Здесь лишь упомянем, что под схемой понимается сетевой протокол.
HTTP (англ. HyperText Transfer Protocol — «протокол передачи гипертекста») — протокол прикладного уровня передачи данных (изначально — в виде гипертекстовых документов в формате HTML), аналогичный, к примеру, FTP. Основой HTTP является технология «клиент-сервер», где серверы – это специализированное ПО по обслуживанию web-запросов (например: Apache, nginx, lighttpd, IIS), а основными клиентами – браузеры пользователей.
Каждое HTTP-сообщение состоит из трёх частей, которые передаются в указанном порядке:
Стартовая строка (англ. Starting line) — определяет тип сообщения;
Заголовки (англ. Headers) — характеризуют тело сообщения, параметры передачи и прочие сведения;
Тело сообщения (англ. Message Body) — непосредственно данные сообщения. Обязательно должно отделяться от заголовков пустой строкой.
Заголовки и тело сообщения могут отсутствовать, но стартовая строка является обязательным элементом, так как указывает на тип запроса/ответа.
Так как мы не рассматриваем HTTP подробно, остановимся только на необходимом для выполнения лабораторной работы элементе – стартовой строке.
Стартовая строка различается для запроса и для ответа.
Запрос:
Метод URI HTTP/Версия
Здесь:
Метод (англ. Method) — название запроса, одно слово заглавными буквами. В версии HTTP 0.9 использовался только метод GET, список запросов для версии 1.1 представлен ниже.
URI определяет путь к запрашиваемому документу.
Версия (англ. Version) — пара разделённых точкой цифр. Например: 1.0
К примеру, чтобы запросить страницу, откуда я скопировал данную информацию, нужно передать серверу строки:
GET /wiki/HTTP HTTP/1.0
Host: ru.wikipedia.org
Ответ:
HTTP/Версия КодСостояния Пояснение, где:
Версия — пара разделённых точкой цифр как в запросе.
Код состояния (англ. Status Code) — три цифры. По коду состояния определяется дальнейшее содержимое сообщения и поведение клиента.
Пояснение (англ. Reason Phrase) — текстовое короткое пояснение к коду ответа для пользователя. Никак не влияет на сообщение и является необязательным.
Например, стартовая строка ответа сервера на предыдущий запрос может выглядеть так:
HTTP/1.0 200 OK
На этом перечисление и краткое истолкование основных рассматриваемых в задании терминов может быть закончено.