Tietoliikenne II, syksy 2002
Harjoitus 1 (17.-19.9. 2002)
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ä.
TCP-yhteydellä linjan
siirtonopeus on 100 MBps ja edestakainen viive (RTT) on 100 ms.
- Mikä on yhteydellä
saavutettava maksiminopeus ilman TCP-protokollan optioita?
- Millä ikkunaskaalaus (window
scale) -option arvolla tällä TCP-yhteydellä päästään
hyödyntämään linjan täyttä
siirtonopeutta?
- Miten ikkunaskaalaus-option käytöstä
sovitaan?
- 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.
- Ollaan lähetyksen alussa.
Ruuhkaikkunan koko on 2 MSS ja heti ensimmäinen paketti tulee
virheellisenä vastaanottajalle.
- 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ä.
- 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.
- 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ä?
- Ota selvää, mitä tarkoittaa "exponential
retransmission timer backoff". Miten se toimii? Miksi sitä
tarvitaan? Mitä hyötyä siitä on?
- Lähettävä TCP
noudattaa Naglen algoritmia.
- 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ä?
- Voiko Naglen algoritmista olla hyötyä myös
"silly window syndroma" -ongelmaan?