WordPress Websites for Engineers: Elevate Your Brand
Network simulator 2
1. Network simulator 2 T S PRADEEP KUMAR url : http://www.pradeepkumar.org Email: tspembedded@gmail.com Social : http://www.facebook.com/tspradeep
2. Overview Installation of NS2 Introduction to OTCL/C++ Recompiling NS2 Modification Adding a new module
3. Linux for Ns2 Linux Use of Linux is recommended Fedora (10, 12) If DVD Version- no need of additional package installation Install all the packages (if default installation selected, then additional packages have to be installed) Ubuntu (9.04, 9.10, 10.04, 10.10) Additional packages to be installed, there may be GCC Issues, xgraph and NAM issues Red Hat Enterprise Linux 5 (RHEL5) Cent OS is the alternative for RHEL Basic commands (ls, chmod, tar, rpm, make, gedit, vi, pwd, passwd, echo, cd, etc) Directory structure and shell prompt Path variables setting, Installation of packages and dependencies
4. Installation of ns2 Download from http://isi.edu/nsnam/ns/ns-build.html#allinone Copy the file under /home/pradeep(if your username is “abcdef” then home folder will be /home/abcdef) Extract it using “tar zxvf ns-allinone-2.34.tar.gz” “cd ns-allinone-2.34” “./install “ (if any errors, please correct it) Setting of paths in “.bash_profile”or “.bashrc”
7. OTCL Verses C++ OTCL Interpreted Hierarchy Faster to interpret, slow to run Preferable for beginners C++ Used when dealing with a packet, agent or a protocol Compiled Hierarchy Slow to compile, faster to execute The interface between OTCL and C++ is TclCL (available as a folder in ~ns-allinone-2.34/tclcl-xxx)
8. TclCL TCLCL Consists of Six main classes Tcl(Methods to access the interpreted hierarchy) InstVar(binds member variable in both hierarchies together TclObject (base class of all simulation objects) TclClass(maps class of IH to class of CH) TclCommand(global access to CH from IH) EmbeddedTcl (translates OTCL Script to C++ Code)
9. TclCL Each class have various member functions that are used to get compiled As a case study, lets start how to create a simple agent.
10. Simple Agent class TSPAgent : public Agent { public: TSPAgent(); protected: int command(intargc, const char*const* argv); private: int tsp_var1; double tsp_var2; void TSPPrivFunc(void); };
14. Simple Agent to Test #name it as .tcl file # Create TSPAgent set myagent [new Agent/TSPAgentOtcl] # Set configurable parameters of TSPAgent $myagent set tsp_var1_otcl 2 $myagent set tsp_var2_otcl 3.14 # Give a command to TSPAgent $myagent call-tsp-priv-fun
15. Case study – 2 – Multimedia over udp to build a multimedia application that runs over a UDP connection, five rate media scaling by changing encoding and transmission policy pairs associated with scale parameter values.
16. Case study – 2 – Multimedia over udp Based on 5 rate 0 0.3mb 1 0.6mb 2 0.9mb 3 1.2mb 4 1.5mb Packetsize 1000 Random false
17. Case study – 2 – Multimedia over udp When connection established, Sender/receiver agree on 5 different sets of encoding and transmission policy pairs. Sender sends with scale 0 but changes the transmission rates according to the value that the receiver notifies. The receiver is responsible for monitoring the network congestion and determine the scale factor. If congestion, then the receiver reduces the scale factor.
18. Where to modify ~ns-2.34 is the folder where all the cc modules are located