Потік Zstandard (.zst)

IETF Стандарт

Zstandard (Zstd): це сучасний алгоритм стиснення без втрат у реальному часі від Meta, що забезпечує коефіцієнти стиснення, порівнянні з Deflate.

Конвертувати з ZSTD у GZIP

Безкоштовний конвертер з ZSTD у GZIP у браузері. Миттєво конвертуйте файли на своєму пристрої.

Аналіз та метадані

Операційні системи та аналізатори файлів ідентифікують файли Zstandard, перевіряючи початкову послідовність бінарних байтів:

Виберіть або перетягніть файли сюди

Приватно - файли ніколи не залишають ваш пристрій

або вставте Ctrl+V
Гарантія конфіденційності без передавання даних мережею: Жодного байта не передано на зовнішні сервери. Уся обробка відбувалася локально в ізольованому середовищі браузера.

Сигнатура заголовка на байтовому рівні (Magic Bytes)

Операційні системи та аналізатори файлів ідентифікують файли Zstandard, перевіряючи початкову послідовність бінарних байтів:

ШІСТНАДЦЯТКОВА СИГНАТУРА (ЗСУВ 0):

28 B5 2F FD

ПОДАННЯ В ASCII: (µ/ý

Стандартизація: IETF RFC 8878

Технічні характеристики

Архітектура контейнераЗаголовок кадру з магічним числом 0xFD2FB528, дескриптор кадру, блоки даних і необов’язкова 32- або 64-бітна контрольна сума
СтисненняКодер Finite State Entropy (FSE) + кодування Хаффмана + LZ77 з великими вікнами пошуку (до 2 ГБ)
Порядок байтів (Endianness)Порядок байтів і бітових потоків Little-Endian
Колірні просториНе застосовується (потік стиснення даних)
Канали та структураУніверсальне стиснення байтового потоку
Максимальні розміриНеобмежена ємність потокових даних
Прозорість100% побітово точне відтворення даних без втрат
Потокове та прогресивне завантаженняПотік із надзвичайно високою пропускною здатністю, розрахований на насичення багатогігабітних NVMe та мережевих підключень

Технічна матриця порівняння: Zstandard проти конкурентів

Технічний атрибутZstandard (Поточний)GZBROTLILZ4
Швидкість декомпресіїУльтрашвидка (1.5: 3.0 ГБ/с)Помірна (~300 МБ/с)Швидка (~400 МБ/с)Блискавична (~4.0 ГБ/с)
Ефективність стисненняВища за Gzip, відповідає Bzip2Базовий стандартНайвища для вебтекстуНизька (з акцентом на швидкість)
Навчання словниківКористувацькі навчені словникиВідсутнєФіксований вебсловник 120 КБВідсутнє
Прийняття сучасними ОСЯдро Linux, Arch, Fedora, BtrfsДоступний у деяких старих дистрибутивах UnixВеббраузери та периферійні вузли CDNЯдро Linux і ігрові рушії

Типові режими пошкодження та посібник з відновлення в шістнадцятковому форматі

Помилка декомпресії: 'ZSTD_error_checksum_wrong: Checksum verification failed'.

Першопричина: Пошкоджений байт у блоці даних, через що перевірка 32-бітної або 64-бітної контрольної суми xxHash завершилася невдало.

Відновлення: Витягуйте з прапорцем '--force', щоб обійти контрольну суму, або відновіть за допомогою File2File.app Zstd Converter.

Аналіз безпеки та векторів атак на парсери

Машина станів декодування FSE у Zstandard повинна ретельно перевіряти описи таблиць, щоб запобігти неприпустимим переходам між станами.

Відомі вектори атак

  • Пошкоджені нормалізовані таблиці лічильників FSE, що призводять до виходу за межі діапазону під час пошуку в таблиці станів.
  • Переповнення цілих чисел під час виділення пам'яті під буфер великого вікна.
  • Відмова в обслуговуванні через вичерпання пам’яті під час використання користувацького словника.

Рекомендації щодо захисту: Перевіряйте ліміти розміру вікна заголовка кадру та обмежуйте максимально дозволені обсяги виділення пам'яті під словник.

Історичне походження та віхи

2021IETF публікує Zstandard як RFC 8878; основні дистрибутиви Linux (Arch, Fedora, Ubuntu) приймають його для упакування.
2018Ядро Linux 4.14 включає стиснення Zstandard для файлових систем Btrfs і SquashFS.
2015Ян Коллет випускає Zstandard у Facebook, представляючи технологію Finite State Entropy (FSE).

Основні переваги

  • Неймовірна швидкість декомпресії: розпаковує від 1.5 до 3.0 ГБ/с на одне ядро, повністю завантажуючи високошвидкісні твердотільні накопичувачі NVMe.
  • Гнучка шкала стиснення: має 22 рівні: від блискавично швидкого стиснення в реальному часі до надщільного архівного.
  • Тренування власних словників дає змогу стискати невеликі записи, як-от JSON і рядки баз даних, у 3: 5 разів ефективніше.

Технічні обмеження та недоліки

  • Дещо більші витрати пам'яті порівняно із застарілим Deflate під час стиснення високого рівня з великими розмірами вікна.
  • Вимагає сучасних інструментів; старі сервери Unix можуть не мати попередньо встановлених утиліт zstd.
  • Сирі потоки .zst вимагають контейнеризації (наприклад, TAR) для збереження ієрархії каталогів.

Цікаві технічні факти

  • Zstandard використовує метод скінченної ентропії станів (tANS): прорив у системах асиметричного числення, розроблений Яреком Дудою, який досягає лімітів ентропії Шеннона на апаратних швидкостях.
  • Arch Linux і Fedora перевели свої менеджери пакетів (pacman і dnf) на .tar.zst, прискоривши встановлення програмного забезпечення більш ніж на 400%.
  • Магічні байти 0x28 0xB5 0x2F 0xFD були обрані так, щоб їх було легко впізнати та уникнути колізій із застарілими форматами.

Поширені технічні запитання

Чому Zstandard замінює Gzip у сучасному Linux?

Zstandard стискає файли краще за Gzip і розпаковує їх у 5: 10 разів швидше, що різко скорочує час встановлення програмного забезпечення та навантаження на процесор сервера.

Що таке словникове стиснення в Zstd?

Zstd може навчатися на наборі невеликих файлів (наприклад, відповідей API у форматі JSON), щоб створити власний словник. Завдяки посиланню на спільні шаблони він дає змогу стискати наступні файли до п’яти разів ефективніше.

Як розпакувати файл .zst або .zstd?

Ви можете розпаковувати файли .zst та .tar.zst безпосередньо у своєму веббраузері за допомогою File2File.app без встановлення інструментів командного рядка.