PAR1/PAR2 sind Dateiformate, die Vorwärtsfehlerkorrektur-Daten für eine oder mehrere Dateien enthalten. Damit kann der Empfänger mittels der eingeführten Redundanz die Originaldateien rekonstruieren, wenn durch Übertragungsfehler oder Fehler im Speichermedium die Dateien fehlerhaft geworden sind. Für die Erstellung sowie zur Prüfung wird der Reed-Solomon-Code benutzt, der beim Lesen oder Empfangen digitaler Daten Fehler erkennen und korrigieren kann.
Die Datei(en) mit Fehlerkorrektur-Daten kann(können) aus einer oder mehreren Ausgangsdateien erstellt werden. Diese werden dabei intern virtuell in so genannte Slices gestückelt. Die Fehlerkorrektur-Daten werden dann in derselben Weise wie bei PAR1 gebildet, allerdings nicht von den Dateien, sondern von den Slices. Anhand dieser zusätzlich zu den eigentlichen Daten übertragenen Prüfsummen(-datei(en)) können Programme wie Quickpar prüfen, ob die Ausgangsdateien fehlerfrei übermittelt wurden und notfalls fehlende Daten ersetzen oder auch verfälschte reparieren.
Beim Erstellen von PAR2-Dateien lässt sich die Größe der Slices sowie der Grad der Redundanz vorgeben. Wird ein zu geringer Grad gewählt (kleiner als ein Slice) kann keine spätere Reparatur mehr erfolgen. Die Gesamtlänge der PAR2-Datei(en) steht in keinem festen Verhältnis zu den Ausgangsdateien und richtet sich nach dem Grad der Redundanz. Es ist also möglich, eine 100 MB große Datei mittels einer nur 1 MB großen PAR2-Datei zu reparieren – vorausgesetzt, es treten nur in einem kleinen Bereich der Datei Fehler auf.
Bei einem festgestellten Übertragungsfehler in einer Ausgangsdatei muss mindestens ein Slice ersetzt werden, wozu der entsprechende Recoveryblock aus einer PAR2-Datei benötigt wird, die üblicherweise mehrere solcher Blöcke enthält.
Zur Reparatur wird eine gewisse Anzahl von ihnen benötigt. Die genaue Anzahl kann variieren, so dass man sich die passende Kombination von PAR2-Dateien gezielt herunterladen kann, die benötigt wird.
Die Dateinamenskonvention einer PAR2-Datei sieht so aus:
- dateiname.ext.volFFF+NNN.par2
FFF steht für den Startindex der in dieser Datei vorhandenen Recoveryblöcke, NNN für deren Anzahl. Wenn also 20 Recoveryblöcke benötigt werden, besteht die Möglichkeit, eine PAR2-Datei mit 20 Blöcken, oder zum Beispiel 20 PAR2-Dateien mit je einem Block zu verwenden.
Implementierungen
Quickpar ist ein Windowsprogramm, das die Erstellung, Prüfung und Reparatur von Archiv-Dateien mit PAR2 beherrscht.
MultiPar ist ebenfalls ein Windowsprogramm, bietet aber deutlich mehr Optionen als Quickpar und ist zudem multicore-fähig.
par2 ist die Open-Source-Implementierung im Paket par2cmdline. Es wird im Projekt parchive für Linux und Windows entwickelt. Eine Version mit Multi-Threading existiert.
Weblinks
- Quickpar
- Projekt parchive - Implementierung für Linux
- parchive mit multithreading - par2cmdline 0.4 mit Intel Thread Building Blocks 2.0 (Memento vom 18. Juli 2008 im Internet Archive)
- parchive mit multithreading - par2cmdline 0.4 mit Intel Thread Building Blocks 2.0 *Wayback-Archive-Version* (Memento vom 12. Dezember 2014 im Internet Archive)
- phpar2 - par2cmdline Weiterentwicklung mit multithreading und hochoptimiertem Assemblercode
- MacPAR deLuxe - Programm für Mac OS X zur Erstellung, Prüfung und Reparatur von Archiv-Dateien mit PAR2