DEFLATE גולמי (.deflate)

IETF תקן

DEFLATE הוא אלגוריתם דחיסת הנתונים ללא אובדן נתונים נפוץ בהיסטוריה של המחשוב, המניע ארכיוני ZIP, זרימות GZIP, תמונות PNG ודחיסת אינטרנט HTTP במשך למעלה משלושה עשורים.

המר GZIP ל-DEFLATE

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

בדיקה ומטא-נתונים

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

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

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

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

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

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

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

ל-DEFLATE גולמי אין חתימה קבועה; זרמים עטופי zlib מתחילים בבייטים משתנים של CMF/FLG

ייצוג ASCII: אין חתימת ASCII קבועה

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

מפרט טכני

מבנה המכולהזרם סיביות גולמי של RFC 1951 או זרם עטוף zlib של RFC 1950, עם כותרת בת 2 בתים וסכום ביקורת Adler-32
דחיסהמילון הזזה LZ77 (חלון של עד 32 KB) בשילוב קידוד אנטרופיה דינמי או סטטי של Huffman
סדר בתים (Endianness)סדר אריזת סיביות Little-Endian
מרחבי צבעלא רלוונטי (זרם דחיסת נתונים)
ערוצים ומבנהזרם נתונים בינאריים או טקסט גולמי
ממדים מרבייםאורך זרם בלתי מוגבל
שקיפותשחזור נתונים ללא אובדן, בדיוק של 100% ברמת הסיביות
הזרמה ופרוגרסיביותזרם סיביות מבוסס בלוקים התומך בהזרמת בתים רציפה בכל אורך

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

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

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

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

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

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

ניתוח אבטחה ווקטורי תקיפה נגד מנתחי פורמטים (parsers)

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

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

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

שיטות מומלצות להגנה: הגבל את הקצאת הזיכרון המרבית ומגבלות יחס התרחבות במהלך שחרור הדחיסה.

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

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

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

  • ספריות תוכנה ופורמטים רבים מממשים DEFLATE, אך התמיכה הזמינה תלויה בסביבת הריצה ובאפליקציה.
  • אפשר לממש את מפרט DEFLATE בחופשיות; הרישוי והתמיכה תלויים במימוש התוכנה המסוים.
  • פריסה מהירה עם צריכת זיכרון מינימלית (דורשת רק 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 ישירות בדפדפן האינטרנט שלך.