Observaciones de revisión: Este artículo requiere las mejoras indicadas a continuación:
Sería conveniente añadir añadir el protocolo de envío continuo con parada selectiva.
Sería además interesante completarlo con otro artículo, debidamente vinculado con este, sobre cadencia eficaz que ofrezca un modelo matemático de los parámetros fundamentales del sistema y con ello criterios para la planificación de los enlaces.
Definición
Un protocolo de retransmisión, también conocido por las siglas ARQ (del inglés Automatic Repeat reQuest), es un mecanismo de control de errores en la transmisión de datos. Estos protocolos se encargan de retransmitir automáticamente la información que no llega al receptor o que lo hace con errores[1].
El funcionamiento se basa en la retroalimentación del receptor mediante el envío de mensajes de confirmación (En inglés, acknowledgements; abreviado, ACK.) de aquellos datagramas que han llegado, mientras que la ausencia de estos ACK dentro de un tiempo de espera (timeout) determinado muestran la necesidad de retransmitir los mensajes por parte del emisor.
Importancia y necesidad de los protocolos de retransmisión
En comunicaciones digitales reales, los canales introducen errores y pérdidas por ruido, interferencias o imperfecciones de los mismos. Sin un mecanismo de recuperación como este tipo de protocolos, estos errores se traducirían en datos corruptos o incompletos en el receptor. El problema que resuelven los protocolos de retransmisión (ARQ) es precisamente lograr establecer una comunicación fiable de los datos a pesar de un canal no confiable.
En transferencia de ficheros o datos críticos, la prioridad es la exactitud, por lo que esa latencia y sobrecarga del ancho de banda asociadas a este tipo de protocolos serán aceptadas para garantizar la entrega íntegra. En cambio, en servicios de tiempo real o interactivos, suele preferirse en la mayoría de los casos tolerar algunas pérdidas y errores antes que introducir latencia por las retransmisiones.
Variantes principales
Destacan tres variantes principales que son las siguientes[2]:
Parada y espera (en inglés, stop-and-wait): es el protocolo de retransmisión (ARQ) más sencillo. El emisor envía una única trama, inicia un temporizador (con un tiempo de espera determinado) y espera su ACK por parte del receptor antes de continuar con el siguiente envío. En la primera imagen podemos ver cómo en caso de que el receptor verifique la integridad de la trama y envíe el acuse de recibo dentro del tiempo de espera establecido por el emisor, este último avanza y transmite la siguiente trama.
Caso 1: recepción correcta (Stop-and-Wait)
Caso 2: trama dañada o perdida
Caso 3: ACK perdido o corrupto
Figura 1: Estrategia de retransmisión de parada y espera (stop-and-wait).
Por otro lado, cuando hay un problema tanto con la trama como con el acuse de recibo (forma habitual de llamar al ACK en castellano) y pasa el tiempo de espera, el emisor procede a reenviar la trama inicial, volviendo a comenzar el proceso ya explicado. Esto garantiza la corrección pero es muy poco eficiente cuando el canal tiene mucha latencia o alta capacidad porque este se mantiene inactivo durante cada tiempo de espera, lo que provoca que el emisor quede ocioso durante este periodo de tiempo. Habitualmente es utilizado en casos de enlaces muy cortos, dispositivos simples o cuando el tiempo de ida y vuelta (RTT) es bajo.
Figura 2: Estrategia de retransmisión de envío continuo con rechazo simple (go-back-n).Envío continuo con rechazo simple (en inglés go-back-n): permite enviar varias tramas seguidas (hasta un número N determinado por el tamaño de ventana) sin esperar el acuse de recibo inmediato de cada una de ellas. Si el receptor detecta una pérdida o error en una trama, el emisor debe retroceder y retransmitir esa trama y todas las que le siguen en orden, lo que aumenta el tráfico redundante en caso de error pero simplifica el manejo en el receptor que puede descartar tramas fuera de secuencia.
En la imagen se observa cómo el receptor, mientras el emisor envía los 6 paquetes de forma continuada, no recibe "Paquete 2" y descarta los restantes. Cuando el emisor no recibe el acuse de recibo dentro del tiempo de espera determinado, retrocede y retransmite todos los paquetes a partir del paquete perdido.
De esta forma, se garantiza que los datos lleguen al receptor en orden y sin errores, todo ello con un coste de eficiencia notable ya que se retransmiten todos los paquetes posteriores al que dió el problema a pesar de haber llegado correctamente al receptor ya que este los descartó al esperar recibir el paquete que no llegó.
Figura 3: Estrategia de retransmisión de envío continuo con parada selectiva (selective repeat).
Envío continuo con parada selectiva (en inglés, selective repeat): es un protocolo ARQ más avanzado que el de envío continuo con rechazo simple. El emisor puede enviar múltiples tramas consecutivas dentro de una ventana concreta de transmisión y por otro lado el receptor es capaz de aceptar y almacenar tramas recibidas correctamente aunque lleguen fuera de orden.
Si lo comparamos con el protocolo de envío continuo con rechazo simple, la principal diferencia es que cuando se detecta una pérdida o error en una trama concreta, el receptor solicita únicamente la retransmisión de la trama afectada, en lugar de descartar todas las tramas posteriores. De esta manera el emisor solo retransmite los paquetes perdidos o dañados mejorando de forma notable la eficiencia del sistema, sobre todo en enlaces con latencia elevada.
Este protocolo requiere una mayor complejidad tanto en el emisor como en el receptor. Los dos deben ser capaces gestionar ventanas deslizantes de forma independiente,mecanismos de almacenamiento temporal de tramas fuera de secuencia y también el uso de confirmaciones selectivas.
This website only uses its own cookies for technical purposes; it does not collect or transfer users' personal data without their knowledge. However, it contains links to third-party websites with third-party privacy policies, which you can accept or reject when you access them.