Reţele de Calculatoarestst.elia.pub.ro/news/RC/Teme_RC_IVA_2014_15/1_VicaDaCa_SipicaAl… · model...

24
Universitatea Politehnică Bucureşti Facultatea de Electronică, Telecomunicaţii şi Tehnologia Informaţiei Reţele de Calculatoare “Realizarea comunicării în reţea prin mecanismele din Nivelul de Transport (modelul TCP/IP)Profesor coordonator: prof. univ. dr. ing. Ştefan Stăncescu Studenţi: Vică Daniel-Cătălin, Sipică Alin-Marian Grupa: 441A (CTI) Anul universitar 2014-2015

Transcript of Reţele de Calculatoarestst.elia.pub.ro/news/RC/Teme_RC_IVA_2014_15/1_VicaDaCa_SipicaAl… · model...

Universitatea Politehnică Bucureşti

Facultatea de Electronică, Telecomunicaţii şi Tehnologia Informaţiei

Reţele de Calculatoare

“Realizarea comunicării în reţea

prin mecanismele din Nivelul de Transport (modelul TCP/IP)”

Profesor coordonator: prof. univ. dr. ing. Ştefan Stăncescu

Studenţi: Vică Daniel-Cătălin, Sipică Alin-Marian

Grupa: 441A (CTI)

Anul universitar

2014-2015

Reţele de Calculatoare

REALIZAREA COMUNICARII IN RETEA PRIN MECANISMELE DIN NIVELUL DE TRANSPORT (MODELUL TCP/IP)

1

CUPRINS

1 Introducere

1.1 Notiuni introductive despre modelul TCP/IP (Sipica Alin-Marian) ........................... 2

1.2 Notiuni avansate despre modelului TCP/IP (Sipica Alin-Marian) ............................. 4

1.3 Nivelele modelului TCP/IP (Vica Daniel-Catalin) ..................................................... 6

1.4 Compararea dintre modelului TCP/IP si modelul OSI (Vica Daniel-Catalin) .......... 10

2 Nivelul de Transport (Transport Layer)

2.1 Principii de functionare si notiuni avansate (Sipica Alin-Marian) ............................ 12

2.2 Protocoale proeminente ale Nivelului de Transport (Vica Daniel-Catalin) .............. 14

2.2.1 Probleme rezoltate de catre protocolul TCP (Vica Daniel-Catalin) ........ 15

2.2.2 Probleme rezoltate de catre protocolul UDP (Sipica Alin-Marian) ......... 18

2.2.3 Probleme rezoltate de catre protocolul RSVP (Vica Daniel-Catalin) ..... 19

2.2.4 Probleme rezoltate de catre protocolul DCCP (Vica Daniel-Catalin) ..... 20

2.2.5 Probleme rezoltate de catre protocolul SCTP (Sipica Alin-Marian) ....... 20

3 Concluzii (Sipica Alin-Marian) ............................................................................................. 22

4 Bibliografie ............................................................................................................................ 23

Reţele de Calculatoare

REALIZAREA COMUNICARII IN RETEA PRIN MECANISMELE DIN NIVELUL DE TRANSPORT (MODELUL TCP/IP)

2

INTRODUCERE

1.1 Notiuni introductive despre modelul TCP/IP

Putem defini pe scurt modelul TCP/IP, cunoscut si sub numele de „Internet Protocol

Suite” (tradus oarecum „Suita de Protocoale ale Internetului”) sau „DoD Model” (datorita

primului prototip ce a fost finantat de catre „DARPA”, o agentie cu responsabila cu asigurarea

securitatii in orice domeniu, apartinand de „United States Deparment of Defense”), ca fiind un

model de referinta pe baza caruia se construiesc arhitecturile de retea, cuprinzand protocoale ce

ajuta la comunicarea dintre terminalele acesteia. Insa, pentru a putea intelege cu adevarat scopul

unui model TCP/IP si influenta acestuia asupra telecomunicatiei, este necesar a defini mai intai

notiunea de „protocol” si „retea” (in engleza tradusa drept „network”).

Inainte de toate, se impune definirea viitorului si mult utilizatului termen in cadrul acestei

lucrari, cel de „comunicare”. Atunci cand facem referire la „comunicare”, putem afirma faptul ca

aceasta se realizeaza prin viu grai intre un emitator si receptor uman, printr-un canal de

transmisiune, ceea ce poate fi transpus in termeni de retelistica prin faptul ca doua terminale

comunica intre ele prin intermediul unei retele (canal de transmisiune), realizand un transport de

date/informatii. Deci, asemeni oamenilor ce utilizeaza cuvintele pentru a transmite o informatie,

terminalele „transporta” intre ele pachete de date, cu un anumit scop prestabilit de catre utilizator

(o vedere de ansamblu asupra comunicarii si transportului).

Astfel, putem defini o retea ca fiind o metoda de comunicare intre terminale si/sau

servere, ce implica atat o parte fizica numita „topologie”, alcatuita din fire (fibra optica, de

exemplu) si componente caracteristice (routere, hub-uri etc.), cat si o parte abstracta, formata din

reguli de transport, comunicare, inter-schimbare de resurse, ce constituie practic mecanismul

central care asigura buna functionare mult dorita de catre proiectant. Drept urmare, putem afirma

faptul ca doua sau mai multe terminale (termen utilizat in cadrul acestei lucrari cu scopul de a

face referire la orice aparat care se poate conecta la o retea, cum ar fi un computer, telefon mobil,

laptop, servere etc), interconectate printr-o metoda prestabilita ce prezinta reguli de comun acord

pe baza carora se efectueaza un schimb de date, se afla „intr-o retea” (notiune ce urmeaza a fi

dezoltata in capitolele viitoare ale lucrarii de fata). De asemenea, pe baza ideii ca reteaua poate fi

vazuta precum un „canal de comunicare” s-au dezvoltat diverse mecanisme elaborate, precum

accesul la „World Wide Web”, actionarea unui printer prin transmisiunea wireless, utilizarea

aplicatiilor de tip „e-mail” (tradus oarecum drept „posta electronica”) sau mesagerie instantanee

(programul „Yahoo Messenger”, de pilda), fapt ce a condus umanitatea cu un pas mai aproape de

modernizare si progres. [1]

Avand o idee generala asupra modului de functionare teoretic al retelei, ne putem atinti

privirea catre notiunea de „protocol”, mentionata in paragraful anterior. Un protocol poate fi

vazut drept un set de reguli ce serveste un scop bine definit, precum transportul datelor,

verificarea la receptie a acestora, asigurarea calitatii prin reducerea zgomotului la reconstructia

Reţele de Calculatoare

REALIZAREA COMUNICARII IN RETEA PRIN MECANISMELE DIN NIVELUL DE TRANSPORT (MODELUL TCP/IP)

3

semnalului etc. . Drept urmare, un protocol poate fi atat o implementare de tip hardware, cat si

software, fiind mai mult o notiune abstracta ce impune anumiti parametrii, precum necesitatea

unei sintaxe si sincronizarea comunicarii dintre cele doua terminale, fiind la fel de esentiale

pentru retele asa cum sunt limbajele de programare pentru compilatoare.

(Ilustrarea conceptului de „retea” discutat anterior)

