You are on page 1of 86

F2T3: CONTROL DEL ENLACE

DE DATOS

Redes de Comunicaciones I
Ing. Mario Urrutia Espinoza
Diseño y procedimientos para
proporcionar comunicación
entre dos nodos adyacentes

Cómo compartir el
enlace

MUE 2
Separa un mensaje en
bloques, añadiendo la
dirección del emisor y del
destino

MUE 3
No hay necesidad de definir las
fronteras de las tramas; el
tamaño en sí mismo se usa como
delimitador. Por ejemplo ATM

Se hace necesario definir el


principio y final de una trama. Por
ello se usan separadores
denominados flags.
Ejemplo LANs

MUE 4
MUE 5
Las tramas de tamaño fijo se conocen como celdas. En una red de celdas,
todos los datos se cargan en celdas idénticas que pueden ser transmitidas
en forma uniforme y predecible. Debido a que cada celda es del mismo
tamaño y éste es pequeño, se eliminan los problemas asociados con la
multiplexación de paquetes de tamaño diferente
La tecnología ATM (modo de
transferencia asíncrona) utiliza
celdas. Fue diseñado para redes
que deben manejar el tráfico
tradicional de datos de alto
rendimiento (por ejemplo,
transferencias de archivos) y
contenido de baja latencia en
tiempo real, como voz y video.
MUE 6
Trama

Pero, cualquier patrón usado como flag podría ser


parte de la información. Para evitar ello, se usa la
Transparencia a nivel de byte que consiste en
añadir un byte denominado ESC cada vez que
haya un flag dato y también, cada vez que haya
un ESC dato
MUE 7
El flag que se añade está definido, 01111110, pero se puede
presentar el mismo problema anterior por lo tanto se usa la
Transparencia a nivel de bit: si se encuentra un 0 y cinco unos
consecutivos, se añade un cero

Trama

MUE 8
Define un conjunto de procedimientos usados
para restringir la cantidad de datos que el emisor
puede enviar antes de esperar una confirmación

Cada vez que se detecta un error en un intercambio, se


retransmite las tramas especificadas, proceso que se
denomina Petición de Repetición Automática (ARQ), a
excepción de los códigos de corrección de errores

MUE 9
El control de flujo
• Es una técnica utilizada para asegurar que una entidad de
transmisión no sobrecargue a la entidad receptora con una
excesiva cantidad de datos.
• Generalmente, el receptor reserva una zona de memoria
temporal para la transferencia. Cuando se reciben los datos, el
receptor debe realizar cierta cantidad de procesamiento antes de
pasar los datos a las capas superiores.
• En ausencia de procedimientos para el control de flujo, la
memoria temporal del receptor se podría llenar y desbordarse
mientras éste se encuentra procesando datos previos
MUE 10
Modelo de transmisión de tramas

MUE 11
• Se define el tiempo de transmisión como el tiempo empleado por
una estación para emitir todos los bits de una trama sobre el
medio; este tiempo es proporcional a la longitud de la trama.
• Se define el tiempo de propagación como el tiempo empleado por
un bit en atravesar el medio de transmisión desde el origen hasta el
destino.
• En una situación ideal, todas las tramas que se transmiten se
reciben con éxito; ninguna trama se pierde y ninguna llega con
errores; es más, las tramas llegan en el mismo orden en que fueron
transmitidas.
• No obstante, cada trama transmitida sufrirá un retardo arbitrario y
variable antes de ser recibida

MUE 12
El control de flujo
Control de flujo mediante parada y espera
• Una entidad origen transmite una trama.
Tras la recepción, la entidad destino indica
su deseo de aceptar otra trama mediante
el envío de una confirmación de la trama
que acaba de recibir.
• El origen debe esperar a recibir la
confirmación antes de proceder a la
transmisión de la trama siguiente.
• De este modo, el destino puede parar el
flujo de los datos sin más que retener las
confirmaciones.

MUE 13
Impide un uso eficiente de los enlaces, p. ej. Línea punto a punto de A a B de 64 Kbps de 4000 Km de
longitud, tramas de 640 bits:
0 ms: A empieza el envío de trama T1
10 ms: A termina envío de T1 y espera
20 ms: B empieza recepción de T1
30 ms: B termina recepción de T1; envía ACK de T1
50 ms: A recibe ACK de T1; empieza envío de T2

Eficiencia: 10/50 = 0,2 = 20%

MUE 14
El control de flujo
Control de flujo por ventana deslizante
Soluciona el problema de una única trama en tránsito:
• el emisor asigna a las tramas un número de secuencia
• el receptor trabaja con una memoria temporal que le permite almacenar n tramas
• el receptor envía un mensaje enviando el siguiente número de trama que espera recibir:
− confirma n tramas
− indica que está preparado para recibir n tramas
Este sistema implica el uso de dos ventanas (transmisión simplex):
• ventana emisor: lista de números de secuencia que se le permite transmitir
• ventana receptor: lista de números de secuencia que está esperando recibir
Para una transmisión Half-Duplex o Full-Duplex, el sistema necesita 4 ventanas:
emisión y recepción en cada terminal
MUE 15
MUE 16
• Implementa un pipeline para evitar los
tiempos muertos en la línea:
• 0 ms: A envía la trama T1
• 10 ms: A envía T2;
• 20 ms: A envía T3; B empieza a recibir T1
• 30 ms: A envía T4; B envía ACK(T1)
• 40 ms: A envía T5
• 50 ms: A recibe ACK(T1) y envía T6
• Ventana mínima para 100% de ocupación: 5
• Resuelve problema de eficiencia a cambio de
mayor complejidad y espacio en buffers

