1 / 23

Uvod

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

leda
Télécharger la présentation

Uvod

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. 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’

  4. 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

  5. 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.

  6. 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

  7. 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

  8. Primer binarnog stabla • Prefiksi: • 0* • 0001* • 001* • 01* • 0110* • 0111* • 10* • 100* • 1011*

  9. 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

  10. 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

  11. 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

  12. LC-stablo

  13. 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

  14. Lukap algoritam koji koriste Intelovi mrežni procesori • Princip pretrage po dužim prefiksima: • 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 • Ukoliko pokazivača nema pretraga se prekida i prelazi se na pretragu po kraćim prefiksima • 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) • Na odgovarajućoj lokaciji utvrditi da li postoji ‘next-hop’ informacija i ukoliko postoji zapamtiti je kao najbolju • Proveriti da li postoji pokazivač na podstablo i ukoliko postoji ponoviti korake 3, 4 i 5 • 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. Pretraga po vrednostima • Prefiksi: • 0* • 001* • 0001* • 01* • 0110* • 10* • 100* • 1011* • 11* • 1101*

  20. 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

  21. Primer 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 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

  22. Primer hardverske realizacije lukap algoritma upotrebom FPGA čipa • 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

  23. Primer hardverske realizacije lukap algoritma upotrebom FPGA čipa

More Related