Самое интересное про SMTP, POP3 и IMAP. Протоколы передачи электронной почты Какие протоколы могут использоваться клиентскими почтовыми программами

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

Протокол smtp

После того как агент передачи почты пошлет сообщение в выходную очередь, за дело принимается агент доставки - МТА. Он извлекает сообщение и посылает его другому МТА. Этот процесс продолжается до тех пор, пока сообщение не достигнет компьютера - получателя. Для передачи сообщений большинство МТА пользуются протоколом SMTP. Сообщения форматированы по правилам виртуального сетевого терминала NVT. Символ в NVT состоит из семи битов набора ASCII и является буквой, цифрой или знаком пунктуации.

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

Сообщение в почтовый ящик пользователя может быть доставлено различными маршрутами. Чтобы направить почту по нужному пути, указываются промежуточные агенты-MTA. В следующем примере [email protected] является почтовым ящиком, a HOSTI, HOST2 и HOST3 - промежуточными агентами:

MAIL FROM:<@HOSTI, @HOST2, @HOST3: [email protected] >

Как правило, между двумя компьютерами находится один или несколько промежуточных агентов. Аргументом команды MAIL является обратный маршрут, включающий имя источника сообщения и имена всех промежуточных агентов. Обратный маршрут используется SMTP, когда нужно передать сообщение о случившейся ошибке или о невозможности доставить сообщение, когда оно уже прошло через промежуточный агент. По мере продвижения сообщения по Internet записи о его маршрутах изменяются.

Протокол pop3

На компьютере пользователя существуют два отдельных почтовых агента - доставки (POP) и отправки (SMTP).

Post Office Protocol (POP) - протокол доставки почты пользователю. Доставка сообщений осуществляется в почтовые ящики пользователя, расположенные на круглосуточно работающем почтовом сервере. Пользователь может получить доступ к своему почтовому РОР-серверу из любой точки доступа к Интернет. Для этого необходимо запустить почтовый агент и настроить его для работы со своим почтовым сервером.

В протоколе РОРЗ, который является более поздней версией POP, оговорены три стадии процесса получения почты: авторизация, транзакция и обновление. На стадии авторизации клиент себя идентифицирует. Если авторизация прошла успешно, сервер открывает почтовый ящик клиента и начинается стадия транзакции почты. На стадии обновления сеанс связи заканчивается.

Протокол imap4

Протокол IMAP4 (Internet Message Access Protocol) позволяет клиентам получать доступ и манипулировать сообщениями электронной почты на сервере. В отличие от протокола РОРЗ, IMAP4 поддерживает работу с системой каталогов удаленных сообщений, как если бы они располагались на локальном компьютере. IMAP4 позволяет клиенту создавать, удалять и переименовывать почтовые ящики, проверять наличие новых сообщений и удалять старые. Структура папок в значительной степени зависит от типа почтовой системы, но в любой системе у клиента есть специальный каталог INBOX, куда попадают поступающие клиенту сообщения. Протокол IMAP4 работает поверх транспортного протокола, который обеспечивает надежный и достоверный канал передачи данных между клиентом, и сервером IMAP4. При работе по TCP, IMAP4 использует 143-й порт. Команды и данные IMAP4 передаются по транспортному протоколу в том виде, в каком их отправляет сервер или пользователь.

Принцип передачи данных по протоколу IMAP4 такой же, как и у других подобных протоколов. Сначала клиент и сервер обмениваются приветствиями. Затем клиент отправляет на сервер команды и данные. Сервер, соответственно, передает клиенту ответы на обработку команд и данных. После завершения обмена канал закрывается.

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

IMAP4 - гибкий и многофункциональный протокол с широкими возможностями. Он обслуживает более 20 различных команд клиента по управлению состоянием почты.

Протокол SMTP

SMTP (англ. Simple Mail Transfer Protocol -- простой протокол передачи почты) -- это сетевой протокол, предназначенный для передачи электронной почты в сетях TCP/IP.

