Está en la página 1de 106

3 LA CAPA DE

ENLACE DE DATOS
2
Ing. Raúl Ortiz Gaona
 Veremos:
 Principios de diseño de la capa 2.
 Algoritmos para lograr la comunicación confiable y
eficiente entre dos máquinas adyacentes en capa 2.
 Algoritmo: Conjunto ordenado y finito de operaciones para
solucionar un problema.
 Adyacente: enlace P2P. Conexión directa por un canal físico:
cable coaxial, línea telefónica, enlace inalámbrico.
3
Ing. Raúl Ortiz Gaona
 Los circuitos tiene la siguiente realidad:
 Cometen errores ocasionales.
 Tienen una tasa de datos finita.
 Hay un retardo de propagación de los bits.
3.1 CUESTIONES DE
DISEÑO DE LA CAPA
DE ENLACE DE DATOS
5
Ing. Raúl Ortiz Gaona
 Funciones de la capa 2.
 Maneja errores de transmisión.
 Regula el flujo de datos: emisores rápidos y
receptores lentos.
6
Ing. Raúl Ortiz Gaona
 Para realizar las funciones, la capa 2 encapsula
en tramas los paquetes de la capa 3.
 Trama:
 Encabezado.
 Carga útil para el paquete.
 Final.
 Control de flujo y errores realiza las capas 2 y 4.
7
Ing. Raúl Ortiz Gaona
8
Ing. Raúl Ortiz Gaona
9
Ing. Raúl Ortiz Gaona
3.1.1 Servicios dados a la capa de red
 Servicio principal: transferir datos en forma de
bits de la capa 3 en el origen a la capa 3 en el
destino.
10
Ing. Raúl Ortiz Gaona
11
Ing. Raúl Ortiz Gaona
Servicios de la capa de enlace
 No orientado a la conexión sin ACK.
 No orientado a la conexión con ACK.
 Orientado a la conexión con ACK.
12
Ing. Raúl Ortiz Gaona
Servicio no orientado a la conexión sin ACK
 El origen envía tramas independientes al
destino sin pedir confirmación.
 Si se pierde una trama debido a ruido en la
línea, la capa 2 no lo detecta.
13
Ing. Raúl Ortiz Gaona
 Servicio apropiado con baja tasa de errores.
 Para aplicaciones de tiempo real.
 Adecuado para redes LAN como Ethernet.
14
Ing. Raúl Ortiz Gaona
Servicio no orientado a la conexión con
ACK
 El emisor sabe si la trama llegó bien o no.
 Si no ha llegado, lo reenvía.
 Para canales inestables como inalámbricos.
 Con FO, este servicio es innecesario.
15
Ing. Raúl Ortiz Gaona
Servicio orientado a la conexión con ACK
 Servicio confiable.
 Tramas numeradas para garantizar:
 Ordenamiento de las tramas.
 Cada trama se recibe exactamente una vez.
 Cada trama llega sin errores.
16
Ing. Raúl Ortiz Gaona
 Controla de tramas recibidas y las que no.
 El algoritmo de la capa 2 podría implementarse
en hw.
17
Ing. Raúl Ortiz Gaona
18
Ing. Raúl Ortiz Gaona
3.1.2 Entramado
 Métodos para indicar el inicio y fin de una trama:
 Inserción de intervalos de tiempo entre las tramas.
 Conteo de caracteres.
 Banderas, con relleno de caracteres.
 Banderas de inicio y fin, con relleno de bits.
 Violación de codificación de la capa física.
19
Ing. Raúl Ortiz Gaona
Inserción de intervalos de tiempo
 Pausas de tiempo entre tramas.
 Similar a los espacios entre palabras.
 Es riesgoso depender de ella.
 Estos intervalos podrían ser eliminados.
 Podrían erróneamente insertarse otros intervalos
durante la transmisión.
20
Ing. Raúl Ortiz Gaona
Conteo de caracteres
 Longitud de la trama: campo en la cabecera
para indicar el número de caracteres de la
trama.
 Método casi no usado.
21
Ing. Raúl Ortiz Gaona
22
Ing. Raúl Ortiz Gaona
Banderas con relleno de caracteres
 Una trama inicia y termina con un byte especial.
 01111110.
 Si el receptor pierde sincronía, puede esperar la
