Sunteți pe pagina 1din 6

Stiva de protocoale TCP/IP.

Stiva de protocoale TCP/IP reprezinta o viziune comprimata (pe 4 nivele) si mai eficienta asupra comunicarii ierarhice bazata pe stiva OSI (7 nivele).

Nivelul Aplicatie Nivelul aplicatie se refera la protocoalele de nivel inalt folosite de majoritatea aplicatiilor, precum terminalul virtual (TELNET), transfer de fisiere (FTP) si posta electronica (SMTP). Alte protocoale de nivel aplicatie sunt DNS (Domain Name Service), NNTP sau HTTP. Nivelul Transport Este identic cu cel din modelul OSI, ocupandu-se cu probleme legate de siguranta, control al fluxului si corectie de erori. El este proiectat astfel incat sa permita conversatii intre entitatile pereche din gazdele sursa, respectiv, destinatie. In acest sens au fost definite doua protocoale capat-la-capat: TCP si UDP. Nivelul Retea (Internet) In stiva TCP/IP, protocolul IP asigura rutarea pachetelor de la o adresa sursa la o adresa destinatie, folosind si unele protocoale aditionale, precum ICMP sau IGMP. Determinarea drumului optim intre cele doua retele se face la acest nivel. Comunicarea la nivelul IP este nesigura, sarcina de corectie a erorilor fiind plasata la nivelurile superioare (de exemplu prin protocolul TCP). In IPv4 (nu si IPv6), integritatea pachetelor este asigurata de sume de control. Nivelul Acces la retea Se ocupa cu toate problemele legate de transmiterea efectiva a unui pachet IP pe o legatura fizica, incluzand si aspectele legate de tehnologii si de medii de transmisie, adica nivelurile OSI Legatura de date si Fizic. Protocolul rezolutiei de adrese ARP. ARP este un protocol de control al nivelului Internet (retea). Protocoalele de rezolutie a adresei ARP (Address Resolution Protocol) si de rezolutie inversa a adresei RARP (Reverse Address Resolution Protocol) sunt utilizate pentru a stabili in mod automat corespondenta intre adresele de nivel arhitectural 3 (adrese IP) si cele de nivel 2 (adrese MAC), si invers. Ele comunica direct cu protocoalele aferente nivelului arhitectural subretea (nu prin intermediul IP) si se dovedesc utile la comunicatia intre statii aflate pe acelasi LAN. Statiile de pe un acelasi LAN comunica direct prin intermediul adreselor de nivel inferior, iar daca o statie (fie ea S1) doreste sa transmita catre o alta (S2), pentru care cunoaste doar adresa IP, pentru a afla adresa MAC a lui S2, face o cerere ARP catre acea statie si va obtine adresa fizica pe care o va memora intr-un cache ARP, construind astfel tabele de translatare a adreselor. Formatul antetului unui pachet ARP este variabil, el va contine campuri precum Header Length, Protocol Type, Sender Low Level Address si Sender IP Address, precum si Target Low Level Address si Target IP Address. Protocolul de mesaj control Internet ICMP. ICMP este un protocol de control al nivelului Internet (retea). Dupa cum am mai spus, protocolul IP nu garanteaza livrarea pachetelor si nici nu semnalizeaza esecurile in cazul in care sunt pierdute pachete de date. Totusi, in anumite conditii, suita TCP/IP genereaza anumite mesaje de eroare, care sunt impachetate si transportate de protocolul ICMP (Internet Control Message Protocol). Sunt definite aproape o duzina de tipuri de mesaje ICMP. Fiecare tip de mesaj ICMP este incapsulat intr-un pachet IP. Mesaje: Destinatie inaccesibila(Pachetul nu poate fi livrat), Timp depasit (Campul timp de viata a ajuns la 0), Problema de parametru (Camp invalid in antet), Redirectare si altele. Pentru a defini mai precis capabilitatile si limitele ICMP am putea spune ca el furnizeaza servicii de "semnalare a erorilor". ICMP nu livreaza nici un fel de servicii de "corectare a erorilor" si nici nu indica modulelor soft ale nivelului retea nici o "modalitate de raspuns" la erorile pe care le semnaleaza.

