You are on page 1of 50

Mc lc

MC LC
MC LC ...................................................................................................................1
MC LC HNH ........................................................................................................3
CHNG 1 TNG QUAN V NS-2........................................................................5
1.1 Gii thiu..............................................................................................................................5
1.2 Download v install NS-2 v NAM......................................................................................5
1.2.1 Cch 1: Ci t bng duy nht mt gi phn mm........................................................5
1.2.1.a Download ...............................................................................................................5
1.2.1.b Install......................................................................................................................6
1.2.2 Cch 2: Ci t bng cch ci tng gi phn mm ring l...........................................7
1.2.2.a Download................................................................................................................7
1.2.2.b Install......................................................................................................................7
1.3 Chy chng trnh NS-2 v NAM........................................................................................9

CHNG 2 KIN TRC CA NS-2.....................................................................10


2.1 Gii thiu............................................................................................................................10
2.2 C++ v OTcl........................................................................................................................11
2.3 Cc c tnh ca NS-2.........................................................................................................14

CHNG 3 GII THIU CC PHN MM DNG KT HP VI NS-2......16


3.1 NAM...................................................................................................................................16
3.1.1 Chy NAM .................................................................................................................16
3.1.2 Cc chc nng ca NAM trong giao din ha ngi dng....................................17
3.1.2.a Ca s NAM Console...........................................................................................17
3.1.2.b Ca s minh ho NAM.........................................................................................17
3.2 NSCRIPT............................................................................................................................19
3.2.1 Download v Install.....................................................................................................19
3.2.1.a Download .............................................................................................................19
3.2.1.b Install....................................................................................................................19
3.2.2 Chy NSCRIPT...........................................................................................................20
3.2.3 Cc chc nng ca NSCRIPT trong giao din ho ngi dng.............................20
3.3 Topology Generator............................................................................................................22
3.3.1 GT-ITMS.....................................................................................................................22
3.3.2 TIERS .........................................................................................................................22
3.3.3 BRITE .........................................................................................................................22
3.3.4 INET ...........................................................................................................................22
3.4 Trace Data Analyzers..........................................................................................................22
3.4.1 XGRAPH.....................................................................................................................22
3.4.1.a Download v Install..............................................................................................22
3.4.1.b Chy XGRAPH ...................................................................................................23
3.4.1.c Cc chc nng ca XGRAPH trong giao din ha ngi dng .....................24
3.4.2 TRACEGRAPH...........................................................................................................24
3.4.2.a Download v Install .............................................................................................25
3.4.2.b Chy TRACEGRAPH..........................................................................................25
3.4.2.c Chc nng ca TRACEGRAPH trong giao din ha ngi dng..................25

Gio trnh thc hnh Ns2

-1-

Mc lc
CHNG 4 OTCL SCRIPT TRONG NS-2...........................................................28
4.1 V d ...................................................................................................................................28
4.2 Khi to node......................................................................................................................33
4.3 Khi to link.......................................................................................................................33
4.3.1 Simplex-link................................................................................................................34
4.3.2 Duplex-link..................................................................................................................34
4.4 Khi to Network Agents...................................................................................................34
4.4.1 UDP ...........................................................................................................................34
4.4.2 TCP..............................................................................................................................35
4.5 Cc loi traffic.....................................................................................................................35
4.5.1 Tc bit c nh CBR...............................................................................................35
4.5.2 Traffic thay i theo phn b m Exponential............................................................36
4.5.3 Traffic thay i theo phn b Pareto...........................................................................36
4.5.4 TrafficTrace.................................................................................................................36
4.6 Cc dch v c bn trong Internet ......................................................................................37
4.6.1 Giao thc truyn tp tin FTP ......................................................................................37
4.6.2 Telnet...........................................................................................................................37
4.6.3 Giao thc truyn siu vn bn HTTP..........................................................................37
4.7 Tracing................................................................................................................................38
4.8 Routing................................................................................................................................39
4.8.1 Unicast.........................................................................................................................40
4.8.2 Multicast .....................................................................................................................40

CHNG 5 CC V D C BN.........................................................................41
5.1 Kch bn OTcl th nht ......................................................................................................41
5.2 Kch bn OTcl th hai.........................................................................................................43
5.3 Kch bn Otcl th ba ..........................................................................................................45

THUT NG VIT TT ........................................................................................49


TI LIU THAM KHO.........................................................................................50

Gio trnh thc hnh Ns2

-2-

Mc lc hnh

MC LC HNH

HNH 1: KIN TRC TH MC CI T CA NS-2 V NAM TRONG MI


TRNG LINUX........................................................................................................9
HNH 2: TNG QUAN V NS DI GC NGI DNG.........................10
HNH 3: LUNG CC S KIN CHO FILE TCL CHY TRONG NS ............11
HNH 4: KIN TRC CA NS-2............................................................................12
HNH 5: C++ V OTCL: S I NGU..............................................................12
HNH 6: TCLCL HOT NG NH LIN KT GIA A V B.......................13
HNH 7: M T CC CNG C CA NAM.......................................................17
HNH 8: BN THNH PHN C BN CA NSCRIPT GUI.............................20
HNH 9: TOOLBOX BIU DIN TH VIN MC NH TRONG NSCRIPT 21
HNH 10: GIAO DIN HA NGI DNG CA XGRAPH......................24
HNH 11: GIAO DIN HA NGI DNG TRACEGRAPH.....................26
HNH 12 : TOPOLOGY MNG N GIN V KCH BN M PHNG......28
HNH 13: S LIN KT CC I TNG C BN TRONG NS...................32
HNH 14: NODE UNICAST V NODE MULTICAST.........................................33
HNH 15: LINK.........................................................................................................34
HNH 16: CHN I TNG TRACE.................................................................38
HNH 17: MINH HA NAM CHO KCH BN OTCL TH NHT ..................42
HNH 18: M PHNG NAM CA KCH BN OTCL TH HAI......................45
HNH 19: M PHNG NAM CA KCH BN OTCL TH BA........................48

Gio trnh thc hnh Ns2

-3-

Mc lc hnh

Gio trnh thc hnh Ns2

-4-

Chng 1: Tng quan v NS-2

CHNG 1

TNG QUAN V NS-2

1.1 Gii thiu


NS (phin bn) l phn mm m phng mng iu khin s kin ring r hng i
tng, c pht trin ti UC Berkely, vit bng ngn ng C++ v OTcl. NS rt hu
ch cho vic m phng mng din rng (WAN) v mng local (LAN). Bn li ch ln
nht ca NS-2 phi k n u tin l:
Kh nng kim tra tnh n nh ca cc giao thc mng ang tn ti
Kh nng nh gi cc giao thc mng mi trc khi a vo s dng
Kh nng thc thi nhng m hnh mng ln m gn nh ta khng th thc thi
c trong thc t
Kh nng m phng nhiu loi mng khc nhau
Mc d NS-2 l phn mm m ngun m c sn cho c nn Windows 32 v Linux,
nhng gio trnh ny ch cp n vic ci t cng nh thc thi NS-2 trong mi
trng Linux.
1.2 Download v install NS-2 v NAM
NS-2 v NAM c th c ci t bng duy nht mt gi phn mm (cch 1) hay bng
cch ci tng gi phn mm ring l (cch 2). Cch 1 dnh cho nhng ngi va mi
lm quen vi m phng. Nhng ngi c kinh nghim th c khuyn khch ci
theo cch 2.
1.2.1 Cch 1: Ci t bng duy nht mt gi phn mm
1.2.1.a Download
Download
gi
phn
mm
ns-allinone-2.28.tar
v
t
http://www.isi.edu/nsnam/ns/. Ns-allinone-2.28 bao gm cc gi sau:

ch

cweb
gt-itm
nam-1.11
ns-2.28
otcl-1.9
sgb
tcl8.4
tclcl-1.16
tk8.4
xgraph-1.1
zlib-1.1
install
install.win
readme install

Gio trnh thc hnh Ns2

-5-

Chng 1: Tng quan v NS-2


1.2.1.b Install
Chuyn n th mc ta mun ci t NS (chng hn nh /usr/local/src/), gii nn gi
ns-allinone-2.28.tar bng lnh:
tar xvf ns-allinone-2.28.tar
v chy script:
./install
Nu ci t thnh cng th s c nhng v tr c ci t nh sau:
tcl8.4.5
{ng dn n th mc ns-allinone-2.28}/{bin,include,lib}
tk8.4.5
{ng dn n th mc ns-allinone-2.28}/{bin,include,lib}
otcl
{ng dn n th mc ns-allinone-2.28}/otcl-1.9
tclcl
{ng dn n th mc ns-allinone-2.28}/tclcl-1.16
ns
{ng dn n th mc ns-allinone-2.28}/ns-2.28/ns
nam
{ng dn n th mc ns-allinone-2.28}/nam-1.11/nam
xgraph
{ng dn n th mc ns-allinone-2.28}/xgraph-12.1
t

{ng dn n th mc ns-allinone-2.28}/bin
{ng dn n th mc ns-allinone-2.28}/tcl8.4.5/unix
{ng dn n th mc ns-allinone-2.28}/tk8.4.5/unix

vo bin mi trng PATH; c th chy itm/tclsh/wish/xgraph, bng lnh:


export PATH=$PATH:{ng dn n th mc ns-allinone-2.28}/bin:{ng dn n
th mc ns-allinone-2.28}/tcl8.4.5/unix:{ng dn n th mc ns-allinone2.28}/tk8.4.5/unix
CH
(1) Phi t {ng dn n th mc ns-allinone-2.28}/otcl-1.9, {ng dn n th
mc ns-allinone-2.28}/lib, vo trong bin mi trng LD_LIBRARY_PATH.
Nu dng csh, g lnh:
setenv LD_LIBRARY_PATH <ng dn>
v nu dng sh th g lnh:
export LD_LIBRARY_PATH <ng dn>
(2) Phi thm {ng dn n th mc ns-allinone-2.28}/tcl8.4.5/library vo trong
bin mi trng TCL_LIBRARY trnh vic ns v nam bo li khi khi ng.
(3) [Tu chn] tit kim a th c th xo hai th mc tcl8.4.5 v tk8.4.5 i v
chng c ci t vo trong {ng dn n th mc ns-allinone-2.28}/
{bin,include,lib}.
Sau nhng bc ny, c th kim tra li NS-2 bng lnh:
cd {ng dn n th mc ns-allinone-2.28}/ns-2.28
./validate

