Sirovi DEFLATE (.deflate)
IETF StandardDEFLATE je široko korišćen algoritam za kompresiju podataka bez gubitaka u istoriji računarstva, koji se koristi u ZIP arhivama, GZIP tokovima, PNG slikama i HTTP kompresiji na vebu više od tri decenije.
Konvertujte GZIP u DEFLATE
Besplatan konvertor GZIP u DEFLATE u pregledaču. Konvertujte datoteke odmah na svom uređaju.
Pregled i metapodaci
Operativni sistemi i analizatori datoteka identifikuju DEFLATE datoteke proverom početnog binarnog niza bajtova:
Potpis zaglavlja na nivou bajtova (magični bajtovi)
Operativni sistemi i analizatori datoteka identifikuju DEFLATE datoteke proverom početnog binarnog niza bajtova:
HEKSADECIMALNI POTPIS (OFFSET 0):
Sirovi DEFLATE nema fiksni potpis; tokovi sa zlib omotačem počinju promenljivim CMF/FLG bajtovimaASCII REPREZENTACIJA: Nema fiksnog potpisa
Standardizacija: IETF RFC 1951 / RFC 1950 (zlib)
Tehničke specifikacije
| Arhitektura kontejnera | Sirovi bitni tok prema RFC 1951 ili tok sa zlib omotačem prema RFC 1950, koji sadrži zaglavlje od 2 bajta i Adler-32 kontrolnu sumu |
| Kompresija | Klizni LZ77 rečnik (prozor do 32 KB) u kombinaciji s dinamičkim ili statičkim Huffmanovim entropijskim kodiranjem |
| Bajtni redosled (Endianness) | Redosled pakovanja bitova od najmanje značajnog ka najznačajnijem |
| Prostori boja | Nije primenljivo (tok za kompresiju podataka) |
| Kanali i struktura | Sirovi binarni tok ili tok tekstualnih podataka |
| Maksimalne dimenzije | Neograničena dužina toka |
| Transparentnost | Potpuno očuvanje podataka bez gubitaka i uz potpuno podudaranje bitova |
| Strimovanje i progresivno učitavanje | Bitni tok podeljen na blokove podržava neprekidan prenos proizvoljne količine bajtova |
Tehnička matrica poređenja: DEFLATE u odnosu na konkurente
| Tehnički atribut | DEFLATE (Trenutno) | GZ | BROTLI | ZSTD |
|---|---|---|---|---|
| Standardizacija | IETF RFC 1951 (sirovi) / RFC 1950 (zlib) | IETF RFC 1952 (Gzip) | IETF RFC 7932 (Brotli) | IETF RFC 8878 (Zstandard) |
| Klizni prozor | Najviše 32 kilobajta | Najviše 32 kilobajta | Do 16 megabajta | Do 2 gigabajta |
| Režim kontrolne sume | Adler-32 (u zlib omotaču) | CRC-32 (u gzip omotaču) | Nema ugrađenog u strim | xxHash64 (64-bitni brzi heš) |
| Svakodnevna upotreba | PNG slike, PDF strimovi, ZIP | Unix .tar.gz, HTTP gzip | Veb fontovi (WOFF2), HTTP br | Linux kernel, baze podataka, industrija igara |
Uobičajeni režimi oštećenja i vodič za heksadecimalni oporavak
Dekompresija ne uspeva uz poruku 'Z_DATA_ERROR: incorrect data check'.
Osnovni uzrok: Nepodudaranje u 4-bajtnoj Adler-32 kontrolnoj sumi na kraju strima u zlib omotaču.
Oporavak: Zaobiđite proveru Adler-32 kontrolne sume korišćenjem sirovog inflate-a ili izvršite popravku pomoću File2File.app Deflate oporavka.
Bezbednosna analiza i vektori napada parsera
DEFLATE paseri moraju strogo da verifikuju kodove za izgradnju Hafmanovog stabla kako bi sprečili upise pokazivača van granica memorije.
Poznati vektori napada
- Nepotpune ili prepunjene tabele dužina bitova dinamičkog Hafmanovog stabla koje uzrokuju nevažeća čitanja iz memorije.
- Bomba dekompresije (zip bomba) koja širi male nosive podatke u stotine gigabajta RAM-a.
- Prekoračenje čitanja bafera (buffer over-read) u nevalidiranim kodovima rastojanja kliznog prozora.
Najbolje prakse za zaštitu: Postavite gornju granicu za alokaciju memorije i ograničite odnos ekspanzije tokom dekompresije.
Istorijat i prekretnice
Ključne prednosti
- DEFLATE je široko zastupljen u softverskim bibliotekama i formatima datoteka, mada dostupna podrška zavisi od okruženja i aplikacije.
- Specifikacija DEFLATE-a može slobodno da se implementira; licenca i podrška zavise od konkretnog softvera.
- Brza dekompresija sa minimalnim memorijskim otiskom (zahteva samo 32 KB memorije kliznog prozora).
Tehnička ograničenja i nedostaci
- Klizni prozor ograničen na 32 KB, što smanjuje efikasnost kompresije na velikim datotekama sa udaljenim ponavljanjima.
- Niži odnosi kompresije na modernim veb resursima u poređenju sa novijim algoritmima kao što su Brotli i Zstandard.
- Sirovi DEFLATE strimovi nemaju meta-podatke koji sami sebe opisuju niti okvire kontejnera bez zlib ili gzip omotača.
Zanimljivosti
- Fil Kac je izmislio DEFLATE nakon što ga je Unisys tužio zbog patentiranog LZW algoritma koji se koristio u ranim PKARC uslužnim programima.
- Standardni zlib zaglavni bajtovi '78 9C' označavaju podrazumevanu kompresiju, '78 01' nisku kompresiju, a '78 DA' maksimalnu kompresiju.
- PNG koristi DEFLATE za tok slikovnih podataka, kako je propisano PNG formatom.
Često postavljana tehnička pitanja
Koja je razlika između DEFLATE, zlib i gzip formata?
DEFLATE je sirovi algoritam kompresije (RFC 1951). Zlib obavija DEFLATE zaglavljem od 2 bajta i Adler-32 kontrolnom sumom (RFC 1950). Gzip obavija DEFLATE metapodacima datoteke i CRC-32 kontrolnom sumom (RFC 1952).
Zašto PNG koristi DEFLATE?
PNG format je nastao 1995. godine kao zamena za GIF bez korišćenja patentiranih LZW algoritama, uz izbor otvorenog DEFLATE algoritma bez naknada za kompresiju.
Kako mogu da dekompresujem sirovu .deflate datoteku?
Možete dekompresovati sirove DEFLATE ili zlib tokove bajtova u originalne nekompresovane datoteke koristeći File2File.app direktno u Vašem veb pretraživaču.
Povezani parovi konverzije za DEFLATE
Konverzija GZIP toka u sirovi DEFLATE uklanja spoljni omotač datoteke i metapodatke zaglavlja, ostavljajući samo kompresovani sadržaj za specijalizovane mrežne protokole i arhive niskog nivoa.
Konvertovanje sirovog DEFLATE toka u GZIP tok pakuje kompresovani sadržaj unutar standardnog kontejnera sa zaglavljima metapodataka kako bi operativni sistemi i veb alati mogli pravilno da ga pročitaju.