• La ventana mínima para 100% de ocupación


es la que “llena el hilo” de datos en ambos
sentidos, mas uno:
𝑣
𝑊 = 2𝜏 +1 Ejemplo:
𝑡
• W: tamaño de ventana Sea una trama de 640 bits en un canal de 64 Kbps con un
• : tiempo de propagación (en segundos) tiempo de propagación de =20ms, halle la ventana mínima:
• v: velocidad de la línea 𝑣 64. 103
• t: tamaño de trama 𝑊 = 2𝜏 + 1 = 2 ∙ 20. 10 −3 + 1 = 5 𝑡𝑟𝑎𝑚𝑎𝑠
𝑡 640
MUE
El control de errores
• Es uno de los procesos más importantes a considerar en una
transmisión de datos
• Dadas las limitaciones de los medios de comunicación es clara la
necesidad de arbitrar técnicas que determinen la ocurrencia o no
de errores debidos al canal de transmisión
• Para ello se precisa la inclusión de redundancia en las
transmisiones para que el receptor pueda determinar si los datos
son correctos o no.
• Para este fin se utilizan códigos que realizan una transformación
de los datos a enviar, lo que permite detectar y en algunos casos,
corregir los errores producidos
MUE 18
ERRORES
El error de ráfaga
Error de bit  Es el más probable
En un error de bit, solamente  El número de bits afectados depende de la
cambia un bit de la unidad de tasa de datos y la duración del ruido.
 Si se está enviando 1 Kbps, un ruido de 10 ms
datos. puede afectar a 10 bits; si se envia datos a 1
Es muy poco probable por su Mbps el mismo ruido puede afectar a 10 000
cortísima duración bits.

0 cambiado por 1

Enviado Recibido

MUE 19
Detección vs Corrección
 En la detección de errores solo se mira si ha ocurrido un error, la
respuesta es simple: si o no. No interesa el número de errores
 En la corrección de errores, se necesita saber el número de bits que se
han dañado y su posición.
 La corrección es más difícil que la detección

Corrección de errores hacia delante vs Retransmisión


 En la corrección de errores hacia adelante, el receptor intenta adivinar el
mensaje usando los bits redundantes. Esto es posible si el número de
errores es pequeño
 En la corrección por retransmisión, el receptor detecta el error y
simplemente pide la retransmisión.

MUE 20
CODIFICACIÓN DE BLOQUES

• Como se indicó anteriormente, para detectar o corregir


errores se precisa la inclusión de redundancia en las
transmisiones para que el receptor pueda determinar si los
datos son correctos o no.
• Para este fin se utilizan códigos que realizan una
transformación de los datos a enviar, lo que permite detectar
y en algunos casos, corregir los errores producidos

MUE 21
 En la codificación de bloques, se divide el mensaje en bloques de k bits,
denominados palabras de datos.
 Se añaden r bits redundantes a cada bloque hasta conseguir una
longitud de n = k + r.
 Los bloques resultantes se denominan palabras código

 Con k bits, se puede crear una combinación de 2k palabras de datos


 Con n bits, se puede crear una combinación de 2n palabras código
 Como n > k, el numero de palabras código es siempre mayor que el
número de palabras de datos.
 Eso significa que se tienen 2n – 2k palabras código que no se usan.

MUE 22
Ejemplo

La codificación de bloques
4B/5B es un ejemplo de
codificación.

En esta codificación, k = 4 y n = 5. Se tienen 2k = 16 palabras de datos y 2n = 32 palabras


código. 16 de las 32 palabras código se utilizan para la transferencia de mensajes y el
resto se utilizan para otros objetivos o no se utilizan.
MUE 23
Detección de errores
 Para detectar un cambio en la palabra código original, se debe cumplir 2
condiciones:
• El receptor tiene (o puede encontrar) una lista de palabras código válidas
• La palabra código original ha cambiado a una inválida

Proceso de detección de errores en la codificación de bloques


MUE 24
Ejemplo Asuma que el emisor codifica la palabra
01 como 011 y la envía al receptor.
Asuma que k = 2 y n = 3. La tabla
Considere los siguientes casos:
muestra la lista de palabras de
datos y códigos. 1.
El receptor recibe 011. Es un código
Conclusión: válido. El receptor extrae la palabra 01.
 Un
Palabras código
de datos dede código
Palabras detección de errores sólo
2. El código se puede
daña durante la transmisión
y se recibe 111 (se daña el bit más a la
detectar los tipos de errores para los que ha sido
izquierda). El código recibido no es válido
y se descarta.
diseñado. 3. El código se daña durante la transmisión
 Otros tipos de errores pueden ser y se indetectables.
recibe 000 (se cambian los dos bits de
la derecha). El código recibido es válido,
Código para detección de errores el receptor extrae la palabra 00. Errores
en dos bits han hecho que el error sea
indetectable.

MUE 25
Corrección de errores
 En la corrección de errores, el receptor necesita encontrar o adivinar el
código original enviado.
 Es necesario añadir más bits redundantes para la corrección que para la
detección

Estructura del codificador y decodificador en la corrección de errores.


MUE 26
Ejemplo  Asuma que la palabra es 01. El emisor consulta su
tabla para crear el código 01011.
 Se van a añadir más bits redundantes al  Consideremos que el código se daña durante la
