Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Изучение протоколов прикладного уровня




Практическая работа №3

Цель:изучить принципы работы некоторых протоколов прикладного уровня.

Теоретические сведения:

Протокол прикладного уровня — протокол верхнего (7-ого) уровня сетевой модели OSI, обеспечивает взаимодействие сети и пользователя. Уровень разрешает приложениям пользователя иметь доступ к сетевым службам, таким как обработчик запросов к базам данных, доступ к файлам, пересылке электронной почты. Также отвечает за передачу служебной информации, предоставляет приложениям информацию об ошибках и формирует запросы к уровню представления.

 

Протокол электронной почты SMTP

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

SMTP (Simple Mail Transfer Protocol - простой протокол электронной почты) принят в качестве стандартного метода передачи электронной почты в сети Internet. Этот протокол во многом подобен протоколу FTP. Название его вполне соответствует сути - с ним достаточно просто работать. В качестве транспортного протокола SMTP использует TCP, соединение устанавливается через порт с номером 25. Для обслуживания этого соединения используется специальная программа, которая именуется почтовым сервером. Для формирования сообщения и установления соединения используется почтовая программа (утилита) пользователя.

Главной целью протокола SMTP является надежная и эффективная доставка электронных почтовых сообщений. Для реализации протокола требуется только надежный канал связи. Средой для SMTP может служить отдельная локальная сеть, система сетей или же вся всемирная сеть Internet. Если между отправителем и получателем письма имеется непосредственная связь, адрес пользователя имеет вид имя_пользователя@адрес_ЭВМ. Когда получатель находится на ЭВМ, которая не поддерживает соединение по протоколу SMTP, и передача происходит через промежуточный сервер, то адрес получателя письма может иметь иной вид, например, имя_пользователя%имя_сервера@адрес_ЭВМ. Адреса ЭВМ в сети Internet представляют собой имя домена и преобразуются в IP-адреса согласно протоколу DNS.

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

Перечень команд протокола SMTP приведен в табл. 1. Это внутренние команды протокола. Если пользователь использует для работы с электронной почтой некоторую утилиту, то эти команды ему недоступны. Они представляют интерес только при программировании взаимодействия программ на основе этого протокола.

Таблица 1.

Внутренние команды протокола SMTP

Команда Описание команды
DATA Сообщение (за командой следует текст сообщения)
EXPN Расширение списка получателей
HELO Используется при инициализации обмена при установлении соединения
HELP Запрос о помощи
MAIL Адрес отправителя
NOOP Никаких действий (пустая команда)
QUIT Разрыв соединения
RCPT Адрес получателя (таких команд может быть несколько)
RSET Закончить текущую транзакцию
SAML Послать письмо на терминал пользователя и в почтовый ящик
SEND Послать письмо на терминал
SOML Если можно, послать письмо на терминал, иначе - в почтовый ящик
TURN Изменить направление передачи (отправитель и получатель меняются местами)
VRFY Проверить имя пользователя

Через систему электронной почты передаются сообщения, которые должны иметь строго определенный формат. Этот формат достаточно прост. Любое почтовое сообщение можно разделить на три части: "конверт", заголовки и собственно текст. "Конверт" используется почтовым сервером, он содержит две команды - MAIL и RCPT. Заголовок используется почтовой программой пользователя. Он содержит девять специальных полей: Received, From, To, Date, Subject, Message-Id, X-Phone, X-Mailer, Reply-To.Назначение этих полей понятно из их названия. Каждое из этих полей содержит имя, за которым после двоеточия идет его значения. При желании, пользователь может ознакомиться с содержимым всех полей заголовка письма.

Текст сообщения должен передаваться в виде 7-разрядных символов ASCII. Конец сообщения представляет собой строку, содержащую только символы точки (".") и перевода строки. Если по каким-то причинам такая строка непосредственно встречается внутри текста сообщения, то передающая сторона автоматически дублирует точку, чтобы принимающая сторона не приняла ее за конец сообщения (на принимающей стороне дублированный символ точки в начале строки заменяется на одну точку).

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

