Вы находитесь на странице: 1из 226

Nhn xt ca gio vin hng dn

Nhn xt ca gio vin phn bin

LI CM N
Chng con xin t lng bit n su sc n ba m v gia nh nui dng, gio
dc v to iu kin tt nht cho chng con thc hin ti ny.
Chng em xin chn thnh cm n khoa Cng ngh thng tin v qu Thy, C
trong khoa, trng i hc Khoa hc T nhin TpHCM to iu kin cho chng
em hc tp v thc hin lun vn tt nghip ny.
c bit, chng em xin chn thnh cm n Thy Phan Xun Huy tn tnh
hng dn, ch bo chng em trong qu trnh thc hin ti.
Mc d chng em c gng hon thnh lun vn vi tt c s n lc ca bn
thn, nhng lun vn chc chn khng trnh khi nhng thiu st nht nh, knh
mong s cm thng v tn tnh ch bo ca qu Thy, C v cc bn.

Ph Qu&Quang Hiu
Thng 7/2005

MC LC
Trang
Danh sch cc bng................................................................................................ 12
Danh sch cc hnh ................................................................................................ 14
Danh sch cc t vit tt ........................................................................................ 18
Tm tt lun vn .................................................................................................... 22
Chng m u ..................................................................................................... 24
1. Dn nhp................................................................................................. 24
2. Mc ch v ngha ti....................................................................... 25
3. i tng v phm vi nghin cu............................................................ 25
A. Ngn ng m hnh ha mng v cc mi trng gi lp mng .......................... 27
Phn 1

SSFNet Models v Domain Modeling Language......................... 27

Chng 1 SSF v SSFNet Models .................................................... 28


1.1 SSF Model............................................................................. 28
1.1.1 Gii thiu.................................................................... 28
1.1.2 Cc c tnh ca SSF .................................................. 28
1.1.3 Cc phin bn ci t ca SSF .................................... 28
1.1.4 Gii thiu cc lp c s ca SSF................................. 29
1.1.5 Trnh t qu trnh gi lp............................................. 34
1.2 SSFNet Model ....................................................................... 36
1.2.1 Gii thiu.................................................................... 36
1.2.2 T chc th mc SSFNet ............................................ 38
1.2.3 Cc giao thc h tr trong SSFNet.............................. 38
1.2.4 Cc gi th vin trong SSFNet.................................... 39
1.2.4.1 SSF.OS ................................................................. 39
1.2.4.2 SSF.Net ................................................................ 40
Chng 2 Domain Modeling Language ............................................ 42
2.1 Gii thiu ngn ng DML ..................................................... 42

2.1.1 DML l g?.................................................................. 42


2.1.2 Cu trc ng php ca DML ....................................... 42
2.1.3 Qu trnh bin dch DML ............................................ 44
2.2 Cc bc ci t v bin dch chng trnh............................ 45
2.2.1 Mi trng Windows .................................................. 45
2.2.2 Mi trng Unix ......................................................... 48
2.3 Cc i tng v thuc tnh ca DML .................................. 48
2.3.1 i tng Net ............................................................. 50
2.3.1.1 nh ngha v khai bo ......................................... 50
2.3.1.2 Cc thuc tnh ca Net.......................................... 52
2.3.2 i tng Host ........................................................... 54
2.3.2.1 nh ngha v khai bo ......................................... 54
2.3.2.2 Cc thuc tnh ca Host ........................................ 54
2.3.3 i tng Router ........................................................ 56
2.3.3.1 nh ngha v khai bo ......................................... 56
2.3.3.2 Cc thuc tnh ca Router ..................................... 57
2.3.4 Link ............................................................................ 58
2.3.4.1 nh ngha v khai bo ......................................... 58
2.3.4.2 Cc thuc tnh ca Link ........................................ 59
2.3.5 Traffic......................................................................... 60
2.3.5.1 nh ngha v khai bo ......................................... 60
2.3.5.2 Cc thuc tnh ca Traffic..................................... 60
2.3.6 Protocol ...................................................................... 60
2.3.6.1 nh ngha v khai bo ......................................... 60
2.3.6.2 Cc thuc tnh ca Protocol .................................. 61
2.3.6.3 Cu hnh mt Host l FTP Client ......................... 65
2.3.6.4 Cu hnh mt Host l FTP Server.......................... 66
2.4 Ciao thc BGP v SSFNet ................................................... 67
2.4.1 Gii thiu v giao thc BGP ....................................... 67

2.4.2 Cc yu t nh gi BGP ............................................ 69


2.4.3 BGP trong SSFNet...................................................... 71
2.4.3.1 Cc m hnh ty chn cu hnh BGP .................... 71
2.4.3.2 To cc sub-network v cc AS ............................ 71
2.4.3.3 Chng giao thc cu hnh cho Boundary Router ... 72
2.4.3.4 Cc thuc tnh ca BGP ........................................ 73
2.5 Cc t kha h tr trong DML............................................... 75
2.5.1 T kha _extend ......................................................... 75
2.5.2 T kha _find ............................................................. 75
2.5.3 T kha _dictionary .................................................... 76
2.5.4 V d minh ha ........................................................... 76
Phn 2

Cng c gi lp mng NS-2 v Ngn ng TCL ........................... 78

Chng 3 Cng c gi lp mng NS-2 ............................................. 78


3.1 Tng quan v NS-2 ............................................................. 78
3.2 Kin trc ca NS-2 .............................................................. 78
3.3 Cc thnh phn cu hnh mng trong NS-2 .......................... 81
3.3.1 Lp Simulator ............................................................... 78
3.3.1.1 Khi to i tng Simulator................................ 78
3.3.1.2 Cc b lp lch v cc s kin .............................. 78
3.3.1.3 Cc phng thc khc ......................................... 83
3.3.1.4 Tm tt ................................................................ 83
3.3.2 Cu hnh Node ............................................................. 84
3.3.2.1 To Node ............................................................. 84
3.3.2.2 Cu hnh cho MobileNode ................................... 84
3.3.2.3 Cu hnh cho Base-Station Node .......................... 85
3.3.2.4 Bng tm tt cc tham s cu hnh cho Node ....... 85
3.3.3 To lin kt cho cc Node ............................................ 87
3.4 Cc Agent trong NS-2 .......................................................... 88
3.4.1 Gii thiu ..................................................................... 88

3.4.2 UDP Agent .................................................................. 89


3.4.3 TCP Agent ................................................................... 91
3.4.3.1 Mt s TCP agent bn gi ................................... 92
3.4.3.1.1 TCP Tahoe .................................................. 92
3.4.3.1.2 TCP Reno .................................................... 93
3.4.3.1.3 TCP Newreno .............................................. 94
3.4.3.2 Mt s TCP agent bn nhn ................................. 94
3.4.3.3 TCP agent hai chiu ............................................. 95
3.4.4 Cc v d minh ha ...................................................... 96
3.5 ng dng trong NS-2 ........................................................... 97
3.5.1 Lp Application ........................................................... 97
3.5.2 Phn loi ng dng ...................................................... 97
3.5.2.1 ng dng pht sinh lu lng mng .................... 98
3.5.2.2 ng dng gi lp mng ........................................ 99
3.5.3 Cc v d minh ha .................................................... 100
3.6 Mng khng dy trong NS-2 .............................................. 101
3.6.1 Cc thnh phn cu hnh ca mt MobileNode .......... 101
3.6.2 To m hnh mng khng dy trong NS-2 .................. 101
3.6.3 To kch bn chuyn ng cho cc Node .................... 103
3.6.4 Giao thc nh tuyn cho mng khng dy ................. 104
3.6.4.1 Gii thiu tng quan .......................................... 104
3.6.4.2 Giao thc nh tuyn TORA .............................. 106
3.6.4.3 Giao thc nh tuyn DSDV .............................. 108
3.6.4.4 Giao thc nh tuyn DSR ................................. 110
3.6.4.5 Giao thc nh tuyn AODV ............................. 112
Chng 4 Ngn ng TCL ................................................................ 117
4.1 Tng quan v mt s c im ca ngn ng TCL ............. 117
4.2 C php ca TCL ............................................................... 118
4.2.1 Khai bo bin v mng ............................................... 118

4.2.2 Cc biu thc ton hc trong TCL .............................. 119


4.2.3 Thay th v lp nhm ................................................. 120
4.2.3.1 Thay th ............................................................. 120
4.2.3.2 Lp nhm ........................................................... 121
4.2.4 Cu trc iu khin .................................................... 121
4.2.4.1 iu kin if ........................................................ 121
4.2.4.2 Vng lp for ....................................................... 121
4.2.4.3 Vng lp while .................................................. 122
4.2.4.4 Th tc .............................................................. 122
4.2.4.5 Tp lnh ca TCL .............................................. 124
4.2.4.5.1 Nhm lnh iu khin ................................ 124
4.2.4.5.2 Nhm lnh s kin ..................................... 125
4.2.4.5.3 Nhm lnh v file ...................................... 125
4.2.4.5.4 Nhm lnh trn danh sch ......................... 126
4.2.4.5.5 Nhm lnh trn x l chui ....................... 127
4.2.4.5.6 Nhm lnh trn x l bin ......................... 127
4.2.4.5.7 Nhm lnh v thi gian ............................. 128
Chng 5 Ngn ng hng i tng Otcl ...................................... 133
5.1 Otcl l ngn ng hng i tng ca TCL ....................... 133
5.2 Lp v i tng trong Otcl ............................................... 133
5.3 Phng thc khi to v hy cho lp ................................. 133
5.4 Khai bo cc phng thc cho lp ..................................... 134
5.5 Khai bo cc thnh phn d liu ......................................... 135
B. Gii thiu cc cng c pht sinh Topology mng ............................................ 137
Phn 3

Cc cng c h tr ngn ng DML ........................................... 137

Chng 6 DMLEditor..................................................................... 138


6.1 Gii thiu............................................................................. 138
6.2 Cc tnh nng ni bt ca DMLEditor.................................. 138
6.3 Cc bc ci t DMLEditor ............................................... 138

6.4 Qu trnh thit k trn DMLEditor....................................... 139


Chng 7 RacewayViewer ............................................................. 143
7.1 Gii thiu............................................................................. 143
7.2 Cc tnh nng ni bt ca RacewayViewer .......................... 143
7.3 Cc bc ci t RacewayViewer........................................ 143
7.4 Qu trnh thit k trn RacewayViewer................................ 144
Chng 8 NetViewer ...................................................................... 148
8.1 Gii thiu............................................................................. 148
8.2 Cc tnh nng ni bt ca NetViewer ................................... 148
8.3 Cc bc ci t NetViewer ................................................ 148
8.4 Qu trnh thit k trn NetViewer ........................................ 149
Phn 4

Cc cng c h tr ngn ng TCL ............................................ 155

Chng 9 BRITE............................................................................ 155


9.1 Thit k v ci t BRITE .................................................. 155
9.1.1 Download v ci t BRITE........................................ 156
9.1.2 Giao din bng GUI .................................................... 158
9.1.3 Giao din bng dng lnh............................................ 158
9.1.4 Cc file cu hnh ......................................................... 159
9.1.5 nh dng output ca BRITE ...................................... 160
9.2 Kin trc ca BRITE .......................................................... 162
9.2.1 Qui trnh lm vic ca BRITE .................................... 162
9.2.2 Kin trc ca BRITE .................................................. 162
9.2.2.1 Lp Model ......................................................... 163
9.2.2.1.1 M hnh ng cp Router-level .................. 164
9.2.2.1.2 M hnh ng cp AS-level ....................... 166
9.2.2.1.3 M hnh phn cp top-down ...................... 166
9.2.2.1.4 M hnh phn cp botton-up ...................... 167
9.2.2.1.5 M hnh Imported File ............................... 167
9.3 Cc tham s trong giao din BRITE ................................... 168

9.4 Hn ch ca BRITE ............................................................ 170


Chng 10 NS-2 v NAM ................................................................ 171
10.1 Ci t NS-2 v NAM trn Window.................................. 171
10.1.1 Download NS-2 v NAM ......................................... 171
10.1.2 Ci t NS-2 ............................................................ 171
10.1.3 Chy NS-2 v NAM ................................................. 172
10.2 Ci t NS-2 v NAM trn Linx ....................................... 173
10.2.1 Download NS-2 v NAM ......................................... 173
10.2 .2 Ci t ..................................................................... 174
10.2.3 Chy NS-2 v NAM ................................................. 175
Phn 5

Cc cng c khc ...................................................................... 176

Chng 11 Otter ............................................................................... 176


11.1 Gii thiu .......................................................................... 176
11.2 Cc tnh nng ni bt ca Otter.......................................... 176
11.3 Cc bc ci t Otter ....................................................... 177
11.4 Qu trnh thit k trn Otter............................................... 178
C. Xy dng chng trnh ng dng BRITE ........................................................ 182
Phn 6

C s l thuyt.......................................................................... 182

Chng 12 L thuyt c bn v mng khng dy ............................. 183


12.1 Gii thiu ......................................................................... 183
12.1.1 Mng khng dy c nh .......................................... 184
12.2.2 Mng khng dy di ng .......................................... 185
12.2 Mng MANET ................................................................. 185
12.2.1 Tng quan v mng MANET ................................... 185
12.2.2 Phn loi mng MANET theo cch thc nh tuyn . 186
12.2.2.1 Mng MANET nh tuyn Single-hop ............ 186
12.2.2.2 Mng MANET nh tuyn Multi-hop ............... 186
12.2.2.3 M hnh MANET nh tuyn MobileMulti-hop 187
12.2.3 Phn loi mng MANET theo chc nng ca Node .. 187

10

12.2.3.1 Mng MANET ng cp .................................. 187


12.2.3.2 Mng MANET phn cp .................................. 187
12.2.3.3 Mng MANET kt hp .................................... 188
Phn 7

Xy dng ng dng................................................................... 190

Chng 13 Gii thiu ng dng ........................................................ 190


13.1 Gii thiu ......................................................................... 190
13.2 Ngn ng ci t v tnh tng thch ................................ 190
13.3 Cc m hnh mng trong ng dng ................................... 191
13.3.1 Mng MANET ......................................................... 191
13.3.2 Wired-cum-Wireless ................................................ 191
Chng 14 Cc chc nng chnh ca ng dng................................. 192
14.1 Gii thiu cc lp trong module wireless .......................... 192
14.2 Giao din chnh module Wireless ..................................... 193
14.3 Cu hnh cc wireless node ............................................... 196
14.4 To kch bn chuyn ng ................................................ 199
14.4.1 To bng tay ....................................................... 201
14.4.2 To ngu nhin ................................................... 202
14.4.3 ngha ca to bng tay v ngu nhin ............... 202
14.5 To kch bn ng dng ..................................................... 202
14.6 Gii thut pht sinh s Domain v Cluster......................... 204
14.7 Tin hnh gi lp ............................................................... 206
14.7.1 Cc bc xy dng kch bn v bin dch ................. 206
14.7.2 Cc v d minh ha .................................................. 206
14.7.2.1 Mng MANET.................................................. 206
14.7.2.2 Mng Wired-cum-Wireless ............................... 208
Tng kt............................................................................................................... 210
Ph lc Cc v d minh ha ngn ng DML v TCL ......................................... 212
Ti liu tham kho ............................................................................................... 224

11

DANH SCH CC BNG


Bng 1.1 Phin bn hin ti ca SSF
Bng 1.2 Ci t cc lp Event trong C++ v Java
Bng 1.3 Ci t cc lp Entity trong C++ v Java
Bng 1.4 Ci t cc lp inChannel, outChannel trong C++ v Java
Bng 1.5 Ci t cc lp process trong C++ v Java
Bng 1.6 on chng trnh ngun ca v d v SSF
Bng 1.7 Cc giao thc trong SSFNet
Bng 1.8 Cc gi th vin h tr trong SSFNet
Bng 1.9 Cc lp chnh ca gi SSF.Net
Bng 2.1 Cc i tng v thuc tnh ca DML
Bng 3.1 Cc tham s cu hnh cho MobileNode
Bng 3.2 Cc Agent h tr trong NS-2
Bng 3.3 Cc phng thc ca lp Application
Bng 3.4 Cc phng thc ca lp TrafficGenerator
Bng 4.1 Cc ton t trong TCL
Bng 4.2 Nhm lnh iu khin
Bng 4.3 Nhm lnh s kin
Bng 4.4 Nhm lnh file
Bng 4.5 Nhm lnh x l trn danh sch
Bng 4.6 Nhm lnh x l trn chui
Bng 4.7 Nhm lnh x l bin
Bng 4.8 Nhm lnh x l thi gian
Bng 4.9 Cc tham s ty chn trn I/O
Bng 4.10 Cc tham s ty chn x l trn file
Bng 4.11 Cc c x l tc v m file
Bng 4.12 c php exec nh hng I/O
Bng 4.13 C php cc thao tc trn file

12

Bng 9.1 Cc tham s thit lp cho Node


Bng 9.2 Cc tham s thit lp cho cnh
Bng 9.3 Cc tham s ca m hnh ng cp
Bng 9.4 Cc tham s ca m hnh phn cp top-down
Bng 9.5 Cc tham s ca m hnh phn cp botton-up
Bng 9.6 Cc tham s ca m hnh Imported File
Bng 10.1 Cch thc ci t NS-2 trong Window
Bng 14.1 Cc lp trong module wireless
Bng 14.2 Cc agent c ci t trong module Wireless
Bng 14.3 Cc ng dng c ci t trong module Wireless

13

DANH SCH CC HNH


Hnh 1.1 S m hnh SSFNet
Hnh 1.2 V d HelloWorld trong SSF
Hnh 1.3 S ca qui trnh gi lp
Hnh 1.4 M hnh SSNet
Hnh 1.5 Cc tng x l ca SSFNet
Hnh 1.6 M hnh ProtocolGraph
Hnh 1.7 Peer-to-Peer Network
Hnh 2.1 Cc thnh phn mng c s dung trong DML
Hnh 2.2 Cu trc ng php ca DML
Hnh 2.3 Qu trnh khi to cc i tng gi lp
Hnh 2.4 Trnh t bin dch file DML
Hnh 2.5 Hp thoi cu hnh bin CLASSPATH
Hnh 2.6 Hp thoi to bin CLASSPATH
Hnh 2.7 Kt qu bin dch file DML
Hnh 2.8 Minh ha nh ngha i tng Net
Hnh 2.9 V d khai bo chng giao thc nh tuyn cho Router
Hnh 2.10 V d thuc tnh Link
Hnh 2.11 ProtocolSession
Hnh 2.12 Chng giao thc ca mt FTP Client
Hnh 2.13 Chng giao thc ca mt FTP Server
Hnh 2.14 S kin trc ca qu trnh nh tuyn ng
Hnh 2.15 EBGP v IBGP
Hnh 2.16 Qu trnh x l nh tuyn ca BGP

Hnh 2.17 Thuc tnh AS_PATH


Hnh 2.18 Thuc tnh NEXT_HOP
Hnh 2.19 Chng giao thc cho mt Boundary Router
Hnh 3.1 Kin trc tng quan ca NS

14

Hnh 3.2 M hnh n gin ca NS


Hnh 3.3 M hnh hot ng ca NS-2
Hnh 3.4 Cu trc Heap gim
Hnh 3.5 Hai loi ng dng trong NS-2
Hnh 3.6 Cc giao thc nh tuyn trong mng MANET
Hnh 3.7 M hnh nc chy trong mng vi giao thc TORA
Hnh 3.8 Cc gi tr hop-count trong TORA
Hnh 6.1 Giao din chnh ca DMLEditor
Hnh 6.2 To id cho mng
Hnh 6.3 Giao din cu hnh cho Host, Router
Hnh 6.4 Giao din to lin kt gia cc Host,Router
Hnh 6.5 Giao din thit lp thng s cho Host, Router
Hnh 6.6 Giao din cu hnh card mng
Hnh 6.7 Giao din thit lp bng nh tuyn
Hnh 6.8 Danh sch bng nh tuyn
Hnh 7.1 Giao din chnh ca RacewayViewer
Hnh 7.2 Minh ha chc nng zoom ton b network
Hnh 7.3 Minh ha chc nng scale mt sub-network
Hnh 8.1 Giao din chnh ca NetViewer
Hnh 8.2 Giao din ca NetViewer khi m mt file DML
Hnh 8.3 Giao din tm kim node
Hnh 8.4 Giao din chnh sa cc thuc tnh
Hnh 8.5 Giao din thm Node vo trong mng
Hnh 8.6 M hnh mng sau khi cu hnh
Hnh 8.7 Cc thnh phn mng di dng TreePopUp
Hnh 9.1 Cu trc tng qut ca BRITE
Hnh 9.2 Cu trc th mc ca phin bn Java
Hnh 9.3 Cu trc th mc phin bn C++
Hnh 9.4 s tng tc gia phn giao din GUI vi phn pht sinh topo

15

Hnh 9.5 File cu hnh ca m hnh AS Waxman


Hnh 9.6 File cu hnh ca m hnh pht sinh NLANR
Hnh 9.7 V d file output ca m hnh Flat-RouterWaxman
Hnh 9.8 Cu trc ca mt Topology trong BRITE
Hnh 9.9 M hnh ca lp Mode
Hnh 9.10 Hai m hnh phn b node randomly v Heavy-Tailed
Hnh 9.11 M hnh phn cp top-down
Hnh 9.12 M hnh ImportedFile
Hnh 10.1 Cu trc th mc ca NS-2 ci t trn Window
Hnh 10.2 Cu trc th mc ca NS-2 trn Linux
Hnh 11.1 Giao din chnh ca Otter
Hnh 11.2 Giao din load file
Hnh 11.3 Giao din thit k trn Otter
Hnh 11.4 M hnh kt xut theo trng thi Tunnel
Hnh 11.5 M hnh kt xut theo Domain Name
Hnh 11.6 M hnh kt xut theo cu trc cy th mc ca mt Website
Hnh 12.1 M hnh mng khng dy c nh
Hnh 12.2 M hnh mng khng dy di ng (AdHoc)
Hnh 12.3 nh tuyn Single-hop
Hnh 12.4 nh tuyn multi-hop
Hnh 12.5 M hnh mng phn cp
Hnh 12.6 M hnh mng Aggregate Ad hoc
Hnh 14.1 Giao din chnh module Wireless ca BRITE
Hnh 14.2 Ca s thng bo trng thi pht sinh topo
Hnh 14.3 Giao din lu file
Hnh 14.4 Giao din cu hnh chung cho cc MobileNode
Hnh 14.5 Giao din cu hnh cho tng MobileNode
Hnh 14.6 Giao din tao kch bn chuyn ng cho cc MobileNode
Hnh 14.7 Giao din thit lp ng dng cho mng

16

Hnh 14.8 M hnh mng wire-cum-wireless


Hnh 14.9 M hnh mng MANET trong NAM ( cnh 1 )
Hnh 14.10 M hnh mng MANET trong NAM ( cnh 2 )
Hnh 14.11 M hnh mngWired-cum-Wireless trong NAM

17

DANH SCH CC T VIT TT


1. ABR: Associa tivity-Based Routing - nh tuyn da trn tnh lin kt.
2. ACK: Acknowledgment - Tin bo nhn.
3. AdvertisedWnd: Advertised Receive Window Size Kch th c ca s nhn
qung b.
4. AODV: Ad hoc On-Demand Distance Vector Giao thc nh tuyn vector
khong cch theo yu cu dng cho mng Ad hoc.
5. AP: Access Point - im truy cp.
6. API: application program interface - H giao tip lp trnh ng dng.
7. ARP: Address Resolution Protocol - Giao thc phn gii a ch.
8. AS: Autonomous System - Vng t tr.
9. BGP: Border Gateway Protocol - giao thc trao i cc thng tin nh tuyn gia
cc inter-Autonomous System (AS).
10. BRITE: Boston university Representative Internet Topology gEnerator - Cng
c pht sinh topo theo chun Internet ca i hc Boston.
11. BS: Base-Station - Trm chuyn tip gia wired v wireless network.
12. BSD: Berkeleys Software Distribution - Nh phn phi phn mm ca
Berkeley.
13. CBR: constant Bit Rate - Tc bit khng i.
14. CBRP: Cluster Based Routing Protocol - giao thc nh tuyn da trn nhm
15. ConThresh: Threshhold of the Control Window Size - ng ng kch thc ca s
iu khin.
16. D-ACK: Delayed-ACK Tin bo nhn tr.
17. DAG: Directed Acyclic Graph - th khng vng c hng.
18. DDR: Distributed Dynamic Routing - nh tuyn phn phi ng.
19. DML: Domain Modeling Language - Ngn ng m hnh ha domain mng.
20. DOS: Disk Operating System - H iu hnh a.

18

21. DSDV: Destination-Sequenced Distance Vector vector kho ng cch tun t


n a ch ch.
22. DSR: Dynamic Source Routing - nh tuyn source route ng.
23. DV: Distance-Vector - vector khong cch.
24. EBGP: External Border Gateway Protocol Giao thc nh tuyn lin AS.
25. FTP: File Tranfer Protocol Giao thc truyn file.
26. GNU
27. GSR: Global State Routing - nh tuyn trng thi ton cc.
28. GUI: Graphical User Interface - Giao din ngi dng bng ha.
29. HTTP: Hypertext Transfer Protocol Giao thc truyn siu vn bn.
30. IBGP: Internal Border Gateway Protocol Giao thc nh tuyn ni b AS.
31. ICMP: Internet Control Message Protocol Giao th c iu khin cc thng ip
Internet.
32. IETF: Internet Engineering Task Force - T chc nghin cu Internet.
33. IP: Internet Protocol Giao thc Internet.
34. ISS: Initial Sequence Number Gi tri khi to tun t.
35. JDK: Java Development Kit - B cng c pht trin Java.
36. LAN: Local Area Network - Mng cc b.
37. LAR: Location Aided Routing - nh tuyn da vo v tr.
38. MAC: Media Access Control - Kim sot truy cp mi trng truyn thng.
39. MANET: Mobile Ad hoc Network - Mng di ng khng kim sot.
40. MaxConWnd: Maximum Congestion Control Window Size Kch thc ti a
khung nghn mch.
41. MaxIdleTime: Maximum Idle Time - Thi gian nhn ri ti a.
42. MaxRexmitTimes: Maximum Retransmission Times - S ln ti a c php
truyn li.
43. MPLS: Multiprotocol Label Switching - Chuyn mch nhn a giao thc.
44. MSL: Maximum Segment Lifetime - Thi gian sng ti a ca mt phn on
d liu.

19

45. MSS: Maximum Segment Size Kch thc ti a ca mt phn on.


46. NAM: Network Animator - B m phng mng.
47. NHI: Network Host Interface - a ch giao tip ca cc thnh phn mng trong
ngn ng DML.
48. NIC: Network Interface Card Card giao tip mng.
49. NS: Network Simulator - B gi lp mng.
50. OSPF: Open Shortest Path First Protocol Giao thc nh tuyn ng i ngn
nht.
51. OTcl: Object Tool Command Language Ngn ng lnh hng i tng.
52. PDA : Personal Digital Assistant - Thit b h tr c nhn.
53. RBP: Rate Based Pacing - tm dch Nhp da trn tc .
54. RcvWndSize: Receive Window Size Kch thc vng ca s bn nhn.
55. RMSS: Receiver Maximum Segment Size Kch thc ti a phn on bn
nhn.
56. RREP: Route Reply - Phn hi thng tin nh tuyn.
57. RREQ: Route Request Yu cu thng tin nh tuyn.
58. RRER: Route Error Thng bo l i thng tin nh tuyn.
59. RTP: Real-time Transport Protocol - Giao thc truyn ti thi gian thc.
60. RTT: Round Trip Time - Thi gian mt qu trnh gi v nhn.
61. SendWndSize: Send Window Size Kch thc vng ca s gi.
62. SMSS: Sender Maximum Segment Size Kch thc ti a phn on bn gi.
63. SSF: Scalable Simulation Framework tm dch l Khung gi lp mng gc.
64. SSFNet: Scalable Simulation Framework Network Model M hnh mng da
trn nn SSF.
65. SYN: Synchronization - s ng b ho.
66. TCL: Tool Command Language Ngn ng lnh.
67. TCP: Transmission Control Protocol Giao thc kim sot s truyn.
68. TORA: Temporally Ordered Routing Algorithm - thut ton nh tuyn trnh t
tm thi.

20

69. TTL: Time To Live - Thi gian sng.


70. UDP: User Datagram Protocol tm dch l Giao thc d liu ngi dng.
71. VINT: Virtual Internet Testbed - Th nghim mng Internet o.
72. WRP: Wireless Routing Protocol - Giao thc nh tuyn mng khng dy.
73. ZHLS: Zone-based Hierarchical Link State routing protocol - giao th c nh
tuyn trng thi lin kt phn cp da trn vng.
74. ZRP: Zone Routing protocol - Giao thc nh tuyn da theo vng.

21

TM TT LUN VN
Thng tin chung v ti:
Tn ti:

Tm hiu ngn ng m hnh ha mng v xy dng b cng c pht sinh


Topology cho mng
GVHD: Thc s Phan Xun Huy
Sinh vin thc hin:
1. MSSV: 0112067

H v tn:

Hunh Ph Qu

2. MSSV: 0112218

H v tn:

Nguyn Trn Quang Hiu

Tm tt ni dung lun vn:


Lun vn tp trung vo vic tm hiu c s l thuyt v mng khng dy v mt
s ngn ng m hnh ha mng nh DML, TCL t xy dng mt ng dng dng
pht sinh topology, kch bn chuyn ng v cc ng dng cho mng khng dy
m ch yu l mng MANET cho b cng c gi lp mng NS-2.

Mt s t kha chnh lin quan n ni dung ti:


- BRITE: Boston university Representative Intenet Topology gEnerator
- DML: Domain Modeling Language
- MANET: Mobile Ad Hoc Network
- NAM: Network Animator
- NS-2: Network Simulator version 2
- OTCL: Object Tool Command Language
- SSF: Scalable Simulation Framework
- SSFNet: Scalable Simulation Framework Network Model
- TCL: Tool Command Language

22

Lnh vc p dng:
Lun vn c ng dng cho vic tm hiu, nghin cu cc thnh phn mng, cc
m hnh mng khng dy trong mi trng gi lp.

Cc thut ton, phng php, quy trnh chnh c nghin cu, ng dng trong
ti:
- Gii thut pht sinh s Domain v s Cluster cho m hnh mng khng dy v c
dy trong ngn ng TCL.
- Gii thut to a ch cho cc node (wired, wireless v BS node) trong m hnh
mng.

Cc cng c, cng ngh chnh c nghin cu, ng dng trong ti:


- Mi trng lp trnh Java s dng b JDK 1.4, cng c thit k JBuilder 9.0 trn
window v Linux.
- Trong ti ny, chng ti tp trung vo cc ngn ng m hnh ha mng DML,
TCL v cng c pht sinh topology mng BRITE v cng c gi lp mng NS-2.

Xc nhn ca GVHD

23

CHNG M U
1. Dn nhp:
Ngy nay, mng my tnh ton cu hay cn gi l mng Internet ang pht
trin mt cch mnh m v rng ln, tr thnh ni trao i thng tin v lu tr d
liu vi khi lng khng l. Cc cng ngh mi, cc giao thc mi nhanh chng
c ra i v trin khai trn thc t nhm p ng cho s pht trin nh v bo,
cng nh cc i hi ngy cng khc khe ca mng my tnh tng lai.
Internet gi y tr nn qu s v phc tp n ni chng ta kh c th
hiu c cch thc hot ng v nguyn tc vn hnh ca n trong thi k mi.
Do , i vi cc nh nghin cu v pht trin, vic kim tra s hot ng ca
cc tnh nng mi, cc giao thc mi (nh cc giao thc truyn d liu, cc giao
thc nh tuyn,) trc khi trin khai trn thc t l rt quan trng v cn thit.
Cng vic ny khng nhng gip gim ri ro v chi ph m cn m bo s chc
chn v tnh n nh ca vic trin khai cc cng ngh mi. Chnh v th m mt
mi trng gi lp mng hon chnh l cng c thit yu cho vic kim tra, th
nghim cc cng ngh mi trn cc mng ln c cu trc phc tp.
Ngoi mc ch kinh t thng mi, cc cng c gi lp mng cn gp phn
rt ln trong vic h tr cho cc mc ch hc tp v nghin cu ca sinh vin,
ging vin chuyn ngnh mng my tnh cc trng i hc-Cao ng, cng
nh cc c nhn, t chc ang lm vic trong lnh vc mng.
Hin nay, cc cng c v mi trng gi lp mng xut hin cha nhiu trong
khi nhu cu ca th trng l rt ln, nht l khi mng khng dy ra i v ngy
cng tr nn ph bin th nhu cu ny cng tr nn cp thit. Trong phm vi ca
ti lun vn tt nghip tm hiu ngn ng m hnh ha mng v xy

