Está en la página 1de 19

La capa de enlace de datos

Introducción
• La capa de enlace de datos:
– Tiene como objetivo lograr la comunicación fiable
entre dos máquinas adyacentes.
– Debe resolver la perdida o cambio de los valores de
los bits enviados.
– Ofrece tres tipos de servicio:
• No orientado a conexión y sin acuse de recibo.
• No orientado a conexión y con acuse de recibo.
• Orientado a conexión y con acuse de recibo:
– Establecimiento de la conexión.
– Envío de los datos.
– Cierre de la conexión.

Adquisición y Tratamiento de Datos 1


La capa de enlace de datos

Especificación de las tramas


• La capa de enlace divide los bits a enviar en
tramas de bits.
– Permite simplificar la detección y corrección de
errores.
– Utilizar factores temporales como la duración es
difícil y da lugar a errores.
• Existen tres formas de dividir en tramas:
– Cuenta de caracteres.
– Caracteres de inicio y final con caracteres de relleno.
– Bits indicadores de inicio y final con bits de relleno.
Adquisición y Tratamiento de Datos 2
La capa de enlace de datos

Cuenta de caracteres
• Incluir delante de cada trama un byte cuyo valor indique el
número de bytes que forman la trama.
Cuenta de caracteres

5 1 2 3 4 5 5 6 7 8 4 9 0 1 3 2 3

Trama 1 Trama 2 Trama 3 Trama 4


5 caracteres 5 caracteres 4 caracteres 3 caracteres

• Problema: Un fallo en un byte indicador pierde toda la secuencia.


Error

5 1 2 3 4 7 5 6 7 8 4 9 0 1 3 2 3

Trama 1 Trama 2 Ahora es una cuenta de


5 caracteres erroneo caracteres de ¡ 0 caracteres !

Adquisición y Tratamiento de Datos 3


La capa de enlace de datos

Caracteres de inicio y final


• Indicar cada trama por caracteres ASCII:
– Comienzo de trama: DLE STX.
– Fin de trama: DLE ETX.
– Cuando como datos de la trama aparece el carácter DLE este
se duplica.
• Su problema es la dependencia del código ASCII.

A B DLE C D DLE STX E F

DLE STX A B DLE DLE C D DLE DLE STX E F DLE ETX

DLE de relleno

Adquisición y Tratamiento de Datos 4


La capa de enlace de datos

Bits indicadores de inicio y final


• Cada trama comienza y termina con la secuencia
de bits 01111110.
• Si en algún momento en los datos que se envían
aparecen 5 bits seguidos con valor 1, se coloca
un bit con valor 0 detrás.

011011111111111111110010

0111111001101111101111101111101001001111110
Byte indicador Byte indicador

Bits de relleno

Adquisición y Tratamiento de Datos 5


La capa de enlace de datos

Control de errores
• Los ordenadores emisor y receptor necesitan saber si:
– Las tramas llegan al otro extremo.
– Son correctas.
• Para ello el receptor suele enviar al emisor un mensaje
diciendo que ha recibido la trama:
– ACK: Trama recibida correctamente.
– NAK: Trama recibida incorrectamente.
• Si una trama o respuesta se pierde completamente, existe un
“timeout” al cabo del cual el emisor o receptor repiten el
mensaje.
• Existen mecanismos para:
– Saber si una trama ha llegado con errores.
– Corregir los errores en una trama.
Adquisición y Tratamiento de Datos 6
La capa de enlace de datos

Distancia de Hamming
• La distancia de Hamming es el número de bits en que
difieren dos palabras código.
– Indica el número de bits en que ha de cambiar una palabra código
para convertirse en la otra.
• La distancia de Hamming de un conjunto es el valor mínimo
de la distancia de Hamming entre todos los elementos del
conjunto.
– Indica el número mínimo de bits en que ha de cambiar una palabra
código del conjunto para convertirse en otra palabra código del
conjunto.
• Para detectar d errores de un bit en un conjunto:
– Distancia de Hamming >= d+1.
• Para corregir d errores de un bit en un conjunto:
– Distancia de Hamming >= 2d+1.
Adquisición y Tratamiento de Datos 7
La capa de enlace de datos

