Sunteți pe pagina 1din 8

Modelul TCP/IP TCP/IP are propriul model de referinta care descrie stratificarea functiilor sale.

Modelul protocolului TCP/IP a fost dezvoltat, paradoxal, la mult timp dupa dezvoltarea suitei de protocoale, lipsa modelului ducind la diverse anomalii. TCP/IP nu se mapeaza exact pe modelul OSI, desi recunoaste necesitatea tuturor functiilor din acel model. Practic, exista patru niveluri functionale (vazute de sus in jos): proces/aplicatie, Host-to-Host (calculator gazda - calculator gazda), Internet si acces la retea. Nivelul proces / aplicatie Acesta ofera protocoale pentru accesul de la distanta si pentru partajarea resurselor. La acest nivel opereaza aplicatii cunoscute precum Telnet, FTP, SMTP, HTTP; ele depinde de functionalitatea nivelurilor inferioare. La fel, orice aplicatie care trebuie sa comunice intr-o retea IP va fi incadrata in acest nivel. Nivelul Host-to-Host Corespude vag nivelurilor sesiune si transport din modelul OSI. Printre operatiunile suportate se numara segmentarea datelor provenite de la aplicatii in vederea transmisiei prin retea, efectuarea de teste privind integritatea datelor primite, si multiplexarea fluxurilor de date pentru mai multe aplicatii simultan. Acest nivel este capabil sa identifice si sa rearanjeze datele care au fost receptionate. Acest nivel consta din doua protocoale: protocolul de contol al transmisiei (TCP) si protocolul datagramelor utilizator (UDP). Se prefigureaza aparitia unui nou protocol, pentru facilitarea naturii Internetului orientat pe tranzactii, numit T/TCP (Transaction /Transmission Control Protocol). Nivelul Internet Acesta consta din toate protocoalele si procedurile necesare pentru a da posibilitatea comunicatiilor de date dintre calculatoare sa traverseze retele multiple. Acest lucru inseamna ca pachetele care transporta date trebuie sa fie rutabile, lucru care cade in sarcina protocolului IP. Nivelul Internet trebuie sa suporte si alte functii de gestionare a rutelor, nu doar formarea pachetelor. Trebuie sa ofere mecanisme pentru rezolvarea adreselor de nivel 2 in adrese de nivel 3 si invers (ARP/RARP). De asemenea, acest nivel prezinta capacitati de rutare si de gestiune a rutelor. Nivelul de acces la retea Acest nivel consta in toate facilitatile necesare pentru conectare fizica si transmiterea datelor in retea. Modelul OSI imparte aceste facilitati in doua, nivelul fizic si nivelul legaturii de date. Modelul TCP/IP grupeaza insa aceste doua niveluri, deoarece diferitele protocoale IP se opresc la nivelul Internet. IP presupune ca toate

functiile de nivel inferior sint oferite de o conexiune LAN sau seriala. Notiuni despre Internet Protocol Devenit protocolul predominant pe plan mondial pentru lucrul inter-retele, protocolul IP este de multe ori interpretat gresit. Functiile protocolului IP sint definite de semnificatia datelor stocate in antetul pachetelor IP. Structura acestora a fost definit in septembrie 1981, dar evolueaza in mod continuu. Structurea antetului IP: ---------------------------------------------| 4 biti - Versiune IP | ---------------------------------------------| 4 biti - Lungime antet | ---------------------------------------------| 1 octet - Tipul serviciului | ---------------------------------------------| 2 octeti - Lungimea totala a datagramei | ---------------------------------------------| 2 octeti - Identificator unic pentru pachet| ---------------------------------------------| 3 biti - Indicator de fragmentare | ---------------------------------------------| 1 octet - Offset-ul fragmentului | ---------------------------------------------| 1 octet - Time to Live (TTL) | ---------------------------------------------| 1 octet - Identificator de protocol | ---------------------------------------------| 2 octeti - Suma de control | ---------------------------------------------| 4 octeti - Adresa IP sursa | ---------------------------------------------| 4 octeti - Adresa IP destinatie | ---------------------------------------------| Lungime variabila - Optiuni si completare | ---------------------------------------------Versiune - identifica versiune de IP cu care se opereza (de ex, 4 sau 6) Lungimea antetului Internet - in multipli de 32 de biti Tipul serviciului - indicatori folositi pentru specificarea parametrilor la care se doreste livrarea pachetului: precedenta (prioritatea absoluta fata de alte pachete IP), intirzierea, viteza de transmisie si integritatea datelor. Indicatorul de precedenta are 3 biti, cei de intirziere, viteza si integritate au cite 1 bit fiecare. Ultimii 2 biti sint rezervati pentu utilizari ulterioare. Lungime totala - un cimp pe 16 biti care contine lungimea totala a pachetului IP, in octeti (se transmit deci maxim 65.535 octeti) Identificator - fiecare pachet IP are un identificator unic pe 16 biti, folosit la identificarea fragmentelor unei datagrame Indicatori de fragmentare - contine trei indentificatori pe un bit care indica daca fragmentarea pachetului este permisa si daca ea a avut loc. Primul bit este rezervat