Более сложная проблема заключается в том, что нет единого стандарта на кодировку русского алфавита, и поэтому на сторонах отправителя и получателя могут использоваться различные кодировки. Для того чтобы сообщение, посланное отправителем в одной кодировке, было понятно адресату, который использует другую кодировку, почтовый сервер использует специальные таблицы смены кодировок. С помощью них текст сообщения, посланного в одной кодировке, преобразуется в другую кодировку. Чтобы сервер знал, какую кодировку использовать, информация об исходной кодировке включается почтовой системой отправителя в текст или в заголовок сообщения (в зависимости от используемой системы). Одно сообщения в процессе своего прохождения через почтовые сервера может претерпеть несколько перекодировок. В случае, когда у сервера нет информации об используемой кодировке или тип кодировки указан неверно (непонятен серверу), текст сообщения может исказиться.

Передача сообщения по протоколу SMTP происходит следующим образом: после установления соединения стороны обмениваются кодами аутентификации (с помощью команд HELO), затем одна из них посылает команду MAIL, в которой указан адрес отправителя и сведения о письме. Если получатель готов к приему сообщения, он посылает положительный отклик. Далее отправитель посылает одну или несколько команд RCPT, в которых идентифицирует адресатов сообщения. Если получатель может принять сообщение для указанного адресата, то он снова выдает положительный отклик на каждую команду. После этого передается команда DATA за которой следует само письмо (сколько бы не было адресатов, само письмо передается только один раз). В конце сеанса отправитель дает команду QUIT.

Конечно, маловероятно, что при приеме почтовым сервером сообщения, адресованному некоторому пользователю ЭВМ, этот пользователь установит с сервером непосредственную связь по протоколу SMTP. Обычно сервер размещает сообщение в почтовом ящике пользователя. Почтовый ящик - это некоторое промежуточное хранилище электронных сообщений, позволяющее почтовому серверу осуществить их передачу адресату не сразу, а в тот момент, когда он установит связь с сервером. Обычно сообщения хранятся в почтовом ящике не вечно - по истечении некоторого времени почтовый сервер удаляет их оттуда. Политика обслуживания почтовых ящиков регламентируется администратором системы.

 

Протокол и утилита удаленного доступа Telnet

Протокол Telnet (Telecommunications network - Сеть связи) служит для дистанционного доступа к вычислительным ресурсам удаленных ЭВМ. Работа этого протокола основывается на концепции виртуального терминала, подключенного к удаленной ЭВМ. Это означает, что пользователь, работающей на локальной ЭВМ, может подключиться к удаленной машине (как бы далеко последняя не находилась) и работать с ней так, как если бы он пользовался терминалом, непосредственно подключенным к этой удаленной машине.

Долгое время Telnet являлся единственным средством доступа к ресурсам удаленных ЭВМ. И сейчас он продолжает играть важную роль, поскольку его поддерживает подавляющее большинство операционных систем, имеющих функции удаленного доступа, в то время как другие протоколы ими могут не поддерживаться. Многие сервера зачастую вообще не имеют терминалов, и тогда удаленный доступ для управления ими будет не столь уж "удаленным" - администратор просто будет вести работу с сервером с ближайшей к нему рабочей станции. Кроме того, использование протокола Telnet может оказаться единственным способом управления ресурсами удаленной ЭВМ. Это возможно, например, в следующих случаях: во-первых, когда непосредственный доступ к этой ЭВМ невозможен; во-вторых, когда эта ЭВМ является встроенной специализированной вычислительной системой, у которой в принципе нет терминалов. А поскольку встроенные вычислительные системы, предусматривающие средства сетевого доступа и управления, становятся все более распространенными, то и протокол Telnet не теряет своего значения.

