|
La baza interconectarii retelelor intr-un internet sta un concept ce permite includerea tuturor tehnologiilor retelelor interconectate intr-un ansamblu coordonat. Scopul principal al acestui concept este acela de a ascunde detaliile de hardware ale diverselor retele, furnizand servicii de comunicatie universale. Ca rezultat se obtine o abstractizare de nivel superior ce ofera cadrul pentru toate deciziile privind proiectarea inter-retelei.
Proiectantii au folosit doua cai de abordare pentru a rezolva problema ascunderii detaliilor retelelor interconectate: utilizarea programelor de aplicatii pentru a face fata heterogenitatii si ascunderea detaliilor in sistemul de operare.
Primele interconectari de retele eterogene asigurau uniformitatea prin intermediul programelor de la nivelul de aplicatie. In astfel de sisteme, un program de la nivelul de aplicatie, executat pe fiecare masina din retea, intelegea detaliile conexiunilor retelei pentru acea masina si interopera cu programele de aplicatii prin acele conexiuni. De exemplu, un sistem de posta electronica consta din programe de posta care fac sa avanseze [forward] un mesaj, succesiv, de la o masina la alta. Traseul de la sursa pana la destinatie poate trece prin mai multe retele diferite, dar acest fapt nu conteaza atata timp cat sistemul de posta de pe toate masinile coopereaza in vederea trimiterii mai departe a fiecarui mesaj.
Utilizarea programelor de aplicatii in vederea ascunderii detaliilor retelelor pare naturala la prima vedere, dar o astfel de solutie conduce la o comunicatie limitata si greoaie. Adagarea de noi functii sistemului inseamna conceperea unui nou program de aplicatie pentru fiecare masina, iar adaugarea de noi dispozitive in retea inseamna modificarea sau crearea de noi programe pentru fiecare aplicatie posibila. Pe o masina data, fiecare program de aplicatie trebuie sa inteleaga conexiunile retelei pentru acea masina, ceea ce duce la multiplicarea instructiunilor programului.
Utilizatorii familiarizati cu problemele retelelor de calculatoare inteleg ca odata cu extinderea interconectarii la sute si mii de retele, nimeni nu mai poate concepe toate programele de aplicatii necesare. Mai mult, succesul schemei de comunicatie pas-cu-pas impune corectitudinea tuturor programelor de aplicatie executate de-a lungul traiectoriei. Daca un program de pe o masina intermediara functioneaza eronat, sursa si destinatia nu mai pot detecta sau remedia disfunctionalitatea. Prin urmare, sistemele care utilizeaza programe intermediare nu pot garanta o comunicatie fiabila
Alternativa la interconectarea pe baza de programe la nivelul de aplicatie o constituie interconectarea la nivel de retea. O interconectare la nivel de retea ofera un mecanism ce livreaza pachetele de la sursa originara la destinatia finala in timp real. Comutarea unor mici unitati de informatie in locul unor fisiere sau mesaje lungi prezinta o serie de avantaje. Mai intai, o astfel de schema se potriveste direct cu solutia hardware a retelei aferente, facand-o extrem de eficienta In al doilea rand, interconectarea la nivel de retea separa activitatile orientate pe comunicatia de date fata de programele de aplicatii, permitand calculatoarelor intermediare sa faca fata traficului din retea fara a necesita intelegerea aplicatiei din care provine. In al treilea rand, utilizarea conexiunilor de retea mentine flexibilitatea intregului sistem, facand posibila realizarea de programe utilitare de comunicatie de uz general. In al patrulea rand, o astfel de solutie permite administratorilor de retele sa adauge noi tehnologii de retea prin modificarea sau adaugarea unui singur nou program la nivelul de retea, lasand nemodificate programele de aplicatii.
Cheia proiectarii unei interconexiuni universale la nivelul de retea poate fi gasita in conceptul unui sitem abstract de comunicatie cunoscut sub denumirea de interconectare de retele. Conceptul de inter-retea (internet) este deosebit de puternic. El desparte notiunea de comunicatie de detaliile tehnologice ale retelelor si ascunde detaliile de la nivelurile inferioare pentru utilizator. Si, ceea ce este si mai important, dirijeaza toate deciziile de proiectare de programe si explica modul cum trebuie tratate adresele fizice si traseele.
Vom semnala de la inceput doua conditii fundamentale care trebuie sa stea la baza proiectarii sistemelor de comunicatie:
nici un hardware de retea nu poate satisface toate restrictiile;
utilizatorii doresc o interconectare universala
Prima conditie este de ordin tehnic. Retelele locale (LAN) care ofera cele mai mari viteze de comunicatie sunt limitate ca intindere geografica, iar retelele mari (WAN) acopera distante mari dar nu pot oferi conexiuni de mare viteza. Nu exista o tehnologie unica de retea care sa satisfaca toate necesitatile, asa incat suntem obligati sa luam in consideratie mai multe tehnologii hardware de retele.
Cea de a doua conditie este evidenta. Suprema doleanta este aceea de a putea sa asiguram o comunicatie intre oricare doua locuri. In particular, dorim un sistem de comunicatie care sa nu fie restrans la granitele retelelor fizice.
Scopul este acela de a construi o interconectare de retele unificata, cooperanta, care sa suporte un serviciu universal de comunicatie. In fiecare dintre retele, calculatoarele vor utiliza facilitatile de comunicatie aferente, dependente de tehnologia de realizare a retelei. Noile programe, inserate intre mecanismele de comunicatie dependente de tehnologie si programele de aplicatie, vor masca detaliile de la nivelurile inferioare si vor face ca multimea de retele sa apara ca o unica retea mare. Doar o astfel de solutie de interconectare de retele de calculatoare va fi desemnata prin termenul de inter-retea (sau internet).
Conceptia realizarii unei internet urmareste tiparul standard de proiectare a sistemelor: cercetatorii schiteaza facilitatile de calcul de la nivelul superior si apoi folosesc tehnologiile de calcul disponibile, adaugand dedesubt niveluri de programe pana cand obtin un sistem care sa implementeze eficient facilitatile imaginate la nivelul superior.
Notiunea de serviciu universal este importanta, dar ea insasi nu contine particularitatile avute in vedere pentru o internet unificata, caci pot exista numeroase implementari ale unor servicii universale. Ideea centrala a internet este mascarea structurii si arhitecturii aferente pentru utilizator. Mai exact, nu trebuie ca utilizatorii (programele lor de aplicatii) sa inteleaga detaliile hardware ale interconexiunilor pentru a utiliza inter-reteaua. De asemenea, nu trebuie sa devina obligatorie o anumita topologie de interconectare. In particular, adaugarea unei noi retele la internet nu trebuie sa insemne conectarea ei la un punct central de comutare si nici adaugarea unei conexiuni fizice directe intre noua retea si cea existenta. Inter-reteaua trebuie sa fie capabila sa trimita date prin retele intermediare chiar daca ele nu sunt conectate direct cu masinile sursa si destinatie. Trebuie ca toate masinile din internet sa utilizeze in comun o multime universala de identificatori pentru masini, ce pot fi priviti ca nume sau adrese.
Conceptul de internet unitara include, de asemenea, si ideea independentei retelei in raport cu interfata utilizatorului, adica multimea de operatiuni utilizate pentru a stabili o comunicatie sau a transfera date sa ramana independenta de tehnologiile retelelor constituente si de masina destinatie. Evident, un utilizator nu trebuie sa inteleaga topologia de interconectare atunci cand scrie programe de aplicatii care comunica intre ele.
O problema esentiala este cea privind modul de interconectare al unor retele pentru a forma o inter-retea. Solutia are doua parti. Din punct de vedre fizic, doua retele pot fi interconectate doar printr-un calculator atasat la amandoua retelele. Dar o atasare fizica nu asigura efectiv interconexiunea, caci o asemena conexiune nu ne garanteaza ca acel calculator va coopera cu alte masini care vor sa comunice. Pentru a obtine o internet viabila este nevoie de calculatoare care sa fie capabile sa transporte pachetele dintr-o retea in cealalta. Calculatoarele care interconecteaza doua retele si fac sa treaca pachetele dintr-o retea in cealalta se numesc rutere (de internet) [(internet) router] .
Fig. ce urmeaza prezinta cazul a doua retele fizice interconectate prin intermediul ruterului R. Pentru ca acest calculator sa actioneze ca un ruter, el trebuie sa poata capta pachetele din reteaua 1 si sa le trimita masinilor din reteaua 2, respectiv sa poata capta pachetele din reteaua 2 si sa le transfere masinilor din reteaua 1. Retelele fizice au fost reprezentate prin "nori" pentru a evidentia faptul ca structura lor hardware exacta nu este importanta; fiecare dn cele doua retele reprezentate poate fi o LAN sau WAN, cu mai multe sau mai putine calculatoare atasate.
Pe masura ce conexiunile din internet au devenit
mai complexe, ruterele au necesitat cunoasterea
topologiei internet dincolo de retelele cu
care ele se conectau. Astfel, de exemplu (vezi fig. ce urmeaza), pentru trei retele interconectate prin intermediul a
doua rutere,
ruterul R1 trebuie sa transfere din reteaua 1 in reteaua 2 toate pachetele destinate masinilor atat din reteaua 2 cat si din reteaua 3. Pentru o mare internet, compusa din multe retele, sarcina ruterelor de a lua decizii
unde sa trimita pachetele devine si mai complexa
Ideea unui ruter pare simpla, dar ea este importanta intrucat ea ofera o modalitate de interconectare a retelelor, nu doar a masinilor. Principiul interconectarii intr-o internet este urmatorul: calculatoarele avand rol de rutere asigura toate interconexiunile dintre retelele fizice
In pofida a ceea ce ne-am astepta, ruterele - care trebuie sa stie cum sa dirijeze pachetele catre destinatia lor - nu sunt masini mari, cu o suficienta memorie primara sau secundara pentru a memora infrmatia despre fiecare masina din internet cu care este atasat. Ruterele care utilizeaza tehnica TCP/IP sunt, de regula, masini mici, cu hard-disc de mici dimensiuni sau fara si cu o memorie principala limitata. Motivatia rezida in urmatorul concept: ruterele folosesc reteaua destinatie, nu masina destinatie, cand dirijeaza un pachet. Asadar, cantitatea de informatie pe care un ruter trebuie sa o detina este proportionala cu numarul de retele din internet, nu cu numarul de masini.
Intrucat, dupa cum am mentionat, TCP/IP este conceput sa ofere o interconexiune universala intre masini, indiferent de particularitatile retelelor la care sunt atasate, utilizatorul vede o internet ca pe
o unica retea virtuala la care sunt conectate toate masinile, indiferent de conexiunile lor
fizice. Fig. (a) ce urmeaza ilustreaza ceea ce
percepe utilizatorul iar fig. (b) exemplifica structura retelelor fizice si a ruterelor ce asigura interconectarea. Aceasta viziune a utilizatorului simplifica detaliile si face usoara conceptualizarea comunicatiei. Fireste, in plus fata de ruterele ce interconecteaza retelele fizice, este necesar un program,
pe fiece calculator, care sa permita programelor de aplicatii sa utilizeze inter-reteaua ca si cum ar fi o unica retea
fizica, reala
Avantajul asigurarii interconectarii la nivelul de retea devine acum evident. Intrucat programele de aplicatii ce comunica prin intermediul internet nu cunosc detaliile conexiunilor aferente, ele pot fi rulate, fara a fi modificate, pe orice masina. Deoarece detaliile conexiunilor cu diverse retele fizice ale fiecarei masini sunt ascunse in programele pentru internet, doar aceste programe trebuie schimbate cand apar noi conexiuni sau dispar unele conexiuni mai vechi. Intr-adevar, este posibil sa se optimizeze structura interna a internet prin modificarea conexiunilor fizice fara ca macar sa se recompileze programele de aplicatii.
Un al doilea avantaj al asigurarii comunicarii la nivelul de retea este ceva mai subtil: utilizatorii nu trebuie sa inteleaga sau sa si aminteasca cum se conecteaza retelele sau ce trafic poarta ele. Programele de aplicatii pot fi scrise astfel incat sa comunice indiferent de conectivitatea fizica corespunzatoare. Intr-adevar, administratorii de retele sunt liberi sa modifice parti interioare ale arhitecturii internet aferente fara a fi nevoiti sa modifice programele de aplicatii in majoritatea calculatoarelor atasate la internet (fireste, programul de retea trebuie reconfigurat cand un calculator se muta intr-o alta retea).
Dupa cum se vede in fig (b) de mai sus, ruterele nu asigura conexiuni directe intre toate perechile de retele. Este posibil ca traficul circuland de la o masina la alta sa traverseze mai multe retele intermediare. Asadar, fiecare retea este de acord sa manipuleze traficul in tranzit in schimbul dreptului de a trimite trafic in internet. De regula, utilizatorii nu sunt afectati si nici macar nu au cunostinta de traficul suplimentar prin reteaua lor locala
Dupa cum am vazut, internet pe baza de TCP/IP este o colectie de retele interconectate, cooperante. In ea se aplica urmatorul concept fundamental: din punctul de vedere al internet, orice sistem de comunicatie capabil sa transfere pachete conteaza ca o singura retea, indiferent de caracteristicile ei de intarziere si capacitate de transmisie, dimensiunea maxima suportata pentru pachete sau extinderea sa geografica. Tocmai de aceea, in fig. (b) de mai sus am reprezentat printr-un "norisor" toate retelele fizice, indicand faptul ca TCP/IP le trateaza pe toate ca fiind egale, in piofida diferentelor dintre ele. Aceasta fiindca TCP/IP defineste o "retea" abstracta ce ascunde detaliile retelelor fizice. Astfel de abstractii confera TCP/IP capacitatea deosebita de a rezolva eficient interconectarea retelelor.