Zstandard 流 (.zst)

IETF 标准

Zstandard (Zstd) 是 Meta 推出的现代实时无损压缩算法,在现代硬件上能够提供可媲美 Deflate.

将 ZSTD 转换为 GZIP

免费的浏览器端 ZSTD 转 GZIP 转换器。在您的设备上即时转换文件。

检查与元数据

操作系统和文件分析器通过检查开头的二进制字节序列来识别 Zstandard 文件:

选择或将文件拖放到此处

隐私保护 - 文件不会离开您的设备

或粘贴 Ctrl+V
零网络传输隐私保证: 上传至外部服务器的数据为 0 字节。所有处理均在您的浏览器沙箱中本地完成。

字节级文件头签名 (魔数)

操作系统和文件分析器通过检查开头的二进制字节序列来识别 Zstandard 文件:

十六进制签名 (偏移量 0):

28 B5 2F FD

ASCII 表示形式: (µ/ý

标准化: IETF RFC 8878

技术规格

容器架构帧头(魔数 0xFD2FB528)、帧描述符、数据块和可选的 32 位/64 位校验和
压缩方式有限状态熵(FSE)编码器、霍夫曼编码和 LZ77(搜索窗口最大可达 2 GB)
字节序字节和比特流均采用小端序
色彩空间不适用(数据压缩流)
通道与结构通用字节流压缩
最大尺寸支持无限长度的流式数据
透明度100% 按位精确地无损还原数据
流式传输与渐进式加载超高吞吐量流式处理,专为充分利用多 Gb/s NVMe 和网络链路而设计

技术对比矩阵:Zstandard 对比同类产品

技术属性Zstandard (当前)GZBROTLILZ4
解压速度极快(1.5 - 3.0 GB/s)中等(约 300 MB/s)快(约 400 MB/s)极快(约 4.0 GB/s)
压缩效率压缩效率高于 Gzip,与 Bzip2 相当基准标准网页文本中最高较低(注重速度)
字典训练自定义训练字典无固定的 120 KB 网页字典无
现代操作系统采用情况Linux 内核、Arch、Fedora、Btrfs部分旧版 Unix 发行版提供网页浏览器与 CDN 边缘Linux 内核与游戏引擎

常见损坏模式与十六进制恢复指南

解压错误:“ZSTD_error_checksum_wrong: Checksum verification failed”(校验和验证失败)。

根本原因: 数据块中的字节损坏,导致 32 位或 64 位 xxHash 校验失败。

恢复方法: 使用“--force”参数提取以绕过校验和,或使用 File2File.app Zstd 转换器修复。

安全分析与解析器攻击向量

Zstandard 的 FSE 解码状态机必须严格验证表描述,以防止非法的状态跳转。

已知攻击向量

  • 损坏的 FSE 归一化计数器表导致越界状态表查找。
  • 大窗口缓冲区分配期间发生整数溢出。
  • 通过自定义字典耗尽内存来实施拒绝服务攻击。

防御性最佳实践: 验证帧头窗口大小限制并限制最大允许的字典分配。

历史渊源与里程碑

2021IETF 将 Zstandard 发布为 RFC 8878;各大 Linux 发行版(如 Arch、Fedora、Ubuntu)将其用于软件包打包。
2018Linux 内核 4.14 引入了针对 Btrfs 和 SquashFS 文件系统的 Zstandard 压缩支持。
2015Yann Collet 在 Facebook 发布 Zstandard,引入了有限状态熵(FSE)技术。

核心优势与特点

  • 惊人的解压速度:单核解压速度可达 1.5 到 3.0 GB/s,使高速 NVMe SSD 达到饱和。
  • 高度灵活的压缩级别:提供 22 级压缩,从闪电般的实时处理到极致紧凑的归档无所不包。
  • 通过自定义字典训练,在 JSON 和数据库行等小型记录上可实现 3 到 5 倍的压缩率提升。

技术局限与劣势

  • 在大窗口大小的高级别压缩期间,内存占用略高于传统的 Deflate。
  • 需要现代工具链支持;老旧的 Unix 服务器可能未预装 zstd 工具。
  • 原始的 .zst 流需要容器化(如 TAR)以保留目录层级结构。

趣味技术冷知识

  • Zstandard 使用了有限状态熵(tANS),这是一种由 Jarek Duda 开发的突破性非对称数制技术,能够以硬件级速度达到香农熵极限。
  • Arch Linux 和 Fedora 将其包管理器(pacman 和 dnf)切换至 .tar.zst,使软件安装速度提升了 400% 以上。
  • 魔数 0x28 0xB5 0x2F 0xFD 经过专门选择,既易于识别,也能避免与旧格式冲突。

常见技术问题

为什么 Zstandard 正在现代 Linux 中取代 Gzip?

Zstandard 压缩的文件比 Gzip 更小,同时解压速度快 5 到 10 倍,大大缩短了软件安装时间并降低了服务器 CPU 使用率。

什么是 Zstd 中的字典压缩?

Zstd 可以通过一组小文件(如 JSON API 响应)进行训练来创建自定义字典,从而通过引用共享模式使后续文件的压缩率提升高达 5 倍。

如何解压 .zst 或 .zstd 文件?

您可以直接在网页浏览器中使用 File2File.app 解压 .zst 和 .tar.zst 文件,无需安装命令行工具。