DEFLATE גולמי (.deflate)

IETF תקן

DEFLATE הוא אלгоритם דחיסת הנתונים ללא איoss (ללא אובדן נתונים) הנפוץ ביותר בהיסטוריה של המחשוב, המניע ארכיוני ZIP, זרימות GZIP, תמונות PNG ודחיסת אינטרנט HTTP במשך למעלה משלושה עשורים.

המר GZIP ל-DEFLATE

ממיר חינמי מ-GZIP ל-DEFLATE פועל בדפדפן. המר קבצים באופן מיידי במכשיר שלך.

בדיקה ומטא-דאטה

מערכות הפעלה ומנתחי קבצים מזהים קבצי DEFLATE על ידי בדיקת רצף הבייטים הבינארי הראשוני:

בחר או גרור קבצים לכאן

המרה פרטית ב-100% בתוך הדפדפן - הקבצים לעולם אינם עוזבים את המכשיר שלך

או הדבק Ctrl+V
הבטחת פרטיות ללא העברה ברשת: 0 בייט הועלו לשרתים חיצוניים. כל העיבוד מתבצע באופן מקומי בארגז החול של הדפדפן שלך.

חתימת כותרת ברמת הבייט (Magic Bytes)

מערכות הפעלה ומנתחי קבצים מזהים קבצי DEFLATE על ידי בדיקת רצף הבייטים הבינארי הראשוני:

חתימת HEX (היסט 0):

78 9C / 78 01 / 78 DA

ייצוג ASCII: xœ / x. / xÚ

תקינה: IETF RFC 1951 / RFC 1950 (zlib)

מפרט טכני

ארכיטקטורת מעטפתRaw RFC 1951 bitstream or RFC 1950 zlib-wrapped stream with 2-byte header and Adler-32 checksum
דחיסהLZ77 sliding dictionary (up to 32 KB window) combined with dynamic/static Huffman entropy coding
סדר בתים (Endianness)Little-Endian bit-packing order
מרחבי צבעN/A (Data Compression Stream)
ערוצים ומבנהRaw binary or text data stream
ממדים מרבייםUnbounded stream length
שקיפות100% bit-exact lossless data reproduction
הזרמה ופרוגרסיביותBlock-based bitstream supports arbitrary continuous byte streaming

מטריצת השוואה טכנית: DEFLATE מול מתחרים

תכונה טכניתDEFLATE (נוכחי)GZBROTLIZSTD
תקינה (Standardization)IETF RFC 1951 (גלמי) / RFC 1950 (zlib)IETF RFC 1952 (Gzip)IETF RFC 7932 (Brotli)IETF RFC 8878 (Zstandard)
חלון גולש (Sliding Window)32 קילובייט מקסימום32 קילובייט מקסימוםעד 16 מגה-בייטעד 2 ג'יגה-בייט
מצב בדיקת תקינות (Checksum Mode)Adler-32 (במעטפת zlib)CRC-32 (במעטפת gzip)ללא זרימה מובניתxxHash64 (האש מהיר 64-סיביות)
שימוש יומיומי (Everyday Usage)תמונות PNG, זרימות PDF, קבצי ZIPUnix .tar.gz, HTTP gzipגופני אינטרנט (WOFF2), HTTP brלינוקס קרנל, במסדי נתונים, במשחקים

מצבי שיחשות נפוצים ומדריך שחזור הקסדצימלי (Hex)

שחרור הדחיסה נכשל עם השגיאה 'Z_DATA_ERROR: incorrect data check'.

גורם שורש: אי-התאמה בבדיקת תקינות Adler-32 בת 4 הבייטים בסוף הזרימה העטופה ב-zlib.

התאוששות: עקוף את אימות Adler-32 באמצעות פריקה גולמית או תקן באמצעות שחזור Deflate של File2File.

ניתוח אבטחה ווקטורי התקפה על מנתחים (Parsers)

