Your SlideShare is downloading. ×
0
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Computer Networks. Transport (TCP & UDP)

3,673

Published on

Computer Network course (in Romanian).

Computer Network course (in Romanian).

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,673
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
153
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Retele de calculatoare Retele de calculatoare Nivelul transport Sabin-Corneliu Buraga busaco@infoiasi.ro http://www.infoiasi.ro/~busaco Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [1]
  • 2. Retele de calculatoare Cuprins • Nivelul transport – Preliminarii – Porturi – Protocoale – TCP (Transmission Control Protocol) – UDP (User Datagram Protocol) – TCP versus UDP Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [2]
  • 3. Retele de calculatoare Preliminarii|ordinea octetilor Little-Endian Big-Endian Low Byte High Byte High Byte Low Byte Addr A Addr A+1 Addr A Addr A+1 Intel 80x86 IBM 370 DEC VAX Motorola 68000 DEC PDP-11 Sun Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [3]
  • 4. Retele de calculatoare Preliminarii|ordinea octetilor • Presupunem ca o masina BigEndian trimite valoarea 2 stocata pe un cuvint de 16 biti: 0000000000000010 • Masina LittleEndian va considera cuvintul de 16 biti ca avind valoarea 512: 0000001000000000 • Drept conventie, se considera ordinea retelei (network byte order) – BigEndian Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [4]
  • 5. Retele de calculatoare Preliminarii|modele de servicii • orientate-conexiune vs. fara conexiune • secventa (ordinea de transmitere) • controlul erorilor – “checksums” • controlul fluxului • flux de octeti vs. flux de mesaje • full-duplex vs. half-duplex Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [5]
  • 6. Retele de calculatoare Preliminarii|modele de servicii • Multe servicii (controlul fluxului/erorilor) se pot realiza: – intre punctele terminale ale comunicatiei (ent-to-end) – intre fiecare 2 noduri ale drumului dintre cele 2 puncte terminale (hop-by-hop) • Comunicatiile pot fi mai eficiente folosind buffer-e Send Recv. Proces A Proces B Buffer Buffer Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [6]
  • 7. Retele de calculatoare End-to-End Proces A Proces B Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [7]
  • 8. Retele de calculatoare Hop-by-Hop Proces A Proces B Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [8]
  • 9. Retele de calculatoare Nivelul transport • Transmite date de la masina sursa la masina destinatie (comunicare “end-to-end”) • Asigura transportul datelor de la aplicatie la aplicatie • Asigura fluxuri de octeti in mod fiabil (reliable), orientat-conexiune • Ofera servicii mult mai fiabile decit nivelul retea (protocolul IP) – e.g., pachetele pierdute/incorecte la nivelul retea pot fi detectate/corectate la nivelul transport – Comunicatii orientate flux de date (stream-uri) sau datagrame – Conectare prin circuite virtuale – Transfer de date via zone tampon (buffers) Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [9]
  • 10. Retele de calculatoare Nivelul transport • Calitatea serviciilor – Rata erorilor – Rata de transfer – Intirzieri la stabilirea sau inchiderea conexiunii – Protectia, prioritatea, rezilienta conexiunii • Unitatea de date pentru transport este TPDU (Transport Protocol Data Unit) adresa IP:port Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [10]
  • 11. Retele de calculatoare Nivelul transport Primitive generale • (permit accesarea serviciilor) Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [11]
  • 12. Retele de calculatoare Porturi • Corespunzatoare adreselor IP la nivelul retea • Se asociaza unei aplicatii (serviciu) si nu unei gazde • Un proces poate oferi mai multe servicii (poate utiliza mai multe porturi) • Un serviciu poate corespunde la mai multe procese • 0 – 65535 • 0 – 1023 rezervate, 0 – 512 servicii de sistem RFC 1700 – Internet Assigned Number Authority (IANA) • Serviciile-sistem au porturi precizate in /etc/services • Exemple: 22 – SSH, 23 – telnet, 25 – SMTP, 80 – HTTP Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [12]
  • 13. Retele de calculatoare Protocoale • UDP (User Datagram Protocol) – Servicii neorientate-conexiune, nesigure – Nu ofera nici o calitate suplimentara a serviciilor – Nu recurge la negocieri sau la confirmari ale primirii datelor – Utilizat la apelul procedurilor la distanta via RPC (Remote Procedure Call) Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [13]
  • 14. Retele de calculatoare Protocoale • TCP (Transmission Control Protocol) – Servicii orientate-conexiune, sigure – Vizeaza oferirea calitatii maxime a serviciilor – Integreaza mecanisme de stabilire si de eliberare a conexiunii – Controleaza fluxul de date (stream-oriented) – Utilizat de majoritatea protocoalelor de aplicatii: TELNET, SMTP, HTTP,… Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [14]
  • 15. Retele de calculatoare Protocoale • UDP – similar postei terestre – Trimiterea unei scrisori – Nu se garanteaza ordinea receptionarii – Mesajul se poate pierde Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [15]
  • 16. Retele de calculatoare Protocoale • TCP – similar telefoniei – Initierea convorbirii – Dialogul dintre parti – Terminarea convorbirii Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [16]
  • 17. Retele de calculatoare Protocoale • TCP (Transmission Control Protocol) – Utilizeaza conexiuni, nu porturi ca abstractiuni fundamentale – Conexiunile se identifica prin perechi de puncte finale (end-points) – Astfel, un numar de port poate fi partajat de conexiuni multiple de pe aceeasi masina – Exemplu: conexiunea dintre (193.231.30.194, 3168) si (193.231.30.197, 25) – Ambele parti (expeditorul si destinatarul) trebuie sa participe la realizarea conexiunii – Una din parti ofera o deschidere pasiva – asteapta aparitia unei cereri de conectare a partenerului care realizeaza o deschidere activa Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [17]
  • 18. Retele de calculatoare Protocoale • Oferirea sigurantei comunicarii (reliability) – Confirmarea primirii cu retransmitere – La fiecare receptionare de date, se transmite expeditorului un mesaj de confirmare (acknowledgement) – Expeditorul memoreaza fiecare pachet transmis si asteapta confirmarea din partea destinatorului pentru CR=Connection Request a transmite urmatorul pachet ACK=Comm. Accepted – Daca dupa un timp dat DATA=primul mesaj nu se primeste confirmarea, de date trimis pachetul este retransmis Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [18]
  • 19. Retele de calculatoare Protocoale • Oferirea sigurantei comunicarii (reliability) – Problema • Pachetele de date, cit si pachetele de confirmare pot fi pierdute, eronate sau duplicate – Solutie • Mesajele de confirmare contin secvente de numere pentru ca destinatarul sa asocieze corect confirmarile pachetelor primite Duplicarea pachetelor CR si ACK Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [19]
  • 20. Retele de calculatoare Protocoale • Automatul finit TCP – Modeleaza comportamen- tul protocolului – Starile sunt utilizate la managementul conexiunii – Comanda netstat Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [20]
  • 21. Retele de calculatoare Protocoale client server Automatul finit TCP Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [21]
  • 22. Retele de calculatoare Protocoale • Automatul finit TCP – Stabilirea conexiunii: • CLOSED – din aceasta stare se poate cere o deschidere activa (se trece in SYN_SENT) sau pasiva (SYN_RCVD) • LISTEN – se poate trimite o cerere de conexiune activa (se trece in SYN_SENT) ori pasiva (SYN_RCVD) – Conexiune stabilita: • ESTABLISHED – poate incepe transmisia de date (din aceasta stare se poate trece in CLOSE_WAIT sau FIN_WAIT_1) – Deconectare initiata de procesul partener • CLOSE_WAIT, LAST_ACK, CLOSE – Stari ce intervin in procesul de deconectare • FIN_WAIT_1, FIN_WAIT_2, CLOSING, TIME_WAIT Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [22]
  • 23. Retele de calculatoare Protocoale • Exemplu: (infoiasi)$ netstat -t Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 fenrir:1548 thor:auth TIME_WAIT tcp 0 0 fenrir:ssh thor:4008 ESTABLISHED tcp 0 0 fenrir:ftp-data c409-27.net.infoia:2674 TIME_WAIT tcp 0 0 fenrir:ssh c412-6.net.infoias:2508 ESTABLISHED tcp 0 0 fenrir:pop3s xteam:64688 TIME_WAIT tcp 0 1 fenrir:1546 mta-v12.level3.mai:smtp SYN_SENT tcp 0 0 localhost:1544 localhost:smtp TIME_WAIT tcp 0 540 fenrir:1541 www.cs.tuiasi.ro:www FIN_WAIT1 tcp 0 0 fenrir:ssh c409-20.net.infoia:1124 ESTABLISHED tcp 0 0 fenrir:pop3s xteam:64682 TIME_WAIT tcp 0 0 localhost:8008 localhost:1537 ESTABLISHED tcp 0 1 fenrir:1533 mta-v12.level3.mai:smtp SYN_SENT tcp 0 0 fenrir:ftp c412-11.net.infoia:1444 FIN_WAIT2 tcp 0 0 fenrir:1511 fenrir:1509 TIME_WAIT Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [23]
  • 24. Retele de calculatoare Protocoale • Antetul TCP Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [24]
  • 25. Retele de calculatoare Protocoale • Antetul TCP (cont.) – Biti de control: • URG (URGence) – exista un pointer la un pachet de date urgente • ACK (ACKnowledgement) – exista un numar corect de confirmare (utilizat de receptorul TCP) • PSH (PuSH) – datele vor fi transmise imediat aplicatiei destinatare • RST (ReSeT) – reinitializeaza conexiunea TCP • SYN (SYNchronize) – modulele TCP emitator/receptor vor sincroniza numerele de secventa (folosit la stabilirea conexiunii) • FIN (FINish) – indica inchiderea conexiunii (nu mai sunt trimise numere de secventa) Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [25]
  • 26. Retele de calculatoare -Transmission Control Protocol, Src Port: 1028 (1028), Dst Port: ssh (22) Seq:2966207870, Ack:2559443804 Source Port: 1028 (1028) Destination port: ssh (22) Sequence number: 2966207870 Next sequence number: 2966207918 Acknowledgement number: 2559443804 Header length: 32 bytes - Flags: 0x0018 (PSH, ACK) 0... .... = Congestion Window Reduced (CWR):Not set .0.. .... = ECN-Echo: Not set ..0. .... = Urgent: Not set ...1 .... = Acknowledgement: Set .... 1... = Push: Set .... .0.. = Reset: Not set .... ..0. = Syn: Not set .... ...0 = Fin: Not set Window size: 16192 Checksum: 0x5f84 (correct) - Options: (12 bytes) NOP NOP Time stamp: tsval 44887687, tsecr 60917100 • Un segment TCP Data (48 bytes) Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [26]
  • 27. Retele de calculatoare Protocoale • Succesiunea pachetelor de date dintre doua masini (vezi starile automatului TCP) Nr. Timp Sursa Destinatie Protocol Info 1 2.232904 192.168.0.13 192.168.1.16 TCP 1028⇒ssh[psh,ack] 2 2.233873 192.168.1.16 192.168.0.13 TCP ssh⇒1028[psh,ack] 3 2.234172 192.168.0.13 192.168.1.16 TCP 1028⇒ssh[ack] 4 2.247007 192.168.1.16 192.168.0.13 TCP ssh⇒1028[psh,ack] 5 2.247279 192.168.0.13 192.168.1.16 TCP 1028⇒ssh[ack] 6 2.247498 192.168.1.16 192.168.0.13 TCP ssh⇒1028[psh,ack] 7 2.247774 192.168.0.13 192.168.1.16 TCP 1028⇒ssh[ack] 8 2.247886 192.168.1.16 192.168.0.13 TCP ssh⇒1028[psh,ack] 9 2.248405 192.168.0.13 192.168.1.16 TCP 1028⇒ssh[ack] Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [27]
  • 28. Retele de calculatoare TCP • Stabilirea conexiunii – Three-way handshaking Stare de ascultare LISTEN Conectare (deschidere (deschidere activa) pasiva) SYN_SENT SYN_RCVD ESTABLISHED ESTABLISHED Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [28]
  • 29. Retele de calculatoare TCP • Inchiderea conexiunii – Trebuie sa aiba loc cu acordul ambelor parti – Conexiunile TCP fiind full-duplex, cind o aplicatie semnaleaza ca nu mai exista date de trimis, TCP va inchide conexiunea doar intr-o directie: • Se transmit datele, se asteapta confirmarea primirii, apoi se trimite un segment avind bitul FIN setat – Se utilizeaza o metoda three-way handshake modificata Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [29]
  • 30. Retele de calculatoare TCP • Resetarea conexiunii – Inchiderea conexiunii ≡ inchiderea unui fisier – Uneori conditii anormale forteaza aplicatiile sau software-ul de retea sa distruga conexiunea – Pentru resetarea conexiunii, o parte a comunicarii initiaza terminarea, trimitind un segment cu bitul RST setat – Cealalta parte abandoneaza conexiunea, fara a se mai transmite eventuale date ramase netransmise – Transferul in ambele directii este oprit, buffer-ele sunt golite Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [30]
  • 31. Retele de calculatoare TCP • Fortarea transmiterii datelor – TCP poate divide fluxul de date in segmente de dimensiuni diferite de pachetele vehiculate de aplicatii ⇒ eficienta transmisiei – Uneori intervine situatia de a transmite datele fara a se mai astepta umplerea buffer-elor (e.g., aplicatii interactive) – Fortarea transmiterii se realizeaza prin push: se seteaza bitul PSH si se forteaza transmiterea segmentelor, indiferent de starea de umplere a buffer-elor Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [31]
  • 32. Retele de calculatoare TCP • Controlul fluxului – Se utilizeaza bitul ACK la nivelul comunicarii duplex – Fereastra glisanta (sliding window) – La transmitere, datele se acumuleaza intr-un buffer cu 3 pointeri • Marimea ferestrei depinde de numarul secventei de confirmare – La receptie, buffer-ul contine 2 pointeri • Datele primite si confirmate • Datele care pot fi primite • Datele care nu pot fi inca primite Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [32]
  • 33. Retele de calculatoare TCP • Controlul fluxului – 1 2 3 transmisi si confirmati – 4 5 6 transmisi si neconfirmati – 7 8 9 pot fi transmisi cit de curind posibil – 10 11 nu se pot transmite fara mutarea ferestrei ferest. oferita (la receptor) ferest. utilizabila 123 4 5 6 7 8 9 10 11 … trimisi & confirm. trim. & neconf. de trimis nu pot fi trans. Fereastra glisanta la transmiterea datelor Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [33]
  • 34. Retele de calculatoare • Managementul ferestrei TCP Protocoale Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [34]
  • 35. Retele de calculatoare TCP • Detectia erorilor & retransmiterea datelor – Fiecare segment trimis contine un numar de secventa (Sequence Number) indicind pozitia octetilor transmisi in cadrul fluxului de date – Gazda destinatar verifica numarul de secventa pentru fiecare segment (se testeaza daca anumite segmente se pierd, sunt duplicate sau nu sunt in ordine) si trimite inapoi pentru fiecare segment un numar de confirmare (Acknowledgment Number) specificind numarul de secventa al urmatorului octet care se asteapta a fi receptionat – Segmentele pierdute sunt detectate folosindu-se un timer de retransmisie a datelor – Pentru detectarea erorilor se utilizeaza si checksum-uri Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [35]
  • 36. Retele de calculatoare UDP • Protocol de transport neorientat conexiune, nesigur, minimal • RFC 768 • Ca si TCP, utilizeaza IP • Ca si TCP, pentru a oferi servicii de comunicare intre procese foloseste porturi • Porturile TCP independente de porturile UDP Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [36]
  • 37. Retele de calculatoare UDP • Incapsularea UDP • Daca datagrama rezultata este prea mare, are loc o fragmentare la unul dintre nivelurile inferioare • Cimpul UDP checksum nu este obligatoriu Datagrama IP Datagrama UDP Antet IP Antet UDP Date UDP 20 bytes 8 bytes Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [37]
  • 38. Retele de calculatoare TCP vs. UDP • Ambele se bazeaza pe IP, utilizeaza porturi • Unitatea de transmisie se numeste: – Segment TCP – Pachet UDP • UDP ofera servicii minimale de transport (efort minim de transmisie) • TCP ofera servicii orientate-conexiune, full duplex, sigure – pentru transportul fluxurilor de octeti (mai sofisticat) • Utilizarea TCP sau UDP depinde de aplicatie: e-mail, transfer de fisiere, operare in timp-real, transmisii multimedia in timp-real, chat,… Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [38]
  • 39. Retele de calculatoare Rezumat • Nivelul transport – Preliminarii – Porturi – Protocoale – TCP (Transmission Control Protocol) – UDP (User Datagram Protocol) – TCP versus UDP Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [39]
  • 40. Retele de calculatoare Intrebari? Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [40]

×