Gio trnh thc hnh Ns2

-6-

Chng 1: Tng quan v NS-2


1.2.2 Cch 2: Ci t bng cch ci tng gi phn mm ring l
1.2.2.a Download
chy c chng trnh NS-2 th cn phi c ti thiu 3 gi sau:
otcl
tclcl
ns-2
biu din m phng th cn gi:
nam-1
n bc 1.1 ca phn 1.2.2.b kim tra xem tp tin h thng mng NFS c h tr
tcl/tk8.4.5 khng. Nu khng th cn download thm hai gi:
tcl8.4.5
tk8.4.5
Download cc gi phn mm trn v t a ch http://www.isi.edu/nsnam/ns/.
1.2.2.b Install
Bc 1: Install tcl/tk
Bc 1.1: Nu tcl/tk8.4.5 c install vo trong h thng th chng ta c th dng
ci otcl, tclcl, ns-2 v nam bng cch:
1. Kim tra v tr chnh xc ca tiu v cc tp tin th vin ca tcl/tk. Thng thng
l:
tclsh8.4 trong /usr/local/bin (hay /usr/bin)
libtcl8.4.a trong /usr/local/lib (hay /usr/lib)
init.tcl in /usr/local/lib/tcl8.4 (hay /usr/lib/tcl8.4)
tcl*.h in /usr/local/include (hay /usr/include)
Kim tra tng t vi tk nh sau:
tksh8.4 trong /usr/local/bin (hay /usr/bin)
libtk8.4.a trong /usr/local/lib (hay /usr/lib)
init.tcl in /usr/local/lib/tk8.4 (hay /usr/lib/tk8.4)
tk*.h in /usr/local/include (hay /usr/include)
Nu khng nh v c nhng file trn ca tcl/tk8.4.5 th b mc 2,3 sau v chuyn
ngay sang bc 1.2 tin hnh install tcl/tk8.4.5.
2. Thit lp cc bin mi trng
setenv TCL_LIBRARY /usr/local/lib/tcl8.4 (hay /usr/lib/tcl8.4)
setenv TK_LIBRARY /usr/local/lib/tk8.4 (hay /usr/lib/tk8.4)
3. Thit lp cc tu chn khi cu hnh otcl, tclcl, ns-2 trong bc 3 bn di.
--with-tcl=/usr/local --with-tcl-ver=8.4 --with-tk=/usr/local --with-tk-ver=8.4
(hay --with-tcl=/usr --with-tcl-ver=8.4 --with-tk=/usr --with-tk-ver=8.4)
Bc 1.2: Install tcl v tk
1. Configure v install tcl/tk
tcl8.4.5
cd tcl8.4.5/unix
./configure disable-load
Gio trnh thc hnh Ns2

-7-

Chng 1: Tng quan v NS-2


make
tk8.4.5
cd tk8.4.5/unix
./configure disable-load
make
2. Nhng file quan trng
tclsh trong {ng dn n th mc tcl8.4.5}/unix
libtcl8.4.a trong {ng dn n th mc tcl8.4.5}/unix
init.tcl trong {ng dn n th mc tcl8.4.5}/library
tcl*.h trong {ng dn n th mc tcl8.4.5}/generic
Kim tra tng t vi tk.
3. Cc bin mi trng
setenv TCL_LIBRARY {ng dn n th mc tcl8.4.5} (hay /usr/lib/tcl8.4)
setenv TK_LIBRARY {ng dn n th mc tk8.4.5} (hay /usr/lib/tk8.4)
4. Thit lp cc tu chn khi cu hnh otcl, tclcl, ns-2 trong bc 2 bn di.
--with-tcl={ng dn n th mc tcl8.4.5} --with-tcl-ver=8.4.5
--with-tk= {ng dn n th mc tk8.4.5} --with-tk-ver=8.4.5
Bc 2: Install/ re-install otcl, tclcl, ns-2 v nam
Vi tng gi ny ta cn chy script configure to ra Makefile vi cc ng dn
v tn file BIN, INCLUDE, LIB ng.
i khi script configure to c Makefile nhng li khng nh v chnh xc tn
ng dn v tn file. V th, make s khng thnh cng. Nn chng ta cn chnh sa
li Makefile c th compiler c th tm c ng dn v tn file ng m bin
dch.
otcl
./configure --with-tcl={ng dn n th mc tcl8.4.5} --with-tcl-ver=8.4.5
--with-tk={ng dn n th mc tk8.4.5} --with-tk-ver=8.4.5
make
tclcl
./configure

--with-tcl={ng dn n th mc tcl8.4.5} --with-tcl-ver=8.4.5


--with-tk={ng dn n th mc tk8.4.5} --with-tk-ver=8.4.5
--with-otcl={ng dn n th mc otcl}

make
ns-2
./configure

--with-tcl={ng dn n th mc tcl8.4.5} --with-tcl-ver=8.4.5


--with-tk={ng dn n th mc tk8.4.5} --with-tk-ver=8.4
--with-otcl={ng dn n th mc otcl}
--with-tclcl={ng dn n file tclcl hay Tcl}

make
nam
./configure

--with-tcl={ng dn n th mc tcl8.4.5} --with-tcl-ver=8.4.5


--with-tk={ng dn n th mc tk8.4.5} --with-tk-ver=8.4.5
--with-otcl={ng dn n th mc otcl}
--with-tclcl={ng dn n file tclcl hay Tcl}

make
Gio trnh thc hnh Ns2

-8-

Chng 1: Tng quan v NS-2


CH
Xem li cc ch trnh by trong phn 1.2.1
1.3 Chy chng trnh NS-2 v NAM
Hnh sau biu din kin trc th mc NS-2 v NAM trong mi trng Linux. NS-2 v
NAM u l cc th mc con ca ns-allinone-2.28. NS-2 bao gm cc thc thi m
phng (bng m C++ v m OTcl), cc kch bn Otcl kim tra tnh hiu lc v cc
kch bn OTcl minh ha.

ns-allinone-2.28
Tcl8.4.5

TK8.4.5

OTcl

tclcl

tcl
ex
Cc v d

test

ns-2.28

...
lib

Cc kim tra

nam1.19

M C++

mcast

...

M OTcl

Hnh 1: Kin trc th mc ci t ca NS-2 v NAM trong mi trng Linux


Trc tin, chng ta cn xem li cc ch trong phn 1.2.1 kim tra vic thit lp
gi tr bin PATH.
Tip theo, chy NS-2, chuyn vo th mc ns-2.28, gi chng trnh ns bng lnh
ns file.tcl. Cch chy kch bn v d simple.tcl t trong th mc ../ns-2.28/tcl/ex nh
sau:
ns-2
cd{ng dn n th mc ns-2.28}/tcl/ex/
../../ns simple.tcl
Tng t, chy NAM, chuyn vo th mc nam-1.19, gi chng trnh nam bng
lnh nam file.nam. Chy kch bn v d lan.nam trong th mc ../nam-1.19/ex nh sau:
nam
cd {ng dn n th mc nam-1.11}/ex
gunzip lan.nam.gz
../nam lan.nam
Lnh gunzip dng gii nn tp tin lan.nam.gz thnh lan.nam.

Gio trnh thc hnh Ns2

-9-

Chng 2: Kin trc ca NS-2

CHNG 2

KIN TRC CA NS-2

2.1 Gii thiu


NS thc thi cc giao thc mng nh Giao thc iu khin truyn ti (TCP) v Giao
thc gi ngi dng (UDP); cc dch v ngun lu lng nh Giao thc truyn tp tin
(FTP), Telnet, Web, Tc bit c nh (CBR) v Tc bit thay i (VBR) ; cc k
thut qun l hng i nh Vo trc Ra trc (Drop Tail), D sm ngu nhin (RED)
v CBQ; cc thut ton nh tuyn nh Dijkstra NS cng thc thi multicasting v
vi giao thc lp iu khin truy cp ng truyn (MAC) i vi m phng LAN.

Hnh 2: Tng quan v NS di gc ngi dng

OTcl Script
Simulation Program
OTcl
NS Simulation Library
Event Scheduler Objects
Network Component Objects
Network Setup Helping Modules
Plumbling Modules
Simulation Results
Analysis
NAM Network Animator

Kch bn OTcl
Chng trnh M phng
B bin dch Tcl m rng hng i tng
Th vin M phng NS
Cc i tng B lp lch S kin
Cc i tng Thnh phn Mng
Cc m un Tr gip Thit lp Mng
Cc m un Plumbling
Cc kt qu M phng
Phn tch
Minh ha Mng NAM

Trong hnh trn, NS l B bin dch Tcl m rng hng i tng; bao gm cc i
tng B lp lch S kin, cc i tng Thnh phn Mng v cc m un Tr gip
Thit lp Mng (hay cc m un Plumbing).
s dng NS-2, user lp trnh bng ngn ng kch bn OTcl. User c th thm cc
m ngun Otcl vo NS-2 bng cch vit cc lp i tng mi trong OTcl. Nhng lp
ny khi s c bin dch cng vi m ngun gc. Kch bn OTcl c th thc hin
nhng vic sau:
Khi to B lp lch S kin

Chng 2: Kin trc ca NS-2


Thit lp M hnh mng dng cc i tng Thnh phn Mng
Bo cho ngun traffic khi no bt u truyn v ngng truyn packet trong B
lp lch S kin
Thut ng plumbing c dng ch vic thit lp mng, v thit lp mt mng ngha
l xy dng cc ng d liu gia cc i tng mng bng cch thit lp con tr
neighbour cho mt i tng ch n a ch ca i tng tng ng. M un
plumbing OTcl trong thc t thc hin vic trn rt n gin. Plumbing lm nn sc
mnh ca NS.
Thnh phn ln khc ca NS bn cnh cc i tng Thnh phn Mng l B lp lch
S kin. B lp lch S kin trong NS-2 thc hin nhng vic sau:
T chc B nh thi M phng
Hu cc s kin trong hng i s kin
Triu gi cc Thnh phn Mng trong m phng
Ph thuc vo mc ch ca user i vi kch bn m phng OTcl m kt qu m
phng c th c lu tr nh file trace. nh dng file trace s c ti vo trong cc
ng dng khc thc hin phn tch:
File nam trace (file.nam) c dng cho cng c Minh ha mng NAM
File Trace (file.tr) c dng cho cng c Ln vt v Gim st M phng
XGRAPH hay TRACEGRAPH

