Kapitel 4 Netværkslaget

Slides:



Advertisements
Lignende præsentationer
Den danske befolknings syn på handicappedes rettigheder
Advertisements

VMS data Geografisk og tidsmæssig udvikling af indsatsen i tobisfiskeriet v/ dataspecialist Josefine Egekvist Sekretariat for myndighedsbetjening.
Atomer Et programmeret forløb. En måde at lære på.
SharePoint /36 2 General SettingsPermissions and ManagementCommunications Titel, description and navigation Versioning settings Advanced settings.
Forsiden 1.Denne knap bruges når du vil taste dagens resultater ind. 2.Denne knap skal kun bruges hvis du allerede har gemt data og du finder ud af at.
Torbenfeldvej Vallensbæk strand Tlf.: – – dagligt brug af vores hjemmeside •AGEN LYS har en stor og omfattende.
1 Problemkompleksitet 2 Problemers kompleksitet En ineffektiv algoritme: køretiden vokser eksponentielt med input- størrelsen Et problem, der ikke kan.
Analyse for Ældre Sagen: Anvendelse af nye teknologiske kommunikationsmidler Rapport Oktober 2008.
Samarbejde med eller uden Service Level Agreement (SLA)
Informationer om trådløs netværk På trådløs netværk bruges CSMA/CA sammen med ”Request to Send (RTS)” og “Clear to Send (CTS)” for at undgå kollisioner.
v/ Professor Lars Ehlers, Aalborg Universitet
Elevernes digitale dannelse
Formularer (Access, del 3)
Samlet årsrapport for Sønderparken 2013 SIP-socialpsykiatri
Bolig selskabernes Landsforening– Almene lejeboliger - Maj/Juni Almene lejeboliger - Danmarkspanelet - Maj/Juni 2010.
Analyse for Ældre Sagen: Trafikundersøgelse: Cykel, cykelhjelm mv Rapport Marts 2010.
TCP/IP netværk Henrik Størner SSLUG.
SQL 1 DDL og DML.
1. Ordreside: Køretøjerside: Brugereside: Timesedlerside: Beskederside: Oversigtskortside: Themeside: 19.
Computer netværk og TCP/IP protokoller Kort resume – uge 6
Efteruddannelsesindsatsen 2007 Analyse Danmarks undersøgelse januar 2008 Oplæg på Kompetencerådets møde den v./ Merete.
Problemer med at bruge tympanometri? Slagelse og Middelfart okt.-nov
Grundforløbsprojekt Strøm, Styring & IT.
Representations for Path Finding in Planar Environments.
Kursus om borger.dk og brugen af digital signatur
Introduktion til Access (Access, del 1)
Opslagsfelter (Access, del 6). RHS – Informationsteknologi 2 Udgangspunkt Vi er ofte i den situation, at valg af en type for et felt ikke begrænser vores.
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
HUSKESPIL – den lille tabel
1 & Om holdninger og holdningsændring blandt ledere og medarbejdere på sociale institutioner Evalueringsmedarbejder.
Titel: Arial, fed, skriftstr. 20, mørkegrå. Tekst: Arial, normal, fed eller kursiv, skriftstr. 10, 12 og 14 til print – 16 og 18 til projektor – mørkegrå.
Relativ vigtighed for elektroniske ressourcer,24,22,20,18,16,14,12,10 Indeks FARM nem at bruge Info om anvendelse af elektroniske.
 2 3  3 =  83  43  53  63  73  93  10 4.
GP5, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 5 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi begynder.
1 UNION-FIND. 2 inddata: en følge af heltalspar (p, q); betydning: p er “forbundet med” q uddata: intet, hvis p og q er forbundet, ellers (p, q) Eksempel.
Sommeren 1942 Gruppen får to nye medlemmer
Region Midtjyllands tilbud 2013
11.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Processer Oversigt, principper og teknikker Kapitel 11.
Trivselsundersøgelse og ledelsesevaluering Anæstesiologisk Afdeling Flere ledere
Multi-vejs hobe med ekstra bytes Foredrag: Claus Jensen Projektmedlemmer: Jyrki Katajainen, Fabio Vitale, Claus Jensen.
Indhold 1.Hvad er MATRIX Mobil 2.Menu Valg 3.Installation 4.Adgang.
1 Borgerpanelet i Silkeborg Kommune.
ADR & SCANNERKORT. Automatic Delivery Rewards (ADRs) Den enkle måde at handle produkter på, med levering hver måned. Du får fordelen af en rabat på 5.
D 3 5A A A 16 5D 15 5A 14 5D A B D D A B A A D
MMP Model og Metode til Programudvikling – MMP 1 Kursusindhold: Modellering af postkontor Objekt Orienteret Programudvikling - OO* Unified Modelling.
Nå ud med jeres budskab – få budskabet ind Konference om rådgivning af deltidslandmænd 5. oktober 2011.
1 Sortering I elementære metoder. 2 Plan Terminologi Elementære metoder til sortering -sortering ved udvælgelse -sortering ved indsættelse -Shellsort.
Matematik B 1.
Evaluering og IT Brøndby Gymnasium
1 Vi ser nu på en general graf Men antager at alle afstande er heltallige (Det er ikke så restriktivt) Algoritmen leder efter den mindst mulige dækningsdistance.
Rapporter (Access, del 5). RHS – Informationsteknologi – Udgangspunkt Vi har oprettet en database Vi har defineret en eller flere tabeller, og.
1 Tråde 2 Plan Trådbegrebet Synkronisering Koordinering Eksempel: et flertrådet spil.
It i de gymnasiale uddannelser Udstyr og anvendelse, 2010.
Grunde til at jeg elsker dig
Fundamentale datastrukturer
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
Opslagsfelter (Access, del 6). RHS – Informationsteknologi – Udgangspunkt Vi er ofte i den situation, at valg af en type for et felt ikke begrænser.
Introduktion til Access (Access, del 1). RHS – Informationsteknologi – Fra design til udvikling Vi ved nu, hvordan vi finder et design for en database,
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Faget Datakommunikation Navn:_________________________ Velkommen til Claes Larsen, CCAI.
1 Kap. 4, Jordens Tyngdefelt = Torge, 2001, Kap. 3. Tyngdekraftens retning og størrelse g (m/s 2 ) Acceleration Tyngdepotentialet (W): evene til at udføre.
1 Center problems Placer et givet antal nye faciliteter Alt efterspørgsel skal dækkes Dækningsdistancen skal minimeres.
 Kommunikation mellem computere  NAT – Network Adress Translation  IP Routing af pakker  Transport af beskeder ◦ TCP ◦ UDP.
Datalink laget Datalink Datalink Fysisk lag Fysisk lag Fysisk net
Dagens gang Komponenter Projektetablering Opgave i komponenter til næste gang.
Hjemmet som et Distribueret System Jonas Thomsen Ph.d. studerende Center for Pervasive Computing.
Netteknik 1 (AMU 44947) Netteknik 1
Præsentationens transcript:

Kapitel 4 Netværkslaget En dansk udgave af Kurose-Ross: We’re making these slides freely available to all (faculty, students, readers). They’re in powerpoint form so you can add, modify, and delete slides (including this one) and slide content to suit your needs. They obviously represent a lot of work on our part. In return for use, we only ask the following: If you use these slides (e.g., in a class) in substantially unaltered form, that you mention their source (after all, we’d like people to use our book!) If you post any slides in substantially unaltered form on a www site, that you note that they are adapted from (or perhaps identical to) our slides, and note our copyright of this material. Thanks and enjoy! JFK/KWR All material copyright 1996-2002 J.F Kurose and K.W. Ross, All Rights Reserved Computer Networking: A Top Down Approach Featuring the Internet, 2nd edition. Jim Kurose, Keith Ross Addison-Wesley, July 2002. Netværkslaget

Kapitel 4: Netværkslaget Kapitlets mål: at forstå principperne bag netværkslagets tjenester: rutning (valg af vej) skalérbarhed hvordan en ruter virker avancerede emner: IPv6, Mobilitet realisering og implementering i Internettet Oversigt: Netværkslagets tjenester Rutningsprincipper: valg af vej Hierarkisk rutning IP Internet rutningsprotokoller pålidelig overførsel intra-domain inter-domain Hvad er der inden i en ruter ? IPv6 Mobilitet Netværkslaget

Kapitel 4 oversigt 4.1 Indledning og netværks-servicemodeller 4.2 Rutningsprincipper 4.3 Hierarkisk rutning 4.4 Internet- (IP-)protokollen 4.5 Rutning i Internettet 4.6 Hvad er der inden i en ruter ? 4.7 IPv6 4.8 Multicast rutning 4.9 Mobilitet Netværkslaget

Netværkslagets funktioner at transportere pakker fra afsender til modtager Der er netværkslags-protokoller i hver maskine og ruter tre vigtige funktioner: valg af vej: ruten pakkerne tager fra afsender til modtager: rutningsalgoritmer forwarding: flytte pakker fra ruterens input det rette ruter-output kaldsopsætning: nogle netværksarkitekturer kræver ruter kaldsopsætning langs vejen før data kan data flyde. application transport network data link physical network data link physical Netværkslaget

