SlideShare una empresa de Scribd logo
1 de 60
Descargar para leer sin conexión
Retele de calculatoare




              Retele de calculatoare
              Paradigma peer-to-peer
                 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
     • Paradigma peer-to-peer (P2P)
         – Preliminarii
         – Definitii
         – Caracterizare
         – Tipuri de aplicatii
         – Infrastructuri
         – Aspecte tehnice & aplicatii
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [2]
Retele de calculatoare



                                              Preliminarii
• Uzual, privim clientul ca fiind o componenta:
    – lipsita de capacitati computationale
      (dumb terminal): modelul master/slave
    – avind capacitati reduse (PC, dispozitiv fara fir,…):
      modelul client/server
• Probleme ale arhitecturii client/server:
   – Lipsa robustetei
   – Lipsa rezilientei
   – Lipsa scalabilitatii
   – Incapacitatea oferirii de servicii cind cererea e mare
   – Vulnerabilitate la atac
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [3]
Retele de calculatoare



                                                      Definitii
• Peer = one that is of equal standing
  with another (conform Webster)
• Peer-to-peer (P2P) ≡ arhitectura de retea
  in care nodurile sunt relativ egale
   – In sensul ca fiecare nod este in principiu capabil
     sa realizeze functii specifice ale retelei
   – In practica, multe dintre nodurile retelei pot realiza
     asemenea functii
• P2P vizeaza partajarea resurselor
  (servicii de procesare, obiecte digitale,…),
  folosindu-se de tehnologiile Internet actuale
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [4]
Retele de calculatoare



                                                      Definitii
• Sistemele P2P, in sens strict, sunt sisteme
  complet distribuite
    – Toate nodurile sunt total echivalente,
      in termeni de functionalitate si a activitatilor
      pe care le pot desfasura
• Peer-to-peer (P2P) ≡ clasa de aplicatii care
  se bazeaza pe resursele (de stocare,
  de procesare, continut, prezente umane)
  disponibile la marginile (edges) Internet-ului

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



                                                      Definitii
• Edges of the Internet (overlay networks)




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



                                           Caracterizare
• Precursori:
    – Serviciile ARPANET (’69)
        • o serie de noduri sunt tratate ca fiind egale
          (peers)
    – Agentii de transfer al mesajelor de e-mail
    – USENET (acum, Netnews) – retea de acces
      la stiri (’79), independenta initial de Internet
    – DNS (’84) – se bazeaza pe o serie de
      elemente centralizate, dar ofera o viziune
      descentralizata
        • DDNS (Distributed DNS)
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [7]
Retele de calculatoare



                                           Caracterizare
• Caracteristici definitorii:
    – Partajarea resurselor computationale
      prin interschimb direct si mai putin
      prin intermedieri oferite de o autoritate
      centralizata (server)
        • Serverele centralizate pot fi folosite insa
          pentru a realiza activitati specifice (initializarea
          retelei P2P, adaugarea de noi noduri in retea,…)
        • Ideal, nodurile participa activ si unilateral la
          realizarea de operatii ca localizarea & caching-ul
          nodurilor/continutului, dirijarea informatiilor,
          managementul resurselor transferate etc.
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [8]
Retele de calculatoare



                                           Caracterizare
• Caracteristici definitorii:
    – Abilitatea de a trata instabilitatea si variatiile
      conectivitatii retelei, adaptindu-se automat
      la erorile survenite sau la dinamicitatea
      nodurilor
        • Topologia retelei P2P e adaptiva si toleranta la
          defecte, nodurile auto-organizindu-se in vederea
          mentinerii conectivitatii si performantei retelei



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



                                           Caracterizare
• Reteaua P2P este una suprapusa (overlay)
  peste cea fizica
   – Se situeaza la nivel de aplicatie ⇒ flexibilitate
   – Muchiile virtuale sunt conexiuni TCP sau
     pointeri la adrese IP
   – Mentinerea retelei P2P se face prin verificarea
     periodica a conectivitatii (ping) ori a existentei
     (mesaje “mai traiesti?”)
   – Cind un nod pica, sistemul P2P ar putea stabili
     noi muchii
   – Proximitatea (fizica) a nodurilor nu e importanta
   – Reteaua P2P poate fi structurata sau nu
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [10]
Retele de calculatoare



                                 Tipuri de aplicatii
• Comunicare & colaborare
   – Sisteme ce ofera o infrastructura
     pentru facilitarea comunicarii & colaborarii directe,
     in timp real deseori, intre noduri
       • Sisteme conversationale (chat, mesagerie instantanee):
         IRC (Internet Relay Chat), ICQ, YM!, Jabber, Skype
• Calcul distribuit
   – Sisteme ce folosesc puterea computationala
     a nodurilor disponibile (cicli de procesor)
       • Rezolvarea unor probleme prin divide-et-impera:
         SETI@home, genome@home
       • Reteaua P2P reprezinta un gen de Grid computational

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



                                 Tipuri de aplicatii
• Suport pentru serviciile Internet
   – Sisteme multicast P2P, infrastructuri de indirectare,
     aplicatii de securitate (impotriva atacurilor DoS
     sau a virusilor) etc.
• Sisteme de stocare (baze de date)
   – Proiectarea de sisteme de baze de date distribuite
     bazate pe infrastructuri P2P
      • Modelul Local Relational Model (LRM)
      • PIER – motor scalabil de interogare distribuita
      • Edutella – proiect open source pentru interogari
        si stocare de meta-date (date privitoare la date)

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



                                 Tipuri de aplicatii
  • Distribuirea de continut digital
      – Sisteme & infrastructuri pentru partajarea
        resurselor digitale (multimedia si alte date)
        intre utilizatori
          • Aplicatii pentru partajarea fisierelor (e.g., Napster,
            Gnutella, KaZaA, Freenet, BitTorrent, eDonkey etc.)
          • Medii de stocare distribuita pentru publicarea,
            organizarea, indexarea, cautarea si regasirea datelor
            in maniera securizata & eficienta
            (PAST, Chord, Groove, Mnemosyne, Avalanche,…)



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



                                 Tipuri de aplicatii
    • Cerinte practice pentru existenta
      unei arhitecturi P2P efective
        – O retea fizica usor de accesat si scalabila
          (Internet, intranet, LAN etc.)
        – Protocoale de comunicare intre noduri
        – Conventii de numire a resurselor
          (noduri, date, servicii, utilizatori)
        – Atasarea de meta-date (date despre date):
          informatii descriptive despre resurse
        – Un mecanism de cautare
        – Software jucind rolurile de client & server
        – Achizitionarea dispozitivelor computationale
          formind reteaua P2P (organizatie, voluntari,
          cele disponibile ad hoc)
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [14]
Retele de calculatoare



                                 Tipuri de aplicatii
• Avantaje fata de alte abordari:
   – Dependenta mult redusa
     fata de dispozitive individuale si de sub-retele
   – Rezilienta imbunatatita
       • O resursa este disponibila in copii multiple
   – Scalabilitate mai mare
   – Abilitatea de a oferi un serviciu,
     atunci cind cererea este mare
   – Rezistenta la atacuri de tip DOS (Denial Of Service)
• Probleme:
   – Vulnerabilitati la atacuri mascate (masquerade)
   – Vulnerabilitati la atacuri de poluare (pollution)
   – Drepturile de autor asupra continutului digital
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [15]
Retele de calculatoare



                                 Tipuri de aplicatii
