You are on page 1of 130

Četvrto poglavlje

Mrežni sloj

Computer Networking:
A Top Down Approach
Featuring the Internet,
3rd edition.
Jim Kurose, Keith Ross
Addison-Wesley, July
2004.

Mrežni sloj 4-1/134


Pglavlje 4: Mrežni sloj

Ciljevi:
razumeti principe po kojima rade servisi
mrežnog sloja:
rutiranje (određivanje putanje)
skaliranje
kako ruter radi
IPv6, mobilnost
konkretni primeri i primena na Internet-u

Mrežni sloj 4-2/134


Poglavlje 4: Mrežni sloj
 4. 1 Uvod  4.5 Algoritmi rutiranja
 4.2 Virtuelna kola i  Stanje linka
datagram mreže  Vektor rastojanja
 Hijerarhijsko rutiranje
 4.3 Šta je u unutrašnjosti
rutera  4.6 Rutiranje na Internet-u
 RIP
 4.4 IP: Internet protokol
 OSPF
 format datagrama
 BGP
 IPv4 adresiranje
 ICMP  4.7 Difuzno rutiranje i
 IPv6 rutiranje sa višestrukim
upućivanjem

Mrežni sloj 4-3/134


Mrežni sloj
 Transport segmenta od hosta
koji ga šalje od hosta koji ga
application
transport
network
prima data link
physical
network
network data link network
 na strani pošiljaoca data link
physical
physical data link
physical
enkapsuliraju se segmenti u network

datagrame
data link
physical network
data link

 na prijemnoj strani, isporučuju physical

se segmenti transportnom network


data link
network
data link

sloju
physical
physical
network
 protokoli mrežnog sloja na data link
physical
application
transport

svakom hostu, ruteru


network
data link
physical
 Ruter ispituje polja u hederu
svakog IP datagrama koje on
propušta

Mrežni sloj 4-4/134


Ključne funkcije mrežnog sloja
 otpremanje-isporučivanje: analogija:
pomera pakete od ulaza u
ruter do odgovarajućeg  rutiranje: proces
ruterovog izlaza planiranja putovanja od
polaznog mesta do
 rutiranje: određuje odredišta
putanju (dobijenu od
paketa) od izvora do  isporučivanje: proces
odredišta. prolaska-napredovanja
kroz jedno mesto
Algoritmi rutiranja

Mrežni sloj 4-5/134


Veza između rutiranja i otpremanja

routing algorithm

local forwarding table


header value output link
0100 3
0101 2
0111 2
1001 1

vrednost u hederu
dolazećeg paketa
0111 1

3 2

Mrežni sloj 4-6/134


Uspostavljanje konekcije
treća važna funkcija u nekim mrežnim
arhitekturama (connection setup):
ATM, frame relay, X.25
Pre početka slanja datagrama, dva hosta i
uključeni ruteri uspostavljaju virtuelnu
konekciju
Ruteri su uključeni
Servis mrežnog i transportnog sloja:
Mreža: između dva hosta
Transport: između dva procesa

Mrežni sloj 4-7/134


Poglavlje 4: Mrežni sloj
 4. 1 Uvod  4.5 Algoritmi rutiranja
 4.2 Virtuelna kola i  Stanje linka
datagram mreže  Distance vektor
 Hijerarhijsko rutiranje
 4.3 Šta je u unutrašnjosti
rutera  4.6 Rutiranje na Internet-u
 RIP
 4.4 IP: Internet protokol
 OSPF
 format datagrama
 BGP
 IPv4 adresiranje
 ICMP  4.7 Difuzno rutiranje i
 IPv6 rutiranje sa višestrukim
upućivanjem

Mrežni sloj 4-8/134


Konekcija mrežnog sloja i servisi bez
uspostavljanja konekcije
Datagram mreže obezbeđuju servise bez
uspostavljanja konekcije na mrežnom sloju
VC mreže obezbeđuju servise
uspostavljanja konekcije na mrežnom sloju
Analogno servisima transportnog sloja, ali:
Servis: host-to-host
Bez izbora: mreža obezbeđuje ili jedan ili drugi
Primena: u jezgru

Mrežni sloj 4-9/134


Virtuelna kola
“putanja izvorište-odredište se ponaša kao
telefonsko kolo”
 performanse
 akcije mreže na putanji izvorište-odredište

 setap poziva, za svaki poziv pre nego što podaci mogu da protiču
 svaki paket nosi VC identifikator (ne odredišnu adresu hosta)
 svaki ruter na putanji izvorište-odredište održava "stanje" za
svaku konekciju
 resursi linka i rutera (širina opsega, baferi) mogu biti alocirani
virtuelnom kolu

Mrežni sloj 4-10/134


VC primena
Virtuelno kolo - VC sastavljeno je od:
1. Putanje od izvorišta do odredišta
2. VC brojeva, jedan broj za svaki link duž putanje
3. Upisa u tabelu prosleđivanja rutera duž putanje
 Paket pripada VC nosiocima VC broja.
 VC broj mora biti promenjen na svakom linku.
 Novi VC broj nastaje iz tabele prosleđivanja

Mrežni sloj 4-11/134


Tabela prosleđivanja
VC broj

12 22 32

1 2
3

Tabela prosleđivanja na interface


broj
ruteru gore levo:
Dolazni interface Dolazni VC # Odlazni interface Odlazni VC #

1 12 2 22
2 63 1 18
3 7 2 17
1 97 3 87
… … … …

Ruter održava informacije o stanju konekcije!

Mrežni sloj 4-12/134


Virtuelna kola: protokoli signalizacije
 koriste se za setap, održavanje i teardown VC
(završetak)
 koriste se u ATM, frame-relay, X.25
 ne koriste se na sadašnjem Internet-u

application
application
transport 5. Slanje podataka 6. Prijem podataka
transport
network
4. Povezivanje poziva 3. Prihvatanje poziva network
data link
1. Iniciranje poziva 2. Dolazeći poziv data link
physical
physical

Mrežni sloj 4-13/134


Datagram mreže
 nema setap poziva na mrežnom sloju
 ruteri: ne održavaju informacije o stanju konekcija od kraja
do kraja
 nema koncepta “konekcije” mrežnog sloja
 paketi se prosleđuju koristeći adresu odredišnog hosta
 paketi između istog para izvor-destinacija mogu da imaju različite
putanje

application
application
transport
transport
network
network
data link 1. Send data 2. Receive data
data link
physical
physical

Mrežni sloj 4-14/134


4 milijarde
Tabela prosleđivanja mogućih upisa

Opseg adresa destinacija Link Interface

11001000 00010111 00010000 00000000


through 0
11001000 00010111 00010111 11111111

11001000 00010111 00011000 00000000


through 1
11001000 00010111 00011000 11111111

11001000 00010111 00011001 00000000


through 2
11001000 00010111 00011111 11111111

otherwise 3

Mrežni sloj 4-15/134


Podešavanje sa najdužim prefix-om

Prefix Match Link Interface


11001000 00010111 00010 0
11001000 00010111 00011000 1
11001000 00010111 00011 2
otherwise 3

Primeri

DA: 11001000 00010111 00010110 10100001 Koji interfejs?

DA: 11001000 00010111 00011000 10101010 Koji interfejs?

Mrežni sloj 4-16/134


Datagram mreža ili VC mreža: zašto?

Internet ATM
 razmena podataka između  razvijen iz telefonije
računara
 govorna komunikacija ljudi:
 “elastic” servisi, ne zahteva
 striktni tajming, pouzdanost
se striktni tajming-
vremenska ograničenja  potreba garantovanog
servisa
 “pametni” krajevi sistema
(računari)  krajevi sistema
 može da adaptira, izvršava  telefoni
kontrolu, popravlja greške  kompleksnost unutar mreže
 prost unutar mreže,
kompleksan na “ivici”
 više tipova linkova
 različite karakteristike
Mrežni sloj 4-17/134
Poglavlje 4: Mrežni sloj
 4. 1 Uvod  4.5 Algoritmi rutiranja
 4.2 Virtuelna kola i  Stanje linka
datagram mreže  Distance vektor
 Hijerarhijsko rutiranje
 4.3 Šta je u unutrašnjosti
rutera  4.6 Rutiranje na Internet-u
 RIP
 4.4 IP: Internet protokol
 OSPF
 format datagrama
 BGP
 IPv4 adresiranje
 ICMP  4.7 Difuzno rutiranje i
 IPv6 rutiranje sa višestrukim
upućivanjem

Mrežni sloj 4-18/134


