Documente Academic
Documente Profesional
Documente Cultură
Protocoale de comunicatii
Cuprins
Nivelul transport ........................................................................................................................................... 3
Comparatie UDP cu TCP ................................................................................................................................ 4
Ce este UDP ? ................................................................................................................................................ 5
Structura pachetelor ................................................................................................................................. 5
Formatul datagramelor UDP ..................................................................................................................... 7
Interfata de programare pentru aplicatiile UDP ....................................................................................... 8
Ce este TCP ? ................................................................................................................................................. 9
Transfer de date in flux (Stream Data Transfer) ................................................................................. 10
Siguranta ............................................................................................................................................. 10
Controlul transmisiei (Flow Control)................................................................................................... 10
Multiplexarea ...................................................................................................................................... 10
Conexiunile logice ............................................................................................................................... 10
Full Duplex .......................................................................................................................................... 10
Principiul ferestrei glisante aplicat la TCP ............................................................................................... 11
Formatul segmentului TCP ...................................................................................................................... 12
Stabilirea unei conexiuni TCP .................................................................................................................. 14
Interfata de programare a aplicatiilor TCP ............................................................................................. 15
Interfata de programare a aplicatiilor TCP ......................................................................................... 15
Blibliografie ................................................................................................................................................. 16
Nivelul transport
[http://shannon.etc.upt.ro/laboratoare/rcd/rcd_laborator.pdf] Este proiectat astfel incat sa
permita dialogul intre entitatile pereche din gazdele sursa si destinatie, pentru aceasta fiind
definite doua protocoale
capat-la-capat:
TCP si UDP. Protocolul de control al transmisiei (TCP) permite ca un flux de octeti
emis de o masina sa fie receptionat fara erori pe orice alta masina din retea. TCP fragmenteaza
fluxul de octeti in mesaje discrete pe care le paseaza nivelului
internet. La destinatie, procesul TCP receptor reasambleaza mesajele primite, reconstituind
datele initiale. TCP realizeaza controlul fluxului de date pentru a evita situatia in care un
transmitator rapid inunda un receptor lent cu mai multe mesaje decat poate acesta sa prelucreze.
TCP este un protocol orientat pe conexiuneUDP (User Datagram Protocol- protocolul
atagramelor utilizator
) este un protocol nesigur, fara conexiuni, destinat aplicatiilor care doresc sa utilizeze propria
secventiere si control al fluxului si nu mecanismele asigurate de TCP. Este un protocol folosit in
aplicatii pentru care comunicarea rapida este mai importanta decat acuratetea transmisiei, asa
cum sunt aplicatiile de transmitere a sunetului si imaginilor video.
Ce este UDP ?
Conform [1] UDP provine de la User Datagram Protocol i a fost proiectat n 1980 de
David P. Reed. UDP ofer numai un serviciu minimal de transport (livrare ne-garantat de
datagrame) i permite aplicaiilor acces direct la serviciul de datagrame al stratului de IP. UDP
este folosit de aplicaii care nu necesita servicii de nivelul TCP, sau care vor s foloseasc
servicii de comunicare care nu sunt disponibile n TCP (ca multicast).
Singurele servicii pe care le ofer sunt verificarea datelor prin checksum i multiplexarea
pe porturi. Deci o aplicaie care foloseste UDP trebuie s trateze direct problemele legate de
comunicaia E2E (end-to-end) pe care un protocol orientat pe conexiune le-ar fi soluionat, ca
retransmisia pentru asigurarea fiabilitii, segmentarea pe pachete i reasamblarea, controlul
debitului, evitrea congestiei etc).
Procesul1
Port a
Procesul 2
Procesul n
Port b
............................
Demultiplexor de porturi
Port z
IP
Structura pachetelor
UDP transmite segmente formate dintr-un header de 8 Bytes, urmat de datele efective de
transmis.
32 Biti
Port Sursa
Lungime UDP
Port destinaie
UDP checksum
Cele dou porturi identific cele dou sisteme de calcul care comunica, sursa i
destinaia. Cand un pachet UDP soseste, incarcatura lui este preluat de procesul ataat
portului destinaie. Pe scurt, porturile asigur livrarea segmentelor aplicaiei corecte.
5
Portul sursa este necesar n cazul n care receptorul trebuie s raspund emitorului.
Copiind portul sursa din pachetul abia sosit n cmpul de destinaie al pachetului de rapuns,
procesul care trimite rapunsul poate specifica ce proces de pe emitor l primeste.
Cmpul Lungime UDP include headerul de 8 Bytes i datele. Lungimea minima este
de 8 Bytes (pentru header). Lungimea maxima este de 65.515 bytes (dimensiune mai mica
decat maximul reprezentabil pe 16 biti; limita este data de dimensiunea maxima a pachetelor
IP).
Suma de verificare este optionala i se foloseste pentru cresterea fiabilitii. Face
verificarea header-ului, a datelor i un pseudoheader IP conceptual. Cand se face calculul,
cmpul checksum este setat la 0 i cmpul de date este bordat cu un byte aditional de 0 dac
lungimea lui este un numr impar. Algoritmul de verificare consta n sumarea tuturor
cuvintelor de 16 biti n complement fa de 1 i scoaterea complementului lui 1 din rezultat.
Deci, cnd receptorul face calculul pe ntregul segment, inclusiv pe cmpul de checksum,
rezultatul ar trebui s dea 0. Dac checksum-ul nu se calculeaz, atunci se va stoca cu valoarea
0.
Protocol = 17
Lungime UDP
O aplicaie care foloseste UDP n acest fel este DNS (Domain Name Server). Pe scurt,
un program care trebuie s caute adresa IP a unui host oarecare poate trimite un pachet UDP
care contine numele host-ului ctre un server DNSS. Serverul raspunde cu un pachet UDP
care contine adresa IP a hostului. Nu este nevoie de nici o setare initiala i eliberare ulterioara
a conexiunii. [11]
UDP mai este folosit n aplicaii care pun viteza inaintea calitatii, n aplicaii de tip
FINGER (FINGER este un protocol simplu pentru schimbul de status-uri i informaii despre
utilizator), si, n general, acolo unde cererile sunt rapide i necesita un singur pachet de
rapuns (exemplu: SNMP Simple Network Management Protocol, RIP Routing
Information Protocol, DHCP Dynamic Host Configuration Protocol). [6]
Traficul video i audio este n general transmis folosind UDP. Protocoalele de streaming
audio-video au fost proiectate s suporte eventualele pierderi de pachete, deci va aparea doar o
scadere slaba a calitatii, n locul unor intarzieri deranjante care ar aparea n cazul retransmisiei
pachetelor pierdute. [7]
Nu exist controlul congestiei: UDP nu evit congestiile de unul singur, i este posibil ca
aplicatiile de viteza mare s duca la blocaj dac nu se implementeaz metode de control al
congestiei la nivelul aplicaiei. [14]
Portul sursa - Indica portul procesului emitent. Este portul catre care trebuie trimise
raspunsurile.
Portul destinatie - Precizeaza portul procesului destinatie de poe hostul destinatie.
Lungime - Este lungimea in octeti a datagramei utilizatorului inclusiv antetul.
Suma de control - Este un camp optional de 16 biti este complementul fata de unu al sumei in
complement fata de unu a antetului pseudo-IP , antetului UDP si datelor UDP. Antetul pseudo-IP
contine adresele IP sursa si destinatie, protocolul si lungimea UDP.
Antetul pseudo-IP extinde efectiv suma de control pentru a include datagrama IP originala
(nefragmentata).
Modul in care acestea trebuie inplementate este lasat la discretia celui care realizeaza aplicatia
UDP.
Trebuie avut grija ca UDP si IP nu asigura siguranta livrarii, controlul transmisiei si
recuperarea erorilor, astfel incat acestea trebuie asigurate de catre aplicatie.
Dintre aplicatiile standard care utlilizeaza UPD enumeram:
Ce este TCP ?
Conform [1] TCP este un protocol standard cu STD numarul 7. TCP este descris in RFC 793
Transmission Control Protocol. Statatul sau este de recomandat, dar in practica orice implementare a
TCP/IP care nu este folosita exclusiv pentru rutare va include TCP. TCP asigura considerabil mai multe
facilitati pentru aplicatii decat UDP, mai ales recuperarea erorilor, controlul transmisiei si siguranta. TCP
este un protocol orientat pe conexiune spre deosebire de UDP care este fara conexiune. Cele mai multe
aplicatii protocol, precum Telnet si FTP, utilizeaza TCP. Cele doua procese comunica unul cu celalalt
printr-o conexiune TCP (InterProcess Communication - IPC), asa cum se arata in figura urmatoare.
Principalul scop al TCP este de a asigura circuit logic sigur sau serviciu de conexiune intre doua
procese pereche. El nu se bazeaza pe siguranta altor protocoale de nivel inferior (cum este IP), asa ca TCP
trebuie sa garanteze el insusi siguranta transmisiei. TCP poate fi caracterizat prin urmatoarele facilitati pe
care le asigura pentru aplicatiile care il utilizeaza:
Siguranta
TCP atribuie un numar de secventa fiecarui octet transmis si asteapta o confirmare
(acknowledgment - ACK) de la aplicatia care receptioneaza datele TCP. Daca confirmarea nu vine intr-un
interval de timp prestabilit, datele sunt transmise din nou. Deoarece datele sunt transmise in blocuri
(segmente TCP) numai numarul de secventa al primului octet este trimis calculatorului destinatie.
Aplicatia TCP destinatie foloseste numerele de secventa pentru a le ordona atunci cand sosesc neordonate
si sa elimine segmentele duplicate.
Multiplexarea
Este realizata prin utilizarea porturilor, la fel ca si la UDP.
Conexiunile logice
Siguranta si mecanismele de control ale transmisiei descrise mai inainte necesita ca TCP sa
initializeze si mentina cateva informatii referitoare la starea fiecarui flux de date (data stream). Aceasta
informatie de stare ce include socketurile, numerele de secventa, dimensiunile ferestrelor se numeste
conexiune logica.
Full Duplex
TCP asigura doua fluxuri concurente de date in ambele sensuri.
10
Octetii A sunt octetii transmisi despre care s-a receptionat confirmarea de primire.
Octetii B sunt octetii trimisi despre care nu s-a receptionat confirmarea de primire.
Octetii C pot fi trimisi fara a se astepta nici o confirmare.
Octetii D sunt octeti care nu pot fi inca transmisi.
11
Unde:
Portul sursa - Numarul portului sursa pe 16 biti folosit de receptor pentru a raspunde.
Portul destinatie - Numarul portului destinatie pe 16 biti.
Numarul de secventa - Numarul de secventa al primului octate de date din acest segment. Daca
bitul de control SYN este setat, numarul de secventa este numarul de secventa initial (n) si
primul octet de date este n+1.
Numarul de confirmare - Daca bitul de control ACK este setat, acest camo contine valoarea
urmatorului numar de secventa pe care receptorul se asteapta sa-l primeasca.
Data Offset - Numarul de cuvinte de 32 biti din antetul TCP. El indica unde incep datele.
Reserved - Sase biti rezervati pentru utilizare in viitor; trebuie sa fie zero.
URG - Precizeaza ca articolul pointer de urgenta are semnificatie in acest segment.
ACK - Precizeaza ca articolul de "Numar de secventa confirmat" are semnificatie in acest
segment.
PSH - Functia push.
RST - Reseteaza conexiunea.
SYN - Sincronizeaza numerele de secventa.
FIN - Nu mai sunt date de la emitent.
Fereastra - Folosit in segmenteleACK. El specifica numarul de octeti de date incepand cu acela
indicat in "numarul de secventa confirmat" pe care receptorul (adica emitentul acestui segment)
doreste (si poate) sa accepte.
12
Suma de control - Complementul fata de unu al sumei in complement fata de unu al tuturor
cuvintelor de 16 biti din pseudo- antet, antetul TCP si datele TCP. La calcularea sumei de
control, campul "Suma de control" este considerat zero.
Pseudo-antetul este acelasi ca cel folosit de catre UDP pentru calculul sumei sale de control. Este
un antet pseudo-IP folosit doar pentru calculul sumei de control cu formatul descris in figura
urmatoare.
Pointerul de urgenta - Indica primul octet de date ce urmeaza ce urmeaza datelor urgente. Are
semnificatie numai atunci cand bitul de control URG este setat.
13
14
Abort
15
Blibliografie
http://www.unibuc.ro/prof/niculae_c_m/telecom/cuprins.htm
http://www.kulituranauka.com/wp-content/uploads/2012/02/lectia7.pdf
http://profs.info.uaic.ro/~busaco/teach/courses/net/presentations/net5.pdf
http://shannon.etc.upt.ro/laboratoare/rcd/rcd_laborator.pdf
http://carment.ase.ro/rc/curs/cap7.pdf
http://vega.unitbv.ro/~zaharia/tdrcii/TDRC_II-10-TCP.pdf
http://stst.elia.pub.ro/news/RC/Teme_RC_IVA_2011_12/Lecu%20tica%20vidrascu%20442A%20Algorit
mi%20de%20control%20al%20congestiei%20.pdf
16