En este caso veremos aplicado en una topología mixta mandando mensajes con el protocolo udp y veremos como se comporta al momento de estar tirando las aristas en la que se conecta con el nodo 5 que es el destino, mandándolas desde el nodo 0.
Inicializamos los nodos que vamos a empelar para el envio de paquetes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
##creamos 7 nodos | |
for {set i 0} {$i < 7} {incr i} { | |
set n($i) [$ns node] | |
} | |
##tres nodos centrales | |
set n0 [$ns node] | |
set n1 [$ns node] | |
set n2 [$ns node] | |
#nodo 7, 8 y 9 |
Hacemos las uniones entre los nodos
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
##unimos al primer nodo central | |
for {set i 0} {$i < 2} {incr i} { | |
$ns duplex-link $n0 $n($i) 1Mb 10ms DropTail | |
} | |
#unidmos al segundo nodo central | |
for {set i 2} {$i < 4} {incr i} { | |
$ns duplex-link $n1 $n($i) 1Mb 10ms DropTail | |
} | |
##unimos el tercer nodo central | |
for {set i 4} {$i < 7} {incr i} { | |
$ns duplex-link $n1 $n($i) 1Mb 10ms DropTail | |
} | |
##unimos los dos nodos centrales | |
$ns duplex-link $n1 $n0 1Mb 10ms DropTail | |
$ns duplex-link $n2 $n1 1Mb 10ms DropTail | |
##Hacemos diferentes conexiones entre los demas nodos | |
$ns duplex-link $n(0) $n(4) 1Mb 10ms DropTail | |
$ns duplex-link $n(1) $n(3) 1Mb 10ms DropTail | |
$ns duplex-link $n(3) $n(0) 1Mb 10ms DropTail | |
$ns duplex-link $n(5) $n(2) 1Mb 10ms DropTail |
Creamos el tipo de conexión de datos a enviarse, en nuestro caso es udp y se lo asignamos al nodo 0 e indicamos que el destino será nuestro nodo 5
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
##Creamos el tipo de msn udp y se lo asignamos al nodo 0 | |
set udp0 [new Agent/UDP] | |
$ns attach-agent $n(0) $udp0 | |
##creamos el tamaño del los paquetes e intervalo de envio | |
set cbr0 [new Application/Traffic/CBR] | |
$cbr0 set packetSize_ 500 | |
$cbr0 set interval_ 0.005 | |
$cbr0 attach-agent $udp0 | |
##Decimos cual es nuestro nodo de destino y de cual enviaremos | |
set null0 [new Agent/Null] | |
$ns attach-agent $n(5) $null0 | |
$ns connect $udp0 $null0 | |
##iniciamos el envio | |
$ns at 0.5 "$cbr0 start" |
Vamos indicando los nodos que iremos tirando, para ser su comportamiento
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
##Cortamos las aristas para verificar como se conporta | |
$ns rtmodel-at 1.0 down $n1 $n(3) | |
$ns rtmodel-at 1.5 down $n1 $n(4) | |
$ns rtmodel-at 2.0 down $n(0) $n0 | |
##las vamos levantanto | |
$ns rtmodel-at 2.5 up $n1 $n(4) | |
$ns rtmodel-at 3.0 up $n1 $n(3) | |
$ns rtmodel-at 3.5 up $n(0) $n0 | |
$ns at 4.5 "$cbr0 stop" | |
#finalizamos | |
$ns at 5.0 "finish" | |
$ns run |
Código completo:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
##iniciamos | |
set ns [new Simulator] | |
##declaramos el tipo de enrutamiento | |
$ns rtproto LS | |
##archivo para la simulación | |
set nf [open a.nam w] | |
set nt [open trace.tr w] | |
$ns namtrace-all $nf | |
$ns trace-all $nt | |
##que ara al final | |
proc finish {} { | |
global ns nf nt | |
$ns flush-trace | |
close $nf | |
close $nt | |
exec nam -a a.nam & | |
exit 0 | |
} | |
##creamos 7 nodos | |
for {set i 0} {$i < 7} {incr i} { | |
set n($i) [$ns node] | |
} | |
##tres nodos centrales | |
set n0 [$ns node] | |
set n1 [$ns node] | |
set n2 [$ns node] | |
#nodo 7, 8 y 9 | |
##unimos al primer nodo central | |
for {set i 0} {$i < 2} {incr i} { | |
$ns duplex-link $n0 $n($i) 1Mb 10ms DropTail | |
} | |
#unidmos al segundo nodo central | |
for {set i 2} {$i < 4} {incr i} { | |
$ns duplex-link $n1 $n($i) 1Mb 10ms DropTail | |
} | |
##unimos el tercer nodo central | |
for {set i 4} {$i < 7} {incr i} { | |
$ns duplex-link $n1 $n($i) 1Mb 10ms DropTail | |
} | |
##unimos los dos nodos centrales | |
$ns duplex-link $n1 $n0 1Mb 10ms DropTail | |
$ns duplex-link $n2 $n1 1Mb 10ms DropTail | |
##Hacemos diferentes conexiones entre los demas nodos | |
$ns duplex-link $n(0) $n(4) 1Mb 10ms DropTail | |
$ns duplex-link $n(1) $n(3) 1Mb 10ms DropTail | |
$ns duplex-link $n(3) $n(0) 1Mb 10ms DropTail | |
$ns duplex-link $n(5) $n(2) 1Mb 10ms DropTail | |
##Creamos el tipo de msn udp y se lo asignamos al nodo 0 | |
set udp0 [new Agent/UDP] | |
$ns attach-agent $n(0) $udp0 | |
##creamos el tamaño del los paquetes e intervalo de envio | |
set cbr0 [new Application/Traffic/CBR] | |
$cbr0 set packetSize_ 500 | |
$cbr0 set interval_ 0.005 | |
$cbr0 attach-agent $udp0 | |
##Decimos cual es nuestro nodo de destino y de cual enviaremos | |
set null0 [new Agent/Null] | |
$ns attach-agent $n(5) $null0 | |
$ns connect $udp0 $null0 | |
##iniciamos el envio | |
$ns at 0.5 "$cbr0 start" | |
##Cortamos las aristas para verificar como se conporta | |
$ns rtmodel-at 1.0 down $n1 $n(3) | |
$ns rtmodel-at 1.5 down $n1 $n(4) | |
$ns rtmodel-at 2.0 down $n(0) $n0 | |
##las vamos levantanto | |
$ns rtmodel-at 2.5 up $n1 $n(4) | |
$ns rtmodel-at 3.0 up $n1 $n(3) | |
$ns rtmodel-at 3.5 up $n(0) $n0 | |
$ns at 4.5 "$cbr0 stop" | |
#finalizamos | |
$ns at 5.0 "finish" | |
$ns run |
No discutes el aspecto de varias el modo de ruteo. Es una sola topología y no cien porciento parametrizado en su generación... 4 pts.
ResponderEliminar