yEnc
yEnc — это схема кодирования двоичного текста в текст для передачи двоичных файлов в сообщениях Usenet или по электронной почте . Это снижает накладные расходы по сравнению с предыдущими US-ASCII методами кодирования на основе за счет использования 8-битного метода кодирования. Накладные расходы yEnc часто (если каждое значение байта появляется в среднем примерно с одинаковой частотой) составляют всего 1–2%, [1] по сравнению с 33–40% накладными расходами для 6-битных методов кодирования, таких как uuencode и Base64 . yEnc был первоначально разработан Юргеном Хелбингом, и его первый выпуск состоялся в начале 2001 года. К 2003 году yEnc стал де-факто стандартной системой кодирования двоичных файлов в Usenet. [2] Название yEncode представляет собой игру слов на тему «Зачем кодировать?» , поскольку идея состоит в том, чтобы кодировать символы только в том случае, если это абсолютно необходимо для соблюдения стандарта формата сообщения. [3]
Как работает yEnc
[ редактировать ]Тела сообщений Usenet и электронной почты должны были содержать только символы ASCII ( RFC 822 или RFC 2822 ). Большинство конкурирующих кодировок представляют двоичные файлы путем преобразования их в печатные символы ASCII, поскольку диапазон печатаемых символов ASCII поддерживается большинством операционных систем. Однако, поскольку это значительно уменьшает доступный набор символов, в сетях с 8-битными байтами возникают значительные накладные расходы (растраченная пропускная способность). Например, в uuencode и Base64 три байта данных кодируются в четыре печатаемых символа ASCII, что соответствует четырем байтам, что составляет 33 % накладных расходов (не включая накладные расходы на заголовки). yEnc использует один символ (один байт) для представления одного байта файла, за некоторыми исключениями.
yEnc предполагает, что двоичные данные в основном могут передаваться через Usenet и электронную почту. Таким образом, 252 из 256 возможных байтов передаются в незакодированном виде как один байт, независимо от того, является ли этот результат печатным символом ASCII или нет. только NUL , LF , CR и = Экранируются . LF и CR экранируются, поскольку RFC, определяющие интернет- сообщения, по-прежнему требуют, чтобы возврат каретки и перевод строки имели особое значение в почтовом сообщении. = — это escape-символ, поэтому он сам экранируется. NUL также экранируется из-за проблем с обработкой нулевых символов в общем коде, хотя в качестве оптимизации yEnc добавляет 42 к каждому исходному байту, так что нередко длинные участки нулевых байтов не требуют большого экранирования.
Не существует RFC или другого стандартного документа, описывающего yEnc. [4] На домашней странице yEnc размещен проект неофициального [ нужна ссылка ] спецификация и грамматика (которые противоречат RFC 2822 и RFC 2045 ), [ нужна ссылка ] хотя ни один из них не был представлен в Инженерную рабочую группу по Интернету . [ нужна ссылка ]
Как и uuencoding, несмотря на свои недостатки, yEnc остается [ когда? ] активен и эффективен в Usenet. [ нужна ссылка ] На домашней странице yEnc указано, что « все основные программы чтения новостей получили поддержку yEnc ». Microsoft , Outlook Express Windows Mail и Windows Live Mail не обеспечивают поддержку yEnc ни для новостей, ни для почты, но существуют доступные плагины . Mozilla Thunderbird декодирует файлы yEnc, состоящие из одной части, но не может объединять двоичные файлы, состоящие из нескольких частей. [5]
Проблемы
[ редактировать ]Многие программисты и администраторы новостей отметили слабые стороны yEnc. [6] [7] [8] [9] Он страдает многими из тех же недостатков, что и uuencode, некоторые из которых уже были устранены за несколько лет до этого с помощью MIME (который устранял те же недостатки uuencode). Например, yEnc требует, чтобы строки «=ybegin» и «=yend» располагались вокруг закодированного файла в теле сообщения. [3] Хотя это улучшение по сравнению с «началом» и «концом» uuencode, которые встречаются чаще в обычном тексте, читатели сообщений все равно могут столкнуться со строками вне вложений (чаще всего в обсуждениях самого yEnc). yEnc и uuencode [ нужна ссылка ] также попытайтесь собрать файлы, разделенные на несколько сообщений, используя строку темы, что ненадежно. [ по мнению кого? ]
принятие yEncode
[ редактировать ]Проект предложения yEncode был доступен 31 июля 2001 года. [10] Эталонный кодер и декодер были включены в бесплатную версию MyNews 1.9 в ноябре того же года. [11] yDec, бесплатный декодер Win32, появился 14 ноября 2001 года. 21 марта 2002 года агент поддержал yEnc с версией 1.91. [12] [13] По отзывам Юргена Хельбинга релиз был отложен на неделю. [14] [15] Через пару дней после релиза Юрген Хельбинг написал, что Forté реализовала yEnc наилучшим образом . [16]
В Stuffit Deluxe добавлена поддержка yEnc в версии 8.0 в 2003 году. [17] [18] В PowerArchiver 9.2 добавлена поддержка yEnc в мае 2005 года. [19]
Ссылки
[ редактировать ]- ^ Хелбинг, Юрген (28 февраля 2002 г.). «yEncode — быстрое и грязное кодирование двоичных файлов» . Проверено 26 июля 2014 г.
- ^ Товарищи, Г. (2006). «Возрождение групп новостей – ренессанс бинарной публикации». Цифровое расследование . 3 (2): 73–78. дои : 10.1016/j.diin.2006.04.006 . ISSN 1742-2876 .
- ^ Jump up to: а б Ким, Джухун; Шнайдер, Фабиан; Агер, Бернхард; Фельдманн, Аня (2010). «Сегодняшнее использование Usenet: характеристика трафика NNTP». 2010 Конференция INFOCOM IEEE по компьютерным коммуникациям . стр. 1–6. CiteSeerX 10.1.1.679.6023 . дои : 10.1109/INFCOMW.2010.5466665 . ISBN 978-1-4244-6739-6 . S2CID 18282467 .
- ^ Высокое разрешение: руководство по персональным технологиям от А до Я. 2006. с. 353. ИСБН 978-0618714896 .
Хотя для yEnc не существует официальных стандартов, он широко используется для публикации двоичных файлов в группах новостей.
- ^ «Поддержка Yenc в Thunderbird?» . org.mozilla.lists.support-thunderbird (список рассылки). 18 мая 2006 г.
- ^ Хельбинг, Юрген (10 июня 2002 г.). «Противники yEnc» . yenc.org . Архивировано из оригинала 28 августа 2013 года.
- ^ Никсон, Джереми (17 марта 2002 г.). «Почему yEnc вреден для Usenet» . Архивировано из оригинала 29 августа 2013 года.
- ^ Уэлч, Курт (19 сентября 2002 г.). «Что не так с yEnc?» . Архивировано из оригинала 11 августа 2013 года.
- ^ Фербер, Клаус (4 марта 2002 г.). «yEnc считается вредным» . Архивировано из оригинала 1 июня 2009 года.
- ^ «Оригинальный проект yEnc 1.0» . 31 июля 2001 г.
- ^ Юрген «Архиватор» Хельбинг. «Новые возможности версии 1.9» . www.winews.net .
- ^ «Агент 1.91 выпущен» . forteinc.com .
Агент 1.91 обеспечивает полную поддержку yEnc, нового алгоритма кодирования Usenet для двоичных файлов.
- ^ Спанбауэр, Скотт (август 2002 г.). «Контроль версий — последние настройки программного обеспечения (слушайте мир радиостанций в Интернете)». Мир ПК . 20 (8): 138–139.
В версии 1.92 программы чтения новостей Usenet от Forté добавлена папка для мусора, улучшены некоторые существующие функции и исправлены различные ошибки; но более важным, чем исправления и улучшения, является добавленная поддержка приложением алгоритма двоичного кодирования YEnc.
- ^ «Агенту 1.91 нужна еще одна неделя» . Форте . 15 марта 2002 г.
- ^ «Отзыв Юргена Хельбинга о yEnc и Агенте 1.91» . Форте . 17 марта 2002 г.
- ^ Хельбинг, Юрген (22 марта 2002 г.). «Forte Agent 1.91 поддерживает yEnc» .
- ^ Селлерс, Деннис (22 сентября 2003 г.). «В StuffIt Deluxe 8.0 добавлены новые плагины и повышена производительность» . Макмир .
- ^ Брин, Кристофер (июль 2004 г.). «Stufflt Deluxe 8.0». Макмир . 21 (7): 40.
- ^ Ричард В. Драган (4 мая 2005 г.). «Сжатие файлов: PowerArchiver 9.2» .