Obligatorio 3 Parte B

Obligatorio 3 Parte B

de Yonathan Sebastian Benelli Mena -
Número de respuestas: 10

Donde la letra dice "Se sugiere que implemente un algoritmo de flooding controlado donde cada nodo difunde mensajes de aviso de estado de enlace (LSA)."

Estos mensajes de estado de enlace se deben incorporar en RouterPacket sin modificar la clase y deben ser enviados por el metodo sendUpdate?

En respuesta a Yonathan Sebastian Benelli Mena

Re: Obligatorio 3 Parte B

de Matias Richart -

Si, deben usar la clase RouterPacket sin modificarla y se envían en sendUpdate.

En respuesta a Matias Richart

Re: Obligatorio 3 Parte B

de Yonathan Sebastian Benelli Mena -

Y en este caso podemos usar keys negativas en el hashmap del RouterPacket para indicar a que corresponde el valor?

En respuesta a Yonathan Sebastian Benelli Mena

Re: Obligatorio 3 Parte B

de Yonathan Sebastian Benelli Mena -

o en cuyo caso, basarnos en que  costo 0 implica el costo a si mismo y ningún link entre nodos diferentes puede tener costo 0?

En respuesta a Yonathan Sebastian Benelli Mena

Re: Obligatorio 3 Parte B

de Matias Richart -

No entiendo que es lo que estas queriendo hacer.

En respuesta a Matias Richart

Re: Obligatorio 3 Parte B

de Yonathan Sebastian Benelli Mena -

Supongamos esta Red   A---2----B----3----C---1--D

---Estoy en el nodo A

La clase routerPacket contiene sourceID, destID y el hashmap<integer,integer>.

Si debo enviar un mensaje de estado de enlace en esta clase, en el hashmap irían los vecinos y costos de quien instancia la clase (nodo A), en sourceID el id de quien instancia la clase, y destID al vecino donde lo mando, verdad?

Ejemplo sourceId=A, destId=B, hashmap <B,2>

--Cuando el vecino B recibe este paquete y debe hacer flooding, debe poner sourceID=B y destID=C

para mandarlo al nodo C.

--Cuando el nodo C, recibe el paquete, y lee el hasmap <B,2> leeria alguien tiene como vecino al nodo B con costo 2, pero no tengo mas información que el sourceID que se cambio a B (en el paso anterior) entonces pierdo que de los vecinos que estoy hablando son del nodo A.

Entonces quisiera saber como conservar el id del nodo que crea el paquete, si puedo asumir que los links a si mismo siempre valen 0, y que ningún link entre nodos diferentes va a valer 0, podria incluir al crear el hashmap la clave <A,0><B,2> entonces tendría la información de que el nodo que creo el paquete es el A


O estoy viendo mal lo que seria el mensaje de estado de enlace?


En respuesta a Yonathan Sebastian Benelli Mena

Re: Obligatorio 3 Parte B

de Matias Richart -

De acuerdo. Ahora entiendo.

Lo que vamos a hacer es modificar el simulador de manera que se pueda implementar el flooding. Es decir, que se pueda enviar un paquete manteniendo el "sourceid" original.

A la brevedad subiremos el simulador modificado. La modificación consiste en borrar las siguientes líneas de RouterSimulator.java:

    if (connectcosts[packet.sourceid][packet.destid] == INFINITY)  {
      myGUI.println("WARNING: source and destination not connected, ignoring packet!");
      return;
    }


Por otro lado, si vas a tener que utilizar alguna idea como la que mencionas para agregar un número de secuencia a los LSAs. Por ejemplo, reservando la primer entrada del map para eso. El número de secuencia es necesario para que el flooding termine en algún momento.

En respuesta a Matias Richart

Re: Obligatorio 3 Parte B

de Yonathan Sebastian Benelli Mena -

Genial, pero en cuanto a esto 

"Por otro lado, si vas a tener que utilizar alguna idea como la que mencionas para agregar un número de secuencia a los LSAs. Por ejemplo, reservando la primer entrada del map para eso. El número de secuencia es necesario para que el flooding termine en algún momento."

Según entiendo el map en java no mantiene el orden de inserción sino que lo ordena según key, entonces no podría asumir que el primer lugar del map es mi numero de secuencia, para esto debo asignarle un valor especifico a la key que llevara el valor del numero de secuencia, siendo dicho key 0 o -1 quedaría al principio del map siempre, es posible hacer esto aunque incumplamos la letra que dice no usar estas cosas?


En respuesta a Yonathan Sebastian Benelli Mena

Re: Obligatorio 3 Parte B

de Matias Richart -

Si, esta bien usar un número negativo para este caso. Cuidado que 0 no es posible porque es un ID de nodo válido.


saludos