Pregled arhitekture rutera
Dve ključne fukcije rutera:
 startuje ruting algoritme/protokole (RIP, OSPF, BGP)
 Prosleđuje datagrame od dolaznog do odlaznog linka

Mrežni sloj 4-19/134


Ulazne funkcije porta

Fizički sloj:
prijem na nivou bitova
Sloj veze podataka:
Decentralizovano komutiranje:
 dato je odredište datagrama, traži se
npr. Ethernet izlazni port koristeći tabelu prosleđivanja
u memoriji ulaznog porta
 cilj: kompletan ulazni port procesiran na
‘line speed’
 stavljanje u red: ako datagrami stižu
brže od brzine prosleđivanja na switch
fabric

Mrežni sloj 4-20/134


Tri tipa komutatora

Mrežni sloj 4-21/134


Komutiranje preko memorije
Prva generacija rutera:
tradicionalni računari sa komutiranjem pod direktnom
kontrolom CPU-a
paket se kopira u memoriju sistema
brzina je ograničena širinom opsega memorije
 Cisco Catalyst 8500 series switches
Input Memory Output
Port Port

System Bus

Mrežni sloj 4-22/134


Komutiranje preko sabirnice

 datagram sa ulaznog porta se


prosleđuje na izlazni port preko
deljene magistrale
 takmičenje za korišćenje magistrale:
brzina komutiranja ograničena je
širinom propusnog opsega magistrale
 1 Gbps magistrala, Cisco 1900: dovoljna
brzina za pristup i rutere preduzeća

Mrežni sloj 4-23/134


Komutiranje preko Interconnection mreže

 prevazilaženje ograničenja širine opsega magistrale


 Banyan mreže, druge međusobno povezane mreže
početno razvijene da bi povezale procesore u
multiprocesoru
 Napredniji dizajn: fragmenting-podela datagrama na
ćelije fiksne dužine, komutiranje ćelija kroz ruter.
 Cisco 12000 family switches: komutira do 60 Gbps
kroz međusobno povezane mreže

Mrežni sloj 4-24/134


Izlazni portovi

en

 Buffering se zahteva kada datagrami stižu sa switch


fabric - komutatorske mreže brže od brzine prenosa
 Scheduling discipline odabira između datagrama u redu
za prenos

Mrežni sloj 4-25/134


Rad sa redovima na izlaznom portu

 buffering kada dolazna brzina preko komutatora prelazi


brzinu izlaznog voda
 queueing (kašnjenje) i gubici zbog preopterećenja
bafera izlaznog porta!
Mrežni sloj 4-26/134
Rad sa redovima na ulaznom portu
 Fabric sporiji od ulaznih portova -> queueing može da se
pojavi na ulaznim redovima
 Head-of-the-Line (HOL) blocking: fenomen: datagram na
čelu reda sprečava druge u redu od kretanja napred,
mada su njihovi izlazni portovi slobodni
 queueing delay i loss zbog preopterećenja ulaznog bafera!

Mrežni sloj 4-27/134


Poglavlje 4: Mrežni sloj
 4. 1 Uvod  4.5 Algoritmi rutiranja
 4.2 Virtuelna kola i  Stanje linka
datagram mreže  Distance vektor
 Hijerarhijsko rutiranje
 4.3 Šta je u unutrašnjosti
rutera  4.6 Rutiranje na Internet-u
 RIP
 4.4 IP: Internet protokol
 OSPF
 format datagrama
 BGP
 IPv4 adresiranje
 ICMP  4.7 Difuzno rutiranje i
 IPv6 rutiranje sa višestrukim
upućivanjem

Mrežni sloj 4-28/134


Internet mrežni sloj
Funkcije mrežnog sloja hosta i rutera

Transport layer: TCP, UDP

Routing protocols IP protocol


•path selection •addressing conventions
•RIP, OSPF, BGP •datagram format
Mrežni •packet handling conventions
sloj forwarding
ICMP protocol
table
•error reporting
•router “signaling”

Link layer

physical layer

Mrežni sloj 4-29/134


Poglavlje 4: Mrežni sloj
 4. 1 Uvod  4.5 Algoritmi rutiranja
 4.2 Virtuelna kola i  Stanje linka
datagram mreže  Distance vektor
 Hijerarhijsko rutiranje
 4.3 Šta je u unutrašnjosti
rutera  4.6 Rutiranje na Internet-u
 RIP
 4.4 IP: Internet protokol
 OSPF
 format datagrama
 BGP
 IPv4 adresiranje
 ICMP  4.7 Difuzno rutiranje i
 IPv6 rutiranje sa višestrukim
upućivanjem

Mrežni sloj 4-30/134


Format IP datagrama
Broj verzije
IP protokola 32 bits ukupna dužina
dužina zaglavlja datagrama (bytes)
head. type of
(bytes) ver length
len service for
“TOS” fragment fragmentation/
16-bit identifier flgs
offset reassembly
max number time to upper Header
remaining hops live layer checksum
(decremented at
each router) 32 bit source IP address

protokol gornjeg sloja 32 bit destination IP address


kome se isporučuje payload npr. vremenska markica,
Options (if any) tokena zapisa putanje,
koliki je overhead podaci određuje listu rutera
koristeći TCP? (variable length,
 20 bytes of TCP typically a TCP
 20 bytes of IP or UDP segment)
 = 40 bytes + app
layer message -
overhead Mrežni sloj 4-31/134
IP fragmentacija i ponovno sastavljanje
 mrežni linkovi imaju MTU (max.
jedinica prenosa) - najveći
mogući frejm link-nivoa.
 različiti tipovi linkova, fragmentacija:
različite vrednosti MTU-a in: jedan veliki datagram
 veliki IP datagram podeljen out: 3 manja datagrama
(“fragmentizovan”) unutar
mreže
 jedan datagram se deli na
ponovno sastavljanje
više datagrama
 “ponovno sastavljanje” samo
na krajnjem odredištu
 bitovi IP hedera korišćenih
za identifikaciju, redosled
povezanih fragmenata

Mrežni sloj 4-32/134


IP fragmentacija i ponovno sastavljanje
length ID fragflag offset
Primer =4000 =x =0 =0
 4000 byte
One large datagram becomes
datagram several smaller datagrams
 MTU = 1500 bytes
length ID fragflag offset
=1480 =x =1 =0
1480 bytes in
data field length ID fragflag offset
=1480 =x =1 =185
offset =
1480/8 length ID fragflag offset
=1020 =x =0 - last =370

Mrežni sloj 4-33/134


Poglavlje 4: Mrežni sloj
 4. 1 Uvod  4.5 Algoritmi rutiranja
 4.2 Virtuelna kola i  Stanje linka
datagram mreže  Distance vektor
 Hijerarhijsko rutiranje
 4.3 Šta je u unutrašnjosti
rutera  4.6 Rutiranje na Internet-u
 RIP
 4.4 IP: Internet protokol
 OSPF
 format datagrama
 BGP
 IPv4 adresiranje
 ICMP  4.7 Difuzno rutiranje i
 IPv6 rutiranje sa višestrukim
upućivanjem

Mrežni sloj 4-34/134


IP adresiranje: uvod
 IP adresa: 32-bit-ni 223.1.1.1

identifikator za host, 223.1.2.1


223.1.1.2
ruter interfejse 223.1.1.4 223.1.2.9
 interfejs: konekcija 223.1.2.2
između host-a/router-a i 223.1.1.3 223.1.3.27

fizičkog linka
 ruteri tipično imaju više
interfejsa 223.1.3.1 223.1.3.2
 host može imati više
interfejsa
 IP adrese su pridružene
svakom interfejsu 223.1.1.1 = 11011111 00000001 00000001 00000001

223 1 1 1
približno 4 milijarde mogućih
IP adresa Mrežni sloj 4-35/134
Podmreže
 IP adresa: 223.1.1.1

 deo za podmrežu 223.1.2.1


223.1.1.2
(bitovi višeg reda) 223.1.1.4 223.1.2.9
 deo za host (bitovi
nižeg reda) 223.1.1.3 223.1.3.27
 Šta je podmreža ?
LAN 223.1.2.2
 interfejsi uređaja sa
istim podmrežnim 223.1.3.1 223.1.3.2
delom IP adrese
 interfejsi su povezani
preko ethernet hub-a
ili switch-a mreža sastavljena od 3 podmreže

Mrežni sloj 4-36/134


Podmreže 223.1.1.0/24
223.1.2.0/24

Prijem
 Da bi odredili podmreže,
