58069-8 Tietoliikenne

Loppukoe 9.6.2000

Kirjoita jokaisen vastauspaperisi alkuun kurssin nimi ja kokeen päivämäärä sekä nimesi, syntymäaikasi ja allekirjoituksesi.

1. Lähiverkoissa ja langattomissa verkoissa siirtomedia on yhteiskäyttöinen. Lähetysvuorojen jakamiseen on kehitetty monia erilaisia menetelmiä. Selvitä (peruspiirteiltään), miten seuraavat menetelmät (tai protokollat) hoitavat yhteiskäyttöisen siirtomedian ongelman:
a) ALOHA
b) CSMA (Carrier Sense Multiple Access)
c) DQDB (Distributed Queue Dual Bus)
d) CDMA (Code Division Multiple Access)
Esitä myös millaisiin käyttöympäristöihin (LAN/MAN/ matkapuhelinverkko/ satelliittiverkko, langaton/langallinen media, verkon kuormitus, sovellusten aikakriittisyys, jne) menetelmät sopivat parhaiten. (16 p)

a) ALOHA
Perus-ALOHA lähettää aina kun on tarvetta. Kun tapahtuu törmäys, se havaitaan kuuntelemalla ja yritetään uudelleen satunnaisen ajan kuluttua. Viipale-ALOHA:ssä saa lähettää vain aikaviipaleen alussa, joten törmäykset ovat täydellisiä => tehokkuus kaksinkertaistuu.
ALOHA-protokollat ovat melko tehottomia ja ja soveltuvat vain vähän kuormitettu un verkkoon. Ei sovellu tosiaikaisiin järjestelmiin, sillä huonolla onnella asema voi joutua odotamaan lähetysvuoroaan hyvinkin pitkään. Alunperin kehitetty radioverkkoon, mutta käytetään myös GSM- ja satelliittiverkoissa lähinnä lähetysvuoron varaukseen.

b) CSMA (Carrier Sense Multiple Access)
Ensin varmistetaan linjaa kuuntelemalla, ettei kukaan ole juuri paraikaa lähettämässä. Olemassa erilaisia versioita, jotka hieman poikevat toisistaan:

 
  1-persistant:    jää odottamaan  käynnissä olevan lähetyksen loppumista  ja 
                   lähettää heti linjan vapauduttua 
  non-persistant:  luopuu yrittämästä ja palaa tutkimaan tilannetta satunnaisen
                   ajan kuluttua 
  p-persistant:    aina kun linja on vapaa, lähettää todennäköisyydellä p ja 
                   luopuu lähettämästä todennäköisyydellä 1-p 
  CSMA/CD:         ilmoitetaan havaitusta törmäyksestä heti  muille 
Sopivat lähiverkkoihin, joissa kuormitus ei ole kovin suuri. Kuormituskestävyys riippuu käytetystä versiosta.

c) DQDB (Distributed Queue Dual Bus)
Asemat varaavat lähetysvuoron ja lähettävät varausjärjestyksessä. Lähetysvuorojono on hajautettu FIFO-jono eli jokainen asema pitää itse kirjaa jonotustilanteesta. Kaikki asemat näkevät toistensa varaukset ja lähetykset ja tietävät koko ajan oman sijaintinsa jonossa ("montako vielä minua ennen") ja osaavat näin lähettää omassa 'aikaviipaleessaan'. Lähetyskehykset kulkevat myötävirtaan ja varaukset 'vastavirtaan' eli toiseen suuntaan kulkevissa lähetyskehyksissä. Asema saa käyttää kohdalleen tuleen tyhjän kehyksen vain, jos asema on juuri silloin lähetysvuorossa. Muuten kehyksen annetaan kulkea tyhjänä eteenpäin taaempana oleville jonottajille.

Tehty MAN-verkkoa varten eli tavallista lähiverkkoa laajempaan ja vilkkaampaan käyttöön langalliseen ympäristöön.

d) CDMA (Code Division Multiple Access)
Kaikki asemat voivat lähettää samanaikaisesti yhteisellä taajuusalueella. Vaikka asemat lähettävät samanaikaisesti, niiden lähetykset eivät sekoonnu, koska käytetään koodausta erottamaan eri asemien lähetykset ("asemat puhuvat eri kieltä").
Jokainen asema koodaa omat 1- ja 0-bittinsä muista erottuvalla tavalla. Koodaus on sellainen, että vaikka usea asema lähettää samanaikaisesti, niiden lähetykset pystytään erottamaan. Bitti jaetaan pienempiin osiin (esim. 8 osaan) ja kukin asema lähettää käyttäen omaa bittikoodiaan ( "00011011 1-bitille ja tämän komplementti 11100100 0-bitille"). Kun asemien bittikoodit valitaan siten, että ne ovat ortogonaalisia keskenään, ne voidaan aina erottaa yhteissignaalista.
Käytetään langattomiin puhelinverkkoihin, mutta ei sovellu kovin isoihin verkkoihin (ongelmia aiheuttaa lähetysten tahdistus ja lähetysten pitäminen yhtä voimakkaina, on myös tunnettava kaikkien lähettäjien koodit etukäteen, lisäksi jos asemia on paljon, bitti on jaettava yhä useampaan osaan => bitin lähettämiseen tarvitaan enemmän aikaa ja kapasiteettia).

