Skip to main content

Lezione 3: cos'è una rete?




Una rete di computer è un insieme di dispositivi digitali interconnessi che scambiano informazioni seguendo regole condivise. Questa definizione, solo in apparenza innocua, implica quattro idee chiave. Esiste un insieme di nodi eterogenei, che possono essere computer personali, telefoni, sensori, server nei data center o macchine virtuali nel cloud. Tra questi nodi esistono collegamenti fisici o radio che costituiscono il mezzo attraverso cui i segnali viaggiano. Lo scambio avviene in forma di dati organizzati in unità più piccole, instradate da un punto all’altro. Infine, lo scambio non è casuale ma regolato da protocolli, cioè convenzioni formali su come codificare, inviare, ricevere e interpretare i messaggi. Una rete non è dunque soltanto “cavi e antenne”, ma anche un linguaggio comune e un insieme di ruoli che permettono al sistema di funzionare in modo coerente e prevedibile.

Usiamo le reti perché moltiplicano le capacità dei singoli sistemi e riducono drasticamente i costi di comunicazione e di condivisione. Senza una rete, ogni computer sarebbe un’isola e ogni risorsa dovrebbe essere duplicata ovunque serva. Con una rete, invece, possiamo centralizzare ciò che conviene centralizzare e distribuire ciò che conviene distribuire. Di conseguenza nascono vantaggi concreti: persone distanti possono collaborare in tempo reale, i servizi digitali diventano accessibili ovunque, le basi di dati sono condivise, i processi industriali sono monitorati in continuo, e nuove forme di interazione sociale ed economica diventano possibili. Dal punto di vista della progettazione, il perché si usa una rete guida tutte le scelte successive. Una rete pensata per trasportare video ad alta definizione ha requisiti diversi da una rete per il controllo di sensori in una serra, o da una rete ospedaliera dove la continuità del servizio è critica. Identificare con precisione i bisogni applicativi — latenza tollerabile, volume di traffico atteso, sensibilità ai guasti, requisiti di sicurezza e confidenzialità, vincoli di budget e di manutenzione — è il primo atto di progettazione, perché la rete è una infrastruttura abilitante, non un fine in sé.

I dati in rete non viaggiano in un flusso unico e indiviso, ma sono scomposti in pacchetti. Ogni pacchetto porta con sé un contenuto e metadati che ne indicano origine, destinazione e modalità di trattamento. Questa scelta ha conseguenze profonde. Permette di condividere lo stesso mezzo fisico tra molte conversazioni contemporanee, aumenta la resilienza ai guasti perché i pacchetti possono seguire percorsi alternativi, e facilita l’interoperabilità tra tecnologie diverse. Perché tutto questo funzioni, i livelli di comunicazione vengono separati secondo un principio di stratificazione logica, in cui ogni livello offre servizi al superiore e si appoggia a quello inferiore. Anche se in questa introduzione non è necessario addentrarsi nei modelli formali, è utile comprendere che le applicazioni si basano su protocolli di più alto livello, che a loro volta si affidano a meccanismi di trasporto, instradamento e accesso al mezzo. Questa modularità è il motivo per cui possiamo rinnovare un segmento di rete, cambiare un cavo con una fibra o sostituire un collegamento radio, senza riscrivere le applicazioni che usiamo ogni giorno.

Tra le componenti concettuali che strutturano quasi ogni rete ci sono i ruoli di client e server. Con il termine client si indica il soggetto che avvia una richiesta di servizio e attende una risposta. Il client è la parte proattiva del dialogo, colui che apre la conversazione. Con il termine server si indica il soggetto che offre il servizio, ascolta le richieste e risponde secondo regole definite. Questi ruoli sono logici e non coincidono necessariamente con macchine fisiche dedicate. Un laptop può essere client di un servizio web mentre, nello stesso istante, agisce da server per la condivisione di file su una rete locale. Un server non è un “computer speciale” solo per l’aspetto hardware, è un processo che gestisce risorse condivise e implementa un protocollo di ascolto e risposta, dal più semplice scambio di file a complesse API applicative. Questa distinzione rende il sistema comprensibile e controllabile: chi chiede cosa, a chi, con quali credenziali e con quali vincoli di tempo e affidabilità.