Vous êtes sur la page 1sur 33

Redes de

Computadoras
Nivel de Enlace de Datos

Dra. Claudia Feregrino

Contenido
1. Introducción - Cuestiones de diseño
„ Servicios para el nivel de red
„ Tramas
„ Control de errores
„ Control de flujo
2. Detección y corrección de errores
„ Códigos CRC
3. Protocolos elementales de enlace de
datos
4. Protocolos de ventana corrediza
5. Ejemplos de protocolos

1
1. Cuestiones de Diseño
„ Entre las funciones de este nivel:
• Proveer una interfaz de servicio para la
capa de red
„ Determinando cómo agrupar los bits de la
capa física en tramas
„ Lidiando con errores de transmisión
„ Regulando el flujo de tramas

Nivel de Enlace

„ Algoritmos para lograr Host 1 Host 2 Host 1


comunicación confiable Host 2
y eficiente entre dos
computadoras adyacentes.
a) b)
a) Comunicación virtual b) Comunicación real
„ Problemas:
• Los errores en los circuitos de
comunicación, sus velocidades de
transmisión y el tiempo de propagación.

2
Servicios para el nivel de red

Servicio sin conexión y sin acuses de recibo. El


transmisor manda tramas al destino. Uso: si la
frecuencia de errores es muy baja o el tráfico es de
tiempo real (voz).

Servicio sin conexión y con acuses de recibo. El


receptor manda un acuse de recibo al remitente
por cada trama recibida. Uso: canales no
confiables como inalámbricos.

Servicio orientado a conexión con acuses de


recibo. Provee un flujo confiable de bits. Se
establece conexión antes de enviar datos. Las tramas
se enumeran y todas se reciben una vez y en orden
correcto. Uso: WAN subnet routers 5

„ Colocación del protocolo de enlace de


datos

3
Tramas
„ El nivel físico envía flujo de bits, intenta entregarlos al
destino. Los bits entregados pueden ser más, menos,
o distintos a estos mandados.

• El nivel de enlace parte el flujo en tramas y corrige


los errores. Normalmente calcula un checksum para
cada trama. Si difiere con el de la trama, hubo error.

• Dividir el flujo no es simple, no usar intervalos de


tiempo. Nivel físico no garantiza preservación de
intervalos.
• Número de caracteres.
• Caracteres de inicio y fin, con relleno de caracteres.
• Banderas de inicio y fin, con relleno de bits.
• Violaciones en el estándar de codificación del nivel físico.

Tramas
„ Número de caracteres. Un campo del encabezado
guarda el número. Pero si el número es cambiado
en una transmisión, es difícil recuperar.

Un flujo de caracteres. A) Sin errores b) Con un error


8

4
Tramas
„ Caracteres de inicio y fin, con relleno de
caracteres. Cada trama empieza con la secuencia
ASCII de DLE STX y termina con DLE ETX. Si la
secuencia está en los datos, se duplica el DLE. Pero
este sistema es muy vinculado a ASCII y caracteres
de 8 bits.

Tramas
„ Banderas de inicio y fin, con relleno de bits. Cada
trama empieza y termina con 01111110. En los datos
se inserta un 0 después de cada cinco 1’s
consiguientes. El receptor elimina cada 0 después de
cinco 1’s.

10

5
Tramas
„ Violaciones de codificación del nivel
físico. Se usa en sistemas con redundancia.
„ Ejemplo: LANs donde se usa dos bits físicos
para cada bit lógico. Entonces quedan dos
combinaciones para la señalización.
„ Una combinación del número de caracteres
con uno de otros métodos es también posible.

11

Control de errores y control de flujo


Resuelto el ppio y fin, cómo asegurar que las tramas se
entregan a la capa de red y en orden?

Control de errores
„ Se usan los acuses de recibo positivos y negativos.
• Para manejar el caso donde se pierde la trama o el acuse, el
remitente mantiene temporizadores.
• Para evitar tramas duplicadas usando números de
secuencia.
Para problemas de envío a mayor
Control de flujo velocidad que el receptor puede aceptar
• Se usan protocolos que prohíben que el emisor pueda
mandar tramas sin el permiso del receptor.
• Por ejemplo, el emisor puede mandar n tramas y espera.

