marți, 22 noiembrie 2011

Istoria unui router

ISTORIA
Primul dispozitiv care avea o funcționalitate asemănătoare cu ruterele de astăzi (omutare de pachete) a fost Interface Message Processor(IMP). IMPurile erau dispozitivele care asigurau comutarea în ARPANET, prima rețea cu comutare de pachete. Ideea de ruter (numite "gateway" - "porți" - pe vremea aceea) a apărut din lucrul unui grup de cercetători în rețele, numit International Network Working Group (INWG). Creat în 1972,ca un grup informal care să analizeze problemele tehnice ale interconectării diferitelor tipuri de rețele existente la vremea respectivă, INWG a devenit în același an un subcomitet al Federației Internaționale aProcesării Informației
Aceste dispozitive erau diferite de precedentele comutatoare de pachete în două moduri. În primul rând, ele conectau rețele de tipuri diferite, ca de exemplu rețele seriale și rețele locale. În al doilea rând, dispozitivele acestea nu asigurau controlul erorilor, lăsând aceast lucru în sarcina calculatoarelor (această idee a fost încercată și în rețeaua CYCLADES).
Ideea a fost analizată în detaliu, în scopul de a produce un prototip funcțional, în cadrul a două programe simultane. Unul din ele era programul inițiat de DARPA care a dus la crearea arhitecturii TCP/ICelălalt era un program al laboratorului Xerox PARC, creat pentru a explora noi tehnologii pentru rețele și care a produs sistemul PARC Universal Packet (PUP), care a fost în mare măsură ignorat în afara companiei datorită problemelor de proprietate intelectuală.
Primele rutere Xerox au intrat în serviciu la începutul anului 1974. Primul ruter IP adevărat a fost dezvoltat de Virginia Strazisar la BBN în 1975-1976, ca parte a unui program inițiat de DARPA. Până la sfârșitul anului 1976 existau 3 rutere bazate pe minicalculatorul PDP-11 active în prototipul de Internet existent în acea perioadă.
Primele rutere multiprotocol au fost create în mod independent de cercetători de la MIT și Stanford în 1981; ruterul de la Stanford a fost creat de William Yeager, iar cel de la MIT de Noel Chiappa, ambele fiind bazate pe PDP-11.
Deoarece cea mai mare parte a rețelelor actuale sunt bazate pe protocolul IP, ruterele multiprotocol au devenit destul de rare. Cu toate acestea, nu trebuie minimizată importanța lor din perioada de început al dezvoltării rețelelor de calculatoare, deoarece în acea perioadă existau mai multe seturi de protocoale care concurau cu stiva TCP/IP. Se poate spune că ruterele cu stivă dublă, IPv4 și IPv6 pot fi considerate multiprotocol, dar într-un mod mult mai limitat decât un ruter ce cunoștea protocoalele AppleTalk, DECnet, IP și Xerox.
După cum am arătat mai sus, la începutul erei rutării (de la mijlocul anilor 70până la mijlocul anilor 80) pe post de rutere erau folosite minicalculatoare. Deși calculatoarele obișnuite pot fi folosite ca rutere, dispozitivele moderne sunt calculatoare extrem de specializate, de multe ori cu hardware dedicat care să accelereze atât funcțiile de bază (comutarea pachetelor) cât și funcțiile speciale (de exemplu criptarea IPsec).
Cu toate acestea, pentru cercetare și alte aplicații sunt folosite în continuare rutere făcute din calculatoare cu Linux și Unix, ce rulează aplicații cu sursă deschisă. Deși sistemul de operare pentru rutere de la Cisco (numit IOS) a fost creat de la 0 special pentru dispozitive de rețea, alte sisteme de operare pentru rutere, precum cele de la Juniper și Extreme Networks sunt variante extrem de customizate de Unix.

Informații generale


Avaya core router
Ruterele conțin în general un sistem de operare specializat (ca de exemplu IOS de la Cisco, Junos de la Juniper sau XOS de la Extreme Networks), RAM, NVRAM, memorie flash, unul sau mai multe procesoare, precum și cel puțin două interfețe de rețea.
Ruterele de vârf pot conține mai multe procesoare și ASICuri specializate în comutarea de pachete. Sistemele extensibile bazate pe șasiuri, cum ar fi Avaya ERS-8600, au mai multe ASICuri pe fiecare modul și permit o mare varietate de porturi pentru rețele locale sau metropolitane, precum și conexiuni personalizate. Pentru situațiile în care traficul este mai redus și costul este mai important sunt folosite rutere mai simple. Folosind un software specializat (precum Untangle, SmoothWall, XORP sau Quagga), orice calculator personal poate deveni un ruter (poate oferi funcționalitatea de ruter). Funcționare
Procesul de rutare are două părți distincte
  • Determinarea căii optime, în care ruterul folosește informațiile din tabela de rutare (inclusiv cele introduse de protocoalele de rutare) pentru a învăța interfața de ieșire cea mai potrivită pentru a trimite pachetele la o anumită destinație,
  • Comutarea pachetelor, care asigură trimiterea unui pachet primit pe o interfață (de intrare) pe interfața de ieșire optimă.

 Determinarea căii optime

