Tietoliikenteen perusteet

Samankaltaiset tiedostot
Tietoliikenteen perusteet

Luento 8: Verkkokerros

Tietoliikenteen perusteet. Verkkokerros

Tietoliikenteen perusteet. Verkkokerros

Tietoliikenteen perusteet. Verkkokerros

Verkkokerroksen palvelut. 4. Verkkokerros. Virtuaalipiiri (virtual circuit) connection-oriented ~ connectionless. tavoitteet.

Introduction to exterior routing

Verkkokerroksen palvelut

Introduction to exterior routing

Introduction to exterior routing

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

Introduction to exterior routing. Autonomous Systems

3. IP-kerroksen muita protokollia ja

Chapter 4 Network Layer

100 % Kaisu Keskinen Diat

Kattava katsaus reititykseen

4. Reititys (Routing)

Verkkokerroksen palvelut. 4. Verkkokerros. Virtuaalipiiri (virtual circuit) connection-oriented ~ connectionless. tavoitteet.

4. Verkkokerros. sovelluskerros. kuljetuskerros. verkkokerros. siirtoyhteyskerros peruskerros. asiakas. end-to-end

ELEC-C7241 Tietokoneverkot Verkkokerros

Reititys. 4. Reititys (Routing) Verkkokerroksen tehtävänä on toimittaa data (paketit) lähettäjän koneelta vastaanottajan koneelle. Reititysalgoritmit

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

Verkkoinformaation välittämiseen isäntäkoneiden ja reitittimien välillä

reititystietojen vaihto linkkitilaviestejä säännöllisin väliajoin ja topologian muuttuessa

reititystietojen vaihto linkkitilaviestejä säännöllisin väliajoin ja topologian muuttuessa

OSPF:n toiminta. Välittäjäreititin. Hello-paketti. Hello-paketin kentät. Hello-paketin kentät jatkuvat. OSPF-sanomat hello naapurien selvillesaaminen

3/3/15. Verkkokerros 2: Reititys CSE-C2400 Tietokoneverkot Kirjasta , Verkkokerros. Internet-protokollapino ja verkkokerroksen tehtävä

4. Reititys (Routing)

Reititys. 4. Reititys (Routing) Verkkokerroksen tehtävänä on toimittaa data (paketit) lähettäjän koneelta vastaanottajan koneelle. Reititysalgoritmit

Verkkokerros 2: Reititys

OSI ja Protokollapino

Monilähetysreititys. Paketti lähetetään usealle vastaanottajalle Miksi? Monet sovellukset hyötyvät

Verkkokerros ja Internetprotokolla

Reititys. 4. Reititys (Routing) Verkkokerroksen tehtävänä on toimittaa data (paketit) lähettäjän koneelta vastaanottajan koneelle. Reititysalgoritmit

Chapter 4 Network Layer

Reititys. Tietokoneverkot 2009 (4 op) Syksy Futurice Oy. Reititys. Jaakko Kangasharju.

4. Reititys (Routing)

4. Reititys (Routing)

Chapter 4 Network Layer

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

ITKP104 Tietoverkot - Teoria 3

Internet-reititys (Routing) Verkkokerroksen tehtävänä on toimittaa data (paketit) lähettäjän koneelta vastaanottajan koneelle

Internet-reititys (Routing)

Internet-reititys (Routing)

