Tili I Syksy 2000 Harjoitus 2 ============= 1. Viisi levykettä a' 1.6 Mtavua => 8 Mtavua eli 64 Mb. (Tässä voisi myös käyttää 64 Mb = 64*1024*1024 = 67108864 bittiä, mutta tämä on paljon hankalampi luku laskea!) pyöräilijän käyttämä aika = matka/pyöräilijän nopeus tiedonsiirtoaika = tiedoston koko/linjanopeus => matka = pyöräilijän nopeus*(tiedoston koko / linjanopeus). Oletetaan pyöräilijän nopeus = 18 km/tunti = 18000 m/3600 s = 5.00 m/s i) linjanopeus on 9600 bps matka = pyöräilijän nopeus * 64000000 b/9600 b/s = 5.0 m/s * 1.87 tuntia matka = 33333.33 m = ~ 33 km (tai 5*67108864/9600 = 34952,5 m = ~ 35 km ii) linjanopeus 10 Mbps matka = 5.0 * 6.4 s = ~ 32 metriä b) i) 5*8,5 Gtavua = 42.5 Gtavua = 340 Gbittiä = 340 *10 **9 bittiä => siirtoaika on 35.42 * 10**6 s (siis yli 35 miljoonaa sekuntia; yhdessä vuorokaudessa 0n 60*60*24 sekuntia = 86400 ja vuodessa on 365*86400 = 3153600 sekuntia eli 31.5 miljoonaa sekuntia eli pyöräilijä ehtii pyöräillä yli vuoden!) => etäisyys on 177083 km eli yli neljä kertaa maapallon ympäri. ii) => siirtoaika on 340000 s => etäisyys 1700000 m eli 1700 km! iii) Jos nopeus on 1Gbps => siirtoajaksi 340 s => etäisyydeksi 1700 m eli 1.7 km c) Entä viive? Viive on aina pitkä eli ensimmäinen bitti saapuu samalla kertaa kun pyöräilijäkin. Lisäksi data on syötettävä levykkeeltä tietokoneella ennenkuin sitä voidaan käyttää. 2. Häiriöalttiilla linjalla on kannattavampaa käyttää pieniä paketteja, jotka kuitataan. Jos linjalla ei ole häiriöitä, niin voidaan käyttää suurempaa pakettikokoa. Huom! Onko syytä tarkistaa ja kuitata paketteja jo siirtoyhteyskerroksella vai vasta kuljetuskerroksella. 3.Kupari: + valmiiksi vedettynä lähes kaikkialla + käsittelytekniikka tuttua + liittymät halvempia - vahvistamatta n. 2.5 km - kuitua hankalampaa käsitellä (raskasta 1km painaa 8000 kg, tilaa vievää) - kaistanleveys pienempi kuin kuidulla => nopeus 10 Mbps + hinnaltaan vielä hieman kuitua halvempaa Tulee säilymään vielä pitkään paikallissilmukoissa, harvaan asuttujen seutujen puhelinkaapeleissa. Kuitu: + halpa suhteessa kapsiteettiinsa + suuret, yli 2.5 Gbps nopeudet mahdollisia - reitittimet, kytkimet hitaita + hinta vain 5% kuparia kalliimpaa + kevyttä, kohtalaisen helppo käsitellä => teknologia alkaa tulla tutuksi + pitkillä kiinteillä yhteyksillä luotettavampi => tarvitaan vähemmän vahvistimia (vahvistamatta n.200 km) + operaattoreiden runkoverkot lähes kaikkialla jo kuitua + käyttö lisääntyy koko ajan + tietoturva parempi, vähemmän häiriöitä Langaton: - lähetykset yleisesti kuultavissa => suojaus salauksella, - ilmatie yleensä häiriöaltista eri versioita: mikrolinkki, infrapuna, matkapuhelin, satelliitti mikrolinkki: + halpaa rakentaa tarvitaaa vain antennit +- kapsiteetti suurempi kuin kuparin, pienempi kuin kuidun - luotettavuus huono huonolla säällä + käyttökelpoinen alueilla, jonne ei kapasiteetin puolesta kannata vetää kuitua eikä eikä kustannusten takia kaapeleitakaan (esim. Siperian metsät, Amazon viidakko, Valko-Venäjän suot, Lapin erämaat) infrapuna + toimistotilat, teollisuuslaitokset ja varastojen sisätilat eli paikoissa, joissa kaapelointi on hankalaa ja joissa tarvitaan liikkuvuutta - erilaiset esteet vaikuttavat säteiden kulkuun matkapuhelin + liikkuva toimisto + saavutettavuus hyvä - monia erilaisia verkkoratkaisuja - kapasiteetti: pieni siirtonopeus - ilmatiellä paljon häiriöitä satelliitti: + yhteydet paikkoihin, joihin on hankala vetää kaapelia tai edes pystyttää matkapuhelimen tai mikrolinkin tukiasemia + kapsiteettia on - pitkä viive etenkin geoststionäärisillä satelliiteillä - rajallinen määrä satelliitteja 4. 5.a) Teoriassa kolme eri taajuutta riittää siihen, etteivät vierekkäiset taajuudet ole samoja. => 840/3 => käytettävissä 280 taajuutta / solu. Jos vaaditaan, että kaikilla solua ympäröivillä kuudella eri solulla on eri taajuus, tarvitaan 7 eri taajuutta => käytettävissä on 840/7 = 120 taajuutta/solu. Yleensä solut piirretään säännöllisiksi vierekkäisiksi kuusikulmioiksi. Jokaista solua ympäröi siis kuusi muuta solua. Tarvitaan vähintään kolme erilaista taajuutta, jotta vierekkäisissä soluissa olisi eri taajuudet. Tämä on minimimäärä 'värejä', millä solut pystytään värittämään. Huom: todellisuudessa solut voivat olla hyvinkin erikokoisia ja muotoisia. Solujen koko ja muoto voi vaihdella sääolosuhteiden mukaan. Vierekkäiset solut ovat osin päällekkäisiä. Joten taajuuksien jakaminen ei ole aivan näin suoraviivaista. Usein on parempi ottaa käyttöön sama taajuus uudelleen vasta muutaman solun jälkeen. b) Yhteys voidaan joutua hylkäämään, koska kaikki solun taajuudet ovat jo käytössä ("kaikki linjat varattu" -tilanne). 6. a) Siirto on etappivälitteinen (store and forward) ja koko sanoma joudutaan lähettämään kolmen etapin eli hypyn yli. Sanoman yksi lähetys kestää 10 Mtavua/1 Mtavu/s = 10 sekuntia. Kaksi lähetystä kestää siis 3*10 s = 30 sekuntia (ilman muita viiveitä). b) Yhden paketin koko on 1 Mtavu eli kunkin paketin lähettäminen kestää 1 sekunnin. Lähde S1 S2 Kohde aika 0 111111111111111 1 222222222222222 1111111111111 2 333333333333333 2222222222222 111111111111 3 444444444444444 3333333333333 222222222222 4 555555555555555 4444444444444 333333333333 5 666666666666666 5555555555555 444444444444 6 777777777777777 6666666666666 555555555555 7 888888888888888 7777777777777 666666666666 8 999999999999999 8888888888888 777777777777 9 101010101010101 9999999999999 888888888888 10 1010101010101 999999999999 11 101010101010 12 kaikki paketit siirretty lähteestä kohteeseen ja aikaa kulunut 12 sekuntia. c) Yhden paketin siirto yhden välin yli kestää (p+h)/b sekuntia. Kun ensimmäinen paketti etenee, niin se kulkee etappivälitteisesti solmusta toiseen k väliä. Jokaiseen väliin kuluu (p+h)/b sekuntia ja välejä on k => aikaa ensimmäisen paketin siirtoon kuluu k*(p+h)/b sekuntia. Muut paketit etenevät limittäin aikaisempien pakettien kanssa ja niitä joudutaan odottamaan vain yhden hypyn ajan. Paketteja on kaikkiaan X DIV p kappaletta, jos X on jaollinen p:llä (kokonaisjako) X DIV p +1 kappaletta, jos X ei ole jaollinen p:llä aika t = k*(p+h)/b + X DIV p (p+h)/b = 1/b ( k*p + k*h + X + X*h DIV p) = 1/b ( k*h + X + k*p + X*h DIV p) ================ tämä on minimoitava! f'(k*p + X*h DIV p)= k -xh /p**2 = 0 ( eli nollakohta) => k= xh /p2 => P = neliöjuuri (x*h/k) Harjoitus 4 ============ 1. Asemat A, B, C ja D käyttävät CDMA:ta dataa lähettäessään. Asemille on varattu omat sirukoodit seuraavasti: A: 00011011, B: 00101110, C: 01011100 ja D:01000010. a) Millainen yhteissignaali syntyy, kun asemat A, B ja C lähettävät samanaikaisesti 0-bittiä? b) Kun vastaanottaja saa signaalin (-1 +1 -3 +1 -1 -3 +1 +1), mitkä asemat ovat tällöin lähettäneet ja minkä bitin kukin on lähettänyt? a) A: 1= 0001 1011 0=1110 0100 B: 1= 0010 1110 0=1101 0001 C: 1= 0101 1100 0=1010 0011 D: 1= 0100 0010 0=1011 1101 eli toisin merkittynä kun 1 = 1 ja 0 =-1 A:n 0 = 1 1 1 -1 -1 1 -1 -1 B:n 0 = 1 1 -1 1 -1 -1 -1 1 C:n 0 = 1 -1 1 -1 -1 -1 1 1 --------------------------------------- yhteissignaali = 3 1 1 -1 -3 -1 -1 1 b) Vastaanotetaan S = -1 +1 -3 +1 -1 -3 +1 +1 Kokeillaan ! A = -1 -1 -1 +1 +1 -1 +1 +1 A*S = 1 -1 +3 +1 -1 3 1 1 = 8 => A lähettänyt ykkösen B*S = 1 -1 -3 -1 -1 -3 +1 -1 = -8 => B lähettänyt nollan C*S = +1 +1 +3 +1 -1 -3 -1 -1 = 0 => C ei lähettänyt mitään D*S = +1 +1 +3 -1 +1 +3 +1 -1 = 8 => D lähetti ykkösen (Tätä voidaan myös yrittää päätellä: 1. -1 => koska kaikilla ensimmäisenä on -1, niin mukana yksi tai kolme lähettäjää 2: +1 => mukana oltava A, B ja C tai D, mutta ei molemmat tai A:n tai B:n komplementti 3: -3 => A ja B:n komplementti sekä joko C tai D. Kumpi? 4: +1 => A= 1, B:n komplementti = 1, tällöin kolmannen oltava -1 eli D. Tuloksena siis A lähetti 1, B lähetti 0 ja D lähetti 1.) 2. 10Base2-tyyppisen Ethernet-väylän pituus on 1000 m. Millainen verkko on kyseessä? Montako toistinta siinä tarvitaan? Minkä kokoinen pitää kehyksen vähintään olla? Kyseessä on verkko, jonka nopeus on 10 Mbps ja jossa käytetään ohutkaapelia. Maksimietäisyys on ilman toistimia on 200 metriä ja solmuja voi olla korkeintaan 30/kaapelisegmentti. Eetteriverkossa voi olla korkeintaan 4 toistinta ja jotta 200 metrin pätkillä päästään 1000 metriin tarvitaan 5 200 metrin segmenttiä, joiden välissä on 4 segmenttiä. PS. Itseasiassa segmentti ei ole 200 metriä, vaan 185 metriä eli näin pitkää verkkoa ei näillä kaapeleilla pystytä rakentamaan! Maksimipituus on 925 m Standardi määrää minimikehyksen pituudeksi 64 tavua. Lähinnä kai siksi, että se olisi yhteensopiva 10Base5-eetteriverkon kanssa, jossa maksimietäisyys on 2500 m. Signaalin etenemisnopeus väylällä 2/3 valonnopeudesta eli 2/3 * 300 000 km /s = 200 m/mikros. Pituus 1000 m => pahimmassakin tapauksessa tieto törmäyksesä lähettäjälle 2*1000 m/200m/mikros = 10 mikrosekunnissa. Lähetysnopeus on 10Mbps = 10 bitti /mikros, joten 10 mikrosekunnissa lähetetään 100 bittiä. Pelkän siirtonopeudem ja etenemisviiveen mukaan kehyksen tulee olla vähintään 100 bittiä, jotta törmäys pahimmassakin tapauksessa ehditään huomata ennen lähetyksen loppua. Lisäksi vielä toistimet hidastavat eetteriväylää, joten minimikehyksen tulee olla vastaavasti pitempi. Kun eeetteriväylän pituus on 2500 m ja väylällä on 4 toistinta, niin minimikehys on 64 tavua eli 512 bittiä. Tällöin toistinten vaikutus on lähes sama kuin väylän pituuden eli toistimet vaikuttivat 32 tavua ja väylän pituus samoin 32 bittiä. Tästä voisi päätellä, että 1000 m väylällä minimikehys olisi 100 bittiä + 320 bittiä = 420 bittiä. Minimikehys on 64 tavua eli 512 bittiä. Lähetysnopeus on 10 Mbps eli 1 bitti kestää lähettää 1/10 **7 = 1* 10**--7 s = 0,1 mikrosekunti. => 512 bittiä kestää 51.2 mikros. Lähettäjän on vielä lähetyksensä aikana ehdittävä havaita, tapahtuiko törmäys vai ei myös minimikehyksellä ja hankalimmassa tilanteessa, jossa lähettäjä on aivan toisessa päässä kaapelia ja törmäys tapahtuu aivan vastakkaisessa päässä. Tällöin signaalin on kuljettava ensin lähettäjältä toiseen päähän kaapelia, jossa törmäys tapahtuu ja törmäyssignaalin takaisin lähettäjältä eli kuljettava matka on kaksi kertaa kaapelin pituus. Yritetään ensin suoraan laskemalla: Kun signaali etenee kaapelissa noin 2/3 valonnopeudesta eli (2/3)*300000 km/s = 200 m/mikros, niin minimikehyksen lähetyksen aikana signaali etenee 51.2 mikros*200 m/mikros = 10240 m = 2*kaapelin pituus => kaapelin pituus on maksimissaan 5120 m! Nyt kuitenkin kaapelissa olevat toistimet hidastavat signaalin etenemistä, joten kun kaapelin pituus on 2500 m ja siinä 4 toistinta, niin viive on tällöin (pahimmassa tapauksessa ) 51.2 mikros eli minimikehyksen 64 tavua lähetysaika nopeudella 10 Mbps (Tanenbaum s. 281). Siis neljä toistinta puolittaa maksimi pituuden 2500 metriin. Tehtävä 3 * Asema A lähettää * B ja C kuuntelevat ja havaitsevat jonkun paraikaa lähettävän => molemmat jäävät odottamaan lähetyksen loppumista * kun A lopettaa lähetyksen, B ja C molemmat aloittavat oman lähetyksensä => törmäys * B ja C valitsevat kumpikin satunnaisesti kahdesta aikavälistä: seuraavasta tai vasta yhden slotin perästä * jos toinen valitsee heti lähettämisen ja toinen yhden vuoron odottamisen, ei tule törmäystä, vaan heti lähettävä pääsee aloittamaan oman lähettämisensä hävinnyt odotettuaan vuoron kuuntelee linjaa ja huomaa lähetyksen olevan käynniss ja jää odottamaan linjan vapautumista yrittääkseen uudelleen lähettämistä (mahdollisesti joutuu taas törmäyskurssille mahdollisten muiden odottajien kanssa) * jos molemmat valitsevat samoin (= molemmat lähettävät heti tai molemmat odottavat) => uusi törmäys Nyt B ja C valitsevat kumpikin satunnaisesti 4:stä slotista: 0, 1, 2 ja 3. Törmäys syntyy, jos molemmat valitsevat samoin, muuten toinen pääsee lähettämään js toinen luopuu. Jos taas törmäys, niin valitaan 8:sta slotista ja jne 1023 slotiin asti! 4. 5. Kuvassa on joukko tuntumattomilla silloilla toisiinsa kytkettyjä lähiverkkoja.
a) Anna esimerkki tilanteesta, jossa siltojen reititystaulujen muodostaminen ei onnistu pelkkää "tulvitus"- menettelyä käyttäen.
b) Muodosta reitityksen määrittelevä virittävä puu (silta B1 on juurisolmu).
c) Simuloi kehyksen kuljetus L3-verkon solmusta L1-verkon solmuun. Miksi menetelmä ei aina johda suorituskyvyn kannalta optimaaliseen ratkaisuun?
   LAN L1  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
                    |              |                 |
                    B1             |                 | 
                    |              B5                B6 
   LAN L2  XXXXXXXXXXXXXXXXXXX     |                 | 
                    |      |       |                 | 
                    |      B3      |                 | 
                    |      |       |                 | 
                    B2  XXXXXXXXXXXXXXXXX LAN L3     | 
                    |           |                    |                            /              | 
                    |           |                    |                           |               B4 
                    |           B4                   |   
                    |           |                    |
                    |           |                    |
   LAN L4  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 