מנתחי DEFLATE חייבים לאמת בקפדנות קודי בניית עצי האפמן (Huffman) כדי למנוע כתיבת מצביעים מחוץ לגבולות הזיכרון.

ווקטורי תקיפה ידועים

  • טבלאות אורך סיביות של עץ האפמן דינמי חלקיות או חורגות הגורמות לקריאות זיכרון לא חוקיות.
  • פצצת דחיסה (Zip bomb) המרחיבה מטען זעיר למאות ג'יגה-בייט של זיכרון RAM.
  • קריאת יתר של חוצץ (Buffer over-read) בקודי מרחק חלון גולש שאינם מאומתים.

השיטות המומלצות להגנה:

היסטוריה ואבני דרך

1996פיטר דויטش מגדיר את DEFLATE באופן רשמי כ-IETF RFC 1951 ואת zlib כ-RFC 1950.
1995ז'אן-לופ גאיי ומרק אדלר משחררים את zlib, ספריית הייחוס האוניברסלית בשפת C עבור DEFLATE.
1991פיל כץ ממציא את DEFLATE עבור PKZIP 2.0 כדי להחליף אלגוריתמים ישנים יותר של Implode ו-Reduce.

יתרונות מרכזיים

  • התקן העולמי הבלתי מעורער: ממומש בחומרה, במערכות הפעלה ובכל בסביבת ריצה תכנותית.
  • עיצוב ללא פטנטים וללא תמלוגים המבטיח גישה פתוחה בכל תעשיית המחשוב.
  • שחרור דחיסה מהיר עם טביעת רגל זיכרון מינימלית (דורש רק 32 קילובייט של זיכרון חלון גולש).

מגבלות טכניות וחסרונות

  • חלון גולש מוגבל ל-32 קילובייט, מה שמפחית את יעילות הדחיסה בקבצים גדולים עם חזרתיות רחוקה.
  • יחס דחיסה נמוך יותר בנכסי אינטרנט מודרניים בהשוואה לאלגוריתמים חדשים יותר כמו Brotli ו-Zstandard.
  • זרימות DEFLATE גולמיות חסרות מטא-דאטה מתאר עצמי או מעטפת קונטיינר ללא מעטפות zlib או gzip.

עובדות טכניות מעניינות

  • פיל כץ המציא את DEFLATE לאחר שנתבע על ידי חברת Unisys בגין אלגוריתם LZW המוגנת בפטנט ששימש בכלי עזר מוקדמים של PKARC.
  • בייטים של כותרת zlib סטנדרטית '78 9C' מציינים דחיסה ברירת מחדל, '78 01' דחיסה נמוכה, ו-'78 DA' דחיסה מקסימלית.
  • כל תמונת PNG בכדור הארץ משתמשת ב-DEFLATE כדי לדחוס את מקטעי הפיקסלים IDAT שלה.

שאלות טכניות נפוצות

מה ההבדל בין DEFLATE, zlib ו-gzip?

DEFLATE הוא אלגוריתם הדחיסה הגולמי (RFC 1951). Zlib עוטף את DEFLATE עם כותרת בת 2 בייטים ובדיקת Adler-32 (RFC 1950). Gzip עוטף את DEFLATE עם מטא-נתונים של הקובץ ובדיקת CRC-32 (RFC 1952).

מדוע PNG משתמש ב-DEFLATE?

פורמט PNG נוצר ב-1995 כדי להחליף את GIF מבלי להשתמש באלגוריתמי LZW המוגנים בפטנט, ובחר ב-DEFLATE הפתוח והחופשי מתמלוגים לצורך דחיסה.

כיצד אוכל לפענח קובץ .deflate גולמי?

ניתן לפענח זרמי בייטים גולמיים של DEFLATE או zlib לקבצים המקוריים הלא דחוסים באמצעות File2File.app ישירות בדפדפן האינטרנט שלך.