You are on page 1of 69

CHNG 1

TNG QUAN

NS-2 (Network Simulation) chng trnh phn mm dng hng i tng c s dng m phng li cc s kin xy ra trong h thngAnalysis a ra mng t cc yu cu, c tnh vn hnh ca h thng mng thc. NS c s dng m phng mng cc b LAN (Local Area Network) v mng din rng WAN (Wide Simulation Otcl Network). H m phng NS-2 c pht trin trng i hc Berkeylay Area Script Results cng tc vi mt s c quan khc, by gi l mt phn trong d n VINT (Virtual Simulation Internet Testbed) ca phng th nghim quc gia Lawrence Berkeley. Program m phng NS c vit trn ngn ng C++ v Otcl. C++ dng x l H d liu, cc thao thc v gi tin, cn Otcl dng nh dng cu hnh m phng, NAM iu khin m phng. NS-2 l phn mm m ngun m c sn cho c nn Windows Network Animator 32 v Linux, 1.2 1.1 Tng quan v h m phng. Vi tc giao tip ngy cng cao trn mng nh hin nay th vic tng tc truyn tin, lng thng tin c th c chuyn ti nhanh nht m khng xy ra tnh trng tc nghn, v khi c s c xy ra th phng php gii quyt no ph hp l mt vn rt cn thit. iu ny i hi phi xy dng cc h thng mt cch tinh vi hn p ng nhu cu x l v chuyn ti thng tin. Trong h thng, thng tin c chuyn ti mt cch trong sut vi ngi s dng. V vy chng ta c th s dng NS m phng li cc s kin xy ra trong h thng, t cho bit cch thc vn hnh ca mt h thng thc ra sao v c kh dng khng. H m phng NS thc thi trn giao thc mng TCP hoc UDP vi cc dch v truyn tin nh FTP, Telnet, CBR, Web. Thit k cc c ch qun l hng i ti b nh tuyn nh DropTail, Red. Cc thut ton thng c ci t l Dijkstra, thut ton vector khong, thut ton trng thi lin kt. Hnh 1.1 di y m t m hnh tng qut ca h m phng NS. Otcl: Tcl interpreter With OO extention

