Anda di halaman 1dari 140

Arhitekture paketskih vorova

AP_1_2016

Sadraj
Arhitekture

i tehnike

Evolucija arhitektura paketskih vorova


Pretraivanje tabela proslijeivanja

Arhitekture paketskih cvorova

vorne arhitekture - pregled


Dvije kljune funkcije vora :
izvrava

rutne algoritme/protokole (Spaning Tree, RIP,


OSPF, BGP)
Otprema (komutacija) datagrame od dolazne ka odlaznoj
liniji

Arhitekture paketskih cvorova

Funkcije ulaznog porta

fiziki nivo:
prijem bita
linijski nivo:
napr., Ethernet

Decentralizovana komutacija:
Dato

odredite datagrama, trai izlazni port


pomou tabele otpremanja u memoriji ulaznog
porta
cilj: kompletna obrada na ulaznom portu pri
brzini linije
rep: ako datagrami dolaze bre nego se
otpremaju u komutaciono polje
Arhitekture paketskih cvorova

Tri tipa komutacionih polja

Arhitekture paketskih cvorova

Komutiranje u memoriji
Ruteri prve generacije:
tradicionalni raunari sa komutacijom pod direktnom
kontrolom CPU
paket sa kopira u sistemsku memoriju
granica brzine je memorijski opseg (2 prolaska busom po datagramu)
ulazni
port

Memorija

izlazni
port

sistemski Bus

Arhitekture paketskih cvorova

Komutacija putem Bus-a

datagram

od ulazne port memorije


ka izlaznoj port memoriji putem
djeljenog bus-a
Borba za bus : komutacijska brzina
ograniena opsegom bus-a
1 Gbps bus, Cisco 1900: dovoljna
brzina za pristupne i rutere firmi (ne i za
regionalne i jezgro)

Arhitekture paketskih cvorova

Komutacija pomou povezujue mree


prevazilazi

ogranienja opsega bus-a


Clos, Banyan mree, druge povezujue mree
razvijane za potrebe povezivanja procesora u
multiprocesor
napredni dizajn: fragmentacija datagrama na male
pakete (elije) fiksne duine, komutiranje elija preko
komutacione mree.
Komutira Tbps preko komutacione mree

Arhitekture paketskih cvorova

Izlazni portovi

Baferovanje

je potrebno kad datagrami dolaze od


komutacije bre od predajne brzine
Rasporeivanje- Scheduling bira meu datagramima u
baferu koji e predati na liniju
Arhitekture paketskih cvorova

Baferovanje na izlaznom portu

Baferovanje,

akoje brzina dolazaka iz komutacije vea


od brzine izlazne linije
Rep (kanjenje) i gubitak zbog prelijevanja izlaznog
port bafera!
Arhitekture paketskih cvorova

10

Baferovanje kod ulaznih portova


Kad

je komutaciona mrea sporija od kombinacije brzina


ulaznih portova-> baferovati se moe kod ulaza
Head-of-the-Line (HOL) blokiranje: datagram u poetku
repa sprjeava one iza njega da idu naprijed
Kanjenje i lgubici zbog plavljenja ulaznih bafera!

Arhitekture paketskih cvorova

11

Proslijeivanje

Na osnovu odredine MAC ili IP


adrese u zaglavlju paketa i
informacija iz tabele
proslijeivanjaa, vor, kao
ureaj prosljeuje pakete ka
R4
D
krajnjoj destinaciji.

Tabela proslijeivanja
(Forwarding Table) je fajl
smeten u RAM vora koji
sadri informacije o topologiji
R1
mree u njegovoj okolini.

R3

R2
Odredite

Sljed. skok

R3

R3

R5
Arhitekture paketskih cvorova

R5

12

Internet protokol - mreni nivo


Host, ruter mreni nivo funkcije:
transportni nivo: TCP, UDP

mreni
nivo

IP protokol
pravila adresiranja
datagram format
pravila obrade paketa

rutni protokoli
izbor puta
RIP, OSPF, BGP

Tabele
rutiranj
a

Tabela
Proslij.

ICMP protokol
Izvjet. o greki
ruter signaliza.

linijski nivo
fiziki nivo

Arhitekture paketskih cvorova

13

Proslijeivanje?
R3
R1

A
1

16

Ver HLen

Total Paket Length


Flags Fragment Offset

protokol

Destination
Next Hop
Odredina
adresa
D
Options
(if any)R3
F

Zaglavlje Checksum

R2
Izvorna adresa

D
32

T.Service

Fragment ID
TTL

R4

Data

R5

R3
R5

Arhitekture paketskih cvorova

14

Proslijeivanje
R3
A

R1

R4

B
C

E
R2

R5

Arhitekture paketskih cvorova

15

Kako ruteri izgledaju?

Pristupni ruteri
e.g. ISDN,
ADSL

Ruteri jezgra
napr. OC48c POS

ATM svi jezgra

Dimenzije, Potronja
Cisco GSR 12416

Juniper M160

19

19

Capacity: 160Gb/s
Power: 4.2kW
6ft

Capacity: 80Gb/s
Power: 2.6kW
3ft

2ft

2.5ft

Gdje se koriste ruteri visokih


performansi?
- Ruteri jezge mree
- ATM svi
- Frame Relay Svi

Internet jezgro

Rubni Ruter

Preduzee WAN pristup


& preduzee kampus svi

Odgovor: Points of Presence (POPs)


POP2
A

POP1

POP4

B
C

POP3

POP5
POP6

POP7

POP8

Arhitekture paketskih cvorova

19

Gdje se koriste ruteri visokih


performansi
(10 Gb/s)

R2

R1

R5
R4

R3
R8

R9

R10

R7
R11

R14

R13
(40 Gb/s)

R6

R15
Arhitekture paketskih cvorova

(10 Gb/s)

R12

R16
(100 Gb/s)
20

Osnovne arhitekturne komponente


IP rutera
Rutiranje
protokoli
Rutiranje
tabela

komutiranja
komutacija
tabela

Arhitekture paketskih cvorova

Upravljanje

Put podataka
Obrada po
paketu

21

Obrada po paketu u IP ruteru


1.Prihvata

paket koji doe na ulaznu liniju

2.Pretraga:

pretraga paket ske odredine adrese u tabeli


rutiranja, da odredi izlazni port (ove).
3.Obrada zaglavlja: Manipulira zaglavlje paketa: t.j.,
dekrement ira TTL, preraunava checksum zaglavlja.
4.Komutacija: alje Paket na izlazni port (ove)
5.Baferovanje: Baferuje Paket u izlazni rep.
6.alje

Paket na izlaznu liniju.

Arhitekture paketskih cvorova

22

Generika arhitektura rutera


Obrada zaglavlja
Data

Hdr

pretraga
obnovi
IP adresa zaglavlje
IP adresa

~1M prefiksa
Na-ipu DRAM

stavi u rep
Paket

Data

Hdr

Next Hop

adresna
adresna
tabela
tabela

Bafer
Bafer
Memorija
Memorija

Arhitekture paketskih cvorova

~1M paketa
na ipu DRAM

23

Generika arhitektura rutera


Data Hdr

Obrada zaglavlja
pretraga
IP adresa

bafer
Manager

obnovi
zaglavlje

bafer
bafer
memorija
memorija

adresa
adresa
tabela
tabela

Data Hdr

Obrada zaglavlja
pretraga
IP adresa

bafer
Manager

obnovi
zaglavlje

baferHdr
Data
memorija
memorija

bafer
Manager

Obrada zaglavlja
pretraga
IP adresa

Data Hdr

bafer

adresa
adresa
tabela
tabela

Data Hdr

Data Hdr

obnovi
zaglavlje

bafer
bafer
memorija
memorija

adresa
adresa
tabela
tabela

Arhitekture paketskih cvorova

24

Ruterske performanse bre od Moore-ovog


zakona
Rast kapacitet komercijalnih rutera:
Kapacitet 1992 ~ 2Gb/s
Kapacitet 1995 ~ 10Gb/s
Kapacitet 1998 ~ 40Gb/s
Kapacitet 2001 ~ 160Gb/s
Kapacitet 2003 ~ 640Gb/s
Kapacitet 2013 ~ 22 Tb/s sa vie rack-a

Prosjena brzina: 2.2x / 18 mjeseci.


Arhitekture paketskih cvorova

25

Ruteri prve generacije


Shared Backplane

Li
CP
n
i
U nt ijs
er ki
fe
js
m
em
or
ija

CPU

Route
tabela

bafer
memorija

linijski
Interfejs

linijski
Interfejs

linijski
Interfejs

MAC

MAC

MAC

Veina Ethernet svieva i ruteri male


cijene i kapaciteta
Uska grla su CPU, linijski interfejs ili
I/O bus,
Tipino <0.5Gb/s agregatni kapacitet
Arhitekture paketskih cvorova