12

6
2. Detección y corrección de errores

Errores por bit o por grupo


Errores en grupo más difíciles de detectar

Dos enfoques:
„ Transmitir información redundante que permite
deducir qué debía ser un carácter transmitido.
Corrección de errores.

„ Transmitir solamente suficiente información para


detectar un error. Detección de errores.

13

¿Qué es un error?
Codeword – n = m bits datos + r bits
redundancia

Dadas dos tramas o codewords:


10001001 y 10110001

Distancia de Hamming – XOR de dos n


codewords.

Distancia d Æ se necesitan d errores para


pasar de una a otra.

14

7
„ Normalmente,
Normalmente, 2m mensajes válidos,
lidos, 2n no.

„ Construir todos codewords válidos,


lidos, encontrar los
dos con distancia de Hamming mínima.
nima. Distancia
de Hamming del código.
digo.

„ Para detectar d errores se necesita un có


código de
distancia de Hamming de d+1, porque entonces
d errores únicos de bit no pueden cambiar un
codeword válido a otro codeword válido.

„ • Para corregir d errores se necesita una


distancia de 2d+1. Aun cuando hay d cambios, el
codeword original todaví
todavía está
está más cerca que
cualquier otro.
15

Ejemplos:

„ Un código usa un solo bit de paridad, así


que el número de unos es par. Para
detectar un error, distancia de dos.

„ Un código tiene los cuatro codewords


0000000000, 0000011111, 1111100000,
y 1111111111. La distancia es cinco; el
código puede corregir dos errores. Por
ejemplo, interpreta 0000000111 como
0000011111.

16

8
Detección de errores
„ Se prefiere la detección que la corrección de errores
por ser más eficiente.
„ Corrección en simplex, mejor detección y
retransmisión.
Errores en ráfaga: Matriz con último
renglón de chequeo
Ejemplo: Un canal con una tasa de errores de 10-6 por
bit (un bit en cada 106). Mensajes de 1000 bits.
„ Corrección - añadir 10 bits por mensaje.

Tx de 106 bits de datos - 10.000 bits de chequeo para


detectar y corregir un bit de error esperado.
„ Detección - un bit de paridad por mensaje. Para 10
6

bits de datos Æ solamente 1000 bits. Si un mensaje


tiene un error, retransmitirlo con su bit de paridad
(1001 bits). En total usamos 2001 bits necesarios.
17

Códigos CRC (Polinomial)


„ Código polinomial (también llamado el cyclic
redundancy code, o CRC). Se trata a los strings de
bits como polinomios con coeficientes 0 y 1.
„ Un mensaje de k bits con un grado de k-1
corresponde a bit_0 xk-1 + ...+ bit_n xk-1-n + ...+
bit_k-1 x0. Ejem. 110001 = x5+x4+x0
„ La aritmética con estos polinomios es módulo 2 sin
llevar, es decir la adición y la sustracción son
equivalentes a XOR. La división usa XOR en lugar de
sustracción y A se divide entre B si el número de bits
en B es mayor de o igual al número en A.
„ El transmisor y el receptor usan el mismo polinomio
de generación, G(x), con bits de mayor y menor
orden de 1.

18

9
CRC
• Para calcular el checksum:

Sea r el grado de G(X). Añade r 0 bits al mensaje M(x),


produciendo xrM(x).
Divide xrM(x) por G(x), produciendo un residuo.
Transmite T(x) = xrM(x) - residuo. T(x) es divisible por
G(x). Sus últimos r bits son el checksum.

• Si hay errores en la transmisión recibiremos T(x)+E(x)


en vez de T(x). El receptor divide T(x)+E(x) por G(x).
Ya que el resto debido a T(x) es 0, el resto obtenido
es completamente debido a E(x). Si E(x) tiene G(x)
como un factor, el resto será 0 y no detectaremos el
error, de otro modo, sí.

19

20

10
CRC – Qué tipo de errores se
detectan? i bit
determina qué
es erróneo
• Si hay un error de un bit, E(x) = xi . Si G(x) tiene más
de un término, no puede dividir E(x). Entonces se
detectan todos los errores de un bit.

