Raw DEFLATE (.deflate)
IETF ŠtandardDEFLATE je najrozšírenejší algoritmus bezstratovej kompresie dát v histórii výpočtovej techniky, ktorý už viac ako tri desaťročia poháňa archívy ZIP, prúdy GZIP, obrázky PNG a webovú kompresiu HTTP.
Konvertovať GZIP do DEFLATE
Bezplatný konvertor z GZIP do DEFLATE priamo v prehliadači. Konvertujte súbory okamžite vo svojom zariadení.
Preskúmať a metadáta
Operačné systémy a analyzátory súborov identifikujú súbory DEFLATE kontrolou počiatočnej binárnej bajtovej sekvencie:
Podpis hlavičky na úrovni bajtov (Magic Bytes)
Operačné systémy a analyzátory súborov identifikujú súbory DEFLATE kontrolou počiatočnej binárnej bajtovej sekvencie:
HEXADECIMÁLNY PODPIS (OFFSET 0):
78 9C / 78 01 / 78 DAASCII REPREZENTÁCIA: xœ / x. / xÚ
Štandardizácia: IETF RFC 1951 / RFC 1950 (zlib)
Technické špecifikácie
| Architektúra kontajnera | Raw RFC 1951 bitstream or RFC 1950 zlib-wrapped stream with 2-byte header and Adler-32 checksum |
| Kompresia | LZ77 sliding dictionary (up to 32 KB window) combined with dynamic/static Huffman entropy coding |
| Poradie bajtov (Endianness) | Little-Endian bit-packing order |
| Farebné priestory | N/A (Data Compression Stream) |
| Kanály a štruktúra | Raw binary or text data stream |
| Max. rozmery | Unbounded stream length |
| Priehľadnosť | 100% bit-exact lossless data reproduction |
| Streamovanie a postupné načítavanie | Block-based bitstream supports arbitrary continuous byte streaming |
Technická porovnávacia matica: DEFLATE vs konkurenti
| Technický atribút | DEFLATE (Aktuálne) | GZ | BROTLI | ZSTD |
|---|---|---|---|---|
| Štandardizácia | IETF RFC 1951 (Surový) / RFC 1950 (zlib) | IETF RFC 1952 (Gzip) | IETF RFC 7932 (Brotli) | IETF RFC 8878 (Zstandard) |
| Posuvné okno | Maximálne 32 kilobajtov | Maximálne 32 kilobajtov | Až 16 megabajtov | Až 2 gigabajty |
| Režim kontrolného súčtu | Adler-32 (v obale zlib) | CRC-32 (v obale gzip) | Žiadny vstavaný prúd | xxHash64 (64-bitový rýchly hash) |
| Každodenné použitie | Obrázky PNG, prúdy PDF, ZIP | Unix .tar.gz, HTTP gzip | Webové fonty (WOFF2), HTTP br | Jadro Linuxu, databázy, hranie hier |
Bežné režimy poškodenia a príručka na obnovu v hexadecimálnom kóde
Dekompresia zlyhá s hlásením „Z_DATA_ERROR: incorrect data check".
Hlavná príčina: Nesúlad v 4-bajtovom kontrolnom súčte Adler-32 na konci prúdu zabaleného v knižnici zlib.
Obnova: Obíďte overenie Adler-32 použitím surovej dekompresie (raw inflate) alebo opravte pomocou nástroja File2File Deflate Recovery.
Bezpečnostná analýza a vektory útokov na parser
Analyzátory DEFLATE musia prísne overovať kódy na konštrukciu Huffmanovho stromu, aby sa predišlo zápisom mimo vyhradenú pamäť pomocou ukazovateľov.
Známe vektory útokov
- Neúplné alebo preťažené tabuľky dĺžok bitov dynamického Huffmanovho stromu spôsobujúce neplatné čítanie pamäte.
- Dekompresná bomba (zip bomb), ktorá rozbalí malé užitočné zaťaženie na stovky gigabajtov pamäte RAM.
- Prečítanie nad rámec vyhradenej vyrovnávacej pamäte v neoverených kódoch vzdialenosti posuvného okna.
Najlepšie obranné postupy:
Historický pôvod a míľniky
Kľúčové výhody a prednosti
- Nespochybniteľný globálny štandard: implementovaný v hardvéri, operačných systémoch a každom programovacom prostredí.
- Dizajn bez licenčných poplatkov a patentov zaručuje otvorený prístup v celom odvetví výpočtovej techniky.
- Rýchla dekompresia s minimálnou náročnosťou na pamäť (vyžaduje si iba 32 KB pamäte posuvného okna).
Technické obmedzenia a nevýhody
- Posuvné okno je obmedzené na 32 KB, čo znižuje účinnosť kompresie pri veľkých súboroch so vzdialenými redundanciami.
- Nižší kompresný pomer pri moderných webových dátach v porovnaní s novšími algoritmami, ako sú Brotli a Zstandard.
- Surové prúdy DEFLATE neobsahujú samopopisné metadáta ani kontajnerové rámovanie bez obalov zlib alebo gzip.
Zaujímavé technické drobnosti
- Phil Katz vynájde DEFLATE po tom, čo ho spoločnosť Unisys zažalovala kvôli patentovanému algoritmom LZW používanému v skorších nástrojoch PKARC.
- Štandardné hlavičkové bajty zlib „78 9C" označujú predvolenú kompresiu, „78 01" nízku kompresiu a „78 DA" maximálnu kompresiu.
- Každý obrázok PNG na svete používa DEFLATE na kompresiu svojich pixelových blokov IDAT.
Často kladené technické otázky
Aký je rozdiel medzi algoritmom DEFLATE, knižnicou zlib a gzip?
DEFLATE je surový kompresný algoritmus (RFC 1951). Zlib obaľuje DEFLATE 2-bajtovou hlavičkou a kontrolným súčtom Adler-32 (RFC 1950). Gzip obaľuje DEFLATE metadátami súboru a kontrolným súčtom CRC-32 (RFC 1952).
Prečo formát PNG používa kompresiu DEFLATE?
Formát PNG bol vytvorený v roku 1995 ako náhrada za GIF bez použitia patentovaných algoritmov LZW, pričom pre kompresiu zvolil otvorený a licenčne voľný algoritmus DEFLATE.
Ako môžem dekomprimovať surový súbor .deflate?
Surové bajtové prúdy DEFLATE alebo zlib môžete dekomprimovať do pôvodných nekomprimovaných súborov pomocou aplikácie File2File.app priamo vo webovom prehliadači.
Súvisiace konverzné páry pre DEFLATE
Konverzia GZIP prúdu na surový DEFLATE odstraňuje vonkajší obal súboru a metadáta hlavičky, pričom ponecháva iba komprimovaný užitočný obsah pre špecializované sieťové protokoly a nízkoúrovňové archívy.
Konverzia surového DEFLATE streamu na GZIP stream zabalí komprimované užitočné zaťaženie do štandardného kontajnera s hlavičkami metadát, aby ho operačné systémy a webové nástroje mohli správne prečítať.