Reititys. Tämä ja OSI 7LHWROLLNHQQHWHNQLLNDQSHUXVWHHW $(/&7 0DUNXV3HXKNXUL. Yhteyden jakaminen Reititys Kytkentä Internet-protokolla TCP, UDP

Reitittimien toiminta

Verkkokerros ja Internetprotokolla

Multicast. Johdanto Ryhmien hallinta Reititys Reaaliaikaiset siirto- ja hallintaprotokollat Resurssien varaus Sessioiden hallinta

100 % Kaisu Keskinen Diat

4 reititintyyppiä. AS:ien alueet. sisäinen reititin alueen sisäisiä. alueen reunareititin sekä alueessa että runkolinjassa

reitittimet käyttävät samaa reititysprotokollaa (intra-as protocol)

Luento 7: Verkkokerros verkkokerroksen tehtävät, IP-protokolla, reititin. Syksy 2014, Tiina Niklander

Verkkokerros ja Internetprotokolla

AS 3 AS 0. reitittimet käyttävät samaa reititysprotokollaa (intra-as protocol)

AS 3 AS 5 AS 1 AS 0 AS 2 AS 4

Tietoliikenteen perusteet. Vähän kertausta

R R R RR. Kaikkien. pakettien. siirto yhden linkin yli. always on. Viimeisen siirto muiden linkkien yli. Sovellus: Kuljetus: Verkko: Linkki:

Verkkokerroksen palvelut. 4. Verkkokerros. Virtuaalipiiri (virtual circuit) connection-oriented ~ connectionless. tavoitteet.

3.7. Internetin reititysprotokollista

Reititys. Autonomisten järjestelmien sisäinen reititys. luvut 7, 13 ja 15. Sanna Suoranta

Reititys. Luennon sisältö. Miten IP-paketti löytää tiensä verkon läpi. Edelleenlähetys (forwarding) yksittäisen koneen näkökulmasta

Tietoliikenteen perusteet. Langaton linkki

Tietoliikenteen perusteet. Langaton linkki

S Tietoliikenneverkot / Marko Luoma 1

Kun n = 32 ei ole tarpeeksi nopea nykyisiin runkoreitittimiin! - content addressable memory (CAM) - välimuistin käyttö

001.. Kun n = 32 ei ole tarpeeksi nopea nykyisiin runkoreitittimiin! - content addressable memory (CAM) - välimuistin käyttö

Tietoliikenteen perusteet. Vähän kertausta. Tietoliikenteen perusteet /2009/ Liisa Marttinen 1

4.1 Verkkokerros toimittaa

4.1 Verkkokerros toimittaa. 4. Verkkokerros. Virtuaalipiiri (virtual circuit) connection-oriented ~ connectionless

Turvallisuus verkkokerroksella

Turvallisuus verkkokerroksella

AH-otsake. Turvallisuus verkkokerroksella. AH-otsake. AH-otsake. ESP-otsake. IP-otsake

Hello-paketin kentät jatkuvat

Hello-paketin kentät jatkuvat

Tietoliikenteen perusteet. Vähän kertausta

Liikkuvien isäntäkoneiden reititys

5. Mobile IP (RFC 3220)

Langaton linkki. Langaton verkko. Tietoliikenteen perusteet. Sisältö. Linkkikerros. Langattoman verkon komponentit. Langattoman linkin ominaisuuksia

" Reititysprosessori. " suorittaa reititysprotokollaa " RIP, OSPF, BGP,.. " päivittää reititystauluja. " hallinta- ja ylläpitotoimintoja

Reititys. Autonomisten järjestelmien sisäinen reititys. luvut 7, 13 ja 15

Reitittimen rakenne. Kytkentäosa ... (switching fabric) Reititysprosessori 2/7/ pakettien edelleenohjaaminen (PE)

Luento 7: Verkkokerros

Monilähetysreititys (multicast routing)

Monilähetysreititys (multicast routing)

T Tietokoneverkot : Reititys sisäverkossa

Internet Protocol version 6. IPv6

Tietoliikenteen perusteet. Verkkokerros

4.1 Verkkokerros toimittaa. 4. Verkkokerros. Datasähke virtuaalipiiri. connection-oriented connectionless. Virtuaalipiiri = yhteydellinen palvelu

Multicast. Johdanto Ryhmien hallinta Reititys Reaaliaikaiset siirto- ja hallintaprotokollat Resurssien varaus Sessioiden hallinta

5. Verkkokerros. Verkkokerroksen palvelut. Tulvitus jokainen saapunut paketti lähetetään kaikille muille ulosmenoille.

4. Verkkokerros. sovelluskerros. kuljetuskerros. verkkokerros. siirtoyhteyskerros peruskerros. asiakas. end-to-end

R R R RR. Kaikkien. pakettien. siirto yhden linkin yli. always on. Viimeisen siirto muiden linkkien yli. Sovellus: Kuljetus: Verkko: Linkki:

Johdanto Internetin reititykseen

Vuonimiö on pelkkä tunniste

Vuonimiö on pelkkä tunniste

... Laajennusotsakkeet. Reititysotsake. Vuonimiö on pelkkä tunniste. Vuonimiöiden käsittely solmuissa

Malliverkko. Tietoliikenneverkot. Terminologiaa. Ja taas OSI /XHQWR5HLWLW\V

Internet perusteet. Analyysin tasot

Multicast perusteet. Ins (YAMK) Karo Saharinen Karo Saharinen

Verkkokerroksen palvelut. 5. Verkkokerros. Tulvitus jokainen saapunut paketti lähetetään kaikille muille ulosmenoille.

Transkriptio:

Tietoliikenteen perusteet Luento 8: Verkkokerros IP-osoitteet, reititysalgoritmit Syksy 07, Timo Karvi Kurose&Ross: Ch4 Pääasiallisesti kuvien J.F Kurose and K.W. Ross, All Rights Reserved Tietoliikenteen perusteet, syksy 06 Timo Karvi 6..005

paketti tai datagrammi, sanoma segmentti kehys H l H n H n H t H t H t M M M M Lähettäjä (source) Sovellusk. Kuljetusk. Verkkok. Linkkik. Fyysinen k. Luennon sisältöä linkki fyysinen Kytkin (switch) message segment datagram frame H l Vastaanottaja (destination) H H n n t H n H t H t M M M M application transport network link physical H l H n H n H t H t M M network link physical H n H t M Reititin (router) Tietoliikenteen perusteet, syksy 06 Timo Karvi

Sisältöä Verkkokerros Reititin IP-protokolla IP-osoitteet, DHCP, NAT Reititysalgoritmit Oppimistavoitteet: - Osaa selittää, kuinka IP-paketteja välitetään verkossa - Tietää, mitä tietoja sisältyy IP-pakettiin (ja miksi) - Osaa selittää reitittimen rakenteen ja toiminnan - Osaa kuvailla, kuinka reitittimet kokoavat reititystietonsa = linkkitila- ja etäisyysvektorialgoritmien toimintaideat Tietoliikenteen perusteet, syksy 06 Timo Karvi 3

IP-OSOITTEET Tietoliikenteen perusteet, syksy 06 Timo Karvi 4

IP-osoitteet (IPv4) Fig 4.5 [KR] 3-bittinen tunniste isäntäkoneille ja reitittimien linkeille verkkoliittymän tunniste Reitittimellä useita liittymiä kullakin oma IP-osoite Myös isäntäkone voi olla liitettynä useaan verkkoon 0 0000000 0000000 0000000 3 3... 3... 3... 3...4 3...9 3...3 3..3.7 3... ICANN Internet Corporation for Assigned names and Numbers verkkonumerot palveluntarjoajille, joilta nämä edelleen aliverkoiksi 3..3. 3..3. Tietoliikenteen perusteet, syksy 06 Timo Karvi 5

Aliverkot Osoitteen osat aliverkon numero (alkuosa) koneen numero (loppuosa) Aliverkon koneet voivat kommunikoida ilman reititystä Linkkikerros osaa lähettää koneelta toiselle (esim. ethernet) Aliverkkoa merkitään notaatiolla, jossa lopussa on verkko-osan pituus HUOM painovirhe: 6ed kuva 4.6 Aliverkon tunnukset. 3...0/4, 3...0/4 ja 3..3.0/4 (ei 3 kuten kuvassa) 3... 3... 3... 3...4 3...9 3...3 3..3. 3..3.7 3... subnet 3..3. Esim. 3...0 /4 subnet mask Aliverkon peite eli verkko-osoite 4 bittiä ja network consisting of 3 subnets koneosoite 8 bittiä Fig 4.6 [KR] Tietoliikenteen perusteet, syksy 06 Timo Karvi 6

Aliverkot 3... Montako aliverkkoa on tässä kuvassa? Yleislähetysosoite 55.55.55.55 Paketti kaikille aliverkon koneille. Mahdollisesti reitittimen kautta muillekin 3... 3...4 3...3 Fig 4.7 [KR] 3..9. 3..7.0 3..9. 3..7. 3..8. 3..8.0 3...6 3..3.7 3... 3... 3..3. 3..3. Tietoliikenteen perusteet, syksy 06 Timo Karvi 7

Aliverkkojen osoitteet: Vanha luokallinen osoite: A-luokka 8 b, B-luokka 6 b, C-luokka 4 b Esim. FUNET 8.4.0.0/6 (HY:llä näitä) Edellä esiteltyä subnet maskia käytetään vain osoiteluokan sisällä Ongelma: Internet kasvoi 993 lähtien eksponentiaalisesti ja reititystaulut räjähtivät C-luokat ovat suosittuja ja niitä on paljon Tarvittiin ratkaisu, joka aggregoi reititystietoa paremmin kuin A,B,C jako -> CIDR Kaikki IPv4 osoitteet on nyt jaettu! Tietoliikenteen perusteet, syksy 06 Timo Karvi 8

CIDR: Classless InterDomain Routing Verkko-osa voi olla minkä tahansa kokoinen Formaatti: a.b.c.d/x x ilmoittaa verkko-osan bittien lukumäärän (prefix) Verkko (prefix) 00000 0000 0000000 00000000 00.3.6.0/ Esim. Organisaatio, jolla 000 konetta varaa 048 = ^ konenumeroa, jolloin verkkoosaa varten jää bittiä Yritys voi vielä itse jakaa viimeiset bittiä aliverkkoosoitteeksi ja koneosoitteeksi. Tämä jako ei näy ulkopuolelle. (subnet mask) Kone aliverkko Aliverkon peite (maski) Subnet mask Tietoliikenteen perusteet, syksy 06 Timo Karvi 9

Koneen IP-osoite Palveluntarjoaja saa verkkonumeronsa ICANN:lta isona lohkona voi jakaa saamansa osoiteavaruuden (osoitelohkon) edelleen aliverkkoihin esim. Kukin organisaatio saa aliverkon, jossa on numerot 5 koneelle ** = 4096 = 8 * 5 0 kpl kpl ISP's block 00000 0000 0000000 00000000 00.3.6.0/0 Organization 0 00000 0000 0000000 00000000 00.3.6.0/3 Organization 00000 0000 000000 00000000 00.3.8.0/3 Organization 00000 0000 000000 00000000 00.3.0.0/3....... Organization 7 00000 0000 0000 00000000 00.3.30.0/3 Tietoliikenteen perusteet, syksy 06 Timo Karvi 0

Hierarkkinen osoite CIDR luo reititystä helpottavan hierarkian Fig 4.8 [KR] Aggregointi (yhdistäminen): yhteinen alkuosa => samaan suuntaan Organization 0 00.3.6.0/3 Organization 00.3.8.0/3 Organization 00.3.0.0/3 Organization 7. 00.3.30.0/3. Fly-By-Night-ISP Send me anything with addresses beginning 00.3.6.0/0 Internet KuRo08: Fig 4.9 ISPs-R-Us Send me anything with addresses beginning 99.3.0.0/6 Tietoliikenteen perusteet, syksy 06 Timo Karvi

Jos palveluntarjoaja (ISP) vaihtuu? IP-osoitteet voi säilyttää Uudelta ISP:ltä tarkempi reititysohje Pisin sopiva alkuosa määrää reitityksen (longest prefix match) Organization 0 00.3.6.0/3 Organization 00.3.0.0/3 Organization 7. 00.3.30.0/3 Organization 00.3.8.0/3. Fly-By-Night-ISP ISPs-R-Us Send me anything with addresses beginning 00.3.6.0/0 Send me anything with addresses beginning 99.3.0.0/6 or 00.3.8.0/3 Fig 4.9 [KR] Internet Tietoliikenteen perusteet, syksy 06 Timo Karvi

Koneen IP-osoite Koneen IP-osoite konfiguroidaan joko käsin koneelle tai saadaan automaattisesti käyttäen DHCP:tä (Dynamic Host Configuration Protocol) Eri osoite eri kerroilla tai pysyvämpi osoite DHCP-palvelija vastaa antaa koneen käyttöön IP-osoitteen (rajallinen elinaika) antaa DNS-tiedot, yms. Palvelun tarjoaja: pienempi numeromäärä riittää Toteutus UDP monilähetys (broadcast) plug-and-play Tietoliikenteen perusteet, syksy 06 Timo Karvi 3

Seppo Syrjäsen luonnehdinnat: "Hei, onks kellään?" "Tässois tämmönen..." "Oi, saanks mä tän?" DHCP: Osoitekysely DHCP server: 3...5 DHCP request src: 0.0.0.0, 68 dest:: 55.55.55.55, 67 yiaddrr: 3...4 transaction ID: 655 lifetime: 3600 secs DHCP discover src : 0.0.0.0, 68 dest.: 55.55.55.55,67 yiaddr: 0.0.0.0 transaction ID: 654 DHCP offer src: 3...5, 67 dest: 55.55.55.55, 68 yiaddrr: 3...4 transaction ID: 654 lifetime: 3600 secs Fig 4. [KR] arriving client "Joo, pidä vaan." DHCP ACK src: 3...5, 67 dest: 55.55.55.55, 68 yiaddrr: 3...4 transaction ID: 655 lifetime: 3600 secs Tietoliikenteen perusteet, syksy 06 Timo Karvi 4

DHCP: Muutakin tietoa kuin IP-osoite DHCP antaa osoitteen lisäksi yleensä muutakin tärkeää tietoa: Reitittimen osoite Yhteyspiste ulos tästä aliverkosta Nimipalvelimen (DNS) nimi ja IP-osoite Täältä voi tiedustella muiden osoitteita Aliverkon peite (subnet mask) Kertoo mitkä osoitteen bitit ovat verkon osia ja mitkä koneen tunniste aliverkossa Tietoliikenteen perusteet, syksy 06 Timo Karvi 5

Sanomanvälitys - Esimerkkinä DHCP request DHCP DHCP DHCP DHCP DHCP DHCP DHCP DHCP DHCP DHCP UDP IP Eth Phy DHCP UDP IP Eth Phy 68... router with DHCP server built into router Kannettavan pyyntö: DHCP request sovelluskerros: DHCP request, kuljetuskerros paketoi UDPsegmentiksi, verkkokerros paketoi IPdatagrammiksi, linkkikerros paketoi kehykseksi esim. 80. Palvelimen päässä pino toisinpäin, eli aina puretaan oma paketti ja annetaan ylemmäs sen sanoma. Tietoliikenteen perusteet, syksy 06 Timo Karvi 6

Aliverkon osoitteiden piilottaminen yhden julkisen IP-osoitteen taakse Vain ~ 4 miljardia osoitetta! Julkinen Internet 38.76.9.7 Aliverkko (esim. kotiverkko) 0.0.0.0/4 0.0.0.4 0.0.0. 0.0.0. Fig 4. [KR] NAT-reititin 0.0.0.3 Kaikilla ulosmenevillä ja sisääntulevilla paketeilla sama IP-osoite 38.76.9.7 mutta eri porttinumeroita. Kotiverkossa käytössä sisäiset IP-osoitteet 0.0.0.0/4 (esim. DHCP:llä) Sisäisiä ovat: 0.0.0.0/8 7.6.0.0/ 9.68.0.0/6 Tietoliikenteen perusteet, syksy 06 Timo Karvi 7

NAT-reititin (Network Address Translation) Ulosmenevät paketit Korvaa lähdekoneen IP-osoite ja porttinumero NAT-koneen IP-osoitteella ja NAT-koneen valitsemalla porttinumerolla Päivitä NAT-muunnostaulu Sisääntulevat paketit NAT-koneelle NAT:n antamaan porttiin Korvaa NAT:n muunnostaulun avulla paketissa oleva IPosoite ja portti Välitä paketti perille NAT-muunnostaulu (IP-osoite, portti) (NAT-koneen osoite, NAT:n portti) Tietoliikenteen perusteet, syksy 06 Timo Karvi 8

: NAT vaihtaa lähdeosoitteksi 38.76.9.7, ja portiksi 500, päivittää taulun NAT: Osoitteenmuunnos esimerkillä NAT-muunnostaulu WAN-osoite LAN-osoite 38.76.9.7, 0.0.0., 500 3345 S: 38.76.9.7, 500 D: 8.9.40.86, 80 S: 0.0.0., 3345 D: 8.9.40.86, 80 0.0.0.4 : kone 0.0.0. lähettää paketin 8.9.40.86, 80 0.0.0. 0.0.0. 38.76.9.7 S: 8.9.40.86, 80 D: 38.76.9.7, 500 3 S: 8.9.40.86, 80 D: 0.0.0., 3345 4 0.0.0.3 3: Vastaus NAT-laitteelle: 38.76.9.7, 500 4: NAT vaihtaa kohdeosoitteeksi 0.0.0. ja portiksi 3345 Tietoliikenteen perusteet, syksy 06 Timo Karvi 9

Hyödyt NAT: Kommentteja / kritiikkiä Kotiverkko tarvitsee ISP:ltä vain yhden IP-osoitteen Voi muutella vapaasti kotikoneiden IP-osoitteita Turvallisuus: ulospäin muille näkyy vain yksi kone Kritiikkiä Reitittimien tulisi toimia vain verkkotasolla, porttinumerot ovat kuljetuskerroksen asioita Rikkoo päästä-päähän idean (prosessien välinen yhteys) Salauksessa ja todennuksessa voi tulla ongelmia (IPsec) Onko ohjelmoijan huomioitava NAT:n olemassaolo? Peer-to-peer NAT:n takana oleva palvelin (esim. www portissa 80) Pula IP-osoitteista hoidettava ottamalla käyttöön IPv6, jossa 8-bitin osoitteet Tietoliikenteen perusteet, syksy 06 Timo Karvi 0

REITITYSALGORITMIT Tietoliikenteen perusteet, syksy 06 Timo Karvi

Reititysalgoritmi routing algorithm local forwarding table dest address output link address-range address-range address-range 3 address-range 4 3 IP destination address in arriving packet s header Fig 4. [KR] 3 Etsii edullisimmat reitit lähdekoneelta kohdekoneille Mikä ja millainen algoritmi? Mistä tiedot?... Muodostaa reititystaulun! Mille linkille paketti seuraavaksi siirretään tältä reitittimeltä Pakettien edelleenlähetys (forwarding) tarvitsee reititystaulua, jotta paketit löytävät perille Tietoliikenteen perusteet, syksy 06 Timo Karvi

Reititysalgoritmeja Reititysalgoritmi, joka tarvitsee täydellisen tiedon verkosta Ennen laskentaa käytössä koko kuva verkosta: Kaikki linkkiyhteydet solmujen välillä ja niiden kustannukset Käytännössä vain tietystä autonomisesta alueesta Parhaat reitit lasketaan joko keskitetysti tai hajautetusti Linkkitila-algoritmi (linkstate algorithm) Reititysalgoritmi, jolle riittää epätäydellinen kuva verkosta Aluksi reititin tietää vain niistä koneista, joihin itse on yhdistetty Iteratiivinen algoritmi: reititin vaihtaa tietoja naapuriensa kanssa ja saa tietoa muusta verkosta Etäisyysvektorialgoritmi (distance vector algorithm) Tietoliikenteen perusteet, syksy 06 Timo Karvi 3

Reititysalgoritmin muita ominaisuuksia Dynaaminen vs. staattinen Miten nopeasti huomaa linkkien muutokset ja muuttaa reititystä Miten tiuhaan tietoja päivitetään Miten usein muutoksia Kuormituksen huomioiva vai ei Linkin ruuhkautuneisuus voi vaikuttaa sen kustannukseen Nykyalgoritmit eivät ota kuormitusta huomioon Tosin kyllä epäsuorasti linkin hitautena ('kustannuksena') Tietoliikenteen perusteet, syksy 06 Timo Karvi 4

Reititystiedon kerääminen Reititin saa tietoja seuraavasti: Linkkikerros tarjoaa yhteyden naapureihin MAC-osoite IP-osoite Naapurit havaitaan saapuvista kehyksistä ja paketeista (broadcast, multicast, unicast) Naapurit kertovat omasta reititystaulustaan Linkkitila: kaikki tiedot Etäisyysvektori: lyhimmät etäisyydet kohteisiin naapurien kautta Tietojen päivitys: reaktiivinen tai ajastettu Tietoliikenteen perusteet, syksy 06 Timo Karvi 5

Verkko graafina (graph) Verkko G= (N,E) N = solmujen (nodes) joukko E = linkkien (edges) joukko (x,y) on linkki solmujen x ja y välillä c(x,y) = linkin kustannus kaistanleveys, ruuhkaisuus, raha,.. C(x,x,..., xp) = reitin (route) kustannus = C(x,x) + C(x,x3) +... + (xp-,xp) u 5 v x Fig 4.7 [KR] 3 3 w y 5 z Mikä on huokein reitti kuvan solmusta u solmuun z? Tietoliikenteen perusteet, syksy 06 Timo Karvi 6

) Linkkitila: Dijkstran algoritmi Aluksi kaikilla reitittimillä on tiedossa verkon rakenne ja kaikkien linkkien kustannukset Kaikki reitittimet lähettävät tietonsa naapureistaan ja linkkikustannuksista naapureihin (mitatut/havaitut) joko kaikille muille tai jollekin keskussolmulle, joka välittää tiedon muille Reititin laskee Dijkstran algoritmilla edullisimman kustannuksen kaikkiin muihin kohteisiin Kokoaa näistä oman reititystaulunsa Tietoliikenteen perusteet, syksy 06 Timo Karvi 7

