Основные протоколы интернет

Протоколы электронной почты: SMTP, POP, IMAP

Разбить на страницы
Показывать лекцию целиком

Простой протокол электронной почты (SMTP — Simple Mail Transfer Protocol)

Одна из наиболее популярных сетевых услуг – это электронная почта (e-mail). TCP/IP протокол, который поддерживает сообщения электронной почты в Интернете — это простой протокол электронной почты (SMTP — Simple Mail Transfer Protocol). Он описывает систему команд и соглашений для посылки сообщений к другим компьютерным пользователям, основанную на адресах электронной почты. SMTP обеспечивает обмен почтовыми сообщениями между пользователями одной и той же или различных компьютерных сетей. Система поддерживает:

  • посылку одиночных сообщений одному или более получателям;
  • посылку сообщений, включающих в себя текст, голосовые сообщения, видео или графические материалы;
  • посылку сообщений для пользователей сетей, не входящих в Интернет.
  • Агент пользователя (User Agent – UA)

    Начнем с того, что надо отделить работу сервера клиента от почтовой сети, так чтобы он мог иметь режим работы, независимый от почтовой сети, и наоборот. Чтобы его повседневная работа не влияла на почтовую сеть, введем агента пользователя (User Agent – UA). Аналогичный компонент требуется для почтового сервера – агент почтовой передачи (Mail Transfer Agent). Эти компоненты будут представлять соответственно клиента и почтовый сервер в сети.

    Агент пользователя подготавливает сообщение, адрес и вкладывает сообщение в конверт (см. например, систему Microsoft Outlook). На рис. 14.1. показаны эти компоненты для связи двух клиентов почтовой сети.

    На рис. 14.1. показаны агенты пользователя (UA-АП) и агенты почтовой передачи (MTA – ПА), связь осуществляется между двумя клиентами сети Интернет.

    (рис 14.1) Почтовый Агент передачи

    Следующий рисунок ( рис. 14.2.) воспроизводит более сложный случай, когда используются транзитные серверы сети Интернет. Транзитные участки не обязательно применяют набор протоколов TCP/IP для посылки почтовых сообщений. В этом случае на сети могут появиться почтовые шлюзы, которые могут преобразовывать SMTP-формат в другие форматы перед посылкой пользователю.

    (рис 14.2) Применение почтового шлюза

    Теперь рассмотрим основные компоненты.

    Агент пользователя без деталей реализации определяется в SMTP. АП – это обычная программа для передачи и получения почты. Одна из наиболее популярных программ — агент пользователя Outlook Express. Большинство агентов пользователя используют специальный интерфейс (типы окон) для взаимодействия клиент-система.

    Услуги, обеспечиваемые агентом пользователя

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

    Оформление письма

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

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

    Чтение письма

    Агент пользователя позволяет читать входящие или накопленные письма. Для этого он предоставляет список входящих писем, с отметкой — от кого (имя), адрес отправителя и дата поступления. Дополнительно может быть указан объем письма. Из дополнительных услуг обычно предоставляется отметка нового или непрочитанного письма.

    Ответ на письмо

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

    Пересылка входящего письма

    Пересылка предоставляет возможность переслать текст третьему лицу. При этом пользователю выводится форма, где указано, что это пересылка (знак "Fw:"); пользователь должен вставить адрес пересылки и может дополнить или исправить пересылаемый текст.

    Работа с почтовым ящиком

    Агент позволяет хранить все письма рассортированными по группам, пока они не будут удалены пользователем. При этом обеспечивается упорядочивание по различным критериям – по алфавиту, по фамилии приславшего, по дате и т. п.

    Посылка почты

    На рис. 14.3. показано прохождение почтового сообщения от абонента с именем Alex@mail2.spez.com к почтовому серверу абонента с именем Bob@mail3.param.ru по протоколу SMTP. Для посылки почты пользователь с помощью программы-агента порождает отправление, очень похожее на почтовое отправление. Оно содержит конверт и сообщение.

    (рис 14.3) Пересылка по сети почтовых сообщений по протоколу SMTP

    Конверт

    Конверт обычно содержит адрес отправителя и получателя и другую информацию.

    Сообщение

    Сообщение содержит заголовок и само содержание (тело сообщения). Заголовок определяет отправителя, получателя и субъект (название) передачи и некоторую другую информацию. Тело сообщения содержит информацию, которую надо прочесть получателю.

    Получение письма

    Программа-агент пользователя при подключении к почтовому серверу получает все письма для данного пользователя и информирует его о наличии писем. Обычно информация состоит из указания для каждого письма отправителя, субъекта письма и времени, когда письмо было получено или послано. Если пользователь готов читать письма, он выбирает одно из них и дает команду на раскрытие его содержания на экране.

    Адресация

    Адресация почтовых сообщений аналогична той, что принята в системе доменных имен (Domain Name System, DNS). Почтовый адрес имеет вид Alex@spez.com, где Alex – символическое имя, spez.com – почтовый домен.

    Локальная (местная) часть адреса определяет имя специального файла, названного по имени почтового ящика, где накапливается вся почта пользователя с целью обработки ее программой-агентом отправителя.

    Вторая часть адреса – доменное имя. Дается для выбора одной или более главных машин (хост) для посылки и получения электронной почты; иногда эти машины называют почтовыми станциями. Доменное имя присваивается каждой почтовой станции согласно базе доменных имен или по логическому имени (например, по имени организации).

    Электронный адрес становится более сложным, когда используется почтовый шлюз. В этом случае электронный адрес должен определять оба адреса – адрес шлюза и адрес реального получателя. Доменное имя должно определять имя почтового шлюза, в базе данных доменных имен и локальной части должен быть определен локальный физический адрес, компьютер присоединяет номера сетевого и пользовательского почтового ящика. Большинство почтовых систем не использует почтовую адресацию, определяемую SMTP, — это может породить проблемы и ошибки.

    Задержка в доставке

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

    Задержка на стороне отправителя

    Отправляемое сообщение может быть задержано стороной передачи. SMTP предусматривает, что отправитель должен располагать системой размещения в очереди, в которой сообщение накапливается, перед тем как быть переданным. После того как агент пользователя создаст сообщение, оно доставляется для постановки в очередь, которая является накапливающей структурой. Система почтовой передачи периодически проверяет почтовый накопитель и рассматривает возможность передачи. Это зависит от того, может ли получить заданный адрес сервера доступ через DNS. Если сообщение не доставлено в определенный период (обычно от пяти до трех дней), почта возвращается отправителю.

    Задержка на приемной стороне

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

    Задержка среды передачи

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

    Псевдоним (групповое имя)

    SMTP позволяет использовать только одно имя, псевдоним, позволяющий последовательную различную адресацию — это называют расширением "один ко многим". Также отдельный пользователь может обладать различными адресами — это называется расширение "много к одному". Такие операции должны опираться на включение средств расширения на обоих концах ( рис. 14.4.), в частности средств буферизации – накопления (spooling).

    (рис 14.4) Расширение по групповому имени

    Расширение "один ко многим"

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

    Расширение "много к одному"

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

    Агент почтовой передачи

    Реальная передача происходит через почтового агента передачи. Чтобы передать сообщение, система должна иметь клиентского почтового агента, а приемная сторона должна иметь агента почтового сервера. Протокол SMTP не предъявляет специальных требований к почтовым агентам. Он определяет команды и отклики, которые должны посылаться назад и далее. Каждая сеть свободна в выборе пакета программ для реализации. Далее в этой лекции еще будет обсуждаться механизм передачи SMTP. Однако вначале представим полную картину двусторонней передачи электронной почты, как это определено SMTP. Рис. 14.5. иллюстрирует процесс посылки и получения электронной почты, как это было рассмотрено ранее. Для получения и передачи сообщения в соответствии с протоколом SMTP пользовательский интерфейс не является необходимым, но создает дружественный диалог с компьютером, как это, например, сделано в Outlook Express.

    (рис 14.5) Основные составляющие системы электронной почты

    На этом рисунке протокол SMTP используется два раза, между передатчиком или передатчиками и сервером и между двумя почтовыми серверами. Между почтовым сервером и получателем необходимо применить другой протокол.

    Команды и отклики

    SMTP использует команды и отклики для передачи сообщения между почтовыми агентами (MTA) клиента и сервера.

    Команды

    Команду посылают от клиента к серверу. Она содержит ключевое слово и следующие за ним ноль или более аргументов. В SMTP определяется 14 команд. Первые пять — обязательные команды; любая реализация почты должна поддерживать эти пять команд. Следующие три часто используются и очень рекомендуются. Последние шесть команд применяются редко. Команды перечислены в таблице 14.1 и ниже рассмотрены более детально.

    Команды
    Ключевое слово Аргумент(ы)
    HELLO Имя хоста отправителя
    MAIL FROM Отправитель сообщения
    RCPT TO Предназначенный получатель сообщения
    DATA Содержание (тело сообщения)
    QUIT Завершение соединения
    RSET Прерывание текущего действия
    VRFY Проверяемое имя получателя
    NOOP Проверка состояния получателя
    TURN Смена положения отправителя и получателя ( в настоящее время не используется)
    EXPN Почтовый список расширения
    HELP Имя команды
    SEND FROM Предназначенный получатель сообщения
    SMOL FROM Предназначенный получатель сообщения
    SMAL FROM Предназначенный получатель сообщения
  • HELLO. Эта команда используется клиентом для идентификации самого себя. Аргумент — доменное имя хоста клиента.
  • MAIL FROM. Эта команда используется клиентом для идентификации отправителя сообщения. Аргумент содержит адрес отправителя электронной почты (локальную часть и доменное имя).
    MAIL FROM: berlin@sut.ru
  • RCPT. Команда используется клиентом для идентификации получателя сообщения. Аргумент — адрес электронной почты получателя. Если имеется много получателей, команда повторяется. Формат показан ниже.
    RCPT TO: jenifer@edu.com
  • DATA. Команда используется для посылки реального сообщения. Все строки, следующие за символами, рассматриваются как почтовое сообщение.
    DATA
    Этим письмом я подтверждаю
    свое согласие на издание книги.
  • QUIT. Команда, завершающая соединение. Ее формат:
    QUIT
  • RSET. Команда (reset), прерывающая текущее действие почты. Накопленная информация об отправителе и получателе удаляется.
  • VRFY. Команда (verify), используемая для верификации адреса получателя, который посылается как аргумент. Отправитель может запрашивать подтверждение получателя, что имя получателя идентифицировано правильно. Ее формат:
    VRFY: jenifer@edu.com
  • NOOP. Команда (operation), используемая клиентом для проверки состояния получателя. Это требует ответа от получателя. Ее формат:
    NOOP
  • TURN. Команда позволяет отправителю и получателю перейти в положение, при котором отправитель становится получателем и наоборот. Однако большинство современных реализаций SMTP не поддерживает этой команды. Ее формат:
    TURN
  • EXPN. Команда (expand) запрашивает хост получателя, чтобы расширить список, как это указано в аргументах, и вернуть адреса почтовых ящиков получателей, которые включаются в этот лист. Ее формат:
    EXPN: x,y,z
  • HELP. Команда запрашивает получателя, чтобы получить информацию о команде, содержащейся в аргументе. Ее формат:
    HELP: mail
  • SEND FROM. Команда, определяющая, что почта может быть доставлена терминалу получателя, а не в почтовый ящик. Если получатель не зарегистрирован, то почта возвращается обратно. Аргументом является адрес отправителя. Формат показан ниже:
    SEND FROM: berlin@edu.com
  • SMOL FROM. Команда (посылается в почтовый ящик или терминал), определяющая, что почта может быть доставлена терминалу или в почтовый ящик получателя. Это означает, что если получатель зарегистрирован, то доставка осуществляется в терминал, если получатель не зарегистрирован — только в почтовый ящик. Аргумент — адрес отправителя. Формат показан ниже:
    SMOL FROM: berlin@edu.com
  • SMAL FROM. Команда (посылается в почтовый ящик и терминал), определяющая, что почта может быть доставлена терминалу получателя и в почтовый ящик. Если получатель зарегистрирован, почта будет доставлена в почтовый ящик и терминал. Почта доставляется только в почтовый ящик, если отправитель не зарегистрирован. Аргумент — адрес отправителя. Формат показан ниже:
    SMAL FROM: berlin@edu.com
  • Отклики

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

  • 2yz (положительное подтверждение завершения). Первая цифра 2 (цифра 1 сейчас не используется) показывает, что требуемая команда успешно завершена и можно передавать следующую команду.
  • 3yz (положительное промежуточное подтверждение). Если первая цифра 3, это означает, что требуемая команда принята, но получатель нуждается в большей информации для завершения обработки.
  • 4yz (отрицательное переходное подтверждение). Если первая цифра 4, это означает, что требуемая команда должна быть отклонена, но состояние ошибки временное. Команда может быть передана опять.
  • 5yz (отрицательное постоянное подтверждение завершения). Если первая цифра 5, это означает, что требуемая команда должна быть отклонена. Команда не может быть передана повторно.
  • Вторые и третьи цифры сообщают дополнительные детали об отклике. Табл. 14.2 содержит список некоторых откликов.

    Отклики
    Код Описание
    Положительное подтверждение завершения
    211 Системное состояние или отклик на справку
    214 Справочное сообщение
    220 Готовность к обслуживанию
    221 Завершение обслуживания передающего канала
    250 Требуемая команда завершена
    251 Пользователь не местный: сообщение должно быть передано далее
    Положительное промежуточное подтверждение
    354 Начало ввода почты
    Отрицательное переходное подтверждение
    421 Обслуживание не доступно
    450 Почтовый ящик недоступен
    451 Команда прервана: местная ошибка
    452 Команда прервана: недостаточно памяти
    Отрицательное постоянное подтверждение завершения
    500 Синтаксическая ошибка: неопознанная команда
    501 Синтаксическая ошибка в параметрах или аргументах
    502 Команда не выполнена
    503 Неправильная последовательность команд
    504 Команда временно не выполнена
    550 Команда не выполнена: почтовый ящик недоступен
    551 Пользователь не местный
    552 Требуемое действие прервано: переполнение местной памяти
    553 Требуемое действие не принято к исполнению: недопустимое имя почтового ящика
    554 Неудавшийся переход

    Фазы передачи почты

    Процесс передачи почтовых сообщений осуществляется в три фазы: установление соединения, передача почты и подключение оконечного устройства.

    Установление соединения

    После того как клиент установит соединение TCP к заранее известному порту 25, сервер SMTP начинает фазу соединения. Эта фаза включает следующие три ступени, которые иллюстрируются на рисунке 14.6.:

    (рис 14.6) Установление соединения
  • Сервер посылает код 220 (Готов к обслуживанию), чтобы сказать клиенту, что он готов принять почту. Если сервер не готов, то он посылает код 421 (Обслуживание не готово).
  • Клиент посылает сообщение HELLO, чтобы идентифицировать себя, используя доменное имя адреса. Этот шаг необходим, чтобы информировать сервер доменного имени клиента. Напомним, что во время установления TCP отправитель и получатель знает друг друга только по IP-адресам.
  • Сервер отвечает кодом 250 – "Требуемая команда завершена" или другим кодом в зависимости от ситуации.
  • Передача сообщения

    После того как соединение будет установлено между SMTP-клиентами и сервером, можно обменяться одиночным сообщением между отправителем и одним или более получателями. Эта фаза включает восемь шагов. Шаги 3 и 4 повторяются, если есть более чем один получатель ( рисунке 14.7.).

    (рис 14.7) Передача сообщения
  • Клиент посылает сообщение MAIL FROM, чтобы представить отправителю почтовый адрес отправителя (имя почтового ящика и доменное имя). Этот шаг необходим, чтобы дать серверу адрес для возврата ошибок или для доклада о продвижении сообщений.
  • Сервер отвечает кодом 250 или другим соответствующим кодом.
  • Клиент посылает сообщение RCPT TO (получатель), который включает почтовый адрес получателя.
  • Сервер отвечает кодом 250 или другим соответствующим сообщением.
  • Клиент посылает сообщение DATA, чтобы инициализировать передачу сообщений.
  • Сервер отвечает кодом 354 (Начало ввода почты) или другим подходящим сообщением.
  • Клиент посылает содержание сообщения в виде последовательности строк. Каждая строка завершается двумя символами конец строки (возврат каретки и продвижение на другую линию). Конец сообщения содержит только метку окончания строки.
  • Сервер отвечает кодом 250 или соответствующим кодом.
  • Окончание соединения

    После того как сообщение будет успешно передано, клиент заканчивает соединение. Эта фаза имеет два шага ( рис. 14.8.).

    (рис 14.8) Окончание соединения
  • Клиент посылает команду QUIT.
  • Сервер отвечает кодом 221 или соответствующим другим кодом.
  • После фазы окончания соединения TCP-соединение должно быть завершено.
  • Многоцелевое расширение интернет-почты

    Многоцелевое расширение интернет-почты (Multipurpose Internet Mail Extensions – MIME) улучшает возможности протокола SMTP [33, 34, 35, 38, 39, 40]. Этот протокол может посылать в терминалы только 7-битовые форматы в коде ASCII. Другими словами, он имеет ограничения. Например, не могут быть использованы языки, которые не поддерживают 7-битовые символы (французский, немецкий, иврит, русский, китайский, японский). Также нельзя использовать его для посылки двоичных файлов или посылки видео- или аудиоинформации.

    Многоцелевое расширение интернет-почты (MIME) — дополняющий протокол, позволяющий передавать сообщения, используя SMTP-данные, которые не имеют вид ASCII. MIME — не почтовый протокол и не отменяет SMTP; он только его расширяет.

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

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

    MIME определяет пять заголовков, которые могут быть дополнены к исходной секции заголовков SMTP для определения параметров преобразования:

  • MIME – Version (MIME – Версия).
  • Content – Type (Содержание – Тип).
  • Content — Transfer – Encoding (Содержание – Передача – Кодирование).
  • Content – Id (Содержание – Идентификатор).
  • Content – Description (Содержание — Описание).
  • Рисунок 14.9. показывает исходный заголовок и расширенный заголовок. Рассмотрим их более детально.

    (рис 14.9) Заголовок MIME

    MIME – Version

    В заголовке определяется используемая версия многоцелевого расширения. Если текущая версия 1.1, то:

    MIME – Version 1.1

    Content – Type

    Этот заголовок определяет тип данных в используемом информационном блоке сообщения. Тип содержания и подтип содержания разделяется наклонной чертой ("слеш"). В зависимости от подтипа, заголовок может содержать другие параметры.

    Content – Type: <type/subtype; parameters>

    MIME позволяет семь различных типов данных. Они перечислены в таблице 14.3 и рассмотрены ниже более детально.

    Типы и подтипы MIME
    Тип Подтип Описание
    Текст Обычный Неформатированный текст
    Из многих частей Смешанный Информационный блок содержит упорядоченные различные типы данных
    Параллельный То же самое, что выше, но неупорядоченное
    Обзорный Похожий на смешанный, но по умолчанию /RFC822*
    Альтернативный Часть различных версий в одинаковом сообщении
    Сообщение RFC822 Информационный блок включает в себя сообщение
    Частичный Информационный – это фрагмент большого сообщения
    Внешний блок Информационный блок является только ссылкой на другое сообщение
    Изображение JPEG Изображение в формате JPEG
    GIF Изображение в формате GIF
    Видео MPEG Видео в MPEG-формате
    Аудио Базовое Одиночный канал кодированной речи на 8 кГц
    Прикладной текст PostScript Язык описаний страниц, разработанный фирмой Adobe Systems
    Поток октетов Двоичные данные общего вида (восьмибитовые байты)
  • Текст. Исходное сообщение в 7-битовом формате ASCII и не нуждающееся в MIME-преобразовании. Имеется только один подтип, в настоящее время используется тип: обычный.
  • Из многих частей. Содержания блока информации многообразное и состоит из независимых частей. Заголовок из многих частей необходим, чтобы определить границу между каждой частью. Граница используется как параметр. Это символ строки, который повторяется перед каждой частью на отдельной линии и имеет предшествующие символы — два дефиса.

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

    Content-Type: multipart/mixed; boundary=xxxx
    —xxxx
    Content-Type: text/plain;
    ........................................................
    —xxxx
    Content-Type: image/gif;
    ........................................................
    —xxxx
  • Сообщение. В типе "сообщение" информационный блок содержит непосредственное почтовое сообщение, его часть или указатель на сообщение.

    Используют три подтипа: RFC822, частичный и внешний информационный блок. Подтип RFC822 применяется, если информационный блок включается в другое сообщение (в том числе заголовок и информационный блок). Подтип частичный нужен, если исходное сообщение фрагментировано в различные почтовые сообщения и это почтовое сообщение — одна из частей. Фрагменты должны быть собраны заново с помощью MIME. При этом должны быть дополнены три параметра: id (идентификатор), number (номер), total (всего). Введение id идентифицирует все сообщение, он представлен во всех фрагментах. Номер определяет последовательный порядок фрагментов. "Всего" определяет число фрагментов, составляющих исходное сообщение. Вот пример сообщения с тремя фрагментами:

    Content-Type: message/partial;
    Id="berlin.sut.ru";
    Number=1;
    Total=3;
    ........................................................
    ........................................................

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

    Content-Type: message/partial;
    Name=book";
    site=sut.ru;
    access-type="ftp";
    ........................................................
    ........................................................
  • Изображение. Исходное сообщение "неподвижное изображение" указывает, что это не анимация. Применяется два подтипа: Joint Photographic Experts Group (JPEG), который использует сжатие изображения, и Graphics Interchange Format (GIF).
  • Видео. Исходное сообщение "изображение, изменяющееся по времени (анимация)" имеет только один тип — Motion Picture Experts Group (MPEG). Если анимационное изображение содержит звук, он должен быть послан отдельно с использованием типа "содержание аудио".
  • Приложение. Исходное сообщение "тип данных" предварительно не определяется. Имеется только два подтипа: поток октетов и PostScript. Поток октетов применяют, когда данные не могут быть интерпретированы как последовательность 8-битовых байтов (двоичный файл). PostScript нужен, когда данные в формате Adobe Post Script.
  • Содержание — Передача – Кодирование

    Заголовок определяет метод кодирования сообщения для передачи в виде нулей и единиц.

    Content – Transfer – Encoding: <type>

    Пять типов кодирования (поле <type>) приведены в Табл. 14.4

    Содержание – передача – кодирование
    Тип Описание
    7 бит NVT ASCII-символы и короткие линии
    8 бит Не-ASCII-символы и короткие линии
    Двоичный Не-ASCII-символы с не лимитированной длиной линии
    Базовый 64 6-битовые блоки данных, закодированные по 8 бит ASCII-символами
    Предназначенный для печати Не-ASCII-символы, закодированные как последовательность знаков ASCII
  • 7 бит. 7-битовое NVT ASCII-кодирование. Хотя не надо делать никаких преобразований, но число символов в строке не должно превышать 1000 символов. ASCII определяет 128 букв, включая алфавит, числа, знаки пунктуации и сигналы. Заглавная буква "C", например, кодируется 100011, а цифра "3" — 0110011. Таким образом, с помощью нулей и единиц можно закодировать 128 символов.
  • 8 бит. Это 8-битовое кодирование, одна из важнейших модификаций кода ASCII, называемая расширенный ASCII. К 7-битовому коду добавляется еще один бит и к используемым 127 символам можно добавлять другие, например, иностранные буквы или другие полезные символы. 8-битовые не-ASCII-символы передаются с длиной 8-й строки не более 1000 символов. MIME не делает никакой перекодировки. Основные протоколы STMP могут передать не-ASCII-символы. Это, однако, не рекомендуется. Типы "Базовый 64" и "Предназначенный для печати" предпочтительнее.
  • Двоичный. Это 8-битовое кодирование. Не ASCII-символы передаются с длиной 8 бит. Протоколы STMP могут передать не ASCII-символы. Это, однако, не рекомендуется. Типы "Базовый 64" и "Предназначенный для печати" предпочтительнее.
  • Base 64 (Базовый 64). Это решение предложено для передачи данных, представленных в виде байтов, где старший бит не обязательно равен нулю. BASE 64 преобразует этот тип данных в символы, пригодные для печати, которые можно передавать как ASCII-символы, или в набор символов, поддерживаемых основными программами для передачи почты.

    BASE 64 разделяет двоичные данные (представляющие поток бит) в 24-битовые блоки. Каждый блок разделен на четыре секции, каждый содержит 6 бит ( рис. 14.10.). Слово в 6 разрядов позволяет закодировать 26 = 64 символа.

    Каждая секция интерпретируется как один символ в соответствии с таблица 14.5Значение 6 разрадного кода - 0, Код ASCII - А

    (рис 14.10) Base 64 (Базовый 64)
    Кодирование в BASE 64
  • (рис 14.11) Приспособленный к печати
  • Содержание – Идентификатор (Content — Id)

    Этот заголовок уникально идентифицирует полное сообщение:

    Content – Id: id=<content.id>

    Содержание – Описание (Content – Description)

    Заголовок определяет, является ли информационный блок изображением, аудио- или видеоинформацией:

    Content – Description: <description>

    Доставка почты

    Доставка почты от отправителя к получателю проходит через три стадии ( рис. 14.12.).

    (рис 14.12) Использование POP3 и IMAP

    Первая стадия

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

    Вторая стадия

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

    Третья стадия

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

    Протоколы почтового доступа

    Первая и вторая стадия доставки почты используют SMTP. Однако SMTP не включен в третью стадию, потому что STMP "проталкивает" сообщение от отправителя к получателю, даже если получатель этого не желает. Работу SMTP начинает отправитель, а не получатель. С другой стороны, третья стадия нуждается в протоколе, который "притягивает" сообщение, и эта операция должна начинаться у получателя. Третья ступень использует протокол почтового доступа.

    В настоящее время применяются два протокола: Post Office Protocol, Version 3 — POP3 и Internet Mail Access Protocol, Version 4 — IMAP4.

    POP3

    Post Office Protocol, Version 3 (POP3) — протокол простой, но ограниченный функционально. Программное обеспечение клиента POP3 устанавливается в компьютере получателя; программное обеспечение POP3-сервера устанавливается в почтовом сервере.

    Почтовый доступ стартует от клиента, когда пользователю надо загрузить его электронную почту из почтового ящика в почтовый сервер. Клиент (агент пользователя) устанавливает с сервером порт 110 и далее посылает ему имя и пароль для доступа к почтовому ящику. Пользователь может затем перечислить и отыскать почтовые сообщения одно за другим. Рисунок 14.13. показывает пример загрузки, использующей POP3.

    (рис 14.13) POP3

    POP3 имеет два режима: режим удаления и режим сохранения. В режиме удаления почта удаляется из почтового ящика после каждого запроса. В режиме сохранения почта остается в почтовом ящике после запроса. Режим удаления обычно используют, когда пользователь постоянно работает с компьютером и может сохранить и упорядочить почту после чтения и ответа. Режим сохранения применяют, когда пользователь имеет доступ к своей почте через первичный компьютер (например, переносной компьютер). Почта читается, но сохраняется в системе для дальнейшего запроса и упорядочения.

    IMAP4

    Другой протокол почтового доступа к сообщениям Интернета — Internet Mail Access Protocol, Version 4 (IMAP4). IMAP4 похож на POP3, но имеет некоторые особенности: IMAP4 более мощный и более сложный.

    POP3 является несовершенным по нескольким причинам. Он не позволяет пользователю организовать почту на сервере; пользователь не может иметь различные "папки". (Конечно, пользователь может организовать папки на собственном компьютере.) В дополнение к этому, POP3 не позволяет пользователю частично проверить содержание почты перед загрузкой.

    IMAP4 обеспечивает следующие дополнительные функции:

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

    Услуги электронной почты сегодня могут быть обеспечены для пользователей WEB-сайтов (Yahoo,Yandex и.т. д).

    Идея такой связи проста: передача письма проходит с помощью протокола HTTP (см. следующие лекции). Передача сообщения от передающего сервера к входящему почтовому серверу проходит с помощью протокола SMTP. В конечном итоге, сообщение от входящего сервера (он же WEB-сервер) достигает сервера пользователя Б, используя протокол HTTP. Если пользователь Б хочет получить это сообщение, он посылает запрос на свой WEB-сайт (например, YANDEX). WEB-сайт высылает форму, которая содержит запрос логина (зарегистрированного имени пользователя) и пароля, затем передает сообщение на компьютер пользователя Б в формате HTML.

    Краткие итоги

  • Протокол, который поддерживает в сети TCP/IP электронную почту, называется Simple Mail Transfer Protocol (SMTP) — простой протокол почтовой передачи.
  • Клиент и сервер SMTP требуют установки специального программного обеспечения – агента пользователя (USER Agent — UA) и агента передачи почты (Mail Transfer Agent – MTA).
  • UA подготавливает сообщение, создает конверт и вкладывает сообщение в конверт.
  • Почтовый адрес содержит две части: локальный адрес (пользовательский почтовый ящик) и доменное имя. Форма localname@domainename.
  • Почтовый шлюз преобразует почтовый формат.
  • SMTP-сообщение может быть задержано на стороне отправителя и на стороне получателя или на промежуточных серверах.
  • Псевдоним позволяет одному пользователю иметь много электронных адресов или многим адресам пользователя иметь групповой доступ к одному и тому же адресу.
  • MTA преобразует почту при прохождении через Интернет.
  • Почта отправителя в общем случае использует UNIX для построения MTA.
  • SMTP использует команды и отклики, чтобы передавать сообщения между MTA клиента и MTA сервера.
  • Шаги для передачи почтовых сообщений:
    а) установление соединения;
    б) передача почтового сообщения;
    в) завершение соединения.
  • Многоцелевое расширение почты через Интернет (Multipurpose Internet Mail Extension – MIME) – это расширение SMTP, которое позволяет передачи мультимедийных сообщений (текст, аудио, неподвижное изображение, видео и т. д.).
  • Почтовый протокол (Post Office Protocol, version 3 — POP3) и протокол доступа к почте в Интернете, версия 4 (Internet Mail Access Protocol — IMAP4) используют с помощью почты сервера для соединения от SMTP к приемнику и удержания почты в хосте.
  • Задачи и упражнения

  • Приведите пример ситуации, в которой расширитель от "одного ко многим" мог бы быть полезен. Повторите то же самое для расширителя от "многих к одному".
  • Нужны ли сразу две команды HELLO и FROM TO? Обоснуйте ответ "да" или "нет".
  • Почему нужно установить соединение для передачи письма, если TCP уже установил соединение?
  • Покажите установление соединения от aaa@bbb.xxx.com к bbb@yyy.com.
  • Покажите фазу передачи сообщения от aaa@bbb.xxx.com к bbb@yyy.com. Сообщение — "Будьте здоровы".
  • Покажите фазу завершения соединения от aaa@bbb.xxx.com к bbb@yyy.com.
  • Пользователь aaa@xxx.com посылает сообщение к пользователю к bbb@yyy.com, который пересылает его к ccc@zzz.com. Покажите SMTP-команды и отклики.
  • Пользователь aaa@xxx.com посылает сообщение к пользователю к bbb@yyy.com, который отвечает ему. Покажите SMTP-команды и отклики.
  • Если с помощью SMTP посылается сообщение из одной строки, сколько строк займут команды и отклики?
  • Передатчик посылает неформатированный текст. Покажите заголовок MIME.
  • Передатчик посылает JPEG-сообщение. Покажите заголовок MIME.
  • Сообщение имеет 1000 байт в коде (не-ASCII), закодировано с помощью Base 64. Сколько байт в кодированном сообщении? Сколько избыточных байт? Каково отношение избыточных байт к общему числу байт сообщения?
  • Сообщение 1000 байт закодировано приспособленным к печати кодом. Сообщение содержит 90 процентов ASCII и 10 процентов не-ASCII-символов. Сколько байт в кодированном сообщении? Сколько избыточных байт? Каково отношение избыточных байт к общему числу байт сообщения?
  • Сравните результаты упражнений12 и 13. Как увеличится эффективность, если сообщение содержит ASCII и не-ASCII-символы?
  • Закодируйте следующее сообщение в Base 64:
    0101 0111 0000 1111 1111 0000 1010 1111 01111 0001 0101 0100.
  • Дополнительный материал для прохождения тестирования к лекции, Вы можете скачать здесь.

    Страницы:

    Простой протокол электронной почты (SMTP — Simple Mail Transfer Protocol)

    Одна из наиболее популярных сетевых услуг – это электронная почта (e-mail). TCP/IP протокол, который поддерживает сообщения электронной почты в Интернете — это простой протокол электронной почты (SMTP — Simple Mail Transfer Protocol). Он описывает систему команд и соглашений для посылки сообщений к другим компьютерным пользователям, основанную на адресах электронной почты. SMTP обеспечивает обмен почтовыми сообщениями между пользователями одной и той же или различных компьютерных сетей. Система поддерживает:

  • посылку одиночных сообщений одному или более получателям;
  • посылку сообщений, включающих в себя текст, голосовые сообщения, видео или графические материалы;
  • посылку сообщений для пользователей сетей, не входящих в Интернет.
  • Агент пользователя (User Agent – UA)

    Начнем с того, что надо отделить работу сервера клиента от почтовой сети, так чтобы он мог иметь режим работы, независимый от почтовой сети, и наоборот. Чтобы его повседневная работа не влияла на почтовую сеть, введем агента пользователя (User Agent – UA). Аналогичный компонент требуется для почтового сервера – агент почтовой передачи (Mail Transfer Agent). Эти компоненты будут представлять соответственно клиента и почтовый сервер в сети.

    Агент пользователя подготавливает сообщение, адрес и вкладывает сообщение в конверт (см. например, систему Microsoft Outlook). На рис. 14.1. показаны эти компоненты для связи двух клиентов почтовой сети.

    На рис. 14.1. показаны агенты пользователя (UA-АП) и агенты почтовой передачи (MTA – ПА), связь осуществляется между двумя клиентами сети Интернет.

    (рис 14.1) Почтовый Агент передачи

    Следующий рисунок ( рис. 14.2.) воспроизводит более сложный случай, когда используются транзитные серверы сети Интернет. Транзитные участки не обязательно применяют набор протоколов TCP/IP для посылки почтовых сообщений. В этом случае на сети могут появиться почтовые шлюзы, которые могут преобразовывать SMTP-формат в другие форматы перед посылкой пользователю.

    (рис 14.2) Применение почтового шлюза

    Теперь рассмотрим основные компоненты.

    Агент пользователя без деталей реализации определяется в SMTP. АП – это обычная программа для передачи и получения почты. Одна из наиболее популярных программ — агент пользователя Outlook Express. Большинство агентов пользователя используют специальный интерфейс (типы окон) для взаимодействия клиент-система.

    Услуги, обеспечиваемые агентом пользователя

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

    Оформление письма

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

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

    Чтение письма

    Агент пользователя позволяет читать входящие или накопленные письма. Для этого он предоставляет список входящих писем, с отметкой — от кого (имя), адрес отправителя и дата поступления. Дополнительно может быть указан объем письма. Из дополнительных услуг обычно предоставляется отметка нового или непрочитанного письма.

    Ответ на письмо

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

    Пересылка входящего письма

    Пересылка предоставляет возможность переслать текст третьему лицу. При этом пользователю выводится форма, где указано, что это пересылка (знак "Fw:"); пользователь должен вставить адрес пересылки и может дополнить или исправить пересылаемый текст.

    Работа с почтовым ящиком

    Агент позволяет хранить все письма рассортированными по группам, пока они не будут удалены пользователем. При этом обеспечивается упорядочивание по различным критериям – по алфавиту, по фамилии приславшего, по дате и т. п.

    Посылка почты

    На рис. 14.3. показано прохождение почтового сообщения от абонента с именем Alex@mail2.spez.com к почтовому серверу абонента с именем Bob@mail3.param.ru по протоколу SMTP. Для посылки почты пользователь с помощью программы-агента порождает отправление, очень похожее на почтовое отправление. Оно содержит конверт и сообщение.

    (рис 14.3) Пересылка по сети почтовых сообщений по протоколу SMTP

    Конверт

    Конверт обычно содержит адрес отправителя и получателя и другую информацию.

    Сообщение

    Сообщение содержит заголовок и само содержание (тело сообщения). Заголовок определяет отправителя, получателя и субъект (название) передачи и некоторую другую информацию. Тело сообщения содержит информацию, которую надо прочесть получателю.

    Получение письма

    Программа-агент пользователя при подключении к почтовому серверу получает все письма для данного пользователя и информирует его о наличии писем. Обычно информация состоит из указания для каждого письма отправителя, субъекта письма и времени, когда письмо было получено или послано. Если пользователь готов читать письма, он выбирает одно из них и дает команду на раскрытие его содержания на экране.

    Адресация

    Адресация почтовых сообщений аналогична той, что принята в системе доменных имен (Domain Name System, DNS). Почтовый адрес имеет вид Alex@spez.com, где Alex – символическое имя, spez.com – почтовый домен.

    Локальная (местная) часть адреса определяет имя специального файла, названного по имени почтового ящика, где накапливается вся почта пользователя с целью обработки ее программой-агентом отправителя.

    Вторая часть адреса – доменное имя. Дается для выбора одной или более главных машин (хост) для посылки и получения электронной почты; иногда эти машины называют почтовыми станциями. Доменное имя присваивается каждой почтовой станции согласно базе доменных имен или по логическому имени (например, по имени организации).

    Электронный адрес становится более сложным, когда используется почтовый шлюз. В этом случае электронный адрес должен определять оба адреса – адрес шлюза и адрес реального получателя. Доменное имя должно определять имя почтового шлюза, в базе данных доменных имен и локальной части должен быть определен локальный физический адрес, компьютер присоединяет номера сетевого и пользовательского почтового ящика. Большинство почтовых систем не использует почтовую адресацию, определяемую SMTP, — это может породить проблемы и ошибки.

    Задержка в доставке

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

    Задержка на стороне отправителя

    Отправляемое сообщение может быть задержано стороной передачи. SMTP предусматривает, что отправитель должен располагать системой размещения в очереди, в которой сообщение накапливается, перед тем как быть переданным. После того как агент пользователя создаст сообщение, оно доставляется для постановки в очередь, которая является накапливающей структурой. Система почтовой передачи периодически проверяет почтовый накопитель и рассматривает возможность передачи. Это зависит от того, может ли получить заданный адрес сервера доступ через DNS. Если сообщение не доставлено в определенный период (обычно от пяти до трех дней), почта возвращается отправителю.

    Задержка на приемной стороне

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

    Задержка среды передачи

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

    Псевдоним (групповое имя)

    SMTP позволяет использовать только одно имя, псевдоним, позволяющий последовательную различную адресацию — это называют расширением "один ко многим". Также отдельный пользователь может обладать различными адресами — это называется расширение "много к одному". Такие операции должны опираться на включение средств расширения на обоих концах ( рис. 14.4.), в частности средств буферизации – накопления (spooling).

    (рис 14.4) Расширение по групповому имени

    Расширение "один ко многим"

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

    Расширение "много к одному"

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

    Агент почтовой передачи

    Реальная передача происходит через почтового агента передачи. Чтобы передать сообщение, система должна иметь клиентского почтового агента, а приемная сторона должна иметь агента почтового сервера. Протокол SMTP не предъявляет специальных требований к почтовым агентам. Он определяет команды и отклики, которые должны посылаться назад и далее. Каждая сеть свободна в выборе пакета программ для реализации. Далее в этой лекции еще будет обсуждаться механизм передачи SMTP. Однако вначале представим полную картину двусторонней передачи электронной почты, как это определено SMTP. Рис. 14.5. иллюстрирует процесс посылки и получения электронной почты, как это было рассмотрено ранее. Для получения и передачи сообщения в соответствии с протоколом SMTP пользовательский интерфейс не является необходимым, но создает дружественный диалог с компьютером, как это, например, сделано в Outlook Express.

    (рис 14.5) Основные составляющие системы электронной почты

    На этом рисунке протокол SMTP используется два раза, между передатчиком или передатчиками и сервером и между двумя почтовыми серверами. Между почтовым сервером и получателем необходимо применить другой протокол.

    Команды и отклики

    SMTP использует команды и отклики для передачи сообщения между почтовыми агентами (MTA) клиента и сервера.

    Команды

    Команду посылают от клиента к серверу. Она содержит ключевое слово и следующие за ним ноль или более аргументов. В SMTP определяется 14 команд. Первые пять — обязательные команды; любая реализация почты должна поддерживать эти пять команд. Следующие три часто используются и очень рекомендуются. Последние шесть команд применяются редко. Команды перечислены в таблице 14.1 и ниже рассмотрены более детально.

    Команды
    Ключевое слово Аргумент(ы)
    HELLO Имя хоста отправителя
    MAIL FROM Отправитель сообщения
    RCPT TO Предназначенный получатель сообщения
    DATA Содержание (тело сообщения)
    QUIT Завершение соединения
    RSET Прерывание текущего действия
    VRFY Проверяемое имя получателя
    NOOP Проверка состояния получателя
    TURN Смена положения отправителя и получателя ( в настоящее время не используется)
    EXPN Почтовый список расширения
    HELP Имя команды
    SEND FROM Предназначенный получатель сообщения
    SMOL FROM Предназначенный получатель сообщения
    SMAL FROM Предназначенный получатель сообщения
  • HELLO. Эта команда используется клиентом для идентификации самого себя. Аргумент — доменное имя хоста клиента.
  • MAIL FROM. Эта команда используется клиентом для идентификации отправителя сообщения. Аргумент содержит адрес отправителя электронной почты (локальную часть и доменное имя).
    MAIL FROM: berlin@sut.ru
  • RCPT. Команда используется клиентом для идентификации получателя сообщения. Аргумент — адрес электронной почты получателя. Если имеется много получателей, команда повторяется. Формат показан ниже.
    RCPT TO: jenifer@edu.com
  • DATA. Команда используется для посылки реального сообщения. Все строки, следующие за символами, рассматриваются как почтовое сообщение.
    DATA
    Этим письмом я подтверждаю
    свое согласие на издание книги.
  • QUIT. Команда, завершающая соединение. Ее формат:
    QUIT
  • RSET. Команда (reset), прерывающая текущее действие почты. Накопленная информация об отправителе и получателе удаляется.
  • VRFY. Команда (verify), используемая для верификации адреса получателя, который посылается как аргумент. Отправитель может запрашивать подтверждение получателя, что имя получателя идентифицировано правильно. Ее формат:
    VRFY: jenifer@edu.com
  • NOOP. Команда (operation), используемая клиентом для проверки состояния получателя. Это требует ответа от получателя. Ее формат:
    NOOP
  • TURN. Команда позволяет отправителю и получателю перейти в положение, при котором отправитель становится получателем и наоборот. Однако большинство современных реализаций SMTP не поддерживает этой команды. Ее формат:
    TURN
  • EXPN. Команда (expand) запрашивает хост получателя, чтобы расширить список, как это указано в аргументах, и вернуть адреса почтовых ящиков получателей, которые включаются в этот лист. Ее формат:
    EXPN: x,y,z
  • HELP. Команда запрашивает получателя, чтобы получить информацию о команде, содержащейся в аргументе. Ее формат:
    HELP: mail
  • SEND FROM. Команда, определяющая, что почта может быть доставлена терминалу получателя, а не в почтовый ящик. Если получатель не зарегистрирован, то почта возвращается обратно. Аргументом является адрес отправителя. Формат показан ниже:
    SEND FROM: berlin@edu.com
  • SMOL FROM. Команда (посылается в почтовый ящик или терминал), определяющая, что почта может быть доставлена терминалу или в почтовый ящик получателя. Это означает, что если получатель зарегистрирован, то доставка осуществляется в терминал, если получатель не зарегистрирован — только в почтовый ящик. Аргумент — адрес отправителя. Формат показан ниже:
    SMOL FROM: berlin@edu.com
  • SMAL FROM. Команда (посылается в почтовый ящик и терминал), определяющая, что почта может быть доставлена терминалу получателя и в почтовый ящик. Если получатель зарегистрирован, почта будет доставлена в почтовый ящик и терминал. Почта доставляется только в почтовый ящик, если отправитель не зарегистрирован. Аргумент — адрес отправителя. Формат показан ниже:
    SMAL FROM: berlin@edu.com
  • Отклики

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

  • 2yz (положительное подтверждение завершения). Первая цифра 2 (цифра 1 сейчас не используется) показывает, что требуемая команда успешно завершена и можно передавать следующую команду.
  • 3yz (положительное промежуточное подтверждение). Если первая цифра 3, это означает, что требуемая команда принята, но получатель нуждается в большей информации для завершения обработки.
  • 4yz (отрицательное переходное подтверждение). Если первая цифра 4, это означает, что требуемая команда должна быть отклонена, но состояние ошибки временное. Команда может быть передана опять.
  • 5yz (отрицательное постоянное подтверждение завершения). Если первая цифра 5, это означает, что требуемая команда должна быть отклонена. Команда не может быть передана повторно.
  • Вторые и третьи цифры сообщают дополнительные детали об отклике. Табл. 14.2 содержит список некоторых откликов.

    Отклики
    Код Описание
    Положительное подтверждение завершения
    211 Системное состояние или отклик на справку
    214 Справочное сообщение
    220 Готовность к обслуживанию
    221 Завершение обслуживания передающего канала
    250 Требуемая команда завершена
    251 Пользователь не местный: сообщение должно быть передано далее
    Положительное промежуточное подтверждение
    354 Начало ввода почты
    Отрицательное переходное подтверждение
    421 Обслуживание не доступно
    450 Почтовый ящик недоступен
    451 Команда прервана: местная ошибка
    452 Команда прервана: недостаточно памяти
    Отрицательное постоянное подтверждение завершения
    500 Синтаксическая ошибка: неопознанная команда
    501 Синтаксическая ошибка в параметрах или аргументах
    502 Команда не выполнена
    503 Неправильная последовательность команд
    504 Команда временно не выполнена
    550 Команда не выполнена: почтовый ящик недоступен
    551 Пользователь не местный
    552 Требуемое действие прервано: переполнение местной памяти
    553 Требуемое действие не принято к исполнению: недопустимое имя почтового ящика
    554 Неудавшийся переход

    Фазы передачи почты

    Процесс передачи почтовых сообщений осуществляется в три фазы: установление соединения, передача почты и подключение оконечного устройства.

    Установление соединения

    После того как клиент установит соединение TCP к заранее известному порту 25, сервер SMTP начинает фазу соединения. Эта фаза включает следующие три ступени, которые иллюстрируются на рисунке 14.6.:

    (рис 14.6) Установление соединения
  • Сервер посылает код 220 (Готов к обслуживанию), чтобы сказать клиенту, что он готов принять почту. Если сервер не готов, то он посылает код 421 (Обслуживание не готово).
  • Клиент посылает сообщение HELLO, чтобы идентифицировать себя, используя доменное имя адреса. Этот шаг необходим, чтобы информировать сервер доменного имени клиента. Напомним, что во время установления TCP отправитель и получатель знает друг друга только по IP-адресам.
  • Сервер отвечает кодом 250 – "Требуемая команда завершена" или другим кодом в зависимости от ситуации.
  • Передача сообщения

    После того как соединение будет установлено между SMTP-клиентами и сервером, можно обменяться одиночным сообщением между отправителем и одним или более получателями. Эта фаза включает восемь шагов. Шаги 3 и 4 повторяются, если есть более чем один получатель ( рисунке 14.7.).

    (рис 14.7) Передача сообщения
  • Клиент посылает сообщение MAIL FROM, чтобы представить отправителю почтовый адрес отправителя (имя почтового ящика и доменное имя). Этот шаг необходим, чтобы дать серверу адрес для возврата ошибок или для доклада о продвижении сообщений.
  • Сервер отвечает кодом 250 или другим соответствующим кодом.
  • Клиент посылает сообщение RCPT TO (получатель), который включает почтовый адрес получателя.
  • Сервер отвечает кодом 250 или другим соответствующим сообщением.
  • Клиент посылает сообщение DATA, чтобы инициализировать передачу сообщений.
  • Сервер отвечает кодом 354 (Начало ввода почты) или другим подходящим сообщением.
  • Клиент посылает содержание сообщения в виде последовательности строк. Каждая строка завершается двумя символами конец строки (возврат каретки и продвижение на другую линию). Конец сообщения содержит только метку окончания строки.
  • Сервер отвечает кодом 250 или соответствующим кодом.
  • Окончание соединения

    После того как сообщение будет успешно передано, клиент заканчивает соединение. Эта фаза имеет два шага ( рис. 14.8.).

    (рис 14.8) Окончание соединения
  • Клиент посылает команду QUIT.
  • Сервер отвечает кодом 221 или соответствующим другим кодом.
  • После фазы окончания соединения TCP-соединение должно быть завершено.
  • Многоцелевое расширение интернет-почты

    Многоцелевое расширение интернет-почты (Multipurpose Internet Mail Extensions – MIME) улучшает возможности протокола SMTP [33, 34, 35, 38, 39, 40]. Этот протокол может посылать в терминалы только 7-битовые форматы в коде ASCII. Другими словами, он имеет ограничения. Например, не могут быть использованы языки, которые не поддерживают 7-битовые символы (французский, немецкий, иврит, русский, китайский, японский). Также нельзя использовать его для посылки двоичных файлов или посылки видео- или аудиоинформации.

    Многоцелевое расширение интернет-почты (MIME) — дополняющий протокол, позволяющий передавать сообщения, используя SMTP-данные, которые не имеют вид ASCII. MIME — не почтовый протокол и не отменяет SMTP; он только его расширяет.

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

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

    MIME определяет пять заголовков, которые могут быть дополнены к исходной секции заголовков SMTP для определения параметров преобразования:

  • MIME – Version (MIME – Версия).
  • Content – Type (Содержание – Тип).
  • Content — Transfer – Encoding (Содержание – Передача – Кодирование).
  • Content – Id (Содержание – Идентификатор).
  • Content – Description (Содержание — Описание).
  • Рисунок 14.9. показывает исходный заголовок и расширенный заголовок. Рассмотрим их более детально.

    (рис 14.9) Заголовок MIME

    MIME – Version

    В заголовке определяется используемая версия многоцелевого расширения. Если текущая версия 1.1, то:

    MIME – Version 1.1

    Content – Type

    Этот заголовок определяет тип данных в используемом информационном блоке сообщения. Тип содержания и подтип содержания разделяется наклонной чертой ("слеш"). В зависимости от подтипа, заголовок может содержать другие параметры.

    Content – Type: <type/subtype; parameters>

    MIME позволяет семь различных типов данных. Они перечислены в таблице 14.3 и рассмотрены ниже более детально.

    Типы и подтипы MIME
    Тип Подтип Описание
    Текст Обычный Неформатированный текст
    Из многих частей Смешанный Информационный блок содержит упорядоченные различные типы данных
    Параллельный То же самое, что выше, но неупорядоченное
    Обзорный Похожий на смешанный, но по умолчанию /RFC822*
    Альтернативный Часть различных версий в одинаковом сообщении
    Сообщение RFC822 Информационный блок включает в себя сообщение
    Частичный Информационный – это фрагмент большого сообщения
    Внешний блок Информационный блок является только ссылкой на другое сообщение
    Изображение JPEG Изображение в формате JPEG
    GIF Изображение в формате GIF
    Видео MPEG Видео в MPEG-формате
    Аудио Базовое Одиночный канал кодированной речи на 8 кГц
    Прикладной текст PostScript Язык описаний страниц, разработанный фирмой Adobe Systems
    Поток октетов Двоичные данные общего вида (восьмибитовые байты)
  • Текст. Исходное сообщение в 7-битовом формате ASCII и не нуждающееся в MIME-преобразовании. Имеется только один подтип, в настоящее время используется тип: обычный.
  • Из многих частей. Содержания блока информации многообразное и состоит из независимых частей. Заголовок из многих частей необходим, чтобы определить границу между каждой частью. Граница используется как параметр. Это символ строки, который повторяется перед каждой частью на отдельной линии и имеет предшествующие символы — два дефиса.

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

    Content-Type: multipart/mixed; boundary=xxxx
    —xxxx
    Content-Type: text/plain;
    ........................................................
    —xxxx
    Content-Type: image/gif;
    ........................................................
    —xxxx
  • Сообщение. В типе "сообщение" информационный блок содержит непосредственное почтовое сообщение, его часть или указатель на сообщение.

    Используют три подтипа: RFC822, частичный и внешний информационный блок. Подтип RFC822 применяется, если информационный блок включается в другое сообщение (в том числе заголовок и информационный блок). Подтип частичный нужен, если исходное сообщение фрагментировано в различные почтовые сообщения и это почтовое сообщение — одна из частей. Фрагменты должны быть собраны заново с помощью MIME. При этом должны быть дополнены три параметра: id (идентификатор), number (номер), total (всего). Введение id идентифицирует все сообщение, он представлен во всех фрагментах. Номер определяет последовательный порядок фрагментов. "Всего" определяет число фрагментов, составляющих исходное сообщение. Вот пример сообщения с тремя фрагментами:

    Content-Type: message/partial;
    Id="berlin.sut.ru";
    Number=1;
    Total=3;
    ........................................................
    ........................................................

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

    Content-Type: message/partial;
    Name=book";
    site=sut.ru;
    access-type="ftp";
    ........................................................
    ........................................................
  • Изображение. Исходное сообщение "неподвижное изображение" указывает, что это не анимация. Применяется два подтипа: Joint Photographic Experts Group (JPEG), который использует сжатие изображения, и Graphics Interchange Format (GIF).
  • Видео. Исходное сообщение "изображение, изменяющееся по времени (анимация)" имеет только один тип — Motion Picture Experts Group (MPEG). Если анимационное изображение содержит звук, он должен быть послан отдельно с использованием типа "содержание аудио".
  • Приложение. Исходное сообщение "тип данных" предварительно не определяется. Имеется только два подтипа: поток октетов и PostScript. Поток октетов применяют, когда данные не могут быть интерпретированы как последовательность 8-битовых байтов (двоичный файл). PostScript нужен, когда данные в формате Adobe Post Script.
  • Содержание — Передача – Кодирование

    Заголовок определяет метод кодирования сообщения для передачи в виде нулей и единиц.

    Content – Transfer – Encoding: <type>

    Пять типов кодирования (поле <type>) приведены в Табл. 14.4

    Содержание – передача – кодирование
    Тип Описание
    7 бит NVT ASCII-символы и короткие линии
    8 бит Не-ASCII-символы и короткие линии
    Двоичный Не-ASCII-символы с не лимитированной длиной линии
    Базовый 64 6-битовые блоки данных, закодированные по 8 бит ASCII-символами
    Предназначенный для печати Не-ASCII-символы, закодированные как последовательность знаков ASCII
  • 7 бит. 7-битовое NVT ASCII-кодирование. Хотя не надо делать никаких преобразований, но число символов в строке не должно превышать 1000 символов. ASCII определяет 128 букв, включая алфавит, числа, знаки пунктуации и сигналы. Заглавная буква "C", например, кодируется 100011, а цифра "3" — 0110011. Таким образом, с помощью нулей и единиц можно закодировать 128 символов.
  • 8 бит. Это 8-битовое кодирование, одна из важнейших модификаций кода ASCII, называемая расширенный ASCII. К 7-битовому коду добавляется еще один бит и к используемым 127 символам можно добавлять другие, например, иностранные буквы или другие полезные символы. 8-битовые не-ASCII-символы передаются с длиной 8-й строки не более 1000 символов. MIME не делает никакой перекодировки. Основные протоколы STMP могут передать не-ASCII-символы. Это, однако, не рекомендуется. Типы "Базовый 64" и "Предназначенный для печати" предпочтительнее.
  • Двоичный. Это 8-битовое кодирование. Не ASCII-символы передаются с длиной 8 бит. Протоколы STMP могут передать не ASCII-символы. Это, однако, не рекомендуется. Типы "Базовый 64" и "Предназначенный для печати" предпочтительнее.
  • Base 64 (Базовый 64). Это решение предложено для передачи данных, представленных в виде байтов, где старший бит не обязательно равен нулю. BASE 64 преобразует этот тип данных в символы, пригодные для печати, которые можно передавать как ASCII-символы, или в набор символов, поддерживаемых основными программами для передачи почты.

    BASE 64 разделяет двоичные данные (представляющие поток бит) в 24-битовые блоки. Каждый блок разделен на четыре секции, каждый содержит 6 бит ( рис. 14.10.). Слово в 6 разрядов позволяет закодировать 26 = 64 символа.

    Каждая секция интерпретируется как один символ в соответствии с таблица 14.5Значение 6 разрадного кода - 0, Код ASCII - А

    (рис 14.10) Base 64 (Базовый 64)
    Кодирование в BASE 64
  • (рис 14.11) Приспособленный к печати
  • Содержание – Идентификатор (Content — Id)

    Этот заголовок уникально идентифицирует полное сообщение:

    Content – Id: id=<content.id>

    Содержание – Описание (Content – Description)

    Заголовок определяет, является ли информационный блок изображением, аудио- или видеоинформацией:

    Content – Description: <description>

    Доставка почты

    Доставка почты от отправителя к получателю проходит через три стадии ( рис. 14.12.).

    (рис 14.12) Использование POP3 и IMAP

    Первая стадия

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

    Вторая стадия

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

    Третья стадия

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

    Протоколы почтового доступа

    Первая и вторая стадия доставки почты используют SMTP. Однако SMTP не включен в третью стадию, потому что STMP "проталкивает" сообщение от отправителя к получателю, даже если получатель этого не желает. Работу SMTP начинает отправитель, а не получатель. С другой стороны, третья стадия нуждается в протоколе, который "притягивает" сообщение, и эта операция должна начинаться у получателя. Третья ступень использует протокол почтового доступа.

    В настоящее время применяются два протокола: Post Office Protocol, Version 3 — POP3 и Internet Mail Access Protocol, Version 4 — IMAP4.

    POP3

    Post Office Protocol, Version 3 (POP3) — протокол простой, но ограниченный функционально. Программное обеспечение клиента POP3 устанавливается в компьютере получателя; программное обеспечение POP3-сервера устанавливается в почтовом сервере.

    Почтовый доступ стартует от клиента, когда пользователю надо загрузить его электронную почту из почтового ящика в почтовый сервер. Клиент (агент пользователя) устанавливает с сервером порт 110 и далее посылает ему имя и пароль для доступа к почтовому ящику. Пользователь может затем перечислить и отыскать почтовые сообщения одно за другим. Рисунок 14.13. показывает пример загрузки, использующей POP3.

    (рис 14.13) POP3

    POP3 имеет два режима: режим удаления и режим сохранения. В режиме удаления почта удаляется из почтового ящика после каждого запроса. В режиме сохранения почта остается в почтовом ящике после запроса. Режим удаления обычно используют, когда пользователь постоянно работает с компьютером и может сохранить и упорядочить почту после чтения и ответа. Режим сохранения применяют, когда пользователь имеет доступ к своей почте через первичный компьютер (например, переносной компьютер). Почта читается, но сохраняется в системе для дальнейшего запроса и упорядочения.

    IMAP4

    Другой протокол почтового доступа к сообщениям Интернета — Internet Mail Access Protocol, Version 4 (IMAP4). IMAP4 похож на POP3, но имеет некоторые особенности: IMAP4 более мощный и более сложный.

    POP3 является несовершенным по нескольким причинам. Он не позволяет пользователю организовать почту на сервере; пользователь не может иметь различные "папки". (Конечно, пользователь может организовать папки на собственном компьютере.) В дополнение к этому, POP3 не позволяет пользователю частично проверить содержание почты перед загрузкой.

    IMAP4 обеспечивает следующие дополнительные функции:

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

    Услуги электронной почты сегодня могут быть обеспечены для пользователей WEB-сайтов (Yahoo,Yandex и.т. д).

    Идея такой связи проста: передача письма проходит с помощью протокола HTTP (см. следующие лекции). Передача сообщения от передающего сервера к входящему почтовому серверу проходит с помощью протокола SMTP. В конечном итоге, сообщение от входящего сервера (он же WEB-сервер) достигает сервера пользователя Б, используя протокол HTTP. Если пользователь Б хочет получить это сообщение, он посылает запрос на свой WEB-сайт (например, YANDEX). WEB-сайт высылает форму, которая содержит запрос логина (зарегистрированного имени пользователя) и пароля, затем передает сообщение на компьютер пользователя Б в формате HTML.

    Краткие итоги

  • Протокол, который поддерживает в сети TCP/IP электронную почту, называется Simple Mail Transfer Protocol (SMTP) — простой протокол почтовой передачи.
  • Клиент и сервер SMTP требуют установки специального программного обеспечения – агента пользователя (USER Agent — UA) и агента передачи почты (Mail Transfer Agent – MTA).
  • UA подготавливает сообщение, создает конверт и вкладывает сообщение в конверт.
  • Почтовый адрес содержит две части: локальный адрес (пользовательский почтовый ящик) и доменное имя. Форма localname@domainename.
  • Почтовый шлюз преобразует почтовый формат.
  • SMTP-сообщение может быть задержано на стороне отправителя и на стороне получателя или на промежуточных серверах.
  • Псевдоним позволяет одному пользователю иметь много электронных адресов или многим адресам пользователя иметь групповой доступ к одному и тому же адресу.
  • MTA преобразует почту при прохождении через Интернет.
  • Почта отправителя в общем случае использует UNIX для построения MTA.
  • SMTP использует команды и отклики, чтобы передавать сообщения между MTA клиента и MTA сервера.
  • Шаги для передачи почтовых сообщений:
    а) установление соединения;
    б) передача почтового сообщения;
    в) завершение соединения.
  • Многоцелевое расширение почты через Интернет (Multipurpose Internet Mail Extension – MIME) – это расширение SMTP, которое позволяет передачи мультимедийных сообщений (текст, аудио, неподвижное изображение, видео и т. д.).
  • Почтовый протокол (Post Office Protocol, version 3 — POP3) и протокол доступа к почте в Интернете, версия 4 (Internet Mail Access Protocol — IMAP4) используют с помощью почты сервера для соединения от SMTP к приемнику и удержания почты в хосте.
  • Задачи и упражнения

  • Приведите пример ситуации, в которой расширитель от "одного ко многим" мог бы быть полезен. Повторите то же самое для расширителя от "многих к одному".
  • Нужны ли сразу две команды HELLO и FROM TO? Обоснуйте ответ "да" или "нет".
  • Почему нужно установить соединение для передачи письма, если TCP уже установил соединение?
  • Покажите установление соединения от aaa@bbb.xxx.com к bbb@yyy.com.
  • Покажите фазу передачи сообщения от aaa@bbb.xxx.com к bbb@yyy.com. Сообщение — "Будьте здоровы".
  • Покажите фазу завершения соединения от aaa@bbb.xxx.com к bbb@yyy.com.
  • Пользователь aaa@xxx.com посылает сообщение к пользователю к bbb@yyy.com, который пересылает его к ccc@zzz.com. Покажите SMTP-команды и отклики.
  • Пользователь aaa@xxx.com посылает сообщение к пользователю к bbb@yyy.com, который отвечает ему. Покажите SMTP-команды и отклики.
  • Если с помощью SMTP посылается сообщение из одной строки, сколько строк займут команды и отклики?
  • Передатчик посылает неформатированный текст. Покажите заголовок MIME.
  • Передатчик посылает JPEG-сообщение. Покажите заголовок MIME.
  • Сообщение имеет 1000 байт в коде (не-ASCII), закодировано с помощью Base 64. Сколько байт в кодированном сообщении? Сколько избыточных байт? Каково отношение избыточных байт к общему числу байт сообщения?
  • Сообщение 1000 байт закодировано приспособленным к печати кодом. Сообщение содержит 90 процентов ASCII и 10 процентов не-ASCII-символов. Сколько байт в кодированном сообщении? Сколько избыточных байт? Каково отношение избыточных байт к общему числу байт сообщения?
  • Сравните результаты упражнений12 и 13. Как увеличится эффективность, если сообщение содержит ASCII и не-ASCII-символы?
  • Закодируйте следующее сообщение в Base 64:
    0101 0111 0000 1111 1111 0000 1010 1111 01111 0001 0101 0100.
  • Дополнительный материал для прохождения тестирования к лекции, Вы можете скачать здесь.

    Вернуться к учебному плану