Hnh 1.1: M hnh tng qut ca NS. NS Simulation Library Mt chng trnh trong NS c xy dng trn ngn ng hng i tng Event Scheduler Objects vi Tcl(Otcl). Cc i tng c tp Network Component Objects hp thnh cc modul v c lu tr Network Setup Helping trong th vin. V vy thc hin Modules(Plumping m phng trn NS chng ta son Modules) tho on chng trnh trn Otcl. Trnh bin dch s bin dch chng trnh ny v a ra kt qu m phng c lu di dng file NAM. Bn li ch ln nht ca NS-2 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 1.2 Ci t NS-2 v NAM NS-2 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). 1.2.1 Ci t bng duy nht mt gi phn mm trn mi trng Windows. Gi s chng ta c file ci t y NS_setup B1: Gii nn file NS_setup Khi gii nn c : 01 th mc: ftp%3a%2f%2fftp.nctu.edu.tw%2fWindows%2fcygwin Cc tp tin: setup ns-allinone-2.30.tar BASHRC B2: Chy file setup Qu trnh chy file ny c nhng bc chn sau: Chn Install local from Directory trong hp thoi Chose Install Type. Chn th mc mc nhin l C:\Cygwin v chn All User v Unix/Binary trong hp thoi Chose Installation Directory. Hp thoi Select local Package Directory ch nh gi l ng dn n th mc ftp%3a%2f%2fftp.nctu.edu.tw%2fWindows%2fcygwin. Trong hp thoi Select Package chn mc Currence v chn All sao cho hin th Install. Chng trnh s t ng ci t cho n khi hon thnh. Nn chn Creat Icon on Desktop. Trn nn Desktop s c biu tng ca Cygwin. B3: Ci t NS-2. Bc ny gm cc bc nh sau: *b1: Double Click (Chy file Cygwin) trn biu tng Cygwin trn Desktop (Bc ny phi thc hin. Khi file Cygwin chy ln du s khi to th mc c tn l tn ca ngi s dng trong th mc C:\Cygwin\home\<tn ngi s dng>(V d y l tvchinh). Nu khng chy file Cygwin th khng c th mc ny. Mn hnh lm vic ging mn hnh DOS. *b2: X nn file ns-allinone-2.30.tar v chp th mc ns-allinone-2.30 vo th mc C:\Cygwin\home\<tn ngi s dng>(V d y l tvchinh). *b3: Tr li mn hnh ca Cygwin (ging mn hnh DOS), ti du mi c dng <ten ngi s dng@tenmay> V d tvchinh@maychinh g lnh CD ns-allinone-2.30 vo th mc ns-allinone-2.30 ti du mi g lnh: ./install chng trnh se thc hin ci t NS-2 cho n khi hon thnh *b4: Chp tp tin BASHRC (khi bn x nn file ns-allinone-2.20.tar) c c vo th mc C:\Cygwin\home\<tn ngi s dng> v ng ghi . Nu khng bn m file ny (vi chng trnh Wordpad) trong th mc C:\Cygwin\home\<tn ngi s dng> v sa li nh sau: export NS_HOME=/cygdrive/c/cygwin/home/vttu/ns-allinone-2.30 export PATH=$NS_HOME/tcl8.4.13/unix:$NS_HOME/tk8.4.13/unix: $NS_HOME/bin:$PATH

export LD_LIBRARY_PATH=$NS_HOME/tcl8.4.13/unix: $NS_HOME/tk8.4.13/unix:$NS_HOME/otcl-1.12:$NS_HOME/lib: $LD_LIBRARY_PATH export TCL_LIBRARY=$NS_HOME/tcl8.4.13/library n y coi nh ci t xong. S dng: Khi ng li Cygwin Ti du mi g lnh: startxwin.bat xut hin mn hnh th 2 (nn en mu vng) Ti mn hnh th 2 thc hin cc lnh ca NS V d chy file Nam th g lnh: Nam S xut hin c s thao tc. Mun chy cc file *.ns th g lnh: ns <tn tp tin ns> (c y phn m rng) Mun chy cc file *.tcl th g lnh: ns <tn tp tin ns> (c y phn m rng) Tt nhin phi c cc tp tin cn chy. Neu cai voi 2.29. Tuong tu nhu 2.30 nhung thay lai la 2.29 o nhung cho 2.30 o tren va tp tin BASHRC nhu sau: export NS_HOME=/cygdrive/c/cygwin/home/tvchinh/ns-allinone-2.29 export PATH=$NS_HOME/bin:$NS_HOME/tcl8.4.11/unix: $NS_HOME/tk8.4.11/unix:$PATH export LD_LIBRARY_PATH=$NS_HOME/tcl8.4.11/unix: $NS_HOME/tk8.4.11/unix:$NS_HOME/otcl-1.11:$NS_HOME/lib: $LD_LIBRARY_PATH export TCL_LIBRARY=$NS_HOME/tcl8.4.11/library 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: a 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 Ci tl 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 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 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-tclver=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-tclver=8.4.5 Ns-allinone Ns-allinone --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 tclbox tkbox otcl tclcl ns-2 nam-1 tclbox tkbox otcl tclcl ns-2 nam-1 ./configure --with-tcl={ng dn n th mc tcl8.4.5} --with-tclver=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 CH Xem li cc ch trnh by trong phn 1.2.1 2.34

4.2 Cu trc th mc ca NS. Hnh 1.2 di y hin th mt phn cu trc cy th mc ca h m phng NS. Gi s th mc hin thi c s dng ci dt NS l Ns-allinone.

. C++ source tcl tcl Example ...... ex ex test test Validation test lib lib Otcl source

........

Otcl code

Hnh 1.2 Cu trc th mc ca NS. Cu trc th mc ca NS theo cu trc phn lp. Th mc NS-allinone l th mc gc. Ngoi th mc ny cn c cc th mc con, ns-2 l ni t tt c cc s thc thi ca m phng, phn ny cho php test mt chng trnh, nhng v d v Otcl, th vin ca h m phng. Th mc lib l th mc con ca tcl cha ng m ngun ca Otcl v mt thnh phn quan trng l s thc thi qu trnh m phng (nh Agent, Node, Link, Packet, Address, Routing...). Di y hin th cc file trong th mc "ns2/tcl/lib". ns-lib.tcl: y l lp m phng, v nhng hm thnh vin c nh ngha. Ns-default.tcl: Mc nh tham s cu hnh cho cc thnh phn mng c thc thi trong trong C++, v ta c th dng hm bin(C++ _variable_name, Otcl_variable_name) lin kt cc bin trong C++ v Otcl. Ns-packet.tcl: nh dng phn Header ca gi tin . Hai th mc con khc ca Tcl c th hu ch khi chng ta mun thit k v thc thi m phng l ex v test. Hai th mc ny, mt cha ng nhng v d v chng trnh m phng v mt cha ng chng trnh v kt qu m chng ta m phng. 4.3 Lch trnh ca s kin. Mt thnh phn quan trng trong NS l lch trnh ca s kin. Mt lch trnh ca s kin trong NS n lu li thi gian m phng v nhng s kin xy ra trong hng i. Hnh 1.3 di y m t i tng s dng lch trnh s kin

Data Path time_uid_next_handler _ Data Path head Event Scheduler handler () Data Path Network Object handler () Net work Object

time_uid_next_ha ndler_

Hnh 1.3: M hnh lch trnh ca s kin. Trong NS c hai phng thc thc hin lch trnh ca s kin l Real-Time (thi gian thc) v Non-Real-Time (thi gian o). Vi lch trnh s kin ca NonReal-Time. C ba s thc thi (List, Heap, Calendar) c nh ngha sn. V hnh thc chng ging nhau, iu ny bi tnh tng thch ca n. Lch trnh s kin Real-Time thng c mc nh, y l thi gian m phng cho mt mng thc t. Di y l mt s cu lnh dng xc nh lch trnh ca s kin: ... Set ns [New Simulator] $ ns use-scheduler Heap ... 4.4 Cc thnh phn ca NS. Hnh 3-4 di y m t mt phn cu trc phn lp ca NS.

TclObject TclObject NsObjec NsObjec tt Oth er AddrClassifie AddrClassifie r r Classifie Classifie r r Connector Connector McastClas McastClas sfier sfier

SnoopQue SnoopQue ue ue In In Out Out Drp Drp

Queu Queu e e Edrp Edrp

Delay Delay DropTai DropTai ll

Agent Agent

Trace Trace

Red Red

TCP TCP

UDP UDP

Hnh 1.4: Cu trc phn lp ca NS.

Lp TclObject l gc ca cu trc phn lp c th hin trong cy th mc trn. y l gc ca tt c cc i tng trong th vin Otcl (nh lch trnh ca s kin, thnh phn mng, thi gian, v nhng i tng khc). Lp NsObject l lp con ca TclObject bao gm nhiu thnh phn khc nhau nhm x l gi tin, iu khin m phng. Lp ny c chia thnh hai lp con l Connector v Classifier. Lp Connector bao gm nhng i tng nh tr (Delay), cc Agnet v hng i (Queue).... Nt (Node) v nh tuyn (Routing). Mt nt trong NS cu thnh mt i tng mng. Trong NS c hai loi nt c bn l Unicast Node v Multicast Node. Nh c trnh by trong hnh 3-5. Applicatio n Agen tt Classifier Link Entry Node Addr Classifier Link Unicast Node Applicatio n Agen t

Port

Port Addr Classifier Entry Multicast Classifier Classifer

Link Node

Link

Multicast Node Hnh 3-5: M hnh m t nt mng (Unicast Node v Multicast Node). Trong NS, Unicast Node l nt c mc nh, khi to Multicast Node chng ta phi thc thi trong Otcl, sau khi to lch trnh ca s kin, tt c cc nt c to ra l nt Multicast Node. Sau khi cc nt c nh dng, chng ta c th la chn gi tr ca tham s cho cc nt ny, v cng c th s dng gi tr mc nh.

Cc tham s ca Unicast Node v Multicast Node l: - Unicast Node. $ns rtproto type Trong : type c th chn Static, Session, DB, Cost, Multi-path. - Multicast Node. $ns multicast $ns mrtproto type Trong : type c th chn CtrMcast, DM, ST, BST. Lin kt (Link). Mt lin kt trong NS c th c thc hin trn cc nt v cc Agent. Khi chng ta khi to lin kt s dng hm duplex-link (lin kt song cng), th c hai lin kt c to ra, mi lin kt ch c thc hin theo mt chiu no , hnh 36 di y m t lin kt ny. 0 Simplex Link Queue Delay Agent/Null Drop Link entry Hnh 3-6:M hnh th hinmi lin kt trong NS. Trn mi lin kt gia cc nt chng ta c th s dng cc hng i, n c thi hnh nh mt phn ca lin kt. Khi trong h thng xy ra s c nh tr hon cao hay nghn mch (Congestion) th hng i s lu cc gi tin ny. Gi tin s ra khi hng i v truyn i n ni nhn khi trn h thng khng cn nghn mch na, v trng TTL (Time-To-Live) s tnh ton v cp nht li thi gian cho mi gi tin truyn i thnh cng. Lu vt (tracing). Trong NS, Simplex Link lu vt nhng hot ng ca mng, nu lu vt nhng hot ng ca mng c xc nh thng qua m phng (ta c th s dng lnh $ns trace-all file hoc $ns namtrac-all file), lin kt c to ra sau cu lnh ny s c thm Trace vo mt i tng. Ngoi ra chng ta c th to ra mt i tng Trace bng cch s dng create-trace { type file src dst}. Hnh 3-7 di y cho thy cch to ra i tng ny. Link with Trace Object EnqT Queu e DeqT Drpt Dela y TTL Rec vT TTL 1

Agent/N ull drop Hnh 3-7 Chn thm i tng Trace. C ch theo di hng i.

V c bn i tng lu vt c thit k theo tng bn ghi ti thi im gi tin n ni nhn m chng c nh dng. Ngi s dng lun c c thng tin t Trace. Nhng y chng ta quan tm n nhng hot ng tip theo, mt trng hp c th xy ra khi tr hon trn mng cao dn n nghn mch. Khi cc gi tin tin s c a vo hng i nh th no, v c ch qun l hng i no s c hiu qu hn. Chng hn chng ta mun s dng hng i (RED) ta phi xc nh kch thc hng i trung bnh c trng s, v kch thc hin ti ca hng i RED, xc nh gi tr chn trn v chn di l Tmax v Tmin ph hp gii quyt vn tr hon cao trn mng. Hnh 3-8 di y m t qu trnh theo di din bin trong mt hng i t lc gi tin i vo hng i, v n lc gi tin c chuyn i. Link Entry Drop SnoopQ/ In Que ue SnoopQ/o ut SnoopQ/Dro p Dela y TTL

Agent/Null

Queue Hnh 3-8 M hnh theo diMonitor hng i. Lung d liu. Hai thnh phn quan trng c kho st y l nt (Node) v lin kt (Link). Hnh 3-9 di y m t mi lin kt gia hai nt mng, v cc gi tin c dch chuyn trn hai nt mng . FTP TCP Port n0 Port n1 link n0n1 Sink

Add Classifier

link n1n0 Hnh 3-9 M t lin kt v gi gi tin trn hai nt. m hnh mng ny, s dng hai nt l n0 v n1 c gi tr cng l 0 v 1 tng ng. Agent TCP c gn cho nt n0, dch v dch chuyn gi tin l FTP. nt n1 s dng Agent Sink nhn d liu. Khi nhn c mt gi tin t n0, Agent Sink c nhim v gi li p cho n0, cho bit l nhn c d liu. 4.5 Gi tin (Packet). Mt gi tin trong NS bao gm hai phn l phn u (Header) v phn d liu (Data) nh c m t trong hnh 3-10 di y: Packet Header Data (optional) cmn header ip header tcp header Uid_ : unique id Ptype_ : pkt type Size_ : simulated pkt size Ts_ : time stamp

rtp header trace header ...... Hnh 3-10 nh dng gi tin NS. Phn u (header) c to ra khi mt i tng m phng c khi to. Cc Header c lu trong mt Stack theo tng bn ghi. Cu trc ca Stack bao gm phn Header v cc i tng c th truy nhp vo phn Header trong Stack x l gi tin. Cc Header thng c s dng l IP header, TCP header, RTP header, v Trace header. 4.6 Dng C++ v Otcl xy dng NS. H m phng NS c vit trn C++ v Otcl, C++ dng x l d liu, cc thao tc v gi tin, v Otcl c s dng nh dng cu hnh m phng, iu khin m phng. y l l do h m phng NS t hiu qu. gim bt thi gian x l gi tin v nhng s kin trong m phng, tt c u c thc hin trn C++. M hnh di y th hin s phn cp i tng trong C++ v Otcl. 4.7 Otcl ngn ng hng i tng. V c bn Otcl s bin dch chng trnh m chng ta m phng trn NS. iu ny t ra cu hi cho chng ta l cch thc lm vic ca Otcl nh th no. Trong khun kh ca kha lun, mc ch l ng dng m phng nn khng tm hiu su v ngn ng ny, tuy nhin c c nhng hnh dung c bn v Tcl v Otcl di y a ra on m v cu trc lnh n gin ca Tcl v Otcl. # nh ngha mt th tc vi tn gi "test" proc test {} { set a 43 set b 27 set c [expr $a +$b ] set b [expr [expr $a - $b ] * $c ] for { set k 0 } { $k < 10 } {incr k } { if { $k < 5 } { puts " k < 5, pow = [expr pow ( $d, $k) ] " } else { puts " k >= 5, mod = [expr $d % $k ] " } Mt on m lnh trong Tcl. } y l on m lnh trnh by cch khi to mt th tc v gi li n, cch thc } to ra cc bin v gn gi tr cho cc bin"test"th no. # Gi li th tc nh Trong Tcl t kha proc s dng nh ngha mt th tc, sau t kha proc l tn test th tc, i s ca th tc c t trong cp du {}. T kha set s dng gn mt gi tr thc cho mt bin. T kha puts s hin th kt qu ra mn hnh. Sau khi bin dch chng trnh trn s cho ra kt qu nh sau: k < 5, pow = 1.0 k < 5, pow = 1120.0 k < 5, pow = 1254400.0 k < 5, pow = 1404928000.0 k < 5, pow = 1573519360000.0

k >= 5, mod = 0 k >= 5, mod = 4 k >= 5, mod = 0 k >= 5, mod = 0 k >= 5, mod = 4 4.8 Cc Agent v dch v truyn tin trong NS. UDP Agent. UDP Agent c thc hin trn giao thc UDP. UDP Agent truy cp, x l d liu t ng dng. Kch thc d liu x l c th thay i tuy nhin khng th vt qu kch thc ln nht ca on (Maximum Segment Size- MSS) gi tr ny trong UDP Agent c mc nh l 1000 byte, th hin qua cu lnh: Agent / UDP set packstsize_ 1000 UDP Agent c th pht chuyn d liu theo hai cch sau: Dng hm sendmsg() (trong C++). Dng phng thc send hoc sendmsg (trong Otcl). Cc cu lnh s dng UDP Agent trong m phng. Chng ta c th s dng UDP Agent trong qu trnh m phng truyn d liu t mt ng dng ny ti mt ng dng khc. lm c iu ny chng ta tm hiu cu trc cu lnh ca UDP Agent nh sau: set udp0 [ new Agent / udp ] Lnh ny dng khi to UDP Agent. $ns attach-agent <node> <agent> Lnh ny dng gn Agent cho mt nt mng. $traffic-gen attach-agent <agent> y l mt lp phng thc Application / Traffic / <traffictype> c ni kt vi Agent. V d : Nu chng ta mun thit lp mt dch v truyn CBR (dch v truyn theo bit) cho UDP Agent, chng ta s thc hin cc cu lnh sau : set udp1 [ new Agent / UDP] set cbr1 [ new Application / Traffic / CBR] $cbr1 attach-agent $udp1 $ns connect <src-agent> <dst-agent> y l kt ni End_to_End gia hai Agent ch cho tng ng dng. Ngoi ra UDP Agent cn c nhng cu lnh cha tham s thng c dng trong m phng nh: $udp set packetsize_ <kch thc gi tin> $udp set dst_addr_ <a ch> $udp set dst_port_ <cng> $udp set ttl_ <gi tr TLL - Time To Live> M t hot ng ca UDP Agent trong m phng. Trong qu trnh m phng chng ta c th s dng UDP Agent truyn cc gi tin trn hai ng dng. UDP Agent truyn gi tin khng c tin cy, khng c li p, v vy UDP Agent truyn gi tin nhanh hn cc Agent khc. thy c hot ng ca UDP Agent trong m phng, phn ny m phng mt m hnh mng n gin vi hai nt l n0 v n1. Gia hai nt ny c mt lin kt gi l lin kt song cng (Duplex Link). UDP Agent c gn cho nt n0 v dch v truyn gi tin trn UDP Agent ny l CBR. Agent Null c gn cho nt n1 dng nhn d liu gi n. Bng thng ca mng l 5mbps, tr 2ms. Thi gian bt u v kt thc dch chuyn gi tin tng ng l 1 v 4 ( pht ). Ta c th hnh dung m hnh trn nh sau:

cbr udp null

5 mbps, 2ms n n on m lnh chnh trong chng trnh. 1 0 set ns [ new Simulator ] set n0 [ $ns node] set n1 [ $ns node] $ns duplex-link $n0 $n1 5mbps 2ms Droptail set udp0 [ new Agent / UDP] $ns attach-agent $n0 $udp0 set cbr0 [ new Application / Traffic / CBR] $cbr0 attach-agent $udp0 $udp0 set packetsize_ 536 set null0 [ new Agent / Null] $ns attach-agent $n1 $null0 $ns connect $udp0 $null0 $ns at 1.0 " $cbr0 start " $ns at 4.0 " $cbr0 stop " TCP Agent. Mt Agent khc c dng trong m phng cho qu trnh truyn d liu l TCP Agent. TCP Agent c hai thnh phn l TCP Agent truyn d liu theo mt chiu v TCP Agent truyn d liu theo hai chiu. i vi TCP Agent trc khi truyn d liu th phi thit lp kt ni. Di y a ra cc Agent truyn d liu theo mt chiu v hai chiu m chng ta c th ng dng n trong m phng. Cc TCP Agent truyn d liu theo mt chiu: Agent / TCP Agent / TCP / Reno Agent / TCP / Sack Agent / TCP / Vegas Agent / TCp / Fack TCP Agent truyn d liu theo hai chiu: Agent / TCP / FullTCP Agent / TCP / BayFullTCP Cc TCP Agent nhn d liu : Agent / TCPSink Agent / TCPSink / DelAck Agent / TCPSink / Sack1 Agent / TCPSink / Sack1 / DelAck Agent / Null Hot ng ca TCP Agent trong h m phng. s dng TCP Agent truyn gi tin trn cc ng dng. Trc tin ta phi khi to TCP Agent thng qua cu lnh : set tcp0 [ new Agent / TCP] . Xc nh dch v truyn d liu trn TCP Agent ( nh FTP, Telnet...). Sau xc nh thi gian truyn gi tin. on chng trnh sau y s dng TCP Agent truyn gi tin thng qua dch v FTP. M hnh gm c hai nt l n0 v n1. Gia hai nt ny c mt lin kt gi l lin kt song cng (Duplex Link). TCP Agent c gn cho nt n0. Agent TCPSink c gn cho nt n1 dng nhn d liu gi n. Bng

thng ca mng l 5mbps, tr 2ms, hng i s dng l RED (hng i ). Thi gian bt u v kt thc truyn gi tin tng ng l 1 v 4 ( pht ). Di y l on m lnh chnh ca chng trnh. set ns [ new Simulator ] set n0 [ $ns node] set n1 [ $ns node] $ns duplex-link $n0 $n1 5mbps 2ms RED set tcp0 [ new Agent / TCP] $ns attach-agent $n0 $tcp0 set fpt0 [ new Application / Traffic / FPT] $fpt0 attach-agent $tcp0 $tcp0 set packetsize_ 210 $tcp0 set window_ 50 set sink0 [ new Agent / TCPSink] $ns attach-agent $n1 $sink0 $ns connect $tcp0 $sink0 $ns at 1.0 " $fpt0 start " $ns at 4.0 " $fpt0 stop " Mt vi tham s c dng trong TCP Agent. Ngoi tham s quan trng l window_ (Agent / TCP set window_ 20), TCP Agent c thm cc tham s sau : Agent / TCP set windowOption_ 1 Agent / TCP set windowInit_ 1 Agent / TCP set windowConstant_ 4 Agent / TCP set windowThresh_ 0.02 Agent / TCP set packetsize_ 210 Agent / TCP set ack_ 0 Agent / TCP set dupacks_ 0 Agent / TCP set overhead_ 0 Agent / TCP set ecn_ 0 Agent / TCP set tcpTick_ 0.1 Trong qu trnh m phng chng ta c th thay i gi tr ny cho ph hp. Nhng gi tr c thay i thng l window_ v packetsize_ . V d: thay i gi tr mc nh ca window_ chng ta c th thc hin nh sau: Agent / TCP set window_ 20 $tcp set window_ 10 # kch thc ca s thay i Khi thay i nhng gi tr ny s dn n kt qu m phng khc nhau. Chng hn, vi kch thc d liu ln, kch thc ca s ln, thi gian i trn mt vng ngn s gy nn s tr tr trn mng. Cc Agent truyn d liu theo mt chiu. Reno TCP: Agent Reno TCP ging nh Agent TCP c m t, ngoi ra Agent Reno TCP cung cp s khi phc nhanh ( Fast - Recovery ). Sau khi iu khin nghn mch pht chuyn li d liu mt cch bnh thng Agent Reno TCP khng khi ng chm trc khi chuyn pht nhanh. NewReno TCP: l Agent c bn trn Agent Reno TCP. Vegas TCP: l Agent thc thi "vegas" TCP. Sack TCP: l Agent thc hin vic lp li c chn lc nhng vn c bn trn nhng li p (ACK) c gi n t ni nhn. Fack TCP: l Agent thc hin "Forward ACK" n l sa i ca Sack TCP.

Agent truyn d liu hai chiu. Agent / TCP / FullTCP (FullTCP) h tr truyn d liu hai chiu c thc hin trong qu trnh m phng. FullTCP khc vi nhng Agent khc, tuy nhin gia chng c s dng bi nhng kin trc ging nhau. C hai im khc nhau c bn gia FullTCP v nhng Agent khc: FullTCP h tr truyn d liu theo hai chiu. S th t trong gi tin l byte. Ngoi FullTCP, c thm mt Agent cng c th truyn d liu theo hai chiu c s dng trong m phng l BayFullTCP. Gia FullTCP v BayFullTCP c s khc bit, c th hin nh sau: BayFullTCP h tr cho tng ng dng Client / Server trong khi FullTCP m nhim v tng ng dng. BayFullTCP v FullTCP khc nhau v hnh thc ng dng TCP. FullTCP h tr v li p (ACK) cn BayFullTCP th khng. Hot ng ca FullTCP trong h m phng. thc hin FullTCP trong m phng, cng ging nh nhng Agent khc trc tin chng ta phi khi to cc nt mng. Xc nh Agent cn truyn d liu y l FullTCP ta thc hin cu lnh: set Full0 [ new Agent / FullTCP], sau xc nh dch v trn Agent v a ra l trnh truyn. Mt on m lnh s dng FullTCP: set src [ new Agent / TCP / FullTCP] set sink [ new Agent / TCP / FullTCP] $ns attach-agent $node_ (n0) $src $ns attach-agent $node_ (n1) $sink $src set fid_ 0 $sink set fid_ 0 $ns connect $src $sink $sink listen $src set window_ 1 Cc cu lnh cha tham s ca FullTCP: Agent / TCP / FullTCP set seqsperack_ 1 Agent / TCP / FullTCP set seqSize_ 563 Agent / TCP / FullTCP set iss_ 0 Agent / TCP / FullTCP set tcprexmtthresh_ 3 Agent / TCP / FullTCP set nodelay_false Cc Agent dng nhn d liu. TCP Sink: c im c bn ca TCP Sink l cung cp c ch bo nhn. Khi ni nhn nhn c gi tin th TCP Sink c nhim v gi li li p (ACK) n ni gi, xc nh gi tin truyn n ch an ton. khi to TCP Sink ta thc hin : set agent0 [ new Agent / TCPSink] Agent Null: Khc vi TCP Sink, Agent Null khng cung cp c ch bo nhn, ngha l khi nhn c gi tin ni nhn khng pht hnh li p (ACK) cho bit l gi tin n c an ton. khi to Agent Null ta thc hin: set agent1 [ new Agent / Null] ACK TCP Sink: Cng nh nhng giao thc ng tin cy khc, TCP mong i my ch gi li li p bt c khi no n nhn c d liu. Mi khi TCP gi d liu i, n s khi ng mt b m thi gian v i li p tr v. y l thi gian ch i mt li p. Nu b m thi gian ht hn m ni gi cha nhn c li p,

th ni gi s truyn li gi tin. Gi tr thi gian ny c t bi bin interval_ c thc hin bi cu lnh: Agent / TCPSink / DelACK set interval_ 100ms Kin trc bn trong ca Agent. TCP Agent c th truyn gi tin, x l li p, nghn mch, ta c th xem TCP Agent ( lp Agent / TCP ) c xy dng t tp hp cc th tc, hm c chc nng: truyn gi tin, x l li p, x l thi gian, tr, qun l ca s nghn mch.... Di y a ra mt s hm v th tc c chc nng : TCP Header: nh ngha phn u ca TCP Header. Function For Sending Data: y l hm dng gi d liu. Trong m phng TCP khng trc tip gi d liu, n ch tp hp kch thc d liu v truyn d liu thng qua dch v khc. Send_much (force, reason, maxburst): l hm gi d liu ng thi gi c ca s hin hnh cho bit s d liu ti a n c th nhn trnh tnh trng tc nghn. Hm ny lu d liu gi i trong b m c th truyn li, trong trng hp gi tin truyn i b mt. Bin maxburst dng lu tt c cc gi tin c truyn li. Hm output (seqno, reason) gi gi tin cng vi s th t v cp nht s th t ti bin maxseq_. Function for window management: hm ny gi kch thc ca s hin hnh. Open cwnd(): l hm m ca s nghn mch khi c li p mi n. Close cwmd (int how): hm ny gim bt ca s nghn mch. Ti mt thi im no b m thi gian ht hn. i s how s iu khin ca s nghn mch vi cc gi tr tng ng l: 0, 1, v 2. Gi tr 0 dng xc nh thi gian, gi tr 1 dng cho vic khi phc nhanh, gi tr 2 dng gim bt kch thc ca s hin hnh. NewAck (): hm x l li p. NewTime (): cp nht thi gian i trn mt vng RTT Function for managing the Retransmission Timer: hm ny nh gi thi gian i trn mt vng v t li thi gian truyn d liu. Rtt_update: hm ny cp nht thi gian i trn mt vng v cho bit s lng gi tin c truyn i thnh cng. Cc dch v truyn tin c dng trong m phng. Dch v truyn CBR: dch v truyn gi tin theo dng bit c cu trc. Dch v FTP: dch v truyn file. Dch v Telnet: Dch v Pareto:

5. ng dng: M hnh chung: Sau khi nghin cu cc s thit k ca mng s dng giao thc TCP Vegas trn c s ton hc. S dng phng php m phng chng minh

nhng nh hng ca cc tham s , trong qu trnh iu khin truyn thng ca TCP Vegas. Ngun pht 1 Ngun thu 1

2 R 1 Router 1 R 2 Router 2

n Hnh 5.1: M hnh mng

M hnh mng hu tuyn s dng nhiu loi giao thc: Trong trng hp chng minh s cnh tranh gia cc giao thc, m hnh mng nh hnh 3.2 c s dng. Trong m hnh ny c 8 nt mng, gm 3 ngun pht ci t cc giao thc TCP, TCP Reno v TCP Vegas, 2 Router v 3 ngun thu tng ng. Cc ngun pht v thu truyn tin cho nhau qua cc Routers. Vi m hnh mng hu tuyn nh trn, d dng pht trin thnh cc m hnh ln hn, thun li cho vic to cc kch bn. Cc thng s trn mng nh tr trn Ngun pht 2 Ngun thu 5

0 Router 1

1 Router 2

Hnh 3.2: M hnh mng hu tuyn ng truyn, chiu di hng i v cc tham s khc d dng thay i trong cc ln m phng. M hnh mng v tuyn (Wireless Network)

M hnh mng v tuyn s dng cng 1 loi giao thc v m hnh mng v tuyn s dng nhiu loi giao thc, trong c hai trng hp ny m hnh mng c s dng nh hnh 3.3 M hnh 3.2 c 8 nt mng, trong cc ngun pht 5, 6, 7 di ng, cc ngun thu 1, 2, 3 c nh, cc Router 4 v 0 c nh, Router 4 c chc nng thu pht v tuyn v kt ni vi cc ngun pht qua Router 0. M hnh mng v tuyn ch s dng 1 loi giao thc chng minh: Mng ch s dng 1 loi giao thc th giao thc TCP Vegas iu khin truyn thng tt nht. M hnh mng v tuyn s dng nhiu loi giao thc chng minh: Cc hng s , ca TCP Vegas c thit lp ph hp, th s cnh tranh ca n trn mng s tt hn. Cc s thit k trn c hot ng trn h m phng NS-2. y l cng c m phng mng hiu qu c trnh by phn tip theo Cc i tng ca mng nh ng truyn, nt mng, Router, hng i. u c NS h tr bng cc lp ca n, ngi s dng c th tha hng cc lp . N cn h tr vic thit k hng i, cc giao thc truyn thng, dch v truyn tin nh FTP, Telnet, CBR, Web. Chng trnh vit trong h m phng NS c th s dng ngn ng OTcl hoc ngn ng C++. V d sau m t mt s cu lnh trong NS. - To m phng: set ns [new Simulator] - To file Nam set nf [open vegas.nam w] $ns namtrace-all $nf - To file lu vt set file [open vegas_100.tr w] $ns trace-all $file - To mt nt mng n_1: set n_1 [$ns node] - to ng truyn song cng t nt n_1 n nt n_2 c dung lng 1MB, tr 10ms, hng i DropTail: $ns duplex-link $n_tg $n_tg2 1Mb 10ms DropTail - Giao thc s dng l TCP Vegas set agent_phat [new Agent/TCP/Vegas] $ns attach-agent $n_1 $agent_phat - Dch v s dng l Telnet set cbr [new Application/Telnet] $cbr attach-agent $agent_phat Hot ng ca NS th hin hnh 3.7. Trong kch bn m phng chng trnh m phng (OTcl Script Simulation Program) c OTcl bin dch v thc thi. OTcl bin dch v thc thi chng trnh vi s h tr ca th vin NS. Th vin NS bao gm b lp lch (Event scheduler objects), cc thnh phn ca mng (Network

Component Objects) v cc modules tr gip (Network setup helping Modules).

Otcl: Bin dch v thc hin Phn tch Otcl: Kch bn Chng trnh m phng Th vin NS B lp lch Cc thnh phn ca mng Cc Modules tr gip Kt qu m phng

Hin th m phng Hnh 3.7: Hot ng ca h m phng NS Kt qu m phng c lu li bng mt file lu vt (Trace file) di dng file vn bn c th phn tch cc kt qu. on vn bn sau l mt on ca file lu vt: + 0.454881 1 2 tcp 1040 ------- 0 1.0 5.0 3 8 - 0.454881 1 2 tcp 1040 ------- 0 1.0 5.0 3 8 + 0.454881 1 2 tcp 1040 ------- 0 1.0 5.0 4 9 + 0.454881 1 2 tcp 1040 ------- 0 1.0 5.0 5 10 d 0.454881 1 2 tcp 1040 ------- 0 1.0 5.0 5 10 - 0.471521 1 2 tcp 1040 ------- 0 1.0 5.0 4 9 r 0.481521 1 2 tcp 1040 ------- 0 1.0 5.0 3 8 + 0.481521 2 3 tcp 1040 ------- 0 1.0 5.0 3 8 - 0.481521 2 3 tcp 1040 ------- 0 1.0 5.0 3 8 + 0.489041 4 3 ack 40 ------- 1 4.0 0.0 1 11 - 0.489041 4 3 ack 40 ------- 1 4.0 0.0 1 11 r 0.498161 1 2 tcp 1040 ------- 0 1.0 5.0 4 9 + 0.498161 2 3 tcp 1040 ------- 0 1.0 5.0 4 9 Trn file lu vt c chia thnh 12 trng nh sau: - Trng th 1: Ch s kin ti nt mng, gm c cc s kin: s: segment c gi r: segment nhn d: segment b nh ri ti hng i +: segment xp vo hng i -:segment i ra khi hng i. - Trng th 2: Thi im xy ra s kin ti nt - Trng th 3: Nt mng xy ra s kin - Trng th 4: Nt s nhn segment - Trng th 5: Kiu ca segment - Trng th 6: Kch thc ca segment - Trng th 7: Du hiu ca c - Trng th 8: Dng d liu - Trng th 9: S hiu cng ca ngun - Trng th 10: S hiu cng ca ch - Trng th 11: Trnh t - Trng th 12: Nhn ca segment

C th s dng phn mm Microsoft Excel hoc phn mm TraceGraph v th vin MATLAB t phin bn 5.0 tr ln phn tch file lu vt. Phn mm TraceGraph th hin th y cc thng tin ca kt qu m phng nh thng lng trn ng truyn ca mng, s gi tin ca tng nt mng, din bin hot ng ca mng ti tng thi im m phng, hin th cc biu . File Nam th hin trn mn hnh hot ng ca m hnh m phng Hin nay h m phng NS-2 c s dng rng ri m phng hot ng ca cc thut ton, cc kch bn, cc m hnh mngN gip ch rt nhiu trong vic nghin cu, gi lp cc mng my tnh trc khi cc thut ton, cc m hnh c a vo ng dng trong thc t, gp phn lm gim chi ph v thi gian v ti chnh dnh cho vic nghin cu, xy dng cc m hnh ng dng trn mng. 5.2 Thit k chng trnh v phn tch kt qu Trong tt c cc m phng thc hin trong lun vn u c thc hin trn h m phng NS-2 vi h iu hnh Window XP. M hnh mng trnh by phn trc c s dng m phng 5 trng hp sau: + Trng hp 1: M hnh mng hu tuyn chng minh TCP Vegas hot ng tt hn so vi hot ng ca cc TCP khc. + Trng hp 2: M hnh mng hu tuyn so snh s cnh tranh gia TCP Vegas v cc giao thc TCP v TCP Reno khi dung lng ng truyn thay i. + Trng hp 3: M hnh mng hu tuyn so snh s cnh tranh gia giao thc TCP Vegas vi cc giao thc khc khi cc hng s , thay i. + Trng hp 4: M hnh mng v tuyn chng minh TCP Vegas hot ng tt hn cc giao thc khc trong mng v tuyn. + Trng hp 5: M hnh mng v tuyn so snh s cnh tranh gia giao thc TCP Vegas vi cc giao thc khc khi cc hng s , thay i. Khi thc hin chng trnh m phng, kt qu m phng c lu li file lu vt (Trace file). Phn mm Trace Graph kt hp vi th vin MatLap7.0 c s dng phn tch cc kt qu trong file lu vt. Kt qu m phng trng hp 1 Trng hp 1 chng minh giao thc TCP Vegas iu khin truyn thng tt hn nhng giao thc khc. Trong trng hp ny m hnh mng c thit lp gm: 9 ngun pht, 9 ngun thu, 2 Router. ng truyn c dung lng 10MB, tr ng truyn l 20ms, hng i dropTail, chiu di hng i 20 segment, thi gian m phng 60s. Cc ngun u s dng cng 1 giao thc trong 1 ln m phng. Cc giao thc ln lt c s dng l: TCP, TCP Reno, TCP Vegas. Kt qu ca mi ln m phng c lu li file lu vt. Thng k, so snh s liu trong cc file lu vt chng ta c c cc kt lun cn thit. Chng trnh khi thc hin m phng c dng nh hnh 3.8.

Hnh 3.8: M hnh mng hu tuyn khi hot ng T vic phn tch kt qu m phng trn file lu vt chng ta c c s liu nh bng 3.1. S segment b S segments b Giao thc s dng S segments gi nh ri trn mt hng i TCP 122577 577 645 TCP Reno 122866 549 609 TCP Vegas 130270 21 95 Bng 3.1: Kt qu m phng trng hp 1 Vi phn mm TraceGraph h tr, th biu din thng lng ca cc TCP nh hnh 3.9.

Hnh 3.9: ng biu din thng lng trng hp 1 T kt qu bng thng k ta thy nu mng ch s dng giao thc TCP Vegas th thng lng trn mng tng 1 cch ng k, s segment b nh ri (Drop) trn hng i v s segment b mt (loss) trn ng truyn rt nh so vi TCP, TCP Reno. Thng lng trn ng truyn rt n nh. Tuy TCP Vegas c nhiu u im nh vy nhng vi s a dng ca mng Internet, cc giao thc c s dng trn mng rt phong ph. Khi TCP Vegas tham gia vo mng c s cnh tranh n t ra khng p ng c nhu cu thc t. Kt qu m phng trng hp 2 M hnh mng hu tuyn so snh thng lng ca TCP Vegas v cc giao thc TCP v TCP Reno khi dung lng ng truyn thay i. so snh thng lng ca TCP Vegas vi cc giao thc khc khi dung lng ng truyn thay i, m hnh mng hu tuyn nh hnh 3.2 c s dng. Trong c 3 ngun pht, 3 ngun thu, 2 Router. ng truyn c dung lng thay i t 1MB n 10MB, tr 20ms, hng i DropTail, chiu di hng i 20 segments. Cc ngun pht s dng cc giao thc TCP, TCP Reno v TCP Vegas. M hnh khi chng trnh hot ng c dng nh hnh 3.10.

T kt qu m phng chng ta thu c kt qu bng 3.2: Dung lng TCP TCP Reno TCP Vegas ng S Mt S Mt S truyn segments segments segments 1MB 11725 68 11854 64 12061 5MB 45009 0 45009 0 44706 10MB 46597 0 46597 0 46220

Mt 0 0 0

Hnh 3.10: M hnh mng hu tuyn trng hp 2 Bng 3.2: Kt qu m phng s dng giao thc TCP, TCP Reno, TCP Vegas Khi dung lng ng truyn tng cho n mc khng cn segment ri (ng ngha vi vic khng c nghn mng xy ra), th thng lng ca TCP Vegas s km hn so vi TCP v TCP Reno. Khi ng truyn c dung lng 1MB. Thng lng ca TCP t c l 11.725 segments, s gi tin b nh ri trn hng i l 68. Thng lng ca TCP Reno l 11.854 segment, s segments b nh ri trn hng i 64, trong khi Vegas t c thng lng 12.061 v khng c segment no b nh ri trn hng i. Qua kt qu ca 2 trng hp trn cho thy TCP Vegas iu khin truyn thng tt hn cc TCP khc. c bit l s segment b mt trn mng l rt nh, ph hp vi tiu ch ca TCP Vegas l gim s segment b mt trn mng. ng biu din thng lng ca TCP Vegas cng chng t tnh n nh ca n trong iu khin truyn thng. Nh vy vi nhng ng truyn c s nghn mng th TCP Vegas chng t c tnh vt tri ca n v mt trnh nghn mng v t c thng lng cao trn ng truyn. Kt qu m phng trng hp 3 M hnh mng hu tuyn so snh s cnh tranh ca TCP Vegas (vi gi tr , thay i) vi cc TCP khc Trong trng hp ny m hnh mng hu tuyn nh hnh 3.2 c s dng m phng. Trong c 3 ngun pht, 2 Router, 3 ngun thu. ng truyn c dung lng 1MB, tr 20ms, hng i DropTail c chiu di 20 segment. Thi gian m phng 60s. Chng trnh khi thc hin c hnh 3.10. Kt qu m phng thu c bng 3.3. S segments trn Hng s TCP TCP Reno TCP Vegas mng TT Tng s Mt Gi Nh Gi Nh Gi Nh n n n 1 1 3 11041 30 2806 1496 2559 1389 1854 937 2 2 4 11087 34 2579 1377 2255 1257 2409 1210

3 3 5 11140 37 1955 1098 2769 1469 2557 1292 4 4 6 11190 41 2046 1138 2008 1121 3244 1633 5 5 7 11241 42 1715 977 2188 1203 3421 1737 6 6 8 11258 41 1850 1039 1668 948 3822 1931 7 7 9 11267 48 1777 1001 1658 933 3906 1992 8 8 10 11332 48 1770 1003 1629 936 3957 2037 9 9 11 11289 57 1670 954 1875 1042 3769 1979 10 10 12 11289 57 1670 954 1875 1042 3769 1979 11 11 13 11305 57 1671 951 1866 1042 3793 1982 Bng 3.3: Kt qu m phng vi hng s , thay i Biu hnh 3.11 biu din s tng hoc gim thng lng trn mng ca cc ngun s dng cc giao thc TCP, TCP Reno khi cnh tranh vi giao thc TCP Vegas khi cc hng s , thay i.

Hnh 3.11: biu biu din thng lng khi tr s , thay i R rng khi tng tr s cc hng s , th giao thc TCP Vegas tng sc cnh tranh trn mng v thng lng trn ton mng cng c tng ln. Nh vy vic thit lp gi tr cho , ca TCP Vegas khng nhng nh hng n vic cnh tranh m cn nh hng n thng lng ca ton mng. iu ny cng ph hp vi thut ton ca TCP Vegas, bi v nu thit lp cc gi tr , qu nh th trong pha pha trnh tt nghn hiu s ( w(t )
d w(t )) > lm thng lng ca TCP D

Vegas gim trn ng truyn. Trong khi TCP v TCP Reno vn tng kch thc ca s, bt chp thi gian ca cc RTT c tng hay khng. Nu , ln th TCP Vegas vn tng kch thc ca s cnh tranh cng vi cc TCP khc trong pha trnh tt nghn. Kt qu ca m phng cho thy khi c tr s bng 13 v c tr s bng 15 th TCP Vegas t c s cnh tranh v thng lng tt nht trn ng truyn.

Kt qu m phng cho trng hp th 4 M hnh mng v tuyn chng minh TCP Vegas hot ng tt hn cc giao thc khc trong mng v tuyn. Mng v tuyn vi c trng l t l mt segments v li bit trn ng truyn cao [5] [7]. M hnh mng v tuyn c s dng m phng cho trng hp ny c dng nh hnh 3.3. Trn m hnh c 3 trm di ng MH, MK, ML. Mt trm thu pht v tuyn GW ng vai tr nh 1 Router. Mt Router hu tuyn W0 v 3 trm nhn. Vi m hnh nh vy c th coi y l s kt hp gia 1 mng hu tuyn v 1 mng v tuyn. Chng trnh m phng c thc hin vi cc tham s: ng truyn hu tuyn c tr l 20ms, dung lng ng truyn 10MB, hng i ti cc trm l DropTail c di 20 segments. Trm v tuyn s dng chun Mac/802_11. Trong mi ln thc hin m phng, cc trm pht v tuyn u s dng cng 1 giao thc. Cc giao thc ln lt c s dng trong cc ln m phng l TCP, TCP Reno v TCP Vegas. Thi gian m phng 60s. Mng hot ng vi kch bn nh sau: Cc trm pht di ng vi vn tc 6m/s bt u pht tn hiu kt ni ngoi vng ph sng ca trm thu pht v tuyn c nh, sau 6s cc trm pht i vo vng ph sng v sau 58s cc trm i ra khi vng ph sng.

Hnh 3.12: M hnh v tuyn khi thc hin chng trnh M hnh khi chng trnh hot ng c dng nh hnh 3.12 T vic phn tch cc file lu vt trong cc ln m phng chng ti c c kt qu m phng bng 3.4. TT Giao thc s dng Thng lng S gi tin ri (Drop) 1 2 3 TCP TCP Reno TCP Vegas 30550 33577 41918 2991 2991 1605

Bng 3.4: Thng lng t c ca cc giao thc Hnh 3.13 biu din biu thng lng ca TCP, TCP Reno v TCP Vegas T bng thng k kt qu v biu , ta thy trong mi trng mng v tuyn vi

Hnh 3.12: Biu biu din thng lng ca cc TCP trong mng v tuyn c trng l t l mt segments v li bit cao, ng biu din thng lng ca TCP Vegas trn biu tng i bng phng, chng t thng lng n nh trong qu trnh truyn thng. S segments lu thng trn mng tng 124% so vi Reno. S segments b mt gim 50% so vi reno. Nh vy vi mng v tuyn TCP Vegas vn hot ng tt hn so vi TCP v TCP Reno. 3.4.5 Kt qu m phng cho trng hp th 5 m phng cho trng hp ny m hnh 3.3 c s dng. Trong cc ngun pht c ci t cc TCP khc nhau. Cc giao thc c ci t cho cc ngun pht l TCP, TCP Reno v TCP Vegas. Cc tham s v ng truyn, hng i v kch bn hot ng ca mng tng t nh trng hp trn. Chng trnh m phng khi thc hin c dng nh hnh 3.12. Trong mi ln thc hin m phng, tr s hng v c thay i. Cc kt qu m phng c lu file lu vt tng ng. Phn tch file lu vt ta c kt qu bng 3.5 segments trn Hng s TCP TCP Reno TCP Vegas mng TT Nh Tng s Mt Gi Nhn Gi Gi Nhn n 124 1 1 3 35068 4322 8114 8085 8176 8150 1294 9 203 2 2 4 35105 4360 7754 7724 7789 7755 2052 1 236 3 3 5 35115 4330 7586 7571 7590 7593 2407 8 4 4 6 35141 4304 7590 7593 7590 7593 236 2407

5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

35283 35199 35249 35253 35240 35101 35288 35285 35409 35269 35310 35324 35368 35344 35264 35264

4214 4327 4331 4322 4381 4507 4372 4392 4324 4402 4391 4389 4428 4450 4472 4472

7468 7255 7146 7009 6842 6702 6604 6498 6405 6288 6195 6108 6019 5930 5851 5851

7428 7262 7100 6960 6840 6705 6599 6493 6398 6289 6185 6191 5996 5896 5845 5845

7468 7428 7300 7281 7174 7130 7033 6997 6894 6862 6676 6742 6659 6628 6533 6514 6431 6411 6306 6310 6220 6224 6102 6110 6072 6058 5980 5953 5855 5847 5855 5847

8 273 6 304 2 335 0 362 5 388 4 413 4 440 2 462 4 488 4 503 9 525 2 543 4 562 4 579 7 594 6 594 6

2755 3059 3349 3629 3918 4142 4396 4623 4880 5037 5234 5479 5599 5788 5920 5920

Bng 3.5: Thng lng ca cc giao thc khi , thay i T s liu bng 3.5 ta c c biu biu din thng lng ca cc TCP v thng lng ca mng hnh 3.13

Hnh 3.13: Biu biu din thng lng khi tr s , thay i So snh cc kt qu ta thy nu hng s , ca TCP Vegas c thit lp nh th s cnh tranh ca n trn mng v tuyn km xa so vi cc TCP khc. Nhng nu thit lp hng s cho , ln mt cch thch hp th khng nhng sc cnh tranh ca TCP Vegas tng ln ng k m thng lng thng lng ca ton mng cng tng. Trong m hnh mng c m phng th hng s =17, =19 l cc gi tr lm cho TCP Vegas cnh tranh tt vi TCP v TCP Reno. Trong mng v tuyn vi c trng t l li bit, mt segments v tr cao lm cc TCP lun phi chuyn sang c ch bt u chm. Trong c ch ny TCP v TCP Reno lun tng kch thc ca s bt chp thi gian cc RTT c tng hay khng. Do vy ng truyn v hng i b 2 trm pht ny chim dng, trong khi TCP Vegas thn trng tng kch thc bng cch so snh tr ca cc RTT trn mng. Vi cch lm nh vy TCP Vegas khng th cnh tranh vi TCP v TCP Reno trong mng v tuyn. Bng cch thit lp gi tr cc hng s , ln, khi tr ca cc RTT trn mng tng th TCP Vegas vn cn c kh nng tng kch thc ca s, cnh tranh vi TCP v TCP Reno trong mng. Do vy khi tng tr s ca cc hng , th s cnh tranh ca TCP Vegas cng tng ln nh kt qu th hin bng 3.5 v biu hnh 3.13 5.3 So snh v nh gi kt qu thu c Tiu ch iu khin truyn thng ca TCP Vegas l t n trng thi cn bng, gim s mt cc segments trong mng, tn dng ng truyn, tng hiu nng ca mng. Trong trng hp 1 (mng hu tuyn) s segments lu thng trn mng ca TCP Vegas tng hn so vi TCP Reno l 106%, s segments b mt trn mng gim 6,4 ln.

Trong trng hp 4 (mng v tuyn) s segments lu thng trn mng ca TCP Vegas tng hn so vi cc TCP khc gn 124%, s segments b mt trn mng gim 1,8 ln. Cc kt qu trn cho thy TCP Vegas iu khin truyn thng tt hn cc TCP khc. Tuy nhin cc m phng trong cc trng hp 1 v 4 ch s dng 1 loi giao thc trong mng. Nhng vi s a dng nh mng Internet th vic s dng 1 loi giao thc rt kh thc hin. Hn ch ca TCP Vegas l s cnh tranh vi cc giao thc khc. Cc kt qu m phng ca trng hp 3 (mng hu tuyn) v trng hp 5 (mng v tuyn), chng t khi TCP Vegas (vi =1, =3), tham gia truyn thng cng vi cc TCP khc, th thng lng ca n t c trn mng nh hn rt nhiu so vi cc TCP khc. Nhng nu gi tr ca cc hng s , ln th khng nhng sc cnh tranh ca TCP Vegas tng m thng lng ca ton mng cng c tng ln. Trong trng hp 3, vi c trng ca mng hu tuyn l tr ng truyn, t l mt gi v li bit thp. Khi =1, =3 th thng lng ca TCP Vegas ch bng 70% so vi TCP Reno. iu ny chng t vi tr s ca cc hng s , qu nh th trong pha trnh tt nghn, n khng th tng kch thc ca s pht nh TCP v TCP Reno lm. Thut ton ca TCP v TCP Reno trong pha bt u chm v trnh tt nghn lun tng kch thc ca s khi nhn c segment hi p ACK. Trong khi TCP Vegas c th khng th tng kch thc ca s (thm ch phi gim) nu nhn c hi p ACK vi thi gian RTT ca n kh ln. Khi , ln (=11, =13) th thng lng ca TCP Vegas cao gp 1,96 ln (196%) so vi TCP Reno. Thng lng trong mng cng tng ln 102%. S tng thng lng ca TCP Vegas l do hng s , c gi tr ln cho nn trong pha bt u chm v trnh tt nghn kch thc ca s pht ca n vn tng khi nhn c segment hi p ACK c thi gian RTT ln. Trong trng hp 5 vi c trng ca mng v tuyn l tr ng truyn, t l mt segments v li bit cao. Khi =1, =3 thng lng ca TCP Vegas ch bng 15% so vi cc TCP khc. Kt qu nh vy l hon ton ph hp vi thut ton iu khin tt nghn ca cc TCP. T l mt gi v li bit cao khin cc TCP lun phi t kch thc ca s pht ca mnh v 1 v khi ng pha bt u chm. tr trn ng truyn trong mng v tuyn ln (Bao gm tr ng truyn v tr trn hng i) lm ko di thi gian kh hi ca cc RTT. C hai yu t trn lm gim thng lng ca TCP Vegas trn mng v tuyn. Khi =19, =21 thng lng ca TCP Vegas gp 1,01 ln (101%) TCP Reno, thng lng ton mng tng 1,005 ln. Trong trng hp ny thng lng ca mng tng rt t, nhng thng lng ca TCP Vegas tng rt ng k, chng t sc cnh tranh ca n trn mng tng ln rt nhiu. Kt qu trn mt ln na chng minh s cn thit phi thit lp cc gi tr ca hng s , ln tng sc cnh tranh ca TCP Vegas. Qua phn tch v cc trng hp m phng gi tr , ngay t u nu ln th c th lm tng sc cnh tranh. Nhng nu qu ln n s lm tng nguy c nghn mng. V khi qu ln n s mt tnh linh hot trong vic trnh nghn mng. Ti liu tham kho [1]. Daniel A.Menasce, Virgilio A.F. Almeida, Capacity Planning for Web Performance, Prentice Hall, PTR, 1998.

[2]. H Khnh Lm, Ti u mng my tnh theo tin cy v chi ph, tp ch Tin hc v iu khin hc, T.16,S.1(2000), 35-44. [3]. Hiroki Saito and Takeshi Chusho, Design and Implementation of a Network Performance Evaluation System Through Client Observation, Meiji University Japan,1998. [4]. Leonard Kleinrock, On the Modeling and Analysis of Computer Networks, Fellow, IEEE. Vol. 81. No. 8. August 1993. [5]. Leonard Kleinrock, On the Modeling and Analysis of Computer Networks, Proceedings of the IEEE, Vol 81, August 1993. [6]. Neil J. Gunther, The Practical Performance Analyst, McGraw-Hill, 1996. [8]. Thomas G.Robertazzi, Computer Networks and Systems (Queueing Theory and Performance Evaluation), Springer-Veriag, 1994.

CHNG 2
2.1 Gii thiu

KIN TRC CA NS-2

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 Kch bn OTcl Simulation Program Chng trnh M phng OTcl B bin dch Tcl m rng hng i tng NS Simulation Library Th vin M phng NS Event Scheduler Objects Cc i tng B lp lch S kin

Network Component Objects Cc i tng Thnh phn Mng Network Setup Helping Modules Cc m un Tr gip Thit lp Mng Plumbling Modules Cc m un Plumbling Simulation Results Cc kt qu M phng Analysis Phn tch NAM Network Animator 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 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 M phng o NAM Tracing and Monitoring Simulation 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 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 TclCL OTcl Tcl C/C++ ns-2 Event Scheduler

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.

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 Thao tc trn byte, x l gi, thc thi thut ton 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 Tham d nhanh mt s tnh hung 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. 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 c pht trin bi Sun Microsystems + UC Berkeley (D n Daedalus) Thuc mt t (di ng, adhoc, GPRS, WLAN, BLUETOOTH), v tinh 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 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 to mi mt instance ca nam -S ng b ha X -s ng b ho nhiu trace (nhiu ln vt) -j thi gian khi ng -r tc minh ha khi to -f kch bn OTcl khi to -k 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

Chng 3: Gii thiu cc phn mm dng kt hp vi NS-2 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 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 File Save layout lu tt c cc s mng hin ti vo file Print in tt c cc s mng hin ti Views New view 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.

Chng 3: Gii thiu cc phn mm dng kt hp vi NS-2 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. Analysis Active Sessions Legend Control bar: di control bar c 5 button, 1 nhn v 1 thanh trt Rate 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 Nhn TIME (thi gian) ch ra thi gian minh ha hin ti 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. Tool bar c hai button phng to v thu nh, mt button Edit chnh sa topology ca mng 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. 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.

Chng 3: Gii thiu cc phn mm dng kt hp vi NS-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 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

Chng 3: Gii thiu cc phn mm dng kt hp vi NS-2 3.2.3 Cc chc nng ca NSCRIPT trong giao din ho ngi dng

Hnh 8: Bn thnh phn c bn ca Nscript GUI

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

Chng 3: Gii thiu cc phn mm dng kt hp vi NS-2 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 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.

Chng 3: Gii thiu cc phn mm dng kt hp vi NS-2 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: 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>]