Имеется огромное разнообразие как терминалов, так и компьютеров со своими кодировками и управляющими последовательностями. Поэтому разработка протокола удаленного доступа - не такая уж простая задача. Будучи непосредственно соединенными, две машины должны обеспечивать взаимное преобразование кодировок, используемых их терминалами. Telnet решает эту проблему, включив поддержку терминалов в протокол. При установлении соединения, осуществляется настройка параметров связи и преобразования данных в соответствии с возможностями обеих сторон. Для установления и настройки соединения используются внутренние команды протокола Telnet, которые обычно недоступны пользователю (администратор может вводить их в сервисной утилите telnet с помощью специальных последовательностей команд).

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

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

На стороне локальной ЭВМ (клиента) обычно выполняется утилита, имеющая то же название, что и протокол - telnet (в некоторых реализациях - tn). На серверной стороне запускается процесс, обрабатывающий поступающие запросы сеанса Telnet. В UNIX-системах (а также в ОС типа Linux) этот процесс обычно называется telnetd (Telnet daemon), а в ОС типа Windows NT и ей подобных (ПО производства фирмы Microsoft) - Telnet Server. Эти процессы обеспечивают установление соединения по протоколу Telnet и реализуют концепцию виртуального терминала. В сети Internet службе дистанционного доступа по протоколу Telnet отведен порт с номером 23. Протокол Telnet ведет свою историю из ОС UNIX, но сейчас он реализован во многих операционных системах и графических средах.

После установления соединения серверная утилита telnetd (или ей подобная) запускает на удаленной машине требуемые программы по командам пользователя. Данные, генерируемые при каждом нажатии клавиши на локальной клавиатуре, проходят через несколько процессов, включая telnet, telnetd и прикладные программы, к которым обращается пользователь. Поскольку многим прикладным программам на сервере надо взаимодействовать с терминалом, то на удаленной ЭВМ используется специальный драйвер псевдотерминала TTY (название драйвера идет из ОС UNIX).

Для начала сеанса утилите telnet необходимо указать имя или IP-адрес ЭВМ, с которой нужно установить связь. Имя можно использовать только в том случае, когда в системе имеется какое-то средство преобразования имен в IP-адреса, например, DNS сервер. Например, для подключения к машине с адресом 205.150.89.1 надо ввести команду: "telnet 205.150.89.1", а если эта машина носит название "VL44", зарегистрированное на сервере имен, можно использовать команду: "telnet VL44". После установления соединения, как правило, необходимо пройти авторизацию доступа к машине, для чего надо ввести имя пользователя и пароль в ответ на соответствующие приглашения системы. После этого утилита telnet готова к работе.

Если утилита telnet запущена без указания адреса ЭВМ, то она переходит в командный режим и ждет указаний пользователя. Для установления соединения в командном режиме необходимо воспользоваться командой open, параметром которой является адрес ЭВМ.

После установления соединения диалог с удаленной машиной (сервером) протекает так, как если бы пользователь работал непосредственно с нею. Допускаются все команды ОС этой удаленной ЭВМ. Все, что вводит пользователь, воспринимается удаленной машиной (сервером), а не локальной машиной (клиентом). Если, например, ввести команду просмотра текущего каталога, то пользователь получит текущий каталог ЭВМ сервера, а не клиента. Возможность выполнения введенных команд определяется, опять же, теми правами, которыми располагает данный пользователь на машине сервера (а не клиента !). Чтобы давать команды локальной ЭВМ, не завершая работу с утилитой telnet, пользователь должен перевести утилиту в командный режим. Как правило, для этого используется комбинация клавиш "Ctrl+]".

В командном режиме все команды интерпретируются как команды локальной машине (клиенту), а не серверу. Кроме того, в этом режиме утилита telnet отрабатывает все команды, предназначенные ей самой. Перечень наиболее употребительных команд утилиты приведен ниже в табл. 2.

Таблица 2.

Наиболее употребительные команды утилиты telnet