dng b cng c pht sinh Topology cho mng, chng ti s nghin cu,
tm hiu cc ngn ng m hnh ha mng ang c s dng thng dng, ng
thi gii thiu cc b cng c pht sinh Topology cho mng, v cui cng l xy

24

dng chng trnh ng dng pht sinh Topology cho mng khng dy c kt hp
vi mng c dy.

2. Mc ch v ngha ti:
Trong khi mng my tnh ang ngy cng pht trin khng ngng v tr nn
qu tin dng km theo l tnh phc tp v cng knh khng km, th cc d
n nghin cu, xy dng , pht trin cc mi trng gi lp mng ch mi c
cp v quan tm ng mc trong khong thi gian gn y (khong t nm
1995). iu ny cng hon ton d hiu bi ch khi mng my tnh thc s pht
trin v tr nn phc tp th ngi ta mi ngh n vic xy dng nn cc mi
trng gi lp mng h tr cho cc mc ch hc tp, nghin cu, th nghim v
trin khai cc cng ngh mi trong thc t. Hn na mun xy dng nn cc
cng c mnh p ng c nhu cu pht trin ca mng th phi cn c cc cng
c h tr mnh m (nh cc cng c h tr thit k, cc ngn ng lp trnh cp
cao nh C++, Java, ). t bit i vi ngnh mng my tnh nc ta th y
l mt lnh vc cn kh mi m.
khng nm ngoi xu hng pht trin chung trn, ti tp trung nghin
cu cc mi trng gi lp mng mnh, thng dng, c kh nng c tip tc
pht trin v hon thin trong tng lai. V y cng chnh l mc ch ca
ti m chng ti tm hiu.
ti cn c ngha thit thc trong vic nghin cu v pht trin cc mi
trng gi lp mng, ng thi xy dng nn mt c s nn tng l thuyt v xy
dng mi trng v cc cng c gi lp mng.

3. i tng v phm vi nghin cu:


ti tp trung nghin cu chnh v cc ngn ng m hnh ha mng thng
dng l DML (s dng cho b gi lp SSFNet) v TCL (s dng cho b gi lp
NS-2 v NAM), gii thiu c mt s cng c gi lp mng kh mnh c
pht trin trn hai ngn ng ny.

25

Trong ti c trnh by mt s l thuyt c bn v cc giao thc thng dng


nh BGP, cc gii thut ca TCP nh TCP Tahoe, TCP Reno, cc c s l thuyt
v mng khng dy h tr cho phn xy dng ng dng.
S dng ngn ng TCL pht trin phn ng dung BRITE thm chc nng to
kch bn gi lp trong m hnh mng khng dy c kt hp vi mng c dy, m
tp trung l mng MANET.

26

A. NGN NG M HNH HA MNG V


CC MI TRNG GI LP MNG

PHN 1
SSFNET MODELS V DOMAIN MODELING
LANGUAGE

27

Chng 1
SSF v SSFNet Models

1.1 SSF Model:


1.1.1 Gii thiu
SSF-Scalable Simulation Framework API l mt kin trc phn mm ct li
dng cho vic ln m hnh, tin hnh gi lp v phn tch cu trc ca cc mng
ln, phc tp.

1.1.2 Cc c tnh ca SSF:


c lp v thng nht:
SSF cung cp mt giao din c lp v thng nht cho tt c cc ci t trn
cc s kin gi lp khc nhau. Cc m hnh hng i tng tn dng tnh
nng ny xy dng nn cc mi trng gi lp khc nhau nhm phc v cho
nhng mc ch nht nh.
K tha v ti s dng:
Tnh nng k tha, s dng li m ngun l mt trong nhng u im ln
ca SSF, iu ny gp phn lm hn ch s ph thuc ca cc phin bn ci
tin vo li ci t (Kernel Simulator) v gip cho cc nh pht trin c th
xy dng nn cc ngn ng m hnh ha cp cao hay cc mi trng gi lp c
h tr giao din ha.
M ngun m v a ngn ng:
SSF c ci t trn 2 ngn ng hng i tng mnh l Java v C++, v
c cng b rng ri m ngun cho tt c mi c nhn, t chc trn th gii.
Mnh m:
SSF c kh nng xy dng nn nhng m hnh c hiu qu cao, tnh nng
x l song song v a nhim cc ngun ti nguyn, c kh nng qun l cng
lc nhiu thc th mng gi lp.

1.1.3 Cc phin bn ci t ca SSF

28

Cc phin bn ci t hin ti ca SSF:


Tn phin bn

M t
L phin bn ci tin trn nn Java SSF API, do T chc

Raceway

Renesys pht trin v gii thiu vo nm 1999 vi nhiu ci


t tt, mang tnh thng mi cao
Java SSF API, l phin bn ci tin ca T chc Cooperating

JSSF

Systems trn nn Java, c gii thiu vo thng 4/2000


C++SSF API, l mt phin bn ci tin khc ca T chc
Cooperating Systems trn nn C++, c gii thiu vo thng

CSSF

5/2000
Dartmouth Scalable Simulation Framework, l phin bn ci
tin trn nn C++ SSF API ca trng i hc Dartmouth c

DaSSF

h tr thm chc nng Wireless Simulation, c gii thiu


vo thng 1/2001
Bng 1.1 Phin bn hin ti ca SSF

Hnh 1.1 S m hnh SSFNet

1.1.4 Gii thiu cc lp c s ca SSF


Lp Event:
Lp Event qun l vic lu tr v pht sinh cc s kin cho cc thc th
mng (protocol packet v timer).
Ci t:
Java

C++

29

