XMODEM

Protocolo de transferencia (XMODEM)
Información sobre la plantilla
Xmodem.gif
Protocolo para la transferencia de red
DesarrolladorWard Christensen
Lanzamiento inicial1977


XMODEM. Es el protocolo de transferencia más antiguo, desarrollado en 1977 por "Ward Christensen" y posteriormente cedido para su uso público, por lo cual este protocolo también es conocido como “protocolo Christensen”. Se trata de un protocolo de transferencia muy sencillo de implementar que gracias a ello alcanzó gran popularidad, actualmente la mayoría de los modems soportan aun este protocolo. Posteriormente aparecieron también el YMODEM y más tarde el ZMODEM como derivados del primer protocolo.

Funcionamiento

XMODEM como 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. Cada paquete enviado se forma de la siguiente manera: Cada bloque de datos tiene un tamaño de 128 bytes, a los cuales hay que sumarle los siguientes campos anteriores a los datos:

- Un primer byte que es el carácter SOH (Comienzo de cabecera) que corresponde con el valor ASCII 1. - Otro byte con la posición del paquete dentro del mensaje original y otro byte más con la misma posición pero en complemento a 1 para comprobar su exactitud.

Y los siguientes campos posteriores a los datos: - Un byte de Checksum ( en módulo 256) para el control de errores de los datos del paquete.

Trasnferencia

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.

Problemas

XMODEM fue escrito para maquinas CP/M. Los archivos para este tipo de máquinas eran siempre múltiplos de 128 bytes y su final estaba marcado con un bloque con el carácter “EOT”. Esta característica fue portada directamente al XMODEM, sin embargo otro sistema operativo como fue posteriormente el MS-DOS en el principio de los 80, obligaron a XMODEM a una actualización para compatibilizarse con los caracteres “EOT” y “EOF” de marca de final de archivos.

Otro problema mucho más importante se encuentra en el diseño base del protocolo, tiene numerosos errores de diseño que pueden causar un error de transferencia o aun peor, puede resultar un archivo transferido incorrectamente y el protocolo no darse cuenta de este hecho. Muchos de estos errores eran debidos a que solo contaba con el byte “Checksum” para comprobar la integridad del bloque de datos, el cual era susceptible de sufrir errores en los datos si dos bits eran traspuestos, lo cual era bastante probable con cualquier mínimo ruido en la transferencia. Además este error en la cabecera y en el byte “Checksum” podía provocar un error en la transferencia de un archivo que realmente había sido recibido correctamente.

Esto provocó que varios autores introdujeran modificaciones en el XMODEM original para solucionar estos problemas. Muchas de estas soluciones serían propuestas para un nuevo estándar del protocolo, pero “Christensen” se negó a esto explicando que el pretendía seguir manteniendo el diseño tan simple como el lo había planteado.

Otro problema es que el XMODEM necesita de un usuario que solicite la transferencia del archivo, para una transferencia automática entre 2 sitios, son necesarios extensiones del protocolo XMODEM, esto provocó la apariciones de extensiones como el MODEM 7, TeLink, XMODEM-CRC, XMODEM-1k.

Véase también

Bibliografía