1 / 12

Project 3: ns Simulation of Application-Level Routing

Project 3: ns Simulation of Application-Level Routing. Improve the application performance by user-level / application-level routing . Understand the use of network measurement and user decisions in network route selection. UDP Background Traffic at 6.1 Mbps. 0. 10 Mbps, 10 ms. 3.

Télécharger la présentation

Project 3: ns Simulation of Application-Level Routing

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Project 3: ns Simulation of Application-Level Routing • Improve the application performance by user-level / application-level routing. • Understand the use of network measurement and user decisions in network route selection.

  2. UDP Background Traffic at 6.1 Mbps 0 10 Mbps, 10 ms 3 10 Mbps, 10 ms 5 User sendsUDP Traffic at 6 Mbps 1 10 Mbps, 10 ms 4 10 Mbps, 10 ms 2 UDP Background Traffic at 7.3 Mbps Scenario

  3. Project Description • 5 tasks: • Task0: Understand the C++ and OTcl Integration issues (0.5%) • Task1: Writing a OTcl script (2%) • Task2: Specification of measurement and selection algorithm (2%) • Task3: Write the C++ modules (6.5%) • Task4: Modify the OTcl script of task1 and test (4%) • Task5 (optional): Make algorithm adaptive to bandwidth and RTT (1%)

  4. ns Setup • Follow the instructions:http://www-networking.eecs.berkeley.edu/~altmann/lectures/ee122/copy-ns_v03.htm • The process: • Download ns source code: ns.tar • Install in ~/proj3 directory in your home directory • Make changes to the Makefile (as described) or take Ye’s Makefile from the ee122 project Q&A web page • Compile ns • Make sure that you are using your ns version from now on

  5. Simulation System tcl script (input) #Create a simulator object set ns [new Simulator] #Define different colors for data flows $ns color 1 Bluens Simulator Basics $ns color 2 Red #Open the nam trace filens Simulator Basics set nf [open project_b_task_1I.nam w] $ns namtrace-all $nf #open the measurement output files set f0 [open project_b_task_1I_out0.tr w] set f1 [open project_b_task_1I_out1.tr w] set f2 [open project_b_task_1I_out2.tr w] NAM (output) ns classes ns Gnuplot (output)

  6. 0 10 Mbps, 10 ms 3 10 Mbps, 10 ms 5 1 10 Mbps, 10 ms 4 10 Mbps, 10 ms 2 OTcl Script – Source Routing • Source Routing • #enables source routing • $ns src_rting 1 • #set routes • set temp [$n1 set src_agent_] • $temp install_connection 2 1 5 1 3 5 • #connect transport agent with src routing agent • $udp0 target [$n1 set src_agent_] • #start simulation • $ns at 6.0 "$udp1 set fid_ 2"

  7. ns Architecture • Control operations in Otcl • Class hierarchy (extract): Agent/TCP/Reno

  8. ns Simulator Basics • ns is written in C++ with an OTcl interpreter as front end • ns supports a class hierarchy in C++ (called compiled hierarchy) and a similar class hierarchy within OTcl (called interpreted hierarchy). • There is a one-to-one correspondence between classes in both hierarchies. But, there are some hierarchies in C++ and OTcl that are not mirrored. • When a user instantiates a class in a OTcl script, an object of the corresponding compiled class is also instantiated through methods in the class TclObject.

  9. Build New Agents / Applications: OTcl • set udp1 [new Agent/UDP/UDPar] • define new subclass of the TclClass • $ns attach-agent $n5 $udp1 • set ar1 [new Application/AppRouter] • define new subclass of the TclClass • $ar1 set packetSize_ 500 • Set default values by using bind() method • $ar1 attach-agent $udp1 • define the sequence of actions that implement the command "attach-agent" in AppRouter::command() method

  10. Build New Agents / Applications: C++ • Implementation of theApplication/AppRouterclass • Name example:ar-app.cc and ar-app.h • Implementation of theAgent/UdpAgent/UdpARAgentclass • Name example:udp-ar.cc and udp-ar.h • Put them in ns-2.1b9a/mycode • Based on mm-app.cc, mm-app.h, udp-mm.ccand udp-mm.h • http://nile.wpi.edu/NS/see "Add New Application and Agent“

  11. ns Files Modification • Depending on the implementation, some existing files have to be modified • Make the new protocol (of AppRouter) and its name known • common/packet.h • tcl/lib/ns-packet.tcl • Set the default value of variables • tcl/lib/ns-default.tcl • If necessary, add method definitions: • apps/app.h • common/agent.h

  12. Literature and Help for ns • NS by Example • http://nile.wpi.edu/NS/ • "Add New Application and Agent“ • NS Manual • http://www.isi.edu/nsnam/ns/ • Chapter 3 of the Manual

More Related