siguiente bandera.
 Dos banderas consecutivas señalan el final de
una trama y el inicio de la siguiente.
23
Ing. Raúl Ortiz Gaona
 Podría ocurrir que el patrón de bits de la
bandera aparezca entre los datos.
 Para solucionar se usa el byte ESC.
 Empleado por el protocolo PPP, utilizado para
comunicarse con el ISP.
24
Ing. Raúl Ortiz Gaona
25
Ing. Raúl Ortiz Gaona
 Desventaja: esquema atado a caracteres de 8
bits.
 No todos los códigos usan caracteres de 8 bits.
 Hay otra técnica que permite caracteres de
tamaño arbitrario.
26
Ing. Raúl Ortiz Gaona
Banderas con relleno de bits
 Tramas de datos con núm. arbitrario de bits.
 Códigos de caracteres con núm. arbitrario de bits.
 Cada trama inicia y termina con 01111110.
 Si la capa 2 encuentra cinco 1s consecutivos en los
datos, inserta un 0.
 Si el receptor ve cinco 1s de entrada seguido de un
0, extrae el bit 0 de relleno.
27
Ing. Raúl Ortiz Gaona
Bits de relleno
28
Ing. Raúl Ortiz Gaona
Violaciones de codificación de la capa física
 Algunas LANs representan los bits de datos
usando codificación Manchester.
 Alto – bajo: bit 1.
 Bajo – alto: bit 0.
 La combinación alto-alto y bajo-bajo no se usa
para datos.
 Algunos protocolos lo usan para delimitar
tramas.
29
Ing. Raúl Ortiz Gaona
3.1.3 Control de errores
 Retroalimentación al emisor.
 ACK - NACK.
 NACK: Retransmisión de trama.
 Pérdida de trama de datos sin retroalimentación:
 Inicio de temporizador en el emisor.
 Expira el temporizador – retransmite.
 Numeración de tramas para no duplicar.
30
Ing. Raúl Ortiz Gaona
3.1.4 Control de flujo
 Saturación, sobrecarga o desbordamiento:
emisores rápidos y receptores lentos.
 Para evitarlo se controla el flujo:
 Basado en retroalimentación.
 Basado en tasa. El protocolo limita la tasa a la que el
emisor puede transmitir los datos.
 Se utiliza en la capa 3.
3.2 DETECCIÓN Y
CORRECCIÓN DE
ERRORES
32
Ing. Raúl Ortiz Gaona
 Se producen errores en:
 Última milla – local loop del sistema telefónico
 Comunicación inalámbrica.
 Los errores aparecen en ráfagas, no de manera
individual.
33
Ing. Raúl Ortiz Gaona
 Desventaja de errores en ráfaga: son más
difíciles de detectar y corregir.
 Ventaja: dañan a una o máximo dos tramas.
 Si los errores fueran independientes la mayoría
de las tramas tendrían errores.
34
Ing. Raúl Ortiz Gaona
3.2.1 Códigos de corrección de errores
 Hay dos estrategias:
 Códigos de corrección de errores.
 Incluir información redundante en la trama para que
el receptor deduzca lo que debió ser.
 Códigos de detección de errores.
 Incluir suficiente información para que el receptor
sepa que ha ocurrido un error.
35
Ing. Raúl Ortiz Gaona
 En FO hay una tasa baja de error.
 Es suficiente usar códigos de detección de errores.
 En enlaces inalámbricos es mejor usar códigos
de corrección de errores.
36
Ing. Raúl Ortiz Gaona
 Una trama tiene m bits de datos.
 La trama tiene r bits redundantes.
 La trama tiene una longitud
n = m + r
37
Ing. Raúl Ortiz Gaona
 En dos palabras codificadas, el número de bits
en las que difieren es d.
10001001
10110001
XOR 00111000
 En el ejemplo, d = 3.
 d es la distancia de Hamming.
38
Ing. Raúl Ortiz Gaona
 Se puede construir una lista completa de
palabras codificadas legales.
 En la lista habrán dos palabras codificadas cuya
distancia de Hamming no sea menor a un cierto
valor.
39
Ing. Raúl Ortiz Gaona
 La detección y corrección de errores dependen
de la distancia de Hamming d.
 Si una palabra tiene una d menor a la distancia
mínima m con alguna de las palabras legales,
se detectará el error.
 Alterando esta cantidad de bits no es posible
