yEnc
yEnc to schemat kodowania binarnego na tekst do przesyłania plików binarnych w wiadomościach w sieci Usenet lub za pośrednictwem poczty e-mail . Zmniejsza narzut w porównaniu z poprzednimi metodami kodowania opartymi na US-ASCII dzięki użyciu 8-bitowej metody kodowania. Narzut yEnc wynosi często (jeśli każda wartość bajtu pojawia się średnio z mniej więcej tą samą częstotliwością) zaledwie 1–2%, w porównaniu z 33–40% narzutu dla 6-bitowych metod kodowania, takich jak uuencode i Base64 . yEnc został pierwotnie opracowany przez Jürgena Helbinga, a jego pierwsze wydanie miało miejsce na początku 2001 roku. Do 2003 roku yEnc stał się de facto standardowym systemem kodowania plików binarnych w Usenecie. Nazwa yEncode to gra słów na temat „Dlaczego kodować?” , ponieważ pomysł polega na kodowaniu znaków tylko wtedy, gdy jest to absolutnie wymagane do przestrzegania standardu formatu wiadomości.
Jak działa yEnc
Treści wiadomości Usenet i e-mail miały zawierać tylko znaki ASCII ( RFC 822 lub RFC 2822 ). Większość konkurencyjnych kodowań reprezentuje pliki binarne, konwertując je na drukowane znaki ASCII, ponieważ zakres drukowalnych znaków ASCII jest obsługiwany przez większość systemów operacyjnych. Ponieważ jednak znacznie zmniejsza to dostępny zestaw znaków, występuje znaczny narzut (zmarnowana przepustowość) w sieciach 8-bitowych. Na przykład w uuencode i Base64 trzy bajty danych są kodowane w cztery drukowane znaki ASCII, co odpowiada czterem bajtom, czyli 33% narzutu (nie licząc narzutu z nagłówków). yEnc używa jednego znaku (jednego bajtu) do reprezentowania jednego bajtu pliku, z kilkoma wyjątkami.
yEnc zakłada, że dane binarne mogą być przesyłane głównie przez Usenet i pocztę elektroniczną. W związku z tym 252 z 256 możliwych bajtów jest przepuszczanych w postaci niezakodowanej jako pojedynczy bajt, niezależnie od tego, czy wynikiem jest drukowalny znak ASCII, czy nie. Tylko NUL , LF , CR i = są znakami ucieczki . LF i CR są znakami ucieczki, ponieważ dokumenty RFC definiujące Internet wiadomości nadal wymagają, aby powrót karetki i nowy wiersz miały specjalne znaczenie w wiadomości pocztowej. = jest znakiem ucieczki, więc sam jest znakiem ucieczki. NUL jest również zmieniany z powodu problemów z obsługą znaków null w powszechnym kodzie, chociaż w ramach optymalizacji yEnc dodaje 42 do każdego bajtu źródłowego, więc nierzadko długie odcinki zerowych bajtów nie wymagają wielu ucieczek.
Nie ma dokumentu RFC ani innego standardowego dokumentu opisującego yEnc. Strona główna yEnc zawiera szkic nieformalnej [ potrzebne źródło ] specyfikacji i gramatyki (która jest sprzeczna z RFC 2822 i RFC 2045 ), [ potrzebne źródło ], chociaż żadne z nich nie zostało przesłane do Internet Engineering Task Force . [ potrzebne źródło ]
Podobnie jak w przypadku uuencoding, pomimo swoich wad, yEnc pozostaje [ kiedy? ] aktywny i skuteczny w sieci Usenet. [ potrzebne źródło ] Strona główna yEnc informuje, że " wszystkie główne czytniki wiadomości zostały rozszerzone o obsługę yEnc ". Microsoft Outlook Express , Windows Mail i Windows Live Mail nie zapewniają obsługi yEnc ani dla wiadomości, ani dla poczty, ale są dostępne wtyczki . Mozilla Thunderbird dekoduje jednoczęściowe pliki yEnc, ale nie jest w stanie łączyć wieloczęściowych plików binarnych.
Problemy
Wielu programistów i administratorów wiadomości nakreśliło słabości yEnc. Ma wiele takich samych wad jak uuencode, z których wiele zostało już rozwiązanych wiele lat wcześniej przez MIME (który rozwiązał te same wady w uuencode). Na przykład yEnc wymaga, aby ciągi znaków „=ybegin” i „=yend” były umieszczone wokół zakodowanego pliku w treści wiadomości. Chociaż jest to ulepszenie w stosunku do „początku” i „końca” uuencode, które występują częściej w normalnym tekście, czytelnicy wiadomości nadal mogą napotkać ciągi znaków poza załącznikami (najczęściej w dyskusjach o samym yEnc). yEnc i uuencode [ potrzebne źródło ] również próbują ponownie złożyć pliki podzielone na wiele wiadomości za pomocą wiersza tematu, co jest niewiarygodne. [ według kogo? ]
yAdopcja kodu
Projekt dokumentu z propozycją yEncode został udostępniony 31 lipca 2001 r. Referencyjny koder i dekoder został dołączony do darmowej wersji MyNews 1.9 w listopadzie tego roku. yDec, darmowy dekoder win32, pojawił się 14 listopada 2001 r. 21 marca 2002 r. Agent obsługiwał yEnc w wersji 1.91. Ze względu na opinie Juergena Helbinga premiera została przesunięta o tydzień. Kilka dni po premierze Jürgen Helbing napisał, że Forté zaimplementowało yEnc w najlepszy możliwy sposób .
Stuffit Deluxe dodał obsługę yEnc w wersji 8.0 w 2003 roku. PowerArchiver 9.2 dodał obsługę yEnc w maju 2005 roku.
Linki zewnętrzne
- Strona główna yEnc
- Tekst specyfikacji yEnc
- „Historia B-News i jego młodszego brata, YEnca”.
- „Dlaczego yEnc jest dobry dla Usenetu”