bao cao ns2_final

41
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ-VIỄN THÔNG ====o0o==== BÁO CÁO BÀI TẬP LỚN CƠ SỞ TRUYỀN SỐ LIỆU ĐỀ TÀI KIỂM TRA THUẬT TOÁN ĐIỀU KHIỂN LUỒNG SỬ DỤNG TCP Sinh viên : Nguyễn Doãn Tuấn – 20112432 Nguyễn Minh Tuân – 20125833 Phạm Minh Tuấn – 20112447 Hoàng Tuấn – 20146973 Nguyễn Minh Tuấn – 20146974 Nhóm : 22 GVHD : TS. Trương Thu Hương

Upload: tuan-nguyen-doan

Post on 18-Dec-2015

20 views

Category:

Documents


2 download

DESCRIPTION

NS2

TRANSCRIPT

Kim tra thut ton iu khin lung s dng tcp

December 10, 2014[Kim tra thut ton iu khin lung s dng tcp]

TRNG I HC BCH KHOA H NI VIN IN T-VIN THNG ====o0o====

BO CO BI TP LNC S TRUYN S LIU

TI KIM TRA THUT TON IU KHIN LUNG S DNG TCP

Sinh vin:Nguyn Don Tun 20112432

Nguyn Minh Tun 20125833Phm Minh Tun 20112447Hong Tun 20146973Nguyn Minh Tun 20146974

Nhm:22

GVHD:TS. Trng Thu Hng

H Ni, 12/2014MC LCMC LC2DANH MC HNH V V BNG BIU3M U..4I.Li ni u4II.Yu cu5III.Phn chia cng vic6NI DUNG..7I.C s l thuyt71.1. Gii thiu b giao thc TCP/IP71.2. Transmission Control Protocol (TCP)81.2.1. M t TCP81.2.2. Hot ng ca TCP121.3. User Datagram Protocol (UDP)131.3.1. Khi nim c bn131.3.2. Hot ng ca UDP141.4. So snh gia TCP v UDP15II.Kt qu m phng bi ton162.1. o bng thng trung bnh ca lung TCP162.2. & 2.3. o bng thng trung bnh ca lung TCP vi tc pht UDP ln lt l 2Mbps, 3Mbps, 4Mbps, 5Mbps.172.4. V ca s trt khi tc lung UDP l 512 Kbps v 5 Mbps212.5. Nhn xt v kch thc ca s trt v s chia s bng thng gia UDP v TCP khi thay i tc pht lung UDP (Mc 2.3 v 2.4).22KT LUN..23I. Kt qu t c23II. Hn ch23III. Hng pht trin ca ti23PH LC I [SOURCE CODE]24PH LC II [TI LIU THAM KHO]28

DANH MC HNH V V BNG BIU

A. Bng biu

Bng 1. Phn chia cng vic6Bng 2. Cu to datagram IP14Bng 3. So snh TCP v UDP15

B. Hnh v

Hnh 1. TCP v UDP5Hnh 2. hnh ca mng6Hnh 3. TCP/IP7Hnh 4. S trng thi ca TCP12Hnh 5. hnh ca mng m phng trn NS-216Hnh 6. Bng thng lung TCP khi tc pht UDP l 512 Kbps16Hnh 7. Bng thng lung TCP khi tc pht UDP l 2 Mbps17Hnh 8. Bng thng lung TCP khi tc pht UDP l 3 Mbps18Hnh 9. Bng thng lung TCP khi tc pht UDP l 4 Mbps19Hnh 10. Bng thng lung TCP khi tc pht UDP l 5 Mbps20Hnh 11. Kch thc ca s trt khi lung UDP c tc pht 512 Kbps21Hnh 12. Kch thc ca s trt khi lung UDP c tc pht 5 Mbps21

M UI. Li ni u