ejemplo anterior para ver si el receptor transmisión y se recibe 01001.
puede corregir un error sin conocer qué  En primer lugar, el receptor encuentra que el código
es lo que se envió. no está en la tabla. Esto significa que ha habido un
 Se añaden 3 bits redundantes a la palabra error.
de datos de 2 bits para obtener códigos de  El receptor, asumiendo que sólo se ha dañado un bit,
5 bits. utiliza la siguiente estrategia para adivinar la
 La tabla muestra las palabras de datos y palabra:
de códigos. i. Se compara el código recibido con el primer código de
la tabla (01001 con 00000). El receptor decide que el
primer código no es uno de los enviados porque hay
dos bits diferentes. Por el mismo motivo, el código no
puede ser ni el tercero ni el cuarto de la tabla.
ii. El código original debe ser el segundo de la tabla
debido a que es el único que difiere del primero en un
bit. El receptor reemplaza 01001 por 01011 y consulta
la tabla para encontrar la palabra de datos 01.

MUE 27
Distancia Hamming
 La distancia Hamming entre dos palabras (del mismo tamaño) es el número de
diferencias entre los bits correspondientes. Se calcula con la operación XOR sobre las
dos palabras y luego se cuenta el número de “1” resultantes
 La distancia Hamming entre dos palabras x e y se indica como d(x,y). Por ejemplo, si el
código enviado es 00000 y se recibe 01101, hay 3 bits con errores y la distancia
Hamming entre las dos palabras sería: d(00000, 01101) = 3
Distancia Hamming de un código
 Es la distancia mínima entre las palabras que componen un código. Conocido también
como mínima distancia de Hamming.
 Sea el código {100, 111, 011}. La mínima distancia de Hamming para el código sería:
dmin = mín { d(100, 111), d(100, 011), d(111, 011)} =
dmin = mín {2, 3, 1}
dmin = 1.
MUE 28
Propiedades para la detección de Propiedades para la corrección de
errores errores
 Para detectar d errores de un bit entre  Para corregir d errores de un bit
dos palabras, es necesario un código con entre dos palabras es necesario un
una distancia de Hamming de al menos código con una distancia de
d+1. Dicho de otra forma, con una Hamming de al menos 2d+1. Dicho
distancia de Hamming d se pueden de otra forma, con una distancia
detectar d-1 errores mínima de Hamming d se pueden
 Ejemplo: C = {001, 010, 100}, d = 2 corregir (d-1)/2 errores
– Un error aislado se detecta:  Ejemplo: Código C = {0000000000,
Un error en 001, esto es: 101, 011, 000, es 0000011111, 1111100000,
detectable
– Dos errores aislados no se detectan: 1111111111}. dmin = 5
– Se pueden detectar d-1 = 5-1 = 4 errores
Dos errores en 001, esto es: 111, 010, 100, no
– Se pueden corregir (d-1)/2 = 4/2 = 2 errores
es detectable.

MUE 29
CÓDIGOS DE BLOQUES LINEALES

 Casi todos los códigos de bloques utilizados hoy en día pertenecen a un


subconjunto denominado código de bloques lineales.
 Un bloque lineal es un código en el que la operación XOR (suma
módulo 2) de dos códigos válidos crea otro código válido
Ejemplos

MUE 30
Mínima distancia para códigos de bloques lineales

 La mínima distancia Hamming para un código de bloques lineal es el


numero de “1” en el código válido (distinto de cero) que tenga el
menor número de “1”.

• En el código de la primer tabla, los “1” en las palabras código son 2, 2, y 2. Por
ello, dmin = 2.
• En el código de la segunda tabla, los “1” en las palabras código son 3, 4, y 3. Por
ello, dmin = 3.

MUE 31
Códigos de paridad

 Es el más familiar de los códigos de detección.


 Una palabra de datos de k bits se convierte en un código
de n bits, con n = k + 1.
 El bit extra (bit de paridad) se selecciona de forma que el
número de “1” en el código sea par a lo que se conoce
como paridad par (también existe paridad impar)
 La mínima distancia de Hamming es 2 lo que significa que
el código puede detectar errores en 1 bit

MUE 32
Codificador y decodificador para el código de paridad
Código de paridad C(5,4)
 El codificador utiliza un generador que
toma una copia de los 4 bits de la
palabra de datos (a0, a1, a2, a3) y
genera un bit de paridad r0.
 Los bits de la palabra de datos y el bit
de paridad crean un código de 5 bits.
 El bit de paridad añadido hace que el
número de “1” en el código sea par.
Esto se hace sumando (modulo 2) los
4 bits de la palabra de datos.

 El receptor recibe una palabra de 5 bits.


 El comprobador del receptor hace una suma (modulo 2) sobre los 5 bits.
 El resultado, denominado síndrome, es solo 1 bit. El sindrome es 0 cuando el número de “1” recibidos es par y 1 en caso
contrario
 El síndrome se pasa a la lógica de decisión donde se analiza. Si es “0”, no hay error y se acepta la palabra de datos. Si es
“1” hay error por lo que se descarta la palabra de datos

MUE 33
Paridad en dos dimensiones
 Un mejor enfoque es la comprobación de paridad en dos dimensiones, lo que permite
detectar hasta tres errores que puedan ocurrir en cualquier posición de la tabla.
 La palabra de datos se organiza en una tabla (filas y columnas)

 En la figura, los datos a enviar (4 Bytes de 7 bits) se colocan en filas diferentes.


 Para cada fila y cada columna se calcula un bit de paridad
 La tabla completa se envía al receptor que encuentra el síndrome para cada fila y cada