(http://www.conceptdraw.com/How-To-Guide/picture/Computer-network-system-design-diagram.png)

Cunoscand la nivel conceptual termenii de „retea” si „protocol”, putem incerca o definitie

mai academica asupra modelului TCP/IP, si anume ca, reprezinta un sablon alcatuit din patru

nivele, fiecare avand un set de reguli (protocoale) cu scop bine stabilit, pe baza caruia se poate

intocmi un canal de transmisiune a datelor intre terminale (retea), atat la nivel fizic prin

componente caracteristice domeniului, cat si la nivel abstract, prin modelarea unor proceduri

complexe ce au la baza protocoalele mentionate. Trebuie precizat faptul ca, modelul conceptual

TCP/IP nu prezinta o stransa legatura cu topologia retelei, insa se impune o oarecare analiza is

asupra acesteia daca dorim a asigura un canal de transmisiune „error proof”, de pilda (tradus ca

„fara erori), ramanand in sarcina proiectantului de a gasi o punta de mijloc, optima, intre

componentele utilizate si procedurile formate. [2]

Trebuie mentionat faptul ca modelul TCP/IP, alaturi de protocoalele aferente acestuia, a

fost conceput in concordanta cu normele inpuse de catre organizatia „Internet Engineering Task

Force – IETF”, ce au ca scop stabilirea unor standarde internationale de comunicare atat intre

terminale, cat si intre retele (pot exista retele ce intercomunica, la un nivel super-scalar, cum este

spre exemplu, internetul zilelor noastre). Componentele fizice care asigura buna functionare a

retelei pot fi inctocmite dupa mai multe standarde, precum „Cisco Systems Incorporated –

CISCO” sau „Institute of Electrical and Electronics Engineering – IEEE”. [2]

Reţele de Calculatoare

REALIZAREA COMUNICARII IN RETEA PRIN MECANISMELE DIN NIVELUL DE TRANSPORT (MODELUL TCP/IP)

4

In subcapitolul ce urmeaza, vom discuta in ansamblu despre notiuni avansate cu privire la

modelul TCP/IP, explicand mecanismele din spatele functionarii acestuia si ilustrand totodata

necesitatea impartirii acestuia in patru nivele bine definite.

1.2 Notiuni avansate despre modelului TCP/IP

In subcapitolul anterior am discutat despre modelul TCP/IP din punct de vedere

principial, punand astfel bazele cunostiintelor ce ne vor servi in continuarea lucrarii. Avand de

partea noastra principiile functionarii mecanismului din spatele acestui model, putem incepe

discutii mai aprofundate folosind termeni caracteristici domeniului.

Modelul TCP/IP si-a capatat denumirea datorita celor mai importante doua protocoale ale

sale, si anume, „Transmission Control Protocol” (abreviat „TCP”) ce se afla pe Nivelul de

Transport, asigurand o comunicare bazata pe octeti, fara erori, intre terminalele retelei, si

„Internet Protocol” (abreviat „IP”) aflat pe Nivelul de Internet, cu scop in rutarea cailor dintre

participantii retelei. De asemenea, trebuie mentionat faptul ca aceste doua protocoale au fost

printre primele standardizate de catre asociatia IETF, mecanismul din spatele acestora servind si

in dezvoltarea altor modele de retea. [3]

Precum sistemele de calcul, modelul TCP/IP trebuia sa dispuna de o arhitectura ce urma a

fi utilizata drept referinta in conceperea altor modele de retea. Astfel, analizand documentatia

sub numele de „RFC 1122” publicata de catre IETF, putem descoperi faptul ca TCP/IP este

alcatuit din patru nivele principale, fiecare cu protocoalele sale aferente, totodata fiind construit

pe baza a doua principii foarte importante. Cel dintai se numeste „end-to-end principle”, elaborat

in 1981 de catre Saltzer Reed, care desi a fost schimbat de nenumarate ori de la aparitia sa,

mecanismul din spate a ramas acelasi, exprimand ideea ca functiile specifice aplicatiilor ar trebui

sa existe in terminalele de la capatele retelelor (denumite adesea si „end hosts”), decat in

nodurile intermediare, astfel reducand costurile productiei (spre exemplu, daca un router ar

dispune de aceste functii, tot ar fi necesara implementarea lor si asupra terminalelor ce

comunicau intre ele), asigurand si un transport al informatiei mai apropiat de notiunile „complet”

si „corect”. Retelele zilelor noastre inca pastreaza acest principiu, insa modificat datorita

necesitatii utilizarii unui firewall, translatarea adreselor din retea si aparitia continutului web

stocat sub forma de cache (precum memoria „cache” a procesorului). Cel de-al doilea principiu,

„robustness principle” (cunoscut si sub numele de „Legea lui Postel” datorita pionierului

internetului, Jon Postel), impune ideea de a fi conservativ in ceea ce trimite, insa liberal in ceea

ce se primeste. Cu alte cuvinte, implementarea TCP impune terminalelor de a fi foarte stricte si

concise in codul elaborat spre transmitere, insa mecanismul de la receptia acestora sa permita

citirea unui sir de octeti atata timp cat intelesul mesajului este clar. [3]

Avand aceste doua principii in minte, ne aflam cu un pas mai aproape de intelegerea

totala a modelului TCP/IP, insa mai sunt si alte mecanisme importante, ce trebuie luate in seama.

Reţele de Calculatoare

REALIZAREA COMUNICARII IN RETEA PRIN MECANISMELE DIN NIVELUL DE TRANSPORT (MODELUL TCP/IP)

5

De pilda, datorita celor 4 nivele, transmiterea datelor se realizeaza in urma unui proces de

„incalsulare” (tradus in engleza drept „encapsulation”).

(Nivelele modelului TCP/IP alaturi de cele mai importante protocoale aferente)

(https://i-technet.sec.s-msft.com/dynimg/IC197700.gif)

Asemeni unui continut intr-o cutiuta, ce se afla la randul ei intr-o cutie mai mare si asa

mai departe (ne putem referi la papusile rusesti „matrioska” pentru o mai buna reprezentare),

incapsularea presupune utilizarea notiunii de abstractizare a protocoalelor pentru a realiza o

transmisiune de date intre doua terminale. Astfel, plecand de la doua procese aflate pe Nivelul de

Aplicatie (cel mai intal nivel) ce intercomunica, vrand sa transmita un pachet de date, putem

observa ca, pe masura ce parcurgem modelul TCP/IP in adancime (spre ultimul nivel, cel de

legatura), respectivul sir de octeti din pachet este „incapsulat”, adaugandu-i-se alte string-uri, ce

il ajuta in a fi trimis si receptionat cu succes. Pentru o mai buna analogie, ne putem gandi la

pachetul de date drept o scrisoare, care, pentru a putea ajunge la destinatar, trebuie sa fie pusa

intr-un plic, apoi sa i se lipeasca un trimbru, iar ulterior, sa fie pusa intr-o cutie postala.

(Reprezentare concreta a incalsularii datelor pe nivele)

(http://upload.wikimedia.org/wikipedia/commons/3/3b/UDP_encapsulation.svg)

Trebuie mentionat faptul ca, aceasta metoda de incapsulare a informatiei ajutat atat in

buna realizare a transmisiunii (error-proof, de exemplu), fiecare protocol avand cate un rol

prestabilit, insa totodata este foarte eficient deoarece imparte o sarcina in bucati de dimensiune

Reţele de Calculatoare

REALIZAREA COMUNICARII IN RETEA PRIN MECANISMELE DIN NIVELUL DE TRANSPORT (MODELUL TCP/IP)

6

redusa, ceea ce este o consecinta in viteza (un protocol ce asigura transmiterea fara erori si unul

ce face rutarea sunt mai eficiente decat un singur protocol caruia i se impun ambele task-uri).

Pe masura ce nivele sunt parcurse, de la cel superior de Aplicatie spre cel inferior de

Legatura, putem afirma faptul ca exista o tranzitie de la un nivel de tip logic, mai apropiat de

caracteristicile unei aplicatii, spre un nivel de tip fizic, ce are legatura mai mult cu transmiterea

datelor (trecem de la o comunicare logica prin biti de 0 si 1 la una de tip fizic, ce ilustreaza

transmiterea efectiva a impulsurilor electrice prin componentele aferente retelei). Putem observa

acest lucru mai bine, folosindu-ne de diagrama de mai jos.

(Diagrama explicativa ce ilustreaza transmiterea datelor pe nivele) (http://upload.wikimedia.org/wikipedia/commons/c/c4/IP_stack_connections.svg)

Cunoscand principiile de baza din spatele mecanismelor centrale de functionare ale

modelului TCP/IP, putem discuta in continuare despre nivelele acestuia, mentionand scopul fi

protocoalele aferente fiecaruia.

1.3 Nivele modelului TCP/IP

Dupa cum am discutat pana in momentul actual, modelul TCP/IP este impartit in patru

nivele, fiecare cu protocoale aferente, cu scopul diminuarii concentrarii sarcinilor si a realizarii

Reţele de Calculatoare

REALIZAREA COMUNICARII IN RETEA PRIN MECANISMELE DIN NIVELUL DE TRANSPORT (MODELUL TCP/IP)

7

corecte a transmiterii de date. Astfel, documentul „RFC 1122” [4] despre care am mentionat si in

capitolele anterioare, ne prezinta structura modelului TCP/IP dupa cum urmeaza:

1) Nivelul de Aplicatie („Application Layer”): este nivelul unde aplicatiile creaza date ce

pot fi folosite de catre utilizatori cu scopul transmiterii acesteia spre alte aplicatii din

cadrul aceleiasi retele sau aceluiasi terminal. Partenerii intre care se realizeaza transferul

sunt caracterizati de catre arhitectura aplicatiei in cauza, putand fi de tipul „client-server

model” (principiu bazat pe un program de distribuire si partitionare a resurselor unui

distribuitor, pe baza cererilor emise de catre terminale) sau „peer-to-peer” (mecanism ce

ilustreaza partajarea sarcinilor si resurselor intre nodurile retelei, fara a fi necesar un

sistem central de administrare a acestora). Astfel, putem deduce faptul ca, acest nivel

utilizeaza protocoale ce servesc in asigurarea serviciilor fata de utilizatori si realizarea

schimbarii de date intr-o retea descrisa fizic de nivelele inferioare. Drept exemple de

protcoale caracteristice acestui layer avem „Hypertext Transfer Protocol” (abreviat

„HTTP”), cu scop in distribuirea informatiei de tip „hypermedia” (ceva mai mult decat

siruri de biti, discutand despre poze, fisiere audio etc.) cu ajutorul „hypertext-ului” (text

structurat ce ne arata legaturile logice dintre nodurile unei retea), „Dynamic Host

Configuration Protocol” (prescurtat „DHCP”), ce are ca rol distribuirea dinamica a

parametrilor unei retea, precum adresele IP, eliminand astfel necesitatea unui sistem de

tipul „administrator” sau configurarea manuala a acestuia, „File Transfer Protocol”

(„FTP”), ce asigura transmiterea datelor intre participantii comunicarii printr-o retea ce

foloseste protocolul „TCP” („Transmission Control Protocol”, va fi discutat mai in

ansamblu in capitolele viitoare), sau „Simple Mail Protocol” („SMP”), care face posibila

utilizarea bine cunoscutei aplicatii de „posta electronica”. Trebuie specificat faptul ca

protocoalele acestui nivel trateaza layer-ele inferioare drept „black boxes” ce asigura un

canal de transmisiune stabil, chiar daca aplicatiile in cauza sunt constiente de anumiti

parametrii, precum numerotarea porturilor spre exemplu. Pachetele de date sunt

incapsulate, protocoalele nivelelor inferioare neprezentand niciun interes fata de acesta.

(Modelul “client-to-client”) (Modelul “peer-to-peer”) (http://upload.wikimedia.org/wikipedia/commons/c/c9/Client-server-model.svg)

(http://upload.wikimedia.org/wikipedia/commons/thumb/3/3f/P2P-network.svg/200px-P2P-network.svg.png)

Reţele de Calculatoare

REALIZAREA COMUNICARII IN RETEA PRIN MECANISMELE DIN NIVELUL DE TRANSPORT (MODELUL TCP/IP)

8

2) Nivelul de Transport („Transportation Layer”): nivelul ce asigura transportul

pachetelor de informatie intre terminalele gazda ale retelei. Acesta asigura o conectivitate

„process-to-process”, insemnand totodata ca realizeaza servicii „end-to-end”

independente de structura datelor sau a scopului transmisiunii acestora, insa dispunand de

caracteristici precum segmentarea mesajului, controlul transmisiunii sirurilor de biti

(eliminand crearea unei congestii de date pe magistrala de transmisie), adresarea catre

porturile cerute si controlul erorii. Atunci cand vorbim despre transport de tip „end-to-

end”, acesta poate fi categorisit drept „connection-oriented”, implementat in protocolul

„Transmission Control Protocol”, ce face referire la o sesiune de comunicare permanenta

sau semi-permanenta stabilita inaintea transmiterii de date (sirul de biti este primit asa

cum a fost trimis), sau drept „connectionless”, find o metoda care impune transportul

fiecarei bucati din pachetul de date in functie de continutul sau (implementata cu

protocolul „User Datagram Protocol”). Mecanismul „connection-oriented transport” ajuta

la asigurarea unui transport eficient de date, insa viteza redusa prezinta un deficit major,

compensat de catre metoda „connectionless”, ce are aplicabilitate in domenii precum

Voice Over IP Communications sau streaming-ul de fisiere video/audio. Astfel, in

proiectarea unei retele, scopul defineste mecanismul utilizat din cadrul nivelului de

transport. Cand ne referim la transport, dorim ca reteaua noastra sa asigure un randament

cat mai ridicat al datelor transmise cu succes, astfel protocoalele aferente Nivelului de

Transport trebuie sa fie de incredere (spre exemplu, protocolul TCP asigura

transmisiunea informatiei in ordine, prezinta rata de eroare minimala, datele duplicate

sunt ignorate, etc.). [2]

(Transmisiunea prin protocoalele TCP si UDP)

(https://blog.logentries.com/wp-content/uploads/2014/07/tcp-versus-udp.jpg)

Reţele de Calculatoare

REALIZAREA COMUNICARII IN RETEA PRIN MECANISMELE DIN NIVELUL DE TRANSPORT (MODELUL TCP/IP)

9

3) Nivelul de Internet („Internet Layer”): acest nivel are sarcina de a realiza un schimb

de datagrame in afara retelei locale, dispunand de o interfata uniforma ce ascunde

topologia fizica. Practic, defineste modul de adresare si rutarea traseelor, parametrii

folositi de catre nivelul superior de transport (termenul de „rutare” sau „routing” in

engleza reprezinta transmiterea pachetului de date de-a lungul mai multor retele, pana la

destinatie, de obicei urmarindu-se traseul cel mai optim). Cel mai proeminent protocol

este „Internet Protocol” (abreviat „IP”), ce serveste atat ca identificator al emitatorului,

prin adresa IP, cat si alegerea unui traseu cat mai scurt dintre reteaua de care apartine

terminalul expeditor, catre reteaua terminalului destinatar. „Internet Protocol-ul”

indeplineste sarcini pentru diferite protocoale din nivele superioare, identificandu-le prin

atribuirea unui numar unic fiecaruia (spre exemplu, „Internet Control Message Protocol”

are numarul 1, pe cand „Internet Group Management Protocol” este notat ca 2). Dupa

cum am mentionat anterior, una din functiile acestui protocol este atribuirea unei adrese

pe 32 de biti fiecarui terminal pentru a putea fi identificat, sub forma a patru diviziuni de

cate maxim trei cifre (exemplu: „172.16.254.1”), astfel putand exista aproximativ patru

miliarde de adrese diferite. [2]

(Exemplificare de adresa IP)

(http://cs.stanford.edu/people/eroberts/cs181/projects/2010-11/FreedomOfInformationChina/wp-

content/uploads/2011/05/ip_address_structure1.gif)

4) Nivelul de Legatura („Link Layer”): este cel mai inferior nivel al modelului TCP/IP,

ce asigura o buna conexiune la nivel fizic intre terminale, totodata avand protocoale ce

descriu mai mult conectivitatea la un nivel mai rudimentar (descompunerea semnalului,

transmisiunea acestuia prin fire etc.). Trebuie sa avem in minte faptul ca modelul din

lucrarea de fata este independent de implementarea hardware, asadar o configuratie pe

Nivelul de Legatura poate fi aplicat oricaror componente ce alcatuiesc o retea. Procesul

transmiterii unui pachet de date, examinat la acest layer, poate fi controlat software sau

hardware prin „firmwares” (programe scrise special pentru un anumit tip de procesor de

Reţele de Calculatoare

REALIZAREA COMUNICARII IN RETEA PRIN MECANISMELE DIN NIVELUL DE TRANSPORT (MODELUL TCP/IP)

10

semnal) sau „chipsets” (SoC – „System on Chip”), atasand un header special inainte de a

trimite in mediul fizic (de pilda, protocolul „MAC – Media Access Control” ce arata

accesul la canalul de comunicare si modul de adresare al datelor acceptate, astfel

impunand un mediu comun de transfer intre terminale). De asemenea, un atribut

important il constituie si protocoalele de tip „tunneling”, ce ofera o compatibilitate intre

doua retele sau terminale ce nu utilizeaza acelasi tip de protocol (spre exemplu,

comunicarea dintre o retea cu IPv6 si una cu IPv4). [2]

1.4 Compararea dintre modelului TCP/IP si modelul OSI

In domeniul calculatoarelor si al informatiei exista mai multe modele pe baza carora se

poate proiecta arhitectura unei retele, insa cele mai intalnite sunt OSI si TCP/IP. Despre cel din

urma am discutat pana in momentul actual, asadar se cuvine sa ne atintim privirile pret de o clipa

si asupra „rivalului” sau.

Modelul OSI reprezinta un sablon conceptual de interconectare a terminalelor in retea, ce

tinde sa asigure toate beneficiile mentionate anterior la TCP/IP (comunicare prin transport de

date, canal de transmisiune cu o rata a erorii scazuta etc.). Denumirea provine de la acronimul

„Open Systems Interconnection” ce a fost un proiect initiat de catre „Internation Organization for

Standardization” in scopul obtinerii unui model teoretic pe baza caruia se pot proiecta retelele de

calculatoare. Insa, in zilele noastre, desi ambele modele prezinta acelasi mecanism de

functionare pe baza protocoalelor clasificate in nivele bine definite, OSI este preferat in

dezvoltarea standardelor de comunicatie, cercetare in domeniul hardware al retelisticii si analiza

conceptuala pentru o imbunatatire constanta, pe cand TCP/IP a demonstrat o aplicabilitate mult

mai mare in lumea reala datorita protocoalelor sale caracteristice. [5]

Dupa cum se poate observa in

schema alaturata, prima deosebire il

reprezinta numarul nivelelor, OSI

avand sapte, iar TCP/IP 4, insa

principial, indeplinind aceleasi functii,

prin protocoale oarecum diferite. De

asemenea, la categoria „deosebiri”

putem include si faptul ca modelul

TCP/IP utilizeaza protocolul UDP

discutat anterior, ce nu garanteaza

mereu transmiterea informatiei, precum

Nivelul de Transport al modelului OSI.

O alta deosebire signifianta consta in

Prezentare6

Sesiune5

Transport4

Reţea3

Legătură de date2

Aplicaţie7

Fizic1

Aplicaţie

4

Transport3

Internet2

Acces reţea1

OSI TCP/IP

Reţele de Calculatoare

REALIZAREA COMUNICARII IN RETEA PRIN MECANISMELE DIN NIVELUL DE TRANSPORT (MODELUL TCP/IP)

11

faptul ca primele trei nivele ale modelului OSI au fost compresate intr-unul singur la TCP/IP,

indeplinind functiile necesare stabilirii unei conexiuni in retea (cele trei nivele OSI prezentau

mult mai multe protocoale ce probabil ar fi ingreunat procesult de transmisie in viata reala, astfel

TCP/IP construindu-se doar pe baza a ceea ce a fost necesar si nimic in plus). Aceeasi deosebire

o putem observa si in cazul ultimelor nivele, unde modelul TCP/IP a adoptat ideea contopirii

celui „Fizic” cu cel de „Legatura de date” deoarece specialistiilor li s-a parut mult mai util in

cazurile practice, avand aceleasi intrebuintari si atribute.

Oricat de diferite ar parea cele doua modele la prima vedere, trebuie mentionat faptul ca

ambele functioneaza prin mecanismul de „packet switching” ce are la baza protocoale

asemanatoare ca scop. Asadar, in sarcina proiectarii unei retele, un inginer ar trebui sa aiba cu

sine modelul ISO drept referinta teoretica deoarece dispune de o plaja mai ampla a posibilitatilor,

insa ar trebui sa foloseasca modelul TCP/IP in cazul practic, datorita flexibilitatii si fiabilitatii

sale.

Reţele de Calculatoare

REALIZAREA COMUNICARII IN RETEA PRIN MECANISMELE DIN NIVELUL DE TRANSPORT (MODELUL TCP/IP)

12

NIVELUL DE TRANSPORT (TRANSPORT LAYER)

2.1 Principii de functionare si notiuni avansate

In prima parte a acestei lucrari ne-am axat asupra modelului TCP/IP, explicand

mecanismele generale si principiile din spatele sau, acumuland cunostiinte ce ne vor permite in

continuare sa ne concentram atentia doar asupra Nivelului de Tranport (se va folosi si termenul

din limba engleza, „Transport Layer” pentru evitarea repetitarii exhaustive a denumire in limba

romana). Dupa cum ne-am lamurit pana in momentul actual, transportul este una din

caracteristicile esentiale si necesare ale unei retele, fiind metoda prin care terminalele

participante pot face schimb de informatii (pot „comunica”). Asadar, putem afirma faptul ca

Transport Layer-ul are una dintre cele mai dificile si importante sarcini cand vine vorba de

comunicare, desi in ierarhia nivelelor se afla pe locul al doilea in modelul TCP/IP si pe locul al

patrulea la OSI.

Nivelul de Transport functioneaza pe baza aceluiasi principiu ilustrat mai sus, si anume,

prin utilizarea de protocoale, continand unul dintre cele mai utilizate: „Transmission Control

Protocol” (TCP) ce actioneaza sub principiul „connection-oriented transmissions” (o sesiune de

comunicare permanenta sau semi-permanenta stabilita intre terminale inaintea inceperii

transportului, sirul de biti fiind trimis precum receptionat, nemodificat). Totodata, trebuie

mentionat faptul ca suita de protocoale despre care discutam in aceasta lucrare si-a capatat

numele pe baza acestui protocol (TCP) si a celui din Nivelul de Internet (protocolul IP),

devenind astfel „modelul TCP/IP”. [6]

Cercetatorii ce au avut ca scop proiectarea acestui nivel, pe langa modelul de referinta

OSI, au avut in vedere si serviciile de care va dispune, vrand sa imbunatateasca transportul

pachetelor de date intre terminale (teoretic, comunicarea este doar o „mutare” de biti intre

experditor si destinatar, insa practic, este un proces mult mai complex, fiind necesare masuri de

precautie in vederea aparitiei problemelor precum aglomerarea canalului de transmisie, spre

exemplu). Aceste servicii sunt conectate direct cu Nivelul de Tranrport cu ajutorul unei aplicatii

ce dispune de o interfata programabile, astfel permitand specialistului sa editeze diversi

parametrii:

a) Serviciul de comunicare orientata dupa conexiune („connection-oriented

communication”): exprima ideea discutata si in capitolele anterioare, despre faptul

ca transmiterea pachetelor de date este mult mai sigura daca structura acestora nu este

modificata iar calea este deja cunoscuta, in contradictie cu modelul de transmisie al

datagramelor (un transfer de baza de tipul packet-switching, unde timpul pana la

destinatie, ordinea bitilor si livrarea pachetului nu sunt garantate de catre retea) impus de

catre protocolul „User Datagram Protocol” (UDP). [8]

Reţele de Calculatoare

REALIZAREA COMUNICARII IN RETEA PRIN MECANISMELE DIN NIVELUL DE TRANSPORT (MODELUL TCP/IP)

13

b) Serviciul de asigurare a livrarii pachetelor in ordine („same order delivery”): este

proiectat cu scopul de a micsora rata probabilitatii bucatirii pachetelor de date pe traseul

retelei, iar in cazul folosii protocolului UDP, de a evita problema de „head-of-line

blocking” (atunci cand unui port i se cuvin doua bucati din pachete de date diferite,

transmise catre acesta in acelasi timp, ceea ce provoaca un efect de „bottleneck” asupra

retelei, micsorand perfomantele acesteia). [9]

c) Serviciul de incredere („reliability”): un serviciu ce doreste asigurarea transportului

