EL envío de ficheros entre ordenadores requiere de un protocolo.

Estos protocolos fueron evolucionando para hacerse más y más eficientes, mediante sistemas de corrección de errores, compresión, métodos de retransmisión...

La eficiencia de ellos era muy importante dado que antiguamente las velocidades de transmisión eran muy bajas, en especial en la conexión vía módem, Y mediante los puertos serie que incorporaban los ordenadores.

Una de las formas más básicas era el uso del protocolo XON/XOFF.

Un protocolo para controlar el flujo de datos entre dos computadoras o entre dos dispositivos, como por ejemplo para comunicar el ordenador con una impresoras.
Consiste en usar dos caracteres especiales para controlar el flujo de caracteres (en la tabla ASCII, el carácter XON es el código 17, y el XOFF es el 19). Cuando el receptor del mensaje desea que el emisor detenga el flujo de datos, manda el carácter XOFF. Para que el flujo se reanude, el emisor debe recibir un carácter XON.

Este protocolo funciona muy bien cuando se trata de transmitir ficheros de texto, ya que los caracteres XON (ASCII 17) y XOFF (ASCII 19) no forman parte de los caracteres usados normalmente en este tipo de ficheros (no estan dentro de los caracteres imprimibles). Por ello era usado ampliamente para el envío de caracteres hacia impresoras.

La "X" en el nombre significa "transmisor", por lo que XON y XOFF son comandos para encender o apagar un transmisor, respectivamente.

Pero para la transmisión de ficheros binarios se requería de protocolos más avanzados.

XMODEM

XMODEM es el protocolo de transferencia más antiguo, desarrollado en 1977 por "Ward Christensen" y posteriormente cedido para su uso público. Se trata de un protocolo de transferencia muy sencillo de implementar que gracias a ello alcanzó gran popularidad, la mayoría de los módems actuales soportan aun este protocolo.

Como en la mayoría de los protocolos de transferencia, comienza partiendo los datos originales en una serie de paquetes que son enviados al receptor, cada paquete contiene una información adicional que le permite al receptor determinar la correcta recepción de los mismos.

Los paquetes son enviados de uno en uno, cuando son recibidos lo primero que hace el protocolo es comprobar la integridad de los datos mediante el byte “Checksum” , y a continuación el número de bloque dentro del mensaje. Si esto esta correcto el receptor envía una señal “ACK ” al emisor para que proceda con el envío del siguiente paquete de la secuencia. Si el paquete estuviera corrupto, el receptor enviaría una señal “NAK” para que se procediera al reenvío de ese paquete.

La versión original transfiere archivos en bloques de 128 octetos enriquecido con caracteres de control que le permiten comprobar si ocurren errores en la recepción con el singular checksum pero sólo envía un archivo a la vez, no transfiere ni el nombre, ni la fecha, ni la hora del archivo y, por si fuera poco, no mantiene su tamaño original, redondeándolo al múltiple más cercano de 128 octetos.

Presentava algunos problemas menores:

XMODEM fue escrito para ordenadores con sistema operativo CP/M, que usaba ciertos caracteres que con la migración generalizada hacia sistemas MS-DOS daban problemas. Por lo que tuvo que ser modificado.

Pero también otros de más graves:

Al usar una suma de verificación simple para la corrección de errores, era susceptible de aceptar como correctos paquetes que habían sido corrompidos por errores en la línea de transmisión. Entre otros errores que presentaba.

Estos errores hicieron aparecer versiones mejoradas del protocolo.

YMODEM

El YModem real fue creado en 1981 por Chuck Forsberg, el creador del ZModem, como una mejora del clásico XModem y, de hecho, corrige las lagunas de éste: utiliza verificación de errores CRC (al igual que XModem/CRC), el tamaño del bloque de datos es de 1.024 octetos / 1 Kb (siendo a menudo confundido con el XModem-1K), puede transferir varios archivos a la vez (de ahí su apodo: batch) y envía los nombres, fechas y horas de los archivos transmitidos.

ZMODEM

