12545

Исследование протоколов IP-сетей

Лабораторная работа

Информатика, кибернетика и программирование

Лабораторная работа по курсу Вычислительные комплексы и сети Аппаратнопрограммные средства телекоммуникаций Исследование протоколов IPсетей Цель работы. Развитие практических навыков работы с протоколами стека ТСР/IP и исследование возможностей протоко...

Русский

2013-04-30

575.5 KB

29 чел.

Лабораторная работа

 по курсу Вычислительные комплексы и сети

Аппаратно-программные средства телекоммуникаций

«Исследование протоколов IP-сетей»

Цель работы. Развитие практических навыков работы с протоколами стека ТСР/IP и исследование возможностей протоколов ICMP, UDP, TCP.

Необходимое оборудование:

Аппаратные требования

  •  IBM - совместимый ПК в составе сети Интернет.
  •  128 Мбайт оперативной памяти
  •  5 Мбайт свободного места на HDD
  •  Используемый шлюз в Интернет должен пропускать ICMP, TCP и UDP трафик.

Программные требования

- Операционная  система - Windows 2000/XP

- Доступ к ресурсам системы с правами администратора (в программе MFC-snif используются RAW сокеты)

- NetInfo v.3.5 – программа сетевого сервиса.

- MFC-snif – пакетный анализатор.(Разработан студентами каф.ИУ5 МГТУ им. Н.Э.Баумана Тигановым Максимом, Самилло Николаем и Поляковым Евгением).

Требуемое время для выполнения:    4 часа.

1. Общие сведения из теории.

Протоколы - это правила работы программного обеспечения.

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

Термин "стек протоколов" происходит из концепции представления сети в виде вертикально расположенных уровней и сложенных в стек протоколов и относится к любой комбинации сетевых уровней и соответствующих протоколов.

В настоящей лабораторной работе предметом исследований является стек протоколов TCP/IP – наиболее распространенный  и являющийся основным в сети Интернет.

IP (Internet Protocol) - протокол межсетевого взаимодействия, является протоколом сетевого уровня модели OSI и отвечает за перемещение данных между сетевыми компьютерами в Интернет.

ТСР(Transmission Control Protocol) - протокол управления передачей, который перемещает данные между прикладными программами.

UDP (User Datagram Protocol) - протокол пользовательских дейтаграмм, который также перемещает данные между приложениями. Он - более простой и менее надежный, чем ТСР.

ICMP (Internet Control Message Protocol) - протокол управляющих сообщений Интернет, который управляет сетевыми сообщениями об ошибках и другими ситуациями, требующими вмешательства сетевых программ.

  1.  Схема движения данных.

Данные по сети передаются в три этапа:

Информация должна пройти между приложениями и сетью. Это путь сквозь стек протоколов вниз к транспортному уровню.

Определение сетью адреса получателя данных.

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

Схема движения данных пользователя представлена на рис. 1.

Рис. 1

  1.  Протокол IP

Формат IP-дейтаграммы и поля заголовка представлены на рис.2.

Поля IP - протокола.

Номер версии VERS. Протокол IP постоянно развивается, необходимо знать, номер версии, чтобы правильно интерпретировать дейтаграмму.

Длина заголовка (HLEN) в 32 разрядных словах. Чаще всего длина IP-заголовка равна 20 байтам, поэтому данное поле обычно содержит число 5 (0101).

Тип службы (TOS).Поле "тип службы" разделено на 5 подразделов (рис.3).

Рис. 2

Рис. 3

Первое трехразрядное субполе приоритет(precedence) редко применяется на практике. Последнее безымянное одноразрядное субполе всегда содержит 0. Между ними находятся четыре одноразрядных субполя, которые и называют собственно битами TOS. Каждому из четырех битов TOS сопоставлен определенный критерий доставки дейтаграмм: минимальная задержка, максимум пропускной способности, максимум надежности и минимум стоимости. Только один бит TOS может быть установлен в 1. По умолчанию все четыре бита равны 0, что означает отсутствие особых требований, то есть обычный сервис.

Длина пакета. Поле "длина пакета" задает длину IP-пакета, включая сам заголовок. Если локальная сеть построена по технологии Ethernet, уровень соединения инкапсулирует IP-дейтаграммы в кадры Ethernet перед передачей их в Интернет. Спецификация Ethernet ограничивает длину пакета до 1500 байтов.

Идентификатор. Наличие этого поля обусловлено фрагментацией пакетов в Интернет. Сетевые компьютеры используют поле с целью однозначной идентификации каждого посланного фрагмента для дейтаграммы, к которой он относится.

Флаги и смещение. Информация, содержащаяся в полях идентификации флагов и смещения фрагмента позволяет правильно собрать фрагментированный пакет.

Время существования (TTL). Время существования определяет «время жизни» пакета в сети и не дает пакету возможность быть вечным скитальцем.

Протокол. Поле «протокол» в IP-заголовке указывает на протокол-источник данных, инкапсулированных в IP-дейтаграмму.

Контрольная сумма заголовка. Поле контрольной суммы в IP-заголовке содержит 16-ти битное число, являющееся контрольной суммой только для IP-заголовка.

IP-адрес источника и получателя. 32-битное поле «адрес источника» содержит IP-адрес компьютера - отправителя данных (вернее адрес его сетевого интерфейса).

Адрес получателя. Адрес получателя является 32-битным адресом пункта назначения пакета. В случае широковещательной передачи он состоит из единиц.

