SlideShare una empresa de Scribd logo
1 de 40
Descargar para leer sin conexión
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]
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]
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]
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]
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]
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]
Retele de calculatoare



                                                 End-to-End
    Proces A




                                                            Proces B




Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [7]
Retele de calculatoare



                                               Hop-by-Hop

   Proces A




                                                            Proces B



Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [8]
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]
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]
Retele de calculatoare



                                  Nivelul transport
       Primitive generale
   •
       (permit accesarea serviciilor)




Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [11]
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]
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]
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]
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]
Retele de calculatoare



                                                 Protocoale
    • TCP – similar telefoniei
        – Initierea convorbirii


        – Dialogul dintre parti


        – Terminarea convorbirii



Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [16]
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]
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]
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]
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]
Retele de calculatoare



                                                     Protocoale
                                                                  client
                                                                  server




                                                        Automatul
                                                         finit TCP
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [21]
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]
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]
Retele de calculatoare



                                                 Protocoale
• Antetul TCP




Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [24]
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]
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]
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]
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]
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]
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]
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]
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]
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]
Retele de calculatoare
• Managementul
  ferestrei TCP
                                                 Protocoale




Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [34]
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]
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]
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]
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]
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]
Retele de calculatoare




                         Intrebari?




Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [40]

Más contenido relacionado

La actualidad más candente

Computer Networks. RPC
Computer Networks. RPCComputer Networks. RPC
Computer Networks. RPCSabin Buraga
 
Computer Networks. Main concepts
Computer Networks. Main conceptsComputer Networks. Main concepts
Computer Networks. Main conceptsSabin Buraga
 
Computer Networks. Domain Name System
Computer Networks. Domain Name SystemComputer Networks. Domain Name System
Computer Networks. Domain Name SystemSabin Buraga
 
Computer Networks. Internet programming (more advanced topics)
Computer Networks. Internet programming (more advanced topics)Computer Networks. Internet programming (more advanced topics)
Computer Networks. Internet programming (more advanced topics)Sabin Buraga
 
Computer Networks. Retrospective & perspective
Computer Networks. Retrospective & perspectiveComputer Networks. Retrospective & perspective
Computer Networks. Retrospective & perspectiveSabin Buraga
 
Computer Networks. P2P
Computer Networks. P2PComputer Networks. P2P
Computer Networks. P2PSabin Buraga
 
Computer Networks. Security: monitoring & testing
Computer Networks. Security: monitoring & testingComputer Networks. Security: monitoring & testing
Computer Networks. Security: monitoring & testingSabin Buraga
 

La actualidad más candente (7)

Computer Networks. RPC
Computer Networks. RPCComputer Networks. RPC
Computer Networks. RPC
 
Computer Networks. Main concepts
Computer Networks. Main conceptsComputer Networks. Main concepts
Computer Networks. Main concepts
 
Computer Networks. Domain Name System
Computer Networks. Domain Name SystemComputer Networks. Domain Name System
Computer Networks. Domain Name System
 
Computer Networks. Internet programming (more advanced topics)
Computer Networks. Internet programming (more advanced topics)Computer Networks. Internet programming (more advanced topics)
Computer Networks. Internet programming (more advanced topics)
 
Computer Networks. Retrospective & perspective
Computer Networks. Retrospective & perspectiveComputer Networks. Retrospective & perspective
Computer Networks. Retrospective & perspective
 
Computer Networks. P2P
Computer Networks. P2PComputer Networks. P2P
Computer Networks. P2P
 
Computer Networks. Security: monitoring & testing
Computer Networks. Security: monitoring & testingComputer Networks. Security: monitoring & testing
Computer Networks. Security: monitoring & testing
 

Destacado

Programare Web (Introducere in securitate)
Programare Web (Introducere in securitate)Programare Web (Introducere in securitate)
Programare Web (Introducere in securitate)Sabin Buraga
 
Facultatea de Informatica Iasi - Admitere 2008 - FII pentru viitor
Facultatea de Informatica Iasi - Admitere 2008 - FII pentru viitorFacultatea de Informatica Iasi - Admitere 2008 - FII pentru viitor
Facultatea de Informatica Iasi - Admitere 2008 - FII pentru viitorSabin Buraga
 
Iso osi and tcp-ip reference models
Iso osi and tcp-ip reference modelsIso osi and tcp-ip reference models
Iso osi and tcp-ip reference modelsbhavanatmithun
 
Web 2016 (02/13) Programare Web – Protocolul HTTP. Cookie-uri. Sesiuni Web
Web 2016 (02/13) Programare Web – Protocolul HTTP. Cookie-uri. Sesiuni WebWeb 2016 (02/13) Programare Web – Protocolul HTTP. Cookie-uri. Sesiuni Web
Web 2016 (02/13) Programare Web – Protocolul HTTP. Cookie-uri. Sesiuni WebSabin Buraga
 