Netværks service-model Spm: Hvilken service- model skal bruges for en “kanal”, der transporterer pakker fra afsender til modtager ? garanteret båndbredde ? ens tidsinterval mellem pakker (ingen jitter) ? tabsfri aflevering ? in-order aflevering ? congestion feedback til afsender ? Den vigtigste abstraktion netværkslaget giver: ? virtual circuit eller datagram? ? ? service-abstraktion Netværkslaget

Virtuelle kredsløb (Virtual circuits) “vejen fra afsender til modtager opfører sig som en telefonforbindelse” ydelsesmæssigt netværksaktioner langs vejen fra afsender til modtager kaldsopsætning og -nedtagning for hvert opkald før data kan flyde hver pakke bærer en VC-identifier (ikke destinationsmaskinens ID) hver ruter på vejen gemmer en “tilstand” for hver forbindelse, der går igennem den. transport-lagsforbindelsen involverede kun de to ende-systemer link- og ruter-ressourcer (båndbredde og buffere) kan tildeles til et virtuelt kredsløb hvilket giver en kredløbslignende egenskaber Netværkslaget

Virtuelle kredsløb:signaleringsprotokoller bruges til at opsætte, vedligeholde og nedtage VC bruges i ATM, frame-relay og X.25 bruges ikke i dagens Internet application transport network data link physical application transport network data link physical 5. Dataflow begynder 6. Modtag data 4. Forbindelse etableret 3. Acceptér opkald 1. Indled opkald 2. indkommende opkald Netværkslaget

Datagram-netværk: Internet modellen ingen kaldsopsætning i netværkslaget rutere: ingen tilstand om end-to-end forbindelser intet netværksniveau begreb “forbindelse” pakkerne fremsendes v.h.a. destinationsadressen pakker mellem det samme afs-modt-par kan tage forskellige veje. application transport network data link physical application transport network data link physical 1. Send data 2. modtag data Netværkslaget

Netværkslagets servicemodeller: Garantier ? Netværks- arkitektur Internet ATM Service- model best effort CBR VBR ABR UBR Congestion feedback nej (sluttes via tab) ingen congestion ja nej Båndbredde ingen garan. konstant hastighed garanteret minimum Tab nej ja Ordnet nej ja Timing nej ja Udvidede Internet-modeller: Intserv, Diffserv Kapitel 6 Netværkslaget

Datagram eller VC-netværk: hvorfor findes begge ? Internet data-udveksling mellem computere “elastisk” service, ingen strenge tidskrav “smarte” slutsystemer (computere) kan tilpasse sig og udføre kontrol og fejlretning. enkelt i netværket og kompleksiteten i “kanten” mange link-typer forskellige karakteristika ensartet service er svært ATM er udviklet fra telefoni personkonversation: strenge timing og pålidelighedskrav behov for garanteret service “dumme” slutsystemer telefoner kompleksiteten er i nettet Netværkslaget

Kapitel 4 oversigt 4.1 Indledning og netværks-servicemodeller 4.2 Rutningsprincipper Link state routing Distance vector routing 4.3 Hierarkisk rutning 4.4 Internet- (IP-)protokollen 4.5 Rutning i Internettet 4.6 What’s Inside a ruter 4.7 IPv6 4.8 Multicast rutning 4.9 Mobilitet Netværkslaget

Rutning Rutningsprotokol Grafabstraktion for rutningsalgoritmer: Mål: at finde en “god” vej (sekvens af rutere) gennem netværket fra afsender til modtager 5 3 B C 2 5 A 2 1 F 3 Grafabstraktion for rutningsalgoritmer: grafknuder er rutere grafkanter er fysiske links link-pris: forsinkelse, kronepris eller congestion.niveau 1 2 D E 1 en “god” vej: betyder typisk en minimalpris-vej andre definitioner er mulige Netværkslaget

Inddeling af rutningalgoritmer Global eller decentraliseret information? Global: alle rutere har den komplette topologi og link-pris information “link state” algoritmer Decentraliserede: ruterne kender de fysisk forbundne naboer og linkprisen til dem. iterative proces med beregning og udveksling af information med naboerne. “distance vector” algoritmer Statisk eller dynamisk? Statisk: ruter ændres langsomt over tid Dynamisk: ruterne skifter hurtigere periodisk opdatering som svar på linkpris-ændringer Netværkslaget

En Link-State Rutningsalgoritme Dijkstra’s algoritme net-topologien og linkpris kendes i alle knuder dette opnås via “link state broadcast” alle knuder har den samme information beregner billigste veje fra en knude (‘source”) til alle andre knuder giver rutetabeller for den knude iterative: efter k iterationer kendes billigste vej til k destinationer Notation: c(i,j): link cost fra knude i til j. cost uendelig hvis der ikke er direkte naboer D(v): øjebliksværdien af cost af vejen fra kilde til destination V p(v): forgængerknude ad vejen fra kilden til v. N: mængden af knuder, hvis billigste vej kendes. Netværkslaget

Dijsktras algoritme 1 Initialization: 2 N = {A} 3 for all nodes v 4 if v adjacent to A 5 then D(v) = c(A,v) 6 else D(v) = infinity 7 8 Loop 9 find w not in N such that D(w) is a minimum 10 add w to N 11 update D(v) for all v adjacent to w and not in N: 12 D(v) = min( D(v), D(w) + c(w,v) ) 13 /* new cost to v is either old cost to v or known 14 shortest path cost to w plus cost from w to v */ 15 until all nodes in N Netværkslaget

Dijkstras algoritme: eksempel Trin 1 2 3 4 5 start N A AD ADE ADEB ADEBC ADEBCF D(B),p(B) 2,A D(C),p(C) 5,A 4,D 3,E D(D),p(D) 1,A D(E),p(E) infinity 2,D D(F),p(F) infinity 4,E 5 3 B C 2 5 A 2 1 F 3 1 2 D E 1 Netværkslaget

Dijkstras algoritme: diskussion Algoritme-kompleksitet: n knuder ved hver iteration: vi skal checke alle knuder, w, der ikke er i N n*(n+1)/2 sammenligninger: O(n**2) mere effektive implementationer er mulige: O(nlogn) Mulighed for svingninger: f.eks. ved link cost = mængden af fremført trafik A A A 1 A 1+e 2+e 2+e 2+e D B D B D B D B 1+e 1 1+e 1 e 1 C 1+e e C C C 1 1 e … genberegn rutning … genberegn … genberegn initialt Netværkslaget

Distance-vector rutnings-algoritmen iterativ: fortsætter indtil ingen knuder udveksler information selv-terminerende: intet “signal” til stop asynkron: knuder behøver ikke udveksle information og iterate i takt ! distribueret: hver knude kommunikerer kun med de direkte forbundne naboer Distance-tabel datastruktur hver knude har sin egen række for hver mulig destination og en søjle for hver directly-forbundet nabo til knuden eksempel: i knude X, for destination Y via nabo Z: D (Y,Z) X distance fra X til Y, via Z som næste hop c(X,Z) + min {D (Y,w)} Z w = Netværkslaget

Distance-tabel: eksempel 1 7 6 4 14 8 9 11 5 2 E cost to destination via destination 1 B C 7 A 8 2 1 E D 2 D (C,D) E c(E,D) + min {D (C,w)} D w = 2+2 = 4 D (A,D) E c(E,D) + min {D (A,w)} D w = 2+3 = 5 loop! D (A,B) E c(E,B) + min {D (A,w)} B w = 8+6 = 14 loop! Netværkslaget

Distance-tabellen giver rutetabellen 1 7 6 4 14 8 9 11 5 2 E cost to destination via destination Outgoing link to use, cost A B C D A,1 D,5 D,4 destination Distance-tabel Rutetabel Netværkslaget

Distance-vektor rutning: oversigt Iterative og asynkron: hver lokal iteration forårsages af: lokale link cost ændringer besked fra en nabo: dens billigste vej er ændret fra nabo Distribueret: hver knude giver kun besked til naboer når dens billigste vej til en vilkårlig destination ændrer sig naboerne giver så besked til deres naboer hvis nødvendigt. I hver knude: vent på (ændring i lokallink pris besked fra naboer) genberegn distance-tabellen hvis den billigste vej til en vilkårlig dest har ændret sig, giv besked til naboerne Netværkslaget

Distance-vektor algoritmen: I alle knuder X: 1 Initialization: 2 for all adjacent nodes v: 3 D (*,v) = infinity /* the * operator means "for all rows" */ 4 D (v,v) = c(X,v) 5 for all destinations, y 6 send min D (y,w) to each neighbor /* w over all X's neighbors */ X X X w Netværkslaget

Distance-vektor algoritmen (fortsat): 8 loop 9 wait (until I see a link cost change to neighbor V 10 or until I receive update from neighbor V) 11 12 if (c(X,V) changes by d) 13 /* change cost to all dest's via neighbor v by d */ 14 /* note: d could be positive or negative */ 15 for all destinations y: D (y,V) = D (y,V) + d 16 17 else if (update received from V wrt destination Y) 18 /* shortest path from V to some Y has changed */ 19 /* V has sent a new value for its min DV(Y,w) */ 20 /* call this received new value is "newval" */ 21 for the single destination y: D (Y,V) = c(X,V) + newval 22 23 if we have a new min D (Y,w)for any destination Y 24 send new value of min D (Y,w) to all neighbors 25 26 forever X X w X X w X w Netværkslaget

Distance-vektor algoritmen: eksempel X Z 1 2 7 Y Netværkslaget

