yEnc - yEnc

yEnc est un schéma de codage binaire-texte pour transférer des fichiers binaires dans des messages sur Usenet ou par e-mail . Il réduit la surcharge par rapport aux méthodes de codage US-ASCII précédentes en utilisant une méthode de codage 8 bits . La surcharge de yEnc est souvent (si chaque valeur d'octet apparaît approximativement avec la même fréquence en moyenne) aussi peu que 1 à 2 %, par rapport à la surcharge de 33 à 40 % pour les méthodes de codage 6 bits comme uuencode et Base64 . yEnc a été initialement développé par Jürgen Helbing, et sa première version date du début de 2001. En 2003, yEnc est devenu le système d'encodage standard de facto pour les fichiers binaires sur Usenet. Le nom yEncode est un jeu de mots sur« Pourquoi encoder ? » , car l'idée est de n'encoder les caractères que s'il est absolument nécessaire de respecter la norme de format de message.

Comment yEnc fonctionne

Usenet et les corps des messages électroniques étaient destinés à contenir uniquement des caractères ASCII ( RFC  822 ou RFC  2822 ). La plupart des encodages concurrents représentent des fichiers binaires en les convertissant en caractères ASCII imprimables, car la plage de caractères ASCII imprimables est prise en charge par la plupart des systèmes d'exploitation. Cependant, étant donné que cela réduit considérablement le jeu de caractères disponibles, il y a une surcharge importante (bande passante gaspillée) sur les réseaux à 8 bits. Par exemple, dans uuencode et Base64, trois octets de données sont codés en quatre caractères ASCII imprimables, ce qui équivaut à quatre octets, une surcharge de 33% (sans compter la surcharge des en-têtes). yEnc utilise un caractère (un octet) pour représenter un octet du fichier, à quelques exceptions près.

yEnc suppose que les données binaires peuvent principalement être transmises via Usenet et par courrier électronique. Par conséquent, 252 des 256 octets possibles sont transmis non codés sous la forme d'un seul octet, que ce résultat soit un caractère ASCII imprimable ou non. Seuls NUL , LF , CR et = sont échappés . LF et CR sont échappés car les RFC qui définissent les messages Internet exigent toujours que les retours chariot et les sauts de ligne aient une signification particulière dans un message électronique. = est le caractère d'échappement, il est donc lui-même échappé. NUL est également échappé en raison de problèmes de gestion des caractères nuls dans le code commun, bien qu'en tant qu'optimisation, yEnc ajoute 42 à chaque octet source de sorte que, ce qui n'est pas rare, les longues étendues de zéro octet ne nécessitent pas beaucoup d'échappement.

Il n'y a pas de RFC ou d'autres documents standards décrivant yEnc. La page d'accueil yEnc contient un projet de spécification informelle et une grammaire (qui contredisent les RFC  2822 et RFC  2045 ), bien qu'aucune n'ait été soumise à l' Internet Engineering Task Force .

Comme pour uuencoding, malgré ses défauts, yEnc reste actif et efficace sur Usenet. La page d'accueil yEnc indique que " tous les principaux lecteurs de nouvelles ont été étendus au support yEnc ". Microsoft de Outlook Express , Windows Mail et Windows Live Mail ne fournissent pas de soutien yEnc pour les deux nouvelles ou par courrier, mais il y a des plug-ins disponibles. Mozilla Thunderbird décodera les fichiers yEnc en une seule partie, mais n'est pas capable de combiner des binaires en plusieurs parties.

Problèmes

De nombreux programmeurs et administrateurs de nouvelles ont souligné les faiblesses de yEnc. Il souffre de bon nombre des mêmes défauts que uuencode, dont un certain nombre avait déjà été résolu des années auparavant par MIME (qui corrigeait les mêmes défauts dans uuencode). Par exemple, yEnc nécessite que les chaînes "=ybegin" et "=yend" soient placées autour du fichier encodé dans le corps du message. Bien qu'il s'agisse d'une amélioration par rapport aux "begin" et "end" de uuencode, qui se produisent plus fréquemment dans le texte normal, les lecteurs de messages peuvent toujours rencontrer les chaînes en dehors des pièces jointes (le plus souvent dans les discussions sur yEnc lui-même). yEnc et uuencode tentent également de réassembler les fichiers divisés en plusieurs messages en utilisant la ligne d'objet, ce qui n'est pas fiable.

yEncoder l'adoption

Le projet de document de proposition yEncode a été rendu disponible le 31 juillet 2001. Un encodeur et un décodeur de référence ont été inclus dans la version gratuite de MyNews 1.9 en novembre de la même année. yDec, un décodeur win32 gratuit est arrivé le 14 novembre 2001. Le 21 mars 2002, l' agent a pris en charge yEnc avec la version 1.91. En raison des commentaires de Juergen Helbing, la sortie a été reportée d'une semaine. Quelques jours après la sortie, Jürgen Helbing a écrit que Forté avait implémenté yEnc de la meilleure façon imaginable .

Stuffit Deluxe a ajouté le support yEnc avec la version 8.0 en 2003. PowerArchiver 9.2 a ajouté le support yEnc en mai 2005.

Les références

Liens externes