Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Сети передачи аудио- видео данных

Поиск

СЕТИ ПЕРЕДАЧИ АУДИО- ВИДЕО ДАННЫХ

Методические указания по выполнению лабораторных работ

 

 

Содержание:

 

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

Протоколы прикладного уровня

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

Основы работы с анализатором сетевых протоколов Wireshark

 

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

Протокол транспортного уровня TCP

 

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

Ethereal Lab: протокол сетевого уровня IP

 

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

Ethereal Lab: протокол сетевого уровня ICMP

 

ЛАБОРАТОРНАЯ РАБОТА №1

Протоколы прикладного уровня

Цель работы – исследование протоколов прикладного уровня (http, pop, smtp) с помощью программы telnet.exe и изучения семантики общения между клиентом и сервером.

Протоколы прикладного уровня и принципы их работы

Приложения являются «разумным фундаментом» компьютерных сетей. Не имея приложений, выполняющих полезную работу, бессмысленно говорить о поддерживающих их протоколах.

Несмотря на разнообразие сетевых приложений и большое число их взаимодействующих компонентов, почти всегда программное обеспечение является «ядром» приложения. Программное обеспечение распределяется между двумя и более оконечными системами (хостами). Так, например, web-приложения обычно состоят из двух взаимодействующих частей: браузера, находящегося на стороне пользователя, и программного обеспечения сервера. Аналогично, приложение Telnet состоит из программы на локальном компьютере и программы на удаленном компьютере.

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

Протоколы прикладного уровня определяют способ обмена сообщениями между двумя процессами, выполняющимися на разных хостах. Обычно протокол определяет следующие элементы:

типы используемых сообщений, например запросы и ответы;

· синтаксис каждого из типов сообщений, описывающий поля сообщения и их разделители;

· семантику полей, то есть смысл информации, содержащийся в каждом из полей сообщения;

· правила, описывающие события, которые вызывают генерацию сообщений.

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

· имя и адрес хоста, которому принадлежит процесс;

· идентификатор процесса внутри хоста.

Адрес хоста будет рассмотрен в последующих лабораторных работах, здесь же рассмотрим идентификацию процесса хоста, которая производится с помощью номера порта. Популярные Интернет - протоколы прикладного уровня имеют стандартизованные значения номеров портов. Так процессы, использующие протокол HTTP, получают порт номер 80, процессы, использующие протокол POP – порт номер 110, а процессы, использующие протокол SMTP - порт номер 25.

Протоколы электронной почты (SMTP и POP)

Протокол прикладного уровня SMTP, описанный в документе RFC 2821, составляет основу службы электронной почты Интернета. Теперь рассмотрим подробнее, каким образом осуществляется передача сообщения между почтовыми серверами. Любопытно отметить, что протокол SMTP по своей сути напоминает непосредственное общение между двумя людьми.

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

Рассмотрим пример обмена сообщениями между SMTP-клиентом (C) и SMTP-сервером (S). Хост клиента имеет имя my.ru, а хост сервера — gukit.edu. (Строки, помеченные голубым цветом, передаются клиентом в свой сокет в той же кодировке ASCII, в которой они приведены ниже; то же самое касается строк, помеченных желтым цветом и относящихся к серверу.)

Итак, после установления ТСР-соединения обмен может происходить следующим образом:

220 gukit.edu

НЕLO gukit.edu

250 Hello my.ru, pleased to meet you

MAIL FROM: <cat@my.ru>

250 cat@my.ru... Sender ok

RCPT TO: <dog@gukit.edu>

250 dog@gukit.edu. Recipient ok

DATA

354 Enter mail, end with "." on a line by itself

Hochesh' kotletku?

Prihodi v gosti!

.

250 Message accepted for delivery

QUITS: 221 gukit.edu closing connection

