Tietoliikenne
I -kurssin erilliskokeen 26.9.2003 arvostelusta
Pisteitä on saanut sen mukaan,
miten hyvin kysyttyjä asioita on selittänyt. Lähinnä
tämä tarkoittaa sitä, miten hyvin on onnistunut
tuomaan vastauksessaan esille kaikki oleelliset asiat. Jokainen
oleellinen kohta on tuonut yhden tai joskus useamman pisteen. Jonkin
kohdan perusteellisempi selvitys on saattanut tuoda korvaavia
lisäpisteitä, jos jokin muu kohta on jäänyt
hieman vajaaksi.
Tehtävä 1.
Lähettäjän
verkkoon lähettämät paketit voivat tulla perille
virheellisinä tai kadota kokonaan.
- Mitkä tekijät
aiheuttavat virheellisiä paketteja tai pakettien katoamisia? (4
p)
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)
Miten
Internet-protokollat IP, UDP ja TCP suhtautuvat virheisiin ja
virhetilanteesta
toipumiseen? Tai miten ne pyrkivät estämään
virheiden syntymistä? (8 p)
a) -kohdassa haluttiin seuraavia
asioita
(1 piste joka kohdasta) :
- 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 pakettimien katoamisia
- huono reititys voi kierrättää
pakettia liian pitkään verkossa, jolloin se hävitetää
elinajan loppumisen takia
- vikaantuneet laitteet voivat
hävittää ja vääristää paketteja
b)-kohdan vastauksessa haluttiin
seuraavia asioita
(miten havaitaan virheellinen tai
puuttuva paketti 4 pistettä; miten toivutaan virheestä 4 pistettä):
- 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)
- pariteettibitti / pariteettibitit
- tarkistussumma 'checksum'
- CRC-tarkistus
- Hamming-tarkistusbitit, joiden
avulla voidaan myös korjata yhden bitin virhe
- Puuttuva paketti havaitaan
pakettien numeroinnilla (1 p)
- 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 korjamaan paketin. Joissakin tapauksissa virheestä
toipumista kannata edes yrittää. (2 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ä
toipumisita. 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
- jos kuittaus ei tule ajoissa,
paketin ajastin laukeaa ja läheettäjä lähettää
paketin uudelleen vastaanottajalle
- vuonvalvonta: vastaanottajan
ikkunan koko joka kuittauksessa
- melko monimutkainen
ruuhkanvalvonta, jotta paketteja ei tarvitsisi hävittää
ruuhkan takia
2. tehtävä:
Vastaa seuraaviin kysymyksiin:
- Mitä tarkoitetaan
vuonvalvonnalla (flow control)? Mitä keinoja ja mekanismeja
vuonvalvontaan käytetään?
(5 p)
- Mitä tarkoitetaan
ruuhkanvalvonnalla (congestion control)? Mitä keinoja ja
mekanismeja ruuhkanvalvontaan
käytetään? ( 5 p)
- Mitä tarkoitetaan
tulvituksella (flooding)? Mitä ongelmia tulvituksessa on? Mitä
hyviä puolia?
(5 p)
- Mitä tarkoitetaan
paloittelulla (fragmentation)? Miksi sitä tarvitaan? Miten
IP-protokolla
(versio 4) suhtautuu
paloitteluun? (5 p)
Kukin kohta siis maksimissaan 5 pistettä. Pisteitä taas sen mukaan, paljonko asiaa vastauksessa on.
a) Vuonvalvonta: vastaanottaja voi
estää lähettäjää lähettämästä
enemmän kuin itse pystyy käsittelemään. Tarpeen
jotta vastaanottajan puskuri ei vuoda yli ja näin hävitä
segmenttejä.
- keinot: liukuva ikkuna, joka
rajoittaa lähettäjän kuittaamattomien segmenttien
määrää. Ikkuna siirtyy ack-kuittausten myötä
ja näin lähettäjä saa taas lähettää
lisää.
- TCP: joka kuittauksessa
ilmoitetaan ikkunan koko eli paljonko lähettäjä saa
vielä lähettää.
b) Ruuhkanvalvonta on tarpeen, jotta
verkko ei ylikuormitu ja reitittimet eivät puskureiden ylivuodon
takia hävitä sanomia.
- TCP:n ruuhkanvalvonta:
perusversiossa slow start + kynnysarvon jälkeen hitaampi
lähetyksen määrän kasvattaminen. Ajastimen
laukeaminen vähentää lähetyksen takaisin
hitaaseen aloitukseen.
- Parannettu versio: 3.
toistokuittauksen jälkeen nopea uudelleenlähetys (ei ehkä
olekaan ruuhkaa, vaan huono, virheitä aiheuttava yhteys) ja
nopea toipuminen (pudotetaan lähetys vain puoleen)
c) tulvitus (flooding) = reititystapa,
jossa saatu paketti lähetetään edelleen kaikista
muista linkeistä, paitsi siitä, josta se juuri saatiin.
Tulvitus aiheuttaa verkkoon yhä enemmän ja enemmän
paketteja. Ongelmana on tulvituksen lopettaminen: paketeilla
elinaika, jonka jälkeen ne tuhotaan; pidetään kirjaa
jo käsitellyistä paketeista eikä enää
lähetetä niitä eteenpäin; tehdään
verkosta 'virittävä puu', jolloin siinä ei ole
silmukoita.
Hyöty: löydetään
nopein reitti ja yleensäkin saavutetaan kaikki solmut joihin on
jokin yhteys.
d )Paloittelu on tarpeen, koska eri
verkoissa on erilainen paketin maksimikoko. IPv4 -reititin
paloittelee liian suuren paketin ennenkuin lähettää se
toiseen verkkon: datagrammin otsakkeesa on tieto mistä paketista
ja mistä kohtaa pakettia kyseinen pala on, sekä myös
tieto siitä, onko kyseessä paketin viimeinen pala.
Paloittelu voidaan myös estää. Vastaanottaja kokoaa
paketin ennenkuin antaa sen käyttäjälle.
3. Tehtävä
Tietojenkäsittelytieteen
opiskelija Aimo Ahkera laatii luennon väliajalla laitoksen
verkkoon liitetyllä koneella sähköpostisanoman ja
lähettää sen vaihto-oppilaana Australiassa olevalle
ystävälleen Ulla Uutteralle. Sanoma sisältää
sekä tekstiä että yhden kuvan viime kesän
rantajuhlista.
- Mitä sovelluskerroksen
protokollia ja toimintoja tarvitaan sanoma siirtämiseen Aimon
postijärjestelmästä
Ullan postijärjestelmään? Kerro myös mihin näitä
protokollia ja
toimintoja tarvitaan. (8 p)
Miten TCP-protokolla
osallistuu sähköpostisanoman toimittamiseen
vastaanottajalle? Piirrä
kaaviokuva, josta selviää,
mitä kaikkia TCP-protokollan segmenttejä ja missä
järjestyksessä
tarvitaan. (8 p)
Piirrä kaaviokuva, josta
selviää, millaisessa muodossa (= mitä otsakkeita
(header) ja
peräkkeitä
(trailer) siihen on liitetty) sähköpostisanoma siirtyy
sovelluskerroksella,
kuljetuskerroksella, verkkokerroksella ja
linkkikerroksella. (4 p)
a) Tässä piti mainita
sellaisia protokollia kuin:
-
DNS domain-osoitteen muuttamiseksi
IP-osoiteeksi (2 p);
-
SMTP sähköpostin vaihtamiseen
postijärjestelmien ja postipalvelimien välillä
(PUSH-protokolla) (2 p);
- postin lukemiseen ja siirtämiseen
omalle koneelle: POP3, IMAP, HTTP; (1 p kukin) sekä
-
MIME-toiminto kuvan lähettämiseen (1 p).
b) Kaaviokuvassa:
-
TCP-yhteyden aloitus
kolminkertaisella kättelyllä: SYN, SYN ACK ja ACK ;
-
SMTP-,
POP3- , IMAP- tai HTTP-protokollien sanomien siirtäminen
TCP-protokollan segmentteinä (hidas aloitus + ruuhkanvalvonta,
vuonvalvonta, tarkistusbitit segmenteissä ja kuittaukset sekä
mahdolliset uudelleenlähetykset);
- sekä TCP-yhteyden
päättäminen kolminkertaisella kättelyllä
(FIN, FIN ACK, ACK).
Aloitus: 2 p, datan lähetys 2 p,
lopetus 2 p, missä tarvitaan 2 p.
c)
Kustakin kerroksesta 1 piste.
- sovelluskerroksella: esimerkiksi
sähköpostiprotokollan sanoma: tarpeelliset sähköpostiprotokollan otsakkeet ja
itse viesti ASCII-koodattuna.
- Kuljetuskerroksella:
sähköpostiprotokollan sanoma tai osa siitä
dataosassa; otsakkeena TCP-otsake
- Verkkokerroksella: datana
TCP-segmentti (tai osa siitä) ja otsakkeena IP-otsake
- linkkikerroksella: datana
IP-datagrammi (tai osa siitä) ja otsakkeena MAC-otsake (tai
esim. PPP-otsake) + mahdollinen peräke.