Comunicación de Datos I Práctico 3 Delimitación de Frames y Detección de errores Framing Al enviar información, en vez de enviar un stream continuo de información, se utilizan frames. Así es posible detectar errores por frame, y de existir un error, se puede retransmitir sólo el frame problemático. Para delimitar los frames existen diversos métodos: 5 3 4 2 4 3 3 7 2 8 Character count Starting and ending characters, with character stuffing Starting and ending flags, with bit stuffing Physical layer coding violations. Por lo general se utilizan combinaciones de éstos... Framing Ejercicio 1: Para técnica de delimitación de frame utilizando caracteres delimitadores: a) Determine, para la siguiente información a enviar, cómo será transportada a través del vínculo de transmisión y cómo será entregada al receptor luego de eliminar los caracteres producidos por el proceso de framing: DLE-A-STX-STX-B-DLE-ETX-DLE-DLE-C Los delimitadores de carácter: STX (Start of TeXt), ETX (End of TeXt) Como pueden ocurrir en datos, Stuffing: Se preceden por un DLE (Data Link Escape) Los frames se encontrarán entre los delimitadores: DLE STX y DLE ETX Framing a) Se desea transmitir como dato: DLE-A-STX-STX-B-DLE-ETX-DLE-DLE-C Los DLE duplicados corresponden a datos, luego son eliminados para recuperar el frame original. Entonces se va a transmitir: DLE-STX-DLE-DLE-A-STX-STX-B-DLE-DLE-ETX-DLE-DLE-DLE-DLE-C-DLE-ETX Framing b) Determine cual es la información enviada si se recibe: DLE-STX-STX-DLE-DLE-ABC-DLE-ETX-DLE-BCD-DLE-STX DLE-STX-STX-DLE-DLE-ABC-DLE-ETX-DLE-BCD-DLE-STX STX-DLE-DLE-ABC “STX-DLE-ABC” es la información que fue enviada... Framing 2) Utilizando delimitación de bloque por secuencia de bits, para los bits de información: 1011011111010111111110101 determine como será transportada. Delimitación: Se utilizan flags de tipo: 01111110 Stuffing: Cuando en los datos aparecen 5 unos seguidos se le agrega un 0 luego del 5to bit EJ. 001111111010 --> 0011111011010 Entonces: 1011011111010111111110101 será transportado como: 01111110 101101111100101111101110101 01111110 Detección de Errores 6) Suponga un código cíclico, con 5 bits de información y tres redundancia, cuyo polinomio generador es x**3+x**2+x+1, y que desea enviar la secuencia de bits 10011. I(X) de se E(X) Información ERRORES Generación de redundancia R(X) Comprobación redundancia/inf Redund Redund Información M(X) EMISOR Redund Información M`(X) MEDIO DE TRANSMISION RECEPTOR Recordando el esquema de paridad simple, en una ráfaga de errores vamos a poder detectar solo el 50% de los errores. No muy aceptable, ya que aceptaríamos como buenos la mitad de los frames con errror. Detección de Errores 6) Suponga un código cíclico, con 5 bits de información y tres de redundancia, cuyo polinomio generador es x**3+x**2+x+1, y que se desea enviar la secuencia de bits 10011. G(x)= x³+x²+x+1 = Los coeficientes: 1111 (existen todos los términos) Redundancia r = grado Polinomio=3 I(x)= 10011 Información (5 bits) La idea es hacer que el frame a transmitir sea divisible por el polinomio Generador G(x), en caso de que no lo sea, el frame contendrá un error. Para esto, el emisor agrega los bits de redundancia al final del frame con la información, generando un nuevo frame de tamaño i + r bits (5 + 3 bits) de forma tal que el nuevo frame sea efectivamente divisible por G(x). M (x) = I (x) * x ** r + Resto [ I (x) * x ** r / G (x) ] Así, sólo se envían multiplos de G(x) Detección de Errores 6) Suponga un código cíclico, con 5 bits de información y tres de redundancia, cuyo polinomio generador es x**3+x**2+x+1, y que se desea enviar la secuencia de bits 10011. a) Desarrolle en forma de polinomios los pasos que seguirá el emisor para generar redundancia y el receptor para verificar la validez de la secuencia de bits recibida. G(x)= x³+x²+x+1 = 1111 (existen todos los términos) I(x)= 10011 Información (5 bits) 1) Se agregan la I(x) r bits (3bits) en 0, --> 10011000 2) Se divide por G(x), se obtiene el resto, y luego es restado para que sea divisible por G(x). M(x) = I(x) *x^r Detección de Errores a) Desarrolle en forma de polinomios los pasos que seguirá el emisor para generar redundancia 10011000 / 1111 (se utiliza módulo 2, XOR) 10011000 1111 Detección de Errores a) Desarrolle en forma de polinomios los pasos que seguirá el emisor para generar redundancia 10011000 / 1111 (se utiliza módulo 2, XOR) 10011000 1111 Detección de Errores a) Desarrolle en forma de polinomios los pasos que seguirá el emisor para generar redundancia 10011000 / 1111 (se utiliza módulo 2, XOR) 10011000 1111 110 Detección de Errores a) Desarrolle en forma de polinomios los pasos que seguirá el emisor para generar redundancia 10011000 / 1111 (se utiliza módulo 2, XOR) 10011000 1111 1101 Detección de Errores a) Desarrolle en forma de polinomios los pasos que seguirá el emisor para generar redundancia 10011000 / 1111 (se utiliza módulo 2, XOR) 10011000 1111 1101 1111 Detección de Errores a) Desarrolle en forma de polinomios los pasos que seguirá el emisor para generar redundancia 10011000 / 1111 (se utiliza módulo 2, XOR) 10011000 1111 1101 1111 010 Detección de Errores a) Desarrolle en forma de polinomios los pasos que seguirá el emisor para generar redundancia 10011000 / 1111 (se utiliza módulo 2, XOR) 10011000 1111 1101 1111 0100 Detección de Errores a) Desarrolle en forma de polinomios los pasos que seguirá el emisor para generar redundancia 10011000 / 1111 (se utiliza módulo 2, XOR) 10011000 1111 1101 1111 0100 0000 100 Detección de Errores a) Desarrolle en forma de polinomios los pasos que seguirá el emisor para generar redundancia 10011000 / 1111 (se utiliza módulo 2, XOR) 10011000 1111 1101 1111 0100 0000 1000 Detección de Errores a) Desarrolle en forma de polinomios los pasos que seguirá el emisor para generar redundancia 10011000 / 1111 (se utiliza módulo 2, XOR) 10011000 1111 1101 1111 0100 0000 1000 1111 111 Detección de Errores a) Desarrolle en forma de polinomios los pasos que seguirá el emisor para generar redundancia 10011000 / 1111 (se utiliza módulo 2, XOR) 10011000 1111 1101 1111 0100 0000 1000 1111 1110 Detección de Errores a) Desarrolle en forma de polinomios los pasos que seguirá el emisor para generar redundancia 10011000 / 1111 (se utiliza módulo 2, XOR) 10011000 1111 1101 1111 0100 0000 1000 1111 1110 1111 001 -> Resto, se enviará: 10011001 Detección de Errores ... y el receptor para verificar la validez de la secuencia de bits recibida. Recibimos: 10011001 Dividiendo por X³+X²+X+1 (1111) 10011001 1111 1101 1111 0100 0000 1000 1111 1111 1111 000 -> Resto=0 Asumo que recibí OK Detección de Errores b) Verifique la validez de la secuencia recibida, cuando en la línea ocurren errores que responden al polinomio x**5+x**3+1 E(x)= 101001 Recibimos: M'(x)= M(x) + E(x) = 100111001 + 101001 = ? 100111001 + 101001 = 100010000 M'(x)= 100010000 Detección de Errores b) Verifique la validez de la secuencia recibida, cuando en la línea ocurren errores que responden al polinomio x**5+x**3+1 100010000 1111 1111 1111 0000 0000 0000 0000 0000 0000 0000 0000 000 -> Resto es “0”! Detección de Errores c) Rehaga el punto b) considerando que el polinomio de error es x**3+x**2+x+1. Explique lo sucedido. E(x)= 1111 Recibimos: M'(x)= M(x) + E(x) = 100111001 + 1111 = ? 100111001 + 1111 = 100110110 M'(x)= 100110110 Detección de Errores c) Rehaga el punto b) considerando que el polinomio de error es x**3+x**2+x+1. Explique lo sucedido. 100110110 1111 1101 1111 0100 0000 1001 1111 1101 1111 0100 0000 100 -> Resto es no es “0”! Error ¿Preguntas?