Mng Internet l mng my tnh rng ln s dng nhiu cng ngh mng khc nhau v cho php chia s ti nguyn mng mt cch phn tn. Chnh kh nng ny l nguyn nhn chnh em li s thnh cng to ln ca cng ngh Internet. Trong phn ln lu lng trn mng Internet, lu lng TCP/IP ng gp mt phn ng k v phn ln ng dng trn mng Internet, v d nh lt Web v truyn file, u s dng giao thc TCP/IP. Giao thc chnh ca TCP/IP l TCP v UDP. TCP l giao thc cho php truyn d liu mt cch tin cy, cn UDP l giao thc tuy khng a ra cc c ch truyn tin tin cy nhng li c hiu sut truyn ln, tr truyn nh, thch hp cho cc ng dng thi gian thc. Vy khi cng c truyn trn mng th s chia s bng thng gia 2 giao thc ny s nh th no v hot ng ca chng nh th no khi mng xy ra tc nghn l 1 trong nhng mi quan tm hng u ca cc nh iu hnh mng. Mn hc c s truyn s liu cung cp cho sinh vin c s l thuyt v mt nh tnh v nh lng cho m hnh h thng vin thng, cho php a ra cc m hnh nh gi c tnh hot ng ca mng, m hnh hng i n, mng hng i, c s cc c ch iu khin lung v nh tuyn trong mng. Bn cnh nhng phng php ton hc hc, kho st mng chng ta c phng php m phng mng. lm quen vi phng php ny cng nh hiu r hn v kin thc c hc, nhm em quyt nh thc hin ti: Kim tra thut ton iu khin lung s dng TCP s dng phn mm NS2 trn Linux, cng c m phng mng thng dng nht hin nay.Chng em xin cm n c gio, TS.Trng Thu Hng to iu kin nhm tip cn vi ti, qua lnh hi c rt nhiu kin thc v k nng hu ch.H Ni, ngy 10 thng 12 nm 2014.

II. Yu cuKim tra thut ton iu khin lung s dng TCP.TCP (Transmission Control Protocol) l giao thc cho php truyn d liu mt cch tin cy gia 2 my tnh bt k. TCP da vo phng php iu khin lung theo ca s trt. Hnh 1. TCP v UDP

UDP l giao thc khng a ra cc c ch truyn tin mt cch tin cy, tuy nhin UDP li c c im l n gin, tr truyn d liu nh, hiu sut truyn ln nn thch hp cho cc ng dng thi gian thc. Mt cu hi t ra l khi truyn c TCP v UDP trn mng Internet th 2 giao thc trn chia s bng thng nh th no, hot ng ca chng ra sao trong trng hp mng xy ra tc nghn.

ti ny cho php chng ta kho st v tr li cc cu hi trn thng qua cc bc nh sau: To ra mt mng cn m phng s dng NS-2 ging nh trn hnh v. To ra 2 kt ni TCP v UDP s dng ngun/ch TCP v ngun/ch UDP. Ngun ca TCP s dng TCP Newreno (TCP Newreno l mt phin bn ca TCP, c h tr trong NS-2). Thit lp ca s chng tc nghn ti a (maximal congestion window size) ca lung TCP l 32 gi. Kch thc cc gi UDP v TCP l 512 bytes. Chy m phng trong 300s. Cc ngun UDP v TCP u pht gi lin tc. Lung UDP c tc pht l 512kbit/s (s dng ngun CBR).

Hnh 2. hnh ca mng1. [7.1.] Chy m phng v o bng thng trung bnh ca lung TCP (bng thng trung bnh c tnh bng: S byte c truyn i ca lung TCP/thi gian m phng).2. [7.2.] Lp li th nghim 7.1. trong trng hp tc pht ca lung UDP l 2 Mbit/s, 3Mbit/s, 4 Mbit/s v 5Mbit/s.3. [7.3.] V th th hin bng thng ca TCP so snh vi bng thng ca UDP.4. [7.4.] Trong trng hp tc ca lung UDP l 500kbit/s v 5Mbit/s, v kch thc ca s trt congestion window ca TCP (Trc tung: kch thc ca s, trc honh: thi gian).5. [7.5.] C kt lun g v kch thc ca Congestion Window v bng thng ca lung TCP trong cc trng hp ti UDP xt.III. Phn chia cng vic

STTCng vicNgi thc hin

1Tm hiu UDP v TCP1,3,5

2Tm hiu NS2 & Ubuntu1,2,3,4,5

3Tm hiu ca s v phng php chng tc nghn1,2,4

4Tm hiu s chia s bng thng gia TCP v UDP 1,3,5

5Trin khai ti, code m phng1,3,5

6Hon thin bo co1,2,3,4,5

Bng 1. Phn chia cng vic

1. Nguyn Don Tun2. Nguyn Minh Tun3. Phm Minh Tun4. Hong Tun5. Nguyn Minh Tun6.

NI DUNG

I. C s l thuyt1.1. Gii thiu b giao thc TCP/IP cc my tnh c th lin lc vi nhau qua mng, chng phi cng chung s dng mt ngn ng hay gi l mt giao thc (Protocol). Giao thc l 1 h lut v chun cho php cc my tnh lin lc c vi nhau.

TCP/IP l vit tt ca Transmission Control Protocol (Giao thc iu khin truyn thng)/Internet Protocol (Giao thc Internet).

