Neapdorotas DEFLATE (.deflate)
IETF StandartinisDEFLATE yra visur paplitęs duomenų glaudinimo be nuostolių algoritmas skaičiavimo istorijoje, jau daugiau nei tris dešimtmečius maitinantis ZIP archyvus, GZIP srautus, PNG vaizdus ir HTTP žiniatinklio glaudinimą.
Konvertuoti GZIP į DEFLATE
Nemokamas GZIP į DEFLATE konverteris naršyklėje. Konvertuokite failus akimirksniu savo įrenginyje.
Tikrinti ir metaduomenys
Operacinės sistemos ir failų analizatoriai atpažįsta DEFLATE failus tikrindami pradinę dvejetainę baitų seką:
Baitų lygio antraštės parašas (magiškieji baitai)
Operacinės sistemos ir failų analizatoriai atpažįsta DEFLATE failus tikrindami pradinę dvejetainę baitų seką:
ŠEŠIOLIKTAINIS PARAŠAS (POSLINKIS 0):
78 9C / 78 01 / 78 DAASCII ATVAIZDAVIMAS: xœ / x. / xÚ
Standartizacija: IETF RFC 1951 / RFC 1950 (zlib)
Techninės specifikacijos
| Konteinerio architektūra | Raw RFC 1951 bitstream or RFC 1950 zlib-wrapped stream with 2-byte header and Adler-32 checksum |
| Glaudinimas | LZ77 sliding dictionary (up to 32 KB window) combined with dynamic/static Huffman entropy coding |
| Baitų seka (Endianness) | Little-Endian bit-packing order |
| Spalvų erdvės | N/A (Data Compression Stream) |
| Kanalai ir struktūra | Raw binary or text data stream |
| Maksimalūs matmenys | Unbounded stream length |
| Skaidrumas | 100% bit-exact lossless data reproduction |
| Srautas ir progresyvusis įkėlimas | Block-based bitstream supports arbitrary continuous byte streaming |
Techninė palyginimo matrica: DEFLATE vs konkurentai
| Techninis atributas | DEFLATE (Dabartinis) | GZ | BROTLI | ZSTD |
|---|---|---|---|---|
| Standartizavimas | IETF RFC 1951 (Neapdorotas) / RFC 1950 (zlib) | IETF RFC 1952 (Gzip) | IETF RFC 7932 (Brotli) | IETF RFC 8878 (Zstandard) |
| Slankiojantis langas | Maksimaliai 32 kilobaitai | Maksimaliai 32 kilobaitai | Iki 16 megabaitų | Iki 2 gigabaitų |
| Kontrolinės sumos režimas | Adler-32 (zlib apvalkale) | CRC-32 (gzip apvalkale) | Nėra įmontuoto sraute | xxHash64 (64 bitų greitas maišos kodas) |
| Kasdienis naudojimas | PNG vaizdai, PDF srautai, ZIP | „Unix" .tar.gz, HTTP gzip | Žiniatinklio šriftai (WOFF2), HTTP br | „Linux" branduolys, duomenų bazės, žaidimai |
Dažni sugadinimo režimai ir šešioliktainio atkūrimo vadovas
Išskleidimas nepavyksta su klaida „Z_DATA_ERROR: incorrect data check".
Pirminė priežastis: Nesutapimas 4 baitų Adler-32 kontrolinėje sumoje zlib apvalkalo srauto pabaigoje.
Atkūrimas: Atsisakykite Adler-32 patvirtinimo naudodami neapdorotą išskleidimą arba suremontuokite naudodami „File2File Deflate Recovery".
Saugumo analizė ir analizatoriaus atakos vektoriai
DEFLATE analizatoriai privalo griežtai patvirtinti Huffman medžio konstravimo kodus, kad išvengtų atminties ribų pažeidimo rodyklės rašymo.
Žinomi atakos vektoriai
- Nepilnos arba per daug užsakytos dinaminio Huffman medžio bitų ilgio lentelės, sukeliančios neteisingus atminties skaitymus.
- Išskleidimo bomba (ZIP bomba), išskleidžianti mažytes naudingąsias apkrovas į šimtus gigabaitų RAM.
- Buferio nuskaitymas už ribų nepatvirtintuose slankiojančio lango atstumo koduose.
Geriausia apsaugos praktika:
Istorinė kilmė ir svarbiausi etapai
Pagrindiniai privalumai
- Neginčijamas pasaulinis standartas: įdiegtas aparatūroje, operacinėse sistemose ir kiekvienoje programavimo vykdymo aplinkoje.
- Patentų neturintis ir honorarų nereikalaujantis dizainas užtikrina atvirą prieigą visoje skaičiavimo technikos pramonėje.
- Greitas išskleidimas su minimaliu atminties poreikiu (reikalauja tik 32 KB slankiojančio lango atminties).
Techniniai apribojimai ir trūkumai
- Slankiojantis langas apribotas iki 32 KB, o tai sumažina glaudinimo efektyvumą dideliuose failuose su tolimais pasikartojimais.
- Mažesni glaudinimo koeficientai šiuolaikiniuose žiniatinklio ištekliuose, palyginti su naujesniais algoritmais, tokiais kaip „Brotli" ir „Zstandard".
- Neapdorotiems DEFLATE srautams trūksta save apibūdinančių metaduomenų arba konteinerio rėmelių be zlib ar gzip apvalkalų.
Įdomūs techniniai faktai
- Philas Katzas išrado DEFLATE po to, kai „Unisys" jį padavė į teismą dėl patentuoto LZW algoritmo, naudoto ankstyvosiose PKARC programose.
- Standartiniai zlib antraštės baitai „78 9C" nurodo numatytąjį glaudinimą, „78 01" - mažą glaudinimą, o „78 DA" - maksimalų glaudinimą.
- Kiekvienas PNG vaizdas Žemėje naudoja DEFLATE savo IDAT pikselių dalims suspausti.
Dažniausiai užduodami techniniai klausimai
Kuo skiriasi DEFLATE, zlib ir gzip?
DEFLATE yra pirminis suspaudimo algoritmas (RFC 1951). Zlib apgaubia DEFLATE 2 baitų antrašte ir Adler-32 kontrolinės sumos algoritmu (RFC 1950). Gzip apgaubia DEFLATE failo metaduomenimis ir CRC-32 kontroline suma (RFC 1952).
Kodėl PNG naudoja DEFLATE?
PNG formatas buvo sukurtas 1995 m. kaip GIF pakaitalas, nenaudojantis patentuotų LZW algoritmų, todėl suspaudimui pasirinktas atviras ir nemokamas DEFLATE.
Kaip galiu išskleisti neapdorotą .deflate failą?
Naudodami File2File.app tiesiogiai savo naršyklėje, galite išskleisti neapdorotus DEFLATE arba zlib baitų srautus į pradinius nesuspaustus failus.
Susijusios DEFLATE konvertavimo poros
GZIP srauto konvertavimas į grynąjį DEFLATE pašalina išorinį failo apvalkalą ir antraštės metaduomenis, paliekant tik suspaustą naudingąją apkrovą specializuotiems tinklo protokolams ir žemo lygio archyvams.
Neapdoroto DEFLATE konvertavimas į GZIP srautą įpakuoja suspaustus duomenis į standartinį konteinerį su metaduomenų antraštėmis, kad operacinės sistemos ir žiniatinklio įrankiai galėtų juos tinkamai perskaityti.