Töötlemata DEFLATE (.deflate)
IETF StandardDEFLATE on arvutite ajaloo kõige levinum kadudeta andmetöötluse tihendusalgoritm, mis on üle kolme aastakümne toetanud ZIP-arhiive, GZIP-vooge, PNG-pilte ja HTTP-veebitihendust.
Teisenda formaadist GZIP formaati DEFLATE
Tasuta GZIP -> DEFLATE konverter brauseris. Teisenda faile koheselt oma seadmes.
Kontrolli ja metaandmed
Operatsioonisüsteemid ja failianalüsaatorid tuvastavad DEFLATE faile, kontrollides algset binaarset baidijada:
Baidi-taseme päise allkiri (maagilised baidid)
Operatsioonisüsteemid ja failianalüsaatorid tuvastavad DEFLATE faile, kontrollides algset binaarset baidijada:
HEX-ALLKIRI (NIHE 0):
78 9C / 78 01 / 78 DAASCII-ESITUS: xœ / x. / xÚ
Standardiseerimine: IETF RFC 1951 / RFC 1950 (zlib)
Tehnilised andmed
| Konteineri arhitektuur | Raw RFC 1951 bitstream or RFC 1950 zlib-wrapped stream with 2-byte header and Adler-32 checksum |
| Tihendamine | LZ77 sliding dictionary (up to 32 KB window) combined with dynamic/static Huffman entropy coding |
| Baitide järjekord (Endianness) | Little-Endian bit-packing order |
| Värviruumid | N/A (Data Compression Stream) |
| Kanalid ja struktuur | Raw binary or text data stream |
| Max mõõtmed | Unbounded stream length |
| Läbipaistvus | 100% bit-exact lossless data reproduction |
| Voogedastus ja progressiivsus | Block-based bitstream supports arbitrary continuous byte streaming |
Tehniline võrdlusmaatriks: DEFLATE vs konkurendid
| Tehniline atribuut | DEFLATE (Praegune) | GZ | BROTLI | ZSTD |
|---|---|---|---|---|
| Standardiseerimine | IETF RFC 1951 (Toores) / RFC 1950 (zlib) | IETF RFC 1952 (Gzip) | IETF RFC 7932 (Brotli) | IETF RFC 8878 (Zstandard) |
| Libisev aken | Maksimaalselt 32 kilobaiti | Maksimaalselt 32 kilobaiti | Kuni 16 megabaiti | Kuni 2 gigabaiti |
| Kontrollsumma režiim | Adler-32 (zlib-ümbrises) | CRC-32 (gzip-ümbrises) | Sisseehitatud voog puudub | xxHash64 (64-bitine kiire räsifunktsioon) |
| Igapäevane kasutus | PNG-pildid, PDF-vood, ZIP | Unixi .tar.gz, HTTP gzip | Veebifondid (WOFF2), HTTP br | Linuxi kernel, andmebaasid, mängud |
Levinud riknemisvead ja heksataaste juhend
Lahtipakkumine ebaõnnestub veaga 'Z_DATA_ERROR: incorrect data check'.
Juurpõhjus: Ebakõla zlib-ümbrises voo lõpus olevas 4-baidises Adler-32 kontrollsummas.
Taastamine: Jäta Adler-32 kontrollimine vahele, kasutades toorest lahtipakkimist, või paranda File2File Deflate taastusega.
Turvaanalüüs ja parsimisründevektorid
DEFLATE-i parserid peavad rangelt valideerima Huffmani puu ehituse koode, et vältida mälupiiridest väljaspool olevaid viida kirjutamisi.
Teadaolevad ründavektorid
- Mittetäielikud või liialt tellitud dünaamilised Huffmani puu bitipikkuste tabelid, mis põhjustavad kehtetuid mälulugemisi.
- Lahtipakkumispomm (zip-pomm), mis paisutab pisikesed andmemahtuvad sadadeks gigabaitideks RAM-is.
- Puhvri ülelugemine valideerimata libiseva akna kauguskoodides.
Kaitsealased parimad tavad:
Ajalooline taust ja verstapostid
Peamised eelised
- Vaidlmatu ülemaailmne standard: rakendatud riistvaras, operatsioonisüsteemides ja igas programmeerimise käituskeskkonnas.
- Patendivaba ja litsentsitasuta disain tagab avatud juurdepääsu kogu arvutitööstuses.
- Kiire lahtipakkumine minimaalse mälukasutusega (vajab ainult 32 KB libiseva akna mälu).
Tehnilised piirangud ja puudused
- Libisev aken on piiratud 32 kilobaidiga, mis vähendab tihendamise tõhusust suurte failide puhul, millel on kauged kordused.
- Väiksem tihendussuhe võrreldes uuemate algoritmidega, nagu Brotli ja Zstandard, kaasaegsete veebivarade puhul.
- Toored DEFLATE-vood ei sisalda isevedavaid metaandmeid ega konteineriraamistikku ilma zlib- või gzip-ümbristeta.
Huvitavaid tehnilisi fakte
- Phil Katz leiutas DEFLATE-i pärast seda, kui Unisys kaebas ta kohtusse varasemates PKARC-utiliitides kasutatud patenteeritud LZW algoritmi pärast.
- Standardse zlib-päise baidid '78 9C' tähistavad vaikesuhet, '78 01' madalat tihendust ja '78 DA' maksimaalset tihendust.
- Iga PNG-pilt Maal kasutab DEFLATE-i oma IDAT-piksliplokkide tihendamiseks.
Korduma kippuvad tehnilised küsimused
Mis vahe on DEFLATE-il, zlib-il ja gzip-il?
DEFLATE on toores tihendusalgoritm (RFC 1951). Zlib pakendab DEFLATE-i 2-baidise päise ja Adler-32 kontrollsummaga (RFC 1950). Gzip pakendab DEFLATE-i faili metaandmete ja CRC-32 kontrollsummaga (RFC 1952).
Miks kasutab PNG vorming DEFLATE-i?
PNG-vorming loodi 1995. aastal GIF-i asendamiseks ilma patenteeritud LZW-algoritme kasutamata, valides tihendamiseks avatud ja autoritasuta DEFLATE-i.
Kuidas ma saan toorest .deflate-faili lahti pakkida?
Saate toored DEFLATE- või zlib-baidivood algseteks tihendamata failideks lahti pakkida otse oma veebibrauseris rakenduse File2File.app abil.
Seotud DEFLATE teisenduspaarid
GZIP voo teisendamine tooreks DEFLATE-ks eemaldab välimise faili ümbrise ja päise metaandmed, jättes alles ainult tihendatud kasuliku koorma spetsiaalsete võrguprotokollide ja madala taseme arhiivide jaoks.
Toore DEFLATE teisendamine GZIP-voo muunduriks pakib tihendatud sisu standardse konteineri sisse koos metainfo päistega, et operatsioonisüsteemid ja veebitööriistad saaksid seda õigesti lugeda.