treba rastaviti svaki
interfejs od njegovog
hosta ili rutera,
kreirajući ostrva
izolovanih mreža. Svaka
izolovana mreža se zove
podmreža. 223.1.3.0/24

 /24 maska podmreže Maska podmreže: /24


pokazuje da leva 24 bita
od 32 definišu adresu
podmreže
Mrežni sloj 4-37/134
Podmreže 223.1.1.2

Koliko podmreža je 223.1.1.1 223.1.1.4

prisutno ?
223.1.1.3
-6
223.1.9.2 223.1.7.0
R1

223.1.9.1 223.1.7.1
223.1.8.1 223.1.8.0
R2 R3
223.1.2.6 223.1.3.27

223.1.2.1 223.1.2.2 223.1.3.1 223.1.3.2

Mrežni sloj 4-38/134


IP adresiranje: CIDR
CIDR: Classless InterDomain Routing
podmrežni deo adrese
format adrese: a.b.c.d/x, gde je x broj bitova u prvom
delu adrese - podmrežnom delu adrese - prefiks

subnet host
part part
11001000 00010111 00010000 00000000
200.23.16.0/23

pre usvajanja CIDR-a, classful adressing:


8, 16, 24 podmreže - klase: A, B (/16, 65534), C (/24, 254
hosta) mreže Mrežni sloj 4-39/134
IP adresiranje: kako dobiti adresu ?

Q: Kako host dobija IP adresu?

 hard-coded od strane sistem administratora u fajl


Wintel: control-panel->network->configuration-
>tcp/ip->properties
UNIX: /etc/rc.config
 DHCP: Dynamic Host Configuration Protocol: dinamički
dobija adresu od servera
“plug-and-play” protokol

Mrežni sloj 4-40/134


IP adresiranje: kako dobiti adresu ?
Q: Kako mreža dobija podmrežni deo IP adrese ?
A: uzima dodeljeni deo od adresnog prostora svog
provajdera ISP-a

ISP's block 11001000 00010111 00010000 00000000 200.23.16.0/20

Organization 0 11001000 00010111 00010000 00000000 200.23.16.0/23


Organization 1 11001000 00010111 00010010 00000000 200.23.18.0/23
Organization 2 11001000 00010111 00010100 00000000 200.23.20.0/23
... ….. …. ….
Organization 7 11001000 00010111 00011110 00000000 200.23.30.0/23

Mrežni sloj 4-41/134


Hijerarhijsko adresiranje i agregacija putanja
Hijerarhijsko adresiranje dozvoljava efikasno oglašavanje ruting
informacija:

Organization 0
200.23.16.0/23
Organization 1
“Send me anything
200.23.18.0/23 with addresses
Organization 2 beginning
200.23.20.0/23 . Fly-By-Night-ISP 200.23.16.0/20”
.
. . Internet
.
Organization 7 .
200.23.30.0/23
“Send me anything
ISPs-R-Us
with addresses
beginning
199.31.0.0/16”

Mrežni sloj 4-42/134


Hijerarhijsko adresiranje: specifičnije putanje

ISPs-R-Us ima specifičniju pitanju do Organization 1


Organization 0
200.23.16.0/23

“Send me anything
with addresses
Organization 2 beginning
200.23.20.0/23 . Fly-By-Night-ISP 200.23.16.0/20”
.
. . Internet
.
Organization 7 .
200.23.30.0/23
“Send me anything
ISPs-R-Us
with addresses
Organization 1 beginning 199.31.0.0/16
or 200.23.18.0/23”
200.23.18.0/23

Mrežni sloj 4-43/134


IP adresiranje: na kraju ...

Q: Kako ISP dobija blok adresa ?


A: ICANN: Internet Corporation for Assigned
Names and Numbers
dodeljuje adrese
upravlja DNS-om
pridružuje imena domena, razrešava sporove

Mrežni sloj 4-44/134


NAT: Network Address Translation

rest of local network


Internet (e.g., home network)
10.0.0/24 10.0.0.1

10.0.0.4
10.0.0.2
138.76.29.7

10.0.0.3

Svi datagrami koji napuštaju lokalnu Datagrami sa izvorištem ili


mrežu imaju istu jednu izvorišnu odredištem u ovoj mreži
NAT IP adresu: 138.76.29.7, i imaju 10.0.0/24 adresu za
različite brojeve portova izvora izvorište, odredište

Mrežni sloj 4-45/134


NAT: Translacija mrežne adrese
 Motivacija: lokalna mreža koristi samo jednu IP adresu
što se tiče spoljašnjeg sveta:
nema potrebe da se alocira opseg adresa od ISP-a: -
samo jedna IP adresa se koristi za sve uređaje
mogu li se promeniti adrese uređaja u lokalnoj mreži
bez objave spoljašnjem svetu
da li se može promeniti ISP bez promene adresa
uređaja u lokalnoj mreži
uređaji unutar lokalne mreže nemaju eksplicitno
mogućnost adresiranja, vidljivog od strane
spoljašnjeg sveta (plus bezbednost).

Mrežni sloj 4-46/134


NAT:
Primena: NAT ruter mora da:

za odlazne datagrame: zameni (izvorišnu IP adresu, broj


porta) svakog odlaznog datagrama na (NAT IP adresu,
novi broj porta)
. . . udaljeni clienti/serveri će odgovarati koristeći
(NAT IP adresu, novi broj porta) kao odredišnu
adresu.

zapamti (u NAT tabeli transliranja) sve (adresu izvorišta


IP, broj porta) na (NAT IP adresu, novi broj porta)
translacioni par

za dolazne datagrame: zameni (NAT IP adresu, novi broj


porta) u poljima odredišta svakog dolazećeg datagrama
sa odgovarajućom (izvorišnom IP adresom, brojem
porta) uskladištenim u NAT tabeli
Mrežni sloj 4-47/134
NAT:
NAT translation table
2: NAT router 1: host 10.0.0.1
WAN side addr LAN side addr
changes datagram sends datagram to
138.76.29.7, 5001 10.0.0.1, 3345 128.119.40, 80
source addr from
…… ……
10.0.0.1, 3345 to
138.76.29.7, 5001, S: 10.0.0.1, 3345
updates table D: 128.119.40.186, 80
10.0.0.1
1
S: 138.76.29.7, 5001
2 D: 128.119.40.186, 80 10.0.0.4
10.0.0.2
138.76.29.7 S: 128.119.40.186, 80
D: 10.0.0.1, 3345 4
S: 128.119.40.186, 80
D: 138.76.29.7, 5001 3 10.0.0.3
4: NAT router
3: Reply arrives changes datagram
dest. address: dest addr from
138.76.29.7, 5001 138.76.29.7, 5001 to 10.0.0.1, 3345

Mrežni sloj 4-48/134


NAT:

polje sa 16-bitnim brojem porta:


60,000 istovremenih konekcija sa jednom adresom na
strani LAN-a!
NAT je kontroverzan:
broj porta se koristi za adresiranje procesa ne hosta
ruteri treba da procesiraju pakete samo do sloja 3
narušava se end-to-end direktna veza
• trebalo bi da vode računa o NAT-u dizajneri aplikacija, npr.
P2P aplikacija
nestašica adresa treba da bude rešena od strane IPv6

Mrežni sloj 4-49/134


Poglavlje 4: Mrežni sloj
 4. 1 Uvod  4.5 Algoritmi rutiranja
 4.2 Virtuelna kola i  Stanje linka
datagram mreže  Distance vektor
 Hijerarhijsko rutiranje
 4.3 Šta je u unutrašnjosti
rutera  4.6 Rutiranje na Internet-u
 RIP
 4.4 IP: Internet protokol
 OSPF
 format datagrama
 BGP
 IPv4 adresiranje
 ICMP  4.7 Difuzno rutiranje i
 IPv6 rutiranje sa višestrukim
upućivanjem

Mrežni sloj 4-50/134


ICMP: Internet Control Message Protocol

 korišćen od hostova i rutera da bi


komunicirali informacijama Type Code description
mrežnog nivoa 0 0 echo reply (ping)
3 0 dest. network unreachable
 error izveštaji: nedostižan 3 1 dest host unreachable
host, mreža, port, protokol -3 3 2 dest protocol unreachable
 echo zahtev/odgovor 3 3 dest port unreachable
(korišćen od pinga) 3 6 dest network unknown
 na mrežnom sloju ali “iznad” IP: 3 7 dest host unknown
 ICMP poruke se smeštaju u IP 4 0 source quench (congestion
datagrame control - not used)
 ICMP poruka: tip, kod i prvih 8 8 0 echo request (ping)
