Transmisión de Datos 1
Tema 6: Control de Enlace
Departamento de Automática
TRANSMISIÓN DE DATOS
CONTROL DE ENLACE
TRANSMISIÓN DE DATOS
TRANSMISIÓN DE DATOS
CONTROL DE ENLACE
CONTROL DE ENLACE
Ángel Moreno
Departamento de Automática
Universidad de Alcalá
Departamento de Automática INTRODUCCIÓN
APLICACIÓN
PRESENTACIÓN
SESIÓN
TRANSPORTE
RED
ENLACE
FÍSICO
OBJETIVO:
Proporcionar un servicio de transmisión fiable (libre de errores) entre dos equipos conectados mediante un enlace.
FUNCIONES:
Establecer un formato de trama
Detectar y corregir errores de transmisión en las tramas
Controlar el flujo de tramas
Transmisión de Datos 3
Tema 6: Control de Enlace
Departamento de Automática INTRODUCCIÓN
Departamento de Automática
El Nivel Físico proporciona un enlace “cable” (los bits se reciben en el mismo orden que se transmiten), donde se transmiten señales.
Lamentablemente:
Hay errores de transmisión
El ancho de banda es limitado
La velocidad no tiene por qué coincidir en ambos extremos
El tiempo de propagación es finito
Si queremos una comunicación de datos efectiva => encima del Nivel Físico se necesita una capa lógica para gestión y control del intercambio de datos
Transmisión de Datos 5
Tema 6: Control de Enlace
Departamento de Automática
El Nivel de Enlace
Define el tipo de servicio
Agrupa los bits en tramas
Realiza la sincronización de trama
Controla el flujo de datos
Detecta y/o corrige errores
Realiza el direccionamiento en enlaces multipunto
Envía datos e información de control en el mismo enlace
Define los procedimientos para la gestión del enlace:
Inicio
Mantenimiento Liberación del enlace.
INTRODUCCIÓN
Departamento de Automática
El principal servicio es la transferencia de datos desde una entidad de red en la máquina origen a una entidad de red en la máquina destino.
En función de los requisitos, es posible establecer diferentes tipos de servicio:
No orientado a conexión (CL), sin asentimiento:
Canales con baja tasa de error, o para tráfico en tiempo real.
No orientado a conexión (CL), con asentimiento:
Canales poco fiables, inestables.
Orientado a conexión (CO):
Se establece una conexión antes de transferir datos
Garantiza que cada trama se recibe una y sólo una vez, y que el orden de recepción coincide con el de transmisión.
Transmisión de Datos 7
Tema 6: Control de Enlace
Departamento de Automática
Ni se establece conexión al principio, ni se libera al final
La fuente envía tramas sin esperar asentimiento (ACK)
Se ignoran los errores o pérdidas de tramas
El receptor puede saber cuándo hay errores, pero no se lo comunica al transmisor
Bueno para:
Canales muy fiables con topologías muy sencillas (poca conmutación)
Sistemas protegidos a niveles superiores
Tráfico en tiempo real
Ejemplo: envío postal ordinario
SERVICIO CL, SIN ASENTIMIENTO
Departamento de Automática
Ni se establece conexión al principio, ni se libera al final
Cada trama se asiente individualmente
El transmisor sabe cuándo hay errores (la trama no llega, o llega mal)
Bueno para:
Canales menos fiables o inestables
Sistemas protegidos a niveles inferiores
Sistemas donde la pérdida de una trama no es admisible
Ejemplo: envío postal con acuse de recibo
Transmisión de Datos 9
Tema 6: Control de Enlace
Departamento de Automática
Emisor y receptor establecen una conexión al principio y la liberan al final.
Se garantiza que cada trama:
Llega a su destino
Llega una y sólo una vez
Llega en el orden correcto
El Nivel de Red percibe un flujo de datos fiable
Ejemplo: conexión telefónica
SERVICIO ORIENTADO A CONEXION
Departamento de Automática
El Nivel de Enlace fragmenta la secuencia de bits (que le pasa el Nivel de Red) en tramas, antes de cedérsela al Nivel Físico.
Cada trama contiene una cabecera y un final, que permite:
Detectar el comienzo y final de la trama (sincronismo)
Identificar el destinatario
Detectar errores
Corregir errores
La cabecera y fin de trama incluyen información de:
El tipo de protocolo de enlace
El método de sincronización
Redundancia de los datos
Transmisión de Datos 11
Tema 6: Control de Enlace
Departamento de Automática
Ejemplo. Datos a transmitir:
1110001100001001 1100010001000000 1000011110000110 ...
FORMATO DE TRAMAS
01111110 Dirección Control 1110001100001001 Checksum 01111110
01111110 Dirección Control 1100010001000000 Checksum 01111110
01111110 Dirección Control 1000011110000110 Checksum 01111110
Departamento de Automática
Sincronización de bit: resuelta por el Nivel Físico
Sincronización de carácter: en protocolos orientados a
carácter
Transmisión asíncrona.
Transmisión síncrona.
Sincronización de trama: datos de nivel superior.
Tramas de longitud fija: delimitador de principio de trama
Tramas de longitud variable:
Delimitadores de principio y fin Delimitadores de principio y cuenta Banderas de sincronización
Transmisión de Datos 13
Tema 6: Control de Enlace
Departamento de Automática
El receptor debe distinguir, dentro de un flujo de bits, cuáles corresponden a un carácter y cuáles al siguiente.
Es necesario conocer el número de bits por carácter
Transmisión asíncrona:
Intervalos de arranque y parada
Sencillo pero ineficaz Transmisión síncrona:
Se transmiten los datos un bit tras otro sin símbolos
especiales conjuntamente con la información de sincronismo.
Es necesario emplear algún esquema de bits cuyo reconocimiento permita a transmisor y receptor interpretar los bits de un carácter de la misma forma
SINCRONIZACIÓN DE CARÁCTER
Departamento de Automática
Una vez alcanzadas las sincronizaciones de bit y carácter
Para delimitar unidades formadas por datos
correspondientes al nivel superior, información de control del protocolo y bits de redundancia
Tramas de longitud fija:
Todas las tramas poseen la misma longitud
Símbolo de principio de trama
Para saber dónde comienza la trama
Impone fuertes restricciones e ineficiencias a los protocolos
Transmisión de Datos 15
Tema 6: Control de Enlace
Departamento de Automática
Tramas de longitud variable:
Delimitadores de principio y fin
Simbolos de comienzo y de fin de trama
Suelen aparecer, además, otros caracteres de control e información de redundancia de verificación de trama Problema de transparencia de los datos
Delimitadores de principio y cuenta
Símbolo de comienzo de trama Cabecera de longitud fija
Datos de longitud variable (especificada en la cabecera)
Banderas de sincronización
Trama de estructura fija
Delimitada por una secuencia particular Problemas de transparencia de los datos
SINCRONIZACIÓN DE TRAMA
Departamento de Automática
La fragmentación (formación de tramas) es compleja:
Tamaño óptimo de la trama
Mejores secuencias de cabecera y fin
Mejor información de redundancia
Transparencia de cabecera y fin en los datos
Detección del fin de una trama y comienzo de la siguiente
Algunos métodos:
Temporización (poco utilizado)
Cuenta de bits
Caracteres de inicio y fin
Caracteres de inicio y fin con relleno de bits
Transmisión de Datos 17
Tema 6: Control de Enlace
Departamento de Automática
Se indica, para cada trama, su longitud:
Problemas:
Se pierde la sincronización si se transmite mal la longitud
Se pierde la sincronización si se produce un error de cuenta
Se pierde la sincronización si se pierde uno o varios bits
No se sabe dónde empieza la siguiente trama
No se sabe dónde comenzaría la retransmisión
CUENTA DE BITS
Nº Trama Longitud Datos Nº Trama Longitud Datos
Tramai Tramai+1
Departamento de Automática
Cada trama comienza con una secuencia de bits fácilmente reconocible (DLE STX)
Cada trama termina con una secuencia de bits fácilmente reconocible (DLE ETX)
¿Qué ocurre si en la secuencia de datos aparecen las secuencias de comienzo o fin de trama?
SECUENCIAS DE INICIO/FIN
Transmisión de Datos 19
Tema 6: Control de Enlace
Departamento de Automática
Posible solución:
Insertar el carácter DLE antes de cada aparición de DLE en la secuencia inicial, de manera tal que se garantice la no aparición de las secuencias de inicio / fin
Funcionamiento:
Se define el carácter especial, de “escape” (DLE), que indica que lo que viene a continuación es un carácter de control
En transmisión:
Si aparece DLE en la secuencia a transmitir, se duplica
En recepción:
Cuando el receptor detecta un carácter DLE, si el siguiente es distinto, lo interpreta como control. Si es DLE, lo toma como dato (una sola vez)
SECUENCIAS DE INICIO/FIN
Departamento de Automática
EJEMPLO:
SECUENCIAS DE INICIO/FIN
DATOS : 9 STX ACK 2 DLE ETX
TX : DLE STX 9 STX ACK 2 DLE DLE ETX DLE ETX
RX : DLE STX 9 STX ACK 2 DLE DLE ETX DLE ETX
X
CTRL
X
X
Transmisión de Datos 21
Tema 6: Control de Enlace
Departamento de Automática
La secuencia de inicio / fin es un patrón especial de bits, 01111110, llamado indicador
Funcionamiento:
En transmisión:
Cada vez que aparecen 5 unos consecutivos, se inserta un bit 0 de forma automática
En recepción:
Cuando el receptor detecta 5 unos consecutivos, seguidos de un cero, lo elimina de forma automática
RELLENO DE BITS
Bit Stuffing
Bit Stuffing
Departamento de Automática
EJEMPLO:
DATOS : 00011111010111111110001111110
TX : 011111100001111100101111101110001111101001111110
El transmisor impide que se envíen más de 5 unos seguidos, insertando un cero tras el quinto
El receptor, cuando detecta 5 unos, si el siguiente es cero lo elimina, y si es 1 asume el carácter de escape
Transmisión de Datos 23
Tema 6: Control de Enlace
Departamento de Automática
Es muy posible que el transmisor genere tramas a mayor velocidad de la que puede alcanzar el receptor.
Es preciso implantar mecanismos, a nivel de enlace, que permitan “frenar” al transmisor.
Estos mecanismos se basan en realimentar al transmisor con información sobre el estado del receptor.
Mecanismos típicos:
Control básico, mediante secuencias ACK / NACK
Control extendido, mediante intercambio de parámetros durante el establecimiento de llamada, y control de flujo mediante señalización, durante la transmisión
CONTROL DE FLUJO
Departamento de Automática
Diagrama temporal
Tiempo de transmisión de una trama
Tiempo de retardo de transmisión o de propagación
Transmisión de Datos 25
Tema 6: Control de Enlace
Departamento de Automática
El transmisor envía una trama y espera hasta recibir la aceptación del receptor.
El receptor controla el flujo reteniendo las confirmaciones.
Eficiente si se envían pocas tramas de gran tamaño
Las tramas suelen ser pequeñas debido a:
Tamaño limitado de memoria temporal del receptor
Probabilidad de errores mayor en tramas largas
Medios compartidos: evitar retardos excesivos al resto
PARADA Y ESPERA
Departamento de Automática
TX RX
TR
ACK
TR
ACK
TR
ACK PARADA Y ESPERA
Transmisión de Datos 27
Tema 6: Control de Enlace
Departamento de Automática
Conexión full-duplex (A es el transmisor y B el receptor).
B puede aceptar y almacenar n tramas
A puede enviar n tramas sin esperar confirmación.
Tramas numeradas para identificar las confirmaciones.
B confirma tramas enviando el número de trama que espera recibir
A la vez informa que está preparado para recibir las n tramas siguientes
Puede confirmar varias a la vez.
VENTANA DESLIZANTE
Departamento de Automática
TX RX
TR 0
RR 1 TR 1
RR 2 TR 2
RR 3 TR 3
TR 0
RR 0 TR 1
TR 2
RR 3
TR 3
Transmisión de Datos 29
Tema 6: Control de Enlace
Departamento de Automática
Ventana en A: lista de números de secuencia de tramas que se permiten transmitir.
Ventana en B: lista de números de secuencia de tramas que se esperan recibir.
Numeración:
Ocupa un campo de las tramas
n bits ==> números de 0 a 2n-1
Numeración módulo 2n
N máximo de ventana: sin errores, 2n
Los números de secuencia se vuelven a utilizar cíclicamente
VENTANA DESLIZANTE
Departamento de Automática
Funcionamiento (sin errores):
En A: la ventana se cierra por el límite inferior al transmitir una trama y se abre por límite superior al recibir
confirmaciones.
En B: la ventana se cierra por límite inferior al recibir una trama, se abre por el límite superior al enviar
confirmaciones.
Transmisión de Datos 31
Tema 6: Control de Enlace
Departamento de Automática VENTANA DESLIZANTE
Departamento de Automática
Con objeto de asegurar que los datos transmitidos y luego recibidos se pasan al nivel superior (red) libres de errores:
Sin alteraciones en las secuencias de bits En el orden correcto de tramas
Sin duplicidades
DETECCIÓN / CORRECCIÓN DE ERRORES
PROBLEMA EFECTO OBSERVADO POSIBLE SOLUCION
Error de bit, trama incompleta
La trama se recibe mal
La trama no se recibe
La trama se recibe tras
No se sabe si la recepción fue correcta
La trama no sirve
Espera indefinida
Duplicidad de trama
Código de redundancia, CRC
Solicitar re-envío (ACK/NACK)
Temporizadores
Transmisión de Datos 33
Tema 6: Control de Enlace
Departamento de Automática
Al añadir información redundante a una secuencia de datos, es posible (hasta cierto punto) detectar errores en
recepción y, eventualmente, corregirlos.
Todo código de detección y/o corrección tiene limitaciones en cuanto al número y tipo de errores detectables y/o corregibles
Existe un compromiso técnico entre el volumen de información redundante y la capacidad de corrección
Otras limitaciones:
No siempre los errores son aislados (errores de “ráfaga”)
Puede haber errores al transmitir la propia información redundante
DETECCIÓN / CORRECCIÓN DE ERRORES
Departamento de Automática
Ejemplos:
DETECCIÓN / CORRECCIÓN DE ERRORES
NOMBRE : Pepe
EDAD : 24 TX
NOMBRE : Pepe EDAD : 14
NOMBRE : Pepe EDAD : 24 MAYOR EDAD : SI
TX NOMBRE : Pepe
EDAD : 14 MAYOR EDAD : SI
NOMBRE : Pepe EDAD : 24 MAYOR EDAD : SI AÑO NACIM : 1976
TX
NOMBRE : Pepe EDAD : 14 MAYOR EDAD : SI
X
Transmisión de Datos 35
Tema 6: Control de Enlace
Departamento de Automática
Códigos detectores:
De paridad simple
De redundancia cíclica (CRC)
Control de errores
Códigos correctores
FEC (Forward Error Correction): Distancia Hamming
Retransmisión de tramas: ARQ (Automatic Repeat Request)
ARQ con parada y espera ARQ con rechazo simple ARQ con rechazo selectivo.
DETECCIÓN / CORRECCIÓN DE ERRORES
Departamento de Automática
Entre dos palabras: número de bits en que se diferencian
De un código (d): mínima distancia que se puede obtener entre dos palabras cualesquiera del código
Condición de detección:
La palabra no coincide con ninguna de las del código
Cada cambio que se produce en un bit de la palabra: 1 error
Para detectar p errores: d = p + 1 Condición de corrección:
Sustituir la palabra errónea por la más cercana
La más cercana es la de menor distancia Hamming
Si queremos corregir p errores: d = 2p + 1
Transmisión de Datos 37
Tema 6: Control de Enlace
Departamento de Automática
Ej: Código de dos bits
Cada palabra sin codificar tiene una longitud de 2 bits
Cada palabra codificada tiene una longitud de 12 bits
La distancia Hamming es d = 6
Permite detectar 5 errores (p = d - 1) Permite corregir 2 errores (p = d/2 - 1)
00 01 10 11
SIN CODIFICAR CODIFICADO
000000000000 000000111111 111111000000 111111111111 DISTANCIA HAMMING Departamento de Automática
Ej: Si transmitimos 000000000000, puede llegar:
Es capaz de detectar 5 errores
Es capaz de corregir 2 errores
000000000000 000000000001 000000000011 000000000111 000000001111 000000011111 000000111111 RECIBE DISTANCIA HAMMING ERRORES 0 1 2 3 4 5 6 NO DETECTA 00 00 00 / 01
Transmisión de Datos 39
Tema 6: Control de Enlace
Departamento de Automática
Bit de paridad: se añade a la secuencia inicial un bit que
fuerza que el número de “unos” sea par (paridad par) o impar (paridad impar):
Es un código de detección simple. Si hay más de un error en la trama, no lo detecta correctamente.
Tampoco permite corregir errores simples.
CÓDIGOS DE PARIDAD SIMPLE
0110011 1101101 1010101 0000000 1111111
SECUENCIA PARIDAD PAR PARIDAD IMPAR
0110011 0 1101101 1 1010101 0 0000000 0 1111111 1
0110011 1 1101101 0 1010101 1 0000000 1 1111111 0
Departamento de Automática
Dado un bloque o mensaje de m bits, el transmisor genera una secuencia de r bits, denominada secuencia de
comprobación de trama, de forma que la trama resultante, de n = m + r bits, sea divisible por un número determinado.
El receptor divide la trama recibida por ese número y, si no hay resto en la división, supone que no hay errores.
Se utiliza aritmética módulo 2
Sumas y restas binarias sin acarreo
Equivalente a utilizar la operación lógica O - Exclusivo
Transmisión de Datos 41
Tema 6: Control de Enlace
Departamento de Automática
Se parte de la trama de m bits, que se representa mediante un polinomio de grado m-1:
M(x) = xm-1+ ... +x0 (Ej, 101001 x5+x3+x0)
Se añaden r (r<m) bits a 0, a la derecha de la trama
XrM(x) = xm+r-1+ ... +xr
Se toma un polinomio generador G(x) de grado r (r+1 bits)
El primer y último bit deben ser 1
G(x) = xr+ ... + x0) (Ej. 1011 x3+ x1+ x0)
Conocido por transmisor y receptor
CÓDIGOS DE REDUNDANCIA CÍCLICA
Departamento de Automática
Se calcula el resto de la división (módulo 2)
XrM(x)/G(x) R(x)
Se calcula la trama a transmitir, T(x)
T(x) = XrM(x) - R(x)
La redundancia introducida es el resto de la división
Al receptor le llega T(x) + E(x) (siendo E(x) el error)
El receptor vuelve a dividir por el polinomio generador, G(x)
Si E(x) ≠0 {T(x)+E(x)}/G(x) no tiene, en general, resto nulo
Transmisión de Datos 43
Tema 6: Control de Enlace
Departamento de Automática
La propiedad anterior es cierta sólo si E(x)/G(x) tiene resto no nulo
Existen polinomios generadores G(x) que minimizan la probabilidad de que dicho resto sea nulo, para
determinados tipos de errores (simples, dobles, ráfagas, etc.)
CRC-12
x12+x11+x3+x2+x+1
CRC-16
x16+x15+x2+1
CRC-CCITT
x16+x12+x5+1
POLINOMIO DETECTA
Números impares de errores, en ráfagas
Errores simples, errores dobles y ráfagas
Similar a CRC-16
CÓDIGOS DE REDUNDANCIA CÍCLICA
Departamento de Automática
Códigos que, ante la detección de errores en la trama, permiten hasta cierto punto inferir el valor inicial de la trama.
En general, requieren transmitir mucha redundancia, lo que reduce el ancho de banda efectivo del canal.
Son poco atractivos frente a protocolos basados en detección y retransmisión.
Pero muy útiles donde la retransmisión no es factible:
Enlaces vía satélite
Tráfico en tiempo real no descartable
Transmisión de Datos 45
Tema 6: Control de Enlace
Departamento de Automática
Tramas perdidas: una trama enviada no llega a su destino
Tramas con errores: la trama se modifica durante la transmisión
ARQ (Automatic Repeat Request)
Confirmación positiva de las tramas correctas
Detección de los errores
Confirmación negativa y retransmisión de las tramas recibidas con errores
Retransmisión después de un intervalo de tiempo si no se recibe una confirmación positiva
Objetivo: convertir un enlace de datos no fiable en seguro
RETRANSMISIÓN DE TRAMAS
Departamento de Automática
Se basa en el control de flujo mediante parada y espera
ACK: ha llegado bien, envía la siguiente
Si pasa cierto tiempo, se retransmite la trama
Problema de duplicación de trama
Solución: bit alternante en trama y asentimiento Sencillo:
Poca memoria en transmisor: una trama
Nada de memoria en receptor ... pero ineficiente:
Si el tiempo de asentimiento es muy elevado
Si se producen muchos errores
Transmisión de Datos 47
Tema 6: Control de Enlace
Departamento de Automática ARQ CON PARADA Y ESPERA
Departamento de Automática
Basado en control de flujo mediante ventana deslizante
RR n: ha llegado bien hasta la trama n-1, envía n
REJ n: la trama n ha llegado mal o no ha llegado
El receptor descarta n y todas las posteriores recibidas Se retransmite n y todas las posteriores, ya enviadas o no
Si el receptor recibe una trama con número de secuencia fuera de la ventana, la considera duplicada
Si pasa cierto tiempo sin recibir confirmación, el transmisor envía pregunta de estado (RR con bit P = 1)
Receptor confirma la última trama recibida correctamente
Nuevo temporizador de bit P
Reintento de pregunta de estado varias veces Si no hay respuesta: procedimiento de reinicio
Transmisión de Datos 49
Tema 6: Control de Enlace
Departamento de Automática ARQ CON RECHAZO SIMPLE
Departamento de Automática
N de ventana máximo: 2k-1 (k bits)
Ejemplo: N = 8 con k = 3 bits:
A envía 0, B contesta RR1;
A envía 12345670, B contesta RR1
A no sabe si se perdieron todas o ninguna
Características:
Necesidad mayor de memoria en el transmisor
No necesita memoria en el receptor
Si el tiempo de asentimiento es elevado, disminuye el caudal eficaz, aunque es mejor que con parada y espera
Si hay muchos errores, el caudal disminuye
∑
∞= − − 11 ) 1 ( ) (
i i
P P i f
Transmisión de Datos 51
Tema 6: Control de Enlace
Departamento de Automática
Igual que el rechazo simple pero sólo se retransmiten las rechazadas (SREJ) o aquellas para las que expira el temporizador
El receptor debe reservar una zona de memoria temporal para almacenar tramas detrás del SREJ hasta que reciba la trama rechazada
El receptor debe tener una lógica para reinsertar la trama
El transmisor debe ser capaz de enviar tramas fuera de orden
El caudal eficaz es independiente del tiempo de asentimiento
Sigue disminuyendo cuando existen muchos errores
ARQ CON RECHAZO SELECTIVO
Transmisión de Datos 53
Tema 6: Control de Enlace
Departamento de Automática
Tamaño de ventana mucho más restrictivo
Ej: si N = 7 con 3 bits
A envía 0,1,2,3,4,5,6
B confirma con RR 7
Se pierde RR7
En A expira temporizador y se retransmite 0
B considera que es nueva y la acepta (ventana en 7,0,1,2,3,4 y 5)
N máxima = 2k-1 (con k bits), es decir, la mitad.
Se utiliza mucho menos que ARQ con rechazo simple, aunque sea más eficiente