581333-1 Tietoliikenne I Erilliskoe 18.1.2002 Kirjoita jokaisen vastauspaperisi yläreunaan kurssin nimi ja kokeen päivämäärä sekä nimesi, syntymäaikasi ja allekirjoituksesi. 1. Lähettäjän verkkoon lähettämät paketit voivat tulla perille virheellisinä tai kadota kokonaan. a) Mitkä tekijät aiheuttavat virheellisiä paketteja tai pakettien katoamisia? (4 p) Tässä kaivattiin selityksiä bittivirheitä aiheuttavista siirtovirheistä, jotka johtuvat usein huonolaatuisista siirtomedioista: esim. vaimeneminen, ylikuuluminen, muut sähköiset häiriöt, sade ilmatiellä jne pakettien katoamisesta reitittimissä erityisesti ruuhkan takia tai vastaanottajan puskurin täyttyessä. Huonosti toimiva reititys voi aiheuttaa pakettien tuhoamisen elinaikalaskurin mennessä nollille. Samoin rikkoutuneet ja väärin toimivat laitteet voivat kadottaa paketteja. Monet protokollat eivät luovuta eteenpäin virheelliseksi havaitsemiaan paketteja. Arvostelusta: täydet 4 pistettä sai vaikka ei ihan kaikkia näitä syitä kertonutkaan. Kuitenkin ruuhka, joka tällä hetkellä on tärkein pakettien kadottaja, piti mainita ja vastauksen tuli olla kokonaisuus eikä pelkkä ranskalaisten viivojen luettelo. 2 pistettä sai, kun oli maininnut joitakin järkeviä syitä ja 3 pistettä sai, jos vastaus kattoi kattoi suuremman osa asioista. b) Miten vastaanottaja havaitsee paketin virheelliseksi tai huomaa paketin puuttuvan? Mitä eri keinoja ja tapoja on käytettävissä? Miten tällaisesta virhetilanteesta toivutaan?(8 p) Tähän haluttiin seuraavanlaisia asioita: Tarkistusumman avulla havaitaan virheet * pariteettibitti * Hamming-koodi * TCP/IP:n 'internet checksum' * CRC Paketit numeroidaan ja pidetään kirjaa jo vastaanotetuista => huomataan puuttuvat. Virheellisistä ei lähetetä kuittausta (ACK) (tai lähetetään NACK-kuittaus tai toisto ACK). Puuttuvista paketeista toivutaan aina uudelleenlähetyksellä ja yleensä myös paketin virheistä. Lähettäjän ajastin laukeaa, kun kuittausta ei tule ajoissa ja virheellinen tai puuttuva sanoma lähetetään uudestaan. Paketissa voi olla myös niin paljon tarkistustetoa, että vastaanottaja pystyy sen avulla korjaamaan paketin virheet. Esim. Hamming-koodin avulla pystytään korjaamaan yhden bitin virhe. Arvostelusta: 0-3 p Virheiden havaitseminen tarkistussummalla. Riippuen siitä montako menetelmää on mainittu ja miten paljon niistä on kerrottu. 0-2 p Puuttuvien pakettien havaitseminen 0-3 p Virhetilanteesta toipuminen uudelleenlähetyksellä tai tarkistustiedon avulla c) Miten Internet-protokollat IP, UDP ja TCP suhtautuvat virheisiin ja virhetilanteesta toipumiseen? Tai miten ne pyrkivät estämään virheiden syntymistä? (6 p) IP: Otsikon tarkistussumma. Dataan ei lisätä tarkistussummaa. Virheellinen datasähke yleensä hävitetään. Ei uudelleenlähetyksiä. UDP: Tarkistussumma virheiden havaitsemista varten. Ei pyri mitenkään toipumaan virheestä. Joko ilmoittaa vastaanottajalle tai hävittää virheellisen segmentin. Ei varaudu ruuhkiin eikä vuonvalvontaan. TCP: Pyrkii havaitsemaan virheet ja toipumaan virhetilanteista: internet checksum, numerointi, kuittaukset, uudelleenlähetyajastin, uudelleenlähetykset. Pyrkii myös estämään virheiden syntymistä: vuonvalvonta, ruuhkavalvonta. Arvostelusta: Suunnilleen IP => 0- 2 p, UDP => 0-2 p, TCP => 0-2p, mutta jos on vastannut jostain osasta täydellisemmin, se on saattanut korvata hieman jonkin toisen osuuden puutteita. 2. Hidas aloitus (slow start) a) Mihin hidasta aloitusta käytetään? Mitä hyötyä siitä on? Voiko siitä olla haittaa? Jos on, niin missä tilanteissa? (6p) Hidasta aloitusta käytetään TCP:n ruuhkanhallinnassa. Hitaalla aloituksella 'testataan' verkon kuljetuskapasiteettia. Aluksi kuormitetaan verkkoa kevyesti ja jos verkko tämän liikenteen pystyy hoitamaan, niin kuormitusta voidaan kasvattaa. Hitaalla aloituksella löydetään optimaalinen lähetysmäärä melko nopeasti (eksponentiaalinen kasvu!) mitä vaihtelemmissa ja muuttuvissa verkon kuormitustilanteissa. Hidas aloitus on myös tasapuolinen. Siitä on haittaa esim. langattomilla yhteyksillä, joissa esiintyy paljon virheitä ja virheiden jälkeen aloitetaan olemattoman ruuhkan takia lähettämällä aluksi vain vähän, sekä pitkän viiveen ja suuren kapasiteetin satelliittilinkeillä, joissa kestää pitkään ennenkuin koko linkin kapasiteetti saadaan käyttöön. Arvostelusta: Periaatteessa mitä on (0-2 p) + mitä hyötyä (0-2 p )+ onko haittaa ja missä (0- 2 p), mutta 1-3 on saanut, jos on yleensä kirjoittanut jotain sopivaa aiheesta. Mitä enemmän asiaa, sitä enemmän pisteitä. 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 kilotavua ja kynnysarvo (threshold) on aluksi 30 kilotavua. Esitä kaaviona, kuinka 100 kilotavun tiedoston lähettäminen tapahtuu, kun se lähetetään 2 kilotavun segmentteinä? (8 p) 100 kilotavua 2 kilotavun segmentteinä => 50 segmenttiä. Aika lähetetään segmenttejä kaikkiaan lähetetty 0 1 1 100 2 3 200 4 7 300 8 15 400 9 24 500 9 33 600 9 42 700 8 50 Hetkellä 400 ruuhkaikkunan koko olisi 16 segmenttiä eli 32 kilotavua, mutta vastaanottaja ei huoli kuin 18 kilotavua eli 9 segmenttiä. Joten lähetetään sitten 9 segmenttiä kerrallaan, niin kauan kuin lähetettävää riittää. Voidaan myös aloittaa heti kahdella segmentillä. c) Oletetaan, että tiedoston segmentti 30 katoaa kokonaan ruuhkan takia. Miten lähettämistä jatketaan tämän jälkeen? (4 p) Jos segmentti 30 katoaa, niin tällöin lähetysikkuna = 9 segmenttiä (= vastaanottajan ikkuna). Aikanaan uudelleenlähetysajasti laukeaa ja segmentti 30 lähetetään uudestaan. Aloitetaan hitaalla aloituksella ja kynnysarvo saa arvokseen puolet lähetysikkunan arvosta = 4 ja lähetetään segmentit seuraavasti: lkm segmentit 1 30 2 31 ja 32 4 33-36 5 37-41 6 42-47 3 48-50 Tässä oletettu, että kaikki segmentit segmentistä 30 lähtien joudutaan lähettämään uudestaan. Arvostelusta: kohdat b) ja c) on useassa tapauksessa arvosteltu yhdessä Hitaan aloituksen perustoiminta: 4 pistettä aloitus yhdestä (tai kahdesta) segmentistä exponentiaalinen kasvatus aina kuittauksen jälkeen kynnysarvon jälkeen lineaarinen kasvatus b)-kohdassa : vastaanottajan ikkunan koon merkitys lähetyksen määrään 3 p b)-kohdassa : kaavio ja laskutoimitukset 1 p c)-kohdassa: uudelleenlähetysajastin laukeaa ja puuttuvasta segmentistä lähtien lähetetään uudelleen hitaalla aloituksella 2 p uusi kynnysarvo oikeasta arvosta 2 p 3. Linkkiä http://www.motorola.com/NSS/Technology/cdma.html klikataan WWW-verkossa. a) Mitä tämän osoitteen eri osat tarkoittavat? (3 p) Tämän taisivat lähes kaikki osata! b) Millaisia osoitteita on käytössä sovellus-, TCP-, IP- ja MAC-kerroksella? (6 p) Tässä piti mainita ja lyhyesti luonnehtia (millaisia): Sovelluskeroksen domain-osoittteet TCP:n portit IP-osoitteet fyysiset osoitteet (koneosoitteet) c) Miten käyttäjän klikkaaman linkin osoitteen avulla päästään yhteyteen oikean koneen oikeaan prosessiin eli miten sovellus-, TCP- ja IP-kerros selvittävät alemman palvelua tarjoavan kerroksen käyttämän osoitteen? (6 p) Sovelluskerros: DNS:n avulla IP-osoite, porttina sovelluksesta riippuva tunnettu portti (esim. HTTP = 80). Tähän pistokeosoitteen halutaan TCP-yhteys. TCP: tiedossa sovellukselta saatu IP-osoite eli kone johon halutaan yhteys. IP: joutuu muuttamaan vastaanottajan omassa lähiverkossa IP-osoitteen MAC-osoitteeksi, jotta pystyy lähettäämään verkkoon. Tässä käytetään ARP-protokollaa. Arvostelusta: IP-osoitteen selviitäminen ja käyttö 2 p portin selvittäminen ja käyttö 2 p MAC-osoitteen selvittäminen ja käyttö 2 p 4.Kerro lyhyesti, mitä tarkoitetaan seuraavilla termeillä tai lyhenteillä. Kerro myös, mihin ongelmaan ne liittyvät. a) MIME (3 p) Ongelma: Internetin postiohjelmassa voi lähettää vain ASCII-tekstiä 1 p MIME on laajennus, jonka avulla voidaan lähettää myös muun tyyppistiä sanomia, kuten kuvia videota, tekstiä, joka sisältää muita kuin ASCII-merkkejä. 1 p MIME lisää otsakekenttiin sisällön tyypin ja tavan, jolla jolla sisällön bitit on muutettu ASCII-merkeiksi sanoman siirron ajaksi. 1 p b) liukuvan ikkunan protokolla (sliding window protocol) (3 p) Ongelma: Stop and wait-tyyppinen protokolla sallii vain yhden kuittaamattoman sanoman => tehotonta tiedonsiirtoa. Liukuvan ikkunan protokolla mahdollistaa tehokkaamman liukuhihnoitetun tiedonsiirron. 1 p Ja niin, että vastaanottaja voi säädellä lähettäjän lähettämistä eli harrastaa vuonvalvontaa. 1 p Lähettäjä saa lähettää korkeintaan ikkunallisen, jonka jälkeen täytyy jäädä odottamaan vastaanottajan 'lupaa' eli kuittausta. Kuittaukset liuuttavat ikkunaa ja sallivat uusien sanomien lähetyksen. 1 p c) pistoke (socket) (3 p) Ongelma: Miten ohjelmoija saa sovellusohjelmastaan käyttöön kuljetuskerroksen palvelut? Pistoke on ohjelmoijalle näkyvä 'ovi' (rajapinta, API) verkkopalveluihin eli kuljetuskerroksen käyttöön. 1 p Pistokkeella on tunnistenumero, porttinumero. Tunnetut porttinumerot vakiopalveluilla. Kommunikoinnin päätepiste 1 p Pistokkeita luodaan ja niihin kirjoitetaan ja niistä luetaan hyvin samalla tavoin kuin tiedostoihin. 1 p