¿Cómo funciona IDM (administrador de descargas de Internet) (en términos simples)?

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.

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

Internet Download Manager (IDM) pertenece a una clase de aplicaciones conocidas como Download Accelerators. Recientemente escribí una respuesta que intenta explicar claramente cómo funcionan estos aceleradores: la respuesta de Darshit Shah al software: ¿es wget mejor que Internet Download Manager en términos de velocidad de descarga?

Sin embargo, esa respuesta puede no ser tan fácil de entender, por lo que volveré a exponer mis puntos aquí e intentaré que sea lo más simple posible.

Usted preguntó cómo funciona Internet Download Manager. IDM, como el resto de los navegadores web que usa (Firefox, Chrome, Internet Explorer, etc.) es lo que se conoce como Cliente HTTP . Un Cliente HTTP es una pieza de software que usted, el usuario utiliza y sabe cómo comunicarse con la multitud de servidores web o sitios web, si tuviera que simplificarlo.

A continuación, veamos cómo estos llamados Clientes HTTP y Servidores HTTP se comunican entre sí. Lo hacen enviando un paquete de datos. Este paquete contiene información sobre la página específica en el sitio web al que está intentando acceder, y mucha otra información, como qué navegador está utilizando, cuál fue la última página en la que estuvo y si inició sesión en el sitio web. Cuando un cliente envía un paquete al servidor, lo llamamos Solicitud HTTP , porque el cliente ahora solicita al servidor que le dé una determinada página web. Al recibir una solicitud , el servidor envía una respuesta HTTP al cliente indicando si puede entregar la página, o si no, por qué no puede.

Cuando hace clic en un enlace de descarga en cualquiera de sus navegadores web sin usar complementos como IDM y otros, el navegador, que es un Cliente HTTP , envía una solicitud para ese archivo. A cambio, el servidor envía un paquete de respuesta , con el archivo que solicitó. La barra de progreso de descarga que ve es el navegador que descarga este paquete de respuesta que también es su archivo.

Un lector astuto puede notar que dicho mecanismo no admite reanudar una descarga anterior. Digamos que trataste de descargar un archivo grande, pero perdiste la conectividad a Internet en el medio de la descarga. Luego, cuando intente descargar el archivo nuevamente, se descargará todo el archivo, ¡no comenzará desde la posición en que se detuvo! ¡Pero esto es contrario a lo que vemos en la vida real! Cuando intenta reiniciar una descarga, retiene lo que se haya descargado anteriormente y comienza a descargar solo lo que queda. Esta característica se agregó en junio de 1999, cuando el organismo que gobierna el HTTP y otros protocolos, Internet Engineering Task Force lanzó una nueva versión del protocolo, HTTP / 1.1. Los interesados ​​en los aspectos técnicos pueden consultar el documento de especificaciones actualizado aquí: rfc 2616. Una característica importante de esta actualización fue el soporte para reanudar las descargas. Si utiliza esta función, el Cliente HTTP , en su solicitud al servidor le dirá qué parte del archivo requiere. El Servidor HTTP enviará obedientemente solo el archivo parcial que solicitó el cliente. Una vez que las partes antiguas y nuevas están disponibles, el cliente simplemente necesita unirlas para volver a crear el archivo que originalmente solicitamos.

Ahora, preguntas, ¿cómo funciona IDM? Bueno, como IDM es un cliente HTTP,. Funciona prácticamente de la misma manera. Envía una solicitud del archivo al servidor y descarga la respuesta . Sin embargo, es posible que haya notado que IDM tiende a ser mucho más rápido para descargar el archivo que sus navegadores normales. Esto se debe a que IDM utiliza la capacidad de reanudar una descarga de manera inteligente. ¿Recuerda que recientemente vimos cómo un Cliente HTTP puede descargar un archivo parcial mientras reanuda una descarga interrumpida? ¿Puedes pensar si es una forma inteligente de hacer que tus descargas sean más rápidas? ¿Sí? ¡Excelente! Acabas de entender cómo funciona IDM. ¿No? Sigue leyendo, te lo explicaré

Internet Downloads Manager (IDM), cuando se le pide que descargue un archivo grande, envía múltiples (alrededor de 5-10) solicitudes HTTP al servidor solicitando una parte diferente del archivo. Imagínese, le pedimos a IDM que descargue un archivo de 100 MB de tamaño. Luego, IDM envía 10 solicitudes al servidor para el mismo archivo, pero solicita partes de 10 MB del archivo. La primera solicitud pide 0-10 MB, la segunda por 10-20 MB, y así sucesivamente. Como todas estas solicitudes se enviaron juntas, las respuestas del servidor también llegan casi al mismo tiempo. Como resultado, comienza a descargar el archivo en paralelo . Y así, niños, así es como funciona IDM.

He hojeado algunos detalles y simplificado otros. Espero que esta sea una respuesta perfectamente clara. Si no es así, pídame que aclare las secciones que no comprende.

Internet Download Manager le permite descargar los archivos de los servidores en varios fragmentos / partes. Esto ayuda a aumentar la velocidad de descarga, ya que está descargando el mismo archivo en varias partes. Cuando el archivo se ha descargado en partes / fragmentos, se combina en un solo archivo después de finalizar el proceso de descarga en IDM.

Esto generalmente funciona bien con enlaces de descarga directa, algunos servidores no ofrecen enlaces de descarga reanudables ni múltiples flujos de descarga desde la misma dirección IP.