26

Ruteri prve generacije


Shared

Fiksna duina DMA blokova


Backplane
Ili elija. Reasembliraju se na izlaznoj
Linijskoj kartici

Li
CP
n
U Int ijs
er ka
fa
ce
M
em
or
ija

CPU

Route
Table

Bafer
Memorija

Linijska
Interface

Linijska
Interface

Linijska
Interface

MAC

MAC

MAC

elije fiksne duine ili


Paketi varijabilne duine

Tipino <0.5Gb/s agregateni kapacitet

Ruteri prve generacije


Struktura repa: Dijeljena Memorija
Ulaz 1

Ulaz 2

Ulaz N

Bili su 1mogui brojni kvaliteti sadanjih


Izlaz
rutera:
Ravnopravnost
Garancije kanjenja
Kontrola varijacije kanjenja
Garancije gubitaka
Izlaz
2
Statistike
garancije

Veliki, dinamiki upravljani


memorijski bafer:
Izlaz
N
N upisa po elijskom vremenu
N itanja po elijskom vremenu.

Limitiran memorijskim
opsegom.

Ruteri druge generacije


CPU

Route
tabela

bafer
memorija

linijska
kartica

linijska
kartica

linijska
kartica

bafer
memorija

bafer
memorija

bafer
memorija

Komut
Ke

Komut
Ke

MAC

MAC

Komut
Ke
MAC

Tipino <5Gb/s agregatni kapacitet


Arhitekture paketskih cvorova

Usko grlo u
drugoj
generaciji
komutator
a je bus ili
ring.
Tehnika
hashing-u
keu za
ATM VCI ili
Ethernet
29

Ruteri druge generacije


Bafer
Memorija

CPU

DMA

Linijska
Kartica
Local
Bafer
Memorija
MAC

DMA

Linijska
Kartica
Local
Bafer
Memorija
MAC

DMA

Linijska
Kartica
Local
Bafer
Memorija
MAC

Inteligencija traenja izlaza na Linijskim Karticama


Najea podudaranja adresa u lokalnoj ke memoriji
ta je skupo? Bas ? Memorija? Interfejs? CPU?

Ruteri druge generacije

CPU

Tabela
rutira

Bafer
Memorija

Spori Put

Odbacivanje

Linijska
Kartica

Linijska
Kartica

Linijska
Kartica

Bafer
Memorija

Bafer
Memorija

Bafer
Memorija

Komut
Ke

Komut
Ke

Komut
Ke

MAC

MAC

MAC

Tipino <5Gb/s agregatni kapacitet

Odbacivanje ili
Vraanje nazad
Rasporeivanje
na izlaznu
liniju

Ruteri druge generacije


kad je keiranje postalo neefektivno
Exception
Procesor

CPU

Tabela
rutir

Linijska
Kartica

Linijska
Kartica

Linijska
Kartica

Bafer
Memorija

Bafer
Memorija

Bafer
Memorija

Komut
Table

Komut
Table

Komut
Table

MAC

MAC

MAC

Ruteri druge generacije


Struktura repa: Kombinovano Combined Input and Output Queuing
(CIOQ)

1 upis po elijskom slotu

Brzina upisa/itanja
odreena brzinom basa

Bus

1 itanje po eliji vremena

Svievi/Ruteri tree generacije


Komutacija basom kod
I i II generacije

Li
i
CPnt nijs
U er ki
fe
js
m
em
or
ija

linijski
kartica

CPU
kartica

linijski
kartica

Local
bafer
memorija

Rutiranje
tabela

Local
bafer
memorija

Komut
tabela

Komut
tabela

MAC

MAC

Komutaciono polje omoguuje vie paralelnih puteva


Typino<50Gb/s agregatni Kapacitet
Arhitekture paketskih cvorova

34

Svievi/Ruteri tree generacije

Komutacija basom

Li
L
i
I
LI i nnt ene
L
innntee erf
I
L
n
i
I te
a
LI i LInint enntee erfarfac ce
n
r
n
CIP LIninteeteerferfacfacece e
ntU rfa ace e
Me erf ce

em ac
or
y

Svi sa poljem paralelnih puteva


ta je skupo? Bas? Memorija, CPU?

Line
Card

CPU
Card

Line
Card

Local
Buffer
Memory

Local
Buffer
Memory

MAC

MAC

Svievi/Ruteri tree generacije


Struktura repa

1 upis po elijskom slotu

Brzina upisa/itanja
odreena ubrzanjem
komutacionog polja

Komut
Arbiter

1 itanje po elijskom slotu

Svievi/Ruteri tree generacije


Struktura repa: VOQs

1 upis po elijskom slotu

Brzina upisa/itanja
odreena ubrzanjem
komutacionog polja

1 itanje po elijskom slotu

Komutator
Arbitar
Kontrola toka
Povrat nazad
Po tok/klasi ili poizlaznim repovima
(VOQs)

Po tok/klasi ili poulaznim repovima

Ruteri tree generacije: limiti


Samorutirajue komutacije
Izlazni bafer mjesto
konkurencije
Osim ako se arbitrira pristup
komutaciji
veliina-ograniena: 19 ili 23 iroki.
Potronja-ograniena: ~<8kW.

Potronja: 100A/200A maksimum na 48V


19 or 23

Ruteri/Svievi etvrte generacije


Multi-rekovi, Optike meuveze

Optike veze

100-ne
metara

Komutaciono
jezgro

Linijske kartice

0.3 - 30Tb/s ruteri

Arhitekture paketskih cvorova

39

Klju: Fiziko odvajanje komutacionog


jezgra i linijskih kartica
Distribuira

snagu na vie rekova.


Omoguuje da sve baferovanje bude u
linijskim karticama:
Redukuje

snagu.
Kompleksno rasporeivanje, bafer mgmt, politika
odbacivanja itd. Na linijskoj kartici.

Ruteri/Svievi etvrte generacije


LCS Protokol

Optike veze

Vie od100
metara

Jezgro svia

Linijske kartice

Fiziko odvajanje
Linijska kartica

Brojai po repu

Komut Port

1: Zaht

1 RTT

L
C
S

2: Dozvola/kredit
Sekv br
3: Podaci

Komut
Komut

L
C
S

polje
polje
Zaht
Dozvola

Raspore
Raspore
Svia
Svia

Fiziko odvajanje
Usklaivanje elijskih vremena
Jezgra svia

Linijska kartica
L
C
S

Linijska kartica
L
C
S
Linijska kartica
L
C
S

Komut.
Komut.
Polje
Polje
Komut.
Komut.
rasporeiva
rasporeiva

Ruteri/Svievi etvrte generacije


Struktura repa
Virtualni izlazni repovi
1 upis po elijskom slotu
Pretraga
&
Odbac
Policy

Brzina upisa/itanja
odreena ubrzanjem
komutacionog polja

1 ianje po elijskom

Izlaz
Raspore

Komut
polje

Pretraga
&
Odbac
Policy

Izlaz
Raspore

Komut
Arbitration

Pretraga
&
Odbac
Policy

Komut. jezgra
(Bez bafera)

Linijska kartica

Tipino<5Tb/s agregatni kapacitet

Izlaz
Raspore

Linijska kartica

Ruteri pete generacije


Optiko komutaciono jezgro

Optike veze

100-ne
metara

Optika jezgra komutacije

Linijske kartice

10-100Tb/s ruteri, u projektu


Arhitekture paketskih cvorova

45

(Futur) Ruteri este generacije


Sve optiki ruteri

Optike veze

100-ne
metara

Optika jezgra komutacije

Optike linijske kartice

100-1000Tb/s ruteri, u daljoj budunosti


Arhitekture paketskih cvorova

46

Generika ruterska arhitektura


Obrada zaglavlja
pretraga
IP adresa

bafer
Manager

obnovi
zaglavlje

adresa
adresa
tabela
tabela

bafer
bafer
memorija
memorija

Obrada zaglavlja
pretraga
IP adresa

bafer
Manager

obnovi
zaglavlje

bafer
bafer
memorija
memorija

adresa
adresa
tabela
tabela

Obrada zaglavlja
pretraga
IP adresa

bafer
Manager

obnovi
zaglavlje

bafer
bafer
memorija
memorija

adresa
adresa
tabela
tabela

Arhitekture paketskih cvorova

47

Tehnike pretraivanja