a) Jos tuntumaton silta ei tiedä sanoman vastaanottajan osoitetta, niin se lähettää paketin kaikkiin niihin verkkoihin, joissa se on kiinni (paitsi siihen verkkoon, mistä paketti alunperin tuli). Jos verkossa on silmukoita, niin tämä lähettäminen ei pääty koskaan.

Esimerkiksi, jos silta B1 ei löydä vastaanottajan XYZ osoitetta reititystaulustaan, se lähettää paketin verkkoihin L1 ja L2. Verkoissa L1 ja L2 kiinni olevat sillat B5, B6 ja B2, B3 ohjaavat paketin lähiverkkoihin L3 ja L4. Kumpaakin verkkoon tulee kaksi pakettia: sillat B3 ja B5 ohjaavat verkkoon L3 ja sillat B2 ja B6 verkkoon L4. B5:lta tullut paketti ohjautuu takaisin L2:een ja samoin B3:lta tullut paketti ohjautuu takaisin L1:een. B1 saa näin kaksi kopiota lähettämästään sanomasta, jotka se taas ohjaa toisen L1:een ja toisen L2:een. Myöhemmin se saa lisää kopioita muilta.

Tässä kiertävien pakettien lukumäärä kasvaa koko ajan, koska verkkoon L1 ja L4 tulleet paketit aina kaksinkertaistuvat.Yksinkertaisimmassa tapauksessa, jossa kukin silta liittetty vain kahteen lähiverkkoon pakettien määrä ei kasva, mutta paketit kiertävät jatkuvasti ympäri.

