Sovellukset (osa 2) CSE-C2400 Tietokoneverkot 19.1.2016 Sanna Suoranta

Samankaltaiset tiedostot
Sovellukset (osa 2) CSE-C2400 Tietokoneverkot Sanna Suoranta. Tietokoneverkot 2015

1/27/15. Sovellukset (osa 2) Sisältö: sovellusarkkitehtuurit. Lyhenteitä ja terminologiaa. Internet-protokollapino

ELEC-C7241 Tietokoneverkot Sovelluskerros

Sovellukset (osa 2) ja verkkoohjelmointi

ELEC-C7241 Tietokoneverkot Sovelluskerros

Sovellukset 1: sähköposti, web, nimipalvelu

Yhteenveto. CSE-C2400 Tietokoneverkot

T Tietokoneverkot kertaus

Tietoliikenne II (2 ov)

TCP/IP-protokollat ja DNS

S Tietoliikennetekniikan perusteet. Pakettikytkentäiset verkot. Helsinki University of Technology Networking Laboratory

OSI ja Protokollapino

- Valitaan kohta Asetukset / NAT / Ohjelmallinen palvelin - Seuraavassa esimerkki asetuksista: valitaan käytössä oleva ohjelmistorajapinta

Tietoliikenne II (2 ov)

DNS- ja DHCPpalvelut. Linuxissa. Onni Kytönummi & Mikko Raussi

Push- ja pull-protokollat

Antti Vähälummukka 2010

ELEC-C7241 Tietokoneverkot Kuljetuskerros

Sähköpostisanoman muoto. Push- ja pull-protokollat. työntöprotokolla (PUSH) Yleisiä sanoman otsakekenttiä kentät erotettu rivinvaihdolla

A Linux -järjestelmät TI09TIVE. Joni Ruotsalainen

2.2. Sähköposti. SMTP (Simple Mail Transfer Protocol) Postipalvelimet käyttävät SMTPprotokollaa. TCP-yhteys on pysyvä

C:. S: 250 Message accepted for delivery C: QUIT S: 221 princeton.edu closing connection

Yhteenveto. CSE-C2400 Tietokoneverkot Matti Siekkinen

Käyttäjäliitäntä (user agent) sanomien kirjoittaminen, lukeminen ja lähettäminen

Tietoliikenne II. Syksy 2005 Markku Kojo. Tietoliikenne II (2 ov,, 4 op) Page1. Markku Kojo Helsingin yliopisto Tietojenkäsittelytieteen laitos

Lähettävä postipalvelin Vastaanottava postipalvelin

Nimeäminen. Distributed systems - principles & paradigms kirjan luku 5. Kari Systä

Nimeäminen. Kari Systä. Distributed systems - principles & paradigms kirjan luku /Kari Systä OHJ-5010/Hajautettujen perusteet 1

Kuljetuskerros. Tietokoneverkot. Matti Siekkinen Pasi Sarolahti

Tietoliikenne I (muuntokoulutettaville) 2 ov Syksy 2002 Luennot Liisa Marttinen 11/6/2002 1

Kuljetus- ja verkkokerrokset. Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2011

Luento 4: Sovelluskerros nimipalvelu (DNS), tiedostonsiirto sähköposti, vertaisverkot (P2P)

Kytkimet, reitittimet, palomuurit

Siltojen haitat. Yleisesti edut selvästi suuremmat kuin haitat 2/19/ Kytkin (switch) Erittäin suorituskykyisiä, moniporttisia siltoja

Windows Live SkyDrive - esittely

Tietoliikenne I 2 ov kevät 2002

Sonera Hosted Mail -palvelun käyttöohje

3. Kuljetuskerros 3.1. Kuljetuspalvelu

IHTE 1900 Seittiviestintä (syksy 2007) VERKKOTEKNIIKKAA. Mikä on protokolla, IP osoite, nimipalvelu jne ja mihin näitä tarvitaan?

Tietoliikenteen perusteet

Laitteessa tulee olla ohjelmisto tai uudempi, tarvittaessa päivitä laite

TCP/IP-protokollapino. Verkkokerros ja Internetprotokolla. Sisältö. Viime luennolla. Matti Siekkinen

ICMP-sanomia. 3. IP-kerroksen muita protokollia ja mekanismeja ICMP (Internet Control Message Protocol)

3. IP-kerroksen muita protokollia ja

