Ham DEFLATE (.deflate)

IETF Standart

DEFLATE, otuz yılı aşkın süredir ZIP arşivlerini, GZIP akışlarını, PNG görüntülerini ve HTTP web sıkıştırmasını destekleyen, bilgi işlem tarihinin yaygın olarak kullanılan kayıpsız veri sıkıştırma algoritmasıdır.

GZIP biçimini DEFLATE biçimine dönüştür

Tarayıcında GZIP biçimini DEFLATE biçimine ücretsiz dönüştür. Dosyaları cihazında anında dönüştür.

İncele ve Meta Veriler

İşletim sistemleri ve dosya çözümleyicileri, DEFLATE dosyalarını başlangıçtaki ikili sihirli bayt dizisini inceleyerek tanımlar:

Dosyaları buraya seç veya bırak

Özel - dosyalar cihazınızdan asla ayrılmaz

veya yapıştır Ctrl+V
Sıfır Ağ Aktarımı Gizlilik Garantisi: Harici sunuculara 0 bayt yüklendi. Tüm işlemler tarayıcındaki korumalı alanda (sandbox) yerel olarak gerçekleştirildi.

Bayt düzeyinde başlık imzası (sihirli baytlar)

İşletim sistemleri ve dosya çözümleyicileri, DEFLATE dosyalarını başlangıçtaki ikili sihirli bayt dizisini inceleyerek tanımlar:

HEX İMZASI (OFSET 0):

Ham DEFLATE'in sabit imzası yoktur; zlib sarmalayıcılı akışlar değişken CMF/FLG baytlarıyla başlar.

ASCII GÖSTERİMİ: Sabit imza yok

Standartlaştırma: IETF RFC 1951 / RFC 1950 (zlib)

Teknik Özellikler

Kapsayıcı mimarisiHam RFC 1951 bit akışı veya 2 baytlık üstbilgi ve Adler-32 sağlama toplamı içeren RFC 1950 zlib sarmallı akış
SıkıştırmaDinamik/statik Huffman entropi kodlamasıyla birleştirilmiş LZ77 kayan sözlüğü (32 KB pencereye kadar)
Bayt Düzeni (Endianness)Küçük uçlu bit paketleme sırası
Renk UzaylarıN/A (Data Compression Stream)
Kanallar ve YapıHam ikili veya metin veri akışı
Maksimum BoyutlarSınırsız akış uzunluğu
ŞeffaflıkVerilerin bit düzeyinde %100 tam ve kayıpsız yeniden üretilmesi
Akış ve Aşamalı İşlemeBlok tabanlı bit akışı, istenen uzunlukta sürekli bayt akışını destekler

Teknik karşılaştırma matrisi: DEFLATE ve rakipleri

Teknik NitelikDEFLATE (Güncel)GZBROTLIZSTD
StandardizasyonIETF RFC 1951 (Ham) / RFC 1950 (zlib)IETF RFC 1952 (Gzip)IETF RFC 7932 (Brotli)IETF RFC 8878 (Zstandard)
Kayan PencereMaksimum 32 KilobaytMaksimum 32 Kilobayt16 Megabayt'a kadar2 Gigabayt'a kadar
Sağlama Toplamı ModuAdler-32 (zlib sarmalayıcısında)CRC-32 (gzip sarmalayıcısında)Akışta yerleşik sağlama toplamı yokxxHash64 (64 bitlik hızlı hash)
Günlük KullanımPNG görselleri, PDF akışları, ZIPUnix .tar.gz, HTTP gzipWeb fontları (WOFF2), HTTP brLinux çekirdeği, veritabanları, oyun

Yaygın Bozulma Modları ve Hex Kurtarma Kılavuzu

Dosya açma 'Z_DATA_ERROR: incorrect data check' hatasıyla başarısız oluyor.

Kök Neden: zlib sarmalayıcılı akışın sonundaki 4 baytlık Adler-32 sağlama toplamında uyuşmazlık.

