Protocolo B


De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

El protocolo B , o CIS B , es un protocolo de transferencia de archivos desarrollado para el servicio de información CompuServe e implementado en 1981. El protocolo se expandió más tarde en la versión QuickB (que era una versión asíncrona del protocolo estándar) y más tarde en la versión B mejorada. Versión Plus . Era un protocolo bastante avanzado para su época, que admitía transferencias eficientes de archivos, comandos y otros datos también, y podía usarse en ambas direcciones al mismo tiempo en ciertos modos. Estas funciones avanzadas no se utilizaron ampliamente, pero se podían encontrar en una pequeña cantidad de paquetes del lado del cliente.

Dado que el protocolo B fue diseñado solo para funcionar dentro de CompuServe, la mayoría de los clientes de comunicaciones de terceros del día no eran compatibles con él. Las excepciones más notables fueron Tera Term y Datastorm 's ProComm Plus en el PC que contó con la capacidad de escuchar para el Enquirecomando en el puerto de comunicaciones activo y ZTerm en el Mac que permitió que las transferencias de inicio automático. Este desarrollo fue parte de una tendencia más amplia de usar aplicaciones de comunicaciones externas junto con servicios en línea.

Descripción

La versión original del Protocolo B fue una consecuencia de un protocolo bidireccional anterior introducido en 1979, que agrega opciones para incluir una estructura de comando estandarizada en la secuencia. Este protocolo fue diseñado para ser utilizado por un terminal en línea personalizado construido por Tandy , el "AgVision" o "VideoTex", pero este proyecto fue abandonado después de ser vendido por solo un breve período. El sistema AgVision, con el módem eliminado, se convirtió en la base de la computadora en color TRS-80 .

El protocolo se amplió posteriormente en la versión B Plus, aunque hubo dos revisiones de esta versión. B Plus enfocó el concepto general principalmente en soportar descargas desde CompuServe, en contraposición a transferencias de usuario a usuario. La siguiente descripción se basa en la documentación de B Plus y no se refiere explícitamente a la anterior (y rara) B.

Estructura del paquete

B Plus es un protocolo de ventana deslizante con paquetes de tamaño variable entre 128 y 2048 bytes y ventanas de uno o dos paquetes. La adición de los tamaños de bloque 1k y 2k y las ventanas corredizas fueron los principales cambios en la estructura entre B y B Plus. Todos los caracteres de control potencialmente problemáticos siempre se citaron , un requisito porque muchas personas accedieron a CompuServe a través de servicios de paquetes no limpios de 8 bits como Tymnet . B Plus también utilizó cualquiera de los cuatro tipos de verificación de errores.

La estructura básica del paquete constaba de cinco partes:

La entrada tiene el mismo propósito que el "encabezado" en la mayoría de los protocolos, lo que indica que los datos siguientes son un paquete B Plus. El número de secuencia es una forma sencilla de asegurarse de que los paquetes se reciban en el orden correcto al recibirlos. El pequeño rango de números utilizado no presenta un problema porque los paquetes incluso "uno fuera de orden" activarán un reenvío o abortarán, por lo que no hay posibilidad de que se reciba el "0x30 incorrecto" diez paquetes después.

Los personajes de la carrocería o el tráiler se "citan". Oficialmente sólo unos pocos caracteres se citan, <ETX>, <ENQ>, <DLE>, <DC1>(XON), <DC3>(XOFF) y NAK. Por lo general, también se citan otros tres caracteres <RS>, <DC1>+ 0x80 y <DC3>+ 0x80. Los caracteres se citan agregando 0x40 a su valor ordinal y prefijándolos con el <DLE>carácter. Por ejemplo, el <ETX>carácter (0x03) se enviaría como <DLE>C.

Se citó el valor de verificación, al igual que el contenido con el que se verificó, pero el valor en el interior era la verificación de los valores no cotizados . Eso significa que Body tuvo que ser extraído y no cotizado antes de que el Check Value pudiera calcularse en el extremo receptor. Se permitieron cuatro tipos de valores de verificación , la suma de verificación XMODEM original , una versión ligeramente modificada de la verificación de redundancia cíclica (CRC) utilizada en XMODEM-CRC , o el CCITT CRC-16 o CRC-32. Al usar el CCITT CRC, el tráiler también incluía un carácter opcional al final como una "interrupción de la red" (enviar ahora), aunque no está claro por qué esto no era compatible con otros tipos de tráiler.<RS>

Tipos de paquetes

B Plus definió varios tipos de paquetes diferentes, a diferencia de la mayoría de los protocolos que incluían solo uno. Estos paquetes se utilizaron tanto para la transferencia de datos como para la entrega segura de comandos e información de configuración del protocolo. Los cuatro tipos fueron:

