ARQ de repetición selectiva o ARQ de rechazo selectivo es una instancia específica del protocolo de solicitud de repetición automática (ARQ) utilizado para gestionar números de secuencia y retransmisiones en comunicaciones confiables .
La repetición selectiva es parte de la solicitud de repetición automática (ARQ). Con la repetición selectiva, el remitente envía una cantidad de tramas especificadas por un tamaño de ventana incluso sin la necesidad de esperar un ACK individual del receptor como en Go-Back-N ARQ . El receptor puede rechazar selectivamente una sola trama, que puede retransmitirse sola; esto contrasta con otras formas de ARQ, que deben enviar nuevamente cada trama a partir de ese punto. El receptor acepta tramas fuera de orden y las almacena en búfer. El remitente retransmite individualmente las tramas que han expirado.
Puede utilizarse como protocolo para la entrega y reconocimiento de unidades de mensajes, o puede utilizarse como protocolo para la entrega de subunidades de mensajes subdivididas.
Cuando se utiliza como protocolo para la entrega de mensajes , el proceso de envío continúa enviando una cantidad de tramas especificada por un tamaño de ventana incluso después de una pérdida de trama. A diferencia de Go-Back-N ARQ , el proceso de recepción continuará aceptando y reconociendo las tramas enviadas después de un error inicial; este es el caso general del protocolo de ventana deslizante con tamaños de ventana de transmisión y recepción mayores que 1.
El proceso receptor lleva un registro del número de secuencia del primer marco que no ha recibido y envía ese número con cada acuse de recibo (ACK) que envía. Si un marco del remitente no llega al receptor, el remitente continúa enviando marcos posteriores hasta que haya vaciado su ventana . El receptor continúa llenando su ventana de recepción con los marcos posteriores, respondiendo cada vez con un ACK que contiene el número de secuencia del primer marco faltante . Una vez que el remitente ha enviado todos los marcos en su ventana , vuelve a enviar el número de marco proporcionado por los ACK y luego continúa donde lo dejó.
El tamaño de las ventanas de envío y recepción debe ser igual y la mitad del número máximo de secuencia (suponiendo que los números de secuencia están numerados de 0 a n −1) para evitar la falta de comunicación en todos los casos de paquetes descartados. Para entender esto, considere el caso en el que se destruyen todos los ACK. Si la ventana de recepción es mayor que la mitad del número máximo de secuencia, algunos, posiblemente incluso todos, los paquetes que quedan después de los tiempos de espera son duplicados que no se reconocen como tales. El remitente mueve su ventana por cada paquete que se reconoce. [1]
Cuando se utiliza como protocolo para la entrega de mensajes subdivididos, funciona de forma algo diferente. En canales no continuos donde los mensajes pueden tener una longitud variable, los protocolos ARQ estándar o ARQ híbrido pueden tratar el mensaje como una sola unidad. Alternativamente, se puede emplear la retransmisión selectiva junto con el mecanismo ARQ básico donde el mensaje se subdivide primero en subbloques (normalmente de longitud fija) en un proceso llamado segmentación de paquetes . El mensaje original de longitud variable se representa así como una concatenación de un número variable de subbloques. Mientras que en ARQ estándar el mensaje en su conjunto se reconoce (ACK) o se reconoce negativamente (NAK), en ARQ con transmisión selectiva la respuesta ACK llevaría además un indicador de bits que indica la identidad de cada subbloque recibido correctamente. En ARQ con retransmisión selectiva de mensajes subdivididos, cada retransmisión disminuye en longitud, necesitando contener sólo los subbloques que estaban vinculados.
En la mayoría de los modelos de canal con mensajes de longitud variable, la probabilidad de recepción sin errores disminuye en proporción inversa al aumento de la longitud del mensaje. En otras palabras, es más fácil recibir un mensaje corto que un mensaje más largo. Por lo tanto, las técnicas ARQ estándar que involucran mensajes de longitud variable tienen una mayor dificultad para entregar mensajes más largos, ya que cada repetición es de longitud completa. La retransmisión selectiva aplicada a mensajes de longitud variable elimina por completo la dificultad de entregar mensajes más largos, ya que los subbloques entregados con éxito se conservan después de cada transmisión y la cantidad de subbloques pendientes en las transmisiones siguientes disminuye. La repetición selectiva se implementa en la transmisión UDP.
Estos ejemplos suponen un número infinito de números de secuencia y de solicitud. [2]
N := tamaño de ventana Rn := número de solicitud Sn := número de secuencia Sb := base de secuencia Sm := secuencia máxima buffer[] := búfer para almacenar paquetes fuera de ordenLa función receptora es Rn := 0 buffer := vacío Haga lo siguiente para siempre: Si el paquete recibido está libre de errores y Sn = Rn entonces Aceptar el paquete y enviarlo a una capa superior Rn := Rn + 1 mientras exista buffer[Rn] hacer Acepta el paquete del buffer y lo envía a una capa superior Eliminar el paquete Rn del buffer Rn := Rn + 1 De lo contrario, si el paquete recibido está libre de errores y Sn > Rn, entonces almacene en búfer el paquete en la posición Sn . Ignorar paquete Enviar una solicitud de RnLa función remitente es Sb := 0 Sm := N + 1 buffer := vacío Repita los siguientes pasos para siempre: Si recibe un número de solicitud donde Rn > Sb entonces Sm := ( Sm − Sb ) + Rn Sb := Rn Eliminar paquetes con Sn < Rn del búfer Si no hay ningún paquete en transmisión , entonces transmita un paquete donde Sb ≤ Sn < Sm Almacenar el paquete transmitido en el búfer para cada paquete Sn en el búfer, si se agotó el tiempo de espera del paquete Sn , retransmitir el paquete Sn
Hay algunas cosas a tener en cuenta al elegir un valor para N en ARQ de repetición selectiva:
El Protocolo de Control de Transmisión utiliza una variante de Go-Back-N ARQ para asegurar la transmisión confiable de datos a través del Protocolo de Internet , que no proporciona una entrega garantizada de paquetes; con la extensión de Reconocimiento Selectivo (SACK) , también puede utilizar ARQ de Repetición Selectiva.
El estándar ITU-T G.hn , que proporciona una forma de crear una red de área local de alta velocidad (hasta 1 Gigabit/s) utilizando el cableado doméstico existente ( líneas eléctricas , líneas telefónicas y cables coaxiales ), utiliza ARQ de repetición selectiva para garantizar una transmisión confiable en medios ruidosos. G.hn emplea la segmentación de paquetes para subdividir los mensajes en unidades más pequeñas, para aumentar la probabilidad de que cada uno se reciba correctamente.
El perfil STANAG 5066 para comunicación de datos de radio de alta frecuencia (HF) utiliza ARQ de repetición selectiva, con un tamaño de ventana máximo de 128 unidades de datos de protocolo (PDU).