ns-3 solution
Download
Report
Transcript ns-3 solution
ns-3 Training
Computer and Communication Network Lab
Department of Electrical Engineering
National Sun Yat-Sen University
5/19/2014
Topics
Getting Started ns-3
A First ns-3 Script
What is ns-3?
Installation
Two tutorial examples
A simple example for this project
Complete the remaining parts
2
Getting Started ns-3
•
Please read the following documents
•
ns-3 overview
•
•
•
ns-3 Tutorial
•
•
http://www.nsnam.org/docs/ns-3-overview.ppt
http://www.nsnam.org/docs/ns-3-overview.pdf
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
4
Extensible Software Core
Written in C++ with optional Python interface
extensively documented API (doxygen):
http://www.nsnam.org/doxygen-release/index.html
5
Node Basics
An ns-3 Node is a husk of a computer to which
applications, stacks, and NICs are added
6
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
7
ns-3 Has A New Tracing Model
ns-3 solution: decouple trace sources from trace
sinks
Benefit: Customizable trace sinks
8
Downloading ns-3
http://www.nsnam.org/
Latest release: ns-3.16 (2012/12/21)
9
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
10
Building ns-3 (1/5)
# ./build.py
11
Building ns-3 (2/5)
# ./waf -d optimized configure
ns-3 uses the waf build system
12
Building ns-3 (3/5)
# ./waf -d debug configure
13
Building ns-3 (4/5)
# ./test.py -c core
14
Building ns-3 (5/5)
15
Running a Script
./waf --run hello-simulator
16
Building Your Script
# cp examples/tutorial/first.cc scratch/myfirst.cc
./waf
17
Building Your Script
# ./waf --run scratch/myfirst
18
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.
20
Module Includes
The code proper starts with a number of include
statements.
../../build/debug/ns3
21
Ns3 Namespace
The next line in the first.cc script is a namespace
declaration.
Logging
22
Main Functions
The next lines of the script you will find are,
ns3 提供的 log 訊息分成了以下幾個等級:
1.NS_LOG_ERROR — Log error messages;
2.NS_LOG_WARN — Log warning messages;
3.NS_LOG_DEBUG — Log relatively rare, ad-hoc debugging messages;
4.NS_LOG_INFO — Log informational messages about program progress;
5.NS_LOG_FUNCTION — Log a message describing each function called;
6.NS_LOG_LOGIC – Log messages describing logical flow within a function;
7.NS_LOG_ALL — Log everything.
8.NS_LOG_UNCOND – Log the associated message unconditionally.
23
Topology Helpers
Create the ns-3 Node objects that will represent
the computers in the simulation.
We are constructing a point to point link
24
Topology Helpers
We will need to have a list of all of the NetDevice
objects that are created
25
Internet Stack Helper
Protocol stacks installed on our nodes
TCP, UDP, IP, etc.
Ipv4AddressHelper
make the association between an IP address and a device
26
Applications
Two specializations of the core ns-3 class
Application called
UdpEchoServerApplication
UdpEchoClientApplication
UdpEchoServerHelper
27
Applications
UdpEchoClientHelper
28
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
29
Building Your Script
Drop your script into the scratch directory
Now build your first example script using waf
30
Building Your Script
You can now run the example
31
Building a Wireless Network Topology
Add the Wifi and the mobility modules
The network topology illustration follows:
32
Building a Wireless Network Topology
For enabling or disabling logging components
and for changing the number of devices created
33
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.
34
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
35
Building a Wireless Network Topology
The SSID of the infrastructure network
Create the wifi devices of these stations
36
Building a Wireless Network Topology
Configure the AP (access point) node
Shares the same set of PHY-level Attributes
(and channel) as the stations
37
Building a Wireless Network Topology
Set some Attributes controlling the “position
allocator” functionality
The number of objects layed
out on a line.
38
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)
39
Building a Wireless Network Topology
Want the access point to remain in a fixed
position during the simulation
Protocol stacks
40
Building a Wireless Network Topology
assign IP addresses to the device interfaces
41
Building a Wireless Network Topology
Enable internetwork routing
Create just enough tracing to cover all three
networks
42
Building a Wireless Network Topology
Run the simulation, clean up and then exit the
program
Output
43
Read the pcap files
44
Plot figures
45
An Example of MANET
•
Reference
•
/ns-allinone-3.10/ns-3.10/examples/wireless/wifihidden-terminal.cc
Codes (1/7)
47
Codes (2/7)
48
Codes (3/7)
49
Codes (4/7)
50
Codes (5/7)
51
Codes (6/7)
52
Codes (7/7)
53
Result
54
Need to do…… (1/3)
Transmission range of a node
ns3::RangePropagationLossModel
Node moving speed
ns3::RandomWaypointMobilityModel
MaxRange
Speed
Pause
Node data rate
ns3::ConstantRateWifiManager
55
Need to do…… (2/3)
RTS retry limit
ns3::UanMacRc
Buffer size
ns3::TcpSocket
RetryRate
SndBufSize
AODV hello periods
ns3::aodv::RoutingProtocol
HelloInterval
56
Need to do…… (3/3)
Uniform distribution in a square with 500 meters
ns3::RandomRectanglePositionAllocator
ns3::UniformVariable
57
Q&A
58