Занятие 1: «Основные протоколы прикладного уровня»

УЧЕБНЫЕ ВОПРОСЫ:

1. Протокол HTTP.

2. Протокол FTP.

3. Протокол NFS.

4. Протокол TELNET.

5. Протоколы электронной почты (SMTP, POP, IMAP, DMCP).

УЧЕБНЫЕ И ВОСПИТАТЕЛЬНЫЕ ЦЕЛИ:

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

2. Стимулировать активную познавательную деятельность студентов и способствовать формированию их творческого мышления.

7.1

ВРЕМЯ – 4 академических часа.

МЕСТО ПРОВЕДЕНИЯ - лекционная аудитория.

УЧЕБНО-МАТЕРИАЛЬНОЕ ОБЕСПЕЧЕНИЕ – Мультимедийный видеопроектор, экран со стойкой, ПЭВМ с установленным программным обеспечением: ОС Windows XP | 7 | Vista, полный пакет Microsoft Office 2007.

СОДЕРЖАНИЕ ЛЕКЦИИ

Протокол HTTP

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

Протокол HTTP (HyperText Transfer Protocol, протокол передачи гипертекста) — протокол прикладного уровня передачи данных (изначально — в виде гипертекстовых документов). Данный протокол был разработан как основа World Wide Web.

Работа протокола HTTP осуществляется по технологии «клиент-сервер»: программа-клиент устанавливает TCP-соединение с сервером (стандартный номер порта-80) и выдает ему HTTP-запрос. Сервер обрабатывает этот запрос и выдает HTTP-ответ клиенту.

Структура HTTP-запроса.

HTTP-запрос состоит из заголовка запроса и тела запроса (необязательный элемент), разделенных пустой строкой.

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

Запрос в главной строке состоит из трех частей, разделенных пробелами:

1) Метод (команда HTTP):

· POST - применяется для передачи данных CGI-скриптам; сами данные следуют в последующих строках запроса в виде параметров;

· GET - запрос документа;

· HEAD - запрос заголовка документа; отличается от GET тем, что выдается только заголовок запроса с информацией о документе, сам документ не выдается;

· PUT - разместить документ на сервере; запрос с этим методом обязательно имеет тело, в котором передается сам документ.

2) Ресурс - это путь к определенному файлу на сервере, который клиент хочет получить. Если ресурс – просто какой-либо файл для считывания, сервер должен по этому запросу выдать его в теле ответа. Если же это путь к CGI-скрипту, то сервер запускает скрипт и возвращает результат его выполнения.

3) Версия протокола – версия протокола HTTP, с которой работает клиентская программа.

Таким образом, простейший HTTP-запрос может выглядеть следующим образом:

HEAD / HTTP /1.1

(запрашивается информация о корневом файле из корневой директории web-сервера).

Строки после главной строки запроса имеют формат <Параметр: значениe>.

К наиболее часто употребляемым параметрам HTTP-запросов можно отнести:

· Connection (соединение) – может принимать значения «Keep-Alive» и «close». Keep-Alive («оставить в живых») означает, что после выдачи данного документа соединение с сервером не разрывается, и можно выдавать еще запросы. Большинство браузеров работают в режиме Keep-Alive, так как он позволяет за одно соединение с сервером загрузить html-страницу и рисунки к ней. Будучи установленным, режим Keep-Alive сохраняется до первой ошибки или до явного указания в запросе Connection: close («закрыть» - соединение закрывается после ответа на данный запрос).

· User-Agent – значением является «кодовое обозначение» браузера, например: Mozilla/6.0 (compatible; MSIE 7.0; Windows 7; DigExt)

· Accept – список поддерживаемых браузером типов содержимого в порядке их предпочтения данным браузером, например: Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/msword, application/vnd.ms-excel, и т.д. Значение этого параметра используется в основном CGI-скриптами для формирования ответа, адаптированного для браузера.

· Referer – URL, с которого перешли на этот ресурс.

· Host – имя хоста, с которого запрашивается ресурс. Полезно, если на сервере имеется несколько виртуальных серверов под одним IP-адресом. В этом случае имя виртуального сервера определяется по этому полю.

· Accept-Language – поддерживаемый язык. Имеет значение для сервера, который может выдавать один и тот же документ в разных языковых версиях.

Структура HTTP-ответа.

Структура ответа очень похожа на структуру запроса: ответ также имеет заголовок и тело, разделенное пустой строкой.

Заголовок также состоит из основной строки и строк параметров.

Основная строка запроса состоит из 3-х полей, разделенных пробелами:

1) Версия протокола – аналогично соответствующему параметру запроса.

2) Код ошибки – кодовое обозначение результата выполнения запроса, например, код 200.

3) Словесное описание ошибки – «расшифровка» предыдущего кода. Например, для 200 это OK, для 500 – Internal Server Error.

