sarja 8 45318d, 45356d 1. UDP ====== a) UDP on epäluotettava, koska siinä ei käytetä kuittauksia. UDP on yhteydetön. Käytännössä tämä tarkoittaa sitä, että lähetetty UDP-paketti voi matkalla kadota, eikä lähettävä pää saa sitä koskaan tietää (ellei käytetä jotain UDP:n päällä toimivaa kuittausprotokollaa). Kaiken kommunikaation ei kuitenkaan tarvitse olla luotettavaa. Sovelluksissa, jossa vain viimeisellä perille tulleella viestillä on merkitystä, kannattaa käyttää UDP:ta; esim. NTP. b) UDP:n pseudo-otsikko on otsikko, jota ei oikeasti ole olemassa. Se sisältää lähdeosoitteen, kohdeosoitteen, protokollan ja paketin UDP-osuuden pituuden. Kun IP-paketin sisällä olevan UDP-paketin tarkistussummaa laskettessa otetaan mukaan pseudo-otsikko, voidaan olla varmoja siitä, että paketti on saavuttanut oikean koneen ja portin. c) UDP tuo IP:hen lisää multipleksoinnin, eli porttinumerot, ja datan tarkistussumman. UDP-paketit kulkevat IP-pakettien sisällä. 2. TCP ====== a) TCP:ssä käytetään kuittauksia, eli pakettien perilletulo taataan. Paketit on numeroitu, eli paketeista voidaan rekonstruoida lähetetty data oikeassa järjestyksessä. Lisäksi paketeissa on tarkistussuma, eli data ei korruptoidu matkalla. b) TCP:n liukuvassa siirtoikkuna on käytännössä kolme osoitinta. Ensimmäinen merkitsee ikkunan vasemman reunan ja erottaa oktetit jotka on lähetetty ja kuitattu niistä, joita ei ole kuitattu. Toinen merkitsee ikkunan oikean reunan. Kolmas on ikkunan keskellä ja erottaa lähetetyt oktetit lähettämättömistä. Lähetysikkunaa käyttämällä verkon käytön hyötysuhde on paljon suurempi, koska ei tarvitse odottaa kuittausta jokaiselle paketille ennen seuraavan lähetystä. c) TCP tilakone on teoreettinen malli, joka kuvaa TCP-protokollan toimintaa. Tilakone koostuu tiloista ja nuolista, jotka kuvaavat siirtymiä tilojen välillä. Nuolen nimet kertovat millä syötteellä kyseinen siirtymä tehdään, ja mitä lähetetään vastaukseksi. 3. TCP vs. UDP ============== a) TCP:ssä on seuraavat kentät, joita UDP:ssa ei ole: järjestysnumero, kuittausnumero, data offset, controllibitit, ikkuna, urgent pointer, optiot, padding. Näistä melkein kaikki liittyvät suoraan siihen, että TCP on yhteydellinen. UDP:ssa ei näitä kenttiä tarvita, koska pakettien keskinäisellä järjestyksellä ei ole väliä, eikä optioita ja eri lippuja yhteyden muodostamista yms. varten tarvita. b) UDP:ssä ja TCP:ssä multipleksointi tehdään lisäämällä IP-osoitteiden oheen porttinumero. TCP-yhteyden identifioi kaksi (ip-osoite, porttinumero) -paria. UDP:ssa portteja voi ajatella jonona, johon protokollatoteutus laittaa saapuvat paketit. UDP:n kaltaisen multipleksoinnin lisääminen IP:hen ei olisi hyvä, koska kaikki IP:n päällä ajettavat protokollat eivät tarvitse multipleksointia, esim. ICMP. IP on hyvä mahdollisimman yksinkertaisena. c) Taas tämä kysymys... Oli jo kierroksella 3. On hyvin kätevää, että tietyt palvelut löytyvät tiettyjen porttien takaa. Tällöin julkisia palveluita voi käyttää kysymättä erikseen mistä ne löytyvät. Tästä on huonojakin puolia, esim. jos jossakin palvelussa on tunnettu bugi, voi helposti kokeilla suurta määrää koneita. Haittaa voi tuottaa myös se, että käytäntö aiheuttaa palomuuripolitiikan, jossa suljetaan tiettyjä portteja ja annetaan tiettyjen olla auki. Noiden avoimien porttien taakse voidaan kuitenkin laittaa ihan mitä tahansa, eli periaatteessa hölmöjä käyttäjiä varten tehty kielto on loppujen lopuksi hölmöjä käyttäjiä vastaan turha. 4. IP ===== a) IP:n fragmentointi toimii siten, että kun reititin huomaa, että IP-paketti, jonka sen pitäisi lähettää eteenpäin on isompi, kuin ko. verkon maksimi paketin koko, se pilkoo eli fragmentoi paketin. IP-otsakkeeseen merkitään sopiviin kohtiin tieto fragmentoinnista. Fragmentit kootaan yhteen vasta vastaanottavassa päässä. Tämän menettelyn etuna on se, ettei matkan varrella pakettia tarvitse paloitella ja koota monta kertaa. Lisäksi reitittimien ohjelmisto voi olla hieman yksinkertaisempi. Haittana on se, että jos yksi fragmentti hukkuu matkalla, on koko paketti menetetty. Jos fragmentteja on monta, on todennäköisyys yhden menettämiselle suurempi. b) Hyötyä on se, että reitittimien tarvitsee laskea paljon pienemmästä datamäärästä tarkistussumma, eikä koko paketista. Koko paketista tarkistussumman laskeminen olisi Ethernetin yli lähetettäessä periaatteessa turhaa, koska käytössä on CRC-tarkistussumma. Haittaa on se, että jos käytössä ei ole verkkoa, joka takaa että perille tulleet paketit ovat ehjiä, ei ilman ylemmän protokollatason tarkistussummaa voida olla varmoja IP-paketin payloadin eheydestä.