TCP/IP khng ch gm 2 giao thc m thc t n l tp hp nhiu giao thc gi l b giao thc (Suite of Protocol).

Hnh 3. TCP/IP

cc my tnh trao i d liu vi nhau, TCP/IP s dng m hnh truyn thng 4 tng (nm trong m hnh 7 lp OSI): Tng ng dng (Application Layer) Tng giao vn (Transport Layer) Tng lin mng (Internet Layer) Tng giao din mng (Network Interface Layer)Mi giao thc ca h TCP/IP u thuc mt trong cc tng ny.

1.2. Transmission Control Protocol (TCP)

TCP l giao thc cho php truyn d liu mt cch tin cy gia 2 my tnh bt k da trn phng php iu khin lung theo ca s trt. Pha pht c php pht lin tc nhiu gi. S gi cc i c php pht khia cha nhn c ACK t bn thu l W - kch thc ca s.1.2.1. M t TCPa. Mc ch ca TCP v iu khin lung theo c ch ca s iu chnh tc truyn cc gi d liu sao cho ph hp vi bng thng kh dng.

Trnh hin tng nghn mng.

To kt ni tin cy bng cch truyn li cc gi tin b tht lc.

iu khin tc truyn, s lng cc gi tin cha nhn (nhng gi tin m ngun cha nhn c thng tin phn hi t ch l nhn c) b gii hn bi mt tham s gi l ca s tc nghn. iu ny c ngha l ni truyn cc gi tin buc phi ch v ngng truyn cc gi tin m n truyn trc chc rng ch nhn c d liu s dng bn tin xc nhn. cc gi tin c xc nhn v c kh nng truyn li khi b tht lc, mi gi tin c truyn i phi c mt s th t.

b. Cc bn tin xc nhn Mc tiu ca cc bn tin xc nhn: iu chnh tc truyn ca TCP, m bo rng cc gi tin ch c truyn khi m cc gi tin khc c truyn ra khi mng. To ng kt ni ng tin cy bng cch truyn ti nt ngun cc thng tin yu cu truyn li cc gi tin khng n c ch.

Lm th no m ch n ca cc gi tin bit l gi tin c b tht lc? Lm th no m ta bit c mt gi tin b mt? Gi ACK (Acknowlegde) cha thng tin g?

Gi ACK cho ngun gi tin bit s th t ca gi tin m ch ang ch. V d: Gi s gi tin 1, 2, , 6 n ch theo th t th khi gi tin s 6 n, ch gi mt gi tin ACK thng bo rng n ang i gi tin s 7. Nu gi tin s 7 n th ch yu cu gi tin s 8. Gi s gi tin s 8 b tht lc, gi tin s 9 c th n ch c. Ti thi im , ch gi gi tin ACK c tn l ACK lp thng bo vi ngun gi tin rng n ch gi tin s 8. Phng php ny c gi l ACK n (implicit ACK). Phng php ny hiu qu ngay c khi mt gi tin ACK. Hn na, gi s rng gi tin ACK thng bo rng ch ang i gi tin s 5 b mt. Khi gi tin ACK tip theo n v thng bo rng ch ang i gi s 6, th ngun hiu rng ch nhn c gi s 5, v vy thng tin gi bi ACK b mt c suy ra t gi tin ACK tip theo.

