kap 6 the internet protocol
DESCRIPTION
Kap 6 The Internet Protocol. 6.1 – 6.5.4 17. og 24.09.07 Christian F Heide. transportere pakke fra sendermaskin til mottagermaskin senderen pakker segmenter inn i datagrammer nettlagsprotokoller i hver eneste maskin og ruter ruter ser på header i alle IP-datagrammer som passerer - PowerPoint PPT PresentationTRANSCRIPT
Versjon 1.1 / 24.09.07
Kap 6 The Internet Protocol
6.1 – 6.5.417. og 24.09.07
Christian F Heide
Versjon 1.1 / 24.09.07 Nettlaget 6-2
Nettlaget
transportere pakke fra sendermaskin til mottagermaskin
senderen pakker segmenter inn i datagrammer
nettlagsprotokoller i hver eneste maskin og ruter
ruter ser på header i alle IP-datagrammer som passerer
mottagerside leverer segmenter til transportlaget
nettlag linklagfysisk
nettlag linklagfysisk
nettlag linklagfysisk
nettlag data link
fysisk
nettlag linklag
physical
nettlag linklag fysisk
nettlag linklag fysisk
nettlag linklagfysisk
applikasjon
transportnettlaglinklagfysisk
applikasjon
transportnettlag linklagfysisk
Versjon 1.1 / 24.09.07 Nettlaget 6-3
Figure 6.1 Internet networking components and protocols
Versjon 1.1 / 24.09.07 Nettlaget 6-4
Datagramnett: Internettmodellen intet oppsett av forbindelser på nettlaget rutere: har ikke kjennskap til ende-til-ende forbindelser pakker videresendes basert på destinasjonsadresse
pakker mellom samme sender og mottager kan ta ulike veier gjennom nettet
applikasjon
transportnettlaglinklag
fysisk lag
applikasjon
transportnettlaglinklag
fysisk lag
1. Send data 2. Motta data
Versjon 1.1 / 24.09.07 Nettlaget 6-5
Figure 6.2 IP adjunct protocols
Versjon 1.1 / 24.09.07 Nettlaget 6-6
IP datagramformat
ver lengde
32 bit
data (variabel lengde,normalt et TCP-
eller UDP-segment)
16-bit ID
Internett sjekksum
time tolive
32 bit avsender IP-adresse
IP protokollversjon
header lengde (32-bits ord)
maks antallgjenværende hopp
(dekrementeres ihver ruter)
forfragmentering/sammensetting
total datagram-lengde (byte)
protokollen som skal hanyttelasten (TCP, UDP)
head.len
type ofservice
“type” data flaggfragment
offsetupper layer
32 bit mottager IP-adresse
Opsjoner (om noen) F. eks. tidsstempel,record route,spesifisereliste av rutereman skal innom
Versjon 1.1 / 24.09.07 Nettlaget 6-7
IP fragmentering og sammensetting
nettverkslinker har MTU (max transmission unit) – største mulige linklagsramme ulike typer linker har ulike
MTU store IP-datagram deles opp
(“fragmenteres”) i nettet ett datagram blir til flere,
mindre datagram settes sammen igjen
(“reassembly”) først i endelig destinasjon
Felter i IP-header benyttes til å identifisere sammenhørende fragementer og sette dem sammen i riktig rekkefølge
fragmentering: inn: ett stort datagramut: 3 mindre datagrammer
sammensetting(reassembly)
Versjon 1.1 / 24.09.07 Nettlaget 6-8
IP fragmentering og sammensetting
ID=x
offset=0
fragflag=0
lengde=4000
ID=x
offset=0
fragflag=1
lengde=1500
ID=x
offset=185
fragflag=1
lengde=1500
ID=x
offset=370
fragflag=0
lengde=1040
Ett stort datagram blir tilflere mindre datagrammer
Eksempel 4000 byte
datagram MTU = 1500 byte
1480 byte i datafeltet
offset =1480/8
Versjon 1.1 / 24.09.07 Nettlaget 6-9
IP adressering: introduksjon IP-adresse: 32-bit ID-
nummer for maskin, ruter og grensesnitt (interface)
grensesnitt (interface): forbindelse mellom maskin/ruter og fysisk link rutere har flere
grensesnitt maskiner har normalt
kun ett grensesnitt hvert grensesnitt har en
IP-adresse
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.2223.1.3.1
223.1.3.27
223.1.1.1 = 11011111 00000001 00000001 00000001
223 1 11
Versjon 1.1 / 24.09.07 Nettlaget 6-10
Subnett IP-adresser – to deler:
subnettdel (mest signifikante bit, bit i venstre ende)
maskindel (minst signifikante bit, bit i høyre ende)
Hva er et subnett? grensesnitt med lik
subnettdel av IP-adressen
kan nå hverandre fysisk uten å gå via ruter
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.2223.1.3.1
223.1.3.27
nettverk bestående av 3 IP-nett
LAN
Versjon 1.1 / 24.09.07 Nettlaget 6-11
Subnett 223.1.1.0/24223.1.2.0/24
223.1.3.0/24
Oppskrift For å finne
subnettene, koble hvert interface fra sin maskin eller ruter slik at vi får øyer av isolerte nett. Hvert isolerte nett kalles da et subnett.
Subnett-maske: /24
Versjon 1.1 / 24.09.07 Nettlaget 6-12
SubnettHvor mange subnett? 223.1.1.1
223.1.1.3
223.1.1.4
223.1.2.2223.1.2.1
223.1.2.6
223.1.3.2223.1.3.1
223.1.3.27
223.1.1.2
223.1.7.0
223.1.7.1223.1.8.0223.1.8.1
223.1.9.1
223.1.9.2
Versjon 1.1 / 24.09.07 Nettlaget 6-13
IP-adresser
0nettverk maskin
10 nettverk maskin
110 nettverk maskin
1110 multicast adresse
A
B
C
D
klasse1.0.0.0 til127.255.255.255
128.0.0.0 til191.255.255.255
192.0.0.0 til223.255.255.255
224.0.0.0 til239.255.255.255
32 bit
Opprinnelig klasseinndeling (“class-based addressing”):
Versjon 1.1 / 24.09.07 Nettlaget 6-14
IP-adressering: CIDR “Class-based” adressering:
ineffektiv bruk av adresserom, går fort tom for ledige adresser
f. eks: et klasse B nett har nok adresser til 65 000 maskiner, selv om det kun er f. eks. 2000 maskiner i nettet
CIDR: Classless InterDomain Routing nettverksdel av adressen er av vilkårlig lengde adresseformat: a.b.c.d/x, hvor x er antall bit i nettverks-
delen av adressen
11001000 00010111 00010000 00000000
nettverks-del
maskin-del
200.23.16.0/23
Versjon 1.1 / 24.09.07 Nettlaget 6-15
IP-adresser: hvordan få tak i en?
Hvordan får en maskin sin IP-adresse?
lagt inn i en fil av sys admin Windows: control-panel Linux/UNIX: /etc/rc.config
DHCP: Dynamic Host Configuration Protocol: maskin tildeles en adresse ved oppstart av en DHCP-server “plug-and-play”
Versjon 1.1 / 24.09.07 Nettlaget 6-16
IP-adresser: hvordan få tak i en?
Hvordan får et nettverk sin IP-adresse? får en del av sin ISPs tildelte adresserom
ISPs blokk 11001000 00010111 00010000 00000000 200.23.16.0/20
Organisasjon 0 11001000 00010111 00010000 00000000 200.23.16.0/23 Organisasjon 1 11001000 00010111 00010010 00000000 200.23.18.0/23 Organisasjon 2 11001000 00010111 00010100 00000000 200.23.20.0/23 ... ….. …. ….
Organisasjon 7 11001000 00010111 00011110 00000000 200.23.30.0/23
Versjon 1.1 / 24.09.07 Nettlaget 6-17
IP-adressering: hvordan få kloa i…
Hvordan kan en ISP få en blokk av adresser?
ICANN: Internet Corporation for Assigned
Names and Numbers tildeler adresser sjef for DNS rot-tjenere tildeler domenenavn, løser navnekonflikter I Norge: Norid
Versjon 1.1 / 24.09.07 Nettlaget 6-18
NAT: Network Address Translation
10.0.0.1
10.0.0.2
10.0.0.3
10.0.0.4
138.76.29.7
lokalt nett(f eks hjemmenett)
10.0.0/24
resten avInternett
Datagram med avsender eller destinasjon i dette nettet
har 10.0.0/24 adresser som avsender og destinasjon
Alle datagram som forlater lokaltnett har samme avsender IP-
adresse: f eks 138.76.29.7, menulike avsender-portnummer
Versjon 1.1 / 24.09.07 Nettlaget 6-19
NAT: Network Address Translation
Begrunnelse: lokalt nett benytter bare en IP-adresse sett fra utsiden: trenger ikke å få tildelt mange adresser fra ISP;
kun én adresse som brukes for alle noder kan endre adresser til noder i lokalt nett uten å
måtte informere omverdenen kan bytte ISP uten å endre adresser på noder i
det lokale nettet noder i det lokale nettet kan ikke adresseres
direkte og er ikke synlige for omverdenen (positivt sikkerhetsmessig?)
Versjon 1.1 / 24.09.07 Nettlaget 6-20
NAT: Network Address Translation
Implementasjon: NAT-ruter må:
utgående datagrammer: erstatte avsender IP-adresse og portnummer med NAT IP-adresse og nytt portnummer. . . maskiner som svarer vil da bruke NAT IP-adresse
og det nye portnummer som destinasjons-adresse.
huske (i NAT translasjonstabell) hvert (avsender IP-adresse, portnummer) til (NAT IP-adresse, nytt portnummer) translasjonspar
innkommende datagrammer: erstatte NAT IP-adresse og det nye portnummer i destinasjonsfelter med de korresponderende avsender IP-adresse og portnummer lagret i NAT-tabell
Versjon 1.1 / 24.09.07 Nettlaget 6-21
NAT: Network Address Translation
10.0.0.1
10.0.0.2
10.0.0.3
S: 10.0.0.1, 3345D: 128.119.40.186, 80
1
10.0.0.4
138.76.29.7
1: maskin 10.0.0.1 sender datagram til 128.119.40, 80
NAT translasjonstabellWAN side adr. LAN side adr.
138.76.29.7, 5001 10.0.0.1, 3345…… ……
S: 128.119.40.186, 80 D: 10.0.0.1, 3345
4
S: 138.76.29.7, 5001D: 128.119.40.186, 80
2
2: NAT-ruterendrer datagramavsenderadresse fra10.0.0.1, 3345 til138.76.29.7, 5001,og oppdaterer tabellen
S: 128.119.40.186, 80 D: 138.76.29.7, 5001
3
3: Svar ankommer dest. adresse: 138.76.29.7, 5001
4: NAT-ruterendrer datagramdestinasjonsadresse fra138.76.29.7, 5001 til 10.0.0.1, 3345
Versjon 1.1 / 24.09.07 Nettlaget 6-22
NAT: Network Address Translation
16-bit portnummerfelt: 60,000 samtidige forbindelser med én enkelt
IP-adresse! NAT er kontroversiell:
rutere skal kun prosessere t.o.m. lag 3 (nettlaget)
bryter med ende-til-ende argument• mulighet for NATing må tas hensyn til av
applikasjonsdesignere mangel på adresser kan isteden løses ved
overgang til IPv6
Versjon 1.1 / 24.09.07 Nettlaget 6-23
Distansevektoralgoritme (1)
Grunnleggende idé: Hver node sender med jevne mellomrom sine
egne distansevektor-estimater til sine naboer Når en node x mottar et nytt distansevektor-
estimat fra en nabo, vil den oppdatere sin egen distansevektor ved bruk av Bellman-Ford ligningen:
Dx(y) ← minv{c(x,v) + Dv(y)} for hver node y ∊ N
Under betingelser som normalt er oppfylt, vil estimatet Dx(y) konvergere mot den virkelige minstekostnad dx(y)
Versjon 1.1 / 24.09.07 Nettlaget 6-24
Distansevektoralgoritme (2)
Iterativ, asynkron: hver lokal iterasjon er forårsaket av:
endring i lokal linkkost melding fra nabo om
endret minstekostvei (DV)
Distribuert: en node gir endrings-
melding til sine naboer bare dersom dens minste-kostvei (DV) til en av nodene endres naboene vil i sin tur
varsle sine naboer om nødvendig
vent på endring i lokal link-kost eller melding fra nabo
rekalkuler estimater
dersom minstekostvei til noen
noder er endret, varsle naboer
Hver node:
Versjon 1.1 / 24.09.07 Nettlaget 6-25
Figure 6.11 Distance vector algorithm: (a) internet topology and initial tables
Versjon 1.1 / 24.09.07 Nettlaget 6-26
Figure 6.11 Distance vector algorithm: (b) derivation of final routing tables
Versjon 1.1 / 24.09.07 Nettlaget 6-27
Distansevektoralgoritme
Bellman-Ford ligning Definerdx(y) := kost for minstekostnadsvei fra x til
yc(x,v): linkkost fra node x til node v.Da har vi
dx(y) = min {c(x,v) + dv(y) }
hvor minimum tas over alle naboer til x
Versjon 1.1 / 24.09.07 Nettlaget 6-28
Bellman-Ford eksempel
u
yx
wv
z2
2
13
1
1
2
53
5 Her erdv(z) = 5, dx(z) = 3, dw(z) = 3
du(z) = min { c(u,v) + dv(z), c(u,x) + dx(z), c(u,w) + dw(z) } = min {2 + 5, 1 + 3, 5 + 3} = 4
Noden som oppnår minimum er neste hoppi minstekostvei
B-F ligningen sier:
Versjon 1.1 / 24.09.07 Nettlaget 6-29
Link-state shortest-path-first
Link-state algoritme Hver ruter kringkaster
regelmessig en “link-state”-melding Inneholder ruterens
identitet og konnektivitets-informasjon til ruterens naboer
Hver ruter bygger opp topologi-informasjon
Shortest-path-first algoritme:
Basert på info om topologi, kjører hver ruter en SPF-algoritme for å finne korteste vei fra seg selv til alle andre rutere i nettet
Versjon 1.1 / 24.09.07 Nettlaget 6-30
Figure 6.12 Link state algorithm: (a) initial connectivity/adjacency tables
Versjon 1.1 / 24.09.07 Nettlaget 6-31
Figure 6.12 Link state algorithm: (b) derivation of active topology and netid location
Versjon 1.1 / 24.09.07 Nettlaget 6-32
Figure 6.12 (b) continued
Versjon 1.1 / 24.09.07 Nettlaget 6-33
En shortest-path-first rutingalgoritmeDijkstras algoritme nettopologi, linkkost kjent
for alle noder oppnås ved kringkasting
av linktilstanden alle noder har samme
info beregner minstkostvei fra
en node (“source”) til alle andre noder gir rutingtabell for den
noden iterativ: etter k iterasjoner
kjenner man minstekostvei til k dest
Notasjon: c(i,j): linkkost fra node i
til j. Kost uendelig hvis ikke de er naboer
D(v): gjeldende verdi for kost av vei fra kilde til destinasjon v.
p(v): forgjengernode (predecessor) langs vei fra kilde til v, dvs neste v
N: mengden av noder som har kjent minstekostvei
Versjon 1.1 / 24.09.07 Nettlaget 6-34
Dijkstras algoritme
1 Initialisering: 2 N = {u} 3 for alle noder v 4 if v er nabo til u 5 then D(v) = c(u,v) 6 else D(v) = uendelig 7 8 Løkke 9 finn en w som ikke er i N, slik at D(w) er et minimum 10 innlem w i N 11 oppdater D(v) for alle noder v som er nabo til w og ikke i N: 12 D(v) = min( D(v), D(w) + c(w,v) ) 13 /* ny kost til v er enten gammel kost til v eller minste kjente 14 kost til w pluss kost fra w til v */ 15 inntil alle noder er i N
Versjon 1.1 / 24.09.07 Nettlaget 6-35
Figure 6.13 Dijkstra algorithm: (a) initial topology; (b) derivation of shortest paths from R1 to each other router
Versjon 1.1 / 24.09.07 Nettlaget 6-36
Figure 6.13 (b) continued
Versjon 1.1 / 24.09.07 Nettlaget 6-37
Figure 6.14 Shortest path derivations: (a) by R2; (b) by R3; (c) by R4
Versjon 1.1 / 24.09.07 Nettlaget 6-38
Versjon 1.1 / 24.09.07 Nettlaget 6-39
Figure 6.15 LS-SPF routing examples: (a) hop-by-hop routing
Versjon 1.1 / 24.09.07 Nettlaget 6-40
Figure 6.15 LS-SPF routing examples: (b) source routing
Versjon 1.1 / 24.09.07 Nettlaget 6-41
Klassifisering av rutingalgoritmerGlobal eller desentralisert
informasjon?Global: alle rutere har fullstendig
info om topologi og linkkost “link state”-algoritmerDesentralisert: ruter kjenner har bare info
om direkte tilknyttede linker og noder
iterativ beregningsprosess, utveksling av info med naboer
“distance vector”-algoritmer
Statisk eller dynamisk?Statisk: ruter endres sjelden/
langsomtDynamisk: ruter endres hurtigere
periodiske oppdateringer
oppdateringer som følge av endringer i linkkost