Egzaktno podudaranje
Direktno pretraivanje
Asociativno pretraivanje
Hashing (He izraunavanje
Stabla (Trees) i pokuaji (tries)

Podudaranje po najduem prefiksu


(Longest Prefix Matching)
Zato LPM?
Stabla i komprimirana stabla

Binarno pretraivanje na prefiksnim intervalima

48

Preretraga tabela proslijeivanja (Lookup)


Pretraga ima vie tehnika, kao :
Exact match (npr., MAC addresses, VLANs, IP multicast)
Longest Prefix Matching (LPM) (Pretraivanje FIB tabela)
Range matching (npr, port-ovi, firewall-i)
Radi optimizacije pretrage, koriste se podesne strukture podataka
Wirth-ov zakon

Programi = algoritmi + strukture podataka

Nad strukturama podataka se vre akcije:


Insert ubacivanje novih elemenata za opis rute
Delete beisanje elemenata za opis rute
Modify - modifikacija
Search - pretraga
Uz provjeru metrika :
Vremensko trajanje akcije
Obim (prostorna efikasnost)
Skalabilnost

49

Tabela proslijeivanja
Naj jednostavnija (i najbra) struktura podataka je LookUp Table (LUT)
To je indeksirani niz, Location Addressable Memory (LAM)
Adresa odredita se koristi kao indeks za pristup (Nrxt Hop) informaciji
U njoj moe biti dodatna informacija, npr, L2 tip i adresa, da se izbjegnu
dodatne pretrage
Primjer :

Ogranienja

Upotrebljiva samo za egzaktno podudaranje, a ne za LPM


Ograniena na male brojeve moguih adresa, npr. VLAN-ove

LUT se mogu koristiti poslije drugih struktura podataka koje vraaju klju kao indeks
50

Hash tabele
Hash tabele omoguuju rad sa velikim brojem potencijalnih adresa
Hashing funkcija vri prevoenje:
Iz velike vrijable (velikog broja bita ili bajta)
U malu varijablu (maili broj bita ili bajta)
- white (male promjene ulaza kreiraju vrlo razliite izlaze)
Hashing dugih adresa proizvodi kratki indeks
Problem je to hashing funkcija nije 1:1 (razni ulazi mogu dati isti izlaz)
te uvijek postoji vjerovatnoa hash sudara (kolizija)
Rjeenja :
perfektni hashing samo kad su adrese unaprijed poznate
indeks u tabeli vraa listu svih memorisanih adresa
viestruki hashing linearno ispitivanje (probing), kvadratni probing
Hashing je vrlo podesan za egzaktno podudaranje (npr. MAC adrese)
a ne za LPM
51

Implementacije hash tabela


Hash tablele su efikasnije od tabela pretrage (Search Tables) a manje
efikasne od LUT
Da bi se kontrolisale kolizije, potrebne su relativno velike tabele (birthday
paradox !) Primjer :
99% vjerovatnoe kolizije
kad se 3000 elemenata stavi u hash tabelu veliine1 million
Koritenjem viestrukog (multiple) hashing-a
prosjeno optereenje pri izraunavanju je O(1 + kljuevi/veliina
tabele)
Primitivna hash funkcija je npr. modulo hash
H(key) = adresa mod veliina_tabele
veliina_tabele mora biti neparan broj
Bolja hash funkcija je npr (za odgovarajui cijeli broj m i frakciju f)
H(key) = Trunc [ m Frac( f adresa) ]
Kvalitet hashing funkcije zavisi od f
Kod Fibonacci hashing-a : f = 1 /
je zlatni odnos (5 2) 1.618

52

Tabela pretraga (Search Table)


Prostorno najefikasnija struktura podataka je tabela pretrage It is
Slina je LUT, ali rezultat pretrage nije indeks, nego se vri
sekvencijalna pretraga da se dobije prava adresa
Vrijeme pretrage se moe smanjiti redoslijedom adresa u tabeli
po veliini
Tebele pretraga su podesne za LPM !
Primjer:
FIB ureen od najdueg (longest prefix) ka (0.0.0.0/0)

Krui se kroz FIB listu dok se ne nae prvo podudaranje


53

Tabela pretraga - ogranienja


Search tables nisu ograniene veliine kao LUT tabele, ali zato je
skupo traenje adrese
Skupo je modifikovanje informacije za neku adresu
Vrlo je skupo raditi insert ili delete adresa (copy!)
Search table FIB- mogu se proizvesti iz RIB tabela bilo kada
Egzaktno podudaranje se moe ubrzati binarnom pretragom
Poredati adrese
pogoditi poziciju u sredini opsega tabele gdje treba biti klju
Izabrati novi opseg poreenjem

54

Povezane liste (Linked Lists)


Search tables je teko odravati
pri akcijama insert ili delete elemenata izvri se mnogo koraka
Linked lists su projektovane da smanje broj koraka kod ovih apdejta, ali je
i dalje potrebna intenzivna pretraga da se odredi gdje ubaciti (insert)
O(N), gdje je N broj elemenata liste. U najboljem sluaju O(N/2)
Linked lists mogu biti jednostruko ili dvostruko povezane

Liste preskakanja (Skip lists) poveavaju efikasnost preskakanjem


opsega. Pravilno konstruirane skip lists sa vie nivoa daju O(log N) u
prosjeku, ali je obim i dalje O(N) u najgorem sluaju

55

Strukture podataka tipa stablo


Graf je skup vorova i linija kojima su povezani
Kod usmjerenog grafa linije su usmjerene te svaka ima vora oca i vora
dijete
vorovi bez djece su listovi
uma je usmjereni graf bez petlji (samo jedan put izmeu svaka dva vora)
Stablo je uma sa jednim korjenom i definiea parcijalni red
Obino se stablo crta naopke, sa koijenom na vrhu)

Binarno stablo moe imati samo 2 izlazne linije iz vora

Stabla se mogu implementrati koritenjem nizova, pointera (kao linked lists),


ureene strukture (heap).
56

Pretrana stabla (Serach Trees)


Search trees mogu pohraniti podatke u: vorovima, samo u listovima, na
linijama, kombinacijom prethodnog

Kod generalnih search trees pretraga moe biti prvo po irini (breadthfirst) ili po dubini (depth-first)
Breadth-first

start kod korjena


Nai djecu korjena i potrai eljene podatke
Ako ih nema nai svu djecu od djece
Nastavi do kraja

Depth first

start kod korjena


Nai prvo djete i potrai eljene podatke
Ako ih nema nai prvo dijete od prvog djeteta
Nastavi dok ne nae podatke ili doe do lista
Ako je list vrati se na oca i ispitaj slijedee dijete
57

Binarna stabla
Binary Search Trees pojednostavljuju memorisanje i obradu podataka
Djeca vora N su L i R
Perfect binary trees imaju samo 2 djece po svakom internom voru
Te postoji tano 2H listova, gdje je H visina (height) stabla
Ukupno postoji (2H+1 1) vorova

Pri memorisanju kljueva (key) u binary search tree


Upii kljueve u sve vorove
Za svaki meu vor N vai
key(L) < key(N)
key(R) > key(N)
Da bi naao klu u BST
start kod korjena (postavi tekui vor u korjen)
Ispitaj dali je klju upisan u tekuem voru
Ako nije : if key < key(N) then set current to L else set current to R
U najgorem sluaju potrebno je H poreenja (za perfect trees O(log N))
58

Tries
Naziv izveden iz retrieve (izvui), ali se obino izgovara try
Trie je ureeno stablo sa
Podvrijednostima (subvalues) na linijama
Vrijednostima (values) u listovima
Tries se vezuju za predstave pretrage prefiksa
U poetku koritena za egzaktno podudaranje
Tries mogu biti binarna ili ne
Tries su podesna za sve leksikografike pretrage O(log n)
ali su posebno podesna za LPM
Trie varijante su najbre poznate pretrage - O(log log n)
LC-se koriste modernim Linux router implementacijama
59

Tries - Primjer
Neka je FIB data kao :
10.0.128.0/16
10.0.0.0/8
192.168.0.0/16
192.168.128.0/24
0.0.0.0/0

10 0
0

0
0

Uoite:
Kod plain trie,
svi IP prefiksi su iste duine

0
/8

128

0
/16

192
168

0
/0 /16

128

0
0

/24

60

Primjer Kompaktna Tries


Isti FIB :
10.0.128.0/16
10.0.0.0/8
192.168.0.0/16
192.168.128.0/24
0.0.0.0/0
0.0/8

10.0

192.168

0.0.0.0/0

128.0/16

0.0/16

128.0/24

Sada je maksimalna duina2


Memorija se mogla utedjeti koritenjem zajednikih sufiksa
61

Tries - varijante
Patricia trie
Practical Algorithm to Retrieve Information Coded in Alphanumeric
Binary trie u kojoj su upisani brojevi bita koje treba preskoiti da se
stigne u slijedeu taku odluivanja
Kod LPM prefiksi su upisani u interne vorove
Bucket tries (vedra)
Viestruki kljuevi su upisani u listove
Multibit tries (M-tries)
Manje odluka o grananju nego kod binary tries
Multibit strides (viebitni pomaci obino varijabilni)
Level-compressed tries (LC-tries) Tries sa manje nivoa
Zamjenjuju perfektna podstabla u binarnom trie sa jednim nivoom sa
2k vorova
LPC trie level and path compressed manje nivoa i puteva
I mnoga druga (Lulea, full-tree, )
62