si e intotdeauna 0. Al doilea bit indica daca datele din pachet pot fi fragmentate (1 = datele NU pot fi fragmentate). Al treilea bit are semnificatie numai cind al doilea a fost setat pe 0; indica daca pachetul este ultimul fragment din serie sau daca aplicatia care primeste datele se poate astepta la fragmente aditionale. Valoarea 0 indica uiltmul pachet. Offset-ul fragmentului - un cimp pe 13 biti care stocheaza deplasamentul fragmentului curent fata de inceputul intregului pachet, in multipli de 64 de biti. Timpul de valabilitate (TTL) - pachetul IP nu poate sa tranziteze la infinit prin retea, el trebuie limitat la o durata de viata (TTL). Cimpul acesta, pe 8 biti, este incrementat cu 1 la fiecare dispozitiv prin care trece pachetul. La atingerea limitei maxime, se presupune ca pachetul nu poate fi livrat, va fi generat si transmis un mesaj ICMP catre masina sursa, iar pachetul va fi apoi distrus. Protocol - cimp de 8 biti ce indica protocolul de nivel imediat superior (TCP, UDP etc) Suma de control - cimp de 16 biti pentru detectarea erorilor. Calculatorul destinatie, precum si fiecare gateway din retea, fac calculele matematice necesare pentru verificarea antetului. Adresa IP sursa , adresa IP destinatia - adrese IP Optiuni si completare - cimp optional, de lungime variabila, poate indica folosirea anumitor optiuni suplimentare pentru tratarea pachetelor (masuri de securitate, specificatii de rutare etc). Deoarece lungimea antetului trebuie sa fie multiplu de 32 de biti, cimpul acesta este completat cu zeroruri pentru o dimensiune corespunzatoare. La o examinare atenta, se constata ca nivelul Internet nu este orientat spre conexiune: dispozitivele de retea care redirecteaza pachetele sint libere sa determine calea ideala prin retea pe care o poate urma pachetul prin retea. Acest nivel nu ofera nici o functie de confirmare, de control al fluxului sau de aranjare in ordine a pachetelor. De asemenea IP nu poate fi folosit pentru a trimite datele continute intr-o datagrama catre aplicatia destinatie corespunzatoare - functie incredintata nivelului superior. Functiile IP Informatiile din antetul unui pachet IP sint suficiente pentru unele functii de retea: - adresarea si rutarea - fragmentarea si reasamblarea fragmentelor - detectarea si corectarea datelor alterate in tranzit Adresarea si rutarea Una din facilitatile evidente ale protocolului IP este aceea ca permite livrarea pachetelor de la o destinatie data. Adresa IP a destinatiei este folosita de routerele si switch-urile din reteaua care se interpune intre masinila sursa si destinatie pentru a determina calea optima de urmat prin acea retea. Pachetele IP contin adresa IP a masinii sursa. Astfel, masina destinatie poate contacta masina sursa daca este nevoie.

