Tietoliikenne I, kevät 2004

Harjoitus 3 (10.-13.2.2004)

  1. Vastaa lyhyesti seuraaviin kysymyksiin. Vastaukset yleensä löytyvät suoraan luennosta tai kurssikirjasta.
    1. Mitä tarkoitetaan vertaisverkoilla (peer-to-peer, P2P)?
    2. Missä ja miksi MIMEa tarvitaan?
    3. Miksi monet sovellukset käyttävät UDP-protokollaa, vaikka se on epäluotettava? Mitä haittaa UDP:n yhä lisääntyvästä käytöstä on?
    4. Mikä on pistoke (socket)?
    5. Mitä tarkoitetaan kahden armeijan ongelmalla (two-army problem)?

  2. Opiskelija T. Terävä Helsingin yliopistosta lähettää sähköpostia ystävälleen M. Smartille Kaliforniaan Berkeleyn yliopistoon. Hän käynnistää PC:llään sähköpostiohjelman (käyttäjänedustajan eli UA:n), kirjoittaa lyhyen sanoman "Hello! How are you?" osoitteena M.Smart@cs.berkeley.edu ja lähettää sen.
    1. Mitä protokollia missäkin vaiheessa tarvitaan, kun sanoma siirretään T. Terävän sähköpostiohjelmasta Helsingin yliopiston postipalvelimelle ja sieltä Berkeleyn yliopiston postipalvelimelle ja lopuksi M. Smartin luettavaksi hänen sähköpostiohjelmalleen.
    2. T. Terävä haluaisi liittää sähköpostisanomaan oman kuvansa. Miksi tämä on ongelmallista SMTP-sähköpostissa? Minkä muotoisena kuvallinen sanoma siirtyy postipalvelimien välillä?

  3. UDP ja TCP käyttävät ns. yhden komplementtia tarkistussummissaan.
    1. Laske 8 bitin mittainen UDP-tarkistussumma seuraavalle kolmen tavun mittaiselle sanomalle: 0101 0101 0111 0000 1100 1100. Tarkkaan ottaen yhteenlasku suoritetaan ns. yhden komplementin yhteenlaskuna, jossa bitit lasketaan normaalin kaksijärjestelmän mukaisesti yhteen oikealta vasemmalle ja muistibitit käsitellään nekin normaalisti, lukuunottamatta viimeistä muistibittiä (tai bittejä, jos yhteenlaskettavia ykkösiä on paljon), joka (tai jotka) lasketaan lopuksi yhteen jo saadun summan kanssa.
                              1011
      			1101
      			====
                              1000
      			   1  (tämä on se viimeinen muistibitti!)
                              =====
      			1001  (tässä yhteenlaskun summa)
      
      			0110  (tässä sen yhden komplementti eli mukaan liitettävä
      			       tarkistussumma)
      
      
    2. Kuinka vastaanottaja havaitsee siirrossa tapahtuneen virheen?
    3. Onko mahdollista, että vastaanottaja ei havaitse yhden bitin virhettä (eli yhden bitin muuttumista nollasta ykköseksi tai päinvastoin)? Entä kahden tai useamman bitin virhettä?

  4. Stop and wait -protokolla.
    1. Miksi 1-bittinen järjestysnumero (käytössä siis numerot 0 ja 1) riittää 'stop and wait' -protokollassa? Tutki protokollan toimintaa ja päättele sen perusteella, ettei useampia numeroita tarvita erottamaan lähetykset toisistaan, vaikka lähetetty sanoma voi kadota kokonaan tai vääristyä virheelliseksi. Entä voivatko pitkäksi aikaa viivästyneet lähetykset aiheuttaa ongelmia?
    2. Onko myös kuittaukset ACK ja NAK numeroitava 'stop and wait' -protokollassa? Tutki taas protokollan toimintaa eri tilanteissa ja selvitä, löytyykö tilannetta, jossa numeroimaton ACK tai NAK aiheuttaa ongelmia.

  5. Osoita, että 'go back N':ää käytettäessä ikkunan koko saa olla korkeintaan N-1, missä N on käytettyjen sanomanumeroiden määrä.

  6. Pohdi sähköpostin käyttöön liittyviä ongelmia.
    1. Onko sähköposti riittävän turvallinen ja luotettava?
    2. Onko sähköpostin yksityissuoja riittävä?
    3. Miten roskapostista voitaisiin päästä eroon?