martes, 5 de marzo de 2013

ACTIVIDAD 5: SIMULACION CON NS2

Para esta semana tenemos la tarea de simular una red mediante el network simulator 2 (NS2), usando Network Animator (NAM).

Para instalar los programas en ubuntu es simple , con el comando que acostumbramos usar:




El código de ejemplo no fue hecho por mi, lo encontré aquí : http://webingineer.wordpress.com/2010/08/15/simulation-example-in-ns-2/

////

#Se crea el objeto simulador
set ns [new Simulator]
#Para mostrar el flujo de datos en colores diferentes en NAM
$ns color 1 Blue
$ns color 2 Red
#Archivo NAM
set nf [open out.nam w]
$ns namtrace-all $nf
#Definir procedimiento
proc finish {} {
global ns nf
$ns flush-trace
#Close the NAM trace file
close $nf
#Execute NAM on the trace file
exec nam out.nam &
exit 0
}
#Se crean los nodos
set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]
#Se crean las aristas
$ns duplex-link $n0 $n2 2Mb 10ms DropTail
$ns duplex-link $n1 $n2 2Mb 10ms DropTail
$ns duplex-link $n2 $n3 1.7Mb 20ms DropTail
#Tamano de la cola en la arista n2-n3
$ns queue-limit $n2 $n3 10
#posicionar los nodos para NAM
$ns duplex-link-op $n0 $n2 orient right-down
$ns duplex-link-op $n1 $n2 orient right-up
$ns duplex-link-op $n2 $n3 orient right
#Se monitorea la arista n2-n3 para NAM
$ns duplex-link-op $n2 $n3 queuePos 0.5
#Conexion TCP
set tcp [new Agent/TCP]
$tcp set class_ 2
$ns attach-agent $n0 $tcp
set sink [new Agent/TCPSink]
$ns attach-agent $n3 $sink
$ns connect $tcp $sink
$tcp set fid_ 1
#Conexion FTB sobre TCP
set ftp [new Application/FTP]
$ftp attach-agent $tcp
$ftp set type_ FTP
#Conexion UDP
set udp [new Agent/UDP]
$ns attach-agent $n1 $udp
set null [new Agent/Null]
$ns attach-agent $n3 $null
$ns connect $udp $null
$udp set fid_ 2
#Conexion CBR sobre UDP
set cbr [new Application/Traffic/CBR]
$cbr attach-agent $udp
$cbr set type_ CBR
$cbr set packet_size_ 1000
$cbr set rate_ 1mb
$cbr set random_ false
#Eventos para los agentes CBR y FTP
$ns at 0.1 "$cbr start"
$ns at 1.0 "$ftp start"
$ns at 4.0 "$ftp stop"
$ns at 4.5 "$cbr stop"
#Despegar los agentes tcp y sink
$ns at 4.5 "$ns detach-agent $n0 $tcp ; $ns detach-agent $n3 $sink"
#Se llama al procedimiento llamado "finish" despues de 5 segundos de simulacion
$ns at 5.0 "finish"
#Imprime el tamano del paquete CBR y el intervalo
puts "CBR packet size = [$cbr set packet_size_]"
puts "CBR interval = [$cbr set interval_]"
#Iniciar simulacion
$ns run
view raw simple.tcl hosted with ❤ by GitHub
////

El escenario descrito por el código anterior se puede describir mediante el siguiente diagrama:


Mediante el diagrama ( y el código) podemos ver los siguientes detalles de la simulación:

  • Se crea una conexión TCP sobre FTP en el nodo 0.
  • Se crea una conexión UDP sobre CBR en el nodo 1.
  • Las conexiones nodo 0 - nodo 2 y nodo 1 - nodo 2 tienen una velocidad de 2Mbps con un delay de 10 ms .
  • La conexion nodo 2 - nodo 3 tiene una velicdad de 1.7 Mbps con un delay de 20 ms.
  • El tamaño de cada paquete es de 1KByte.
Aquí esta la simulación en video, donde podemos ver que al transmitir datos entre el nodo 2 y el nodo 3, se desprenden unos cuadrados rojos y azules, estos representan los paquetes perdidos.


ACTIVIDAD 5: DONDE ENCONTRAR EL HARDWARE

La tarea de esta semana consiste en reportar las diferentes tiendas de electrónica en donde podemos conseguir los componentes que estaremos usando en nuestro proyecto, que en nuestro caso es el proyecto de oficina inteligente.

 Como ya he mencionado en entradas pasadas, en el proyecto utilizaremos RFID para que el usuario ingrese a la oficina, entonces necesitamos conseguir el lector RFID, Sensores RFID (tags, pulseras, etc.).

Para la comunicación entre dispositivos necesitamos el Xbee. Y también veremos donde comprar las cosas esenciales como resistencias , leds, y el arduino que se ha vuelto muy útil.

Además necesitaremos un sensor de movimiento para las nuevas propuestas que se añadieron al proyecto después del estudio de campo.

5 HERTZ ELECTRONICA

Esta tienda es una de las que siempre tengo en mente cuando se trata de comprar componentes electronicos, sobre todo los dificiles de conseguir en otro lugar y es mi recomendación cuando alguien me pregunta. Esto porque ya desde hace varios semestres ha sido nuestra fuente principal de recursos, y siempre ha tenido un excelente servicio y precios razonables. Además si algún componente no esta en existencia, puedes encargarlo y no tarda mucho en llegar. 

Aquí puedes comprar: Xbee, Arduino, Lector RFID.

(En nuestro caso ya contamos con varios Arduinos, y el Lector RFID lo pediremos prestados a uno de los maestros de la facultad )


SPARKUN ELECTRONICS
En esta tienda puedes conseguir prácticamente de todo. Muchos de sus componentes son realmente económicos a comparación de los precios encontrados en otras partes. Las compras en linea son de lo mas sencillo y solo necesitas crear una cuenta y una tarjeta de credito.

Aquí puedes comprar: Sensores RFID, sensores de movimiento.



STEREN

Steren es la opción por excelencia para comprar resistencias y demás componentes básicos. Aquí las resistencias salen a menos de un peso si las compras a mayoreo. Ademas

SOFTWARE
El software que usaremos no tiene nada de complicado conseguirlo ya que no estaremos usando nada rebuscado, solamente html 5, python, y processing. Para lo cual, trabajando en ubuntu, solo necesitamos descargar processing de su pagina oficial, y listo.

Si quieres instalar processing desde consola en ubuntu, aqui hay un tutorial simple:

http://blog.jorgeivanmeza.com/2010/05/instalar-processing-en-linux-ubuntu-10-04/



Referencia
http://www.5hz-electronica.com/xbee1mwconantenadechip-1.aspx
https://www.sparkfun.com/products/8630
http://processing.org/download/