Distance-vektor algoritmen: eksempel X Z 1 2 7 Y D (Y,Z) X c(X,Z) + min {D (Y,w)} w = 7+1 = 8 Z D (Z,Y) X c(X,Y) + min {D (Z,w)} w = 2+1 = 3 Y Netværkslaget

Distance vektor: link cost ændringer knuden opdager lokal link cost ændring opdaterer distance-tabellen (linie 15) hvis cost ændres i billigste vej så giv naoerne besked (linie 23 og 24) 1 Y 4 1 X Z 50 algorithm terminates “gode nyheder rejser hurtigt” Netværkslaget

Distance vektor: link cost ændringer gode nyheder rejser hurtigt dårlige nyheder rejser langsomy - “tæl til uendelig” problem! 60 Y 4 1 X Z 50 algorithm continues on! Netværkslaget

Distance vector: “poisoned reverse” Hvis Z ruter gennem Y for at komme til X , så: fortæller Z til Y at dens (Z’s) distance til X is uendelig (så Y ikke ruter til X via Z) vil dette helt løse tæl til uendelig- problemet ? 60 Y 4 1 X Z 50 algorithm terminates Netværkslaget

Sammenligning af LS og DV algoritmerne Beskedkompleksitet LS: med n knuder og E links, O(nE) beskeder sendes DV: kun udveksling mellem naboer konvergenstiden varierer Konvergenshastighed LS: O(n2) algoritme som kræver O(nE) beskeder kan oscillere DV: konvergenstiden varierer der kan være rute-løkker “tæl til uendelig” problem Robusthed: hvad sker der hvis en ruter svigter ? LS: knuden kan bekendtgøre ukorrekt link-cost hver knude beregner kun sin egen tabel. DV: DV knuden kan bekendtgøre ukcorrekt path-cost (vej-pris) hver knudes tabel bruges af andre fejl kan spredes gennem netværket Netværkslaget

Kapitel 4 oversigt 4.1 Indledning og netværks-servicemodeller 4.2 Rutningsprincipper 4.3 Hierarkisk rutning 4.4 Internet- (IP-)protokollen 4.5 Rutning i Internettet 4.6 What’s Inside a ruter 4.7 IPv6 4.8 Multicast rutning 4.9 Mobilitet Netværkslaget

Hierarkisk rutning Vores rutningsteori indtil nu er - idealiseret vi forudsatte at alle rutere var ens og netværket “fladt” … ikke sandt i praksis skalering: med 200 millioner destinationer: umuligt at gemme alle destinationer i rutetabeller! udveksling af rutetabeller ville oversvømme links! administrativ autonomi internet = netværk af netværk hver netværksadministrator ønsker at kontrollere rutningen i sit eget net Netværkslaget

Hierarkisk rutning gateway rutere saml rutere i regioner, “autonome systemer” (AS) rutere i samme AS kører samme rutningsprotokol “intra-AS” rutnings- protokol rutere i forskellige AS kan køre forskellige intra-AS rutnings- protokoller særlige rutere i AS kører intra-AS rutningsprotokol med alle andre rutere i AS også ansvarlige for rutning til destinationer udenfor AS kører inter-AS rutningsprotokol med andre gateway rutere Netværkslaget

Intra-AS og Inter-AS rutning C.b Gateways: udfører inter-AS rutning indbyrdes udfører intra-AS rutning med andre rutere i deres AS B.a A.a b A.c c a a C b a B d c A b Netværkslaget inter-AS, intra-AS routing in gateway A.c link-laget fysisk lag Netværkslaget

Intra-AS og Inter-AS rutning mellem A og B a b C A B d c A.a A.c C.b B.a Maskine h2 Maskine h1 Intra-AS rutning indenfor AS B Intra-AS rutning indenfor AS A Vi vil undersøge specifikke inter-AS og intra-AS Internet rutningsprotokoller om lidt Netværkslaget

Kapitel 4 oversigt 4.1 Indledning og netværks-servicemodeller 4.2 Rutningsprincipper 4.3 Hierarkisk rutning 4.4 Internet- (IP-)protokollen 4.4.1 IPv4 adressering 4.4.2 At flytte et datagram fra kilde til destination 4.4.3 Datagram format 4.4.4 IP fragmentering 4.4.5 ICMP: Internet Control Message Protocol 4.4.6 DHCP: Dynamic Host Configuration Protocol 4.4.7 NAT: Network Address Translation 4.5 Rutning i Internettet 4.6 Hvad er der inden i en ruter 4.7 IPv6 4.8 Multicast rutning 4.9 Mobilitet Netværkslaget

Internet netværkslaget Maskine, rutere og netværkslagets funktioner: Transport lag: TCP, UDP IP protokol adresseringskonventioner datagram format pakkehåndteringskonventioner rutningsprotokoller path selection RIP, OSPF, BGP Netværks- lag forwarding table ICMP protokol fejlrapportering ruter signalering Linklag fysisk lag Netværkslaget

IP-adressering: indledning IP-adresse: 32-bit identifikation af maskine eller ruter- interface interface: forbindelse mellem maskine/ruter og fysisk link rutere har typisk mange interfaces maskiner kan have mange interfaces IP-adresser knyttes til hver interface 223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 223.1.2.9 223.1.2.2 223.1.1.3 223.1.3.27 223.1.3.1 223.1.3.2 223.1.1.1 = 11011111 00000001 00000001 00000001 223 1 1 1 Netværkslaget

IP-adressering IP-adresse: netværksdel (mest betydende bit) maskindel (mindst betydende bit) Hvad er et netværk ? (fra et IP-adresse perspektive) device interface med samme netværksdel i IP-adresse kan fysisk nå hinanden uden en mellemliggende ruter 223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 223.1.2.9 223.1.2.2 223.1.1.3 223.1.3.27 LAN 223.1.3.1 223.1.3.2 netværk bestående af 3 IP netværk (for IP-adresser, der starter med 223 er de første 24 bit netværksadressen) Netværkslaget

IP-adressering Hvordan findes nettene ? 223.1.1.2 Hvordan findes nettene ? Afkobl hver interface fra rutere og maskiner herved skabes “øer af isolerede net 223.1.1.1 223.1.1.4 223.1.1.3 223.1.9.2 223.1.7.0 223.1.9.1 223.1.7.1 223.1.8.1 223.1.8.0 223.1.2.6 223.1.3.27 Forbundet system bestående af seks net 223.1.2.1 223.1.2.2 223.1.3.1 223.1.3.2 Netværkslaget

IP-adresser givet begrebet “net”, lad os se på IP-adresserne: “class-full” adressering: class A 1.0.0.0 to 127.255.255.255 net maskine B 128.0.0.0 to 191.255.255.255 10 net maskine 192.0.0.0 to 223.255.255.255 C 110 net maskine 224.0.0.0 to 239.255.255.255 D 1110 multicast adresse 32 bit Netværkslaget

IP-adressering: CIDR Classful adressering: ineffektiv brug af adresserum, adresserummet bruges op f.eks. i klasse B net tildeles adresser nok til 65K maskiner, selv om der kun er 2K maskiner i det net CIDR: Classless InterDomain Routing netværksdelen i adressen har vilkårlig længde adresseformat: a.b.c.d/x, hvor x er antallet af bit i netværksdelen af adressen 11001000 00010111 00010000 00000000 netværks- delen maskin- 200.23.16.0/23 Netværkslaget

IP-adresser: hvordan får man en ? Spm: Hvordan får maskinen en IP-adresse? manuelt konfigureret af systemadministratoren i en fil Wintel: control-panel->network->configuration->tcp/ip->properties UNIX: /etc/rc.config DHCP: Dynamic Host Configuration Protocol: får dynamisk adressen fra en AS server “plug-and-play” (mere om lidt) Netværkslaget

IP-adresser: hvordan får man en? Spm: Hvordan får nettet netværksdelen af IP- adressen ? Sv: får tildelt en portion af dets ISP’ers adresserum ISP's block 11001000 00010111 00010000 00000000 200.23.16.0/20 Organization 0 11001000 00010111 00010000 00000000 200.23.16.0/23 Organization 1 11001000 00010111 00010010 00000000 200.23.18.0/23 Organization 2 11001000 00010111 00010100 00000000 200.23.20.0/23 ... ….. …. …. Organization 7 11001000 00010111 00011110 00000000 200.23.30.0/23 Netværkslaget

Hierarkisk adressering: rute-samling Hierkisk adressering tillader effektiv bekendtgørelse af rutnings- information: Organization 0 200.23.16.0/23 Organization 1 200.23.18.0/23 “Send mig alt med adresser der begynder med 200.23.16.0/20” Organization 2 200.23.20.0/23 . Fly-By-Night-ISP . Internet Organization 7 200.23.30.0/23 “Send mig alt med adresser, der begynder med 199.31.0.0/16” ISPs-R-Us Netværkslaget

Hierarkisk adressering: mere specifikke veje ISPs-R-Us har en mere specifik vej til Organisation 1 Organization 0 200.23.16.0/23 “Send mig alt med adresser der begynder med 200.23.16.0/20” Organization 2 200.23.20.0/23 . Fly-By-Night-ISP . Internet Organization 7 200.23.30.0/23 “Send mig alt med adresser, der begynder med 199.31.0.0/16 eller 200.23.18.0/23” ISPs-R-Us Organization 1 200.23.18.0/23 Netværkslaget