Gi tin TCP b coi l mt nu nh: C 3 gi tin ACK ging nhau thng tin cho ngun v cng mt gi tin c gi. Khi mt gi tin truyn i, c mt ng h m thi gian. Nu gi tin ACK ca gi tin c truyn khng n trong khong thi gian To, c ngha l qu hn (Time-out) v gi tin coi nh b mt. Chn To bng cch ngun c tnh thi gian quay vng RTT (round trip-time) trung bnh bng thi gian cn thit cho mt gi tin n ch cng vi thi gian cho gi tin ACK quay tr li thng bo cho ngun. gim s lng gi tin ACK trong h thng, TCP thng xuyn s dng la chn ACK tr (delayed ACK) ti 1 gi tin ACK c truyn ch cho d gi tin n ch. Tuy nhin, tr 1 gi tin ACK n tn khi d>1 gi tin c nhn c th dn n vic nh tr hon ton trong trng hp kch thc ca s nh. V vy, nu gi tin u tin (nm trong d gi tin ang ch i) n ch th sau mt khong thi gian ngt qung (thng l 100ms) nu d gi tin vn cha n th mt bn tin ACK c to thnh m khng cn ch i thm na.c. Thut ton iu khin lung TCP Thut ton iu khin lung TCP s dng c ch ca s v thng bo nhn (ACK) u cui ti u cui m bo truyn tin mt cch tin cy trong mng. Bn gi duy tr mt ca s tc nghn, wnd c, y l s gi tin c th c my gi i trong khi ch bn tin ACK t bn nhn. Sau khi nhn c gi tin s liu, bn nhn chun b mt bn tin ACK thng bo cho bn gi v cc bn tin nhn c. Bn nhn cng thng bo cho bn gi mt ca s nhn, wnd r, l kch thc ca b m dnh cho kt ni ny. Bn gi khng c nhiu hn min{wnd r, wnd c} gi tin trong khi ch nhn bn tin ACK. Ca s nhn cho php bn nhn iu khin lung v nu bn nhn khng th x l kp thng tin vi tc hin thi, ca s nhn s c lm nh i, v bn gi s gim tc gi ca mnh. Ca s tc nghn c nhim v iu khin lung trong iu kin tc nghn. Vic mt gi tin c pht hin thng qua timeout ca cc gi tin cha c thng bo nhn hoc nhn c nhiu bn tin ACK ging nhau, hoc nhn c bn tin SAC t bn nhn. Vi giao thc TCP, vic mt gi tin ng ngha vi tc nghn trong mng v mt gi tin c gi thit l do trn b m do lu lng vt qu dung lng trn tuyn kt ni u cui ti u cui. Bn gi cp nht kch thc ca s tc nghn khi nhn c bn tin ACK cho cc gi tin gi i v khi pht hin tc nghn. Sau mt RTT khng c tc nghn, cho mi bn tin ACK nhn c, ca s tc nghn c cp nht theo cng thc: (1)v khi pht hin tc nghn trong mt RTT: (2)

Quy trnh tng gim kch thc cho php TCP tn dng bng thng tuyn kt ni u ti cui.

Kch thc ca ca s thay i ty theo trng thi ca mng. Khi ca s nh, kch thc ca n c th tng nhanh chng, nhng khi t n mt gi tr nht nh th kch thc ca n tng chm. Khi hin tng tng nghn mng c php hin, kch thc ca s gim mnh. C ch ng ny cho php gii quyn tc nghn nhanh chng v s dng hiu qu bng thng ca mng.

Wth: ngng bt u chm. Ca s bt u gi tr gi tin n l c truyn. Khi gi tin ACK ca gi tin ny quay tr li, ta c th truyn 2 gi tin. i vi mi gi tin ACK ca 2 gi tin ny, ca s tng thm 1 gi tr, mc ch l khi cc gi tin ACK ca 2 gi tin ny quay tr li, ta c th truyn 4 gi tin hay ca s tng theo s m. Giai on ny c gi l bt u chm do thay v ca s to dn ln nhanh chng, n ch ln ln t t nu ta bt u n vi gi tr W = Wth .

Nu W = Wth , ta chuyn qua giai on trnh tc nghn. Khi , mi gi tin ACK quay li s lm ca s W tng ln [1/W]. Sau khi truyn W gi tin, W tng ln 1. Nu ta truyn W gi tin cn t thi gian th truyn W+1 cn t+RTT v W+2 cn t+2RTT,... v.v. Ta thy ln ca ca s thay i tuyn tnh.d. Mt cc gi tin Khng ch W ng m Wth cng nh vy. N c c nh trong TCP khi mt gi mt th gi tr ca W gim i mt na. C mt s phng php ci thin TCP nh sau: Phng php Tahoe: Bt k khi no php hin ra mt gi tin b mt th ca s gim gi tr xung 1 n v v giai on slow-start bt u. iu ny lm gim kch c ca s nhanh chng v cng nh vy vi tc truyn tin. Phng php New-Reno: Ca s gim xung 1 nu nh pht hin ra gi tin b mt trong thi gian qu hn. Khi mt gi tin mt b pht hin ra thng qua gi tin ACK b lp, ca s gim st tc nghn gim xung . Giai on slow start s khng khi to v ta vn trng thi trnh tc nghn.

1.2.2. Hot ng ca TCP TCP i hi thit lp kt ni trc khi bt u gi d liu v kt thc kt ni khi vic gi d liu hon tt. C th TCP c ba pha: Thit lp kt ni Truyn d liu Kt thc kt ni

S trng thi ca TCP

Hnh 4. S trng thi ca TCP

1.3. User Datagram Protocol (UDP)

