Sunteți pe pagina 1din 5

TCP/IP - implementare a modelului ISO-OSI

Dup cum am spus i n articolul anterior: un internet (cu i mic) este o reea de reele. Cel mai cunoscut internet este Internet-ul (cu I mare). Pentru a realiza comunicarea n Internet se folosete suita de protocoale TCP/IP, prezentate, n numrul din iulie 1999, al revistei e-mail REPORT la rubrica Internet. Modelul ISO/OSI reprezint un model ideal de reea. n realitate implementrile reelelor respect ntr-o mai mare sau mai mic msur specificaiile acestui model. Suita TCP/IP folosete doar cinci dintre nivelurile ISO/OSI. S facem o scurt descriere a nivelurilor TCP/IP i a protocoalelor care le deservesc. 1. Nivelul fizic Este identic cu nivelul fizic din modelul ISO/OSI, fiind compus din mediile de transmisie: cabluri, fibr optic, legturi radio, legturi laser, infrarou, etc. Acum civa ani Internetul era mai mult text, n prezent este text i grafic, iar n viitor va fi ct mai mult multimedia (sunet i film). Asta nseamn c nevoia de lrgime de band a crescut i va crete continuu, cutnd noi soluii pentru mediile de transmisie. Majoritatea reelelor locale sunt realizate n conformitate cu normele elaborate de dou instituii: IEEE (Institute of Electrical and Electronics Engineers) i ANSI (American National Standards Institute). n acest sens au fost standardizate normele IEEE 802 care definesc, n principal, modul de utilizare a suportului de comunicaie, ocupndu-se de modul de interconectarea diferitelor dispozitive: calculatoare, terminale, imprimante, plottere, telecopiatoare, echipamente de legtur cu alte reele, etc. Reeaua de tip Ethernet (soluie adoptat de marea majoritate a reelelor locale) are ca protocol de acces CSMA (Carrier Sense Multiple Access) descris n standardul IEEE 802.3 2. Nivelul legtur de date Controleaz schimburile de date ntre nivelul fizic i nivelul reea, comunicnd direct cu modulul IP de pe nivelul reea. Cu alte cuvinte, nivelul legtur, "ascunde" nivelului reea detaliile de implementare ale nivelului fizic (chiar dac se folosete tehnologia Ethernet sau Token Ring). O aplicaie scris, folosind protocoalele TCP/IP va putea fi utilizat indiferent de tehnologia care st la baza construciei reelei. Acest nivel este reprezentat de placa de reea. Pe acest nivel se afl protocoalele ARP i RARP. Protocolul ARP (Address Resolution Protocol) realizeaz translatarea adreselor IP n adrese ale nivelului legtur de date (la reele Ethernet au o dimensiune de 6 octei). RARP (Reverse Address Resolution

Protocol) este o variant a protocolului ARP ce face conversia unei adrese a nivelului legtur de date n adres IP. Tot pe acest nivel se afl i o serie de protocoale utilizate pentru comunicaia dintre dou calculatoare pe linia telefonic standard. n acest caz se utilizeaz un modem iar comunicaia se realizeaz pe portul serial al calculatorului i nu pe placa de reea. Putem aminti protocoalele: SLIP - Serial Line IP, CSLIP - Compressed SLIP, PPP - Point-to-Point Protocol. 3. Nivelul reea Este reprezentat, n principal, de protocolul IP, un protocol fr conexiune (vezi articolul anterior). Pachetele IP se mai numesc i datagrame. Se spune ca IP asigur o transmisie nefiabil a pachetelor de date. S vedem de ce este caracterizat IP a fi un protocol nefiabil. IP consider fiecare pachet ca o entitate independent, fr legtur cu alte pachete. Orice asociere ntre pachetele IP trebuie s fie tratat de nivelele superioare. Fiecare datagram conine att adresa calculatorului surs ct i adresa calculatorului destinaie, astfel nct ea poate fi transmis i rutat independent de celelalte. IP este nefiabil pentru c nu garanteaz ajungerea la destinaie a datagramelor i nici dac coninutul lor este corect. Nivelul IP verific, totui, o sum de control a propriilor antete (20 de bytes). Dac un antet IP nu este corespunztor, ntregul pachet este anulat i nu mai este transmis nivelului superior, nivel care verific toate datele coninute de datagram. Nivelul IP este responsabil cu rutarea pachetelor n Internet i cu o posibil fragmentare a datelor. Fragmentarea unui pachet este fcut de un Gateway, atunci cnd pachetul este prea mare pentru a parcurge n continuare reeaua (depete valoarea MTU a reelei). Fragmentele rezultate sunt transmise n continuare ca pachete IP independente i sunt reasamblate la destinaie, formnd datagrama iniial. Dac unul dintre fragmente este eronat sau pierdut se anuleaz ntreaga datagram. Pe motiv c IP nu garanteaz livrarea pachetelor de reea i nici nu realizeaz semnalizarea eecului atunci cnd se pierd sau altereaz pachetele de date, s-a elaborat protocolul : ICMP (Internet Control Message Protocol). Chiar dac este considerat un protocol pe nivelul reea, utilizeaz tot IP pentru livrarea datelor. Pe acest nivel se afl i IGMP (Internet Group Management Protocol - protocol de gestiune a grupurilor di Internet). i acesta se bazeaz pe IP pentru a transmite mesaje n reea. 4. Nivelul transport Acest nivel este deservit, n principal de dou protocoale: UDP i TCP. UDP este considerat tot un protocol nefiabil i tot din aceleai motive. Pachetele UDP sunt denumite tot datagrame. Este recomandat folosirea acestui protocol n reele LAN.