columna
MUE 34
Código Hamming
 Es un código detector y corrector de errores que lleva el nombre de su inventor.
 Si se añaden junto al mensaje más bits detectores-correctores de error y esos bits se
pueden ordenar de modo que diferentes bits de error producen diferentes
resultados, entonces los bits erróneos podrían ser identificados. En un conjunto de
siete bits, sólo hay siete posibles errores de bit, por lo que con tres bits de control de
error se podría especificar, además de que ocurrió un error, en qué bit fue.
 Los códigos Hamming fueron originalmente diseñados con una distancia dmin = 3, lo
que significa que pueden detectar hasta dos errores.
 Los valores de k (palabra de datos), n (palabra de código) se calculan a partir de los
bits redundantes (r) de forma que:

MUE 35
 Por ejemplo, si r=3, entonces n=7 y k=4.
 El código que se muestra en la tabla es un
código Hamming C(7,4) con dmin = 3
Palabras de datos Palabras código
0000 0000000
0001 0001101
0010 0010111
0011 0011010
0100 0100011
0101 0101110
0110 0110100
0111 0111001
1000 1000110
1001 1001011
1010 1010001
1011 1011100
1100 1100101
1101 1101000
Estructura del codificador y del decodificador
1110 1110010
para un Código Hamming
1111 1111111
MUE 36
Procedimiento para generar la palabra de código
Bits de redundancia:
Para calcular el número de bits de redundancia (r) necesarios para corregir
un número de bits de datos (k) se usa la relación:
2r ≥ k + r + 1
 Ejemplo: para enviar un código ASCII de siete bits se necesitaría cuando menos de:
24 ≥ 7 + 4 + 1
r = 4 bits de redundancia
 Estos 4 bits se ubican en las posiciones 1, 2, 4 y 8 (potencias de 2) dejando el resto
para los datos:

11 10 9 8 7 6 5 4 3 2 1

d d d r d d d r d r r

MUE 37
Posición del bit de
8 4 2 1 r1 r2 r4 r8
Cada bit r es el comprobador de datos
paridad para una combinación 1 0 0 0 1 1 0 0 0
de datos: 2 0 0 1 0 0 1 0 0
r1= bits 1, 3, 5, 7, 9, 11.
3 0 0 1 1 1 1 0 0
r2= bits 2, 3, 6, 7, 10, 11.
r4= bits 4, 5, 6, 7. 4 0 1 0 0 0 0 1 0
r8= bits 8, 9, 10, 11. 5 0 1 0 1 1 0 1 0
Esto es, cada bit r comprueba la
6 0 1 1 0 0 1 1 0
paridad de los bits de las
posiciones de los datos que 7 0 1 1 1 1 1 1 0
contengan al bit r en su 8 1 0 0 0 0 0 0 1
representación binaria, de
9 1 0 0 1 1 0 0 1
acuerdo a la siguiente tabla:
10 1 0 1 0 0 1 0 1
11 1 0 1 1 1 1 0 1

MUE 38
Ejemplo: Creación del código Hamming para transmitir el dato: 1 0 0 1 1 0 1

Dato a transmitir: 1 0 0 1 1 0 1 11 10 9 8 7 6 5 4 3 2 1

Se ubica los bits en las posiciones 1 0 0 1 1 0 1


predeterminadas

Para r1: 11 10 9 8 7 6 5 4 3 2 1
Se asigna un bit 1 haciendo cumplir la
paridad junto a los bits 3, 5, 7, 9 y 11 1 0 0 1 1 0 1 1

Para r2: 11 10 9 8 7 6 5 4 3 2 1
Se asigna un bit 0 haciendo cumplir la
paridad junto a los bits 3, 6, 7, 10 y 11
1 0 0 1 1 0 1 0 1

Para r4: 11 10 9 8 7 6 5 4 3 2 1
Se asigna un bit 0 haciendo cumplir la
paridad junto a los bits 5, 6 y 7. 1 0 0 1 1 0 0 1 0 1

Para r8: 11 10 9 8 7 6 5 4 3 2 1
Se asigna un bit 1 haciendo cumplir la
paridad junto a los bits 9, 10 y 11. 1 0 0 1 1 1 0 0 1 0 1

Luego, el código a transmitir sería: 10011100101


MUE 39
En el receptor, veamos lo que sucede si el dato recibido es el mismo:
10011100101
Ubicación del dato:
11 10 9 8 7 6 5 4 3 2 1

1 0 0 1 1 1 0 0 1 0 1

Determinación de los bits de redundancia:


Paridad para r1= (1,3,5,7,9,11) = (1,1,0,1,0,1) = 0
Paridad para r2= (2,3,6,7,10,11) = (0,1,1,1,0,1) = 0
Paridad para r4= (4,5,6,7) = (0,0,1,1) = 0
Paridad para r8 (8,9,10,11) = (1,0,0,1)= 0

Luego: r8 r4 r2 r1
0 0 0 0
Conclusión: No hay error

MUE 40
Pero que pasa si hay error en el dato recibido, por ejemplo:
10010100101
Ubicación del dato:
11 10 9 8 7 6 5 4 3 2 1

1 0 0 1 0 1 0 0 1 0 1

Determinación de los bits de redundancia:


Paridad para r1= (1,3,5,7,9,11) = (1,1,0,0,0,1) = 1
Paridad para r2= (2,3,6,7,10,11) = (0,1,1,0,0,1) = 1
Paridad para r4= (4,5,6,7) = (0,0,1,0) = 1
Paridad para r8 (8,9,10,11) = (1,0,0,1)= 0

