Funciones del nivel de enlace

El control de error

El método usual de asegurar una entrega es que el emisor tenga alguna forma de realimentación que le informe de lo que está ocurriendo en el otro extremo de la línea. Normalmente en los protocolos se plantea que el receptor mande al emisor una trama especial de control conteniendo un reconocimiento positivo o negativo sobre las tramas que va recibiendo. Si el emisor recibe un reconocimiento positivo de una trama sabe que esa trama ha llegado a destino correctamente. Por el contrario, un reconocimiento negativo indica que algo ha funcionado mal y la trama debe ser retransmitida.

Una complicación adicional es que existe la posibilidad de que una trama se pierda completamente por problemas en el hardware (por ejemplo, una ráfaga de ruido). En este caso el receptor no podrá reaccionar ya que no tendrá motivo para hacerlo. Debe quedar claro que en un protocolo en el que el emisor transmite la trama y entonces espera por el reconocimiento positivo o negativo podría bloquearse si la trama se pierde completamente.
Para evitar tal situación se introducen temporizadores en el nivel de enlace. Cuando el emisor transmite una trama arranca un temporizador.

El temporizador se fija a un tiempo lo suficientemente grande para que la trama llegue a su destino, correctamente y que un reconocimiento venga del receptor. Normalmente la trama llegará correctamente al receptor y el reconocimiento volverá antes de que el temporizador finalice la cuenta, en cuyo caso se desconectará el temporizador. Sin embargo, si se pierde alguna de las tramas, la de datos o la de reconocimiento, el temporizador finalizará la cuenta, lo que avisará al emisor de que debe existir algún problema. La opción más lógica en este caso es retransmitir la trama. Ahora bien, si las tramas pueden ser retransmitidas varias veces existe el peligro de que el receptor acepte la misma trama más de una vez. Para prevenir que esto ocurra es generalmente necesario asignar números de secuencia a las tramas, para que el receptor pueda distinguir las tramas retransmitidas (duplicados) de las originales.
El manejo de los temporizadores y de la numeración de las tramas, así como garantizar que cada trama entregará su contenido al nivel de red de la máquina destino una y solo una vez (sin repeticiones) es una de las tareas importantes a desarrollar por el nivel de enlace de datos.

El control del flujo

Otra cuestión que deben tener en cuenta en este nivel es qué hacer cuando el emisor quiere transmitir tramas con una frecuencia (velocidad) superior a la que puede aceptar el receptor. Esta situación puede darse fácilmente cuando, por ejemplo, el emisor es un proceso ejecutándose en una máquina potente o poco cargada, y el receptor es un proceso en una máquina lenta.
La solución más usual es introducir un mecanismo de control de flujo que impida transmitir al emisor a una velocidad superior a la que puede aceptar el receptor. Este mecanismo de freno requiere generalmente algún tipo de realimentación que permita al procedimiento emisor conocer si el receptor está ya listo para aceptar otra trama.
Existen muchas posibilidades para realizar este control de flujo, pero la mayoría utilizan el mismo principio básico. El protocolo contiene reglas bien definidas acerca de cuando el emisor puede transmitir la siguiente trama. Estas reglas generalmente prohiben que se envíen tramas hasta que el receptor dé su permiso de forma implícita o explícita.

Gestión de Enlace

Otra de las funciones de la capa de enlace corresponde al manejo de la gestión de enlace. Con un servicio sin conexión esta gestión es mínima, pero para el caso de un servicio orientado a conexión es más compleja. Las conexiones se deben establecer y después liberar, las secuencias de números deben iniciarse y reiniciarse en caso de que sucedan errores, y así sucesivamente.
Además, la configuración del enlace se debe administrar; en el caso más sencillo, sólo un hilo físico se extiende entre dos máquinas. Sin embargo, es muy común encontrar que varias máquinas compartan el mismo canal. Una de ellas, tradicionalmente, es la primera (es decir, un ordenador), en tanto que las demás son secundarias (es decir, terminales pasivas).
La gestión de tráfico se logra cuando la primaria transmite una trama corta, denominada sondeo, a la primera secundaria, preguntando si tiene alguna información que transmitir. Si es así, el terminal envía dicha información; si no, la primera sondea a la siguiente secundaria. En otros sistemas, a los terminales se les permite que envíen información al ordenador, aun en ausencia del sondeo. Por último, en otros sistemas, como por ejemplo las redes tipo LAN, no hay primarios ni secundarios. Todas las estaciones son iguales y tienen los mismos derechos para acceder al canal. En cualquier caso, el tema completo de los primarios y secundarios versus corresponsales, es una solución que se lleva a cabo en la capa de enlace.

   
Nivel de Enlace/Funciones del nivel de enlace