Э. Таненбаум - Компьютерные сети. (4-е издание) (DJVU) (1130092), страница 184
Текст из файла (страница 184)
Каждое из них подтверждается или отвергается индивидуально. Несмотря на то, что попытки пересылки сообщения некоторым получателям оказываются неудачными (например, из-за отсутствия адресатов), это сообщение все равно может быть доставлено остальнылт адресатам, числящимся в списке рассылки. Наконец, хотя синтаксис четырехсимвольных команд строго определен, синтаксис ответов не столь строг.
Правила определяют только числовой код в начале строки. Все, что следует за этим кодом, может считаться комментарием и зависит от конкретной реализации протокола. Чтобы лучше понять, как работают БМТР и другие рассмотренные в этой главе протоколы, попробуйте сами поработать с ними, В любом случае, для начала найдите машину, подключенную к Интернету. В системе ?)?т??Х наберите в командной строке; Се1пес щат1.1вр.сощ 25 подставив вместо юат!.тпт.сот?у?т?Б-имя почтового сервера провайдера. В системе утт!пс?отюз щелкните на кнопке пуск, затем на кнопке Выполнить и наберите команду в диалоговом окне. В результате выполнения этой команды будет установлено се!пес-соединение (то есть соединение ТСР) с портом 25 данной машины.
Как было показано в табл. 6.3, порт 25 является ЯМТР-портом. В ответ на введенную команду вы получите что-то вроде этого; Тгутпо 192.30.200.66., Соппесвеб Ьо щат1.твр.сов Евсаре спагассег тв '"1'. 220 щат1.твр.сап 5щат1 т!74 геабу ав Тпо, 25 5ерв 2002 13;26 +0200 Первые три строки посылаются се!пеь и поясняют для вас происходящее. Последняя строка посылается сервером БМТР удаленной машины и сообщает о го- 686 Глава 7. Прикладной уровень тонности к общению с вашей машиной и приему почты. Чтобы узнать о доступ- ных командах, наберите НЕЕР Начиная с этого момента, возможен обмен последовательностями команд, показанными в листинге 7В. Начинаться общение должно с команды клиента НЕЕО. Стоит отметить, что использование строк АЗСП-текста в качестве команд не случайно.
Большинство протоколов Интернета работают именно таким образом. Применение АЯСП-текста упрощает тестирование и отладку протоколов. Тестирование можно производить, набирая команды вручную, как было показано ранее. Легко читаются выведенные в ответ сообщения. Несмотря на то, что протокол ЯМТР определен довольно четко, все же могут возникать определенные проблемы. Одна из них связана с длиной сообщений. Некоторые старые реализации не поддерживали сообщения длиннее 64 Кбайт, Еше одна проблема связана с тайм-аутами. Если таймеры клиента и сервера настроены на разное время ожидания, один из них может внезапно разорвать соединение, в то время как противоположная сторона будет продолжать передачу. Наконец, иногда могут возникать бесконечные «почтовые штормым Например, если хост 1 хранит список рассылки А, а хост 2 — список рассылки В и они содержат записи друг о друге, то письмо, посланное по одному из списков, будет создавать бесконечный объем трафика, пока кто-нибудь не заметит это.
Для решения некоторых из этих проблем был разработан расширенный протокол ЗМТР, ЕБМТР. Он описан в КРС 2821. Клиенты, желающие использовать его, должны начинать сессию связи с посылки приветствия ЕНЕО вместо НЕЕО. Если команда не принимается сервером, значит, сервер поддерживает только обычный протокол ЯМТР и клиенту следует работать в обычном режиме. Если же ЕНЕО принято, значит, установлена сессия ЕБМТР и возможна работа с новыми параметрами и командами. Доставка сообщений Ло сих пор мы предполагали, что все пользователи работают на машинах, способных посылать и получать электронную почту. Как мы уже знаем, электронная почта доставляется, когда отправитель устанавливает ТСР-соединение с получателем и посылает по нему сообщения.
Такая модель прекрасно работала тогда, когда все хосты сети АЕРАХЕТ (а позднее — Интернет) были, по сути, постоянно на линии и могли принимать ТСР-соединения. Однако с появлением пользователей, связывающихся с провайдерами с помошью модема, такой подход перестал оправдывать себя. Проблема вот в чем: что будет, если Элинор захочет отправить письмо Кэролайн, а та в данный момент не работает в Интернете? Получается, что Элинор не сможет установить ТСР- соединение с Кэролайн, следовательно, невозможно будет запустить протокол 8МТР, и Кэролайн так и не получит поздравление с днем рождения.
Одно из решений заключается в создании агента передачи сообшений на машине провайдера, который бы принимал и хранил почту для своих пальзовате- Электронная почта 687 лей в их почтовых ящиках. Поскольку такой агент может быть на линии посто- янно, злектронная почта может отправляться ему круглосуточно. РОРЗ пе е очи Пользовательский Агент Интернет сообщений агент очтовый Хост- ящик приемник Хост- Постоянное отправитель подключение е Пользовательский агент Агент ередвчи РОРЗ- ентский пк Почтовый Машина ящик проввйдерв б Модемное подключение Хост- отпревитель Рио.
7.5. Отправка и прием почты, когда приемник постоянно находится в подключенном состоянии и пользовательский агент работает не одной машине с агентом передачи сообщений (е); прием почты при модемном соединении получателя с провейдером (б) Протокол РОРЗ начинает свою работу, когда пользователь запускает почтовый редактор. Последний дозванивается до провайдера (если только машина уже не находится в подключенном состоянии) и устанавливает ТСР-соединение с агентом передачи сообщений с использованием порта 110.
После установки соединения протокол РОРЗ проходит три последовательных состояния. 1. Авторизация. 2. Транзакции. 3. Обновление. К сожалению, такое решение создает новую проблему: как пользователю забрать свою почту у агента передачи сообщений провайдера7 Ответ таков: следует создать специальный протокол, который позволил бы пользовательскому агенту (на машине клиента) соединиться с агентом передачи сообщений провайдера (на машине провайдера) и скопировать хранящуюся для него почту.
Одним из таких протоколов является РОРЗ (Розг 01йсе Рготосо1 у. 3 — почтовый протокол, 3-я версия), определенный в документе КЕС 1939. Ситуация, при которой доставка осуществляется в условиях постоянного соединения с Интернетом отправителя и получателя, показана на рис. 7.5, а. Иллюстрация ситуации, в которой отправитель находится в текущий момент на линии, а приемник — нет, приведена на рис. 7.5, б. 888 Глава?. Прикладной уровень Авторизация связана с процессом входа пользователя в систему. В состоянии транзакций пользователь забирает свою почту и может пометить ее для удалещш из почтового ящика. В состоянии обновления происходит удаление помеченной корреспонденции.
Можно посмотреть, как все это происходит, набран команду вида се)пет ща)1двр.сощ ПО, где таЩхсот следует заменить на РЮ-имя почтового сервера провайдера. Те1пес устанавливает ТСР-соединение с портом 110, прослушиваемым РОРЗ-сервером. После установки ТСР-соединения сервер посылает АВСП-сообщение, объявляя о своем присутствии. Обычно оно начинается с +ОК, затем следует комментарий, Возможный сценарий после установки ТСР-соединения показан в листинге ?А.
Как н раньше, строки, начинающиеся с С:, говорят о том, что данная команда исходит от клиента (пользователя), а начинающиеся с 5: — что это сообщения сервера (агента передачи сообщений на машине провайдера). Листинг 7.4. Получение трех сообщений по протоколу РОРО 5: +ОК РОРЗ-сервер готов С: 05Ей саго)уп 5: +ОК С: РА55 недесаб)ев 5: ОК вход в систему произведен С: 115Т 5: 1 2505 5: 2 14302 5: 3 8122 5: С: йЕТй 1 5: (отправляет сообщение 1) С: ОЕЕЕ 1 С: йЕТй 2 5: (отправляет сообщение 2) С: ОЕЕЕ 2 С: йЕТй 3 5: (отправляет сообщение 3) С: ОЕЕЕ 3 С: 0011 5: яОК Конец соединения с РОРЗ-серверои В состоянии авторизации клиент должен сообщить имя пользователя и пароль.
После успешного входа в систему клиент может послать команду С15Т для запроса списка писем, хранящихся в почтовом ящике. Каждая строка списка соответствует одному письму, в ней указываются его номер и размер. Точка является признаком конца списка. После этого пользователь может запросить сообщения командой йЕТй и пометить их для удаления командой ОЕЕЕ. После получения (и, возможно, установки меток удаления) всех писем пользователь посылает команду 00!Т для завершения состояния транзакций и входа в состояние обновления.
После удаления сервером всех сообщений он посылает ответ и разрывает ТСР-соединение. Электронная почта 689 Несмотря на то, что протокол РОРЗ действительно поддерживает возможность получения одного или нескольких писем и оставления их на сервере, большинство программ обработки электронной почты просто окачивают все письма и опустошают почтовый ящик на сервере. Такие действия означают, что реально хранится только опна копия писем — на жестком диске пользователя. Если с ним что-то случается, корреспонденция пропадает безвозвратно. Теперь подведем небольшие итоги того, как происходит работа с электронной почтой клиентов провайдера. Элинор создает сообщение для Кэролайн с помощью редактора электронной почты (то есть пользовательского агента) и щелкает на значке, чтобы отослать его. Программа передает письмо агенту передачи сообщений на хосте Элинор. Агент передачи сообщений видит, что письмо адресовано саго!упФхуг.сов, и использует ПХЗ для поиска записи МХ для хуасот (где х1гасот — провайдер Кэролайн).