• Con dos errores se tiene E(x) = xi + xj = xj(xi-j+1).


Podemos usar un G(x) que no divide xk +1 para
cualquier k hasta el valor máximo de i-j (que es la
longitud de la trama). Por ejemplo, x15+x14+1 no
divide xk +1 para k<32768.

• Si x+1 es un factor de G(x), se detectan todos los


errores que consisten en un número impar de bits
invertidos. Prueba por contradicción: Asume que E(x)
tiene un número impar de términos y es divisible por
x+1. Entonces E(x) = (x+1)Q(x) para algún Q(x).
E(1) = (1+1)Q(1) = (0)Q(1) = 0. 21

CRC
• Podemos detectar todos los errores en grupo con
longitud menor que o igual a r. Si el grupo tiene una
longitud de k, lo podemos escribir como xi(xk-1+...+1)
(i ubica el grupo en la trama). Si G(x) contiene un
término de x0, xi no puede ser un factor y G(x) no
puede ser igual a xk-1+...+1 (el grado k-1 es menor
que r).
„ Si el grupo tiene una longitud de r+1, la probabilidad
que el grupo es G(x) es la probabilidad que los r-1
bits intermedios del grupo son iguales (por definición
el primer y el último bits del grupo son 1), que es
(1/2)r-1.
• Para los grupos con longitud mayor de r+1, la
probabilidad es (1/2)r.

22

11
CRC
• Estándares internacionales:
• CRC-12 = x12 + x11 + x3 + x2 + x + 1
• CRC-16 = x16 + x15 + x2 + 1
• CRC-CCITT = x16 + x12 + x5 + 1
Los dos últimos detectan todos los errores de
uno y dos bits, los errores con un número
impar de bits invertidos, los grupos de
errores con longitud menor que o igual a 16,
99,997% con longitudes de 17, y 99,998%
con longitudes mayor o igual a 18.
„ Registro de corrimiento, casi siempre usado.

23

3. Protocolos elementales de
enlace de datos
„ Suposiciones:
• En las capas física, de enlace y de red
hay procesos independientes pasando
mensajes.
• A quiere enviar un mensaje largo a B
usando servicio orientado a conexión.
• La capa de red recibe datos
infinitamente rápido.

• Varias definiciones: Æ Æ Æ…

24

12
25

26

13
Un protocolo unidireccional sin
restricción

27

Un protocolo unidireccional
“stop-and-wait”

„ Los protocolos en los cuales el transmisor


envía una trama y después espera por una
aceptación antes de proceder son
llamados “stop-and-wait”.

„ Ya no suponemos que la capa de red


puede recibir datos infinitamente rápido.

28

14
Ejemplo de un protocolo
unidireccional “stop-and-wait”

29

Un protocolo unidireccional para un


canal ruidoso

Canal con errores, tramas dañadas o perdidas.


30

15
31

„ En protocolos anteriores:
• Restricción – transmisión simplex
• Solución – piggybacking.
• Ventajas:
„ Mejor uso del ancho de banda
„ Menos tramas mandadas implica menos
interrupciones de llegada de trama en el receptor (y
quizás menos buffers también).

• Desventajas:
„ ¿Por cuánto tiempo debe esperar el nivel de enlace
por un paquete de datos antes de que mande el
acuse? Si mucho – reenvio.
Protocolos de ventana
deslizante!!!

32

16
Protocolos de ventana deslizante

„ En los protocolos de ventana deslizante, cada trama


de salida contiene contiene un número de secuencia
con un intervalo que va de cero hasta algún máximo.

„ Las ventanas de emisor y receptor pueden tener


tamaños diferentes. 33

Protocolo de ventana deslizante a


un bit

„ (seq, ack, packet number)


„ * cuando la capa de red acepta paq.
34

17
Protocolo de 1 Bit

OK para
Entonces, el protocolo de 1 bit : canales con
pérdida
Es stop-and-wait –

El emisor no envía nueva trama hasta que recibe ack


de la trama anterior, y reenvía cuando el ack no se
recibe.
time-outs

El receptor acusa tramas esperadas, y re-acusa cuando


las esperadas no se reciben.

35

Rendimiento

Imagina 2 estaciones : 1 en la costa Oeste y otra en la costa Este.


