Ham DEFLATE (.deflate)
IETF StandartDEFLATE, 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:
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ı mimarisi | Ham 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ırma | Dinamik/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 Boyutlar | Sınırsız akış uzunluğu |
| Şeffaflık | Verilerin bit düzeyinde %100 tam ve kayıpsız yeniden üretilmesi |
| Akış ve Aşamalı İşleme | Blok tabanlı bit akışı, istenen uzunlukta sürekli bayt akışını destekler |
Teknik karşılaştırma matrisi: DEFLATE ve rakipleri
| Teknik Nitelik | DEFLATE (Güncel) | GZ | BROTLI | ZSTD |
|---|---|---|---|---|
| Standardizasyon | IETF RFC 1951 (Ham) / RFC 1950 (zlib) | IETF RFC 1952 (Gzip) | IETF RFC 7932 (Brotli) | IETF RFC 8878 (Zstandard) |
| Kayan Pencere | Maksimum 32 Kilobayt | Maksimum 32 Kilobayt | 16 Megabayt'a kadar | 2 Gigabayt'a kadar |
| Sağlama Toplamı Modu | Adler-32 (zlib sarmalayıcısında) | CRC-32 (gzip sarmalayıcısında) | Akışta yerleşik sağlama toplamı yok | xxHash64 (64 bitlik hızlı hash) |
| Günlük Kullanım | PNG görselleri, PDF akışları, ZIP | Unix .tar.gz, HTTP gzip | Web fontları (WOFF2), HTTP br | Linux ç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ı
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.
İlgili DEFLATE Dönüşüm Çiftleri
Bir GZIP akışını ham DEFLATE'e dönüştürmek, dış dosya kapsayıcısını ve başlık meta verilerini kaldırarak geriye özel ağ protokolleri ve düşük seviyeli arşivler için gereken yalnızca sıkıştırılmış yükü bırakır.
Ham DEFLATE'i GZIP Akışına dönüştürmek, işletim sistemlerinin ve web araçlarının düzgün bir şekilde okuyabilmesi için sıkıştırılmış yükü meta veri başlıklarına sahip standart bir kapsayıcı içine sarar.