SMTP используется для отправки почты от пользователей к серверам и между серверами для дальнейшей пересылки к получателю. Для приёма почты почтовый клиент должен использовать протоколы POP3 или IMAP.

Данные передаются при помощи TCP, при этом обычно используется порт 25 или 587. При передаче сообщений между серверами обычно используется порт 25.

Чтобы доставить сообщение до адресата, необходимо переслать его почтовому серверу домена, в котором находится адресат. Для этого обычно используется запись типа MX (англ. Mail eXchange -- обмен почтой) системы DNS. Если MX запись отсутствует, то для тех же целей может быть использована запись типа A. Некоторые современные реализации SMTP-серверов (например, Exim ) для определения сервера, обслуживающего почту в домене адресата, также могут задействовать SRV-запись (RFC 2782).

Сервер SMTP -- это конечный автомат с внутренним состоянием. Клиент передает на сервер строку команда<пробел>параметры<перевод строки>. Сервер отвечает на каждую команду строкой, содержащей код ответа и текстовое сообщение, отделенное пробелом. Код ответа -- число от 100 до 999, представленное в виде строки, трактующийся следующим образом:

  • · 2ХХ -- команда успешно выполнена
  • · 3XX -- ожидаются дополнительные данные от клиента
  • · 4ХХ -- временная ошибка, клиент должен произвести следующую попытку через некоторое время
  • · 5ХХ -- неустранимая ошибка

Текстовая часть ответа носит справочный характер и предназначен для человека, а не программы.

Безопасность SMTP и спам

Изначально SMTP не поддерживал единой схемы авторизации. В результате этого спам стал практически неразрешимой проблемой, так как было невозможно определить, кто на самом деле является отправителем сообщения -- фактически можно отправить письмо от имени любого человека. В настоящее время производятся попытки решить эту проблему при помощи спецификаций SPF, Sender ID, Yahoo Domain Keys. Единой спецификации на настоящий момент не существует.

Протокол POP3

POP3 (англ. Post Office Protocol Version 3 -- протокол почтового отделения, версия 3) -- это сетевой протокол, используемый для получения сообщений электронной почты с сервера. Обычно используется в паре с протоколом SMTP.

Рис. 10. Схема «Клиент-сервер по протоколу POP3»

Описание протокола РОРЗ

Рассмотрим представленную на Рис. 10. схему «Клиент-сервер по протоколу POP3». Конструкция протокола РОРЗ обеспечивает возможность пользователю обратиться к своему почтовому серверу и изъять накопившуюся для него почту. Пользователь может получить доступ к РОР-серверу из любой точки доступа к Интернет. При этом он должен запустить специальный почтовый агент (UA), работающий по протоколу РОРЗ, и настроить его для работы со своим почтовым сервером. Итак, во главе модели POP находится отдельный персональный компьютер, работающий исключительно в качестве клиента почтовой системы (сервера). Подчеркнем также, что сообщения доставляются клиенту по протоколу POP, а посылаются по-прежнему при помощи SMTP. То есть на компьютере пользователя существуют два отдельных агента-интерфейса к почтовой системе - доставки (POP) и отправки (SMTP). Разработчики протокола РОРЗ называет такую ситуацию "раздельные агенты" (split UA). Концепция раздельных агентов кратко обсуждается в спецификации РОРЗ.

В протоколе РОРЗ оговорены три стадии процесса получения почты: авторизация, транзакция и обновление. После того как сервер и клиент РОРЗ установили соединение, начинается стадия авторизации. На стадии авторизации клиент идентифицирует себя для сервера. Если авторизация прошла успешно, сервер открывает почтовый ящик клиента и начинается стадия транзакции. В ней клиент либо запрашивает у сервера информацию (например, список почтовых сообщений), либо просит его совершить определенное действие (например, выдать почтовое сообщение). Наконец, на стадии обновления сеанс связи заканчивается. Далее перечислены команды протокола РОРЗ, обязательные для работающей в Интернет реализации минимальной конфигурации.

Команды протокола POP версии 3 (для минимальной конфигурации)

