Tietoliikenteen perusteet Verkkokerros Kurose, Ross: Ch 4.- 4.4 ja 4.5 Tietoliikenteen perusteet /008/ Liisa Marttinen Sisältöä Verkkokerros Reititin IP-protokolla Reititsalgoritmit Oppimistavoitteet: - Osata selittää, kuinka IP-paketteja välitetään verkossa - Tietää, mitä tietoja sisält IP-pakettiin (ja miksi) - Osata selittää reitittimien rakenne ja toiminta - Osata kuvailla, kuinka reitittimet kokoavat reititstietonsa = linkkitila- ja etäissvektorialgoritmien toimintaideat Tietoliikenteen perusteet /008/ Liisa Marttinen
Verkkokerros Verkkokerroksen tehtävät Tietoliikenteen perusteet /008/ Liisa Marttinen 3 Verkkokerros Toimittaa kuljetuskerroksen segmentit vastaanottajalle Lähets - Luo segmenteistä verkkokerroksen IP-paketteja - Lisää otsaketietoja: mm. IP-osoitteet Pakettien kulku verkossa - Isäntä (lähde) reititin -...- reititin isäntä (kohde) Vastaanotto - Poista otsake - Anna segmentti kuljetuskerrokselle Toimii etenkin reititksessä Reititin tutkii IP-paketin otsakkeen ja päättää, mihin linkkiin se lähetetään seuraavaksi application transport network data link phsical KuRo08: Fig 4. network data link phsical network data link phsical network data link phsical network data link phsical network data link phsical network data link phsical network data link phsical network data link phsical application transport network data link phsical Tietoliikenteen perusteet /008/ Liisa Marttinen 4
Reititin q Ohjaa paketin reitittimen sisääntulolinkistä johonkin ulosmenolinkkiin (forwarding) u Katsoo reititstaulusta minne q Kertoo muille reitittimille reitittämiseen liittviä tietoja (routing) u Reittien selvittäminen u Reititstaulun lläpito u Oma protokolla tätä varten (reititsalgoritmi, reititsprotokolla) u Käsin konfigurointi on hankalaa qpiiriktkentäisessä verkossa mös htedenmuodostus ja purku routing algorithm local forwarding table header value output link 000 00 0 00 3 value in arriving packet s header Tietoliikenteen perusteet /008/ Liisa Marttinen 5 0 3 KuRo05: Fig 4. Miksi verkkokerros? Internet koostuu hvin heterogeenisista verkoista Verkot toteutettu eri teknologialla Verkoilla kehksen (frame) maksimikoko erilainen Palvelu: htedellinen / htedetön, Erilaisia osoittamistapoja: ksitasoinen/hierarkkinen Monilähets / leislähets Toiminnot: virheenkäsittel, vuonvalvonta, ruuhkanvalvonta, hteden laatu / laatutakuu (QoS), turvaus, laskutus,.. Verkkoprotokolla IP (Internet Protocol) on verkkokerroksen hteinen kieli Internetin isäntäkoneiden ja reitittimien kommunikointitapa - Kullakin omat murteensa ja tapansa, mutta kaikki osaavat IP:tä. Yhteinen osoitustapa: IP-osoite Yksikäsitteiset osoitteet Tietoliikenteen perusteet /008/ Liisa Marttinen 6 3
Verkon palvelun laatu Network Service Bandwidth No-loss Congestion Archtecture Model Guarantee Guarantee Ordering Timing Indication Internet Best none none an order not none Effort possible maintained ATM CBR guaranteed es in order maintained congestion constant will not occur ATM ABR guaranteed none in order not congestion minimum maintained indication provided KuRo08:Table 4. Tietoliikenteen perusteet /008/ Liisa Marttinen 7 Verkkojen taksonomia Teleliikenneverkot Piiriktkentäinen Pakettiktkentäinen FDM TDM Datagrammiverkko Virtuaalipiiriverkko Tietoliikenteen perusteet /008/ Liisa Marttinen 8 4
Pakettiktkentäinen verkko Joko datagrammiverkkona (= Internet) Sanoman jokainen paketti reititetään erikseen kohteen IP-osoitteen perusteella Thmä verkkokerros : vain pakettien välits koneelta koneelle Fiksut isäntäkoneet : virheenvalvonta, vuonvalvonta, järjests tai virtuaalipiiriverkkona Sanoman jokainen paketti kulkee samaa reittiä pitkin linkkiin liitetn virtuaalipiirinumeron perusteella Signallointiprotokolla: htedenmuodostus, lläpito, purku hteden tietoja reitittimessä (virtuaalipiirin muunnostaulukko) mahd. mös kaistavarausta Fiksu verkkokerros: vuonvalvonta, virhevalvonta, järjests thmät isäntäkoneet: vrt. Puhelin ATM-verkot (Asnchronous Transfer Mode), X.5-verkot Tietoliikenteen perusteet /008/ Liisa Marttinen 9 Reitits: datagrammiverkko Verkko a R Kone Verkko b Kone 3R Verkko c Reititstaulu Osoite: portti verkko a : verkko b : 3 verkko c : muut : R Verkko d R Tietää, mihin suuntaan paketti on välitettävä = missä suunnassa mikin verkko on. Ei etukäteistietoa isäntäkoneiden hteksistä Tietoliikenteen perusteet /008/ Liisa Marttinen 0 5
Reitits: Virtuaalipiiriverkko. paketti muodostaa reitin, muut paketit kulkevat samaa reittiä otsakkeessa kohdeosoitteen lisäksi virtuaalipiirinumero vpnro reititin lläpitää tietoa piirinumeroista ( hajujälki ) Reitits = selvitä vpnro:a vastaava linkki, välitä paketti linkille linkistä, vpnro 97 linkistä, vprno 3 R linkkiin, vpnro 56 R linkkiin 3, vpnro 34 Tietoliikenteen perusteet /008/ Liisa Marttinen Virtuaalipiirin muunnostaulukko Sisään: linkki / vpnro Ulos: vpnro / linkki 34 3 97 56 4 0 3 0 78 3 65 Taulukkoa päivitettävä aina kun uusi htes on muodostettu tai vanha purettu! Pakettivälitstä: Ylläpitää kllä tilatietoja htedestä (=vpnro), mutta ei varaa resursseja etukäteen! Tietoliikenteen perusteet /008/ Liisa Marttinen 6
Virtuaalipiirin muunnostaulukko Virtuaalihteden joka linkillä omat VP-numerot reititin antaa VP-numerot Miksi ei kätetä koko htedellä samaa VP-numeroa? Tarvittaisiin paljon enemmän numeroita! Nt riittää pienempi numeroavaruus => tarvitaan pienempi kenttä numeroa varten 0-55 => riittää 8 bittiä 0-4095 => tarvitaan bittiä Yhteisestä, koko verkon läpikävästä numeroinnista sopiminen on isossa verkossa lähes mahdoton tehtävä! Tietoliikenteen perusteet /008/ Liisa Marttinen 3 Verkkokerros Reititin reititin Ch. 4.3 Tietoliikenteen perusteet /008/ Liisa Marttinen 4 7
Verkkokerros ~ reitittäminen Reititin (router) Osaa muunnokset siihen ktkettjen teknologioiden välillä Sisääntulolinkki ja ulosmenolinkki voivat ollat eri teknologiaa Välittää verkkokerroksen otsakkeen perusteella (IP-osoite) Laitteistotoimintona tai osin ohjelmallisesti Ktkin (switch) Sekä sisääntulolinkki että ulosmenolinkki ovat samaa teknologiaa Lähiverkon sisällä välits linkkikerroksen otsakkeen perusteella Poikkeuksetta aina laitetason toimintona Tietoliikenteen perusteet /008/ Liisa Marttinen 5 Reitittimen arkkitehtuuri Kaksi tehtävää Välitä paketteja tulolinkeistä ulosmenolinkkeihin Suorita reititsalgoritmia / -protokollaa Portti ~verkkokortti Useita portteja niputettu hteen linjakorteiksi (line card) KuRo08:Fig 4.6 Tietoliikenteen perusteet /008/ Liisa Marttinen 6 8
Fsinen kerros bittitason esits Sisääntuloportti (input port) KuRo08: Fig 4.7 Linkkikerros: e.g., Ethernet Tavoite: 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) Jos linjanopeus.5 Gbps ja paketin koko 56 tavua =>. miljoonaa pakettia sekunnissa! Tietoliikenteen perusteet /008/ Liisa Marttinen 7 Osoitteen. bitti. bitti 3. bitti 0 0 0 00.. jne Kun n = 3 (IP-osoite), ei ole tarpeeksi nopea nkisiin runkoreitittimiin! - content addressable memor (CAM) - välimuistin kättö Hajautettu ktkentä Esim. kullakin portilla on kopio reititstaulusta, voi tutkia itse Content Addressable Memor (CAM), assosiatiivinen haku, longest prefi match Tietoliikenteen perusteet /008/ Liisa Marttinen 8 9
Ulosmenoportti (output port) 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 Serviced), WFQ (Weighted Fair Queuieng),... QoS (Qualit of Service) (ei käsitellä tällä kurssilla!) Suorittaa linkki- ja fsisen kerroksen operaatiot Tietoliikenteen perusteet /008/ Liisa Marttinen 9 Kolme erilaista ktkentätapaa: KuRo08: Fig. 4.8 Tietoliikenteen perusteet /008/ Liisa Marttinen 0 0
Ktkentä muistin kautta Tavallinen 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 Tietoliikenteen perusteet /008/ Liisa Marttinen Ktkentä välän kautta Sisääntulo siirtää paketin välän kautta suoraan ulosmenoporttiin Vain ksi ktkentä aktiivinen kerrallaan Välä edelleen pullonkaula Välänopeus rajoittaa ktkentänopeutta Gbps nopeudet, riittävä LAN- ja ritsverkoilla Tietoliikenteen perusteet /008/ Liisa Marttinen
Ktkentä ktkentäverkon kautta Ristiktkentä (crossbar switch) *N välää hdistää N sisääntloa ja N ulosmenoa Valitse vaaka- ja pstlinja Jos sama ulosmeno/sisääntulo, odotus sisääntuloportissa Sisääntulo voi pilkkoa paketin pienemmiksi soluiksi (cell) ja välittää ksi kerrallaan Ulostulo kokoaa solut taas paketeiksi Suuri siirtonopeus - Esim. Cisco 000: 64 Gbps Tietoliikenteen perusteet /008/ Liisa Marttinen 3 Reititsprosessori Suorittaa reititsprotokollaa Reititsinformaation välitstä reitittimeltä toiselle RIP, OSPF, BGP,... Esim. 5 minuutin välein Sisääntulot toimittavat reititsprotokollien paketit prosessorille Ylläpitää porttien reititstauluja Kun muuttuu, uusi kopio kullekin portille Hallinta- ja lläpitotoimintoja Reitittimelläkin voi olla suoritettavana sovelluksia Tietoliikenteen perusteet /008/ Liisa Marttinen 4
Pakettien hlkäs Kun puskuritila ei riitä Hlkää saapuva 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 Siirtovirhe Linkkikerros saa hlätä virheellisen Verkkokerros saa hlätä virheellisen (ICMP-protokolla ) Paketin elinaika (Time-to-live, TTL) Tietoliikenteen perusteet /008/ Liisa Marttinen 5 N linjaa sisään N linjaa ulos Ktkin toimii riittävällä nopeudella, joten sisääntulossa ei tarvitse jonottaa. Yhdelle linjalle liian paljon liikennettä => ulosmenoportin puskuritila tätt ja paketteja katoaa! Tietoliikenteen perusteet /008/ Liisa Marttinen 6 3
N linjaa sisään N linjaa ulos Jos ktkin ei toimi tarpeeksi nopeasti, sisääntuloportteihin snt jonoja. Esim. Ristikkäinktkimessä paketti joutuu odottamaan, jos samaan kohteeseen on menossa useita paketteja. Jonottava paketti voi tukkia tien mös muilta saman portin paketeilta, jotka muuten voisivat edetä ktkimessä. (head-of-the-line-blocking) Tietoliikenteen perusteet /008/ Liisa Marttinen 7 Verkkokerros IP-protokolla Ch 4.4 RFC 79 Tietoliikenteen perusteet /008/ Liisa Marttinen 8 4
Sovellusprotokolla TCP IP LAN X.5 Tietoliikenteen perusteet /008/ Liisa Marttinen 9 Internetin verkkokerros Tietoliikenteen perusteet /008/ Liisa Marttinen 30 5
Internetin verkkokerros Tällä kurssilla: IPv4 ja reititksen periaatteet - Etäissvektorireitits - Linkkitilareitits Internet-protokollat kurssilla: IPv6, ICMP Reititsprotokollat Reititstaulujen (forwarding table) lläpitämistä varten Erillään tavallisten pakettien lähetksestä RIP (Routing Information Protocol): etäissvektorialgoritmi OSPF (Open Shortest Path First): linkkitila-algoritmi BGP (Border Gatewa Protocol): hierarkkinen, autonomisten alueiden välinen algoritmi Tietoliikenteen perusteet /008/ Liisa Marttinen 3 Internetin verkkokerros ICMP (Internet Control Message Protocol) Protokolla, jolla isännät ja reitittimet vaihtavat verkkokerroksen kuulumisia Tavallaan verkkokerroksen päällä: IP-paketissa kuljetuskerroksen tietojen sijasta ICMP-dataa Virheraportointi: unreachable host/network/port/protocol Reititin ei tiedä, minne toimittaisi... Kaiutus: echo request / repl tätä ping ja traceroute kättävät RTT:n mittaamisessa IPv6 Uudistettu versio 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 3 6
IP-protokolla Verkkokerros siirtää kuljetuskerroksen segmentit lähdekoneelta kohdekoneelle Tehtävässä tarvitaan Osoitteet (lähettäjä, vastaanottaja) Tieto lemmän kerroksen protokollasta (UDP, TCP tai joku muu), jotta osaa antaa oikealle rutiinille Liian ison IP-paketin paloittelu tarvittaessa pienemmiksi IPpaketeiksi 'Harhautuneiden' pakettien hävittäminen (time-to-live) Tarkistukset (checksum) Hviä ominaisuuksia (?) Siirtopalvelun erittäminen eritppisille sovelluksille Lähdereitits (source routing): lähettäjä määrää reitin, paketissa tieto siirtopolusta Tietoliikenteen perusteet /008/ Liisa Marttinen 33 IP-paketin rakenne (IPv4) Tietoliikenteen perusteet /008/ Liisa Marttinen 34 7
IP-otsake Versionumero IPv4 vai IPv6, kummallakin erilainen otsake Otsakkeen pituus (header length) Vaihtelevan pituinen optiokenttä, mininimi on 0 B TOS-kenttä (Tpe of Service) Varattu halutun palvelun kertomiseen: - Nopeus, luotettavuus, kapasiteetti; ääni vs. tiedosto Yleensä ei ole kätössä (osa kätössä uusissa reitittimissä) IP-paketin pituus (Datagram length) Koko IP-paketin pituus tavuina, maksimi 65535 B Tavallisimmin 576-500 B Paketin tunniste (6-bit identifier), lippuja (flags), palan paikka (fragmentation offset) Paketin pilkkomiseen pienemmiksi ja kokoamiseen takaisin isoksi Tietoliikenteen perusteet /008/ Liisa Marttinen 35 IP-otsake (jatkuu) Elinaika (time-to-live, TTL) Rajoittaa paketin elinaikaa, maksimi 55 Vähenee joka hpllä reitittimestä toiseen, kun TTL=0, hlätään Kuljetettu protokolla (Upper-laer protocol) Kumpi kuljetuskerroksen protokolla (TCP=6, UDP=7) vai kenties verkkokerroksen sisäistä dataa (ICMP, reititsprotokolla) Otsikon tarkistussumma (Header checksum) Vain otsakkeelle (Internet checksum) Tarkista ja laske uusi joka reitittimessä (TTL, Options) Hlkää virheellinen paketti Osoitteet (Source IP Address, Destination IP Address) Lähteen ja kohteen IP-osoitteet Optiot (Options) Laajennuksia: mm. lähdereitits, harvoin kätett Tietoliikenteen perusteet /008/ Liisa Marttinen 36 8
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. DATAA.. X Miksi vain otsakkeelle? TCP:llä ja UDP:llä omat tarkistussummat. X B UDP- ja joskus jopa TCP-segmentti voidaan hväksä väärässä osoitteessa! Tietoliikenteen perusteet /008/ Liisa Marttinen 37 IP-pakettien paloittelu (fragmentointi) Maimum transfer Unit (MTU) suurin mahdollinen IP-paketti eri linkeillä eri koko Esim. Ethernet 500 B Liian iso paketti pilkottava reitittimessä pienemmiksi paketeiksi (fragmenteiksi), jotka kohdekone kokoaa voivat kukin kulkea eri reittiä IP-otsakkeessa kentät hteenkuuluvien fragmenttien tunnistamiseksi reassembl fragmentation: in: one large datagram out: 3 smaller datagrams KuRo08: Fig 4.4 Tietoliikenteen perusteet /008/ Liisa Marttinen 38 9
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 vastaanottaja ei kkene kokoamaan MF-bitti (More fragments) 0= paketin viimeinen fragmentti, = ei vielä viimeinen Fragmentin sijaintipaikka (3-bit Fragmentation Offset) paikka alkuperäisessä IP-paketissa siirtmänä paketin alusta 3 bittiä => 89 eri arvoa; Jotta pstisi käsittelemään täsimittaiset segmentit (= ma 65535 tavua) => siirtmä esitetään 8 tavun monikertoina => fragmenttien mös oltava 8 tavun monikertoja (paitsi viimeinen) IPv6 ei kätä fragmentointia Tietoliikenteen perusteet /008/ Liisa Marttinen 39 Esimerkki lengthid =4000 = fragflag =0 offset =0 4000 tavun IP-paketti: dataa 3980 B MTU 500 B 480 B dataa 0 B IP-otsaketta offset = 480/8 Yhdestä IP-paketista tulee 3 pienempää IP-pakettia length =500 length =500 length =040 ID = ID = ID = fragflag = fragflag = fragflag =0 offset =0 offset =85 offset =370 0 480 860. Pala: 480 tavua. Pala: 480 tavua 3. Pala: 00 tavua Tietoliikenteen perusteet /008/ Liisa Marttinen 40 0
IP-osoitteet 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 ICANN Internet Corporation for Assigned names and Numbers verkkonumerot palvelun tarjoajille, nämä edelleen aliverkoiksi 0 0000000 0000000 0000000 3 3... 3... 3... 3...4 3...9 3...3 3..3. 3..3.7 KuRo08:Fig 4.5 3... 3..3. Tietoliikenteen perusteet /008/ Liisa Marttinen 4 Aliverkot Osoitteen osat aliverkon numero (alkuosa) koneen numero (loppuosa) Aliverkon koneet voivat kommunikoida ilman reititstä Linkkikerros osaa lähettää koneelta toiselle Esim. Ethernet 3... 3... 3... 3...4 3...9 3... 3...3 3..3.7 subnet 3..3. 3..3. Aliverkkoa merkitään notaatiolla, jossa lopussa on verkko-osan pituus network consisting of 3 subnets Esim. 3...0 /4 subnet mask eli verkko-osoite 4 bittiä ja koneosoite 8 bittiä KuRo08: Fig 4.5 Tietoliikenteen perusteet /008/ Liisa Marttinen 4
Aliverkot 3... Montako aliverkkoa on tässä kuvassa? 3... 3...3 3...4 Yleislähetsosoite 55.55.55.55 Paketti kaikille aliverkon koneille. Mahdollisesti reitittimen kautta muillekin 3... 3..9. 3...6 3..9. 3..8. 3... 3..7.0 3..7. 3..8.0 3..3.7 3..3. 3..3. Tietoliikenteen perusteet /008/ Liisa Marttinen 43 CIDR: Classless InterDomain Routing Verkko-osa voi 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 verkko-osan bittien lukumäärän (prefi) Esim. Organisaatio, jolla 000 konetta varaa 048 = ^ konenumeroa, jolloin verkko-osaa varten jää bittiä Yrits voi vielä itse jakaa viimeiset bittiä aliverkko-osoitteeksi ja koneosoitteeksi. Tämä jako ei nä ulkopuolelle. Verkko Kone (prefi) 00000 0000 0000000 00000000 00.3.6.0/3 aliverkko Tietoliikenteen perusteet /008/ Liisa Marttinen 44
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 ISP's block 00000 0000 0000000 00000000 00.3.6.0/0 Organiation 0 00000 0000 0000000 00000000 00.3.6.0/3 Organiation 00000 0000 000000 00000000 00.3.8.0/3 Organiation 00000 0000 000000 00000000 00.3.0.0/3....... Organiation 7 00000 0000 0000 00000000 00.3.30.0/3 Tietoliikenteen perusteet /008/ Liisa Marttinen 45 Hierarkkinen osoite CIDR luo reititstä helpottavan hierarkian Aggregointi (hdistäminen): hteinen alkuosa => samaan suuntaan Organiation 0 00.3.6.0/3 Organiation 00.3.8.0/3 Organiation 00.3.0.0/3 Organiation 7 00.3.30.0/3 KuRo08: Fig 4.9.... 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 Internet Tietoliikenteen perusteet /008/ Liisa Marttinen 46 3
Jos palveluntarjoaja (ISP) vaihtuu? IP-osoitteet voi säilttää Uudelta ISP:ltä tarkempi reititsohje Pisin sopiva alkuosa määrää reititksen (longest prefi match) Organiation 0 00.3.6.0/3 Organiation 00.3.0.0/3 Organiation 7. 00.3.30.0/3 Organiation 00.3.8.0/3.. Fl-B-Night-ISP ISPs-R-Us Send me anthing with addresses beginning 00.3.6.0/0 KuRo08: Fig 4.9 Send me anthing with addresses beginning 99.3.0.0/6 or 00.3.8.0/3 Internet 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 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ää WLAN wash-and-go, plug-and-pla Tietoliikenteen perusteet /008/ Liisa Marttinen 48 4
NAT: Network Address Translation rest of Internet 38.76.9.7 local network (e.g., kotiverkko) 0.0.0/4 0.0.0.4 0.0.0. 0.0.0. 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/4 (esim. DHCP:llä) Tietoliikenteen perusteet /008/ Liisa Marttinen 49 NAT-reititin Ulosmenevät paketit Korvaa lähdekoneen IP-osoite ja porttinumero NAT-koneen IPosoitteella 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 IP-osoite ja portti Välitä paketti perille NAT-muunnostaulu (IP-osoite, portti) (NAT-koneen osoite, NAT:n portti) Tietoliikenteen perusteet /008/ Liisa Marttinen 50 5
: NAT vaihtaa lähdeosoitteksi 38.76.9.7, ja portiksi 500, päivittää taulun NAT: Esimerkki 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 38.76.9.7 S: 8.9.40.86, 80 D: 38.76.9.7, 500 3 S: 0.0.0., 3345 D: 8.9.40.86, 80 0.0.0.4 S: 8.9.40.86, 80 D: 0.0.0., 3345 : kone 0.0.0. lähettää paketin 8.9.40.86, 80 4 0.0.0. 0.0.0. 0.0.0.3 3: Vastaus NAT-koneelle: 38.76.9.7, 500 4: NAT vaihtaa kohdeosoitteeksi 0.0.0. ja portiksi 3345 Tietoliikenteen perusteet /008/ Liisa Marttinen 5 NAT: Kommentteja / kritiikkiä Hödt 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) Onko ohjelmoijaan 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 /008/ Liisa Marttinen 5 6
Verkkokerros Reititsalgoritmit Tietoliikenteen perusteet /008/ Liisa Marttinen 53 Reititsalgoritmi Etsii edullisimmat reitit lähdekoneelta kohdekoneille Kätetään reititstaulun muodostamiseen - Mille linkille paketti seuraavaksi siirretään tältä reitittimeltä 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 (link-state 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 /008/ Liisa Marttinen 54 7
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 vs. ei Linkin ruuhkautuneisuus voi vaikuttaa sen kustannukseen Nkalgoritmit eivät ota kuormitusta huomioon - Tosin kllä epäsuorasti linkin hitautena ('kustannuksena') Tietoliikenteen perusteet /008/ Liisa Marttinen 55 Verkko graafina (graph) Verkko G= (N,E) N = solmujen (nodes) joukko E = linkkien (edges) joukko (,) on linkki solmujen ja u välillä c(,) = linkin kustannus kaistanleves, ruuhkaisuus, raha,.. C(,X,..., X p ) = reitin (route) kustannus = C(, ) + C(, 3 ) +... + ( p-, p ) 5 v 3 w 5 3 KuRo08; Fig. 4.7 Mikä on huokein reitti kuvan solmusta u solmuun? Tietoliikenteen perusteet /008/ Liisa Marttinen 56 8
) 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 Merkinnät C(,) linkin, 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 /008/ Liisa Marttinen 57 Dijkstran algoritmi Initialiation: N' = {u} 3 for all nodes v 4 if v adjacent to u 5 then D(v) = c(u,v) 6 else D(v) = 7 8 Loop D(v)=, D(w) = 5, D()= D() =, D()= 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 3 3 w 5 Tietoliikenteen perusteet /008/ Liisa Marttinen 58 9
Dijkstran algoritmi D()=, D(v)=, D(w)=4, D() =, D()= 3 v D()=, D(v)=, D(w)=3, D() =, D()=4 u 3 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' 5 w 5 Tietoliikenteen perusteet /008/ Liisa Marttinen 59 Dijkstran algoritmi 3 D()=, D(v)=, D(w)=4, D() =, D()= 5 D()=, D() =,D(v)=, D(w)=3, D()=4 v 3 D()=, D() =,D(v)=, D(w)=3, D()=4 u 3 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' w 5 Tietoliikenteen perusteet /008/ Liisa Marttinen 60 30
Dijkstran algoritmi 4 D()=, D(v)=, D(w)=4, D() =, D()= 5 D()=, D() =, D(v)=, D(w)=3, D()=4 v 3 D()=, D() =, D(v)=, D(w)=3, D()=4 u 3 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' w 5 Tietoliikenteen perusteet /008/ Liisa Marttinen 6 Dijkstran algoritmi 4 D()=, D() =, D(v)=, D(w)=3, D()=4 D()=, D() =, D(v)=, D(w)=3, D()=4 u 3 D()=, D() =, D(v)=, D(w)=3, D()=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' 5 v 3 w 5 Tietoliikenteen perusteet /008/ Liisa Marttinen 6 3
Lhimmät reitit ja reititstaulukko Resulting shortest-path tree from u: v w KuRo08: Fig. 4.8 u Resulting forwarding table in u: destination v w link (u,v) (u,) (u,) (u,) (u,) Tietoliikenteen perusteet /008/ Liisa Marttinen 63 ) Etäissvektorireitits (distance vector) Arpanet-verkon alkuperäinen reititsalgoritmi Kätössä useissa Internetin reititsprotokollissa 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 /008/ Liisa Marttinen 64 3
Etäissvektorireitits (jatkuu) Kullakin reitittimellä 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ää 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 kustanuksiltaan edullisin reitti Tietoliikenteen perusteet /008/ Liisa Marttinen 65 Merkinnät Etäissvektorireitits c(,v) kustannus solmusta naapuriin v, D a (B) = 3 jos v ei ole :n naapuri, c(,v) = D (B) = + 3 = 5 D () edullisimman :stä :hn johtavan reitin kustannus Kukin solmu lläpitää omaa etäissvektoria kaikkiin tuntemiinsa kohteisiin D = [D (): N] edullisin tiedett kustannus solmusta kuhunkin solmuun Sekä saa naapureiltaan niiden etäissvektorit D v () =[D v (): N] = Naapurin v tiedot edullisimmista kustannuksista kuhunkin solmuun D () = min {c(,v) + D v ()} (Bellman-Ford) Kustannus solmusta naapurisolmuun v ja sieltä solmuun Reittejä useita (eri naapureiden kautta); valitaan edullisin eli pienin kustannus X A 3 B c(,a) = c(,b) = Tietoliikenteen perusteet /008/ Liisa Marttinen 66 33
Esimerkki 5 3 v w 5 u 3 Kohde kust. linkki Z 4 X:ään Jos on jo saatu selville, että D v () = 5, D () = 3, D w () = 3 D u () = min { c(u,v) + d v (), c(u,) + d (), c(u,w) + d w () } = min { + 5, + 3, 5 + 3} = 4 Kun paketti on matkalla solmusta u solmuun, se tulee seuraavaksi lähettää solmuun, joka tuotti tuon minimin => talleta tieto omaan etäissvektoriin (= reititstauluun) Tietoliikenteen perusteet /008/ Liisa Marttinen 67 ESIMERKKI. Alussa kukin solmu tuntee vain etäisdet naapureihinsa itsensä kautta: Node table Node table Node table cost to cost to cost to from 0 7 from 0 from Sitten solmut lähettävät omat reittinsä toisilleen ja laskevat uudet parhaat reitit. Esimerkiksi solmu : 0 3 0 7 0 7 0 D () = min{c(,) + D (), c(,) + D ()} = min{+0, 7+} = D () =min{c(,) + D (), c(,) + D ()} = min{+, 7+0} = 3 7 Tietoliikenteen perusteet /008/ Liisa Marttinen 68 34
: from Esimerkki jatkuu: Samalla tavalla toimivat solmut ja : cost to 0 7 0 7 0 : from cost to 0 7 0 3 0 Solmut lähettävät taas tietonsa toisilleen ja laskevat uudet uudet lhimmät reitit. from cost to X: Y: Z: 0 3 0 3 0 from cost to 0 3 0 3 0 from cost to 7 0 3 0 3 0 Tietoliikenteen perusteet /008/ Liisa Marttinen 69 D () = min{c(,) + D (), c(,) + D ()} = min{+0, 7+} = D () = min{c(,) + D (), c(,) + D ()} = min{+, 7+0} = 3 node table cost to 0 7 node table cost to from from 0 node table cost to from 7 0 from from from cost to 0 3 0 7 0 cost to 0 7 0 7 0 cost to 0 7 0 3 0 cost to Tietoliikenteen perusteet /008/ Liisa Marttinen 70 from from from 0 3 0 3 0 cost to 0 3 0 3 0 cost to 0 3 0 3 0 7 35
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 /008/ Liisa Marttinen 7 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) ääretön 3 4 3 3 4 3 4 3 4 5 4 5 4 5 6 5 6 7 6 7 6 7 8 7 8 jne Etäiss A:han Tietoliikenteen perusteet /008/ Liisa Marttinen 7 36
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 /008/ Liisa Marttinen 73 Ratkaisu ei toimi aina! A (etäiss) 4 D C 4 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. C kertoo B:lle,... Tietoliikenteen perusteet /008/ Liisa Marttinen 74 37
3) Hierarkkinen reitits Reititksen skaalautuus? Isossa verkossa runsaasti reitittimiä - Kaikki eivät voi tuntea kaikkia muita - Reititstaulut suuria, reittien laskeminen raskasta - Reititstietojen vaihtaminen kuluttaa linjakapasiittia 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 /008/ Liisa Marttinen 75 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 3c 3a 3b AS3 KuRo08: Fig 4.3 a c d b AS a c b AS Tietoliikenteen perusteet /008/ Liisa Marttinen 76 38
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äissvektorialgoritmi, count-to-infinit-ongelma ks. kurssikirja s. 47 Tietoliikenteen perusteet /008/ Liisa Marttinen 77 39