Professional Documents
Culture Documents
Script
Simulación
NAM – Network Animator
Xgraph – Gnuplot
Modelando el mundo real
● El simulador mantiene una lista de
eventos
● Se procesa la lista de eventos
● Cada evento sucede en un determinado
instantes de tiempo virtual
● La ejecución de un evento consume
tiempo real pero no se refleja en el
tiempo virtual
Modelando el mundo real
Creando la topología
● Nodos
– set n0 [$ns node]
– set n1 [$ns node]
● Enlaces y colas
– $ns simplex-link $n0 $n1 <bandwidth> <delay>
<queue_type>
– $ns duplex-link $n0 $n1 <bandwidth> <delay>
<queue_type>
– <queue_type>: DropTail, RED, CBQ, FQ, SFQ, DRR
Creando la topología
● LAN
– $ns make-lan <node_list> <bandwidth>
<delay> <ll_type> <ifq_type> <mac_type>
<channel_type>
– <ll_type>: LL
– <ifq_type>: Queue/DropTail,
– <mac_type>: MAC/802_3
– <channel_type>: Channel
Creando la topología
● Creando módulos de Error
– set loss_module [new ErrorModel]
– $loss_module set rate_ 0.01
– $loss_module unit pkt
– $loss_module ranvar [new
RandomVariable/Uniform]
– $loss_module drop-target [new Agent/Null]
● Insertando módulos de Error
– $ns lossmodel $loss_module $n0 $n1
Creando la topología
● Falla en los enlaces
– Modificaciones en el módulo de enrutamiento
para reflejar cambios de enrutamiento
● Cuatro modelos
$ns rtmodel-at <time> up|down $n0 $n1
$ns rtmodel Trace <config_file> $n0 $n1
$ns rtmodel Exponential {<params>} $n0 $n1
$ns rtmodel Deterministic {<params>} $n0 $n1
● Lista de Parámetros
[<start>] <up_interval> <down_interval> [<finish>]
Creando la topología
● Unicast
– $ns rtproto <type>
– <type>: Static, Session, DV, cost, multi-path
● Multicast
– $ns multicast (después de [new Simulator])
● o set ns [new Simulator –multicast on]
– $ns mrtproto <type>
– <type>: CtrMcast, DM, ST, BST
(centralizado,dense mode, shared tree
Definiendo Agentes
● UDP
– set udp [new Agent/UDP]
– set null [new Agent/Null]
– $ns attach-agent $n0 $udp
– $ns attach-agent $n1 $null
– $ns connect $udp $null
Definiendo Agentes
● TCP
– set tcp [new Agent/TCP]
– set tcpsink [new Agent/TCPSink]
– $ns attach-agent $n0 $tcp
– $ns attach-agent $n1 $tcpsink
– $ns connect $tcp $tcpsink
Definiendo el tráfico
● CBR
– set src [new Application/Traffic/CBR]
● Exponencial o Pareto
– set src [new Application/Traffic/Exponential]
– set src [new Application/Traffic/Pareto]
Definiendo el tráfico
● FTP
– set ftp [new Application/FTP]
– $ftp attach-agent $tcp
● Telnet
– set telnet [new Application/Telnet]
– $telnet attach-agent $tcp
Simulación de aplicaciones
● Características
– Construcción sobre un protocolo de
transporte existente
– Transmisión de data de usuario, ej.,
Cabeceras HTTP
● Dos soluciones diferentes
– TCP: Application/TcpApp
– UDP: Agent/Message
Programando los eventos
● Programando el inicio del tráfico
– $ns at 0.0 “$cbr0 start”
● Programando el fin del tráfico
– $ns at 5.0 “$cbr0 stop”
– $ns at 5.0 “finish”
Procedimiento de post-
simulación
proc finish { } {
global ns fd
$ns flush-trace
close $fd
exec …. &
}
La traza
Analizando la traza
● La traza refleja todos los eventos de la
simulación
● Permite observar el resultado de
determinados factores en la simulación
● El archivo de la traza sigue un formato
común
● Se debe prestar atención a los campos
de la traza
Ejemplo 1
● set ns [new Simulator]
● $ns color 1 Blue
● $ns color 2 Red