Creeaza.com - informatii profesionale despre


Evidentiem nevoile sociale din educatie - Referate profesionale unice
Acasa » referate » informatica » java
Niveluri din modelul OSI

Niveluri din modelul OSI


Asa cum am vazut pana acum, fiecare din primele 3 niveluri din modelul OSI indeplineste functii absolut necesare pentru functionarea retelei; lipsa oricaruia dintre aceste nivele ar face o retea de calculatoare nefunctionala. Astfel, nivelul fizic se ocupa cu transmisia fizica efectiva a bitilor, iar nivelul legatura de date asambleaza bitii in cadre si face posbila comunicarea locala in LAN prin intermediul unei scheme de adresare fizica bazata pe adrese MAC. Nivelul retea realizeaza intercomunicarea intre retele si se ocupa cu rutarea pachetelor.

Nivelul transport ofera nivelelor superioare servicii legate de transmiterea datelor ce nu sunt acoperite de primele trei niveluri. Functiile nivelului transport se ocupa cu asigurarea 'calitatii serviciilor' (qulity of service) de transmisie de date. Acestea implica aspecte de tipul sigurantei transmisiei (reliability) si de control al fluxului.



Controlul fluxului se refera la stabilirea unei viteze de transmisie de comun acord intre sursa si destinatia transmisiei. Necesitatea unei functii de control al fluxului este impusa de dimensiunea limitata a bufferelor de receptie a datelor. Daca datele ar fi transmise cu o rata de transfer mai mare decat posibilitatea statiei destinatar de a le prelucra, atunci bufferele acesteia se vor umple in cele din urma si datele noi primite nu vor putea fi retinute.

Pentru a intelege serviciile legate de siguranta si de control al fluxului, ganditi-va la un student care invata o limba straina pentru un an. Imaginati-va ca acest student viziteaza apoi o tara in care limba pe care a studiat-o este limba oficiala. Pentru a putea purta o conversatie cu un vorbitor pentru care acea limba nativa, studentul trebuie sa-l roage pe interlocutor sa repete cuvintele care nu au fost bine intelese (siguranta - reliability), asigurandu-se astfel ca tot ceea ce spune interlocutorul este inteles corect; pe de alta parte, studentul trebui sa-l roage pe cel cu care dialogheaza sa vorbeasca incet (cu viteza redusa) pentru a-l putea urmari (control al fluxului).

Modelul TCP/IP este standardul de facto tehnic si istoric pentur Internet si se impune din ce in ce mai mult ca forma de retea ce este folosita in marea majoritate a retelelor de calculatoare din lume.

La nivelul transport, modelul TCP/IP ofera doua protocoale intre care exista multe diferente, destinate fiecare unui anumit tip de transmisie:

TCP - Transmission Control Protocol

UDP - User Datagram Protocol

Transmission Control Protocol este un protocol orientat conexiune, ceea ce inseamna ca este creat un citcuit virtual intre sursa si destinatia unei transmisii, circuit care este mentinut pana la terminarea transmisiei.

TCP este un protocol sigur (reliable), in sensul ca este garantat faptul ca orice segment transmis prin intermediul sau va ajunge la destinatie, fara nici o exceptie. Daca un segment transmis nu fost receptionat, el este retransmis; este folosit deci un mecanism de confirmari.

TCP incapsuleaza datele primite de la nivelurile superioare in segmente de dimensiune fixa, pentru a putea face fata unor cantitati mari de date si pentru a putea permite creerea unor pachete de dimensiuni sub 64Kb (dimensiunea maxima a campului de date in cadrul pachetului IP). Mesajele sunt impartite in segmente care sunt transmise pe circuitul virtual si pe care tot TCP este responsabil sa le reansambleze la destinatie.

Spre deosebire de TCP, User Datagram Protocol este un protocol care nu este orientat conexiune, ceea ce inseamna ca nu este stabilita o legatura directa intre sursa si destinatie.

De asemenea, UDP este un protocol nesigur (unreliable), adica ajungerea pachetelor transmise la destinatie nu este garantata. Tot ce se asigura este ca se va face cel mai bun efort posibil pentru livrarea acestui pachet (best-effort delivery). Transmiterea mesajelor nu este verificata si nu este folosit nici o forma de confirmare. In consecinta nu se fac retransmisii ale mesajelor.

Mesajele transmise prin UDP sunt icapsulate de catre acest protocol in datagrame in cadrul niveului transport. Datele primite de la nivelurile superioare nu sunt segmentate si sunt transmise integral dupa incapsulare nivelului retea.

