Sunteți pe pagina 1din 16

Cuprins

1. User Datagram Protocol


1.1 Format mesaj UDP
1.2 Multiplexare, Demultiplexare, Porturi
2. Transport Control Protocol (TCP)
2.1 Format segment TCP

Baze de date Curs 13 1


1. User Datagram Protocol (UDP)

• Este necesar un mecanism care să distingă dintre multiplele


destinaţii ale unei gazde date, o destinaţie fixată.
• Cum se permite ca programele de aplicaţii ce sunt executate pe
un calculator dat să primeascã sau sã recepţioneze datagrame?
• Sistemele de operare ale celor mai multe calculatoare suportă
multiprogramarea ceea ce înseamnă că ele permit ca multiple
aplicaţii să se execute simultan.
• Fiecare program în executie este identificat cu termenul de
proces, task, program de aplicaţie sau proces la nivel utilizator.
Un proces este ultima destinaţie a unui mesaj.
• Procesele sunt create şi distruse dinamic, transmiţătorii cunosc
adesea putin pentru a identifica un proces pe altă maşină.
• Ar fi util să specifice procesele care recepţionează datagrame,
fără să informeze transmiţătorul.
• Destinaţia trebuie identificata fara a cunoaşte procesul ce
implementează această funcţie

Baze de date Curs 13 2


• UDP formează un mecanism primar pe care programele de
aplicaţie îl utilizează să transmită datagrame la alte aplicaţii.
• In plus faţă de trimiterea datelor, fiecare mesaj UDP conţine
ambele numere de port (destinaţie, sursă) făcând posibil ca
softwareul UDP de la destinaţie să trimită mesajul la portul invocat
şi să răspundă în replică.
• UDP lucrează similar cu IP însă nu necesită confirmare pentru a fi
sigur că mesajul a sosit la destinaţie, nu ordonează mesajele sosite
şi nu închide bucla pentru controlul vitezei la care se produce
schimbul de mesaje.
• Mesajele UDP pot fi pierdute, duplicate sau să sosească în altă
ordine.
• Un program de aplicaţie care utilizează UDP agregă întreaga
responsabilitate pentru manipularea problemelor de siguranţă,
incluzând pierderea mesajelor, duplicarea, întârzierea, schimbarea
ordinii şi pierderea conectivităţii.
• Programele de aplicaţie ignoră aceste probleme atunci când
softwareul a fost proiecat.
• Ca urmare UDP funcţioneza bine în reţele locale şi eşuează de
cele mai multe ori în reţele extinse.
• Sunt totuşi aplicaţii la care este suficient ca numai o parte dintre
pachetele transmise să fie recepţionate corect.
Baze de date Curs 13 3
1.1 Format mesaj UDP

• Fiecare mesaj UDP este numit şi USER DATAGRAM.


• Conceptual o datagramă constă din două părţi:
1. UDP header
2. UDP data.
• Headerul conţine 2 cuvinte de 32 biţi cu semnificaţia din figura

• Câmpurile port sursă şi port destinaţie conţin câte un întreg stocat pe


16 biţi, întreg ce indică numărul portului UDP utilizat pentru
demultiplexarea datagramelor între procesele ce aşteaptă să
primească date. Câmpul port sursă este opţional.
• Câmpul lungime conţine numărul octeţilor din datagramă. Valoarea
minimă este 8 adică lungimea headerului. Suma de control este
opţională şi nu va fi utilizată totdeauna. Valoarea zero arată că nu a
fost calculată.

Baze de date Curs 13 4


1.2 Multiplexare, Demultiplexare, Porturi
• Dacă se acceptă că datagramele UDP vin de la mai multe aplicaţii
care apoi sunt pasate la nivelul IP pentru distribuţie, tot aşa o serie
de mesaje vin de la IP şi trebuiesc pasate programelor de aplicaţie.
• Conceptual, softwareul de multiplexare şi demultiplexare cât şi
programele de aplicaţie comunică prin mecanisme de port.
• În practică, fiecare program de aplicaţie trebuie să negocieze cu
sistemul de operare pentru a obţine portul protocol şi portul asociat
înainte de a trimite o datagramă UDP.
• Odată portul asignat, orice program de aplicaţie va avea acel port în
UDP Source port.
• Cel mai simplu mod de a gândi un port UDP este cel al
mecanismului de coadă.
• În multe implementări când programul de aplicaţie negociază cu
sistemul de operare, crează o coadă internă în care ţine mesajele
sosite. Când UDP recepţionează o datagramă, se verifică dacă
portul destinaţie coincide cu portul curent utilizat.
• O eroare apare dacă portul are bufferul plin şi ca efect datagrama
se pierde.

