Kokeen 28.9.2001 arvostelusta ============================== 1. Helsingin yliopiston opiskelija A. Innokas lähettää lyhyen sähköpostiviestin ystävälleen B. Eagerille, joka opiskelee Lontoossa. a) Mitä tapahtuu sovellustasolla A. Innokkaan viestille? Mitä sovellustason toimintoja tarvitaan ja mitä sovellustason protokollia käytetään? (6 p) - SMTP-protokolla ja sen toiminta lyhyesti 2p - DNS-kysely domain-nimen muuttamiseksi IP-osoitteeksi 2p - TCP-yhteys porttiin 25 1p - POP tai IMAP postia luettaessa 1p b) Mitä tapahtuu kuljetuskerroksella? Mitä kuljetuskerroksen toimintoja ja protokollia tarvitaan sovelluskerroksen viestien kuljettamiseen? (5 p) - DNS-kyselyssä UDP-protokolla 1 p - TCP-yhteyden muodostus 2 p - SMTP-sanomien (IMAP- tai POP-sanomien siirto) 1 p - TCP-yhteyden purku 1 p c) Mitä tapahtuu verkkokerroksella? Kuinka verkkokerros osallistuu sähköpostiviestin kuljettamiseen? (4 p) - IP-protokolla kuljettaa TCP- ja UDP-sanomat verkon läpi 2 p - reititysprotokollat huolehtineet reititystaulujen ylläpidosta 2 p 2. Hidas aloitus (slow start) a) Mihin hidasta aloitusta käytetään? Mitä hyötyä siitä on? Voiko siitä olla haittaa? Jos, niin missä tilanteissa? (3 p) - TCP-protokollassa ruuhkan valvontaan 1 p - dynaamisesti ja melko nopeasti sovitetaan lähetysten määrä verkon kapasiteettiin 1 p - siirtovirheet tulkitaan ruuhkaksi ja turhaan vähennetään lähettämistä esim. GSM-linjalla 1 p b) Käytetään hidasta aloitusta linjalla, jonka kiertoviive (round-trip time) on 100 ms. Linjalla ei ole ruuhkaa ja kuittaukset saapuvat ajoissa. Vastaanottajan ikkuna on 18 KB ja segmentin koko 2 KB. Kynnysarvo (threshold) on aluksi 30 KB. Lähetettävänä on 60 MB. Esitä kaaviokuvana, kuinka lähetys tapahtuu, jos siinä ei esiinny mitään virhetilanteita tai viiveitä.(6 p) - aloitus yhdellä (tai kahdella segmentillä) 1 p - lähetysmäärän kasvattaminen kuittausten tullessa 2 p - vastaanottajan ikkunan merkitys 2 p - ajoitus mukana kaaviokuvassa 1 p c) Mitä tapahtuu, jos lähetettyyn sanomaaan ei tule kuittausta ajoissa ja uudelleenlähetysajastin laukeaa? (3 p) Jos kuittausta ei saada ajoissa => uudelleenlähetys, joka aiheuttaa lähetyksen hidastamisen eli kynnysarvoksi puolet ruuhkan aiheuttaneesta määrästä (9 KB) ja käynnistetään uudelleen hidas aloitus. Siis lähetetään 2 KB, 4 KB, 8 KB ja sitten 9,. 10, 11, ..., 17, 18, 18,...kilotavua niin kauan kun lähetettävää riittää. 1 p kun kertoi, että hidas aloitus aloitettiin uudelleen alusta 1 p ja uudeksikynnysarvoksi puolet ruuhkaa aiheuttaneen lähetyksen määrästä eli 9 KB:tä. 1 p kun alkoi lineaarisen kasvattamisen 8 KB:n lähettämisen jälkeen 2, 4, 8, 9, 10,.., 17, 18, 18, 18, .... d) Miten uudellenlähetysajastimelle osataan asettaa sopiva arvo? Mitä ongelmia sopimaton arvo aiheuttaa? (3 p) TCP:n ruuhkanvalvonta nojaa uudelleenlähetyksiin. Uudelleenlähetys tulkitaan ruuhkan merkiksi, jolloin vähennetään lähettämistä. Jos ajastimen arvo on liian lyhyt, kuittaukset eivät ehdi perille ja syntyy paljon uudelleenlähetyksiä. Näiden seurauksena lähettämistä eli verkon kuormitusta vähennetään, jotta oletettua ruuhkaa pienennetään. Tästä aiheutuu verkon turhaa alikuormittamista ja verkon resurssien tehotonta käyttöä. Jos ajastimen arvo on liian suuri, ruuhkaa ei huomata tarpeeksi nopeasti, vaan odotellaan ja odotellaan kuittauksia. Jotta uudelleenlähetysajastimen laukeaminen toimisi tehokkaasti ruuhkan indikaattorina, niin uudelleenläheysajastimen arvon tulee siis olla oikein asetettu. Oikean arvon löytäminen on hankalaa. Käytössä on melko monimutkaisia dynaamisia algoritmeja. Ajastimella on dynaaminen, verkon sen hetkisestä suorituskyvystä riippuva arvo. Jokaiselle yhteydelle lasketaan jatkuvasti arviota yhteyden kiertoviiveestä. Arvio saadaan mittaamalla kuittauksiin kuluvaa aikaa ja laskemalla niistä sopivasti painotettua liukuvaa keskiarvoa. Ajastimen arvoksi asetetaan sitten tämän arvon monikerta tai arvo lisättynä poikkeaman monikerralla. Arvostelusta: 3 p sai, jos kertoi uudelleenlähetysajastimen merkityksen ruuhkanvalvonnalle ja sitä kautta koko verkon suorituskyvylle sekä paljasti ajastimen arvon nojautuvan jatkuviin verkosta tehtäviin kuittauksiin perustuviin kiertoviivearvioihin. -2 p jos kertoi vain yleisesti liian pienen arvon lisäävän turhia uudelleenlähetyksiä ja aiheuttavan ruuhkaa sekä liian suuren johtavan turhiin odotuksiin ja tehottomuuteen. Koska TCP:n ruuhkanhallinnan takia tilanne on täysin päinvastainen! +1 p Jos selvitti oikein perusteellisesti ajastimen arvon laskemisen, sai yhden bonuspisteen, joka korvasi mahdollisesti menetettyä pisteitä. Maksimi kuitenkin c-kohdasta 3 pistettä. 3. Etäisyysvektorireititys (Distance vector routing) a) Miten reitittimet päivittävät reititystaulunsa etäisyysvektorireititystä käytettäessä? (6 p) - säännöllisin väliajoin tai muutosten jälkeen naapurireittimet vaihtavat etäisyystietojaan 3 p - näistä lasketaan uudet etäisyystiedot ja päivitetään reitittimiin 3 p b) Näytä esimerkeillä, kuinka etäisyysvektorireititystä käytettäessä 'hyvät uutiset leviävät nopeasti ja huonot uutiset hitaasti'. Miten tätä ongelmaa on pyritty ratkaisemaan?( 6 p) Hyvät tiedot etenevät "lineaarisesti" (2 p) (Tanenbaum kuva 5-11 (a)) huonojen tietojen eteneminen kärsii count-to-infinity - ongelmasta (2p) (Tanenbaum s. 357). Ratkaisuja (2 p) esim. split horizon (osittainen ratkaisu, Tanenbaum s. 358) tai käytettyjen reittien ilmoittaminen (BGP:n malli, Tanenbaum s. 430). c) Mitä muita ongelmia etäisyysreitityksessä on? (3 p) - käytössä vain yksi mitta - ei skaalaudu isoon verkkoon, sillä tiedot leviävät liian hitaasti - käyttää aina parasta reittiä - ei käytä reitittimien autentikointia jokaisesta järkevästä haitasta => 1 p. Kuittenkin maks 3 p. 4. Verkko koostuu useista tuntumattomilla silloilla (transparent bridge) yhteenliitetyistä kuullosteluväylistä (802.3, 'Ethernet'-verkko). Verkon eräässä lähiverkossa oleva asema A lähettää kehyksen usean sillan takana olevan toisen lähiverkon asemalle B. a) Miten Ethernet-verkon aseman MAC-kerros (Medium Access Control Layer) toimii lähettäessään kehystä verkkoon, jotta lähetys onnistuisi eikä aiheuttasi törmäystä? (7 p) - kuuntelu 1p - lähettää, jos ei kuulu lähetystä 1p - jos törmäys, niin lopettaa heti lähetyksen (collision detection) 1 p - jos joku lähettämässä odottaa lähetyksen loppumista ja lähettää heti 1p - törmäyksen jälkeen joko lähettää heti uudestaan tai odottaa yhden aikaviipaleen - jos taas törmäys, satunnaista odotusta kasvatetaan : 0, 1, 2 tai 3 aikaviipaletta odotusta. Jos jatkuvasti törmäyksiä, odotetaan satunnaisesti 0-7 aikaviipaletta, sitten 0-15 jne kunnes päästää 1024 aikaviipaleeseen ja tätä toistetaan 16 kertaa. (Binary backoff 3 p) - kehyksellä minimipituus, jotta törmäys havaitaan ennen lähetyksen lopettamista 1 p b) Miten aseman A lähettämä kehys saadaan toimitettua siihen lähiverkkoon, jossa asema B sijaitsee? Mitä tietoja tähän tarvitaan, missä ja miten tiedot kerätään? (8 p) Tuntumattomat sillat (Tanenbaum s. 310-313) ohjaavat kehyksen A:n lähiverkosta vastaanottajan B verkkoon. Tuntumaton silta ylläpitää taulukkoa, johon se kerää tietoa siitä, mistä portista kukin kone löytyy. Tuntumaton silta tutkii kaikki kehykset, jotka kulkevat niissä verkoissa, joihin silta on yhdistetty. Silta päivittää omia tietojaan näiden kehysten avulla (takaperin oppiminen). Solmun B osoite löytyy sillan taulukoista, jos solmu B on aikaisemmin lähettänyt jotain sillan verkkoihin. Jos kehyksen osoite löytyy sillan tauluista, niin silta välittää kehyksen eteenpäin porttiin, joka vie kohti B:n verkkoa. Jos ei löydy, niin silta tulvittää kehyksen kaikkiin muihin verkkoihinsa paitsi siihen, mistä se tuli. Taulukon ylläpito eli tietojen keruu: Aluksi sillan taulukot tyhjät. Silta kuuntelee kaikkea siihen liittyvissä verkoissa kulkevaa liikennettä ja tutkii kaikki kehykset. Se poimii kehyksistä niiden lähettäjät ja vie taulukkoonsa tiedon lähettäjästä ja lisää portin siihen verkkoon, jossa kehys kulki. Takaperin oppiminen: Kun verkkoon A on tullut kehys koneelta N, niin jatkossa koneelle N menevät paketit voi lähettää verkkoon A. Tietoja päivitetään koko ajan ja vanhentuneet (aikaleima) tiedot poistuvat muistista. Tulvituksen käyttö tuo ongelmia: sillat eivät saa muodostaa silmukkaa, jossa tulvitetut kehykset koko ajan vain lisääntyisivät. Jotta tuntumaton silta toimisi oikein, silloista täytyy muodostaa ns. virittävä puu. Tämä varmistaa sen, että sillat eivät muodosta silmukoita. Toisaalta virittävä puu ei toimi mitenkään optimaalisestii, vaan jättää monia siltojen välisiä yhteyksiä hyödyntämättä. Arvostelusta : tuntumaton silta hoitaa kehyksen eteenpäin 1 p tuntumattoman sillan toiminta 7 pistettä, toiminta reititystilanteessa 3 pistettä: - taulukon käyttö - tulvitus tuntemattomille tietojen hankinta ja päivitys 4 p - aluksi ei mitään tietoja - kehysten kuuntelu - lähettäjätietojen keruu (takaperin oppiminen) - vanhojen tietojen poistaminen silmukoiden poistaminen virittävällä puulla 1 p