+ All Categories

Uvod

Date post: 11-Jan-2016
Category:
Upload: leda
View: 47 times
Download: 0 times
Share this document with a friend
Description:
Uvod. Osnovna funkcija Internet rutera je usmeravanje paketa na osnovu odred išne IP adrese IP lukap predstavlja proces određivanja izlaznog porta rutera (na osnovu odredišne IP adrese) na koji IP paket treba izaći - PowerPoint PPT Presentation
23
Aleksandra Smiljanić: High- Capacity Switching Belgrade University Uvod Osnovna funkcija Internet rutera je usmeravanje paketa na osnovu odredišne IP adrese IP lukap predstavlja proces određivanja izlaznog porta rutera (na osnovu odredišne IP adrese) na koji IP paket treba izaći U ovoj prezentaciji će biti predstavljeno više algoritama za efikasno obavljanje lukap funkcije
Transcript
Page 1: Uvod

Aleksandra Smiljanić: High-Capacity Switching

Belgrade University

Uvod

Osnovna funkcija Internet rutera je usmeravanje paketa na osnovu odredišne IP adrese

IP lukap predstavlja proces određivanja izlaznog porta rutera (na osnovu odredišne IP adrese) na koji IP paket treba izaći

U ovoj prezentaciji će biti predstavljeno više algoritama za efikasno obavljanje lukap funkcije

Page 2: Uvod

Aleksandra Smiljanić: High-Capacity Switching

Belgrade University

Lukap kod klasnog adresiranja Kod klasnog adresiranja postojale su tri klase adresa A, B i

C dužine mrežnog prefiksa 8, 16 i 24 bita, respektivno Na osnovu početnih bita IP adrese se može odrediti kojoj

klasi pripada i zatim pretražiti tabela prosleđivanja odgovarajuće klase

Pošto su u istoj klasi svi mrežni prefiksi iste dužine može se koristiti neki od efikasnih algoritama za brzo pretraživanja (npr. binarna pretraga), a u slučaju klase A i B zbog malog broja ukupnih adresa moguće je koristiti i direktan pristup na bazi mrežnog prefiksa

Page 3: Uvod

Aleksandra Smiljanić: High-Capacity Switching

Belgrade University

Lukap kod besklasnog adresiranja

Klasno adresiranje je napušteno zbog neracionalnog korišćenja adresnog prostora

Uvedeno je besklasno adresiranje kod kojeg mrežni prefiks može da bude proizvoljne dužine

Takođe, uvodi se agregacija zapisa u tabeli prosleđivanja radi smanjivanja veličine tabele

Agregacija dovodi do problema da za istu odredišnu IP adresu može da se nađe dva ili više rezultata pri pretrazi tabele prosleđivanja

Pravilo izabiranja najdužeg prefiksa koji se poklapa – tzv. ‘longest matching prefix rule’

Page 4: Uvod

Aleksandra Smiljanić: High-Capacity Switching

Belgrade University

Lukap kod besklasnog adresiranja

Lukap funkcija sada postaje značajno složenija jer pored dimenzije vrednosti prefiksa dodajemo i dimenziju dužine prefiksa – dvodimenzionalni problem

Ovo otežava primenu klasičnih brzih algoritama pretrage poput binarne pretrage

Page 5: Uvod

Aleksandra Smiljanić: High-Capacity Switching

Belgrade University

Zahtevi Zahtevi koje dobar lukap algoritam mora da ispuni:

Brzina - Usled rasta brzine linkova, smanjuje se vreme koje je na raspolaganju ruteru da za svaki paket odradi lukap funkciju. Pošto se tabele obično smeštaju u memorijske čipove, brzina se najčešće procenjuje kao broj memorijskih pristupa u najgorem slučaju

Memorijski prostor - Pošto memorijski čipovi veće brzine obično imaju manji kapacitet, poželjno je da tabele zauzimaju manji prostor tako da stanu u što brže čipove

Skalabilnost - Kako se očekuje prelaz na IPv6, neophodno je da lukap algoritmi mogu da se efikasno primene i na IPv6 adrese

Ažuriranje – U nestabilnim mrežama moe doći do čestih promena strukture tabele prosleđivanja. Lukap algoritam mora da omogući veoma brzo osvežavanje tabele novim podacima, a da se pri tome proces pretrage (lukapa) ne uspori značajno.

Page 6: Uvod

Aleksandra Smiljanić: High-Capacity Switching

Belgrade University

Podele

Podela lukap algoritama može da se izvrši na više načina:

Na osnovu implementacije:

• Hardverski

• Softverski Na osnovu dimenzije po kojoj se vrši lukap:

• Po dimenziji dužine prefiksa

