Le architetture peer-to-peer: caratteristiche

In questa lezione esploriamo il funzionamento e le caratteristiche principali delle architetture peer-to-peer, un pilastro fondamentale delle moderne reti di calcolatori.

Analizzeremo come i nodi di una rete P2P interagiscono tra loro, superando il modello tradizionale client-server per favorire la condivisione diretta delle risorse.

  • shape
  • shape


Le architetture peer-to-peer: caratteristiche

Due studenti devono passarsi un file di grandi dimensioni durante un'esercitazione. Possono caricarlo su un servizio online e poi riscaricarlo, facendo compiere al file due viaggi e coinvolgendo una macchina che con quel lavoro non c'entra nulla; oppure possono trasferirlo direttamente da un computer all'altro, dato che sono entrambi collegati alla stessa rete del laboratorio. La seconda strada e l'idea alla base delle architetture peer-to-peer.

Nella prima lezione di questa unita avevamo distinto le due grandi famiglie di architetture in base alla stabilita dei ruoli, e avevamo osservato che nel peer-to-peer i ruoli sono paritari. Dopo aver studiato a fondo il modello client-server, torniamo ora su questa seconda famiglia per vederne le caratteristiche proprie.

Che cos'e un peer

Un peer (in italiano, pari) e un nodo che partecipa alla rete assumendo entrambe le funzioni: fornisce risorse agli altri e ne richiede a sua volta. Non esiste una gerarchia fissa fra chi serve e chi viene servito, e nessun nodo e indispensabile agli altri per definizione.

La differenza rispetto al client-server non sta quindi nelle operazioni compiute, che restano quelle di chiedere e rispondere, ma in come sono distribuite: nel client-server il ruolo di ciascun nodo e stabilito una volta per tutte, in una rete peer-to-peer lo stesso nodo puo trovarsi a fornire un dato a un vicino e pochi istanti dopo a chiederne un altro a qualcun altro. Ogni peer, in pratica, esegue al proprio interno sia la parte che serve sia la parte che richiede.

Come i peer si trovano fra loro

Una rete peer-to-peer pone un problema che nel client-server non esiste: se non c'e un recapito noto a tutti, come fa un nodo a sapere a chi rivolgersi? La risposta distingue due modi di organizzare queste reti.

Nelle reti ibride esiste un piccolo elemento centrale che tiene l'elenco dei nodi collegati e dice a chi si presenta chi altro e disponibile in quel momento. E importante notare che quell'elemento fa solo da punto d'incontro: i dati veri e propri, una volta ottenuti i recapiti, viaggiano direttamente fra i peer. Nelle reti completamente distribuite, invece, non esiste nessun elenco centrale: ogni nodo conosce alcuni vicini e le richieste si propagano di nodo in nodo finche qualcuno e in grado di rispondere.

Regola fondamentale: la presenza di un elemento centrale non basta a rendere client-server una rete peer-to-peer. Cio che conta e chi trasporta i dati: se l'elemento centrale serve solo a far incontrare i nodi, mentre lo scambio avviene direttamente fra pari, l'architettura resta peer-to-peer.

Le risorse messe in comune

In un'architettura client-server le risorse necessarie al servizio (banda, spazio di memorizzazione, capacita di calcolo) sono fornite dal server. In una rete peer-to-peer sono invece fornite dai partecipanti stessi: ogni peer mette a disposizione una parte delle proprie.

Ne deriva una caratteristica strutturale importante: quando un nuovo nodo entra nella rete non porta soltanto nuove richieste, ma anche nuove risorse con cui soddisfarle. E una situazione molto diversa da quella del client-server, dove ogni nuovo client aggiunge carico al server senza aggiungere nulla dal lato di chi deve rispondere. Che cosa questo comporti in termini di pregi e difetti lo vedremo nelle prossime due lezioni; qui basta osservare che il modo in cui le risorse entrano nel sistema e radicalmente diverso.

In una videochiamata fra due persone, i flussi audio e video possono viaggiare direttamente da un dispositivo all'altro. Un server puo comunque essere coinvolto all'inizio, per permettere ai due di trovarsi e stabilire il collegamento, ma una volta avviata la conversazione i dati non passano piu da li: la banda impiegata e quella dei due partecipanti.

Una rete che cambia in continuazione

L'ultima caratteristica distintiva riguarda la stabilita dell'insieme. I nodi di una rete peer-to-peer entrano ed escono di continuo, perche corrispondono a computer di persone che li accendono, li spengono, cambiano rete o chiudono semplicemente il programma. Non esiste quindi nessuna garanzia che un nodo presente adesso sia ancora raggiungibile fra dieci minuti.

Una rete di questo tipo deve percio essere progettata mettendo in conto l'assenza: le informazioni su chi possiede cosa vanno aggiornate spesso, e le risorse importanti si trovano tipicamente presso piu nodi contemporaneamente, cosi che la scomparsa di uno solo non renda irraggiungibile nulla. E una differenza profonda rispetto al server, di cui invece si pretende, come abbiamo visto, disponibilita continua e indirizzo stabile.

In un laboratorio scolastico dove le postazioni condividono fra loro gli aggiornamenti di un programma, la copia che uno studente sta scaricando puo provenire dal PC del compagno accanto. Se quel compagno spegne la macchina a meta trasferimento, il sistema deve poter proseguire rivolgendosi a un'altra postazione che possiede lo stesso file: e la normalita, non un'eccezione.

Errori comuni e limiti

Il primo equivoco, molto diffuso, e identificare il peer-to-peer con la condivisione illecita di materiale protetto. Si tratta di due cose diverse: il peer-to-peer e un modo di organizzare la comunicazione fra nodi, ed e usato in moltissimi contesti legittimi, dalle videochiamate alla distribuzione di aggiornamenti software, fino a sistemi interni alle aziende. L'uso che se ne fa e una questione separata dall'architettura.

Il secondo errore, gia incontrato nella prima lezione, e credere che peer-to-peer significhi assenza totale di qualunque elemento centrale. Come si e visto, molte reti reali sono ibride, e restano peer-to-peer perche il coordinamento centrale non trasporta i dati.

Il terzo e pensare che una rete di pari sia una rete senza regole. Al contrario: perche nodi diversi, scritti magari da autori diversi, riescano a cooperare, serve un protocollo condiviso esattamente come nel client-server. Cambia chi parla con chi, non la necessita di un linguaggio comune.

Sintesi applicativa

Per riconoscere una rete peer-to-peer conviene chiedersi tre cose: i nodi svolgono entrambe le funzioni, fornendo e richiedendo? Le risorse impiegate sono messe a disposizione dai partecipanti? Un eventuale elemento centrale si limita a farli incontrare, senza trasportare i dati? Se le risposte sono affermative, si tratta di un'architettura di pari, con tutte le conseguenze, positive e negative, che esamineremo nelle prossime due lezioni.

Domanda di autoverifica: un sistema per distribuire aggiornamenti software usa un server per dire a ogni computer quali altri computer possiedono gia il pacchetto, ma il pacchetto viene poi scaricato direttamente da quelle macchine. Come classificheresti questa architettura, e in base a quale criterio?

Paragrafi letti

 

    
0%
       Salva

Esercizi su "Le architetture peer-to-peer: caratteristiche"

0%

Statistics