Päättyykö koskaan?

Jos ei ole lainkaan etsittyä asemaa, niin ei pääty. Jos etsitty asema saa paketin, ja vastaa siihen ilmoittamalla osoitteensa, niin kaikki ne sillat, jotka ovat vastauksen kulkeman reitin varrella osaavat päivittää ohjaustaulunsa ja pystyvät lähettämään loput kyselypaketit suoraan etsitylle asemalle. Ongelma: asema voi saada hyvinkin runsaasti kyselyitä! Jos silmukka ei ole tämän reitin varrella, niin paketteja pyöritetään siellä jatkuvasti!

Auttaisiko, jos pakettiin liitetään hyppylaskuri, jota aina vähennetään yhdellä jokaisen uudelleenlähetyksen yhteydessä?

Mistä tiedetään laskurille sopiva alkuarvo? Tuntumattoman sillan tulee kyetä toimiaan mitä erilaisimmissa verkoissa. Se vaan asennetaan ja sitten silta huolehtii reitin selvittämisestä. Yksittäisellä sillalla ei ole aavistustakaan verkon koosta tai tarkemmasta asemakohtaisesta topologiasta. Se vain osaan lähettää paketit 'oikeaan suuntaan' eli oikeaan lähiverkkoon.

Ainoa ratkaisu virittävä puu, jolloin mitään silmukoita ei ole. b) Varsinainen virittävän puun laskenta-algoritmi, jonka jokainen silta itsekkeen suorittaa, antaa yksikäsitteisen puun. Hajautettu Perlmanin algoritmi. Pienin numero: kukin silta lähettää kaikille sarjanumeronsa. Edellytys tunnetaan sillat ja lähiverkot, niiden välisten yhteyksien kustannukset. Juureksi silta, jolla pienin sarjanumero. Kuskakin sillasta/lähiverkosta lyhyin reitti juureen. Jos kaksi yhtä lyhyttä, silloin valitaan yksikäsitteisesti toinen niistä. Tulvitus (ja kaikki muukin reititys) tapahtuu vain virittävän puun siltoja pitkin. Olisiko mahdollista erottaa tulvitus ja muu reititys? Jolloin virittävä puu rajoittaa vain tulvitusta eikä muuta reititystä? Valitaan siis juureksi silta B1 B1 LAN L2 LAN L1 B2 B3 B5 B6 LAN L4 LAN L3 B4 c) Virittävää puuta käytettäessä LAN L3:sta päästään L1:een sillan B3, verkon L2 ja sillan B1 kautta. Optimaalinen reitti olisi ollut sillan B5 kautta, mutta silta B5 ei kuulu virittävään puuhun eikä osallistu pakettien välittämiseen verkosta toiseen. 6. Tulvituksen yksi ongelma se, että kehykset jäävät verkon silmukoihin ikuisiksi kiertolaisiksi. Mitä erilaisia tapoja on ratkaista tämä ongelma? - virittävä puu => ei silmukoita, - pakettiin hyppylaskuri tai aikalaskuri hyppylaskuri vähennetään jokoalähetyksell yhdellä eikö enää lähetetä eteenpäin, kun laskurin arvo on nolla aikalaskurissa aikaa vähennetään - reitittimet pitävät kirjaa niissä jo käyneistä paketeista, eivätkä lähetä niitä enää eteenpäin paketilla pitää olla tunniste, josta erotetaan muista reitittimen tunnus + juokseva numerointi reititin pitää kirjaa jo käyneistä (hankala kirjanpito) - paketti kirjaa jo kulkemansa reitin - valikoiva tulvitus: ohjataan paketteja vain oikeaan suuntaan (miten tämä tiedetään?) b) se löytää aina reitin, jos olemassa jokin yhteys ei tarvitse tietää osoitetta löytää nopeimman reitin (optimireitti) helppo lähettää kaikille (broadcast) c) hyppyjen lukumäärä käyttökelpoinen, mutta melko karkea mitta maantieteellinen etäisyys linjanopeus rahakustannus kiertoviive entä viive yhteensuuntaan? jononpituus kuormitus yhdistelmä näistä Harjoitus 5 ============ 2. Dijkstran algoritmi 3. a) Eräs IP-osoite on heksadesimaalimuodossa C22F1582. Kirjoita se tavanomaisessa muodossaan.