Luego: r8 r4 r2 r1
0 1 1 1

Conclusión: El bit de la posición 7 tiene error

MUE 41
Palabras de datos Palabras código
Códigos cíclicos 0000 0000000
0001 0001011
0010 0010110
 Los códigos cíclicos son códigos de bloques 0011 0011101
lineales especiales con una propiedad extra. 0100 0100111

 En un código cíclico, si un código se desplaza 0101 0101100


0110 0110001
cíclicamente (rota), el resultado es otra palabra
0111 0111010
del código. 1000 1000101
 Por ejemplo, si 1011000 es un código y se 1001 1001110
desplaza cíclicamente a la izquierda, entonces 1010 1010011

0110001 también es una palabra código 1011 1011000


1100 1100010
1101 1101001
1110 1110100
1111 1111111

Un código CRC con C(7, 4)

MUE 42
Comprobación de Redundancia Cíclica (CRC)
EN EL EMISOR:
 En el codificador, la palabra de datos tiene k
bits (4) y la palabra código tiene n bits (7)
 La palabra de datos se incrementa añadiendo
n – k = 3 ceros a su derecha. El resultado de n
bits se introduce en el generador.
 El generador usa un divisor predefinido y
acordado de tamaño n – k + 1 = 4 bits. El
generador divide la nueva palabra de datos
por el divisor (división en módulo 2).
 El cociente se descarta y el residuo se añade a
la palabra de datos original para crear el
código

EN EL RECEPTOR:
 El decodificador recibe el código enviado
 Una copia de los n bits se introduce en el comprobador.
 El residuo producido por el comprobador es un síndrome de n - k = 3 bits que se introducen en la lógica de división
 Si todos los bits son “0”, los 4 bits de la izquierda son aceptados como palabra de datos (ausencia de error), caso
contrario, se descartan.
MUE 43
Ejemplo: Generación de la palabra código Palabra de datos

División