Опции IP. Это поле позволяет тестировать разнообразные сетевые приложения.

1.3. Протокол пользовательских дейтаграмм (UDP)

UDP-протокол умеет распознавать то приложение среди многих, работающих внутри компьютера, которому предназначены данные. Как правило, сеть назначает таким приложениям определенный номер порта. UDP пользуется дейтаграммами для доставки данных. Точно так же, как IP прицепляет к данным IP-заголовок, UDP прицепляет к ним UDP-заголовок, структура которого представлена на рис.4.

Рис. 4.

Длина UDP-заголовка - восемь байтов. Поля портов состоят из 16-битных целых чисел, представляющих номера портов протоколов. Поле "порт-источник" содержит номер порта, которым пользуется приложение-источник данных. Поле "порт-получатель" соответственно указывает на номер порта приложения-получателя данных. Поле "длина сообщения" определяет длину (в байтах) UDP-дейтаграммы, включая UDP-заголовок. Наконец, поле "контрольная сумма", в отличие от контрольной суммы IP-заголовка, содержит результат суммирования всей UDP-дейтаграммы, включая ее данные, область которых начинается сразу после заголовка.

Модуль UDP отслеживает появление вновь прибывших дейтаграмм, сортирует их и распределяет  в соответствии с портами назначения.

1.4. Протокол TCP

Протокол Транспортного уровня модели OSI служит для передачи данных между сетевым и прикладным уровнями сетевой модели. TCP призван обеспечивать надежную, потоковую, ориентированную на соединение службу доставки данных.

TCP пытается оптимизировать пропускную способность сети, то есть увеличивает производительность доставки пакетов в Интернет. Для этого он динамически управляет потоком данных в соединении. Если буфер приемника данных переполняется, TCP просит передающую сторону снизить скорость передачи.

Данные TCP всегда переносит IP, то есть данные TCP всегда упаковываются в IP-дейтаграммы.

Для обеспечения надежной доставки и правильной последовательности данных в потоке TCP пользуется принцип скользящего окна и тайм-аута. Принцип скользящего окна позволяет послать несколько сообщений и только потом ожидать подтверждения. ТСР накладывает окно на поток данных, ожидающих передачи, и передает все данные, попавшие в окно. Приняв подтверждение о доставке всех данных, ТСР перемещает окно дальше по потоку и передает следующие попавшие в него сообщения. Работая сразу с несколькими сообщениями, ТСР может одновременно "выставить" их на сетевой канал и только потом ожидать прихода подтверждения. Метод скользящего окна значительно увеличивает производительность соединения, а также эффективность циклов обмена сообщениями и подтверждениями об их доставке.

0                                                                   15  

16                                                                      31

Порт источника 16 бит

Порт назначения 16 бит

Позиционный номер 32 бита

Квитанция 32 бита

Длина заголовка 4 бита

Резерв 16 бит

U

R

G

A

C

K

P

S

H

R

S

T

S

Y

N

F

I

N

Размер окна приема 16 бит

Контрольная сумма 16 бит

Указатель границы срочных данных 16 бит

Опции (если таковые имеются)

Данные (если таковые имеются)

Рис.5

ТСР регулирует полосу пропускания сети, договариваясь с другой стороной о некоторых параметрах данных. Причем процесс регулировки происходит на протяжении всего соединения ТСР. В частности, регулировка заключается в изменении размеров скользящего окна. Если сеть загружена не сильно и вероятность столкновения данных минимальна, ТСР может увеличить размер скользящего окна. При этом скорость выдачи данных на канал увеличивается и соединение становится более эффективным.

Если, наоборот, вероятность столкновения данных велика, ТСР уменьшает размер скользящего окна.

Как правило, модуль ТСР передает несколько сегментов, прежде чем скользящее окно заполнится целиком. Большинство систем в Интернет устанавливают окно равным по умолчанию 4096 байтам. Иногда размер окна равен 8192 или 16384 байтам

Заголовок сегмента TCP представлен на рис.5. Обычно (при отсутствии опций) заголовок имеет размер 20 байтов. Напомним, что передаваемый TCP – сегмент с данными инкапсулируется в IP – дейтаграмму.

Номера портов источника и назначения (source port number и destination port number) идентифицируют взаимодействующие приложения.

Позиционный номер (sequence number) сегмента указывает то место в потоке данных от источника до конечного получателя, которое занимает первый байт содержащихся в этом сегменте данных. В начальном сегменте, посылаемом при установлении соединения, присутствует флаг SYN, а в поле позиционный номер содержится так называемый начальный позиционный номер ISN(initial sequence number), выбранный данным хостом для этого нового соединения. Первому байту данных, переданному хостом по новому соединению, будет присвоен позиционный номер, равный ISN+1. Такой сдвиг в нумерации кратко формулируется правилом: флаг SYN поглощает одну позицию.

В поле квитанция (acknowledgement - ACK) передающей стороне сообщается позиционный номер следующего в потоке данных сегмента, ожидаемого принимающей стороной. Это число всегда на единицу больше номера последнего успешно принятого байта.

Поле размер заголовка (header length) необходимо, поскольку в заголовке далее могут следовать поля опций переменной длины. Записанная в этом поле константа означает число отводимых под заголовок 32-разрядных слов, и, следовательно, длина заголовка не превышает 60 байтов. При отсутствии опций размер заголовка всегда равен 20 байтам.

В TCP-заголовке предусмотрены 6 двоичных флагов (flags) , причем некоторые из них могут быть установлены одновременно.