2. Lähiverkkoja yhdistetään silloilla (bridge). Tärkeimpiä siltoja ovat tuntumaton silta (transparent bridge) ja lähdereitittävä silta (source routing bridge). Selvitä, kuinka nämä sillat toimivat. Kuvaa, miten kumpaakin siltaa käytettäesssä kehys osataan ohjata lähiverkon A solmusta N1 toisen lähiverkon B solmuun N2. Millä periaatteella reititystiedot on muodostettu? Miten tiedot hankitaan ja miten niitä ylläpidetään? (14 p)

Tuntumaton silta (Tanenbaum s. 310-313)
Lähiverkossa A kiinni oleva silta B1 huomaa verkossa A kulkevan kehyksen, joka on osoitettu toiseen verkkoon solmulle N2. Koska silta B1 on tuntumaton silta, se tutkii kaikki kehykset, jotka kulkevat niissä verkoissa, joihin silta on yhdistetty. Silta B1 päivittää omia tietojaan näiden kehysten avulla. Koska paketti (B.N2) ei ole vielä oikeassa verkossa, silta tutkii 'reititystaulukoistaan' mihin verkkoon kehys tulee välittää. Jos tieto löytyy, niin silta välittää kehyksen ko. verkkoon. Jos ei löydy, niin silta välittää kehyksen kaikkiin muihin verkkoihinsa paitsi siihen, mistä se tuli.

Lähettäjän ei tarvitse tietää mitään verkon topologiasta. Silta ylläpitää taulukkoa, johon se kerää tietoa siitä, mistä portista kukin kone löytyy. Solmun N2 osoite löytyy sillan taulukoista, jos solmu N2 on aikaisemmin lähettänyt jotain sillan B1 verkkoihin.

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ä.

Lähdereitittävä silta (Tanenbaum s. 314-315)
Koska silta B2 on lähdereitittävä silta, se tutkii kehyksessä olevaa reittiosoitetta LAN A, B2, LAN N, Bn, ... Bb, LAN B ja löytää siitä oman osoitteensa. Koska sen osoitetta seuraa LAN N, silta ohjaa kehyksen verkkoon N. Vastaavasti aikanaan silta Bb tutkii osoitetta ja ohjaa kehyksen verkkoon LAN B. Lähdeosoitteen suurin bitti ilmoittaa, onko kehys jo oikeassa verkossa vai pitääkö se ohjata eteenpäin toiseen verkkoon.

Reittitietojen keruu ja ylläpito: Lähettäjän tulee itse tietää reitti vastaanottajalle. Silta vain tutkii reittiä ja selvittää, onko se itse reitillä eli tuleeko sen välittää kehys eteenpäin. Jos tulee, se siirtää kehyksen reitin ilmoittamaan verkkoon.

Jos lähettäjä ei tiedä reittiä, se lähettää yleislähetyksenä selvityskehyksen (discovery frame), jonka kaikki sillat välittävät eteenpäin eli kehys tulvitetaan kaikkiin portteihin, paitsi siihen, mistä se tuli. Samalla sillat lisäävät siihen reittitiedot ('mikä silta, mikä verkko'). Näin kehys tavoittaa kaikki kohdekoneet. Ensimmäiseksi kohdekoneen saavuttanut kehys kertoo samalla myös nopeimman reitin. Kohdekone voi nyt lähettää kehyksen löydettyä 'optimaalista' reittiä pitkin takaisin kyselijälle. Vastauksessa on tieto reitistä eli reitti muodossa silta, verkko, silta, .... Lähettäjä voi saada vastauksissa eri reittejä ja voi valita niistä parhaan reitin, jonka se sitten tallettaa tulevia tarpeita varten.
Vanhentuneet tiedot (silta ei enää toiminnassa, asema on siirtynyt muualle) => väärä reitti => vastaanottajaa ei tavoiteta eli ei tule kuittausta ajoissa. Muutaman yrityksen jälkeen uskotaan, että ongelmana on virheellisen reittitieto ja selvityskehyksellä etsitään uusi reitti.

