Protocolo Kermit

Protocolo Kermit
Información sobre la plantilla
Kermit test123123.gif
Creada y utilizado en la Universidad de Columbia, este protocolo permite facilidad y seguridad en la trasferencia de archivos entre mainframes.
CreadorFrank Da Cruz y Hill Catchings
Modelo de desarrolloDominio público
Lanzamiento inicial1981
IdiomaInglés
Sitio web
Proyecto Kermit en la Universidad de Columbia

Protocolo Kermit. Kermit es un protocolo de transferencia de ficheros, muy conocido, que se usa en numerosos paquetes de software diseñados para la comunicación a través de líneas telefónicas. Prácticamente cualquier protocolo de transferencia de ficheros que se use en microodenadores utiliza una unidad básica llamada paquete: agrupación de varios elementos o campos formados por bytes.

La transferencia de archivos es la posibilidad de transportar archivos entre dos computadores utilizando dos módems. Los módems deben emplear un protocolo de transferencia de archivos, que puede corregir errores de transmisión e iniciar el proceso de transferencia. Ambos módems deben utilizar el mismo protocolo. Al establecer una transferencia de archivos, el software de comunicaciones le solicitará que designe un protocolo adecuado.

Historia

Protocolo de transferencia Kermit-uClinux.

Escrito por Frank Da Cruz y Hill Catchings en 1981 y es de dominio público sin ningún propósito comercial. Fue desarrollado en la Universidad de Columbia principalmente como un método de transferencia de información entre microordenadores y mainframes.

Es un protocolo muy conocido que se usa en numerosos paquetes de software diseñados para la comunicación a través de líneas telefónicas. Kermit puede usarse para transferir archivos o para emulación de terminal. Suele usarse con conexiones por módem aunque también soporta comunicaciones via otros mecanismos de transporte, como ser TCP/IP. Kermit se destaca por su precisión en las transmisiones y bajas velocidades de transferencia debido a sus configuraciones predeterminadas, optimizadas para el lado de la precisión. En los años 1980 fue muy importante debido a la proliferación de los sistemas (PC, Macintosh, Unix, mainframes) al recomponer los caracteres de 7 a 8 bits que emplea un formato del paquete variable. Según las condiciones de ruido en la línea, pudiendo llegar hasta los 9 kB. Es un protocolo multifichero que conserva el nombre y la longitud de los ficheros. Suele tener éxito cuando otros fallan.

No es utilizado por el público en general, pero la Universidad de Columbia permite que la gente use el protocolo gratuitamente, de modo que casi todos los productos de comunicaciones lo soportan. Sin embargo, no todas las implementaciones soportan el protocolo completo. Esto ha producido que algunas personas se refieran a una versión avanzada del Kermit como Super Kermit. Actualmente, sólo hay una versión del protocolo Kermit, que soporta todas las características avanzadas, usualmente atribuidas al Super Kermit, como ser paquetes más grandes.

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.

Características

Sus principales características son:

  1. La longitud de los bloques es variable y se indica en el segundo caracter del bloque.
  2. Existen diferentes tipos de bloques ya sea: de cabecera, de datos, de acuse de recibo.
  3. Ambos dispositivios no intercambian caracteres sueltos, sino que siempre mandan bloques.

Estructura

La estructura de cada bloque es la siguiente: primero se manda el carácter SOH (primer carácter, el único carácter menor que 32 ; que no se modifica). A continuación la Longitud del mensaje “caracterizada” (longitud + 32). Después una carácter que indica el tipo de mensaje. Ejemplo:

  • La "S" indica paquete inicial
  • La "D" indica Datos.
  • La "Y" indica acuse de recibo(ack).
  • La "N" indica no reconocimiento.
  • La "Z" indica fin de fichero.

A continuación se mandan los datos, codificando los menores de 32, y por último el checksum “caracterizado”.

|| SOH ||| LONGITUD ||| TIPO ||||||||||||| "DATOS" ||||||||||||| CHECKSUM ||

El checksum o suma de verificación de encargará de proteger la integridad de los datos, verificando que no hayan sido corruptos, es una forma de control de redundancia de los datos.El proceso consiste en sumar cada uno de los componentes básicos de un sistema (generalmente cada byte) y almacenar el valor del resultado. Posteriormente se realiza el mismo procedimiento y se compara el resultado con el valor almacenado. Si ambas sumas concuerdan se asume que los datos probablemente no han sido corrompidos.

Comunicación

El desarrollo de una comunicación es el siguiente: la comunicación la inicia el receptor mandando un NAK y a continuación el emisor manda el boque inicial , en el que se indican los parámetros de la transmisión (longitud máxima del mensaje, tiempo máximo de espera de respuesta, etc.). Después se espera a que el receptor mande el paquete de acuse de recibo correcto o incorrecto y si no lo reconoce se manda de nuevo. Este proceso de hace después de enviar cada bloque. Una vez mandado el bloque inicial, se manda el bloque de cabecera de fichero, donde se inicia el nombre del fichero. A continuación se mandan los bloques de datos hasta acabar el fichero. Por último se manda el bloque final del fichero. Si se desea mandar otro fichero se manda de nuevo el bloque de cabecera y se repite el proceso a partir de ese punto. Si no de desea mandar más ficheros se manda el bloque de final de transmisión para finalizar el proceso. Los caracteres que se mandan son siempre imprimibles, esto implica que sean mayores del ASCII 32. Para mandar caracteres menores, se codifican de manera que aumente su ASCII y se descodifican en el receptor.

Codificación

El protocolo Kermit utiliza dos estrategias para tratar caracteres menores de 32: caracterización y codificación.

La caracterización consiste en sumar 32 al carácter y para descaracterizarlo será por tanto preciso restar 32. Este método no se emplea con los bytes de datos, ya que para datos mayores de 223 no valdría.

Los bytes(Byte) de datos no se codifican todos, sino que sólo se codifican los menores de 32 y para ello se hace la función XOR con el dato y con 64. Para decodificarlo se hace la función XOR con 64 de nuevo. Así mismo, delante del dato codificado se inserta el carácter #. Si realmente se manda el carácter # como dato, entonces éste se manda dos veces. El hecho de no mandar caracteres con códigos ASCII menores al 32, es debido a que en algunos sistemas estos caracteres pueden tener asignada una misión especial que perturbe el funcionamiento de la transmisión.

Fuentes

Enlaces externos