total al datelor (informatia se poate pierde pe drum datorita zgomotului de pe canal sau a

altor factori externi), astfel ca se poate efectua o detectie a erorii la receptionarea unui

pachet, pentru a vedea daca acesta este corupt sau nu, ulterior trimitand un semnal de

„acknowledgment” (ACK) daca s-a primit cu succes, sau „not acknoelwdment” (NACK)

daca s-au intampinat probleme. [7]

d) Serviciul de rata transferului datelor („flow control”): un principiu bazat pe ideea

ca un expeditor poate trimite pachetele de date cu o viteza mult mai mare decat le poate

receptiona cu bine si procesa expeditorul.[9]

e) Serviciul de evitare a congestionarii retelei („congestion avoidance”): se bazeaza pe

controlul traficului astfel incat, reteaua sa nu se aglomereze. Evitarea efectului de

„bottleneck” se poate face prin controlul ratei transferului de date sau prin diverse tehnici,

precum „slow-start” ce compenseaza cererile repetate de tip „automatic repeat request”

(ARQ).[9]

f) Serviciul de multiplexare („multiplexing”): un mecanism ce se refera la faptul ca un

terminal poate expedia si trimite date in acelasi timp, utilizand deodata toate porturile sale

aferente (fiind astfel o operatie de „multiplexare”).[10]

