PROTOCOLO+DE+CONTROL+DE+ERRORES

Protocolo Control de errores:
generalmente se utiliza un temporizador para retransmitir una trama una vez que no se ha recibido confirmación después de expirar el tiempo del temporizador. Cada capa de protocolo debe de tener su propio control de errores.

Automatic Repeat Request
==== ARQ (del inglés Automatic Repeat-reQuest) son protocolos utilizados para el control de errores en la transmisión de datos, garantizando la integridad de los mismos. Estos suelen utilizarse en sistemas que no actúan en tiempo real ya que el tiempo que se pierde en el reenvío puede ser considerable y ser más útil emitir mal en el momento que correctamente un tiempo después. Esto se puede ver muy claro con una aplicación de videoconferencia donde no resulta de utilidad emitir el pixel correcto de la imagen 2 segundos después de haber visto la imagen. ==== Esta técnica de control de errores se basa en el reenvío de los paquetes de información que se detecten como erróneos (Esto quiere decir que no todos los paquetes de información se detectan como erróneos). Para controlar la correcta recepción de un paquete se utilizan ACK's (acknowledge) y NACK's de forma que cuando el receptor recibe un paquete correctamente el receptor asiente con un ACK y si no es correcto responde con un NACK. Durante el protocolo que controla recepción de paquetes pueden surgir múltiples problemas (pérdida de ACK, recibir un ACK incorrecto, etc.) complicándose así el contenido del ACK y surgiendo nuevos conceptos como el de timeout. Si el emisor no recibe información sobre la recepción del paquete durante un tiempo fijado (timeout) éste se reenvía automáticamente. Esencialmente existen tres tipos de ARQ aunque en la práctica se combinen buscando el sistema óptimo para cada canal o estado de tráfico concreto. Entre otros protocolos ARQ, encontramos, Stop-and-wait ARQ, Go-Back-N ARQ y Selective Repeat ARQ; estos protocolos pertenecen a la capa de enlace de datos del modelo OSI

Comprobación de redundancia cíclica
La comprobación de redundancia cíclica (CRC) es un código de error usado frecuentemente en redes digitales y en dispositivos de almacenamiento para detectar cambios accidentales en los datos. Los bloques de datos ingresados en estos sistemas contiene 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 encontra de los datos presuntamente conrrompidos en caso de que el valor de verificación no concuerde; por lo tanto se puede afirmar que este código es un tipo de función que recibe un flujo de datos de cualquier longitud como entrada y devuelve un valor de longitud fija como salida. El término suele ser usado para designar tanto a la función como a su resultado. Pueden ser usadas como suma de verificación para detectar la alteración de datos durante su transmisión o almacenamiento. Las CRC son populares porque su implementación en hardware binario es simple, son fáciles de analizar matemáticamente y son particularmente efectivas para detectar errores ocasionados por ruido en los canales de transmisión.

El CRC es un código de detección de error cuyo cálculo es una larga división de computación en el que se descarta el cociente y el resto se convierte en el resultado, con la importante diferencia de que la aritmética que usamos conforma que el cálculo utilizado es el arrastre de un campo finito, en este caso los bits. El tamaño del resto es siempre menor que la longitud del divisor, que, por lo tanto, determina el tamaño del resultado. La definición de un CRC especifica el divisor que se utilizará, entre otras cosas. Aunque un CRC se puede construir utilizando cualquier tipo de regla finita, todos los CRC de uso común emplean una base finita binaria, esta base consta de dos elementos, generalmente el 0 y 1. El resto de este artículo se centrará en este tipo de composición, es decir el ámbito binario y los principios generales de los CRC.

Carrier sense multiple access with collision detection
CSMA/CD, siglas que corresponden a Carrier Sense Multiple Access with Collision Detection (en español, "Acceso Múltiple por Detección de Portadora con Detección de Colisiones"), es una técnica usada en redes Ethernet para mejorar sus prestaciones. Anteriormente a esta técnica se usaron las de Aloha puro y Aloha ranurado, pero ambas presentaban muy bajas prestaciones. Por eso apareció en primer lugar la técnica CSMA, que fue posteriormente mejorada con la aparición de CSMA/CD. En el método de acceso CSMA/CD, los dispositivos de red que tienen datos para transmitir funcionan en el modo "escuchar antes de transmitir". Esto significa que cuando un nodo desea enviar datos, primero debe determinar si los medios de red están ocupados o no.

