Опубликован: 08.12.2008 | Доступ: свободный | Студентов: 544 / 31 | Оценка: 4.55 / 4.64 | Длительность: 15:21:00
Лекция 7:

Поддержка протоколов интернета и SMTP

Аннотация: В этой лекции рассматриваются протоколы Simple Mail Transfer Protocol (SMTP), Post Office Protocol версия 3 (РОРЗ), Internet Message Access Protocol версия 4 (IMAP4) и Outlook Web Access (OWA). На первый взгляд, этот материал может показаться сухим, который оценит только настоящий зануда. Но на самом деле хорошее знание основных протоколов интернета окажет вам большую услугу в поиске и устранении неисправностей и понимании архитектуры Microsoft Exchange Server 2003
Ключевые слова: smtp, exchange, server, коннектор, routing, group, f-connector, store, знание, анализ, file transfer protocol, FTP, RFC, копирование, место, файл, receiver, subject, reply, transfer, agent, MTA, data network, open systems, International Telecommunications Union, ITU, ITU, канал передачи данных, пользователь, отправитель сообщения, получатель сообщения, команда, список, turn, interchangeable, uuencode, multipurpose, internet mail, тип носителя, подтип, узловой, rich text, s-video, I-MPEG, octet, MIX, assigned numbers, виртуальный сервер, информационная среда, доменная имя, mx/s, балансировка нагрузки, маска подсети, сервер dns, restriction, ip address, NCSA, supercomputer, ODBC, системный ресурс, фильтрация сообщений, identification, delivery, recipient, real-time, RBL, status code, код возврата, error message, RTC, почтовый сервер, октет, return code, RSC, matched filter, accept message, источник сообщения, NDR, anonymity, анонимный доступ, протокол безопасности транспортного уровня, Transport layer, TLS, контекст безопасности, challenge, secure communication, certificate, relay, GRANT, permissions, мутация, размер сообщения, внешнее соединение, masquerading, тело сообщения, hop count, Lookup, incoming, просмотр файлов, доступ, почта, сервер, запуск, параметр сеанса, администрирование, загрузка, почтовый ящик, capability, examination, Subscribe, unsubscribe, expunge, FETCH, logout, NNTP, список рассылки, физический ресурс, построение пути, newsgroup, группы новостей, возврат каретки, article, идентификатор сообщения, часовой пояс, GMT, subordinate, isp, подчиненный сервер, Secure Sockets Layer, FQDN, feed, peering, Slave, expire, LDAP, directory, access protocol, DAP, стек, OSI, TCP, запрос, атрибут объекта, connectionless, дейтаграмма, UDP, information, tree, DIT, дерево, relative, конкатенация, DN, атрибут, object identifier, OID, поле, информация, DSA, Entry, DSE, поиск объектов, запись, поиск, управляющие

SMTP является собственным транспортным протоколом Exchange Server 2003, и он используется коннекторами Routing Group Connector и SMTP Connector (для почты интернета), а также для взаимодействия между серверами Exchange 2003. Другие протоколы - РОРЗ, IMAP4 и OWA - используются различными способами для доступа к процессу Store. Знание преимуществ и ограничений каждого протокола поможет при планировании, реализации, а также в поиске и устранении неисправностей.

Протокол Simple Mail Transfer Protocol (SMTP)

Поскольку мы не можем привести в данном курсе подробный анализ SMTP, этот раздел посвящен описанию тех частей SMTP, которые наиболее связаны с администрированием, а также с поиском и устранением неисправностей в Exchange Server 2003.

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

В 1973 г. положено начало определению структуры сообщений, содержащей поля заголовка и основной текст. Дальнейшие улучшения внесены в RFC 680, 724 и 733, после чего выпущен действующий стандарт RFC 822. Теперь каждая строка заголовка состоит из имени поля, которое заканчивается двоеточием, за которым следует тело этого поля. Для достоверности сообщения следует заполнять поля времени, поля источника и поля адресата, а также дополнительные поля: Received (Получено), Subject (Тема), Reply-to (Ответить) и Return-path. Поскольку сообщение передается от одного агента Message Transfer Agent (MTA) другому, то эти обязательные поля учитываются и добавляются к заголовку сообщения, чтобы получатель видел, как сообщение проходило через почтовую систему.

Дополнительная информация. Более подробную информацию по стандартам передачи сообщений см. в документе "F.400/X.400 Standard: Data Networks and Open System Communication Message Handling Systems" от Международного Союза Телекоммуникаций (International Telecommunication Union, ITU) по адресу http://www.itu.org.

Структура протокола SMTP базируется на модели передачи данных, которая работает следующим образом.

  1. Пользователь направляет почтовый запрос службе SMTP отправителя.
  2. SMTP отправителя устанавливает двусторонний канал передачи данных с SMTP получателя.
  3. SMTP отправителя генерирует команды протокола SMTP и отправляет их SMTP получателя.
  4. SMTP получателя направляет команды-ответы SMTP отправителя.

