• Ei tuloksia

Ruuhkanhallinta-algoritmit langattomissa verkoissa

Kuljetuskerroksen TCP -protokollaon kehitetty kauan ennen nykyisiä langattomia

lähiverkkoja ja mobiileja verkkoyhteyksiä. TCP:n ruuhkanhallintaominaisuudet on

suunniteltu toimimaanoptimaalisestikaapeleidenvälityksellätapahtuvassa

tiedon-siirrossa. Tiedonsiirrossa tapahtuva segmenttien katoaminen on varsin harvinaista

kiinteissä verkoissa verrattuna langattomiin verkkoihin, joissa vaimentuminen,

häi-segmenttien korruptoitumistaja katoamista. Perinteiset ruuhkanhallinta-algoritmit

eivät pysty erottamaan radiotielläsattuvia siirtovirheitä ruuhkautumisesta ja näin

ollen ne virheellisen tulkinnan takia aiheuttavat vastaavat toimet kuin

ruuhkautu-minen.Radiotienerilaisuussiirtotienäaiheuttaalinkkikapasiteetinalikäyttöä,koska

esimerkiksi TCP-yhteys tulkitsee verkonruuhkautuneeksi jo pienestäkin

pakettihu-kasta[3℄. Kyseisenilmiönvaikutuksensuuruutta erikuljetuskerroksenalgoritmeihin

tutkitaantarkemmintämän diplomityönsimulaatioissa.

3 Kuljetuskerroksen verkkoprotokollat

Tietoliikennetekniikassa kuljetuskerroksella tarkoitetaanjoukkoaprotokolliaja

me-kanismeja, joiden tehtävänä on kapseloida sovellustason data segmentteihin ja

da-tagrammeihin ja näin mahdollistaa tiedon siirron sovellukselta toiselle.

Kuljetus-kerroksen tehtäviin kuuluvat myös esimerkiksi ruuhkan- ja vuonhallintasekä taata

mahdollisestiluotettavatiedonsiirto yhteyden päästäpäähän.

Yleisesti tunnettuja kuljetuskerroksen protokolliaovat muun muassa T

ransmis-sionControlProtool(TCP), UserDatagramProtool(UDP)sekäDatagram

Con-gestion Control Protool (DCCP). Nykyisissä tietoverkoissa käytetään pääasiassa

TCP- ja UDP-protokollia [11℄. Tämän tutkimuksen kohteena ovat

ruuhkanhallin-nallisiaominaisuuksia sisältävätTCP sekä DCCP.

Taulukko 1:Kuljetuskerroksen protokollat

TCP UDP DCCP

Paketin tyyppi Segmentti Datagrammi Datagrammi

Luotettava siirto Kyllä Ei Ei

Vuonhallinta Kyllä Ei Ei

Ruuhkanvälttely Kyllä Ei Kyllä

Tässä luvussa perehdytään TCP- ja DCCP-protokollien toimintaan sekä viiden

eriTCP-jakahdenDCCP-versionominaisuuksiin.Tutkimuksenkohteeksi onvalittu

yleiset TCP-variantitTahoe, Reno, New Reno, Sak sekä Vegas. DCCP-variantteja

onkehitetty useitaerilaisiajane nimetään ruuhkanhallinnallistenominaisuuksiensa

perusteellaeriCongestionControlIdentier(CCID) -tunnuksella.Tähän

tutkimuk-seen onvalittuCCID-2 (TCP Like)sekä CCID-3(TFRC).

3.1 TCP

TransmissionControlProtool(TCP)onyksialkuperäisistäInternetinprotokollista.

Setakaaluotettavan(reliable)tiedonsiirronepäluotettavan(unreliable)IP-pohjaisen

verkon yli,eli se huolehtii siirrossa kadonneiden pakettien lähettämisestäuudelleen

kunnes ne saadaan onnistuneesti perille[18℄. TCP-protokollasta on kehitetty useita

eriversioita, jotka poikkeavat toisistaan esimerkiksi ruuhkanhallintamekanismiensa

3.1.1 Tahoe

TCPTahoekäyttäähidastaaloitusta,ruuhkanvälttämistäsekänopeaa

uudelleenlä-hetystä.Ruuhkaikkunaa kasvatetaaneksponentiaalisestikunnes sen kokosaavuttaa

ssthresh:n arvon. Tämän jälkeen siirrytään ruuhkan välttely -tilaan, jossa wnd:n

kokokasvaayhdellä jokaista RTT:täkohden.TCP-yhteyssiirtyy nopean

uudelleen-lähetyksen -tilaan, mikäli lähettäjä vastaanottaa kolme samaa kuittausta. Sen

ai-kana lähetetään kadonnut segmenttiuudelleen ja siirrytään takaisin hitaaseen

aloi-tukseensekäasetetaan wndtakaisinalkuarvoonsa, jokaonyleensäyksi.Ssthreshin

koko asetetaan puoleen wnd:n arvosta ajanhetkellä kun verkon ruuhkautuminen

havaittiin [19℄.

3.1.2 Reno

TCPRenopoikkeaa Tahoestasiihenlisätynnopean toipumisen-mekanisminosalta.

TCP-lähettäjän vastaanottaessa tietyn määrän (yleensä 3) duplikaatteja

kuittauk-siase siirtyy nopean toipumisen tilaanhitaan aloituksen sijaan.Nopea toipuminen

aloitetaan asettamalla ssthreshin arvoksi puolet wnd:stä ja wnd saa arvokseen

uuden ssthreshin lisättynä vastaanotettujen duplikaattien ACK-viestien määrällä.

TCP Reno pysyy nopean toipumisen -tilassa,niinkauan kunnes nopean

uudelleen-lähetyksen laukaissut segmenttisaadaan kuitattuaperille menneeksi.

VastaanottajansaadessauusiaACK-viestejäsesiirtyynopeantoipumisen-tilasta

takaisiinruuhkanvälttelyyn ja wnd muutetaan samaan arvoon ssthreshin kanssa.

Nopeantoipumisenavullawndpysyy keskimäärinsuurempanakuinTCPTahoella,

jonka myötä yhteyden suorituskyky onparempi.

Kuva 3: Cwnd:n kehittyminen TCP Tahoella ja Renolla[1℄

TCPRenotoimiihyvin,mikälisegmenttejäkatoaamelkoharvoin.Yhteyden

laa-dun ollessa hyvin huono paketteja voi kadotakuitenkin useampiakin saman

lähety-vain yhden segmentin katoamisen kerralla. Yhden paketin kadottua lähettäjä

vas-taanottaa useampia kuittauksiasamalla segmenttinumerolla.Mikälikadoksissa

ole-van segmentin ja jo vastaanotettujensegmenttien välistä puuttuu yksi taiuseampi

segmentti,niintästäsaadaantietävastasen jälkeenkunensimmäisenäkadonneesta

segmentistä saadaan kuittaus. Näinollen toisenakadonneesta segmentistä saadaan

tieto vähintään RTT:n pituisen viiveen jälkeen. Usean segmentin katoaminen

sa-masta lähetysikkunasta voi aiheuttaa myös wnd:n pienentämisen useammin kuin

yhden kerran. Tämä nopean toipumisen ja nopean uudelleenlähettämisen toistuva

vaihtelu huonontaa TCP Renon toimintaahyvin radikaalisti .

TCP Reno tarvitsee nopean uudelleenlähetyksen toimintaan tarpeeksi suuren

lähetysikkunan, koska lähettäjän tulee vastaanottaa tarpeeksi monta duplikaattia

ACK-viestiä huomatakseen jonkin segmentin kadonneen. Näin ollen pienen

lähety-sikkunan tapauksessa lähettäjä joutuu odottamaan RTO:n laukeamistaennen kuin

se toteaa segmentinkadonneeksi. Tämä ominaisuus yhdistettynä wnd:n

mahdolli-seen pienentämiseen useita kertoja yhden ikkunan aikana aiheuttaa sen että TCP

Reno eitoimitehokkaasti mikälisegmenttejä katoaa hyvin paljon[3℄.

3.1.3 New Reno

New Reno onparanneltu versio TCP Reno:sta. New Reno:ssasiirrytään Renon

ta-paan nopeaan uudelleenlähetykseen, mikäli vastaanotetaan tarpeeksi monta

dupli-kaattiaACK-viestiä.UutenaominaisuutenaNew Reno:ssapoistutaannopeasta

toi-pumisesta vasta kun kaikkiin segmentin katoamisen aikana lähetettyinä olleisiin

segmentteihin saadaan kuittaukset. New Renon nopea toipuminen siirtyy ruuhkan

välttely -tilaan, mikäli lähettäjä vastaanottaa ACK-viestin, joka kuittaa kaikki

lä-hetyksessä olleet segmentit. Mikäli vastaanotettu ACK on niin sanottu osittainen

kuittaus,niinseuraavaksilähetetään ensimmäinenkuittaamatonsegmentti.Tällöin

myös wnd:tä pienennetään ACK:n kuittaamalla datamäärällä ja erotukseen

lisä-tään vielä yksi SMSS. Tämän jälkeen jatketaan toipumisvaihetta. Tällä mek

anis-millavältytäänReno:ssaesiintyvältäongelmalta,jossawnd:tä saatetaanpienentää

useita kertoja samanlähetysikkunan aikana[21℄.

New Renon ongelmanaonettä jokaisenkadotetunpaketin huomaaminenkestää

yhden RTT:n verran. Vasta sen jälkeen kun ensimmäinen kadotettu paketti

saa-daan uudelleenlähetettyä perille, voidaan huomata mikä on seuraava mahdollisesti

kadotettu segmentti.

3.1.4 Sak

TCP with Seletive Aknowledgements (SACK) käyttää ns. SACK-optiota

ACK-viesteissään, jonka avulla lähettäjälle ilmoitetaan pakettihukan tai muun syyn

ta-kia epäjärjestyksessä saapuneista segmenteistä. Selektiivinenkuittaus mahdollistaa

useanpuuttuvansegmentinidentioinninkullakintoistokuittauksella.Lähettäjä

yl-läpitää taulukkoa, joka sisältää tiedon normaalisti vastaanotetuista sekä epä

jär-jestyksessä vastaanotetuista segmenteistä. Taulukon sisältämän tiedon perusteella

Vastasen jälkeenkuntaulukossaolevatkuittaamattomataukotontäytetty,voidaan

lähettäätäysin uusia segmenttejä[23℄.

TCP SACK ylläpitää kuittaamattomien segmenttien määrää muuttujassa

ni-meltäänpipe

Nopean toipumisen aikana lähetetään uusia tai uudelleen lähetettäviä

segmenttejä vainjos pipen arvo onwnd:tä pienempi. Pipen arvoa kasvatetaan

yh-dellä segmentinlähetyksen yhteydessä ja pienennetään yhdellä kun vastaanotetaan

duplikaatti ACK-viestiSACK-optiolla.OsittaisenACK:nvastaanottopienentää

pi-pen arvoakahdella.FastreoverytilastapoistutaankunvastaanotetaanACK-viesti,

joka kuittaa kaikki lähetettyinä olleet segmentit siirryttäessä nopean toipumisen

-tilaan.

TCP SACK eroaa TCP Reno:sta/New Reno:sta lähinnä nopean toipumisen

-mekanisminosalta.TCPSACKpystyy käsittelemäänuseidenpakettienhukkumisen

samastalähetysikkunasta New Renoa paremmin[4℄.

3.1.5 Vegas

TCPVegasesiteltiinjovuonna1994,eliennenNewReno:njaSACK:nkehittämistä[5℄.

TCP Vegas poikkeaa kaikista muista TCP-varianteista mekanismillajollase toteaa

pakettien hukkuneen. Vegas ei odota RTO:n laukeamista pienentääkseen wnd:tä

vaan se tarkkailee odotetun ja toteutuneen läpiviennin suhdetta. Mikäli verkkoon

alkaa kehittyä ruuhkaa, niin toteutunut läpivienti alkaa saada odotettua

läpivien-tiäpienempiäarvoja.Odotettu läpivientilasketaan kaavan10mukaisesti,jossa

Ba-seRTT on pieninmitattu RTT:n arvo.

Odotettu lapivienti = cwnd

BaseRT T

(10)

Toteutunut läpivienti lasketaan mittaamalla segmentin RTT ja laskemalla

ky-seisenäaikanalähetettyndatanmäärä.Toteutuneenjaodotetunläpiviennin

erotus-ta varten käytetään muuttujaa Di jonka arvoa vertaillaan parametreihin

α

ja

β

.

Mikäli Di on pienempi kuin

α

, niin wnd:tä kasvatetaan lineaarisesti seuraavan RTT:n aikana.VastaavastijosDi onarvoltaayhtäsuuritaisuurempikuin

β

,niin

wnd:tä pienennetään lineaarisesti. Parametrit

α

ja

β

asetetaan yleensä arvoihin 2

ja4,jotkamäärittelevätkuinkapaljonverkossa onkuittaamattomiasegmenttejä[4℄.

TCP Vegas käyttäämuunneltuahitaan aloituksen-algoritmia.Alkuperäinen

hi-das aloitus ja ruuhkan välttely-mekanismit tarvitsevat segmenttien katoamisia

to-detakseen ruuhkautumisen alkaneen. TCP Vegasin hidas aloitus pyrkii löytämään

oikean wnd:n koon ennen kuin segmenttien katoaminen alkaa. Tämä toteutetaan

lisäämällä wnd:n kokoa eksponentiaalisesti joka toisella RTT:llä ja mittaamalla

muuttujan Di arvo korotusten välissä. Vegas siirtyy hitaasta aloituksesta

ruuh-kanvälttelytilaan ennenkuintoteutunutläpivientisaavuttaa odotetun läpiviennin

arvon.

Vegas käyttää myös hieman muunneltua segmenttien

uudelleenlähetysstrategi-aa.Segmenttilähetetäänuudelleen joyhden duplikaatinACK-viestinjälkeen

mikä-li RTT:n estimaatio on suurempi kuin RTO. Tämä auttaa niissä tilanteissa jolloin

Kuva 4:TCP Vegasin hidas aloitus ja ruuhkanvälttely

merkiksisilloinkunlähetysikkunastakatoaauseitasegmenttejätaiikkunan kokoon

hyvin pieni.