La comunicación entre dispositivos conectados a una red es algo más que un emisor que emite unas señales eléctricas codificadas, hay que controlar cual de los dispositivos de la red recibe la señal, hay que evitar que dos dispositivos transmitan a la vez, etc. La comunicación necesita, al menos, dos dispositivos trabajando juntos, uno para enviar y otro para recibir, esto necesita coordinación para que el intercambio sea inteligible. La coordinación en la transmisión (evitar que dos dispositivos transmitan a la vez) es parte de un procedimiento llamado disciplina de línea, además hay que controlar el flujo de datos y los errores. Todas estas funciones son misión del control del nivel de enlace
- Disciplina de línea.
Las funciones de disciplina de línea del nivel de enlace controlan el establecimiento de los enlaces y el derecho de un dispositivo particular a transmitir en un momento dado. Así se evita los problemas que acarrearía el que dos o más dispositivos acceden a la linea en el mismo instante o mientras se está transmitiendo o que el receptor no espere la transmisión, esté ocupado o no funcione.
La disciplina de linea se lleva a cabo de dos formas: sondeo/reconocimiento (ENQ/ACK) y sondeo/selección. El primer método se usa en comunicación entre pares, el segundo método se usa en comunicación tipo primario-secundario.
ENQ/ACK
El método de solicitud/reconocimiento (ENQ/ACK) se usa en sistemas donde no hay posibilidad de que un receptor inadecuado reciba la transmisión, es decir cuando hay un enlace dedicado entre dos dispositivos de forma que el único dispositivo capaz de recibir la transmisión es el que se supone. ENQ/ACK coordina qué dispositivo puede empezar a transmitir y si el receptor está listo y activo.
El procedimiento ENQ/ACK es el siguiente: el que empieza transmite primero una trama denominada de solicitud (ENQ) preguntando si el receptor está dispuesto, éste debe responder con una trama de reconocimiento (ACK) si está listo o con una una trama de reconocimiento negativa (NAK) si no lo está. Así el emisor sabe si el receptor está listo para recibir o no, si no se recibe respuesta en un límite de tiempo, el emisor asume que la trama ENQ se ha perdido y envía otra. El emisor suele hacer tres intentos antes de abandonar la comunicación entendiendo que el receptor no funciona.
Si la respuesta a ENQ es negativa, el emisor para los intentos de establecer la comunicación, se desconecta de la linea e intentará en otro momento la comunicación. Si la respuesta es positiva, la conexión está lista para enviar datos. Una vez que el origen de la conexión ha enviado todos los datos, el emisor envía una trama de fin de transmisión (EOT).
- Control de flujo.
El segundo aspecto del control del enlace de datos es el control del flujo. El control del flujo es un conjunto de procedimientos que le dicen al emisor cuantos datos puede transmitir antes de esperar un reconocimiento del receptor. El dispositivo de recepción tiene una velocidad limitada para procesar los datos que recibe y una cantidad limitada de memoria. El receptor realiza un procesado y comprobación de los datos recibidos, la velocidad de esos procesos puede ser más lenta que la velocidad de transmisión, por lo que el receptor debe decirle al emisor que pare la transmisión hasta que vuelva a ser capaz de recibir.
Hay dos procedimientos para el control del flujo de datos: parada y espera y ventana deslizante.
Parada y espera
En el método de para y espera (stop and wait), el emisor espera un reconocimiento después de cada trama que envía, sólo envía la siguiente trama cuando se ha recibido un reconocimiento. El proceso de enviar datos y recibir acaba cuando el emisor envía una trama de fin de transmisión. La ventaja de la parada y espera es su sencillez, cada trama es comprobada y reconocida antes de que se envíe la siguiente, la desventaja es su ineficiencia, ya que es lenta.
Ventana deslizante.
En el método de control de flujo de ventana deslizante, el emisor puede transmitir varias tramas antes de necesitar un reconocimiento. El receptor notifica el reconocimiento usando un único ACK para confirmar la recepción de múltiples tramas de datos.
La ventana deslizante proporciona un límite superior en el número de tramas que se pueden transmitir antes de esperar un reconocimiento, no obstante las tramas pueden reconocerse sin esperar a que la ventana se llene, para saber que tramas se han transmitido y cuales se han recibido, la ventana deslizante introduce un esquema de identificación basado en el tamaño de la ventana: si la ventana puede tener n tramas, éstas se enumeran desde 0 hasta n-1, repitiendo la numeración en la ventana siguiente (p.e. Con n=8 sería 0, 1, 2, 3, 4, 5, 6, 7, 0, 1 …) Cuando el receptor envía un ACK, incluye el número de la trama que espera recibir, por lo que el emisor sabe que ha llegado bien todas las tramas hasta esa. La ventana trabaja así:
Ventana del emisor: al principio de la transmisión, con una ventana de n tramas, la ventana se llena con n-1 tramas, al emitirlas, el límite izquierdo se reduce, si se ha transmitido t tramas y se recibe un ACK, la ventana , que en ese momento tiene (n-1) – t tramas, se vuelve a llenar con t tramas más . Por ejemplo si n = 7, y se han enviado 4 tramas recibiendo un ACK, en la ventana quedaban las tramas 5, 6 y 7, por lo que se llena con las siguientes 4 tramas, teniendo entonces las tramas 5, 6, 7, 0, 1, 2 y 3.
Ventana del receptor: Al principio de la transmisión, la ventana del receptor contiene n -1 espacios para tramas, al ir llegando las tramas, la ventana se va encogiendo (menos espacios), si al cabo de s tramas se envía un ACK, el número de espacios de la ventana era (n – 1) – s, en el momento que se envía el reconocimiento, la ventana se expande en s tramas hasta volver a tener el tamaño n – 1.
- Control de errores.
En el nivel de enlace de datos, el control de errores se refiere a los métodos de detección de error y retransmisión (sin corrección de errores).
Petición de repetición automática (ARQ Automatic Repeat Request).
La corrección de errores en el nivel de enlace de datos se implemente de forma sencilla: cada vez que se detecta un error, se devuelve un reconocimiento negativo NAK y se retransmiten las tramas especificadas. Este procedimiento se denomina petición de repetición automática.El control de errores ARQ se implementa en el nivel de enlace de datos como parte del control de flujo.
Parada y espera con ARQ.
La parada y espera con ARQ es una forma de control de flujo con parada y espera para incluir ella retransmisión de los datos en caso de que haya tramas dañadas o perdidas, para que funcione se han añadido cuatro características al mecanismo de parada y espera:
El emisor mantiene una copia de la última trama transmitida hasta que recibe un reconocimiento, la copia permite retransmitir la trama si ésta ha resultado errónea.
Para poder identificarlas, tanto las tramas como los ACK se numeran alternadamente a 0 y 1, una trama 0 es reconocida por un ACK 1, esta identificación permite la identificación de las tramas en caso de transmisión duplicada.
Si se descubre un error, el receptor envía una trama NAK, que no está numerada, dado que la parada y espera con ARQ necesita que el emisor espere hasta que reciba un ACK antes de transmitir la siguiente trama, como NAK no está numerada, el emisor reenviará la última trama enviada independientemente de su numero.
El emisor está equipado con un temporizador, si el reconocimiento esperado no se recibe dentro del período permitido, el emisor asume que el último envío se ha perdido y lo reenvía.
Ventana deslizante con ARQ
Es un mecanismo habitual de control de errores en transmisión continua, con dos variantes: vuelta atrás n con ARQ y rechazo selectivo con ARQ, ambos basados en el control de flujo con ventana deslizante. Para extender la ventana de forma que cubra la retransmisión de las tramas perdidas o dañadas, añadiéndose tres características a los mecanismos básicos de control de flujo:
El dispositivo emisor mantiene copia de todas las tramas transmitidas hasta que sean reconocidas.
Además de las tramas ACK, el receptor tiene la opción de devolver una trama NAK si los datos se han recibido con errores, el receptor enviará una trama NAK con el número de la trama dañada, el emisor entiende como correctas las anteriores a esa trama dañada.
El dispositivo emisor también tiene un temporizador que le permite manejar la pérdida de reconocimientos. El emisor, al agotar el tiempo sin recibir respuesta, asume que las tramas se han perdido y transmite una o todas las tramas. Como el emisor no sabe si las tramas de respuesta fueron ACK o NAK, la retransmisión cubre todas las posibilidades: tramas perdidas y NAK perdido, al retransmitir las tramas, el receptor puede reconocer la redundancia a través de los números de trama y descartar los datos redundantes.