ns-3 training

58
ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Upload: temple

Post on 06-Jan-2016

103 views

Category:

Documents


4 download

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

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 educators4

Extensible Software Core Written in C++ with optional Python interface

extensively documented API (doxygen):

http://www.nsnam.org/doxygen-release/index.html5

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 sinks8

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)

11

# ./build.py

Building ns-3 (2/5)

12

# ./waf -d optimized configure ns-3 uses the waf build system

Building ns-3 (3/5)

13

# ./waf -d debug configure

Building ns-3 (4/5)

14

# ./test.py -c core

Building ns-3 (5/5)

15

Running a Script

16

./waf --run hello-simulator

Building Your Script

17

# cp examples/tutorial/first.cc scratch/myfirst.cc ./waf

Building Your Script

18

# ./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.

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,

23

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.

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. http://cutebugs.net/files/wns2-yans.pdf

34

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

38

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)

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