1 / 58

ns-3 Training

ns-3 Training. Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 12/07/2015. Topics. Getting Started ns-3 What is ns-3? Installation A First ns-3 Script Two tutorial examples A simple example for this project

eileen
Download Presentation

ns-3 Training

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. ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 12/07/2015

  2. Topics • Getting Started ns-3 • What is ns-3? • Installation • A First ns-3 Script • Two tutorial examples • A simple example for this project • Complete the remaining parts

  3. Getting Started ns-3 Please read the following documents ns-3 overview http://www.nsnam.org/docs/ns-3-overview.ppt http://www.nsnam.org/docs/ns-3-overview.pdf ns-3 Tutorial http://www.nsnam.org/docs/release/3.13/tutorial/ns-3-tutorial.pdf ns-3 Manual http://www.nsnam.org/docs/release/3.13/manual/ns-3-manual.pdf

  4. What is ns-3? • ns-3 is a discrete-event network simulator for Internet systems • ns-3 allows researchers to study Internet protocols and large-scale systems in a controlled environment • ns-3 is a new simulator (not backwards-compatible with ns-2) • ns-3 is a free, open source software project organized around research community development and maintenance • the target user community is networking researchers and educators

  5. Extensible Software Core • Written in C++ with optional Python interface • extensively documented API (doxygen): • http://www.nsnam.org/doxygen-release/index.html

  6. Node Basics • An ns-3 Node is a husk of a computer to which applications, stacks, and NICs are added

  7. Tracing and Statistics • Tracing is a structured form of simulation output • Example (from ns-2): • Problem: Tracing needs vary widely • would like to change tracing output without editing the core • would like to support multiple outputs

  8. ns-3 Has A New Tracing Model • ns-3 solution: decouple trace sources from trace sinks • Benefit: Customizable trace sinks

  9. Downloading ns-3 • http://www.nsnam.org/ • Latest release: ns-3.16 (2012/12/21)

  10. Problems under Windows • Cygwin or MinGW • If you do use Cygwin or MinGW and use Logitech products • it can cause Cygwin or MinGW DLLs to die in mysterious way • Note that NSC is not supported on OSX or Cygwin. • Network Simulation Cradle

  11. Building ns-3 (1/5) • # ./build.py

  12. Building ns-3 (2/5) • # ./waf -d optimized configure • ns-3 uses the waf build system

  13. Building ns-3 (3/5) • # ./waf -d debug configure

  14. Building ns-3 (4/5) • # ./test.py -c core

  15. Building ns-3 (5/5)

  16. Running a Script • ./waf --run hello-simulator

  17. Building Your Script • # cp examples/tutorial/first.cc scratch/myfirst.cc • ./waf

  18. Building Your Script • # ./waf --run scratch/myfirst

  19. A First ns-3 Script /ns-allinone-3.10/ns-3.10/examples/tutorial first.cc third.cc

  20. Boilerplate • The first line in the file is an emacs mode line. • The ns-3 simulator is licensed using the GNU General Public License.

  21. Module Includes • The code proper starts with a number of include statements. • ../../build/debug/ns3

  22. Ns3 Namespace • The next line in the first.cc script is a namespace declaration. • Logging

  23. Main Functions • The next lines of the script you will find are, ns3 提供的 log 訊息分成了以下幾個等級: • NS_LOG_ERROR — Log error messages; • NS_LOG_WARN — Log warning messages; • NS_LOG_DEBUG — Log relatively rare, ad-hoc debugging messages; • NS_LOG_INFO — Log informational messages about program progress; • NS_LOG_FUNCTION — Log a message describing each function called; • NS_LOG_LOGIC – Log messages describing logical flow within a function; • NS_LOG_ALL — Log everything. • NS_LOG_UNCOND – Log the associated message unconditionally.

  24. Topology Helpers • Create the ns-3 Node objects that will represent the computers in the simulation. • We are constructing a point to point link

  25. Topology Helpers • We will need to have a list of all of the NetDevice objects that are created

  26. Internet Stack Helper • Protocol stacks installed on our nodes • TCP, UDP, IP, etc. • Ipv4AddressHelper • make the association between an IP address and a device

  27. Applications • Two specializations of the core ns-3 class Application called • UdpEchoServerApplication • UdpEchoClientApplication • UdpEchoServerHelper

  28. Applications • UdpEchoClientHelper

  29. Simulator • What we need to do at this point is to actually run the simulation. • scheduled events in the simulator at 1.0 seconds, 2.0 seconds and two events at 10.0 seconds

  30. Building Your Script • Drop your script into the scratch directory • Now build your first example script using waf

  31. Building Your Script • You can now run the example

  32. Building a Wireless Network Topology • Add the Wifi and the mobility modules • The network topology illustration follows:

  33. Building a Wireless Network Topology • For enabling or disabling logging components and for changing the number of devices created

  34. Building a Wireless Network Topology • Part of the Wifi network • Configure the PHY and channel helpers • Yet Another Network Simulator • M. Lacage and T. R. Henderson, “Yet Another Network Simulator,” WNS2 ns-2: The IP Network Simulator, Italy, 2006. • http://cutebugs.net/files/wns2-yans.pdf

  35. Building a Wireless Network Topology • Create a channel object and associate it to our PHY layer object manager • NqosWifiMacHelper object to set MAC parameters • rate control algorithm • AARF (Adaptive Auto-Rate Fallback ) algorithm

  36. Building a Wireless Network Topology • The SSID of the infrastructure network • Create the wifi devices of these stations

  37. Building a Wireless Network Topology • Configure the AP (access point) node • Shares the same set of PHY-level Attributes (and channel) as the stations

  38. Building a Wireless Network Topology • Set some Attributes controlling the “position allocator” functionality The number of objects layed out on a line.

  39. Building a Wireless Network Topology • Need to tell them how to move • RandomWalk2dMobilityModel • random direction • random speed • Rectangle (double _xMin, double _xMax, double _yMin, double _yMax)

  40. Building a Wireless Network Topology • Want the access point to remain in a fixed position during the simulation • Protocol stacks

  41. Building a Wireless Network Topology • assign IP addresses to the device interfaces

  42. Building a Wireless Network Topology • Enable internetwork routing • Create just enough tracing to cover all three networks

  43. Building a Wireless Network Topology • Run the simulation, clean up and then exit the program • Output

  44. Read the pcap files

  45. Plot figures

  46. An Example of MANET Reference /ns-allinone-3.10/ns-3.10/examples/wireless/wifi-hidden-terminal.cc

  47. Codes (1/7)

  48. Codes (2/7)

  49. Codes (3/7)

  50. Codes (4/7)

More Related