Artikel ini menyebutkan 9 lapisan file zip, jadi ini bukan kasus sederhana untuk zip sekelompok nol. Mengapa 9, mengapa 10 file di masing-masing?
Pertama, artikel Wikipedia saat ini mengatakan 5 lapisan dengan 16 file masing-masing. Tidak yakin dari mana perbedaan itu berasal, tetapi tidak semuanya relevan. Pertanyaan sebenarnya adalah mengapa menggunakan bersarang di tempat pertama.
DEFLATE, satu-satunya metode kompresi yang umum didukung untuk file zip *, memiliki rasio kompresi maksimum 1032. Ini dapat dicapai secara asimptot untuk setiap urutan berulang sebesar 1-3 byte. Apa pun yang Anda lakukan pada file zip, asalkan hanya menggunakan DEFLATE, ukuran yang dibongkar paling banyak 1032 kali dari ukuran file zip asli.
Oleh karena itu, perlu menggunakan file zip bersarang untuk mencapai rasio kompresi yang benar-benar keterlaluan. Jika Anda memiliki 2 lapisan kompresi, rasio maksimum menjadi 1032 ^ 2 = 1065024. Untuk 3, itu 1099104768, dan seterusnya. Untuk 5 lapisan yang digunakan pada 42.zip, rasio kompresi maksimum teoretis adalah 1170572956434432. Seperti yang Anda lihat, 42.zip yang sebenarnya jauh dari level itu. Sebagian dari itu adalah overhead format zip, dan sebagian lagi adalah mereka tidak peduli.
Jika saya harus menebak, saya akan mengatakan bahwa 42.zip dibentuk dengan hanya membuat file kosong yang besar, dan berulang kali zip dan menyalinnya. Tidak ada upaya untuk mendorong batas format atau memaksimalkan kompresi atau apa pun - mereka hanya secara sewenang-wenang mengambil 16 salinan per lapisan. Intinya adalah untuk menciptakan muatan besar tanpa banyak usaha.
Catatan: Format kompresi lainnya, seperti bzip2, menawarkan rasio kompresi maksimum yang jauh lebih banyak. Namun, sebagian besar parser zip tidak menerimanya.
PS Dimungkinkan untuk membuat file zip yang akan di-unzip ke salinannya sendiri (quine). Anda juga dapat membuat satu yang membuka ritsleting ke beberapa salinan itu sendiri. Oleh karena itu, jika Anda secara unzip mengekstrak file selamanya, ukuran maksimum yang mungkin tidak terbatas. Satu-satunya batasan adalah bahwa ia dapat meningkat paling banyak 1032 pada setiap iterasi.
PPS Angka 1032 mengasumsikan bahwa data file di zip terpisah. Satu kekhasan dari format file zip adalah bahwa ia memiliki direktori pusat yang mencantumkan file dalam arsip dan offset ke data file. Jika Anda membuat banyak entri file yang menunjuk ke data yang sama, Anda dapat mencapai rasio kompresi yang jauh lebih tinggi bahkan tanpa bersarang, tetapi file zip seperti itu kemungkinan akan ditolak oleh parser.