# Token Bus

Token Bus es un protocolo para redes de área local con similitudes a Token Ring, pero en vez de estar destinado a topologías en anillo está diseñado para topologías en bus.
Es un protocolo de acceso al medio en el cual los nodos están conectados a un bus o canal para comunicarse con el resto. En todo momento hay un testigo (token) que los nodos de la red se van pasando, y únicamente el nodo que tiene el testigo tiene permiso para transmitir. El bus principal consiste en un cable coaxial.
Token bus está definido en el estándar IEEE 802.4. Se publicó en 1980 por el comité 802 dentro del cual crearon 3 subcomites para 3 propuestas que impulsaban distintas empresas. El protocolo ARCNET es similar, pero no sigue este estándar. Token Bus se utiliza principalmente en aplicaciones industriales. Fue muy apoyado por GM. Actualmente en desuso por la popularización de Ethernet.

## Características

* Tiene una topografía en bus (configuración en bus física), pero una topología en anillo. Las estaciones están conectadas a un bus común pero funcionan como si estuvieran conectadas en anillo.
* Todas las estaciones o nodos conocen la identidad de los nodos siguiente y anterior. El último nodo conoce la dirección del primero y de su anterior, así como el primer nodo conoce la dirección del último y de su sucesor.
* La estación que tiene el testigo o token tiene el control sobre el medio y puede transmitir información a otro nodo.
* Cada estación tiene un receptor y un transmisor que hace las funciones de repetidor de la señal para la siguiente estación del anillo lógico.
* No existen colisiones.
* Todas las estaciones tienen igual probabilidad de envío.
* Es un protocolo eficaz en la producción en serie.

## Funcionamiento

Siempre hay un testigo (token) el cual las estaciones de la red se van pasando en el orden en el que están conectadas. Solamente un único nodo puede transmitir en un momento dado y éste nodo es el que tiene el testigo.
El testigo es usado durante un tiempo para transmitir, pasando después el testigo a su vecino lógico para mantener el anillo.
Si el nodo no tuviera que enviar ningún dato, el testigo es inmediatamente pasado a su nodo sucesor.
Si la estación sucesora no transmite, la estación emisora supone que se debe a que no está operativa. Ante esta situación, envía una nueva trama de “solicitar sucesor”. Para intentar averiguar quién es el siguiente; en esta trama se incluye la dirección del sucesor (el que está inactivo) de la estación emisora. Todas las estaciones comparan esta dirección con la de sus respectivos predecesores. La estación cuya dirección predecesora coincida con la de esta trama de interrogación enviara otra trama de “establecer sucesor”, en la que se incluya su propia dirección. De este modo queda más claro quién es el nuevo sucesor, consiguiendo así “puentear” la estación inactiva, que quede fuera de la red a efectos lógicos.
Es necesario que un protocolo notifique las desconexiones o adhesiones de nodos al anillo lógico.

## Medio Físico

* Los nodos están conectados a un cable coaxial de 75Ω como el usado en TV.
* Se emplean 3 tipos de modulaciones analógicas:
* Modulación por desplazamiento de frecuencia continua (FSK).
* Modulación por desplazamiento de frecuencia coherente (FSK).
* Modulación por desplazamiento de fase de amplitud modulada (PSK).
* La velocidad de transmisión son de 1,5 y 10 Mbps.

## Protocolo de Subcapa Mac
### Formato de la trama de Token Bus

* Preámbulo: se utiliza para la sincronización del reloj del receptor.
* Byte delimitador de inicio: Marca el inicio de la trama.
* Control de la trama: Byte que indica si la trama es de datos o de control:
* Trama de Datos: LLeva el nivel de prioridad y el acuse de recibo (ACK).
* Trama de Control: Se encarga de indicar el paso del testigo y también del mantenimiento del anillo (Adhesión o eliminación de nodos).
* Dirección Destino y Origen: 2 o 6 bytes, indican hacia quien o desde quien se envía la trama. Son equivalentes a las usadas en Token Ring.
* Datos: Hasta 8182 bytes si las direcciones son de 2 bytes y hasta 8174 si son de 6 bytes.
* Código de Redundancia (CRC): 4 bytes que corresponden a una suma de verificación (Checksum) para comprobar que la trama llegó en buen estado:
| Campo Control de Trama | Nombre | Función |
| 00000000 | Claim_token | Pide el token al inicio del anillo |
| 00000001 | Solicit_sucessor_1 | Permite entrar estaciones al anillo |
| 00000010 | Solicit_sucessor_2 | Permite entrar estaciones al anillo |
| 00000011 | Who follows | Se obtiene del token perdido |
| 00000100 | Resolve_contention | Hay varios nodos queriendo acceder |
| 00001000 | Token | Pasa el testigo |
| 00001100 | Set_sucessor | Permite al nodo liberar el testigo |

### Funcionamiento del protocolo de nivel MAC

Al inicio del anillo el nodo con dirección más alta puede enviar la primera trama y luego envía el testigo a la dirección del nodo siguiente. El testigo va pasando de las direcciones más altas a las más bajas. Además se definen prioridades de tráfico: 0, 2 ,4 y 6, siendo 0 la más baja. Cuando el testigo llega a un nodo, se comprueba si la prioridad 6 tiene datos para enviar. De lo contrario, se pasa a la prioridad 4 y se comprueba, y así sucesivamente hasta llegar al nivel 0, o hasta que haya expirado el tiempo del testigo.

## Eficiencia del protocolo Token Bus

La eficiencia en el protocolo Token-Bus se halla mediante la siguiente fórmula:
$Rendimiento_{TB}\thickapprox {1 \over {1+{a \over n}}}$
Donde: a=PROP/TRANSP + TRANST.
PROP: suma de todos los tiempos de propagación y depende de la ordenación de los nodos.
TRANSP: tiempo de transmisión de un paquete.

## Ventajas y Desventajas

* Ventajas:
** Asegura más equidad entre nodos.
** Puede enviar tramas más cortas.
** Posee un sistema de prioridades.
** Buen rendimiento y eficiencia cuando posee alta carga (velocidad de la red).
* Desventajas:
** Necesita el uso de módems.
** Tiene un alto retardo cuando posee una carga baja (velocidad de la red).
** No debe usarse con fibra óptica.