bajtova IP datagrama o grešci 9 0 route advertisement
10 0 router discovery
11 0 TTL expired
12 0 bad IP header

Mrežni sloj 4-51/134


Traceroute i ICMP
 Traceroute je implementiran  Kada ICMP poruka stigne,
sa ICMP porukama izvor izračunava RTT
 Izvorište šalje serije UDP  Traceroute radi ovo 3 puta za
segmenata odredištu svaki TTL
 Prvi ima TTL =1 Stopping kriterijum
 Drugi ima TTL=2, itd.  UDP segment na kraju stiže
 Malo verovatan broj porta na odredišni host
 Kada n-ti datagram stigne na  Odredište vraća ICMP “host
n-ti ruter: unreachable” paket (tip 3, kod
 Ruter odbacuje datagram 3)
 i šalje izvorištu ICMP poruku  Kada izvor dobije ovaj ICMP,
(tip 11, kod 0) staje.
 Poruka uključuje ime rutera i
IP adresu

Mrežni sloj 4-52/134


Poglavlje 4: Mrežni sloj
 4. 1 Uvod  4.5 Algoritmi rutiranja
 4.2 Virtuelna kola i  Stanje linka
datagram mreže  Distance vektor
 Hijerarhijsko rutiranje
 4.3 Šta je u unutrašnjosti
rutera  4.6 Rutiranje na Internet-u
 RIP
 4.4 IP: Internet protokol
 OSPF
 format datagrama
 BGP
 IPv4 adresiranje
 ICMP  4.7 Difuzno rutiranje i
 IPv6 rutiranje sa višestrukim
upućivanjem

Mrežni sloj 4-53/134


IPv6
Početna motivacija: 32-bitni adresni prostor biće
uskoro potpuno dodeljen -IPn g - koristi se 128
ew eneration

bit-ni adresni prostor, 3.4 x 1038 čvorova.


Dodatna motivacija:
format zaglavlja pomaže brzom
procesiranju/prosleđivanju
heder se menja da bi omogućio QoS real-time servisa
Format IPv6 (RFC 2460) datagrama:
fiksne dužine hedera od 40 byt-ova
nije dozvoljena fragmentisanje između rutera;
• to može biti urađeno samo na izvoru i odredištu; usporava se
sistem podelom (i ponovnim spajanjem) na manje IP datagrame
Mrežni sloj 4-54/134
IPv6 zaglavlje
Prioritet-klasa saobraćaja: identifikuje prioritet između
datagrama koji se prenose istim tokom, npr. ICMP.
Oznaka toka: identifikuje datagrame u istom “toku ” (još nije
utvrđeno precizno značenje toka-“flow”).
Sledeće zaglavlje: identifikuje protokol kome će se sadržaji
datagrama isporučiti (npr. TCP ili UDP)

Mrežni sloj 4-55/134


Druge promene u odnosu na IPv4

Checksum: uklanja se potpuno da bi se


redukovalo vreme procesiranja u svakom skoku
Opcije: dozvoljene, ali izvan hedera, indicirano
poljem “Next Header”
fiksne dužine hedera od 40 byt-ova (bez option field)
ICMPv6: nova verzija ICMP-a
dodatni tipovi poruka, npr. “Packet Too Big”
funkcije upravljanja multicast grupom
(InternetGroupManagementProtocol)

Mrežni sloj 4-56/134


Prelazak sa IPv4 na IPv6
 Ne mogu svi ruteri da budu nadograđeni istovremeno
 nema “flag day” - određeni datum i vreme kada bi se sve
mašine na Internetu isključile zbog prelaska IPv4 na IPv6 (od
1995 god., 15 god. prelazak)
 Kako će mreža da radi sa izmešanim IPv4 i IPv6 ruterima ?
 Dvostruki stek: IPv6 čvorovi imaju takođe i kompletnu
implementaciju protokola IPv4
 Tunelovanje: IPv6 se zbrinjava kao payload u IPv4
datagramu između IPv4 rutera

Mrežni sloj 4-57/134


Tunelovanje
A B E F
Logical view: tunnel

IPv6 IPv6 IPv6 IPv6

A B C D E F
Physical view:
IPv6 IPv6 IPv4 IPv4 IPv6 IPv6

Flow: X Src:B Src:B Flow: X


Src: A Dest: E Dest: E Src: A
Dest: F Dest: F
Flow: X Flow: X
Src: A Src: A
data Dest: F Dest: F data

data data

A-to-B: E-to-F:
B-to-C: B-to-C:
IPv6 IPv6
IPv6 inside IPv6 inside
IPv4 IPv4
Mrežni sloj 4-58/134
Poglavlje 4: Mrežni sloj
 4. 1 Uvod  4.5 Algoritmi rutiranja
 4.2 Virtuelna kola i  Stanje linka
datagram mreže  Distance vektor (rastojanja)
 Hijerarhijsko rutiranje
 4.3 Šta je u unutrašnjosti
rutera  4.6 Rutiranje na Internet-u
 RIP
 4.4 IP: Internet protokol
 OSPF
 format datagrama
 BGP
 IPv4 adresiranje
 ICMP  4.7 Difuzno rutiranje i
 IPv6 rutiranje sa višestrukim
upućivanjem

Mrežni sloj 4-59/134


Ruting i prosleđivanje

routing algorithm

local forwarding table


header value output link
0100 3
0101 2
0111 2
1001 1

value in arriving
packet’s header
0111 1

3 2

Mrežni sloj 4-60/134


Predstavljanje grafom
5

v 3 w
2 5
u 2 z
1
3
1
x y 2
Graph: G = (N,E) 1

N = set of routers = { u, v, w, x, y, z }

E = set of links ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) }

Napomena: Graf apstrakcija je korisna u drugim mrežnim kontekstima


Primer: P2P, gde je N skup peer-računara i E je skup TCP konekcija

-Least-cost path
-Shortest path - cost=1, najmanji broj linkova Mrežni sloj 4-61/134
Graf apstrakcija: cena-troškovi
• c(x,x’) = cost of link (x,x’)
•trošak, cena, težina
5

v 3 w - npr. c(w,z) = 5
2 5
u 2 z • cost može uvek da bude 1,
1
3 •ili inverzno povezana sa
1
x y 2 bandwidth,
1 •ili direktno sa congestion,
•ili direktno sa dužinom linka

Cost of path (x1, x2, x3,…, xp) = c(x1,x2) + c(x2,x3) + … + c(xp-1,xp)

Pitanje: Koja je putanja (od 17 mogućih) sa najmanjim troškovima između u i z ?

Ruting algoritam: nalazi putanju sa najmanjim troškovima

Mrežni sloj 4-62/134


Klasifikacija ruting algoritama
Globalne ili decentralizovane Statički ili dinamički?
informacije? Statički:
-Least-cost path:  rute se menjaju polako tokom
vremena
Globalni ruting algoritmi:
Dinamički:
 svi ruteri imaju-znaju kompletnu
topologiju, informacije o ceni  rute se menjaju brže
linkova  periodično ažuriranje
 algoritmi LS “stanja linka”  menjaju se u odnosu na
Decentralizovani: troškove linka
 ruter ima informacije o cenama-
rastojanjima linkova ka susedima
 iterativno se izračunavaju,
razmenjuju informacije sa
susedima
 algoritmi “vektora rastojanja”
Mrežni sloj 4-63/134
Poglavlje 4: Mrežni sloj
 4. 1 Uvod  4.5 Algoritmi rutiranja
 4.2 Virtuelna kola i  Stanje linka
datagram mreže  Distance vektor
 Hijerarhijsko rutiranje
 4.3 Šta je u unutrašnjosti
rutera  4.6 Rutiranje na Internet-u
 RIP
 4.4 IP: Internet protokol
 OSPF
 format datagrama
 BGP
 IPv4 adresiranje
 ICMP  4.7 Difuzno rutiranje i
 IPv6 rutiranje sa višestrukim
upućivanjem

Mrežni sloj 4-64/134


Link-State (LS) ruting algoritam
Dijkstra-in algoritam
 mrežna topologija, troškovi linkova Označavanje:
se znaju na svim čvorovima  c(x,y): troškovi linkova od
 ostvaren preko “difuznog slanja čvora x do čvora y; = ∞ ako
stanja linkova” nisu direktni susedi
 svi čvorovi imaju iste kompletne  D(v): tekuća vrednost
informacije o mreži troškova putanje od izvora u
 izračunava putanje sa najmanjim do destinacije v
troškovima od jednog čvora
 p(v): prethodni čvor (sused)
