Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Kapitel 4 Netværkslaget

Lignende præsentationer


Præsentationer af emnet: "Kapitel 4 Netværkslaget"— Præsentationens transcript:

1 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 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

2 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

3 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

4 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

5 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

6 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

7 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

8 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

9 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

10 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

11 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

12 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

13 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

14 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

15 Dijsktras algoritme 1 Initialization: 2 N = {A} 3 for all nodes v
if v adjacent to A then D(v) = c(A,v) 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: D(v) = min( D(v), D(w) + c(w,v) ) 13 /* new cost to v is either old cost to v or known shortest path cost to w plus cost from w to v */ 15 until all nodes in N Netværkslaget

16 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

17 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

18 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

19 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

20 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

21 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

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

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

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

25 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

26 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

27 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

28 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

29 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

30 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

31 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

32 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

33 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

34 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

35 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

36 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

37 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 Netværkslaget

38 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 LAN 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

39 IP-adressering Hvordan findes nettene ?
Hvordan findes nettene ? Afkobl hver interface fra rutere og maskiner herved skabes “øer af isolerede net Forbundet system bestående af seks net Netværkslaget

40 IP-adresser givet begrebet “net”, lad os se på IP-adresserne:
“class-full” adressering: class A to net maskine B to 10 net maskine to C 110 net maskine to D 1110 multicast adresse 32 bit Netværkslaget

41 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 netværks- delen maskin- /23 Netværkslaget

42 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

43 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 /20 Organization /23 Organization /23 Organization /23 … … …. Organization /23 Netværkslaget

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

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

46 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

47 At få et datagram fra kilde til destination
forwarding tabel i A Dest. Net. next ruter Nhops IP-datagram: forsk felter source IP addr dest data A B E datagrammet ændres ikke, når det rejser fra kilden til destinationen adressefelterne er af interesse her Netværkslaget

48 At få et datagram fra kilde til destination
forwarding tabel i A forsk felter Dest. Net. next ruter Nhops 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 A B E Netværkslaget

49 At få et datagram fra kilde til destination
forwarding tabel i A forsk felter Dest. Net. next ruter Nhops 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 linklaget sender datagrammet til ruter i en link-lags frame datagrammet ankommer til fortsættes.... A B E Netværkslaget

50 At få et datagram fra kilde til destination
forwarding tabel i ruter Dest. Net ruter Nhops interface forsk felter data Ved ankomst til og bestemt for slå E’s netadresse op i ruterens forwarding tabel E er på samme net som ruterens interface ruteren og E er direkte forbundne link-laget sender datagrammet til i en link-lags frame via interface datagrammet ankommer til !!! (hurra!) A B E Netværkslaget

51 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

52 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

53 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

54 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 echo reply (ping) dest. network unreachable dest host unreachable dest protocol unreachable dest port unreachable dest network unknown dest host unknown source quench (congestion control - not used) echo request (ping) route advertisement ruter discovery TTL expired bad IP header Netværkslaget

55 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

56 DHCP client-server scenarie
server B tilkoblende DHCP klient har brug for en adresse i dette netværk E Netværkslaget

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

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

59 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

60 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

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

62 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

63 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

64 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

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

66 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

67 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

68 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 …. … Rutetabel i D Netværkslaget

69 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 …. … Rutetabel i D Netværkslaget

70 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

71 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

72 RIP Tabeleksempel (fortsat)
ruter: giroflee.eurocom.fr Destination Gateway Flags Ref Use Interface UH lo0 U fa0 U le0 U qaa0 U le0 default UG Tre tilkoblede klasse C net (LANs) ruteren kender kun ruten til de tilkoblede LANs Default ruter bruges til at “gå op” Route multicast adresse: Loopback interface (til debugging) Netværkslaget

73 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

74 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

75 Hierarkisk OSPF Netværkslaget

76 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

77 Inter-AS Rutning i Internettet: BGP
Netværkslaget

78 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

79 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

80 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

81 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

82 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

83 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

84 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

85 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

86 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

87 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

88 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

89 Tre typer omkoblingskredsløb:
Netværkslaget

90 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

91 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

92 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

93 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

94 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

95 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

96 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

97 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

98 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

99 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

100 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

101 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

102 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

103 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

104 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

105 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

106 Internettets multicast service-model
multicast group 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 Netværkslaget

107 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 Netværkslaget

108 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 wide-area multicast rutning IGMP Netværkslaget

109 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 forespørgsel rapport Netværkslaget

110 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 Netværkslaget

111 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 Delt træ

112 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 …vi ser først på de grundlæggende metoder og så på specifike protokoller, der bruger disse metoder.

113 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 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

114 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

115 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 resultet er en kilde-specifik omvendt SPT kan være et dårligt valg med asymmetriske links

116 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 P P R5 beskær besked P links med multicast fremsendelse R3 R6 R7

117 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 , Dept. Computer Science, University of California, Sept 1993 for a comparison of heuristic approaches. 3.3 Netværkslaget: Multicast rutning Algorithms

118 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

119 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 R3 1 R6 R7

120 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 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

121 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 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

122 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 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

123 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, 3.4 Netværkslaget: Internet Multicast rutning Algorithms

124 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

125 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

126 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 alle data multicastes fra rendezvous- punktet rendezvous punkt

127 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 alle data multicastes fra rendezvous- punktet rendezvous- punkt

128 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

129 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

130 Mobilitet: terminologi
hjemme-netværk: mobilens permanente “hjem” (f.eks /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 korrespondent Netværkslaget

131 Mobilitet: mere terminologi
besøgt netværk: netværk hvori den mobile p.t. er (e.g., /24) Permanent adresse: forbliver konstant (e.g., ) C/O-adresse: adresse i det besøgte netværk. (e.g., 79, ) 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

132 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

133 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

134 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

135 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

136 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

137 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

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

139 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

140 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

141 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

142 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

143 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

144 Mobil IP: registrerings- eksempel
Netværkslaget

145 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


Download ppt "Kapitel 4 Netværkslaget"

Lignende præsentationer


Annoncer fra Google