Código de corrección de errores de Hamming (I)


• Deseamos construir un código de corrección
para un error de 1 bit:
– Las palabras código están formadas por m bits.
– Introducimos r bits de redundancia de forma que el
código a enviar es de longitud n=m+r.
– Tenemos 2m palabras código.
– Debemos construir un conjunto de palabras 2n de
forma que cada palabra tenga n palabras incorrectas a
una distancia de Hamming 1.
– Entonces (n+1)2m<=2n, y como n=m+r entonces
(m+r+1)<=2r.

Adquisición y Tratamiento de Datos 8


La capa de enlace de datos

Código de corrección de errores de Hamming (II)


• El código se construye:
– Se calcula el número de bits de redundancia r usando (m+r+1)<=2r.
– Se numeran los bits de 1 en adelante.
– Los bits potencia de 2 (1=20, 2=21, 4=22, etc.), se utilizan para los bits de
redundancia.
– Los otros bits se utilizan para el mensaje m.
• Se descomponen en sumas de potencias de 2, por ejemplo, 3=2+1, 5=4+1,
6=4+2, etc.
• Se utiliza la paridad como función de redundancia:
– Paridad par: El número de unos, contando el bit de redundancia, debe ser par.
– Paridad impar: El número de unos, contando el bit de redundancia, debe ser impar.
• La paridad de los bits de redundancia se calcula en función de los valores de
los bits de mensaje m:
• b(1)=F(b(3),b(5),b(7),...), todos los bits de mensaje que tienen el valor 1 en su
descomposición.

Adquisición y Tratamiento de Datos 9


La capa de enlace de datos

Códigos de detección de errores

• En ocasiones, es más útil detectar errores y pedir


la retransmisión que corregir errores.
– Un método sencillo es utilizar un bit de paridad:
• Si se produce un error en un bit de la transmisión la
paridad será incorrecta.
– Su problema es que si se produce más de un error, la
probabilidad de detectar el error es de 0.5 (50%).
– Por ello se suele utilizar la detección utilizando
códigos CRC.

Adquisición y Tratamiento de Datos 10


La capa de enlace de datos

Detección de errores mediante CRC (I)


• Utilizan que una cadena de bits puede representar un
polinómio en base 2:
– 110001 -> x5+x4+x0.
– La trama a transmitir es un polinomio M(x).
– Para detectar los errores se utiliza un polinomio generador
G(x), con sus bits mayor y menor con valor 1.
– Los bits a enviar T(x) se calculan como:
• Sea r el grado de G(x), calcular xrM(x).
• Dividir xrM(x) entre G(x) y obtener el resto R(x).
• Calcular T(x)= xrM(x)-R(x).
• Con estos cálculos T(x) es divisible por G(x).
• Los m=n-r primeros bits son M(x) y los r últimos bits son la
redundancia.

Adquisición y Tratamiento de Datos 11


La capa de enlace de datos

Detección de errores mediante CRC (II)