Dng UDP, chng trnh trn mng my tnh c th gi nhng d liu ngn c gi l datagram ti my tnh khc. UDP khng cung cp s tin cy v th t truyn nhn, cc gi d liu c th n khng ng th t hoc mt m khng thng bo. Tuy nhin, UDP nhanh v hiu qu hn i vi nhng mc tiu nh kch thc nh v yu cu kht khe v thi gian , hu dng i vi vic tr li cc truy vn vi s lng ln ngi yu cu.1.3.1. Khi nim c bn Packet: Trong truyn s liu, mt packet l mt dy cc s nh phn, biu din d liu v tn hiu iu khin, cc gi tin ny c truyn i v chuyn ti mt host. Trong gi tin, thng tin c sp xp theo mt khun dng c th. Datagram: Mt datagram l mt gi tin c lp, t cha, mang y d liu nh tuyn t ngun ti ch m khng cn thng tin thm. MTU (Maximum Transmission Unit): Mt c trng ca tng lin kt, m t s byte d liu ti a c th truyn trong mt gi tin. Mt khc, MTU l gi d liu ln nht m mi trng mng cho trc c th truyn. V d, Etherner c MTU c nh l 1500 bytes. Trong UDP, nu kch thc ca mt datagram ln hn MTU, IP s thc hin phn on, chia datagram thnh cc phn nh hn (segment) v vy, mi on c kch thc nh hn MTU. Port: UDP s dng cc cng nh x d liu n mt tin trnh c th ang chy trn mt my tnh. UDP nh hng cho mt packet ti v tr xc nh bng cch s dng s hiu cng c xc nh trong header ca datagram. Cc cng c biu din bi cc s 16 bits. Cc cng c xem nh l im cui ca cc lin kt logic. TTL (Time To Live): Gi tr TTL l gi tr gii hn trn cc router m datagram c th i qua. Gi tr TTL ngn nga cc gi tin khi b kt trong cc vng lp nh tuyn v hn. TTL c khi to t bn gi v gi tr c gim i bi mi router qun l datagram. Khi TTL = 0, datagram b loi b (drop). Multicasting: Phng php da trn chun c tnh cht m phn phi cc thng tin ging nhau trn nhiu ngi dng. Multicasting l mt c trng chnh ca UDP cho php ta truyn tin theo kiu mt nhiu. V d: Gi th in t nhiu ngi nhn, i pht thanh trn Internet

1.3.2. Hot ng ca UDPKhi mt ng dng da trn giao thc UDP gi mt d liu ti mt host khc trn mng, UDP thm vo mt header c di 8 byte cha cc s liu cng ngun v ch, cng vi tng chiu di d liu v thng tin checksum. IP thm vo header ca ring n vo u mi datagram to nn mt datagram IP.

+Bit 0-15Bit 16-31

0Source PortDestination Port

32LengthChecksum

64Data

Bng 2. Cu to datagram IP Source port: Trng ny xc nh cng ca ngi gi thng tin v c ngha nu mun nhn thng tin phn hi t ngi nhn. Nu khng dng n th t n bng 0. Destination port: Trng xc nh cng nhn thng tin v trng ny l cn thit. Length: Trng c di 16 bits xc nh chiu di ca ton b datagram: phn header v d liu: Chiu di ti thiu l 8 byte khi gi tin khng c d liu ch c header. Checksum: 16 bits dng cho vic kim tra li ca phn header v d liu.

1.4. So snh gia TCP v UDP1.4.1. Ging nhau u l cc giao thc ca b giao thc TCP/IP. u c chc nng kt ni cc my tnh li vi nhau v c th gi d liu cho nhau.1.4.2. Khc nhau Cc header ca TCP v UDP khc nhau kch thc (TCP c 20 bytes header) do TCP h tr nhiu chc nng hu ch hn (nh kh nng phc hi li) cn UDP dng t byte hn (8 bytes header).

TCPUDP

Dng cho mng WANDng cho mng LAN

Cn thit lp kt niKhng cn thit lp kt ni

S dng c ch iu khin lung v chng tc nghnKhng c c ch iu khin lung v chng tc nghn

Khng cho php mt gi tinCho php mt gi tin

m bo vic truyn d liuKhng m bo vic truyn d liu

Tc thp hn UDPTc truyn cao

Bng 3. So snh TCP v UDP

II. Kt qu m phng bi ton

Hnh 5. hnh ca mng m phng trn NS-22.1. o bng thng trung bnh ca lung TCP Bng thng trung bnh:

avg_TCP = 1.3999 Mbps

Hnh 6. Bng thng lung TCP khi tc pht UDP l 512 Kbps