URG – флаг срочных данных. Поле указатель границы срочных данных заголовка имеет смысл только при URG =1

ACK – флаг квитирования. Поле квитанция имеет смысл только при ACK = 1.

PSH – флаг «проталкивания» (push). TCP-модуль хоста назначения должен незамедлительно отдать данные из сегмента своему приложению.

RST – флаг сброса соединения.

SYN – флаг синхронизации позиционных номеров сегментов при установлении соединения.

FIN – флаг окончания передачи. Он означает, что источник сегмента закончил передачу данных и закрывает свой канал вывода в текущем соединении.

Темп передачи потока данных в каждом направлении по TCP-соединению регулируется обеими участвующими в обмене сторонами благодаря тому, что каждая сторона объявляет свой размер окна приема (window size), то есть количество байтов, которое она в данный момент готова принять вслед за байтом, номер которого указан в поле квитанция.

Поле контрольная сумма (TCPchecksum) содержит значение, подсчитанное для всего сегмента, включая его заголовок и данные.

Указатель границы срочных данных (urgent pointer) действует лишь при условии, что в сегменте установлен флаг URG. Это положительная константа, равная смещению номера последнего байта срочных данных относительно позиционного номера в заголовке сегмента. Срочный режим (urgent mode) предусмотрен в TCP, чтобы в поток передаваемых обычных данных приложение могло внедрять цепочки каких-либо особым образом интерпретируемых байтов (например, команд) так, чтобы они были обнаружены и выделены из потока на принимающей стороне.

1.4.1. Открытие TCP соединения

Открытие TCP-соединения состоит из трех фаз.

  1.  Запрашивающая сторона (обычно это клиент) посылает сегмент с флагом SYN, указывая номер порта получателя (сервера) с которым хочет соединиться, а также начальный позиционный номер ISN(initial sequence number).
  2.  Сервер отвечает сегментом SYN, где сообщает свой начальный позиционный номер и одновременно подтверждает получение сегмента SYN от клиента – он устанавливает флаг ACK, а в качестве подтверждаемого позиционного номера указывает номер, на единицу больше принятого, то есть ISN клиента плюс один.
  3.  Клиент подтверждает получение сегмента SYN от сервера, выслав сегмент с флагом ACK и номером квитанции, равным принятому от сервера начальному позиционному номеру ISN плюс один.

Обмен этими тремя сегментами и составляет процедуру установления соединения. Часто такой механизм называют троекратным рукопожатием (three-way handshake).

1.4.2. Закрытие TCP соединения

Если для установления соединения необходим обмен тремя сегментами, то для его закрытия таковых требуется четыре. Поскольку соединение TCP является полнодуплексным (то есть данные могут передаваться в обоих направлениях независимо), каждое направление необходимо закрывать по отдельности. Закрытие одного направления называется полузакрытием (half-close). Согласно протоколу любая из сторон, закончив передачу данных, может послать сегмент FIN. Когда TCP-модуль получает сегмент FIN, он обязан уведомить обслуживаемое приложение, что другая сторона закрыла свое направление передачи данных.

Приход FIN означает лишь то, что поступление данных от партнера по этому соединения прекращается. Но TCP-модуль может посылать данные и после получения им FIN. Предоставляемая приложению возможность продолжать передачу по полузакрытому соединению на практике используется редко.

Говорят, что  сторона, первой закрывающая соединение (то есть посылающая первый FIN), производит активное закрытие соединения (active close). Другая сторона(которая получает этот FIN и отвечает на него своим FIN) выполняет пассивное закрытие соединения(passive close). Итак:

  1.  TCP-модуль одной из сторон посылает сегмент FIN и тем самым закрывает поток данных со своей стороны.
  2.  В ответ на пришедший FIN TCP-модуль второй стороны посылает подтверждение полученного позиционного номера плюс один.
  3.  Приложение на второй стороне закрывает свой поток данных, и его TCP-модуль посылает FIN.
  4.  Первый хост отвечает сегментом ACK с квитанцией, равной позиционному номеру полученного им сегмента FIN плюс один.

1.5. Протокол управляющих сообщений ICMP

Протокол ICMP (Internet Control Message Protocol) служит для обмена сообщениями об ошибках и различных особых случаях, требующих обработки. ICMP-сообщения содержат управляющие данные, используемые либо на IP-уровне, либо на более высоком уровне (TCP или UDP). Некоторые ICMP-сообщения трансформируются в коды ошибок, возвращаемых пользовательским процессам. В иерархии протоколов ICMP часто относят к сетевому уровню, наряду с IP, но ICMP-сообщения инкапсулируются в IP-диаграммы. Структура ICMP-сообщения представлена на рис.6.

0                                             7

8                                           15

16                                         31

Тип (8 бит)

Код (8 бит)

Контрольная сумма(16 бит)

Содержание сообщения(зависит от типа и кода)

Рис.6

Первое слово(4 байта) содержит три поля, общие по смыслу и формату для любых разновидностей сообщений. Следующая затем содержательная часть сообщения форматируется по-разному в зависимости от типа сообщения.

Предусмотрено 15 различных значений для поля тип (type), которое идентифицирует разновидность ICMP-сообщения. Кроме того, некоторые типы ICMP-сообщений дополнительно используют значения поля код(code) для конкретизации тех или иных условий.

Поле контрольная сумма (checksum) относится ко всему ICMP-сообщению и является обязательным

1.5.1. Разновидности ICMP – сообщений