• Un emisor envía un mensaje T(x) y llega un mensaje T'(x)
al receptor.
• Designemos T'(x)=T(x)+E(x), donde E(x) es un polinomio
que tiene a 1 los bits que han sufrido un error en la
transmisión.
• Calculemos el resto de T'(x)/G(x):
mod(T'(x)/G(x)) = mod((T(x)+E(x))/G(x)) =
mod(T(x)/G(x)) + mod(E(x)/G(x))=
0 + mod(E(x)/G(x)) = mod(E(x)/G(x))
• El resto es cero si:
– E(x)=0. No existe error en la transmisión y T'(x)=T(x).
– E(x) es divisible por G(x).
Adquisición y Tratamiento de Datos 12
La capa de enlace de datos

Detección de errores mediante CRC (III)

• Existen G(x) calculados para minimizar la


segunda posibilidad:
CRC-12 = x12+x11+x3+x2+x+1
CRC-16 = x16+x15+x2+1
CRC-CCITT = x16+x12+x5+1
CRC-32 = x32 + x26 + x23 + x16 + x12 + x11 +
x10 + x8 + x7 + x5 + x4 + x2 + x + 1

Adquisición y Tratamiento de Datos 13


La capa de enlace de datos

Control de flujo

• Dos ordenadores han de sincronizar sus


velocidad:
– Si el emisor envía muy rápido el receptor puede no
poder procesar las tramas.
• Existen dos mecanismos básicos:
– Protocolo de parada y espera.
• Acuse de recibo “piggybacked” (a hombros) es un caso
optimizado de parada y espera.
– Ventana deslizante.

Adquisición y Tratamiento de Datos 14


La capa de enlace de datos

Protocolo de parada y espera


• El emisor envía una trama:
– Si el receptor la recibe correctamente envía una trama de
respuesta ACK.
– Si no la recibe o la recibe incorrectamente, espera a que el
emisor se la reenvíe al pasar un cierto tiempo (timeout).
• Una optimización es enviar una trama de respuesta NAK en caso de
que la trama recibida sea incorrecta y no espera el timeout.
• Si la trama ACK del receptor al emisor se pierde:
– El emisor repetirá la trama al pasar el timeout:
• El receptor recibirá dos veces la misma trama y no sabrá que es una
repetición
• Deben numerarse las tramas como 0, 1, 0, 1, ... para que el receptor
sepa diferenciar una repetición incorrecta.
Adquisición y Tratamiento de Datos 15
La capa de enlace de datos

Protocolos de ventana deslizante (I)


• Los protocolos de parada y espera son muy poco
eficientes:
– Ordenador X a 2.000 Kms del ordenador Y. Unidos
por una línea de 56 Kbps con tramas de 560 bits.

Instante (ms) Suceso en X Suceso en Y


0 Emite primer bit de trama 1 Espera
10 Emite último bit de trama 1 Recibe primer bit de trama 1
20 Espera Recibe último bit de trama 1
Envía ACK
30 Recibe ACK Espera
Emite primer bit de trama 2
... ... ...

Adquisición y Tratamiento de Datos 16


La capa de enlace de datos

Protocolos de ventana deslizante (II)

• Sea:
– v : Velocidad de la línea.
– t : Tamaño de la trama.
–  : Tiempo de ida de la línea (suponemos el tiempo de ida
igual al de vuelta).
Eficiencia = (t/v)/((t/v)+2) = t/(t+2v)
• En el ejemplo anterior la eficiencia es del 33%.
• En una línea de 512 Kbps la eficiencia sería del 5%.

Adquisición y Tratamiento de Datos 17


La capa de enlace de datos

Protocolos de ventana deslizante (III)


• Es necesario enviar tramas por la línea antes de
recibir el ACK de la primera de ellas.
• Para ello el emisor establece un buffer (ventana)
en la cual almacena las tramas enviadas por si
debe reenviarlas.
• Deben numerarse las tramas para poder conocer
que trama es la que se debe reenviar.
– Utilizando n bits se pueden enviar tramas numeradas
de 0 a 2n-2 antes de recibir un ACK.

Adquisición y Tratamiento de Datos 18


La capa de enlace de datos

Protocolos de ventana deslizante (IV)


• El tamaño de la ventana necesaria se calcula como:
W = 1 + (2v/t)
• En el ejemplo anterior W=3, por ejemplo.
• Cuando el receptor detecta una trama incorrecta puede:
– Descartar todas las tramas posteriores recibidas:
Retroceso n.
– Pedir la repetición de la trama errónea pero aceptar
las posteriores: Repetición selectiva.
• Repetición selectiva requiere que el emisor numere las
tramas con valores 2n en vez de n.
Adquisición y Tratamiento de Datos 19

También podría gustarte