class Event {

public interface Event {

public:

public Event save();


Event* save();

public void release();

void release();

public boolean aliased();

boolean aliased();

};
Bng 1.2 Ci t cc lp Event trong C++ v Java
Lp Entity:
Lp Entity l lp i din cho tt c cc thc th mng nh Host, Router,
Link, TCP Sessions, Protocol, ...
Ci t:
Java

C++
class Entity {

public interface Entity {

public:

public ltime_t now();

virtual void init() =0;

public void startAll(ltime_t t1);

ltime_t now();

public void startAll(ltime_t t0, ltime_t t1);

void startAll(ltime_t t1);

public ltime_t pauseAll();

void startAll(ltime_t t0, ltime_t t1);

public void resumeAll();

ltime_t pauseAll();

public void joinAll();

void resumeAll();

public ltime_t alignto(Entity s);

void joinAll();

public Object alignment();

Object* alignment();

public java.util.Vector

ltime_t alignto(Entity* s);

coalignedEntities();

// null-terminated

public void init();

Entity** coalignedEntities();

public java.util.Vector processes();

// null-terminated

public java.util.Vector inChannels();

process** processes();

public java.util.Vector outChannels();

// null-terminated

30

inChannel** inChannels();
// null-terminated
outChannel** outChannels();
};
Bng 1.3 Ci t cc lp Entity trong C++ v Java
Lp inChannel, outChannel:
Lp inChannel, outChannel qun l vic truyn thng cc s kin cho
mng (protocol interaction, ).
Ci t:
Java

C++
class inChannel {

public interface inChannel {


public Entity owner();

public:
Entity* owner();

public Event[ ] activeEvents();

// null-terminated

public outChannel[ ] mappedto();

Event** activeEvents();

// null-terminated
outChannel** mappedto();
};
class outChannel {

public interface outChannel {

public:

public Entity owner();

Entity* owner();

public inChannel[] mappedto();

// null-terminated

public void write(Event evt, ltime_t delay);

inChannel** mappedto();

public void write(Event evt);

void write(Event* evt, ltime_t

public ltime_t mapto(inChannel tgt);

delay =0);
ltime_t mapto(inChannel* tgt,

public ltime_t mapto(inChannel tgt, ltime_t


mapping_delay);

ltime_t mapping_delay =0);


ltime_t unmap(inChannel*

public ltime_t unmap(inChannel tgt);


}

31

tgt);
};
Bng 1.4 Ci t cc lp inChannel, outChannel trong C++ v Java
Lp process:
Lp process qun l vic x l cc i tng v cc s kin pht sinh cho
cc thc th mng (nh tuyn, truyn d liu, ).
Ci t:
C++
class process {

Java
public interface process {
public Entity owner();

public:

public void action();

process(Entity* theowner, int

public void init();

simple=0);

public void waitOn(inChannel[]

process(Entity* theowner,
void(Entity::*body)(process*),

waitchannels);
public void waitOn(inChannel

int simple=0);
virtual void action();

waitchannel);

virtual void init();

public void waitForever();

virtual boolean isSimple();

public void waitFor(ltime_t waitinterval);

Entity* owner();

public boolean waitOnFor(inChannel[]

void waitOn(inChannel**

waitchannels, ltime_t timeout);


public boolean isSimple();

waitchannels);
void waitOn(inChannel*

waitchannel);
void waitForever();
}
Bng 1.5 Ci t cc lp process trong C++ v Java
V d v SSF:

32

Hnh 1.2 V d HelloWorld trong SSF


on chng trnh ngun:
import com.renesys.raceway.SSF.*;
public class HelloWorld extends Entity {
public long delay = 20;
public int rcvd;
public inChannel IN;
public outChannel OUT;
public HelloWorld {
rcvd = 0;
IN = new inChannel (this);
OUT = new outChannel (this, DELAY);
OUT.mapto (IN);
new process (this) {
public void action() {
OUT.write(new Event());
waitFor(DELAY);
}
}
new process (this) {
public void action() {
waitOn(IN);

33

rcvd++;
}
}
}
public static void main(String [] argv) {
HelloWorld hello = new HelloWorld();
hello.startAll(200);
hello.joinAll();
system.out.println(Total received events = + hello.rcvd);
}
}
Bng 1.6 on chng trnh ngun ca v d v SSF

1.1.5 Trnh t qu trnh gi lp


Qu trnh gi lp c thc hin theo trnh t cc bc sau:
Starting Simulation:
Qu trnh gi lp bt u khi bt k mt phng thc startAll() ca mt
thc th (Entity) no c gi, thng thng xut pht t phng thc
main(). Kt qu ca phng thc startAll() ph thuc vo cc phin bn ci
t khc nhau.
Cc Entity gi phng thc startAll() phi c ch nh 2 tham s v
thi gian: thi gian bt u (start time), vi gi tr mc nh l 0 v thi gian
kt thc (end time) ca qu trnh gi lp. Tt c cc s kin gi lp s c
din ra trong khong thi gian ch nh ny.
Initialization:
Sau khi startAll() c gi, phng thc init() s khi to tt c cc
Entity v Process ca qu trnh gi lp. Cch thc triu gi chnh xc ca
qu trnh Initialization ph thuc vo cc phin bn ci t khc nhau v c
th xy ra cc trng hp ngoi l (exception) nh khng c mt process

34

hay Entity no c khi to. Khi , phng thc now() ca Entity s tr


v thi gian start time ca qu trnh gi lp v bt u li qu trnh khi to.
Process Execution:
Sau khi khi to xong, cc process c th c thc thi ngay ti thi
im start time thng qua cc phng thc action(). Mi khi phng thc
action() c thc hin xong, trnh framework s triu gi li phng thc
ny lin sau v c nh vy cho n khi kt thc qu trnh gi lp (end
time) cho process .
Qu trnh x l c th ca phng thc action() ph thuc vo cc
phin bn ci t khc nhau.
Framework Inner Loop:
SSF cung cp tnh nng x l bnh ng cho tt c cc process trong qu
trnh gi lp. Trong qu trnh thc thi, cc process c th c gin on
tm dng bng cch gi cc phng thc waitOn() v waitFor(), sau s
quay tr li qu trnh x l vi cng tham s thi gian ca qu trnh gi lp.
Start, Pause, Resume, and Join:
Trong nhiu trng hp, cc phng thc startAll(), pauseAll(),
resumeAll() v joinAll() c th c s dng n.
Phng thc pauseAll() cho php qu trnh gi lp tm dng trong mt
khong thi gian nht nh, sau s tr v thi gian hin ti bng cch gi
phng thc resumeAll(), trnh gi lp s phc hi li trng thi trc v
tip tc qu trnh gi lp.
Phng thc startAll() khi to li qu trnh gi lp.
Phng thc joinAll() khng cho php thc thi cc phng thc
pauseAll() v resumeAll()., qu trnh gi lp s c din ra cho n khi kt
thc.
S din gii:

35

Hnh 1.3 S ca qui trnh gi lp

1.2 SSFNet Model:


1.2.1 Gii thiu
SSFNet-Scalable Simulation Framework Network Model, l mt mi trng
thit k cc m hnh gi lp mng hon chnh vi y cc giao thc h tr
(nh IP, TCP, UDP, BGP4, OSPF, ), cc thnh phn mng c bn (nh Router,
Host, Link, LAN, ), v cc h tr cp cao (nh multi-protocol, multi-domain
Internet, ).
y l mt phin bn ci tin ca SSF, c bt u nghin cu v pht trin
vo nm 1999 da trn bn ci t Raceway.

36

Hnh 1.4 M hnh SSNet

Hnh 1.5 Cc tng x l ca SSFNet


SSFNet Network models l b phn mm ngun m vit trn nn Java SSF
API c qun l v phn phi bi t chc GNU.
i ng sng lp v pht trin SSFNet bao gm: Andy Ogielski, David Nicol
v Jim Cowie, y c xem l nhng ngi t nn mng c s cho SSFNet.
Sau ny cc phin bn ci tin v cc gi h tr cho SSFNet khng ngng c
nghin cu v pht trin, nh: BGP4 do BJ Premore pht trin, OSPF do Philip
Kwok, TCP-UDP-Sockets-client/server do Hongbo Liu,
Cc t chc bo h ca SSFNet bao gm: DARPA, Institute for Security
Technology Studies at Dartmouth v Renesys Corporation.

37

1.2.2 T chc th mc SSFNet


SSFNet phin bn 2.0 (mi nht) sau khi ci t trn a s c t chc theo
cy th mc sau:
Ssfnet
| --- doc
// Cc ti liu, hng dn
| --- lib
// Th vin ci t
| --- examples // Cc m hnh kham tho
| --- animation // Cc m hnh linh hot
| --- src
// Source code c a ssfnet
| --- ssf
| --- Util
|
| --- random // B pht sinh s ngu nhin
|
| --- Streams // Qun l ti d liu lu thng trn mng
|
| --- Plot
// Ghi nh n cc s kin trn mng
| --- Net
// Source code c a gi SSF.Net, IP, TCPdump
| --- Util
// Qu n l nh nhn IP
| --- OS
// Source code c a gi SSF.OS, IP, TCPdump
|
| --- UDP
// Cc gi protocol c pht trin
|
| --- TCP
//
|
| --- Socket
|
| --- BGP4
|
| --- OSPFv2
|
| --- WWW
|
| --- Netflow
|
| --| --- App
// Cc phin b n phn phi ng dng.
| --- DDoS
| --| --- cern
| --- edu
| --- com

1.2.3 Cc giao thc h tr trong SSFNet


SSFNet cung cp cho ngi s dng rt nhiu ci t ca cc giao thc thng
dng.
Protocol

Status

Packet

IP

L giao thc ct li ca SSFNet, phin

SSF.OS.IP

38

bn IPv4,h tr cu hinh cho cc packet


v flow monitoring trong DML
Network Interface driver-protocol, h tr
NIC

cu hinh cho cc packet queue, queue

SSF.Net.NIC

monitoring v tcpdump trong DML


ICMP

Xc minh s tn ti ca cc thc th
mng

SSF.OS.ICMP

S dung cc gii thut TCPTahoe v


TCP

TCPReno, c ty chn tham s ACK, h


tr truyn nhn d liu gia client v

SSF.OS.TCP

server trong DML


UDP

Sockets

OSPF&OSPFv2

BGP4
FTP
HTTP

NetFlow

H tr truyn nhn d liu gia


client/server trong DML
S dng trong cc giao thc TCP v
UDP
Giao thc nh tuyn OSPF, phn phi t
phin bn SSFNet 1.4
H tr nh tuyn gia cc AS trong
DML

SSF.OS.UDP

SSF.OS.Socket
SSF.OS.OSPF
SSF.OS.OSPFv2
SSF.OS.BGP4

H tr vic truyn nhn file trong DML


Giao thc truyn tin WWW, phin bn
hin ti 1.0 v 1.1
IP flow v flow filter, c cu hnh bi
nhiu router
Bng 1.7 Cc giao thc trong SSFNet

1.2.4 Cc gi th vin h tr trong SSFNet


1.2.4.1 SSF.OS

39

SSF.OS.WWW

SSF.OS.NetFlow

Cc lp chnh:
Tn lp

Chc nng
ProtocolGraph l mt i tng Entity vi cc thuc tnh

ProtocolGraph

in-outChannel dng cho vic trao i cc PacketEvent


nh ngha cc giao thc mi

ProtocolSession

ProtocolMessage i din cho cc header v ti trng

ProtocolMessage

(payload) ca cc gi tin
PacketEvent l lp bao bn ngoi, lp ny s chuyn mt
ProtocolMessage thnh mt Event v c th c gi i trn

PacketEvent

cc in-outChannel
Bng 1.8 Cc gi th vin h tr trong SSFNet

Hnh 1.6 M hnh ProtocolGraph


Kin trc ny lm n gin ha vic ci t cc giao thc mi, tt c cc ci
t v protocol u c k tha t lp ProtocolSession m khng lm thay
i kin trc tng framework.
Cc m hnh giao thc trn Internet c xy dng trn cc gi con ca gi
SSF.OS, bao gm: SSF.OS.IP, SSF.OS.TCP, SSF.OS.OSPF,
1.2.4.2 SSF.Net
Cc lp chnh:
Tn lp

Chc nng

40

i tng Net np cc fie cu hnh DML v nh ngha cc


Net

thc th mng nh Host, Router km theo chng giao thc


tng ng, cc Link gia Host v Router, cc traffic v b
pht sinh ngu nhin RandomNumberStream

Host

c k tha t lp ProtocolGraph, ti thiu phi c ci


t giao thc IP v mt NIC-Network Interface Card
Thc hin vic nh tuyn cc gi tin lu thng trn mng,

Router

ci t ging nh Host vi nhiu NIC v c ProtocolGraph


ring bit

NIC
Link

c k tha t lp ProtocolSession, dng kt ni cc


thc th mng (Link) thng qua in-outChannel
Dng kt ni cc NIC ca cc thc th mng vi nhau
Bng 1.9 Cc lp chnh ca gi SSF.Net

Hnh 1.7 Peer-to-Peer Network

41

Chng 2
Domain Modeling Language
2.1 Gii thiu ngn ng DML:
2.1.1 DML l g?
DML-Domain Modeling Language, l mt ngn ng n gin dng m t
cc m hnh mng trong mi trng gi lp SSFNet.
Cc file DML c vit vi mt cu trc r rng v xc nh, din t m hnh
mng v cc thnh phn cu hnh nn mng nh Topology, Router, Host, Link,
Routing Protocol, Traffic Pattern,

Hnh 2.1 Cc thnh phn mng c s dung trong DML


Cc thnh phn mng c nh ngha trong mt file text n thun c phn
m rng l dml. Chng cng c th c nh ngha trong nhiu file dml khc
nhau vi iu kin l cc file phi c khai bo vi trnh gi lp trong qu
trnh bin dch.
Mt cch n gin ta c th hiu ngn ng DML nh l mt ngn ng i din
cho cc thc th ca mng vi cu trc ng php c nh dng xc nh.

2.1.2Cu trc ng php ca DML

42

Mi file DML bao gm nhiu dng lnh khai bo, mi dng khai bo s tng
ng vi mt cp i s: t kha (keyword) hoc thuc tnh (attribute) v gi tr
(value), c phn cch nhau bi khong trng.
T kha l mt chui k t dng xc nh ngha ca gi tr. Gi tr l mt
chui k t lin tc khng c khong trng, hoc l mt khai bo con bao gm
nhiu dng khai bo khc c cha trong cp du ngoc [ ].
Cu trc ng php ca DML:

Hnh 2.2 Cu trc ng php ca DML


Thut ng SSF DML dng ch cc tham s khc nhau ca cc thnh phn
mng c thit lp nh l cc thuc tnh ca DML. Cc thuc tnh c th c
kiu d liu l cc kiu d liu c bn (float, long, integer, string), c th l mt
th hin ca i tng, hoc cng c th c theo sau l cc thuc tnh con
(sub-attribute) ca n.
V d:
Khi nh ngha mt Host vi mt giao tip Interface, SSFNet s th hin nh
l mt i tng Host km theo mt th hin ca i tng Interface l thuc
tnh con ca Host, v trong i tng Interface li c cc thuc tnh ring ca
n (nh id, buffer, latency, ).
Ch : vi nhng thuc tnh c cc thuc tnh con, tn khai bo phi c theo
sau bi cp du ngoc [ ].
Ngn ng DML khng phn bit ch hoa hay thng.

43

DML cng cung cp cc cu lnh ch thch nhm h tr cho ngi s dng


thm cc ghi ch, hng dn vo file DML, cc ghi ch ny c bt u vi k
t # v kt thc l mt dng mi. Cc s m hnh mng thng c dng
h tr cho vic th hin topology ca mng u mi file DML, v c
vit sau du #. Trnh bin dch SSFNet s b qua cc dng khai bo ny khi
thc thi chng trnh.
V d:
Ch thch sau din t m hnh mng c topology gm 3 Client (C100 n
C102) kt ni n Server (S201) thng qua Router (R1).
# C100 ---------|
# C101 ---------|------------R1------------S201
# C102 ---------|

2.1.3Qu trnh bin dch DML


Khi bin dch, b gi lp SSFNet s phn tch cu trc file DML v xy dng
nn cc thc th i tng i din cho cc thnh phn mng tng ng. Ti thi
im ny, tt c cc thnh phn mng s c mt gi tr khi to xc nh c
khai bo trong file DML bi ngi s dng, hoc chng s c gn gi tr mc
nh m SSFNet nh ngha sn nu nh cha c khi to.

Hnh 2.3 Qu trnh khi to cc i tng gi lp


Sau qu trnh khi to trn, file DML s c ng gi trong mt th hin ca
i tng DML. Mt th hin ca i tng DML c xem nh mt mng hon
chnh, bao gm tt c cc thnh phn mng c khai bo trong n v c cc khai
bo ca cc mng con (sub-network).

44

Hnh 2.4 Trnh t bin dch file DML

2.2 Cc bc ci t v bin dch chng trnh:


2.2.1 Mi trng Windows
Cc file DML c bin dch bi trnh gi lp SSFNet qua ci t Raceway
vit bng ngn ng Java.
Cc bc ci t c th nh sau:
1. Ti v b gi lp SSFNet t trang ch ca SSFNet : www.ssfnet.org v
ci vo my (gi s ci vo a D:\ssfnet).
2. Ti bn jdk phin bn 1.2 hay mi hn t trang Web ca Sun :
http://java.sun.com/products/jdk/1.2/docs/tooldocs/tools.html (gi s ci vo
a C:\jdk1.2).
3. Thit lp cc tham s cho bin mi trng CLASSPATH:
Vo Control Panel/ System/ System Properties/ Advanced/ chn
Environment Variables.

45

Hnh 2.5 Hp thoi cu hnh bin CLASSPATH


Trong bin CLASSPATH khai bo thm ng dn n cc file th vin
trong th mc ssfnet\lib, nu cha c bin CLASSPATH th nhn vo New
to mi.

Hnh 2.6 Hp thoi to bin CLASSPATH


Ch l bn cng phi thm tham s ng dn n trnh bin dch java,
trong ci t ny l C:\jdk1.2\bin.

46

Ta cng c th thm cc tham s cho bin CLASSPATH bng cch g


cc dng lnh sau trong ca s DOS:
set CLASSPATH=D:\ssfnet\lib\raceway.jar;D:\ssfnet\lib\ssfnet.jar
set CLASSPATH=%CLASSPATH%;D:\ssfnet\lib\cernlite.jar
set CLASSPATH=%CLASSPATH%;D:\ssfnet\lib\raceway.jar
set CLASSPATH=%CLASSPATH%;D:\ssfnet\lib\regexp.jar
set CLASSPATH=%CLASSPATH%;D:\ssfnet\src\
4. Bin dch file DML t dng lnh:
Gi

file

DML

cn

bin

dch

lu

ti

th

mc

f:\vidu\SimpleLan.dml. T ca s dng lnh DOS bn vo th mc gc


f:\vidu\ v g lnh sau:
java SSF.Net.Net 1000 SimpleLan.dml D:\ssfnet\examples\net.dml
5. Kt qu hin th:

Hnh 2.7 Kt qu bin dch file DML


Din gii kt qu qu trnh bin dch:

47

dng lnh trn, gi tr 1000 l tham s truyn cho trnh bin dch bit thi
gian kt thc qu trnh gi lp. Tham s D:\ssfnet\examples\net.dml l file
_schema DML SSFNet c s dng cho vic t ng lm hp l ha file
DML SimpleLan.dml nu nh c cc khai bo khng hp l.
Ti thi im bt u qu trnh gi lp, i tng SSF.Net.Net s s dng
cc dch v h tr ca b th vin DML np ni dung cc file SimpleLan.dml
v net.dml vo i tng c s d liu Configuration, sau SSF.Net.Net s
th hin v cu hnh mt cch tun t c h thng t trn xung tt c cc i
tng l cc thnh phn mng khai bo trong qu trnh gi lp (nh cc Host,
Router, Protocol, Link, ). Khi tt c cc i tng ny c th hin hon
chnh, qu trnh khi to gi tr cho cc thuc tnh bt u (qua trnh ny c
thc hin bi phng thc init() ca cc thc th lp con).
Cui cng, i tng SSF.Net.Net s gi phng thc startAll() ca n v
bt u qu trnh gi lp vi thi gian mc ban u c tnh l 0 giy.
Kt qu hin th gm rt nhiu cu thng bo nh cc s kin, cc qu trnh
trao i d liu, qu trnh nh tuyn, v c vic t ng pht sinh nhiu block
a ch IP cho cc Host v Router,

2.2.2 Mi trng Unix


Trong mi trng Unix-Linux, cch ci t cng tng t nh trong mi
trng Windows, s dng bin mi trng PATH thit lp cc tham s vi cu
hnh tng t nh trn.

2.3 Cc i tng v thuc tnh ca DML:


DML cung cp cho ngi s dng gn nh tt c cc thnh phn mng vi y
cc thuc tnh cn thit cho vic m hnh ha cc mng vi cu trc ln v
phc tp.
Sau y l bng m t s lc cc i tng v thuc tnh h tr trong DML:
Tn thuc tnh

i tng thuc v

48

Chc nng

id <int>

Net, Host, Router,


Interface

Phn bit cc thnh phn


mng vi nhau

idrange [from

Net, Host, Router,

Khai bo mng cc i tng

<int1> to <int2>]

Interface

c gi tr id t <int1> n
<int2>

Net

Net, khng c

Khai bo mt Net l mt
Network chnh hay mt subnetwork

Host

Net

Khai bo mt Host trong Net

Router

Net

Khai bo mt Router trong


Net

Interface

Host, Router

Khai bo mt giao tip cho


Host hoc Router

Link [attach
<NHI1>
<NHIn>]

Net

To mt lin kt kt ni gia
2 giao tip ca 2 thnh phn
mng (Host v Router) theo
a ch NHI

Graph

Host, Router

Khai bo chng giao thc


chy trn Host v Router

ProtocolSession [
name <str> use
<str>
]
bitrate <int>

Graph

Khai bo protocol cho chng


giao thc

Interface

Khai bo tc truyn d
liu cho giao tip (bits/s)

latency <float>

Interface

tr hon trn giao tip (s)

buffer

Interface

Xc nh kch thc vng


m lu d liu trn giao tip
(bytes)

49

delay <float>

Link

tr cho mi lin kt (s)

nhi_route [dest

Host

Khai bo default route cho

default ]

Host

route [dest default

Router

Khai bo default route cho


Router

interface <int>

route, nhi_route

Tham

interface

cho

default route
next_hop <NHI>

route, nhi_route

Giao tip ca next_hop trong


default route
nh ngha cc ti trn mng

Traffic

Net chnh (outermost Net)

Pattern

Traffic

Xc nh cc traffic pattern

Client <NHI>

Pattern

Xc nh i tng client
trong traffic

Servers

Pattern

Xc nh servers m client
kt ni n trong traffic

nhi <NHI>

Servers

a ch ca servers m client
kt ni trong traffic

nhi_range [from
<NHI1> to
<NHI2>]

Servers

Port <int>

Servers

a ch ca cc servers m
client kt ni trong traffic
S hiu cng port ng dng
trn server m client kt ni

Frequency <int>

Net chnh (outermost Net)

Tn s ghi nhn cc s kin


xy ra trn mng

Randomstream [ ]

Net chnh (outermost Net)

Khai bo b pht sinh s


ngu nhin s dng

Bng 2.1 Cc i tng v thuc tnh ca DML

2.3.1i tng Net


2.3.1.1 nh ngha v khai bo

50

i tng Net nh ngha mt thc th mng bao gm cc Host, Router,


Link, Traffic v cc Network khc (sub-network).
Mi m hnh DML u phi c mt i tng Net ng vai tr l i tng
chnh cha tt c cc nh ngha ca cc thnh phn mng khc.
C php khai bo:
Net [
id <uniqueID> OR idrange [ from <start range> to <end range>]
frequency <frequencyValue>
randomstream [...]
router [...]
host [...]
link [...]
traffic [
pattern [...]

]
Net []
]
Ch : i vi i tng Net khai bo u file DML th khng c thuc
tnh id hay idrange, cn tt c cc i tng Net cn li (ng vai tr l cc
sub-network) u phi c mt id phn bit vi cc sub-network khc trong
mng.

51

Hnh 2.8 Minh ha nh ngha i tng Net


2.3.1.2 Cc thuc tnh ca Net
Frequency v Randomstream c xem l 2 thuc tnh c bit v quan
trng ca SSFNet, chng c s dng l tham s cho vic thit lp cc thuc
tnh khc cho qu trnh gi lp. Cc thuc tnh khc nh Host, Router, Link,
Protocol, traffic pattern, s c trnh by nhng phn sau.
Frequency:
Thuc tnh frequency dng thit lp tc thi gian cc s kin gi
lp c ghi nhn li, n c nh ngha duy nht mt ln trong mi file
DML v c dng chung cho tt c cc sub-network khc trong m hinh
gi lp.
frequency thit lp mt gi tr vt l cho vic phn gii thi gian gi lp
nh l mt s nguyn khng th nguyn clock ticks tnh trn mi giy gi
lp. n v ny phi nh hn thi gian xy ra cc s kin trong qu trnh gi
lp c th ghi nhn li cc s kin ang xy ra (nh cc s kin truyn
gi tin trn mng, trao i bng thng tin nh tuyn, ).
V du:

52

Trong mng LAN thng thng, tc truyn d liu l 100Mbps,


ngha l c sau mi 1/(100.10e6) giy (10 nanogiy) th mt bit c
truyn trn mng, do tn sut phi c thit lp nh hn hoc bng
10 nanogiy, gi s ta thit lp l 1nanogiy th thuc tnh frequency s
l 1.000.000.000 (clock ticks/second). Ta khai bo nh sau:
frequency 1000000000
iu ny c ngha l mi n v thi gian ghi nhn cc s kin trong
mng l 1 nanogiy.
Randomstream:
Thuc tnh randomstream dng pht sinh cc s ngu nhin dng
trong m hnh mng. Cng ging nh frequency, thuc tnh randomstream
cng ch c khai bo duy nht mt ln trong mi file DML.
C php khai bo:
randomstream [
generator MersenneTwister
stream

stream generator

reproducibility_level timeline
]
Thuc tnh generator ch ra khai bo s dng b pht sinh s ngu nhin
no. SSF cung cp 2 b pht sinh s ngu nhin kh mnh l:
MerseMerrcenneTwister v Ranlux.
Gi tr ca thuc tnh stream l mt chui c s dng gi qu trnh
generator.
Thuc tnh reproducibility_level iu khin vic chia s b pht sinh
randomstream gia cc thnh phn ca mng, v cch thc m cc b pht
sinh ny c to ra.
reproducibility_level c cc cp iu khin sau:
.timeline: cho bit b pht sinh s ngu nhin c chia s vi tt c
cc host v router trong mng.

53

.host: cho bit mi host trong mng, bao gm c cc host trong cc


mng con (sub-network) s hu mt b pht sinh s ngu nhin ca ring
n nhng c chia s vi tt c cc giao thc chy trn host .
.distribution: khng c chia s vi bt k thnh phn mng no, ch
c s dng khi c khai bo.

2.3.2i tng Host


2.3.2.1 nh ngha v khai bo
Mt i tng Host c th ng vai tr l mt Client hoc mt Server hoc
va l Client va l Server.
Host l mt thuc tnh ca i tng Net.
C php khai bo:
host [
id <uniqueID> OR idrange [ from <start range> to <end range>]
interface [ ]
graph [ ]
nhi_route []
]
Mi Host c mt id duy nht dng phn bit vi tt c cc Host khc
trong mng m n c khai bo, id c gi tr l mt con s nguyn, kiu
Integer.
Trng hp c nhiu Host vi cu hnh ging nhau (chng hn nh cc
Client trong mt mng LAN) ta c th khai bo mt mng cc Host vi khai
bo phn id nh sau:
idrange [ from <star ranget> to < end range> ]
2.3.2.2 Cc thuc tnh ca Host
Interface:
Mi Host c th c mt hay nhiu cng giao tip, mi giao tip c
nh ngha bn trong thuc tnh interface ca Host , c bao nhiu khai
bo interface th s c by nhiu giao tip trn Host .

54

C php khai bo:


interface [
id <interfaceID> OR

idrange [ from <start range> to <end

range>]
bitrate <transmissionrate>
latency <queuedelay>
buffer

<buffersize>

]
Mi giao tip phi c mt id phn bit vi cc giao tip khc ca Host
v mt gi tr bitrate thit lp tc truyn-nhn d liu trn giao tip
. Thuc tnh id cn c dng nh l mt tham chiu khi thc hin kt
ni n cc thnh phn mng khc. Kiu d liu ca id v bitrate l kiu
Integer.
Thuc tnh latency l tr thi gian ca vic x l cc gi d liu trn
giao tip , gi tr mc nh l 0.0 giy. Kiu d liu l kiu float.
Thuc tnh buffer xc nh gi tr kch thc (bytes) ca vng m lu
d liu trn NIC. Mc nh gi tr l khng gii hn, ngha l d liu n
bao nhiu cng c ghi nhn v lu vo buffer.
Graph:
Thuc tnh graph nh ngha cc giao thc chy trn Host (TCP, UDP,
IP, ). Mt cch d hiu, ta c th coi qu trnh nh ngha thuc tnh
graph l qu trnh khai bo chng giao thc m Host s s dng.
C php khai bo:
graph [
ProtocolSession [
name <protocolname> use <classpath>
<more attributes>
]
<more protocol sessions>

55

ProtocolSession [ ]
]
Thuc tnh ProtocolSession ca graph s c trnh by chi tit phn
sau.
Nhi_route:
Thuc tnh nhi_route cu hnh mc nh vic nh tuyn cc gi d liu
cho Host trong mt mng LAN n Gateway Router ng vai tr l Default
Gateway ca mng LAN . Khi nh ngha bt k mt Host no cng u
phi km theo thuc tnh nhi_route Host c th lin lc c vi cc
Host khc bn ngoi mng.
C php khai bo:
nhi_route [
des default interface <idInterfaceHost>
next_hop <idRouter> (<idInterfaceRouter>)
]
Vi cch khai bo ny, tt c cc gi d liu c a ch ch khng cng
a ch mng ca Host s c mc nh chuyn n hop k tip l Router
c id ch nh l <idRouter> vi giao tip l <idInterfaceRouter>.

2.3.3 i tng Router


2.3.3.1 nh ngha v khai bo
Router l mt thuc tnh ca i tng Net. Vic nh ngha mt thnh
phn mng c ch nng l Router cng gn ging nh nh ngha mt Host
nhng cch khai bo n gin hn.
Chc nng chnh ca Router l inh tuyn cc gi d liu lu thng trn
mng v lin mng. Cc giao thc nh tuyn c ci t trong SSFNet s
c trnh by chi tit trong cc phn sau.
C php khai bo:
router [
id <uniqueID> OR idrange [ from <start range> to <end range>]

56

interface [ ]
graph [ ]
route []
]
2.3.3.2 Cc thuc tnh ca Router
Interface:
Cch cu hnh thuc tnh Interface cng tng t nh cu hnh cho Host.
C php khai bo:
interface [
id <interfaceID> OR

idrange [ from <start range> to <end

range>]
bitrate <transmissionrate>
latency <queuedelay>
buffer

<buffersize>

]
Graph:
Trong Router ta c th s dng cc giao thc nh tuyn khc nhau nh
IP, BGP, OSPF, cho vic nh tuyn cc gi d liu, cc giao thc ny
c khai bo trong thuc tnh graph. Cch khai bo tng t nh khai bo
cho Host.
C php khai bo:
graph [
ProtocolSession [ name ip use SSF.OS.IP ]
ProtocolSession [ name bgp use SSF.OS.BGP4.BGPSession ]

57

Hnh 2.9 V d khai bo chng giao thc nh tuyn cho Router


Route:
Thuc tnh route ca Router cng c chc nng ging nh thuc tnh
nhi_route ca Host.
C php khai bo:
route [
dest default interface <idInterfaceRouter>
]
Vi khai bo ny, tt c cc gi d liu n Router t mi giao tip, tr
giao tip c id l <idInterfaceRouter> u c chuyn qua cng giao tip
c id l <idInterfaceRouter>.

2.3.4 Link
2.3.4.1 nh ngha v khai bo
Link l mt thuc tnh ca i tng Net, thuc tnh ny thit lp cc lin
kt vt l theo hng im-im (point-to-point) gia cc giao tip ca cc
thnh phn mng (Host v Router).
Ch : mi giao tip ch c php c ti a mt Link.
C php khai bo:

58

link [
attach <id>(<interface>)

attach

<id>(<interface>)

delay

<dalay>
]

Hnh 2.10 V d thuc tnh Link


2.3.4.2 Cc thuc tnh ca Link
Thuc tnh delay l tham s ty chn, c th c hoc khng, gi tr mc
nh l 0.0 giy, kiu float.
Ta cng c th nh ngha nhiu Link cng lc n mt giao tip, chng
hn nhiu Client trong mt mng LAN kt ni n Router ng vai tr l
Default Gateway ca mng LAN . Ch rng lin kt y ch c ngha v
mc logic ch khng phi l mt lin kt vt l thc s, ta nn hiu rng cc
kt ni ny c thng qua mt thit b tp trung nh Hub hay Switch.
C php khai bo:
link [
attach <RouterID>(<router interface>) #default gateway
attach <Host1ID>(<interface>)
attach <host2ID>(<interface>)
...

59

attach <hostNID>(<interface>)
]

2.3.5 Traffic
2.3.5.1 nh ngha v khai bo
DML cho php to cc s kin trong qu trnh gi lp thng qua thuc tnh
traffic ca i tng Net, cc s kin ny l cc dng d liu lu thng trn
mng.
C php khai bo:
traffic [
pattern [
client

<ClientID>

servers [ nhi <ServerID>(<interface>) OR


nhi_range [ from <ServerID>(<interface>) to
<ServerID>(<interface>) ]
port <portnumber>
]
]

pattern [ ]
]
2.3.5.2 Cc thuc tnh ca Traffic
Mi kt ni gia mt Client v mt Server (nhi) hoc nhiu Server
(nhi_range) c nh ngha thng qua thuc tnh pattern. Traffic c th c
mt hoc nhiu pattern.
Thuc tnh servers phi lun khai bo thuc tnh port i km, y l s hiu
cng ng dng m Server v Client dng lin lc vi nhau.

2.3.6 Protocol
2.3.6.1 nh ngha v khai bo

60

Vic nh ngha cc Protocol chy trn cc thnh phn mng (nh Host v
Router) l rt quan trng, v n quyt nh cch thc m cc thnh phn mng
trao i d liu vi nhau, cc giao thc nh tuyn ang c s dng (IP,
TCP, UDP hay BGP, OSPF, ), trong mng ang chy nhng ng dng g
(FTP,HTTP hay Web, ...), vai tr ca mt Host l Server hay l Client,
Mi Protocol c khai bo thng qua thuc tnh ProtocolSession., l mt
thuc tnh con ca thuc tnh Graph.

Hnh 2.11 ProtocolSession


C php khai bo:
ProtocolSession [
name <protocolname> use <classpath>
<more attributes>
<attribute> [ ]
]
Ch :
Khi khai bo cc Protocol chy trn cc i tng Host hoc Router, ta
phi lun khai bo giao thc IP cho i tng . Ngha l trong phn nh
ngha thuc tnh Graph, phi lun c dng khai bo sau:
ProtocolSession [ name ip use SSF.OS.IP ]
2.3.6.2 Cc thuc tnh ca Protocol

61

Cc Protocol khc nhau c th c hoc khng c cc thuc tnh ring ca


n.
Cc thuc tnh quan trng ca ProtocolSession:
.name <protocolname> use <classpath>: khai bo tn ca Protocol
tng ng vi lp th vin c s dng, name v use thuc kiu String.
.port: s hiu Port ng dng, kiu Integer.
.client_limit: s lng cc Client ti a c php kt ni n Server, gi
tr mc nh l MAXINT, kiu Integer.
.queue_limit: s lng ti a cc yu cu ang ch i c kt ni
n Server, gi tr mc nh l 5, kiu Integer.
.request_size: kch thc (bytes) ca cc datagram request, gi tr ny
phi nh nhau gia bn gi v bn nhn, kiu Integer.
.show_report: cho bit c hin th cc thng tin ghi nhn c trong cc
phin lm vic (session) hay khng, gi tr mc nh l true, kiu boolean.
.debug: cho bit c hin th cc thng tin chun on ca Client/Server
trong qu trnh gi lp hay khng, gi tr mc nh l false, kiu boolean.
.tcpinit: TCP l giao thc truyn d liu thng dng do tnh ng tin cy
ca n, thuc tnh ny dng thit lp cu hnh giao thc TCP cho cc
Host, iu ny cho php qu trnh gi lp nh ngha nhiu Host v Router
c th chy giao thc TCP chung vi cc giao thc khc.
Cc thuc tnh ca tcpinit:
.ISS: Initial Sequence Number, thuc tnh ny thit lp ch s tun
t khi to cc gi d liu ca bn gi v bn nhn, gi tr mc nh l
0, kiu Integer.
.MSS: Maximum Segment Size, l kch thc (bytes) ln nht ca
mt segment, gi tr mc nh l 1024, kiu Integer. SSFNet khng
cho php ngi s dng t thit lp cc thng s RMSS (Receiver
MSS) v SMSS (Sender MSS) m 2 thng s ny c ly t gi tr

62

ca thuc tnh MSS nhm trnh vic sai lch v MSS gia bn gi v
bn nhn.
.RcvWndSize v SendWndSize: Receive Window Size v Send
Window Size, kch thc khung ca s trt ca bn gi v bn nhn
d liu, tnh theo n v MSS, gi tr mc nh l 16, kiu Integer.
.SendBufferSize: Send Buffer Size, kch thc vng m gi d
liu, tnh theo n v MSS, gi tr mc nh l 16, kiu Integer.
.MaxConWnd: Maximum Congestion Control Window Size, gi tr
mc nh l MAX_INT/65535, kiu Integer.
.MaxRexmitTimes: Maximum Retransmission Times, s ln ti a
c php truyn li, gi tr mc nh l 12, kiu Integer.
.AdvertisedWnd: Advertised Receive Window Size, kiu Integer.
.conThresh: Threshhold of the Control Window Size ( called
ssthresh in BSD).
.fast_recovery: SSFNet ci t 2 phin bn TCP, TCPReno v
TCPTahoe. Nu fast_recovery c gi tr l true th TCP s dng l
TCPReno, cn nu l fasle th TCP s dng l TCPTahoe.
.TCP_SLOW_INTERVAL: b nh thi gian chun, n v tnh l
giy, kiu float.
.TCP_FAST_INTERVAL: thi gian (s) ch cc gi tin ACK, kiu
float.
.MSL: Maximum Segment Lifetime, thi gian (s) sng ca cc
segment, kiu long.
.MaxIdleTime: Maximum Idle Time, n v tnh l giy, kiu long.
.delayed_ack: cc bo nhn c try hon, ty chn ny cho php
thm cc thut ton x l cc bo nhn ACK vo giao thc TCP, kiu
boolean.
.start_time: thi gian (s) bt u gi cc request n Server, gi tr
mc nh l 1, kiu long.

63

.start_window: Start Time Window (s), gi tr mc nh l 0, kiu


long. Thuc tnh ny dng lm tham s thi gian gi request n
Server theo gi tr thi gian c chn ngu nhin nm trong khong
[start_time, start_time + start_window], nu start_window=0 th thi
gian bt u gi n server ng bng start_time.
.file_size: kch thc file (bytes) c yu cu, gi tr mc nh l
1000, kiu Integer.
.random_file_size: FTP Client h tr cc request vi kch file c
to ngu nhin. Thuc tnh ny cho php Client pht sinh cc request
n Server yu cu mt file vi kch thc c to ngu nhin da
trn cc tham s khai bo ca n.
Ch l ch c khai bo mt trong hai thuc tnh file_size
hoc random_file_size.
C php khai bo:
random_file_size [
distribution [
#distribution-dependent parameters.
name <distribution class name>
lambda

<floating point value># =1/(distribution

mean)
]
]
Cc tham s ca thuc tnh name gm 21 tham s: Beta,
Binomial,

BreitWigner,

BreitWignerMeanSquare,

ChiSquare,

Exponential, Gamma, HyperGeometric, Hyperbolic, Logarithmic,


NegativeBinomial, Normal, Pareto, ParetoII,Poisson, PoissonSlow,
Uniform, VonMises, Weibull, Wald, Zeta.
Cc

tham

ny

SSF.Util.Random.RandomStream

64

nh

ngha

trong

lp

.off_time: vic dng thuc tnh random_file_size khin cho mi


request FTP Client t ng pht sinh mt file vi kch thc ngu
nhin v c gi n Server. cho php gi nhiu request mt cch
ngu nhin, ta c th khai bo thm thuc tnh off_time hoc
random_off_time.
.random_off_time: vi thuc tnh ny, FTP Client c th gi mt
request vi mt file ngu nhin no .
C php khai bo:
random_off_time [
distribution [
#distribution-dependent parameters.
name <distribution class name>
lambda

<floating point value># =1/(distribution

mean)
]
]
Tt c cc thuc tnh trn u c ci t cho 2 phin bn TCPReno v
TCPTahoe. L thuyt v 2 gii thut trn s c trnh by phn sau.
2.3.6.3 Cu hnh mt Host l FTP Client
Chng giao thc cu hnh cho mt Host c vai tr l mt FTP Client:

Hnh 2.12 Chng giao thc ca mt FTP Client


nh ngha chng giao thc trong DML:

65

graph [
ProtocolSession [ name client use SSF.OS.TCP.test.tcpClient
start_time

<value>

start_window

<value>

file_size

<value>

request_size

<value>

show_report

<true/false>

debug

<true/false>

]
ProtocolSession [ name socket use SSF.OS.Socket.socketMaster]
ProtocolSession [ name tcp use SSF.OS.TCP.tcpsessionMaster
tcpinit [
<TCP attributes>

]
]
ProtocolSession [ name ip use SSF.OS.IP ]
]
2.3.6.4 Cu hnh mt Host l FTP Server
Chng giao thc cu hnh cho mt Host c vai tr l mt FTP Server:

Hnh 2.13 Chng giao thc ca mt FTP Server


nh ngha chng giao thc trong DML:

66

graph [
ProtocolSession [ name server use SSF.OS.TCP.test.tcpServer
port

<value>

client_limit

<value>

request_size

<value>

show_report

<true/false>

debug

<true/false>

]
ProtocolSession [ name socket use SSF.OS.Socket.socketMaster]
ProtocolSession [ name tcp use SSF.OS.TCP.tcpsessionMaster
tcpinit [
<TCP attributes>

]
]
ProtocolSession [ name ip use SSF.OS.IP ]
]

2.4 Giao thc BGP v SSFNet:


2.4.1Gii thiu v giao thc BGP
BGP-Boder Gateway Protocol l mt giao thc c s dng cho vic trao i
cc thng tin nh tuyn gia cc inter-Autonomous System (AS).
Mt AS l mt Network hay mt nhm cc Network chu s qun l tp trung
bi mt t chc xc nh, v c cc chnh sch nh tuyn ring cho AS .

67

Hnh 2.14 S kin trc ca qu trnh nh tuyn ng


Cc AS kt ni thng qua cc Boundary Router, mi Boundary Router bit
c thng tin v khong cch t n n cc AS khc, thng tin ny c phn
b cho tt c cc Backbone Router dng cho vic nh tuyn n mt Network
ch trong mt AS khc.
BGP c s dng thng xuyn trong vic trao i cc thng tin nh tuyn
gia cc ISPsInternet Service Providers trn mng Internet. Nu BGP c s
dng trong vic nh tuyn gia nhiu AS khc nhau, n c xem l mt giao
thc EBGP External BGP. Nu BGP c dng nh tuyn trong cng mt
AS, n l giao thc IBGP Internal BGP.

68

Hnh 2.15 EBGP v IBGP

BGP chy trn giao thc TCP v c kt ni thng qua cng 179. Hai h
thng AS thng xuyn m kt ni v trao i cc thng tin v kh nng n
c (reachability) vi cc AS khc ca chng.

Hnh 2.16 Qu trnh x l nh tuyn ca BGP

2.4.2Cc yu t nh gi BGP
Cc tham s nh gi tnh hiu qu ca giao thc BGP:
.AS_PATH
.NEXT_HOP

69

.ORIGIN
.MULTI_EXIT_DISC (Multi_exit discriminator)
.LOCAL_PREF (local preference)
Minh ha thuc tnh AS_PATH:

Hnh 2.17 Thuc tnh AS_PATH


Minh ha thuc tnh NEXT_HOP:

70

Hnh 2.18 Thuc tnh NEXT_HOP

2.4.3 BGP trong SSFNet


2.4.3.1 Cc m hnh ty chn cu hnh BGP
SSFNet cung cp cho chng ta mt ci t rt tt v giao thc BGP. Giao
thc ny c SSFNet ci t chi tit trong gi SSF.OS.BGP4. BGP-4 l
phin bn version 4.0 c pht trin t phin bn BGP c v c cng b
vo thng 3.1995.
SSFNet cung cp cho ngi s dng 2 ty chn cu hnh BGP:
.Cu hnh t ng (autoconfig = true) bi SSFNet.
.Do ngi s dng t cu hnh ring (autoconfig = false).
Vi m hnh cu hnh t ng, trnh gi lp s t ng cu hnh cho giao
thc BGP trong khi bin dch. u im ca cch cu hnh ny th hin tnh
n gin v n nh, m bo khng c li xy ra lc thc thi chng trnh,
c bit l khi tin hnh gi lp trn nhng mng c cu trc ln, phc tp.
Trong trng hp cu hnh BGP l autoconfig, tt c cc Router ang chy
giao thc BGP u c kt ni theo kiu point-to-point n mt Router
c SSFNet cu hnh mc nh sn. iu tr ngi trong m hnh ny l
SSFNet khng cho php ngi s dng thay i bt k mt thuc tnh no ca
giao thc BGP. y c xem l mt hn ch ca vic ci t nhng cng
c chp nhn v n m bo tnh an ton khi vit m lnh cho ngi s
dng.
Vi cch cu hnh th hai, gi tr ca thuc tnh autoconfig=false, lc ny
ngi s dng phi t cu hnh cho cc thuc tnh ca BGP nhm ph hp cho
cc yu cu v mc ch ring. Ty chn ny c dng khi ngi s dng
mun xem cc kt qu khc nhau khi thay i gi tr ca cc thuc tnh trong
giao thc BGP.
2.4.3.2 To cc sub-network v cc AS
Sub-network:

71

C php khai bo:


Net [ #start definition of the DML network
Net [ #start definition of the sub-network
Define a gateway router in the sub-network
Define hosts in the sub-network.
Connect the gateway to the hosts with a point-to-point link.
] #end the definition of the sub-network
define others components in the DML network.
Etc..
] #end the definition of the DML network
Vic to cc sub-network n thun m khng c ch nh c th g thm
th cc network ny ch c xem nh l cc network con ca network
cha m n c khai bo ch cha tr thnh mt AS thc s.
Autonomuos System:
phn bit mt sub-network v mt AS, SSF cung cp cho ta thuc
tnh AS_Status ca i tng Net gii quyt iu ny.
Nu AS_Status = boundary th sub-network l mt AS ring bit, cn
nu khng th n ch l mt sub-network bnh thng.
C php khai bo:
Net [
id 0
AS_Status boundary
]
2.4.3.3 Chng giao thc cu hnh cho Boundary Router
Nh ni trn, cc AS trao i thng tin nh tuyn cho nhau thng qua
cc Boundary Router.

72

Hnh 2.19 Chng giao thc cho mt Boundary Router


SSFNet cu hnh chng giao thc tng ng cho cc Router ny nh sau:
graph [
ProtocolSession[ name bgp use SSF.OS.BGP4.BGPSession ]
ProtocolSession[ name socket use SSF.OS.Socket.socketMaster]
ProtocolSession[ name tcp use SSF.OS.TCP.tcpSessionMaster]
ProtocolSession[ name ip use SSF.OS.IP]
]
2.4.3.4 Cc thuc tnh ca BGP
Cu hnh cho cc thuc tnh ca BGP:
.autoconfig: tham s ty chn m hnh cu hnh BGP, kiu boolean, gi
tr mc nh l true.
.connretry_time: Connect Retry Timer Interval, l khong thi gian (s)
c try hon cho mt kt ni hng, kiu Integer, gi tr mc nh trong
m hnh autoconfig l 120.
.min_as_orig_time: Minimum AS Origination Interval, l khong thi
gian (s) ti thiu gia 2 ln cp nht cc thng tin c gi t BGP speaker
n AS cc b, gi tr mc nh trong m hnh autoconfig l 15, kiu
Integer.
.reflector: thuc tnh ny cho bit router BGP c phi l mt route
reflector hay khng, gi tr mc nh trong m hnh autoconfig l false, kiu
boolean.

73

.neighbor: thuc tnh ny s xc nh cc BGP ngang hng s c trao


i cc thng tin nh tuyn vi router BGP hin ti.
C php khai bo nh sau:
neighbor [
as <Net ID> address <destination router ID>(<interface>)
use_return_address <this Router's ID>(<interface>)
hold_time <value>
keep_alive_time <value>
mrai <value>
infilter [ ]
outfilter [ ]
]
Cc thuc tnh ca neighbor:
.hold_time: Hold Time Interval, l khong thi gian (s) duy tr
lin lc vi cc AS lng ging nhm gi cho kt ni khng b
mt, gi tr mc nh trong m hnh autoconfig l 90, kiu
Integer.
.keep_alive_time: Keep Alive Time Interval, l khong thi
gian (s) ti a c tr hon hy mt kt ni vi 1 AS, gi tr
mc nh trong m hnh autoconfig l 30, kiu Integer.
.mrai: Mnimum Route Advertisement Interval, kiu Integer,
n v tnh bng giy.
.infilter, outfilter: vn cn trong giai on pht trin, 2 thuc
tnh ny ng gi cc chnh sch nh tuyn bn trong v bn
ngoi AS.
Cc ty chn debug ca BGP:
bgpoptions [
show_id_data

< true/false>

show_rcv_update < true/false>

74

show_snd_update < true/false>


]

2.5 Cc t kha h tr trong DML:


Khi tnh phc tp v cng knh ca file DML tng ln do s gia tng ca cc
thnh phn mng v mt ti ca mng, chng ta bt u ngh n vic s dng
cc h tr ca DML.
DML cung cp cho chng ta mt vi t kha h tr cho cng vic thit k tr
nn d dng v mau l hn. Cc t kha chnh: _extends, _find, _dictionary.

2.5.1T kha _extend


y l mt t kha c bit ca DML, n gip ta c th s dng li cc on
khai bo trc c tnh cht c lp i lp li nhiu ln.
C php khai bo:
_extend <AttrributeName>
Ch : khi s dng t kha _extend, phi lu trng hp xoay vng cc s
kin tham chiu.
V d :
AttributeA [
_extends AttributeB ]
AttributeB [
_extends AttributeA ]
y l li m SSFNet khng th pht hin c, mc d qu trnh gi lp vn
c thc thi nhng khng cho kt qu nh mong mun.

2.5.2T kha _find


C php khai bo:
_find <keypath>
T kha _find c s dng cho vic thay th cc thuc tnh v gi tr bn
trong ca n da vo tham s ng dn y <keypath>.
_extend v _find c chc nng tng t nhau.

75

2.5.3T kha _dictionary


C php khai bo:
dictionary [
<your definitions here>
]
T kha dictionary c dng nh ngha cc thuc tnh hay cc gi tr
thng xuyn c s dng trong qu trnh vit script gi lp.
Ch rng y khng phi l t kha do SSFNet qui nh m do ngi s
dng t t, do ta c th t vi mt tn khc no cng c.

2.5.4 V d minh ha
nh ngha kha dictionary:
dictionary [
1Gbps [ bitrate 1000000000
latency 0.00001 ]
tcpinit [
ISS 0
MSS 1460

TCP_FAST_INTERVAL 0.500
show_report true
]
]
Khai bo Interface v Protocol c s dng nh ngha trong dictionary:
interface [ id 0
buffer 192000
_extend .dictionary.1Gbps ]
ProtocolSession [
name tcp use SSF.OS.TCP.tcpSessionMaster
_find .dictionary.tcpinit

76

]
Kt qu ca thuc tnh interface v ProtocolSession s l:
interface [ id 0
buffer 192000
bitrate 1000000000 # bits/s
latency 0.00001
]
ProtocolSession [
name tcp use SSF.OS.TCP.tcpSessionMaster
tcpinit [
ISS 0
MSS 1460

TCP_FAST_INTERVAL 0.500
sh ow_report true
]
]

77

PHN 2
CNG C GI LP MNG NS-2 V NGN NG
TCL

Chng 3
Cng c gi lp mng NS-2

3.1 Tng quan v NS-2:


NS-2-Network Simulator Version 2, l mt cng c gi lp mng c s
dng rt ph bin trong cc nghin cu khoa hc v mng, n c pht trin
trong mt phn ca d n VINT-Virtual Internet Testbed c vit bng ngn
ng C++ v s dng ngn ng to kch bn OTcl to cc cu hnh mc giao
din bn trn. y l d n c s cng tc ca nhiu vin nghin cu nh UC
Berkeley, USC/ISI, LBL, AT&T, XEROX PARC v ETH.
Mc ch ca NS-2 l to ra mt mi trng gi lp cho vic nghin cu, kim
tra, thit k cc giao thc, cc kin trc mi, so snh cc giao thc v to ra cc
m hnh mng phc tp.
Phin bn th nht ca NS c pht trin vo nm 1995 v phin bn th hai
ra i vo nm 1996. NS-2 l phn mm m ngun m c th chy c trn nn
ca Linux v Window.

3.2 Kin trc ca NS-2:


NS-2 l mt cng c gi lp hng i tng c vit bng ngn ng C++
trong phn nhn v ngn ng thng dch OTcl phn giao tip.
B gi lp NS-2 bao gm 3 module chnh:
Module nhn c gi l Compiled Hierarchy.

78

Module giao tip c gi l Interpreted Hierarchy.


Module lin kt l module c tc dng nh mt lp keo dng gn kt
cc lp, cc i tng, cc bin tng ng trong hai module nhn v module
giao tip vi nhau.
Kin trc chung ca hai module nhn v module giao tip bao gm mt h
thng phn cp cc lp c quan h k tha nhau. Hai module ny c quan h mt
thit vi nhau: mt lp trong module giao tip OTcl c nh x mt-mt vi lp
tng ng trong module nhn thng qua module lin kt nh trnh by trn.
Lp gc ca h thng phn cp ny l lp TclObject. Khi ngi dng to mt i
tng trong trnh thng dch OTcl, th trnh thng dch ny s thng dch i
tng va c to, sau nh x n i tng tng ng trong module nhn.
Cc lp trong module giao tip OTcl s t ng thit lp cc nh x tng ng
n cc lp trong module nhn thng qua lp TclClass ca module lin kt.

Hnh 3.1 Kin trc tng quan ca NS


NS c xy dng trn nn ca hai ngn ng l OTcl v ngn ng C++ nhm
p ng yu cu ca mi trng gi lp: cc thnh phn mng c tnh cht chi
tit bn di hoc chi tit ci t ca cc giao thc, cc thnh phn mng i hi
cn c mt ngn ng c tc x l cao, trong khi , mi trng tng tc vi
ngi dng cn phi n gin, d s dng trong vic thit lp, cu hnh cc tham
s ca cc i tng v c th thay i mt cch linh hot.
C++ c c im l chy nhanh nhng kh kh trong vic vit code v thay
i m ngun nn thch hp cho vic ci t cc chi tit bn di. OTcl th ngc

79

li, chy chm nhng d dng vit code v thay i cu hnh nn dng to
cc giao tip vi ngi dng.
Do , NS tn dng cc u im ca hai ngn ng trn tch hp vo
trong mi trng gi lp ca mnh: C++ c dng ci t trong phn nhn
ca NS, xy dng nn kin trc ca nhn, thit k chi tit ca cc giao thc, cc
thnh phn mng, x l cc tin trnh trn cc node, Trong khi OTcl dng
xy dng cu trc, topology, cu hnh cc tham s cho mng c dng cho vic
gi lp ca ngi dng.

Hnh 3.2 M hnh n gin ca NS


Ty theo mc ch ca ngi s dng trong vic to kch bn gi lp mng m
kt qu gi lp c th c lu tr li trong cc file cc ng dng khc phn
tch.
Cc ng dng dng phn tch kch bn gi lp trong NS-2:
1. ng dng NAM-Network Animator Tool phn tch cc file .nam.
2. ng dng XGraph phn tch cc file .tr.

Hnh 3.3 M hnh hot ng ca NS-2

80

3.3 Cc thnh phn cu hnh mng trong NS-2:


3.3.1 Lp Simulator
Trong b cng c gi lp NS-2, lp quan trng nht l lp Simulator. N cung
cp cc th tc, giao tip to, qun l topology v lu gi cc tham s cu
hnh ca cc thnh phn trong topology. Thng thng, cc kch bn gi lp
thng bt u bng vic to mt th nghim ca lp Simulator iu khin v
thc hin vic gi lp, sau gi cc phng thc to cc node, topo v cu
hnh cho cc node, cc lin k t, ng dng
3.3.1.1 Khi to i tng Simulator
C php khi to mt i tng Simulator nh sau:
set ten_doi_tuong [new Simulator]
V d : set ns_ [new Simulator]
Sau khi khi to i tng th th tc khi to s thc hin cc cng vic:
+ Khi to nh dng ca gi d liu (gi hm create_packetformat).
+ To mt b lp lch (scheduler) , mc nh l calendar scheduler.
+ To mt null agent . null agent c to bng c php:
set nullAgent_ [new Agent/Null]
3.3.1.2 Cc b lp lch v cc s kin
Hin ti NS-2 cung cp bn b lp lch cho cng c gi lp:
+ List scheduler.
+ Heap Scheduler.
+ Calendar scheduler.
+ Real time scheduler.
Qui trnh lm vic ca b lp lch nh sau: B lp lch cc s kin s chn
s kin k tip gn nht trong b lp lch thc thi, sau khi thc thi xong s
tr v thc thi s kin k tip. n v thi gian dng trong b lp lch c
tnh bng giy. Hin ti, b cng c gi lp ch s dng tin trnh n, tc l
ti mt thi im ch c mt s kin c x l. Nu c nhiu s kin trong b

81

lp lch th s kin no vo trc s c x l trc. Trong mi kch bn gi


lp ch c s dng mt b lp lch.
B lp lch List Scheduler (lp Scheduler/List) c ci t da trn cu
trc d liu danh sch lin kt n. B lp lch ny dng thi gian phn bit
th t cc s kin v vy khi thm hoc xa mt s kin cn phi tm kim c
danh sch chn mt entry thch hp. Khi chn s kin k tip thc thi th
cn phi di cc s kin cn li ln mt v tr.
B lp lch Heap Scheduler (lp Scheduler/Heap) dng cu trc d liu
Heap ci t. Cu trc d liu ny cao cp hn so vi danh sch lin kt v
lu tr c nhiu s kin hn. phc tp ca cc thao tc thm, xa bng
O(log n) tng ng vi n s kin.
B lp lch Calendar Scheduler (lp Scheduler/Calendar) s dng cu trc
d liu tng t nh lch tnh dng lch, m cc s kin cng ngy, thng ca
cc nm khc nhau c th c lu tr trong cng mt ngy.
B lp lch thi gian thc Real-Time Scheduler (lp Scheduler/RealTime)
ng b thc thi cc s kin trong thi gian thc. B lp lch ny vn ang
trong giai on pht trin.
nh ngha Cu trc Heap
Heap l cy nh phn gn y c ci t bng mng mt chiu vi cc
node trn heap c ni dung nh hn hoc bng ni dung ca node cha. Heap
ny c gi l heap gim (descending heap ). Heap tng ( ascending heap )
th ngc li: cc node trn heap c ni dung ln hn hoc bng ni dung ca
node cha.

82

Hnh 3.4 Cu trc Heap gim


Cu trc heap gim c ci t bng cy nh phn v mng mt chiu
3.3.1.3 Cc phng thc khc
Lp Simulator cn cung cp thm mt s phng thc cho vic ci t cc
thng s cho vic gi lp.
Cc phng thc ny bao gm ba loi:
+ Cc phng thc to, qun l cc node, topo v cc lin kt.
+ Cc phng thc thc hin vic ghi nhn kt qu ca qu trnh gi lp.
+ Cc phng thc tr gip tng tc vi b lp lch.
Cc phng thc bao gm:
Simulator instproc now: tr v thi gian hin ti.
Simulator instproc at args: thc thi s kin thi im c th.
Simulator instproc cancel args: hy b vic thc thi s kin.
Simulator instproc run args: bt u khi ng b lp lch.
Simulator instproc halt: dng b lp lch.
Simulator instproc flush-trace: flush all trace object write buffers.
Simulator instproc create-trace type files src dst: t o i tng trace.
Simulator instproc create_packetformat: thit lp nh dng gi d liu.
3.3.1.4 Tm tt
to mt kch bn gi lp trong NS-2, ta cn to mt i tng Simulator
v thit lp cc thng s cn thit:

set ns_ [new Simulator]

83

$ns_ use-scheduler Heap


$ns_ at 300 $self ketthuc

Trong on Tcl ny, trc tin, ta to mt i tng ca lp Simulator, sau


thay i b lp lch mc nh sang b lp lch Heap Scheduler v cui cng
b lp lch s ghi nhn ti thi im giy th 300 s thc thi hm ketthuc.

3.3.2 Cu hnh Node


3.3.2.1 To Node
to mt node trong Tcl ta dng c php:
set ns_ [new Simulator]
$ns node
Mt node trong NS cha t nht cc thnh phn sau:
+ a ch hoc s ID, gi tr ny khi to bng 0, v tun t tng 1 n v
khi c mt node mi c to ra.
+ Danh sch cc node lng ging ca n (neighbor_).
+ Danh sch cc Agent (agent_ ).
+ Loi node (nodetype_ ).
+ Module nh tuyn ca node.
3.3.2.2 Cu hnh cho MobileNode
Cu hnh cho node ch yu tp trung vo Wireless. Bao gm cc thng s
sau: loi cu trc a ch s dng l a ch ng cp hay phn cp, nh ngha
cc thnh phn mng cho mobilenode: a ch MAC, loi Antenna, sng
truyn, la chn giao thc nh tuyn, nh ngha m hnh nng lng,
set topo [new Topography]
$ns_ node-config -addressingType hierarchical \
-adhocRouting AODV \
-llType LL \
-macType MAC/802_11 \
-ifqType Queue/DropTail/PriQueue \

84

-ifqLen 50 \
-antType Antenna/OmniAntenna \
-propType Propagation/TwoRayGround \
-phyType Phy/WirelessPhy \
-topologyInstance $topo \
-channel Channel/WirelessChannel \
-agentTrace ON \
-routerTrace ON \
-macTrace OFF \
-movementTrace OFF
Gi tr mc nh ca cc tham s trn l NULL, ngoi tr addressingType
c gi tr mc nh l flat.
3.3.2.3 Cu hnh cho Base-Station Node
Cu hnh cho Base-Station Node tng t nh cu hnh ca WirelessNode
tuy nhin, Base-Station c kh nng nh tuyn n mng c dy trong khi
MobileNode th khng c kh nng . Do , cu hnh cho Base-Station
Node, ta thm thuc tnh:
$ns_ node-config wiredRouting ON
3.3.2.4 Bng cc tham s cu hnh cho Node
Option

Cc gi tr

Gi tr

Ch thch

default
addressType

Flat, hierarchical

Flat

Loi a ch ca
node

MPLS

ON ,OFF

OFF

Chuyn mch
nhn a giao
thc

wiredRouting

ON , OFF

OFF

nh tuyn
trong mng

85

khng dy
llType
macType

LL
Mac/802.11 , Mac/Tdma

Loi LinkLayer

Loi

ch

nh

MAC
ifqType

Queue/DropTail,

Queue/DropTail/PriQueue

Kiu

trong card mng

phyType

Phy/WirelessPhy

Loi card mng

adhocRouting

DIFFUSION/RATE, TORA,

Giao thc nh
tuyn

DIFFUSION/PROB, DSDV,
DSR , FLOODING, AODV,
OMNIMCAST,
propType

Propagation/TwoRayGround,

Propagation/Shadowing

Cch

thc

truyn d liu
qua mng

propInstance

Propagation/TwoRayGround,

Propagation/Shadowing

Th hin ca i
tng propType

antType

Antenna/OmniAntennna

Loi antenna

Channel

Channel/WirelessChannel

Knh truyn

topoInstance

<topology file>

th

hin

ca

topo mng
mobileIP

ON , OFF

OFF

s dng k thut
MobileIP?

energyModel

EnergyModel

M hnh nng
lng

initialEnergy

<value in Joules>

Khi to gi tr
nng lng cho
node

86

rxPower

<value in W>

Gi

tr

nng

lng ca node
txPower

<value in W>

Gi

tr

nng

lng ca node
idlePower

<value in W>

agentTrace

ON , OFF

OFF

Ghi nhn cc
thng tin cho
vic nghin cu,
kim tra

routerTrace

ON , OFF

OFF

macTrace

ON , OFF

OFF

movementTrace

ON , OFF

OFF

errProc

UniformErrorProc

toraDebug

ON , OFF

OFF

Bng 3.1 Cc tham s cu hnh cho MobileNode

3.3.3 To lin kt cho cc Node


Trong NS-2 c hai loi lin kt cc node:
+ Lin kt n cng.
+ Lin kt song cng.
Lin kt n cng l loi lin kt theo kiu point-to-point gia hai node m
ch c mt node truyn v mt node nhn. Lp tng ng trong OTcl ca lin kt
n cng l lp SimpleLink. C php ca lin kt n cng gia hai node:
set ns_ [new Simulator]
$ns_ simplex-link <node0> <node1> <bandwidth><delay>< queue_type>
Cu lnh trn to ra mt lin kt t node0 n node1 vi mt gi tr bng
thng bandwidth, thi gian tr gia hai ln truyn delay v lin kt s dng loi
hng i queue_type. Loi hng i c cp trn.

87

Lin kt song cng cng l lin kt point-to-point gia hai node nhng mi
node u c kh nng va truyn v va nhn, tc lin kt song cng l hai lin
kt n cng. C php cng tng t nh lin kt n cng:
set ns_ [new Simulator]
$ns_ duplex-link <node0> <node1> <bandwidth> <delay> < queue_type>

3.4 Cc Agent trong NS-2:


3.4.1 Gii thiu
Agent hay c th gi l giao thc tng mng hoc tng vn ti dng x
l cc gi tin khi node nhn c. lp Agent c ci t mt phn trong OTcl
v mt phn trong C++. Trong OTcl l file ~ns/tcl/ns-agent.tcl, trong C++ l cc
file ~ns/agent.cc v ~ns/agent.h.
Cc Agent c ci t trong cng c gi lp ny l:
Tn Agent

Ch thch

TCP

TCP Tahoe

TCP/Reno

TCP Reno

TCP/Newreno

TCP Reno c chnh sa

TCP/Sack1

TCP SACK

TCP/Fack

forward TCP SACK

TCP/FullTCP

TCP hai chiu

TCP/Vegas

TCP Vegas

TCP/Vegas/RBP

TCP Vegas vi rate based pacing

TCP/Reno/RBP

TCP Reno vi rate based pacing

TCP/Asym

TCP Tahoe vi lin kt khng i xng

TCP/Reno/Asym

TCP Reno vi lin kt khng i xng

TCP/Newreno/Asym

TCP Newreno vi lin kt khng i xng

88

TCPSink

TCP Reno hoc Tahoe bn nhn

TCPSink/DelAck

TCP Delayed-ACK bn nhn

TCPSink/Asym

TCPSink vi lin kt khng i xng

TCPSink/Sack1

TCP SACK bn nhn

TCPSink/Sack1/DelAck

TCP Delayed-ACK SACK

UDP

Agent UDP

RTP

Agent RTP bn gi v bn nhn

RTCP

Agent RTCP bn gi v bn nhn

LossMonitor

Agent bn nhn dng kim tra vic mt cc gi


d liu

IVS/Source

Agent IVS bn gi

IVS/Receiver

Agent IVS bn nhn

CtrMcast/Encap

B ng gi centralized multicast

CtrMcast/Decap

B m gi centralized multicast

Message

Giao thc truyn tin nhn nguyn bn

Message/Prune

X l nh tuyn multicast vi cc message c


rt gn

SRM

agent SRM khng c timer

SRM/Adaptive

agent SRM c timer

Tap

Agent giao tip gia b gi lp vi mng thc

Null
rtProto/DV

Agent giao thc nh tuyn distance-vector


Bng 3.2 Cc Agent h tr trong NS-2

3.4.2 UDP Agent


UDP agent c ci t bn node gi d liu v cng c th c ci t bn
node nhn. Agent ny l agent khng hng kt ni, tc l khng c c ch

89

pht hin gi tin b mt khi truyn, v truyn li gi tin khi b mt. N ch thch
hp cho nhng ng dng khng i hi chnh xc cao, v chp nhn chu s
mt mt d liu.
Cc c php thng dng dng thit lp UDP agent trong NS-2:
+ To mt th nghim ca i tng UDP agent:
set udp0 [new Agent/UDP]
+ Kt ni agent UDP cho node:
$ns_ attach-agent <node> <agent>
+ Ci t ng dng cho agent:
$traffic-gen attach-agent <agent>
V d:
ci t ng dng CBR cho agent udp1, ta c c php:
set cbr1 [new Application/Traffic/CBR]
$cbr1 attach-agent $udp1
+ To mt kt ni gia hai agent:
$ns_ connect <src-agent> <dst-agent>
Cc thng s thit lp chi tit cho agent UDP:
$udp set packetSize_ <pktsize>
$udp set dst_addr_ <address>
$udp set dst_port_ <portnum>
$udp set class_ <class-type>
$udp set ttl_ <time-to-live>
V d:
To mt ng dng CBR, vi cc agent UDP:
set ns [new Simulator]
set n0 [$ns node]
set n1 [$ns node]
$ns duplex-link $n0 $n1 5Mb 2ms DropTail
set udp0 [new Agent/UDP]

90

$ns attach-agent $n0 $udp0


set cbr0 [new Application/Traffic/CBR]
$cbr0 attach-agent $udp0
$udp0 set packetSize_ 536 ;# set MSS to 536 bytes
set null0 [new Agent/Null]
$ns attach-agent $n1 $null0
$ns connect $udp0 $null0
$ns at 1.0 "$cbr0 start"

3.4.3 TCP Agent


Trong NS-2, TCP agent c chia lm hai loi:
+ Agent mt chiu.
+ Agent hai chiu.
Agent mt chiu l nhng agent ch ng mt trong hai vai tr hoc l bn gi
hoc l bn nhn. Trong khi , agent hai chiu l agent ng c hai vai tr va l
bn nhn, va l bn gi. Hin nay, agent ny vn ang c pht trin.
Cc agent mt chiu bn gi (one-way TCP sending agents ) ci t trong
NS:
+ Agent/TCP.
+ Agent/TCP/Reno.
+ Agent/TCP/Newreno.
+ Agent/TCP/Sack1.
+ Agent/TCP/Vegas.
+ Agent/TCP/Fack.
Cc TCP agent mt chiu bn nhn (one-way TCP receiving agents):
+ Agent/TCPSink.
+ Agent/TCPSink/DelAc
+ Agent/TCPSink/Sack1.
+ Agent/TCPSink/Sack1/DelAck.
TCP agent hai chiu ( two-way TCP agent):

91

+ Agent/TCP/FullTcp.
3.4.3.1 Mt s TCP agent bn gi
3.4.3.1.1 TCP Tahoe
TCP Tahoe (Agent/TCP) l phin bn sa i ca giao thc TCP c thm
chc nng kim sot thng lng truyn ca kt ni ( kim sot tt nghn
ca kt ni ) v c ci t du tin trong li Unix ca BSD (Berkeleys
Software Distribution) phin bn 4.3 BSD Tahoe.
Mc tiu ca c ch kim sot tt nghn ca kt ni l tm ra mt gi tr
thch hp cho khung truyn nm gia mt MSS-Maximum Segment Size v
gi tr ny thay i ty theo hon cnh ca mng hin ti. t c iu
ny, TCP Tahoe s dng ba c ch Slow-Start (Khi ng chm),
Congestion Avoidance (Trnh tt nghn) v Fast Retransmit (Truyn li
nhanh).
Cc tham s ca TCP Tahoe:
+ cwnd_ (congestion window) l gii hn khung truyn ln nht c th
m truyn m khng b tt nghn kt ni, n v tnh l packet.
+ window_ l kch thc khung truyn bn nhn.
+ swnd_ l kch thc khung truyn hin ti, c tnh theo cng thc:
swnd_ = min (cwnd_, window_)
Cng thc c ngha rng, kch thc ca khung truyn hin ti ca
TCP Tahoe c gi tr ln nht l bng vi kch thc khung truyn bn
nhn.
Slow-Start
Trong TCP chun, khi bt u kt ni, bn gi c th gi d liu vi
kch thc khung truyn bng kch thc khung truyn bn nhn mt
cch t ngt. Khi , c th kch thc vng m ca bn nhn khng
cn , dn n hin tng ca cc packet b mt v bn gi s phi
truyn li on d liu b mt . iu lm cho kt ni TCP mt i
tnh hiu qu. Thay v vy, trong c ch khi ng chm, TCP s tng gi

92

tr cwnd_ dn dn t n gi tr ti a. Gi tr khi to ca cwnd_


nh hn hay bng 2MSS, thng thng c gn bng 1MSS. Sau ,
gi tr ny tng thm 1MSS mi khi nhn c thng bo yu cu gi d
liu mi (bn nhn nhn thnh cng d liu trc ). C ch SlowStart s kt thc khi gi tr cwnd_ vt qu gi tr ssthresh_ (slow-start
threshold) l gi tr ngng ca ca cwnd_.
Congestion Avoidance
Trong giai on ny, TCP Tahoe hot ng mt cch rt thn trng khi
khung truyn gn t n gi tr m trc xy ra mt d liu.
Khi , mi khi nhn v mt ACK khung s tng gi tr cwnd_ theo cng
thc:
cwnd_ = cwnd_ + 1/cwnd_
Theo cng thc ny, sau khi nhn c y thng tin cho mt s
cwnd_ ca cc packet, cwnd_ s tng ln 1 MSS.
Fast Retransmit
TCP Tahoe cho rng mt packet b mt (v b tt nghn) khi n
nhn thy c mt s lin tc cc gi tr ACK trng nhau cho cng mt
packet (gi tr mc nh l 3) hoc thi gian ch nhn phn hi gi tin
ACK ht hiu lc. Khi , TCP Tahoe s phn ng li bng cch gn gi
tr ssthresh_ bng gi tr kch thc ca khung truyn hin ti. Sau ,
khi to gi tr cwnd_ bng gi tr windowInit_ (gi tr mc nh l
1MSS) v bt u khi ng li c ch Slow-Start.
3.4.3.1.2 TCP Reno
TCP Reno (Agent/TCP/Reno) l mt ci tin ca TCP Tahoe bng cch
a ra c ch Fast Recovery (phc hi nhanh) kt hp vi c ch Fast
Retransmit trong TCP Tahoe. tng ca Fast Recovery l mt yu cu
truyn li (D-ACK) s phi ch ra bng thng c th dng trong khung
truyn t khi mt on d liu c pht i thnh cng. iu ny c ngha
rng cwnd_ cn thc s tng ln mi khi pht i mt D-ACK. Sau khi gi

93

on c xem nh l b mt, Fast Recovery s bt u. Lc , cwnd_ s


c tng ln:
cwnd_ = ssthresh_ + 3 MSS
Sau , mi khi nhn D-ACK, cwnd_ s tng ln 1MSS.
C ch Fast Recovery c kch hot khi nhn c mt s ngng cc
D-ACK: bn gi s truyn li mt on v gn cc ngng ny gi tr bng
gi tr ca cwnd_ hin ti. K n, thay v chuyn sang c ch Slow-Start
nh TCP Tahoe, bn gi s cng thm vo cwnd_ mt s bng vi s
ngng. Sau , chng no bn nhn cn trong trng thi Fast Recovery th
cwnd_ s c cng thm 1 cho mi D-ACK c nhn. Fast Recovery ch
c hon tt khi mt ACK cho d liu mi c nhn. Bn gi sau s
gn cwnd_ bng vi gi tr ca ngng hin ti v chnh li s m D-ACK
v gi tr ban u.
3.4.3.1.3 TCP Newreno
TCP Newreno (Agent/TCP/Newreno) gii quyt c s bt kh thi ca
TCP Reno l vic khc phc li khi c nhiu packet b mt ng thi. N
sa li qu trnh hot ng ca c ch Fast Recovery: trong qu trnh Fast
Recovery, nu mt partial ACK (thng bo khng cng nhn s byte lin
tip cao nht c nhn) c nhn, bn gi s xem n nh l du hiu
ch ra rng on k tip tng ng vi thng bo b mt. TCP
Newreno s truyn li on v i thng bo phn hi tng ng. Trng
thi Fast Recovery s khng kt thc chng no m byte c nh s cao
nht c gi i trc khi pht hin ra s mt packet u tin c tha
nhn. Khi iu ny xy ra, kch thc khung s co li bng ssthresh_ v c
ch trnh tt nghn c lp li.
3.4.3.2 Mt s TCP agent bn nhn
TCPSink

94

TCPSink c nhim v tr v gi tr ACK mi khi nhn gi d liu t


TCP bn gi. N ch pht sinh mt ACK cho mi packet nhn c. Kch
thc ca ACK c th thay i oc.
Cc tham s cu hnh:
Agent/TCPSink set packetSize_ 40 : thay i kch thc ca packet.
TCPSink/DelAck
i tng Delayed-ACK TCP Sink (Agent/TCPSink/DelAck) c th gi
phn hi mt gi ACK sau khi nhn c vi packet. i tng ny
cha tham s interval_ qui nh thi gian ch gia hai ln truyn gi tin
ACK.
Cc tham s cu hnh:
Agent/TCPSink/DelAck set interval_ 100ms1
3.4.3.3 TCP agent hai chiu
c th to kt ni, TCP phi thc hin vic bt tay ba ln (3 way_
handshake):
+ Bn gi gi mt gi SYN sang bn nhn.
+ Bn nhn gi phn hi mt gi vi SYN + ACK tng ng.
+ Bn gi s gi li mt gi ACK chp nhn kt ni.
Sau d liu s c trao i vi nhau.
Cc tham s cu hnh mc nh cho FullTcp:
+ Agent/TCP/FullTcp set segsperack_ 1.
+ Agent/TCP/FullTcp set segsize_ 536.
+ Agent/TCP/FullTcp set tcprexmtthresh_ 3.
+ Agent/TCP/FullTcp set iss_ 0.
+ Agent/TCP/FullTcp set nodelay_ false.
+ Agent/TCP/FullTcp set data_on_syn_ false.
+ Agent/TCP/FullTcp set dupseg_fix_ true.
+ Agent/TCP/FullTcp set dupack_reset_ false.
+ Agent/TCP/FullTcp set interval_ 0.1.

95

V d:
To mt agent FullTcp:
set src [new Agent/TCP/FullTcp] ;# create agent
set sink [new Agent/TCP/FullTcp] ;# create agent
$ns_ attach-agent $node_(s1) $src ;# bind src to node
$ns_ attach-agent $node_(k1) $sink ;# bind sink to node
$src set fid_ 0 ;# set flow ID field
$sink set fid_ 0 ;# set flow ID field
$ns_ connect $src $sink ;# active connection src to sink
# set up TCP-level connections
$sink listen ;# will figure out who its peer is
$src set window_ 100;

3.4.4 V d minh ha
To mt kt ni TCP gia hai node n0 v n1 vi n0 s dng TCP Tahoe v n1
s dng TCPSink. lp TCP i din cho giao thc TCP bn node gi d liu.
N s gi d liu n cho agent TCPSink v TCPSink s x l tham s ACK
kim tra tnh ng n ca gi d liu:
set ns [new Simulator]

set tcp [new Agent/TCP] ;# Khi to agent TCP bn node gi d liu


$tcp set fid_ 2 ;# set IP-layer flow ID
set sink [new Agent/TCPSink] ;# Khi to agent TCPSink bn node nhn
$ns attach-agent $n0 $tcp ;# Thit lp agent TCP cho node n0
$ns attach-agent $n1 $sink ;# Thit lp agent TCPSink cho node n1
$ns connect $tcp $sink ;# Xc lp mt kt ni TCP cho hai agent
set ftp [new Application/FTP] ;# To mt ng dng FTP
$ftp attach-agent $tcp ;# Ci t ng dng FTP cho node n0
$ns at 2 "$ftp start" ;# Thc thi ng dng FTP ti thi im giy th 2

96

3.5 ng dng trong NS-2:


3.5.1 Lp Application
ng dng trong NS-2 c xy dng bi lp Application c ci t trong
phn nhn ca NS-2:
class Application: public TclOject {
public:
Application();
virtual void send(int nbytes);
virtual void recv(int nbytes);
virtual void resume();
protected:
int command(int argc, const char* const* argv);
virtual void start();
virtual void stop();
Agent *agent_;
int enableRecv_; // call Otcl recv or not
int enableResume_; // call Otcl resume or not
};
Bng 3.3 Cc phng thc ca lp Application
Lp Application cung cp mt s phng thc c bn cho qu trnh hot ng
ca mt ng dng: send(), recv(), resume(), start(), stop(), mt con tr tr n
giao thc tng vn ti bn di m n kt ni.

3.5.2 Phn loi ng dng


Trong NS-2 c hai loi ng dng c bn:
+ ng dng pht sinh lu lng mng (Traffic Generator).
+ ng dng gi lp mng (Simulated Applications).

97

Hnh 3.5 Hai loi ng dng trong NS-2


3.5.2.1 ng dng pht sinh lu lng mng
Loi ng dng ny c xy dng bi lp TrafficGenerator:
class TrafficGenerator :
public:
TrafficGenerator();
virtual double next_
virtual void init()
virtual double interval()
virtual int on()
virtual void timeout();
virtual void recv()
virtual void resume()
protected:
virtual void start();
virtual void stop();
double nextPkttime_;
int size_;
int running_;
TrafficTimer timer_;

98

};
Bng 3.4 Cc phng thc ca lp TrafficGenerator
ng dng pht sinh lu lng mng c th chia lm ba loi: exponential,
pareto v CBR.
i tng Exponential (Application/Traffic/Exponential) pht sinh lu
lng mng theo hai trng thi ON/OFF. trng thi ON, cc gi d liu
c pht sinh theo mt tc truyn khng i. Ngc li, trong trng thi
OFF, khng pht sinh lu lng mng. Cc tham s cu hnh cho i
tng:
PacketSize_ : kch thc ca gi d liu.
burst_time_ : thi gian trung bnh trong trng thi ON.
idle_time_ : thi gian trung bnh trong trng thi OFF.
rate_ : tc gi cc gi d liu.
i tng Pareto (Application/Traffic/Pareto) cng pht sinh lu lng
mng theo hai trng thi ON, OFF. Cc tham s cu hnh:
PacketSize_ : kch thc ca gi d liu.
burst_time_ : thi gian trung bnh trong trng thi ON.
idle_time_ : thi gian trung bnh trong trng thi OFF.
rate_ : tc gi cc gi d liu.
i tng CBR (Application/Traffic/CBR) dng pht sinh cc gi d
liu theo mt tc bit khng i. Cc tham s cu hnh:
PacketSize_ : kch thc ca gi d liu.
rate_ : tc truyn d liu.
interval_ : khong thi gian gia hai ln truyn d liu.
random_ : pht sinh tn hiu nhiu mt cch ngu nhin. Gi tr mc
nh l off.
maxpkts_ : s packet ln nht c truyn i.
3.5.2.2 ng dng gi lp mng
FTP ( Application/FTP ) l ng dng dng truyn ti cc file qua mng.

99

Cc phng thc c ci t trong NS-2:


attach-agent : gn ng dng FTP ln agent vn ti.
start : khi ng ng dng FTP.
stop : ngng ng dng.
Tham s cu hnh:
maxpkts : s gi d liu ln nht c pht sinh bn gi.
Telnet : ( Application/Telnet ) dng pht sinh cc gi d liu theo mt
trong hai cch da vo bin interval_ . Mc nh , gi tr ny bng 0.

3.5.3 Cc v d minh ha
V d 1 :
To ng dng pht sinh lu lng mng:
set src [new Agent/UDP]
set sink [new Agent/UDP]
$ns_ attach-agent $node_0 $src
$ns_ attach-agent $node_1 $sink
$ns_ connect $src $sink
set e [new Application/Traffic/Exponential]
$e attach-agent $src
$e set packetSize_ 210
$e set burst_time_ 500ms
$e set idle_time_ 500ms
$e set rate_ 100k
$ns_ at 0.0 "$e start"
$ns_ at 100.0 "$e stop"
V d 2 :
To ng dng gi lp mng:
set Tcp [new Agent/TCP]
set Sink [new Agent/TCPSink]
$ns_ attach-agent $node_0 $Tcp

100

$ns_ attach-agent $node_1 $Sink


$ns_ connect $Tcp $Sink
set App [new Application/FTP]
$App attach-agent $Tcp
$ns_ at 10 "$App start"
$ns_ at 100 "$App stop"

3.6 Mng khng dy trong NS-2:


Thnh phn quan trng nht trong m hnh mng khng dy l MobileNode.
Trong C++, lp MobileNode c k tha t lp cha l lp Node. Do ,
MobileNode c y cc c im ca i tng Node, thm vo l cc c
tnh ca Wireless nh kh nng di chuyn t do trong phm vi ca topology, c
kh nng truyn v nhn tn hiu v tuyn.
im khc nhau quan trng gia Node v MobileNode l MobileNode khng
dng khi nim Link (lin kt c dy) lin kt vi cc Node hay cc
MobileNode khc. Thay vo , MobileNode s dng sng v tuyn lin kt
vi cc MobileNode khc.
Lp Mobile c ci t trong c C++ v OTcl: Cc ci t phc tp nh vic
di chuyn ca MobileNode, vic cp nht li v tr, duy tr cu trc mng,
c vit bng C++. Trong khi , vic cu hnh cc thnh phn trong
MobileNode nh a ch Mac, Channel, Antenna, c ci t trong OTcl.

3.6.1 Cc thnh phn cu hnh ca mt MobileNode


Xem phn 3.3.2 ( Cu hnh Node ).

3.6.2 To m hnh mng khng dy trong NS-2


Mt MobileNode bao gm cc thnh phn: Link Layer, Interface Queue, ARP,
a ch MAC, m hnh truyn ca sng v tuyn, Card mng, knh truyn. Ngoi
ra, cn c cc thnh phn khc: kiu Antenna, loi giao thc nh tuyn.
Do , to mt m hnh mng khng dy, ta cn cu hnh cho MobileNode:
set val(chan)

Channel/WirelessChannel ;#channel type

101

set val(prop)

Propagation/TwoRayGround ;#radio-propagation model

set val(ant)

Antenna/OmniAntenna ;#Antenna type

set val(add)

hierarchical ;#Addressing type

set val(ll)

LL ;#Link layer type

set val(ifq)

Queue/DropTail/PriQueue ;#Interface queue type

set val(ifqlen) 50 ;#max packet in ifq


set val(netif) Phy/WirelessPhy ;#network interface type
set val(mac)

Mac/802_11 ;#MAC type

set val(adhocRouting)

DSDV ;#ad-hoc routing protocol

set val(x)

500 ;#X-cordinate

set val(y)

500 ;#Y-cordinate

set topo [new Topography]

set ns_ [new Simulator]

$ns_ node-config -adhocRouting $val(adhocRouting) \


-llType $val(ll) \
-macType $val(mac) \
-ifqType $val(ifq) \
-ifqLen $opt(ifqlen) \
-antType $opt(ant) \
-propInstance [new $opt(prop)] \
-phyType $opt(netif) \
-channel [new $opt(chan)] \
-topoInstance $topo \
-wiredRouting OFF \
-agentTrace ON \
-routerTrace OFF \
-macTrace OFF

102

Tip theo, to mt m hnh mng khng dy vi nm MobileNode theo c


php:
set val(nn) 5
for { set j 0 } { $j < $val(nn)} {incr j} {
set node_($j) [ $ns_ node ]
$node_($i) random-motion 0 ;# disable random motion
}

3.6.3 To kch bn chuyn ng cho cc Node


Cc MobileNode c thit k chuyn ng ba chiu ( X,Y,Z ). Tuy nhin,
trong cng c gi lp ny, th chiu Z khng c s dng ( Z=0 ), nn cc
MobileNode ch chuyn ng theo hai chiu X, Y.
Trong NS-2, c hai phng php to s chuyn ng cho cc MobileNode:
+ Khi to v tr ban u cho cc MobileNode v khai bo a ch ch
m cc MobileNode di chuyn ti mt cch tng minh.
+ Thit lp cho cc MobileNode di chuyn ngu nhin.
Phng php th nht
$node set X_ <x1>
$node set Y_ <y1>
$node set Z_ <z1>
$ns at $time $node setdest <x2> <y2> <speed>
Ch thch:
Ban u, ta khi to v tr bt u cho node vi ta (x1,y1,0). Sau ,
ti thi im $time giy, node s bt u di chuyn t v tr khi to
(x1,y1,0) n v tr ch (ta ( x2 , y2 ,0 ) ) vi vn tc speed.
Phng php th hai
$node start
Ch thch:
MobileNode khi to ngu nhin cho v tr ban u, v tr ch v tc
di chuyn.

103

3.6.4 Giao thc nh tuyn cho mng khng dy


Giao thc nh tuyn l mt trong nhng thnh phn quan trong trong cu hnh
mng Trong phm vi ca ti ny, chng ti tp trung tm hiu cc giao thc
nh tuyn c ci t trong cng c gi lp mng NS-2 s dng trong mng
MANET, bao gm: TORA, DSDV, AODV, DSR.
3.6.4.1 Gii thiu tng quan
Trong mng Ad-hoc, giao thc nh tuyn c chia thnh ba loi:
+ Giao thc nh tuyn kiu Table-driven (Proactive).
+ Giao thc nh tuyn kiu On-Demand (Reactive).
+ Giao thc nh tuyn kt hp.
Giao thc nh tuyn kiu Table-driven (Proactive)
Trong kiu giao thc nh tuyn ny, mt node lun lun duy tr trong
bng nh tuyn ca n thng tin nh tuyn n tt c cc node khc trong
mng. Thng tin nh tuyn c pht broadcast trn mng theo mt
khong thi gian qui nh gip cho bng nh tuyn lun cp nht nhng
thng tin mi nht. Tuy nhin, vi nhng mng m cc node di chuyn
nhiu, hoc cc lin kt gia cc node b t th giao thc nh tuyn
proactive s phi tm kim hoc sa cha cc lin kt b t, nhng nu cc
lin kt khng s dng th s tr nn lng ph ti nguyn, nh hng n
bng thng ca mng. Nn giao thc nh tuyn ny ch p dng trong cc
m hnh mng MANET m cc node t di chuyn.
Cc giao thc nh tuyn theo kiu Proactive:
+ Destination-Sequenced Distance Vector (DSDV).
+ Wireless Routing Protocol (WRP).
+ Global State Routing (GSR).
+ Clusterhead Gateway Switch Routing (CGSR).
Giao thc nh tuyn kiu On-Demand (Reactive)
Trong loi giao thc nh tuyn ny, cc con ng i s ch c to ra
nu c nhu cu. Khi mt node mun gi d liu n mt node ch, n s

104

khi ng tin trnh route discovery tm kim con ng i n ch. Sau


khi mt ng i c xc lp, n s duy tr thng tin bng tin trnh
route maintenance cho n khi hoc node ch khng th truy cp hoc con
ng i khng cn hiu lc.
Vi cc c ch , giao thc nh tuyn theo kiu Reactive khng pht
broadcast cc thay i ca bng nh tuyn theo thi gian, nn tit kim
c ti nguyn mng. V vy loi giao thc ny c th s dng trong cc
mng ln, cc node di chuyn nhiu.
Cc giao thc nh tuyn dng Reactive tiu biu:
+ Cluster Based Routing Protocol (CBRP).
+ Ad hoc On-Demand Distance Vector (AODV).
+ Dynamic Source Routing (DSR).
+ Temporally Ordered Routing Algorithm (TORA).
+ Associativity-Based Routing (ABR).
+ Signal Stability Routing (SSR).
+ Location Aided Routing (LAR).
Giao thc nh tuyn kt hp(Hybrid)
Trong kiu nh tuyn ny, mng c chia thnh cc zone. Mi node
duy tr c thng tin v kin trc mng trong zone ca n v thng tin v cc
zone lng ging. iu c ngha l: giao thc Hybrid s dng giao thc
nh tuyn proactive trong zone ca n v giao thc nh tuyn reactive
gia cc zone. Do , ng i n mi node trong cng mt zone c xc
lp m khng cn phi nh tuyn ra ngoi zone, trong khi cc tin trnh
route discovery v route maintenance th c s dng tm kim, duy tr
ng i gia cc node ca cc zone vi nhau.
Cc giao thc nh tuyn tiu biu s dng kiu Hybrid:
+ Zone Routing protocol (ZRP).
+ Zone-based hierarchical link state (ZHLS) routing protocol.
+ Distributed dynamic routing algorithm (DDR).

105

Hnh 3.6 Cc giao thc nh tuyn trong mng MANET


3.6.4.2 Giao thc nh tuyn TORA
TORA (Temporally Ordered Routing Algorithm) l mt giao thc nh
tuyn gii quyt c nhc im ca cc giao thc nh tuyn truyn thng l
ph b c vng lp (loop-free) v c kh nng thch ng cao vi mi trng
mng c nhiu thay i da trn khi nim link reversal, n tm kim thng
tin v ng i theo yu cu, cung cp nhiu ng i n ch, xc lp ng
i mt cch nhanh chng.
TORA t s dng con ng i ti u (tc l con ng i ngn nht) m
n thng s dng cc con ng i di hn nhm hn ch vic phi tm
kim cc con ng i mi lm nh hng n lu lng truyn trn mng.
Cch thc hot ng ca thut ton TORA c th din t nh thut ng m
hnh nc chy t node ngun n node ch ca mng cc ng nc nh
trong m hnh mng thc t. Cc ng nc i din cho lin kt gia cc node,
giao im ca cc ng nc i din cho cc node v nc trong ng i din
cho cc gi d liu truyn n ch. Mi node c mt trng s ti mi node
ch c tnh ton bi giao thc nh tuyn. Nu mt ng nc gia node A
v node B b chn lm cho nc khng th chy qua c, th trng s ca
node A c t trng s ln hn cc node lng ging ca n v do nc s
chy ngc tr ra node A (v chy vo cc node khc m c thng tin nh
tuyn n ch qua node A).

106

Hnh 3.7 M hnh nc chy trong mng vi giao thc TORA


Giao thc nh tuyn TORA c s dng trong mi trng mng di ng
c tnh cht ng cao, cung cp nhiu ng i khc nhau gia hai node.
lm c iu ny, cc node cn duy tr thng tin nh tuyn n cc node
lng ging ca n.
Giao thc nh tuyn ny thc hin ba chc nng chnh :
+ To thng tin nh tuyn.
+ Duy tr thng tin nh tuyn.
+ Xa b thng tin nh tuyn.
Mi node trong mng lun duy tr mt th khng vng c hng
(directed acyclic graph (DAG)) ring cho mi node cn li trong mng. Khi
mt node mun nh tuyn n mt node ch c th no , n pht broadcast
mt gi QUERY cha thng tin v a ch ch. Gi QUERY ny c truyn
trong mng cho n khi n tm c node ch hoc mt node trung gian m
c thng tin nh tuyn n node ch. Sau , node ch hoc node trung gian
s pht broadcast mt gi UPDATE cha trng s ca n n node ngun.
Khi gi UPDATE truyn qua mng, cc node trong mng m nhn c gi
UPDATE ny s cp nht li thng tin v trng s ca n bng cch t gi tr
trng s ln hn gi tr trng s ca node lng ging m nhn gi UPDATE
trc . iu ny to ra mt chui cc lin kt c hng t node gi gi
QUERY n node gi gi UPDATE tr li. Khi mt node khm ph rng mt

107

thng tin nh tuyn n mt node ch khng cn gi tr, n s iu chnh gi


tr trng s ca n bng gi tr ln nht so vi cc node lng ging ca n v
pht gi UPDATE ln mng. Nu node m c tt c cc lng ging c trng s
bng v cng n node ch ny, th node s bt u khm ph thng tin nh
tuyn mi. Khi mt node khm ph ra con ng i mi, n s pht sinh mt
gi CLEAR thit lp li trng thi bng nh tuyn v xa cc con ng i
khng cn hiu lc.

Hnh 3.8 Cc gi tr hop-count trong TORA


Nh cp trn, trong qu trnh to v duy tr thng tin nh tuyn, cc
node s dng gi tr hop-count xc lp mt DAG n node ch. Sau ,
hng ca cc lin kt c ch nh da trn mi quan h gia cc node lng
ging. Khi cc lin kt gia cc node trong mt DAG b t, th c ch duy tr
thng tin nh tuyn (route maintenance) s xc lp mt DAG mi n node ch.
Sau , TORA s pht broadcast gi tin CLEAR qua mng loi b thng tin
nh tuyn khng cn gi tr .
3.6.4.3 Giao thc nh tuyn DSDV
DSDV (Destination-Sequenced Distance-Vector) l mt bin th ca giao
thc nh tuyn distance vector theo kiu proactive, da trn tng ca thut
ton nh tuyn kinh in Bell-man-Ford vi mt cht ci tin.
Ci tin mi ca DSDV l s dng k thut nh s sequence number. k
thut ny dng nhn ra cc con ng i khng cn gi tr trong qu trnh
cp nht bng nh tuyn, do s trnh c vng lp trong qu trnh nh

108

tuyn. Mi node s tng s sequence number khi gi thng tin v bng nh


tuyn ca n cho cc node khc trong mng.Cc c ch trong DSDV:
Qun l bn nh tuyn
Mi node lun duy tr mt bng nh tuyn n tt c cc node khc trong
mng. Thng tin ca mt entry trong bng nh tuyn bao gm:
+ a ch ca node ch.
+ S hop n ch (hop-count ).
+ Next hop.
+ S sequence number ca node ch.
m bo cho bng nh tuyn lun ph hp vi nhng thay i trong
mng th cc node phi thng xuyn cp nht bng nh tuyn theo mt
khong thi gian nht nh hoc khi mng c s thay i. Do , cc node
phi qung b thng tin nh tuyn ca n cho cc node khc trong mng
bng cch pht broadcast nhng thay i trong bng nh tuyn ca n. Khi
mt node nhn gi tin cp nht bng nh tuyn, n s kim tra s sequence
number ca gi tin cp nht, nu s sequence number trong gi tin cp nht
ln hn hoc bng vi s sequence number trong bng nh tuyn v c s
hop-count nh hn th node s cp nht thng tin vo bng nh tuyn.
Cch thc cp nht bng nh tuyn:
Bng nh tuyn cp nht theo hai cch:
+ Cp nht ton b bng nh tuyn cho cc node lng ging v c
th truyn trong nhiu packet, gi l full- dump.
+ Cp nht cc phn thay i trong bng nh tuyn ca n cho cc
node lng ging v cc thng tin thay i ch c gi i trong mt
packet. Cch cp nht ny gi l incremental- update.
i vi mt mng Ad-hoc tng i n nh, th kiu cp nht
incremental-update s thng c s dng hn ch lu lng truyn
trn mng. Trong khi , full-dump s c s dng trong mng t c s n
nh.

109

Qun l s thay i ca Topology


Khi mt node di chuyn t ni ny n ni khc th cc lin kt ca n
vi cc node lng ging c th khng cn hiu lc. Khi node pht hin rng
lin kt n next hop ca n khng cn tn ti, th ng i thng qua next
hop lp tc s c hop-count l v s sequence number c tng ln 1.
Sau node s pht broadcast thng tin cho tt c cc node trong mng
v cc node s cp nht li bng nh tuyn ca mnh.
3.6.4.4 Giao thc nh tuyn DSR
DSR (Dynamic Source Routing) l giao thc nh tuyn n gin v hiu
qu c thit k ring cho mng MANET. DSR cho php mng t ng t
chc v cu hnh m khng cn n s qun tr hoc c s h tng sn c ca
mng.
Giao thc nh tuyn DSR bao gm hai c ch c bn: Route Discovery v
Route Maintenance, nh hai c ch ny m cc node c th tm v duy tr
c cc ng i n cc node trong mng.
Mt c tnh ni bt khc ca DSR l n s dng k thut nh tuyn source
routing, khi bn gi s bit ton b thng tin ng i n ch, iu ny
gip cho vic nh tuyn trn mng khng b hin tng vng lp (loop) lm
tng hiu nng ca mng. nh tuyn c th trong header ca packet lu
gi thm thng tin v source route. Thng tin v bng nh tuyn c lu
trong route cache. Khi mt node trong mng Ad hoc mun gi d liu n mt
node ch n s tm kim thng tin trong route cache nu cha c thng tin v
ng i th node ngun s khi ng tin trnh route discovery tm kim
con ng i n ch.
C ch route discovery:
Route Discovery cho php cc host trong mng Ad hoc tm kim ng
i n ch mt cch t ng thng qua cc node trung gian. Tin trnh
route discovery s pht broadcast gi route request (RREQ) ln mng.
Ngoi cc trng bnh thng, Thng tin trong packet RREQ cn cha mt

110

s request ID_ l mt s c to ra bi node ngun v l s khng trng


nhau. Khi mt node nhn gi RREQ th n s tin hnh kim tra thng tin
trong RREQ nh sau:
1. N kim tra xem y c phi l ln u tin n nhn gi RREQ c
a ch ch v s request ID_ hay khng? nu khng phi th n s loi
b gi tin ny v khng x l. Ngc li th qua bc 2.
2. N kim tra trong trng source route ca gi RREQ c a ch
ca n hay cha? nu tn ti th n cng s loi b gi tin v khng
x l g thm. Ngc li th qua bc 3.
3. N kim tra trong route cache ca n c ng i n node ch m
cn hiu lc hay khng? nu c ng i n ch th n s phn hi li
cho node ngun bng gi route reply (RREP) cha thng tin v ng i
n ch v kt thc tin trnh. Ngc li qua bc 4.
4. N kim tra a ch ch cn tm c trng vi a ch ca n hay
khng? nu trng th n cng s gi li cho node ngun gi route reply
(RREP) cha thng tin v ng i n ch v kt thc tin trnh.
Ngc li th n s pht broadcast n cc node lng ging ca n.
Qu trnh ny c tip tc cho n khi node ngun nhn c thng tin v
ng i n ch hoc thng tin rng khng th nh tuyn n ch. Gi
route reply (RREP) c gi n node ngun bng c ch pht unicast vi
source route l o ngc source route trong gi RREQ.
Trong qu trnh route discovery, th cc node s hc cc con ng i
n cc node khc v lu trong route cache ca mnh:
+ Khi node ngun tm kim c ng i n node ch th n
cng s bit c ng i n cc node trung gian.
V d: Khi node S tm c ng i n node D l [S,E,F,J,D] th
node S s bit c ng i n cc node khc nh node F l
[S,E,F], node J l [S,E,F,J],

111

+ Trong qu trnh pht broadcast gi RREQ, cc node trung gian


cng s bit c con ng i n node ngun.
V d: Khi node K nhn c mt gi RREQ vi source route l
[S,C,G] th node K s bit c ng i n node ngun S l
[K,G,C,S].
+ Trong qu trnh forward gi RREP th cc node trung gian bit
c ng i n node ch.
V d: Khi node F forward gi RREP vi source route l
[S,E,F,J,D], th node F bit c ng i n D l[F,J,D].
C ch route maintenance
Trong giao thc nh tuyn DSR, cc node khi chuyn gi tin trn mng
u phi c nhim v xc nhn rng gi tin chuyn n next hop hay
cha? Trong mt trng hp no m node pht hin rng gi tin
khng th truyn n next hop. N s gi gi Route Error (RERR) cho node
ngun thng bo tnh trng hin thi ca lin kt v a ch ca next hop
m khng th chuyn i. Khi node ngun nhn c gi RERR, n s xa
con ng i m s dng lin kt b hng trong route cache v tm mt
ng i khc m n bit trong route cache hoc s khi ng mt tin trnh
route discovery mi nu ng i ny ang c nhu cu s dng.
3.6.4.5 Giao thc nh tuyn AODV
AODV (Ad hoc On-Demand Distance Vector) l s kt hp gia hai giao
thc nh tuyn DSDV v DSR. Cng ging nh DSR, trong giao thc nh
tuyn AODV, cc node ch tm kim v duy tr thng tin nh tuyn khi cc
node c nhu cu trao i d liu.
AODV vn s dng c ch tm ng nh trong DSR l s dng tin trnh
route discovery. Tuy nhin, AODV cn s dng nhiu c ch khc duy tr
thng tin bng nh tuyn. N s dng bng nh tuyn truyn thng lu
tr thng tin nh tuyn vi mi entry cho mt a ch ch . iu tri
ngc vi giao thc DSR, c th duy tr nhiu entry cho mt a ch ch.

112

Khng s dng source route v ch cn bit thng tin v cc node lng ging
ca n, AODV da trn cc entry ca bng nh tuyn pht gi RREP v
cho node ngun v node ngun dng thng tin gi d liu n ch.
m bo rng thng tin trong bng nh tuyn l mi nht th AODV s dng
khi nim destination sequence number ca giao thc nh tuyn DSDV
loi b nhng ng i khng cn gi tr trong bng nh tuyn. Mi node s
c mt b tng s sequence number ring cho n. Cc c ch chnh ca
AODV:
C ch Route Discovery
Mi node lun c hai b m (counter): b m s sequence number v
b m broadcast ID. S sequence number c tng ln trong cc trng
hp:
+ Trc khi mt node khi ng tin trnh route discovery, iu ny
chng s xung t vi cc gi RREP trc .
+ Trc khi mt node ch gi gi RREP tr li gi RREQ, n s cp
nht li gi tr sequence number ln nht ca s sequence number hin
hnh m n lu gi vi s sequence number trong gi RREQ.
+ khi c mt s thay i trong mng cc b ca n (mng cc b l
cc node lng ging).
S Broadcast ID c tng ln khi node khi ng mt tin trnh route
discovery mi.
Tin trnh Route Discovery c khi ng khi no mt node mun trao
i d liu vi mt node khc m trong bng nh tuyn ca n khng c
thng tin nh tuyn n node ch . Khi tin trnh s pht broadcast
mt gi RREQ cho cc node lng ging ca n. Thng tin trong RREQ
ngoi a ch ch, a ch ngun, s hop count, ... Cn c cc trng: s
sequence number ca node ngun, s broadcast ID, s sequence number ca
node ch. Cp thng tin <a ch ngun, s broadcast ID> l s nh danh

113

duy nht cho mt gi RREQ. Khi node lng ging nhn c gi RREQ, th
n s kim tra tun t theo cc bc:
1. Xem gi RREQ c x l trc hay cha? nu c x
l th n s loi b gi tin v khng x l thm. Ngc li chuyn qua
bc 2.
2. Nu trong bng nh tuyn ca n c cha ng i n ch, th s
kim tra gi tr destination sequence number trong entry cha thng tin
v ng i vi s destination sequence number trong gi RREQ, nu s
destination sequence number trong RREQ ln hn s sequence number
trong entry th n s khng s dng thng tin trong entry ca bng nh
tuyn tr li cho node ngun m n s tip tc pht broadcast gi
RREQ n cc node lng ging ca n. Ngc li n s pht unicast
gi RREP ngc tr li cho node lng ging m n nhn gi RREQ.
Gi RREP ngoi cc thng tin nh: a ch ngun, a ch ch, cn cha
cc thng tin: destination sequence number, hop-count, gi tr TTL.
Ngc li th qua bc 3.
3. Nu trong bng nh tuyn ca n khng c ng i n ch th
n s tng s hop-count ln 1, ng thi n s t ng thit lp mt
ng i ngc (reverse path) t n n node ngun bng cch ghi nhn
li a ch ca ca node lng ging m n nhn gi RREQ ln u tin.
Entry cha ng i ngc ny s c tn ti trong mt khong thi
gian gi RREQ tm kim ng i n ch v gi RREP phn hi
cho node ngun, sau entry ny s c xa i. Cc thng tin bao gm:
+ a ch ch.
+ a ch ngun.
+ S broadcast ID.
+ Thi gian timeout cho vic ch i thi gian nhn gi RREP.
+ S sequence number ca node ngun.
Sau pht broadcast n cc node lng ging ca n.

114

V qu trnh trn c lp li cho n khi gp node ch hoc mt node


trung gian m c cc iu kin tha bc 2.
Trong qu trnh tr v gi RREP, mt node c th nhn cng lc nhiu
gi RREP, khi n ch s x l gi RREP c s destination sequence
number ln nht, hoc nu cng s destination sequence number th n s
chn gi RREP c s hop-count nh nht. Sau n s cp nht cc thng
tin cn thit vo trong bng nh tuyn ca n v chuyn gi RREP i.
C ch Route Maintenance
Khi mt node nhn thy rng next hop ca n khng th tm thy, th n
s pht mt gi RREP khn cp vi s sequence number bng s sequence
number trc cng vi 1, v hop count bng v gi n tt c cc node
lng ging ang trng thi active, nhng node s tip tc chuyn gi tin
n cc node lng ging, v c nh vy cho n khi tt c cc node
trong mng m trng thi active nhn c gi tin ny.
Sau khi nhn thng bo , cc node c th s khi ng li tin trnh
route discovery nu n c nhu cu nh tuyn d liu n node b hng ,
bit node cn c nhu cu nh tuyn n ch hay khng th n s kim
tra cc giao thc bn di c kt ni no n node ch m cn m hay
khng? Nu thy cn c nhu cu nh tuyn n s gi mt gi RREQ (vi
s sequence number bng s sequence number m n bit trc cng
thm 1) n cc node lng ging tm n a ch ch. kim tra trng
thi mt node c active hay khng? AODV s dng mt b timer. Mt
entry ca bng nh tuyn s b xem l khng active nu n khng c s
dng thng xuyn.
Qun l bng nh tuyn
Mt node duy tr mt entry trong bng nh tuyn cho mt a ch ch.
Mt entry cha cc thng tin:
+ a ch ch.
+ Next hop.

115

+ Hop count.
+ S sequence number ca node ch.
+ Cc node lng ging trng thi active.
+ Thi gian ht hn ca entry.
Trong mi entry ca bng nh tuyn, a ch ca cc node lng ging
trng thi active m c nh tuyn n ch vn c lu gi. Mt node
lng ging c t trng thi l active nu n khi to hoc chuyn tip
t nht mt packet n node ch trong gii hn ca active_timeout. Thng
tin ny cn c lu gi gip cho vic thng bo mt link b hng n
cc node active c thun li. Mt entry ca bng nh tuyn c xem l
active nu n c s dng bi cc node lng ging trng thi active.
Khi c mt ng i mi n mt node ch, th node ngun s so snh
s sequence number ca ng i mi vi s sequence number c trong
entry tng ng vi a ch ch trong bng nh tuyn. ng i m c s
sequence number ln hn s c chn. Nu s sequence number bng
nhau, th ng i no c s hop-count nh hn s c chn.

116

Chng 4
Ngn ng TCL
4.1 Tng quan v mt s c im ca ngn ng TCL:
TCL -Tool Command Language l mt ngn ng lnh kh mnh, c th chy
c trn cc h iu hnh nh Unix, Linux, DOS/Window, OS/2 v MacOS
nh cc trnh thng dch. Tuy nhin, ngn ng ny ch c mt s t cc cu trc
nn tng v kh t cc c php.
Cc c im ca ngn ng TCL:
TCL l ngn ng lnh (scripting language)
Cng nh cc ngn ng lp trnh Unix shell, awk, perl, TCL cung cp cc
c tnh ca ngn ng lp trnh cp cao nh:
+ Khai bo bin theo kiu chui.
+ Khai bo mng.
+ Khai bo kiu danh sch (list).
+ Kh nng nh ngha v ti nh ngha cc th tc trong lc runtime.
+ Truy cp file.
+ Kh nng bt li.
TCL l ngn ng c kh nng nhng vo cc ng dng khc
Ngn ng TCL c thit k nhng vo trong cc ng dng khc (v d
nh ngn ng C) nh l mt ngn ng m rng. iu ny s lm gim n
mc ti a s lng ngn ng lp trnh m ngi lp trnh cn phi hc nhng
vn c th to ra c nhng ng dng nh mun.
TCL l ngn ng c kh nng m rng
Ngn ng TCL c thit k c bit c kh nng m rng, to mt
lnh mi cho TCL, ch cn nh nh ngha thm cc th tc hoc ci t hm
bng ngn ng C.

117

Qun l b nh t ng
Tt c cc cu trc d liu trong ngn ng TCL c cp pht ng v
khng gii hn v kch thc. Do , ngi lp trnh s khng cn quan tm
n vic cp pht b nh cho cc bin hoc kch thc ca cc bin nh th
no.
Trao i gia cc ng dng TCL
TCL h tr kh nng trao i d liu gia cc ng dng Tcl chy trn cc
my khc nhau trn mng. lm c iu , cn nhng giao thc theo m
hnh client-server m tng thch vi ngn ng TCL.

4.2 C php ca TCL:


to ra cc file Tcl, chng ta c th s dng bt c trnh son tho vn bn
no nh vi, emacs, notepad, vi phn m rng ca file l .tcl.

4.2.1 Khai bo bin v mng


Trong Tcl, chng ta khng cn phi khai bo bin trc khi s dng, v Tcl
phn bit ch hoa v ch thng.
nh ngha mt bin ta dng c php:
set tn_bin gi_tr_bin
V d:
set var1 1
set var2 day la bien var2
khai bo mt bin m c th s dng trong ton b chng trnh, ta dng t
kha global:
global tn_bin
V d:
global ns
ly gi tr ca cc bin, ta t ton t $ trc tn bin.
V d:
in gi tr ca cc bin trn:

118

Puts var1=$var1 , var2=$var2


Kt qu: 1 , day la bien var2
Cc kiu bin c bn trong Tcl l string, list, array. Trong , string cng
c coi l mt list vi mi t trong string l mt phn t ca list. Tcl t xc
nh kiu v i kiu t ng.
Ging nh hu ht cc ngn ng khc, TCL cng cung cp cch khai bo
mng. Tuy nhin, mt u im ca ngn ng TCL l n khng cn phi khai bo
kch thc ca mng:
set n(0) [$ns node]
set n(1) [$ns node]
set

opts(bottlenecklinkrate)

set

opts(ECN)

1Mb

"on"

Trong v d th nht, mt mng n c to ra vi cc ch s l cc s nguyn.


Trong khi , vi v d th hai, mt mng c to ra bng cch gi lnh opts
vi cc ch s index khng phi l cc s nguyn.

4.2.2 Cc biu thc ton hc trong TCL


Bn thn trnh thng dch Tcl khng th tnh ton cc biu thc ton hc, thay
v vy Tcl cung cp lnh expr tnh ton cc biu thc ton hc. Cc c php
ton hc dng trong cc i s ca lnh expr ging nh trong ngn ng C. Lnh
expr x l c s nguyn, s thc, cc gi tr Boolean, Cc ton t logic tr
v gi tr 0 (false) hay 1 (true).
C php:
expr bieu_thuc
Trong , bieu_thuc l biu thc ton hc cn tnh ton. Gi tr tr v ca lnh
expr s l gi tr ca biu thc bieu_thuc sau khi tnh ton.
V d:
set var3 [expr 5*10] . kt qu var3=50
Lnh expr s t ng chuyn i cc i s chui thnh cc gi tr s. Sau
thc hin vic tnh ton vi gi tr kiu double, gi tr nh dng cho string l 6

119

ch s c ngha. Vic nh dng ny c th iu chnh c thng qua bin


tcl_precision.
Bng cc ton t v th t u tin t cao n thp:
Ton t

Ch thch

-~!

Tr mt ngi; bitwise NOT; logic NOT

*/%

Nhn; chia; phn d

+-

Cng, tr hai ngi

<<>>

Dch tri; Dch phi

<>

So snh nh hn, ln hn

<= >=

Nh hn hoc bng, ln hn hoc bng

==

So snh bng

!=

So snh khng bng

&|^

Bitwise AND; OR; XOR

&& | |

Php ton logic AND, OR

x?y:z

Nu x th y ngoi ra th z
Bng 4.1 Cc ton t trong TCL

4.2.3 Thay th v lp nhm


Thay th v lp nhm l hai vn ht sc quan trng trong Tcl. N gip cho
ngi lp trnh xy dng c cc chng trnh mt cch gn nh.
4.2.3.1 Thay th
C hai loi thay th: thay th lnh v thay th bin.
Thay th lnh (command substitution)
Tcl ly mi th gia hai du [ v ], nh gi chng nh mt lnh,
sau vit li lnh bao ngoi bng cch thay lnh c thay th bi gi tr
c tnh ton ca n.
Thay th bin

120

Khi gp du $, Tcl s t ng thay th gi tr ca bin c tn sau n th


ch.
4.2.3.2 Lp nhm
Cho php nhiu t trong mt i s, c dng vi cc bin v cc lnh gi
lng nhau Tcl thc hin lp nhm trc, sau mi thc hin php thay th v
cui cng gi lnh thc thi. C hai loi lp nhm, lp nhm bi du mc
nhn { } v nhm bi du trch dn v . Lp nhm bi du mc nhn
{ v } khng cho php thay th bn trong n. Cn lp nhm bi du
trch dn cho php vic thay th xut hin bn trong n. Thng thng lp
nhm bng du mc c dng trong trng hp mun lm tr vic thc thi
mt lnh. Chng hn nh vi cc vng lp, cc li gi hm, Du ngoc
vung [ ] khng cho php lp nhm.

4.2.4 Cu trc iu khin


4.2.4.1 iu kin if
C php ca lnh if rt n gin:
if {$i < 10}{
Puts i nho hon 10 }
if { $var2 == day la bien var2}{
puts var2= thanh cong! }
4.2.4.2 Vng lp for
Trong rt nhiu ngn ng lp trnh, cu trc vng lp for rt hay c s
dng v tnh tin li ca n. khai bo mt cu trc vng lp for trong TCL,
ta dng c php:
for { set i 0 } { $i < 100 } {inrc I } {
set n($i) [$ns node]
}
Vng lp for trn khai bo mt mng gm 100 phn t vi mi phn t l
mt node.
4.2.4.3 Vng lp while

121

C php ca vng lp while:


set i 0
while { $i < 10 }{
set n($i) [new Node]
incr i
}
4.2.4.4 Th tc
Th tc l mt trong nhng thnh phn quan trng nht ca ngn ng TCL.
N lm cho vic lp trnh trong Tcl tr nn n gin v hiu qu, chng trnh
tr nn gn nh, d qun l hn. nh ngha mt th tc ta dng t kha
proc vi c php:
proc ten_thu_tuc {thamso}{
// ci t chc nng cho th tc
}
Trong :
ten_thu_tuc: tn ca th tc hay lnh mi.
thamso: danh sch cc tham s, cc tham s cch nhau bi t nht mt
khong trng. Th tc c th khng cn tham s.
Trnh thng dch s bt u thc thi lnh trong script t u n cui, khi
gp t kha proc n s hnh dung ten_thu_tuc l mt th tc. N s ghi nh tn
v ni dung ca th tc v khng thc thi cc lnh trong th tc cho n
cui k t }. Khi gp li ten_thu_tuc ln th hai th trnh thng dch bit l
s triu gi th tc, lc ny n s thc thi ni dung ca th tc ten_thu_tuc, khi
chm dt th tc, dng lnh tip theo sau th tc s tip tc c thc thi.
Minh ha cc loi th tc:
+ nh ngha mt th tc khng c tham s:
proc thutuc1 {} {
puts day la thu tuc thu nhat
}

122

gi th tc trong chng trnh , ta lm nh sau:


set i 0
while { $i < 5 }{
thutuc1
incr i
}
+ nh ngha mt th tc c tham s:
proc thutuc2 {parameter1}{
puts gia tri cua tham so la $parameter1
}
gi th tc c tham s , ta lm nh sau:
set i 0
while { $i < 10 }{
thutuc2 i
incr i
}
+ nh ngha mt th tc c gi tr tr v:
proc thutuc3 {min , max } {
set randomvar [ rand $min $max]
return $randomvar
}
Hm rand dng pht sinh mt gi tr ngu nhin trong khong t
gi tr min n gi tr max.
ly gi tr tr v ca th tc, ta lm nh sau:
set i 0
while { $i < 5 }{
set randomvar [thutuc3 0 i]
puts $randomvar
incr i

123

}
4.2.4.5 Tp lnh ca TCL
Tp lnh ca Tcl c chia thnh nhiu nhm lnh:
4.2.4.5.1 Nhm lnh iu khin
Lnh

Ch thch

break

thot khi vng lp

case

Thc thi cc script da trn cc gi tr cho

catch

Bt li

Continue

Yu cu vng lp quay li thc thi lnh k tip

Error

Thng bo li

eval

Thc thi mt kch bn TCL

exit

Kt thc mt ng dng

For

Vng lp for

Foreach

Lp li trn cc phn t trong mt hay nhiu


danh sch

If

Thc thi lnh nu tha iu kin

Interp

Khi to thm trnh thng dch TCL

Proc

To mt th tc trong TCL

Rename

i tn hay xa mt lnh

Return

Gi tr tr v t mt th tc

Run

Thc thi ng dng

Safe
Source

Thc thi cc lnh TCL t mt file khc

Switch

Cu trc r nhnh

Uplevel

Thc hin mt script trn mt stack frame


khc

124

While

Cu trc vng lp while


Bng 4.2 Nhm lnh iu khin

4.2.4.5.2 Nhm lnh s kin


Lnh
After

Ch thch
Thc thi mt lnh sau mt khong thi gian
nh trc

background error

c h tr x l cc li background

Fileevent

Thc thi mt script khi mt channel tr nn c


th c hay c th vit

Update
X l cc s kin cho n khi mt bin c

Wait

thay th
Bng 4.3 Nhm lnh s kin
4.2.4.5.3 Nhm lnh v file
Lnh

Ch thch

close

ng mt channel

Eof

iu kin kim tra kt thc file

Fbclocked

Thm d mt knh I/O xc nh d liu c


sn sang hay khng

Fconfigure

Set v get cc option trn mt channel

Fcopy

Copy d liu t channel ny sang channel


khc

File

Thao tc trn file h thng

Filename
Flush
Gets

c mt hng t mt channel

125

Global

Khai bo cc bin ton cc

Open

M mt file hoc iu khin pineline channel

Puts

Vit vo mt channel

Read

c t mt channel

Seek

Thay i v tr truy cp cho mt channel m

Tell

Tr v v tr truy cp hin hnh ca mt


channel m
Bng 4.4 Nhm lnh file

4.2.4.5.4 Nhm lnh trn danh sch


Lnh

Ch thch

concat

Lin kt cc danh sch vi nhau

join

To mt chui bng cch lin kt cc phn t


ca danh sch li vi nhau

lappend

B sung cc phn t vo cui mt danh sch

lindex

Ly mt phn t ca danh sch

list

To mt danh sch da trn cc i s

llength

m s phn t trong danh sch

lrange

Tr v mt hay nhiu phn t lin tip nhau


ca mt danh sch

lreplace

Thay th cc phn t trong mt danh sch


bng cc phn t mi

lsearch

Tm kim mt phn t ca mt danh sch tha


mn mt iu kin no

lsort

Sp xp cc phn t ca mt danh sch

split

Chuyn mt chui thnh mt danh sch


Bng 4.5 Nhm lnh x l trn danh sch

126

4.2.4.5.5 Nhm lnh trn x l chui


Lnh
append

Ch thch
Ni cc i s vo mt bin khng thm
khong trng

binary

Chuyn i gia chui v d liu nh phn

format

nh dng mt chui

regexp

So snh cc biu thc chnh qui c trng nhau


khng

regsub
scan

Phn tch mt chui da trn c t nh dng

string

Thao tc trn cc chui

subst

Thay th nhng khng nh gi kt qu ca


mt lnh
Bng 4.6 Nhm lnh x l trn chui

4.2.4.5.6 Nhm lnh trn x l bin


Lnh

Ch thch

array

Thao tc trn cc bin array

global

Khai bo bin ton cc

namespace

Khi to v ng cnh thao tc trn cc bin

set

Gn gi tr cho bin

stdvars

Bin c s dng trong TCL

trace

Gim st vic gn gi tr bin

unset

Xa bin

upvar

To lin kt n cc bin trong mt stack


frame khc

variable

To v khi gn mt bin namespace

127

Bng 4.7 Nhm lnh x l bin


4.2.4.5.7 Nhm lnh v thi gian
Lnh

Ch thch

clock

Ly thi gian v nh dng chui date

time

o thi gian thc thi mt script


Bng 4.8 Nhm lnh x l thi gian

Mi lnh TCL thng cho php rt nhiu thng s, ty chn. Minh ha


mt s v d v nhm lnh thao tc trn I/O:
Tham s

Ch thch

open what

M file/pipeline, tr v ID

access?
permission
puts nonewline

Ghi chui

channel
c mt dng

gets channel?
numbytes
read nonewline

c tt c cc byte v b qua \n

channel?
tell channel

Tr v offset tm thy

seek channel?

t offset tm t offset u , hin hnh hay

offset? origin?

cui cng

eof channel?

Xc nh trng thi cui channel

flush channel?

Ghi vo channel data t buffer

close channel?

ng channel I/O

read channel

c tt c data tr v s bytes

numBytes
Bng 4.9 Cc tham s ty chn trn I/O

128

V d:
M file ghi:
set file [open /tmp/book.txt w 0600]
puts $file hello world!
close $file
Ta c th thay tham s w ca tc v open bng tham s r+ nh sau:
set file [open /tmp/book.txt r+]
puts $file hello world!
close $file
Bng tham s cc tc v open:
Tham s

Ch thch

M file c, iu kin file phi tn ti

r+

M file c v ghi ni tip vo cui file


iu kin file phi tn ti
M file ghi, nu file tn ti th s b ghi

w+

M file ghi

Ni vo cui file

a+

M file c / ghi d liu vo cui file


Bng 4.10 Cc tham s ty chn x l trn file
Bng c cho tc v open:
C ( flag )

Ch thch

RDONLY

Ch c

WRONLY

Ch ghi

RDWR

c v ghi

APPEND

Ghi vo cui

CREATE

To mi

129

EXCL

To mi file tn ti

NOCTTY

Ly bin c t terminal iu khin

NONBLOCK

Trong sut qu trnh m khng s dng block

TRUNC

Ghi file nu tn ti
Bng 4.11 Cc c x l tc v m file

V d:
set field [open /tmp/book.txt {RDWR CREATE}] hay
if [catch {open /tmp/book.txt} field]{
puts stderr khong the mo file /tmp/book.txt : $field }
else{
close $field
}
Bng c php exec nh hng I/O:
Thuc tnh

Ch thch

-keepnewline

Ly new line t kt qu

Xut chun ca pipe t 1 tin trnh vo mt tin


trnh

l&

Xut chun pipe v li

<filename

Ly input t file filename

<@field

Ly input t knh I/O nh dng bi field

<<value

Ly input t gi tr cho

>filename

Xut chun ra filename

2>filename

Xut chun li ra filename

>&filename

Xut chun filename v li

2>>filename

Ghi li vo filename, nu filename cha tn ti th


to v ghi mi, nu tn ti th ghi tip vo cui

130

file
>>&filename

Ghi tip xut chun v li vo trong filename

>@field

Xut chun trc tip n field

2>@field

Xut chun li n I/O field

>&@field

Xut chun ni dung v li chun n I/O file

&

K t cui, ch nh pipe chy background


Bng 4.12 c php exec nh hng I/O
V d:
set d [exec date]
catch { exec program arg arg } result
Lin kt file (file join). Ty theo h iu hnh:
+ Unix:
Disk:SystemFolder:Extension:ToolCommandLanguage:tcl7.6
c:/Program Files/Tcl/lib/Tcl7.6
file join a b/c d
+ Windows:
Disk:System Folder:Extension:Tool Command Language:tcl7.6
c:\Program Files\Tcl\lib\tcl8.0
+ Macitosh :
Disk:Applications:Tcl/Tk4.2
file join /usr/local/lib
Thuc tnh

Ch thch

file atime name ?

Tr v thi gian truy cp l mt chui deci

file attributes na

Tm kim hay xc nh thuc tnh file

option ? value ?
file copy force?

Sao chp file t ngun n ch. Ngun v ch l

destination?

th mc

131

file delete force

Xa file

file driname name

Ly tn th mc cha hay tn file

file exist name

Tr v 1 nu tn ti tn file, ngc li th tr v 0

file extension na

Tr v tn m rng k t du chm cui

file executable n

Tr v 1 nu file cho php thc thi, ngc li tr v


0

file isdirectory n

Tr v 1 nu file l th mc, ngc li tr v 0

file is file name

Tr v 1 nu name l file, ngc li tr v 0

file join path path

Ni cc thnh phn thnh ng dn mi

file lstat name var

Ly thuc tnh name lin kt vi var

file mkdir name

To th mc vi tn th mc l name

file mtime name

Tr v thi gian khi sa file name, gi tr tr v


l chui decimal

file nativename

Tr v native version ca name

name
file owned name

Tr v 1 nu user l ch s hu ca name, ngc


li tr v 0

file readable name

Tr v 1 nu file name cho php c, ngc li


tr v 0

file readlink name

Tr v ni dung k hiu lin kt ca name

file rename

i tn file (th mc )c thnh file (th mc) mi

force old? new?


file size name

Tr v s byte ca file name

file split name

Tch ni dung ca file name thnh cc thnh


phn nh
Bng 4.13 C php cc thao tc trn file

132

Chng 5
NGN NG HNG I TNG OTCL
5.1 OTcl l ngn ng hng i tng ca TCL:
OTcl (Object TCL) l ngn ng hng i tng c pht trin trn nn ca
ngn ng Tcl. Vi kh nng hng i tng, chng ta c th nh ngha lp, cc
phng thc, cc thnh phn d liu ca lp.
Trong NS c mt thnh phn quan trng gi l TclCl c dng lin kt cc
lp c vit bng C++ vi cc lp tng ng trong OTcl. Ngha l TclCL l
mt lp keo lin kt cc lp ca hai module vi nhau.

5.2 Lp v i tng trong Otcl:


nh ngha mt lp OTcl s dng t kha class v k tha t mt lp
khc ta dng t kha superclass. C php khai bo:
class ten_lop superclass ten_lop_cha
V d:
to mt lp c tn l MyNode m k tha t lp cha l lp Node ta khai
bo:

class MyNode superclass Node

Cng nh trong ngn ng C++, khai bo trn c ngha l s c mt s phng


thc trong lp Node s c th c s dng trong lp MyNode.
to mt th hin ca mt lp ta dng c php:
set ten_doi_tuong [new ten_lop]
V d:
to mt th hin ca lp MyNode, ta khai bo:
set mynode [new MyNode]

5.3 Phng thc khi to v hy ca lp:

133

Trong OTcl xy dng phng thc khi to cho lp, chng ta s dng mt
phng thc c bit l phng thc init . V d to phng thc khi to cho
lp MyNode ta khai bo phng thc init nh sau:
MyNode instproc

init {} {

$self next
$self instvar datamember1
set

datamember1

}
$self next: lnh ny tng t nh lnh super() trong ngn ng Java, dng
gi phng thc khi to ca lp cha.
Ngoi ra, phng thc khi to init ca lp c th cha i s:
MyNode2 instproc

init {arg1

arg2}

$self next
$self instvar dm1 dm2
set

dm1 $arg1

set

dm2 $arg2

}
Khi to tng MyNode2:
set mn2 [new MyNode2 1 2]
Phng thc hy ca OTcl l phng thc destroy:
MyNode instproc

