610 likes | 1.09k Views
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
E N D
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 • Complete the remaining parts
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
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
Extensible Software Core • Written in C++ with optional Python interface • extensively documented API (doxygen): • http://www.nsnam.org/doxygen-release/index.html
Node Basics • An ns-3 Node is a husk of a computer to which applications, stacks, and NICs are added
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
ns-3 Has A New Tracing Model • ns-3 solution: decouple trace sources from trace sinks • Benefit: Customizable trace sinks
Downloading ns-3 • http://www.nsnam.org/ • Latest release: ns-3.16 (2012/12/21)
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
Building ns-3 (1/5) • # ./build.py
Building ns-3 (2/5) • # ./waf -d optimized configure • ns-3 uses the waf build system
Building ns-3 (3/5) • # ./waf -d debug configure
Building ns-3 (4/5) • # ./test.py -c core
Running a Script • ./waf --run hello-simulator
Building Your Script • # cp examples/tutorial/first.cc scratch/myfirst.cc • ./waf
Building Your Script • # ./waf --run scratch/myfirst
A First ns-3 Script /ns-allinone-3.10/ns-3.10/examples/tutorial first.cc third.cc
Boilerplate • The first line in the file is an emacs mode line. • The ns-3 simulator is licensed using the GNU General Public License.
Module Includes • The code proper starts with a number of include statements. • ../../build/debug/ns3
Ns3 Namespace • The next line in the first.cc script is a namespace declaration. • Logging
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.
Topology Helpers • Create the ns-3 Node objects that will represent the computers in the simulation. • We are constructing a point to point link
Topology Helpers • We will need to have a list of all of the NetDevice objects that are created
Internet Stack Helper • Protocol stacks installed on our nodes • TCP, UDP, IP, etc. • Ipv4AddressHelper • make the association between an IP address and a device
Applications • Two specializations of the core ns-3 class Application called • UdpEchoServerApplication • UdpEchoClientApplication • UdpEchoServerHelper
Applications • UdpEchoClientHelper
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
Building Your Script • Drop your script into the scratch directory • Now build your first example script using waf
Building Your Script • You can now run the example
Building a Wireless Network Topology • Add the Wifi and the mobility modules • The network topology illustration follows:
Building a Wireless Network Topology • For enabling or disabling logging components and for changing the number of devices created
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
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
Building a Wireless Network Topology • The SSID of the infrastructure network • Create the wifi devices of these stations
Building a Wireless Network Topology • Configure the AP (access point) node • Shares the same set of PHY-level Attributes (and channel) as the stations
Building a Wireless Network Topology • Set some Attributes controlling the “position allocator” functionality The number of objects layed out on a line.
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)
Building a Wireless Network Topology • Want the access point to remain in a fixed position during the simulation • Protocol stacks
Building a Wireless Network Topology • assign IP addresses to the device interfaces
Building a Wireless Network Topology • Enable internetwork routing • Create just enough tracing to cover all three networks
Building a Wireless Network Topology • Run the simulation, clean up and then exit the program • Output
An Example of MANET Reference /ns-allinone-3.10/ns-3.10/examples/wireless/wifi-hidden-terminal.cc