Cómo emular tus propios protocolos usando NS2
Establezca val(mac) Mac/802_11
Luego especifique
$ns_ node-config- -macType $val(mac)
Configurar parámetros de nodo:
Establecer val(chan) Canal/WirelessChannel;#Channel Type
Establecer val(prop) Propagación/TwoRayGay set val(chan) Canal/WirelessChannel;#Channel Tipo
Establecer val(prop) Propagación/TwoRayGround;# Modelo de propagación inalámbrica
establecer val(netif) Phy/WirelessPhy;#Tipo de interfaz de red
establecer val (mac) Mac/802_11 ;# Tipo de MAC
set val(ifq) Queue/DropTail ;# Tipo de cola de interfaz
set val(ll) LL ;# Tipo de capa de enlace
set val(ll) LL ;# Tipo de capa de enlace
p>
set val(ant) Antena/OmniAntenna ;# Modelo de antena
set val(ifqlen) 50 ;# Paquete máximo en ifq
set val(ifqlen ) 50; # Paquete máximo en ifq
set val(nn) 10; # Número de nodos móviles
set val(rp) DumbAgent # Protocolo de enrutamiento
set val( x) 600
establecer val(y) 600
Mac/ 802_11 establecer dataRate_ 11Mb
#Phy/WirelessPhy establecer CSThresh_ 10.00e- 12
Conjunto #Phy/WirelessPhy RXThresh_ 10.00e-11
Conjunto #Phy/WirelessPhy Pt_ 0.1
Conjunto #Phy/WirelessPhy Pt_ 7.214e-3
# Inicializar variables globales
set ns_ [nuevo simulador]
set tracefd [open infra.tr w]
$ns_ trace- all $tracefd p>
# Establecer objeto de terreno
establecer topo [nueva topografía]
$topo load_ flatgrid $val(x) $val(y) p>
# Crear Dios
crea-god $val(nn)
# Crear canal
set chan_1_ [new $val(chan)]
$ns_ node-config -adhocRouting $val(rp) \
-llType $val(ll) \
-macType $val(mac) \
-ifqType $val(ifq) (
-ifqLen $val( ifqlen) (
-antType $val(ant) (
-propType $ val(prop) (
-phyType $val(netif) (
-topoInstance $topo (
- A
gentTrace desactivado (
). agentTrace APAGADO \
-routerTrace APAGADO \
-macTrace ENCENDIDO \
-movementTrace ENCENDIDO \
-channel $chan_1_
-canal $chan_1_
for {set i 0} {$i <[expr $val(nn)]}{incr i} {
set node_( $i) [$ns_ node]
$node_($i) random-motion 0; # Desactivar movimiento aleatorio
Set mac_($i) [$node_($ i) getMac 0]
$mac_($i) Establecer RTSHreshold_ 3000
$node_($i) Establecer X_ $i
$node_($i) Establecer Y_ 0 ; # Organizar los nodos horizontalmente
$node_($i) Establecer Z_ 0.0
}
# Establecer el nodo 0 y el nodo $val(nn) en AP. De esta forma, los puntos de acceso son los dos extremos de la línea horizontal.
#Establezca el nodo 0 y el nodo $val(nn) en AP.
#$mac_([expr $val(nn) - 1]) ap $AP_ADDR2
#$mac_([expr $val(nn) - 1]) set BeaconInterval_ 0.2
$mac_(1) ScanType ACTIVO
para {set i 3} {$i & lt [expr $val(nn) - 1]}{$i < [expr; $val(nn) - 1]}{incr i} {
Establecer udp1($i) [Nuevo proxy/UDP]
$ns_ adjuntar-proxy $node_($i ) $udp1($i)
set cbr1($i) [nueva aplicación/tráfico/CBR]
$cbr1($i) adjuntar- proxy $udp1($i)
}
Establecer base0 [nuevo agente/nulo]
$ns_attach-Agent $node_(1) $base0
set base1 [nuevo Agente /Nulo]
$ns_ adjunto-agente $nodo_(8) $base1
$ns_ connect $udp1(4) $base0
$ns_ conectar $udp1(5) $base1
$ns_ en 2.0 "$cbr1 (4) inicio"
$ns_ en 4.0 "$cbr1(5) inicio" p> p>
$ns_ en 10.0 "$node_(4) setdest 300.0 1.0 30.0"
$ns_ en 20.0 "parada"
$ns_ en 20.0 " puts\ "NS SALIENDO...\" ; $ns_ halt"
proc stop {}{
global ns_ tracefd
$ns_ flux-trace
cerrar $tracefd
salir 0
}
pone " Iniciando simulación..."
$ns_ en 20.0 " put \"NS SALIENDO...
$ns_ run