Dijkstran algoritmi Merkinnät C(x,y) linkin x,y kustannus; jos eivät naapureita = D(v) toistaiseksi edullisin kustannus solmuun v p(v) solmun v edeltäjä reitillä N = solmujen joukko, N' = jo käsiteltyjen solmujen joukko Tietoliikenteen perusteet, syksy 06 Timo Karvi 8

Initialization: N' = {u} 3 for all nodes a 4 if a adjacent to u 5 then D(a) = c(u,a) 6 else D(a) = 7 8 Loop Dijkstran algoritmi D(v)=, D(w) = 5, D(x)= D(y) =, D(z)=. Eli jos u:n vieressä 9 find b not in N' such that D(b) is a minimum 0 add b to N' update D(k) for all k adjacent to b and not in N' : D(k) = min( D(k), D(b) + c(b,k) ) 3 /* new cost to k is either old cost to k or known 4 shortest path cost to b plus cost from b to k */ 5 until all nodes in N' u. Aina valitaan käsittelemätön, jonka etäisyys u:sta on pienin 5 v x 3 3 w y 5 z 3. Päivitetään etäisyys b:n naapureille, joita ei vielä ole käsitelty Tietoliikenteen perusteet, syksy 06 Timo Karvi 9

X Y Dijkstran algoritmi (kierros ) D(x)=, D(v)=, D(w)=4, D(y) =, D(z)= D(x)=, D(v)=, D(w)=3, D(y) =, D(z)=4 8 Loop 9 find b not in N' such that D(b) is a minimum 0 add b to N' update D(k) for all k adjacent to b and not in N' : D(k) = min( D(k), D(b) + c(b,k) ) 3 /* new cost to k is either old cost to k or known 4 shortest path cost to b plus cost from b to k */ 5 until all nodes in N' u 5 v x Huom. Etäisyys aina u solmu 3 3 w y 5 z Tässä olisi voitu valita y tai v, mutta valittiin nyt y Tietoliikenteen perusteet, syksy 06 Timo Karvi 30

