Методические указания по выполнению лабораторного практикума дисциплина Сети эвм и телекоммуникации
Скачать 389.91 Kb.
|
Синтаксис команд протокола SMTP (SP – пробел): HELO RCPT DATA RSET SEND SOML SAML VRFY EXPN HELP NOOP QUIT 4.7 Контрольные вопросы 1. Назначение протокола SMTP. 2. Опишите модель работы протокола SMTP. 3. Каковы особенности кодировки почтовых сообщений? 4. Опишите типовую последовательность действий почтового клиента при отправке сообщения. 5. Какие операции должны выполняться во время почтовой транзакции? Какими командами она открывается и закрывается? 6. По каким принципам формируются команды и коды ответов протокола SMTP? 50 5 Взаимодействие прикладных программ с помощью протокола электронной почты POP3 Цель работы: изучение принципов организации взаимодействия приклад- ных программ с помощью протокола электронной почты POP3 и приобретение практических навыков создания клиентских почтовых приложений, исполь- зующих протокол POP3. Необходимое оборудование: IBM PC-совместимый компьютер, подклю- ченный к глобальной сети Internet, с установленным программным обеспечени- ем Borland Delphi версии 5.0 и выше. 5.1 Модель протокола РОР3, его назначение и стадии РОР3-сессии Post Office Protocol (POP) – протокол доставки почты пользователю из почтового ящика почтового сервера РОР. Многие концепции, принципы и по- нятия протокола POP выглядят и функционируют подобно SMTP. Команды POP практически идентичны командам SMTP, отличаясь в некоторых деталях. Сервер POP находится между агентом пользователя и почтовыми ящиками. В настоящее время существуют две версии протокола POP – РОР2 и РОР3, обладающие примерно одинаковыми возможностями, однако несовместимые друг с другом. У РОР2 и РОР3 разные номера портов протокола (109 и 110 со- ответственно). Протокол РОР3 не является расширением или модификацией РОР2 – это совершенно другой протокол. РОР2 определен в документе RFC 937 (Post Office Protocol-Version 2, Butler, et al, 1985), a РОР3 – в RFC 1225 (Post Of- fice Protocol-Version 3, Rose, 1991). PОРЗ разработан с учетом специфики дос- тавки почты на персональные компьютеры и имеет соответствующие операции для этого. Конструкция протокола РОР3 обеспечивает возможность пользователю обратиться к своему почтовому серверу и изъять накопившуюся для него поч- ту. Пользователь может получить доступ к РОР-серверу из любой точки досту- па к Internet. При этом он должен запустить специальный почтовый агент, ра- ботающий по протоколу РОР3, и настроить его для работы со своим почтовым 51 сервером. Сообщения доставляются клиенту по протоколу POP, а посылаются при помощи SMTP. То есть на компьютере пользователя существуют два от- дельных агента-интерфейса к почтовой системе – доставки (POP) и отправки (SMTP). В протоколе РОР3 оговорены три стадии процесса получения почты: авто- ризация, транзакция и обновление. После того как сервер и клиент РОР3 уста- новили соединение, начинается стадия авторизации. На стадии авторизации клиент идентифицирует себя для сервера. Если авторизация прошла успешно, сервер открывает почтовый ящик клиента и начинается стадия транзакции. В ней клиент либо запрашивает у сервера информацию (например, список почто- вых сообщений), либо просит его совершить определенное действие (например, выдать почтовое сообщение). На стадии обновления сеанс связи заканчивается. В этом режиме POP3 сервер освобождает все занятые ресурсы и завершает работу. После этого TCP соединение закрывается. У POP3 сервера может быть INACTIVITY AUTOLOGOUT таймер. Этот таймер должен быть, по крайней мере, с интервалом 10 минут. Это значит, что если клиент и сервер не взаимо- действуют друг с другом, сервер автоматически прерывает соединение и при этом не переходит в режим обновления. 5.2 Формат сообщений Почтовое сообщение состоит из двух частей: заголовка и тела письма. Ме- жду ними расположена пустая строка. Каждое поле заголовка состоит в свою очередь из имени поля и значения, которые разделяются двоеточием. Полей за- головка может быть множество, но наиболее часто встречаются только некото- рые из них. Поля To: и From: указывают на получателя и отправителя письма соответственно, поле Subject: используется для передачи темы письма. Reply- To: применяется для указания обратного адреса, а CC: – копии сообщения. Received: – такую строку добавляет каждый почтовый сервис, через который прошло письмо. По нему легко отследить путь письма. Date: – означает дату создания письма. Используется специальный стандарт с указанием часового пояса отправителя относительно Гринвича. 52 Существует множество не стандартизованных полей заголовка. Они начи- наются с символа X. Это могут быть такие поля, как X-Mailer: – почтовая про- грамма отправителя; X-MSMail-Priority:, X-Priority: – приоритет (важность) письма и т.д. Разработчик также может создавать и использовать собственные поля, начинающиеся с X-. Дополнением к традиционной электронной почте является ее расширение MIME (Multupurpose Internet Mail Extentions). Оно не требует каких-либо пере- делок в почтовых серверах, но позволяет снять с электронной почты привыч- ные ограничения и предоставляет возможность пересылать любую информа- цию. Например, MIME позволяет создавать многосекционные письма. В каж- дой секции описывается тип информации, находящейся в ней (Content-Type:) и вид кодирования (Content-Transfer-Encoding:). Секции могут содержать как простой текст (Content-Type: text/plain) и текст в формате HTML (Content- Type: text/html), так и произвольные файлы в прикреплениях письма (attach). Так как электронная почта изначально разрабатывалась как служба по пе- ресылке обычного текста, это наложило ограничение на передаваемую инфор- мацию. Для передачи двоичной информации требуется специальное кодирова- ние. Используется несколько методов кодирования: для текста с использовани- ем только латинских букв, цифр и некоторых спецсимволов обычно использу- ется Content-Transfer-Encoding: 7bit. Если сюда еще добавить русские буквы, то используется Content-Transfer-Encoding: 8bit. Для передачи HTML-кода применяют Content-Transfer-Encoding: quoted-printable. Чтобы отличить код от текста, перед ним ставится символ «=». Например, фраза «Привет!» будет выглядеть в закодированном виде как «=CF=F0=E8=E2=E5=F2!». Для двоич- ных файлов (архивы, изображения и т.д.) используют Content-Transfer- Encoding: base64, когда каждые 6 байт преобразуются в 8 печатных символов. 5.3 Процесс получения сообщений. Команды и ответы протокола РОР3 Команды POP3 состоят из ключевых слов, за некоторыми следует один или более аргументов. Все команды заканчиваются парой CRLF. Ключевые 53 слова и аргументы состоят из ASCII символов. Ключевое слово и аргументы разделены одиночным пробелом. Ключевое слово состоит от 3-х до 4-х симво- лов, а аргумент может быть длиной до 40 символов. Ответы в POP3 состоят из индикатора состояния и ключевого слова, за ко- торым может следовать дополнительная информация. Ответ заканчивается па- рой CRLF. Существует только два индикатора состояния: «+OK» – положи- тельный и «-ERR» – отрицательный. Синтаксис и описание команд и ответов протокола РОР3 приведены в пункте 5.5 «Справочные данные» Стадия авторизации Как только будет установлено TCP соединение с POP3 сервером, он от- правляет приглашение, заканчивающееся парой CRLF, например: S: +OK POP3 server ready Теперь POP3 сессия находится в режиме авторизации. Клиент должен идентифицировать себя на сервере, используя команды USER и PASS. Сначала необходимо отправить команду USER, после которой в качестве аргумента сле- дует имя пользователя. Если сервер отвечает положительно, то необходимо от- править команду PASS, аргументом которой является пароль. Если после от- правки команды USER или PASS сервер отвечает негативно, то можно попы- таться авторизироваться снова или выйти из сессии с помощью команды QUIT. После успешной авторизации сервер открывает и блокирует maildrop (почто- вый ящик). В ответе на команду PASS сервер информирует, сколько сообщений находится в почтовом ящике, и передает их общий размер. Синтаксис, описа- ние и возможные ответы на команды приведены в справочном разделе. Стадия транзакции После успешной идентификации пользователя на сервере POP3 сессия пе- реходит в режим транзакции, где пользователь может передавать соответст- вующие команды (см. справочный раздел). После каждой из таких команд сле- дует ответ сервера. В режиме транзакции доступны действия: получение стати- стической информации о корреспонденции, получение списка писем, чтение выбранного письма, чтение определенного количества строк текста выбранного 54 письма, чтение идентификаторов всех или выбранного сообщения, пометка со- общения как удаленного, сброс отметок об удалении и др. Стадия обновления Когда клиент передает команду QUIT в режиме транзакции, то сессия пе- реходит в режим обновления. В этом режиме сервер удаляет все сообщения, помеченные для удаления. После этого TCP соединение закрывается с соответ- ствующим ответом сервера. 5.4 Задание на лабораторную работу 1. Ознакомиться с теоретическим и справочным материалом. 2. Получить у преподавателя доменное имя или IP-адрес РОР3-сервера, с которого возможно получение почтовых сообщений в учебных аудиториях, имя почтового ящика и пароль. 3. Разработать приложение почтового клиента, позволяющее выполнять получение текстовых сообщений по протоколу РОР3 из почтового ящика. Приложение должно поддерживать все приведенные в справочном разделе команды, кроме UIDL. Приложение использует для обмена с сервером транс- портный протокол TCP/IP. Процесс обмена командами и ответами должен ото- бражаться на экране. Предполагается, что в заголовке и тексте сообщения не используются коды русских букв. То есть в приложении допускается отсутствие функций работы с другими методами кодирования, кроме Content-Transfer-Encoding: 7bit. 5.5 Справочные данные Ниже приведено описание команд и ответов протокола РОР3. USER Возможные ответы: +OK name is a valid mailbox -ERR never heard of mailbox name Описание. Первый шаг авторизации на сервере. Если ответом на эту ко- манду является строка индикатора «+OK», клиент может отправлять команду 55 PASS – ввод пароля или QUIT – завершить сессию. Если ответом является строка «-ERR», клиент может либо повторить команду USER, либо закрыть сессию. Аргумент: name - строка, идентифицирующая почтовый ящик системы. PASS Возможные ответы: +OK maildrop locked and ready -ERR invalid password -ERR unable to lock maildrop Описание. Второй шаг авторизации на сервере. Если ответом на эту коман- ду является строка индикатора «+OK», авторизация прошла успешно и сессия переходит в состояние транзакции. Если ответом является строка «-ERR», то пользователь либо ввел неправильный пароль, либо неверно указал почтовый ящик. Аргумент: passw – строка-пароль. QUIT Возможные ответы: +OK Описание. Завершение сессии. При появлении команды QUIT в состоянии транзакции сессия переходит в состояние обновления и осуществляется удале- ние помеченных сообщений. STAT Возможные ответы: +OK Описание. Команда STAT используется для просмотра текущего состояния почтового ящика: n – количество сообщений, s – их общий объем. Сообщения, помеченные как удаленные, не учитываются. LIST [ Возможные ответы: +OK scan listing follows 56 -ERR no such message Описание. Команда LIST может передаваться как с аргументом mes – но- мером сообщения, так и без аргумента. Если команда содержит аргумент и со- общение с указанным номером существует, ответом на нее будет «информаци- онная строка», которая содержит номер сообщения n1 и размер сообщения s1 в байтах. Если аргумент не указан – ответом будет список информационных строк ni si обо всех сообщениях в данном почтовом ящике. Сообщения, поме- ченные как удаленные, в этом списке не приводятся. RETR Возможные ответы: +OK message follows <заголовок и тело сообщения> -ERR no such message Описание. Используется для передачи клиенту запрашиваемого сообще- ния. Аргумент команды: mes – номер сообщения. DELE Возможные ответы: +OK message deleted -ERR no such message Описание. По команде DELE сообщение с указанным в аргументе mes но- мером помечается как удаленное. Перенумерация остальных сообщений не производится. Физическое удаление помеченных сообщений происходит толь- ко при переходе сессии в стадию обновления. NOOP Возможные ответы: +OK Описание. Используется для проверки состояния сервера. Никаких дейст- вий не производится. Ответ всегда положительный. RSET Возможные ответы: 57 +OK Описание. По команде RSET со всех сообщений снимаются пометки об удалении. TOP Возможные ответы: +OK < заголовок сообщения + первые n строк из тела сообщения> -ERR no such message Описание. По команде TOP передается заголовок и n первых строк сооб- щения с номером mes. Если количество строк в сообщении меньше указанного в параметре n, пользователю передается все сообщение. Если n=0, то передает- ся только заголовок. UIDL [ Возможные ответы: +OK unique-id listing follows <№ сообщения1 + ID1, № сообщения2 + ID2, …> -ERR no such message Описание. Если указан номер сообщения mes, то передается уникальный идентификатор для этого сообщения. Если аргумент не был передан, то пере- даются идентификаторы всех сообщений, кроме помеченных для удаления. 5.6 Контрольные вопросы 1. Охарактеризуйте модель протокола POP3. 2. Назовите и поясните назначение стадий РОР3-сессии. 3. Опишите формат почтового сообщения. 4. Назовите особенности и методы кодирования информации в почтовых сообщениях. 5. По каким принципам формируются команды и коды ответов протокола РОР3? 6. Какие операции выполняются на стадиях авторизации и обновления? 7. Какие операции выполняются на стадии транзакции? 58 6 Взаимодействие прикладных программ с помощью протокола передачи данных FTP Цель работы: изучение принципов организации взаимодействия приклад- ных программ с помощью протокола передачи данных FTP и приобретение практических навыков создания клиентских приложений, использующих про- токол FTP. Необходимое оборудование: IBM PC-совместимый компьютер с установ- ленным программным обеспечением: Borland Delphi версии 5.0 и выше, FTP- сервер Babyftp 1.0. 6.1 Назначение и модели работы протокола FTP FTP (File Transfer Protocol – протокол передачи данных) – один из старей- ших протоколов в Internet и входит в его стандарты. Первые спецификации FTP относятся к 1971 году. С тех пор FTP претерпел множество модификаций и значительно расширил свои возможности. FTP может использоваться как в программах пользователей, так и в виде специальной утилиты операционной системы. FTP предназначен для решения задач разделения доступа к файлам на уда- ленных узлах, прямого или косвенного использования ресурсов удаленных компьютеров, обеспечения независимости клиента от файловых систем удален- ных узлов, эффективной и надежной передачи данных. Обмен данными в FTP происходит по TCP-каналу. Обмен построен на тех- нологии «клиент-сервер». FTP не может использоваться для передачи конфи- денциальных данных, поскольку не обеспечивает защиты передаваемой ин- формации и передает между сервером и клиентом открытый текст. FTP-сервер может потребовать от FTP-клиента аутентификации. Однако пароль и иденти- фикатор пользователя будут переданы от клиента на сервер открытым текстом. Простейшая модель работы протокола FTP представлена на рисунке 6.1. FTP соединение инициируется интерпретатором протокола пользователя. Управление обменом осуществляется по каналу управления в стандарте прото- 59 кола TELNET. Команды FTP генерируются интерпретатором протокола поль- зователя и передаются на сервер. Ответы сервера отправляются пользователю также по каналу управления. Рисунок 6.1 – Модель работы протокола FTP Команды FTP определяют параметры канала передачи данных и самого процесса передачи. Они также определяют и характер работы с удаленной и локальной файловыми системами. Сессия управления инициализирует канал передачи данных. При органи- зации канала передачи данных последовательность действий другая, отличная от организации канала управления. В этом случае сервер инициирует обмен данными в соответствии с согласованными в сессии управления параметрами. Канал данных устанавливается для того же узла, что и канал управления, через который ведется настройка канала данных. Канал данных может быть ис- пользован как для приема, так и для передачи данных. Алгоритм работы протокола FTP состоит в следующем: 1. Сервер FTP использует в качестве управляющего соединение на TCP порт 21, который всегда находится в состоянии ожидания соединения со сторо- ны пользователя FTP. 2. После того как устанавливается управляющее соединение модуля «Ин- терпретатор протокола пользователя» с модулем сервера – «Интерпретатор Данные Управление Программа передачи данных пользователя Интерпретатор протокола пользователя Интерфейс пользователя Пользователь Файловая система компьютера пользователя Интерпретатор протокола сервера Программа передачи данных сервера Файловая система сервера 60 протокола сервера», пользователь (клиент) может отправлять на сервер коман- ды. FTP-команды определяют параметры соединения передачи данных: роль участников соединения (активный или пассивный), порт соединения (как для модуля «Программа передачи данных пользователя», так и для модуля «Про- грамма передачи данных сервера»), тип передачи, тип передаваемых данных, структуру данных и управляющие директивы, обозначающие действия, кото- рые пользователь хочет совершить (например, сохранить, считать, добавить или удалить данные или файл и другие). 3. После того как согласованы все параметры канала передачи данных, один из участников соединения (пассивный модуль) становится в режим ожи- дания открытия соединения на определенный порт. После этого другая сторона (активный модуль) открывает соединение на указанный порт и начинается об- мен данными. 4. После окончания передачи данных соединение между «Программой пе- редачи данных сервера» и «Программой передачи данных пользователя» за- крывается, но управляющее соединение «Интерпретатора протокола сервера» и «Интерпретатора протокола пользователя» остается открытым. Пользователь, не закрывая сессии FTP, может еще раз открыть канал передачи данных. Возможна ситуация, когда данные должны передаваться на третий узел. В этом случае имеет место другая модель работы протокола FTP, при которой пользователь организует канал управления с двумя серверами и прямой канал данных между ними. Команды управления идут через пользователя, а данные – напрямую между серверами. Подробное рассмотрение этой модели работы протокола FTP выходит за рамки данной лабораторной работы. |