WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте

yEnc — популярная схема кодирования двоичных файлов в текстовые, применяемая преимущественно пользователями Usenet. Так же используется при отправке больших двоичных файлов по электронной почте. По сравнению с другими схемами кодирования двоичных данных в текстовые более эффективна за счёт того, что использует не только символы из 7-битной таблицы ASCII, но и часть символов из расширенной таблицы ASCII. За счёт этого, размер файлов, закодированных при помощи yEnc, превышает размер исходных всего на 1-2 %[1]. Это — существенное преимущество по сравнению с 33 %-40 % дополнительным объёмом для шестибитных методов кодирования, таких как uuencode и Base64. Первая версия yEnc была выпущена Jürgen Helbing в начале 2001. К 2003 yEnc получил широкое распространение, став стал стандартом де-факто для кодирования двоичных файлов в Usenet.[2] Название yEncode — игра слов от «Why encode?» («Зачем кодировать?»), — шутка, возникшая в связи с тем, что основной идеей yEnc было то, что кодировать нужно только те символы двоичного файла, для которых это безоговорочно требовалось, чтобы поместить их в текст письма, соответствующий техническим стандартам RFC.[3]

Ещё одним достоинством yEnc по сравнению uuencode, Base64 и другими предшествующими техниками, является код CRC, позволяющий проверить, что исходный файл корректно собран и восстановлен из отдельных фрагментов, переданных по почте.

Как работает yEnc

В соответствии с RFC 822 и RFC 2822, сообщения электронной почты Usenet должны содержать только символы 7-битной кодовой таблицы ASCII. Однако на практике это ограничение давно не соблюдается и абсолютное большинство современного программного обеспечения штатно передаёт 8-битные символы в теле писем. С точки зрения yEnc из 256 возможных двоичных символов 252 могут быть переданы внутри письма в виде единичного байта, вне зависимости от того, отображается этот симвод на экране компьютера или нет. Символы NUL, LF, CR, и = (знак равенства) кодируются специальным образом. Для LF и CR причина сделанного исключения состоит в том, что эти символы внутри письма, с точки зрения RFC имеют специальный смысл. NUL — в связи со сложностями обработки строк, содержащих внутри себя этот символ в некоторых языках программирования и из соображений оптимизации алгоритмов обработки yEnc. Символ = используется в качестве Escape-символа.

Проблемы и критика

Ряд критиков указывал на слабые места yEnc.[4][5][6][7]

Они указывали, в частности, что yEnc страдает теми же изъянами более распространённого uuencode, которые давным давно были решены в почтовом стандарте MIME. Например, yEnc требует, чтобы строки «=ybegin» и «=yend» были помешены в текст письма, ограничивая передаваемый в этом письме фрагмент двоичного файла.[3]

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

Критика так же касалась отсутствия формального стандарта, описывающего yEnc.

Среди предложений о доработке yEnc так же звучала идея интегрировать уEnc в MIME, что, по всей видимости, избавило бы yEnc от большинства приписываемых этой технике кодирования недостатков. Однако, никаких практических шагов по реализации своих идей критики yEnc так и не предприняли, поэтому yEnc продолжает сейчас применяться в том виде, в каком он был определён автором технологии.

Стандартизация и поддержка в программном обеспечении

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

yEnc напрямую поддерживается программой чтения новостей Usenet Forte Agent. Так же существует ряд утилит других производителей, которые позволяют использовать yEnc в сочетании с другими программами чтения почты и новостей.

Для программ Outlook Express, Windows Mail и Windows Live Mail существуют плагины независимых производителей, позволяющих использовать эту технологию. Mozilla Thunderbird поддерживает yEnc с ограничениями. Этот почтовый клиент не может раскодировать файлы, разбитые на несколько писем.[8]

Примечания

  1. ↑ Helbing, Juergen yEncode - A quick and dirty encoding for binaries (28 февраля 2002). Проверено 26 июля 2014.
  2. ↑ Fellows, G. (2006). “Newsgroups reborn – The binary posting renaissance”. Digital Investigation. 3 (2): 73—78. DOI:10.1016/j.diin.2006.04.006. ISSN 1742-2876.
  3. 1 2 Kim, Juhoon; Schneider, Fabian; Ager, Bernhard; Feldmann, Anja (2010). “Today's Usenet Usage: NNTP Traffic Characterization”: 1—6. DOI:10.1109/INFCOMW.2010.5466665.
  4. ↑ Helbing, Jürgen Opponents to yEnc. yenc.org (10 июня 2002). Архивировано 28 августа 2013 года.
  5. ↑ Nixon, Jeremy Why yEnc is bad for Usenet (17 марта 2002). Архивировано 29 августа 2013 года.
  6. ↑ Welch, Curt What's wrong with yEnc? (19 сентября 2002). Архивировано 11 августа 2013 года.
  7. ↑ Färber, Claus yEnc considered harmful (недоступная ссылка) (4 марта 2002). Архивировано 1 июня 2009 года.
  8. ↑ Yenc support in Thunderbird?. Список рассылки org.mozilla.lists.support-thunderbird (18 мая 2006).

См. также

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2026
WikiSort.ru - проект по пересортировке и дополнению контента Википедии