IP-adressering: det sidste ord... Spm: Hvordan får en ISP’er en blok adresser? SV: ICANN: Internet Corporation for Assigned Names and Numbers tildeler adresser bestyrer DNS tildeler domaine-navne og løser stridigheder Netværkslaget

At få et datagram fra kilde til destination forwarding tabel i A Dest. Net. next ruter Nhops 223.1.1 1 223.1.2 223.1.1.4 2 223.1.3 223.1.1.4 2 IP-datagram: forsk felter source IP addr dest data 223.1.1.1 223.1.1.2 223.1.1.3 223.1.1.4 223.1.2.9 223.1.2.2 223.1.2.1 223.1.3.2 223.1.3.1 223.1.3.27 A B E datagrammet ændres ikke, når det rejser fra kilden til destinationen adressefelterne er af interesse her Netværkslaget

At få et datagram fra kilde til destination forwarding tabel i A forsk felter Dest. Net. next ruter Nhops 223.1.1 1 223.1.2 223.1.1.4 2 223.1.3 223.1.1.4 2 223.1.1.1 223.1.1.3 data Med start i A send IP- datagram adresseret til B: slå B´s netadresse op i forwarding tabellen opdager at B er på samme net som A link-laget sender datagrammet direkte til B i en link-lags frame B og A er direkte forbundet 223.1.1.1 223.1.1.2 223.1.1.3 223.1.1.4 223.1.2.9 223.1.2.2 223.1.2.1 223.1.3.2 223.1.3.1 223.1.3.27 A B E Netværkslaget

At få et datagram fra kilde til destination forwarding tabel i A forsk felter Dest. Net. next ruter Nhops 223.1.1 1 223.1.2 223.1.1.4 2 223.1.3 223.1.1.4 2 223.1.1.1 223.1.2.3 data Med start i A og dest. E: slå E’s netadresse op i forwarding tabellen E er på et andet net A og E er ikke direkte forbundne rutetabel: next hop ruter til E er 223.1.1.4 linklaget sender datagrammet til ruter 223.1.1.4 i en link-lags frame datagrammet ankommer til 223.1.1.4 fortsættes.... 223.1.1.1 223.1.1.2 223.1.1.3 223.1.1.4 223.1.2.9 223.1.2.2 223.1.2.1 223.1.3.2 223.1.3.1 223.1.3.27 A B E Netværkslaget

At få et datagram fra kilde til destination forwarding tabel i ruter Dest. Net ruter Nhops interface 223.1.1 - 1 223.1.1.4 223.1.2 - 1 223.1.2.9 223.1.3 - 1 223.1.3.27 forsk felter 223.1.1.1 223.1.2.3 data Ved ankomst til 223.1.4 og bestemt for 223.1.2.2 slå E’s netadresse op i ruterens forwarding tabel E er på samme net som ruterens interface 223.1.2.9 ruteren og E er direkte forbundne link-laget sender datagrammet til 223.1.2.2 i en link-lags frame via interface 223.1.2.9 datagrammet ankommer til 223.1.2.2!!! (hurra!) 223.1.1.1 223.1.1.2 223.1.1.3 223.1.1.4 223.1.2.9 223.1.2.2 223.1.2.1 223.1.3.2 223.1.3.1 223.1.3.27 A B E Netværkslaget

32 bit destination IP-adresse IP datagram format ver length 32 bits data (variabel længde, typisk et TCP- eller UDP-segment) 16-bit identifier Internet checksum time to live 32 bit source IP-adresse IP protokol version nummer headerlængde (antal bytes) max antal hop tilbage (tælles ned ved hver ruter) til fragmentering/ gensamling total datagram længde (bytes) øvre lags protokol data skal afleveres til head. len type of service “type” af data flgs fragment offset upper layer 32 bit destination IP-adresse Optioner (hvis nogle) F.eks. tidsstempel registrer tagne vej, specifér liste sf rutere der skal besøges. hvor meget overhead med TCP? 20 bytes TCP 20 bytes IP = 40 bytes + applik.lagsoverhead Netværkslaget

IP fragmentering og gensamling netværklinks har en MTU (max.transfer unit) - største link-level frame. forskellige link typer, forskellige MTU’er et stort IP-datagram deles (“fragmenteres”) i nettet et datagram bliver til flere datagrammer “gensamles” først ved slutdestinationen IP headerbits bruges til at identificere og genordne fragmenterne fragmentering: ind: et stort datagram ud: 3 mindre datagrammer gensamling Netværkslaget

IP fragmentering og gensamling ID =x offset =0 fragflag længde =4000 =1 =1500 =1480 =2960 =1040 Et stort datagram bliver til flere mindre datagrammer eksempel 4000 byte datagram MTU = 1500 bytes Netværkslaget

ICMP: Internet Control Message Protocol bruges af maskiner, rutere og gateways til kommunikation af netværks-niveau information fejlrapportering: kan ikke nåa maskine, netværk, protokol eller port ekko af request/reply (bruges af ping) netværks-lag “over” IP: ICMP beskeder bæres i IP- datagrammer ICMP besked: type, kode plus første 8 bytes af IP datagrammet, der gav fejl Type Code description 0 0 echo reply (ping) 3 0 dest. network unreachable 3 1 dest host unreachable 3 2 dest protocol unreachable 3 3 dest port unreachable 3 6 dest network unknown 3 7 dest host unknown 4 0 source quench (congestion control - not used) 8 0 echo request (ping) 9 0 route advertisement 10 0 ruter discovery 11 0 TTL expired 12 0 bad IP header Netværkslaget

DHCP: Dynamic Host Configuration Protocol Mål: at tillade maskiner dynamisk at få deres IP-adresser fra netværksserveren når de går ind i nettet Kan forny deres leje af adresser i brug Tillader genbrug af adresser (adresser holdes kun men forbundet og “på”) Støtte til mobile brugere, som ønsker at gå på nettet (kortvarigt) DHCP oversigt: maskine broadcaster “DHCP discover” besked DHCP server svarer med “DHCP offer” besked maskine beder om IP-adresse: “DHCP request” besked DHCP server sender adressen: “DHCP ack” besked Netværkslaget

DHCP client-server scenarie 223.1.2.1 223.1.1.1 server 223.1.1.2 223.1.1.4 223.1.2.9 B 223.1.2.2 tilkoblende DHCP klient har brug for en adresse i dette netværk E 223.1.1.3 223.1.3.27 223.1.3.1 223.1.3.2 Netværkslaget

DHCP client-server scenarie DHCP server: 223.1.2.5 tilkoblende klient DHCP discover src : 0.0.0.0, 68 dest.: 255.255.255.255,67 yiaddr: 0.0.0.0 transaction ID: 654 DHCP offer src: 223.1.2.5, 67 dest: 255.255.255.255, 68 yiaddrr: 223.1.2.4 transaction ID: 654 Lifetime: 3600 secs DHCP request src: 0.0.0.0, 68 dest:: 255.255.255.255, 67 yiaddrr: 223.1.2.4 transaction ID: 655 Lifetime: 3600 secs time DHCP ACK src: 223.1.2.5, 67 dest: 255.255.255.255, 68 yiaddrr: 223.1.2.4 transaction ID: 655 Lifetime: 3600 secs Netværkslaget

NAT: Network Address Translation resten af Internettet lokalnet (f.eks. hjemmenetværk) 10.0.0/24 10.0.0.1 10.0.0.4 10.0.0.2 138.76.29.7 10.0.0.3 Alle datagrammer der forlader lokalnettet har samme enkeltsource NAT IP-adresse: 138.76.29.7, men forskellige source port numre Datagrammer med source eller destination i dette net har 10.0.0/24 adresser som source og destination (som sædv.) Netværkslaget

NAT: Network Address Translation Motivation: lokalnet bruger kun én IP-adresse overfor omverdenen: ingen grund til at tildele et antal adresser fra ISP: - bare én IP-adresse kan bruges til alle enhederne. man kan ændre adresser på enheder i lokalnettet uden at fortælle omverdenen om det. man kan skifte ISP uden at ændre adresser på enhederne i lokalnettet. enheder indenfor lokalnettet kan ikke adresseres eller ses af omverdenen (en sikkerhedsfordel). Netværkslaget

NAT: Network Address Translation Implementation: NAT rutere skal: udgående datagrammer: erstatte (source IP-adresse, portnr.) på hvert udgående datagram til (NAT IP-adresse, nyt portnr) . . . remote klienter/servere svarer ved at bruge (NAT IP-adresse, nyt portnr) som destinations addr. husk (i NAT oversættertabellen) hvert (source IP-adresse, portnr) til (NAT IP-adresse, nyt portnr) oversætter-par indkommende datagrammer: erstat (NAT IP-adresse, nyt portnr.) i dest felterne af hvert indkommende datagram med tilsvarende (source IP-adresse, portnr) gemt i NAT-tabellen Netværkslaget

