YEnc - Википедия - 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 и Почта Windows Live не предоставляют yEnc поддержку ни для новостей, ни для почты, но есть плагины имеется в наличии. Mozilla Thunderbird будет декодировать файлы yEnc, состоящие из одной части, но не сможет объединить двоичные файлы, состоящие из нескольких частей.[5]
Проблемы
Многие программисты и новостные администраторы обозначили слабые стороны yEnc.[6][7][8][9] Он страдает многими из тех же недостатков, что и uuencode, ряд из которых уже был решен за много лет до этого. MIME (который устраняет те же недостатки в uuencode). Например, yEnc требует, чтобы строки «= ybegin» и «= yend» были помещены вокруг закодированного файла в теле сообщения.[3] Хотя это улучшение по сравнению с «begin» и «end» 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.
- ^ а б Ким, Джухун; Шнайдер, Фабиан; Агер, Бернхард; Фельдманн, Аня (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.
- ^ Высокое разрешение: руководство по персональным технологиям от А до Я. 2006. с. 353. ISBN 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». 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 и Agent 1.91". Форте. 17 марта 2002 г.
- ^ Хельбинг, Юрген (22 марта 2002 г.). «Forte Agent 1.91 поддерживает yEnc».
- ^ Продавцы, Деннис (22 сентября 2003 г.). "StuffIt Deluxe 8.0 получает новые плагины, повышение производительности". Macworld.
- ^ Брин, Кристофер (июль 2004 г.). «Stufflt Deluxe 8.0». Macworld. 21 (7): 40.
- ^ Ричард В. Драган (4 мая 2005 г.). «Сжатие файлов: PowerArchiver 9.2».