Tietoliikenne II, syksy 2004

Harjoitus 1 (21.-22.9.)

  1. TCP-yhteydellä linjan siirtonopeus on 100 Mbps ja edestakainen viive (RTT) on 200 ms.
    1. Mikä on TCP-yhteydellä saavutettava maksiminopeus ilman TCP-protokollan optioita?
    2. Millä ikkunaskaalaus (window scale) -option arvolla tällä TCP-yhteydellä päästään hyödyntämään linjan täyttä siirtonopeutta?
    3. Miten ikkunaskaalaus-option käytöstä sovitaan?

  2. Miten TCP-yhteyden nopeuteen vaikuttaa se, että TCP-segmentin maksimielinaika verkossa on 2 minuuttia? Päästäänkö TCP-yhteydellä lainkaan teholliseen 100 Mbps nopeuteen? Millä eri tavoin järjestysnumeroiden uudelleenkäytön ongelmaa voitaisiin yrittää ratkaista? Voisiko aikaleimaoptiota hyödyntää myös tässä?
  1. Esitä kaaviokuvana, miten 'perus'TCP (slow start, retransmission timer, fast retransmit, fast recovery) selviää seuraavista tilanteista. MSS:n koko on MSS:n oletusarvo eli 536 tavua (RFC 879) ja lähetysnopeus 10 Mbps.
    1. Ollaan lähetyksen alussa. Ruuhkaikkunan koko on 2 MSS ja heti ensimmäinen paketti tulee virheellisenä vastaanottajalle.
    2. Ruuhkaikkuna on 8 MSS ja ensin onnistutaan lähettämään yksi segmentti kunnolla perille, sen jälkeen virheryöppy vääristää 3 seuraavaa segmenttiä.
    3. Ruuhkaikkuna on 8 MSS ja toinen segmentti joutuu hieman ruuhkautuneelle yhteydelle ja se tule vastaanottajalle viivästyneenä vasta neljännen lähetetyn segmentin jälkeen. Muut segmentit tulevat kyllä järjestyksessä.
    Oletetaan kaikissa tapauksissa, että kiertoaika (round-trip-time) on 100 ms ja uudelleenlähetysajastimen arvo 2*kiertoaika. Lähetystä rajoittaa vain ruuhkaikkuna.

  2. Esitä kaaviokuvana, miten edellisen tehtävän tapauksista selvitään, jos käytössä on rajoitettu lähetys (limited transmit). Missä tilanteissa rajoitetusta lähetyksestä näyttää olevan hyötyä?

  3. Oletetaan, että käytössä onkin SACK-optio. Esitä kaaviokuvana, miten lähetykset tapahtuvat tehtävän 3 b) ja c)-kohdissa.

  4. Lähettävä TCP noudattaa Naglen algoritmia.
    1. Sovellus lähettää dataa tavu kerrallaan. Miten TCP voidaan pakottaa lähettämään data aina heti, kun se on saapunut? Onko tilanteita, joissa tällainen nopea, mutta tehoton tiedonsiirto voi olla tarpeellista, jopa välttämätöntä?
    2. Voiko Naglen algoritmista olla hyötyä myös "silly window syndroma" -ongelmaan?