Astfel, dispunand de aceste servicii, Nivelul de Tranrport reuseste sa isi duca la bun

sfatsit sarcina de a livra pachete de date catre terminalul destinatie, ceea ce implica o

multiplexare a informatiilor provenite de la diferite procese ale aplicatiei in cauza, aduagandu-i

numerele porturilor unde ar trebui sa ajunga, alaturi de alte informatii relevante, in header-ul

specific (pentru referinta vizuala, este indicata consultarea capitolului 1.2 unde se discuta

amanuntit despre metoda encapsularii). Un lucru important de mentionat este faptul ca, anumite

protocoale (TCP, spre exemplu, dar nu si UDP) dispun si de un mecanism abstract, ce poarta

denumirea de „circuite virtuale” („virtual circuit”), care reprezinta un proces de transmisiune a

datelor intr-o asemenea maniera incat creaza iluzia existentei unui strat fizic de legatura intre

sursa si destinatie. Astfel, sirul de biti este transportat, in timp ce ideea de „pachet” este oarecum

ascunsa fata de procesul aferent aplicatiei in cauza (stream-urile de biti se numeste „segmente” in

cazul de fata).

Reţele de Calculatoare

REALIZAREA COMUNICARII IN RETEA PRIN MECANISMELE DIN NIVELUL DE TRANSPORT (MODELUL TCP/IP)

