Ejercicio 4.6.7, costos enlaces

Ejercicio 4.6.7, costos enlaces

de Matias Irland Tomas -
Número de respuestas: 1
Hola, estaba implementando el algoritmo y me surgió el porblema de como asignarle los costos de cada enlace.
Pense en asignarle los costos del enlace en el "Source port name" y "Target port name", pero un mismo nodo no puede tener dos enlaces con el mismo target o source port name. Se me ocurrio asignarle el costo como [idArista]:[costo], ejemplo e32:8 significa que el nodo posee una arista con id e32 y costo 8. Claramente no me parece una solucion muy limpia, por lo que pregunto si hay alguna forma mejor de hacer esto.
En respuesta a Matias Irland Tomas

Re: Ejercicio 4.6.7, costos enlaces

de Javier Baliosian -
hola 


si, es una carencia del DisJ. una posibilidad es hacer algo como lo que sugerís, con un mapa de costos por puerto de salida mantenido en cada entidad y preocuparse de que haya coherencia entre las tablas de las entidades. no es tan loco. sería como configurarle un costo administrativo a la interfaz de un router en la realidad. 

otra forma puede ser usar los Delay Seed (el delay de un link) que se pueden setear via la interfaz del DisJ (ver el cookbook) como propiedades de los links y que es un costo de lo más razonable a para usar. 

el problema con eso es que para acceder a ese valor en el DisJ, tal como está ahora, desde una implementación de la clase Entity hay que dar una vuelta un poco rara. la clase GraphFactory tiene un método estático getGraphList() a partir del que pueden obtener el Graph. con el Graph pueden obtener los Edge y de los Edge puede obtener los delays. es un lio que se resolvería con un cambio menor al código de DisJ que, casualmente, pueden encontrar en: 

y ¿qué mejor que hacer un aporte al simulador y agregarle un método que devuelva el delay del enlace en un puerto dado? ¿no? si bien desde el punto de vista del realismo de la herramienta sería un poco raro ya que el delay de un enlace no es algo que se pueda consultar simplemente en un dispositivo, podría ser útil para experimentar y validar protocolos.

Se me acaba de ocurrir que hasta podrían mandar un pseudo ping y averiguar el RTT del enlace y deducir un costo así.  

en resumen: experimenten y documenten. 

saludos, 

J