• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Network simulator 2
 

Network simulator 2

on

  • 5,491 views

 

Statistics

Views

Total Views
5,491
Views on SlideShare
4,966
Embed Views
525

Actions

Likes
1
Downloads
191
Comments
1

7 Embeds 525

http://www.pradeepkumar.org 233
http://pradeepkumar.org 181
http://www.tcbin.com 99
http://www.linkedin.com 8
https://nr-000.appspot.com 2
http://translate.googleusercontent.com 1
http://webcache.googleusercontent.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • sir it is very useful
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Network simulator 2 Network simulator 2 Presentation Transcript

    • Network simulator 2
      T S PRADEEP KUMAR
      url : http://www.pradeepkumar.org
      Email: tspembedded@gmail.com
      Social : http://www.facebook.com/tspradeep
    • Overview
      Installation of NS2
      Introduction to OTCL/C++
      Recompiling NS2
      Modification
      Adding a new module
    • 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
    • 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”
    • Basic architecture of ns2
    • Directory structure of ns2
    • 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)
    • 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)
    • 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.
    • 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);
      };
    • Simple Agent
      static class TSPAgentClass : public TclClass {
      public:
      TSPAgentClass() : TclClass("Agent/TSPAgentOtcl") {}
      TclObject* create(int, const char*const*) {
      return(new TSPAgent());
      }
      } class_tsp_agent;
      TSPAgent::TSPAgent() : Agent(PT_UDP) {
      bind("tsp_var1_otcl", &tsp_var1);
      bind("tsp_var2_otcl", &tsp_var2);
      }
    • Simple Agent
      intTSPAgent::command(intargc, const char*const* argv) {
      if(argc == 2) {
      if(strcmp(argv[1], "call-tsp-priv-func") == 0) {
      TSPPrivFunc();
      return(TCL_OK);
      }
      }
      return(Agent::command(argc, argv));
      }
    • Simple Agent
      void TSPAgent::TSPPrivFunc(void) {
      Tcl& tcl = Tcl::instance();
      tcl.eval("puts "Message From TSPPrivFunc"");
      tcl.evalf("puts " tsp_var1 = %d"", tsp_var1);
      tcl.evalf("puts " tsp_var2 = %f"", tsp_var2);
      }
    • 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
    • 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.
    • 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
    • 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.
    • Where to modify
      ~ns-2.34 is the folder where all the cc modules are located
    • Where to modify
    • Thank you!!!