Электронная почта: X.400 или Internet?

Поговорим о глобальных электронных почтах, которых сегодня всего две.
ITU или IETF?
X.400 РАЗРАБОТАН ITU, ПОЧТА INTERNET - IETF

Стандарт Х.400 был создан ITU (International Telecommunications Union) и признан ISO (International Standardisation Organisation). ITU вляется агентством ООН (хотя и старше Объединенных Наций). Никто не управляет ISO, и обе эти организации руководят своими национальными представительствами на одинаковый манер. IETF (Internet Engineering Task Force) - добровольная некоммерческая организация, необходимым условием членства в которой является лишь желание в ней работать. Достаточно недавно эта разница была очень существенна; ISO создавала стандарты, в то время как Internet был своеобразной вольницей, которая никого ни к чему не обязывала. Ныне IETF признана ISO и ITU как полноправный член процесса стандартизации с юридическим оформлением этого факта и взаимным членством. Безусловно, IETF заслужила это тем, что смогла запустить огромный механизм Сети. Справедливости ради следует отметить, что некоторые стандарты ITU - в частности, Х.25, Х.121, стандарты телефонной связи - тоже стали глобальными, но такого шума в прессе они уж точно не имели.

ДОСТУПНОСТЬ СТАНДАРТОВ
Важнейшим отличием между ISO/ITU и IETF является их подход к публикации своих стандартов. Публикации ISO/ITU стоят денег и защищены авторскими правами. Возможность независимого (а значит, небогатого) разработчика получить их, особенно в электронном виде, достаточно ограничена. IETF, с другой стороны, всегда декларировала, что публикации RFC должны быть доступны всем желающим в сети, без ограничений на копирование и распространение. Результатом такой политики стало то, что разработка приложений для Internet стала делом, доступным даже любителям, в то время как создание продуктов, поддерживающих стандарты ISO/ITU, требует наличия некоторого начального капитала и уверенности в том, что потраченные деньги вернутся. Ситуация несколько улучшается - цена, которую ITU желает получить за электронные копии стандартов, понизилась, но все равно платить 3200 швейцарских франков за годовую подписку может позволить себе далеко не всякий.

Что можно сказать о сравнении Х.400 и Internet SMTP?
Ответ будет зависеть от того, что Вы хотите получить от почтовой системы.