Dijkstran algoritmi (kierros 3) Y V D(x)=, D(y) =, D(v)=, D(w)=3, D(z)=4 D(x)=, D(y) =, D(v)=, D(w)=3, D(z)=4 8 Loop 9 find w not in N' such that D(w) is a minimum 0 add w to N' update D(v) for all v adjacent to w and not in N' : D(v) = min( D(v), D(w) + c(w,v) ) 3 /* new cost to v is either old cost to v or known 4 shortest path cost to w plus cost from w to v */ 5 until all nodes in N' u 5 v x 3 3 w y 5 z Tietoliikenteen perusteet, syksy 06 Timo Karvi 3

Dijkstran algoritmi (kierros 4) V W D(x)=, D(y) =, D(v)=, D(w)=3, D(z)=4 D(x)=, D(y) =, D(v)=, D(w)=3, D(z)=4 8 Loop 9 find w not in N' such that D(w) is a minimum 0 add w to N' update D(v) for all v adjacent to w and not in N' : D(v) = min( D(v), D(w) + c(w,v) ) 3 /* new cost to v is either old cost to v or known 4 shortest path cost to w plus cost from w to v */ 5 until all nodes in N' u 5 v x 3 3 w y 5 z Tietoliikenteen perusteet, syksy 06 Timo Karvi 3

