Capa de Enlace de Datos



Documentos relacionados
Tema 3: Nivel Enlace.

QUIERES COMPROBAR CÓMO LAS REDES DETECTAN Y CORRIGEN ERRORES?

16.36: Ingeniería de sistemas de comunicación. Clase 15: ProtocolosARQ. Eytan Modiano

Anexo B. Comunicaciones entre mc y PC

ELECTRÓNICA DIGITAL TEMA 1

Capa de TRANSPORTE. Ing. José Martín Calixto Cely Original: Galo Valencia P.


Redes (IS20) Ingeniería Técnica en Informática de Sistemas. CAPÍTULO 8: El nivel de transporte en Internet

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016!

INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso v1.0 (05.03.

Sistemas de Numeración Operaciones - Códigos

TEMA 3. La capa de enlace de datos

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET

Protocolo PPP PPP Protocolo de Internet de línea serie (SLIP)

Tema 2. La Información y su representación

Introducción a los Sistemas Digitales

Fundamentos de Ethernet. Ing. Camilo Zapata Universidad de Antioquia

Tema 2 : Códigos Binarios

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia.

TEMA 2: Representación de la Información en las computadoras

FUNCIONAMIENTO DIGITAL DE UN SISTEMA. EL SISTEMA BINARIO. Sistema Digital. Fr. Casares. Sistema Digital. Sistema Digital

ARITMÉTICA Y CODIFICACIÓN

Tema I. Sistemas Numéricos y Códigos Binarios

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

Capítulo 4 Procesos con estructuras de repetición

❷ Aritmética Binaria Entera

Existen una serie de criterios a tomar en cuenta sobre la información que genera el usuario:

Tema 11: Sistemas combinacionales

ANEXO 2: REPRESENTACION DE LA INFORMACION EN LOS COMPUTADORES

by Tim Tran:

CRIPTOGRAFÍA SIMÉTRICA Y ASIMÉTRICA

Diseño e implementación de un sistema de comunicaciones simple, eficiente y confiable

TEMA I: INTRODUCCIÓN A LA ELECTRÓNICA DIGITAL

Fundamentos de Redes de Computadoras

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET

Tema 4.1: - TRANSPORTE-

Unidad Didáctica. Códigos Binarios

UNIDADES DE ALMACENAMIENTO DE DATOS


Redes (IS20) Ingeniería Técnica en Informática de Sistemas. CAPÍTULO 6: Estándares en LAN

❸ Códigos Binarios CÓDIGOS NUMÉRICOS

Introducción a la Programación 11 O. Humberto Cervantes Maceda

TEMA 2 REPRESENTACIÓN BINARIA

LECCIÓN 8: CIRCUITOS Y ALGORITMOS DE MULTIPLICACIÓN DE ENTEROS

T6. CIRCUITOS ARITMÉTICOS

Arquitectura de sistema de alta disponibilidad

1. SISTEMAS DIGITALES

Divisibilidad y números primos

Control de enlace de datos

Materia: Informática. Nota de Clases Sistemas de Numeración

3. Número inicial y número final de mensajes mostrados en la página actual.

TRANSMISIÓN DE TRANSMISIÓN DE TRANSMISIÓN DE RESULTADOS DILIGENCIAS TRABAS DE VALIDACIÓN DE TRABAS. Si hay rechazo

Tema IV. Unidad aritmético lógica

SIIGO PYME PLUS. Proceso de Recuperación. Cartilla I

Efectos de los dispositivos de Capa 2 sobre el flujo de datos Segmentación de la LAN Ethernet

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3

Unidad de trabajo 2: INFORMÁTICA BÁSICA (primera parte)

UNIDAD Nº 1: 1. SISTEMAS DE NUMERACION. Formalizado este concepto, se dirá que un número X viene representado por una cadena de dígitos:

EJERCICIOS DEL TEMA 1

ÍNDICE 1 DESCRIPCIÓN 3 2 OPERATIVA DE LA FUNCIÓN 3 3 REGISTRO DE FACTURAS 4 4 REGISTRO MASIVO DE FACTURAS 10

Análisis de los datos

DESARROLLO DE HABILIDADES DEL PENSAMIENTO LÓGICO

21/02/2012. Agenda. Unidad Central de Procesamiento (CPU)

6-REGISTROS DEL 8086 Y DEL 80286

EXPRESIONES ALGEBRAICAS. POLINOMIOS

Actividad 4: Comunicación entre PLC s vía Ethernet

x

Los sistemas de numeración se clasifican en: posicionales y no posicionales.

Tema 1. SISTEMAS DE NUMERACION

Clase 02: Representación de datos

Temporizadores y contadores en tiempo real: El módulo Timer0 y el prescaler del PIC

Redes de Computadoras Junio de Teoría y problemas

e-commerce, es hacer comercio utilizando la red. Es el acto de comprar y vender en y por medio de la red.

REDES INFORMATICAS: Protocolo IP

Unidad 1 Sistemas de numeración Binario, Decimal, Hexadecimal

ÍNDICE DISEÑO DE CONTADORES SÍNCRONOS JESÚS PIZARRO PELÁEZ

ZCARTAS: Iniciación a la suma y resta de números enteros Introducción Actividad 1: Escenario con cartas numeradas desde -2 hasta 2...

Índice general. Tipos de servicio de transporte. Por qué un nivel de transporte? TEMA 6 Funciones de los niveles superiores. Miguel A.

Matemática de redes Representación binaria de datos Bits y bytes

Introducción a la Firma Electrónica en MIDAS

2 Sea una unidad de disco duro de brazo móvil con las siguientes características:

GENERACIÓN DE TRANSFERENCIAS

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento

Curso Excel Básico - Intermedio

Manual del Software. por Raúl Milla Pérez

1. Informática e información. 2. Sistemas de numeración. 3. Sistema binario, operaciones aritméticas en binario, 4. Sistemas octal y hexadecimal. 5.

Redes de Computadoras El Protocolo PPP

EIE SISTEMAS DIGITALES Tema 2: Sistemas de Numeración, Operaciones y Códigos

Introducción a las Redes de Computadoras

EJERCICIOS RESUELTOS SOBRE ERRORES DE REDONDEO

Relación de la RDSI con el modelo de referencia OSI

Capítulo 1: Sistemas de representación numérica Introducción. Dpto. de ATC, Universidad de Sevilla - Página 1 de 8

TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA

Guía Registro Cuentas de Custodia Registro y Consulta de Operaciones de Custodia

Apuntes de Microcontroladores (Repaso de temas previos)

SISTEMAS DE NUMERACIÓN. Sistema decimal

Árboles AVL. Laboratorio de Programación II

DHCP. Dynamic Host Configuration Protocol. Protocolo de Configuración Dinámica de Host. Administración de Redes de Computadores

Representación de números enteros: el convenio signo y magnitud

1.- INTRODUCCIÓN 2.- PARÁMETROS

Transcripción:

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

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ón Servicio con acuse sin conexión: se emiten los marcos, esperando una confirmación de su llegada Servicio con acuse orientado a la conexión: se establece una conexión antes de realizar cualquier transmisión 2

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, etc Los 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 marcos Los marcos sirven para tener un mayor control del flujo de los bits, verificando por cada marco la integridad de los bits Para identificar los marcos, se han propuesto diversos método como: Conteo de Caracteres Caracteres de inicio y fin, con relleno de caracteres Indicadores de inicio y fin, con relleno de bits Violaciones de codificación de la capa física 3

Conteo de Caracteres Aquí se inserta un carácter al inicio que indica cuantos caracteres contiene el marco Su problema radica en que es fácil que se dañe el carácter de conteo 3 2 6 2 3 4 5 3 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 of text) para la finalización de un marco Como se trata de código ASCII, las secuencias ya expuestas pueden presentarse en la secuencia de datos 4

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 fin Por 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 Carácter de relleno DLE STX Z DLE DLE DLE ETX DLE STX Z DLE DLE ETX 5

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 ASCII El procedimiento consiste en insertar la secuencia 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. Con ello, el byte indicador no se presentará en los datos Indicadores de Inicio y Fin con Relleno de Bits 6