(“izvor”) ka svim drugim čvorovima
duž putanje od izvora do v
 daje tabelu prosleđivanja za taj
čvor  N': podskup čvorova čije se
putanje najmanjih troškova
 iterativni algoritam: nakon k
sigurno znaju
iteracija, zna se putanja sa
najmanjim troškovima do k-tog
čvora prema destinaciji. Mrežni sloj 4-65/134
Dijkstrin algoritam
1 Initialization:
2 N' = {u}
3 for all nodes v
4 if v adjacent to u
5 then D(v) = c(u,v)
6 else D(v) = ∞
7
8 Loop
9 find w not in N' such that D(w) is a minimum
10 add w to N'
11 update D(v) for all v adjacent to w and not in N' :
12 D(v) = min( D(v), D(w) + c(w,v) )
13 /* new cost to v is either old cost to v or known
14 shortest path cost to w plus cost from w to v */
15 until all nodes in N'

Mrežni sloj 4-66/134


Dijkstrin algoritam: primer
Step N' D(v),p(v) D(w),p(w) D(x),p(x) D(y),p(y) D(z),p(z)
0 u 2,u 5,u 1,u ∞ ∞
1 ux 2,u 4,x 2,x ∞
2 uxy 2,u 3,y 4,y
3 uxyv 3,y 4,y
4 uxyvw 4,y
5 uxyvwz

v 3 w
2 5
u 2 z
1
3
1
x y 2
1

Mrežni sloj 4-67/134


Dijkstrin algoritam, diskusija
Složenost algoritma: n čvorova
 pri svakoj iteraciji: treba da se
provere svi čvorovi
 n(n+1)/2 poređenja: O(n2)
 moguće su efikasnije primene:
O(nlogn)
Oscilacije su moguće:
 npr., troškovi linkova = količina
saobraćaja

Mrežni sloj 4-68/134


Poglavlje 4: Mrežni sloj
 4. 1 Uvod  4.5 Algoritmi rutiranja
 4.2 Virtuelna kola i  Stanje linka
datagram mreže  Distance vektor
 Hijerarhijsko rutiranje
 4.3 Šta je u unutrašnjosti
rutera  4.6 Rutiranje na Internet-u
 RIP
 4.4 IP: Internet protokol
 OSPF
 format datagrama
 BGP
 IPv4 adresiranje
 ICMP  4.7 Difuzno rutiranje i
 IPv6 rutiranje sa višestrukim
upućivanjem

Mrežni sloj 4-69/134


Algoritam vektora rastojanja (1)
Bellman-Ford Equation (dinamičko programiranje)
Definicija
dx(y) := putanja sa najmanjim troškovima od x-a do
y-a

Tada je

dx(y) = min {c(x,v) + dv(y) }

gde je min uzeto od svih suseda od x-a


Mrežni sloj 4-70/134
Bellman-Ford: primer (2)
5 Izvesno je: dv(z) = 5, dx(z) = 3, dw(z) = 3
v 3 w
2 5
u 2 z B-F equation says:
1
3
1 du(z) = min { c(u,v) + dv(z),
x y 2
1 c(u,x) + dx(z),
c(u,w) + dw(z) }
= min {2 + 5,
1 + 3,
5 + 3} = 4
Čvor koji ispunjava minimum je sledeći
skok na najkraćoj putanji
- tabela prosleđivanja
Mrežni sloj 4-71/134
Algoritam vektora rastojanja (3)
Dx(y) = procena najmanjih troškova od x do y
Vektor rastojanja: Dx = [Dx(y): y є N ]
Čvor x zna troškove ka svakom susednom čvoru
npr. v : c(x,v)
Čvor x održava Dx = [Dx(y): y є N ]
Čvor x takođe održava vektore rastojanja
svojih suseda
Za svaki susedni čvor v, x se održava
Dv = [Dv(y): y є N ]

Mrežni sloj 4-72/134


Algoritam vektora rastojanja (4)
Osnovna ideja:
 Svaki čvor periodično šalje sopstveni vektor
rastojanja svojim susednim čvorovima
 Kada čvor a od čvora x primi nov DV procenjen od
suseda, on ažurira sopstveni DV koristeći B-F
jednačinu:
Dx(y) ← minv{c(x,v) + Dv(y)} for each node y ∊ N

 Procenjeni Dx(y) konvergira ka stvarnim najmanjim troškovima


dx(y)

Mrežni sloj 4-73/134


Algoritam vektora rastojanja (5)
Iterativni, asinhroni: Svaki čvor:
svaka lokalna iteracija je
prouzrokovana:
 promenom troškova wait for (change in local link
lokalnog linka
cost of msg from neighbor)
 ažuriranjem DV poruka od
suseda
Distribuirani: recompute estimates
 svaki čvor obaveštava
susede samo kada se
njegov DV menja
if DV to any dest has
 susedi onda obaveštavaju
svoje susede ako je to changed, notify neighbors
neophodno

Mrežni sloj 4-74/134


Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)} Dx(z) = min{c(x,y) +
= min{2+0 , 7+1} = 2 Dy(z), c(x,z) + Dz(z)}
node x table = min{2+1 , 7+0} = 3
cost to cost to cost to
x y z x y z x y z
x 0 2 7 x 0 2 3 x 0 2 3
from

from
y ∞∞ ∞ y 2 0 1

from
y 2 0 1
z ∞∞ ∞ z 7 1 0 z 3 1 0
node y table
cost to cost to cost to
x y z x y z x y z y
2 1
x ∞ ∞ ∞ x 0 2 7 x 0 2 3 x z
from

y 2 0 1 y 2 0 1
from

from
y 2 0 1 7
z ∞∞ ∞ z 7 1 0 z 3 1 0
node z table
cost to cost to cost to
x y z x y z x y z

x ∞∞ ∞ x 0 2 7 x 0 2 3
from

from

y 2 0 1 y 2 0 1
from

y ∞∞ ∞
z 71 0 z 3 1 0 z 3 1 0
time
Mrežni sloj 4-75/134
Vektor rastojanja: troškovi linka se menjaju
Menjaju se troškovi linkova:
1
 čvor detektuje promenu troškova lokalnog y
linka 4 1
x z
 ažurira ruting informacije, ponovo 50
izračunava vektor rastojanja
 ako se DV menja, obaveštavaju se susedi
U trenutku t0, y detektuje promene troškova linka, ažurira svoj DV,
“dobre i informiše svoje susede.
vesti
U trenutku t1, z prima ažuriranje od y i ažurira svoju tabelu.
putuju On izračunava novi trošak ka x-u i šalje svojim susedima svoj DV.
brzo”
U trenutku t2, y prima z-ovo ažuriranje i ažurira svoju tabelu rastojanja.

Najmanji troškovi y-a se ne menjaju i sada y ne šalje bilo kakvu poruku


ka z-u.
Dve iteracije
Mrežni sloj 4-76/134
Vektor rastojanja: troškovi linka se menjaju
Menjaju se troškovi linkova:
60
 loše vesti putuju sporo - problem y
“brojanja do beskonačnosti”! 4 1
 D: od z do x = 5, (1+5), petlja x z
50
rutiranja
 44 iteracije pre nego što se
algoritam stabilizuje:
Poisoned reverse (lažno
rastojanje):
 Ako Z rutira kroz Y da bi stigo do
X-a :
 Z kaže-"laže" Y da je njegovo (Z)
rastojanje do X-a beskonačno (tako
da Y neće da rutira X preko Z-a)
 da li će ovo kompletno da reši count-
to-infinity problem ? NE Mrežni sloj 4-77/134
Poređenje LS i DV algoritama
Kompleksnost poruka Robusnost: šta se dešava ako se
 LS: sa n čvorova, E linkova, ruter pokvari?
O(nE) poslatih poruka LS:
 DV: razmena između suseda  čvor može da objavi nekorektnu
samo cenu-cost linka
 vreme konvergencije varira  svaki čvor izračunava samo svoju
sopstvenu tabelu
Brzina konvergencije DV:
 LS: Složenost algoritma je O(n2),  DV čvor može da oglasi
algoritam zahteva O(nE) poruka nekorektne troškove-cenu
 može da ima oscilacije putanje
 DV: vreme konvergencije varira  tabela svakog čvora korišćena od
 može da se pojavi petlja drugih
rutiranja • error-greška se prostire kroz
 count-to-infinity problem mrežu
Podjednako se koriste oba algoritma na
Internetu
Mrežni sloj 4-78/134
Poglavlje 4: Mrežni sloj
 4. 1 Uvod  4.5 Algoritmi rutiranja
 4.2 Virtuelna kola i  Stanje linka