Fragmentarea si reasamblarea Uneori, segmentele de date ala aplicatiilor nu incap intr-un pachet IP, ci trebuiesc fragmentate in doua sau mai multe pachete. In aceste situatii, IP este capabil sa reconstruiasc fragmentul de date original, indiferent cite pachete au fost necesare pentru aducerea lui la destinatie. Este important de stiu ca masinile sursa si destinatia trebuie sa suporte si sa adopte exact acelasi procedeu pentru fragmentarea segmentelor de date. Altfel, reasamblarea ar fi imposibila. Pentru identificarea segmentelor de date fragmentate se folosesc indicatorii de fragmentare din antetul IP. Reasamblarea segmentelor nu este acelasi lucru cu rearanjarea datelor care au sosit in alta ordine decit cea corecta (functie a TCP). Recuperarea pachetelor alterate Este functia de detectare a oricaror datagrame al caror continut a fost alterat sau pierdut in tranzit si luarea masurilor necesare pentru obtinerea continutului original. Un pachet poate fi alterat din multe cauze (interferente radio si interferente electromagnetice, de exemplu). Un pachet poate fi pierdut din mai multe motive. In primul rind, incarcarea retelei poate determina depasirea timpului TTL; ruterul care detecteaza expirarea TTL va omite pur si simplu pachetul. In al doilea rind, un pachet poate fi alterat in tranzit asa incit informatia din antet sa isi piarda semnificatia - caz in care pachetul este iarasi omis. Ori de cit ori un pachet nu poate fi livrat sau utilizat, masina sursa trebuie sa afle acest lucru. Antetul IP contine adresa IP a masinii sursa tocmai in acest scop. Desi IP nu detine mecanismele necesare retransmisiei pachetului, el joaca un rol esential in anuntarea masinii sursa ca este nevoie de retransmisie. Notiuni despre Transmission Control Protocol TCP este protocolul de la nivelul de transport (nivelul 4 din modelul OSI), ce foloseste IP pentru asigurarea integritatii datelor catre aplicatii. TCP stabileste o sesiune orientata pe conexiune intre doua sau mai multe computere gazda. TCP suporta si poate coordona fluxuri de date multiple, are facilitati de control al erorilor si reordonare a pachetelor. Structura antetului TCP: ---------------------------------------------| 2 octeti - NUmarul portului TCP sursa | ---------------------------------------------| 2 octeti - NUmarul portului TCP destinatie | ---------------------------------------------| 4 octeti - Numar de secventa | ---------------------------------------------| 4 octeti - Numar de confirmare | ---------------------------------------------| 4 biti - Offset date | ---------------------------------------------| 6 biti - (rezervati) | ---------------------------------------------| 6 biti - Indicatori | ----------------------------------------------

| 2 octeti - Dimensiunea ferestrei | ---------------------------------------------| 2 octeti - Suma de control | ---------------------------------------------| 2 octeti - Date urgente | ---------------------------------------------| Minim 1 octet - Optiuni | ---------------------------------------------| Lungime variabila - Completare | ---------------------------------------------Antetul are o lungime minima de 20 octeti si contine: Portul TCP sursa - cimp de 16 biti continind numarul portului care a initiat sesiunea de comunicatii. Portul sursa si adresa IP alcatuiesc adresa de intoarcere a pachetului. Portul TCP destintie - desemneaza numarul portului caruia ii este destinata transmisia. Numar de secventa - numar pe 32 biti, utilizat de computerul destinatie pentru a reface datele segmentate in forma originala. Intr-o retea cu rutare dinamica, e posibil ca pachetele sa urmeze rute diferite si sa ajunga in alta ordine decit cea de plecare. Numar de confirmate TCP - un numar de 32 biti, de confirmare (ACK) a primului octet de date din urmatorul segment asteptat. Offset date - cimp de 4 biti ce contine dimensiunea antetului TCP, exprimata in cuvinte pe 32 biti. Indicatori - cimp de 6 biti indicatori de 1 bit, care activeaza functiile de transitere urgenta (URG), confirmare (ACK), expediere imediata a datelor (push - PSH), resetare a conexiunii (RST), sincronizare a numerelor de secvente (SYN) si terminare a transmisiei (finish - FIN). Dimensiunea ferestrei - folosit de masina destinatie pentru a comunica masinii sursa cantitatea de date pe care este pregatita sa o accepte intr-un segment TCP. Suma de control - cimp pentru controlul erorilor; computerul gazda calculeaza o valoare matematica pe baza continutului segmentului, iar cel destinatie face aceleasi calcule si verifica valoarea continuta in acest cimp. Date urgente - este un pointer optional (actv daca indicatorul URG este setat), ce indica numartul de secventa al octetului care urmeaza datelor urgente. Segmentele de date identificate ca urgente sint tratate cu prioritate de toate dispozitivele din reteata care contine masinile sursa si destinatie. Optiuni - cimp de date de lungime variabila (minim 1 octet), care identifica optiuni valabile pentru segmentul TCP. Daca nu se folosesc optiuni, acest cimp se seteaza pe zero. Valoarea 1 indica faptul ca nu e necesara nici o operatiune (No Operation, NOP). Valoarea 2 araca ca urmatorii patru octeti contin lungimea maxima a segmentului (Maximum Segment Size - MSS) masinii sursa. Valoarea MSS indica numarul maxim de octeti pe care il poate ocupa cimpul de date in urma negocierii dinte masina sursa si cea destinatie. Completare (padding) - cimp ce are un scop matematic in comunicatiile de date. Scopul este de a asigura predictibilitatea intervalului, a temporizarii sau a dimensiunii pachetelor. Acest cimp contine zeroruri suplimentare ce garanteaza o dimensiune reprezentind un multiplu de 32 de biti a antetului TCP Date - tehnic, datele nu fac parte din antet; dimensiunea acestui cimp este cel mai