Protocolul UDP este util pentru a transmite mesaje scurte catre destinatii cu care se stie ca exista o legatura sigura si ce nu introduce erori. Overhead-ul introdus de UDP fata de TCP este mult mai mic.

Avand in vedere faptul ca UDP nu este sigur si ca nu foloseste nici un fel de mijloc de control al efectuarii transmisiei sau de retransmitere, asigurarea sigurantei (reliability) trebuie asigurata de nivelurile superioare.

O datagrama UDP introduce un overhead foarte mic, singurele date incsrise in headerul in care sunt incapsulate datele fiind porturile sursa si destinatie, suma de control si lungimea datagramei.

UDP este folosit de catre protocoale simple si robuste (TFTP) ce implementeaza doar functii de baza, sau de catre protocoale ce efectueaza transmisii catre destinatii aflate in apropiere, catre care exista legaturi sigure si rapide (DHCP, DNS). In cazul acestora din urma, folosirea UDP este explicata prin faptul ca timpul de raspuns este un factor critic, pe fondul in care posibilitatea aparitiei unei erori de genul pierdere a pachetului este extrem de scazuta.

TCP/IP reprezinta combinarea a doua protocoale individuale - TCP si IP. IP este un protocol de nivel retea, un serviciu fara conexiune care ofera livrarea datelor conform regulii best-effort delivery in cadrul unei retele. TCP este un protocol de nivel transport - un protocol orientat conexiune care ofera siguranta (reliability), precum si control al fluxului.

Folosirea acestei perechi de protocoale permite oferirea unei game foarte largi de servicii de transmisii de date. Impreuna, ele reprezinta un intreg care poate fi folosit in orice retea. TCP/IP este protocolul de nivel 3 si 4 pe baza caruia functioneaza Internetul.


Prin TCP/IP se intelege, prin extindere, intregul graf de protocoale dolosite in Internet si in retelele bazate la nivelurile 3 si 4 pe IP si respectiv TCP/UDP. Cateva dintre cele mai importante protocoale din acest graf sunt:

IP - Internet Protocol: protoclul de adresare logica si rutare in Internet;

TCP - Transmission Control Protocol: protocolul de nivel transport orientat conexiune ce asigura transmiterea sigura si cu control al fluxului;

UDP - User Datagram Protocol: protocol de nivel transport care foloseste o transmisie fara conexiune si nesigura;

FTP - File Transfer Protocol: protocol de transfer al fisierelor la distanta;

HTTP - HyperText Transfer Protocol: protocol prin care se transmit paginile de web;

SMTP - Simple Mail Transfer Protocol: protocol pentru transferul postei electronice;

DNS - Domain Name System: protocol prin care se mapeaza adresele IP la nume simbolice;

TFTP - Trivial File Transfer Protocol: protocol foarte simbplu si de baza pentru transmisia fisierelor.

Principalele date adaugate in headerul TCP la incapsularea realizata la nivelul transport sunt:

Portul sursa  si destinatie - porturile reprezinta schema de adresare folosita la nivelul transport; comunicarea se realizeaza din acest punt de vedere intre un port sursa si un port destinatie;

Numarul de secventa - numar folosit pentru secventierea datelor, pentru a asigura receptionarea si reasamblarea acestora intr-o ordine corecta, adica in aceiasi ordine cu cea in care au fost transmise;

Numarul de confirmare - numarul urmatorului pachet TCP care este asteptat sa soseasca;

Fereastra (window) - numarul de octeti pe care emitatorul pachetului este dispus sa-i primeasca fara confirmare;

Checksum - suma de control pentru headerul TCP;

Pointer urgent - anumite segmente pot fi marcate in mod exceptional ca urgente daca livrarea lor este critica; marcarea pachetelor ca urgente se face de catre protocoalele de nivel superior;

Data - datele transmise de catre protocoalele de nivel superior.

Atat TCP, cat si UDP, folosesc numere de porturi (sau socketi) pentru a transmite informatii catre nivelurile superioare. Numerele de porturi sunt folosite pentru a tine evidenta diferitelor transferuri care au loc in retea in acelasi timp la un moment dat. Dezvoltatorii de aplicatii software au decis sa respecte numerele de porturi bine-cunoscute definite in RFC1700. Prin acest standard, sunt asociate numere specifice fixe de porturi pentru diferite protocoale de nivel inalt. Aplicatiile si protocoalele care nu au asociat un numar fix de port folosesc un numar aleator de port dintr-un domeniu specific. Numerele de porturi sunt folosite ca schema de adresare a nivelului transport, adresele de port sursa si destinatie fiind inscrise in headerul segmentelor TCP.

