S-38.105 Tietoliikennetekniikan perusteet 19.2.2004 6. luento Kertausta (ISO:n OSI-malli). Miten Internet toimii, eli OSI:n 3. ja 4. kerros, IP - ja TCP-protokollat. ---------------------------------------------------------------------- Kertausta * OSI:n 2. kerros eli siirtoyhteyskerros - yhteyden muodostus kahden solmun välillä - fyysinen osoitteistus - vuonohjaus - virheenkorjaus - vuoronvarausmenettelyt (access control) * 3. kerros eli verkkokerros - pakettien toimittaminen yhteyden päästä päähän - reititys (IP-osoitteen perusteella) - yhteistoiminta 2. kerroksen kanssa Kertausta ja vähän enemmänkin * 4. kerros eli kuljetuskerros - koko viestin toimittaminen yhteyden päästä päähän - vastaanottavan sovelluksen osoite (ns. portit) - luotettava toimitus - virhetilanteet - pakettien joutuminen epäjärjestykseen - pakettien hukkuminen - pakettien kopioituminen - vuonohjaus (ettei vastaanottaja tukehdu lähetettyihin viesteihin) - kanavointi - lähetetäänkö viesti yhtä aikaa usealla yhteydellä (downward multiplexing) - lähetetäänkö monta viestiä yhdellä yhteydellä (upward multiplexing) Miten Internet toimii? * ennestään tuttua - OSI:n alimpien kerrosten toiminta - reitityksen periaate * tänään opitaan - mikä on Internet - mikälaisia osoitteita ja nimiä Internetissä käytetään, ja miten nimipalvelu toimii - miten ylempien kerrosten palvelut kutsuvat alempia, ja miten eri kerrokset toimivat yhdessä - mitkä ovat TCP - ja IP-protokollien tehtävät - esimerkkitapaus: nettisivun hakeminen verkon toiselta laidalta Historiaa * ARPANET-hanke 1960-luvulla - Yhdysvaltain puolustusministeriön hanke - tarve: ydinhyökkäyksen kestävä tiedonsiirtoverkko - hajautettu, tasavertaisiin solmuihin perustuva verkko - verkkoon lähetetyt paketit etsiytyvät perille osoitteiden avulla * Internetin kehityksen virstanpylväitä - 1961 pakettikytkentäisen tiedonsiirron teoria - 1969 DARPA ARPANET yhdistää 4 yliopistoa - 1974 TCP/IP-protokollan kehitys alkaa - 1983 ARPANET vaihtoi TCP/IP-protokollaan yhdellä kertaa - 1992 WWW aloittaa yleistymisen - 1995 Internetin runko kaupalliseksi Mikä Internet on? * kansainvälinen, yhdysvaltalaisesta tutkimusverkosta kehittynyt tietoverkko - muodostuu joukosta alueellisia verkkoja ja niitä yhdistäviä runkoverkkoja - tasavertaisiin solmuihin perustuva verkko -> ei järjestäytynyttä hierarkiaa tai keskushallintoa * jotta verkko toimisi, tarvitaan - globaali osoitteistus - yhteinen tiedonsiirtoprotokolla (TCP/IP) * kehitystä ja osoiteavaruuden käyttöä koordinoitava kansainvälisesti Globaalit osoitteet * ns. IP-osoite - muodostuu neljästä 8 bitin tavusta, jotka erotetaan pistein - osoitteessa rakenne: verkko-osa ja laite-osa - osoiteavaruutta pyritään säästämään -> eri kokoisissa verkoissa verkko- ja laiteosan raja eri kohdassa - alun perin jako A-, B- ja C-luokkaan - nykyään ns. luokaton, joustavampi jako -> osoiteavaruus entistä tehokkaammassa käytössä Paketit ohjataan perille IP-osoitteen perusteella. Globaalit osoitteet (jatkuu...) * "maantieteellinen" osoitejako - pääkoordinaattori IANA (Internet Assigned Numbers Authority) - osoitteita jakavat globaalisti neljä alueellista järjestöä - Euroopassa RIPE (Réseaux IP Européens) ... jotka jakavat osoiteavaruutta edelleen paikallisille organisaatioille (kuten FUNET, Sonera, Lohjan puhelin OYJ jne.) * osoitteet loppumassa kesken - 32-bittisiä osoitteita yht. noin 4,3 miljardia (IPv4) loppuvat eräiden arvioiden mukaan 2005-2015 - 128-bittisiä osoitteita vähintään 1500 / m2, optimistisimpien arvioiden mukaan jopa 4 miljoonaa per neliömetri (IPv6) Piirinimi (engl. domain name) * esim. cembalo.netlab.hut.fi tai www.hotmail.com - nimen rakenne perustuu loogiseen hierarkkiaan riippumaton koneen fyysisestä sijainnista verkossa - ihmisten helpompi muistaa - palvelun muuttaessa voidaan siirtää osoittamaan aina uuteen IP-osoitteeseen -> luo pysyvyyttä verkkoon * nimiavaruuden rakenne puumainen - alunperin suunniteltu vain Yhdysvaltain sisällä käytettäväksi -> USA-keskeiset määrittelyt - ylin taso ns. päätaso (TLD, Top Level Domain) sisältää maantieteelliset (fi, se) ja geneeriset (gov, mil, com, org) nimet - Suomessa fi-piirinimiä jakaa Viestintävirasto Nimipalvelu * ennen tiedonsiirron aloittamista täytyy selvittää piirinimeä vastaava IP-osoite - 80-luvun puoliväliin kaikki Internetin koneet yhtenä tiedostona (keskitetty ylläpito, lähetettiin sähköpostitse jokaiselle ylläpitäjälle) - verkon kasvaessa nimitietokanta täytyi hajauttaa -> v. 1984 nimipalvelujärjestelmä (DNS, Domain Name Service) * nimen selvittäminen - ohjelma kysyy käyttöjärjestelmän kirjastolta - kirjasto kysyy omalta nimipalvelimelta - oma nimipalvelin lähtee selvittämään niin ylhäältä kuin tarpeen * saa joko kysytyn vastauksen tai tiedon siitä, kuka tietää * tallentaa kyselyjen vastaukset, myös negatiiviset Yhteinen protokolla * IP, Internetworking Protocol - sisältää "tukiprotokollia" (mm. ICMP, ARP) - yhteydetön ja epäluotettava (paketit voivat hävitä, kahdentua tai joutua epäjärjestykseen) * jos siirrolta halutaan luotettavuutta, paritettava luotettavan protokollan (kuten TCP) kanssa - joskus riittää epäluotettavampikin palvelu, jolloin voidaan käyttää TCP:tä kevyempää UDP-protokollaa * IP:n vähäiset ominaisuudet eivät ole automaattisesti heikkous vaan myös tehokkuutta; ei turhaa tarkistelua silloin, kun se ei ole tarpeen IP-kehysrakenne * IP-protokolla yhteydetön -> IP-pakettia kutsutaan tietosähkeeksi (engl. datagram) - koko max. 64 KiB eli 65535*8 bittiä - monet 2. kerroksen verkot eivät kuitenkaan pysty käsittelemään näin isoja paketteja -> tietosähke pilkottava tai lähetettävä pienempiä paketteja * IP-paketin otsikko - otsikko sisältää paketin perille toimittamisessa ja reitityksessä tarvittavat tiedot - tärkeitä kenttiä: IP-osoitteet, paketin elinaika, lohkomiseen liittyvät kentät, otsikon ja koko paketin pituus, tarkistussumma Muita IP-kerroksen protokollia * ICMP (Internet Control Message Protocol) - mahdollisuus "paluupostiin", joka kertoo IP-paketin lähettäjälle ongelmatilanteista - esim. kun paketin elinaika loppuu tai pakettia ei voida toimittaa perille ruuhkan tai laitevian vuoksi - voidaan käyttää hyväksi myös saavutettavuutta ja suorituskykyä testattaessa - ping: onko kohdekone saavutettavissa? millä viiveellä? - traceroute: mitä reittiä paketit kulkevat kohdekoneeseen? * ARP (Address Resolution Protocol) - selvittää, mikä 2. kerroksen (fyysinen) osoite vastaa kysyttyä IP-osoitetta TCP-protokolla * tehtävät - yhteydellinen protokolla - avaa ja sulkee yhteyden hallitusti - valvoo IP-kerrosta silloin, kun tarvitaan luotettavaa, virheetöntä siirtoa (esim. tiedostot, sähköposti) - valvoo, että data tulee perille oikeassa järjestyksessä eikä huku matkan varrelle - käyttää yhteyden valvontaan kuittauksia ja uudelleenlähetyksiä - vuonohjaus ja ruuhkanhallinta * TCP:tä käyttäviä palveluita ja protokollia - tiedostojen siirto (FTP, File Transfer Protocol), webbi (HTTP, Hypertext Transfer Protocol), sähköpostin välitys (SMTP, Simple Mail Transfer Protocol), sähköpostien lukeminen (POP, IMAP) UDP-protokolla * tehtävät - kevytrakenteinen protokolla, jota käytetään silloin, kun tärkeintä on nopeus, ei jokaisen paketin varma perillepääsy (esim. reaaliaikainen äänen - ja kuvansiirto) - ns. "kysymys-vastaus"-protokolla - huolehtii viestien ohjaamisesta oikeaan porttiin (oikealle ylemmän tason prosessille) * soveltuu - reaaliaikapalveluihin - yksinkertaisiin kyselyihin kuten nimipalvelu (DNS), aikapalvelu (NTP, Network Time Protocol), verkonhallinta (SNMP, Simple Network Management Protocol), komentojen etäsuoritus (RPC, Remote Procedure Call) Esimerkki: HTTP-siirto IP-pohjaisessa verkossa.