NAT: Network Address Translation NAT translation table WAN side addr LAN side addr 1: maskine 10.0.0.1 sender datagram til 128.119.40, 80 2: NAT ruter ændrer datagram source addr fra 10.0.0.1, 3345 til 138.76.29.7, 5001, og opdaterer tabellen 138.76.29.7, 5001 10.0.0.1, 3345 …… …… S: 10.0.0.1, 3345 D: 128.119.40.186, 80 1 10.0.0.1 S: 128.119.40.186, 80 D: 10.0.0.1, 3345 4 S: 138.76.29.7, 5001 D: 128.119.40.186, 80 2 10.0.0.4 10.0.0.2 138.76.29.7 S: 128.119.40.186, 80 D: 138.76.29.7, 5001 3 10.0.0.3 4: NAT ruter ændrer datagram dest adr fra 138.76.29.7, 5001 til 10.0.0.1, 3345 3: Svar ankommer dest. adresse: 138.76.29.7, 5001 Netværkslaget

NAT: Network Address Translation 16-bit port-nummer felt: 60,000 samtidige forbindelser med en enkelt LAN-side adresse ! NAT er kontroversiel: rutere bør kun behandle op til lag 3 ødelægger end-to-end argumentet NAT muligheder skal overvejes af app designere, f.eks. P2P applikationer adressemangel bør hellere klares med IPv6 Netværkslaget

Kapitel 4 oversigt 4.1 Indledning og netværks-servicemodeller 4.2 Rutningsprincipper 4.3 Hierarkisk rutning 4.4 Internet- (IP-)protokollen 4.5 Rutning i Internettet 4.5.1 Intra-AS rutning: RIP og OSPF 4.5.2 Inter-AS rutning: BGP 4.6 Hvad er der inden i en ruter ? 4.7 IPv6 4.8 Multicast rutning 4.9 Mobilitet Netværkslaget

Rutning i Internettet Det Globale Internet består af Autonome Systemer (AS) forbundet med hinanden: Stub AS: lille firma: én forbindelse til andre AS’er Multihomed AS: stort firma (ingen transit): multiple forbindelser til andre AS’ere Transit AS: udbyder, der binder mange AS’ere sammen To-niveau rutning: Intra-AS: administratoren er ansvarlig for valget af rutningsalgoritme i nettet Inter-AS: éntydig standard for inter-AS rutning: BGP Netværkslaget

Internet AS Hierarki Intra-AS grænse (exterior gateway) rutere Inter-AS (interior gateway) rutere Netværkslaget

Intra-AS rutning Kendes også som Interior Gateway Protocols (IGP) De mest almindelige Intra-AS rutningsprotokoller: RIP: Routing Information Protocol OSPF: Open Shortest Path First IGRP: Interior Gateway Routing Protocol (Cisco proprierær=ejes af Cisco) Netværkslaget

RIP ( Routing Information Protocol) Distance-vektor algoritmen Inkluderet i BSD-UNIX Distributionen i 1982 Distancemål: antal hops (max = 15 hops) Hvorfor? Distance-vektorer: udveksles mellem naboer hvert 30 sek via Response Message (også kaldet avertissiment=kundgørelse) Hvert avertissiment: liste på op til 25 destinationsnet indenfor AS Netværkslaget

RIP: eksempel z w x y A D B C y B 2 z B 7 x -- 1 Destinations Netværk Næste ruter Antal hop til dest. w A 2 y B 2 z B 7 x -- 1 …. …. .... Rutetabel i D Netværkslaget

RIP: eksempel w x y z A C D B y B 2 z B A 7 5 x -- 1 Avertissiment Dest Next hops w - - x - - z C 4 …. … ... Avertissiment fra A til D w x y z A C D B Destinationsnetværk Næste ruter Antal hop til dest. w A 2 y B 2 z B A 7 5 x -- 1 …. …. .... Rutetabel i D Netværkslaget

RIP: Link-svigt og genoprettelse Hvis intet avertissiment høres efter 180 sek --> neabo/link erklæres død ruter via naboen gøres ugyldige nye avertissimenter sendes til naboerne naboerne sender igen nye avertissimenter ud (hvis tabellerne er ændrede) link-svigts info propageres hurtigt ud til hele nettet poison reverse bruges til at forhindre ping-pong loops (uendelig afstand = 16 hop) Netværkslaget

RIP Tabelbehandling RIP rutetabeller vedligeholdes af en applikationsniveau proces kaldet route-d (daemon) avertissmenter sendes i UDP-pakker, der gentages periodisk routed routed Transprt (UDP) Transprt (UDP) network forwarding (IP) tabel network (IP) forwarding tabel link link physical physical Netværkslaget

RIP Tabeleksempel (fortsat) ruter: giroflee.eurocom.fr Destination Gateway Flags Ref Use Interface -------------------- -------------------- ----- ----- ------ --------- 127.0.0.1 127.0.0.1 UH 0 26492 lo0 192.168.2. 192.168.2.5 U 2 13 fa0 193.55.114. 193.55.114.6 U 3 58503 le0 192.168.3. 192.168.3.5 U 2 25 qaa0 224.0.0.0 193.55.114.6 U 3 0 le0 default 193.55.114.129 UG 0 143454 Tre tilkoblede klasse C net (LANs) ruteren kender kun ruten til de tilkoblede LANs Default ruter bruges til at “gå op” Route multicast adresse: 224.0.0.0 Loopback interface (til debugging) Netværkslaget

OSPF (Open Shortest Path First) “åben”: offentlig tilgængelig Bruger Link State algoritmen LS pakkepredning Topologi-kort i hver knude Ruteberegning ved hjælp af Dijkstra’s algoritme OSPF avertissimenter har en værdi for hver ruter avertissimenter spredes til hele AS (via flooding) Bæres i OSPF beskeder direkte over IP (ikke i TCP eller UDP) Netværkslaget

OSPF “avancerede” features (ikke i RIP) Sikkerhed: alle OSPF beskeder autentificeres (for at forhindre ondsindet indtrængen) Multiple veje tillades (kun en vej i RIP) For hvert link er der multiple omkostningsmål for forskellige TOS (f.eks. sættes satellit-omkostning “lavt” for best effort; højt for real time) Integreret uni- og multicast støtte: Multicast OSPF (MOSPF) bruger samme topologi- database som OSPF Hierarkisk OSPF i store domæner. Netværkslaget

Hierarkisk OSPF Netværkslaget

Hierarkisk OSPF To-niveau hierarki: lokalt og backbone. Link-state advertisement kun lokalt alle knuder har en detaljeret lokaltopologi, men kender kun retningen (den korteste vej) til andre lokale net. Area border ruters: “opsummerer” afstandene til net i eget lokalområde og averterer til andre Area Border ruters. Backbone ruters: kør OSPF rutning begrænset til backbone. Boundary ruters: forbundne til andre AS’ere. Netværkslaget

Inter-AS Rutning i Internettet: BGP Netværkslaget

Internet inter-AS routing: BGP BGP (Border Gateway Protocol): de facto standard Path Vector protokol: ligner Distance Vektor protokollen hver Border Gateway broadcaster til hele vejen (d.v.s. sekvens af AS’ere) til destinationen til naboer (peers) BGP ruter til net (AS’ere), ikke til individuelle maskiner F.eks. kan Gateway X sende sin vej til dest. Z: Path (X,Z) = X,Y1,Y2,Y3,…,Z Netværkslaget

Internet inter-AS rutning: BGP Antag: gateway X sender dens vej til peer gateway W W kan måske vælge vejen tilbudt af X pris, politik (ingen rutning via konkurrenters AS), forhindringer af løkker. Hvis W vælger vejen averteret af X, så: Path (W,Z) = w, Path (X,Z) NB: X kan styre indkommende traffik ved dets route avertissimenter til peers: F.eks. hvis jeg ikke ønsker at route traffik til Z -> så averterer jeg ingen veje til Z Netværkslaget

BGP: kontrol af, hvem der ruter til dig A,B,C er udbydernet X,W,Y er kunder (af udbydernettet) X er dual-homed: d.v.s. koblet til to net X ønsker ikke at route fra B via X til C .. så X averterer ikke til B en rute til C Netværkslaget

BGP: kontrol af, hvem der ruter til dig A averterer til B vejen AW B averterer til W vejen BAW Skulle B avertere til C vejen BAW? Overhovedet ikke ! B får ikke noget “ud af” at rute CBAW da hverken W eller C er B’s kunder B ønsker at tvinge C til at rute til w via A B ønsker kun at rute til/fra sine kunder! Netværkslaget

BGP opgaver Spm: Hvad gør en BGP ruter ? Modtager og filtrerer rute-avertissimenter fra direkte forbundne nabo(er). Rutevalg. For at route til destination X hvilken vej (af flere bekendtgjorte) vil blive benyttet ? Sender rute-avertissimenter til naboerne. Netværkslaget

BGP beskeder BGP beskeder udveksles ved hjælp af TCP. BGP beskeder: OPEN: åbner TCP-forbinelse til peer og autentificerer afsenderen UPDATE: averterer en ny vej (eller trækker en gammel tilbage) KEEPALIVE holder forbindelsen i live i mangel af UPDATES; ACK’er en OPEN anmodning NOTIFICATION: rapporterer fejl i tidligere besked; bruges også til at lukke forbindelsen Netværkslaget

Hvorfor er der forskellig Intra- and Inter-AS rutning ? Politik: Inter-AS: administratorer ønsker kontrol over hvordan deres trafik rutes og hvem der ruter gennem deres net. Intra-AS: en enkelt administrator, så policy -beslutninger er unødvendige. Skala: Hierarkisk rutning sparer tabelstørrelse og reducerer opdateringstrafik Ydeevne: Intra-AS: kan fokusere på ydeevne Inter-AS: policy kan dominere over ydeevne Netværkslaget

