Parchive - Parchive

Parchive
Dateinamenerweiterung
.par, .par2, .p ??, (.par3 Zukunft)
Art des Formats Löschcode

Parchive (ein Portmanteau des Paritätsarchivs und formal als Parity Volume Set Specification bekannt ) ist ein Löschcodesystem , das Par- Dateien zur Überprüfung der Prüfsummenprüfung der Datenintegrität erstellt und Datenwiederherstellungsvorgänge ausführen kann , mit denen beschädigte oder fehlende Daten repariert oder neu generiert werden können .

Parchive wurde ursprünglich geschrieben, um das Problem der zuverlässigen Dateifreigabe im Usenet zu lösen. Es kann jedoch zum Schutz aller Arten von Daten vor Datenbeschädigung , Disc-Rot , Bit-Rot und versehentlichem oder böswilligem Schaden verwendet werden. Trotz des Namens verwendet Parchive fortgeschrittenere Techniken, die keine vereinfachten Paritätsmethoden zur Fehlererkennung und -korrektur verwenden .

Ab 2014 ist PAR1 veraltet, PAR2 ist ausgereift und PAR3 ist eine experimentelle Version, die vom MultiPar-Autor Yutaka Sawada entwickelt wurde. Das ursprüngliche SourceForge Parchive-Projekt ist seit dem 30. April 2015 inaktiv.

Geschichte

Parchive sollte die Zuverlässigkeit der Übertragung von Dateien über Usenet- Newsgroups erhöhen . Das Usenet wurde ursprünglich für informelle Gespräche entwickelt, und das zugrunde liegende Protokoll NNTP wurde nicht für die Übertragung beliebiger Binärdaten entwickelt. Eine weitere Einschränkung, die für Konversationen, jedoch nicht für Dateien akzeptabel war, bestand darin, dass Nachrichten normalerweise ziemlich kurz und auf 7-Bit- ASCII- Text beschränkt waren.

Zum Senden von Dateien über das Usenet wurden verschiedene Techniken entwickelt, z. B. Uuencoding und Base64 . Später erlaubte die Usenet-Software 8-Bit- Extended-ASCII , was neue Techniken wie yEnc ermöglichte . Große Dateien wurden aufgelöst, um die Auswirkungen eines beschädigten Downloads zu verringern, aber die Unzuverlässigkeit des Usenet blieb bestehen.

Mit der Einführung von Parchive konnten Paritätsdateien erstellt werden, die dann zusammen mit den ursprünglichen Datendateien hochgeladen wurden. Wenn eine der Datendateien während der Weitergabe zwischen Usenet-Servern beschädigt wurde oder verloren ging, konnten Benutzer Paritätsdateien herunterladen und zur Rekonstruktion der beschädigten oder fehlenden Dateien verwenden. Parchive beinhaltete die Erstellung kleiner Indexdateien (* .par in Version 1 und * .par2 in Version 2), die keine Wiederherstellungsdaten enthalten. Diese Indizes enthalten Datei-Hashes , mit denen die Zieldateien schnell identifiziert und ihre Integrität überprüft werden können.

Da die Indexdateien so klein waren, wurde die Menge an zusätzlichen Daten minimiert, die aus dem Usenet heruntergeladen werden mussten, um zu überprüfen, ob alle Datendateien vorhanden und unbeschädigt waren, oder um festzustellen, wie viele Paritätsvolumina erforderlich waren, um Schäden zu reparieren oder zu rekonstruieren fehlende Dateien. Sie waren in Version 1 am nützlichsten, wo die Paritätsvolumina viel größer waren als die kurzen Indexdateien. Diese größeren Paritätsvolumes enthalten die tatsächlichen Wiederherstellungsdaten sowie eine doppelte Kopie der Informationen in den Indexdateien (sodass sie allein verwendet werden können, um die Integrität der Datendateien zu überprüfen, wenn keine kleine Indexdatei verfügbar ist).

Im Juli 2001 schlugen Tobias Rieper und Stefan Wehlus die Parity Volume Set-Spezifikation vor. Mit Unterstützung anderer Projektmitglieder wurde im Oktober 2001 Version 1.0 der Spezifikation veröffentlicht. Par1 verwendete die Reed-Solomon-Fehlerkorrektur , um neue Wiederherstellungsdateien zu erstellen. Jede der Wiederherstellungsdateien kann verwendet werden, um eine fehlende Datei nach einem unvollständigen Download neu zu erstellen .

Version 1 wurde im Usenet weit verbreitet, hatte jedoch einige Einschränkungen:

  • Es war auf höchstens 255 Dateien beschränkt.
  • Die Wiederherstellungsdateien mussten die Größe der größten Eingabedatei haben, sodass es nicht gut funktionierte, wenn die Eingabedateien unterschiedliche Größen hatten. (Dies schränkte seine Nützlichkeit ein, wenn es nicht mit dem proprietären RAR-Komprimierungswerkzeug gekoppelt wurde.)
  • Der Wiederherstellungsalgorithmus hatte einen Fehler aufgrund eines Fehlers in der wissenschaftlichen Arbeit, auf der er basierte.
  • Es war stark an das Usenet gebunden und es wurde die Ansicht vertreten, dass ein allgemeineres Tool ein breiteres Publikum haben könnte.

