SlideShare una empresa de Scribd logo
1 de 14
Descargar para leer sin conexión
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE AGUASCALIENTES
DEPARTAMENTO DE INGENIERÍA ELÉCTRICA - ELECTRÓNICA
Ingeniería Electrónica
Comunicaciones digitales
Unidad I
TAREA 1
CRC como método de detección de errores
Alumno: Héctor Alexis Reyes Martínez
8vo Semestre Ingeniería electrónica
Profesora: Ing. Yessica Rodríguez Estrada
Aguascalientes, Ags, a 05 de febrero de 2018
2
ÍNDICE
1 INTRODUCCIÓN.........................................................................................................................................3
2 MÉTODO DE DETECCIÓN DE ERRORES CRC................................................................................................4
2.1 FUNDAMENTO MATEMÁTICO........................................................................................................................... 5
2.2.1 Ejemplo 1: división en el emisor ....................................................................................................... 6
2.2.2 Ejemplo 2: división en el receptor (dos casos).................................................................................. 7
3 IMPLEMENTACIÓN DIGITAL ......................................................................................................................8
4 APLICACIONES...........................................................................................................................................9
5 ARQ: ESTRATEGIAS DE RETRANSMISIÓN................................................................................................. 10
5.1 STOP-AND-WAIT ARQ................................................................................................................................. 10
6 OBSERVACIONES..................................................................................................................................... 12
7 CONCLUSIONES....................................................................................................................................... 13
8 FUENTES DE INFORMACIÓN.................................................................................................................... 14
3
1 Introducción
El presente trabajo explica de manera detallada el funcionamiento de la verificación
por redundancia cíclica (CRC – Cyclic Redundancy Check), el cual consiste en un
método de detección de errores usado frecuentemente en redes digitales y en
dispositivos de almacenamiento para detectar cambios accidentales en los datos.
En redes y comunicaciones digitales, el CRC es utilizado para el control del flujo de
datos. Los desarrolladores e investigadores de tecnología de la información
procuran crear y desarrollar métodos de detección de transmisión de errores,
asumiendo que inicialmente el control de recepción de datos (DLC) sabe dónde
empieza la estructura de datos y dónde termina. El problema es cómo determinar
cuál de todas las estructuras de datos contiene el error. Desde el punto de vista del
empaquetamiento de bytes, los paquetes que entran al DLC son cadenas de bits
arbitrarias. Así, en el receptor del DLC, cualquier cadena de bits es aceptable como
un paquete y los errores no pueden ser detectados por el análisis del paquete en sí
mismo. Cabe señalar que una transformación en los paquetes de K bits en alguna
otra representación de longitud K no puede ayudar, ya que hay 2K paquetes posibles
y todas las posibles cadenas de bits de longitud K deben ser usadas para
representar todos los posibles paquetes. La conclusión obtenida por los
investigadores fue que se debía agregar algunos bits extra a los paquetes para
detectar los errores.
Un bit transmitido puede convertirse en un error debido al ruido que existe en el
canal de transmisión. Si estamos procesando una señal de voz o de video, la
ocurrencia de errores en un bajo porcentaje es tolerable, pero en muchos otros
casos es muy importante que todos los bits sean correctos. Por ejemplo, cuando se
descarga alguna aplicación de internet, el código binario del programa no podrá
ejecutarse si alguno de los bits es incorrecto. Si el destinatario o la dirección de
emisión de un paquete tiene un bit incorrecto, la comunicación es imposible.
4
2 Método de detección de errores CRC
El CRC fue inventado por W. Wesley Peterson, y publicado en un artículo en 1961.
Deriva de un código cíclico, pero generalmente se comporta de forma no cíclica,
basado en un tipo de código de bloques lineales. Los bloques de datos ingresados
en estos sistemas contienen un valor de verificación adjunto, basado en el residuo
de una división de polinomios, el cálculo es repetido y la acción de corrección puede
tomarse en contra de los datos presuntamente corruptos en caso de que el valor de
verificación no concuerde.
El CRC no puede detectar todos los posibles errores, pero el rango de errores que
puede detectar es impresionantemente grande. Autores de libros de redes como
Larry Peterson y Bruce Davie han señalado que es bastante notable como un CRC
de 32 bits es suficiente para proporcionar una protección adecuada contra los
errores en los mensajes de 12000 bits que el Ethernet puede enviar.
Figura 1. Diagrama de bloques del CRC.
5
2.1 Fundamento matemático
El CRC comúnmente utiliza vectores de cierta longitud para detectar los errores.
Para obtener una notación matemática conveniente, las posiciones en el bloque de
datos pueden ser expresadas como un polinomio de x. Establecemos “L” como la
longitud del CRC y “k” como la longitud de la cadena de bits de datos.
Representando la cadena de datos de forma polinomial:
𝑠(𝑥) = 𝑠 𝑘−1 𝑥 𝑘−1
+ 𝑠 𝑘−2 𝑥 𝑘−2
+ ⋯ + 𝑠0 = ∑ 𝑠𝑖 𝑥 𝑖
𝑘−1
𝑖 = 0
La potencia de la x indeterminada puede ser pensada como un seguimiento sobre
cual posición tiene cada bit; los términos de alto orden (MSB) son vistos como los
primeros en trasmitir. El CRC es representado como otro polinomial:
𝑐(𝑥) = 𝐶𝐿−1 𝑥 𝐿−1
+ ⋯ + 𝐶1 𝑥 + 𝐶0 = ∑ 𝐶𝑖 𝑥 𝑖
𝐿−1
𝑖=0
El paquete de datos entero de la información transmitida y el CRC pueden ser
representado como una suma de polinomios: 𝑋(𝑥) = 𝑠(𝑥)𝑥 𝐿
+ 𝑐(𝑥) , que sería:
𝑋(𝑥) = 𝑠 𝑘−1 𝑥 𝐿+𝐾−1
+ ⋯ + 𝑠0 𝑥 𝐿
+ 𝑐 𝐿−1 𝑥 𝐿−1
+ ⋯ + 𝑐0
El vector polinomial de CRC “c(x)” es una función de la información polinomial s(x),
definida en términos del generador polinomial g(x); este es un polinomio de grado L
con coeficiente binarios que especifican el código particular CRC a ser utilizado:
𝑔(𝑥) = 𝑥 𝐿
+ 𝑔 𝐿−1 𝑥 𝐿−1
+ ⋯ + 𝑔1 𝑥 + 1
Para un g(x) dado, el mapeo desde el polinomio de información hacia el polinomio
del CRC c(x) está dado por:
𝑐(𝑥) = 𝑟𝑒𝑠𝑖𝑑𝑢𝑜 (
𝑠(𝑥)𝑥 𝐿
𝑔(𝑥)
)
6
La división polinomial de arriba es sólo una ordinaria división larga de un polinomio
entre otro, excepto que los coeficientes están restringidos a ser binarios y la
aritmética en los coeficientes se realiza con módulo 2 (%2).
2.2.1 Ejemplo 1: división en el emisor
Figura 2. Ejemplo 2 de la división polinomial.
En este ejemplo, se envía un dato = 1001 y un CRC de 3 bits
• k = número de bits del dato = 4.
• L = #bits CRC deseados=3. Por lo tanto, el polinomio de generación g(x) es
de grado 3. Se escoge g(x) = 𝑥3
+ 𝑥 + 1.
• El grado del dato aumentado es de L+K-1 = 6. Por lo tanto, el dato cambia
su polinomio a 𝑋(𝑥) = 𝑥6
+ 𝑥3
.
• Al resolver la división de polinomios, queda un residuo de x2+x , que es el
equivalente a CRC = 110.
• El dato que es enviado por el emisor es: Dato = 1001110. Este dato ya incluye
el CRC de 3 bits para la detección de errores.
7
2.2.2 Ejemplo 2: división en el receptor (dos casos)
Figura 3. Dato en receptor.
Se puede observar que el receptor recibe el dato con los bits CRC incluidos.
• Primero el receptor divide el polinomio de la información recibida (incluyendo
el CRC) entre el polinomio de generación g(x) (ambos dispositivos deben
conocer el mismo polinomio de generación).
• Si el residuo de dicha división binaria es cero, el dato es aceptado, quitando
los bits de CRC.
• Si el residuo es diferente a cero, se descarta el dato.
8
3 Implementación digital
Como se puede observar, los algoritmos CRC pueden ser fácilmente codificados en
software, pero pueden ser algo lentos. Podrían ser mucho más rápidos si son
implementados en hardware lógico digital (como procesadores dsp), y sería más
simple la codificación -decodificación de información.
Si denotamos el número de bits del divisor polinomial C(x) como C, así el grado del
polinomio es C-1. Entonces configuramos de izquierda a derecha el registro de
desplazamiento el cual almacena C-1 bits. A la vez, los coeficientes denotan de
izquierda a derecha: 𝑆0, 𝑆1, … , 𝑆𝑐−2 … . Así, cada registro queda reemplazado por Si
en cada pulso de reloj.
La figura 2 muestra como configurar en el caso de 𝐶(𝑥) = 𝑥3
+ 𝑥 + 1 C=1011.
Figura 4. Diseño digital del filtro-bit CRC.
9
4 Aplicaciones
La idea de la codificación CRC puede ser vista como una generalización de la
detección del bit de paridad. Los bits de paridad funcionan bien en vectores cortos
de información donde pueden ser usados para detectar un bit de error. Sin embargo,
si hay errores en dos posiciones, el vector resultante tendrá aún un número par de
unos, y el error no será detectado. Para lograr una mejor protección se pueden
agregar varios bits de paridad, derivados sobre otro arreglo de bits de datos.
• Se usa como patrón de prefijos de bit para comprobar su autenticidad.
• Funciona para hacer convenios entre dispositivos para saber en qué orden
están los bits enviados (desde el menos significativo hasta el más
significativo).
En muchos protocolos de comunicación es utilizado el CRC para detectar errores,
tanto en módulos de comunicación, así como en equipos de cliente. Uno de los
aspectos más importantes en el CRC es el vector de generación polinomial, ya que
éste define qué tan robusto será el sistema de detección de errores, y entre más
bits, más eficiente será el sistema. A continuación, se muestra una lista de los
generadores polinomiales CRC más utilizados:
Como puede observarse, el número de bits del CRC define el grado del polinomio
de generación. Entre más bits de CRC, más rápido debe ser el procesamiento de
las señales digitales, para poder encontrar los errores de una manera eficiente,
rápida y segura.
10
5 ARQ: Estrategias de retransmisión
El concepto general de solicitud automática de repetición (ARQ – Automatic Repeat
Request) consiste en detectar bloques de información con errores en el módulo
receptor DLC y después enviar una solicitud al transmisor DLC para repetir la
información de aquellos bloques con errores. Hay dos diferentes formas de
algoritmos o protocolos de retransmisión. El primero es sobre la exactitud: ¿El
protocolo tuvo éxito en la emisión de cada paquete sin errores en el receptor DLC?
El segundo es sobre la eficiencia: ¿Cuánto de la capacidad de transmisión se
desperdicia por la espera innecesaria y por el re-envío de retransmisiones
innecesarias?
Primeramente, muchas clases de protocolos son desarrolladas y mostradas para
ser correctas. Después, el efecto de varios parámetros en la eficiencia de estas
clases.
Cuando un error es detectado en un bloque de información, un nuevo bloque que
contiene el viejo paquete es transmitido. En consecuencia, el primer bloque
transmitido podría contener el primer paquete, el siguiente bloque el segundo
paquete, el tercer paquete una repetición del primer paquete, etc.
Cuando un paquete es repetido, el bloque de cabecera y el trailer podrían o no
podrían ser el mismo como en la versión anterior.
5.1 Stop-and-wait ARQ
El tipo de protocolo de retransmisión más simple es llamado stop-and-wait. La idea
básica es asegurar que cada paquete que ha sido recibido correctamente antes de
transmitir el siguiente paquete. En consecuencia, en los paquetes transmitidos de
un punto A a un punto B, el primer paquete es transmitido en el primer bloque, y
después el emisor DLC espera. Si el bloque no tiene errores, B envía un mensaje
de reconocimiento (acknowledgment), también llamado ack, de regreso a A; si el
bloque tiene un error, B envía un reconocimiento negativo (también llamado nack)
de regreso a A. Dado que los errores pueden ocurrir desde B a A o de A a B, el ack
o nack están protegidos con CRC.
11
Si B recibe un paquete libre de errores, el ack que recibe A por parte B hace que
comience a emitir el siguiente paquete de datos. Por el contrario, si A recibe un nak,
comienza a retransmitir el paquete de datos enviado previamente. Finalmente, si
alguno de los ack o nak se pierde, A debe eventualmente detenerse y re-enviar el
paquete previo. Lo único que queda por hacer es que tanto el emisor como el
receptor sepan cuándo se está retransmitiendo un dato, y que significa cada ack y
nack que se envían al transmisor, para que de esta forma la transmisión de datos
sea efectiva y correcta.
Figura 5. Ejemplo de uso de una secuencia y solicitud de paquetes.
12
6 Observaciones
• Las cadenas de bits que son enviadas por algún protocolo de comunicación
es posible representarlas mediante polinomios, aunque es de matemática
binaria.
• El CRC es un método muy efectivo para la detección de errores, pero no
asegura al 100% que la transmisión sea efectiva.
• El número de bits que se desea de CRC son los bits que se agregan al dato
original.
• Al realizar la división de polinomios, esta división es algo diferente, ya que es
en lógica binaria, y por lo tanto, no se restan o suman los distintos residuos
que van saliendo, sino que simplemente se ignora el carry.
• El vector de generación de polinomios g(x) puede ser cualquier vector de
potencia L, pero existen algunos vectores pre-hechos que son de los más
eficientes.
• El CRC, entre más bits se agregan, más seguro es el envío de datos.
• El vector de información ACK o NACK sirven para hacer una retransmisión
de datos efectiva en caso de pérdida de información o datos modificados.
• El transmisor y receptor deben estar en sincronía para saber qué número de
paquetes de datos está siendo emitido, o si hubo una retransmisión, para
evitar un mal acomodo de los bytes de información.
13
7 Conclusiones
La implementación de métodos de detección de errores en las comunicaciones
digitales permitió que éstas fueran más eficientes, correctas y que cada vez más el
número de datos enviados aumentara exponencialmente. El método analizado en
este trabajo fue el CRC: Verificación por redundancia cíclica. Básicamente se
compone de ciertos polinomios hechos por los datos a enviar y el número de bits
deseados en el CRC. Esto a su vez tiene la consecuencia de que el número de bits
por paquete de datos emitido aumente, dependiendo del número de bits del CRC.
Por ejemplo, si tengo un paquete de datos de 8 bits y deseo 4 bits de CRC, el dato
a enviar ya transformado será de 12 bits. Cabe señalar que, entre un mayor número
de bits de CRC, mayor es la protección de la información.
Por otra parte, el desarrollo de los procesadores de información debe ser orientado
hacia la rapidez y exactitud, ya que, debido a la emisión de un mayor número de
bits, los distintos procesadores y módulos de comunicación deben
enviarlos/recibirlos y codificarlos/decodificarlos de forma correcta y rápida, por lo
que procesadores más avanzados permiten tener una protección de alta fiabilidad
y rapidez.
Si el objetivo final del CRC es mejorar la protección de los datos, es necesario
implementar algunos protocolos de repetición/recuperación de datos, como el stop-
and-wait ARQ, el cual se basa en mecanismos de reconocimiento de paquetes. Esto
hace más robusta la protección, pero no tiene una fiabilidad del 100%. Deben existir
algunos otros protocolos que aseguren el buen funcionamiento y transmisión de los
datos, tal como lo hace el protocolo TCP/IP o el protocolo CAN.
14
8 Fuentes de información
1. Dr Ma,D. & Dr Yuk, T.I. Digital Communications III: Cyclic redundancy check
(CRC) codes. University of Hong Kong, China, 2010.
2. Höst, Stefan. Error detection by CRC. Lund University: Electrical and
Information Technology, Suecia.
3. Kowalk, W. CRC Cyclic Redundancy Check Analysing and correcting errors.
Universität Oldenburg, Alemania, 2006.
4. Matloff, Norman. Cyclic Redundancy Checking. University of California at
Davis, USA, 2001.
5. Bertsekas, Dimitri & Gallager, Robert. Data Networks. Massachusetts
Institute of Technology, USA, 1992.

