[cisco] Re: how routing works, bit level
"Claudiu C." <[email protected]> Thu, 30 Oct 2003 22:26:40 +0200
| Newsgroups | gmane.org.user-groups.rlug.general,gmane.org.user-groups.rlug.cisco |
|---|---|
| Message-ID | <[email protected]> |
On Thursday 30 October 2003 16:45, you wrote: > Suna foarte bine in teorie, dar in practica nu face asa (sau nu mai face), > pentru ca dureaza prea mult. Exista o carte care se cheama IOS Software > architecture, vezi la capitolul CEF. De fapt iti genereaza dinainte un > arbore cu toate combinatiile posibile de ip-uri, pe care adauga pentru > toate destinatiile pe care le cunoaste headerele de layer2(si 3?) pentru > interfata pe care tre sa plece pachetul . Asa nu face decat sa > caute intr-un arbore binar (era 4-way parca?), fara sa mai faca 100 de > comparatii pe masca. Cum ai zis tu probabil ca face linuxul, si in plus > mai tine si un cache. Devine mai complicat cand ai mai multe tabele de > rutare :) Well, problema cea mai mare e accesul la liste. Cel mai bun algoritm e cel cu hash tables, dar pentru intrari multe, nu prea da roade fara o functie buna de hash si fara o dimensiune mare a tabelei. Din aceasta cauza, se implementeaza mai bine pe algoritmi binary tree. Pe hash tables, in mod ideal, complexitatea e O(1) !. In cazul ideal un btree are O(log n). Insa cum ajunge ca adresele/retelele sa fie bagate in aceste tablele si cum le acceseaza, nu stiu.