Kurtarma: Ham DEFLATE akışı açma işlemiyle Adler-32 denetimini atla veya dosyayı File2File.app Deflate Recovery ile onar.

Güvenlik Analizi ve Ayrıştırıcı Saldırı Vektörleri

DEFLATE ayrıştırıcıları, sınır dışı işaretçi yazmalarını önlemek için Huffman ağacı oluşturma kodlarını kesinlikle doğrulamalıdır.

Bilinen Saldırı Vektörleri

  • Geçersiz bellek okumalarına neden olan eksik veya kapasitesini aşan dinamik Huffman ağacı bit uzunluğu tabloları.
  • Küçük yükleri yüzlerce gigabayt RAM'e genişleten sıkıştırma bombası (zip bombası).
  • Doğrulanmamış kayan pencere mesafe kodları sırasında arabellek aşırı okuması (buffer over-read).

Savunmaya yönelik en iyi uygulamalar: Sıkıştırma açma sırasında sınırlı maksimum bellek ayırma ve genişletme oranı sınırları uygulayın.

Tarihsel kökenler ve önemli dönüm noktaları

1996Peter Deutsch, DEFLATE algoritmasını IETF RFC 1951 ve zlib'i RFC 1950 olarak resmi standart haline getirdi.
1995Jean-loup Gailly ve Mark Adler, DEFLATE için evrensel C referans kütüphanesi olan zlib.
1991Phil Katz, daha eski Implode ve Reduce algoritmalarının yerine PKZIP 2.0 için DEFLATE'i icat etti.

Temel Avantajlar ve Artılar

  • Tartışmasız küresel standart: donanımda, işletim sistemlerinde ve her programlama çalışma zamanında uygulanmıştır.
  • Patent ve telif ücreti içermeyen tasarımı, tüm bilgi işlem endüstrisinde açık erişimi garanti eder.
  • En düşük bellek kullanımıyla hızlı sıkıştırma açma (yalnızca 32 KB kayan pencere belleği gerektirir).

Teknik Kısıtlamalar ve Eksiler

  • Kayan pencere 32 KB ile sınırlıdır, bu da uzak tekrarları olan büyük dosyalarda sıkıştırma etkinliğini azaltır.
  • Brotli ve Zstandard gibi yeni algoritmalara kıyasla modern web varlıklarında daha düşük sıkıştırma oranları.
  • Ham DEFLATE akışları, zlib veya gzip sarmalayıcıları (wrapper) olmadan kendi kendini açıklayan meta verilerden veya kapsayıcı çerçevelerinden yoksundur.

İlginç Teknik Bilgiler

  • Phil Katz, erken dönem PKARC yardımcı programlarında kullanılan patentli LZW algoritması nedeniyle Unisys tarafından dava edildikten sonra DEFLATE'i icat etti.
  • Standart zlib başlık baytları '78 9C' varsayılan sıkıştırmayı, '78 01' düşük sıkıştırmayı ve '78 DA' maksimum sıkıştırmayı gösterir.
  • Dünyadaki her PNG görüntüsü, IDAT piksel öbeklerini sıkıştırmak için DEFLATE kullanır.

Sıkça Sorulan Teknik Sorular

DEFLATE, zlib ve gzip arasındaki fark nedir?

DEFLATE ham sıkıştırma algoritmasıdır (RFC 1951). Zlib, DEFLATE'i 2 baytlık bir başlık ve Adler-32 sağlama toplamıyla sarmalar (RFC 1950). Gzip ise DEFLATE'i dosya meta verileri ve CRC-32 sağlama toplamıyla sarmalar (RFC 1952).

PNG neden DEFLATE kullanır?

PNG formatı, patentli LZW algoritmalarını kullanmadan GIF'in yerini almak üzere 1995 yılında oluşturulmuş ve sıkıştırma için açık, telifsiz DEFLATE'i seçmiştir.

Ham bir .deflate dosyasını nasıl açabilirim?

Ham DEFLATE veya zlib bayt akışlarını web tarayıcında File2File.app ile doğrudan açıp özgün dosyaları elde edebilirsin.