Atunci cnd se utilizeaz UDP n reele WAN este necesar ca aplicaiile s-i asigure propriile mecanisme de control. La prima vedere nu exist diferene foarte clare ntre nivelul reea i cel de transport respectiv ntre protocoalele IP i TCP (UDP). La o analiz mai atent descoperim c IP se ocup cu distribuirea datelor ntre calculatoarele reelei, pe cnd TCP distribuie datele ntre aplicaii. S presupunem c un calculator (vom folosi, n continuare, i termenul de host pentru a desemna un calculator aparinnd unei reele) legat ntr-o reea stabilete o conexiune cu un alt host. Practic, n prima faz, o aplicaie de pe primul calculator, adreseaz o cerere de comunicaie cu o alt aplicaie, de pe cel de-al doilea. Acum intr n aciune protocolul IP care stabilete legtura ntre cele dou calculatoare. Cum, n ultimul timp, sistemele de operare rulate pe calculatoare sunt multitasking, ne punem ntrebarea: cum tie cel de-al doilea host s livreze pachetele de date aplicaiei cerute de primul calculator. Din acest considerent s-a introdus noiunea de port. Oricrei aplicaii, care are capacitatea de a lucra n reea, i este asignat un numr de port. n comunicaia dintre dou aplicaii, de pe hosturi diferire, protocolul IP are sarcina s memoreze adresele IP ale celor dou calculatoare, pe cnd protocolul de transport (TCP sau UDP) trebuie s rein numerele porturilor surs i destinaie. n Internet, fiecrui protocol i este asociat un numr de port. Prezentm mai jos cele mai cunoscute protocoale i numrul portului pe care acestea comunic ntre ele. File Transfer Protocol Telnet Protocol Simple Mail Transfer Protocol Trivial File Transfer Protocol Finger Protocol HyperText Transfer Protocol Tabelul 1. Protocoale Internet i porturi 21 23 25 69 79 80