Arvostelusta :

   tuntumaton silta 7 pistettä, 
       toiminta reititystilanteessa 3 pistettä: 
         - taulukon käyttö 
         - tulvitus tuntemattomille 

       tietojen hankinta ja päivitys 3 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
  

   lähdereitittävä silta    7p 
       toiminta reititystilanteessa: 
         -lähettäjä antaa reitin 2 p 
         -silta tutkii ja tarvittaessa  välittää 2 p 

       tietojen hankinta ja ylläpito: 3 p 
         - tietojen kerääminen selvityskehyksen avulla 
         - kehyksen lähetys tulvittamalla 
         - vastausten saaminen 
         - parhaan reitin valinta ja talletus 



3. a) Mitä tarkoitetaan ruuhkalla? Miksi ruuhka on hankala ongelma? (3 p)
b) Miten TCP-protokollassa hoidetaan ruuhkanvalvonta? (10 p)
c) Voiko TCP-ruuhkanvalvontaa käyttää hyvin myös langattomilla linkeillä, satelliittiyhteyksillä ja erittäin nopeilla yhteyksillä? Mihin sopii, mihin ei? Ja miksi näin? (3 p)

Mitä ruuhkalla tarkoitetaan? (1 p)
Verkon (tai sen osan) kuormitus suurempi kuin verkon käsittelykapasiteetti niin että verkon suorituskyky laskee.

Miksi vuonvalvontaa on hankalampaa? (2 p)
Vuonvalvonta vain kahden osapuolen välinen,vain yksi vaikuttaja, ruuhkanvalvontaan vaikuttaa monta tekijää. Vuonvalvonnassa suora palaute, ruuhkanvalvonnassa ei suoraa palautetta. Myös palaute vaikuttaa ruuhkaan.

TCP-verkko ( 6p) (Tanenbaum s. 536-542)
TCP-verkossa varsinainen ruuhkanvalvonta hoidetaan kuljetuskerroksella (alemmilla kerroksilla pyritään myös kaikin tavoin (Tanenbaum s. 378) estämään ja vähentämään ruuhkaa. (2 p)

Lähettäjää säätelee kaksi ikkunaa ns. ruuhkaikkuna ja vuonvalvontaikkuna ja lähetystä rajoittaa pienempi näistä ikkunoista. (2 p)
Ruuhkaikkunan koko: jos ei ruuhkaa, aluksi pieni ikkuna kasvaa ensin eksponentiaalisesti ja sitten tietyn kynnysarvon ylitytty„ lineaarisesti, (ns. slow start). Kun havaitaan ruuhkaa, niin kynnysarvo puolittuu ja ikkunan arvo alkaa uudelleen kasvaa pienestä alkuarvosta. (3 p)
Ruuhka havaitaan siitä, että kuittaukset lähetettyhin sanomiin eivät saavu tarpeeksi ajoissa ja uudelleenlähetysajastin laukeaa. (1 p) Uudelleenlähetysajastimen arvoa päivitetään koko ajan mittaamalla, kuinka kauan kestää ennenkuin lähetettyihin sanomiin saadaan kuittaukset ja laskemalla saatujen arvojen perusteella uudelleenlahetysajastimelle uusi arvo. (2 p)

c) TCP-ruuhkanvalvonnassa sanomien kuittauslaskureiden laukeaminen indikoi ruuhkaa, josta pyritään toipumaan kuormitusta eli lähettämistä vähentämällä. GSM-linjoilla ja muullakin ilmatilassa kulkevilla yhteyksillä esiintyy paljon enemmän linjavirheitä. Tällöin kuittausajastimen laukeaminen on yleensä merkki siitä, että kehystä ei ole voitu hyväksyä ja kuitata kehysvirheen takia, tuskin koskaan se on merkki ruuhkasta. Väärä tulkinta johtaa väärään toimintaa eli hidastetaan lähetystä, vaikka pitäisi nopeuttaa sitä. Siis ei sovi GSM-linjoille.(1 p)

Satelliittiyhteyksillä kuten myös erittäin nopeilla yhteyksillä hidas aloitus estää hyödyntämästä satelliittilinjan koko kapasiteettia. Vaikka koko linjan kaistanleveys on käytössä, aluksi lähetetään vain muutama tavu ja sitten odotellaan kuittausta ennenkuin kasvatetaan lähetysmäärää. Satelliittiyhteyksillä kuittaus tulee suhteelliseen hitaasti. Nopeilla linjoilla kuittaus verrattuna siirrettyyn datamäärään on suhteelliseen hidas. (2 p)

