Documente Academic
Documente Profesional
Documente Cultură
4 edicin
Captulo 11
Control de enlace de datos
11.1
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
La transmisin de datos en el nivel fsico significa mover los bits en forma de seal de un origen a un destino. El nivel fsico adems proporciona sincronizacin a nivel de bit para asegurar que el emisor y el receptor usen la misma duracin de bit y temporizacin.
11.3
El nivel de enlace de datos necesita empaquetar los bits en tramas (como una carta). El mensaje entero no se empaqueta en una sola trama, debido a que esto hara el control de flujo y de errores ineficiente. Temas a tratar en esta seccin:
Tramas de tamao fijo (tamao es el delimitador: ATM) Tramas de tamao variable (comn en LAN) - Aproximacin orientada a carcter - Aproximacin orientada a bit
11.4
Con tramas de tamao variable es necesario definir el final de una trama y el principio de la siguiente. Histricamente se han usado dos aproximaciones para conseguir este objetivo: Aproximacin orientada a carcter Aproximacin orientada a bit.
11.5
Cabecera
Cola
Los datos a transportar son caracteres de 8 bits (ASCII). La cabecera y la cola son mltiplos de 8 bits. El flag (caracter no usado en el texto) indica el inicio y el final de una trama.
11.6
Nota
La transparencia a nivel de byte es el proceso de aadir un byte extra cada vez que hay un carcter de flag o un escape en el texto.
11.7
Cualquier patrn usado como flag podra ser parte de los datos. Para resolver el problema se usa transparencia a nivel de byte (byte stuffing)
11.8
Cabecera
Cola
Se emplea el flag 01111110 como delimitador. Para resolver el problema de la presencia de flags dentro de los datos se realiza relleno de bits (bit stuffing)
11.9
Nota
La transparencia de bit es el proceso de aadir un 0 extra siempre que aparecen cinco unos consecutivos despus de un 0 en los datos, de forma que el receptor no confunda el patrn 01111110 con un flag.
11.10
11.11
Las responsabilidades ms importantes del nivel de enlace son: el control de flujo y el control de errores. Colectivamente estas funciones se conocen como control del enlace de datos. Temas a tratar en esta seccin:
- Control de flujo - Control de error
11.12
Nota
El control de flujo define un conjunto de procedimientos usados para restringir la cantidad de datos que el emisor puede enviar antes de esperar una confirmacin.
11.13
Nota
El control de error en el nivel del enlace se basa en una peticin de repeticin automtica (ARQ), que es la retransmisin de los datos.
Control de error: Deteccin ms correccin
11.14
11-3 PROTOCOLOS
La capa de enlace de datos combina el entramado, el control de flujo y el control de error haciendo uso de protocolos. Los protocolos se implementan normalmente en software usando algn lenguaje de programacin. Para conseguir que esta exposicin sea independiente del lenguaje, se ha escrito en pseudocdigo una versin de cada protocolo, que se concentra principalmente en el procedimiento en lugar de preocuparse por los detalles del lenguaje.
11.15
11-3 PROTOCOLOS
Por sencillez, los protocolos tratados son unidireccionales. Los datos viajan de un nodo emisor a uno receptor. Tramas especiales para el control de flujo y de errores llamadas ACK y NAK fluyen en direccin opuesta. ACK: Acuse de recibo NAK: Acuse de recibo negativo En las redes de la vida real, los protocolos son bidireccionales. Los ACK y NAK se incluyen dentro de las tramas de datos (superposicin de confirmaciones: piggybacking).
11.16
Protocolos Protocolos
Para canales Para canales sin ruido sin ruido Simplest Parada y espera
11.17
11.18
PROTOCOLO SIMPLEST
Las tramas de datos viajan solo del emisor al receptor (protocolo unidireccional). Se asume que el receptor puede gestionar inmediatamente cualquier trama que reciba. El nivel de enlace del receptor quita la cabecera de la trama y enva los datos al nivel de red, el cual tambin puede aceptar el paquete inmediatamente. El receptor nunca puede ser desbordado por las tramas entrantes.
11.19
Figura 11.6 El diseo de un protocolo muy sencillo sin control de flujo o error
El nivel de enlace usa los servicios proporcionados por el nivel fsico (sealizacin, multiplexacin, etc.) para la transmisin de los bits.
11.20
11.21
11.22
Ejemplo 11.1
La Figura 11.7 muestra un ejemplo de comunicacin usando este protocolo. Es muy sencillo. El emisor enva una secuencia de tramas sin pensar en el receptor. Para enviar tres tramas, ocurren tres eventos en el emisor y tres en el receptor. Observe que las tramas de datos se muestran tramadas; la altura de la caja define la diferencia entre el tiempo de transmisin del primer bit y el del ltimo bit de la trama.
11.23
Emisor
Recepto r
Peticin
Llegada
Tiempo
Tiempo
11.24
Si las tramas llegan al receptor ms rpido de lo que pueden ser procesadas, deben ser almacenadas hasta que se usen. Si no se tiene suficiente espacio de almacenamiento, podra suceder que se descarten tramas o se denegara el servicio. Se requiere por tanto una realimentacin del receptor al emisor para controlar el flujo. El emisor enva una trama y se para hasta que recibe confirmacin del receptor. Luego enva la siguiente.
11.25
Todava se tiene comunicacin unidireccional para las tramas de datos, pero las tramas ACK viajan en la otra direccin
11.26
11.27
Algoritmo 11.4 Algoritmo del receptor para el protocolo con parada y espera
11.28
Ejemplo 11.2
La Figura 11.9 muestra un ejemplo de comunicacin usando este protocolo. Sigue siendo muy sencillo. El emisor enva una trama y espera la respuesta del receptor. Cuando llega un ACK, el emisor enva la trama siguiente. Observe que enviar dos tramas en el protocolo genera cuatro eventos para el emisor y dos eventos para receptor.
11.29
Peticin Llegada
Llegada
Peticin Llegada
Llegada
Tiempo
Tiempo
11.30
Para detectar y corregir las tramas corruptas, es necesario aadir bits de redundancia. Si la trama llega corrupta al receptor, se descarta en silencio (forma de manejar los errores). La trama recibida podra ser: la correcta, una duplicada, o una fuera de orden. La solucin es numerar las tramas. Una trama fuera de orden significa trama perdida o duplicada.
11.32
Nota
La correccin de errores en ARQ con parada y espera (Stop-and-wait ARQ) se hace manteniendo una copia de la trama enviada y retransmitiendo la trama cuando expira el temporizador.
11.34
Nota
En ARQ con parada y espera se usan los nmeros de secuencia para numerar las tramas. Los nmeros de secuencia se basan en aritmtica mdulo 2.
11.35
Nota
En ARQ con parada y espera el nmero de confirmacin siempre anuncia el nmero de secuencia de la siguiente trama esperada en aritmtica mdulo 2.
11.36
11.37
Algoritmo 11.5
11.38
Algoritmo 11.6 Algoritmo del receptor para el protocolo ARQ con parada y espera
11.39
Ejemplo 11.3
La Figura 11.11 muestra un ejemplo de ARQ con parada y espera. Se enva la trama 0 y se recibe confirmacin. La trama uno se pierde y se reenva despus del temporizador. La trama uno reenviada se confirma y se para el temporizador. La trama 0 se enva y es confirmada, pero se pierde la confirmacin. El emisor no tiene idea de si se ha perdido la trama con la confirmacin, por ello despus del temporizador reenva la trama 0, que es confirmada.
11.40
11.41
Ejemplo 11.4
Asuma que, en un sistema ARQ con parada y espera, el ancho de banda de la lnea es 1 Mbps y que un bit necesita 20 ms para ida y vuelta. Cul es el producto ancho de banda-retardo? Si las tramas de datos del sistema tienen una longitud de 1000 bits cul es el porcentaje de utilizacin del enlace? Solucin El producto ancho de banda-retardo es
11.42
11.43
Ejemplo 11.5
Cul es el porcentaje de utilizacin del enlace del Ejemplo 11.4 si tenemos un protocolo que pueda enviar hasta 15 tramas antes de parar y preguntar por las confirmaciones? (pipelining) Solucin El producto ancho de banda-retardo sigue siendo 20.000 bits. El sistema puede enviar hasta 15 tramas, o 15.000 bits, durante un viaje de idea y vuelta. Esto significa que la utilizacin es 15.000/20.000 o un 75%. Por supuesto, si hay tramas daadas el porcentaje de utilizacin es mucho menor porque es necesario reenviar tramas.
11.44
Nota
En el protocolo vuelta atrs N, los nmeros de secuencia son mdulo 2m, donde m es el tamao del campo de nmero de secuencia en bits.
11.46
VENTANA DESLIZANTE
Concepto abstracto que define el rango de nmeros de secuencia que usan el emisor y el receptor. Corresponde al nmero mximo de tramas que puede enviar el emisor antes de recibir confirmacin. El tamao mximo de la ventana es 2m -1. Algunos protocolos pueden tener una ventana de tamao variable.
11.47
11.48
Nota
La ventana de envo es un concepto abstracto que define una caja imaginaria de tamao 2m - 1 con tres variables: Sf, Sn y Ssize.
11.49
Nota
La ventana de envo puede deslizarse una o ms entradas cuando llega una confirmacin vlida
11.50
Cualquier trama que llegue fuera de orden se descarta en silencio y debe ser reenviada.
11.51
Nota
La ventana de recepcin es un concepto abstracto que define una caja imaginaria de tamao 1 con una nica variable Rn. La ventana desliza cuando llega una trama correcta; el desplazamiento slo se produce en una entrada cada vez.
11.52
11.53
11.55
Nota
En ARQ con vuelta atrs N el tamao de la ventana de envo debe ser menor que 2m; el tamao de la ventana del receptor es siempre 1.
11.56
Algoritmo 11.7 Algoritmo del emisor para el protocolo ARQ con vuelta atrs N
/ / tamao de la ventana SW
<
11.57
Algoritmo 11.7 Algoritmo del emisor para el protocolo ARQ con vuelta atrs N
Sf
11.58
Algoritmo 11.7 Algoritmo del receptor para el protocolo ARQ con vuelta atrs N
11.59
Ejemplo 11.6
La Figura 11.16 muestra un ejemplo de un vuelta atrs N. Este es un ejemplo de un caso en el que el canal hacia adelante es fiable, pero el inverso no. No se pierden tramas de datos, pero algunos ACK se retrasan y uno se pierde. El ejemplo tambin muestra cmo las confirmaciones acumuladas pueden ayudar si las confirmaciones se retrasan o se pierden.
11.60
11.61
Ejemplo 11.7
La Figura 11.17 muestra lo que pasa cuando se pierde una trama. Las tramas 0, 1, 2 y 3 son enviadas; sin embargo, la trama 1 se pierde. El receptor recibe las tramas 2 y 3, pero se descartan porque se reciben fuera de orden (se espera la trama 1). El emisor no recibe confirmacin sobre las tramas 1, 2 o 3. Finalmente expira su temporizador. El emisor enva todas las tramas pendientes (1, 2 y 3) porque no sabe lo que ha ido mal. Observe que reenviar las tramas 1, 2 y 3 es la respuesta a un nico evento. Cuando el emisor responde este evento, no puede aceptar el disparo de otros eventos. Esto significa que cuando ACK 2 llega, el emisor est todava ocupado enviando la trama 3.
11.62
11.64
Nota
ARQ con parada y espera es un caso especial de ARQ con vuelta atrs N, en el que el tamao de la ventana de envo es 1.
11.65
Tramas ya confirmadas
11.66
Tramas ya recibidas
Tramas que pueden ser recibidas y almacenadas para entrega posterior. Las cajas tramadas ya se han recibido
11.67
11.68
11.69
Nota
En ARQ con repeticin selectiva, el tamao de las ventanas del emisor y del receptor deben ser como mximo la mitad de 2m.
11.70
IniciarTemporizador (Sn); Sn = Sn + 1;
11.71
ackNo entre
11.72
11.73
11.74
11.75
11.76
a. Antes de entregar
b. Despus de la entrega
11.77
11.78
11.79
11-6 HDLC
Control de enlace de datos de alto nivel (HDLC Highlevel Data Link Control ) es un protocolo orientado a bit sobre enlaces punto a punto y multipunto. Implementa los mecanismos ARQ tratados en este captulo. Temas a tratar en esta seccin:
Configuracin y modos de comunicacin Tramas Campos de control
11.80
HDLC proporciona dos modos de comunicacin: Modo de respuesta normal (NRM) Configuracin desbalanceada. Una estacin primaria puede enviar comandos; una estacin secundaria solo puede responder. Se usa para enlaces punto a punto y multipunto. Modo Asncrono Balanceado (ABM) Configuracin balanceada. El enlace es punto a punto y cada estacin puede funcionar como primaria o secundaria (forma habitual)
11.81
Respuesta
a. Punto a punto
Secundaria Primaria Comando Secundaria
Respuesta
Respuesta
b. Multipunto
Configuracin desbalanceada
11.82
Combinada
Combinada
Comando/respuesta
Comando/respuesta
11.83
Tipos de tramas
Tramas I Transportan datos de usuario e informacin de control relacionada con datos de usuario. Tramas S Transportan informacin de control relacionada con flujo de datos del nivel de Enlace y con el control de errores. Tramas U Se usan para gestin del sistema (para gestionar el propio enlace)
11.84
Trama de informacin
Trama de supervisin
Trama no numerada
Formato de trama
11.85
Campos de la trama
Banderas de inicio y final (flags) Secuencia de 8 bits (01111110), que identifica tanto el inicio como el final de una trama. Direccin Direccin de la estacin secundaria que es origen o destino de la trama. Este campo puede tener uno o varios bytes de longitud. Todos estos bytes, excepto el ltimo terminan en 0. Control Segmento de uno o 2 bytes en una trama que se usa para control de flujo y de errores.
11.86
Campos de la trama
Campo de informacin Contiene los datos de usuario procedentes del nivel de red o informacin de gestin. Su longitud vara de una red a otra. Secuencia de comprobacin de trama FCS (Frame Check Secuence) Campo empleado para la deteccin de errores. Puede contener un CRC de 2 o 4 bytes (UIT-T)
11.87
Figura 11.28 Formato del campo de control para los distintos tipos de tramas
Trama I
Transportan datos desde el nivel de red
11.88
Campo de control
Determina el tipo de trama y define su funcionalidad. Su formato es especfico para cada tipo de trama. Campo de control de trama I El primer bit define el tipo de trama (0: trama I). Los tres bits siguientes N(S) son el nmero de secuencia para la trama. En el formato extendido este campo es de 2 bytes. Los bits N(R) son el campo de reconocimiento cuando se usa piggybacking. El bit P/F solo es activo cuando est en 1 y significa sondeo/final.
11.89
Campo de control
El bit P/F en 1, en modo NRM indica sondeo cuando se enva del primario a secundario y final en la ltima trama de respuesta del secundario. Campo de control de trama S Las tramas S se emplean para control de flujo y errores cuando el piggybacking no es posible o no es apropiado (no hay datos para enviar o se requiere responder o enviar algo distinto a confirmacin).
11.90
Campo de control
Campo de control de trama S (cont..) Subcampos: 10: identificacin de trama S Cdigo: (2 bits) define el tipo de trama dentro de las S. RR: Listo para recibir + ACK RNR: Receptor no listo para recibir + ACK REJ: Rechazo (NAK de vuelta atrs N) SREJ: Rechazo selectivo (NAK de rep. selectiva) N(R): nmero de confirmacin (ACK) o de rechazo (NAK). Depende del tipo de trama. P/F: Sondeo/final
11.91
Campo de control
Campo de control de trama S (cont..)
Subcampo cdigo: RR (00): Listo para recibir Confirma la recepcin de una o ms tramas. N(R) define el nmero de confirmacin. RNR (10): Receptor no listo para recibir Similar a RR pero adems anuncia que el receptor est ocupado y no puede aceptar ms tramas.
11.92
Campo de control
Campo de control de trama S (cont..) Subcampo cdigo: REJ (01): Rechazo Trama NAK para ARQ con vuelta atrs N. N(R) es el nmero de confirmacin negativo. SREJ (11): Rechazo selectivo Trama NAK para ARQ con repeticin selectiva. N(R) es el nmero de confirmacin negativo.
11.93
Campo de control
Campo de control de trama U Las tramas U se usan para intercambiar informacin de control y de gestin de la sesin. La trama U contiene un campo de informacin de gestin del sistema. Pero la mayor parte de la informacin de control est contenida en el campo de control. Los cdigos se dividen en dos secciones: Prefijo: 2 bits (antes de P/F) Sufijo: 3 bits (despus de P/F)
11.94
Figura 11.28 Formato del campo de control para los distintos tipos de tramas
Trama I
11.95
11.96
Trama U
Establecimiento de conexin
Trama U
Liberacin de conexin
Trama U
Tiempo
Tiempo
11.97
Ejemplo 11.9
La Figura 11.29 muestra cmo se pueden usar las tramas U para el establecimiento y la liberacin de una conexin. El nodo A pide una conexin con una trama de tipo activacin de modo de respuesta asncrona balanceada (SABM); el nodo B da una respuesta positiva con una trama de reconocimiento sin numerar (UA). Despus de estos dos intercambios se pueden transferir datos entre los dos nodos. Despus de la transferencia de datos, el nodo A enva una trama DISC (desconectar) para liberar la conexin; es confirmado por el nodo B respondiendo con una trama de reconocimiento sin numerar (UA).
11.98
(trama de datos 0)
Trama I
(trama de datos 1)
Trama I
(trama de datos 0)
Trama I
(trama de datos 1)
Trama I
(trama de datos 2)
Trama S
Tiempo
Tiempo
11.99
Ejemplo 11.10
La Figura 11.30 muestra un intercambio usando piggybacking. El nodo A comienza intercambio de informacin con una trama I numerada 0 seguida por otra trama I numerada 1. El nodo B empotra su confirmacin de ambas tramas dentro de una trama I de su propiedad. la primera trama I del nodo B tambin se numera 0 [campo N(S)] y contiene un 2 en su campo N(R), confirmando la recepcin de las tramas 1 y 0 de A e indicando que espera que la siguiente trama que llegue sea la 2.
11.100
11.102
Ejemplo 11.11
La Figura 11.31 muestra un intercambio en el que se pierde una trama. El nodo B enva tres tramas de datos (0, 1 y 2), pero la trama 1 se pierde. Cuando el nodo A recibe la trama 2, la descarta y enva una trama REJ para la trama 1. Observe que el protocolo que se usa es vuelta atrs N con el uso especial de una trama REJ como una trama NAK. La trama NAK hace aqu dos cosas: confirma la recepcin de la trama 0 y declara que la trama 1 y cualquiera siguiente debe ser reenviada. El nodo B, despus de recibir la trama REJ, reenva las tramas 1 y 2. El nodo A confirma la recepcin enviando una trama RR (ACK) con confirmacin el nmero 3.
11.103
11.104
I,2,0 I,3,0
I,3,0
11.105
Servicios proporcionados por PPP: 1. Define el formato de la trama que se intercambia entre dispositivos. 2. Define cmo dos dispositivos pueden negociar el establecimiento del enlace y el intercambio de datos. 3. Define cmo se encapsulan los datos de nivel de red en una trama de nivel de enlace. 4. Define como dos dispositivos se pueden autenticar entre s.
11.107
Servicios proporcionados por PPP (cont..) 5. Proporciona mltiples servicios de nivel de red y soporta una variedad de protocolos de nivel de red. 6. Proporciona conexiones sobre mltiples enlaces. 7. Proporciona configuraciones de direccin de red.
11.108
Flag
Direccin
Control
Protocolo
Carga til
FCS
Flag
Opcionales
Mximo 1500 B
(Puede negociarse) (Puede requerir relleno)
(CRC)
01111110
Nota
PPP es un protocolo orientado a byte que usa transparencia de bytes con la secuencia de escape 01111101.
11.111
LCP
LCP
AP
NCP
11.112
Transicin de fases
Muerto El enlace no se usa. No hay portadora activa. Establecer Comienza cuando uno de los dos inicia la comunicacin. Se establece el enlace y se negocian las opciones. Autenticar Opcional. Se llega a esta fase o a la de red, si la negociacin tiene xito.
11.113
Red Tiene lugar la negociacin de los protocolos de nivel de red. PPP soporta muchos protocolos de ese nivel. Abrir Fase de transferencia de datos. Terminar Se inicia cuando uno de los extremos desea terminar. Se corta la conexin. Se limpian los buffers y se cierra el enlace.
11.114
Multiplexacin
PPP usa otro conjunto de protocolos para: - Establecer el enlace (LCP: Link Control Protocol) - Autenticar a los socios involucrados (APs: Autentication Protocols) - Configurar los protocolos de nivel de red (NCP: Nertwork Control Protocol). El paquete puede llevar datos de uno cualquiera de estos protocolos. Los datos tambin pueden venir de distintos protocolos de red.
11.115
Datos
Nivel de enlace
Direccin
LCP: Protocolo de control de enlace AP: Protocolo de autenticacin NCP: Protocolo de control de red
11.116
Tipo de paquete
Paquete LCP
Cdigo ID
Longitud
Informacin
Flag Direccin
Control
0xC021
FCS
Flag
LCP es responsable de establecer, mantener, configurar y terminar enlaces y proporciona mecanismos de negociacin.
11.117
Categoras
Para configuracin del enlace durante el establecimiento Para terminar el enlace Para monitoreo y depuracin del enlace
11.118
Las opciones se insertan en el campo de informacin de los paquetes de configuracin. El campo informacin se divide en tres subcampos: tipo de opcin, longitud de opcin y datos de la opcin.
11.119
Protocolos de Autenticacin
Son muy importantes en PPP. PPP est diseado para uso sobre enlaces de marcado donde es necesario verificar la identidad del usuario para que ste acceda a ciertos recursos. Existen dos protocolos de autenticacin en PPP: - PAP: Protocolo de autenticacin por contrasea
(Password authetication protocol )
Utiliza un proceso de dos pasos: 1. El usuario que quiere acceder al sistema enva una identificacin de autenticacin (normalmente el nombre de usuario) y una contrasea. 2. El sistema comprueba la validez de la identificacin y de la contrasea y acepta o no la conexin.
11.121
11.122
Proceso de tres pasos (cont.): 3. El sistema aplica la misma funcin a la contrasea del usuario (conocida por el sistema) y a la trama de reto para crear un resultado. Si el resultado es el mismo que el resultado enviado en el paquete de respuesta, se garantiza el acceso; en caso contrario se deniega.
11.124
11.125
Ninguno de los paquetes NCP lleva datos de nivel de red. Estos protocolos slo configuran el enlace al nivel de red para los datos que llegan de acuerdo con el protocolo de red.
11.127
Tipo de paquete
Paquete IPCP
Cdigo ID
Longitud
Informacin IPCP
Flag
Direccin
Control
0x8021
FCS
Flag
11.128
11.129
Paquete IP
Cabecera
Datos de usuario
Flag
Direccin
Control
0x0021
FCS
Flag
11.131
PPP multi-enlace
PPP se dise originalmente para un enlace fsico punto a punto con un nico canal. La disponibilidad de mltiples canales en un nico enlace punto a punto motiv el desarrollo del PPP multienlace. En este caso, una trama PPP lgica se divide en varias tramas PPP reales. Para mostrar que la trama PPP real transporta un fragmento de una trama PPP lgica, el campo de protocolo se pone a 0x003D.
11.132
PPP Lgica
Carga til
Canal 2
Carga til Carga til
11.133
11.134
11.135
Ejemplo 11.12
Vamos a recorrer las fases seguidas por un paquete de nivel de red transmitido a travs de una conexin PPP (Figura 11.41). Por simplicidad se asume un movimiento unidireccional de los datos desde el lado del usuario al lado del sistema (tal como enviar un e-mail a travs de un ISP).
Las dos primeras tramas muestran el establecimiento de enlace. Se ha elegido usar PAP para autenticacin y suprimir los campos de control y de direccin (no mostrados). Las tramas 3 y 4 son para autenticacin. Las tramas 5 y 6 son para establecer la conexin del nivel de red usando IPCP.
11.136
Ejemplo 11.12(continuacin)
Las tramas siguientes muestran como algunos paquetes IP se encapsulan en tramas PPP. El sistema (receptor) puede tener funcionando varios protocolos de nivel de red, pero sabe que los datos que llegan deben ser entregados al protocolo IP porque el protocolo NCP usado antes de la transferencia de datos era IPCP. Despus de la transferencia de datos, el usuario termina la conexin del enlace, que es confirmada por el sistema. El usuario del sistema podra haber elegido terminar el IPCP de nivel de red y mantener el nivel de enlace funcionando si quisiera utilizar otro protocolo NCP.
11.137