Puretaan kentät C 2  2 F  1 5  82: 
   C 2 = 12*16 +  2 = 194
   2 F =  2*16 + 15 =  47
   1 5 =  1*16 +  5 =  21
   8 2 =  8*16 +  2 = 130
   
Näin saadaan osoitteeksi tavanomaisessa muodossa:

   194.47.21.130  
   
4. 3000 tavua dataa => kaksi  1500 datatavun IP-pakettia.
   Lähettävä isäntäkone voi valita vapaasti IP-paketin koon. Järkevä valinta on
   sen oman verkon suurin MTU (maximum transmission unit)

      ( id = 100  dm=0, MF=0, fragment offset=0  total length = 1520 
       id = 101  dm=0, MF=0, fragment offset=0  tolal length = 1520)
    
    Jos A:n lähiverkossa voi paketissa kuljettaa vain 1500 tavua dataa, 
    niin nämä eivät mahdu A-verkon pakettiin! Myös IP-otsake on dataa A:N
    paketissa.
    
    id = 100  dm=0, MF=0, fragment offset=0  total length = 1500 (1480 dataa +
    1P-otsake) 
    id = 101  dm=0, MF=0, fragment offset=0  total length = 1500 (1480 dataa +
    IP-otsake
    id =102   dm=0, MF=0, fragment offset=0  total length =60 (40 dataa + 20
    IP-otsake) 
    
    
   Reititin saa paketit tällaisina. Se paloittelee paketit 100 ja 101, jotka
   ovat liian suuria verkkoon B: 
   
    id = 100  dm=0, MF=1, fragment offset=0  total length = 1000 (980 dataa +
    1P-otsake) 
    id = 100  dm=0, MF=0, fragment offset=980  total length = 540 (520 dataa +
    1P-otsake) 
    id = 101  dm=0, MF=1, fragment offset=0  total length = 1000 (980 dataa +
    IP-otsake
    id = 101  dm=0, MF=0, fragment offset=980  total length = 540 (520 dataa +
    IP-otsake
    id =102   dm=0, MF=0, fragment offset=0  total length =  60 (40 dataa + 20
    IP-otsake) 
      
   
5. Jokin fragmentti voi siirrossa kadota. Tämän
takia fragmenttien kokoajalla on yleensä ajastin, jonka lauettua keskeneräinen
tietosähke tuhotaan. Oletetaan, että eräs tietosähke
kuljetetaan neljänä fragmenttina. Kolme saapuu ajoissa, mutta neljäs myöhästyy:
ajastin laukeaa ja tietosähke hävitetään.
Jonkin ajan kuluttua se neljäs kuitenkin saapuu paikalle. Mitä
sille pitäisi tehdä? Miten?

Kun neljäs fragmentti saapuu, sitä käsitellään 'uuden' tietosähkeen ensimmäisenä fragmenttina. Sille varataan puskuri ja ajastin asetetaan ja fragmentti sijoitetaan paikalleen puskuriin. Kun ajastin laukeaa, niin tämäkin tietosähke hävitetään.

Jos nyt sattuisi niin sopivasti, että uudelleenlähetetyn tietosähkeen fragmentit ehtisivät ajoissa ja tulisivat sikäli samoja verkkoja pitkin, että niiden fragmentit sopisivat tämän neljännen fragmentin kanssa yhteen, tällöin saataisiin kokoon uusi tietosähke, joka luovutettaisiin vastaanottajalle.

Huom! Yhteydettömässä verkossa uudelleen lähetetty paketti voi olla pilkottuna erikokoisiin osiin. c) IP-tietosähke (datagram) käyttää "strict source routing" -optiota. Tietosähke joudutaan fragmentoimaan. Pitääkö ko. optiotieto kopioida jokaiseen fragmenttiin, vai riittääkö tiedon sijoitus vain ensimmäiseen? Miksi?
Jos sijoitetaan vain ensimmäiseen fragmenttiin, niin vain tämä kulkee haluttua reittiä ja muut menevät mitä tietä tahansa. Jos tietty reitti halutaan esim. turvallisuuden takia, niin vain pieni osa sanomasta kulkee turvallista reittiä ja muut mahdollisesti turvatonta tietä. Tämä tuskin on tavoite. Joten koska halutaan, että koko datasähke kulkee turvallista (tai halpaa tai nopeata, jne) reittiä, niin optiotieto on kopioitava kaikkiin tietosähkeen fragmentteihin. 6. Mihin UDP:tä tarvitaan? Eikö riittäisi antaa käyttäjäprosessien lähettää pelkkiä IP-paketteja?
Ei riitä! UDP:ssä on IO-osoitteen lisäksi porttiosoite. Harjoitus 6. ============ 2. a) TCP-protokollaa käyttävä kone lähettää kerrallaan 65 435 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? Koska viive on yhteen suuntaan 10 ms, niin kuittaus tulee 20 ms kuluttua. Siis täysi ikkunallinen eli 65 435 tavua voidaan lähettää aina 20 ms välein => yhdessä sekunnissa voidaan lähettää korkeintaan 50 ikkunallista eli suurin nopeus on 50 * 65435 Bps = 3 271 750 Bps = 3.3 MBps = 26.2 Mbps. Linjan kapasiteetti on 1 Gbps = 1000 Mbps => käyttötehokkuus = 26.2/1000 = 0.0262 eli vain 2.62 %. b) Verkossa on maksimi TPDU:n koko 128 tavua, maksimi TPDU:n elinikä 30 sekuntia ja 8-bittinen järjestysnumero. Mikä on yhden yhteyden suurin mahdollinen datanopeus? Maksimi eliniän aikana voi lähettää vain niin monta sanomaa kuin sanoman järjestysnumeroilla voidaan ilmaista eli sanomat 0 - nromax. Jos lähetettäisiin uudelleen sanomia 0:sta eteenpäin, niin verkossa voisi vielä kuljeksia toinen sanoma, jonka järjesysnumero on myös 0. Nämä sanomat voisivat sekaantua.

