Cos’è una rete Peer To Peer (P2P)?

Cos’è una rete Peer To Peer – in breve**:** una rete P2P è un’infrastruttura in cui l’accesso ai dati avviene senza utilizzare server dedicati. Ogni dispositivo connesso, detto _peer_, può ricoprire sia il ruolo di _client_** **che il ruolo di _server_: Sostanzialmente, un terminale è in grado di svolgere entrambe le funzioni contemporaneamente. Una rete di questo tipo è più semplice e più economica (sia da creare che da mantenere) di una basata sull’architettura client-server.

Perché si chiamano reti P2P?

L’acronimo deriva dall’inglese peer-to-peer, anche detto, in italiano, punto-a-punto. Questo denota immediatamente la tipologia di rete che stiamo analizzando, semplificata e decentralizzata. È tuttavia comune trovare la dicitura P2P: non preoccuparti, è solo un altro modo di indicare la medesima cosa; La due ‘P’ indicano “peer”, mentre il ‘2’ centrale si riferisce al ‘to’ dell’espressione originale. Probabilmente ti starai chiedendo come un ‘to’ sia diventato un ‘2’, che si scrive “two”: ciò è dovuto alla pronuncia dei due termini, pressoché identica.

Come funziona una rete P2P?

Una rete P2P si basa, come ti ho già accennato, su una de-gerarchizzazione dei nodi che la compongono. Più semplicemente, significa che non sono presenti client o server fissi, poiché i nodi (dispositivi) possono svolgere entrambi i ruoli. Ogni computer che vi si connette, quindi, ha la possibilità di condividere i file archiviati sulle proprie memorie di massa e, al contempo, di accedere ai contenuti messi a disposizione dagli altri PC.

Non solo: ogni nodo condivide la propria potenza di calcolo (ne abbiamo la prova grazie alla diffusione delle criptovalute), la propria banda, il proprio spazio d’archiviazione; è una vera e propria condivisione (sharing) di risorse tra pari.

Come fanno i nodi a “vedersi”?

Non essendoci un server centrale in grado di far connettere tra loro i diversi nodi, è fondamentale l’utilizzo di una cosiddetta rete sovrapposta (overlay network): si tratta di una rete virtuale costruita su un’altra rete. All’atto pratico, significa poter indicizzare – e mappare – i diversi nodi: è così che ognuno è in grado di conoscere la struttura della rete e che può comunicare con gli altri. Non finisce qui, però: queste reti possono essere strutturate e non strutturate. Analizziamone i tratti salienti:

  • Una rete P2P strutturata consente di cercare con velocità ed efficienza ogni risorsa; ciò è reso possibile dall’utilizzo delle hash table, ovvero delle tabelle distribuite che associano ogni contenuto ad un valore di hash (codice univoco). Vengono sfruttate varie tecniche per raggiungere questo scopo: DHT (distributed Hash Table), che hai appena visto; DOLR (decentralized object location and routing), che consente di pubblicare generiche risorse; Multicast, che mette a disposizione canali per scambiarsi informazioni.
  • Una rete P2P non strutturata non conserva un indice dei contenuti e nemmeno dei nodi: ognuno di questi si connette ad altri in modo casuale. Ha il vantaggio di essere più veloce da creare ma, come forse hai già intuito, la ricerca di risorse è più lenta.

Quali sono i vantaggi e gli svantaggi?

Come puoi immaginare, una rete peer-to-peer hai suoi pro e i suoi contro – e alcuni li hai letti poco fa. Innanzitutto, la velocità di trasmissione è mediamente più elevata se confrontata al classico client-server: ciò è possibile grazie alla distribuzione dei dati, che possono essere reperiti da più parti contemporaneamente. Questo, ovviamente, richiede delle competenze da parte dell’utente: se è vero che è amministratore del proprio dispositivo, al tempo stesso deve saperlo sfruttare adeguatamente per fornire agli altri utenti i contenuti. Ma è proprio grazie a quest’architettura che non c’è la necessità di acquistare un server prestante: ecco che i costi risultano nettamente abbattuti.

Conclusione

Questa settimana ti sei addentrato tra le reti peer-to-peer: come hai potuto vedere, sono caratterizzate da semplicità, sicurezza e bassi costi di manutenzione. Non solo: ne hai esplorato le potenzialità e i limiti; ne hai scorto i punti vincenti e quelli che potrebbero farti propendere per un’architettura client-server. Ora, quindi, puoi scegliere con maggior consapevolezza che tipo di rete realizzare: sei pronto?