• Po dimenziji vrednosti prefiksa

Page 7: Uvod

Aleksandra Smiljanić: High-Capacity Switching

Belgrade University

Binarno stablo Najprirodniji način za predstavljanje tabele prosleđivanja je binarno

stablo Adresni prefiksi tabele prosleđivanja se nalaze u stablu u vidu čvorova

sa zapisima, gde zapis predstavlja ID izlaznog porta rutera na koji treba usmeriti IP paket sa tim adresnim prefiksom

Uzima se bit po bit IP adrese i kreće se kroz stablo – levo ili desno zavisno od vrednosti bita

Pretraga se završava kad se dođe do kraja stabla, a rešenje je najbolji čvor koji je sadržao zapis

Realizacija ovog algoritma je veoma jednostavna, kao i samo ažuriranje tabele

Mana je da u najgorem slučaju treba 32 memorijska pristupa (128 u slučaju IPv6), kao i čuvanje velikog broja praznih čvorova koji ne sadrže zapis

Page 8: Uvod

Aleksandra Smiljanić: High-Capacity Switching

Belgrade University

Primer binarnog stabla Prefiksi:

0* 0001* 001* 01* 0110* 0111* 10* 100* 1011*

Koren

0

0

0

0

0

0

1

1

1

1

1

1

1

1

Page 9: Uvod

Aleksandra Smiljanić: High-Capacity Switching

Belgrade University

Kompresija putanje Često se javljaju putanje bez

račvanja sa praznim čvorovima Nema račvanja – nema

odlučivanja u čvorovima o daljem smeru kretanja

One mogu da se komprimuju izbacivanjem praznih čvorova

Mora da se pamti broj preskočenih čvorova

Mora da se u svakom čvoru poredi kompletan prefiks

0

1

1

1

Skip 3

100*

1001011*

1001011*

100*

Page 10: Uvod

Aleksandra Smiljanić: High-Capacity Switching

Belgrade University

M-rna stabla Za kretanje između

čvorova stabla se koristi m bita

Iz svakog čvora može da ide 2m grana

U najgorem slučaju 32/m memorijskih pristupa

Mana - smanjena granularnost

Mana – veliko m nije praktično za realizaciju

Koren

00 1101 10

00 01 10 11

m=2

Page 11: Uvod

Aleksandra Smiljanić: High-Capacity Switching

Belgrade University

LC-stablo

Modifikacija m-rnog stabla Za razliku od m-rnog stabla, kod LC (Level

Compressed) stabla se parametar m može menjati Cilj je postizanje optimalne strukture kod koje će

se postići minimalna dubina stabla tako što će se veoma popunjena podstabla zameniti m-rnom strukturom

Page 12: Uvod

Aleksandra Smiljanić: High-Capacity Switching

Belgrade University

LC-stablo

Page 13: Uvod

Aleksandra Smiljanić: High-Capacity Switching

Belgrade University

Lukap algoritam koji koriste Intelovi mrežni procesori

Primer korišćenja tehnike m-rnih stabala Postoje dve pretrage po dužim prefiksima

(dužim od 16 bita) i po kraćim prefiksima (dužine do 16 bita) – princip pretrage je u oba slučaja identičan – osnovna razlika je u određivanju lokacije u početnoj tabeli, kod pretrage po dužim prefiksima se koristi prvi 16 bita IP adrese, a kod pretrage po kraćim prefiksima prvih 8 bita IP adrese

U tabeli prosleđivanja se čuvaju dve informacije – ‘next-hop’ informacija koja daje informaciju na koji izlazni port rutera treba da se prosledi paket i pokazivač na podstablo koji daje lokaciju podstabla gde može da nalazi duži prefiks koji odgovara adresi za koju se vrši pretraga – u Intelovoj implementaciji obe informacije su dužine 16 bita

0 Pokazivač na podstablo

0 Pokazivač na podstablo

0 Pokazivač na podstablo

'Next-hop' informacija Pokazivač na podstablo

'Next-hop' informacija Pokazivač na podstablo

'Next-hop' informacija Pokazivač na podstablo

'Next-hop' informacija Pokazivač na podstablo

'Next-hop' informacija Pokazivač na podstablo

Početno velikatabela - 216 lokacija

Početno mala tabela- 28 lokacija

Podstablo 1- 16 lokacija

Podstablo 2

'Next-hop' informacija Pokazivač na podstablo

Podstablo N

Page 14: Uvod

Aleksandra Smiljanić: High-Capacity Switching

Belgrade University

Lukap algoritam koji koriste Intelovi mrežni procesori

Princip pretrage po dužim prefiksima:1. Na osnovu prvih 16 bita IP adrese

