lunes, 20 de mayo de 2013

Redes de telecomunicaciones "Simulación de movimiento".

En esta ocasión realizaremos una pequeña simulación de movilidad, bueno empecemos.

Se crearon dos diferentes nodos:

Los primero nodos son aquellos que se comunicaran entre si, enviando un mensaje de pause, ademas de que se tratara de controlar el "TTL"  (time to live) de cada uno de ellos, ademas de que cada uno de ellos tiene su propia batería. 

El nodo de referencia, este nodo es el que iniciara la serie de eventos para la comunicación, esto quiere decir que si uno de los nodos de comunicación lo detecta, este nodo de comunicación tratara de avisarles a sus nodos vecinos que lo detecto reduciendo cada vez el" TTL" en cada transmisión.

El código se hizo por clases, una clase para los primeros nodos y una segunda clase para el nodo auxiliar
Aquí esta:


Posteriormente se inicia la simulación.

La aparición de los nodos sera de un modo exponencial.

Por ejemplo se agregan los primeros nodos cuando tiempo sea igual a  la exponencial elevado a la uno, posteriormente el siguiente agregado de nodos sera cuando el tiempo sea igual a la exponencial elevado a la dos, y así sucesivamente.

Posteriormente ya teniendo nodos principales, se verifica si pueden ver al nodo de referencia, en caso de que no se pasa al siguiente nodo.

Si el nodo llega a detectar al nodo de referencia este cambia de color, y se parará automáticamente. Posteriormente este tratara de pesarle la información a sus nodos vecinos teniendo en cuenta su área de visión, en caso de que encuentre a un vecino con una condición de movilidad, este le envía el mensaje para que se para y el "TTL" se reduce a uno. 

El código para verificar si encontró el nodo de referencia y para verificar si se puede enviar a nodos vecinos información es el siguiente:




Y este proceso se repite nuevamente con cada uno de los nodos y dependiente mente de su estado seria su acción ya sea verificar si puede enviar mensajes a sus vecinos o en búsqueda del nodo de referencia.

Cada vez que pase un ciclo de la simulación, pierden un porcentaje de su batería  al igual si transmiten la información.

En caso de que esta energía llegue a cero el nodo desaparece.
Para finalizar se trato de optimizar el "TTL" de la siguiente manera:

  • Se verifica el "TTL" final que quedo dando vueltas al poner nuevamente nodos, este "TTL" se toma de la ultima verificación de los nodos.
  • En caso de que este nodo tenga un "TTL" arriba de 0 , se reduce el "TTL" inicial menos uno, y en caso de que el "TTL" resultante sea igual a 0 se aumenta uno, tratando que el "TTL" sobrante sea alrededor de uno.





Aquí la simulación


Como observamos en la simulación, en caso de que se encuentre el nodo de referencia "verde", los nodos de comunicación "amarillo" cambiaran de color a morado, y dejaran de moverse. Posteriormente se verifica si estos nodos tienen nodos de comunicación de vecinos y les transmiten que deben pararse ademas que se muestra en estos nodos el "TTL" resultante.

Codigo completo aqui

1 comentario:

  1. Distribución exponencial no refiere que que crezcan los tiempos en una serie exponencial ;) ¿No lo viste en modelado y simulación? 9 pts.

    ResponderEliminar