convertir una palabra codificada legal en otra.
40
Ing. Raúl Ortiz Gaona
41
Ing. Raúl Ortiz Gaona
 Para corregir e bits errados se necesita un
código de distancia m = 2e + 1.
 Las palabras legales están tan separadas que
alterando sólo e bits todavía estará más cerca
de la palabra original.
42
Ing. Raúl Ortiz Gaona
43
Ing. Raúl Ortiz Gaona
44
Ing. Raúl Ortiz Gaona
Ejemplo detección de errores
 Bit de paridad.
 Paridad par: cantidad par de 1s
 Paridad impar: cantidad impar de 1s .
 Un código con bit de paridad tiene una distancia
mínima de 2:
10100011
11100010
XOR 01000001 d = 2
45
Ing. Raúl Ortiz Gaona
 Cualquier error de un solo bit será detectado.
 Este es un sistema para detectar errores
individuales.
46
Ing. Raúl Ortiz Gaona
Ejemplo de corrección de errores
 En vez de: 00 Se tiene: 0000000000
01 0000011111
10 1111100000
11 1111111111

 d = 5
 d = 2e + 1
 e = (d – 1)/2 = (5 - 1)/2 = 2
1000011110 es 0000011111
47
Ing. Raúl Ortiz Gaona
 Se desea diseñar un código de m bits de
mensaje y r bits de verificación.
 r bits permite corregir errores individuales.
 Dado m, hay un r mínimo necesario para
corregir errores individuales (de 1 bit).
48
Ing. Raúl Ortiz Gaona
¿Cuál es el valor mínimo r ?
 Hay 2
m
mensajes legales.
 Por cada mensaje legal hay n palabras ilegales
a una distancia 1 del mensaje:
n 2
m

 El número de palabras legales e ilegales es:
(n + 1) 2
m

 Pero (n + 1) 2
m
≤ 2
n

 n = m + r. entonces (m + r + 1 ) 2
m
≤ 2
m+r

m + 1 ≤ 2
r
- r

49
Ing. Raúl Ortiz Gaona
Ejemplo
legales ilegales n = 5 con errores de 1 bit
 00000 10000 01000 00100 00010 00001
 01011 11011 00011 01111 01001 01010
 10100 00100 11100 10000 10110 10101
 11111 01111 10111 11011 11101 11110
 m = 2; r = 3; n = m + r = 5
 Mensajes legales 2
m
= 2
2
= 4
 Palabras ilegales: n 2
m
= 5*2
2
= 5*4 = 20
 Legales + ilegales = 2
m
+ n 2
m
= (n + 1)* 2
m
= 24
 Legales + ilegales <= 2
n

 24 <= 32
50
Ing. Raúl Ortiz Gaona
Códigos de Hamming.
Ejemplo
1 2 3 4 5 6 7 8 9 10 11
2
n
1
2
4
8
ASCII
1 0 0 1 0 0 0
Posición k
bits m
bits r
51
Ing. Raúl Ortiz Gaona
1 2 3 4 5 6 7 8 9 10 11
2
n
1
2
4
8
ASCII
3 = 1 + 2
1
1
1 0 0 1 0 0 0
Posición k
bits m
bits r
52
Ing. Raúl Ortiz Gaona
1 2 3 4 5 6 7 8 9 10 11
2
n
1
2
4
8
ASCII
5 = 1 + 4
1 0
1
0
1 0 0 1 0 0 0
Posición k
bits m
bits r
53
Ing. Raúl Ortiz Gaona
1 2 3 4 5 6 7 8 9 10 11
2
n
1
2
4
8
ASCII
6 = 4 + 2
1 0
1 0
0 0
1 0 0 1 0 0 0
Posición k
bits m
bits r
54
Ing. Raúl Ortiz Gaona
1 2 3 4 5 6 7 8 9 10 11
2
n
1
2
4
8
ASCII
1 0 1 0 0
1 0 1 0 0
0 0 1
1 0 0 1 0 0 0
0 0 0
Posición k
bits m
bits r
55
Ing. Raúl Ortiz Gaona
1 2 3 4 5 6 7 8 9 10 11
2
n
1
2
4
8
ASCII
1 0 1 0 0
1 0 1 0 0
0 0 1
1 0 0 1 0 0 0
0 0 0
0
Paridad par de 1s
Posición k
bits m
bits r
56
Ing. Raúl Ortiz Gaona
1 2 3 4 5 6 7 8 9 10 11
2
n
1
2
4
8
ASCII
1 0 1 0 0
1 0 1 0 0
0 0 1
1 0 0 1 0 0 0
0 0 0
0
0
Paridad par de 1s
Posición k
bits m
bits r
57
Ing. Raúl Ortiz Gaona
1 2 3 4 5 6 7 8 9 10 11
2
n
1
2
4
8
ASCII
1 0 1 0 0
1 0 1 0 0
0 0 1
1 0 0 1 0 0 0
0 0 0
0
0
1
0
Posición k
bits m
bits r
58
Ing. Raúl Ortiz Gaona
1 2 3 4 5 6 7 8 9 10 11
2
n
1
2
4
8
Código de Hamming
1 0 1 0 0
1 0 1 0 0
0 0 1
0 0 1 1 0 0 1 0 0 0 0
0 0 0
0
0
1
0
Posición k
bits m
bits r
59
Ing. Raúl Ortiz Gaona
 Valor mínimo r:
