TCP & UDP Curs 10 TCP si UDP Transmission Control Protocol Connection oriented RFC 793 User Datagram Protocol (UDP) Connectionless RFC 768 Corneliu Zaharia 2 Corneliu Zaharia Servicii TCP Comunicaţie sigură între perechi de procese De-a lungul unei varietăţi de reţele şi internet sigure şi nesigure Două posibilităţi de etichetare Data stream push Userul TCP poate cere transmisia tuturor datelor până la flagul push Receptorul la livra în aceeaşi manieră Elimină aşteptarea până la umplerea bufferelor Urgent data signal Indică date urgente Userul decide cum să le manipuleze 3 Corneliu Zaharia 4 Corneliu Zaharia Source port (16 bits) - service access point sursă Destination port (16 bits) - service access point destinaţie Sequence number (32 bits) - numărul de secvenţa a primului octet de date din segment, dacă flagul SYN nu e setat. Dacă flagul SYN e setat, este numărul iniţial de secvenţă (ISN) Acknowledgment number (32 bits) - Confirmare. Conţine numărul de secvenţă a octetului de date pe care entitate TCP aşteaptă să-l recepţioneze Data offset (4 bits) numărul de cuvinte de 32 de biţi din header Reserved (6 bits) rezervat pentru viitor Flags (6 bits): URG: campul Urgent pointer e important ACK: campul Acknowledgment e important PSH: Push function RST: Resetează conexiunea SYN: Sincronizează numărul de secvenţă FIN: nu mai sunt date de la transmiţător. Window (16 bits) alocarea de credit pentru controlul de flux, în octeţi. Checksum (16 bits) complement faţă de 1 a sumei modulo 2 16-1 a tuturor cuvintelor de 16 biţi din segment 5 Corneliu Zaharia 6 Corneliu Zaharia 1
Urgent Pointer (16 bits) trimitere la ultimul octet de date urgente din secvenţă. Aceasta permite să ştii câte date urgente aştepţi Options (Variable) acum, doar o opţiune e definită, care specifică mărimea maximă a segmentului care poate fi acceptat Parametrii către IP TCP trimite către IP câţiva parametri: Precedenţa Întârziere normală/mică Debit normal/mare Siguranţa normală/mare Securitate 7 Corneliu Zaharia 8 Corneliu Zaharia Mecanisme TCP (1) Stabilirea conexiunii Three way handshake Între perechi de porturi Un port se poate conecta la destinaţii multiple Three Way Handshake: Diagramă de stare 9 Corneliu Zaharia 10 Corneliu Zaharia Mecanisme TCP (2) Data transfer Stream logic de octeţi Octeţii numerotaţi modulo 2 23 Controlul de flux prin alocarea de credit a unui număr de octeţi Data se buffereaza la transmisie şi recepţie Mecanisme TCP (3) Terminarea conexiunii Graceful close Userii TCP generează primitiva CLOSE Entitatea de transport setează flagul FIN pe ultimul segment transmis Terminare bruscă prin primitiva ABORT Entitatea abandonează toate încercările de a trimite sau recepţiona date Se transmite un segment RST 11 Corneliu Zaharia 12 Corneliu Zaharia 2
Opţiuni Send Deliver Accept Retransmit Acknowledge Send Dacă nu există push sau close, entitatea TCP transmite când doreşte Datele se bufferează la bufferul de transmisie Poate construi segmente pe serii de date Poate aştepta o anumită cantitate de date 13 Corneliu Zaharia 14 Corneliu Zaharia Deliver În absenţa unui push, livrează date când doreşte Poate livra în aceeaşi ordine cu segmentele recepţionate Poate buffera date de la mai mult de 1 segment Accept Segmentele pot sosi out of order In ordine Acceptă doar segmentele în ordine Elimină segmentele care nu sunt în ordine In fereastră Acceptă toate segmentele care se află în fereastra de receţie 15 Corneliu Zaharia 16 Corneliu Zaharia Retransmisie TCP menţine o coadă de segmente transmise dar neconfirmate TCP va retransmite dacă nu se confirmă într-un anumit timp Doar primul O serie individual Acknowledgement Imediat Cumulativ 17 Corneliu Zaharia 18 Corneliu Zaharia 3
Primitive de cerere pentru TCP Primitive de cerere pentru TCP 19 Corneliu Zaharia 20 Corneliu Zaharia Primitive de raspuns pentru TCP Primitive de raspuns pentru TCP 21 Corneliu Zaharia 22 Corneliu Zaharia UDP User datagram protocol RFC 768 Serviciu Connectionless pentru proceduri la nivel aplicaţie Nesigur Livrare si controlul duplicării negarantat Overhead redus Ex. Pentru managementul reţelei Unde se foloseşte UDP Colectare de date Cerere raspuns Aplicaţii real-time 23 Corneliu Zaharia 24 Corneliu Zaharia 4
Header UDP Probleme - 1 Este o practică utilizată în general pentru protocoale de transport să multiplexezi pe acelaşi canal logic date şi control, folosind la bază o conexiune per user. O alternativă ar fi să se stabilească o singură conexiune pentru transportul protocolului între fiecare pereche de entităţi de transport care comunică. Această conexiune poate transmite toate informaţiile de control între toate conexiunile dintre cele 2 entităţi. Discutaţi implicaţiile acestei strategii. 25 Corneliu Zaharia 26 Corneliu Zaharia Probleme - 2 Discuţia despre controlul de flux de-a lungul unei reţele sigure presupune o presiune asupra protocolului de control de flux la nivelele inferioare. Discutaţi avantajele şi dezavantajele acestei strategii. Probleme - 3 2 entităţi de nivel transport comunică de-a lungul unei reţele sigure. Fie timul normalizat de transmisie a unui segment egal cu 1. Se presupune timpul de propagare end-to-end ca fiind 3, iar timpul pentru a livra un segment recepţionat la utilizator ca fiind 2. Transmiţătorul are iniţial credit pentru 7 segmente. Receptorul foloseşte o politică de control de flux conservativă şi actualizează alocarea creditului cu fiecare ocazie. Care e rata maximă de transport. 27 Corneliu Zaharia 28 Corneliu Zaharia Sfârşit curs 10 Am discutat: Protocoale de transport Curs 11 Recapitulare, probleme 29 Corneliu Zaharia 5