Strumień Zstandard (.zst)

IETF Standard

Zstandard (Zstd) to nowoczesny, bezstratny algorytm kompresji w czasie rzeczywistym autorstwa firmy Meta, zapewniający stopień kompresji porównywalny z formatem Deflate.

Konwertuj ZSTD na GZIP

Darmowy konwerter z ZSTD na GZIP w przeglądarce. Konwertuj pliki natychmiast na swoim urządzeniu.

Inspekcja i metadane

Systemy operacyjne i analizatory plików identyfikują pliki Zstandard, sprawdzając początkową sekwencję bajtów binarnych:

Wybierz lub upuść pliki tutaj

Prywatnie - pliki nigdy nie opuszczają Twojego urządzenia

lub wklej Ctrl+V
Gwarancja prywatności bez przesyłania danych do sieci: 0 bajtów przesłanych na zewnętrzne serwery. Całe przetwarzanie odbyło się lokalnie w piaskownicy przeglądarki.

Podpis nagłówka na poziomie bajtów (Magic Bytes)

Systemy operacyjne i analizatory plików identyfikują pliki Zstandard, sprawdzając początkową sekwencję bajtów binarnych:

PODPIS HEX (OFFSET 0):

28 B5 2F FD

REPREZENTACJA ASCII: (µ/ý

Normalizacja: IETF RFC 8878

Specyfikacja techniczna

Architektura konteneraNagłówek ramki z sygnaturą 0xFD2FB528, deskryptor ramki, bloki danych i opcjonalna 32-bitowa lub 64-bitowa suma kontrolna
KompresjaKoder Finite State Entropy (FSE) + kodowanie Huffmana + LZ77 z dużymi oknami wyszukiwania (do 2 GB)
Kolejność bajtów (Endianness)Kolejność bajtów i strumienia bitów Little-Endian
Przestrzenie kolorówNie dotyczy (Strumień kompresji danych)
Kanały i strukturaKompresja strumieni bajtów ogólnego przeznaczenia
Maks. wymiaryNieograniczona pojemność strumienia danych
Przezroczystość100% wierne, bezstratne odtworzenie danych bit po bicie
Streaming i progresywne ładowanieStrumieniowanie o bardzo wysokiej przepustowości, zaprojektowane z myślą o pełnym wykorzystaniu możliwości wielogigabitowych łączy NVMe i sieciowych

Techniczna macierz porównawcza: Zstandard a konkurencja

Atrybut technicznyZstandard (Bieżący)GZBROTLILZ4
Szybkość dekompresjiBardzo szybka (1,5 - 3,0 GB/s)Umiarkowana (~300 MB/s)Szybka (~400 MB/s)Błyskawiczna (>4,0 GB/s)
Skuteczność kompresjiWyższa niż Gzip, dorównuje Bzip2Standard bazowyNajwyższa w przypadku tekstów internetowychNiska (priorytetem jest szybkość)
Trenowanie słownikówSłowniki trenowane na zamówienieBrakStały słownik internetowy o rozmiarze 120 KBBrak
Obsługa w nowoczesnych systemach operacyjnychJądro Linux, Arch, Fedora, BtrfsDostępny w niektórych starszych dystrybucjach UniksaPrzeglądarki internetowe i węzły brzegowe CDNJądro Linux i silniki gier

Typowe tryby uszkodzeń i przewodnik odzyskiwania szesnastkowego

Błąd dekompresji: „ZSTD_error_checksum_wrong: Checksum verification failed”.

Główna przyczyna: Uszkodzony bajt w bloku danych powodujący niepowodzenie 32-bitowej lub 64-bitowej weryfikacji sumy kontrolnej xxHash.

Odzyskiwanie: Rozpakuj plik z flagą „--force”, aby pominąć weryfikację sumy kontrolnej, albo napraw go za pomocą konwertera Zstd w File2File.app.

Analiza bezpieczeństwa i wektory ataku na parser

Maszyna stanowa dekodowania FSE w Zstandard musi rygorystycznie weryfikować opisy tabel, aby zapobiec nieprawidłowym skokom stanów.

Znane wektory ataku

  • Uszkodzone znormalizowane tablice liczników FSE powodują odwołania do elementów tablicy stanów poza jej zakresem.
  • Przepełnienie liczby całkowitej podczas alokacji bufora dla dużego okna.
  • Atak typu odmowa usługi (DoS) poprzez wyczerpanie pamięci przez niestandardowy słownik.

Najlepsze praktyki obronne: Sprawdzaj limity rozmiaru okna w nagłówku ramki i ograniczaj maksymalny rozmiar alokowanych słowników.

Pochodzenie historyczne i kamienie milowe

2021IETF publikuje Zstandard jako RFC 8878; główne dystrybucje Linuksa (Arch, Fedora, Ubuntu) przyjmują go do pakowania oprogramowania.
2018Jądro systemu Linux 4.14 zawiera kompresję Zstandard dla systemów plików Btrfs i SquashFS.
2015Yann Collet wydaje Zstandard w firmie Facebook, wprowadzając technologię Finite State Entropy (FSE).

Główne zalety

  • Bardzo szybka dekompresja: od 1,5 do 3,0 GB/s na rdzeń, co pozwala w pełni wykorzystać szybkie dyski SSD NVMe.
  • Elastyczna skala kompresji obejmuje 22 poziomy: od błyskawicznej kompresji w czasie rzeczywistym po maksymalną kompresję do archiwizacji.
  • Trenowanie niestandardowych słowników pozwala uzyskać od 3 do 5 razy lepszą kompresję małych rekordów, takich jak JSON czy wiersze baz danych.

Ograniczenia techniczne i wady

  • Przy kompresji na wysokim poziomie i dużym rozmiarze okna zużywa nieco więcej pamięci niż starszy algorytm Deflate.
  • Wymaga nowoczesnych narzędzi; starsze serwery uniksowe mogą nie posiadać fabrycznie zainstalowanych narzędzi zstd.
  • Surowe strumienie .zst wymagają kontenerów (takich jak TAR) w celu zachowania hierarchii katalogów.

Ciekawe informacje techniczne

  • Zstandard używa Finite State Entropy (tANS), przełomowej metody z dziedziny asymetrycznych systemów liczbowych opracowanej przez Jarka Dudę, która pozwala osiągać granice entropii Shannona z prędkością typową dla sprzętu.
  • Arch Linux i Fedora zmieniły swoje menedżery pakietów (pacman i dnf) na .tar.zst, przyspieszając instalację oprogramowania o ponad 400%.
  • Bajty sygnatury 0x28 0xB5 0x2F 0xFD dobrano tak, by były łatwe do rozpoznania i nie kolidowały ze starszymi formatami.

Często zadawane pytania techniczne

Dlaczego Zstandard zastępuje Gzip we współczesnym systemie Linux?

Zstandard kompresuje pliki bardziej niż Gzip, a dekompresuje je od 5 do 10 razy szybciej, co znacznie skraca instalowanie oprogramowania i zmniejsza zużycie procesora serwera.

Czym jest kompresja słownikowa w Zstd?

Zstd może przeanalizować zestaw małych plików (np. odpowiedzi API w formacie JSON) i utworzyć na ich podstawie niestandardowy słownik. Odwołując się do wspólnych wzorców, może potem kompresować kolejne pliki do pięciu razy skuteczniej.

Jak mogę zdekompresować plik .zst lub .zstd?

Pliki .zst i .tar.zst możesz rozpakować bezpośrednio w przeglądarce za pomocą File2File.app, bez instalowania narzędzi wiersza poleceń.