Электронная почта в Internet
Электронная почта - один из важнейших информационных ресурсов Internet, самое массовое средством электронных коммуникаций. Любой из пользователей Internet может получить свой собственный почтовый ящик в сети. Если учесть, что через Internet можно принять или послать сообщения еще в два десятка международных компьютерных сетей, некоторые из которых не имеют on-line сервиса вовсе, то становится понятным, что почта предоставляет возможности в некотором смысле даже более широкие, чем просто информационный сервис Internet. Хорошим примером может служить доступ к архивам сети BITNET - документам и телеконференциям, которые ведутся на серверах списков (LISTSERVER) BITNET. Также общедоступны шлюзы к сетям FIDO, Relcom, Sprint и т.п.
Самым простым решением по организации обмена сообщениями напрашивается следующее. Допустим, что пользователь А имеет подключенный к некоторой сети передачи данных (СПД) Хост А. И пользователь Б с Хостом Б является абонентом той же сети. Тогда для передачи сообщений от А к Б необходимо организовать протокол обмена сообщениями (или просто, почтой) и этот протокол должен быть реализован на обеих хостах. Предположим, что СПД не предоставляет напрямую такого протокола, тогда на А и Б ложится вся нагрузка по приему/передаче почты. А что если пользователь является абонентом нескольких сетей? Тогда на его компьютере должно будет установлено все необходимое программное обеспечение, реализующее всевозможные протоколы. Нагрузка возрастет, если помимо программных интерфейсов необходимо будет устанавливать аппаратные.
Действительные проблемы возникают, когда оказывается, что удаленный хост (Б) недоступен по ряду причин:
- он мог сменить имя хоста и не уведомил об этом корреспондента;
- возможно его хост просто отключен или просто
- на данный момент не существует прямого маршрута от А к Б.
Во всех этих случаях почта не дойдет до хоста Б. В лучшем случае пользователь А получит уведомление о невозможности достичь Хост Б, а в худшем -- сообщение просто затеряется в СПД.
Таким образом, для надежной доставки сообщений был разработан подход, в котором Электронная почта во многом похожа на обычную почтовую службу. Корреспонденция подготавливается пользователем на своем рабочем месте либо программой подготовки почты, либо просто обычным текстовым редактором. Затем пользователь должен вызвать программу отправки почты (как правило, программа подготовки почты вызывает программу отправки автоматически). Стандартной программой отправки на Unix системах является программа sendmail. Sendmail работает как почтовый курьер, который доставляет обычную почту в отделение связи для дальнейшей рассылки. В Unix-системах sendmail сама является отделением связи. Она сортирует почту и рассылает ее адресатам. Для пользователей персональных компьютеров, имеющих почтовые ящики на своих машинах и работающих с почтовыми серверами через коммутируемые телефонные линии, могут потребоваться дополнительные действия. Так, например, пользователи почтовой службы Relcom должны запускать программу uupc, которая осуществляет доставку почты на почтовый сервер.
Для передачи электронной почты в Internet разработан специальный протокол Simple Mail Transfer Protocol (SMTP), который является протоколом прикладного уровня и использует транспортный протокол TCP. Однако совместно с этим протоколом используется и Unix-Unix-Copy (UUCP) протокол. UUCP хорошо подходит для использования телефонных линий связи. Большинство пользователей электронной почты Relcom реально пользуются для доставки почты на узел именно этим протоколом. Разница между SMTP и UUCP заключается в том, что при использовании первого протокола sendmail пытается найти машину-получателя почты и установить с ней взаимодействие в режиме on-line для того, чтобы передать почту в ее почтовый ящик. В случае использования SMTP почта достигает почтового ящика получателя за считанные минуты и время получения сообщения зависит только от того, как часто получатель просматривает свой почтовый ящик. При использовании UUCP почта передается по принципу "stop-go", т. е. почтовое сообщение передается по цепочке почтовых серверов от одной машины к другой, пока не достигнет машины-получателя или не будет отвергнуто по причине отсутствия абонента-получателя. С одной стороны, UUCP позволяет доставлять почту по плохим телефонным каналам, т.к. не требуется поддерживать линию все время доставки от отправителя к получателю, а с другой стороны, бывает обидно получить возврат сообщения через сутки после его отправки из-за того, что допущена ошибка в имени пользователя. Поэтому UUCP чаще всего используется для доступа к почтовому серверу организации из дома по коммутируемым каналам связи, а почтовый сервер организации отправляет далее сообщение по протоколу SMTP.
Форматы почтовых адресов.
Основой любой почтовой службы является система адресов. Без точного адреса невозможно доставить почту адресату. В Internet принята система адресов, которая базируется на доменном адресе машины, подключенной к сети. Например, для пользователя paul машины с адресом polyn.net.kiae.su почтовый адрес будет выглядеть как:
Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.
Таким образом, адрес состоит из двух частей: идентификатора пользователя, который записывается перед знаком "коммерческого эй" - "@", и доменного адреса машины, который записывается после знака "@". Такой тип адреса называется маршрутонезависимым (routeless). Т.е. в адресе нет прямого указания, через какие машины будет лежать маршрут почтового сообщения. Противоположным ему является адрес UUCP, который для нашего примера выглядит так:
net!kiae!su!polyn!paul
Здесь явно указываются промежуточные хосты. Маршрут доставки от отправителя до пользователя paul машины polyn будет следующим:
-> net -> kiae -> su -> polyn
Программа рассылки почты sendmail сама преобразует адреса формата Internet в адреса формата UUCP, если доставка сообщения осуществляется по этому протоколу.
Такой принцип доставки здесь был назван STOP-GO. Такое название обусловлено тем, что каждый промежуточный хост вносит ощутимую задержку к общему времени передачи. Дело в том, что UUCP-соединение -- это связка типа точка-точка, поэтому накладывается ограничение на число подключенных машин к передающему хосту в один момент времени. Также существуют временные ограничения, связанные с моментом соединения, его продолжительностью и т.д. Поэтому нельзя быть уверенным в том, что промежуточный хост передаст почту, как только она будет доставлена к нему. На это может уйти даже несколько суток, если почтовый сервер загружен другими сообщениями. Далее мы не будем рассматривать почту UUCP, т.к. она устарела, хотя до сих пор применяется как самый дешевый способ доставки почты для организаций и частных лиц.
Компоненты электронной почты Интернет
На рис. 2 приведены компоненты системы электронной почты в рамках сети Internet.
Термин "агент" довольно часто встречается в документации Интернет. "Агент" - это программа специального назначения, выполняющая действия для пользователя или другой программы. В большинстве случаев почтовая программа называется агентом пользователя (User Agent, UA). Точно так же агент передачи почты (Message Transfer Agent, МТА) представляет собой клиент или сервер, выполняющий задачи по доставке или получению почты на сетевом компьютере.
В принципе, пользовательский агент отделен от агента передачи почты. Конечно, их можно объединить в одной программе, но все равно это будут отдельные логические модули. Будучи взаимосвязаны, оба агента выполняют совершенно различные функции. Пользователи системы Unix хорошо знакомы с такими программами, как МН, Mail, Elm, Mush и Pine. Для пользователей Windows самой известной программой, возможно, является Microsoft OutLook Express. Все эти программы - агенты пользователя. Каждая обеспечивает интерфейс между пользователем и системой электронной почты Интернет. Большинство современных программ позволяют отправлять почту с помощью SMTP, принимать почту по POP3 и IMAP4 протоколам, а так же читать группы новостей (NNTP).
Система электронной почты представлена агентами передачи почты, МТА. До того как обсудить задачи пользовательского агента, необходимо узнать немного больше о том, что же такое МТА. МТА умеют устанавливать соединение для связи с другими МТА. Протоколом этого соединения, как правило, является простой протокол передачи почты (Simple Message Transfer Protocol, SMTP).