Download presentation
Presentation is loading. Please wait.
Published byEzra Powell Modified over 9 years ago
1
JIA-HUI HUANG INSTITUTE OF COMPUTER SCIENCE AND INFORMATION ENGINEERING NATIONAL TAIPEI UNIVERSITY OF TECHNOLOGY 2007.10.15 Network Simulator – NS-2 1
2
Reference http://140.116.72.80/~smallko/ns2/ns2.htm http://www.isi.edu/nsnam/ns/ Ns document 2
3
Outline Introduction Installation TCL script Related tools New protocol for NS Examples Conclusion 3
4
Introduction Methods for network research Analytical General expression or close form Mathematical model Emulation Real code Duplicates the functions of one system with a different system Simulation Abstract model Behavior of system 4
5
Introduction (cont.) Self-Developed Without strong persuasion Simulation frameworks Commercial OPNET QualNet OMNEST (commercial version of OMNetT++) Free NS-2 (network simulator version 2) OMNetT++ 5
6
Introduction (cont.) Ns-2 is a discrete event simulator Scheduler Advance of time depends on the timing of events Object-oriented simulator C++ : fast to run, slower to change – protocol implementation Otcl : slower to run, fast to change – simulation configuration Components Ns – simulator itself Nam – network animator Visualize ns (or other) output 6
7
Introduction (cont.) Pre-processing Traffic and topology model Post-processing Trace analysis, often in awk, perl, or tcl Simulation procedure 7
8
Installation Platform Unix Windows (cygwin) Packages Tcl/tk Otcl tclcl Ns-2 Nam Xgraph C++ compiler Ns AllInOne package 8
9
Installation (cont.) Cygwin, AllInOne installation (windows) http://140.116.72.80/~smallko/ns2/setup_en.htm http://140.116.72.80/~smallko/ns2/setup_en.htm Installation problems http://www.isi.edu/nsnam/ns/ns-problems.html#general http://www.isi.edu/nsnam/ns/ns-problems.html#general Cygwin setup gcc Ns-2 setup Path setting Cygwin/home/user-name/.bashrc Testing (startxwin.bat) - ~/ns-allinone-x.x/ns-x.x/ns-tutorial/examples 9
10
TCL script TCL script for scenario setup Scenario script format Simulator object Trace file Finish procedure Network setup (node, link, agent, parameter…) Other procedure, if any Event scheduling (run simulation, stop simulation …) 10
11
TCL script (cont.) Example topology #Create a simulator object set ns [new Simulator] #Open the nam trace file set nf [open out.nam w] $ns namtrace-all $nf #Define a 'finish' procedure proc finish {} { global ns nf $ns flush-trace #Close the trace file close $nf #Execute nam on the trace file exec nam out.nam & exit 0 } 11
12
#Create two nodes set n0 [$ns node] set n1 [$ns node] #Create a duplex link between the nodes $ns duplex-link $n0 $n1 1Mb 10ms DropTail #Create a UDP agent and attach it to node n0 set udp0 [new Agent/UDP] $ns attach-agent $n0 $udp0 # Create a CBR traffic source and attach it to udp0 set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 500 $cbr0 set interval_ 0.005 $cbr0 attach-agent $udp0 #Create a Null agent (a traffic sink) and attach it to node n1 set null0 [new Agent/Null] $ns attach-agent $n1 $null0 #Connect the traffic source with the traffic sink $ns connect $udp0 $null0 #Schedule events for the CBR agent $ns at 0.5 "$cbr0 start" $ns at 4.5 "$cbr0 stop" #Call the finish procedure after 5 seconds of simulation time $ns at 5.0 "finish" #Run the simulation $ns run 12
13
Related tools nsBench Graphical User Interface For NS Language - java Features Nodes, simplex/duplex links and Lans Agents: TCP, UDP, TCP/Reno, … Application Traffic: FTP, Telnet, …. …. http://www.mnlab.cs.depaul.edu/projects/nsbench/ http://www.mnlab.cs.depaul.edu/projects/nsbench/ 13
14
Related tools (cont.) NSG Java based ns2 scenario generator For wireless ad-hoc scenario Features wireless node Connection between nodes Node movement http://wushoupong.googlepages.com/ns2scenariosgeneratorc hinese http://wushoupong.googlepages.com/ns2scenariosgeneratorc hinese 14
15
Related tools (cont.) Topology Generator Georgia Tech Internetwork Topology Models (GT-ITM) How closely model correlate with real network ? Transit-Stub model Transit domain Interconnect stub domains Example topology 15
16
New protocol for ns Packet type Structure declaration – packet header Name binding Bind packet header to TCL interface Usage Routing agent MANET routing protocol Agent object Tcl hook Important functions 16
17
Packet type Packet header #include #define HDR_PROTONAME_PKT(p) hdr_protoname_pkt::access(p) struct hdr_protoname_pkt { …. (define some fields of packet) static int offset_; inline static int& offset() { return offset_ ; } inline static hdr_protoname_pkt* access(const Packet* p) { return (hdr_protoname_pkt*)p->access(offset_); } 17
18
Packet type (cont.) Name binding int protoname_pkt::offset_; static class ProtonameHeaderClass : public PacketHeaderClass { public: ProtonameHeaderClass() PacketHeaderClass("PacketHeader/Protoname", sizeof(hdr_protoname_pkt)) { bind_offset(&hdr_protoname_pkt::offset_); } 18
19
Packet type (cont.) Usage Packet* p = allocpkt(); struct hdr_cmn* ch = HDR_CMN(p); struct hdr_ip* ih = HDR_IP(p); struct hdr_protoname_pkt* ph = HDR_PROTONAME_PKT(p); ph->…. ih->…. ch->… 19
20
Routing agent Agent object #include …. class NewProtocol : public Agent { protected : … public : NewProtocol(nsaddr_t); int command (int, const char*const*); void recv(Packet*, Handler*); …. } 20
21
Routing agent (cont.) Tcl hook Let NewProtocl to be instantiated from Tcl. static class ProtonameClass : public TclClass { public: ProtonameClass() : TclClass("Agent/Protoname") {} TclObject* create(int argc, const char*const* argv) { assert(argc == 5); return (new Protoname((nsaddr_t)Address::instance().str2addr(argv[4]))); } 21
22
Routing agent (cont.) Important functions Command() Operations that we went to make accessible from TCL maodv-join-group maodv-leave-group Example - maodv.cc, MAODV_SimScript.tcl, cbr-5-3-2 Recv () Invoked whenever the routing agent receives a packet 22
23
Needed changes Packet type declaration - \ns-x.xx\common\packet.h Tracing support - \ns-x.xx\cmu-trace.h Tcl library Tcl\lib\ns-packet.tcl Tcl\lib\ns-default.tcl Priority queue - \queue\priqueue.cc Make file 23
24
Example1 - TCP slow start Transport layer protocol UDP – user datagram protocol (connectionless, unreliable service) TCP – transmission control protocol (connect-oriented, reliable, with flow and congestion control service) Connection-oriented – three-way handshaking Reliable – acknowledgment, retransmission Flow control – sender won’t buffers by transmitting to much and too fast Congestion control – to limit the total amount of data entering the internet 24
25
Example1 - TCP slow start (cont.) Important variables for congestion control – slow start cwnd – congestion window ssthresh – defines threshold between two slow start phase and congestion control phase Operations – slow start When connection begins, increase rate exponentially fast until first loss event (slow start phase) Set ssthresh = cwnd/2 Set cwnd = 1 and perform slow start process For cwnd >= ssthresh, increase cwnd linearly (congestion avoidance) 25
26
Example1 - TCP slow start (cont.) TCP standards TCP Tahoe – slow start & congestion avoidance RFC 2581 TCP Vegas TCP Reno RFC 2581 TCP NewReno RFC 2582 FACK (forward acknowledgement) SACK (selective acknowledgement) RFC 2018 26
27
Example1 - TCP slow start (cont.) TCP experiment – congestion window TCP Tahoe Slow-start Congestion avoidance n0 n1 n2n3 Simulation topology Receiver Source2(UDP) Source1 (TCP) 27
28
Example2 – queuing system Queuing systems M/M/1 M/D/1 … Notation Arrival process/Service time/Servers M = exponential, D = Deterministic, …. 28
29
Queuing system – M/M/1 (cont.) Arrival & departure model Poisson arrival Exponential distribution single server Parameters Arrival rate λ Departure rate (service time) μ load (stability condition : ρ < 1) (# of packets in system) 29
30
Queuing system – M/M/1 (cont.) queue.tcl Arrival rate : 30 Departure rate : 33 E[Q] = 10 30
31
Tips 31 Ns document is not easy to understand Error message is not very useful Understand and Implementation Implementation issues Iterative design
32
Conclusion Basic concept of NS2 Two levels of simulation Exist modules for NS beginner 32
33
Internet domain structure Example of Internet domain structure 33
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.