Nettlaget Mål:! Forstå prinsippene bak nettlagets oppgaver: " Ruting " Skalerbarhet " Hvordan en ruter virker! Hvordan dette er løst i Internett Temaer:! Nettlagets oppgaver! Rutingprinsipp: veivalg! Hierarkisk ruting! IP! Internettets ruting protokoller " intra-domain " inter-domain Nettlaget - Nettlagets funksjoner! Transportere pakker fra sender til mottaker.! Nettlagsprotokoller i alle endemaskiner og rutere. ppl. Transport Tre viktige funksjoner:! Finne en sti: veien fra kilde til destinasjon! switching: flytte pakker fra input porten til output porten! call setup: noen nettverk krever en initialiseringsfase før data kan sendes. ppl. Transport Nettlaget -
ets tjenestemodell Tjeneste abstraksjoner Hvilken modell skal man velge for den kanalen som transporterer pakker fra sender til mottaker?! Garantert båndbredde?! Ingen variasjon i forsinkelser (jitter)?! Ingen pakketap?! Levering i rekkefølge?! Metningsfeedback til sender? en viktigste bstraksjonen man må forholde seg til:??? virtual circuit eller datagram? Nettlaget -3 Virtual circuits Ligner på en telefonlinje hva gjelder... " ytelse " Hva nettverket må gjøre langs stien fra kilde til destinasjon! Forbindelsen må settes opp før data kan sendes! Hver pakke inneholder I av forbindelsen (ikke av destinasjonen)! Hver ruter må vite om hvilke forbindelser som går igjennom den.! link, ruterressurser (båndbredde, buffere) kan allokeres til en forbindelse " Oppførsel som om det ikke var noen annen trafikk på nettet. Nettlaget -4
Virtual circuits: signaleringsprotokoler! rukes til å sette opp, vedlikeholde og ta ned en V.! enyttes i TM, frame-relay,.! Ikke benyttet i dagens Internett pplikasjon Transport pplikasjon. ataflyt starter 6. Motta data 4. Forbindelsen opprettet 3. ksepter forbindelse Transport. Initier kall. Innkommende forespørsel Nettlaget - atagram nettverk: Internett modellen! Ingen fase for oppretting av forbindelse! rutere: ingen informasjon om ende til endeforbindelse " Ikke noe forbindelsesbegrep på nettverkslaget! Pakker blir videresendt på bakgrunn av destinasjons I. " Pakker mellom samme kilde og destinasjon kan ta forskjellige stier pplikasjon Transport. Send data. motta data pplikasjon Transport Nettlaget -6
atagram OG V nettverk: hvorfor? Internett! Utveksling av data mellom datamaskiner " elastisk tjeneste, ingen strikte timing krav.! smarte endesystemer (datamaskiner) " Kan tilpasse seg, utføre kontroll, feilhåndtering " Enkelt nettverk, kompleksiteten er samlet i endesystemene! Mange basalteknologier " Forskjellige karakteristika " Uniform tjeneste er vanskelig TM! Utviklet fra telefoni! Menneskelig konversasjon: " Strikt timing, pålitelighetskrav " Trenger tjenestegarantier! dumme endesystemer " telefoner " Kompleksiteten i nettverkene Nettlaget -7 Ruting Ruting protokoll Mål: finne en god sti (sekvens av rutere) gjennom nettverket fra kilde til destinasjon Graf-abstraksjon for rutingalgoritmer:! Nodene i grafen er rutere! Kantene er fysiske linker " kostnad: forsinkelse, $ kost, eller metningsnivå! god sti: 3 3 E " Typisk minimum kost (for ett eller annet kost-begrep) F " ndre definisjoner er mulige Nettlaget -8
Klassifikasjon av rutingalgoritmer Global eller desentralisert informasjon? Global:! lle rutere har all informasjon om topologi og link-! link state algoritmer esentralisert:! Ruter kjenner til sine nærmeste naboer, og deres link-kostnad.! Iterativ prosess som utveksler informasjon med naboen! distansevektor algoritmer Statisk eller dynamisk? Statisk:! Stier (ruter) endrer seg langsomt over tid. ynamisk:! Stier endrer seg hurtig " Periodisk oppdatering " Som reaksjon på endring i link-kostnad Nettlaget -9 En -State algoritme ijkstra s algoritme! Topologi og linkkostnader er kjent for alle noder " ette oppnås ved at alle noder gjør en link state broadcast " lle noder har samme informasjon! Hver node regner ut den stien som gir lavest kostnad fra seg selv til hver tenkelig destinasjon: " gir ruting tabell for den noden! iterativ: etter k iterasjoner kjenner noden den billigste veien til k destinasjoner. Notasjon:! c(i,j): link kostnad fra node i til node j. Settes initielt til uendelig dersom i og j ikke er naboer.! (v): nåværende beste kostnad til destinasjon v.! : noden selv! N: settet av noder som vi nå har funnet billigste veien til.! P(v): siste noden før v i den beste stien funnet til nå. Nettlaget -0
ijsktra s lgoritme Initialization: N = {} 3 for all nodes v 4 if v adjacent to then (v) = c(,v) 6 else (v) = infty 7 8 Loop 9 find w not in N such that (w) is a minimum 0 add w to N update (v) for all v adjacent to w and not in N: (v) = min( (v), (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 */ until all nodes in N Nettlaget - ijkstra s algoritme: eksempel Step 0 3 4 start N E E E EF (),p(),,, (),p(), 4, 3,E 3,E (),p(), (E),p(E) uendelig, (F),p(F) uendelig uendelig 4,E 4,E 4,E 3 3 E F Nettlaget -
ijkstra s algoritme, diskusjon Kompleksitet: n noder! Hver iterasjon: må sjekke alle noder w som ikke er i N! n*(n+)/ sammenligninger: O(n**)! Mulig å implementere mer effektivt: O(nlogn) Oscillasjoner er mulige:! e.g., linkkostnad = hvor mye trafikk som går på linken +e 0 0 0 e e Initielt +e 0 0 +e 0 rekalkuler rutingen 0 +e 0 0 +e rekalkuler +e 0 +e 0 e rekalkuler Nettlaget -3 istansevektor algoritmen iterativ:! Fortsetter inntil ingen noder utveksler informasjon.! Selv-terminerende: ingen sentral avgjørelse om at alg. er ferdig asynkron:! Noder trenger ikke utveksle informasjon så lenge intet endrer seg distribuert:! Hver node kommuniserer bare med sine naboer istansetabellen! Hver node har sin egen! En rad for hver mulig destinasjon! En kolonne for hver nabo (mulige utlinker)! eksempel: i node, for dest. Y via nabo Z: (Y,Z) = = distanse fra til Y, via Z som neste hopp Z c(,z) + min { (Y,w)} w Nettlaget -4
istansetabell: eksempel 7 E (,) E (,) E (,) E 8 = c(e,) + min { (,w)} w = + = 4 = c(e,) + min { (,w)} w = +3 = Passerer E to ganger! c(e,) + min { (,w)} w = = 8+6 = 4 destinasjon Kostnad til destinasjon via E () Passerer E to ganger (E----E-)! 7 6 4 4 8 9 4 Nettlaget - istansetabell gir rutingtabell Kostnad til destinasjon via E () Utgående link, kostnad 4, destinasjon 7 6 8 9 4 destinasjon,,4 4, istansetabell Rutingtabell Nettlaget -6
istansevektor ruting: overblikk Iterativ, asynkron: Hver lokale iterasjon trigges av:! endringer i lokal link-kost! melding fra nabo om at dens minste konstands stitabell har endret seg istribuert:! hver node sender oppdateringer til naboen bare når minste kostnads sti til en destinasjon har endret seg. " Naboene sender meldinger til sine naboer igjen dersom det er nødvendig. Hver node: wait for (change in local link cost of msg from neighbor) recompute distance table if least cost path to any dest has changed, notify neighbors Nettlaget -7 istansevektoralgoritmen: I alle noder, : Initialization: for all adjacent nodes v: 3 (*,v) = infty /* the * operator means "for all rows" */ 4 (v,v) = c(,v) for all destinations, y 6 send min (y,w) to each neighbor /* w over all 's neighbors */ w Nettlaget -8
istansevektoralgoritmen forts. 8 loop 9 wait (until I see a link cost change to neighbor V 0 or until I receive update from neighbor V) if (c(,v) changes by d) 3 /* change cost to all dest's via neighbor v by d */ 4 /* note: d could be positive or negative */ for all destinations y: (y,v) = (y,v) + d 6 7 else if (update received from V wrt destination Y) 8 /* shortest path from V to some Y has changed */ 9 /* V has sent a new value for its min w V (Y,w) */ 0 /* call this received new value is "newval" */ for the single destination y: (Y,V) = c(,v) + newval 3 if we have a new min w (Y,w)for any destination Y 4 send new value of min w (Y,w) to all neighbors 6 forever Nettlaget -9 istansevektoralgoritmen: eksempel Y 7 Z Nettlaget -0
istansevektoralgoritmen: eksempel Y 7 Z (Y,Z) Z = c(,z) + min { (Y,w)} w = 7+ = 8 (Z,Y) Y = c(,y) + min { (Z,w)} w = + = 3 Nettlaget - istansevektor: endring i link-kostnad Endring i link-kostnad:! node oppdager endring i kostnad på lokal link.! Oppdaterer distansetabellen (linje )! dersom korteste sti endrer seg, si fra til naboene (lines 3,4) 4 Y 0 Z gode nyheter spres fort lgoritmen terminerer Nettlaget -
istansevektor: endring i link-kostnad Endring i link kostnad:! gode nyheter spres fort! dårlige nyheter spres sakte - telle til uendelig problem! 60 4 Y 0 Z lgoritmen fortsetter! Nettlaget -3 istansevektor: poisoned reverse Om Z ruter gjennom Y for å nå :! Z forteller Y at sin (Z s) distanse til er uendelig (så Y ikke ruter til via Z)! løser dette telle til uendelig problemet? 60 4 Y 0 Z lgoritmen terminerer Nettlaget -4
Sammenligning av LS og V algoritmene Meldingskompleksitet! LS: med n noder, E linker, O(nE) msgs sent hver! V: meldingsutveksling bare mellom naboer " konvergenstiden varierer Konvergenshastighet! LS: O(n**) algoritme krever O(nE) meldinger " kan oscillere! V: konvergenstiden varierer " kan gi ruting-løkker " telle til uendelig problem Robusthet: hva skjer dersom en ruter feiler? LS: " node kan melde om feil linkkostnad " hver node regner bare ut sin egen tabell V: " V node kan melde om feil sti-kostnad " hver node sin tabell brukes av andre feil propagerer gjennom nettverket Nettlaget - Hierarkisk ruting Til nå har vi forholdt oss til et idealisert bilde.! lle rutere identiske! flat nettstruktur ikke sant i praksis skala: med 0 millioner destiasjoner:! kan ikke lagre alle destinasjoner i rutingtabeller!! Utveksling av rutingtabeller ville okkupere linkkapasiteten! administrativ autonomi! internet = nettverk av nettverk! hver enkelt netverksadministrator ønsker å kontrollere ruting i sitt eget nettverk. Nettlaget -6
Hierarkisk ruting! Samle rutere i regioner, autonomous systems (S)! rutere i samme S kjører samme rutingprotokoll " inter-s ruting protokoll " rutere i forskjellige S kan kjøre forskjellige intra-s routing protokoller gateway rutere! Spesielle rutere i et S! kjører intra-s ruting protokoll med alle andre rutere i S! også ansvarlig for ruting til destinasjoner utenfor S. " kjører inter-s ruting protokoll med andre gateway rutere Nettlaget -7 Intra-S og Inter-S ruting a.b b d.a a b.c c.a a c Gateways: kjører inter-s ruting seg imellom kjører intra-s b ruting med andre rutere i sitt S inter-s, intra-s ruting i gateway.c nettlaget linklaget lag Nettlaget -8
Intra-S og Inter-S ruting a Host h.b b.a a d b c Intra-S rutig innenfor S Inter-S ruting mellom og.c.a a c b Host h Intra-S ruting innenfor S! Vi skal studere inter-s og intra-s Internett ruting protokoller om et øyeblikk Nettlaget -9 Nettlaget i Internett slagets funksjoner: Transportlag: TP, UP Nettlaget Ruting protokoller stivalg RIP, OSPF, GP ruting tabell IP protokoll adresseringskonvensjoner datagram format pakkehåndteringskonvensjoner IMP protokoll feilrapportering ruter signaleringing lag lag Nettlaget -30
IP dressering! IP adresse: 3-bit identifikator for maskin, ruter interface! interface: koblingen mellom maskin/ruter og fysisk link " en ruter har typisk mange interfaces " en maskin kan ha flere interfacer (men vanligvis bare ett) " IP adresser assosiert med interface, ikke maskin. 3... 3... 3... 3...4 3...9 3...3 3..3. 3..3.7 3... 3..3. 3... = 0 0000000 0000000 0000000 3 Nettlaget -3 IP dressering! IP adresse: " nettverksdelen (høyeste bits) " vertsmaskin delen (laveste bits)! Hva er et nettverk? (fra IP-adresse synspunkt) " interfacer som har felles nettverksdel i adressen " kan nå hverandre fysisk uten å gå gjennom en IP-ruter 3... 3... 3... 3...4 3...9 3...3 3..3. 3..3.7 LN 3... 3..3. som består av 3 IP nettverk (for IP adresser som starter med 3, er de første 4 bits nettverksadresse) Nettlaget -3
IP dressering Hvordan finne nettverket?! Frikoble interface begrepet fra ruterbegrepet! skape øyer av isolerte nettverk 3... 3... 3...4 3...3 3..9. 3..7.0 3..9. 3..7. 3..8. 3..8.0 3...6 3..3.7 Sammenkoblet system bestående av seks nettverk 3... 3... 3..3. 3..3. Nettlaget -33 IP dresser class 0nettverk vertsmaskin.0.0.0 til 7... 0 nettverk vertsmaskin 0 nettverk vertsmaskin 0 multicast adresse 3 bits 8.0.0.0 til 9... 9.0.0.0 til 39... 40.0.0.0 til 47... Nettlaget -34