Comunicación de Datos I Práctico 3

Anuncio
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?
Descargar