2.2. & 2.3. o bng thng trung bnh ca lung TCP vi tc pht UDP ln lt l 2Mbps, 3Mbps, 4Mbps, 5Mbps.2.2.1. & 2.3.1. Bng thng lung TCP khi lung UDP c tc pht 2 Mbps. Bng thng trung bnh:

avg_TCP = 1.3996 Mbps

Hnh 7. Bng thng lung TCP khi tc pht UDP l 2 Mbps

2.2.2. & 2.3.2. Bng thng lung TCP khi lung UDP c tc pht 3 Mbps. Bng thng trung bnh:

avg_TCP = 1.3929 Mbps

Hnh 8. Bng thng lung TCP khi tc pht UDP l 3 Mbps

2.2.3. & 2.3.3. Bng thng lung TCP khi lung UDP c tc pht 4 Mbps. Bng thng trung bnh:

avg_TCP = 1.3922 Mbps

Hnh 9. Bng thng lung TCP khi tc pht UDP l 4 Mbps

2.2.4. & 2.3.4. Bng thng lung TCP khi lung UDP c tc pht 5 Mbps. Bng thng trung bnh:

avg_TCP = 0.4308 Mbps

Hnh 10. Bng thng lung TCP khi tc pht UDP l 5 Mbps

2.4. V ca s trt khi tc lung UDP l 512 Kbps v 5 Mbps 2.4.1. Ca s trt (Congestion Window) khi lung UDP c tc pht 512 Kbps.

Hnh 11. Kch thc ca s trt khi lung UDP c tc pht 512 Kbps

2.4.1. Ca s trt (Congestion Window) khi lung UDP c tc pht 5 Mbps.

Hnh 12. Kch thc ca s trt khi lung UDP c tc pht 5 Mbps

2.5. Nhn xt v kch thc ca s trt v s chia s bng thng gia UDP v TCP khi thay i tc pht lung UDP (Mc 2.3 v 2.4).

2.5.1. Nhn xt v bng thng.

T s m hnh mng ta c th thy rng hai kt ni TCP v UDP c chung mt tuyn lin kt n3 v n4. Ta bit tuyn n3 v n4 c bng thng cc i l BWmax=6Mbps. Khi ta s i tin hnh m phng cc trng hp vi tc UDP thay i l 512 Kbps, 2Mbps, 3 Mbps, 4Mbps, 5Mbps. Mt khc theo gi thit ta c tuyn TCP c kch thc ca s chng tc nghn l Wmax = 32 gi (vi 1 gi = 512 byte). ng thi t m hnh mng ta c th tnh c thi gian RTT = 90ms. Vy khi bng thng cc i m tuyn TCP c th chin trn ng truyn l:

BWTCPmax =

Trong cc trng hp UDP thay i l 512 Kbps, 2Mbps, 3 Mbps, 4Mbps th tng bng thng ca 2 tuyn UDP v TCP l nh hn so vi BWmax = 6Mbps. Khi s khng xy ra hin tng tc nghn trn tuyn lin kt n3 v n4. Do TCP s truyn vi tc cc. Trong trng hp UDP bng 5Mbps. Do t thng m tuyn TCP c th t n cc i l . Nn s c thi im bng thng tng cng ca hai tuyn TCP v UDP s vt qu BWmax = 6Mbps. Khi s ra hin tng tc nghn. Dn n gi tin b mt. Khi pht hin mt gi tin th lp tc TCP gim kch thc ca s trt i lm cho tc pht ca TCP (hay bng thng) b gim. Qu trnh c tip tc nh vy v kt qu l UDP s truyn vi tc khng i l 5Mbps cn TCP s gim i gii quyt tc nghn.

2.5.2. Nhn xt v ca s trt (Congestion Window)

Trong trng hp tc UDP l 512 Kbps th khi tng bng thng ca c 2 tuyn TCP v UDP nh hn so vi bng thng BWmax = 6Mbps trn tuyn n3 v n4. Khi khng c tc nghn xy ra nn TCP s truyn vi tc cc i. Do ca s trt cng s t gi tr cc i l 32 gi. Trong trng hp tc UDP l 5 Mbps th tng bng thng ca c 2 tuyn TCP v UDP s c thi im vt qu bng thng BWmax = 6Mbps trn tuyn n3 v n4. Khi s xy ra tc nghn trn tuyn n3 v n4. Dn n mt gi tin. Khi pht hin ra mt gi tin th TCP s lp tc gim ca s xung ( C th vi ca s Newreno nu pht hin mt gi tin do ACK lp 3 ln th ca s s gim i mt na v trng thi trnh tc nghn ngc li nu mt do time out th ca s s gim xung bng 1 v bt u giai on slow start) . Do tc TCP (hay bng thng) t l thun vi kch thc ca s trt nn lm cho bng thng TCP gim v trnh tc nghn. Qu trnh c tip tc nh th xy ra nn kt qu cui cng ta thu c ca s trt khng n inh (hay rt bin ng)KT LUNI. Kt qu t c

