Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito...
Transcript of Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito...
1
Capa de Enlace de Datos
Propósito
Su objetivo es proporcionar un medio de comunicación que parezca libre de erroresPara ello, se implementan diversos algoritmos de detección y corrección de erroresLo anterior se debe a que los dispositivos que colocan los bits en el medio, así como el medio mismo ocasionalmente inducen erroresPor otra parte, también intervienen los factores externos
2
Propósito
Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red, estableciendo como se agrupan los bits en “marcos”Otra tarea desempeñada es regular el flujo de datos, para no saturar a receptores “lentos” con transmisores “rápidos”
Servicios
Normalmente se ofrecen tres tipos de servicio:
Servicio si acuse sin conexión: se emiten los marcos sin pedir un acuse de recepciónServicio con acuse sin conexión: se emiten los marcos, esperando una confirmación de su llegadaServicio con acuse orientado a la conexión: se establece una conexión antes de realizar cualquier transmisión
3
Servicios
En el servicio orientado a la conexión, existen tres fases en la transferencia: establecimiento de la conexión, inicializando variables; flujo de marcos; cierre de la conexión, liberando variables, buffers, etcLos diversos servicios se ajustan de acuerdo a las características del medio
Marcos
En la capa de enlace de datos, los paquetes enviados reciben el nombre de marcosLos marcos sirven para tener un mayor control del flujo de los bits, verificando por cada marco la integridad de los bitsPara identificar los marcos, se han propuesto diversos método como:
Conteo de CaracteresCaracteres de inicio y fin, con relleno de caracteresIndicadores de inicio y fin, con relleno de bitsViolaciones de codificación de la capa física
4
Conteo de Caracteres
Aquí se inserta un carácter al inicio que indica cuantos caracteres contiene el marcoSu problema radica en que es fácil que se dañe el carácter de conteo
01342020 1511 06 33
Caracteres de Inicio y Fin
La técnica de caracteres de inicio y fin, con relleno de caracteres se basa en el código SCII, usando como caracteres especiales DLE STX (data link escape, start of text) para el inicio de un marco y, DLE ETX (end oftext) para la finalización de un marcoComo se trata de código ASCII, las secuencias ya expuestas pueden presentarse en la secuencia de datos
5
Caracteres de Inicio y Fin
Para resolver este problema, se suele insertar otro carácter DLE, con lo cual, al encontrarse dos DLE consecutivos, el receptor sabrá que debe de eliminar uno de ellos y, además, no se trata de caracteres de inicio o finPor ello, esta técnica se denomina de relleno de caracteres
Caracteres de Inicio y Fin con Relleno de Caracteres
DLE STX Z DLE DLE ETX
DLE STX Z DLE DLE ETXDLE
Carácter derelleno
DLE STX Z DLE DLE ETX
6
Indicadores de Inicio y Fin con Relleno de Bits
En esta técnica, no se esta sujeto a un tamaño de bits determinado, como en el código ASCIIEl procedimiento consiste en insertar la secuencia 01111110 al inicio y fin de cada marco (conocida como byte indicador)Para evitar que esta secuencia se repita dentro de los datos, si se encuentran 5 unos consecutivos, se inserta automáticamente un 0. Con ello, el byteindicador no se presentará en los datos
Indicadores de Inicio y Fin con Relleno de Bits
11011111100011101111100
01111110110111110100011101111100001111110
11011111100011101111100
7
Violación de Codificaciones en la Capa Física
Normalmente, en las redes locales se usa la transición alto – bajo para representar 1 y bajo – alto para representar un 0Para enmarcar, se usan las transiciones alto – alto o bajo – bajoÉste uso de los códigos de violación es parte del estándar LAN 802
Detección y Corrección de Errores
Para garantizar la correcta llegada de los datos al receptor, se pide que este retransmita un acuse de reciboSin embargo, no es suficiente con los acuses de recibo, ya que un marco completo puede perderse por algún problema que presente el medio; en tal situación, el receptor no emitiría ningún acuse de recibo negativo, con lo cual aparentemente no existiría ningún problema
8
Detección y Corrección de Errores
Para solventar este problema, además se introducen temporizadores, con los cuales, si después de cierto tiempo no se recibe un marco o acuse, se vuelve automáticamente a retransmitirLos temporizadores tienen que ver con la latencia, ya que se considera cuanto tiempo debe tomar, en condiciones normales, para que se propague un paquete, sea procesado por el receptor y retorne un acuse de recibo
Detección y Corrección de Errores
Sin embargo, notemos que lo anterior puede inducir a que un marco x sea procesado varias veces por el receptor, por lo que se deben incluir números de secuencia en los mismos
9
Tipos de Errores
En general, se identifican dos tipos de error: errores por ráfaga, errores aisladosSuponga que se envían 1000 bits (recuerde que los bits entre computadoras se envían por bloques) con una tasa de error del 0.001
Si los errores son aislados, cada bloque contendrá por lo menos un errorSi los errores son en ráfaga de 100, solo uno o dos bloques de cada 1000 contendrán errores
Detección y Corrección de Errores
Para detectar los errores, se pueden seguir dos estrategias al momento de enviar la información
Incluir suficiente información redundante, con lo cual se podrá deducir que es lo que se envió (detección y corrección de errores)Incluir solo cierto grado de redundancia, con el objetivo de determinar cuando un dato está corrupto (detección de errores)
10
Técnicas de Detección y Corrección de Errores
ParidadHammingCódigos de Redundancia cíclicaMessage Digest (MD5)RetransmisiónConvolucionales
Notación
Un marco generalmente esta integrado por k bits de datos y r bits redundantes o de comprobación de errorSe llama palabra código a aquella que consta de bits de datos y de comprobaciónn = k + r
11
Notación
Distancia de Hamming:Número de bits en los que difieren dos palabras códigoLa distancia de Hamming se representa por Hd
Cuando se transmiten un conjunto de datos, lo deseable es identificar de alguna manera aquellos que ha sufrido daños en el viaje
Detección de errores
Una palabra código en sí tiene 2n posibles valoresCualquier error o modificación que sufra una palabra código, resultará en otra palabra código diferentePor lo anterior, solo se busca tomar 2k palabras código válidas, en lugar de tomar las 2n palabras que se podrían normalmente generar
⇒ Solo algunas palabras serán válidas
12
Detección de Errores
La distancia de Hamming sirve para determinar cuantos bits son necesarios para que una palabra válida se transforme en otra palabra válidaLa capacidad de detección y corrección de errores depende de la distancia de Hamming
Detección de x errores: DH ≥ x +1Corrección de x errores: DH ≥ 2x +1
Detección de Errores
Por ejemplo, el método más simple para determinar si una palabra es valida o no, consiste en llevar un control de la paridadConsiste en agregar un 0 o 1 (información redundante), dependiendo de la paridad deseada
13
Control de Paridad
Existen dos formas básicas para el control de la paridad:
Paridad vertical o por carácter: se verifica la paridad de una sola palabraParidad longitudinal o transversal (en dos dimensiones): se obtiene la paridad de varias palabras, tanto horizontal como verticalmente
Paridad Vertical o por Carácter
Por ejemplo, suponiendo paridad par:
NUMERO NUMERO BIT PARIDAD100110101 100110101 1101110101 101110101 0
14
Paridad Vertical o por Carácter
¿ 0 ?00 1 Paridad
00001101
401101101
201100101
3100101101
12345678
Caracteres (Paridad Impar)NúmBit
Paridad Longitudinal
11001010
Paridad
1
01110101
5
¿ 0 ?001Paridad
00001101
401101101
201100101
3100101101
12345678
Caracteres (Paridad Impar)NúmBit
15
Código de Hamming
La información redundante es generada a partir del cálculo:
El vector c representa el código de Hammingresultante, i el vector binario de entrada DkDk-
1...D2D1 (bits de información) y G, la matriz generadora del código
Gic •=rr
Código de Hamming
Matriz generadora del códigoG = [Ikxk, P]
donde:Ikxk es la matriz identidad de k x kP es la matriz que caracterizará el código de dimensión k x (n - k)
16
Código de Hamming
Hamming propone una matriz P de dimensión k x r, donde:
r = int{log2(k)+1}Además:
n = k + rDe lo anterior, se puede señalar que el vector c se forma de:
]...|...[ 11 RRDDc rk=r
Código de Hamming
Los valores de la matriz P se obtienen de las posiciones base dos de los bits de información Dx después de haber insertado r = n – k bits de redundancia Rx en las posiciones potencias de dos
17
Código de Hamming
Ejemplo para 4 bits: D4D3D2D1
n = 4 + int {log2(4)+1} = 77 6 5 4 3 2 1D4 D3 D2 R3 D1 R2 R1
=
110|1000101|0100011|0010111|0001
G
Código de Hamming
Por ejemplo, suponga D4D3D2D1 = 1101
=⋅=
110|1000101|0100011|0010111|0001
]1101[Gicrr
[ ]010|1101=cr
18
Código de Hamming
El código redundante a transmitir estaría compuesto por los bits de información con los bits de redundancia intercalados:
7 6 5 4 3 2 11 1 0 0 1 1 0
Una forma opcional de calcular los bits de redundancia consiste en la suma módulo dos de las posiciones donde los bits de información son igual a uno
Código de Hamming
1R1
2R2
31
4R3
50
61
71
Unos en las posiciones 7, 6 y 3:
0 1 0
1 1 11 1 00 1 1
+
19
Código de Hamming
La detección / corrección de error es posible mediante el cálculo del síndrome del códigorecibido:
[ ]knTTT IPHHcs −=⋅= |rr
• Si se obtiene que el vector s es cero, se concluye que no hay error
Código de Hamming
Del ejemplo anterior: c = [ 1 1 0 1 | 0 1 0 ]
[ ]000
100010001
110101011111
=
−−−=⋅= cHcs T rrr
20
Código de Hamming
Una forma alternativa de calcular el síndrome es sumar las posiciones binarias con bits iguales a 1, incluyendo los 1’s de la redundancia:
1R1(0)
2R2(1)
31
4R3(0)
50
61
71
Unos en las posiciones:
7, 6, 3 y 2000
1010
1111
1100
+
Códigos de Redundancia Cíclica
Los códigos de Redundancia Cíclica son ampliamente usados dentro de las Redes de ComputadorasSe basan en el principio: “el desplazamiento cíclico (end – around) de cualquier palabra código de un código cíclico es otra palabra código en el código”
21
Códigos de Redundancia Cíclica
En estos códigos se emplea la aritmética polinomial módulo 2 sin acarreos; por tanto, la suma como la resta son idénticas a la operación OR exclusivaUn código cíclico (n, k) está definido por su polinomio generador
G(x) = g0 + g1x+ ... + gn-kxn-k
En redes como Ethernet, se emplean polinomios generadores ya definidos
Códigos de Redundancia Cíclica
Cada coeficiente gk representa un 0 o un 1 binario en una cadena de r bits
0: cuando gk es igual a 01: cuando gk es igual a 1
La cadena de r bits se forma a partir del coeficiente de mayor grado hasta el de menor gradoEl orden del polinomio lo determina el exponente de mayor grado
22
Códigos de Redundancia Cíclica
Por ejemplo, para el polinomioG(x)=x16+x15+x2+x+1
la secuencia de bits correspondientes es:11000000000000111
El polinomio G(x) determina la forma en la cual será modificado el mensaje original, que llamaremos M(x), con el objetivo de añadirle información redundante, con la cual se verificará su integridad
Códigos de Redundancia Cíclica
Si el mensaje original constaba de k bits, y el polinomio G(x) es de orden r, el marco enviado ahora será de n = k + r bitsEl objetivo es que los n bits sean exactamente divisibles por el mismo polinomio G(x) utilizado en el transmisorSi es el caso, se dice que no hubo alteración en los datos que se han transmitido
23
Códigos de Redundancia Cíclica
Para generar el código CRC de un mensaje M(x) con k bits y un polinomio G(x) con grado r, se procede como sigue:
Anexar r bits 0 al final del marco M(x). Llámese a este nuevo conjunto de bits B(x)Dividir B(x) entre G(x), usando la división módulo 2. Llámese Q(x) al cociente y R(X) al residuoRealizar la resta B(x) - R(x) = T(x) (aritmética módulo 2)
Códigos de Redundancia Cíclica
T(x) es el patrón de bits que el emisor envía al receptorDel lado del receptor, se verifica que T(x) sea divisible exactamente por G(x) (es decir, que el residuo de la división sea cero). Si es el caso, se dice que no ha sufrido alteración el patrón de bits
24
Códigos de Redundancia Cíclica
SeaM(x) = 100110G(x) = x2 +1
Calcular el campo de suma de comprobaciónUna vez calculado, verificar la integridad de la información transmitida
Códigos de Redundancia Cíclica
Es claro que este método no detectara errores que produzcan secuencias T(x)divisibles entre G(x)Para errores aislados de un bit, se podrán detectar en cualquier caso si r >1También tiene la cualidad de detectar errores en ráfaga menores a r; si la ráfaga genera r+1 errores, se detectará si esta es distinta de G(x)
25
Códigos de Redundancia Cíclica
Normalmente se ha empleado 3 polinomios para la detección de errores en las redes de computadoras:
CRC-12: x12+x11+x3+x2+x1+1CRC-16: x16+x15+x2+1CRC-CCITT: x16+x12+x5+1
Es importante notar que dichos polinomios contienen como factor primo a x+1
MD5
MD5 es una técnica que permite obtener una huella digital de una serie de datos de entradaCon la huella, se puede verificar la integridad de los datos, es decir, comprobar que no hayan sufrido alteraciónAdemás, puede emplearse para la validación de usuarios o procesos, aunque no es la más usada, a comparación de otras técnicas como RSA
26
Escenarios de Validación con MD5
Suponga el escenario de la contraseña de un usuario a un servidor
El usuario envía un ID de usuario al servidorEl servidor envía en mensaje aleatorio al usuarioEl servidor y el sistema del usuario hacen un cálculo MD5 del mensaje aleatorio y el passworddel usuarioEl sistema del usuario envía el mensaje MD5, y el servidor verifica que este coincida con el MD5 que ha obtenido. Si es el caso, se válida su contraseña
Integridad de Mensajes con MD5
Para verificar la integridad de un mensaje, se realiza lo siguiente:
Se realiza el cálculo MD5 del mensajeSe envía al receptor el mensaje junto con la huellaEl receptor saca la huella MD5 del mensaje recibido y lo compara con la huella enviada por el emisor. Si coinciden, los datos no ha sufrido alteraciones en el trayecto
27
Algoritmo MD5
El algoritmo MD5 recibe un mensaje m de cualquier tamaño, y de éste siempre obtiene una serie de 128 bits, que es “única” para cualquier mensajeEl algoritmo consta de 5 pasos, los cuales se describen a continuación
Algoritmo MD5
1. El mensaje m es rellenado con n bits, de tal manera que el nuevo mensaje, m’, tenga una longitud menor a 64 bits comparado con un múltiplo de 512 (bits).Para ello, el primer bit de relleno es un “1” y los restantes n-1 bits son “0”
28
Algoritmo MD5
2. La nueva longitud tras añadir los bits de relleno es almacenada en una representación de 64 bits y añadida al final del mensaje en forma de dos palabras de 32 bits, yendo en primer lugar la que contiene los bits menos significativos. Si la longitud del mensaje fuera mayor que 264, solamente se usan los 64 bits menos significativos. De esta manera, la longitud del mensaje es ahora múltiplo de 512.
Algoritmo MD5
3. Se inicializan 4 buffers de 32 bits con los siguientes valores hexadecimales:A: 01 23 45 67B: 89 ab cd efC: fe dc ba 98D: 76 54 32 10
29
Algoritmo MD5
4. El mensaje m será procesado en bloques m0, ..., mt-1, donde cada bloque mx consta de 512 bitsPara ello, se crean 4 funciones auxiliares, con 3 entradas de 32 bits y 1 salida de 32 bits, definidas como:
F(X,Y,Z) = (X AND Y) OR ((NOT(X)) AND Z) G(X,Y,Z) = (X AND Z) OR (Y AND (NOT(Z)) H(X,Y,Z) = X XOR Y XOR Z I(X,Y,Z) = Y XOR (X OR (NOT(Z)))
Algoritmo MD5
Además, se crea una tabla de 64 elementos T[1 ... 64] construida con la función seno, siendo T[i] la parte entera de 4294967296 * abs(sen(i))El proceso inicializará analizando el primer bloque m0 hasta mt-1. Cada bloque mx será dividido en sub-bloques de 16 bits, representados con mx
j, que indica al j-ésimosub-bloque de 16 bits del bloque mx.
30
Algoritmo MD5
Parta cada j (1 ≤ j ≤ 32) de cada bloque mxj
se hace:Se almacenan las variables A, B, C, D
AA = A, BB = B, CC = C, DD = D
Se crea una primera etapa donde la expresión [abcd k s i] denota la operación a = b + ((a + F(b,c,d) + mx
j[k] + T[i]) << s)NOTA: mx
j[k] representa el valor del k-ésimo bit, 0 o 1, del sub-bloque mx
j
Algoritmo MD5
Se realizan las operaciones siguientes (secuencial): [ABCD 0 7 1], [DABC 1 12 2], [CDAB 2 17 3], [BCDA 3 22 4], [ABCD 4 7 5], [DABC 5 12 6], [CDAB 6 17 7], [BCDA 7 22 8], [ABCD 8 7 9], [DABC 9 12 10], [CDAB 10 17 11], [BCDA 11 22 12], [ABCD 12 7 13], [DABC 13 12 14], [CDAB 14 17 15], [BCDA 15 22 16]
31
Algoritmo MD5
Usando ahora la expresión [abcd k s i] que denotaa = b + ((a + G(b,c,d) + mx
j[k] + T[i]) << s), seefectúan las 16 operaciones siguientes:[ABCD 1 5 17], [DABC 6 9 18], [CDAB 11 14 19], [BCDA 0 20 20], [ABCD 5 5 21], [DABC 10 9 22], [CDAB 15 14 23], [BCDA 4 20 24], [ABCD 9 5 25], [DABC 14 9 26], [CDAB 3 14 27], [BCDA 8 20 28], [ABCD 13 5 29], [DABC 2 9 30], [CDAB 7 14 31], [BCDA 12 20 32]
Algoritmo MD5
En una tercera etapa, usando [abcd k s t] como a = b + ((a + H(b,c,d) + mx
j[k] + T[i]) << s), se realizan las operaciones siguientes:[ABCD 5 4 33], [DABC 8 11 34], [CDAB 11 16 35], [BCDA 14 23 36], [ABCD 1 4 37], [DABC 4 11 38], [CDAB 7 16 39], [BCDA 10 23 40], [ABCD 13 4 41], [DABC 0 11 42], [CDAB 3 16 43], [BCDA 6 23 44], [ABCD 9 4 45], [DABC 12 11 46], [CDAB 15 16 47], [BCDA 2 23 48]
32
Algoritmo MD5
En una cuarta etapa, [abcd k s t] denota la operación a = b + ((a + I(b,c,d) + X[k] + T[i]) << s). En base a esta, se realizan las operacionesiguientes: [ABCD 0 6 49], [DABC 7 10 50], [CDAB 14 15 51], [BCDA 5 21 52], [ABCD 12 6 53], [DABC 3 10 54], [CDAB 10 15 55], [BCDA 1 21 56], [ABCD 8 6 57], [DABC 15 10 58], [CDAB 6 15 59],[BCDA 13 21 60],[ABCD 4 6 61], [DABC 11 10 62], [CDAB 2 15 63] [BCDA 9 21 64]
Algoritmo MD5
En un proceso final, se actualizan las variables siguientes:
A = A + AA B = B + BB C = C + CC D = D + DD
El proceso se repite para cada mx de forma secuencial
33
Algoritmo MD5
5. La huella producida para el mensaje de entrada queda en las variables A, B, C, D, la cual se interpreta empezando con los bits menos significativos de A y terminando con los más significativos de D. Independientemente de la longitud del mensaje, la huella será de 128 bits
Algunos protocolos de la Capa de Enlace de Datos
34
Generalidades
El flujo de datos en una red de computadoras puede ser simplex, half – duplex, full – duplexEn los enlaces half y full, las entidades pueden ser emisoras o receptoras de datos
⇒ Sincronía de eventos “emisión” y “recepción”
Generalidades
Necesidades de políticas que establezcan el control del uso del enlace
1. ¿quiénes lo usan?2. ¿quién es el emisor?3. ¿cuándo inicia la transmisión?4. ¿cuándo termina?
⇒ Protocolos de nivel enlace
35
Control del Enlace
Los protocolos deben de contemplar:Empaquetado de la informaciónSecuenciación de la informaciónContenciónAcuses de recepciónDetección / corrección de erroresTemporizaciónRecuperación de errores
Formato de la Información
En la comunicación asíncrona, normalmente se usa un formato orientado a caracteres (bytes)En la comunicación síncrona, se hace uso los formatos orientados a bloque (por conteo) y los orientados a bit
36
Protocolos de la Capa
Los protocolos de la capa de enlace de datos se diseñan pensando en el tipo de transmisión que será soportado: simplex, halfo full duplexTambién se determina si se usará transmisión síncrona o asíncronaDependiendo de lo anterior, los marcos se formarán de caracteres, bloques o bits
Protocolo BISYNC
Protocolo orientado a carácter, half duplexHace uso de los siguientes caracteres de control:
SYN: línea activa y desocupadaDLE: carácter de escape al enlace de datos (Data Link Escape)SOH: Inicio de la cabecera (Start of Header)STX: Inicio del texto (Start of Text)ETX: Fin del texto (End of Text)EOT: Fin de la transmisión (End of Transmission)
37
Protocolo BISYNC
<error control>ETX<datos
>STX
<header>
SOH
SYN
SYN
<error control>ETXDLE<datos>STXDLESY
N
Protocolo KERMIT
Protocolo orientado a carácter, del tipo simplexCaracteres de control:
SOH: Inicio del EncabezadoLEN: Longitud paquete (35 a 126) exceso de 32SEQ: Número de trama (exceso de 32 mod 64)FCS: CRCCR: Carriage Return
<datos> CRFCS
TYPE
SEQLENSO
H
38
Protocolo KERMIT
El campo correspondiente a TYPE, determina el tipo de trama:
S: send initiation (parámetros)F: nombre del archivoD: Datos de archivoZ: Fin de archivoB: Fin de transmisiónY: confirmación de llegadaN: confirmación negativa de llegadaE: error fatal
Protocolos Orientados a Bloque
Mayor transparencia de datosEl encabezado contiene toda la información sobre la longitud del paquete de información
⇒ Orientado al conteo de caracteres
39
Protocolos Orientados a Bloque
El carácter BCC sirve para indicar la posición del campo de conteo de datos
<datos> CR<error control>NBC
CSYN
Protocolos Orientados a Bit
Ampliamente usado en la actualidadSe utilizan banderas en lugar de caracteres de control. Por ejemplo, la bandera 0 111 111 0Para evitar confusión con la bandera, después de 5 1’s consecutivos de agrega un ceroLa longitud de los campos de control es fija
<datos> 01111110<error control>
<header>
01111110
40
Control de Flujo
Independientemente del empaquetado, se requiere de mecanismos que controlen el flujo de las tramas:
Reglas sobre la petición y envío de la informaciónReglas sobre los acuses de recibo y de retransmisión
Control de Flujo
En protocolos asíncronos, se realiza de dos formas:
RTS / CTS (Request to send / clear to send): Activación y desactivación de los circuitos de datos mediante líneas de control independientesXON / XOFF: envío de caracteres de control para habilitar o deshabilitar el envío de información
41
Control de Flujo
En un protocolo síncrono, el envío de mayores cantidades de datos requiere un control mayor:
Encabezados con información de control (número de paquete N(s))Acuses de recibo positivos (ACK) o negativos (NAK) de las tramas enviadas
42
Control de Flujo
Control de Flujo
Reglas específicas para el envío de ACK o de NAK dependiendo de la temporizaciónLos acuses de recibo deben permitir la adecuada secuenciación de las tramasEmpleo generalizado del Automatic RepeatRequest (ARQ): el acuso de recibo indica el número de la trama que se espera
43
Control de Flujo
Diversas estrategias:Idle ReQuest (stop - wait): Envío de trama N(S)y acuse de recepción N(R), donde N(S) = N (R). Ésta estrategia se orienta a la comunicación half– duplexContinuous RQ: Envío constante de tramas sin espera inmediata de acuse de recepción (full -duplex).
Control de Flujo
Dentro de Continuous RQ, se encuentran:Selective RejectGo – Back – NInclusive AcknowledgePiggy Back
44
Algoritmos de Parada y Espera
En los algoritmos de parada y espera (stop andwait), el emisor envía un marco y no envía otro hasta recibir una confirmación del que ha enviadoSe requiere una comunicación full duplex, aunque los datos (de usuario) solo viajan en un sentidoPor lo anterior, se pueden implementar sobre medios físicos semi – duplexExiste el problema de la pérdida de los acuses, que puede inducir a la recepción de múltiples marcos hasta el bloqueo total del protocolo
Solicitud Automática de Repetición (ARQ)
Para identificar marcos repetidos, se ha optado por añadir un número de secuencia a los marcos, los cuales pueden ser de un bitCon ello, el receptor sabe que marco debe de llegar a continuación (n → n+1)
45
Algoritmos de Respuesta Continua
En estos algoritmos, se aprovecha mejor el medioLos marcos pueden ser identificador por medio del campo de tipo, que indica si es un marco de control o de datosNotemos que enviar un marco solo portando un acuse, es un esquema ineficiente
Algoritmos de Respuesta Continua
Para lograr mayor eficiencia, se propuso retardar el acuse, tratando de enviarlo en marcos de salida (en el campo ack)La técnica anterior, conocida como incorporación (piggybacking), tiene el problema de que los temporizadores pueden acabarse si no se plantea bien cuanto tiempo se puede retener el acuse
46
47
48
Protocolos de Ventana Corrediza
Los protocolos de ventana corrediza tienen una gran inmunidad a los fallosEn estos protocolos, cada marco tiene un número de secuencia desde 0 hasta un número máximo predefinidoPor lo general, dicho número máximo se representa por 2n-1, el cuál puede ser acomodado en un campo de n bits
49
Protocolos de la Capa de Enlace de Datos
HDLCSLIPPPPTC DE ATM