В таблице 1 приведены всевозможные разновидности ICMP-сообщений, определяемые полями тип(type) и код (code). Последние два столбца таблицы позволяют отличить запросы и отклики на них от сообщений об ошибках. Необходимо различать эти

Таблица 1 Разновидности ICMP-сообщений

Тип

Код

Описание

Запрос/Ответ

Ошибка

0

0

Эхо-ответ (echo reply)

+

3

Адресат недоступен(destination unreachable)

0

сеть недоступна

+

1

хост недоступен

+

2

протокол недоступен

+

3

порт недоступен

+

4

необходима фрагментация, но есть флаг DF

+

5

маршрутизация от источника невыполнима

+

6

сеть назначения неизвестна

+

7

хост назначения неизвестен

+

8

хост источника изолирован(устарело)

+

9

сеть назначения административно закрыта

+

10

хост назначения административно закрыт

+

11

сеть недоступна для данного типа сервиса TOS

+

12

хост недоступен для данного типа сервиса TOS

+

13

связь административно закрыта фильтром

+

14

нарушение старшинства хостов

+

15

действует отключение по старшинству

+

4

0

Прикрыть источник(source quench)

+

5

Перенаправление(redirect)

0

перенаправить путь на сеть

+

1

перенаправить путь на хост

+

2

перенаправить путь на сеть для типа сервиса TOS

+

3

перенаправить путь на хост для типа сервиса TOS

+

8

0

Эхо-запрос(echo request)

+

9

0

Объявление маршрутизатора(router advertisment)

+

10

0

Запрос маршрутизатора(router solicitation)

+

11

Срок истек(time exceeded)

0

срок истек на переходе(TTL = 0)

+

1

срок истек при сборке

+

12

Нарушены параметры дейтаграммы

0

испорчен IP-заголовок

+

1

отсутствует необходимая опция

+

13

0

Запрос отсчета времени(timestamp request)

+

14

0

Отклик отсчета времени(timestamp reply)

+

15

0

Запрос информации(устарело)

+

16

0

Информационный отклик(устарело)

+

17

0

Запрос адресной маски(address mask request)

+

18

0

Ответ адресной маски(address mask reply)

+

две разновидности, потому что обработка ICMP-сообщения об ошибке имеет свою специфику.

В ICMP-сообщении об ошибке всегда возвращается IP-заголовок и первые 8 байтов IP-дейтаграммы, признанной ошибочной. Это позволяет ICMP-модулю сопоставить полученное им сообщение об ошибке с конкретным протоколом TCP или UDP(по значению поля протокол в возвращенном IP-заголовке) и с конкретным пользовательским процессом (по номеру порта, который находится в TCP или UDP-заголовке в возвращенных первых 8 байтах IP-дейтаграммы)

ICMP-сообщение об ошибке никогда не генерируется в ответ на следующие пакеты:

  1.  На ICMP-сообщение об ошибке.
  2.  На дейтаграмму, посланную по широковещательному IP-адресу или групповому IP-адресу.
  3.  На какой-либо фрагмент дейтаграммы, кроме первого ее фрагмента.
  4.  На дейтаграмму, в которой адрес источника не определяет конкретный хост. Это означает, что адрес источника не может быть нулевым адресом, адресом внутренней петли хоста (loopback) и не может быть широковещательным или групповым адресом.

Эти правила предназначены для предотвращения так называемых широковещательных штормов(broadcast storms), которые бывало, случались в прошлом, когда ICMP-сообщения об ошибке могли высылаться в ответ на широковещательные пакеты.

1.6. Как работает Ping

Программа проверяет доступность зондируемого ею объекта в сети подобно локатору: посылает хосту ICMP-сообщение эхо-запрос(echo request) и ждет от него эхо-отклик(echo reply).

Эта утилита внешне действует подобно клиенту, а адресуемый хост, от которого приходит отклик, выступает в роли сервера. Однако на самом деле обработка эхо-запросов и генерация откликов осуществляется не каким-либо пользовательским процессом, а непосредственно ядром.

Формат ICMP сообщений, содержащих эхо-запрос или эхо-отклик, представлен на рис.7

0                                             7

8                                           15

16                                         31

Тип (0 или 8)

Код (0)

Контрольная сумма

Идентификатор

Порядковый номер

Необязательные данные

Рис.7

Как и при обработке любых других ICMP-запросов, в ответном сообщении возвращаются поля идентификатор(identifier) и порядковый номер(sequence number) запроса. Также должны быть возвращены и содержащиеся в запросе необязательные данные(optional data), так как они используются источником запроса при интерпретации пришедшего на запрос ответа.

Unix-реализации программы Ping фиксируют в поле идентификатор(identifier) ICMP-сообщения свой системный идентификатор процесса(process ID), пославшего сообщение. Это в последствии позволяет правильно распределять возвращенные ответы, когда на одном хосте параллельно работают несколько копий Ping.

В первом пакете, посылаемом Ping, значение поля порядковый номер(sequence number) устанавливается равным 0. Каждый раз при отправлении нового запроса это значение увеличивается на единицу.

1.7. Как работает Traceroute

Эта утилита даёт возможность отследить текущий маршрут движения IP – дейтаграмм от одного хоста к другому. Кроме того, программа позволяет использовать IP – опцию маршрутизации от источника(source route).

