Cap 1: Le Reti di Computer

Le reti di computer

Al giorno d’oggi una rete di informatica, nonostante si possa disconoscere la sua definizione rigorosa, è sicuramente un concetto noto fondamentalmente a tutti.

Una rete informatica può essere definita semplicemente come un gruppo di dispositivi collegati tra loro che si scambiano informazioni.

Una rete, quindi, non è composta solo da computer, ma da molti altri dispositivi, come stampanti, server, smartphone, tablet, TV (ad esempio le Smart TV) e ormai persino elettrodomestici: quindi in generale una rete può essere composta da un numero qualsiasi di dispositivi, anche tra loro molto eterogenei, in grado di comunicare tramite degli appositi protocolli.

Gerarchie di protocolli
Allo scopo di diminuire la complessità del modello e anche quella dell’implementazione, le reti sono organizzate in maniera gerarchica secondo una pila (stack) distribuita su più livelli (layer). Nome, numero e funzioni di ogni livello possono variare da una rete all’altra, ma in qualsiasi modello ogni livello offre determinati servizi agli strati di livello superiore ed è invece in grado di comunicare con livelli analoghi di altri dispositivi. L’idea base è quella di offrire determinati servizi inserendo un livello di astrazione che offra i servizi nascondendone i dettagli implementativi. Ad ogni livello esistono delle regole che determinano in che modalità dovrà avvenire la comunicazione tra gli elementi di quello strato e gli strati superiori: questo insieme di regole è detto protocollo. Essendo i livelli organizzati in maniera gerarchica si parla quindi di gerarchie di protocollo.

Protocollo
In informatica, ma anche in altre discipline, si definisce protocollo un insieme di regole che governano la comunicazione tra due o più entità. Possiamo pensare ad un protocollo come se fosse un linguaggio conosciuto da tutti i componenti della rete che gli permette di comunicare e comprendersi tra loro.

La grande utilità, sotto molti aspetti rivoluzionaria, delle reti informatiche è la possibilità che esse offrono di condividere risorse. Pensiamo ad esempio a quante risorse vengono condivise sotto forma di pagine web, che contengono informazioni testuali, video, immagini e molto altro. Oppure, in una rete locale, pensiamo ad una stampante come una risorsa condivisa all’interno di un ufficio dove sono presenti molteplici postazioni.

Le reti hanno quindi rivoluzionato il modo di utilizzare computer e periferiche, permettendo per l’appunto di condividere le risorse. Per funzionare una rete ha bisogno di cavi, connettori, e altri dispositivi, detti anche apparati di rete, come hub, switch, router, modem e diversi altri.

Le dimensioni delle reti possono essere molto varie: si va da una piccola rete domestica o aziendale, composta magari da pochi dispositivi, ad una rete di una grande azienda con centinaia o migliaia di postazioni, magari dislocate in differenti aree geografiche, fino a reti di enormi dimensioni composte da milioni di dispositivi e computer, come la rete Internet.

Internet è la più grande rete del mondo; la rete per eccellenza, ed è fondamentalmente un enorme rete costituita da un gran numero di reti più piccole. Internet collega milioni di host insieme.

Un errore comune è pensare che il World Wide Web (WWW) sia esso stesso Internet: il WWW è solo uno dei tanti servizi messi a disposizione da Internet. Oltre al servizio del World Wide Web, che consente di visualizzare risorse sotto forma di pagine, esistono molti altri servizi, come ad esempio la posta elettronica, la condivisione e il trasferimento di file, le trasmissioni audio/video e molto altro.

Strati, protocolli e interfacce
Aggiungiamo a quanto detto sopra che, nell’ambito di uno stack di livelli di rete, le informazioni non passano mai direttamente dallo strato “n” di una macchina al corrispondente strato “n” di un’altra macchina, ma la comunicazione avviene sempre passando le informazioni al livello immediatamente sottostante (in fase di invio) o immediatamente sovrastante (in fase di ricezione). In mezzo a ciascuna coppia di livelli contigui si trova un’interfaccia, ovvero un sistema che si occupa a sua volta di gestire le modalità di comunicazione tra due strati adiacenti. È importante, ai fini di una corretta progettazione, definire degli stack protocollari dove ogni strato svolga una serie determinata di funzioni ben precise, e che tra ogni coppia di strati adiacenti sia presente un’adeguata interfaccia che gestisca il reciproco scambio di informazioni.

Architettura di rete
L’insieme di strati, interfacce e protocolli si chiama architettura di rete. Ricordiamo che le specifiche di una data architettura devono contenere abbastanza informazioni da rendere possibile la sua implementazione hardware e software, in modo che ciascuno strato dell’architettura possa seguire correttamente il protocollo.

Controllo di flusso
Ad ogni livello protocollare si pone spesso il problema di impedire ad una sorgente veloce di sovraccaricare di dati un ricevitore lento. Si pone quindi l’esigenza di adottare delle strategie per il controllo di flusso. Altro problema del controllo di flusso è dato dal fatto che non tutti i livelli e i protocolli possono accettare messaggi arbitrariamente lunghi e quindi bisogna trovare dei sistemi che permettano di disassemblare, trasmettere e quindi riassemblare il messaggio. O viceversa si può verificare il problema che un certo protocollo non può ricevere messaggi troppo piccoli, ed in questo caso sarà necessario assemblare messaggi brevi in un più lungo da spedire successivamente.

Primitive di servizio
Si definisce primitiva di servizio una determinata operazione che i processi degli utenti possono richiamare per accedere al servizio. Le primitive istruiscono il servizio ad eseguire determinate operazioni. In genere le primitive di servizio sono delle chiamate di sistema. L’insieme delle primitive di sistema disponibili dipende dalla natura del servizio offerto.

Servizio
Un servizio è un insieme di primitive (operazioni) che uno strato mette a disposizione di quello superiore. Il servizio definisce quindi quali operazioni lo strato è in grado di offrire su richiesta dei suoi utenti, ma non fornisce informazioni circa le modalità di implementazione di tali operazioni. Un servizio è correlato all’interfaccia tra due strati, dove quello inferiore è il provider del servizio, mentre quello superiore è l’utente del servizio.

Nel prossimo capitolo daremo alcune definizioni di termini tecnici che incontreremo nel prosieguo della guida e che ci sarà utile conoscere.