Más contenido relacionado

La actualidad más candente

Arquitectura protocolos
Arquitectura  protocolosArquitectura  protocolos
Arquitectura protocolosDaygoxCM
 
5.SONET/SDH Red óptica síncrona
5.SONET/SDH Red óptica síncrona5.SONET/SDH Red óptica síncrona
5.SONET/SDH Red óptica síncronaEdison Coimbra G.
 
Fundamentos de Telecomunicaciones Unidad 5 Dispositivos de Comunicación
Fundamentos de TelecomunicacionesUnidad 5 Dispositivos de ComunicaciónFundamentos de TelecomunicacionesUnidad 5 Dispositivos de Comunicación
Fundamentos de Telecomunicaciones Unidad 5 Dispositivos de ComunicaciónJosé Antonio Sandoval Acosta
 
Fundamentos de Telecomunicaciones - Unidad 4: Técnicas de Conmutación
Fundamentos de Telecomunicaciones - Unidad 4: Técnicas de ConmutaciónFundamentos de Telecomunicaciones - Unidad 4: Técnicas de Conmutación
Fundamentos de Telecomunicaciones - Unidad 4: Técnicas de ConmutaciónJosé Antonio Sandoval Acosta
 
Codigos de Linea - Telecomunicaciones III
Codigos de Linea - Telecomunicaciones IIICodigos de Linea - Telecomunicaciones III
Codigos de Linea - Telecomunicaciones IIIAndy Juan Sarango Veliz
 