Cociente
Dividendo
(palabra
Divisor
de datos
aumentada

Bit de la izquierda 0:
Usa el divisor 0000

Bit de la izquierda 0:
Usa el divisor 0000
Resto

Palabra código
Palabra de datos Resto

MUE 44
Decodificación de CASO 1: CASO 2:
la palabra código
para dos casos: Palabra código Palabra código

División División

Palabra Palabra
código código

45
Síndrome Síndrome

Palabra de datos Palabra de datos


aceptada descartada

MUE
Polinomios
 Una forma de entender los códigos cíclicos y cómo analizarlos es representarlos como polinomios.
 Un patrón de “0” y “1” pueden representarse como un polinomio con coeficientes con valor 0 y 1
 La potencia de cada término muestra la posición del bit, el coeficiente muestra el valor del bit

Un polinomio para
representar una
palabra binaria

a. Patrón binario y polinomial b. Forma abreviada

 En la figura se muestra un beneficio inmediato: un patrón de 7 bits se puede reemplazar por 3 términos.
 El beneficio puede ser mayor. Por ejemplo el polinomio x21 + x3 +1 representa un patrón de 24 bits que se
representa por un polinomio de 3 términos.

MUE 46
Palabra de datos

 Analicemos el ejemplo anterior de


codificador de código cíclico pero
Dividendo
usando polinomios (palabra de
 La palabra de datos 1001 se datos
aumentada)
representa como x3+1. El divisor
1011 se representa como x3+x+1.
 Para encontrar la palabra de datos
aumentada, se desplaza a la Resto
izquierda la palabra de 3 bits
(multiplicando por x3).
 El resultado es x6+x3. Palabra código

Palabra de datos Resto

División CRC utilizando polinomios

MUE 47
Códigos Convolucionales Codificación
Existen varios métodos de codificación
 Son códigos lineales al igual que los aunque una de la más usuales es la basada
códigos bloque y, por tanto, se utilizan en registros de desplazamiento conectados
para proteger la información con sumadores base 2 en los que se realiza
añadiendo redundancia a la misma, de la codificación. Por cada bit que entre en el
manera que las palabras del código codificador se obtienen n bits.
tengan la distancia mínima necesaria.
 Sin embargo, a diferencia de los Decodificación
códigos bloque, las palabras de un Consiste en escoger la secuencia más
código convolucional se generan no probable entre todas las posibles. Existen
sólo a partir de los dígitos de diversos algoritmos que permiten la
información actuales sino también con decodificación de este tipo de códigos y la
la información anterior en el tiempo. decodificación óptima se consigue
mediante el algoritmo de Viterbi..

MUE 48
Los códigos convolucionales se describen a partir de ciertos elementos
como son la tasa del código, la longitud del código y la memoria del
codificador.
• k: número de bits que entran al codificador.
• n: número de bits que salen del codificador.
• R: tasa del código k/n.
• K: longitud del código
• m: memoria del codificador (# de flip- flops del codificador).
La longitud del código, K, denota en cuántos ciclos de codificación tiene
influencia un bit que tengamos a la entrada del mismo a partir de un
instante dado, ya que este bit que tenemos a la entrada del codificador
en un instante dado irá recorriendo la cadena de flip-flops que forman
el registro de desplazamiento

MUE 49
En la figura se muestra un codificador básico con 3 registros, de los cuales R1 es un registro
de transito, y R2 y R3 son registros de memoria. Después de procesado el bit, este se
mueve hasta el registro siguiente

Según la configuración de
este diagrama, el circuito
está configurado con k=1
entradas, restricción de
palabras K=3 (número de
registros), y salidas n=3 con
m=2 memorias.

Las operaciones del circuito anterior para cada salida son:


S1 = R1
S2 = R1 xor R3
S3 = R1 xor R2 xor R3
MUE 50
Ejemplo:
Suponga que se quiere enviar la secuencia de bits 101011, donde los bits más a la
derecha son los más antiguos. Asumiendo que R1, R2 y R3 tienen inicialmente valor
nulo, y una vez introducido el primer valor de la secuencia de entrada, el proceso de
codificación es el siguiente:

La salida del bit 1 es 111


MUE 51
Cada bit que entra en el circuito se corre a la derecha mediante la operación Shift (corrimiento).
Para el segundo bit:

Para el tercer bit:

La salida del bit 2 es 110

Al final del proceso de codificación obtenemos que la secuencia codificada es:


111 110 010 100 001 100
MUE 52
Suma de comprobación
 Es usado por protocolos de alto nivel
 También se basa en el concepto de redundancia
 Suponga que los datos son una lista de cinco números de 4 bits que se quieren enviar al
destino. Además de enviar estos números, se envía la suma de los números.
 Por ejemplo, si el conjunto de números es 7, 11, 12, 0, 6, se envía 7, 11, 12, 0, 6, 36.
 El receptor suma los cinco números y compara el resultado con la suma.
 Si los dos son iguales, el receptor asume que no hay error, acepta los cinco números y
descarta la suma.
 En caso contrario, hay un error en algunos de los datos y no se aceptan.

 Se puede simplificar el proceso si se envía el valor negativo de la suma (complemento).


 En este caso, se envía: 7, 11, 12, 0, 6, -36.
 El receptor suma todos los números recibidos (incluyendo la suma de comprobación).
 Si el resultado es 0, entonces asume que no hay error, en caso contrario hay un error.
MUE 53
Procedimiento
Generador de Suma de Comprobación:
 En el emisor, se subdivide la unidad de datos en segmentos iguales de n bits.
 Estos segmentos se suman juntos usando aritmética en complemento a 1 de modo
que la longitud de la suma siga siendo n.
 Luego se complementa esa suma y se añade al final como redundancia conformando
el campo suma de comprobación y se envía.

Comprobador de la Suma de Comprobación


 El receptor subdivide la unidad similar a la forma en que hizo el emisor.
 Todas las secciones se suman similarmente a la generación.
 Se complementa la suma.
 Si el resultado es cero, se aceptan los datos, de otro modo, se rechazan.

MUE 54
Suponga que el siguiente bloque de 16 Si en el receptor se recibe el mismo patrón:
bits quiere enviarse usando suma de 10101001 00111001 00011101
comprobación de 8 bits: Se suman las tres secciones:
10101001 00111001
10101001
Se suman los números: 00111001
10101001 00011101
00111001
==========
========
11111111
11100010
Su complemento sería: 00000000
Se complementa: 00011101
Significa que el patrón es correcto
El patrón enviado es:
10101001 00111001 00011101

MUE 55
El complemento a uno
 El método anterior presenta una desventaja: todos los datos se
pueden escribir con una palabra de 16 bits excepto la suma de
comprobación.
 La solución es emplear el método de “complemento a 1”, donde,
en resumen, el dígito a “eliminar” se le suma a los dígitos base.
Ejemplo: Representar el número 21 en complemento a 1 usando sólo 4 bits.
Solución:
21 = 10101 → (5 bits)
Para expresarlo en 4 bits se toma el bit de la izquierda y se le suma a los
cuatro bits restantes:
0101 + 1 = 0110
MUE 56
Suma de comprobación en TCP/IP
TCP/IP ha usado SC de 16 bits:
En el emisor:
 El mensaje se divide en palabras de 16 bits
 El valor de la SC se pone a 0
 Todas las palabras se suman usando complemento a 1
 La suma se complementa y se convierte en la nueva SC.
 La nueva SC se envía con los datos

En el receptor:
 El mensaje, incluyendo la SC se divide en palabras de 16 bits
 Se suman todas las palabras usando complemento a 1
 Se complementa la suma y se convierte en la nueva SC
 Si la nueva SC = 0 se acepta el mensaje, caso contrario, se rechaza.

MUE 57
Ejemplo
Se desea enviar el siguiente mensaje: 466F 726F 757A 616E
Muestre el proceso tanto para el emisor como para el receptor usando SC

Solución
 En el emisor: 1 0 1 3 Acarreo
4 6 6 F Palabra 1
7 2 6 F Palabra 2
7 5 7 A Palabra 3
6 1 6 E Palabra 4
0 0 0 0 SC inicial
8 F C 6 Suma Parcial
1
8 F C 7 Suma total
7 0 3 8 Complemento (SC a enviar)

MUE 58
 En el receptor:
1 0 1 3 Acarreo
4 6 6 F Palabra 1
7 2 6 F Palabra 2
7 5 7 A Palabra 3
6 1 6 E Palabra 4
7 0 3 8 SC recibida
F F F E Suma Parcial
1
F F F F Suma Total
0 0 0 0 Complemento (SC Final)

MUE 59
TAREA 2:
• Presentar en forma bipersonal y manuscrita para la
próxima sesión, 10 ejercicios (entre el 11 y el 29) del
capítulo 10 del libro de Transmisión de Datos y Redes de
Comunicaciones, Forouzan, 4ta Ed.
• Presentar en la carátula la relación de dichos ejercicios
La creación de tramas y el control de flujo y errores se ponen
en práctica con la creación de protocolos los cuales se
definen para canales sin ruido (ideales) y con ruido (reales)

MUE 61
MUE 62
Es el más sencillo e ideal. No tiene control de flujo ni control de
errores y además es unidireccional

MUE 63
Simplest
 El receptor puede gestionar
inmediatamente cualquier trama que
reciba con un tiempo de
procesamiento despreciable

 El nivel de enlace en el emisor


recibe los datos de su nivel de
red, construye la trama y la envía
 El nivel de enlace del receptor
recibe la trama de su nivel físico,
extrae los datos de la trama y los
entrega al nivel de red

MUE 64
Si las tramas llegan al receptor más rápido de lo que pueden ser
procesadas deben ser almacenadas hasta que se usen

MUE 65
Parada y Espera
El emisor envía una trama cada vez y hasta que no recibe confirmación (ACK) no envía la siguiente. El proceso
continúa hasta enviar el fin de transmisión
Si el receptor no envía la trama de confirmación (ACK) en un tiempo preestablecido, el emisor procede a
reenviar dicha trama
Es bastante ineficaz:
• Si la longitud del enlace (número de bits presentes en el enlace) es mayor que la longitud de la trama
• En sistemas con alta velocidad de transmisión sobre grandes distancias
Es el protocolo fiable orientado a conexión más sencillo.

 El tráfico es bidireccional
 En cualquier momento hay tramas de
datos en el canal directo o una trama
ACK en el inverso
 Se necesita un enlace semiduplex

MUE 66
Aunque el protocolo con parada y espera nos da una idea de
cómo añadir control de flujo a su predecesor, los canales sin
ruido no existen.
Se puede ignorar el error (como se hace a veces) o puede ser
necesario añadir control de errores al protocolo.
MUE 67
 Para detectar y corregir tramas corruptas se añaden bits de
redundancia a las tramas de datos. Si la trama es corrupta se
descarta en silencio (es la forma de detectarlas).
 Se enumeran las tramas a fin de detectar las tramas perdidas o
duplicadas
MUE 68
 El emisor mantiene una copia de la
última trama transmitida hasta que
recibe una confirmación de esa trama
 Una trama de datos usa un número de
secuencia (seqNo).
 Una trama de confirmación usa un
número de confirmación (ackNo).

 Convención de números de
confirmación: estos números están en
módulo 2 (0 o 1) y siempre indican el
número de secuencia de la trama
siguiente esperada por el receptor.
 Por ejemplo, si la trama 0 ha llegado
bien, el receptor envía una trama ACK
con número de secuencia 1 (significa
que espera luego la trama 1). Si la
trama 1 llega bien, el receptor envia
una trama ACK con número 0 (indica
que espera la trama 0)

MUE 69
Ejemplo
• Se envía la trama 0 y se recibe
confirmación.
• La trama uno se envía y se pierde
y se reenvía después del
temporizador.
• La trama uno reenviada se
confirma y se para el
temporizador.
• La trama 0 se envía y es
confirmada, pero se pierde la
confirmación.
• El emisor no tiene idea de si se ha
perdido la trama con la
confirmación, por ello después del
temporizador reenvía la trama 0,
que es confirmada.

MUE 70
 Este protocolo es:
• Pesado: canal tiene gran ancho de banda
• Largo: mucho tiempo de ida y vuelta
 El producto de estos factores se denomina producto
ancho de banda-retardo
• Piense en el canal como una tubería
• El producto B-R es el volumen de la tubería
• La tubería siempre esta ahí, si no se usa, somos poco eficientes
 El producto B-R es una medida del número de bits que se
puede enviar mientras se espera noticias del receptor.

MUE 71
Ejemplo:
Sea un sistema ARQ con parada y espera, donde el ancho de banda de la línea es 1 Mbps
y que un bit necesita 20 ms para ida y vuelta. ¿Cuál es el producto ancho de banda-
retraso?. Si las tramas de datos del sistema tienen una longitud de 1000 bits ¿cuál es el
porcentaje de utilización del enlace?
Solución
El producto ancho de banda-retraso es:

Ello quiere decir que el sistema puede enviar 20 000 bits durante el tiempo que cuesta a los
datos ir del emisor al receptor y volver de nuevo.
Sin embargo, el sistema envía sólo 1000 bits. Se puede decir que el uso del enlace es:
1000/20 000 = 5%.
Por esa razón, para un enlace con un gran ancho de banda o un retardo muy grande, el
protocolo ARQ con parada y espera desperdicia la capacidad del enlace.
MUE 72
Ejemplo:
¿Cuál es el porcentaje de utilización del enlace del ejemplo anterior si tenemos un
protocolo que pueda enviar hasta 15 tramas antes de parar y preguntar por las
confirmaciones?

Solución
• El producto ancho de banda-retardo sigue siendo 20 000 bits.
• El sistema puede enviar hasta 15 tramas, o 15 000 bits, durante un viaje de idea y
vuelta.
• Esto significa que la utilización es :
15 000 / 20 000 = 75%.
• Por supuesto, si hay tramas dañadas el porcentaje de utilización es mucho menor
porque es necesario reenviar tramas.

MUE 73
 En el ARQ con parada y espera es necesario esperar a que una trama alcance
el destino y luego sea confirmada antes de enviar la siguiente.
 Lo que se busca ahora es empezar una tarea antes de terminar la anterior

 Para mejorar la eficiencia de la transmisión (llenar la tubería) debe haber


múltiples tramas en tránsito mientras espera una confirmación (pipelining).
 En este protocolo se pueden enviar varias tramas antes de recibir
confirmaciones. Se debe mantener una copia de estas tramas hasta que
lleguen las confirmaciones.
MUE 74
Números de secuencia
 Las tramas se numeran secuencialmente
pero debe haber un límite
 Si se admite m bits para numerar las
tramas, entonces los números de
secuencia varían de 0 a 2m - 1.
 Se asignan repetitivamente

Ventana deslizante:
 Es un concepto abstracto que define el rango
de números de secuencia que usan el emisor
y el receptor
 El rango que afecta al emisor se denomina
Ventana deslizante del emisor y similarmente
hay una Ventana deslizante en el receptor

MUE 75
 Puede haber múltiples
tramas en tránsito en
dirección al destino y
múltiples
confirmaciones en
dirección inversa.
 La idea es similar a ARQ
con parada y espera, la
diferencia es que la
ventana de envío
permite muchas
tramas en tránsito
mientras haya entradas
en la ventana de envío

MUE 76
Ventana de envío

 La ventana de envío
define una caja
imaginaria que divide
los números de
secuencia posible en
4 regiones.
 La ventana de envío
puede deslizarse una
o más entradas
cuando llega una
confirmación válida

MUE 77
Ventana de recepción  El receptor envía una confirmación si la trama ha
llegado bien y en orden.
 Es un concepto abstracto que asegura que se han  Si la trama está dañada o fuera de orden, el
recibido las tramas correctas y que se han receptor mantiene silencio y descarta las tramas
enviado las confirmaciones apropiadas siguientes hasta que recibe la que espera.
 Esta ventana define una caja imaginaria de  En el emisor, si expira el temporizador, el emisor
tamaño 1 con una única variable Rn. reenvía todas las tramas pendientes de
 La ventana desliza cuando llega una trama confirmación.
correcta; el desplazamiento sólo se produce en
una entrada cada vez.
Ventana de recepción, siguiente trama esperada

Tramas ya recibidas y Tramas que no pueden recibirse


confirmadas hasta que la ventana deslice

a. Ventana de recepción

b. Ventana de recepción después de desplazar


MUE 78
 ARQ con vuelta atrás N simplifica el proceso en el receptor, el cual mantiene una
única variable y no hay necesidad de almacenar tramas fuera de orden, simplemente
se descartan
 Es ineficiente para canales ruidosos

 En canales ruidosos hay mayor probabilidad de daño y por ende de


reenvío, lo que sobreutiliza el ancho de banda.
 La idea es no reenviar tramas después de haber detectado una dañada

MUE 79
MUE 80
Ventana de envío
 La ventana de envío es más pequeña que el caso anterior
 Por ejemplo, si m=4, los números de secuencia van de 0 a 15, pero el tamaño de la
ventana es 8
 Al ser más pequeña la ventana se compensa la menos eficiencia al rellenar la ventana
con la posibilidad de reenvío de tramas
 Se usa las mismas variables que el caso anterior

Ventana de envío, Ventana de envío, trama


primera trama siguiente a enviar
pendiente

Tramas Tramas que se


enviadas, pero pueden enviar Tramas que no se
Tramas ya
no confirmadas pueden enviar
confirmadas

MUE 81
Ventanas de
recepción, siguiente
trama que se espera

Tramas que pueden ser recibidas y


almacenadas para entrega posterior.
Tramas Tramas que no
Las cajas tramadas ya se han
ya recibidas pueden ser recibidas
recibido

Ventana de recepción
 La ventana de recepción es diferente ya que es del mismo tamaño que la de envío
 Este protocolo permite que lleguen fuera de orden tantas tramas como el tamaño de la
ventana de recepción y que se almacenen hasta que haya un conjunto de tramas fuera
de orden listas para enviar al nivel de red

 Para confirmar el envío se usa la orden ACK (ackNo)


 Para solicitar el reenvío se hace uso de la orden NAK (nakNo)
 El receptor nunca entrega tramas fuera de orden al nivel de red

MUE 82
MUE

Piggybacking
83
• Los tres protocolos vistos son unidireccionales, esto es, las tramas de
datos fluyen en una dirección aunque las tramas de control (ACK y
NACK) están viajando en la otra.
• En la práctica, las tramas de datos y por ende las de control deben
fluir en ambas direcciones
• El piggybacking es una técnica que permite mejorar la eficiencia de
los protocolos bidireccionales
• Cuando una trama lleva datos de A a B, también puede llevar
información de control sobre las tramas recibidas o perdidas
generadas en la comunicación desde B a A y viceversa.

MUE 84
ARQ con vuelta atrás usando piggybacking

• Cada nodo tiene dos


ventanas (una de envío y
otra de recepción)
• Ambas necesitan también
un temporizador
• Ambas están involucradas
en tres eventos: petición,
llegada y temporización
• El evento de llegada es el
más complicado: cuando
llega una trama, el sitio
necesita manejar la
información de control y la
de datos. El evento de
petición sólo usa la
ventana de envío de cada
sitio, el de llegada
necesita usar ambas
ventanas
MUE 85
Protocolos implementados:

HDLC y LLC
Comparación

Trabajo de investigación bipersonal en formato Paper IEEE


Subir al Aula Virtual el 26/05

MUE 86

You might also like