In prezent, comunicatia intre utilizatorii de calculatoare si aplicatiile lor a devenit o necesitate de nediscutat. Dar majoritatea retelelor de calculatoare reprezinta entitati independente, concepute sa serveasca necesitatile unui anumit grup de utilizatori, acestia alegand tehnologia hardware cea mai potrivita pentru rezolvarea problemelor lor de comunicatie. La prima vedere, realizarea unei unice retele de calculatoare pe tot Pamantul ar parea solutia ideala pentru a asigura o comunicare sigura si simpla intre toate calculatoarele din lume. Dar o astfel de retea universala, bazata pe o unica tehnologie hardware, este imposibil de construit, caci nici un tip de retea de calculatoare nu ar putea satisface toate necesitatile tuturor utilizatorilor. Astfel, anumiti utilizatori au nevoie de retele de mare viteza de transmisie intre masinile lor, dar astfel de retele nu pot fi extinse pentru a acoperi distante foarte mari; alti utilizatori accepta retele cu viteze de transmisie mai mici, dar care pot lega intre ele masini situate la mii de kilometri distanta una de alta.
De la inceputul anilor 1980 a aparut o noua tehnologie care a dat posibilitatea conectarii unor retele realizate fizic diferit, facandu-le sa functioneze ca o unitate coordonata. Aceasta tehnologie, numita interconectare [internetworking], permite adaptarea a numeroase si diferite tehnologii hardware, oferind o modalitate de interconectare a unor retele eterogene si stabilirea unei multimi coerente si nu prea numeroase de conventii de comunicare. Tehnologia interconectarii de retele - ce conduce la obtinerea de inter-retele (numite generic internet) - ascunde detaliile hardware ale retelelor interconectate si permite caculatoarelor sa comunice independent de conexiunile din reteaua fizica din care fac parte.
Tehnologia internet constituie un exemplu de interconectare in sistem deschis, intrucat, spre diferenta de sistemele de comunicatie brevetate, furnizate de o anumita firma, caracteristicile unui sistem deschis sunt disponibile public, oricine putand concepe un program necesar comunicatiei in acel sistem - in cazul de fata in internet. Si, ceea ce este mai important, intreaga tehnologie a fost conceputa pentru a asigura comunicatia intre masini cu diverse arhitecturi hardware, pentru a utiliza aproape oricare dispozitiv de comutatie de pachete si de a impaca multiplele sisteme de operare a calculatoarelor.
Principiile si ideile ce stau la baza tehnologiei internet au rezultat din cercetarile Agentiei pentru Proiecte de Cercetare Avansate - Advanced Research Projects Agency (ARPA). Aceasta tehnologie include un set de standarde ce precizeaza detaliile privind modul in care calculatoarele comunica, precum si un set de conventii pentru interconectarea retelelor si dirijarea traficului. Numita oficial suita de protocoale internet TCP/IP [TCP/IP Internet Protocol Suite] - dupa numele celor doua principale standarde ale sale -, aceasta tehnologie poate fi utilizata pentru a comunica in orice multime de retele interconectate. Astfel, unele intreprinderi utilizeaza TCP-IP pentru a interconecta toate retelele din intreprindere, chiar daca nici una din ele nu are conexiune cu vreo retea exterioara; alte grupuri utilizeaza TCP/IP pentru comunicatia intre utilizatori aflati la distante geografice foarte mari.
Tehnologia TCP/IP formeaza baza pentru o internet la scara globala ce conecteaza universitati, intreprinderi industriale si comerciale, institutii guvernamentale, locuinte personale, etc. Printre cei care au participat la fondarea si utilizarea unei inter-retele globale bazate pe protocoalele TCP/IP - inter-retea desemnata prin termenul de Internet - se numara National Science Foundation (NSF), Department of Energy (DOE), Department of Defense (DOD), Health and Human Services Agency (HHS) si National Aeronautics and Space Administration (NASA) - toate din S.U.A. Aceasta inter-retea globala mai este cunoscuta si sub denumirile de ARPA/NSF Internet, TCP/IP Internet sau Internet globala. Ea a demonstrat viabilitatea tehnologiei TCP/IP si faptul ca aceasta permite interconectarea de retele de calculatoare bazate pe tehnologii eterogene.
Structura unei internet, vazuta ca mai multe retele fizice interconectate prin intermediul unor rutere, creaza o imagine inselatoare a conceptului de internet, intrucat atentia cea mai mare trebuie indreptata catre interfata pe care o internet o ofera utilizatorilor si nu catre tehnologia de interconectare. Un utilizator considera o internet drept o unica retea virtuala ce interconecteaza toate calculatoarele si prin care este posibila comunicatia; structura aferenta este mascata, dar mei ales irelevanta. Intr-un anumit sens, o internet este o abstractizare a retelelor fizice, intrucat, la niuvelul ei cel mai de jos, ea furnizeaza aceleasi functiuni ca o retea fizica: accepta pachete si le trimite. Nivelurile superioare ale software-ului de internet sunt cele ce contribuie cel mai mult la functionalitatea bogata perceputa de utilizatori.
Ca si modelul de referinta OSI-ISO, modelul arhitectural (conceptual) al software-ului unei internet bazate pe protocoalele TCP/IP este organizat pe niveluri ierarhice.
Dar acest model nu a provenit de la vreun organism de standardizare, ci a rezultat din cercetarile care au condus la suita (stiva) de protocoale TCP/IP.
In linii mari, suita de protocoale TCP/IP este organizata pe niveluri conceptuale construite peste un nivel hardware. Fig. ce urmeaza prezinta arhitectura interretelelor bazate pe TCP-IP ca si unitatile de informatie vehiculate la fiecare nivel de protocolul aferent.
Nivelul conceptual |
Unitatea de informatie vehiculata |
Aplicatie |
mesaj sau flux de octeti |
Transport |
pachet |
Internet |
datagrama |
Interfata de retea (legatura de date) |
cadru |
Fizic(conexiunea hardware) |
sir de biti |
Ca si la modelul de referinta OSI-ISO, nivelurile arhitecturii TCP/IP au menirea sa ofere anumite servicii.
Nivelul de aplicatie Application layer] este nivelul cel mai de sus, prin care utilizatorii invoca programe de aplicatii care acceseaza serviciile disponibile intr-o internet bazata pe TCP/IP. O aplicatie interactioneaza cu unul din protocoalele de nivel de transport pentru a transmite si receptiona date. Fiece program de aplicatie alege modul de transport necesar - care poate fi o succesiune de mesaje individuale sau un flux continuu de octeti. Programul de aplicatie paseaza datele, in forma ceruta, nivelului de transport pentru a le livra.
Nivelul de transport Transport layer] are ca prima misiune sa asigure comunicatia intre un program de aplicatie si un altul - adica ceea ce se numeste o comunicatie sursa-destinatie. El poate avea si sarcina de a regla fluxul de informatii. De asemenea, el poate furniza un transport fiabil - in sensul ca datele sa ajunga la destinatie fara erori si in ordinea in care au fost emise (prin mecanismul - utilizat si in retelele fizice - de confirmare a receptiei corecte si retransmisie in caz contrar). Protocolul de transport divide fluxul de date ce trebuie transmis in unitati mici (pachete) pe care le transmite, impreuna cu adresa destinatiei, nivelului inferior in vederea transmiterii.
Nivelul internet [Internet layer] este cel care asigura comunicatia de la o masina la alta. El accepta din partea nivelului de transport, o cerere de a trimite un pachet, insotita de informatia de identificare a masinii ce reprezinta destinatia pachetului. Nivelul internet incapsuleaza pachetul intr-o datagrama IP, completeaza antetul datagramei, utilizeaza algoritmul de dirijare pentru a determina daca sa livreze datagrama direct sau sa o trimita unui ruter si paseaza datagrama interfetei de retea corespunzatoare pentru a fi transmisa. Tot nivelul internet este cel care trateaza datagramele care sosesc, verificandu-le validitatea, si utilizeaza algoritmul de dirijare pentru a decide daca datagrama trebuie prelucrata locau sau trebuie trimisa mai departe. Pentru datagramele adresate masinii locale, programul din nivelul internet inlatura antetul datagramei si selecteaza din protocoalele de transport disponibile pe cel care va manipula pachetul. In fine, nivelul internet trimite mesajele ICMP de eroare si de control, in functie de necesitati, si se ocupa de toate mesajele ICMP care sosesc.
Nivelul interfetei de retea [Network Interface layer] - numit si nivelul legaturii de date [Data Link layer] - este cel mai de jos nivel al suitei de protocoale TCP/IP raspunde de acceptarea datagramelor IP si trans-miterea lor printr-o anume retea particulara. Interfata de retea poate consta din un driver de dispozitiv - ca atunci cand reteaua respectiva este o LAN la care masina este atasata direct - sau un subsistem complex care foloseste propriul protocol de nivel de legatura de date - cand reteaua consta din comutatoare de pachete care comunica cu calculatoarele prin protocolul HDLC.
Comparatie intre modelul de referinta OSI-ISO pentru WAN si modelul TCP/IP pentru inter-retelele de calculatoare
Exista doua diferente - subtile, dar importante - intre modelul conceptual al arhitecturii TCP/IP si modelul de referinta OSI-ISO, diferente ce rezulta din modul in care sunt gandite solutiile privind asigurarea fiabilitatii si amplasarea "inteligentei" in intregul sistem.
< Fiabilitate la nivelul legaturii de date sau intre utilizatorii finali
O diferenta principala intre protocoalele TCP/IP si protocoalele OSI (implementate intr-o serie de retele, dintre care cea mai raspandita este reteaua publica de date X.25) consta in modul de abordare a problemei furnizarii unor servicii fiabile de transfer de date.
In modelul OSI, programele de protoocoale detecteaza si solutioneaza erorile la toate nivelurile. Astfel, la nivelul legaturii de date, protocoale complexe asigura transferul corect al cadrelor intre calculator si comutatorul de pachete cu care este conectat; o suma de control insoteste fiecare cadru transferat iar receptorul confirma fiecare cadru ajuns cu bine, utilizandu-se algoritmi de pauza de asteptare si de retransmisie care sa previna pierderea datelor si care sa permita recuperarea automata a datelor dupa o cadere a hardware-ului si o repornire a masinii. Si nivelul de retea efectueaza detectarea erorilor si recuperarea pachetelor transferate in retea, utilizand o suma de control si tehnici de pauza de asteptare si de retransmisie. In fine, nivelul de transport trebuie sa ofere fiabilitate intre utilizatorii finali, obligand sursa sa comunice cu destinatia finala pentru a verifica livrarea corecta a pachetelor.
In contrast cu aceasta conceptie, modelul arhitectural al TCP/IP isi bazeaza suita de protocoale pe ideea ca fiabilitatea este o problema intre utilizatorii finali. Cu alte cuvinte: se va realiza o internet care sa faca fata incarcarii prevazute dar care sa permita unor linii de legatura sau masini sa piarda sau sa altereze date, fara a incerca, in mod repetat, sa le recupereze. In fond, nu se asigura decat o mica fiabilitate sau deloc de catre programele nivelului de interfata de retea in majoritatea implementarilor TCP/IP. In schimb, nivelul de transport face fata majoritatii problemelor de detectare si corectare a erorilor - intre utilizatorii finali -, facand uz de sume de control, confirmari si pauze de asteptare.
Eliberarea nivelului de interfata de retea de sarcina verificarii corectitudinii transmiterii datelor face ca software-ul TCP/IP sa fie mai usor de inteles si de implementat. Ruterele intermediare pot elimina datagramele care au fost afectate de erorile de transmisie, cele pe care nu le pot livra sau cele care sosesc cu o frecventa mai mare decat capacitatea masinii de a le prelucra si trata; de asemenea, ele pot redirija datagramele pe trasee cu intarzieri mai mari sau mai mici fara a fi obligate sa informeze sursa sau destinatia despre aceasta.
Locul inteligentei si al deciziilor
O alta diferenta intre modelul TCP/IP si modelul OSI provine din alegerea locului unde se amplaseaza autoritatea si de unde se face conducerea.
Ca regula generala, retelele implementate dupa modelul OSI adera la ideea ca o retea de calculatoare este un mijloc care ofera servicii de transport de informatii. Furnizorul de servicii controleaza accesul in retea si monitorizeaza traficul, inregistrandu-l in vederea contorizarii si taxarii utilizatorilor. Producatorii de retele de calculatoare sunt cei care rezolva - intern - problemele precum: dirijarea, controlul fluxului si confirmarea. Acest punct de vedere nu lasa mare lucru de facut calculatoarelor. In concluzie, o retea (de calculatoare) este un sistem complex, independent si deschis, la care pot fi atasate calculatoare relativ simple, intrucat calculatoarele participa in foarte mica masura la functionarea retelei.
In opozitie cu acest concept, TCP/IP pretinde calculatoarelor sa participe la aproape toate protocoalele de retea. Am vazut mai sus cum calculatoarele implementeaza activ detectarea si corectarea erorilor intre utilizatorii finali. Ele participa, de asemenea, la rutare, intrucat trebuie sa aleaga un ruter atunci cand trimit o datagrama, si participa la controlul retelei, fiindca trebuie sa faca fata mesajelor ICMP de control. Asadar, prin comparatie cu modelul OSI, o internet TCP/IP poate fi privita ca un sistem relativ simplu de livrare de pachete la care se ataseaza calculatoare inteligente
Intr-o internet, calculatoarele intre care se transporta informatii se afla, cel mai adesea, in retele fizice diferite, interconectate prin rutere. Modelul arhitectural al TCP-IP, prezentat mai sus, se refera la calculatoare (gazda). Ruterele nu poseda decat nivelul internet si nivelul interfetei de retea. Circulatia informatiei, in cazul existentei unui ruter intermediar ce interconecteaza cele doua retele fizice in care se afla calculatoarele comunicante, este ilustrata in fig. ce urmeaza. Se constata imediat de ce numai protocoalele de la nivelurile de transport si de aplicatie pot fi considerate ca ofera servicii intre utilizatorii finali [end-to-end service].