В приведенном примере клиент послал почтовому серверу gukit.edu сообщение «Hochesh' kotleku? Prihodi v gosti!» с почтового сервера my.ru. Клиент использовал пять различных команд: HELO, MAIL FROM, RCPT TO, DATA и QUIT. Смысл этих команд вполне понятен. Кроме того, клиент использовал символ точки в отдельной строке, указывающий на конец сообщения. Сервер посылает ответ на все команды клиента. Ответ включает код и (необязательно) описание на английском языке. Протокол SMTP поддерживает постоянные соединения: Если клиенту необходимо отправить несколько сообщений подряд, все сообщения передаются через одно TCP-соединение. Передача каждого нового сообщения начинается с команды MAIL FROM: my.ru, а заканчивается одиночным символом точки. После того как все сообщения посланы, клиент генерирует команду QUIT.

POP

Протокол РОРЗ является одним из самых простых протоколов доступа к электронной почте. Но с весьма ограниченной функциональностью. Протокол начинает действовать после того, как агент пользователя (клиент) устанавливает ТСР-соединение с портом 110 почтового сервера, и подразумевает выполнение трех основных фаз: авторизации, транзакции и обновления. Во время авторизации агент передает серверу имя пользователя и пароль для того, чтобы сервер предоставил агенту доступ к сообщениям электронной почты. В фазе транзакции пользователь получает сообщения, а также может пометить сообщения, предназначенные для удаления, и получить почтовую статистику. Наконец, фаза обновления наступает после того, как клиент посылает команду quit и закрывает РОРЗ-сеанс. Почтовый сервер производит удаление сообщений, помеченных пользователем.

Во время РОРЗ-транзакции агент пользователя посылает почтовому серверу команды, на каждую из которых сервер реагирует посылкой одного из двух ответных сообщений: +ОК (иногда с последующей передачей данных сервера клиенту) и -ERR, указывающего на ошибку в команде клиента.

Авторизация включает в себя две возможные команды: user <имя пользователя> и pass <пароль>. Для того чтобы проиллюстрировать действие этих команд, предположим, что вы устанавливаете соединение с РОРЗ-сервером через порт 110. Если mailServer — имя вашего почтового сервера, то процесс авторизации в программе Telnet будет выглядеть следующим образом:

telnet pop.mailServer.ru 110

+OK РОРЗ server ready

User user

+OK

Pass 1234

+ok user successfully logged on

Если какая-либо из команд будет введена неверно, сервер выдаст сообщение -ERR.

Теперь обратимся к фазе транзакции. Как правило, агент пользователя, использующий протокол РОРЗ, в зависимости от настроек может автоматически удалять или не удалять сообщения после их приема; при этом во время транзакции будут применяться различные команды. Если загруженные сообщения необходимо удалять, агент посылает серверу команды list, retr и dele. Пусть, например, в почтовом ящике пользователя находятся два сообщения. Ниже приведен диалог клиента и сервера во время транзакции:

list

1 1498

2 2912

.

retr 1

(Horoshajа pogoda!!!)

.

dele 1

retr 2