Acestă parte a procesului de rutare duce la crearea unei tabele de rutare, care conține următoarele informații:
  • adresa rețelei și masca de rețea
  • adresa următorului ruter și/sau interfața de ieșire pentru destinația respectivă
  • metrica și distanța administrativă
Rețelele sunt plasate în tabela de rutare în ordinea descrescătoare a măștii de rețea (de la rețele mai mici la rețele mai mari), iar ruterul le parcurge liniar.
Metrica și distanța administrativă sunt cele două metode de diferențiere între diferitele rute către aceeași destinație. Distanța administrativă face diferența între diferitele tipuri de rute (statice, dinamice și direct conectate). Felul în care se calculează metrica diferă de la un protocol de rutare la altul, însă în general sunt incluse informații ca întârzierea, lărgimea de bandă, distanța, cantitatea de trafic. Metrica este relevantă doar pentru rute generate de același protocol de rutare, de aceea are o importanță mai mică decât distanța administrativă.
Pentru rutele dinamice, procesul de alegere a căii optime este următorul:
  1. Dacă rețeaua destinație nu există încă în tabela de rutare, aceasta este introdusă;
  2. Dacă rețeaua destinație este o subrețea a unei intrări din tabela de rutare, sunt comparate distanța administrativă și metrica:
    1. Dacă acestea sunt identice sau ruta existentă are o metrică mai bună, nu se efectuează nicio modificare;
    2. Dacă ruta nouă este mai bună, se introduce o nouă intrare în tabela de rutare, înaintea vechii intrări, astfel încât ruterul să folosească această rută;
  3. Dacă rețeaua există deja în tabela de rutare, iar noua rută este mai bună, intrarea este înlocuită.
Ruterele mențin starea rutelor în tabela de rutare, dar nu și starea pachetelor individuale, deoarece acest lucru ar însemna o întârziere a comutării. Mai mult, unele rutere folosesc pentru identificarea rapidă a interfețelor de ieșire o a doua tabelă, numită FIB (engleză forward information base). Această tabelă este optimizată pentru căutarea rapidă a interfețelor.

 Comutarea pachetelor

Comutarea pachetelor este funcția de bază a unui ruter. Pentru a o îndeplini corespunzător, ruterul trebuie să efectueze următoarele operații:
  • să examineze fiecare pachet sosit și să determine tipul acestuia precum și adresa destinație
  • să determine adresa următorului ruter (sau a destinației) către care respectivul pachet trebuie trimis, prin examinarea tabelei de rutare
  • să determine interfața pe care urmează să fie transmis pachetul
  • să determine adresa de nivel legătură de date a următorului ruter (sau a destinației)
  • să reîncapsuleze pachetului cu informațiile de nivel doi și trei corespunzătoare și să-l trimită pe interfața către destinație.
Crearea tabelei de rutare a fost descrisă în secțiunea anterioară. Dacă tabela nu conține interfața, ci doar adresa următorului ruter (next hop), este aleasă interfața aflată în aceeași rețea cu ruterul următor. Dacă adresa de nivel legătură de date a acestuia nu este prezentă în tabela ARP a interfeței, se face o cerere ARP pentru a o obține.
Înainte de a transmite pachetul, este decrementată valoarea câmpului TTL (time-to-live) din antetul IP, pentru a evita buclele de rutare.
Pentru forwardarea pachetelor IP, designul ruterelor încearcă să minimizeze infromațiile despre starea pachetelor păstrate de ruter. Odată ce un pachet a fost expediat, ruterul nu va mai reține niciun fel de informație despre acel pachet. Pachetele lipsă și corectarea erorilor sunt atributele nivelului transport.
Printre cele mai importante decizii care trebuie luate în cadrul procesului de comutare este cum se procedează în cazul congestiei (adică atunci când sosesc mai multe pachete decât poate procesa ruterul). În Internet sunt folosite trei politici pentru această situație: aruncarea pachetelor din coadă care depășesc dimensiunea memoriei tampon a ruterului (metodă cunoscută sub numele din engleză tail drop), aruncarea pachetelor pe baza probabilității de apariție a congestiei în ruter (engleză Random early detection) și aruncarea pachetelor pe baza probabilității de apariție a congestiei pe o legătură/protocol (engleză Weighted random early detection). Diferența dintre a doua și a treia metodă constă în faptul că funcția de probabilitate folosită și pragul de la care începe aruncarea pachetelor pot fi diferite în funcție de interfața de intrare sau de protocolul rutat.
                                                                                                                  Sursa Wikipedia

Niciun comentariu:

Trimiteți un comentariu