Tietoliikenne II, syksy 2001

Harjoitus 1 (tiistai 30.10.2001)

  1. TCP-kerros saa sovellukselta dataa lähetettäväksi. Oletetaan, että dataa on 15 Ktavua ja verkossa voidaan lähettää 1500 datatavun segmenttejä. Esitä, mitä kaikkia TCP-segmenttejä lähettävän ja vastaanottavan TCP-olion välillä lähetetään ja missä järjestyksessä niitä lähetetään. Selvitä myös segmenttien oleellisten kenttien sisältö. Voit olettaa, etteivät vastaanottoikkuna ja ruuhkaikkuna rajoita tiedon lähettämistä.

  2. TCP-yhteydellä linjan siirtonopeus on 100 MBps ja edestakainen viive (RTT) on 100 ms.
    1. Mikä on 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?

  3. 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 100 kbps.
    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 tapauksissaa, että kiertoaika (round-trip-time) on 200 ms ja uudelleenlähetysajastimen arvo 3*kiertoaika. Lähetystä rajoittaa vain ruuhkaikkuna.

  4. 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ä?

  5. Esitä kaaviokuvana, miten lähetykset tapahtuvat tehtävän 3 tilanteissa, jos käytössä on SACK-optio. Missä tilanteissa tästä näyttää olevan hyötyä?

  6. 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?