SlideShare a Scribd company logo
1 of 23
Download to read offline
Retele de calculatoare




              Retele de calculatoare
               Nivelul aplicatie – II
                 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
    • Protocoale la nivelul aplicatie
        –Transferul de fisiere
            • TFTP (Trivial File Transfer Protocol)
            • FTP (File Transfer Protocol)
        –Startarea serviciilor Internet (inetd)
        –Privire de ansamblu

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



                                                            TFTP
    • Asigura transferul de fisiere intre procese
    • Efort minim (nu se ofera securitate)
    • Usor de implementat, folosind UDP
    • Utilizat deseori la initializarea statiilor de
      lucru fara disc sau a altor dispozitive
      (in conjunctie cu RARP)
    • Vezi si RFC 783, 906, 1350

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



                                                            TFTP
    • Mesajele protocolului sint datagrame UDP,
      codificate in network byte order
    • Primii 2 octeti – codul operatiei (opcode)
    • Tipuri de mesaje: cerere de citire,
      cerere de scriere, date propriu-zise,
      confirmare, eroare



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



                                                            TFTP
 • Fisierele pot fi transferate in doua moduri:
     – netascii – pentru fisiere text
         • Toate liniile se termina cu rn (CR LF)
         • Ambele puncte terminale trebuie sa converteasca liniile
           in/din formatul netascii (pentru Unix: n ⇔ rn)
     – octet – pentru fisiere binare
         • Nu se realizeaza nici o translatie a liniilor
 • Problema: pierderea pachetelor de date
 • Solutie: retransmiterea pachetelor
   neconfirmate, cu controlul duplicarii


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



                                                            TFTP
• Comportamentul concurent al serverului TFTP
   – Din motive de limitare a resurselor,
     nu se poate utiliza intotdeauna fork()
   – Serverul va putea crea un port UDP nou, dialogul
     cu clientul realizindu-se prin intermediul acestuia
• Transferul fisierelor
    – Nu se transmite lungimea fisierului
    – Fiecare pachet de date va avea maxim 512 octeti
    – Ultimul mesaj de date va contine 0 bytes de date
    – Se pot trimite maxim 65535 de pachete de date
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [6]
Retele de calculatoare



                                                                 FTP
 • Folosit atit interactiv, cit si de programe
 • Asigura transferul sigur si eficient al datelor
 • Utilizeaza doua conexiuni TCP:
     – Conexiunea de control – pentru trimiterea comenzilor
       si receptionarea codurilor de stare
     – Conexiunea de date – pentru transferul efectiv
 • Conexiunea de control trebuie sa fie operationala
   in timpul transferului prin conexiunea de date
 • Conexiunile de date se creeaza dinamic,
   pentru fiecare client in parte
 • Vezi si RFC 959, 1068
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [7]
Retele de calculatoare



                                               FTP|model
• PI = Protocol Interpreter
• DTP = Data Transfer Protocol             Interfata utiliz.     Utilizator


                                Control
                Server PI                     Utiliz. PI


                                 Data
 Sistem                                                           Sistem
              Server DTP                     Utiliz.DTP
de fisiere                                                       de fisiere




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



                                       FTP|conexiuni
  •   Conexiunea de control utilizeaza portul 21
  •   Conexiunea de date foloseste portul 20
  •   Comenzile si raspunsurile sint linii de text
  •   Pentru interactivitate se foloseste protocolul TELNET
  •   Modelul standard al conexiunilor:
                                Control

          A
          A                                                      B
                                                                 B
                                  Date


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



                                 FTP|caracterizare

• Moduri de transfer
   – Text (ASCII) – continutul este transferat
     linie cu linie, modificindu-se sfirsitul de linie
     in functie de calculatorul sursa si destinatie:
     CR LF (Windows), LF (UNIX/Linux)
   – Binar – continutul e transferat neschimbat



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



                                 FTP|caracterizare
