Control de Enlace de Datos.
Sitio: | Facultad de Ingeniería U.Na.M. |
Curso: | REDES I - IC412 |
Libro: | Control de Enlace de Datos. |
Imprimido por: | Invitado |
Día: | miércoles, 4 de diciembre de 2024, 23:44 |
1. Introducción Capa 2
En nuestro estudio se ha centrado hasta ahora en el envío de señales sobre un enlace de transmisión, esto era en Capa 1.
Si se desea conseguir que la comunicación digital de datos sea efectiva, se precisa mucho más para controlar y gestionar el intercambio.
Para el envío de datos sobre un enlace de comunicaciones de debe llevar a cabo el control necesario y se necesita una capa lógica adicional por encima de la interfaz física la cual se estudió en las secciones anteriores.
Esta lógica de capa 2 se denomina control del enlace de datos o protocolo de control del enlace de datos.
La necesidad del control del enlace de datos se evidencia a partir de los siguientes requisitos y
objetivos para la comunicación efectiva de datos entre dos estaciones conectadas directamente:
- Sincronización de trama: los datos se envían en bloques denominados tramas, cuyo principio y fin deben ser identificables. Este aspecto se abordó brevemente cuando se estudiaron las tramas síncronas.
- Control de flujo: la estación emisora no debe enviar tramas a una velocidad superior a la que la estación receptora pueda absorberlas.
- Control de errores: se debe corregir cualquier error en los bits provocado por el sistema de transmisión.
- Direccionamiento: en una línea multipunto, como por ejemplo una red de área local (LAN), se debe identificar a las dos estaciones involucradas en una transmisión.
- Datos y control sobre el mismo enlace: por lo general, no se desea tener un canal de comunicaciones independiente para la información de control. En consecuencia, el receptor deberá ser capaz de diferenciar entre la información de control y los datos.
- Gestión del enlace: el inicio, mantenimiento y finalización de un intercambio de datos precisa un alto grado de coordinación y cooperación entre las estaciones. Se necesitan, pues, una serie de procedimientos para llevar a cabo la gestión de este intercambio.
2. Control de Flujo
Control de Flujo
El control de flujo es una técnica utilizada para asegurar que una entidad de transmisión no sobre-cargue a la entidad receptora con una excesiva cantidad de datos.
Recordemos que en los extremos hay hardware =>Memorias de Recepción y Transmisión (Buffers) y estas no son infinitas.
Generalmente, la entidad receptora reserva una zona de memoria temporal para la recepción. Cuando se reciben los datos, una interrupción de hadware por ejemplo del receptor, le indica que debe realizar el procesamiento, para pasar los datos al software de las capas superiores( => "Desagotar la memoria"). En ausencia de procedimientos para el control de flujo, la memoria temporal del receptor se podría llenar y desbordarse mientras éste se encuentra procesando datos previos.
Modelo para el Análisis:
Figura 1
Observación: Hablamos de control de Flujo, en la gráfica aparecen errores, notar que el control de flujo NO resuelve como se soluciona el error, solo indica que NO se recibió la trama o que sí se recibió.
Control de Flujo de Parada y Espera.
- Una entidad origen transmite una trama.
- Tras la recepción, la entidad destino indica su deseo de aceptar otra trama mediante el envío de una confirmación de la trama que acaba de recibir (ACK) .
- El origen debe esperar a recibir la confirmación (ACK) antes de proceder a la transmisión de la trama siguiente. De este modo, el destino puede parar el flujo de los datos sin más que retener las confirmaciones.
- Es el control de flujo mas sencillo de implementar.
Ventajas
- El tamaño de la memoria temporal del receptor puede ser limitado ( a una trama)
- Cuanto más larga sea la transmisión es más probable que haya errores, precisándose en tal caso la retransmisión de la trama completa.
- Si se usan tramas más pequeñas, los errores se detectarán antes y, en consecuencia, se necesitará retransmitir una cantidad de datos menor.
- En un medio compartido, como por ejemplo una LAN, es frecuente que no se permita que una estación ocupe el medio durante un periodo de tiempo largo, evitándose así que las otras estaciones transmisoras sufran grandes retardos y que algunas abusen del uso frente a otras.
Desventajas
Todo bien pero, analicemos otra situación. Vamos a tratar de comparar cuanto de la trama "inunda el medio"
Definimos B como la longitud de un enlace en Bits, daría una idea de la cantidad de Bits necesarios para usar todo el medio de un extremo a otro (inundar).
Figura 2 : Longitud de un Enlace en Bits
B : longitud del enlace en bits; es decir, el número de bits presentes en el enlace cuando una secuencia de ellos lo ocupa completamente.
R : velocidad del enlace, en bps.
d : longitud, o distancia, del enlace en metros.
V : velocidad de propagación, en m/s.
En aquellas situaciones en las que la longitud del enlace en bits es mayor que la longitud de
la trama, aparecen ineficiencias importantes. Estos problemas se muestran en la siguiente Figura
Figura 4
Podemos expresar a, como un valor adimensional que compara la cantidad de la cantidad de Bits necesarios para usar todo el medio de un extremo a otro, respecto de la cantidad de bits de una trama.(cociente) .
Digamos que Tb, es el tiempo de 1 bit en el canal, si multiplicamos por la cantidad de bits de una trama, tendremos la duración en segundos de una Trama y si multiplicamos B ( cantidad de bits en el enlace) por el tiempo de un bit tendremos el tiempo que toma inundar con bits todo el canal.
Si planteamos el cociente de los dos tiempos:
Figura 3
a: Longitud del Enlace en bits / Longitud de la trama
B: longitud del enlace en bits.
L : Nro. bits de la trama
Uso eficiente del Enlace a>1 ó a<1 ?
Obsérvese que, para a>1, la línea está siempre infrautilizada, e incluso para el caso a < 1, la línea se utiliza de forma ineficiente.
Resumiendo, el procedimiento de control de flujo mediante parada y espera da lugar a una utilización ineficiente de la línea para el caso de velocidades de transmisión muy altas entre emisores y receptores que se encuentran separados a grandes distancias.
2.1. Control de Flujo de Parada y Espera.
- Una entidad origen transmite una trama.
- Tras la recepción, la entidad destino indica su deseo de aceptar otra trama mediante el envío de una confirmación de la trama que acaba de recibir (ACK) .
- El origen debe esperar a recibir la confirmación (ACK) antes de proceder a la transmisión de la trama siguiente. De este modo, el destino puede parar el flujo de los datos sin más que retener las confirmaciones.
Figura 1
Ventajas
- El tamaño de la memoria temporal del receptor puede ser limitado.
- Cuanto más larga sea la transmisión es más probable que haya errores, precisándose en tal caso la retransmisión de la trama completa.
- Si se usan tramas más pequeñas, los errores se detectarán antes y, en consecuencia, se necesitará retransmitir una cantidad de datos menor.
- En un medio compartido, como por ejemplo una LAN, es frecuente que no se permita que una estación ocupe el medio durante un periodo de tiempo largo, evitándose así que las otras estaciones transmisoras sufran grandes retardos.
Desventajas
Todo bien pero, analicemos otra situación.
Figura 2 : Longitud de un Enlace en Bits
B : longitud del enlace en bits; es decir, el número de bits presentes en el enlace cuando una secuencia de ellos lo ocupa completamente.
R : velocidad del enlace, en bps.
d : longitud, o distancia, del enlace en metros.
V : velocidad de propagación, en m/s.
a: Longitud del Enlace en bits / Longitud de la trama
Figura 3
B: longitud del enlace en bits.
L : Nro. bits de la trama
Figura 4
Uso eficiente del Enlace a>1 ó a<1 ?
Obsérvese que, para a>11, la línea está siempre infrautilizada, e incluso para el caso a < 1, la línea se utiliza de forma ineficiente.
Resumiendo, el procedimiento de control de flujo mediante parada y espera da lugar a una utilización ineficiente de la línea para el caso de velocidades de transmisión muy altas entre emisores y receptores que se encuentran separados a grandes distancias.
2.2. Ejemplo parada y espera
Considérese un enlace de fibra óptica de 200 metros a 1 Gbps. La velocidad de propagación en la fibra óptica es, generalmente, del orden de 2x108 m/s.
¿Cuantos bits entran de punta a punta en el enlace ( B) de 200 metros si se propaga a una velocidad de 2x108 m/s?
2.3. Resolución
La velocidad de transferencia es de 1Gbps = 1 Gigabit / segundo= 1.000.000 bits / segundos.
Por otro lado lo que tardan en propagarse los bits: V=d/t => t=d/V.
B= R [bits/seg] * t = R [bits/seg] * d/V= R [bits/seg] * 200m/2x108 m/s.
Haciendo uso de la ecuación
donde
- B es la longitud del enlace en bits; es decir, el número de bits presentes en el enlace cuando una secuencia de ellos lo ocupa completamente.
- R es la velocidad del enlace, en bps.
- d es la longitud, o distancia, del enlace en metros.
- V es la velocidad de propagación, en m/s.
- Sistemas como OneWeb o Starlink se promocionan como "Banda Ancha Satelital", pero ¿qué parámetro lo destaca sobre la comunicación satelital actual?
- ¿Qué otra ventaja tiene la Banda Ancha Satelital?
2.4. Control de Flujo por Ventana Deslizante
El problema comentado con anterioridad radica básicamente en el hecho de que sólo puede haber en tránsito una trama a la vez.
Figura 1: a>1
En todas aquellas situaciones en las que la longitud del enlace en bits sea mayor que la longitud de la trama (a >1), aparecerán problemas graves de ineficiencia.
Solución: Permitir que transiten varias tramas al mismo tiempo sobre el enlace, la eficiencia mejorará significativamente.
Funcionamiento.
- Tengo dos estaciones A y B, conectadas mediante un enlace full-duplex.
- La estación B reserva memoria temporal suficiente para almacenar W tramas => B puede aceptar W tramas => A puede enviar W tramas de tramas sin tener que esperar ninguna confirmación.
- Para saber qué tramas se han confirmado, cada una de ellas se etiqueta con un número de secuencia.
- B confirma una trama mediante el envío de una confirmación que incluye el número de secuencia de la siguiente trama que se espera recibir. Esta confirmación informa también, implícitamente, acerca de que B está preparado para recibir las W tramas siguientes, comenzando por la de número especificado.
- Este esquema se puede utilizar también para confirmar varias tramas simultáneamente.
Figura 2
2.5. Ejemplo ventana deslizante
En la figura se muestra un ejemplo en el que se supone un campo de 3 bits para los números de secuencia y un tamaño máximo para la ventana igual a siete tramas.
3 Bits => 8 combinaciones posibles => Numeración de tramas con 0,1,2,3,4,5,6,7.
Aclaración :
- Fx se usa para referirse a la trama Nro.x
- RRy se usa para indicar que se recibió correctamente hasta la trama y-1 y se espera recibir la trana y.
Inicialmente, A y B tienen las ventanas indicando que A puede transmitir siete tramas, comenzando con la 0 (F0). Tras transmitir tres tramas (F0, F1, F2) sin confirmación, A habrá cerrado su ventana hasta tener un tamaño de cuatro tramas, manteniendo una copia de las tres tramas transmitidas. La ventana indica que A puede transmitir cuatro tramas, comenzando por la número 3. B transmite entonces una trama RR (receptor preparado, Receive Ready) 3, lo que significa «he recibido todas las tramas hasta la número 2 y estoy preparado para recibir la número 3; de hecho, estoy preparado para recibir siete tramas, comenzando por la número 3». Tras ello, a la estación A se le permite transmitir siete tramas, comenzando por la trama 3; A también puede descartar las tramas almacenadas en la me moria temporal que acaban de ser confirmadas. A pasa a transmitir las tramas 3, 4, 5 y 6. B devuelve una RR 4, con la que confirma F3 y permite la posterior transmisión de la trama F4 y siguientes, hasta la F2. Cuando la trama RR llega a A, éste ya ha transmitido F4, F5 y F6, por lo que A sólo abre su ventana para permitir la transmisión de cuatro tramas a partir de la F7.
2.6. Mejoras en ventana deslizante
La mayoría de los protocolos de control de flujo permiten a la estación cortar el flujo de tramas enviando un mensaje RNR (Receive Not Ready), que indica una confirmación pero a su vez que no se van a recibir futuras tramas.2.7. Comparación mecanismos
Considérese el empleo de un esquema de control de flujo mediante ventana deslizante para las dos configuraciones del ejemplo anterior. Como determinamos entonces, la recepción de una trama ACK correspondiente a la primera trama de datos conlleva 10 μs. Se tardan 8 μs en transmitir una trama de datos, por lo que el emisor puede emitir una trama y parte de otra hasta que se recibe el ACK de la primera. Así, un tamaño de ventana igual a 2 es adecuado para permitir al emisor transmitir tramas de forma continua, o a una velocidad de una trama cada 8 μs. Con el esquema de parada y espera sólo es posible una velocidad de una trama cada 10 μs.
En la configuración de satélite transcurren 488
3. Control de errores
El control de errores hace referencia a los mecanismos necesarios para la detección y la corrección de errores que aparecen en una transmisión de tramas.
Ver que se incluye la Detección y Corrección, estos dos elementos son el propósito de Control de Errores y están asociados al Control de Enlace.
Como se ha considerado hasta ahora, los datos se envían en base a una secuencia de tramas, las cuales se reciben en el mismo orden en que fueron enviadas y cada una de ellas, con carácter previo a su recepción, sufre un retardo arbitrario y posiblemente variable.
Este concepto indicaría que NO existen varios caminos en nuestro modelo. En un modelo de Capa 3 IP que se implementa en Internet a nivel Global si existen varios caminos.. pero NO es nuestro caso, estamos en capa 2 y al Capa 2 de una Red NO se extiende a todo el mundo con las mismas características o medios como si lo hace IP pero en nivel lógico.
En este modelo se contemplan dos tipos de errores potenciales:
- Tramas perdidas: no llega al otro extremo
- Tramas dañadas: bits erróneos
Algunas técnicas más usuales para el control de errores son:
Detección de errores |
Bit Paridad, FCS | |
Confirmaciones positivas |
ACK | |
Retransmisión tras la expiración de un temporizador |
la fuente retransmite las tramas que |
|
Confirmación negativa y retransmisión |
el destino devuelve una confirmación negativa pa- |
A continuación veremos la implementación de estas dos últimas técnicas que genéricamente se denominan:
solicitud de repetición automática : ARQ, Automatic Repeat reQuest
3.1. ARQ con parada y espera.
El esquema ARQ con parada y espera se basa en la técnica para el control de flujo mediante parada y espera estudiada con anterioridad. La estación origen transmite una única trama y debe esperar la recepción de una confirmación (ACK). No se podrá enviar ninguna otra trama hasta que la respuesta de la estación destino llegue al emisor.
Error 1:
Trama dañada => el Receptor la descarta. El temporizador del Tx caduca la espera del ACK=> Envía otra.
Error 2 :
Trama no llega=> el Tx nunca recibe un ACK => Caduca el Temporizador => envía nuevamente.
Error 3:
Trama llega ok pero se pierde el ACK => El temporizador del Tx caduca y envía nuevamente la trama => Trama Duplicada => Solución Numerar Tramas como 0 y 1. ACK0 valida trama 1, ACK1 valida trama 0.
Figura 1
3.2. ARQ con vuelta atrás N
En esta técnica, una estación puede enviar una serie de tramas numeradas secuencialmente.
Al utilizar la técnica de control de flujo mediante ventana deslizante, el número de tramas pendientes de confirmar se determina mediante el tamaño de la ventana.
Mientras no se produzcan errores, el destino confirmará las tramas recibidas con trama RR o mediante la técnica de incorporación de confirmación: piggybacking (en un trama de información se envía una ACK )
Si la estación Rx detecta un error en una trama, puede llevar a cabo el envío de una confirmación negativa (REJ, REJect) para dicha trama como sigue. La estación Rx descartará esa trama y todas las que se reciban con posterioridad hasta que dicha trama errónea llegue correctamente.
Situaciones.
- Trama perdida
- Trama deteriorada
- Trama RR deteriorada
- Trama REJ deteriorada
Figura 1
3.3. ARQ con rechazo selectivo
Las únicas tramas que se retransmiten son
- aquellas para las que se recibe una confirmación negativa, denominada SREJ (Selective REJect)
- aquellas para las que el temporizador correspondiente expira.
Ver que NO se envían todas, solo las que tienen problemas!!.
El procedimiento de rechazo selectivo puede parecer más eficiente que el de vuelta atrás N, puesto que minimiza el número de retransmisiones.
Complicaciones en Tx, para mantener en buffer las todas las tramas transmitida y no confirmadas y seleccionar una de ellas para el envío.
Complicaciones en Rx ya debe mantener una zona de memoria temporal lo suficientemente grande para almacenar las tramas recibidas tras el envío de una SREJ hasta que la trama errónea se retransmita; además, debe tener lógica adicional para re-insertar la trama reenviada en la posición correspondiente.
Situaciones.
- Trama perdida
- Trama deteriorada
- Trama RR deteriorada/perdida
- Trama SREJ deteriorada
Figura 1
4. HDLC High-level Data Link Control
El protocolo de control del enlace de datos más importante, no sólo porque es muy utilizado, sino también porque es la base de otros importantes protocolos de control del enlace, en los que se usan los mismos o similares formatos y los mismos procedimientos que los empleados en HDLC.
Para satisfacer las demandas de diversas aplicaciones, HDLC define
- tres tipos de estaciones
- dos configuraciones del enlace
- tres modos de operación para la transferencia de los datos
Tipos de Estaciones
Los tres tipos de estaciones son:
Estación primaria: es la responsable de controlar el funcionamiento del enlace. Las tramas generadas por la estación primaria se denominan órdenes.
Estación secundaria: funciona bajo el control de la estación primaria. Las tramas generadas por la estación secundaria se denominan respuestas. La primaria establece un enlace lógico independiente con cada una de las secundarias presentes en la línea.
Estación combinada: combina las características de las primarias y de las secundarias, pudiendo generar tanto órdenes como respuestas.
Configuraciones del enlace
Configuración no balanceada: está formada por una estación primaria y una o más secundarias. Permite tanto transmisión full-duplex como half-duplex.
Configuración balanceada: consiste en dos estaciones combinadas. Permite igualmente transmisión full-duplex y half-duplex.
Modos de transferencia de datos
Modo de respuesta normal (NRM, Normal Response Mode):
Se utiliza en la configuración no balanceada. La estación primaria puede iniciar la transferencia de datos hacia la secundaria, pero la secundaria sólo puede transmitir datos en base a respuestas a las órdenes emitidas por la primaria.
Modo balanceado asíncrono (ABM, Asynchronous Balanced Mode):
Se utiliza en la configuración balanceada. En este modo, cualquier estación combinada puede iniciar la transmisión sin necesidad de recibir permiso por parte de la otra estación combinada.
Modo de respuesta asíncrono (ARM, Asynchronous Response Mode):
Se utiliza en la configuración no balanceada. La estación secundaria puede iniciar la transmisión sin tener permiso explícito de la primaria. La estación primaria sigue teniendo la responsabilidad del funcionamiento de la línea, incluyendo la iniciación, la recuperación de errores y la desconexión lógica.
4.1. Estructura de la Trama (Campos)
Figura 1
Flag
Flag delimita inicio y fin de trama : 01111110
¿ Que pasas si dentro de la trama aparece la secuencia 01111110?
Rta:
Para evitar este problema, se utiliza un procedimiento denominado inserción de bits o bit stuffing.
Figura 2
El empleo del procedimiento de inserción de bits permite que en el campo de datos aparezca cualquier combinación arbitraria de bits. Esta propiedad se denomina transparencia en los datos.
Alternativas.
En la transmisión de los bits existentes entre los delimitadores de comienzo y de fin, el emisor insertará un 0 extra siempre que se encuentre con la aparición de cinco 1 consecutivos.
Ver que esta secuencia de cinco unos seguidos y un cero NO es igual al Delimitador!
El receptor, tras la detección del delimitador de comienzo, monitorizará la cadena de bits recibida de tal manera que cuando aparezca una combinación de cinco 1 seguidos, el sexto bit se analiza como sigue.
- Si dicho bit es 0, se eliminará sin más, ya que se había insertado.
- Si el sexto bit es un 1 y el séptimo es un 0, la combinación se considera como un delimitador.
- Si los bits sexto y séptimo son ambos igual a 1, se interpreta como una indicación de cierre generada por el emisor.
Address Field
El campo de dirección identifica la estación secundaria que ha transmitido o va a recibir la trama.
Este campo no se necesita en enlaces punto a punto, aunque se incluye siempre por cuestiones de uniformidad. El campo de dirección consta normalmente de 8 bits, si bien, tras una negociación previa, se puede utilizar un formato ampliado en el que la dirección es múltiplo de siete bits
Control Field
En HDLC se definen tres tipos de tramas, cada una de ellas con un formato diferente para el campo de control.
Las tramas de información (tramas-I) transportan los datos generados por el usuario (esto es, por la lógica situada en la capa superior, usuaria de HDLC). Además, en las tramas de información se incluye información para el control ARQ de errores y de flujo.
Las tramas de supervisión (tramas-S) proporcionan el mecanismo ARQ cuando no se usa la incorporación de las confirmaciones en las tramas de información (piggybacking).
Las tramas no numeradas (tramas-U, del inglés unnumbered) proporcionan funciones complementarias para controlar el enlace.
Information Field
El campo de información sólo está presente en las tramas-I y en algunas tramas-U.
La única restricción de que el número de bits sea igual a un múltiplo entero de octetos.
La longitud del campo de información es variable y siempre será menor que un valor máximo predefinido.
Frame Check Sequence Field
La secuencia de comprobación de trama (FCS, Frame Check Sequence) es un código para la detección de errores calculado a partir de los bits de la trama, excluyendo los delimitadores. El código que se usa normalmente es el CRC-CCITT de 16 bits y de 32 bits
4.2. Funcionamiento
Figura 1
Figura 2