Actualmente estoy estudiando redes bastante básicas, y actualmente estoy en el tema de la transmisión confiable. Estoy usando el libro de Interconexión en red por Kurrose & Ross, y dos de las preguntas de la revisión fueron los siguientes:SR & GBN: ACKs fuera de la ventana
Con el protocolo de repetición selectiva/go-back-n, es posible que el remitente a recibir un ACK por un paquete que queda fuera de su ventana actual ?
Para la versión SR, mi respuesta a la pregunta era la siguiente:
Sí, si el tamaño de la ventana es demasiado grande para el espacio de número de secuencia. Para el ejemplo , un receptor obtiene una cantidad de paquetes igual al espacio de los números de secuencia . Su ventana de recepción se ha movido así que es esperando un nuevo conjunto de paquetes con los mismos números de secuencia que el último. El receptor ahora envía un ACK para cada uno de los paquetes, pero se pierden en el camino. Esto eventualmente hace que el emisor expire el tiempo de espera para cada uno de los paquetes previos y retransmite cada uno de ellos. El receptor piensa que este conjunto duplicado de paquetes son realmente los nuevos que está esperando, y envía ACK para cada uno de ellos que llega con éxito al remitente. El remitente ahora experimenta un tipo similar de confusión, donde cree que los ACK son confirmaciones de que cada uno de los paquetes anteriores se ha recibido, cuando en realidad son ACK destinados a los nuevos paquetes que aún deben enviarse.
Estoy bastante seguro de que esto es correcto (de lo contrario, ¡dímelo!), Ya que este tipo de escenario parece ser la justificación clásica de por qué el tamaño de ventana debe ser menor o igual a la mitad del tamaño espacio de número de secuencia cuando se trata de protocolos SR, pero ¿qué pasa con GBN?
¿Puede ocurrir el mismo tipo de problema envolvente, haciendo que las respuestas sean básicamente idénticas? De lo contrario, ¿hay algún otro caso que pueda hacer que un remitente típico de GBN reciba un ACK fuera de su ventana?
En cuanto a la tarde, el único ejemplo que puedo pensar es la siguiente:
A GBN remitente envía paquetes A & B en orden. El receptor recibe ambos en orden y envía un ACK acumulativo que cubre cada paquete antes y hasta A, y luego otro que cubre cada paquete antes y hasta B (incluido A). El primero está tan retrasado que el segundo llega primero al remitente, haciendo que su ventana se desplace más allá de A & B. Cuando llega el primero, reconoce innecesariamente que todo hasta A se ha recibido correctamente, cuando A es ya fuera de la ventana del remitente.
Este ejemplo parece bastante inofensivo y poco probable en contraste con el anterior, así que dudo que sea correcto (pero, de nuevo, ¡corríjanme si me equivoco, por favor!).