Baze de date Curs 13 5


Porturi rezervate şi porturi disponibile.

• Asignarea numărului de port este foarte importantă întrucât cele


două calculatoare care comunică trebuie să agreeze numărul de
port înainte de comunicare. De exemplu când o maşină A doreşte
să comunice cu o maşină B pentru a obţine un fişier, trebuie să
cunoască ce port utilizează B pentru ftp.
• Sunt în această situaţie posibile două abordări:
1. Utilizarea unei autorităţi centrale care să asigneze lista porturilor
asociate şi toate aplicaţiile să fie proiectate în conjuncţie cu această
specificaţie. Această variantă formează ceea ce se numeşte
asignare generală şi porturile sunt cunoscute.
2. Alocarea dinamică în care porturile nu sunt global cunoscute şi
atunci când o aplicaţie necesită un port software de reţea il
asignează. Pentu a învăţa despre asignarea curentă a porturilor un
alt calculator trebuie să trimită o cerere asupra asignării porturilor
pentru un anumit serviciu şi maşina ţintă va răspunde cu informaţia
necesară.

Baze de date Curs 13 6


2. Transport Control Protocol (TCP)

Putem considera că interfaţa între programele de aplicaţie şi TCP/IP,


din punctul de vedere al siguranţei, se poate împărţi în cinci
componente:
• Orientarea pe şir. Când două programe de aplicaţie transferă
volume mari de date acestea sunt privite ca şiruri de biţi, împărţiţi în
grupuri de câte 8 biţi (octeţi).
• Conectarea circuitelor virtuale. După ce transferul porneşte ambele
aplicaţii, transmiţător şi receptor, interacţionează cu sistemul de
operare informându-l de necesitatea transferului de date. Dacă din
diferite motive comunicaţia eşuează se detectează o eroare se
comunică aceasta programelor de aplicaţie. Aici s-a utilizat termenul
de circuit virtual pentru a descrie conexiunea între programele de
aplicaţie şi suportul hardware.
• Tranferul bufferat. Programele de aplicaţie trimite datele unui circuit
virtual prin pasarea repetată a octeţilor către software-ul ce
implementează protocolul. La recepţie software-ul protocol distribuie
octeţii în aceeaşi ordine făcându-i disponibili aplicaţiei de receptie.

Baze de date Curs 13 7


Software-ul care implementează protocolul poate să
împartă datele în pachete de dimensiune independentă
de mărimea celor care le transferă programul de
aplicaţie. La recepţie un mecanism similar determină ca
TCP să facă datele disponibile pentru aplicaţie fără
întârziere.
• Şiruri nestructurate. TCP nu este orientat pe şir de date,
programele de aplicaţie utilizând serviciul de şir înţeleg
conţinutul acestuia şi agreează formatul şirului înainte de
a iniţia o conexiune.
• Conexiunea full-duplex permite transferul simultan în
ambele direcţii. O astfel de conexiune este cel mai des
utilizată.

Baze de date Curs 13 8


• Este firească întrebarea asupra modului în care protocolul
realizează siguranţa când utilizează o comunicaţie ce nu oferă
siguranţă. Cele mai multe protocoale utilizează o tehnică
fundamentală cunoscută sub numele positive acknowledgement
with retransmission. Tehnica cere ca la comunicarea cu o sursă
aceasta să raspundă cu un mesaj ACK la recepţia datelor

Baze de date Curs 13 9


• TCP utilizează pentru confirmarea receptiei o tehnică specifică
numită şi sliding windows. Conceptul, cunoscut sub numele de
fereastră alunecătoare, arată secvenţa de evenimente ce sunt
gestionate la un moment dat. Pentru a asigura siguranţa,
transmiţătorul trimite un pachet şi aşteaptă confirmarea înainte de
a trimite un altul. Ca urmare viteza de comunicaţie va scădea
foarte mult datorită timpului de aşteptare confirmare. Tehnica de
fereastră alunecătoare este mai complexă decât cea de
confirmare pozitivă şi retransmisie. Prin această tehnică se
permite transmiţătorului să trimită pachete multiple înainte de a
recepţiona confirmarea. Protocolul asignează o unică fereastră de
mărime fixă şi transmite toate pachetele alocate în interiorul
ferestrei. O structura a ferestrei este ilustrata in figura urmatoare
cu o fereaastra de 8 pachete.