Violación de Codificaciones en la Capa Física Normalmente, en las redes locales se usa la transición alto bajo para representar y bajo alto para representar un Para 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 82 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 recibo Sin 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 7

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 retransmitir Los 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 8

Tipos de Errores En general, se identifican dos tipos de error: errores por ráfaga, errores aislados Suponga que se envían bits (recuerde que los bits entre computadoras se envían por bloques) con una tasa de error del. Si los errores son aislados, cada bloque contendrá por lo menos un error Si los errores son en ráfaga de, solo uno o dos bloques de cada 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) 9

Técnicas de Detección y Corrección de Errores Paridad Hamming Códigos de Redundancia cíclica Message Digest (MD5) Retransmisión Convolucionales Notación Un marco generalmente esta integrado por k bits de datos y r bits redundantes o de comprobación de error Se llama palabra código a aquella que consta de bits de datos y de comprobación n = k + r

Notación Distancia de Hamming: Número de bits en los que difieren dos palabras código La distancia de Hamming se representa por H d 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 2 n posibles valores Cualquier error o modificación que sufra una palabra código, resultará en otra palabra código diferente Por lo anterior, solo se busca tomar 2 k palabras código válidas, en lugar de tomar las 2 n palabras que se podrían normalmente generar Solo algunas palabras serán válidas

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álida La capacidad de detección y corrección de errores depende de la distancia de Hamming Detección de x errores: D H x + Corrección de x errores: D H 2x + 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 paridad Consiste en agregar un o (información redundante), dependiendo de la paridad deseada 2

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 palabra Paridad 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 PARIDAD 3

