Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Olifer_V_G__Olifer_N_A_-_Kompyuternye_seti_-_2010.pdf
Скачиваний:
2385
Добавлен:
21.03.2016
Размер:
23.36 Mб
Скачать

ГЛАВА 23 Сетевые службы

С точки зрения пользователей компьютерные сети представляют собой набор служб (сервисов), таких как электронная почта, WWW, интернет-телефония и интернет-телевидение. Транспортные функции сети, обеспечивающие работу этих служб, скрытыот пользователей, хотя иногда и влияют на некоторыедетали предоставления службы, например, недостаточно высокая надежностьдоступа в Интернет потелефонным каналам потребовала короткихTCP-сеансов в службеWWWпри передаче содержания веб-страниц. Помимо служб, ориентированных на конечных пользователей, существу­ ют службы, ориентированные на сетевых администраторов, решающих задачи конфигурирования и управления сетевыми устройствами; в эту категорию входятслужбыFTP, telnet1иSNMP. Дополняют общуюкартинууже рассмотренные нами службы, помогающие компьютерам и сетевымустройствам организовать свою работу, такие как службы DNS и DHCP.

1 Краткий обзор функций протокола telnet был приведен в главе 22.

Электронная почта

795

Электронная почта

Сетевая почтовая служба, или электронная почта, —это распределенное приложение, глав­ нойфункциейкоторогоявляетсяпредоставление пользователямсети возможностиобмениваться электронными сообщениями.

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

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

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

Электронные сообщения

Почтовая служба оперирует электронными сообщениями —информационными структура­ ми определенного стандартного формата. Упрощенно электронное сообщение может быть представлено в виде двух частей, одна из которых (заголовок) содержит вспомогательную информацию для почтовой службы, другая часть (тело сообщения) —это собственно то «письмо», которое предназначается для прочтения, прослушивания или просмотра адре­ сатом (RFC 8022).

Главными элементами заголовка являются адреса отправителя и получателя в виде Polina@ domen.com, где Polina —идентификатор пользователя почтовой службы, а domen.com —имя домена, к которому относится этот пользователь. Кроме этого, почтовая служба включает взаголовок дату и тему письма, делает отметки о применении шифрования, срочности до­ ставки, необходимости подтверждения факта прочтения этого сообщения адресатом и др. Дополнительная информация заголовка может оповещать почтового клиента получателя об использовании той или иной кодировки. Помимо основной кодировки ASCII, совре­ менные почтовые системы позволяют создавать сообщения, включающие изображения (в форматах GIF и JPEG), а также аудио- и видеофайлы.

Протокол SMTP

В качестве средств передачи сообщения почтовая служба использует стандартный, разрабо­ танный специально для почтовых систем протокол SMTP (Simple Mail Transfer Protocol —

796

Глава 23. Сетевые службы

простой протокол передачи почты). Как и большинство других протоколов прикладного уровня, SMTP реализуется несимметричными взаимодействующими частями: SMTPклиентом и SMTP-сервером. Важно отметить, что этот протокол ориентирован на передачу данных по направлению от клиента к серверу, следовательно, SMTP-клиент работает на стороне отправителя, а SMTP-сервер —на стороне получателя. SMTP-сервер должен по­ стоянно быть в режиме подключения, ожидая запросов со стороны SMTP-клиента.

Логика работы протокола SMTP действительно является достаточно простой (как это и следует из его названия). После того как, применяя графический интерфейс своего по­ чтового клиента, пользователь щелкает на значке, инициирующем отправку сообщения, SMTP-клиент посылает запрос на установление TCP-соединения на порт 25 (это назна­ ченный порт SMTP-сервера). Если сервер готов, то он посылает свои идентифицирую­ щие данные, в частности свое DNS-имя. Затем клиент передает серверу адреса (имена) отправителя и получателя. Если имя получателя соответствует ожидаемому, то после получения адресов сервер дает согласие на установление TCP-соединения, и в рамках этого надежного логического канала происходит передача сообщения. Используя одно TCP-соединение, клиент может передать несколько сообщений, предваряя каждое из них указанием адресов отправителя и получателя. После завершения передачи TCP- и SMTPсоединения разрываются. Если в начале сеанса связи SMTP-сервер оказался не готов, то он посылает соответствующее сообщение клиенту, в ответ тот снова посылает запрос, пытаясь заново установить соединение. Если сервер не может доставить сообщение, то он передает отчет об ошибке отправителю сообщения и разрывает соединение. После того как передача сообщения благополучно заканчивается, переданное сообщение сохраняется в буфере на сервере.

ПРИМЕЧАНИЕ---------------------------------------------------------------------------------------------------------------

Хотя в л ю б о м протоколе предполагается обмен д а н н ы м и м е ж д у взаим о д е й с т в у ю щ и м и частями, то есть данные передаются в обе стороны, различают протоколы, ориентированные на передачу (pull protocols), и протоколы, ориентированные на прием данных (push protocols). В протоколах, ориентированных на передачу, к которым, в частности, относится протокол S M T P , клиент является инициатором передачи данных на сервер, а в протоколах, ориентированных на прием, к которым относятся, например, протоколы H T T P , P O P 3 и IMAP, клиент является инициатором получения данных от сервера.

Непосредственное взаимодействие клиента и сервера

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

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

Электронная почта

797

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

 

 

Протокол SMPT

Передача сообщения

 

 

 

Полины Даниле

 

 

 

 

| Порт 25р

 

Передача

Щ Порт 25 Р

 

электронного

f S M tW

 

сообщения

/БМТРЛ

 

\сервар/

/ эмтрЛ

Данилы Полине

І сервері

