En primer lugar, lo estás entendiendo todo mal.
¡NO EL ARCHIVO NO SE DIVIDE EN 8 PIEZAS de tamaño N / 8!
La mayoría de los servidores permiten más de una conexión a un SINGLE FILE STREAM [cualquier archivo consiste en una secuencia de bits] desde cualquier dirección IP del cliente que solicite el archivo. IDM primero verifica si se pueden hacer múltiples conexiones al archivo o no.
[Esto puede verificarse usando el encabezado ‘accept-range’ en la respuesta del servidor y luego usando el encabezado ‘Range’ en la solicitud GET al servidor. ]
En caso afirmativo, se puede descargar en partes [Explicación a continuación como cómo se hace realmente. ] de lo contrario, descarga el archivo linealmente y, al mismo tiempo, la descarga no se puede pausar.
¿Cómo se descargan los archivos en partes?
Ahora que IDM sabe que el servidor permite múltiples conexiones, realiza solicitudes al servidor para el archivo que desea descargar y el servidor devuelve un “BYTE STREAM”. Ahora, podemos especificar desde qué byte, debe comenzar la secuencia de bytes que se devolverá desde el servidor.
- ¿Dónde se puede obtener un servidor privado virtual barato y seguro?
- ¿Por qué un sitio web tan bueno como www.reddit.com tiene un diseño tan horrible?
- ¿De qué manera Internet está regulado por el gobierno de los Estados Unidos?
- ¿Cómo podría internet cambiar la política?
- ¿Por qué la gente troll en las redes sociales?
Ahora, el truco que IDM hace es que realiza 8 solicitudes (esto es configurable desde el interior de la aplicación) al servidor al mismo tiempo [usando subprocesos] y en todas las 8 solicitudes envía diferentes direcciones de bytes de inicio [que serán el inicio bytes en las secuencias de bytes que se devolverán] para que se cubra todo el archivo.
Por ejemplo, si el archivo tiene un tamaño de 8000 bytes,
Creará 8 solicitudes al mismo archivo en el servidor simultáneamente pero con bytes iniciales iniciales como …
En la Solicitud 1, inicio byte = 0. Bytes cubiertos: 0-999
En la solicitud 2, comenzando byte = 1000. Bytes cubiertos: 1000-1999
En la Solicitud 3, comenzando byte = 2000. Bytes cubiertos: 2000-2999
En la Solicitud 4, comenzando byte = 3000. Bytes cubiertos: 3000-3999
En la Solicitud 5, comenzando byte = 4000. Bytes cubiertos: 4000-4999
En la solicitud 6, comenzando byte = 5000. Bytes cubiertos: 5000-5999
En la Solicitud 7, comenzando byte = 6000. Bytes cubiertos: 6000-6999
En la Solicitud 8, comenzando byte = 7000. Bytes cubiertos: 7000-7999
Ahora las secuencias de bytes de retorno comenzarán desde los bytes respectivos en el archivo real. Las partes descargadas de cada una de las solicitudes se unen para crear el archivo original completo, una vez que se completa la descarga de cada transmisión.
PD:
IDM ahora también admite ‘Segementación dinámica’ [1], es decir, el total de segmentos de bytes de archivo que se descargan puede aumentar durante el proceso de descarga. Básicamente divide un segmento existente de bytes de archivo en dos para una mayor utilización de la red. Aunque las llamadas de red activas concurrentes son fijas (lo que configura dentro de la aplicación), las llamadas se pueden dividir entre los segmentos de bytes de archivo que se descargan.
¿IDM aumenta mis velocidades o descargas más de lo que mi conexión puede, en un momento dado?
No, no lo hace. (Cierto, casi todo el tiempo)
La mayoría de los usuarios, incluso muchos experimentados, tienen esta idea errónea.
Simplemente optimiza la forma en que se usa su conexión, es decir, garantiza que su conexión sea utilizada por los diferentes hilos de descarga que ha creado. Asegura que su conexión nunca esté inactiva para que pueda obtener la máxima velocidad posible. Técnicamente hablando, se asegura de que el ancho de banda de su red se utilice por completo. ESO ES.
Simplemente proporciona un método para administrar las descargas de manera eficiente y aprovechar al máximo el ancho de banda de su conexión que posiblemente se pueda hacer.
Notas al pie
[1] el acelerador de descarga más rápido