Documentos de Académico
Documentos de Profesional
Documentos de Cultura
La capa enlace
En esta lección vamos a tratar la capa 2, llamada Enlace. Se trata de la capa que establece la
comunicación entre dos puntos unidos por un vínculo físico, un cable, una frecuencia de campo
electromagnético. Su función solo se limita a este tipo de vínculo. Otros protocolos llegan a toda la
red pasando por diferentes tipos de Enlace; tengan en cuenta esto para diferenciarse.
Dos DTE (equipos) unidos por medio de un par de módems. El módem de tu casa conectado al de
tu proveedor es un enlace.
Un servicio de satélite entre el equipo IDU (Internal Data Unit) que está después de la antena y el
HUB del prestador satelital – pasando por el satélite.
La placa ethernet de tu computadora y el switch al que está unida por medio de un cable.
La placa inalámbrica de tu laptop y el Access point (comúnmente llamado wifi). Fijate que la capa
enlace solo es hasta ese equipo y no luego porque el Access point cambia el tipo de Enlace, de
Wireless a ethernet.
El Smartphone que se conecta a la celda celular. Solo hasta ahí, luego de eso cambia el tipo de
enlace.
Algo para resaltar: no confundir la forma en que se transmite los bits por el cable o el aire, con el
enlace. La forma depende del tipo de modulación. Y eso corresponde a los módems (capa 1). La
capa enlace es la visión desde los dos terminales.
Generación de la trama: los bits que se comunican entre un equipo terminal y el otro se transmite
en un formato adecuado, según el protocolo. El orden y el significado de los mensajes se llama
TRAMA.
Control de flujo: los terminales cuentan con microprocesadores para el procesamiento de los
mensajes y memorias buffers para sostener una cantidad de ellos. A veces las interrupciones de esos
microprocesadores o la capacidad de los buffers no permiten que sigan recibiendo nuevas tramas y
deben solicitarle al transmisor que detenga los envíos. Ese control de transmisión se denomina de
flujo.
Control de errores: las tramas pueden sufrir ruidos o interferencias en sus trasmisiones, que luego
provocan errores de lectura de bit. Esos errores deben detectarse y corregir o solicitar que se
reenvíe la trama nuevamente.
Control de repeticiones: cuando se producen errores de tramas los protocolos están preparados
para solicitar y reenviar las tramas erradas. Esto provocará que mensajes que han sido enviados
deban hacerlo, a veces luego que los consecutivos hayan sido transmitidos. Es preciso realizar un
control sobre esas retransmisiones.
Generación de tramas
Muchos son los protocolos que se han diseñado en la historia de las comunicaciones de datos.
Nosotros vamos a ver algunos por conveniencia pedagógica y otros porque son los más utilizados
actualmente.
HDLC (High-level Data Link Control). Este es uno de los primeros tipos y aunque ya no se utiliza en
el medio lo vamos a analizar para aprender un funcionamiento de protocolo, porque al ser el
primero incluye todas las técnicas que debemos aprender. En esta misma lección lo analizamos en
detalle.
SLIP (Serial Line Internet Protocol). Fue una idea de reemplazo del HDLC en los vínculos de internet
brindado por ISP (Internet service providers), pero luego fue reemplazado por PPPoE
PPP (Point to point protocol). En un protocolo para enlaces entre dos equipos, la evolución del viejo
HDLC. Permite Autenticación (usa PAP o CHAP…ya veremos), cifrado y comprimir los datos. Muchas
veces lo utilizamos emulado dentro de otro protocolo, por ejemplo, en el ethernet (PPPoE – PPP
over ethernet)
Ethernet, Token ring, Token bus, FDDI: son protocolos de redes LAN. Nosotros solo veremos
Ethernet en la siguiente lección.
Frame Relay, ATM: son protocolos de redes WAN que veremos con otros detalles de los nodos WAN
- Parada y espera
- Ventana deslizante vuelta atrás
- Ventana deslizante vuelta atrás selectiva
- El tamaño del mensaje implica un tiempo entre que comienza su transmisión y el de salida
del último bit. Si los mensajes son largos, el tiempo de transmisión del mensaje influye en
el control de flujo. Despreciando el tiempo del procesador, si el receptor debe solicitar un
control de flujo es necesario contemplar ese tiempo para no solapar solicitudes en sentidos
opuestos.
- El delay de la línea nos afecta directamente en el retraso de los mensajes de reconocimiento
(ACK). Si el delay es muy grande, las respuestas “OK” o “pedidos de retransmisión” se
demoran mucho y el transmisor puede interpretar que el receptor no está funcionando o
que no le llegó la trama
Dependiendo del servicio y los tiempos de estas demoras, el enlace se configura con el método más
conveniente.
EN TODOS LOS CASOS LAS TRAMAS DEBEN CONTAR CON UNA NUMERACIÓN QUE LAS IDENTIFIQUE
PARA QUE EL RECEPTOR PUEDA REARMAR EL MENSAJE SEGMENTADO.
Si ocurren errores o tramas que no llegan, el receptor no le indica al transmisor y el ACK no llega.
En ese caso el transmisor asume que debe reenviar a trama anterior. En el siguiente ejemplo se
muestran dos momentos, en el que la trama no llega y en el que el ACK no llega.
Es claro que el tiempo de tx + el delay son importantes para la elección del método.
Si el tamaño de ventana fuese 7, el transmisor comienza el envío de tramas a la espera de los ACK
del receptor indicando que el arribo fue sin errores. De esta manera, comienza transmitiendo las
tramas del 0 al 6. Al recibir un ACK, el receptor nos indica qué trama espera recibir, determinando
que las anteriores han llegado correctamente. En nuestro ejemplo, el receptor devuelve el RR 3
(receive ready “estoy listo”), envíame la trama 3 – implica que las anteriores están ok. En ese
momento el transmisor “mueve” la ventana comenzando por el mensaje 3 hasta el mensaje 1. El
receptor también mueve su ventana.
Con este método se aprovecha mejor el uso de los tiempos logrando un sistema más eficiente. Todo
considerando que los mensajes llegan bien. Veamos qué sucede cuando hay errores o pérdidas de
mensajes.
a partir del número de trama equivocada. Este método es más simple para el reensambalado del
mensaje porque las tramas siempre se guardan correlativas, pero se desperdicia el tiempo de
transmisión de las tramas que sí llegaron bien.
En este ejemplo, va todo bien hasta que la trama 4 no llega. Cuando llega la trama 5 el receptor se
da cuenta que falta la N°4 y devuelve un mensaje REJ 4 (rechazo de la trama 4). El transmisor cuando
se entera de este rechazo ya había transmitido la 5 y 6. Sin embargo retransmite todo en orden de
nuevo desde la 4.
Cuando por algún motivo no recibe los ACK o RR, y la ventana se termina, el transmisor le envía un
mensaje RR (Receive ready) al receptor con el bit P (polling) en uno para solicitarle que le responda
sobre la llegada de los mensajes.
En este caso vemos que ha rechazado selectivamente la trama 4. El transmisor siguió hasta la trama
6 cuando se entera del error. Transmite la trama 4 y el receptor le pide que continúe desde la 7,
aceptando la 4, 5 y 6.
Control de errores
Todos los protocolos que se utilizan en redes de computadoras tienen detección de errores, sea solo
para el encabezado o para toda la trama. Ninguno realiza corrección de errores debido a la cantidad
de procesamiento necesario para hacerlo. Al detectar un error de bit o trama, el mismo servicio
elimina los datos recibidos y en algunos casos solicita reenvío mientras que otros simplemente no
notifica, asumiendo que el error será detectado por otra capa superior.
En todos los casos, los códigos detectores de errores se basan en analizar los k bits de la trama,
realizar un proceso de algoritmo matemático que da por resultado n bits. Finalmente se transmiten
los k + n bits. En el extremo receptor, se realiza el mismo proceso y si el resultado de los n bits
recibidos difiere de los n bits calculados significa que hubo errores.
- Código de redundancia cíclica (CRC): es un proceso por circuito secuencial realizado con
compuertas y flip flops por donde pasa toda la trama por el circuito, al compás del reloj de
tx. Al finalizar se lee directamente toda la palabra de bits n.
- Frame Check Sequence (FCS): Todos los bits k son divididos por una palabra de código, y el
resto de la división resulta ser la palabra n que se envía.
En ambos casos el CRC o FCS utilizan un código conocido para cada protocolo. En algunos equipos
existe la posibilidad de configurar este código entre un menú de posibles, pero típicamente se utiliza
el de default. El siguiente es un ejemplo de códigos estándar:
Inicialmente estaba pensado para una comunicación entre una estación primaria y una o varias
estaciones secundarias, por este motivo tiene más de un modo de configuración:
Modo de respuesta normal (NRM) – solo puede transmitir la primaria y las secundarias dan ACK (ya
no se usa)
- No numeradas: son tramas que se utilizan para el inicio y fin de la transmisión y para la
configuración del enlace
- De supervisión: son tramas que se utilizan para el control de flujo y de errores
- De información: son las tramas donde viaja la información de la capa superior
El delimitador de inicio y fin es siempre la misma palabra: 01111110. Puede ocurrir que entre a
información viaje esa palabra y surja la confusión de si es o no el byte de fin. Analizando los
siguientes bytes se detecta si lo que sigue es mensaje (y por lo tanto el 01111110 pasado era
información) entonces se espera hasta encontrar un siguiente byte que identifique el final.
El campo de dirección es variable para los casos de un primario y varios secundarios. Pero en
nuestro caso es habitual usar en vínculos PAP y por lo tanto la dirección es 11111111.
Si el primer bit es 0, quiere decir que los datos que viajan son de información de capa superior. En
ese caso N(S) es el número de trama que se ha enviado y N(R) es el número de trama que se espera
recibir. Si la trama es de orden, y el bit P (Poll) está en uno significa que se le reclama respuesta al
otro extremo. En la trama de respuesta, este bit en uno es interpretado como Final.
Si los primeros bits son 10, se trata de una trama de supervisión. Donde los dos bits S pueden
significar:
00 RR (Ready to Receive)
01 REJ (Reject)
10 RNR (Ready Not to Receive)
11 SREJ (Selective Reject)
Si los primeros bits son 11, los bits M se los utilizan para múltiples mensajes. Veamos los más
utilizados:
00000 UI
00010 DISC
11001 RSET
11110 SABME
UI es un pedido de conexión, DISC de desconexión, RSET para resetear contadores y SABME es el
modo de configuración balanceado.
HDLC – ejemplo
El siguiente diagrama muestra un ejemplo de transmisión HDLC:
Comienza la transmisión de información. En cada trama viaja el número de trama enviada N(S) y el
número de trama que espera recibir N(R). En el primer mensaje A envía la trama 0, y en el siguiente
B le responde con la trama 0 (la suya) y le dice que espera la trama 1 – asumiendo que la trama 0
ha llegado bien, lo que permite correr la ventana.
Cuando uno de los extremos se encuentra ocupado realiza control de flujo enviando RNR (receive
no ready). El otro extremo enviará RR (receive ready) con el bit P en uno para requerir continuar la
transmisión. Hasta que el extremo B le indique RR.
HDLC – ejemplo 2
El siguiente diagrama de tiempos se muestra un ejemplo de transmisión HDLC con errores:
En el primer caso vemos que la trama 4 no ha llegado o llegó con errores. B devuelve un rechazo no
selectivo de la trama 4 y A debe volver a comenzar desde esa trama.
En el segundo caso, la trama no llega y B ya había dado su último ACK. Como la respuesta desde B
no vuelve, A pone un timer a contar y al expirar le envía una trama de supervisión a B. Cuando este
responde retoman la comunicación.
Cifrado. Los módems de ambos extremos pueden configurarse para un modo seguro de transmisión
evitando la lectura de datos en el enlace. Pero tampoco se usa hoy, lo típico es encriptar en IP.
Compresión. También se puede negociar para que los módems realicen un uso más eficiente del
canal, comprimiendo los datos a transmitir.
Para estas tareas extiende el encabezado de HDLC y utiliza dos protocolos adicionales LCP y NCP a
continuación del campo de control.