PAR2
# PAR2

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.