Dijkstran algoritmi (kierros 5) W Z D(x)=, D(y) =, D(v)=, D(w)=3, D(z)=4 D(x)=, D(y) =, D(v)=, D(w)=3, D(z)=4 8 Loop 9 find w not in N' such that D(w) is a minimum 0 add w to N' update D(v) for all v adjacent to w and not in N' : D(v) = min( D(v), D(w) + c(w,v) ) 3 /* new cost to v is either old cost to v or known 4 shortest path cost to w plus cost from w to v */ 5 until all nodes in N' u 5 v x 3 3 w y 5 z Tietoliikenteen perusteet, syksy 06 Timo Karvi 33

Lyhyimmät reitit ja reititystaulukko Fig 4.7 [KR] Resulting shortest-path tree from u: Resulting forwarding table in u: destination link u v x w y z v x y w z (u,v) (u,x) (u,x) (u,x) (u,x) Tietoliikenteen perusteet, syksy 06 Timo Karvi 34

Dijkstran algoritmi: Havaintoja Dijkstra ottaa käsittelyyn aina lähimmän käsittelemättömän solmun Hakee lyhintä mahdollista etäisyyttä naapurin naapurien kautta Tästä seuraa lyhin virittävä puu reititystaulu Tietoliikenteen perusteet, syksy 06 Timo Karvi 35

) Etäisyysvektorireititys (distance vector) Arpanet-verkon alkuperäinen reititysalgoritmi Käytössä useissa Internetin reititysprotokollissa, kuten RIP, BGP, Novell IPX, ISO IDRP Interaktiivinen, hajautettu ja asykroninen Tiedot tarkentuvat asteittain, iteratiivisesti Tietyin väliajoin, Linkin tilan vaihtuessa, Naapurin tietojen muuttuessa,.. Kukin solmu laskee itsenäisesti, mutta saa tietoa naapureiltaan Tietää / arvioi kustannuksen omiin naapureihinsa Kuulee naapureiden kustannukset muihin kohdesolmuihin, jotka nämä puolestaan ovat kuulleet omilta naapureiltaan Valitsee kullekin kohdesolmulle kuulemansa edullisimman reitin Tietoliikenteen perusteet, syksy 06 Timo Karvi 36

