Notiuni de baza despre rutare.
Sistemul Internet este format dintr-un numar de retele interconectate care suporta comunicatii între calculatoare folosind un set de protocoale Internet. Aceste protocoale includ Internet Protocol (IP), Internet Control Messages Protocol (ICMP), Internet Grup Management Protocol (IGMP), si o varietate de protocoale de nivel aplicatie si transport ce depind de acestea.
Toate protocoalele Internet folosesc IP ca mecanism de baza pentru transportul datelor. IP este un protocol de comunicatie de tip datagrama sau care nu se bazeaza pe conexiune si include facilitati pentru adresare, specificatii despre tipul serviciului, fragmentarea si reasamblarea pachetelor si securitate. ICMP si IGMP sunt considerate ca fiind parti integrante ale IP, de altfel ele sunt arhitectural, nivele peste IP. ICMP furnizeaza rapoarte privind erorile de transmisie, controlul fluxului, primul gateway si alte functii privind mentenanta si controlul comunicatiei. IGMP furnizeaza mecanisme prin care host-urile si router-ele se alatura si parasesc un grup multicast.
Siguranta transferurilor de date este data în Internet de protocoalele nivelului transport si anume de Transmission Control Protocol (TCP), care furnizeaza retransmisia între sursa si destinatie, resegmentarea si controlul conexiunii. Serviciile care nu se bazeaza pe conexiune de nivel transport sunt oferite de User Datagram Protocol (UDP).
Figura 1.1 Suita de protocoale Internet acoper& 737t1913h #259; toate nivelele modelului OSI.
Protocoalele Internet au fost dezvoltate la mijlocul anilor 1970, când DARPA (Defense Advanced Research Projects Agency) a devenit interasata de realizarea unei retele cu comutarea pachetelor care ar fi facilitat comunicatia între diverse sisteme informatice ale institutiilor de cercetare. Având în minte scopul unei conectivitati heterogene, DARPA a finantat cercetarea Universitatii Stanford si a companiei BBN (Bolt, Beranek si Newman). Rezultatul acestui efort de cercetare a fost suita de protocoale Internet, completata la sfârsitul anilor 1970.
TCP/IP a fost inclus mai târziu cu Berkeley Software Distribution (BSD) UNIX si a devenit apoi fundamentul pe care se bazeaza Internetul si World Wide Web (WWW).
Documentatia despre protocoalele Internet (incluzând protocoalele noi sau revizuite) si politici este specificata în raportul tehnic numit Request For Comments (RFCs), ce a fost publicat si apoi revizuit de comunitatea Internet. Protocolul revizuit a fost publicat din nou în RFCs. Pentru a ilustra scopul protocoalelor Internet, Figura 1.1 reprezinta o schema a protocoalelor din suita protocolului Internet si nivelele corespunzatoare lor din modelul OSI.
Protocolul Internet.
Protocolul Internet se afla la baza comunicatiei în Internet. Functiile sale includ:
definirea de datagrame, care sunt unitatea de baza a transmisiei în Internet;
definirea schemei de adresare în Internet;
transmiterea datelor între nivelul Network Access si nivelul Transport;
rutarea datagramelor catre host-ul aflat la distanta;
realizarea fragmentarii si reasamblarii datagramelor.
Înainte de descrierea în detaliu a acestor functii, sa analizam câteva caracteristici ale IP. Întâi, IP este un protocol care nu se bazeaza pe conexiune. Acest lucru înseamna ca IP nu schimba informatii de control ("handshake") pentru a stabili o conexiune între sursa si destinatie înaintea transmiterii de date. În contrast, un protocol orientat pe conexiune schimba informatii de control cu sistemul aflat la distanta pentru a verifica daca este gata sa primeasca date înainte de a transmite vreuna. Când conexiunea (prin ("handshake") este realizata, sistemul spune ca a stabilit conexiunea. Protocolul Internet se bazeaza pe protocoale ale altor nivele pentru stabilirea conexiunii daca acestea necesita servicii orientate pe conexiune.
De asemenea, IP se bazeaza pe protocoale ale altor nivele pentru detectarea si corectarea erorilor. IP este uneori numit un protocol incert pentru ca nu contine coduri de detectare si corectare a erorilor. Asta nu înseamna ca acest protocol nu poate fi considerat sigur. Putem conta pe faptul ca IP poate transmite în siguranta datele într-o retea, dar nu va verifica daca datele au fost corect receptionate. Protocoalele altor nivele ale arhitecturii TCP/IP furnizeaza aceasta verificare atunci când este ceruta.
Datagrama
Protocoalele TCP/IP au fost dezvoltate pentru a transmite date în reteaua ARPANET, care este o retea cu comutarea pachetelor. Un pachet este un bloc de date care contine si informatiile necesare pentru livrare - într-o maniera asemanatoare cu scrisoarea postala, care are adresa scrisa pe plic. O retea cu comutarea pachetelor foloseste informatia continuta în pachete privind adresa, pentru a comuta pachetele de pe un nivel fizic pe altul, transmitându-le apoi mai departe spre destinatia finala. Fiecare pachet strabate reteaua independent de oricare alt pachet.
Datagrama este un format de pachet definit de Protocolul Internet. Figura 1.2 reprezinta o datagrama IP. Primele 5 sau 6 cuvinte de 32 biti ai datagramei reprezinta informatii de control si se numesc header. Implicit, header-ul are o lungime de 5 cuvinte, al 6-lea fiind optional. Din cauza ca lungimea header-ului poate fi variabila se include un câmp numit IHL (Internet Header Length - lungimea header-ului internet) care indica lungimea exacta a acestuia. Header-ul contine toate informatiile necesare livrarii pachetului.
Protocolul Internet livreaza datagrama verificând adresa destinatie din al 5-lea cuv al header-ului. Adresa destinatie este o adresa IP v4 standard de 32 de biti care identifica reteaua destinatie si host-ul respectiv.
Daca adresa destinatie este adresa unui host din reteaua locala, pachetul este livrat direct destinatiei. Daca adresa destinatie nu face parte din reteaua locala, pachetul este trimis la un gateway pentru a fi livrat. Gateway-urile sunt dispozitive care comuta pachete între diferite retele fizice. Decizia privind ce gateway se va folosi se numeste rutare. Router-ele (gateway-urile) iau decizii de rutare pentru fiecare pachet individual ce trebuie transmis.
Figura 1.2 Formatul unei datagrame IP
1.1.2 Rutarea datagramelor
În modelul Internet, retelele constituente sunt interconectate prin echipamente specifice numite router-e sau IP router-e. Istoric, router-ele au fost initial realizate cu soft-uri de comutare a pachetelor ce rulau pe echipamente nespecializate. Deoarece, în timp, implementarea de hardware a devenit mai ieftina, iar cerintele privind performantele au crescut, router-ele au fost implementate sub forma unor echipamente specializate.
Gateway-urile în Internet sunt de obicei (si probabil mai corect) referite ca router-e IP deoarece folosesc Protocolul Internet pentru rutarea pachetelor între retele. În jargonul traditional TCP/IP, exista numai 2 tipuri de dispozitive de retea: gateway-uri si host-uri. Gateway-urile expediaza pachetele între retele si host-urile nu. Oricum, daca un host este conectat cu mai mult de o retea (si se numeste multi-homed host), el poate expedia pachete între retele. Când un host multi-home expediaza pachete, el se comporta ca orice gateway si este considerat a fi gateway. Terminologia actuala a comunicatiilor de date face distinctie între gateway si router, dar noi vom folosi termenii de gateway si router IP unul în locul altuia. În terminologia actuala, un gateway transmite date între diferite protocoale si un router transmite date între diferite retele ce utilizeaza acelasi protocol.
Figura 1.3 prezinta modul în care este folosit un gateway pentru a expedia pachete. Host-urile prelucreaza pachetele de-a lungul celor 4 nivele, în timp ce gateway-ul (sau sistemul intremediar) proceseaza pachetele numai pâna la nivelul Internet unde se ia decizia de rutare.
Figura 1.3 Rutarea prin gateway-uri
Sistemele pot numai sa livreze pachetele altor dispozitive atasate în aceeasi retea fizica. Pachetele de la A1 destinate hostului C1 sunt expediate prin gateway-urile G1 si G2. Hostul A1 mai întâi livreaza pachetele spre gateway-ul G1, prin reteaua A la care ambele sunt conectate. Gateway-ul G1 livreaza pachetul la G2 prin reteaua B. Gateway-ul G2 livreaza apoi pachetul direct hostului C1 deoarece ambele fac parte din aceeasi retea C. Hostul A1 nu cunoaste nimic în afara de gateway-ul G1. El trimite pachetele destinate retelelor B sau C catre acelasi gateway local, si apoi devine sarcina gateway-ului sa expedieze corect pachetele catre destinatia lor. Tot asa, hostul C1 va trimite pachetele sale catre G2, în scopul de a ajunge la un host din reateaua A, sau din reteaua B.
ICMP
ICMP este considerat adesea ca facând parte din nivelul IP. El furnizeaza mesaje de eroare si alte informatii necesare pentru controlul comunicatiei. Mesajele ICMP sunt generate de unul din nivelele IP sau de protocoale de la nivele mai înalte (TCP sau UDP). Unele mesaje ICMP furnizeaza erori ce sunt returnate proceselor utilizatorului.
Mesajele ICMP sunt transmise în cadrul datagramelor IP, asa cum se vede si în figura 1.4
Figura 1.4 Mesaj ICMP încapsulat în datagrama IP
Este nevoie sa facem aceasta diferenta deoarece, uneori, mesajele de eroare ICMP sunt tratate special. De exemplu, un mesaj de eroare ICMP nu va fi generat niciodata ca raspuns la un alt mesaj de eroare ICMP. (Daca acest lucru nu ar fi o regula, ar putea exista scenarii în care o eroare genereaza alta eroare, care genereaza alta si asa mai departe, indefinit).
Când un mesaj de eroare ICMP este transmis, el contine totdeauna headerul IP si primii 8 octeti ai datagramei IP care l-a cauzat. Acest lucru permite modulului ICMP receptor sa asocieze mesajul cu un protocol particular (TCP sau UDP specificat în câmpul de protocol din headerul IP) si cu un anume proces al userului (rezultat din numerele de port TCP sau UDP care sunt continute în primii 8 octeti ai headerului datagramei IP).
Cererea ICMP de tip "timestamp" permite unui sistem sa interogheze un alt sistem în ceea ce priveste timpul curent. Valoarea recomandata pentru a fi returnata este un numar de ordinul milisecundelor de la ora zero UTC (Coordinated Universal Time). (În literatura mai veche UCT este denumit Greenwich Mean Time - GMT). O proprietate importanta a mesajului ICMP este aceea ca furnizeaza o rezolutie la nivel de milisecunda, în timp ce alte metode pentru obtinerea timpului curent de la un host (cum ar fi comada rdate furnizata de unele sisteme Unix) furnizeaza o rezolutie de ordinul secundelor. Inconvenientul acestei metode este faptul ca se poate afla numai intervalul de timp între ora curenta si ora zero, urmând ca data curenta sa fie aflata prin alte mijloace.
1.3 Rutere
Rutarea consta în transmiterea informatiei printr-o retea de la o sursa catre o destinatie. De-a lungul caii parcurse, este întâlnit cel putin un nod intermediar. Rutarea este adesea în contrast cu functia de bridge care aparent realizeaza acelasi lucru. Diferenta principala între cele 2 este aceea ca "bridging" (switching) are loc în cadrul nivelului 2 (Data link layer) al modelului de referinta OSI, în timp ce rutarea are loc la nivelul 3 (network layer). Aceasta diferenta consta în utilizarea de informatie diferita pentru rutare si respectiv bridging, informatie necesara în procesul transmiterii pachetelor de la sursa la destinatie, deci aceste 2 functii îsi îndeplinesc rolurile în moduri diferite.
Un router dispune de 2 sau mai multe interfete de comunicatie(figura 1.5), conectate la subretele IP sau la linii de tip punct-la-punct. Cu toate acestea, exista cel putin o interfata fizica. Expedierea unei datagrame IP necesita în general ca un router sa aleaga interfata si adresa router-ului urmator (next-hop) sau (în cazul ultimului router de pe traseu), host-ul destinatie. Aceasta alegere, (numita "relaying") se face în functie de o baza de date care se afla pe router continând rute. Aceasta baza de date se mai numeste si tabela de rutare. Temenul de "router" deriva din modul în care se construieste aceasta baza de date continând rute (cai); protocoalele de rutare si configurare interactionaeza în cadrul unui proces numit rutare.
Figura 1.5 Interconectarea a 2 retele printr-un router
Baza de date continând rute trebuie sa fie dinamica pentru a reflecta topologia curenta a sistemului de retele interconectate. În mod normal, un router îndeplineste acest lucru prin interactiune cu alte routere pe baza unor algoritmi de rutare.
Ruterele furnizeaza numai transportul de datagrame, si cauta sa reduca la minim informatia de stare necesara efectuarii acestui serviciu, avînd ca scop flexibilitatea si robustetea rutarii.
Un sistem autonom (AS) este retea ce consta dintr-o colectie de subretele (avînd atasate host-uri) interconectate printr-un set de routere. E de preferat ca subretelele si routerele sa fie sub controlul unei singure organizatii ce realizeaza operarea si administrarea. Într-un sistem autonom, routerele pot folosi unul sau mai multe protocoale de rutare interna, si câteodata câteva seturi de metrici. Este de asteptat ca un sistem autonom sa dispuna de un plan de rutare interioara coerent. Un sistem autonom este identificat cu un numar de sistem autonom.
|