destroy {} {

$self next
}

5.4 Khai bo cc phng thc cho lp:


Sau khi to c mt lp, ta cn khai bo cc phng thc cn dng cho
lp . C php khai bo phng thc vi t kha instproc:
ten_lop instproc ten_phuong_thuc {[tham_so]}{
// ci t chi tit cho phng thc

134

}
Trong :
+ ten_lop: Tn ca lp cn khai bo cc phng thc.
+ ten_phuong_thuc: Tn ca phng thc cn khai bo.
+ tham_so: Tham s u vo ca phng thc. Gi tr ny l option.
V d:
Khai bo phng thc vi tn l phuong_thuc_thu_nhat cho lp
MyNode:
MyNode

instproc

phuong_thuc_thu_nhat {} {

puts day la noi Phuong thuc thu nhat cua lop MyNode!
}
s dng phng thc ny trong chng trnh, ta gi:
set mynode [new MyNode] // to mt i tng mynode
$mynode phuong_thuc_thu_nhat

5.5 Khai bo cc thnh phn d liu:


Trong OTcl cc thnh phn d liu ca mt lp ch c nh ngha trong cc
phng thc ca lp m khng c nh ngha nh l mt thnh phn ca lp.
iu ny khc vi ngn ng C++, vi C++ cc thnh phn d liu ca lp c
khai bo ngay trong phn header ca lp v c xem l mt thnh phn ca lp.
khai bo v tham chiu cc thnh phn d liu ca lp ta dng ch th instvar.
Minh ha cch khai bo cc thnh phn d liu:
MyNode instproc