Tries - varijante
Binarno trie

LC trie

63

Content Addressable Memory


CAM (AKA associative memory)
Adresabilna po sadraju (by content), a ne po lokaciji (LAM)
Hardver posebne namjene
Najbra pretraga (u sutini pretrai cijelu tabelu u jenom taktu clock-a)
ali je veliina ograniena
obino koristi regularnu memoriju kao dodatnu
Binary CAM (BCAM) stores 0 ili 1 u svakom bitu
Ternary CAM (TCAM) dozvoljava dokere (wildcards)
Moe sr koristiti kod LPM
Moe dati prioritet rjeenju sa
brojem podudarajuih bita
Rednim brojem u tabeli
CAM technology today
32 do 144 bit-nim kljuevima
128K 512 K memorije
stotine milion pretraga u sekundi
64

Primjer 3-bitni TCAM


encode
r
M1[1]

M1[2]

M1[3]

M2[1]

M2[2]

M2[3]

M3[1]

M3[2]

M3[3]

match
lines

search
lines
Q[1]

search word Q[2]

Q[3]
65

Egzaktno podudaranje kod ATM/MPLS


Direktno pretragivanje memorije

Memory

Data

Address

VCI/MPLS-label

(Outgoing Port, new VCI/label)

VCI/Labela duine 24 bita


- Maksimum 16M adresa duine 64 bita (1Gbit memorije).
VCI/Labela vezani samo za jedan link
Stoga, veliina tabele moe biti dogovorena
Alternativno, se moe koristiti neki nivo indirekcije
66

Egzaktno podudaranje u Ethernet svievima

MAC adrese su duine 48-bita i one su


globalne, a ne lokalne vezane za link,
Opseg adresa se ne moe dogovarati (kao
kod ATM/MPLS)
248 > 1012, te nije mogue drati sve adrese u
tabeli i koristiti direktno pretraivanje.

67

Egzaktno podudaranje u Ethernet


svievima (Associative Lookup)

Asocijativna memorija (kao Content Addressable


Memory, CAM) poredi sve unose u tabeli paralelno sa
adresom iz zaglavlja paketa.
Associative
Memory
(CAM)

Match

Data

Location

Address

Address

48bits

Data

Network address

Normal
Memory
Port

68

Egzaktno podudaranje u Ethernet svievima


Hashing

Pointer

List/Bucket

Data

Memory
Address

48

Hashing
Function

16, say

Data

Mrena
adresa

Address

Memory

Lista mrenih adresa u ovom


vedru (bucket)

Koristi pseudo-sluajnu hash funkciju (relativno nesenzitivnu sa


aktualnom funkcijom)
Vedro se linearlno pretrauje (ili moe biti binarno pretraivanje)
Vodi ka nepredvidivom broju memorijskih pristupa
69

Egzaktno podudaranje sa Hashing-om


Broj pristupa memoriji

Expected number of memory references :


1
ER (Expected length of list | list is not empty)
2

1
1 M
2
1 (1 )

M= Broj adresa
N= Broj lista

70

Egzaktno podudaranje sa Hashing-om

48

Hashing
Function

16, say

Memory

Data

Network
Address

Address

Perfektni Hashing
Port

Uvijek postoji perfektna hash funkcija.


GCilj: Sa perfektnom hash funkcijom, pretraivanje memorije
zahtjeva O(1) pristupa memoriji.
Problem:
- Nalaenje perfektnih hash funkcija (posebno minimalne
perfektne hash) je kompleksno.
- Apdejti ine takve hash funkcije jo kompleksnijim
- Napredne tehnike: viestruke hash funkcije, bloom
71
filtri

Egzaktno podudaranje sa Hashing-om


Zakljuci

Prednosti:

Nedostaci

Jednostavnost implementacije
Malo srednje vrijeme pretraivanja
Apdejti su brzi (osim sa perfektnim hash funkcijama)
Relativno neefektivno koritenje memorije
Ne-deterministiko vrijeme pretraivanja (rijetko)

Atraktivno za softverski bazirane svieve.


Meutim, hardverske platforme tee ka drugim
tehnikama (ali mogu koristiti i sofisticiranije forme hashing-a)
72

Egzaktno podudaranje u Ethernet svievima


Stabla i Tries
Kod Ethernet proslijeivanja korisno je posmatrati proces
pretraivanja kao prolaenje kroz specijalnu vrstu labeliranog
stabla nazvanog Trie
Binarno stablo pretraivanja

<

>
>

<

0
>

log2N

<

Binarno pretraivanje Tries

N entries
Vrijeme pretraivanja zavisno od
veliine tabele, ali nezavisno od duine
adrese, memorija O(N)

1
1

010

111

Vrijeme pretraivanja ogranieno i


nezavisno veliine tabele, memorija
O(NW)
73

Jednostavna Tries i Egzaktno


podudaranje u Ethernet svievima
Svaka adresa u tabeli proslijeivanja je fiksne duine
Naprimjer, ako koristimo jednostavno binarno pretrano
trie potrebno je 48 koraka da se nae MAC adresa. Ako je
tabela mnogo manja od 2^48 (!), to je previe koraka
Umjesto poreenja jedan bit po nivou zato ne porediti m
bita po nivou?
Potrebna memorija raste ako m raste
Previe je vorova sa pointerom0
Kad postoji vie nivoa u stablu omoguava odsjecanje
potencijalno velikih podstabala balansiranog stabla
(tednja memorije)
Izbor broja nivou zavisi od memorijskih ogranienja

Egzaktno podudaranje u Ethernet svievima


Tries sa vie puteva
16-ary Search Trie
Ptr=0 znai
bez djece

0000, ptr

0000, 0

1111, ptr

000011110000

1111, ptr

1111, ptr

0000, 0

111111111111

Zato ne moemo napraviti 248-ary trie?


75

Egzaktno podudaranje u Ethernet svievima

Multiway tries
Kako stepen raste sve je vie pointera 0

Degreeof
Tree

# Mem
References

2
4
8
16
64
256

48
24
16
12
8
6

# Nodes Total Memory Fraction


(Mbytes)
Wasted (%)
(x106)
1.09
0.53
0.35
0.25
0.17
0.12

4.3
4.3
5.6
8.3
21
64

49
73
86
93
98
99.5

Table produced from 215 randomly generated 48-bit addresses


76

Egzaktno podudaranje u Ethernet svievima


Stabla i Tries

Prednosti:

Fixno veijeme pretraivanja


Jednostavnost implementacije i apdejta

Mane

neefektivno koritenje memorije i/ili


Veliki broj memorijskih pristupa

More sophisticated algorithms compress sparse nodes.

77

Pretraga IP adresa
Zato

je teka:

Nije

slaganje pune adrese: to je slaganje sa


najduim prefiksom.
Tabela je velika: oko 150,000 lanova i raste.
Pretraga mora trajati : oko 30 ns za 10Gb/s
linijske interfejse.

Arhitekture paketskih cvorova

78

Pretraga IP adresa
U

ranim danima Internet je koristio emu klasnog adresiranja,


to je poznato kao Klasa A, Klasa B i Klasa C.
Sa

emom klasnog adresiranja, proslijeivanje paketa je jasno.


Ruteri treba da ispitaju samo mreni dio destinacijske adrese da
bi proslijedili paket do destinacije.
Dakle,

tabela proslijeivanja treba da pohrani jedan unos


(mreni dio) za rutiranje paketa namijenjenih svim hostovima
prikaenim na datu mreu. Takva tehnika je nazvana
udruivanje adresa (address aggregation) i koristi prefikse da
predstavi grupu adresa
Nalaenje

informacije proslijeivanja zahtijeva pretraivanje


prefiksa u tabeli proslijeivanja i nalaenje onog koji se egzaktno
poklapa sa istim setom bita u destinacijskoj adresi
Arhitekture paketskih cvorova

79

Pretraga IP adresa
Tabela

proslijeivanja je organizovana u tri odvojene tabele: jedna za svaku od tri


dozvoljene duine: 8 bita ,16 bita i 24 bit za klase A, B i C, respektivno.
Adresa

klase je odreena pomou prvih bita destinacijske adrese. Oslanjajui se


na ovu informaciju, jedna od tri tabele se uzima za pretragu, a u sluaju klase A i B
zbog malog broja ukupnih adresa mogue je koristiti i direktan pristup na bazi
mrenog prefiksa. Inae se koristi Hashing.