• Tipuri de acces
   – Anonim (FTP anonymous) – RFC 1635
      • Autentificare cu numele anonymous si
        drept parola o adresa de e-mail
      • Acces public la o serie de resurse
        (aplicatii, date, multimedia etc.)
   – Autentificat
      • Necesita un nume de utilizator existent,
        insotit de o parola valida
      • Pentru transferul de date in/din contul personal

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



                                          FTP|comenzi
  • Comenzi de control al accesului
      – USER, PASSword, ChangeWorkingDir, QUIT,…
  • Comenzi de transfer a parametrilor
      – PORT, PASiVe, TYPE, MODE, STRUcture,…
  • Comenzi de realizare a serviciilor FTP
      – RETRieve, STORe, APPEnd, ABORt,
        PrintWorkingDir, LIST,…
  • Raspunsul de stare
      – Linie de text continind:
        NNN un cod de stare (utilizat de software) si
        un mesaj explicativ (destinat oamenilor)

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



                              FTP|codul de stare
  • Prima cifra semnifica:
      – 1 replica pozitiva preliminara
        (“am indeplinit, dar asteapta”)
      – 2 replica pozitiva finala
        (“succes”)
      – 3 replica pozitiva intermediara
        (“am nevoie si de alte informatii”)
      – 4 replica negativa tranzitorie
        (“eroare, incerc iar”)
      – 5 replica negativa finala
        (“eroare fatala”)
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [13]
Retele de calculatoare



                              FTP|codul de stare
  • A doua cifra specifica grupuri de functii:
      –0   privitor la sintaxa
      –1   informare (ajutor, informatii de stare)
      –2   referitor la conexiuni
      –3   privitor autentificarea utilizatorului
      –4   nespecificat
      –5   referitor la sistemul de fisiere

  • Exemplu: 226 Transfer complete
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [14]
Retele de calculatoare



                                           FTP|transfer
• Structuri folosite
   – Fisier (file)
       • Fisierul transferat e un flux (stream) de octeti
   – Inregistrare (record)
       • Fisierul transmis reprezinta o serie de inregistrari
   – Pagina (page)
       • Fisierul transferat e o serie de blocuri de date;
         folosit pentru acces direct – fisierul este compus
         din date si din “gauri” intre date

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



                                           FTP|transfer
• Moduri de transfer
   – STREAM
       • fisier transmis ca flux de date
   – BLOCK
       • fisier transmis ca serie de blocuri precedate
         de antete continind contoare si descriptori de
         bloc (EOF, EOR, restart marker)
   – COMPRESSED
       • se transmit blocuri compresate, conform
         unui algoritm simplu de compresie (e.g., gzip)
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [16]
Retele de calculatoare



                                         FTP|exemplu
 1. Clientul se conecteaza la serverul FTP
    aflat la adresa 193.231.30.225
 2. Utilizatorul este autentificat
 3. Clientul (la adresa 193.231.30.197) asteapta
    comanda utilizatorului
 4. Utilizatorul introduce “dir”
 5. Clientul se conecteaza la portul de date FTP (20),
    folosind un socket atasat local la 2397
 6. Clientul trimite serverului (via portul 21) comanda
    PORT 197.231.30.197.9.93 (9*256+93=2397)
 7. Clientul asteapta codul de raspuns standard 200
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [17]
Retele de calculatoare



                                         FTP|exemplu
 8. Daca nu este OK, se afiseaza eroarea
 9. Clientul trimite serverului
     (via portul de control 21) comanda LIST
 10. Clientul asteapta codul de raspuns 150
 11. Daca nu e OK, se afiseaza eroarea
 12. Clientul citeste de la portul de date (20)
     informatiile trimise de server
 13. Clientul asteapta codul de raspuns 226
 14. Daca nu este OK, se afiseaza eroarea
 15. Daca este OK,
     se afiseaza continutul directorului de pe server
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [18]
Retele de calculatoare



          Startarea aplicatiilor Internet
     • Fiecare serviciu (telnet, FTP etc.)
       are asociat un proces (daemon)
       care se poate initializa la momentul
       boot-arii (vezi /etc/rc la UNIX/Linux)
     • Startarea se poate simplifica
       prin intermediul super-serverului inetd
       (configurat prin /etc/inetd.conf)
     • Ca alternativa, se poate folosi xinetd

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



          Startarea aplicatiilor Internet
1. Pentru fiecare server gasit in fisierul de configuratie:
   socket(), bind(), listen()