phuong_thuc_thu_hai

{} {

$self instvar datamember1


set

datamember1

"data

member

phuong_thuc_thu_hai"

}
MyNode instproc
$self

phuong_thuc_thu_ba {} {

instvar datamember1

135

puts "datamember1 = $datamember1"


}
Bin self c th s dng trong phm vi ca cc phng thc ca lp cp
n i tng c th. Bin seft tng t nh con tr this ca ngn ng lp trnh
C++. Trong nhng trng hp c th, bin seft c th dng gi cc phng
thc khc t trong phm vi mt phng thc.
Cch triu gi cc phng thc:
set

mynode

[new

MyNode]

$mynode phuong_thu_thu_hai
$mynode phuong_thuc_thu_ba
Mt i tng MyNode c khi to vi tn l mynode. Sau , phng thc
phuong_thuc_thu_hai c gi. phng thc ny thc hin vic gn gi tr cho
thnh

phn

liu

(bin)

datamember1.

Tip

theo,

phng

thc

phuong_thuc_thu_ba c gi v phng thc ny s thc hin vic in gi tr ca


bin datamember1. Gi tr ca bin datamember1 chnh l gi tr c gn trong
phng thc phuong_thuc_thu_hai

136

B. GII THIU CC CNG C PHT SINH


TOPOLOGY MNG