USER Идентифицирует пользователя с указанным именем

PASS Указывает пароль для пары клиент-сервер

QUIT Закрывает TCP-соединение

STAT Сервер возвращает количество сообщений в почтовом ящике плюс размер почтового ящика

LIST Сервер возвращает идентификаторы сообщений вместе с размерами сообщений (параметром команды может быть идентификатор сообщения)

RETR Извлекает сообщение из почтового ящика (требуется указывать аргумент-идентификатор сообщения)

DELE Отмечает сообщение для удаления (требуется указывать аргумент - идентификатор сообщения)

NOOP Сервер возвращает положительный ответ, но не совершает никаких действий

LAST Сервер возвращает наибольший номер сообщения из тех, к которым ранее уже обращались

RSET Отменяет удаление сообщения, отмеченного ранее командой DELE

В протоколе РОРЗ определено несколько команд, но на них дается только два ответа: +ОК (позитивный, аналогичен сообщению-подтверждению АСK) и -ERR (негативный, аналогичен сообщению "не подтверждено" NAK). Оба ответа подтверждают, что обращение к серверу произошло и что он вообще отвечает на команды. Как правило, за каждым ответом следует его содержательное словесное описание. В RFC 1225 есть образцы нескольких типичных сеансов РОРЗ. Сейчас мы рассмотрим несколько из них, что даст возможность уловить последовательность команд в обмене между сервером и клиентом.

После того как программа установила TCP-соединение с портом протокола РОРЗ (официальный номер 110), необходимо послать команду USER с именем пользователя в качестве параметра. Если ответ сервера будет +ОК, нужно послать команду PASS с паролем этого пользователя:

CLIENT: USER kcope ERVER: +ОК CLIENT: PASS secret SERVER: +ОК kcope"s maildrop has 2 messages (320 octets) (В почтовом ящике kcope есть 2 сообщения (320 байтов) ...)

Транзакции РОРЗ

Команда STAT возвращает количество сообщений и количество байтов в сообщениях:

SERVER: +ОК 2 320

Команда LIST (без параметра) возвращает список сообщений в почтовом ящике и их размеры:

Команда NOOP не возвращает никакой полезной информации, за исключением позитивного ответа сервера. Однако позитивный ответ означает, что сервер находится в соединении с клиентом и ждет запросов:

Следующие примеры показывают, как сервер POP3 выполняет действия. Например, команда RETR извлекает сообщение с указанным номером и помещает его в буфер местного UA:

CLIENT: RETR 1 SERVER: +OK 120 octets SERVER: (РОРЗ-сервер высылает сообщение целиком) SERVER: . . . . . .

Команда DELE отмечает сообщение, которое нужно удалить:

SERVER: +OK message 1 deleted ... (сообщение 1 удалено) CLIENT: DELE 2 SERVER: -ERR message 2 already deleted сообщение 2 уже удалено)

Команда RSET снимает метки удаления со всех отмеченных ранее сообщений:

(в почтовом ящике 2 сообщения (320 байтов))

Как и следовало ожидать, команда QUIT закрывает соединение с сервером:

CLIENT: QUIT SERVER: +OK dewey POP3 server signing off CLIENT: QUIT SERVER: +OK dewey POP3 server signing off (maildrop empty) CLIENT: QUIT SERVER: +OK dewey POP3 server signing off (2 messages left)

Обратите внимание на то, что отмеченные для удаления сообщения на самом деле не удаляются до тех пор, пока не выдана команда QUIT и не началась стадия обновления. В любой момент в течение сеанса клиент имеет возможность выдать команду RSET, и все отмеченные для удаления сообщения будут восстановлены.

Протокол IMAP

IMAP (англ. Internet Message Access Protocol ) -- интернет-протокол прикладного уровня для доступа к электронной почте.

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

Преимущества по сравнению с POP

IMAP был разработан для замены более простого протокола POP3 и имеет следующие преимущества по сравнению с последним:

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

Протокол - это набор правил, в соответствии с которым компы обмениваются информацией. Эти правила включают формат, время и последовательность передачи данных, способы контроля и коррекции ошибок.

