Algoritmica de retea

download Algoritmica de retea

of 208

Transcript of Algoritmica de retea

  • 8/8/2019 Algoritmica de retea

    1/208

    1

    CAPITOLUL 1

    INTRODUCERE IN ALGORITMICA DE RETEA

    Scopul algoritmicii de reea estecombaterea strangul rilor de re ea cauzate de diferite implementri. Pe lng tehnici specifice, suntcristalizate principiile cre

    rii de solu

    ii pentru evitarea strangul

    rilor n

    internet, nglobate n ceea ce se numestealgoritmica de re ea sau teoriaalgoritmilor de reea. Ea asigur cititorului ustensile pentru creareadiferitelor implementri, pentru anumite contexte particularei pentruabordarea noilor strangulri care cu siguran vor aprea n lumea n permanent schimbare a reelelor.

    Algoritmica de reea sau teoria algoritmilor de reea trece dincolo decrearea algoritmilor eficieni pentru sarcinile reelei, chiar dac acetiaau un rol important. In particular, teoria algoritmilor de reea recunoateimportana major a abordrii sistemelor interdisciplinare pentrufluentizarea implementrilor de reea. Algoritmica de reea este oabordareinterdisciplinar deoarece cuprinde domenii ca arhitecturiisisteme de operare (pentru creterea vitezei serverului), proiectarehardware (pentru creterea vitezei componentelor de reea cum suntruterele),i proiectarea de algoritmi (pentru proiectarea unor algoritmiscalabili). Algoritmica de reea estei o abordare de sistem, fiind descrisun set de 15 principiii utilizarea lor, care exploateaz faptul c ruterelei serverele sunt sisteme, n care eficiena poate fi obinut prindeplasarea funciilor n spaiu i timp ntre subsisteme.

    Problemele algoritmicii de reea sunt legate de performanafundamental legat de strangul rile de re ea/bottlenecks . Soluiileadoptate de algoritmica de reea genereaz un set de tehnici fundamentale pentru tratarea acestor strangulri.

    1.1. PROBLEMA: STRANGUL RILE DE RE EAPrincipala problem avut n vedere este realizarea unor re ele u or de

    folosit, utilizndhardware-ul la capacitatea maxim . Uurina folosiriivine de la folosirea unor abstractizri puternice de reea, cum suntinterfeele socketi expedierea/naintarea bazat pe prefix a pachetelor.Trebuie avut grij ns, deoarece astfel de abstractizri pot duce lascderea performanelor comparativ cu capacitatea transmisiilor pelegturi ca fibra optic. Pentru a putea nelege aceast diferen de performan vom examina dou categorii fundamentale de dispozitive dereea, nodurile terminale/endnodes i ruterele .

    Strangul ri la nodurile terminale Nodurile terminale sunt punctele de final ale reelei. Ele includ

    calculatoarele personalei staiile de lucru precumi serverele de maridimensiuni, furnizoare de servicii. Nodurile terminale sunt dedicatecalculelor, spre deosebire de reele, i de obicei sunt proiectate ca s poat realiza calcule de uz general. Astfel strangulrile nodurilor terminale suntde obicei rezultatul a dou cauze: structurai scala/dimensiunea.

  • 8/8/2019 Algoritmica de retea

    2/208

    2

    Structura : Pentru a putea rula orice cod, calculatoarele personaleiserverele mari au de obicei un sistem de operare care mediaz ntreaplicaii i hardware. Pentru a uura dezvoltarea software-ului, majoritateasistemelor de operare de mari dimensiuni sunt structurate cu grij, ca un

    software pe niveluri ; pentru a proteja sistemul de operare de alte aplicaii,sistemele de operare implementeaz un set demecanisme de protec ie; nfinal, rutinele nucleului sistemului de operare, cum sunt planificatoarele si procedurile de alocare, sunt scrise folosindmecanisme generale, orientatespre o clas de aplicaii ct mai larg posibil. Din pcate, combinaia ntresoftware-ul pe niveluri, mecanismele de protecie, i generalitatea excesiv poate duce la ncetinirea semnificativ a software-ului reelei, chiar i cu procesoarele cele mai rapide.

    Scala/dimensiunea : Apariia serverelor mari oferind Webi alteservicii duce la apariia altor probleme, de performan. In particular, unserver mare cum este un server de Web, va avea de obicei mii de clieniconcureni. Multe sisteme de operare folosesc structuri de date ineficientei algoritmi care au fost proiectai pentru o epoc n care numrul delegturi a fost mic.

    In figura 1.1 sunt prezentate principalele strangulri ale nodurilor terminale, mpreun cu cauzelei soluiile lor. Prima strangulare are locdeoarece structurile sistemului de operare convenional impuncopierea pachetelor de date ntre domeniile protejate; situaia se complic i maimult n cazul serverelor de Web prin copieri similare pentru sistemul defiiere i alte manevre, ca sumele ciclice de control, care verific toate pachetele de date. Se descriu un numr de tehnici de reducere a acestor supraincarcari, meninnd ca scop abstractizrile sistemului, ca proteciai structura. A doua supranc rcare major este cea generat de control ,cauzat de comutarea ntre firele de control (sau domeniile de protecie) ntimpul procesrii unui pachet.

    Strangulare Cauze Exemple de solu ii

    Copierea Protecia, structuraCopierea mai multor blocuride date f r interveniasistemului de operare(ex.RDMA)

    Comutareacontextului Planificarea complex

    Implemenetarea protocoalelor la nivelul utilizatoruluiServere Web comandate deevenimente

    Apelurile de sistem Protecia, structura Canale directe de la aplicaiispre drivere (ex. VIA)Contoarele de timp Scalarea la numarulcontoarelor Contoare de timp ciclice

    Demultiplexarea Scalarea la numrul denoduri terminaleBPFi Pathfinder/cuttor decale

    Sumele de control/CRC-uri

    GeneralitateaScalarea la viteza legturilor Calculul multibit

    Codul protocolului Generalitatea Predicia antetului

    Figura 1.1 Prezentarea strangulrilor nodurilor terminale

    Aplicaiile de reea folosesc contoare de timp/temporizatoare pentru arezolva defeciunile. Cu un numr mare de legturi la un server

  • 8/8/2019 Algoritmica de retea

    3/208

    3

    suprancrcarea dat de contoarele de timp poate deveni mare. Deasemenea, mesajele de la reea trebuie demultiplexate/orientate pentru a firecepionate de aplicaia corect. In final, mai exist alte cteva sarcini de procesare obinuite ale protocoalelor, cum sunt alocarea buffer-elor/tampoanelor de memoriei suma de control.

    Strangul rile n rutereDei ne axm pe ruterele pentru Internet, aproape toate tehnicile descrise

    pot fi folosite la fel de binei n cazul altor echipamente de reea, cumsunt punile/bridge, comutatoarele/switch, por ile/gateway, monitoareleialte dispozitive de securitate, precum si pentru protocoale diferite de IP, caFiberChannel. De aceea, n continuare,ruterul este gndit ca undispozitiv generic de interconectare a reelei. Spre deosebire de nodurileterminale, acesta este un dispozitiv cu scop special dedicat lucrului cureelele. Problemele fundamentale pe care le ntlnete un ruter sunt legatede dimensiune/scal i servicii .

    Scala : Dispozitivele de reea se confrunt cu dou tipuri de scalare: scalarea benzii i scalarea popul rii . Scalarea benzii are loc deoarecelegturile pe cale optic devin din ce n ce mai rapide, viteza legturilor crescnd de la 1-Gbps la 40-Gbps,i deoarece traficul in Internet cretecontinuu datorit unui set vast de aplicaii noi. Scalarea populrii are locdeoarece tot mai multe noduri terminale sunt adugate la Internet odat cuconectarea online a tot mai multor ntreprinderi.

    Serviciile : Nevoia de vitez i dimensiune a crescut mult fa deindustria reelelor din anii 80i 90, pe msur ce tot mai multe afacerideveneau online (de ex. Amazon),i au fost create noi servicii online( deex. Ebay). Dar succesul Internetului impune o atenie deosebit nurmtoarea decad, pentru a-l face mai eficient,i a asigura garanii de performan, securitatei siguran. La urma urmei, dac productorii (deex. Dell) vnd mai mult online dect prin alte mijloace, este important s se ofere garan ii ale re elei ntrzierea n timpul congestiei, protecia ntimpul atacurilor,i disponibilitatea cnd apar defeciuni. Gsirea unor metode de implementare a acestor noi servicii la viteze mari va fi o mare provocare pentru furnizorii de rutere n decada urmtoare.In figura 1.2sunt prezentate principalele strangulri din rutere abordate aici, mpreun cu cauzelei soluiile lor.

    In primul rnd, toate dispozitivele de reea expediaz pachete destinaiei prin consultarea (looking up) unui tabel de naintare(forwarding). Princonsultarea celui mai simplu tabel de naintare se gsete o potrivireexact (exact match) cu adresa destinaiei, ca de exemplu n cazul punilor.Sunt descrise scheme de cutare rapidei scalabile, pentru potriviriexacte. Din pcate, scalarea la dimensiunea populaiei a f cut ca pentrurutere cutrile sa fie mult mai complexe. Pentru a trata populaiile mari de pe Internet, ruterele rein o singur intrare numit prefix (analog cu codultelefonic de zon) pentru un grup mare de staii. Astfel ruterele trebuie s fac o cutare mult mai complex pentru potrivirea celui mai lung

    prefix /the longest-prefix-match . Sunt descrise soluii la aceast problem,scalabile la viteze marii dimensiuni mari ale tabelelor.

    Multe rutere ofer azi ceea ce este deseori numitdiferen ierea serviciului , prin care diferite pachete pot fi tratate diferit pentru a oferigaranii asupra serviciuluii a securitii. Din pcate, acest lucru necesit o

  • 8/8/2019 Algoritmica de retea

    4/208

    4

    form i mai complex de cutare numit clasificarea pachetelor , undecutarea se bazeaz pe destinaie, surs, i chiar serviciile pe care un pachet le ofer .

    Apoi, toate dispozitivele de reea pot fi considerate comutatoare ceunteaz pachetele, care vin de la un set de legturi de intrare spre un setde legturi de ieire. Problema fundamental este crearea unui comutator de vitez mare. Acest lucru este dificil, mai ales dac ne gndim lacreterea diferenelor ntre vitezele opticei electronice. Soluia standardeste folosirea paralelismului printr-uncomutator crossbar . Din pcate, programarea unui comutator crossbar la viteze mari nu este uoar , i paralelismul este limitat de fenomenul cunoscut ca HOL (head-of-line blocking)/ blocare la nceputul liniei. Mai r u, creterea populaiei imultiplexarea optic for eaz furnizorii de comutatoare s creezecomutatoare cu un numr mare de porturi, care exacerbeaz aceste probleme.

    Strangulare Cauze Exemple de solu iiCutriexacte Scalarea la viteza legturii Dispersarea paralel/hashing

    Cutri de prefix

    Scalarea la viteza legturiiScalarea la dimensiunea bazei dedate pentru prefixe

    Noduri ordonate multibitcomprimate

    Clasificarea pachetelor

    Diferenierea serviciilor (DiffServ)Scalarea la viteza legturiii ladimensiune

    Algoritmi cu arbori dedecizieParalelism hardware(CAM-uri)

    ComutareDiferena ntre vitezele electronicei cele opticeBlocare HOL

    Comutator crossbar Cozi de ieire virtuale

    Tratareacorect acozilor

    FQ (fair queueing)

    Diferenierea serviciilor Scalarea la viteza legturii

    Scalarea la dimensiunea memoriei

    FQ ponderatServire carusel cu deficit(Deficit round robin)

    DiffServ,Nucleu f r stri(Core Stateless)Limea de band intern

    Scalarea la viteza magistralelor interne

    Legturi directe sigure prinmagistrale interne

    Msurarea Scalarea la viteza legturii DCU al firmei Juniper

    Securitatea Scalarea la numrul i intensitateaatacurilor Cutarea traseului cu filtreBloomExtragerea worm sigatures

    FIGURA 1.2 Prezentarea strangulrilor nodurilor terminale

    In timp ce strangulrile anterioare sunt cauzate de scalare, urmtoareastrangulare este cauzat de nevoia de servicii noi. Alt strangulare caredevine o problem n cretere este limea de band a ruterului. Sefolosesc tehnici simple: conectarea direct prin magistrale interne/stripingi legturi chip-la-chip.

    Dintre serviciile ce trebuie s fac parte dintr-un viitor Internet, bineadministrat, este includerea n rutere a unui suport pentru msur ri,deoarece msur rile sunt cheia pentru a proiecta reele care ofer garanii.Ruterele de azi asigur ceva suport pentru msur ri, contorizri sinregistr ri de NetFlow.

  • 8/8/2019 Algoritmica de retea

    5/208

    5

    Suportul pentru securitate este par ial inclus deja n rutere. Datorit sofisticrii crescute, agresivitii, i ratei de atacuri asupra reelei, esteesenial implementarea securitii n rutere sau dispozitive de reeaspecializate detectrii/prevenirii intruziunilor. Dar dac dispozitivul desecuritate nu poateine pasul cu legturile de mare vitez, pot fi omiseinformaii vitale, necesare pentru detectarea unui atac.Filtre Bloom: structur de date aleatorizat ingenios pentru reprezentarea concis a unui

    set/mulime, care suport interogri/queries despre apartenena aproximativ lamulime.Are o mare eficien spaial, iar riscul/costul este de a detecta falsuri pozitive.

    1.2. TEHNICI: TEORIA ALGORITMILOR DE RE EAVor fi discutate tehnici specifice: pentru ntreruperi, copiere,i contoare

    de timp circulare/timing wheels; pentru Pathfinder i Sting; de ce unelerutere sunt foarte ncete;i dac serverele de Web pot s se scaleze la noiledimensiuni. Ceea ce leag mpreuna toate aceste probleme estealgoritmica de re ea; algoritmica de retea admite importana primordial aunei abordari sistemice, necesar pentru fluentizarea implementrilor dereea.

    Internet-ul este un sistem compus din ruterei legturi; dar este mai puin vizibil faptul c fiecare dispozitiv de reea, de la un Cisco GSR la unserver Web Apache, reprezint sisteme, construite prin interconectareasubsistemelor. De exemplu, un ruter nucleu este compus din carduri delinie cu motoare de naintarei memorii de pachete, conectate printr-uncomutator crossbar. Comportamentul ruterului depinde de decizii luate ladiferite scale de timp, ncepnd cu momentul producerii lor (cnd parametrii implicii sunt stocai n NVRAM) pn la momentul calcululuirutei (cnd ruterele calculeaz traseul) i la momentul expedierii pachetelor (cnd pachetele sunt trimise ruterelor adiacente).

    Astfel o observaie important n abordarea sistemic este c deseori poate fi proiectat un subsistem eficient prinmutarea n spa iu (spre alte

    subsisteme) a ctorva din funciile sale, saumutarea n timp (anterior sau posterior momentului aparent n care funcia este necesar ). Intr-un anumesens, cel care practic algoritmica de retea este un oportunist f r scrupulecare schimb regulile jocului n orice moment, pentru a-l face mai uor.Singura condiie este ca funciile oferite de sistemul global s continue s satisfac utilizatorul.

    innd cont de constrngerile impuse implementrilor reelei la vitezemari sarcini din ce n ce mai complexe, sisteme tot mai mari, memoriimici de vitez mare,i un numr redus de accesri ale memoriei trebuiefolosit orice artificiu, orice metod sau resurs pentru a face fa vitezeiidimensiunii din ce n ce mai mari ale Internetului. Proiectantul poate

    ncerca s plaseze problema n hardware, s schimbe ipotezele sistemului,s proiecteze un algoritm nou orice este necesar pentru a rezolva problema.

    1.2.1 Exemplu: depistarea pachetelor rele (evil packets)Imaginati-va un monitor de reea terminal/front-end, sau un sistem de

    detectare a intruilor, de la periferia unei reele de intreprindere, ce vrea s marcheze pachetele de intrare suspecte, care ar putea conine atacuriasupra unor calculatoare interne. Un atac des ntlnit esteinundarea

  • 8/8/2019 Algoritmica de retea

    6/208

    6

    bufferului/dep irea capacit ii bufferului , cnd codul mainii C se plaseaz n antetul de reea F .

    Daca staia destinaie aloc un buffer prea mic pentru cmpul F alantetuluii nu are grij s verifice depirea/inundarea, codulC poateajunge n stiva staiei destinaie. Cu un mic efort suplimentar, intrusul poate face ca staia destinaie s execute codul r u C . C va prelua controlulstaiei destinaie. In figura 1.3 este reprezentat un astfel de atac, incorporatntr-un cmp familiar, Web URL (Uniform Resource Locator) destinaie.Cum poate monitorul detecta prezena unui URL suspect? O cale este s observm c URL-urile care conin un cod duntor sunt deseori prealungi (o verificare uoar ) i deseori au o mare parte de caractereneobinuite pentru URL-uri, cum este #. Monitorul poate marca astfel de pachete (cu o lungime prea mare sau cu prea multe caractere neobinuite), printr-o examinare amnunit.

    Dar implicaiile acestei strategii asupra securitii trebuie gndite atent.De exemplu, pot exista programe inofensive, cum sunt scripturi CGI nURLuri, ce duc pe piste false. Fr a intra n prea multe amnunte legatede toate implicaiile arhitecturale, s presupunem c aceasta a fost ospecificare trimis arhitectului de chip-uri, de ctre arhitectul desecuritate.Vom folosi o problem ca model, pentru a observa modul delucru al teoriei algoritmilor.Avnd de a face cu o astfel de specificare, proiectantul de chip-uri poate folosi urmtoarele procese de proiectare,care ilustreaz unele principii ale algoritmicii de reea. Procesul ncepe cu proiectarea strawmani rafinarea proiectarii, prin proiectarea unuialgoritm mai bun, relaxarea specificaiilor i exploatarea hardware-ului.

    FIGURA 1.3 Gsirea unui pachet duntor, observand frecventa caracterelor nelistabile

    FIGURA 1.4 Soluia strawman pentru detectarea unui pachet duntor: se contorizeaz fiecare caracter ntr-un tablou contor i apoi n pasul final se compar valorile cu cele dintabloul de praguri

    Sistem dedetecie alintruilor

    AIM://de ire # * # ! * # ...... *

    Cod duntor

    2%

    1%

    5

    3

    TabloulPrag

    TabloulContor

    AIM://de ire # * # ! * # ...... *

    Cod duntor

    0

    #

    255

    Incrementeaz

  • 8/8/2019 Algoritmica de retea

    7/208

    7

    1.2.2 Solu ia strawmanVerificarea lungimii totale este implementat direct, deci ne concentr m

    la verificarea unor caractere suspicioase predominante. Prima soluiestrawman este ilustrat n figura 1.4. Chip-ul pstreaz dou tablouri,T iC , cu cte 256 de elemente fiecare, unul pentru fiecare valoare posibil, pecaractere de 8 bii. Tabloul de praguri,T , conine procentul acceptabil (cao fraciune din lungimea total a URLului) pentru fiecare caracter. Dac apariiile unui caracter ntr-un URL trec peste prag, pachetul este marcat.Fiecare caracter are un prag diferit.

    Tabloul de contorizareC , n mijloc, conine contorul curentC [i] pentrufiecare caracter i posibil. Cnd chip-ul citete un nou caracter i in URL,se incrementeaz C [i] cu 1.C [i] are iniial valoarea 0 pentru toate valorilelui i cnd un nou pachet este ntlnit. Procesul de incrementare ncepenumai dup ce chip-ul analizeaz antetul HTTPi recunoate nceputulURL-ului.

    In HTTP, sfr itul URL-ului este reprezentat cu dou caractere de rndnou; aa c lungimea unui URL se poateti doar dup ce s-a parcursntregulir URL. Astfel, dup ce a fost ntlnit sfr itul URLului, chip-ul

    realizeaz o ultim parcurgere a tablouluiC . Dac [ ] [ ]C j L T j pentruorice j, unde L este lungimea URL-ului, pachetul va fi marcat.Presupunem c pachetele vin cu vitez mare n monitor i dorim s

    terminm procesarea pachetului nainte de sosirea urmtorului. Aceast cerin, numit procesare la viteza liniei/wire speed processing , este desntlnit n reele; se previne amnarea procesrii chiar i n ce maidefavorabil caz. Pentru a ndeplini cerinele de procesare la viteza liniei,ideal chip-ul ar trebui s fac un numr mici constant de operaii pentrufiecare octet al URL-ului. Presupunem c pasul principal de incrementareal contorului poate fi f cut pe durata recepiei octetului. Dar, cele dou treceri prin tablou, pentru iniializare si verificare a depirilor de prag, fac

    aceast proiectare lent. Dimensiunea minim a unui pachet este de 40 deoctei, incluznd doar antetele de reea. Adugnd 768 operaii n plus (1scriere i 1 citire pentru fiecare element dinC , i 1 citire dinT pentrufiecare din cei 256 indici) modelul de proiectare devine irealizabil.

    1.2.3 Gndirea algoritmic Intuitiv, a doua trecere prin tablourileC i T de la sfr it pare o risip.

    De exemplu, este suficient avertizarea cndorice caracter depete pragul. Atunci de ce s verificam toate caracterele? Acest lucru sugereaz s urmrim doar cel mai mare contor de caracter c; la sfr it algoritmultrebuie s verifice doar dac c e deasupra pragului,innd cont de L

    lungimea total a URL-ului.

  • 8/8/2019 Algoritmica de retea

    8/208

    8

    FIGURA 1.5 Evitarea buclei finale prin tabloul cu praguri, urmrind doar Max , cel maimare contor relativ la valoarea de prag, ntlnit pn acum.

    Metoda nu prea funcioneaz. Un caracter nesuspicios cum este e poate aprea destul de des,i deci probabil c i se atribuie un prag ridicat.Dar dac inem evidena numai pentru e, 20 de apariii de exemplu, s-ar putea s nu maiinem evidena lui # cu 10 apariii. Dac pragul pentru# este mult mai mic, algoritmul poate duce la un r spunsnegativ fals :chip-ul poate eua la alarmarea despre un pachet care ar trebui marcat.

    Contraexemplul sugereaz urmtoarea corecie. Chip-ul ine ntr-unregistru evidena valorii maxime a contorului relativ la valoarea pragului.Mai precis, chip-uline evidena celei mai mari valori a contoruluirelativizat,Max, corespunztoare unui caracter k oarecare, astfel nct

    [ ] [ ]/C k T k Max= este cel mai mare dintre toate caracterele contorizate pn acum. Dac un caracter noui este citit, chip-ul incrementeaz [ ]C i .

    Dac [ ] [ ]/C i T i Max> , atunci chip-ul nlocuiete valoarea curent a luiMax memorat, cu [ ] [ ]/C i T i . La sfr itul procesrii URL-ului, chip-ulne alerteaz dac ax L .

    Iat de ce aceast soluie e bun: dac [ ] [ ]/ax C k T k L= , evidentc pachetul trebuie marcat, deoarece caracterulk depete pragul. Pe dealt parte, dac [ ] [ ]/C k T k L< , atunci pentru orice i, avem

    [ ] [ ] [ ] [ ]/ /C i T i C k T k L < . Astfel dac Max cade sub prag, atunci niciun caracter nu va trece peste prag. Astfel nu pot exista r spunsuri falsenegative (vezi fig. 1.5).

    1.2.4 Rafinarea algoritmului: exploatarea hardware-ului Noul algoritm a eliminat bucla de final dar nc trebuie s realizeze

    operaia de mpr ire n timpul procesrii fiecrui octet. Logica mpr iriieste ceva mai complicat i trebuie evitat dac se poate dar cum?

    Revenind la specificaii i scopul lor, probabil c pragurile nu trebuie s fie numere reale exacte n virgul flotant. Puin probabil ca proiectantulcare deduce pragurile s poat estima precis valoarea; probabil c 2.78%va fi aproximat cu 3% f r a afecta prea tare securitatea. Atunci de ce s

    2%

    1%

    5

    3

    TabloulPrag

    TabloulContor

    AIM://de asire # * # ! * # ...... *

    Cod duntor

    0

    #

    255

    1) Incrementeaz 3) Dac C[i]/T[i] > Max, Max = C[i]/T[i]2) Citire

  • 8/8/2019 Algoritmica de retea

    9/208

    9

    nu aproximm pragul cu o putere a lui 2, n loc s folosim valoarea exact a pragului respectiv? Astfel dac pragul este 1/29, de ce s nu laproximm cu 1/32?

    FIGURA 1.6 Folosirea unui cuvnt lungi un tablou compus pentru a combina 2 citirintr-una

    Schimbarea specificaiei n felul acesta necesit o negociere cu arhitectulsistemului. Presupunem c arhitectul este de acord cu propunerea. Un pragca 1/32 poate fi codat compact ca o putere a lui 2 ex. 5. Aceast valoarede pragdeplasat / shift poate fi memorat n tabloul de praguri, n loculunei fracii.

    Cnd este ntlnit un caracter j, chip-ul incrementeaz [ ]C j ca de obiceii-l deplaseaz apoi spre stnga mpr irea cu 1/ este nlocuit cunmulirea lui x cu pragul indicat. Dac valoarea deplasat e mai maredect ultima valoareMax stocat, chip-ul nlocuiete vechea valoare cunoua valoarei continu.

    Astfel logica necesar pentru implementarea procesrii unui octet const dintr-o deplasarei o comparaie. E necesar doar un registru pentrumemorarea valoriiMax . Dar e necesar o citire a tabloului Prag (pentru aciti valoarea deplasat), o citire a tabloului Contor (pentru a citi vechiulcontor) i o scriere in tabloul Contor (pentru a renscrie valoareaincrementat).

    Citirea memoriei dureaz acum 1-2nsec chiar i pentru cele mai rapidememorii pe chip, dar poate dura pn la 10nsec pentru memoriile mai lente deci e mai lent ca logica. ntrzierile por ilor sunt de ordinul picosecundelor,i logica de deplasare nu necesit prea multe por i. Astfel,strangularea de procesare este dat de numrul de accesri ale memoriei.

    Implementarea chip-ului poate combina cele dou citiri ale memorieintr-o singur citire, reunind cele dou tablouri Pragi Contor ntr-unulsingur (fig.1.6). Ideea este de a face cuvintele din memorie destul de lungi pentru a conine i contorul (15 bii pentru a manevra pachete cu lungimea32K)i pragul (care depinde de precizia necesar , nu mai mult de 14 bii).Astfel cele dou cmpuri pot fi uor combinate ntr-un cuvnt mai mare de29 bii. In practic, hardware-ul poate manevra cuvinte mult mai mari, de pn la 1000 bii. De altfel trebuie avut n vedere c extragerea celor dou cmpuri dintr-un singur cuvnt, o sarcin laborioas prin software, este

    2%

    1%

    5

    3

    Tabloul Prag plus Contor

    AIM://su raincarcare # * # ! * # ...... *

    Cod duntor

    0

    #

    255

    1) Citete un cuvnt lung2) Compar i marcheaz dac e necesar 3) Scrie valoarea incrementat

  • 8/8/2019 Algoritmica de retea

    10/208

    10

    banal prin hardware, prin cablarea adecvat a firelor ntre registre, sau prin folosirea multiplexoarelor.

    1.2.5 tergereaDei bucla terminal a fost eliminat, nu a fost rezolvat problema

    delicat a buclei de iniializare. Pentru a trata aceast problem, chip-ul arela dispoziie un timp de iniializare, dupa analiza URL-lui pachetului

    curenti nainte de tratarea URL-lui urmtorului pachet.Din pcate, dimensiunea minim a pachetelor poate fi mic, de pn la50 bytes, inclusiv antetul HTTP. Presupunnd c sunt 40 bytes non-URLi 10 bytes URL, iniializarea unei zone de 256 de bytes nu poate fif cut f r un cost suplimentar de 256/40 =6 operaii per byte, necesare prelucr rii unui URL. Cai la bucla de procesare a URL-lui, fiecareiniializare presupune o citirei o scriere a zonei comasate.

    O metod este amnarea lucrului pn nu e absolut necesar, n speranac nu va mai fi necesar. De fapt, chip-ul nu trebuie s iniializeze [ ]C i pn cnd caracteruli e accesat prima dat n pachetul urmtor. Dar cum poate s tie chip-ul c acceseaz caracteruli pentru prima dat? Pentru aimplementa evaluarea relaxat, fiecare cuvnt de memorie, reprezentnd ointrare n zona comasat, trebuie extins pentru a include[ ]G i , numrulgeneraiei. Acest numr de generaie, pe 3 bii, poate fi vzut ca un contor,care numar de cte ori e ntlnit pachetul, cu excepia faptului c e limitatla trei bii. Astfel, chip-ul are un registru suplimentar g pentru fiecarei, pelng [ ]G i , cu 3 bii; registrul g este incrementat modulo 8 la fiecare pachet intlnit. In plus, de cte ori[ ]C i este actualizat, chip-ulactualizeaz i [ ]G i pentru a reflecta valoarea curent a lui g .

    Avnd numerele generaiei, chip-ul nu mai trebuie s iniializeze zona de

    numrare dupa ce pachetul curent a fost procesat. Totui, s consider mcazul unui pachet cu numrul generaiei h, care conine un caracter i nURL-ul su. Cnd chip-ul ntlnete caracteruli n timpul procesrii pachetului, citete [ ]C i i [ ]G i din zona de numrare. Dac [ ]G i h nseamn c intrareai a fost accesat anterior de un pacheti nu a fostiniializat n consecin. Astfel, logica va repune pe 1 valoarea lui

    [ ]C i (iniializare plus incrementare)i va pune peh valoarea lui [ ]G i (fig.1.7).

    Apare imediat o obiecie.Deoarece numrul generaiei are doar 3 bii, iar valoarea lui g este ciclic, pot apare erori. Dac [ ] 5G i = iar intrareai nu

    este accesat pn cnd nu au trecut deja 8 pachete, valoarea curent a lui g este 8. Dac urmtorul pachet conine caracteruli, [ ]C i nu va mai fiiniializati contorul va numra eronat valoarea de ordine a caracteruluii din pachetul curent, cu valoarea din urm cu opt pachete.

    Chip-ul poate evita aceast eroare printr-o bucl de filtrare separat, carecitete tabeluli iniializeaz toate contoarele cu numerele de generaienvechite. Pentru corectitudine, chip-ul trebuie s realizeze o scanarecomplet a zonei pentru toate cele opt pachete procesate. Incetinireaexistent, de 40 non-URL octeti per pachet, garanteaz o ncetinire de 320

  • 8/8/2019 Algoritmica de retea

    11/208

    11

    bytes non-URL pentru cele opt pachete, ceea ce este suficient pentru ainiializa o zon de 256 de elemente, utiliznd o citirei o scriere per octetindiferent de tipul de octet, URL sau non-URL. Se poate ctiga mai mult ntrziere dac este nevoie, crescand numrul de bii ai numruluigeneraiei, cu preul unei uoare creteri a necesarului de memorare azonei.

    Fig 1.7 Soluia finala cu numere de generaie pentru rafinarea buclei de iniializare

    In acest caz, chip-ul trebuie s conin dou stri, una de procesare a biilor apar innd URL-luii una de procesare a biilor non-URL. Cnd unURL este complet procesat, chip-ul trece n starea de filtrare/scrub. Chip-ul dispune de un alt registru, care indic intrarea s a urmtoarei zone defiltrat. Dac [ ]G s g , [ ]G s este resetat la valoarea g , iar [ ]C s esteiniializat pe 0.

    Deci utilizarea a 3 biti suplimentari, pentru numrul generaiei pentrufiecare intrare de zon, a dus la reducerea ciclurilor de iniializare cu preulcreterii zonei de memorare. Intrarea zonei comasate are acum doar 32 de bii, 15 bii pentru contor, 14 bii pentru valoarea de prag de comutare,i 3

    bii pentru numrul generaiei. Verificrile adugate iniializrii, necesaren timpul procesrii byte-lor URL nu cresc numrul de referiri la memorie(strangulare) ci cresc puin logica de procesare. In plus, mai e nevoie dedou registre pe chip pentru memorareairurilor g i s.

    1.2.6 Caracteristicile algoritmilor de re eaDetectarea un pachet malefic pune n eviden trei aspecte importante:a) Algoritmica re elelor este un domeniu interdisciplinar . Datorit

    vitezelor mari de procesare n reele, proiectanul de rutere va fi presat s nu utilizeze implementri hardware.Exemplul exploateaz ctevacaracteristici ale hardware-ului. Astfel, se presupune c: sunt posibile, f r

    dificultate, cuvinte lungi de diferite dimensiuni; deplasarea este mai uoar dect mpr irea; referirile la memorie conduc la strangulri; este fezabil implemetarea unor memorii rapide pe chip, cu zone de 256 deelemente;este fezabil adugarea unor registre suplimentare; modificrileaduse logicii pentru a combina procesarea URLi iniializarea sunt uor deimplementat.

    Inelegerea unor aspecte ale proiectrii hardware poate ajuta, chiar pe un programator software, s neleag fezabilitatea diferitelor implemantrihardware. Abordarea interdisciplinar poate conduce la o proiectareoptim. Sunt prezentate cteva modele hardware care ofer posibilitatea

  • 8/8/2019 Algoritmica de retea

    12/208

    12

    soluionrii i rafinrii unor probleme de implementare. De asemenea, sunt prezentate modele simple de sisteme de operare, deoarece pentrumbuntirea performanelor, terminalele (serverele web)i clieniitrebuie s neleag problemele sistemelor de operare, dup cum rutereleidipozitivele de reea implic o bun cunoatere i adaptare a hardware-ului.

    b) Algoritmica de re ea admite primordialitatea gndirii sistemice .Specificaiile au fost relaxate permind praguri aproximative, ca puteri alelui 2, ceea ce simplific hardware-lui.Relaxarea specificaiilor itranslatarea activitii de la un subsistem la altul este o tehnic obinuit,dar care nu este ncurajat n sistemul educaional din universitile n carefiecare domeniu este predat izolat de celelalte domenii. De aceea, n zilelenoastre, exist cursuri de algoritmi, de sisteme de operarei de reele.Acest fapt are tendina de a promova gndirea la nivel de cutie neagr nloc de o gndire global, sau sistemic.Exemplul a f cut aluzie la altetehnici cum ar fi evaluarea relaxata (lazy evaluation)i compromisulmemorie pentru procesare cu scopul de a elimina zonele decontorizare.Aadar s-a ncercat sintetizarea principiilor sistemelor utilizaten algoritmic (15 principii), precumi explicarea i analizaimplementrilor realizate pe baza acestor principii.

    c) Algoritmica de re ea poate beneficia de pe urma gndiriialgoritmice . Di gndirea la nivel de sistem este important pentru arafina de cte ori este posibil, o problem, sunt multe situaii n careconstrngerile impuse sistemelor nu permit eliminarea unor probleme. Caexemplu, dupa sublinierea importanei gndirii algoritmice prin relaxareaspecificaiilor, problema falsului pozitiv a condus la luarea n calcul acontorului maxim relativ la valoarea sa de prag. Alt exemplu estecomutarea etichetelor/tag switching, cnd s-a ncercat rafinarea cutriiIP/lookup prin comutarea etichetelor, dei multe rutere au recurs la alialgoritmi eficieni de cutare.

    Deoarece modelele sunt diferite de modelele teoretice standard, deseorinu e suficient s fie reutilizai orbete algoritmii existeni. Ca exemplu,necesitatea de a programa un comutator crossbar n 8ms conduce la luarean considerare a potrivirii maxime prin ncercri, mai simpl dectalgoritmii complicai care duc la asocieri optimale.

    Alt exemplu descrie cum implementarea BSD a procedurii de cutare(lookup) reutilizeaz orbete o structur de date denumit proba Patricia,ce utilizeaz un contor de omisiuni, pentru cutarea IP. Algoritmul rezultatnecesit o urmrire recursiv complex. O simpl modificare, care pstreaz biii omii, elimin urmrirea recursiv. Dar acest lucru presupune o ptrundere n cutia neagr (algoritmul)i aplicrii sale.Algoritmul a fost muli ani considerat o capodoper i a fost implementatn hardware, n multe rutere. Dar de fapt nu este dect o implementarehardware a BSD Patricia tries with backtracking. E util detiut c o simpl modificare a algoritmului poate simplifica hardware-ul substanial.

    In concluzie, folosirea f r discernmnt critic a algoritmilor standard poate duce la euarea perfecionrilor, prin msuri inadecvate (e.g., pentrufiltrele de pachete ca BPF, introducerea unui nou clasificator duce la timpimai mari decat timpii de cutare), datorit modelelor nepotrivite (ignorarealiniilor cache n softwarei a paralelismului n hardware)i datorit

  • 8/8/2019 Algoritmica de retea

    13/208

    13

    analizelor neadecvate (e.g., ordinul complexitii ascunde constant factoriieseniali ce asigur naintarea rapid a pachetelor pe liniile fizice).

    Aadar, un alt scop este de a urmri implementri care ptrund nesena algoritmilor,i folosirea tehnicilor fundamentale algoritmice (ca deexemplu tehnica divide et impera/dezbin i cucerete, i aleatorismul).Acestea conduc la urmtoarele concluzii.

    Defini ie: Algoritmica de re ea este folosirea abord rii sistemiceinterdisciplinare, combinat

    cu gndirea algoritmic

    , pentru proiectarea

    implement rilor rapide ale sarcinilor de procesare n re ea, la nivelul serverelor, ruterelor i a altor dispozitive de re ea.

    Obiectiv Motiv Subiecte simpleModele Inelegerea modelelor

    simple de sisteme deoperare,hardware,reele

    Tehnologii de memorii :ntreesere,combinare SRAM/DRAM

    Strategii Inelegerea principiilor sistemelor pentru evitareastrangulrilor

    Pasarea indicaiilor, evaluarearelaxat, suplimentarea strilor,exploatarea localizrii

    Probleme Practic aplicarea principiilor la problemesimple

    Proiectarea unui motor deverificare(lookup) pentru monitorulreelei

    Fig.1.8 Algoritmica de reea (cu modele, strategiii probleme simple).

    1.3 Exerci iu: Implementarea Chi-Square . Statistica chi-square sefolosete pentru a vedea dac frecvenele caracterelor observate suntneobinuit de diferite (comparativ cu variaia aleatoare normal) fa defrecvenele estimate ale caracterelor. Acesta este un test mai sofisticatdect un simplu detector de prag. Se presupune c pragurile reprezint frecvenele ateptate. Statistica se calculeaz pentru toate valorilecaracterelelor i prin:

    [ ] [ ]( )[ ]

    2 Frecventa estimata i Frecventa observata i Frecventa estimata i

    Chip-ul ar trebui s semnalizeze dac rezultatul final depete unanumit prag (ca exemplu, o valoare de 14,2 semnific c sunt 1,4%anseca diferena s se datoreze unor variaii aleatoare). Gsii o cale deimplementare eficient a acestei metode, presupunnd c lungimea estecunoscut doar la sfr it.

  • 8/8/2019 Algoritmica de retea

    14/208

    14

    CAPITOLUL 2

    MODELE DE IMPLEMENTARE A RETELELOR

    Pentru a mbunti performanele nodurilor terminalei aruterelor, un implementator trebuie s cunoasc regulile jocului. Odificultate central este aceea c algoritmii de reea cuprind patru domeniidiferite: protoacoale , arhitecturi hardware , siteme de operare i algoritmi .Inovaiile n domeniul reelelor apar cnd exper ii din diferitele domeniiconlucreaz pentru a obine soluii sinergice. Poate oare un proiectanthardware s neleag problemele legate de protocoale, iar un proiectant dealgoritmi s neleag problemele hardware, f r un studiu temeinic?

    Se ncepe cu modele simple, capabile s explicei s anticipeze, f r detalii inutile. Modelul ar trebui s ofere posibilitatea ca o persoan creativ din afara unui domeniu s poat crea proiecte, ce pot fi verificatede un expert din interiorul domeniului. De exemplu, un proiectanthardware de chip-uri ar trebui s fie capabil s sugereze schimbri desoftware n driver-ul chip-lui, iar un teoretician din domeniulcalculatoarelor ar trebui s fie n stare s viseze la algoritmi de asociere pentru switch-uri.

    2.1 ProtocoaleSeciunea 2.1.1 descrie protocolul de transport TCPi protocolul de

    rutare IP. Aceste dou exemple sunt utilizate pentru a asigura un modelabstract de protocoli funciile acestuia din &2.1.2. Seciunea 2.1.3 sencheie cu ipoteze asupra performanelor reelelor. Cititorii familiarizai cuTCP/IP ar putea dori s sar peste &2.1.2.

    2.1.1 Protocoale de transport i dirijare

    Aplicaiile se bazeaz pe o transmitere fiabil, sarcin ce revine protocolului de transport, aa cum este protocolul TCP (Transport ControlProtocol). Sarcina protocolului TCP este de a asigura transmitereairecepionarea aplicaiilor, cai cum ar fi dou cozi de ateptare separate,una n fiecare direcie, chiar dac emitoruli receptorul sunt separate deo reea cu pierderi. Aadar, orice ar scrie aplicaia emitoare n coada sade ateptare local TCP, ar trebui s apar , n aceeai ordine, n coada deateptare local TCP a receptoruluii viceversa. Protocolul TCPimplementeaz acest mecanism prin fragmentarea cozii de ateptare adatelor aplicaiei n segmentei transmiterea fiecrui segment pn cnd s-a recepionat confirmarea.

    Dac aplicaia este, de exemplu, o videoconferin care nu necesit neaprat o garanie a fiabilitii, se poate alege protocolul denumit UDP(User Datagram Protocol) n locul TCP-lui. Spre deosebire de TCP, UDPnu necesit ateptarea unor confirmri sau retransmisii deoarece nugaranteaz transmisia fiabil.

    Protocoalele de transport cum sunt TCPi UDP lucreaz printransmiterea unui segment de la un nod emitor la un nod receptor prinintermediul internetului. Sarcina actual de transmitere a unui segmentrevenind protocolului internet de rutare IP.

  • 8/8/2019 Algoritmica de retea

    15/208

    15

    Rutarea n Internet este impr it n dou pr i forwarding and routing,naintare/dirijare. Inaintarea reprezint procesul prin care pachetele sunttransmise ntre surs i destinaie trecnd prin ruterele intermediare.Pachetul reprezint un segment TCP care are ataat un antet de rutare careconine adresele internet destinaie.

    In timp ce procesul de naintare trebuie s se realizeze la viteze mari,tabelele de rutare din cadrul fiecrui ruter trebuie construite de ctre un protocol de rutare, mai ales n cazul unor modificri de topologie cum estecazul unor legturi ntrerupte. Sunt cteva protocoale de rutare maicunoscute, cum este protocolul bazat pe vectorii distan (RIP), sau pestarea legturii (BGP).

    2.1.2 Model abstract de protocolUn protocol reprezint o stare a mainii pentru toate nodurile participante

    la protocol, mpreun cu interfeele i mesajele. Un model pentru un protocol este prezentat n figura 2.1. Specificaiile trebuie s descrie cumdiagrama de stri a mainii evolueaz i r spunde la interfeele utilizator,la mesajele recepionatei la contorul de evenimente. De exemplu, cnd oaplicaie face o cerere de conectare, diagrama de stri a mainii TCPemitoare se iniializeaz prin alegerea unui numr de secven iniial,ajunge la aa numita stare SYN-STATEi trimite un mesaj SYN. Ca un aldoilea exemplu, un protocol de rutare cum este OSPF are cte o diagram de stare a mainii corespunztoare fiecrui ruter; cnd un pachet de stareLSP (Link State Packet) ajunge la un ruter cu numr de secven mai maredect ultimul LSP transmis de ctre surs, noul LSP ar trebui s fiememorati transmis ctre toate ruterele nvecinate. In timp ce protocolulde stare a liniei este foarte diferit de protocolul TCP, ambele protocoale pot fi abstractizate de ctre diagrama de stri prezentat n figura 2.1. Inafara protocoalelor TCPi IP, vor fi luate n considerarei alte protocoale,aa cum este protocolul HTTP. Un asemenea model este prezentat nfigura 2.2 fiind folosit drept referin.

    In primul rnd, (fig.2.2 jos), diagrama de stri trebuie s recepioneze/trimit pachete de date. Aceasta implic manevrarea datelor sau operaii de scrierei citire a fiecrui octet dintr-un pachet. Deexemplu, TCP trebuie s copieze datele recepionate n buffer-eleaplicaiilor, n timp ce ruterele trebuie s comute pachetele ntre liniile deintrarei cele de ieire. Antetul TCP specific, de asemenea, o sum decontrol ce trebuie calculat n funcie de toate datele. Copierea datelor necesit de asemenea alocarea de resurse, cum sunt buffer-ele.

    In al doilea rnd, (fig.2.2, sus), diagrama de stri trebuie s demultiplexeze datele ctre unul sau mai multi clieni. In unele cazuri, programele client trebuie activate, necesitnd un transfer costisitor alcontrolului. De exemplu, cnd TCP receptioneaz o pagin web, trebuie s demultiplexeze datele ctre aplicaiile de tip web-browser utilizndcmpurile cu numrul portuluii s-ar putea s fie nevoie s lanseze procesul rulnd browser-ul. Figura 2.2 descrie cteva funcii genericeutilizate de mai multe protocoale. In primul rnd, protocoalele trebuie s ndeplineasc condiia crucial de a se putea bloca la viteze mari iar uneoride a putea fi manipulate. De exemplu, un pachet TCP recepionat face ca protocolul TCP s caute n tabela de stri a conexiunii, n timp ce

  • 8/8/2019 Algoritmica de retea

    16/208

    16

    pachetele IP recepionate fac ca protocolul IP s caute o tabel deexpediere.

    Figura 2.2 Funcii comune ale protocolului, folosind tabela de stri (negrit)

    In al doilea rnd, protocoalele au nevoie s seteze eficient contoarele pentru a controla, de exemplu, retransmisiile protocolului TCP. In altreilea rnd, dac un modul al protocolului gestioneaz mai muli clienitrebuie s-i programeze eficient. De exemplu, TCP trebuie s programeze procesarea diferitelor conexiuni, n timp ce un ruter trebuie s se asigurec dominarea conversaiilor ntre cteva perechi de calculatoare nu blocheaz alte conversaii. Multe protocoale permit ca mari cantiti dedate s fie fragmentate n buci mai mici care necesit o reasamblareulterioar . Asemenea funcii generice sunt uneori costisitoare, costul lor putnd fi atenuat utiliznd tehnici potrivite.Aadar fiecare funcie generic a protocolului merit s fie studiat individual.

    2.1.3 Performan i m sur riAceast seciune descrie cteva msur tori importantei presupuneri de

    performan. Se consider un sistem (cum este o reea sau chiar un singur ruter) unde sarcinile (cum ar fi transmiterea mesajelor) sosesc, iar dup realizarea lor, pleac. Cei mai importani parametri n reele sunt

  • 8/8/2019 Algoritmica de retea

    17/208

    17

    debitul/traficul util (throughput)i latena (latency). Debitul indic numrul de operaii realizate cu succes per secund. Latena msoar timpul (cel mai slab posibil) de realizare a unei operaii. Posesoriisistemelor (ISP, ruterele) caut s maximizeze debitul util pentru a-i mrictigurile, pe cnd utilizatorii sistemului doresc o laten cap-la-cap maisczut de cteva milisecunde. Latena afecteaz de asemenea viteza decalcul n reea.Urmtoarele observaii legate de performana mediului Internet sunt utilecnd se iau n considerare compromisurile implementrii. Vitezele liniilor : viteza liniilor principale de tranzit (backbone) poate fimarit pn la 10Gpsi 40Gbps, iar viteza liniilor locale ajunge la ordinulGbps. Legturile wirelessi cele de acas sunt la momentul curent multmai ncete. Dominan a TCP i Web : traficul Web reprezint peste 70% din traficulde bytes sau pachete, iar traficul TCP reprezint 90% din trafic.Transferurile reduse : majoritatea documentelor Web accesate sunt dedimensiuni reduse ; un studiu SPEC arat c 50% din fiierele accesatesunt de 50 kilobytes sau mai puin. Laten a slab : ntrzierea n timp real depete limitrile impuse deviteza luminii: msur torile efectuate au semnalat o ntrziere de 241 msecdealungul Statelor Unite, n comparaie cu ntrzierile datorate vitezeiluminii care este de 30 msec. Latena crescut se datoreaz eforturilor dembuntire a debitului, cum ar fi compresia n modemurii pipelining-ului n rutere. Localizarea slab : studiul asupra traficului din backbone-ul reeleiindic 250.000 de perechi diferite surs-destinaie ce trec printr-un ruter ntr-un interval redus de timp. Estimri mai recente indic n jur de unmilion de transmisii concurente. Reunind grupurile de antete care auaceeai adres destinaie sau alte resurse comune, nu se reducesemnificativ numrul de clase al antetelor. Astfel, localizarea, sau probabilitatea de reutilizare a calculului, investit ntr-un pachet, pentru un pachet viitor, este mic. Pachetele de dimensiuni reduse : aproximativ jumtate din pachetelerecepionate de ctre un ruter sunt pachete de confirmri de dimensiuneminim de 40 octei. Pentru a se evita pierderea de pachete importantentr-un flux de pachete de dimensiuni minime, majoritatea productorilor de rutere i adaptoare de reea intesc ctre expedierea la vitezaliniilor/wire speed forwarding.

    M sur ri critice : trebuie f cut distincia ntre msur ri globale ale performanei (ntrzirea cap-la-capi lrgimea de band), i msur rilocale ale performanei (viteza de cutare/lookup a ruterelor). Msur rileglobale sunt cruciale pentru o evaluare global a reelei. Aici neconcentr m numai asupra msur rilor locale ale performanei, i anume performanele de expediere (forwarding)i resursele (logice, de memorie).

    Instrumente : majoritatea instrumentelor de management a reelelor,cum este HPs Open View, lucreaz cu msur ri globale. Instrumentelenecesare pentru msur rile locale sunt instrumente de msurare a performanei din interiorul calculatoarelor, aa cum este profilingsoftware.

  • 8/8/2019 Algoritmica de retea

    18/208

    18

    Exemplele includ: Rationals Quantify (http://www.rational.com) pentruaplicaii software, Intels Vtune (www.intel.com/software/products/vtune),i chiar osciloscoape hardware. De asemenea sunt utile programele demonitorizare a reelelor aa cum este tcpdump (www.tcpdump.org).

    2.2 HardwarePe msur ce legturile de date se apropie de viteze de 40 gigabit/s

    (OC-768), un pachet de 40 bytes trebuie transmis n 8 nsec. La aa viteze,transmisia mai departe a pachetelor este de obicei implementat hardware,i nu de un procesor programabil. Nu se poate participa la procesul de proiectare a unui astfel de hardware, f r nelegerea condiiilor impuse proiectanilor i mecanismelor unui asemenea hardware competitiv.Cteva modele simple pot permite nelegereai faciliteaz lucrul cu astfelde modele de hardware.

    Cutrile Internet sunt implementate de obicei folosind logicacombinational, pachetele Internet sunt stocate n memoriile ruterelor,iun ruter Internet este pus laolalt cu comutatoarei chip-uri de cutare. nconsecin, se ncepe cu implementarea logic, se continu cu descriereamemoriilor,i se termin cu schema bazat pe componente. Pentru detalii,dm spre referina clasicul VLSI, care nc se mai folosete, i arhitecturaclasic a calculatorului.

    2.2.1 Logica combinatorieModelele foarte simple pentru por ile logice de baz cum ar fi:

    Inversorul, SI-NUi SAU-NU pot fi nelese chiar i de un programator.Totui, nu este necesar s tim cum sunt implementate por ile logice de baz, pentru a avea o privire de ansamblu asupra proiectrii hardware.

    Primul pas spre nelegerea proiectrii logice este observaia urmtoare.Fiind date por ile inversoare, SI-NUi SAU-NU, algebra boolean arat c

    poate fi implementat orice funcie boolean ( )1,..., n f I I , de n variabile deintrare. Fiecare bit al multibitului de ieire poate fi considerat ca o funciede biii de intrare. Minimizarea logicii folosete la eliminarea por ilor redundantei uneori la creterea vitezei. De exemplu, dac + nseamn poart SAUi poart SI, atunci funcia :

    2121 I I I I O += poate fi simplificat la:

    1 I O = .

    Exemplul 1 : Calitatea serviciului (QOS)i codoarele de prioritate: s presupunem c avem un ruter de reea care menine pentru pachete n cozide ateptare per legtur de ieire, unde coadai are o prioritate mai maredect coada j dac i j< . Aceasta este o problem de QOS. Planificatorultransmisiei din ruter trebuie s aleag un pachet din prima coad nevid, nordinea prioritilor. Planificatorul menine un vector pe N -bii (bitmap): I ,aa nct [ ] 1 I j = dac i numai dac coada j este nevid; atunci planificatorul poate gsi coada nevid cu cea mai mare prioritate, pringsirea celei mai mici poziii din I cu bitul setat. Proiectanii hardwarecunosc aceast funcie sub denumirea de codor de prioritate. Totui, chiar

    http://www.rational.com/http://www.intel.com/software/products/vtunehttp://www.tcpdump.org/http://www.tcpdump.org/http://www.intel.com/software/products/vtunehttp://www.rational.com/
  • 8/8/2019 Algoritmica de retea

    19/208

    19

    i un proiectant de software trebuie s-i dea seama c aceast funcie se preteaz la o implementare hardware, pentru unn rezonabil. Funcia estedescris mai detaliat n exemplul 2.

    2.2.2 Sincronizare i puterePentru transmisia mai departe a unui pachet de 40 bytes la viteza unui

    OC-768, orice funcie de reea aplicat pachetului trebuie terminat n 8nsec. De aceea intrzierea maxim la transmisia semnalului de la intrare laieire, pe orice cale logic, nu trebuie s depeasc 8 nsec. In acest scop,e necesar un model al timpului de intrziere introdus de un tranzistor. Inansamblu, fiecare poart, NU sau SI-NU, poate fi gndit ca un set decapacitoarei rezistoare care trebuie ncrcate (cnd se schimb valorile deintrare) ca s se poata calcula valorile de ieire. Chiar mai r u, ncrcareaunei por i de intrare poate determina ca ieirile unor por i ulterioare s ncarce intr ri urmtoare, i aa mai departe. In consecin, pentru ofunctie combinaional, ntrzierea n calcularea funciei este sumantrzierilor de ncrcare i de descrcare introduse de cile cele maidefavorabile ale tranzistoarelor. Timpii de ntrziere introdui de astfel deci trebuie s se ncadreze n timpul minim de sosire al pachetelor.

    De asemenea este nevoie de energie pentru a ncrca condensatoarele;energia pe unitatea de timp (puterea) este propor ional cu capacitatea, ptratul tensiunii, i frecvena cu care se poate schimbaintrarea f V C P = 2 . Noile procese reduc nivelul tensiuniii alcapacitii, iar circuitele de vitez mare trebuie s creasc frecvena deceas. Paralelism nseamn c mai multe capaciti trebuiesc ncrcatesimultan. In consecin, multe chip-uri de mare vitez disip foarte mult caldur , necesitnd tehnici deosebite de r cire. ISP-urilei facilitile decolocare sunt mari consumatori de putere. Desi nu tratm schimbul decaldur , e bine detiut c chip-urilei ruterele sunt cteodat limitate n

    putere. Cteva limite practice de astzi sunt: 30 W/cm2

    si respectiv 10 000W/foot2 ntr-un centru de date (1 foot =0.305m).Exemplul 2 : Proiectarea codoarelor de prioritate: S consider m

    problema estimrii sincronizrii necesare codorului de prioritate dinexemplul 1, pentru o legtur OC-768, folosind pachete de 40 bytes. Inconsecin circuitul are la dispoziie 8 nsec s produc ieirea.Considernd c intrarea I i ieirile O sunt vectori pe N biti ca [ ] 1O j = dac i numai dac [ ] 1 I j = i [ ] 0 I k = pentru toate k j< . Trebuieobservat c ieirea este reprezentat n unar (de multe ori numit reprezentare 1 hot)i nu n binar. Specificaia conduce direct la ecuaia

    combinaiilor logice: ][]1[...]1[][ j I j I I jO = pentru j > 0.Acest model poate fi implementat direct folosind N por i SI, una pentrufiecare bit de ieire, unde cele N por i au un numr de intr ri care variaz de la 1 la N . Intuitiv, din moment ce N por i de intrare SI iau

    ( )O N tranzistoare, avem un model. Modelul 1, cu( )2O N tranzistoarecare pare c iau ( )1O timp. Chiar i acest nivel de proiectare este util deis-ar puteai mai bine.

  • 8/8/2019 Algoritmica de retea

    20/208

    20

    Un alt model mai economic din punct de vedere al suprafeei este bazat pe observaia c fiecare bit de ieire ( )O j necesit poarta SI component a primilor 1 j bii de intrare. In consecin definim rezultatele par iale

    ]1[...]1[][ = j I I j P pentru 2... j N = . Este clar c [ ] [ ] [ ]O j I j P j= . Dar [ ] P j poate fi construit recursiv folosind ecuaia ][]1[][ j I j P j P = care poate fiimplementat folosind N por i SI de cte dou intr ri, conectate n serie.Aceasta conduce la un model, modelul 2 care necesit ( )O N tranzistoaredar care ia ( )O N timp.

    Modelul 1 este rapidi mare,i modelul 2 este lenti redus. Acesta esteun compromis familiar spaiu-timp care sugereaz c putem avea o soluieintermediar . Calculul lui [ ] P j n modelul 2 seaman cu un arbore binar neechilibrat de nlime N . Totui, este evident c [ ] P N poate fi calculatfolosind un arbore binar complet echilibrat de por i SI cu 2 intr ri, denlime log N . Rezultatele par iale ale arborelui binar pot fi combinate nfeluri simple astfel nct s avem [ ] P j pentru toate j N < folosindacelai arbore binar.

    De exemplu dac N =8, pentru calculul lui P [8] calculm ]3[...]0[ I I X = i]7[...]4[ I I Y = i calculm SI din X i Y la r dcin. Deci este uor s

    calculm P [5] spre exemplu, folosind una sau mai multe por i SI,calculnd ]4[ I X . O astfel de metod este foarte utilizat de proiectaniihardware pentru nlocuirea lanului de calcul aparent lung de( )O N , culanuri de lungime2log N . Deoarece a fost folosit prima dat ca s gr beasc lanurile carry, este cunoscut sub denumirea decarry lookahead sau simplulook-ahead . Chiar dac tehnicile look-ahead par complexe,chiar i programatorii le pot st pni pentru c la baza lor, folosesc tehnicadezbin-i-cucerete.

    2.2.3 Cre terea nivelului de abstractizare a proiect rii hardwareProiectarea manual a fiecrui tranzistor dintr-un nou cip de reea, care

    const n 1 milion de tranzistoare, ar fi consumatoare de timp. Procesul de proiectare poate fi redus la cteva luni folosind blocurile constructive (vezitehnologiile de construire a blocurilor funcionale, ca PLA, PALi acelulelor standard).

    Un lucru important este faptul c la fel ca i programatorii carerefolosesc codurile, proiectanii de hardware refolosesc implementri defuncii frecvent utilizate. In afar de blocurile de calcul comune, ca blocurile de adunare, multiplicare, compararei codare a prioritatilor, proiectanii folosesc de asemenea blocuri decodoare, blocuri de deplasarecu mprumut (barrel shifter), multiplexoarei demultiplexoare.

    Un decodor convertete o valoarelog N bii la una N bii unar deaceeai valoare; reprezentrile binare sunt mai compacte, dar reprezentrile unare sunt mai convenabile pentru calcul. Un bloc dedeplasare cu mprumut deplaseaz o intrare I cu s pozitii la stnga sau ladreapta, cu biii mutai circular de la un capt la cellalt.

  • 8/8/2019 Algoritmica de retea

    21/208

    21

    Un multiplexor (mux) conecteaz una din mai multe intr ri la o ieirecomun, n timp ce dualul su: demultiplexorul, ruteaz o intrare la unadin mai multe posibile ieiri. Mai precis, un multiplexor conecteaz unuldin n bii de intrare j I la ieirea O dac un semnal de selecie S de logn bii codeaz valoarea j n binar. Dualul su, demultiplexorul, conecteaz intrarea I la ieirea jO dac semnalulS codeaz valoarea j n binar.

    FIGURA 2.3: Multiplexor cu 4 intr ri cu biii de selecie 0S i 1S , pornind de la treimultiplexoare cu 2 intr ri (multiplexorul are simbolul standard trapezoidal).

    Astfel trebuie descompus o funcie logic complex n funcii standard,folosind recursivitatea cnd este nevoie. Aceasta este oreducere i urmeaz principiul dezbin-i-cucerete fiind folosit de programatori cu uurin. Deexemplu, figura 2.3 arat problema tipic Lego cu care se confrunt proiectanii hardware: construii un multiplexor de 4 intr ri pornind de lamultiplexoare de 2 intr ri. Incepei prin a alege una dintre intr rile 0 I si

    1 I folosind un multiplexor cu 2 intr ri i apoi una dintre 2 I i 3 I folosind unalt multiplexor de 2 intr ri. Rezultatele multiplexoarelor de 2 intr ri din primuletaj, trebuie combinate folosind un al 3-lea multiplexor de 2 intr ri; singuraobservaie este c semnalul de selecie pentru primele 2 multiplexoare este celmai puin semnificativ bit 0S al semnalului de selecie de 2-bii, iar al treileamultiplexor selecteaz jumtatea de sus sau cea de jos, astfel nct folosete 1S ca bit de selecie.

    Urmtorul exemplu de reea arat c reducerea este o unealt de proiectare puternic pentru proiectarea funciilor de reea.

    Exemplul 3 : Planificarea crossbar i codoare de prioritate programabile:Exemplele 1i 2 au motivat proiectarea unui codor de prioritate rapid (PE).Un mecanism obinuit de arbitrare de ruter folosete o form mbuntit decodor de prioritate numit codor de prioritate programabil (PPE). Avem ointrare I de N bii ca mai nainte, mpreun cu o intrare adiional P de log N

    bii. Circuitul PPE trebuie s calculeze o ieire O astfel nct [ ] 1O j = , unde jeste prima pozitie dup P (tratat ca valoare binar ) care are o cifr binar diferit de zero n I . Dac 0 P = , aceast problem se reduce la un codor de prioritate simplu. PPE-urile apar natural n arbitrarea switchurilor. Deocamdat presupunem c un ruter conecteaz N legturi de comunicaie Presupunem c mai multe legaturi de intrare vor s transmit un pachet la legtura de ieire L.Pentru a evita coliziunea la ieirea L, fiecare intrare trimite o cerere la L n primul interval de timp; L alege legtura de intrare creia i va servi cererea n

  • 8/8/2019 Algoritmica de retea

    22/208

    22

    slotul al doilea; intrarea aleas expedieaz un pachet n al treilea intervaltemporal.

    Pentru a lua decizia de servire, L poate s stocheze cererile primite lasfr itul slotului 1 ntr-un vector R de N -bii, unde [ ] 1 R i = dac legtura deintrarei dorete s transmit la L. Pentru corectitudine, L ar trebui s rein ultima intrare P servit. Dup aceea, L ar trebui s serveasc prima legtur de intrare de dup P , care are o cerere. Aceasta este o problem PPE cu R i P ca intr ri. Deoarece un ruter trebuie s fac o arbitrare pentru fiecare poziietemporal i pentru fiecare legtur de ieire, este nevoie de un model PPErapidi eficient ca arie. Chiar i un programator poate s neleag, i posibil s repete procesul folosit pentru a proiecta PPE-ul din Tiny Tera, un switchconstruit la Stanfordi mai trziu comercializat. Ideea de baz este reducerea:reducerea proiectrii unui PPE la proiectarea unui PE (exemplul 2).

    Prima idee este simpl. PPE este n esen un PE a crui prioritate mazim ncepe de la pozitia P n loc de 0. Un barrel-shifter poate fi folosit pentru adeplasa I mai nti spre stnga cu P bii. Dup aceasta se poate folosi unsimplu PE. Bineineles c vectorul bitilor de iesire este acum deplasat; decitrebuie restabilit ordinea original deplasnd ieirea lui PE la dreapta cu P

    bii. Un bloc de deplasare cu mprumut pentru N -biti de intrare poate s fieimplementat folosind un arbore de multiplexoare de 2 intr ri ntr-un timp n jur de log N . Astfel dou blocuri de deplasare cu mprumuti un PEechivaleaz cu aproximativ 3log N ntrzieri de por i.

    Un proiect mai rapid, care necesit numai 2log N ntrzieri de por ieste urmtorul. Problema se poate mpr i n dou pr i. Dac intrareaare nite bii setai la poziia P sau mai mare, atunci rezultatul poate figsit folosind un PE care opereaz pe intrarea original dup ce au fostsetai pe 0 toi biii de intrare a cror poziie este mai mic dect P . Pe pede alt parte, dac intrarea nu are nici un bit setat la poziia P sau maimare, atunci rezultatul poate fi gsit folosind PE-ul care opereaz peintrarea original f r nici o mascare. Acest rezultat din modelul dinfigura 2.4, testat pe Texas Instrument Cell Library, a fost aproape dedou ori mai rapidi a nsemnat folosirea unei suprafee de trei ori maimic dect modelul blocului de deplasare cu mprumut, pentru un ruter cu 32-porturi.

    Deci logica modelului pentru o component de timp critic, un switch, poate fi realizat folosind reducerii modele simple.

    2.2.4 MemoriiIn punctele terminalei rutere, naintarea/expedierea pachetelor se face

    folosind logica combinaional, dar pachetelei strile necesare naintriitrebuiesc stocate nmemorii . Deoarece accesarea memoriilor estesemnificativ mai lent dect ntrzierile logice, memoriile sunt cele caregenereaz strangulri masive n ruterei n puncte terminale.

    n plus, diferitele subsistemele necesit memorii cu caracteristici diferite.De exemplu, vnztorii de rutere cred c este important un buffer de 200 demsec pentru a evita pierderea pachetelor n timpul perioadelor de congestie.La, s zicem 40 Gbit/sec per legtur , un astfel de buffer de pachete necesit ocantitate enorm de memorie. Pe pe de alt parte, cutrile ruterelor necesit o

  • 8/8/2019 Algoritmica de retea

    23/208

    23

    cantitate mai mic de memorie, accesat aleator. Astfel este bine s avemmodelele simple pentru memorii cu diferite tehnologii.

    REGISTREUn bistabil (flip-flop) conecteaz dou sau mai multe tranzistoare ntr-o

    bucl, astfel nct (n absena cderilor tensiunii) cifra binar s stea nedefinitde mult timp pe ieire f r s se modifice valoarea tensiunii. Un registru este ocolec

    ie ordonat

    de bistabile. Cele mai moderne procesoare au registre pe

    chip de 32 sau 64 bii. Un registru pe 32 bii conine 32 de bistabile,fiecare pentru a memora 1 bit. Accesul de la logic la un registru, peacelai chip, este extrem de rapid, n jur de 0.5-1 nsec.

    SRAMO memorie static cu acces aleator (SRAM) conine N registre adresate cu o

    adres A, pe log N bii. SRAM este numit astfel deoarece remprosptarea bistabilelor este de tipul static. n afar de bistabile, SRAM are nevoiei de undecodor care decodeaz A, ntr-o valoare unar , folosit pentru accesarearegistrului potrivit. Accesarea unui SRAM pe-chip este doar puin mai lent dectaccesarea unui registru, din cauza ntrzierii introduse de decodare. n momentul

    actual, este posibil s se obin SRAM pe chip cu timp de acces de 0.5 nsec. Timpi deacces de 1-2 nsec pentru SRAM pe-chipi 5-10 nsec pentru SRAM care nu este pe chip,se ntlnesc n mod uzual.

    DRAMO celul binar SRAM necesit cel puin cinci tranzistoare. Astfel

    SRAM este ntotdeauna mai puin dens sau mai scump dect tehnologiade memorie bazat

    FIGURA 2.4: Proiectul Tiny Tera PPE folosete codor de prioritate 1, pentru a gsisetul cel mai mare de bii, dac exist, a tuturor biilor mai mari dect P folosind o masc de codare a lui P . Dac nu e gsit nici un bit, e validat ieirea codorului 2 de prioritate(poarta SI de jos). Rezultatele celor dou codoare sunt apoi combinate cu o poart SAUcu N intr ri.

    pe DRAM (Dynamic RAM). Ideea de baz este s se nlocuiasc bucla der spuns (i implicit tranzistoarele suplimentare) folosit pentru a memoraun bit ntr-un bistabil, cu o capacitate care poate s stocheze bitul; sarcinase scurge, dar ncet. Pierderea datorat descrcrii este compensat remprosptnd celula DRAM n mai puin de o milisecund. Bineneles,fabricarea unei capaciti mari folosind puin siliciu e complex.

  • 8/8/2019 Algoritmica de retea

    24/208

    24

    Capacitatea chip-urilor DRAM pare c devine de 4 ori mai mare la fiecare3 ani i tinde spre 1 Gbit pe un singur chip. Adresarea acestor bii, chiar dac ei sunt construii mpreun n aceeai capsul sub forma unor registrede 4 sau 32 de bii, este dificil. Adresa trebuie s fie decodificat de la, s zicem 20b la una din 220 valori. Complexitatea unei astfel de logici dedecodare sugereaz folosirea tehnicii dezbin i cucerete. Dar de ce s nuse foloseasc o decodare n doi pai n schimb?

    FIGURA 2.5: Memoriile mai mari sunt organizate pe dou dimensiuni n rnduriicoloane. Selectarea unui cuvnt const n selectarea mai inti a rnduluii apoi a coloaneidin acel rnd.

    Figura 2.5 arat c cele mai multe memorii sunt organizate intern pedou dimensiuni, n rndurii coloane. Cifrele binare de adres de sus suntdecodificate pentru a selecta rndul,i dup aceea cifrele binare de adres de jos sunt folosite pentru a decodifica coloana. Utilizatorul furnizeaz mai nti biii de adres a rnduluii activeaz un semnal numit RAS(Row

    Address Strobe); apoi utilizatorul furnizeaz biii de adres ai coloaneiiactiveaz un semnal numit CAS(Column Address Strobe). Dupa un timpspecificat, cuvntul dorit din memorie poate fi citit. Presupunnd rnduriicoloane egale, se reduce complexitatea por ii de decodare de la ( )O N la

    )(( N O ) cu preul creterii ntrzierii cu timpul necesar pentru nc odecodare. In afar de timpul de ntrziere necesar, dintre RASi CAS, maieste de asemenea necesar i o ntrziere de prencrcare ntre invocrisuccesive ale lui RAS i CAS, timp ce permite ncrcareacondensatoarelor.Cele mai rapide chip-uri DRAM au nevoie n jur de 40-60 nsec(latena) pentru acces, cu timpi mai lungi ca de exemplu 100 nsec, ntre citirisuccesive (consum) din cauza restriciilor de prencrcare. Acesta laten includetimpul necesar pentru a adresa liniile externe de interfa la pinii memoriei DRAM;inovaiile recente permit realizarea de DRAM pe chip, cu timpi de acces mai mici,n jur de 30 nsec. DRAM va fi ntotdeauna mai dens dar mai lent dect SRAM..

    Page-Mode DRAMUnul din motivele nelegerii DRAM este nelegerea artificiului

    utilizat pentru accelerarea timpului de acces, numit page mode /modul pagin. Acest mod de acces este benefic pentru a accesa structuri de datecare au o localizare spaial, n care cuvintele de memorie adiacente sunt

  • 8/8/2019 Algoritmica de retea

    25/208

    25

    accesate succesiv. Dar accesnd un rnd (fig. 2.5), se pot accesa cuvintedin rnd, f r ntrzieri suplimentare de RASi prencrcare. RAMurilevideo exploateaz aceast structur avnd o citire de rnd ntr-un SRAM,care poate fi citit serial, pentru a remprospta un ecran (display) la vitezenalte. In afara de page modei video RAM, mai sunti alte idei careexploateaz structura DRAM, care pot fi folositoare n reele.

    Multe chip-uri de DRAM au avantajul c adresele de liniii coloane nu sunt cerute nacelai timp astfel ca pot fi multiplezate pe aceeai pini, reducnd necesarul de pini per chip.

    FIGURA 2.6: Ideea RAMBUS, SDRAM, etc., este crearea unui singur chip cuDRAM multiple paralele, ctignd astfel lime de band de memoriei folosind doar un set de linii de adresei de date.

    DRAM -uri ntre esuten timp ce latena memoriei este critic pentru viteza de calcul, debitul

    memoriei (numiti l ime de band ) este de asemenea important pentru multeaplicaii de reea. Cu o memorie DRAM care are cuvinte de 32bi ciclul de 100nsec, debitul de ieire, folosind o singur copie a memoriei DRAM este limitat la32 bii la fiecare 100 nsec. Debitul de ieire poate fi mbuntit folosind accesrilela DRAM-uri multiple (fig. 2.6), numitebancuri de memorie, care pot avea osingur magistral. Utilizatorul poate s nceap o citire a bancului1 punnd adresa pe magistrala de adres. Presupunem c fiecare banc DRAM are nevoie de 100nsec pentru a returna datele selectate.

    n loc s atepte inactiv n acest timp de ntrziere de 100-nsec, utilizatorul poates pun o a doua adres pentru bancul 2 pe magistral, a treia pentru bancul 3,i aamai departe. Dac punerea fiecrei adrese ia 10 nsec, utilizatorul poate alimnta 10 bancuri DRAM nainte s ajung r spunsul la cererea f cut asupra primului bancDRAM, urmat 10 nsec mai trziu de r spunsul la cererea f cut asupra celui de-aldoilea banc DRAM,i aa mai departe. Deci limea de band net de memoriefolosit n acest exemplu este de 10 ori mai mare dect cea a unei singure memoriiDRAM, atta timp ct utilizatorul poate face n aa fel nct s aib adresriconsecutive la bancuri consecutive.In timp ce ideea folosirii de bancuri de memorie multiple este una veche, n ultimii5 ani proiectanii memoriilor au integrat mai multe bancuri ntr-un singur chip (fig.2.6), n care liniile de adres i de date pentru toate bancurile de memorie suntmultiplexate folosind o reea comun de mare vitez numit magistral /bus . In plus,accesurile de tip page mode sunt de cele mai multe ori permise pe fiecare banc.Exist multiple tehnologii de realizare a memoriilor folosind aceast idee de baz,cu diferite valori pentru mrimea DRAM, protocolul de citirei scrierei numrul

  • 8/8/2019 Algoritmica de retea

    26/208

    26

    bancurilor. Exemple importante includ SDRAM cu 2 bancurii RDRAM (RemoteDRAM)cu 16 bancuri.

    Exemplul 4. Cutri/lookup de fluxuri pipeline: un flux este caracterizat deexistena unei adrese IP a surseii a destinaiei,i de porturi TCP. Unii clieni dorescca ruterele s in evidena pachetelor trimise de fiecare flux de reea, pentrucontorizare. Sunt deci necesare structuri de date care s stocheze un contor pentrufiecare flux IDi care s suporte dou operaii: Insert (FlowID) pentru inserareaunui nou ID de flux

    i Lookup (FlowID) pentru g

    sirea loca

    iei contorului de flux

    ID. Cutarea necesit o potrivire exact a ID-ului fluxului care este n jur de 96 bii n timpul recepionrii pachetului. Aceasta poate fi f cut prin orice algoritm de potrivire exact, cum ar fi cel de dispersare/hashing.

    Totui, pe msur ce tot mai muli vnztori de rutere vor s limiteze timpulde lookup pentru cazul cel mai defavorabil, cutarea binar este cea mai bun.Presupunem c aceste cutri ale ID-urilor fluxurilor trebuie f cute la vitezaliniei, pentru cazul cel mai defavorabil de pachete de 40 bytes la viteze de 2.5Gbit/sec/viteze OC-48. In consecin chip-ul are la dispoziie 128 nsec pentru agsi un ID de flux.

    Pentru a mrgini ntrzierile de cutare, consider m un arbore binar simetric, caarborele B. Logica parcurgerii arborelui este uoar . Pentru creterea vitezei, ar trebui ca ID-urile fluxurilor i numr toarele s fie stocate ntr-o memorieSRAM.. Estimrile actuale actuale n ceea ce privete nucleul ruterelor arat n jur de 1 milion de fluxuri concurente. Pstrarea strii pentru 1 milion de fluxuri nSRAM este scump. Chiar dac folosim doar DRAM-uri, cu arbori binari cufactor de branament de 2, ar necesita log21.000.000=20 accese de memorie.Chiar cu un timp de acces optimist al memoriei DRAM de 50 nsec, timpulnecesar ntregii cutri este de 1sec, care este prea lent

    O soluie este folosirea pipelining-ului (fig. 2.7), n care accesul logic prin pipeline la ID-urile fluxurilor stocate ntr-o memorie RDRAM cu 16 bancuri esteca n figura 2.6. Toate nodurile de nlime i din arborele binar sunt stocate n banculi al RDRAM-ului. Chip-ul de cutare face16 cutri de ID-uri de fluxuri(pentru 16 pachete) deodat. De exemplu dup ce a cutat n nodul r dcin pentru pachetul 1 n bancul 1, chip-ul poate s caute, la nodul arborelui de niveldoi, dup pachetul 1 n bancul 2i (foarte repede dupa asta) poate s caute lanodul r dcin al arborelui pentru pachetul 2 din bancul 1. Cnd firul/thread procesului de cutare a pachetului 1 acceseaz bancul 16, firul procesului decutare a pachetului 16 acceseaz bancul 1. Deoarece RDRAM-ul directfuncioneaz la 800 Mhz, timpul dintre cererile de adresare a magistralei RAM-ului este mic comparativ cu timpul de acces de citire de 60 nsec. Astfel, n timpce unui singur pachet i trebuie1660 nsec, procesarea concurent a 16 pachete permite debitul de o gsire de ID de flux la fiecare 60 nsec.

  • 8/8/2019 Algoritmica de retea

    27/208

    27

    FIGURA 2.7: Gsirea identitii fluxului, cu un chip de cutare pipeline, care lucreaz la gsirea a

    pn la 16 ID-uri de fluxuri n acelai timp, fiecare din ele accesnd un banc DRAM independent. Chip-ul de cutare returneaz un index procesorului de reea care actualizeaz numr torul ID a fluxului.

    Dar, un arbore binar cu 16 nivele permite doar 216= 64 K ID-uri de flux, prea puin. Din fericire RAMBUS permite o variant de page mode, unde 8 cuvinte de32 bii pot fi accesate aproape n acelai timp ca 1 cuvnt. Astfel putem gsi dou chei de 96 bii i 3 pointeri de 20 bii ntr-un acces la memorie de 256 bii. Se

    poate deci folosi un arbore cu branament de 3, care permite potenial 316

    sau 43milioane de ID-uri de fluxuri.

    2.2.5 Tehnici de proiectare a subsistemelor de memoriiProblema gsirii ID-urilor fluxurilor de date ilustreaz 3 tehnici majore folosite

    de obicei n proiectarea subsistemului memoriei pentru chip-urile de reea. Intre eserea memoriilor i tehnica pipeline: Tehnici similare sunt folosite

    n cutarea IP-urilor i algoritmilor de planificare care implementeaz QOS.Bancurile multiple pot fi implementate folosind cteva memorii externe, osingur memorie extern ca RAMBUS, sau un SRAM pe chip care contineilogica de procesare.

    Procesarea paralel a cuvintelor lungi: Multe modele de reea, ca schemavectorilor binari de la Lucent, folosesc cuvinte de memorie lungi care pot fi procesate n paralel. Aceasta poate fi implementat cu DRAM si folosind page-mode-ul, sau cu SRAMi f cnd fiecare cuvnt de memorie mai mare.

    Combinarea DRAM i SRAM: Tinnd cont de faptul c SRAM este scumpirapid iar DRAM este ieftini lent, este de aeptat o combinaie a acestora. Folosirea SRAMca i cache pentru bazele de date DRAM este clasic, dar sunt multe aplicaii creative amemoriei ierarhizate. In exerciii e analizat efectul unui SRAM mic n proiectarea unui chipcutator de ID. O aplicae mai neobinuit a acestei tehnici de implementare a unui numr mare de numr toare, este stocarea n SRAM a biilor de rang inferior.

    E mai important ca tnarul proiectant s neleag aceste tehnici de proiectare (dect s

    stie detalii de implementare a memoriilor) ca s produc implementri hardware creative afunciilor de reea.

    2.2.6 Proiectarea la nivel de componenteMetodele din ultimele dou seciuni pot fi folosite pentru a realiza o

    ma in de st ri/state machine care implementeaz o prelucrare oarecare.O main cu stri are starea curent stocat n memorie; maina proceseaz datele de intrare folosind logica combinaional, citete stareacurent i eventual memoreaz starea. Un exemplu de main complex custri este procesorul Pentium, a crui stare curent este o combinaie de

  • 8/8/2019 Algoritmica de retea

    28/208

    28

    registre, memorie cachei memorie principal. Un exemplu de main custri mai simpl este chip-ul de cutare a ID-ului fluxului (flow ID lookup)din figura 2.7, a crui stare e dat de registrele folosite pentru urmrireafiecreia din cele 16 cutri concurentei RDRAM-ul care memoreaz arborele binar B.

    Doar puine chip-uri cheie trebuie proiectate pentru a realiza un ruter sauo plac de reea, iar restul proiectrii este la nivelul componentelor:organizarea

    i interconectarea chip-urilor pe plac

    i amplasarea pl

    cii n

    carcas innd cont de factorul de form, de puterei de r cire. Un aspectcheie n proiectarea la nivel de componente este nelegerea limitriiimpuse de numrul de pini (pin-count) care de obicei permite verificriide paritate rapid a proiectelor fezabile.

    Exemplul 5. Influena numrului de pini asupra bufferelor din rutere:consider m un ruter cu 5 legturi, fiecare de 10Gb/s. Necesarul de buffer-eva fi 200ms*50Gb/s, deci 10Gb. Din cauza costuluii a puterii se folosescDRAM-uri pentru memoriile tampon/buffer de pachete. Deoarece fiecare pachet trebuie s intre i s ias n/din buffer, limea total de band trebuie s fie dublul limii de band de intrare (ex.100Gb/s). Dac presupunem o suprancrcare de 100% pentru antetele pachetelor interne,legturile dintre pachetele din cozile de ateptarei lime irosit de band de memorie, atunci este rezonabil s consider m o lime de band de200Gb/s pentru memorie.

    Pentru o singur memorie RDRAM direct cu 16 bancuri, specificaiiledau o lime maxim de band a memoriei de 1.6Gb/s, sau 13Gb/s.Accesarea fiecrei memorii RDRAM necesit 64 de pini de interfa pentru datei 25 de pini pentru adresei control, deci un total de 90 pini.Pentru a obine 200Gb/s avem nevoie de 16 memorii RDRAM, carenecesit 1440 de pini n total. O limit superioar conservativ anumrului de pini per chip este de circa 1000. Chiar dac productorul derutere ar construi un chip foarte rapid, personalizat conform cereriiclientului, capabil s trateze toate pachetele la rata maxim, tot mai estenevoie de mcar un chip pentru manevrarea traficului n/din buffer-ul de pachete RAMBUS. n concluzie limitarea numrului de pini este ocondiie cheie n partiionarea proiectrii ntre chip-uri.

    2.2.7 Concluzii despre hardwareDin partea de hardware cele mai importante sunt tehnicile de proiectare

    din &2.2.5. Urmtorii parametri sunt utili pentru proiectanii de sisteme: Scalarea complexit ii chipului: numrul total de componente per

    chip se dubleaz la fiecare doi ani. La momentul de fa un ASIC(Application Specific Integrated Circuit) poate conine mai multe milioanede por i logice plus nc 50 Mbii ntr-o memorie SRAM pe chip. DRAMncorporat pe chip este o opiune comun, pentru a avea mai mult spaiu pe chip chiar cu ntrzieri mai mari.

    Viteza chip-ului: frecvene de 1GHz sunt comune, unele chip-uriajungnd pn la 3GHz. Un ciclu de tact pentru un chip care lucreaz la1GHz este de 1ns. Dac se opteaz pentru operarea n paralel prin pipeline-urii memorii cu cuvinte extinse, se pot efectua mai multeoperaii pe un singur ciclu de tact, mrindu-se astfel substanial viteza de procesare.

  • 8/8/2019 Algoritmica de retea

    29/208

    29

    I/E chip-ului: numrul de pini per chip crete de la an la an, dar deocamdat limitarea superioar este de 1000 pini per chip.

    I/E seriale : sunt disponibile legturi seriale ntre chip-uri de pn la10Gb/s.

    Scalarea memoriei: exist memorii SRAM pe chip cu timpi de accesde 1ns, iar memoriile SRAM externe au de obicei timpi de acces de 2.5ns.Pentru memoriile DRAM avem 30ns pentru cele integrate pe chipi 60ns pentru cele externe chipului. Desigur se pot folosi memorii DRAMntreesute pentru a mbunti rata de transfer a subsistemului memoriei pentru anumite aplicaii. Costul DRAM e de 4-10 ori mai mic dectSRAM la aceeai capacitate.

    Puterea i carcasa: consumul mare de putere a ruterelor de marevitez necesit o proiectare adecvat a sistemului de r cire/ventilaie. Deasemenea exist i o cerin de minimizare a dimensiunilor ruterelor pentru a putea fi montate n rack-uri dedicate ct mai compacte.

    Valorile acestor parametri au o influen clar asupra proiectrii de reelede mare vitez. De exemplu, la viteze OC-768, un pachet de 40 octeiajunge n 3.2ns, deci este clar c toate strile prin care trece prelucrarea pachetului trebuie s fie puse n memorii SRAM integrate pe chip. Din pcate capacitatea acestor memorii pe chip nu crete att de repede cainumrul de fluxuri din ruter. Cu o memorie SRAM de 1ns, cel mult 3operaii de acces a memoriei pot fi efectuate spre un singur banc dememorie n timpul sosirii unui pachet.

    Deci tehnicile de proiectare din &2.2.5 trebuie folosite n interiorulchip-ului pentru a obine paralelismul n chip-uri, folosind bancurimultiple de memoriei cuvinte extinse,i pentru a crete memoriautilizabil combinnd memoriile de pe chip cu memoriile externe. Dar deoarece densitatea de chip-urii constrngerile de putere limiteaz paralelismul la un factor de maxim 60, concluzia este c toate funciile de prelucrare a pachetelor la vitez mare trebuie s foloseasc cel mult 200accesri ale memorieii o memorie pe chip limitat.

    2.3. Arhitectura echipamentelor de re eaOptimizarea performanelor reelelor necesit optimizarea cilor datelor

    prin nodul surs i prin fiecare ruter. Din acest motiv este important nelegerea arhitecturii interne a nodurilor terminalei a ruterelor. nesen i ruterelei nodurile terminale sunt maini cu stri, dar arhitecturafiecruia este optimizat pentru scopuri diferite. Nodurile terminale au oarhitectur mai general pentru relizarea unor operaii comune, n timp ceruterele sunt specializate pentru comunicaia de tip Internet.

    2.3.1 Arhitectura nodurilor terminaleUn procesor cum este Pentium este o main cu stri, care ia o secven

    de instruciuni i date de intrare, dup care trimite ieirea spre anumiteechipamente de I/E, precum imprimantei terminale. Pentru a asigura programelor un spaiu mare de memorare a strilor, cea mai mare parte ainformaiei este stocat n memorii externe ieftine precum DRAM. n PC-uri aceast memorie reprezint memoria principal i este implementat folosind 1GB sau mai mult de memorii DRAM ntreesute, precumSDRAM. Dar memoriile DRAM necesit un timp de acces mare (60ns)i

  • 8/8/2019 Algoritmica de retea

    30/208

    30

    dac strile proceselor ar fi memorate numai n DRAM, atunci oinstruciune ar necesita 60ns pentru a scriei a citi din memorie.

    Procesoarele mai folosesc o memorie pentru a ctiga vitez care senumete cache . Memoria cache este o memorie relativ mic format dinmemorii SRAM, care memoreaz buci de stri folosite des, mrindastfel viteza de acces. Unele memorii SRAM (ex. L1 cache) se afl n procesor pe cnd altele (ex. L2 cache) sunt externe procesorului. Omemorie cache este un tablou care mapeaz

    adresele de memorie ale unor

    locaii i coninutul acestora. Cache-ul procesorului folosete o funciesimpl de cutare: extrage civa bii din adres pentru a-i indexa ntr-untabloui apoi caut n paralel toate adresele care se potrivesc cu elementuldin tablou. Cnd o locaie de memorie tebuie citit din DRAM ea estestocat n cachei un element deja existent din cache poate fi eliberat.Datele folosite des sunt stocate ntr-o memorie cache de date n timp ceinstruciunile folosite des sunt stocate ntr-o memorie cache de intruciuni.

    Memorarea in cache este eficient dac instruciunilei datele prezint olocalizare temporal (poziia corespunztoare este reutilizat frecvent ntr-o perioad scurt de timp) sau o localizare spaial (accesarea unei locaiieste urmat de accesarea unei locaii vecine). Localizrile spaiale suntavantajoase deoarece accesarea unei locaii din DRAM implic accesareaunei linii R i apoi a unei coloane din acea linie. Deci citirea cuvintelor dele linia R este mai puin costisitoare dup ce linia R a fost accesat. Astfel, procesorul Pentium extrage anticipat 128 de bii vecini n memoria cache(m rimea unei linii din cache ), de fiecare dat cand sunt accesai 32 de biide date. Accesarea celor 96 de bii adiaceni nu va atrage o disfuncie nmemoria cache.

    Multe benchmark-uri (programe pentru testarea performantei calculelor) prezint localizri temporalei spaiale, dar n cazul fluxurilor de pachetecel mai probabil se va ntlni doar fenomenul localizrilor spaiale.Imbuntirea performanelor protocoalelor nodurilor terminale necesita oanaliza atenta a efectelor memoriei cache.

    n figura 2.8 se prezint arhitectura unui nod terminal:

    Figura 2.8: Arhitectura unei staii de lucru

    Procesorul, CPU, este conectat la o magistral/bus (similara cu o retea caEthernet, dar optimizata prin faptul ca dispozitivele sunt apropiate), prin

    Magistral sistem

    Magistral I/E

    MemorieCPU

    MMU, Cache

    Adaptor magistral

    Interfa reea

  • 8/8/2019 Algoritmica de retea

    31/208

    31

    care comunic cu celelalte componente trimind mesaje pe magistrala.Echipamentele de I/E sunt de regul memory mapped , adic pentru procesor toate dispozitivele de I/E (placa de reea sau discul) reprezint locaii de memorie. Astfel se asigur o comunicare uniform ntre CPUiorice echipament, folosind aceleai convenii ca la accesarea memoriei. Cuterminologia din retele, o citire/scriere se poate vedea ca un mesaj trimis pe magistral, adresat unei locatii de memorie, locatie la care se poate aflasi un dispozitiv de I/E.

    Mainile moderne permit accesul direct la memorie DMA (DirectMemory Acces), prin care echipamente precum discul/adaptorul de reeatrimit datele de citit/scris pe magistral, direct la memorie f r intervenia procesorului. Dar la un moment dat doar o entitate poate folosi magistrala,motiv pentru care adaptorul trebuie s concureze pentru magistral.Fiecare echipament care ocup magistrala va fura cicluri procesorului,deoarece procesorul e obligat sa astepte pentru accesul la memorie cattimp dispozitivul trimite mesaje pe magistrala.

    Tot n figura 2.8 se observ c adaptorul de magistral este conectat lamagistrale diferite (magistrala de sistem sau de memorie) iar toateechipamentele sunt conectate la magistrala de I/E. Magistrala de memorieeste proiectat pentru viteze mari,i este reproiectat pentru fiecare procesor nou. Magistrala de I/E este standard (ex. magistrala PCI) ea fiindaleas pentru a r mne compatibil i cu echipamentele de I/E mai vechi,astfel ca ea este mai lent dect cea de memorie.

    Trebuie reinut c rata de transfer a unei aplica ii de re ea este limitat de viteza celei mai lente dintre magistrale , de obicei magistrala de I/E.nc i mai r u este faptul c sunt necesarei copii suplimentare pentrudiverse sisteme de operare, astfel ca fiecare pachet transmis saurecepionat de staia de lucru va traversa magistrala de cateva ori.(vezicapitolul 5 pentru tehnicile de evitare a traversrii multiple a magistralei).

    Procesoarele moderne folosesc tehnica pipeline/seriala pentru extragereainstruciunii, decodarea instruciunii, citireai scrierea datelor, care suntdivizate n mai multe stri intermediare. Mainile superscalare i celecumultiple fire de execu ie/multithreaded trec dincolo de tehnica pipeline prin tratarea mai multor instruciuni n acelai timp n mod concurenial. ntimp ce aceste metode nltura congestia cauzata de calcule, ele numbuntesc congestia cauzata de transferul de date. Se consider urmtorul exemplu de arhitectura:

    Exemplul 6: arhitectur de nod terminal cu comutator crossbar: in figura2.9 magistrala nodului terminal este nlocuit de un comutator hardware programabil, folosit deseori la rutere.

    Comutatorul conine un numr de magistrale paralele a.. fiecare set de perechi de puncte terminale disjuncte poate fi conectat n paralel prinintermediul comutatorului. Astfel, n figur , procesorul este conectat lamemoria 1, n timp ce placa de reea este conectat la memoria 2. n acestfel, pachetele care sosesc din reea pot fi stocate n memoria 2 f r ainterfera cu procesorul care citete din memoria 1. n momentul n care procesorul dorete s citeasc pachetul de date sosit, comutatorul poate fireprogramat pentru a conecta procesorul cu memoria 2i placa de reea cumemoria 1.

  • 8/8/2019 Algoritmica de retea

    32/208

    32

    Figura 2.9. Folosirea conexiunilor paralele ntr-un nod terminal pentru a permite

    procesarea concurent i trafic de reea printr-un comutator paralel.

    Acest mod de funcionare este eficient dac coada bufferelor de pachetegoale, folosita de placa de reea, alterneaz ntre cele dou memorii. Exist propuneri recente de nlocuire a magistralei de I/E din procesoare cutehnologia de comutare Infiniband. Ideea ce trebuie retinuta din acestexemplu este ca, nu este neaparat buna arhitectura in fig.2.9, ci schimbarisimpe ale arhitecturii pot fi concepute chiar si de catre proiectantii de protocoale, conform unor modele simple de hardware si arhitecturi.

    2.3.2 Arhitectura ruterelor Modelul unui ruter care acoper att ruterele high-end (seria de rutere

    Juniper M) precum cati ruterele low-end (Cisco Catalyst), este prezentat n figura 2.10. n principiu, un ruter este un echipament cu unset de legaturi de intrare,i un set de legturi de ieire. Sarcina ruteruluieste de a comuta pachetul de pe legtura de intrare pe legtura de ieirecorespunztoare adresei destinaie din pachet. n timp ce legturile deintrarii de ieire sunt reprezentate separat, cele dou legturi n fiecaredirecie ntre dou rutere sunt deseori mpachetate mpreun. Exist treicongestii principale ntr-un ruter: cutarea adresei, comutareai coada deieire.

    Figura 2.10 Model de ruter cu cele 3 congestii principale in calea de inaintare:cutarea adresei (B1), comutarea (B2)i planificarea ieirii (B3).

    Procesor

    Comutator programabil paralel

    Plac de reea

    Memorie 1

    Memorie 2

    Ruter B2

    Comutare

    Legtura deintrare i

    B1Cutare adres

    B3

    Legturide ieire

    Planificare

  • 8/8/2019 Algoritmica de retea

    33/208

  • 8/8/2019 Algoritmica de retea

    34/208

    34

    O intrare este conectat cu o ieire prin comandarea tranzistoarelor careconecteaz magistralele de intrarei ieire corespunztoare. n timp cerealizarea legturii ntre magistrale este relativ simpl, partea mai dificil este planificarea comutatorului, deoarece mai multe intrari ar putea s doreasc s comunice cu o anumit ieire n acelai timp. Problema planificrii comutatorului se rezum la identificarea intr rilor i ieirilor disponibile la fiecare interval de sosire a pachetelor.

    Memorarea n coada de a teptareDupa ce pachetul (figura 2.10) a fost identificati comutat spre ieirea 6,