Kapitel 4 oversigt 4.1 Indledning og netværks-servicemodeller 4.2 Rutningsprincipper 4.3 Hierarkisk rutning 4.4 Internet- (IP-)protokollen 4.5 Rutning i Internettet 4.6 Hvad er der inden i en ruter ? 4.7 IPv6 4.8 Multicast rutning 4.9 Mobilitet Netværkslaget

Ruter Arkitektur-overblik To vigtigste ruter-funktioner: at køre rutnings-algoritmer/protokoller (RIP, OSPF, BGP) at omkoble datagrammer fra indkommende til udgående link Netværkslaget

Input-port funktioner Fysisk lag: bit-niveau modtagelse Decentraliseret omkobling: givet datagram dest., slå output port op v.h.a. rutetabel i input port memory mål: fuldende input port processering i ‘liniehastighed’ kø: hvis datagrammer ankommer hurtigere end de kan sendes videre til omkoblingskredsløbet Data-linklaget: f.eks. Ethernet se Kapitel 5 Netværkslaget

Input-port kødannelse Hvis omkoblingskredsløbet er langsommere end input portene kombineret -> kødannelse kan forekomme i input-køerne Head-of-the-Line (HOL) blokering: datagrammer forrest i køen hindrer andre i køen i at bevæge sig fremad. køforsinkelser og tab p.g.a. input buffer overflow! Netværkslaget

Tre typer omkoblingskredsløb: Netværkslaget

Omkobling via lager Første generations rutere: pakken kopieres af systemets (eneste) CPU hastigheden begrænses af lagerbåndbredden (2 bus passager pr. datagram) Input Port Output Memory System Bus Moderne rutere: en input port processor udfører opslaget og kopierer ind i lageret Cisco Catalyst 8500 Netværkslaget

Omkobling via bus datagrammet går fra input port lager til output port lager via en delt bus buskappestrid: omkoblingshastigheden begrænses af bus-båndbredden 1 Gb/s bus, Cisco 1900: tilstrækkelig hastighed til adgangs- og firma-rutere (ikke regionale eller backbone) Netværkslaget

Omkobling via et forbindelsesnet overvinder bus-båndbreddebegrænsningerne Banyan-net og andre forbindelsesnet oprindeligt udviklede til at forbinde processorer i multiprocessorere Avanceret konstruktion: fragmentering af datagrammet i fastlængde-celler, som kobles gennem kredsløbet. Cisco 12000: omkobler Gb/s gennem forbindelsesnettet Netværkslaget

Output-porte Bufring kræves, når datagrammerne ankommer fra kredløbet hurtigere end sendehastigheden En planlægningsenhed vælger mellem datagrammerne i køen til transmission Netværkslaget

Output-port kødannelse bufring, når ankomsthastigheden via kredsløbet overstiger output-liniehastigheden kødannelse (forsinkelser) og tab p.g.a. output port buffer overflow ! Netværkslaget

Kapitel 4 oversigt 4.1 Indledning og netværks-servicemodeller 4.2 Rutningsprincipper 4.3 Hierarkisk rutning 4.4 Internet- (IP-)protokollen 4.5 Rutning i Internettet 4.6 What’s Inside a ruter? 4.7 IPv6 4.8 Multicast rutning 4.9 Mobilitet Netværkslaget

IPv6 Den første motivation: 32-bit adresserummet er helt udnyttet i 2008. Yderligere motivation: et header-format, der hjælper til hurtigere processering og forwarding header-ændringer, der letter QoS nye “anycast” adresser: ruten til den “bedste” af flere replikerede servere IPv6 datagram format: fast-længde 40 byte header fragmentering tillades ikke Netværkslaget

IPv6 header (fortsat) Prioritet: identificér prioritet blandt datagrammer i flow Flow Label: identifér datagrammer i samme “flow.” (begrebet “flow” er ikke veldefineret). Next header: identifér øvre-lags protokol for data Netværkslaget

Andre ændringer fra IPv4 Checksum: er helt fjernet for at mindske processeringstiden ved hvert hop Options: er tilladte, men udenfor headeren, indikeret ved “Next Header” feltet ICMPv6: ny version af ICMP ekstra besked-typer, f.eks. “Packet Too Big” multicast gruppe-administrationsfunktioner Netværkslaget

Overgang fra IPv4 til IPv6 Ikke alle rutere kan opgraderes samtidigt ingen “indvielsesdag” Hvordan vil nettet operere med blandede IPv4 og IPv6 rutere ? To løsninger er foreslået: Dual Stack: nogle rutere med dual stack (v6, v4) kan “oversætte” mellem formaterne Tunneling: IPv6 transporteret som data i et IPv4 datagram mellem IPv4 rutere Netværkslaget

Dual Stack-metoden A B C D E F IPv6 IPv6 IPv4 IPv4 IPv6 IPv6 A-to-B: Flow: X Src: A Dest: F data Src:A Dest: F data Src:A Dest: F data Flow: ?? Src: A Dest: F data A-to-B: IPv6 B-to-C: IPv4 B-to-C: IPv4 B-to-C: IPv6 Netværkslaget

Tunneling A B E F Logisk set: A B C D E F Fysisk set: Src:B Dest: E IPv6 IPv6 IPv6 IPv6 A B C D E F Fysisk set: IPv6 IPv6 IPv4 IPv4 IPv6 IPv6 Flow: X Src: A Dest: F data Flow: X Src: A Dest: F data Src:B Dest: E Flow: X Src: A Dest: F data Src:B Dest: E Flow: X Src: A Dest: F data A-to-B: IPv6 E-to-F: IPv6 B-to-C: IPv6 inside IPv4 B-to-C: IPv6 inside IPv4 Netværkslaget

Kapitel 4 oversigt 4.1 Indledning og netværks-servicemodeller 4.2 Rutningsprincipper 4.3 Hierarkisk rutning 4.4 Internet- (IP-)protokollen 4.5 Rutning i Internettet 4.6 What’s Inside a ruter? 4.7 IPv6 4.8 Multicast rutning 4.9 Mobilitet Netværkslaget

Multicast: én afsender til mange modtagere Multicast: dette at sende datagrammer til mange modtagere med en enkelt “send” operation analogi: én lærer til mange studerende Spm: hvordan opnås multicast ? Multicast via unicast maskinen sender N unicast datagrammer, ét adresseret til hver af N modtagere multicast modtager (rød) ikke en multicast modtager (grå) rutere fremsender unicast datagrammer Netværkslaget

Multicast: én afsender til mange modtagere Multicast: dette at sende datagrammer til mange modtagere med en enkelt “send” operation analogi: en lærer underviser mange studerende Spm: hvordan opnås multicast ? Netværks-multicast En ruter deltager aktivt i multicast ved at lave kopier af pakker efter behov og fremsende dem til multicast-modtagere Multicast rutere (røde) kopierer og fremsender multicast datagrammer Netværkslaget

Multicast: én afsender til mange modtagere Multicast: dette at sende datagrammer til mange modtagere med en enkelt “send” operation analogi: en lærer til mange studerende Spm: hvordan opnås multicast ? Applikation-lags multicasting ende-systemerne er involveret i multicast kopiering og fremsendelse af unicast datagrammer indbyrdes Netværkslaget

Internettets multicast service-model 128.59.16.12 128.119.40.186 multicast group 226.17.30.197 128.34.108.63 128.34.108.60 multicast gruppebegrebet: brug af indirection maskinerne adresserer IP-datagrammerne til multicast-grupper rutererne fremsender multicast datagrammer til de maskiner som er “gået ind i” denne multicast gruppe Notes: The Internet multicast service model and addressing/group management ideas have their foundation in the PhD thesis of S. Deering: “Multicast rutning in a Datagram Network,” Dept. of Computer Science, Stanford University, 1991. 3.1 Netværkslaget: Introduction 3-2 Netværkslaget

Multicast-grupper class D Internet-adresserne er reservet til multicast: maskingruppe-semantik: enhver kan “gå end i” (modtage) en multicast-gruppe enhver kan sende til en multicast-gruppe ingen netværks-lags identifikation til maskinerne om medlemmerne behov for: infrastruktur for at aflevere mcast-adresserede datagrammer til alle maskiner, som er gået ind i denne multicast-gruppe Notes: 3.1 Netværkslaget: Introduction 3-3 Netværkslaget

At gå ind i en mcast-gruppe: en to-trins proces lokalt: maskinen informerer den lokale mcast ruter om sit ønske om at gå ind i gruppen: IGMP (Internet Group Management Protocol) wide area: den lokale ruter taler med andre rutere for at modtage mcast datagram-flow mange protokoller (f.eks. DVMRP, MOSPF, PIM) IGMP IGMP Notes: 3.2 Netværkslaget: Multicast Addressing and Group Management 3-5 wide-area multicast rutning IGMP Netværkslaget

IGMP: Internet Group Management Protocol maskine: sender en IGMP rapport når applikationen går ind i en mcast gruppe IP_ADD_MEMBERSHIP socket option en maskine behøver ikke eksplicit at “gå ud af” gruppen, når den forlader. ruter: sender IGMP forspørgsel med regelmæssige mellemrum. maskiner, der hører til en mcast-gruppe, skal svare på forespørgslen. Notes: 3.2 Netværkslaget: Multicast Addressing and Group Management 3-6 forespørgsel rapport Netværkslaget