Arhitekture paketskih cvorova

80

Pretraga IP adresa
Klasno

adresiranje je naputeno zbog neracionalnog


korienja adresnog prostora
Uvedeno

je besklasno adresiranje kod kojeg mreni prefiks


moe da bude proizvoljne duine
Takoe,

uvodi se agregacija zapisa u tabeli prosleivanja


radi smanjivanja veliine tabele
Agregacija

dovodi do problema da za istu odredinu IP


adresu moe da se nae dva ili vie rezultata pri pretrazi
tabele prosleivanja
Pravilo

izabiranja najdueg prefiksa koji se poklapa tzv.


Longest Prefix Matching rule

Arhitekture paketskih cvorova

81

IP pretrage trae nadue prefikse

128.9.176.0/24

128.9.16.0/21 128.9.172.0/21
65.0.0.0/8

128.9.0.0/16

142.12.0.0/19

128.9.16.14

232-1

Rutiranje pretraga: Nai najdui podudaran


prefiks (tj. Najtaniju rutu) meu svim
prefiksima koji se djelimino slau sa
odredinom adresom.
Arhitekture paketskih cvorova

82

Adresne tabele prevelike

Izvor: http://www.cidr-report.org/
Arhitekture paketskih cvorova

85

IP Ruteri
Metrika Pretraga

128.9.16.14

Prefiks

Port

65/8
128.9/16
128.9.16/20
128.9.19/24
128.9.25/24
128.9.176/20
142.12/19

3
5
2
7
10
1
3

Trajanje pretrage
Memorijski prostor
Trajanje apdejta
Vrijeme preprocesiranja.

Pretraga Potrebne brzine


Godina

Linija

Linijaska brzina
(Gbps)

40B paketi
(Mpps)

1998-99

OC12c

0.622

1.94

1999-00

OC48c

2.5

7.81

2000-01

OC192c

10.0

31.25

2002-03

OC768c

40.0

125

31.25 Mpps 33 ns
DRAM: 50-80 ns, SRAM: 5-10 ns

Apdejti Potrebne brzine


Skorije

BGP studije pokazuju da apdejti


mogu biti:
Skokoviti:

nekoliko 100-tina ruta


zanovljeno/uklonjeno => insert/delete operacije
esti: Prosjek 100+ apdejta/s
Potrebno

je da struktura podataka bude


efikasna za pretragu i operacije apdejta
(insert/delete) .

Pretraivanje tabela rutiranja


Tekoe pri pretraivanju tabele na bazi slaganja
najdueg prefiksa
Kod

adresne eme na bazi klasa, duina prefiksa je


kodirana u najznaajnijim bitima IP adrese te je traenje
adrese jednostavan rad
-prefiksi su organizovani u tri razliite tabele (A,B i C) te se
tano slaganje prefiksa moe uraditi koritenjem standardnog
algoritma traenja na bazi odsjecanja ili binarnog traenja
CIDR daje manje tabele rutiranja ali je traenje adrese
sloenije, tj. prefiksi su proizvoljne duine i vie ne
predstavljaju mreni dio. Tako se traenje u tabeli rutiranja
vie ne moe vriti egzaktnim slaganjem jer se duina
prefiksa ne moe izvesti iz same adrese, nego se tarenje
obavlja u dvije dimenzije: vrijednosti i duine niza bita
89

Generika ruterska arhitektura


Header Processing
Data

Hdr

Lookup
IP Address

IP Address

~1M prefixes
Off-chip DRAM

Update
Header

Queue
Packet

Data

Hdr

Next Hop

Address
Address
Table
Table

Buffer
Buffer
Memory
Memory

~1M packets
Off-chip DRAM

90

Memorijske tehnologije (2006)


Technology Max
$/chip
single
($/MByte)
chip
density

Access
speed

Watts/
chip

Networking
DRAM

64 MB

40-80ns

0.5-2W

SRAM

8 MB

3-4ns

2-3W

4-8ns

15-30W

$30-$50
($0.50-$0.75)
$50-$60
($5-$8)

TCAM

2 MB

$200-$250
($100-$125)

91
ote: Price, speed and power are manufacturer and market dependent.

Tabela proslijeivanja
Tabela

proslijeivanja (Forwarding Table) u raunarskim mreama je


fajl smeten u RAM vora koji sadri informacije o topologiji mree u
njegovoj okolini.
Na osnovu odredine IP adrese u zaglavlju paketa i informacija iz
tabele proslijeivanjaa, vor, kao ureaj prosljeuje pakete ka krajnjoj
destinaciji.
Rute u tabeli proslijeivanja moemo klasifikovati u tri grupe:
- Direktno povezane rute:
Svaki od interfejsa (pod-interfejsa) rutera mora da pripada razliitim
mreama. Kada dodjelimo interfejs nekoj mrei, odnosno kada mu
dodjelimo IP adresu i masku koja joj odgovara, mrea kojoj pripada
automatski ulazi u tabelu ruturanja kao direktno povezana mrea. U
tabelama rutiranja rute ka direktno povezanim mreama se
najee oznaavaju latininim slovom "C" od (engl. Connected).

Tabela proslijeivanja
- Statiki dodijeljene rute
U tabelama rutiranja se oznaavaju latininim slovom "S" od (engl.
Static), upisuje ih sam administrator statiki. Najee se koriste u
mreama sa malim brojem rutera, ili kada postoji samo izlaz na internet
servis provajdera.
- Dinamiki odreene rute
Udaljene mree se najee upisuju u tabelu dinamiki pomou
protokola rutiranja. Ruteri koriste ove protokole rutiranja radi razmjene
informacija o dostupnosti i statusu udaljenih mrea. Svaki protokol
rutiranja proizvodi svoju tabelu rutiranja, a sve tabele rutiranja se koriste
za izvoenje tabele proslijeivanja. Cijeli postupak se naziva rutiranje.
Ovakav nain odravanja tabela rutiranja ima prednosti u odnosu na
statiki. Naime, pri promjeni topologije mree, ruteri dinamiki promjene
informacije u tabeli bez potrebe za asistencijom administratora.
U tabelama dinamiki odreene rute se oznaavaju nekim od latininih
slova koje upuuje na protokol rutiranja kojim je ruta odreena.

Tabela proslijeivanja
Primjer tabele (tabela sa Cisco rutera).
Ruter#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
P - periodic downloaded static route
Gateway of last resort is not set
172.16.0.0/24 is subnetted, 3 subnets
R
172.16.1.0 [120/1] via 172.16.2.1, 00:00:02, Serial0/0/0
C
172.16.2.0 is directly connected, Serial0/0/0
C
172.16.3.0 is directly connected, FastEthernet0/0
C 192.168.1.0/24 is directly connected, Serial0/0/1
Ruter#

Pretraga tabela proslijeivanja


Traenje rute
Primarni

cilj projektovanja strukture podataka koja e se koristiti u tabelama :


- minimizacija vremena traenja
minimizirati broj pristupa memoriji u toku traenja
minimizirati veliinu strukture podataka (da stane djelomino ili potpuno u
ke memoriju)
Sekundarni ciljevi strukture podataka
to

manje izvrenih instrukcija u toku traenja

Drati

elemente prirodno poredane to je vie mogue da bi se izbjegle


skupe instrukcije i sloene operacije ekstrakcije bita
Binarno stablo koje se prostire nad cijelom adresnim prostorom kod IPv4 ima
visinu od 32 i broj listova je 2**32

95

Pretraivanje tabela proslijeivanja


Prefiks

elementa tabele definie put u stablu koji se zaustavlja u nekoj


taki (voru) i sve IP adrese (listove) na pod-stablu iji je korjen u tom
voru rutiraju se na osnovu tog elementa tabele rutiranja. Svaki
element tabele definie jedan opseg adresa koje imaju zajedniku
rutnu informaciju
Ako vie elemenata tabele rutiranja pokrivaju neku IP adresu
primjenjuje se pravilo najdueg slaganja, tj. Koristi se najdui
primjenljivi prefiks
Na datoj slici e2 predstavlja due slaganje nego e1 za adrese opsega
r

96

Pretraivanje na bazi binarnog stabla


Stablo

je grafovska struktura koja omuguuje da se prefiksi organizuju tako


da biti prefiksa usmjeravaju grananje
U stablu, vor na nivou k predstavlja skup svih adresa koje poinju sa istih k
bita koje oznaavaju put od korijena do vora. Naprimjer, vor c na slici, je na
nivou 3 i predstavlja sve adrese koje poinju nizom 011
vorovi koji odgovaraju prefiksima su tamnije osjeneni, te oni sadre
usmjeravajuu informaciju ili pointer na nju
Neke adrese se slau sa vie prefiksa, naprimjer, adrese koje poinju sa 011
se slau sa prefiksima c i a, ali je prefks c izabran zato to je due ( slaganje)