El retardo de propagación (velocidad de la luz) es 15 ms. Suponga
que están conectadas por un canal con capacidad C de Gbps (109).
Con un tamaño de paquete SP de 8 Kb, el tiempo para transmitir los
datos:
T = SP = 8 Kb / paquete = .008 ms /
C 109 bits/s paquete

El último bit llega al receptor al tiempo:


t = 15.008 ms

36

18
Utilización

Asuma que el receptor comienza a transmitir ack tan pronto como el


último bit de datos llega, y que el paquete de ack es del mismo tamaño
que el paquete de datos.
El ack llega de regreso al emisor al tiempo
t = 15.008 + 15.008 = 30.016.

Entonces en 30.016 ms el emisor estuvo ocupado enviando solo .008


ms.
Utilización puede definirse aquí como la fracción de tiempo que el
emisor
Rendimiento : está ocupado enviando bits por el canal: Emisor ocupado
solo .015% del
8 Kb / 30.016 ms tiempo
= 266 Kbps Usender = .008 sec = .00015
stop-and-wait puede tener
30.016 s utilización
En una línea de 1
inaceptablemente pobre
Gbps ! 37

Pipelining

Para combatir la pobre eficiencia de stop-and-wait, permita


al emisor continuar enviando durante el tiempo de ida y
vuelta para el paquete + ack.

Relajar la restricción de que el emisor espera por el ack


antes de enviar la próxima trama.

rango de números de secuencia debe incrementarse, ya


qu puede haber varios paquetes sin ack en tránsito.
parámetros

Número de buffers: emisor y receptor deben guardar


(buffer) más de 1 paquete.
38

19
Recuperación de errores con pipeline

Al emisor se le permite transmitir múltiples paquetes sin


esperar por un ack, pero es restringido a tener no más que
un número N máximo de paquetes sin ack en el pipeline.

El rango de números de secuencia permitido para ser


transmitidos y sin ack se puede ver como una ventana de
tamaño N sobre el rango de números de secuencia.

A medida que el protocolo opera, la ventana se desliza


sobre el espacio de los números de secuencia.

39

base proxnumsec

Tamaño de
ventana N

ack’d Usable, pero no


enviado todavía

no usable
Enviados
pero
todavía sin
ack 40

20
Pipelining (entubamiento):
El concepto general es que los procesos
utilizan recursos distintos en distintas etapas
de su ejecución, por lo tanto, es posible
ejecutar simultáneamente múltiples
instrucciones, si éstas se encuentran todas en
distintas fases o etapas de ejecución.

Hay dos métodos básicos para lidiar con los


errores durante el “pipelining”:
1. Go back n
2. Selective repeat
41

„ A) Efecto de un error cuando la ventana del


receptor es de tamañ
tamaño 1
„ B) Effecto de un error cuando la ventana del
receptor es grande.
grande.

42

21
Protocolos de ventana
deslizante

Go back n que el receptor simplemente descarte


todas las tramas subsecuentes sin enviar
aceptación para las tramas descartadas. 43

Protocolos de ventana
deslizante

Selective repeat consiste en hacer que la capa


de enlace de datos receptora almacene todas
las tramas correctas seguidas de la errónea.
44

22
Protocolo de ventana deslizante
a un bit
„ Utiliza para y espera (stop-and-wait).
„ Quien inicia toma el paquete de su capa, construye
una trama y la envía.
„ La capa la recibe, la revisa:
trama=esperada => trama a capa de red
y
ventana receptor avanza (desliza)

„ Por cada trama recibida se regresa otra (ack).


„ Num (campo de acceso) =! Num (secuencia de
transmisión)
=> transmisor sigue intentando
„ Las 2 capas inician igual => Problema de
sincronización 45

Protocolos que usan


Go back n y Selective Repeat
„ Tiempo de transmisión a un bit causa repercusiones en el
aprovechamiento del ancho de banda.
„ La solución:
transmisor envíe w tramas antes de bloquearse
(mediante pipeline)
„ Envío de tramas por canal inestable => Problemas
¿Que sucede si una trama se daña o se pierde a la mitad de
una serie larga?
„ Existen dos enfoques para manejo de errores en
entubamiento:
> Regresar n
> Repetición selectiva

