Tietoliikenne I, kevät 2003

Harjoitus 4 (11.-14.2.2003)

  1. Vastaa lyhyesti seuraaviin kysymyksiin. Vastaukset yleensä löytyvät suoraan luennosta tai kurssikirjasta.
    1. Mitä tarkoitetaan kahden armeijan ongelmalla (two-army problem)? Miten tämä ongelma liittyy TCP-protokollaan?
    2. Mikä on kolminkertainen kättely (three-way handshake)? Miksi TCP:ssä tarvitaan kolminkertainen kättely? Eikö kaksinkertainen kättely riitä?
    3. Mikä on hidas aloitus (slow start) ja nopea toipuminen (fast recovery)?
    4. Miksi TCP:n ruuhkanvalvonnassa on niin tärkeää, että uudelleenlähetysajastimen arvo on asetettu oikein? Miten arvo saadaan? Mitä tapahtuu, jos arvo on liian pieni tai liian suuri?

  2. Stop and wait -protokolla.
    1. Miksi 1-bittinen järjestysnumero (käytössä siis numerot 0 ja 1) riittää 'stop and wait' -protokollassa? Tutki protokollan toimintaa ja päättele sen perusteella, ettei useampia numeroita tarvita erottamaan lähetykset toisistaan.
    2. Onko myös kuittaukset ACK ja NAK numeroitava 'stop and wait' -protokollassa? Tutki taas protokollan toimintaa eri tilanteissa ja selvitä, löytyykö tilannetta, jossa numeroimaton ACK tai NAK aiheuttaa ongelmia.
    3. Osoita, että 'go back N':ää käytettäessä ikkunan koko saa olla korkeintaan N-1, missä N on käytettyjen sanomanumeroiden määrä.

  3. Tutkitaan liukuvan ikkunan protokollien toimintaa.
    Oletetaan, että häiriöpurske tuhoaa datakehyksen D(n+1) ja edellisen kehyksen D(n) ACK-kuittauksen sekä vielä sitä seuraavan kuittauksen.
    1. Näytä kaaviokuvana, kuinka tilanteessa toimii
      • paluu N:ään (Go-Back-N),
      • valikoiva toisto (Selective Repeat)
    2. Olisiko NAK-kuittauksen käytöstä mitään hyötyä kummankaan protokollan tilanteessa? Mitä haittaa NAK-kuittauksesta voisi olla?
    3. Onko ajastin ihan välttämätön molemmissa protokollissa?

  4. TCP-protokollan suorituskyvyn rajoituksia
    1. Oletetaan, että jossakin kuljetusprotokollassa SLOW yhdessä segmentissä voidaan lähettää korkeintaan 128 tavua dataa, Segmentin maksimi elinaika (time to live) on 30 sekuntia. Protokollan segmentit numeroidaan (0, 1, 2, ...) ja segmenttinumeroa varten on varattu 8 bitin mittainen kenttä. Mikä on yhden yhteyden suurin mahdollinen datanopeus (= miten nopeasti dataa voidaan linjalla lähettää)? Vihje: Numeroita voi käyttää uudestaan vasta, kun edellinen saman numeroinen segmentti on varmasti poissa verkosta.
    2. TCP-protokollassa oletusarvoinen segmentin koko on 536 tavua, elinaika 4 minuuttia ja järjestysnumerolle on varattu 32 bittiä. Lisäksi TCP-protokollassa käytetään tavunumerointia. Mikä tällöin on yhden TCP-yhteyden maksimaalinen linjanopeus?
    3. TCP-protokollaa käyttävä kone lähettää kerrallaan 65 535 tavun määrän (= yhden täyden ikkunan) dataa linjalla, jonka kapasiteetti on 1 Gbps ja viive yhteen suuntaan 10 ms. Mikä on maksiminopeus, jolla kone voi lähettää? Mikä on tällöin linjan käyttötehokkuus?

  5. Hidas aloitus (slow start)
    1. Mihin hidasta aloitusta käytetään? Mitä hyötyä siitä on? Voiko siitä olla haittaa? Jos, niin missä tilanteissa?
    2. 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 yhdessä segmentissä voidaan lähettää korkeintaan 2 KB (= maximum segment size). Kynnysarvo (threshold) on aluksi 30 KB. Kauanko kestää, ennenkuin voidaan lähettää ensimmäinen täysi ikkunallinen?
    3. Kun täysi ikkunallinen on lähetetty, siihen ei saadakaan kuittausta ajoissa, vaan uudelleenlähetysajastin (retransmission timer) laueta. Miten lähettämistä jatketaan tämän jälkeen.

  6. Sähköpostisovellus siirtää suurehkon kuvia sisältävän sähköpostin vastaanottajan postijärjestelmään TCP-protokollaa käyttäen. Oletetaan, että siirrossa ei esiinny mitään virheitä tai muita ongelmia. Selvitä, esim. kaaviokuvan avulla, mitä tällöin TCP-tasolla tapahtuu eli mitä TCP-segmenttejä, missä järjestyksessä ja milloin lähettäjän ja vastaanottajan järjestelmien välillä vaihdetaan.