Qua bi tp ln ln ny nhm hiu thm nhiu vn lin quan n mn hc. Nm c nguyn l v cch hot ng ca cc giao thc truyn tin UDP, TCP. Bit cch s dng phn mm NS2 m phng mng thng tin. Hiu nhng vn , khi nim c bn trong mng thng tin: Bng thng, chia s bng thng, hng i, mi quan h v tng tc gia cc nt trong cng mng. Cc hin tng thng xy ra trong mng nh tr ng truyn, trn b m,

II. Hn ch

Khi nhm thc hin ti v nghin cu ti liu, thy rng c rt nhiu vn mi cn c o su, v d nh, vn so snh gia cc phng php Tahoe, New Reno, and SACK TCP, Tuy nhin, trong khun kh thi gian v yu cu ca ti, nhm chng em ch thc hin m bo ng , yu cu.

III. Hng pht trin ca ti

Mt s xut hng pht trin bi ton: Thit lp cc thng s, iu kin, chn phng php (DelayACK, Reno, Tahoe, kch thc hng i) ti u ha kh nng chng tc nghn trong truyn d liu. Thm cc ngun TCP v UDP pht trin thut ton nh tuyn.

PH LC I [SOURCE CODE]The source code for the problem from 7.1 to 7.5

#--------------- Khi to i tng m phng------------------set ns [new Simulator]

#--------------- M cc file lu d liu---------------------# To mt file bm vt lu kt qu m phng cho NAMset nf [open out.nam w]$ns namtrace-all $nf# To mt file bm vt lu kt qu thc hin phc v cho tnh ton.set tf [open result.tr w]$ns trace-all $tf # To mt file lu bng thng ca hai giao thc TCP v UDPset bwTCP [open bandwith_TCP.tr w]set bwUDP [open bandwith_UDP.tr w]# To mt file lu kch thc ca s ca TCPset WindowVsTime [open WindowVsTimeReno.tr w] #--------------- To m hnh mng m phng trong NAM-----------# Khi to cc nodeset n0 [$ns node]$n0 color red$n0 shape box$ns at 0.0 "$n0 label \"TCP source \""set n1 [$ns node]set n2 [$ns node]$n2 color blue$n2 shape box$ns at 0.0 "$n2 label \"UDP source\""set n3 [$ns node]set n4 [$ns node]set n5 [$ns node]set n6 [$ns node]set n7 [$ns node]$n7 color blue$n7 shape hexagon$ns at 0.0 "$n7 label \"UDP sink \""set n8 [$ns node]$n8 color red$n8 shape hexagon $ns at 0.0 "$n8 label \"TCP sink \""# Khi to lin kit gia cc node$ns duplex-link $n0 $n1 6Mb 5ms DropTail$ns duplex-link $n1 $n3 4Mb 5ms DropTail$ns duplex-link $n2 $n3 10Mb 4ms DropTail$ns duplex-link $n3 $n4 6Mb 20ms DropTail$ns duplex-link $n4 $n5 6Mb 5ms DropTail$ns duplex-link $n4 $n6 10Mb 10ms DropTail$ns duplex-link $n5 $n7 6Mb 5ms DropTail$ns duplex-link $n6 $n8 10Mb 5ms DropTail# Sp xp v tr cc node$ns duplex-link-op $n0 $n1 orient right-down$ns duplex-link-op $n1 $n3 orient right-down$ns duplex-link-op $n2 $n3 orient right-up$ns duplex-link-op $n3 $n4 orient right$ns duplex-link-op $n4 $n5 orient right-up $ns duplex-link-op $n4 $n6 orient right-down$ns duplex-link-op $n5 $n7 orient right$ns duplex-link-op $n6 $n8 orient right

$ns queue-limit $n3 $n4 5 $ns duplex-link-op $n3 $n4 queuePos 0.5

# Thit lp giao thc nh tuyn TCPset tcp [new Agent/TCP/Newreno]$ns attach-agent $n0 $tcp$tcp set window_ 32$tcp set maxcwnd_ 32$tcp set packetSize_ 472set sink [new Agent/TCPSink]$ns attach-agent $n8 $sink$ns connect $tcp $sink$tcp set fid_ 1$ns color 1 red# Khi to mt ng dung FTP truyn tin gia nt n0 v n8set ftp [new Application/FTP]$ftp attach-agent $tcp$ftp set type_ FTP$ns at 0.0 "$ftp start"