Huomaathan, että ohjeessa olevat näytöistä otetut kuvat voivat poiketa sinun koulutuksesi vastaavien sivujen kuvista.

Network Services Location Manager. Verkon ylläpitäjän opas

Directory Information Tree

Pertti Pennanen OSI 1 (4) EDUPOLI ICTPro

Tietoliikenteen perusteet

Lisää segmenttipuusta

3/31/15. Yhteenveto. Tällä luennolla. Sovellukset. Internet-protokollapino. Sovellukset. Sovellusarkkitehtuurit

DNSSec. Turvallisen internetin puolesta

Kertaus. Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2013

L2TP LAN to LAN - yhteys kahden laitteen välille

Tietoliikenteen perusteet

TW-EAV510AC-LTE OpenVPN ohjeistus

Matkahuolto lisäosa WooCommerce alustalle (c) Webbisivut.org

Ryhmän kokoonpano. Kaikki kalvot on jaettu tasan ryhmän jäsenten kesken

Tietoverkkojen turvallisuus. Tuomas Aura T Johdatus tietoliikenteeseen kevät 2012

Lähiverkon toimintaa Tietojenkäsittelyn koulutusohjelma Timo Ruohomaa

WWW-sivu. Miten Internet toimii? World Wide Web. HTML-koodi. HTTP-istunto URL <#>

Tietoliikenne I 2 ov kevät 2003

Siirtyminen IPv6 yhteyskäytäntöön

Mobiiliturva Palvelun käyttöönotto

Käyttöönotto-ohje. DNA Sähköposti

Kuljetus- ja sovelluskerroksen tietoturvaratkaisut. Transport Layer Security (TLS) TLS:n suojaama sähköposti

Internet ja tietoverkot 2015 Harjoitus 5: (ISO/OSI-malli: Verkkokerros, TCP/IP-malli: internet-kerros)

Sähköpostiohjeet. Tehokas ja huoleton sähköposti

S Tietoliikennetekniikan perusteet. Pakettikytkentäiset verkot. Tietoliikenne- ja tietoverkkontekniikan laitos

IPv6 käyttöönoton mahdollistajat operaattorin näkemys

Kuva 1 Internet on pakettivälitteinen

Miten Internet toimii?

Työtapaturman ilmoittaminen 2016-> Uusi sähköinen lomake, täyttäminen esimies ja palkkahallinto

TIETOKONEYLIASENTAJAN ERIKOISAMMATTITUTKINTO

Lisää reititystä. Tietokoneverkot 2009 (4 op) Syksy Futurice Oy. Lisää reititystä. Jaakko Kangasharju

Mikä on internet, miten se toimii? Mauri Heinonen

3. Kuljetuskerros 3.1. Kuljetuspalvelu

Lisää reititystä. Tietokoneverkot 2008 (4 op) Syksy Teknillinen korkeakoulu. Lisää reititystä. Jaakko Kangasharju

Tietoliikenne I 2 ov syksy 2001

Internet ja tietoverkot 2015 Harjoitus 7: Kertaus

TW- EAV510 / TW- EAV510 AC: IPSeC- Ohjeistus

3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end

Käyttöjärjestelmät: Virtuaalimuisti

OSI malli. S Tietoliikenneverkot S Luento 2: L1, L2 ja L3 toiminteet

Miten Internet toimii. Tuomas Aura T Johdatus tietoliikenteeseen kevät 2013

Oulun yliopisto Sähkö- ja tietotekniikan osasto

SUOMALAISET PK-YRITYKSET EIVÄT LUOTA PILVIPALVELUIHIN

Tietoliikenne I (muuntokoulutettaville) 2 ov syksy 2003 Luennot Liisa Marttinen

Tietoliikenteen perusteet

Tietoliikenteen perusteet

Ohje hakulomakkeen täyttämiseen yliopistohaku.fi -palvelussa

WWW-PALVELUN KÄYTTÖÖNOTTO LOUNEA OY

TW- EAV510: WDS- TOIMINTO KAHDEN TW- EAV510 LAITTEEN VÄLILLÄ

Tietoliikenteen perusteet. Langaton linkki

Tietoliikenteen perusteet. Langaton linkki

Security server v6 installation requirements

Tietokone. Tietokone ja ylläpito. Tietokone. Tietokone. Tietokone. Tietokone

TeleWell TW-EA711 ADSL modeemi & reititin ja palomuuri. Pikaohje