Modulación digital con portadora análoga
Modulación digital con portadora análogaModulación digital con portadora análoga
Modulación digital con portadora análogaJoaquin Vicioso
 
Dispositivos de red capa fisica
Dispositivos de red capa  fisicaDispositivos de red capa  fisica
Dispositivos de red capa fisicaChava Jackson
 
Lecture 9 codificación de línea y psd
Lecture 9 codificación de línea y psdLecture 9 codificación de línea y psd
Lecture 9 codificación de línea y psdnica2009
 
4.TDM Multiplexacion por division de tiempo
4.TDM Multiplexacion por division de tiempo4.TDM Multiplexacion por division de tiempo
4.TDM Multiplexacion por division de tiempoEdison Coimbra G.
 
Trab. Multiplexacion
Trab. MultiplexacionTrab. Multiplexacion
Trab. MultiplexacionDiego Lucero
 
Códigos de línea
Códigos de líneaCódigos de línea
Códigos de líneaOscar Llanos
 
Ruido en un Sistema de Comunicación Parte II
Ruido en un Sistema de Comunicación   Parte IIRuido en un Sistema de Comunicación   Parte II
Ruido en un Sistema de Comunicación Parte IIFam ParCar
 
Conversion señal Analógica a Digital Y viceversa
Conversion señal Analógica a Digital Y viceversaConversion señal Analógica a Digital Y viceversa
Conversion señal Analógica a Digital Y viceversaDiego Seminario
 
Códigos de errores - Telecomunicaciones III
Códigos de errores - Telecomunicaciones IIICódigos de errores - Telecomunicaciones III
Códigos de errores - Telecomunicaciones IIIAndy Juan Sarango Veliz
 
codificaciones unipolar, polar, bipolar
codificaciones unipolar, polar, bipolarcodificaciones unipolar, polar, bipolar
codificaciones unipolar, polar, bipolarthejp
 

La actualidad más candente (20)

Arquitectura protocolos
Arquitectura  protocolosArquitectura  protocolos
Arquitectura protocolos
 
MODELO OSI PDU
MODELO OSI PDUMODELO OSI PDU
MODELO OSI PDU
 
5.SONET/SDH Red óptica síncrona
5.SONET/SDH Red óptica síncrona5.SONET/SDH Red óptica síncrona
5.SONET/SDH Red óptica síncrona
 