В основе Traceroute лежит идея отправки UDP-пакета адресату и постепенного изменения времени жизни (time-to-live, TTL). Первоначально TTL пакета равен 1, и когда пакет достигает первого маршрутизатора, его TTL сбрасывается, и маршрутизатор генерирует ICMP-пакет со сведениями о превышении лимита времени. Тогда начальное значение TTL увеличивается на 1, так что на сей раз UDP-пакет достигает следующего маршрутизатора, а тот тоже отсылает ICMP-пакет по превышению лимита времени. Совокупность этих ICMP-сообщений дает список IP-адресов, пройденных на пути к конечной точке. Когда TTL увеличится настолько, что UDP-пакет достигнет искомой конечной точки, возвращается ICMP сообщение о недостижимости порта, поскольку на получателе ни один процесс не ждёт вашего сообщения.

2. Изучение утилит NetInfo.

Для изучения назначения и возможностей утилит NetInfo загрузите эту программу.

2.1. Утилита Local Info 

Утилита для предоставления сетевой информации про локальный хост и текущую версию сокетов Windows.

Вы можете использовать Local Info для:

- идентификации своего компьютера в сети

- определения того, какая локальная информация доступна

Для отображения информации:

  1.  Выберите вкладку Local Info. Результат будет выведен в область Response.
  2.  Нажатие кнопки Refresh обновит информацию.

Примечание:

Для получения MAC адреса сетевого адаптера необходим установленный протокол NetBEUI.

Пример использования Local Info:

2.2. Утилита Ping (Packet Internet Groper) 

Диагностическая утилита для проверки доступности удалённого хоста. Посылается ICMP эхо-запрос и ожидается ответ.

Вы можете использовать Ping для:

- «пинга» удалённого хоста  для проверки сетевого соединения

- «пинга» удалённого хоста  для определения скорости передачи данных в физической среде

 - «пинга» хостов «по спирали» начиная с локального (127.0.0.1), затем всё более дальние компьютеры и шлюзы, для определения различных неисправностей.

Для «пинга» хоста:

  1.  Выберите вкладку Ping
  2.  В строке Host введите имя хоста или его IP адрес.
  3.  В опциях (вызываются нажатием правой клавиши мыши и выбором соответствующего пункта меню Options) устанавливаются следующие настройки:

Packets to send

Количество посылаемых пакетов.

Timeout

Сколько секунд будут предприниматься попытки «пинга» если хост не отвечает.

Packet size

Длина в байтах каждого пакета.

Нажмите кнопку Start.
Утилита посылает эхо запрос и ждёт ответа. Если «пинг» успешен то в области
Response выводятся результаты.

Если Ping не получает ответа за время определённое в Timeout, выдаётся сообщение о неудаче. Существует несколько причин неудачи:  удалённый хост может не функционировать, может не работать сеть или какой-либо шлюз или маршрутизатор на пути к удалённому хосту или же сервис Ping просто не поддерживается удалённым хостом.

Во время выполнения запроса кнопка Start изменяется на Stop, и Вы можете прекратить «пинг» в любой момент.

Примечание:

Для использования Ping необходим статический IP адрес для Вашего компьютера. Также подойдёт IP адрес назначаемый DHCP сервером. Ping не будет работать в системах с эмуляцией IP адресов, таких, как, например, UNIX с запущенными TIA или SliRP. Ping не будет работать через брандмауэры, если только брандмауэр не сконфигурирован для пропуска ICMP пакетов.

Пример использования утилиты Ping: 

2.3. Утилита Trace (traceroute) 

Утилита, которая сообщает обо всех маршрутизаторах между компьютером, пославшим запрос и удалённым хостом.

Traceroute также показывает время ответа(в миллисекундах), которое показывает сколько нужно пакету времени для  прохождения отрезка пути до определённого маршрутизатора. Это время зависит от загруженности сети.

Для инициации TraceRoute:

  1.  Выберите вкладку Trace .
  2.  В строке Host введите имя хоста или его IP адрес.
  3.  В опциях (вызываются нажатием правой клавиши мыши и выбором соответствующего пункта меню Options) устанавливаются следующие настройки:

Timeout

Сколько секунд TraceRoute будет пытаться найти путь к удалённому хосту.

Packet Size

Величина пакета в байтах.

Number of Hops

Число узлов до удалённого хоста(как правило за 30  «прыжков» можно достигнуть любого хоста)

  1.  Нажмите  кнопку Start .

    Traceroute начинает поиск и выводит результаты в область Response.

    Во время выполнения запроса кнопка
    Start изменяется на Stop, и Вы можете прекратить поиск в любой момент.

Примечание:

Для использования TraceRoute необходим статический IP адрес для Вашего компьютера. Также подойдёт IP адрес назначаемый DHCP сервером. TraceRoute не будет работать в системах с эмуляцией IP адресов, таких, как, например, UNIX с запущенными TIA или SliRP. Ping не будет работать через брандмауэры, если только брандмауэр не сконфигурирован для пропуска ICMP пакетов.

Пример использования Trace:

2.4. Утилита Lookup 

Утилита возвращает официальное имя хоста, IP адрес и псевдоним (если он существует) из DNS.

Вы можете использовать утилиту Lookup для:

  •  Получения имени хоста из его IP адреса
  •  Получения IP адреса хоста из его имени.

Для инициализации запроса Lookup:

  1.  Выберите вкладку Lookup .
  2.  В строке Host введите имя хоста или его IP адрес.
  3.  Нажмите кнопку  Start.

    Lookup начинает поиск и выводит результаты в область Response.

    Во время выполнения запроса кнопка
    Start изменяется на Stop, и Вы можете прекратить поиск в любой момент.