Hnh 3: Lung cc s kin cho file Tcl chy trong NS


NAM Visual Simulation
Tracing and Monitoring Simulation

M phng o NAM
M phng Ln vt v Gim st

2.2 C++ v OTcl


Hnh sau biu din kin trc chung ca NS. User c th tng tng mnh ang ng
gc tri di, thit k v chy cc m phng trong Tcl. Tcl dng cc i tng m
phng trong OTcl. Cc i tng B lp lch S kin v hu ht cc i tng Thnh
phn Mng thc thi bng C++ v sn c cho OTcl qua mt lin kt OTcl. Lin kt

Chng 2: Kin trc ca NS-2


OTcl ny c thc thi dng TclCL. Tt c lm nn NS, b bin dch Tcl m rng
hng i tng v cc th vin m phng mng.
Network
Components
OTcl
Tcl

Event
Scheduler

TclCL

C/C++
ns-2

Hnh 4: Kin trc ca NS-2


NS s dng hai ngn ng lp trnh: Ngn ng kch bn (Tcl Tool Command
Language, c l tickle) v Ngn ng lp trnh h thng (C/C++)
NS l tng bin dch Tcl chy cc kch bn Tcl
Bng cch s dng C++/OTcl, b m phng mng phi hon ton l hng i
tng
Hnh sau ch ra cc i tng C++ c lin kt OTcl. Khi , nu chng to nn mt
phn cp th cc i tng OTcl cng c mt phn cp tng ng nh vy.

Hnh 5: C++ v OTcl: S i ngu


TclCL l ngn ng c s dng cung cp lin kt gia C++ v OTcl. Cc kch bn
Tcl/OTcl c vit thit lp v cu hnh topology ca mng. TclCL cung cp lin
kt gia phn cp lp, khi to i tng, ni kt bin v gi lnh.

Chng 2: Kin trc ca NS-2

Hnh 6: TclCL hot ng nh lin kt gia A v B


Vy, ti sao NS li cn s dng n hai ngn ng? L do l v B m phng cn
thc hin hai vic khc nhau.
Mt mt l v cc m phng cho cc giao thc yu cu mt ngn ng lp trnh h
thng c th tnh ton mt cch hiu qu cc byte, cc tiu packet v cc thut ton
thc thi ang chy trn mt tp d liu ln. Vi tc v ny, run-time speed (tc thi
gian chy thc) l quan trng trong khi turn-around time (thi gian thay i) th t
quan trng hn. Turn-around time bao gm thi gian chy m phng, thi gian tm li,
thi gian sa li, thi gian bin dch li v thi gian chy li.
Mt khc, khi nghin cu mng th rt cn quan tm n cc tham s v cc cu hnh
c thay i nhng khng ng k, hay quan tm n cc scenario (tnh hung) cn
khm ph tht nhanh chng. Trong tc v ny th iteration time (thi gian lp li, tc l
thi gian hay i m hnh v chy li) l quan trng hn. V cu hnh ch chy mt ln
lc bt u m phng nn run-time trong tc v ny r rng km quan trng hn.
Theo gii thch trn, tng ngn ng s c dng cho nhng vic g?
Dng C++ :
M phng giao thc chi tit yu cu ngn ng lp trnh h thng
o Thao tc trn byte, x l gi, thc thi thut ton
o Tc thi gian thc l quan trng nht
Thc hin bt k vic g m cn phi x l tng packet ca mt lung.
Thay i hnh vi ca lp C++ ang tn ti theo nhng hng khng c
lng trc.
V dng OTcl :
M phng nhng thng s hay cu hnh thay i
o Tham d nhanh mt s tnh hung
o Thi gian tng tc (thay i m hnh hay chy li) l quan trng
Cu hnh, thit lp hay nhng g ch lm mt ln.
Thc hin nhng ci ta mun bng cch thao tc trn cc i tng C++ ang
tn ti.

Chng 2: Kin trc ca NS-2


V d nh cc link l nhng i tng OTcl lin kt cc m un delay (tr hon),
queueing (hng i) v possibly loss (kh nng mt mt). Cn nu mun thc hin
nhng vic chuyn nghip hn th cn phi to ra i tng C++ mi.
Hu ht nh tuyn c vit bng OTcl (d thut ton Dijkstra li vit bng C++).
M phng HTTP c tng lung bt u ti OTcl nhng vic x l tng gi li c
vit bng C++. Phng php ny chy tt cho n khi c n 100 lung bt u thi
gian m phng mi giy. Ni chung, nu phi triu gi Tcl nhiu ln mi giy th c l
nn chuyn sang C++.
V phng din m ngun, NS-2 c vit vi 100k dng m lnh C++, 70k dng m
Tcl v 20k dng ti liu.
2.3 Cc c tnh ca NS-2
NS-2 thc thi nhng tnh nng sau:
Cc k thut qun l hng i Router nh DropTail, RED, CBQ,
Multicasting
M phng mng khng dy
o c pht trin bi Sun Microsystems + UC Berkeley (D n Daedalus)
o Thuc mt t (di ng, adhoc, GPRS, WLAN, BLUETOOTH), v tinh
o Chun IEEE 802.11 c th c m phng, cc giao thc Mobile-IP v
adhoc nh DSR, TORA, DSDV v AODV
Hnh vi ngun traffic www, CBR, VBR
Cc agent truyn ti UDP, TCP
nh tuyn
Lung packet
M hnh mng
Cc ng dng Telnet, FTP, Ping
Cc packet tracing trn tt c cc link v trn cc link xc nh

Chng 2: Kin trc ca NS-2

Chng 3: Gii thiu cc phn mm dng kt hp vi NS-2

CHNG 3

GII THIU CC PHN MM DNG KT HP VI


NS-2

3.1 NAM
Khi m phng kt thc, nu cc script Tcl (OTcl) u vo yu cu th NS s to ra cc
file text lu chi tit d liu m phng. D liu c th c dng cho vic phn tch
hay c dng nh u vo cho cc cng c trnh din m phng ha NAM.
NAM thc hin li nhng s kin t file ln vt nam (nam tracefile). File ny c th l
khng l khi thi gian m phng ln v s kin xy ra nhiu. V th, phi ht sc cn
thn. Ngoi ra, cn ch rng cc thng tin ha li khng c dng phn tch
m phng mt cch chnh xc.
C th tm tt cc tnh nng ca NAM nh sau:
Cung cp trnh din o cho mng c to
C th thi hnh trc tip t kch bn Tcl
NAM c giao din ho bt mt ca CD player vi cc iu khin bao gm
play (chy), stop (ngng), fast forward (chy tip nhanh), rw (li li), pause
(tm ngng), iu khin tc trnh din v tnh nng gim st packet
Biu din thng tin nh throughput (thng lng), s packet trn tng link
Cung cp giao din r v th cho vic to ra cc topology (m hnh).
3.1.1 Chy NAM
Chy NAM trong Command Line:
$nam a nam_trace_file.nam
Chy nam trong kch bn ns-2:
Proc finish{} {

exec nam a nam_trace_file.nam &
exit }
Cc tu chn khi chy NAM:
nam [-a -S -s -f init_script -d display -j jump -r rate -k
initPort] tracefiles

-a
-S
-s
-j

to mi mt instance ca nam
ng b ha X
ng b ho nhiu trace (nhiu ln vt)
thi gian khi ng

Chng 3: Gii thiu cc phn mm dng kt hp vi NS-2


-r
-f
-k

tc minh ha khi to
kch bn OTcl khi to
s socket port khi to

3.1.2 Cc chc nng ca NAM trong giao din ha ngi dng


3.1.2.a Ca s NAM Console
Sau khi khi ng NAM, ca s NAM console xut hin. y chnh l mt instance
ca NAM. Mt ca s NAM console (hay mt instance ca NAM) c th c nhiu ca
s minh ho NAM. Trong ca s NAM console c hai menu chnh File v Help.
File: di File c lnh New, Open, WinList v Quit
o
o
o
o

New
to mi mt topology ns dng chng trnh son tho NAM
Open m cc file trace tn ti (m ca s minh ha nam)
WinList m ra ca s lit k tn ca tt c cc file trace ang m
Quit
thot nam

Help: ch l cc tr gip n gin v lnh xem phin bn, thng tin v bn


quyn
3.1.2.b Ca s minh ho NAM
Khi mt file trace c ti vo nam (bng lnh Open hay t command line) th mt
ca s minh ho NAM s xut hin. Giao din chnh c menu bar (thanh lnh chnh),
control bar (thanh in khin), main display (mn hnh minh ha chnh). Ngoi ra, khi
la chn mt s chc nng t menu hay bng cch click chut th cn c thm cc ca
s con xut hin.

Hnh 7: M t cc cng c ca NAM

Menu bar: di menu bar c 3 lnh con File, Views, Analysis

Chng 3: Gii thiu cc phn mm dng kt hp vi NS-2


o File
Save layout
Print
o Views
New view

lu tt c cc s mng hin ti vo file


in tt c cc s mng hin ti

button to ra khung nhn mi cho cng mt


minh ha. Tt c cc minh ho s chy ng
b.
Show monitor
dng checkbox (dng kim tra). Nu
c check (usr click chn) th mt ca s
con Monitors (Gim st) xut hin. Cc
monitors s c th hin.
Show autolayout dng checkbox. Nu c check th mt ca
con Auto layout (s ) xut hin. C cc
box nhp liu v button iu chnh s t
ng. Checkbox ny khng th m nu ta
dng cc s lin kt c hng.
Show annotation dng checkbox. Nu c check th mt ca
s con Annotation (Ch thch) xut hin ch
thch cc s kin ang din ra theo th t
thi gian tng dn.

o Analysis
Active Sessions
Legend
Control bar: di control bar c 5 button, 1 nhn v 1 thanh trt Rate
o 5 button
<< - Rewind

tr li minh ha mt khong 25*steps giy


