Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сети передачи АВД_2011.doc
Скачиваний:
9
Добавлен:
15.12.2018
Размер:
1.55 Mб
Скачать

КАФЕДРА ВИДЕОТЕХНИКИ

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

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

Содержание:

Лабораторная работа № 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.