[Kurose] Duda Go Back N

[Kurose] Duda Go Back N

de Bernardo Larrosa Rosengurtt -
Número de respuestas: 4
Leyendo la 5ta edición del libro del curso, me queda claro que GBN utiliza la técnica de reconocimiento acumulativo: cuando llega un ACK con número de secuencia N significa que el receptor recibió correctamente todos los paquetes desde el primero hasta el enésimo.

Sin embargo, en la página 246, cuando pretende describir si TCP utiliza GBN o Repetición Selectiva dice:

... Considere también lo que ocurre cuando el emisor envía una secuencia de segmentos 1, 2, ... , N, y todos ellos llegan en orden y sin errores al receptor. Suponga además que el paquete de reconocimiento para el paquete n < N se pierde, pero los N-1 paquetes de reconocimiento restantes llegan al emisor antes de que tengan lugar sus respectivos fines de temporización. En este ejemplo, GBN retransmitiría no sólo el paquete n, sino también todos los paquetes subsiguientes n+1, n+2, ..., N. Por otro lado, TCP retransmitiría como mucho un segmento, el segmento n. Además, TCP no retransmitiría ni siquiera el segmento n si el reconocimiento para el segmento n+1 llega antes del fin de temporización correspondiente al segmento n.

Además, corriendo el applet de la página se puede ver que lo que dice en negrita no es lo que sucede.

Me fijé si era un problema de traducción pero en la versión en inglés dice lo mismo.

¿Está mal lo que dice el libro o estoy malinterpretando algo?
En respuesta a Bernardo Larrosa Rosengurtt

Re: [Kurose] Duda Go Back N

de Eduardo Grampin -
puede ser que el texto sea un poco confuso, pero las máquinas de estado son correctas, y muestran que no existe contradicción entre la descripción de GBN y la applet. lo importante es que TCP reenvía EL segmento que falta, mientras que GBN "puro" reenvía TODOS a partir del que faltaba. 
En respuesta a Eduardo Grampin

Re: [Kurose] Duda Go Back N

de Cristiano Coelho De Asis -
No entiendo, si llegan todos los acks de 1,2...n-1,n+1,...N (se perdio el ack de n), por que GBN reenvia todos los paquetes? Si llego el ack de N quiere decir que del 1 al N se recibieron todos y no tiene que reenviar nada..No seria en el selective repeat eso? TCP no se supone que se comporta como GBN en este caso?
En respuesta a Cristiano Coelho De Asis

Re: [Kurose] Duda Go Back N

de Bernardo Larrosa Rosengurtt -
Exacto, esa es mi duda. Quizas no la exprese bien.
En respuesta a Bernardo Larrosa Rosengurtt

Re: [Kurose] Duda Go Back N

de Romina Diana Romero Riva -
El tema creo que está en que el libro ahí está suponiendo que cada paquete tiene un timer individual:
"pero los N-1 paquetes de reconocimiento restantes llegan al emisor antes de que tengan lugar sus respectivos fines de temporización".
Si te fijás, en el libro en la página 220 dice "El emisor de la figura 3.20 utiliza un único temporizador", pero eso creo que es más bien una decisión de diseño (es más económico tener un sólo temporizador). El applet en cambio pone un temporizador por paquete, pero no da el tiempo (con la configuración predefinida) para apreciar el fenómeno mencionado. Si envías un paquete, matas su ACK, esperas un rato (o enlenteces lo suficiente, pero igual tenés que esperar un poco creo) y luego envías otro paquete se ve que, cuando está viajando el ACK del segundo paquete, salta el timeout del primero y se reenvían los dos paquetes.

Saludos