46

23
Protocolo Go back n

„ El receptor solo acepta la trama siguiente a


entregar a la capa de red, descartando las
demás.
„ Ventana de recepción de tamaño 1.
„ Ventana del transmisor llena (antes de terminar
el temporizador) => el pipeline comienza a
vaciarse
„ El transmisor deja de esperar
=> retransmitirá las tramas no reconocidas
en orden (iniciando con la dañada)
„ Si hay tasa de error alta => desperdicio de ancho
de banda
47

Protocolo Selective Repeat

„ La capa de enlace de datos receptora


almecena todas las tramas a continuación de
la equivocada.
„ El transmisor se percata del error
=> sólo retransmite el malo
„ La receptora podrá entregar rápidamente las
tramas almacenadas.
„ Venatana de recepción mayor a 1.
„ Mayor memoria en capa de enlace de datos.

48

24
Especificación y Verificación de
los Protocolos
Modelos de Má
Máquina de Estado Finito

„ Cada tx ó rx siempre está en un edo específico


„ Estado – los valores de sus variables (inc. contador
prog)
„ Edo = instante en que la máq. espera por un evento
„ Edo transitorio = pasos hacia un edo principal
„ Edo canal - determinado por su contenido
„ Edo sistema = combinación de los edos de las 2 máqs
(tx y rx) y del canal
„ Una transición ocurre cuando sucede algún evento.
„ Para cada estado hay 0 o más transiciones posibles.
49

Protocolo de
Máquina de Estados Finitos
„ Existe un edo inicial.

„ Análisis de asequibilidad (reachability)


ayuda a determinar si el protocolo es o no
correcto.

„ Un modelo de maq de edo finito puede


considerarse como un cuádrupla (S, M, I, T)
donde:
S --> {edos posibles}
M --> {tramas}
I --> {edos iniciales}
T --> {transiciones}

50

25
Protocolo de
Máquina de Estados Finitos
„ El análisis de asequibilidad se puede usar para
detectar una variedad de errores en la
especificación del protocolo. Por ejemplo:
- Si hay una trama en un cierto estado y que la máquina
de estados finitos no diga que acción debería tomar, la
especificación está incompleta.
- Si hay un conjunto de estados sin “salida” y no se puede
hacer nada, hay un “deadlock”.
- Un caso donde la especificación del protocolo dice como
manipular un evento en un estado que no puede ocurrir.

51

Ejemplo

„ Cada tx o rx –
2 estados, cada
canal – 4
estados
„ Cada estado
(X,Y,Z)
„ X – (0,1) trama
que sx trata de
enviar
„ Y – (0,1) trama
tx espera
recibir
„ Z – (0,1,A,-)

52

26
Modelo de Máquina
de Estados Finitos

„ Propiedades que debe tener un protocolo de 1 bit:


1) No existir trayectoria desde el edo inicial en la que
sucedan dos transiciones 1 sin que ocurra una
transición 3 entre ellas, o al reves.

2) No existir trayectorias en las que el transmisor


pueda cambiar de edo 2 veces mientras el edo receptor
permanezca constante.

3) Ausencia de “deadlocks” (interbloqueos).

53

Modelo de Máquina
de Estados Finitos
„ Interbloqueo = situación en la que el protocolo no
puede seguir entregando paquetes a la capa de red.

En terminos gráficos se caracteriza por la existencia


de un subconjunto de edos que es alcanzable desde el
edo inicial y que tiene dos propiedades:
1.- No hay transición hacia fuera del subconjunto
2.- No hay transiciones en el subconjunto que
causen un avance
„ En interbloqueo el protocolo permanece ahí
eternamente.

54

27
Modelos de Red de Petri

„ Una red de Petri tiene 4 elementos básicos:


1) Lugares
2) Transiciones
3) Arcos
4) Señales (tokens)
„ Lugar = Estado en el cual el sistema puede estar

Red de Petri con dos estados y dos transiciones


55

Modelos de Red de Petri

„ Cada transición tiene 0 o más arcos de entrada/salida,


los cuáles se derivan de sus lugares de entrada/salida
respectivamente.

„ Si hay cuando menos un token de entrada en cada