Команда Параметры Описание
open адрес ЭВМ, порт Устанавливает соединение с указанной ЭВМ. Номер порта указывать не обязательно - тогда используется порт 23.
close   Закрывает соединение и возвращает утилиту в командный режим
quit   Завершает работу с утилитой
mode режим ввода Устанавливает режим обмена данными ("построчный" или "посимвольный"). Удаленная ЭВМ должна уметь поддерживать требуемый режим для выполнения этой команды.
status   Отображает текущий статус утилиты: установленное соединение, адрес удаленной ЭВМ, установленный режим обмена данными
display аргумент, … Отображает список установленных значений для указанного аргумента (списка аргументов). Если список аргументов не задан, то отображается список всех аргументов, известных утилите.
set аргумент, значение Устанавливает значение для указанного аргумента. Аргумент используется утилитой, как переменная окружения в ОС удаленной ЭВМ. Перечень и значения таких аргументов зависит от ОС удаленной машины (примеры переменных окружения: echo, path, eof и др.)

 

Протокол и утилита обмена файлами FTP

Протокол FTP (File Transfer Protocol - Протокол передачи файлов) предназначен для передачи файлов между машинами без установления дистанционного соединения между ними (без использования Telnet). С его помощью можно передавать файлы, работать с каталогами и пользоваться электронной почтой, но он не позволяет запускать программы на удаленной ЭВМ.

Для своей работы FTP использует транспортный протокол TCP, но связь по FTP поддерживается с помощью двух соединений: по одному из них передаются команды FTP, а по другому - данные. Поэтому программная реализация FTP предполагает работу двух процессов на каждой из взаимодействующих машин. Первый из них отвечает за передачу команд и называется протокольным интерпретатором (PI - protocol interpreter), а второй - за передачу данных и называется процессом передачи данных (DTP - data transfer process). Протокол TCP обеспечивает установление, разрыв соединения и надежность передачи данных. На удаленной ЭВМ (сервере) процессу передачи данных соответствует порт 20, а протокольному интерпретатору - порт 21.

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

В ОС типа UNIX для обслуживания запросов по FTP на удаленной машине запускается процесс ftpd (FTP daemon), в других ОС для этого могут использоваться другие процессы, предоставляющие аналогичный сервис. На локальной ЭВМ (клиенте) может выполняться любое пользовательское приложение, обеспечивающее соединение по FTP. В настоящее время разработано большое количество программ, обеспечивающих работу с этим протоколом. Но широко известна самая простейшая утилита, которая носит то же название, что и протокол - ftp. Она имеет тривиальный командный интерфейс, аналогичный интерфейсу утилиты telnet.

Общие принципы работы с утилитой ftp.

Также как при работе с утилитой telnet, при запуске утилиты ftp требуется указать имя или IP-адрес удаленной машины, с которой требуется установить соединение. Если этот адрес не указан, то ftp переходит в командный режим без установления соединения. Тогда для начала сеанса связи надо воспользоваться командой open. После того, как соединение установлено, необходимо пройти авторизацию доступа, для чего требуется ввести имя и пароль пользователя. В большинстве систем право доступа имеют только зарегистрированные пользователи, но иногда допускается так называемый "анонимный" вход, который будет рассмотрен далее. Как и при работе с telnet, при работе с ftp имя и права пользователя определяются удаленной, северной, а не локальной ЭВМ (в общем случае имена пользователя на сервере и клиенте могут быть различны). Для работы с каталогами, копирования и удаления файлов с удаленной машины пользователь должен располагать соответствующими правами, иначе эти команды выполняться не будут.

Следует обратить внимание, что и после установления соединения с удаленной ЭВМ, все команды пользователя ftp выполняются относительно локальной ЭВМ, в отличие от telnet. Особенно аккуратно следует выполнять команды копирования файлов, чтобы не потерять содержимое нужных файлов на машине-клиенте.

Протокол FTP позволяет передавать файлы в нескольких форматах, которые в общем случае системно зависимы. В большинстве систем (включая UNIX и Windows NT) определены два режима передачи файлов - текстовый и двоичный. Текстовый файл состоит из строк ASCII-символов, разделенных кодами перевода строки и возврата каретки, при его передаче выполняются действия по перекодировке символов. Для двоичных файлов не предусмотрено никакого определенного формата и никакой перекодировки, их передача осуществляется быстрее. Текстовый файл можно передавать как двоичный (в расчете произвести перекодировку на локальной машине или если перекодировка вовсе не требуется), но не наоборот.