datagram mreže  Distance vektor
 Hijerarhijsko rutiranje
 4.3 Šta je u unutrašnjosti
rutera  4.6 Rutiranje na Internet-u
 RIP
 4.4 IP: Internet protokol
 OSPF
 format datagrama
 BGP
 IPv4 adresiranje
 ICMP  4.7 Difuzno rutiranje i
 IPv6 rutiranje sa višestrukim
upućivanjem

Mrežni sloj 4-79/134


Hijerarhijski ruting
Naše proučavanje rutinga do sada je - idealizovano
 svi ruteri su identični
 “flat” mreža
… nije u praksi

skaliranje: na 200 miliona administrativna autonomija


destinacija:  Internet = mreža svih mreža
 ne može da uskladišti sve  svaki mrežni administrator
destinacije u tabele rutiranja! možda želi da kontroliše ruting u
 razmena tabela rutiranja će svojoj mreži
opteretiti linkove!

Mrežni sloj 4-80/134


Hijerarhijski ruting
 Organizovanje rutera u Gateway ruter (mrežnog
regione, “autonomne prolaza)
sisteme” (AS)
 Direktan link na ruter
 ruteri u istim AS u drugom AS
startuju isti ruting
protokol
 “intra-AS” ruting protokol
 ruteri u različitim AS
mogu da startuju različite
intra-AS ruting protokole

Mrežni sloj 4-81/134


Međusobno povezani AS-i

3c
3a 2c
3b 2a
AS3 2b
1c AS2
1a 1b
1d AS1
 Tabela prosleđivanja je
konfigurisana i od intra-
i od inter-AS ruting
Intra-AS
Routing
Inter-AS
Routing algoritma
 Intra-AS postavlja upise
algorithm algorithm

Forwarding za unutrašnje destinacije


 Inter-AS & Intra-As
table

postavljaju upise za
spoljašnje destinacije
Mrežni sloj 4-82/134
Inter-AS zadaci AS1 treba:
 Pretpostavimo da 1. da zna koje
ruter u AS1 prima destinacije su
datagram za koji je dostupne kroz AS2 a
destinacija izvan AS1 koje kroz AS3
 Ruter treba da prosledi 2. da prosledi ovu
paket prema jednom od
informaciju o
gateway rutera, ali
prema kom ? dostupnosti svim
ruterima u AS1
Posao inter-AS rutinga!
3c
3a 2c
3b 2a
AS3 2b
1c AS2
1a 1b
1d AS1

Mrežni sloj 4-83/134


Primer: postavljanje tabele rutiranja u ruteru 1d

Pretpostavimo da AS1 sazna od inter-AS


protokola da je podmreža x dostupna od
AS3 (mrežni prolaz 1c) ali nije od AS2.
Inter-AS protokol prosleđuje informaciju o
dostupnosti svim unutrašnjim ruterima.
Ruter 1d određuje iz intra-AS ruting
informacije da je njegov interfejs I na
putanji sa najmanje troškova ka 1c.
Postavlja u tabelu prosleđivanja upis (x,I).

Mrežni sloj 4-84/134


Primer: Izbor između više AS
 Sada pretpostavimo AS1 sazna od inter-AS protokola
da je podmreža x dostupna od AS3 i od AS2.
 Da bi konfigurisali tabelu prosleđivanja, ruter 1d mora
da odredi prema kom mrežnom prolazu on treba da
prosledi pakete za destinaciju x.
 Ovo je takođe posao inter-AS ruting protokola!
 Hot potato -vruć krompir- ruting: šalje paket prema
najbližem od dva rutera.

Use routing info Determine from


Learn from inter-AS Hot potato routing: forwarding table the
from intra-AS
protocol that subnet Choose the gateway interface I that leads
protocol to determine
x is reachable via that has the to least-cost gateway.
costs of least-cost
multiple gateways smallest least cost Enter (x,I) in
paths to each
of the gateways forwarding table

Mrežni sloj 4-85/134


Poglavlje 4: Mrežni sloj
 4. 1 Uvod  4.5 Algoritmi rutiranja
 4.2 Virtuelna kola i  Stanje linka
datagram mreže  Distance vektor
 Hijerarhijsko rutiranje
 4.3 Šta je u unutrašnjosti
rutera  4.6 Rutiranje na Internet-u
 RIP
 4.4 IP: Internet protokol
 OSPF
 format datagrama
 BGP
 IPv4 adresiranje
 ICMP  4.7 Difuzno rutiranje i
 IPv6 rutiranje sa višestrukim
upućivanjem

Mrežni sloj 4-86/134


AS protokoli rutiranja

 Intra-AS ruting protokoli:

RIP: Routing Information Protocol


OSPF: Open Shortest Path First

IGRP: Interior Gateway Routing Protocol


(vlasništvo Cisco-a)
.............................................................
 BGP - inter AS ruting protokol

Mrežni sloj 4-87/134


Poglavlje 4: Mrežni sloj
 4. 1 Uvod  4.5 Algoritmi rutiranja
 4.2 Virtuelna kola i  Stanje linka
datagram mreže  Distance vektor
 Hijerarhijsko rutiranje
 4.3 Šta je u unutrašnjosti
rutera  4.6 Rutiranje na Internet-u
 RIP
 4.4 IP: Internet protokol
 OSPF
 format datagrama
 BGP
 IPv4 adresiranje
 ICMP  4.7 Difuzno rutiranje i
 IPv6 rutiranje sa višestrukim
upućivanjem

Mrežni sloj 4-88/134


RIP ( Routing Information Protocol)
 Algoritam vektora rastojanja
 Uključen u BSD-UNIX Distribution 1982. god.
 Metrika rastojanja: hop: broj skokova - broj podmreža duž
najkraće putanje od izvorišnog rutera do odredišne
podmreže, uključujući i nju (max = 15 hops). Cena linka je 1.
Na slici je tabela za A-source

u destination hops
v
u 1
A B w v 2
w 2
x 3
x y 3
z C D z 2
y podmreže
Mrežni sloj 4-89/134
RIP oglašavanje
Vektori rastojanja (tekuće procenjene putanje sa
najkraćim rastojanjima od datog rutera do podmreža u AS) :
razmenjuju se između suseda svakih 30
sekundi preko Response Message (takođe
nazvano oglašavanje)
Svako oglašavanje: lista do 25 destinacionih
podmreža unutar AS

Mrežni sloj 4-90/134


RIP: Primer
z
w x y
A D B

C
Destination Subnet Next Router Num. of hops to dest.
w A 2
y B 2
z B 7
x -- 1
…. …. ....
Tabela rutiranja za ruter D pre primanja objave (oglašavanja) od rutera A

Mrežni sloj 4-91/134


RIP: Primer
Dest Next hops
w - 1 Advertisement
x - 1 from A to D
z C 4
…. … ...
z
w x y
A D B

C
Destination Network Next Router Num. of hops to dest.
w A 2
y B 2
z B A 7 5
x -- 1
…. …. ....
Tabela rutiranja za D nakon primanja objave od rutera A
Mrežni sloj 4-92/134
RIP: Greške na linku i oporavak
Ako se nikakvo oglašavanje ne čuje nakon 180 sec -->
sused/link se deklariše kao "dead"
rutira se koristeći susedovu iskoristljivost
nova oglašavanja se šalju susedima
susedi redom šalju nova oglašavanja (ako se tabela
promeni)
informacija o grešci linka brzo se širi kroz celu
mrežu
poison reverse se koristi za prevenciju ping-pong
petlji (beskonačno rastojanje = 16 hops)

Mrežni sloj 4-93/134


RIP tabela procesiranja
 RIP tabele rutiranja upravljane od strane procesa
aplikacijskog-nivoa zvanog route-d (daemon - UNIX).
RIP je implementiran kao proces aplikacijskog sloja.
 oglašavanja poslata u UDP paketima (broj porta 520),
periodično ponavljana
routed routed

Transprt Transprt
(UDP) (UDP)
network forwarding forwarding network
(IP) table table (IP)
link link
physical physical

Mrežni sloj 4-94/134


Poglavlje 4: Mrežni sloj
 4. 1 Uvod  4.5 Algoritmi rutiranja
 4.2 Virtuelna kola i  Stanje linka
datagram mreže  Distance vektor
 Hijerarhijsko rutiranje
 4.3 Šta je u unutrašnjosti