3. Laajakaistaliittymän asetukset / Windows XP

Markkinoiden helpoin ja käytännöllisin IP Kamera

Transkriptio:

Sovellukset (osa 2) CSE-C2400 Tietokoneverkot 19.1.2016 Sanna Suoranta Tietokoneverkot 2016 19.1.2016 Sisältö adaptoitu seuraavista lähteistä: J.F. Kurose and K.W. Ross: Computer Networking: A Top-Down Approach 6th ed. -kirjan lisämateriaali, T. Lindholm, S. Tarkoma: Johdatus tietotekniikkaan-kurssin Sovelluskerros-luennon materiaali, Matti Siekkisen Sovellukset (osa 2) luento 2014.

Sisältö: sovellusarkkitehtuurit Asiakas palvelin-arkkitehtuuri Loppukäyttäjän palvelut kuten sähköposti ja www (viime viikolla) Verkkoinfrastruktuurin palvelut kuten nimipalvelu (DNS) Vertaisverkot (P2P) Asiakas-palvelin vs. vertaisverkot BitTorrent Hajautetut tiivistetaulut (DHT) Kirjan luvut 2.5, 2.1,2.6, 2.8

Internet-protokollapino Facebook Sähköposti Loppukäyttäjän sovellukset Verkon käyttöön tarvittavat palvelut Ohjelmistot (software) Web-selain Käyttöjärjestelmä (operating system, OS) Laiteajurit (drivers) Sovelluskerros Kuljetuskerros Verkkokerros Linkkikerros Fyysinen kerros verkko eli tietoliikenne -palvelu

Asiakas palvelin-arkkitehtuuri sähköposti TCP IP WiFi selain 2,4 GHz taajuus sähköpostipalvelin 25 TCP IP Ethernet Cat-5-kaapeli Webpalvelin 80

Verkon arkkitehtuuri (palataan tähän reitityksen yhteydessä)

Miten tunnistetaan kone ja palvelu, jolle viesti oli tarkoitettu? Sovelluskerroksen tunnisteet ovat nimiä Kuljetuskerroksen tehtävä on erottaa yhteyden päätepisteiden sisällä (isäntäkoneessa) mille sovelluskerroksen ohjelmalle verkosta saapuva viesti on tarkoitettu Kuljetuskerroksen tunnisteina käytetään porttinumeroita (port number) Internetin palveluille on määritelty tietyt numerot (0-49151) Asiakasohjelmat käyttävät myös porttinumeroita, mutta ne allokoidaan dynaamisesti (49152-65535) Verkkokerroksen tehtävä on kuljettaa viesti perille laitteelle, jolle se on tarkoitettu Verkkokerroksen tunnisteina käytetään osoitteita (address), esim. 130.233.224.196 (IPv4-osoite) Sovelluskerros Kuljetuskerros Verkkokerros Linkkikerros Fyysinen kerros 19.1.201 6

Nimipalvelu (domain name system, DNS) Ihmiset pystyvät muistamaan paljon helpommin nimiä kuin numerosarjoja tietokoneiden nimet (hostname) into.aalto.fi-kone saattaisi nimen perusteella sijaita Suomessa Reitittimille nimet eivät merkitse mitään, sillä ne eivät oikeasti kerro sijaintia Verkkokerroksen tunnisteena käytetään IP-osoitetta Nimipalvelun (domain name system, DNS) tehtävä on yhdistää nimet ja IP-osoitteet toisiinsa Tarjoaa hajautetun ja hierarkisen tietokannan Toimii sovelluskerroksella Muut sovelluskerroksen palvelut käyttävät DNSää hyväkseen 19.1.2016

5. Selain 4. 1. DNS client 2.-3. paikallinen DNSpalvelin DNSpalvelin noppa.aalto.fi 1. Sovellus kysyy samassa koneessa toimivalta DNS:n asiakasohjelmalta (DNS client) nimeä vastaavan kohteen IPosoitetta. Se saattaa olla jopa tallennettuna itse koneelle, tai sitten 2. DNS-asiakas lähettää kyselyn paikallisen verkon DNS-palvelimelle 3. DNS-palvelin vastaa, jos tieto löytyy sen välimuistista (cache) 4. DNS-asiakas kertoo sovellukselle 5. Sovellus muodostaa sitten yhteyden haluttuun palveluun Entä jos tietoa ei löydy paikallisen DNS-palvelimen välimuistista? 19.1.2016