određuje se lokacija u početnoj velikoj tabeli i proverava se da li ima pokazivač na podstablo

2. Ukoliko pokazivača nema pretraga se prekida i prelazi se na pretragu po kraćim prefiksima

3. Ukoliko pokazivač postoji on pokazuje na početnu lokaciju podstabla, a sledeća 4 bita IP adrese određuju koja lokacija od 16 lokacija podstabla odgovara IP adresi za koju se vrši pretraga (uočiti ovde upotrebu m-rne tehnike)

4. Na odgovarajućoj lokaciji utvrditi da li postoji ‘next-hop’ informacija i ukoliko postoji zapamtiti je kao najbolju

5. Proveriti da li postoji pokazivač na podstablo i ukoliko postoji ponoviti korake 3, 4 i 5

6. Pretraga se prekida ukoliko nema pokazivača na sledeće podstablo ili su iskorišćeni svi biti IP adrese, pretraga je uspešna ukoliko je u toku pretrage nađena ‘next-hop’ informacija, u suprotnom pretraga se nastavlja po kraćim prefiksima

0 Pokazivač na podstablo

0 Pokazivač na podstablo

0 Pokazivač na podstablo

'Next-hop' informacija Pokazivač na podstablo

'Next-hop' informacija Pokazivač na podstablo

'Next-hop' informacija Pokazivač na podstablo

'Next-hop' informacija Pokazivač na podstablo

'Next-hop' informacija Pokazivač na podstablo

Početno velikatabela - 216 lokacija

Početno mala tabela- 28 lokacija

Podstablo 1- 16 lokacija

Podstablo 2

'Next-hop' informacija Pokazivač na podstablo

Podstablo N

Page 15: Uvod

Aleksandra Smiljanić: High-Capacity Switching

Belgrade University

Lukap algoritam koji koriste Intelovi mrežni procesori - primer

U primeru sa gornje slike paket će se usmeriti na port 12, a u primeru sa donje slike paket će se usmeriti na port 10

Na pretragu po kraćim prefiksima se prelazi samo ako je pretraga po dužim prefiksima bila neuspešna

U slučaju da je moguća primena pajplajn tehnike onda se pretrage po kraćim i po dužim prefiksima vrše u paraleli tj. istovremeno radi povećanja brzine lukap algoritma

IP adresa : 188.98.79.12 = 10111100.01100010.01001111.00001100

0 ADR110111100 01100010

Port 10 ADR2ADR1 + 0100

ADR2 + 1111 Port 12 0

IP adresa : 188.98.79.12 = 10111100.01100010.01001111.00001100

0 ADR110111100 01100010

Port 10 ADR2ADR1 + 0100

ADR2 + 1111 0 0

Page 16: Uvod

Aleksandra Smiljanić: High-Capacity Switching

Belgrade University

Tehnike za unapređivanje lukapa Transformacija prefiksa

‘leaf pushing’ – interni zapisi se pomeraju na kraj stabla radi izbegavanja preklapanja prefiksa, često se koristi kod m-rnih stabala

Proširivanje prefiksa na zadatu dužinu radi svođenja problema na problem lukapa kod klasnog adresiranja

Tehnike kompresije Uređivanje sadržaja tabele radi izbegavanja redudantnih pokazivača

Optimizacioni postupci Najčešće je cilj smanjenje memorijskih resursa koje zauzima tabela,

ali mana je u slučaju čestih ažuriranja proces optimizacije mora da se radi ponovo tj. nije moguće inkrementalno ažuriranje

Prilagođavanje strukturi korišćene memorije Npr. delovi tabele kojima se često pristupa se smeštaju u keš

procesora radi povećanja brzine

Page 17: Uvod

Aleksandra Smiljanić: High-Capacity Switching

Belgrade University

Heš funkcije Heš funkcije h(x) se često koriste u lukap algoritmima Da bi se mogle primeniti, vrši se proširivanje prefiksa na

fiksnu dužinu Rezultat heš funkcije daje lokaciju gde je smešten zapis Kompleksnost heš funkcije je o(1) Jednostavne za realizaciju Postoji mogućnost kolizije tj. za dve različite adrese se

dobija isti rezultat Potrebno koristiti dobre heš funkcije kod kojih je mala

verovatnoća sudara

Page 18: Uvod

Aleksandra Smiljanić: High-Capacity Switching

Belgrade University

Pretraga po vrednostima Prefiksi se svode na fiksnu dužinu čime se eliminiše

dimenzija dužine prefiksa i pretraga svodi na pretragu po vrednostima prefiksima

Ovi metodi su ređi jer je prirodnija struktura za tabelu prosleđivanja struktura stabla