• Dezavantaje/probleme:
   – Arhitecturile P2P sunt probabilistice
       • Localizarea impredictibila a resurselor
       • Resursele sunt volatile
   – Inexistenta unui control centralizat
       • Probleme privind impunerea unei autoritati asupra
         aplicatiilor, continutului si utilizatorilor
       • Dificultati in detectarea si identificarea utilizatorilor
         (aspecte anti-sociale)
   – Diverse probleme noi de securitate
   – Folosirea in mod abuziv a unor resurse/dispozitive
   – Incurajarea folosirii sistemelor P2P
     in scop abuziv si ilegal
   – Lipsa increderii la nivel comercial, de afaceri
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [16]
Retele de calculatoare



                                 Tipuri de aplicatii
• Distribuirea de continut prin P2P
   – Sisteme P2P de “interschimb de fisiere”
       • Nodurile transfera un fisier la un moment dat
       • Se ofera facilitati pentru realizarea unei retele P2P si
         pentru cautarea & transferul de fisiere intre noduri
       • Nu se ofera suport pentru securitate, disponibilitate si
         persistenta
       • Exemple: Napster, KaZaA, Gnutella
   – Sisteme P2P pentru publicarea & stocarea
     continutului
       • Utilizatorii pot publica, stoca si distribui continut digital,
         pe baza unor drepturi de acces (privilegii)
       • Se focalizeaza asupra securitatii si persistentei
       • Unele ofera si facilitati privind colaborarea intre utilizatori
       • Exemple: Scan, Groove, Freenet, MojoNation, Tangler
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [17]
Retele de calculatoare



                                 Tipuri de aplicatii
• Distribuirea de continut prin P2P
   – Infrastructuri pentru:
       • Dirijare & localizare:
         Chord, CAN, Pastry, Tapestry, Kademlia
       • Anonimitate:
         Onion Routing, ZeroKnowledge Freedom, Tarzan
       • Managementul reputatiei:
         Eigentrust, PeerTrust


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



  Infrastruc. (localizare & dirijare)

       • Mecanismele de localizare si dirijare
         ce pot fi adoptate depind de:
          – topologia
          – structura
          – gradul de centralizare

          ale retelei suprapuse, acoperitoare
          (overlay network)
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [19]
Retele de calculatoare



  Infrastruc. (localizare & dirijare)

• Aspecte privind centralizarea:
   – Arhitecturi pur descentralizate
     toate nodurile realizeaza exact aceleasi
     activitati, jucind simultan roluri de servere
     si clienti, fara a beneficia de o coordonare
     centrala
       • Nodurile se numesc si servents
         (SERVers + cliENTS)


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



  Infrastruc. (localizare & dirijare)
• Aspecte privind centralizarea:
   – Arhitecturi partial centralizate
     unele noduri au un rol mai important
     (e.g., stocind indecsi locali
     pentru fisierele partajate)
       • Nodurile devin supernoduri conform politicilor
         fiecarui sistem P2P folosit
       • Rolul de supernod este stabilit dinamic


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



  Infrastruc. (localizare & dirijare)
• Aspecte privind centralizarea:
   – Arhitecturi descentralizate hibride
     exista un server central facilitind
     interactiunea intre noduri, mentinind
     cataloage de meta-date ale fisierelor
       • Serverele pot identifica si verifica
         nodurile de stocare
       • Sistemele se mai numesc broker mediated



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



  Infrastruc. (localizare & dirijare)
• Aspecte privind structura retelei:
   – Nestructurata
     plasarea continutului este complet
     independenta de topologia retelei suprapuse
       • Continutul trebuie localizat
       • Strategii de cautare prin “forta bruta”:
         inundarea retelei – cereri propagate via BFS/DFS
       • Strategii mai sofisticate: drumuri aleatorii,
         probabilistice, indici de dirijare etc.


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



  Infrastruc. (localizare & dirijare)
• Aspecte privind structura retelei:
   – Structurata
     topologia este controlata, iar fisierele (sau
     pointerii la ele) sunt plasate in locatii precise
       • Se realizeaza o asociere (mapping)
         intre continut (identificatorul de fisier) si
         locatie (adresa nodului)
         – un gen de tabela de rutare distribuita
       • Cautarile exacte (exact-match queries) pot fi
         realizate in mod scalabil
       • Structura folosita la dirijarea eficienta
         a mesajelor este dificil de mentinut in cazul
         unor noduri tranziente, cu rata mare de atasare
         si deconectare de la retea
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [24]
Retele de calculatoare



  Infrastruc. (localizare & dirijare)

• Aspecte privind structura retelei:
   – Slab structurata (loosely structured)
     desi localizarea continutului nu e complet
     specificata, aceasta este afectata de dirijare
       • Categorie aflata intre retelele structurate si
         cele nestructurate




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



  Infrastruc. (localizare & dirijare)
                                      Centralizare
                    Hibridă         Partială              Absentă
                                      KaZaA
                    Napster                               Gnutella
                                    Morpheus
    Nestruc-
                                    Gnutella
     turată         Publius                              FreeHaven
                                     Edutella
                                                        Chord, CAN
  Infrastruc.
                                                      Tapestry, Pastry
  structurată
                                                        OceanStore
                                                        Scan, PAST
    Sisteme
                                                          Kademlia
  structurate
                                                          Tarzan
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [26]
Retele de calculatoare



                  Arhitecturi nestructurate
• Descentralizate hibride
   – Fiecare calculator client
     stocheaza continut
     (fisiere) partajat(e)
   – Serverul central
     mentine o tabela
     cu conexiunile
     utiliz. inreg. (IP,
     latime de banda,…)
     + o tabela cu lista
     fisierelor fiecarui
     utiliz. & meta-date
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [27]
Retele de calculatoare



                  Arhitecturi nestructurate
• Descentralizate hibride
   – Clientul se conecteaza via TCP
     la serverul central
   – Clientul transmite lista fisierelor sale
     partajate spre server (upload)
   – Clientul trimite interogarea (cuvinte-cheie)
     la server
   – Se selecteaza cele mai “bune” raspunsuri
     corecte (ping-uri)
       • Utilizatorul alege cea mai buna rata de transfer

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



                  Arhitecturi nestructurate
• Descentralizate hibride
   – Usor de implementat
   – Localizarea fisierelor e rapida si eficienta
   – Apar vulnerabilitati la atac & erori tehnice
   – Sistemele nu sunt scalabile,
     unele nu suporta adaugarea altor servere
     (lista serverelor disponibile este statica)

    – Exemple: Napster, Publius
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [29]
Retele de calculatoare



                  Arhitecturi nestructurate
• Descentralizate pure
   – Se construieste o retea acoperitoare (overlay)
     cu propriile mecanisme de rutare prin IP
   – Nu exista o coordonare centrala
   – Utilizatorii se conecteaza via o aplicatie
     ce are rol dublu (client + server) – servent
   – Comunicarea intre serventi se bazeaza pe un
     protocol la nivel de aplicatie, cu 4 tipuri de mesaje:
       • Ping – cerere ca un nod sa se anunte
       • Pong – replica la mesajul ping
         (IP, port, numarul & marimea fisierelor gazdei)
       • Query – cerere de cautare
         (sir de caractere + viteza minima de transfer)
       • Query hits – raspuns (IP, port, viteza, nr.fis., index fis.)
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [30]
Retele de calculatoare



                  Arhitecturi nestructurate