4 Paridad Vertical o por Carácter? Parida d 4 2 3 2 3 4 5 6 7 8 Caracteres (Paridad Impar) Núm Bit Paridad Longitudinal Paridad 5? Paridad 4 2 3 2 3 4 5 6 7 8 Caracteres (Paridad Impar) Núm Bit

Código de Hamming La información redundante es generada a partir del cálculo: r c = i r G El vector c representa el código de Hamming resultante, i el vector binario de entrada D k D k-...d 2 D (bits de información) y G, la matriz generadora del código Código de Hamming Matriz generadora del código G = [I kxk, P] donde: I kxk es la matriz identidad de k x k P es la matriz que caracterizará el código de dimensión k x (n - k) 5

Código de Hamming Hamming propone una matriz P de dimensión k x r, donde: r = int{log 2 (k)+} Además: n = k + r De lo anterior, se puede señalar que el vector c se forma de: r c = D... D R... ] [ k r R Código de Hamming Los valores de la matriz P se obtienen de las posiciones base dos de los bits de información D x después de haber insertado r = n k bits de redundancia R x en las posiciones potencias de dos 6

7 Código de Hamming Ejemplo para 4 bits: D 4 D 3 D 2 D n = 4 + int {log 2 (4)+} = 7 7 6 5 4 3 2 D 4 D 3 D 2 R 3 D R 2 R = G Código de Hamming Por ejemplo, suponga D 4 D 3 D 2 D = = = [] G i c r r [ ] = c r

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 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 7 6 5 4 R 3 3 2 R 2 R Unos en las posiciones 7, 6 y 3: + 8

9 Código de Hamming La detección / corrección de error es posible mediante el cálculo del síndrome del código recibido: [ ] k n T T T I P H H c s = = r r Si se obtiene que el vector s es cero, se concluye que no hay error Código de Hamming Del ejemplo anterior: c = [ ] [ ] = = = c H c s T r r r

Código de Hamming Una forma alternativa de calcular el síndrome es sumar las posiciones binarias con bits iguales a, incluyendo los s de la redundancia: 7 6 5 4 R 3 () 3 2 R 2 () R () Unos en las posiciones: 7, 6, 3 y 2 + Códigos de Redundancia Cíclica Los códigos de Redundancia Cíclica son ampliamente usados dentro de las Redes de Computadoras Se 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 2

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 exclusiva Un código cíclico (n, k) está definido por su polinomio generador G(x) = g + g x+... + g n-k x n-k En redes como Ethernet, se emplean polinomios generadores ya definidos Códigos de Redundancia Cíclica Cada coeficiente g k representa un o un binario en una cadena de r bits : cuando g k es igual a : cuando g k es igual a La cadena de r bits se forma a partir del coeficiente de mayor grado hasta el de menor grado El orden del polinomio lo determina el exponente de mayor grado 2

Códigos de Redundancia Cíclica Por ejemplo, para el polinomio G(x)=x 6 +x 5 +x 2 +x+ la secuencia de bits correspondientes es: 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 bits El objetivo es que los n bits sean exactamente divisibles por el mismo polinomio G(x) utilizado en el transmisor Si es el caso, se dice que no hubo alteración en los datos que se han transmitido 22

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 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 residuo Realizar 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 receptor Del 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 23

Códigos de Redundancia Cíclica Sea M(x) = G(x) = x 2 + Calcular el campo de suma de comprobación Una 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 > También tiene la cualidad de detectar errores en ráfaga menores a r; si la ráfaga genera r+ errores, se detectará si esta es distinta de G(x) 24

Códigos de Redundancia Cíclica Normalmente se ha empleado 3 polinomios para la detección de errores en las redes de computadoras: CRC-2: x 2 +x +x 3 +x 2 +x + CRC-6: x 6 +x 5 +x 2 + CRC-CCITT: x 6 +x 2 +x 5 + Es importante notar que dichos polinomios contienen como factor primo a x+ MD5 MD5 es una técnica que permite obtener una huella digital de una serie de datos de entrada Con la huella, se puede verificar la integridad de los datos, es decir, comprobar que no hayan sufrido alteración Ademá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 25

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 servidor El servidor envía en mensaje aleatorio al usuario El servidor y el sistema del usuario hacen un cálculo MD5 del mensaje aleatorio y el password del usuario El 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 mensaje Se envía al receptor el mensaje junto con la huella El 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 26

Algoritmo MD5 El algoritmo MD5 recibe un mensaje m de cualquier tamaño, y de éste siempre obtiene una serie de 28 bits, que es única para cualquier mensaje El algoritmo consta de 5 pasos, los cuales se describen a continuación Algoritmo MD5. 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 52 (bits). Para ello, el primer bit de relleno es un y los restantes n- bits son 27

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 2 64, solamente se usan los 64 bits menos significativos. De esta manera, la longitud del mensaje es ahora múltiplo de 52. Algoritmo MD5 3. Se inicializan 4 buffers de 32 bits con los siguientes valores hexadecimales: A: 23 45 67 B: 89 ab cd ef C: fe dc ba 98 D: 76 54 32 28

Algoritmo MD5 4. El mensaje m será procesado en bloques m,..., m t-, donde cada bloque m x consta de 52 bits Para ello, se crean 4 funciones auxiliares, con 3 entradas de 32 bits y 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[... 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 m hasta m t-. Cada bloque m x será dividido en sub-bloques de 6 bits, representados con m x j, que indica al j-ésimo sub-bloque de 6 bits del bloque m x. 29

Algoritmo MD5 Parta cada j ( j 32) de cada bloque m x j 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) + m x j [k] + T[i]) << s) NOTA: m x j [k] representa el valor del k-ésimo bit, o, del sub-bloque m x j Algoritmo MD5 Se realizan las operaciones siguientes (secuencial): [ABCD 7 ], [DABC 2 2], [CDAB 2 7 3], [BCDA 3 22 4], [ABCD 4 7 5], [DABC 5 2 6], [CDAB 6 7 7], [BCDA 7 22 8], [ABCD 8 7 9], [DABC 9 2 ], [CDAB 7 ], [BCDA 22 2], [ABCD 2 7 3], [DABC 3 2 4], [CDAB 4 7 5], [BCDA 5 22 6] 3