2. select()
3. accept() – pentru serviciile TCP
4. fork()
   •   Parintele inchide socket-ul conectat
       − inapoi la pasul 2
   •   Copilul inchide toti descriptorii de socket diferiti de
       socket-ul conectat
       − se duplica socket-ul la descriptorii 0, 1, 2 – dup()
       − se inchide socket-ul
       − daca utilizatorul nu e root, se executa setuid() si setgid()
       − se lanseaza serverul via exec()
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [20]
Retele de calculatoare

   Aplicatie
                                                       Serviciile
                 IP       ICMP      UDP       TCP
  (protocol)
  Ping
                                                       Internet
  Traceroute
  OSPF
                                                       (privire de
  RIP
                                                       ansamblu)
  BGP
  BOOTP
  TFTP
  SNMP
  SMTP
  Telnet
  FTP
  HTTP
  NNTP
  DNS
  NFS
  RPC
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [21]
Retele de calculatoare



                                                    Rezumat

   • Protocoale la nivelul aplicatie
       –Transferul de fisiere
           • TFTP (Trivial File Transfer Protocol)
           • FTP (File Transfer Protocol)
       –Startarea serviciilor Internet (inetd)
       –Privire de ansamblu

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




                         Intrebari?




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

More Related Content

Similar to Computer Networks. Applications: file transfer & service overview

Computer Networks. TCP/IP
Computer Networks. TCP/IPComputer Networks. TCP/IP
Computer Networks. TCP/IPSabin Buraga
 
Computer Networks.Protocols
Computer Networks.ProtocolsComputer Networks.Protocols
Computer Networks.ProtocolsSabin 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. Main concepts
Computer Networks. Main conceptsComputer Networks. Main concepts
Computer Networks. Main conceptsSabin Buraga
 
Computer Networks. P2P
Computer Networks. P2PComputer Networks. P2P
Computer Networks. P2PSabin Buraga
 
Suport 01-cls9-tic-cap05-utilizarea internetului
Suport 01-cls9-tic-cap05-utilizarea internetuluiSuport 01-cls9-tic-cap05-utilizarea internetului
Suport 01-cls9-tic-cap05-utilizarea internetuluiGeorge Brebenel
 
Arhitectura internet ului
Arhitectura internet uluiArhitectura internet ului
Arhitectura internet uluiSima Sorin
 
Retele de calculatoare
Retele de calculatoareRetele de calculatoare
Retele de calculatoareViorel Gurdiș
 
The Bluetooth Protocol
The Bluetooth ProtocolThe Bluetooth Protocol
The Bluetooth ProtocolVlad Petre
 
Konica minolta 10 nov 2010
Konica minolta   10 nov 2010Konica minolta   10 nov 2010
Konica minolta 10 nov 2010Agora Group
 

Similar to Computer Networks. Applications: file transfer & service overview (13)

Computer Networks. TCP/IP
Computer Networks. TCP/IPComputer Networks. TCP/IP
Computer Networks. TCP/IP
 
Computer Networks.Protocols
Computer Networks.ProtocolsComputer Networks.Protocols
Computer Networks.Protocols
 
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. Main concepts
Computer Networks. Main conceptsComputer Networks. Main concepts
Computer Networks. Main concepts
 
Computer Networks. P2P
Computer Networks. P2PComputer Networks. P2P
Computer Networks. P2P
 
6 protocoale de retea
6 protocoale de retea6 protocoale de retea
6 protocoale de retea
 
Retea1
Retea1Retea1
Retea1
 
Suport 01-cls9-tic-cap05-utilizarea internetului
Suport 01-cls9-tic-cap05-utilizarea internetuluiSuport 01-cls9-tic-cap05-utilizarea internetului
Suport 01-cls9-tic-cap05-utilizarea internetului
 
Arhitectura internet ului
Arhitectura internet uluiArhitectura internet ului
Arhitectura internet ului
 
Retele de calculatoare
Retele de calculatoareRetele de calculatoare
Retele de calculatoare
 
The Bluetooth Protocol
The Bluetooth ProtocolThe Bluetooth Protocol
The Bluetooth Protocol
 
Konica minolta 10 nov 2010
Konica minolta   10 nov 2010Konica minolta   10 nov 2010
Konica minolta 10 nov 2010
 

More from 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
 