Protocolul IP. Liantul care tine Internet-ul la un loc este protocolul de nivel retea, numit IP (Internet Protocol). Acesta a fost proiectat de la inceput avand in vedere interconectarea retelelor. Sarcina lui este de a oferi cu eforturi maxime o cale (cat mai buna) pentru a transporta datagrame de la sursa la destinatie, fara a tine seama daca aceste masini sunt sau nu in aceeasi retea sau daca sunt sau nu alte retele intre ele. Comunicatia in Internet functioneaza dupa cum urmeaza. Nivelul transport preia siruri de date si le sparge in datagrame. Ele sunt de obicei in jurul valorii de 1500 octeti (65k maxim). Fiecare datagrama este transmisa prin Internet, fiind eventual fragmentata in unitati mai mici pe drum. Ele sunt reasamblate de nivelul retea a destinatarului in datagrama originala. Datagrama este apoi pasata nivelului transport, care o insereaza in sirul de intrare al procesului receptor. Structura pachetului IP. O datagrama IP consta dintr-o parte de antet si o parte de text. Antetul are o parte fixa de 20 de octeti si o parte optionala cu lungime variabila. El este transmis in ordinea big endian (cel mai semnificativ primul): de la stanga la dreapta, cu bitul cel mai semnificativ al campului Versiune trimis primul. Pe masinile de tip little endian, este necesara o conversie prin program atat la transmisie cat si la receptie. Setul de campuri din antet asigura transmiterea datelor mai departe in retea. Campul Versiune memoreaza carei versiuni de protocol ii apartine datagrama, astfel este asigurata comunicarea intre o masina care utilizeaza o versiune noua si alta cu una veche. Din moment ce lungimea antetului nu este constanta, un camp din antet, IHL, este pus la dispozitie pentru a spune cat de lung este antetul, in cuvinte de 32 de octeti. Campul Tip serviciu permite gazdei sa comunice subretelei ce tip de serviciu doreste. Sunt posibile diferite combinatii de fiabilitate si viteza (ex: pentru voce livrare rapid, pentru text livrare sigura). Lungimea totala include totul din datagrama - atat antet cat si date (65535 max). Campul Identificare este necesar pentru a permite gazdei destinatie sa determine carei datagrame apartine un nou pachet primit (fragmentele unei datagrame contin aceeasi valoare). Marcajul DF vine de la Don't Fragment (pus de rooter cand e cazul). Deplasamentul fragmentului spune unde este locul fragmentului curent in cadrul datagramei. Campul Timp de viata este un contor folosit pentru a limita durata de viata a pachetelor. Protocol spune carui proces de transport trebuie sa-1 predea (TCP este o posibilitate). Urmeaza Adresa sursei si Adresa destinatiei, indica numarul de retea si numarul de gazda.

Adresare IP. Fiecare gazda si ruter din Internet are o adresa IP, care codifica adresa sa de retea si de gazda. Combinatia este unica: nu exista doua masini cu aceeasi adresa IP. Toate adresele IP sunt de 32 de biti lungime si sunt folosite in campurile Adresa sursa si Adresa destinatie ale pachetelor IP. Acele masini care sunt conectate la mai multe retele au adrese diferite in fiecare retea. Formatele de clasa A, B, C si D permit pana la 126 retele cu 16 milioane de gazde fiecare, 16.382 retele cu pana la 64K gazde, 2 milioane de retele (de exemplu, LAN-uri) cu pana la 254 gazde fiecare si multicast (trimitere multipla), in care fiecare datagrama este directionata maimultor gazde. Valoarea 0 inseamna reteaua curenta sau gazda curenta. Valoarea l este folosita ca o adresa de difuzare pentru a desemna toate gazdele din reteaua indicata. Transformari de adrese IP din format binar in format zecimal. Pentru adresele de clasa A primii opt biti reprezinta numarul retelei si ceilalti 24 sunt numarul gazdei. Valoarea bitului din stanga dintr-o adresa de clasa A este intotdeauna "0". Deci orice adresa IP de clasa A va avea intotdeuna primii opt biti in intervalul zecimal 0 - 126. Sa vedem cum arata o adresa de clasa C in format zecimal: 196.234.101.0 In format binar aceasta adresa este: 11000100.11101010.01100101.00000000