(V trave sidel kuznechik,

sovsem kak ogurechik,

zelenen'kii on byl...)

.

dele 2

quit

+0K P0P3 server signong off

Сначала агент пользователя получает от сервера список сообщений с указанием размера каждого сообщения, а затем последовательно принимает и удаляет сообщения с сервера. Во время транзакции агентом используются лишь четыре команды: list, retr, dele и quit. Синтаксис этих команд описан в документе RFC 1939. После обработки команды quit РОРЗ - сервер переходит в фазу обновления и производит фактическое удаление переданных сообщений.

Протокол HTTP

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

1. Запустите интернет-браузер и откройте с помощью него какую-нибудь страницу в интернете. Страница не должна иметь условий и иметь расширение.html или.txt. Например, страница расположена по адресу:

http://lib.ru/ANEKDOTY/orfograf.txt

где lib.ru – название сервера,

/ANEKDOTY/orfograf.txt – расположение страницы на сервере.

(или http://www.koreamuseum.ru/chya.html

или http://www.greekroman.ru/gallery/mus_hermitage.htm)

2. Запустите telnet сеанс. Для этого запустите сеанс MS-DOS, для чего выберите Пуск > Программы > Стандартные > Командная строка.

В командной строке введите следующее:

telnet <host name> <port number>

где: <host name> – имя того же хоста, который введён в браузере – lib.ru;

<port number> – номер порта, уникальный для каждого процесса (протокола) – 80;

У Вас, к примеру, должно получиться:

telnet lib.ru 80

Таким образом, вы инициируете соединение с сервером.

3. Составьте сообщение-запрос с помощью метода GET. Например, для получения html-страницы хоста lib.ru сообщение-запрос может выглядеть следующим образом:

GET /ANEKDOTY/orfograf.txt HTTP/1.1

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

4. Повторите пункты 2 и 3 для запроса в виде команды HEAD.

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

1. В чём отличие запросов с помощью метода GET и HEAD?

2. Поясните поля сообщения-ответа, генерируемого HTTP-сервером.

ЛАБОРАТОРНАЯ РАБОТА № 2

Описание работы программы

Анализатор Wireshark – это программа, которая устанавливается на компьютере, подключенном к сети посредством сетевого адаптера. Анализатор захватывает пакеты, попадающие на интерфейс компьютера, сохраняет и отображает информацию о каждом пакете: тип протокола, структуру полей, адрес источника и адрес назначения, а также другие параметры. При открытии программы вы увидите окно, показанное на рисунке 2.1.

1 2 3

Рис. 2.1.Окно программы Wireshark

Здесь введены следующие обозначения:

1. Панель основного меню

Меню File позволяет открывать (Open …), закрывать (Close), сохранять (Save и Save as …), перезагружать (Reload) и выводить на печать (Print …) файлы захваченных пакетов, выводить на печать содержимое отдельных пакетов (Print Packet), а также выходить из программы (Quit).

Меню Edit позволяет осуществлять поиск кадров (Find Frame …), переходить к кадру с заданным номером (Go to Frame), отмечать кадры (Mark Frame, Unmark Frame и Mark All Frames …), задавать предпочтительные параметры (Preferences), создавать фильтры (Capture Filters), просматривать фильтры (Display Filters …), а также включать и отключать режим анализа протоколов (Protocols …).

Меню Capture служит для включения (Start …) режима захвата кадров и выхода из него (Stop).

Меню Display позволяет выбирать параметры отображения на экране (Options …), сравнивать выбранные кадры (Match Selected), использовать цветовую разметку (Colorize Display), развертывать и свертывать отображение кадров (Expand All и Collapse All), показывать пакет в отдельном окне (Show Packet in New Window), а также конфигурировать пользовательские декодировки (User Specified Decodes).

Меню Tools позволяет отображать дополнительные подключаемые модули (plugins), отслеживать TCP-поток (Follow TCP Stream), получать данные о протоколах захваченных пакетов (Decode As …), а также выводить на экран статистику протоколов (Summary … и Protocol Hierarchy).

2. Панель инструментов.

3. Панель фильтрации.

Кнопка Filter позволяет инициировать диалог построения фильтра. Справа от этой кнопки расположено окно для ввода и редактирования фильтра. Это окно служит также для отображения действующего фильтра и просмотра в режиме прокрутки списка ранее использованных фильтров. Кнопка Reset очищает окно для ввода фильтра. Кнопка Apply инициирует применение выбранного фильтра. Справа от кнопки Apply окно сообщений, которое информирует, что анализатор работает в режиме захвата пакетов. Если режим захвата отключен, окно сообщений показывает имя файла, считанного в верхнее окно. Если возможна фильтрация по полю, выбранному в среднем окне, то окно сообщений показывает метку соответствующего фильтра.

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

1. Capture > Options. Вы увидите окно, показанное на рисунке 2.2.

Рис. 2.2. Окно выбора параметров захвата

Поле Interface показывает интерфейсы, обнаруженные на вашем компьютере (сетевые платы, модемы и др.). В данном поле необходимо ввести сетевую плату, которой будет производиться захват пакетов. Так же здесь показана необходимая информация о найденном интерфейсе (IP адрес, технология сети, размер буфера)

Галочка, поставленная на Capture packets in promiscuous mode, переводит интерфейс анализатора в режим “неразборчивого” захвата. Если этот режим не включен, анализатор будет захватывать только пакеты, адресованные в компьютер, на котором установлен анализатор, или исходящие из него.

Поле Limit each packet to ____ bytes служат для задания максимального объема данных, фиксируемого анализатором по каждому пакету. По умолчанию это 65535 байт, что достаточно для большинства протоколов.

Кнопка и поле Filter позволяют задать фильтр пакетов. Пустое значение означает захват без фильтрации. Если щелкнуть кнопку Filter, то появится диалоговое окно для построения или выбора готового фильтра.

Поле Capture File(s) используется для записи захваченных пакетов в файл. Здесь - кнопка и поле File служат для ввода имени файла, в котором будут сохранены результаты захвата (файл, а так же весь путь к нему должен быть написан латинскими буквами). При установке галочки на use multiple files станут активными остальные параметры, используемые для записи.

Поле Stop Capture after позволяет выставить длительность сеанса захвата: по количеству пакетов, мегабайт или по времени.

Display Options - задает значения параметров отображения. Галочка Update list of packets in real time переводит окно списка пакетов в режим реального времени. Кнопка Automatic scrolling in live capture переводит окно списка пакетов в режим автоматической прокрутки.

Name Resolution – определение имен: MAC name resolution устанавливает режим трансляции первых трех байт MAC-адреса в название изготовителя сетевой карты. Галочка в Enable network name resolution устанавливает режим перевода IP-адресов в доменные имена. Этот режим дает больше информации, но замедляет работу анализатора по захвату пакетов. Галочка в Enable transport name resolution устанавливает режим перевода номеров портов в протоколы.

После задания всех необходимых параметров можно смело нажимать на OK,

2. Capture>Start. После выполнения этой команды окно анализатора примет вид, показанный на рисунке 2.3. Теперь оно состоит из трех частей:

· В верхней части отображается список захваченных пакетов.

· В средней части показана древовидная структура (вложенность) полей пакета, выбранного в верхней части.

· Нижнее часть дает представление того же пакета в виде последовательности байтов, причем выделяются байты, соответствующие полю данных, выбранному в верхней части окна.

 

Рис. 2.3 Окно сетевого анализатора Wireshark после захвата пакетов

 

ЛАБОРАТОРНАЯ РАБОТА № 3

Управление перегрузкой ТСР

Теперь рассмотрим величину данных отправленных в единицу времени от Вашего компьютера к серверу. Для этого воспользуемся одной из графических утилит Wireshark—Time-Sequence-Graph(Stevens).

Выберите ТСР - сегмент среди захваченных пакетов. Затем выберите пункт меню: Statistics>TCP Stream Graph>Time-Sequence Graph (Stevens). Вы увидите график как на рисунке 3.4. Здесь каждая точка представляет собой отправленный ТСР - сегмент, изображенный против момента времени, в который он был отправлен.

Рис.3.4. Вид графического анализатора Ethereal

 

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

9. Определите начало и конец фазы медленного старта.

10. Прокомментируйте различия между захваченными данными и идеализированным поведением, изученным на лекции.

11. Сколько уровней имеет стек протоколов TCP/IP? Каковы их функции? Какие особенности этого стека обуславливают его лидирующее положение в мире сетевых технологий?

12. Нарисуйте диаграмму, отражающую передачу пакетов при установлении связи (рукопожатие ТСР).

13. В чем особенности реализации метода скользящего окна в протоколе TCP.

 


ЛАБОРАТОРНАЯ РАБОТА №4

Заголовок IP-сегмента

На рис. 4.1 приведен формат заголовка IP-сегмента.

Рис. 4.1 Формат заголовка IP сегмента

 

· Версия – 4- битовое поле, содержащее номер версии протокола IP (номер текущей версии равен 4);

· Длина заголовка – 4-битовое поле, содержащее длину заголовка IP-сегмента в 32-битных словах. Минимальная (и типичная) длина заголовка - пять слов.

· Тип обслуживания – байт, содержащий набор критериев, определяющих тип обслуживания IP-сегментов.

· Длина сегмента – двухбайтовое поле, содержащее длину (в байтах) всего IP-сегмента, включая длину заголовка. Максимальная длина IP-сегмента (включая заголовок) - 65535 байт. Спецификация IP протокола устанавливает, что любой узел сети должен быть способен обрабатывать IP-сегменты длиной, по крайней мере, не менее 576 байт (что соответствует 512 байтам данных при возможной длине заголовка до 64 байт). На практике же узлы сети могут обрабатывать IP-сегменты много длиннее, чем 576 байт (как правило, допустимая длина IP-сегмента связана с максимальной длиной кадра нижележащего сетевого уровня).

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

· DF, MF – биты, используемые при обработке фрагментированных IP-сегментов.

o Если бит DF (Don't Fragment) установлен в 1, то это означает, что IP-сегмент не может быть разбит на фрагменты ни при каких условиях (даже, если он не может быть передан без этого далее к адресату и должен быть уничтожен).

o Бит MF (More Fragments) указывает, является (MF=0) или нет (MF=1) данный IP-"подсегмент" последним в цепочке IP-"подсегментов", в которую был преобразован (фрагментирован) исходный IP-сегмент.

· Смещение фрагмента – 13-битное поле, используемое только в IP-сегменте, являющемся фрагментом (IP-фрагментом) другого (исходного) IP-сегмента. Это поле содержит смещение данных, содержащихся в IP-фрагменте, по отношению к началу данных исходного IP-сегмента. Смещение измеряется в восьмибайтных единицах, поэтому 13 битов достаточно для представления смещения в IP-сегменте максимальной возможной длины (8 * 2^13 - 1 = 65535).

· Время жизни – однобайтовое поле, заполняемое создающим IP-сегмент узлом сети. Оно определено количеством единиц времени жизни IP-сегмента в сети. Каждый транзитный узел сети, через который проходит IP-сегмент, уменьшает содержимое этого поля по крайней мере на 1. Таким образом, на практике, время жизни (TTL - Time To Live) – это максимальное количество узлов, которое может пройти до своего уничтожения IP-сегмент. Каждый IP-модуль на любом узле сети обязан уничтожать IP-сегменты, для которых поле "время жизни" стало равным нулю. Этим предотвращается появление в сети IP-сегментов, "блуждающих" по ней бесконечное время. При этом узлу-источнику уничтоженного IP-сегмента посылается ICMP-сегмент, извещающий об этом событии.

· Транспорт – поле размером в байт, содержащее идентификатор протокола более высокого (обычно, транспортного) уровня, для которого предназначены данные IP-сегмента. В таблице 4.1. приведены идентификаторы некоторых протоколов.

Таблица 4.1

Идентификаторы некоторых протоколов

Идентификатор Сокращённое название Имя протокола
  ICMP Межсетевой протокол управляющих сообщений
  IGMP Межсетевой протокол группового управления
  TCP Протокол управления передачей
  UDP Протокол дейтаграмм пользователя

 

· Контрольная сумма заголовка – двухбайтовое поле, содержащее контрольную сумму заголовка IP-сегмента (обращаем внимание, что для данных IP-сегмента контрольная сумма не подсчитывается; контролировать данные – задача протоколов транспортного уровня).

· Адрес источника и адрес приемника – четырехбайтовые IP-адреса узлов сети.

· Дополнительные данные заголовка – последовательность полей произвольной длины, описывающих необязательные данные заголовка. Такие данные используются для специальных целей (управление сетью, секретность и т.п.).

· Данные выравнивания – не имеющие смысла данные, включаемые в заголовок только для выравнивания его длины до границы четырехбайтового слова.

 

IP-адрес

IP-адрес является уникальным 32-битным идентификатором IP-интерфейса в Интернет. Часто говорят, что IP-адрес присваивается узлу сети (например, хосту); это верно в случае, если узел является хостом с одним IP-интерфейсом, иначе следует уточнить, об адресе какого именно интерфейса данного узла идет речь. Далее для краткости там, где это не вызовет неверного толкования, вместо адреса IP-интерфейса узла сети говорится об IP-адресе хоста.

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

Например, адрес

записывается как

10100000.01010001.00000101.10000011 = 160.81.5.131

IP-адрес хоста состоит из номера IP-сети, который занимает старшую область адреса, и номера хоста в этой сети, который занимает младшую часть. Положение границы сетевой и хостовой частей (обычно оно характеризуется количеством бит, отведенных на номер сети) может быть различным, определяя различные типы IP-адресов (A, B, C, D и E).

 

Фрагментация IP-сегментов

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

Изменение размера IP-сегмента реализуется механизмом, называемым фрагментацией. IP-модуль на любом узле сети должен иметь возможность:

· разбивать полученный им IP-сегмент на IP-фрагменты необходимого размера перед их передачей через конкретную сеть;

· восстанавливать исходный IP-сегмент из получаемых им IP-фрагментов.

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

IP-фрагменты в своих заголовках содержат поле Смещение фрагмента, описывающее смещение данных IP-фрагмента в данных исходного IP-сегмента. Это поле позволяет корректно восстановить данные исходного IP-сегмента в принимающем IP-фрагменты узле даже в ситуации, когда IP-фрагменты приходят в порядке, отличающемся от порядка их посылки.

 

ЛАБОРАТОРНАЯ РАБОТА №5

Заголовок ICMP-пакета

Поскольку протокол ICMP используется для транспортировки различной информации, то фиксируется лишь общая структура заголовка ICMP-пакета, имеющего формат, показанный на рис. 5.1.

Рис.5.1. Формат ICMP пакета

· Тип – однобайтовое поле, содержащее идентификатор типа ICMP-пакета. Возможные значения этого поля приведены в таблице.

Таблица 5.1.

Значения идентификаторов типа ICMP пакета

Поле «Тип» Назначение
  Ответ на запрос эха
  Адресат недоступен
  Подавление источника
  Перенаправление
  Запрос эха
  Исчерпано время жизни
  Ошибка в параметре
  Запрос временной метки
  Ответ на запрос временной метки

 

· Код – однобайтовое поле, значение которого конкретизирует назначение ICMP-пакета определенного типа.

· Контрольная сумма – 16-битовое поле, содержащее Internet -контрольную сумму, подсчитанную для всего ICMP-пакета целиком.

· Разное – четырехбайтовое поле, предназначенное для хранения разнообразной информации, специфичной для ICMP-пакетов определенного типа (например, номера в TCP-последовательности, IP-адреса и т.п.).

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

Для ICMP-пакетов некоторых типов тело может содержать не начало IP-сегмента, а тестовые данные.

Источниками и обработчиками ICMP-пакетов могут быть как IP-модули, так и TCP- и UDP-модули (но никогда прикладные программы).

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

Типы ICMP-пакетов

Рассмотрим несколько основных типов ICMP сообщений.

1. Сообщение о превышении времени жизни.

Рис. 5.2. Формат ICMP пакета о превышении контрольного времени

Поля IP заголовка – заимствованы сеть и адрес отправителя из исходной дейтаграммы с данными.

Поля ICMP сообщения:

· Тип – 11

· Код – 0 – при передаче превышено время жизни

1 – превышено контрольное время при сборке фрагментов дейтаграммы.

· Контрольная сумма – является 16-битным дополнением до единицы суммы дополнений в ICMP сообщении, начиная с поля типа ICMP.

· Internet заголовок + 64 бита данных из исходной дейтаграммы – используются хост-компьютером для привязки сообщения к соответствующему процессу. Если протокол более высокого уровня использует номера портов, то предполагается, что эти номера входят в первые 64 бита данных в исходной дейтаграмме.

2. Эхо-сообщение.

Для реализации эха IP-модуль на узле A отправляет узлу B ICMP-пакет типа "запрос эха", содержащий в своем теле вместо IP-заголовка тестовые данные произвольной длины. Узел B, получив такой запрос, возвращает узлу A ICMP-пакет типа "ответ на запрос эха", содержащий те же данные, что и в запросе. Эхо-посылки используются для проверки достижимости удаленных узлов сети и измерения времени прохождения данных.

 

Рис. 5.3. Формат эхо-сообщения и сообщения в ответ на эхо

Поля IP заголовка: адрес отправителя в эхо-сообщении будет адресом получателя в ответном сообщении. Чтобы сформировать сообщение ответа, следует просто переставить местами адреса отправителя и получателя, код типа изменить на 0 и пересчитать контрольную сумму.

Поля ICMP сообщения:

· Тип – 8 – эхо-сообщение;

0 – сообщение в ответ на эхо

· Код – 0

· Контрольная сумма – то же, что и в предыдущем ICMP-сообщении

· Идентификатор – если код = 0, то идентификатор для соотнесения эхо-сообщений и ответов на них должен быть обнулен.

· Номер очереди – если код = 0, то номер очереди, служащий для соотнесения эхо-сообщений и ответов на них, должен быть обнулен.

Описание – данные из эхо-сообщения должны быть переданы в ответе на это сообщение. Идентификатор и номер очереди могут использоваться отправителем эхо-сообщения с целью идентификации приходящих пакетов. Например, идентификатор может использоваться в качестве порта подобно протоколам TCP и UDP для идентификации сеанса. Номер очереди может увеличиваться на единицу при посылке каждого эхо-сообщения (запроса). Компьютер, отозвавшийся на это сообщение, возвращает в своем ответе те же значения для идентификатора и номера очереди, что были в исходном эхо-сообщении.

 

ICMP и Ping

Начинается работа с захвата пакетов, генерируемых программой Ping. Это простая программа, позволяющая каждому (например, сетевому администратору) проверить, включен хост или нет. Эта программа посылает с хоста-источника пакеты на IP-адрес другого хоста; если он включен, то в ответ на это программа Ping отправляет пакеты к хосту-источнику запроса. Как Вы можете догадаться, оба эти сообщения являются ICMP-пакетами.

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

1. Откройте командную строку (Пуск > Выполнить). Введите команду cmd. В открывшемся окне перейдите в корневой каталог диска C:, введя cd\.

2. Откройте сетевой анализатор Wireshark и начните захват пакетов.

3. В открытом ранее приложении в командной строке наберите

windows\system32\ping -n 10 www.ust.hk

где hostname —имя хоста на другом континенте. Например, подойдёт сервер www.ust.hk,

аргумент -n 10 показывает, что будет отправлено 10 ping -сообщений.

4. Когда программа Ping завершит работу, остановите захват пакетов в Wireshark.

5. В конце эксперимента окно Командной строки должно выглядеть, как на рис.5.4. Видно, что было отправлено 10 пакетов-запросов и получено 10 пакетов-ответов. Также для каждого ответа рассчитано время оборота RTT, составляющее в среднем 350мс.

Рис.5.4.Командная строка после выполнения программы ping

На рис.5.5. показано окно Wireshark после того, как в поле фильтров было введено icmp: отображено 20 пакетов — 10 отправленных запросов и 10 полученных ответов. Рассмотрим первый пакет, отправленный клиентом. Видно, что IP-дейтаграмма имеет номер протокола 01, что соответствует протоколу ICMP. Это означает, что нагрузкой IP-дейтаграммы является ICMP-пакет.

Рис.5.5. Окно анализатора Wireshark с раскрытой информацией о первом ICMP эхо-запросе

Обратите внимание, что это пакет типа 8 с кодом 0 также носит название «запрос эха». Заметьте, что этот ICMP-пакет содержит также контрольную сумму, идентификатор и порядковый номер.

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

1. Каков IP-адрес Вашего хоста? Каков IP-адрес хоста-адресата?

2. Почему ICMP-пакеты не имеют номеров портов источника и адресата?

3. Рассмотрите один из пакетов-запросов, отправленных с Вашего компьютера. Какой тип и код у ICMP-сообщения? Какие еще поля есть у этого ICMP-сообщения? Каков размер (в байтах) у полей контрольной суммы, идентификатора и порядкового номера?

4. Рассмотрите одно из сообщений-ответов. Какой тип и код у ICMP-сообщения? Какие еще поля есть у этого ICMP-сообщения? Каков размер (в байтах) у полей контрольной суммы, идентификатора и порядкового номера?

5.2.2. ICMP и Traceroute

В этой части работы будет производиться захват пакетов, генерируемых программой Traceroute. Она отправляет серии ICMP-сообщений к хосту-адресату сначала с TTL=1, затем с TTL=2 и т.д. Каждый маршрутизатор, через который пройдет пакет, будет уменьшать величину TTL на 1. Когда пакет придет на маршрутизатор с TTL=1, тот отправит источнику ICMP-сообщение об ошибке. В работе будет использоваться программа tracert.

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

1. Откройте командную строку.

2. Откройте сетевой анализатор Wireshark и начните захват пакетов.

3. В открытом окне вкомандной строке наберите

c:\windows\system32\tracert www.inria.fr

где hostname — имя хоста на другом континенте. Для примера в качестве hostname можете использовать:

www.inria.fr (Франция);

www.desarrollosocial.gov.ar (Аргентина);

www.russianmalta.com (Мальта)

www.rususa.com (Америка)

4. Когда Traceroute завершит работу, остановите захват пакетов в Wireshark.

В конце эксперимента окно Command Prompt должно выглядеть, как на рис.5.6. Из рисунка видно, что для каждой величины TTL источник посылает по три пробных сообщения. Traceroute отображает время оборота RTT для каждого пробного пакета, а также IP-адрес маршрутизатора, отправившего ICMP-сообщение об истечении времени жизни пакета.

Рис.5.6. Командная строка после выполнения программы tracert

Рис.5.7 показывает окно Wireshark с ICMP-сообщением от маршрутизатора. Заметьте, что оно содержит больше полей, нежели ICMP-сообщение из программы Ping.

Рис.5.7. Окно анализатора Wireshark с раскрытой информацией о первом ICMP эхо-запросе

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

5. Каков IP-адрес Вашего хоста? Каков IP-адрес хоста-адресата?

6. Рассмотрите ICMP-сообщение «эхо-запроса» из Вашей работы. Какие отличия от подобного сообщения-запроса из первой части работы (ping)?

7. Рассмотрите ICMP-сообщение об ошибке (истечении времени жизни). Больше ли у него полей, чем у ICMP-сообщения «эхо-запроса»? Что включено в эти поля?

8. Рассмотрите последние три принятые Вашим хостом ICMP-пакета. Чем они отличаются от ICMP-сообщений об ошибке? Почему?

9. По измерениям в tracert: была ли сеть, где задержки значительно больше, чем в остальных? На основании имен маршрутизаторов можете ли Вы предположить местоположение двух последних маршрутизаторов в этой сети?

 


Дата Версия Исправления

01-11-2011 2 Исправлено имя почтового сервера в программе 1 лабораторной работы.

31-01-2012 3 Исправлены указания по выполнению 1 лабораторной работы.

02-02-2012 4 Дополнен диалог с почтовым сервером.

СЕТИ ПЕРЕДАЧИ АУДИО- ВИДЕО ДАННЫХ



Поделиться:


Последнее изменение этой страницы: 2016-09-05; просмотров: 343; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.116.89.8 (0.019 с.)