Chng 3: Gii thiu cc phn mm dng kt hp vi NS-2 [-Pprinter|-o output_file|-O output_file] [[-<digit> set_name] [-zg zero_color] [-zw zero_size] [-a] [-dl <delay>] input_files... -bar V th thanh vi c s base brd, chiu rng width brw v offset -bof -stk V th thanh cha ngn xp tp s liu -fitx T l cc thit lp kht vi trc X [0,1] -fity T l cc thit lp kht vi trc Y [0,1] -fmtx In nh dng theo trc X -fmty In nh dng theo trc Y -scale Chia t l file u ra theo tha s (Scale the output file with factor) -O fn In file u ra my in (Printer ready output file) -o fn File u ra c m ho (Encapsulated (document) output file) -bb V khung bao quanh d liu -db Bt ch debug (ch g ri) -lnx Trc X tnh theo t l logarit -lny Trc Y tnh theo t l logarit -m -M nh du cc im mt cch r rng (M thay i theo mu) -nl Khng v cc dng (v tn x) -ng Khng vit ch thch -nb Khng v cc button -p -P nh du im bng du chm. P ngha l chm to. -rv Hin th mu en trng -tk V du phn thi thay v v khung li ton b -a Khi ng trong ch minh ha -dl 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

Chng 3: Gii thiu cc phn mm dng kt hp vi NS-2 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) 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, copy packet tracegraph202linux.tar vo th mc ny v chy lnh: 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
4.1 V d