14

„User Datagram Protocol” pe de alta parte, functioneaza pe baza unui principiu simplu si

eficient, asigurand transportul pachetelor numite „datagrame” in cazul nostru (adica livrarea la

timp, ordinea bitilor si realizarea transportului complet nu sunt garantate), cu o viteza mult mai

mare, astfel servind in aplicatii precum „streaming-ul” unui video pe internet sau ascultarea unui

post radio prin browser-ul de navigare online.

Trebuie mentionat faptul ca, in cadrul altor modele de retea ce nu se bazeaza pe ideea de

„adresa IP”, precum X.25, ATM sau Frame Relay, conexiunea de tip „connection-oriented" este

implementata intr-un Nivel de Date sau Nivel de Retea, necesitatea utilizarii unui Transport

Layer devenind inutila.

2.2 Protocoale proeminente ale Nivelului de Transport

Acum, cunoscand si mecanismele principale din spatele functionarii Nivelului de

Transport al modelului TCP/IP, ne putem concentra asupra descrierii in detaliu a celor mai

proeminente protocoale ale acestuia.

(Protocoalele „TCP” si „UDP”)

(https://i-technet.sec.s-msft.com/dynimg/IC213263.gif)

In imagina de mai sus putem observa doua dintre cele mai importante protocoale ale

nivelului de Transport, TCP, respectiv UDP. Astfel, ne vom concentra asupra explicarii

mecanismului din spatele acestora, alaturi de alte protocoale proeminente.

Reţele de Calculatoare

REALIZAREA COMUNICARII IN RETEA PRIN MECANISMELE DIN NIVELUL DE TRANSPORT (MODELUL TCP/IP)

15

2.2.1 Protocolul TCP

„Transmission Control Protocol” reprezinta unul din protocoalele „nucleu” ale Nivelului

de Transport din modelul TCP/IP (de unde si denumirea), dispunand de servicii precum livrarea

in ordine si verificarea bitilor transmisi intre terminalele participante din cadrul unei retele, fiind

folosit totodata si pentru operatii complexe datorita altor protocoale ce sunt incapsulate in acesta

(dintre care putem mentiona „Hypertext Transfer Protocol”, „Simple Mail Transfer Protocol”,

„Post Office Protocol” etc.). Acesta a luat nastere in anul 1974, drept rezultat a necesitatii

proiectarii unei metoda de comunicare intre terminale, in cadrul unei retele, fiind publicat in

documentul RFC 1122 de catre Vint Cerf si Bob Kahn.[4]

Dupa cum am mentionat si in capitolele anterioare, protocolul TCP functioneaza pe baza

idee de „connection-oriented transmission” (transmisiunea datelor in ordinea lor originala,

asigurand livrarea si stabilind initial in canal de conexiune intre terminalele ce comunica), fiind

nivelul dintre aplicatie si „Internet Protocol” (IP). Atunci cand o aplicatie doreste a efectua o

transmisiune de pachete (compuse din octeti de date), si nu se recurge la mecanismul de bucatire

a acestuia in dimensiuni si format precum a adreselor IP (metoda rar utilizata), se genereaza o

cerere catre protocolul TCP, acesta intrand in functiune dupa cum se dicteaza. De obicei,

pachetele ce urmeaza a fi trimise sunt alcatuite dintr-un „body” (continand informatia propriu-

zisa pe care protocolul IP o transmite), caruia i se adauga niste „headers” ce ajuta la descrierea

detaliilor precum sursa, destinatia si controlul informatiei. De asemenea, tinand cont de faptul ca

un pachet de date poate fi pierdut („lost”), duplicat („duplicated”) sau livrat in alta ordine

(„delivered out-of-order”), protocolul TCP tinde sa anticipeze aceste probleme prin emiterea

cererilor de retransmitere a datelor, re-aranjarea bitilor in cadrul pachetelor sau optimizarea

traseului dintre sursa si destinatie, incercand decongestionarea retelei. [11]

„Transmission Control Protocol” a fost conceput sub ideea realizari corecte si precise a

transportului, neglijand astfel viteza in favoarea acuratetei, astel nefiind indicat in aplicatii ce

necesita transfer in timp real, precum „Voice Over IP”, spre exemplu. Desi, in mod normale,

protocolul IP se ocupa de livrarea propriu-zisa a datelor, TCP tine cont de toate pachetele trimise

(denumtie „segmente” dupa atribuirea unui „header”), totodata indicand cum ar trebui sa fie

transferate acestea (pentru o analogie mai potrivita, ganditi-va la faptul ca IP este practi soferul

unui camion, insa cel care il incarca cu date si ii explica traseul este de fapt protocolul TCP).

Drept mecanism de functionare, TCP acceta datele provenite dintr-un nivel superior, le

imparte in pachete carora le adauga un „header” caracteristic, astfel creand un „segment TCP”,

ce urmeaza fi si el incapsulat la randul sau intr-o datagrama impusa de „Internet Protocol”,

ulterior facandu-se transferul cu acesta intre terminale.[11]

Reţele de Calculatoare

REALIZAREA COMUNICARII IN RETEA PRIN MECANISMELE DIN NIVELUL DE TRANSPORT (MODELUL TCP/IP)

16

(„Header-ul” specific protocolului TCP)

(http://en.wikipedia.org/wiki/Transmission_Control_Protocol)

Precum putem vedea in imaginea de mai sus, „header-ul” specific protocolului TCP

contine informatii cruciale in transmiterea informatiei, precum portul sursa de unde se transmit

datele („Source Port”- adresa pe 16 biti), portul destinatie („Destination Port” – adresa pe 16

biti), numarul de secvente („Sequence Number” – dimensiune de 32 biti, cu rol dublu: daca

fanionul „SYN” este egal cu 1, atunci acesta este numarul initial de secventa, sau in caz contrat,

daca „SYN”=0, atunci acesta este numarul de secvente acumulate; „numarul secventei” adunat

cu „1” este practic numarul recunoscut in cadrul procedurii de „ACK” atunci cand se face

verificarea daca terminalul destinatie a primit pachetul sau nu), numarul de recunoastere

(„Acknowledgement Number” – pe 32 de biti, despre care s-a discutat in paranteza anterioara),

decalajul de date („Data Offset” – pe 4 biti, specificand dimensiunea header-ului TCP in cuvinte

de 32 biti, dimensiunea minima a acestuia putand fi de 5 cuvinte, respectiv maxima de 15), biti

rezervati („Reserved” – 3 biti, in cazul unei utilizari viitoare, de obicei setati pe zero), fanioane

(„Flags” – 9 biti, existand 9 fanioane ce servesc scopuri diverse, precum „NS”, „CWR” cu rol in

decongestionarea canalului de transmieie, „ECE”, „URG”, „ACK”, „PSH”, „RST” pentru

resetare, „SYN” despre care am vorbit anterior avand roluri in sincronizarea datelor, „FIN” ce

indicata faptul ca nu mai sunt date de trimis de la sursa), dimensiunea ferestei de la destinatie

(„Window Size” – 16 biti), verificarea erorilor („Checksum” – 16 biti), pointer urgent („Urgent

Pointer” – 16 biti, daca fanionul „URG” este setat pe „1”, atunci acest camp devine un decalaj

pentru numarul de secventa ce indica ultimul octect urgent de date), si alte campuri pentru

optiuni („Options” – variaza intre 0 si 320 de biti).

Mecanismul de functionare al protocolului TCP poate fi divizat in trei faze, astfel incat,

in cea incipienta, conexiunile sunt stabilite pe baza principiului „hand-shake”

(trimiterea/primirea confirmarilor), apoi urmand transferul de date efectiv, tot procesul

Reţele de Calculatoare

REALIZAREA COMUNICARII IN RETEA PRIN MECANISMELE DIN NIVELUL DE TRANSPORT (MODELUL TCP/IP)

17

incheindu-se cu faza de „connection termination” unde circuitele vituale sunt inchise iar

resursele folosite sunt eliberate spre a putea fi utilizate si de catre alte protocoale.

(Diagrama decizionala ce asigura functionarea protocolului TCP)

(http://upload.wikimedia.org/wikipedia/commons/thumb/f/f6/Tcp_state_diagram_fixed_new.svg/796px-

Tcp_state_diagram_fixed_new.svg.png)

Dupa cum am mentionat pana in momentul actual, protocolul TCP se axeaza pe livrarea

pachetelor de date asa cum au fost trimise, fara erori, si urmarind totodata sa nu aglomereze

traficul pe canalele retelei, astfel sacrificand viteza. Asadar, s-a impus proiectarea unui alt

protocol, fiind un complementar al lui TCP, si anume „User Datagram Protocol” (UDP) despre

care vom discuta in continuare.

2.2.2 Protocolul UDP

„User Datagram Protocol” este unul din protocolalele de baza ale Nivelului de Transport,

asemeni lui TCP, fiind proiectat de catre David Reed in anul 1980 si publicat in lucrarea de

specialitate RFC 768. Dupa cum am mentionat anterior, UDP foloseste principiul

Reţele de Calculatoare

REALIZAREA COMUNICARII IN RETEA PRIN MECANISMELE DIN NIVELUL DE TRANSPORT (MODELUL TCP/IP)

18

„connectionless” (datele sunt aranjate intr-o alta ordine decat cea initiala, rutarea facandu-se cat

mai rapid, in defavoarea optimizarii acesteia), ce nu prezinta mecanisme de tipul „hand-

shaking”, astfel compensand cu o viteza mult mai mare in comparatie cu „rivalul” sau, TCP-ul.

De asemenea, acest protocol nu garanteaza receptionarea pachetelor de fiecare data cand are loc

o transmisiune, nu se ocupa de cele de tip „duplicated”, insa utilizeaza serviciul de verificare a

erorilor („Checksum”) pentru integritatea informatiei si numerotarea porturilor destinatie. Astfel,

UDP-ul ajuta in transmiterea pachetelor de date numite „datagrame” catre alte terminale,

folosind „Internet Protocol” precum TCP, fara a fi necesara o conexiune stabilita apriorii, servind

in aplicatii unde verificarea amanuntita pentru erori nu este necesara. [12]

Protocolul UDP prezinta un set de caracteristici pentru care este preferat in proiectarea

anumitor aplicatii, precum faptul ca este „transaction-oriented” (ofera raspunsuri rapide

protocoalelor de tip „Domain Name System”), functioneaza prin transfer de datagrame (ajuta in

modelarea protocoalelor de tipul „Remote Procedure Call” sau in metoda de „IP tunneling”

mentionata in capitolele precedente), viteza de transmisie (potrivit pentru un numar foarte mare

de clienti), functionarea avantajata de caile unidirectionale si lipsa de efectuare a cererii de

retransmitere. Asadar, desi nu garanteaza transmiterea datelor de fiecare data, acesta

compenseaza prin atributele enuntate mai sus, fiind potrivit pentru alte tipuri de aplicatie.

„User Datagram Protocol” functioneaza pe acelasi principiu de atribuire a pachetului cu

informatie un „header” specific, insa putin diferit fata de cel al lui TCP, acesta ilustrand doar

numarul portului sursa („Source Port Number”), numarul portului destinatie („Desination Port

Number”), lungimea „header-ului” si a datelor transmite („Lenght”) si algoritm de verificare a

erorilor („Checksum” – camp optional in cazul transmisiei prin IPv4 si oblicatoriu pentru IPv6).

(„Header-ul” caracteristic protocolului UDP)

(http://en.wikipedia.org/wiki/User_Datagram_Protocol)

Utilizand un mecanism simplu la baza si avand atribute unica, protocolul UDP s-a facut

remarcat in proiectarea retelelor si a aplicatiilor ce necesita un transfer de date in timp real, astfel

fiind considerat deseori un complementar al lui TCP, nicidecum neglijat in favoarea acestuia.

Reţele de Calculatoare

REALIZAREA COMUNICARII IN RETEA PRIN MECANISMELE DIN NIVELUL DE TRANSPORT (MODELUL TCP/IP)

19

2.2.3 Protocolul RSVP

Pana la momentul actual am ales a discuta doar despre mecanismele din spatele

transportului in sine, insa se considera necesara o analiza mai amanuntita si asupra principiului

de alocare a resurselor, destul de important de altfel, altminteri neavand ce sa se transmita efectiv

pe canal. Asadar, Nivelul de Transport este prevazut si cu un protocol de alocare a resurselor in

retea, si anume „Resource Reservation Protocol” (abreviat „RSVP”). Acesta opereaza pe baza

protocoalelor IPv4 si IPv6 din Nivelul de Internet, asigurand rezervarea resurselor intr-un mod

ce evita congestionarea retelei si timpii de asteptare indelungati, asemeni lui „Internet Control

Message Protocol” (ICMP), fiind descris in lucrarea RFC 2205. Protocolul RSVP poate fi utilizat

atat de terminalele expeditoare, cat si de cele destinatare, definind astfel modalitatea in care

aplicatiile rezerva sau elibereaza datele o data ce tranzactia s-a incheiat cu succes. In zilele

noastre, RSVP-ul este rar intalnit in forma sa initiala, insa extensiile sale, precum RSVP-TE

devin din ce in ce mai intalnite in comunicatiile de zi cu zi. [13]

Drept caracteristici principale, putem observa faptul ca RSVP-ul se distinge prin cererile

de alocare a resurselor intr-o singura directie (de la expeditor catre destinatar), prin faptul ca nu

este un protocol de rutare la baza (insa noile sale extensii tind a indeplini si aceasta sarcina),

suporta ideea schimbarilor dinamice ce au loc intr-o retea printr-un mecanism de „soft state” ce

impune o reimprospatare a resurselor blocate de fiecare nod si dispune de cateva moduri de

rezervare a datelor, ceea ce permite o flexibilitate enorma in proiectarea retelei. De asemenea,

acesta dispune si de atribute precum raportarea de erori sau informatii despre sirul de date

generat de catre RSVP. [13]

„Resource Reservation Protocol” functioneaza pe baza a doua principii bine stabilite, si

anume „flowspec” si „filterspec”. Cel dintai ne vorbeste depsre rezervarea resurselor pentru un

stream de date, ce este identificat pe baza adresei destinatie si calitatea serviciului ceruta de catre

aplicatie (denumita despre „flowspec”, adica „specificarea stream-ului”, neputand intelege

cererea eliberata de catre QoS). Un „flowspec” se poate defini fie drept clasa unui serviciu,

rezervarea resurselor (determinata de catre QoS) sau specificatiile traficului de date. Cel de-al

doilea principiu are ca rol definirea pachetelor ce sunt afectate de catre „flowspec-ul” mentionat

anterior, putand fi de tip fix (rezerva resursele pentru stream-ul respectiv), partajat (pune la

dispozitie resurse comune pentru mai multe stream-uri) sau de tip „wildcard” (rezerva un tip de

resursa doar pentru anumite stream-uri). O cerere emisa catre RSVP, continand un „flowspec” si

un „filterspec” se numeste „flowdescriptor”, ceeea ce ajuta la descrierea parametrilor principali

ai stream-ului de informatii.

Totodata, se impune o discutie si asupra tipurilor de mesaje emise sau primite de catre

protocolul nostru, acestea fiind de doua tipuri: mesaje de tip „path” ce sunt trimise de la sursa

catre destinatie, stocand mereu adresa IP a ultimului nod prin care a trecut si avand informatii cu

privire la stadiul in care se afla magistrala de comunicare, si mesaje de tip „resv” (de la

„reservation”), ce este trimis in sens opus drept un mesaj de confirmare.

Reţele de Calculatoare

REALIZAREA COMUNICARII IN RETEA PRIN MECANISMELE DIN NIVELUL DE TRANSPORT (MODELUL TCP/IP)

20

2.2.4 Protocolul DCCP

„Datagram Congestion Control Protocol” se numara printre protocoalele Nivelului de

Transport, a carei functie principala reprezinta unul din mecanismele ce asigura un transfer optim

al datelor in retea. Acesta contine functii ce se ocupa de decongestionarea traficului de informatii

(precum spune si numele, de altfel, evitarea unui efect de „bottleneck”), fiind introdus in anul

2006 de catre asociatia IETF in documentul RFC 4340, astfel fiind un protocol in continua

dezvoltare.

DCCP-ul prezinta o idee centrala de a avea acces la mecanismele de decongestionare a

canalului de transmisiune fara a fi necesara implementarea acestora in Nivelul de Aplicatie.

Putem spuen faptul ca, pe langa caracteristicile sale de baza, le imprumuta si pe cele ale

protocolului TCP (fara cea de a transmite bitii in ordinea sa originala), insa nu suporta

concentrarea asupra mai multor stream-uri de date precum „Stream Control Transmission

Protocol” (SCTP). Asadar, putem afirma faptul ca protocolul DCCP este util in implementari

precum streaming-ul video, suportul jocurilor online, VoIP sau alte aplicatii ce prezinta un

numar mare de terminale client. [14]

Protocolul de fata lucreaza atat cu pachete de date, cat si cu chei de „ACK”

(acknowledgment), reusind astfel sa informeze expeditorul daca informatiile au ajuns la

destinatie sau au fost marcate cu o eticheta de tipul „ECN” („Explicit Congestion Notification”).

2.2.5 Protocolul SCTP

„Stream Control Transmission Protocol” este unul dintre cele mai interesante protocoale

ale Nivelului de Transport deoarece combina oarecum facilitatile celor doua protocoale centrale,

UDP, si respectiv, TCP, fiind totodata al 132-lea protocol din nivel, proiectat de catre asociatia

IETF in cadrul lucrarii „Stream Control Transmission Protocol”, anul 2000. [15]

Aplicatiile construite pe baza transportului realizat prin SCTP impun ca datele sa fie

transmise sub forma de „mesaje”, ulterior acestora si informatiilor despre destinatie fiindu-le

atasat cate un „header” specific. Astfel, putem caracteriza protocolul ca fiind de tipul „message-

oriented”, transmitand pachetele de date intr-o forma neschimbata, insa stream-ul este impatit in

mesaje (nu este trimis tot deodata precum face TCP). Totodata, asemeni protocolului UDP,

mesajele transmise de catre un expeditor ce utilizeaza SCTP sunt trimise catre aplicatia destinatie

intr-o singura operatie, astfel avand o viteza destul de considerabila, desi foloseste o parte din

mecanismele lui TCP. De asemenea, SCTP-ul este capabil de a realiza „multi-streaming”

(transmisie multipla in acelasi timp), fiind capacitatea de a transmite siruri de date independente

in paralel (precum afisarea pozelor si textului unei pagini web simultan).

Drept caracteristici, putem observa faptul ca oferta suport de tipul „multihoming”

(ambele terminale intre care se realizeaza conexiunea pot avea mai mult de o adresa IP),

Reţele de Calculatoare

REALIZAREA COMUNICARII IN RETEA PRIN MECANISMELE DIN NIVELUL DE TRANSPORT (MODELUL TCP/IP)

21

eliminarea efectului de „head-on-bloking” prezent la TCP prin livrarea mesajelor de date,

selectarea caii de transmisiune a informatiilor si monitorizarea acestea (putand totodata sa o

recunoasca drept un „canal primar”), detectare a erorii sporita si utilizarea sistemului de „ACK”

pentru confirmarea primirii pachetelor de catre destinatar. De asemenea, structura pachetelor

joaca un rol esential in evidentierea acestor atribute, prin faptul ca „header-ul” consta in doua

sectiuni importante: prima este numita „common header”, indicand primii 12 octecti si continand

portul sursa si cel destinatie, eticheta de verificare si „checksum-ul”, iar a doua fiind „data

chunks” ce descrie atat datele ce urmeaza a fi transmise, cat si fanioane, lungime si tipul de date.

(Structura „mesajelor” transmise de protocolul SCTP)

(http://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol)

Reţele de Calculatoare

REALIZAREA COMUNICARII IN RETEA PRIN MECANISMELE DIN NIVELUL DE TRANSPORT (MODELUL TCP/IP)

22

CONCLUZII

In finalul acestei lucrari putem conclude faptul ca modelul TCP/IP poate fi privit drept o

trusa cu unelte ce ajuta la proiectarea unei varietati de retele (streaming, data transfer only etc.),

iar desi aici am discutat pe larg doar despre Nivelul de Transport, putem afirma faptul ca toate

componentele modelului sunt esentiale bunei functionari ale unei conexiuni. Transport Layer-ul

asigura nu doar comunicarea propriu-zisa prin mecanismele enuntate anterior, dar totodata

asigura si o oarecare ordine si disciplina in pregatirea datelor inainte de livrarea acestora prin

atasarea „header-elor”, precum am putut observa la discutia despre protocoalele TCP si UDP.

De asemenea, suntem de parere ca, un proiectant ar trebui sa aiba cu sine mereu modelul

OSI drept referinta teoretica, in timp ce pune in aplicare modelul TCP/IP, astfel putand obtine o

performanta ridicata in cadrul retelei concepute, stiind ce mecanisme i-ar fi utile si care ar fi de

prisos.

Reţele de Calculatoare

REALIZAREA COMUNICARII IN RETEA PRIN MECANISMELE DIN NIVELUL DE TRANSPORT (MODELUL TCP/IP)

23

BIBLIOGRAFIE

1. „Computer networks (limba romana)” – Andrew Tanenbaum, pag 1-2

2. „Computer networks (limba romana)” – Andrew Tanenbaum, pag 32-35

3. RFC 1123, “Requirements for Internet Hosts – Application and Support”, R. Braden

(ed.), October 1989

4. RFC 1122, “Requirements for Internet Hosts – Communication Layers”, R. Braden (ed.),

October 1989

5. „Computer networks (limba romana)” – Andrew Tanenbaum, pag 35-37

6. „Computer networks (limba romana)” – Andrew Tanenbaum, pag 445-448

7. „Computer networks (limba romana)” – Andrew Tanenbaum, pag 454

8. „Computer networks (limba romana)” – Andrew Tanenbaum, pag 457-452

9. „Computer networks (limba romana)” – Andrew Tanenbaum, pag 466

10. „Computer networks (limba romana)” – Andrew Tanenbaum, pag 470

11. „Computer networks (limba romana)” – Andrew Tanenbaum, pag 487-491

12. „Computer networks (limba romana)” – Andrew Tanenbaum, pag 504

13. "RSVP Project". USC Information Science Institute. Retrieved 2011-02-16

14. RFC 4340 - Datagram Congestion Control Protocol

15. “Stream Control Transmission Protocol”. IETF. October 2000. RFC 2960