Например, если пользователь Userl хочет отправить почтовое сообщение пользователю User2 через SMTP, то произойдут события в следующей последовательности (в предположении, что оба пользователя используют на своих компьютерах службу SMTP).

  1. Userl обращается к User2 и устанавливает двусторонний канал передачи данных через ТСР-порт 25 с помощью команды HELO
  2. Userl отправляет команду MAIL, указывающую отправителя почты. Становится известен отправитель сообщения электронной почты.
  3. User2 отправляет ответ ОК.
  4. Userl отправляет команду RCPT, указывающую получателя сообщения. Становится известен получатель сообщения.
  5. User2 отправляет ответ ОК.
  6. Userl отправляет данное сообщение.
  7. User2 отправляет ответ ОК.
  8. Userl отправляет команду завершения QUIT.
  9. User2 отправляет ответ ОК и выполняет отсоединение

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

Таблица 7.1. Сводка команд протокола SMTP
Команда Описание
HELO Идентифицирует SMTP отправителя для SMTP получателя, используя хост-имена.
MAIL Инициирует передачу почты с указанием автора сообщения (параметр обратного маршрута). При передаче через агента коммутации первый хост в списке является последним агентом коммутации. Отчеты о невозможности доставки, генерируемые SMTP получателя, отправляются обратно с помощью этой команды.
RCPT Идентифицирует одного из получателей (параметр прямого маршрута). Для нескольких получателей эта команда используется несколько раз. Параметр прямого маршрута дополнительно включает список центров коммутации, но он обязан содержать конечный адресуемый почтовый ящик.
DATA Указывает, что данные сообщения готовы к отправке в виде 7-битных кодов ASCII (из 128-символьной таблицы ASCII).
RSET Сброс почтовой передачи в исходное состояние. Полученные данные сообщения отбрасываются.
VRFY Запрашивает SMTP получателя для проверки того, что дан- ный адрес электронной почты идентифицирует какого-либо пользователя.
EXPN Запрашивает SMTP получателя для подтверждения идентич ности списка рассылки и возвращает состав этого списка.
HELP Запрашивает справку по команде.
NOOP Запрашивает у SMTP получателя отправку команды ОК.
TURN Меняет местами роли отправителя и получателя.
QUIT Запрашивает отсоединение. SMTP получателя должен отправить команду ОК и затем закрыть канал передачи данных.

Набор 7-битных кодов ASCII

Команды протокола SMTP отправляются в виде набора 7-битных символов в стандарте ASCII (American Standard Code for Information Interchange). Этот факт имеет большое значение, поскольку архитектура TCP предполагает использование канала передачи данных с 8 битами на один байт.

Использование электронной почты началось в США, и сначала она применялась только для отправки текстов. Поскольку весь английский алфавит и стандартные английские знаки пунктуации можно представить в виде 128 возможных комбинаций из 7 битов, то восьмой бит использовался как бит четности, давая некоторую избыточность для проверки ошибок.

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

Расширенный набор символов ASCII

Поскольку в алфавитах других стран намного больше символов, то в расширенном наборе символов ASCII определено 256 символов, что подходит для большинства европейских алфавитов. Такое количество симво-лов требует наличия восьмого бита для формирования символов вместо его использования как бита четности. Здесь возникает проблема, поскольку протокол SMTP не позволяет использовать восьмой бит. Таким образом, даже при наличии МТА-агента SMTP, который мог передавать все восемь битов, этот восьмой бит был бы потерян, поскольку сам протокол работает только с семью битами. Решением проблемы стала упаковка восьми битов в семь битов на стороне отправителя и распаковка в восемь битов на стороне получателя. Поскольку биты плохо поддаются упаковке, добавляется несколько дополнительных байтов, чтобы длина последовательности битов делилась на 7 без остатка.

Чтобы выполнить эту задачу, 7 байтов, каждый из которых содержит 8 битов, выстраиваются как последовательность битов, затем каждые 7 битов упаковываются в 1 байт, после чего происходит отправка этих байтов по линии связи. Например, если у вас имеется 7 байтов по 8 битов, то, выстроив последовательно эти байты, можно создать 8 байтов по 7 битов в каждом. На принимающей стороне эти биты переупаковываются в 7 байтов по 8 битов каждый.

Для переупаковки файла с 8-битными данными в другой файл с 7-битными данными при передаче через SMTP используется утилита Uuencode, действующая на основе UNIX. Для обратного преобразования данных в 8-битный стандарт получатель использует утилиту uudecode.

Формат MIME