Примечание:

Для Lookup необходима связь с сетью имеющей DNS или  WINS сервер или какой-нибудь другой сервер имён. Ваш компьютер должен быть сконфигурирован для доступа к DNS.

Пример использования Lookup:

2.5. Утилита Finger 

Утилита, позволяющая найти и отобразить информацию обо всех пользователях сетевого узла. Эта информация включает в себя список пользователей подключенных к хосту в данный момент (их идентификаторы и имена). Также для каждого пользователя указывается его корневая директория, время подключения, место нахождения офиса, когда они последний раз получали почту и когда они последний раз читали почту.

Запрос Finger также отображает всю информацию содержащуюся в файлах .plan или .project в корневой директории. Эти файлы часто используются как простой путь для хранения информации. Например сервер Finger на quake@geophys.washington.edu выдаёт систематизированную по датам информацию о землетрясениях, которые происходили в северо-западном регионе Соединённых Штатов(..must die, nah..)

Для инициализации запроса Finger:

  1.  Выберите  вкладку Finger .
  2.  В строке Host введите имя хоста или его IP адрес.
  3.  Нажмите кнопку Start.

    Клиент
    Finger связывается с сервером Finger. Результаты запроса отображаются в области Response. Если на удалённом хосте нет сервера Finger, то клиент выводит соответствующее сообщение:

No server found there.

Примечание:

Обычно только UNIX или NT хосты поддерживают сервер Finger. Многие системные администраторы выключают серверы Finger, так как они представляют потенциальный риск.

Пример использования Finger:

2.6. Утилита Whois 

Сетевая информационная утилита, которая предоставляет информацию о том, кто владеет Интернет хостом или доменом, и с кем вы можете проконтактировать относительно этого хоста или домена. Whois запрос показывает фамилию контактного лица, адрес его электронной почты, номер телефона, и сетевой почтовый ящик для всех пользователей и организаций, которые зарегистрированы на одном из официальных Whois серверов, таких как база данных Internet Network Information Center (interNIC).

Для инициализации запроса Whois:

  1.  Выберите вкладку Whois.
  2.  В текстовом поле Query, введите текст запроса, например microsoft.com.

    Введите имя или “указатель” (уникальный идентификатор, который соответствует
    Whois записи) человека или организации. Выпадающий список показывает запросы, которые были введены ранее. Запрос ищет все записи в базе данных Whois до точного совпадения имени или “указателя”.

    Если вы не знаете имени или указателя, вы можете ввести строку запроса частично, поставив в конце одну или несколько точек. Например, введя “
    Mack.” вы найдете “Mack,” “Mackall,” “Mackey.” 

    Если получено более, чем одно местонахождение имени,
    Whois возвращает краткое описание каждого. Вы можете затем взять указатель имени (показанный в скобках), о котором вы хотите получить больше информации и ввести его как строку запроса, с восклицательным знаком впереди, например “!ABC.”
  3.  В диалоговом окне Options находится набор опций, которые вы можете использовать.

    NetInfo сейчас включает новую особенность, которая будет автоматически определять Whois сервер, основываясь на стране, взятой из строки запроса. Вы можете убрать флажок  Autodetect для того, чтобы запретить вашим запросам обращаться к серверам, указанным в установках Whois :

    whois.internic.net

    Предоставляет информацию о пользователях и организациях, зарегистрированных в Internet Network Information Center (interNIC).

    whois.arin.net

    Предоставляет информацию о пользователях и организациях, зарегистрированных на сервере
    American Registry for Internet Numbers.

    whois.nic.gov

    Предоставляет информацию о пользователях и организациях, зарегистрированных в сети
    U.S. government.

    whois.nic.mil

    Предоставляет информацию о пользователях и организациях, зарегистрированных в сети
    U.S. military.

    whois.ripe.net

    Предоставляет информацию о пользователях и организациях, зарегистрированных на сервере
    European IP Address Allocations.

    whois.nic.uk

    Предоставляет информацию о пользователях и организациях, зарегистрированных на сервере
    United Kingdom IP Address Allocations.

    whois.ripn.net

    Предоставляет информацию о пользователях и организациях, зарегистрированных на сервере
    Russian IP Address Allocations.

    whois.apnic.net

    Предоставляет информацию о пользователях и организациях, зарегистрированных на сервере
    Asia Pacific IP Address Allocations.
    whois.aunic.net
    Предоставляет информацию о пользователях и организациях, зарегистрированных на сервере
    Australia IP Address Allocations.
    Примечание: Вы можете выбирать из текущего списка известных Whois серверов и добавлять новые серверы к списку.
  4.  Нажмите кнопку Start.
    Whois клиент соединится с указанным Whois сервером. Результат запроса появится в области Response . Если запрос найдет единственное нахождение строки поиска (человека или организации), он показывает детальную информацию для этого человека или организации. Если он находит больше, чем одно вхождение строки поиска, он показывает краткую информацию о каждой записи, которая совпадает с условием поиска.

Примечание:

 Чтобы показать экран помощи по использованию сервисов, которые предоставляются NIC через Whois, пошлите Whois запрос с текстом “help”.

Пример использования Whois:

2.7. Утилита Daytime 

Сетевая информационная утилита, которая принимает локальное время с другого компьютера. Множество веб-серверов и DNS-серверов отвечают на такой запрос.