PHN 3
CC CNG C H TR NGN NG DML

137

Chng 6
DMLEditor

6.1 Gii thiu:


DMLEditor l mt cng c h tr cho vic thit k cc m hnh mng theo
hng trc quan, sinh ng da trn ngn ng DML v trnh gi lp mng
SSFNet.
DMLEditor c vit bng ngn ng Java ca tc gi Andreas Hartl thuc
trng i hc Technische Universitat Munchen, c bo h bi t chc GNU.

6.2 Cc tnh nng ni bt ca DMLEditor:


D s dng v thao tc.
Chnh xc.
Hiu qu.
Save file DML.
Load file DML.
L phn mm ngun m, d nng cp v m rng ng dng.
Gn, nh.
Linh hot, c th chy trn nhiu HDH khc nhau nh Window,
Unix, Linux.

6.3 Cc bc ci t DMLEditor:
Qu trnh ci t DMLEditor (trn Window cng nh trn Linux) tng i d
dng, tin hnh qua 3 bc sau:
Bc 1:
Ti v bn DMLEditor.jar v tin hnh gii nn (bng Winzip hoc Winrar)
ta s c mt th mc l DMLEditor cha 2 th mc con l DMLEditor v

138

META-INF (ch l khng c thay i bt k file hay th mc no trong


th mc gc).
Bc 2:
Chp th mc gi nn DMLEditor vo a (chng hn chp vo th mc
gc a C:\).
Bc 3:
T ca s DOS, g dng lnh sau ( mt th mc bt k, gi s ang th
mc d:\): D:\> java -classpath c:\DMLEditor DMLEditor.DMLEditor
Ch : bn phi ci jdk phin bn 1.2 hay mi hn v thit lp cc bin mi
trng cn thit theo hng dn nhng phn trn.

6.4 Qu trnh thit k trn DMLEditor:


Giao din chnh ca DMLEditor sau khi bin dch:

Hnh 6.1 Giao din chnh ca DMLEditor


Cc chc nng trn menu File:

139

New: to mt Simulation mi.


Open: m mt file DML.
Save/Save as: lu m hnh theo file DML.
Exit: kt thc chng trnh.
Cc chc nng trn Tooolbar:
Create new Network: hin th ca s to mi Network.

Hnh 6.2 To id cho mng


Create new Peer, Create more Peers: hin th ca s cu hnh cho
cc Host v Router.

Hnh 6.3 Giao din cu hnh cho Host, Router


Remove Peer(s): xa cc i tng Host hoc Router khi mng m
ngi dng ang chn (chn i tng bng cch click phi chut vo
i tng hin th trn ca s view).

140

Create new Link: to link gia 2 interface ca 2 Host hoc Router.


Chc nng ny ch c hiu lc khi to Host hoc Router vi interface
tng ng v phi chn 2 i tng cn to lin kt.

Hnh 6.4 Giao din to lin kt gia cc Host,Router


Remove Link: xa link gia 2 interface c chn.
Edit Dictionary Peer: nh ngha cc thng s thng dng cho Host
v Router.

Hnh 6.5 Giao din thit lp thng s cho Host, Router


Edit Dictionary Interface: nh ngha cc thng s thng dng cho
Interface.

141

Hnh 6.6 Giao din cu hnh card mng


Define Route: cu hnh nh tuyn cho Host v Router.

Hnh 6.7 Giao din thit lp bng nh tuyn


List all Routes: danh sch cc cu hnh nh tuyn cho cc interface.

Hnh 6.8 Danh sch bng nh tuyn

142

Chng 7
RacewayViewer

7.1 Gii thiu:


RacewayViewer l mt cng c khc cng nhm h tr cho vic thit k cc
m hnh mng theo hng trc quan, sinh ng ging nh cng c DMLEditor.
RacewayViewer do t chc Renesys Corporation pht trin vo nm 2001
c vit bng ngn ng Java, hin phin bn mi nht l phin bn 2.0 i km
vi SSFNet 2.0.

7.2 Cc tnh nng ni bt ca RacewayViewer:


Hin th trc quan cu trc mng theo hng phn cp.
Cho php chnh sa cc thnh phn mng, thay i v tr, kch
thc, mu sc cc node.
Save file DML.
L phn mm ngun m, d nng cp v m rng ng dng.
Gn, nh.
Linh hot, c th chy trn nhiu HDH khc nhau nh Window,
Unix, Linux.

7.3 Cc bc ci t RacewayViewer:
RacewayViewer c tch hp trong phin bn SSFNet 2.0 c tn file l
raceway.jar, c cha trong th mc lib ca ssfnet sau khi ci t. Qu trnh ci
t c tin hnh qua 3 bc sau:
Bc 1:
Gii nn file raceway.jar (bng Winzip hoc Winrar) ta s c mt th
mc l Raceway cha 2 th mc con l com v META-INF cng vi file

143

RacewayViewer.class (ch l khng c thay i bt k file hay th mc


no trong th mc gc).
Bc 2:
Chp th mc gi nn raceway vo a bt k (chng hn chp vo th
mc gc a C:\).
Bc 3:
T ca s DOS, g dng lnh sau ( mt th mc bt k, gi s ang th
mc d:\): D:\> java RacewayViewer <path file DML> <options>
<path file DML> l tham s ng dn ca file DML.
<option> c cc tham s sau (c th c hoc khng):
-s my_data.dat
-p my_player
-start <start_time>
-stop <stop_time>
V d: D:\> java RacewayViewer f:\SimpleLan.dml
Cc v d v animation c cha trong th mc ssfnet/animation.
Ch : bn phi ci jdk phin bn 1.2 hay mi hn v thit lp cc bin mi
trng cn thit theo hng dn nhng phn trn.

7.4 Qu trnh thit k trn RacewayViewer:


Giao din chnh ca RacewayViewer sau khi bin dch:

144

Hnh 7.1 Giao din chnh ca RacewayViewer

Cc chc nng chnh trn menu File v Edit:


Save/Save Copy0: copy mt bn d phng vi tn file thm vo
_0.
Undo/Redo: tr v cc thit lp trc v sau thit lp hin hnh.
Select: chn cc thnh phn mng.
Scale/Rotate/Zoom: thay i kch thc m hnh mng.

145

Hnh 7.2 Minh ha chc nng zoom ton b network

146

Hnh 7.3 Minh ha chc nng scale mt sub-network

Commit: lu li cc thit lp ging nhau cho cc thnh phn mng


khc.
Center: iu chnh ca s nhn v chnh gia.

147

Chng 8
NetViewer

8.1 Gii thiu:


NetViewer l cng l mt cng c h tr cho vic thit k cc m hnh mng
theo hng trc quan, sinh ng da trn ngn ng DML v trnh gi lp
SSFNet.
Tc gi ca NetViewer l Jame A. Rome thuc t chc Oak Ridge National
Laboratory, c vit bng ngn ng Java, s dung trnh dch jdk phin bn 1.4
hay hn.

8.2 Cc tnh nng ni bt ca NetViewer:


D s dng v thao tc.
Chnh xc.
Hiu qu.
Hin th trc quan cu trc mng theo hng phn cp.
Cho php chnh sa cc thnh phn mng.
Save file DML.
Load file DML.
L phn mm ngun m, d nng cp v m rng ng dng.
Gn, nh.
Linh hot, c th chy trn nhiu HDH khc nhau nh Window,
Unix, Linux.

8.3 Cc bc ci t NetViewer:
Cng ging nh RacewayViewer, qu trnh ci t ca NetViewer kh n
gin, c tin hnh qua 3 bc sau:
Bc 1:

148

Ti v bn NetViewer t a ch:
http://www.ornl.gov/~jar/NetViewer/NetViewer.zip
Gii nn file NetViewer.zip (bng Winzip hoc Winrar) ta s c mt th
mc l NetViewer cha cc file: NetViewer.jar, NetSchema.dml, protocols.dat
v 2 file demo (ch l khng c thay i bt k file no trong th mc
gc, tr 2 file demo).
Bc 2:
Chp th mc gii nn NetViewer vo a bt k (chng hn chp vo th
mc gc a C:\).
Bc 3:
T ca s DOS, chuyn vo th mc gc ca NetViewer bng lnh (gi s
ang a D:\):
d:\> c:

Enter

c:\> cd NetViewer Enter


c:\NetViewer> java -Xmx200m -Xms100m -jar NetViewer.jar
Ch : bn phi ci jdk phin bn 1.4 hay mi hn v thit lp cc bin mi
trng cn thit theo hng dn nhng phn trn.

8.4 Qu trnh thit k trn NetViewer:


Giao din chnh ca NetViewer sau khi bin dch:

149

Hnh 8.1 Giao din chnh ca NetViewer

Giao din ca NetViewer sau khi m mt file DML.

Hnh 8.2 Giao din ca NetViewer khi m mt file DML

Cc chc nng chnh trn menu File, Search, View:


Open DML: m mt file DML.

150

Add file at Node: chn ni dung mt file DML vo v tr Node ang


c chn.
Open Template: m mt file DML theo nh dng Template.
Save/ Save as: lu m hnh thnh file DML.
Check Schema: kim tra ni dung file Schema dng trong m hnh.
Find: tm kim mt node hay mt thuc tnh trong m hnh mng.

Hnh 8.3 Giao din tm kim node


expand references: tr v trng thi expand ti thiu.
undo expand: quay v tnh trang expand trc .
Look and Feel: cc ty chn hin th giao din NetViewer, c cc
tham s sau: Default, Motif, Java.
Cc chc nng chnh di thanh Tooolbars:
Edit Attribute: chnh sa mt thuc tnh ang c chn.

151

Hnh 8.4 Giao din chnh sa cc thuc tnh


Add Child Node/ Add node: thm node vo m hnh.

152

Hnh 8.5 Giao din thm Node vo trong mng


Replace Node: thay th mt node.
Delete: xa mt node khi m hnh.
Reload Schema: np li file Schema.
Expand Node: tr v trng thi expand ti thiu.
Topology: hin th topology mng trong m hnh.

Hnh 8.6 M hnh mng sau khi cu hnh


M t cc chc nng chnh trn giao din Network Topology:
expand Combobox: ty chn expand cho cc node, c cc tham s
sau: near, far right, on bottom.
Port spacing: iu chnh khong cch gia cc port trn cc node.
Print: xut m hnh ra my in di dng file nh.
Save Image: lu m hnh Topology thnh file nh theo nh dng png.
Save Positions: lu li cc v tr x-y ca cc thnh phn c thay
i, chc nng ch c hiu lc khi ngi dng chc nng lu file DML
trong ca s giao din chnh.

153

Redraw: lu v tr mi ca cc node v v li m hnh Topology.


Display CIDR: hin th tham s CIDR cho cc node nu c.
Expand: m rng vng hin th Topology.
Set Area: cho php ngi dng phn b cc giao tip OSPF Areas,
chn Router (c mu xanh l cy), chon tt c cc giao tip trn Router
bng cch nhn ALT + click tng giao tip, nhn Set Area.
Tt c cc node l Net trong vng hin th khi right-lick s cung cp cc
thng tin v Net di dng TreePopUp.

Hnh 8.7 Cc thnh phn mng di dng TreePopUp


Loi thit b v mu sc:
Net:
Host:
Router, Switch, Hub:

154

PHN 4
CC CNG C H TR NGN NG TCL

Chng 9
BRITE
9.1 Thit k v ci t ca BRITE:
BRITE l cng c pht sinh topo c thit k rt uyn chuyn, c nhiu cch
pht sinh topo. Ngoi ra, BRITE cng cung cp nhiu m hnh pht sinh topo:

Hnh 9.1 Cu trc tng qut ca BRITE


Nh trong hnh 9.1, BRITE s c cc tham s pht sinh topo cho mng t
file cu hnh bng tay hoc t giao din GUI ca BRITE (1). BRITE cn c kh
nng h tr vic import cc topo c pht sinh bi cc cng c pht sinh khc
(2) v BRITE h tr vic export topo mng cho cc cng c gi lp mng (3) nh
NS, SSF Trong BRITE, module ng vai tr quan trng nht l BRITE
Analysis Engine gi tt l BRIANA. Module BRIANA c i hc Boston pht

155

trin, vi mc ch chnh l dng chuyn i c php ca cc cng c pht


sinh topo khc sang dng chun ca BRITE.
Hin ti, BRITE c hai giao din u vo: Giao din ha da trn Java, v
dng lnh. Do , tt c cc tham s dng pht sinh topology cho mng c th
c cu hnh t file hoc t giao din ha. v BRITE ch c mt giao din
output: xut ra cc file theo cc nh dng khc nhau ty thuc vo ngi dng.
BRITE cha h tr vic output trc tip sang cc mi trng gi lp nh NS v
SSF.
9.1.1 Download v ci t BRITE
Hin ti, BRITE cung cp hai phin bn ca b cng c pht sinh: phin bn
ci t bng Java v phin bn ci t bng C++ v c th download t :
http://cs-pub.bu.edu/brite/index.htm
Ci t v chy phin bn Java
ci t v chy c phin bn Java th cn phi ci b JDK1.3 hoc mi
hn.
Sau khi download thnh cng, gii nn file theo c php sau:
$gunzip BRITE_JAVA.tar.gz
$tar xvf BRITE_JAVA.tar
Cu trc ca th mc sau khi gii nn:

Hnh 9.2 Cu trc th mc ca phin bn Java


Chuyn n th mc BRITE_JAVA v tin hnh bin dch:
$ cd BRITE_JAVA

156

$ make java
Sau khi bin dch thnh cng, ta c th chy BRITE t GUI:
$ startGUI.
Hoc c th chy t mn hnh terminal:
$ cd Java
$ java Main>BRITE <config_file.conf> <output_file> <seed_file>
Ci t v chy phin bn C++
Sau khi ownload thnh cng, tin hnh gii nn file:
$ gunzip BRITE_CPP.tar.gz
$ tar xvf BRITE_CPP.tar
Cu trc th mc ca phin bn C++:

Hnh 9.3 Cu trc th mc phin bn C++


Chuyn n th mc BRITE_CPP v tin hnh bin dch:
$ cd BRITE_CPP
$ make c++
Sau khi bin dch thnh cng, ta c th chy BRITE t GUI:
$ startGUI.
Hoc c th chy t mn hnh terminal:
$ cd C++
$ brite <config_file.conf> <output_file> <seed_file>
9.1.2 Giao din bng GUI

157

Giao din ca BRITE c ci t bng ngn ng Java. Tuy nhin, n vn c


th c s dng cho phn giao din ca phin bn BRITE ci t bng C++.
Kiu kin trc ny lm cho phn giao din GUI tch bit vi phn ci t cc chi
tit v cc m hnh pht sinh topo bn trong.Tt c cc giao tip gia phn giao
din vi phn bn trong c thng qua mt file cu hnh. Khi ngi dng cu
hnh cc tham s, giao din GUI s pht sinh file cu hnh GUI_GEN.conf thch
hp. Sau , BRITE khi ng mt tin trnh C++ hoc Java (ty theo phin bn
ci t) v chy cng c pht sinh topo vi file cu hnh va c to ra. Hnh v
9.4 minh ha s tng tc gia phn giao din GUI vi phn pht sinh topo:

Hnh 9.4 s tng tc gia phn giao din GUI vi phn pht sinh topo

9.1.3 Giao din bng dng lnh

158

Giao tip bng dng lnh tc l to ra cc file cu hnh, do n s gi trc


tip engine pht sinh topo. Sau , s dng cc thng tin c lu trong seed_file
pht sinh topo. BRITE s dng cc s gi ngu nhin (pseudo-random) cc
im khc nhau sut trong qu trnh pht sinh topo. seed_file cha cc thng tin
khi to b pht sinh s gi ngu nhin mi khi c yu cu. Trong qu trnh
pht sinh, BRITE lu li mt file backup ca seed_file l last_seed_file c th
pht sinh li topo.
s dng giao tip bng dng lnh, chuyn n th mc BRITE v thc hin
lnh :
$brite my_config.conf my_export.brite seed_file

(C++)

$ java Main.BRITE my_config.conf my_export.brite seed_file (Java)


9.1.4 Cc file cu hnh
Tt c cc file cu hnh ca BRITE u bt u bng t kha BriteConfig. C
php ca mt dng trong file cu hnh:
Key = Value
Vi Key Thng s cu hnh (kiu k t)
Value gi tr ca cc thng s
Mi m hnh c mt thng s khc nhau.
File cu hnh ca m hnh AS Waxman:

159

Hnh 9.5 File cu hnh ca m hnh AS Waxman


File cu hnh ca m hnh pht sinh NLANR:

Hnh 9.6 File cu hnh ca m hnh pht sinh NLANR


9.1.5 nh dng output ca BRITE
nh dng output ca BRITE gm ba phn:
+ Thng tin v m hnh: bao gm s lng cc node, cc cnh, thng tin v
m hnh s dng pht sinh topology.
+ Thng tin v Node: Mi node trong file cu hnh output c c php:

160

NodeId xpos ypos indegree outdregee Asid type


ngha ca cc thng s:
Thng s

ngha

NodeId

s ID ca node

xpos

to x ca node trong mt phng

ypos

to y ca node trong mt phng

indegree

Bc trong ca node

outdegree

Bc ngoi ca node

ASid

id ca AS m node ang chu s qun l

type

Loi node (Router hoc AS)


Bng 9.1 Cc tham s thit lp cho Node

+ Thng tin v cc cnh : Mi cnh trong file cu hnh output c c php:


EdgeId from to length delay bandwidth Asfrom Asto type
ngha ca cc thng s:
Thng s

ngha

EdgeId

s id ca cnh

from

ch s id ca node ngun

to

ch s id ca node ch

Length

Chiu di ca cnh

delay

tr

bandwidth

Bng thng ca kt ni

ASfrom

ch s id ca AS ngun

ASto

Ch s id ca AS ch

type

loi cnh
Bng 9.2 Cc tham s thit lp cho cnh

161

Hnh 9.7 V d file output ca m hnh Flat-RouterWaxman

9.2 Kin trc ca BRITE:


9.2.1 Qui trnh hot ng ca BRITE
Qui trnh pht sinh topo cho mng ph thuc ch yu vo cc m hnh pht
sinh c th. Qui trnh c th chia thnh bn giai on:
+ Cch thc t cc node ln mt phng.
+ To cc lin kt gia cc node.
+ Thit lp cc thuc tnh cho cc thnh phn mng (nh a ch ca
node, bng thng ).
+ export topo mng sang mt nh dng file ca cc cng c gi lp.

9.2.2 Kin trc ca BRITE


Trong BRITE, mt topology c biu din bng lp Topology. Lp
Topology cha hai thnh phn d liu (data member) l Model v Graph. Ngoi
ra, lp Topology cn cha mt s cc hm v phng thc export sang cc cng
c gi lp mng.

162

Hnh 9.8 Cu trc ca mt Topology trong BRITE


Lp Model l mt lp tru tng v c k tha t cc m hnh pht sinh c
th (nh trong hnh 2: Model1, Model2 ). Mt topo c pht sinh bi BRITE
c th dng mt trong cc m hnh pht sinh trn nu cu trc ca topo l ng
cp (flat), ngc li, nu cu trc ca topo l phn cp ( hierarchical ) th s dng
kt hp cac m hnh pht sinh khc nhau. Lp Graph l lp dng to ra cc
cu hnh chnh cho mng nh to cc node, cc lin kt gia cc node,
9.2.2.1 Lp Model
Kin trc ca BRITE ch yu tp trung vo lp Model :

Hnh 9.9 M hnh ca lp Model


Nh trong hnh, hin ti BRITE h tr tm m hnh pht sinh topo mng
khc nhau. Mi m hnh u c mt phng thc Generate, phng thc ny
tr v lu (graph ) cha ton b thng tin ca topo va c pht sinh. Chi
tit ca cc m hnh:
9.2.2.1.1 M hnh Flat Router-level

163

M hnh ny cha mt lp RouterModel k tha t lp Model. Cc m


hnh Router-level c h tr trong BRITE l RouterWaxman v
RouterBarabasiAlbert. Hai m hnh ny s dng chung mt s phng thc
t lp RouterModel. C th, c hai phng thc ging nhau trong vic t
node vo trong mt phng, v cp pht bng thng cho cc lin kt. im
khc nhau gia hai m hnh l cch thc tng trng ca mng v phng
thc tng tc gia cc node.
Cch thc t Node
t node trong mt phng tc l la chn v tr trn mt phng cho node
v khi to cc cu trc d liu cho Node. Lp RouterModel c phng
thc PlaceNodes dng t cc node trn mt phng theo mt trong hai
cch: ngu nhin (randomly) hoc heavy-tailed. Theo phng php t node
ngu nhin, mi node c t nhng v tr ngu nhin trn mt phng.
Trong khi , theo phng php heavy-tailed, BRITE chia mt phng thnh
cc vung ( kch thc ca mt phng v cc vung ph thuc vo cc
tham s u vo ) . Mi vung c gn mt s lng cc node nht
nh. Sau , trong mi vung cc node c t ngu nhin.

Hnh 9.10 Hai m hnh phn b node randomly v Heavy-Tailed


Cp pht bng thng
Sau khi hon thnh vic pht sinh topo, c hai m hnh Router-level s
gi phng thc Assignbandwidth ca lp RouterModel. cp pht bng
thng cho cc lin kt gia cc node, ngi dng c th cu hnh gi tr bng
thng ln nht (BWmax) gi tr bng thng nh nht (BWmin) t file cu

164

hnh hay t giao din GUI. Khi , BRITE s cp pht bng thng cho cc
lin kt da trn cc tham s sau:
Constant: Bng thng cho tt c cc lin kt bng Bwmin.
Uniform: Gi tr bng thng c cp pht cng mt gi tr ging
nhau nm gia gi tr Bwmin v Bwmax cho tt c cc lin kt.
Exponential: Gi tr c cp pht theo hm s m vi h s Bwmin.
Heavy-tailed: Gi tr c cp pht theo phng php heavy-tailed vi
gi tr nh nht l BWmin v gi tr ln nht l Bwmax.
M hnh RouterWaxman
Cc m hnh pht sinh topo khc nhau ch yu v cch thc tng trng cc
node trong mng v phng thc lin kt gia cc node. M hnh Waxman l
m hnh pht sinh topo mt cch ngu nhin nh trnh by trn. Kh nng
lin kt gia cc node trong topo c tnh theo cng thc:
P(u,v) = e-d/L
Trong :
0 < , 1
d: khong cch t node u n node v.
L: khong cch ln nht gia hai node bt k trong mng.
M hnh Router BarabasiAlbert
M hnh ny k tha t lp Model. N c gi l Router BarabasiAlbert v
n c ci t theo xut ca hai tc gi Barabasi v Albert. Theo m hnh
ny, qu trnh tng tng ca mng l do cc node mi lin tc c thm vo
mng ch khng pht sinh ngu nhin nh trong m hnh Waxman. u tin
ca cc lin kt ca mt node mi vi cc node tn ti trong mng ph
thuc vo s lng cc node trong mng. Khi mt node i gia nhp vo mng,
kh nng lin kt ca n vi node j ( tn ti trong mng ) c tnh theo
cng thc:
P( i , j ) = dj / kVdk
Trong :

165

