Tietoliikenne kevät 1999 2. välikokeen (7.5.1999) tehtävien arvosteluperusteista ======================================================== Huom. Tässä esitetyt vastaukset eivät ole mitään varsinaisia malliratkaisuja. Joistakin tehtävistä on, lähinnä pedagogisista syistä kirjoitettu enemmän ja perusteellisemmin kuin koevastauksissa on vaadittu. Toisista tehtävistä, jo tehtävän luonteen ja myös ajan puutteen takia, on kirjoitettu vähemmän. Tehtävä 1 (Kaj Granlund) ------------------------ Yleisesti ottaen vastaukseksi ei kelvannut Wan, Lan tai kuituyhteys. Piti osata tarkentaa asia esimerkiksi Internet, Token Ring tai FDDI. Arvostelu 1, 1- tai 0, ja 2 kertaa (1-) = 1. a) 10Base-2 tai 10Base-T on luonnollinen vaihtoehto. Se on halpa eikä koneiden kaatumiset näy muualla verkossa. Token Ring ja Token Bus näkyi myös vastauksissa, mutta ne vaativat hieman perusteluja. b) Hippiä haettiin, mutta myös Gigabit Ethernet kelpasi. Optinen yhteys tai fast ethernet eivät kelvanneet, koska haettiin nopeutta yli 500 Mbps. c) Lähiverkkoja yhdistetään toisiinsa joko FDDI:llä, DQDB:llä tai ATM:llä. Tele ja puhelinyhdistykset tarjoavat myös kiinteitä yhteyksiä, joten ne myös kelpasivat. 10Base-Fx hyväksyttiin runkolinjaksi pienillä selityksillä, vaikka 2 km näissä oloissa on aika lyhyt matka. d) Kysymyksen avainaihe oli deterministisyys ja priorisointi. Tuotannon ohjaus edellyttää deterministisyyttä, ja reaaliaikaisuus priorisointia. Token Bus -protokollaa haettiin, mutta kelpuutettiin myös Token Ring. Useimmat halusivat erottaa verkot omiksi kokonaisuuksiksi. Tämä ei kuitenkaan ole tarpeen, koska palvelutasot voidaan hoitaa prioriteeteillä. Tästä ei kuitenkaan rangaistu. e) Mallivastaus oli tietysti Token Ring, jossa ainoa sanomapituutta rajoittava tekijä on 10 ms vuoromerkkiaika. Sellaiset vastaukset, joissa käsiteltiin eri protokollien kykyä hallita pitkiä sanomia verkkokerroksen tasolla, ei hyväksytty. f) Osastoille lähiverkot (mitkä tahansa) ja verkot yhteen jollakin sopivalla palvelulla. Tarjolla lähinnä Internet, ISDN, Frame Relay, ATM ja vaikkapa modeemi. Satelliittilinkki on myös kelvannut, mutta oman kuituyhteyden vetäminen ottaen huomioon tehtävässä esiintyneen tarpeen, oli jo hieman liikaa. Tehtävän 1 keskiarvo on 4.6/6 Tehtävän 1 pistejakautuma: 0: 5 1: 3 2: 7 3: 11 4: 27 5: 48 6: 45 Tehtävä 2 (Sampo Pyysalo) -------------------------- 2a) Kysymyksessä pyydetään kuvailemaan prosessin ja kuljetuskerroksen välistä rajapintaa, muut (esim. UDP <-> IP) eivät kelpaa vastaukseksi. Pisteitä oli jaossa seuraavasti: - oikeat kuljetuskerroksen palveluprimitiivit SOCKET,BIND,SEND,RECEIVE (CONNECT, LISTEN jne. tarpeettomia) +1p. - näiden oikea käyttö kohtuullisella tarkkuudella +1p. - UDP TSAP:n oikea määrittely (IP-osoite, portti) +1p. - kohtuullisen virheettömässä tehtävässä +1p seuraavista: Yhteyttömyyden selittäminen oikein, hyvä yleiskäsitys UDP:n toiminnasta, hyvä yleiskäsitys palvelujen käytöstä. Kuitenkin max +1p näistä. Pisteitä max. 3 2b) Tehtävässä pääosassa olivat reititysprotokollat (verkkokerros). Pisteitä tuli seuraavan mukaisesti: - tarve tulkita IP-osoitteet 802.x-osoitteiksi +1p. - jokin kohtuullinen ratkaisu tähän. Vaihtoehtoina lähinnä ARP ja staattiset taulut (vaatii selityksen milloin mahdollista) +1p. - autonomisen systeemin sisäinen reititysprotokolla (interior gateway protocol) esim. OSPF, RIP +1p. - tämän toiminta, reititystietojen keruu esim. OSPF: dynaaminen link state routing-protokolla (kaikille tieto naapureista), AS:ien jako alueisiin, designated routerit LANeissa jne. +1p. (ei tarvita kuin pari faktaa) - AS:en välinen reitiysprotokolla (exterior gateway protocol) esim. BGP +1p. - tämän toiminta, reititystietojen keruu esim. BGP: dynaaminen distance vector-protokolla (naapureille tieto kaikille käytetyistä reiteistä), verkkojen luokittelu, tarve noudattaa staattisia sääntöjä (policies) jne. +1p. (vaaditaan muutama fakta) - kohtuullisen virheettömässä tehtävässä +1p seuraavista: Hyvä yleiskäsitys reityksestä, hierarkkisen reitityksen selittäminen oikein, jonkin protokollan (ARP, OSPF, BGP) perusteellinen käsittely. Kuitenkin max +2p näistä. Pisteitä max. 6 Sääntöjä sovellettiin melko anteliaasti, puolikkaita pisteitä annettiin joissain tapauksissa oikean asian jossain määrin virheellisestä selityksestä. Tehtävän 2 keskiarvo on 5.0/9 Tehtävän 2 pistejakauma: 0: 6 1: 6 2: 11 3: 14 4: 23 5: 26 6: 21 7: 14 8: 16 9: 9 Tehtävä 3 (Sasu Tarkoma) ------------------------ 3. a) Miten TCP-protokollassa hoidetaan ruuhkanvalvonta? (4p) 1) TCP on suunniteltu varmoille yhteyksille. Näin ollen TCP olettaa, että pakettien viivästymiset ja viivästymisestä 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ä. Tehtävän 3 keskiarvo on 4.2/6 Tehtävän 3 pistejakautuma: 0: 9 1: 15 2: 19 3: 26 4: 31 5: 34 6: 12 Tehtävä 4 ( Liisa Marttinen) ---------------------------- Tehtävän 4 kaikki osatehtävät ovat esiintyneet harjoitustehtävien 1. kysymyksissä (niissä pakollissa). 4. Vastaa lyhyesti seuraaviin kysymyksiin (6p): a) Tuntumattomassa sillassa on portteja useihin lähiverkkoihin. Miten silta oppii tietämään, mistä suunnasta eri koneet löytyvät? (1p) Tuntumaton silta tutkii kaikki siihen liitetyissä verkoissa kulkevat sanomat (ns. promiscuous -moodi) ja tallettaa taulukkoonsa tiedot sanoman lähettäjästä ja portista, josta sanoma tuli. Näin se saapuneista sanomista saa selville, mitä koneita verkoissa on ja minkä portin takana ne sijaitsevat (ns. takaperinoppiminen). Tarkemmin Tanenbaum s. 310-311. Tulvituksen käyttöä tässä ei välttämättä tarvitse mainita. Arvostelusta: 1 kuuntelee kaikkea liikennettä ja kerää tiedot sanomien lähettäjistä ja porteista 1- jos kertoi sillan tutkivan vain sille lähetetyt sanomat 1/2 tutkimalla liikennettä, keräämällä tietoja sanomien lähettäjistä + jotain järkevää tietoa tuntumattomasta sillasta b) Miksi palomuurissa on sekä reitittimiä että yhdyskäytävä? (1p) Reitittimet suodattavat sisään ja ulos meneviä sanomia vain kohde- ja lähdeosoiteiden perusteella (esim unixissa IP-osoitteiden ja porttiosoitteiden perusteella). Kaikki paketit joutuvat kulkemaan reitittimien välissä olevan sovellustasolla toimivan yhdyskäytävän (tai käytävien) kautta, joka osaa tutkia sovellussanoman kenttiä (esim. sähköpostin lähettäjän ja aihekentän) ja näiden perusteella päättää paketin hyväksymisestä tai hylkäämisestä. Tarkemmin Tanenbaum s. 410-412. Arvostelusta: 1 sekä reittimien että yhdyskäytävän toiminta selvitetty 1- pieni puute, esim. reitittimistä kerrotaan vain niiden pakottavan kaikki sanomat kulkemaan yhdyskäytävän kautta, mutta ei mainita suodatusta, 1/2 vain jompikumpi toiminta + reitittimet muodostavat reitin, jota kaikkien pitää kulkea c) Miten reititys atm-verkossa hoidetaan? (2p) Ensin muodostetaan SETUP-sanomalla virtuaalipiiri ns. virtuaalikanava, jota kaikki yhteyden solut seuraavat. Reititystä tarvitaan siis yhteyden muodostamisessa ja yhteyden mahdollisessa uudelleenreitityksessä (esim. edellisen yhteyden ruuhkautuessa tai katketessa). ATM-standardeissa ei määritellä käytettäväksi mitään erityista reititysalgoritmia, vaan voidaan käyttää mitä tahansa tehokasta reititysalgoritmia. Reitityksen tehostamiseksi samaa reittiä kulkevia virtuaalikanavia yhdistetään ns. virtuaalipoluksi ( "johtokimpuksi"). Jokaisella solulla on siis sekä virtuaalikanava- että virtuaalipolkutunnus. Reititykseen käytetään kytkimien välillä virtuaalipolkutunnusta ja vasta yhteyden päätepisteissä myös virtuaalikanavatunnusta. Virtuaalipolkureitityksen ansiosta reititystaulut ovat pienemmät ja reititys yksikertaisempaa. Reititys on tehtävä vain ensimmäistä samalla polulla kulkevaa virtuaalikanavaa varten ja kaikki yhteen virtuaalipolkuun kuuluvat yhteydet voidaan uudelleenreitittää yhdellä kertaa. Tarkemmin: Tanenbaum 455-458 Arvostelusta: Tässä eri osista annettu pisteitä seuraavasti: 1 virtuaalikanava ja virtuaalipolku, virtuaalipolkureititys kytkimien välissä, kanavatunnus vain yhteyksien päässä 1/2 reititys virtuaalipiiriä muodostettaessa 1/2 ei määritelty mitään erityistä reitiysagoritmia 2 pistettä on saanut, kun on kertonut kaikki nämä asiat. d) Reitittimen puskurit vuotavat yli. Tuhotaanko saapuvat uudet vai jo puskurissa olevia paketteja? (1p) Ruuhkatilanteessa reitittimen puskureiden täytyttyä riippuu lähinnä sovelluksesta (ja käytetystä uudelleenlähetyspolitiikasta), onko parempi antaa uusien tuhoutua vai jo puskurissa olevien vanhempien pakettien. Joillekin sovelluksille, esim. puheelle ja videolle, uudet ovat tärkeämpiä (milk), joillekin, esim. tiedostonsiirrolle taas vanhojen säilyttäminen on tärkeää (vine). Yleisesti eri pakettien tuhoutuminen aiheuttaa eri suurta haittaa sovellukselle (pari numeroa tilisaldossa / yksi kuvan pikselirivi). Käyttäjät voivat ilmoittaa pakettien tärkeyden prioriteettibiteillä, jolloin pystytään valitsemaan tuhottavaksi vähemmän tärkeät. Myös tuhotun paketin aiheuttama uudelleenlähetystarve kannattaa ottaa huomioon. Sanoman yhden paketin (esim. ATM-solun) tuhoaminen voi aiheuttaa koko sanoman uudelleenlähettämisen (esim. 65535 tavun mittasesta AAL-sanomasta voi aiheutua yli 1300 ATM-solun uudelleenlähetys). Tarkemmin: Tanenbaum 5.3.7 ss. 390-392 Arvostelusta: 1 riippuu sovelluksesta, eri sovellusten tarpeita (milk/vine) yms 1- jos syyksi mainittu vain prioriteetti tai asiat esitetty muuten hieman puutteellisesti 1/2p enemmän puutteita esim. mainittu vain milk/vine selittämättä niitä lainkaan + mieluummin jo puskurissa olevat kuin uudet tai mieluummin uudet kuin puskurista, jos väitteelle annettu jokin järkevä perustelu 0 jos väitettä ei ole mitenkään perusteltu e) Mihin UDP:tä tarvitaan? Eikö riittäisi antaa käyttäjäprosessien lähettää pelkkiä IP-paketteja? (1p) Ei riitä, sillä IP-paketissa on vain koneen osoite (IP-osoite), jolla paketti pystytään toimittamaan haluttuun koneeseen. UDP:ssä on porttinumero, joka yhdistää paketin tiettyyn sovellukseen ja näin paketti pystytään ohjaamaan tietylle prosessille. Lisäksi UDP:ssa mahdollista käyttää tarkistussummaa. Kerrosrakenteen säilyttäminen ei sinällään ole koskaan ollut kovin määräävä tekijä Internet-standardeissa. Tarkemmin: Tanenbaum s. 415-417 ja 542 Arvostelusta: 1 IP-paketista puuttuu kuljetuskerroksen tarjoama porttiosoite 1- UDP tarjoaa portit 1/2 lisää UDP-otsakkeen; IP-paketit eivät sisällä kaikkea tarvittavaa tietoa; IP-paketeista puuttuu olennaisia osoitetietoja + pelkkä IP-paketti ei itse osaa perille; kerrosrakenteen kannalta parempi 0 jos verrannut UDP:tä TCP:hen: UDP on yksikertaisempi, ei aina tarvita yhteyden muodostamista, jne tai pelkästään kertonut, että UDP on yhteydetön Tehtävän 4 keskiarvo 3.7/6. Tehtävän 4 pisteiden jakauma 0: 1 1: 2 2: 23 3: 34 4: 40 5: 32 6: 13