Набор разнообразных протоколов, при помощи которых взаимодействуют между собой прикладные программы.

Протоколы прикладного уровня HTTP , FTP , SMTP , IMAP , POP 3, TELNET .

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

HTTP (Hyper Text Transfer Protocol)- протокол передачи гипертекста, работает на 80 порту. Исп-ся в WWW для передачи гипертекстовых HTML-страниц. При работе по этому протоколу, каждый элемент HTML - страницы загружается отдельно, причем соединение между загрузками прерывается и никакой инф-ии о соединении не сохраняется. Это сделано для того, чтобы пользователя Web- страниц каждый получал "по чуть-чуть, в порядке общей очереди". В противном случае могла бы создаться ситуация, когда один человек качает страницу с большим количеством рисунков высокого разрешения, а все остальные ждут пока он это закончит.

FTP (File Transfer Protocol.) - протокол передачи файлов, работает на 20 и 21 порту. Предназначен для копирование файлов между компами. Полностью занимает канал, пока не будет получен файл, сохраняет информацию о соединении. При сбое возможна докачка с того места, где произошел сбой.

SMTP , IMAP -4, РОРЗ - почтовые протоколы (электронная почта). SMTP - 25 порт, IMAP-4 - 143 порт, РОРЗ - 110 порт. Отличие: SMTP - протокол расчитанный на доставку почты до конкретного получателя, РОРЗ и IMAP-4 - протоколы взаимодействия пользователя со своим почтовым ящиком на сервере. При использовании SMTP предполагается, что почтовый адрес указывает на комп конечного получателя, и на этом компе запущена специальная прога, которая принимает и обрабатывает почту. Однако чаще всего бывает, что почта не доставляется на комп каждого отдельного пользователя, а обрабатывается централизованно, на отдельном почтовом сервере. В таком случае, каждый пользователь имеет на почтовом сервере свой почтовый ящик. Почта доставляется до сервера по протоколу SMTP (конечный получатель - сервер) и помещается в почтовые ящики пользователей. Затем пользователи подключаются к своим почтовым ящикам по протоколу РОРЗ или IMAP-4 и забирают почту. Протокол РОРЗ требует полностью скачать себе всю почту, а затем разбираться: нужна она вам была или нет. Протокол IMAP-4 позволяет просматривать на сервере заголовки писем (указывается статус письма: новое, отвеченное и т.п.) и скачивать с сервера только необходимые письма или даже часть некоторого письма. IMAP4 дублирует функции почтовых программ пользователя.

4.TELNET - исп-ся для подключения и управления удаленным компом, работает на 23 порту. После подключения каждый символ, введенный на локальной машине, обрабатывается так, как если бы он был введен на удаленной машине. Либо может использоваться командный режим - управление удаленной машиной при помощи специальных команд.

Программирование сокетов.

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

Когда серверный процесс запущен, клиент может инициировать установку ТСР-соединения с сервером. Первым действием клиентской программы является создание сокета, при этом программа указывает адрес серверного процесса, состоящий из IP-адреса и номера порта процесса. После создания сокета клиентская сторона протокола TCP осуществляет процедуру тройного рукопожатия с сервером, оканчивающуюся установлением соединения. Заметим, что процедура рукопожатия никак не сказывается на работе приложения.

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

В примере, который последует ниже, входной дверью является объект ServerSocket с именем welcomeSocket. Когда клиент стучит в эту дверь, вызывается метод accept() объекта welcomeSocket, создающий новую дверь для клиента. По окончании процедуры рукопожатия устанавливается TCP-соединение между сокетом клиента и новым сокетом сервера, который называют сокетом соединения.

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

Сервисы и службы Интернет.

В этом пункте мы даем краткую характеристику основным службам, которые в той или иной степени функционируют в составе современной глобальной Сети. В следующем пункте отдельно рассматривается "главная" служба Сети - "Всемирная паутина" (WWW).

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