97

Pretraivanje tabela proslijeivanja


Dok se prolazi kroz stablo i posjeuju se vorovi
oznaeni kao prefiks, taj prefiks se oznaava kao
najdui do tada. Dok se koraa kroz stablo u svakom
koraku se skup potencijalnih prefiksa smanjuje i
traenje prestaje kad se skup svede na jednog, tj kad
vie nema grana na koje se moe izii i najdue
slaganje je prefiks posljednjeg posjeenog prefiks
Adresni
vorita.
prostor
za
adrse
duine
5 bita

98

Pretraivanje tabela proslijeivanja


Stabla sa komprimiranim putevima
U

bnarnim stablima mogu postojati duge sekvence vorova sa jednim


djetetom i ti se biti moraju ispitati mada je odluka o aktuelnom grananju ve
donesena te je traenje due nego to je neophodno i i vorovi sa jednim
djetetom zauzimaju dodatnu memoriju
Vrijeme traenja binarnog stabla je O(W) a memorijska potreba je O(NW),
gdje je W duina adrese u bitima, a N je broj elemenata tabele
Tehnika kompresije puta moe se koristiti da se uklone nepotrebni vorovi
sa jednom granom i smanji vrijeme traenja i potrebna memorija
Tehnika kompresije puta je prvi put uvedena u emi nazvanoj Patricia
koja je unaprijedila strukturu binarnog stabla
Ona se bazira na zapaanju da neki interni vor, koji ne sadri prefiks i
ima samo jedno dijete, moe da se ukloni
Uklanjanje internih vorova zahtjeva da se doda informacija o
nedostajuim vorovima u preostale vorove tako da se traenja mogu
obaviti tano. Naprimjer, prost nain je da se zapamti broj koji oznaava
koliko je vorova bilo preskoeno (vrijednost preskoka) ili broj slijedeeg
adresnog bita koga treba ispitati
99

Pretraivanje tabela proslijeivanja


esto

se javljaju putanje bez


ravanja sa praznim vorovima
Nema ravanja nema
odluivanja u vorovima o
daljem smjeru kretanja
One mogu da se komprimuju
izbacivanjem praznih vorova
Mora da se pamti broj
preskoenih vorova
Mora da se poredi kompletan
prefiks u svakom voru

100

Pretraivanje tabela proslijeivanja


Uklonjena

su dva vora koja prethode voru b


Poto je prefiks a bio lociran u voru s jednim djetetom on je premjeen
na najnieg slijedeeg koji nije vor sa jednim djetetom

101

Pretraivanje tabela proslijeivanja


Ako

se nekoliko vorova s jednim djeteom na putu trebaju komprimirati u


nekim vorovima moraju se odravati liste prefiksa
Zbog uklanjanja vorova sa jednim djetetom, traenje skae direktno na
bit adrese kod kojeg se donosi znaajna odluka te
-pozicija slijedeeg adresnog bita koji treba ispitati mora se memorisati
-Nizovi bita prefiksa moraju biti eksplicitno memorisani
Traenje

u stablu sa komprimiranim putevima se odvija kako slijedi:


-poinje se od korijena i silazi pod vodstvom bita adrese, ali sada se ispituju
samo pozicije bita oznaene sa brojem pozicije u vorovima koji se prolaze
-Kad se doe do vora koji je oznaen kao prefiks, vri se poreenje sa
aktualnim prefiksom zbog toga to se silaskom niz stablo neki biti mogu
preskoiti
Ako je slaganje naeno nastavlj se put kroz stablo, a prefiks se zapisuje
kao najbolji do tad (BMP Best Matched Prefix)
Traenje se zavrava kad se doe do lista ili kad se naie na neslaganje
BMP je tada posljednji prefiks koji se slagao
102

Pretraivanje tabela proslijeivanja


U

prethodnom primjeru uzima se adresa koja poinje sa


010110
Poinje se od korijena poto je njegova bit pozicija 1 i
ispituje se prvi bit adrese
-prvi bit je 0 =>idi na lijevo
-=>kako je taj vor oznaen kao prefiks, uporedi prefiks a
(0) sa odgovarjuim dijlom adrese => podudaraju se
-=> memorii a kao BMP za sada
-=> bit pozicija novog vora je 3 tako da se preskae drugi bit
adrese koji je 0 => idi na lijevo
-=> slijedei vor ukljuuje prefiks pa se treba uporediti
prefiks b sa odgovarajuim dijelom adrese
-=> nema slaganja => zaustavi traenje => zadnji zapisani
BMP je a
103

Pretraivanje tabela proslijeivanja


Multibit-no stablo
Nedostatak

binarnog (1-bitnog) traenja stabla je da se ispituje samo


jedan bit u jednom koraku te broj pristupa memoriji moe biti do 32 za
IPv4 (najgori sluaj)
Broj traenja moe se znaajno smanijti koritenjem strukture multibit
stabla, gdje se u jednom koraku ispituje nekoliko bita
Naprimjer, ispitivanjem etiri bita u jednom koraku znai samo 8
memorijskih pristupa za najgori sluaj IPv4 adrese
Broj bita koji se ispituje (K) naziva se pomak (stride) i on moe biti
fiksan ili varijabilan
Kod K-bitnog stabla, svaki vor ima 2K pointera (djeca)
Ako prefiks rute nije umnoak od K on se treba proiriti do K ili
njegovih umnoaka
Vrijeme traenja j O(W/K) i memorijski zahtjev je O(2 (K-1) NW/K)

104

Pretraivanje tabela proslijeivanja


Primjer multibit-nog binarnog stabla
Prefiksi

a i d su proireni na duinu 2, a prefiks c je proiren na


duinu 4 (ostali prefiksi ostali su nepromjenjeni)
Visina stabla je smnjena kao i broj pristupa memoriji u toku
traenja
Nekomprimirano binarno stablo

Multibit stablo s varijabilnim korikom

105

Pretraivanje tabela proslijeivanja


Primjer multibit stabla sa fiksnim pomakom
Prefiksi a i d su proireni na duinu 3
Ostali prefiksi su isti kao prije ekspanzije
Kad neki proireni prefiks postane jednak nekom
postojeem, usmjeravajua informacija postojeeg se mora
zadrati (da bi se potovalo najdue slaganje)

106

Pretraivanje tabela proslijeivanja


Traenje u multibit stablu
Traenje

kod multibit stabla je u sutini isto kao traenje kod


binarnog stabla sukcesivno se trai dui prefiks koji se slae
za datu adresu i posljednji koji se pronae je najdui
Multibit stabla se linearno trae po duini kao i binarna, ali je
traenje bre zbog veih pomaka
Multibit stablo ima fiksni pomak ako vorovi na istom nivou
imaju jednaku veliinu pomaka, inae je to sistem s varijabilnim
pomakom
Fiksni pomaci se jednostavnije implementiraju, ali obino
zahtjevaju vie memorije

107

Pretraivanje tabela proslijeivanja


Izbor veliine pomaka i osvjeavanje stabla
Izbor

veliine pomaka je uslovljeno odnosom brzine traenja


i potronje memorije
U ekstremnom sluaju, moe se realizovati stablo sa jednim
nivoom (veliina pomaka 32) te bi bio potreban samo jedan
pristup memoriji, ali bi bila potrebna velika koliina memorije
(2**32 elementa kod IPv4)
Prirodan put je da binarno stablo samo izabere veliinu
pomaka
Koriguje granice odreene veliinom pomaka
Multibit stablo sa nekoliko nivoa omoguava, variranjem
pomaka K, odreivanje odnosa meu vremenom traenja,
potronje memorije i vremena korigovanja. Vei pomaci
ubrzavaju traenje, poveava se potronja memorije, a
korekcije zahtjevaju vie elemenata za korigovanje (zbog
108
ekspanzije)

Pretraivanje tabela proslijeivanja


Stablo sa kompresijom nivoa (LC Level Compression)
Stablo

sa kompresijom puteva je efektivan oblik kompresije


kada su vorovi rijetko naseljeni
LC-stabla su razvijena da komprimuju gusto naseljena stabla
LC-stabla kombinuju kompresiju puta i multibit stablo
kompresiju za optimizaciju struktura binarnog stabla
Prvo se binarno stablo razvije do kompaktnog stabla s
komprimovanim putevima
Drugo, najvee potpuno binarno pod-stablo sa multi-nivoima se
transformie u odgovarajue jedan-nivo multibit pod-stablo. Ovaj
proces poinje sa korijenskim vorom i ponavlja se rekurzivno na
svakom voru djetetu dobijenog multibit pod-stabla
Svi nizovi bita koji su pravilni prefiksi drugih nizova se uklanjaju
iz LC-stabla, tako da samo vorovi listovi sadre prefikse
109