• Descentralizate pure
   – Cautarea se realizeaza prin inundare
     (flooding)
       • Daca nu ai fis. dorit, intreaba-i pe 7 dintre vecini
       • Daca nici ei nu au fisierul, vor intreba pe vecinii
         lor, in maxim 10 hop-uri
       • Pe calea de intoarcere, se vor intoarce
         raspunsurile (nu continutul fisierelor)
   – Fiecare mesaj are un TTL atasat
   – Un nou nod al retelei foloseste un nod de
     bootstrap pentru a se inregistra (join)
   – Exemplu: Gnutella
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [31]
Retele de calculatoare



                  Arhitecturi nestructurate
• Partial centralizate
   – Folosesc conceptul de supernod:
     are activitati de servire a unei sub-retele P2P
     (indexare, caching)
   – Nodurile sunt alese automat ca fiind
     supernoduri daca au suficienta latime de
     banda si putere computationala
   – Toate cererile sunt trimise initial
     la supernoduri
   – Avantaje: timpul descoperirii resurselor e mai
     redus + eterogenitatea este exploatata
   – Exemplu: KaZaA
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [32]
Retele de calculatoare



                  Arhitecturi nestructurate
• Partial centralizate
   – Software-ul KaZaA este proprietar
   – Datele de control P2P sunt criptate
   – Mesajele folosesc HTTP
   – Un nod e fie supernod, fie asignat unui supernod
   – Un supernod are 100-150 noduri-copil
   – O retea poate avea ~30000 supernoduri
   – Fiecare supernod are conexiuni TCP
     cu 30-50 supernoduri
   – Pentru fiecare fisier, se mentin meta-date
     (nume, dimens., content hash, descriptor de fisier)
   – Content hash-ul e folosit pentru cautarea
     altei copii unui fisier partial transferat
   – Varianta fara spyware & pop-up-uri: KaZaA-lite
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [33]
Retele de calculatoare



                  Arhitecturi nestructurate
• Partial centralizate
   – Daca un fisier este gasit
     pe mai multe noduri,
     transferul poate fi realizat
     in paralel
       • Copiile identice se identif.
         via content hash
   – Diferite portiuni din fisier
     sunt transferate de pe
     noduri diferite
   – Pentru transferurile
     intrerupte, se face
     o recuperare automata
     (automatic recovery)
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [34]
Retele de calculatoare



                  Arhitecturi nestructurate
• Partial
  centralizate
   – Arhitectura
     BitTorrent




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



                  Arhitecturi nestructurate
• Problema:
   – Noduri ale caror adrese IP sunt disponibile
     via NAT
       • Nu pot fi servere TCP pentru reteaua P2P
       • Solutie partiala: reverse call
           – A vrea sa transfere de la B, iar B foloseste NAT
           – A si B au conexiune TCP cu serverul C (cu IP rutabil)
           – A poate cere lui B, via C, sa realizeze o conexiune TCP
             de la B la A
           – A poate trimite o cerere lui B, iar B ii ofera fisierul
       • Ce se intimpla daca si A si B utilizeaza NAT?

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



                  Arhitecturi nestructurate
• Problema:
   – Flash crowd: o crestere neasteptata de cereri
     pentru o resursa particulara
       • Continutul dorit era “rece” si nu exista suficiente
         copii incarcate in cache
       • Cit timp ia unui utilizator sa localizeze fisierul?
       • Cite mesaje va primi un nod datorita cautarilor
         realizate de alte noduri?
       • Se poate folosi un protocol de cautare generic,
         bazat pe TTL


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



                       Arhitecturi structurate
• Aspect de interes: localizarea continutului
• Idee: asignarea unui noduri particulare ce contin
  (pointeri la) continuturi particulare
• Dorim ca responsabilitatile sa fie distribuite mai multor
  noduri ale retelei de acoperire, intr-un mod adaptiv
• Fiecarei resurse i se asociaza o cheie-unica
  via o functie hash: h (“Curs retele”) → 7433
• Intervalul de valori ale functiei hash se distribuie
  in reteaua P2P
• Fiecare nod trebuie sa “cunoasca” locatia macar
  a unei singure copii a fiecarei resurse pentru care
  functia sa hash ia valori in intervalul lui
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [38]
Retele de calculatoare



                       Arhitecturi structurate




• Nodurile pot mentine in cache-ul propriu
  o copie a fiecarei resurse pe care trebuie
  sa o “cunoasca”
• Nodurile pot stoca doar pointeri spre nodurile
  ce stocheaza resursele
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [39]
Retele de calculatoare



                       Arhitecturi structurate
• Aspect de interes: dirijarea
• Pentru fiecare resursa, un nod ce “cunoaste” resursa
  trebuie sa fie accesat pe calea cea mai “scurta”
   – De catre un nod de interogare
   – De catre nodurile ce au copii ale resurse
     (cind se folosesc pointeri de localizare)
• Abordarile de sisteme P2P structurate difera
  prin strategia de dirijare
   – Orice functie hash “buna” poate fi suficienta
• Se ofera un API pentru tabelele distribuite de hash-uri
  (DHT – Distributed Hash Table)
   – Dind o cheie k, API-ul va returna adresa IP a nodului
     responsabil pentru valoarea cheii k
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [40]
Retele de calculatoare



                       Arhitecturi structurate
• Organizare stratificata:




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



                       Arhitecturi structurate
• Aspect de interes: consistenta hash-ului
• Reteaua de acoperire este un cerc
• Fiecare nod are un identificator ales aleatoriu
   – Cheile fac parte din acelasi spatiu de valori
     ale ID-urilor
• Succesorul unui nod in cadrul cercului este
  nodul cu urmatorul cel mai mare ID
   – Fiecare nod stie adresa IP a nodului succesor
• Cheia este stocata la cel mai apropiat succesor

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



                       Arhitecturi structurate
• Realizarea unei interogari:




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



                       Arhitecturi structurate
• Parasirea retelei de catre noduri:
   – Fiecare nod trebuie sa cunoasca macar 2 succesori
   – Daca un succesor pleaca, trebuie folosit urmatorul
   – Se detecteaza urmatorul succesor din lista de
     succesori si se actualizeaza aceasta lista
• Aparitia de noi noduri in retea:
   – Pentru fiecare nod nou, se stabileste un ID
   – Se interogheaza fiecare nod N
     pentru a cunoaste succesorul nodului nou
   – Predecesorii trebuie sa-si actualiz. listele de succes.
   – Fiecare nod trebuie sa-si stie predecesorii
• Reteaua overlay ≡ cerc avind corzi (chords)
  scurte pt. a se cunoaste predeces. & succesorii
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [44]
Retele de calculatoare



                       Arhitecturi structurate
• Slab structurate
   – Nodurile pot estima ce noduri stocheaza
     resursele cautate
       • Se evita broadcast-urile oarbe
       • Se foloseste o propagare in lant
         (chain mode propagation): fiecare nod ia decizii locale
         privitoare la care va fi nodul urmator interogat
   – Exemplu: Freenet
   – Cautarea unui fisier presupune utilizarea unei chei
     si a unui timeout (hops-to-live)
   – Tipuri de mesaje:
     data insert, data request, data reply, data failed
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [45]
Retele de calculatoare



                       Arhitecturi structurate

• Tabela de rutare distrib. + tabela finger
   – Exemplu: Chord
   – Nodurile au asociate ID-uri unidimensionale
     (e.g., se pot folosi hash-uri ale adreselor IP)
   – Intervalul acoperit de un nod este de la ID-ul
     precedent la ID-ul propriu
     (modulo dimensiunea maxima)
   – O singura eroare in reteaua fizica poate conduce
     la erori multiple in cadrul retelei P2P de acoperire

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



                       Arhitecturi structurate
   • Chord




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



                       Arhitecturi structurate

