16

Ns2 introduction 2

Embed Size (px)

DESCRIPTION

Research education for networks

Citation preview

Page 1: Ns2 introduction 2
Page 2: Ns2 introduction 2

Outlines

Wireless TCL scriptHow to build wireless scenarios Mobility and traffic (setdest & cbrgen.tcl)DSR trace fileUsing AWK for calculating

Routing overhead PDR( Packet Delivery Ratio)

Page 3: Ns2 introduction 2

Wireless TCL Script (1/3)Mobile node parameters

Channel type    (Channel/WirelessChannel) Propagation model    (Propagation/TwoRayGround) Interface type    (Phy/WirelessPhy)MAC layer protocol    (Mac/802_11)Routing protocol    (DSR)Interface Queue type    (CMUPriQueue - for DSR)Interface Queue Length    (50)Antenna type    (Antenna/OmniAntenna)LL type    (LL)

Read chapter 16 in ns-documentationUse wireless.tcl example in tcl\ex folder

Page 4: Ns2 introduction 2

Wireless TCL Script (2/3)# unity gain, omni-directional antennas# set up the antennas to be centered in the

node and 1.5 meters above itAntenna/OmniAntenna set X_ 0Antenna/OmniAntenna set Y_ 0Antenna/OmniAntenna set Z_ 1.5Antenna/OmniAntenna set Gt_ 1.0Antenna/OmniAntenna set Gr_ 1.0

Page 5: Ns2 introduction 2

Wireless TCL Script(3/3)How to reduce the trace output file sizeset AgentTrace              ONset RouterTrace             ONset MacTrace                  ON

Generating data traffic and mobility scenarios

set val(cp) "../mobility/scene/cbr-3-test" set val(sc) "../mobility/scene/scen-3-test"

Page 6: Ns2 introduction 2

Wireless Scenario (Mobility) Provide initial (X,Y, for now Z=0) co-ordinates for

mobile nodes$node_(0) set X_ 5.0$node_(0) set Y_ 2.0$node_(0) set Z_ 0.0 $node_(1) set X_ 390.0$node_(1) set Y_ 385.0$node_(1) set Z_ 0.0  Now produce some simple node movements# Node_(1) starts to move towards node_(0)$ns_ at 50.0 "$node_(1) setdest 25.0 20.0 0.0"$ns_ at 10.0 "$node_(0) setdest 20.0 18.0 0.0" # Node_(1) then starts to move away from node_(0)$ns_ at 100.0 "$node_(1) setdest 490.0 480.0 0.0"

Page 7: Ns2 introduction 2

Wireless scenario ( Traffic) # Setup traffic flow between nodes# TCP connections between node_(0) and

node_(1) set tcp [new Agent/TCP]$tcp set class_ 2set sink [new Agent/TCPSink]$ns_ attach-agent $node_(0) $tcp$ns_ attach-agent $node_(1) $sink$ns_ connect $tcp $sinkset ftp [new Application/FTP]$ftp attach-agent $tcp$ns_ at 10.0 "$ftp start"

Page 8: Ns2 introduction 2

SetdetA script has been provided which generates

these movements automatically in a separate file

To generate this, use the setdest script present in ns/indep-utils/cmu-scen-gen/ directory.

Examples:setdest -v 1 -n 20 -p 2.0 -M 10.0 -t 200 -x 500 -y 500 > scen-

20_v1.tcl setdest -v 2 -n 20 -s 1 -m 1 -M 10.0 -t 200 -P 1 -p 2.0 -x 500 -y 500

> scen-20_v2.tcl

Page 9: Ns2 introduction 2

Cbrgen.tclGenerates traffic automatically in a

separate filescript present in ns/indep-utils/cmu-

scen-gen/ directoryns cbrgen.tcl [-type cbr|tcp] [-nn nodes] [-

seed seed] [-mc connections][-rate rate] >output.tcl

Example: ns cbrgen.tcl –type cbr –nn 50 –seed 1 –mc

10 –rate 4 > cbr-50-10-4

Page 10: Ns2 introduction 2

A Typical DSR trace format (1/3)

s 606.210364161 _39_ RTR  --- 1306 DSR 44 [13a a 27 800] ------- [39:255 8:255 255 8] 2 [0 0] [0 0 0 0->0] [1 1 8 39->10]

s: means send606.210364161: time stamp_39_:  node idRTR: means router message1306: uid of this packetDSR: DSR agent44: size in the common header hdr_cmn()

[13a a 27 800] MAC detail:  13a: means the expected transmission time ( note that packet size is large, 44 bytes, 314second?)                               a: means the receiving node: 10                              27: means the sending node is 39                              800:  IP header: 0x0800, (ETHERTYPE_ARP is 0x0806)

Page 11: Ns2 introduction 2

DSR Trace Format (2/3)

[39:255 8:255 255 8] IP detail: src address: IP 39 means 0.0.0.39

                         port 255                         dst address: IP 8 means 0.0.0.8                         port 255                         TTL: 255                          Next-hop: 8

TTL (time to live ) you can use it to know the number of hops

Page 12: Ns2 introduction 2

DSR Trace Format (3/3)2 [0 0] [0 0 0 0->0] [1 1 8 39->10] DSR

detail:2:  num_addrs()[0 0] route-request option, this is not a route

request, the second 0 is labeled for sequence number

[0 0 0 0->0]  route-reply option: [ " route-reply?" "Rreq seqno" "reply length" "dst of src  route", "src of the src route"]

[1 1 8 39->10], 1: shows this is a route error                           1: number of route errors                          8: tp notify node 8.                           39->10: link 39-10 is broken 

Page 13: Ns2 introduction 2

Calculating Routing Overhead & PDRRouting overhead =

sum of routing packets / sum of data packetsPDR = Packet Delivery Ratio PDR =

sum of packets sent/ sum of successfully received packets

How to extract the number of Routing packets

$cat out.tr |grep "^s.*MAC.*DSR" | wc –lData packets

$cat out.tr |grep "^s.*MAC.*cbr" | wc –l

Page 14: Ns2 introduction 2

Routing Overhead (AWK code)BEGIN {dsrpktno = 0; dsrbyte = 0;

cbrpktno = 0; cbrbyte = 0; }{ $1~/s/ && /DSR/ && /MAC/  { dsrpktno ++

; dsrbyte+=$8 ;}$1~/s/ && /cbr/ && /MAC/ { cbrpktno ++ ; cbrbyte+=$8; }

} END { print ( dsrpktno/cbrpktno, dsrbyte /cbrbyte) }

Page 15: Ns2 introduction 2

PDR (AWK code)BEGIN {Scbr=0; Rcbr=0; }{ $1~/s/ && /cbr/ && /AGT/  { Scbr ++ ;}

$1~/r/ && /cbr/ && /AGT/ { Rcbr++ ;}}

 END { print ( “PDR=“,Scbr/Rcbr) }

Page 16: Ns2 introduction 2

References http://www.winlab.rutgers.edu/%7Ezhibinwu/html/

dsr_trace_anlysis.html http://www.winlab.rutgers.edu/~zhibinwu/html/

network_simulator_2.html http://www.isi.edu/nsnam/ns/ns-documentation.html