En 1986, Chuck Forsberg, el creador del YModem, creó ZModem el primer protocolo continuo con corrección de errores y recuperación de archivos, con una eficiencia cercana al 98%, enviando un flujo contante de datos e intercalando códigos de verificación de errores con CRC-32 (de 4 octetos o 32 bits) a intervalos parándose sólo para esperar la confirmación al final de la transmisión de un archivo, con lo que el tamaño del paquete que se transmite es el tamaño del archivo completo. Es además tolerante a pérdidas de línea pudiendo continuar la transferencia desde el punto donde se cortó al volver a conectar.

JMODEM

JModem fué desarrollado por Richard Johnson en 1988.
Está diseñado pensando en el ahorro del coste telefónico, con bloques de datos muy largos y compresión siempre que esta sea viable.

Se suele distribuir con su código fuente en lenguaje C permitiendo así su inclusión en cualquier programa de comunicaciones.

Kermit

Se trata de uno de los más conocidos y antiguos protocolos de transferencia de archivos, creado en la universidad estadounidense de Columbia por Frank Da Cruz, un estudiante inspirado en la rana Kermit de Los Teleñecos, a principios de los años 80.

Kermit fue planificado concienzudamente, pensando en el futuro (con la entonces llamada compatibilidad universal), con posibilidades de expansión y una gran sencillez al enviar grupos de archivos. No tiene ciertas restricciones de XModem. aunque es mucho más complejo en su diseño y sustancialmente más lento que él. Al igual que este último, está basado en el envío de un bloque o paquete pasando a la espera de la confirmación de su correcta recepción realizándose ésta con más de un carácter al contrario que XModem que sólo utiliza un octeto. Su lentitud es debida a que envía pequeños bloques de datos, entre 10 y 96 octetos cada uno, con varios caracteres de empaquetado además de encapsular bastantes caracteres (ASCII o no) siendo posteriormente expandidos en dos. Dispone de una sólida verificación de errores y está preparado para enviar archivos con sus nombres, fechas y horas sin alterar sus tamaños. Sin embargo, su método de compresión de datos es sencillo recuperando la eficacia perdida con los caracteres de control. Su rendimiento general oscila entre el 50% y el 66% del que ofrece XModem.

No está restringido a microordenadores sino todo lo contrario ya que es uno de los protocolos más utilizado en grandes computadoras (mainframes) debido a su demostrada compatibilidad.

Compuserve B

Compuserve B nació como el protocolo por defecto de la red CompuServe.

Es un protocolo más rápido que XModem aunque no tan extendido. Oficialmente, emplea paquetes de 512 octetos aunque, en la práctica, pueden variar de tamaño. Incorpora una corrección de errores básica de 7 bits.

Blast

Este protocolo fue introducido en el mercado en 1983 por la empresa Communications Research Group siendo el primero del tipo bi-direccional. Aunque hoy en día haya caido prácticamente en desuso, en su día fue muy popular por poder usarse en un amplio abanico de ordenadores diferentes. Es un protocolo de envío y espera tal como: XModem, YMmodem, Kermit, etc.

HyperProtocol

Hilgreve presentó en el año 1987 un rapidísimo protocolo de transferencia de archivos que denominó HyperProtocol, siendo el primero de su género en incorporar una efectiva compresión de datos en tiempo real, capaz de enviarlos a más de 10.000 bps con simples módems a 2.400 bps y a más de 40.000 bps con módems a 9.600 bps ... El ya famoso algoritmo de compresión utilizado fue el de Ziv-Lempel que permite utilizar cualquier tipo de fichero y cuya característica más espectacular es la de auto-desactivación si detecta que los archivos que se intentan transferir ya están comprimidos. Aún en este último caso, sin compresión, HyperProtocol alcanza una tremenda eficacia, superior al 99%.

Este protocolo, al igual que ZModem, es de flujo continuo con corrección de errores integrada, sin embargo y a diferencia de él, no se detiene entre archivo y archivo, esperando exclusivamente una confirmación al transmitir el último archivo de la lista de los seleccionados.

La eficacia de HyperProtocol aumenta cuanto mayor sea la velocidad de transmisión elegida a diferencia del resto de los protocolos, siendo muy popular y efectivo en transferencias a alta velocidad y, sobre todo, en la red digital de servicios integrados (RDSI) donde es utilizado frecuentemente.


Existieron muchos otros otros protocolos y variantes de los ya mencionados, pero estos fueron los más empleados.

← Ver otros artículos