m = 7
m + 1 ≤ 2
r
– r
Tanteo: r = 4.
7 + 1 ≤ 2
4
– 4
8 ≤ 12
60
Ing. Raúl Ortiz Gaona
 Los bits de la palabra se numeran desde 1
ascendentemente de izquierda a derecha.
 Los bits potencias de 2 son redundantes: bits r.
 Las otras posiciones se llenan con bits de datos
m.
 Un bit m puede estar incluido en varios cálculos
de paridad.
61
Ing. Raúl Ortiz Gaona
 La posición k de bits m con valor 1, se escribe
como la suma de potencias de 2.
 11 = 1 + 2 + 8; 10 = 2 + 8; 9 = 1 + 8; etc.
 Se comprueba un bit m solamente por sus
correspondientes bits r.
 Si los bits 1, 2 y 8 están errados, se detecta al
bit 11 como alterado.
 Un bit r contiene la paridad par sólo de un
subgrupo de bits m.
62
Ing. Raúl Ortiz Gaona
 Códigos de Hamming sólo corrigen errores
individuales.
 Hay un truco para corregir códigos de ráfaga.
 k palabras se disponen en matriz.
 No se transmite por filas, sino por columnas.
 Un error de ráfaga de longitud k, dañará a lo
mucho 1 bit de cada una de las k palabras.
63
Ing. Raúl Ortiz Gaona
64
Ing. Raúl Ortiz Gaona
3.2.2 Códigos de detección de errores
 Si la tasa de errores es muy baja, se usa
códigos de detección de errores (FO).
 Para mejorar la detección de errores, un bloque
se envía como matriz.
 Se calcula por separado un bit de paridad por
cada fila y uno por cada columna.
 En la práctica se usa el código de redundancia
cíclica CRC.
65
Ing. Raúl Ortiz Gaona
Código de redundancia cíclica CRC
 Llamado código polinomial.
 Una cadena de bits se trata como un polinomio,
con coeficientes 0 y 1.
 Una trama de k bits se considera como un
polinomio de k términos de grado k - 1.
 b
k-1
x
k-1
+ b
k-2
x
k-2
+ … + b
1
x + b
0
 101011 = 1x
5
+ 0x
4
+ 1x
3
+ 0x
2
+ 1x + 1
66
Ing. Raúl Ortiz Gaona
 La suma y la resta se reducen a un XOR

10011011
± 11001010
01010001
67
Ing. Raúl Ortiz Gaona
 Emisor y receptor acuerdan el generador G(x).
 El polinomio M(x) de m bits, debe ser más grande
que G(x).
 Se añade la suma de verificación al fin de M(x).
 T(x) = M(x) + CRC
 T(x) se transmite
 T(x) debe ser divisible para G(x).
 Si hay residuo, hay un error de transmisión.
68
Ing. Raúl Ortiz Gaona
M(X)
G(X)
T(X)
69
Ing. Raúl Ortiz Gaona
 Si G(x) es de grado r, añadir r bits 0 al final de la
trama.
 T(x) tiene m + r bits.
 Se divide T(x) para G(x)
 El residuo se suma a T(x) antes de transmitir.