Nyt järjestysnumerolle on varattu 8 bittiä, jolla voidaan ilmaista 256 erilaista numeroa. Siis 30 sekunnin aikana voidaan lähettää korkeintaan 256 TPDU:ta eli 256*128*8 bittiä. Joten sekunnissa 32768/30 = 1092 tavua ja 8.74 Kbps. 3. a) Käytetään hidasta aloitusta linjalla, jonka kiertoviive on 10 ms. Linjalla ei ole ruuhkaa. Vastaanottajan ikkuna on 24 KB ja segmentin maksimikoko 2 KB. Kauanko kestää, ennenkuin voidaan lähettää ensimmäinen täysi ikkunallinen?

Hitaassa aloituksessa kaksinkertaistetaan ruuhkaikkunan koko aina kun lähetetyistä segmenteistä saadaan kuittaus. Kuittauksen saapumiseen kuluu 10 ms eli kiertoviiveen mittainen aika. Aluksi ruuhkaikkunan koko on yhden segmentin maksimikoko = 2 KB. Koska kynnysarvoa ei ole mainittu, niin käytetään oletusarvoista arvoa 64 KB.

Lähetystä rajoittaa sekä ruuhkaikkuna että vastaanottajan ikkuna. Aluksi sitä rajoittaa ruuhkaikkuna, mutta lopuksi vastaanottajan ikkuna.

