6.1.-CARACTERISTICAS FUNCIONALES DE DISPOSITIVOS DE
COMUNICACION
DISPOSITIVOS DE COMUNICACIÓN
Toda implementación de una red de comunicaciones de
datos involucra una filosofía de diseño y un conjunto de componentes físicos
que materializan esta filosofía.
TERMINALES
Son lugares donde se conecta un sistema central de
procesamiento. Se hace referencia a dos formas de conectar un sistema central
con una o varias terminales o sistemas secundarios: punto a punto o multipunto.
PUNTO A PUNTO
Cuando un enlace físico une sólo dos puntas de
transmisión de datos, desde donde, por lo general, tanto se pueden
enviar como recibir.
Esta conexión tiene importantes características
· Tiene
bajo costo
· Permite
forma “Conversacional” de comunicaciones
· Apta
para transmisión de lotes de datos
· Permite
fácil migración a fibra óptica
· Válido
en topología de estrella, anillo y árbol
· Admite
la utilización de diferentes medios físicos
· Es de
fácil implementación (en general es simple)
MULTIPUNTO
Se utiliza este término cuando se hace referencia a un
sistema central que conecta varias terminales o sistemas secundarios.
La conexión multipunto tiene las siguientes
características
· Economiza
líneas, módems, adaptadores, puertos del procesador
· Exige
la utilización de un “intermediario”
· Exige
la utilización del sondeo
· Aumenta
los tiempos de respuesta
· Permite
mayor conexión de terminales por cada procesador central
· Software
y hardware relativamente complejo
ADAPTADORES DE COMUNICACIÓN
El adaptador de comunicaciones es un elemento que
conceptualmente existe en cada extremo de cada cable de comunicaciones.
Normalmente son dos piezas de hardware independientes-tarjetas de circuitos
impresos- aunque pueden venir integrados en el dispositivo. Su modularidad es
una condición deseable porque proporciona mayor flexibilidad de configuración
al equipo que los contiene.
En salida su función principal es preparar los datos
para su transmisión a través de la línea, serializándolos, insertando caracteres
de control en el mensaje, permitiendo la sincronización, respondiendo a los
comandos de control. En la mayoría de los caso maneja la detección de errores y
corrección y el encuadre de datos dentro de un bloque transmisible.
Originalmente los adaptadores venían en modelos
especiales para cada disciplina de comunicaciones utilizadas. Actualmente los
adaptadores son pequeños computadores implementados en una tarjeta de
circuitos, que tienen gran inteligencia residente.
CODECS (CODES)
El uso de mensajes más cortos implicaría una pérdida
de información en el receptor, que en muchos caos no sería admisible. Entonces,
la solución consistió en acortar la forma de representar los datos, sin
sacrificar contenido. Así es como nacen los COMPRESORES/DESCOMPRESORES DE DATOS
(CODES)
Un codes consiste en un dispositivo capaz
de analizar una secuencia de caracteres, estudiar su distribución, frecuencia e
interrelaciones y producir finalmente una secuencia de bits de menor
longitud que transporte la información original, con total garantía de
reversibilidad fidedigna del proceso. De lo anterior se deduce que los codes
trabajan en pares por cada línea de comunicación.
Los codes más modernos utilizan algoritmos muy
sofisticados que analizan grandes bloques de datos para estudiarlos y lograr
mayor compresión. Muchos garantizan una compactación que supera la relación
2:1.
CARACTERISTICAS DE LOS CODES
· Comprensión
de datos de 2:1(o más)
· Independencia
del protocolo utilizado.
· Muy
fácil instalación
· Transparente
al usuario final
· Completa
detección y corrección de errores
· Operación
con módems o redes de servicio digitales
· Implementación
conjunta con multiplexores STDM
MODEMS
Los módems son dispositivos destinados principalmente
a la conversión de señales digitales en analógicas y viceversa. Su nombre
proviene de la contracción de modulación y demodulación.
Pueden ser externos, independientes, o residir dentro
del gabinete del procesador central. Según el caso, se les llama modulares o
integrados.
Se distinguen por síncrono y asíncrono, dependiendo
del tipo de mensaje a transmitir.
Cuando es necesario pueden proveer la sincronización
de la señal. También pueden tener mecanismos de discado y auto respuesta.
Algunos nombres que están en uso para casos especiales son:
· BICANALIZADOR
(Transmite por dos líneas)
· MULTICANALIZADOR
(combinación de un modem y un multicanalizador)
MULTICANALIZADORES
La función principal es proveer un medio para
compartir una línea de comunicación entre diversas estaciones de trabajo y/o
unidades de procesamiento. Esto conlleva a una reducción de los costos de
operación porque se economizan en:
1. Puertos del procesador
central
2. Modems
3. Adaptadores
4. Líneas de teléfono
y/u otro tipo de línea
5. Tiempo de la UCP
Técnicas de multicanalización
Dos clases de multicanalizadores
+ De conexión troncal
+ De conexión en líneas simples
Dos técnicas Básicas de multicanalización
/demulticanalización
· FDM (por
división de frecuencia)
· TDM (por
división del tiempo)
FDM
En la técnica se divide el ancho de
banda en rangos de frecuencia. A cada canal se asigna un rango R de
amplitud suficiente como para permitir la transmisión de lo que se desee
enviar.
Dado que no todos los medios físicos de transmisión
admiten un gran ancho de banda, en medios económicos se tienen grandes
limitaciones en el número de canales. En un instante t se tienen todos los
canales transmitiendo simultáneamente. Esa simultaneidad significa economía en
los tiempos finales del sistema y esa es la principal ventaja de
esta técnica.
TDM (igualitario y ponderado)
Dos subdivisiones son necesarias en TDM según se haga
referencia al tiempo o a la longitud de los elementos transmitidos.
El tiempo se divide en períodos fijos cada uno de los
cuales se asigna a un canal. Si esta asignación es según una ronda uniforme, tenemos
TDM igualitario.