Baze de date Curs 13 10


• Numărul maxim de pachete neconfirmate este specificat de
dimensiunea ferestrei alunecătoare. Dacă mărimea ferestrei este 8
atunci transmiţătorul poate trimite maxim 8 pachete fără să aştepte
confirmarea. Singurul caz în care transmiţătorul aşteaptă confirmare
este cel în care distanţa dintre cel mai vechi pachet neconfirmat şi
ultimul pachet transmis este egală cu dimensiunea ferestrei
alunecătoare.
• TCP/IP realizează siguranţa comunicaţiei. Este important a reţine că
TCP este un protocol de comunicaţie şi nu o piesă software.
Diferenţa între un protocol şi un software care îl implementează este
analoagă cu diferenţa între un limbaj de programare şi un compilator.

Baze de date Curs 13 11


• Reamintim că o conexiune constă dintr-un circuit virtual între două
aplicaţii şi este natural a gândi că un program de aplicaţie serveşte
un endpoint conexiune.
• TCP defineşte un endpoint ca o pereche de întregi (adresă host,
port) unde adresă host reprezintă adresa IP pentru o maşină şi port
este portul TCP al acelui host. De exemplu endpoint (128.10.2.3,
25) specifica portul TCP 25 al maşinii cu adresa IP 128.10.2.3
• Dacă am definit noţiunea de endpoint este uşor a defini conexiunea
prin cei doi endpoints.
• Dacă pentru o conexiune de la maşina (18.26.0.36) la maşina
(128.10.2.3) se definesc cei doi endpoints astfel: (18.26.0.36, 1069)
şi (128.10.2.3, 25), o altă conexiune poate fi în execuţie la maşina
128.9.0.32 cu endpoints: (128.9.0.32, 1184) şi (128.10.2.3, 53).
Este permis ca o conexiune să împartă un endpoints. De exemplu
se poate adăuga o altă conexiune la cele de mai jos de la o maşină
(128.2.254.139) la o altă maşină:
(128.2.254.139, 1184) şi (128.10.2.3, 53).

Baze de date Curs 13 12


2.1 Format segment TCP
• O unitate de transfer între componentele software TCP între două
maşini este numită "segment".

• Segmentul are doua parţi: header şi date.


• Headerul este cunoscut cu denumirea TCP header şi conţine
informaţiile de control.
• Câmpurile Port sursă şi Port destinaţie conţin porturile TCP prin care se
identifică programul de aplicaţie de la sfirşitul conexiunii.
Baze de date Curs 13 13
• Număr secvenţă identifică poziţia în şirul de date al
transmiţătorului pentru datele din segment.
• Număr confimare identifică numărul de octeţi pe care
sursa speră să-l primească mai departe.
• Număr secvenţă se referă la şirul urmat în aceeaşi
direcţie ca şi segmentul pe când numărul de confirmare
se referă la şirul urmat în direcţia opusă a segmentului.
• HLEN este un întreg ce specifică lungimea headerului
secvenţei măsurat în multipli de 32 biţi. El este necesar
întrucât câmpul OPTIONS variază în lungime funcţie de
opţiunea ce a fost inclusă.
• Ca urmare mărimea headerului TCP este funcţie de
opţiunea selectată.
• Cei 6 biţi neutilizaţi sunt rezervaţi pentru utilizări
ulterioare.

Baze de date Curs 13 14


TCP utilizează un grup de 6 biţi numit şi CODE BITS ce specifică
scopul şi conţinutul segmentului. Aceşti biţi au interpretarea:
1. URG Pointerul urgent este valid
2. ACK Câmp confirmare valid
3. PSH Segmentul cere un PUSH
4. RST Resetare conexiune
5. SYN Sincronizarea număr secventă
6. FIN Transmiţătorul a atins sfârşitul şirului
• Campul WINDOW este un întreg pe 16 biţi fără semn ce specifică
mărimea buferului.
O confirmare TCP specifică numărul de secvenţă al următorului octet
pe care receptorul speră să-l primească.

Baze de date Curs 13 15


Baze de date Curs 13 16

S-ar putea să vă placă și