(steps: bc nhy, thng l 2.0 mili giy)
< - Backward play tr li minh ha mt bc nhy
- Stop
ngng minh ha
> - Forward play tr ti minh ha mt bc nhy
>> - Fast Forward tr ti minh ha mt khong 25*steps giy
o Nhn TIME (thi gian) ch ra thi gian minh ha hin ti
o Thanh trt Rate (tc ) iu khin tc update mn hnh
Main display: bao gm tool bar (thanh cng c iu khin) v khung minh ha
vi hai thanh cun ngang v dc.
o Tool bar c hai button phng to v thu nh, mt button Edit chnh
sa topology ca mng
o Khung minh ha th hin topology ca mng v hot hnh ho hot
ng ca mng
Click tri chut vo bt k i tng no trong khung minh ha s c ca s
thng tin xut hin. Vi cc i tng packet v agent, s c button Monitor
xut hin. Click vo button s m ra ca s con Monitors. Vi cc i
tng link, s c button Graph xut hin. Click vo button s cho la chn
xem biu bandwidth (bng thng) hay link loss (mt mt gi trn lin kt)
ca mt simplex link trong mt duplex link.

Chng 3: Gii thiu cc phn mm dng kt hp vi NS-2


Trong ca s con Monitor, packet c monitor s c ba thng s hin th l
size (kch c), id (m) v thi gian gi. Khi packet n ch th s trng thi
visible (khng thy c). Agent c monitor s c tn agent v bt k bin
trace no lin quan n agent ny c hin th. Hin ti ch c th monitor
packet v agent.
Ca s con Automatic Layout c ba box nhp liu v mt button relayout
(xut li s ). Sau khi thay i thng s v click vo button relayout th s
lng cc tng tc s c thc hin.
Ca s con Annotation s lit k cc ch thch cho minh ho t u cho n
thi im minh ha hin ti. Ch thch l mt cp (thi gian, chui m t s
kin) cho s kin ti thi gian xc nh. Click i ln ch thch s gip ta xem
li minh ha ti thi im s kin din ra. Click phi trong ca s con
Annatation s c menu s vi ba tu chn Add (Thm), Delete (Xa), Info
(Thng tin) c th thm ch thch mi, xa ch thch ang tn ti hay chnh
sa thng tin cho mc ch thch ti thi im minh ha xc nh.
3.2 NSCRIPT
Nscript l giao din ho ngi dng to kch bn m phng, c pht trin
bng ngn ng Java 2.
Vi Nscript ta c th:
To cc topology v cu hnh cc node, cc link
Thm v cu hnh cc transport agent (agent truyn ti), UDP, TCP
Lp lch cc s kin m phng
Cc bin ln vt
Nscript c th m rng c, cho php to ra cc th vin ring (th vin cc
i tng) c th dng thm i tng vo mi trng ho.
3.2.1 Download v Install
ng dng Nscript c pht trin trn mi trng Java 2, dng th vin JFC (Swing)
thc thi giao din ngi dng. s dng NScript th cn phi ci t JDK (phin
bn 1.3 hay 1.4). Sau l ci t Nscript (phin bn 1.0.4)
3.2.1.a Download
Hai gi cn download
j2sdk-1_4_2_03-linux-i586.bin
nscript-1.0.4
a ch download
Packet JDK ti a ch http://java.sun.com/j2se/downloads.html
Packet NScript ti a ch http://home.gwu.edu/~ecamposn/software.html
3.2.1.b Install
Bc 1: Ci t mi trng Java 2

Chng 3: Gii thiu cc phn mm dng kt hp vi NS-2


To th mc mi /usr/java, chuyn j2sdk-1_4_2_03-linux-i586.bin vo th mc ny
v thc hin cc lnh sau:
usr/java
chmod +x j2sdk-1_4_2_03-linux-i586-rpm.bin
./j2sdk-1_4_2_03-linux-i586-rpm.bin
rpm -Uv j2sdk-1_4_2_03-linux-i586.rpm
Kim tra li:
/usr/java/j2sdk1.4.2_03/bin/java -version
Bc 2: Ci t NScript
Chuyn vo th mc mun ci t Nscript, v chy lnh:
tar xvf nscript1.0.4
3.2.2 Chy NSCRIPT
Chuyn vo th mc ci t NScript, chy lnh:
nscript-1.0.4
cd bin
java -jar nscript.jar
3.2.3 Cc chc nng ca NSCRIPT trong giao din ho ngi dng

Hnh 8: Bn thnh phn c bn ca Nscript GUI

Chng 3: Gii thiu cc phn mm dng kt hp vi NS-2

Hnh 9: ToolBox biu din th vin mc nh trong NSCRIPT


ng dng NSCRIPT bao gm bn thnh phn chnh v cc iu khin ph. Bn thnh
phn chnh bao gm :
Graphical Editor: Phn ny biu din m hnh kch bn m phng. Khi c
phin lm vic mi, Graphical Editor s c sn mt i tng ns. ns ny th
hin mi trng m phng v cung cp iu khin cc thit lp mi trng,
nh network dynamics, tracing, nam-tracing v thi gian m phng.
Object Browser: l thanh iu khin cu hnh cho bt k i tng no
trong m phng, bng cch ch ra tn, lp, thuc tnh ca i tng. ng thi
c c button UseDefault khi phc gi tr mc nh cho cc tham s ca bt
k i tng no, button Apply p gi tr hin ti cho i tng c sa
i.
Toolbox: l thanh cng c to m phng. Tng thanh con s ch ra cc
i tng templates (i tng mu) sn c, hay cc lp c dng to m
phng. Cc i tng ny c phn loi vo trong cc th vin. Cc th vin
mc nh l Topology, Transport, Application v Ultilities. C th thm cc
i tng t to vo mi trung bng cch dng tu chn Open Library
trong menu File.
Toolbar: l thanh cha cc lnh, nh m v lu script, xut script dng tcl,
m th vin cc i tng m phng.
CH

Chng 3: Gii thiu cc phn mm dng kt hp vi NS-2


C th export (xut) script *.nss (file nscript) sang dng script *.tcl chy
trong ns trc tip.
Khng th c file *.tcl ngc li sang dng file *.nss chy trong mi
trng nscript.
3.3 Topology Generator
Topology Generator (B to m hnh mng) c s dng kt hp vi NS-2 to ra
cc topology mng nhm m phng mt m hnh mng nht nh. Mi mt b to
topology cung cp mt giao din ha ngi dng. K n, user chn cu trc ca
topology nh s node. Khi hon tt thao tc trn, b to m hnh mng s chy sinh
ra m Tcl m t topology s c dng trong NS-2. C bn b to m hnh mng hay
c dng l: GT-ITMS, TIERS, BRITE, INET.
3.3.1 GT-ITMS
B to m hnh mng ny tp trung vo vic ti to li cu hnh trc phn lp ca
topology Internet da trn Transit Stub. Tin hnh theo cc bc sau
u tin, mt th c kt ni ngu nhin c to ra (dng m hnh Waxman)
Tng node trong th biu din mt Entire Transit Domain (min truyn ti
tng th)
Vi tng node trong min Transit mt s th ngu nhin c to biu din
mt Stub Domain, min ny s c gn vo node .
3.3.2 TIERS
Tiers da trn phn cp lp ba mc, tp trung vo vic ti to li s phn bit gia
mng din rng, mng khu vc th, mng cc b c gin xp trong Internet.
3.3.3 BRITE
y l m hnh to mng n cung cp vi ly tha (bc) t do lu n vic cc
node c t nh th no trong mt phng. Nhng thuc tnh ca phng thc lin
kt ni c s dng.
3.3.4 INET
B to mng ny ban u gi s cc mc node theo phn b lut lu tha. Cc bc
ca b to m hnh mng ny nh sau
Hnh thnh cy bao trm dng cc node c mc ln hn 2
Gn cc node vi mc 1 vo cy bao trm
So trng cc mc cha c lm y ca cc node ang tn ti vi nhau
3.4 Trace Data Analyzers
3.4.1 XGRAPH
3.4.1.a Download v Install
Download packet:

Chng 3: Gii thiu cc phn mm dng kt hp vi NS-2