Los paquetes más comunes, en términos de número total transferido, son paquetes T que transportan los datos para una transferencia de archivos. Estos paquetes no tienen más valor semántico y están formateados como se describe anteriormente. Los paquetes T también incluyen "subtipos", Tr para "transferencia de reanudación", TF para "transferencia fallida" si la reanudación no coincide con el archivo parcialmente descargado, y TI para "transferencia de información", que envía detalles sobre el archivo que se está transfiriendo. La mayoría de los protocolos enviarían información de archivo como un "paquete cero" especial en el flujo de transferencia en sí, mientras que en B Plus esto se manejó con un tipo de paquete separado y efectivamente fuera del flujo de transferencia en sí, aunque no hubo una diferencia real en la práctica.

El paquete Failure permite al remitente indicar varios problemas dentro del flujo de paquetes. El paquete normalmente contiene un solo carácter "conocido", pero también puede incluir un mensaje informativo después de este carácter. El paquete de falla más común es el A (bort), que permite al usuario terminar las transferencias a pedido. Otras fallas incluyeron (C) falla de apacidad (falta de espacio en disco) y (M) emisión de archivo, entre otras.

Los parámetros de transporte se enviaron normalmente solo una vez, durante la fase de conexión inicial. Este paquete contenía una serie de detalles en un formato conocido que sincronizaba las funciones que ambos extremos de la conexión eran capaces de utilizar. Fue durante esta fase que se seleccionó el tipo de valor de verificación, por ejemplo.

Capa de transporte

Además de los tipos de paquetes normales descritos anteriormente, B Plus también incluyó tipos separados para enviar comandos a CIS a través de la capa con corrección de errores B Plus. El paquete M era un solo paquete de datos, mientras que L también era un paquete de datos, pero indicaba que el flujo de datos ahora estaba completo. Esto tenía que indicarse de esta manera porque, a diferencia de una transferencia de archivos, la cantidad de datos enviados no se conocería de antemano.

El contenido de estos paquetes era de formato libre y no estaba definido en la documentación de B Plus. Sin embargo, el concepto básico era que el programa de terminal del usuario respondería a la secuencia de interrogación de CIS (enviada cuando el usuario inició sesión por primera vez) iniciando una transferencia con el tipo M. Esta secuencia se usaría para enviar comandos al host CIS, que respondería abriendo otra secuencia de la capa de transporte de regreso al programa de la terminal. Estos flujos eran "sin secuencia" y se leían en el orden en que se recibieron. Los paquetes de errores o fallas provocaron la interrupción de ambos canales.

Posiblemente, el único usuario de la capa de transporte era la propia API Host-Micro Interface (HMI) de CompuServe . HMI definió una serie de comandos que podrían usarse para impulsar CIS, junto con las posibles respuestas a ellos, sin pasar por la interfaz de línea de comandos . Dado que la corrección de errores se estaba utilizando como un efecto secundario de la construcción en B Plus, la posibilidad de interpretar incorrectamente los comandos o las respuestas potencialmente confusas se eliminó básicamente. CIS amplió la HMI para permitir el control de la mayor parte de la interfaz orientada a lotes, incluidas funciones para correo electrónico, conferencias y transferencias de archivos.

Los flujos de la capa de transporte no podían tener lugar al mismo tiempo que las transferencias de archivos, por lo que, en términos generales, las aplicaciones que usaban la capa de transporte eran bastante modales. Por ejemplo, CIS Navigator para Mac , que estaba basado en HMI, permitía a los usuarios navegar por CIS fuera de línea, configurando varios correos electrónicos y transferencias de archivos que luego se llevarían a cabo en un solo lote para reducir el tiempo en línea. El último paso de la "ejecución" del navegador sería descargar archivos antes de cerrar la sesión.

Secuencias de control

Todos los protocolos utilizan el "canal de retorno" para enviar información de estado desde el "receptor" al "remitente". B Plus formalizó este sistema, definiendo varios "mensajes" que podrían enviarse fuera de la estructura del paquete. Estos incluían el típico DLEseguido de un número de secuencia para reconocer la recepción correcta de un paquete. NAKse utiliza para indicar un paquete indebidamente percibidas, que fue respondida con reconocer los mensajes, <DLE><DLE>. <DLE>;pausó el remitente, mientras <DLE>+cancelaba la transmisión.

La secuencia de control Inquire parece exclusiva de B Plus. El Inquire, que consta de un solo <ENQ>, se utilizó tanto para iniciar transferencias como para reiniciar después de recibir un NAK. En ambos casos, el Inquire hizo que el receptor restableciera su modo de conexión a la configuración de transferencia más básica posible y se preparara para una transferencia.

Ver también

Referencias

  • Russ Ranshaw, "The CompuServe B Plus Protocol", 18 de noviembre de 1993
Una versión comprimida de este documento está disponible como bplus.zip .
  • Levi Thomas y Nick Turner, "The compuserve B protocol", Dr. Dobb's Journal , Volumen 11, Número 7 (julio de 1986), págs. 54–59