El protocolo Go-Back- N ARQ es una variante específica del protocolo de solicitud de repetición automática (ARQ), en la que el proceso emisor continúa enviando un número de tramas especificado por el tamaño de la ventana, incluso sin recibir un paquete de acuse de recibo (ACK) del receptor. Se trata de un caso especial del protocolo general de ventana deslizante , con un tamaño de ventana de transmisión de N y un tamaño de ventana de recepción de 1. Puede transmitir N tramas al interlocutor antes de requerir un ACK.
El proceso receptor mantiene un registro del número de secuencia del siguiente fotograma que espera recibir. Descartará cualquier fotograma que no tenga el número de secuencia exacto que espera (ya sea un fotograma duplicado que ya reconoció o un fotograma fuera de orden que espera recibir más tarde) y enviará un ACK para el último fotograma correcto en orden. [ 1 ] Una vez que el remitente ha enviado todos los fotogramas en su ventana , detectará que todos los fotogramas desde el primer fotograma perdido están pendientes y volverá al número de secuencia del último ACK que recibió del proceso receptor y llenará su ventana comenzando con ese fotograma y continuará el proceso de nuevo.
El método Go-Back- N ARQ utiliza la conexión de forma más eficiente que Stop-and-wait ARQ , ya que, a diferencia de esperar una confirmación para cada paquete, la conexión se sigue utilizando mientras se envían los paquetes. En otras palabras, durante el tiempo que de otro modo se emplearía en esperar, se envían más paquetes. Sin embargo, este método también implica el envío de tramas varias veces : si alguna trama se pierde o se daña, o si la confirmación que las acredita se pierde o se daña, esa trama y todas las tramas siguientes en la ventana de envío (incluso si se recibieron sin errores) se reenviarán. Para evitar esto, se puede utilizar Selective Repeat ARQ . [ 2 ]
Pseudocódigo
Estos ejemplos suponen un número infinito de números de secuencia y de solicitud. [ 1 ]
N := tamaño de la ventana Rn := número de solicitud Sn := número de secuencia Sb := base de la secuencia Sm := longitud máxima de la secuencia El receptor de la función es Rn := 0 Haz lo siguiente para siempre: Si el paquete recibido es igual a Rn y el paquete no tiene errores , entonces Acepta el paquete y envíalo a una capa superior. Rn := Rn + 1 en caso contrario Paquete de rechazo Enviar solicitud de RnLa función emisora es Sb := 0 Sm := N + 1 Repita los siguientes pasos indefinidamente: Si recibe un número de solicitud donde Rn > Sb, entonces Sm := ( Sm − Sb ) + Rn Sb := Rn. Si no hay ningún paquete en transmisión, entonces transmita un paquete donde Sb ≤ Sn ≤ Sm . Los paquetes se transmiten en orden.
Elegir un tamaño de ventana ( N )
Hay algunas cosas que se deben tener en cuenta al elegir un valor para N :
- El emisor no debe transmitir demasiado rápido. N debe estar limitado por la capacidad del receptor para procesar paquetes.
- N no debe ser mayor que la mitad del número de números de secuencia (por ejemplo, para un número de secuencia de 8 bits, N no debe ser mayor que) para que el receptor pueda desambiguar entre un duplicado de un paquete anterior y una recepción fuera de orden de un paquete posterior. [ 2 ] [ 3 ]
- Dados los límites presentados en (1) y (2), elija N como el mayor número posible. [ 4 ]
Referencias
- 1 2 Kurose, James F.; Keith W. Ross. Redes informáticas: un enfoque descendente . ISBN 0-321-49770-8.
- 1 2 Tanenbaum, Andrew S. (2003). Redes de computadoras (4.ª ed.). Prentice Hall. ISBN 0-13-066102-3.
- ↑ Greaves, David J. "Diapositivas de la clase sobre redes informáticas (capa de transporte)" (PDF) . Departamento de Ciencias de la Computación y Tecnología de la Universidad de Cambridge . Consultado el 3 de marzo de 2026 .
- ↑ Marbach, Peter. "Protocolos ARQ" (PDF) . Consultado el 24 de agosto de 2013 .
Véase también
Enlaces externos
- Demostración de ARQ Go-Back-N en un applet de Java
- Control de enlace lógico
- Detección y corrección de errores