TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security)
Шрифт:
16.13.4 Кодирование содержания
RFC 822 определил исходной формат для текстовых сообщений Интернета. Содержание почтового сообщения состоит из последовательности строк, завершающихся <CR><LF>. Максимальная длина каждой строки (включая <CR><LF>) определена в 1000 символов.
Как должны кодироваться для пересылки различные типы содержания сообщений MIME? Методы
■ Неэффективный способ кодирования, который представляет двоичные данные как текст, если можно будет доставить сообщение на принимающий агент пересылки почты только таким способом.
■ Эффективный способ кодирования, когда получатель поддерживает такой способ.
Методы кодирования представлены в таблице 16.3. Если используется не обычный метод NVT USASCII, а другой, то он должен быть явным образом определен в заголовке Content-Transfer-Encoding. Например:
Таблица 16.3 Методы копирования
Метод | Описание |
---|---|
7bit | Обычные строки текста NVT USASCII. |
quoted-printable | Содержимое по большей части представляет собой обычный текст ASCII, но дополнительно имеется несколько особых символов. Каждый такой символ представлен специальной последовательностью обычных текстовых символов. |
base64 | Все содержание отображается к виду, представленному обычными символами. |
8bit | Сообщение организовано как последовательность строк, заканчивающихся на <CR><LF> и имеющих длину не более 1000 символов. Однако могут быть включены 8-разрядные коды. |
binary | Правильное представление двоичных данных. |
x-token-name | Любой экспериментальный метод кодирования должен иметь название, начинающееся с "х". |
16.13.5 Метод кодирования указанными печатными символами
Метод кодирования указанными печатными символами (quoted-printable encoding method) используется для сообщений, содержащих только небольшое число символов, не принадлежащих основному множеству ASCII. Эти символы отображаются в специальные последовательности, в то время как большая часть сообщения остается в своей естественной форме. Кодирование выполняется как:
= шестнадцатеричный код для символа
Например, символ перевода формата (X'0C) будет закодирован как =0C.
16.13.6 Метод кодирования Base64
Метод кодирования Base64 преобразует любой тип данных к большему в 3 раза количеству текстовых символов. Данные разделяются на части по три 8-разрядных, байта. Например:
Для преобразования эта последовательность сначала разделяется на четыре 6-разрядные группы:
Каждая группа интерпретируется как число:
Полученные числа заменяются соответствующими символами из таблицы 16.4.
Таблица 16.4 Кодирование Base64
Значение | Код | Значение | Код | Значение | Код | Значение | Код |
---|---|---|---|---|---|---|---|
0 | A | 16 | Q | 32 | g | 48 | w |
1 | В | 17 | R | 33 | h | 49 | X |
2 | С | 18 | S | 34 | i | 50 | y |
3 | D | 19 | T | 35 | j | 51 | z |
4 | E | 20 | U | 36 | k | 52 | 0 |
5 | F | 21 | V | 37 | I | 53 | 1 |
6 | G | 22 | W | 38 | m | 54 | 2 |
7 | H | 23 | X | 39 | n | 55 | 3 |
8 | I | 24 | Y | 40 | о | 56 | 4 |
9 | J | 25 | Z | 41 | p | 57 | 5 |
10 | К | 26 | a | 42 | q | 58 | 6 |
11 | L | 27 | b | 43 | r | 59 | 7 |
12 | M | 28 | с | 44 | s | 60 | 8 |
13 | N | 29 | d | 45 | t | 61 | 9 |
14 | О | 30 | e | 46 | u | 62 | + |
15 | P | 31 | f | 47 | V | 63 | / |
Если
общее число октетов не кратно трем, то в конце сообщения останутся 1 или 2 октета. Они дополняются нулевыми битами и кодируются. 1 октет транслируется в 2 символа со следующими далее двумя знаками равенства (==), 2 октета — в 3 символа со следующим далее одним знаком равенства (=).16.14 Протокол POP
Протокол почтового офиса (Post Office Protocol — POP) применяется для пересылки сообщений с почтового сервера на настольную или переносную компьютерную систему.
Спецификация POP определяет множество различных функций, например возможность просмотра списка поступивших сообщений (и их размеров) для извлечения или удаления некоторых из них. Однако многие реализации обычно просто пересылают всю поступившую почту на систему пользователя, которому предоставляется возможность сохранить копии всех сообщений на сервере или удалить их после загрузки на свою систему.
Настольные системы используют POP для загрузки почты, a SMTP для ее отправки. В большинстве случаев сервер загрузки почты одновременно является и входным почтовым шлюзом (см. рис. 16.8). Однако клиентское приложение позволяет применять различные системы для сервера POP и входного шлюза.
Рис. 16.8. Комбинация сервера POP и системы почтового шлюза
16.15 Другие почтовые приложения
В Интернете существует множество рассылочных списков (mailing lists), которые обеспечивают своим подписчикам обмен вопросами и ответами, а также доступ к последним новостям по определенной тематике, будь то вакантные рабочие места, новые компакт-диски или проблемы компьютерной безопасности.
Пользователь подписывается на рассылочный список, отсылая запрос на объявленный почтовый ящик. Попавшие в этот ящик сообщения отправляются всем подписчикам рассылочного списка (см. рис. 16.9). Бесплатное программное обеспечение для работы с рассылочными списками доступно в Интернете, например, популярная программа Majordomo имеет версии для различных операционных платформ.
Рис. 16.9. Сервер рассылочного списка
16.16 Производительность
Служба агента пересылки почты использует ресурсы диска, памяти, процессора и полосы пропускания сети. Почтовые службы интенсивно применяются, что создает достаточно напряженный сетевой трафик.
Сообщения должны быть сохранены на время ожидания пересылки. Обычно почтовые службы реализуются на серверах. Пользователям нужно зарегистрироваться в операционной системе такого сервера и получить доступ к своему почтовому ящику. Очень трудно заранее предвидеть объем дискового пространства, необходимого для работы почтового приложения.