mare MSS care poate fi negociat de masinile sursa si destinatie. Segmentele pot fi mai mici decit MSS, dar niciodata mai mari. Functiile TCP TCP poate fi conceput cel mai bine ca o legatura intre mai multe aplicatii si retea. Functiile includ: - multiplexarea catre si dinspre retea a datelor provenind de la mai multe aplicatii - efectuarea de teste de integritate asupra datelor primite - rearanjarea datelor care au sosit in alte ordine decit cea originala - confirmarea receptionarii cu succes a datelor transmise - controlul adaptiv al fluxului - functii de temporizare - coordonarea retransmiterii datelor pierdute sau alterate Multiplexarea fluxurilor de date TCP ese interfata dintre aplicatiile utilizator si multimea de protocoale de comunicatie din retea. TCP trebuie sa fie capabil sa accepte simultan date de la mai multa aplicatii, sa le organizeze in segmente de date si sa le transmita pentru expediere protocolului IP. Similar, TCP trebuie sa fie capabil sa primeasca simultan date destinate mai multo aplicatii. TCP tine evidenta aplicatiilor carora trebuie sa le transmita pachetele prin utilizare de numere de porturi. Este deci util ca masina sursa si cea destinatie sa cada de acord auspra unui set de numere de porturi. Exista deja numere de porturi bine cunoscute (80 = http, 69 = tftp etc). TCP stocheaza in fiecare segment numerele de port sursa si destinatie. Un alt termen folosit frecvent este socket. Un socket reprezinta concatenarea adresei IP cu numarul port al aplicatiei in cauza care ruleaaza pe acel calculator. Cele doua numere sint separat prin ":". Testele de integritate TCP efectueaza un set de operatii matematice asupra fiecarui segment de date incapsulat intr-un segment TCP si stocheaza rezultatul in cimpul "suma de control" al antetului. La destinatie, se face verificarea acesei sume de control. Daca rezultatele difera, va fi trimisa o cerere catre masina sursa pentru o copie a acelui segment de date. Rearanjarea Se intimpla deseori ca segmentele sa ajunga la destinatia in alta ordine decit cea de plecare. Cauza ar putea fi o retea cu grad inalt de utilizare, cind protocoalele de rutare ar selecta rute diferite; o alta cauza ar fi pachetele pierdute sau alterate in tranzit, care sint cerute din nou masinii sursa. Indiferent de cauza, TCP al masinii destinatie trebuie sa stocheze intr-o zona tampon zonele primite, pina cind va putea sa le aranjeze in ordinea corecta. Operatiunea este indeplinita prin examinarea continutului cimpului "numar de secventa TCP" din antet.

