ns-3 training computer and communication network lab department of electrical engineering national...

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

Upload: imogene-lloyd

Post on 30-Dec-2015

221 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

ns-3 Training

Computer and Communication Network Lab

Department of Electrical Engineering

National Sun Yat-Sen University

5/13/2013

Page 2: 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

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

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

Page 4: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

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

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

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

extensively documented API (doxygen):

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

Page 6: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Node Basics An ns-3 Node is a husk of a computer to which

applications, stacks, and NICs are added

6

Page 7: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

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

Page 8: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

ns-3 Has A New Tracing Model ns-3 solution: decouple trace sources from

trace sinks

Benefit: Customizable trace sinks8

Page 9: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Downloading ns-3 http://www.nsnam.org/

Latest release: ns-3.16 (2012/12/21)

9

Page 10: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

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

Page 11: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Building ns-3 (1/5)

11

# ./build.py

Page 12: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Building ns-3 (2/5)

12

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

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

Building ns-3 (3/5)

13

# ./waf -d debug configure

Page 14: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Building ns-3 (4/5)

14

# ./test.py -c core

Page 15: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Building ns-3 (5/5)

15

Page 16: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Running a Script

16

./waf --run hello-simulator

Page 17: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Building Your Script

17

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

Page 18: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Building Your Script

18

# ./waf --run scratch/myfirst

Page 19: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

A First ns-3 Script

• /ns-allinone-3.10/ns-3.10/examples/tutorial• first.cc• third.cc

Page 20: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

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

Page 21: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Module Includes The code proper starts with a number of include

statements.

../../build/debug/ns3

21

Page 22: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Ns3 Namespace The next line in the first.cc script is a namespace

declaration.

Logging

22

Page 23: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

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.

Page 24: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

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

Page 25: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Topology Helpers We will need to have a list of all of the NetDevice

objects that are created

25

Page 26: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

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

Page 27: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Applications Two specializations of the core ns-3 class

Application called UdpEchoServerApplication UdpEchoClientApplication

UdpEchoServerHelper

27

Page 28: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Applications UdpEchoClientHelper

28

Page 29: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

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

Page 30: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Building Your Script Drop your script into the scratch directory

Now build your first example script using waf

30

Page 31: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Building Your Script You can now run the example

31

Page 32: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Building a Wireless Network Topology Add the Wifi and the mobility modules

The network topology illustration follows:

32

Page 33: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Building a Wireless Network Topology For enabling or disabling logging components

and for changing the number of devices created

33

Page 34: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

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

Page 35: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

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

Page 36: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Building a Wireless Network Topology The SSID of the infrastructure network

Create the wifi devices of these stations

36

Page 37: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

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

Page 38: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Building a Wireless Network Topology Set some Attributes controlling the “position

allocator” functionality

38

The number of objects layed out on a line.

Page 39: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

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

Page 40: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Building a Wireless Network Topology Want the access point to remain in a fixed

position during the simulation

Protocol stacks

40

Page 41: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Building a Wireless Network Topology assign IP addresses to the device interfaces

41

Page 42: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Building a Wireless Network Topology Enable internetwork routing

Create just enough tracing to cover all three networks

42

Page 43: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Building a Wireless Network Topology Run the simulation, clean up and then exit the

program

Output

43

Page 44: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Read the pcap files

44

Page 45: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Plot figures

45

Page 46: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

An Example of MANET

• Reference • /ns-allinone-3.10/ns-3.10/examples/wireless/wifi-

hidden-terminal.cc

Page 47: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Codes (1/7)

47

Page 48: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Codes (2/7)

48

Page 49: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Codes (3/7)

49

Page 50: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Codes (4/7)

50

Page 51: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Codes (5/7)

51

Page 52: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Codes (6/7)

52

Page 53: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Codes (7/7)

53

Page 54: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Result

54

Page 55: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

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

Page 56: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Need to do…… (2/3) RTS retry limit

ns3::UanMacRc RetryRate

Buffer size ns3::TcpSocket

SndBufSize

AODV hello periods ns3::aodv::RoutingProtocol

HelloInterval 56

Page 57: Ns-3 Training Computer and Communication Network Lab Department of Electrical Engineering National Sun Yat-Sen University 5/13/2013

Need to do…… (3/3) Uniform distribution in a square with 500 meters

ns3::RandomRectanglePositionAllocator

ns3::UniformVariable

57

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

Q & A

58