Clase de adrese IP. Formatul adreselor IP pe 32 biti: A 0 (1 bit), Retea (7 biti), Gazga (24 biti) - De la 1.0.0.0 pana la 127.255.255.255 B 10 (2 biti), Retea (14 biti), Gazda (16 biti) - De la 128.0.0.0 pana la 191.255.255.255 C 110 (3 biti), Retea (21 biti), Gazda (8 biti) - De la 192.0.0.0 pana la 223.255.255.255 Identificatori de retea si noduri. Adresarea IP pentru retele si noduri. Subretele.Masca de subretea. Fiecare adresa IP asadar, identifica in mod unic reteaua la care se refera (sau Identificatorul de retea) si nodul acestuia din cadrul retelei. Adresarea IP poate fi usor observata analizand formatul adreselor IP. Asa cum am vazut, toate gazdele dintr-o retea trebuie sa aiba acelasi numar de retea. Aceasta proprietate a adresarii IP poate crea problemecand reteaua creste. Solutia acestor probleme este sa se permita ca o retea sa fie divizata in mai multe parti pentru uz intern, dar pentru lumea exterioara sa se comporte ca o singura retea. Aceste parti sunt numite subretele. Un exemplu ar fi impartirea celor 16 biti destinati gazdei adreselor de tip B in 6 biti pentru subretea si 10 pentru gazda, atunci cand apare acesata necesitate. Aceasta impartire permite 62 de LAN-uri (0 si -l sunt rezervate), fiecare cu pana la 1022 gazde, in caz particular. In afara retelei, impartirea in subretele nu este vizibila, astfel incat alocarea unei noi subretele nu necesita contactarea NIC. Cand este introdusa impartirea in subretele, tabelele de dirijare sunt schimbate, adaugand intrari de forma aceasta-retea, aceasta-subretea, gazda. Tot ceea ce trebuie schimbat este de a impune fiecarui ruter sa faca un SI logic cu masca de subretea, pentru a scapa de numarul de gazda si a cauta adresa rezultata in tabelele sale. O masca subnet este de fapt o alta adresa de 32 de biti impartiti la fel ca o adresa IP (patru blocuri de cate opt biti reprezentati in zecimale). T.7 Protocolul de control al transmisiunii TCP. Porturi si socket-uri. Porturi ale protocolului TCP. Conexiuni TCP. Tehnica sliding window pentru controlul fluxului. Unitatea de date protocol TCP. Protocolul de datagrame ale utilizatorului UDP. Unitatea de date protocol UDP. Protocolul de control al transmisiunii TCP. Internet-ul are doua protocoale importante la nivel transport: un protocol orientat pe conexiuni si un altul fara conexiuni (UDP). Protocolul orientat pe conexiuni este TCP. TCP (Transport Communication Protocol - protocol de comunicatie de nivel transport) a fost proiectat explicit pentru a asigura un flux sigur de octeti de la un capat la celalalt al conexiunii intr-o inter-retea nesigura. TCP se adapteza in mod dinamic la proprietatile retelei Internet si este robust in ceea ce priveste mai multe tipuri de defecte. O entitate TCP accepta fluxuri de date utilizator de la procesele locale, le imparte in fragmente care nu depasesc 64K octeti (de regula in fragmente de aproximativ 1500 de octeti) si expediaza fiecare fragment ca o datagrama IP separata. Atunci cand datagramele IP continand informatie TCP sosesc la o masina, ele sunt furnizate entitatii TCP, care reconstruieste fluxul original de octeti. Nivelul IP nu ofera nici o garantie ca datagramele vor fi livrate corect, astfel ca este sarcina TCP-ului sa detecteze eroarea si sa efectueze o retransmisie atunci cand situatia o impune. Datagramele care ajung (totusi) la destinatie pot sosi intr-o ordine eronata; este, de asemenea, sarcina TCP-ului sa le reasambleze in mesaje respectand ordinea corecta (de secventa). Porturi si socket-uri. Porturi ale protocolului TCP. Serviciul TCP este obtinut prin crearea atat de catre emitator cat si de catre receptor a unor puncte finale, numite socluri (sockets). Fiecare soclu are un numar de soclu (adresa) format din adresa IP a masinii gazda si un numar de 16 biti, local gazdei respective, numit port. Pentru a obtine o conexiune TCP, trebuie stabilita explicit o conexiune intre un soclu de pe masina emitatoare si un soclu de pe masina receptoare. Un soclu poate fi folosit la un moment dat pentru mai multe conexiuni. Altfel spus, doua sau mai multe conexiuni se pot termina la acelasi soclu. Conexiunile sunt identificate prin identificatorii soclurilor de la ambele capete, adica (soclu 1, soclu 2). Numerele de port mai mici decat 256 se numesc porturi general cunoscute si sunt rezervate serviciilor standard (FTP 21, TELNET 23 etc). Conexiuni TCP. O conexiune TCP este un flux de octeti si nu un flux de mesaje. Dimensiunile mesajelor nu se conserva de la un capat la celalalt. De exemplu, daca procesul emitator executa patru scrieri de cate 512 octeti pe un canal TCP, aceste date pot fi livrate procesului receptor ca patru fragmente (chunks) de 512 octeti, doua fragmente de 1024 octeti, un singur fragment de 2048 octeti sau in orice alt mod. Nu exista posibilitatea ca receptorul sa determine numarul de unitati in care a fost scrisa informatia. Programele TCP nu au nici cea mai vaga idee despre semnificatia octetilor si nici cel mai mic interes pentru a afla acest lucru. Un octet este pur si simplu un octet.