3.3 PROTOCOLOS
ELEMENTALES DE
ENLACES DE DATOS
71
Ing. Raúl Ortiz Gaona
Archivo protocol.h
72
Ing. Raúl Ortiz Gaona
73
Ing. Raúl Ortiz Gaona
 Tres casos con niveles de complejidad
crecientes.
 Protocolo símplex sin restricciones.
 Protocolo símplex de parada y espera.
 Protocolo simplex para un canal ruidoso.
74
Ing. Raúl Ortiz Gaona
3.3.1 Protocolo símplex sin restricciones
 Es el más sencillo.
 Es irreal.
 Los datos se transmiten sólo en una dirección.
 Las capas de red del emisor y receptor siempre
están listas.
 Se ignora el tiempo de procesamiento.
 Hay un espacio infinito de buffer.
 Canal no produce errores ni pierde tramas.
75
Ing. Raúl Ortiz Gaona
76
Ing. Raúl Ortiz Gaona
 No se usan números de secuencia ni
confirmaciones de recepción.
 Único evento posible: llegada de tramas sin
daños.
77
Ing. Raúl Ortiz Gaona
3.3.2 Protocolo simplex de parada y espera.
 El receptor requiere un tiempo para recibir y
procesar la trama que llega.
 Se evita que el emisor sature al receptor.
 Se supone que el canal de comunicaciones está
libre de errores y el tráfico de datos es símplex.
78
Ing. Raúl Ortiz Gaona
 Solución: receptor retroalimenta al emisor.
 Luego de enviar una trama, el emisor espera
que llegue una pequeña trama ficticia.
 La trama ficticia es una autorización al emisor
para que transmita la siguiente trama.
 Este protocolo se llama de parada y espera.
79
Ing. Raúl Ortiz Gaona
80
Ing. Raúl Ortiz Gaona
 En realidad hay flujo de información en ambas
direcciones en una alternancia estricta.

81
Ing. Raúl Ortiz Gaona
3.3.3 Protocolo símplex para un canal
ruidoso.
 El canal comete errores o pierde tramas.
 Puede ser que el ACK enviado por el receptor
se pierda.
 El emisor lo vuelve a enviar duplicándose la trama.
 Para evitar este problema se numera las tramas.
82
Ing. Raúl Ortiz Gaona
 El número de secuencia es de 1 bit (0 ó 1).
 Éste se incrementa módulo 2.
 Se transmite también en una sola dirección.
 Los protocolos en los que el emisor espera
confirmación se llaman ARQ (Automatic Repeat
reQuest).
83
Ing. Raúl Ortiz Gaona
84
Ing. Raúl Ortiz Gaona
3.4 PROTOCOLOS DE
VENTANA CORREDIZA
86
Ing. Raúl Ortiz Gaona
 Una forma de transmitir datos dúplex es con 2
circuitos símplex.
 Cada circuito con una canal para datos y otro para
acuses de recibo que se desperdicia demasiado.
 Otra idea es utilizar el mismo circuito para datos
en ambas direcciones.
 El campo kind de la cabecera de la trama indica
si es de datos o un ACK.
87
Ing. Raúl Ortiz Gaona
Técnica de superposición o piggybacking
 Se anexa un ACK a una trama de datos de
retorno, usando el campo ack del encabezado.
 La confirmación viaja gratis.
 Se aprovecha mejor el ancho de banda del
canal.
 Hay menos interrupciones de “ha llegado una
trama”.
88
Ing. Raúl Ortiz Gaona
 Problema: Podría expirar el temporizador del
emisor y retransmitir la trama porque el receptor
no tiene datos que enviar.
 Solución: El receptor espera un número de
milisegundos. Si el receptor no tiene datos que
enviar, envía un ACK independiente.
89
Ing. Raúl Ortiz Gaona
Tres protocolos de ventana deslizante
 Son bidireccionales. Ellos son:
 Protocolo de ventana corrediza de un bit.
 Protocolo que usa retroceso N.
 Protocolo que utiliza repetición selectiva.
90
Ing. Raúl Ortiz Gaona
Protocolos de ventana deslizante. continuación
 Cada trama tiene un número de secuencia.
 Va de 0 a Nmax y encaja en un campo de n bits.
 El emisor registra las tramas enviadas que no