Im Januar 2002 schlug Howard Fukada vor, eine neue Par2-Spezifikation mit den wesentlichen Änderungen zu entwickeln, dass die Datenüberprüfung und -reparatur für Datenblöcke und nicht für ganze Dateien funktionieren sollte, und dass der Algorithmus auf die Verwendung von 16-Bit-Zahlen anstelle der 8 umschalten sollte Bitnummern, die PAR1 verwendet hat. Michael Nahas und Peter Clements haben diese Ideen im Juli 2002 mit zusätzlichen Beiträgen von Paul Nettle und Ryan Gallagher (die beide Par1-Kunden geschrieben haben) aufgegriffen. Die Version 2.0 der Parchive-Spezifikation wurde im September 2002 von Michael Nahas veröffentlicht.

Anschließend schrieb Peter Clements die ersten beiden Par2-Implementierungen QuickPar und par2cmdline. Paul Houle wurde seit 2004 aufgegeben und hat phpar2 erstellt, um par2cmdline zu ersetzen. Yutaka Sawada hat MultiPar entwickelt, um QuickPar zu ersetzen. Multipar verwendet par2j.exe (das teilweise auf den Optimierungstechniken von par2cmdline basiert) als Backend-Engine von MultiPar.

Versionen

Die Versionen 1 und 2 des Dateiformats sind nicht kompatibel. (Viele Kunden unterstützen jedoch beide.)

Par1

Für Par1, die Dateien f1 , f2 , ..., fn , besteht das Parchive aus einer Indexdatei ( f.par ), einer Datei vom Typ CRC ohne Wiederherstellungsblöcke, und einer Reihe von "Paritätsvolumes" ( f.p01) , f.p02 usw.). Bei allen Originaldateien bis auf eine (z. B. f2 ) ist es möglich, die fehlende f2 bei allen anderen Originaldateien und einem der Paritätsvolumes zu erstellen . Alternativ ist es möglich, zwei fehlende Dateien aus zwei beliebigen Paritätsvolumes usw. neu zu erstellen.

Par1 unterstützt bis zu 256 Quell- und Wiederherstellungsdateien.

Par2

Par2-Dateien verwenden im Allgemeinen dieses Benennungs- / Erweiterungssystem: Dateiname.vol000 + 01.PAR2 , Dateiname.vol001 + 02.PAR2 , Dateiname.vol003 + 04.PAR2 , Dateiname.vol007 + 06.PAR2 usw. Die +01, +02 usw. im Dateinamen gibt an, wie viele Blöcke es enthält, und vol000, vol001, vol003 usw. geben die Nummer des ersten Wiederherstellungsblocks in der PAR2-Datei an. Wenn in einer Indexdatei eines Downloads angegeben ist, dass 4 Blöcke fehlen, können Sie die Dateien am einfachsten reparieren, indem Sie filename.vol003 + 04.PAR2 herunterladen . Aufgrund der Redundanz ist jedoch auch Dateiname.vol007 + 06.PAR2 zulässig. Es gibt auch eine Indexdatei Dateiname.PAR2 , die in ihrer Funktion mit der in PAR1 verwendeten kleinen Indexdatei identisch ist.

Die Par2-Spezifikation unterstützt bis zu 32768 Quellblöcke und bis zu 65535 Wiederherstellungsblöcke. Eingabedateien werden in mehrere gleich große Blöcke aufgeteilt, sodass Wiederherstellungsdateien nicht die Größe der größten Eingabedatei haben müssen.

Obwohl Unicode in der PAR2-Spezifikation als Option erwähnt wird, unterstützen die meisten PAR2-Implementierungen Unicode nicht.

Die Verzeichnisunterstützung ist in der PAR2-Spezifikation enthalten, wird jedoch von den meisten oder allen Implementierungen nicht unterstützt.

Par3

Die Par3-Spezifikation sollte ursprünglich als Erweiterung der Par2-Spezifikation veröffentlicht werden. Bis heute ist es jedoch eine geschlossene Quelle des Spezifikationsinhabers Yutaka Sawada geblieben.

Software

Multi-Plattform

Windows

  • Multipar (Freeware) - Baut auf QuickPar-Funktionen und GUI und nutzt Yutaka Sawada der par2j.exe als Backend PAR2. MultiPar unterstützt mehrere Sprachen von Unicode. Der Name MultiPar wurde vom "mehrsprachigen PAR-Client" abgeleitet. MultiPar funktioniert auch mit Wine unter TrueOS und Ubuntu und möglicherweise auch mit anderen Betriebssystemen. Obwohl die Par2-Komponenten Open Source sind (oder sein werden), ist die darüber liegende MultiPar-Benutzeroberfläche derzeit kein Open Source.
  • QuickPar (Freeware) - seit 2004 nicht mehr gewartet, ersetzt durch MultiPar.
  • phpar2  - erweiterte par2cmdline mit Multithreading und hochoptimiertem Assembler-Code (ca. 66% schneller als QuickPar 0.9.1)
  • Spiegel  - Erste PAR-Implementierung, seit 2001 nicht mehr gewartet.

Mac OS X

POSIX

Software für POSIX- konforme Betriebssysteme:

Siehe auch

Verweise

Externe Links