Capítulo 3 Ruta de descarga: descarga paralela, recuperación y reensamblaje (clave)
Para los destinatarios, "más rápido" se muestra principalmente de dos maneras: recuperar múltiples fragmentos en paralelo para mejorar el rendimiento y poder recuperarse en redes débiles o cambios de red sin reiniciar. Desde una perspectiva de ingeniería, la ruta de descarga es simétrica a la ruta de carga.
3.1 Descargar objetos y manifiesto
- Antes de descargar, el cliente DEBE buscar el manifiesto para conocer el número total de fragmentos, el orden y cómo ubicar cada objeto.
- El manifiesto DEBE ubicar de forma única cada fragmento (a través de reglas de clave de objeto o un índice equivalente).
3.2 Descarga paralela
- El cliente DEBE descargar varios fragmentos simultáneamente para acercarse al límite del ancho de banda.
- El cliente DEBE utilizar concurrencia limitada y reducirla cuando aumentan las tasas de error.
- El beneficio de la concurrencia suele ser mayor con un RTT alto entre regiones, porque el RTT y la fluctuación limitan más fácilmente una única conexión.
3.3 Descarga reanudable
- El cliente DEBE poder registrar el conjunto de fragmentos completados (por ejemplo, mapa de bits/conjunto de índices).
- Después de una interrupción, el cliente DEBE recuperar solo los fragmentos que faltan, no volver a descargar el archivo completo.
- Si el servidor impone límites de recuento de descargas, el cliente DEBE minimizar las descargas redundantes durante la recuperación para evitar desperdiciar recuentos.
3.4 Reensamblaje
- El cliente DEBE volver a ensamblar el archivo de salida en orden de índice de fragmentos.
- El cliente DEBE utilizar escrituras en streaming/reensamblaje progresivo para reducir los picos de memoria (especialmente para archivos muy grandes).
- Si se empaquetan varios archivos, el cliente PUEDE generar por archivo o utilizar un formato contenedor (según el diseño del producto).
3.5 Controles de integridad (breves)
- Después de la descarga, el cliente DEBE verificar los fragmentos (por ejemplo, coherencia de hash/longitud).
- Si la verificación falla, DEBE cerrarse y volver a intentar el fragmento correspondiente.
- Para conocer los límites en torno a las fallas de cifrado/autenticación, consulte las secciones relevantes en el documento técnico de seguridad y privacidad.