SMTP привлекателен:

  • Простотой
  • Широчайшей распространенностью
  • Дешевизной
  • Множеством новых (но далеко не общепринятых) свойств, таких, как MIME и уведомления о доставке.

    X.400 привлекателен:

  • Строгой - можно сказать, даже жесткой - стандартизацией
  • Наличием коммерческих операторов с гарантированным уровнем сервиса
  • Определенностью способов передачи документов, отличающихся от текста ASCII, в том числе и национальных кодовых таблиц. Это, однако, в большей степени относится к Х.400/88.
  • Стандартизацией использования уведомлений о доставке и о получении.
  • Использованием такой функции, как RTS (Reliable Transfer Service). Эта спецификация стандарта сильно облегчает работу на плохих линиях программными средствами.

    ПРОДУКТЫ Х.400 ДОРОЖЕ ПРОДУКТОВ ДЛЯ INTERNET
    Цена - понятие сложное. В нашем случае она складывается, по крайней мере, из следующих факторов:

  • Цена приобретения
  • Цена требуемой аппаратной платформы
  • Цена инсталляции
  • Цена обучения
  • Цена рабочего времени, затрачиваемого на работу с приложением
  • Цена технической поддержки
  • Цена обслуживания
  • Смежные расходы (платы оператору сети, поставщику услуг)

    Идеальный продукт бесплатен, автоматически устанавливаем, интуитивно прост в использовании, не требует аппаратных ресурсов и технической поддержки. В научной среде (не только российской) до сих под сохранилось убеждение, что время не стоит денег, сколько бы раз не утверждалось обратное. Отсюда возникает практика сравнения стоимости продуктов по цене, по которой они продаются в магазине, и не вполне здоровая любовь к свободно распространяемому ПО. Безусловно, Internet Mail и X.400 абсолютно не сравнимы по цене приобретения; самые дешевые продукты Х.400 дороже самых дорогих для Internet.

    Цена аппаратной платформы
    Сравнима, хотя многие разработчики приложений Х.400 не избежали общей современной болезни коммерческих продуктов - необъятного расширения кода. Мне не кажется нормальным тот факт, что почтовый сервер (MTA) HP OpenMail требует 80 MB дискового пространства для работы, в то время как Sendmail, - не самый простой в мире продукт - в версии под Linux представляет из себя единственный исполняемый файл размером 160 kB. Но, с другой стороны, в последнее время на рынке появились продукты Х.400, которые, с практической точки зрения, не требуют аппаратных ресурсов и работают, например, на Intel 80286 / DOS или SCO UNIX / 8 MB RAM / 200 MB HDD - иначе говоря, если операционная система смогла "встать" на Вашей машине, то на ней сможет работать и MTA.

    Цена установки и настройки
    Тут фора, безусловно, у Х.400. Попытайтесь поработать с конфигурационным файлом Sendmail, чтобы с этим согласиться. Механизм DNS сильно упрощает проблему маршрутизации, столь характерную для Х.400, но, с другой стороны, Вы либо не желаете выходить в глобальную сеть, и тогда стройте свое адресное пространство как Бог на душу положит, либо желаете, и тогда эту проблему за Вас решит Ваш оператор сети - это его прямая обязанность.

    Цена обучения
    Продукты Х.400, безусловно, сложнее, и полное овладение их возможностями требует серьезного обучения. С другой стороны, есть старая истина, что 80% пользователей эксплуатируют 20% возможностей программного продукта, а остальные 20% пользователей - 80%. Вспомнив о далеко еще не ушедшей со сцены утилите uuencode / uudecode и вообще всех трудностях, связанных - до сих пор - с пересылкой двоичных файлов через Internet Mail, можно признать, что начать работать с клиентской программой Х.400 проще.

    Цена времени, затраченного на работу
    Наверное, наиболее трудно оцениваемая вещь. В пользу Internet Mail говорит текстовой формат заголовка письма, облегчающий восприятие пользователем, хотя я не убежден, что при прочих равных текстовой формат должен быть предпочтен двоичному ASN.1 только потому, что он текстовой. Желание пользователей UNIX использовать утилиту grep для поиска среди писем не является оправданием "плоских" файлов. Ориентация на текст сыграла с Internet еще одну плохую шутку: сообщения об ошибках доставки здесь, мягко говоря, часто неудобочитаемы. Важнейшим и мощнейшим средством, облегчающим жизнь пользователям Internet, безусловно, является механизм DNS. Однако большинство серьезных поставщиков ПО Х.400 сейчас используют помимо "родного" протокола Х.25 также и TCP/IP, что делает это преимущество Internet Mail менее заметным.

    X.400 принят государственными организациями
    Да, это действительно так - наибольшей популярностью Х.400 пользуется среди государственных организаций всего мира. Почти одновременно в 80-х годах многие правительства объявили о том, что по телекоммуникационным контрактам для них должно поставляться оборудование, отвечающее международным стандартам. Существует версия, по которой главным мотивом этих решений было желание уменьшить долю IBMовского протокола SNA на рынке. Так или иначе, по состоянию на тот момент словосочетание "международные стандарты" было синонимом стандартов ISO. Однако их реализации находились, мягко говоря, в зачаточном состоянии. Поэтому у государственных покупателей оставалось два выбора. 1.Переопределить свои требования на "независимые протоколы, обеспечивающие взаимодействие продуктов различных производителей" - то есть протоколы Internet. 2.Поверить клятвам производителей, обещавших стандарты ISO Здесь и Сейчас, купить их, поставить на полку и пользоваться Internet "во временном порядке". Оба варианта решения порождали растущее число установок Internet и создали "центры кристаллизации" для будущего бума. В некотором смысле можно сказать, что ISO сама проторила дорогу Internet. Сегодня все большее число правительственных органов сертификации изменяет свои требования, включая в них поддержку TCP/IP на сетевом уровне и разрешая делать выбор между протоколами Internet и ISO на более высоких уровнях. Можно сказать, что правительственными усилиями был дан толчок к развитию лишь двум стандартам семиуровневой модели - Х.400 и Х.500, отвечающим за верхний уровень протокола - уровень приложения. Существует большое количество програмных продуктов, реализующих Х.400. Помимо того, что большинство крупнейших производителей ПО, включая Microsoft, IBM, Lotus, Novell либо анонсировали, либо уже продают почтовые продукты, совместимые с Х.400, есть множество "чисто Х.400"-продуктов.

    Присоединенные файлы Х.400
    X.400 (1984) определял небольшое число типов содержимого письма (частей тела, body parts) - факс группы 3, текст ASCII и пару других. Все они могли содержаться в одном письме. X.400 (1988) создал расширяемый механизм - "body part 15", позволяющий пересылать все, что может быть описано с использованием ASN.1 и сопоставлено с идентификатором. Реализации X.400 (1984) для этого использовали "двусторонне определенную часть тела письма" (body part 14), передающую неидентифицируемую, неструктурированную последовательность байтов. Усилиями действующей в рамках EMA "группы по присоединенным файлам" на свет появилось последнее изобретение в этой области - "File Transfer Body Part", имеющая большое число полей заголовка, которые позволяют, например, передавать имя файла и его формат.

    Присоединенные файлы в Интернет
    Internet Mail (RFC 822, 1982) исходно понимал только текст ASCII. Расширение почтового стандарта MIME (первая редакция - RFC 1341, 1992) определяет, как отформатировать ASCII-текст в письме, чтобы стало возможным передавать различные типы бинарной информации. Заголовок части письма, содержащей закодированный по MIME файл, как и обычно в почте Internet, дается в текстовом виде. В MIME описаны широкие возможности вложения одних частей сообщения в другие (в Х.400 подобную функцию реализует только переадресованное письмо). Однако, поскольку расширение стандарта MIME распространяется лишь на клиентское программное обеспечение, механизм работы с присоединенными файлами остается несколько менее прозрачным, чем в Х.400. Следует также отметить, что, несмотря на большое количество определенных типов, наиболее популярным в MIME типом остается тип, аналогичный устаревшему "двусторонне определенному" Х.400 - "строка октетов".

    Адресация
    Сравните два адреса: X.400 G=John; S=Smith; O=sintef; OU=delab; PRMD=uninett; ADMD=uninett; C=no Internet SMTP John.Smith@delab. sintef.no Безусловно, второй короче и значительно проще во вводе - адресация в Х.400, безусловно, не самая лучшая находка. ADMD и PRMD обычно маршрутизируют письмо только по полям "C,ADMD,PRMD", ADMD - только по полям "C,ADMD"; Internet воспринимает "delab.sintef.no" как целое.

    Общие черты адресации:

  • Оба типа адресации в целом иерархические, когда администратор "высшего уровня" присваивает имена "низшему".
  • Оба используют в именах ограниченный набор символов
  • Оба могут быть разделены на компоненты
  • Оба типа создают глобальную схему адресации
  • Оба с трудом "переводятся" друг в друга

    Если Вы решили, что уже четко убеждены, какой тип адресации лучше, читайте дальше.

    X.400 создавалась с адресацией по атрибутам. Большая их часть используется очень редко, например атрибуты физической доставки, необходимые в случае, когда электронное письмо в какой-то момент должно стать бумажным, быть заклеенным в конверт и доставленным почтальоном; или масса сетевых адресов, из которых популярен, пожалуй, только адрес X.121, иногда используемый для адресации на факсимильные аппараты в телефонной сети.

    Я подозреваю, что система адресации по атрибутам была ошибкой. Дело в том, что название атрибута заставляет человека, читающего адрес, считать, что это название действительно соответствует реальному положению вещей. Человеку кажется, что в поле "organisation" стоит обязательно название организации, а если в неком адресе присутствует поле "surname", то этот адрес принадлежит человеку.

    У пользователя также создается иллюзорное представление об иерархии адресов. Если в моем адресе стоит "O=rosnet;S=Belozerov", это означает, что я использую услуги сети Rosnet, а вовсе не то, что я в этой компании работаю.

    Следующая проблема состоит в использовании обязательного атрибута "страна". SITA, крупнейший сетевой оператор, работающий для авиакомпаний, в одностороннем порядке начал использовать значение "C=WW" от "world wide", поскольку многие его пользователи не хотели быть привязаны в адресе к стране, с которой они имели мало общего. Консорциум ISODE, имеющий офисы в Англии и США, использует атрибут "C=FI", поскольку его оператора угораздило быть зарегистрированным в Финляндии.

    РАЗВИТИЕ В X.400/88
    Был создан механизм, позволяющий большинству атрибутов быть записанными в кодировке Teletex (увы, это не помогло нашей несчастной кириллице - адрес до сих пор должен быть написан по-английски). Появился атрибут "Common Name" ("произвольное имя"), - создатели стандарта, видимо, решили, что довольно глупо говорить о фамилии циркулярного списка - вряд ли список имеет фамилию. Сейчас некоторые реализации содержат адрес Internet как новый атрибут адреса Х.400, что сильно облегчает жизнь шлюзам, но отнюдь не многочисленным пользователям Х.400/84, клиентские программы которых до сих пор не могут понять, что такое "Common Name".

    Другие полезные, но отнюдь не упрощающие адресацию новшества - "специальные значения ADMD". Пробел в этом атрибуте теперь обозначает примерно "доставь в любой ADMD страны, там они разберутся". "0" в этом поле означает, что PRMD не подключен ни к какому ADMD.

    СЛОВО В ЗАЩИТУ
    С "простой" адресацией в Internet тоже не все в порядке. Вот лучшие плоды моего путешествия по сети. Примеры реальны, изменены только некоторые параметры для того, чтобы не разглашать имен пользователей. Рекордсмен в категории "имя домена"
    SOME_USER@HP-SWITZERLAND-desk1////////HPMEXT1 /THIERRY#b#PARIDANT#o#HP8700#o#Y0.om.hp.com
    А вот лучшее из имен пользователей:
    GIS_+a_RCI_+L Givenname_Surname+i%MHS+d_20D08E2B01F53FDC-20D08E2B02F53FDC%RCI _Incorporated@mcimail.com
    Наиболее загадочная адресация из широко распространенных:
    70621.567@compuserve.com
    Конечно, большинство подобных адресов производится шлюзами. Internet не способствует, но и не препятствует таким шедеврам.

    Уведомления о доставке
    ПОЗИТИВНЫЕ И НЕГАТИВНЫЕ УВЕДОМЛЕНИЯ

    Термин "Уведомление о доставке" используется для обозначения как собственно этого уведомления ("да, письмо доставлено сюда"), так и обратного ("нет, письмо не может быть доставлено сюда").

    Internet Mail имел негативные уведомления с первого дня своей жизни. Часто в них включался текст исходного письма. К сожалению, формат уведомлений не был стандартизован. Это приводит к массе движущихся по сети сообщений на псевдоанглийском (каждый, кто выполнял роль администратора почты, помнит просьбы пользователей объяснить, что же, все-таки, это означает). Уведомление X.400, с другой стороны, представляет собой сжатую двоичную структуру с четко определенным форматом. Перевод следующего системного сообщения одной из почтовых программ Internet не является выдуманным и хорошо объясняет разницу в подходах: "Ваше письмо было переслано в сеть Х.400, что подразумевает выдачу уведомления о доставке. Структура этого уведомления предназначена для его использования системой Х.400. Наш шлюз приложил максимум усилий для того, чтобы превратить его в разумный текст. Мы извиняемся за его эзотерическое содержание". Коды ошибок в X.400 представляют собой числа, и возможность дописывать в уведомление какой-либо текст, например, трассировочную информацию, появилась лишь в редакции 1988 года. Коды ошибок покрывают большинство возможных ситуаций.

    ЧТО ТАКОЕ ДОСТАВКА?
    Одним из главных достоинств почты X.400 по сравнению с Internet Mail является то, что она построена по гораздо более жесткой модели. Момент доставки наступает, когда письмо переходит границу "района ответственности" агента передачи сообщений (MTA) и попадает в район ответственности агента пользователя (UA). Почта Internet менее четко стандартизована в этой области, многие реализации представлены одинаковыми приложениями с обоих "сторон барьера". Это приводит, мягко говоря, к некоторой неразберихе. (MTA или UA должен раскрывать псевдонимы пользователей? Файл .forward в Sendmail - это часть MTA или UA? Раскрытие циркулярного списка - это уже доставка или еще нет?)

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

    Есть одно исключение из этой жесткой модели - работа со шлюзами. Большинство шлюзов X.400 генерирует уведомление о доставке в момент прохождения письмом шлюза (а что им остается делать?). Некоторые шлюзы в факсимильную связь создают два уведомления: в момент доставки на шлюз и после того, как факс прошел (или не прошел, соответственно).

    СИТУАЦИЯ В INTERNET
    Многие пользователи Internet считают позитивное уведомление бесполезной услугой. Вряд ли они правы. Даже в благополучных Соединенных Штатах теряется 5% писем (статистика из Internet User s Guide). В наших условиях такое уведомление чаще всего реализуется в форме телефонного звонка: "Ты получил мое письмо?".

    Так или иначе, группа NOTARY IETF еще в 1994 году создала стандартные коды ошибок и спецификацию позитивного уведомления. С августа 1995 начали появляться приложения, поддерживающие эту спецификацию. Но, вспоминая, например, о почтенном возрасте популярнейшего до сих пор Sendmail, можно быть уверенным, что пройдет еще много времени, прежде чем Internet начнет поддерживать эти функции.

    Уведомления о получении
    X.400 имеет уведомления о получении, Internet нет. В данном случае вопрос достаточно прост. Internet Mail вообще не имеет функции, посылающей отправителю уведомление о том, что получатель прочел его письмо. Одна из новых рабочих групп IETF под названием RECEIPT, созданная в июле 1995, пытается определить спецификацию такого объекта, но пока безрезультатно. Именно неполная функциональная четкость Internet не позволяет решить, как быть с уведомлением о получении в разных сложных случаях, типа рассылки по списку, переадресации и т.п.

    К сожалению, среди пользователей Internet существует подход, согласно которому ограниченная функциональность является не недостатком, а достоинством Сети (мы с этим уже сталкивались, обсуждая вопрос о позитивном уведомлении о доставке). Приходится слышать утверждение, что уведомление о получении не принято в Internet только потому, что несправедливо заставлять пользователя платить за услугу, о которой он не просил (поскольку почтовая система рассматривает уведомление о получении как обычное письмо, движущееся от получателя к отправителю, вполне естественно, что оператор выставит счет за него получателю письма с заказанным уведомлением). Однако для решения подобной коллизии в Х.400/88-92 введено специальное поле заголовка, и эта полезная функция продолжает работать.

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

    X.400, как более предсказуемая в своем поведении и надежная, моет служить для ответственных, "денежных" приложений, в то время как Internet будет применяться как более дешевое, хотя и менее надежное решение.

    Константин Белозеров