You are on page 1of 256

VNTELECOM.

ORG ADNET NETSIM

M PH NG TRONG NS-2

TI LI U THAM KH O LNH V C M PH NG V NG D NG

D ch thu t b i: Nhm TE Bin t p b i: Nhm CM

H N i 12 - 2009

N i dung trong ti li u ny c l y t m t s sch tham kh o v cc bi bo khoa h c. Vi c th c hi n ti li u ny l Phi L i Nhu n nn chng ti khng ti n hnh cc th t c v b n quy n. N u c nhn/t ch c no sao chp n i dung ti li u ny vo cc s n ph m thng m i th trch nhi m th c thi v n b n quy n thu c v c nhn/t ch c . y l m t ti li u mi n ph. B n hon ton c th phn ph i l i cho nh ng ng i s d ng khc ho c c th ch nh s a cho ph h p. Ti li u ny c pht hnh v i hy v ng r ng n s tr nn h u ch, nhng n KHNG KM THEO B T K S B O M NO, ngay c nh ng m b o ng m hi u v vi c thng m i ho hay ph i ph h p v i m t ch c th no (v n ny b n c th tham kh o gi y php GNU General Public License bi t thm chi ti t) Ti li u ny c ti t ng h p v nh d ng l i t cc b n d ch. Trong qu trnh nh d ng, ti c g ng s a cc l i nh: tham chi u cc ph n, l i chnh t , thi u d u ... nhng c th cn b st. Trong tr ng h p b n c pht hi n c l i, cc b n hy g i th v a ch li u ny. Cc l i ny s c s a i trong phin b n k ti p cu i ti

NetSim VNtelcom.orgTM AdNet

T p hai: M ph ng trong NS-2

One Edition

Xin c trch d n m t cu trong cu n sch "The Last Lecture", tc gi cu n sch lm vi c t i tr ng i h c Carnegie Mellon (CMU). L do trch d n xin m i b n c tm hi u ...!

"... Chng ta khng i c nh ng qun bi chia, ch c th i cch chi nh ng qun bi ..."


The Last Lecture by Randy Pausch Carnegie Mellon University

L i ni u

K t khi ban qu n tr di n n vntelecom.org thnh l p nhm AdNet cho t i nay c hn m t nm. T khi thnh l p nhm pht ng d n NETSIM D n bin t p ti li u m ph ng b ng ti ng Vi t. n thng 04/2009 nhm hon thnh t p m t c a d n, ti li u c tn l - "L thuy t chung v m ph ng". T p m t c cng b chnh th c trn di n n vntelecom.org. Sau khi hon thnh t p m t, nhm ti p t c pht tri n d n v i m c tiu l hon thnh t p hai: M ph ng trong NS-2. Sau nhi u l n tr hon v nh ng l do khc nhau, n thng 12-2009 nhm hon thnh t p hai. t p m t chng ti bin d ch v gi i thi u v i b n c nh ng khi ni m t ng quan trong m ph ng. Nh ng khi ni m v nh gi hi u nng, cc l i th ng g p khi m ph ng, cc k thu t m ph ng, nguyn l v m ph ng, gi i thi u v m ph ng r i r c trong h th ng m ng my tnh v m ng vi n thng. Ngoi ra cn c p n vi c so snh v nh gi cc chng trnh m ph ng ph bi n hi n nay. Nh v y, n i dung trong t p m t l n n t ng nh ng ng i quan tm n lnh v c m ph ng c th tm hi u. ng th i n l c s b n c tm hi u cc v n c c p trong t p hai. Nh ng v n ny th ng hay b b qua i v i nh ng ng i m i tm hi u. Trong t p hai, chng ti gi i thi u v i b n c m t b cng c m ph ng c th - l b cng c m ph ng NS-2-allinone. Trong ti li u ny g i t t l NS-2. L do chng ti ch n NS-2 n gi n l y l b m ph ng m ngu n m , mi n ph v i ng i dng. N l b cng c m ph ng m nh, c c ng ng m ng s d ng ph bi n kh p ni trn th gi i, th m ch c nh ng di n n chuyn v chng. B m ph ng ny ph h p v i cc i t ng sinh vin, nghin c u sinh. Thng tin chi ti t c trnh by chng 1 c a cu n ny.

M c ch c a vi c d ch ti li u xy d ng n i dung cho t p hai, chng ti l a ch n v bin d ch t cc ti li u [1] [2] [3] [4], y l nh ng ti li u khng th thi u c v i nh ng ai ang v s tm hi u v m ph ng. S d nhm ti n hnh d n bin d ch ny l ph bi n NS-2 t i cc b n sinh vin, cc nghin c u sinh.... Ngoi ra cc b n m i tm hi u 4

v c nh tm hi u rt ng n c th i gian ti p c n. m bo tnh chnh xc v cc v n b n quy n, chng ti a thng tin v ngu n g c c a b n g c b n c l a ch n d ch u m i chng. N u c m th y cha an tm v i b n d ch cc b n c th tham kh o tr c ti p cc b n g c.

N i dung cc chng trong t p hai T chng 1 t i chng 4 gi i thi u t ng quan v NS2, cc thnh ph n trong NS2, gi i thi u v hai ngn ng chnh c s d ng trong NS-2 l TCL v C++, m t v file v t sau khi ch y m ph ng. . Hi u v n m ch c cc ph n ny b n c s s d ng NS-2 c t t hn. cc b n m i tm hi u h ng th hn v i NS-2, chng ti trnh by trong chng 5 m t tutorial h ng d n b n c c th t o c m t chng trnh n gi n u tin. c bi t, chng 5 cn cung c p m ngu n c a cc chng trnh m u, b n c c th t i v , ch y th v quan st k t qu . Chng 6, 7, 8,9 cung c p cho b n c ki n th c v cc k thu t m t v giao th c truy n t i TCP, UDP, m t v TCP/IP trong NS, lo i b ng u nhin s m. y l cc k thu t c b n p d ng vo m t chng trnh c th . T chng 10 n chng 14 gi i thi u v i b n c chi ti t hn v cc m-dun m ph ng ph bi n. N i dung c a t ng chng c t p trung lm sng t cc v n t l thuy t cho n lc p d ng vo m hnh m ph ng. N i dung cc chng ny c th ni m c nng cao hn, ph h p v i nh ng sinh vin nm cu i. Nh ng ng i lm ti t t nghi p c th tham kh o ph c v cho bo co c a mnh. i n hnh l: Chng 10: M ph ng m ng LAN. Chng 11: M ph ng MPLS [4] Chng 12: M ph ng hng i. Chng 13: M ph ng trong m ng di ng. Chng 14: M ph ng m ng v tinh. V i hn 200 trang ti li u, khng qu di m cng khng qu ng n. Nhm bin so n hi v ng s cung c p cho b n c nh ng trang ti li u b ch. D a vo y b n c c th ti p c n, k th a, pht tri n v sng t o ra cc k ch b n m ph ng. N u kh nng c th vi t c cc m-dun d a trn NS2. t o ra ti li u ny cc nhm lm vi c s d ng nh ng ti n ch c cung c p trn m ng internet, g n k t v lin l c v i nhau. Cc nhm c t ch c theo quy trnh: l a ch n ti li u, d ch, bin t p, nh d ng v xu t b n. Thng tin nhm cc b n c th tham kh o ph n cu i cng c a ti li u. 5

V i tinh th n t nguy n, ch ng v khng ng ng h c h i gip chng ti hon thnh ti li u ny. S n ph m ny l cng s c chung c a c nhm, nhn y ban bin t p chn thnh cm n s c ng tc c a cc c nhn, cc sinh vin, cc th y c t cc tr ng i h c, ng th i xin c g i l i cm n t i ban qu n tr di n n vntelecom.org t o ra sn chi ny, y l m t sn chi th c s b ch v i nh ng ng i quan tm n lnh v c m ng vin thng ni ring v truy n thng ni chung. Cu n sch ny c thnh vin trong nhm NETSIM nh d ng v hi u ch nh. Trong qu trnh lm vi c c g ng h t kh nng th hi n ti li u c khoa h c nh t, trong qu trnh nh d ng ch nh s a l i cc ph n tham kh o, cc ch thch theo b n g c, m t s ch ng i d ch khng a vo b n d ch. Do khi c ti li u ny cc b n c th tham kh o cng v i b n g c n u c kh nng Anh vn t t. c bi t, vi c th ng nh t cc thu t ng r t c n b n c v nh ng ng i c kinh nghi m gp thm. Trong phin b n t i, nhm s b xung cc thi u st (thu t ng , l i chnh t , c php cu, vi t ha hnh nh . . . ), b xung cc m-dun m ph ng WiMax, m ph ng WDM, m ph ng SDR. . . Vi c ci t NS-2 c r t nhi u ti li u v h ng d n b ng ti ng Vi t cc b n c th tham kh o t m ng internet, chng ti khng a vo trong ti li u ny.

M i ki n ng gp b n c c th g i v th i n t c a nhm: adnet@ vntelecom. org ban bin t p s ti p nh n, s a ch a v b xung k p th i. Ngy 24 thng 12 nm 2009 Tc gi

Nhm bin so n

M cl c
L i ni u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M c l c ..................................................... Danh sch hnh v . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Danh sch b ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Nh ng t vi t t t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chng 1. Gi i thi u v NS-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1. Khi ni m t ng quan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2. T ng quan v m ngu n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3. L p Tcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.1. t c m t tham chi u v i v d v l p Tcl . . . . . . . . . . . . . . . . . . . . . 1.3.2. D n ch ng v cc th t c c a OTcl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3.3. Truy nh p cc k t qu n/t trnh thng d ch . . . . . . . . . . . . . . . . . . . . 1.3.4. Thot v bo co l i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3.5. Cc hm hash trong trnh thng d ch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3.6. Cc ho t ng khc trn trnh thng d ch . . . . . . . . . . . . . . . . . . . . . . . . .

4 7 16 18 19 21 22 23 24
24 25 26 26 27 27

1.4. L p TclObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.1. T o v hu cc TclObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4.2. S rng bu c bi n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4.3. Bm v t bi n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4.4. Cc phng th c command: nh ngha v g i ra . . . . . . . . . . . . . . . . . .

28
29 31 33 35

1.5. L p TclClass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.1. Lm th no rng bu c cc bi n thnh vin l p C++ tnh . . . . . .

37
39

1.6. L p Tcl Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.7. L p EmbeddedTcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.8. L p InstVar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chng 2. C b n v TCL v OTCL . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1. T ng quan v NS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. L p trnh Tcl v Otcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chng 3. Cc thnh ph n c b n trong b m ph ng NS . . . . . . 3.1. Kh i t o v k t thc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2. nh ngha m t m ng cc lin k t v cc nt . . . . . . . . . . . 3.3. Tc nhn v ng d ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.1. FTP trn n n TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.2. CBR qua UDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.3. UDP v i cc ngu n lu l ng khc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

41 43 44 46 46 47 53 54 56 58
59 60 61

3.4. L p l ch s ki n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5. Hi n th : dng NAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6. Bm v t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


3.6.1. Bm cc i t ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6.2. C u trc c a cc file bm v t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

61 65 67
67 67

3.7. Bi n ng u nhin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.7.1. H t nhn (hay gi tr ban u c a m t bi n ng u nhin)v b t o . 3.7.2. T o cc bi n ng u nhin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

69
70 70

Chng 4. Lm vi c v i file trace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1. X l file d li u v i cng c awk . . . . . . . . . . . . . . . . . . . . . . 4.2. S d ng grep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3. X l cc file d li u v i perl . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4. V th v i gnuplot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5. V th v i xgraph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

73 74 75 76 78 79

4.6. Trch tch thng tin trong m t k ch b n tcl . . . . . . . . . . . . . 4.7. Minh h a m t s file awk v gnuplot . . . . . . . . . . . . . . . . . . .
4.7.1. Tnh thng l ng c a m ng theo hai ki u file trace . . . . . . . . . . . . . . . . 4.7.2. M u v th thng l ng v a tnh xong b ng file awk . . . . . . . . . . . .

80 80
80 82

4.8. M t s file hnh plot v b ng gnuplot . . . . . . . . . . . . . . . . . . . Chng 5. NS Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1. K ch b n Tcl u tin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.1. B t u nh th no . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.2. Hai node, m t lin k t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.3. G i d li u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

82 84 84
85 86 87

5.2. Topo trong NS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


5.2.1. T o topo trong NS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.2. T o cc s ki n. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.3. nh nhn cho lu ng d li u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.4. Gim st hng i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

88
88 89 91 91

5.3. M ng c tnh ch t ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.1. T o m t Topo l n hn. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3.2. Lin k t l i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

92
93 94

Chng 6. M ph ng v m t TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . 6.1. M t TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


6.1.1. Cc m c ch c a TCP v i u khi n lu ng theo c ch c a s . . . . . 6.1.2. Cc b n tin xc nh n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.3. C a s ch ng t c ngh n ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.4. M t cc gi tin v ng ng Wth ng: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.5. Kh i t o k t n i. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

96 97
97 97 99 99 100

6.2. Qu trnh bm v t v phn tch v d Ex1.tcl . . . . . . . . . . 6.3. TCP trn lin k t nhi u v vi c gim st hng i . . . . . 6.4. T o nhi u k t n i v i cc c tnh ng u nhin . . . . . . . . . 6.5. Cc k t n i TCP ng n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

100 101 107 111

6.6. Cc cng c gim st tin ti n: . . . . . . . . . . . . . . . . . . . . . . . . 6.7. Bi t p. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chng 7. nh tuy n v m ng di d ng . . . . . . . . . . . . . . . . . . . . . . . 7.1. B t u nh th no . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2. M ng ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3. Cc giao th c nh tuy n multicast (PIM) . . . . . . . . . . . . .
7.3.1. Ch Dense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3.2. nh tuy n d a trn i m RP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

119 124 126 127 130 130


131 132

7.4. nh tuy n d a trn i m RP . . . . . . . . . . . . . . . . . . . . . . . . .


7.4.1. Ch DM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.4.2. nh tuy n v i i m RV t p trung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

132
135 136

7.5. Kh o st m ph ng pimdm.tcl . . . . . . . . . . . . . . . . . . . . . . . . 7.6. Bi t p. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chng 8. Lo i b ng u nhin s m . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1. M t RED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2. Thi t t cc tham s RED trong ns . . . . . . . . . . . . . . . . . . 8.3. Cc v d v m ph ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.3.1. B m lo i Drop-Tail (B ng ui) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3.2. B m RED v i c u hnh tham s t ng . . . . . . . . . . . . . . . . . . . . . . 8.3.3. B m RED v i cc tham s khc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

138 138 140 140 142 143


143 148 153

8.4. Gim st cc lu ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.5. Bi t p. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chng 9. Cc d ch v phn bi t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.1. M t chuy n ti p c m b o c a Diffserv . . . . . . . . . . . . 9.2. Cc router MRED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.2.1. M t chung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.2.2. C u hnh MRED trong ns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.2.3. Truy v n TCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

154 161 162 163 164


164 164 165

10

9.3. nh ngha cc chnh sch . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


9.3.1. nh ngha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.3.2. C u hnh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

166
166 167

9.4. M ph ng Diffserv: b o v cc gi tin d b t n cng . .


9.4.1. K ch b n m ph ng nh ngha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

168
168

9.5. K t qu m ph ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.6. Th o lu n v k t lu n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.7. Bi t p. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chng 10. M ph ng m ng LAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.1. C s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2. M ph ng m ng LAN v i ns: . . . . . . . . . . . . . . . . . . . . . . . . . Chng 11. M ph ng m ng cho MPLS (MNS) . . . . . . . . . . . . . . . 11.1. Gi i thi u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2. Gi i thi u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.2.1. M c ch v ph m vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2.2. M hnh khi ni m c a MNS h tr QoS . . . . . . . . . . . . . . . . . . . . . . . .

177 178 179 180 180 182 184 185 185


185 186

11.3. Thi t k v thi hnh v i MNS . . . . . . . . . . . . . . . . . . . . . . . .


11.3.1. Chuy n m ch nhn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3.2. Chuy n m ch nhn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3.3. S ginh tr c ti nguyn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3.4. M c l p - Class Level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3.5. Mi tr ng th c thi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

187
187 188 189 190 190

11.4. Cc v d m ph ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.4.1. M ph ng lu l ng QoS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.4.2. M ph ng s u tin tr c ti nguyn . . . . . . . . . . . . . . . . . . . . . . . . . . .

191
191 192

11.5. K t lu n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

193

11

Chng 12. M ng di ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.1. Cc thu t ton nh tuy n . . . . . . . . . . . . . . . . . . . . . . . . . . .


12.1.1. Vector kho ng cch theo th t ch DSDV . . . . . . . . . . . . . . . . . . . . 12.1.2. Vector kho ng cch theo yu c u c bi t AODV . . . . . . . . . . . . . . 12.1.3. nh tuy n ngu n ng DSR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.1.4. Thu t ton nh tuy n t ch t m th i TORA . . . . . . . . . . . . . . .

195 197
197 198 198 199

12.2. M ph ng m ng di ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.2.1. K ch b n m ph ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.2.2. Vi t m t tcl script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

200
200 201

12.3. nh d ng file v t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.4. Phn tch k t qu m ph ng . . . . . . . . . . . . . . . . . . . . . . . . . 12.5. So snh v i nh tuy n ad-hoc khc . . . . . . . . . . . . . . . . . .
12.5.1. TCP qua DSR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.5.2. TCP qua AODV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.5.3. TCP qua TORA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.5.4. M t vi bnh lu n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

203 207 208


208 210 210 211

12.6. S tc ng c a TCP t i giao th c MAC . . . . . . . . . . . . .


12.6.1. B i c nh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.6.2. K ch b n m ph ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.6.3. Cc k t qu m ph ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.6.4. Thay i cho NS v i tr ng h p n > 2 . . . . . . . . . . . . . . . . . . . . . . . . . .

211
211 213 216 219

Chng 13. Hng i c i n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.1. M ph ng hng i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.2. Hng i h u h n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chng 14. M ng v tinh trong NS . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.1. T ng quan v cc m hnh v tinh . . . . . . . . . . . . . . . . . . . .
14.1.1. V tinh a tnh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.1.2. Cc v tinh LEO (Cc v tinh qu o th p) . . . . . . . . . . . . . . . . . . . .

220 220 223 226 227


228 228

12

14.2. S d ng cc tnh nng m r ng cho v tinh . . . . . . . . . .


14.2.1. Nt m ng v v tr c a nt m ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.2.2. ng truy n v tinh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.2.3. Chuy n giao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.2.4. nh tuy n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.2.5. H tr bm v t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.2.6. Cc m hnh l i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.2.7. Cc l a ch n c u hnh khc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.2.8. M ph ng h tr NAM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.2.9. Tch h p v i m h u tuy n v v tuy n . . . . . . . . . . . . . . . . . . . . . . . . . 14.2.10. Cc t p l nh v d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

230
230 233 235 237 239 240 240 240 241 242

14.3. Th c hi n ph n m r ng m ph ng v tinh . . . . . . . . . .
14.3.1. S d ng cc danh sch lin k t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.3.2. C u trc nt m ng. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.3.3. Cc chi ti t v ng truy n v tinh. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

243
243 244 245

14.4. Commands at a glance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ti li u tham kh o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Thng tin nhm bin so n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

247 252 252

13

Danh sch hnh v


3.1 3.2 3.3 3.4 3.5 4.1 4.2 Knh truy n n cng . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 V d v m t m ng n gi n . . . . . . . . . . . . . . . . . . . . . . . . . 58 Giao di n h a NAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Bm cc i t ng trong m t knh truy n n cng . . . . . . . . . . . . 67 Cc tr ng xu t hi n trong m t trace . . . . . . . . . . . . . . . . . . . . 67 Probability Distribution Fuction of BS queue delay rtPS - Nontokenbucket - Nonmobility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Evaluation of throughphut performance in downlink WiMAX with PF scheduler (Nonmonbility Tokenbucket) . . . . . . . . . . . . . . . . . . . 83 T o k t n i gi a n0 v n1 . . . . . . . . . . . . . . . . . . . . . . . . . . 86 G i d li u gi a n0 v n1 . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Topo c a o n m g m 4 nt . . . . . . . . . . . . . . . . . . . . . . . . 89 Mu s c cc lu ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Gim st hng i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Cn b ng trong gim st hng i . . . . . . . . . . . . . . . . . . . . . . 92 M hnh g m 7 nt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Minh h a lin k t b l i . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Lu l ng truy n theo nt 6, 5, 4 . . . . . . . . . . . . . . . . . . . . . . 95 Thng l ng k t n i TCP . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Kch th c c a s TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 V d rdrop.tcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Kch th c c a s TCP v i 20% gi tin m t ng u nhin . . . . . . . . . . 106 Kch th c c a s TCP v i 20% gi tin m t ng u nhin: phng to . . 106 C a s TCP khi t l m t gi l 0 . . . . . . . . . . . . . . . . . . . . . . 106 V d v m ng v i m t s k t n i TCP . . . . . . . . . . . . . . . . . . . 108 Kch th c hng i trong v d shortTcp.tcl . . . . . . . . . . . . . . . . 118 14

5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8

6.9

Kch th c hng i trong v d shortTcp.tcl khi s k t n i b gi i h n . 118 . . . . . . . . . 119

6.10 S l ng k t n i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 6.11 Bng thng c s d ng trong giai o n ngh n c chai 7.1 7.2 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9

V d v nh tuy n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 V d v nh tuy n multicast . . . . . . . . . . . . . . . . . . . . . . . . 133 Thi t l p m ng cho vi c nghin c u RED . . . . . . . . . . . . . . . . . . 144 S tng kch th c hng i . . . . . . . . . . . . . . . . . . . . . . . . . 148 Kch th c c a s c a t t c cc phin k t n i TCP . . . . . . . . . . . . 148 S ti n tri n c a kch th c hng i trung bnh t c th i . . . . . . . . . 149 S ti n tri n c a kch th c hng i trung bnh t c th i phng to . . . 149 Kch th c c a s c a tc c cc phin k t n i TCP cho b m RED v i cc c u hnh tham s t ng . . . . . . . . . . . . . . . . . . . . . . 150 S thay i v kch th c hng i . . . . . . . . . . . . . . . . . . . . . 154 Kch th c hng i c a t t c cc phin k t n i cho b m RED . . . 154 S ti n tri n c a kch th c hng i v gi tr trung bnh c a n . . . . 161

8.10 S ti n ha c a kch th c hng i v gi tr trung bnh c a n c phng to) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 8.11 S cc phin k t n i tch c c theo th i gian . . . . . . . . . . . . . . . . . 161 9.1 9.2 Topo m ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 S ti n ha c a t ng s phin . . . . . . . . . . . . . . . . . . . . . . . . 178

10.1 V d m ng LAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 11.1 M hnh khi ni m c a MNS . . . . . . . . . . . . . . . . . . . . . . . . . 187 11.2 Ki n trc nt MPLS v i chuy n m ch nhn . . . . . . . . . . . . . . . . 188 11.3 X l lu l ng QoS MPLS c a nt v link MPLS . . . . . . . . . . . . . 189 11.4 Qu trnh ginh tr c ti nguyn c a nt v link MPLS . . . . . . . . . 189 11.5 M c l p trong MPLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 11.6 M ng MPLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 11.7 M l p l ch s kin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 11.8 S bi n i lu l ng bng thng . . . . . . . . . . . . . . . . . . . . . . 192 11.9 M l p l ch s ki n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 11.10K t qu c a m l p l ch s ki n . . . . . . . . . . . . . . . . . . . . . . . 193 12.1 V d v m t m ng ad-hoc 3 i m . . . . . . . . . . . . . . . . . . . . . . 201

15

12.2 Kch th c c a s TCP trong k ch b n 3 nt m ng v i giao th c nh tuy n DSDV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 12.3 Kch th c c a s TCP trong k ch b n 3 nt m ng v i giao th c nh tuy n DSDV v i k t n i qua v khng qua trung gian) . . . . . . . . . . 208 12.4 TCP trong k ch b n 3 nt m ng v i giao th c nh tuy n DSDV, th i i m 124.14 giy, k t n i tr c ti p . . . . . . . . . . . . . . . . . . . . . . 208 12.5 TCP trong k ch b n 3 nt m ng v i giao th c nh tuy n DSDV, th i i m 58 giy, k t n i qua 1 trung gian . . . . . . . . . . . . . . . . . . . 208 12.6 Kch th c c a s c a k t n i TCP qua DSR . . . . . . . . . . . . . . . . 209 12.7 Kch th c c a s c a k t n i TCP qua AODV . . . . . . . . . . . . . . 209 12.8 Kch th c c a s c a k t n i TCP qua TORA v i 4 nt m ng . . . . . . 210 12.9 TCP qua AODV v i gi tr l n c a kch th c c a s l n nh t . . . . . . 210 12.10TCP qua TORA v i 4 nt m ng, i m th i gian 33 . . . . . . . . . . . . 211 12.11TCP qua Tora v i 4 nt m ng. i m th i gian 56 . . . . . . . . . . . . . 211 12.12Chu i topo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 12.13S gi tin/giy i v i n = 9 nh m t ch c nng c a kch c c a s l n nh t216 12.14S gi tin/giy i v i n = 20 nh m t ch c nng c a kch c c a s l n nh t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 12.15: S gi tin/giy i v i n = 30 nh m t ch c nng c a kch c c a s l n nh t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 12.16Ti n trnh c a kch th c c a s cho TCP chu n v i kch th c c a s l n nh t l 2000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 12.17Ti n trnh c a kch th c c a s cho DelAck TCP v i d = 3 v kch th c c a s l n nh t l 2000 . . . . . . . . . . . . . . . . . . . . . . . . 217 12.18Ti n trnh c a kch th c c a s cho TCP chu n v i 9 nt m ng v kch th c c a s l n nh t l 3 . . . . . . . . . . . . . . . . . . . . . . . 218 12.19Tc ng c a kho ng th i gian tr ACK t i s gi tin TCP g i c, nh l m t ch c nng c a kch th c c a s l n nh t. d=3 . . . . . . . . 218 13.1 S m r ng kch c c a hng i M/M/1 . . . . . . . . . . . . . . . . . . 223 14.1 V d c a m t chm sao LEO qu o c c . . . . . . . . . . . . . . . . . 229 14.2 H th ng t a hnh c u dng cc nt m ng v tinh . . . . . . . . . . . 231 14.3 Cc thnh ph n chnh c a giao di n m ng v tinh . . . . . . . . . . . . . 234 14.4 B sung danh sch ng truy n trong ns . . . . . . . . . . . . . . . . . 243 14.5 C u trc c a l p SatNode . . . . . . . . . . . . . . . . . . . . . . . . . . 245 14.6 Chi ti t c t ngn x p giao di n c a m ng . . . . . . . . . . . . . . . . 246

16

Danh sch b ng
2.1 2.2 2.3 2.4 3.1 3.2 3.3 3.4 3.5 3.6 4.1 4.2 4.3 4.4 4.5 6.1 6.2 6.3 6.4 7.1 7.2 7.3 8.1 8.2 Chng trnh Tcl th c hi n cc php ton . . . . . . . . . . . . . . . . . 49 Chng trnh Tcl tnh ton cc s nguyn t . . . . . . . . . . . . . . . . 50 Chng trnh Tcl tnh giai th a c a m t s . . . . . . . . . . . . . . . . . 51 Chng trnh Tcl n gi n s d ng i t ng real v integer . . . . . . . 52 nh ngha cc nt, knh truy n v gn kch c hng i . . . . . . . . . 57 nh ngha m t ng d ng FTP s d ng tc nhn TCP . . . . . . . . . . 58 nh ngha m t ng d ng CBR s d ng tc nhn UDP . . . . . . . . . . 60 Chng trnh ex.tcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 N i dung c a m t file bm v t (trace file) . . . . . . . . . . . . . . . . . 69 Ki m tra cc bi n ng u nhin phn b Pareto v i cc seed khc nhau . . 72 awk script tnh gi tr trung bnh c a c t 4 c a m t file . . . . . . . . 74 awk script tnh gi tr l ch chu n c a c t 4 c a m t file . . . . . . 74 M t o n m awk s d ng m ng tnh trung bnh v l ch chu n . . 75 M t o n m tnh t ng cc c t . . . . . . . . . . . . . . . . . . . . . . . 75 M t o n m tnh thng l ng . . . . . . . . . . . . . . . . . . . . . . . 77 nh ngha m t ng d ng FTP s d ng tc nhn TCP . . . . . . . . . . 106 o n m ex3.tcl i v i m t s k t ni TCP c nh tranh . . . . . . . . . 111 o n m shortTcp.tcl i v i m t s k t ni TCP ng n . . . . . . . . . . 118 o n m shortTcp.tcl i v i m t s k t ni TCP ng n . . . . . . . . . . 124 K ch b n tcl cho nh tuy n tnh v ng(ex2.tcl) . . . . . . . . . . . . . 129 V d cho multicast v i m hnh DM: pimdm.tcl . . . . . . . . . . . . . . 135 V d cho multicast v i m hnh i m RV: bts.tcl . . . . . . . . . . . . . 138 o n m tcl droptail.tcl . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 o n m tcl droptail.tcl . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

17

8.3 9.1 9.2 9.3

K ch tcl shortRed.tcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 o n m Diffs.tcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 B o v cc gi tin d b t n thng nh m t hm c a CIR . . . . . . . . 177 Th i gian trung bnh c a mt phin theo hm CIR . . . . . . . . . . . . 177

12.1 K ch b n "wrls-dsdv.tcl" cho TCP ttrn m t m ng ad-hoc . . . . . . . . 207 12.2 K ch b n tcpwD.tcl cho TCp qua m t m ng ad-hoc tnh v i chu i topo . 215 12.3 S l ng gi tin g i c trong kho ng th i gian 149 giy v i n=3 nh m t ch c nng c a kch th c c a s l n nh t . . . . . . . . . . . . . . . 219 13.1 K ch b n tcl mm1.tcl m ph ng hng i MM1 . . . . . . . . . . . . . 222 13.2 K ch b n tcl mm1k.tcl m ph ng hng i MM1. . . . . . . . . . . . . . 225

18

Nh ng t vi t t t
AODV CDMA CIR CTS CR-LDP CR-LSP CSMA/CD Diffserv ED ERB FDDI FDMI FTP IEEE Intserv IP LAN LDP LIB LSP LSR MAC MPLS MRED NAM NS NS 2 PFT PHB QoS RED RFC RR Ad hoc On Demand Distance Vector Code Division Multiple Access Committed Information Rate Clear to Send Constraint-based Label Distribution Protocol Constraint-based routed label switched path Carrier Sense Multiple Access with Collision Detect Differentiated Services Early Drops Explicit Route information Base Fiber Distributed Data Interface Frequency Division Multiple Access File Transfer Protocol Institute of Electrical and Electronics Engineers Integrated Service Internet Protocol Local Area Network Label Distribution Protolcol Label Information Table Label Switch Path Label Switch Router Medium Access Control Multiprotocol Label Switching Multi RED Network Animator Network Simulaton Network Simulaton version 2 Partial Forwarding Table Per Hop Behavior Quality of service Random Early Detection Request for Comments Round Robin 19

TCP TDMA UDP UMTS VINT WIRR

Transmission Control Protocol Time Division Multiple Access User Datagram Protocol Universal Mobile Telecommunications System Virtual InterNetwork Testbed Weighted Interleaved Round Robin

20

Chng 1 Gi i thi u v NS-2


M cl c
1.1. Khi ni m t ng quan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2. T ng quan v m ngu n . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3. L p Tcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3.1. t c m t tham chi u v i v d v l p Tcl . . . . . . . . . . . 1.3.2. D n ch ng v cc th t c c a OTcl . . . . . . . . . . . . . . . . . . . . . . 1.3.3. Truy nh p cc k t qu n/t trnh thng d ch . . . . . . . . . . 1.3.4. Thot v bo co l i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3.5. Cc hm hash trong trnh thng d ch . . . . . . . . . . . . . . . . . . . . 1.3.6. Cc ho t ng khc trn trnh thng d ch . . . . . . . . . . . . . . . 1.4. L p TclObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4.1. T o v hu cc TclObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4.2. S rng bu c bi n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4.3. Bm v t bi n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4.4. Cc phng th c command: nh ngha v g i ra . . . . . . . . 1.5. L p TclClass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 1.6. L p Tcl Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.7. L p EmbeddedTcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.8. L p InstVar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 43 44 22 23 24 24 25 26 26 27 27 28 29 31 33 35 37

1.5.1. Lm th no rng bu c cc bi n thnh vin l p C++ tnh

21

Ng i d ch: Nguy n Qu c Huy Bin t p: H T t Thnh. B n g c: The ns Manual, Chapter 3 [1]

1.1. Khi ni m t ng quan

T i sao l i l hai ngn ng ? NS s d ng hai ngn ng b i v b m ph ng c hai ki u cng vi c khc nhau c n ph i lm. M t m t, m ph ng chi ti t cc giao th c yu c u m t ngn ng l p trnh h th ng c th thao tc m t cch hi u qu n cc byte, cc tiu gi, v cc thu t ton tri n khai m c th ch y trn m t t p d li u l n. V i nhi m v ny th t c ch y chng trnh v th i gian xoay vng (g m ch y m ph ng, tm l i, s a l i, bin d ch l i, ch y l i) l t quan tr ng hn. M t khc, m t ph n l n cc nghin c u v m ng bao g m cc tham s ho c cc c u hnh t thay i, hay nghin c u nhanh chng m t s ho t c nh. Trong cc tr ng h p , th i gian l p l i (thay i m u v ch y l i) quan tr ng hn. Khi c u hnh ch y m t l n ( t i th i i m b t u m ph ng), th i gian ch y c a ph n nhi m v ny th t quan tr ng hn. NS p ng c hai yu c u ny v i 2 ngn ng , C++ v OTcl. V i C++ ch y chng trnh nhanh nhng thay i l i ch m hn, i u khi n n ph h p cho vi c

vn te lec om
22

NS l m t b m ph ng h ng i t ng, c vi t b ng ngn ng C++, v i trnh thng d ch OTcL nh l l p v (frontend). B m ph ng ny h tr m t nhnh l p trong C++ ( cn c g i l nhnh c bin d ch compiled hierarchy trong ti li u ny ), v m t nhnh l p tng t trong trnh thng d ch OTcL ( trong ti li u ny g i l nhnh c thng d ch interpreted hierarchy). Hai h th ng ny c m i tng quan kh m t thi t; nhn t pha ng i s d ng th y l m i tng quan m t - m t gi a m t l p nhnh thng d ch v m t l p nhnh bin d ch. Ph n g c c a nhnh ny l l p TcLObject. Ng i dng t o cc i t ng c a b m ph ng m i thng qua b thng d ch; cc i t ng ny c t o s n bn trong trnh thng d ch, v cng c ph n nh b i m t i t ng tng ng trong nhnh bin d ch. Nhnh l p c thng d ch s c thnh l p m t cch t ng thng qua cc phng php c nh ngha trong l p TcLClass. Cc i t ng c t o s n c ph n nh thng qua cc phng php c nh ngha tr ng l p TclObject. C cc nhnh khc trong m C++ v o n m Otcl; nh ng nhnh khc ny khng c ph n nh trong cch c a TclObject.

tri n khai giao th c chi ti t. OTcl ch y ch m hn nhi u nhng c th c thay i r t nhanh (v c th tng tc), v n l t ng cho vi c c u hnh m ph ng. NS (thng qua tclcl) cung c p s k t dnh t o nn cc i t ng v cc bi n trong c hai ngn ng . bi t thm thng tin v t ng v cc ngn ng t o b n v chng trnh phn chia ngn ng , tham kh o tiu c a Ousterhout trong IEEE Computer. Thng tin v chng trnh phn c p phn chia cho m ph ng m ng, xem trang NS[2]. Ngn ng no lm g? C hai ngn ng ct th l a ch n d n n lm tng s cu h i r ng ngn ng no nn c dng cho m c ch g. L i khuyn c b n c a chng ti l dng Otcl : C u hnh, ci t, v cc cng vi c th c hi n m t l n. N u b n c th lm i u g b n mu n b ng vi c thao tc v i cc i t ng c s n trong C++ v dng C++. N u b n s lm b t c th g m yu c u x l m i gi c a m t lu ng. N u b n ph i thay i ho t ng c a m t l p c s n trong C++ b ng nh ng cch m cha t ng c bi t n. V d , cc knh truy n l cc i t ng OTcl m t p h p tr , vi c x p hng, v cc mun c th b m t. N u b n c th s d ng thnh th o cc cng c ny th t t. N u khng, thay vo b n mu n lm i u g ring bi t (m t quy t c x p hng c bi t ho c cc ki u m t mt), th b n c n m t i t ng C++ m i. C nh ng ph n khng r rng: h u h t vi c nh tuy n c th c hi n trong OTcl (m c d thu t ton li Dijkstra trong C++). Chng ta c nh ng b m ph ng HTTP m trong m i lu ng c b t u trong OTcl v qu trnh x l trn m t gi c nh ngha trong C++. i u ny n khi chng ta c 100cc lu ng b t u trn m t giy trong th i gian m ph ng. Ni chung, n u chng ta c n n Tcl nhi u l n trn m t giy, th nn chuy n sang C++.

1.2. T ng quan v m ngu n


Trong ti li u ny, chng ta s d ng t interpreter ng ngha v i trnh thng d ch OTcl. M giao ti p v i trnh thng d ch ny n m trong m t th m c ring, tclcl. Ph n cn l i c a m b m ph ng n m trong th m c ns-2. Chng ta s s d ng k hi u tclcl/hfilei c p n m t ph n hfilei ring bi t trong Tcl. Tng t , chng ta dng k hi u, ns/hfilei gn cho ph n hfilei trong th m c ns-2 . C m t s l ng cc l p c nh ngha trong tclcl/. Chng ta ch t p trung vo l p th 6 c dng trong ns. L p Tcl (ph n 1.3) bao g m cc phng php m 23

m C++ s dng truy c p trnh thng d ch. L p TclObject (ph n 1.4) l l p c b n cho t t c cc i t ng c a b m ph ng m cng c ph n nh vo trong h th ng c p b c c bin d ch. L p TclClass (ph n 1.5) xc nh cc h th ng c p b c l p c bin d ch, v cc phng php cho php ng i dng di n gi i TclObjects. L p TclCommand (ph n 1.6) c s d ng nh ngha cc l nh bin d ch ton c c c b n. L p EmbeddedTcl (ph n 1.7) bao g m cc phng th c t i cc l nh c s n c p cao hn, i u ny lm cho vi c m ph ng c u hnh tr nn d dng hn. Cu i cng, l p InstVar (ph n 1.8) l cc phng php truy c p cc bi n thnh vin c a C++ nh l cac bi n trong OTcl. Cc th t c v cc hm c m t trong chng ny c th c tm th y trong tclcl/Tcl.cc, h, tclcl/Tcl2.cc, tclcl/tcl-object.tcl, v tclcl/tracedvar.cc, h. File tclcl/tcl2c++.c c dng xy d ng ns, v c c p m t cch ng n g n trong chng ny.

1.3. L p Tcl
L p class Tcl tm g n tr ng h p th c c a b thng d ch OTcl, v cung c p cc phng php truy c p v giao ti p v i b thng d ch ny. Cc phng th c c m t trong ph n ny lin quan n ng i l p trnh ns, t c ng i s vi t o n m C++. N cn cho ta cc phng php cho cc ho t ng sau y: t c tham chi u t i Tcl instance. G i ra cc th t c OTcl thng qua b thng d ch. Khi ph c ho c g i l i cc k t qu c a trnh thng d ch. Bo co cc tnh tr ng l i v thot ra nh bnh th ng. Lu tr v tra c u cc TclObjects. Ginh quy n truy c p tr c ti p vo trnh thng d ch.

1.3.1. t c m t tham chi u v i v d v l p Tcl


M t instance n l c a l p c khai bo trong file tclcl/Tcl.cc nh m t bi n thnh vin tnh; ng i l p trnh ph i nh n c m t tham chi u n instance ny c th truy c p t i cc phng php khc c m t trong ph n ny. Cu l nh truy c p instance ny l. Tcl& tcl = Tcl::instance();

24

1.3.2. D n ch ng v cc th t c c a OTcl
C 4 phng php khc nhau g i ra m t l nh OTcl thng qua tr ng tcl. Chng khc nhau m t cch c b n v cc i s g i. M i hm chuy n m t chu i vo trnh thng d ch, m sau nh gi chu i ny trong m t ng c nh chung (global context). Cc phng php ny s tr v cho hm g i n u trnh thng d ch tr v b n tin TCL_OK. Hay ni cch khc, n u trnh thng d ch tr v TCL_ERROR, cc phng th c ny s g i th t c tkerror{}. Ng i dng c th lm qu t i th t c ny c b qua m t s lo i l i no . Nh ng ph c t p c a vi c l p trnh OTcl n m ngoi ph m vi c a ti li u ny. Ph n ti p theo (ph n 1.3.3) s m t cc phng th c truy c p k t qu c tr v b i b thng d ch. tcl.eval(char* s) invokes Tcl_GlobalEval() to execute s through the interpreter. tcl.evalc(const char* s) preserves the argument string s. It copies the string s into its internal buffer; it then invokes the previous eval(char* s) on the internal buffer. tcl.eval() assumes that the command is already stored in the class internal bp_; it directly invokes tcl.eval(char*bp_). A handle to the buffer itself is available through the method tcl.buffer(void). tcl.evalf(const char* s, . . . ) is a Printf(3) like equivalent. It uses vsprintf(3) internally to create the input string. tcl.eval(char* s) vi n d n Tcl_GlobalEval() th c thi s thng qua trnh thng d ch. tcl.evalc(const char* s) lu gi chu i i s s. N copy chu i s vo b m bn trong; sau n d n nh p eval(char* s) tr c ln b m bn trong. tcl.eval() cho r ng l nh c lu tr s n sng trong bp_ n i c a l p; n d n nh p tcl.eval(char*bp_) m t cch tr c ti p. M t khc b m c a n lun s n sng thng qua th t c tcl.buffer(void). tcl.evalf(const char* s, . . . ) tng ng v i Printf(3). N s d ng vsprintf(3) t o nn m t chu i n i t i bn trong n. V d , d i y l m t s cch s d ng cc phng php ni trn: Tcl& tcl = Tcl::instance(); char wrk[128]; strcpy(wrk, "Simulator set NumberInterfaces_ 1"); tcl.eval(wrk); sprintf(tcl.buffer(), "Agent/SRM set requestFunction_ %s", "Fixed"); 25

tcl.eval(); tcl.evalc("puts stdout hello world"); tcl.evalf("%s request %d %d", name_, sender, msgid);

1.3.3. Truy nh p cc k t qu n/t trnh thng d ch


Khi trnh thng d ch vi n d n m t phng th c t C++, n mong mu n c c m t k t qu ph n h i trong m t bi n thnh vin ring bi t, tcl_>result. C hai cch t o nn bi n ny: tcl.result(const char* s) D n nh p chu i k t qu s tr v l i trnh thng d ch. tcl.resultf(const char* fmt, . . . ) varargs(3) s thay i nh trn l nh d ng k t qu s d ng vsprintf(3), d n nh p chu i k t qu tr v l i trnh thng d ch. if (strcmp(argv[1], "now") == 0) { tcl.resultf("%.17g", clock()); return TCL_OK; } tcl.result("Invalid operation specified"); return TCL_ERROR; Tng t , khi m t phng th c c a C++ vi n d n m t l nh OTcl, trnh thng d ch s tr v k t qu trong tcl_>result. tcl.result(void) ph i c s d ng tm l i k t qu . Lu r ng, k t qu l m t chu i, ph i c chuy n sang m t nh d ng bn trong ph h p v i ki u c a k t qu . tcl.evalc("Simulator set NumberInterfaces_"); char* ni = tcl.result(); if (atoi(ni) != 1) tcl.evalc("Simulator set NumberInterfaces_ 1");

1.3.4. Thot v bo co l i
Phng php ny cung c p m t cch th c quy chu n bo co cc l i trong m c bin d ch. tcl.error(const char* s) th c hi n cc ch c nng sau y: ghi s vo stdout; ghi tcl_>result vo stdout; thot ra v i m l i 1. 26

tcl.resultf("cmd = %s", cmd); tcl.error("invalid command specified"); /*NOTREACHED*/ Lu , khng c s khc nhau nhi u gi a vi c tr v b n tin TCL_ERROR nh chng ta lm trong ph n tr c (ph n 3.3.3), v vi c g i Tcl::error(). B nh d ng s t o m t ngo i l bn trong trnh thng d ch; ng i dng c th gi ngo i l ny v c th khi ph c l i t l i. N u ng i dng khng nh ngha b t c ngo i l no, th trnh thng d ch s in m t v t c m v thot. Tuy nhin, n u m g i ra error(), th ng i dng m ph ng khng th gi l i; thm vo , ns s khng in b t k m t v t c m no.

1.3.5. Cc hm hash trong trnh thng d ch


ns lu tr m t tham chi u v i m i TclObject trong nhnh c bin d ch trong m t m t b ng hash; i u ny cho php truy c p nhanh n cc i t ng. B ng hash ny n m bn trong b thng d ch. ns dng tn c a TclObject nh l cha kho truy nh p, tra c u, ho c xo TclObject trong b ng hash. tcl.enter(TclObject* o) s chn m t con tr vo TclObject o bn trong b ng hash. N c dng b i TclClass::create_shadow() chn m t i t ng vo bn trong b ng, khi i t ng c t o ra. tcl.lookup(char* s) s tm l i c TclObject v i tn s. N c dng b i TclObject::lookup(). _ tcl.remove(TclObject* o) s xo cc quan h v i TclObject o t b ng hash. N c dng b i TclClass::delete_shadow() xo m t entry ang t n t i t b ng hash, khi i t ng b xo. Cc hm ny c dng bn trong b i l p TclObject v l p TclClass.

1.3.6. Cc ho t ng khc trn trnh thng d ch


N u cc phng php trn khng , th chng ta ph i n m c trnh thng d ch v vi t ra cc hm ring cho mnh. tcl.interp(void) tr v cc hm bn trong trnh thng d ch m c lu tr trong l p Tcl.

27

1.4. L p TclObject
class TclObject l l p c b n cho h u h t cc l p khc trong cc nhnh thng d ch v bin d ch. M i i t ng trong l p TclObject c t o ra b i ng i dng t bn trong b thng d ch. M t i t ng ph n bng tng ng c t o ra nhnh bin d ch. Hai i t ng ny c m i tng quan ch t ch v i nhau. L p TclClass, m s c m t trong ph n ti p theo, ch a cc c c u th c hi n qu trnh bng ho (qu trnh nh x t i t ng nhnh thng d ch sang i t ng nhwrnh bin d ch ). Trong ph n cn l i c a ti li u ny, chng ta s th ng xuyn g i m t i t ng l m t TclObject1. B ng cch , ta xem xt m t i t ng c th m c tr ng l p TclObject ho c trong m t l p m c t o ra t l p TclObject. N u c n thi t, ta xc nh xem i t ng l m t i t ng trong b thng d ch hay l trong m bin d ch. Trong nh ng tr ng h p nh v y, chng ta s s d ng cc thu t ng tng ng l " i t ng thng d ch", v " i t ng bin d ch" phn bi t hai lo i i t ng trn. Nh ng s khc bi t t ns v1 Khng nh ns v1, l p TclObject1 g p cc hm tr c y c a l p NsObject. V th , n lu tr nh ng lin k t bi n giao di n ( ph n 1.4.2) m dng n i cc bi n instance c a Otcl trong i t ng thng d ch v i cc bi n thnh vin C++ tng ng trong i t ng bin d ch. S rng bu c ny m nh hn trong ns v1 v trong b t k s thay i cc bi n OTcl u b kho, v cc gi tr C++ v OTcl hi n t i u c lm cho ph h p sau m i l n truy c p thng qua b thng d ch. S ng nh t c th c hi n thng qua l p InstVar (ph n 3.8). Khc nls v1, cc i t ng trong l p TclObject cng khng cn c lu nh m t danh sch lin k t ton c c. Thay vo , chng c lu tr trong m t b ng hash thu c l p Tcl (ph n 1.3.5). C u hnh tiu bi u c a m t TclObject V d sau y m t c u hnh c a m t tc t SRM (class Agent/SRM/Adaptive). set srm [new Agent/SRM/Adaptive] \$srm set packetSize\_{} 1024 \$srm traffic-source \$s0 Theo quy c trong ns, l p Agent/SRM/Adaptive l m t l p con c a Agent/SRM, l m t l p con c a Agent, l m t l p con c a TclObject. Nhnh l p bin d ch tng ng l ASRMAgent, c l y t SRMAgent, SRMAgent l i c l y t Agent, v cu i cng l t TclObject m t cch tu n t . Dng u tin c a v d trn cho th y m t TclObject c t o ra (ho c b hu ) nh th no (ph n 3.4.1); dng ti p theo
Trong phin b n g n y nh t c a ns v ns/tclcl, i t ng ny c i tn thnh SplitObjefct, ph n nh m t cch chnh xc hn s b n ch t c a s t n t i c a n. Tuy nhin, lc ny, chng ta s ti p t c s d ng thu t ng TclObject ch nh ng i t ng ny v l p ny
1

28

c u hnh m t bi n gi i h n (ph n 3.4.2); v cu i cng, dng cu i m t i t ng c thng d ch b ng cch g i ra m t phng th c C++ ngay khi n l m t th t c v d .

1.4.1. T o v hu cc TclObject
Khi ng i dng t o/hu m t TclObject m i, s d ng cc th delete{}; cc th t c ny c nh ngha trong tclcl/tcl-object.tcl. c dng t o hay hu cc i t ng trong t t c cc l p, bao g jects2 Trong ph n ny,chng ta s m t cc ho t ng bn trong m t TclObject c t o ra. t c new{} v Chng c th m cc TclObc th c thi khi

T o cc TclObject b ng cch dng new{}, ng i dng t o m t TclObject c thng d ch. b thng d ch xy d ng c u trc cho i t ng , init{}, cc i s c a ph n ny c cung c p b i ng i dng. ns ch u trch nhi m t o ra i t ng bin d ch m t cch t ng. i t ng bng c t o ra b i l p c b n c a hm t o TclObject. V th , hm t o cho m t TclObject m i ph i g i hm t o l p ngu n c a n tr c. new{} tr v m t ch c danh cho i t ng, m c th c dng cho cc ho t ng sau ny trn i t ng . V d sau y minh h a hm t o Agent/SRM/Adaptive: Agent/SRM/Adaptive instproc init args \{ eval \$self next \$args \$self array set closest\_{} "requestor 0 repairor 0" \$self set eps\_{} [\$class set eps\_{}] \} Chu i cc ho t ng sau y c th c hi n b i trnh thng d ch nh m t ph n c a vi c th hi n m t TclObject m i . cho d theo di, chng ta s m t t ng b c t o nn m t i t ng Agent/SRM/Adaptive. Cc b c l: 1. T o c m t tn duy nh t cho m t i t ng m i t khng gian tn TclObject. Tn ny c tr v cho ng i dng. H u h t tn trong ns u c d ng_<NNN>, v i <NNN> l m t s nguyn. Tn ny c t o b i getid{}. N c th c tm th y t C++ b ng phng th c name(){}. 2. T o hm t o cho m t i t ng m i. B t k cc i s c quy nh b i ng i dng no cng c truy n t i hm t o ny. Hm t o ny ph i g i ra hm t o c lin k t v i l p ngu n c a n.
Nh v d , Cc l p, Simulator, Node, Link, hay rtObject, l cc l p m khng xu t pht t l p TclObject. Cc i t ng trong nh ng l p ny v th khng ph i l TclObjects. Tuy nhin, m t i t ng Simulator, Node, Link, ho c route cng c t o ra b ng cch s d ng th t c new trong ns.
2

29

Trong v d trn, Agent/SRM/Adaptive g i l p ngu n c a n tin.

dng chnh u

Lu r ng m i hm t o l n l t g i ra hm t o c a l p ngu n c a n ad nauseum. Hm t o cu i cng trong ns l hm t o TclObject. Hm t o ny ch u trch nhi m thi t l p i t ng bng, v th c hi n nh ng vi c kh i t o thao v cc rng bu c khc, nh chng ti gi i thch bn d i. T t hn l nn g i cc c u trc ngu n tr c khi th c hi n vi c n p cc thng s c yu c u trong l p ny. i u ny cho php i t ng bng c thi t l p, v cc rng bu c bi n c thi t l p. 3. Hm t o TclObject g i ra th t c v d create-shadow{} cho l p Agent/SRM/Adaptive. 4. Khi i t ng bng c t o ra, ns g i t t c cc b cu trc cho i t ng bin d ch, m i b nh v y c th thi t l p cc rng bu c bi n cho cc i t ng trong l p , v th c hi n cc kh i t o c n thi t khc. Do l nh hu n th tr c y c a chng ta ph h p hn g i ra cc hm t o ngu n tr c khi th c hi n vi c kh i t o l p. 5. Sau khi i t ng bng c t o ra thnh cng b ng l nh create_shadow(void) (a) i t ng m i vo b ng hash c a cc TclObject c m t tr c y (ph n 1.3.5). (b) Th c hi n cmd{}, m t th t c c a i t ng thng d ch m i c t o. Th t c v d ny g i ra phng th c command() c a i t ng bin d ch. Trong m t ph n nh sau (Section 1.4.4), chng ti s m t cch th c command c nh ngha , v c g i ra nh th no. Lu r ng t t c cc c ch bng ho trn ch ho t ng khi ng i dng t o m t TclObject m i thng qua trnh thng d ch. N s khng lm vi c n u ng i l p trnh t o m t TclObject c bin d ch m t cch n phng. V th , ng i l p trnh b c m khng dng phng th c m i C++ t o cc i t ng bin d ch m t cch tr c ti p. Xo cc TclObject: l nh delete hu i t ng thng d ch, v i t ng bng tng ng.V d , use-scheduler{hscheduleri} dng th t c delete xo b b l p l ch trnh b ng k m c nh, v t o ra m t b l ch trnh thay th trong khng gian c a n. Simulator instproc use-scheduler type { \$self instvar scheduler\_{} delete scheduler\_{} ; # xo b l ch trnh b ng k ang t n t i tr c set scheduler\_{} [new Scheduler/\$type] }

30

1.4.2. S rng bu c bi n
Trong h u h t cc tr ng h p, vi c truy c p n cc bi n thnh vin bin d ch b gi i h n t i m bin d ch, v truy c p n cc bi n thnh ph n c thng d ch cng b h n ch , ph i truy nh p thng qua m thng d ch; tuy nhin, c th thi t l p cc rng bu c hai chi u nh c hai bi n thnh ph n thng d ch v bi n thnh ph n bin d ch, truy c p cng d li u, v vi c thay i gi tr c a c hai bi n c th thay i gi tr c a bi n c c p i tng ng sang cng m t gi tr . S rng bu c c t o ra b i hm t o c bin d ch khi i t ng c t o; c th truy c p m t cch t ng b i i t ng c thng d ch nh m t bi n instanc. ns h tr nm ki u d li u khc nhau: cc gi tr th c, cc bi n nh tr bng thng, cc bi n nh tr th i gian, cc s nguyn, v cc s nh phn. C php m t cc gi tr c c t trong OTcl l khc nhau ng v i m i ki u. Cc bi n gi tr th c v s nguyn c c t theo d ng "bnh th ng" . V d , $object set realvar 1.2e3 $object set intvar 12 Bng thng c c t nh m t gi tr th c, c i n thm ti n t l m t k hay K ch gi tr hng ngn, ho c m hay M ch gi tr hng tri u. M t k t B sau cng th hi n gi tr Byte trn m t giy. Theo m c nh, bng thng c th hi n d ng bps. V d , t t cc cc dng l nh sau l tng ng: $object set bwvar 1.5m $object set bwvar 1.5mb $object set bwvar 1500k $object set bwvar 1500kb $object set bwvar .1875MB $object set bwvar 187.5kB $object set bwvar 1.5e6 $object set bwvar 1500kb $object set bwvar .1875MB $object set bwvar 187.5kB $object set bwvar 1.5e6 Th i gian c quy nh nh l m t gi tr th c,c th i km v i h u t m th hi n n v mili giy, v n n u l nano giy, ho c l pico giy v i p. Gi tr m c nh l giy (s). V d , t t c cc gi tr sau l tng ng nhau: $object set timevar 1500m $object set timevar 1.5 $object set timevar 1.5e9n 31

$object set timevar 1500e9p Lu r ng ta c cng th thm 1 ch s bi u th n v l giy. ns w s b qua t t c cc gi tr khc ngoi cc con s , ho c k t thc b ng ch m, n, hay p. Cc gi tr nh phn c th c bi u di n c hai d ng nh m t s nguyn, hay nh T ho c t v i gi tr ng. Cc k t theo sau ch ci u tin c b qua. N u gi tr khng ph i l m t s nguyn hay m t gi tr ng th ng nhin c xem l sai. V d , $object set boolvar t ; # t gi tr l ng $object set boolvar true $object set boolvar 1 ; # hay b t k gi tr khng b ng khng no $object set boolvar false ; # t gi tr l sai $object set boolvar junk $object set boolvar 0 Cc v d sau y cho th y hm t o c a ASRMAgent3 ASRMAgent::ASRMAgent() { bind("pdistance_", &pdistance_); /* bi n gi tr th c */ bind("requestor_", &requestor_); /* ibi n gi tr nguyn */ bind_time("lastSent_", &lastSessSent_); /* bi n gi tr th i gian */ bind_bw("ctrlLimit_", &ctrlBWLimit_); /* bi n gi tr bng thng */ bind_bool("running_", &running_); /* bi n gi tr nh phn */ Ch r ng t t c cc hm trn u c hai i s , tn c a m t bi n OTcl, v a ch c a bi n thnh vin c bin d ch tng ng c lin k t l i. Trong khi th ng c tr ng h p l cc rng bu c c thi t l p b i hm t o c a i t ng, khng c n ph i lun c th c hi n theo ki u ny. Ta s th o lu n cc phng php thay th khi n m c m t l p InstVar (ph n 3.8) m t cch chi ti t ph n sau. M i bi n c rng bu c s t ng c kh i t o v i gi tr m c nh khi i t ng c t o ra. Cc gi tr m c nh ny c c t nh cc bi n l p c thng d ch. Qu trnh kh i t o ny c th c hi n b i tuy n init-instvar{}, c g i ra b i cc phng php trong l p Insvar, s c m t sau (ph n 1.8). hm init-instvar{} ki m tra l p i t ng thng d ch, v t t c cc l p ngu n c a i t ng , tm ki m l p u tin m cc bi n c nh ngha. N dng gi tr c a bi n trong l p kh i t o i t ng . H u h t cc gi tr kh i t o lin quan c nh ngha trong ns/tcl/lib/ns-default.tcl. V d , n u cc bi n l p sau y c nh ngha cho ASRMAgent:
3

Lu r ng hm t o ny c t i m thm m t cc c i m c a c ch rng bu c bi n

32

Agent/SRM/Adaptive set pdistance_ 15.0 Agent/SRM set pdistance_ 10.0 Agent/SRM set lastSent_ 8.345m Agent set ctrlLimit_ 1.44M Agent/SRM/Adaptive set running_ f Agent/SRM/Adaptive set pdistance_ 15.0 Agent/SRM set pdistance_ 10.0 Agent/SRM set lastSent_ 8.345m Agent set ctrlLimit_ 1.44M Agent/SRM/Adaptive set running_ f Do , m i i t ng Agent/SRM/Adaptive m i s c tham s pdistance_ v i gi tr t l 15.0; lastSent_ l 8.345m t vi c ci t bi n l p c a l p ngu n; ctrlLimit_ c gi tr l 1.44M s d ng bi n l p c a l p ngu n hai l n b xo; running c t l sai; bi n tr ng h p pdistance_ khng c gn tham s u vo, v khng c bi n l p t n t i trong b t k h th ng phn c p l p c a i t ng thng d ch. Trong nh ng tr ng h p nh v y, init-instvar{} s g i ra warn-instvar{}, in ra m t c nh bo v m t bi n ch ng h n. Ng i dng c th b qua m t cch c ch n l c th t c ny trong cc b n m t m ph ng, l t qua c nh bo ny. Ch r ng s rng bu c th c t c th c hi n bng vi c t o cc i tng trong l p InstVar. M i i t ng trong l p InstVar rng bu c m t bi n thnh vin bin d ch v i m t bi n thnh vin thng d ch. M t TclObject lu tr m t danh sch cc i t ng InstVar tng ng v i m i bi n thnh vin c a n m b rng bu c trong ki u ny. Ph n u c a danh sch c lu trong bi n thnh vin c a n instvar_ c a TclObject. i m cu i cng c n xem xt l NS s b o m cc gi tr th c c a bi n, c trong i t ng thng d ch v i t ng bin d ch, s gi ng nhau m i lc. Tuy nhin, n u cc phng th c v cc bi n khc c a compiled object m bm theo gi tr c a bi n , chng ph i c g i ra r rng ho c c thay i b t k khi no gi tr c a bi n b thay i. i u ny th ng i h i cc t g c m ng i dng c n bi t. C m t cch cung c p cc t g c trong NS l thng qua phng th c command() s c m t trong ph n ti p theo.

1.4.3. Bm v t bi n
Thm vo cc rng bu c bi n, TclObject cn h tr bm v t c a cc bi n tr ng h p trong C++ v Tcl. M t bi n bm v t c th c t o v c u hnh trong C++ hay Tcl. t o ra qu trnh bm v t bi n ng v i m c Tcl, bi n ph i c nhn th y trong Tcl, i u c ngha r ng n ph i l m t bi n tr ng h p Tcl thu n ty ho c bi n C++/Tcl b gi i h n . Thm vo , i t ng s h u bi n bm v t cng ph i c yu c u thi t l p qu trnh bm v t s d ng phng th c Tcl trace c a 33

TclObject. i s u tin trong phng th c trace ph i l tn bi n. i s th 2 (khng b t bu c) c t i t ng bm v t, ch u trch nhi m bm v t c a bi n . N u i t ng v t khng c c t , th i t ng s h u bi n ch u trch nhi m bm v t n. V i m t TclObject, bm v t cc bi n, n ph i m r ng phng th c bn m n c nh ngha trong TclObject. L p bm v t th c hi n m t phng th c trace n gi n, v th , n c th ho t ng nh m t ng i bm v t chung cho t t c cc bi n. class Trace public Connector {: ... virtual void trace(TracedVar*); }; D i y l m t v d n gi n cho vi c ci t qu trnh bm v t bi n trong Tcl: \# \$tcp tracing its own variable cwnd\_ \$tcp trace cwnd_ \# the variable ssthresh_ of \$tcp is traced by a generic \$tracer set tracer [new Trace/Var] \$tcp trace ssthresh_ \$tracer i v i m t bi n C++ c th bm v t c, n ph i thu c v m t l p m b t ngu n t TracedVar. L p c s o TracedVar lu tr tn bi n, ng i s h u, v cc b bm v t. Cc l p m b t ngu n t TracedVar s ph i cung c p phng th c o value, phng th c m l y b m k t nh l m t i s v ghi gi tr c a bi n vo . class TracedVar { ... virtual char* value(char* buf) = 0; protected: TracedVar(const char* name); const char* name_; // name of the variable TclObject* owner_; // the object that owns this variable TclObject* tracer_; // callback when the variable is changed ... }; Th vi n TclCL xu t ra 2 l p c a TracedVar l: TracedInt v TracedDouble. Cc l p ny c th c dng v i cc ki u d li u c b n c a int v double tng ng. C TracedInt v TracedDouble lm qu t i t t c cc ho t ng m c th thay 34

i gi tr c a bi n nh php gn, tng v gi m. Cc ho t ng b qu t i ny dng phng th c assign gn gi tr m i cho bi n v g i b bm v t n u gi tr m i khc v i gi tr c tr c . TracedInt v TracedDouble cng b sung cc phng th c v value c a chng m a cc gi tr bi n vo trong chu i. r ng v tnh chnh xc c a u ra c th c c t tr c.

1.4.4. Cc phng th c command: nh ngha v g i ra


iv im l m t b n l bin d ch. Th cch t ng, command(). i TclObject c t o ra, ns thi t l p th t c tr ng h p, cmd{}, nh th c thi cc phng th c thng qua i t ng b n sao c t c cmd{} g i ra phng th c command() c a i t ng bng m t nh p cc i s cho cmd{} nh l m t vector i s v i phng th c

Ng i dng c th g i phng th c cmd{} b ng m t trong 2 cch sau: g i ra m t cch r rng th t c, c t ho t ng mong mu n nh l i s u tin, ho c m t cch r rng , n u c m t th t c tr ng h p c a cng tn nh ho t ng mong mu n. H u h t cc b n m ph ng s dng ki u sau ny, v th , ta s m t ki u d n ch ng kia tr c. Cho r ng tnh ton kho ng cch trong SRM c th c hi n b i i t ng bin d ch; tuy nhin, n l i th ng c s d ng b i i t ng thng d ch v th ng c g i ra nh sau: $srmObject distance? <agentAddress> N u khng c th t c no g i l distance, trnh thng d ch s g i ra th t c unknown, c nh ngha trong TclObject l p c b n. Th t c unknown sau s g i ra $srmObject cmd distance? <agentAddress> th c hi n ho t ng thng qua th t c command() c a i t ng bin d ch. D nhin, ng i dng c th g i ho t ng ny m t cch tr c ti p. M t l do cho i u ny l c th lm qu t i ho t ng b ng cch s d ng m t th t c trng tn. V d , Agent/SRM/Adaptive instproc distance? addr { $self instvar distanceCache_ if ![info exists distanceCache_($addr)] { set distanceCache_($addr) [$self cmd distance? $addr] } set distanceCache_($addr) } By gi ta s m t cch m phng th c command() s d ng ASRMAgent:command(): nh v d sau: 35

int ASRMAgent:command(int argc, const char*const*argv) : Tcl& tcl = Tcl:instance();: if (argc == 3) { if (strcmp(argv[1], "distance?") == 0) { int sender = atoi(argv[2]); SRMinfo* sp = get_state(sender); tcl.tesultf("%f", sp->distance_); return TCL_OK; } } return (SRMAgent:command(argc, argv));: } Chng ta c th phn tch o n m ny nh sau: Hm c g i v i 2 i s : i s u tin (argc) bi u th s l ng c a cc i s c c t trong dng l nh cho trnh thng d ch. Vector cc i s dng l nh (argv) bao g m argv[0] ch a tn c a phng th c, "cmd". argv[1] c t ho t ng mong mu n. N u ng i dng c t b t k i s no, th chng ph i c t trong argv[2...(argc - 1)]. Cc i s c truy n nh cc chu i; chng ph i c chuy n i sang ki u d li u ph h p. N u php ton l ng, th n s tr v k t qu php ton s d ng cc phng th c c m t tr c (ph n 1.3.3). B n thn hm command() ph i tr v ho c l TCL_OK hay TCL_ERROR bi u th thnh cng hay th t b i. N u php ton trong phng th c ny khng ng, n ph i g i ra phng th c l nh g c, v tr v k t qu tng ng. i u ny cho php ng i dng hnh dung c cc php ton khi c c cc thu c tnh k th a nh l cc th t c tr ng h p, ho c cc phng php bin d ch. Tr ng h p phng th c command ny c nh ngha cho m t l p v i s a k th a, ng i l p trnh c th t do ch n m t trong hai thnh ph n b sung sau: 1. Chng c th g i ra m t trong cc phng th c command g c, v tr v k t qu c a s g i ra , ho c l. 2. Chng c th l m t trong cc phng th c command g c m t s chu i, v tr v k t qu c a s g i ra u tin thnh cng. N u khng thnh cng, th chng s tr v m t l i.

36

Trong ti li u ny, chng ta g i cc php ton c th c thi thng qua command() l instproc-likes. N ph n nh cng d ng c a nh ng ho t ng ny nh th chng l cc th t c tr ng h p OTcl c a m t i t ng, nhng c th s r t khc trong s nh n th c v s d ng.

1.5. L p TclClass
L p bin d ch ny (class TclClass) l m t l p hon ton o. Cc l p thu c t l p c s ny cung c p 2 ch c nng: xy d ng nn nhnh l p thng d ch ph n nh nhnh l p bin d ch; v cung c p cc phng th c t o ra cc TclObject m i. M i l p thu c nh v y k t h p v i m t l p bin d ch ring bi t trong nhnh l p bin d ch, v c th t o cc i t ng m i trong l p k t h p. V d , xt m t l p nh RenoTcpClass. N c l y ra t l p TclClass, v c k t h p v i l p RenoTcpAgent. N s d n ra cc i t ng m i trong l p RenoTcpAgent. Nhnh l p bin d ch cho RenoTcpAgent l l p l n l t c t o ra t TcpAgent, TcpAgent: l i c t o ra t Agent, Agent l i c t o ra t TclObject. RenoTcpClass c nh ngha nh sau

static class RenoTcpClass: public TclClass { public: RenoTcpClass() : TclClass("Agent/TCP/Reno") {} TclObject* create(int argc, const char*const* argv) { return (new RenoTcpAgent()); } } class_reno;

Chng ta c th a ra m t s phn tch t nh ngha trn: 1. L p ny ch nh ngha hm t o, v m t phng th c thm vo, create cc i t ng c a TclObject k p h p. 2. NS s th c hi n hm t o hm t o RenoTcpClass cho bi n tnh class_reno}, khi n c b t u l n u tin. Vi c ny ci t cc phng th c thch h p v nhnh l p phin d ch. 3. Hm t o c t l p thng d ch m t cch r rng nh Agent/TCP/Reno. i u ny cng c t nhnh l p thng d ch m t cch hon ton. G i l i tho thu n kia trong ns is l dng k t g ch cho (/) nh l cch phn chia. V i b t k l p c cho l A/B/C/D, th l p A/B/C/D l 1 l p con 37

c a A/B/C, A/B/C l l p con c a A/B, l n l t A/B l l p con c a A. A chnh n l i l l p con c a TclObject. Trong tr ng h p trn, hm t o TclClass t o ra 3 l p, Agent/TCP/Reno l l p con c a Agent/TCP l l p con c a Agent l l p con c a TclObject. 4. L p ny k p h p v i l p RenoTcpAgent; n t o ra cc i t ng m i trong l p c k t h p ny. 5. Phng th c RenoTcpClass::create tr cc TclObject v trong l p RenoTcpAgent. 6. Khi ng i dng c t new Agent/TCP/Reno, th t c ti p theo RenoTcpClass::create c g i ra 7. Vector cc i s (argv) bao g m argv[0] ch a tn c a i t ng. argv[1...3] ch a $self, $class, v $proc. K t khi create is c g i thng qua th t c tr ng h p create-shadow, argv[3] bao g m create-shadow. argv[4] ch a b t k i s b sung no ( c xem nh l m t chu i) c cung c p b i ng i dng. class Trace minh ho vi c trnh by i s b ng cc phng th c TclClass. class TraceClass : public TclClass \{ public:\tab {}TraceClass() : TclClass("Trace") \{\} {}TclObject* create(int args, const char*const* argv) \{ {}if (args >= 5)\untab {}return (new Trace(*argv[4])); {}else {}return NULL; {}\} {}\} trace\_{}class; M t i t ng Trace c t o ra nh new Trace "X" Cu i cng, v c b n, cch m nhnh l p thng d ch c t o nn nh sau: 1. Hm t o i t ng c th c hi n khi ns kh i ng l n u. 2. Hm t o ny g i hm t o TclClass v i ci tn c a l p c thng d ch cng nh i s c a n. 3. Hm t o TclClass lu tr tn c a l p, v chn i t ng ny vo m t b ng k lin k t c a cc i t ng TclClass. 38

4. Trong su t qu trnh kh i t o c a b m ph ng, hm Tcl_AppInit(void) g i ra TclClass::bind(void) 5. V i m i i t ng trong b ng k cc i t ng TclClass, hm bind() g i ra register{}, b ng cch c t tn c a l p thng d ch nh i s c a n. 6. Hm register{} thi t l p l p nhnh, t o cc l p c yu c u, v cha c t o ra. 7. Cu i cng, hm bind() nh ngha cc th t c i t ng creat-shadow v delete-shadow cho chnh l p m i ny.

1.5.1. Lm th no rng bu c cc bi n thnh vin l p C++ tnh


Trong ph n 1.4, ta th y cch phi by cc bi n thnh vin c a m t i t ng C++ sang khng gian OTcl. Tuy nhin, i u ny khng p d ng cho cc bi n thnh vin tnh c a m t l p C++. D nhin, c th t o ra m t bi n OTcl cho bi n thnh vin tnh c a m i i t ng C++; m t cch hi n nhin i u ny lm m t hon ton ngha c a cc bi n thnh vin tnh. Chng ta khng th gi i quy t v n rng bu c b ng cch s d ng gi i php tng t nh vi c rng bu c trong TclObject d a trn l p InstVar, b i v l p InstVar trong TclCL yu c u s hi n h u c a m t TclObject. Tuy nhin, ta c th t o m t phng th c trong l p TclClass tng ng v truy c p cc thnh vin tnh c a m t l p C++ thng qua cc phng th c TclObject tng ng c a n. Th t c y nh sau: 1. T o TclClass c a chnh b n nh m t trn;

2. Khai bo cc phng th c bind() v method() trong l p do b n t o ra; 3. T o cc phng th c rng bu c c a b n trong hm bind() c a b n v i hm add_method("your_method"), v sau b sung bi n i u khi n trong method() b ng cch tng t nh b n s lm trong TclObject::command(). Lu , s l ng bi n h p quy cch v i TclClass::method() l khc so v i TclObject::command(). Ng i t o c nhi u hn 2 i s tr c. Nh v d sau, chng ta bi u di n m t phin b n n gi n PacketHeaderClass trong ~ns/packet.cc. Gi s r ng chng ta c l p Packet sau y c ch a m t bi n tnh hdrlen_ m ta mu n truy c p t OTcl: class Packet { ...... 39

static int hdrlen_; }; Sau ta lm ti p theo nh bn d i xy d ng m t b truy c p cho bi n ny: class PacketHeaderClass:public TclClass { protected: PacketHeaderClass(const char* classname, int hdrsize); TclObject* create(int argc, const char*const* argv); /* Hai thnh ph n c a cc phng th c truy nh p trong l p Tcl */ virtual void bind(); virtual int method(int argc, const char*const* argv); }; void PacketHeaderClass::bind() { /*G i n l p c b n bind() ph i lm tr c add_method()*/ TclClass::bind(); add_method("hdrlen"); { int PacketHeaderClass::method(int ac, const char*const* av) { Tcl& tcl = Tcl::instance(); /*Lu vi c chuy n i i s ny; ta c th sau i x v i chng nh n u l trong TclObject::command()*/ int argc = ac - 2; const char*const* argv = av 2;+ if (argc == 2) { if (strcmp(argv[1], "hdrlen") == 0) { tcl.resultf("%d", Packet::hdrlen_); return (TCL_OK); } } else if (argc == 3) { if (strcmp(argv[1], "hdrlen") == 0) { Packet::hdrlen_ = atoi(argv[2]); return (TCL_OK); } } return TclClass::method(ac, av); { Sau b c ny, ta c th dng l nh OTcl sau truy c p v thay i cc gi tr c a bi n Packet::hdrlen_: 40

PacketHeader hdrlen 120 set i [PacketHeader hdrlen]

1.6. L p Tcl Command


L p ny (class TclCommand) ch cung c p c ch cho NS to xu t ra cc l nh n gi n cho trnh thng d ch, m sau c th c th c thi trong m t b i c nh ton c c b i trnh thng d ch. C hai hm c nh ngha trong file ~ns/misc.cc l: ns-random v ns-version. Hai hm ny c kh i t o b i hm init_misc(void), c nh ngha trong ~ns/misc.cc; init_misc v c g i ra b i Tcl_AppInit(void) trong su t qu trnh kh i ng. class VersionCommand nh ngha l nh ns-version. N khng c n i s , v tr v phin b n NS hi n hnh. % ns-version ; 2.0a12 # l y phin b n hi n hnh

class RandomCommand nh ngha l nh ns-random. Khng c n i s , ns-random returns tr v m t s nguyn, v c phn b u trong kho ng [0, 231 1]. Khi c t m t i s , n l y i s nh h t gi ng. N u h t gi ng ny c gi tr l 0, l nh dng m t gi tr h t gi ng heuristic; hay ni cch khc, n t h t gi ng cho hm t o s ng u nhin m t gi tr c th . % ns-random; 2078917053 % ns-random 0; 858190129 % ns-random 23786; 23786 # tr v m t s ng u nhin heuristically gi tr c c t

#set the seed

# t h t gi ng v

Lu r ng, ni chung khng nn xy d ng cc l nh m c cao cho ng i dng. By gi ta m t cch nh ngha m t l nh m i b ng cch s d ng v d class say_hello. V d nh ngha l nh hi, in chu i "hello world", c theo sau b i b t k cc i s dng l nh no c c t b i ng i dng. V d % hi this is ns [ns-version] hello world, this is ns 2.0a12

41

1. L nh ph i c nh ngha bn trong m t l p c xu t pht t class TclCommand. Vi c nh ngha l p ny nh sau: class say_hello : public TclCommand { public: say_hello(); int command(int argc, const char*const* argv); }; 2. Hm t o cho l p ph i g i ra hm t o TclCommand v i l nh v i s ; v.v., say_hello() : TclCommand("hi") {} Hm t o TclCommand t "hi" nh l m t th t c ton c c m g i ra TclCommand::dispatch_cmd() 3. Phng th c command() ph i th c hi n c vi c mong mu n. Phng th c c 2 i s , m t l argc, ch a s l ng i s th c t c thng qua b i ng i dng. Cc i s th c t c truy n vo b i ng i s d ng u c xem nh l m t vector i s (argv) v bao g m: argv[0] ch a tn c a l nh (hi). argv[1...(argc - 1)] ch a cc i s khc c c t trn dng l nh b i ng i dng. command() c g i ra b i dispatch_cmd(). #include <streams.h> /* b i v ta dng dng I/O */ int say_hello::command(int argc, const char*const* argv) { cout << "hello world:"; for (int i = 1; i < argc; i++) cout << << argv[i]; cout << n n; return TCL_OK; } 4. Cu i cng, ta yu c u m t i t ng cho l p ny. Cc i t ng TclCommand c t o ra trong th t c init_misc(void). new say_hello; Lu r ng, y th ng dng nhi u hm hn nh ns-at v ns-now m c th truy c p c. H u h t cc hm ny s c gom vo trong m t l p hi n hnh. C th l, ns-at v ns-now c th truy c p c thng qua b l p lich th i gian c a TclObject. Cc hm c nh ngha trong ns/tcl/lib/ns-lib.tcl % set ns [new Simulator] ; # L y tr ng h p c a b m ph ng _o1 % $ns now ; # truy v n b m ph ng v th i gian hi n t i 0 % $ns at ... ; # ch r cc ho t ng cho b m ph ng 42

1.7. L p EmbeddedTcl
NS cho php s pht tri n c a cc tnh nng trong c m bin d ch, ho c thng qua m thng d ch, m c nh gi trong qu trnh kh i t o. V d , cc b n trong tclcl/tcl-object.tcl hay trong ns/tcl/lib. Vi c t i v nh gi cc o n m nh v y c th c hi n thng qua cc i t ng trong l p class EmbeddedTcl. Cch d nh t m r ng ns is l thm m OTcl vo ho c tclcl/tcl-object.tcl ho c qua cc o n m th m c ns/tcl/lib. Lu r ng, trong nh ng tr ng h p sau ny, ns t ng t o ns/tcl/lib/ns-lib.tcl, v v th ng i l p trnh ph i thm hai dng l nh vo file ny b n d ch c a chng s t ng l y ngu n t ns khi kh i ng. V d , file ns/tcl/mcast/srm.tcl xc nh m t s th t c tr ng h p ch y SRM. Trong ns/tcl/lib/ns-lib.tcl, chng ta c cc dng l nh: source tcl/mcast/srm.tcl t ng l y srm.tcl c t o b i NS khi kh i ng. C ba i m c n lu v i m EmbeddedTcl l: u tin n u m c m t l i c t o ra trong qu trnh nh gi th ns s khng ch y. Th hai, ng i dng c th khng c n n b t k m no trong cc b n d ch. c bi t, chng c th ti t o ton b o n m sau khi sau khi c s thay i n i t i. Cu i cng, sau khi thm cc b n d ch cho ns/tcl/lib/ns-lib.tcl, v t v sau b t c khi no o n m thay i, ng i dng ph i bin d ch l i ns lm s thay i c hi u l c. D nhin, trong h u h t tr ng h p 4 , ng i dng ch th t o o n m c a mnh b qua m c nhng. Ph n cn l i ny s m t cch tch h p cc b n c l p tr c ti p vo trong ns. B c u tin l chuy n i b n d ch vo trong m t i t ng EmbeddedTcl. Cc dng bn d i m r ng ns-lib.tcl v t o ra i t ng EmbeddedTcl c g i l et_ns_lib: tclsh bin/tcl-expand.tcl tcl/lib/ns-lib.tcl | n ../Tcl/tcl2c++ et_ns_lib > gen/ns_tcl.cc o n m,ns/bin/tcl-expand.tcl m r ng ns-lib.tcl b ng cch thay th t t c cc dng source lines b i cc file ngu n tng ng. Chng trnh, tclcl/tcl2cc.c, chuy n i m OTcl thnh m t i t ng EmbeddedTcl tng ng, et_ns_lib. Trong qu kh i t o, vi c g i ra phng th c EmbeddedTcl::load s nh gi m ng m t cch r rng. tclcl/tcl-object.tcl c nh tr b i phng th c Tcl::init(void); Tcl_AppInit() g i ra Tcl::Init(). C php l nh chng xc cho t i l:
M t t tr ng h p m i u ny c th s khng x y ra l khi cc bi n no c th ph i c nh ngha hay khng c nh ngha, ho c ni cch khc b n d ch ch a m khc hn l th t c, v vi c nh ngha bi n v th c thi cc ho t ng m t cch tr c ti p l khng th o ng c c
4

43

et_tclobject.load(); M t cch tng t , ns/tcl/lib/ns-lib.tcl c nh tr tr c ti p b i Tcl_AppInit trong ns/ns_tclsh.cc. et_ns_lib.load();

1.8. L p InstVar
Ph n ny m t cc b n ch t c a l p InstVar. L p ny xc nh cc phng th c v c c u rng bu c m t bi n thnh vin C++ trong i t ng bng bin d ch v i m t bi n tr ng h p OTcl c c t trong i t ng thng d ch tng ng. Vi c rng bu c c thi t l p gi tr c a bi n c th c t ho c c truy c p t c trnh thng d ch ho c t m bin d ch m i lc. C nm l p bi n i t ng: class InstVarReal, class InstVarTime, class InstVarBandwidth, class InstVarInt, v class InstVarBool, tng ng v i cc rng bu c cho cc bi n gi tr th c, th i gian, bng thng, s nguyn, v nh phn m t cch l n l t. By gi , ta m t c c u ci t cc bi n tr ng h p. Ta dng class InstVarReal to di n gii khi ni m. Tuy nhin, c c u ny c th ng d ng c v i c 5 ki u bi n tr ng h p. Khi vi c ci t m t bi n thng d ch truy c p m t bi n thnh vin, cc hm thnh vin c a l p InstVar gi s r ng chng ang th c hi n cc phng th c thch h p, do chng s khng truy v n trnh thng d ch xc nh b i c nh m bi n ph i t n t i. b o m hon c nh th c thi phng th c chnh xc, m t bi n ph i c rng bu c n u l p c a n c thi t l p trong b trnh thng d ch, v trnh thng d ch ang lm vi c trn m t i t ng c a l p . r ng b nh d ng yu c u khi m t phng th c trong m t l p cho s n s lm cc bi n c a n c th truy c p thng qua trnh thng d ch, ph i l m t l p TclClass (ph n 1.5) lin k t c nh ngha nh n d ng nhnh l p ph h p cho trnh thng d ch. V th , b i c nh th c thi phng th c ph h p, c th c t o ra b ng m t trong 2 cch. M t gi i php n xu t hi n b t c khi no m t TclObject c t o ra bn trong trnh thng dich. i u ny thi t l p b i c nh th c thi phng th c trong trnh thng d ch. Khi i t ng bng bin d ch c a TclObject thng d ch c t o ra, hm t o cho i t ng bin d ch c th rng bu c cc bi n thnh vin c a i t ng v i cc bi n i t ng thng d ch trong b i c nh c a i t ng thng d ch m i c t o. M t gi i php n i nh ngha m t php ton bind-variables trong m t hm command, m c th c g i ra thng qua phng th c cmd. B i c nh th c thi phng th c ng c thi t l p th c hi n phng th c cmd. Tng t , m bin

44

d ch by gi s ho t ng trn i t ng bng thch h p, v v th c th rng bu c ch c ch n c c bi n thnh vin c yu c u. M t bi n i t ng c t o b i vi c c t tn c a bi n thng d ch, v a ch c a bi n thnh vin trong i t ng bin d ch. Hm t o cho l p c s InstVar t o ra m t tr ng h p c a bi n trong trnh thng d ch, v sau thi t l p m t th t c b y b t t t c cc truy c p n bi n thng qua trnh thng d ch. M i khi bi n c c thng qua trnh thn d ch, th t c b y c g i ra tr c ngay khi c thao tc c. Th t c g i ra hm get thch h p tng ng s tr v gi tr hi n t i c a bi n. Gi tr ny sau c dng t gi tr c a bi n thng d ch v sau c c b i trnh thng d ch. Tng t , m i khi bi n c l p thng qua trnh thng d ch, th t c b y c g i ra ch sau khi vi c ghi hon t t. Th t c l y gi tr hi n t i c l p b i trnh thng d ch, v g i ra hm set tng ng ch u trch nhi m l p gi tr c a thnh vin bin d ch n gi tr hi n t i c l p bn trong trnh thng d ch.

45

Chng 2 C b n v TCL v OTCL


M cl c
2.1. T ng quan v NS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. L p trnh Tcl v Otcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 47

Ng i d ch: H T t Thnh Bin t p: L Ti n Anh. B n g c: NS Simulator for beginners, Chapter 1 [2]

2.1. T ng quan v NS
B m ph ng NS d a trn hai ngn ng : m t b m ph ng h ng i t ng, c vi t b ng C++, v m t b thng d ch OTcl (ph n m r ng h ng i t ng c a Tcl), c dng th c hi n cc o n m k ch b n (script) c a ng i dng. NS c m t th vi n s cc i t ng giao th c v m ng. C 2 nhnh cc l p trong NS: nhnh g m m ngn ng C++ c bin d ch v nhnh g m m l nh OtcL oc thng d ch, gi a chng c s tng ng 1-1. Nhnh g m m ngn ng C++ c bin d ch cho php ta t hi u qu m ph ng v i th i gian th c hi n nhanh hn. i u ny c bi t h u ch cho vi c nh ngha v m ph ng ho t ng m t cch th t chi ti t c a cc giao th c c th , cho php ta gi m th i gian x l s ki n v gi tin. Sau , o n m Otcl c nh p b i ng i dng, ta c th nh ngha m t c u trc (topo) m ng c th , cc giao th c v ng d ng ring bi t m ta mu n m ph ng (t p tnh c a chng c nh ngha bn nhnh m ngn ng C++ c bin 46

d ch) v d ng c a d liu u ra mu n nh n c t b m ph ng. Otcl c th t n d ng cc i t ng c bin d ch trong C++ thng qua m t lin k t Otcl ( c th c hi n b ng vi c s d ng TclCL1 )[5] , lin k t Otcl ny t o ra m t nh x gi a i t ng Otcl v i m i i t ng trong C++. NS l m t b m ph ng s ki n r i r c, trong , tng c a th i gian ph thu c vo vi c nh th i c a cc s ki n, tng ny c duy tr v i m t b nh trnh. M t s ki n l m t i t ng trong nhnh C++ v i m t ID duy nh t, m t th i gian nh tr c v con tr tr t i i t ng s d ng s ki n . B nh trnh n m quy n qu n l m t c u trc d li u c th t (c 4 c u trc, nhng theo m c nh, NS s d ng m t danh sch lin k t n gi n) cng v i cc s ki n chu n b c th c hi n, v th c thi t ng s ki n m t b ng cch kch ho t th (handle) c a s ki n .

2.2. L p trnh Tcl v Otcl


Trong Tcl, cc bi n khng c nh ki u, v v y, m t bi n c th l ki u chu i ho c ki u s nguyn ty thu c vo gi tr m b n gn cho n. V d , khi ta mu n in k t qu c a php chia 1/60, n u ta vi t: puts "[expr 1/60]", th k t qu s l 0! c c k t qu chnh xc, ta c n ch ra r ng ta khng lm vi c v i s nguyn, v c n nh p nh sau: put"[expr 1.0/60.0]" D u # b t u m t dng ch thch khng n m trong chng trnh, trnh thng d ch tcl s b qua dng ny. t o m t file, ta ph i cho n m t ci tn, gi s l "filename", v gn m t con tr t i n, con tr ny s c dng trong chng trnh tcl lin k t v i file , gi s l "file1". Vi c ny c th c hi n b i cu l nh: set file1 [open filename w]. L nh puts c dng in k t qu u ra. Ch : m i l n l nh puts c dng, m t dng m i c b t u. trnh m dng m i, ta ph i thm h u t -nonewline sau lnh "puts. N u mu n in k t qu ra file (gi s l file ta nh ngha trn), g: puts $file1 "o n c n nh p". Kho ng nh y tr ng c t o ra b ng cch thm . V d , n u m t bi n, gi s l x, c gi tr l 2 v ta nh p l nh puts $file1 "x $x" sau n s in m t lnh vo file c tn l filename, v i hai thnh ph n "x" v "2" c ngn cch b i kho ng nh y tr ng. Th c thi m t cu l nh unix: g "exec" v cu l nh. V d , ta mu n ns hi n th m t ng cong t d li u c ghi trong m t file c 2 c t, v i tn l "data
1

TCL web page[5]

47

trong ph m vi chng trnh m ph ng. i u ny c th th c hi n c b ng cch dng l nh xgraph nh sau: Exec xgraph data & (ch : d u "&" c dng i u khi n cho l nh th c hi n ng m). C u trc c a m t cu l nh if nh sau: If { bi u th c}{ <kh i l nh> } else { {<kh i l nh> } Cu l nh if c th c bao trong cc cu l nh "if" khc v v i cc cu l nh "else". Chng c th xu t hi n trong ph n "<kh i l nh>. Ch , khi ki m tra i u ki n logic tng ng, ta nn dng d u "==" ch khng nn dng d u "=". i u ki n logic b t tng ng c c php l "!=". Cc vng l p c d ng nh sau: for {set i 0}{$ i < 5}{incr i}{ <kh i cu l nh> } Trong v d ny, kh i cu l nh trong vng l p s c th c hi n 5 l n. Sau ton t for, c m "{set i 0} khai bo bi n i l b m c a vng l p ng th i kh i t o gi tr 0 cho n. Ph n th hai trong {} l i u ki n ti p t c c a vng l p, n c ngha l "ti p t c th c hi n vng l p n u i<5. Ph n cu i cng c a cu l nh th hi n s thay i trong bi n m, y, ta lin t c tng i thm 1, nhng ta cng c th gi m ho c dng b t k m t bi u th c ton h c no khc thay i gi tr b m.

#Create a procedure+\\ proc test {} {+\\ set a 43 set b 27 set c [exrp $a + $b] set d [expr [expr $a - $b] * $c] puts "c = $c d = $d":\\ for{set k 0} {$k < 10} {incr k}{ if {$k < 5} { puts "k>= 5, pod = [expr $d % $k]" } else {:\\ 48

puts "k >= 5, mod = [expr $d % $k]" } } } calling the procedure test

B ng 2.1: Chng trnh Tcl th c hi n cc php ton tcl cho php t o cc th t c. Chng c th tr v m t vi gi tr trong tr ng h p chng c ch a l nh "return". C php t ng qut c a m t th t c c tn v d l blue nh sau: proc blue {par1 par2 ...} { global var1 var 2 <kh i cu l nh> Return $<m t gi tr no > } Th t c nh n m t vi tham s u vo, c th l cc i t ng, file, ho c cc bi n. Trong tr ng h p c a chng ta, cc bi n c t tn l par1, par2, v.v.. Th t c c g i ra b ng cch g: blue x y ... y, gi tr c a x v y s c gn cho par1 v par2. N u par1 v par 2 b thay i trong th t c, i u khng nh h ng g t i x v y. M t khc, n u ta mu n th t c c kh nng tc ng tr c ti p t i cc bi n bn ngoi ph m vi c a n, ta ph i nh ngha cc bi n l bi n ton c c "global, v d d i y l var 1 v var 2. b ng 2.1, ta th y m t v d th hi n r t nhi u ton t s h c trong tcl. Ch th pow cho k t qu l hm m b c k c a bi n d (dk ). b ng 2.2, ta l y v d m t chng trnh tcl tnh t t c s nguyn t nh hn m t gi i h n j cho tr c. V d , nh n c cc s nguyn t nh hn 11, g: ns prime.tcl 11. V d v cc s nguyn t cho th y cch s d ng l nh if, cc vng l p v th t c. Bi n argc c ch a cc tham s c a vo chng trnh. Bi n argv l m t vect ch a cc tham s c truy n t i chng trnh (v y nn bi n argc chnh l di c a bi n argv), v l nh lindex cho php chng ta l y tr ng h p c a vect c tr b i tham s th hai. Do v y, dng l nh set j [lindex $argv 0] gn cho bi n j gi tr c a tham s u tin c truy n vo chng trnh (gi tr c lu vo bi n argv).

49

# Cch s d ng: ns prime.tcl NUMBER # NUMBER l s cc s nguyn t m chng ta mu n nh n If {$argc !=1}{ # Ph i nh n l y m t i s n, ho c chng trnh s bo #l i Puts stderr ERROR! Ns called with wrong number of argument!($argc) exit 1 } else{ Set j [lindex $argv 0] proc prime {j}{ #Tnh ton t t c cc s nguyn t cho t i j for {set a 2}{$a<=$j}{incr a}{ set b 0 for {set i 2}{$i<$a}{incr i}{ set d [expr fmod($a,$i)] if {$d==0}{ set b 1} } if{$b==1}{ puts $a khng ph i l s nguyn t }else{ puts $a l s nguyn t } } } prime $j

B ng 2.2: Chng trnh Tcl tnh ton cc s nguyn t Chng ti ch gi i thch ng n g n thng qua m t v d v m u l p trnh trong Otcl. N u b n cha bi t m t ngn ng l p trnh h ng i t ng no (C++, Java), b n nn h c cch l p trnh cc ngn ng h ng i t ng. T kha dnh ring Class t sau tn c a m t l p c dng khai bo m t l p m i trong OTcl. Cc phng th c (hm) c a m t l p c khai bo b ng cch dng t kha instproc t ng sau tn l p, ti p l tn c a phng th c v cc tham s c a n. Phng th c init l hm kh i t o c a l p . Bi n self l m t con tr t i b n thn i t ng, gi ng nh con tr "this" trong C++ ho c Java. khai bo m t i t ng (instance), OTcl s d ng t kha instvar. T kha superclass c dng khai bo r ng m t l p l l p con (l p th a k ) c a m t l p khc, trong v d ny, l p Integer (s nguyn)l l p con c a l p Real (s th c). Chng 50

ti khuy n co cc b n tm hi u thm v OTcl b ng cch c thm cc ti li u khc.

# Cch dng: ns fact.tcl Number # NUMBER l s m ta mu n l y giai th a # if {$argc !=1}{ # Ph i l y i s n ho c chng trnh bo l i # Puts stderr ERROR! Ns called with wrong number # of argument!($argc) exit 1 } else{ Set f [lindex $argv 0] } proc Factorial{x}{ for {ser result 1}{$x>1}{set x [expr $x-1]}{ set result [expr $result*$x] } return $result } Set res [Factorial $f] Puts Factorial of $f is $res

B ng 2.3: Chng trnh Tcl tnh giai th a c a m t s

Class Real Real instproc init {a}{ $self instvar value_ set value_ $a } Real instproc sum {x}{ $self instvar value_ set op $value_+[$x set value_] = \t set value_[expr $value_+ [$x set value_]] put $op $value_ } Real instproc multiply {x}{ 51

$self instvar value_ set op $value_*[$x set value_] = \t set value_[expr $value_* [$x set value_]] put $op $value_ } Real instproc divide {x}{ $self instvar value_ set op $value_/[$x set value_] = \t set value_[expr $value_/ [$x set value_]] put $op $value_ } Class integer superclass Real Integer instproc divide {x}{+ $self instvar value_ set op $value_/[$x set value_] = \t set d[expr $value_/ [$x set value_]] set value_ [expr round($d)] put $op $value_ } set realA [new Real 12.3] set realB [new Real 0.5] $realA sum $realB $realA multiply $realB $realA divide $realB set integerA [new Integer 12] set integerB [new Integer 5] set integerC [new Integer 7] $integerA multiply $integerB $integerB divide $integerC

B ng 2.4: Chng trnh Tcl n gi n s d ng i t ng real v integer

52

Chng 3 Cc thnh ph n c b n trong b m ph ng NS


M cl c
3.1. Kh i t o v k t thc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2. nh ngha m t m ng cc lin k t v cc nt . . . . . . . 3.3. Tc nhn v ng d ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 56 58 59 60 61 61 65 67 67 67 69 70 70

3.3.1. FTP trn n n TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.2. CBR qua UDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.3. UDP v i cc ngu n lu l ng khc . . . . . . . . . . . . . . . . . . . . . 3.4. L p l ch s ki n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.5. Hi n th : dng NAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6. Bm v t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6.1. Bm cc i t ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6.2. C u trc c a cc file bm v t. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.7. Bi n ng u nhin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . t o............................................................ 3.7.2. T o cc bi n ng u nhin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.7.1. H t nhn (hay gi tr ban u c a m t bi n ng u nhin)v b

Ng i d ch: Nguy n Thanh H i Bin t p: H T t Thnh B n g c: NS Simulator for beginners, Chapter 2 [2] 53

Trong chng ny chng ta s trnh by cc b c u tin g m c: Vi c kh i t o v k t thc c a b m ph ng ns. nh ngha cc node m ng, link, hng i v topology. nh ngha cc tc nhn (agent) v cc ng d ng. Cng c hi n th nam . Bm v t. Cc bi n ng u nhin.

3.1. Kh i t o v k t thc

y l dng u tin trong t p l nh tcl. Dng ny khai bo 1 bi n ns m i dng l nh set, b n c th g i bi n ng u nhin ny nh b n mu n, tuy nhin thng th ng ng i ta khai bo n l ns v n l m t th hi n c a l p Simulator, do v y n l m t i t ng. Th t v y o n m [new simulator] l m t tr ng h p th hi n c a l p Simulator s d ng t kha new. V y nn vi c s d ng bi n m i ns ny chng ta c th s d ng t t c phng th c c a l p Simulator, chng ta s th y i u ny ph n sau. c cc file u ra v i d li u m ph ng (file bm v t) hay cc file s d ng cho hi n th (cc file nam) th chng ta c n t o cc file b ng cch s d ng l nh "open": #M Set $ns #M set $ns file bm v t tracefile1 [open out.tr w] trace-all $tracefile1 file bm v t NAM namfile [open out.nam w] namtrace-all $namfile

o n m trn t o m t file bm v t tn l out.tr v m t file bm v t hi n th nam (cho cng c NAM) tn l "out.nam". Trong t p lnh tcl, cc file ny khng c g i m t cch r rng b ng tn c a chng nhng thay vo b ng cc con tr c khai bo trn v c g i l n l t l tracefile1 v "namefile". Dng u tin v dng th 4 trong v d ny ch l cc ch thch, chng khng ph i l cc l nh m 54

vn te lec om
M t m ph ng ns b t u v i cu l nh set ns [new Simulator]

M t vi v d n gi n c a ra s cho php chng ta th c hi n cc b c u tin v i b m ph ng ns

ph ng. Ch r ng chng b t u v i m t k t "#". Dng th 2 m file "out.tr" s d ng cho ghi, c khai bo v i ch "w". Dng th 3 s d ng m t phng th c Simulator tn l trace-all c tham s l tn c a file m cc trace s ch y. V i cu l nh simulator ny chng ta s bm v t t t c cc s ki n theo m t khun d ng c th m chng ta s gi i thch sau chng ny Dng cu i cng bo cho b m ph ng ghi l i t t c s bm v t thnh d ng u vo NAM. N cng a ra tn file m s bm v t s c ghi l i sau b ng l nh $ns flush-trace (xem th t c finish d i). Trong tr ng h p c a chng ta, file c ch t i b ng con tr $ namfile l file out.tr Ch : cc cu l nh trace-all v namtrace-all c th d n n vi c t o ra cc file kch th c l n. N u chng ta mu n ti t ki m khng gian, cc l nh trace khc s c s d ng b i v y khi t o trace ch m t t p con cc s ki n m ph ng l th c s c n n. Nh cc cu l nh c m t trong ph n 3.6 K t thc chng trnh c th c hi n b ng m t th t c finish # nh ngha m t th t c finish Proc finish {} { glocal ns tracefile1 namfile $ns flush-trace close $tracefile1 close $namfile exe nam out.nam & exit 0 } T kha proc khai bo m t th t c - trong tr ng h p ny l finish v khng c tham s no. T kha global c dng cho bi t r ng chng ta ang dng cc bi n c khai bo ngoi th t c. Phng th c simulator flush-trace s (dump) cc trace vo cc file tng ng. L nh tcl close ng cc file bm v t nh ngha tr c v exec th c thi chng trnh nam cho hi n th . Lu r ng chng ta chuy n tn th t c a file bm v t thnh nam v khng th c hi n i u ny v i con tr namfile v n khng ph i cu l nh ngoi. Cu l nh exit s k t thc ng d ng v tr v s 0 nh tr ng thi c a h th ng. Gi tr khng l m c nh cho exit khng l i (clean exit). Cc gi tr khc c th c dng cho bi t l m t exit c m t vi l i g . cu i chng trnh ns chng ta s g i th t c finish v ch ra th i i m k t thc. V d , $ns at 125.0 finish s c dng g i finish vo th i i m 125 giy. Th t v y, phng th c c a simulator cho php chng ta l p l ch cc s ki n m t cch chnh xc. Sau trnh m ph ng c th b t u b ng l nh: 55

$ns run

3.2. nh ngha m t m ng cc lin k t v cc nt


Cch nh ngha m t nt. set n0 [$ns node] Chng ta t o m t nt c tr t i b i bi n n0. Khi mu n tham chi u nt trong t p l nh th chng ta s vi t $n0. M t khi nh ngha vi nt, chng ta c th nh ngha cc lin k t m k t n i t i chng. V d nh ngha m t lin k t l: $ns duplex-link $n0 $n3 10Mb 10ms DropTail y cc nt $n0 v $n2 c k t n i b ng m t lin k t 2 chi u c tr ng truy n 10ms v dung l ng m i chi u 10Mbps. nh ngha m t lin k t c chi u thay cho m t lin k t 2 chi u, chng ta thay duplex-link b ng simplex-link Trong NS, m t hng i u ra c a m t nt c th c thi nh m t ph n c a m i lin k t m u vo c a n l nt kia. nh ngha lin k t ch a cch i u khi n trn b nh hng i. Trong tr ng h p c a chng ta, n u dung l ng b m c a hng i u ra b v t qu th gi tin cu i cng n s b lo i b (ty ch n DropTail). C nhi u ty ch n n a khc nh l k thu t RED (Lo i b s m ng u nhin), FQ (S p hng i cn b ng), DRR (Deficit Round Robin), s p hng i cn b ng ng u nhin (SFQ) v CBQ (g m m t b l p l ch u tin v b l p l ch round-robin); chng ta s tr l i k thu t RED sau m t cch chi ti t hn). T t nhin, chng ra cng nh ngha dung l ng b m hng i lin quan t i m i lin k t. Ch ng h n: #set Queue Size of link (n0-n2) to 20 $ns queue-limit $n0 $n2 20 M t lin k t n cng c m u c trnh by nh trong hnh 3.1. Trn hng i c th c hi n b ng vi c g i cc gi tin b h y t i m t tc nhn Null. i t ng TTL s tnh tham s Time to Live 1 cho m i gi nh n c. M t lin k t song cng c xy d ng t hai lin k t n cng song song. Xt m t v d c a m t m ng n gi n c m t trong hnh 3.2. M ng ny c nh ngha thng qua o n m c a ra trong b ng 3.1 Ch r ng chng ta nh ngha dung lng b m tng ng v i m t lin k t duy nh t (gi a n2 v n3) Cc hng i tng ng v i t t c lin k t khc u c
cc gi c m t vi th k t h p c c p nh t trong m ng v ch ra chng s trong m ng trong th i gian bao lu tr c khi t i c ch. Khi th i gian ny qu h n cc gi tin s b h y.
1

56

Hnh 3.1: Knh truy n n cng

gi tr m c nh l 50. Gi tr m c nh ny n m trong cu l nh c a ns-default.tcl2 Queue set limit_ 50 #T o 6 Set n0 Set n1 Set n2 Set n3 Set n4 Set n5 nt [$ns [$ns [$ns [$ns [$ns [$ns

node] node] node] node] node] node]

$T o cc lin k t gi a cc nt $ns duplex-link $n0 $n2 2Mb 10ms DropTial $ns duplex-link $n1 $n2 2Mb 10ms DropTial $ns simplex-link $n2 $n3 0.3Mb 100ms DropTail $ns simplex-link $n3 $n2 0.3Mb 100ms DropTail $ns duplex-link $n3 $n4 0.5Mb 40ms DropTail $ns duplex-link $n3 $n5 0.5Mb 30ms DropTail # t kch th c hng i cho lin k t (n2-n3) b ng 20 $ns queue-limit $n2 $n3 20 B ng 3.1: nh ngha cc nt, knh truy n v gn kch c hng i Chng ta c th tm gi tr m c nh ny b ng cch no ? u tin, ki m tra file ns-lib.tcl, y ta s th y th t c queue-limit

Simulator instproc queue-limit {n1 n2 limit}{


2

trong is-allinone-2.XXX/ns-2.XXX/tcl/lib,

y XXX l ch s phin b n, v d 1b9a.

57

$self instvar link_ [$link_([$n1 id]:[$n2 id]) queue] set limit_ $limit } Trong , chng ta th y r ng gi i h n hng i l m t phng th c c a b m ph ng m c n 3 tham s : 2 nt nh ngha knh truy n v gi i h n hng i. y ta th y s gi i h n hng i c a ra b i bi n limit_.

Hnh 3.2: V d v m t m ng n gi n

#Thi t t m t k t n i TCP Set tcp [new Agent/TCP] $ns attach-agent $n0 $tcp Set sink [new Agent/TCP] $ns attach-agent $n4 $tcp $ns connect $tcp $sink $tcp set fid_ 1 $tcp set packetSize_ 552 #Thi t t m t FTP qua k t n i TCP Set ftp [new Application/FTP] $ftp attach-agent $tcp B ng 3.2: nh ngha m t ng d ng FTP s d ng tc nhn TCP

3.3. Tc nhn v ng d ng
V a r i chng ta nh ngha c u trc m ng (cc nt v knh truy n ), by gi ta s t o dng lu l ng qua chng. Cu i cng chng ta c n nh ngha vi c nh 58

tuy n ( cc ngu n v ch c th ) cho cc tr m (cc giao th c nh tuy n) v ng d ng s d ng chng. Trong v d tr c, chng ta mu n ch y m t ng d ng FTP (giao th c truy n file) gi a nt $n0 v $n4 v ng d ng CBR (t c bit khng i) gi a nt $n1 v $n5. Giao th c internet m FTP s d ng l TCP/IP (Giao th c i u khi n v n chuy n/Giao th c Internet) cn CBR s d ng giao th c UDP (giao th c gi d li u ng i dng). Tr c tin chng ta s nh ngha ( nh trong b ng 3.2 m t tc nhn TCP gi a nt ngu n $n0 v nt ch $n4 v ng d ng FTP s d ng n. Sau chng ta nh ngha nh trong b ng 3.3 tc nhn UDP gi a nt ngu n $n1 v nt ch $n5 v ng d ng CBR s d ng n.

3.3.1. FTP trn n n TCP


TCP l m t giao th c i u khi n ngh n tin c y ng s c gi i thch chi ti t trong chng 4 (Cu n "ns for beginer"). N s d ng cc bo nh n c t o t pha ch bi t gi tin nh n c y hay cha. Cc gi b m t c hi u l cc d u hi u t c ngh n, nh v y nguyn nhn TCP yu c u knh truy n 2 h ng l cc bo nh n quay tr v ngu n. C m t vi bi n th c a giao th c TCP, nh l Tahoe, Reno, Newreno, Vegas. Ki u tc nhn (agent-c th hi u l m t tr m) xu t hi n trong dng u tin: Set tcp [new Agent/TCP] Cu l nh ny cng a ra m t con tr g i "tcp" cho tc nhn TCP, m t i t ng trong NS. Cu l nh $ns attach-agent $n0 $tcp nh ngha nt ngu n k t n i TCP. Cu l nh Set sink [new Agent/TCPSink] nh ngha ho t ng c a nt TCP ch v gn t i n m t con tr g i l sink. Chng ta lu r ng trong TCP, nt ch c m t vai tr tch c c trong giao th c t o ra bo nh n b o m t t c gi tin n c ch. Cu l nh $ns attach-agent $n4 $sink nh ngh a nt ch. L nh $ns connect $tcp $sink t o k t n i TCP gi a cc nt ngu n v nt ch. TCP c nhi u tham s v i cc gi tr m c nh c c nh ban u c th b thay i n u xt trong tr ng h p c th . V d , kch th c gi tin TCP l 1000 bytes. Gi tr ny c th thay i thnh gi tr 552 byte b ng l nh $tcp set packetSize_ 552. Khi chng ta c vi lu ng d li u, c th ta mu n phn bi t chng ta c th nh n ra chng v i cc mu khc nhau trong ph n hi n th . i u ny c th c hi n b ng cu l nh $tcp set fid_ 1 gn cho k t n i TCP m t s nh n d ng lu ng b ng 1; sau ta s gn s nh n d ng lu ng dng cho k t n i UDP l 2. Khi k t n i TCP c nh ngha th ng d ng FTP c th nh ngha qua n.

59

#Thi t t m t k t n i UDP Set udp [new Agent/UDP] $ns attach-agent $n1 $udp Set null [new Agent/Null] $ns attach-agent $n5 $null $ns connect $udp $null $udp set fid_ 2 #Thi t t m t CBR qua k t n i UDP Set cbr [new Application/Traffic/CBR] $cbr attach-agent $udp $cbr set packetSize_ 1000 $cbr set rate_ 0.01Mb $cbr set random_ false

B ng 3.3: nh ngha m t ng d ng CBR s d ng tc nhn UDP i u ny c th c hi n 3 dng cu i trong b ng 3.2 .

Ch r ng c tc nhn TCP cng nh ng d ng FTP u c cho cc con tr : chng ta g i con tr cho tc nhn TCP l tcp (tuy nhin c th s d ng tn khc) v con tr cho FTP l ftp.

3.3.2. CBR qua UDP


Ti p theo chng ta s nh ngha k t n i UDP v ng d ng CBR qua n, xem b ng 3.3 . M t ngu n UDP (Agent/UDP) v ch (Agent/Null) c nh ngha theo 1 cch tng t nh tr ng h p c a TCP. V ng d ng CBR s d ng UDP, b ng 3.3 cng ch ra cch nh ngha t c truy n d n v kch th c gi tin. Thay v nh ngha t c trong cu l nh $cbr set rate_ 0.01Mb, ta c th nh ngha kho ng th i gian gi a cc gi truy n i b ng l nh $cbr set interval_ 0.005 Cc tham s khc c a CBR l random_ , l m t c s ch ra m ph ng c a ra t p m ng u nhin trong th i gian truy n l p l ch hay khng. M c nh n l off, v c th c t thnh on b ng l nh $cbr set random_ 1 Kch th c gi c th c t m t gi tr no b ng l nh $cbr set packetSize_ <packet size>

60

3.3.3. UDP v i cc ngu n lu l ng khc


Chng ta c th m ph ng cc ki u ng d ng lu l ng s d ng giao th c UDP khc:ngu n lu l ng dng v khng dng phn b theo hm m, ngu n dng v khng dng phn b pareto, v m t ngu n i u khi n d a trn bm v t (trace-driven). Ngu n c phn b hm m v ngu n c phn b pareto c khai bo l n l t l Set source [new Application/Traffic/Exponential] Set source [new Application/Traffic/Pareto] Cc ngu n ny yu c u cc tham s : packetSize_ (theo byte); burst_time_ nh ngha th i gian b t trung bnh; idle_time nh ngha th i gian t t trung bnh v rate_ xc nh t c truy n d n trong su t chu k b t. Trong ngu n pareto b t/t t chng ta cng nh ngha hnh d ng b ng tham s shape_. M t v d c a m t Pareto b t/t t c a ra: Set source [new Application/Traffic/Pareto] $source set packetSize_ 500 $source set burst_time_ 200ms $source set idle_time_ 400ms $source set rate_ 100k $source set shape_ 1.5 (Cc bi n ng u nhin c bn trong ph n 2.7) ng d ng i u khi n d a trn bm v t c nh ngha nh sau. u tin chng ta khai bo file trace: Set tracefile [new Tracefile] $tracefile filename <file> Sau chng ta nh ngha ng d ng i u khi n d a trn bm v t v g n n vo file set stc [new Application/Traffic/Trace] $src attach-tracefile $tracefile File s theo byte. d ng nh phn v ch a th i gian gi a cc gi theo ms v kch th c gi

3.4. L p l ch s ki n
NS l m t m ph ng d a trn s ki n r i r c. T p l nh Tcl nh ngha khi no s ki n x y ra. Cu l nh kh i t o set ns [new Simulator] t o m t chng trnh l p l ch s ki n v cc s ki n c l p l ch b ng cch s d ng d ng sau:

61

$ns at <time> <event> B l p l ch b t u khi ta ch y ns, thng qua l nh $ns run Trong v d n gi n c a chng ta, ta s l p l ch qu trnh b t u v k t thc c a ng d ng FTP v CBR. i u ny c th c th c hi n thng qua cc l nh sau: $ns $ns $ns $ns at at at at 0.1 $cbr start 1.0 $ftp start 124.0 $ftp stop 0.1 $cbr stop

Nh v y FTP s ho t ng trong th i gian t 1.0 n 124.0 v CBR s ho t ng trong th i gian 0.1 n 124.5 (t t c n v l giy). By gi chng ta s n sng ch y m ph ng c a n. N u cc cu l nh c vi t trong m t file g i l ex1.tcl (xem b ng ?? ) th n gi n ta ch c n g ns ex1.tcl Ch trong b ng ?? chng ta thm cu i m t th t c khc ghi m t file u ra v i kch th c c a s TCP t c th i cc kho ng th i gian 0.1 giy. Trong v d , tn file u ra l WinFile. Th t c l quy nn c sau 0.1 giy n s g i l i chnh n. N chuy n ngu n TCP v file t i u ra ghi mh m t tham s m ta mu n ghi u ra. set ns [new Simulator] # nh ngha cc mu c a cc lu ng khc nhau $ns color 1 Blue $ns color 2 Red #M file bm v t set tracefile1 [open out.tr w] set winfile [open WinFile w] #ns trace-all $tracefile1 #M file bm v t NAM set namfile1 [open out.tr w] #ns namtrace-all $namfile # nh ngha th t c finish proc finish {} { glogal ns tracefile1 namefile #ns flusj-trace close $tracefile1 close $namfile exec nam out.nam & exit 0

62

# T o 6 nt set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] set n3 [$ns node] set n4 [$ns node] set n5 [$ns node] #T o cc knh truy n gi a cc nt $ns duplex-link $n0 $n2 2Mb 10ms Droptail $ns duplex-link $n1 $n2 2Mb 10ms Droptail $ns simplex-link $n2 $n3 0.3Mb 100ms Droptail $ns simplex-link $n3 $n2 0.3Mb 100ms Droptail $ns duplex-link $n3 $n4 0.5Mb 40ms Droptail $ns duplex-link $n3 $n5 0.5Mb 30ms Droptail # t v tr nt (cho NAM) $ns duplex-link-op $n0 $n2 orient right-down $ns duplex-link-op $n1 $n2 orient right-up $ns simplex-link-op $n2 $n3 orient right $ns simplex-link-op $n3 $n2 orient left $ns duplex-link-op $n3 $n4 orient right-up $ns duplex-link-op $n3 $n5 orient right-down # t kch th c hang i cho knh truy n (n2-n3) thnh 20 $ns queue-limit $n2 $n3 20 #Thi t l p cc phin k t n i TCP set tcp [new Agent/TCP] $ns attack-agent $n0 $tcp set tcp [new Agent/TCPSink] $ns attack-agent $n4 $sink $ns connect $tcp $sink $tcp set fid_ 1 $tcp set packetSize_ 552 $Thi t l p m t phin k t n i FTP d a trn TCP set ftp [new Application/FTP] $ftp attach-agent $tcp #Thi t l p phin k t n i UDP set tcp [new Agent/UDP] $ns attack-agent $n1 $udp set null [new Agent/Null] 63

$ns attack-agent $n5 $null $ns connect $udp $null $tcp set fid_ 2 $Thi t l p m t phin k t n i CBR d a trn UDP set cbr [new Application/Trafic/CBR] $cbr attach-agent $udp $cbr set packetSize_ 1000 $cbr set rate_ 0.01Mb $cbr set random_ false $ns $ns $ns $ns at at at at 0.1 $cbr start 1.0 $ftp start 124.0 $ftp stop 124.5 $cbr stop

# Th t c v kch th c c a s . L y tn c a nut tcp ngu n v # c a cc file u ra nh cc tham s /vector proc plotWindow {tcpSource file} { global ns set time 0.1 set now {$ns now} set cwnd {$tcpSource set cwnd_} put $file $now $cwnd $ns at [expr $now+$time] plotWindow $tcpSource $file } $ns at 0.1 plotWindow $tcp $winfile $ns at 125.0 finish $ns run

B ng 3.4: Chng trnh ex.tcl

64

3.5. Hi n th : dng NAM


Khi chng ta ch y v d 3.1 , cng c hi n th nam s hi n th m t m ng 6 nt. V tr c a cc nt c th c ch n ng u nhin. th t c ti l p v tr ban u c a cc n t nh trong hnh 3.2 , chng ta thm vo t p l nh tcl o n sau: #a ra v tr nt (cho NAM) $ns duplex-link-op $n0 $n2 orient right-down $ns duplex-link-op $n1 $n2 orient right-up $ns simplex-link-op $n2 $n3 orient left $ns simplex-link-op $n3 $n2 orient right $ns duplex-link-op $n3 $n4 orient right-up $ns duplex-link-op $n3 $n5 orient right-down Ch : n u m t v tr ng u nhin c a cc nt c ch n v n khng tha mn, ta c th nh n vo nt re-layout v m t v tr khc s c ch n. Ta cng c th s a v tr b ng cch nh p chu t vo nt Edit/View v ko r m i nt t i v tr yu c u (v i s tr gip c a con chu t). C n lu r ng trnh hi n th nam hi n th cho chng ta v i hnh nh cc gi CBR (dng tin t nt 1 n nt 5) mu v cc gi TCP (t nt 0 n nt 4) mu xanh. Cc ACK c a TCP (cc bo nh n) i theo cc h ng ng c v cng c mu xanh tuy nhin ch m hn b i v m t ACK c kch th c 40 byte trong khi cc gi TCP c kch th c 552 byte. nh n c cc mu, chng ta c n nh ngha trong ph n b t u c a t p l nh ex1.tcl $ns color 1 Blue $ns color 2 Red Ch r ng n u c m t file nam th khng c n ph i ch y ns xem n, m ph i g tr c ti p l nh nam <file name> Snapshots t cc trnh hi n tr nam c th c in (vo trong m t my in ho c thnh m t file) b ng cch vo ty ch n File menu trn cng. M t vi i u khc c th th c hi n trong NAM T mu nt, v d $n0 color red nh n u mu n n0 xu t hi n v i mu chng ta vi t

Hnh d ng cc nt: m c nh chng l vng, tuy nhin c th hi n th khc i. V d ta c th g $n1 shape box (ho c thay v box ta c th dng hexagon hay circle) T mu lin k t: nh v d $ns duplex-link-op $n0 $n2 color green 65

Thm v xa cc d u (mark): Chng ta c th nh d u m t nt th i i m ang xt (v d cng th i i m khi chng ta kch ho t m t ngu n lu l ng no th i i m ). V d chng ta c th g $ns at 2.0 $n3 add-mark m3 blue box $ns at 30.0 $n3 delete-mark m3 o n m ny t o ra d u mu xanh bao quanh nt 3 trong kho ng th i gian [2,30] Thm cc nhn: m t nhn c th xu t hi n trn mn hnh t th i i m ang xt tr i, nh l a ra nhn active node t i m t nt n3 t th i i m 1.2. $ns at 1.2 "$n3 label \" active node\"" V a m t nhn "TCP input link" cho lin k t n0-n2 g $ns duplex-link-op $n0 $n2 label TCP input link Thm ch : cu i khung c a c a s NAM, ta c th t o ch hi n ra th i i m ang xt. Ch ny c th c dng m t m t s ki n no c l p l ch th i i m . V d . $ns at 5 "$ns trace-annotate \"packet drop\"" Ngoi ra trong NAM c th gim st kch th c hng i. V d , gim st hng i u vo c a lin k t gi a n2-n3, b ng cch g $ns simplex-link-op $n2 $n3 queuePos 0.5

(T t c cc v d u tham chi u t i cc i t ng c nh ngha trong ex1.tcl) Giao di n h a c a NAM c ch ra trong hnh 3.3

Hnh 3.3: Giao di n h a NAM

66

3.6. Bm v t
3.6.1. Bm cc i t ng
M ph ng NS c th t o ra trace hi n th (cho NAM) cng nh m t file bm v t ASCII tng ng v i cc s ki n ng k trong m ng. Khi chng ta s d ng bm v t (nh c p trong ph n 3.1) th ns s chn 4 i t ng vo trong lin k t: EngT, DeqT, RecvT v DrpT nh ch ra trong hnh 3.4 EnqT ng k thng tin lin quan

Hnh 3.4: Bm cc i t ng trong m t knh truy n n cng n m t gi n v c x p hng i hng i u vo c a knh truy n. N u gi tin trn th thng tin lin quan n gi b h y s c i u khi n b i DrpT. DeqT ng k thng tin ngay lc gi tin b y ra kh i hng i. Cu i cng, RecvT a thng tin c a chng ta v cc gi nh n c u ra knh truy n. NS cho php chng ta nh n nhi u thng tin hn l thng qua bm v t M t phng php l s d ng gim st hng i. Phng php ny c m t ph n 7.3 trn. cu i

3.6.2. C u trc c a cc file bm v t


Khi bm v t trong m t file ascii u ra, trace c t ch c thnh 12 tr ng nh sau (trong hnh 3.5). ngha c a cc tr ng l:

Hnh 3.5: Cc tr ng xu t hi n trong m t trace

67

1. Tr ng u tin l ki u s ki n. c a ra b ng m t trong 4 bi u t ng r,+,-,d l n l t tng ng v i nh n ( u ra c a knh truy n), x p vo hng, ra kh i hng, v b lo i. 2. Tr ng th 2 a ra th i i m x y ra s ki n. 3. a ra nt u vo c a knh truy n m s ki n x y ra 4. a ra nt u ra c a knh truy n m s ki n x y ra . .

5. a ra ki u gi tin (v d nh CBR hay TCP. Ki u tng ng v i tn m chng ta gn cho cc ng d ng . V d , ng d ng TCP b ng 3.2 c g i l tcp. 6. a ra kch th c gi tin 7. M t vi c (chng ta s xem sau)

8. y l m nh n d ng lu ng (fid) Ipv6 m m t ng i s d ng c th t cho m i dng t p l nh Otcl u vo. 9. y l a ch ngu n a ra d i d ng "node.port" 10. y l a ch ch, c d ng nh trn. 11. y l s th t gi tin c a giao th c l p m ng. M c d cc th c thi UDP trong m t m ng th c t khng s d ng s tu n t ny, tuy nhin ns v n gi v t i c a s tu n t gi UDP cho m c ch phn tch. 12. Tr ng cu i cng ch ra m nh n d ng duy nh t c a gi tin. M t v d , xt o n m u c a trace sinh ra b ng vi c ch y t p l nh ex1.tcl c a ra trong b ng 3.4

r s r s s r s s r s s

93.393900519 0 RTR 19 message 94.278068529 0 RTR 20 message 94.278504547 1 RTR 20 message 100.000000000 0 AGT 21 tcp 100.000000000 0 RTR 21 tcp 100.000936054 1 AGT 21 tcp 100.000936054 1 AGT 22 ack 100.000936054 1 RTR 22 ack 100.001984108 0 AGT 22 ack 100.001984108 0 AGT 23 tcp 100.001984108 0 RTR 23 tcp 68

32 1 1 -1 32 0 0 -1 32 0 0 -1 40 0 0 1 60 0 0 1 60 0 0 1 40 0 1 0 60 0 1 0 60 1 1 0 1000 0 0 1020 0 0

0 0 0 0 1 1 0 0 0 1 1

-1 -1 -1 0 0 0 0 0 0 0 1 1 1

s s r s s r s s r s s r s s r s s r s s r s s s s r s

100.001984108 100.001984108 100.006992162 100.006992162 100.006992162 100.011920235 100.011920235 100.011920235 100.013128291 100.013128291 100.013128291 100.014811365 100.014811365 100.014811365 100.019719421 100.019719421 100.019719421 100.024687497 100.024687497 100.024687497 100.025795554 100.025795554 100.025795554 100.025795554 100.025795554 100.026883631 100.026883631

0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0

AGT RTR AGT AGT RTR AGT AGT RTR AGT AGT RTR AGT AGT RTR AGT AGT RTR AGT AGT RTR AGT AGT RTR AGT RTR AGT AGT

24 24 23 25 25 24 26 26 25 27 27 26 28 28 27 29 29 28 30 30 29 31 31 32 32 30 33

tcp tcp tcp ack ack tcp ack ack ack tcp tcp ack tcp tcp tcp ack ack tcp ack ack ack tcp tcp tcp tcp ack tcp

1000 1020 1020 40 0 60 0 1020 40 0 60 0 60 1 1000 1020 60 1 1000 1020 1020 40 0 60 0 1020 40 0 60 0 60 1 1000 1020 1000 1020 60 1 1000

0 0 0 1 1 0 1 1 1 0 0 1 0 0 0 1 1 0 1 1 1 0 0 0 0 1 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

1 1 1 0 0 1 0 0 0 1 1 0 1 1 1 0 0 1 0 0 0 1 1 1 1 0 1

0 1 1 1 1 1 2 2 1 0 1 2 0 1 1 3 3 1 4 4 3 0 1 0 1 4 0

2 2 1

3 3 4 4 3

5 5 6 6 7

B ng 3.5: N i dung c a m t file bm v t (trace file)

3.7. Bi n ng u nhin
Cc bi n ng u nhin (RVs) v i phn b khc nhau c th c t o trong ns. Do vai tr quan tr ng c a cc bi n ng u nhin trong m hnh ha lu l ng v m ph ng m ng nn chng ta c n nh l i v n t t cc nh ngha v t m quan tr ng c a cc bi n ng u nhin chnh trong ph l c 11. Chi ti t hn, c th tra c u thm, t i http://www.xycoon.com.

69

3.7.1. H t nhn (hay gi tr ban u c a m t bi n ng u nhin)v b t o


Ngoi s phn b cc bi n ng u nhin, c m t s v n khc l chng ta c n quan tm t i khi no m ph ng m t bi n ng u nhin: C ph i chng ta mu n nh n oc cng m t gi tr bi ng ng u nhin khi ch y l i m ph ng (c th thay i m t vi tham s khc c a m ph ng)? i u ny cho php chng ta so snh tr c ti p, cho m t t p s ki n ng u nhin n l , cc k t qu m ph ng ph thu c vo m t vi tham s v t l (nh l cc tr knh truy n hay di hng i) nh th no. Th ng khi chng ta c n cc bi n ng u nhin c l p v i nhau. T o cc bi n ng u nhin s d ng m t h t gi ng (l m t s no m chng ta vi t trong t p l nh tcl). Gi tr h t gi ng l 0 gy ra vi c t o m t bi n ng u nhin m i m i l n ta ch y m ph ng, v v y, n u ta mu n c cng cc bi n ng u nhin oc t o cho cc l n m ph ng khc nhau, ta s ph i lu cc bi n ng u nhin t o l i. Tri l i, n u chng ta s d ng cc h t gi ng khc th m i khi chng ta ch y m ph ng, cng m t chu i bi n ng u nhin c t o trong m ph ng s c t o ra Trong ns, n u chng ta s d ng cc b t o khc nhau v i cng h t gi ng v phn b , chng s t o cc ra gi tr bi n ng u nhin gi ng nhau (tr khi seed b ng 0). Chng ta s th y i u ny trong v d d i

3.7.2. T o cc bi n ng u nhin
u tin chng ta t o m t b t o m i, v gn n m t seed l 2 v i l nh Set MyRng [new RNG] $MyRng2 seed 2 Sau t o m t bi n ng u nhin th c s , chng ta ph i nh ngha ki u phn b v cc tham s c a n. Chng ta a ra m t vi v d d i y: ta s t o cc bi n ng u nhin v i phn b Pareto, h ng s , ng nh t, hm m v siu m. 1. Phn b pareto: M t bi n ng u nhin phn b pareto ngha l r1 c xy d ng b ng cch cho bi t k v ng c a n v tham s hnh d ng (shape) c a n , gi tr m c nh tng ng l 1.0 v 1.5. Set r1 [new RandomVariable/Pareto] $r1 use-rng $MyRng 70

$r1 set avg_ 10.0 $r1 set shape_ 1.2 2. H ng s : M t bi n ng u nhin suy bi n l h ng s v b ng gi tr c a n set r2 [new RandomVatiable/Constant] $r2 use-rng $MyRng $r2 set val_ 5.0 3. Phn b u: c nh ngha thng qua i m nh nh t v l n nh t trong kho ng h tr c a n: set $r3 $r3 $r3 r3 [new RandomVariable/Uniform] use-rng $MyRng set min_ 0.0 set max_ 10.0 trung bnh c a n

\item \textbf{Phn b m:} c nh ngha qua gi tr \begin{quote} \begin{verbatim} set r4 [new RandomVariable/Exponential] $r4 use-rng $MyRng $r4 set avg_ 5 4. Phn b siu m: c nh ngha nh sau: set $r5 $r5 $r5 r5 [new RandomVariable/HyperExponential] use-rng $MyRng set avg_ 1.0 set cov_ 4.0

Ti p theo chng ta s trnh by m t chng trnh nh (rv1.tcl) ki m tra cc bi n ng u nhin phn b Pareto v i cc seed v b t o khc nhau nhng v i cng phn b Pareto. c a ra trong B ng 2.6. Cho m i seed (gi tr 0, 1 v 2) v b t o, chng ta t o m t chu i 3 bi n ng u nhin. Bi n count c gn s bi n ng u nhin m chng ta t o b ng cch s d ng test cho m i seed v b t o. Khi ch y v d ny ta c th th y r ng v i seed b ng 0, hai b t o cho cc gi tr bi n khc nhau; nh v y ta t c 6 gi tr khc nhau (3 gi tr t m i b t o). Cho cc seed khc, m t b t o t o ra 3 gi tr khc nhau nhng cc gi tr ny khng ph thu c vo b t o: gi tr th n c t o b i b t o 1 cng nh c t o b i b t o 2.

71

## V d

n gi n lm r cch dng l p RandomVariable t

tcl

Set count 3 For {set I 0} {$i<3}{incr i}{ Puts ===== I = $i Set MyRng1 [new RNG] $MyRng1 seed $i Set MyRng2 [new RNG]

$MyRng2 seed $i Set r1 [new RandomVariable/Pareto] $r1 use-rng $MyRng1 $r1 set avg_ 10.0 $r1 set shape_ 1.2 Puts stdout KT phn b Pareto, avg = [$r1 set avg_] shape = [$r1 set shape_ ]

Set r2 [new RandomVariable/Pareto] $r1 use-rng $MyRng2 $r1 set avg_ 10.0 $r1 set shape_ 1.2 Puts stdout KT phn b } Pareto, avg = [$r2 set avg_] shape = [$r2 set shape_ ]

B ng 3.6: Ki m tra cc bi n ng u nhin phn b Pareto v i cc seed khc nhau

72

Chng 4 Lm vi c v i file trace


M cl c
4.1. X 4.2. S 4.3. X l file d li u v i cng c awk . . . . . . . . . . . . . . . . . . 74 75 76 78 79 80 80 80 82 82

d ng grep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . l cc file d li u v i perl . . . . . . . . . . . . . . . . . . . . . . .

4.4. V th v i gnuplot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5. V th v i xgraph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.6. Trch tch thng tin trong m t k ch b n tcl . . . . . . . . . 4.7. Minh h a m t s file awk v gnuplot . . . . . . . . . . . . . . . 4.7.1. Tnh thng l ng c a m ng theo hai ki u file trace . . . . . . 4.7.2. M u v th thng l ng v a tnh xong b ng file awk . . 4.8. M t s file hnh plot v b ng gnuplot . . . . . . . . . . . . . . .

Ng i d ch: Nguy n M nh Linh Bin t p: Nguy n Qu c Bnh B n g c: NS Simulator for beginners, Chapter 3 [2]

Chng trnh m ph ng NS c th cung c p r t nhi u d li u chi ti t v cc s ki n x y ra khi m t m ng ho t ng. N u chng ta mu n phn tch nh ng d li u chng ta c n ph i trch tch nh ng thng tin lin quan ra t nh ng file v t (trace files) v x l chng Tuy r ng ta c th vi t nh ng chng trnh b ng b t c ngn ng l p trnh no 73

c th x l c nh ng file d li u , nhng c m t s cng c mi n ph ph h p cho m c ch phn tch file trace c pht tri n trn m t s h i u hnh (unix, linux, window, . . . ). T t c nh ng g ng i s d ng c n lm l vi t nh ng o n script ng n c d ch v th c thi m khng c n ph i bin d ch chng trnh.

4.1. X l file d li u v i cng c awk


Cng c awk cho php chng ta th c hi n m t s cc ch c nng x l n gi n trn cc file d li u nh l tnh trung bnh cc gi tr a ra trn m t c t, tnh t ng ho c tch t ng gi tr gi a m t vi c t, v t t c nhng cng vi c c n n thay i c u trc d li u (data-reformating). . . Trong hai v d sau y chng ta s h c cch tnh gi tr trung bnh c a m t c t trong m t file v sau tnh l ch chu n. BEGIN { FS \t} {nl++} {s=s+$4} END {print average: s/nl} B ng 4.1: awk script tnh gi tr trung bnh c a c t 4 c a m t file (Ch : k hi u "\t" c s d ng n u cc c t c ngn cch v i nhau b i d u tab (tabulated). N u khng dng u tab m ch dng k t tr ng th ta thay th b ng " ".)
BEGIN {FS=\t}{ln++}{d=$4-t}{s2=s2+d*d} END {print "standev:" sqrt(s2/ln)}

B ng 4.2: awk script tnh gi tr l ch chu n c a c t 4 c a m t file s d ng script u tin tnh ton gi tr trung bnh c a c t th 4 c a m t file c tn l "Out.ns" chng ta s g nh sau trn h i u hnh unix: awk f Average.awk Out.ns Chng ta s nh n c k t qu trng gi ng nh l: average : 29.397 cho gi tr trung bnh c a c t 4 . By gi tnh l ch chu n c a c t chng ta g: awk v t=29.397 f StDev.awk Out.ns Cu l nh ny s tr v gi tr : standev : 33.2003. Ch r ng trong o n m trn, chng ta ph i copy gi tr trung bnh thu c t o n m tr c vo trong cu l nh tnh ton l ch chu n. Th d ny ch ra lm th no a m t tham s vo m t o n m awk. 74

Ch r ng n u chng ta khng chia ph n cu i c a o n m awk u tin (B ng 4.1) chon l, chng ta s nh n c t ng c a t t c cc gi tr trong c t 4 thay v gi tr trung bnh c a chng. M t cch t t nh t thu c gi tr trung bnh v l ch chu n l s d ng m ng: BEGIN { FS = \t} {val[nl]=$4} {nl++} {s=s+$4} END { Av=s/nl For (I in val) { d=val[i]-av s2=s2+d*d } Print averate: av standev sqrt(s2/nl)} B ng 4.3: M t o n m awk s d ng m ng tnh trung bnh v l ch chu n V d ti p theo l y u vo l m t file v i 15 c t (t 0 n 14). u ra s l m t file c 5 c t, c t th nh t ch c t s 1 c a file g c, v c t th 2 t i 5 l t ng c a l n l t cc c t 3-4, 6-8, 9-11 v 12-14 (12-14 tng ng v i 3 c t cu i cng trong file g c). s d ng o n m trn chng ta lm nh sau: BEGIN {FS=\t} {l1=$3+$3+$5} {l2=$6+$7+$8} {d1=$9+$10+$11} \ {d2=$12+$13+$14} {print $1"\t" l1\t l2\t d1\t d2 } END {} B ng 4.4: M t o n m tnh t ng cc c t awk f suma.awk Conn4.tr > outfile File g c y l file Conn4.tr v u ra c ghi vo m t file c tn l outfile

4.2. S d ng grep
L nh grep trong unix cho php chng ta l c m t file. Chng ta c th t o m t file m i ch ch a m t s dng ch a m t chu i k t nh t nh l y t file g c. V d , file trace c a ns c th ch a t t c cc lo i gi tin (packets) i qua t t c cc ng truy n (links) v chng ta c th ch quan tm n d li u lin quan n cc gi tcp g i t node 0 n node 2. N u cc dng lin quan n cc s ki n ch a chu i "0 2 tcp" th t t c nh ng g chng ta ph i lm l g: grep 0 2 tcp tr1.tr > tr2.tr cu l nh trn tr1.tr l file trace g c v tr2.tr l file m i xu t ra. N u chng 75

ta mu n thu c m t file ch a t t c cc dng c a tr1.tr kh i u v i k t r, chng ta g l nh: grep ^r tr1.tr > tr2.tr N u chng ta mu n t o ra m t file m t t c cc dng b t u v i s v ch a chu i tcp 1020 chng ta g l nh: grep ^s simple.tr | grep tcp 1020 > tr3.tr

4.3. X l cc file d li u v i perl


PERL l t vi t t t cho "Practical Extraction and Report Language". (Ngn ng trch tch v bo co th c hnh. Perl[?] cho php d dng l c v x l cc file d li u d ng ASCII trong unix. Ngn ng ny c sng t o ra b i Larry Wall v i t ng chnh l n gi n ha cc nhi m v qu n tr h th ng. Perl pht tri n r t nhi u v ngy nay l m t ngn ng a d ng v l m t trong nh ng cng c c s d ng nhi u nh t cho qu n l d li u Web v Internet. Perl l m t ngn ng thng d ch c r t nhi u tc d ng, nhng nh ng l i ch quan tr ng nh t khi s d ng Perl l tm ki m, trch tch v bo co. M t s u i m c a vi c s d ng Perl l: Tri n khai d dng cc chng trnh nh c s d ng nh cc b l c, trch tch thng tin t cc file vn b n (text files). N c s d ng trong r t nhi u cc h i u hnh m khng c n ph i thay i m chng trnh. Duy tr v debug cc o n m Perl n gi n hn cc chng trnh c vi t b i cc ngn ng khc. Perl r t ph bi n, do c r t nhi u nh ng script mi n ph ( c phn ph i b i gnu) trn m ng Internet. Chng ta s lm quen trong ph n ny m t vi o n m Perl h u d ng. V d u tin c a ra trong b ng 4.5 th c hi n vi c t ng tnh ton thng l ng c a cc k t n i TCP. Chng trnh l y trung bnh c a thng l ng trn nh ng kho ng xc nh b i m t tham s g i l granularity . u vo c a chng trnh nh n 3 gi tr : tn c a trace file (v d : out.tr), node m ng m t i chng ta mu n ki m tra thng l ng c a k t n i TCP, v gi tr granularity.

76

#type: perl throughput.pl <trace file> <required node> <granularity> > file $infile=$ARGV[0]; $tonode=$ARGV[1]; $granularity=$ARGV[2]; #We compute how many bytes were transmitted during time interval #specified by granularity parameter in seconds $sum=0; $clock=0; Open (DATA,<$infile) While (<DATA>) { @x = split( ); #column 1 is time If ($x[1]-$clock <= $granularity) { #checking if the event corresponds to a reception If ($x[0] eq r) { #checking if the destination corresponds to 1st argument If ($x[3] eq $tonode) { #checking if the packet type is TCP If ($x[4] eq tcp) { $sum=$sum+$x[5]; } } } } Else { $throughput=$sum/$granularity; print STDOUT $x[1] $throughput\n; $clock=$clock+$granularity; $sum=0; } } $throughput=$sum/$granularity; print STDOUT $x[1] $throughput\n; $clock=$clock+$granularity; $sum=0; Close DATA; exit(0);

B ng 4.5: M t o n m tnh thng l ng

77

4.4. V th v i gnuplot
Gnuplot l m t ph n m m m ngu n m mi n ph c s d ng r ng ri cho c h i u hnh ch y trn n n unix/linux v window. Gnuplot c m t l nh yu c u gip c th c s d ng h c chi ti t hn v cc tnh nng c a ph n m m ny. Cch n gi n nh t s d ng gnuplot l g "plot <fn>", y file (chng ta t tn l fn) c hai c t th hi n cc gi tr t a x v y c a cc i m. Cc i m c th c n i b i ng v i nhi u ki u th hi n c nh ngha b i l nh: plot fn w lines 1 (nh ng ch s khc nhau c th c s d ng thay cho 1, gi tr ny th hi n cc ki u ng (line) khc nhau). Ta cng c th s d ng cc ki u i m (points) khc nhau b ng cch vi t l nh nh sau: plot fn w points 9 (m t s ki u i m c th c s d ng ph thu c vo ch s xu t hi n sau points). M t s ch c nng khc c a gnuplot: hy xem trong v d d i y: set size 0.6, 0.6 set pointsize 3 set key 100,8 set xrange [90.0:120.0] plot fn1 w lines 1, fn2 w lines 8, fn3 with points 9 Dng 1: ch ra kch th c th v c nh hn m c nh. Dng 2: ch ra kch th c i m v c l n hn m c nh. Dng 4: gi i h n kho ng gi tr trn tr c x l 90-120. Dng 5: v ra 3 ng trn cng m t th , m i ng l y s li u t 3 file khc nhau: fn1, fn2, fn3. Dng 3: cho gnuplot bi t chnh xc v tr v key, l ph n ch thch c a th m t cc i t ng v . Thng th ng, n ch ra m i i t ng c v s d ng ki u ng v i m nh th no. Thay cho vi c m t chnh xc m t v tr, ta cng c th s d ng cc t kha left, right, top, bottom, outside v below .v.v set key below (cu l nh trn t b ng ch thch bn d i th ), hay ta ch c n g set nokey b i b ng ch thch. Ch r ng tn m c nh cho m i i t ng xu t hi n trong b ng ch thch ch n gi n l tn c a t p t v th . N u chng ta 78

mu n t cho i t ng m t ci tn hn l s d ng tn c a t p th chng ta ph i m t b ng cu l nh nh sau:


plot fn1 t expectation w lines 1, fn2 t variance w lines 2 y, nh ng tiu nh expectation v variance s xu t hi n trong b ng ch thch.

N u m t chu i cc cu l nh c s d ng i s d ng l i nhi u l n, ta c th vi t chng vo trong m t file, gi s c tn l g1.com, v sau ch c n load l i file m i l n chng ta s d ng b ng cu l nh nh sau: load g1.com gnuplot c th c s d ng trch tch m t vi c t t m t file nhi u c t. i u c th c hi n nh sau: plot queue.tr using 1: ($4/1000) t "kbytes" w lines 1, \ queue.tr using 1:5 t "packest" w lines 2 Cu l nh trn c ngha l v m t ng th s d ng s li u c a c t 1 c a file queue.tr trn tr c x v cc gi tr c a c t 4 chia cho 1000 trn tr c y, v sau v trn cng th m t ng khc s d ng s li u c a c t 5 cho tr c y v cng s li u c t 1 cho tr c x. Ch : th t c a "using", t v lines trong cu l nh l quan tr ng !

4.5. V th v i xgraph
Xgraph l m t cng c v th c cung c p b i ns. (i khi c n ph i ti n hnh bin d ch ring r cho xgraph trong th m c xgraph s d ng l nh ./configure v make. Xgraph c th c ng gi cng ns trong cc phin b n ns-allinone ho c c th t i ring r xgraph v ci). Ch r ng cng c ny cho php t o ra cc file postscript (eps), nh Tgif, v cc nh d ng khc b ng cch n vo nt Hdcpy. Cu l nh g i xgraph c th c khai bo trong k ch b n tcl do c th xu t ra th ngay sau khi k t thc cng vi c m ph ng. u vo c a xgraph l m t ho c nhi u ascii file ch a m i c p gi tr x-y trn m t dng (m i dng s v c m t i m trn th ). V d l nh xgraph f1 f2 s v ra trn cng m t hnh th c a file 1 v file 2. M t s l a ch n c s d ng trong xgraph l: Title: s d ng t "title" Kch th c: -geometry xsize x ysize. Tiu cho cc tr c: -x xtitle (khai bo tiu cho tr c x) v y ytitle (khai bo tiu cho tr c y). 79

Mu c a ch v l i: dng v i c -v. M t v d cho cu l nh v b ng xgraph:


xgraph f1 f2 geometry 800x400 t Loss rates x time y Lost packets

4.6. Trch tch thng tin trong m t k ch b n tcl


Chng ta c th tch h p cc cu l nh unix nh l grep hay awk vo trong cc k ch b n tcl c th ti n hnh x l d li u trong khi ghi vo file. V d , m t cch khc gi i h n cc file trace (hay x l chng tr c ti p trong khi chng c ghi) l s d ng cc cu l nh linux lin quan n x l file ngay bn trong cc l nh tcl. V d , chng ta c th thay th l nh $set file 1 [open out.tr w] b ng cu l nh: set file1 [open | grep \tcp\ > out.tr w] Cu l nh trn s l c cc dng vi t ra file out.tr v ch l i nh ng dng c ch a t tcp

4.7. Minh h a m t s file awk v gnuplot


4.7.1. Tnh thng l ng c a m ng theo hai ki u file trace
BEGIN { recv = 0 k = 1 } { # Trace line format: normal if ($2 != "-t") { event = $1 time = $2 if (event == "+" || event == "-") node_id = $3 if (event == "r" || event == "d") node_id = $4 flow_id = $8 pkt_id = $12 pkt_size = $6 flow_t = $5 level = "AGT"

80

} # Trace line format: new if ($2 == "-t") { event = $1 time = $3 node_id = $5 flow_id = $39 pkt_id = $41 pkt_size = $37 flow_t = $45 level = $19 } # Calculate total received packets size if (flow_id == flow && node_id == dst && event == "r" && level == "AGT") { if (time/tic >= k) { for (i=k; i<time/tic; i+=1) { if (i != k) recv = 0 printf("%15g %18g\n",i*tic, (recv/tic)*(8/1000)) } k = i recv = pkt_size } else recv += pkt_size } } END { printf("%15g %18g\n",k*tic, (recv/tic)*(8/1000)) printf("%15g %18g\n",k*tic, 0) }

81

4.7.2. M u v th thng l ng v a tnh xong b ng file awk


Reset set term postscript eps enhanced color #set terminal png #set output "test.png" set output "throughput.eps" set size 5/5.,4/3. set key inside right top vertical Right noreverse enhanced box linetype -1 linewidth 1.000 set grid set xlabel "Time (s)" set ylabel "Throughput (kbps)" set xrange [40:40.5] set yrange [0:5500] set ytics 500 set xtics 0.05 rotate by -45 set style line 1 lt 1 lc rgb "red" lw 3 set style line 2 lt 2 lc rgb "green" lw 3 set style line 3 lt 3 lc rgb "blue" lw 3 set style line 4 lt 4 lc rgb "orange" lw 3 set title "Evaluation of throughput performance in downlink WiMAX with PF scheduler \n (Nonmobility, tokenbucket scenario 2)" set label 1 "UGS: 5625 bytes/3 frames \n rtPS: 5625 bytes/3 frames \n nrtPS: 7500 bytes/3 frames \n BE: unlimited" at 40.025,5250 plot "bw_ugs.tr" using 1:2 title "UGS" with lp ls 1, \ "bw_rtps.tr" using 1:2 title "rtPS" with lp ls 2, \ "bw_nrtps.tr" using 1:2 title "nrtPS" with lp ls 3,\ "bw_be.tr" using 1:2 title "BE" with lp ls 4

4.8. M t s file hnh plot v b ng gnuplot

82

Hnh 4.1: Probability Distribution Fuction of BS queue delay rtPS - Nontokenbucket - Nonmobility

Hnh 4.2: Evaluation of throughphut performance in downlink WiMAX with PF scheduler (Nonmonbility Tokenbucket)

83

Chng 5 NS Tutorial
M cl c

5.1. K ch b n Tcl u tin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

te lec om
84

84 85 86 87 88 88 89 91 91 92 93 94

5.1.1. B t u nh th no . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.2. Hai node, m t lin k t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.3. G i d li u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2. Topo trong NS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5.2.1. T o topo trong NS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.2. T o cc s ki n. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.3. nh nhn cho lu ng d li u . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.4. Gim st hng i. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3. M ng c tnh ch t ng . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5.3.1. T o m t Topo l n hn. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Ng i d ch: Tr nh Vi t Thi

Bin t p: H T t Thnh, Tr n Cng L B n g c: Tutorial for the Network Simulator "ns", part 4,5,6 [3]

5.1. K ch b n Tcl u tin


Ghi ch: Trong ph n ny, ti s h ng d n b n s vi t m t t p l nh Tcl cho ns m ph ng c u hnh m ng n gi n. B n s bi t c lm th no t o ra nh ng nt (nodes)

vn

5.3.2. Lin k t l i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

v nh ng lin k t (links), lm th no g i d li u t m t node n node khc, lm th no i u khi n hng i hay ch y NAM t t p l nh v a vi t hi n th qu trnh m ph ng.

5.1.1. B t u nh th no
Chng ta s vi t m t m u chung c th s d ng l i cho m i l n nh vi t t p l nh Tcl m i. B n c th vi t t p l nh Tcl b ng b t c trnh so n th o no nh joe ho c emacs. Ti t tn cho v d ny l example1.tcl. u tin, c n t o ra i t ng m ph ng b ng cu l nh:

Ti p theo t o t p tin ph c v cho ch c nng bm v t d li u (trace data) c a NAM (network animator) set nf [open out.nam w] $ns namtrace-all $nf

Dng l nh u tin s m t p tin out.nam v i nh danh l nf. Trong dng l nh th

vn te lec
hai, truy n tham s l i t ng c t o ra lin quan n nam vo trong t p tin ny. proc finish {} { global ns nf close $nf exit 0 $ns flush-trace exec nam out.nam & } ng. ph ng. $ns at 5.0 "finish" gi n l p l ch cho cc s ki n b ng cu l nh at . Dng cu i cng l k t thc vi c m ph ng

B c ti p theo thm th t c finish, k t thc cc t p tin bm v t v b t u nam,

th t c ny ng file bm v t v kh i ng network animator.

B n khng c n ph i hi u t t c o n m trn, s d hi u hn khi b n nhn th y n ho t

Dng ti p theo b o chng trnh m ph ng th c hi n th t c finish sau 5.0 giy m

Nhn dng lnh b n c th hi u ngha c a n. NS cung c p cho b n m t cch n

om
85

set ns [new Simulator]

trn ns ghi t t c d li u m ph ng c

$ns run By gi b n c th lu t p tin v ch y th b ng l nh ns example1.tcl. B n c th g p thng bo l i nh nam: empty trace file out.nam b i v chng ta cha nh ngha b t c i t ng ( node, lin k t. . . ) hay s ki n no. Chng ta s h c cch nh ngha cc i t ng trong ph n 5.2 v cc s ki n trong ph n ??. B n s ph i s d ng l i o n m trong ph n ny y ho c t i y cc ph n khc. B n c th t i t i

5.1.2. Hai node, m t lin k t


Trong ph n ny chng ta s nh ngha m t c u hnh m ng (topo) n gi n v i hai node c k t n i v i nhau b i m t lin k t. Bn d i c hai dng l nh nh ngha hai node. (Ch : b n ph i chn o n m ny tr c dng l nh $ns run hay t t hn l tr c dng l nh $ns at 5.0 "finish). set n0 [$ns node] set n1 [$ns node] L nh $ns node l t o ra 1 node m i, nh v y 2 cu l nh m i l n0 v n1. Dng ti p theo k t n i hai node $ns duplex-link $n0 $n1 1Mb 10ms DropTail Dng ny thi t l p lin k t song cng v i bng thng 1Megabit, tr 10ms v hng i DropTail gi a node n0 v n1. By gi b n c th lu t p tin v b t u o n m v i ns example1.tcl. Nam s t ng b t u v b n c th th y k t qu tng t nh hnh bn d i. trn t o ra hai node

Hnh 5.1: T o k t n i gi a n0 v n1

B n c th t i v d y t i y ho c t i y n u n khng ho t ng v b n ngh m c l i.

86

5.1.3. G i d li u
D nhin, v d trn l cha hon thi n v b n ch c th th y c m hnh topo v cha c ho t ng xy ra, v th b c ti p theo l g i d li u t node n0 n node n1. Trong ns, d li u lun c g i t m t tc nhn (agent) n tc nhn khc. Do , c n ph i t o ra m t tc nhn g i d li u t node n0, m t tc nhn khc nh n c d li u trn node n1. #Create a UDP agent and attach it to node n0 set udp0 [new Agent/UDP] $ns attach-agent $n0 $udp0 # Create a CBR traffic source and attach it to udp0 set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 500 $cbr0 set interval_ 0.005 $cbr0 attach-agent $udp0 Hai l nh u t o ra tc nhn UDP (User Datagram Protocol:giao th c d li u ng n ng i dng) v gn n cho node n0. Nh ng cu l nh ti p theo t o ra b t o d li u t c khng i CBR (Constant Bit Rate:t n s bit b t bi n) m c th t ng g i cc gi tin c di 500 byte cch nhau 0.005 giy (t c l 200 gi tin/giy). B n c th tm th y cc thng s thch h p cho m i tc nhn ns manual page

Dng ti p theo l t o m t tc nhn Null v i tc ng lm suy gi m lu l ng gn n vo vo node nt n1. set null0 [new Agent/Null] $ns attach-agent $n1 $null0 Hai tc nhn c k t n i v i nhau theo cu l nh: $ns connect $udp0 $null0 V by gi , ta c n b o tr m CBR khi no th g i d li u, khi no th d ng. Ch : T t nh t l t cc dng l nh ny ngay tr c dng "$ns at 5.0 "finish" $ns at 0.5 "$cbr0 start" By gi b n c th lu t p tin v b t u m ph ng l i. Khi b n lick vo nt play c a s nam, b n s th y 0.5 giy sau m ph ng node 0 b t u g i gi d li u t i node 1. B n c th lm ch m nam b ng con tr t Step $ns at 4.5 "$cbr0 stop"

87

Hnh 5.2: G i d li u gi a n0 v n1 Nh v y b n c m t cht kinh nghi m v i nam v o n m Tcl. B n c th click b t k gi d li u trong c a s nam gim st n hay click tr c ti p ln cc lin k t c m t s th th ng k. B n nn thay i tham s packetsize_ v interval_ trong o n m Tcl th y c i u g x y ra. B n c th t i ton b v d t i y ho c t i y H u h t cc thng tin c n thi t m ti c n c th vi t o n m Tcl ny c l y tr c ti p t cc t p tin v d th m c tcl/ex/, khi thi t l p cc thng s CBR (packetSize_, interval_) ti ph i l y t ns manual page

5.2. Topo trong NS


Trong ph n ny chng ta s nh ngha m t m hnh v i b n node trong m t node ho t ng nh l m t router chuy n d li u m hai node khc ang g i n node th t. Ti s gi i thch cch phn bi t cc lu ng d li u t hai node ny v i nhau v ti s trnh by m t hng i c th c gim st nh th no c th th y c n b trn nh th no, v s c bao nhiu gi tin b lo i

5.2.1. T o topo trong NS


Nh m i khi, u tin l xc nh topo. B n nn t o m t ra t p tin example2.tcl s d ng m ny t ph n 5.1 nh l m t t p tin m u, Nh ti ni trn, o n m ny s tng t v i m u trn. B n s lun c n ph i t o ra m t i t ng m ph ng, lun b t ph i u b ng cng m t cu l nh v n u mu n ch y nam t ng b n s lun ph i m t p tin bm v t, kh i t o n, v nh ngha th t c ng n v kh i ng nam. By gi chn dng l nh vo trong m t o ra b n node. set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] set n3 [$ns node] Bn d i l v d m Tcl t o ra ba lin k t song cng gi a cc nt.

88

$ns duplex-link $n0 $n2 1Mb 10ms DropTail $ns duplex-link $n1 $n2 1Mb 10ms DropTail $ns duplex-link $n3 $n2 1Mb 10ms DropTail B n c th lu v kh i ng o n m by gi . B n c th th y r ng m hnh m ng c v hi r c r i trong nam. B n c th b m vo nt re-layout th y r hn nhng s t t hn n u c thm m t cht i u ch nh trong vi c b tr topo. Thm 3 dng sau vo o n m Tcl c a b n v kh i ng l i n. $ns duplex-link-op $n0 $n2 orient right-down $ns duplex-link-op $n1 $n2 orient right-up $ns duplex-link-op $n2 $n3 orient right By gi , b n s c th hi u o n m ny lm ci g khi nhn topo trong c a s nam. N trng gi ng nh hnh bn d i

Hnh 5.3: Topo c a o n m g m 4 nt

Ch r ng cc ph n lin quan n b tr t ng c b qua, do n b tr theo mnh. Ty ch n cho h ng c a cc cc lin k t l ph i, tri, ln, xu ng v s k t h p cc h ng . B n c th th nghi m v i cc ci t sau, nhng by gi hy thot kh i topo m ng theo ng cch.

5.2.2. T o cc s ki n
By gi chng ta t o ra hai tc nhn UDP v i lu ng ti nguyn CBR v gn chng cho node n0 v n1. R i t o ra tc nhn Null v gn n cho node n3. #Create a UDP agent and attach it to node n0 set udp0 [new Agent/UDP] $ns attach-agent $n0 $udp0 # Create a CBR traffic source and attach it to udp0

89

set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 500 $cbr0 set interval_ 0.005 $cbr0 attach-agent $udp0 #Create a UDP agent and attach it to node n1 set udp1 [new Agent/UDP] $ns attach-agent $n1 $udp1 # Create a CBR traffic source and attach it to udp1 set cbr1 [new Application/Traffic/CBR] $cbr1 set packetSize_ 500 $cbr1 set interval_ 0.005 $cbr1 attach-agent $udp1 set null0 [new Agent/Null] $ns attach-agent $n3 $null0 Hai tc nhn CBR c n ph i c k t n i v i tc nhn Null. $ns connect $udp0 $null0 $ns connect $udp1 $null0 Chng ta mu n tc nhn CBR th nh t b t u g i lc 0.5 giy v k t thc lc 4.5 giy trong khi tc nhn CBR th hai b t u lc 1.0 giy v k t thc lc 4.0 giy. $ns at 0.5 "$cbr0 start" $ns at 1.0 "$cbr1 start" $ns at 4.0 "$cbr1 stop" $ns at 4.5 "$cbr0 stop" Khi b n b t u o n m ns example2.tcl ngay by gi , b n s r ng lu l ng trn cc knh truy n t n0 n n2 v t n1 n n2 nhi u hn lu l ng m knh truy n t n2 n n3 c th mang c. M t tnh ton n gi n xc nh n vi c ny: Chng ti ang g i 200 gi tin/giy trn m i knh trong hai knh truy n u tin v i kch th c gi tin l 500 byte. I u ny n n m t bng thng 0.8 Mbps cho cc knh truy n t n0 n n2 v t n1 n n2.. T ng bng thng l 1.6 Mb/giy nhng knh truy n gi a n2 v n3 ch c dung l ng l 1Mb/giy, v th hi n nhin l vi gi tin b lo i ra. Nhng gi tin no b lo i? C hai lu ng u mu en v th ch c th th y c i u g ang di n ra i v i gi

90

tin l gim st chng trong nam b ng cch click vo chng. Ti p theo c a ph n 2, ti s trnh by cch lm th no phn bi t cc lu ng khc nhau v lm th no th y th t s i u g ang th c s xy ra hng i t i knh truy n t n2 n n3.

5.2.3. nh nhn cho lu ng d li u


Thm vo hai dng l nh bn d i xc nh tc nhn CBR c a b n. $udp0 set class_ 1 $udp1 set class_ 2 Tham s fid_ l vi t t t c a flow id. By gi thm vi cu l nh vo t p l nh Tcl, t t hn l lc b t u, ngay sau khi t o

i t ng m ph ng, do y l m t ph n c a s thi t l p m ph ng $ns color 1 Blue $ns color 2 Red o n m ny cho php thi t l p cc mu s c khc nhau c a m i lu ng.

Hnh 5.4: Mu s c cc lu ng

By gi b n c th kh i ng l i t p l nh v m t lu ng c mu xanh, lu ng kia mu . Khi theo di k t n i t node n2 n node n3 v b n s r ng sau m t th i gian truy n th cc phn b gi a cc gi tin mu xanh v mu khng cn cn b ng n a (ch t l trn h th ng c a ti). Trong ph n ti p theo ti s trnh by cho b n lm th no c th theo di bn trong hng i c a lin k t ny tm hi u chuy n g ang xy ra .

5.2.4. Gim st hng i


B n ch c n thm dng l nh bn d i vo o n m c a b n gim st hng i cho k t n i t n2 t i n3

91

$ns duplex-link-op $n2 $n3 queuePos 0.5 Kh i ng ns l i v b n s th y m t hnh nh tng t bn d i sau m t th i gian ng n

Hnh 5.5: Gim st hng i

By gi b n c th th y cc gi tin trong hng i v sau c th th y cc gi tin b lo i b nh th no v i qua nh th no, m c d ch c gi tin mu xanh b lo i (ch t trong h th ng c a ti, ti on l c th khc nhau trong phin b n sau ho c tr c ). Nhng b n khng th trong i qu nhi u vo s cng b ng t m t hng DropTail n gi n. V th hy c c i thi n b ng cch s d ng hng i SFQ (stochastic fair queueing: hng i cng b ng ng u nhin) cho k t n i t n2 n n3. Thay i nh ngha cho lin k t gi a n2 v n3 v i dng l nh bn d i $ns duplex-link $n3 $n2 1Mb 10ms SFQ By gi , vi c x p hng c l l cn b ng r i. S l ng mu xanh v mu b lo i l nh nhau.

Hnh 5.6: Cn b ng trong gim st hng i

B n c th t i v d y

y ho c

5.3. M ng c tnh ch t ng
Trong ph n ny ti s trnh by cho b n m t v d v m ng ng vi c nh tuy n ch nh s a l i cc knh truy n b l i. B ng cch ny ti s ch cho b n c th gi s l ng l n cc nt trong m t m ng Tcl thay v c p cho m i nt m t ci tn ring.

92

5.3.1. T o m t Topo l n hn
Ti g i cho b n g i t p l nh Tcl trong v d ny l example3.tcl. B n c th chn vo m u t i y ho c t i y, trong ph n 5.1 Thng th ng, tr c tin, m t topo c t o ra, m c d l n ny chng ti c h ng ti p c n khc m b n s c m th y d dng hn khi mu n t o cc m hnh m ng l n. o n m bn d i t o ra b y nt v lu chng trong m ng n() for {set i 0} {$i < 7} {incr i} { set n($i) [$ns nt] } Cc b n t ng g p vng l p for cc ngn ng l p trnh khc tr c y, v ti ch c

r ng cc b n hi u c u trc ny m t l n n a. nh ng m ng , cng nh cc bi n khc trong Tcl, chng khng c n ph i c khai bo u tin . By gi chng ta s k t n i cc nt thnh m t topo vng trn. Ban u dng m bn d i trng c v ph c t p hn m t cht. for {set i 0} {$i < 7} {incr i} { $ns duplex-link $n($i) $n([expr ($i+1)%7]) 1Mb 10ms DropTail } Vng l p for k t n i t t c cc nt v i nt ti p theo trong m ng tr nt cu i cng, nt ny s k t n i v i nt u tin.. th c hi n i u , ti s d ng ton t % By gi , khi b n cho ch y o n m, u tin topo c v l trong NAM nhng sau khi b n b m vo nt re-layout th n s trng gi ng hnh bn d i.

Hnh 5.7: M hnh g m 7 nt

93

5.3.2. Lin k t l i
B c ti p theo l g i d li u t nt n0 n nt n3. #Create a UDP agent and attach it to node n(0) set udp0 [new Agent/UDP] $ns attach-agent $n(0) $udp0 # Create a CBR traffic source and attach it to udp0 set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 500 $cbr0 set interval_ 0.005 $cbr0 attach-agent $udp0 set null0 [new Agent/Null] $ns attach-agent $n(3) $null0 $ns connect $udp0 $null0 $ns at 0.5 "$cbr0 start" $ns at 4.5 "$cbr0 stop" Gi y, o n m trn c l quen thu c v i b n. Ch khc v i cc ph n tr c l

by gi chng ta s d ng cc thnh ph n m ng l cc nt. N u b n kh i ng t p l nh, b n s th y r ng lu l ng s ch n ng ng n nht t nt 0 t i nt 3 i qua nt 1 v 2 ng nh mong i. By gi chng ti thm m t tnh nng th v khc. Chng ta hy lm cho lin k t gi a nt 1 v 2 b t trong 1 giy. $ns rtmodel-at 1.0 down $n(1) $n(2) $ns rtmodel-at 2.0 up $n(1) $n(2) C l khng qu kh hi u hai dng l nh trn. By gi b n ch y l i t p l nh v b n s th y r ng t giy th nh t n giy th 2 knh truy n s b t v t t c d li u c g i i t nt 0 b m t. By gi ti s cho b n th y lm th no s d ng nh tuy n ng gi i quy t v n trn. Thm vo dng l nh bn d i vo ph n u c a o n m Tcl c a b n sau khi i t ng m ph ng c t o ra. $ns rtproto DV

94

Hnh 5.8: Minh h a lin k t b l i

B t u m ph ng l i, b n s th y u tin c r t nhi u gi tin nh truy n qua m ng. N u b n lm ch m nam xu ng click vo m t trong s chng b n s th y r ng cc chng l cc gi tin rtProtoDV c s d ng thay i thng tin nh tuy n gi a cc nt. Khi knh truy n b t tr l i lc 1 giy, vi c nh tuy n s c c p nh t v lu l ng s c nh tuy n l i i qua nt 6, 5, v 4.

Hnh 5.9: Lu l ng truy n theo nt 6, 5, 4

B n c th t i chng y ny t i y ho c t i y tham kh o

95

Chng 6 M ph ng v m t TCP/IP
M cl c
6.1. M t TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 6.1.2. Cc b n tin xc nh n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.3. C a s ch ng t c ngh n ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.4. M t cc gi tin v ng ng Wth ng: . . . . . . . . . . . . . . . . . . . . 6.1.5. Kh i t o k t n i. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2. Qu trnh bm v t v phn tch v d Ex1.tcl . . . . . . 97 99 99 100 100 101 107 111 119 124 97 6.1.1. Cc m c ch c a TCP v i u khi n lu ng theo c ch c a s

6.3. TCP trn lin k t nhi u v vi c gim st hng i . 6.4. T o nhi u k t n i v i cc c tnh ng u nhin . . . . . 6.5. Cc k t n i TCP ng n . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.6. Cc cng c gim st tin ti n: . . . . . . . . . . . . . . . . . . . .

6.7. Bi t p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Ng i d ch: Nguy n Thy Vn Bin t p: Hong Tr ng Minh B n g c: NS Simulator for beginners, Chapter 4 [2]

TCP (Transport Control Protocol) l m t giao th c truy n t i ch u trch nhi m truy n kho ng 90% lu l ng d li u trn Internet. Chnh v v y, n m v ng v hi u r TCP ng

96

vai tr v cng quan tr ng nh c lu l ng trong Internet. M c d TCP c tri n khai r ng kh p, n v n pht tri n khng ng ng. IETF (Internet Engineering Task Force) l t ch c tiu chu n ha chnh lin quan t i giao th c TCP. Khng gi ng nh cc t ch c chu n ha khc (ITU ho c di n n ATM) t t c cc tiu chu n c a IETF mi n ph v c s n trn m ng. ph n u tin, ta s m t ho t ng c a TCP. Cn cc ph n sau , ta xem xt

m t s o n m NS m t phn tch TCP thng qua m ph ng

6.1. M t TCP
6.1.1. Cc m c ch c a TCP v i u khi n lu ng theo c ch c as
TCP nh m m t vi m c ch sau: i u ch nh t c truy n cc gi d li u sao cho ph h p v i bng thng kh d ng. Trnh hi n t ng ngh n m ng. T o k t n i tin c y b ng cch truy n l i cc gi tin b th t l c. i u khi n t c truy n, s l ng cc gi tin cha c nh n (hay ni m t cch chnh xc hn l nh ng gi tin m ngu n cha nh n c thng tin ph n h i t ch l nh n c) b gi i h n b i m t tham s g i l m t c a s t c ngh n. Chng ta t tn l W , tuy nhin trong ng c nh c a TCP n k hi u l cwnd. i u ny c ngha l ni truy n cc gi tin bu c ph i ch v ng ng truy n cc gi tin m n truy n tr c v cc gi tin ko c xc nh n ny c tn l W. cc gi tin ny c xc nh n v c kh nng truy n l i cc gi tin b th t l c, m i gi tin c truy n i ph i c m t s th t .

6.1.2. Cc b n tin xc nh n
M c tiu c a cc b n tin xc nh n g m i u ch nh t c truy n c a TCP, m b o r ng cc gi tin ch c truy n i khi m cc gi tin khc c truy n ra kh i m ng. T o ng k t n i ng tin c y b ng cch truy n t i nt ngu n cc thng tin c n thi t truy n l i cc gi tin khng n c ch.

97

Lm th no m ch n c a gi tin bi t l gi tin c b th t l c ? Lm th no m ta bi t c m t gi tin b m t? Gi ACK ch a thng tin g? Gi tin ACK cho ngu n g i tin bi t s th t c a gi tin m n ch i. V d sau s minh h a cho i u ny. Gi s gi tin 1,2,. . . ,6 n ch theo th t . Khi gi tin s 6 n, ch g i m t gi tin ACK thng bo r ng n ang i gi tin s 7. N u gi tin s 7 n, ch yu c u gi tin s 8. Gi s gi tin s 8 b th t l c, gi tin s 9 c th n ch c. T i th i i m , ch g i gi tin ACK c tn l ACK l p thng bo v i ngu n g i tin r ng n ch gi tin s 8. Thng tin trong gi tin ACK ny tng t nh gi tin ACK g i tr c . Phng php ny c tn l ACK n (implicit ACK) . Phng php ny hi u qu ngay c khi m t cc gi tin ACK. Hn n a, gi s r ng gi tin ACK thng bo r ng ch i gi tin s 5 b m t, Khi gi tin ACK ti p theo n v thng bo r ng ch ang i gi s 6, nt ngu n hi u r ng ch nh n c gi s 5, v v y thng tin g i b i ACK m t c suy ra t gi tin ACK k ti p. Gi tin TCP b coi l m t n u nh: C 3 gi tin ACK gi ng nhau thng tin cho ngu n1 v cng m t gi tin c g i i. Khi m t gi tin c truy n i, c m t ng h m th i gian. N u gi tin ACK c a gi tin c truy n ko n trong kho ng th i gian T0 , c ngha l qu h n (Time-out) v gi tin coi nh b m t. Qu trnh truy n l i sau khi l p l i 3 gi tin ACK c g i l truy n l i nhanh (fast retransmit) Ch n th i gian T0 nh th no? Ngu n c l ng th i gian quay vng RT T trung bnh, hay ni cch khc l th i gian c n thi t cho m t gi tin n ch c ng v i th i gian cho gi tin ACK quay tr l i thng bo cho ngu n. N cng nh gi s bi n ng c a RT T . T0 c tnh ton nh sau: T0 = RT T + 4D RT T l c l ng hi n t i c a RT T cn D l s bi n ng c a RT T . c l ng RT T , ta tnh ton s chnh l ch M gi a th i gian truy n 1 gi tin v th i gian gi tin ACK c a n quay tr l i. Sau tnh: RT T a RT T + (1 a)M, D aD + (1 a) RT T M
1

...

98

gi m s l ng gi tin ACK trong h th ng, TCP th ng xuyn s d ng l a ch n ACK tr (delayed ACK) t i 1 gi tin ACK c truy n ch cho cc gi tin d n ch. Gi tr chu n c a d l 2 ( xem RFC 1122). Tuy nhin, tr 1 gi tin ACK n t n khi d > 1 gi tin c nh n c th d n n vi c nh tr hon ton trong tr ng h p kch th c c a s nh . V v y, n u gi tin u tin (n m trong s d gi tin ang c ch i) n ch, sau m t kho ng th i gian ng t qung (th ng l 100ms) n u d gi tin v n cha n th m t b n tin ACK c t o ra m khng c n ch i thm n a.

6.1.3. C a s ch ng t c ngh n ng
T u nh ng nm 80, trong su t vi nm, TCP lun c 1 c a s ch ng t c ngh n c nh. Cc m ng t i th i i m ko n nh, nhi u gi tin b m t, Cc chu k ngh n m ng l n v r c r i, trong su t th i gian ngh n th thng l ng gi m ng k , nhi u gi tin ph i truy n l i v th i gian tr l n. gi i quy t v n ny, Van Jacobson [25] xu t s d ng c a s ch ng t c ngh n ng. Kch th c c a c a s thay i ty theo tr ng thi c a m ng. V c b n, t ng l: Khi c a s nh , kch th c c a n c th tng nhanh chng , nhng khi t n m t gi tr nh t nh no , kch th c c a n ch c th tng ch m. Khi hi n t ng ngh n m ng c pht hi n, kch c c a c a s gi m m nh. C ch ng ny c php gi i quy t t c ngh n nhanh chng v s d ng hi u qu bng thng c a m ng. Chnh xc hn, nh ngha ng ng Wth , hay tn g i khc l "ng ng b t u ch m" n s th hi n nh gi c a chng ta v dung l ng m ng. C a s b t u gi tr 1. 1 gi tin n l c truy n. Khi gi tin ACK c a gi tin ny quay tr l i, ta c th truy n 2 gi tin. i v i m i gi tin ACK c a 2 gi tin ny, c a s tng ln 1 gi tr , m c ch l khi cc gi tin ACK c a 2 gi tin ny quay tr l i, ta c th truy n 4 gi tin. Ta nh n th y l c a s tng theo s m. Giai o n ny c tn l "b t u ch m" (slow start). S d n c tn nh th l b i l thay v c a s to d n ln nhanh chng, n ch l n ln t t n u ta b t u v i m t gi tr W = Wth . N u W = Wth , ta chuy n qua giai o n 2 c tn g i l giai o n trnh t c ngh n . Khi , m i gi tin ACK quay l i s lm c a s W tng ln 1/W . Sau khi truy n W gi tin, W tng ln 1. N u ta truy n W gi tin c n t th i gian, th truy n W + 1 c n t + RT T v W + 2 c n t + 2RT T , ...v.v. Ta th y l l n c a c a s thay i tuy n tnh.

6.1.4. M t cc gi tin v ng ng Wth ng:


Khng ch W ng m Wth cng nh v y. N c c nh trong TCP khi m t gi m t th gi tr c a W gi m i m t n a. C m t s phng php c i thi n TCP. phng php th nh t c tn l Tahoe, t c l

99

b t k khi no pht hi n ra m t gi tin b m t th c a s gi m gi tr xu ng 1 n v v giai o n slow start b t u. i u ny lm gi m kch c c a s nhanh chng v cng nh v y v i t c truy n tin. M t phng php c i thi n khc c tn l Reno hay New- Reno, c a s gi m xu ng 1 n u nh pht hi n ra gi tin b m t trong th i gian qu h n. Khi m t gi tin m t b pht hi n ra thng qua cc gi tin ACK b l p, c a s gim st t c ngh n gi m xu ng 1/2. Giai o n slow start s ko kh i t o v ta v n tr ng thi trnh t c ngh n.

6.1.5. Kh i t o k t n i
kh i t o m t k t n i TCP, ngu n g i m t gi tin ng b (sync packet) dung l ng 40 byte n ch. Sau ch g i 1 gi tin ACK (cng c di 40 gi tin g i l gi tin xc nh n ng b (sync ACK)). Khi ngu n nh n gi tin ACK ny, TCP c th b t u g i d li u. Ch r ng: n u c b t k gi tin no n m trong s nh ng gi tin ny b m t sau th i gian qu h n (th ng l t 3-6s) th n s c truy n l i. Khi gi tin c truy n l i b m t, th i gian qu h n tng ln g p i v gi tin l i c g i l i m t l n n a.

6.2. Qu trnh bm v t v phn tch v d Ex1.tcl


Hy ch y file chng trnh vi t b ng ngn ng perl throughput.pl (b ng ?? ) trn file bm v t (trace file) t o ra Pl out.tr 4 1 > thp Ta c m t file u ra v i thng l ng TCP trung bnh t c (byte/giy) l m t hm c a th i gian , trong tr ng h p ny, m i giy m t l n, m t gi tr m i c a thng qua c t o ra. File u ra c th c th hi n thng qua vi c s d ng l nh gnuplot b ng cch g: Gnuplot Set size 0,4.0,4 Set key 60,15000 Plot thp w lines 1. K t qu th hi n hnh 6.1 o n m ex1.tcl (xem b ng 4.4 ). Ta ph i g: perl throughput.

hi u t t hn v hnh vi c a h th ng, ta th hi n kch th c c a s b ng bi u (hnh 6.2 ). y l file Winfile t o ra khi ch y o n m ex1.tcl. Ta nh n th y l t th i i m 20 tr i, ch quay vng tr ng thi ko i c a TCP c n nh: TCP lun giai o n trnh t c ngh n, v kch th c c a s c a n tng u (theo qui lu t hm tuy n

100

Hnh 6.1: Thng l ng k t n i TCP

Hnh 6.2: Kch th c c a s TCP

tnh) cho n khi x y ra ngh n m ng. Tr c th i i m 20, ta th y TCP ri vo giai o n slow-start trong th i gian r t ng n. th i i m 4.2, t i giai o n slow-start x y ra hi n t ng m t gi tin. C a s cn 1 n a trong khi thng l ng g n nh v 0. Ta gi i thch hi n t ng ny nh th no? L do l t i th i i m 4.2 c m t kho ng th i gian qu h n, chnh v l , m c d kch th c c a c a s l 30 (gi tin) nhng ch ng c ho t ng truy n tin no di n ra. slow-start. th i i m 11, l i x y ra hi n t ng m t gi tin trong giai o n

6.3. TCP trn lin k t nhi u v vi c gim st hng i


cc v d tr c, gi tin b m t l do t c ngh n. Th c t , gi tin b m t c th l do nhi u ng k t n i. i u ny c bi t ng trong tr ng h p sng v tuy n, v d nh ng truy n i n tho i ho c ng truy n v tinh. Th c t l ng k t n i c th b ng t hon ton trong giai o n no . Ta s xem xt v n ny sau y t i m c 6.1. Ho c cng c th knh truy n b nhi u t hi n t ng xuyn nhi u cng khi n cho gi tin b l i v lo i b . m c ny, ta s nu cch a ra m hnh l i n gi n nh t: Ta th a nh n r ng cc gi tin b lo i b c l p trn g truy n theo m t xc su t c nh no . M hnh l i lin k t c nu ra ra nh sau: #Set error model on link n2 to n3 Set loss_module [new ErrorModel] $loss_module set rate _0.2 $loss_module ranvar [new RandomVariable/Uniform] $loss_module drop-target [new Agent/Null] nt k t n i n3 v n2 trong v d hnh 6.3 c t o

101

$ns lossmodel $loss_module $n2 $n3 L nh $loss_module set rate_0.2 xc nh t l m t gi tin l 20% . N s d ng 1 b t o bi n ng u nhin c phn b u. i u ny c th hi n cu i cng quy t nh xem lin k t no b nh h ng. dng ti p theo. Dng

Ta xem xt m ng c m t t i hnh 6.3. Trong v d ny, k t n i TCP chia s m t knh t p m v i k t n i UDP

Hnh 6.3: V d rdrop.tcl


Queue Mornitoring M t i t ng quan tr ng c a ns l hng i c gim st. i t ng ny cho php thu th p cc thng tin h u ch v di hng i, v cc gi tin n, i m n v cc gi tin b m t. ti n hnh vi c gim st hng i gi a nt 2 v nt 3 ta g: set qmon [$ns monitor-queue $n2 $n3 [open qm.out w] 0.1];! [$ns link $n2 $n3] queue-sample-timeout; # [$ns link $n2 $n3] start-tracing! M c tiu c a qu trnh gim st hng i g m 4 tham s : 2 tham s u xc nh knh truy n ch a v tr c a hng i, tham s th 3 l cho ra file bm v t v tham s cu i cng cho bi t xem m c th ng xuyn m ta mong mu n NS gim st hng i. Trong tnh hu ng trn, u vo l hng i u vo gi a nt 2 v nt 3 s c gim st 0.1s l n v k t qu u ra s l file qm.out. File u ra g m11 c t sau y: Th i gian Nt u vo v u ra xc nh hng i

102

Kch th c hng i tnh theo byte ( tng ng v i thu c tnh size_ c a i t ng monitor-queue). Kch th c hng i tnh theo gi tin ( tng ng v i thu c tnh pkt_) S l ng gi tin v a n ( tng ng v i thu c tnh parrivals_) S l ng gi tin r i kh i lin k t ( tng ng v i thu c tnh pdeparture_) S l ng gi tin b lo i b t i hng i (tng ng v i thu c tnh pdrop_) S l ng byte n ( tng ng v i thu c tnh barrivals_) S l ng byte r i kh i lin k t ( tng ng v i thu c tnh bdepartures_) S l ng byte b lo i b ( tng ng v i thu c tnh bdrops_) M t cch khc tm hi u tr c ti p cc thu c tnh ny c nu nhi u. m c 4.5 V d ti p theo

o n m 4.1 m t ton b o n m t o m u m hnh TCP v i cc gi tin b lo i b do

# T o m t v d $ns color 1 Blue $ns color 2 Red # M

m ph ng

set ns [new Simulator]

1 file bm v t NAM

set nf [open out.name w] $ns namtrace-all $nf # M 1 file bm v t set tf [open.tr w] set windowVsTime2 [open WindowVsTimeNReno w] $ns trace-all $nf # nh ngha 1 qu trnh "hon t t" proc finish {}{ global ns nf tf $ns flush-trace close $nf close $tf exac nam out.nam & exit 0 }

103

#T o 4 nt set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] set n3 [$ns node] $ns at 0.1 $n1 label \"CBR\"" $ns at 1.0 $n0 label \"FTP\"" #T o ng link gi a cc nt $ns duplex-link $n0 $n1 2Mb 10ms DropTail $ns duplex-link $n1 $n2 2Mb 10ms DropTail $ns simpex-link $n2 $n3 0.07Mb 20ms DropTail $ns simpex-link $n3 $n2 0.07Mb 20ms DropTail # t kch th c hng i c a lin k t (n2-n3) t i 10 $ns queue-limit $n2 $n3 10 # Gim st hng i cho lin k t gi a (ns-n3). (dnh cho NAM). $ns simplex-link-op $n2 $n3 queuePos 0.5 #T o m hnh l i trn lin k t gi a n3 v n2. Set loss_module [new ErrorModel] RandomVariable/Unionform] $loss_module set rate_ 0.2 $loss_module ranvar [new $loss_module drop-target [new Agen/Null] $ns lossmodel $loss_module $n2 $n3 #Thi t l p m t k t n i TCP Set tcp [new Agen/TCP/Newreno] $ns attach-agent $n0 $tcp Set sink [new Agen/TCPsink/Delack] $ns attach-agen $n3 $sink $ns connect $tcp $sink $tcp set fid_ 1 #Thi t l p m t FTP thng qua k t n i TCP Set ftp [new Application/FTP] $ftp attach-agent $tcp $ftp set type_ FTP #Thi t l p m t k t n i UDP Set UDP [new Agent/UDP]

104

$ns attach-agen $n1 $udp Set null [new Agent/Null] $ns attach-agent $udp set fid_ 2 #Thi t l p m t CBR thng qua k t n i UDP Set cbr [new Application/Traffic/CBR] $cbr attach-agent $udp $cbr set type_ CBR $cbr set packetSize_ 1000 $cbr set rate_ 0.01Mb $cbr set random_ false #L p l ch cc s ki n cho cc tc nhn CBR v FTP $ns at 0.1 "$cbr start" $ns at 1.0 "$ftp start" $ns $ns at 624.0 $ftp stop at 624.5 $fcbr stop $n3 $null $ns connect $udp $null

#in ra kch th c c a s Proc plotWindow {tcpSource} { Global ns Set time 0.01 Set now [$ns now] Set cwnd [tcpSource set cwnd_] Puts $file $now $cwnd $ns at [expr $now+$time] plotWindow $tcpSource $file} $ns at 1.1 plotWindo $tcp $windowVsTime2 # L y m u hng i nt th t c chai 0.1s m t l n . Lu file bm v t trong qm.out

Set qmon [$ns monitor-queue $n2 $n3 [opne qm.out w] 0.1]; [$ns link $n2 $n3] queue-sample-timeout; # [$ns link $n2 $n3] start-tracing #Tch cc tc nhn tcp v sink (b $ns detach-agent $n3 $sink ch a, b nh n)

$ns at 624.5 $ns detach-agent $n0 $tcp

105

$ns at 625.0 finish $ns run

B ng 6.1: nh ngha m t ng d ng FTP s d ng tc nhn TCP


Trong hnh 6.4 Ta s d ng gnuplot bm v t file do qu trnh m ph ng t o nn. File ny c tn g i l WindowVsTimeNReno. Hnh nh phng ra c a n c m t . hnh 6.5

Hnh 6.4: Kch th c c a s TCP v i 20% gi tin m t ng u nhin

Hnh 6.5: Kch th c c a s TCP v i 20% gi tin m t ng u nhin: phng to

Trong m t vi tr ng h p, Ta kh o st th i gian qu h n di, kho ng 300. xem xem cc gi tin ng u nhin b m t nh h ng l n nh th no n hi u su t ho t ng c a TCP, Ta th c hi n m ph ng l i nhng ko c cc gi tin b m t. K t qu c m t t i hnh 6.6

Hnh 6.6: C a s TCP khi t l m t gi l 0

106

M t cch o hi u nng quan tr ng l thng l ng trung bnh c a TCP. M t cch n gi n tnh ton l tm trong file bm v t out.tr th i i m m ch nh n m t gi tin TCP (t i nt 3). Khi th c hi n m ph ng, Ta nh n th y l th i i m ny l 624.08754 v file bm v t tng ng l R 624.0827 2 3 tcp 1000------- 1 0.0 3.0 1562 4350 S tr c s cu i cng cho Ta bi t r ng: gi tin m ch nh n c l gi TCP s 1562. Theo , thng l ng TCP n gi n l s b chia ra b i kho ng th i gian k t n i FTP (623s), ngha l 2.507 gi tin/s, ho c tng ng v i 2.507 Kbyte/s hay 20058 bps) (khi m t gi tin TCP m c nh c dung l ng l 1000 byte). Lu : N u ta nhn vo dng u tin c a file out.tr, Ta s th y l c cc gi TCP khc (m i gi c kch c 40 gi tin) m Ta ko tnh n trong t ng s 1562 gi tin. S seri c a chng l 0. Ta ko tnh cc gi tin ny v chng tng ng v i cc gi tin bo hi u (signalling) lin quan n lc b t u k t n i TCP. M t i u c n ch n a l Ta s d ng phin b n Ack b tr c a TCP qua vi c s d ng l nh: Set sink [new Agent/TCPSink/DelAck] Instead of simply set sink [new Agen/TCPSink]

6.4. T o nhi u k t n i v i cc c tnh ng u nhin


t o nhi u k t n i, thay v xc nh t ng nt, knh truy n, k t n i ho c cc ng d ng n l , s h u ch hn n u xc nh chng nh cc vect ( hay m ng) trong tcl (trong cc cu l nh l p) Hn th , vi c l a ch n cc thng s k t n i (ch ng h n nh th i gian b t u ho c k t thc ho t ng, tr lin k t, vv) s tr nn th v n u ta ch n theo cch ng u nhin. Ta s xem xt c 2 v n trong m c ny v sau s a ra 1 v d minh h a. Lu r ng Ta cng v a xem xt cc kha c nh khc nhau c a y u t ng u nhin V d : Xem xt m ng hnh 6.7. o n m c a ra b ng 6.2. m c 6.3

Ta t o 5 k t n i FTP b t u m t cch ng u nhin: th i gian b t u l phn b ng d ng trong kho ng 0-7s. Ton b qu trnh m ph ng di n ra trong 10s. Ta t o lin k t v i tr c ch n l a ng u nhin, phn b u trong kho ng t 1-5s. Cng v i file bm v t theo tiu chu n c t o ra, Ta cng t o thm 1 file c tn l win. File ny cho bi t s thay i kch c c a s c a t t c k t n i v i chi ti t l 0.03s. Th c hi n i u ny b ng cch dng th t c plotWindow. Ch l file win c nh a ch b ng cch s d ng con tr windowVsTimes Th t c ny g i mt cch qui cho

107

t ng k t n i m t trong 5 k t n i t o ra.

Hnh 6.7: V d v m ng v i m t s k t n i TCP

#Create the simulator instance set ns [new Simulator] #Opening the trace files set nf [open out.nam w] $ns namtrace-all $nf set tf [open out.tr w] set windowVsTime [open win w] set param [open parameters w] $ns trace-all $tf #Define a finish procedure proc finish {} { global ns nf tf $ns flush-tracert close $nf close $tf exec nam out.nam & exit 0 } #Create bottleneck and dest nodes and link between them

108

set n2 [$ns node] set n3 [$ns node] $ns duplex-link $n2 $n3 0.7Mb 20ms DropTail set NumbSrc 5 set Duration 10 #Source nodes for {set j 1} {$j<=$numbSrc} {incr j} { set S($j) [$ns node] } # Create a random generator for starting the ftp # and for starting the ftp and for bottleneck link delays set rng [new RNG] $rng seed 0 # parameters for random variables for delays

set RVdly [new RandomVariable/Uniform] $RVdly set min_ 1 $RVdly set max_ 5 $RVdly use-rng $rng # parameters for random variables for beginning of ftp connections set RVstart [new RandomVariable/Uniform] $RVstart set min_ 0 $RVstart set max_ 7 $RVstart use-rng $rng } #We define two random parameters for each connection for {set i 1} {$i<=$NumbSrc} { incr i } { set startT ($i) [expr [$RVstart value]] set dly)$i) [expr [$RVdly value]] puts $param dly($i) $dly($i) ms puts $param startT($i) $startT($i) sec } #Links between source and bottleneck For {set j 1} {$j<=$NumbSrc} { incr j} {

109

$ns duplex-link $S($j) $n2 10Mb $dly($j)ms DropTail $ns queue-limit $S($j) $n2 100 } #Monitor the queue for link (n2-n3). (for NAM) $ns duplex-link-op $n2 $n3 queuePos 0.5 #Set Queue Size of link (n2-n3) to 10 $ns queue-limit $n2 $n3 10 #TCP Sources for {set j 1} {$j<=$NumbSrc} { incr j } { set tcp_src($j) [new Agent/TCP/Reno] } #TCP Destinations For {set j 1} {$j<=$NumbSrc} { incr j} { Set tcp_snk($j) [new Agent/TCPSink] } #Connections for {set j 1} {$j<=$NumbSrc} { incr j } { $ns attach-agent $S($j) $tcp_src($j) $ns attach-agent $n3 $tcp_snk($j) $ns connect $tcp_src($j) $tcp_snk($j) } #FTP sources for {set j 1} {$j<=$NumbSrc} { incr j } { set ftp($j) [$tcp_src($j) attach-source FTP] } #Parametrisation of TCP sources for {set j 1} {$j<=NumbSrc} { incr j } { $tcp_src($j) set packetSize_ 552 } #Schedule events for the FTP agents:

110

for {set i 1} P$i<=$NumbSrc} { incr i } { $ns at $startT($i) ftp($i) start $ns at $Duration $ftp($i) stop } proc plotWindow {tcpSource file k} { global ns set time 0.03 set now [$ns now] set cwnd [$tcpSource set cwnd_] puts $file $now $cwnd $ns at [expr $now+$time] plotWindow $tcpSource $file $k } # The procedure will now be called for all tcp sources for {set j 1} {$j<=$NumbSrc} { incr j } { $ns at 0.1 plotWindow $tcp_src($j) $windowVsTime $j } $ns at [expr $Duration] finish $ns run

B ng 6.2: o n m ex3.tcl i v i m t s k t ni TCP c nh tranh

6.5. Cc k t n i TCP ng n
a s lu l ng trn Internet l truy n file. Dung l ng file truy n trung bnh l kho ng 10Kbyte, ngha l m t file trung bnh c t 10 gi TCP tr xu ng th kch c c a 1 gi TCp s l 1Kbyte [10,36]. i u ny cho th y h u h t vi c truy n file k t thc trong giai o n slow start. Nh ng file ny th ng c g i l "con chu t" ("mice"). Tuy nhin, i u ng ng c nhin l h u h t lu l ng Internet c truy n b ng cc file r t di, c g i l "con voi" ("elephants"). M t phn b i n hnh m t kch th c file c tn l Pareto [10], v i tham s shape (shape parameter) n m gi a 1 v 2 [10] ( trung bnh l 10KB). Trung bnh kch th c file kho ng 2.5Kbyte . Nh v y, phn b Pareto v i gi tr k v ng l 10Kbyte v kch th c bnh qun l 2.5 Kbyte nh ngha m t phn b Pareto v i tham s shape

111

= 1.16 v v i kch th c nh nh t l 1.37Kbytes. Phn b cc th i gian gi a hai s ki n n c a cc k t n i m i th ng c l y theo hm m. Trong ph n ny, ta s xem xt cc cch m ph ng cc phin lm vi c ng n v xc nh phn b th i gian truy n, s l ng k t n i ang di n ra v lu l ng. Ta s xem xt m t m ng l i c cng topo nh trong hnh 6.2: m t vi ngu n chia s chung nt th t c chai v cng m t ch chung. Thng s "NodeNb" cho bi t s l ng ngu n. ( trong v d ta ang c p, thng s l 6). Ngu n TCP by gi c tham s ha b i 2 tham s : nt ngu n v s phin t nt ngu n . i v i m i m t tr m TCP ta nh ngha m t ng d ng FTP. Cc k t n i TCP m i n theo m t qu trnh Poison. V v y, ta kh i t o m t k t n i TCP m i b ng cch dng cc bi n ng u nhin c phn b theo hm m. Gi s lin k t nt th t c chai l 2 Mbps, tr l 1ms v kch th c 1 hng i l 3000. T t c cc lin k t u vo khc tham gia cng lin k t ny c bng thng l 100Mbps v tr l 1ms. Ta s d ng phng php New Reno v i kch th c l n nh t c a c a s l 2000. Th i gian trung bnh gi a nh ng l n n c a cc phin TCP m i t i m i nt trong v d ang xt l 45. i u ny c ngha l trung bnh, 22.22 phin m i n m i nt, v v y t ng t c n c a cc phin l 22.22 l n NodeNb m trong v d c a ta l 133.33 phin/s .Ta t o ra cc phin lm vi c c kch th c ng u nhin ( gi tr trung bnh l 10Kbyte), tham s shape c a phn b Pareto l 1.5. Do v y, t ng t c n c a cc bit l: 133.33 104 8 = 10.67M bps Ta th y t c t o ra c a cc bit l n hn dung l ng nt th t c chai, v v y hi n t ng t c ngh n s x y ra. Tuy nhin, TCP c kh nng trnh hi n t ng t c ngh n trong m ng ( t i hng i nt th t c chai). V v y, hi n t ng ngh n m ng s x y ra theo nh ng cch th c khc . i u khi n s phin lm vi c: Trong ng c nh cc phin TCP ng n, ta quan tm n c s li u th ng k gi l n s li u th ng k phin. Trong chng trnh ns, Ta s nh ngha th t c qui, c g i l Test. Th t c ny ki m tra m i phin lm vi c xem li u n k t thc hay cha. Th t c ny g i l i chnh n sau 0.1s. ( Gi tr ny c t trong bi n time). N u m t k t n i ch m d t, Ta s c m t file u ra ch a cc thng s sau: i t ng xc nh k t n i i v j ( trong (i, j) th hi n cho l n k t n i th j t nt i. Th i i m b t u v k t thc k t n i. Thng l ng c a k t n i. Kch th c c a knh truy n d li u tnh theo byte.

112

Sau m t kho ng th i gian ng u nhin, th t c l i xc nh kh i u m t qu trnh truy n khc n a. Trong o n m sau y, file u ra s l Out.ns. ki m tra xem li u m t phin lm vi c k t thc hay cha, Ta s d ng l nh: If{$tcpsrc{$i,$j) set ack_]==[$tcpsrc($tcpsrc($i,$j) set maxseq_]} { M t th t c qui khc tn l countFlows c s d ng c p nh t s k t n i ang ho t ng t m i nt ( c lu tr d i d ng vect Cnts c di tng ng v i s k t n i ang di n ra t nt j2 Th t c c 2 thng s : ind v sign. Thng s ind cho bi t nt ngu n no c quan tm cn thng s signcho th t c bi t ph i lm g: gi tr c a sign l 0 n u cu c g i k t thc cn n s l 1 n u cu c g i b t u. Nh ng thng s ny c s d ng khi vi c g i th t c x y ra lc b t u v k t thc k t n i. Th t c cng t g i l i chnh n u n sau 0.2 v sau n in s l ng cu c g i ang di n ra vo file Conn.tr. lm c i u , gi tr c a thng s sign ko ph i l 1 cng ko ph i l 0. (Ta t l 3) Gim st hng i: ti p t c v i chng trnh tcl, Ta xem xt m t cch khc th c hi n vi c gim st hng i. Cch ny ph c t p hn phng php m Ta xem m c 4.3 Ta s d ng l i cc cu l nh: Set qfile [$ns monitor-queue $N$D [open queue.tr.w] 0.05] [$ns link $N $D] queue-sample timeout; Tuy nhin ta cng c th xa dng th 2. Thay v ph i gi i h n v i l nh ny, ta lm vi c tr c ti p v i cc thu c tnh c a gim st hng i(monitor-queue) c m t m c 4.3. Vi c ny c ti n hnh trong m t th t c c tn l record. Th t c ny t ng l p l i sau 0.05s. V d , chng ta sao lu bng thng s d ng c a hng i (tnh theo Kb/s) thnh m t file b ng cch chia s l ng s l ng gi tin i trong m t kho ng th i gian cho kho ng th i gian . Lu l gim st hng i t ng s l ng cc byte n trong thu c tnh bdepartures_. N u nh ta ch mu n tnh n s l ng departure trong m t kho ng th i gian ( m ko ph i trong su t ton b th i gian m ph ng), ta ph i ch nh l i gi tr c a bdepartures_ cu i m i qu trnh tnh ton bng thng m i.

set ns [new Simulator] #There are several sources of TCP sharing a bottleneck link #and a single destination . Their number is given by the paramter NodeNb #
2

S(1)

----

M i quan tm dnh cho cc b m khc nhau cc nt khc nhau th hi n ch ta cng c th s d ng chng trnh cho cc lin k t ko i x ng, trong tr ng h p ny ta c th s nghin c u s ph thu c c a hi u nng vo tr c a knh truy n v bng thng.

113

# # . ---# . # S(NodeNb)

| | ----

---- N -------- D(1) . . . D(NodeNb)

#Next file will contain the transfer time of different connections set out [open Out.ns w] # Next file will contain the number of connections set Conn [open Conn.tr w] #Open the Trace file set tf [open out.tr w] $ns trace-all $tf #We define three files that will be used to trace the queue size , #the bandwidth and losses at bottleneck. Set qsize [open queuesize.tr Set qbw [open queuebw.tr Set qlost [open queuelost.tr #defining the topology Set Set N D [$ns node] [$ns node] $D 2Mb 1ms Droptail $D 3000 w] w] w]

$ns duolex-link $N $ns queue-limit $N #Number of souces Set NodesNb 6

#Number of flows per suouce node Set NumberFlows 530 #Nodes and links For {set j 1} {$j<=$nodeNb} { incr j } { Det S($j) [$ns node ] $ns duplex-link $S($j) $N 100Mb 1ms DropTail $ns queue-limit $S($j) $N 1000 } #TCP sources and Destinations For {set i 1} {$i<=$NodeNb} {incr I } { For {set j 1} {$j<=$NumberFlows} {incr j } { set tcpsrc($i,$j) [new Agent/TCP/Newreno] set tcp_snk($i,$j) [new Agent/TCPSink] $tcpsrc($i.$j) set window_ 2000 }

114

} #Connections For {set i 1} {$i<=$NodeNb} {incr I } { For {set j 1} {$j<=$NumberFlows} {incr j } { $ns attach-agent $S($i) $tcpsrc($i,$j) $ns attach-agent $D Stcp_snk($i,$j) $ns connect $tcpsrc($i,$j) $tcp_snk($i,$j) } } #Generators for random size of files Set rng1 [new RNG] $rng1 seed 0 Set rng2 [new RNG] $rng2 seed 0 # Random interarrival time of TCP transfers at each source i Set RV [new RandomVariable/Exponential] $RV set avg_ 0.045 $RV use-rng $rng1 #Random size of files to transmit Set RVSize [new RandomVariable/pareto] $RVSize set avg_ 10000 $RVSize set shape_ 1.5 $RVSize use-rng $rng2 #We now define the beginning times of transfers and the transfer sizes #Arrivals of sessions follow a Poisson process. # For {set i 1} {$i<=$NumberFlows} { incr j } { #set the beginning time of next transfer from source i Ser t [expr $t + [$RV value]] Set Conct($i,$j) $t #set the size of next transfer from source i Set Size($i,$j) [expr [$RVSize value]] $ns at $Conct($i,$j) $Sftp($i,$j) send $Size($i,$j) #update the number of flows $ns at $Conct($i,$j) countFlows $i 1 } } #Next is a recursive procedure that checks foreach session whether #it has ended . The procedure calls itself each 0.1 sec ( this is

115

#set in the variable time) #If a connection has ended then we print in the file $Out # * the connection identifiers i and j , # * the start and end time of the connection, # *the throughput of the session , # *the size of the transfer in bytes #and we further define another beginning of transfer after a random time . Proc Test {} { Global Conct tcpsrc Size NodeNb NumberFlows ns RV ftp Out tcp_snk RVSize Set time 0.1 For {set i 1} {$i<=$NodeNb} {incr I } { For {set j 1} {$j<=$NumberFlows} {incr j } { #We now check if the transfer is over if {[ cpsrc($i,$j) set ack_]==[$tcpsrc($i,$j) set maxseq_]} { if { $tcpsrc($i,$j) set ack_]>=0} { # If the transfer is over , we print relevant information in $Out put $Out $i,$j\t$Conct($i,$j)\t[expr [$ns now]]\t\ [expr ($Size($i,$j))/(1000*([expr [$ns now]] - $Conct($i,$j)))]\t$Size($i,$j) countFlows $i 0 $tcpsrc($i,$j) reset $tcp_snk($i,$j) reset } } } } $ns at [expr [$ns now]+$time] Test } for {set j 1} {$j<=$nodeNb} {incr j } { set Cnt($j) 0 } #The following recursive procedure updates the number of connections #as a function of time . Each 0.2 it prints them into $Conn. This #is done by calling the procedure with the sign parameter equal # 3 (in which case the ind parameter does not play a role). The #procedure is also called by assingning the sign parameter 0 , or when #from source I ends by assingning the sing parameter 0, or when #it begins , by assingning it 1 (I is passed though the ind variable). proc countFlows {ind sing} { global Cnts Conn NodeNb set ns [Simulator instance]

116

if {$sign==0 } { set Cnts($ind) [expr $Cnts($ind) 1] } else if {$sign==1 } { set Cnts($ind) [expr $Cnts($ind0 + 1] } else { puts nonewline $Conn [$ns now] \t set sum 0 for {set j 1} {$j<=$NodeNb} {incr j } { set sum [expr $sum + $Cnts($j)] } puts $Conn $sum $ns at [expr [$ns now] + 0.2] countFlows 1 3 } } #Define a finish procedure proc finish {} { global ns tf qsize qbw qlost $ns flush-trace close $qsize close $qbw close $qlost #Execute xgraph to display the queu size , queue bandwith and loss rate exec xgraph queuesize.tr geometry 800x400 t Queue size x secs y #packets & exec xgraph queuebw.tr geometry 800x400 t bandwith x secs y Kbps fg white & exec xgraph queuelost.tr geometry 800x400 t #Packets lost x secs y packets & exut 0 } # QUEUE MONiTORiNG set qfile [$ns monitor-queue $N $D [open queue,tr w] 0.05] [$ns lick $N $D] queue-sample-timeout; #The following procedure records queue size , bandwidth and loss rate proc record {} { global ns qfile qsize qbw alost N D set time 0.0.5 set now [$ns now] #print the current queue size in $qsize , the current used # bandwidth is $qbw, and the loss rate in $qloss $qfile instvar parrivals_ pdepartures_ bdrops_ bdepartures_ pdrops_ puts $qsize $now [expr $parrivals_ -$pdepartures_ -$pdrops_] puts $qbw $now [expr $bdepartures_*8/1024/$time]

117

set bdepartures_ 0 puts $qlost $now [expr $pdrops_/$time] $ns at [expr $now+$time] record } $ns at 0.0 recoerd $ns at 0.01 Test $ns at 0.5 countFlows 1 3 $ns at 20 finish $ns run

B ng 6.3: o n m shortTcp.tcl i v i m t s k t ni TCP ng n


S l ng cc phin lm vi c c t o ra (530 phin /ngu n) m b o r ng cc gi tin n t t t c cc nt ti p t c cho n t n khi k t thc m ph ng. Khi ch y o n m ta thu c kch th c hng i tnh theo Kbyte v theo cc gi tin nh trong hnh 6.8 Ta cng th c hi n l i m ph ng v i s phin lm vi c t i m i nt gi m xu ng cn 130 v kch th c c a hng i theo Kbyte v theo gi tin c m t hnh 6.9.

Hnh 6.8: Kch th c hng i trong v d shortTcp.tcl

Hnh 6.9: Kch th c hng i trong v d shortTcp.tcl khi s k t n i b gi i h n

D i y l m t s k t qu quan st c 1. Trong c 2 hnh, s l ng gi tin t i hng i nhi u hn s l ng Kbyte c x p hng. i u ny d ng nh l v m t gi TCP c kch th c l 1Kbyte! L do l cc phin c s l ng gi tin l n r t t (M t phin th ng ch c 3 gi tin ho c t hn). V v y, s l ng gi tin u phin c kch th c 40 byte ( c g i lc b t u k t n i TCP) cng ng k . (kho ng 1/3) N u tnh n nh ng gi tin ng n ny th c nhi u gi tin hn l ng Kbyte.

118

2. Ta quan st th y r ng m t gi tin hng i.

hnh 4.8 kch th c hng i n nh

3000. y l kch

th c l n nh t m hng i t t i. Ti p theo th i i m ny s x y ra hi n t ng

3. Nh trn hnh 4.8 th hi n, s l ng gi tin lun lun l n hn s l ng Kbyte x p hng v trn hnh 4.9, sau m t kho ng th i gian no , s l ng gi tin s b ng v i s l ng Kbyte. T i th i i m ny, t t c cc gi tin gi i h n s l ng gi tin t i m i nt xu ng cn 130. 4. N u l y t c d li u t o ra tr i t c ra c a lin k t nt th t c chai, ta s thu c l ng d li u c x p hng t i hng i c a lin k t nt th t c chai l n hn r t nhi u. L do l d li u cng c lu l i t i b nh m c a ng i g i. Ti p theo ta quan st s pht tri n s l ng k t n i ang di n ra hnh 6.10 v l ng bng thng c s d ng h th ng, nh trong hnh 6.11 hng i l cc gi tin d li u TCP v ko c cc gi tin 40 byte dnh cho kh i t o phin. i u ny c c khi ta

lin k t nt th t c chai

6.6. Cc cng c gim st tin ti n:


m c 6.5, ta ki m tra s k t thc m i phin lm vi c TCP theo nh k b ng cch so snh s th t c a b n tin ack hi n th i v i s th t l n nh t c a cc k t n i. Qa trnh tm ki m ny kh t n km. Ta xem xt 2 qu trnh gim st khc:

Hnh 6.10: S l ng k t n i

Hnh 6.11: Bng thng c s d ng trong giai o n ngh n c chai

1. Th nh t l xc nh nh ng ho t ng c n lm lin quan n vi c h y k t n i trong th t c done, l m t th t c t ng c g i n khi m t k t n i k t thc. S nh n d ng c a k t n i v a k t thc cng nh l cc thu c tnh khc c a k t n i (v nh th i gian kh i u c a n ch ng h n) c th c th t c ny s d ng n u

119

n c nh ngha nh cc tr ng thi c a qu trnh k t n i. Ti p c n ny c th hi n o n m tcl shortTcp2.tcl b ng ??

2. Ta cng c th dng qu trnh gim st trn m i lu ng. Qa trnh ny cung c p cc con s th ng k trn m i lu ng v 1 s thng tin nh s l ng gi tin truy n, cc byte truy n, gi tin b m t, vv. Ta s l i ph n th o lu n ti p c n ny trong ph n sau ?? nh ngha tr ng thi(state) c a cc k t n i TCP trong o n m ny c a ra cng gi ng nh cch nh ngha kch th c c a s l n nh t c a TCP, ng ng ban u c a giai o n slow-start., vv. Trong o n m, chng ta nh ngha th i gian b t u phin lm vi c, nh n d ng nt v phin lm vi c cng nh l kch th c truy n nh theo cc tr ng thi sau: $tcpsrc($i, $j) set starts $t $tcpsrc($i, $j) set sess $j $tcpsrc($i, $j) set node $i $tcpsrc($i, $j) set size [$RVSize value]] Lu l ta s d ng cc tr ng thi khc c a k t n i TCP: Ndatapack_ l s l ng gi tin c truy n b i k t n i ( n u 1 gi tin c truy n l i vi l n, n ch c m 1 l n Ndatapbytes_ l s l ng byte d li u c truy n b i k t n i Nrexmitpackets_ l s l ng gi tin c k t n i truy n l i Nrexmitbytes_ l s l ng byte c k t n i truy n l i

set ns [new Simulator] # there are serveral source each generating many TCP session sharing a bootleneck # link and a single destination. Their numner is given by the paramter NodeNb # # # # # S(1) . . . S(1) ---| ---- ---- N ---------D(1)...D(NodeNb) | ----

120

#Next file will contain the trasfer time of diffent connections set Out [open Out.ns w] #Next file will contain the number of connections set Conn [open Conn.tr w] #Open the Trace file set tf [open out.tr w] $ns trace-all $tf #defining the topolofy set N [$ns node] set D [$ns node] $ns duplex-link $N $D 2Mb 1ms DropTail $ns queue-limit $N $D 300 #Number of Nodes set NodeNb 6 #Number of flows per source node set NumberFlows 530 #Node and links for {set j 1} {$j<=$NodeNb} {incr j}{ set S{$j} [$ns node] $ns duplex-link $S($j) $N 100Mb 1ms DropTail $ns queue-limit $S($j) $N 1000 } #TCP Source, destinations, connections for {set i 1} {$i<=$NodeNb} {incr i} { for {set j 1} {$j<=$NumberFlows} {incr j }{ set tcpsrc($i, $j) [new Agent/TCP/Newreno] set tcp_snk($i, $j) [new Agent/TCKSink] $tcpsrc($i, $j) set window_ 200 $ns attach-agent $S ($i) $tcpsrc($i, $j) $ns attach-agent $D $tcp_snk($i, $j) #ns connect $tcpsrc($i, $j) $tcp_snk($i, $j) set ftp($i, $j) [$tcpsrc($i, $j) attach-source FTP] }}

121

#Generator for random size of files. set rng1 [new RNG] $rng1 seed 0 set rng2 [new RNG] $rng2 seed 0 #Random inter-arrival times of TCP rtasfer at each source i set RV [new Random Variable/Exponential] $RV set avg_ 0.045 $RV use-rng $rng1 #Random size of files to transmit set RVSize [new RandomVariabl/Pareto] $RVSize set avg_ 10000 $RVSize set shape_ 1.5 $RVSize use-rng $rng2 #We now define the beginning times of transfer and the transfer sizes #Arrivals of sessions follows a Poisson process. # for {set i 1} {$i<=$NodeNb} {incr i}{ set t [$ns now] for {set j 1} {$j<=$NumberFlows} {incr j}{ #Set the beginning time of next transfer from source and attributtes set t [expr $t + [$RV value]] $tcpsrc($i, $j) set starts $t $tcpsrc($i, $j) set sess $j $tcpsrc($i, $j) set node $i $tcpsrc($i, $j) set size [expr [$RVsize value]] $ns at [$tcpsrc($i, $j) set starts] "$ftp( $i, $j) send [$tcpsrc($i, $j) ser size]"

# update the number of flows $ns at [$tcpsrc($i, &j) set starts] "contFlows $i 1" }}

122

for {set j 1} {$j<=$NodeNb} {incr j }{ set Cnts($j) 0 } #The following procedure is called whenever a connection ands Agen/TCP instproc done {}{ global tcpsrc NodeNb NumberFlows ns RV ftp Out tcp_snk RVsize #Print in $Out: node, session, start time, end time, duration, #trans-pkts, trans-bytes, retrans-bytes, throughput set duration [expr [$ns now] - [$self set starts]] puts $Out "[$self set node] \t [$self set sess] \t [$self set starts]\t\ [$ns now] \t $duration \t [$self set ndatapack_] \t\ [$self set ndatabytes_] \t [$self set nrexmitbytes_] \t\ [expr [$self set ndatabytes_]/$duration]" countFlows [$self set node] 0 } # The following recursive procedure updates the number of connections # as a function of time. Each 0.2 sec it prints them into $Conn. This # is done by calling the procedure with the "sign" parameter equal # 3 (in which case the "ind" parameter does not play a role). The # procedure is also called by the "done" procedure whenever a connection # from source i ends by asssinging the "sign" parameter 0, or when # it begins, by assinging it 1 (i is passed through the "ind" variable). proc countFlows {ind sign}{ global Cnts Conn NodeNb set ns [Simulator instance] if {$sign==0} {set Cnts($ind) [expr $Cnts($ind) - 1] } elseif {$sign==1} {set Cnts($ind) [expr $Cnts($ind) + 1] } else { puts -nonewline $Conn "[$ns now] \t" set sum 0 for {set j 1} {$j<=$NodeNb} {incr j} { puts -nonewline $Conn "$Cnts($j) \t" set sum [expr $sum + $Cnts($j)] } puts $Conn "$sum"

123

$ns at [expr [$ns now] + 0.2] "countFlows 1 3" }} #Define a finish procedure proc finish {} { global ns tf close $tf $ns flush-trace exuit 0 } $ns at 0.5 "countFlows 1 3" $ns at 20 "finish" $ns run

B ng 6.4: o n m shortTcp.tcl i v i m t s k t ni TCP ng n

6.7. Bi t p
Bi t p 6.7.1. Gi i thch t i sao kch th c c a s dao ng nhi u hn so v i thng l ng trong hnh 6.1 v hnh 6.2 Bi t p 6.7.2. Thng l ng trung bnh v t l m t gi tin c a k t n i TCP trong v d ex1.tcl l g? Bi t p 6.7.3. Kch th c hng i trung bnh trong v d ex1.tcl l g? Bi t p 6.7.4. Nghin c u nh h ng c a xc su t m t gi tin trong m hnh nhi u rdrop.tcl ln thng l ng TCP v i xc xu t m t gi tin dao ng t 0 -40% Bi t p 6.7.5. S a i o n m rdrop.tcl nghin c u nh h ng xc su t m t c a cc gi tin (C th l gi tin ACK) trn knh truy n ng c n3-n2. V th thng l ng nh l m t hm xc su t m t gi tin i v i t l m t gi tin dao ng t 0 - 40%. TCP nh y c m hn v i vi c m t ng u nhin cc gi tin g i i hay nh n v cc gi tin ACK? Bi t p 6.7.6. M ph ng 2 lin k t TCP c nh tranh i x ng chia s chung ng lin k t nt th t c chai. M i lin k t chi m bao nhiu ph n bng thng n u:

124

(i) ch 1 lin k t s d ng l a ch n ACK b tr v c 1 lin k t u l NewReno (ii) c 2 lin k t u dng l a ch n ACK n gi n, lin k t u dng phin b n Tahoe cn lin k t cn l i dng phin b n NewReno Bi t p 6.7.7. Trong th t c plotWindow cu i o n m ex3.tcl b ng 6.2 , chng ta

coi s lin k t nh 1 tham s c a th t c. Nhng n u ta coi n nh 1 bi n chung th i u g s x y ra? ( c ngha l chng ta vi t global ns j) Bi t p 6.7.8. Phn tch cc qu trnh m t gi tin trong ex3.tcl ( xem b ng 4.2). Kch th c hng i knh n2-n3 s l bao nhiu trnh hi n t ng m t gi tin?

Bi t p 6.7.9. Thm vo o n m shortTcp.tcl ( B ng 6.4 ) cc gi tin b m t ng u nhin (i) knh truy n i (ii) knh nh n v N-D. T l m t gi tin bi n i trong kho ng t 0 40 %. Phn tch th i gian trung bnh truy n 1 file v l ch tiu chu n c a th i gian ny nh l m t hm c a t l m t gi tin. Gi i thch k t qu thu c! Lu : trong tr ng h p c nhi u ng i s d ng, 1 ng i c th mong i r ng n u 1 s phin lm vi c c thng l ng th p do b t n hao, s c thm thng l ng s n c dnh cho cc phin lm vi c khc cc phin TCP ng n t nh y c m v i t n hao hn cc phin di. Cc qu trnh m ph ng xc nh n i u ny hay ko? N u ko, hy gi i thch i u g x y ra.

125

Chng 7 nh tuy n v m ng di d ng
M cl c
7.1. B t u nh th no . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2. M ng ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3. Cc giao th c nh tuy n multicast (PIM) . . . . . . . . . 7.3.1. Ch Dense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3.2. nh tuy n d a trn i m RP . . . . . . . . . . . . . . . . . . . . . . . . . . 7.4. nh tuy n d a trn i m RP . . . . . . . . . . . . . . . . . . . . . 7.4.1. Ch DM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.4.2. nh tuy n v i i m RV t p trung . . . . . . . . . . . . . . . . . . . . . 7.5. Kh o st m ph ng pimdm.tcl. . . . . . . . . . . . . . . . . . . . . 7.6. Bi t p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 130 130 131 132 132 135 136 138 138

Ng i d ch: Tr n Di u Linh Bin t p: Hong Tr ng Minh B n g c: NS Simulator for beginners, Chapter 5 [2]

Chng ta s xem l i trong chng ny c nh tuy n unicast v multicast. Cc giao th c nh tuy n t p trung vo ng i c nh ( nh tuy n tnh) s c so snh v i nh tuy n ng. Tc d ng c a k t n i ng trong nh tuy n s c ki m tra. M t tham chi u t t cho nh tuy n qua Internet n m trong tham kh o [6].

126

7.1. B t u nh th no
C m t vi ki u nh tuy n qua Internet. M t ki u n gi n nh t l ki u nh tuy n tnh trong ng i ng n nh t (gi i h n b i s cc hop) c l a ch n trong cc k t n i. Ns c th m ph ng cc lin k t nhi u ( nh chng ta th y trong ph n 7.3 ) ho c th m ch cc lin k t c th b ng t k t n i. m ph ng s ng t k t n i c a m t lin k t gi a nt n1 v nt n4 t th i i m 1 n 4.5, v d ta c th dng l nh: $ns rtmodel at 1.0 down $ns1 $ns4 $ns rtmodel at 4.5 up $ns1 $ns4

By gi , chng ta xt m ng c m t trong hnh 7.1, trong c hai m ng khc nhau gi a nt ngu n 0 v nt ch 5. nh tuy n tnh m c nh c s d ng b i ns, s l a ch n tuy n 0-1-4-5 cho vi c thi t l p k t n i.

Hnh 7.1: V d v nh tuy n

Set ns [new Simulator] # nh ngha cc m u khc nhau cho cc lu ng d $ns color 1 Blue $ns color 2 Red #Open the Trace file Set file1 [open out.tr w] li u (dnh cho NAM)

127

$ns trace-all $file1 #m file theo d u NAM (open the NAM trace file) Set file2 [open out.nam w] $ns namtrace-all $file2 # nh ngha th Proc finish {} { global ns file1 file2 $ns flush-trace close $file1 close $file2 exec nam out.nam & exit 0 } #dng ti p theo nn c ghi ch $ns rtprt DV #t o 6 nt set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] set n3 [$ns node] set n4 [$ns node] set n5 [$ns node] # T o cc lin k t gi a cc nt $ns $ns $ns $ns $ns $ns duplex-link duplex-link duplex-link duplex-link duplex-link duplex-link $n0 $n1 $n2 $n1 $n3 $n4 $n1 $n2 $n3 $n4 $n5 $n5 0.3Mb 0.3Mb 0.3Mb 0.3Mb 0.3Mb 0.3Mb 10ms 10ms 10ms 10ms 10ms 10ms DropTail DropTail DropTail DropTail DropTail DropTail ch r nh tuy n tnh. t c finish (define a finish procedure)

#a ra v $ns $ns $ns $ns $ns

tr c a nt (cho NAM) $n0 $n1 $n2 $n1 $n3 $n1 $n2 $n3 $n4 $n5 orient orient orient orient orient right right up up-left left-up

duplex-link-op duplex-link-op duplex-link-op duplex-link-op duplex-link-op

128

$ns

duplex-link-op

$n4

$n5

orient

right-up

#ci t k t n i TCP Set tcp [new Agent/TCP/Newreno] $ns $ns $ns $tcp attach-agent attach-agent connect set fid_ $tcp 1 $n0 $n5 $tcp $sink Set sink [new Agent/TCPSink/DelAck] $sink

#Ci t FTP qua k t n i TCP Set $ftp $ftp ftp set [new Application/FTP] $tcp FTP type_ attach-agent

$ns rtmodel-at 1.0 down $n1 $n4 $ns rtmodel-at 4.5 up $n1 $n4 $ns at 0.1 $ftp start $ns at 12.0 finish $ns run

B ng 7.1: K ch b n tcl cho nh tuy n tnh v ng(ex2.tcl)


Ng c v i nh tuy n tnh, Internet c th tm c ng i khc khi n th y m t tuy n b ng t k t n i. Ty ch n ny c s d ng trong ns b ng cch thm l nh (xem thm b ng 7.1 ) $ns rtproto DV Trong v d ex2.tcl a ra trong b ng 7.1, lin k t k t n i 1-4 b down trong su t kho ng th i gian [1, 4-5]. Trong th NAM chng ta c th th y lin k t ny tr thnh mu trong kho ng th i gian ny. M t k t n i TCP c l p gi a nt 0 v 5. Khi ch y k ch b n, v i nh tuy n tnh (ghi ch l nh $ns rtproto DV) chng ta th y k c n u k t n i c ti p t c l i t i th i i m 4.5, k t n i TCP ch k t n i l i t i th i i m x p x 8. L do l timeout (th i gian qu h n) x y ra trong khi khng c tn hi u ACK tr l i v i node 0, v kho ng th i gian b nhn i v i m i m t timeout m i. Trong th kh o st NAM chng ta c th th y tr ng h p nh tuy n ng, cc gi tin bo hi u c s d ng quy t nh ng i khng ch t i th i i m b t u m cn t i th i i m k t n i c thay i.

129

7.2. M ng ng
Chng ta c th th y ph n tr c, chng ta c th xc nh tr ng thi lin k t hi n: lin k t c th down v up t i cc th i i m ch n tr c. Tuy nhin, k t n i ng c th thay i theo cc ti n trnh ON-OFF hm m, ho c ti n trnh ON-OFF xc nh, ho c theo m t s d li u kh o st theo yu c u. Cc m hnh hm m ho c m hnh xc nh c b n tham s : th i gian b t u (m c nh l 0,5 giy t khi b t u m ph ng), chu k up (m c nh l 10 giy), chu k down (m c nh l 1giy) v th i gian k t thc (m c nh l k t thc m ph ng). Trong tr ng h p hm m, cc tham s up v down tng ng v i kho ng th i gian d tnh. V d , c u trc cho m hnh quy t nh c p d ng cho lin k t n1-n2 l: $ns rtmodel Deterministic {0.8 1.0 1.0} $n1 $n2

(th i gian k t thc l m c nh). Trong m t cu l nh theo d ng $ns rtmodel Deterministic {0.8 1.0} $n1 $n2

Cc th i i m b t u v k t thc l m c nh v trong cu l nh theo d ng $ns rtmodel Deterministic {1.0} $n1 $n2 trn b ng

Ch c tham s khng m c nh l chu k down. K t n i hm m a ra cch thay hm xc nh Deterministic b ng hm m Exponential Cu l nh tng ng v i k t n i d a trn file theo v t l: $ns rtmodel Trace <config_file> $n0 $n1

Cu i cng, cu l nh cng c th t o th t cc tr ng thi nh tuy n l ns, v s d ng n nh u vo (xem [1] ). Cc l i nt: C m t kh nng l m t nt ang down v up. i u ny gi ng nh ta th y trong cc tr ng h p l i lin k t, ngo i tr tr ng h p m t nt xu t hi n t i i m cu i.

7.3. Cc giao th c nh tuy n multicast (PIM)


Trong multicast, c th c m t vi nhm thnh vin multicast, cc nhm c th ch ng ph ln nhau. Trong IP multicast, bn nh n ph i yu c u l thnh vin trong nhm multicast

130

trong khi bn g i c th g i m khng c n tham gia vo nhm t tr c. Bn g i khng nh n c ph n h i t m ng v vi c bn nh n trong nh tuy n IP multicast. Khng ph i t t c cc nt c a m ng u c th x l multicast, trong ns ta c th m t cc nt c kh nng multicast m t cch chi ti t. M t giao th c nh tuy n nh ngha m t c ch m qua cy multicast c tnh ton trong m ph ng. C hai l p chnh c a cc l p nh tuy n: 1. Ki u dense mode thch h p i v i tr ng h p s l ng ng i dng multicast l n, trong tr ng h p ny, cc cy multicast c xy d ng cho b t k m t c p ngu n no v nhm multicast c a n. Vi c xy d ng cy yu c u qu ng b n t t c cc nt trong m ng. 2. Sparse mode c s d ng trong tr ng h p s cc nt nh . Do , nh tuy n c th c x l b ng vi c s d ng m t cy n c chia s . B n giao th c nh tuy n multicast c s d ng trong ns: Dense Mode (DM), Centralised (CtrMcast), Share Tree Mode (ST), v Bi-directional Sahred Tree Mode (BST). Khng may, cch ns m ph ng cc giao th c khng c nhi u bo hi u, c bi t trong qu trnh kh i t o. Giao th c DM ch l m t giao th c c phin b n ng trong ns, c g i l dynamicDM.

7.3.1. Ch Dense
Giao th c DM c hai ch kh gi ng nhau: Protocol pim DM (Protocol Independent Multicast Dense Mode) v dvmrp (Distance Vector Multicast Routing Protocol) [40], pimDM n gi n hn m t cht. Chng u d a trn vi c trn l t kh i t o c a m ng (s d ng ti p c n RFP) v sau d a trn tnh ton ng ng c l i ng n nh t. Chng ta gi s r ng b ng nh tuy n i m t i i m P2P l s n c. i u ny c th c hi n nh sau. N u router nh n c gi tin a i m multipoint t ngu n S n nhm G, u tin n ki m tra (s d ng b ng nh tuy n P2P) m giao di n nh n u vo tng ng v i gi tin S: i u ny c ngha r ng router ny l ng i ng n nh t t ngu n (do , y c g i l " ng tr l i ng n nh t"). N u k t qu l m th n g i thng i p "delete (S.G)", v d b n tin n ngu n yu c u ng ng vi c g i n n gi tin t S n G. N u k t qu dng th router g i m t b n sao c a thng i p n t p T c a t t c cc giao di n m qua n khng nh n c yu c u "delete(S,G)". N u T r ng, th n h y gi tin v g i thng i p delete(S,G) n giao di n m qua n nh n c thng i p.

131

7.3.2. nh tuy n d a trn i m RP


Centralized mcast (mcast t p trung) (CtrMcast) tng t nh PIM-SM (Ch Sparse c a PIM [11]). l i m g p (Rendezvous Point RP). M t cy chia s c xy d ng cho m t nhm multicast c g c t i i m RP ny. Trung tm tnh ton t p trung c s d ng tnh ton vi c chuy n (forward) cc cy i v ci t tr ng thi chuy n multicast, S,G (tr ng thi S tng ng v i ngu n c a gi tin v G tng ng v i a ch c a nhm multicast) t i cc nt thch h p khi bn nh n v i tham gia vo nhm. Cc gi d li u t bn g i n nhm l unicast n RP. Vi c multicast t RP n nhm c th c hi n theo cy ng i ng n nh t. Ch ST l phin b n n gi n ha c a giao th c nh tuy n c a ch Sparse trn. Giao th c ny c phin b n hai h ng trong ns c g i l BST, m c s d ng trong phin b n chu n CBT [7] v trong giao th c BGMP i v i multicast bn trong mi n [8] Trong cc giao th c d a trn i m RP, t t c cc lu ng lu l ng multicast u i qua i m RV v do gy ra hi n t ng th t c chai. Nt ny nh h ng t i hi u nng ton m ng. V n khc v i ti p c n ny l lu l ng chuy n qua cc ng khng t i u. u i m c a ti p c n ny l: Tnh n gi n c a thng tin tr ng thi: ch m t entry cho m t ngu n m t nhm. Bo hi u khng lin quan t i ton b m ng. Ch r ng, trong PIM-SM, c th chuy n m ch t i u cc cy d a trn ngu n (S,G) thay cho vi c nh tuy n qua i m RV. i u ny x y ra n u t c c a d li u ngu n v t qu ng ng. Do , i m RV c th d ng hi n t ng th t c chai n u t c lu l ng l n. Ch ST khng m ph ng cc c tnh ny.

7.4. nh tuy n d a trn i m RP


Multicast yu c u c i ti n cho cc nt v cc lin k t c a m ng. Do , ns c i u ki n r rng t l p m ph ng tr c khi t o topology. Do , chng ta b t u t cu l nh c trng: Set ns [new Simulator] $ns multicast

Trong k ch b n tcl, chng ta nh ngha a ch nhm qua s d ng cu l nh "set group1 [Node allocaddr]".Sau , chng ta nh ngha m t ng d ng v m t giao th c truy n t i, m t m t gn vo nt ngu n c a ra v m t khc gn vo nhm ch.

132

Chng ta xt n giao th c DM d i y. Khi ngu n S g i n m t nhm G tr thnh active, n b t u trn l t thng tin qua m ng n cy c g n vo tng ng v i nhm G. Khi m t l khng tham gia vo nhm multicast m nh n m t gi tin t nhm , n g i thng i p n giao di n n xa n t cy (S,G) (gi prune). Sau , n qu ng b tr l i ngu n: m t nt nh n m t thng i p t t t c cc lin k t u ra c a n trong cy c a (S,G) yu c u xa cc lin k t ny, g i tr l i giao di n n m t thng i p xa n t cy (S,G). M t ngu n s ng ng hon ton vi c g i gi tin n u khng c k t n i n bn nh n trong nhm ; n s ti p t c l i vi c g i gi tin khi bn nh n k t n i. M t v d c a c u hnh multicast v i su nt m ng c m t trong hnh 7.2 Chng ta xt n m ng c m t trong hnh 7.1

Hnh 7.2: V d v nh tuy n multicast

Set ns

[new Simulator]

$ns multicast Set $ns $ns $ns $ns f [open out.tr $f [open out.nam w] w]

trace-all namtrace-all color color 1 30

red purple packets

#the nam colors for the prune packets #the nam colors for the graft

133

$ns color 31 Set group Set For } nod {set

green

#allocate a multicast address; [Node allocaddr] 6 i 1} {$i <= $nod} {incr i} { #nod is the number of nodes #creat multicast capanle nodes;

#creat links between the nodes $ns $ns $ns $ns $ns $ns $ns $ns Set duplex-link duplex-link duplex-link duplex-link duplex-link duplex-link duplex-link duplex-link mproto DM [$ns mrtproto $mproto] $n(1) $n(2) $n(2) $n(2) $n(3) $n(4) $n(4) $n(5) $n(2) $n(3) $n(4) $n(5) $n(4) $n(5) $n(6) $n(6) 0.3Mb 0.3Mb 0.5Mb 0.3Mb 0.3Mb 0.5Mb 0.5Mb 0.5Mb 10ms 10ms 10ms 10ms 10ms 10ms 10ms 10ms DropTail DropTail DropTail DropTail DropTail DropTail DropTail DropTail

#configure multicast protocol; #all nodes will contain multicast protocol agents; Set mrthandle Set Set udp1 udp1

[new [new

Agent/UDP] Agent/UDP] $n(1) $n(2) $udp1 $udp2

$ns attach-agent $ns attach-agent Set src1 [new

Application/Traffic/CBR] $udp1 $group 0

$src1 attach-agent #udp1 set $udp1 #creat Set $ns $ns set dst_addr_

dst_port_ false agents

$src1 set random_ receiver [new rcvr at at

Agent/LossMonitor] join-group join-group $rcvr $rcvr $group $group

#joining and leaving the group; 0.6 1.3 $n(3) $n(4)

134

$ns $ns $ns $ns $ns $ns $ns Proc $ns Exec

at at at at at at at

1.6 1.9 2.3 3.5 0.4 2.0 4.0

$n(5) $n(4) $n(6) $n(3) $src1 $src2 finish {

join-group leave-group join-group leave-group start start

$rcvr $rcvr $rcvr $rcvr

$group $group $group $group

finish {} flush-trace nam out.nam

Global ns &

Exit 0 } $ns run

B ng 7.2: V d cho multicast v i m hnh DM: pimdm.tcl


Tc nhn i u khi n m t mt (Loss Monitor Agent): y chng ta s d ng tc nhn

i u khi n m t mt l m t gi tin "sink agent" duy tr s th ng k v lu l ng nh n c, nh thng tin v l ng thng tin nh n c cng nh b m t. C th , chng ta c th truy c p cc bi n tr ng thi sau: nlost_ (s cc gi tin m t mt), npkts_ (s cc gi tin nh n c), bytes_ (s cc byte nh n c), lastPktTime_ (th i gian t i gi tin cu i cng nh n c) v expected_ (s trnh t mong mu n c a gi tin ti p theo). Ta c th s d ng thay cho tc nhn i u khi n m t mt, Null agent, nh chng ta lm tr c , v d : set rcvr [new Agent/Null] thay cho set rcvr [new Agent/LossMonitor].

7.4.1. Ch DM
Cu l nh set mproto DM ch ra r ng chng ta s d ng giao th c Dense Mode. M c nh, pimDM c s d ng. s d ng ch dvmrp, ph i thm dng sau DM set CacheMissMode dvmrp tr c dng set mproto DM Trong ch DM, vi c trn l t x y ra theo chu k, do pht hi n cc nt c k t n i v i nhm. Gi tr b nh th i cho chu k c a ra trong bi n c g i l PruneTimeout

135

. M c nh, gi tr ny l 0.5 giy. N u ta yu c u gi tr khc , v d nh 0.8 giy, th thm vo k ch b n tcl cu l nh: DM set PruneTimeout 0.8 ch tr c dng set mproto DM.

7.4.2. nh tuy n v i i m RV t p trung


i v i ch t p trung c n: #configure Set multicast protocol;

mproto CtrMcast [$ns mrtproto $n(2) $mproto]

# all nodes will contain multicast protocol agents; Set mrthandle #set RV and bootstrap points $mrthandle set_c_rp

y chng ta ch n n(2) l i m RP. Trong c ch t p trung cng nh ch ST, bo hi u (cc gi tin prune) khng c m ph ng. Chng ta th hi n trong b ng 7.3 , cng m t v d nh trong pimdm.tcl (b ng 7.2) nhng v i giao th c nh tuy n BST.

Set ns [new $ns $ns $ns $ns

Simulator w] $f

-multicast

on]

Set f [open out.tr trace-all color color 1 30 31

namtrace-all [open out.nam red purple green

w]

# the nam colors for the prune packets #the nam colors for the graft packets $ns color

#allocate a multicast address; Set group [Node allocaddr]

#nod is the number of nodes Set nod 6

136

#create multicast capable nodes; For } #create link between the nodes $ns $ns $ns $ns $ns $ns $ns $ns duplex-link duplex-link duplex-link duplex-link duplex-link duplex-link duplex-link duplex-link $n(1) $n(2) $n(2) $n(2) $n(3) $n(4) $n(4) $n(5) $n(2) $n(3) $n(4) $n(5) $n(4) $n(5) $n(6) $n(6) 0.3Mb 0.3Mb 0.5Mb 0.3Mb 0.3Mb 0.5Mb 0.5Mb 0.5Mb 10ms 10ms 10ms 10ms 10ms 10ms 10ms 10ms DropTail DropTail DropTail DropTail DropTail DropTail DropTail DropTail {set i 1} {$i <= $nod} {incr i} { Set n($i) [$ns node]

#configure multicast protocol; BST set Set udp1 Set udp2 RP_($group) $n(2) $ns mrtproto BST [new Agent/UDP] [new Agent/UDP] $n(1) $n(1) $n(2) $udp1 $group 0 $udp1 $udp1 $udp2

$ns attach-agent $ns attach-agent $ns attach-agent Set src1 $udp1 $udp1 $src1 $src1 attach-agent set set set

[new Application/Traffic/CBR] dst_addr_ dst_port_

random_false $udp2 $group 1

Set src2 $udp2 $udp2 $src2 $ns $ns $ns $ns $ns $ns at at at at at at

[new Application/Traffic/CBR] dst_addr_ dst_port_

$src2 attach-agent set set set 0.6 1.3 1.6 1.9 2.3 3.5

random_false $n(3) $n(4) $n(5) $n(4) $n(6) $n(3) join-group join-group join-group leave-group join-group leave-group $rcvr $rcvr $rcvr $rcvr $rcvr $rcvr $group $group $group $group $group $group

#joining and leaving the group;

137

Proc finish {} { Global ns $ns Exec Exit 0 } $ns run flush-trace nam out.nam &

B ng 7.3: V d cho multicast v i m hnh i m RV: bts.tcl

7.5. Kh o st m ph ng pimdm.tcl
Dense mode: pimdm v drmrp. N u chng ta ch y m ph ng v kh o st bm v t, chng ta s th y r ng trong vi c thm cc gi tin CBR, c hai ki u gi tin khc nhau: gi tin prune v gi tin graft. Vai tr c a gi tin prune c g i b i nt N l bo hi u cho nt r ng g i gi tin tr c n N ng ng vi c g i cc gi tin n N. Gi tin graft l kh i t o tn hi u t m t nt mu n tham gia vo nhm (sau khi n b ng t k t n i). Trong hi n th NAM trong m ph ng c a chng ta, cc gi tin graft l n xanh v prune l mu . Chng ta c th th y r ng t i th i i m 0.4, nt 0 b t y g i cc gi tin CBR trn l t qua m ng. Nhng khng c bn nh n t i nhm multicast, do k t qu l, cc gi tin prune tr v ngu n v vi c truy n k t thc (th i i m 0.579). T i th i i m 0.6, m t gi tin graft c g i t nt 2 (nt mu n tham gia vo nhm) n nt 1, v sau t nt 1 n nt 0. Nt 0 sau b t u vi c truy n. T i th i i m 0.9978, l i c vi c th ki m tra xem c k t n i c v i cc nt bn nh n trong nhm ngoi nt 2 v m ng c trn l t l i, cc gi tin prune tr v ng ng vi c truy n n cc nt 3, 4, 5. Ch t p trung: chng ta th y trong cc gi tin bm v t c ng gi c g i t ngu n n i m RV c a kch th c 230 byte. Header sau c xa b i i m RV m sau chuy n gi tin (210 byte) n cc thnh vin trong nhm.

7.6. Bi t p
Bi t p 7.6.1. Ch y chng trnh ex2.tcl (xem b ng 7.1) ghi ch l nh "$ns v gi i thch i u g x y ra. rtproto DV"

138

Bi t p 7.6.2. Ch y chng trnh ex2.tcl (xem b ng 7.1) v i l nh "$ns gi i thch s khc nhau v i nh tuy n tnh tr c .

rtproto DV" v

Bi t p 7.6.3. Thay i v ch y m ph ng ex2.tcl (xem b ng 7.1) trong kho ng 20 giy v i nh tuy n tnh nhng v i m t k t n i hm m ON-OFF ng, v i th i gian trung bnh ON l 3 giy v th i gian trung bnh OFF l 0.5 giy. Phn tch hnh vi c a k t n i TCP v hnh vi c a time-out. Bi t p 7.6.4. Ch y k ch b n pimdm.tcl (xem b ng 7.2). C bao nhiu gi gin CBR c truy n t m i m t ngu n, v c bao nhiu gi tin b m t? C bao nhiu gi tin CBR c nh n t i cc nt m khng c n chng (chnh xc hn, c bao nhiu gi tin prune c t o)? Bi t p 7.6.5. Xt d u v t t c t k ch b n pimdm.tcl. T i th i i m 1.8375 chng ta b t u c m t mt t i nt 0. T i th i i m 2.481 cc gi tin b t u m t cng t i nt 1. Gi i thch s m t mt ny. Bi t p 7.6.6. Ch y chng trnh pimdm.tcl v i ch dvmrp c a DM. B n c quan st c s khc bi t no gi a dvmrp v phin b n pimDM? Bi t p 7.6.7. Ch y phin b n t p trung c a multicast. Gi i thch i u g x y ra khi RP c thay i nt n(5) (trong NAM n s tng ng v i nt 4, khi NAM m t 0). Gi i thch v sao n t hi u qu hn vi c ch n nt RP l n(2). Chng ta c th nh gi hi u qu b ng cch no?

139

Chng 8 Lo i b ng u nhin s m
M cl c

8.1. M t RED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2. Thi t t cc tham s RED trong ns . . . . . . . . . . . . . . 8.3. Cc v d

te lec om
v m ph ng . . . . . . . . . . . . . . . . . . . . . . . . . . . .

140 142 143 143 148 153 154 161

8.3.1. B m lo i Drop-Tail (B ng ui) . . . . . . . . . . . . . . . . . . 8.3.2. B m RED v i c u hnh tham s t ng . . . . . . . . . . . . 8.3.3. B m RED v i cc tham s khc . . . . . . . . . . . . . . . . . . . . . 8.4. Gim st cc lu ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8.5. Bi t p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Ng i d ch: H T t Thnh

Bin t p: Nguy n Nam Hong

B n g c: NS Simulator for beginners, Chapter 6 [2]

8.1. M t RED
C ch qu n l b m RED c gi i thi u vo nm 1993 by Floyd v Jacobson [10] , v c m t su hn trong RFC 2309 [11] , Nhi u ti li u tham kh o quan tr ng v RED c th c tm th y trang web http://www.icir.org/floyd/red.html. t ng c b n l khng nn ch t i khi b m b y pht hi n t c ngh n (lo i b gi tin), m b t u d tm s t c ngh tr c khi b m trn. Cc d u hi u c a s t c ngh n c th v n thng

vn

140

qua vi c lo i b gi tin, nhng gi y, cng c th thng qua vi c nh d u cc gi tin m khng c n ph i lo i b chng. M t s m c tiu c a qu n l b m RED l: 1. u tin cc c m d li u (burst) ng n thu c lo i delay sensitive (nh y c m v i tr ), nhng khng cho php kch th c hng i trung bnh tng qu nhi u. B ng cch dng m t vi c l c low past no cho kch th c hng i, m c ch ny l pht hi n s t c ngh n m c th i gian di. 2. Cc c ng lo i Drop Tail v Random Drop c s thin v (bias) i v i lu l ng c m (bursty traffic). Th t v y, trong nh ng b m nh v y, cng nhi u lu l ng c a m t k t n i lo i c m, hng i cng c kh nng trn t i th i i m t i c a cc gi tin c a k t n i . 3. Trnh ng b : b m lo i drop-tail, nhi u k t n i c th nh n d u hi u t c thong l ng.

ngh n t i cng th i i m d n n cc dao ng khng mong mu n

Cc dao ng ny c th lm cho thng l ng trung bnh th p hn v jitter cao. trnh ng b (l trnh vi c cc phin k t n i nh n tn hi u t c ngh n t i cng 1 th i i m), cc tn hi u t c ngh n c ch n m t cch ng u nhin. 4. i u khi n kch th c hng i trung bnh. r ng i u cng c ngha l i u khi n tr hng i trung bnh. t c cc m c tiu ny, RED gim st kch th c hng i trung bnh avg, v ki m tra n c n m gi a ng ng c c ti u minth v c c i maxth no hay khng. N u c, th m t gi tin t i s b lo i b hay c nh d u v i xc su t p = p(avg), xc su t ny l m t hm tng theo kch th c gi tin trung bnh. T t c cc gi tin t i khi avg v t qu maxth s c nh d u/lo i b . Xc su t p(avg) c ch n nh sau. Khi kch th c hng i trng bnh thay i trong kho ng minth v maxth , m t xc su t pb thay i tuy n tnh gi a 0 v gi tr maxp no ch ng h n. pb (avg) = maxp avg minth maxth minth

Xc su t ny c dng nh p(avg) n u ti th i i m t i c a gi tin tr c avg minth . N u khng p(avg)/(1 + p(avg)). Kch th c hng i trung bnh ny c gim st nh sau. Ban u, tham s avg c t = 0. Sau , v i m i gi tin t i, avg c t gi tr m i: (1 q )avq + q

141

y, q l kch th c hng i th c t v q l m t h ng s no . N u hng i tr nn r ng, m t cng th c khc c dng c p nh t kch th c c a n, cng th c ny s tnh n th i gian t khi hng i tr nn r ng v m t c l ng s cc gi tin c th c g i i trong su t th i gian r i ny, xem thm[11]. c l ng cc gi tin sau ny, ta c l s c n a m t c l ng th kch th c gi trung bnh nh m t tham s trong ns. Cc v d v cc tham s RED nghin c u [10] l q = 0.002, minth = 5 gi tin,

maxth = 15 gi tin, maxp = 1/50 v kch th c hng i l 100. Thng th ng, ng i ta cng khai thc gi tr minth n m trong d i t 3 n 50, v gi maxth = 3minth S th c hi n red trong ns c th c tn th y trong ns-allinone-2.XXX/queue/red.cc (XXX l phin b n, v d 1b9a).

8.2. Thi t t cc tham s RED trong ns


Cc tham s c a RED trong ns c a ra trong cc i t ng sau: 1. bytes_: L y gi tr "true" n u ta lm vi c ch gi tin (ch m c inh.). t i tc ng ln kh nng nh d u n. 2. queue-in-bytes_: Kch th c hng i trung bnh s c o b ng bytes n n n c t l true. Trong tr ng h p , cc i t ng threst_ v maxthres_ cng c cn b ng b i tham s kch th c gi tin trung bnh c c l ng mean_pktsize_. N c false theo m c nh. 3. thres_: L ng ng kch th c hng i c c ti u minth 4. maxthres_: L ng ng kch th c hng i c c i maxth . 5. mean_pktsize_ L c l ng c a kch th c gi tin trung bnh tnh theo byte. Gi tr m c nh l 500. 6. q_weight_: Tham s n ng th trong vi c tnh ton chi u di hng i c tnh trung bnh. 7. wait_: L tham s cho php duy tr khe th i gian gi a cc gi tin b lo i b khi khi c t thnh "true" (l gi tr m c nh). 8. linterm_: L ngh ch o c amaxp . Gi tr m c nh l 10. 9. setbit_: C gi tr "false trong tr ng h p RED c dng lo i b gi tin, v c gi tr "true" n u RED nh d u gi tin v i m t bt t c ngh n. (phin b n ECN c a TCP tng tc v i cc bt t c ngh n ny). ch "byte mode" ho c "fale" trong

ch "byte mode", kch th c c a m t gi tin

142

10. drop-tail_: y l tham s m khi t gi gi tr "true" th cho php s d ng chnh sch drop-tail khi hng i trn ho c kch th c hng i trung bnh v t qu maxth . Gi tr m c nh c a cc tham s q_weight_, maxthres_, thres_ tng ng l 0.002,15,v

5 cho t i cu i nm 2001. Trong nh ng phin b n g n y, chng c c u hnh t ng. RED c cc tham s v bi n khc c tri n khai trong ns. C th , S.Floyd khuy n co trong http://www.icir.org/floyd/gentle.html cho ho t ng t t nh t c a RED (trong m ph ng v th c thi), s d ng, tham s gentle_ c t thnh true (y l gi tr m c nh k t thng 4, 2001). Trong cc ch nh s a gentle_ v RED trong ns, xc su t lo i gi tin thay i t maxp n 1 khi kch th c hng i trung bnh thay i t maxthres_ n 2 l n maxthres_. Ty ch n ny lm cho RED tr nn m nh m hn thi t l p cc thng s maxthres_ v max_p. M t phin b n khc l RED thch nghi, phin b n ny i u ch nh s l a ch n tham s cho cc lu l ng m ng, nh c m t [12] .

gim st m t b m red cho tr c, ch ng h n nh m t b m gi a hai nt m ng $n2 v $n3, c th g l nh nh sau: set redq [[$ns link $n2 $n3]queue] set traceq [open red-queue.tr.w] $redq trace curq_ $redq trace ave_ $redq attach $traceq y, curq_ l gi tr hng i hi n th i v ave_ l gi tr l y trung bnh. i u ny em l i file m t u ra (trong tr ng h p c a chng ta l "red-queue.tr") v i 3 c t. C t u tin ch ra n l gi tr c a kch th c hng i hi n th i (b ng cch dn c Q) hay l kch th c hng i trung bnh (dng c a). Sau i n th i i n hi u t o v cu i cng l gi tr c gim st.

8.3. Cc v d v m ph ng
Ta xt m ng sau, c minh h a ch qu n l hng i. hnh 9.1: Ta s so snh ho t ng c a m t vi c

8.3.1. B m lo i Drop-Tail (B ng ui)


C c u qu n l b m u tin l c ch lo i b ng ui n gi n. Ta xt 3 knh truy n u vo v i tr n 1ms v bng thng l 10Mbps cho m i knh. Knh truy n c

143

Hnh 8.1: Thi t l p m ng cho vi c nghin c u RED

chai chung c tr 20ms v gng thng 700kbps. Ta xt 3 phin k t n i FTP s d ng TCP v t kch th c c a s c c i l 8000. kch th c hng i c chai alf 100. 3 phin k t n i ny kh i ng 7 giy. cc th i i m ng u nhin, c phn b u trong kho ng t 0 n , tr cho t i knh c chai l 1ms. Ta ch n kch th c gi tin TCP l 552 bytes.

Ch : trong phin b n 2.1b9a c a ns, khi ta g dng l nh $tcp_src($j) set packetSize_552 Th kch th c gi tin th c t c t o ra trong m ph ng alf 592, do c 40 bytes tiu (header) c thm vo. Ton b qu trnh m ph ng l 50s. B ng cch dng ty ch n monitor-queue m ta th y ph n 7.3 , ta t o m t file g i

l queue.tr ton b c t u tin l th i gian v c t th 5 l kch th c hng i o b ng gi tin. Ta cng s dng m t th t c, goik l plotWindow, gi m st kch th c c a s : n t o ra m t file m s c a 3 phin k t n i. , c t u l th i gian, ba c t khc tng ng v i kch th c c a

set nt [new Simulator] set nf [open out.nam w] $ns namtrace-all $nf set tf [open out.tr w] set windowVsTime [open win w] set param [open parameters w]

144

$ns trace-all $tf # nh ngha th proc finish {}{ global ns nf tf $ns flush-trace close $nf close $tf exec nam out.nam & exit 0 } #T o cc nt c chai v ch t c finish

set n2 [$ns node] set n3 [$ns node] #T o lien k t gi a cc nt $ns duplex-link $ns2 $ns3 0.7Mb 20ms DropTail set NumSrc 3 set Duration 50 #Cc nt ngu n for {set j 1} {$j<=$NumSrc} {incr j} { set S($j) [$ns node] } #T o m t b #cc tr pht ng u nhin cho vi c kh i ng d ch v chai ftp v cho

knh truy n c

Set rng [new RNG] $rnf seed 2 #Cc tham s cho cc bi n ng u nhin cho vi c kh i ng cc k t

#n i ng u nhin #RVstart set nmin_ 0 #RVstart set nmax_ 7 #RVstart use-rng $rng

145

#Ta nh ngha nh ng th i i m kh i ng ng u nhin cho #m i phin k t n i for {set i 1} {$i<=$NumSrc} {incr i} { set srartT($i) [expr [$RVstart value]] set dly($i) 1 put $param startT($i) $startT($i) sec } #Knh truy n gi a ngu n v c chai

for {set j 1} {$j<=$NumSrc} {incr j} { $ns duplex-link $S($j)$n2 10Mb $dly($j)ms DropTail $ns queue-limit $S($j) $n2 20 } # t kch th c hng i c a knh truy n (n2-n3) thnh 100 $ns queue-limit $n2 $n3 100 set redq [[$ns link #n2 $n3]queue] set traced [open red-queue.tr w] $redq trace curq_ $redq trace ave_ $redq attach $traceq #Ngu n TCP for {set j 1} {$j<=$NumSrc} {incr j} { set tcp_src($j) [new Agent/TCP/Reno] $tcp_src($j) set window_ 8000 } #ch TCP for {set j 1} {$j<=$NumSrc} {incr j} { set tcp_snk($j) [new Agent/TCPSink] } # Cc phin k t n i for {set j 1} {$j<=$NumSrc} {incr j} { $ns attach-agent $S($j) $tcp_src($j) $ns attach-agent $n3 $tcp_snk($j) $ns $tcp_src($j) $tcp_snk($j)

146

} # Cc ngu n FTP for {set j 1} {$j<=$NumSrc} {incr j} { set ftp($j) [$tcp_src($j) attach-source FTP] } #Cc tham s c a ngu n TCP for {set j 1} {$j<=$NumSrc} {incr j} { $tcp_src($j) set packetSize_552 } # nh trnh cc s ki n cho cc tr m FTP:

for {set i 1} {$i<=$NumSrc} {incr i} { $ns at $srartT($i) $ftp($i) start $ns at $Duration $ftp($i) stop } proc plotWindow {tcpSource file k}{ global ns NumSrc set time 0.03 set now [$ns now] set cwnd [$tcpSource set cwnd_] if {$k==1}{ puts nonewline $file $now \t $cwnd \t } else { If {$k < $NumSrc} { puts nonewline $file $cwnd \t } } if {$k == $NumSrc}{ puts nonewline $file $cwnd \n } $ns at [expr $now+$time] plotWindow [$tcpSource $file $k} # Th t c ny by gi s c g i cho t t c cc ngu n tcp

for {set j 1} {$j<=$NumSrc} {incr j} { $ns at 0.1 plotWindow } set qfile [#ns monitor-queue $n2 $n3 [open queue.tr w] 0.05] $tcp_src($j) $windowVsTime $j

147

[$ns link $n2 $n3] queue-sample-timeout; $ns at $Duration $ftp($i) finish #ns run

B ng 8.1: o n m tcl droptail.tcl


Trong su t 50 giy m ph ng, ngu n nh n c 7211 gi tin TCP. Ti p theo, ta v th kch th c hng i (Hnh 8.2 ) v kch th c c a s (Hnh 8.3)

Hnh 8.2: S tng kch th c hng i

Hnh 8.3: Kch th c c a s c a t t c cc phin k t n i TCP

Ta th y t cc hnh ny, c m t s ng b cao gi a cc kch th c c a s : Chng u m t gi tin t i cng m t th i i m. Hn n a ta c s dao ng cao trong cc kch th c hng i tng ng v i kch th c c a s , v kch th c hng i trung bnh vo kho ng 75 gi tin. i u ny c ngha l c m t tr trung bnh thm vo, v b ng: 75x592x8 = 507.42msec 700x103

Dq =

Ch 8.3.1 hng i lo i b ng ui c th c m ph ng b ng cch dng m t b m RED v iminth = maxth c t trn kch th c hng i c c i v maxp c t v gi tr g n b ng 0, i u s cho php ta s d ng cc cng c gim st di hd trung bnh v t c th i c a RED. T t nhin, tham s drop-tail_ c gi t true.

8.3.2. B m RED v i c u hnh tham s t ng


Ta ch y m t m ph ng th hai v i cc tham s nh v y. Ch r ng ta ch n cho tr ng u nhin m t gi tr seed l 2 trong t t c cc l n m ph ng, do khc v i gi tr seed 0, n s m b o cho cc tham s ng u nhin c dng trong t t c cc l n m ph ng.

148

Trong su t 50 giy m ph ng, ngu n tin nh n 7310 gi tin TCP, it hn m t cht so v i tr ng h p lo i b ng ui (m , ta c 7211 gi tin ). Ti p theo , ta v kch th c hng i (Hnh 8.4 v 8.5 )v kch th c c a s (Hnh 8.6). Ta th y t cc hnh ny, khng c s ng b gi a kch th c c a s , v s ng b gi a kch th c hng i trung bnh thf nh hn nhi u so v i tr ng h p lo i b ng ui: kho ng 10 (thay v 75 trong tr ng h p lo i b ng ui). Do , trn trung bnh c a cc phin k t n i cng nh hn nhi u: 10x592x8 = 67.66msec 700x103

Dq =

Ta quan st th y thay cho cc dao ng r ng trong kch th c hng i v kch th c c a s , by gi , ta t c s bi n ng nh hn, nhanh hn khng b trn, khng nh c kch th c c a s cng nh kch th c hng i. Cu i cng ta r ng trong su t th i gian m ph ng, hng i tr ng h p lo i b ng ui RED cho php hng i l n ln r t nhi u trong su t kho ng th i gian ng n lc b t u phin k t n i,

Hnh 8.4: S ti n tri n c a kch th c hng i trung bnh t c th i

Hnh 8.5: S ti n tri n c a kch th c hng i trung bnh t c th i phng to

149

Hnh 8.6: Kch th c c a s c a tc c cc phin k t n i TCP cho b m RED v i cc c u hnh tham s t ng

set nt [new Simulator] set nf [open out.nam w] $ns namtrace-all $nf set tf [open out.tr w] set windowVsTime [open win w] set param [open parameters w] $ns trace-all $tf # nh ngha th proc finish {}{ global ns nf tf $ns flush-trace close $nf close $tf exec nam out.nam & exec grep a red-queue.tr > ave.tr exec grep Q red-queue.tr > ave.tr exit 0 } t c finish

150

#T o cc nt c

chai v ch

set n2 [$ns node] set n3 [$ns node] #T o lien k t gi a cc nt $ns duplex-link $ns2 $ns3 0.7Mb 20ms RED set NumSrc 3 set Duration 50 #Cc nt ngu n for {set j 1} {$j<=$NumSrc} {incr j} { set S($j) [$ns node] } #T o m t b #cc tr pht ng u nhin cho vi c kh i ng d ch v chai ftp v cho knh truy n c

Set rng [new RNG] $rnf seed 2 #Cc tham s cho cc bi n ng u nhin cho vi c kh i ng cc k t

#n i ng u nhin #RVstart set nmin_ 0 #RVstart set nmax_ 7 #RVstart use-rng $rng #Ta nh ngha nh ng th i i m kh i ng ng u nhin cho #m i phin k t n i for {set i 1} {$i<=$NumSrc} {incr i} { set srartT($i) [expr [$RVstart value]] set dly($i) 1 put $param startT($i) $startT($i) sec } #Knh truy n gi a ngu n v c chai

for {set j 1} {$j<=$NumSrc} {incr j} { $ns duplex-link $S($j)$n2 10Mb $dly($j)ms DropTail $ns queue-limit $S($j) $n2 20

151

} # t kch th c hng i c a knh truy n (n2-n3) thnh 100 $ns queue-limit $n2 $n3 100 set redq [[$ns link #n2 $n3]queue] set traced [open red-queue.tr w] $redq trace curq_ $redq trace ave_ $redq attach $traceq #Ngu n TCP for {set j 1} {$j<=$NumSrc} {incr j} { set tcp_src($j) [new Agent/TCP/Reno] $tcp_src($j) set window_ 8000 } #ch TCP for {set j 1} {$j<=$NumSrc} {incr j} { set tcp_snk($j) [new Agent/TCPSink] }

# Cc phin k t n i for {set j 1} {$j<=$NumSrc} {incr j} { $ns attach-agent $S($j) $tcp_src($j) $ns attach-agent $n3 $tcp_snk($j) $ns $tcp_src($j) $tcp_snk($j) } # Cc ngu n FTP for {set j 1} {$j<=$NumSrc} {incr j} { set ftp($j) [$tcp_src($j) attach-source FTP] } #Cc tham s c a ngu n TCP

for {set j 1} {$j<=$NumSrc} {incr j} { $tcp_src($j) set packetSize_552

152

} # nh trnh cc s ki n cho cc tr m FTP:

for {set i 1} {$i<=$NumSrc} {incr i} { $ns at $srartT($i) $ftp($i) start $ns at $Duration $ftp($i) stop } proc plotWindow {tcpSource file k}{ global ns NumSrc set time 0.03 set now [$ns now] set cwnd [$tcpSource set cwnd_] if {$k==1}{ puts nonewline $file $now \t $cwnd \t } else { If {$k < $NumSrc} { puts nonewline $file $cwnd \t } } if {$k == $NumSrc}{ puts nonewline $file $cwnd \n } $ns at [expr $now+$time] plotWindow [$tcpSource $file $k} # Th t c ny by gi s c g i cho t t c cc ngu n tcp for {set j 1} {$j<=$NumSrc} {incr j} { $ns at 0.1 plotWindow } $ns at $Duration $ftp($i) finish #ns run $tcp_src($j) $windowVsTime $j

B ng 8.2: o n m tcl droptail.tcl

8.3.3. B m RED v i cc tham s khc


Gi s ta mu n nh ngha cc tham s c a chng ta cho RED hn l s d ng cc tham s m c nh. V d , gi s ta mu n c trong v d tr c y max_th=60, min_th=40 v q_weight_=0.02. Sau ta s thm vo cc cu l nh:

153

Queue/RED set thresh_ 60 Queue/RED set maxthresh_ 60 Queue/RED set q_weight_ 0.002 Ch quan tr ng: Nh ng l nh ny nn c t ra Hnh 8.8 v 8.7 tng ng. lc b t u, tr c khi cc knh

truy n c nh ngha! Cc ti n trinh kch th c hng i v c a s thu c c a

Hnh 8.7: S hng i

thay i v kch th c

Hnh 8.8: Kch th c hng i c a t t c cc phin k t n i cho b m RED

r ng v i cc tham s m ta ch n, di hng i c gi quanh m t gi tr trung bnh l 50. S cc gi tin TCP nh n c trong su t qu trnh m ph ng l 7212

8.4. Gim st cc lu ng
Chng ti gi i thi u trong ph n ny b gim st hng i, l m t cch hi u qu gim st cc i l ng trn m i hng i nh l ng lu l ng c truy n i v b m t. Chng ti s s a o n m ns c a chng trnh shortTcp2.tcl (b ng ??) g p m t b m RED v i ch c nng gim st. M t lu ng gim st m t knh n cng, v v y, tr c h t ta nh ngha knh truy n ta mu n gim st: set flink [$ns simplex-link $N $D 2Mb 1ms RED] v sau b gim st hng i c nh ngha nh sau i v i knh truy n ny: set monfile [open mon.tr w] set fmon [$ns makeflowmon Fid]

154

$ns attach-fmon $flink $fmon #fmon attack $monfile Khi chng ta kch ho t vi c gim st, ta nh n c cc th ng k cho t i th i gian kch ho t trong m t file. i u ny c lm nh sau: $ns at $time "$fmon dump Ti p theo chng ti trnh by o n m y shortRed.tcl b ng ?? m cho php

chng ta nghin c u cc phin TCP ng n tng tc v i m t b m RED.

set ns [new simulattor] # C nhi u ngu n, m m i ngu n tao ra nhi u phin TCP cng chia s #knh truy n c #b i tham s # S(1) # # # . . . chai v m t ch n chung. S NodeNb -----| -----N----------D | -----m t hi u c a chng c cho

# S(NodeNb)

set Out [open Out.ns w]; set Conn [open Conn.tr w]; set tf [open out.ns w]; $ns trace-all $tf ser NodeNb 6; set NumberFlows 253; set sduration 50; #Khi cc tham s sau y c bnh lu n, hng i RED c ng.

#c u hnh m t cch t

# Queue/RED set thresh_ 5 # Queue/RED set maxthresh_ 15 # Queue/RED set q_weight_ 0.002 # nh ngha topology set N [$ns node]

155

set D [$ns node] set flink [$ns simplex-linh $N $D 2Mb 1ms RED] $ns simplex-link $N $D 1Mb 1ms Droptail $ns queue-limit $N $D 50 #Gim st hng i, RED set redq [[$ns linh $N $D] queue] set traceq [open red-queue.tr w] $redq trace curq_ $redq trace ave_ $redq attach $traceq #nt m ng v knh truy n for {set j 1} {$j<=$NumSrc} {incr j} { set S($j) [$ns node] $ns duplex-link $S($j)$N 100Mb 1ms DropTail $ns queue-limit $S($j) $N 100 } #thi t l p b gim st lu ng

set monfile [open mon.tr w] set fmon [$ns makeflowmon Fid] $ns attach-fmon $flink $fmon #fmon attack $monfile #Cc phin k t n i, ngu n ch TCP for {set i 1} {$i<=$NodeNb} {incr i} { for {set j 1} {$j<=$NumFlows} {incr j} { set tcpsrc($i,$j) [new Agent/TCP/newreno] set tcp_snk($i,$j) [new Agent/TCPSink] set k [expr $i*1000 + $j]; $tcpsrc($i,$j) set fid_ #k $tcpsrc($i,$j) set window_ 2000 $ns attach-agent $S($i) $tcpsrc($i,$j $ns attach-agent $D tcp_snk($i,$j) $ns connect tcpsrc($i,$j tcp_snk($i,$j) set ftp($i,$j) [$tcpsrc($i,$j attach-source FTP] } } # Cc b t o cc file c kch th c ng u nhin

156

set rng1 [new RNG] $rng1 seed 0 set rng2 [new RNG] $rng2 seed 0 #T o hai ki u phn b ng u nhin cho hai b t o rng1 v rng2 pht TCP m i ngu n i # nh ng khe th i gian n ng u nhin c a b set RV [new RandomVariable/Exponential] $RV set avg_ 0.3 $RV use-rng $rng1 # Kch th c ng u nhin c a cc file truy n i set RVSize [new RandomVariable/Pareto] $RVSize set avg_ 10000 $RVSize set shap_ 1.5 $RVSize set use-rng $rng2 #By gi ta nh ngha th i gian b t u c a cc phin truy n v kch

#th c truy n #Vi c n c a m t phin tun theo qu trinh Poison for {set i 1} {$i<=$NodeNb} {incr i} { set t [$ns now] for {set j 1} {$j<=$NumFlows} {incr j} { # t th i i m kh i u cho phin truy n k # cc thu c tnh set t [expr $t + [$RV value]] $tcpsrc($i,$j) set starts $t $tcpsrc($i,$j) set sess $j $tcpsrc($i,$j) set node $i $tcpsrc($i,$j) set size [expr [$RVSize value]] $ns at [$tcpsrc($i,$j) set starts] $ftp($i,$j) send [$tcpsrc($i,$j) set size] # C p nh t s lu ng $ns at [$tcpsrc($i,$j) set starts] countFlows $i 1 } } for {set j 1} {$j<=$NodeNb} {incr j} { set Cnt($j) 0 } # Th t c sau y c g i t i b t k th i i m no khi ti p t ngu n v

157

# m t phin k t n i k t thc Agent/TCP instproc done {} { global tcpsrc NodeNb NumberFlows ns RV ftp Out tcp_snk RVSiz # In vo bi n Out cc tham s: node, phin, # th i gian kh i u, th i gian k t thc, # giai o n lm vi c, s gi tin truy n, s byte truy n, thng l ng. Set duration [expr [$ns now]] - [$self set starts]] puts $Out [$self set node] \t [$self set sess] \t\ [$self set starts] \t [ns now] \t $duration \t\ [$self set ndatapack_] \t [$self set ndatabytes_] \t\ [$self set nrexmibytes_] \t [expr [$self set ndatabytes_]/$duration] countFlows [$self set node] 0 } # Th # C t c tnh ton l p sau y c p nh t s 0.2s n in ra $Com. i u ny c th g c ), Th k t n i nh m t hm theo th i gian. hi n b ng cch g i th t c t c ind khng

# v i tham s # ng vai tr

"sign" b ng 3 (trong , tr ng h p tham s ngu n th

t c ny cng c g i ra b i th

# th c hi n khi m t k t n i t # "sign" gi tr # gi tr

i k t thc b ng vi c gn thm s

0, hay khi n b t u, b ng vi c gn cho n

1 (i c truy n qua bi n ind).

proc countFlows {ind sign}( global Cnts Com NodeNb ser ns [Simulator instance] if {#sign==0} {set Cnts($ind)} [expr $Cnts($ind)-1] } else {#sign==1} {set Cnts($ind)} [expr $Cnts($ind)+1] } else { puts -nonewline $Conn [$ns now] \t set sum 0 for {set j 1} {$j<=$NodeNb} {incr j}{ puts -nonewline $Conn [$ns now] \t set sum [expr $sum + Cnts($j)] } puts $Conn $sum $ns at [expr [$ns now] + 0.2] countFlows 1 3 } } proc finish{}{ global ns tf $ns flush-trace

158

close $tf exec grep a red-queue.tr > ave.tr exec grep Q red-queue.tr > cur.tr exit 0 } $ns at 0.5 countFlows 1 3 $ns at [expr $sduration 0 0.01] $fmon dump $ns at $sduration finish $ns run

B ng 8.3: K ch tcl shortRed.tcl


File gim st lu ng bao g m thng tin c th hn v lo i gi tin b lo i b (drop type). N cho php phn bi t gi a cc ki u lo i b s m do vi c t ch i cc gi tin s m, v lo i b th c s do trn b m. File ny c d ng nh sau: 1. C t 1: Th i gian m t i dump c th c hi n. 2. C t 2 v 5: a ra s nh n d ng lu ng. 3. C t 3: Tr ng (m t tr ng vo 0) 4. C t 4: Ki u lu ng. 5. C t 6 v 7: Ngu n v ch c a lu ng. 6. C t 8 v 9: T ng s l n n c a lu ng tnh b ng gi tin v byte tng ng. 7. C t 10 v 11: T ng s l n lo i b s m c a lu ng tnh b ng gi tin v byte tng ng. 8. C t 12 v 13: t ng s l n n c a t t c cc lu ng tnh b ng gi tin v byte tng ng. 9. C t 14 v 15: T ng s l n lo i b s m c a t t c cc lu ng tnh b ng gi tin v byte tng ng. 10. C t 16 v 17: T ng s l n lo i b c a t t c cc lu ng tnh b ng gi tin v byte tng ng. 11. C t 18 v 19: T ng s l n lo i b c a m t lu ng c th tnh b ng gi tin v byte tng ng.

159

Ch : p dng b gim st lu ng, m i phin k t n i TCP m ta mu gin st c n c m t s nh n d ng lu n. tr ng h p c a chng ta, ban u, ta nh n d ng m t lu ng b ng nt 4). Ta chuy n s th t v nt ngu n c a n (v d : Phin k t n i th 3 kh i u i u thnh m t vector c h ng nh sau: set k [expr $i*1000 +$j]; $tcpsrc($i,$j) set fid_ $k Qu trnh m ph ng t o ra cc file u ra sau: 1. Cur.tr v ave.tr gi m st s ti n ho c a kch th c hng i v phin b n l y trung bnh c a n. 2. Conn.tr cho vi c gim st s cc phin k t n i tch c c t m i trong 6 ngu n ( s 6 c a vo bi n NumberFlows nh l tham s trong o n m) cng nh t ng cc phin k t n i tch c c, nh m t hm theo th i gian. 3. Out.ns dnh cho vi c gim st m i phin ( c nh n d ng v i nt ngu n v s phin b t ngu n t nt ), th i gian kh i u, th i gian k t thc v th i gian c a phin kt n i, s cc gi tin truy n c, cc byte truy n c v cc byte ph i truy n l i, v thng l ng m phin k t n i t c. 4. mon.tr l t p tin bm v t c t o ra b i b gim st lu ng, n bao g m s gi tin v byte truy n c v b m t m i phin k t n i.

5. Out.tr l t p tin bm v t ton c c cho t t c cc s ki n. Ta dng o n m trn v i phin b n RED v i vi c c u hnh t ng. Ta v th hnh 8.9 - 8.10. Ta th y r ng hnh 8.11 tr ng h p phin k t n i TCP kin

v kch th c hng i v s bi n ng trung bnh c a n di hng i thay i th t th ng hn nhi u so v i nh n (m ta th y

hnh 8.4 v 8.5 ). S cc phin k t n i ho t ng

Ta bao g m trong o n m trn y nhi u cch gim st. Cch gim st tr c ti p s phin truy n l i v cc gi tin t i thng qua th t c done: n em l i t t c d li u lin quan t i phin k t n i. B gim st hng i m t khc em l i thng tin c c b v s m t mt m t knh truy n c th . N u phin k t n i i qua m t vi knh truy n c m t chai, phng php th nh t u vi t hn, Phng php th hai c u i m l em l i nhi u thng tin lm tr m c th h u ch trong vi c hi u s ng gp c a m i phin vi nt gy ra t c ngh n m t phin no .

160

Hnh 8.9: S ti n tri n c a kch th c hng i v gi tr trung bnh c a n

Hnh 8.10: S ti n ha c a kch th c hng i v gi tr trung bnh c a n c phng to)

Hnh 8.11: S cc phin k t n i tch c c theo th i gian

8.5. Bi t p
Bi t p 8.5.1. Xem xt o n m shortRED.tcl (b ng 8.3) v s a l i chng trnh c s i u ch nh cc tham s thresh_, maxthresh_,q_weight_, Nh ng tham s ny cng nh l kch th c hng i trn knh truy n N-D nn c ch n nh th no thng l ng t c c i. Nghin c u i u ny b ng m ph ng v gi i thch s tr gi. Bi t p 8.5.2. M t trong nh ng m c ch c a RED l cho php cng b ng hn v i cc c m ng n. Phn tch thng lng v xc su t m t gi tin c a m t phin k t n i nh m t hn theo kch th c c a n v i RED v so snh n v i hnh i Drop tail. S d ng o n m shortRED.tcl (b ng 8.3). Th cc tham s khc nhau cho tr ng h p dng hng i RED t c s cng b ng t t hn, bi t p ny d a trn [13] .

161

Chng 9 Cc d ch v phn bi t
M cl c
9.1. M t chuy n ti p c m b o c a Diffserv . . . . . . . . 9.2. Cc router MRED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.2.1. M t chung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.2.2. C u hnh MRED trong ns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.2.3. Truy v n TCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.3. nh ngha cc chnh sch . . . . . . . . . . . . . . . . . . . . . . . . . 9.3.1. nh ngha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.3.2. C u hnh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 164 164 164 165 166 166 167

9.4. M ph ng Diffserv: b o v cc gi tin d b t n cng . . . . 168 9.4.1. K ch b n m ph ng nh ngha . . . . . . . . . . . . . . . . . . . . . . . . . 9.5. K t qu m ph ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.6. Th o lu n v k t lu n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.7. Bi t p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 177 178 179

Ng i d ch: Nguy n Ch Thnh Bin t p: H T t Thnh B n g c: NS Simulator for beginners, Chapter 7 [2]

Trong m ng Internet truy n th ng, t t c cc k t n i c x l nh nhau trong m ng.

162

y l i m tri ng c v i cc khi ni m m ng khc, nh m ng ATM (ch truy n khng ng b ), c th p ng ch t l ng yu c u d ch v i v i cc k t n i m c cao hn v x l v bo hi u lin quan n vi c ch p nh n cc k t n i m i v duy tr cc k t n i ang c. Hn n a, v ti nguyn m ng b gi i h n nn vi c m b o hi u su t yu c u ph i t ch i cc k t n i m i n u ti nguyn khng c s n. y l i m tng ph n so v i c tnh best-effort c a m ng Internet ngy nay, m t ni m i u khi n truy nh p khng c th c hi n. Tuy nhin, ng i ta nh n ra t m quan tr ng c a vi c phn bi t gi a cc l p k t n i v kh nng c p pht ti nguyn cho cc k t n i theo l p c a chng. Do , m t thu bao s s n sng tr nhi u hn c c tr nh hn v thng l ng l n hn. y cng l yu c u i v i cc ng d ng th i gian th c trn Internet (tho i, video). V l do nn cc d ch v phn bi t (Diffserv) c a ra. Diffserv d a trn vi c nh d u cc gi tin t i ra m ng (ni gi tin b t u i vo m ng) theo m c hi u su t c n cung c p, sau d a theo cc d u ny, cc gi tin ny s c x l khc nhau t i cc nt m ng. Cch ph bi n phn bi t gi tin l dng b m RED, t c l dng cc tham s khc nhau cho cc gi tin khc nhau. Modul NS c x l Diffserv c pht tri n Networks, v chng ny c d a trn ph n l n cc bo co c a Nortel. Nortel

9.1. M t chuy n ti p c m b o c a Diffserv


Diffserv c th c hi n trong ns theo Assured forwarding (chuy n ti p c m b o [20] c chu n ha. M t gi tin ph thu c vo m t lu ng c th nh n 3 m c u tin cng v i lu ng , i khi c g i l drop precedence, c dng cung c p xc su t m t gi th p hn cho cc gi tin ng b trong k t n i TCP, do ko gi ng nh cc gi tin khc, vi c cc gi tin ng b b m t c th gy ra th i gian time-out (gin o n lin l c) r t di. Ngoi vi c phn bi t m i lu ng, th t t c cc lu ng c phn thanh cc l p (t i a l 4 l p), v cc l p khc nhau s nh n c m c x l khc nhau. Hn th n a, c th phn bi t gi a cc lu ng d ch v . C 4 l p d ch v c nh ngha, cc gi tin thu c l p no th c t vo hng i c a l p y. phn bi t gi a cc gi tin trong cng m t l p, ng i ta thi t k 3 hng i o t ng hng i m t trong s 4 hng i trn. V i m i 12 t p h p (c a 4 l p v 3 m c u tin n i trong m i lu ng tng ng v i m t i m m m gi tin c cho tr c khi vo m ng. Trn th c t khng c n tri n khai t t c cc hng i v t t c cc nhm u tin. Ki n trc Diffserv g m 3 thnh ph n: 1. Thnh ph n qu n l ti nguyn v chnh sch: t o ra cc chnh sch v phn ph i chng cho cc router h tr diffserv. M t chnh sch s xc nh gi tin c gn m c

163

d ch v no trong m ng, vi c ny c th ph thu c vo tnh ch t c a ti nguyn c a lu ng (nh t c d trung bnh v tnh truy n theo lo t) v cc thnh ph n m ng c bi t theo c thm vo t i ra m ng xc nh tnh ch t c a ti nguyn. Trong m ph ng ns, chnh sch c xc nh hon ton trong o n m tcl. 2. Cc router bin: ch u trch nhi m gn cc i m m vo cc gi tin theo chnh sch c ch r b i ng i qu n tr m ng. lm c i u ny, ng i qu n tr ph i o cc tham s c a lu l ng u vo c a m i lu ng. 3. Cc router li: v c b n th Diffserv gi cc thng tin m t t i ra m ng , router trong m ng ch n gi n gn m c u tin tng ng v i cc gi tin theo m nh d u c a chng. M c u tin ny chuy n thanh cc tham s quy t nh vi c l p l ch v h y b trong cc router li.

9.2. Cc router MRED


9.2.1. M t chung
Th c t c 3 b m RED o (g i l MRED-Multi RED) trong m i hng i v t l cho php tng c ng x l v t o nn tnh ph thu c trong ho t ng. M t cch th c hi n l thng qua phin b n RIO C (Rio Coupled) c a MRED, trong xc su t lo i b cc gi c m c u tin th p (g i l gi tin ngoi lu ng) d a trn di trung bnh c a t t c cc hng i o, cn xc su t h y gi c m c u tin cao (gi trong lu ng) d a trn di trung bnh c a hng i o c a chnh hng i o c a gi tin . Ng c l i, trong RIO-D (RIO De-coupled) xc su t lo i b m i gi tin d a trn kch th c hng i o c a chnh n. Phin b n khc l WRED (Weight Red) trong t t c xc su t u d a trn m t chi u di n. Cng c th dng hng i dropTail

9.2.2. C u hnh MRED trong ns


xc nh s hng i v t l, ta dng l nh $dsredq set numQueues_ $m trong m c th l y gi tr t 1 n 4. C u hnh hng i 0 l RIO-C b ng l nh $dsredq setMREDMode RIO-C 0

N u tham s cu i cng khng c cho tr c th t t c cc hng i c t l RIO-C. Tng t c th nh ngha cc RIO-C khc. ch r s $n c a hng i o chng ta dng

164

l nh: $dsredq setNumPrec $ Tham s Red c c u hnh dng l nh $dsredq configQ $queueNum $virtualQueueNum $minTh $maxTh $maxP C 5 tham s : s hng i, s hng i o, minth , maxth , vmaxp . Tham s qw c th c cho (nh tham s th 6) v n u n khng c xc nh th s nh n gi tr m c nh l 0.002. Hng i droptail dng l nh $dsredq setMREDMode DROP C u hnh sau c cho tr c v i duy nh t 3 tham s u tin: $dsredq configQ $queueNum $virtualQueueNum $minTh T t c gi tin n b h y khi t gi tr minth Nh ta th y trong chng ni v RED, tnh xc su t h y gi tin c n c l ng c kch th c gi tin. V i gi tin kch th c 1000 byte dng l nh $dsredq meanPktSize 1000 L p l ch: Cc ch l p l ch c th c nh ngha. V d nh weighted round robin v i tr ng s hng i l 5 v 1 tng ng, c nh ngha qua l nh $dsredq setSchedularMode WRR $dsredq addQueueWeights 1 5 C ch l p l ch khc l Weighted Interleaved Round Robin (WIRR), Round Robin (RR) l c ch l p l ch c m c nh, v c m c u tin h n ch (PRI). B ng PHB: m t t p 4 hng i cng v i cc hng i o c b sung v i b ng PHB (cch x l trn 1 hop) (Per Hop Behavior). Cc m c trong b ng c nh ngha b i: (1) i m m v (2) l p (hng i v t l) v (3) quy n u tin (hng i o). M t m c c gn v i cu l nh c d ng: $dsredq addPHBEntry 11 0 1 c ngha l i m m 11 c nh x t i hng i o 1 trong hng i v t l s 0.

9.2.3. Truy v n TCL


Ba l nh sau in ra cc k t qu tng ng (1) trong b ng PHB, (2) s hng i v t l v hng i o v (3) kch th c trung bnh c a tr ng s RED c a cc hng i v t l c th (trong tr ng h p ny l hng i 0): $dsredq printPHBTable $dsredq printStats $dsredq getAverage 0

165

9.3. nh ngha cc chnh sch


9.3.1. nh ngha
T t c cc lu ng c cng a ch ngu n v ch u l thu c vo m t chnh sch chung. M t chnh sch nh ngha lo i cc chnh sch, tcs mong mu n, v cc ch tiu k thu t chnh sch khc. N ch r t nh t 2 i m m. Vi c l a ch n i m m no ph thu c vo s so snh gi a m c ch c a lu ng tin v t c g i gi tin hi n th i, v cng c th d a trn cc tham s ph thu c vo chnh sch (nh burstiness ch ng h n). Chnh sch quy nh lo i b o c dng o cc tham s lu l ng u vo lin quan. M t gi tin n thi t b bin s lm cho b o c p nh t tr ng thi thay i tng ng v i lu ng gi tin, v gi tin sau c nh d u theo chnh sch. Gi tin c m t i m m kh i u ng v i m c d ch v yu c u; vi c nh d u gi tin c th lm gi m m c d ch v so v i m c d ch v ban u c a gi tin. M t b ng cc chnh sch c dng trong ns lu tr lo i chnh sch c a m i lu ng. Khng ph i t t c cc m c trong b ng u c dng th t s . B ng bao g m: 1. a ch nt ngu n 2. a ch nt ch 3. Lo i chnh sch 4. Lo i thi t b o 5. i m m kh i u 6. CIR (t c thng tin cho php) 7. CBS (kch th c c m cho php) 8. C bucket (kch th c hi n th i c a dung l ng cho php) 9. EBS (kch th c c m v t m c) 10. E bucket (kch th c hi n th i c a dung l ng v t qu) 11. PIR (t c thng tin t i a) 12. PBS (kch th c c m t i a) 13. P bucket (kch th c hi n th i c a dung l ng t i a) 14. Th i gian n c a gi tin cu i cng 15. T c g i tin trung bnh

166

16. di c a s TSW (TSW l chnh sch d a trn t c truy n trung bnh v l y bnh qun theo kch th c c a s d li u tnh theo giy). Gi tr m c nh l 1 giy. Sau y l cc lo i chnh sch: 1. TSW2CM (TSW2CMPolicer): Dng CIR v 2 th t u tin h y gi. Ci no th p hn th c dng theo xc su t khi CIR v t m c cho php. 2. TSW3CM (TSW3CMPolicer): Dng m t CIR, m t PIR v 3 th t u tin h y gi. M c u tin trung bnh c dng theo xc su t khi CIR v t m c cho php, v ci th p nh t c dng theo xc su t khi PIR v t m c cho php. 3. Token Bucket (TokenBucketPolicer): Dng CIR v CBS v 2 th t u tin h y gi 4. Single Rate Three Color Marker (srTCMPolicer): Dng CIR, CBS, EBS, v PBS ch n t 3 drop precedences. 5. Two Rate Three Color Marker (trTCMPolicer): Dng CIR, CBS, EBS, v PBS ch n ra t 3 drop precedences. M i lo i chnh sch trn y nh b o m n s d ng. M t b ng chnh sch nh ngha cho m i lo i chnh sch i m m kh i u cng nh l 1 hay 2 i m m gi m m c. i m m kh i u th ng c g i l green code v i m m gi m m c th p nh t l red. N u c m t i m m khc gi a, n c g i l yellow.

9.3.2. C u hnh
c p nh t b ng chnh sch dng l nh addPolicyEntry, trong g m bi n hng i bin bao hm hng i bin, nt ngu n v nt ch c a lu ng, lo i chnh sch, i m m kh i u c a n, v sau l gi tr cc tham s m n dng nh CIR, CBS, PIR v PBS nh trn. CIR v PIR c n v l bps, cn CBS, EBS, v PBS c n v byte. V d nh: $edgeQueue addPolicerEntry [$n1 id][$n8 id] trTCM 10 200000 1000 300000 1000 y chng ta thm vo 1 chnh sch cho lu ng xu t pht t nt $n1 v k t thc nt $n8. N u dng chnh sch TSW th c th thm vo cu i chi u di c a s TSW. N u khng c thm vo th l y gi tr m c nh l 1s. Sau m t l nh addPolicyEntry khc ch r chnh sch v i m m kh i u (v i m t lu ng khng c th ) s nh ngha i m m gi m m c v i t t c cc lu ng s d ng chnh sch v i cng m t i m m kh i u. V d : $edgeQueue addPolicerEntry srTCM 10 11 12

167

Ba l nh sau y in ra (1) ton b b ng chnh sch, (2) ton b b ng gim st v (3) kch th c hi n th i o b ng byte c a kh i C tng ng: $edgeQueue printPolicyTable $edgeQueue printPolicerTable $edgeQueue getBucket

9.4. M ph ng Diffserv: b o v cc gi tin d b t n cng


Trong k t n i TCP, vi c m t m t s o n gy nh h ng nhi u hn ln hi u nng c a phin k t n i so v i cc o n khc. Nh ng o n ny l (i) cc o n thi t l p k t n i, (ii) o n c g i i khi k t n i c m t c a s nh , v (iii) o n c g i i sau 1 kho ng th i gian timeout hay l n truy n l i g p. Ta g i l nh ng o n hay gi d b t n cng. Trong m t ti li u g n y, cc tc gi c ch ra vi c nh d u nh ng o n ny v i m c u tin cao hn v th c hi n u tin dng ki n trc Diffserv s lm hi u su t k t n i TCP c c i thi n ng k .Tuy nhin, vi c nh d u ny yu c u cc thnh ph n l p m ng bi t v thng tin l p v n chuy n, v d nh tr ng thi k t n i TCP. M c ch c a v d m ph ng m chng ta gi i thi u l ch ra r ng c th nh d u u tin cc o n nh y c m m khng c n b t k thng tin no c a l p v n chuy n, v v y s n gi n ha vi c th c hi n nh d u u tin cc gi TCP.

9.4.1. K ch b n m ph ng nh ngha
M u v phn lo i d ch v : Hai m c u tin c nh ngha. M c cao hn gi tin vo hay green packets v m c th p hn gi tin ra hay red packets. Chng ta t p chung vo chnh sch n gi n nh t c s n trong ns: c a s th i gian tr t (TSW2CM). M t t c cho php CIR c nh ngha cho m i router bin. Mi n l t c k t n i d i m c CIR th t t c gi tin c nh d u l m c u tin cao. Khi t c v t m c CIR th cc gi tin c nh d u theo xc su t bnh qun, m t c c a gi tin c nh d u v i m c u tin cao ng v i CIR. T c truy n c tnh theo t c trung bnh trn c a s TSW; trong ph n m ph ng th kho ng th i gian c a s l 20ms. V i kinh nghi m c a mnh chng ti thay i m c CIR t i nt bin ngu n v nghin c u nh h ng c a n n hi u su t. Chng ta s xem xt m t topo m ng n gi n v i 1 nt th t c chai, c m t trn hnh 9.1

168

Hnh 9.1: Topo m ng

M i nt ngu n c k t n i t i nt bin tng ng ni lu l ng c nh d u theo tham s s c ch r. Router bin c k t n i t i router li t i nt th t c chai, v sau qua m t router khc t i ch. C 20 nt ngu n, m i nt t o ra cc k t n i TCP. Chng ta s th nghi m v i m ng LAN c t c cao (tr truy n d n nh ) v i ng truy n hon ton i x ng ng truy n gi a nt bin v nt ngu n tng ng c tr 10sec v bng thng 6Mbps. ng truy n gi a nt bin v nt ch tng ng c tr 10sec v bng thng 10Mbps. ng truy n gi a nt trung tm v nt bin g n v i nt ngu n c tr 0.1sec v bng thng 6Mbps. ng truy n gi a nt trung tm v nt bin g n v i nt ch c tr 1sec v bng thng 10Mbps. M hnh lu l ng: M t file c truy n c phn b xc su t Pareto v i tham s shape l 1.25 v kch th c trung bnh 10kbytes. File c truy n n m i nt ngu n theo ti n trnh Poisson v i t c trung bnh 5 file/giy. Nhi u phin truy n t cng 1 nt ngu n c th c kch ho t ng th i. Tham s qu n l vi c x p hng: Hng i ch c th c xy d ng t i router nt c chai, v d nh t i ng truy n gi a nt trung tm v nt bin n i t i ch. Ta ch n kch th c c a n l 100 gi tin. V th nn cc tham s qu n l hng i t i cc nt khc khng

169

nh h ng n k t qu . Trong hng i th t c chai t i nt trung tm, qu n l hng i multi-RED c dng v i phin b n RIO-D; ta ch n tham s gi ng nhau cho c 2 m c u tin (chi ti t hn ph n sau). M c ch c a chng ta trong vi c ch n ra cc tham s khng ph i l nh n c hi u nng c n thi t v ti u m ng ra l t o ra cc i u ki n cho php ta nghin c u nh h ng c a Diffserv khi gi m xc su t m t cc o n d b m t v tc ng c a n n hi u su t c a cc ho t ng trn TCP ( tr , thng l ng). V l do , chng ta ch n tham s gi ng nhau cho 2 m c u tin (i u ny s c gi i thch d i). Kch th c hng i trung bnh c gim st, v i m i lo i gi tin ( , xanh) (i u ny c th c hi n b ng cch dng hm m chu n l y trung bnh v i tham s wq = 0.01). Cc gi tin c mu cho tr c b t u b lo i b khi s hng i trung bnh c a gi tin v t qu gi tr minw ; ta ch n minw = 15; xc su t h y gi ny tng tuy n tnh v i kch th c hng i trung bnh cho n khi t t i gi tr maxw = 45, trong xc su t h y gi l y gi tr maxp = 0.5. Khi v t qu gi tr ny, th xc su t h y gi b ng 1. Lu r ng vi c phn bi t gi a cc m c u tin c th c hi n b ng cch dng cc t p tham s khc nhau: nh vi c h y gi tin mu xanh t i kch th c hng i l n hn. Chng ta th ng khng s d ng cch ny, v s lo i b khi kch th c c a s l n s gy tr l n hn, trong m t s tham s th nghi m cho k t qu thng l ng th p hn v i gi tin mu xanh hn l gi tin mu v s suy gi m chung v hi u su t. V i vi c cho cng tham s gi ng nhau v i c 2 m c u tin, chng ta c th nghin c u v tc ng tr c ti p c a vi c b o v cc gi tin d b t n cng trn ng truy n TCP. S nh d u c th c hi n b ng cch dng RIO-D, trong xc su t t ch i m i lo i m u ph thu c vo s l ng gi tin trung bnh c a lo i . V v y, c t gi tin mu xanh b h y hn gi mu , chng ta ch n thng l ng c a chng th p hn (cho nn cng ph thu c vo kch th c hng i trung bnh); i u ny c th c hi n b ng cch ch n gi tr CIR thch h p m gi tr ny xc nh ph n gi tin b nh d u mu xanh. M ph ng ko di 80s. T c n c a cc bit nt c chai l

20 1.04 104 8 = 7.563M bps 0.22 K t qu trn thu c nh sau: M t gi tin kch th c trung bnh l 1040 bytes trong 1000 bytes l d li u v 40 bytes l mo u ph . M t file ftp trung bnh c gi thi t l c 104 bytes d li u, c ngha l t ng kch th c trung bnh (bao g m c mo u ph ) kho ng 1.04x104x8 bits. K t qu ny t c khi nhn s nt ngu n v chia cho th i gian trung bnh gi a cc file n t i 1 nt. o n m ns c cho trong b ng 7.1.

Set ns [new Simulator]

170

# C nhi u ngu n v m i ngu n t o nhi u phin TCP # chia s cng 1 ng truy n nt c c a chng c cho b i tham s NodeNb # chai v 1 ch. S

# S(1) -------- E(1) --------# # # . . | ------Core------- Ed ------------D | . -------- E(i)

# S(NodeNb)-E(NodeNb)set cir0 100000; #policing parameter set cir1 100000; #policing parameter set pktSize 1000 set NodeNb set NumberFlows set sduration 60 20; # s nt ngu n lu ng trn m t nt ngu n 360;# s

;# th i gian m ph ng li u (cho NAM)

# nh ngha cc mu khc nhau cho lu ng d $ ns color 1 Blue $ ns color 2 Red $ ns color 3 Green $ ns color 4 Brown $ ns color 5 Yellow $ ns color 6 Black

#file bao g m th i gian truy n c a cc k t n i khc nhau Set Out [open Out.ns w]; #file bao g m s l ng k t n i

Set Conn [open Conn.tr w]; #m file lu v t [open out.tr w];

Set tf

$ns trace-all $tf #Open file lu v t NAM Set file2 [open out.nam w] # $ns namtrace-all $file2

171

# nh ngha topo Set D Set Ed [$ns node] [$ns node] [$ns node]

Set Core

Set flink [$ns simplex-link $core $Ed 10Mb 1ms dsRED/core] $ns queue-limit $Core $Ed 100 $ns simplex-link $Ed $Core 10Mb 1ms dsRED/edge $ns duplex-link $Ed $D 10Mb 1ms 0.01ms DropTail For {set j 1} {$j<=$NodeNb} {incr j} { Set S($j) [$ns node] Set E($j) [$ns node] $ns duplex-link $S($j) $E($j) 6Mb $ns simplex-link $E($j) $Core $ns simplex-link $Core $E($j) $ns queue-limit $S($j) } #c u hnh Diffserv Set qEdC [[$ns link $Ed $Core] queue] $qEdC meanPktSize 40 $qEdC set numQueues_ 1 $qEdC setNumPrec 2 For {set j 1} {$j<=$NodeNb} {incr j} { $qEdC addPolicyEntry [$D id] [$S($j) id] TSW2CM 10 $cir0 0.02 } $qEdC addPolicerEntry TSW2CM 10 11 $qEdC addPHBEntry 10 0 0 $qEdC addPHBEntry 11 0 1 $qEdC configQ 0 0 10 30 0.1 $qEdC configQ 0 1 10 30 0.1 $qEdC printPolicyTable $qEdC printPolicerTable $E($j) 6Mb 6Mb 100 0.01ms 0.1ms 0.1ms DropTail dsRED/edge dsRED/edge

172

Set qCEd [[$ns link $Core $Ed] queue] # set CEd [$flink queue] $qCEd meanPktSize $pktSize $qCEd set numQueues_ 1 $qCEd set NumPrec 2 $qCEd addPHBEntry 10 0 0 $qCEd addPHBEntry 11 0 1 $qCEd setMREDMode RIO-D $qCEd configQ 0 0 15 45 0.5 0 0.1 $qCEd configQ 0 1 15 45 0.5 0 0.1 For {set j 1} {$j<=$NodeNb} {incr j} { Set qEC($j) [[$ns link $E($j) $Core] queue] $qEC($j) meanPktSize $pktSize $qEC($j) set numQueues_ 1 $qEC($j) setNumPrec 2 $qEC($j) addPolicyEntry [$S($j) id] [$D id] TSW2CM 10 $cir1 0.02 $qEC($j) addPolicerEntry TSW2CM $qEC($j) addPHBEntry 10 0 0 $qEC($j) addPHBEntry 11 0 1 #$qEC($j) configQ 0 0 20 40 0.02 $qEC($j) configQ 0 0 10 20 0.1 $qEC($j) configQ 0 1 10 20 0.1 $qEC($j) printPolicyTable $qEC($j) printPolicerTable Set qCE($j) [[$ns link $Core $E($j)] queue] $qCE($j) meanPktSize 40 $qCE($j) set numQueues_ 1 $qCE($j) setNumPrec 2 $qCE($j) addPHBEntry 10 0 0 $qCE($j) addPHBEntry 11 0 1 # $qCE($j) configQ 0 0 20 40 0.02 $qCE($j) configQ 0 0 10 20 0.1 $qCE($j) configQ 0 1 10 20 0.1 } 10 11

173

# set flow monitor Set monfile [open mon.tr w] Set fmon [$ns makeflowmon Fid] $ns attach-fmon $flink $fmon $fmon attach $monfile #TCP Sources, destinations, connections For {set i 1} {$i<=$NodeNb} {incr i} { For {set j 1} {$i<=$NumberFlows} { incr j } { Set tcpscr($i,$j) [new Agent/TCP/Newreno] Set tcp_snk($i,$j)[new Agent/TCPSink] Set k [expr $i*1000 +$j]; $tcpsrc($i,$j) set fid_$k $tcpsrc($i,$j) set window_ 2000 $ns attach-agent $S($i) $tcpsrc($i,$j) $ns attach-agent $D $tcp_snk($i,$j) $ns connect $tcpsrc($i,$j) $tcp_snk($i,$j) Set ftp($i,$j) [$tcpsrc($i,$j) attach-source }} # kh i t o kch th c ng u nhin cho file Set rng1 [new $rng1 seed 22 RNG] FTP]

# Random inter-arrival times of TCP transfer at each source i Set RV [new RandomVariable/Exponential] $RV set avg_ $RV use-rng 0.22 $rng1

#dummy command Set t [$RVSize #By gi value]

chng ta nh ngha th i gian b t u truy n v

#kch th c gi tin n sau ti n trnh Poisson For {set i 1} {$i<=$NodeNb} {incr i} Set t [$ns now] For {set i 1} {$i<=$NumberFlows} {incr i} { {

174

# set the beginning time of next transfer from source and attributes $tcpsrc($i,$j) set sess $j $tcpsrc($i,$j) set node $i Set t [expr $t + [$RV value]] $tcpsrc($i,$j) set starts $t $ftp($i,$j) send countFlows $i [$tcpsrc($i,$j) set size] $tcpsrc($i,$j) set size [expr [$RVSize value]] $ns at [$tcpsrc($i,$j) set starts] $ns at [$tcpsrc($i,$j) set starts] }} For {set j 1} {$j<=NodeNb} {incr j} { Set Cnts($j) } # the following procedure is called whenever a connection ends Agent/TCP instproc done {} { Global tcpsrc NodeNb NumberFlows ns RV ftp Out tcp_snk RVSize # print in $Out: node, session, start time, end time, duration, # trans-pkts, transm-bytes, retrans-bytes, throughput Set duration [expr [$ns now] - [$self set starts]] Set i [$self set node] Set j [$self set sess] Set time [$ns now] Puts $Out $i \t $j \t $time \t\ $time \t $duration \t [$self set ndataback_] \t\ [$self set ndatabytes_] \t [$self set nrexmitbytes_] \t\ 0 1

[expr [$self set ndatabytes_] /$duration] #update the number of flows countFlows [$self } # Th t c quy sau y s c p nh t s in k t qu k t n i nh l m t ra $bi n $Conn. t c v i tham s ind khng khi no set node] 0

# hm th i gian. M i 0.2 n s

# i u ny c th c hi n b ng cch g i th # ng d u b ng 3 (trong tr ng h p tham s # ng vai tr g c ). Th # m t k t n i t

t c cng c g i b t c

ngu n i v k t thc b ng cch gn tham s

# ng d u 0, hay khi n b t u, b ng cch gn n b ng 1

175

#(i c chuy n qua bi n

ind).

Proc countFlows {ind sign} { Global Cnts Conn NodeNb Set ns [Simulator instance] if {$sign==0} {set Cnts($ind) [expr $Cnts($ind) - 1]} elseif {$sign==1} {set Cnts($ind) [expr elseif { Puts -nonewline $Conn [$ns now] \t Set sum 0 For {set j 1} {$j<=$NodeNb} {incr j} { Puts -nonewline $Conn $Cnts($j)\t Set sum [expr $sum + $Cnts($j) ] } Puts $Conn $sum $ns at [expr [$ns now] + 0.2] countFlows 1 3 } } $Define a finish procedure Proc finish {} { Global ns tf qsize qbw qlost file2 $ns flush-trace Close $file2 Exit 0 } $ns at 0.5 countFLows 1 3 $ns at [expr $sduration - 0.01] $fmon dump $ns at [expr $sduration - 0.001] $qCEd printStats $ns at $sduration finish $ns run $Cnts($ind) + 1]}

B ng 9.1: o n m Diffs.tcl

176

CIR Cc gi tin ng b b m t Cc gi tin u b m t T ng

10kbps 120

30kbps 95

100kbps 53

200kbps 45

300kbps 17

1Mbps 78

10Mbps 114

125

119

90

56

37

73

115

1699

1612

1476

1286

1088

1290

1577

B ng 9.2: B o v cc gi tin d b t n thng nh m t hm c a CIR

9.5. K t qu m ph ng
M t gi : chng ta ki m tra nh h ng c a t c nh d u CIR n xc su t m t gi c a gi tin SYN v c a gi tin d li u u tin trong k t n i, nh tr c y. Ta th y r ng c n gi m vi c m t gi tin SYN b ng m t th a s c a 7, v m t gi d li u u tin c a m t k t n i b ng th a s c a 3.4, c hai t c t c CIR l 320kbps. Throughput v goodput: s gi tin d li u c truy n thnh cng trong m ph ng hon ton c l p v i t c CIR: m c trung bnh l 58285, v i l ch chu n l 395 gi tin. l v trn th c t t l gi n khng ph thu c vo t c CIR. Ch r ng khi xc su t m t gi th p, th thng l ng cng th p, n lun khng i gi ng nh m t hm c a CIR. S phin k t n i : t ng s phin l m t hm c a th i gian c cho trong hnh 9.2 cho t c CIR l 200kbps (gi tr t i u) v cho tr ng h p khng c u tin (CIR l 10Mbps). Chng ta s th y t k t qu m ph ng r ng l c nh d u v i CIR 300kbps cho hi u su t t t hn: gi m s k t n i kch ho t hi n c b nh d u. Lin h v i th c t , th i gian c a phin trong nh d u ng n hn, chng ta s lm r trong ph n sau. Th t v y, v t l gi tin n trong 1 phin k t n i l gi ng nhau v khng ph thu c vo CIR s phin trung bnh nn t l v i th i gian trung bnh c a 1 phin (h s t l l t l gi n trong phin). Th i gian phin k t n i: trong b ng 9.3 ta th hi n th i gian trung bnh c a m t phin nh l 1 hm c a CIR. Trong kho ng t c 100kbps n 300kbps th i gian trung bnh gi m b i h s 1/3 (cho 100kbps) v 1/2 (cho 300kbps) v i tr ng h p khng c u tin.

CIR sess. duaration

10kbps 0.252616

30kbps 0.231077

100kbps 0.167948

200kbps 0.149478

300kbps 0.119509

1Mbps 0.203202

10Mbps 0.225075

B ng 9.3: Th i gian trung bnh c a mt phin theo hm CIR

177

Hnh 9.2: S ti n ha c a t ng s phin

9.6. Th o lu n v k t lu n
C 1 vi h n ch khi th c hi n vi c nh d u. S c i thi n ng k m chng ta nh n c khng ph i s c c trong m i ho t c nh, v chng ti a ra m t vi ch d n m chng ti nh chnh trong nh ng m ph ng ti p theo, m t nh ng h n ch c a n. 1. Nh ng gi tin d b t n cng lm gi m hi u su t ng k v chng gy ra th i gian gin o n (time-out) di. c bi t l trong tr ng h p m t gi tin ng b s d n n th i gian time-out 3s hay 6s. Trong m ng t c cao th i gian truy n file r t ng n (th ng th t ng th i gian truy n ng n hn nhi u th i gian time-out), v th ta mong mu n t hi u su t cao hn b ng cch lo i tr th i gian time-out ny. Trong m ng t c th p, th vi c lo i tr th i gian time-out l khng c n thi t. 2. Trong m ph ng c a chng ta, m t file c kch th c trung bnh 10kbytes, l kch th c c tnh trung bnh trn m ng Internet. i u ny c ngha l 10% gi tin l gi SYN v c th hn th , 10% khc l gi u trong m t l n truy n. Kho ng 20% gi b m t tng ng v i lo i gi tin d b t n cng ny,v th lo i tr m t gi s d n n c i thi n ng k hi u su t. N u chng ta p d ng v i cc file l n hn, th ph n gi tin d b t n cng s nh hn, gi tr thm vo nh hn.

178

9.7. Bi t p
M ph ng c a chng ta h n ch gi i h n v i lu l ng FTP. Trong bi t p ny chng ta xem xt lu l ng HTTP: th i gian t lc k t thc truy n file n lc b t u phin truy n m i c phn ph i theo hm m v i gi tr trung bnh 0.1s. Ci ny c g i l th i gian suy ngh. V th t m i nt ngu n ch c duy nh t 1 file c truy n t i cng th i i m (nhi u nh t l 1 phin kch ho t). Vi t chng trnh tcl cho m hnh lu l ng v ki m tra hi u su t c a n nh l m t hm c a CIR, so snh v i lu l ng FTP.

179

Chng 10 M ph ng m ng LAN
M cl c

10.1. C s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

te lec om
180

180 182

10.2. M ph ng m ng LAN v i ns: . . . . . . . . . . . . . . . . . . . . .

Ng i d ch: L Th Nga

Bin t p: H T t Thnh

B n g c: NS Simulator for beginners, Chapter 8 [2]

10.1. C s

s d ng b i m t ng i dng. V d nh b nh chi ph ci t v ho t ng.

vn

M c ch c a cc m ng c c b l chia s ti nguyn ng gi ho c khng b c quy n a c ng v my in. M ng LAN lm n

gi n ha vi c trao i b n tin, chia s file v tnh ton phn tn. M ng cho php chia s

T n t i b n ki u topo chnh c a m ng LAN: m ng hnh sao, m ng l i, m ng vng v bus. Trong c u hnh sao, cc thi t b u cu i c k t n i v i hub trung tm nh lin k t i m-i m. i u ny cho php i u khi n t p trung cc tranh ch p v x l qu ng b m t cch d dng. H n ch c a m hnh ny l s tin c y trong cc ho t ng c a n b gi i h n b i s ph thu c vo hub trung tm. Hn n a, kh nng c a hub trung tm h n ch s l ng tr m c th k t n i.

C u hnh l i cho php c m t vi tuy n gi a hai ng i dng. V d nh h th ng i n tho i. M ng vng bao g m cc b l p c k t n i nh cc lin k t n h ng i m-i m t o thnh m t vng kn. V d nh IBM token ring, IEEE 802.5 v FDDI. M ng vng n gi n v cho php truy n trn lin k t ny trong khi ang nh n t m t lin k t khc. trnh s tranh ch p ch c m t tr m c th truy n t i m t th i i m, i u c ngha l vi c s d ng ti nguyn khng hi u qu . indexEthernet c u hnh bus g m c cc o n cp n c k t n i n cc tr m, cc k t n i ny l ki u k t n i a i m: t t c cc tr m c k t n i t i bus, v n u hai tr m cng truy n t i m t th i i m th c tranh ch p . V d nh token bus (IEEE 802.4) v Ethernet (IEEE 802.3, IEEE 802.9 v IEEE 802.4). B n thn bus l th ng (khng ph c h i ho c khu ch i tn hi u) d n n ph m vi gi i h n. m r ng ph m vi c n s d ng m t b l p c th k t n i nhi u bus n m t cp. Trong cc c u hnh m ng khc hnh sao, giao th c MAC phn tn (a truy nh p) n cc knh c n c th c hi n. Cc giao th c truy nh p ny c chia lm 3 lo i: chia s tnh, truy nh p ng u nhin, v truy nh p theo yu c u. Trong cc giao th c chia s tnh, cc ngu n ti nguyn c phn b c nh gi a cc ng i s d ng. Cc giao th c chnh l: 1. TDMA (a truy nh p phn chia theo th i gian): th i gian c chia thnh cc khe khc nhau v phn b cho nhi u ng i s d ng. 2. FDMA (a truy nh p phn chia theo t n s ): nhi u ng i dng c th truy n ng th i nh s d ng cc t n s khc nhau. Vi c truy nh p n v tinh th ng d a trn c s k t h p TDMA v FDMA. 3. CDMA (a truy nh p phn chia theo m): nhi u ng i s d ng c th truy nh p t i cng m t th i i m v s d ng cng t n s , nhng s d ng cc m khc nhau. Cc m th ng tr c giao v i nhau nn lm gi m nhi u. c s d ng trong cc m ng di ng th h th 3 nh l h th ng vi n thng di ng ton c u (UMTS). Trong giao th c truy nh p ng u nhin, truy nh p ng u nhin c th gy ra xung t v c n truy n l i. V d Aloha c s d ng trong truy n thng v tinh v Ethernet. gi m xung t, m t tr m s l ng nghe tr c, n u khng c tn hi u no khc ang c truy n trn knh chung v n u c th vi c truy n hon l i. i u ny c g i l a truy nh p c m nh n sng mang (CSMA). Hn n a, (one can avoid transmission a long tram) C th trnh vi c truy n ln ng truy n n u trong su t qu trnh truy n d n pht hi n c xung t. i u c g i l pht hi n xung t (Collision Dectection-CD). Phin

181

b n ny c a CSMA bao g m c CSMA/CD v CSMA c tri n khai(implemented) trong ns, c bi t l CSMA/CD. Ethernet l m t giao th c MAC d a trn CSMA/CD, v cc phin b n khc c chu n ha, v d IEEE 802.3 (10Mbps), IEEE 802.9 (a phng ti n), IEEE 802.11 (Ethernet khng dy), IEEE 802.12 (AnyLan t c cao 100Mbps, thch h p v i cc ki u m ng LAN khc nhau) v IEEE 802.14 (t c cao). Ethernet g m c cc thu t ton backoff truy n l i. M t s M c l a ch n ng u nhin, 0 M < 2k v i k = min(n, 10) , v n l t ng s xung t x y ra v i cc gi. Th i gian tr c khi truy n l i c l y M l n "c a s xung t" (b ng hai l n th i gian truy n t i a c a tn hi u trong m ng c c b ). Khi n = 16, phin truy n b h y. Chu n IEEE802.3 c tri n khai rong ns. C a s xung t c gi i h n 51,2us v m ng c c b gi i h n trong 5km. N c m t vi phin b n, v d nh 10base5, 10base2, 10broad36 v m t s phin b n khc. S u tin ch thng l ng Mbps, s th hai cho i u ch (broad c ngha l khng i u ch ). Kho ng th i gian r i gi a cc khung truy n d n trong 10base5 l 9,6us. Khi s d ng Ethernet t c cao, kho ng th i gian r i ny cng nh th i gian lan truy n c c i gi m i, v i u tng t i a ph m v c a m ng T n t i cng ngh Ethernet khc d a trn chuy n m ch ni s l ng l n u vo c th t n t i v c t xung t hn.

10.2. M ph ng m ng LAN v i ns:


B m ph ng Ns m ph ng 3 m c lin quan n m t m ng c c b : cc giao th c l p lin k t (nh l ARQ ( giao th c yu c u l p l i t ng), giao th c MAC (v d nh Ethernet ho c token ring) v knh v t l. Cch c b n nh ngha m t m ng LAN nh m t nhm cc node c lin k t b i l nh: Set lan [$ns newLan <arguments>] C 7 tham s : 1. Nhm cc node, v d : $n3 $n4 $n5,! 2. tr 3. r ng bng t n 4. Ki u l p lin k t (v d "LL") 5. Ki u hng i nhi u , v d "QueueDrop Tail" 6. Ki u MAC (v d : "Mac/Csma/Cd ho c Mac/802_3)

182

7. Ki u knh (v d : "Channel)

Hnh 10.1: V d m ng LAN

Theo m t v d , Xt m ng trong hnh 11.1 l m t ki u bi n i c a m ng c nghin c u chng 2 (hnh ?? ) v i cc node n3, n4, v n5 c t trong m t m ng LAN chung. i u ny c ngha l cc gi TCP c h ng n node 4 cng n node 5 (V b lo i b tai y), TCP c g i b i node n4 t i node n0 cng n node n5 (v b lo i b y) v cc gi UDP c g i n node n5 cng n node n4 (v b lo i b y).

T p tin m sau gi ng nh ex1.tcl (b ng ?? ) nhng chng ta thay th cc l nh $ns duplex-link $n3 $n4 0.5Mb 40Ms DropTail $ns duplex-link $n3 $n5 0.5Mb 30Ms DropTail b ng l nh:
set lan [$ns newLan $n3 $n4 $n5 0.5Mb 40ms LL Queue/DropTail MAC/Csma/Cd Channel ]

183

Chng 11 M ph ng m ng cho MPLS (MNS)


M cl c

11.1. Gi i thi u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2. Gi i thi u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

te lec om
m ph ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

185 185 185 186 187 187 188 189 190 190 191 191 192 193

11.2.1. M c ch v ph m vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2.2. M hnh khi ni m c a MNS h tr QoS . . . . . . . . . . . . . . 11.3. Thi t k v thi hnh v i MNS . . . . . . . . . . . . . . . . . . . .

11.3.1. Chuy n m ch nhn. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3.2. Chuy n m ch nhn. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3.3. S ginh tr c ti nguyn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3.4. M c l p - Class Level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3.5. Mi tr ng th c thi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.4. Cc v d

Ng i d ch: ng Thnh Chng Bin t p: Nguy n Nam Hong. B n g c: Design and Implementation of MPLS Network Simulator [4]

vn

11.4.1. M ph ng lu l ng QoS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.4.2. M ph ng s u tin tr c ti nguyn . . . . . . . . . . . . . . . . .

11.5. K t lu n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

184

11.1. Gi i thi u
MNS l vi t t t c a MPLS Network Simulator Ti li u ny s trnh by v n thi t k v th c thi b ph n m m m ph ng MNS, h tr vi c thi t l p knh chuy n m ch nhn rng bu c CR-LSP i v i lu l ng QoS, cng nh cc ch c nng c b n v MPLS, nh giao th c phn b nhn LDP v chuy n m ch nhn. c th h tr cc ch c nng , MNS bao g m r t nhi u thnh ph n; l CR-LDP, MPLS Classifier, Service Classifier, Admission Control, Resource Manager, v Packet Scheduler. m bo tnh chnh xc v hi u qu c a MNS, hai v d s c m ph ng v th c hi n. M t l m ph ng i v i cc lu ng lu l ng v i cc QoS khc nhau, v hai l m ph ng s ginh tr c (preemtion) ti nguyn.

C u trc c a ti li u ny nh sau: ph n 2 s a ra ci nhn t ng qut v MNS, v n thi t k v th c thi chi ti t hn s c trnh by trong ph n 3. Cc v d m ph ng s c gi i thi u trong ph n 4, v cu i cng l ph n k t lu n.

vn te lec
qu c a d n VINT.

11.2. Gi i thi u

Ph n ny s trnh by m c ch, ph m vi, ki n trc v kh nng th c hi n c a MNS.

MNS c th c hi n b ng cch m r ng ph n m m NS2, l b m ph ng d a trn IP, c b t u b ng b m ph ng m ng REAL b i UC Berkeley, 1989. Hi n t i NS ver 2 l k t

11.2.1. M c ch v ph m vi

M c ch chnh c a ph n m m ny l pht tri n c th m ph ng cc ng d ng khc

nhau c a MPLS trong i u ki n khng c m ng MPLS th c t . B m ph ng MPLS c thi t k d a trn cc l do sau:

Tnh m r ng (Extensibility) Tnh d s d ng (Usability) Tnh "nh g n (Portability)

Tnh "ti s d ng" (Reusability) Ph m vi th c hi n c a b m ph ng MPLS: Chuy n m ch nhn: cc thao tc chuy n m ch nhn, gi m (decrement) TTL, hop bin (p cht)

185

om

LDP: cc thng i p LDP (Request, Mapping, Withdraw, Release, Notification) CR-LDP: cc thng i p CR-LDP Kh nng c a b m ph ng MPLS lin quan n vi c thi t l p knh LSP nh sau: Trong LSP Trigger Strategy: h tr kh i ng (trigger) theo i u khi n (controldriven) v theo d li u (data-driven) Trong Label Allocation and Distribution Scheme: ch h tr l c downstream trong kh i ng control-driven, h tr c 2 l c upstream v downstream-on-demand trong kh i ng data-driven Trong Label Distribution Control Mode: ch h tr mode c l p trong kh i ng control-driven, v c 2 mode c l p v ordered trong kh i ng data-driven. Trong Label Retention Mode: ch h tr trong ch duy tr (conservative mode) ER LSP based on CR-LDP: thi t l p d a trn thng tin ng i xc nh tr c b i user. CR LSP based on CR-LDP: thi t l p d a trn cc tham s nh t c lu l ng, kch th c vng m. t tr c ti nguyn (Resource preemption): ginh tr c ti nguyn c a CR-LDP t n t i v i setup-priority v holding-priority. Flow Aggregation (G p lu ng): g p c c lu ng m n (fine flows) vo 1 lu ng th (coarse flow)

11.2.2. M hnh khi ni m c a MNS h tr QoS


Cc hm ch c nng c m t nh sau: LDP/CR-LDP: t o ra ho c x l cc thng bo LDP.CR-LDP MPLS Classifier: th c hi n cc php ton x l nhn nh: push, pop v swap i v i cc gi MPLS Service Classifier: phn lo i ph c v p d ng v i cc gi n b ng cch s d ng nhn v thng tin giao ti p ho c tr ng CoS c a MPLS shim header, v k t h p m i gi v i s t tr c thch h p. Admission Control xem xt Traffic Parameter c a CR-LDP, v xc nh node MPLS c ti nguyn kh d ng hay khng p ng yu c u QoS.

186

Hnh 11.1: M hnh khi ni m c a MNS

Resource Manager: t o/xa cc hng i yu c u, cng nh qu n l thng tin v ti nguyn. Packet Scheduler: qu n l cc gi trong hng i sao cho chng c th nh n c cc yu c u ph c v .

11.3. Thi t k v thi hnh v i MNS


11.3.1. Chuy n m ch nhn
B m ph ng MPLS th c hi n b ng cch m r ng NS l b m ph ng d a trn IP. Trong NS, m t node bao g m cc agent (tc nhn) v classifier. M t agent l i t ng g i/nh n (sender/receiver) c a giao th c, v classifier l i t ng ch u trch nhi m i v i s phn lo i gi. i v i m c ch t o ra node MPLS m i, MPLS Classifier, v LDP agent c chn vo trong node IP. Ki n trc node MPLS v i chuy n m ch nhn c ch ra trong hnh 2. Khi node MPLS nh n 1 gi, n s th c hi n nh sau: MPLS Classifier xc nh gi nh n c c gn nhn hay khng. N u n c gn nhn, MPLS Classifier th c hi n chuy n m ch nhn i v i gi. N u n khng c gn nhn nhng thu c m t LSP, n s c i u khi n nh m t gi c gn nhn. Ng c l i, MPLS Classifier g i n n Addr Classifier Addr Classifier: th c hi n chuy n ti p L3 i v i gi tin

187

Hnh 11.2: Ki n trc nt MPLS v i chuy n m ch nhn

N u hop ti p theo c a gi cng l chnh n, gi s c g i n Port Classifier i v i chuy n m ch nhn, hai b ng c xc nh nh sau: Partial Forwarding Table (PFT) n l t p con c a Forwarding Table, v c s d ng nh x m t gi IP thnh LSP t i LSR vo (Ingress). N bao g m FEC, FlowID, v LIBptr. LIBptr l con tr cho bi t m t i m vo c a b ng LIB. Label Information Table (LIB) Ch a cc thng tin v vi c thi t l p cc LSP, v c s d ng cung c p chuy n m ch nhn i v i gi c gn nhn. N bao g m cc nhn in/out v giao di n in/out.

11.3.2. Chuy n m ch nhn


h tr lu l ng MPLS th i gian th c, Service Classifier l thnh ph n c thi t k v thi hnh. CBQ, l cng c c th c thi trong NS, c l a ch n i v i thnh ph n Packet Scheduler. Trong th c t , thnh ph n Packet Scheduler s c th c hi n t i cc node. Tuy nhin, NS th c hi n ch c nng ny t i cc Link. Trong MNS, m t b ng c xc nh duy tr cc thng tin cho vi c thi t l p ER-LSP; l Explicit Route information Base (ERB). ERB ch a thng tin cho vi c thi t l p ER-LSP , nh LSPID v ServiceID Hnh 11.3 ch ra qu trnh x l lu l ng MPLS QoS c a node v link MPLS. Khi m t gi d li u MPLS i n t i node MPLS, n c a n MPLS Classifier. Node MPLS s tm (indexes) trong b ng LIB i v i cc nhn ra (outgoing-label) v giao di n ra (outgoing-interface) th c hi n cc php ton nhn v b ng ERB i v i ServiceID a ra hng i d ch v . Ty theo l p m gi thu c vo, n s c x p vo vng m

188

Hnh 11.3: X l lu l ng QoS MPLS c a nt v link MPLS

tng ng trong CBQ. V r i n s c p ng b i CBQ v c truy n ra giao di n c ng ra.

11.3.3. S ginh tr c ti nguyn


Cc thnh ph n Admission Control v Resource Manager c thi t k v thi hnh i v i vi c qu n l ti nguyn. Thnh ph n Resource Manager c ch c nng t o/xa b cc hng i CBQ, v qu n l cc thng tin ti nguyn (t c l b ng Resource).

Hnh 11.4: Qu trnh ginh tr c ti nguyn c a nt v link MPLS

Hnh 11.4 ch ra qu trnh x l vi c dnh tr c ti nguyn c a node v link MPLS. Khi thnh ph n CR-LDP nh n b n tin yu c u CR-LDP, n g i Admission Control ki m tra

189

node c c yu c u ti nguyn. N u c ti nguyn kh d ng, Admission Control s ginh tr c ti nguyn b ng cch c p nh t b ng Resource. Sau , b n tin yu c u LDP c cho php i qua n node MPLS ti p theo. Khi thnh ph n CR-LDP nh n b n tin CR-LDP Mapping, n s lu gi nhn v thng tin giao ti p trong b ng LIB v cc thng tin CR-LSP c yu c u (t c l LSPID) trong b ng ERB. V cu i cng, b n tin LSP Mapping s c cho php i qua n node MPLS tr c .

11.3.4. M c l p - Class Level


C 3 m c l p v 4 d ch v (ST, RT, HBT, SBT), c ch ra trong hnh 11.5. Ng i s d ng c th c u hnh cc tham s c a CBQ, t c l t c lu l ng, kch th c vng m, quy n u tin. Cc hng i c a ST, HBT v SBT c t o ra theo cch c nh khi mi tr ng m ph ng c c u hnh. RT th c t o ra/xa b theo cch ng khi khi c m t s ki n m ph ng, v d b n tin CR-LDP n t i node MPLS.

Hnh 11.5: M c l p trong MPLS

11.3.5. Mi tr ng th c thi
B m ph ng MNS c th c thi trn h th ng Sun Unix b i chng trnh ns-2.1b6, NS version 2.1

190

11.4. Cc v d m ph ng
11.4.1. M ph ng lu l ng QoS
Trong ph n ny, chng ta kh o st m t vi lo i c a lu l ng MPLS v i m i lo i QoS khc nhau, c ch ra trong hnh 11.6. Theo cch ny, chnh xc v tnh hi u qu c a MNS s c ki m nh.

Hnh 11.6: M ng MPLS

Trong hnh 11.6 , node0 v node4 l cc node IP. LSR1, LSR2 v LSR3 l cc node MPLS. C 4 c p t i lm vi c: m t c p l Simple Best-effort Traffic, c g i l SBT, m t c p l High priority Best-effort Traffic, c g i l HBT, v hai c p Real-time Traffic, tng ng l RT1 v RT2. Lu l ng c a vo t i node0 v i ra t node4. Bng thng k t n i (link) l 1Mbit/s, ngo i tr k t n i gi a Node0 v LSR1. SBT v HBT pht ra lu l ng t c bit khng thay i (CBR) t i 250 Kbit/s, theo th t l n l t. RT1 v RT2 pht ra lu l ng CBR t i 350 Kbit/s v 450 Kbit/s, m t cch tng ng. Do , t ng t c d li u t i c a t t c cc t i lm vi c l n hn bng thng k t n i c a m ng MPLS. Hnh 11.7 ch ra m l p l ch cc s ki n i v i m ph ng. C 4 LSP c thi t l p i v i lu l ng; l hai ER-LSP i v i SBT v HBT, v hai CR-LSP i v i RT1 v RT2. T i th i i m 0.1 giy, 2 ER-LSP c thi t l p i v i SBT v HBT, v 1 CR-LSP i v i RT1. T i 1.0, SBT, HBT v RT1 pht ra cc lu l ng c a chng. T i 10.0 giy, m t CR-LSP c thi t l p i v i RT2, v RT2 pht ra lu l ng c a n t i 11.0 giy. T i 30.0 giy, RT2 d ng vi c pht ra lu l ng c a n v CR-LSP i v i RT2 c gi i phng t i 31.0 giy. Cu i cng, SBT, HBT v RT1 d ng vi c pht lu l ng c a chng t i 40.0 giy. K t qu m ph ng c ch ra trong hnh ??. Nh trong hnh ??, t ng bng thng gi a kho ng 11 giy v 30 giy g n b ng v i bng thng k t n i, t c l hi u qu s d ng bng thng l r t cao. Trong kho ng th i gian , RT1 v RT2 c th t c bng thng yu c u, trong khi SBT v HBT t n d ng bng thng cn l i c a k t n i. V HBT c ph c v nhi u hn SBT.

191

Hnh 11.7: M l p l ch s kin

Hnh 11.8: S bi n i lu l ng bng thng fig:h118

11.4.2. M ph ng s u tin tr c ti nguyn


Trong ph n ny, chng ta m ph ng s u tin tr c ti nguyn c xc nh trong chu n CR-LDP. i v i m ph ng ny, t c lu l ng c a RT1 v RT2 c ghi l i. RT1 v RT2 pht ra lu l ng CBR l n l t t i 600 Kbit/s v 700 Kbit/s. Do , khi RT1 v RT2 pht ra lu l ng t i th i i m gi ng nhau th t ng t c c a t t c cc kh i l ng lm vi c s l n hn bng thng k t n i c a m ng MPLS. Hnh 11.9 ch ra m l p l ch cc s ki n i v i m ph ng. Vi c thi t l p u tin (setup-priority) v gi u tin (holding-priority) i v i CR-LDP c a RT1 l n l t l 7 v 4. Vi c thi t l p u tin (setup-priority) v gi u tin (holding-priority) i v i CR-LDP c a RT2 l n l t l 3 v 2. V v y, RT2 c th ginh c ti nguyn tr c RT1

192

Hnh 11.9: M l p l ch s ki n

b i v gi tr setup-priority c a RT2 nh hn gi tr holding-priority c a RT1. K t qu m ph ng c ch ra trong hnh 11.10, trong ch ra ti nguyn c a RT1 c ginh tr c RT2 t i giy th 11. T giy th 11, RT1 c p ng v i lu l ng cao nh t. Trong kho ng th i gian ny, ch RT1 c th t c bng thng theo yu c u, trong khi trong khi SBT, HBT v RT2 t n d ng bng thng cn l i c a k t n i. V HBT c ph c v nhi u hn SBT v RT2.

Hnh 11.10: K t qu c a m l p l ch s ki n

11.5. K t lu n
MPLS c bi t n nh l cng ngh quan tr ng nh t i v i vi c gi i quy t nhi u bi ton trn Internet. R t nhi u k thu t lin quan n MPLS c cung c p. MNS cung

193

c p m t n n t ng m ph ng v i nhi u k thu t c xem xt. B ng cch s d ng MNS, chng ta m ph ng 2 v d trong ti li u ny. V i cc s ki n n gi n, cc k t qu c ch ng minh l c tnh kh thi v hi u qu i v i MNS. C n nhi u k t qu m ph ng hn ch ng t MNS u c th c hi n trong tng lai.

194

Chng 12 M ng di ng
M cl c

12.1. Cc thu t ton nh tuy n . . . . . . . . . . . . . . . . . . . . . . . 12.1.1. Vector kho ng cch theo th t ch DSDV . . . . . . . . . . 12.1.2. Vector kho ng cch theo yu c u c bi t AODV . . . . 12.1.3. nh tuy n ngu n ng DSR . . . . . . . . . . . . . . . . . . . . . . . . 12.1.4. Thu t ton nh tuy n t ch t m th i TORA . . . . .

om

197 197 198 198 199 200 200 201 203 207 208 208 210 210 211 211 211 213 216 219

vn te lec
12.6. S

12.2. M ph ng m ng di ng . . . . . . . . . . . . . . . . . . . . . . . . . 12.2.1. K ch b n m ph ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.2.2. Vi t m t tcl script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12.3. nh d ng file v t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.4. Phn tch k t qu m ph ng . . . . . . . . . . . . . . . . . . . . . 12.5. So snh v i nh tuy n ad-hoc khc . . . . . . . . . . . . . . 12.5.1. TCP qua DSR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.5.2. TCP qua AODV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.5.3. TCP qua TORA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.5.4. M t vi bnh lu n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . tc ng c a TCP t i giao th c MAC . . . . . . . . .

12.6.1. B i c nh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.6.2. K ch b n m ph ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.6.3. Cc k t qu m ph ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.6.4. Thay i cho NS v i tr ng h p n > 2 . . . . . . . . . . . . . . . .

195

Ng i d ch: Nguy n Hong Minh Phc Bin t p: Nguy n Anh Tn B n g c: NS Simulator for beginners, Chapter 9 [2]

C hai cch lin l c khng dy gi a hai thi t b : th nh t l qua m ng t bo t p trung trong m i m t thi t b di ng c k t n i t i m t ho c nhi u tr m c s t c nh (m i tr m c s ch u trch nhi m m t ), do lin l c gi a hai thi t b di ng i h i c s tham gia c a m t ho c nhi u tr m c s . Ki u th hai l ki u khng t p trung bao g m c s c a m t m ng ad-hoc gi a nh ng ng i dng mong mu n lin l c v i nhau. Do tng thm gi i h n ph m vi ho t ng c a m t thi t b di ng ( i v i m t tr m c s t c nh), ki u lin l c ny i h i cc thi t b i ng khng ch ph i ng vai tr l ngu n ho c ch c a cc gi tin c truy n trong qua trnh lin l c c a chng m cn m nhi m thm vai tr y cc gi tin cho qu trnh lin l c gi a cc thi t b khc n a. Tr m t bo c ph m vi l n hn cc m ng ad-hoc. Tuy nhin cc m ng ad-hoc l i c u i m l c th tri n khai nhanh chng b i v chng khng i h i h t ng c s s n c. Trong cc m ng t bo, cc thnh ph n khng dy b h n ch ch truy c p vo m t m ng v trong m ng cc giao th c nh tuy n c i n c th c s d ng. Tri l i, m ng ad-hoc d a vo cc giao th c nh tuy n c bi t c th p ng c s thay i th ng xuyn c a c u trc lin k t m ng. m hnh ha t t cc m ng t bo, cc cng c m ph ng ph c t p nh knh v tuy n v t l cng nh cc cng c m ph ng cc k thu t i u khi n cng su t c n c s d ng. NS khng ph i l m t module cao c p m ph ng l p v t l (m c d n c ch a m t s cc ch c nng m ph ng knh v tuy n n gi n). Trong cc m ng ad-hoc, tri l i, cc giao th c nh tuy n th ng t p trung. NS cho php m ph ng cc giao th c nh tuy n chnh cng nh s truy n t i v cc ng d ng s d ng cc giao th c . Ngoi ra, n cn cho php tnh ton i v i l p MAC, tnh di ng v m t vi c i m c a l p v t l. Cc giao th c nh tuy n thng d ng c trong NS bao g m: DSDV- Destination Sequenced Distance Vector. DSR- Dynamic Source Routing ( nh tuy n ngu n ng). TORA/IMPE-Temporally Ordered Routing Algorithm / Internet MANET Encapsulation Protocol. AODV- Ad-hoc On Demand Distance Vector.

196

12.1. Cc thu t ton nh tuy n


C m t vi thu t ton nh tuy n dng trong cc m ng c dy truy n th ng v m t vi t ng n y sinh t cc thu t ton c s d ng trong cc m ng ad-hoc. Chng ta s ch tr ng n cc v n sau: 1. nh tuy n theo tr ng thi k t n i. M i nt m ng u lu tr ton b c u trc k t n i c a m ng cng v i tham s c a m i ng k t n i. M i nt m ng g i qu ng b theo nh k gi tr tham s c a cc ng k t n i b t u t chng t i t t c cc nt m ng khc. M i nt cng s t c p nh t c u trc k t n i m i c a m ng v p d ng m t thu t ton tm ng ng n nh t ch n ra i m t i ti p theo cho ng v i t ng ch n. 2. nh tuy n theo Vector kho ng cch. M i nt m ng ch quan tm n gi tr tham s c a cc k t n i i ra t n. Thay v qu ng b thng tin t i t t c cc nt, n qu ng b theo nh k t i cc nt ln c n c a n m t gi tr c l ng kho ng cch ng n nh t t i m i nt trong m ng. Cc nt ln c n s d ng thng tin ny tnh ton l i b ng nh tuy n c a mnh b ng thu t ton tm ng ng n nh t. Phng php ny c hi u qu tnh ton cao hn, d dng tri n khai hn v cng i h i dung l ng lu tr t hn so v i nh tuy n tr ng thi k t n i (Link Sate). 3. nh tuy n ngu n. Cc quy t nh nh tuy n c th c hi n t i ngu n v cc gi hon ton c chuy n theo cc tuy n . 4. nh tuy n trn. M t ngu n s g i thng tin t i t t c cc nt ln c n c a n, cc nt ny s chuy n ti p cc thng tin t i cc nt ln c n c a chng v vi c chuy n tin c ti p t c nh v y. V b ng cch nh s th t cho cc gi tin, m t nt m ng c th s p x p gi tin vo ng v tr c a n. Ti p theo chng ta s ni v cc giao th c nh tuy n c bi t c trong NS.

12.1.1. Vector kho ng cch theo th t ch DSDV


DSDV l m t giao th c nh truy n vector kho ng cch. M i m t nt u c m t b ng nh tuy n ch ra h ng i ng v i m i a ch ch, tham s c a b ng bao g m a ch c a i m n ti p theo v s cc i m trung gian c n i qua tr c khi n ch. M i nt theo nh k s g i qu ng b b n tin c p nh t b ng nh tuy n c a n. M t chu i s theo th t c s d ng nh d u cho t ng ng nh tuy n. Cc con s ny th hi n ng nh tuy n no l m i hn: ng nh tuy n c s th t cao hn s t t hn, cn n u c hai ng nh tuy n c cng s th t th ng no c s l ng i m trung gian

197

t hn s t t hn. N u m t nt pht hi n ra m t ng nh tuy n b h ng n s t gi tr v cng cho s l ng i m trung gian ng th i s th t s c c p nh t (tng ln) nhng s l m t s l , i u ny c ngha l s th t ch n l t ng trng cho vi c ng nh tuy n v n cn s d ng c.

12.1.2. Vector kho ng cch theo yu c u c bi t AODV


AODV l m t ki u nh tuy n vector kho ng cch. N khng i h i cc node ph i duy tr cc ng nh tuy n t i cc ch b i v khng ph i lc no chng cng c s d ng. Ch c n cc i m u nt c a m t k t n i c m t ng nh tuy n ph h p i c t i nhau l c. Giao th c ny s d ng cc b n tin khc nhau tm ra v duy tr cc k t n i, chng g m c: b n tin yu c u nh tuy n (RREQs), b n tin ph n h i yu c u nh tuy n (RREPs) v b n tin bo l i nh tuy n (RERRs). Cc lo i b n tin ny c nh n thng qua giao th c UDP v normal IP header processing applies. AODV gn s th t cho t ng ng nh tuy n. S th t c a ch n c t o ra b i cc ch n nh l m t tham s trong thng tin nh tuy n m n g i i t i cc nt ang yu c u nh tuy n t i n. S d ng cc s th t ny m b o s khng xu t hi n hi n t ng l p (loop) v cho php chng ta bi t ng nh tuy n no l t t hn. ch n l a gi a hai ng nh tuy n t i cng m t ch, nt g i yu c u nh tuy n lun lun ch n ng s th t tng ng cao nh t. Cc nt m l m t ph n c a m t ng nh tuy n v n dng c c th a ra thng tin k t n i b ng cch qu ng b nh k ra hng xm xung quanh n b n tin Hello (l m t b n tin RREP c bi t). N u b n tin Hello khng cn nh n c t m t hng xm no sau m t kho ng th i gian nh tr c th c ngha l c th m t k t n i t i v hng xm . Khi m t nt pht hi n ra ng i t i m t nt hng xm khng cn dng c n a n s xa thng tin ng ny v g i i m t b n tin RERR t i cc hng xm cn l i, vi c ny gip duy tr danh sch cc hng xm v n cn lin l c c. Th t c ny s c l p l i t i cc nt nh n c b n tin RERR. M t nt m nh n c m t b n tin RERR c th l i g i i m t b n tin RREQ. AODV khng cho php i u khi n cc k t n i theo m t h ng duy nh t.

12.1.3. nh tuy n ngu n ng DSR


c thi t k cho m ng di ng c bi t c s node c th ln t i 200 v i m c lu ng cao. Giao th c ny lm vi c theo ki u theo yu c u ngha l khng c hnh ng c p nh t theo nh k. Cc gi tin c chuy n hon ton theo cc ng ch n. Nh v y gi m c l ng

198

ng k cc b n tin c p nh t trong m ng. Cc nt lu tr trong b nh t m th i c a chng t t c cc ng nh tuy n m chng bi t. Giao th c ny bao g m vi c tm ra cc ng nh tuy n v duy tr chng. T i qu trnh tm ki m ng nh tuy n, m t ngu n c yu c u g i tin t i m t ch s g i qu ng b b n tin yu c u nh tuy n RREQ. Cc nt nh n c b n tin RREQ ny s tm ki m trong b nh c a n xem c ng no i n a ch ch c ghi trong RREQ khng. N u n khng tm th y th b n tin RREQ s c g i ti p i xa hn ng th i n s thm a ch c a n vo danh sch chu i i m trung gian. Th t c ny s ti p t c cho t i khi t i c ch c n n ho c n c m t node no c ng nh tuy n t i ch c n n. ng nh tuy n s c xc nh b ng cch o ng c danh sch chu i i m trung gian. V cc ng nh tuy n khng c n ph i i x ng , nn khi DSR ki m tra b nh lu tr b ng nh tuy n t m th i c a node cu i cng trong th t c tm ki m v n u m t ng c tm th y n s c s d ng thay th . Do k t n i m t chi u c th c i u khi n. Duy tr ng nh tuy n: Khi t o ra ho c y i m t gi tin s d ng m t ng nh tuy n, m i nt m gi tin i qua c trch nhi m xc th c r ng d li u c th c chuy n qua theo ng k t n i t n n i m trung gian ti p theo. M t gi tin xc nh n c th cung c p s xc th c cho m t k t n i r ng c th chuy n d li u trn n. Cc gi tin xc nh n th ng l m t b ph n c a giao th c MAC (nh l khung xc nh n l p lin k t c nh ngha trong IEEE 802.11), ho c l xc nh n th ng ngha l m t nt c th xc nh c r ng gi tin c n c nh n b i m t nt trung gian v n c th bi t c nt trung gian y gi tin i xa hn. N u nh ng b n tin xc nh n ny cha c g i i th m t nt c th yu c u m t b n tin xc nh n (b n tin xc nh n ny c th c g i tr c ti p t i nt qua m t ng nh tuy n khc). B n tin xc nh n c th b yu c u nhi u l n (trong m t gi i h n t tr c), v n u lin t c khng nh n c b n xc nh n, ng nh tuy n s b lo i b kh i b nh nh tuy n t m th i v m t b n tin nh tuy n l i s c g i t i cc nt m t ng g i tin qua k t n i k t th i i m cu i cng nh n c b n tin xc nh n. Cc nt nghe ngng ho c chuy n ti p cc gi tin s s d ng t t c cc thng tin nh tuy n tch tr c p nh t cho gi tin nh tuy n c a n.

12.1.4. Thu t ton nh tuy n t ch t m th i TORA


Giao th c ny thu c dng h cc giao th c o chi u k t n i. N c th cung c p nhi u ng nh tuy n gi a 2 i m. TORA bao g m ba ph n: t o ra, duy tr v xa ng. T i m i nt m ng, m t b n sao chp ring bi t c a TORA c ch y v i t ng ch. TORA xy d ng m t th khng tu n hon tr c ti p h ng t i m t ch. N gn m t tham s

199

cho t ng nt trong m ng ( i v i cc ch thng th ng). Cc tin nh n s i t cc nt c tham s l n hn t i nh ng nt c tham s th p hn. Cc ng nh truy n c pht hi n ra b ng cch s d ng cc gi tin Truy v n (QRY) v C p nh t (UPD). Khi m t nt m ng khng c ng k t n i xu ng c n c ng nh tuy n t i m t ch, n g i qu ng b b n tin QRY v s truy n i cho t i khi n tm th y c m t nt c ng nh tuy n t i ch c n n ho c truy n t i c ch c n n. ch ny s p l i b ng cch g i qu ng b b n tin UPD c ch a gi tr tham s c a nt. M t nt m ng khi nh n c gi tin UPD s c p nh t gi tr c a tham s tng ng c a n v g i qu ng b ra m t gi tin UPD khc. Vi c ny c th t o ra m t s l ng cc ng tr c ti p t ngu n t i ch. N u m t nt m ng pht hi n ra m t ch no m n khng th no tm c ng t i, n s t cho i m ch ny gi tr tham s l n nh t. Trong tr ng h p nt m ng ny khng th tm th y c b t k m t hng xm no c gi tr tham s l h u h n t i node ch , n s c g ng tm m t ng nh tuy n m i. N u cng khng c ng nh tuy n no t i c ch ny (v d nh ch n thu c m t ph n b chia c t c a m ng), nt m ng ny s g i qu ng b gi tin Xa (CLR) thi t l p l i t t c cc tr ng thi nh tuy n v xa b i cc nh tuy n khng cn ng t cc thnh ph n khc c a m ng. TORA ho t ng pha bn trn giao th c IMEP (Giao th c ng gi MANET internet), y l giao th c cung c p kh nng phn ph i n nh cc b n tin nh tuy n v cung c p cc giao th c nh tuy n lin quan n s thay i cc k t n i cho cc hng xm c a n. IMEP c g ng t p h p cc b n tin IMEP v TORA l i thnh m t gi tin (g i l kh i) c th gi m lu l ng. c c thng tin v tr ng thi c a cc k t n i t i hng xm, IMEP theo s g i nh k cc b n tin BEACON c tr l i l i b i cc b n tin HELLO

12.2. M ph ng m ng di ng
12.2.1. K ch b n m ph ng
Chng ta b t u b ng vi c a ra m t k ch b n n gi n: m t k t n i TCP n qua 3 node m ng v i ph m vi 500 x400m nh c miu t trong hnh 12.1. V tr kh i t o c a node 0, 1 v 2 l n l t l (5,5), (490,285) v (150,240) (chng ta gi s r ng t a tr c z b ng 0). Vo i m th i gian 10, node 0 b t u di chuy n t i i m (250,250) v i v n t c 3m/s Vo i m th i gian 15, node 1 b t u di chuy n t i i m (45,285) v i v n t c 5m/s Vo i m th i gian 10, node 0 b t u di chuy n t i i m (480,300) v i v n t c 5m/s Node 2 khng tham gia m ph ng.

200

Hnh 12.1: V d v m t m ng ad-hoc 3 i m

M ph ng ny ko di 150s. T i i m th i gian 10, m t k t n i TCP c kh i t o gi a node 0 v node 1. Chng ta s s IEEE802.11 MAC. d ng d i y giao th c nh tuy n c bi t DSDV v giao th c

12.2.2. Vi t m t tcl script


Chng ta b t u b ng vi c xc nh r m t vi tham s c b n cho qu trnh m ph ng, cung c p thng tin cho cc layer khc nhau. N c lm nh d i y: Set val(chan) Set val(prop) Set val(netif) Set val(mac) Set val(ifq) Set val(ll) Set val(ant) Set val(ifqlen) Set val(nn) Set val(rp) Set val(x) Set val(y) Set val(stop) Channel/WirelessChannel; Propagation/TwoRayGround; phy/WirelessPhy; Mac/802.11; Queue/DropTail/PriQueue ; LL; Antenna/OmniAtenna; 50; 3; DSDV; 500; 400; 150; # channel type # radio-propagation model # network interface type # MAC type # interface queue type # link layer type # antenna model # max packet in ifq # number of mobilenodes # routing protocol # X dimention of topography # Y dimention of topography # time of simulation end

Nh ng thng s ny c s d ng trong qu trnh c u hnh cc node v i cc l nh nh sau

201

$ns node-config adhocRouting $val(rp) \ -llType $val(ll) \ -macType $val(mac) \ -ifqType &val(ifq) \ -ifqLen $val(ifqLen) \ -antType $val(ant) \ -propType $val(prop) \ -phyType $val(netif) \ -channelType $val(chan) \ -topoInstance $topo \ -agentTrace ON \ -routerTtrace ON \ -macTrace OFF \ -movementTrace ON for {set i 0} {$i < $val(nn) } { incr i } { set node_($i) [$ns node] } B n ty ch n cu i cng trong ph n c u hnh nt m ng c th nh n gi tr ON ho c OFF. Ty ch n agentTrace s l n theo ng c a TCP, routerTrace s cung c p ng i c a cc gi tin trong qu trnh nh tuy n, macTrace th l n theo cc gi tin giao th c MAC, v movementTrace c s d ng l n theo s di chuy n c a cc node V tr kh i t o c a nt 0 l: $node_(0) set X_ 5.0 $node_(0) set Y_ 5.0 $node_(0) set Z_ 0.0 S di chuy n tuy n tnh c a m t nt m ng c t o ra b ng cch xc nh r th i gian n b t u chuy n ng, gi tr t a x v y c a ch n v t c c a n. V d , s di chuy n c a nt s 1 c xc nh nh sau: $ns at 15.0 $node_(1) setdest 45.0 285.0 5.0 Chng ta c n t o ra v tr ban u c a nt m ng cho NAM (Network AniMator) b ng cch s d ng : Tng t nh v y chng ta kh i t o v tr ban u cho cc nt cn l i. For {set i 0} {$i < $val(nn)} { incr i } {

202

# 30 defines the node size for nam $ns initial_node_pos $node_($i) 30 } Chng ta ch ra cc nt m ng khi qu trnh m ph ng k t thc v i: For {set i 0} {$i < $val(nn)} { incr i} { $ns at $val(stop) $node_($i) reset; } Sau chng ta t o k t n i TCP v t o ng d ng ftp qua k t n i ny nh bnh th ng. K t thc qu trnh m ph ng nh th ng l ngo i tr vi c thm l nh k t thc NAM.

12.3. nh d ng file v t
M t v d v m t ng trong d u v t u ra l
r 40.649943289 _1_ AGT --- 1569 tcp 1032 [a2 1 2 800] ------- [0:0 1:0 32 1] [35 0] 2 0

Tham s u tin l m t ch ci gi tr c a n c th l r, s, f , D thay cho received, sent, forward v dropped. N cng c th l M m ch m t a i m ho c m t s di chuy n, n s c miu t sau. Tham s th hai l th i gian Th ba l s th t c a nt m ng Th t l MAC bi u th r ng gi tin c lin quan n l p MAC, AGT th hi n l m t gi tin l p Transport (ch ng h n nh TCP), ho c RTR n u l m t gi tin c nh tuy n. Gi tr ny cng c th l IFQ ch ra cc s ki n lin quan n hng i u tin (nh gi tin b r t ch ng h n). pha sau cc d u g ch ngang l s th t c a gi tin (l global sequence number ch khng ph i l tcp sequence number). T i tr ng ti p theo l cc thng tin b sung v gi tin (ch ng h n nh tcp, ack ho c udp) Ti p n l kch c c a gi tin (tnh theo bytes) Trong ngo c vung l cc thng tin v l p MAC. S th p l c phn u tin a2 (tng ng v i 162 trong h th p phn) miu t s th i gian tnh theo giy c mong i

203

l s g i xong gi tin qua knh v tuy n. S th hai c gi tr 1 l thay cho MAC-id c a node ang g i gi tin, s th ba c gi tr 2 chnh l MAC-id c a nt m ng ang nh n gi tin. Tr ng cu i cng, 800, ch ra lo i MAC l ETHERTYPE_IP. Trong ngo c vung th 2 l a ch a IP ngu n v ch, ti p theo l ttl (Time To Live) c a gi tin (trong tr ng h p ny l 32) Ngo c vung th ba c p n thng tin tcp: s th t c a n v s ch ng th c (acknowledgement number) C nhi u ki u nh d ng khc nhau lin quan n cc k thu t nh tuy n khc v cc lo i gi tin khc nhau. M t cu l nh di chuy n c d ng nh sau: M 10.00000 0 (5.00, 5.00, 0.00), (250.00, 250.00), 3.00 Con s u tin l th i gian, th hai l s node, sau l v tr ngu n v ch, cu i cng l t c .

# M t v d

g m 3 nt cho m ph ng ad-hoc v i DSDV Channel/WirelessChannel; Propagation/TwoRayGround; Phy/WirelessPhy; Mac/802.11; Queue/DropTail/PriQueue; LL; Antenna/OmniAtenna; 3; DSDV; 500; 400; 150; [new Simulator] [open simple.tr w] [open win.tr w] [open simwrls.nam w] # lo i knh # radio-propagation model # network interface type # lo i MAC # interface queue type # link layer type # antenna model # max packet in ifq # number of mobilenodes # routing protocol # X dimention of topography # Y dimention of topography # time of simulation end

# nh ngha cc ty ch n Set val(chan) Set val(prop) Set val(netif) Set val(mac) Set val(ifq) Set val(ll) Set val(ant) Set val(nn) Set val(rp) Set val(x) Set val(y) Set val(stop) Set ns Set tracefd Set windowVsTime2 Set namtrace $ns trace-all $tracefd @ns namtrace-all-wireless $namtrace $val(x) $val(y)

Set val(ifqlen) 50;

204

# set up topography object Set topo [new Topography]

$topo load_flatgrid $val(x) $val(y) Creat-god $val(nn) # Creat nn mobilenodes # configure the nodes $ns node-config adhocRouting $val(rp) \ -llType $val(ll) \ -macType $val(mac) \ -ifqType &val(ifq) \ -ifqLen $val(ifqlen) \ -antType $val(ant) \ -propType $val(prop) \ -phyType $val(netif) \ -channelType $val(chan) \ -topoInstance $topo \ -agentTrace ON \ -routerTtrace ON \ -macTrace OFF \ -movementTrace ON for {set i 0} {$i < $val(nn) } { incr i } { set node_($i) [$ns node] } # Provide initial location of mobilenodes $node_(0) set X_ 5.0 $node_(0) set Y_ 5.0 $node_(0) set Z_ 0.0 $node_(1) set X_ 490.0 $node_(1) set Y_ 285.0 $node_(1) set Z_ 0.0 $node_(2) set X_ 150.0 $node_(2) set Y_ 240.0 $node_(2) set Z_ 0.0 [$val(nn)] and attach them to the channel

205

# Generation of movements $ns at 10.0 $node_(0) setdest 250.0 250.0 3.0 $ns at 15.0 $node_(1) setdest 45.0 285.0 5.0 $ns at 110.0 $node_(0) setdest 480.0 300.0 5.0 # Set a TCP connection between node_(0) and node_(1) Set tcp [new Agent/TCP/Newreno] $tcp set class_2 Set sink [new Agent/TCPSink] $ns attach-agent $node_(0) $tcp $ns attach-agent $node_(1) $sink $ns connect $tcp $sink Set ftp [nw Application/FTP] $ftp attach-agent $tcp $ns at 10.0 $ftp start # Printing the window size Proc plotWindow {tcpSource file} { Global ns Set time 0.01 Set now [$ns now] Set cwnd [$tcpSource set cwnd_] Puts $file $now $cwnd $ns at [expr $now+$time] plotWindow $tcpSource $file } $ns at 10.1 plotWindow $tcp $windowVsTime2 # Define node initial position in nam For {set i 0} {$i < $val(nn)} { inct i } { # 30 define the node size for nam $ns initial_node_pos $node_($i) 30 } # Telling nodes when the simulation ends For {set i 0} {$i < $val(nn)} { inct i } { $ns at $val(stop) $node_($i) reset ; } # ending nam and the simulation $ns at $val(stop) $ns nam-end-wireless $val(stop) $ns at $val(stop) stop

206

$ns at 150.01 puts \end simulation\ ; $ns halt Proc stop {} { Globla ns tracefd namtrace $ns flush-trace Close $tracefd Close $namtrace } $ns run

B ng 12.1: K ch b n "wrls-dsdv.tcl" cho TCP ttrn m t m ng ad-hoc

12.4. Phn tch k t qu m ph ng


T i lc b t u cc node cch nhau qu xa v khng th t o c k t n i n nhau. Gi tin TCP u tin c truy n t i i m th i gian 10 nhng k t n i khng th m c. Trong lc y cc node 0 v node 1 b t u di chuy n v pha node 2. Sau 6 giy (timeout) c g ng t o k t n i l n th hai nhng v n khng c v gi tr timeout c nhn i thnh 12 giy. T i i m th i gian 18 m t c g ng k t n i c th c hi n. Gi tr timeout l i c nhn i thnh 24 giy v ti p t c nh v y l i nhn i thnh 48 giy. Ch n th i i m 100 giy k t n i m i c thi t l p. Node 1 v node 0 l g n nhau nn t o c m t k t n i tr c ti p. Cc i m di ng ti p t c di chuy n v l i xa nhau thm cho n khi k t n i tr c ti p b t. Giao th c nh tuy n l qu ch m t o ra m t ng nh tuy n khc. Ti n trnh c th xem trong hnh 12.2 v m t ci ch p nhanh c a nam(Network AniMator) t i th i i m 124.15 giy c ghi t i hnh 12.4 Ti p theo chng ta thay i m t cht cc tham s m ph ng. Vi c thay i duy nh t th c y l chng ta thay i th i i m truy n ftp t 10 thnh 12. Vi c ny s lm cho nt s 0 1 s n m trong vng ph sng c a nt s 2 khi th i gian vo kho ng 53 giy, t i lc ny k t n i tcp c g ng k t n i s thnh cng gi a nt 0 v 1. i u ny c miu t trong hnh 12.5 . T i i m th i gian 66 node 0 v node 1 l g n nhau t o c m t k t n i tr c ti p. Ti n trnh c ny c th th y hnh 12.3 . T i th i i m ng nh tuy n thay i c m t gi tin TCP b m t nn lm cho kch th c c a s gi m xu ng. T i i m th i gian 125.5 nt 0 v 1 l n i b t. qu xa nhau c th duy tr k t n i nn k t

207

Hnh 12.2: Kch th c c a s TCP trong k ch b n 3 nt m ng v i giao th c nh tuy n DSDV

Hnh 12.3: Kch th c c a s TCP trong k ch b n 3 nt m ng v i giao th c nh tuy n DSDV v i k t n i qua v khng qua trung gian)

12.5. So snh v i nh tuy n ad-hoc khc


12.5.1. TCP qua DSR
Tr c h t chng ta thay i giao th c nh tuy n sang DSR b ng cch thay i wrlsdsdv.tcl thnh : Set val(rp) DSR ;# routing protocol qu xa nhau nn s khng c k t n i. Giai o n 2 v 4 k t n i gi a giai o n 3 k t n i tr c ti p gi a 2 Khi th c hi n m ph ng, chng ta s quan st 5 giai o n. Trong giai o n u tin v cu i cng, cc nt m ng nt m ng. nt 0 v 1 theo ng thng qua nt 2 , trong khi

Hnh 12.4: TCP trong k ch b n 3 nt m ng v i giao th c nh tuy n DSDV, th i i m 124.14 giy, k t n i tr c ti p

Hnh 12.5: TCP trong k ch b n 3 nt m ng v i giao th c nh tuy n DSDV, th i i m 58 giy, k t n i qua 1 trung gian

Giai o n 2 b t u vo kho ng th i gian 40. Giai o n 3 b t u vo kho ng 60 giy.

208

T i th i i m 125.50 giai o n 4 b t u v k t thc t i i m 149 giy ng th i cng k t thc t t c k t n i. Cc giai o n c m t trong hnh 12.6

Hnh 12.6: Kch th c c a s c a k t n i TCP qua DSR

Hnh 12.7: Kch th c c a s c a k t n i TCP qua AODV

T k t qu thu c ta c th th y c cc i m sau: Trong DSDV, h th ng khng th cung c p c giai o n 4 do v y k t n i b t s m hn. T ng s gi tin TCP c truy n s d ng DSR nhi u hn DSDV. V i DSR c 6770 gi tin TCP (d li u) c nh n, trong khi DSDV v i cng cc tham s th s gi tin l 2079. (Chng ta c th thu c thng tin ny b ng cch s d ng: Grep ^r simple.tr | grep tcp | grep _1_AGT > tcp.tr v sau m s dng. Ho c chng t cng c th c c b ng cch nhn vo s th t c a gi tin tcp cu i cng.) N u chng ta l n theo d u v t c a m t gi tin TCP, ch ng h n v i gi tin c s th t 5, chng ta s th y n xu t hi n nhi u l n: s 40.298003207 _0_ AGT r 40.298003207 _0_ RTR s 40.298003207 _0_ RTR f 40.310503613 _2_ RTR r 40.310503613 _2_ RTR f 40.310503613 _2_ RTR r 40.348863637 _1_ RTR r 40.348863637 _1_ RTR --- 1507 tcp 1040 [0 0 0 0] ... --- 1507 tcp 1040 [0 0 0 0] ... --- 1507 tcp 1060 [0 0 0 0] ... --- 1507 tcp 1060 [13a 2 0 800] ... --- 1507 tcp 1060 [13a 2 0 800] ... --- 1507 tcp 1068 [13a 2 0 800] ... --- 1507 tcp 1068 [13a 1 2 800] ... --- 1507 tcp 1040 [13a 1 2 800] ...

Gi tin u tin c g i b i l p TCP c a nt s 0 sau c nh n b i giao th c nh tuy n c a cng nt v c g i i t cng v i m t header thm vo. Ti p

209

n c nh n v chuy n ti p b i nt s 2, cu i cng n c nh n t i nt s 1 t i l p nh tuy n, cu i cng l l p TCP. D u v t chng ta m ch c nng macTrace. trn thu c b ng cch m ch c nng ghi d u v t c a agentTrace v routerTrace. 4 dng cn l i c p n cng m t gi tin s xu t hi n n u

12.5.2. TCP qua AODV


Vi c m ph ng v i cng tham s nh trn c l p l i v i AODV. Ti n trnh c th th y hnh 12.7 . K t n i truy n i 3924 gi tin d li u TCP. T u n cu i n trong m t giai o n di v i ng nh truy n qua node 2 trung gian. Th c t l vi c thay i ng nh tuy n b ngn, khng c s m t mt gi tin do v y kch th c c a s v n cao. Tuy nhin, chng ta th y r ng gi tr c a n v n th p hn DSR. i u ny l do th c t th i gian i m t vng (tham s c n thi t tng window m t n v ) l di hn b i v y khng s d ng nh tuy n tr c ti p. i u ny gi i thch t i y r ng vi c tm ki m qung sao n truy n t d li u hn DSR. Chng ta nh n th y ng ng n hn d n n hi u su t TCP t t hn.

12.5.3. TCP qua TORA


V i cng tham s nh wrls-dsdv.tcl, TORA khng truy n c gi tin no c . tng tnh k t n i, chng ta thm vo m t node c nh khc t i t a (250,240) v i vai tr ch l chuy n ti p cc gi tin. Ti n trnh thu c nh trong hnh 12.8.

Hnh 12.8: Kch th c c a s c a k t n i TCP qua TORA v i 4 nt m ng

Hnh 12.9: TCP qua AODV v i gi tr l n c a kch th c c a s l n nh t

T i th i i m ban u khng c k t n i no c . Khi k t n i hnh thnh, m t ng nh tuy n c t o ra b ng cch s d ng cc nt m ng: 0-2-3-1 (xem hnh 12.10 miu t th i i m 33). T i i m th i gian 34.5 m t ng ng n hn c hnh thnh: 0-2-1 nhng ng cho ACK v n khng thay i. Sau vo th i i m 44 ng cho ACK thay i thnh 1-3-0 (hnh 12.11 ).

210

Hnh 12.10: TCP qua TORA v i 4 nt m ng, i m th i gian 33

Hnh 12.11: TCP qua Tora v i 4 nt m ng. i m th i gian 56

12.5.4. M t vi bnh lu n
Trong cc v d chng ta th y, vi c m t gi tin x y ra khi kho ng cch v t l l qu xa ho c khi ng nh tuy n thay i, v gi tin s khng b m t khi c b m b trn. i u ny l do th c t r ng chng ta s d ng m t gi tr m c nh c a kch c l n nh t c a c a s TCP l 20. Do c a s th c t c s d ng l nh nh t gi a di c a s ngh n v 20. Trong hnh 9.9 chng ta trnh by m t ti n trnh kch th c c a s c a TCP qua AODV d i cc i u ki n gi ng h t nh ci chng ta s d ng c c hnh 9.7 nhng gi tr c a s l n nh t l 2000. Chng ta th y r ng chng ta s b m t gi tin do trn b m.

12.6. S tc ng c a TCP t i giao th c MAC


12.6.1. B i c nh
Trong ph n tr c chng ta c p t i m t l ng nh cc i m di ng v th y c nh h ng c a vi c di ng t i hi u su t c a TCP. Khi chng ta c m t s l ng l n cc i m di ng, hi n t ng ring bi t m i do cc l p MAC v l p v t l c th c m t tc ng nghim tr ng t i hi u su t TCP. c th hi u c tc ng ny chng ta tr c tin s miu t m t vi kha c nh lin quan n s v n hnh c a l p MAC IEEE802.11 v l p v t l. M i m t truy n d n c a gi tin DATA t i l p MAC l m t ph n c a m t giao th c b t tay 4 b c. i m di ng mu n g i m t gi tin, chng ta g i n l M1, u tin s g i m t gi RTS (Request to Send). N u i m di ng ch (g i l M2) c th nh n c gi tin ny n s g i m t gi tin CTS (Clear to Send). N u M1 nh n c CTS n c th g i gi tin DATA (c th l d li u TCP ho c gi ACK). Cu i cng M2 g i m t gi tin ACK (l p MAC) M1 hi u r ng gi d li u c nh n hon ch nh.

211

Giao th c b t tay c dng gi m kh nng xung t. Cc xung t c th x y ra khi m t i m di ng (gi s l M3) cng mu n g i gi tin n cho M2 t i cng th i i m v i M1; M3 c th khng bi t c r ng M1 cng ang truy n d li u n M2, khi m t s xung t gi a cc gi tin c a M1 v M3 c th x y ra n bi t c gi tin CTS g i t M2 t i M1. N u M1 khng nh n c gi tin CTS n s d ng vi c truy n tin l i v sau m t kho ng th i gian n s g i l i m t gi tin RTS. Node g i tin s h y gi tin DATA n u n g i tin RTS 7 l n m v n khng nh n c gi tin ph n h i CTS no. M t gi tin DATA cng s b h y i sau 4 l n truy n l i m v n khng nh n c gi tin ACK (l p MAC). M c d b t tay s gi m kh nng xu t hi n cc xung t d u i m cu i, nhng n khng hon ton ch m d t c n. hi u c cch m cc xung t nh v y v n c th x y ra, chng ta ph i xem xt n ph m vi a l c a nhi u v s ti p nh n. Ph n c ng hi n nay ch ra r ng ph m vi truy n d n l kho ng 250 m v ph m vi nhi u l kho ng 550m. Theo nh c u hnh chu i trong hnh 12.12 , kho ng cch gi a cc node l 200m. Although nodes that are two hops apart are not hidden from each other, nodes that are three hops apart are, and may creat collisions. Th c t , n u node M4 mu n truy n tin n M5 thng qua m t ng truy n t M1 n M2, n khng th nghe th y CTS t node M2 v kho ng cch t n n M1 l n hn 550m. Do M4 c t t o ra m t ng truy n n M5 v n s va ch m t i node M2 v i ng truy n tr M1. Chng ta s nghin c u trong ph n ny s va ch m c lo i xung t ny trn hi u su t TCP b ng cch s d ng m ph ng ns, gi i h n v i topo chu i. Chng ta s khng c p n v n di ng [3, 19, 37] th y chi ti t hn. y. Chng ta xem xt M2. Hi n t ng ny c g i l hi n t ng i m cu i b d u. V i giao th c b t tay, M3 s khng c g ng g i gi tin khi

Hnh 12.12: Chu i topo


Hi n t ng m chng ta m t gi i h n c a s l ng gi tin c th truy n ng th i trong m ng ad-hoc m khng g p xung t. V chnh S thc p v khng gian tr thnh m t nhn t chnh lm gi i h n hi u qu c a TCP ch khng ph i l trn b m. c th hi n trong [19] v i c u hnh chu i c a chng ta, s c ch n u chng ta gi i h n kch c l n nh t c a c a s TCP xu ng kho ng n/4; hn n a vi c tng kch c l n nh t c a c a s cn gy ra nhi u s xung t hn v l gi m gi tr th i gian. Trong ph n ny chng ta s ki m tra kh ng nh ny b ng cch m ph ng. Hn n a, v s l ng gi tin c th

212

truy n ng th i b gi i h n nn chng ta s th tng s gi tin TCP truy n thnh cng b ng cch gi m ng truy n ACK,s d ng ACK tr (Delayed ACK). Ns cho php chng ta m ph ng ACK tr v i d = 2. Chng ta s xem xa hn cch v n hnh trong tr ng h p d > 2 b ng cch t o ra thay i trong trnh m ph ng ns.

12.6.2. K ch b n m ph ng
Chng ta s d ng m hnh truy n sng m t t 2 tia, IEEE892.11 MAC, v m hnh anten ng h ng c a ns. Chng ta s d ng thu t ton nh tuy n AODV, m t hng i giao di n di 50 t i m i nt m ng. Chng ta s ki m tra phin b n NewReno c a TCP, l phin b n c tri n khai nhi u nh t. Chng ta lm v i 4 k ch b n: 3, 9, 20 v 30. Trong tr ng h p c a 3 v 9 i h i 150 giy cho m i m ph ng ( c c s v n hnh n nh). Cc tr ng h p cn l i i h i 1500 giy cho m i m ph ng. M t gi tin d li u TCP c t kch c 1040 bytes ( bao g m header). K ch b n cho tr ng h p ACK b tr (v i d = 2) c cho trong b ng 12.2. d i, khi c u hnh cc node chng ta s s d ng ty ch n macTrace ON c c d u v t chi ti t c a gi tin giao th c MAC. i u ny cho php chng ta phn tch l do c a m i gi tin TCP b th t l c.

# nh ngha cc ty ch n Set val(chan) Set val(prop) Set val(netif) Set val(mac) Set val(ifq) Set val(ll) Set val(ant) Set val(ifqlen) Set val(nn) Set val(rp) Set val(x) Set val(y) Set val(stop) Set ns Set tracefd Set windowVsTime2 Channel/WirelessChannel; Propagation/TwoRayGround; Phy/WirelessPhy; Mac/802.11; Queue/DropTail/PriQueue; LL; Antenna/OmniAtenna; 50; 9; AODV; 2200; 500; 150; [new Simulator] [open simple.tr w] [open win.tr w] # lo i knh # radio-propagation model # network interface type # lo i MAC # interface queue type # link layer type # antenna model # max packet in ifq # number of mobilenodes # routing protocol # X dimention of topography # Y dimention of topography # time of simulation end

$ns trace-all $tracefd

213

# set up topography object Set top [new Topography]

$topo load_flatgrid $val(x) $val(y) Creat-god $val(nn) # Creat nn mobilenodes [$val(nn)] and attach them to the channel # configure the nodes $ns node-config adhocRouting $val(rp) \ -llType $val(ll) \ -macType $val(mac) \ -ifqType &val(ifq) \ -ifqLen $val(ifqlen) \ -antType $val(ant) \ -propType $val(prop) \ -phyType $val(netif) \ -channelType $val(chan) \ -topoInstance $topo \ -agentTrace ON \ -routerTtrace ON \ -macTrace ON \ -movementTrace OFF for {set i 0} {$i < $val(nn) } { incr i } { set node_($i) [$ns node] } # Provide initial location of mobilenodes For {set i 0} {$i < $val(nn)} { incr i } { $node_($i) set X_ [expr $node_($i) set Y_ 250.0 $node_($i) set Z_ 0.0 } # Set a TCP connection between node_ (0) and node_ (8) Set tcp [new Agent/TCP/Newreno] ($i+1)*200.0]

214

$tcp set class_2 $tcp set window_ 2000 Agent/TCPSink/DelAck set interval_ 100ms Set sink [new Agent/TCPSink/DelAck] $ns attach-agent $node_(0) $tcp $ns attach-agent $node_ (8) $sink $ns connect $tcp $sink Set ftp [new Application/FTP] $ftp attach-agent $tcp $ns at 1.0 $ftp start # In ra kch th c c a s Proc plotWindow {tcpSource file} { Global ns Set time 0.1 Set now [$ns now] Set cwnd [$tcpSource set cwnd_] Puts $file $now $cwnd $ns at [expr $now+$time] plotWindow $tcpSource $file } $ns at 1.1 plotWindow $tcp $WindowVsTime2 # Telling nodes when the simulation ends For {set i 0} {$i < $val(nn) } { incr i } { $ns at $val(stop) $node_($i) reset: } $ns at $val(stop) stop $ns at [expr $val(stop)+0.1] puts \end simulation\ ; $ns halt Proc stop {} { Global ns tracefd $ns flush-trace Close $tracefd } $ns run

B ng 12.2: K ch b n tcpwD.tcl cho TCp qua m t m ng ad-hoc tnh v i chu i topo

215

12.6.3. Cc k t qu m ph ng
K t qu m ph ng i v i n = 9, 20 v 30 nt m ng c ghi l i hnh 12.15 cc hnh 12.13 n

Hnh 12.13: S gi tin/giy i v i n = 9 nh m t ch c nng c a kch c c a s l n nh t

Hnh 12.14: S gi tin/giy i v i n = 20 nh m t ch c nng c a kch c c a s l n nh t

Hnh 12.15: : S gi tin/giy i v i n = 30 nh m t ch c nng c a kch c c a s l n nh t

Chng ta th y r ng ty ch n tr ACK (Delayed ACK) chu n (d = 2) lm t t hn m t cht TCP chu n (nhng khng t t hn v i cc gi tr l n nh t khc c a kch th c c a s ) i v i n = 9, v lm t t hn nhi u (hn 10%) TCP chu n v i n = 30. S ti n b ny thu c tr ACK v i d = 3 ( i v i n = 9 v n = 20). Nhng s ti n b l n nh t m chng ta th y chnh l t t c cc phin b n tr ACK u t t hn TCP chu n i v i cc kch th c

216

c a s l n nh t l n hn 10, v i cc ty ch n d = 3 ho c d = 4 th c hi n t t hn ty ch n tr ACK chu n. V i n = 9, phin b n tr ACK v i d = 3 chng ta th y mang l i t 30% n 40% ti n b hn so v i TCP chu n v i b t k gi tr kch th c l n nh t c a c a s l n hn 10 no; trong ph m vi n cng lm t t hn TCP chu n 20% 30% v i n = 20 v 6% 20% v i n = 30. Phin b n d = 4 th m ch cn lm t t hn v i n = 20 cho cc c a s c kch c l n nh t mang gi tr t 10 n 25. Hi u su t t t hn c a tr ACK cn c th thu c b ng cch t i u kho ng th i gian c a cc ty ch n tr ACK K t lu n quan tr ng nh t c a cc ng cong l tnh m nh m c a cc ty ch n tr ACK. Trong th c t , khi chng ta khng bi t s l ng nt m ng, khng c l do g gi i h n kch th c c a s xu ng m t gi tr nh , v v y i u ny c th lm gi m s l ng gi tin g i c m t cch ng k . Khi l a ch n gi tr l n cho kch c l n nh t c a c a s , cc phin b n tr ACK lm t t hn m t cch ng k so v i TCP chu n. Chng nh n c h u h t cc gi tr t i u m TCP chu n c th nh n c n u n bi t s l ng nt m ng v c th ch n kch c l n nh t c a c a s m t cch tng ng. i v i m t gi tr nh c nh c a kch c l n nh t c a c a s , ty ch n tr ACK khng lm t t hn TCP chu n v trong h u h t th i gian, kch c c a c a s gi i h n s l ng gi tin TCP c truy n xu ng nh hn d, i u c ngha l ty ch n tr ACK ph i ch cho n khi b m th i gian (m c nh l 100ms) k t thc tr c khi t o ra m t ACK; trong su t kho ng th i gian ny node ngu n khng th truy n c tin. Ti p theo, chng ta v th ti n trnh cho kch c c a s v i n = 9 cho TCP chu n v cho TCP v i ty ch n Delayed ACK v i d = 3. Kch c c a s c l y m u v i chu k 0.1 giy. Chng ta th y r ng m c d kch c l n nh t c a s l 2000, c a s ngh n th c t khng v t qu 13. T cc hnh chng ta th y r ng v i TCP chu n, s gi tin m t l th ng xuyn hn v nghim tr ng hn (lm tng timeout) trong khi v i phin b n d=3 c a tr ACK khng h lm tng timeout.

Hnh 12.16: Ti n trnh c a kch th c c a s cho TCP chu n v i kch th c c a s l n nh t l 2000

Hnh 12.17: Ti n trnh c a kch th c c a s cho DelAck TCP v i d = 3 v kch th c c a s l n nh t l 2000

217

Trong hnh 12.18 chng ta th y ti n trnh c a kch c c a s ngh n c a TCP chu n v i kch c l n nh t c a c a s l 3 trong tr ng h p 9 nt m ng. Chng ta bi t r ng m t kch c l n nh t gi a 2 v 3 s th t s mang n hi u su t t i u (v i u ny c xc minh l n n a hnh 12.13). Chng ta th y trong hnh 12.18 r ng h u nh khng c s m t y l 3). mt gi tin. l kch c c a s th c t l nh nh t gi a c a s ngh n ( c miu t trong hnh) v kch c l n nh t c a c a s (gi tr c a n

Trong cc hnh tr c , t t c cc phin b n s d ng tr ACK u c kho ng th i gian m c nh l 100ms (nh gi i thch trong ph n gi i thi u). Ti p theo, chng ta thay i di c a kho ng th i gian v ki m tra s tc ng c a n v i s l ng gi tin, xem hnh 12.19. Chng ta xem xt phin b n tr ACK v i d = 3. Chng ta th y r ng gi tr m c nh th c hi n kh t t, m c d v i cc c a s c kch th c l n nh t nh , kho ng th i gian nh th c hi n t t hn m t cht, trong khi v i c a s c kch th c l n nh t l n, m t kho ng th i gian l n (130ms) s t t hn. Chng ta c g ng tng kho ng th i gian trn 130ms nhng sau s gi tin gi m xu ng. Cu i cng, chng ta xem xt tr ng h p n = 3 nt m ng. Trong tr ng h p ny hi n t ng d u i m cu i khng cn x y ra n a, v th chng ta khng th y vi c m t mt gi tin TCP no c , cho d v i b t c kch c c a s no. Th m ch sau , tr ACK c th c s d ng tng ng k hi u su t. Vi c ny c ch ng minh trong b ng 12.3 v mang t i s l ng gi tin TCP c nh n thnh cng trong 149 giy v i n = 3. S c i ti n lm tng t 10% n 15% khi d tng t 2 ln 4, khng ph thu c vo kch c l n nh t c a c a s (ch c n n l n hn d).

Hnh 12.18: Ti n trnh c a kch th c c a s cho TCP chu n v i 9 nt m ng v kch th c c a s l n nh t l 3

Hnh 12.19: Tc ng c a kho ng th i gian tr ACK t i s gi tin TCP g i c, nh l m t ch c nng c a kch th c c a s l n nh t. d=3

Tuy nhin v i d = 4 nh mong i, chng ta c th th t r ng chng ta nh n c m t hi u su t t i v i kch c l n nh t c a c a s l 3, b i v ch lun ph i ch i cho n khi kho ng th i gian 100ms c a ty ch n tr ACK h t g i m t gi tin ACK (v cc c a s

218

B ng 12.3: S l ng gi tin g i c trong kho ng th i gian 149 giy v i n=3 nh m t ch c nng c a kch th c c a s l n nh t
ch cho php g i 3 gi d li u).

12.6.4. Thay i cho NS v i tr ng h p n > 2

219

Chng 13 Hng i c i n
M cl c
13.1. M ph ng hng i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.2. Hng i h u h n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 223

Ng i d ch: L Th Nga Bin t p: Nguy n Anh Tn B n g c: NS Simulator for beginners, Chapter 10 [2]

Ns2 c th c s d ng m ph ng cc m hnh hng i c i n. Trong cc m hnh c i n n gi n nh t, th i gian n gi a cc gi l ng u nhin v phn b xc su t chung no , v th i gian truy n m t gi l cng l ng u nhin theo cc phn b khc no . Th c t th i gian truy n d n thay i c th ph n nh s khng i c a t c truy n nhng nhng c s bi n i kch th c gi.

13.1. M ph ng hng i
V d hng i n gi n nh t cho phn tch ton h c l hng i M/M/1: l kho ng th i gian gi a hai l n n phn b theo hm m ph thu c tham s v l t ng th i gian truy n c a m t gi cng c phn b m v i cc tham s khc. M t gi c th c truy n i t i m t th i i m v kch th c b m l v h n. N u nh chng ta ch r = /,

220

th i gian trung bnh c a gi trong h th ng l: E [Q] = 1 (13.1)

B ng 13.1 gi i thi u m ph ng c a hng i ny. M ph ng ny t o ra file out.tr v i t t c cc s ki n, and also a monitor-queue trace called qm.out, v cng t o ra m t file truy v t dung gim st hang i g i l qm.out,nh c c p m c 7.3. B ng cch v c t 5 (cc gi trong kch c hng i) d a vo c t 1 (th i gian) B ng cch v th c t 5 theo c t 1, chng ta nh n c s m r ng chi u di hng i (xem hnh 13.1). Kch c hng i c m ph ng trung bnh trn 1000sec l 9.69117, gi tr x p x c a 10 theo 13.1 . Ch r ng chng ta s d ng cch n gi n hn trnh by v v n d ng cc bi n ng u nhin so v i cch c th hi n m c 2.7: chng ta khng trnh by generators v seeds.

set ns [new Simulator] set tf [open out.tr w] $ns trace-all $tf set lambda 30.0 set mu 33.0 set n1 [$ns node] set n2 [$ns node] # kch th c cc gi c lm trn thnh s # bng thng l n nguyn (bytes), # chng ta ph i c kch th c cc gi l n hn v l i do lm trn nh , set link [$ns simplex-link $n1 $n2 100kb 0ms DropTail] $ns queue-limit $n1 $n2 10000 # thi t l p kch th c gi v th i gian n gi a cc gi ng u nhin set InterArrivalTime [new RandomVariable/Exponential] $InterArrivalTime set avg_ [expr 1/$lambda] set pktSize [new RandomVariable/Exponential] $pktSize set avg_ [expr 100000.0/(8*$mu)] set src [new Agent/UDP] $ns attach-agent $n1 $src # qu n l hng i set qmon [$ns monitor-queue $n1 $n2 [open qm.out w] 0.1] $link queue-sample-timeout proc finish {} { global ns tf

221

$ns flush-trace close $tf exit 0 } proc sendpacket {} { global ns src InterArrivalTime pktSize set time [$ns now] $ns at [expr $time + [$InterArrivalTime value]] sendpacket set bytes [expr round ([$pktSize value])] $src send $bytes } set sink [new Agent/Null] $ns attach-agent $n2 $sink $ns connect $src $sink $ns at 0.0001 sendpacket $ns at 1000.0 finish $ns run

B ng 13.1: K ch b n tcl mm1.tcl m ph ng hng i MM1


Kh h p d n khi phn tch k t qu m ph ng v c g ng tm l do h p l cho s khc bi t. Chng ta c th tm c vi l do cho the simulations impressisions (v s d ng cc k t lu n c i thi n m ph ng). Cng th c 13.1 tnh ton ton b m t gi ang c truy n, trong khi s m ph ng ch tnh t i ph n cn l i c a gi d li u c truy n m v n cn n m trong hang i. S khc bi t ny c th t o nn k t qu m ph ng th p hn k t qu chnh xc kho ng 0,5 gi. *Cch khc, cc gi m ph ng c rt ng n t i gi tr 1KB, gi tr kch c m c nh c a m t gi UDP. Nh v y th i gian truy n nh hn so v i nh c a chng ta. s a l i, c th thay i gi tr c c i m c nh c a gi, v d nh 100000, b ng cch thm dng l nh: $src set packetSize_ 100000 sau l nh: src [new Agent/UDP] Th i gian m ph ng trn khng di. V i th i gian 20000, ta nh n c gi tr chnh xc hn.

222

Hng i M/D/1 c th i gian n phn b m nhng th i gian truy n cc gi l khng i. m ph ng, n gi n thay th bi n ng u nhin pktSize b ng gi tr trung bnh c a bi n. Cng nh th , hng i D/M/1 c th i gian truy n phn b m v th i gian gi a hai gi n l khng i. m ph ng, chng ta c th thay th bi n ng u nhin InterarrivalTime b i gi tr trung bnh.

Hnh 13.1: S m r ng kch c c a hng i M/M/1


Hng i M/D/1 c th i gian n phn b m nhng th i gian truy n cc gi l khng i. m ph ng, n gi n thay th bi n ng u nhin pktSize b ng gi tr trung bnh c a bi n. Cng nh th , hng i D/M/1 c th i gian truy n phn b m v th i gian gi a hai gi n l khng i. m ph ng, chng ta c th thay th bi n ng u nhin InterarrivalTime b i gi tr trung bnh.

13.2. Hng i h u h n
Trong m ph ng su t m t gi l: P (loss) = K
k i i=0

trn, ta s d ng b m r t l n trnh m t gi d li u. C th

s d ng cc b m nh hn v quan st m t mt. V i hng i M/M/1 v K b m, xc

Cch n gi n tnh ton xc su t m t gi t m ph ng l chia t ng s gi b m t cho t ng s gi n, hai gi tr ny nh n c dng cu i cng c a file gim st hng i.

set ns [new Simulator]

223

set tf [open out.tr w] $ns trace-all $tf set lambda 30.0 set mu 33.0 set qsize 2 set duration 2000 set n1 [$ns node] set n2 [$ns node] set link [$ns simplex-link $n1 $n2 100kb 0ms DropTail] $ns queue-limit $n1 $n2 $qsize # thi t l p kch th c gi v th i gian n gi a cc gi ng u nhin set InterArrivalTime [new RandomVariable/Exponential] $InterArrivalTime set avg_ [expr 1/$lambda] set pktSize [new RandomVariable/Exponential] $pktSize set avg_ [expr 100000.0/(8*$mu)] set src [new Agent/UDP] $ns attach-agent $n1 $src # qu n l hng i set qmon [$ns monitor-queue $n1 $n2 [open qm.out w] 0.1] $link queue-sample-timeout proc finish {} { global ns tf $ns flush-trace close $tf exit 0 } proc sendpacket {} { global ns src InterArrivalTime pktSize set time [$ns now] $ns at [expr $time + [$InterArrivalTime value]] sendpacket set bytes [expr round ([$pktSize value])] $src send $bytes } set sink [new Agent/Null] $ns attach-agent $n2 $sink $ns connect $src $sink $ns at 0.0001 sendpacket $ns at 1000.0 finish

224

$ns run

B ng 13.2: K ch b n tcl mm1k.tcl m ph ng hng i MM1.


Thm l nh $src set packetSize_100000 nh c c p gian m ph ng 2000 giy v P (loss) = 0.3025 m c tr c, ta c c

s ph h p gi a m ph ng v cng th c. V d , v i K = 2, ta c P (loss) = 0.298 v i th i cng th c trn. V i K = 5, ta thu c k t b ng 12.2 Ch : v i K = 1, m qu tng ng l 0.131 v 0.128. Cc l nh c th hi n

ph ng khng th c hi n t t; trong tr ng h p ny t t c cc gi n u b m t

225

Chng 14 M ng v tinh trong NS


M cl c

14.1. T ng quan v cc m hnh v tinh . . . . . . . . . . . . . . . .

te lec om
d ng cc tnh nng m r ng cho v tinh. . . . . . .

227 228 228 230 230 233 235 237 239 240 240 240 241 242 243 243 244 245 247

14.1.1. V tinh a tnh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14.1.2. Cc v tinh LEO (Cc v tinh qu o th p) . . . . . . . . . . 14.2. S

14.2.1. Nt m ng v v tr c a nt m ng. . . . . . . . . . . . . . . . . . . . . . 14.2.2. ng truy n v tinh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.2.3. Chuy n giao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14.2.4. nh tuy n. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.2.5. H tr bm v t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.2.6. Cc m hnh l i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.2.7. Cc l a ch n c u hnh khc . . . . . . . . . . . . . . . . . . . . . . . . . . .

vn

14.2.8. M ph ng h tr NAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.2.9. Tch h p v i m h u tuy n v v tuy n . . . . . . . . . . . . . . . 14.2.10. Cc t p l nh v d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14.3. Th c hi n ph n m r ng m ph ng v tinh . . . . . . 14.3.1. S d ng cc danh sch lin k t . . . . . . . . . . . . . . . . . . . . . . . . 14.3.2. C u trc nt m ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.3.3. Cc chi ti t v ng truy n v tinh. . . . . . . . . . . . . . . . . . . 14.4. Commands at a glance . . . . . . . . . . . . . . . . . . . . . . . . . . .

226

Ng i d ch: Trng Th Hi n Bin t p: Nguy n Nam Hong B n g c: The ns Manual, Chapter 3 [1]

Chng ny t p trung m t cc tnh nng m r ng d dng m ph ng m ng v tinh trong ns. C th , cc tnh nng m r ng ny cho php ns c th m hnh ha cc ph n sau: Cc v tinh a tnh lo i chuy n ti p (bent-pipe) truy n th ng v i a ng i dng trn cc tuy n ln v tuy n xu ng v cc tuy n khng i x ng. Cc v tinh a tnh v i cc kh i x l tn hi u trn v tinh (processing payload) g m hai lo i: ho c l kh i x l lo i khi ph c tn hi u (regenerative payload) ho c l kh i x l chuy n m ch gi hon ton (full packet switching) Cc chm v tinh LEO qu o c c nh Iridium ho c Teledesic. Nh ng m hnh v tinh ny ph n l n c nh m n vi c s d ng ns cho nghin c u v cc kha c nh c a h th ng v tinh, nh l cc giao th c MAC, l p lin k t d li u, giao th c nh tuy n, v giao th c giao v n.

14.1. T ng quan v cc m hnh v tinh


Mu n m ph ng m ng v tinh m t cch chnh xc i h i ph i li t k y b n ch t c a t n s sng mang RF( nh nhi u, hi u ng fading ), cc tng tc l n nhau c a giao th c (nh s tng tc gi a cc l i c m th ng d trn ng truy n v m ki m tra l i), tc ng th c p c a qu o (s ti n ng- precession, s b t th ng c a l c h p d n . . . ).Tuy nhin, nghin c u cc c i m c s m ng v tinh qua cc kha c nh v k t n i m ng, cc c tnh nh t nh c th n gi n ha i. V d nh, hi u nng c a giao th c TCP qua ng truy n v tinh b thay i i cht qua vi c s d ng m t php g n ng sov i vi c dng m hnh knh chi ti t - d n n hi u nng c th c m t d a vo ton b xc xu t m t gi tin. y l cch ti p c n d n n ki u m ph ng ny: l t o ra m t framework nghin c u s giao v n, nh tuy n, v MAC trong mi tr ng v tinh bao g m c v tinh a tnh l n chm sao v tinh LEO (qu o th p) qu o c c. D nhin l ng i dng c th d a vo cc m hnh m r ng ny thay i cc ch c nng t i m t l p no .

227

14.1.1. V tinh a tnh


Qu o v tinh a tnh c a tri t n m trn ng xch o cch kh ang 36000 km so v i m t n c bi n. Trn th c t , v tinh a tnh c th b tri i so v i v tr thi t k ban u b i s thay i c a tr ng h p d n- nh ng tc ng ny b b qua trong m ph ng h th ng ns. C hai m hnh v tinh a tnh c a ra: M hnh v tinh a tnh chuy n ti p bent-pipe truy n th ng n n thu n ch l cc b l p l i trn qu o- t t c cc gi tin nh n c b i v tinh lo i ny trn knh tuy n ln c truy n d c theo t n s sng mang RF n cc ng tuy n xu ng tng ng (do v y n g i l truy n theo ng ng). Nh ng v tinh m i hn s tng hi u qu x l bng c s , c v ph c h i tn hi u s l n th c hi n vi c chuy n m ch gi nhanh tch h p trn tu khng gian. Trong chng trnh m ph ng, cc v tinh ny c th c m hnh ha nh l nt m ng ns thng th ng v i cc kh i ch c nng th c hi n phn lo i v nh tuy n. Tr c y, ng i dng c th m ph ng ng truy n v tinh a tnh b ng cch m ph ng n gi n m t ng truy n tr di dng ng truy n v nt m ng ns thng th ng. S nng c p chnh trong ph n m r ng so v i cc v tinh a tnh l giao th c MAC. Ng i dng c th thi t l p nhi u thi t b u cu i tnh nng m ph ng cc v tr khc nhau

trn b m t tri t v k t n i chng n ng truy n knh tuy n ln v tuy n xu ng c a cng m t v tinh. Tr truy n sng trong h th ng (c s khc nhau cht t v i m i ng i dng) s c m hnh ha m t cch chnh xc. Thm vo , knh tuy n ln v knh tuy n xu ng cng c th c nh ngha khc nhau ( c th l cc ki u m hnh l i khc nhau) bng thng khc nhau ho c

14.1.2. Cc v tinh LEO (Cc v tinh qu o th p)


Hnh minh h a ny c t o ra t gi ph n m m Savi t i trung tm nghin c u v tinh c a i h c Minnesota

Cc h th ng v tinh qu o c c, ch ng h n nh h th ng Iridium v h th ng Teledesic v a c xu t c th c m hnh ha trong ns. Ngoi ra cng c cc c u hnh cho cc chm sao v tinh phi a tnh khc (v d nh chm sao Walker). Ng i dng c th pht tri n cc l p dnh cho lo i chm sao m i . Cc tham s c a cc chm sao v tinh c th m ph ng c g m c: Cc thng s c b n c a chm sao: bao g m cao c a v tinh, s l ng v

tinh, s m t ph ng qu o v s v tinh trn m i m t ph ng qu o.

228

Hnh 14.1: V d c a m t chm sao LEO qu o c c


Qu o: nghing c a qu o c th bi n i gi tr lin t c trong kho ng t 00 n 1800 (gc nghing l n hn 900 tng ng v i qu o ng c c a hnh tinh). l ch tm qu o th ng khng c tnh n. S ti n ng nt cng v y. Kho ng cch gi a cc v tinh trong cng m t m t ph ng qu o c gi c nh. S ng b tng i gi a cc m t ph ng qu o cng c gi nguyn (m c d l nhi u h th ng c th khng i u khi n s ng b gi a cc m t ph ng qu o). ng truy n gi a cc v tinh (ISL): i v i cc chm sao qu o c c, cc ISLs trong cng m t ph ng (intraplane ISL), gi a hai m t ph ng cng chi u ln c n (interplane ISL) v gi a hai n a m t ph ng ng c chi u (crossseam ISLs) u c th nh r. Intraplane ISLs t n t i gi a cc v tinh trong cng m t ph ng v s khng bao gi ng ng ho t ng ho c chuy n giao. Interplane ISLs th t n t i gi a cc v tinh ln c n v i nhau xoay quanh m t ph ng. Nh ng ng k t n i nh th khng c kch ho t g n cc i m c c ( trn ng ng v ISLs nh trong b ng) b i v c c u v tr nten khng th bm theo nh ng ng truy n ny trong vng c c. Gi ng nh intraplane ISLs, interplane ISLs cng khng bao gi chuy n giao. Cn Crossseam ISLs th c th t n t i trong m t chm sao gi a cc v tinh trong m t ph ng c h ng i l p (ni cc m t ph ng t o nn ci g i l ng phn gi i trong cc topo m ng). ng truy n v tinh GEO cng c th c nh r cho chm sao c a v tinh a tnh.

229

Iridium cao so v i m t n c bi n S m t ph ng qu o S v tinh trn m i m t ph ng d c (inclination)(deg) Kho ng cch gi a hai m t ph ng (deg) Chia ng phn gi i(seam)(deg) Ng ng gc ng ng (deg) ng b cng m t ph ng ng b khc m t ph ng ISLs trn m i v tinh Bng thng c a ISL Bng thng tuy n ln xu ng ISLs gi a hai m t ph ng ng c chi u Ng c v ISL (deg)
Cc ng truy n t

Teleesic 1375km 12 24 84.7 15 15 4 C Khng 8 15Mb/s 1.5Mb/s C 60

780km 6 11 86.4 31.6 22 8.2 C C 4 25Mb/s 1.5Mb/s Khng 60

tri t n v tinh (GSL): nhi u thi t b u cu i c

th c k t n i n m t knh v tinh GSL. ng truy n GSL cho v tinh GEO l khng i, trong khi ng truy n GSL cho knh LEO th nh k chuy n giao nh m t sau.

Ng ng gc ng ng thu tn hi u (elevation mask): Gc ng ng m m i ng truy n GSL c th ho t ng. Hi n nay, n u v tinh LEO ang ph c v m t thi t b u cu i m ri kh i ng ng goc ng ng ny, thi t b u cu i s tm ki m m t v tinh khc m ang n m pha trn ng ng gc ng ng. Cc thi t b u cu i v tinh xc nh th i c chuy n giao theo cc kho ng th i gian tr c trng b i m i ng i dng. M i thi t b u cu i kh i t o chuy n giao khng ng b . Cng c th nh r m t h th ng trong m i l n chuy n giao x y ra m t cch ng b trong h th ng. B ng d i y li t k cc thng s s d ng m ph ng cho h th ng Iridium v Teledesic

14.2. S d ng cc tnh nng m r ng cho v tinh


14.2.1. Nt m ng v v tr c a nt m ng
Cc nt m ng v tinh c hai lo i c b n : nt m ng c a v tinh a tnh ho c nt m ng c a cc v tinh khng ph i l a tnh. Thm vo , cc nt thu c thi t b u cu i c

230

th t trn b m t tri t. C 3 lo i nt m ng khc nhau c b sung v i cng l p i t ng Sat Node nhng v i cc l p i tng khc nhau dnh v tr, qu n l chuy n giao v knh truy n. L p i t ng v tr (position objects) theo di v tr c a v trinh trn h quy chi u nh l m t hm th i gian m ph ng x y ra. Thng tin v tr ny c dng quy t nh tr truy n k t n i v x p x th i gian cho chuy n giao k t n i.

Hnh 14.2: H th ng t a hnh c u dng cc nt m ng v tinh


Hnh 14.2 minh h a m t h th ng t a hnh c u, v h th ng t a -cc tng ng. H th ng t a coi tri t l trung tm, v tr c z trng kt v i gc quay c a tr c tri t. (R, , ) = 6378km, 90o , 0o tng ng v i kinh 0 ( kinh tuy n g c) trn ng xch o. c bi t, c m t l p c a nt v tinh l Class Node/SatNode, l m t trong 3 lo i i t ng Position c th g n vo. M i i t ng SatNode v Position l i t ng do OTcl/C++ phn ra ring bi t, nhng h u h t m chng trnh n m trong C++. C cc lo i i t ng Position sau: Position/Sat/Term: M i thi t b u cu i c xc nh b ng t a kinh v v c a n. Mi n v t [-90; 90] v mi n kinh t [-180; 180], v i gi tr m tng ng cho h ng Nam v h ng Ty. Khi th i gian m ph ng tng, thi t b u cu i di chuy n trn b m t Tri t. B t o nt c th s d ng t o ra m t thi t b u cu i v i i t ng v tr c g n vo nh sau:

231

$ns node-config -satNodeType terminal n \ (Cc nt khc c th set n1 [$ns node] $n1 set-position $lat $lon; # tnh theo th p phn thi t l p c u hnh y)

Position/Sat/Geo: M t v tinh a tnh GEO cng c thng s c trng l v tr kinh trn xch o. Khi th i gian m ph ng tng, v tinh a tnh di chuy n qua h th ng t a v i chu k qu o gi ng nh chu k quay c a tri t. Kinh thay i t [-180; 180] . C hai lo i nt v tinh a tnh quen thu c, l GEO (cho v tinh c x l tn hi u) v "b l p geo" (cho v tinh chuy n ti p). B t o nt c th dng t o ra v tinh a tnh v i i t ng v tr g n vo nh sau: ns node-config -satNodeType geo (or geo-repeater) n (other node config commands go here...) set n1 [$ns node] $n1 set-position $lon; # in decimal degrees Position/Sat/Polar V tinh qu o c c c qu o trn theo m t ph ng qu o c nh trong h th ng t a . Tri t quay pha d i c a m t ph ng qu o ny, v v y vng ph song (footprint) c a v tinh trn b m t tri t s theo cc h ng ng - ty v b c - nam. C th hn, lo i i t ng v tr c c ny c th s d ng m hnh s chuy n ng c a b t k m t qu o trn no trong m t m t ph ng c nh. Chng ta dng thu t ng c c y b i v sau ny chng ta dng cc v tinh m hnh chm sao v tinh qu o c c. Qu o v tinh c c trng b i 6 tham s : cao so v i m t n c bi n, tr c chnh, l ch tm, gc ln ng c a i m ln (right ascension of ascending Node), d c v th i gian c n i m tri t nh t. V tinh qu o c c trong ns ch y u c qu o trn, v v y chng ta n gi n ho tnh ch t c a qu o ch cn 3 tham s : l cao so v i m t n c bi n, d c v kinh , v i tham s th t alpha c trng cho v tr ban u c a v tinh trn qu o, nh miu t d i y. cao so v i m t n c bi n tnh b ng km. d c n m trong kho ng [0; 180] , v i 90 tng ng l qu o thu n v gc l n hn 90 tng ng v i qu o ng c. i m ln (ascending node) tng ng v i v tr c a v tinh m footprint c a v tinh ngang qua xch o khi ang di chuy n t nam sang b c. Trong chng trnh m ph ng ny, kinh c a i m ln l kinh trn tri t, t i i m y (nadir point) c a v tinh i qua ng xch o khi di chuy n t nam t i b c 1 . Kinh c a i m ln n m trong kho ng [-180; 180] .
1

...

232

Tham s th t, alpha, xc nh v tr ban u c a v tinh d c theo qu o, b t u t i m ln. V d , gi tr alpha 180 ch ra r ng v tinh ang ph trn ng xch o, di chuy n t b c n nam. Alpha c gi tr t [0; 360] . Cu i cng, thng s th 5, m t ph ng, c nh ngha khi t o ra nt v tinh c c. T t c cc v tinh trong cng m t m t ph ng c a vo cng m t ch m c m t ph ng. B t o nt mang c dng t o ra m t v tinh c c v i i t ng v tr g n vo nh sau: $ns node-config -satNodeType polar n (cu l nh c u hnh nt m ng khc set n1 [$ns node] $n1 set-position $alt $inc $lon $alpha $plane y )

14.2.2. ng truy n v tinh


M i nt v tinh c m t ho c nhi u kh i giao di n m ng v tinh, m m i knh s k t n i n i t ng c a l p v t l trong kh i . Hnh 14.3 minh h a cc thnh ph n chnh ny. ng truy n v tinh khc ng truy n v tuy n ns hai kha c nh chnh:

Giao di n truy n v nh n tn hi u ph i c k t n i n cc knh khc nhau. Khng c ch c nng ARP( giao th c phn gi i a ch ). M hnh truy n sng radio l m t m hnh cho ng i dng thm cc m hnh l i chi ti t n u c. Cc m l nh hi n t i khng dng m hnh truy n sng. Giao di n m ng c th thm vo theo cu l nh sau c a Class Node/SatNode:: $node add-interface $type $ll $qtype $qlim $mac $mac_bw $phy Cu l nh add-interface tr l i k t qu c a gi tr ch m c m c th c dng truy c p vo kh i giao di n m ng sau ny trong qu trnh m ph ng. Theo quy c, giao di n u tin c t o ra trn m t nt m ng s g n vo knh truy n tuy n ln ho c tuy n xu ng c a v tinh ho c thi t b u cu i. Tham s sau ph i c a vo: type: Ch ra lo i knh truy n, c cc lo i sau: geo ho c polar dng cho cc ng truy n t m t thi t b u cu i n GEO ho c n v tinh c c tng ng, gsl ho c gsl-repeater dng cho ng truy n t v tinh n m t thi t b u cu i, intraplane, interplane v crossseam ISLs. Tr ng type ny c dng bn trongchuwowng trnh m ph ng xc nh r cc lo i ng truy n khc nhau, nhng v m t c u trc th chng cng tng ng nhau. ll: Lo i l p ng truy n (ch c duy nh t m t l p LL/Sat).

233

Hnh 14.3: Cc thnh ph n chnh c a giao di n m ng v tinh


qtype: Lo i hng i (v d l p Queue/DropTail). B t k lo i hng i no cng c th s d ng, tuy nhin n u cc tham s thm vo l n hn di c a hng i yu c u th sau instproc c th c n c s a i bao g m nhi u i s (agruments) hn n a. qlim: di c a hng i giao di n, tnh theo s gi d li u. mac: Lo i giao th c MAC. Hi n t i, c hai lo i c nh ngha: l p Mac/Sat cho ng truy n ch c m t my thu (t c l gi thuy t khng c xung t x y ra) v l p Mac/Sat/UnslottedAloha- s tri n khai phng php ALOHA khng phn khe . mac_bw: Bng thng c a ng truy n c t b i tham s ny, n i u khi n th i gian truy n d n: Giao th c MAC g i i nhanh nh th no. Kch c gi d li u s d ng tnh ton th i gian truy n l t ng gi tr c a hm size() trong ph n mo u gi d li u chung v LINK_HDRSIZE l ch kch c c a b t k ph n mo u c a l p lin k t d li u no. Gi tr m c nh cho LINK_HDRSIZE l 16 bytes( gi tr m c nh trong th vi n satlink.h). Th i gian truy n c m ha vo ph n mo u gi

234

d li u dng cho giao th c MAC nh n ( m ph ng i c gi d li u n). phy: L p v t l- hi n t i ch c hai l p v t l (l p Phy/Sat v l p Phy/Repeater) c nh ngha. L p Phy/Sat chuy n thng tin ln v xu ng cc kh i- nh m ha trong m ng khng dy miu t chng tr c, m hnh truy n d n radio c g n vo i m ny. L p Phy/Repeater truy n cc gi d li u nh n c theo ki u ng ng trn giao di n nh n truy n th ng t i giao di n truy n. M t ISL c th thm vo gi a hai nt m ng dng cu l nh sau: $ns add-isl $ltype $node1 $node2 $bw $qtype $qlim Cu l nh ny t o ra hai knh (lo i Channel/Sat), v giao di n m ng thch h p c hai

nt m ng, v g n cc knh truy n vo giao di n m ng. Bng thng c a ng truy n c t l bw. L ai ng truy n (ltype) ph i c thi t l p l lo i intraplane, interplane, ho c crossseam. M t GSL bao g m vi c them vo cc giao di n m ng v m t knh truy n trn v tinh ( i u ny thng th ng c hon thnh dng phng php ph ngoi c m t sau), v sau nh ngha giao di n ph h p trn nt truy n v tinh, nh sau: $node add-gsl $type $ll $qtype $qlim $mac $bw_up $phy n [$node_satellite set downlink_] [$node_satellite set uplink_] y, tham s type ph i l geo ho c polar, v chng ta th ng dng bi n downlink_ v uplink_ c a v tinh, do , ng truy n tuy n ln v tuy n xu ng c a v tinh ph i c t o ra tr c khi g i cu l nh ny. M c nh r ng b t o nt i v i cc nt m ng v tinh ( m t ph n 5.3 cu n The ns Manual-The VINT Project ) s t o ra cc lo i nt m ng theo lo i v tinh GEO hay polar , giao di n ng truy n tuy n ln tuy n xu ng c a chng, t o ra v g n vo knh ng truy n, d a trn vi c l a ch n giao di n c quy nh. o n m t t v g n chng vo ng

14.2.3. Chuy n giao


M hnh ha s chuy n giao v tinh l thnh ph n ch ch t c a m ph ng m ng v tinh LEO. R t kh d on chnh xc chuy n giao di n ra nh th no trong m t h th ng LEO th c b i v v n ny cha c quan tm k trong cc ti li u hi n c. Trong nh ng ch c nng m r ng c a v tinh, chng ta thi t l p cc tiu ch nh t nh cho vi c chuy n giao v cho php cc nt m ng i u khi n tr ng thi i h i chuy n giao m t cch c l p. M t cch th c khc c th th c hi n l cc s ki n chuy n giao c ng b trong su t

235

qu trnh m ph ng - khng kh thay i chng trnh m ph ng ho t ng theo cch nh v y. Khng c chuy n giao knh truy n no lin quan n v tinh a tnh. Nhng c hai lo i knh truy n n v tinh qu o c c c n c chuy n giao: knh truy n GSLs trong v tinh qu o c c v cc knh truy n crossbeam ISLs. Cc knh interplance khng chuy n giao nhng chng khng ho t ng cc v cao nh chng ta miu t d i y.

M i thi t b u cu i k t n i n v tinh qu o c c kh i ng b nh th i, n u qu th i h n s d n n Qu n l CHuy n giao (HandoffManager) ki m tra v tinh ny c n m trong vng ho t ng c a thi t b u cu i hay khng. Khi th qu n l chuy n giao s tch thi t b u cu i t ng truy n c a v tinh, v tm ki m d c theo ng truy n s tr m v tinh cho cc v tinh khc c th . u tin, v tinh "ti p theo trong m t ph ng qu o hi n t i c ki m tra, v tr n v tinh ny s c lu trong i t ng Position c a m i tr m v tinh c c, v c t thng s trong su t c u hnh m ph ng dng Node/SatNode cu l ch: "$node set_next $next_node. N u v tinh ti p theo khng ph h p, qu n l chuy n giao s tm ki m cc v tinh cn l i. N u tm th y m t v tinh c c thch h p th n s k t n i giao di n m ng c a n n knh truy n tuy n ln v tuy n xu ng c a v tinh, v b t u b m th i gian chuy n giao. N u khng tm th y v tinh no, n b t u b m gi v l i th l i sau . N u b t k s thay i ng k t n i no di n ra th b ph n nh tuy n s nh n c thng bo. Vng h at ng v b m kho ng th i gian chuy n giao c t thng s qua OTcl: HandoffManager/Term set elevation_mask_ 10; # theo HandoffManager/Term set term_handoff_int_ 10; # theo giy Thm vo , chuy n giao c th c th c hi n m t cch ng u nhin trnh nhi u pha b ng cch t gi tr bi n sau: HandoffManager set handoff_randomization_ 0; # 0 l false, 1 l true N u bi n handoff_randomization l true, th kho ng th i gian chuy n giao ti p theo l m t bi n ng u nhin c ch n t phn b u trong d i (0:5*_term_handoff_int_, 1.5*term_handoff_int_). Crossseam ISLs l lo i ISLs duy nh t c th c hi n chuy n giao. Tiu chu n cho chuy n giao Crossseam ISLs c t n t i m t v tnh trong m t ph ng g n khng v v tinh v tinh c c quy t nh khi no th ny g n v i v tinh cho hn m t ph ng m n ang c n i t i. M t l n n a, m t b nh th i chuy n giao ch y trong b qu n l chuy n giao chm sao v tinh c duy t cho cc c h i chuy n giao. Cc chuy n giao ki u Crossseam ISL c kh i u b i cc v tinh trong m t ph ng c s th t th p hn 2. Do , c kh

236

nng sinh ra m t i u ki n t m th i m m t v tinh c c c 2 crossseam ISLs trong (t i cc v tnh khc nhau). Kho ng th i gian gi a hai l n chuy n giao v tinh c th c t l i t OTcl v cng c th c ng u nhin ha. HandoffManager/Sat set sat_handoff_int_ 10; # theo giy Interplane v crossseam ISLs khng ho t ng khi v tinh ng t nh ng ng k t n i ny c gim st b tham s sau: HandoffManager/Sat set latitude_threshold_ 70; # theo Gi tr c a tham s ny trong v d m t ch l d on, gi tr chnh xc l c l p nh vo ph n c ng c a v tinh. Kh i qu n l chuy n giao ki m tra v v quan st th i gian tr chuy n giao v tinh c a n, n u m t ho c c cc v tinh khc n m trn v latitude_threshold_ tnh b ng ( pha b c ho c pha nam) th ng truy n khng ho t ng cho n khi cc v tinh u n m d i ng ng ny. Cu i cng, n u crossseam ISLs t n t i, s x y ra tnh hu ng ch c ch n m trong cc v tinh ko n m t v tinh khc qu g n ch ng l n ln nhau v i tham s sau: HandoffManager/Sat set longitude_threshold_ 10; # theo M t l n n a kh ng nh l i, gi tr cho tham s trong v d ny ch l suy on, n u c hai v tinh g n kinh nhau hn ng ng kinh cho tr c longitude_threshold_ th ng truy n gi a chng b ng t. Tham s ny khng th t m c nh ( t l 0), t t c cc m c nh cho cc bi n thay i lin quan gi a cc v tinh c th tm th y trong th m c ~ns/tcl/lib/ns-sat.tcl. chnh gi a v , ( n u qu o khng g n v i qu o c c ban u). Chng ta ki m tra hi n t ng x y ra cho qu o c a hai v tinh b g n i m c c, b i v yu

c u v tr cho ng truy n r t kh t khe b i v v tinh di chuy n l i n v tinh khc. Vi c

14.2.4. nh tuy n
nh tuy n trong m ng v tinh tng t v i nh tuy n trong ns2 c ngo i tr vi c n c th c hi n hon ton b ng C++. V i m i s thay i c a topo m ng, m t ph n t nh tuy n trung tm s xc nh tp m ng ton c c, s tnh ton cc tuy n m i cho m i nt m ng v s d ng cc tuy n ny d ng ln m t b ng chuy n ti p (forwarding table) cho m i nt m ng. Hi n nay, b ng chuy n ti p ny c duy tr b i m t ph n t nh tuy n trn m i nt m ng, v cc gi d li u khng g i n ph n t no trn nt m ng th s c g i m c nh n ph n t nh tuy n. ch nh n tin c m t ng i, b ng nh h ng ch a i m u ng truy n i tng ng. Ng i dng c c nh bo r ng lo i nh tuy n trung tm ny c th d n n vi ph m quan h nhn qu .

237

nh tuy n c trong l p SatRouteObject v c t o ra v thi hnh b ng cu l nh OTcl sau: set satrouteobject_ [new SatRouteObject] $satrouteobject_ compute_routes trong cu c g i n compute_routes c bi u di n sau t t c cc k t n i v nt m ng trong m ph ng c minh h a. Gi ng nh Scheduler, c m t tr ng h p c a SatRouteObject trong m ph ng, v n c ch p nh n b i m t bi n trung gian v d trong C++. Xt v d , cu c g i tnh l i ng i sau m t topo thay i l: SatRouteObject::instance().recompute(); Thay v s d ng nh tuy n trung tm hi n nay th thi t k c a ph n t nh tuy n trn m i nt m ng c th c hi n v i cch th c nh tuy n phn b . Cc gi d li u dng cho nh tuy n c th g i n c ng 255 c a m i nt m ng. Cha kha nh tuy n phn b lm vi c chnh xc l cho ph n t nh tuy n c quy n quy t nh ng truy n gi d li u n. i u ny c th c thi b i l p i t ng NetworkInterface trong m i lin k t, m ch c cc nhn ng truy n trn m i gi n. Hm tr gip NsObject*intf_to_target (int label) c th s d ng tr l i k t qu ph n u c a ng truy n tng ng v i m i nhn ang c. Vi c s d ng cc ph n t nh tuy n tng ng v i cc ph n m r ng c a phng th c di ng. Vi c tnh ng i nh tuy n ng n nh t dng tr truy n hi n nay nh l m t tham s nh tuy n. C th tnh ton cc tuy n b ng cch s d ng vi c m cc k t n i trn tuy n (hop count) v khng s d ng tr truy n d n. th c hi n i u ny, ta ph i t bi n m c nh sau y l false: SatRouteObject set metric_delay_ "true" V i topo m ng l n nh v d Teledesic trn th m nh tuy n trung tm s lm ch m

th i gian x l b i v n th c thi thu t ton tm ng ng n nh t trn t t c cc c p m i topo thay i th m ch c cc topo khng c d li u truy n. tng t c m ph ng khi khng c nhi u d li u truy n nhng c nhi u v tinh v ISLs, c th s d ng tnh ton tuy n theo s xu t hi n c a d li u (data driven) ch khng tnh ton tuy n theo s xu t hi n c a chuy n giao (handoff driven). V i vi c tnh ton tuy n theo s xu t hi n c a d li u, ng i c tnh ch khi c m t gi d li u g i i, v hn n a, thu t ton ng i ng n nh t t ngu n n ( ch cho nt m ng v i m t gi d li u g i i) c th c thi thay cho thu t ton tm ng ng n nh t c a t t c cc c p. Bi n OTcl c th c u hnh nh sau ( t l false m c nh) : SatRouteObject set data_driven_computation_ "false"

238

14.2.5. H tr bm v t
i t ng c bi t SatTrace (l p SatTrace c tch t l p Trace) c dng ghi l i t a a l l kinh v v c a nt m ng ang ghi d u v t ny (trong tr ng h p m t nt m ng v tinh, v v kinh tng ng v i i m th p nh t c a v tinh). V d , m t gi d li u trn m t ng truy n t nt m ng 66 n nt m ng 26 c th c ghi l i nh sau: + 1.0000 66 26 cbr 210 ------- 0 66.0 67.0 0 0 nhng trong m ph ng v tinh, thng tin v tr c g n vo nh sau: + 1.0000 66 26 cbr 210 ------- 0 66.0 67.0 0 0 37.90 -122.30 48.90 -120.94. Trong tr ng h p ny, nt m ng 66 v 37.9000 , kinh 122.3000 , trong khi nt v 48.9000 , v kinh

m ng 26 l m t v tinh LEO m cc i m thu c v tinh l

120.3000 (v m tng ng v i h ng nam, trong khi kinh m tng ng v i hng ty). Thm vo l p Trace/Sat/Error tm v t b t k gi d li u no b l i thng qua m t m hnh l i. Tm v t cc l i truy c p gi gi m i do l i sau, v d : e 1.2404 12 13 cbr 210 ------- 0 12.0 13.0 0 0 -0.00 10.20 -0.00 -10.00 C th x y ra m t nt m ng sinh ra m t gi m khng th truy n i (nh trong

sat-mixed.tcl). i u ny s ch ra s suy gi m trong file truy v t v i tr ng ch n t l 2, v n t n 999.00: d 848.0000 14 -2 cbr 210 ------- 1 14.0 15.0 6 21 0.00 10.00 -999.00 -999.00. i u ny ch ra r ng nt m ng 14 ang c g ng g i m t gi d li u n nt m ng 15, nhng khng th tm th y ng i thu n l i nh t. d dng tm v t t t c cc ng truy n v tinh trong m ph ng dng cu l nh before sau y minh h a cho cc nt m ng v ng truy n: set f [open out.tr w] $ns trace-all $f Sau dng dng l nh sau y sau khi t o ra t t c cc nt m ng v ng truy n (chn t t c ki u l i vo n u c th ), d dng truy v t cc ng truy n v tinh: $ns trace-all-satlinks $f c bi t, i u ny s t s bm v t xung quanh cc hng i l p lin k t d li u trong cc ng truy n v tinh s nh n c truy v t gi a l p MAC v l p lin k t d li u cho gi d li u nh n c. c kh nng truy v t ch trn m t ng truy n xc nh trn m t nt m ng xc nh th ch c th dng cu l nh sau: $node trace-inlink-queue $f $i $node trace-outlink-queue $f $i trong i l ch m c giao di n c truy v t. S b sung c a i t ng truy v t v tinh c

239

th tm th y trong th m c ...ns/tcl/lib/ns-sat.tcl v ...ns/sattrace.cc,h

14.2.6. Cc m hnh l i
Cc m hnh l i trong ns c trnh by chng tr c. Nh ng m hnh l i ny c th c thi t l p t o ra cc gi d li u b l i theo cc hm phn b xc su t khc nhau. Nh ng m hnh l i ny n gi n v khng c n ph i tng ng v i cc l i c th c trn knh v tinh th c (c th nh knh LEO). Ng i dng c t do thi t l p cc m hnh ki u l i ph c t p hn m gi ng v i mi tr ng v tinh c th hn. M sau a ra v d cch th c thm m t m hnh l i vo m t ng truy n: set em_ [new ErrorModel] $em_ unit pkt $em_ set rate_ 0.02 $em_ ranvar [new RandomVariable/Uniform] $node interface-errormodel $em_ N s thm m t m hnh l i vo ng nh n tn hi u c a giao di n u tin c t o trn nt m ng $node (c th l gi a l p MAC v l p lin k t d li u)- giao di n u tin ni chung tng ng v i giao di n ng truy n tuy n ln v tuy n xu ng cho v tinh ho c cho thi t b u cu i ( n u ch c m t ng truy n tuy n ln ho c ng truy n tuy n xu ng t n t i). thm vo m hnh l i ny vo m t stack khc (nh ch m c b i i) th dng m l nh: $node interface-errormodel $em_ $i

14.2.7. Cc l a ch n c u hnh khc


a ra c u hnh ban u c a v tinh theo l thuy t t l n th 0, r t d b t u c u hnh v tinh t b t c i m ty b ng tham s time_advance_parameter ( i u ny th c s h u ch cho m ph ng LEO). Trong su t qu trnh ch y m ph ng, t v tr c a i t ng n v tr th i gian:Scheduler::instance().clock + time_advance_ seconds. Position/Sat set time_advance_ 0; # tnh b ng giy (seconds)

14.2.8. M ph ng h tr NAM
NAM khng c h tr trong m ph ng ny.

240

14.2.9. Tch h p v i m h u tuy n v v tuy n


Ph n tr gip c thm vo k t n i cc nt h u tuy n (wires) d a trn OTcl truy n th ng v i cc nt m ng v tinh. Ph n ny m t v kh nng v h n ch c a m ny Cc m l nh v tinh (v m v tuy n) thng th ng h c hi n nh tuy n trong C++, trong khi m ns g c th dng an xen gi a OTcl v C++. Do cc l do v tnh tng thch ngh ch (backward) th kh tch h p cho c m h u tuy n v m v tuy n. t h c hi n tch h p m h u tuy n v m v tuy n, ns t o ra m t nt c ng c bi t (g i l tr m c s - base station) dng nh tuy n phn c p v nh v nt tr m g c n trong m ng khng dy B i v nh tuy n khng c tch h p hon ton, cho nn topo c a m ng m ph ng b gi i h n ch c m t nt c ng trn m i m ng v tuy n thnh ph n (subnet) khng dy ( v d m t gi d li u khng th i vo m ng v tuy n t m t c ng v t l h u tuy n v chuy n i thng qua m t c ng khc). Tch h p m h u tuy n v v tinh c th c hi n theo cch khc. B ng cch ch n ch c nng c u hnh nt m ng $ns node-config -wiredRouting ON nh tuy n C++ trong m v tinh c t t i,v thay vo , t t c cc thay i c a topo v tinh chuy n thnh theo m OTcl. K t qu l, m ng link_array trong OTcl c thao tc theo cc topo thay i, v nh tuy n c b n OTcl- c th x y ra. Gi ph i tr cho vi c ny l c n nhi u th i gian thi hnh cho cc m ph ng l n hn ( nh l Teledesic), nhng v i cc m ph ng nh hn, s khc bi t l khng ng k . V d chi ti t cch dng c a ch c nng m i ny c trnh by trong th m c ...ns/tcl/ex /sat-wired.tcl, v m t tnh nng ki m tra tng t trong v tinh ki m tra bi t p ph h p v i m ny. Thm vo , t t c cc v d v tinh trong th m c ...ns/tcl/ex c th chuy n i thnh nh tuy n OTcl b ng cch dng ch c nng $ns node-config -wiredRouting ON. Tuy nhin, c m t vi ch : Ch c nng nh tuy n h u tuy n cho v tinh ch c ki m tra v i nh tuy n tnh ( c m c nh s n): $ns rtProto Static. M l nh ny kch ho t c p nh t b ng nh tuy n ton c c d a trn b t c thay i topo v tinh no. Ch c nng data_driven_computation_ khng th t l "true" khi nh tuy n h u tuy n l ON. Trong file truy v t, khi m t gi d li u b m t bit do "khng c tuy n n host" (nh khi c thay i m t topo m ng), truy v t tm m t bt khc nhau ph thu c vo wiredRouting ang ON hay OFF. Trong tr ng h p thng th ng, ch c m t dng trn m i drop, v i nhn ch l "2. Tr ng h p sau c ba tr ng h p c th

241

x y ra enque "+", deque "-", and drop "d" tng ng n m t gi d li u gi ng nhau, v ch l -1 Trong cc tr ng h p t x y ra, c th c cc b n tin c nh bo trong su t qu trnh th c hi n bi u th vi c "n m ngoi ph m vi c a nt m ng". i u ny c th x y ra n u m t nt m ng b t k t n i trong topo v sau m t nt m ng khc g i m t gi d li u n . V d , wiredRouting trong file ...ns/tcl/ex/sat-mixed.tcl. i u ny x y ra b i v b ng nh tuy n c kch th c thay i ph thu c vo s thay i c a topo m ng. N u m t nt m ng b t k t n i n s khng c b t c s ti p nh n c chn vo b ng nh tuy n.( v do b ng nh tuy n khng th tng ln ph h p v i s nt m ng). C nh bo ny khng nn tc ng n u ra truy v t th c. Khng c s tng tc no v i cc m v tuy n ho c IP di ng.

14.2.10. Cc t p l nh v d
Cc t p l nh v d ny c th tm th y trong th m c ...ns/tcl/ex, bao g m: sat-mixed.tcl: M ph ng c hai lo i v tinh c c v v tinh a tnh. sat-wired.tcl: tng t nh t p l nh tr c, nhng n ch ra cch k t n i cc nt m ng h u tuy n trong m ph ng v tinh. sat-repeater.tcl: bi u th cch s d ng n gi n c a v tinh a tnh lo i chuy n ti p, bao g m c cc m hnh l i. sat-aloha.tcl: m ph ng m t trm thi t b u cu i trong c u hnh v tinh VSAT dng giao th c MAC aloha khng khe c m v i m t v tinh a tnh chuy n ti p. Thi t b u cu i l ng nghe knh truy n c a chng ( sau m t kho ng tr ) v n u n khng nh n c gi d li u c a n v i m i kho ng th i gian tr , n s th c hi n c ch back-off theo hm m v sau truy n l i gi d li u.T n t i ba hm khc nhau: basic, basic_tracing, v poisson, cc hm khc nhau ny c miu t u m i ch thch c a t p l nh. sat-iridium.tcl: M ph ng chm sau LEO v i tham bi n tng t chm sao c a Iridium ( t p l nh h tr l sat-iridium-links.tcl, sat-iridium-linkswithcross.tcl, v sat-iridium-nodes.tcl) _at-teledesic.tcl: M ph ng chm sao LEO c knh truy n r ng v i tham s tng t nh ng xu t cho chm sao v tinh 288 Teledesic ( cng h tr cc t p l nh l sat-teledesic-links.tcl v sat-teledesic-nodes.tcl). Thm vo , c m t t p l nh ki m tra tnh ph h p nhi u c u hnh m t cch ng th i, c th tm th y th m c ...ns/tcl/test/testsuite-sat.tcl.

242

14.3. Th c hi n ph n m r ng m ph ng v tinh
M chng trnh c a ph n m r ng m ph ng v tinh c th tm th y th m c ...ns/sat.h, sathandoff.cc,h, satlink.cc,h, satnode.cc,h, satposition.cc,h, satroute.cc,h, sattrace.cc,h, and ns/tcl/lib/ns-sat.tcl. H u h t chng c th c hi n trong C++. Trong ph n ny, chng ta t p trung vo b n thnh ph n chnh c a s th c hi n g m: tn, danh sch lin k t, ki n trc nt v "detailed look" t i ki n trc lin k t v tinh

Hnh 14.4: B sung danh sch ng truy n trong ns

14.3.1. S d ng cc danh sch lin k t


Cc danh sch lin k t sau c s d ng trong qu trnh th c hi n: class Node duy tr m t danh sch tnh c a t t c cc i t ng c a l p Node trong m ph ng. Bi n Node::nodehead_ lu ph n t u tin c a danh sch. Danh sch lien k t ny c s d ng cho nh tuy n trung tm, tm v tinh chuy n giao, ho c truy v t. class Node ch a danh sch cc ng truy n v tinh trn m i nt m ng. C th , danh sch cc i t ng c a l p LinkHead. Bi n linklisthead_ lu ph n t u tin c a danh sch. Danh sch lien k t c a LinkHead c dng ki m tra cc ng truy n chuy n giao, v khi ph c cc topo m ng li n k . class Channel ch a danh sch cc i t ng c a l p Phy trn m i knh. Ph n u c a danh sch c lu trong bi n c tn l if_head_. Danh sch ny c s d ng xc nh giao di n trn knh nh n m t b n sao c a gi tin.

243

Hnh 14.4 cung c p m t gi n li t k cc cch th c t ch c k t n i c s p x p. M i i t ng trong danh sch li t k c k t n i qua "LINK_ENTRY" c thnh vin c b o v c a l p. Cc l i vo ny ch a con tr ch n cc thnh ph n trong danh sch v m t con tr n a nh a ch c a con tr next pha tr c i t ng c tr c.

14.3.2. C u trc nt m ng
Hnh 14.5 l m t gi n li t k cc thnh ph n thi t b chnh c a m t SatNode. C u trc ny c s tng ng v i MobileNode trong ph n m r ng m ng khng dy, nhng cng c m t vi khc bi t. Gi ng nh cc nt m ng ns, SatNode c m t i m entry n m t lo t cc "classifiers". "Classifier" cho a ch bao g m m t b ng nh tuy n cho gi d li u truy n th ng n nt ngoi m ng. Nhng v nh tuy n OTcl khng c s d ng, t t c cc gi d li u khng dnh ring cho nt m ng ny (v do s truy n th ng n phn lo i c ng), s c gi n ch m c nh. Gi d li u dnh cho nt m ng c ng 255 c phn lo i nh gi d li u nh tuy n v truy n th ng n ph n t nh tuy n. M i nt m ng ch a m t ho c nhi u network stack bao g m m t SatLinkHead chung t i i m entry c a ng truy n. SatLinkHead c dng nh m t API l y m t i t ng khc trong c u trc ng truy n, v v y n ch a m t s con tr ( m c d y API cha hon thnh). Gi d li u khi r i kh i "network stack" th c tr ng iface_ trong ph n tiu c a gi d li u c m v i ch s NetworkInterface duy nh t tng ng v i m i ng truy n. Gi tr ny c th s d ng h tr nh tuy n phn tn nh miu t d i. Ph n t nh tuy n c b n l SatRouteAgent; n c th s d ng dung v i nh tuy n trung tm. SatRouteAgent ch a b ng nh h ng th ng n phn tch a ch c a gi d li u n ch LinkHead c th - n l m t nhi m v c a SatRouteObject c tr ny chnh xc. SatRouteAgent thm cc tr ng nh t nh g i gi d li u xu ng n ng truy n thch h p. th c hi n m t giao th c nh tuy n phn tn, m t SatRouteAgent m i c nh ngha, i u ny s h c v topo b ng cch nh d u ch s giao di n trong m i gi d li u nh n n ngn x p, m t hm tr gip trn nt m ng intf_to_target() cho php n phn tch m t gi tr ch s n m t LinkHead c th . C nhi u con tr n ba i t ng thm vo trong m t SatNode. u tin, m i SatNode ch a m t LinkHandoffMgr i u khi n t n d ng c h i chuy n giao v ngang hng chuy n giao. Nt m ng v tinh v nt m ng thi t b u cu i m i ci c phin b n LinkHandoffMgr thi t k ring. Cu i cng, s cc con tr n i t ng ch a trong m t SatNode. Chng ta th o lu n linklisthead_ v nodehead_ trong ph n trn. Con tr uplink_ v downlink_ c dng m t cch thu n ti n gi nh r ng trong h u h t cc m ph ng, m t v tinh ho c m t b ng tiu c a gi d li u v sau

244

Hnh 14.5: C u trc c a l p SatNode


thi t b u cu i ch c m t knh tuy n ln v m t knh tuy n xu ng.

14.3.3. Cc chi ti t v ng truy n v tinh


Thng tin chi ti t v ng truy n v tinh c minh h a trong Hnh 14.6. T p tin ...ns/tcl/lib/ns-sat.tcl ch a cc instprocs OTcl khc nhau dung ghp cc lin k t theo Hnh 14.6. H u h t cc m l nh dung cho cc thnh ph n khc nhau c a ng truy n n m trong th vi n ...ns/satlink.cc,h. i m entry c a m t network stack l i t ng SatLinkHead . i t ng SatLinkHead xu t pht t Class LinkHead. Cc i t ng u ng truy n dung cung c p m t API ng nh t i v i m i network stacks 2 . M l nh h p l cho tr ng type_ th tm th y trong th vi n ns/sat.h. SatLinkHead lu bi n ki u logic linkup_ m n ch ra ng truy n n t nh t m t nt m ng khc trn m t knh k t thc. L nh th c thi C++ c a SatLinkHead c tm th y th vi n ns/satlink.cc,h.

Cc gi d li u r i kh i m t nt m ng s truy n th ng n SatLinkHead n i t ng c a class SatLL. L p SatLL thu c l p lin k t d li u LL.Giao th c l p lin k t d li u (nh giao th c ARQ) c th c nh ngha y. SatLL hi n t i s c p a ch MAC n gi d li u. Ch r ng trong tr ng h p v tinh, chng ta khng dng giao th c phn gi i a ch (ARP); thay vo , chng ta ch n gi n dng bi n MAC index_ nh a ch
In the authors opinion, all network stacks in ns should eventually have a LinkHead object at the front the class SatLinkHead would then disappear
2

245

c a n, v chng ta s d ng ch c nng tr gip tm a ch MAC c a giao di n tng ng c a nt m ng b c truy n ti p theo.B i v l p lin k t d li u LL xu t pht t l p LinkDelay, tham s delay_ c a LinkDelay c th dng m hnh ha b t c tr x l trong l p lin k t d li u, v i gi tr m c nh tr ny l khng.

Hnh 14.6: Chi ti t c t ngn x p giao di n c a m ng


i t ng ti p theo gi d li u ti n t i l hng i giao di n. Tuy nhin, n u truy v t c kch h at, ph n t truy v t c th bao quanh hng i, nh ch ra hnh 14.6 . Ph n ny c a m t ng truy n v tinh ho t ng nh m t ng truy n ns thng th ng. L p th p hn ti p theo l l p MAC. L p MAC l y gi d li u t i t ng hng i ( ho c truy v t deque)- m t s mc n i g i l p MAC v hng i cho php MAC ko gi d li u kh i hng i n u n c n chng. Th i gian truy n c a m t gi d li u c m hnh c nh ngha trong satlink.h v tr ng size l p MAC, MAC tnh ton tr truy n d n c a gi ( d a trn vi c m tr ng LINK_HDRSIZE ph n u chung c a gi d li u), v yu l p ny. cho c u m t gi khc cho n khi gi hi n t i c g i xu ng l p th p hn. Do , r t quan tr ng trong vi c thi t l p bng t n c a ng truy n m t cch chnh xc tin ny thu n ti n, th i gian truy n c m ha trong ph n tiu MAC, c th s d ng thng MAC nh n tnh xem n i bao nhiu lu pht hi n m t xung t trn m t gi d li u, v d th .

246

Ti p theo, gi d

li u c g i n giao di n truy n (Phy_tx) c a l p SatPhy. i

t ng ny v a g i gi n knh truy n c g n vo. Chng ta c gi thi t r ng t t c cc giao di n g n vo knh l m t ph n c a danh sch lien k t cho knh . i u ny tuy nhin khng ng v i giao di n truy n. Ch giao di n nh n c g n vo m t knh bao g m danh sch ng truy n ny, t ch c giao di n nh n nh n c b n sao c a gi d li u truy n. Vi c s d ng giao di n truy n v nh n ring r ph n nh trung th c cc ng truy n v tinh song cng c t o ra b i knh RF cc t n s khc nhau.

Gi d li u i c g i ti p n m t SatChannel, m n s sao gi d li u n m i giao di n nh n ( ho c l p SatPhy) trn m i knh. Phy_rx g i gi d li u n l p MAC. t il p MAC, gi d li u c gi trong su t th i gian truy n c a n ( v b t c s pht hi n xung t no c tm th y s c thi hnh n u l p MAC, nh l Aloha MAC, h tr n).N u m t gi d li u n l p MAC an ton, n s truy n ti p n m t i t ng ErrorModel, n u n t n t i. N u khng th gi s chuy n qua b t c i t ng truy v t nh n no n i t ng SatLL . i t ng SatLL truy n gi n sau tr x l ( nh c l i r ng theo m c nh, gi tr cho delay_ l b ng 0). Gi d li u nh n s t i i t ng cu i cng m i t ng ny thu c v l p NetworkInterface. i t ng ny thm nhn iface_field vo tiu chung cng v i gi tr ch m c ring c a ngn x p m ng. i u ny c dng th c hi n bm v t xem ngn x p m ng no m m t gi d li u t i. Gi d li u ny sau s t i u vo c a SatNode (th ng l b phn lo i a ch ). Cc ngn x p m ng (network stacks) c a v tinh lo i l p- a tnh ch bao g m m t Phy_tx v m t Phy_rx thu c v l p Repeater-Phy, v m t SatLinkHead. Cc gi d li u nh n b i Phy_rx c g i t i Phy_tx v i tr b ng khng. V tinh lo i l p- a tnh l m t nt v tinh pht l i. N khng c cc b ph n nh bm v t, qu n l chuy n giao, nh tuy n ho c b t k giao di n ng truy n no khc ngo i tr giao di n chuy n ti p.

14.4. Commands at a glance


C u hnh nt m ng ny bi u th cc nt m ng m i n sau c t o s l <type>, trong <type> c th l m t trong cc lo i sau: geo, geo-repeater, polar, terminal. Cc tr ng yu c u khc cho cc nt m ng v tinh ( cho ci t ng truy n ban u v knh truy n) nh d i:

$ns_ node-config -llType <type> $ns_ node-config -ifqType <type> $ns_ node-config -ifqLen <length> $ns_ node-config -macType <type>

247

$ns_ node-config -channelType <type> $ns_ node-config -downlinkBW <value> (ch r ng Geo SatNodeType lo i l p- a tnh ch yu c u nh r lo i knh, cn t t c cc l a ch n khc khng c quan tm n. Hy tham kh o v d trong tcl/ex/satrepeater.tcl.) $ns_ satnode-polar <alt> <inc> <lon> <alpha> <plane> <linkargs> <chan> y l m t phng php bao b c wrapper method dung trong m ph ng t o ra m t nt m ng v tinh c c. Hai ng truy n ln v xu ng, c t o ra v i hai knh truy n, knh ln v knh xu ng. <alt> l v c a v tinh c c, cn <inc> l gc nghing di chuy n theo ng xch o w.r.t, <lon> l kinh c a i m ln ascending node, <alpha> a ra v tr ban u c a v tinh d c theo qu o ny, <plane> nh ngha m t ph ng qu o v tinh c c ny. <linkargs> l danh sch cc l a ch n bi n ng truy n nh ngha giao di n m ng ( gi ng nh LL< Qtype,Qlim,Phy, MAC,v.v) $ns_ satnode-geo <lon> <linkargs> <chan> y l phng php bao b c t o ra nt m ng c a b l p v tinh a tnh GEO, u tin t o ra m t nt m ng v tinh cng v i hai giao di n ng truy n (tuy n ln v tuy n xu ng) v hai knh v tinh (knh ln v knh xu ng). <chan> nh ngha lo i knh $ns_ satnode-geo-repeater <lon> <chan> y l phng php bao b c t o ra nt m ng c a b l p v tinh a tnh GEO, u tin t o ra m t nt m ng v tinh cng v i hai giao di n ng truy n (tuy n ln v tuy n xu ng) v hai knh v tinh (knh ln v knh xu ng). $ns_ satnode-terminal <lat> <lon> Cn y l phng php bao b c t o nt m ng c a thi t b u cu i. <lat> v <lon> nh ngha kinh v v tng ng c a thi t b u cu i. $ns_ satnode <type> <args> y l m t phng php nguyn th y t o ra lo i satnodes <type> c th l c c, a tnh, ho c thi t b u cu i. l: $satnode add-interface <type> <ll> <qtype> <qlim> <mac_bw> <phy> y l m t phng php n i b c a Node/SatNode ci t cho l p lin k t d li u, l p MAC, hng i giao di n v c u trc l p v t l cho cc nt m ng v tinh. $satnode add-isl <ltype> <node1> <node2> <bw> <qtype> <qlim> Phng php ny t o ra ISL ( ng truy n v tinh n i b ) gi a hai nt m ng. Lo i ng truy n (inter, intra, ho c crossseam), d i thng c a ng truy n, lo i hng i v gi i h n hng i u c nh r. $satnode add-gsl <ltype> <opt_ll> <opt_ifq> <opt_qlim> <opt_mac> <opt_bw> <opt_phy> <opt_inlink> <opt_outlink> Phng php ny t o m t GSL ( ng truy n

248

t m t t t i v tinh). u tin, m t stack m ng c t o ra nh ngha b i LL, IfQ, Qlim, MAC, BW, v l p PHY. Ti p theo nt m ng c g n vo knh truy n ln v knh truy n xu ng.

249

Ti li u tham kh o
[1] The VINT Project. The ns Manual(formerly ns Notes and Documentation), April 15, 2006 [2] Eitan Altman, Tanima Jimnez. NS Simulator for beginners , Lecture Note, 2003 2004 [3] Mrc Greis. Tutorial for the Network Simulator "ns", URL: www.isi.edu/nsnam/ns/tutorial/ [4] Gaeil Ahn and Woojik Chun. Design and Implementation of MPLS Network Simulator [5] TCL web page. http://otcl-tclcl.sourceforge.net/tclcl/ [6] Christian Huitema. Routing in the Internet, Prentice Hall, April 1995. 2nd Edition 1999 [7] A.Ballardie Core Based Trees (CBT) Multicast Routing Architecture, Internet RFC 2201 (Experimenatal), September1997 [8] D. Thaler, D.Estrin, D.Meyer(Editor). Border Gateway Multicast Protocol (BGMP): Protocol Spection,Internet Draft, November 2000 [9] S.Deering, D.Estrin, D. Farinacci, V.Jacobson, Ching-Gung Liu, and L Wei. An architecture for wise-area multicast routing.Technical Report USC-SC-94-565, Computer Science Department, University of Southern Clifornica, Los Angeles, CA 90089, 1984 [10] Floyd, S., and V. Jacobson. V.1 N.4, Random August Early 1993, p. Detection 397-413. gateways Available for at

Congestion

Avoidance

http://www.icir.org/floyd/papers/red/red/html [11] A. Ballardie. Core Based Trees (CBT) Multicast Routing Architecture Internet RFC 2201 (Experimental), September 1997 [12] S. Floyd, R. Gummadi and S. Shenker. Adaptive Red: an algorithm for increasing the robustness of REDs active queue management. Submitted

250

[13] E. Altman and T. Jimnez. Simulation analysis of RED whit short lived TCP connections. submitted [14] P. Pieda, J. Ethridge, M.Baines and F. Shallwani. A network simulator differentiated serices implementation. Open IP, Nortel Networks, July 26, 2000. [15] W. Noureddine and F. Tobagi. Improving the Performance of Interactive TCP Applications using Service Differentiation. Proceeding of IEEE infocom, New-York, USA, June 2002 [16] D. D Clark and W. Fang. Explicit Allocation of Best-E ort Packet Delivery Service. IEEE/ACM Trans on Networking, 6(4), 362-372, August 1998 [17] W, Gang, N. Seddigh and B. Nandy . A Time Sliding Window Three Colour Marker(TSWTCM), RFC 2589. [18] J. Heinanen andd R. Guerin. A tow rate three color marker. RFC 2698 Sept 1999 June 2000

251

1. Gi i thi u nhm Advanced Networking Group


Cho cc b n Ban Qu n Tr vntelecom.org xc ti n thnh l p m t working group v i tn g i l Advanced Networking Group(AdNet). Xin m i cc b n c gi i thi u v AdNet v m i cng tham gia vo AdNet. tham gia vo AdNet, m i b n g i email ng k t i: adnet@vntelecom.org v i n i dung bao g m: 1. H tn: 2. Gi i tnh: 3. Trnh v chuyn ngnh: 4. Ni cng tc (v d nh tn cng ty) ho c khu v c b n Group page http://groups.google.com/group/adnet a ch google group: adnet@googlegroups.com (v d nh H N i)

1.1. Thng tin s b v AdNet


1. Birthday: Ngy 4 thng 11 Nm 2008 2. Lnh v c M ng my tnh v m ng truy n thng (Computer and communications networks) T p trung vo cc chuyn m c thu c link layer, network layer Quan tm t i cc chuyn m c thu c transport layer, application layer 3. Ho t ng

252

Trao i cc v n nghin c u qua mailing list, qua di n n trn vntelecom T ch c cc seminar, cc bu i g p g trao i ki n th c Th c hi n cc d n chuyn mn 4. Quy nh Cc thnh vin tham gia mailling list v i t cch c nhn cng v i vi c cung c p cc thng tin t i thi u v b n thn nh tn, gi i tnh, trnh , ni cng tc t i cc thnh vin khc

2. D n NetSim c a Advanced Networking Group


2.1. D n ti li u m ph ng b ng ti ng Vi t (NetSim-Viet)
"Network simulation - NetSim" "M ph ng m ng" l ph n khng th thi u c trong o to v nghin c u. Hi n nay Vi t Nam, s l ng sinh vin lm n t t nghi p c n n NetSim ngy cng nhi u. C r t nhi u chng trnh m ph ng (simulation tool) khc nhau v thng d ng nh NS2 (free), OPNET (cracked) ... nhng ti li u h ng d n v cc thng tin v chng (ph n m r ng, cc module m i) b ng ti ng Vi t v n cha nhi u v r i rc. Ti li u ny s r t h u ch cho sinh vin i h c v cao h c, c bi t nh ng b n v n cn h n ch khi s d ng ti ng Anh. AdNet xu t th c hi n d n "Bin so n ti li u m ph ng m ng b ng ti ng Vi t". N i dung d nh c a ti li u: 1. Gi i thi u chung v l thuy t m ph ng m ng L thuy t chung v Discrete event simulation Nguyn t c th ng k v nh gi k t qu 2. Gi i thi u chung v cc tool ph bi n NS2 OPNET OMNET++ 3. H ng d n ci t, gi i thi u v nh gi cc module m i c a NS2 4. H ng d n ci t, gi i thi u v nh gi cc module m i c a OPNET 5. H ng d n ci t , gi i thi u v nh gi cc module m i c a OMNET++ 6. Tool khc ....

254

2.2. Cch th c bin so n


B c 1 - Xc nh n i dung c a ti li u. B c 2 - Tm ki m cc ti li u ti ng Vi t c s n v lin h v i cc tc gi m i ng tn cng. B c 3 - Bin d ch cc n i dung cha c ph n ti ng Vi t. B c 4 - Hi u nh v a ln vntelecom. B c 5 - C p nh t v s a ch a ti li u.

2.3. T ch c NetSim theo cc nhm


Nhm khng c Tr ng hay Ph m ch c Bo Co Vin (BCV) s 1 hay s 2 g i l BCV1 v BCV2. - Nhi m v c a BCV l : Duy tr s lin l c gi a cc thnh vin c a nhm Bo co k t qu ho t ng t i NetSim - M i thnh vin c th tham gia 1 ho c vi nhm. Cc nhm d ki n

2.3.1 Nhn S (Human Resource - HR)


Nhi m v c a thnh vin: C p nh t tnh hnh thnh vin gia nh p vo NetSim hay rt lui kh i NetSim Qu n l mailing list Gim st nhn l c ang ho t ng cc nhm khc: b sung, h tr v...v

Lin h v i cc c nhn ngoi NetSim m i h p tc, ng tc gi v...v

2.3.2 Qu n l n i dung NetSim (Content Management - CM)


Nhi m v c a thnh vin: Bin so n n i dung t ng th c a d n NetSim Phn chia cc nhi m v c n th c hi n v xc nh th i h n (deadline) cho m i nhi m v Gim st ti n th c hi n v i u ch nh n i dung n u c n

2.3.3. Th c hnh m ph ng m ng (Simulation Practice - SP)


Nhi m v c a thnh vin: Ci t simulation tool, h c v lm vi c v i tool Ki m tra nh gi cc tnh nng c a simulation tool Yu c u i v i thnh vin Mu n h c v s d ng thnh th o simulation tool no C my tnh ring (t t nhin r i ) Trnh ti ng Anh: cn b n

2.3.4 Bin d ch v bin so n ti li u (Translation & EditionTE)


Nhi m v c a thnh vin Tham gia d ch (translation) v hi u nh ti li u Anh sang Vi t theo n i dung nhm CM ra. Tham gia so n (edition) ti li u ti ng Vi t c s n ghp vo NetSim Yu c u i v i thnh vin: Trnh ti ng Anh: cn b n Trnh ti ng Vi t: T T

You might also like