rutera  4.6 Rutiranje na Internet-u
 RIP
 4.4 IP: Internet protokol
 OSPF
 format datagrama
 BGP
 IPv4 adresiranje
 ICMP  4.7 Difuzno rutiranje i
 IPv6 rutiranje sa višestrukim
upućivanjem

Mrežni sloj 4-95/134


OSPF (Open Shortest Path First)
 “open”: javno iskoristljiv
 Koristi se na višim nivoima posrednika ISP-a
 Naslednik RIP-a
 Koristi Link State algoritam
 LS paket
 Ruter konstruiše topološku mapu (graf) čitavog autonomnog
sistema
 Putanje se izračunavaju koristeći Dijkstrin algoritam
 OSPF oglašavanje nosi jedan upis po susednom ruteru
 Oglašavanja LS periodično na čitav AS
 OSPF poruke direktno se nose preko IP-a (radije nego TCP-a ili
UDP-a

Mrežni sloj 4-96/134


OSPF “naprednije” karakteristike (nisu bile u RIP-u)

 Sigurnost: sve OSPF poruke su autentifikovane (da bi


izvršili prevenciju malicioznih napada); MD5
 Više putanja iste-težine-cost može da se koristi (samo
jedna putanja u RIP-u)
 Za svaki link, više načina računanja troškova (cost
metrika) za različite tipove servisa (npr. satelitski link
"cost-mali” za najbolji pokušaj; "cost-veliki" za realno
vreme)
 Integrisana podrška jednoznačnom i višeznačnom
upućivanju:
Višeznačno upućivanje OSPF (MOSPF) koristi istu
topološku bazu podataka kao OSPF
 Hijerarhijska podrška OSPF-a za veće domene Mrežni sloj 4-97/134
Hijerarhijski OSPF

Mrežni sloj 4-98/134


Hijerarhijski OSPF
 Hijerarhija dva - nivoa: local area i backbone.
Link-state oglašavanja su samo u zoni
svi čvorovi imaju detaljnu topologiju zone; znaju samo
pravac (najkraća putanja) ka mrežama u drugim
zonama.
 Area border routers: “sabira” rastojanja ka mrežama u
sopstvenim zonama, oglašavajući-šaljući informacije
drugim Area border ruterima.
 Backbone routers: startuju OSPF rutiranje ograničeno
na backbone.
 Boundary routers: povezuju sistem sa drugim AS
sistemima.
Mrežni sloj 4-99/134
Poglavlje 4: Mrežni sloj
 4. 1 Uvod  4.5 Algoritmi rutiranja
 4.2 Virtuelna kola i  Stanje linka
datagram mreže  Distance vektor
 Hijerarhijsko rutiranje
 4.3 Šta je u unutrašnjosti
rutera  4.6 Rutiranje na Internet-u
 RIP
 4.4 IP: Internet protokol
 OSPF
 format datagrama
 BGP
 IPv4 adresiranje
 ICMP  4.7 Difuzno rutiranje i
 IPv6 rutiranje sa višestrukim
upućivanjem

Mrežni sloj 4-100/134


Internet inter-AS rutiranje: BGP

 BGP (Border Gateway Protocol): de facto


standard
 BGP obezbeđuje svakom AS-u:
1. Da dobije informaciju o dostupnosti podmreža od
susednih AS-a.
2. Propušta informaciju o dostupnosti svim ruterima
unutar AS-a.
3. Određuje "dobre" putanje ka podmrežama na
osnovu informacija o dostupnosti i politike
 Dozvoljava svakoj podmreži da oglasi svoje
postojanje ostatku Internet-a
 Ekstremno kompleksan protokol
Mrežni sloj 4-101/134
BGP osnove
 Parovi rutera (BGP peers) razmenjuju informacije rutiranja preko semi-
permanentnih TCP konekcija koristeći port 179: BGP sesija
 Napomenimo da BGP sesije ne odgovaraju uvek fizičkim linkovima.
 Kada AS2 oglasi prefiks ka AS1, AS2 obećava da će proslediti prema
njemu bilo koje datagrame sa destinacijom sa tim prefiksom.

3c
3a 2c
3b 2a
AS3 2b
1c AS2
1a 1b
AS1 1d
eBGP session
iBGP session

Mrežni sloj 4-102/134


Distribucija informacija o dostupnosti
 eBGP-sesijom između 3a i 1c, AS3 šalje listu prefiksa (koji
su dostupni od AS3) ka AS1, i obrnuto.
 1c može onda da koristi iBGP da distribuira ove nove prefiks
informacije o dostupnosti svim ruterima u AS1
 1b može onda da ponovno oglasi novu informaciju o
dostupnosti ka AS2 preko 1b-ka-2a eBGP sesije
 Kada ruter sazna o novom prefiksu, on kreira upis za prefiks
u njegovoj tabeli prosleđivanja.

3c
3a 2c
3b 2a
AS3 2b
1c AS2
1a 1b
AS1 1d
eBGP session
iBGP session
Mrežni sloj 4-103/134
Atributi putanja & BGP rute-putanje
 Kada ruter oglasi prefiks kroz BGP sesiju, to
uključuje uz prefiks i BGP atribute:
 prefiks + atributi = “putanja-ruta”
 Dva važna atributa:
 AS-PUTANJA: sadrži AS-e kroz koje je oglašavanje za
prefiks prošlo: AS 67 AS 17
 SLEDEĆI-HOP: Može biti više fizičkih linkova od tekućeg
AS ka next-hop-AS-u.
 Kada gateway ruter primi oglas o ruti, koristi
import policy da bi odlučio da li da prihvati ili
filtrira rutu.

Mrežni sloj 4-104/134


BGP selekcija rute
 Ruter može da zna više od jedne rute prema
nekom prefiksu. On mora da selektuje rutu.
 Pravila eliminacije:
1. Lokalna preference vrednost: politika odlučivanja
2. Selektuje se ruta sa najkraćom dužinom AS-
PUTANJE
3. Selektuje se najbliži NEXT-HOP ruter: ruting
vrućeg krompira
4. Dodatni kriterijumi

Mrežni sloj 4-105/134


BGP poruke
 BGP poruke se razmenjuju koristeći TCP.
 BGP poruke:
OPEN: opens TCP connection to peer and
authenticates sender
UPDATE: advertises new path (or withdraws old)
KEEPALIVE keeps connection alive in absence of
UPDATES; also ACKs OPEN request
NOTIFICATION: reports errors in previous msg;
also used to close connection

Mrežni sloj 4-106/134


BGP politika rutiranja
legend: provider
B network
X
W A
customer
C network:

Figure 4.5-BGPnew: a simple BGP scenario


 A,B,C su mreže provajdera
 X,W,Y su potrošači (mreža potrošača)
 X je dual-homed: prikačen na dve mreže
X ne želi da rutira od B-a preko X-a do C-a
... dakle, X neće da oglasi ka B rutu prema C-u

Mrežni sloj 4-107/134


BGP politika rutiranja (2)
legend: provider
B network
X
W A
customer
C network:

 A oglašava ka B putanju AW
Figure 4.5-BGPnew: a simple BGP scenario

 B oglašava ka X putanju BAW


 Da li treba B da oglasi ka C putanju BAW?
 Nikako! ni W ni C nisu potrošači-korisnici B-usluga
 B želi da forsira C da rutira ka w preko A
 B želi da rutira samo ka/od njegovih korisnika!

Mrežni sloj 4-108/134


Zašto postoje različita Intra- i Inter-AS rutiranja ?

Politika:
 Inter-AS: administrator želi kontrolu nad tim kako se
njegov saobraćaj rutira, ko rutira kroz mrežu.
 Intra-AS: jedan administrator, tako da nije potrebna
politika odlučivanja
Skaliranje:
 hijerarhijsko rutiranje čuva veličinu tabele, redukujući
ažuriranje saobraćaja
Performanse:
 Intra-AS: može da se fokusira na performanse
 Inter-AS: politika može da dominira u odnosu na
performanse
Mrežni sloj 4-109/134
Poglavlje 4: Mrežni sloj
 4. 1 Uvod  4.5 Algoritmi rutiranja
 4.2 Virtuelna kola i  Stanje linka
datagram mreže  Distance vektor
 Hijerarhijsko rutiranje
 4.3 Šta je u unutrašnjosti
rutera  4.6 Rutiranje na Internet-u
 RIP
 4.4 IP: Internet protokol
 OSPF
 format datagrama
 BGP
 IPv4 adresiranje
 ICMP  4.7 Difuzno rutiranje i
 IPv6 rutiranje sa višestrukim
upućivanjem

Mrežni sloj 4-110/134


Difuzno rutiranje
 Isporučuje pakete od izvora do svih ostalih čvorova
 N-way-unicast
 Dupliranje izvora je neefikasno:

duplicate
duplicate R1 creation/transmission R1
duplicate
R2 R2

R3 R4 R3 R4

source in-network
duplication duplication

Dupliranje izvora: kako izvor određuje adrese


primaoca
Mrežni sloj 4-111/134
Dupliranje u mreži
 Flooding: kada čvor primi difuzno poslat paket, on
šalje kopiju svim svojim susedima
 Problemi: ciklusi-cycles & kiša difuzno poslatih paketa
 Kontrolisani flooding (broadcast sequence
number): čvor difuzno upućuje paket samo ako nije
difuzno poslao isti paket ranije
 Čvor vodi računa o paketima koje je već difuno poslao
 Ili menja putanju reverzno prosleđujući (RPF): samo
prosleđuje paket ako je stigao najkraćom putanjom
između čvora i izvora
 Spanning tree (sveobuhvatno stablo)
 Ni jedan redundantan paket nije primio ni jedan čvor

Mrežni sloj 4-112/134


Spanning Tree
 Prvo se konstruiše spanning tree (sadrži sve čvorove)
 Minimum spanning tree
 Čvorovi prosleđuju kopije samo duž spanning tree

A A

B B
c c

D D
F E F E

G G
(a) Broadcast initiated at A (b) Broadcast initiated at D

Mrežni sloj 4-113/134


Spanning Tree: kreiranje
 Centralni čvor
 Svaki čvor šalje unicast pridružujući poruku
centralnom čvoru
 Poruka se prosleđuje sve dok ne dođe na čvor koji već
pripada spanning tree

A A
3
B B
c c
4
2
D D
F E F E
1 5
G G
(a) Postepena (b) Završni spanning tree
konstrukcija spanning
tree Mrežni sloj 4-114/134
Multicast rutiranje

Cilj: naći stablo (ili stabla) koje povezuje rutere


koji imaju local mcast group members
 stablo: ne koriste se sve putanje između rutera
 izvor-bazirane: različito stablo od svakog pošiljaoca do primaoca
 deljeno-stablo: isto stablo korišćeno od svih članova grupe

Deljeno stablo Stablo bazirano na izvoru


4-115/133
Pristupi za gradnju mcast stabla
Pristupi:
Izvor-bazirano stablo: jedno stablo po izvoru
stabla najkraće putanje
reverzna putanja prosleđivanja
stablo koje deli grupa: grupa koristi jedno stablo
minimal spanning (Steiner)
stabla bazirana na centru

… prvo posmatramo osnovne pristupe, a zatim specifične


protokole prilagođene ovim pristupima

4-116/133
Stablo najkraće putanje
mcast forwarding stablo: stablo sa rutama
sa najkraćom putanjom
Dijkstrin algoritam

S: source LEGENDA
R1 2
1 R4 ruteri sa prikačenim
članovima grupe
R2 5
ruteri bez prikačenih
3 4
R5 članova grupe
R3 6 i link korišćen za prosleđivanje,
R6 R7 pokazuje redosled linkova
dodatih od strane algoritma

4-117/133
Prosleđivanje reverznom putanjom

 zasnovano na ruterovom znanju unicast najkraće


putanje od njega do pošiljaoca
 svaki ruter ima prosto ponašanje pri prosleđivanju:

if (mcast datagram received on incoming link


on shortest path back to center)
then flood datagram onto all outgoing links
else ignore datagram

4-118/133
Prosleđivanje reverznom putanjom: primer
S: source
LEGENDA
R1
R4 router with attached
group member
R2
router with no attached
R5 group member
R3 datagram će biti
R6 R7 prosleđen
datagram neće biti
prosleđen

• rezultat je izvorom-određen reverzni SPT


– može biti loš izbor sa asimetričnim linkovima

4-119/133
Prosleđivanje reverznom putanjom: odsecanje
 stablo prosleđivanja sadrži podstabla bez mcast članova
grupe
nema potrebe za prosleđivanjem datagrama niz podstablo
koje ne sadrži članove grupe; odsecanje

S: source LEGENDA

R1 router with attached


R4
group member

R2 router with no attached


P group member
P
R5 smanjena poruka
R3 P linkovi sa multicast
R6 R7 prosleđivanjem

4-120/133
Stabla bazirana na centralnom ruteru

jedno stablo isporuke deljeno od strane svih


jedan ruter identifikovan kao “centar” stabla
da bi se pridružio:
edge ruter šalje unicast join-msg adresirano na
centralni ruter
join-msg “procesiran” od intermediate rutera i
prosleđen pema centru
join-msg ili pogađa postojeću granu stabla za ovaj
centar, ili stiže na centar
putanja uzeta od join-msg postaje nova grana stabla
za ovaj ruter
4-121/133
Centar-bazirana stabla: primer

Pretpostavimo da je R6 odabran kao centar:

LEGENDA

R1 router with attached


R4
3 group member

R2 router with no attached


2 group member
1
R5 redosled putanje po kome
je join messages generisan
R3
1 R6 R7

4-122/133
Internet Multicasting ruting: DVMRP

DVMRP: distance vektor multicast ruting


protokol, RFC1075
flood and prune: reverzna putanja
prosleđivanja, izvor-bazirano stablo
RPF stablo bazirano na DVMRP-ovim tabelama
rutiranja konstruisanih pomoću DVMRP rutera koji
komuniciraju
nema pretpostavki o datom unicast-u
inicijalni datagram prema mcast grupi
ruteri ne žele grupu: šalju upstream prune msgs

4-123/133
DVMRP: nastavak ...
soft state: DVMRP ruter periodično (1 min.)
“zaboravlja” grane koje su odsečene-pruned:
mcast podaci ponovo teku dole neodsečenom granom
downstream ruter: ponovo odseca ili još nastavlja da
prima podatke
ruteri mogu brzo da se ponovo "nakaleme" na
stablo
sledeći InternetGgroupManagementProtocol se
pridružuje listi

4-124/133
Tunelovanje
Q: Kako povezati “ostrva” multicast rutera u
“moru” unicast rutera?

fizička topologija logička topologija

 mcast datagram enkapsuliran unutar “normalnog” (non-multicast-


addressed) datagrama
 normalni IP datagram poslat kroz “tunel” preko regularnog IP
unicast-a prijemnom mcast ruteru
 prijemni mcast ruter se dekapsulira da bi uzeo mcast datagram

4-125/133
PIM: Protocol Independent Multicast
 ne zavisi od određenog unicast algoritma rutiranja
(radi sa svima)
 dva različita scenarija multicast distribucije:

Zbijen-Dense: Rasejan-Sparse:
 članovi grupe pakovani  broj rutera sa pridruženim
gusto članovima grupe je mali u
 širina opsega još veća odnosu na ukupan broj
rutera
 članovi grupe “široko
rasejani”
 širina opsega nije veća
4-126/133
Posledice Sparse-Dense podele:

Dense Sparse:
 grupno članstvo rutera  nema članstva dok se
pretpostavljeno dok ruteri eksplicitno ne
ruteri eksplicitno vrše pridruže
odsecanje  prijemom-pobuđena
 podacima-pobuđena konstrukcija mcast stabla
konstrukcija na mcast (npr. centar-bazirana)
stablu (npr. RPF)

4-127/133
PIM- Dense mod

flood-and-prune RPF, slično DVMRP ali


 dati unicast protokol obezbeđuje RPF
informacije za dolazeći datagram
 manje komplikovan (manje efikasan) downstream
flood
 ima protokol mehanizam za ruter da detektuje
da je to list-čvor ruter

4-128/133
PIM - Sparse mod
 centar-bazirani pristup
 ruter šalje join msg ka
rendezvous tački (RP) R1
R4
 intermediate ruteri join
ažuriraju stanje i prosleđuju R2
join join
R5
 nakon pridruženja preko join
RP-a, ruter može da se R3 R7
prebaci na source-specific R6

stablo all data multicast rendezvous


 poboljšava performanse: from rendezvous point
kraće putanje point

4-129/133
PIM - Sparse mod
sender(i):
 unicast podatke ka RP-
u, koji se distribuiraju R1
R4
RP-rooted stablu join

 RP može da proširi R2
join
mcast stablo R5
 RP može da pošalje join
R3 R7
stop msg ako nema R6
prikačenih primaoca
all data multicast rendezvous
 “niko ne osluškuje!” from rendezvous point
point

4-130/133

You might also like