Kapitel 3 Download-Pfad: paralleler Download, Wiederaufnahme & Zusammensetzen (Kernthema)
Für Empfänger zeigt sich „schneller“ vor allem auf zwei Arten: Mehrere Chunks werden parallel abgerufen, um den Durchsatz zu verbessern, und bei schwachen Netzen oder Netzwechseln kann ohne Neustart fortgesetzt werden. Aus technischer Sicht ist der Download-Pfad symmetrisch zum Upload-Pfad aufgebaut.
3.1 Download-Objekte und Manifest
- Vor dem Download SOLLTE der Client das Manifest abrufen, um die Gesamtzahl der Chunks, ihre Reihenfolge und die Auffindbarkeit jedes Objekts zu erfahren.
- Das Manifest MUSS jeden Chunk eindeutig lokalisieren (über Objektschlüssel-Regeln oder einen gleichwertigen Index).
3.2 Paralleler Download
- Der Client SOLLTE mehrere Chunks gleichzeitig herunterladen, um näher an die Bandbreitenobergrenze zu kommen.
- Der Client SOLLTE eine begrenzte Parallelität verwenden und sie verringern, wenn die Fehlerraten steigen.
- Der Nutzen der Parallelität ist bei hoher RTT zwischen Regionen oft größer, weil eine einzelne Verbindung durch RTT und Jitter leichter ausgebremst wird.
3.3 Fortsetzbarer Download
- Der Client MUSS die Menge der abgeschlossenen Chunks erfassen können (z. B. als Bitmap / Indexmenge).
- Nach einer Unterbrechung SOLLTE der Client nur fehlende Chunks abrufen und nicht die gesamte Datei erneut herunterladen.
- Wenn der Server Limits für die Anzahl der Downloads durchsetzt, SOLLTE der Client redundante Downloads bei der Wiederaufnahme minimieren, um keine Zählungen zu verschwenden.
3.4 Zusammensetzen
- Der Client MUSS die Ausgabedatei in der Reihenfolge des chunkIndex zusammensetzen.
- Der Client SOLLTE Streaming-Schreibvorgänge / progressives Zusammensetzen verwenden, um Speicherspitzen zu verringern (besonders bei sehr großen Dateien).
- Wenn mehrere Dateien gepackt werden, KANN der Client pro Datei ausgeben oder ein Containerformat verwenden (je nach Produktdesign).
3.5 Integritätsprüfungen (kurz)
- Nach dem Download SOLLTE der Client die Chunks prüfen (z. B. Konsistenz von Hash/Länge).
- Schlägt die Prüfung fehl, MUSS er im Fail-Closed-Modus abbrechen und den betreffenden Chunk erneut abrufen.
- Zu den Grenzen bei Verschlüsselungs- und Authentifizierungsfehlern siehe die entsprechenden Abschnitte im Whitepaper zu Sicherheit und Datenschutz.