Title: ns-3%20Training
1ns-3 Training
- Computer and Communication Network Lab
- Department of Electrical Engineering
- National Sun Yat-Sen University
- 5/13/2013
2Topics
- 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
3Getting 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
4What 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
5Extensible Software Core
- Written in C with optional Python interface
- extensively documented API (doxygen)
- http//www.nsnam.org/doxygen-release/index.html
6Node Basics
- An ns-3 Node is a husk of a computer to which
applications, stacks, and NICs are added
7Tracing 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
8ns-3 Has A New Tracing Model
- ns-3 solution decouple trace sources from trace
sinks - Benefit Customizable trace sinks
9Downloading ns-3
- http//www.nsnam.org/
- Latest release ns-3.16 (2012/12/21)
10Problems 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
11Building ns-3 (1/5)
12Building ns-3 (2/5)
- ./waf -d optimized configure
- ns-3 uses the waf build system
13Building ns-3 (3/5)
14Building ns-3 (4/5)
15Building ns-3 (5/5)
16Running a Script
- ./waf --run hello-simulator
17Building Your Script
- cp examples/tutorial/first.cc
scratch/myfirst.cc - ./waf
18Building Your Script
- ./waf --run scratch/myfirst
19A First ns-3 Script
- /ns-allinone-3.10/ns-3.10/examples/tutorial
- first.cc
- third.cc
20Boilerplate
- The first line in the file is an emacs mode line.
-
- The ns-3 simulator is licensed using the GNU
General Public License. -
21Module Includes
- The code proper starts with a number of include
statements. -
- ../../build/debug/ns3
22Ns3 Namespace
- The next line in the first.cc script is a
namespace declaration. -
- Logging
-
23Main 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.
24Topology Helpers
- Create the ns-3 Node objects that will represent
the computers in the simulation. -
- We are constructing a point to point link
-
25Topology Helpers
- We will need to have a list of all of the
NetDevice objects that are created -
26Internet Stack Helper
- Protocol stacks installed on our nodes
-
- TCP, UDP, IP, etc.
- Ipv4AddressHelper
-
-
- make the association between an IP address and a
device
27Applications
- Two specializations of the core ns-3 class
Application called - UdpEchoServerApplication
- UdpEchoClientApplication
- UdpEchoServerHelper
-
28Applications
29Simulator
- 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 -
30Building Your Script
- Drop your script into the scratch directory
-
- Now build your first example script using waf
-
-
31Building Your Script
- You can now run the example
-
-
32Building a Wireless Network Topology
- Add the Wifi and the mobility modules
-
- The network topology illustration follows
33Building a Wireless Network Topology
- For enabling or disabling logging components and
for changing the number of devices created -
34Building 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
35Building 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
36Building a Wireless Network Topology
- The SSID of the infrastructure network
-
- Create the wifi devices of these stations
-
37Building a Wireless Network Topology
- Configure the AP (access point) node
-
- Shares the same set of PHY-level Attributes (and
channel) as the stations -
38Building a Wireless Network Topology
- Set some Attributes controlling the position
allocator functionality -
The number of objects layed out on a line.
39Building 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) -
40Building a Wireless Network Topology
- Want the access point to remain in a fixed
position during the simulation -
- Protocol stacks
-
41Building a Wireless Network Topology
- assign IP addresses to the device interfaces
-
42Building a Wireless Network Topology
- Enable internetwork routing
-
-
- Create just enough tracing to cover all three
networks -
-
43Building a Wireless Network Topology
- Run the simulation, clean up and then exit the
program -
- Output
-
44Read the pcap files
45Plot figures
46An Example of MANET
- Reference
- /ns-allinone-3.10/ns-3.10/examples/wireless/wifi-h
idden-terminal.cc
47Codes (1/7)
48Codes (2/7)
49Codes (3/7)
50Codes (4/7)
51Codes (5/7)
52Codes (6/7)
53Codes (7/7)
54Result
55Need to do (1/3)
- Transmission range of a node
- ns3RangePropagationLossModel
- MaxRange
- Node moving speed
- ns3RandomWaypointMobilityModel
- Speed
- Pause
- Node data rate
- ns3ConstantRateWifiManager
56Need to do (2/3)
- RTS retry limit
- ns3UanMacRc
- RetryRate
- Buffer size
- ns3TcpSocket
- SndBufSize
- AODV hello periods
- ns3aodvRoutingProtocol
- HelloInterval
57Need to do (3/3)
- Uniform distribution in a square with 500 meters
- ns3RandomRectanglePositionAllocator
-
- ns3UniformVariable
58Q A