xgraph-12.1.tar
a ch download http://www.isi.edu/nsnam/xgraph/index.html
3.4.1.b Chy XGRAPH
Chy XGRAPH trong Command Line:
$xgraph out.tr geometry 800x400
Chy XGRAPH trong kch bn ns-2:
Proc finish{} {

exec xgraph out.tr geometry 800x400 &
exit }
Cc tu chn khi chy XGRAPH:
xgraph
[-device <ps|X|hpgl|idraw|tgif>]
[-bd border_color] [-bg background_color]
[-fg foreground_color]
[-bar][-brb bar_base][-brw bar_width][-bof bar_offset]
[-stk] [-bw bdr_width] [-db] [-gw grid_size]
[-fitx] [-fity][-gs grid_style] [-lf label_font]
[-lnx] [-lny] [-lw line_width] [-lx x1,x2] [-ly y1,y2]
[-m] [-M] [-nl] [-ng] [-nb] [-p] [-P]
[-rv] [-t title] [-tf title_font] [-tk]
[-scale factor]
[-x x_unit_name] [-y y_unit_name]
[-fmtx format] [-fmty format]
[[-geometry |=]W=H+X+Y]
[[-display] <host>:<disp>.<screen>]
[-Pprinter|-o output_file|-O output_file]
[[-<digit> set_name] [-zg zero_color] [-zw zero_size]
[-a] [-dl <delay>] input_files...
-bar

-stk
-fitx
-fity
-fmtx
-fmty
-scale

V th thanh vi c s base brd, chiu rng width brw v


offset -bof
V th thanh cha ngn xp tp s liu
T l cc thit lp kht vi trc X [0,1]
T l cc thit lp kht vi trc Y [0,1]
In nh dng theo trc X
In nh dng theo trc Y
Chia t l file u ra theo tha s (Scale the output file with factor)

Chng 3: Gii thiu cc phn mm dng kt hp vi NS-2

-O fn
-o fn
-bb
-db
-lnx
-lny
-m -M
-nl
-ng
-nb
-p -P
-rv
-tk
-a
-dl

In file u ra my in (Printer ready output file)


File u ra c m ho (Encapsulated (document) output file)
V khung bao quanh d liu
Bt ch debug (ch g ri)
Trc X tnh theo t l logarit
Trc Y tnh theo t l logarit
nh du cc im mt cch r rng (M thay i theo mu)
Khng v cc dng (v tn x)
Khng vit ch thch
Khng v cc button
nh du im bng du chm. P ngha l chm to.
Hin th mu en trng
V du phn thi thay v v khung li ton b
Khi ng trong ch minh ha
Tr hon minh ha. Mc nh l 2

3.4.1.c Cc chc nng ca XGRAPH trong giao din ha ngi dng


Trong giao din ha ngi dng, XGRAPH rt d dng. C th r chut chn vng
phng to th theo mun.

Hnh 10: Giao din ha ngi dng ca Xgraph


3.4.2 TRACEGRAPH
TraceGraph l b phn tch file trace. Tracegraph chy trong h iu hnh Windows,
Linux, Unix v yu cu h thng c ci t Matlab 6.0 (hoc cc phin bn cao hn).
Tracegraph h tr cc nh dng file trace nh sau:
Wired (c dy)
Satellite (v tinh)
Wireless (khng dy)

Chng 3: Gii thiu cc phn mm dng kt hp vi NS-2


Tracegraph phin bn 2.02 c cc tnh nng sau:
238 th 2D (hai chiu)
12 th 3D (ba chiu)
Cc th v cc thng k v Delay (tr hon), jitter ( rung pha), processing
times (s ln x l), Round Trip Times (s ln kh hi), intermediate nodes (s
node trung gian) v throughput (thng lng)
Cc th v cc thng k cho ton network (mng), link (lin kt) v node
Tt c cc kt qu c th c lu vo file dng text (dng vn bn), cc th
c th lu di dng file jpeg hay tiff.
Thng tin ca trc x,y,z: minimum (gi tr nh nht), mean (gi tr trung bnh),
maximum (gi tr ln nht), standard deviation ( lch tiu chun) v median
(s trung bnh)
Nu cc th lu trong file text th trong file ny c th da vo thng tin 2
hay 3 ct v li th.
X l cc file kch bn phn tch mt cch t ng
3.4.2.a Download v Install
Hai gi cn download
Mglinstaller (packet matlab)
tracegraph202linux.tar
a ch download: http://diament.ists.pwr.wroc.pl/~tracegr/sciagnij.php
Bc 1: Ci t MATLAB
To th mc mi matlab, chuyn packet mglinstaller vo th mc ny v thc hin
gii nn file ny
{ng dn n th mc matlab}/matlab
unzip mglinstaller
Bc 2: Ci t TRACEGRAPH
Chuyn vo th mc mun ci t TRACEGRAPH,
tracegraph202linux.tar vo th mc ny v chy lnh:

copy

packet

tar xvf tracegraph202linux.tar


Chuyn vo th mc tracegraph202 va c gii nn
./install
3.4.2.b Chy TRACEGRAPH
Chuyn vo th mc ci t TRACEGRAPH, chy lnh:
tracegraph202
cd demo
# demo l th mc cha file v d ns-simple.tr
../trgraph ns-simple.tr
3.4.2.c Chc nng ca TRACEGRAPH trong giao din ha ngi dng
ng dng TRACEGRAPH bao gm 3 thnh phn chnh: ca s Tracegraph 2.02, ca
s Network Information (thng tin mng) v ca s Graphs ( th).

Chng 3: Gii thiu cc phn mm dng kt hp vi NS-2

Hnh 11: Giao din ha ngi dng TRACEGRAPH

Chng 3: Gii thiu cc phn mm dng kt hp vi NS-2

Chng 4: OTcl script trong NS-2

CHNG 4

OTCL SCRIPT TRONG NS-2

4.1 V d
V c bn, NS l trnh bin dch OTcl vi cc th vin i tng m phng mng.
Bit lp trnh bng OTcl s gip s dng NS d dng. V d sau s gip chng ta tip
cn vi OTcl. Chy v d ny bng cch g lnh ns ns-simple.tcl tai du nhc h
thng.

Hnh 12 : Topology mng n gin v kch bn m phng


Mng trn bao gm 4 node (n0, n1, n2, n3). Duplex link (lin kt truyn nhn d liu
hai chiu din ra ng thi) gia node n0 v n2, n1 v n2 c bandwidth (bng thng) =
2 Mbps, delay (thi gian tr hon) = 10 ms. Duplex link gia n2 v n3 c bandwidth =
1.7 Mbps v delay = 20 ms. Cc node dng hng i DropTail, max size (kch thuc
ln nht) = 10.
Agent tcp gn vi n0 v agent sink gn vi n3. Agent tcp c th to packet vi
max size = 1 KByte. Agent tcp sink to v gi packet dng ACK cho sender (sender
l agent gi packet i) v gii phng packet nhn c. Agent udp gn vi n1 s kt
ni vi agent null gn vi n3. Agent null ch gii phng packet nhn c. B
khi to lu lng ftp v cbr tng ng c gn vo agent tcp v udp. cbr
c cu hnh to ra packet 1 KByte ti tc 1 Mbps. cbr c thit lp cho
start bt u ti thi im 0.1 giy v kt thc ti thi im 4.5 giy, ftp bt u lc
1.0 giy v kt thc lc 4.0 giy.
#Create a simulator object
set ns [new Simulator]
#Define different colors for data flows (for NAM)

Chng 4: OTcl script trong NS-2


$ns color 1 Blue
$ns color 2 Red
#Open the NAM trace file
set nf [open out.nam w]
$ns namtrace-all $nf
#Define a 'finish' procedure
proc finish {} {
global ns nf
$ns flush-trace
#Close the NAM trace file
close $nf
#Execute NAM on the trace file
exec nam out.nam &
exit 0
}
#Create four nodes
set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]
#Create links between the nodes
$ns duplex-link $n0 $n2 2Mb 10ms DropTail
$ns duplex-link $n1 $n2 2Mb 10ms DropTail
$ns duplex-link $n2 $n3 1.7Mb 20ms DropTail
#Set Queue Size of link (n2-n3) to 10
$ns queue-limit $n2 $n3 10
#Give node position (for NAM)
$ns duplex-link-op $n0 $n2 orient right-down
$ns duplex-link-op $n1 $n2 orient right-up
$ns duplex-link-op $n2 $n3 orient right
#Monitor the queue for link (n2-n3). (for NAM)
$ns duplex-link-op $n2 $n3 queuePos 0.5
#Setup a TCP connection
set tcp [new Agent/TCP]
$tcp set class_ 2
$ns attach-agent $n0 $tcp
set sink [new Agent/TCPSink]
$ns attach-agent $n3 $sink
$ns connect $tcp $sink
$tcp set fid_ 1
#Setup a FTP over TCP connection
set ftp [new Application/FTP]
$ftp attach-agent $tcp
$ftp set type_ FTP

Chng 4: OTcl script trong NS-2


#Setup a UDP connection
set udp [new Agent/UDP]
$ns attach-agent $n1 $udp
set null [new Agent/Null]
$ns attach-agent $n3 $null
$ns connect $udp $null
$udp set fid_ 2
#Setup a CBR over UDP connection
set cbr [new Application/Traffic/CBR]
$cbr attach-agent $udp
$cbr set type_ CBR
$cbr set packet_size_ 1000
$cbr set rate_ 1mb
$cbr set random_ false
#Schedule events
$ns at 0.1 "$cbr
$ns at 1.0 "$ftp
$ns at 4.0 "$ftp
$ns at 4.5 "$cbr

for the CBR and FTP agents


start"
start"
stop"
stop"

#Detach tcp and sink agents (not really necessary)


$ns at 4.5 "$ns detach-agent $n0 $tcp ; $ns detach-agent $n3
$sink"
#Call the finish procedure after 5 seconds of simulation time
$ns at 5.0 "finish"
#Print CBR packet size and interval
puts "CBR packet size = [$cbr set packet_size_]"
puts "CBR interval = [$cbr set interval_]"
#Run the simulation
$ns run

u tin l qu trnh thit lp mng c bn. NS script bt u bng vic to ra mt


instance cho i tng Simulator (i tng m phng).
set ns [new Simulator]: to instance ca Simulator, gn vo bin ns.
Dng ny s thc hin:
o Khi to nh dng packet.
o To B lp lch (mc nh l Calender scheduler - B lp lch Thi gian).
i tng Simulator c cc hm thnh vin thc hin nhng vic sau:
o To i tng ghp nh cc node v cc link
o Connect (ni) cc i tng Thnh phn Mng c to li vi nhau
(v d nh hm attach-agent)
o Gn gi tr cho cc tham s cho cc i tng Thnh phn Mng
(thng l cho cc i tng ghp)

Chng 4: OTcl script trong NS-2


o To cc connection gia cc agent (v d nh to connection gia tcp
v sink)
o Xc nh tuyn ty chn trnh din NAM.
o v.v
Hu ht cc hm thnh vin dng cho mc ch thit lp m phng (c
cp n nh cc hm plumbing) v cho mc ch lp lch. Tuy nhin cng c
nhng hm l cho vic trnh din bng NAM. Cc thc thi cho cc hm thnh
vin ca i tng Simulator c nh v trong file ns-2/tcl/lib.ns-lib.tcl.
$ns color fid color: gn mu cc packet cho lung c m nhn dng
lung fid. Hm thnh vin ny ca i tng Simulator c dng cho vic
trnh din NAM, v khng c tc dng g trn m phng thc t.
$ns namtrace-all file-descriptor: hm thnh vin ny yu cu m
phng lu li cc du vt m phng vo trong nh dng u vo cho NAM.
ng thi c th cung cp tn file m trace (du vt) s c ghi vo bng lnh
$ns flush-trace. Tng t, hm thnh vin trace-all dng lu trace theo
nh tuyn dng chung.
proc finish{}: c gi sau khi m phng kt thc. Trong hm ny cc
tin trnh post-simulation (m phng thng bo) c xc nh.
set n0 [$ns node]: hm thnh vin node khi to mt node. node trong
NS l i tng ghp bao gm address (a ch) v port classifiers (b phn
loi cng). User c th to node bng cc to ring i tng address v port
classifier v ni chng li vi nhau.Tuy nhin cc hm thnh vin ca i tng
Simulator thc hin vic ny rt n gin. Xem file ns-2/tcl/lib/ns-lib.tcl
v ns-2/tcl/lib/ns-node.tcl vit Simulator to node nh th no.