Algoritmo MD5 Usando ahora la expresión [abcd k s i] que denota a = b + ((a + G(b,c,d) + m x j [k] + T[i]) << s), se efectúan las 6 operaciones siguientes: [ABCD 5 7], [DABC 6 9 8], [CDAB 4 9], [BCDA 2 2], [ABCD 5 5 2], [DABC 9 22], [CDAB 5 4 23], [BCDA 4 2 24], [ABCD 9 5 25], [DABC 4 9 26], [CDAB 3 4 27], [BCDA 8 2 28], [ABCD 3 5 29], [DABC 2 9 3], [CDAB 7 4 3], [BCDA 2 2 32] Algoritmo MD5 En una tercera etapa, usando [abcd k s t] como a = b + ((a + H(b,c,d) + m x j [k] + T[i]) << s), se realizan las operaciones siguientes: [ABCD 5 4 33], [DABC 8 34], [CDAB 6 35], [BCDA 4 23 36], [ABCD 4 37], [DABC 4 38], [CDAB 7 6 39], [BCDA 23 4], [ABCD 3 4 4], [DABC 42], [CDAB 3 6 43], [BCDA 6 23 44], [ABCD 9 4 45], [DABC 2 46], [CDAB 5 6 47], [BCDA 2 23 48] 3

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 operacione siguientes: [ABCD 6 49], [DABC 7 5], [CDAB 4 5 5], [BCDA 5 2 52], [ABCD 2 6 53], [DABC 3 54], [CDAB 5 55], [BCDA 2 56], [ABCD 8 6 57], [DABC 5 58], [CDAB 6 5 59], [BCDA 3 2 6], [ABCD 4 6 6], [DABC 62], [CDAB 2 5 63] [BCDA 9 2 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 m x de forma secuencial 32

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 28 bits Algunos protocolos de la Capa de Enlace de Datos 33

Generalidades El flujo de datos en una red de computadoras puede ser simplex, half duplex, full duplex En 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. 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 34

Control del Enlace Los protocolos deben de contemplar: Empaquetado de la información Secuenciación de la información Contención Acuses de recepción Detección / corrección de errores Temporización Recuperació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 35

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, half o full duplex También se determina si se usará transmisión síncrona o asíncrona Dependiendo de lo anterior, los marcos se formarán de caracteres, bloques o bits Protocolo BISYNC Protocolo orientado a carácter, half duplex Hace uso de los siguientes caracteres de control: SYN: línea activa y desocupada DLE: 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) 36