Modulacion fsk
Modulacion fskModulacion fsk
Modulacion fsk
 
Fundamentos de Telecomunicaciones Unidad 5 Dispositivos de Comunicación
Fundamentos de TelecomunicacionesUnidad 5 Dispositivos de ComunicaciónFundamentos de TelecomunicacionesUnidad 5 Dispositivos de Comunicación
Fundamentos de Telecomunicaciones Unidad 5 Dispositivos de Comunicación
 
Fundamentos de Telecomunicaciones - Unidad 4: Técnicas de Conmutación
Fundamentos de Telecomunicaciones - Unidad 4: Técnicas de ConmutaciónFundamentos de Telecomunicaciones - Unidad 4: Técnicas de Conmutación
Fundamentos de Telecomunicaciones - Unidad 4: Técnicas de Conmutación
 
Codigos de Linea - Telecomunicaciones III
Codigos de Linea - Telecomunicaciones IIICodigos de Linea - Telecomunicaciones III
Codigos de Linea - Telecomunicaciones III
 
Modulación digital con portadora análoga
Modulación digital con portadora análogaModulación digital con portadora análoga
Modulación digital con portadora análoga
 
Dispositivos de red capa fisica
Dispositivos de red capa  fisicaDispositivos de red capa  fisica
Dispositivos de red capa fisica
 
Lecture 9 codificación de línea y psd
Lecture 9 codificación de línea y psdLecture 9 codificación de línea y psd
Lecture 9 codificación de línea y psd
 
4.TDM Multiplexacion por division de tiempo
4.TDM Multiplexacion por division de tiempo4.TDM Multiplexacion por division de tiempo
4.TDM Multiplexacion por division de tiempo
 
PDH
PDHPDH
PDH
 
Trab. Multiplexacion
Trab. MultiplexacionTrab. Multiplexacion
Trab. Multiplexacion
 
Reed Solomon
Reed SolomonReed Solomon
Reed Solomon
 
Códigos de línea
Códigos de líneaCódigos de línea
Códigos de línea
 
Ruido en un Sistema de Comunicación Parte II
Ruido en un Sistema de Comunicación   Parte IIRuido en un Sistema de Comunicación   Parte II
Ruido en un Sistema de Comunicación Parte II
 
Conversion señal Analógica a Digital Y viceversa
Conversion señal Analógica a Digital Y viceversaConversion señal Analógica a Digital Y viceversa
Conversion señal Analógica a Digital Y viceversa
 
Codigos bloque
 Codigos bloque Codigos bloque
Codigos bloque
 
Códigos de errores - Telecomunicaciones III
Códigos de errores - Telecomunicaciones IIICódigos de errores - Telecomunicaciones III
Códigos de errores - Telecomunicaciones III
 
codificaciones unipolar, polar, bipolar
codificaciones unipolar, polar, bipolarcodificaciones unipolar, polar, bipolar
codificaciones unipolar, polar, bipolar
 

Similar a Detección de errores CRC

Deteccion-y-comprobacion-de-errores-mediante-comprobacion-ciclica
Deteccion-y-comprobacion-de-errores-mediante-comprobacion-ciclicaDeteccion-y-comprobacion-de-errores-mediante-comprobacion-ciclica
Deteccion-y-comprobacion-de-errores-mediante-comprobacion-ciclicaSabino Chalen Balon
 
Cervantes Palacios Sofia - Resumen sobre la Capa de Enlace.pptx
Cervantes Palacios Sofia - Resumen sobre la Capa de Enlace.pptxCervantes Palacios Sofia - Resumen sobre la Capa de Enlace.pptx
Cervantes Palacios Sofia - Resumen sobre la Capa de Enlace.pptxSofaCervantes3
 
Sintesis crc miguel
Sintesis  crc  miguelSintesis  crc  miguel
Sintesis crc miguelFernando Luz
 
Capa de Enlace de Red (UFT) Mauricio Yepez
Capa de Enlace de Red (UFT) Mauricio YepezCapa de Enlace de Red (UFT) Mauricio Yepez
Capa de Enlace de Red (UFT) Mauricio YepezMauricio Yepez Martinez
 
Teleproceso 5
Teleproceso 5Teleproceso 5
Teleproceso 5gabyrao
 
Cap 3 capa_enlace
Cap 3 capa_enlaceCap 3 capa_enlace
Cap 3 capa_enlaceBruja Loca
 
Deteccion de errores y Red de Conmutacion
Deteccion de errores y Red de ConmutacionDeteccion de errores y Red de Conmutacion
Deteccion de errores y Red de Conmutacionesolimando
 
Transmisión de datos
Transmisión de datosTransmisión de datos
Transmisión de datosYsabelLeal03
 
DETECCION DE ERRORES DE REDES
DETECCION  DE ERRORES DE REDESDETECCION  DE ERRORES DE REDES
DETECCION DE ERRORES DE REDESPatrickMolina10
 
Transmisión de Datos
Transmisión de Datos Transmisión de Datos
Transmisión de Datos filps
 
Detección y Corrección de errores
Detección y Corrección de erroresDetección y Corrección de errores
Detección y Corrección de erroresRonie Martínez
 

Similar a Detección de errores CRC (20)

Deteccion-y-comprobacion-de-errores-mediante-comprobacion-ciclica
Deteccion-y-comprobacion-de-errores-mediante-comprobacion-ciclicaDeteccion-y-comprobacion-de-errores-mediante-comprobacion-ciclica
Deteccion-y-comprobacion-de-errores-mediante-comprobacion-ciclica
 
Cervantes Palacios Sofia - Resumen sobre la Capa de Enlace.pptx
Cervantes Palacios Sofia - Resumen sobre la Capa de Enlace.pptxCervantes Palacios Sofia - Resumen sobre la Capa de Enlace.pptx
Cervantes Palacios Sofia - Resumen sobre la Capa de Enlace.pptx
 
Sintesis crc miguel
Sintesis  crc  miguelSintesis  crc  miguel
Sintesis crc miguel
 
Capa de Enlace de Red (UFT) Mauricio Yepez
Capa de Enlace de Red (UFT) Mauricio YepezCapa de Enlace de Red (UFT) Mauricio Yepez
Capa de Enlace de Red (UFT) Mauricio Yepez
 
Teleproceso 5
Teleproceso 5Teleproceso 5
Teleproceso 5
 
Cap 3 capa_enlace
Cap 3 capa_enlaceCap 3 capa_enlace
Cap 3 capa_enlace
 
Capa de Enlace de Datos
Capa de Enlace de DatosCapa de Enlace de Datos
Capa de Enlace de Datos
 
Tema 4 capa de enlace
Tema 4   capa de enlaceTema 4   capa de enlace
Tema 4 capa de enlace
 
