Red de conocimiento informático - Material del sitio web - Cómo emular tus propios protocolos usando NS2

Cómo emular tus propios protocolos usando NS2

Básicamente, simplemente escribe un script .tcl.

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

# Establecer objeto de terreno

establecer topo [nueva topografía]

$topo load_ flatgrid $val(x) $val(y)

# 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>

$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