Web 2016 (02/13) Programare Web – Protocolul HTTP. Cookie-uri. Sesiuni WebSabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2016 (03/13) Programare Web – Servere de aplicații. Arhitectura aplicații...Sabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
A presentation regarding search engines, Web robots and related technologies prepared to be delivered during "Computer Science at the Castle" Summer School (Macea, Arad, Romania, 2016).
O prezentare referitoare la motoare de căutare, roboți Web și alte tehnologii înrudite pregătită pentru Școala de vară "Informatica la Castel" (Macea, Arad, România, 2016): http://informaticalacastel.ro/
Web 2016 (01/13) Spațiul World Wide Web – aspecte arhitecturaleSabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)Sabin Buraga
A practical presentation regarding the most useful concepts of CSS (Cascading Style Sheets) specifications in the Web design context. These slides were prepared for delivery at the "Computer Science at the Castle" Summer School (Macea, Arad, Romania, 2016). Various resources are available at http://profs.info.uaic.ro/~busaco/teach/labs/css/
O prezentare practică vizând cele mai utile concepte ale specificațiilor CSS (Cascading Style Sheets) în contextul designului Web. Aceste informații au fost expuse în cadrul Școlii de vară "Informatica la Castel" (Macea, Arad, România, 2016). Diverse resurse de interes sunt oferite la http://profs.info.uaic.ro/~busaco/teach/labs/css/
A lecture – prepared to be delivered during "Computer Science at the Castle" Summer School (Macea, Arad, Romania, 2016): www.informaticalacastel.ro – regarding the most important aspects on Web development and current perspectives (2016 updated edition).
For other resources of interest, visit http://profs.info.uaic.ro/~busaco/teach/
O prelegere reunind cele mai importante aspecte privind dezvoltarea Web și perspectivele actuale (ediția actualizată pentru 2016).
Pentru alte resurse de interes, a se consulta http://profs.info.uaic.ro/~busaco/teach/
Web 2020 01/12: World Wide Web – aspecte arhitecturaleSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2016 (02/13) Programare Web – Protocolul HTTP. Cookie-uri. Sesiuni WebSabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2016 (03/13) Programare Web – Servere de aplicații. Arhitectura aplicații...Sabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
A presentation regarding search engines, Web robots and related technologies prepared to be delivered during "Computer Science at the Castle" Summer School (Macea, Arad, Romania, 2016).
O prezentare referitoare la motoare de căutare, roboți Web și alte tehnologii înrudite pregătită pentru Școala de vară "Informatica la Castel" (Macea, Arad, România, 2016): http://informaticalacastel.ro/
Web 2016 (01/13) Spațiul World Wide Web – aspecte arhitecturaleSabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)Sabin Buraga
A practical presentation regarding the most useful concepts of CSS (Cascading Style Sheets) specifications in the Web design context. These slides were prepared for delivery at the "Computer Science at the Castle" Summer School (Macea, Arad, Romania, 2016). Various resources are available at http://profs.info.uaic.ro/~busaco/teach/labs/css/
O prezentare practică vizând cele mai utile concepte ale specificațiilor CSS (Cascading Style Sheets) în contextul designului Web. Aceste informații au fost expuse în cadrul Școlii de vară "Informatica la Castel" (Macea, Arad, România, 2016). Diverse resurse de interes sunt oferite la http://profs.info.uaic.ro/~busaco/teach/labs/css/
A lecture – prepared to be delivered during "Computer Science at the Castle" Summer School (Macea, Arad, Romania, 2016): www.informaticalacastel.ro – regarding the most important aspects on Web development and current perspectives (2016 updated edition).
For other resources of interest, visit http://profs.info.uaic.ro/~busaco/teach/
O prelegere reunind cele mai importante aspecte privind dezvoltarea Web și perspectivele actuale (ediția actualizată pentru 2016).
Pentru alte resurse de interes, a se consulta http://profs.info.uaic.ro/~busaco/teach/
Web 2020 01/12: World Wide Web – aspecte arhitecturaleSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 09/12: Servicii Web. Paradigma RESTSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSabin Buraga
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
STAW 08/12: Programare Web. Suita de tehnologii HTML5Sabin Buraga
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
STAW 08/12: Programare Web. Suita de tehnologii HTML5
Computer Networks. Transport (TCP & UDP)
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]
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]
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]
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]