dj: Bc ca node j.
V: S lng cc node tn ti trong mng.
kV dk: Tng s bc ngoi ca tt c cc node trong mng.
9.2.2.1.2 M hnh Flat AS-level
M hnh AS-level cng tng t nh m hnh Router-level. im khc
nhau gia hai m hnh ny l trong m hnh AS-level AS node c th cha
cc Router node. Hai m hnh AS-level c ci t trong BRITE :
ASWaxman v ASBarabasiAlbert.
9.2.2.1.3 M hnh phn cp top-down
Trong m hnh top-down, qu trnh pht sinh topo din ra nh sau: u
tin, BRITE s pht sinh topo mc AS-level. Tip theo , ng vi mi
AS node trong AS-level (1), BRITE s tip tc pht sinh topo mc
Router-level (2). BRITE s dng mt c ch kt ni cnh (3) kt ni cc
topo mc Router-level nu nh cc AS node tng ng c kt ni trc
tip vi nhau.

Hnh 9.11 M hnh phn cp top-down


9.2.2.1.4 M hnh phn cp Botton-up

166

M hnh ny ngc vi m hnh phn cp top-down, tronng m hnh ny


BRITE s pht sinh topo mc Router-level trc, sau BRITE s phn
cc Router node thnh cc nhm khc nhau v mi nhm Router node s
chu s qun l ca mt AS node
9.2.2.1.5 M hnh Imported File
Mt trong nhng mc tiu khi thit k ca BRITE l c th tch hp
nhiu cng c pht sinh topo vo trong BRITE. Do , BRITE xy dng lp
ImporteFileModel k tha t lp Model phn tch cu trc c php ca
cc file c pht sinh bi cc cng c pht sinh topo c tch hp
trong BRITE nh GT-ITM, NLANR, Inet . V d, chng ta c th pht sinh
mt m hnh mng phn cp top-down vi topo mng mc AS-level c
import t cng c pht sinh NLANR v topo mng mc Router-level theo
m hnh Waxman c import t cng c pht sinh GT-ITM. Hin ti,
BRITE h tr bn m hnh ImportedFile:
+ Import topo ca BRITE.
+ Import topo ca GT-ITM.
+ Import topo ca NLANR.
+ Import topo ca Inet.

Hnh 9.12 M hnh ImportedFile

9.3 Cc tham s ca BRITE:


Tham s

ngha

167

Cc gi tr

HS

Kch thc mt cnh ca mt phng

int 1

LS

Kch thc mt cnh ca vung

int 1

S node trong m hnh

int 1 N HS*LS

Model

S ID ca m hnh

int 1

alpha

Gi tr hm s m ca m hnh

0 < 1, R

Waxman
beta

Gi tr hm s m ca m hnh

0 < 1, R

Waxman
Node

Cch thc t node trong mt phng

1: Random, 2: HT

Cch thc tng trng ca mng

1: Incremental,

Placement
Growth Type

2: Random
BWdist

Bng thng ca cc lin kt

int 1

S cc lin kt ca mi node

int 1

MaxBW,

Gi tr bng thng ln nht v nh nht

float > 0

MinBW

ca cc lin kt
Bng 9.3 Cc tham s ca m hnh ng cp

Tham s

ngha

Cc gi tr

Edge

Phng thc kt ni cc topo mc

1: Random node

Connection

router-level

2: Smallest degree
3: Smallest degreenon-leaf
4: k-Degree

Intra Bwdist

Cch thc phn pht bng thng trong

1: Constant

domain

2: Uniform
3: Exponential

168

4: Heavy-tailed
Intra

Gi tr bng thng ln nht, nh nht

float > 0

BWMax/Min

ca cc lin kt trong domain

Inter Bwdist

Cch thc phn pht bng thng gia

1: Constant

cc domain

2: Uniform
3: Exponential
4: Heavy-tailed

Inter

Gi tr bng thng ln nht, nh nht

BWMax/Min

ca cc lin kt gia cc domain

Float > 0

Bng 9.4 Cc tham s ca m hnh phn cp top-down


Tham s

ngha

AssignType

Cch thc phn b cc router trong AS

Cc gi tr
1: Constant
2: Uniform
3: Exponential
4: Heavy-tailed

NumAS

S lng cc AS

int > 0

Grouping

Cch thc cc router c nhm vo

1: Random pick

Method

cc AS

2 : Random Walk

Inter BWdist

Gi tr bng thng ln nht, nh nht

1: Constant

ca cc lin kt gia cc domain

2: Uniform
3: Exponential
4: Heavy-tailed

Inter

Gi tr bng thng ln nht, nh nht

BWMax/Min

ca lin kt

float > 0

Bng 9.5 Cc tham s ca m hnh phn cp botton-up


Tham s
Format

ngha
nh dng file c import

169

Cc gi tr
1: BRITE

2: GT-ITM
3: NLANR
4: SKITTER
5:GT-ITM TransitStub
6: Inet
File

ng dn ca file

HS, LS

Kch thc ca cc cnh

Nh gi tr trong
bng B.2.1.1

BWdist

Cch thc phn pht bng thng

1: Constant
2: Uniform
3: Exponential
4: HT

BWmin,

Gi tr bng thng ln nht, nh nht

BWmax

ca cc lin kt

Foat > 0

Bng 9.6 Cc tham s ca m hnh Imported File

9.4 Cc hn ch ca BRITE:
BRITE ch n thun l to ra cc topo cho mng c dy vi cc node v cc
lin kt gia cc node m vn cha to c cc ng dng cng nh cc giao
thc cho mng. Ngoi ra, BRITE vn cha pht sinh c topo cho mng khng
dy ni chung v t bit l mng MANET, l nhng m hnh mng ang pht
trin mnh m trong thi gian gn y. Do , khc phc nhng khuyt im
hin ti ca BRITE, ti c gng gii quyt mt hn ch ca BRITE hin ti l
s xy dng mt module dng cho vic pht sinh topo, kch bn chuyn ng ca
cc node khng dy, kch bn ng dng cho m hnh mng khng dy, gip cho
BRITE hon thin hn.

170

Chng 10
NS-2 v NAM
10.1 Ci t NS-2 v NAM trn Window:
10.1.1 Download NS-2 v NAM
Phin bn NS-2 trn mi trng Window c th download ti a ch:
http://www.isi.edu/nsnam/dist.
chy c NS-2 trn Window, cn phi ci t thm Microsoft Visual
Studio phin bn 5.0 hoc 6.0. Bn NS-2 a ch trn bao gm cc gi:
+ Tcl8.3.2.tar.gz
+ tk8.3.2.tar.gz
+ ns-2.1b9a-win32.exe
+ nam-1.0a11a-win32.exe
+ compile_dll_D_Win2000_1.00.zip

Hnh 10.1 Cu trc th mc ca NS-2 ci t trn Window

10.1.2 Ci t NS-2
Trnh t ci t trn Window theocc bc:
a. To 1 th mc v chp ton b cc gi va download trn vo th mc
va to . V d: to th mc: C:\NS_2.

171

b. To 2 th mc con trong th mc va to trn (th mc NS_2 ) v


dng cc chng trnh gii nn nh WinZip hocWinRar gii nn cc gi
vo cc th mc va to nh sau:
Th mc con

Cc gi gii nn

C:\NS_2\DYNAMIC

Tcl8.3.2.tar.gz
Tk8.3.2.tar.gz

C:\NS_2\TEMP

Compile_dll_D_Win2000_1.00.zip

C:\NS_2\BIN

ns-2.1b9a-win32.exe
nam-1.0111a-win32.exe

Bng 10.1 Cch thc ci t NS-2 trong Window


c . i tn cc file ns-2.1b9a-win32.exe v nam-1.0a11a-win32.exe thnh
ns.exe v nam.exe cho thun tin trong vic s dng sau ny.
d. Tm tp tin vcvars32.bat trong h thng (nm trong th mc VC98\Bin
ca Microsoft Visual Studio). Sau chp tp tin vo trong th mc
C:\NS_2\TEMP . Dng chng trnh son tho (nh NotePad ) xa cc
dng sau:
set VSCommonDir=C:\PROGRA~1\MIAF9D~1\Common .
set MSDevDir=C:\PROGRA~1\MIAF9D~1\Common\msdev98
set MSVCDir=C:\PROGRA~1\MIAF9D~1\VC98
e. M chng trnh Command Prompt v thc hin cc lnh sau:
C:\> cd C:\NS_2\TEMP
C:\> NS_2\TEMP>vcvars32.bat
C:\> NS_2\TEMP>compile-dll-win32.bat C:\NS_2
f. Thm dng C:\NS_2\BIN vo trong bin mi trng PATH ca h
thng.

10.1.3 Chy NS-2 v NAM


M Command Prompt v chuyn ng dn n C:\NS_2\BIN. chy ns,
ta g lnh ns <Tclscript>. Hoc chy ns thng qua trnh thng dch Tcl

172

Wish83.exe, ta g lnh ns <Tclscript> vi Tclscript l tn ca file .tcl v d


nh: ns test.tcl. chy chng trnh thc thi NAM, ta g lnh nam <namfile>
vi namfile l tn ca file .nam, v d: nam test.nam.

10.2 Ci t NS-2 v NAM trn Linux:


10.2.1 Download NS-2 v NAM
C th download gi ns-allinone (l gi cha tt c cc file cn thit cho NS2 trn mi trng Linux) ti a ch:
http://www.isi.edu/nsnam/ns/ns-build.html#allinone.
Gi ns-allinone cha cc gi:
+ Tcl release 8.4.5.
+ Tk release 8.4.5.
+ OTcl release 1.9.
+ TclCL release 1.16.
+ Ns release 2.28.
+ Nam release 1.11.
+ Xgraph version 12.1.
+ CWeb version 3.4g.
+ SGB version 1.0.
+ Gt-itm gt-itm and sgb2ns 1.1.
+ Zlib version 1.1.4.
ci t thnh cng NS-2 trn Linux v Unix , cc gi sau y l cn thit
phi c:
+ Tcl release 8.4.5.
+ Tk release 8.4.5.
+ OTcl release 1.8.
+ TclCL release 1.15.
+ Ns release 2.28.

173

Hnh 10.2 Cu trc th mc ca NS-2 trn Linux

10.2.2 Ci t
Sau khi download gi ns-allinone thnh cng , gii nn cc gi OTcl v TclCL
v ns vo trong cng mt th mc. V d gii nn cc gi vo trong th muc
/home/ns_2.
Sau , bin dch v ci t cc gi theo th t sau:
a. Dng lnh cd chuyn n th mc OTcl (cd /home/ns_2/OTcl).
+ Thc hin lnh : ./configure.
+ Thc hin lnh : ./make.
b . Chuyn n th mc TclCL bng lnh cd /home/ns_2/TclCL.
+ Thc hin lnh : ./configure.
+ Thc hin lnh : ./make.
c . Chuyn n th mc ns bng lnh cd /home/ns_2/ns.
+ Thc hin lnh : ./configure.
+ Thc hin lnh : ./make.
Hoc n gin hn, ch cn chuyn n th mc cha gi ns-allinone gii
nn, thc hin lnh ./configure, make ns-allinone t ng ci t.

174

10.2.3 Chy NS-2 v NAM


Khai bo bin mi trng cho ns v nam, thm dng /home/ns_2/bin vo
trong bin mi trng PATH nh sau: PATH=$PATH:/home/ns_2/bin
Sau , chy ns hoc nam, m mn hnh terminal v g lnh:
ns <Tclscript> vi <Tclscript> l file vi phn m rng .tcl.
V d: ns test.tcl.
chy nam, g lnh:
nam <Namscript> vi <Namscript> l file c phn m rng .nam.
V d : nam test.nam. Hoc ch cn g nam , khi mn hnh giao din ca
nam s hin ra.

175

PHN 5
CC CNG C KHC

Chng 11
Otter
11.1 Gii thiu:
Otter l mt cng c gip tru tng ha cc d liu chuyn dng ca mng
c th c th hin trc quan nh Node, Link, Path. y l mt cng c rt tt
cho vic ti hin cc d liu khng l trn mng Internet nh

Topology,

Workload, Routing, Domain Name, SNMP Data, hay thit k cu trc cy th


mc cho Website,
Otter do t chc CAIDA-Cooperative Association for Internet Data Analysis
xy dng v pht trin trn nn Java bt u t nm 1999.

11.2 Cc tnh nng ni bt ca Otter:


D s dng v thao tc.
Hin th trc quan cu trc mng vi kch thc ln v phc tp.
Cho php chnh sa cc thnh phn mng nh zoom, focus,
graph layout, ...
Save file di dng file nh png.
Load file d liu odf.
L phn mm ngun m, d nng cp v m rng ng dng.
Gn, nh.
Linh hot, c th chy trn nhiu HDH khc nhau nh Window,
Unix, Linux.

176

11.3 Cc bc ci t Otter:
Trong phn ci t, chng em tin hnh ci t trn HDH Linux, qu trnh ci
t ca Otter trn Linux kh n gin, tin hnh qua cc bc sau:
Bc 1:
Ti v bn Otter (phin bn hin ti l Otter 0.9.1) t a ch:
http://www.caida.org/tools/visualization/otter/source/otter-0.9.1.tar.gz
Bc 2:
Gii nn file otter-0.9.1.tar.gz theo cch sau (gi s lu file nn vo th
mc /home trn HDH Linux):
+ M ca s Terminal v chuyn vo th mc /home bng lnh cd.
+ G lnh :
$ gunzip otter-0.9.1.tar.gz
$ tar xvf otter-0.9.1.tar
Lc ny trong th mc /home c th mc otter-0.9.1 sau khi c gii nn
(th mc ny cng c sn trn a CD, c th chp thng vo a trn Linux
chy chng trnh m khng cn phi gii nn).
Bc 3:
Chuyn vo th mc otter-0.9.1 bng lnh:
$ cd otter-0.9.1
Bin dch v chy chng trnh bng lnh:
$ ./otter
Ch : bn phi ci JDK phin bn 1.3 hay mi hn trn Linux v thit lp
cc bin mi trng cn thit theo hng dn nhng phn trn (trn a CD
c bn JDK 1.5 for Linux: jdk-1_5_0_01-linux-i586.rpm).
ci gi ny ch cn chp gi vo mt th mc no trn Linux, m
Terminal, chuyn n th mc cha gi v g lnh:
$ rpm -i jdk-1_5_0_01-linux-i586.rpm

177

Sau khi ci gi, Linux s ci JDK vo th mc /src/java/jdk-1_5_0_01linux-i586 , thit lp bin mi trng PATH n th mc bin/jdk-1_5_0_01linux-i586.

11.4 Qu trnh thit k trn Otter:


Giao din chnh sau khi bin dch Otter:

Hnh 11.1 Giao din chnh ca Otter


Giao din Load file odf:

178

Hnh 11.2 Giao din load file


Giao din sau khi Load mt file odf:

Hnh 11.3 Giao din thit k trn Otter


Gii thiu mt s m hnh kt xut t chng trnh Otter (c lu di dng
file nh png):

179

Hnh 11.4 M hnh kt xut theo trng thi Tunnel

Hnh 11.5 M hnh kt xut theo Domain Name

180

Hnh 11.6 M hnh kt xut theo cu trc cy th mc ca mt Website

181

C. XY DNG CHNG TRNH NG DNG


BRITE

PHN 6
C S L THUYT

182

Chng 12
L thuyt c bn v mng khng dy

12.1 Gii thiu:


Thut ng Mng My Tnh v ang tr nn ph bin v gn gi vi mi
ngi. Cc cng ty, nh my, trng hc, u cn s dng mng my tnh cho
nhng mc ch v nhu cu ring ca h. Mng my tnh ra i lm cho cng
vic tr nn n gin v hiu qu hn, gip chng ta trao i thng tin, chia s d
liu mt cch rt thun tin.
Trong mng my tnh, c hai kiu mng chnh l mng c dy v mng khng
dy. Mng my tnh c dy ra i t kh lu v n chng minh c vai tr
v cng dng to ln cho nhu cu pht trin chung ca x hi. Tuy nhin, vi s
pht trin mnh m ca khoa hc k thut v cng ngh, th mng c dy bt u
bc l nhng hn ch ca n. Khi nhng thit b di ng: laptop, PDA, ... ra i
th mng c dy khng th p ng ht tt c cng dng ca cc thit b .
Do , mng my tnh khng dy ra i nh mt xu th tt yu.
Mng khng dy gip cc thit b di ng c s dng mt cch hiu qu,
thun tin hn v c nhng c tnh ni bt so vi mng c dy:
+ H thng mng khng dy c kh nng c ng cao, cc thit b c th
di chuyn 1 cch ty m vn c th truy cp mng v c th trao i d
liu vi nhau.
+ Mng khng dy cho php d dng b sung, thay th cc thit b tham
gia trong mng m khng cn phi cu hnh phc tp li ton b topo ca
mng.
+ Mng khng dy t r u th ca n trong nhng hon cnh nh: hi
ngh, hi tho, hi ch thng mi, truy cp internet nhng ni cng
cng, N to nn mt khng gian sang trng, lch s, v rt thun tin
cho nhng ngi tham gia.

183

+ Mng khng dy khng ph thuc vo v tr a hnh, nn rt d dng


trin khai lp t.
Tuy mng khng dy cn c nhng hn ch v gi c cng nh v mt k
thut: bng thng cn thp, bn knh ph sng cn hn ch, thit b phn cng
cn t, tui th pin cn thp, cc kt ni cha thc s m bo, kh nng bo
mt cha cao. Xong, vi xu hng pht trin ca khoa hc cng ngh, cng nh
s u t c trng im ca cc quc gia, mng khng dy s cng tr nn ph
bin v s c th thay th c mng c dy.
Cn c vo m hnh t chc v cch thc hot ng, ta c th chia mng
khng dy thnh hai loi:
+ Mng khng dy c nh.
+ Mng khng dy khng c nh.

12.1.1 Mng khng dy c nh


Mng khng dy c nh l loi mng khng dy c pht trin da trn
nn ca mng c dy c sn v loi mng ang c s dng rt ph bin
hin nay. Mng bao gm mt hay nhiu AccessPoint (AP) m rng phm vi
hot ng ca cc my trm. AP va ng vai tr l im truy cp cho cc
my trm trong mng khng dy, va l trm chuyn tip cho vic lin lc
gia hai mng. Cc AP qun l cc my trm trong vng ph sng ca n: khi
mt my trm mun lin lc vi cc my trm khc trong mng th n phi
thng qua AP qun l n. Khi mt my trm di chuyn ra khi cng ph sng
ca mt AP th n s phi thc hin c ch roaming tm kim mt AP mi.

184

Hnh 12.1 M hnh mng khng dy c nh

12.1.2 Mng khng dy di ng


Mng khng dy khng c nh hay thng gi l mng Mobile Ad-hoc
Network (MANET) (ad-hoc c th hiu theo ngha l khng c t chc, hay l
m hnh mng c tnh cht ng). M hnh ny gm hai hay nhiu wireless
mobile kt ni vi nhau theo m hnh mng ngang hng (peer-to-peer) v cc
node c vai tr nh nhau, v c th kt ni vi nhau mt cch ty v khng
cn n c s h tng ca cc mng trc . Cc node trong mng ny cn
ng vai tr nh l cc router c kh nng tm kim, duy tr v nh tuyn cc
gi d liu cho cc node nm trong vng pht sng ca n. Cc node trong
mng di chuyn ty nn kin trc ca mng lun lun thay i. M hnh
mng Ad hoc c s dng nhiu trong nhng trng hp khn cp: Hot
ng tm kim v cu h, hi ngh, hi tho,

Hnh 12.2 M hnh mng khng dy di ng (AdHoc)


Trong phm vi ca ti, chng ti tp trung vo vic tm hiu s lc v m
hnh, cc giao thc nh tuyn v minh ha c th cch thc hot ng ca mt
mng MANET bng cch s dng cng c pht sinh topo mng BRITE c ci t
thm module wireless to ra cc kch bn minh ha.

12.2 M hnh mng MANET:


12.2.1 Tng quan v mng MANET

185

Mng MANET ang tr thnh th h k tip ca mng my tnh. Mng


MANET l tp hp cc mobile node trong mt mng c tnh cht tm thi m
khng c s qun l ca cc nh qun tr. Theo nh ngha ca t chc Internet
Engineering Task Force (IETF), mng MANET l mt vng t tr (Automomous
System) ca cc router ( chnh l cc node ) c kt ni vi nhau bng lin
kt khng dy, cc node c th di chuyn mt cch t do nn kin trc ca mng
thay i lin tc m khng th d on trc.

12.2.2 Phn loi mng MANET theo cch thc nh tuyn


12.2.2.1 Mng MANET nh tuyn Single-hop
Mng MANET nh tuyn Single-hop l loi m hnh mng Ad-hoc n
gin nht, trong , tt c cc node u nm trong cng mt vng ph sng,
ngha l cc node c th kt ni trc tip vi cc node khc m khng cn
thng qua cc node trung gian.

Hnh 12.3 nh tuyn Single-hop


Trong m hnh ny, cc node c th di chuyn t do nhng ch trong mt
phm vi nht nh node c th lin lc trc tip vi cc node khc trong
mng.
12.2.2.2 Mng MANET nh tuyn Multi-hop
y l m hnh ph bin nht trong mng MANET, m hnh ny khc vi
m hnh trc l cc node c th kt ni vi cc node khc trong mng m c
th khng cn phi kt ni trc tip vi nhau. Cc node c th nh tuyn n
node khc thng qua cc node trung gian trong mng. m hnh ny c th

186

hot ng 1 cch hon ho th cn phi c cc giao thc nh tuyn ph hp


vi m hnh mng MANET.

Hnh 12.4 nh tuyn multi-hop


12.2.2.3 M hnh MANET nh tuyn Mobile Multi-hop
M hnh ny l s m rng ca m hnh th hai vi mt cht khc bit: m
hnh ny tp trung vo cc ng dng c tnh cht thi gian thc nh: audio,
video.

12.2.3 Phn loi mng MANET theo chc nng ca Node


12.2.3.1 Mng MANET ng cp (Flat)
Trong kin trc ny , tt c cc node c vai tr ngang hng vi nhau ( peerto-peer) v cc node cng ng vai tr nh cc router dng nh tuyn cc
gi d liu truyn trn mng . Trong nhng mng ln th kin trc Flat khng
ti u vic s dng ti nguyn bng thng ca mng v nhng message iu
khin (control message) phi truyn trn ton b mng . Tuy nhin , n thch
hp trong nhng topo m cc node di chuyn nhiu .
12.2.3.2 Mng MANET phn cp (Hierarchical)
y l m hnh mng c s dng ph bin nht trong mng MANET.
Trong kin trc ny, mng chia lm cc domain, trong mi domain bao gm
mt hoc nhiu cluster vi mi cluster bao gm mt hoc nhiu node. Do ,
node trong kin trc ny chia lm hai loi:

187

Master node l node qun tr mt cluster v c nhim v chuyn d


liu ca cc node trong cluster n cc node trong cc cluster khc v
ngc li . Ni cch khc, n c chc nng nh mt gateway.
Normal node l cc node nm trong cng mt cluster v ch c th kt
ni vi cc node trong cng mt cluster hoc kt ni vi cc node trong
cc cluster khc thng qua master node.

Hnh 12.5 M hnh mng phn cp


Vi cc c ch trn, mng s dng ti nguyn bng thng mng hiu qu
hn v cc message iu khin ch phi truyn trong mt cluster. Tuy nhin,
vic qun l tnh chuyn ng ca cc node tr nn phc tp hn. kin trc
mng phn cp thch hp cho cc mng c tnh chuyn ng thp.
12.2.3.3 Mng MANET kt hp (Aggregate)
Trong kin trc mng ny, mng phn thnh cc zone v cc node c chia
vo trong cc zone. Nn mi node bao gm hai mc topo (topology ): topo
mc thp ( node level ) v topo mc cao (zone level ) (high level topology ).
Ngoi , mi node cn c trng bi hai s ID: node ID v zone ID. Trong
mt zone c th p dng kin trc ng cp hoc kin trc phn cp.

188

Hnh 12.6 M hnh mng Aggregate Ad hoc

189

PHN 7
XY DNG NG DNG

Chng 13
Gii thiu chung
13.1 Gii thiu:
Nh trnh by trong phn gii thiu v BRITE, y l ng dng c xy
dng u tin bi cc tc gi trong khoa CNTT thuc trng i hc Boston vi
mc ch l to ra mt cng c pht sinh topology cho mng. y l ng dng
m ngun m v chy rt n nh v pht sinh chun xc cc m hnh mng.
Tn dng nhng u im sn c ca BRITE, chng ti quyt nh la chn
BRITE xy dng ng dng cho mnh. Mc tiu chnh cn t c trong
phm vi ca ti ny l gn kt cng c pht sinh topology vi cng c gi lp
mng li vi nhau, vi cng c gi lp mng l NS-2. NS-2 l mt mi trng gi
lp mng rt tt v ng tin cy cho nhng tm hiu, nghin cu cng nh hin
thc cc m hnh mng. Tuy nhin, NS-2 giao tip vi ngi dng bng tp lnh
m khng giao tip bng cc giao din trc quan. Do , BRITE trong ti ny
c pht trin vi mc tiu l to ra mt giao din trc quan phc v cho vic
to ra cc topology, cc kch bn chuyn ng, cc ng dng mng cho cng c
gi lp mng NS-2, m ch yu tp trung vo mng khng dy, c bit l mng
MANET.

13.2 Ngn ng ci t v tnh tng thch:

190

BRITE c ci t bng ngn ng Java nhm mc ch l c th chy c


trn nhiu h iu hnh khc nhau m tiu biu l Linux v Window. Trong ti
ny, chng ti ch ci t BRITE v NS-2 trn mi trng Linux. Phin bn
Linux chng ti th nghim l Fedora Core 2.
Cc chng trnh c yu cu khi s dng BRITE:
NS-2 (Network Simulator version 2).
NAM (Network Animator).
B JDK1.3 hoc mi hn (Trong chng trnh ng dng s dng b
JDK1.5).
Cch thc ci tv s dng NS-2 v NAM c hng dn trong phn
trc.

13.3 Cc m hnh mng trong ng dng:


13.3.1 Mng MANET
M hnh mng MANET trong ti ny l m hnh mng Flat Ad-hoc
Network nh cp trong phn trn: l m hnh mng peer-to-peer, cc node
trong mng c vai tr nh nhau, ng thi ng vai tr nh cc router dng
nh tuyn.

13.3.2 Wired-cum-Wireless
y l m hnh mng thng s dng trong thc t, l s kt hp ca hai
mng c dy v mng khng dy thng qua Base-Station ng vai tr nh l
gateway dng nh tuyn gia hai mng. Mng khng dy trong m hnh ny
l mng MANET Hierarchical Adhoc Network. Trong , mi domain c chia
thnh cc cluster v mi cluster bao gm mt hay nhiu node. Tt c cc gi d
liu nh tuyn n mt node s phi thng qua Base-Station ca domain ca
node v Base-Station s c nhim v nh tuyn gi d liu n node ch.

191

Chng 14
Cc chc nng chnh ca ng dng
14.1 Gii thiu cc lp trong module wireless:
Trong chng trnh ng dng BRITE, module wireless c chc nng pht sinh
file script tcl to kch bn gi lp cho mng khng dy. Cc file source thm vo
module ny nm trong 2 gi l GUI v Util.
Bng m t cc file thm vo trong chng trnh:
Tn lp

M t chc nng

WirelessPanel

L Panel giao din chnh thc hin qu trnh thit

Gi

k gi lp nh khai bo s wireless node, wired


node, bs-node, kch thc vng gi lp, thit lp
cu hnh cho cc wireless node, to kch bn
chuyn ng, kch bn ng dng, thc hin lu
file script tcl v gi chng trnh NS tin hnh gi
lp
Wireless

Lu ton b thng tin v m hnh gi lp trong


module wireless do ngi dng xy dng

WNode

Lp WNode lu cc thng tin v cu hnh cho


tng wireless node

TableNode

Lu gi cc thng tin v cc Agent v Application

Option

Giao din cu hnh cc thng s cn thit chung


cho tt c cc wireless node trong m hnh gi lp

ModifyNode

Giao din cu hnh ring cc thng s cho tng


wireless node trong m hnh gi lp

192

GUI

Movement

Giao din thit lp v tr khi to v to kch bn


chuyn ng cho cc wireless node, c th thit
lp bng tay hoc c pht sinh t ng, ngu
nhin

Application

Giao din to kch bn ng dng cho cc wireless


v wired node vi cc tham s l Agent,
Application, start time v end time

AutoRun

Thc thi file script tcl bi NS v NAM

NodeServer

Cc node dng gi d liu

Node_Client

Cc node dng nhn d liu

Node_Info

Thng tin chung v cu hnh ca tng node

Table

To bng h tr thit k kch bn ng dng

MessageBox

Pht sinh cc thng bo tng tc vi ngi s


dng nh cc thng bo, cccnh bo li
Bng 14.1 Cc lp trong module wireless

14.2 Giao din chnh ca module Wirless:

193

Util

Hnh 14.1 Giao din chnh module Wireless ca BRITE


Giao din Wireless gip ngi s dng thit k trc quan m hnh gi lp
mng wireless Ad-hoc c kt hp vi mng wired bng ngn ng TCL.
M t cc chc nng trn giao din:
Wireless Node: s wireless node trong m hnh gi lp.
BS Node: s base-station node trong m hnh gi lp, cc BS Node ng
vai tr l cc trm trung gian lin lc gia wired v wireless node.
Wired Node: s wired node trong m hnh gi lp.
X-cordinate, Y-cordinate: kch thc ca vng khng gian trong m
hnh gi lp, tnh bng mt.

194

Set Option: chc nng thit lp cu hnh chung cho tt c cc wireless


node.
Set App: chc nng to kch bn ng dng cho cc wireless node trong
m hnh gi lp.
Set Movement: chc nng to kch bn chuyn ng cho cc wireless
node trong m hnh gi lp.
Set Event: chc nng to kch bn cc s kin cho ng dng trong m
hnh gi lp (chc nng ny cha c hon thin).
Output Script: vng hin th file cu hnh TCL sau khi nhn nt Build
Topology .
Build Topology: pht sinh file script TCL, sau khi nhn nt Build
Topology v thng bo dch thnh cng trn hp thoi status window,
chng trnh s gi trnh bin dch NS_2 dch file TCL, v tin hnh
qu trnh gi lp.

Hnh 14.2 Ca s thng bo trng thi pht sinh topo


Export Topology: ng dn y lu file script TCL.
Hp thoi Save file TCL (sau khi nhn nt Browse) cho php ngi s
dng chn th mc cn lu file vi tn do ngi dng nhp vo.
Ch : khng c nhp phn m rng tcl, chng trnh s t ng thm
vo nhm trnh trng hp nhp sai phn m rng s bo li lc thc thi
bn NS.

195

Hnh 14.3 Giao din lu file

14.3 Cu hnh cc wireless node:


Giao din Set Options:

196

Hnh 14.4 Giao din cu hnh chung cho cc MobileNode


Giao din Set Options thit lp cu hnh chung cho tt c cc wireless node
trong m hnh gi lp. Cc gi tr ban u l cc gi tr mc nh, thng c s
dung trong cu hnh cc wireless node ca ngn ng tcl. i vi cc BS Node, do
tnh cht nht qun v ng n ca ngn ng TCL, vic cu hnh cho cc BS
Node c thit lp mc nh bi chng trnh.
M t cc tham s trn giao din Set Options:
Channel Type: thit lp knh truyn thng cho cc wireless node.
Phin bn NS_2 hin ti ch c mt gi tr tham s duy nht l
WirelessChannel.
Propagation: thit lp m hnh truyn thng (radio-propagation) cho
cc wireless node, gi tr: TwoRayGround v Shadowing.
Interface Type: chn loi card giao tip cho cc thit b wireless, gi
tr: WirelessPhy.

197

Addressing Type: kiu phn b a ch cho cc wireless node, gi tr:


flat, hierarchical.
Antenna Type: kiu anten s dng cho cc wireless node, gi tr:
OmniAntenna.
Interface Queue: Interface Queue Type, gi tr: DropTail/PriQueue,
DropTail, FQ, DRR, SRR, PI, VQ, REM, GK, DynamicLink, Filter.
Routing Protocol: giao thc nh tuyn cho cc wireless node, gi tr:
DSDV, DSR, AODV, TORA.
MAC Type: Media Access Control, gi tr: 802_11, TDMA,
CSMA/CA.
Link Layer Type: ch c mt gi tr l LL.
MAC Trace: ON/OFF
Agent Trace: ON/OFF.
Movement Trace: ty chn ny thit lp bt hoc tt chc nng di
chuyn ca cc wireless node trong qu trnh gi lp, gi tr: ON/OFF.
Router Trace: ty chn ny cho php cc wireless node c kh nng
t nh tuyn cc gi tin hay khng, gi tr: ON/OFF.
Max Packet: Max Packet in Interface Queue, l kch thc ti a
vng m trn card giao tip ca cc wireless node, kiu Integer.
Antenna Radius: bn knh vng ph song ca cc wireless node, n
v tnh l mt, kiu Integer.
Modify each node: chc nng cu hinh cho tng wireless node ring
bit.
Giao din Modify each Node:

