ZMODEM


ZMODEM es un protocolo de transferencia de archivos desarrollado por Chuck Forsberg en 1986, en un proyecto financiado por Telenet para mejorar la transferencia de archivos en su red X.25 . Además de un rendimiento drásticamente mejorado en comparación con los protocolos anteriores, ZMODEM ofrecía transferencias reiniciables, inicio automático por parte del remitente, un CRC ampliado de 32 bits y comillas de caracteres de control que admiten transferencias limpias de 8 bits , lo que permite su uso en redes que no pasar caracteres de control.

A diferencia de la mayoría de los protocolos de transferencia desarrollados para los sistemas de tablones de anuncios (BBS), ZMODEM no se basó directamente ni fue compatible con el seminal XMODEM . Se habían desarrollado muchas variantes de XMODEM para abordar una o más de sus deficiencias, y la mayoría seguían siendo compatibles con versiones anteriores y completarían con éxito las transferencias con implementaciones XMODEM "clásicas". Esta lista incluye el propio YMODEM de Forsberg .

ZMODEM evitó la compatibilidad con versiones anteriores a favor de producir un protocolo radicalmente mejorado. Funcionó tan bien o mejor que cualquiera de las variedades de alto rendimiento de XMODEM, lo hizo en enlaces que anteriormente no funcionaban en absoluto, como X.25, o tenían un rendimiento deficiente, como los módems Telebit , e incluían funciones útiles que se encuentran en pocos o ningún otro protocolo. ZMODEM se hizo extremadamente popular en los sistemas de tablones de anuncios (BBS) a principios de la década de 1990, convirtiéndose en un estándar tan extendido como lo había sido antes XMODEM.

Generalmente, los protocolos de transferencia de archivos dividen un archivo en una serie de paquetes y luego los envían uno por uno al receptor. La parte principal del paquete, la carga útil , es una cierta cantidad de bytes del archivo que se envía. Después de la carga útil viene una suma de comprobación o verificación de redundancia cíclica (CRC) que se puede utilizar para determinar si la carga útil se recibió correctamente. Si el paquete se recibe correctamente, el receptor envía un mensaje ACK y el remitente comienza a enviar el siguiente paquete.

El sistema telefónico introduce un pequeño retraso conocido como latencia que interfiere con este proceso. Incluso si el receptor envía el ACK inmediatamente, la demora en las líneas telefónicas significa que siempre habrá algún tiempo antes de que el remitente lo reciba y envíe el siguiente paquete. A medida que aumentan las velocidades del módem , este retraso representa un número cada vez mayor de paquetes que podrían haberse enviado durante el retraso, lo que reduce la eficiencia del canal .

XMODEM utilizó cargas útiles de 128 bytes con un encabezado de tres bytes y una suma de comprobación de un byte para un total de 132 bytes por paquete. En la era de los módems de 300 bps, un paquete tardaba unos cuatro segundos en enviarse y las latencias típicas eran del orden de 110 de segundo, por lo que la sobrecarga de rendimiento no era significativa. A medida que aumentan las velocidades, el problema se vuelve más problemático; a 2400 bps, un paquete tarda aproximadamente 12 en enviarse, por lo que aproximadamente 15 del ancho de banda disponible se desperdicia esperando los ACK . A 9600 bps, un paquete requiere solo 0.13 segundos para enviarse, por lo que se desperdicia aproximadamente 12 del ancho de banda.