Sirovi DEFLATE (.deflate)

IETF Standard

DEFLATE 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:

Izaberite ili prevucite datoteke ovde

Privatno - datoteke nikada ne napuštaju vaš uređaj

ili nalepite Ctrl+V
Garancija privatnosti: bez prenosa podataka preko mreže 0 bajtova poslato spoljnim serverima. Sva obrada je izvršena lokalno u bezbednom okruženju vašeg pregledača.

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 bajtovima

ASCII REPREZENTACIJA: Nema fiksnog potpisa

Standardizacija: IETF RFC 1951 / RFC 1950 (zlib)

Tehničke specifikacije

Arhitektura kontejneraSirovi 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
KompresijaKlizni 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 bojaNije primenljivo (tok za kompresiju podataka)
Kanali i strukturaSirovi binarni tok ili tok tekstualnih podataka
Maksimalne dimenzijeNeograničena dužina toka
TransparentnostPotpuno očuvanje podataka bez gubitaka i uz potpuno podudaranje bitova
Strimovanje i progresivno učitavanjeBitni tok podeljen na blokove podržava neprekidan prenos proizvoljne količine bajtova

Tehnička matrica poređenja: DEFLATE u odnosu na konkurente

Tehnički atributDEFLATE (Trenutno)GZBROTLIZSTD
StandardizacijaIETF RFC 1951 (sirovi) / RFC 1950 (zlib)IETF RFC 1952 (Gzip)IETF RFC 7932 (Brotli)IETF RFC 8878 (Zstandard)
Klizni prozorNajviše 32 kilobajtaNajviše 32 kilobajtaDo 16 megabajtaDo 2 gigabajta
Režim kontrolne sumeAdler-32 (u zlib omotaču)CRC-32 (u gzip omotaču)Nema ugrađenog u strimxxHash64 (64-bitni brzi heš)
Svakodnevna upotrebaPNG slike, PDF strimovi, ZIPUnix .tar.gz, HTTP gzipVeb fontovi (WOFF2), HTTP brLinux 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

1996Piter Dojč (Peter Deutsch) formalizuje DEFLATE kao IETF RFC 1951, a zlib kao RFC 1950.
1995Žan-Lup Gajli (Jean-loup Gailly) i Mark Adler izdaju zlib.
1991Fil Kac (Phil Katz) izmišlja DEFLATE za PKZIP 2.0 kao zamenu za starije algoritme Implode i Reduce.

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.