(S мтрЛ

шшш

 

шшш

уклиенту

для храненияБуфер

1 клиенту

Почтовый

Почтовый

сообщений

Почтовый

Почтовый

сервер

 

 

i-а

 

клиент

 

 

клиент

Данила

 

 

 

Полина

Рис. 23.1. Схема непосредственного взаимодействия клиента исервера

Схема с выделенным почтовым сервером

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

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

.

^^мейії имен система DNSсоздает записи типа MX, вкоторыххранятся DNS-имена

 

пользователей, относящихся к этомудомену.

798

Глава 23. Сетевые службы

Протокол SMPT

Протокол

 

доступа

 

(POP3,

 

IMAP)

Почтовые

 

Полина

ящики

Порт 25 Порт TCP

poiina@bim.com

пользователей

 

\

 

 

Данила

п т ш к

 

danila@madeira.com

^ .Почтовый

л

 

Почтовый

ящик Полины

 

сервер

 

 

и

Почтовый сервер Maii.bim.com в домене Полины bim.com

Рис. 23.2. Схема с выделенным почтовым сервером в принимающем домене

На рис. 23.2 представлена схема с выделенным почтовым сервером. Чтобы не усложнять рисунок, мы показали на нем только те компоненты, которые участвуют в передаче со­ общения от Данилы к Полине. Для обратного случая схема должна быть симметрично дополнена.

1.Итак, пусть Данила решает послать письмо Полине, для чего он запускает на своем компьютере установленную на нем программу почтового клиента (например, Microsoft Outlook или Mozilla Thunderbird). Он пишет текст сообщения, указывает необходимую сопроводительную информацию, в частности адрес получателя poiina@bim.com, и щелкает мышью на значке отправки сообщения. Поскольку готовое сообщение должно быть на­

правлено совершенно определенному почтовому серверу, клиент обращается к системе DNS, чтобы определить имя почтового сервера, обслуживающему домен Полины bim. com. Получив от DNS в качестве ответа имя maii.bim.com, SMTP-клиент еще раз обраща­ ется к DNS, на этот раз, чтобы узнать IP-адрес почтового сервера mail.bim.com.

2.SMTP-клиент посылает по данному IP-адресу запрос на установление ТСР-соединения через порт 25 (SMTP-сервер).

3.С этого момента начинается диалог между клиентом и сервером по протоколу SMTP, с которым мы уже знакомы. Заметим, что здесь, как и у всех протоколов, ориентиро­ ванных на передачу, направление передачи запроса от клиента на установление SMTP-

Электронная почта

799

соединения совпадает с направлением передачи сообщения. Если сервер оказывается готовым, то после установления TCP-соединения сообщение Данилы передается.

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

5.В какой-то момент, который принципиально не связан смоментом поступления сообще­ ний на почтовый сервер, Полина, запускает свою почтовую программу и выполняет команду проверки почты. После этой команды почтовый клиент должен запустить протокол доступа к почтовому серверу, однако этим протоколом уже не будет SMTP. Напомним, что протокол SMTP используется тогда, когда необходимо передать данные на сервер, а Полине, напротив, нужно получить их с сервера. Для этого случая были разработаны другие протоколы, обобщенно называемые протоколами доступа к по­ чтовому серверу, такие, например, как POP3 и IMAP. Оба этих протокола относятся к протоколам, ориентированным на прием данных (протокол POP3 ожидает запрос на установление TCP-соединения через порт 110, a IMAP —через порт 143, на рисунке эти порты обобщенно показаны как порт TCP). В результате работы любого из них письмо Данилы оказывается в памяти компьютера Полины. Заметим, что на этот раз направление запроса от клиента к серверу не совпадает с направлением передачи дан­ ных, показанному стрелкой.

Схема с двумя почтовыми серверами-посредниками

Прежде чем мы перейдем к сравнению двух протоколов доступа к почте, давайте по­ смотрим на еще одну схему организации почтовой службы, наиболее приближенную к реальности (рис. 23.3). Здесь передача сообщений между клиентами почты (на нашем рисунке между отправителем Данилой и получателем Полиной) проходит через два про­ межуточных почтовых сервера, каждый из которых обслуживает домен своего клиента. На каждом из этих серверов установлены также и клиентские части протокола SMTP. При отправке письма почтовый клиент Данилы передает сообщение по протоколу SMTP почтовому серверу домена, к которому относится Данила —RoyalMail.madeira.com. Это со­ общение буферизуется на данном сервере, а затем по протоколу SMTP передается дальше на почтовый сервер домена Полины —mail.bim.com, откуда описанным уже образом по­ падает на компьютер Полины.

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

800

Глава 23. Сетевые службы

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

Протоколы POP3 и IMAP

А теперь давайте, как мы и собирались, сравним два протокола доступа к почте: POP3 (Post Office Protocol v.3 —протокол почтового отделения версии 3) и IMAP (Internet Mail Access Protocol —протокол доступа к электронной почте Интернета). Оба эти протокола решают одну и ту же задачу —обеспечивают доступ пользователей к корреспонденции, хранящейся на почтовом сервере. В связи с многопользовательским характером работы почтового сервера оба протокола поддерживают аутентификацию пользователей на основе идентификаторов и паролей. Однако протоколы POP3 и IMAP имеют принципиальные различия, важнейшее из которых состоит в следующем. Получая доступ к почтовому серверу по протоколу POP3, вы «перекачиваете» адресованные вам сообщения в память своего компьютера, при этом на сервере не остается никакого следа от считанной вами по­ чты. Если же доступ осуществляется по протоколу IMAP, то в память вашего компьютера передаются только копии сообщений, хранящихся на почтовом сервере.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]