$ns duplex-link node1 node2 bandwidth delay queuetype: to hai simplex link (lin kt n) vi bandwidth v delay xc nh
tuyn, ni hai node xc nh li vi nhau. Trong NS, hng i u ra ca node
c thc thi nh mt phn ca link, v vy user nn xc nh lun queue-type
khi khi to link. Ging nh node, link l i tng ghp, user c th to v ni
cc link vi cc node. M ngun link c tm trong file ns-2/tcl/lib/ns-lib.tcl
v ns-2/tcl/lib/ns-link.tcl. Cn ch l ta hon ton c th chn cc m un
li vo trong thnh phn link m phng mt link hay b mt gi cng nh
chn thm bt k i tng mng no.

$ns queue-linit node1 node2 number: xc nh gii hn hng i


ca hai simplex link kt ni node1 v node2 vi nhau.
$ns duplex-link-op node1 node2 : dng cho NAM.
Qu trnh tip theo l thit lp cc agent nh TCP, UDP; cc ngun traffic nh FTP,
CBR; connect cc agent vi cc node v connect cc ngun traffic vi cc agent.
set tcp [new Agent/TCP]: lnh to ra mt agent TCP, v y cng l
cch to ra bt k agent hay ngun traffic no. Cc agent v cc ngun
traffic cha trong cc i tng c bn thc (khng phi trong cc i tng
kp), hu nh c thc thi trong C++ v c lin kt n OTcl. V vy,
khng c hm thnh vin no ca mt i tng Simulator xc nh l c th
to ra cc instance ca cc i tng ny. to c agent v ngun lu

Chng 4: OTcl script trong NS-2


lng th user cn phi bit tn lp ca cc i tng ny (Agent/TCP,
Agent/TCPSink, Application/FTP v.v..) Xem thm trong file "ns-2/tcl/libs/nsdefault.tcl". File ny cha cc thit lp gi tr tham s cu hnh mc nh cho
cc i tng mng sn c.
$ns attach-agent node agent: hm thnh vin attach-agent gn agent
vo node. Hm ny s gi hm thnh vin attach ca mt node xc nh tuyn,
gn agent vo node . V vy, user c th lm tng t, nh $n0 attach $tcp
chng hn. Ngoi ra, mt agent c th dng hm attach ca n gn mt
ngun traffic vo chnh n.
$ns connect agent1 agent2: hm thit lp lin kt lun l gia hai
agent, bng cch thit lp a ch ch n mng ca nhau v cp a ch cng.
By gi gi s rng tt c cu hnh mng c thc hin. Tip theo l ghi kch bn
m phng. i tng Simulator hin c nhiu hm thnh vin lp lch.
$ns at time string: hm ny yu cu scheduler (b lp lch) lp lch
cho string thc thi vo thi gian time. Trong NS, thc t th ngun traffic
khng truyn d liu tht, nhng n li thng bo cho agent pha di rng n
c d liu cn truyn. Khi agent s to ra packet truyn d liu y i.
Cui cng l chy m phng bng lnh $ns run.
V d trn cho chng ta nhng hnh dung c bn v cch khi to node, link, agent,
trafficTrn c s s gii thiu chi tit cc hot ng ny. ng thi ta s bit
thm v cc dch v c bn trong Internet, tracing, routingNm vng c chng s
gip thc thi c nhng bi m phng hiu qu v li ch nht.
Trong NS-2, mt mng my tnh bao gm cc node c ni vi nhau bi cc link.
Cc event c lp lch truyn dc theo cc link, ngha l truyn gia cc node.
Agent c gn vo node to cc packet khc nhau (nh agent TCP hay agent
UDP). Traffic source (ngun lu lng) chnh l application (ng dng) c gn vo
agent. Hnh sau biu din hai node, mt link gia hai node, mt agent gn vo node 1
v mt application gn vo agent .

Hnh 13: S lin kt cc i tng c bn trong NS


Kch bn OTcl cho lp lch s kin: To b lp lch, Lp lch s kin, Khi ng b
lp lch nh sau:
set ns [new Simulator]
$ns at <time> <event>
$ns run

Chng 4: OTcl script trong NS-2


4.2 Khi to node
Node l i tng ghp t i tng node entry v classifiers. Trong NS c hai loi
node. Node unicast c mt address classifier (b phn loi a ch) lm nhim v nh
tuyn tuyn unicast v mt port classifier (b phn loi cng). Node multicast c thm
mt classifier (b phn loi) lm nhim v phn loi cc packet multicast vi cc
packet unicast v multicast classifier (b phn loi multicast) nh tuyn multicast.
Trong NS, cc node unicast l cc node mc nh. to node multicast user phi
thng bo tng minh trong kch bn OTcl u vo rng tt c cc node s c to l
node multicast, ngay sau khi user to ra i tng lp lch.

Hnh 14: Node unicast v node multicast


i tng m phng node c dng khi to mt node. Hai node c to vi
iu khin n0, n1.
set n0 [$ns node]
set n1 [$ns node]
to lin tc 5 node, ta dng cch sau:
for {set i 0} {$i<5} {incr i} {
Set n($i) [$ns node]
}
Thit lp mu cho node bng lnh:
$n0 color <colour>
Vi <colour> l black (mu en), red (), blue (xanh dng), seaGreen (xanh l).
4.3 Khi to link
Link cng l mt i tng ghp trong NS. Khi user to link bng cch dng hm
thnh vin duplex-link ca i tng Simulator th s c hai simplex link hai chiu
c to ra.

Chng 4: OTcl script trong NS-2


Mt hng i u ra ca node c thc thi nh mt phn ca i tng simplex link.
Cc packet ra khi hng i s c chuyn n i tng Delay thc thi tr hon
lin kt. Cc packet b drop (b b) khi hng i s c gi n Agent/Null v b
hu ti y. Cui cng, i tng Thi gian tn ti TTL tnh gi tr TTL cho tng
packet v cp nht gi tr TTL mi.

Hnh 15: Link


4.3.1 Simplex-link
To link mt chiu gia hai node bng lnh:
$ns simplex-link $n0 $n1 <bandwidth> <delay> <queue_type>
4.3.2 Duplex-link
V link hai chiu gia hai node bng lnh:
$ns duplex-link $n0 $n1 <bandwidth> <delay> <queue_type>
Gi tr bandwidth (bng thng) v delay (tr hon) tng ng c th l 1Mb v 10ms.
NS-2 h tr nhiu gi tr queue_type (kiu hng i) nh RED, Drop Tail
4.4 Khi to Network Agents
Hai lp Agent v lp Application s to nn traffic trong NS-2. Mi node trong mng
mun gi v nhn traffic th phi c agent gn vo n. Trn nh ca agent chy
application. Chnh application s quyt nh loi traffic c m phng.
C hai loi agent trong NS-2 l agent UDP v agent TCP.
4.4.1 UDP
set
set
$ns
$ns
$ns

udp0 [new Agent/UDP]


null [new Agent/Null]
attach-agent $n0 $udp0
attach-agent $n1 $null
connect $udp0 $null

Chng 4: OTcl script trong NS-2


on m trn to agent UDP v gn vo node n0 bng th tc attach-agent. To ra
agent Null, hot ng nh mt traffic sink v gn vo node n1. Hai agent c ni li
bng phng thc connect.
Loss Monitor (Gim st mt mt) c th gim st cc packet ang c truyn, cng
nh cc packet b mt. Mt th tc c th c lp lch kim tra xoay vng
LossMonitor sau khong T giy v lu li thng tin throughput (thng lng).
set lossMonitor [new Agent/LossMonitor]
$ns connect $udp0 $lossMonitor
4.4.2 TCP
set
set
$ns
$ns
$ns

tcp [new Agent/TCP]


tcp_sink [new Agent/TCPSink]
attach-agent $n0 $tcp
attach-agent $n1 $tcp_sink
connect $tcp $tcp_sink

on m trn to agent TCP v gn vo node tcp dng th tc attach-agent. Agent


TCPSink hot ng nh mt TCP sink v gn vo node tcp_sink. Hai agent ni vi
nhau bng phng thc connect. Cc loi TCP c sn trong NS-2 l: TCP, TCP/Reno,
TCP/Vegas, TCP/Sack1, TCP/Fact, TCPSink.
4.5 Cc loi traffic
C 4 loi traffic application (ng dng lu lng) c th gn vo agent UDP m
phng lu lng mng: CBR, Exponential, Pareto, TrafficTrace
4.5.1 Tc bit c nh CBR
i tng traffic CBR to traffic theo tc nh trc. Packet c kch c nht
nh. M OTcl thc thi ngun traffic CBR nh sau:
set my_cbr [new Application/Traffic/CBR]
$my_cbr attach_agent $udp
$ns at <time> $my_cbr start
Cc tham s:

start: bt u gi packet theo cc tham s cu hnh


stop: ngng gi packet
PacketSize_: c c nh ca packet c to, v d 48
rate_: tc truyn, v d 64kb
interval_: (tu chn) khong cch thi gian gia cc gi, v d 0.05
random_: c bo nhiu trong cc ln xut pht, mc nh l tt, 1 l bt
maxpkts_: s gi ln nht c gi, v d 1000

Chng 4: OTcl script trong NS-2


4.5.2 Traffic thay i theo phn b m Exponential
Cc packet c kch c c nh. Th tc ny l mt phn phi tt/bt. Trong cc giai
on bt (on), packet c gi tc c nh. Trong cc giai on tt (off), khng
c packet no c gi.
M Tcl thc thi ngun traffic CBR trong m phng nh sau:
set my_exp [new Application/Traffic/Exponential]
Cc tham s cu hnh:

PacketSize_: c c nh ca packet c to, v d 210


burst_time_: thi gian bt trung bnh cho b khi to, v d 500ms
idle_time_: thi gian tt trung bnh cho b khi to, v d 500ms
rate_: tc gi sut thi gian bt, v d 100kb

4.5.3 Traffic thay i theo phn b Pareto


Dng phn b Pareto bt/tt to cc traffic tp hp, cc traffic c ph thuc di di.
M OTcl thc thi ngun traffic Pareto trong m phng nh sau:
set my_pareto [new Application/Traffic/Pareto]
Cc tham s:

PacketSize_: c c nh ca packet c to, v d 210