Ya hay muchas buenas respuestas aquí. La idea es que, en lugar de descargar un archivo con una conexión al servidor, cree varias conexiones y descargue el archivo en segmentos. Esto se puede hacer si el servidor acepta el encabezado “Rango”.

Entonces, por ejemplo, digamos que tengo que descargar un archivo de 10 MB, luego, en lugar de solicitar el archivo completo en una conexión, lo dividiré en 5 conexiones paralelas.

La primera conexión solicitará los primeros 2 MB, la segunda solicitará los siguientes 2 MB y así sucesivamente.

La pausa / reanudación de descarga también se basa en el mismo concepto, si el usuario selecciona pausar la descarga y luego detiene la descarga, cuando el usuario selecciona reanudar la descarga, solicite al servidor los datos restantes. Por ejemplo, si el usuario hizo una pausa en la descarga cuando se descargaron 2 MB y se reanuda nuevamente, IDM le pedirá al servidor los 8 MB restantes.

Cuando se descargan todos los fragmentos, IDM los combina en uno y posiblemente agrega metadatos. Hay una falla con IDM, descarga segmentos en múltiples archivos temporales y cuando se descargan todos los segmentos, fusiona estos archivos temporales en uno. En lugar de hacer esto, los datos descargados se pueden escribir directamente en el archivo final, por lo que se puede eliminar el último paso de la fusión del archivo.

Cuando cambié a Mac desde Windows no pude encontrar ningún software similar para Mac. Entonces escribí mi propio IDM para Mac 🙂 Puedes descargarlo aquí

Se han dado respuestas muy detalladas sobre el administrador de descargas, por lo que no quiero hablar mucho al respecto. Pero quiero responder una pregunta complementaria hecha por Isha Krishna KP , sí, hay un encabezado de “Rango” en la solicitud http para especificar la ubicación exacta del byte para comenzar la descarga.

Al utilizar este encabezado, puede implementar la descarga de archivos de varias partes creando múltiples solicitudes para el mismo archivo con diferentes ubicaciones de bytes.
Pero antes de usar este encabezado, debe verificar si el servidor web admite o no la descarga de archivos de varias partes. Porque no todos los servidores web admiten esta función, y es por eso que el administrador de descargas no puede descargar archivos en varias partes donde esta función no está disponible.

por lo tanto, primero debe verificar la existencia del encabezado “Accept-Ranges” en la primera respuesta http que vino del servidor.

// NOTA: el siguiente no es el código real, solo estoy escribiendo para demostrar el concepto

if (encabezados. Contiene (“Aceptar-Rangos”))
{
// ahora puede usar la ubicación de bytes para especificar desde dónde desea iniciar la descarga
header.add (“Range”, “bytes =” + numberOfBytes);
}
más
{
// reanudar no es compatible con este servidor
}

En realidad, idm Internet Download Manager (IDM) Crack 6.29 Build 2 + [Patch] comienza a descargar desde cada parte de un archivo en el tiempo medio,
completa partes gradualmente

¿IDM aumenta mis velocidades o descargas más de lo que mi conexión puede, en un momento dado?

La respuesta es Sí, aumenta la velocidad de descarga en comparación con la descarga de una sola conexión TCP. La razón es que la mayoría del ISP acelera su conexión TCP. Por lo tanto, habría un límite de descarga en su única conexión TCP. No obtendrá más velocidad más allá de ese límite a pesar de que tenga un mayor ancho de banda descendente. Si desea utilizar todo su ancho de banda descendente, debe crear múltiples conexiones TCP. Y eso es lo que hace IDM.

Hola a todos,

Gracias por el aporte. Una Q más relacionada.

Considere una descarga en curso que se detiene en el medio y se reanuda al día siguiente o después de unas pocas horas y la descarga continúa desde el lugar exacto donde se detuvo.
¿Alguien sabe en qué campos de encabezado o información del cliente, se reanuda desde la ubicación exacta donde dejó de asegurarse de que los contenidos descargados no tengan que volver a descargarse?

Puedes usar curl para hacer lo mismo.
Curl tiene una opción ” -r ” para especificar el rango de bytes que desea obtener del servidor. Ahora todo lo que tiene que hacer es hacer múltiples solicitudes al servidor simultáneamente con diferentes encabezados de rango. Por ejemplo :

curl -r 0-18000 http://www.bio.davidson.edu/molecular/Protocols/gels2002/1kbladder.pdf -o part1
curl -r 18001- http://www.bio.davidson.edu/molecular/Protocols/gels2002/1kbladder.pdf -o part2
cat part1 part2 >> full.pdf

Sin embargo, no todos los servidores admiten esta función.

Mira este tutorial de trabajo:

es fácil fusionar dos archivos, abrirlos en el bloc de notas, copiar un archivo y luego pegar al final de otro archivo, pero debe saber qué archivo agregar, Java también proporciona la función de agregar archivos

Echa un vistazo a aria2 🙂 Puedes estudiar la fuente y cómo funciona …

Hola, soy nuevo aquí. Quiero hacer algunas preguntas ¿Cómo sabe IDM que el archivo es un video? y luego aparece un botón que dice algo así como “Descargar video” … por favor alguien puede ayudarme 🙂 para mis propósitos de investigación gracias

¿Cómo toma IDM enlaces de sitios web de transmisión como youtube?

¿Cómo idm fusionar esas partes?