Logo

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.