# Ci t tc pht cho UDP set rate_UDP 5Mb# Thit lp giao thc nh tuyn UDPset udp [new Agent/UDP]$ns attach-agent $n2 $udpset null [new Agent/LossMonitor]$ns attach-agent $n7 $null$ns connect $udp $null$udp set fid_ 2$ns color 2 blue# Khi to mt ng dng CBR truyn tin gia n2 v n7set cbr [new Application/Traffic/CBR]$cbr attach-agent $udp$cbr set type_ CBR$cbr set packetSize_ 512$cbr set rate_ $rate_UDP$ns at 0.0 "$cbr start"

#--------------- Tnh bng thng -------------------------------proc plotBW {} {global ns sink null bwTCP bwUDPset samplingTime_BW 0.1set now [$ns now]# Tnh bng thng ca TCPset cur_bwTCP [$sink set bytes_]puts $bwTCP "$now [expr $cur_bwTCP*8/($samplingTime_BW*1000000)]"# Tnh bng thng ca UDPset cur_bwUDP [$null set bytes_]puts $bwUDP "$now [expr $cur_bwUDP*8/($samplingTime_BW*1000000)]"# Lp li bc trn sau thi gian l 0.1s$sink set bytes_ 0 $null set bytes_ 0$ns at [expr $now + $samplingTime_BW] "plotBW"}$ns at 0.1 "plotBW"

# Xc nh kch thc ca s trt vi thi gian ly mu la 0.03-----proc plotWindow {} {global ns tcp WindowVsTime set samplingTime_Win 0.1set now [$ns now]set cwnd [$tcp set cwnd_]puts $WindowVsTime "$now $cwnd"$ns at [expr $now + $samplingTime_Win] "plotWindow"}$ns at 0.1 "plotWindow" #--------------- Khai bo th tc finish -----------------------proc finish {} {global ns nf tf bwTCP bwUDP WindowVsTime$ns flush-trace# ng cc file lu d liuclose $nfclose $tfclose $bwTCPclose $bwUDPclose $WindowVsTime# Chy m phng cho NAM exec nam out.nam &exit 0}puts "\n BI TP LN: C S TRUYN S LIU"puts "\n ti: Kim tra thut ton iu khin lung s dng TCP \n"puts " GVHD : TS. Trng Thu Hng "puts " Nhm : 22"puts " Cc thnh vin : Nguyn Don Tun - MSSV 20112432 \n"puts " : Nguyn Minh Tun - MSSV 20125833 \n"puts " : Phm Minh Tun - MSSV 20112447 \n"puts " : Hong Tun - MSSV 20146973 \n"puts " : Nguyn Minh Tun - MSSV 20146974 \n"puts " Kt qu \n"puts " X l d liu m phng .... \n"#--------------- Thit lp thi gian m phng-------------------$ns at 300.0 "finish"

#--------------- Chy m phng ---------------------------------$ns run

The source code for computing the average bandwidth from the file out.tr

BEGIN {FS = " "} {# Cc thnh phn ca Trace fileevent = $1 ; time = $2 ; from = $3 ; to = $4; pktype = $5; pksize = $6;flags = $7 ; fid = $8 ; src = $9 ; dst = $10; seqnum = $11; pkid =$12;# Thc hin lc d liu t trace fileif ((event == "r") && (to == 8) && (pktype == "tcp")) {total_time = time;PacketSize = pksize;total_packet = seqnum;}}END{avg_bwTCP = total_packet*PacketSize*8/(total_time*1000000);print " ====> Bng thng trung bnh ca lung TCP l:\n"print " BW_TCP = "avg_bwTCP "(Mb/s) \n\n\n"}

PH LC II [DANH MC TI LIU THAM KHO]

[1]NS Simulator for beginners Lecture notes, 2003-2004, Univ. de Los Andes, Mrida, Venezuela and ESSI, Sophia-Antipolis, France.[2] Sliding Window Protocol and TCP Congestion Control - Simon S.Lam, Department of Computer, The University of Texas and Austin.[3]TCP Congestion Control - M.Allman, V.Paxson, and W.Stevens, April 1999, RFC 2581.[4]TCP/UDP Basics - Chunyan Fu, PhD. Ericsson Canada. http://users.encs.concordia.ca/~glitho/F09_TCP_UDP.pdf [5]o bng thng: http://www.isi.edu/nsnam/ns/tutorial/nsscript4.html

Hanoi University of Science and Technology | Nhm 2228