OTCL SCRIPT TRONG NS-2

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) $ns color 1 Blue

Chng 4: OTcl script trong NS-2


$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: Khi to nh dng packet. 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: To i tng ghp nh cc node v cc link Connect (ni) cc i tng Thnh phn Mng c to li vi nhau (v d nh hm attach-agent) Gn gi tr cho cc tham s cho cc i tng Thnh phn Mng (thng l cho cc i tng ghp) To cc connection gia cc agent (v d nh to connection gia tcp v sink) Xc nh tuyn ty chn trnh din NAM. v.v

Chng 4: OTcl script trong NS-2 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/nsnode.tcl vit Simulator to node nh th no. $ns duplex-link node1 node2 bandwidth delay queue-type: 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 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/ns-default.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.

Chng 4: OTcl script trong NS-2 $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 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.

Chng 4: OTcl script trong NS-2

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

Chng 4: OTcl script trong NS-2 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 udp0 [new Agent/UDP] set null [new Agent/Null] $ns attach-agent $n0 $udp0 $ns attach-agent $n1 $null $ns connect $udp0 $null 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 tcp [new Agent/TCP] set tcp_sink [new Agent/TCPSink] $ns attach-agent $n0 $tcp $ns attach-agent $n1 $tcp_sink $ns 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.