FTP. Так называют протокол (File Transfer Protocol - протокол передачи файлов) и программы, которые обслуживают работу с каталогами и файлами удаленной машины. Средства FTP позволяют просматривать каталоги и файлы сервера, переходить из одного каталога в другой, копировать и обновлять файлы.

Archie. Так называют специальные серверы (Archie-серверы), которые собирают и хранят поисковую информацию о содержимом FTP- серверов на узлах Internet. Если вы ищите какой-то файл, имя которого (или часть имени) вам известно, надо запустить Archie-клиента, и он укажет вам адрес (адреса) соответсвующего FTP-сервера.

WAIS. Wide Area Information Servers - распределенная информационная система (база данных и программное обеспечение), которая обслуживает поиск инф-ии в сетевых БД и библиотеках. В частности, WAIS исп-ся для индексирования неструктурированных документов в Internet и организации поиска в них.

E-mail. Это английское обозначение электронной почты - основного вида сетевых услуг Internet. С помощью электронной почты люди, живущие на всех континентах, обмениваются электронными сообщениями и файлами.

Internet-телефония. Ныне быстро развивается новый вид услуг Сети Internet-телефония. Принцип голосовой связи в Internet нельзя считать оригинальным: такая связь - лишь частный случай обмена произвольными электронными сообщениями по протоколу TCP/IP. Человеческая речь преобразуется в цифровой файл (точно так же, как создаются аудиофайлы) и передается по сети в виде обычного набора электронных пакетов. Правда, пока единственным достоинством Internet-телефонии, по сравнению с обычным телефоном, явл-ся ее необычайная дешевизна (в расчете на минуту разговора). Многие технические проблемы (перегрузка каналов связи, задержки в передаче речи и др.) пока не решены.

26. Архитектура «клиент-сервер», «клиент-серверные» технологии. Распределенная обработка данных. Администрирование сервера баз данных. Web-технологии. Гипертекстовый документ. Язык гипертекстовой разметки HTML. Установка и настройка Web-сервера. Web-программирование с использованием скриптовых языков и баз данных.

Архитектура клиент-сервер.

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

В файл-серверной системе данные хранятся на файловом сервере (например, Novell NetWare или Windows NT Server), а их обработка осуществляется на рабочих станциях, на которых, как правило, функционирует одна из, так называемых, "настольных СУБД" - Access, FoxPro, Paradox и т.п..

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

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

В клиент-серверной системе функционируют (как минимум) два приложения - клиент и сервер, делящие между собой те функции, которые в файл-серверной архитектуре целиком выполняет приложение на рабочей станции. Хранением и непосредственным манипулированием данными занимается сервер баз данных, в качестве которого может выступать Microsoft SQL Server, Oracle, Sybase и т.п..

Формированием пользовательского интерфейса занимается клиент, для построения которого можно использовать целый ряд специальных инструментов, а также большинство настольных СУБД. Логика обработки данных может выполняться как на клиенте, так и на сервере. Клиент посылает на сервер запросы, сформулированные, как правило, на языке SQL. Сервер обрабатывает эти запросы и передает клиенту результат (разумеется, клиентов может быть много).

Таким образом, непосредственным манипулированием данными занимается один процесс. При этом, обработка данных происходит там же, где данные хранятся - на сервере, что исключает необходимость передачи больших объемов данных по сети.

Распределенная обработка данных

С точки зрения хронологии, взаимодействие между программами последовательно приобретало следующие формы:

Обмен: программы различных систем посылают друг другу сообщения (как правило, файлы);

Разделение: имеется непосредственный доступ к ресурсам нескольких машин (совместное пользование файлом, например);

Совместная работа: машины играют в реализации программы взаимодополняющие роли.

Рассмотрим пример, иллюстрирующий эту эволюцию. Речь пойдет о проектировании в области механики; традиционный подход заключается в следующем:

Построение "проволочной модели" (maillage) (графического представления геометрии физической модели) на рабочей станции;

Перенос на ЭВМ Cray файла модели, вводящего код вычислений;

