Professional Documents
Culture Documents
Sadraj Uvod........................................................................................................................................... 1 1. Protokol TCP - openito .................................................................................................... 2 1.1. 2. Kratki uvod u protokol TCP ...................................................................................... 2
Protokol TCP-snoop........................................................................................................... 9 2.1. 2.2. 2.3. 2.4. Metoda SnoopData() ................................................................................................ 12 Metoda SnoopAck() .................................................................................................. 13 Odnos protokol TCP-snoop - protokol usmjeravanja ............................................. 15 Alternativna rjeenja na sloju linka.......................................................................... 16 Smjer predajnik pokretnog vora prijemnik bazne stanice........................... 17 Smjer predajnik bazne stanice prijemnik pokretnog vora........................... 17
2.4.1. 2.4.2. 3.
Rezultati simulacije i opis programa................................................................................ 20 3.1. 3.2. Model rjeenja simulatora........................................................................................ 20 Parametri simulacije i komponente simulatora........................................................ 21 Fritchmanov model beinog kanala s gubicima............................................. 23
3.2.1. 3.3.
Rezultati simulacije.................................................................................................. 24
Zakljuak.................................................................................................................................. 31 Literatura.................................................................................................................................. 32 Skraenice ................................................................................................................................ 33 Popis stranih izraza .................................................................................................................. 34 Dodatak .................................................................................................................................... 35
Uvod
Cilj ovog diplomskog zadatka je opis i implementacija poboljanja protokola TCP (engl. Transmission Control Protocol) u beinom okruenju. Za predmet razmatranja uzet je protokol TCP snoop kao jedno od rjeenja s najboljim rezultatima. Snoop se pridodaje kao modul mrenom sloju (engl. Network Layer) referentnog OSI modela (engl. Open System Interconnection) bez zadiranja u transportni sloj (engl. Transport Layer). Integracija snoop modula vrijedi za infrastrukturni WLAN (engl. Wireless Local Area Network) kao i za neovisni WLAN (engl. ad hoc). U ovom radu za razmatranje je uzet infrastrukturni WLAN jer u takvoj arhitekturi snoop daje najbolje rezultate. Protokol TCP je pouzdani transportni protokol prvenstveno namijenjen inim mreama gdje njegovi mehanizmi kontrole toka uredno funkcioniraju. Meutim, njegova implementacija u beinom okruenju je malo problematina te su potrebne odreene preinake. Sukladno s time razvila su se razna rjeenja i inaice protokola TCP u beinim lokalnim mreama. Neke od karakteristika beinih mrea su: visoka uestalost pogreke bita (engl. Bit Error Ratio), koji iznosi do ak 10-3, veliko varijabilno kanjenje segmenata (engl. jitter), kapacitet i veliina elije, interferencija s drugim elektromagnetskim izvorima, promjena mrene topologije i osjetno smanjena propusnost (engl. throughput). Sve navedene injenice bitno utjeu na kvalitetu usluge, QoS (engl. Quality of Service) ili drugim rijeima na stupanj zadovoljstva korisnika nekom mrenom uslugom. Najvei problem predstavlja beini kanal, odnosno njegova nestabilnost pri prijenosu informacije od poiljatelja do primatelja. Snoop je samo jedno od razvijenih rjeenja, ali kao takav pokazuje najbolje rezultate u cilju poveanja propusnosti i efikasnosti rada protokola TCP u WLAN-u.
Napomena: Termin pristupna toka e se u nastavku rada koristiti ravnopravno kao i termin bazna stanica u ovisnosti o tome dali se govori o WLAN-u ili WMAN-u (engl. Wireless Metropolitan Area Network).
Navedeni algoritmi vrijede za ''temeljni TCP'', tj. Tahoe TCP dok se u ostalim inaicama protokola uvode poboljanja. Tako se za Reno TCP dodaje algoritam ubrzanog oporavka (engl. fast recovery). Ovaj algoritam omoguuje da se umjesto pokretanja sporog starta nakon primitka ponovljenih potvrda (uzimaju se u obzir tri potvrde) nastavi s izbjegavanjem zaguenja. Time se poveava iskoristivost mrenih resursa jer se ne eka na istek vremenskog brojaa te ponovnog slanja. Da bi se razumjela analitika dana u nastavku rada potrebno je opisati neke od temeljnih varijabli i vrijednosti bitne za rad TCP-a. I poiljatelj i primatelj imaju varijable prozora zaguenja (engl. congestion window). Za poiljatelja je to cwnd te predstavlja mjeru kapaciteta mree, a na strani primatelja to je rcvwnd i predstavlja mjeru kapaciteta na odredinoj strani. Maksimalni broj nepotvrenih segmenata izraava se kao min{cwnd, 2
rcvwnd}. Kada primatelj primi segment van redoslijeda alje ponovljenu potvrdu (obino se uzimaju 3 ponovljene potvrde) i na taj nain signalizira poiljatelju da je segment na koji pokazuje potvrda izgubljen te se taj segment ponovno alje i izvrava se algoritam sporog starta. Mehanizam rada samog protokola dan je prvo grafiki (Sl. 1-1), a zatim i matematiki. Kao to je vidljivo sa slike (Sl. 1-1) za vrijeme sporog starta vezan je eksponencijalni porast prozora zaguenja, dok je izbjegavanje zaguenja linearan. Takoer vrijedi da nakon isteka brojaa spori start traje samo do polovice veliine prozora zaguenja.
Analiza i opis varijabli karakteristinih za protokol TCP dani su u nastavku : Inicijalizacija : cwnd = 1; // prilikom prijema svake potvrde povea se za 1 sstresh = 65536; // put od sporog starta do izbjegavanja zaguenja (engl. slow start treshold) Dolazak potvrde ACK : if ( cwnd < sstresh) // spori start sstresh cwnd += MSS; // maksimalna veliina segmenta else // izbjegavanje zaguenja (engl. congestion avoidance)
cwnd += MSS * MSS; Dolazak dupliciranih potvrda ACK : cwnd /= 2; // smanjenje veliine prozora za pola te ponovno slanje segmenata poevi od nepotvrenog 3
sstresh = cwnd; Pretpostavlja se za da je dolo do zaguenja u mrei i gubitka segmenta. Istek vremenskog brojaa - timeout : sstresh = cwnd/2; cwnd = 1; // ponovno slanje segmenta Protokol TCP koristi princip klizeih prozora (engl. sliding window) prikazan na slici (Sl. 1-2), gdje veliina prozora pokazuje maksimalni broj segmenata koje mrea moe primiti ili drugim rijeima kapacitet mree. Bitno je naglasiti da i poiljatelj i primatelj imaju svoje prozore. U svakoj pristigloj potvrdi primatelj obavjetava poiljatelja o veliini svog prozora. Prilikom slanja svaki segment podataka se oznaava rednim brojem (engl. sequence number) koji se upisuje u zaglavlje segmenta (paketa). Najvea doputena veliina segmenta (MSS Maximum Segment Size) definiran je kao : MSS = MTU IPheader - TCPhedaer . MTU (engl. Maximum Transfer Unit) je maksimalna veliina jedinice prijenosa za neki tip mrene tehnologije, dok se zaglavlja odnose na mreni odnosno transportni sloj. U tablici (Tablica 1) su prikazane veliine MTU-a definirani RFC (engl. Request for Comments) dokumentima.
Tablica 1 Pregled MTU-a za pojedine mrene tehnologije
Opis tehnologije X.25, ISDN Serial Line IP (SLIP) Ethernet 4 Mbit/s Token Ring 16 Mbit/s Token Ring
1374 1390
HIPPI FDDI
65535 4532
Upravo zbog navedenih razloga TCP prua pouzdani prijenos informacija i kontrolu toka. Prva polovica klizeeg prozora odnosi se na poslane ali nepotvrene segmenta dok je druga polovica za segmente koji se mogu poslati odmah. Prilikom primitka svake potvrde klizei prozor se pomie udesno za jedno mjesto. Bitno je jo naglasiti da je protokol TCP pouzdan i konekcijski orijentiran te kao takav ima ugraen mehanizam uspostave konekcije. Razlog tome je u mogunosti razmjene parametara izmeu poiljatelja i primatelja te rezervacija potrebnih resursa. Postupak uspostave veze (Sl. 1-3) naziva se three-way handshake i karakterizira ga izmjena sinkronizacijskih segmenata (SYN), dok je postupak raskidanja konekcije vezan uz razmjenu FIN segmenata. Strana koja pokree konekciju alje svoj sinkronizacijski segment s rednim brojem segmenta koji je sluajno odabran. Nakon primanja SYN segmenta primatelj odgovara sa svojim SYN segmentom i rednim brojem segmenta kojeg sljedeeg oekuje. Naposljetku poiljatelj potvruje redni broj segmenta te zapoinje prijenos prvog podatkovnog segmenta. Primjer slanja podatkovnih segmenata i naina rada protokola TCP prikazan je slikom (Sl. 1-4), (Kralj [2003]). Za navedeni primjer poiljatelju je dozvoljeno slanje 5840 okteta podataka i to od rednog broja 1000 uz pretpostavku da su svi segmenti veliine 1460 okteta. Prozori na poiljateljevoj i primateljevoj strani postavljeni su na 5840 okteta, a to znai da poiljatelj moe poslati maksimalno 4 segmenta prije nego to stigne potvrda koja e aurirati njegov klizni prozor i omoguiti nastavak slanja. Nakon slanja svih 5840 okteta, stie potvrda koja potvruje prva 3 TCP segmenta. Klizei prozori se auriraju te se dozvoljava slanje dodatna 3 segmenta. 5
Strana A
Strana B
SYN se q
=X
eq SYN s
CK X+ = Y, A
ACK Y+1
U trenutku kada su poslana sljedea 3 segmenta poiljatelj privremeno obustavlja slanje podataka, veliina prozora je nula, a to traje sve dok ne stigne nova potvrda. Princip rada klizeih prozora objanjen je u (Kralj [2003]).
Kao to se vidi iz prijanjih objanjenja protokol TCP koristi proirenu metodu ARQ (engl. Automatic Repeat Request) Go-back-N uz proraun perioda vremenske kontrole na osnovu procijenjenog vremenskog krunog kanjenja RTT (engl. Round Trip Time). RTT je vrijeme koje je proteklo od trenutka slanja segmenta do trenutka primitka potvrde o prijemu segmenta. 6
Protokol TCP na svaki gubitak segmenta ''reagira'' na nain: Smanjenjem cwnd varijable na polovicu vrijednosti varijable sstresh. Ovo doprinosi smanjenju koliine podataka koji se alju u mreu. Na taj nain smanjuju se gubici nastali zaguenjem u mrei; Ponovnim postavljanjem varijable cwnd na vrijednost jednog segmenta i ulazak u spori start te eksponencijalni rast prozora zaguenja do sstresh = cwnd/2 vrijednosti kada poinje linearno izbjegavanje zaguenja; Vraanje na poetnu vrijednost i proraun vremenskog isteka brojaa na osnovu prethodnih vrijednosti i uz pomo Karnovog algoritma koji kae da u sluaju ponovnog slanja segmenta, nova vrijednost vremena isteka brojaa rauna se mnoenjem prethodno izraunate vrijednosti s faktorom koji je najee iznosa 2, (Stevens [1995]). esto se ovaj mehanizam naziva i backoff strategija. U sluaju velike uestalosti pogreaka prozor zaguenja se smanjuje prije ponovnog slanja segmenta. Protokol TCP je izvorno razvijan kao transportni protokol vezan uz iane mree te je usko vezan uz mreni protokol IP i upravo je zbog tih razloga potrebna modifikacija protokola TCP u beinom okruenju. Ostale inaice protokola TCP biti e samo nabrojane, vie u (Stevens [1995]): New Reno TCP ; SACK TCP ; Vegas TCP.
Bitno je za naglasiti da Vegas TCP u odnosu na Reno TCP pokazuje poveanje propusnosti do ak 70 % uz 50 70 % manje retransmisija. Na slici (Sl. 1-5) dana je podjela razliitih inaica protokola TCP u beinom okruenju, (Elaarag [2002]). Puni nazivi navedenih kratica objanjeni su na kraju rada. U sluaju gubitaka i velike uestalosti pogreaka u mrei protokol TCP radi kao i u inom okruenju i tu je izvor problema za rad u beinom okruenju. Smanjenjem prozora zaguenja kao odgovor na nepostojee zaguenje znatno se smanjuje propusnost i poveava kanjenje u WLAN-u. Uzrok navedenih problema je u nestabilnosti beinog linka (engl. wireless link) na kojem nastaju i najvei gubici koji nisu uvijek zbog zaguenja nego, npr. zbog fadinga (iznenadni propadi snage signala), prekida veze, interferencija s drugim elektromagnetskim izvorima, viestaznog rasprostiranja signala (engl. multipath propagation), ogranienosti kapaciteta elije itd.
U sutini postoje dva osnovna pristupa u rjeavanju problematike TCP-a u WLAN-u: Sakriti od poiljatelja sve gubitke koji nisu posljedica zaguenja. U tom sluaju nema promjena u implementaciji mrene infrastrukture, te pokuati ukazati poiljatelju da je prisutan beini link na putu do odredita i tako smanjiti gubitke u mrei. Jedno od rjeenja iz prve skupine prikazano je u nastavku rada, a to je protokol TCP-snoop. Usporedbom protokola TCP-snoop s ostalim rjeenjima, a misli se na rjeenja s kraja na kraj i rjeenja zasnovana na razdvajanju konekcije uoava se da jedino snoop ne naputa osnovnu funkcionalnost djelovanja protokola TCP. Na primjer za sluaj pristupa razdvajanjem konekcije ''kri'' se rad protokola TCP s potvrdnim segmentima. Takav pristup bitno utjee na period potreban za obnavljanje veze prilikom promjene pristupne toke. Za protokol TCPsnoop to vrijeme se kree od 5 do 70 ms dok je kod protokola I-TCP to vrijeme ak 1400 ms ovisno o koliini podataka koje je potrebno prenijeti na novu pristupnu toku. Prilikom prelaenja cilj je to vie skratiti vrijeme neaktivnosti TCP konekcije (engl. idle time).
2. Protokol TCP-snoop
Za svaki gubitak segmenta protokol TCP smatra da je posljedica zaguenja to u beinim mreama (WLAN) nije uvijek sluaj kao to je ranije opisano. Protokol TCP-snoop svoje djelovanje izvodi na razini linka i jedna od njegovih bitnih prednosti su minimalne promjene u pristupnoj toki. TCP-snoop spada u kategoriju koje podiu performanse mree koristei metodu proxy-ja - PEP (engl. Performance Enhancing Proxy). (Ho Ng et al [1997]). Djelovanjem ispod transportnog sloja izvodi se lokalna retransmisija (ili ponovno odailjanje) izgubljenih segmenata bez pokretanja TCP mehanizama za kontrolu zaguenja. Ostale metode koje se koriste za prilagodbu TCP-a beinom okruenju pripadaju u neku od sljedee tri grupe : Rjeenja s kraja na kraj (engl. End to End) ; rjeenja na razini linka (engl. Link Layer), te rjeenja zasnovana na razdvajanju konekcije (engl. Spliting Connection).
Ideja TCP-snoop-a je u tome da se sakriju od poiljatelja svi gubici nastali na sloju linka. Na taj nain TCP poiljatelj ne zna za pogreke na beinom linku pa tako nema i bespotrebnog pokretanja mehanizama za kontrolu zaguenja. Sve to dovodi do postizanja zadovoljavajue razine propusnosti za korisnika. U radu je detaljno opisan protokol snoop te izvedena simulacija istog u programskom jeziku Java. Bitno je naglasiti da je implementirana tzv. osnovna inaica protokola TCP-snoop (engl. Basic TCP-snoop). Implementacija protokola izvodi se uvoenjem modula snoop modula u pristupnu toku (engl. Access Point-AP). Naglasak je na promatranju infrastrukturnog WLAN-a u centraliziranom pristupu. To znai da se sva komunikacija izmeu ine i beine domene odvija preko pristupne toke, a izravna komunikacija izmeu pokretnih vorova (engl. wireless hosts) nije mogua. Slika (Sl. 2-1) prikazuje infrastrukturni WLAN s implementacijom snoop modula u pristupnoj toki.
Snoop modul nadgleda sve segmente koji prolaze TCP konekcijom u oba smjera, te u spremniku ima pohranjene sve TCP segmente od strane poiljatelja koji jo nisu potvreni od strane primatelja. Ukoliko nastanu gubici tada snoop izvodi lokalnu retransmisiju izgubljenih segmenata a da to poiljatelj ne zna. Snoop modul radi na principu spremi i proslijedi (engl. store and forward) bez unoenja protokolnog preteka (engl. overhead) koji bi dodatno smanjio propusnost mree. Kratka analiza protokola TCP uzeta je u razmatranje zato jer se protokol snoop direktno ''naslanja'' na njega. Sama implementacija izvedena je negdje izmeu mrenog i transportnog sloja. Bez zadiranja u rad protokola TCP. Nove funkcionalnosti se dodaju u pristupnu toku (snoop modul) i to vezano uz mreni sloj pristupne toke te male promjene kod mobilnog klijenta. Prednosti ovakvog pristupa posebno dolaze do izraaja u sluaju prelaenja mobilnog korisnika (engl. handoff), tj. prelaska u susjednu eliju ili drugim rijeima promjena pristupne toke. Tada nastaju veliki gubici, poveanje kanjenja i smanjenje propusnosti. Taj problem se rjeava grupiranjem trenutne pristupne toke korisnika i susjednih AP-a u multicast skupinu. U svakoj od stanica multicast skupine pokree se snoop agent tako da nova pristupna toka u trenutku prebacivanja ve ima kopije izgubljenih segmenata. Problem se javlja u sluaju kada nova pristupna toka nije lan multicast skupine pa je dio segmenata izgubljen za vrijeme prelaenja. Jedina modifikacija protokolnog sloaja je u mijenjanju mrenog sloja u pristupnoj toki. Snoop ''motri'' sve segmente koji prolaze kroz pristupnu toku u oba smjera te radi potrebno pohranjivanje u spremnik. Kada novi segment stigne u pristupnu toku od strane inog vora snoop ga dodaje u spremnik te ga prosljeuje kroz beini kanal do pokretnog vora. Nadalje, snoop nadzire i sve potvrde, ACKs (engl. Acknowledgements) poslane od primatelja (Balakrishnan et al. [1995]). U sluaju gubitka segmenta u beinom kanalu to se otkriva istekom lokalnog brojaa (engl. local timeout) i dupliciranih potvrda (Sl. 2-2) radi se ponovno slanje izgubljenih segmenata. Na taj nain pristupna toka ''skriva'' gubitke segmenata od poiljatelja te nema pokretanja mehanizama za izbjegavanje zaguenja karakteristinih za protokol TCP. Tablica (Tablica 2) prikazuje poboljanja koja TCP-snoop donosi za problem handoff-a, (Balakrishnan et al. [1995]). Bitno je uoiti da se unato uestalim promjenama pristupne toke vrijednost propusnosti bitno ne mijenja, to ne bi bio sluaj za protokol TCP bez snoop modula.
10
Poiljatelj
1 2
Primatelj
Prvo slanje
3 4 5
2 3 4 5
Snoop odrava visoku razinu propusnosti koja nije sklona naglim propadima. Nadalje, poboljanje protokola TCP-snoop u sluaju male uestalosti pogreaka nije toliko izraeno. Drugim rijeima, uvoenje snoop modula svu svoju efikasnost pokazuje u uvjetima visoke uestalosti pogreaka bita - BER.
Tablica 2 Ovisnost propusnosti o vremenu prelaenja
Propusnost [Mbit/s]
Razlog promjena u mrenom sloju pristupne toke lei u injenici da je to jedino mjesto u WLAN-u gdje korisnik moe imati potpunu kontrolu u radu protokola za usmjeravanje paketa izmeu ine i beine mree. U samoj pristupnoj toki mehanizmi transportnog sloja se ne pokreu. Originalna zamisao rada snoop modula ukljuuje promjene i kod ostalih mrenih elemenata kao to su pokretni i stacionarni vor. To se radi za sluaj slanja podataka od strane pokretnog vora, opisano u radu (Balakrishnan et al. [1995]). Meutim, zbog nedostatka opisa istog u literaturi u ovom radu to nee biti razmatrano. Sam rad protokola TCP-snoop vezan je uz dvije metode: 11
snoopData(). Metoda vezana uz obradu podatkovnih segmenata namijenjenih pokretnom voru kao i za njihovo pohranjivanje u spremnik. snoopAck(). Metoda radi obradu potvrdnih segmenata (ACKs) koji putuju prema stacionarnom voru i upravlja ponovnim slanjem izgubljenih segmenata prema pokretnom voru kroz beini kanal.
o Redni broj segmenta broja potvrde. Nastupa zbog gubitka segmenta izmeu pristupne toke i pokretnog vora. Segment se prosljeuje prema pokretnom voru a retransmisija je posljedica isteka vremenskog brojaa. Segment nije u slijedu i u spremniku ne postoji kao pohranjeni segment. U ovom sluaju segment je izgubljen u inom dijelu mree ili je isporuen u pogrenom redoslijedu. Segment se prosljeuje prema pokretnom voru i oznaava se kao ponovno poslani.
13
Spontani (engl. spurious) ACK. Kada neoekivano stigne ve viena potvrda od strane stacionarnog vora. Ovaj sluaj je vrlo rijetko nastupa. Odgovor na ovakvo stanje je da se takva potvrda odbacuje.
Dvostruki ACK segment (DUPACK). Sluaj kada pristigne potvrda identina onoj primljenoj prethodno. Opet postoji nekoliko podsluaja: o Kada segment nije u spremniku iz razloga to je izgubljen na putu izmeu stacionarnog vora i pristupne toke. Takva potvrda se jednostavno prosljeuje prema stacionarnom voru radi ouvanja stanja TCP-a. o Neoekivani DUPACK nakon to je segment izgubljen. Odgovor na ovo stanje je ponovno slanje segmenta u najvii prioritet. Za ovaj sluaj potrebna su dva reda za slanje, jedan za segmente vieg a drugi za segmente nieg prioriteta. Nadalje snoop vodi rauna i o maksimalnom broju dupliciranih potvrda za segment. o Oekivani DUPACK, koji stie nakon to pristupna toka sazna da je segment izgubljen. Takva potvrda se u pravilu odbacuje.
Slanje segmenata s viim prioritetom donosi poboljanju performansi mree u uvjetima visokih pogreaka bita. Na taj se nain omoguuje da ponovno poslani segmenti stignu do pokretnog vora u to kraem vremenu ime se smanjuje broj dupliciranih potvrda te tako poveava propusnost mree. Snoop vodi evidenciju o broju lokalnih retransmisija za svaki segment i resetira broja u sluaju da neki segment stigne ponovno od poiljatelja uslijed isteka brojaa na poiljateljovoj strani ili uslijed ubrzanog ponovnog slanja. Kao to je ranije reeno snoop radi i lokalnu retransmisiju za istek lokalnog brojaa. Za sluaj transfera podataka od pokretnog vora prema stacionarnom, uvode se negativne potvrde, (NACK) za traenje segmenata koji nedostaju. To se radi u sluaju isteka vremenske kontrole kod pristupne toke i kada je primljen odreeni broj segmenata. U ovom radu naglasak je na prouavanju rada protokola TCP za smjer prema pokretnom voru (engl. downlink) iz razloga to je za beine mree karakteristina asimetrija u prijemu podataka. Drugim rijeima prema klijentu se alje puno vea koliina podataka nego u odlaznom smjeru prema posluitelju. Podaci koji se alju prema posluitelju uglavnom su vezani uz zahtjeve odreenih resursa sa posluitelja koji sadre male koliine podataka.
14
15
Pristupna toka 1
segm1 beacon
Pokretni vor
Pristupna toka 2
g stron
segm2
acon er be
r buffe
est requ
forward re quest
segm3 segm4
handoff period
segm5
16
2.4.1.
Kontrola toka i slijed zahtijeva provodi se kroz nekoliko koraka: Pokretni vor alje podatke sve dok se ne dosegne maksimalna veliina spremnika za slanje (engl. maximum transmit buffer size) koja se rauna na osnovu mjerenja RTT-a, zahtijeva za ponovnim slanjem te dali ima jo podataka za slanje. Paketi koji ekaju na ponovno slanje imaju vii prioritet od ostalih. Kada pokretni vor vie nema paketa za slanje on postavlja tzv. e-bit u zaglavlje zadnje poslanog paketa. Bazna stanica alje poruke o svome stanju (engl. status messages) periodiki kroz beini kanal. Te poruke ne nose informaciju o veliini spremnika za slanje kao to je to sluaj u nekim drugim protokolima. Pomou vremenskog brojaa stanja (engl. status timer) koji se pokree prilikom slanja poruke stanja odreuje se gubitak paketa u beinom kanalu. Vremenski broja nalazi se samo na strani bazne stanice. U sluaju da primljeni paket sadri e-bit broja se ne pokree nego bazna stanica odmah alje poruku o stanju. Pokretni vor ponovno alje pakete koji ekaju na retransmisiju prije slanja ostalih paketa. Za ovaj korak bitno je rei da da je veliina spremnika za slanje kod pokretnog vora vea nego veliina ''prozora'' kod bazne stanice i tako se rjeavaju problemi vezani uz gubitak statusnih poruka prema pokretnom voru. Ova injenica bitno utjee na propusnost koja je ovom sluaju definirana kao broj paketa koji se prenesu za vrijeme trajanja RTT-a. Ovaj korak je najsloeniji te opis pojedinih detalja nije naveden iz razloga prelaska granica tematike samog rada.
2.4.2.
Bazna stanica alje nove pakete u sluaju da je veliina prozora razliita od nule, sve dok dolaze zahtjevi za ponovnim slanjem te sve dok ne ponestane paketa za slanje. Kao i za sluaj slanja pokretnog vora ukoliko nema vie paketa za slanje alje se e-bit na nain opisan ranije. Vremenski broja se pokree nakon slanja cijelog bloka paketa ili nakon slanja paketa s e-bitom. Uz to alje se i eksplicitni zahtjev za statusom (engl. Explicit status request message) ukoliko bazna stanica ne primi poruku od pokretnog vora prije isteka vremenskog brojaa. Pod pojmom bloka smatra se fiksni broja paketa odreen samim algoritmom AIRMAIL-a.
17
Pokretni vor alje poruku o statusu nakon to primi cijeli blok paketa. Na primjer biti pokazuje dali je paketi unutar bloka ispravno primljen. Biti = 1 znai da je paket i primljen a biti = 0 znai da nije primljen. Radi utede predajne snage pokretni vor ne alje poruke o statusu periodiki kako to radi bazna stanica, isto tako ih ne alje ni nakon prijema svakog paketa. Poruke o statusu alje samo nakon prijema cijelog bloka paketa ili nakon prijema e-bita.
Sluaj kada bazna stanica ponovno alje traene pakete. Bitna injenica je da se alju samo izgubljeni paketi unutar bloka a ne cijeli blok i tako se tedi na irini prijenosnog pojasa. Nadalje, bazna stanica takoer i pokree vremenski broja radi otkrivanja dali je pokretni vor poslao poruku o statusu koja potvruje prijenos bloka paketa u nekom vremenu intervalu odreenim brojaem. Ukoliko poruka o statusu ne stigne prije isteka brojaa, bazna stanica alje alje eksplicitni zahtjev za statusom. Ukoliko ni nakon nekoliko slanja eksplicitnih poruka o statusu odgovor ne stigne bazna stanica raskida konekciju ili postavlja vezu u stanje hibernacije
Pouzdanost protokola temelji se na utedi resursa i principu ponovnog slanja izgubljenih paketa. Odluka o prisutnosti pogreaka unutar paketa temelji se na dobro poznatom mehanizmu CRC (engl. Cyclic Redudancy Check). Optimizacijom koda koji se dodaje na pakete moe se smanjiti broj retransmisija te ispraviti pogreke. Za stvarnovremenske aplikacije kao to su audio i video mehanizam retransmisije nije dobar jer unosi prevelika kanjenja. U tom sluaju rabi se FEC koji osigurava dobar QoS. Dobrim podeavanjem 18
parametara FEC-a iskoristivost kanala raste kao to se i smanjuje kanjenje tijekom promjene bazne stanice. AIRMAIL je kao i snoop jo jedna od inaica protokola za poboljanje TCP-a u beinom okruenju. Svoje djelovanje temelji na retransmisijama i utedi prijenosnog pojasa na razini sloja linka, bez zadiranja u transportni sloj. Meutim za promatranu problematiku vezanu uz TCP u WLAN-u snoop daje puno bolje rezultate, osobito za propusnost, nego AIRMAIL. Meutim za sluaj WMAN-ova AIRMAIL je jedno od najboljih rjeenja. Prednost rjeenja s retransmisijom na sloju linka su u tome da je rjeenje nevidljivo od sloja IP na vie, te da protokol TCP zadrava svoj znaaj s kraja na kraj. Neki od nedostataka koji se pojavljuju su: problemi ukoliko TCP i protokol sloja linka rade retransmisiju istovremeno, pojava promijene redoslijeda segmenata, uslijed velikih kanjenja i kolebanja kanjenja (engl. jitter), problemi vezani uz due periode prekida konekcije te problemi tzv. uskog grla pristupne toke (engl. bottleneck) ili drugim rijeima problem viestrukih TCP konekcija izmeu dvaju domena (Jang et al. [2003]). Jo je bitno naglasiti da protokol sloja linka koristi ''poznavanje'' rada protokola TCP kako bi se gubici sakrili od poiljatelja. Treba naglasiti da je ovdje vie naglasak na odravanju iznosa propusnosti konstantnim s obzirom na karakteristiku beinog kanala.
19
20
Kao to je vidljivo sa slike (Sl. 3-1) grafiko suelje sastoji se od nekoliko dijelova: Simulation Log. U ovom prozoru se pri poetku i zavretku simulacije ispisuje datoteka log.txt koja opisuje tijek simulacije i bitne dogaaje vezane uz simulaciju (npr. da li je uspostavljena konekcija izmeu komunicirajuih entiteta, broj poslanih i izgubljenih segmenata i sl.). Result options. Prikaz rezultat je dan kao funkcija vremena. Postoji mogunost biranja prikaza veliine prozora zaguenja, rednih brojeva segmenata te propusnosti sve u ovisnosti o trenutku simulacije. Nadalje, u ovom dijelu je dio vezan za aktivaciju snoop modula u pristupnoj toki kao poboljanja u radu protokola TCP u beinom okruenju. Naposlijetku, postoji mogunost provedbe paralelne simulacije za razne algoritme i mogunost usporedbe rezultata na istom grafu. Ovdje je bitno za rei da se svi rezultati ispisuju u tekstualnu datoteku u stupastom obliku upravo radi lake obrade rezultata. Za prikaz rezultata moe se uzeti bilo koji alat za iscrtavanje grafova kao to je Microsoft Excel ili besplatni program Gnuplot te je taj dio ostavljen korisniku na izbor. Channel options. Dio predvien za podeavanje karakteristika beinog kanala kao to je model kanala, vrijeme propagacije kroz beini kanal, vjerojatnost gubitaka segmenata. Server options. Najbitniji dio simulatora u kojem se unose parametri kljuni za simulaciju, odnosno rad protokola TCP. Implementirana su 2 mehanizma protokola TCP, i to Tahoe i Reno. Rad simulatora predstavljen je kroz vremenske cikluse. U jednom vremenskom ciklusu klijent i pristupna toka mogu primiti, obraditi te poslati samo jedan TCP segment. Svi TCP segmenti koji se izmjenjuju izmeu entiteta postavljeni su na korisniki zadanu vrijednost MSS i kao takvi se alju.
21
Unutar simulatora sam ini link nije implementiran kao klasa nego se simulira na nain da se slanje svakog segmenta odgaa za period vremena od 10 ms. Tako se opisuje propagacija inim linkom na putu do pristupne toke. to se beinog kanala tie, u simulatoru postoji mogunost biranja razdiobe gubitaka izmeu tzv. Fritchmanovog modela kanala i uniformne razdiobe gubitaka segmenata u beinom kanalu, (Kralj [2003]). Sve simulacije izvedene u radu odnose se na Fritchmanov model kanala koji je ukratko opisan u nastavku rada i predstavlja poopeni Gilbertov model beinog kanala s gubicima. Sluaj s uniformnom razdiobom ne preporuuje se za simulacije s aktivnim snoop modulom jer daje izrazito loe rezultate i implementiran je u simulatoru samo radi usporedbe. Maksimalna veliina prozora zaguenja i kod poiljatelja i kod primatelja iznosi 65536 okteta. Takoer, definira se i maksimalni broj retransmisija, nakon kojega se konekcija izmeu entiteta raskida i ispisuje poruka o isteku vremenske kontrole. Simulator se sastoji od nekoliko komponenti a to su: Klijent pokretni vor. Rad klijenta zasniva se na dobro poznatim mehanizmima rada protokola TCP. Za svaki primljeni segment od strane poiljatelja alje potvrdni segment s rednim brojem segmenta kojeg sljedeeg oekuje. Prilikom ponovnog slanja segmenta ne rauna se RTT (koristi se pojednostavljeni mehanizam retransmisije) i to samo za segmente koji iniciraju (SYN) odnosno raskidaju konekciju (FIN), (Kralj [2003]). Beini kanal s gubicima. Implementiran kao zasebna klasa u Javi te povezuje klijenta s posluiteljem, odnosno s pristupnom tokom. Model kanala i nain funkcioniranja opisan je u nastavku rada. Pristupna toka. Bitna komponenta simulatora jer obavlja funkciju mosta (engl. bridge) izmeu dvaju domena. Za vrijeme uspostave konekcije izmeu klijenta i posluitelja pristupna toka je transparentna ili drugim rijeima svoju funkciju poinje obavljati tek kod slanja podatkovnih segmenata i aktivnog snoop modula. Svi segmenti poslani od posluitelja kao i potvrdni segmenti, poslani od klijenta, prolaze kroz tu komponentu. Nadalje, upravo je u pristupnoj toki implementiran snoop modul koji pohranjuje potvrde i segmente lokalno u spremnik. Takoer, u sluaju aktivnog snoop modula rauna se vrijednost lokalnog vremenskog brojaa za sluaj lokalne retransmisije. U originalnom modelu protokola TCP-snoop uvode se prioriteti za pakete koji ekaju na ponovno slanje u spremniku pristupne toke. Navedeni prioriteti za ponovno slanje paketa nisu razmatrani u ovom radu.
22
Posluitelj stacionarni vor. Ima ulogu poiljatelja i svi mehanizmi bitni za rad protokola TCP, kao to su algoritmi kontrole zaguenja, dinamiko raunanje vremenskog brojaa implementirani su upravo u ovoj komponenti.
TCP segment. Pojednostavljeni model TCP segmenta bez dodatnih zaglavlja, preuzet iz rada (Kralj [2003]). Slika (Sl. 3-2) prikazuje strukturu TCP segmenta koritenog u simulaciji. Polje Duljina segmenta odnosi se na podatkovni dio TCP segmenta i to u oktetima. Prilikom prijema segmenta, dotini se odmah obrauje bez pohranjivanja u spremnik, osim u sluaju aktivnog snoop modula.
Engine simulatora. Jedina klasa s main metodom. Kreira grafiko suelje prema korisniku, odreuje razmjetaj komponenti unutar grafikog suelja, omoguuje unos korisnikih parametara za pojedine metode unutar simulatora te ispis bitnih dogaaja vezanih uz simulaciju. Navedeno ne znai da se kompletan tijek simulacije ispisuje unutar grafikog suelja, za to slui konzola (engl. console) unutar samog Java razvojnog okruenja.
3.2.1.
Navedeni model opisuje se kao Markovljev lanac prvog reda s dva stanja, (Pan et al. [2000]). Svako od dva stanja odgovara stanju beinog kanala na putu izmeu poiljatelja i primatelja, odnosno izmeu pristupne toke i beinog klijenta. Markovljev lanac ima stanja ON i OFF. Dok je beini kanal u stanju ON svi segmenti se ispravno prenose do beinog klijenta, a u sluaju stanju OFF svi poslani segmenti su izgubljeni u kanalu. Gubici koji nastaju u beinom kanalu su usnopljeni, to znai da se na segmente gleda kao na uzastopni niz koji tvori jedinstveni tok podataka. Za Fritchmanov model bitno je rei da su gubici u dolaznom i odlaznom smjeru (engl. uplink) u potpunosti neovisni te da je prijelaz iz jednog stanja u drugo mogu samo na razini cijelog segmenta odnosno na kraju vremenskog odsjeka. Ovaj podatak vezan je uz polje unutar simulatora ''Average Loss Length'' koje predstavlja duljinu snopa gubitaka kao broj vremenskih odsjeaka. 23
Prosjena vremena zadravanja u stanjima opisana su varijablama Ton i Toff te se ravnaju po geometrijskoj razdiobi. Za sluaj da je u sluajni broj izmeu 0 i 1 i da je z vjerojatnost naputanja stanja, duljina zadravanja x u jednom od stanja rauna se kao: u = (1 z ) x log(u ) = log(1 z ) x
log(u ) = x log(1 z )
x=
log(u ) log(1 z )
Prilikom pokretanja simulacije korisnik unosi vrijednost Toff i vjerojatnost pogreke Pb. Varijabla Pb drugim rijeima predstavlja stacionarnu vjerojatnost boravka beinog kanala u stanju OFF. Vrijednost varijable Pb rauna se na nain:
Pb = Toff Ton + Toff
Poto je vjerojatnost Pb poznata iz navedenog izraza, lako je izraunati stacionarnu vjerojatnost boravka u stanju ON, pomou izraza:
Pg = 1 Pb
Bitno je jo naglasiti da su uvjetima u kanalu izloeni ne samo segmenti nego i potvrde koje klijent alje posluitelju. Uvjeti simulacije za sluaj kada je snoop modul aktivan u pristupnoj toki i kada nije su isti upravo da bi se uoila poboljanja koja unosi snoop modul na rad protokola TCP u beinom okruenju. Ovdje je potrebno napomenuti da je problem odreivanja modela koji bi dobro opisivao beini kanal poseban problem i opisan je s raznim matematikim modelima.
TCP segmenata, dok je u suprotnom sluaju taj broj neto vei od 40 TCP segmenata. Obzirom da veliina prozora zaguenja predstavlja na neki nain trenutnu mjeru kapaciteta mree, navedeno poboljanje dobiva jo vie na svome znaaju. Kao to je vidljivo sa slike (Sl. 3-3) nakon isteka vremenske kontrole zapoinje period sporog starta sve do perioda izbjegavanja zaguenja. Trajanje vremena isteka vremenskog brojaa isto je za sluaj bez aktivnog snoop modula i s aktivnim snoop modulom. Moe se uoiti da protokol TCP-snoop ''poznaje'' i ''slijedi'' mehanizme rada protokola TCP uz znatan porast ukupnih performansi sustava. Jo treba dodati da su sve simulacije i prikazani rezultati napravljeni za referentni protokol Tahoe TCP zato to od svih inaica protokola TCP u WLAN-u pokazuje najloije rezultate.
3500 3000 CW ND [oktet] 2500 2000 1500 1000 500 0 0 500 1000 1500 2000 2500 3000 3500
Iz svega navedenog moe se zakljuiti da protokol TCP-snoop sprjeava istek vremenskog brojaa na strani poiljatelja i odrava poveanu vrijednost veliine prozora zaguenja u svakom vremenskom trenutku simulacije. Upravo su ova dva imbenika kljuna za odravanje konstantne vrijednosti propusnosti, to osobito dolazi do izraaja za vrijeme prelaenja izmeu susjednih pristupnih toaka. U ovom radu propusnost je uzeta kao predmet razmatranja vezana uz rad protokola TCP bez aktivnog snoop modula i to za protokole TCP Tahoe i Reno radi usporedbe. Razlog za to je to problem prelaenja nije uzet u detaljnije razmatranje, tj. nije predmet razmatranja diplomskog rada. Obzirom da protokol TCP-snoop najbolje funkcionira u uvjetima uestalih pogreaka, poeljno je kod simulacije poveati vjerojatnost boravka beinog kanala u OFF stanju. U simulaciji se ne razmatra BER, ali treba rei da je utjecaj snoop modula u sluaju malih iznosa 25
BER-a na performanse WLAN-a gotovo neznatan, ak i degradirajui, (Balakrishnan et al. [1995]). Za primijetiti (Sl. 3-3) je da je poboljanje vezano za veliinu prozora zaguenja u simulaciji trenutno. U stvarnosti to nije sluaj zato to protokol TCP-snoop ima svojstvo spore konvergencije na poboljanje performansi unutar WLAN-a, te se smatra jednim od nedostataka protokola. Analizom simulacije utvreno je da je da u sluaju gubitaka veeg broja potvrda posluitelj i dalje nastavlja sa slanjem podatkovnih segmenata. Meutim, sluaj gubitka samo jednog podatkovnog segmenta uslijed trenutnog stanja beinog kanala za posljedicu ima niz retransmisija. Slika (Sl. 3-4) prikazuje ovisnost rednog broja segmenta (engl. sequence number) o vremenu simulacije opet za dva sluaja, bez aktivnog snoop modula i s aktivnim snoop modulom u pristupnoj toki. Uoava se nagli porast rednih brojeva poslanih TCP segmenata oko trenutka t = 305 ms za sluaj aktivnog snoop modula to znai da poiljatelj ''ne zna'' za gubitke u beinom kanalu i ne radi retransmisiju segmenata. Redni broj segmenta rauna se na nain da je svaki sljedei redni broj jednak zbroju maksimalne veliine segmenta i prethodnog rednog broja TCP segmenta. Inicijalni redni broj prvog TCP segmenta koji se alje postavljen je na 1 radi boljeg prikaza pri iscrtavanju rezultata. U sluaju kada snoop modul nije aktivan neki od segmenta s istim rednim brojem alju se vie puta, to znai da se pokreu mehanizmi kontrole zaguenja koji izrazito degradiraju performanse WLAN-a. U radu (Vangala [2002]) navedeni su podaci za ostale inaice protokola TCP, tako Tahoe, Reno, New Reno pokazuju osjetno poboljanje u broju poslanih segmenata u sluaju aktivnog snoop modula dok najvee poboljanja pokazuje TCP Vegas.
2000 1800 1600 1400 1200 1000 800 600 400 200 0 0 1000 2000 3000 4000 5000 6000 7000 8000 Vrijeme [ms] Regular TCP Snoop TCP
Sl. 3-4 Tahoe TCP ovisnost rednog broja segmenta o vremenu simulacije
26
Zanimljivo je da protokol TCP SACK koji pokazuje najbolje rezultate bez prisutnosti snoop modula, za sluaj njegove prisutnosti postaje najloije rjeenje za implementaciju u WLAN-u. Slika (Sl. 3-5) predoava vrijednost veliine prozora zaguenja za sluaj kada se maksimalna vrijednost lokalnog brojaa u pristupnoj toki smanji. Uoava se manji broj TCP segmenata koje poiljatelj moe poslati u mreu, (Sl. 3-5). Nain na koji se rauna vrijednost lokalnog brojaa je dobro poznati Karnov algoritam, (Stevens [1995]). Princip odreivanja vrijednosti brojaa opisan je slikom (Sl. 3-6). Isti se princip primjenjuje na posluitelju kao i na poiljatelju i u pristupnoj toki. Ovaj pristup daje dobre rezutate i u uvjetima uestalih pogreki to je karakteristino za beini kanal. Ukratko, kada stigne potvrda za prvi sljedei segment koji nije ponovno poslan iznos vremenskog brojaa rauna se na nain opisan slikom (Sl. 3-6).
3000 2500 CWND [oktet] 2000 1500 1000 500 0 0 500 1000 1500 2000 2500 3000 3500 Vrijeme [ms] Regular TCP TCP Snoop
Kao to je ranije navedeno pristupna toka je transparentna za sve TCP segmente sve do trenutka aktiviranja snoop modula. Razlog tome lei u pretpostavci da u inom dijelu mree, tj. na putu izmeu posluitelja i pristupne toke gubici nisu mogui. Takoer, pretpostavka je da pristupna toka ne unosi dodatno kanjenje ako snoop modul nije aktivan. ''Problem'' koji unosi snoop na rezultate simulacije je poveanje kanjenja s kraja na kraj (engl. end-to-end) uslijed spremanja segmenata u spremnik pristupne toke te uslijed pretraivanja i usporedbe segmenta koji se obrauje sa segmentima unutar spremnika. Bitno je naglasiti problem prorauna vrijednosti lokalnog brojaa na strani pristupne toke, koji se esto postavlja na fiksnu vrijednost, tako da su mogua i daljnja poboljanja. U simulatoru je pokuana realizacija s ugraenom Java funkcijom random() koja bi raunala vrijednost 27
vremenskog brojaa u odnosu na neku maksimalnu vrijednost, meutim opisani postupak nije se pokazao kao najbolji jer ne uzima u obzir vrijednost vremena propagacije TCP segmenta kroz beini kanal, ne sprjeava istek vremenskog brojaa na posluitelju i ponekad daje izrazito lou razdiobu vrijednosti lokalnog brojaa.
Na slikama (Sl. 3-7, Sl. 3-8) dan je prikaz rezultata za jedan te isti simulacijski postupak, tj analizirani su propusnost i veliinu prozora zaguenja za sluaj kada snoop modul nije aktivan. Svi parametri simulacije ostaju isti za sve simulacijske postupke. Vrijednosti iznosa propusnosti su apsolutne to znai da nemaju praktinu vrijednost nego samo slue za prikaz rezultata. Na grafu propusnosti uoava se da u pojedinim trenucima vrijednost propusnosti pada na vrijednost nula.
6 Propusnost [segment/ms] 5 4 3 2 1 0 0 2000 4000 6000 8000 10000 Vrijeme [ms]
Uzrok stanja propada iznosa propusnosti na vrijednost nula je u injenici da za vrijeme dok se eka na istek vremenskog brojaa podatkovni segmenti ne alju ili je beini kanal u stanju OFF. To za klijenta u simulaciji znai da ne prima nikakve segmente jer su svi poslani 28
segmenti izgubljeni u beinom kanalu na putu do odredita, npr trenuci simulacije od t = 790 ms do t = 2209 ms (Sl. 3-7). Nastavak slanja novih segmenata uvjetovan je stanjem u mrei i na opisani nain provodi se kontrola toka. Naime kako je ranije opisano i potvrdni segmenti izloeni su gubicima u beinom kanalu, tada su svi segmenti koji se alju izgubljeni i ovaj sluaj u stvarnoj mrei nastupa samo kod izrazito izraenog fadinga odnosno iznenadnih i snanih propada radio signala.
300 250 CWND [oktet] 200 150 100 50 0 0 2000 4000 6000 8000 10000 Vrijeme [ms]
Slika (Sl. 3-9) prikazuje iznos propusnosti o vremenu uz napomenu da se razmatra protokol TCP Reno i to samo radi usporedbe. Uoava se neto bolja karakteristika grafa propusnosti nego za sluaj Tahoe TCP. To se deava zbog novog algoritma koji uvodi TCP Reno, a to je algoritam ubrzanog oporavka (engl. fast recovery). Pomou navedenog algoritma izbjegava se period sporog starta nakon primitka 3 ponovljene potvrde koje bi ukazivale de je segment na kojeg pokazuje potvrda izgubljen. Umjesto sporog starta nastavlja se linearno izbjegavanje zaguenja. Tako se efikasnije koriste mreni resursi jer se ne troi vrijeme na ekanje isteka vremenske kontrole, a vrijednost veliine prozora zaguenja ne smanjuje se na 1 segment nego na polovicu ime je omoguen brzi oporavak veze nakon gubitaka pojedinanih segmenata, (Stevens [1995]). Na kraju rada valja spomenuti jo jednu manjkavost protokola TCP-snoop, a to je sluaj kada je na pristupnu toku vezan vei broj beinih klijenata. Osobito je to izraeno za sluaj istovremenog slanja vee koliine podataka posluitelju (engl. upload) kada je snoop modul aktivan.
29
8 Propusnost [segment/m s] 7 6 5 4 3 2 1 0 0 1000 2000 3000 Vrije me [ms] 4000 5000 6000
Tada se zauzima vie prijenosnog pojasa (engl. bandwith) u beinom kanalu zbog retransmisija segmenata i zauzee medija od pojedinog klijenta se produuje, (Ho Ng et al. [1997]). Meutim, ovakav sluaj rijetko nastupa, a postoje i posebni programski alati i protokoli koji omoguuju i ispravljaju navedeni nedostatak protokola TCP-snoop.
30
Zakljuak
Protokol TCP kao temeljni transportni protokol neizbjean je u svijetu modernih komunikacijskih tehnologija. Beine mree danas zauzimaju sve vei postotak kao najprihvatljivije i najisplativije rjeenje vezano uz prijenos informacije. Osobito to dolazi do izraaja u uvjetima kada instalacija ine infrastrukture nije mogua ili neisplativa. Svakim danom javljaju se novi IEEE 802.11x standardi vezani uz WLAN-ove koji sa sobom donose i nove usluge za korisnika. Dananji WLAN-ovi uglavnom se ostvaruju kao beine mree s radioprijenosom i koriste tehniku proirenog spektra DSSS (engl. Direct Sequence Spread Spectrum) na fizikom sloju. Naravno, za pouzdani prijenos podataka koristi se protokol TCP, ali u raznim inaicama opisanim u radu. Najbitnija prednost protokola TCP je u prilagodljivosti koju posjeduje za razliite prijenosne sustave. Meutim neki njegovi temeljni principi nisu prilagoeni za rad u beinom okruenju. Razlog tome su veliki gubici koji nastaju u beinom kanalu. Upravo zato uvode se poboljanja namijenjena iskljuivo radu protokola TCP u WLAN-u. U radu je detaljno opisana jedna od takvih inaica protokola TCP, a to je TCP-snoop. Analiza samog protokola TCP-snoop napravljena je koristei vlastiti simulator razvijen u programskom jeziku Java. Upravo je taj protokol u raznim radovima naveden kao najprihvatljivije rjeenje za WLAN-ove, (Vangala et al. [2002]). Kada se kae najprihvatljivije, onda se misli na performanse i isplativost rjeenja. Protokol Tahoe TCP bio je predmet promatranja u radu sa i bez snoop modula u pristupnoj toki. Isti na gubitke reagira smanjenjem veliine prozora i manjim brojem segmenata koje poiljatelj moe poslati u jedinici vremena. S obzirom da protokol TCP-snoop djeluje ispod transportnog sloja on ne pokree algoritme kontrole zaguenja. Isto tako protokol TCP-snoop pripada skupini protokola koji dobro ''poznaju'' mehanizme rada protokola TCP. Osnovna zamisao rada protokola TCP-snoop je pohranjivanje segmenata namijenjenih pokretnom voru i obavljanje lokalne retransmisije segmenata izgubljenih u beinom kanalu. Simulacije izvedene u radu pokazale su neka od poboljanja koja protokol TCP-snoop unosi u poboljanje rada protokola TCP u beinoj okolini. Prvenstveno se ta poboljanja odnose na injenicu da nema smanjenja veliine prozora zaguenja na strani poiljatelja u sluaju gubitka segmenata i na to da se od poiljatelja ''sakriju'' gubici nastali u beinom kanalu.
31
Literatura
[1] BALAKRISHNAN, H. SESHAN, S. KATZ , H. R. 1995. Improving Reliable Transport and Handoff Performance in Cellular Wireless Networks. ACM Wireless Communications Magazine, Vol. 1, Number 4. STEVENS, W.R. 1995. TCP/IP Illustrated: The protocols, Volume 1.Adisson Wesley Longman Inc. VANGALA, S. LABRADOR, A. M. 2002. Performance of TCP over Wireless Networks with the Snoop Protocol. In Proceedings of IEEE LCN, Tampa Florida, pp. 600 601, November 2002. HO NG, C. CHOW, J. TRAJKOVI, LJ. 2002. Performance Evaluation of TCP over WLAN 802.11 with the Snoop Performance Enhancing Proxy. OPNETWORK Conference 2002, Washington, DC, August 2002. XYLOMENOS, G. POLYZOS, G. SAARANEEN, M. 2001. TCP Performance Issues over Wireless Links.IEEE Communications Magazine, Volume 39, pp. 52 - 58. ELAARAG, H. 2002. Improving TCP Performance over Mobile Networks. ACM Computing Surveys, Vol. 34, pp. 357 374, November 2002. SCHILLER, J. 2003. Mobile Communications 2nd edition.Adisson Wesley Inc. JANG, H. SUH, Y. 2003. A Flow Control Scheme for Improving TCP Throughput and Fairness for Wireless Networks. Proceedings of IEEE Wireless Communications and Networking Conference (WCNC 2003), March 2003. PAN, J. MARK, W. J. and SHEN, X. 2000. TCP Performance and Its Improvement Over Wireless Links. GLOBECOM 2000 IEEE Telecomunnications Conference no.1, San Francisco, pp. 62 66, November 27 30, 2000.
[2] [3]
[4]
[9]
[10] BAANT, A. i dr. 2003. Osnovne arhitekture mrea. Element, Zagreb. [11] KRALJ, Z. 2003. Tehnike upravljanja zaguenjem u beinim lokalnim mreama. Diplomski rad, ZZT FER, Zagreb.
32
Skraenice
ARQ ATM BER BER CRC DSSS FDDI FEC GBN GUI IP ISDN I-TCP MSS MTU OSI PEP PSTN QoS RFC RLP RTO RTT TCP WAP Automatic Repeat reQuest Asynchronous Transfer Mode Bit Error Ratio Bit Error Ratio Cyclic Redudancy Check Direct Sequence Spread Spectrum Fiber Distributed Data Interface Forward Error Corection Go-Back-N Graphical User Interface Internet Protocol Integrated Services Digital Network Indirect TCP Maximum Segment Size Maximum Transfer Unit Open System Interconnection Performance Enhancing Proxy Public Switched Telephone Network Quality of Service Request for Comments Radio Link Protocol Retransmission TimeOut Round Trip Time Transmission Control Protocol Wireless Application Protocol
WLAN Wireless Local Area Network WMAN Wireless Metropolitan Area Network 33
34
Dodatak
Upute za koritenje programske podrke Za pokretanje simulatora potrebno je kreirati novi direktorij te kopirati cijeli Java projekt u taj direktorij, npr. C:\temp\TCPSnoop. Uz sam projekt potrebno je kopirati i Engine.bat skriptu koju treba pokrenuti. Nakon toga otvara se grafiko suelje u kojem korisnik unosi eljene parametre potrebne za simulaciju. Sama simulacija pokree se klikom na dugme ''Start''. Po zavretku simulacije vidi se ispis dogaaja u Command prompt-u a u samom grafikom suelju neki bitni podaci vezani uz simulaciju kako je prikazano slikom (Sl. 3-1). Treba naglasiti da ovo vrijedi za sluaj kada je projekt ve preveden (engl. compile) tj. postoje .class datoteke za pojedine klase. Ukoliko to nije sluaj potrebno je prvo program prevesti u byte codove (datoteke s ekstenzijom .class) i to pomou naredbe javac. Slika (Sl. 1) predoava internu blok-shemu simulatora i prikaz komunikacijskih ruta izmeu pojedinih objekata u simulaciji
35
Engine: segment delivered to access point t = 507 Engine: segment delivered to client t = 607 Channel: fromServer.seqNum = 82 Channel: fromServer.length = 40 Channel: fromServer.ackNum = 301 Client: receivedSegment.ackNum = 301 Client: state ESTABLISHED 2 // number of state Client RCV_NXT = 42 Client: receivedSegment.seqNum = 42 Client: receivedSegment.length = 40 Client: Expected segment received! Client RCV_NXT = 82 Loss Distribution = 1 Upload burst length = 36 Upload state = 0 Channel: fromClient.seqNum = 301 Channel: fromClient.ackqNum = 82 Channel: fromClient.length = 0 // ACK segment Engine: segment delivered to client t = 608
36