Title: N
1Nätverkslagret (2)
- Host, router network layer functions
Transport layer TCP, UDP
Network layer
Link layer
physical layer
2IP-datagrammets format
IP protocol version number
32 bits
total datagram length (bytes)
header length (32-bit words)
type of service
head. len
ver
length
for fragmentation/ reassembly
fragment offset
type of data
16-bit identifier
flgs
max number remaining hops (decremented at each
router)
upper layer
time to live
Internet checksum
32 bit source IP address
32 bit destination IP address
upper layer protocol to deliver payload to
E.g. timestamp, record route taken, specify list
of routers to visit.
Options (if any)
data (variable length, typically a TCP or UDP
segment)
3Fragmentering 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
4IP Fragmentation and Reassembly
Ett stort datagram blir flera små
5ICMP 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
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 router
discovery 11 0 TTL expired 12 0
bad IP header
6Skalbarhet
- 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?
7Forwarding 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
Forwarding tabell R2
NetworkNum
NextHop
1 2 3 4
R3 R1 interface 1 interface 0
8DHCP
- 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
9Routing 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
10Intra-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.)
11RIP ( Routing Information Protocol)
- Distance-vector algoritm
- Fanns med i BSD-UNIX 1982
- Distance metric antal hopp (max 15 hopp)
- Distance vectors utbyts var 30e sekund via
Response Message (advertisement) - Varje advertisement rutt till max 25
destinationer (nät) - RIP v1 RFC 1058
- RIP v2 RFC 1723
12RIP Link Failure and Recovery
- Om inget hörts på 180 sek --gt 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)
13RIP Table processing
- Routingtabellerna i RIP uppdateras av en process
på applikationsnivå route-d (daemon) - advertisements använder UDP-paket, skickas ut
periodiskt
14RIP Table example
- Router 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
- 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)
15OSPF (Open Shortest Path First)
- open tillgängligt, v2 RFC 2178
- Använder Link State algorithm
- LS packet dissemination
- Topologisk karta i varje nod
- Dijkstras algorithm
- OSPF advertisement innehåller en post per grann-
router - Advertisements sänds till hela AS (via flooding)
16OSPF 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.
17Hierarkisk 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.
- 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.
18IGRP (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
19Internet AS Hierarchy
Intra-AS border (exterior gateway) routers
Inter-AS interior (gateway) routers
20Internet 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
21Internet 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 -gt
sänd inte ut några rutter dit Z
22Varfö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
23Hur 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
24Subnetting
- Subnät ny nivå till adress/routing hierarkin
- Subnätmasken definierar variabel del av hostdelen
gt subnätnummer - Subnät syns bara i aktuellt nätverk
25Subnät exempel
Forwarding table at router R1 Subnet Number
Subnet Mask Next Hop 128.96.34.0
255.255.255.128 interface 0 128.96.34.128
255.255.255.128 interface 1 128.96.33.0
255.255.255.0 R2
26Forwarding 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 1or
- Möjligt att ha flera subnät på ett fysiskt
nätverk - Subnät syns ej ifrån resten av Internet
27Supernetting
- 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
28Classless 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
29Hierarchical addressing more specific routes
ISPs-R-Us has a more specific route to
Organization 1
Organization 0
Send me anything with addresses beginning
200.23.16.0/20
Organization 2
Fly-By-Night-ISP
Internet
Organization 7
Send me anything with addresses beginning
199.31.0.0/16 or 200.23.18.0/23
ISPs-R-Us
Organization 1
30Subnetting 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
31Skalbara 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
32Router 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 )
33Input Port Functions
Physical layer bit-level reception
- 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
Data link layer e.g., Ethernet see chapter 5
34Input Port Queuing
- Switchnätverket långsammare än in-portarnas
kombinerade hastighet -gt 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!
35Tre typer av switchnätverk
- Via minnet
- 1a generationens routers
- paket kopieras av systemets (enda) CPU
- hastigheten begränsas av minnets bandbredd (2
accesser per datagram) - Moderna routers
- processor i in-porten utför lookup, kopiering
till minne
- Via buss
- datagram från inportens buffer till utportens
buffer via en delad buss - bus contention hastigheten begränsas av bussens
bandbredd
- Via ett nätverk (crossbar)
- undviker bandbredds-begränsningar
- Advancerad design fragmentera datagram till
celler med fix längd, switcha dem genom nätet
36Output 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
37Output 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
38IPv6
- Grundläggande motivation Ipv4s 32-bits adresser
tar helt slut 2008 eller 2018 eller - Ytterligare skäl
- header-formatet underlättar bearbetning/vidarebefo
rdran - 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
39Ö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
40Dual Stack Approach
41Tunneling
IPv6 inside IPv4 where needed
42Multicast routing
- Unicast
- Enkelt, men bandbreddskrävande
- Multicast
- Mindre antal paket, men kräver stöd från
nätverkslagret
43Multicast routing (forts)
- Problem
- Hur identifieras mottagarna av multicast-meddeland
en? - Hur adresseras ett datagram till dem?
- Lösning
- address indirection, en identifierare för hel
multicast grupp - Class D multicast-adresser
44Multicast 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
45IGMP
- 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
46Multicast 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
47Multicast 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