Porturile sunt impartite in urmatoarele trei mari domenii:

pana la 255 - porturi pentru aplicatii si protocoale publice;

de la 255 pana la 1024 - porturi pentru aplicatii comerciale;

peste 1024 - nu sunt reglementate; o aplicatie oarecare care nu are asociat un port prin RFC1700 va alege de obicei un numar de port aleator peste 1024.

In tabelul de mai sus sunt prezentate cateva dintre porturile TCP consacrate, precum si protocoalele care le folosesc. Cele mai importante porturi si cele despre care veti auzi cel mai mult in practica retelelor de calculatoare sunt:

portul 21 - FTP

portul 22 - SSH

portul 23 - telnet

portul 25 - SMTP

portul 53 - DNS

portul 80 - www

portul 3128 - squid proxy.

Numerele de porturi amintite inainte sunt asociate serverelor pentru protocoalele respective. In marea majoritate a cazurilor, comunicarea cu un astfel de server are loc in modul urmator: clientul face o cerere deschizand o conexiune catre portul destinatie specific (de exexmplu 23 pentru telnet) si comunica la stabilirea comunicatiei care este portul local prin care el va comunica. Portul local se alege de obicei din domeniul numerelor de porturi peste 1024.

Dupa ce cele doua parti stiu care sunt numerele de porturi sursa si destinatie intre care se face comunicarea, TCP va creea un circuit virtual intre aceste porturi, circuit prin care vor fi transmise toate datele ce urmeaza in cadrul comunicarii.

Serviciile orinetate conexiune implica trei faze. In faza de stabilire a conexiunii, se determina un drum unic intre sursa si destinatie. Resursele necesare pe parcurs sunt de obicei rezervate in aceasta etapa pentru a asigura calitatea constanta a transmisiei. A doua faza este cea a transmisiei efective, urmata de ultima faza si anume inchiderea conexiunii.

TCP foloseste un algoritm cu dubla confirmare (three-way handshale) pentru deschiderea unei conexiuni. Astfel se obtine sincronizarea in ambele terminatii inainte de inceperea efectiva a transmisiei. Faza de schimb de numere de secventa la stabilirea conexiunii este importanta in asigurarea unei transmisii sigure. Se creeaza premisele pentru a putea retransmite orice pachet care a fost pierdut.

Initial, una dintre parti initiaza o conexiune, transmitand un pachet care indica numarul initial de secventa al acestei statii si care are setat un anumit bit in header pentru a indica cererea de stabilire a conexiunii (SYN). Apoi, cealalta parte primeste pachetul cu numarul de secventa x si raspunde printr-un pachet de confirmare cu numarul de secventa x+1, pachet in care isi include si propriul numar de secventa de inceput y. Statia care a initiat conexiunea va confirma cu un pachet cu numarul de secventa y+1 si cu aceasta conexiunea este stabilita.

Transmiterea cu confirmare simpla sau transmiterea cu confirmare pozitiva si retransmisie (PAR - Positive Acknowledgement and Retransmission) este o tehnica comuna, pe care multe protocoale o folosesc pentru a asigura siguranta (reliability). Conform acestui algoritm, sursa transmite un pachet, porneste un timer si asteapta o confirmare inainte de a incepe transmiterea urmatorului pachet. Daca timerul expira inainte de a se primi o confirmare, sursa va retransmite pachetul si va reporni timerul.

Dimensiunea ferestrei glisante (inscrisa si in headerul TCP) determina cantitatea de date care pot fi transmise odata fara sa fie primita o confirmare de la destinatie. Cu cat este mai mare dimensiunea ferestrei, cu atat poate fi transmis un numar mai mare de date. Dupa ce a fost transmis un volum de date egal cu dimensiunea ferestrei, sursa trebuie sa primeasca o confirmare ca datele au fost toate receptionate corect inainte de a putea transmite alte date.

O dimeniune unitara a ferestrei duce la tehnica de transmitere cu confirmare simpla prezentata mai inainte.

TCP foloseste confirmare expectationala, adica numarul de confirmare se refera intotdeauna la urmatorul octet care se asteapta sa fie primit. Termenul de 'glisanta' se refera la faptul ca dimensiunea ferestrei este negociata si stabilita dinamic pe parcursul transmisiei, fapt ce duce la o flexibilitate sporita si la o buna folosire a latimii de banda disponibile.





Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.