К наиболее часто употребляемым параметрам HTTP-ответов можно отнести:

· Connection – аналогичен соответствующему параметру запроса.
Если сервер не поддерживает Keep-Alive (есть и такие), то значение Connection в ответе всегда close.

· Content-Type – обозначение типа содержимого ответа. В зависимости от значения Content-Type браузер воспринимает ответ как HTML-страницу, картинку gif или jpeg, как файл, который надо сохранить на диске, или как что-либо еще и предпринимает соответствующие действия. Значение Content-Type для браузера аналогично значению расширения файла для Windows. Некоторые типы содержимого: text/html - текст в формате HTML (веб-страница); text/plain - простой текст (аналогичен "блокнотовскому"); image/jpeg - картинка в формате JPEG; image/gif - то же, в формате GIF; application/octet-stream - поток "октетов" (т.е. просто байт) для записи на диск, и т.д.

· Content-Length – длина содержимого ответа в байтах.

· Last-Modified – дата последней модификации документа.

Протокол FTP

FTP (File Transfer Protocol, протокол передачи файлов) — прикладной протокол, предназначенный для передачи файлов в компьютерных сетях.

На основе протокола FTP действует служба FTP, построенная по технологии "клиент-сервер": Клиент посылает запросы серверу, принимает и передает файлы; сервер обрабатывает запросы клиента, передает и принимает файлы.

Пример взаимодействия FTP-клиента и FTP-сервера продемонстрирован на рис. 1.

Занятие 1: «Основные протоколы прикладного уровня» - student2.ru

Рис. 1. Взаимодействие клиента и сервера по протоколу FTP.

FTP-клиент – это программный интерфейс пользователя, реализующий протокол передачи файлов FTP. Эта программа позволяет пользователю передавать файлы между двумя компьютерами, связанными между собой локальной (LAN) или глобальной (WAN) сетью. При этом компьютерные платформы могут быть различных типов.

FTP-серверы, как правило, доступны только для зарегистрированных пользователей и требуют при подключении ввода идентификатора (login – входное имя) и пароля (password). Многие FTP-серверы открыты и для свободного доступа, их часто называют анонимными. Для таких серверов login (входное имя) – anonymous, а в качестве пароля (password) рекомендуют ввести адрес своей электронной почты.

Большинство Web-браузеров обеспечивают доступ к FTP-серверам без использования специальных FTP-клиентов. Например, URL-адрес:

ftp://ftp.ware.ru/pub/win/internet/ftp/dl.zip

означает «связаться с FTP-сервером с правами для анонимных пользователей, перейти в каталог pub, далее в каталог win, каталог internet, каталог ftp и взять файл dl.zip».

Сеанс работы с FTP-сервером можно провести в режиме командной строки. Для этого необходимо ввести команду ftp и после пробела ввести IP-адрес или DNS-адрес FTP-сервера. Если регистрация прошла успешно и связь установлена, то с помощью команд FTP можно выполнить все действия по работе с файлами.

Протокол FTP непосредственно взаимодействует с протоколом транспортного уровня TCP.

Первый стандарт FTP – RFC-114. Последняя версия – RFC-959.

FTP отличается от других приложений тем, что он использует два TCP соединения для передачи файла:

1. Управляющее соединение – соединение для посылки команд серверу и получения ответов от него. Для организации такого соединения используется протокол Telnet. Telnet-соединение устанавливается в один шаг – посылка запроса и ожидание ответа, получение которого свидетельствует о возможности передачи команд FTP. Канал управления существует на протяжении всей FTP-сессии и закрывается после завершения информационного обмена.

2. Соединение данных – соединение для передачи файлов. Передача файлов после установленного Telnet-соединения осуществляется через логическое соединение, организуемое протоколом TCP, который проверяет доступность портов, закрепленных за FTP. Канал данных формируется и ликвидируется по мере необходимости.

Протокол FTP предусматривает два возможных режима установления связи для обмена файлами:

1) Активный режим:

1. Клиент устанавливает связь и посылает с нестандартного порта N (N>1024) запрос на 21 порт сервера;

2. Сервер посылает ответ на порт N клиента;

3. Сервер устанавливает связь для передачи данных по порту 20 на порт клиента N+1.

Пример установления связи для обмена файлами в активном режиме представлен на рис. 2.

Занятие 1: «Основные протоколы прикладного уровня» - student2.ru

Рис. 2. Активный режим.

Активный режим выгоден для FTP-сервера, но вреден для клиента. Так как FTP-сервер пытается соединиться со случайным высоким (по номеру) портом на клиенте, то такое соединение может быть блокировано брандмауэром на стороне клиента.

2) Пассивный режим:

1. Клиент устанавливает связь и посылает запрос (сообщает, что надо работать в пассивном режиме) на 21 порт сервера с нестандартного порта N (N>1024);

