------------------------------------------------------------------------- 3. a) Miten TCP-protokollassa hoidetaan ruuhkanvalvonta? (4p) 1) TCP on suunniteltu varmoille yhteyksille. Näin ollen TCP olettaa että pakettien viivästymiset ja niiden aiheuttamat ajastimien laukeamiset johtuvat ruuhkasta eivätkä virheistä. (1 piste tästä perusajatuksesta) Tarkemmin Tanenbaum sivu 536. 2) Ruuhkanvalvonta tapahtuu ruuhkaikkunan avulla. Ruuhkaikkuna kertoo verkon kyvyn välittää tietoa. Ruuhkaikkunan perusyksikkö on yhteyden ajaksi sovittu maksimaalisen TCP-segmentin koko. Käytössä on myös vuonvalvontaikkuna, joka kertoo vastaanottajan kyvyn ottaa dataa vastaan ja huolehtii vuonvalvonnasta. Pienempi näistä ikkunoista rajoittaa lähetettävän datan määrää. (1 piste ruuhkaikkunasta ja sen käytöstä) Tanenbaum s. 537 3) Slow-start (hidas aloitus) algoritmilla valvotaan ruuhkaikkunan kokoa. Ruuhkaikkuna alustetaan maksimaalisen segmentin kokoon. Tämän jälkeen ikkunan ilmaisema määrä (1) segmenttejä lähetetään. Mikäli kuittaus ehtii tulla ajoissa, ikkunan koko voidaan kaksinkertaistaa. Nyt lähetetään kaksi segmenttia, sitten neljä jne. Tätä toistetaan kunnes ajastin laukeaa, koska kuittaus ei tule ajoissa tai vuonvalvontaikkuna alkaa rajoittaa lähetystä. Ajastimen lauetessa ruuhkaikkunan kasvttaminen aloitetaan taas alusta eli arvosta yksi Nimestään huolimatta hidas aloitus on eksponentiaalisesti kasvava. (1 piste hitaasta aloituksesta) Tarkemmin Tanenbaum s. 538 4) Hitaan aloituksen yhteydessä käytetään kynnysarvoa (threshold), joka pyrkii varoittamaan ruuhkanvaarasta. Kynnysarvo 'muistaa' edellisen ruuhkakohdan ja ennen sitä hidastaa ruuhkaikkunan kasvamisen lineaariseksi. Alussa kynnysarvoksi asetetaan sopiva oletusarvo (64 K) ja hidas aloitus toimii normaalisti. Kun ruuhkaikkunan koko on saavuttanut kynnysarvon, ruuhkaikkunaa ei enää kasvateta eksponentiaalisesti, vaan lineaarisesti: aina maksimaalinen segmenttikoko kerrallaan jokaisen onnistuneen lähetyksen yhteydessä. Näin tehdään kunnes saavutetaan vuonvalvontatikkunan koko tai ajastin laukeaa. Kun ajastin laukeaa, se on merkki ruuhkasta. Uudeksi kynnysarvoksi asetetaan turvallinen arvo eli puolet senhetkisestä ruuhkaikkunan koosta. Aloitetaan taas hitaalla aloituksella. Ruuhkaikkunan koko on aluksi yksi. Saapuneet kuittaukset kasvattavat ruuhkaikkunaa hitaan aloituksen mukaisesti eksponentiaalisesti, kunnes päästään kynnysarvoon, jonka jälkeen kuittaukset kasvattavat ruuhkaikkunaa lineaarisesti. Näin TCP:n ruuhkanvalvonta pyrkii dynaamisesti löytämään järkevän lähetysnopeuden, joka sopii sekä vastaanottajalle että verkolle. (1 piste kynnysarvosta ja sen käytöstä). Tarkemmin Tanenbaum s. 538-539 5) Koko ruuhkanvalvonta perustuu siihen, että uudelleenlähetysajastimella pystytään erottamaan, milloin kuittaus on ruuhkan takia 'liian paljon myöhässä´ eli kadonnut. Liian lyhyt aikaväli aiheuttaa turhia ruuhkahälytyksiä. Liian pitkä aikaväli ei huomaa ruuhkaa tarpeeksi nopeasti. Ajastimen arvoa tarkistetaan koko ajan mittaamalla jokaisen paketin 'kiertoviive' paketin lähettämistä sen kuittauksen saapumiseen ja arvioimalla saaduista arvoista mahdollisimman tarkka arvo ajastimelle. Tämän tietäminen oli bonusta ja siitä sai vaihtoehtoisesti yhden pisteen mikäli jotain muuta jäi puuttumaan. Tarkemmin Tanenbaum s. 539-542 Yhteensä 4 pistettä. b) Voiko TCP-ruuhkanvalvontaa käyttää hyvin myös langattomilla linkeillä, satelliittiyhteyksillä ja erittäin nopeilla yhteyksillä? Mihin sopii, mihin ei? Ja miksi näin? (2p) 1) TCP:ssä pakettien katoaminen/myöhästyminen ja siitä johtuva ajastimien laukeaminen tulkitaan ruuhkaksi. Langattomissa yhteyksissä on paljon virheitä, jotka TCP:n ruuhkanvalvonta erheellisesti tulkitsee ruuhkaksi ja hiljentää lähetysnopeutta vaikka sitä pitäisi nostaa. Ratkaisuna on yhteyden jakaminen kahteen osaan: epäsuora TCP (Indirect TCP). Tarkemmin Tanenbaum 543 2) Satelliittiyhteyksillä on verrattain suuri kapasiteetti, mutta pitkät viiveet. Näin ollen TCP:n ruuhkanvalvonnan hidas aloitus on todellakin hidas. Satelliittikanavankapasiteettia ei oikein päästä käyttämään. Ratkaisuna ajastimien säätö, nopeampi kasvu hitaassa aloituksessa. 3) Nopeilla yhteyksillä on suuri kapasiteetti ja kapasiteettiin nähden pitkät viiveet. Samanlainen lopputulos kuin satelliitin tapauksessa, eli hidas aloitus toimii hitaasti ja kanavan koko kapasiteettia ei päästä hyödyntämään. Koska hidas aloitus kasvaa hitaasti, ajastimen laukeamisen jälkeen kestää pitkään suhteessa linjan nopeuteen päästä järjelliseen lähetysnopeuteen. Tämä ilmenee myös lähetysmäärän heilahteluina. Ratkaisuja: ajastimien säätäminen, nopeampi kasvu hitaassa aloituksessa. Tarkemmin s. 569, 571 Jokaisesta kohdasta 2/3 pistettä, yhteensä 2 pistettä.