Protocolo BISYNC SY N SY N SO H <header > ST X <datos > ETX <error control> SY N DLE STX <datos> DLE ETX <error control> Protocolo KERMIT Protocolo orientado a carácter, del tipo simplex Caracteres de control: SOH: Inicio del Encabezado LEN: Longitud paquete (35 a 26) exceso de 32 SEQ: Número de trama (exceso de 32 mod 64) FCS: CRC CR: Carriage Return SO H LEN SE Q TYP E <datos> FC S CR 37

Protocolo KERMIT El campo correspondiente a TYPE, determina el tipo de trama: S: send initiation (parámetros) F: nombre del archivo D: Datos de archivo Z: Fin de archivo B: Fin de transmisión Y: confirmación de llegada N: confirmación negativa de llegada E: error fatal Protocolos Orientados a Bloque Mayor transparencia de datos El encabezado contiene toda la información sobre la longitud del paquete de información Orientado al conteo de caracteres 38

Protocolos Orientados a Bloque SY N BC C N <datos> <error control> CR El carácter BCC sirve para indicar la posición del campo de conteo de datos Protocolos Orientados a Bit Ampliamente usado en la actualidad Se utilizan banderas en lugar de caracteres de control. Por ejemplo, la bandera Para evitar confusión con la bandera, después de 5 s consecutivos de agrega un cero La longitud de los campos de control es fija <header > <error <datos> control> 39

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ón Reglas 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 independientes XON / XOFF: envío de caracteres de control para habilitar o deshabilitar el envío de información 4

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 4

Control de Flujo Control de Flujo Reglas específicas para el envío de ACK o de NAK dependiendo de la temporización Los acuses de recibo deben permitir la adecuada secuenciación de las tramas Empleo generalizado del Automatic Repeat Request (ARQ): el acuso de recibo indica el número de la trama que se espera 42

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 duplex Continuous 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 Reject Go Back N Inclusive Acknowledge Piggy Back 43

Algoritmos de Parada y Espera En los algoritmos de parada y espera (stop and wait), el emisor envía un marco y no envía otro hasta recibir una confirmación del que ha enviado Se requiere una comunicación full duplex, aunque los datos (de usuario) solo viajan en un sentido Por lo anterior, se pueden implementar sobre medios físicos semi duplex Existe 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 bit Con ello, el receptor sabe que marco debe de llegar a continuación (n n+) 44

Algoritmos de Respuesta Continua En estos algoritmos, se aprovecha mejor el medio Los marcos pueden ser identificador por medio del campo de tipo, que indica si es un marco de control o de datos Notemos 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 45

46

47

Protocolos de Ventana Corrediza Los protocolos de ventana corrediza tienen una gran inmunidad a los fallos En estos protocolos, cada marco tiene un número de secuencia desde hasta un número máximo predefinido Por lo general, dicho número máximo se representa por 2 n -, el cuál puede ser acomodado en un campo de n bits 48

Protocolos de la Capa de Enlace de Datos HDLC SLIP PPP TC DE ATM 49