kun aikaa on kulunut        0 ms    10 ms   20 ms    30 ms    40 ms
ruuhkaikkunan koko KB       2        4       8       16       32
lähetetään KB               2        4       8       16       24 
b) Kun lähetetään 24 KB, niin kuittaus siihen ei enää tule ajoissa. Uumoillaan siis ruuhkaa, joten kynnysarvoksi tulee puolet ikkunan arvosta eli 12 KB ja ruuhkaikkunan kasvattaminen aloitetaan hitaalla aloituksella uudelleen alusta eli 2 KB:sta. Ensin lähetetään 2 KB, sitä 10 ms päästä 4 KB, sitten 8 KB ja 16 KB, jonka jälkeen 18 KB, 20 KB, jne kunnes päästään 24 KB:hen ja vastaanottajan ikkuna rajoittaa lähetystä (olettaen, että vastanottajan ikkunan koko pysyy ennallaan). c) Fast retransmission, fast recovery useampi samaan sanomaan kohdistunut kuittaus => vastaanottaja ilmoittaa virheellisestä tai puuttuvasta sanomasta (~ NAK) Fast retransmission: kun tulee useita peräkkäisiä samaan sanomaan kohdistuvia kuittauksia, niin lähetetään heti neljännen saman sanoman kuittauksen (= kolmas toistokuittaus) jälkeen puuttuva tai virheellinen sanoma uudestaan. fast recovery ei hidasta aloitusta nopean uudelleenlähetyksen jälkeen. Ruuhkaikkunan arvoksi asetetaan puolikas käytetystä ikkunasta 24 => 12 ja jatketaan lineaarista kasvattamista 12 KB, 13 KB, 14 KB,... 24 KB, jolloin käyttäjän ikkuna ei salli enää lähetyksen kasvattamista.