Tietoliikenteen perusteet Luento 8: Verkkokerros IP-osoitteet, reititsalgoritmit Sks 05, Timo Karvi Kurose&Ross: Ch4 Pääasiallisesti kuvien J.F Kurose and K.W. Ross, All Rights Reserved Tietoliikenteen perusteet, sks 05 Timo Karvi 6..005
paketti tai datagrammi, sanoma segmentti kehs H l H n H n H t H t H t M M M M Lähettäjä (source) Sovellusk. Kuljetusk. Verkkok. Linkkik. Fsinen k. Luennon sisältöä linkki fsinen Ktkin (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 phsical H l H n H n H t H t M M network link phsical H n H t M Reititin (router) Tietoliikenteen perusteet, sks 05 Tiimo Karvi
Sisältöä Verkkokerros Reititin IP-protokolla IP-osoitteet, DHCP, NAT Reititsalgoritmit Oppimistavoitteet: - Osaa selittää, kuinka IP-paketteja välitetään verkossa - Tietää, mitä tietoja sisält IP-pakettiin (ja miksi) - Osaa selittää reitittimen rakenteen ja toiminnan - Osaa kuvailla, kuinka reitittimet kokoavat reititstietonsa = linkkitila- ja etäissvektorialgoritmien toimintaideat Tietoliikenteen perusteet, sks 05 Tiimo Karvi 3
IP-OSOITTEET Tietoliikenteen perusteet, sks 05 Tiimo Karvi 4
IP-osoitteet (IPv4) Fig 4.5 [KR] 3-bittinen tunniste isäntäkoneille ja reitittimien linkeille verkkoliittmän tunniste Reitittimellä useita liittmiä kullakin oma IP-osoite Mös isäntäkone voi olla liitettnä 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, sks 05 Tiimo Karvi 5
Aliverkot Osoitteen osat aliverkon numero (alkuosa) koneen numero (loppuosa) Aliverkon koneet voivat kommunikoida ilman reititstä 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, sks 05 Tiimo Karvi 6
Aliverkot 3... Montako aliverkkoa on tässä kuvassa? Yleislähetsosoite 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, sks 05 Tiimo 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ä esiteltä subnet maskia kätetään vain osoiteluokan sisällä Ongelma: Internet kasvoi 993 lähtien eksponentiaalisesti ja reititstaulut räjähtivät C-luokat ovat suosittuja ja niitä on paljon Tarvittiin ratkaisu, joka aggregoi reititstietoa paremmin kuin A,B,C jako -> CIDR Kaikki IPv4 osoitteet on nt jaettu! Tietoliikenteen perusteet, sks 05 Tiimo 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ä Yrits voi vielä itse jakaa viimeiset bittiä aliverkkoosoitteeksi ja koneosoitteeksi. Tämä jako ei nä ulkopuolelle. (subnet mask) Kone aliverkko Aliverkon peite (maski) Subnet mask Tietoliikenteen perusteet, sks 05 Tiimo 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, sks 05 Tiimo Karvi 0
Hierarkkinen osoite CIDR luo reititstä helpottavan hierarkian Fig 4.8 [KR] Aggregointi (hdistäminen): hteinen 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. Fl-B-Night-ISP Send me anthing with addresses beginning 00.3.6.0/0 Internet KuRo08: Fig 4.9 ISPs-R-Us Send me anthing with addresses beginning 99.3.0.0/6 Tietoliikenteen perusteet, sks 05 Tiimo Karvi
Jos palveluntarjoaja (ISP) vaihtuu? IP-osoitteet voi säilttää Uudelta ISP:ltä tarkempi reititsohje Pisin sopiva alkuosa määrää reititksen (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. Fl-B-Night-ISP ISPs-R-Us Send me anthing with addresses beginning 00.3.6.0/0 Send me anthing with addresses beginning 99.3.0.0/6 or 00.3.8.0/3 Fig 4.9 [KR] Internet Tietoliikenteen perusteet, sks 05 Tiimo Karvi
Koneen IP-osoite Koneen IP-osoite konfiguroidaan joko käsin koneelle tai saadaan automaattisesti kättäen DHCP:tä (Dnamic Host Configuration Protocol) Eri osoite eri kerroilla tai psvämpi osoite DHCP-palvelija vastaa antaa koneen kättöön IP-osoitteen (rajallinen elinaika) antaa DNS-tiedot, ms. Palvelun tarjoaja: pienempi numeromäärä riittää Toteutus UDP monilähets (broadcast) plug-and-pla Tietoliikenteen perusteet, sks 05 Tiimo Karvi 3
Seppo Srjäsen luonnehdinnat: "Hei, onks kellään?" "Tässois tämmönen..." "Oi, saanks mä tän?" DHCP: Osoiteksel DHCP server: 3...5 DHCP request src: 0.0.0.0, 68 dest:: 55.55.55.55, 67 iaddrr: 3...4 transaction ID: 655 lifetime: 3600 secs DHCP discover src : 0.0.0.0, 68 dest.: 55.55.55.55,67 iaddr: 0.0.0.0 transaction ID: 654 DHCP offer src: 3...5, 67 dest: 55.55.55.55, 68 iaddrr: 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 iaddrr: 3...4 transaction ID: 655 lifetime: 3600 secs Tietoliikenteen perusteet, sks 05 Tiimo Karvi 4
DHCP: Muutakin tietoa kuin IP-osoite DHCP antaa osoitteen lisäksi leensä muutakin tärkeää tietoa: Reitittimen osoite Yhtespiste 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, sks 05 Tiimo Karvi 5
Sanomanvälits - Esimerkkinä DHCP request DHCP DHCP DHCP DHCP DHCP DHCP DHCP DHCP DHCP DHCP UDP IP Eth Ph DHCP UDP IP Eth Ph 68... router with DHCP server built into router Kannettavan pntö: DHCP request sovelluskerros: DHCP request, kuljetuskerros paketoi UDPsegmentiksi, verkkokerros paketoi IPdatagrammiksi, linkkikerros paketoi kehkseksi esim. 80. Palvelimen päässä pino toisinpäin, eli aina puretaan oma paketti ja annetaan lemmäs sen sanoma. Tietoliikenteen perusteet, sks 05 Tiimo Karvi 6
Aliverkon osoitteiden piilottaminen hden 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ätö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, sks 05 Tiimo 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, sks 05 Tiimo Karvi 8
NAT: Osoitteenmuunnos esimerkillä : NAT vaihtaa lähdeosoitteksi 38.76.9.7, ja portiksi 500, päivittää taulun 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, sks 05 Tiimo Karvi 9
Hödt NAT: Kommentteja / kritiikkiä Kotiverkko tarvitsee ISP:ltä vain hden IP-osoitteen Voi muutella vapaasti kotikoneiden IP-osoitteita Turvallisuus: ulospäin muille näk vain ksi kone Kritiikkiä Reitittimien tulisi toimia vain verkkotasolla, porttinumerot ovat kuljetuskerroksen asioita Rikkoo päästä-päähän idean (prosessien välinen htes) 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ättöön IPv6, jossa 8-bitin osoitteet Tietoliikenteen perusteet, sks 05 Tiimo Karvi 0
REITITYSALGORITMIT Tietoliikenteen perusteet, sks 05 Tiimo Karvi
Reititsalgoritmi 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 reititstaulun! Mille linkille paketti seuraavaksi siirretään tältä reitittimeltä Pakettien edelleenlähets (forwarding) tarvitsee reititstaulua, jotta paketit lötävät perille Tietoliikenteen perusteet, sks 05 Tiimo Karvi
Reititsalgoritmeja Reititsalgoritmi, joka tarvitsee tädellisen tiedon verkosta Ennen laskentaa kätössä koko kuva verkosta: Kaikki linkkihtedet solmujen välillä ja niiden kustannukset Kätännössä vain tietstä autonomisesta alueesta Parhaat reitit lasketaan joko keskitetsti tai hajautetusti Linkkitila-algoritmi (linkstate algorithm) Reititsalgoritmi, jolle riittää epätädellinen kuva verkosta Aluksi reititin tietää vain niistä koneista, joihin itse on hdistett Iteratiivinen algoritmi: reititin vaihtaa tietoja naapuriensa kanssa ja saa tietoa muusta verkosta Etäissvektorialgoritmi (distance vector algorithm) Tietoliikenteen perusteet, sks 05 Tiimo Karvi 3
Reititsalgoritmin muita ominaisuuksia Dnaaminen vs. staattinen Miten nopeasti huomaa linkkien muutokset ja muuttaa reititstä Miten tiuhaan tietoja päivitetään Miten usein muutoksia Kuormituksen huomioiva vai ei Linkin ruuhkautuneisuus voi vaikuttaa sen kustannukseen Nkalgoritmit eivät ota kuormitusta huomioon Tosin kllä epäsuorasti linkin hitautena ('kustannuksena') Tietoliikenteen perusteet, sks 05 Tiimo Karvi 4
Reititstiedon kerääminen Reititin saa tietoja seuraavasti: Linkkikerros tarjoaa hteden naapureihin MAC-osoite IP-osoite Naapurit havaitaan saapuvista kehksistä ja paketeista (broadcast, multicast, unicast) Naapurit kertovat omasta reititstaulustaan Linkkitila: kaikki tiedot Etäissvektori: lhimmät etäisdet kohteisiin naapurien kautta Tietojen päivits: reaktiivinen tai ajastettu Tietoliikenteen perusteet, sks 05 Tiimo Karvi 5
Verkko graafina (graph) Verkko G= (N,E) N = solmujen (nodes) joukko E = linkkien (edges) joukko (x,) on linkki solmujen x ja välillä c(x,) = linkin kustannus kaistanleves, 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 5 z Mikä on huokein reitti kuvan solmusta u solmuun z? Tietoliikenteen perusteet, sks 05 Tiimo 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 reititstaulunsa Tietoliikenteen perusteet, sks 05 Tiimo Karvi 7
Dijkstran algoritmi Merkinnät C(x,) linkin x, 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äsiteltjen solmujen joukko Tietoliikenteen perusteet, sks 05 Tiimo 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() =, 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äiss u:sta on pienin 5 v x 3 3 w 5 z 3. Päivitetään etäiss b:n naapureille, joita ei vielä ole käsitelt Tietoliikenteen perusteet, sks 05 Tiimo Karvi 9
X Y Dijkstran algoritmi (kierros ) D(x)=, D(v)=, D(w)=4, D() =, D(z)= D(x)=, D(v)=, D(w)=3, D() =, 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äiss aina u solmu 3 3 w 5 z Tässä olisi voitu valita tai v, mutta valittiin nt Tietoliikenteen perusteet, sks 05 Tiimo Karvi 30
Dijkstran algoritmi (kierros 3) Y V D(x)=, D() =, D(v)=, D(w)=3, D(z)=4 D(x)=, D() =, 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 5 z Tietoliikenteen perusteet, sks 05 Tiimo Karvi 3
Dijkstran algoritmi (kierros 4) V W D(x)=, D() =, D(v)=, D(w)=3, D(z)=4 D(x)=, D() =, 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 5 z Tietoliikenteen perusteet, sks 05 Tiimo Karvi 3
Dijkstran algoritmi (kierros 5) W Z D(x)=, D() =, D(v)=, D(w)=3, D(z)=4 D(x)=, D() =, 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 5 z Tietoliikenteen perusteet, sks 05 Tiimo Karvi 33
Lhimmät reitit ja reititstaulukko Fig 4.7 [KR] Resulting shortest-path tree from u: Resulting forwarding table in u: destination link u v x w z v x w z (u,v) (u,x) (u,x) (u,x) (u,x) Tietoliikenteen perusteet, sks 05 Tiimo Karvi 34
Dijkstran algoritmi: Havaintoja Dijkstra ottaa käsitteln aina lähimmän käsittelemättömän solmun Hakee lhintä mahdollista etäisttä naapurin naapurien kautta Tästä seuraa lhin virittävä puu reititstaulu Tietoliikenteen perusteet, sks 05 Tiimo Karvi 35
) Etäissvektorireitits (distance vector) Arpanet-verkon alkuperäinen reititsalgoritmi Kätössä useissa Internetin reititsprotokollissa, kuten RIP, BGP, Novell IPX, ISO IDRP Interaktiivinen, hajautettu ja askroninen Tiedot tarkentuvat asteittain, iteratiivisesti Tietin 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, sks 05 Tiimo Karvi 36
Etäissvektorireitits (jatkuu) Kullakin reitittimellä on oma etäissvektori sen tuntemiin solmuihin Reititstaulu, jossa kullekin kohteelle ulosmenolinkki ja kustannus (etäiss) Aika /etäiss kohteeseen, hppjen lukumäärä, arvioitu viive,.. Reititin tietää/mittaa kustannuksen omiin naapureihinsa Jos muutoksia, lähettää oman etäissvektorinsa naapureilleen Kun saa naapurinsa etäissvektorin, päivittää oman etäissvektorinsa Tietoja uusista solmuista => lisää taulukkoon uudet kohteet Tietoja jo tunnetuista solmuista: valitse kustannuksiltaan edullisin reitti Tietoliikenteen perusteet, sks 05 Tiimo Karvi 37
Merkinnät Etäissvektori- reitits c(x,v) kustannus solmusta x naapuriin v, X jos v ei ole x:n naapuri, c(x,v) = D x () edullisimman x:stä :hn johtavan reitin kustannus A 3 B c(x,a) = c(x,b) = D a (B) = 3 D x (B) = + 3 = 5 Solmun x oma etäissvektori D x = [D x (): є N] edullisin tiedett kustannus solmusta x kuhunkin tunnettuun solmuun Naapureiden etäissvektorit D v () =[D v (): єn] = Naapurin v tiedot edullisimmista kustannuksista kuhunkin solmuun D x () = min {c(x,v) + D v ()} (Bellman-Ford) Kustannus solmusta x naapurisolmuun v ja sieltä edelleen solmuun Jos useita reittejä (eri naapureiden kautta); valitaan edullisin eli pienin kustannus Tietoliikenteen perusteet, sks 05 Tiimo Karvi 38
u Esimerkki 5 v 3 3 x Kohde kust. linkki Z 4 X w 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äissvektoriin (= reititstauluun) Tietoliikenteen perusteet, sks 05 Tiimo Karvi 39
from from from ESIMERKKI. Alussa kukin solmu tuntee vain etäisdet naapureihinsa itsensä kautta: x z cost to x z 0 7 x z cost to x z x: : z: 0 Sitten solmut lähettävät omat reittinsä toisilleen ja laskevat uudet parhaat reitit. Esimerkiksi solmu x: x z x 0 3 0 z 7 0 cost to x z x z 7 0 D x () = min{c(x,) + D (), c(x,z) + D z ()} = min{+0, 7+} = D x (z) =min{c(x,) + D (z), c(x,z) + D z (z)} = min{+, 7+0} = 3 x 7 z Tietoliikenteen perusteet, sks 05 Tiimo Karvi 40
from from from from from Esimerkki jatkuu: Samalla tavalla toimivat solmut ja z: cost to cost to : z: x z x z x z 0 7 0 7 0 x z 0 7 0 3 0 x 7 z Solmut lähettävät taas tietonsa toisilleen ja laskevat uudet lhimmät reitit. cost to cost to cost to X: x z Y: Z: x z x z x 0 3 x 0 3 x 0 3 0 0 0 z 3 0 z 3 0 z 3 0 Tietoliikenteen perusteet, sks 05 Tiimo Karvi 4
from from from from from from from from from D x () = min{c(x,) + D (), c(x,z) + D z ()} = min{+0, 7+} = D x (z) = min{c(x,) + D (z), c(x,z) + D z (z)} = min{+, 7+0} = 3 x: x z cost to x z 0 7 x z cost to x z 0 3 0 7 0 x z cost to x z 0 3 0 3 0 : x z cost to x z 0 x z cost to x z 0 7 0 7 0 x z cost to x z 0 3 0 3 0 x 7 z z: cost to x z x z 7 0 x z cost to x z 0 7 0 3 0 cost to x z Tietoliikenteen perusteet, sks 05 Tiimo Karvi 4 x z 0 3 0 3 0
Hvä uutinen etenee nopeasti A B C D E Aluksi htes A:han on poikki ja sitten linkki AB toimii taas Tieto etenee joka vaihdossa hden linkin li Etäiss 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, sks 05 Tiimo Karvi 43
Huono uutinen etenee hitaasti! A B C D E Linkki AB katkeaa => Etäiss äärettömäksi Joka vaihdossa 'paras arvio' huononee vain hdellä = reititssilmukka Count-to-infinit - ongelma D B (A) D c (A) D D (A) D E (A) 3 4 D 3 c (A) mainostaa 3 4 3 4 kahden 3 4 hpn 5 4 5 4 linkkiä 5 6 A:han 5 6 7 6 7 6 7 8 7 8 jne Etäiss A:han Tietoliikenteen perusteet, sks 05 Tiimo Karvi 44
Huono uutinen etenee nopeasti: poisoned reverse A B C D E Ratkaisu count-to-infinit-ongelmaan! Ilmoita etäiss äärettömäksi naapurille, jonka kautta linkki kulkee. Kerro muille oikea etäiss. Tieto etenee joka vaihdossa hden linkin li Etäiss A:han D B (A) D c (A) D D (A) D E (A) 3 4 3 4 4 Tietoliikenteen perusteet, sks 05 Tiimo Karvi 45
Ratkaisu ei toimi aina! (etäiss) A x C B Linkki CD katkeaa, A ja B ilmoittavat C:lle, ettei D:hen pääse (kätössä poisonous reverse eli etäiss ää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äiss D:hen => A:n oma etäiss D:hen := 3 ja tämä reitti ei kulje C:n kautta! => kerrotaan C:lle. D C kertoo B:lle,... Tietoliikenteen perusteet, sks 05 Tiimo Karvi 46
Algoritmien aikavaativuus Dijkstra Naive: O(V ) Efficient with binar heap: O(E+log V), V on solmujen lukumäärä ja E kaarien lukumäärä Distance vector (Bellman-Ford) O(E*V) Tietoliikenteen perusteet, sks 05 Tiimo Karvi 47
3) Hierarkkinen reitits Reititksen skaalautuvuus? Isossa verkossa runsaasti reitittimiä Kaikki eivät voi tuntea kaikkia muita Reititstaulut suuria, reittien laskeminen raskasta Reititstietojen vaihtaminen kuluttaa linjakapasiteettiä Autonomiset järjestelmät AS (Autonomous Sstems) Internet ~ verkkojen verkko Intra-AS routing Kukin verkko päättää itse sisäisestä reititksestään RIP, OSPF Inter-AS routing AS:t ilmoittelevat toisilleen, mihin muihin AS:iin niistä pääsee BGP (Border Gatewa Protocol) Tietoliikenteen perusteet, sks 05 Tiimo Karvi 48
Hierarkkinen reitits Yhdskätävä (gatewa router) Sovittu, mikä reititin keskustelee naapuriverkon (-verkkojen) kanssa Ulkoatuleva / ulosmenevä paketti reititt hdskätävään AS:n sisäinen reitits 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, sks 05 Tiimo Karvi 49
Kertausksmksiä ks. kurssikirja s. 439-44 Keskeisimmät IP-otsakkeen tiedot? Paketin paloittelu Millainen on IP-osoite? Reitittimen arkkitehtuuri? Longest prefix match? Aliverkon peite (mask) NAT:n toiminta Miten reititin saa reititstiedot? Linkkitila-algoritmi, Dijkstran algoritmi Etäissvektorialgoritmi, count-to-infinit-ongelma Tietoliikenteen perusteet, sks 05 Tiimo Karvi 50