Network Simulation One tool to simulation network protocols for the Internet is the network...

Post on 14-Dec-2015

216 views 0 download

Tags:

Transcript of Network Simulation One tool to simulation network protocols for the Internet is the network...

Network Simulation

• One tool to simulation network protocols for the Internet is the network simulator (NS)

• The simulation environment needs to be set-up carefully to produce meaningful results

• The simulation set-up is called ‘simulation scenario’

Simulation Scenarios

• In general, a simulation scenario consists of three different main components (or dimensions)– Routed Topology– Connections, Traffic and Agents/end-host

protocols– External events and Failures

Routed Topology• Defines the number of nodes and their

connectivity• Defines the links connecting the nodes, their

bandwidth, delay, queuing discipline and other characteristics

• Defines the routing protocols running in the nodes in terms of unicast and multicast routing

• Can use topology generators (e.g., GT-ITM)

Connections, Traffic and Agents• Agents are end-host protocols, such as TCP, ftp,

Telnet, UDP.. etc.

• Traffic source can be: (uses a traffic model)– constant bit rate (CBR) at rate R

– with distribution (Poisson or Pareto)

– trace driven

• Connection definition includes spatial distribution of connections (TCP sender/receiver, or group members)

External events and Failures• External events include the temporal distribution

of connections:– start and end of TCP connections

– join/leave patterns for multicast group members

• Failures include link failures, packet loss patterns and congestion patterns and may follow a failure model or distribution

• Events may also include movement patterns of mobile hosts

The network simulator (NS)• It is a packet-level discrete-event simulator

• The simulation engine is written in C++ and mainly handles the event-queue and per packet processing (such as TCP and forwarding caches)

• Most protocols (such as unicast/multicsat) routing protocols are implemented in Otcl (Object Tcl)

• Check the vint project catarina.usc.edu/vint, and follow the on-line step-by-step tutorial

Getting Started• Download the ns from:

– http://www.isi.edu/nsnam/ns– Tcl/tk, otcl, tclcl, ns

• Install ns in your system– Binary release is provided for windows 9x/NT– NS-allinone package is strongly recommended

• Download nam if visualization is needed– http://www.isi.edu/nsnam/nam– Included in ns-allinone package

• Get help from ns-users@isi.edu– check the mailing lists on the ns web page

What is ns

• otcl: Object-oriented support• tclcl: C++ and otcl linkage• Discrete event scheduler• Data network (the Internet) components

tcl8.0

otcl

tclcl

ns-2EventScheduler

Netw

orkC

omponent

Internals

• Discrete Event Scheduler

• Network Topology

• Routing

• Transport

• Application

• Packet Flow

Discrete Event Scheduler

time_, uid_, next_, handler_

head_ ->

handler_ -> handle()

time_, uid_, next_, handler_insert

head_ ->

Network Topology - Node

n0 n1

Addr Classifier

Port Classifier

classifier_

dmux_

entry_

Node entry

Unicast Node

Multicast Classifier

classifier_

dmux_

entry_

Node entry

Multicast Node

multiclassifier_

Network Topology - Link

n0 n1

enqT_ queue_ deqT_

drophead_ drpT_

link_ ttl_

n1 entry_head_

Routing

n0 n1

Addr Classifier

Port Classifier

classifier_

dmux_

entry_

Node entry 0

1enqT_ queue_ deqT_

drophead_ drpT_

link_ ttl_

n1 entry_head_

Routing (cont.)

n0 n1

Addr Classifier

Port Classifier

classifier_

dmux_

entry_

0

1

Addr Classifier

Port Classifier

classifier_

dmux_

entry_

1

0Link n0-n1

Link n1-n0

0

1

Transport

n0 n1

Addr Classifier

Port Classifier

classifier_

dmux_

entry_

0 Agent/TCP

agents_

Addr Classifier

Port Classifier

classifier_

dmux_

entry_

1

0Link n0-n1

Link n1-n0

0 Agent/TCPSink

agents_

dst_=1.0 dst_=0.0

Application

0

1

n0 n1

Addr Classifier

Port Classifier

classifier_

dmux_

entry_

0 Agent/TCP

agents_

Addr Classifier

Port Classifier

classifier_

dmux_

entry_

1

0Link n0-n1

Link n1-n0

0 Agent/TCPSink

agents_

dst_=1.0 dst_=0.0Application/FTP

Packet Flow

0

1

n0 n1

Addr Classifier

Port Classifier

entry_

0 Agent/TCP Addr Classifier

Port Classifier

entry_

1

0Link n0-n1

Link n1-n0

0 Agent/TCPSink

dst_=1.0 dst_=0.0Application/FTP

• NS\VINT web pages\tutorial:– http://catarina.usc.edu/vint– http://www.isi.edu/nsnam/vint– http://www.isi.edu/nsnam/ns/tutorial/

index.html