© 2014 Firstsoft Technologies (P) Limited. login
Hi 'Guest'
Home SiteMap Contact Us Disclaimer
enggedu
Quick Links
Easy Studies

Home Lab Exercise Network Lab Exercise Programs Study of network simulators like NS2, Glomosim, OPNET▼


Study of network simulators like NS2, Glomosim, OPNET

NS2 Simulation

                NS is an event driven network simulation developed at UC Berkeley that simulator variety of IP networks. It implements network protocols such that TCP and UDP at UC Berkeley that simulator variety of IP networks.  It implements network protocols such that TCP and UDP traffic source behavior as FTP, Telnet, Web, CBR and VBR router queue management mechanism such as Droptail, RED and CBQ, routing algorithms such as Dijikstra’s and more. NS also implements multicasting and same of the MAC layer protocols for LAN situations.

Simplified Users view of NS:

                In a simplified user’s view, NS is an Object Oriented Tcl (OTcl) script interpreter that has simulation event Scheduler and Network component object libraries, and n/w setup module libraries. To setup and run a simulation n/w, a user should write an OTcl script that initiates an event scheduler, sets up the n/w topology using the n/w objects and the plumbing functions in the library and tells traffic sources when to start and stop transmitting packets through the event scheduler. The term “plumbing” is used for an n/w setup, because setting up an n/w is plumbing possible data paths among network objects by setting the “neighbor” pointer of an object. But the plumbing OTcl module actually makes the job very easy.

                Another major component of NS beside network objects is the event scheduler. An event in NS is a packet with scheduled time and the pointer to an object that handles the event. Network components communicate with one another passing packets, however this does not consume actual simulation time. All the n/w components that need to spend some simulation time handling a packet use the even scheduler by issuing an event for the packet and waiting for the event to be fixed to itself before doing further switch with 20ks. Another use of an event scheduler is timer ,for ex, TCP needs a timer to keep track of a packet transmission time out for retransmission. The only difference is that timer measures a time value associated with a packet and does not simulate a delay.

A simply N/W topology and Simulation Scenario:

                This n/w consists of 4 nodes (n0, n1, n2, n3) as shown. The duplex links b/w n0 , n2 and n1 ,n2 have 2 mbps of bandwidth and 10ms of delay. The duplex link b/w n2 and n3 has 1.7 mbps of bandwidth and 20ms of delay. Each node uses a Drop tail queue of which of the maximum size is 10. A connection is established to a tcp “sink” agent attached to n3. A tcp “sink” agent generates and sends ACK packets. A “Udp” generates that is attached to n, is connected to a “null” agent attached to n3. The “cbr” is set to start at 0.1 sec and stop at 4.5 sec and “ftp” is sent to start at 1.0 sec and stop at 4.0 sec.

                #create a simulator object

                set ns [new simulator]

                #define different colors for data flows [FOR NAM]

                $ns color 1 blue

                $ns color 2 Red

                #open the NAM source file

                set nf [open out.nam  w]

                $ns namtrace-all $nf

                #define ‘Finish’ procedure.

                Proc finish {
                                global ns OF
                                $ ns flush-trace
                                close $ns   #(close the event scheduler object.)
                                exec nam out nam &   #(execute NAM file using this command.)
                                exit 0
                }

                #create four nodes

                set n0 [$ns  node]

                set n1 [$ns  node]

                set n3 [$ns  node]

                set n4 [$ns  node]

                #create links between the nodes

                $ns duplex-link $n0 & $n2 2mb 10ms Droptail

                $ns duplex-link $n1 & $n2 2mb 10ms Droptail

                $ns duplex-link $n2 & $n3 2mb 10ms Droptail

                #set queue – limit size of link (n2-n3) to 10

               $ns queue–limit $n2 $n3 10
               
               #Give node position (for NAM)

                $ns duplex – link –op $n2 orient right-down

                $ns duplex – link – op $n1 orient right-up

                $ns duplex – link – op $n2 $n3 orient right

                #Monitor the queue for link (n2-n3) (for NAM)

                $ns duplex-link-op $n2 $n3 queue-pos 0.5

                #Setup a TCP connection.

                set tcp [new Agent/TCP]

                $tcp set class 2

                $ns attach-agent $n0 $tcp

                set sink [ new Agent/TCP sink]

                $ ns attach-agent $n3 $sink

                $ ns connect  $tcp $sink

                #Setup a FTP over TCP connection

                set ftp [new Application / FTP]

                $ftp attach-agent $tcp

               #Setup a FTP connection for particular time period.

               $ns at <time> “$ftp start”    # (start the FTP traffic generation)

               $ns at <time> “$ftp stop”    # (stop the FTP traffic generation)
               

 
SLogix Student Projects

⇓Student Projects⇓
⇑Student Projects⇑
bottom