Tällä luennolla Yhteenveto Lyhyet kertaukset aiemmista luennoista Kokonaiskuva Miten kaikki palat toimivat yhteen? CSE-C2400 Tietokoneverkot 31.03.2015 2 Internet-protokollapino Sovellukset Ohjelmistot (software) Sähköposti Facebook Web-selain Käyttöjärjestelmä (operating system, OS) Laiteajurit (drivers) Sovelluskerros Fyysinen kerros Sovelluksissa tyypillisesti asiakas ja palvelin Asiakas ja palvelin lähettävät viestejä toisilleen Protokolla määrittää miten toimitaan (millä viestillä vastataan tiettyyn viestiin tietyssä tilanteessa) Sovellukset ovat ylin kerros Internetin protokollapinossa Alemmat kerrokset hoitavat viestien välityksen verkon yli Sähköposti Asynkroninen Asiakasohjelma ja palvelin juttelevat IMAP/POP3/-protokollan avulla Sähköpostipalvelimet keskenään: SMTP-protokolla MIME-laajennus liitteille ja muulle ei-perustekstille Tietoturvaprotokollat varmistavat postin eheyden, luottamuksellisuuden ja autenttisuuden Symmetriset ja asymmetristen avainten kryptoprotokollat Sertifikaatit 4 Sovellukset Sovellusarkkitehtuurit WWW Selain ja käyttävät (/S)-protokollaa Standardimenetelmät sivujen koodaamiseen ja esittämiseen HTML, XML, HTML5, JSON Eri selaimet osaavat tulkita dataa ja tietävät miten sivu esitetään URL: kertoo dokumentin sijainnin (palvelimen nimi sekä polku ja dokumentin nimi palvelimella) Alunperin vain HTML koodatut sivut, nykyään monet eri sovellukset toimivat :n päällä (esim. videostriimaus) Nimipalvelu Internetissä koneet käyttävät numeerisia -osoitteita mutta ihmiset muistavat nimiä muuntaa nimen (URL) -osoitteeksi Hajautettu ja hierarkinen tietokanta Palvelintasot: juuri, top-level domain, authoritative ja paikallinen Rekursiivinen vs. iteratiivinen kysely Välimuistin käyttö nopeuttaa olennaisesti toimintaa Sovellusarkkitehtuureita on erilaisia Asiakas-palvelin Vertaisverkot Pilvipalvelut voitaisiin vielä erotella näistä Vertaisverkot Self scaling -ominaisuus Mitä enemmän käyttäjiä, sitä enemmän kapasiteettia BitTorrentissa insentiivit jakaa rakennettu protokollaan Tit for tat Hajautettu tiivistetaulu (DHT) on avain-arvo tietokanta Jokainen noodi tallentaa osan avain-arvo pareista Muodostavat kuoriverkon 5 6 1
Verkko-ohjelmointi Sokettiohjelmointi Sokettirajapinta sovellusten ja kuljetuskerroksen välissä - ja -soketit - ja -soketeilla ohjelmoidaan hieman eri tavalla -soketissa pitää luoda palvelimella tervetulosoketti Funktio luo ja palauttaa uuden soketin jokaisen yhteyden käsittelyyn Advanced topics Blokkaava vs. blokkaamaton soketti Blokkaamattomalla voidaan hoitaa usea soketti per säie select()-funktion avulla voidaan käsitellä monia soketteja Blokkaava usean soketin tarkistava funktio Ei tarvita säiettä per soketti Vältetään pollaamisen aiheuttama overhead WebSocket on korkeamman tason abstraktio Toteutus käyttää -sokettia mahdollistaa sovellusten välisen viestinnän luotettava bittisiirtopalvelu epäluotettava viestinvälitys ylivoimaisesti käytetyin protokolla Virheenkorjaus (ARQ) ja vuonhallinta perusmekanismeja ARQ-virheenkorjaus Kuittaukset (sekä pos ja neg mahdollisia) ja uudelleenlähetykset Lähetysikkuna ja putkitus Kumulatiiviset ja selektiiviset kuittaukset käyttää tätä Vuonhallinta Vastaanottava sovellus ei lue riittävän nopeasti dataa soketista à soketin muisti täyttyy Vastaanottava voi estää lähettäjää lähettämästä enempää dataa Vastaanottajan ikkunankoko 7 8 Ruuhkanhallinta Pyritään estämään verkon ylikuormitus Reitittimillä rajallinen paketinvälityskapasiteetti à pudottavat paketteja jos ylittyy Tässä tilanteessa pakko vähentää kuormaa à vaatii että päätelaitteet vähentävät lähetysnopeutta () :n eka versio ei sisältänyt ruuhkanhallintaa (ruuhka tuntematon käsite) Monta versiota à eri ruuhkanhallintamekanismit Tasapuolisuus :n ruuhkanhallinta johtaa tietyissä tapauksissa tasapuolisuuteen muttei aina Eri kiertoviiveet tai monta yhteyttä à sovellukset saavat eri määrän kaistaa SSL/TLS Kattava tietoturvaprotokolla sovelluksen ja välissä -protokolla Verkkokerroksen -protokolla toteuttaa epäluotettavan ja tilattoman pakettienvälityspalvelun Internetissä Luotettavuus toteutetaan kuljetuskerroksella (ylempänä eli ) Paketit välitetään perille niissä olevan osoitteen perusteella kukin itsenäisesti Jokainen puhuu -protokollaa Vrt. vain päätelaitteet ajavat kuljetuskerroksen protokollaa ()! v4 osoitteet ovat lopussa, mutta protokolla yhä käytössä ja NAT auttavat v6 käytössä jo 9 10 Reititys ja pakettien välitys Edelleenlähetys/välitys (forwarding): Etsitään reititystaulusta pisin vastaanottajan -osoitetta vastaava verkko-osoite (prefix) Pitää tehdä joka paketille à erittäin aikakriittistä! Reititys (routing): sopivimpien reittien etsiminen -osoitteiden välille Muodostetaan reititystaulut, ei niin aikakriittistä Internet on jaettu autonomisiin järjestelmiin AS:n välillä reititys on sopimuspohjaista Reitityksen skaalautumiseksi tarvitaan hierarkiatasoja Tehokkuus tärkeintä yhden toimijan verkossa AS:n välillä käytetään BGP4:ää AS:n sisällä voi käyttää mitä haluaa Staattinen, linkkitilareititys (esim. OSPF), etäisyysvektorireititys (esim. R) Monilähetyksessä verkko monistaa viestin kaikille tiettyyn ryhmään kuuluville tai siihen liittyneille mahdollisimman lähellä vastaanottajaa Tehostaa verkon käyttöä Perusteet Periaatteet datalinkkikerroksen palveluissa: virheiden havainnointi, korjaus usein epäluotettava palvelu (ernet), joskus luotettava (Wi-Fi) Monipääsyprotokollia tarvitaan jaetuissa kanavissa Kuka saa milloinkin puhua Kanavan osittaminen (matkapuh.verkot), satunnaispääsy (ernet ja Wi-Fi), vuorottelu MAC osoitteet Uniikkeja, ei vaihdu kuten osoitteet ARP: à MAC osoitteenhaku ernet Yleisin langallinen lähiverkkoteknologia IEEE 802.3 standardi, erilaisia versioita (siirtonopeus, fyysinen siirtotie) 11 12 2
Layer-2 verkot Bridging on linkkikerroksen lähiverkkosegmenttien verkottamista Pääasiassa käytetään kytkimiä ja keskittimiä Kytkin on itseoppiva (ei tarvita reititysprotokollaa) Kytketyissä verkoissa voi esiintyä välityssilmukoita Kehykset kiertävät loputtomasti verkossa Tarvitaan Spanning Tree Protocol (STP) tms. Muodostaa silmukattoman topologian Uudempia korvaavia protokollia jo olemassa Virtual LAN (VLAN) Verkon osittaminen yhdellä laitteella Helpottaa verkonhallintaa ja tehostaa laitteiden käyttöä MPLS mahdollistaa joustavan pakettien reitityksen Liikenteenohjaus (traffic engineering) ja varareitit Langattomat verkot Langattomat verkot Infrastruktuuri: tukiasemia joihin langattomat laitteet yhteydessä Langaton tiedonsiirto: kaistanleveys, signaalikohinasuhde, modulaatio IEEE 802.11 standardi eli Wi-Fi Langaton lähiverkkoteknologia (PHY/MAC kerrokset) Monta versiota: suurimmat erot fyysisen kerroksen tekniikoissa (lähetysnopeus) Kaksi eri taajuusaluetta, jaettu kanaviin Satunnaispääsy kanavalle käyttäen CSMA/CA ja joskus RTS/CTS Soluverkot Koostuu soluista joissa tukiasema GSM (2G) à UMTS (3G) à LTE (4G) 3G:ssä käytetään FDMA:n ja TDMA:n lisäksi CDMA monipääsyä Liikkuvuudenhallinta verkoissa Osoite muuttuu verkosta toiseen liikuttaessa Agentit pitävät kirjaa olinpaikasta Epäsuora vs. suora reititys 13 14 Verkon suunnittelu ja hallinta SNMP-arkkitehtuuri Management Information Base SNMP-protokolla Verkonhallinta käytännössä Internet-protokollapino Ohjelmistot (software) Sähköposti Facebook Web-selain Käyttöjärjestelmä (operating system, OS) Laiteajurit (drivers) Toteuttaa hajautetun palvelun Sovelluskerros Fyysinen kerros Erottaa sovellukset toisistaan yhdessä koneessa ja huolehtii yhteyksistä palvelun osien välillä Erottaa Internetverkon koneet toisistaan ja huolehtii yhteyksistä niiden välillä Sama kuin yllä, mutta lähiverkossa 15 Tällä luennolla Lyhyet kertaukset aiemmista luennoista Kokonaiskuva Miten kaikki palat toimivat yhteen? Synteesi: A day in the life of a web request Koko protokollapino käsitelty application, transport, network, link Miten kaikki toimii yhteen? Tavoite: ymmärrys siitä mitkä ja miten eri kerrosten protokollat osallistuvat yksinkertaisen näköiseen skenaarioon: webbisivun lataaminen Skenaario: opiskelija yhdistää läppärin kampuksen verkkoon ja avaa sivun www.google.com 17 18 3
Skenaario Yhdistäminen Internetiin selain Aallon verkko 68.80.2.0/24 WWW-sivu Funet-verkko 68.80.0.0/13 Googlen verkko 64.233.160.0/19 palvelin (ajaa :aa) läppäri tarvitsee oman osoitteen, ekan reitittimen osoitteen ja serverin osoitteen: käytä pyyntö kapseloitu pakettiin, joka kapseloitu pakettiin, joka kapseloitu 802.3 ernet-kehykseen ernet-kehys yleislähetetään (osoite: FFFFFFFFFFFF), joka ajaa serveriä vastaanottaa ernet dekapseloidaan à dekaps. à à Yhdistäminen Internetiin ARP (ennen ja ) (ajaa :aa) -palvelin luo ACK -viestin joka sisältää asiakkaan -osoitteen ekan reitittimen -osoitteen -palvelimen nimen ja osoitteen palvelin kapseloi viestin ja lähettää -kehyksessä (kytkin itseoppii MAC osoitteet) lähiverkon läpi, asiakas dekapseloi Asiakkaalla on nyt -osoite, se tietää -palvelimen nimen ja osoitteen, sekä lähimmän reitittimen -osoitteen -asiakas vastaanottaa ACK -viestin ARP kysely ARP ARP vastaus ARP (ajaa :aa) ennen -kyselyn lähettämistä tarvitaan www.google.com nimeä vastaava osoite: luodaan -kysely, kapseloidaan datagrammiin, kapseloidaan pakettiin, kapseloidaan.- kehykseen tarvitaan lähimmän reitittimen MACosoite jotta voidaan lähettää kehys: ARP ARP-kysely yleislähetetään, vastaanottaa ja vastaa ARP reply - viestillä jossa kyseisen verkkokortin MAC-osoite asiakas tietää lähimmän reitittimen MAC-osoitteen joten voi lähettää -kyselyn sisältävän kehyksen -palvelin -yhteys (ajaa :aa) -kyselyn sisältämä paketti välitetään lähiverkon kytkimen kautta -kehyksenä lähimmälle reitittimelle Funet-verkko 68.80.0.0/13 -paketti välitetään kampuksen verkosta Funet-verkkoon, ja edelleen palvelimelle (reititystaulut luotu R, OSPF, IS- IS ja/tai BGP reititysprotokollien avulla) dekapselointi à à à -palvelin vastaa asiakkaalle kertoen www.google.com osoitteen (ajaa :aa) lähettääkseen -pyynnön, asiakas ensin luo -soketin ja yhdistää sen WWW-palvelimeen SYN-paketti (1. askel yhteydenmuodostuksessa) reititetään (interdomain) WWW-palvelimelle vastaa - paketilla (2. askel yhteydenmuodostuksessa) yhteys muodostettu! 4
kysely/vastaus Selain näyttää WWW-sivun lopulta (!!!) Kysymyksiä? (ajaa :aa) -pyyntö lähetetään -sokettiin -pyynnön sisältämä paketti välitetään à www.google.com WWW_palvelin vastaa -vastauksella (sisältää WWW-sivun) -vastauksen sisältämä -paketti asiakkaalle 26 Jatkokursseja ja DI-ohjelmat DI-ohjelman kurssit Kandiohjelmassa CSE-C3400 Information Security Computer, Communication, and Information Sciences (CCIS) Master s degree program Computer Science: Software Systems and Technologies Computer Science: Secure Systems Mobile Computing Services and Security Pakollisia T-110.5121 Mobile Cloud Computing CSE-C3400 Information Security Valinnaisia T-110.5241 Network Security CSE-E5480 Mobile Systems Security T-110.5102 Laboratory Works in Networking and Security T-110.5130 Mobile Systems Programming T-106.5600 Concurrent Programming T-110.5111 Computer Networks II Advanced features T-110.5150 Applications and Services in Internet T-110.7111 Internet Technologies for Mobile Computing CSE-E4430 Methods and Tools for Network Systems CSE-C5430 Scalable Cloud Computing CSE-C5440 Energy-efficient Mobile Computing CSE-E5490 Network Services Business Models 27 28 Esimerkki tenttikysymyksestä Internet (30 pistettä)? Ehkei kuitenkaan.. Nopassa vanhoja tenttejä Tulossivulla myös arviointikriteereistä 29 5