IGMP IGMP v2: tilføjelser omfatter gruppe-specifik forespørgsel “Leave Group” besked den sidste maskine, der svarer på forespørgslen kan sende explicit “Leave Group” besked ruterne udfører gruppe-specifikke forespørgsler for at se, om der er maskiner tilbage i gruppen RFC 2236 IGMP v3: under udvikling som Internet-udkast IGMP version 1 ruter: Host Membership Query besked udsendes på LAN til alle maskiner maskine: Host Membership Report besked for at angive gruppe-medlemsskab randomiseret forsinkelse før den svarer kan implicit forlade ved ikke at besvare forespørgslen RFC 1112 Notes: RFC-1112: S. Deering, “Host Extension for IP Multicasting,” August 1989 RFC 2236: R. Fenner, “Internet Group Management Protocol, Version 2”, November 1997. B. Cain, S. Deering, A. Thyagarajan, “Internet Group Management Protocol, Version 3,” work in progress, draft-ietf-idmr-igmp-v3-00.txt 3.2 Netværkslaget: Multicast Addressing and Group Management 3-7 Netværkslaget

Multicast-rutning: Problemformulering Mål: at finde et træ (eller træer) der forbinder rutere med lokal mcast-gruppemedlemmer træ: ikke alle veje mellem rutere bruges kilde-baseet: forskelligt træ fra hver afsender til modtagerne delt-træ: samme træ bruges af alle gruppemedlemmer Kilde-baserede træer Notes: 3.3 Netværkslaget: Multicast rutning Algorithms 3-9 Delt træ

Metoder til konstruktion af mcast-træer kilde-baseret træ: et træ pr. kilde korteste-vej træer reverse path forwarding gruppe-delte træer: gruppen bruger et træ minimalt udspændende (Steiner) center-baserede træer Notes: 3.3 Netværkslaget: Multicast rutning Algorithms 3-11 …vi ser først på de grundlæggende metoder og så på specifike protokoller, der bruger disse metoder.

Korteste-vej træ mcast forwarding-træ: træ med korteste vejs ruter fra kilden til alle modtagerne. Dijkstra’s algoritme S: source Forklaring R1 2 R4 ruter med tilknyttet gruppe-medlem 1 R2 5 Notes: 3.3 Netværkslaget: Multicast rutning Algorithms 3-12 ruter uden tilknyttet gruppe-medlem 3 4 R5 6 link som bruges til fremsendelse, i angiver rækkefølge af links tilføjet af algoritmen R3 i R6 R7

Reverse Path Forwarding bygger på ruterens kendskab til unicast-korteste-vej fra den til afsenderen. hver ruter har en simpel fremsendelsesmåde: hvis (mcast datagram er modtaget på det indkommende link på den korteste vej tilbage til centret) så send datagram ud på alle udgående links ellers se bort fra datagrammet Notes: 3.3 Netværkslaget: Multicast rutning Algorithms 3-13

Reverse Path Forwarding: eksempel S: source FORKLARING R1 R4 ruter med tilknyttet gruppe-medlem R2 ruter uden tilknyttet gruppemedlem R5 R3 datagrammet vil blive fremsendt R6 R7 datagrammet vil ikke blive fremsendt Notes: 3.3 Netværkslaget: Multicast rutning Algorithms 3-14 resultet er en kilde-specifik omvendt SPT kan være et dårligt valg med asymmetriske links

Reverse Path Forwarding: beskæring fremsendende træ indeholder undertræer uden mcast gruppe-medlemmer ingen grund til at fremsende datagrammer ned i undertræer “beskær” beskeder, der sendes upstream af ruter uden downstream gruppe-medlemmer S: source Forklaring R1 ruter med tilknyttet gruppemedlem R4 ruter uden tilknyttet gruppemedlem R2 Notes: 3.3 Netværkslaget: Multicast rutning Algorithms 3-15 P P R5 beskær besked P links med multicast fremsendelse R3 R6 R7

Delt-træ: Steiner-træ Et Steiner-træ: et minimum cost træ der forbinder alle rutere med tilknyttede gruppemedlemmer problem er NP-komplet der findes fremragende heuristikker bruges ikke i praksis: beregningsmæssigt komplekst information om hele nettet kræves monolitisk (stor blok): skal køres igen, hver gan en ruter skal gå ind eller ud Notes: 1. See L. Wei and D. Estrin, “A Comparison of multicast trees and algorithms,” TR USC-CD-93-560, Dept. Computer Science, University of California, Sept 1993 for a comparison of heuristic approaches. 3.3 Netværkslaget: Multicast rutning Algorithms 3-16

Center-baserede træer et enkelt afleveringstræ deles af alle én ruter identificeres som træets “centrum” for at gå ind: kant-ruter sender en unicast join-besked adresseret til center-ruteren join-beskeden “behandles” af mellemliggende rutere og fremsendes mod centrum join-besked vil enten ramme eksisterende træforgrening for dette centrum, eller ankommer til centret vejen taget af join-beskeden bliver en ny gren af træet for denne ruter Notes: 1. It’s always nice to see a PhD dissertation with impact. The earliest discussion of center-based trees for multicast appears to be D. Wall, “Mechanisms for Broadcast and Selective Broadcast,” PhD dissertation, Stanford U., June 1980. 3.3 Netværkslaget: Multicast rutning Algorithms 3-17

Center-baserede træer: eksempel Antag, at R6 vælges som centrum: FORKLARING R1 ruter med tilknyttet gruppemedlem R4 3 ruter uden tilknyttet gruppemedlem R2 2 1 R5 vej-rækkefølge i hvilken join beskeder genereres Notes: 3.3 Netværkslaget: Multicast rutning Algorithms 3-18 R3 1 R6 R7

Internet Multicasting Rutning: DVMRP DVMRP: distance-vektor Multicast rutnings-protokol, RFC1075 flood and prune: reverse path forwarding, kilde-baseret træ RPF træ baseret på DVMRP’s egne rutetabeller konstrueret af kommunikerende DVMRP rutere ingen antagelser om underliggende unicast et initialt datagram til mcast-gruppen spredes overalt via RPF rutere, der ikke ønsker gruppen, sender upstream beskæringsbeskeder Notes: D. Waitzman, S. Deering, C. Partridge, “Distance Vector Multicast rutning Protocol,” RFC 1075, Nov. 1988. The version of DVMRP in use today is considerably enhanced over the RFC1075 spec. A more up-to-date “work-in-progress” defines a version 3 of DVMRP: T. Pusateri, “Distance Vector Multicast rutning Protocol,” work-in-progress, draft-ietf-idmr-v3-05.ps 3.4 Netværkslaget: Internet Multicast rutning Algorithms 3-20

DVMRP: fortsat… soft state: DVMRP ruter “glemmer” periodisk (1 min.) beskårne grene: mcast data flyder igen nedad ubeskårne grene downstream ruter: beskær igen eller fortsæt med at modtage data rutere kan hurtigt podes igen til træet ved at følge en IGMP indgang ved bladet andre ting implementeres normalt i kommercielle rutere Mbone rutning sker ved DVMRP Notes: 1. See www.mbone.com/mbone/ruters.html for a (slightly outdatet) list of multicast capable ruters (supporting DVMPR as well as other protocols) from various vendors. 2. ftp://parcftp.xerox.com/pub/net-research/ipmulti for circa 1996 public copy “mrouted” v3.8 of DVMRP routing software for various workstation routing platforms. 3.4 Netværkslaget: Internet Multicast rutning Algorithms 3-21

Tunneling Spm: Hvordan forbindes “øer” af multicast- rutere i et “hav” af unicast-rutere ? fysisk topologi logisk topologi mcast datagram indkapsles inden “normale” (ikke-multicast-adresserede) datagrammer normale IP-datagrammer sendes gennem “tunneller” via regulær IP-unicast til den modtagende mcast-ruter den modtagende mcast-ruter udpakker for at få mcast- datagrammet Notes: For a general discussion of IP encapsulation, see C. Perkins, “IP Encapsulation within IP,” RFC 2003, Oct. 1996. The book S. Bradner, A Mankin, “Ipng: Internet protocol next generation,” Addison Wesley, 1995 has a very nice discussion of tunneling Tunneling can also be used to connect islands of IPv6 capable ruters in a sea IPv4 capable ruters. The long term hope is that the sea evaporates leaving only lands of IPv6! 3.4 Netværkslaget: Internet Multicast rutning Algorithms 3-22

