logo academy

Peer-to-Peer vs Client-Server: da Arpanet alla blockchain

23 giugno, 2022
9 min
Peer-to-Peer vs Client-Server: da Arpanet alla blockchain
Principiante
Cosa Imparerai

    Dalla nascita di Internet fino ad oggi ci sono stati diversi cambiamenti nel concetto di rete informatica. Tra i modelli maggiormente affermati troviamo quelli di Client Server e Peer-to-Peer (P2P). Scopriamo quindi cos’è il P2P e l’architettura client server

    Che cos’è una rete in informatica

    Facciamo un passo indietro: per poter capire il significato di Peer-to-Peer (P2P) e come funziona il modello Client Server dobbiamo, prima di tutto, affrontare le reti informatiche in generale: cosa sono e come funzionano?

    La prima rete informatica della storia è di derivazione militare e nacque negli Stati Uniti, intorno agli anni 60’. Il Governo, in piena guerra fredda, aveva la necessità di creare un sistema che garantisse la condivisione di informazioni in maniera sicura, veloce e affidabile su tutto il territorio nazionale. A questo scopo è nata Arpanet, la prima rete di computer interconnessi. Essa si è evoluta fino ad essere diffusa, in ambito civile, con il nome che tutti oggi conosciamo: Internet.

    Rete informatica

    Una rete informatica collega dispositivi hardware e software tra loro grazie a protocolli di comunicazione, che permettono lo scambio di risorse, dati o informazioni

    Il settore dell’informatica cresce velocemente, fornendo soluzioni sempre migliori sulla base di scoperte rivoluzionarie, presto rese quotidiane. Pensa a Bitcoin: ha dato vita ad una nuova era tecnologica, caratterizzata da rapida innovazione e utilità esponenziale. Allo stesso modo, sono state costruite diverse architetture di rete, elenchiamo le principali: 

    • Rete LAN (Local Area Network): creata in ambienti piccoli, ad esempio quello casalingo, viene solitamente utilizzata per condividere l’accesso a dispositivi hardware, come stampanti o scanner, fra computer vicini;
    • Rete MAN (Metropolitan Area Network): in ambienti grandi, come una città, per realizzare una MAN sono necessarie più infrastrutture piccole connesse tra di loro;
    • Rete WAN (Wide Area Network): l’infrastruttura di rete deve adeguarsi alla crescita delle dimensioni dell’ambiente, al fine di connettere tutti i dispositivi che fanno parte delle due categorie precedenti. La rete WAN è sovraregionale, tipicamente collega territori ampi quali nazioni o continenti interi. 
    • Rete GAN (Global Area Network): una rete universale, che collega potenzialmente ogni altra esistente (LAN, MAN e WAN). Tra queste l’esempio migliore è internet, tuttavia organizzazioni, estese globalmente, che collegano più WAN localizzate costruiranno GAN private.
    LAN, MAN, WAN e GAN

    Come funziona una rete informatica

    Ora che hai capito cos’è una rete informatica e in quali misure esiste, il prossimo passo è comprendere come funziona: in che modo vengono scambiate informazioni all’interno della rete stessa.

    Immagina una grande città con una piazza al centro: 4 amici vogliono scambiarsi informazioni (una lettera ad esempio) e l’unico modo per farlo è trasmetterle al punto in comune, la piazza:

    • Ogni amico rappresenta un computer, chiamato Host (o end system) che invia e riceve informazioni dagli altri;
    • La piazza, chiamata Nodo, rappresenta invece il centro di “smistamento” delle lettere che i 4 amici si scambiano.

    Nell’esempio, i 4 amici non hanno modo di comunicare direttamente tra di loro, ma attraverso il nodo riescono a farlo, quindi sono in sostanza “connessi” perché riescono a scambiarsi le informazioni, senza però incontrarsi mai di persona.

    La stessa cosa avviene tra i computer: utilizzano dei nodi per comunicare e scambiare informazioni con gli altri dispositivi connessi alla rete.

    L’architettura Client Server

    In informatica, le informazioni partono da un dispositivo, passano attraverso un nodo e giungono infine al destinatario. 

    Durante il percorso, quindi, le informazioni transitano tra vari dispositivi, spesso organizzati in un’architettura Client e Server:

    • Client: componenti che accedono alle risorse oppure ai servizi che vengono forniti da una parte terza. Possono essere di tipo hardware, come ad esempio uno smartphone, oppure software, come ad esempio le App
    • Server: componenti hardware e software che forniscono le informazioni richieste da terze parti

    La maggior parte dei dispositivi elettronici è di tipo client: ciascuno di noi sicuramente ne possiede diversi e li usa quotidianamente, come uno smartphone oppure un’applicazione di messaggistica. 

    Una grande differenza fra client e server è che quest’ultimo deve gestire una quantità enorme di dati e richieste simultaneamente, quindi ha bisogno di un’elevata potenza computazionale, di una rete internet molto veloce e di fornitura costante di elettricità.

    Il significato di Peer-to-Peer (P2P): vantaggi e svantaggi

    Un’altra architettura di rete, nata intorno agli anni 70’, è il Peer-to-Peer (P2P), basata sull’omonimo protocollo. Scopriamo insieme cos’è il P2P e come funziona, cosa lo differenzia dall’architettura client server?

    Innanzitutto, la traduzione di peer è “pari”: ogni singolo computer, connesso alla rete, è allo stesso tempo client e server, gestendo sia richieste che risposte, quindi ha lo stesso ruolo di ogni altro nodo del network. Avendo chiaro il significato di Peer-to-Peer , possiamo esplorare i vantaggi del P2P, rispetto al modello client server, ma anche i potenziali svantaggi.

    Vantaggi:

    • Decentralizzazione: la caratteristica principale della rete Peer-to-Peer , applicata perfettamente nei network blockchain. I singoli nodi non sono organizzati secondo una gerarchica centralizzata, ma piuttosto in una struttura dinamica all’interno dello spazio virtuale di rete. Non esiste un server centrale in totale controllo delle informazioni distribuite, per questo motivo, nel P2P, ogni partecipante conserva i propri dati (server) e richiede quelli di cui ha bisogno agli altri (client). Invece, nel modello Client Server, i dati sono immagazzinati in un solo server: questo comporta rischi di perdita, inaccessibilità o censura delle informazioni
    • Costi inferiori/Scalabilità maggiore: Un network peer to peer è estremamente più economico e veloce da implementare rispetto ad un’architettura client-server. Per rendere il P2P operativo bastano pochi nodi connessi fra loro, così come sarà semplice aggiungere nuovi “pari” alla rete. Infatti, questi non dovranno gestire l’intero carico di informazioni, perché sarà equamente distribuito nell’ecosistema. Invece, la scalabilità di un server è limitata dalle risorse dell’organizzazione che lo controlla.
    • Ridondanza delle funzioni: in teoria, nodi singoli e isolati dovrebbero essere più vulnerabili; tuttavia, essendo intercambiabili nelle funzioni, il network potrà sopravvivere anche senza alcuni peer, trovando soluzioni alternative nella rete stessa. Immagina se un’architettura client server venisse privata di un nodo centrale: risulterebbe terribilmente limitata o addirittura inutilizzabile.Tecnicamente, si dice che nel p2p non ci sia un “single point of failure” in grado di determinare l’interruzione del servizio.

    Svantaggi:

    • Lentezza: data la natura decentralizzata, più una rete Peer-to-Peer è grande e sviluppata, più sarà lenta. Questo accade perché ogni singolo Peer ha anche informazioni uniche e la loro diffusione non sarà mai efficiente come per una rete centralizzata. Inviare dati ad un nodo “lontano”, facendo passare l’informazione attraverso molti altri pari, richiede tempo.
    • Malware: sebbene nella blockchain esista la crittografia a proteggere il trasferimento di dati P2P, file pericolosi potrebbero essere “nascosti” tra le informazioni in download, così da diffondersi potenzialmente nell’intero network.
    • Copyright: non essendoci un’autorità centrale a controllare, i file protetti da copyright potrebbero essere distribuiti illecitamente. Tuttavia, nel caso di reti blockchain, la proprietà delle informazioni online può essere conservata come NFT, essendo registrata immutabilmente in uno smart contract.
    • Offline: se tutti i nodi di una rete P2P interrompessero la connessione ad internet, i dati conservati risulterebbero indisponibili.  
    Client Server vs P2P

    Rete Peer-to-Peer: come funziona?

    L’architettura P2P si è evoluta nel tempo per adattarsi alle nuove esigenze tecnologiche, così si è ramificata in 3 macro-tipologie di rete:

    1. Peer-to-Peer puro: completamente decentralizzata, ciascun nodo della rete ha la stessa importanza gerarchica e la medesima funzione.
    2. Peer-to-Peer con Discovery Server: questo modello Peer-to-Peer  è dotato di 1 server centralizzato (Discovery). Quando un peer entra nella rete, comunica la sua esistenza al server centrale che, in risposta, restituisce l’elenco completo dei nodi già connessi a quella rete, questo gli permetterà di aprire le comunicazioni con tutti gli altri.
    3. Peer-to-Peer con Lookup Server: è un’evoluzione dell’architettura Discovery. I nodi comunicano, periodicamente, a tutti gli altri quali sono i propri contenuti. Così, quando un nodo dovrà effettuare una ricerca, invierà la richiesta al Discovery server che, essendo a conoscenza delle informazioni contenute da ciascun peer, lo indirizzerà in maniera più efficiente.

    Il futuro del P2P: la blockchain

    La rete Internet, il grande network a cui tutti partecipiamo, è un insieme di moltissime tecnologie, di cui abbiamo esplorato le architetture client server e Peer-to-Peer. Tuttavia, l’evoluzione dei protocolli di rete avanza parallelamente alla nascita di nuovi bisogni. Il peer to peer, in particolare, ha trovato terreno fertile nei servizi blockchain: prima con un modello di pagamento P2P, poi con il cloud computing P2P, sviluppato da una serie di progetti su blockchain che incentivano la partecipazione ad un grande archivio decentralizzato di contenuti. Questi sono Filecoin, un’evoluzione di IPFS, lo storage decentralizzato Storj, e il protocollo di indicizzazione The Graph.

    Correlati