Funcionamiento de CSMA/CD
media type="youtube" key="-fMKPArxT8Y" width="425" height="350" align="center"

El primer paso a la hora de transmitir será saber si el medio está libre. Para eso escuchamos lo que dicen los demás. Si hay portadora en el medio, es que está ocupado y, por tanto, seguimos escuchando; en caso contrario, el medio está libre y podemos transmitir. A continuación, esperamos un tiempo mínimo necesario para poder diferenciar bien una trama de otra y comenzamos a transmitir. Si durante la transmisión de una trama se detecta una colisión, entonces las estaciones que colisionan abortan el envío de la trama y envían una señal de congestión denominada jamming. Después de una colisión (Los host que intervienen en la colisión invocan un algoritmo de postergación que genera un tiempo aleatorio), las estaciones esperan un tiempo aleatorio (tiempo de backoff) para volver a transmitir una trama. En redes inalámbricas, resulta a veces complicado llevar a cabo el primer paso (escuchar al medio para determinar si está libre o no). Por este motivo, surgen dos problemas que pueden ser detectados: 1. Problema del nodo oculto: la estación cree que el medio está libre cuando en realidad no lo está, pues está siendo utilizado por otro nodo al que la estación no "oye". 2. Problema del nodo expuesto: la estación cree que el medio está ocupado, cuando en realidad lo está ocupando otro nodo que no interferiría en su transmisión a otro destino. Para resolver estos problemas, la IEEE 802.11 propone MACA (MultiAccess Collision Avoidance – Evasión de Colisión por Acceso Múltiple).

Carrier sense multiple access with collision avoidance
En redes informáticas, Carrier Sense, Multiple Access, Collision Avoidance (acceso múltiple por detección de portadora con evasión de colisiones) es un protocolo de control de acceso a redes de bajo nivel que permite que múltiples estaciones utilicen un mismo medio de transmisión. Cada equipo anuncia opcionalmente su intención de transmitir antes de hacerlo para evitar colisiones entre los paquetes de datos (comúnmente en redes inalámbricas, ya que estas no cuentan con un modo práctico para transmitir y recibir simultáneamente). De esta forma, el resto de equipos de la red sabrán cuando hay colisiones y en lugar de transmitir la trama en cuanto el medio está libre, se espera un tiempo aleatorio adicional corto y solamente si, tras ese corto intervalo el medio sigue libre, se procede a la transmisión reduciendo la probabilidad de colisiones en el canal. CSMA/CA es utilizada en canales en los que por su naturaleza no se puede usar CSMA/CD. CSMA/CA se utiliza en 802.11 basada en redes inalámbricas. Aunque CSMA/CD y CSMA/CA aseguren que un nodo va a obtener un acceso al medio no se asegura que el nodo destino esté en contacto con el nodo origen. Para solucionar este problema se ha añadido un procedimiento de saludo adicional al protocolo de la capa MAC. Este procedimiento se ha denominado protocolo de MAC inalámbrico de fundamento distribuido (DFW MAC) con el fin de que sirva para los diferentes métodos de la capa MAC. Para enviar una trama, el equipo origen primero envía una trama corta de control de solicitud de transmisión RTS (Request To Send) mediante el método CSMA/CD o CSMA/CA. Este mensaje de control RTS contiene las direcciones de MAC del equipo origen y destino. Si el equipo destino recibe esta trama significa que está preparado para recibir una trama. Este equipo devolverá una trama de contestación: preparado para transmitir CTS (Clear To Send) o receptor ocupado (RxBUSY). Si la respuesta es afirmativa el equipo origen transmite la trama en espera (DATA). Si el equipo destino recibe correctamente el mensaje contesta con la trama de confirmación positiva ACK (ACKnowledged) y si no la recibe correctamente contesta con la trama de confirmación negativa NAK (NAKnowledged) y el equipo origen tratará de volver a enviarlo. Este procedimiento se repite un número predefinido de veces hasta conseguirse una transmisión correcta de la trama DATA.