Hajautettu ja hierarkinen tietokanta Juurinimipalvelimet (root DNS servers) Ylätason palvelimet (top-level domain, TLD, servers) Autorisoidut aluepalvelimet (authoratative DNS servers) com org cnn.com fi fi fi aalto.fi Juuripalvelimia 13 (vuonna 2014 oikeastaan n. 500, replikoituja) Ylätason palvelimet (TLD): edu, net, ja maakohtaiset us, uk Autorisoidut palvelimet: organisaatioiden omat (tai ISP:n) Näiden lisäksi paikallisia nimipalvelimia, jotka toimivat apuna (katso: http://www.root-servers.org/) 19.1.2016

Juurinimipalvelin Ylätason nimipalvelin 3&4 5&6 autorisoitu DNSpalvelin Se- DNS lain client 10. 1. 2. 9. paikallinen DNSpalvelin 7&8 into.aalto.fi 11 Iteratiivinen nimenselvitysprosessi 19.1.2016

Jos paikallinen nimipalvelin ei tiedä vastausta, se selvittää iteratiivisesti 3. Paikallinen nimipalvelin kysyy juurinimipalvelimelta Juurinimipalvelimen IP-osoite nimipalvelimella on 4. Juurinimipalvelin kertoo ylätason nimipalvelimen IP-osoitteen 5. Paikallinen nimipalvelin kysyy ylätason palvelimelta 6. Ylätason palvelin kertoo autoratiivisen nimipalvelimen IPosoitteen 7. Paikallinen nimipalvelin kysyy autoratiiviselta nimipalvelimelta 8. Autorisoitu nimipalvelin kertoo pyydettyä nimeä vastaavan IP-osoitteen Olemassa myös rekursiivinen tapa (katso kirjasta). 19.1.2016

Paikallinen ja autorisoitu nimipalvelin ISP:llä (tai organisaation verkossa) on paikallinen nimipalvelin (tai useampi) auttamaan oman verkon asiakkaita selvittämään nimeä vastaavan IP-osoitteen Voi olla samassa lähiverkossa tai sitten vähän kauempana Sen IP-osoite konfiguroidaan jokaiseen koneeseen esim. DHCP:n avulla (dynamic host configuration protocol) samalla kun kone saa itselleen IP-osoitteen ISP:n autorisoitu nimipalvelin vastaa muualta tuleviin kyselyihin Voi olla myös alinimipalvelimia huolehtimaan erikseen osasta nimiavaruutta 19.1.2016

Välimuistin merkitys Paikalliset palvelimet tallentavat nimi IP-osoite-pareja välimuistiinsa (cache) kyselyiden perusteella Sekä TLD- että autorisoitujen palvelinten ja ihan yksittäisten koneiden tietoja Vastaukset saadaan nopeammin, kun aina ei tarvitse kysyä juurinimipalvelimelta lähtien Välimuistin käyttö nopeuttaa kyselyprosessia Välimuistissa oleva tieto vanhenee määräajan (esim. pari päivää) kuluttua 19.1.2016

Miten sähköpostiohjelma tietää vastaanottajan palvelimen? Vastaanottajan sähköpostiosoitteessa on kaksi osaa: bob@aalto.fi Alkuosa kertoo vastaanottajan sähköpostilaatikon nimen Loppuosa kertoo vastaanottajan verkon nimen (domain name) Verkon nimen perusteella pitää selvittää vastaanottajan sähköpostipalvelimen verkkokerroksen IP-osoite Mutta eihän siinä ole postiserverin vaan verkon nimi?!?? do what I mean 19.1.2016

Nimipalvelimeen tallennettavat tiedot Nimi osoite-parit tallennetaan resurssitietueiksi (resource records, RR), esim host -a komennolla saa selville: ;; ANSWER SECTION: kekkonen.niksula.hut.fi. 3233 IN A 130.233.41.50 kekkonen.niksula.hut.fi. 6612 IN AAAA 2001:708:20:e336:8:20ff:fe7f:22b1 Osoitetietueiden tyyppi on A (IPv4) tai AAAA (IPv6-osoitteille) Osoitteiden lisäksi nimipalveluun tallennetaan Alueen (domain) autoratiivisten nimipalvelinten nimet NS-tietueina, jos nimipalvelin itse ei ole autoratiivinen Alias koneen nimelle (canonical hostname) CNAME-tietueena Sähköpostipalvelimen alias MX-tietueena. Alias voi olla vaikka domainin nimi, esim. aalto.fi. 19.1.2016

DNS:n kyselyprotokollan viestit 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ ID QR Opcode AA TC RD RA Z RCODE +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ Kysymysten lukumäärä Vastausten lukumäärä +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ Autorisoitujen nimipalveluiden lukumäärä Lisätieto-RR:n lukumäärä +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ Kyselyt (nimi, jota kysytään, ja tyyppi eli esim A tai MX), vaihtuva määrä +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ Vastaukset RR-tietueina, sis. Nimi, arvo, tyyppi ja kauanko tieto voimassa (time to live, TTL) +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ Muut autorisoidut nimipalvelimet, vaihtuva määrä +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ Lisätietoa, esim sähköpostipalvelimen nimi, vaihtuva määrä +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ Otsikossa tunniste, lippuja ja tietoa viestin pituudesta, dataosassa itse kysymys tai vastaus siihen (ja lisätietoa) Käyttää kuljetuskerroksen protokollista epäluotettavaa UDP:tä DNS-palvelin odottaa kyselyitä portissa 53 Sekä kysely että vastaus käyttää samaa viestiformaattia 19.1.2016

Otsikon kentät ID, 16 bittinen yksilöllinen tunniste yhdistämään kyselyn ja sen vastauksen QR= 1 bitti, 0=kysely, 1= vastaus Opcode=kyselyn tyyppi, esim tavallinen kysely, päivitys AA=1, vastannut serveri oli autoratiivinen alueella TC=1, vastausta on lyhennetty (ei mahdu udp-pakettiin) RD=1, pyyntö käyttää rekursiivista hakua RA=1, palvelin tukee rekursiivista hakua, Z=000, varattu, nollia Rcode=vastauksessa ilmenneiden virheiden koodit

Verkkotunnuksen hallinta Verkkotunnuksen/nimen (domain name) pitää rekisteröidä Rekisteröinnistä huolehtii ICANNin määrittelemä taho, Suomessa Viestintävirasto vastaa.fi-päätteisistä nimistä (hakeminen: https://domain.fi/info/index/hakeminen.html) Tarvitsee ensisijaisen ja toissijaisen autorisoidun DNSpalvelimen IP-osoitteineen (ei enää pakko olla omaa) Itse nimipalvelimen tietoja voi hallita käsin tai nimipalvelinohjelmiston avulla (esim bind) huolellisuus tärkeää! Nimipalvelimien tietoja voi kopioida toiselle nimipalvelimelle (zone transfer) Tällöin käytetään kuljetuskerroksen TCP-protokollaa 19.1.2016

Nimipalvelun tietoturva Nimipalvelussa olennaista on tietojen saatavuus ja aitous Nimipalvelun haavoittuvuuksia Palvelunestohyökkäyksellä on yritetty tukkia esim juurinimipalvelimet Nimipalvelinten välimuistiin voi yrittää syöttää väärää tietoa (DNS poisoning) Nimipalvelinten ohjelmistoissa on ollut haavoittuvuuksia, joiden avulla tietoja on pystynyt muuttamaan Turvallinen DNS (DNSSEC) Tietueet allekirjoitetaan nimipalvelimen allekirjotusavaimella Ylemmän tason nimipalvelin kertoo kyselijälle alemman tason nimipalvelimen allekirjotuksen tarkastusavaimen (juuripalvelimen avain saatava muutoin) 19.1.2016

Kysyttävää tähän mennessä? Asiakas palvelin-arkkitehtuuri Nimipalvelu (DNS) Vertaisverkot (P2P) Asiakas-palvelin vs. vertaisverkot BitTorrent Hajautetut tiivistetaulut (DHT)

Vertaisverkot (P2P) Toisenlainen sovellusarkkitehtuuri kuin asiakas-palvelin Ei 24/7-palvelimia Päätelaitteet viestivät suoraan toistensa kanssa Sekä asiakas että palvelin Päätelaitteet (peer) eivät aina verkossa, IP-osoitteet vaihtuvat Esimerkkejä sovelluksista: tiedostonjakelu (BitTorrent) median suoratoisto (KanKan) VoIP eli IP-puhelut (Skype)

Tiedostonjakelu: asiakas-palvelin vs vertaisverkot Kauanko kestää jakaa tiedosto (F tavua) yhdeltä palvelimelta N:lle päätelaitteelle (PL)? Päätelaitteiden ylä- ja alakaistat ovat rajallisen levyiset u s : palvelimen lähetysnopeus tiedosto, koko F palvelin u s u 1 d 1 u 2 d 2 d i : päätelaitteen i latausnopeus u N d N Internet-verkko (riittävästi kaistaa) d i u i u i : päätelaitteen i lähetysnopeus

Tiedoston jakoon kuluva aika: asiakas-palvelin palvelin: lähettää N kopiota tiedostosta peräkkäin: yhteen lähetykseen kuluva aika: F/u s N lähet. kuluva aika: NF/u s PL (asiakas): jokainen vastaanottaa yhden kopion d min = hitaimman asiakkaan latausnopeus kasvaa lineaarisesti hitaimman asiakkaan latausaika: F/d min N:n funktiona F u s verkko d i u i Asiakas palvelin-mallissa tiedoston F jakamiseen N:lle asiakkaalle kuluva aika D c-s > max{nf/u s,,f/d min }

Tiedoston jakoon kuluva aika: vertaisverkko palvelin: lähettää väh. yhden kopion yhden kopion lähetysaika: F/u s v PL: jokainen lataa yhden kopion hitaimman latausaika: F/d min u s verkko v PL: yhteensä lataavat NF tavua max lähetysnopeus (rajoittaa max latausnopeutta) on u s + Σu i F d i u i kasvaa lineaarisesti N:n funktiona F:n jakoon N asiakkaalle kuluva aika vertaisverkon avulla D P2P > max{f/u s,,f/d min,,nf/(u s + Σu i )} mutta tämä samoin, koska jokainen asiakas lisää verkon kapasiteettia

Asiakas-palvelin vs. vertaisverkko: vertailua asiakkaan lähetysnopeus = u, F/u = 1h, u s = 10u, d min u s vertaisverkko on itseskaalautuva (self scaling)

Sisältö Jatkoa sovelluksille: vertaisverkot (P2P) Asiakas-palvelin vs. vertaisverkot BitTorrent Hajautetut tiivistetaulut (DHT)

Tiedostonjakelu vertaisverkoissa: BitTorrent tiedosto jaettu 256Kb palasiin (chunks) Päätelaitteet (PL, peers) torrentissa lähettävät ja vastaanottavat tiedostonpalasia tracker: pitää kirjaa torrentiin osallistuvista PL:sta Lissu liittyy saa listan muista PL:sta trackerilta ja alkaa vaihdella tiedostonpalasia muiden torrentin PL:n kanssa torrent: tietyn tiedoston palasia jakavien PL:n joukko

Tiedostonjakelu vertaisverkoissa: BitTorrent torrentiin liittyvä päätelaite (PL): rekisteröityy trackeriin saadakseen PL-listan, muodostaa yhteyden osaan PL:sta ( naapurit ) ei vielä tiedostonpalasia, kerryttää lataamalla muilta PL:t lähettävät toisilleen palasia samalla kun lataavat niitä PL voi vaihtaa naapureita, joiden kanssa käy vaihtokauppaa palasista churn: PL:ita poistuu ja uusia liittyy kun koko tiedosto ladattu, PL voi joko poistua (itsekäs) tai jäädä torrentin osaksi auttamaan muita lataajia (altruistinen)

BitTorrent: tiedostonpalasten treidaus tiedostonpalasten lataaminen: Eri päätelaitteilla eri tiedostonpalaset tietyllä ajanhetkellä Lissu pyytää aika ajoin jokaiselta naapuriltaan listan palasista, jotka heillä on rarest first: Lissu pyytää seuraavaksi naapurien kesken harvinaisimmat palaset palasten lähettäminen: tit-for-tat Rankkaa naapurit niiden lähetysnopeuden mukaan Lähetä palasia top-4 naapurille muut naapurit: ei latausta tai lähetystä (choked) top-4 rankkaus 10s välein Valitse 30s välein satunnainen naapuri ja ala lähettää palasia optimistic unchoke uusi naapuri voi päästä top-4:ään

BitTorrent: tit-for-tat (1) Lissu valkkaa satunnaisesti Penan ( optimistic unchoke ) (2) Lissu rankkautuu Penan top-4:een; Pena alkaa myös lähettää (3) Pena rankkautuu Lissun top-4:een Mitä nopeammin lähettää, sitä parempien naapurien kanssa voi tehdä vaihtokauppaa ja ladata tiedoston nopeammin.

Kysyttävää tähän mennessä? Asiakas palvelin-arkkitehtuuri Nimipalvelu (DNS) Vertaisverkot (P2P) Asiakas-palvelin vs. vertaisverkot BitTorrent Hajautetut tiivistetaulut (DHT)

Hajautetut tiivistetaulut (DHT) Tiivistetaulu Hajautetut tiivistetaulut Ympyrämalliset DHT:t ja kuoriverkot (overlay) Churn ja hajautetut tiivistetaulut

Yksinkertainen tietokanta Esim. tietokanta, joka tallentaa (avain, arvo) pareja: avain: hlön nimi; arvo: sotu Avain Arvo John Washington 132-54-3570 Diana Louise Jones 761-55-3791 Xiaoming Liu 385-41-0902 Rakesh Gopal 441-89-1956 Linda Cohen 217-66-5609. Lisa Kobayashi 177-23-0199 avain: elokuvan nimi; arvo: IP-osoite

Tiivistetaulu (Hash table) Numeerinen avain helpottaa käsittelyä avain = tiiviste(alkup. avain) (tiiviste=hash) Alkuperäinen avain Avain Arvo John Washington 8962458 132-54-3570 Diana Louise Jones 7800356 761-55-3791 Xiaoming Liu 1567109 385-41-0902 Rakesh Gopal 2360012 441-89-1956 Linda Cohen 5430938 217-66-5609. Lisa Kobayashi 9290124 177-23-0199

Hajautettu tiivistetaulu Distributed Hash Table (DHT) Hajautetaan (avain, arvo) parit miljooniin päätelaitteisiin Parit jaetaan tasan päätelaitteiden kesken Ensimmäiset kehitetty 2001 Chord, CAN, Pastry, Tapestry: kaikki julkaistu samana vuonna Peruskäsitteen alkuperä vanhempi (hajautetut tietokannat) Valtava määrä tutkimusta sittemmin

Hajautettu tiivistetaulu: ominaisuudet Mikä tahansa päätelaitteista voi tehdä kyselyn tietokantaan avaimen avulla Tietokanta palauttaa vastaavan arvon Kyselyyn vastaaminen vaatii muutamien viestien lähetyksen PL:n kesken Jokainen päätelaite pitää muistissa vain pienen osan toisista päätelaitteista Churn: tietokanta ei saa mennä rikki

Avain-arvo parien jakaminen Jokaisella päätelaitteelle (PL) annetaan ID Yleensä valitaan satunnaisesti yleisesti: avain-arvo pari annetaan sen päätelaitteen hoidettavaksi, jonka oma ID on lähinnä avainta useimmiten: lähin päätelaite on se, jonka ID tulee ensimmäisenä avaimen jälkeen esim. ID avaruus {0,1,2,3,,63} 8 PL:a: 1,12,13,25,32,40,48,60 avain = 51 à PL 60 tallentaa avain = 60 à PL 60 tallentaa avain = 61 à PL 1 tallentaa

Hajautetun tiivistetaulun rakenne Rakenne/topologia määrittää sen miten kyselyt prosessoidaan Viestien reititys Ympyrässä päätelaite tietää vain heti seuraavan naapurin 60 Chord noudattaa ympyrämallia Monia muita rakenteita on kehitetty 48 40 1 32 12 25 13

Hajautettu tiivistetaulu on kuoriverkko Kuoriverkko = overlay network Vain osajoukko fyysisen verkon päätelaitteista osallistuu Tieto siirtyy silti fyysisen verkon topologian mukaisesti Kuoriverkon topologiaa voidaan muokata helposti Fyysistä topologiaa ei

Kyselyn prosessointi ympyrässä Tarvitaan keskimäärin O(N) viestiä prosessoimaan kysely kun DHT:n koko on N 60 48 arvo 1 12 Mitä arvoa avain 53 vastaa? 25 13 40 32

Optimointia: Oikotiet 60 48 arvo 1 12 25 Mitä arvoa avain 53 vastaa? 13 Tradeoff: reititystaulun koko vs. lähetysten määrä! 40 32 Seuraajan ja edeltäjän lisäksi pidetään muistissa oikoteitä (shortcuts) Kyselyn prosessointi lyhenee: 6à3 viestiä O(log N) naapuria muistissa ja O(log N) viestiä per kysely on mahdollista oikoteiden avulla

Churnin hallinta 1 3 15 4 12 5 10 8 esimerkki: PL 5 poistuu äkisti PL:t muistavat kaksi seuraavaa naapuria PL:t tarkistavat naapurien elonmerkit à ping viestin aika ajoin Seuraava naapuri poistuu à valitse sitä seuraava uudeksi seuraajaksi

15 12 Churnin hallinta 10 1 3 4 PL:t muistavat kaksi seuraavaa naapuria PL:t tarkistavat naapurien elonmerkit à ping viestin aika ajoin Seuraava naapuri poistuu à valitse sitä seuraava uudeksi seuraajaksi 8 esimerkki: PL 5 poistuu äkisti PL 4 huomaa PL 5:n poistuneen à PL 8 seuraajaksi PL 4 kysyy PL 8:lta kuka sen seuraaja on à PL 8:n seuraaja omaksi toiseksi seuraajaksi

Haasteet ja sovellutukset Sovellutuksia BitTorrent käyttää hajautettua tiivistetaulua (Kademlia) Tavallaan hajautettu trackeri: avain=torrent, arvo=iposoitteet Käytetään keskitettyjen trackerien lisäksi Cassandra NoSQL tietokanta Käyttäjiä mm. Facebook, Netflix, reddit, Twitter Amazonin Dynamo tietokanta DynamoDB korvasi Haasteita Epätäsmälliset kyselyt Range queries, esim. MUSE* Tiivistefunktiot rikkovat (tarkoituksella) alkuperäisten avainten järjestyksen Kuormantasaus Churn, heterogeeniset PL:t, epätasainen avainten suosio (kyselyt) Topologia: kuoriverkko vs. fyysinen verkko Viestien reititys maapallon laidalta toiselle ja takaisin Mobiililaitteet ja jatkuva ylläpitoliikenne à akunkesto

Yhteenveto Nimipalvelu (DNS) tekee Internetistä käytettävän ihmisille Linkkaa nimet IP-osoitteisiin Sovellusarkkitehtuureita on erilaisia Asiakas-palvelin Vertaisverkot Pilvipalvelut voitaisiin vielä erotella näistä Vertaisverkot Self scaling -ominaisuus BitTorrentissa insentiivit jakaa rakennettu protokollaan Hajautettu tiivistetaulu (DHT) on avain-arvo tietokanta ja muodostaa kuoriverkon

Internetin protokollapino Sovelluskerros (application) Kuljetuskerros (transport) Verkkokerros (network) Linkkikerros (link layer) Fyysinen kerros (physical) Ensi viikon luento Sovellukset (viesti, message) Päätepiste mille sovellukselle päätelaitteessa? (segmentti, segment) Päätelaite minne Internet-verkossa? (paketti, packet) Päätelaite mille laitteelle lähiverkossa? (kehys, frame) Bitit piuhaan/ilmaan (fyysisenä signaalina)

Lyhenteitä ja terminologiaa DNS = Domain Name System (nimipalvelu) TLD = top-level domain (ylemmän tason toiminimialue) ISP = Internet service provider ((verkko)palveluntarjoaja) P2P = peer-to-peer (vertaisverkko) DHT = Distributed Hash Table (Hajautettu tiivistetaulu) VoIP = Voice over IP (Internet-puhelu) Churn = vertaisverkossa päätelaitteiden poistuminen ja uusien saapuminen Chunk = BitTorrentissa tiedoston palanen BitTorrent = vertaisverkkoa käyttävä tiedostonjakelusovellus Tracker = BitTorrentin seurantapalvelin Torrent = joukko BitTorrentia ajavia päätelaitteita jotka jakavat samaa tiedostoa Overlay network = päätelaitteiden muodostama sovellustason looginen verkko (kuoriverkko) Topologia = verkon rakenne, miten laitteet ovat yhteydessä toisiinsa (katso keskeisiä termejä edellisen luennon kalvojen lopusta)

Lähteitä DNS www.root-servers.org ja www.iana.org/domains/root/db Internet Assigned Numbers Authority (IANA) www.iana.org Domain names concepts and facilities, RFC 1034, 1987 Domain names implementation and specification, RFC 1035 19.1.2016