• Spatiu de coordonate D-dimens.
   – Exemplu: CAN (Content Addresable Network)
   – Fiecare nod stocheaza o parte (zona) a tabelei hash
     + informatii despre zonele adiacente
   – Cererile de inserare, localizare, stergere a unei chei
     sunt dirijate via zonele intermediare spre nodul
     ce mentine zona continind acea cheie
   – Fiecare cheie k e determinist asociata unui punct P
     din spatiul cartezian de D dimensiuni

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



                       Arhitecturi structurate
• Spatiu de coordonate D-dimens.
   – D=2
   – Vecinii nodului 1: 2, 3, 4, 6
   – Vecinii nodului 6: 1, 2, 4, 5
   – Nodurile 7 si 8 sunt vecine
   – Numarul asteptat de noduri: O(D)
   – Rutarea are loc alegind distanta carteziana
     cea mai mica
   – Se folosesc diversi algoritmi
     pentru atasarea de noi noduri & parasirea retelei

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



                       Arhitecturi structurate
• Folosirea structurii de date Plaxton mesh
   – Se mentin pointeri la nodurile ale caror ID-uri
     se potrivesc cu elementele unei structuri
     arborescente de prefixuri ale ID-urilor
   – Exemple: Pastry, Kademlia, Tapestry
   – Nodurile si cheile au ID-uri de N cifre,
     scrise in baza B (de exemplu, B=3)
   – O cheie e stocata in nodul cu cel mai apropiat ID
   – Adresarea nodurilor se face prin grupuri imbricate
   – Nodurile dintr-un grup stiu adresele IP ale celorlalte
   – Fiecare nod stie IP-ul unui nod delegat al altui grup
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [50]
Retele de calculatoare



                       Arhitecturi structurate
• Folosirea structurii de date Plaxton mesh




   – Cautarea unei chei se face prin divide-et-impera



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



                       Arhitecturi structurate
• Folosirea structurii de date Plaxton mesh
   – Pentru Pastry, fiecare nod are un identif. pe 128 biti
       • In baza 16
       • 16 subgrupuri pentru fiecare grup
   – Fiecare nod mentine o tabela de rutare
     si o multime a nodurilor frunza
       • Tabela de rutare e folosita pentru a stabili noduri-delegat
         ale fiecarui grup
   – Mecanismele de rulare & localizare se bazeaza
     pe Plaxton mesh, dar sistemul Tapestry le extinde
     pentru populatii de noduri P2P dinamice
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [52]
Retele de calculatoare



                            Arhitecturi ierarhice
• Nodurile peer pot fi organizate in grupuri
• Localizarea se poate face initial in cadrul grupului,
  apoi in alte grupuri
  de noduri




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



                   Aplicatii bazate pe DHT
• Partajare de fisiere
    – Exemple: Overnet bazat pe Kademlia
    – Probleme: replicare optimala, load balancing,
      cautare pe baza de cuvinte-cheie, caching
• Stocare persistenta a fisierelor
    – Sisteme de fisiere P2P: Oceanstore, Farsite
    – Exemplu: PAST bazat pe Pastry
• Managementul dispozitivelor mobile
    – Vezi cursul viitor
• SOS
    – Prevenirea atacurilor DOS (vezi urmat. cursuri)
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [54]
Retele de calculatoare



                                               Aspecte tehnice
 • Spatiu distribuit de memorare
   (distributed shared memory – DSM)
                               a               a                              a
                   Directory       Directory                      Directory
                                                    Node
                   Cache       b   Cache       b                  Cache       b



                    Data            Data                           Data
                               c               c                              c
                    Store           Store                          Store




                                    Routing/Data Location


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



                                      Aspecte tehnice

  • Varianta de sisteme, conform DSM
                        Directory Cache Data Store         Examples
                           No      No      Yes
   Data-Store-Only                                         N/A
                           No      Yes     No
   Cache-Only                                              N/A
                           No      Yes     Yes
   Directory-Less                                          PAST
                           Yes     No      Yes
   Cache-Less                                              Naspter
                           Yes     Yes     No
   Data-Store-Less                                         Freenet
                           Yes     Yes     Yes
   Fullness                                                OceanStore

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



                                      Aspecte tehnice
 • Descoperirea resurselor
     – Localizare & dirijare
     – Folosirea meta-datelor
     – Cautari semantice, nu bazate pe cuvinte-cheie
 • Performanta
     – Scalabilitate, toleranta la defecte etc.
 •   Fiabilitatea (reliability)
     Zero-administration
 •
 •   Increderea (trust)
 •   Rezistenta la cenzura + anonimitatea
 •   Securitatea
     – Autentificare, transfer sigur al datelor
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [57]
Retele de calculatoare



                                                     Aplicatii
 • JXTA – www.jxta.org
     – Mediu de dezvoltare a sistemelor & aplicatiilor P2P
     – Bazat pe Java, disponibil in regim open source




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



                                                    Rezumat
     • Paradigma peer-to-peer (P2P)
         – Preliminarii
         – Definitii
         – Caracterizare
         – Tipuri de aplicatii
         – Infrastructuri
         – Aspecte tehnice & aplicatii
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [59]
Retele de calculatoare




                         Intrebari?




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

Más contenido relacionado

Similar a Computer Networks. P2P

AJAX - back to the future
AJAX - back to the futureAJAX - back to the future
AJAX - back to the futureSabin Buraga
 
Computer Networks. Internet programming basics
Computer Networks. Internet programming basicsComputer Networks. Internet programming basics
Computer Networks. Internet programming basicsSabin Buraga
 
Computer Networks. Applications: terminal & e-mail
Computer Networks. Applications: terminal & e-mailComputer Networks. Applications: terminal & e-mail
Computer Networks. Applications: terminal & e-mailSabin Buraga
 
Sabin Buraga - Web: To Be Continued
Sabin Buraga - Web: To Be ContinuedSabin Buraga - Web: To Be Continued
Sabin Buraga - Web: To Be ContinuedSabin Buraga
 
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)Sabin Buraga
 
Computer Networks. Applications: file transfer & service overview
Computer Networks. Applications: file transfer & service overviewComputer Networks. Applications: file transfer & service overview
Computer Networks. Applications: file transfer & service overviewSabin 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
 
Peer to-peer
Peer to-peerPeer to-peer
Peer to-peerronin2011
 
Vincentiu Cuc - Platforma IT IMI
Vincentiu Cuc - Platforma IT IMIVincentiu Cuc - Platforma IT IMI
Vincentiu Cuc - Platforma IT IMIIMI PQ NET Romania
 
Retele de calculatoare
Retele de calculatoareRetele de calculatoare
Retele de calculatoareViorel Gurdiș
 
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
 
Programare Web (Introducere in securitate)
Programare Web (Introducere in securitate)Programare Web (Introducere in securitate)
Programare Web (Introducere in securitate)Sabin Buraga
 
Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-u...
Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-u...Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-u...
Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-u...Sabin Buraga
 
WADe 2017-2018 (3/12) Web Application Development: Architectural Aspects
WADe 2017-2018 (3/12) Web Application Development: Architectural AspectsWADe 2017-2018 (3/12) Web Application Development: Architectural Aspects
WADe 2017-2018 (3/12) Web Application Development: Architectural AspectsSabin 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
 