Deteccion de errores y Red de Conmutacion
Deteccion de errores y Red de ConmutacionDeteccion de errores y Red de Conmutacion
Deteccion de errores y Red de Conmutacion
 
Transmisión de datos
Transmisión de datosTransmisión de datos
Transmisión de datos
 
TRANSMISION DE DATOS
TRANSMISION DE DATOSTRANSMISION DE DATOS
TRANSMISION DE DATOS
 
TEMA 2.3 Y 2.4.pptx
TEMA 2.3 Y 2.4.pptxTEMA 2.3 Y 2.4.pptx
TEMA 2.3 Y 2.4.pptx
 
DETECCION DE ERRORES DE REDES
DETECCION  DE ERRORES DE REDESDETECCION  DE ERRORES DE REDES
DETECCION DE ERRORES DE REDES
 
Transmisión de Datos
Transmisión de Datos Transmisión de Datos
Transmisión de Datos
 
Ut4
Ut4Ut4
Ut4
 
Detección y Corrección de errores
Detección y Corrección de erroresDetección y Corrección de errores
Detección y Corrección de errores
 
Transmision de Datos Pablo Delgado
Transmision de Datos Pablo Delgado Transmision de Datos Pablo Delgado
Transmision de Datos Pablo Delgado
 
UNIDAD I
UNIDAD IUNIDAD I
UNIDAD I
 
error crc y hamming
error crc y hammingerror crc y hamming
error crc y hamming
 
Transmisión de datos
Transmisión de datosTransmisión de datos
Transmisión de datos
 

Último

Arquitecto cambio de uso de suelo Limache
Arquitecto cambio de uso de suelo LimacheArquitecto cambio de uso de suelo Limache
Arquitecto cambio de uso de suelo LimacheJuan Luis Menares
 
ARMADURAS METODO NODOS.pptx......................
ARMADURAS METODO NODOS.pptx......................ARMADURAS METODO NODOS.pptx......................
ARMADURAS METODO NODOS.pptx......................Juan293605
 
ATS-FORMATOa.pdf PARA MANTENIMIENTO MECANICO
ATS-FORMATOa.pdf PARA MANTENIMIENTO MECANICOATS-FORMATOa.pdf PARA MANTENIMIENTO MECANICO
ATS-FORMATOa.pdf PARA MANTENIMIENTO MECANICOalejandrocrisostomo2
 
UNIDAD 3 ENSAYOS DESTRUCTIVOS Y NO DESTRUCTIVOS – NORMATIVA ASTM.pdf
UNIDAD 3 ENSAYOS DESTRUCTIVOS Y NO DESTRUCTIVOS – NORMATIVA ASTM.pdfUNIDAD 3 ENSAYOS DESTRUCTIVOS Y NO DESTRUCTIVOS – NORMATIVA ASTM.pdf
UNIDAD 3 ENSAYOS DESTRUCTIVOS Y NO DESTRUCTIVOS – NORMATIVA ASTM.pdfronypap
 
auditoria fiscalizacion inspecciones de seguridad
auditoria fiscalizacion inspecciones de seguridadauditoria fiscalizacion inspecciones de seguridad
auditoria fiscalizacion inspecciones de seguridadNELSON QUINTANA
 
INTEGRATED PROJECT DELIVERY.pdf (ENTREGA INTEGRADA DE PROYECTOS)
INTEGRATED PROJECT DELIVERY.pdf (ENTREGA INTEGRADA DE PROYECTOS)INTEGRATED PROJECT DELIVERY.pdf (ENTREGA INTEGRADA DE PROYECTOS)
INTEGRATED PROJECT DELIVERY.pdf (ENTREGA INTEGRADA DE PROYECTOS)miguelbenito23
 
Auditoría de Sistemas de Gestión
Auditoría    de   Sistemas     de GestiónAuditoría    de   Sistemas     de Gestión
Auditoría de Sistemas de GestiónYanet Caldas
 
TAIICHI OHNO, historia, obras, reconocimientos
TAIICHI OHNO, historia, obras, reconocimientosTAIICHI OHNO, historia, obras, reconocimientos
TAIICHI OHNO, historia, obras, reconocimientoscuentaparainvestigac
 
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)samuelsan933
 
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdfGUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdfWILLIAMSTAYPELLOCCLL1
 
Tipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplosTipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplosandersonsubero28
 
Balance materia y energia procesos de Secado
Balance materia y energia procesos de SecadoBalance materia y energia procesos de Secado
Balance materia y energia procesos de SecadoGualbertoLopez2
 
Practica_Calificada_03333333333333333.pdf
Practica_Calificada_03333333333333333.pdfPractica_Calificada_03333333333333333.pdf
Practica_Calificada_03333333333333333.pdffredyflores58
 
entropia y neguentropia en la teoria general de sistemas
entropia y neguentropia en la teoria general de sistemasentropia y neguentropia en la teoria general de sistemas
entropia y neguentropia en la teoria general de sistemasDerlyValeriaRodrigue
 
S06_s2+-+Centro.pdf qiieiejanahshsjsnndjd
S06_s2+-+Centro.pdf qiieiejanahshsjsnndjdS06_s2+-+Centro.pdf qiieiejanahshsjsnndjd
S06_s2+-+Centro.pdf qiieiejanahshsjsnndjdaeapolinarez
 
docsity-manzaneo-y-lotizacion para habilitacopm urbana
docsity-manzaneo-y-lotizacion para habilitacopm urbanadocsity-manzaneo-y-lotizacion para habilitacopm urbana
docsity-manzaneo-y-lotizacion para habilitacopm urbanaArnolVillalobos
 
1 CENTROIDES 2°Computohhhhhhhhhhhhhhhh.pdf
1 CENTROIDES 2°Computohhhhhhhhhhhhhhhh.pdf1 CENTROIDES 2°Computohhhhhhhhhhhhhhhh.pdf
1 CENTROIDES 2°Computohhhhhhhhhhhhhhhh.pdfJlnParada
 
Instrumentacion para el control de procesos.pdf
Instrumentacion para el control de procesos.pdfInstrumentacion para el control de procesos.pdf
Instrumentacion para el control de procesos.pdfElybe Hernandez
 
Cereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. CerealesCereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. Cerealescarlosjuliogermanari1
 
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdfNTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdfELIZABETHCRUZVALENCI
 

Último (20)

Arquitecto cambio de uso de suelo Limache
Arquitecto cambio de uso de suelo LimacheArquitecto cambio de uso de suelo Limache
Arquitecto cambio de uso de suelo Limache
 
ARMADURAS METODO NODOS.pptx......................
ARMADURAS METODO NODOS.pptx......................ARMADURAS METODO NODOS.pptx......................
ARMADURAS METODO NODOS.pptx......................
 
