Duda: Problema 2 - Examen Marzo 2012

Duda: Problema 2 - Examen Marzo 2012

de Alfredo Jose Espasandin Mederos -
Número de respuestas: 3

Hola: 

En la solución del problema, B retransmite mensajes D aunque en la letra se dice que Los mensajes D, una vez enviados, siempre son correctamente entregados. Buscando en los foros, ví que más gente tuvo la misma duda:

https://eva.fing.edu.uy/mod/forum/discuss.php?d=40908

En ese hilo se explica que es debido a que la letra no dice que los mensajes no puedan reordenarse dentro del canal. Pero si eso pudiera pasar, y teniendo en cuenta que el retardo del canal es desconocido y variable, podría ocurrir que apareciera un D0 de "primera generación" cuando el receptor esté esperando un D0 de "quinta generación", por ejemplo. De hecho, creo haber leído en el libro que los protocolos S&W funcionan con la hipótesis de que el canal no reordene mensajes. Es decir, que con solamente dos números de secuencia no habría manera de saber si A recibe el D0 correcto.

Entonces, si no entendí mal, me parece que podría darse una de estas dos situaciones: 
1) Si el canal puede reordenar mensajes, habría que usar una rango lo suficientemente amplio de números de secuencia para que sean poco probables las repeticiones, de modo que habría que implementar una FSM extendida con variables para manejar esas secuencias.
2) Si el canal no reordena mensajes, entonces sería innecesario que B retransmita los mensajes D, porque A los recibirá a todos y en orden.

¿Se entiende la duda?

En respuesta a Alfredo Jose Espasandin Mederos

Re: Duda: Problema 2 - Examen Marzo 2012

de Alfredo Jose Espasandin Mederos -

Repasando, acabo de ver que el ejercicio 1 del práctico 4 trataba justamente de mostrar con un ejemplo que S&W  no funciona si se reordenan los mensajes. O sea, sigo sin la solución planteada

En respuesta a Alfredo Jose Espasandin Mederos

Re: Duda: Problema 2 - Examen Marzo 2012

de Matias Richart -

Hola Alfredo.

Tu pregunta es muy pertinente y creo que hay un poco de todo, la letra me parece que no es del todo clara y la solución planteada tiene algunas fallas.

Con respecto a la letra, para mi debería aclarar si los mensajes D tienen que ser entregados a la capa superior en orden o no. Yo entiendo que no, pero me parece una duda razonable.

Con respecto a la solución, al considerar que "El retardo del canal es desconocido y variable." estoy de acuerdo contigo que un protocolo Stop and Wait (tradicional) con dos números de secuencia no es suficiente.

Con la solución como está puede pasar que lleguen a A mensajes D cuando no está esperando recibirlos y se pierdan. También podría pasar que los mensajes D lleguen en un orden distinto al esperado.

Creo que hay por lo menos un par de soluciones válidas. Usar un conjunto de números de secuencia es una opción y entiendo que es lo que la mayoría haríamos con lo visto en el curso.

Otra opción sería no utilizar ningún numero de secuencia y que B cada vez que le llega un R envía un dato D nuevo. B no tendría porque reenviar ya que los mensajes D siempre llegan (por letra). Lo que puede pasar es que a B le lleguen varios R que en realidad corresponden a una única solicitud de la capa superior en A. Lo que tendría que hacer A es tener un buffer donde almacena los D que van llegando y cuando la capa superior los pide, se los entrega sin generar un nuevo R. Esto no garantiza el orden de los mensajes D pero creo que funciona. Igualmente me parece que no era el espíritu de la pregunta.


Espero se entienda. La verdad que es un examen de hace varios años y no recuerdo si se realizó alguna aclaración en su momento.


Saludos