02 Ns2 Exercises

14
2nd ISSNSM’s Tutorial on Simulating Networks with Network Simulator 2 (ns-2) (Tutorial T2) Speaker: Frank Eyermann June 3, 2008 ISSNSM — International Summer School on Network and Service Management

Transcript of 02 Ns2 Exercises

Page 1: 02 Ns2 Exercises

2nd ISSNSM’s Tutorial on

Simulating Networks with Network Simulator 2 (ns-2)

(Tutorial T2)

Speaker:

Frank Eyermann

June 3, 2008

ISSNSM — International Summer School on Network and Service Management

Page 2: 02 Ns2 Exercises

ISSNM program chaired by Burkhard Stiller, David Hausheer, University of Zürich

ISSNM laboratory organization chaired by Cristian Morariu, Peter Racz, University of Zürich

Page 3: 02 Ns2 Exercises

1

2008 Frank Eyermann 1

NS-2 Network Simulator 2

Tutorial – Emanics Summer School, Zurich3rd June, 2008

This tutorial/training course was supported in part by theEC IST-EMANICS Network of Excellence (#26854).

2008 Frank Eyermann 2

Introduction

Frank Eyermann– [email protected]

– Information Systems Laboratory– Faculty for Computer Science– Universität der Bundeswehr, Munich

Page 4: 02 Ns2 Exercises

2

2008 Frank Eyermann 3

Exercise 1.1: ns-2’s Hello World

Create the following scenario– Two nodes, link in between– Sender agent: Agent/UDP– Receiver agent: Agent/Null– Connect agents– Data source: Application/Traffic/CBR– Run from 0.5 to 4.5 sec, finish at 5.0 sec

Node

Agent/UDP

Application/Traffic/CBR

2mb 10ms DropTail

1000 Byte, Rate 1,5mbit

Node

Agent/Null

2008 Frank Eyermann 4

Exercise 1.2

Extend to the following scenario

Node Node

Node

Node

Agent/UDP

Agent/TCP

Application/Traffic/CBR

Application/FTP

Agent/NullAgent/TCPSink

2mb 10ms DropTail

1 mb 10 ms DropTail

2mb 10ms DropTail1000 Byte, Rate 1,5mbit

Page 5: 02 Ns2 Exercises

3

2008 Frank Eyermann 5

Exercise 1.2

– Connect the appropriate agents– Start the FTP application at t = 0.5s– Start the CBR data source at t = 1s– Terminate both at t = 4.5 s– Visualize the bottle neck queue:$ns duplex-link-op $n2 $n3 queuePos 0.5

Run the simulationReplay the simulation with nam.– Observe the queue and the load on the

bottleneck link

2008 Frank Eyermann 6

Exercise 1.3

Change the bottleneck drop policy– from DropTail to RED (Random Early Detect)– What changes can you observe?The FTP traffic is now very bursty.– Change the RED queue parameters trying to

make it smoother– set l [$ns link $n2 $n3]– set q [$l queue]– #$q set thresh_ ?? # default 0– #$q set maxthresh_ ?? # default 50– #$q set linterm_ ?? # default 0.1

Page 6: 02 Ns2 Exercises

4

2008 Frank Eyermann 7

Exercise 1.4

Based on 1.2Name each flow– $agent set fid_ number

Color flow 1 red and flow 2 blue– $ns color number Color

Predefine the links’ orientation for better layout– $ns duplex-link-op $n0 $n1 orient right-down

Restart simulation

2008 Frank Eyermann 8

Exercise 1.5

Based on exercise 1.3– Despite tuning the queue’s parameter the

queue length changes in drastically– Color the packets– Do you see why the RED queue does not

perform as expected?– What function needs to be implemented?

Page 7: 02 Ns2 Exercises

5

2008 Frank Eyermann 9

Exercise 2.1: Tracing

Based on exercise 1.4Trace all events on the bottleneck linkCreate a second trace file for only the dropsOpen the document „NS-2 Trace Formats“– What is the normal trace format?

2008 Frank Eyermann 10

Exercise 2.2: Monitoring

Based on Exercise 1.4Create a monitor for the central nodeUse sampleInterval=0.1 to periodically write information to fileDo not forget to trigger the monitoring

Page 8: 02 Ns2 Exercises

6

2008 Frank Eyermann 11

Exercise 2.3: Monitoring

Based on Exercise 1.4Create a monitor for the central nodeRead all 0.05 sec the following values for each time period:– Throughput– Packet drops– Average packets in queue– Average time of a packet in queueWrite them to a file

2008 Frank Eyermann 12

Exercise 2.3: Monitoring

Hints:– You need to create a Samples object for the

average delay– Create a procedure which retrieves the infor-

mation from the Monitor and writes them to file– The average packets in queue you get from the

respective built-in integrator– Care for the case when no packets have been

received in one period– Have the procedure schedule itself again at

[expr [$ns now] + 0.05]

Page 9: 02 Ns2 Exercises

7

2008 Frank Eyermann 13

Exercise 2.4: Monitoring

Based on exercise 1.2 and 1.3Compare utilization of the bottleneck link and average time of a packet in the queue for DropTail and RED queuing discipline– Use QueueMonitors and Samples for the

respective data

2008 Frank Eyermann 14

Exercise 2.5: Monitoring Flows

Based on exercise 2.2Monitor the both flows separately– Use the standard output format– Look for the format at page 243 of ns_doc.pdf

Page 10: 02 Ns2 Exercises

8

2008 Frank Eyermann 15

Exercise 3.1: Trace Post-Processing

Based on exercise 2.3Visualize the drops and the average packets in the queue with xgraph and gnuplot

2008 Frank Eyermann 16

Exercise 3.2

Create the following scenarioAll clients pull FTP data from 0.5 to 4.5 sec

Client 3

Client 1

Client 2

Client 4

16Mbit25ms

16Mbit25ms

16Mbit25ms

16Mbit25ms

FTP Server

100 Mbit8ms

DropTail56 Mbit12 ms

DropTail

Page 11: 02 Ns2 Exercises

9

2008 Frank Eyermann 17

Exercise 3.2

Should Client 1 invest in upgrading to a 25 MBit/s or 50 MBit/s link?Or better invest in a Fast-Path option reducing the delay to 15ms?Could the provider’s queuing discipline influence the user’s decision?

2008 Frank Eyermann 18

Exercise 3.3

Based on exercise 1.4Visualize the packet jitter of the CBR data– Remember

to skipdroppedpackets

Page 12: 02 Ns2 Exercises

10

2008 Frank Eyermann 19

Exercise 4.1: LANs

Create a typical 10 MBit/s Ethernet

The LAN delay should be 1 msThe connection from the server to the router is a WAN (2mbit/s, 10 ms)Simulate 5 sec. FTP-Transfer

4 FTP-Clients

RouterFTP-Server

2008 Frank Eyermann 20

Exercise 4.2

nam shows a quite long queueWhat is the average queuing delay of a packet?How could the delay be reduced? Think of exercise 1.3– Repeat the simulation

Page 13: 02 Ns2 Exercises

11

2008 Frank Eyermann 21

Create the following scenario, all links 10MBit, 8 ms, DropTailSend CBR data1 -> 6, 3 -> 8,5 -> 2, 7 -> 4Rate = 1.5 MBit,Size = 500 ByteActivate session-based routing

Exercise 5.1: Routing

1

3 7

5

2 8

4 6

2008 Frank Eyermann 22

Exercise 5.2

Link node 1 to node 2– Fails each 1.5 sec for 0.5 secNode 5– Is down between 1.6 and 2.5 sec

Page 14: 02 Ns2 Exercises

12

2008 Frank Eyermann 23

Exercise 5.3: Routing

Based on exercise 4.1Dialup backup line, if WAN connection fails– Volume based, quite expensive– 1mb, 15ms– Simulate deterministic failure 2sec up, 0,5sec

down

RAS-Server

2008 Frank Eyermann 24

Bug in ns-2.3x

On activating or deactivating of a link:foreach node [[Simulator instance] all-nodes-list]

{# XXX using dummy 0 for 'changes'

$node notify-mcast 0}

– “LAN” is a node (LanNode) but misses notify-mcast

– Hack: find method notifiy-mcast of node– Create an (empty) method stub for LanNode– Run make in folder ns-2.33