More from 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. Applications: file transfer & service overview

  • 1. Retele de calculatoare Retele de calculatoare Nivelul aplicatie – II 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 • Protocoale la nivelul aplicatie –Transferul de fisiere • TFTP (Trivial File Transfer Protocol) • FTP (File Transfer Protocol) –Startarea serviciilor Internet (inetd) –Privire de ansamblu Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [2]
  • 3. Retele de calculatoare TFTP • Asigura transferul de fisiere intre procese • Efort minim (nu se ofera securitate) • Usor de implementat, folosind UDP • Utilizat deseori la initializarea statiilor de lucru fara disc sau a altor dispozitive (in conjunctie cu RARP) • Vezi si RFC 783, 906, 1350 Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [3]
  • 4. Retele de calculatoare TFTP • Mesajele protocolului sint datagrame UDP, codificate in network byte order • Primii 2 octeti – codul operatiei (opcode) • Tipuri de mesaje: cerere de citire, cerere de scriere, date propriu-zise, confirmare, eroare Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [4]
  • 5. Retele de calculatoare TFTP • Fisierele pot fi transferate in doua moduri: – netascii – pentru fisiere text • Toate liniile se termina cu rn (CR LF) • Ambele puncte terminale trebuie sa converteasca liniile in/din formatul netascii (pentru Unix: n ⇔ rn) – octet – pentru fisiere binare • Nu se realizeaza nici o translatie a liniilor • Problema: pierderea pachetelor de date • Solutie: retransmiterea pachetelor neconfirmate, cu controlul duplicarii Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [5]
  • 6. Retele de calculatoare TFTP • Comportamentul concurent al serverului TFTP – Din motive de limitare a resurselor, nu se poate utiliza intotdeauna fork() – Serverul va putea crea un port UDP nou, dialogul cu clientul realizindu-se prin intermediul acestuia • Transferul fisierelor – Nu se transmite lungimea fisierului – Fiecare pachet de date va avea maxim 512 octeti – Ultimul mesaj de date va contine 0 bytes de date – Se pot trimite maxim 65535 de pachete de date Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [6]
  • 7. Retele de calculatoare FTP • Folosit atit interactiv, cit si de programe • Asigura transferul sigur si eficient al datelor • Utilizeaza doua conexiuni TCP: – Conexiunea de control – pentru trimiterea comenzilor si receptionarea codurilor de stare – Conexiunea de date – pentru transferul efectiv • Conexiunea de control trebuie sa fie operationala in timpul transferului prin conexiunea de date • Conexiunile de date se creeaza dinamic, pentru fiecare client in parte • Vezi si RFC 959, 1068 Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [7]
  • 8. Retele de calculatoare FTP|model • PI = Protocol Interpreter • DTP = Data Transfer Protocol Interfata utiliz. Utilizator Control Server PI Utiliz. PI Data Sistem Sistem Server DTP Utiliz.DTP de fisiere de fisiere Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [8]
  • 9. Retele de calculatoare FTP|conexiuni • Conexiunea de control utilizeaza portul 21 • Conexiunea de date foloseste portul 20 • Comenzile si raspunsurile sint linii de text • Pentru interactivitate se foloseste protocolul TELNET • Modelul standard al conexiunilor: Control A A B B Date Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [9]
  • 10. Retele de calculatoare FTP|caracterizare • Moduri de transfer – Text (ASCII) – continutul este transferat linie cu linie, modificindu-se sfirsitul de linie in functie de calculatorul sursa si destinatie: CR LF (Windows), LF (UNIX/Linux) – Binar – continutul e transferat neschimbat Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [10]
  • 11. Retele de calculatoare FTP|caracterizare • Tipuri de acces – Anonim (FTP anonymous) – RFC 1635 • Autentificare cu numele anonymous si drept parola o adresa de e-mail • Acces public la o serie de resurse (aplicatii, date, multimedia etc.) – Autentificat • Necesita un nume de utilizator existent, insotit de o parola valida • Pentru transferul de date in/din contul personal Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [11]
  • 12. Retele de calculatoare FTP|comenzi • Comenzi de control al accesului – USER, PASSword, ChangeWorkingDir, QUIT,… • Comenzi de transfer a parametrilor – PORT, PASiVe, TYPE, MODE, STRUcture,… • Comenzi de realizare a serviciilor FTP – RETRieve, STORe, APPEnd, ABORt, PrintWorkingDir, LIST,… • Raspunsul de stare – Linie de text continind: NNN un cod de stare (utilizat de software) si un mesaj explicativ (destinat oamenilor) Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [12]
  • 13. Retele de calculatoare FTP|codul de stare • Prima cifra semnifica: – 1 replica pozitiva preliminara (“am indeplinit, dar asteapta”) – 2 replica pozitiva finala (“succes”) – 3 replica pozitiva intermediara (“am nevoie si de alte informatii”) – 4 replica negativa tranzitorie (“eroare, incerc iar”) – 5 replica negativa finala (“eroare fatala”) Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [13]
  • 14. Retele de calculatoare FTP|codul de stare • A doua cifra specifica grupuri de functii: –0 privitor la sintaxa –1 informare (ajutor, informatii de stare) –2 referitor la conexiuni –3 privitor autentificarea utilizatorului –4 nespecificat –5 referitor la sistemul de fisiere • Exemplu: 226 Transfer complete Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [14]
  • 15. Retele de calculatoare FTP|transfer • Structuri folosite – Fisier (file) • Fisierul transferat e un flux (stream) de octeti – Inregistrare (record) • Fisierul transmis reprezinta o serie de inregistrari – Pagina (page) • Fisierul transferat e o serie de blocuri de date; folosit pentru acces direct – fisierul este compus din date si din “gauri” intre date Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [15]
  • 16. Retele de calculatoare FTP|transfer • Moduri de transfer – STREAM • fisier transmis ca flux de date – BLOCK • fisier transmis ca serie de blocuri precedate de antete continind contoare si descriptori de bloc (EOF, EOR, restart marker) – COMPRESSED • se transmit blocuri compresate, conform unui algoritm simplu de compresie (e.g., gzip) Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [16]
  • 17. Retele de calculatoare FTP|exemplu 1. Clientul se conecteaza la serverul FTP aflat la adresa 193.231.30.225 2. Utilizatorul este autentificat 3. Clientul (la adresa 193.231.30.197) asteapta comanda utilizatorului 4. Utilizatorul introduce “dir” 5. Clientul se conecteaza la portul de date FTP (20), folosind un socket atasat local la 2397 6. Clientul trimite serverului (via portul 21) comanda PORT 197.231.30.197.9.93 (9*256+93=2397) 7. Clientul asteapta codul de raspuns standard 200 Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [17]
  • 18. Retele de calculatoare FTP|exemplu 8. Daca nu este OK, se afiseaza eroarea 9. Clientul trimite serverului (via portul de control 21) comanda LIST 10. Clientul asteapta codul de raspuns 150 11. Daca nu e OK, se afiseaza eroarea 12. Clientul citeste de la portul de date (20) informatiile trimise de server 13. Clientul asteapta codul de raspuns 226 14. Daca nu este OK, se afiseaza eroarea 15. Daca este OK, se afiseaza continutul directorului de pe server Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [18]
  • 19. Retele de calculatoare Startarea aplicatiilor Internet • Fiecare serviciu (telnet, FTP etc.) are asociat un proces (daemon) care se poate initializa la momentul boot-arii (vezi /etc/rc la UNIX/Linux) • Startarea se poate simplifica prin intermediul super-serverului inetd (configurat prin /etc/inetd.conf) • Ca alternativa, se poate folosi xinetd Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [19]
  • 20. Retele de calculatoare Startarea aplicatiilor Internet 1. Pentru fiecare server gasit in fisierul de configuratie: socket(), bind(), listen() 2. select() 3. accept() – pentru serviciile TCP 4. fork() • Parintele inchide socket-ul conectat − inapoi la pasul 2 • Copilul inchide toti descriptorii de socket diferiti de socket-ul conectat − se duplica socket-ul la descriptorii 0, 1, 2 – dup() − se inchide socket-ul − daca utilizatorul nu e root, se executa setuid() si setgid() − se lanseaza serverul via exec() Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [20]
  • 21. Retele de calculatoare Aplicatie Serviciile IP ICMP UDP TCP (protocol) Ping Internet Traceroute OSPF (privire de RIP ansamblu) BGP BOOTP TFTP SNMP SMTP Telnet FTP HTTP NNTP DNS NFS RPC Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [21]
  • 22. Retele de calculatoare Rezumat • Protocoale la nivelul aplicatie –Transferul de fisiere • TFTP (Trivial File Transfer Protocol) • FTP (File Transfer Protocol) –Startarea serviciilor Internet (inetd) –Privire de ansamblu Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [22]
  • 23. Retele de calculatoare Intrebari? Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [23]