ATS-FORMATOa.pdf PARA MANTENIMIENTO MECANICO
ATS-FORMATOa.pdf PARA MANTENIMIENTO MECANICOATS-FORMATOa.pdf PARA MANTENIMIENTO MECANICO
ATS-FORMATOa.pdf PARA MANTENIMIENTO MECANICO
 
UNIDAD 3 ENSAYOS DESTRUCTIVOS Y NO DESTRUCTIVOS – NORMATIVA ASTM.pdf
UNIDAD 3 ENSAYOS DESTRUCTIVOS Y NO DESTRUCTIVOS – NORMATIVA ASTM.pdfUNIDAD 3 ENSAYOS DESTRUCTIVOS Y NO DESTRUCTIVOS – NORMATIVA ASTM.pdf
UNIDAD 3 ENSAYOS DESTRUCTIVOS Y NO DESTRUCTIVOS – NORMATIVA ASTM.pdf
 
auditoria fiscalizacion inspecciones de seguridad
auditoria fiscalizacion inspecciones de seguridadauditoria fiscalizacion inspecciones de seguridad
auditoria fiscalizacion inspecciones de seguridad
 
INTEGRATED PROJECT DELIVERY.pdf (ENTREGA INTEGRADA DE PROYECTOS)
INTEGRATED PROJECT DELIVERY.pdf (ENTREGA INTEGRADA DE PROYECTOS)INTEGRATED PROJECT DELIVERY.pdf (ENTREGA INTEGRADA DE PROYECTOS)
INTEGRATED PROJECT DELIVERY.pdf (ENTREGA INTEGRADA DE PROYECTOS)
 
Auditoría de Sistemas de Gestión
Auditoría    de   Sistemas     de GestiónAuditoría    de   Sistemas     de Gestión
Auditoría de Sistemas de Gestión
 
TAIICHI OHNO, historia, obras, reconocimientos
TAIICHI OHNO, historia, obras, reconocimientosTAIICHI OHNO, historia, obras, reconocimientos
TAIICHI OHNO, historia, obras, reconocimientos
 
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
S3-OXIDOS-HIDROXIDOS-CARBONATOS (mineralogia)
 
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdfGUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
GUIA DE SEGURIDAD PARA VENTILACION DE MINAS-POSITIVA.pdf
 
Tipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplosTipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplos
 
Balance materia y energia procesos de Secado
Balance materia y energia procesos de SecadoBalance materia y energia procesos de Secado
Balance materia y energia procesos de Secado
 
Practica_Calificada_03333333333333333.pdf
Practica_Calificada_03333333333333333.pdfPractica_Calificada_03333333333333333.pdf
Practica_Calificada_03333333333333333.pdf
 
entropia y neguentropia en la teoria general de sistemas
entropia y neguentropia en la teoria general de sistemasentropia y neguentropia en la teoria general de sistemas
entropia y neguentropia en la teoria general de sistemas
 
S06_s2+-+Centro.pdf qiieiejanahshsjsnndjd
S06_s2+-+Centro.pdf qiieiejanahshsjsnndjdS06_s2+-+Centro.pdf qiieiejanahshsjsnndjd
S06_s2+-+Centro.pdf qiieiejanahshsjsnndjd
 
docsity-manzaneo-y-lotizacion para habilitacopm urbana
docsity-manzaneo-y-lotizacion para habilitacopm urbanadocsity-manzaneo-y-lotizacion para habilitacopm urbana
docsity-manzaneo-y-lotizacion para habilitacopm urbana
 
1 CENTROIDES 2°Computohhhhhhhhhhhhhhhh.pdf
1 CENTROIDES 2°Computohhhhhhhhhhhhhhhh.pdf1 CENTROIDES 2°Computohhhhhhhhhhhhhhhh.pdf
1 CENTROIDES 2°Computohhhhhhhhhhhhhhhh.pdf
 
Instrumentacion para el control de procesos.pdf
Instrumentacion para el control de procesos.pdfInstrumentacion para el control de procesos.pdf
Instrumentacion para el control de procesos.pdf
 
Cereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. CerealesCereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. Cereales
 
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdfNTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
 