Protocoalele TCP i UDP utilizeaz porturile n mod diferit. UDP fiind un protocol fr conexiune, las pur i simplu datele pe port. n schimb TCP se concentreaz pe conexiune - nu pe port. Prin urmare, aplicaiile care folosesc TCP pot s deschid pe acelai port mai multe conexiuni fr s apar probleme de transmisie. TCP este considerat un protocol fiabil, asigurnd integritatea datelor transmise. Utiliznd acest protocol, programatorul, nu trebuie s se mai ocupe de aspecte de corectitudine a transmisiei pachetelor, lucru asigurat de protocolul nsui. Din acest motiv scade, ntr-o oarecare msur, viteza de transfer. TCP are urmtoarele caracteristici principale:

Transfer de date n flux continuu - datele circul n acelai timp, n ambele sensuri ale conexiunii. Spunem c TCP este o conexiune duplex. Sigurana transmisiei - recupereaz pachetele transmise cu erori, pierdute sau cu numr de secven eronat. Aceast caracteristic este asigurat prin stabilirea unui numr de secven fiecrui octet transmis i necesitatea unui mesaj de confirmare (ACK) din partea receptorului. Dac, dup un anumit interval de timp, expeditorul nu primete un mesaj de confirmare, pachetul este considerat pierdut i este retransmis. Controlul fluxului de date - n fiecare mesaj ACK, trimis de receptor, este coninut o "fereastr" care indic numrul permis de octei pe care emitorul i poate transmite. n urma unui astfel de mesaj, emitorul i va dimensiona pachetele transmise la lungimea indicat de receptor. Aceast lungime este valabil pn la recepionarea urmtorului mesaj ACK, care conine o alt "fereastr". Multiplexarea - permite mai multor procese, care ruleaz pe acelai host, s utilizeze facilitile protocolului TCP simultan. Controlul conexiunii - n transferul de date dintre dou procese putem distinge trei etape: stabilirea conexiunii, controlul conexiunii, nchiderea conexiunii. Controlul conexiunii presupune: stabilirea numrului de secven i a dimensiunii ferestrei, pentru fiecare pachet TCP. Prezentm mai jos un tabel sumar, care prezint comparativ facilitile oferite de cele trei protocoale IP, UDP, TCP. IP Orientare pe conexiune Limitarea lungimii mesajului Checksum la date Rspuns la validare Timeout i retransmitere Detectarea pachetelor duplicate Secveniere Controlul fluxului de date nu da nu nu nu nu nu nu UDP nu da da nu nu nu nu nu TCP da nu da da da da da da

5. Nivelul aplicaie n suita de protocoale TCP/IP acest nivel nglobeaz nivelele: sesiune (5), prezentare (6), aplicaie (7), din modelul ISO/OSI. Din acest motiv se mai numete i nivel proces. Pe acest nivel se utilizeaz, ca mijloc de comunicaie ntre procese, mecanismul socket. n prezent aproape toate sistemele de operare au implementat acest mecanism. Asta nu nseamn ca este singura soluie pentru programarea n reea. Un concurent este TLI (Transport Lazer Interface) aprut n jurul anului 1985 cu sistemul de operare UNIX SYSTEM V. Un alt mecanism de programare n reea este RPC (Remote Procedure Call) vzut ca o extensie a soluiei socket. Un programator de aplicaii, care va concepe programe n reea, se va ntlni foarte des cu problema crerii unui socket. Dup ce socket-ul a fost creat, tot greul comunicaiei ntre procese revine sistemului de operare prin intermediul implementrii stivei TCP/IP. Programatorul va trebui s "stpneasc" doar ce date se vor transmite prin reea. Pentru crearea unui socket, se execut instruciunea: socket_handle = socket( protocol_family, socket_type, protocol) care are aproximativ aceeai sintax pe toate sistemele de operare. Ei .. i cum "teoria ca teoria, da practica ne omoar", vom ncerca data viitoare s realizm un program care utilizeaz socket-uri (sau mai bine zis dou programe: unul client i cellalt server).'

S-ar putea să vă placă și