Hajautetut ja samanaikaiset järjestelmät 18.4.2008 Harjoitus 6 Ei X-tehtävää tällä viikolla. Loput harjoitukset ja X-tehtävät 26.4. ja 6.5 (10.30 - 12). Kurssin loppukoe 6.5. 08.00-10.00. Seuraavissa tehtävissä arvioimme tilannetta jossa yksi palvelin saa pyyntöjä Internetin kautta usealta asiakkaalta. Kaikissa tapauksissa, laske suorituskyky 1) käyttäen SSL kättelyä, 2) ilman SSL kättelyä. Läpäisyn laskennan lisäksi kerro mikä on järjestelmän pullonkaula. Piirrä kustakin tilanteesta aikajana (asiakkaan ja palvelimen, sekä viestit) helpottamaan ajan laskemista. SSL kättelyyn tarvitaan 6 viestiä, yhteensä 1000 tavua. Avainten generointi ja tarkastus vievät kättelyssä 500 miljoonaa konekäskyä kummaltakin osapuolelta. SSL kättelyn jälkeen kommunikaatio jatkuu symmetrisellä salauksella (joka myös vie aikaa). Jollei SSL kättelyä suoriteta (tapaus 2, esimerkiksi jatkettaessa aiempaa istuntoa), osanottajat aloittavat suoraan salatulla pyynnöllä ja vastauksella. Seuraava taulukko kertoo laskennassa tarvitsemasi vakiot (t = tavu, b = bitti, oper = operaatio). Tähdellä merkityille arvoille on tehtävissä useita arvoja. Prosessorin nopeus (Moper/s) 3000 Keskimääräinen vastauksen pituus (t) 20000 Palvelimen prosessorimäärä. 1* Symm. salauksen purun työläys (oper/t) 100 Asiakkaan verkkoyhteyden nopeus (kb/s) 100* Verkkoviive (ms) 20 Palvelimen verkkoyhteyden nopeus (Mb/s) 625 SSL kättelyn pituus (tavua) 1000 Keskimääräinen pyynnön pituus (tavua) 100 SSL kättelyn viestien lukumäärä 6 Symmetrisen salauksen työläys (oper/tavu) 200 SSL kättelyn työ, operaatiota/osapuoli 5*10^8 31) Kuinka pitkään (todellista seinäkelloaikaa) kestää asiakkaan tehdä ja saada valmiksi pyyntö (aloittamisesta vastauksen purun loppumiseen) jos asiakkaan verkon nopeus on a) 100 kbit/s (EDGE), b) 2 Mbit/s (ADSL), 1) SSL kättelyä käyttäen, 2) ilman SSL kättelyä. Huomioi myös palvelimen salaukseen käyttämä aika. 32) Montako uutta pyyntöä sekunnissa palvelin voi aloittaa käsittelemään ruuhkaantumatta jos sillä on a) yksi prosessori, b) 1000 prosessoria, 1) SSL kättelyä käyttäen, 2) ilman SSL kättelyä. Avainasemassa on siis paljonko prosessoriaikaa ja verkkokaistaa yksi pyyntö tarvitsee (vaikka pyynnön käsittely kestäisi pidempään). 33) Tutustu Javan vakiokirjaston luokkaan URL (http://java.sun.com/j2se/1.5.0/docs/api/java/net/URL.html, http://java.sun.com/docs/books/tutorial/networking/urls/readingURL.html) ja muunna tehtävä 29 (harj. 5) laskemaan tiivisteen komentorivillä URL-muodossa annetusta verkossa olevasta dokumentista. 34) Muunna www-sivun MD5Asiakas1 pyytämään usean tiedoston tiiviste samalla TCP -yhteydellä. Asiakas lähettää ennen tiedostoa sen pituuden tavuina (kokonaisluku 4 tavulla esitettynä). Ota apuja www-sivulta. 35) Muunna MD5Palvelin1 vastaavasti palvelemaan samalla yhteydellä usea tiedosto. Kunkin tiedoston alussa tulee tiedoston pituus, joten sen vastaanotettuaan palvelin vastaanottaa täsmälleen oikean määrän tavuja, laskee niistä tiivisteen, lähettää vastauksen ja jää odottamaan uutta viestiä samasta yhteydestä. 36) Muunna edellisen tehtävän MD5Palvelin1 säikeistetyksi siten, että kutakin uutta asiakasta kohti käynnistetään uusi säie. Nyt palvelin voi palvella useaa asiakasta yhtä aikaa.