Etäisyysvektorireititys (jatkuu) Kullakin reitittimellä on oma etäisyysvektori sen tuntemiin solmuihin Reititystaulu, jossa kullekin kohteelle ulosmenolinkki ja kustannus (etäisyys) Aika /etäisyys kohteeseen, hyppyjen lukumäärä, arvioitu viive,.. Reititin tietää/mittaa kustannuksen omiin naapureihinsa Jos muutoksia, lähettää oman etäisyysvektorinsa naapureilleen Kun saa naapurinsa etäisyysvektorin, päivittää oman etäisyysvektorinsa Tietoja uusista solmuista => lisää taulukkoon uudet kohteet Tietoja jo tunnetuista solmuista: valitse kustannuksiltaan edullisin reitti Tietoliikenteen perusteet, syksy 06 Timo Karvi 37

Merkinnät Etäisyysvektori- reititys c(x,v) kustannus solmusta x naapuriin v, jos v ei ole x:n naapuri, c(x,v) = D x (y) edullisimman x:stä y:hyn johtavan reitin kustannus A X 3 B c(x,a) = c(x,b) = D a (B) = 3 D x (B) = + 3 = 5 Solmun x oma etäisyysvektori D x = [D x (y): yє N] edullisin tiedetty kustannus solmusta x kuhunkin tunnettuun solmuun y Naapureiden etäisyysvektorit D v (y) =[D v (y): y єn] = Naapurin v tiedot edullisimmista kustannuksista kuhunkin solmuun y D x (y) = min {c(x,v) + D v (y)} (Bellman-Ford) Kustannus solmusta x naapurisolmuun v ja sieltä edelleen solmuun y Jos useita reittejä (eri naapureiden kautta); valitaan edullisin eli pienin kustannus Tietoliikenteen perusteet, syksy 06 Timo Karvi 38