Чтобы получить локальное время, сделайте следующее:

  1.  Выберете вкладку Daytime.
  2.  В поле Server, введите имя хоста или ip адрес удаленного daytime сервера (например, www.mit.edu).

    Выпадающий список показывает ранее введенные имена или
    ip адреса.
  3.  Нажмите на кнопку Start.

    Daytime клиент соединяется с daytime сервером. Результат запроса показывается в области Response.

    При попытке соединиться с сервером, который не поддерживает этот сервис, результатом будет сообщение об отказе соединения.

Пример daytime:

2.8. Утилита Time 

Сетевая информационная утилита, которая получает точное значение времени с сервера времени. Эта утилита позволяет вам синхронизовать ваши локальные системные часы с часами на удаленном сервере.

Для синхронизации сделайте следующее:

  1.  Выберете вкладку Time.
  2.  В текстовом поле Server, введите имя или IP адрес сервера времени (например, www.mit.edu).

    Выпадающий список показывает ранее введенные имена или
    ip адреса.
  3.  Нажмите кнопку Start.

    Утилита
    Time устанавливает соединение с удаленным сервером и показывает имя сервера, текущее время, полученное с сервера, а также различие во времени между часами сервера и вашими.
  4.  Нажмите правой кнопкой на сервере времени в области Response, чтобы показать выпадающее меню, а затем выберете Synchronize.

    При успешном изменении, утилита
    Time показывает сообщение, которое говорит о том, что ваши часы были обновлены. 

Примечание:

Временной протокол имеет разрешение в одну секунду и не дает представления о времени прохождения пакета.

Пример Time:

2.9. Утилита HTML (HyperText Markup Language) – Гипертекстовый язык разметки

Сетевая информационная утилита, которая посылает запрос на указанный веб адрес (URL) и возвращает полную заголовочную информацию (включая cookies), а также возвращает информацию со страницы в форматированном HTML коде.

Вы можете использовать утилиту HTML для дебаггинга вашего сайта.

