Tietoliikenteen perusteet Verkkokerros Kurose, Ross: Ch 4.- 4.4 ja 4. Sisältöä Verkkokerros Reititin IP-protokolla Reititsalgoritmit Oppimistaoitteet: - Osata selittää, kuinka IP-paketteja älitetään erkossa - Tietää, mitä tietoja sisält IP-pakettiin (ja miksi) - Osata selittää reitittimien rakenne ja toiminta - Osata kuailla, kuinka reitittimet kokoaat reititstietonsa = linkkitila- ja etäissektorialgoritmien toimintaideat Tietoliikenteen perusteet /008/ Liisa Marttinen Tietoliikenteen perusteet /008/ Liisa Marttinen Verkkokerros Verkkokerroksen tehtäät Verkkokerros Toimittaa kuljetuskerroksen segmentit astaanottajalle Lähets - Luo segmenteistä erkkokerroksen IP-paketteja - Lisää otsaketietoja: mm. IP-osoitteet Pakettien kulku erkossa - Isäntä (lähde) reititin -...- reititin isäntä (kohde) Vastaanotto - Poista otsake - Anna segmentti kuljetuskerrokselle Toimii etenkin reititksessä application transport netork data link phsical Reititin tutkii IP-paketin otsakkeen ja päättää, mihin linkkiin se lähetetään seuraaaksi KuRo08: Fig 4. netork netork data link netork data link phsical data link phsical phsical netork data link phsical netork data link phsical netork netork data link data link phsical phsical netork data link application phsical transport netork data link phsical Tietoliikenteen perusteet /008/ Liisa Marttinen Tietoliikenteen perusteet /008/ Liisa Marttinen 4 Reititin q Ohjaa paketin reitittimen sisääntulolinkistä johonkin ulosmenolinkkiin (forarding) u Katsoo reititstaulusta minne q Kertoo muille reitittimille reitittämiseen liittiä tietoja (routing) u Reittien selittäminen u Reititstaulun lläpito u Oma protokolla tätä arten (reititsalgoritmi, reititsprotokolla) u Käsin konfigurointi on hankalaa qpiiriktkentäisessä erkossa mös htedenmuodostus ja purku routing algorithm local forarding table header alue output link alue in arriing packet s header Tietoliikenteen perusteet /008/ Liisa Marttinen 0 000 00 0 00 KuRo0: Fig 4. Miksi erkkokerros? Internet koostuu hin heterogeenisista erkoista Verkot toteutettu eri teknologialla Verkoilla kehksen (frame) maksimikoko erilainen Palelu: htedellinen / htedetön, Erilaisia osoittamistapoja: ksitasoinen/hierarkkinen Monilähets / leislähets Toiminnot: irheenkäsittel, uonalonta, ruuhkanalonta, hteden laatu / laatutakuu (QoS), turaus, laskutus,.. Verkkoprotokolla IP (Internet Protocol) on erkkokerroksen hteinen kieli Internetin isäntäkoneiden ja reitittimien kommunikointitapa - Kullakin omat murteensa ja tapansa, mutta kaikki osaaat IP:tä. Yhteinen osoitustapa: IP-osoite Yksikäsitteiset osoitteet Tietoliikenteen perusteet /008/ Liisa Marttinen 6
Verkon palelun laatu Verkkojen taksonomia Netork Serice Bandidth No-loss Congestion Archtecture Model Guarantee Guarantee Ordering Timing Indication Teleliikenneerkot Internet Best none none an order not none Effort possible maintained ATM CBR guaranteed es in order maintained congestion constant ill not occur Piiriktkentäinen Pakettiktkentäinen ATM ABR guaranteed none in order not congestion minimum maintained indication proided KuRo08:Table 4. FDM TDM Datagrammierkko Virtuaalipiirierkko Tietoliikenteen perusteet /008/ Liisa Marttinen 7 Tietoliikenteen perusteet /008/ Liisa Marttinen 8 Pakettiktkentäinen erkko Joko datagrammierkkona (=Internet) Sanoman jokainen paketti reititetään erikseen kohteen IP-osoitteen perusteella Thmä erkkokerros : ain pakettien älits koneelta koneelle Fiksut isäntäkoneet : irheenalonta, uonalonta, järjests tai irtuaalipiirierkkona Sanoman jokainen paketti kulkee samaa reittiä pitkin linkkiin liitetn irtuaalipiirinumeron perusteella Signallointiprotokolla: htedenmuodostus, lläpito, purku hteden tietoja reitittimessä (irtuaalipiirin muunnostaulukko) mahd. mös kaistaarausta Fiksu erkkokerros: uonalonta, irhealonta, järjests thmät isäntäkoneet: rt. Puhelin ATM-erkot (Asnchronous Transfer Mode), X.-erkot Tietoliikenteen perusteet /008/ Liisa Marttinen 9 Kone Verkko b Kone Reitits: datagrammierkko Verkko a R Verkko c Reititstaulu Osoite: portti erkko a : erkko b : erkko c : muut : Verkko d Tietoliikenteen perusteet /008/ Liisa Marttinen 0 R R R Tietää, mihin suuntaan paketti on älitettää = missä suunnassa mikin erkko on. Ei etukäteistietoa isäntäkoneiden hteksistä Reitits: Virtuaalipiirierkko. paketti muodostaa reitin, muut paketit kulkeat samaa reittiä otsakkeessa kohdeosoitteen lisäksi irtuaalipiirinumero pnro reititin lläpitää tietoa piirinumeroista ( hajujälki ) Reitits = selitä pnro:a astaaa linkki, älitä paketti linkille linkistä, pnro 97 linkistä, prno R linkkiin, pnro 6 linkkiin, pnro 4 R Virtuaalipiirin muunnostaulukko Sisään: linkki / pnro Ulos: pnro / linkki 4 97 6 4 0 0 78 6 Taulukkoa päiitettää aina kun uusi htes on muodostettu tai anha purettu! Pakettiälitstä: Ylläpitää kllä tilatietoja htedestä (=pnro), mutta ei araa resursseja etukäteen! Tietoliikenteen perusteet /008/ Liisa Marttinen Tietoliikenteen perusteet /008/ Liisa Marttinen
Virtuaalipiirin muunnostaulukko Virtuaalihteden joka linkillä omat VP-numerot reititin antaa VP-numerot Miksi ei kätetä koko htedellä samaa VP-numeroa? Tarittaisiin paljon enemmän numeroita! Nt riittää pienempi numeroaaruus => taritaan pienempi kenttä numeroa arten 0- => riittää 8 bittiä 0-409 => taritaan bittiä Yhteisestä, koko erkon läpikäästä numeroinnista sopiminen on isossa erkossa lähes mahdoton tehtää! Verkkokerros Reititin Ch. 4. reititin Tietoliikenteen perusteet /008/ Liisa Marttinen Tietoliikenteen perusteet /008/ Liisa Marttinen 4 Verkkokerros ~ reitittäminen Reititin (router) Osaa muunnokset siihen ktkettjen teknologioiden älillä Sisääntulolinkki ja ulosmenolinkki oiat ollat eri teknologiaa Välittää erkkokerroksen otsakkeen perusteella (IP-osoite) Laitteistotoimintona tai osin ohjelmallisesti Reitittimen arkkitehtuuri Kaksi tehtäää Välitä paketteja tulolinkeistä ulosmenolinkkeihin Suorita reititsalgoritmia / -protokollaa Portti ~erkkokortti Useita portteja niputettu hteen linjakorteiksi (line card) Ktkin (sitch) Sekä sisääntulolinkki että ulosmenolinkki oat samaa teknologiaa Lähierkon sisällä älits linkkikerroksen otsakkeen perusteella Poikkeuksetta aina laitetason toimintona KuRo08:Fig 4.6 Tietoliikenteen perusteet /008/ Liisa Marttinen Tietoliikenteen perusteet /008/ Liisa Marttinen 6 Fsinen kerros bittitason esits Sisääntuloportti (input port) Linkkikerros: e.g., Ethernet Taoite: paketti ulos sisääntulon nopeudella Jonotus: jos ulosmeno hitaampi kuin sisääntulo tai joku muu siirtää samaan ulostuloon mös HOL (head-of-line blocking) KuRo08: Fig 4.7 Jos linjanopeus. Gbps ja paketin koko 6 taua =>. miljoonaa pakettia sekunnissa! Osoitteen. bitti. bitti. bitti jne 0 0 0 00.. Kun n = (IP-osoite), ei ole tarpeeksi nopea nkisiin runkoreitittimiin! - content addressable memor (CAM) - älimuistin kättö Hajautettu ktkentä Esim. kullakin portilla on kopio reititstaulusta, oi tutkia itse Content Addressable Memor (CAM), assosiatiiinen haku, longest prefi match Tietoliikenteen perusteet /008/ Liisa Marttinen 7 Tietoliikenteen perusteet /008/ Liisa Marttinen 8
Ulosmenoportti (output port) Kolme erilaista ktkentätapaa: KuRo08: Fig 4.9 Puskuroi, jos paketteja tulee nopeammin kuin ulosmenon siirtonopeus salli Sisääntulo nopeampi tai monesta samaan kohteeseen Voi kättää priorisointia (packet scheduling) FCFS (First Come First Sericed), WFQ (Weighted Fair Queuieng),... QoS (Qualit of Serice) (ei käsitellä tällä kurssilla!) Suorittaa linkki- ja fsisen kerroksen operaatiot KuRo08: Fig. 4.8 Tietoliikenteen perusteet /008/ Liisa Marttinen 9 Tietoliikenteen perusteet /008/ Liisa Marttinen 0 Ktkentä muistin kautta Ktkentä älän kautta Taallinen tietokone reitittimenä Sisääntulo: keskets, CPU kopioi paketin muistiin, tutkii minne on menossa Ulosmeno: CPU kopioi paketin muistista Välä pullonkaula: kopiointia per paketti Linkkikerros ja fsinen kerros laitetoimintoja Jonot keskusmuistissa Sisääntulo siirtää paketin älän kautta suoraan ulosmenoporttiin Vain ksi ktkentä aktiiinen kerrallaan Välä edelleen pullonkaula Välänopeus rajoittaa ktkentänopeutta Gbps nopeudet, riittää LAN- ja ritserkoilla Tietoliikenteen perusteet /008/ Liisa Marttinen Tietoliikenteen perusteet /008/ Liisa Marttinen Ktkentä ktkentäerkon kautta Reititsprosessori Ristiktkentä (crossbar sitch) *N älää hdistää N sisääntloa ja N ulosmenoa Valitse aaka- ja pstlinja Jos sama ulosmeno/sisääntulo, odotus sisääntuloportissa Sisääntulo oi pilkkoa paketin pienemmiksi soluiksi (cell) ja älittää ksi kerrallaan Ulostulo kokoaa solut taas paketeiksi Suuri siirtonopeus - Esim. Cisco 000: 64 Gbps Suorittaa reititsprotokollaa Reititsinformaation älitstä reitittimeltä toiselle RIP, OSPF, BGP,... Esim. minuutin älein Sisääntulot toimittaat reititsprotokollien paketit prosessorille Ylläpitää porttien reititstauluja Kun muuttuu, uusi kopio kullekin portille Hallinta- ja lläpitotoimintoja Reitittimelläkin oi olla suoritettaana soelluksia Tietoliikenteen perusteet /008/ Liisa Marttinen Tietoliikenteen perusteet /008/ Liisa Marttinen 4 4
Pakettien hlkäs N linjaa sisään N linjaa ulos Kun puskuritila ei riitä Hlkää saapua paketti (drop-tail) tai joku muu.. Se kummassa jonossa paketit hlätään, riippuu ktkennän ja linjan nopeuden suhteista RED (Random Earl Detection): hlkää jo ennenkuin puskuri tätt Siirtoirhe Linkkikerros saa hlätä irheellisen Verkkokerros saa hlätä irheellisen (ICMP-protokolla ) Paketin elinaika (Time-to-lie, TTL) Ktkin toimii riittäällä nopeudella, joten sisääntulossa ei taritse jonottaa. Yhdelle linjalle liian paljon liikennettä => ulosmenoportin puskuritila tätt ja paketteja katoaa! Tietoliikenteen perusteet /008/ Liisa Marttinen Tietoliikenteen perusteet /008/ Liisa Marttinen 6 N linjaa sisään N linjaa ulos Verkkokerros IP-protokolla Jos ktkin ei toimi tarpeeksi nopeasti, sisääntuloportteihin snt jonoja. Ch 4.4 Esim. Ristikkäinktkimessä paketti joutuu odottamaan, jos samaan kohteeseen on menossa useita paketteja. Jonottaa paketti oi tukkia tien mös muilta saman portin paketeilta, jotka muuten oisiat edetä ktkimessä. (head-of-the-line-blocking) RFC 79 Tietoliikenteen perusteet /008/ Liisa Marttinen 7 Tietoliikenteen perusteet /008/ Liisa Marttinen 8 Soellusprotokolla Internetin erkkokerros TCP IP LAN X. Tietoliikenteen perusteet /008/ Liisa Marttinen 9 Tietoliikenteen perusteet /008/ Liisa Marttinen 0
Internetin erkkokerros Tällä kurssilla: IP4 ja reititksen periaatteet - Etäissektorireitits - Linkkitilareitits Internet-protokollat kurssilla: IP6, ICMP Reititsprotokollat Reititstaulujen (forarding table) lläpitämistä arten Erillään taallisten pakettien lähetksestä RIP (Routing Information Protocol): etäissektorialgoritmi OSPF (Open Shortest Path First): linkkitila-algoritmi BGP (Border Gatea Protocol): hierarkkinen, autonomisten alueiden älinen algoritmi Tietoliikenteen perusteet /008/ Liisa Marttinen Internetin erkkokerros ICMP (Internet Control Message Protocol) Protokolla, jolla isännät ja reitittimet aihtaat erkkokerroksen kuulumisia Taallaan erkkokerroksen päällä: IP-paketissa kuljetuskerroksen tietojen sijasta ICMP-dataa Virheraportointi: unreachable host/netork/port/protocol Reititin ei tiedä, minne toimittaisi... Kaiutus: echo request / repl tätä ping ja traceroute kättäät RTT:n mittaamisessa IP6 Uudistettu ersio IP-protokollasta, 8 bitin IP-osoite mm. kiinteänkokoinen otsake, ei tarkistussummaa, pakettien paloittelu jo lähettäjän koneessa Tietoliikenteen perusteet /008/ Liisa Marttinen IP-protokolla Verkkokerros siirtää kuljetuskerroksen segmentit lähdekoneelta kohdekoneelle Tehtäässä taritaan Osoitteet (lähettäjä, astaanottaja) Tieto lemmän kerroksen protokollasta (UDP, TCP tai joku muu), jotta osaa antaa oikealle rutiinille Liian ison IP-paketin paloittelu tarittaessa pienemmiksi IPpaketeiksi 'Harhautuneiden' pakettien häittäminen (time-to-lie) Tarkistukset (checksum) Hiä ominaisuuksia (?) Siirtopalelun erittäminen eritppisille soelluksille Lähdereitits (source routing): lähettäjä määrää reitin, paketissa tieto siirtopolusta Tietoliikenteen perusteet /008/ Liisa Marttinen IP-paketin rakenne (IP4) Tietoliikenteen perusteet /008/ Liisa Marttinen 4 IP-otsake Versionumero IP4 ai IP6, kummallakin erilainen otsake Otsakkeen pituus (header length) Vaihtelean pituinen optiokenttä, mininimi on 0 B TOS-kenttä (Tpe of Serice) Varattu halutun palelun kertomiseen: - Nopeus, luotettauus, kapasiteetti; ääni s. tiedosto Yleensä ei ole kätössä (osa kätössä uusissa reitittimissä) IP-paketin pituus (Datagram length) Koko IP-paketin pituus tauina, maksimi 6 B Taallisimmin 76-00 B Paketin tunniste (6-bit identifier), lippuja (flags), palan paikka (fragmentation offset) Paketin pilkkomiseen pienemmiksi ja kokoamiseen takaisin isoksi Tietoliikenteen perusteet /008/ Liisa Marttinen IP-otsake (jatkuu) Elinaika (time-to-lie, TTL) Rajoittaa paketin elinaikaa, maksimi Vähenee joka hpllä reitittimestä toiseen, kun TTL=0, hlätään Kuljetettu protokolla (Upper-laer protocol) Kumpi kuljetuskerroksen protokolla (TCP=6, UDP=7) ai kenties erkkokerroksen sisäistä dataa (ICMP, reititsprotokolla) Otsikon tarkistussumma (Header checksum) Vain otsakkeelle (Internet checksum) Tarkista ja laske uusi joka reitittimessä (TTL, Options) Hlkää irheellinen paketti Osoitteet (Source IP Address, Destination IP Address) Lähteen ja kohteen IP-osoitteet Optiot (Options) Laajennuksia: mm. lähdereitits, haroin kätett Tietoliikenteen perusteet /008/ Liisa Marttinen 6 6
IP-otsakkeen tarkistussumma Miksi tarkistussumma IP-otsakkeelle? A B = 000 000 00 00 0 00 00 00 X = 000 00 00 00 0 00 00 00 lähde A kohde B X. DATAA.. Miksi ain otsakkeelle? TCP:llä ja UDP:llä omat tarkistussummat. Tietoliikenteen perusteet /008/ Liisa Marttinen 7 B X UDP- ja joskus jopa TCP-segmentti oidaan häksä äärässä osoitteessa! IP-pakettien paloittelu (fragmentointi) Maimum transfer Unit (MTU) suurin mahdollinen IP-paketti eri linkeillä eri koko Esim. Ethernet 00 B Liian iso paketti pilkottaa reitittimessä pienemmiksi paketeiksi (fragmenteiksi), jotka kohdekone kokoaa oiat kukin kulkea eri reittiä IP-otsakkeessa kentät hteenkuuluien fragmenttien tunnistamiseksi reassembl fragmentation: in: one large datagram out: smaller datagrams KuRo08: Fig 4.4 Tietoliikenteen perusteet /008/ Liisa Marttinen 8 IP-pakettien fragmentointikentät Paketin tunniste (6-bit identifier) Sama kaikissa IP-paketin fragmenteissa Lippuja (flags) DF-bitti (Don't fragment) kieltää paloittelun, esim. jos astaanottaja ei kkene kokoamaan MF-bitti (More fragments) 0= paketin iimeinen fragmentti, = ei ielä iimeinen Fragmentin sijaintipaikka (-bit Fragmentation Offset) paikka alkuperäisessä IP-paketissa siirtmänä paketin alusta bittiä => 89 eri aroa; Jotta pstisi käsittelemään täsimittaiset segmentit (= ma 6 taua) => siirtmä esitetään 8 taun monikertoina => fragmenttien mös oltaa 8 taun monikertoja (paitsi iimeinen) IP6 ei kätä fragmentointia Tietoliikenteen perusteet /008/ Liisa Marttinen 9 Esimerkki lengthid =4000 = fragflag =0 4000 taun IP-paketti: dataa 980 B MTU 00 B 480 B dataa 0 B IP-otsaketta offset = 480/8 offset =0 Yhdestä IP-paketista tulee pienempää IP-pakettia length =00 length =00 length =040 ID = ID = ID = fragflag = fragflag = fragflag =0 offset =0 offset =8 offset =70 0 480 860. Pala: 480 taua. Pala: 480 taua. Pala: 00 taua Tietoliikenteen perusteet /008/ Liisa Marttinen 40 IP-osoitteet Alierkot bittinen tunniste isäntäkoneille ja reitittimien linkeille - erkkoliittmän tunniste Reitittimellä useita liittmiä - kullakin oma IP-osoite Mös isäntäkone oi olla liitettnä useaan erkkoon ICANN Internet Corporation for Assigned names and Numbers erkkonumerot palelun tarjoajille, nämä edelleen alierkoiksi 0 0000000 0000000 0000000............4...9.........7 KuRo08:Fig 4....... Osoitteen osat alierkon numero (alkuosa) koneen numero (loppuosa) Alierkon koneet oiat kommunikoida ilman reititstä Linkkikerros osaa lähettää koneelta toiselle Esim. Ethernet Alierkkoa merkitään notaatiolla, jossa lopussa on erkko-osan pituus Esim....0 /4 subnet mask............4...9............7 subnet... netork consisting of subnets eli erkko-osoite 4 bittiä ja koneosoite 8 bittiä KuRo08: Fig 4. Tietoliikenteen perusteet /008/ Liisa Marttinen 4 Tietoliikenteen perusteet /008/ Liisa Marttinen 4 7
Alierkot... CIDR: Classless InterDomain Routing Montako alierkkoa on tässä kuassa? Yleislähetsosoite... Paketti kaikille alierkon koneille. Mahdollisesti reitittimen kautta muillekin.....9.......6..9...8.........7.0..8.0......4..7....7... Verkko-osa oi olla minkä tahansa kokoinen Vanha luokallinen osoite: A-luokka 8 b, B-luokka 6 b,c-luokka 4 b Formaatti: a.b.c.d/ ilmoittaa erkko-osan bittien lukumäärän (prefi) Esim. Organisaatio, jolla 000 konetta araa 048 = ^ konenumeroa, jolloin erkko-osaa arten jää bittiä Yrits oi ielä itse jakaa iimeiset bittiä alierkko-osoitteeksi ja koneosoitteeksi. Tämä jako ei nä ulkopuolelle. Verkko Kone (prefi) 00000 0000 0000000 00000000 00..6.0/ alierkko Tietoliikenteen perusteet /008/ Liisa Marttinen 4 Tietoliikenteen perusteet /008/ Liisa Marttinen 44 Koneen IP-osoite Paleluntarjoaja saa erkkonumeronsa ICANN:lta isona lohkona oi jakaa saamansa osoiteaaruuden (osoitelohkon) edelleen alierkkoihin esim. Kukin organisaatio saa alierkon, jossa on numerot koneelle ISP's block 00000 0000 0000000 00000000 00..6.0/0 Organiation 0 00000 0000 0000000 00000000 00..6.0/ Organiation 00000 0000 000000 00000000 00..8.0/ Organiation 00000 0000 000000 00000000 00..0.0/....... Organiation 7 00000 0000 0000 00000000 00..0.0/ Tietoliikenteen perusteet /008/ Liisa Marttinen 4 Hierarkkinen osoite CIDR luo reititstä helpottaan hierarkian Aggregointi (hdistäminen): hteinen alkuosa => samaan suuntaan Organiation 0 00..6.0/ Organiation 00..8.0/ Organiation 00..0.0/ Organiation 7. 00..0.0/ KuRo08: Fig 4.9. Fl-B-Night-ISP ISPs-R-Us Send me anthing ith addresses beginning 00..6.0/0 Send me anthing ith addresses beginning 99..0.0/6 Internet Tietoliikenteen perusteet /008/ Liisa Marttinen 46 Jos paleluntarjoaja (ISP) aihtuu? IP-osoitteet oi säilttää Uudelta ISP:ltä tarkempi reititsohje Pisin sopia alkuosa määrää reititksen (longest prefi match) Organiation 0 00..6.0/ Organiation 00..0.0/ Organiation 7. 00..0.0/ Organiation 00..8.0/. Fl-B-Night-ISP ISPs-R-Us Send me anthing ith addresses beginning 00..6.0/0 KuRo08: Fig 4.9 Internet Send me anthing ith addresses beginning 99..0.0/6 or 00..8.0/ Tietoliikenteen perusteet /008/ Liisa Marttinen 47 Koneen IP-osoite Koneen IP-osoite konfiguroidaan (usein) käsin koneelle Tai hä useammin saadaan automaattiseti kättäen DHCP:tä (Dnamic Host Configuration Protocol) Eri osoite eri kerroilla tai psämpi osoite DHCP-palelija astaa antaa koneen kättöön IP-osoitteen (rajallinen elinaika) antaa DNS-tiedot ms Palelun tarjoaja: pienempi numeromäärä riittää WLAN ash-and-go, plug-and-pla Tietoliikenteen perusteet /008/ Liisa Marttinen 48 8
NAT: Netork Address Translation NAT-reititin rest of Internet 8.76.9.7 local netork (e.g., kotierkko) 0.0.0/4 0.0.0.4 0.0.0. Ulosmeneät paketit Koraa lähdekoneen IP-osoite ja porttinumero NAT-koneen IPosoitteella ja NAT-koneen alitsemalla porttinumerolla Päiitä NAT-muunnostaulu 0.0.0. Sisääntuleat paketit 0.0.0. NAT-koneelle NAT:n antamaan porttiin Koraa NAT:n muunnostaulun aulla paketissa olea IP-osoite ja Kaikilla ulosmeneillä ja sisääntuleilla paketeilla sama IP-osoite 8.76.9.7 mutta eri porttinumeroita. Kotierkossa kätössä sisäiset IP-osoitteet 0.0.0/4 (esim. DHCP:llä) portti Välitä paketti perille NAT-muunnostaulu (IP-osoite, portti) (NAT-koneen osoite, NAT:n portti) Tietoliikenteen perusteet /008/ Liisa Marttinen 49 Tietoliikenteen perusteet /008/ Liisa Marttinen 0 : NAT aihtaa lähdeosoitteksi 8.76.9.7, ja portiksi 00, päiittää taulun NAT: Esimerkki NAT-muunnostaulu WAN-osoite LAN-osoite 8.76.9.7, 0.0.0., 00 4 S: 8.76.9.7, 00 D: 8.9.40.86, 80 8.76.9.7 S: 8.9.40.86, 80 D: 8.76.9.7, 00 : Vastaus NAT-koneelle: 8.76.9.7, 00 S: 0.0.0., 4 D: 8.9.40.86, 80 0.0.0.4 S: 8.9.40.86, 80 D: 0.0.0., 4 4: NAT aihtaa kohdeosoitteeksi 0.0.0. ja portiksi 4 : kone 0.0.0. lähettää paketin 8.9.40.86, 80 0.0.0. 0.0.0. 0.0.0. Tietoliikenteen perusteet /008/ Liisa Marttinen 4 NAT: Kommentteja / kritiikkiä Hödt Kotierkko taritsee ISP:ltä ain hden IP-osoitteen Voi muutella apaasti kotikoneiden IP-osoitteita Turallisuus: ulospäin muille näk ain ksi kone Kritiikkiä Reitittimien tulisi toimia ain erkkotasolla, porttinumerot oat kuljetuskerroksen asioita Rikkoo päästä-päähän idean (prosessien älinen htes) Onko ohjelmoijaan huomioitaa NAT:n olemassaolo? - Peer-to-peer - NAT:n takana olea palelin (esim. portissa 80)? Pula IP-osoitteista hoidettaa ottamalla kättöön IP6, jossa 8 bitin osoitteet Tietoliikenteen perusteet /008/ Liisa Marttinen Verkkokerros Reititsalgoritmi Etsii edullisimmat reitit lähdekoneelta kohdekoneille Kätetään reititstaulun muodostamiseen - Mille linkille paketti seuraaaksi siirretään tältä reitittimeltä Reititsalgoritmit Reititsalgoritmi, joka taritsee tädellisen tiedon erkosta Ennen laskentaa kätössä koko kua erkosta: - Kaikki linkkihtedet solmujen älillä ja niiden kustannukset - Kätännössä ain tietstä autonomisesta alueesta Parhaat reitit lasketaan joko keskitetsti tai hajautetusti Linkkitila-algoritmi (link-state algorithm) Reititsalgoritmi, jolle riittää epätädellinen kua erkosta Aluksi reititin tietää ain niistä koneista, joihin itse on hdistett Iteratiiinen algoritmi: reititin aihtaa tietoja naapuriensa kanssa ja saa tietoa muusta erkosta Etäissektorialgoritmi (distance ector algorithm) Tietoliikenteen perusteet /008/ Liisa Marttinen Tietoliikenteen perusteet /008/ Liisa Marttinen 4 9
Reititsalgoritmin muita ominaisuuksia Dnaaminen s. staattinen Miten nopeasti huomaa linkkien muutokset ja muuttaa reititstä Miten tiuhaan tietoja päiitetään Miten usein muutoksia Kuormituksen huomioia s. ei Linkin ruuhkautuneisuus oi aikuttaa sen kustannukseen Nkalgoritmit eiät ota kuormitusta huomioon - Tosin kllä epäsuorasti linkin hitautena ('kustannuksena') Verkko graafina (graph) Verkko G= (N,E) N = solmujen (nodes) joukko E = linkkien (edges) joukko (,) on linkki solmujen ja u älillä c(,) = linkin kustannus kaistanlees, ruuhkaisuus, raha,.. C(,X,..., X p ) = reitin (route) kustannus = C(, ) + C(, ) +... + ( p-, p ) KuRo08; Fig. 4.7 Mikä on huokein reitti kuan solmusta u solmuun? Tietoliikenteen perusteet /008/ Liisa Marttinen Tietoliikenteen perusteet /008/ Liisa Marttinen 6 ) Linkkitila: Dijkstran algoritmi Aluksi kaikilla reitittimillä on tiedossa erkon rakenne ja kaikkien linkkien kustannukset Kaikki reitittimet lähettäät tietonsa naapureistaan ja linkkikustannuksista naapureihin (mitatut /haaitut) joko kaikille muille tai jollekin keskussolmulle, joka älittää tiedon muille Reititin laskee Dijkstran algoritmilla edullisimman kustannuksen kaikkiin muihin kohteisiin Kokoaa näistä oman reititstaulunsa Merkinnät C(,) linkin, kustannus; jos eiät naapureita = D() toistaiseksi edullisin kustannus solmuun p() solmun edeltäjä reitillä N = solmujen joukko, N' = jo käsiteltjen solmujen joukko Dijkstran algoritmi Initialiation: N' = {u} for all nodes 4 if adjacent to u then D() = c(u,) 6 else D() = 7 8 Loop D()=, D() =, D()= D() =, D()= 9 find not in N' such that D() is a minimum 0 add to N' update D() for all adjacent to and not in N' : D() = min( D(), D() + c(,) ) /* ne is either old or knon 4 shortest path plus cost to */ until all nodes in N' u Tietoliikenteen perusteet /008/ Liisa Marttinen 7 Tietoliikenteen perusteet /008/ Liisa Marttinen 8 Dijkstran algoritmi Dijkstran algoritmi D()=, D()=, D()=4, D() =, D()= D()=, D()=, D()=, D() =, D()=4 u 8 Loop 9 find not in N' such that D() is a minimum 0 add to N' update D() for all adjacent to and not in N' : D() = min( D(), D() + c(,) ) /* ne is either old or knon 4 shortest path plus cost to */ until all nodes in N' D()=, D()=, D()=4, D() =, D()= D()=, D() =,D()=, D()=, D()=4 D()=, D() =,D()=, D()=, D()=4 u 8 Loop 9 find not in N' such that D() is a minimum 0 add to N' update D() for all adjacent to and not in N' : D() = min( D(), D() + c(,) ) /* ne is either old or knon 4 shortest path plus cost to */ until all nodes in N' Tietoliikenteen perusteet /008/ Liisa Marttinen 9 Tietoliikenteen perusteet /008/ Liisa Marttinen 60 0
Dijkstran algoritmi 4 Dijkstran algoritmi 4 D()=, D()=, D()=4, D() =, D()= D()=, D() =, D()=, D()=, D()=4 D()=, D() =, D()=, D()=, D()=4 D()=, D() =, D()=, D()=, D()=4 u 8 Loop 9 find not in N' such that D() is a minimum 0 add to N' update D() for all adjacent to and not in N' : D() = min( D(), D() + c(,) ) /* ne is either old or knon 4 shortest path plus cost to */ until all nodes in N' D()=, D() =, D()=, D()=, D()=4 u D()=, D() =, D()=, D()=, D()=4 8 Loop 9 find not in N' such that D() is a minimum 0 add to N' update D() for all adjacent to and not in N' : D() = min( D(), D() + c(,) ) /* ne is either old or knon 4 shortest path plus cost to */ until all nodes in N' Tietoliikenteen perusteet /008/ Liisa Marttinen 6 Tietoliikenteen perusteet /008/ Liisa Marttinen 6 Lhimmät reitit ja reititstaulukko ) Etäissektorireitits (distance ector) Resulting shortest-path tree u: KuRo08: Fig. 4.8 Arpanet-erkon alkuperäinen reititsalgoritmi Kätössä useissa Internetin reititsprotokollissa RIP, BGP, Noell IPX, ISO IDRP u Resulting forarding table in u: destination link (u,) (u,) (u,) (u,) (u,) Interaktiiinen, hajautettu ja askroninen Tiedot tarkentuat asteittain, iteratiiisesti Tietin äliajoin, linkin tilan aihtuessa, naapurin tietojen muuttuessa,.. Kukin solmu laskee itsenäisesti, mutta saa tietoa naapureiltaan Tietää / arioi kustannuksen omiin naapureihinsa Kuulee naapureiden kustannukset muihin kohdesolmuihin, jotka nämä puolestaan oat kuulleet omilta naapureiltaan Valitsee kullekin kohdesolmulle kuulemansa edullisimman reitin Tietoliikenteen perusteet /008/ Liisa Marttinen 6 Tietoliikenteen perusteet /008/ Liisa Marttinen 64 Etäissektorireitits (jatkuu) Kullakin reitittimellä etäissektori sen tuntemiin solmuihin Reititstaulu, jossa kullekin kohteelle ulosmenolinkki ja kustannus (etäiss) - Aika /etäiss kohteeseen, hppjen lukumäärä, arioitu iie,.. Reititin tietää /mittaa kustannuksen omiin naapureihinsa Jos muutoksia, lähettää etäissektorinsa naapureilleen Kun saa naapurinsa etäissektorin, päiittää oman etäissektorinsa Tietoja uusista solmuista => lisää taulukkoon uudet kohteet Tietoja jo tunnetuista solmuista: alitse kustanuksiltaan edullisin reitti Merkinnät Etäissektorireitits c(,) kustannus solmusta naapuriin, D a (B) = jos ei ole :n naapuri, c(,) = D (B) = + = D () edullisimman :stä :hn johtaan reitin kustannus Kukin solmu lläpitää omaa etäissektoria kaikkiin tuntemiinsa kohteisiin D = [D (): N] edullisin tiedett kustannus solmusta kuhunkin solmuun Sekä saa naapureiltaan niiden etäissektorit D () =[D (): N] = Naapurin tiedot edullisimmista kustannuksista kuhunkin solmuun D () = min {c(,) + D ()} (Bellman-Ford) Kustannus solmusta naapurisolmuun ja sieltä solmuun Reittejä useita (eri naapureiden kautta); alitaan edullisin eli pienin kustannus A X B c(,a) = c(,b) = Tietoliikenteen perusteet /008/ Liisa Marttinen 6 Tietoliikenteen perusteet /008/ Liisa Marttinen 66
u Kohde Z Esimerkki kust. linkki 4 X:ään Jos on jo saatu selille, että D () =, D () =, D () = D u () = min { c(u,) + d (), c(u,) + d (), c(u,) + d () } = min { +, +, + } = 4 Kun paketti on matkalla solmusta u solmuun, se tulee seuraaaksi lähettää solmuun, joka tuotti tuon minimin => talleta tieto omaan etäissektoriin (= reititstauluun) ESIMERKKI. Alussa kukin solmu tuntee ain etäisdet naapureihinsa itsensä kautta: Node table Node table Node table 0 7 0 Sitten solmut lähettäät omat reittinsä toisilleen ja laskeat uudet parhaat reitit. Esimerkiksi solmu : 0 0 7 0 7 0 D () = min{c(,) + D (), c(,) + D ()} = min{+0, 7+} = D () =min{c(,) + D (), c(,) + D ()} = min{+, 7+0} = 7 Tietoliikenteen perusteet /008/ Liisa Marttinen 67 Tietoliikenteen perusteet /008/ Liisa Marttinen 68 : Esimerkki jatkuu: Samalla taalla toimiat solmut ja : 0 7 0 7 0 : 0 7 0 0 Solmut lähettäät taas tietonsa toisilleen ja laskeat uudet uudet lhimmät reitit. X: Y: Z: 0 0 0 0 0 0 0 0 0 Tietoliikenteen perusteet /008/ Liisa Marttinen 69 7 node table 0 7 node table 0 node table D () = min{c(,) + D (), c(,) + D ()} = min{+0, 7+} = 7 0 0 0 7 0 0 7 0 7 0 0 7 0 0 Tietoliikenteen perusteet /008/ Liisa Marttinen 70 D () = min{c(,) + D (), c(,) + D ()} = min{+, 7+0} = 0 0 0 0 0 0 0 0 0 7 Hä uutinen etenee nopeasti A B C D E Huono uutinen etenee hitaasti! A B C D E Aluksi htes A:han on poikki ja sitten linkki AB toimii taas Tieto etenee joka aihdossa 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 ääretön 4 Linkki AB katkeaa => etäiss äärettömäksi Joka aihdossa 'paras ario' huononee ain hdellä = reititssilmukka Count-to-infinit - ongelma D B (A) D c (A) D D (A) D E (A) ääretön 4 4 4 4 4 4 6 6 7 6 7 6 7 8 7 8 jne Etäiss A:han Tietoliikenteen perusteet /008/ Liisa Marttinen 7 Tietoliikenteen perusteet /008/ Liisa Marttinen 7
Huono uutinen etenee nopeasti: poisoned reerse 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 aihdossa hden linkin li Etäiss A:han D B (A) D c (A) D D (A) D E (A) 4 4 4 A Ratkaisu ei toimi aina! 4 (etäiss) D C 4 B Linkki CD katkeaa, A ja B ilmoittaat C:lle, ettei D:hen pääse (kätössä poisonous reerse eli etäiss ääretön ) C päättelee (oikein), että D:tä ei oi saauttaa 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 := ja tämä reitti ei kulje C:n kautta! => kerrotaan C:lle. C kertoo B:lle,... Tietoliikenteen perusteet /008/ Liisa Marttinen 7 Tietoliikenteen perusteet /008/ Liisa Marttinen 74 ) Hierarkkinen reitits Reititksen skaalautuus? Isossa erkossa runsaasti reitittimiä - Kaikki eiät oi tuntea kaikkia muita - Reititstaulut suuria, reittien laskeminen raskasta - Reititstietojen aihtaminen kuluttaa linjakapasiittia Autonomiset järjestelmät AS (Autonomous Sstems) Internet ~ erkkojen erkko Intra-AS routing Kukin erkko päättää itse sisäisestä reititksestään RIP, OSPF Inter-As routing AS:t ilmoitteleat toisilleen, mihin muihin AS:iin niistä pääsee BGP (Border Gatea Protocol) Hierarkkinen reitits Yhdskätää (gatea router) Soittu, mikä reititin keskustelee naapurierkon (-erkkojen) kanssa ulkoatulea/ ulosmeneä paketti reititt hdskätäään AS:n sisäinen reitits huolehtii paketin AS:n koneelle tai AS:n läpi toiselle AS:lle KuRo08: Fig 4. c a b AS a c d b AS c a b AS Tietoliikenteen perusteet /008/ Liisa Marttinen 7 Tietoliikenteen perusteet /008/ Liisa Marttinen 76 Kertausksmksiä Keskeisimmät IP-osakkeen tiedot? Paketin paloittelu Millainen on IP-osoite? Reitittimen arkkitehtuuri? Longest prefi match? CIDR NAT:n toiminta Miten reititin saa reititstiedot? Linkkitila-algoritmi, Dijkstran algoritmi Etäissektorialgoritmi, count-to-infinit-ongelma ks. kurssikirja s. 47 Tietoliikenteen perusteet /008/ Liisa Marttinen 77