Detección de errores CRC

  • 1. TECNOLÓGICO NACIONAL DE MÉXICO INSTITUTO TECNOLÓGICO DE AGUASCALIENTES DEPARTAMENTO DE INGENIERÍA ELÉCTRICA - ELECTRÓNICA Ingeniería Electrónica Comunicaciones digitales Unidad I TAREA 1 CRC como método de detección de errores Alumno: Héctor Alexis Reyes Martínez 8vo Semestre Ingeniería electrónica Profesora: Ing. Yessica Rodríguez Estrada Aguascalientes, Ags, a 05 de febrero de 2018
  • 2. 2 ÍNDICE 1 INTRODUCCIÓN.........................................................................................................................................3 2 MÉTODO DE DETECCIÓN DE ERRORES CRC................................................................................................4 2.1 FUNDAMENTO MATEMÁTICO........................................................................................................................... 5 2.2.1 Ejemplo 1: división en el emisor ....................................................................................................... 6 2.2.2 Ejemplo 2: división en el receptor (dos casos).................................................................................. 7 3 IMPLEMENTACIÓN DIGITAL ......................................................................................................................8 4 APLICACIONES...........................................................................................................................................9 5 ARQ: ESTRATEGIAS DE RETRANSMISIÓN................................................................................................. 10 5.1 STOP-AND-WAIT ARQ................................................................................................................................. 10 6 OBSERVACIONES..................................................................................................................................... 12 7 CONCLUSIONES....................................................................................................................................... 13 8 FUENTES DE INFORMACIÓN.................................................................................................................... 14
  • 3. 3 1 Introducción El presente trabajo explica de manera detallada el funcionamiento de la verificación por redundancia cíclica (CRC – Cyclic Redundancy Check), el cual consiste en un método de detección de errores usado frecuentemente en redes digitales y en dispositivos de almacenamiento para detectar cambios accidentales en los datos. En redes y comunicaciones digitales, el CRC es utilizado para el control del flujo de datos. Los desarrolladores e investigadores de tecnología de la información procuran crear y desarrollar métodos de detección de transmisión de errores, asumiendo que inicialmente el control de recepción de datos (DLC) sabe dónde empieza la estructura de datos y dónde termina. El problema es cómo determinar cuál de todas las estructuras de datos contiene el error. Desde el punto de vista del empaquetamiento de bytes, los paquetes que entran al DLC son cadenas de bits arbitrarias. Así, en el receptor del DLC, cualquier cadena de bits es aceptable como un paquete y los errores no pueden ser detectados por el análisis del paquete en sí mismo. Cabe señalar que una transformación en los paquetes de K bits en alguna otra representación de longitud K no puede ayudar, ya que hay 2K paquetes posibles y todas las posibles cadenas de bits de longitud K deben ser usadas para representar todos los posibles paquetes. La conclusión obtenida por los investigadores fue que se debía agregar algunos bits extra a los paquetes para detectar los errores. Un bit transmitido puede convertirse en un error debido al ruido que existe en el canal de transmisión. Si estamos procesando una señal de voz o de video, la ocurrencia de errores en un bajo porcentaje es tolerable, pero en muchos otros casos es muy importante que todos los bits sean correctos. Por ejemplo, cuando se descarga alguna aplicación de internet, el código binario del programa no podrá ejecutarse si alguno de los bits es incorrecto. Si el destinatario o la dirección de emisión de un paquete tiene un bit incorrecto, la comunicación es imposible.
  • 4. 4 2 Método de detección de errores CRC El CRC fue inventado por W. Wesley Peterson, y publicado en un artículo en 1961. Deriva de un código cíclico, pero generalmente se comporta de forma no cíclica, basado en un tipo de código de bloques lineales. Los bloques de datos ingresados en estos sistemas contienen un valor de verificación adjunto, basado en el residuo de una división de polinomios, el cálculo es repetido y la acción de corrección puede tomarse en contra de los datos presuntamente corruptos en caso de que el valor de verificación no concuerde. El CRC no puede detectar todos los posibles errores, pero el rango de errores que puede detectar es impresionantemente grande. Autores de libros de redes como Larry Peterson y Bruce Davie han señalado que es bastante notable como un CRC de 32 bits es suficiente para proporcionar una protección adecuada contra los errores en los mensajes de 12000 bits que el Ethernet puede enviar. Figura 1. Diagrama de bloques del CRC.
  • 5. 5 2.1 Fundamento matemático El CRC comúnmente utiliza vectores de cierta longitud para detectar los errores. Para obtener una notación matemática conveniente, las posiciones en el bloque de datos pueden ser expresadas como un polinomio de x. Establecemos “L” como la longitud del CRC y “k” como la longitud de la cadena de bits de datos. Representando la cadena de datos de forma polinomial: 𝑠(𝑥) = 𝑠 𝑘−1 𝑥 𝑘−1 + 𝑠 𝑘−2 𝑥 𝑘−2 + ⋯ + 𝑠0 = ∑ 𝑠𝑖 𝑥 𝑖 𝑘−1 𝑖 = 0 La potencia de la x indeterminada puede ser pensada como un seguimiento sobre cual posición tiene cada bit; los términos de alto orden (MSB) son vistos como los primeros en trasmitir. El CRC es representado como otro polinomial: 𝑐(𝑥) = 𝐶𝐿−1 𝑥 𝐿−1 + ⋯ + 𝐶1 𝑥 + 𝐶0 = ∑ 𝐶𝑖 𝑥 𝑖 𝐿−1 𝑖=0 El paquete de datos entero de la información transmitida y el CRC pueden ser representado como una suma de polinomios: 𝑋(𝑥) = 𝑠(𝑥)𝑥 𝐿 + 𝑐(𝑥) , que sería: 𝑋(𝑥) = 𝑠 𝑘−1 𝑥 𝐿+𝐾−1 + ⋯ + 𝑠0 𝑥 𝐿 + 𝑐 𝐿−1 𝑥 𝐿−1 + ⋯ + 𝑐0 El vector polinomial de CRC “c(x)” es una función de la información polinomial s(x), definida en términos del generador polinomial g(x); este es un polinomio de grado L con coeficiente binarios que especifican el código particular CRC a ser utilizado: 𝑔(𝑥) = 𝑥 𝐿 + 𝑔 𝐿−1 𝑥 𝐿−1 + ⋯ + 𝑔1 𝑥 + 1 Para un g(x) dado, el mapeo desde el polinomio de información hacia el polinomio del CRC c(x) está dado por: 𝑐(𝑥) = 𝑟𝑒𝑠𝑖𝑑𝑢𝑜 ( 𝑠(𝑥)𝑥 𝐿 𝑔(𝑥) )
  • 6. 6 La división polinomial de arriba es sólo una ordinaria división larga de un polinomio entre otro, excepto que los coeficientes están restringidos a ser binarios y la aritmética en los coeficientes se realiza con módulo 2 (%2). 2.2.1 Ejemplo 1: división en el emisor Figura 2. Ejemplo 2 de la división polinomial. En este ejemplo, se envía un dato = 1001 y un CRC de 3 bits • k = número de bits del dato = 4. • L = #bits CRC deseados=3. Por lo tanto, el polinomio de generación g(x) es de grado 3. Se escoge g(x) = 𝑥3 + 𝑥 + 1. • El grado del dato aumentado es de L+K-1 = 6. Por lo tanto, el dato cambia su polinomio a 𝑋(𝑥) = 𝑥6 + 𝑥3 . • Al resolver la división de polinomios, queda un residuo de x2+x , que es el equivalente a CRC = 110. • El dato que es enviado por el emisor es: Dato = 1001110. Este dato ya incluye el CRC de 3 bits para la detección de errores.
  • 7. 7 2.2.2 Ejemplo 2: división en el receptor (dos casos) Figura 3. Dato en receptor. Se puede observar que el receptor recibe el dato con los bits CRC incluidos. • Primero el receptor divide el polinomio de la información recibida (incluyendo el CRC) entre el polinomio de generación g(x) (ambos dispositivos deben conocer el mismo polinomio de generación). • Si el residuo de dicha división binaria es cero, el dato es aceptado, quitando los bits de CRC. • Si el residuo es diferente a cero, se descarta el dato.
  • 8. 8 3 Implementación digital Como se puede observar, los algoritmos CRC pueden ser fácilmente codificados en software, pero pueden ser algo lentos. Podrían ser mucho más rápidos si son implementados en hardware lógico digital (como procesadores dsp), y sería más simple la codificación -decodificación de información. Si denotamos el número de bits del divisor polinomial C(x) como C, así el grado del polinomio es C-1. Entonces configuramos de izquierda a derecha el registro de desplazamiento el cual almacena C-1 bits. A la vez, los coeficientes denotan de izquierda a derecha: 𝑆0, 𝑆1, … , 𝑆𝑐−2 … . Así, cada registro queda reemplazado por Si en cada pulso de reloj. La figura 2 muestra como configurar en el caso de 𝐶(𝑥) = 𝑥3 + 𝑥 + 1 C=1011. Figura 4. Diseño digital del filtro-bit CRC.
  • 9. 9 4 Aplicaciones La idea de la codificación CRC puede ser vista como una generalización de la detección del bit de paridad. Los bits de paridad funcionan bien en vectores cortos de información donde pueden ser usados para detectar un bit de error. Sin embargo, si hay errores en dos posiciones, el vector resultante tendrá aún un número par de unos, y el error no será detectado. Para lograr una mejor protección se pueden agregar varios bits de paridad, derivados sobre otro arreglo de bits de datos. • Se usa como patrón de prefijos de bit para comprobar su autenticidad. • Funciona para hacer convenios entre dispositivos para saber en qué orden están los bits enviados (desde el menos significativo hasta el más significativo). En muchos protocolos de comunicación es utilizado el CRC para detectar errores, tanto en módulos de comunicación, así como en equipos de cliente. Uno de los aspectos más importantes en el CRC es el vector de generación polinomial, ya que éste define qué tan robusto será el sistema de detección de errores, y entre más bits, más eficiente será el sistema. A continuación, se muestra una lista de los generadores polinomiales CRC más utilizados: Como puede observarse, el número de bits del CRC define el grado del polinomio de generación. Entre más bits de CRC, más rápido debe ser el procesamiento de las señales digitales, para poder encontrar los errores de una manera eficiente, rápida y segura.
  • 10. 10 5 ARQ: Estrategias de retransmisión El concepto general de solicitud automática de repetición (ARQ – Automatic Repeat Request) consiste en detectar bloques de información con errores en el módulo receptor DLC y después enviar una solicitud al transmisor DLC para repetir la información de aquellos bloques con errores. Hay dos diferentes formas de algoritmos o protocolos de retransmisión. El primero es sobre la exactitud: ¿El protocolo tuvo éxito en la emisión de cada paquete sin errores en el receptor DLC? El segundo es sobre la eficiencia: ¿Cuánto de la capacidad de transmisión se desperdicia por la espera innecesaria y por el re-envío de retransmisiones innecesarias? Primeramente, muchas clases de protocolos son desarrolladas y mostradas para ser correctas. Después, el efecto de varios parámetros en la eficiencia de estas clases. Cuando un error es detectado en un bloque de información, un nuevo bloque que contiene el viejo paquete es transmitido. En consecuencia, el primer bloque transmitido podría contener el primer paquete, el siguiente bloque el segundo paquete, el tercer paquete una repetición del primer paquete, etc. Cuando un paquete es repetido, el bloque de cabecera y el trailer podrían o no podrían ser el mismo como en la versión anterior. 5.1 Stop-and-wait ARQ El tipo de protocolo de retransmisión más simple es llamado stop-and-wait. La idea básica es asegurar que cada paquete que ha sido recibido correctamente antes de transmitir el siguiente paquete. En consecuencia, en los paquetes transmitidos de un punto A a un punto B, el primer paquete es transmitido en el primer bloque, y después el emisor DLC espera. Si el bloque no tiene errores, B envía un mensaje de reconocimiento (acknowledgment), también llamado ack, de regreso a A; si el bloque tiene un error, B envía un reconocimiento negativo (también llamado nack) de regreso a A. Dado que los errores pueden ocurrir desde B a A o de A a B, el ack o nack están protegidos con CRC.
  • 11. 11 Si B recibe un paquete libre de errores, el ack que recibe A por parte B hace que comience a emitir el siguiente paquete de datos. Por el contrario, si A recibe un nak, comienza a retransmitir el paquete de datos enviado previamente. Finalmente, si alguno de los ack o nak se pierde, A debe eventualmente detenerse y re-enviar el paquete previo. Lo único que queda por hacer es que tanto el emisor como el receptor sepan cuándo se está retransmitiendo un dato, y que significa cada ack y nack que se envían al transmisor, para que de esta forma la transmisión de datos sea efectiva y correcta. Figura 5. Ejemplo de uso de una secuencia y solicitud de paquetes.
  • 12. 12 6 Observaciones • Las cadenas de bits que son enviadas por algún protocolo de comunicación es posible representarlas mediante polinomios, aunque es de matemática binaria. • El CRC es un método muy efectivo para la detección de errores, pero no asegura al 100% que la transmisión sea efectiva. • El número de bits que se desea de CRC son los bits que se agregan al dato original. • Al realizar la división de polinomios, esta división es algo diferente, ya que es en lógica binaria, y por lo tanto, no se restan o suman los distintos residuos que van saliendo, sino que simplemente se ignora el carry. • El vector de generación de polinomios g(x) puede ser cualquier vector de potencia L, pero existen algunos vectores pre-hechos que son de los más eficientes. • El CRC, entre más bits se agregan, más seguro es el envío de datos. • El vector de información ACK o NACK sirven para hacer una retransmisión de datos efectiva en caso de pérdida de información o datos modificados. • El transmisor y receptor deben estar en sincronía para saber qué número de paquetes de datos está siendo emitido, o si hubo una retransmisión, para evitar un mal acomodo de los bytes de información.
  • 13. 13 7 Conclusiones La implementación de métodos de detección de errores en las comunicaciones digitales permitió que éstas fueran más eficientes, correctas y que cada vez más el número de datos enviados aumentara exponencialmente. El método analizado en este trabajo fue el CRC: Verificación por redundancia cíclica. Básicamente se compone de ciertos polinomios hechos por los datos a enviar y el número de bits deseados en el CRC. Esto a su vez tiene la consecuencia de que el número de bits por paquete de datos emitido aumente, dependiendo del número de bits del CRC. Por ejemplo, si tengo un paquete de datos de 8 bits y deseo 4 bits de CRC, el dato a enviar ya transformado será de 12 bits. Cabe señalar que, entre un mayor número de bits de CRC, mayor es la protección de la información. Por otra parte, el desarrollo de los procesadores de información debe ser orientado hacia la rapidez y exactitud, ya que, debido a la emisión de un mayor número de bits, los distintos procesadores y módulos de comunicación deben enviarlos/recibirlos y codificarlos/decodificarlos de forma correcta y rápida, por lo que procesadores más avanzados permiten tener una protección de alta fiabilidad y rapidez. Si el objetivo final del CRC es mejorar la protección de los datos, es necesario implementar algunos protocolos de repetición/recuperación de datos, como el stop- and-wait ARQ, el cual se basa en mecanismos de reconocimiento de paquetes. Esto hace más robusta la protección, pero no tiene una fiabilidad del 100%. Deben existir algunos otros protocolos que aseguren el buen funcionamiento y transmisión de los datos, tal como lo hace el protocolo TCP/IP o el protocolo CAN.
  • 14. 14 8 Fuentes de información 1. Dr Ma,D. & Dr Yuk, T.I. Digital Communications III: Cyclic redundancy check (CRC) codes. University of Hong Kong, China, 2010. 2. Höst, Stefan. Error detection by CRC. Lund University: Electrical and Information Technology, Suecia. 3. Kowalk, W. CRC Cyclic Redundancy Check Analysing and correcting errors. Universität Oldenburg, Alemania, 2006. 4. Matloff, Norman. Cyclic Redundancy Checking. University of California at Davis, USA, 2001. 5. Bertsekas, Dimitri & Gallager, Robert. Data Networks. Massachusetts Institute of Technology, USA, 1992.