- •Лабораторная работа №1
- •1.1. Протоколы прикладного уровня и принципы их работы
- •1.1.1. Протокол прикладного уровня http
- •1.1.2. Протоколы электронной почты (smtp и pop)
- •1.1.3. Форматы сообщений электронной почты
- •1.2. Указания к выполнению работы
- •1.2.1. Протокол http Порядок выполнения работы:
- •Контрольные вопросы
- •1.2.2.Почтовые протоколы: smtp и pop
- •Контрольные вопросы
- •Лабораторная работа № 2
- •2.1. Описание работы программы
- •2.2. Указания к выполнению работы
- •2.2.1. Захват пакетов в реальном времени
- •2.2.2. Захват пакетов с использованием фильтров
- •Лабораторная работа № 3
- •3.1. Основные теоретические сведения
- •3.2. Указания к выполнению работы
- •3.2.1. Захват тср при передаче данных от компьютера к удаленному серверу
- •3.2.2. Анализ полученных результатов
- •Контрольные вопросы
- •3.2.3 Управление перегрузкой тср
- •Контрольные вопросы
- •Лабораторная работа №4
- •4.1. Основные теоретические сведения
- •4.1.1. Заголовок ip-сегмента
- •4.1.3. Фрагментация ip-сегментов
- •4.2. Указания к выполнению работы
- •4.2.1. Захват пакетов с помощью программы Traceroute
- •4.2.2. Порядок выполнения работы:
- •4.2.3. Изучение захваченного потока
- •4.3. Контрольные вопросы
- •Лабораторная работа №5
- •5.1.Основные теоретические сведения
- •5.1.1. Межсетевой протокол управляющих сообщений icmp
- •5.1.2. Заголовок icmp-пакета
- •5.1.3. Типы icmp-пакетов
- •5.2. Указания к выполнению работы
- •Порядок выполнения работы:
- •Контрольные вопросы
- •Порядок выполнения работы:
- •Контрольные вопросы
КАФЕДРА ВИДЕОТЕХНИКИ
СЕТИ ПЕРЕДАЧИ АУДИО- ВИДЕО ДАННЫХ
Методические указания по выполнению лабораторных работ
Содержание:
Лабораторная работа № 1
Протоколы прикладного уровня
Лабораторная работа № 2
Основы работы с анализатором сетевых протоколов Wireshark
Лабораторная работа № 3
Протокол транспортного уровня TCP
Лабораторная работа № 4
Ethereal Lab: протокол сетевого уровня IP
Лабораторная работа № 5
Ethereal Lab: протокол сетевого уровня ICMP
Лабораторная работа №1
Протоколы прикладного уровня
Цель работы – исследование протоколов прикладного уровня (http, pop, smtp) с помощью программы telnet.exe и изучения семантики общения между клиентом и сервером.
1.1. Протоколы прикладного уровня и принципы их работы
Приложения являются «разумным фундаментом» компьютерных сетей. Не имея приложений, выполняющих полезную работу, бессмысленно говорить о поддерживающих их протоколах.
Несмотря на разнообразие сетевых приложений и большое число их взаимодействующих компонентов, почти всегда программное обеспечение является «ядром» приложения. Программное обеспечение распределяется между двумя и более оконечными системами (хостами). Так, например, web-приложения обычно состоят из двух взаимодействующих частей: браузера, находящегося на стороне пользователя, и программного обеспечения сервера. Аналогично, приложение Telnet состоит из программы на локальном компьютере и программы на удаленном компьютере.
На языке операционных систем взаимодействие осуществляется не между программами, а между процессами. Процесс можно представить как программу, выполняющуюся на оконечной системе. Если процессы выполняются на одном хосте, тогда их взаимодействие поддерживается операционной системой хоста и не связано с сетью. Нас будет интересовать обмен данными между процессами, расположенными на разных оконечных системах. Такой обмен осуществляется с помощью сообщений, передаваемых через компьютерную сеть. Отправитель генерирует сообщение и посылает его в сеть, а адресат, получая это сообщение, выполняет определенные действия и, иногда, отсылает ответное сообщение. Сетевые приложения строятся на основе протоколов прикладного уровня, которые регламентируют формат и порядок обмена сообщениями, а также процедуры, выполняемые при приеме и отправке сообщений.
Протоколы прикладного уровня определяют способ обмена сообщениями между двумя процессами, выполняющимися на разных хостах. Обычно протокол определяет следующие элементы:
типы используемых сообщений, например запросы и ответы;
-
синтаксис каждого из типов сообщений, описывающий поля сообщения и их разделители;
-
семантику полей, то есть смысл информации, содержащийся в каждом из полей сообщения;
-
правила, описывающие события, которые вызывают генерацию сообщений.
Для успешного обмена сообщениями между процессами, выполняющимися на двух различных хостах, необходимо, чтобы они могли идентифицировать друг друга. Идентификация требует наличия следующей информации о процессе:
-
имя и адрес хоста, которому принадлежит процесс;
-
идентификатор процесса внутри хоста.
Адрес хоста будет рассмотрен в последующих лабораторных работах, здесь же рассмотрим идентификацию процесса хоста, которая производится с помощью номера порта. Популярные Интернет - протоколы прикладного уровня имеют стандартизованные значения номеров портов. Так процессы, использующие протокол HTTP, получают порт номер 80, процессы, использующие протокол POP – порт номер 110, а процессы, использующие протокол SMTP - порт номер 25.
1.1.1. Протокол прикладного уровня http
Протокол HTTP является протоколом прикладного уровня для распределенных мультимедийных информационных систем. Это объектно-ориентированный протокол, пригодный для решения многих задач, таких как создание серверов имен, распределенных объектно-ориентированных управляющих систем и др. Структура HTTP позволяет создавать системы, независящие от передаваемой информации.
Каждая web-страница или документ состоит из объектов. Объект представляет собой обычный файл в формате HTML, изображение в формате JPEG или GIF и т.п., то есть единицу, обладающую собственным указателем ресурса (URL). Как правило, web-страницы состоят из базового HTML-файла и объектов, на которые он ссылается.
Так, например, для URL www.somehost.ru/somename/image1.gif именем хоста является фрагмент www.somehost.ru, а путем к объекту – фрагмент /somename/image1.gif. Браузером называется агент пользователя web.
WEB-сервер содержит объекты, каждый из которых идентифицируется собственным URL.
Протокол HTTP определяет, каким образом клиенты запрашивают web-страницы, а серверы осуществляют передачу этих страниц. Когда пользователь запрашивает web-страницу, браузер посылает серверу HTTP-запрос объектов, составляющих страницу. Сервер получает запрос и высылает ответные сообщения, содержащие требуемые объекты.
Первые версии, такие как HTTP/0.9, представляли собой простые протоколы для передачи данных через Интернет. Версия HTTP/1.0, описанная в RFC-1945, улучшила протокол, разрешив использование сообщений в формате MIME, содержащих метаинформацию о передаваемых данных, и модификаторы для запросов/откликов. Дальнейшее развитие сетей WWW-серверов потребовало новых усовершенствований, которые вряд ли являются последними.
Реальные информационные системы требуют больших возможностей, чем простой поиск и доставка данных. Для описания характера, наименования и места расположения информационных ресурсов введены: универсальный идентификатор ресурса URI (Uniform Resource Identifier), универсальный указатель ресурса URL и универсальное имя ресурса URN. Формат сообщений сходен с используемыми в электронной почте, и описанный в стандарте MIME (Multipurpose Internet Mail Extensions).
Типичное сообщение-запрос выглядит следующим образом:
GET /somedir/page.html HTTP/1.1
Host www.somehost.ru
Connection: close
User-agent: Opera/9.0
Accept-language: ru
Оно состоит из 5 строк, каждая из которых оканчивается парой символов для перехода на новую строку (возврат каретки и перевод строки), а последняя строка – дополнительной парой указанных символов. В общем случае число строк может быть как больше, так и меньше 5. Первая строка называется строкой запроса, а следующие строки – строками заголовка.
Строка запроса содержит три поля:
-
поле метода,
-
поле URL,
-
поле версии HTTP.
Поле метода может принимать различные значения, например GET, HEAD и другие. Метод GET – наиболее часто употребляемый, он применяется в тех случаях, когда требуемый объект характеризуется URL-адресом. Метод HEAD схож с методом GET. При получении запроса с методом HEAD сервер формирует ответ, однако не осуществляет пересылку объекта. С остальными методами можно ознакомиться в документах RFC 1945 и RFC 1945.
Теперь рассмотрим строки заголовка. Строка Host содержит адрес хоста, на котором находится объект. С помощью строки Connection Close браузер сообщает серверу о том, что не следует использовать постоянное соединение. В строке The User Agent указан агент пользователя, то есть тип браузера, сгенерировавшего запрос.
Теперь рассмотрим типичное сообщение-ответ, сгенерированное сервером на запрос клиента. Оно состоит из трёх частей: строки состояния, шести строк заголовка и тела сообщения. Тело сообщения содержит требуемый (передаваемый хосту) объект. Строка состояния образована из трёх полей:
-
поле версии протокола,
-
поле кода состояния,
-
поле соответствующей коду информации, описывающей это состояние.
Строки заголовка содержат информацию о соединении, дату и время создания ответа, каким сервером было создано сообщение, дату и время создания или последнего изменения объекта, размер пересылаемого объекта в байтах, а также тип объекта. Типичное сообщение-ответ выглядит следующим образом:
HTTP/1.1 200 Ок //Сервер использует спецификацию HTTP/1.1, //требуемый объект найден и осуществляется //его пересылка
Connection: close //соединение будет закрыто после пересылки //объекта
Date: Thu, 11 Nov 2006 02:45:15 GMT
Server: Apache/1.3.0 (Unix)
Last-Modified: Mon, 9 Oct 2006 02:45:15 GMT
Content-length: 6532
Content-type: text/html //определяет тип объекта. В данном случае это //текст в формате html.