Результаты расчетов, выполненных на ЭВМ Cray переносятся на рабочую станцию и обрабатываются графическим постпроцессором.

Этот способ обладает следующими недостатками:

Обмен данными производится посредством переноса файлов с одной машины на другую;

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

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

Пользователь обладает рабочей станцией;

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

Рис 2.4. Треугольная организация вычислительного процесса

Цели распределенной обработки данных

Целью распределенной обработки данных является оптимизация использования ресурсов и упрощение работы пользователя (что может вылиться в усложнение работы разработчика). Каким образом?

Оптимизация использования ресурсов.

Термин ресурс, в данном случае используется в самом широком смысле: мощность обработки (процессоры), емкость накопителей (память или диски), графические возможности (2-х или 3-х мерный графический процессор, в сочетании с растровым дисплеем и общей памятью), периферийные устройства вывода на бумажный но- ситель (принтеры, плоттеры). Эти ресурсы редко бывают собраны на одной машине: ЭВМ Cray обладает мощными расчетными возможностями, но не имеет графических возможностей, а также возможностей эффективного управления данными. Отсюда принцип совместной работы различных систем, используя лучшие качества каждой из них, причем пользователь имеет их в распоряжении при выполнении только одной программы.

Упрощение работы пользователя.

Действительно, распределенная обработка данных позволяет:

Повысить эффективность посредством распределения данных и видов обработки между машинами, способными наилучшим образом управлять ими;

Предложить новые возможности, вытекающие из повышения эффективности;

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

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

C другой стороны, преимущества весьма ощутимы:

Распределение и оптимизация использования ресурсов. Это основная причина внедрения распределенной обработки данных;

Новые функциональные возможности и повышение эффективности при решении задач;

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

Электронная почта и почтовые протоколы.

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

· для переписки между абонентами;

· для организации телеконференций;

· для организации списков рассылки;

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

Электронная почта базируется на протоколе Х.400, определяющем систему адресации в Интернет. Система адресов базируется на доменных символьных адресах. Почтовый адрес состоит из двух частей: идентификатора пользователя перед знаком "@" и доменного адреса машины после знака. Сочетание имени и домена образует уникальный идентификатор пользователя.

В Интернет используется ряд почтовых пpотоколов прикладного уровня, например:

1. SMTP (Simple Mail Transfer Protocol) - для отпp авления сообщений;

2.POP3 (Post Office Protocol Version 3) - для отпpавления/получения сообщений;

3.IMAP (Interactive Mail Access Protocol) - для отпpавления/получения сообщений.

Для работы с почтой используются почтовые клиенты. Для обработки и пересылки почты – почтовые серверные программы, например, программа отправки почты sendmail, которая сортирует почту и рассылает ее адресатам.

Основным почтовым протоколом прикладного уровня в стеке является протокол SMTP, использующий транспортный протокол TCP. Также вместе с этим протоколом используется Unix-Unix-CoPy (UUCP) протокол. При использовании первого протокола программа sendmail пытается найти получателя и установить с ним взаимодействие для того, чтобы передать почту. При использовании UUCP почта передается по цепочке почтовых серверов от одной машины к другой пока не достигнет машины-получателя или не будет отвергнуто по причине его отсутствия.

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

Протокол POP3 предназначен для разбора почты из почтовых ящиков пользователей и доставки их на рабочие места при помощи программ-клиентов. По протоколу POP3 пользователи забирают корреспонденцию из почтовых ящиков на сервере в локальные компъютеры. Протокол разработан для поддержки обработки почты в режиме offline. Для этого почта доставляется на сервер, пользователь запускает почтового клиента, который соединяется с сервером и скачивает почту. Обработка почты происходит на локальной машине, а почта удаляется с сервера.

Альтернативным протоколом является протокол IMAP (Interactive Mail Access Protocol). IMAP может применяться как для offline доступа, так и для online работы с почтовым ящиком на сервере. Клиент может не копировать почту с сервера, а запросить заголовки сообщений, выполнить поиск сообщений, пометить флагами письма в ящике для удаления или для ответа.