Tipično se prefiks proširuje na dve vrednosti koje predstavljaju granice opsega adresa koje prefiks pokriva tj. prefiks se proširuje svim nulama i svim jedinicima do zadate dužine

Pretraga po vrednostima traži najuži opseg kome adresa za koju se vrši pretraga pripada jer to je prefiks koji se najviše poklapa sa adresom

Page 19: Uvod

Aleksandra Smiljanić: High-Capacity Switching

Belgrade University

Pretraga po vrednostima

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

0*

0000

00

1111

11

0000

00

0111

11

001*0010

00

0011

11

0001

00

0001

11

0001*

0111

11

0100

00

01*

0110

00

0110

11

0110*

1011

11

1000

00

10*

1111

11

1100

00

11*

100*1000

00

1001

11

1011

00

1011

11

1011*

1101

00

1101

11

1101*

Page 20: Uvod

Aleksandra Smiljanić: High-Capacity Switching

Belgrade University

TCAM Ternarna CAM (Content Addressable Memory)

predstavlja čip koji je direktno prilagođen funkciji lukapa Kod ove memorije su definisana tri stanja 0, 1 i X (don’t

care) Adresa za koju se vrši pretraga se upoređuje sa svim

zapisima u memoriji istovremeno i selektuje se najbolje rešenje

TCAM su najbrža realizacija lukapa (kompleksnost je o(1)), ali mana je velika potrošnja i cena

Takođe, velik problem je i prelaz na IPv6 zbog potrebnog kapaciteta

Page 21: Uvod

Aleksandra Smiljanić: High-Capacity Switching

Belgrade University

Primer hardverske realizacije lukap algoritma upotrebom FPGA čipa

LEVELMODULE

i

i=1..4

CENTRALMODULE

SEARCHi

ADDi

CLRi

PREFIXi

SUBTREEi

SUBTREE MASKi

MATCH FOUNDi

SRAM LOCATIONi

IP ADDRESS

PREFIX LENGTH

SEARCH

ADD

CLR

NEW NEXT-HOP INFO

SRAMSRAM DATA BUS

SRAM ADR BUS

READ/WRITE

NEXT-HOP INFO

FPGA čipovi predstavljaju programabilne čipove koji se mogu koristiti za implementaciju raznih funkcija

Zbog svoje brzine i fleksibilnosti predstavljaju pogodna rešenja za implementaciju lukap funkcija

Ideja prikazane implementacije je da internu memoriju FPGA čipa koristi za binarnu prezentaciju stabla, a same ‘next-hop’ informacije da smešta u brzu SRAM memoriju

Page 22: Uvod

Aleksandra Smiljanić: High-Capacity Switching

Belgrade University

Primer hardverske realizacije lukap algoritma upotrebom FPGA čipa

LEVELMODULE

i

i=1..4

CENTRALMODULE

SEARCHi

ADDi

CLRi

PREFIXi

SUBTREEi

SUBTREE MASKi

MATCH FOUNDi

SRAM LOCATIONi

IP ADDRESS

PREFIX LENGTH

SEARCH

ADD

CLR

NEW NEXT-HOP INFO

SRAMSRAM DATA BUS

SRAM ADR BUS

READ/WRITE

NEXT-HOP INFO

Centralni modul prima zahteve za pretragu i prosleđuje ih ka ‘level’ modulima

‘Level’ moduli čuvaju informacije u binarnom obliku onih podstabala koji imaju bar jedan čvor sa ‘next-hop’ informacijom

Kada primi zahtev ‘level’ modul proverava da li za zadatu adresu postoji podstablo i ako postoji vrši pretragu podstabla da vidi postoji li čvor sa zapisom koji odgovara zadatoj adresi

Ukoliko takav čvor postoji kao rezultat se vraća adresa u SRAM memoriji gde se ‘next-hop’ informacija nalazi

LEVEL 1

LEVEL 2

LEVEL 3

LEVEL 4

8 BITS

8 BITS

8 BITS

8 BITS

Page 23: Uvod

Aleksandra Smiljanić: High-Capacity Switching

Belgrade University

Primer hardverske realizacije lukap algoritma upotrebom FPGA čipa

SUBTREE PREFIX1 SUBTREE PREFIXnRegisters

COMPARATOR COMPARATOR

IP address

Match Vector

ONE HOT DECODER

MEMORY BLOCK

SubtreeAddress

SUBTREEPROCESSOR

SRAMAddress

MatchFound

SubtreeVector

Prefix Length

Search

Add

Clr

PREFIX

Node 1 Node 2

Node 3 Node 4 Node 5 Node 6

Node 510Node 255 Node 256


Recommended