Atunci cand o aplicatie trimite date catre TCP, TCP-ul le poate expedia imediat sau le poate retine intrun tampon in scopul colectarii unei cantitati mai mari de informatie pe care sa o expedieze toata odata. Pentru a forta expedierea (dupa necesitate), aplicatia poate folosi indicatorul PUSH, care ii semnaleaza TCP-ului sa nu intarzie procesul de transmisie. Tehnica sliding window pentru controlul fluxului. Esenta protocoalelor cu fereastra glisanta este aceea ca, la orice moment de timp, emitatorul mentine o multime de numere de secventa care corespund cadrelor pe care are permisiunea sa le trimita. Se spune ca aceste cadre apartin ferestrei de transmisie (sending window). Similar, receptorul mentine de asemenea o fereastra de receptie (receiving window), ce corespunde multimii de cadre care pot fi acceptate. Protocolul de baza utilizat de catre entitatile TCP este protocolul cu fereastra glisanta. Atunci cand un emitator transmite un segment, el porneste un cronometru. Atunci cand un segment ajunge la destinatie, entitatea TCP receptoare trimite inapoi un segment care contine totodata si numarul de secventa urmator pe care aceasta se asteapta sa-l receptioneze. Daca cronometrul emitatorului depaseste o anumita valoare inaintea primirii confirmarii, emitatorul retransmite segmentul neconfirmat. Unitatea de date protocol TCP. Entitatile TCP de transmisie si de receptie interschimba informatie sub forma de segmente. Un segment consta dintr-un antet de exact 20 de octeti (plus o parte optionala) urmat de zero sau mai multi octeti de date. Programul TCP este cel care decide cat de mari trebuie sa fie aceste segmente. Exista doua limite care restrictioneaza dimensiunea unui segment. in primul rand, fiecare segment, inclusiv antetul TCP, trebuie sa incapa in cei 65.535 de octeti de informatie utila iP. in al doilea rand, fiecare retea are o unitate maxima de transfer sau MTU (Maximum Transfer Unit), deci fiecare segment trebuie sa incapa in acest MTU. in realitate, MTU este in general de cateva mii de octeti, definind astfel o limita superioara a dimensiunii unui segment. Daca un segment parcurge o secventa de retele fara a fi fragmentat si ajunge apoi la o retea al carui MTU este mai mica decat dimensiunea segmentului, ruterul de la frontiera acelei retele fragmenteaza segmentul in doua sau mai multe segmente mai mici. Protocolul de datagrame ale utilizatorului UDP. Unitatea de date protocol UDP. User Data Protocol ofera aplicatiilor o modalitate de a trimite datagrame IP neprelucrate incapsulate si pe care le transmite fara a stabili o conexiune. Multe aplicatii client-server in care o parte emite cereri si cealalta parte emite raspunsuri folosesc, mai curand UDP decat sa se complice sa stabileasca si apoi sa elibereze o conexiune. Un segment UDP consta dintr-un antet de 8 octeti urmat de date. Cele doua porturi au acelasi rol ca si in TCP. Campul lungime UDP include cei 8 octeti ai antetului plus datele. Campul suma de control UDP cuprinde acelasi format pseudo-antet ca la TCP. El este optional si in cazul in care nu este calculat, este memorat ca 0. Dezactivarea acestuia este o prostie, exceptie facand cazul in care calitatea informatiei chiar nu conteaza.

