Nätverkslagret (2) Host, router network layer functions: Network layer
Download
Report
Transcript Nätverkslagret (2) Host, router network layer functions: Network layer
Nätverkslagret (2)
Host, router network layer functions:
Transport layer: TCP, UDP
Network
layer
IP protocol
•addressing conventions
•datagram format
•packet handling conventions
Routing protocols
•path selection
•RIP, OSPF, BGP
routing
table
ICMP protocol
•error reporting
•router “signaling”
Link layer
physical layer
25 May 2016
1
IP-datagrammets format
IP protocol version
number
header length
(32-bit words)
“type” of data
max number
remaining hops
(decremented at
each router)
upper layer protocol
to deliver payload to
32 bits
ver head. type of
len service
16-bit identifier
upper
time to
layer
live
length
fragment
flgs
offset
Internet
checksum
for
fragmentation/
reassembly
32 bit source IP address
32 bit destination IP address
Options (if any)
data
(variable length,
typically a TCP
or UDP segment)
25 May 2016
total datagram
length (bytes)
E.g. timestamp,
record route
taken, specify
list of routers
to visit.
2
Fragmentering och hopsättning
Ident
Flags
Offset
MTU varierar i olika nät, två val
Alla paket tillräckligt små
Fragmentering och hopsättning
Alla fragment har samma Ident
Tappas ett fragment slängs alla
Varje fragment fullständigt IP-datagram
Hopsättning hos mottagaren
Designat för ytterligare fragmentering
25 May 2016
3
IP Fragmentation and Reassembly
length ID fragflag
=4000 =x
=0
offset
=0
Ett stort datagram blir
flera små
25 May 2016
length ID fragflag
=1500 =x
=1
offset
=0
length ID fragflag
=1500 =x
=1
offset
=1480
length ID fragflag
=1040 =x
=0
offset
=2960
4
ICMP: Internet Control Message Protocol
used by hosts, routers,
gateways to communicate
network-level information
error reporting: unreachable
host, network, port, protocol
echo request/reply (used by
ping)
network-layer “above” IP:
ICMP msgs carried in IP
datagrams
ICMP message: type, code plus
first 8 bytes of IP datagram
causing error
25 May 2016
Type
0
3
3
3
3
3
3
4
Code
0
0
1
2
3
6
7
0
8
9
10
11
12
0
0
0
0
0
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
router discovery
TTL expired
bad IP header
5
Skalbarhet
27 + 214 + 221 olika nätverksadresser i IP
Det blir stora tabeller om varje router ska hitta alla
nätverk
Hur får man routing att skala?
25 May 2016
6
Forwarding algortim
Om direkt kopplad till destinationens nätverk skicka direkt till destination
annars om destinationen finns i forwarding
tabellen - skicka till NextHop routern
annars -skicka till default routern
Network 1 (Ethernet)
H7
Forwarding tabell R2
NetworkNum
NextHop
1
R3
2
R1
3
interface 1
4
interface 0
H2
H1
H8
H3
Network 4
(point-to-point)
Network 2 (Ethernet)
R1
R2
H4
Network 3 (FDDI)
H5
25 May 2016
R3
H6
7
DHCP
En ny nod behöver en IP-adress:
Systemadministratören skriver in den i en fil, eller:
DHCP: Dynamic Host Configuration Protocol:
delar ut adresser ’dynamiskt’
värden frågar (mha broadcast) “DHCP discover”
DHCP-servern svarar med “DHCP offer”
värden begär IP adress: “DHCP request”
DHCP-servern sänder adress: “DHCP ack”
Ett exempel på skalning av nätverksadministration
25 May 2016
8
Routing i Internet
Internet består av Autonoma Systems (AS)
förbundna med varandra:
Stub AS: litet företag
Multihomed AS: stort företag (no transit)
Transit AS: provider
Routing på två nivåer:
Intra-AS: administratörer ansvariga för val av algoritm
Inter-AS: unik standard
25 May 2016
9
Intra-AS Routing (inom ett AS)
Annat namn: Interior Gateway Protocols (IGP)
Vanligaste IGPs:
RIP: Routing Information Protocol
OSPF: Open Shortest Path First
IGRP: Interior Gateway Routing Protocol (Cisco
propr.)
25 May 2016
10
RIP ( Routing Information Protocol)
Distance-vector algoritm
Fanns med i BSD-UNIX 1982
Distance metric: antal hopp (max = 15 hopp)
Distance vectors utbyts var 30:e sekund via Response
Message (advertisement)
Varje advertisement: rutt till max 25 destinationer
(nät)
RIP v1 RFC 1058
RIP v2 RFC 1723
25 May 2016
11
RIP: Link Failure and Recovery
Om inget hörts på 180 sek --> granne/länk betraktas
som ”död”
rutter via grannen oanvändbara
nya advertisements till fungerande grannar
grannarna skickar meddelandet vidare (om deras
tabeller ändrades)
länkfel sprider sig snabbt genom hela nätet
poison reverse förhindrar ping-pong loops (oändligt
avstånd = 16 hops)
25 May 2016
12
RIP Table processing
Routingtabellerna i RIP uppdateras av en process på
applikationsnivå: route-d (daemon)
advertisements använder UDP-paket, skickas ut
periodiskt
25 May 2016
13
RIP Table example
Router: giroflee.eurocom.fr
Destination
-------------------127.0.0.1
192.168.2.
193.55.114.
192.168.3.
224.0.0.0
default
Gateway
Flags Ref
Use
Interface
-------------------- ----- ----- ------ --------127.0.0.1
UH
0 26492 lo0
192.168.2.5
U
2
13 fa0
193.55.114.6
U
3 58503 le0
192.168.3.5
U
2
25 qaa0
193.55.114.6
U
3
0 le0
193.55.114.129
UG
0 143454
Three attached class C networks (LANs)
Router only knows routes to attached LANs
Default router used to “go up”
Route multicast address: 224.0.0.0
Loopback interface (for debugging)
25 May 2016
14
OSPF (Open Shortest Path First)
“open”: tillgängligt, v2 RFC 2178
Använder Link State algorithm
LS packet dissemination
Topologisk karta i varje nod
Dijkstra’s algorithm
OSPF advertisement innehåller en post per grannrouter
Advertisements sänds till hela AS (via flooding)
25 May 2016
15
OSPF “advanced” features (not in RIP)
Säkerhet: autentisering av alla OSPF-meddelanden;
TCP används
Multiple same-cost paths allowed (bara en väg i RIP)
varje länk kan ha olika kostnadsmått (cost metrics)
för olika TOS (eg, satellite link cost set “low” for
best effort; high for real time)
Integrerat stöd för uni- och multicast:
Multicast OSPF (MOSPF) använder samma topologi-datbas
som OSPF
Hierarkisk OSPF i stora domäner.
25 May 2016
16
Hierarkisk OSPF
Two-level hierarchy:
lokalt område, backbone
Link-state
advertisements bara
lokalt
varje nod har
detaljerad kunskap
om det lokala
området; vet bara
riktning (kortaste
vägen) till nät i andra
områden.
25 May 2016
Area border routers: “summarize”
distances to nets in own area,
advertise to other Area Border
routers.
Backbone routers: run OSPF routing
limited to backbone.
Boundary routers: connect to other
ASs.
17
IGRP (Interior Gateway Routing Protocol)
CISCO proprietary; efterföljare till RIP (mitten av
80-talet)
Distance Vector, som RIP
flera kostandsmått (fördröjning, bandbredd,
tillförlitlighet, belastning etc)
använder TCP för utbyte av routing-information
Loop-free routing via Distributed Updating Alg.
(DUAL) based on diffused computation
25 May 2016
18
Internet AS Hierarchy
Intra-AS border (exterior gateway) routers
Inter-AS interior (gateway) routers
25 May 2016
19
Internet inter-AS routing: BGP
BGP (Border Gateway Protocol): the de facto
standard
Path Vector protocol:
liknar Distance Vector protocol
varje Border Gateway sänder ut hela vägen till
destinationen
Ex: Gateway X sänder sin väg till Z:
Path (X,Z) = X,Y1,Y2,Y3,…,Z
25 May 2016
20
Internet inter-AS routing: BGP
Antag: X sänder ut sin ruttinformation till W
W kan tacka nej till rutten som X erbjuder:
kostnad, policy (inga rutter via konkurrenters AS),
’loop prevention’.
Om W accepterar rutten som X sänt ut:
Path (W,Z) = w, Path (X,Z)
Obs: X kan styra inkommande trafik genom att
begränsa den information den sänder ut:
Ex: vill inte vidarebefordra trafik till Z -> sänd
inte ut några rutter dit Z
25 May 2016
21
Varför olika routing på olika nivåer?
Policy:
Intra-AS: en admin, inga policybeslut
Inter-AS: kontroll över hur trafiken skickas, vem som
använder nätet
Skala:
hierarkisk routing kräver mindre tabeller, ger
minskad uppdateringstrafik
Prestanda:
Intra-AS: kan fokusera på prestanda
Inter-AS: policies kan dominera prestandamål
25 May 2016
22
Hur får man routing att skala bättre?
Adressanvändning
Adresser får inte ta slut
Klass C med 2 hosts (2/255 = 0.78%)
Klass B med 256 hosts (256/65535 = 0.39%)
Skalabilitet för routing
Routingtabeller skalar ej
IGP skalar ej
25 May 2016
23
Subnetting
Subnät ny nivå till adress/routing hierarkin
Subnätmasken definierar variabel del av hostdelen
=> subnätnummer
Subnät syns bara i aktuellt nätverk
Network number
Host number
Class B address
111111111111111111111111
00000000
Subnet mask (255.255.255.0)
Network number
Subnet ID
Host ID
Subnetted address
25 May 2016
24
Subnät exempel
Subnet mask: 255.255.255.128
Subnet number: 128.96.34.0
128.96.34.15
128.96.34.1
H1
R1
Subnet mask: 255.255.255.128
Subnet number: 128.96.34.128
128.96.34.130
128.96.34.139
128.96.34.129
H2
R2
H3
128.96.33.14
128.96.33.1
Subnet mask: 255.255.255.0
Subnet number: 128.96.33.0
25 May 2016
Forwarding table at router R1
Subnet Number Subnet Mask
128.96.34.0
255.255.255.128
128.96.34.128 255.255.255.128
128.96.33.0
255.255.255.0
Next Hop
interface 0
interface 1
R2
25
Forwarding algoritm
D = destination IP address
for each entry (SubnetNum, SubnetMask, NextHop)
D1 = SubnetMask & D
if D1 = SubnetNum
if NextHop is an interface
deliver datagram directly to D
else
deliver datagram to NextHop
Använd default router om inget matchar
Inte nödvändigt med sammanhängande 1’or
Möjligt att ha flera subnät på ett fysiskt nätverk
Subnät syns ej ifrån resten av Internet
25 May 2016
26
Supernetting
Om alla som vill ha klass B adresser får det blir det
dåligt utnyttjande
Om alla istället får klass C adresser ökar
routingtabellernas storlek
Lösning: Supernetting - CIDR
Classless InterDomain Routing
25 May 2016
27
Classless InterDomain Routing
Dela ut block av kontinuerliga nätverksnummer till
närliggande nätverk
Representera block med
(first_network_address, count), 130.239.40/21
Begränsa storlekar till potens av 2
Alla routrar måste förstå CIDR
Möjligt att slå ihop adresser rekursivt
Längsta möjliga match i router
25 May 2016
28
Hierarchical addressing: more specific routes
ISPs-R-Us has a more specific route to Organization 1
Organization 0
200.23.16.0/23
Organization 2
200.23.20.0/23
Organization 7
.
.
.
.
.
.
Fly-By-Night-ISP
“Send me anything
with addresses
beginning
200.23.16.0/20”
Internet
200.23.30.0/23
ISPs-R-Us
Organization 1
200.23.18.0/23
25 May 2016
“Send me anything
with addresses
beginning 199.31.0.0/16
or 200.23.18.0/23”
29
Subnetting och CIDR: skalabiliteten
Subnetting
Hjälper till att lösa skalabilitetsproblemet
Nya fysiska nätverk kan läggas till utan att använda nya Klass B
eller C nätverksadresser
Samlar ihop information
CIDR
Kortare routingtabeller
Slår ihop routinginformation
Spar adresser
Dela ut block av kontinuerliga nätverksnummer istället för adresser
för större nätverksklass
25 May 2016
30
Skalbara nätverk
Interdomän-routing för att hitta rätt AS
Färre AS än nätverk
Intradomän-routing för att hitta rätt nätverk i AS
Färre nätverk i en domän än i hela Internet
CIDR
Slår ihop routinginformation
Subnetting
Subnät syns ej utåt
ARP (nästa lager)
Hitta rätt host i ett nätverk (subnät)
Skalabilitet viktigare än optimal väg
25 May 2016
31
Router Architecture Overview
Två nykelfunktioner hos routrar:
kör routing-algoritmer/protokoll (RIP, OSPF, BGP)
datagram kopplas om från inkommande till utgående port länk
(switching )
25 May 2016
32
Input Port Functions
Physical layer:
bit-level reception
Data link layer:
e.g., Ethernet
see chapter 5
25 May 2016
Decentraliserad switchning:
givet datagrammets dest., finn ut-porten i
routing-tabellen i in-portens minne
mål: processa alla paket med ‘line speed’
Köbildning: om datagram anländer snabbare
än switchnätverket kan ta emot
33
Input Port Queuing
Switchnätverket långsammare än in-portarnas kombinerade
hastighet -> köbildning kan uppstå vid ingångarna
Head-of-the-Line (HOL) blocking: köat datagram längst fram i
en kö hindrar andra i kön (fast dom skall till en annan port)
fördröjning och paketförlust pga input buffer overflow!
25 May 2016
34
Tre typer av switchnätverk
Via minnet
1:a generationens
routers:
paket kopieras av
systemets (enda)
CPU
hastigheten
begränsas av
minnets
bandbredd (2
Via ett nätverk (crossbar)
accesser per
datagram)
undviker bandbreddsbegränsningar
Moderna routers:
processor i in Advancerad design:
porten utför
fragmentera datagram till
lookup, kopiering
celler med fix längd,
till minne
switcha dem genom nätet
25 May 2016
Via buss
datagram
från
inportens
buffer till
utportens
buffer via en
delad buss
bus
contention:
hastigheten
begränsas av
bussens
bandbredd
35
Output Ports
Buffring behövs när datagram anländer fortare än
sändhastigheten ut på länken
Scheduling discipline väljer bland köade datagram
25 May 2016
36
Output port queueing
Buffring sker när data anländer från switchnätverket
fortare än det kan vidarebefordras ut på länken
Fördröjning och dataförlust kan uppstå pga output
port buffer overflow
25 May 2016
37
IPv6
Grundläggande motivation: Ipv4:s 32-bits adresser
tar helt slut 2008 eller 2018 eller …
Ytterligare skäl:
header-formatet underlättar bearbetning/vidarebefordran
headern ändras för att möjliggöra QoS
ny “anycast” adress: rutt till “den bästa” av flera replikerade
servrar
IPv6 datagramformat:
fix header-längd: 40 byte
ingen fragmentering
25 May 2016
38
Övergång från IPv4 till IPv6
Alla routrar kan inte uppgraderas samtidigt
no “flag days”
Hur kan nätverket fungera med blandade IPv4 och IPv6
routers?
Två föreslagna metoder:
Dual Stack: vissa routrar med två protokollstackar kan
översätta mellan formaten
Tunneling: IPv4-datagram bär IPv6-datagram som data
mellan IPv4-routrar
25 May 2016
39
Dual Stack Approach
25 May 2016
40
Tunneling
IPv6 inside IPv4 where needed
25 May 2016
41
Multicast routing
Unicast
Enkelt, men
bandbreddskrävande
25 May 2016
Multicast
Mindre antal paket, men
kräver stöd från
nätverkslagret
42
Multicast routing (forts)
Problem
Hur identifieras mottagarna av multicast-meddelanden?
Hur adresseras ett datagram till dem?
Lösning
”address indirection”, en identifierare för hel multicast
grupp
Class D multicast-adresser
25 May 2016
43
Multicast routing - frågor
Hur startar och slutar en grupp?
Hur väljs gruppadress?
Hur ansluter man till befintlig grupp?
Kan vem som helst ansluta sig?
Känner man till vilka övriga som är anslutna?
Hur samarbetar routrarna?
Involverar IGMP
25 May 2016
44
IGMP
Internet Group Management Protocol
Mellan host och första router
Kan ej identifiera andra i gruppen
Tre typer av meddelanden
Membership query, membership report, leave group
Körs över IP
Receiver-driven
25 May 2016
45
Multicast routing - generellt
Mål: Hitta ett träd med alla routrar
Ibland måste andra routrar involveras
Två varianter:
Group-shared tree, endast ett träd
Source-based trees, ett träd för varje sändare
25 May 2016
46
Multicast routing – i Internet
DVMRP
Distance Vector Multicast Routing Protocol
Source-based
MOSPF – Multicast OSPF
Source-based
CBT – Core Based Trees
Group-shared
PIM – Protocol Independent Multicast
Dense mode – liknar DVMRP
Sparse mode – group-shared
Mellan AS – DVMRP
Men inte helt lyckat
25 May 2016
47