burst_time_: thi gian bt trung bnh cho b khi to, v d 500ms
idle_time_: thi gian tt trung bnh cho b khi to, v d 500ms
rate_: tc gi sut thi gian bt, v d 100kb
shape_: tham s hnh dng cho phn b Pareto, v d 1.5

4.5.4 TrafficTrace
TrafficTrace l traffic c to da trn file trace. File nh phn phi c 2x32 trng
trong th t byte mng.Trng u tin l khong thi gian cho n khi packet d tip
c to, tnh bng ms. Trng th hai l chiu di ca packet k tip, tnh bng byte.
Th tc filename ca lp Tracefile gn file trace vo i tng Tracefile.
M OTcl:
set t_file [new Tracefile]
$t_file filename <file>
set src [new Application/Traffic/Trace]
$src attach-tracefile $t_file
Trong $t_file l file nh phn v hai trng trong trong file cha cc ln interpackets, tnh bng mili giy v c packet, tnh bng byte.

Chng 4: OTcl script trong NS-2


4.6 Cc dch v c bn trong Internet
Hai application m phng gi traffic trn nh i tng TCP l: Application/FTP v
Application/Telnet
4.6.1 Giao thc truyn tp tin FTP
M OTcl dng FTP trong m phng l:
set ftp [new Application/FTP]
$ftp attach-agent $tcp
$ns at <time> $ftp start
Cc tham s:

attach-agent: gn Application/FTP vo mt agent


start: khi ng Application/FTP truyn d liu
stop: ngng truyn d liu
produre n: n l b m s packet c truyn
producemore n: n l gi tr s packet va mi tng c truyn
send n: tng t nh produremore, nhng gi n byte thay v n packet

4.6.2 Telnet
M OTcl dng Telnet trong m phng:
set telnet [new Application/Telnet]
$telnet attach-agent $tcp
Cc tham s cu hnh:
interval_: thi gian n ni (inter-arrival) trung bnh ca packet c to bi
i tng Telnet
if (interval_==0) S ln n ni theo phn b tcplib
if (interval_!=0) S ln n ni theo phn b m, gi tr trung bnh c gn
bng gi tr interval_
4.6.3 Giao thc truyn siu vn bn HTTP
M OTcl thc thi HTTP (server (ch) v client (khch)) trong m phng:
ng dng HTTP Node client:
set client [new HTTP/Client $ns $node0]
$client connect $server
ng dng HTTP Node server:
set server [new HTTP/Server $ns $node0]

Chng 4: OTcl script trong NS-2


$server set-page-generator $pgp
4.7 Tracing
Trong NS, cc hot ng mng c trace (lu du) trong cc simplex link. Nu m
phng c ch trc tip n cc hot ng trace (bng lnh $ns trace-all
file hay $ns namtrace-all file) th cc link s c cc i tng trace c
chn thm vo. User cng c th to i tng trace vi loi xc nh lu vt mng
t ngun n ch bng lnh create-trace {type file src dst}.
Khi tng i tng c chn thm i tng trace (EnqT, DeqT, DrpT, RecvT) nhn
packet, n s ghi vo file trace xc nh m khng tiu tn thi gian m phng. V
truyn packet n i tng mng k tip.

Hnh 16: Chn i tng trace


Trace file c tt c cc thng tin thc hin minh ha - va trn s biu din
mng tnh va trn cc s kin ng nh s kin packet arrival (gi n), packet
departure (gi xut pht), packet drop (hu b gi), v link failure (hng lin kt).
M OTcl thc thi Tracing trong m phng:
trace packet trn tt c cc link:
set trace_file [open out.tr w]
$ns trace-all $trace_file
$ns flush-trace
close $trace_file
File trace chun trong NS-2 v nh dng ca file ny nh sau:

o
o
o
o
o
o

event: thao tc c thc hin trong m phng


time: thi gian xut hin s kin
from node: node 1 l node c trace
to node: node 2 l node c trace
pkt type: loi packet
pkt size: kch c packet

Chng 4: OTcl script trong NS-2


o
o
o
o
o
o

flags: c
fid: m lung
src addr: a ch node ngun
dst addr: a ch node ch
seq num: s trnh t
pkt id: m packet duy nht

Chng hn nh:

Thng k ct u tin (ct ch ra hot ng ca hng i) c: 5 thao tc thm vo hng


i (+), 4 thao tc ly ra khi hng i (-), 4 s kin nhn (r) v 1 s kin hu
packet (d).
trace mt link xc nh
ns trace-queue $node0 $node1 $trace_file
khi ng trace chnh bin tracing trong NS-2
set cwnd_chan_ [open all.cwnd w]
$tcp trace cwnd_chan_ # tcp tracing chnh bien cwnd_chan_ cua chnh no
$tcp attach $cwnd_chan_
Bin sstthresh ca bin $tcp c trace bi bin $tracer chung
set tracer [new Trace/Var]
$tcp trace ssthresh_ $tracer
4.8 Routing
Sau khi xc nh xong loi node, user c th chn giao thc nh tuyn nu khng
mun dng loi nh tuyn mc nh.

Chng 4: OTcl script trong NS-2


4.8.1 Unicast
NS-2 thc thi ba chnh sch nh tuyn: static routing (nh tuyn tnh), session
routing (nh tuyn phin) v DV routing (nh tuyn vc t khong cch). Dng
phng thc rtproto trong lp Simulator xc nh chnh sch nh tuyn c dng.
o $ns rtproto type
o type: Static, Session, DV, cost, multicast-path
$ns rttproto Static
$ns rttproto Session
$ns rttproto DV
Ngoi ra, rtmodel-at cung cp kh nng up (hot ng) hay down (ngng hot ng)
link mt cch t ng.
$ns rtmodel-at 1.0 down $node1 $node2
$ns rtmodel-at 2.0 up $node1 $node2
Dng phn b m cho vic to cc link m rng m hnh.
$ns rtmodel Exponential 0.7 2.0 2.0 down $node1 $node0
4.8.2 Multicast
o $ns multicast (ngay sau khi thit lp $ns [new Scheduler])
o $ns mrtproto type
o type: CtrMcast, DM, ST, BST.

Chng 5: Cc v d c bn

CHNG 5

CC V D C BN

Chng ny gii thiu ba kch bn OTcl. C th son cc kch bn ny bng b son


tho vn bn chun v lu vi phn m rng l tcl. Nu ns c ci t ng v cc
bin PATH c thit lp th ta ch cn m ca s dng lnh, n ng th mc
cha kch bn OTcl v g lnh: ns scriptname.tcl
Dng lnh ny c thc hin s to ra file trace da vo yu cu trong kch bn Tcl.
File trace c th dng phn tch v kim tra dng cng c phn tch m phng nh
NAM hay TRACEGRAPH.
5.1 Kch bn OTcl th nht
Kch bn OTcl ny s thc hin nhng vic sau:
To hai node, thm duplex-link gia hai node vi cc tham s cu hnh thch
hp
Thm agent UDP v agent UDPsink tng ng gn vo node 0 v 1
Thm ng dng lu lng CBR vo agent UDP
Kt ni cc agent v chy m phng trong 5 giy
Gi NAM minh ho hot ng ca topology ny.
# Create a simulator object
set ns [new Simulator]
# Open the nam trace file, associated with nf, log
everything as nam output in nf
set nf [open out.nam w]
$ns namtrace-all $nf
# Define a 'finish' procedure
proc finish {} {
global ns nf
$ns flush-trace
#Close the trace file
close $nf
#Execute nam on the trace file
exec nam out.nam &
exit 0
}
#Create two nodes
set n0 [$ns node]
set n1 [$ns node]
#Create a duplex link between the nodes
$ns duplex-link $n0 $n1 1Mb 10ms DropTail
#Create a UDP agent and attach it to node n0

Chng 5: Cc v d c bn
set udp0 [new Agent/UDP]
$ns attach-agent $n0 $udp0
# Create a CBR traffic source and attach it to udp0
set cbr0 [new Application/Traffic/CBR]
$cbr0 set packetSize_ 500
$cbr0 set interval_ 0.1
$cbr0 attach-agent $udp0
#Create a Null agent(a traffic sink), attach it to node n1
set null0 [new Agent/Null]
$ns attach-agent $n1 $null0
#Connect the traffic source with the traffic sink
$ns connect $udp0 $null0
# Schedule events for the CBR agent
$ns at 0.5 "$cbr0 start"
$ns at 4.5 "$cbr0 stop"
#Call the finish procedure after 5 seconds of simulation
time
$ns at 5.0 "finish"
# Run the simulation
$ns run

Kt qu ca kch bn trn:

Hnh 17: Minh ha NAM cho kch bn OTcl th nht

