Cuantos temporizadores tiene el emisor GBN?

Cuantos temporizadores tiene el emisor GBN?

de Ernesto Fernandez Ferreyra -
Número de respuestas: 3

En la quinta edicion del libro Kurose, en la pagina 220 dice que GBN usa un único temporizador que solo se inicia cuando envia un paquete en la posicion base o cuando recibe un ACK, pero en la pagina 222, el esquema mostrado da a entender que existe un temporizador por paquete. Cual es la correcta?

En respuesta a Ernesto Fernandez Ferreyra

Re: Cuantos temporizadores tiene el emisor GBN?

de Aldo Martin Plazzotta Aguilera -

¿Te referís al esquema que muestra un posible escenario de intercambio de mensajes ? 

Cuando el timer salta se reenvían varios paquetes: todos los enviados que aún no fueron reconocidos (paquetes 2, 3, 4 y 5) 

El emisor GBN tiene un solo timer, que sería el del paquete más viejo no reconocido. Pero, eventualmente, ante un time out se reenvían varios paquetes.

Saludos.

En respuesta a Aldo Martin Plazzotta Aguilera

Re: Cuantos temporizadores tiene el emisor GBN?

de Ernesto Fernandez Ferreyra -

Según la maquina de estados de la pagina 220 sucede esto cuando ser recibe un ACK:

rdt_recibir(pqtrcb) && nocorrupto(pqtrcb)

base=obtenernumack(pqtrcb)+1

If(base==signumsec)

       detener_temporizador

else

       iniciar_temporizador


Este código indica que cuando se recibe el ACK 0 y el ACK 1 el temporizador se debería iniciar (el único temporizador), pero en la imagen que subiste el temporizador del paquete 2 no se reinicia, da a entender que el paquete 2 tiene su propio temporizador. No se si esta mal el libro o que es un poco ambiguo como fue expresado en la imagen. 

En respuesta a Ernesto Fernandez Ferreyra

Re: Cuantos temporizadores tiene el emisor GBN?

de Ernesto Gerez Blanco -
Según lo que entiendo de las máquinas de estados, el timer debería empezar cuando se envía el pqt0. Probablemente lo dibujaron como que empieza cuando se manda el 2 para ilustrar que se acaba el tiempo de espera por el ACK de ese paquete. En realidad el escenario que plantea la imagen solo sería válido si ACK0 y ACK1 hubieran llegado al emisor antes de enviar pqt2.
En el caso planteado debería reiniciarse el timer cuando llega ACK0 y otra vez cuando llega ACK1.