Pretraivanje tabela proslijeivanja


Primjer LC-stabla

110

Pretraivanje tabela proslijeivanja


Radi

uteda memorije svi vorovi u LC-stablu se


smjetaju u jedan niz vorova
Prvo korijen, zatim svi vorovi drugog nivoa,
zatim svi vorovi treeg nivoa itd.
Svi potomci nekog unutranjeg vora se
memoriu u uzastopne memorijske lokacije, te
jedan interni vor treba samo da ima pointer na
prvog potomka
Informacija koja se memorie u svakom voru
Grana broj potomaka vora (uvijek stepen od 2)
Broj preskoka broj bita koje treba preskoiti u
tom voru za vrijeme traenja
Pointer interni vor pokazuje na svog prvog
potomka (dat kao indeksna vrijednost prvog vora
djeteta) i vorovi listovi pokazuju na jedan element
druge bazne vektor tabele, gdje je zapamen realni
prefiks i informacija o slijedeem skoku

111

Pretraivanje tabela proslijeivanja


Svaki

element bazne vektor tabele

sadri
-kompletan niz od prefiksa
-Informaciju o slijedeem skoku
-Specijalni prefiks vektor koji sadri
informaciju o nizovima koji su pravilni
prefiksi drugih nizova. On je potreban
zato to interni vorovi LC-stabla
nemaju pointere na baznu vektor
tabelu. Ta informacija pokazuje da li
postoji dui prefiks koji se slae sa IP
adresom i daje informaciju o
slijedeem skoku u sluaju slaganja
Vrijeme traenja je O(W/K) i
memorijski zahtjev je O(2 K NW/K))
112

Pretraivanje tabela proslijeivanja


Multibit stabla u hardveru
Ruteri

u mrei jezgra imaju kratka vremena traenja i


algoritmi traenja se realizuju u harveru radi dobijanja
potrebne brzine
Osnovna ema koristi multibit stablo sa dva nivoa sa fiksnim
pomacima od 24 bita na prvom 8 bita na drugom nivou
U ruterima jezgra, veina elemenata imaju duinu prefiksa
24 bita ili manje, to je najdue mogue slaganje prefiksa
koje se nalazi u jednom pristupu memoriji u veini sluajeva
Samo mali broj pod-elemenata na drugom nivou
Radi utede memorije u unutranjim vorovima se ne
memoriu prefiksi, te su njima pripadajui prefiksi preli na
drugi nivo. Rezultat je multibit stablo sa razdvojenim
rairenim prefiksima. Prvi nivo ima 2**24 vora i
implementiran je kao tabela sa istim brojem elemenata
113

Pretraivanje tabela proslijeivanja


Jedan

element na prvom nivou sadri ili rutnu informaciju


ili pointer na odgovarajue podstablo na drugom nivou. Za
memorisanje pointera ili rutne informacije potrebna su 2
byte, te je za 2**24 elementa potrebna memorija od 32
Mbyte

114

Pretraivanje tabela proslijeivanja


Broj

pod-stabala na drugom nivou zavisi od broja prefiksa


veih od 24 bita
Pomak drugog nivoa je 8 bita te je broj listova na podstablu drugog nivoa 2**8=256
Veliina memorije na drugom nivou zavisi od oekivanog
najgoreg sluaja raspodjele duine prefiksa. Naprimjer
2**20 jedno byte elemenata (memorija od 1 Mbyte)
podrava maksimalno 2**12=4096 pod-stabala na drugom
nivou
Traenje zahtjeva maksimalno dva pristupa memoriji, pri
emu pristup moe biti u nizu (cijevovod) ili paralelovan radi
ubrzanja
Poto prvi pomak ima 24 bita i koristi se guranje u
listove, u nekim pristupima, korigovanja mogu trajati dugo
115

Pretraivanje tabela proslijeivanja


Novi pravci kod pretraivanja tabela proslijeivanja
Razvijene

su efektivnije eme traenja radi poveanja srednjih


performansi traenja i kompleksnosti memorisanja
Primjeri novih metoda su:
Binarno traenje na nivoima stabla, koje rastavlja operaciju
traenja najdueg prefiksa u W operacija tanog slaganja, od
kojih se svaka provodi nad prefiksima jednake duine
Multi-put il K-put traenje opsega, koje primjenjuje binarno
traenje da uradi njbolje slaganje prefiksa koritenjem dva
rutna elementa po prefiksu uz odreeno preraunavanje
Ternarni CAM koristi specijalnu memoriju CAM (Content
Addressable Memory), koja interno vri paralelna poreenja.
TCAM memorie svako W-bitno polje kao par [val, mask], te
kad niz bita doe na ulaz TCAM daje na izlazu lokaciju (ili
adresu) kdje se nalazi slaganje
116

Pretraivanje tabela proslijeivanja


Konvencionalni

ruteri nude uslugu best effort obraujui


svaki paket na isti nain. Nove aplikacije zahtjevaju razliite
nivoe QoS, te se za realizaciju ovih zahtjeva koriste drugi
mehanizmi kao to je kontrola pristupa, rezervacija resursa
i odvojeni repovi za razne tokove
Ruteri moraju razlikovati i klasifikovati dolazni promet na
razne tokove
Tokovi su odreeni pomou pravila, a svako pravilo se
sastoji od operacija poreenja polja paketa sa odreenim
vrijednostima
Polja paketa koja se ispituju uzimaju se iz raznih protokola
to predstavlja klasifikaciju paketa

117

Pretraivanje tabela proslijeivanja


Poreenje raznih ema pretraivanja tabele proslijeivanja

118

Pretraivanje tabela proslijeivanja


Skalabilnost pretraivanja i IPv6
Sa

stanovita skalabilnosti vani su broj elemenata u tabeli


rutiranja i duina prefiksa
Multibit stabla imaj veu brzinu traenja, u odnosu na
binarna stabla, sa konstantnim faktorom po dimenziji duine.
Zato su ona neskalabilna za duge adrese (kod IPv6 adresa
je duga 128 bita)
Binarno traenje na nivou stabla ima logaritamsku
kompleksnost u odnosu na duinu prefiksa, te je skalabilnost
za IPv6 dobra
Traenje u opsegu ima logaritamsku kompleksnost u
odnosu na broj elemenata, ali je nezavisno od duine
prefiksa. Ako broj elemenata ne raste previe traenje u
opsegu ima dobru skalabilnost za IPv6
119

Stabla i tries
Binarno traenje Tree

<

>
>

<

N lanova

0
>

log2N

<

Binary Search Trie

1
1

010

111

Pitanja stabala(uklj. Patricia stabla)


Stablo:

svaki put u stablu od korjena do lista odgovara


jednom lanu tabele rutiranja
Slaganje s najduim prefiksom je najdui put u stablu koji
se slae sa odredinom adresom dolaznog paketa
Dakle: poni od korjena; rekurzivno poredi djecu tekueg
vora sa nekoliko slijedeih bita odredine adres i stop ako
se slaganje nije desilo
Najgori sluaj: vrijeme nalaenja najdueg prefiksa
proporcionalno duini odredine adrese
=> Intenzivno koritenje memorije umjsto da se vri vie
memorijskih pretraga=> preciznije lo dizajn !
Patricia-tree algoritam moe i da se vraa nazad da nae
najdue slaganje, najgore performanse.

Stabla: drugi pristupi

Uspostava stabla na bazi decimalne (s takom) notacije umjesto


Binarne notacije

Binarna pretraga na nivoima stabla


Pohranihashtabeluzasvakuduinuprefiksa
Dapomognetraenjunatomnivoustabla.

PrimjerPrefiksa
ExamplePrefixes
10.0.0.0/8
10.1.0.0/16

Duina
8

Hash
10

10.1.1.0/24
10.1.2.0/24
10.2.3.0/24

12
16

10.1,10.2

24

10.1.1,10.1.2,10.2.3

PrimjerAdresa
10.1.1.4
10.4.4.3
10.2.3.9
10.2.4.8

Binarna pretraga na nivoima stabla


Nedostaci
Viestruko pristupanje hash
memorijama.
Apdejti su kompleksni.

Prednost
Skalabilno sa IPv6.

33K lanova: 1.4MB struktura podataka 1.2-2.2 Mpps [O(log W)]

Stabla i tries
Stabla sa viestrukim putevima

16-struki pokuaj traenja


0000, ptr

0000, 0

1111, ptr

000011110000

1111, ptr

0000, 0

1111, ptr

111111111111

Pretraga: Viestruki putevi


odnosi

Degreeof
Tree

# Mem
References

2
4
8
16
64
256

48
24
16
12
8
6

# Nodes Total Memory Fraction


