PRÁCTICO 2 DELIMITADOR DE FRAMES Y DETECCIÓN DE ERRORES Comunicación de Datos I
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: 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 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 STXETX Los delimitadores de carácter: STX (Start of TeXt), ETX (End of TeXt) Como pueden ocurrir en datos, DLE Stuffing: Se preceden por un DLE (Data Link Escape) Los frames se encontrarán entre los delimitadores: DLE STX DLE ETX DLE STX y DLE ETX
Framing 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-STXDEL DLE-STX-DLE-DLE-A-STX-STX-B-DEL-DLE- DLEDLEDLE-ETX ETX-DLE-DLE-DLE-DLE-C-DLE-ETX
Framing Determine cual es la información enviada si se recibe: DLE-STX-STX-DLE-DLE-ABC-DLE-ETX-DLE-BCD-DLE-STX DLE-STXDLE DLE-STX-STX-DLE-DLE-ABC- DLE-ETX DLE-ETX-DLE-BCD-DLE-STX “STX-DLE-ABC” es la información que fue enviada...
Framing Utilizando delimitación de bloque por secuencia de bits, para los bits de información: determine como será transportada Delimitación: Se utilizan flags de tipo: Stuffing: Cuando en los datos aparecen 5 unos seguidos se le agrega un 0 luego del 5to bit. 0 EJ > Entonces: será transportado como:
Detección de Errores x**3+x**2+x 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 % 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. Info Redund Errores RedundInfoRedundInfo Gener. redund Info Compr. redund M(x)M’(x) I(x) R(x) EmisorReceptor Medio de Transmisión
Detección de Errores 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 G(x)= x³+x²+x G(x)= x³+x²+x+1 = Los coeficientes: 1111 (existen todos los términos) Redundancia r = grado Polinomio= I(x)= 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 múltiplos de G(x)
Detección de Errores x**3+x**2+x 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 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 G(x)= x³+x²+x+1 = 1111 (existen todos los términos) I(x)= I(x)= Información (5 bits) I(x) ) Se agregan la I(x) r bits (3bits) en 0, --> G(x) G(x) 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... y el receptor para verificar la validez de la secuencia de bits recibida X³+X²+X+1 (1111) Recibimos: Dividiendo por X³+X²+X+1 (1111) > Resto es “0” Asumo que recibí OK
Detección de Errores x**5+x**3+1 Verifique la validez de la secuencia recibida, cuando en la línea ocurren errores que responden al polinomio x**5+x** E(x)= Recibimos: M'(x)= M(x) + E(x) = = ? = M'(x)=
Detección de Errores x**5+x**3+1 Verifique la validez de la secuencia recibida, cuando en la línea ocurren errores que responden al polinomio x**5+x** Error 100 -> Resto no es “0”! Error
Detección de Errores x**3+x**2+x+1 Rehaga el punto b) considerando que el polinomio de error es x**3+x**2+x+1. Explique lo sucedido E(x)= = ? Recibimos: M'(x)= M(x) + E(x) = = ? = M'(x)=
Detección de Errores x**3+x**2+x+1 Rehaga el punto anterior considerando que el polinomio de error es x**3+x**2+x+1. Explique lo sucedido OK 000 -> Resto es “0” Asumo que recibí OK Lo que sucede en este caso es que el error que se introdujo es un múltiplo del polinomio generador. Por este motivo, no es posible detectar el error.
¿Preguntas?