ESTADISTICO
(BLOQUE)
En un instante t cualquiera un solo de los canales se
encuentra transmitiendo y éste utiliza todo el ancho de banda del medio
utilizado. Como desventaja tiene la falta de simultaneidad. Como beneficio,
importante el permitir un “infinito” número de canales, sacrificando el tiempo
total del sistema.
Para el caso de TDM PONDERADO tendremos que la ronda
de canales no es uniforme sino que, algunos canales se repetirán más
veces que otros. De esta manera se obtienen prioridades de
transmisión diferentes para cada canal.
TDM ESTADISTICO (STDM)
Es una variante donde se trata de aprovechar los
tiempos ociosos de las líneas de comunicación. En un ambiente interactivo
normal, es bastante claro que las líneas estarán más tiempo ociosas que
ocupadas. Si en el esquema de FDM igualitario agregamos una pregunta a cada
canal, antes de darle la oportunidad de transmitir, tendremos un esquema STDM.
Una ventaja del STDM es que rompe la restricción de la
suma de vi <= V por lo tanto se podrá tener una línea de 9600 bps que sea común
a 4 canales de 2400 bps y un canal de 1200.
CONCENTRADORES
Es un dispositivo inteligente basado en un
microprocesador cuyo cometido principal es concentrar líneas de comunicación.
Esta concentración permite economizar líneas, módems, adaptadores y puertos de
conexión central. Su uso puede ser local o remoto. El concentrador realiza el
sondeo (pollina) de sus terminales en forma totalmente independientes y
asincrónicos de las transmisiones del procesador central.
Entre las funciones comúnmente realizadas por el
concentrador destacan:
· Sondeo
de terminales
· Conversión
de protocolos
· Conversión
de códigos
· Elaboración
de formatos de mensajes
· Recolección
local de datos como respaldo
· Conversión
de velocidades
· Compactación
de datos
· Control
de errores
· Reingreso
automático de los datos capturados
· Diagnósticos.
En general son inteligentes, de programación fija y de
capacidad de almacenamiento limitada.
CONTROLADORES
También llamados procesadores nodales. Un concentrador
se distingue de un controlador por su nivel de inteligencia y almacenamiento de
ambos.
La función principal es CONTROLAR un grupo de
terminales de aplicación específica, implementando algunos conceptos del
procesamiento distribuido de datos.
PROCESADORES DE COMUNICACIONES (FEPS)
El termino FEP (Front End Processors) se aplica a
procesadores de comunicación súper especializados, es decir, con una
arquitectura y un sistema operativo especialmente diseñados para manejar todas
las funciones relativas a la administración de una res de procesamiento de
datos. Su diseño particular lo hace muy eficiente en el procesamiento de las
comunicaciones. Es por ello que normalmente realiza todas las funciones
relacionadas con el tráfico de la red y la administración de la misma.
El beneficio directo de su utilización, es un
mejor aprovechamiento del cerebro central. En general admite varios
computadores residentes “HOSTS” o sistemas centrales. Su utilización es tan
generalizada que muchos equipos no se venden si no con uno o varios FEPS. En
algunas aplicaciones toma el nombre de conmutadores.
Existen otros tipos de controladores como son:
· Commutation
Anterior (SWITCH IN FRONT)
· Commutation
Posterior (SWITCH IN BACK)
· Suavización
de Trafico (TRAFFIC SMOOTHING)
· Conmutación
de Mensajes (MESSAGE SWITCHING)
· Conmutador
para procesadores de comunicaciones (CATS)
· Conmutador
de llave de paso (EIA BYPASS SWITCH)
· Conmutador
de retroceso (EIA FALLBACK SWITCH)
6.2.- INTERFACES
Es un programa informático que actúa
de interfaz de usuario, utilizando un conjunto de imágenes y objetos
gráficos para representar la información y acciones disponibles en la
interfaz. Su principal uso, consiste en proporcionar un entorno visual sencillo
para permitir la comunicación con el sistema operativo de una máquina
o computador.
Habitualmente las acciones se realizan mediante
manipulación directa, para facilitar la interacción del usuario con la
computadora. Surge como evolución de las interfaces de línea de
comandos que se usaban para operar los primeros sistemas
operativos y es pieza fundamental en un entorno gráfico. Como
ejemplos de interfaz gráfica de usuario, cabe citar los entornos de
escritorio Windows, el X-Window de GNU/Linux o el
de Mac OS X,Aqua.
En el contexto del proceso de
interacción persona-ordenador, la interfaz gráfica de usuario es el
artefacto tecnológico de un sistema interactivo que posibilita, a través del
uso y la representación del lenguaje visual, una interacción amigable con
un sistema informático.
6.3 Protocolos
y Estandares
Los servicios de comunicaciones proporcionados por
una red de transmisión De dato siguen unos protocolos bien establecidos y
estandarizados. Protocolo. Es un conjunto de instrucciones predefinido que
asegura la correcta secuencia e integridad de los datos transmitidos. Es un
conjunto de reglas que definen la intersección entres dos máquinas o procesos
iguales o que realizan funciones similares.
Clasificaciones
según la topología de la red: directos. No pasan
por agentes intermedios, como en una red dedicada. La conexión es directa, al
igual que con las redes de difusión. indirectos. Pasan por agentes intermedios,
como en las redes de conmutación o en dos redes interconectadas según la forma
de afrontar el problema: monolíticos. Se pretende resolver el problema de la
comunicación de una vez. estructurado. Se divide el problema en capas o niveles
que se desarrollan como protocolos independientes. Los niveles más bajos los
realizan unos protocolos, sobre los que se apoyan otros que resuelven problemas
de nivel más alto. Se crea una jerarquía de protocolos. según el tipo de
terminales: simétricos. Ambos extremos son de idéntico comportamiento.
asimétricos. Comportamientos distintos, con relaciones del tipo
cliente-servidor.
ESTÁNDARES
Los estándares en materia de telecomunicaciones se
hace referencia a garantizar la interoperabilidad entre diversos fabricantes,
cosa esencial si se quieren hacer redes abiertas, es decir si no se quiere ser
cautivo de un fabricante en particular. CATEGORIAS. Estándares de Facto. viene
de la palabra que en latin significa de HECHO. A este grupo pertenecen los
estándares que simplemente aparecieron y se impusieron en El mercado por su
extensa utilización. Estándares de Iure. Viene del latín que significa por LEY,
son estándares formales y legales acordados por algún organismo internacional
de estandarización autorizado. Estos organismos son de dos tipos: Tratados entre
varios países Organizaciones voluntarias
ORGANIZACIONES
DE ESTANDARIZACIÓN.
ITU (Unión Internacional de Telecomunicaciones)
ISO (Organización Internacional de Normalización)
ANSI (Instituto Americano de Normas Nacionales)
IEEE (Instituto de Ingenieros Eléctricos y Electrónicos)
IAB (Consejo de Arquitectura de Internet)
Protocolos
y Estándares
Los servicios de comunicaciones proporcionados por
una red de transmisión De dato siguen unos protocolos bien establecidos y
estandarizados. Protocolo. Es un conjunto de instrucciones predefinido que
asegura la correcta secuencia e integridad de los datos transmitidos. Es un
conjunto de reglas que definen la intersección entre dos máquinas o procesos
iguales o que realizan funciones similares.
Clasificaciones
Según la topología de la red: directos. No pasan
por agentes intermedios, como en una red dedicada. La conexión es directa, al
igual que con las redes de difusión. Indirectos. Pasan por agentes intermedios,
como en las redes de conmutación o en dos redes interconectadas según la forma
de afrontar el problema: monolíticos. Se pretende resolver el problema de la
comunicación de una vez. Estructurado. Se divide el problema en capas o niveles
que se desarrollan como protocolos independientes. Los niveles más bajos los
realizan unos protocolos, sobre los que se apoyan otros que resuelven problemas
de nivel más alto. Se crea una jerarquía de protocolos. Según el tipo de
terminales: simétricos. Ambos extremos son de idéntico comportamiento. Asimétricos.
Comportamientos distintos, con relaciones del tipo cliente-servidor.
ESTÁNDARES
Los estándares en materia de telecomunicaciones se
hace referencia a garantizar la interoperabilidad entre diversos fabricantes,
cosa esencial si se quieren hacer redes abiertas, es decir si no se quiere ser
cautivo de un fabricante en particular. CATEGORIAS. Estándares de Facto. Viene
de la palabra que en latín significa de HECHO. A este grupo pertenecen los
estándares que simplemente aparecieron y se impusieron en El mercado por su
extensa utilización. Estándares de Iure. Viene del latín que significa por LEY,
son estándares formales y legales acordados por algún organismo internacional
de estandarización autorizado. Estos organismos son de dos tipos: Tratados entre
varios países Organizaciones voluntarias
ORGANIZACIONES
DE ESTANDARIZACIÓN.
ITU (Unión Internacional de Telecomunicaciones)
ISO (Organización Internacional de Normalización)
ANSI (Instituto Americano de Normas Nacionales)
IEEE (Instituto de Ingenieros Eléctricos y Electrónicos)
IAB (Consejo de Arquitectura de Internet)
6.4
DETECCIÓN Y CORRECCIÓN DE ERRORES.
Las redes deben ser capaces de transferir datos de un dispositivo a otro con total exactitud, si los datos recibidos no son idénticos a los emitidos, el sistema de comunicación es inútil. Sin embargo, siempre que se transmiten de un origen a un destino, se pueden corromper por el camino. Los sistemas de comunicación deben tener mecanismos para detectar y corregir errores que alteren los datos recibidos debido a múltiples factores de la transmisión.
La detección y corrección de errores se implementa bien en el nivel de enlace de datos o bien en el nivel de transporte del modelo OSI
Tipos de errores.
Interferencias, calor, magnetismo, etc., influyen en una señal electromagnética, esos factores pueden alterar la forma o temporalidad de una señal. Si la señal transporta datos digitales, los cambios pueden modificar el significado de los datos. Los errores posibles son:
Error de bit
Únicamente un bit de una unidad de datos determinada cambia de 1 a 0 o viceversa.
Un error de bit altera el significado del dato. Son el tipo de error menos probable en una transmisión de datos serie, puesto que el intervalo de bit es muy breve (1/frecuencia) el ruido tiene que tener una duración muy breve. Sin embargo si puede ocurrir en una transmisión paralela, en que un cable puede sufrir una perturbación y alterar un bit de cada byte.
Error de ráfaga.
El error de ráfaga significa que dos o más bits de la unidad de datos han cambiado. Los errores de ráfaga no significan necesariamente que los errores se produzcan en bits consecutivos. La longitud de la ráfaga se mide desde el primero hasta el último bit correcto, algunos bits intermedios pueden estar bien.
Los errores de ráfaga es más probable en transmisiones serie, donde la duración del ruido es normalmente mayor que la duración de un bit, por lo que afectara a un conjunto de bits. El número donde bits afectados depende de la tasa de datos y de la duración del ruido.
Detección.
Se conocen el tipo de errores que pueden existir, el problema es ser capaz de reconocerlos, dado que no se puede comparar el dato recibido con el original, sólo se podría saber que ha habido un error cuando se descodifique todo el mensaje y se vea que no tiene sentido. Sin embargo existen determinadas técnicas sencillas y objetivas para detectar los errores producidos en la transmisión:
Redundancia.
La redundancia consiste en enviar dos veces cada unidad de datos, de forma que el dispositivo receptor puede hacer una comparación bit a bit entre ambos datos y detectar si ha habido errores, para corregirlos con el mecanismo apropiado. Esta técnica es muy exacta pero enlentece la transmisión.
Sin embargo el concepto es aplicable añadiendo al flujo de datos un grupo pequeño de bits al final de cada unidad, siendo estos bits redundantes con una parte de la información, esos bits redundantes se descartan una vez comprobada la integridad de la transmisión.
En las comunicaciones de datos se usan cuatro tipos de comprobación de redundancia: verificación de redundancia vertical (VRC, Vertical Redundancy Check) conocida como verificación de paridad, verificación de redundancia longitudinal (LRC longitudinal Redundancy Check), verificación de redundancia cíclica (CRC Cyclic Redundandy Check) y suma de comprobación (Checksum). Las tres primeras se implementan habitualmente en el nivel físico para que pueda usarlo en nivel de enlace de datos, mientras que la suma de comprobación se usa en los niveles más altos.
Verificación
de redundancia vertical VRC
Es el mecanismo más frecuente y barato, la VRC se denomina a menudo verificación de paridad, y se basa en añadir un bit de redundancia, denominado bit de paridad, al final de cada unidad de datos, de forma que el número total de unos en la unidad (incluyendo el bit de paridad) sea par, o impar en el caso de la verificación de paridad impar.
Esta técnica permite reconocer un error de un único bit, y también de ráfaga siempre que el número total de bits cambiados sea impar .La función de paridad (par o impar) suma el dato y devuelve la cantidad de unos que tiene el dato, comparando la paridad real (par o impar) con la esperada (par o impar).
Verificación de redundancia longitudinal LRC
En esta técnica, los bloques de bits se organizan en forma de tabla (filas y columnas), a continuación se calcula un bit de paridad para cada columna y se crea una nueva fila de bits, que serán los bits de paridad de todo el bloque, a continuación se añaden los bits de paridad al dato y se envían al receptor.
Típicamente los datos se agrupa en unidades de múltiplos de 8 -1 byte- (8, 16, 24,32 bits) la función coloca los octetos uno debajo de otro y calcula la paridad de los bits primeros, de los segundos, etc., generando otro octeto cuyo primer bit es el de paridad de todos los primeros bits, etc.
Esta técnica incrementa la probabilidad de detectar errores de ráfaga, ya que una LRC de n bits (n bits de paridad) puede detectar una ráfaga de más de n bits, sin embargo un patrón de ráfaga que dañe algunos bits de una unidad de datos y otros bits de otra unidad exactamente en la misma posición, el comprobador de LRC no detectará un error.
Verificación de redundancia cíclica CRC. A diferencia de las técnicas VRC y LRC, que se basan en la suma (para calcular la paridad), la técnica CRC se basa en la división binaria. En esta técnica, se añaden bits redundantes en la unidad de datos de forma que los todo el conjunto sea divisible exactamente por un número binario determinado, en el destino los datos recibidos son divididos por ese mismo número, si en ese caso no hay resto de la operación, el dato es aceptado, si apareciera un resto de la división, el dato se entendería que se ha corrompido y se rechazará.
La técnica añade unos bits de CRC, de la siguiente manera en tres pasos básicos: en primer lugar se añade una tira de n ceros, siendo n el número inmediatamente menor al número de bits del divisor predefinido (que tiene n+1 bits), el segundo paso es dividir la nueva unidad de datos por el divisor predefinido usando un proceso de división binaria, el resto que quedara sería los bits de CRC a añadir, el tercer paso es sustituir los n bits añadidos en el paso primero por los n bits del resto de la operación del segundo paso, el dato final será divisible exactamente por el divisor predefinido. La imagen muestra el esquema del proceso.
Sumas de comprobación.
Es el método de detección usado por los protocolos de alto nivel, se basa en el concepto de redundancia.
Generador de suma de comprobación.
En el emisor, el generador subdivide la unidad de datos en segmentos iguales de n bits (habitualmente n=16), estos segmentos se suman usando una aritmética de complemento a uno, de forma que la suma sea también n bits, a continuación se complementa la suma y ese dato complementado se añade al final de la unidad de datos original como bits de redundancia, la unidad extendida se transmite por la red.
Comprobador de suma de comprobación.
El receptor subdivide las unidades de datos en los mismos n bits, suma todos los segmentos (incluidos los bits de redundancia) y luego complementa el resultado, si la unidad de datos está intacta, el valor final que se obtiene es nulo (n bits 0), si en resultado no es cero, el paquete contiene un error y es rechazado.
Corrección de errores
Los mecanismos explicados detectan errores pero no los corrigen. La corrección del error se puede conseguir de dos formas, en la primera, cuando de descubre un error el receptor puede pedir al emisor que retransmita toda la unidad de datos, con la segunda, el receptor puede usar un código de corrección de errores que corrija automáticamente determinados errores. En teoría es posible corregir automáticamente cualquier error en un código binario, sin embargo los códigos de corrección son más sofisticados que los de detección y necesitan más bits de redundancia, el número de bits necesarios es tan alto que su uso no es eficiente, por esa razón la mayoría de la corrección se limita a errores de tres bits o menos.
Corrección de errores de un único bit
El concepto de la corrección de errores se puede comprender con el caso más sencillo: el error de un único bit. Un error de un bit supone que un bit ha cambiado de un 0 a un 1 o de un 1 a un 0, para corregir el error, el receptor sólo tiene que invertir el valor del bit alterado, sin embargo, para hacer eso, el receptor debe saber en qué bit está el error, por lo que el secreto de la corrección de errores es localizar el bit o bits inválidos. La cuestión es el uso de los bits de redundancia para la corrección. Ahora bien ¿cuantos bits de redundancia usar?
Para calcular el número de bits de redundancia r necesarios para corregir un número de bits de datos m, es necesario encontrar una relación entre m y r.
Si a m de datos bits se le añaden r bits de redundancia, la unidad transmitida es m+r, los bits de redundancia r deben ser capaces de indicar todas las posibilidades de error de 1 bit posibles, incluyendo el no error, que en m+r bits es de m+r+1 posibilidades (no error, error en bit0, error en bit 1, etc.), por ello r debe ser capaz de indicar todas esos estados. Dado que los r bits pueden representar 2r estados, entonces r debe ser tal que 2r ≥m + r + 1.
Código Hamming
Se pueden utilizar los bits de redundancia para corregir errores, pero ¿cómo se manipulan esos bits para descubrir en qué posición se ha producido el error? R. W. Hamming desarrolló una técnica que proporciona una solución práctica. El código Hamming se puede aplicar a unidades de datos de cualquier longitud y usa la relación de bits de datos y de redundancia. En el código cada bit r es el bit de VRC (redundancia vertical) para una combinación de bits de datos. Por ejemplo, un dato de 7 bits necesita 4 bits de redundancia, los colocaremos en las posiciones 1, 2, 4 y 8, con lo que la secuencia transmitida es la que indica la figura.
Detección y corrección.
El receptor recibe la transmisión, toma los datos y recalcula cuatro nuevos VRC usando el mismo conjunto de bits usados en el cálculo en el emisor, a continuación reensambla los nuevos valores de paridad siguiendo el orden de la posición (r8, r4, r2, r1) la cifra resultante indica si ha habido error y en qué bit se ha producido. Si el resultado es 0000 no ha habido error, cualquier otro resultado indica error y bit erróneo. Una vez identificado el bit erróneo, el receptor puede cambiar el valor de ese bit para corregir el error.
Corrección de errores de ráfaga.
Se puede diseñar un código Hamming para corregir errores de ráfaga de una cierta longitud, sin embargo el número de bits de redundancia necesarios es muy elevado, porque los errores pueden ser de tantos bits pero pueden estar en cualquiera de los bits de la cadena transmitid.
Las redes deben ser capaces de transferir datos de un dispositivo a otro con total exactitud, si los datos recibidos no son idénticos a los emitidos, el sistema de comunicación es inútil. Sin embargo, siempre que se transmiten de un origen a un destino, se pueden corromper por el camino. Los sistemas de comunicación deben tener mecanismos para detectar y corregir errores que alteren los datos recibidos debido a múltiples factores de la transmisión.
La detección y corrección de errores se implementa bien en el nivel de enlace de datos o bien en el nivel de transporte del modelo OSI
Tipos de errores.
Interferencias, calor, magnetismo, etc., influyen en una señal electromagnética, esos factores pueden alterar la forma o temporalidad de una señal. Si la señal transporta datos digitales, los cambios pueden modificar el significado de los datos. Los errores posibles son:
Error de bit
Únicamente un bit de una unidad de datos determinada cambia de 1 a 0 o viceversa.
Un error de bit altera el significado del dato. Son el tipo de error menos probable en una transmisión de datos serie, puesto que el intervalo de bit es muy breve (1/frecuencia) el ruido tiene que tener una duración muy breve. Sin embargo si puede ocurrir en una transmisión paralela, en que un cable puede sufrir una perturbación y alterar un bit de cada byte.
Error de ráfaga.
El error de ráfaga significa que dos o más bits de la unidad de datos han cambiado. Los errores de ráfaga no significan necesariamente que los errores se produzcan en bits consecutivos. La longitud de la ráfaga se mide desde el primero hasta el último bit correcto, algunos bits intermedios pueden estar bien.
Los errores de ráfaga es más probable en transmisiones serie, donde la duración del ruido es normalmente mayor que la duración de un bit, por lo que afectara a un conjunto de bits. El número donde bits afectados depende de la tasa de datos y de la duración del ruido.
Detección.
Se conocen el tipo de errores que pueden existir, el problema es ser capaz de reconocerlos, dado que no se puede comparar el dato recibido con el original, sólo se podría saber que ha habido un error cuando se descodifique todo el mensaje y se vea que no tiene sentido. Sin embargo existen determinadas técnicas sencillas y objetivas para detectar los errores producidos en la transmisión:
Redundancia.
La redundancia consiste en enviar dos veces cada unidad de datos, de forma que el dispositivo receptor puede hacer una comparación bit a bit entre ambos datos y detectar si ha habido errores, para corregirlos con el mecanismo apropiado. Esta técnica es muy exacta pero enlentece la transmisión.
Sin embargo el concepto es aplicable añadiendo al flujo de datos un grupo pequeño de bits al final de cada unidad, siendo estos bits redundantes con una parte de la información, esos bits redundantes se descartan una vez comprobada la integridad de la transmisión.
En las comunicaciones de datos se usan cuatro tipos de comprobación de redundancia: verificación de redundancia vertical (VRC, Vertical Redundancy Check) conocida como verificación de paridad, verificación de redundancia longitudinal (LRC longitudinal Redundancy Check), verificación de redundancia cíclica (CRC Cyclic Redundandy Check) y suma de comprobación (Checksum). Las tres primeras se implementan habitualmente en el nivel físico para que pueda usarlo en nivel de enlace de datos, mientras que la suma de comprobación se usa en los niveles más altos.
Verificación
de redundancia vertical VRC
Es el mecanismo más frecuente y barato, la VRC se denomina a menudo verificación de paridad, y se basa en añadir un bit de redundancia, denominado bit de paridad, al final de cada unidad de datos, de forma que el número total de unos en la unidad (incluyendo el bit de paridad) sea par, o impar en el caso de la verificación de paridad impar.
Esta técnica permite reconocer un error de un único bit, y también de ráfaga siempre que el número total de bits cambiados sea impar .La función de paridad (par o impar) suma el dato y devuelve la cantidad de unos que tiene el dato, comparando la paridad real (par o impar) con la esperada (par o impar).
Verificación de redundancia longitudinal LRC
En esta técnica, los bloques de bits se organizan en forma de tabla (filas y columnas), a continuación se calcula un bit de paridad para cada columna y se crea una nueva fila de bits, que serán los bits de paridad de todo el bloque, a continuación se añaden los bits de paridad al dato y se envían al receptor.
Típicamente los datos se agrupa en unidades de múltiplos de 8 -1 byte- (8, 16, 24,32 bits) la función coloca los octetos uno debajo de otro y calcula la paridad de los bits primeros, de los segundos, etc., generando otro octeto cuyo primer bit es el de paridad de todos los primeros bits, etc.
Esta técnica incrementa la probabilidad de detectar errores de ráfaga, ya que una LRC de n bits (n bits de paridad) puede detectar una ráfaga de más de n bits, sin embargo un patrón de ráfaga que dañe algunos bits de una unidad de datos y otros bits de otra unidad exactamente en la misma posición, el comprobador de LRC no detectará un error.
Verificación de redundancia cíclica CRC. A diferencia de las técnicas VRC y LRC, que se basan en la suma (para calcular la paridad), la técnica CRC se basa en la división binaria. En esta técnica, se añaden bits redundantes en la unidad de datos de forma que los todo el conjunto sea divisible exactamente por un número binario determinado, en el destino los datos recibidos son divididos por ese mismo número, si en ese caso no hay resto de la operación, el dato es aceptado, si apareciera un resto de la división, el dato se entendería que se ha corrompido y se rechazará.
La técnica añade unos bits de CRC, de la siguiente manera en tres pasos básicos: en primer lugar se añade una tira de n ceros, siendo n el número inmediatamente menor al número de bits del divisor predefinido (que tiene n+1 bits), el segundo paso es dividir la nueva unidad de datos por el divisor predefinido usando un proceso de división binaria, el resto que quedara sería los bits de CRC a añadir, el tercer paso es sustituir los n bits añadidos en el paso primero por los n bits del resto de la operación del segundo paso, el dato final será divisible exactamente por el divisor predefinido. La imagen muestra el esquema del proceso.
Sumas de comprobación.
Es el método de detección usado por los protocolos de alto nivel, se basa en el concepto de redundancia.
Generador de suma de comprobación.
En el emisor, el generador subdivide la unidad de datos en segmentos iguales de n bits (habitualmente n=16), estos segmentos se suman usando una aritmética de complemento a uno, de forma que la suma sea también n bits, a continuación se complementa la suma y ese dato complementado se añade al final de la unidad de datos original como bits de redundancia, la unidad extendida se transmite por la red.
Comprobador de suma de comprobación.
El receptor subdivide las unidades de datos en los mismos n bits, suma todos los segmentos (incluidos los bits de redundancia) y luego complementa el resultado, si la unidad de datos está intacta, el valor final que se obtiene es nulo (n bits 0), si en resultado no es cero, el paquete contiene un error y es rechazado.
Corrección de errores
Los mecanismos explicados detectan errores pero no los corrigen. La corrección del error se puede conseguir de dos formas, en la primera, cuando de descubre un error el receptor puede pedir al emisor que retransmita toda la unidad de datos, con la segunda, el receptor puede usar un código de corrección de errores que corrija automáticamente determinados errores. En teoría es posible corregir automáticamente cualquier error en un código binario, sin embargo los códigos de corrección son más sofisticados que los de detección y necesitan más bits de redundancia, el número de bits necesarios es tan alto que su uso no es eficiente, por esa razón la mayoría de la corrección se limita a errores de tres bits o menos.
Corrección de errores de un único bit
El concepto de la corrección de errores se puede comprender con el caso más sencillo: el error de un único bit. Un error de un bit supone que un bit ha cambiado de un 0 a un 1 o de un 1 a un 0, para corregir el error, el receptor sólo tiene que invertir el valor del bit alterado, sin embargo, para hacer eso, el receptor debe saber en qué bit está el error, por lo que el secreto de la corrección de errores es localizar el bit o bits inválidos. La cuestión es el uso de los bits de redundancia para la corrección. Ahora bien ¿cuantos bits de redundancia usar?
Para calcular el número de bits de redundancia r necesarios para corregir un número de bits de datos m, es necesario encontrar una relación entre m y r.
Si a m de datos bits se le añaden r bits de redundancia, la unidad transmitida es m+r, los bits de redundancia r deben ser capaces de indicar todas las posibilidades de error de 1 bit posibles, incluyendo el no error, que en m+r bits es de m+r+1 posibilidades (no error, error en bit0, error en bit 1, etc.), por ello r debe ser capaz de indicar todas esos estados. Dado que los r bits pueden representar 2r estados, entonces r debe ser tal que 2r ≥m + r + 1.
Código Hamming
Se pueden utilizar los bits de redundancia para corregir errores, pero ¿cómo se manipulan esos bits para descubrir en qué posición se ha producido el error? R. W. Hamming desarrolló una técnica que proporciona una solución práctica. El código Hamming se puede aplicar a unidades de datos de cualquier longitud y usa la relación de bits de datos y de redundancia. En el código cada bit r es el bit de VRC (redundancia vertical) para una combinación de bits de datos. Por ejemplo, un dato de 7 bits necesita 4 bits de redundancia, los colocaremos en las posiciones 1, 2, 4 y 8, con lo que la secuencia transmitida es la que indica la figura.
Detección y corrección.
El receptor recibe la transmisión, toma los datos y recalcula cuatro nuevos VRC usando el mismo conjunto de bits usados en el cálculo en el emisor, a continuación reensambla los nuevos valores de paridad siguiendo el orden de la posición (r8, r4, r2, r1) la cifra resultante indica si ha habido error y en qué bit se ha producido. Si el resultado es 0000 no ha habido error, cualquier otro resultado indica error y bit erróneo. Una vez identificado el bit erróneo, el receptor puede cambiar el valor de ese bit para corregir el error.
Corrección de errores de ráfaga.
Se puede diseñar un código Hamming para corregir errores de ráfaga de una cierta longitud, sin embargo el número de bits de redundancia necesarios es muy elevado, porque los errores pueden ser de tantos bits pero pueden estar en cualquiera de los bits de la cadena transmitid.