4. Vastaa kohtalaisen lyhyesti seuraaviin kysymyksiin.
a) Tiedonsiirron suorituskykyyn liittyvät mitat bps ja baudi. Mitä ne ovat? Miten ne riippuvat toisistaan? (3 p)
Baudi kertoo linjan signaalin tasomuutosten (signaalielementtien )määrän sekunnissa. Bps ilmoittaa, kuinka monta bittiä sekunnissa linjalla siirtyy. Näiden suhde riippuu bittien koodauksesta ja signaalin tasojen määrästä. Jos signaalissa on vain kaksi tasoa, jotka vastaavat bittejä 0 ja 1, niin linjan suorituskyky bps ja baudeina on yhtä suuri. Jos tasoja on enemmän, niin kukin tasomuutos ei vastaakaan enää yhtä bittiä, vaan usean bitin jonoa. Tällöin bps on suurempi kuin baudien määrä. Neljällä tasolla voidaan muutos voi esittää kahta bittiä, kahdeksalla kolmea bittiä eli yleisesti log2 (tasojen lukumäärä). Esim. modeemien nopeutta on kasvatettu lisäämällä signaalin tasoja.

Joissakin tapauksissa voi baudimäärä voi olla suurempi kuin bps. Tällöin kunkin bitin esittämiseen käytetään useaa signaalinmuutosta. Esim. CDMA:ssa (Tanenbaum s. 271-275) yhden bitin lähetämiseen voidaan käyttää 64 tai 128 signaalinmuutosta.

b) Mikä on Nyquistin ja Shannonin lakien (kaavojen) oleellinen sisältö? Koskevatko kaavat vain kuparijohtimia vai myös valokaapelia? (4 p)
Nyquist määrää teoreettisen ylärajan tiedonsiirtotiheydelle yli häiriöttömän kanavan:
* suoraan verrannollinen kaistanleveyteen
* suoraan verrannollinen siihen, kuinka monta bittiä yhteen signaalielementtiin voidaan koodata

Shannon määrää teoreettisen ylärajan ottaen huomioon kohinan vaikutuksen tiedonsiirtotiheyteen:
* signaalitehon kasvaesssa yläraja kasvaa signaali-kohina -suhteen logaritmin mukana

c) Miten suhtautuvat toisiinsa ISDN, ATM ja SONET? (3 p)

Kapeakaista ISDN ei sinänsä liity ATM:ään. Sen sijaan laajakaista ISDN (B-ISDN) perustuu ATM-teknologian käyttöön. Usein niiden katsotaan olevan lähes sama asia. B-ISDN:ää voidaan pitää palveluna, joka toteutetaan ATM-teknologialla.
SONETissa solut lähetetään tarkalla kellolla tahdistettuna, ATM:ssä milloin sattuvat saapumaan. SONET-kehyksissä voidaan lähettää mm. ATM soluja=> SONETia voidaan käyttää ATM-datavirran siirtokanavana.

d) Mikä on pulssikoodimodulaatio (PCM)? Missä sitä käytetään ja kuinka se pääpiirteissään toimii? (4 p)
PCM-tekniikalla koodataan analoginen data eli mielivaltainen aaltoliike digitaaliseksi tiedoksi. Aaltoliikkeen amplitudista otetaan näytteitä määrävälein ja havaittu amplitudin arvo muutetaan digitaaliseksi. Jos näytteitä otetaan riittävän tiuhaan eli Nyquistin kaavan perusteella 2 *W (kaksi kertaa aaltoliikkeen korkein frekvenssi), niin saadaan talteen kaikki aaltoliikkeen informaatio. Digitalisointi tapahtuu siten, että aaltoliikeen amplitudin mahdolliset arvot on jaettu n:ään peräkkäiseen tasoon (n on jokin kakkosen potenssi esim. 64, 128, 256, ..) ja se mihin näistä tasoista havaittu amplitudi kuuluu määrää sen arvon bitteinä. Esim. jos tasoja on 256 niin tasoon 16 tasoon kuuluvat amplitudiarvot koodataan bittijonoksi 00010000. Mitä enemmän tasoja, sitä tarkemmin aaltoliike pystytään esittämään. Toisaalta sitä enemmän bittejä joudutaan käyttämään yhden arvon esittämiseen. Tasoja on aina rajallinen määrä.

Käytetään esim. puhelinlinjoilla koodattaessa analoginen signaali digitaaliseen muotoon. Tällöin näytteitä otetaan 8000 sekunnissa eli näyte 125 mikrosekunnin välein ja käytössä tasoja 128 tai 256.