u Esimerkki 5 v 3 3 x Kohde kust. linkki Z 4 X w y 5 z Jos on jo saatu selville, että D v (z) = 5, D x (z) = 3, D w (z) = 3 D u (z) = min { c(u,v) + d v (z), c(u,x) + d x (z), c(u,w) + d w (z) } = min { + 5, + 3, 5 + 3} = 4 Kun paketti on matkalla solmusta u solmuun z, se tulee seuraavaksi lähettää solmuun x, joka tuotti tuon minimin => talleta tieto omaan etäisyysvektoriin (= reititystauluun) Tietoliikenteen perusteet, syksy 06 Timo Karvi 39

from from from ESIMERKKI. Alussa kukin solmu tuntee vain etäisyydet naapureihinsa itsensä kautta: x y z cost to x y z 0 7 x y z cost to x y z x: y: z: 0 Sitten solmut lähettävät omat reittinsä toisilleen ja laskevat uudet parhaat reitit. Esimerkiksi solmu x: x y z x 0 3 y 0 z 7 0 cost to x y z x y z 7 0 D x (y) = min{c(x,y) + D y (y), c(x,z) + D z (y)} = min{+0, 7+} = D x (z) =min{c(x,y) + D y (z), c(x,z) + D z (z)} = min{+, 7+0} = 3 x y 7 z Tietoliikenteen perusteet, syksy 06 Timo Karvi 40

from from from from from Esimerkki jatkuu: Samalla tavalla toimivat solmut y ja z: cost to cost to y: z: x y z x y z x y z 0 7 0 7 0 x y z 0 7 0 3 0 x y 7 z Solmut lähettävät taas tietonsa toisilleen ja laskevat uudet lyhimmät reitit. cost to cost to cost to X: x y z Y: Z: x y z x y z x 0 3 x 0 3 x 0 3 y 0 y y 0 0 z 3 0 z 3 0 z 3 0 Tietoliikenteen perusteet, syksy 06 Timo Karvi 4

from from from from from from from from from D x (y) = min{c(x,y) + D y (y), c(x,z) + D z (y)} = min{+0, 7+} = D x (z) = min{c(x,y) + D y (z), c(x,z) + D z (z)} = min{+, 7+0} = 3 x: x y z cost to x y z 0 7 x y z cost to x y z 0 3 0 7 0 x y z cost to x y z 0 3 0 3 0 y: x y z cost to x y z 0 x y z cost to x y z 0 7 0 7 0 x y z cost to x y z 0 3 0 3 0 x y 7 z z: cost to x y z x y z 7 0 x y z cost to x y z 0 7 0 3 0 cost to x y z Tietoliikenteen perusteet, syksy 06 Timo Karvi 4 x y z 0 3 0 3 0

Hyvä uutinen etenee nopeasti A B C D E Aluksi yhteys A:han on poikki ja sitten linkki AB toimii taas Tieto etenee joka vaihdossa yhden linkin yli Etäisyys A:han D B (A) D c (A) D D (A) D E (A) ääretön ääretön ääretön ääretön ääretön ääretön ääretön ääretön ääretön 3 ääretön 3 4 Tietoliikenteen perusteet, syksy 06 Timo Karvi 43

Hyvä uutinen etenee nopeasti 3 4 A------------B------------C-------------D-----------E D(B,A) D(C,A) D(D,A) D(E,A) 3 7 9 0 (pos. muutos) 5 9 0 5 7 0 5 7 8 Eli hyvä tieto leviää joka kierroksella kauemmaksi. Tietoliikenteen perusteet, syksy 06 Timo Karvi 44

