Tietoliikenne I

Kurssikokeen 12.4.2005 arvostelusta

  1. Lähettäjän verkkoon lähettämät paketit voivat tulla perille virheellisinä tai kadota kokonaan.
    1. Mitkä tekijät aiheuttavat virheellisiä paketteja tai pakettien katoamisia? (4p)
    2. 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)
    3. Miten Internet-protokollat IP, UDP ja TCP suhtautuvat virheisiin ja virhetilanteesta toipumiseen? (8 p)

      a) -kohdassa haluttiin seuraavia asioita:

      • bittivirheet erityisesti langattomilla yhteyksillä muuttavat paketin bittejä ja ryöppyinä voivat hävittää koko paketin; reititin voi tuhota sopivasti vikaantuneet paketit
      • ruuhka verkossa aiheuttaa reitittimien puskureiden ylivuotoa ja pakettien katoamisia
      • huono reititys voi kierrättää pakettia liian pitkään verkossa, jolloin se hävitetään elinajan loppumisen takia
      • vikaantuneet laitteet voivat hävittää ja vääristää paketteja

      Arvostelussa: 1 piste joka kohdasta.

      b)-kohdan vastauksessa haluttiin seuraavia asioita:

      • Virheen tai puuttuvan paketin havaitseminen
        • Vastaanottaja voi havaita virheellisen paketin pakettiin liitettyjen tarkistusbittien avulla.(1 p)
        • Käytössä on useita erilaisia menetelmiä, useimmilla vain havaitaan paketin bittien muuttuneen (2 p eli noin ½ p per menetelmä; jos on kirjoittanut menetelmästä tarkemmin, niin on voinut saada ½ pistettä lisää)
          • pariteettibitti / pariteettibitit
          • tarkistussumma 'checksum'
          • CRC-tarkistus
          • Hamming-tarkistusbitit, joiden avulla voidaan myös korjata yhden bitin virhe
        • Välistä puuttuva paketti havaitaan pakettien numeroinnilla (1 p) (Vastaanottaja ei voi havaita viimeisen paketin puuttumista)
      • Paketin virheestä tai puuttumisesta toipuminen
        • Yleensä virheestä toivutaan lähettämällä puuttuva tai virheellinen paketti uudestaan. Jos lähettäjä ei saa kuittausta (ack) lähettämästään paketista, niin paketin ajastin laukeaa ja paketti lähetetään uudestaan. Joskus käytetään myös NAK-kuittausta ilmoittamaan virheellisestä tai puuttuvasta paketista. (2 p)
        • Voidaan myös käyttää virheen korjaavaa tarkistusta, jonka avulla vastaanottaja pystyy itse korjaamaan paketin. Joissakin tapauksissa virheestä toipumista kannata edes yrittää. (2 p)

        Arvostelussa:

        • Miten havaitaan virheellinen tai puuttuva paketti 4 p;
        • miten toivutaan virheestä 4 p.

      c)-kohdassa kysyttiin Internet-protokollien suhtautumisesta virheisiin ja virheestä toipumiseen.

      • IP (2 p)
        • otsakkeen kattava tarkistussumma, joka lasketaan joka hypyllä
        • virheestä ei yritetä toipua; yleensä virheellinen datagrammi vain tuhotaan
      • UDP (2 p)
        • tarkistussumman (checksum) käyttö vapaaehtoista, tarkistussumma lasketaan koko UDP-segmentistä + pseudo-otsakkeesta.
        • Ei kuittauksia eikä virheestä toipumista.
        • Virheellinen paketti voidaan hävittää tai antaa sovelluskerrokselle varoituksen kera.
        • Ei vuon- eikä ruuhkanvalvontaa pakettien 'turhan' häviämisen estämiseksi.
      • TCP
        pyrkii virheettömään tiedonsiirtoon: havaitsemaan virheet ja toipumaan niistä sekä vuonvalvonnalla että ruuhkanvalvonnalla huolehtimaan siitä, ettei turhaan hävitetä jo verkkoon lähetettyjä ja pitkälle siirrettyjä paketteja. (4 p)
        • Checksum segmentille ja pseudo-otsakkeelle
        • virheettömät ja oikeassa järjestyksessä vastaanotetut paketit kuitataan; numeroinnista sovitaan yhteyttä muodostettaessa
        • jos kuittaus ei tule ajoissa, paketin ajastin laukeaa ja lähettäjä lähettää paketin uudelleen vastaanottajalle
        • vuonvalvonta: vastaanottajan ikkunan koko joka kuittauksessa
        • melko monimutkainen ruuhkanvalvonta, jotta paketteja ei tarvitsisi hävittää ruuhkan takia

  2. Opiskelija surffailee Internetissä ja klikkaa URL-linkkiä. Tuloksena opiskelijan koneen näytölle tulee näkyviin osoitetta vastaava sivu jostakin kaukana olevasta koneesta.
    1. Mitä sovelluskerroksella (application layer) tapahtuu? Mitä sovelluskerroksen toimintoja ja protokollia käytetään? Mitä sanomia ja missä järjestyksessä sovelluskerroksella lähetetään? (8 p)

      Tässä piti selostaa sekä IP-soitteen selvittämistä (DNS-protokolla) (4 p) että selaimen ja palvelimen välistä viestintää (HTTP-protokolla) klikatun sivun siirtämiseksi (4 p).

      • DNS-protokollan yhteydessä:
        • miksi osoitetta tarvitaan ja
        • kuinka se selvitetään URL:sta (välimuisti, rekursiivinen kysely, iteratiivinen kysely)
        • DNS-sanomat: kysymys ja vastaussanomia
      • HTTP:n GET-sanoma ja sen vastaukseksi pyydetty sivu tarvittaessa lisäsivuja (esim. kuvia) pyydetään erikseen.

      Ektrapisteitä on voinut saada välimuistin käytöstä, pistokeohjelmoinnista, yms.

    2. Mitä tapahtuu kuljetuskerroksella (transport layer)? Mitä kuljetuskerroksen toimintoja ja protokollia käytetään? Mitä ja sanomia ja missä järjestyksessä kuljetuskerroksella lähetään? (10 p)

      Kuljetuskerroksella tarvitaan sekä UDP-protokollaa että TCP-protokollaa, sillä DNS käyttää UDP-protokollaa ja HTTP TCP-protokollaa omien protokollasanomiensa välittämiseen.

      • UDP:n toiminta lyhyesti (2 p)
        DNS-kyselyviestit käyttävät UDP-protokollaa. Viesti laitetaan UDP-kehykseen ja lähetetään vastaanottajalle yhtenä kokonaisuutena ilman mitään turhia varmistuksia.
      • TCP:n toiminta (12 p)
        TCP on luetettava protokolla, joka pyrkii kaikin keinoin varmistamaan sanomien perillemenon virheettöminä ja oikeassa järjestyksessä.
        • yhteyden muodostus kolminkertaisella kättelyllä
        • HTTP-sanomat lähetetään datana TCP-segmentteissä
          • segmenttien lähetyksessä virhetarkistus
          • uudelleenlähetys, jos kuittaus ei tule ajoissa,
          • vuonvalvonta, jossa lähettäjä ilmoittaa paljonko pystyy ottamaan vastaan ja
          • ruuhkanvalvonta hitaalla aloituksella
        • yhteyden purku kolminkertaisella kättelyllä

      Arvostelusta:

      • UDP-protokollan käyttö 2 p
      • TCP-protokollan käyttö 10 p
        • yhteyden muodostus 3
        • sanomien lähettäminen (5 p)
          • HTTP-sanomat TCP-segementeissä 1-2 p
          • kuittaukset ja uudelleen lähettäminen1-2 p
          • vuonvalvonnan maininta 1 p
          • hidas aloitus 1-2 p
      • yhteyden purku 2 p


  3. Vastaa seuraaviin kysymyksiin. (20 p)
    1. Reititin vastaanottaa eteenpäin toimitettavaksi 4000 tavun datasähkeen, jonka numero on 123, mutta verkko, jonne paketti pitäisi lähettää hyväksyy korkeintaan 1500 tavun kokoisia datasähkeitä. Miten IPv4-protokolla toimii tässä tilanteessa? (5 p)

      Tarkkaan ottaen vastaanotetussa datasähkeessä on 3980 tavua dataa (tämä sisältää myös TCP-otsakkeen)+ 20 tavun IP-otsake.
      Datasta muodostetaan kolme uutta datasähkettä, joihin jokaiseen tulee lisäksi IP-otsake.

       
       Kaikilla on tunnuksena 123. 
       
       tunnus     offset    more-bitti    dataa bitteinä 
       123            0       1                1480 
       123          1480      1                1480 
       123          2960      0                1020                                       
                                             ======= 
                                               3980 tavua 
       
      Vastaukseksi on kelpuutettu myös jako kolmeen segmenttiin: 1500, 1500, 1000, kunhan muut tiedot ovat ok.
      Osien kokoamista ei tässä välttämättä tarvinnut kertoa mitään. Mutta, jos kertoi väärin, niin siitä saattoi menneä pisteitä.
      Kurose& Ross (2.): 336-339

      Arvostelusta:

      • more-bitti unohtunut -1 p
      • poikkeaman tilalla jotain muuta (esim. järjestysnumero) -1
      • poikkeamat puuttuvat kokonaan -2 p
      • pilkotaan reitittimessä pienemmiksi paloiksi 1 p
      • pilkotaan reitittimessä kolmeen paketiksi: 1500, 1500, 1000 ja lähetetään verkkoon = 3 p

    2. Näytä esimerkeillä, kuinka etäisyysvektorireititystä (distance vector routing) käytettäessä 'hyvät uutiset leviävät nopeasti ja huonot uutiset hitaasti'. Miten tätä ongelmaa on pyritty ratkaisemaan?( 5 p)

      Puuttuu vielä, lisään myöhemmin!

    3. Miten Ethernet-verkon asema toimii halutessaan lähettää kehyksensä verkkoon? (5 p)

      Tässä piti selittää Ethernetin MAC-kerroksen toiminta eli lähinnä kuinka CSMA/CD toimii lähettäessään MAC-kehyksen verkkoon:

      • ensin lähetyskanavan kuuntelu
        • jos vapaa, niin lähetetään heti
        • jos joku muu lähettämässä jäädään kuuntelemaan ja lähetetään heti, kun linja vapautuu
        kuuntelu ja lähetys 2-3 p
      • varmistetaan, ettei tullut törmäystä eli kukaan muu ei aloittanut lähetystä samaan aikaan (=> ethernet-kehyksellä minimi pituus)
        Kun törmäys havaitaan, siitä ilmoitetaan muille.
        Törmäystilanteesta selvitään eksponentiaalisella binääriperuutuksella ja lyhyt selvitys sen toiminnasta ( 2-3 pistettä)
        (Kurose & Ross (2): 460-462)

    4. Mitä tarkoitetaan ruuhkanvalvonnalla (congestion control) ja vuonvalvonnalla (flow control)? Millainen on TCP-protokollan käyttämä vuonvalvontamenetelmä? (5 p)

      • Ruuhkanvalvonta pyrkii havaitsemaan ruuhkatilanteen syntymisen mahdollisimman ajoissa ja purkamaan ruuhkautumiset niin, ettei verkko ruuhkan takia tukkeudu täysin ja paketteja jouduta ruuhkan takia hävittämään.(1 p)
      • Vuonvalvonta pyrkii huolehtimaan siitä, ettei lähettäjä lähetä vastaanottajalle dataa enemmän kuin tämä pystyy käsittelemään. Jos vastaanottajan puskurit täyttyvät, niin lähetettyä dataa katoaa. (1 p)
      • TCP:llä on käytössä joustava ja dynaaminen liukuvan ikkunan menetelmä (sliding window). Jokaisessa kuittauksessa mukana ilmoitus uudesta ikkunan koosta eli paljonko on tilaa vielä vastaanottajan puskurissa (jo myös alkukättelyissä, kun kuittaukset on käytössä). Voidaan myös ilmoittaa koko nollaksi => lukkiutumisongelma (0-3 p)
        Tai on voinut mainita TCP:n käyttävän hieman mukailtua go-back n- mekanismia kuittauksineen (ack). Lisäksi on pitänyt hieman selitellä, mitä tällä tarkoittaa.(0-3 p).