Chng 5: Cc v d c bn
5.2 Kch bn OTcl th hai
Kch bn ny to bn loi traffic ca internet. Bn th tc sau miu t cc loi b khi
to traffic sn c. Hai l s node cn m phng cc dch v ny.
#Create a simulator object
set ns [new Simulator]
#Open a nam trace file
set nf [open out.nam w]
$ns namtrace-all $nf
#Define a 'finish' procedure
proc finish {} {
global ns nf
$ns flush-trace
close $nf
exec nam out.nam &
exit 0
}
set n0 [$ns node]
set n1 [$ns node]
#Connect the nodes with two links
$ns duplex-link $n0 $n1 1Mb 10ms DropTail
proc www_traffic { node0 node1 } {
global ns
set www_UDP_agent [new Agent/UDP]
set www_UDP_sink [new Agent/Null]
$ns attach-agent $node0 $www_UDP_agent
$ns attach-agent $node1 $www_UDP_sink
$ns connect $www_UDP_agent $www_UDP_sink
set www_CBR_source [new Application/Traffic/CBR]
$www_CBR_source attach-agent $www_UDP_agent
$www_CBR_source set packetSize_ 48
$www_CBR_source set interval_ 5000ms
$ns at 0.0 "$www_CBR_source start"
}
proc smtp_traffic {node0 node1 } {
global ns
set smtp_UDP_agent [new Agent/UDP]
set smtp_UDP_sink [new Agent/UDP]
$ns attach-agent $node0 $smtp_UDP_agent
$ns attach-agent $node1 $smtp_UDP_sink
$ns connect $smtp_UDP_agent $smtp_UDP_sink
set smtp_UDP_source [new Application/Traffic/Exponential]
$smtp_UDP_source attach-agent $smtp_UDP_agent
$smtp_UDP_source set packetSize_ 210
$smtp_UDP_source set burst_time_ 50ms
$smtp_UDP_source set idle_time_ 50ms

Chng 5: Cc v d c bn
$smtp_UDP_source set rate_ 100k
$ns at 0.0 "$smtp_UDP_source start"
}
proc ftp_traffic {node0 node1 } {
global ns
set ftp_TCP_agent [new Agent/TCP]
set ftp_TCP_sink [new Agent/TCPSink]
$ns attach-agent $node0 $ftp_TCP_agent
$ns attach-agent $node1 $ftp_TCP_sink
$ns connect $ftp_TCP_agent $ftp_TCP_sink
set ftp_FTP_source [new Application/FTP]
$ftp_FTP_source attach-agent $ftp_TCP_agent
#$ns at 0.0 "$ftp_FTP_source start"
#$ns at 0.1 "$ftp_FTP_source send 1"
$ns at 0.1 "$ftp_FTP_source produce 3"
$ns at 0.9 "$ftp_FTP_source stop"
$ns at 1.2 "$ftp_FTP_source producemore 6"
#$ns at 2.0 "finish"
}
proc telnet_traffic {node0 node1 } {
global ns
set telnet_TCP_agent [new Agent/TCP]
set telnet_TCP_sink [new Agent/TCPSink]
$ns attach-agent $node0 $telnet_TCP_agent
$ns attach-agent $node1 $telnet_TCP_sink
$ns connect $telnet_TCP_agent $telnet_TCP_sink
set telnet_TELNET_source [new Application/Telnet]
$telnet_TELNET_source attach-agent $telnet_TCP_agent
$telnet_TELNET_source set interval_ 20
$ns at 0.0 "$telnet_TELNET_source start"
$ns at 0.8 "$telnet_TELNET_source stop"
}
proc generate_traffic {node0 node1 } {
puts "function calls in here, Choose one at a time per
simulation to use"
#smtp_traffic $node0 $node1
#telnet_traffic $node0 $node1
#www_traffic $node0 $node1
#ftp_traffic $node0 $node1
}
generate_traffic $n0 $n1
$ns at 2.0 "finish"
$ns run

Kt qu ca m phng:

Chng 5: Cc v d c bn

Hnh 18: M phng NAM ca kch bn OTcl th hai


5.3 Kch bn Otcl th ba
Kch bn OTcl th ba thc hin
To sau node, hai node gn vo agent Ping, hai node gn vo agent UDP
Nhng node ny s gi d liu n node 3 thng qua node 2
V bng thng ca link gia hai node 2 v 3 khng p ng nn s c mt
hng i c packet b hu
# Create a simulator object
set ns [new Simulator]
# Open a trace file
set nf [open simu.tr w]
$ns namtrace-all $nf
# Define different colors for data flows
$ns color 1 Blue
$ns color 2 Red
# Open the nam trace file
set nf [open out.nam w]

Chng 5: Cc v d c bn
$ns namtrace-all $nf
# Define a 'finish' procedure
proc finish {} {
global ns nf
$ns flush-trace
#Close the trace file
close $nf
#Execute nam on the trace file
exec nam out.nam &
exit 0
}
# Create four nodes
set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]
# Pinging Nodes
set n4 [$ns node]
set n5 [$ns node]
set p0 [new Agent/Ping]
$ns attach-agent $n4 $p0
set p1 [new Agent/Ping]
$ns attach-agent $n5 $p1
set p2 [new Agent/Ping]
$ns attach-agent $n3 $p2
set p3 [new Agent/Ping]
$ns attach-agent $n3 $p3
#Connect the two agents
$ns connect $p0 $p2
#Connect the two agents
$ns connect $p1 $p3
$n2 color red
$n3 color blue
$n4 color SeaGreen
$n5 color SeaGreen
# Define a 'recv' function for the class 'Agent/Ping'
Agent/Ping instproc recv {from rtt} {
$self instvar node_
puts "node [$node_ id] received ping answer from \
$from with round-trip-time $rtt ms."
}
#Create links between the nodes
$ns duplex-link $n0 $n2 1Mb 10ms DropTail
$ns duplex-link $n1 $n2 1Mb 10ms DropTail
$ns duplex-link $n3 $n2 1Mb 10ms SFQ
$ns duplex-link $n4 $n2 1Mb 10ms DropTail
$ns duplex-link $n5 $n2 1Mb 10ms DropTail
$ns duplex-link-op $n0 $n2 orient right-down

Chng 5: Cc v d c bn
$ns duplex-link-op $n1 $n2 orient right-up
$ns duplex-link-op $n2 $n3 orient right
# Monitor the queue for the link between node 2 and node 3
$ns duplex-link-op $n2 $n3 queuePos 0.5
# Create a UDP agent and attach it to node n0
set udp0 [new Agent/UDP]
$udp0 set class_ 1
$ns attach-agent $n0 $udp0
# Create a CBR traffic source and attach it to udp0
set cbr0 [new Application/Traffic/CBR]
$cbr0 set packetSize_ 500
$cbr0 set interval_ 0.005
$cbr0 attach-agent $udp0
# Create a UDP agent and attach it to node n1
set udp1 [new Agent/UDP]
$udp1 set class_ 2
$ns attach-agent $n1 $udp1
# Create a CBR traffic source and attach it to udp1
set cbr1 [new Application/Traffic/CBR]
$cbr1 set packetSize_ 500
$cbr1 set interval_ 0.005
$cbr1 attach-agent $udp1
#Create a Null agent (a traffic sink) and attach it to node
n3
set null0 [new Agent/Null]
$ns attach-agent $n3 $null0
#Connect the traffic sources with the traffic sink
$ns connect $udp0 $null0
$ns connect $udp1 $null0
#Schedule events for the CBR agents
$ns at 0.5 "$cbr0 start"
$ns at 0.6 "$p0 send"
$ns at 0.8 "$p0 send"
$ns at 0.9 "$p0 send"
$ns at 0.6 "$p1 send"
$ns at 0.8 "$p1 send"
$ns at 0.9 "$p1 send"
$ns at 1.0 "$cbr1 start"
$ns at 4.0 "$cbr1 stop"
$ns at 4.5 "$cbr0 stop"
#Call the finish proc. after 5 seconds of simulation time
$ns at 5.0 "finish"
#Run the simulation
$ns run

Kt qu ca m phng:

Chng 5: Cc v d c bn

Hnh 19: M phng NAM ca kch bn OTcl th ba

Thut ng vit tt

THUT NG VIT TT
CBR

Constant Bit Rate

Tc bit c nh

CBQ

Class Based Queueing

Hng i da trn lp

FTP

File Transfer Protocol

Giao thc truyn tp tin

HBT

High priority Best effort Traffic

Lu lng n lc ti a c u tin
cao nht

HTTP

Hypertext Transfer Protocol

Giao thc truyn ti siu vn bn

ID

Identifier

M nhn dng

IEEE

Institute of Electrical and

Vin k thut in in t

Electronic Engineers
IP

Internet Protocol

Giao thc internet

LAN

Local Area Network

Mng cc b

MAC

Media Access Control

iu khin truy cp ng truyn

MMS

MPLS Network Simulation

M phng mng MPLS

MPLS

Multicast-Protocol Label Switching Chuyn mch nhn a giao thc

NAM

Network Animator

Minh ha mng

NFS

Network FileSystems

Cc tp tin h thng mng

NS

Network Simulator

M phng mng

OSPF

Open Shortest Path First

ng dn ngn nht m u tin

RED

Random Early Detection

Hng i D sm ngu nhin

RT

Realtime Traffic

Lu lng thi gian thc

SBT

Simple Best Effort Traffic

Lu lng n lc ti a n gin

SPF

Shortest Path First

ng dn ngn nht u tin

ST

Signaling Traffic

Lu lng tn hiu

TCP

Transmission Control Protocol

Giao thc iu khin truyn ti

TTL

Time-To-Live

Thi gian tn ti

UDP

User Datagram Protocol

Giao thc gi ngi dng

VBR

Variable Bit Rate

Tc bit thay i c

WAN

Wide Area Network

Mng din rng

WLAN

Wireless Local Area Network

Mng cc b khng dy

WWW

World Wide Web

Ti liu tham kho

TI LIU THAM KHO


[1] Kavin Fall, Kannan Varadhan. The ns Manual. The VINT Project, A
Collaboration between researchers at UC Berkeley, LBL, USC/ISI, and Xerox
PARC. December 13, 2003. http://www.isi.edu/nsnam/ns/
[2] Paul Meeneghan and Declan Delaney. An Introduction to NS, Nam and OTcl
Scripting. National University of Ireland, Maynooth, Co. Kildare, Ireland
DEPARTMENT OF COMPUTER SCIENCE. April 2004

[3] Enrique Campos-Nanez. Nscript Version 1.0a Users Manual. Department of


Systems Engineering, University of Virginia. March 13, 2001
[4] Eitan Altman and Tania Jimnez. NS Simulator for beginers. Univ de Los
Andes, Mrida, Venezuela and ESSI, Sophia-Antipolis, France. December 4, 2003.
[5]

Jae Chung and Mark Claypool. NS by example. http://www.nile.wpi.edu/ns

[6] Peng Zhang, Raimo Kantola, Zhansong Ma. Design and Implement of a new
routing Simulator. Laboratory of Telecommunication Technology, Helsinki
University of Technology, Findland.
[7] Xipeng Xiao and Linoel M. Ni. Internet QoS: A big Picture. Departurement
of Computer Science, 3115 Engineering Building, Michigan State University.
[8]

Johanna Antila. TCP Performace Simulations Using Ns2.

[9] Carey Williamson. Internet Traffic Measurement. Department of Computer


Science, University of Calgary. November 24, 2001.
[10] http://www.Tcl.tk TCL homepage
[11] http://www.isi.edu/nsnam/nam/ NAM Network Animator
[12] http://isi.edu/nsnam/xgraph XGRAPH homepage
[13] http://www.geocities.com/tracegraph/ TRACEGRAPH homepage
[14] http://home.gwu.edu/~ecamposn/software.html NSCRIPT NS-2 scripting tool
[15] http://www.isi.edu/nsnam/ns/tutorial/index.html
Tutorial for the Network Simulation ns

Marc

Greis

You might also like