Kapitel 3 Download-Pfad: Paralleler Download, Wiederherstellung und Neuassemblierung (Schlüssel)
Für Empfänger zeigt sich „schneller“ vor allem auf zwei Arten: durch das parallele Abrufen mehrerer Chunks, um den Durchsatz zu verbessern, und durch die Möglichkeit, bei schwachen Netzwerken oder Netzwerkwechseln ohne Neustart wiederherzustellen. Aus technischer Sicht ist der Download-Pfad symmetrisch zum Upload-Pfad.
3.1 Laden Sie Objekte herunter und manifestieren Sie sie
- Vor dem Herunterladen SOLLTE der Client das Manifest abrufen, um die Gesamtanzahl der Chunks, die Reihenfolge und die Lokalisierung der einzelnen Objekte zu erfahren.
- Das Manifest MUSS jeden Block eindeutig lokalisieren (über Objektschlüsselregeln oder einen entsprechenden Index).
3.2 Paralleler Download
- Der Client SOLLTE mehrere Blöcke gleichzeitig herunterladen, um der Bandbreitenobergrenze näher zu kommen.
- Der Client SOLLTE begrenzte Parallelität verwenden und diese reduzieren, wenn die Fehlerraten steigen.
- Der Vorteil der Parallelität ist bei hoher regionsübergreifender RTT oft größer, da eine einzelne Verbindung leichter durch RTT und Jitter eingeschränkt wird.
3.3 Fortsetzbarer Download
- Der Client MUSS in der Lage sein, den Satz abgeschlossener Blöcke aufzuzeichnen (z. B. Bitmap-/Indexsatz).
- Nach einer Unterbrechung SOLLTE der Client nur fehlende Teile abrufen und nicht die gesamte Datei erneut herunterladen.
- Wenn der Server Grenzwerte für die Download-Zählung erzwingt, SOLLTE der Client redundante Downloads während der Wiederherstellung minimieren, um eine Verschwendung von Zählungen zu vermeiden.
3.4 Zusammenbau
- Der Client MUSS die Ausgabedatei in der chunkIndex-Reihenfolge neu zusammensetzen.
- Der Client SOLLTE Streaming-Schreibvorgänge/progressive Reassemblierung verwenden, um Speicherspitzen zu reduzieren (insbesondere bei sehr großen Dateien).
- Wenn mehrere Dateien gepackt sind, kann der Client die Ausgabe pro Datei durchführen oder ein Containerformat verwenden (je nach Produktdesign).
3.5 Integritätsprüfungen (kurz)
- Nach dem Download SOLLTE der Client die Chunks überprüfen (z. B. Hash-/Längenkonsistenz).
- Wenn die Überprüfung fehlschlägt, MUSS sie geschlossen werden und der entsprechende Block erneut versucht werden.
- Informationen zu Grenzen rund um Verschlüsselungs-/Authentifizierungsfehler finden Sie in den entsprechenden Abschnitten im Whitepaper zu Sicherheit und Datenschutz.