yEnc - yEnc

yEnc je schéma kódování binárních textů pro přenos binárních souborů ve zprávách na Usenetu nebo prostřednictvím e-mailu . Snižuje režii oproti předchozím metodám kódování založeným na US-ASCII pomocí 8bitové metody kódování. Režie yEnc je často (pokud se každá hodnota bajtu objevuje přibližně se stejnou frekvencí v průměru) jen 1–2%, ve srovnání s 33–40% režie u 6bitových metod kódování, jako je uuencode a Base64 . yEnc byl původně vyvinut společností Jürgen Helbing a jeho první vydání bylo počátkem roku 2001. V roce 2003 se yEnc stal de facto standardním systémem kódování binárních souborů na Usenetu. Jméno yEncode je slovní hříčka na téma „Proč kódovat?“ , protože myšlenkou je kódovat znaky pouze tehdy, je -li to absolutně nutné dodržovat standard formátu zprávy.

Jak funguje yEnc

Usenet a těla e -mailových zpráv měly obsahovat pouze znaky ASCII ( RFC  822 nebo RFC  2822 ). Většina konkurenčních kódování představuje binární soubory jejich převedením na tisknutelné znaky ASCII, protože rozsah tisknutelných znaků ASCII podporuje většina operačních systémů. Protože to však podstatně snižuje dostupnou znakovou sadu, existuje přes 8bitové bajtové sítě značná režie (zbytečná šířka pásma). Například v uuencode a Base64 jsou tři bajty dat zakódovány do čtyř tisknutelných znaků ASCII, což se rovná čtyřem bajtům, 33% režii (nezahrnuje režii ze záhlaví). yEnc používá jeden znak (jeden bajt) k reprezentaci jednoho bajtu souboru, až na několik výjimek.

yEnc předpokládá, že binární data lze většinou přenášet přes Usenet a e -mail. Proto je 252 z 256 možných bytů předáno nekódovaně jako jeden bajt, ať už je výsledkem tisknutelný znak ASCII nebo ne. Pouze NUL , LF , CR jsou a = unikl . LF a CR jsou uniklé, protože RFC, které definují internetové zprávy, stále vyžadují, aby návraty vozíku a řádkové kanály měly v poštovní zprávě zvláštní význam. = je úniková postava, takže sama unikne. NUL je také unikl kvůli problémům se zpracováním nulových znaků v běžném kódu, i když jako optimalizace yEnc přidává 42 do každého zdrojového bajtu, takže, ne neobvyklé, dlouhé úseky nulových bytů nevyžadují mnoho úniků.

Neexistuje žádný dokument RFC nebo jiný standard popisující yEnc. Domovská stránka yEnc obsahuje návrh neformální specifikace a gramatiku (která je v rozporu s RFC  2822 a RFC  2045 ), přestože ani jedna nebyla předložena pracovní skupině pro internetové inženýrství .

Stejně jako uuencoding, i přes své nedostatky, yEnc zůstává aktivní a efektivní na Usenet. Na domovské stránce yEnc je uvedeno, že „ všechny hlavní čtečky novinek byly rozšířeny o podporu yEnc “. Microsoft ‚s Outlook Express , Windows Mail a Windows Live Mail neposkytují podporu yEnc buď pro zprávy nebo e-mailem, ale tam jsou plug-inů k dispozici. Mozilla Thunderbird dekóduje jednodílné soubory yEnc, ale není schopen kombinovat vícedílné binární soubory.

Problémy

Mnoho programátorů a správců zpráv nastínilo slabiny yEnc. Trpí mnoha stejnými vadami jako uuencode, přičemž řadu z nich již vyřešil před lety MIME (který řešil stejné chyby v uuencode). Například yEnc vyžaduje, aby byly řetězce „= ybegin“ a „= yend“ umístěny kolem kódovaného souboru v těle zprávy. Ačkoli se jedná o vylepšení oproti „begin“ a „end“ uuencode, které se v běžném textu vyskytují častěji, mohou se čtečky zpráv stále setkávat s řetězci mimo přílohy (nejčastěji v diskusích o samotném yEnc). yEnc a uuencode se také pokoušejí znovu sestavit soubory rozdělené do více zpráv pomocí předmětu, který je nespolehlivý.

Přijetí yEncode

Návrh návrhu dokumentu yEncode byl zpřístupněn 31. července 2001. Referenční kodér a dekodér byl v listopadu téhož roku součástí freeware verze MyNews 1.9. yDec, freeware dekodér win32, přišel 14. listopadu 2001. Dne 21. března 2002 agent podporoval yEnc s verzí 1.91. Kvůli zpětné vazbě od Juergen Helbing bylo vydání odloženo o jeden týden. Několik dní po vydání napsal Jürgen Helbing, že Forté implementovalo yEnc tím nejlepším způsobem, jaký si lze představit .

Stuffit Deluxe přidal podporu yEnc s verzí 8.0 v roce 2003. PowerArchiver 9.2 přidal podporu yEnc v květnu 2005.

Reference

externí odkazy