Chng 4: OTcl script trong NS-2 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 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

Chng 4: OTcl script trong NS-2 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. 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_

Chng 4: OTcl script trong NS-2 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] $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:

Chng 4: OTcl script trong NS-2 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 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. $ns rtproto type 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 $ns multicast (ngay sau khi thit lp $ns [new Scheduler]) $ns mrtproto type 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 set udp0 [new Agent/UDP] $ns attach-agent $n0 $udp0

Chng 5: Cc v d c bn # 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]

Chng 5: Cc v d c bn $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 $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"

Chng 5: Cc v d c bn $ns run Kt qu ca m phng:

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

Chng 5: Cc v d c bn # 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 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." }

Chng 5: Cc v d c bn #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 $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"

Chng 5: Cc v d c bn $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:

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

Chng 5: Cc v d c bn

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


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

Enrique Campos-Nanez. Nscript Version 1.0a Users Manual. Department of Systems Engineering, University of Virginia. March 13, 2001 Eitan Altman and Tania Jimnez. NS Simulator for beginers. Univ de Los Andes, Mrida, Venezuela and ESSI, Sophia-Antipolis, France. December 4, 2003. Jae Chung and Mark Claypool. NS by example. http://www.nile.wpi.edu/ns Peng Zhang, Raimo Kantola, Zhansong Ma. Design and Implement of a new routing Simulator. Laboratory of Telecommunication Technology, Helsinki University of Technology, Findland. Xipeng Xiao and Linoel M. Ni. Internet QoS: A big Picture. Departurement of Computer Science, 3115 Engineering Building, Michigan State University. Johanna Antila. TCP Performace Simulations Using Ns2. Carey Williamson. Internet Traffic Measurement. Department of Computer Science, University of Calgary. November 24, 2001. http://www.Tcl.tk TCL homepage http://www.isi.edu/nsnam/nam/ NAM Network Animator http://isi.edu/nsnam/xgraph XGRAPH homepage http://www.geocities.com/tracegraph/ TRACEGRAPH homepage http://home.gwu.edu/~ecamposn/software.html NSCRIPT NS-2 scripting tool http://www.isi.edu/nsnam/ns/tutorial/index.html Marc Greis Tutorial for the Network Simulation ns

You might also like