В настоящее время мы отправляем не только тексты. Выполняется передача файлов из разнообразных PC-приложений на различных языках. Этот уровень сложности требует привлечения таких средств, как стандарт многоцелевых расширений почты интернета (Multipurpose Internet Mail Extension, MIME). Использование MIME позволяет передавать через интернет не только тексты, но и включать в сообщение файлы с различным типом содержимого. Текущее определение MIME дается в документах RFC 2045-2049, и они рассматриваются как единый стандарт.

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

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

Exchange Server 5.5 основывается на протоколе Х.400, который считается замкнутой системой передачи сообщений. Под этим понимается, что для магистрали Х.400 требуется явно определить агенты МТА для всех узлов в сети или через интернет. С другой стороны, SMTP считается открытой системой передачи сообщений, поскольку любой компьютер, на котором используется SMTP, обычно допускает соединения с любым другим компьютером, использующим SMTP, и эти узловые соединения не требуется указывать заранее. Поскольку SMTP является принятым по умолчанию транспортным протоколом для системы Exchange Server 2003, она имеет больше возможностей взаимодействия с внешними почтовыми системами, чем Exchange Server 5.5.

Таблица 7.2. Типы носителя информации на верхнем уровне
Тип носителя Подтипы
Дискретный
Text (Текст) Plain, rich text, enriched
Image (Изображение) jpg, gif
Audio (Аудио) Basic
Video (Видео) Mpeg
Application (Приложение) Octet-stream, Postscript
Составной
Multipart Message (Сообщение из нескольких частей) Mixed RFC 822

Каждый сервер SMTP действует как собственный агент передачи сообщений (МТА), направляя сообщения следующему серверу SMTP на основании записей почтового обмена (МХ-записей), которые он ищет в DNS. SMTP передает сообщения через ТСР-порт 25. Если происходит переход от среды Microsoft Exchange 5.5 Server, то вам может показаться удивительным тот факт, что МТА не участвует в передаче сообщений протоколом SMTP. В Exchange 2003 (и Exchange 2000) МТА не играет важной роли при передаче сообщений. МТА по-прежнему существует для соединений с другими системами, основанными на МТА, такими как Exchange 5.5 или Lotus cc:Mail, и он по-прежнему используется для электронной почты, которая передается через коннектор Х.400, однако главным протоколом передачи сообщений внутри среды Exchange 2003 является SMTP, а не МТА.

Расширения службы SMTP

В ноябре 1995 г. был опубликован документ RFC 1869, содержащий несколько расширений структуры команд SMTP. Эти расширения зарегистрированы агентством Internet Assigned Number Authority (IANА). Они позволяют SMTP получателя информировать SMTP отправителя о расширениях, который он поддерживает. Целью этих нововведений в стандарт SMTP являлась адаптация протокола SMTP в предстоящие годы. Этот расширенный SMTP называют ESMTP.

При использовании этих расширений SMTP отправителя передает вместо команды HELO команду EHLO. SMTP получателя может ответить, указав, какие расширения он поддерживает. Если он не поддерживает никаких расширений, то отправляет в ответ сообщение об ошибке.

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

Exchange Server 2003 и служба SMTP

SMTP фактически является основой транспортных служб Exchange 2003. Служба SMTP, устанавливаемая Exchange 2003, поддерживает многие команды ESMTP. Хотя имеется только одна служба SMTP, можно сконфигурировать несколько виртуальных серверов SMTP на каждом сервере Exchange 2003. Каждый виртуальный сервер можно запустить, закрыть или приостановить независимо от других виртуальных серверов. Однако закрытие или приостановка самой службы SMTP повлияет на все виртуальные серверы. (Подробнее об этом рассказывается в следующем разделе "Виртуальные серверы SMTP".)

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

При инсталляции Exchange Server 2003 происходит расширение базовой службы SMTP за счет дополнительных функциональных возможностей:

  • команды поддержки информации о состоянии связи (X-LINK2STATE);
  • расширенного механизма обработки очередей (AQE);
  • улучшенного агента классификации сообщений;
  • драйвера хранилищ инсталлируемой файловой системы (IFS).
Примечание. Даже несмотря на то, что в Exchange Server 2003 >-1 устанавливается и функционирует файловая система IFS, базы данных не представляются посредством устройства М:, как это было в Exchange 2000 Server. Поэтому файловая система IFS загружается и работает независимо от того, отображается ли в Exchange 2003 устройство М:.

На рис. 7.1 показан пример файла журнала для службы SMTP, где содержится листинг отправки сообщения с локального сервера на удаленный сервер. Отметим, что некоторые команды, такие как X-LINK2STATE и ХЕХСН50, являются уникальными для Exchange Server 2003 и считаются командами ESMTP. Из этого рисунка видно, что файл журнала позволяет использовать команды SMTP для поиска и устранения проблем со службами SMTP.

Примечание. Файл журнала рассматривается более подробно в разделе "Конфигурирование и администрирование виртуального сервера" далее в лекции.