Web 2016 (03/13) Programare Web – Servere de aplicații. Arhitectura aplicații...
Web 2016 (03/13) Programare Web – Servere de aplicații. Arhitectura aplicații...Web 2016 (03/13) Programare Web – Servere de aplicații. Arhitectura aplicații...
Web 2016 (03/13) Programare Web – Servere de aplicații. Arhitectura aplicații...Sabin Buraga
 
Căutarea resurselor Web
Căutarea resurselor WebCăutarea resurselor Web
Căutarea resurselor WebSabin Buraga
 
Web 2016 (01/13) Spațiul World Wide Web – aspecte arhitecturale
Web 2016 (01/13) Spațiul World Wide Web – aspecte arhitecturaleWeb 2016 (01/13) Spațiul World Wide Web – aspecte arhitecturale
Web 2016 (01/13) Spațiul World Wide Web – aspecte arhitecturaleSabin Buraga
 
Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)
Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)
Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)Sabin Buraga
 
Dezvoltator Web?! – ...în 2016
Dezvoltator Web?! – ...în 2016Dezvoltator Web?! – ...în 2016
Dezvoltator Web?! – ...în 2016Sabin Buraga
 

Destacado (9)

Programare Web (Introducere in securitate)
Programare Web (Introducere in securitate)Programare Web (Introducere in securitate)
Programare Web (Introducere in securitate)
 
Facultatea de Informatica Iasi - Admitere 2008 - FII pentru viitor
Facultatea de Informatica Iasi - Admitere 2008 - FII pentru viitorFacultatea de Informatica Iasi - Admitere 2008 - FII pentru viitor
Facultatea de Informatica Iasi - Admitere 2008 - FII pentru viitor
 
Iso osi and tcp-ip reference models
Iso osi and tcp-ip reference modelsIso osi and tcp-ip reference models
Iso osi and tcp-ip reference models
 
Web 2016 (02/13) Programare Web – Protocolul HTTP. Cookie-uri. Sesiuni Web
Web 2016 (02/13) Programare Web – Protocolul HTTP. Cookie-uri. Sesiuni WebWeb 2016 (02/13) Programare Web – Protocolul HTTP. Cookie-uri. Sesiuni Web
Web 2016 (02/13) Programare Web – Protocolul HTTP. Cookie-uri. Sesiuni Web
 
Web 2016 (03/13) Programare Web – Servere de aplicații. Arhitectura aplicații...
Web 2016 (03/13) Programare Web – Servere de aplicații. Arhitectura aplicații...Web 2016 (03/13) Programare Web – Servere de aplicații. Arhitectura aplicații...
Web 2016 (03/13) Programare Web – Servere de aplicații. Arhitectura aplicații...
 
Căutarea resurselor Web
Căutarea resurselor WebCăutarea resurselor Web
Căutarea resurselor Web
 
Web 2016 (01/13) Spațiul World Wide Web – aspecte arhitecturale
Web 2016 (01/13) Spațiul World Wide Web – aspecte arhitecturaleWeb 2016 (01/13) Spațiul World Wide Web – aspecte arhitecturale
Web 2016 (01/13) Spațiul World Wide Web – aspecte arhitecturale
 
Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)
Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)
Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)
 
Dezvoltator Web?! – ...în 2016
Dezvoltator Web?! – ...în 2016Dezvoltator Web?! – ...în 2016
Dezvoltator Web?! – ...în 2016
 

Más de Sabin Buraga

Web 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturaleWeb 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturaleSabin Buraga
 
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebWeb 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebSabin Buraga
 
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebWeb 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebSabin Buraga
 
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Sabin Buraga
 
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Sabin Buraga
 
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelWeb 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelSabin Buraga
 
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Sabin Buraga
 
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Sabin Buraga
 
Web 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma RESTWeb 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma RESTSabin Buraga
 
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Sabin Buraga
 
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Sabin Buraga
 
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeWeb 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeSabin Buraga
 
STAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor WebSTAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor WebSabin Buraga
 
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţialeSTAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţialeSabin Buraga
 
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.Sabin Buraga
 
STAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.jsSTAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.jsSabin Buraga
 
STAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului WebSTAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului WebSabin Buraga
 
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSTAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSabin Buraga
 
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScriptSTAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScriptSabin Buraga
 
STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5Sabin Buraga
 

Más de Sabin Buraga (20)

Web 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturaleWeb 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturale
 
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebWeb 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
 
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebWeb 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
 
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
 
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
 
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelWeb 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
 
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
 
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
 
Web 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma RESTWeb 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma REST
 
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
 
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
 
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeWeb 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
 
STAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor WebSTAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor Web
 
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţialeSTAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
 
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
 
STAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.jsSTAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.js
 
STAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului WebSTAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului Web
 
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSTAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
 
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScriptSTAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
 
STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5STAW 08/12: Programare Web. Suita de tehnologii HTML5
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]
  • 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]