Чтобы запросить веб адрес, сделайте следующее:

  1.  Выберете вкладку HTML.
  2.  В поле URL введите адрес веб страницы, которую вы хотите запросить. Он должен указывать файл с веб сайта (например: http://hostname/page или hostname/page).

    Выпадающий
     список показывает адреса, введенные ранее.
  3.  В диалоговом окне Options находится набор опций:

    Get from the wire

    Получить данные из провода, даже если они были локально закэшированы.

    Do not cache

    Не кэшировать данные.

    Full header information

    Показывать полную заголовочную информацию.

    Page data

    Показывать данные со страницы.
  4.  Нажмите кнопку Start.

    Результаты запроса появится в области
    Response.Если указанный хост не имеет веб сервера, утилита HTML покажет сообщение: 

No server found there. 

Пример HTML:

2.10. Утилита Scanner 

Сетевая информационная утилита, которая сканирует все имена хосты в указанном диапазоне IP адресов и проверяет статус хостов.

Чтобы запустить Scanner, сделайте следующее:

  1.  Выберете вкладку Scanner.
  2.  В поле Address, введите IP адрес для сканирования (например, 192.41.61.50).
  3.  В диалоговом окне Options находится набор опций:

    Ascending

    Когда эта опция включена,
    Scanner сканирует все имена хостов в в порядке возрастания IP адреса.

    Enabled

    Когда эта опция включена,
    Scanner проверяет статус хоста для каждого IP адреса.

    Timeout

    Количество секунд, когда Scanner проверяет хост, который не отвечает.

    Retries

    Количество попыток проверки не отвечающего хоста.
  4.  Нажмите кнопку Start.

    Утилита Scanner сканирует диапазон IP адресов. Результат сканирования появляется в области Hosts.

    В течение сканирования кнопка
    Start превращается в Stop. Вы можете нажать Stop в любое время, чтобы остановить процесс сканирования. 

Замечание:

Проверка статуса хостов может значительно увеличить время, требующееся для завершения сканирования.

Пример Scanner:

2.11. Утилита Services 

Сетевая диагностическая утилита, которая проверяет статус сервисов хоста.

Чтобы запустить Services, сделайте следующее:

  1.  Выберете вкладку Services.
  2.  В текстовом поле Host введите имя или IP адрес удаленного (например, www.mit.edu).
  3.  В диалоговом окне Options находится набор сервисов, которые вы хотите проверить..
  4.  Нажмите кнопку Check.

    Утилита
    Services проверяет статус сервисов хоста. Результат сканирования появляется в области Response.

    В течение проверки, кнопка
    Check превращается в Stop. Вы можете нажать Stop в любое время для завершения проверки. 

Пример Services:

2.12. Утилита IPMonitor 

Утилита системного трея включена как часть NetInfo для наблюдения за включением/выключением компьютеров. IPMonitor проверяет сетевую доступность списка хостов, определенных пользователем и предупреждает вас об ошибках, используя аудио сигналы и оповещение с помощью иконок.

Чтобы создать список хостов, сделайте следующее:

  1.  Запустите IPMonitor.
  2.  Нажмите правой кнопкой на иконку IPMonitor в системном трее и в выпадающем меню выберете Details.
  3.  Нажмите кнопку Add. В текстовом поле Host, введите имя хоста или его IP адрес (например, www.netscape.com). В поле Description введите описание для этого хоста (например, Netscape Netcenter). Также вы можете использовать следующие опции:

    Interval

    Количество минут, которое IPMonitor ждет до следующей проверки.

    Timeout

    Количество секунд, когда Scanner проверяет хост, который не отвечает.

    Retries

    Количество попыток проверки не отвечающего хоста.
  4.  Нажмите кнопку OK.

    IPMonitor сразу начинает проверять хосты. Результаты проверки появляются в области  Details.
  5.  Повторите пункты 3 и 4, чтобы еще добавить хосты к списку.
  6.  Нажмите кнопку Close. 

Примечание:

Вы можете два раза кликнуть по иконке IPMonitor в трее, чтобы появилось диалоговое окно Details. Вы можете нажать правой кнопкой в поле Details, чтобы появилось выпадающее меню.

Пример IPMonitor:

3.Пакетный анализатор.

Эта программа предназначена для анализа трафика TCP/IP идущего на интерфейс сетевого адаптера. Она способна различать основные протоколы стека TCP/IP, такие как IP, ICMP, IGMP, TCP, UDP и некоторые другие, и выводить информацию, содержащуюся в заголовках и полях данных  протоколов. Существует возможность установки фильтров на входящий трафик (только ICMP; ICMP и UDP; ICMP, UDP и TCP и т.п.).

Этапы работы с программой:

  1.  Установить фильтры.

Необходимо нажать кнопку ”Filters” на главном окне программы и поставить галочки напротив названий протоколов. После нажать кнопку “OK”.

  1.  Нажать кнопку “Snif”. В поле наверху окна отобразится интерфейс, к которому производится привязка. Список всех входящих пакетов будет отображаться в правой части главного окна программы. Для анализа содержимого пакета надо его выделить при помощи мыши или клавиатуры.
  2.  Для приостановки работы программы необходимо нажать кнопку “Pause”(для продолжения работы снова надо нажать на “Snif”)
  3.  Для очистки списка пакетов необходимо нажать на кнопку “Clear all”.
  4.  Для выхода из программы надо нажать кнопку “Exit

Вид главного окна программы в процессе работы


4. Порядок выполнения работы.

4.1. В соответствии с вариантом либо послать ICMP эхо-запрос на удалённый хост либо определить количество «хопов» до удалённого хоста. При помощи пакетного анализатора проанализировать все пакеты приходящие на сетевой интерфейс интерфейс. Для нечётных вариантов просматривать ICMP трафик, а для чётных ICMP и UDP траффик. Результаты анализа представить в отчете.

4.2. Просканировать порты удалённого хоста и зафиксировать и описать службы на открытых портах.

4.3. Сделать запросы, соответствующие варианту. Объяснить реакцию хоста на каждый запрос.

4.4. Инициировать произвольный TCP сеанс и его проанализировать (открытие/поддержка/закрытие)

Вариант

Удалённый хост

Ping

Traceroute

Проверка работающих сервисов

Запрос

1

sklad-service.ru

+

+

who-is, HTML

2

luminator.ru

+

+

who-is, HTML

3

eye.moof.ru

+

+

lookup, HTML

4

yandex.ru

+

+

who-is, lookup

5

hotlog.ru

+

+

who-is. HTML

6

wiw.ru

+

+

lookup, HTML

7

mail.ru

+

+

who-is, lookup

8

sportmaster.ru

+

+

who-is. HTML

9

nem.ru

+

+

who-is, lookup

10

nightwish.ru

+

+

lookup, HTML

11

email.com

+

+

who-is. HTML

12

akkords.ru

+

+

who-is, lookup

13

mtw.ru

+

+

lookup, HTML

14

korova.ru

+

+

who-is, lookup

15

pandora.com

+

+

who-is, lookup

16

budda.ru

+

+

who-is. HTML

17

formoza.ru

+

+

who-is, lookup

18

krishna.ru

+

+

lookup, HTML

19

cars.ru

+

+

who-is. HTML

20

flasher.ru

+

+

who-is, lookup

21

bmstu.ru

+

+

lookup, HTML

22

deneg.net

+

+

time, whois

23

mts.ru

+

+

who-is, lookup

24

1c.ru

+

+

who-is. HTML

25

pilot.ru

+

+

who-is, lookup

26

zyxel.com

+

+

who-is. HTML

27

job.ru

+

+

who-is, lookup

28

rats.ru

+

+

lookup, HTML

29

pesni.ru

+

+

who-is. HTML

30

mp3.com

+

+

who-is, lookup

Все утилиты для запросов, а также утилиты “Ping” и “Traceroute” использовать из пакета NetInfo. Анализ трафика производить при помощи утилиты “MFC_Snif

Вариант – в соответствии с номером в журнале.

4.5. Составить отчет по работе.

4.6. Ответить на контрольные вопросы.

4.7. Защитить лабораторную работу.

5. Содержание отчета.

Отчет по лабораторной работе должен содержать:

1. Сценарии выполнения пунктов 4.1- 4.4задания.

2.Результаты анализа пакетов, описание служб на открытых портах удалённого хоста, описание реакции на запросы.

3. Пример ТСР сеанса и описание процедур открытия, поддержания и закрытия ТСР соединения посредством обмена заголовками протокола ТСР для этого сеанса..

6. Контрольные вопросы.

1.Какое назначение имеет протокол IP?

2. Как работает утилита ping?

3. При помощи какой утилиты можно получить информацию обо всех пользователях сетевого узла?

4. По каким флагам заголовка протокола ТСР можно идентифицировать фазу ТСР соединения?

5. Как осуществляется настройка фильтрации пакетов в утилите MFC_Snif?