0% found this document useful (0 votes)
430 views58 pages

ns-3 Training for Network Researchers

This document provides an overview of topics to be covered in an ns-3 training, including: - Getting started with ns-3, including what ns-3 is, installation, and key documentation - Examples of basic ns-3 scripts - Building a simple example for a project, including completing remaining parts - Building a wireless network topology in ns-3, configuring devices, channels, mobility models, and running a simulation

Uploaded by

Usha Shree
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
430 views58 pages

ns-3 Training for Network Researchers

This document provides an overview of topics to be covered in an ns-3 training, including: - Getting started with ns-3, including what ns-3 is, installation, and key documentation - Examples of basic ns-3 scripts - Building a simple example for a project, including completing remaining parts - Building a wireless network topology in ns-3, configuring devices, channels, mobility models, and running a simulation

Uploaded by

Usha Shree
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 58

ns-3 Training

Computer and Communication Network Lab


Department of Electrical Engineering
National Sun Yat-Sen University

5/13/2013
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
2
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
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. 23
8.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


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/wifi-
hidden-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
MaxRange

Node moving speed


ns3::RandomWaypointMobilityModel
Speed
Pause

Node data rate


ns3::ConstantRateWifiManager 55
Need to do (2/3)
RTS retry limit
ns3::UanMacRc
RetryRate

Buffer size
ns3::TcpSocket
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

You might also like