Huono uutinen leviää hitaasti Tarkastellaan kolmen solmun x, y,z verkkoa, jossa C(x,y)=4, C(y,z)=, C(x,z)=50. Solmut ovat naapureita keskenään. Näillä arvoilla D(y,x)=4, D(y,z)= ja D(z,x)=5. Oletetaan nyt, että C(x,y) huononee arvoon 60. y huomaa muutoksen ja päivittää oman D(y,x)-arvon. Y käyttää tähän z:n aikaisemmin lähettämää arvoa 5 ja saa D(y,x) = 6. Jos nyt y lähettää paketin x:lle, paketti jää ikuiseen silmukkaan x:n ja z:n välille. Seuraavalla kierroksella z päivittää D(z,x):n arvoksi 7, mutta edelleen paketti jää silmukkaan. Tätä jatkuu monta kierrosta ennen kuin oikea arvo saapuu y:lle ja z:lle. Tietoliikenteen perusteet, syksy 06 Timo Karvi 45

Poisoned reverse Ratkaisu ikuiseen silmukkaan: Jos y reitittää paketin x:n kautta, y ilmoittaa x:lle linkin C(y,x) kustannuksen äärettömäksi. Muille ilmoitetaan oikea kustannus. Nyt x ei lähetä paketteja y:n kautta. Myös huono uutinen etenee nopeasti. Tietoliikenteen perusteet, syksy 06 Timo Karvi 46

Ratkaisu ei toimi aina! (etäisyys) A x C B Linkki CD katkeaa, A ja B ilmoittavat C:lle, ettei D:hen pääse (käytössä poisonous reverse eli etäisyys ääretön ) C päättelee (oikein), että D:tä ei voi saavuttaa ja kertoo tämän A:lle ja B:lle eli että c(c,d) = Mutta A kuulee B:ltä, että sillä on etäisyys D:hen => A:n oma etäisyys D:hen := 3 ja tämä reitti ei kulje C:n kautta! => kerrotaan C:lle. D C kertoo B:lle,... Tietoliikenteen perusteet, syksy 06 Timo Karvi 47

Algoritmien aikavaativuus Dijkstra Naive: O(V ) Efficient with binary heap: O(E+log V), V on solmujen lukumäärä ja E kaarien lukumäärä Distance vector (Bellman-Ford) O(E*V) Tietoliikenteen perusteet, syksy 06 Timo Karvi 48

3) Hierarkkinen reititys Reitityksen skaalautuvuus? Isossa verkossa runsaasti reitittimiä Kaikki eivät voi tuntea kaikkia muita Reititystaulut suuria, reittien laskeminen raskasta Reititystietojen vaihtaminen kuluttaa linjakapasiteettiä Autonomiset järjestelmät AS (Autonomous Systems) Internet ~ verkkojen verkko Intra-AS routing Kukin verkko päättää itse sisäisestä reitityksestään RIP, OSPF Inter-AS routing AS:t ilmoittelevat toisilleen, mihin muihin AS:iin niistä pääsee BGP (Border Gateway Protocol) Tietoliikenteen perusteet, syksy 06 Timo Karvi 49

Hierarkkinen reititys Yhdyskäytävä (gateway router) Sovittu, mikä reititin keskustelee naapuriverkon (-verkkojen) kanssa Ulkoatuleva / ulosmenevä paketti reitittyy yhdyskäytävään AS:n sisäinen reititys huolehtii paketin AS:n koneelle tai AS:n läpi toiselle AS:lle Fig 4.3 [KR] 3c 3a 3b AS3 a c d b AS a c AS b Tietoliikenteen perusteet, syksy 06 Timo Karvi 50

RIP Autonomisen verkon reititystandardi, alkuperäinen. Käyttää etäisyysvektorialgoritmia. Reitittää reitittimestä aliverkkoon. Kustannus on hyppyjen lkm, maksimi 5. Vektoreita vaihdetaan joka 30. sekunti. RIP on ohjelmoitu sovellustason prosessiksi, joka kuitenkin voi modifioida reititystauluja Unixin ytimessä. RFC 453. Tietoliikenteen perusteet, syksy 06 Timo Karvi 5

OSPF Toinen autonomisen verkon reititysstandardi. RFC 38. Perustuu Dijkstran algoritmiin. Linkin kustannuksia ei määritelty: hypyt, kapasiteetti mahdollisia. Reititin yleislähettää reititystiedot verkkoon jokaisen muutoksen jälkeen tai vähintään puolen tunnin välein. Monia edistyksellisiä piirteitä verrattuna RIP:iin: Tietoliikenteen perusteet, syksy 06 Timo Karvi 5

OSPF () i. Reititysanomat voidaan todentaa (vain luotetut reitittimet). Kevyt todennus: kaikilla sama salasana, paketissa salasana selväkielisenä. Vahvempi: tiiviste salaisen avaimen kera. ii. Reititin voi käyttää useita samanarvoisia polkuja. iii. Multicast routing. iv. Mahdollisuus jakaa autonominen verkko hierarkkisesti osiin. Tietoliikenteen perusteet, syksy 06 Timo Karvi 53

BGP Autonomisten verkkojen välinen reititysprotokolla. Äärimmäisen monimutkainen. Siksi sivuutetaan tällä kurssilla. Tietoliikenteen perusteet, syksy 06 Timo Karvi 54