Типичный сеанс работы с ftp включает следующие этапы:

o запуск утилиты, установление соединения с удаленной ЭВМ;

o переход в требуемый каталог на удаленной ЭВМ (сервере);

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

o передача данных согласно командам пользователя;

o завершение работы, разрыв соединения.

Эти процедуры выполняются последовательно в каждом сеансе. Самые распространенные команды пользователя в утилите ftp приведены в табл. 3.

Таблица 3.

Наиболее употребительные команды утилиты ftp

Команда Параметры Описание
ascii   Переключиться в режим передачи текстовых файлов
binary   Переключиться в режим передачи двоичных файлов
cd имя каталога Сменить рабочий каталог на удаленной ЭВМ
close   Закрыть соединение с удаленной ЭВМ
del имя файла Удалить файл на удаленной ЭВМ
dir маска файлов Отобразить содержимое текущего каталога сервера
get имя файла Получить файл с удаленной ЭВМ
hash on/off Включить или выключить режим вывода знака "#" для каждого переданного блока данных при передаче файлов
help   Получить подсказку
lcd имя каталога Сменить рабочий каталог на локальной ЭВМ
mget маска файлов Получить несколько файлов с удаленной ЭВМ
mput маска файлов Отправить несколько файлов на удаленную ЭВМ
open адрес ЭВМ Установить соединение с указанной ЭВМ
put имя файла Передать файл на удаленную ЭВМ
pwd   Вывести имя текущего каталога
quote команда Передать команду непосредственно FTP (для ввода команд администратора)
quit   Завершить работу с утилитой

Возможности работы с FTP при анонимном доступе.

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

В таких случаях для установления соединения по протоколу FTP используется метод анонимного доступа. В этом варианте в качестве имени пользователя используется слово anonymous, а вместо пароля - чаще всего слово guest (гость). Иногда для анонимного доступа может использоваться и другие варианты пароля: например, слово ftp или адрес электронной почты пользователя (в последнем случае доступ будет уже не столь анонимным, хотя, конечно, никто не проверит истинность введенных пользователем данных).

При анонимном доступе пользователь имеет, как правило, очень ограниченные права. Чаще всего при анонимном доступе пользователь может только перемещаться по ограниченному перечню каталогов и получать файлы с удаленной ЭВМ (выполнять команды get и mget).

Метод анонимного доступа - это основной метод, который используют для обмена данными по протоколу FTP программы-браузеры (browser) сети Internet. Эти программы имеют возможность только получать файлы с удаленных ЭВМ, в то время, как полный доступ по протоколу FTP дает пользователю также возможность передавать файлы на удаленные ЭВМ. Имя и пароль для анонимного доступа в этих программах можно настраивать.

 

Протокол POP3

Post Office Protocol (POP) - протокол доставки почты пользователю из почтового ящика почтового сервера РОР. Многие концепции, принципы и понятия протокола POP выглядят и функционируют подобно SMTP. Команды POP практически идентичны командам SMTP, отличаясь в некоторых деталях.

В настоящее время существуют две версии протокола POP - РОР2 и РОРЗ, обладающими примерно одинаковыми возможностями, однако несовместимыми друг с другом. Дело в том, что у РОР2 и РОРЗ разные номера портов протокола. Между ними отсутствует связь, аналогичная связи между SMTP и ESMTP. Протокол РОРЗ не является расширением или модификацией РОР2 - это совершенно другой протокол. РОР2 определен в документе RFC 937 (Post Office Protocol-Version 2, Butler, et al, 1985), a РОРЗ - в RFC 1225 (Post Office Protocol-Version 3, Rose, 1991). Далее кратко рассмотрим POP вообще и более подробно - РОРЗ. PОРЗ разработан с учетом специфики доставки почты на персональные компьютеры и имеет соответствующие операции для этого.


Поделиться:

Дата добавления: 2015-09-13; просмотров: 102; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты