Post on 03-Feb-2016
description
PRÁCTICO 2DELIMITADOR 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...
5 3 4 2 4 3 3 7 2 8
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
Los delimitadores de carácter: STXSTX (Start of TeXt), ETXETX (End of TeXt)
Como pueden ocurrir en datos,Stuffing: Se preceden por un DLEDLE (Data Link
Escape)
Los frames se encontrarán entre los delimitadores:DLE STX DLE STX y DLE ETXDLE 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-STXDLE-STX-DLE-DLE-A-STX-STX-B-DELDEL-DLE-ETX-DLEDLE-DLE-DLEDLE-DLE-C-DLE-ETXDLE-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-STX-STX-DLEDLE-DLE-ABC-
DLE-ETXDLE-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: 1011011111010111111110101 determine como será transportada.
Delimitación: Se utilizan flags de tipo: 0111111001111110
Stuffing: Cuando en los datos aparecen 5 unos seguidos se le agrega un 0 luego del 5to bit.
EJ. 001111111010 --> 00111110011010
Entonces: 1011011111010111111110101 será transportado como:0111111001111110 10110111110001011111001110101
0111111001111110
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+1x**3+x**2+x+1, y que se desea enviar la secuencia de bits 1001110011.
Recordando el esquema de paridad simple, en una ráfaga de errores vamos a poder detectar solo el 50%50% de los errores. No muy aceptable, ya que aceptaríamos como buenos la mitad de los frames con errror.
InfoInfo
RedunRedundd
ErroresErrores
RedunRedundd
InfoInfo RedunRedundd
InfoInfo
Gener. Gener. redundredund
InfoInfo
Compr. redundCompr. redund
M(x)M(x) M’(xM’(x))
I(x)I(x)
R(xR(x))
Emisor
Receptor
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 10011.
G(x)= x³+x²+x+1 G(x)= x³+x²+x+1 = Los coeficientes: 11111111 (existen todos los términos)
Redundancia r = grado Polinomio=3I(x)= 1001110011 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)Así, sólo se envían múltiplos de G(x)
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+1x**3+x**2+x+1, y que se desea enviar la secuencia de bits 1001110011.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)= 10011 I(x)= 10011 Información (5 bits)
1) Se agregan la I(x)I(x) r bits (3bits) en 00, --> 10011000100110002) Se divide por G(x)G(x), se obtiene el resto, y luego es restado
para que sea divisible por G(x)G(x).M(x) = I(x) *x^rM(x) = I(x) *x^r
Detección de Errores
... y el receptor para verificar la validez de la secuencia de bits recibida.
Recibimos: 1001100110011001 Dividiendo por X³+X²+X+1 (1111)X³+X²+X+1 (1111)
100110011111 1101 1111 0100 0000 1000 1111 1111 1111 000000 -> Resto es “0” Asumo que recibí OK
Detección de Errores
Verifique la validez de la secuencia recibida, cuando en la línea ocurren errores que responden al polinomio x**5+x**3+1x**5+x**3+1
E(x)= 101001101001Recibimos: M'(x)= M(x) + E(x) = 10011001 + 10011001 +
101001 101001 = ?
10011001
+ 101001
= 1011000010110000
M'(x)= 1011000010110000
Detección de Errores
Verifique la validez de la secuencia recibida, cuando en la línea ocurren errores que responden al polinomio x**5+x**3+1x**5+x**3+1
101100001111 1000 1111 1110 1111 0010 0000 0100 0000 100100 -> Resto no es “0”! ErrorError
Detección de Errores
Rehaga el punto b) considerando que el polinomio de error es x**3+x**2+x+1x**3+x**2+x+1. Explique lo sucedido.
E(x)= 11111111Recibimos: M'(x)= M(x) + E(x) = 10011001 + 10011001 +
1111 = ?1111 = ?
10011001
+ 1111
= 1001011010010110
M'(x)= 1001011010010110
Detección de Errores
Rehaga el punto anterior considerando que el polinomio de error es x**3+x**2+x+1x**3+x**2+x+1. Explique lo sucedido.
100101101111 1100 1111 0111 0000 1111 1111 0000 0000 000000 -> Resto es “0” Asumo que recibí OKOK
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?