lugar de entrada => transición habilitada.

56

28
Modelos de red de Petri
„ Si los num de arcos de e/s son dif., los tokens no se
conservarán
„ Si se habilitan 2 o más transiciones, cualquiera puede
dispararse
„ La decisión de disparo es indeterminada; por esto las
redes son útiles para modelar protocolos.
„ En una red no hay edos compuestos.
„ Las redes también ayudan a detectar fallas de protocolo.
„ Interbloqueo (red de Petri) = Interbloqueo (máq edo
finito).
„ Las redes pueden representarse algebraicamente.
57

58

29
Ejemplos de protocolos de Enlace
de Datos
„ HDLC - High Level Data Link Control
„ La capa de Enlace en Internet
• SLIP – Serial Line IP
• PPP – Point-to-Point Protocol
„ La capa de Enlace en ATM
• Transmisión de celdas
• Recepción de celdas

59

HLDC

„ Protocolo “antiguo”, en uso actualmente para X.25


„ Orientados a bit, usan relleno de bits para
transparencia de los datos
„ Estructura de trama para protocolos orientados a bits:

Bits 8 8 8 ≥0 16 8
01111110 Address Control Data Checksum 01111110

„ Control – nums de seccuencia, acks


„ Datos – Información arbitraria, varía en tamaño
„ Checksum – mínima variación del CRC

60

30
HLDC
Bits
1 3 1 3
a) 0 Seq P/F Next
„ Seq – núm.
Secuencia
b) 1 0 Type P/F Next „ P/F – Poll/Final –
Cuando se censa
un grupo de
c) 1 1 Type P/F Modifier terminales (P indica
invitación a enviar
Campo de control de a) una trama de información, datos)
b) trama supervisora y c) una trama no numerada.
„ Type – Indica tipos
de tramas
„ 3 tipos de tramas: De información, supervisión
supervisión y no numeradas (Ver fig.) „ Next – Primera
„ El protocolo usa ventana corrediza, con trama no recibida
número de secuencia de 3 bits.
61

SLIP y PPP

„ Dos protocolos populares para las conexiones de Internet


temporales entre los PCs de usuarios y los proveedores de
servicios de Internet

„ Se pueden usar para las conexiones entre ruteadores sobre


líneas dedicadas en la subred de la Internet.

62

31
SLIP

„ SLIP (de 1984) es muy sencillo. Se mandan paquetes “crudos” de


IP (es decir, paquetes del nivel de la red) sobre la línea, con un byte
de bandera al fin para indicar las tramas. Se usa el relleno de
caracteres para el caso donde el byte de bandera ocurre dentro de
los datos de un paquete. Algunas versiones nuevas de SLIP apoyan
la compresión de encabezamientos de TCP y IP, aprovechando el
hecho que los paquetes consecutivos normalmente tienen muchos
campos comunes. Pero SLIP tiene algunos problemas:
• No provee ninguna detección de errores.
• Apoya solamente IP.
• Cada lado tiene que saber la dirección IP del otro antes.
• No provee ningún sistema de autenticación.
• Hay muchas versiones incompatibles.

63

PPP

„ PPP se aplica a las deficiencias de SLIP. Provee tres


cosas:
• Un sistema de entramado que distingue el fin de una trama y el
inicio de la próxima, que también maneja la detección de errores.
• Un protocolo de control de enlace (LCP, Link Control Protocol)
para subir una conexión, probarla, negociar opciones, y bajarla.
• Un método para negociar opciones del nivel de red que es
independiente del protocolo de nivel de red usado. Hay un
protocolo de control de red (NCP, Network Control Protocol)
para cada clase de nivel de red apoyada.

64

32
PPP

„ Εn una trama de PPP:


• El campo de dirección es normalmente constante.
• El campo de control también es normalmente constante
e indica un servicio de datagrama (no confiable y sin
acuses de recibo), pero se pueden negociar servicios
confiables con tramas enumerados en ambientes
ruidosos.
• El campo de protocolo indica el tipo de paquete (por
ejemplo, LCP, NCP, IP, AppleTalk, etc.).
• El campo de datos tiene una longitud variable hasta
algún máximo negociado.

65

33

Vous aimerez peut-être aussi