Go-Back- N ARQ es una instancia específica del protocolo de solicitud de repetición automática (ARQ), en el que el proceso de envío continúa enviando una cantidad de tramas especificadas por un tamaño de ventana incluso sin recibir un paquete de confirmación (ACK) del receptor. Es un caso especial del protocolo de ventana deslizante general 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 par antes de requerir un ACK.
El proceso del receptor realiza un seguimiento del número de secuencia de la siguiente trama que espera recibir. Descartará cualquier trama que no tenga el número de secuencia exacto que espera (ya sea una trama duplicada que ya ha reconocido o una trama fuera de orden que espera recibir más tarde) y enviará un ACK para la última en orden correcta. marco. [1] Una vez que el remitente haya enviado todas las tramas en su ventana , detectará que todas las tramas desde la primera trama perdida están pendientes y volverá al número de secuencia del último ACK que recibió del proceso del receptor. y llene su ventana comenzando con ese marco y continúe el proceso nuevamente.
Go-Back- N ARQ es un uso más eficiente de una conexión que el ARQ Stop-and-wait , ya que, a diferencia de esperar un acuse de recibo para cada paquete, la conexión todavía se utiliza a medida que se envían los paquetes. En otras palabras, durante el tiempo que de otro modo se pasaría esperando, se envían más paquetes. Sin embargo, este método también da como resultado el envío de tramas varias veces: si alguna trama se perdió o se dañó, o si el ACK que los reconoció se perdió o se dañó, entonces esa trama y todas las tramas siguientes en la ventana de envío (incluso si se recibieron sin errores) será reenviado. Para evitar esto, se puede utilizar ARQ de repetición selectiva . [2]
Pseudocódigo
Estos ejemplos asumen un número infinito de números de secuencia y solicitud. [1]
N : = tamaño de ventana Rn : = número de solicitud Sn : = número de secuencia Sb : = base de secuencia Sm : = secuencia máx.el receptor de la función es Rn : = 0 Haz lo siguiente para siempre: si el paquete recibido = Rn y el paquete no tiene errores, entonces Acepte el paquete y envíelo a una capa superior Rn : = Rn + 1 más Rechazar paquete Envíe una solicitud de Rnel emisor de la función es Sb : = 0 Sm : = N + 1 Repite los siguientes pasos para siempre: 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 , transmita un paquete donde Sb ≤ Sn ≤ Sm . Los paquetes se transmiten en orden.
Elegir un tamaño de ventana ( N )
Hay algunas cosas a tener en cuenta al elegir un valor para N :
- El remitente no debe transmitir demasiado rápido. N debe estar limitado por la capacidad del receptor para procesar paquetes.
- N debe ser menor que el número de números de secuencia (si están numerados de cero a N ) [ aclaración necesaria ] para verificar la transmisión en caso de que se descarte cualquier paquete (cualquier paquete de datos o paquete ACK). [2]
- Dados los límites presentados en (1) y (2), elija N para que sea el número más grande posible. [3] [ verificación fallida ]
Referencias
- ^ a b Kurose, James F .; Keith W. Ross. Redes de computadoras: un enfoque de arriba hacia abajo . ISBN 0-321-49770-8.
- ^ a b Tanenbaum, Andrew S. Red de computadoras(4ª ed.). ISBN 0-13-066102-3.
- ^ Marbach, Peter. "Protocolos ARQ" (PDF) . Consultado el 24 de agosto de 2013 .