198

Hnh 14.5 Giao din cu hnh cho tng MobileNode


Giao din Modify each node cho php cu hnh tng wireless node ring bit.
Cc tham s trn giao din l cc tham s c nhiu gi tr.
cu hnh cho mt wireless node ring bit, chn node trong danh sch
combobox Choose node , thit lp cc tham s thay i, sau nhn nt Update
for Node xc nhn thit lp.
Kt thc, nhn nut Ok.

14.4 To kch bn chuyn ng:


c trng ni bt nht ca mng khng dy l tnh cht ng ca mng. Tc l
cc node lun lun di chuyn. Do , c th nh gi, kim nghim cc m
hnh mng mt cch chn tht v chun xc nht th nht thit phi to ra mt
giao din to kch bn chuyn ng cho cc node trong mng.
Theo cch thit k ca NS, cc node c th c chuyn ng ngu nhin mi
ln thc hin vic gi lp. Khi kim nghim cc giao thc , ta c th tin hnh

199

kim nghim trn nhiu mu th ngu nhin khc nhau . Tuy nhin, c th
nh gi chnh xc v so snh tnh hiu qu ca cc thnh phn trong mng nh
cc giao thc nh tuyn, loi a ch MAC , , chng ta cn phi thc hin trn
cng mt mu th hoc mt nhm cc mu th.
Xut pht t yu cu , trong nhng phin bn gn y, NS c thm mt lnh
cho php to cc chuyn ng cho node. Tuy nhin, cn mt s hn ch : khng
c giao tip trc quan vi ngi dng, khng cho php xc nh cc thng s gii
hn v s ln chuyn ng cn to, thi gian, ta , nhng iu lm kh
khn trong vic to kch bn gi lp.
Xut pht t nhng kh khn , trong module Wireless ca BRITE, chng ti
xy dng thm mt giao din to kch bn chuyn ng cho cc node. Mun thit
lp cc thng s chuyn ng cho node, ta click vo button Set Movement
mn hnh chnh:

200

Hnh 14.6 Giao din tao kch bn chuyn ng cho cc MobileNode


Ta c th to kch bn chuyn ng theo hai cch:

14.4.1 To bng tay


i vi BS node: Cc BS node ch cn to v tr khi to, khng cn to cc
chuyn ng.
i vi MobileNode: Ngi dng cn nhp vo cc thng s v tr khi to,
thi gian, v tr cn di chuyn n, tc di chuyn cho tng node.
i vi mt Node, v tr khi to tc l v tr ca node ti thi im thi gian
bng 0, y l gi tr duy nht cho tng node, nu trong qu trnh cu hnh, khi c
mt gi tr m thi gian bng 0, th v tr s cp nht v tr khi to c.
Cc gi tr khc vi gi tr khi to s cn c vo thi gian to kch bn
chuyn ng, nu hai gi tr c cng thi gian th s ly gi tr ta sau.

201

14.4.2 To ngu nhin


Ngi dng cn nhp vo mt s thng tin: thi im ln nht, thi im nh
nht pht sinh kch bn chuyn ng ( hai gi tr ny s c rng buc bi gi
tr Stop Time ) phm vi ta di chuyn ca cc node (X1, Y1), (X2, Y2) (hai ta
ny b rng buc bi hai gi tr MaxX, MaxY), tc ln nht, tc nh
nht, s ln di chuyn ca cc Node. Sau khi thit lp y cc thng s,
chng trnh s t ng pht sinh ngu nhin kch bn chuyn ng cho mng.

14.4.3 ngha ca to bng tay v ngu nhin


Cch to bng tay c u im l nhanh chng cho nhng m hnh mng nh
vi t node di chuyn v thi gian d nh gi lp khng lu. Ngi dng c th
chn nhng s di chuyn vi nhng ch nhm nh gi u, khuyt im ca
cc m hnh mng.
Tuy nhin, i vi nhng m hnh mng ln vi hng trm node chuyn ng
v thi gian gi lp ko di, cch to bng tay s khng hiu qu. i khi cch
to bng tay cn b gii hn bi suy ngh ch quan ca ngi to kch bn lm
nh hng n tnh ngu nhin ca cc chuyn ng vn l yu t bt buc ca
cc mng di ng. Do , chc nng to ngu nhin s gii quyt tt vn ny.

14.5 To kch bn ng dng:


Mt m hnh mng hon chnh phi cn c cc ng dng c thit lp trn
. ng dng cho php chng ta c th nh gi, kim nghim cc thnh phn
mng nh giao thc nh tuyn. NS-2 h tr kh nhiu ng dng. Tuy nhin,
trong phm vi ti ny, chng ti ch la chn mt s ng dng tiu biu nht
minh ha.
Mun cu hnh cc ng dng cho mng, ta click vo button Set App mn
hnh chnh:

202

Hnh 14.7 Giao din thit lp ng dng cho mng


Trong List l tt c cc Node c trong mng (c ly t mn hnh chnh) v
cng l cc Node s gi d liu. Cc Node trong Jtable l cc Node s nhn d
liu.
Mun to mt ng dng cho cc Node, ta chn cc Node trong List (c th
chn nhiu Node cng lc) v chn cc Node trong JTable m mun kt ni bng
cch nh du check vo Node mun to kt ni, sau chn agent v ng dng
mun to v thit lp gi tr thi gian khi ng v thi gian kt thc ca ng
dng (c s rng buc gia hai gi tr ny).
Cc Agent v cc ng dng h tr trong Module Wireless ca BRITE:
Agent

Ch thch

UDP

Giao thc UDP

TCP

Giao thc TCP

TCP Tahoe

Giao thc TCP Tahoe

TCP Reno

Giao thc TCP Reno

TCP Newreno

Giao thc TCP Newreno

Bng 14.2 Cc agent c ci t trong module Wireless

203

ng dng

Ch thch

FTP

ng dng FTP

Telnet

ng dng Telnet

Traffic/Exponential

ng dng pht sinh lu lng mng


Traffic/Exponential

Traffic/Pareto

ng dng pht sinh lu lng mng


Traffic/Pareto

Traffic/CBR

ng dng pht sinh lu lng mng


Traffic/CBR

Bng 14.3 Cc ng dng c ci t trong module Wireless


GUI: Mun cu hnh cc ng dng cho mng, ta click vo button Set App
mn hnh chnh.

14.6 Gii thut pht sinh s Domain v Cluster:


Trong m hnh mng wired-cum-wireless, a ch ca cc node c qun l
theo dng phn cp (hierarchical), cc wired node c nhm vo mt Domain,
cc base-station s tng ng vi mt Domain qun l mt s wireless node nht
nh.
Mi Domain c chia thnh cc Cluster. Trong Domain wired, mi mt
wired node tng ng vi mt Cluster, iu ny c ngha l trong mi Cluster
ca Domain wired ch c mt node duy nht; trong cc Domain wireless ch c
mt Cluster duy nht chnh l Domain wireless .
Hnh nh phn b cc node trong cc Domain v Cluster nh sau:

204

Hnh 14.8 M hnh mng wire-cum-wireless


a ch ca mt node trong m hnh c xc nh bi 3 gi tr: Domain,
Cluster, ch s node.
V d:
a ch ca node 0 (2.1.3) c ngha node 0 thuc Domain 2, Cluster 1 v c
ch s node l 3.
Gii thut phn b cc wireless node vo cc Domain wireless:
Gi s trong m hnh mng wire-cum-wireless c cc tham s gi tr sau:
+ S wired node: K
+ S BS node: M
+ S wireless node: N
Theo nh trn, s Domain trong mng s l: M + 1, v c nh s theo
th t t Domain wired Domain BS 0 Domain BS 1 Domain
BS M.
Cc wireless node c phn b vo cc Domain wireless nh sau:
Nu N<=M: mi BS s qun l 1 wireless node (BS 0 BS (N-1)).
Nu N>M:

205

Tnh : a = N/M, b = N%M


Khi , s wireless node trong Domain BS 0 s l a + b , trong cc
Domain ca cc BS cn li l a.

14.7 Tin hnh gi lp:


14.7.1 Cc bc xy dng kch bn v bin dch
Qu trnh tin hnh gi lp c thc hin tun t theo cc bc:
+ Cu hnh cho cc Node nh phn 14.3.
+ To kch bn chuyn ng cho cc MobileNode nh phn 14.4.
+ To kch bn cc ng dng cho mng nh phn 14.5.
+ Chng trnh s t ng pht sinh ngn ng Tcl tng ng cho m hnh
mng va to.
+ BRITE s gi ng dng NS bin dch file Tcl va to v pht sinh file
.nam
+ ng dng NAM s thc thi file .nam m phng mang.

14.7.2 Cc v d minh ha
14.7.2.1 Mng MANET
Kch bn c to ra gm 5 mobile node c cu hnh nh sau:
$ns_ node-config -addressingType hierarchical \
-adhocRouting AODV \
-llType LL \
-macType MAC/802_11 \
-ifqType Queue/DropTail/PriQueue \
-ifqLen 50 \
-antType Antenna/OmniAntenna n \
-propType Propagation/TwoRayGround n \
-phyType Phy/WirelessPhy \
-topologyInstance $topo n \
-channel Channel/WirelessChannel \

206

-agentTrace ON \
-routerTrace ON \
-macTrace ON \
-movementTrace ON

Hnh 14.9 M hnh mng MANET trong NAM ( cnh 1 )

207

Hnh 14.10 M hnh mng MANET trong NAM ( cnh 2 )


14.7.2.2 Mng Wired-cum-Wireless
Kch bn c to ra gm 5 mobile node, 2 BS node v 3 wired node.
on script pht sinh s Domain, s Cluster v s node trong mi Cluster
nh sau (gii thut pht sinh c trnh by phn trn):
AddrParams set domain_num_ 3 ;#number of domains.
lappend cluster_num 2 1 1 ;#so cluster trong moi domain.
AddrParams set cluster_num_ $cluster_num
lappend eilastlevel 1 1 4 3 ;#so node trong moi cluster.
AddrParams set nodes_num_ $eilastlevel
Cc BS node c cu hnh nh sau:
$ns_ node-config -adhocRouting DSDV \
-llType LL \
-macType Mac/802_11 \

208

-propInstance [new $val(prop)] \


-ifqType Queue/DropTail/PriQueue \
-ifqLen $val(ifqlen) \
-phyType Phy/WirelessPhy \
-antType Antenna/OmniAntenna \
-channel [new $val(chan)] \
-topoInstance $topo \
-agentTrace ON \
-routerTrace ON \
-macTrace ON \
-wiredRouting ON \

Hnh 14.11 M hnh mngWired-cum-Wireless trong NAM

209

TNG KT
Nhng mc tiu thc hin c:
+ Tm hiu v mng khng dy v cc vn lin quan nh: phn loi mng,
cc giao thc nh tuyn.
+ ti tm hiu v trnh by kh chi tit c s l thuyt mt s ngn ng
dng m hnh ha mng nh DML, TCP, OTCL. M c bit, chng ti tp
trung vo ngn ng TCL xy dng cc kch bn gi lp cho mng khng dy
trong phn ng dng.
+ Tm hiu cc cng c pht sinh topology v gi lp mng c h tr
trong ng dng BRITE nguyn thy: SSFNet, BRITE, NS-2, Otter V ti
ch trng hn vo BRITE v NS-2, hai cng c dng trong phn ng dng.
+ Gii quyt c hn ch trong vic giao tip vi ngi dng ca b cng c
NS-2 bng cch s dng BRITE nh l phn giao din giao tip vi NS-2.
+ M hnh ha hon chnh c mt s m hnh mng khng dy trong mi
trng NS-2 nh mng MANET, mng MANET kt hp vi mng c dy.

Hng pht trin trong tng lai:


D c gng thc hin, nhng BRITE vn cha thc s hon chnh cho vic
pht sinh tt c cc m hnh mng trong thc t v nhng nguyn nhn ch quan
ln khch quan: hn ch v thi gian hoc mt cng c gi lp mng khng th
h tr ng thi tt c cc m hnh mng trong thc t.
Trong tng lai, chng ti s pht trin thm mt giao din cho php h tr
vic to, thit k cc topology mng, cu hnh cc tham s mng bng cch koth gip cho vic to cc m hnh mng tr nn n gin hn.
Hin nay, phn mng khng dy trong b cng c NS-2 vn ang trong giai
on pht trin nn cha tht s hon chnh. Do , trong phn mng khng dy,
chng ti ch c th pht trin thm m hnh mng MobileIP. Cc m hnh mng

210

khc vn cha th tin hnh gi lp c (hin ti, NS vn cha h tr), trong


tng lai NS s pht trin thm module Satellite (v tinh) h tr cng vic gi lp
cho cc v tinh.
Mt khuyt im hin ti ca BRITE l ch dng li vic pht sinh topology
ch cha cha pht sinh c cc ng dng cho mng c dy. s l mt
hng pht trin ca chng ti BRITE ngy cng hon thin hn.

211

PH LC
Mt s v d minh ha ngn ng DML v TCL
Minh ha ngn ng DML (A Switched-Shared-LAN):
# -----------------------------------M hnh Topology--------------------------------#
# C0 ---------|
# C1 ---------|
# C2 ---------|

//------------ S0

# C3 ---------|

//-------- S1

# C4 ---------|--------R1------R2----------|
# C5 ---------|

\\-------- S3

# C6 ---------|

\\------------ S4

# C7 ---------|
#-------------------------------------------------------------------------------------------#
Net [
frequency 1000000000
randomstream [ generator MersenneTwister
stream "seed starter"
reproducibility_level timeline
]
#-----------define the two router R1 and R2-------------#
router [ id 1
graph [
ProtocolSession [ name ip use SSF.OS.IP ] ]
interface [ id 0
buffer 192000
_extends .dictionary.1Gbps
]

212

interface [ id 1
buffer 192000
_extends .dictionary.100Mbps
]
route [ dest default interface 0 ]
]
router [ id 2
graph [
ProtocolSession [ name ip use SSF.OS.IP ] ]
interface [ id 0
buffer 192000
_extends .dictionary.1Gbps
]
interface [
idrange [ from 1 to 5 ]
buffer 192000
_extends .dictionary.100Mbps
]
route [ dest default interface 0 ]
]
#---------------------Define a shared LAN of 8 clients-----------------------#
host [ idrange [ from 100 to 107 ]
_extends .dictionary.TCPRenoTestClient
]
#---------------------Define a switched LAN of 4 servers--------------------#
host [ idrange [ from 201 to 205 ]
_extends .dictionary.TCPRenoTestServer
]
#---------------------Define Network Connections----------------------------#

213

link [ attach 1(0) attach 2(0) delay 0.0005 ]


link [attach 1(1)
attach 100(0) attach 101(0) attach 102(0) attach 103(0)
attach 104(0) attach 105(0) attach 106(0) attach 107(0)
]
link [ attach 2(1) attach 201(0) delay 0.000005 ]
link [ attach 2(2) attach 202(0) delay 0.000005 ]
link [ attach 2(3) attach 203(0) delay 0.000005 ]
link [ attach 2(4) attach 204(0) delay 0.000005 ]
link [ attach 2(5) attach 205(0) delay 0.000005 ]
#-------------Define Traffic: A client requests files from 2 servers---------------#
traffic [
pattern [client 100
servers [ nhi_range [ from 201(0) to 202(0) ] port 8080] ]
pattern [client 101
servers [nhi_range [ from 203(0) to 205(0) ] port 8080] ]
pattern [client 102
servers [nhi_range [ from 202(0) to 204(0) ] port 8080] ]
pattern [client 103
servers [ nhi_range [ from 201(0) to 205(0) ] port 8080] ]
pattern [ client 104
servers [nhi_range [ from 201(0) to 205(0) ] port 8080 ] ]
pattern [client 105
servers [ nhi_range [ from 202(0) to 204(0) ] port 8080 ] ]
pattern [client 106
servers [ nhi_range [ from 201(0) to 203(0) ] port 8080 ] ]
pattern [ client 107
servers [ nhi_range [ from 201(0) to 205(0) ] port 8080 ] ]
]

214

# end Traffics
]
# end Net
#---------------------------------------Define dictionary------------------------------------#
dictionary [
# Standard Interfaces
100Mbps [bitrate 100000000 # bits/s
latency 0.00001 # per packet proc. delay, in sec ]
622Mbps [bitrate 622000000 # bits/s
latency 0.0001 # per packet proc. delay, in sec ]
1Gbps [bitrate 1000000000 # bits/s
latency 0.0001 # per packet proc. delay, in sec ]
single_homed_host [
interface [ id 0 _extends .dictionary.100Mbps ] ]
TCPRenoTestClient [
_extends .dictionary.single_homed_host
nhi_route [ dest default interface 0 next_hop 1(1)]
#Define client protocol stack
graph [
ProtocolSession [ name client use SSF.OS.TCP.test.tcpClient
start_time 10.0 # Time to send request (sec)
start_window 0.0 # make start time deterministic
file_size 10000000 # bytes to be downloaded
request_size 100 # client request size in bytes
show_report true # show debugging information
debug true
]
ProtocolSession [ name socket use SSF.OS.Socket.socketMaster ]
ProtocolSession [ name tcp use SSF.OS.TCP.tcpSessionMaster

215

_find .dictionary.tcpinit
]
ProtocolSession [ name ip use SSF.OS.IP ]
] # end of Protocol Graph
] # End of TCPRenoTestClient
TCPRenoTestServer [
_extends .dictionary.single_homed_host
route [ dest default interface 0 ]
graph [
ProtocolSession [ name server use SSF.OS.TCP.test.tcpServer
# Server configuration
port 8080
client_limit 1024
request_size 100 # client request size in bytes
show_report true # show debugging information
debug true
]
ProtocolSession [ name socket use SSF.OS.Socket.socketMaster ]
ProtocolSession [ name tcp use SSF.OS.TCP.tcpSessionMaster
_find .dictionary.tcpinit
]
ProtocolSession [ name ip use SSF.OS.IP ]
] # end of Protocol Graph
] # end of server definition
# TCP Initial parameters
tcpinit [
ISS 0
MSS 1460
SendBufferSize 64

216

RcvWndSize 64
AdvertisedWnd 10000
MaxConWnd 10000
conThresh 10000
fast_recovery true
delayed_ack true
TCP_FAST_INTERVAL 0.500
show_report true
]
] # End of dictionary

Minh ha ngn ng TCL (A wired-cum-wireless Network):


#--------------------Define Options----------------------#
global val
set val(chan)

Channel/WirelessChannel ;#channel type

set val(prop)

Propagation/TwoRayGround ;#radio-propagation model

set val(ant)

Antenna/OmniAntenna ;#Antenna type

set val(add)

hierarchical ;#Addressing type

set val(ll)

LL ;#Link layer type

set val(ifq)

Queue/DropTail/PriQueue ;#Interface queue type

set val(ifqlen) 50 ;#max packet in ifq


set val(netif)

Phy/WirelessPhy ;#network interface type

set val(mac)

Mac/802_11 ;#MAC type

set val(rp)

DSDV ;#ad-hoc routing protocol

set val(nn)

5 ;#number of mobilenodes

set val(bs)

2 ;#number of bsnodes

set val(wn)

2 ;#number of wirenodes

set val(x)

500 ;#X-cordinate

set val(y)

500 ;#Y-cordinate

217

set val(seed)

0.0 ;# seed for random number gen.

#-----Check for boundary parameters and random seed.


if {$val(x) == 0 || $val(y) == 0} {
puts "No X-Y boundary values given for wireless topology\n"
}
if {$val(seed) > 0} {
puts "Seeding Random number generator with $val(seed)\n"
ns-random $val(seed)
}
set ns_

[new Simulator]

#-----Set up for hierarchical routing.


$ns_ node-config -addressType hierarchical
AddrParams set domain_num_ 3 ;#number of domains.
lappend cluster_num 2 1 1 ;#so cluster trong moi domain.
AddrParams set cluster_num_ $cluster_num
lappend eilastlevel 1 1 4 3 ;#so node trong moi cluster.
AddrParams set nodes_num_ $eilastlevel
set tracefd [open /home/wire_wireless.tr w ]
$ns_ trace-all $tracefd
set namtracefd [open /home/wire_wireless.nam w ]
$ns_ namtrace-all-wireless $namtracefd $val(x) $val(y)
#-----Set up topography object.
set topo [new Topography]
$topo load_flatgrid $val(x) $val(y)
#-----Create God.
create-god [expr $val(nn) + $val(bs)]
#-----Create and configure wired Nodes.
set temp {0.0.0 0.1.0} ;#hierachical addresses for wired domain.
for {set i 0} {$i < $val(wn)} {incr i} {

218

set W($i) [$ns_ node [lindex $temp $i]]


}
#-----Configure for base-station Nodes.
$ns_ node-config -adhocRouting DSDV \
-llType LL \
-macType Mac/802_11 \
-propInstance [new $val(prop)] \
-ifqType Queue/DropTail/PriQueue \
-ifqLen $val(ifqlen) \
-phyType Phy/WirelessPhy \
-antType Antenna/OmniAntenna \
-channel [new $val(chan)] \
-topoInstance $topo \
-agentTrace ON \
-routerTrace ON \
-macTrace ON \
-wiredRouting ON \
set temp_1 { 1.0.0 1.0.1 1.0.2 1.0.3 }
set BS_(0) [$ns_ node [ lindex $temp_1 0]]
$BS_(0) random-motion 0
set temp_2 { 2.0.0 2.0.1 2.0.2 }
set BS_(1) [$ns_ node [ lindex $temp_2 0]]
$BS_(1) random-motion 0
#-----Configure for wireless nodes.
$ns_ node-config -wiredRouting OFF
#-----Configure for the wireless nodes that have the same configuration.
$ns_ node-config -adhocRouting DSDV \
-addressingType hierarchical \
-llType LL \

219

-macType Mac/802_11 \
-propType Propagation/TwoRayGround \
-ifqType Queue/DropTail/PriQueue \
-ifqLen 50 \
-phyType Phy/WirelessPhy \
-antType Antenna/OmniAntenna \
-topoInstance $topo \
-agentTrace ON \
-routerTrace ON \
-macTrace ON \
-movementTrace ON \
for {set j 0} {$j < 3} {incr j} {
set node_($j) [$ns_ node [lindex $temp_1 [expr $j + 1-0]]]
$node_($j) base-station [AddrParams addr2id [$BS_(0) node-addr]]
$node_($j) random-motion 0

; #Disable random motion

}
for {set j 3} {$j < 5} {incr j} {
set node_($j) [$ns_ node [lindex $temp_2 [expr $j + 1-3]]]
$node_($j) base-station [AddrParams addr2id [$BS_(1) node-addr]]
$node_($j) random-motion 0
}
$node_(0) label "W0"
$node_(0) set X_ 374.0
$node_(0) set Y_ 466.0
$node_(0) set Z_ 0.0
$node_(1) label "W1"
$node_(1) set X_ 342.0
$node_(1) set Y_ 454.0
$node_(1) set Z_ 0.0

220

; #Disable random motion

$node_(2) label "W2"


$node_(2) set X_ 309.0
$node_(2) set Y_ 427.0
$node_(2) set Z_ 0.0
$node_(3) label "W3"
$node_(3) set X_ 239.0
$node_(3) set Y_ 244.0
$node_(3) set Z_ 0.0
$node_(4) label "W4"
$node_(4) set X_ 65.0
$node_(4) set Y_ 479.0
$node_(4) set Z_ 0.0
$BS_(0) label "BS0"
$BS_(0) set X_ 178.0
$BS_(0) set Y_ 29.0
$BS_(0) set Z_ 0.0
$BS_(1) label "BS1"
$BS_(1) set X_ 483.0
$BS_(1) set Y_ 47.0
$BS_(1) set Z_ 0.0

$ns_ at 52.18422 "$node_(0) setdest 394.0 284.0 11.0"


$ns_ at 62.195705 "$node_(1) setdest 442.0 480.0 65.0"
$ns_ at 84.75359 "$node_(2) setdest 1.0 382.0 86.0"
$ns_ at 75.980675 "$node_(3) setdest 441.0 445.0 22.0"
$ns_ at 38.467274 "$node_(4) setdest 195.0 32.0 69.0"
$ns_ at 19.1865 "$node_(0) setdest 431.0 193.0 69.0"
$ns_ at 51.863335 "$node_(1) setdest 193.0 145.0 93.0"
$ns_ at 40.75516 "$node_(2) setdest 204.0 459.0 11.0"

221

$ns_ at 92.63895 "$node_(3) setdest 478.0 128.0 69.0"


$ns_ at 45.802128 "$node_(4) setdest 30.0 68.0 56.0"
#-----Create links between wired and bs nodes.
$ns_ duplex-link $W(0) $W(1) 5Mb 2ms DropTail
$ns_ duplex-link-op $W(0) $W(1) orient down
$ns_ duplex-link $W(1) $BS_(0) 5Mb 2ms DropTail
$ns_ duplex-link-op $W(1) $BS_(0) orient down
$ns_ duplex-link $W(1) $BS_(1) 5Mb 2ms DropTail
$ns_ duplex-link-op $W(1) $BS_(1) orient down
#-----Protocol and Application connections between node_(0) and w_(0)
set TCP0_0 [new Agent/TCP]
$TCP0_0 set class_ 2
set sink0_0 [new Agent/TCPSink]
$ns_ attach-agent $node_(0) $TCP0_0
$ns_ attach-agent $W(0) $sink0_0
$ns_ connect $TCP0_0 $sink0_0
set App0_0 [new Application/FTP]
$App0_0 attach-agent $TCP0_0
$ns_ at 10 "$App0_0 start"
$ns_ at 100 "$App0_0 stop"
#-----Protocol and Application connections between node_(3) and
node_(1)
set TCP3_1 [new Agent/TCP]
$TCP3_1 set class_ 2
set sink3_1 [new Agent/TCPSink]
$ns_ attach-agent $node_(3) $TCP3_1
$ns_ attach-agent $node_(1) $sink3_1
$ns_ connect $TCP3_1 $sink3_1
set App3_1 [new Application/FTP]

222

$App3_1 attach-agent $TCP3_1


$ns_ at 10 "$App3_1 start"
$ns_ at 100 "$App3_1 stop"
#-----Define the node size in nam, must adjust it according to your
scenario.
for {set i 0} {$i < $val(nn)} {incr i} {
$ns_ initial_node_pos $node_($i) 40
}
#-----Tell all nodes when the simulation ends.
for {set i 0} {$i<$val(nn)} {incr i} {
$ns_ at 100.0 "$node_($i) reset";
}
for {set i 0} {$i<$val(bs)} {incr i} {
$ns_ at 100.0 "$BS_($i) reset";
}
$ns_ at 100.0 "stop"
$ns_ at 100.01 "puts \"NS EXITING...\"; $ns_ halt"
proc stop {} {
global ns_ tracefd
$ns_ flush-trace
close $tracefd
exec nam /home/wire_wireless.nam &
exit 0
}
#-----Informative headers for CMUTracefile.
puts $tracefd "M 0.0 nn $val(nn) x $val(x) y $val(y) rp \ $val(rp)"
puts $tracefd "M 0.0 prop $val(prop) ant $val(ant)"
puts "Starting Simulation..."
$ns_ run

223

TI LIU THAM KHO


[1] Nguyn Lm Cao Nguyn, Giao thc TCP trong mng khng dy, bn tho
lun vn thc s, HKHTN tpHCM, thng 12 , nm 2003.
[2] Nguyn Mu Tun, Trng L Minh Ngc, Cao ng Tn, gio trnh Mng
my tnh khng dy k thut, thit k v ci t, Trung Tm tin hc H KHTN,
2005.
[3] Tarek HelmiAbd El-Nabi,Ali Ahmed, Modeling and Simulation of a routing
protocol for Ad Hoc networks combining queuing network analysis and ANT
colony algorithms, Masters Thesis, April, 2005.
http://hvg.ece.concordia.ca/Publications/Thesis/Tarek-Thesis.pdf
[4] Samba Sesay, Zongkai Yang and Jianhua He, A Survey on Mobile Ad Hoc
Wireless Network, Asian Network for Scientific Information, Information
Technology Journal 3 (2), 2004, pp: 168-175 .
http://www.ansinet.org/fulltext/itj/itj32168-175.pdf
[5] Paul Meeneghan and Declan Delaney, An Introduction to NS, Nam and OTcl
scripting, National University of Ireland, Technical Report, May, 2004.
http://www.cs.nuim.ie/research/reports/2004/nuim-cs-tr-2004-05.pdf
[6] Hung-ying Tyan, Design, Realization and evaluation of a component-based
compositional software architecture for network simulation , PhD Thesis, Ohio
State University, 2002.
http://www.j-sim.org/whitepapers/tyan_thesis.pdf
[7] Charles E.Perkins, Elzabeth B.Royer, Samir R.Das, Ad-hoc On-Demand
Distance Vertor (AODV) Routing, RFC 3561, July 2003.
http://www.faqs.org/rfcs/rfc3561.html
[8] Alex Song, Ad hoc Multihop Wireless Networking, thesis, June 2001.
http://piconet.sourceforge.net/thesis/progressreport.pdf
[9] Guoyou He, Destination-Sequenced Distance Vector (DSDV) Protocol,
technical report, December 2, 2003

224

http://wiki.uni.lu/secan-lab/destination-sequenced-distance-vector2.pdf
[10] David B.Johnson,Routing in Ad Hoc Networks of Mobile Hosts, Proceedings
of IEEE Workshop on Mobile Computing Systems and Applicayions, December
1994.
http://www.ics.uci.edu/%7Eatm/adhoc/paper-collection/johnson-routing-adhoc94.pdf
[11] Tomasz Imielinski, Hank Korth, Mobile Computing, Kluwer Academic
publisher, 1996.
[12] S.Kannan, John E.Mellor, D.D.Kouvatsos, Investigation of Distance Vector
Routing for Mobile Ad hoc Networks, PGNet, 2003.
http://www.cms.livjm.ac.uk/pgnet2003/submissions/Paper-24.pdf
[13] Vinccent D.Park, M. Scott Corson, A Highly Adaptive Distributed Routing
Algorithm for Mobile Wireless Networks, IEEE Computer Society, April 1997.
http://lambda.cs.yale.edu/cs425/doc/tora.pdf
[14] Theodoros Salonidis, Scalable Route Caching Methods for Networks with
Many Mobile Nodes, Masters Thesis, August 1999.
http://www-ece.rice.edu/~thsalon/publications/MS-thesis.pdf
[15] E. Royer and Chai-Keong Toh, "A Review of Current Routing Protocols
for Ad-Hoc Mobile Wireless Networks", IEEE Personal Communications
Magazine, April 1999, pp. 46-55.
http://www.eecs.harvard.edu/~mdw/course/cs263/fa04/papers/royerieeepc99.pdf
[16] Alberto Medina, Anukool Lakhina, Ibrahim Matta, John Byers,BRITE:
Universal Topology Generation from a Users Perspective, report, April 2001.
http://www.cs.bu.edu/techreports/pdf/2001-003-brite-user-manual.pdf
[17] Kevin Fall, Kannan Varadhan, The ns Manual, report, May 2005.
http://www.isi.edu/nsnam/ns/ns-documentation.html

225

[18] Tony Dongliang Feng, Rob Ballantyne, Ljiljana Trajkovic, Implementation of


BGP in a Network Simulator, Applied Telecomunacations Symposium, April 18-22,
2004.

http://www.ensc.sfu.ca/~ljilja/papers/ASTC2004.pdf
[19] Andreas Hartl, DMLEditor, report manual.
http://www.net.informatik.tu-muenchen.de/software/DMLEditor.pdf
[20] Andy T. Ogielski, Scalable Modeling & Simulation of Internet Monitoring
Infrastructure, Leiden Workshop, Sept 12.2000.
http://www.renesys.com/projects/leiden/Ogielski-Leiden2000.pdf
[21] James H. Cowie, Scalable Simulation Framework API Reference Manual
version 1.0, Documentation Draft, March 25,1999.
http://www.ssfnet.org/SSFdocs/ssfapiManual.pdf
[22] Sameh Ibraheem, Network Simulation Using The Scalable Simulation
Framework (SSFNet), SSFNet manual, May 2003.
http://www.cs.sunysb.edu/~kostas/mpls/ssfnet_intro.pdf
[23] Dirk Jacob, The Scalable Simulation Framework and SSF network models,
seminar
[24] Thng tin v SSFNet http://www.ssfnet.org
[25] Thng tin v NS-2 http://www.isi.edu/nsnam/ns/
[26] Thng tin v BRITE http://www.cs.bu.edu/brite/

226

Вам также может понравиться