2. Сервер назначает нестандартный порт P для канала данных (P>1024) и посылает на порт N клиента ответ, в котором сообщает номер порта P;

3. Клиент устанавливает связь для передачи данных по порту N+1 на порт сервера P.

Пример установления связи для обмена файлами в пассивном режиме представлен на рис. 3.

Занятие 1: «Основные протоколы прикладного уровня» - student2.ru

Рис. 3. Пассивный режим.

Пассивный режим выгоден для клиента, но вреден для FTP-сервера. Клиент будет делать два соединения к серверу, при этом второе будет к случайному высокому порту. Такое соединение может быть блокировано брандмауэром на стороне сервера.

На рис. 4 более подробно проиллюстрировано соединение по FTP-протоколу в активном режиме.

Занятие 1: «Основные протоколы прикладного уровня» - student2.ru

Рис. 4. Схема соединения по протоколу FTP в активном режиме.

Работа FTP на пользовательском уровне при передаче файлов содержит несколько этапов:

1. Идентификация (ввод имени-идентификатора и пароля);

2. Выбор каталога;

3. Определение режима обмена:

o передача файлов в текстовом виде;

o передача файлов в бинарном виде;

4. Выполнение команд обмена;

5. Завершение работы.

Протокол NFS

Network File System (NFS) — протокол сетевого доступа к файловым системам, разработан Sun Microsystems в 1984 году. Основан на протоколе вызова удалённых процедур (ONC RPC, Open Network Computing Remote Procedure Call, RFC 1057, RFC 1831). Позволяет подключать (монтировать) удалённые файловые системы через сеть, описан в RFC 1094, RFC 1813, RFC 3530 и RFC 5661.

NFS абстрагирована от типов файловых систем как сервера, так и клиента, существует множество реализаций NFS-серверов и клиентов для различных операционных систем и аппаратных архитектур. В настоящее время используется наиболее зрелая версия NFS v.4 (RFC 3010, RFC 3530), поддерживающая различные средства аутентификации и списков контроля доступа.

NFS предоставляет клиентам прозрачный доступ к файлам и файловой системе сервера.

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

NFS клиенты получают доступ к файлам на NFS сервере путем отправки RPC-запросов на сервер.

Это может быть реализовано с использованием обычных пользовательских процессов — а именно, NFS клиент может быть пользовательским процессом, который осуществляет конкретные RPC вызовы на сервер, который так же может быть пользовательским процессом.

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

Протокол TELNET

TELNET (TErminaL NETworking) – протокол и программные средства, позволяющие подключаться к удалённой машине и работать с ней через эмулируемый терминал (протокол виртуального терминала). Обеспечивает двунаправленную передачу данных. Стандартно используется 7-битовый код ASCII в 8-битовой упаковке.

Первый стандарт – RFC 0158 (1971). Последняя версия – RFC 0855 (1983).

Служба TELNET предназначена для эмуляции удаленного терминала и состоит из следующих элементов:

· TELNET -интерфейс пользователя;

· TELNET -процесс (серверная часть);

· TELNET-протокол.

На рис. 5 представлена схема взаимодействия клиента и сервера по протоколу TELNET.

Занятие 1: «Основные протоколы прикладного уровня» - student2.ru

Рис. 5. Взаимодействие клиента и сервера по протоколу TELNET.

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

Протокол TELNET базируется на следующих принципах:

  • концепции сетевого виртуального терминала (NVT - network virtual terminal);
  • согласования дополнительных режимов;
  • симметричности терминалов и процессов.

NVT – это воображаемое устройство, находящееся на обоих концах соединения, у клиента и сервера, с помощью которого устанавливается соответствие между их реальными терминалами.

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

На рис. 6 проиллюстрирована модель функционирования протокола TELNET.

Занятие 1: «Основные протоколы прикладного уровня» - student2.ru

Рис. 6. Модель, лежащая в основе TELNET.

В протоколе TELNET предусмотрены следующие типы команд:

  • команды для согласования дополнительных режимов (опций);
  • команды управления и редактирования – прерывание, проверка готовности, стирание символа, стирание строки.

ЗАКЛЮЧЕНИЕ

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

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

· удалённый доступ к файлам и базам данных;

· пересылка электронной почты и др.

Также прикладной уровень:

· отвечает за передачу служебной информации;

· предоставляет приложениям информацию об ошибках;

· формирует запросы к уровню представления.

Протоколы прикладного уровня определяют как процедуры по организации взаимодействия определенного типа между прикладными процессами, так и форму представления информации при таком взаимодействии.

Мы рассмотрели только основные протоколы прикладного уровня, однако именно на данном уровне модели OSI используется огромное разнообразие протоколов. В разных операционных системах для выполнения одних и тех же функций могут использоваться различные прикладные протоколы.

Тема 5. СЕТЕВЫЕ ПРОТОКОЛЫ

Наши рекомендации