(Mbytes)
Wasted (%)
(x106)
1.09
0.53
0.35
0.25
0.17
0.12

4.3
4.3
5.6
8.3
21
64

Table produced from 215 randomly generated 48-bit addresses

49
73
86
93
98
99.5

Pretrage realizovane u hardveru

Number

Prefix length
Veinom prefiksi su 24-bita ili krai

Pretrage realizovane u hardveru


Prefiksi do 24-bita

224 = 16M lanova

142.19.6

142.19.6

142.19.6.14

24

Slijedei
skok

Slijedei
skok

14

Pretrage realizovane u hardveru


Prefiksi do 24-bita
128.3.72

128.3.72

128.3.72.44

24

Slijedi
skok

0 Pointer

Prefiksi dui od
24-bitsa

base

44
8

Slijedi
Next
Hop
skok

Slijedi
skok

offset

Pretrage realizovane u hardveru


Nedostaci
Potrebano mnogo memorije (9-33MB)
Zavisi od distribucije duina prefiksa.

Prednosti
20Mpps sa 50ns DRAM
Lako za implement aciju u
hardveru

Mogu se iskoristiti razne eme kompresije za smanjenje memorije


: napr. Paljivo izabrati memorijske segmente variajbilne duine
, bitmap kompresiju itd.

Lukap algoritam koji koriste


Intelovi mreni procesori (NP)
Primjer

korienja tehnike m-rnih stabala


Postoje dvije pretrage po duim prefiksima
(duim od 16 bita) i po kraim prefiksima
(duine do 16 bita) princip pretrage je u oba
sluaja identian osnovna razlika je u
odreivanju lokacije u poetnoj tabeli, kod
pretrage po duim prefiksima se koristi prvih
16 bita IP adrese, a kod pretrage po kraim
prefiksima prvih 8 bita IP adrese
U tabeli prosljeivanja se uvaju dvije
informacije next-hop informacija koja daje
informaciju na koji izlazni port rutera treba da
se prosljedi paket i pokaziva na podstablo
koji daje lokaciju podstabla gdje moe da
nalazi dui prefiks koji odgovara adresi za
koju se vri pretraga u Intelovoj
implementaciji obe informacije su duine 16
bita

Lukap algoritam koji koriste Intelovi


mreni procesori
Princip

pretrage po duim prefiksima:


1.Na osnovu prvih 16 bita IP adrese odreuje se
lokacija u poetnoj velikoj tabeli i provjerava se
da li ima pokaziva na podstablo
2.Ukoliko pokazivaa nema pretraga se prekida
i prelazi se na pretragu po kraim prefiksima
3.Ukoliko pokaziva postoji on pokazuje na
poetnu lokaciju podstabla, a sljedea 4 bita IP
adrese odreuju koja lokacija od 16 lokacija
podstabla odgovara IP adresi za koju se vri
pretraga (uoiti ovdje upotrebu m-rne tehnike)
4.Na odgovarajuoj lokaciji utvrditi da li postoji
next-hop informacija i ukoliko postoji
zapamtiti je kao najbolju
5.Provjeriti da li postoji pokaziva na podstablo
i ukoliko postoji ponoviti korake 3, 4 i 5
6.Pretraga se prekida ukoliko nema pokazivaa
na sljedee podstablo ili su iskorieni svi biti
IP adrese, pretraga je uspjena ukoliko je u
toku pretrage naena next-hop informacija, u
suprotnom pretraga se nastavlja po kraim
prefiksima

Lukap algoritam koji koriste Intelovi


mreni procesori - primjer
U

primjeru sa gornje slike


paket e se usmjeriti na port 12,
a u primjeru sa donje slike
paket e se usmjeriti na port 10
Na pretragu po kraim
prefiksima se prelazi samo ako
je pretraga po duim prefiksima
bila neuspjena
U sluaju da je mogua
primjena pajplajn tehnike onda
se pretrage po kraim i po
duim prefiksima vre u paraleli
tj. istovremeno radi poveanja
brzine lukap algoritma

Tehnike za unaprjeivanje lukapa


Transformacija

prefiksa

leaf pushing interni zapisi se pomjeraju na kraj stabla radi izbegavanja


preklapanja prefiksa, esto se koristi kod m-rnih stabala
Proirivanje prefiksa na zadatu duinu radi svoenja problema na
problem lukapa kod klasnog adresiranja
Tehnike kompresije
Ureivanje sadraja tabele radi izbjegavanja redudantnih pokazivaa
Optimizacioni

postupci

Najee je cilj smanjenje memorijskih resursa koje zauzima tabela, ali


mana je u sluaju estih auriranja proces optimizacije mora da se radi
ponovo tj. nije mogue inkrementalno auriranje
Prilagoavanje strukturi koriene memorije
Npr. dijelovi tabele kojima se esto pristupa se smjetaju u ke procesora
radi poveanja brzine
Arhitekture paketskih cvorova

He funkcije
He

funkcije h(x) se esto koriste u lukap algoritmima


Da bi se mogle primjeniti, vri se proirivanje prefiksa
na fiksnu duinu
Rezultat he funkcije daje lokaciju gdje je smjeten
zapis
Kompleksnost he funkcije je o(1)
Jednostavne za realizaciju
Postoji mogunost kolizije tj. za dijve razliite adrese
se dobija isti rezultat
Potrebno koristiti dobre he funkcije kod kojih je mala
vjerovatnoa sudara
Arhitekture paketskih cvorova

Hashing

Hashing preslikava razliite


nivoe/bitske_brzine u Patricia
stablu u odvojene hash tabele,
kao na slici
Zatim vri binarnu pretragu na tim
hash tabelama da smanji cijenu
pretrage na logaritamski nivo.
Kao rezultat poboljanja potrebno
je ubaciti tzv markere koji
pomau tokom pretrage
Da bi se izbjeglo ponavljanje
koraka rade se preraunavanja
kada se uvode rute u tabelu
136

Pretraga po vrijednostima
Prefiksi

se svode na fiksnu duinu ime se eliminie


dimenzija duine prefiksa i pretraga svodi na pretragu
po vrijednostima prefiksa
Ovi metodi su rjei jer je prirodnija struktura za tabelu
prosljeivanja struktura stabla
Tipino se prefiks proiruje na dvije vrijednosti koje
predstavljaju granice opsega adresa koje prefiks
pokriva tj. prefiks se proiruje svim nulama i svim
jedinicima do zadate duine
Pretraga po vrijednostima trai najui opseg kome
adresa za koju se vri pretraga pripada jer to je prefiks
koji se najvie poklapa sa adresom
Arhitekture paketskih cvorova

Pretraga po vrijednostima
Prefiksi:
0*
001*
0001*
01*
0110*
10*
100*
1011*
11*
1101*

Arhitekture paketskih cvorova

TCAM
Ternarna

CAM (Content Addressable Memory)


predstavlja ip koji je direktno prilagoen funkciji lukapa
Kod ove memorije su definisana tri stanja 0, 1 i X
(dont care)
Adresa za koju se vri pretraga se uporeuje sa svim
zapisima u memoriji istovremeno i selektuje se najbolje
rjeenje
TCAM su najbra realizacija lukapa (kompleksnost je
o(1)), ali mana je velika potronja i cijena
Takoe, velik problem je i prelaz na IPv6 zbog
potrebnog kapaciteta
Arhitekture paketskih cvorova

Primjer hardverske realizacije lukap


algoritma upotrebom FPGA ipa
FPGA ipovi

predstavljaju
programabilne ipove koji se
mogu koristiti za implementaciju
raznih funkcija
Zbog svoje brzine i
fleksibilnosti predstavljaju
pogodna rjeenja za
implementaciju lukap funkcija
Ideja prikazane implementacije
je da internu memoriju FPGA
ipa koristi za binarnu
prezentaciju stabla, a same
next-hop informacije da smjeta
u brzu SRAM memoriju

Arhitekture paketskih cvorova

Primer hardverske realizacije lukap


algoritma upotrebom FPGA ipa
Centralni

modul prima zahtjeve za


pretragu i prosleuje ih ka level
modulima
Level moduli uvaju informacije u
binarnom obliku onih podstabala koji
imaju bar jedan vor sa next-hop
informacijom
Kada primi zahtjev level modul
provjerava da li za zadatu adresu
postoji podstablo i ako postoji vri
pretragu podstabla da vidi postoji li
vor sa zapisom koji odgovara
zadatoj adresi
Ukoliko takav vor postoji kao
rezultat se vraa adresa u SRAM
memoriji gdje se next-hop
informacija nalazi

Arhitekture paketskih cvorova

Primer hardverske realizacije lukap


algoritma upotrebom FPGA ipa

Arhitekture paketskih cvorova

Anda mungkin juga menyukai