han sido confirmadas.
 El receptor tiene una ventana de las tramas
que puede aceptar.
 Estas ventanas no tienen que tener los
mismos límites ni tener el mismo tamaño.
91
Ing. Raúl Ortiz Gaona
 Algunas veces las ventanas son de tamaño fijo.
 Estos protocolos entregan en orden los
paquetes a la capa 3.
 En el emisor:
 Si llega un paquete nuevo de la capa 3, el extremo
superior de la ventana avanza en 1.
 Al llegar un ACK, el extremo inferior de la ventana
avanza uno.
92
Ing. Raúl Ortiz Gaona
93
Ing. Raúl Ortiz Gaona
 Si la ventana crece a su tamaño máximo, la
capa 2 del emisor detiene a su capa 3 hasta
liberar buffer.
 En el receptor, toda trama que caiga fuera de la
ventana se descartará.
 La ventana receptora siempre mantiene su
tamaño inicial.
94
Ing. Raúl Ortiz Gaona
 Si la ventana tiene tamaño 1 el receptor sólo
acepta tramas en orden.
 Con ventanas más grandes esto no es así.
 En todo caso, la capa 3 siempre recibe los datos
en orden.
95
Ing. Raúl Ortiz Gaona
3.4.1 Protocolo de ventana corrediza
de 1 bit.
 Este protocolo utiliza parada y espera.
 Las tramas se numeran con 0 y 1
alternadamente.
 Sólo una de las máquinas puede iniciar
transmitiendo la primera trama.
 Si las 2 máquinas inician la transmisión al
mismo tiempo hay funcionamiento anormal.
96
Ing. Raúl Ortiz Gaona
97
Ing. Raúl Ortiz Gaona
3.4.2 Canalización
 Enlace satelital de R = 50 kbps.
 Satélite geoestacionario (36.000 km).
 Retardo de propagación de ida y vuelta al
emisor=4x36.000km/300.000km/seg=500 ms
 Tamaño de trama l = 1.000 bits.
 Tiempo de transmisión = l /R = 20 ms.
 Con una confirmación corta, el rendimiento =
20s/520s = 3.8%.
98
Ing. Raúl Ortiz Gaona
Solución
 Canalización. El emisor envíe hasta w tramas
antes de bloquearse.
 Con w, el emisor envía tramas durante el tiempo
de ida y vuelta sin llenar la ventana.
 Tamaño de ventana, w = 520ms/20ms = 26.

26 tramas = retardo x tasa/ tamaño de la trama

 El aprovechamiento de uso del canal es mayor.
99
Ing. Raúl Ortiz Gaona
 Al terminar de enviar la trama 26 en t = 520 ms,
llega la confirmación de recepción de la trama 1.
 Entonces las confirmaciones llegan cada 20 ms.
100
Ing. Raúl Ortiz Gaona
Métodos para manejar errores en
canalización
1. Retroceso n.
2. Repetición selectiva.
101
Ing. Raúl Ortiz Gaona
Retroceso n
102
Ing. Raúl Ortiz Gaona
Retroceso n continuación
 Tamaño de la ventana del receptor = 1.
 El receptor descarta las tramas subsiguientes.
 Desperdicio de mucho ancho de banda si la
tasa de errores es alta.
103
Ing. Raúl Ortiz Gaona
Repetición selectiva (1)
 Ventana del receptor > 1.
 Se descarta la trama dañada recibida.
 Siguientes tramas recibidas correctamente se
almacenan en buffer.
 Emisor transmite sólo la última trama sin ACK
 El receptor envía un NACK al detectar error.
 NACK estimula retransmisión antes de
expirar el temporizador.
104
Ing. Raúl Ortiz Gaona
Repetición selectiva (2)
105
Ing. Raúl Ortiz Gaona
Repetición selectiva (3)
 El emisor y receptor mantienen una ventana.
 La ventana del emisor puede crecer hasta un
número máximo.
 La ventana del receptor siempre es de tamaño
fijo = número máximo.
 El receptor tiene un buffer reservado para cada
número de secuencia en su ventana.
106
Ing. Raúl Ortiz Gaona
Repetición selectiva (4)
 La ventana del receptor acepta cualquier trama
con un número de secuencia dentro de la
ventana.
 Cada buffer tiene un bit asociado que indica si
éste está lleno o vacío.