sesion 7 capa de enlace de datos - cs.buap.mxiolmos/redes/9_enlace_datos.pdf · 2 propósito...

49
1 Capa de Enlace de Datos Propósito Su objetivo es proporcionar un medio de comunicación que parezca libre de errores Para ello, se implementan diversos algoritmos de detección y corrección de errores Lo anterior se debe a que los dispositivos que colocan los bits en el medio, así como el medio mismo ocasionalmente inducen errores Por otra parte, también intervienen los factores externos

Upload: votuyen

Post on 29-Sep-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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

Page 2: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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

Page 3: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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

Page 4: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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

Page 5: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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

Page 6: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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

Page 7: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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

Page 8: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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

Page 9: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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)

Page 10: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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

Page 11: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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

Page 12: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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

Page 13: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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

Page 14: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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

Page 15: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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)

Page 16: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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

Page 17: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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

Page 18: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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

+

Page 19: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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

Page 20: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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”

Page 21: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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

Page 22: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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

Page 23: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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

Page 24: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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)

Page 25: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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

Page 26: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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

Page 27: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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”

Page 28: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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

Page 29: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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.

Page 30: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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]

Page 31: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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]

Page 32: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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

Page 33: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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

Page 34: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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

Page 35: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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

Page 36: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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)

Page 37: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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

Page 38: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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

Page 39: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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

Page 40: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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

Page 41: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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

Page 42: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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

Page 43: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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

Page 44: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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)

Page 45: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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

Page 46: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

46

Page 47: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

47

Page 48: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

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

Page 49: Sesion 7 Capa de enlace de datos - cs.buap.mxiolmos/redes/9_Enlace_Datos.pdf · 2 Propósito Además de lo ya señalado, debe ofrecer una interfaz bien definida a la capa de red,

49

Protocolos de la Capa de Enlace de Datos

HDLCSLIPPPPTC DE ATM