PIM: Protocol Independent Multicast ikke afhængig af nogen speciel underliggende unicast rutningsalgoritme (virker med dem alle) to forskellige multicast-fordeling scenarier : Tæt: gruppe-medlemmerne er tæt pakkede, “nær” hinanden. godt med båndbredde Tyndt: antal net med gruppemedlemmer er lille i forhold til antallet af forbundne net gruppemedlemmerne er “spredt overalt” ikke meget båndbredde Notes: a very readable discussion of the PIM architecture is S. Deering, D. Estrin, D. Faranacci, V. Jacobson, C. Liu, L. Wei, “The PIM Architecture for Wide Area Multicasting,” IEEE/ACM Transactions on Networking, Vol. 4, No. 2, April 1996. D. Estrin et al, PIM-SM: Protocol Specification, RFC 2117, June 1997 S. Deering et al, PIM Version 2, Dense Mode Specification, work in progress, draft-ietf-idmr-pim-dm-05.txt PIM is implemented in Cisco ruters and has been deployed in UUnet as part of their streaming multimedia delivery effort. See S. LaPolla, “IP Multicast makes headway among ISPs,” PC Week On-Line, http://www.zdnet.com/pcweek/news/1006/06isp.html 3.4 Netværkslaget: Internet Multicast rutning Algorithms 3-25

Konsekvenserne af opdelingen i tynde og tætte: ruterne antager gruppemedlemsskab indtil de eksplicit beskærer data-drevet konstruction på mcast- træ (f.eks. RPF) båndbredde og ikke-gruppe-ruter processsering “profligerer” Tyndt: ikke medlemssbab før ruterne eksplicit går ind modtager- drevet konstruktion af mcast- træ (f.eks. center-baseret) båndbredde og ikke-gruppe-ruter processering er konservativ Notes: 3.4 Netværkslaget: Internet Multicast rutning Algorithms 3-26

PIM- Tæt måde flood-and-prune RPF ligner DVMRP med den underliggende unicast-protokol giver RPF info for indkommende datagram mindre kompliceret (mindre effektiv) downstream flood end DVMRP reducerer tilliden til den underliggende rutningsalgoritme har protokol-mekanisme, så ruteren kan opdage, at den er en blad-knude ruter Notes: 3.4 Netværkslaget: Internet Multicast rutning Algorithms 3-27

PIM – Tynd måde center-baseret metode ruteren sender “gå ind”- besked to et rendezvous point (RP)(mødepunkt) mellemliggende rutere opdaterer tilstanden og fremsender “gå ind”(join) efter at være gået ind via RP kan ruteren can skifte til et kilde-specifikt træ øget ydeevne: mindre koncentration og kortere veje R1 R4 join R2 join R5 join R3 R7 R6 Notes: 3.4 Netværkslaget: Internet Multicast rutning Algorithms 3-28 alle data multicastes fra rendezvous- punktet rendezvous punkt

PIM – Tynd måde afsender(e): unicast data til RP, som fordeler dem ned i et træ med rod i RP. RP kan udvide mcast træet upstream til kilden RP kan sende stop- besked, hvis der ikke er nogen tilkoblede modtagere receivers “ingen lytter !” R1 R4 join R2 join R5 join R3 R7 R6 Notes: 3.4 Netværkslaget: Internet Multicast rutning Algorithms 3-29 alle data multicastes fra rendezvous- punktet rendezvous- punkt

Kapitel 4 oversigt 4.1 Indledning og netværks-servicemodeller 4.2 Rutningsprincipper 4.3 Hierarkisk rutning 4.4 Internet- (IP-)protokollen 4.5 Rutning i Internettet 4.6 What’s Inside a ruter? 4.7 IPv6 4.8 Multicast rutning 4.9 Mobilitet Netværkslaget

Hvad er mobilitet? der er et spektrum af mobilitet fra et netværks- perspektiv: ingen mobilitet høj mobilitet mobil bruger, der bruger samme access point mobil bruger, der forbinder til/frakobler fra nettet med DHCP. mobil bruger, der passerer gennem multiple access points, mens forbindelsen opretholdes (som mobiltelefon) Netværkslaget

Mobilitet: terminologi hjemme-netværk: mobilens permanente “hjem” (f.eks. 128.119.40/24) hjemme-agent: en enhed, som udfører mobilitetsfunktioner på den mobiles vegne, når den mobile er væk wide area network Permanent adresse: adresse i hjemme- nettet, som altid kan bruges til at nå mobilen f.eks. 128.119.40.186 korrespondent Netværkslaget

Mobilitet: mere terminologi besøgt netværk: netværk hvori den mobile p.t. er (e.g., 79.129.13/24) Permanent adresse: forbliver konstant (e.g., 128.119.40.186) C/O-adresse: adresse i det besøgte netværk. (e.g., 79,129.13.2) wide area network hjemme-agent: enhed i det besøgte netværk, som udfører mobilitets- funktioner på mobilens vegne. korrespondent: ønsker at kommunikere med den moblie Netværkslaget

Hvordan kontakter du en mobil veninde ?: Gad vide hvor Alice flyttede hen ? Hvis veninden hyppigt skifter adresser, hvordan finder du hende ? Kig i alle telefonbøger ? spørg hendes forældre ? vente på, at hun fortæller, hvor hun er ? Netværkslaget

Mobilitet: metoder Lad rutning klare det: rutere averterer permanente adresser på mobile-knuder-i-residence via sædvanlige ruta-tabel udvekslinger. rutetabellerne angiver hvor hver mobil befinder sig ingen ændringer i ende-systemer Lad ende-systemerne klare det: indirekte rutning: kommunikation fra korrespondent til mobil går gennem hjemme-agenten, og fremsender herfra til den fjerne direkte rutning: korrespondenten får den mobiles ude-adresse og sender direkte til den mobile Netværkslaget

Mobilitet: metoder Let routing handle it: ruters advertise permanent address of mobile-nodes-in-residence via usual routing table exchange. routing tables indicate where each mobile located no changes to end-systems Lad ende-systemerne klare det: : indirekte rutning: kommunikation fra korrespondent til mobil går gennem hjemme-agenten, og fremsender herfra til den fjerne direkte rutning: korrespondenten får den mobiles ude-adresse og sender direkte til den mobile scalerer ikke til millioner af mobile Netværkslaget

Mobilitet: registrering besøgte netværk hjemme-netværk 1 den mobile kontakter den fremmede agent, når den går ind i det besøgte netværk 2 den fremmede agent kontakter hjemme-agenten hjemme: “den mobil er p.t. i mit netværk” wide area network Slutresult: Den fremmede agent kender den mobile Hjemme-agenten ved hvor mobilen er Netværkslaget

Mobilitet via indirekte rutning den fremmede agent modtager pakker og fremsender dem til den mobile hjemme-agenten opsnapper pakker og fremsender dem til den fremmede agent besøgte netværk hjemme- netværk 3 4 wide area network 1 2 korrespondenten adresserer pakker til mobilens hjemadresse den mobile svarer direkte til korrespondenten Netværkslaget

Indirekte rutning: kommentarer Den mobile bruger to adresser: en permanent adresse: bruges af korrespondenten (d.v.s. den mobiles position er transparent overfor korrespondenten) C/O-adresse: bruges af hjemme-agenten til at fremsende datagrammer til den mobile de fremmede-agent funtioner kan udføres af den mobile selv trekant-rutning: korrespondent-hjemmenetværk-mobile ineffektivt når korrespondenten og den mobile er i samme netværk Netværkslaget

Fremsendelse af datagrammer til den fjerne mobile dest: 128.119.40.186 fremmed-agent-til-mobil pakke dest: 79.129.13.2 dest: 128.119.40.186 pakker, der sendes af hjemme-agenten til den fremmede agent: en pakke inden i en pakke Permanent adresse: 128.119.40.186 C/O adresse: 79.129.13.2 dest: 128.119.40.186 pakke sendt af korrespondent Netværkslaget

Indirekte rutning: bevægelse mellem net antag, at den mobile bruger flytter til et andet net og registrerer sig til en ny fremmed agent den nye fremmede agent registerer sig til hjemmeagenten hjemme-agenten opdateere C/O-adressen for den mobile pakkerne fortsætter med at blive fremsendt til den mobile (men med ny C/O-adresse) Mobilitet med skift til fremmede netværk er transparent: igangværende forb indelser kan opretholdes ! Netværkslaget

Mobilitet via direkte rutning fremmed agent modtager pakker og fremsender dem til den mobile korrespondent fremsender til fremmed agent besøgte netværk hjemme- netværk 4 wide area network 2 3 1 4 korrespondenten beder om og får den mobiles ude-adresse den mobile svarer direkte til korrespondenten Netværkslaget

Mobilitet via direkte rutning: kommentarer løser trekants-rutningsproblemet ikke-transparent for korrespondenten: korrespondenten skal have C/O-adressen fra hjemme-agenten Hvad sker der, hvis den mobile skifter netværk ? Netværkslaget

Mobil IP RFC 3220 har mange features, som vi har set: hjemme-agenter, fremmede agenter, fremmed-agent registrering, C/O-adresser og indkapsling (en pakke inden i en pakke) tre komponenter i standarden: at opdage en agent at registrere hos en hjemme-agent indirekte rutning f datagrammer Netværkslaget

Mobil IP: agent-opdagelse agent-avertering: fremmede- hjemme-agenter averterer service ved at broadcaste ICMP-beskeder (typefield = 9) H,F bits: hjemme- og/eller fremmed agent R bit: registrering kræves Netværkslaget

Mobil IP: registrerings- eksempel Netværkslaget

Netværkslaget: resumé Hvad vi har dækket: Netværkslagets services Rutningsprincipper: link state and distance vector Hierarkisk rutning IP Internet rutnings protokoller RIP, OSPF, BGP Hvad er der inden i en ruter ? IPv6 Mobilitet Næste stop: Data- link-laget ! Netværkslaget