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.
|
|
|