WADe 2014—2015 (03/12): Arhitectura aplicaţiilor Web orientate spre servicii
WADe 2014—2015 (03/12): Arhitectura aplicaţiilor Web orientate spre serviciiWADe 2014—2015 (03/12): Arhitectura aplicaţiilor Web orientate spre servicii
WADe 2014—2015 (03/12): Arhitectura aplicaţiilor Web orientate spre serviciiSabin Buraga
 
Notiuni despre retele_de_calculatoare
Notiuni despre retele_de_calculatoareNotiuni despre retele_de_calculatoare
Notiuni despre retele_de_calculatoareSima Sorin
 
Prezentare Distinct Nbb Cluster V1
Prezentare Distinct Nbb Cluster V1Prezentare Distinct Nbb Cluster V1
Prezentare Distinct Nbb Cluster V1Adrian Dragomir
 
Date structurate, aplicarea modelului linked data
Date structurate, aplicarea modelului linked dataDate structurate, aplicarea modelului linked data
Date structurate, aplicarea modelului linked dataionut_ignatescu
 
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
 

Similar a Computer Networks. P2P (20)

AJAX - back to the future
AJAX - back to the futureAJAX - back to the future
AJAX - back to the future
 
Computer Networks. Internet programming basics
Computer Networks. Internet programming basicsComputer Networks. Internet programming basics
Computer Networks. Internet programming basics
 
Computer Networks. Applications: terminal & e-mail
Computer Networks. Applications: terminal & e-mailComputer Networks. Applications: terminal & e-mail
Computer Networks. Applications: terminal & e-mail
 
Sabin Buraga - Web: To Be Continued
Sabin Buraga - Web: To Be ContinuedSabin Buraga - Web: To Be Continued
Sabin Buraga - Web: To Be Continued
 
Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)Computer Networks. Transport (TCP & UDP)
Computer Networks. Transport (TCP & UDP)
 
Computer Networks. Applications: file transfer & service overview
Computer Networks. Applications: file transfer & service overviewComputer Networks. Applications: file transfer & service overview
Computer Networks. Applications: file transfer & service overview
 
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
 
Peer to-peer
Peer to-peerPeer to-peer
Peer to-peer
 
Vincentiu Cuc - Platforma IT IMI
Vincentiu Cuc - Platforma IT IMIVincentiu Cuc - Platforma IT IMI
Vincentiu Cuc - Platforma IT IMI
 
Retele de calculatoare
Retele de calculatoareRetele de calculatoare
Retele de calculatoare
 
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...
 
Programare Web (Introducere in securitate)
Programare Web (Introducere in securitate)Programare Web (Introducere in securitate)
Programare Web (Introducere in securitate)
 
Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-u...
Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-u...Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-u...
Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-u...
 
WADe 2017-2018 (3/12) Web Application Development: Architectural Aspects
WADe 2017-2018 (3/12) Web Application Development: Architectural AspectsWADe 2017-2018 (3/12) Web Application Development: Architectural Aspects
WADe 2017-2018 (3/12) Web Application Development: Architectural Aspects
 
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)
 
WADe 2014—2015 (03/12): Arhitectura aplicaţiilor Web orientate spre servicii
WADe 2014—2015 (03/12): Arhitectura aplicaţiilor Web orientate spre serviciiWADe 2014—2015 (03/12): Arhitectura aplicaţiilor Web orientate spre servicii
WADe 2014—2015 (03/12): Arhitectura aplicaţiilor Web orientate spre servicii
 
Notiuni despre retele_de_calculatoare
Notiuni despre retele_de_calculatoareNotiuni despre retele_de_calculatoare
Notiuni despre retele_de_calculatoare
 
Prezentare Distinct Nbb Cluster V1
Prezentare Distinct Nbb Cluster V1Prezentare Distinct Nbb Cluster V1
Prezentare Distinct Nbb Cluster V1
 
Date structurate, aplicarea modelului linked data
Date structurate, aplicarea modelului linked dataDate structurate, aplicarea modelului linked data
Date structurate, aplicarea modelului linked data
 
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...
 

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 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 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
 
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)Sabin Buraga
 
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)Sabin 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 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 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
 
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
 
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
 