Offline доступ подходит для тех, кто использует собственную клиентскую машину. Он минимизирует использование серверных ресурсов и время соединения, что важно при удаленном доступе по модему. Преимущество online доступа состоит в том, что почтовые ящики с входящей и архивной почтой хранятся на сервере и к ним можно получить доступ с разных компьютеров в различное время. Это важно для тех, кто использует несколько компьютеров, например, в пути. С помощью IMAP клиент может иметь доступ и управлять несколькими почтовыми ящиками. Это включает в себя возможность именовать и получать доступ к различным ящикам, получать их список, создавать, удалять и переименовывать их. Почтовые ящики могут находиться на разных серверах. По протоколу IMAP клиент может видеть их одновременно и перемещать сообщения из одного ящика в другой.

Формат почтового сообщения определен в документе RFC-822. Почтовое сообщение состоит из трех частей: конверта, заголовка и тела. Пользователь видит только заголовок и тело сообщения. Конверт используется программами доставки, состоит из адреса отправителя, получателя и информации рассылки. Заголовок содержит адреса, информацию о рассылке и данные. Тело почтового сообщения содержит несколько способов представления разнородной информации. Для этой цели используются специальные поля заголовка почтового сообщения.

Без протоколов SMTP, РОРЗ и IMAP невозможна работа электронной почты. Особенностью этих протоколов является их узкая направленность. Это означает, что их принципиально невозможно использовать для других целей, что, к тому же, не имеет смысла. Задача SMTP, РОРЗ и IMAP - организация обмена электронными сообщениями, и они отличио с ней справляются. Еще одной особенностью почтовых протоколов является однозначность. Например, протокол, отсылающий сообщения, не способен их принимать, и наоборот. Именно поэтому такие протоколы работают парами.

SMTP

SMTP (Simple Mail Transfer Protocol упрошенный протокол пересылки почты) - протокол, основной задачей которого является отсылка подготовленных специальным образом сообщений. Перед тем, как это сделать, протокол устанавливает соединение между компьютерами, что гарантирует доставку сообщения. Протокол SMTP очень простой и эффективный, однако эта эффективность не распространяется на все задачи и возможности. Так, он не обладает даже простейшим механизмом аутентификации и возможностью шифрования данных при передаче между почтовыми серверами. Самым большим недостатком SMTP является его неспособность к пересылке графики.

Чтобы не отказываться от этого довольно хорошего протокола, было принято решение расширить его несколькими полезными и необходимыми расширениями.Taким расширением, например, является MIME (Multipurpose Internet Mail Extensions многоцелевое расширение почтовой службы в Интернете), благодаря которому существует возможность отсылать файлы любого формата и содержания. Кроме того разработан стандарт UUENCODE, позволяющий передавать текстовые сообщение в разных кодировках. ESMTP (Extended SMTP) - масштабируемое расширение протокола SMTP. В настоящее время под «протоколом SMTP», как правило, подразумевают ESMTP и его расширения.

РОРЗ

P0P3 (Post Office Protocol 3, почтовый протокол версии 3) - почтовый протокол, который используется для приема электронных сообщений с почтового сервера. Обычно РОРЗ работает в паре с протоколом SMTP, что позволяет организовать эффективную систему отсылки и приема электронных сообщений. Интерфейс протокола еще более простои, чем интерфейс SMTP, и с этим связаны определенные неудобства. Так, отсутствует возможность выборочного скачивания письма или просмотра содержимого письма непосредственно на почтовом сервере.

IMAP

IMAP (Interactive Mail Access Protocol, протокол интерактивного доступа к электронной почте) - наиболее «продвинутый» почтовый протокол, предназначенный для приема электронных сообщений с почтового сервера. В большинстве случаев более удобным и эффективным является использование протокола IMAP, чем РОРЗ. К достоинствам протокола относится возможность частичного скачивания письма, разбития принимаемого письма на части с последующим склеиванием и многое другое. Пользователю дается возможность управлять сообщениями непосредственно на сервере, не загружая их на компьютер.