Controlul fluxului Masinile sursa si destinatie sint cunoscute sub numele de peers (egali). Fiecare perr poate controla fluxul de date care ajunge in zonele sale tampon. Mecanismul folosit in acest scop este dimensiune ferestrei TCP. Aceasta dimensiune este comunicata intre masina sursa si cea destinatie din antetul TCP. Daca o masina este supraincarcata cu date care sosesc, ea poate incetiti rata la care masina emitatoare poate transmite date, prin informarea celeilalte masini cu privire la noua dimensiune a ferestrei. Daca zonele tampon ale unei masini sint complet ocupate, acea masina va transmite o confirmatre a ultimului segment de date primit cu o dimensiune a ferestrei setata pe zero. Fiecare segment procesat trebuie confirmat, iar o data cu aceasta confirmate apare o oportunitate de a relua transmisia stabilind o noua dimensiune a ferestrei, diferita de zero. Acest mecanism simplu poate garanta doar ca sistemele finale nu sint inundate cu date. Dimensiunea ferestrei nu poate trata posibilele congestii din retea. Congestia unei retele este o functie de timp a ei. TCP implementeaza gestiune congestiilor de retea prin intermediul timerelor. Mecanismele de temporizare TCP foloseste aceste mecanisme pentru unele functii critice. De fiecare data cind se transmite un segment, se seteaza un timer (contor de timp). Daca acesta ajunge la zero inainte de primirea unei confirmari, se presupune ca segmentul a fost pierdut, deci va fi retransmis. Acest timer este utilizat pentru gestionarea congestiilor din retea, in mod indirect, prin micsorarea ratei de transmisie ori de cite ori are loc o expirare a contorului de timp. TCP nu poate gestiona congestiile in retea, dar poate reduce propria contributie la congestie. Se foloseste un timer numit Persist pentru interogarea periodica a masinii destinatie cu privire la dimensiune maxima a ferestrei (in plus fata de confirmarile obisnuite, care se pot pierde/altera pe retea). Daca aceasta cerere esueaza, TCP va reseta conexiunea. O alta metoda este timpul de viata maxim al segmentului (Maximum Segment Lifetime - MSL). Valoarea MSL permite masinilor TCP sa identifice datagramele care au petrecut prea mult timp traversind reteaua si, ca urmare, au fost inlocuite. Segmentele cu valoarea MSL expirata sint pur si simplu omise. Confirmare primirii Masina TCP destinatie trebuie sa confirme primirea fiecarui segment de date (identificat prin numarul de secventa), daca indicatorul ACK este setat (lucru valabil in cea mai mare parte a timpului). Segmentele de date a caror transmisie nu este confirmata se presupune ca s-au pierdut in tranzit si vor fi trimise din nou. Retransmisia trebuie coordonata de masinile sursa si destinatie. Notiuni despre USer Datagram Protocol (UDP) UDP este celelalt protocol de la nivelul IP Host-to-Host. UDP ofera un tip simplu de transmisie a datelor, cu incarcare redusa: datagramele. Simplitatea datagramelor face ca UDP sa fie inadecvat pentru unele aplicatii, dar perfect pentru aplicatii sofisticate, care au propriile functii orientate spre

conexiune. Alte utilizari posibile ale UDP includ schimbarile de date ca tabele de rutare, mesaje sistem, date de monitorizare a retelei etc.. Aceste tipuri de schimburi de date nu necesita controlul fluxului, confirmari sau rearanjarea pachetelor. Structura: ---------------------------------------------| 2 octeti - NUmarul portului UDP sursa | ---------------------------------------------| 2 octeti - NUmarul portului UDP destinatie | ---------------------------------------------| 2 octeti - Suma de control | ---------------------------------------------| 2 octeti - Lungimea mesajului | ---------------------------------------------Numarul portului UDP sursa/destinatie - la fel ca la TCP Suma de control - la fel ca la TCP Lungimea mesajului - comunica masinii destinatie dimensiunea mesajului. Functiile UDP UDP a fost proiectat cu scopul de a fi un protocol de transport minimal si eficient. Aceste atribute se reflecta direct in structura antetului sau. UDP nu ofera nici una din functiile avansate pe care le ofera TCP. Nu exista mecanisme de sincronizare, control al fluxului, gestiune a congestiilor, confirmare etc. UDP face tot posibilul pentru a livra o datagrama. Daca nu reuseste, datagrama este inlaturata si nu se face nici o incercare de retransmisie. TCP versus UDP Sint protocoale foarte diferite de la nivelul de transport, proiectate pentru scopuri diferite. Punctul comun este ca foloses IP ca protocol de nivel retea. Cea mai mare diferenta este siguranta transmiterii datelor. Evident, TCP este mult mai complex si necesita o incarcare substantiala pentru a functiona. UDP este deseori criticat pentru lipsa oricarori mecanisme specifice TCP. Nu exista practic nici o garantie ca o datagrama UDP va sosi vreodata intacta la destinatie. UDP este potrivit pentru transmisii scurte. Pe de alta parte, UDP este un protocol minima si economic. Este adecvat pentru aplicatii de genul transmisiilor de voce prin IP (Voice over IP, VoIP) sau teleconferinte video in timp real. Este util de asemenea pentru diverse operatiuni din retea. Faptul ca UDP este un protocol nesigur nu inseamna ca este un protocol inutil, ci doar ca a fost proiectat pentru tipuri de plicatii diferite de cele specifice TCP. *********************************************