Computer Networks. P2P

  • 1. Retele de calculatoare Retele de calculatoare Paradigma peer-to-peer 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 • Paradigma peer-to-peer (P2P) – Preliminarii – Definitii – Caracterizare – Tipuri de aplicatii – Infrastructuri – Aspecte tehnice & aplicatii Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [2]
  • 3. Retele de calculatoare Preliminarii • Uzual, privim clientul ca fiind o componenta: – lipsita de capacitati computationale (dumb terminal): modelul master/slave – avind capacitati reduse (PC, dispozitiv fara fir,…): modelul client/server • Probleme ale arhitecturii client/server: – Lipsa robustetei – Lipsa rezilientei – Lipsa scalabilitatii – Incapacitatea oferirii de servicii cind cererea e mare – Vulnerabilitate la atac Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [3]
  • 4. Retele de calculatoare Definitii • Peer = one that is of equal standing with another (conform Webster) • Peer-to-peer (P2P) ≡ arhitectura de retea in care nodurile sunt relativ egale – In sensul ca fiecare nod este in principiu capabil sa realizeze functii specifice ale retelei – In practica, multe dintre nodurile retelei pot realiza asemenea functii • P2P vizeaza partajarea resurselor (servicii de procesare, obiecte digitale,…), folosindu-se de tehnologiile Internet actuale Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [4]
  • 5. Retele de calculatoare Definitii • Sistemele P2P, in sens strict, sunt sisteme complet distribuite – Toate nodurile sunt total echivalente, in termeni de functionalitate si a activitatilor pe care le pot desfasura • Peer-to-peer (P2P) ≡ clasa de aplicatii care se bazeaza pe resursele (de stocare, de procesare, continut, prezente umane) disponibile la marginile (edges) Internet-ului Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [5]
  • 6. Retele de calculatoare Definitii • Edges of the Internet (overlay networks) Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [6]
  • 7. Retele de calculatoare Caracterizare • Precursori: – Serviciile ARPANET (’69) • o serie de noduri sunt tratate ca fiind egale (peers) – Agentii de transfer al mesajelor de e-mail – USENET (acum, Netnews) – retea de acces la stiri (’79), independenta initial de Internet – DNS (’84) – se bazeaza pe o serie de elemente centralizate, dar ofera o viziune descentralizata • DDNS (Distributed DNS) Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [7]
  • 8. Retele de calculatoare Caracterizare • Caracteristici definitorii: – Partajarea resurselor computationale prin interschimb direct si mai putin prin intermedieri oferite de o autoritate centralizata (server) • Serverele centralizate pot fi folosite insa pentru a realiza activitati specifice (initializarea retelei P2P, adaugarea de noi noduri in retea,…) • Ideal, nodurile participa activ si unilateral la realizarea de operatii ca localizarea & caching-ul nodurilor/continutului, dirijarea informatiilor, managementul resurselor transferate etc. Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [8]
  • 9. Retele de calculatoare Caracterizare • Caracteristici definitorii: – Abilitatea de a trata instabilitatea si variatiile conectivitatii retelei, adaptindu-se automat la erorile survenite sau la dinamicitatea nodurilor • Topologia retelei P2P e adaptiva si toleranta la defecte, nodurile auto-organizindu-se in vederea mentinerii conectivitatii si performantei retelei Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [9]
  • 10. Retele de calculatoare Caracterizare • Reteaua P2P este una suprapusa (overlay) peste cea fizica – Se situeaza la nivel de aplicatie ⇒ flexibilitate – Muchiile virtuale sunt conexiuni TCP sau pointeri la adrese IP – Mentinerea retelei P2P se face prin verificarea periodica a conectivitatii (ping) ori a existentei (mesaje “mai traiesti?”) – Cind un nod pica, sistemul P2P ar putea stabili noi muchii – Proximitatea (fizica) a nodurilor nu e importanta – Reteaua P2P poate fi structurata sau nu Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [10]
  • 11. Retele de calculatoare Tipuri de aplicatii • Comunicare & colaborare – Sisteme ce ofera o infrastructura pentru facilitarea comunicarii & colaborarii directe, in timp real deseori, intre noduri • Sisteme conversationale (chat, mesagerie instantanee): IRC (Internet Relay Chat), ICQ, YM!, Jabber, Skype • Calcul distribuit – Sisteme ce folosesc puterea computationala a nodurilor disponibile (cicli de procesor) • Rezolvarea unor probleme prin divide-et-impera: SETI@home, genome@home • Reteaua P2P reprezinta un gen de Grid computational Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [11]
  • 12. Retele de calculatoare Tipuri de aplicatii • Suport pentru serviciile Internet – Sisteme multicast P2P, infrastructuri de indirectare, aplicatii de securitate (impotriva atacurilor DoS sau a virusilor) etc. • Sisteme de stocare (baze de date) – Proiectarea de sisteme de baze de date distribuite bazate pe infrastructuri P2P • Modelul Local Relational Model (LRM) • PIER – motor scalabil de interogare distribuita • Edutella – proiect open source pentru interogari si stocare de meta-date (date privitoare la date) Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [12]
  • 13. Retele de calculatoare Tipuri de aplicatii • Distribuirea de continut digital – Sisteme & infrastructuri pentru partajarea resurselor digitale (multimedia si alte date) intre utilizatori • Aplicatii pentru partajarea fisierelor (e.g., Napster, Gnutella, KaZaA, Freenet, BitTorrent, eDonkey etc.) • Medii de stocare distribuita pentru publicarea, organizarea, indexarea, cautarea si regasirea datelor in maniera securizata & eficienta (PAST, Chord, Groove, Mnemosyne, Avalanche,…) Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [13]
  • 14. Retele de calculatoare Tipuri de aplicatii • Cerinte practice pentru existenta unei arhitecturi P2P efective – O retea fizica usor de accesat si scalabila (Internet, intranet, LAN etc.) – Protocoale de comunicare intre noduri – Conventii de numire a resurselor (noduri, date, servicii, utilizatori) – Atasarea de meta-date (date despre date): informatii descriptive despre resurse – Un mecanism de cautare – Software jucind rolurile de client & server – Achizitionarea dispozitivelor computationale formind reteaua P2P (organizatie, voluntari, cele disponibile ad hoc) Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [14]
  • 15. Retele de calculatoare Tipuri de aplicatii • Avantaje fata de alte abordari: – Dependenta mult redusa fata de dispozitive individuale si de sub-retele – Rezilienta imbunatatita • O resursa este disponibila in copii multiple – Scalabilitate mai mare – Abilitatea de a oferi un serviciu, atunci cind cererea este mare – Rezistenta la atacuri de tip DOS (Denial Of Service) • Probleme: – Vulnerabilitati la atacuri mascate (masquerade) – Vulnerabilitati la atacuri de poluare (pollution) – Drepturile de autor asupra continutului digital Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [15]
  • 16. Retele de calculatoare Tipuri de aplicatii • Dezavantaje/probleme: – Arhitecturile P2P sunt probabilistice • Localizarea impredictibila a resurselor • Resursele sunt volatile – Inexistenta unui control centralizat • Probleme privind impunerea unei autoritati asupra aplicatiilor, continutului si utilizatorilor • Dificultati in detectarea si identificarea utilizatorilor (aspecte anti-sociale) – Diverse probleme noi de securitate – Folosirea in mod abuziv a unor resurse/dispozitive – Incurajarea folosirii sistemelor P2P in scop abuziv si ilegal – Lipsa increderii la nivel comercial, de afaceri Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [16]
  • 17. Retele de calculatoare Tipuri de aplicatii • Distribuirea de continut prin P2P – Sisteme P2P de “interschimb de fisiere” • Nodurile transfera un fisier la un moment dat • Se ofera facilitati pentru realizarea unei retele P2P si pentru cautarea & transferul de fisiere intre noduri • Nu se ofera suport pentru securitate, disponibilitate si persistenta • Exemple: Napster, KaZaA, Gnutella – Sisteme P2P pentru publicarea & stocarea continutului • Utilizatorii pot publica, stoca si distribui continut digital, pe baza unor drepturi de acces (privilegii) • Se focalizeaza asupra securitatii si persistentei • Unele ofera si facilitati privind colaborarea intre utilizatori • Exemple: Scan, Groove, Freenet, MojoNation, Tangler Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [17]
  • 18. Retele de calculatoare Tipuri de aplicatii • Distribuirea de continut prin P2P – Infrastructuri pentru: • Dirijare & localizare: Chord, CAN, Pastry, Tapestry, Kademlia • Anonimitate: Onion Routing, ZeroKnowledge Freedom, Tarzan • Managementul reputatiei: Eigentrust, PeerTrust Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [18]
  • 19. Retele de calculatoare Infrastruc. (localizare & dirijare) • Mecanismele de localizare si dirijare ce pot fi adoptate depind de: – topologia – structura – gradul de centralizare ale retelei suprapuse, acoperitoare (overlay network) Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [19]
  • 20. Retele de calculatoare Infrastruc. (localizare & dirijare) • Aspecte privind centralizarea: – Arhitecturi pur descentralizate toate nodurile realizeaza exact aceleasi activitati, jucind simultan roluri de servere si clienti, fara a beneficia de o coordonare centrala • Nodurile se numesc si servents (SERVers + cliENTS) Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [20]
  • 21. Retele de calculatoare Infrastruc. (localizare & dirijare) • Aspecte privind centralizarea: – Arhitecturi partial centralizate unele noduri au un rol mai important (e.g., stocind indecsi locali pentru fisierele partajate) • Nodurile devin supernoduri conform politicilor fiecarui sistem P2P folosit • Rolul de supernod este stabilit dinamic Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [21]
  • 22. Retele de calculatoare Infrastruc. (localizare & dirijare) • Aspecte privind centralizarea: – Arhitecturi descentralizate hibride exista un server central facilitind interactiunea intre noduri, mentinind cataloage de meta-date ale fisierelor • Serverele pot identifica si verifica nodurile de stocare • Sistemele se mai numesc broker mediated Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [22]
  • 23. Retele de calculatoare Infrastruc. (localizare & dirijare) • Aspecte privind structura retelei: – Nestructurata plasarea continutului este complet independenta de topologia retelei suprapuse • Continutul trebuie localizat • Strategii de cautare prin “forta bruta”: inundarea retelei – cereri propagate via BFS/DFS • Strategii mai sofisticate: drumuri aleatorii, probabilistice, indici de dirijare etc. Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [23]
  • 24. Retele de calculatoare Infrastruc. (localizare & dirijare) • Aspecte privind structura retelei: – Structurata topologia este controlata, iar fisierele (sau pointerii la ele) sunt plasate in locatii precise • Se realizeaza o asociere (mapping) intre continut (identificatorul de fisier) si locatie (adresa nodului) – un gen de tabela de rutare distribuita • Cautarile exacte (exact-match queries) pot fi realizate in mod scalabil • Structura folosita la dirijarea eficienta a mesajelor este dificil de mentinut in cazul unor noduri tranziente, cu rata mare de atasare si deconectare de la retea Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [24]
  • 25. Retele de calculatoare Infrastruc. (localizare & dirijare) • Aspecte privind structura retelei: – Slab structurata (loosely structured) desi localizarea continutului nu e complet specificata, aceasta este afectata de dirijare • Categorie aflata intre retelele structurate si cele nestructurate Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [25]
  • 26. Retele de calculatoare Infrastruc. (localizare & dirijare) Centralizare Hibridă Partială Absentă KaZaA Napster Gnutella Morpheus Nestruc- Gnutella turată Publius FreeHaven Edutella Chord, CAN Infrastruc. Tapestry, Pastry structurată OceanStore Scan, PAST Sisteme Kademlia structurate Tarzan Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [26]
  • 27. Retele de calculatoare Arhitecturi nestructurate • Descentralizate hibride – Fiecare calculator client stocheaza continut (fisiere) partajat(e) – Serverul central mentine o tabela cu conexiunile utiliz. inreg. (IP, latime de banda,…) + o tabela cu lista fisierelor fiecarui utiliz. & meta-date Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [27]
  • 28. Retele de calculatoare Arhitecturi nestructurate • Descentralizate hibride – Clientul se conecteaza via TCP la serverul central – Clientul transmite lista fisierelor sale partajate spre server (upload) – Clientul trimite interogarea (cuvinte-cheie) la server – Se selecteaza cele mai “bune” raspunsuri corecte (ping-uri) • Utilizatorul alege cea mai buna rata de transfer Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [28]
  • 29. Retele de calculatoare Arhitecturi nestructurate • Descentralizate hibride – Usor de implementat – Localizarea fisierelor e rapida si eficienta – Apar vulnerabilitati la atac & erori tehnice – Sistemele nu sunt scalabile, unele nu suporta adaugarea altor servere (lista serverelor disponibile este statica) – Exemple: Napster, Publius Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [29]
  • 30. Retele de calculatoare Arhitecturi nestructurate • Descentralizate pure – Se construieste o retea acoperitoare (overlay) cu propriile mecanisme de rutare prin IP – Nu exista o coordonare centrala – Utilizatorii se conecteaza via o aplicatie ce are rol dublu (client + server) – servent – Comunicarea intre serventi se bazeaza pe un protocol la nivel de aplicatie, cu 4 tipuri de mesaje: • Ping – cerere ca un nod sa se anunte • Pong – replica la mesajul ping (IP, port, numarul & marimea fisierelor gazdei) • Query – cerere de cautare (sir de caractere + viteza minima de transfer) • Query hits – raspuns (IP, port, viteza, nr.fis., index fis.) Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [30]
  • 31. Retele de calculatoare Arhitecturi nestructurate • Descentralizate pure – Cautarea se realizeaza prin inundare (flooding) • Daca nu ai fis. dorit, intreaba-i pe 7 dintre vecini • Daca nici ei nu au fisierul, vor intreba pe vecinii lor, in maxim 10 hop-uri • Pe calea de intoarcere, se vor intoarce raspunsurile (nu continutul fisierelor) – Fiecare mesaj are un TTL atasat – Un nou nod al retelei foloseste un nod de bootstrap pentru a se inregistra (join) – Exemplu: Gnutella Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [31]
  • 32. Retele de calculatoare Arhitecturi nestructurate • Partial centralizate – Folosesc conceptul de supernod: are activitati de servire a unei sub-retele P2P (indexare, caching) – Nodurile sunt alese automat ca fiind supernoduri daca au suficienta latime de banda si putere computationala – Toate cererile sunt trimise initial la supernoduri – Avantaje: timpul descoperirii resurselor e mai redus + eterogenitatea este exploatata – Exemplu: KaZaA Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [32]
  • 33. Retele de calculatoare Arhitecturi nestructurate • Partial centralizate – Software-ul KaZaA este proprietar – Datele de control P2P sunt criptate – Mesajele folosesc HTTP – Un nod e fie supernod, fie asignat unui supernod – Un supernod are 100-150 noduri-copil – O retea poate avea ~30000 supernoduri – Fiecare supernod are conexiuni TCP cu 30-50 supernoduri – Pentru fiecare fisier, se mentin meta-date (nume, dimens., content hash, descriptor de fisier) – Content hash-ul e folosit pentru cautarea altei copii unui fisier partial transferat – Varianta fara spyware & pop-up-uri: KaZaA-lite Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [33]
  • 34. Retele de calculatoare Arhitecturi nestructurate • Partial centralizate – Daca un fisier este gasit pe mai multe noduri, transferul poate fi realizat in paralel • Copiile identice se identif. via content hash – Diferite portiuni din fisier sunt transferate de pe noduri diferite – Pentru transferurile intrerupte, se face o recuperare automata (automatic recovery) Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [34]
  • 35. Retele de calculatoare Arhitecturi nestructurate • Partial centralizate – Arhitectura BitTorrent Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [35]
  • 36. Retele de calculatoare Arhitecturi nestructurate • Problema: – Noduri ale caror adrese IP sunt disponibile via NAT • Nu pot fi servere TCP pentru reteaua P2P • Solutie partiala: reverse call – A vrea sa transfere de la B, iar B foloseste NAT – A si B au conexiune TCP cu serverul C (cu IP rutabil) – A poate cere lui B, via C, sa realizeze o conexiune TCP de la B la A – A poate trimite o cerere lui B, iar B ii ofera fisierul • Ce se intimpla daca si A si B utilizeaza NAT? Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [36]
  • 37. Retele de calculatoare Arhitecturi nestructurate • Problema: – Flash crowd: o crestere neasteptata de cereri pentru o resursa particulara • Continutul dorit era “rece” si nu exista suficiente copii incarcate in cache • Cit timp ia unui utilizator sa localizeze fisierul? • Cite mesaje va primi un nod datorita cautarilor realizate de alte noduri? • Se poate folosi un protocol de cautare generic, bazat pe TTL Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [37]
  • 38. Retele de calculatoare Arhitecturi structurate • Aspect de interes: localizarea continutului • Idee: asignarea unui noduri particulare ce contin (pointeri la) continuturi particulare • Dorim ca responsabilitatile sa fie distribuite mai multor noduri ale retelei de acoperire, intr-un mod adaptiv • Fiecarei resurse i se asociaza o cheie-unica via o functie hash: h (“Curs retele”) → 7433 • Intervalul de valori ale functiei hash se distribuie in reteaua P2P • Fiecare nod trebuie sa “cunoasca” locatia macar a unei singure copii a fiecarei resurse pentru care functia sa hash ia valori in intervalul lui Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [38]
  • 39. Retele de calculatoare Arhitecturi structurate • Nodurile pot mentine in cache-ul propriu o copie a fiecarei resurse pe care trebuie sa o “cunoasca” • Nodurile pot stoca doar pointeri spre nodurile ce stocheaza resursele Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [39]
  • 40. Retele de calculatoare Arhitecturi structurate • Aspect de interes: dirijarea • Pentru fiecare resursa, un nod ce “cunoaste” resursa trebuie sa fie accesat pe calea cea mai “scurta” – De catre un nod de interogare – De catre nodurile ce au copii ale resurse (cind se folosesc pointeri de localizare) • Abordarile de sisteme P2P structurate difera prin strategia de dirijare – Orice functie hash “buna” poate fi suficienta • Se ofera un API pentru tabelele distribuite de hash-uri (DHT – Distributed Hash Table) – Dind o cheie k, API-ul va returna adresa IP a nodului responsabil pentru valoarea cheii k Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [40]
  • 41. Retele de calculatoare Arhitecturi structurate • Organizare stratificata: Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [41]
  • 42. Retele de calculatoare Arhitecturi structurate • Aspect de interes: consistenta hash-ului • Reteaua de acoperire este un cerc • Fiecare nod are un identificator ales aleatoriu – Cheile fac parte din acelasi spatiu de valori ale ID-urilor • Succesorul unui nod in cadrul cercului este nodul cu urmatorul cel mai mare ID – Fiecare nod stie adresa IP a nodului succesor • Cheia este stocata la cel mai apropiat succesor Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [42]
  • 43. Retele de calculatoare Arhitecturi structurate • Realizarea unei interogari: Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [43]
  • 44. Retele de calculatoare Arhitecturi structurate • Parasirea retelei de catre noduri: – Fiecare nod trebuie sa cunoasca macar 2 succesori – Daca un succesor pleaca, trebuie folosit urmatorul – Se detecteaza urmatorul succesor din lista de succesori si se actualizeaza aceasta lista • Aparitia de noi noduri in retea: – Pentru fiecare nod nou, se stabileste un ID – Se interogheaza fiecare nod N pentru a cunoaste succesorul nodului nou – Predecesorii trebuie sa-si actualiz. listele de succes. – Fiecare nod trebuie sa-si stie predecesorii • Reteaua overlay ≡ cerc avind corzi (chords) scurte pt. a se cunoaste predeces. & succesorii Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [44]
  • 45. Retele de calculatoare Arhitecturi structurate • Slab structurate – Nodurile pot estima ce noduri stocheaza resursele cautate • Se evita broadcast-urile oarbe • Se foloseste o propagare in lant (chain mode propagation): fiecare nod ia decizii locale privitoare la care va fi nodul urmator interogat – Exemplu: Freenet – Cautarea unui fisier presupune utilizarea unei chei si a unui timeout (hops-to-live) – Tipuri de mesaje: data insert, data request, data reply, data failed Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [45]
  • 46. Retele de calculatoare Arhitecturi structurate • Tabela de rutare distrib. + tabela finger – Exemplu: Chord – Nodurile au asociate ID-uri unidimensionale (e.g., se pot folosi hash-uri ale adreselor IP) – Intervalul acoperit de un nod este de la ID-ul precedent la ID-ul propriu (modulo dimensiunea maxima) – O singura eroare in reteaua fizica poate conduce la erori multiple in cadrul retelei P2P de acoperire Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [46]
  • 47. Retele de calculatoare Arhitecturi structurate • Chord Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [47]
  • 48. Retele de calculatoare Arhitecturi structurate • Spatiu de coordonate D-dimens. – Exemplu: CAN (Content Addresable Network) – Fiecare nod stocheaza o parte (zona) a tabelei hash + informatii despre zonele adiacente – Cererile de inserare, localizare, stergere a unei chei sunt dirijate via zonele intermediare spre nodul ce mentine zona continind acea cheie – Fiecare cheie k e determinist asociata unui punct P din spatiul cartezian de D dimensiuni Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [48]
  • 49. Retele de calculatoare Arhitecturi structurate • Spatiu de coordonate D-dimens. – D=2 – Vecinii nodului 1: 2, 3, 4, 6 – Vecinii nodului 6: 1, 2, 4, 5 – Nodurile 7 si 8 sunt vecine – Numarul asteptat de noduri: O(D) – Rutarea are loc alegind distanta carteziana cea mai mica – Se folosesc diversi algoritmi pentru atasarea de noi noduri & parasirea retelei Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [49]
  • 50. Retele de calculatoare Arhitecturi structurate • Folosirea structurii de date Plaxton mesh – Se mentin pointeri la nodurile ale caror ID-uri se potrivesc cu elementele unei structuri arborescente de prefixuri ale ID-urilor – Exemple: Pastry, Kademlia, Tapestry – Nodurile si cheile au ID-uri de N cifre, scrise in baza B (de exemplu, B=3) – O cheie e stocata in nodul cu cel mai apropiat ID – Adresarea nodurilor se face prin grupuri imbricate – Nodurile dintr-un grup stiu adresele IP ale celorlalte – Fiecare nod stie IP-ul unui nod delegat al altui grup Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [50]
  • 51. Retele de calculatoare Arhitecturi structurate • Folosirea structurii de date Plaxton mesh – Cautarea unei chei se face prin divide-et-impera Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [51]
  • 52. Retele de calculatoare Arhitecturi structurate • Folosirea structurii de date Plaxton mesh – Pentru Pastry, fiecare nod are un identif. pe 128 biti • In baza 16 • 16 subgrupuri pentru fiecare grup – Fiecare nod mentine o tabela de rutare si o multime a nodurilor frunza • Tabela de rutare e folosita pentru a stabili noduri-delegat ale fiecarui grup – Mecanismele de rulare & localizare se bazeaza pe Plaxton mesh, dar sistemul Tapestry le extinde pentru populatii de noduri P2P dinamice Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [52]
  • 53. Retele de calculatoare Arhitecturi ierarhice • Nodurile peer pot fi organizate in grupuri • Localizarea se poate face initial in cadrul grupului, apoi in alte grupuri de noduri Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [53]
  • 54. Retele de calculatoare Aplicatii bazate pe DHT • Partajare de fisiere – Exemple: Overnet bazat pe Kademlia – Probleme: replicare optimala, load balancing, cautare pe baza de cuvinte-cheie, caching • Stocare persistenta a fisierelor – Sisteme de fisiere P2P: Oceanstore, Farsite – Exemplu: PAST bazat pe Pastry • Managementul dispozitivelor mobile – Vezi cursul viitor • SOS – Prevenirea atacurilor DOS (vezi urmat. cursuri) Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [54]
  • 55. Retele de calculatoare Aspecte tehnice • Spatiu distribuit de memorare (distributed shared memory – DSM) a a a Directory Directory Directory Node Cache b Cache b Cache b Data Data Data c c c Store Store Store Routing/Data Location Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [55]
  • 56. Retele de calculatoare Aspecte tehnice • Varianta de sisteme, conform DSM Directory Cache Data Store Examples No No Yes Data-Store-Only N/A No Yes No Cache-Only N/A No Yes Yes Directory-Less PAST Yes No Yes Cache-Less Naspter Yes Yes No Data-Store-Less Freenet Yes Yes Yes Fullness OceanStore Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [56]
  • 57. Retele de calculatoare Aspecte tehnice • Descoperirea resurselor – Localizare & dirijare – Folosirea meta-datelor – Cautari semantice, nu bazate pe cuvinte-cheie • Performanta – Scalabilitate, toleranta la defecte etc. • Fiabilitatea (reliability) Zero-administration • • Increderea (trust) • Rezistenta la cenzura + anonimitatea • Securitatea – Autentificare, transfer sigur al datelor Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [57]
  • 58. Retele de calculatoare Aplicatii • JXTA – www.jxta.org – Mediu de dezvoltare a sistemelor & aplicatiilor P2P – Bazat pe Java, disponibil in regim open source Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [58]
  • 59. Retele de calculatoare Rezumat • Paradigma peer-to-peer (P2P) – Preliminarii – Definitii – Caracterizare – Tipuri de aplicatii – Infrastructuri – Aspecte tehnice & aplicatii Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [59]
  • 60. Retele de calculatoare Intrebari? Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [60]