Modelul TCP/IP a fost creat de ctre ARPA (Advanced Research Projects Agency). El a fost folosit mai nti in reelele ARPAnet (o reea de cercetare) i reeaua DDN (Defense Data Network). n scurt timp TCP/IP a devenit un standard de facto n lumea reelelor i este una din puinele arhitecturi de comunicaie pentru medii de calcul diferite. Avantajul esenial este acela c standardizarea nu s-a limitat doar la straturile inferioare, ci a prevzut norme i pentru straturile superioare 5, 6, 7, inclusiv aplicaii care au fost implementate intre timp pe aproape toate sistemele. TCP/IP ofer un serviciu sigur Process-to-Process-Comunication al straturilor 3 ;i 4 intr-un mediu multireele. El este un protocol de transport Host-to-Host pe care l pot folosi mai multe reele. Punctul forte l reprezint mecanismele de securitate, n timp ce punctul slab l reprezint mecanismul de rutare. User Datagram Protocol (UDP) permite proceselor de aplicaie, fr construirea unei legaturi virtuale, s schimbe datagrame. Att TCP, ct i UDP se bazeaz pe IP, cci el permite schimbul de date, chiar dac este nevoie s traversm mai multe reele; ns IP nu garanteaz nici furnizarea datagramelor destinatarului, i nici respectarea succesiunii normale a datagramelor. IP poate s execute fragmentarea corespunztoare pentru lungimi permise ale informaiilor, de-a lungul reelelor traversate. Telnet, Simple Mail Transfer Protocol (SMTP) i File Transfer Protocol (FTP) sunt, pentru utilizator, aplicaii direct disponibile, pe care le folosesc att TCP, cat i IP. Aplicatie / / / / / / / / / / / / Transport Internet Interfaa reea Hardware IP NFS FTP Telnet

TCP ICMP ARP RARP

UDP Protocoale rutare

Driver reea, NIC

Arhitectura TCP/IP

Suita de protocoale TCP/IP

Nivelul internet Acest nivel funcioneaz ca un router pentru datagrame si se ocupa de adresele datagramelor. Datagramele pot fi fragmentate n buci mai mici cnd ele traverseaz reele care folosesc mrimi mai mici ale mesajelor. Nivelul IP trebuie sa reconstruiasc datagramele din fragmentele pe care le primete, asigurndu-se c nu lipsete nici una i verifica daca ele se afla in ordinea corect. Nivelul internet trebuie, de asemenea, s manipuleze o varietate de formate ale adreselor care sunt folosite ntre sistemele TCP/IP. Nivelul transport Acest nivel asigur transportul mesajelor de la un calculator la altul, lucru posibil prin definirea a dou protocoale punct-la-punct: TCP (Transfer Control Protocol) i UDP (User Datagram Protocol). TCP este proiectat pentru a suporta o reea nefiabil, n sensul garantrii transferului cu succes al mesajelor ntre sursa i destinaie. Astfel, el este un protocol sigur, orientat pe conexiuni, care permite ca un flux de octet s ajung la orice calculator destinaie din inter-reea fr erori. TCP se ocupa de prelucrarea mesajelor de lungime oarecare de la nivelurile superioare si de fragmentarea lor in grupuri de maxim 64 octei. TCP da apoi mesajele ctre IP pentru transmisie, care le poate fragmenta si mai mult. Aceasta fragmentare fcuta de IP este transparenta pentru TCP. TCP este responsabil, de asemenea, cu pstrarea mesajelor primite in secvena i rencercarea dac transmisia eueaz. Totodat, el trateaz si controlul fluxului pentru a evita inundarea cu mesaje a unui receptor mai lent. UDP reprezint o alternativa la TCP pentru cazul n care livrarea garantat a mesajelor nu este necesara i nu este necesar nici stabilirea unei sesiuni ntre sursa i destinatar. Astfel, UDP este un protocol nesigur, fr conexiuni. Nivelul aplicatie Deasupra nivelului transport se afla nivelul aplicaie, care conine toate protocoalele de nivel nalt. Exista trei servicii principale, crora le corespunde cte un protocol: protocolul pentru pota electronic SMPT proiectat pentru transmisia de mesaje sub form de text, iar datele mai complexe trebuie codificate intr-o versiune text nainte de transmisie;

protocolul pentru transferul de fiiere FTP permite transferul eficient de date de pe un calculator pe altul; el accept dou tipuri de date: binare i text; protocolul pentru terminal virtual TELNET permite unui utilizator de pe un calculator s se conecteze i s lucreze pe un alt calculator, aflat la distan. Datele programului de pe calculatorul aflat la distan sunt afiate pe calculatorul din faa utilizatorului, iar datele introduse de utilizator vor fi transmise programului de pe calculatorul aflat la distan.