Intro Reti networking
Intro Reti networking
Una rete di calcolatori è un insieme di dispositivi autonomi, cioè in grado di eseguire e svolgere autonomamente i compiti
programmati di calcolo e di comunicazione, interconnessi tra loro da supporti fisici alla trasmissione di segnali.
Non sono considerate reti di calcolatori, ad esempio, né le reti di comunicazione telefonica (i cui terminali telefonici non sono
dispositivi autonomi), né le reti di distribuzione televisiva (in quanto i televisori non sono dispositivi autonomi in grado di
comunicare informazione).
Nel prosieguo della presentazione, con il generico termine di “rete” o “rete di comunicazione” intenderemo implicitamente solo
le reti di calcolatori elettronici.
Con l’avvento dei calcolatori elettronici, e con la loro diffusione tra comunità sempre più grandi di utenti, è emersa l’esigenza e
l’utilità di fornire un supporto alla comunicazione tra utenti, attraverso l’uso del calcolatore, supportando innovativi servizi di
comunicazione per l’utente, quali ad esempio il World Wide Web e la posta elettronica.
Le necessità di comunicare e condividere informazione sono tra i principali motivi che favoriscono la nascita e lo sviluppo di reti
di calcolatori. La fruizione dell’informazione contenuta in questo corso rappresenta un esempio.
Un ulteriore aspetto che ha favorito la nascita e la diffusione delle reti di calcolatori è legato alla possibilità di condividere
dispositivi costosi, altrimenti sotto-utilizzati, come ad esempio stampanti o capienti dispositivi di memorizzazione dei dati, e la
possibilità di accedere e lavorare sui dati di un calcolatore, senza doversi spostare fisicamente sul calcolatore stesso.
Una rete di calcolatori può consentire di eseguire calcoli complessi in parallelo e in maniera distribuita, aumentando le
prestazioni per l’ottenimento dei risultati. In tal senso, le reti rendono possibile la scalabilità dei sistemi di comunicazione e di
calcolo: il numero di dispositivi usati, e l’investimento relativo, possono essere dimensionati dinamicamente in funzione delle
richieste di servizio.
Una prima classificazione delle reti di calcolatori si basa sulla dimensione delle reti stesse.
Non esiste in generale un criterio ben definito per tale classificazione, ma ci si basa su considerazioni generali, riguardanti la
dimensione dell’area di copertura geografica della rete, ovvero l’area entro la quale possano esistere dispositivi connessi.
Le reti personali (PAN) sono reti di comunicazione per connettere dispositivi vicini tra loro, ad esempio entro una stanza.
Un esempio potrebbe essere dato dalla connessione di due calcolatori, una stampante e un agenda elettronica.
Le reti locali (LAN) sono molto spesso reti gestite e mantenute da organizzazioni, università, enti o aziende.
Esse connettono calcolatori nel raggio di qualche centinaio di metri, ad esempio su interi edifici o campus universitari.
Le reti metropolitane hanno connessioni in un raggio dell’ordine delle decine di chilometri, e possono connettere intere aree
urbane. Esse sono mantenute e gestite da fornitori di servizi di comunicazione (provider) e gestori di servizi telefonici.
Le reti geografiche sono reti in grado di coprire distanze internazionali e addirittura planetarie. Tali reti sono mantenute e gestite
da enti nazionali e internazionali, oppure da grossi enti o gestori delle comunicazioni. L’organizzazione e la struttura di tali reti
può essere molto complessa, e può risultare composta da diverse parti, e da diverse tecnologie, eterogenee e integrate (ad
esempio, molte reti collegate tra loro con tecnologie cablate, fino a reti basate su comunicazione satellitare senza fili).
Internet è una rete di reti, composta da molte reti diverse connesse tra loro, integrate grazie a un insieme di regole comuni: i
protocolli della rete Internet.
Lo sviluppo delle reti di calcolatori, che ha permesso la nascita di Internet, non sarebbe stato possibile senza una distribuzione
dei costi di realizzazione e gestione delle infrastrutture tra molte entità.
Storicamente, la prima rete di Internet nasce da un esperimento nel 1969, connettendo solo 4 calcolatori di 4 università
americane. Da allora molte entità hanno dato il loro contributo per lo sviluppo e la diffusione delle reti di calcolatori.
All’inizio del 2003 Internet contava oltre 172 milioni di calcolatori (fonte Internet Software Consortium). Nel 2017 si parla di oltre
5 miliardi di dispositivi connessi (anche se non tutti connessi allo stesso momento). Entro 5-7 anni si raggiungeranno i 60
miliardi di dispositivi connessi, realizzando l’avvento dell’Internet of Things.
Per quello che riguarda i costi, la realizzazione, mantenimento e gestione dell’infrastruttura di una rete molto ampia richiede
investimenti economici elevati, che possono essere maggiori a seconda del grado di avanzamento delle tecnologie e delle
prestazioni richieste. Alcune delle infrastrutture principali delle reti estese MAN e WAN (e di Internet) hanno costi affrontabili
solo attraverso un consistente investimento e una pianificazione delle ricadute commerciali da parte di consorzi o fornitori di
servizi di comunicazione nazionali e multinazionali. Tuttavia, la maggior percentuale del complesso delle infrastrutture di rete
che compongono Internet risultano essere mantenute e gestite capillarmente da piccoli gestori e piccoli gruppi, con investimenti
relativamente modesti per la realizzazione di piccole reti locali (LAN). L’integrazione di un insieme molto vasto di reti grandi e
soprattutto piccole reti locali, eterogenee e distribuite su tutto il pianeta, ha permesso la crescita incrementale, il successo
commerciale e la esplosiva diffusione delle reti su scala globale, fino a Internet. L’utente delle reti paga tipicamente per i servizi
di trasmissione offerti dalle reti, con tariffe che possono essere basate sul tempo di collegamento, sulla quantità di dati
trasmessi, oppure su tariffe “tutto incluso” (una cifra costante, indipendente dai fattori di utilizzo).
Per ciò che riguarda le prestazioni delle reti di calcolatori, l’utente è principalmente interessato a due indici: la capacità di
trasmissione (impropriamente detta velocità della rete) e il ritardo del collegamento di rete.
La capacità di trasmissione si misura sulla base della quantità di dati che è possibile comunicare in un secondo mediante la
rete. I dati digitali del calcolatore si misurano in bit o in byte (gruppi di 8 bit), e di conseguenza l’unità di misura usata
tipicamente per misurare la capacità di trasmissione dei dati di una rete è il numero di bit oppure di byte trasmessi al secondo
(bit/sec, byte/sec). Spesso si usano i prefissi Kilo (K) per le migliaia, Mega (M) per i milioni e Giga (G) per i miliardi di bit o byte
al secondo, Tera (T) per le migliaia di miliardi, ecc. (esempio Kbit/sec, Kbyte/sec).
Il ritardo del collegamento di rete indica il tempo necessario ai dati per transitare dal mittente al destinatario finale sulla rete.
Il ritardo è determinato da vari fattori, tra i quali la distanza fisica del collegamento, i tempi necessari alla gestione delle regole
dei processi di comunicazione in rete (protocolli) che i dati devono subire durante il loro tragitto.
Ovviamente sono da preferire reti dotate di basso ritardo, in quanto ciò favorisce la rapidità e l’interattività del processo di
comunicazione.
Per fare un parallelo intuitivo, pensando alle reti come a tubi che trasportano bit, la capacità di trasmissione equivale al
diametro del tubo, mentre il ritardo equivale al tempo che i bit impiegano ad attraversare una serie di tubi in tutta la loro
lunghezza.
Schema delle componenti necessarie alla connessione di un calcolatore a una rete di calcolatori
La connessione di un calcolatore a una rete di calcolatori richiede un insieme essenziale di componenti, hardware e software, in
aggiunta al calcolatore elettronico di base.
L’elemento primario da aggiungere al calcolatore è il dispositivo (o scheda) di rete: si tratta di un dispositivo hardware di
comunicazione, fisicamente collegato al calcolatore, in grado di codificare e trasmettere, oppure ricevere e decodificare i dati
inviati dal calcolatore alla rete, e dalla rete al calcolatore.
I mezzi di trasmissione sono supporti fisici alla propagazione e trasmissione di segnali, quali cavi o fili elettrici, fibre ottiche, o
semplicemente lo spazio tridimensionale nel quale si propagano le onde radio. Tali mezzi di trasmissione realizzano
l’infrastruttura fisica della rete. Il costo di realizzazione dell’infrastruttura di rete rappresenta spesso un fattore rilevante e critico
per la diffusione e l’implementazione di reti di calcolatori.
Il connettore di rete è semplicemente un’interfaccia standard presente sul dispositivo di rete, per il collegamento del dispositivo
di rete al mezzo di trasmissione. Esistono vari connettori, diversi a seconda del tipo di tecnologia impiegata per la rete di
comunicazione. I connettori possono avere varie forme, e tipicamente permettono il collegamento solo quando le tecnologie dei
dispositivi di rete, dei protocolli di gestione, e dei mezzi di trasmissione sono tra loro compatibili.
I dispositivi di rete sono amministrati da componenti software del sistema operativo, e devono rispettare un insieme di regole
standard per la gestione dei processi di comunicazione, definite dai protocolli di rete.
I protocolli di rete sono un insieme di regole, univocamente definite, per garantire la compatibilità e la corretta configurazione e
gestione delle fasi della comunicazione tra i dispositivi di rete. Essi saranno trattati in maggior dettaglio successivamente.
Topologia di rete
Le infrastrutture di rete possono assumere vari schemi di connessione dei dispositivi (topologia)
• esempi di topologie:
o (a) Anello (ring)
o (b) Stella (star)
o (c) Bus
o (d) Albero (tree)
• In generale le reti più piccole (reti locali LAN e PAN) rispettano le topologie citate
• Reti più grandi e complesse possono assumere topologie ibride, dette a maglia
o reti con connessioni multiple riducono il rischio di partizioni della rete
Diversi schemi di connessione sono possibili per creare le infrastrutture di rete: tali schemi si dicono topologie della rete.
Tra gli schemi possibili, la topologia ad anello (esempio a) è basata sull’organizzazione delle connessioni tra i dispositivi, in
modo da creare un anello chiuso. Ogni componente può comunicare con ogni altro componente inviando i segnali attraverso la
sequenza di connessioni in senso orario o antiorario.
La topologia a stella (esempio b) prevede un componente centrale direttamente connesso a tutti gli altri. Ogni componente
periferico può comunicare con ogni altro componente periferico passando attraverso il componente centrale.
La topologia a bus (esempio c) prevede che ogni componente abbia una connessione verso un bus condiviso (cioè una
connessione condivisa da tutti). Questo tipo di connessione permette di introdurre una delle problematiche fondamentali che
saranno trattate in seguito: la gestione dell’accesso al bus, ovvero il decidere chi possa trasmettere tra tutti i possibili dispositivi,
per evitare sovrapposizioni delle trasmissioni.
In generale, le topologie suddette vengono di norma adottate solo nel contesto di reti di comunicazione molto piccole, come le
reti personali PAN e locali LAN. I motivi per cui ciò accade saranno illustrati in seguito, quando si parlerà dei problemi di
condivisione del mezzo di trasmissione.
Mano a mano che le reti più piccole vengono collegate tra loro e organizzate in strutture di rete più grandi, la topologia della rete
globale può diventare incredibilmente complessa, e quindi uno schema topologico generalizzato non è quasi mai applicabile. In
questo caso si parla di rete con topologia a grafo complesso, oppure a maglia. In tali topologie a grafo, possono essere presenti
cammini multipli che connettono coppie di nodi, dando luogo a possibili alternative per la connessione dei dispositivi.
Questo fatto può ridurre il rischio di incorrere in partizioni della rete, in quanto un certo grado di ridondanza dei cammini di
connessione permette di aggirare i collegamenti soggetti a eventuali guasti.
Tre esempi di mezzo trasmissivo per la connessione di rete: cavo conduttore, fibra ottica e onde radio
Due calcolatori verdi sono connessi attraverso un cavo conduttore entro il quale passa un segnale elettrico
sinusoidale. Due calcolatori gialli sono connessi attraverso una fibra ottica entro la quale passano fotoni di
luce. Due calcolatori rossi sono connessi attraverso onde radio, in quanto si trovano entro la distanza
massima di propagazione del segnale radio (d). Un terzo calcolatore rosso è troppo distante e risulta quindi
non connesso.
Il mezzo di trasmissione è l’elemento fisico che supporta la propagazione dei segnali trasmessi tra i dispositivi della rete.
Le connessioni di rete possono essere realizzate mediante tre mezzi di trasmissione diversi: cavi conduttori, fibre ottiche e
connessioni senza fili.
I cavi di materiale conduttore (cavetti, doppino intrecciato o cavo coassiale), sono in grado di propagare segnali elettrici, cioè
variazioni di tensione e corrente elettrica. Questi mezzi fisici sono i più utilizzati nelle reti locali, e nelle brevi distanze, per il loro
buon rapporto tra costo e prestazioni. Oggi tale mezzo trasmissivo è in grado di supportare trasmissioni dati con una capacità
dell’ordine del miliardo di bit al secondo (1-2 Gbit/sec).
La tecnologia a fibre ottiche è tecnologicamente avanzata, e si basa sulla trasmissione di segnali ottici, cioè di luce, vincolata
all’interno di una sottile fibra di vetro purissimo. La fibra è sottile come un capello, è elastica ed è protetta da una guaina esterna
per facilitare il suo impiego. Il costo della fibra non è molto elevato, tuttavia la fibra è molto delicata per quanto riguarda la
connessione degli estremi (giunzione) e questo influisce molto sui costi di distribuzione e di realizzazione dell’infrastruttura di
rete. La capacità di una fibra ottica può arrivare oggi a qualche decina di migliaia di miliardi di bit al secondo (oltre 10000
Gbit/sec).
La terza tecnologia disponibile per il mezzo trasmissivo è fornita dalle onde elettromagnetiche e dalla loro propagazione nello
spazio. Esempi in tal senso sono forniti dalle onde radio e dalla luce infrarossa. Tali tecnologie vengono dette senza fili
(wireless). Le reti senza fili sono molto interessanti, e la loro diffusione è oggi esplosiva, in quanto permettono la mobilità dei
dispositivi e degli utenti. La capacità dei collegamenti senza fili può arrivare oggi a qualche decina di milioni di bit al secondo (1-
54 Mbit/sec). Il limite della tecnologia senza fili è dato dalla vulnerabilità del segnale rispetto ad errori e interferenza dei segnali,
e dai limiti fisici della propagazione dei segnali. Due dispositivi possono essere connessi senza fili solo se rimangono entro un
limite di distanza d che dipende dalla potenza del segnale radio emesso dal trasmettitore, e da eventuali ostacoli intermedi per il
segnale.
Ogni rete può essere realizzata attraverso un singolo mezzo fisico di trasmissione, oppure attraverso la composizione di mezzi
fisici eterogenei. Vedremo in seguito come possa avvenire la traduzione dei dati da un mezzo trasmissivo ad altri mezzi
trasmissivi.
La comunicazione in rete tra calcolatori diversi, attraverso i vari mezzi di trasmissione illustrati, avviene mediante dispositivi
interni o periferiche esterne del calcolatore, detti dispositivi o schede di rete. Le schede di rete sono collegate al calcolatore
attraverso un’interfaccia di collegamento del calcolatore: su tale interfaccia transitano i dati (bit di informazione) da trasmettere
in rete, oppure ricevuti dalla rete. La scheda di rete si occupa inoltre di trasformare i bit di informazione in segnali trasmissibili
sul mezzo di trasmissione della rete e viceversa: tali trasformazioni si chiamano codifica e decodifica dei dati. Un connettore di
rete pone direttamente in contatto la scheda di rete con il mezzo di trasmissione per l’invio e ricezione dei segnali in rete.
In sintesi, la funzione della scheda di rete è quella di memorizzare temporaneamente, codificare, decodificare, trasmettere e
ricevere i dati da e verso il mezzo di trasmissione (cioè la rete) o il calcolatore.
Il tipo della scheda di rete viene identificato a seconda del mezzo trasmissivo, e soprattutto a seconda dei protocolli di
comunicazione utilizzati per la codifica, e per la trasmissione dei dati in rete.
Per le reti locali (LAN) basate su mezzo di trasmissione cablato, le tecnologie più diffuse sono chiamate con il nome del
protocollo di comunicazione primario: ad esempio Ethernet, nelle varianti a 10, 100 Mbit/sec (Fast Ethernet) e 1000 Mbit/sec
(Gigabit Ethernet). Per le reti LAN senza fili (WLAN), le schede di rete più diffuse sono denominate Wi-Fi (da 11 a 54 Mbit/sec),
e Bluetooth (da 1 a 2 Mbit/sec).
Ogni scheda di rete, per permettere di essere identificata univocamente nel contesto di una rete locale, dispone dalla sua
costruzione di un indirizzo univoco (unico) a livello mondiale, non modificabile, detto indirizzo MAC (Medium Access Control).
Tali indirizzi vengono assegnati dai costruttori delle schede, per evitare che si possano originare indirizzi MAC duplicati.
Due esempi di unico mezzo trasmissivo contenente tre canali punto a punto, oppure un canale brodcast.
Sono mostrate due figure: la prima mostra un unico mezzo trasmissivo entro il quale sono realizzati tre
diversi canali che connettono 3 coppie di stazioni, punto a punto. Un canale verde connette le due stazioni
verdi, un canale rosso le due stazioni rosse e un canale giallo le due stazioni gialle. Tutti i canali suddetti
passano per il mezzo unico di trasmissione condiviso. Nella seconda figura, lo stesso mezzo trasmissivo
condiviso consente la creazione di un unico canale ad accesso multiplo (broadcast), di colore verde, che
Tralasciando la descrizione dei dettagli tecnici, a volte è possibile considerare il supporto fisico di un mezzo di trasmissione
(medium) suddiviso in diversi canali di comunicazione separati. Ogni canale diverso può essere considerato un tubo virtuale sul
quale possono essere trasmessi i bit di informazione. Il mezzo di trasmissione può quindi essere considerato come un fascio di
canali di comunicazione.
Due definizioni dei canali possono essere realizzate: canali punto a punto e canali ad accesso multiplo.
I canali punto a punto si basano sull’accordo tra un mittente e un destinatario riguardante la definizione del canale da usare (in
figura equivale al colore). Solo due dispositivi possono usare il canale di tipo punto a punto a loro riservato.
I canali ad accesso multiplo (broadcast) sono canali sui quali tutti possono trasmettere e dove tutti ricevono le trasmissioni di
altri. Un problema per i canali ad accesso multiplo è legato alla possibile collisione di segnali appartenenti allo stesso canale di
comunicazione. Se due trasmissioni di segnali si sovrappongono nel tempo sullo stesso canale di comunicazione, l’effetto sui
segnali può essere distruttivo e l’esito della comunicazione può essere nullo. Intuitivamente, se due dispositivi trasmettono i loro
segnali contemporaneamente, nessuno ricevitore sarà in grado di capire quali bit di informazione siano stati trasmessi.
Il problema delle collisioni è molto critico, e determina l’esigenza di arbitraggio nell’accesso al canale: chi trasmette e quando?
Il problema dell’arbitraggio può essere banale su canali punto a punto, dove mittente e destinatario possono definire semplici
leggi (cioè protocolli di gestione della comunicazione) per evitare le collisioni: ad esempio, trasmetto io, poi trasmetti tu.
In canali condivisi ad accesso multiplo (broadcast) il problema risulta invece molto complesso, in quanto occorre definire leggi
non ambigue, in grado di regolare gli accessi da parte di molti utenti, evitando le collisioni.
Una sequenza di canali punto a punto riservati danno luogo a una rete a circuito riservato.
La figura mostra una sequenza di quattro reti: A, B, C e D. Ogni rete è connessa alle reti adiacenti
attraverso canali punto a punto e canali ad accesso multiplo (broadcast). Una sequenza di dispositivi
Abbiamo visto come una rete sia un insieme di nodi connessi attraverso mezzi fisici di trasmissione sui quali possono esistere
diversi canali di comunicazione. Componendo una serie di canali in cascata si può realizzare un servizio di trasferimento
dell’informazione tra due utenti appartenenti a una rete più ampia, secondo due modalità principali: commutazione di circuito (o
circuito riservato, circuit-switched) e commutazione di pacchetto (packet-switched).
Vediamo ora la definizione di rete a commutazione di circuito. Un esempio può essere fornito dalla rete telefonica.
Nelle reti a commutazione di circuito, i dati vengono trasmessi tra un mittente e un destinatario finale agli estremi di un cammino
(circuito) di canali di comunicazione punto a punto. Il circuito viene negoziato e riservato a priori, attraverso opportune
procedure (come avviene quando si digita un numero per una chiamata telefonica). Una volta identificati e ottenuti i canali che
collegano mittente e destinatario, la comunicazione dati può avvenire anche come un’unica sequenza di bit, senza interruzioni.
Non c’è nemmeno bisogno di dichiarare periodicamente chi sia il mittente e il destinatario dei dati, in quanto entrambi sono
fissati al momento della creazione del circuito riservato.
Un ulteriore vantaggio è rappresentato dal ridotto ritardo di trasmissione per i dati, in quanto ogni nodo intermedio ha già
disponibile il canale libero uscente sul quale inviare immediatamente i dati ricevuti sul canale entrante, dal mittente fino al
destinatario finale. Tutto ciò si traduce in una riduzione del ritardo di rete ( o latenza di rete) nella comunicazione.
Se la quantità di dati da trasmettere non è molto grande, oppure se i dati da trasmettere arrivano a gruppi, intervallati da tempi
di vuoto, allora l’utilizzo dei canali del circuito virtuale potrebbe diventare molto basso. Le risorse del canale verrebbero quindi
addebitate per tutto il tempo di permanenza del circuito virtuale, anche se i dati fossero trasmessi solo all’inizio e alla fine del
tempo di collegamento (proprio come accade per le telefonate).
Due esempi: trasmissioni a commutazione di pacchetto su canali punto a punto e su canale broadcast
La figura mostra tre canali punto a punto sui quali circolano dal mittente al destinatario un certo numero di
pacchetti di dati, lasciando molto tempo vuoto tra una trasmissione e la successiva. Nella seconda figura,
In alternativa alla commutazione di circuito, una rete può trasferire l’informazione su un canale o su una sequenza di canali tra
due utenti, secondo la modalità a commutazione di pacchetto. La maggior parte delle reti per trasmissione dati digitali, inclusa
la rete di reti globale Internet, sono di questo tipo.
I dati digitali vengono suddivisi in pacchetti separati, e vengono trasmessi su canali ad accesso multiplo (broadcast).
La trasmissione a pacchetto su canali punto a punto lascerebbe molto tempo vuoto (inutilizzo) sui canali. Un unico canale
condiviso ad accesso multiplo potrebbe invece essere molto bene utilizzato per scambiare lo stesso quantitativo di dati,
suddivisi a pacchetti, tra i rispettivi mittenti e destinatari (come mostrato in figura). Per consentire la corretta ricezione dei dati, è
però necessario includere in ogni pacchetto l’informazione sull’identità del rispettivo mittente e soprattutto del destinatario.
Si attua in questo modo la condivisione di un canale unico per diversi flussi di pacchetti appartenenti a diversi mittenti e
destinatari.
Componendo in serie una sequenza di canali broadcast a commutazione di pacchetto, i nodi ricevitori devono di volta in volta
farsi carico di verificare se il pacchetto sia giunto a destinazione o, in caso contrario, possono provvedere all’inoltro del
pacchetto ricevuto sul successivo canale broadcast.
Il prezzo di questa tecnica è legato al maggiore ritardo per la comunicazione dei dati tra mittente e destinatario, dovuto
all’esigenza di iterare più volte la ricezione e l’inoltro di pacchetti su canali broadcast in sequenza.
Il vantaggio è legato al maggiore utilizzo dei canali ad accesso multiplo, e quindi alla possibilità di tariffare la comunicazione in
base ai dati trasmessi, e non in base al tempo necessario.
Nelle reti a commutazione di pacchetto il servizio di trasmissione dei dati, tra mittente e destinatario ha proprietà determinate
dal ruolo dei protocolli utilizzati. I pacchetti di dati sono immagazzinati temporaneamente dai dispositivi intermedi del cammino e
quindi inoltrati verso il destinatario finale. In questo modo i pacchetti possono andare perduti, per varie cause, e possono
arrivare in ordine diverso rispetto all’ordine di invio.
I servizi di trasmissione dei dati, tra mittente e destinatario remoti, possono essere servizi orientati alla connessione
(connection-oriented) e servizi non orientati alla connessione (connectionless).
I servizi orientati alla connessione garantiscono che la spedizione di pacchetti di dati tra mittente e destinatario sia equivalente a
una trasmissione affidabile e corretta. In altre parole, essi implementano una serie di operazioni attraverso le quali tutti i
pacchetti perduti saranno ritrasmessi, e correttamente ordinati, fino a ricostruire esattamente tutta l’informazione trasmessa.
L’implementazione di tale tipo di servizi potrebbe essere basata sulla definizione di vari protocolli alternativi. Ad esempio,
potrebbe essere definito un cammino riservato unico per i pacchetti. Intuitivamente, ciò equivarrebbe a un circuito virtuale per
l’invio dei pacchetti. Un altro modo per ottenere tale servizio potrebbe essere basato sulla numerazione dei pacchetti inviati, sul
riordino dei pacchetti ricevuti e sulla richiesta di ri-trasmissione dei pacchetti perduti. Questo protocollo, descritto
sommariamente, sarà ripreso in seguito, in quanto una definizione simile è alla base della comunicazione a pacchetto di tipo
connection-oriented su Internet.
I servizi non orientati alla connessione (connectionless) non si preoccupano di garantire l’ordine corretto dei pacchetti inviati e
nemmeno la ricezione di tutti i pacchetti. Tale servizio è simile all’invio dei pacchetti in modo analogo a una sequenza di lettere
attraverso la posta ordinaria.
La necessità di accordarsi su regole e servizi comuni per la comunicazione di rete ha lo scopo di permettere una completa
compatibilità e supporto alla comunicazione su sistemi, tecnologie e dispositivi eterogenei.
Le regole che governano i processi di comunicazione in rete, tra dispositivi e sistemi eterogenei, prendono il nome di protocolli
di rete. I protocolli definiscono aspetti e regole semantiche sulla sequenza dei messaggi, e regole sintattiche sul formato dei
messaggi scambiati durante la comunicazione. La definizione dei protocolli di rete deve prevedere e supportare diverse finalità
di comunicazione. Non ha quindi senso definire un protocollo rigido, ma ha senso definire classi di protocolli, deputate a
svolgere e gestire determinate funzioni della comunicazione. Tali classi di protocolli, opportunamente organizzate, permettono
di semplificare la gestione della rete, ma è necessario definire in modo non ambiguo le relazioni tra le classi di protocolli (ovvero
quale protocollo si occupa di gestire un certo problema? Come avviene il dialogo tra protocolli?)
La soluzione che è stata individuata, e ha rappresentato uno dei principali cardini del successo delle reti e della nascita di
Internet, è data dalla separazione delle classi di protocolli in livelli. La struttura dei livelli dei protocolli di rete prende il nome di
architettura dei protocolli di rete.
Il concetto di architettura dei protocolli, suddivisa in livelli, è semplice ed è basato su alcune condizioni.
Ogni livello svolge determinate funzioni di gestione dei processi di comunicazione, attraverso uno o più protocolli alternativi.
Ogni livello fornisce un livello di astrazione più elevato della rete di comunicazione sottostante, sfruttando i servizi implementati
dai livelli sottostanti. In altre parole, i livelli superiori non devono preoccuparsi di risolvere problemi che saranno gestiti e risolti
dai livelli inferiori.
Ogni livello ha relazioni dirette solo con i livelli immediatamente superiore e inferiore, attraverso richieste e servizi concordati,
detti interfaccia del livello.
Un esempio di architettura di protocolli per la comunicazione divisi in livelli, con evidenziati i servizi forniti
La figura mostra due pile, ognuna composta da quattro livelli di protocolli per la comunicazione tra un
innamorato italiano e una innamorata giapponese. La dichiarazione d’amore dell’innamorato italiano viene
scritta usando il servizio del livello dialogo, poi viene tradotta in russo usando il servizio del livello
Lo Standard ISO/OSI RM (Open System Interconnection Reference Model) definisce un insieme di livelli completo e rigoroso
per l’architettura dei protocolli di rete, prevedendo un livello per la gestione di ogni problema di comunicazione in rete.
L’architettura dei protocolli di rete definita da ISO/OSI RM prevede sette livelli dei protocolli, numerati da 7 a 1 dall’alto al basso.
Vediamo una breve panoramica dei livelli e dei servizi principali implementati. Il livello applicazione (7) fornisce alle applicazioni
in esecuzione sul calcolatore i servizi e le primitive di trasmissione e ricezione dei dati. Il livello presentazione (6) risolve
eventuali eterogeneità del formato dei dati tra i nodi della rete. Il livello sessione (5) mantiene e gestisce lo stato attuale del
collegamento tra due applicazioni remote. Il livello trasporto (4) si occupa di garantire i servizi di trasmissione dei pacchetti
(orientati alla connessione e non) e del controllo della congestione della rete. Il livello rete (3) si occupa di frammentare i dati in
pacchetti, scrivere gli indirizzi dei destinatari finali e instradare i pacchetti verso i destinatari intermedi del cammino. Il livello
LLC/MAC (2) si occupa di garantire l’affidabilità del mezzo di trasmissione e la gestione dell’accesso al mezzo trasmissivo ad
accesso multiplo (evitando le collisioni). Infine, il livello fisico (1) si occupa di definire le tecniche di codifica dei dati, la
trasmissione e la ricezione dei dati sul mezzo fisico di trasmissione.
Vedremo ora quali livelli dello Standard ISO/OSI, e quali protocolli in ogni livello siano di fatto utilizzati nell’architettura dei
protocolli delle reti di calcolatori locali fino alla rete Internet.
L’architettura dei protocolli di Internet, nel senso più comunemente adottato, prevede di fatto l’implementazione di solo cinque
livelli dei sette livelli dello Standard ISO/OSI RM. Rimangono spesso esclusi i livelli 5 (sessione) e 6 (presentazione).
Per i livelli rimasti: fisico, MAC/LLC, rete, trasporto e applicazione valgono le considerazioni fatte nella slide relativa allo
Standard ISO/OSI RM.
Un aspetto che si pone in evidenza, è il concetto di incapsulamento dei dati tra i livelli implementati. In fase di trasmissione, ogni
livello riceve dati dall’alto (dati spediti dall’applicazione) e li inserisce in “buste virtuali” (incapsulamento) ponendo in testa e in
coda alcuni dati aggiuntivi, necessari per fornire al livello della controparte ricevente le informazioni utili all’implementazione del
protocollo dello stesso livello. In fase di ricezione, ogni livello X riceve dal livello più basso i dati imbustati dallo stesso livello X
sul trasmettitore, quindi verifica i dati della busta, agisce in conseguenza alle specifiche fornite nei dati della busta, e passa solo
il contenuto della busta ai livelli superiori (decapsulamento).
Il livello trasporto spezza i dati dell’applicazione in frammenti e li imbusta, aggiungendo informazioni utili all’ordinamento e al ri-
assemblaggio dei dati ricevuti, oltre che al controllo della congestione della rete. Il livello rete frammenta ulteriormente i dati in
pacchetti (se sono troppo lunghi), scrive l’indirizzo del destinatario sulla busta, e decide il cammino sul quale inviare il pacchetto
a seconda dell’indirizzo di rete del destinatario. Il livello MAC/LLC esegue la consegna finale dei dati a dispositivi di una rete
locale.
Nel seguito procederemo all’analisi livello per livello dell’implementazione dei protocolli che regolano il funzionamento e i servizi
delle reti locali, delle internetwork (reti locali connesse tra loro), e di Internet (ovvero la rete di tutte le reti connesse e conformi
all’architettura di Internet).
•
Nel seguito della trattazione analizzeremo più in dettaglio quali siano le problematiche gestite dai protocolli di rete a partire dai
livelli più bassi (livello fisico) fino ai livelli più alti (livello applicazione). Ad ogni livello affronteremo i protocolli che gestiscono
problemi diversi, e analizzeremo il tipo, le caratteristiche di integrazione e le proprietà della rete ottenuta. Al termine saranno
evidenziati l’architettura completa dei protocolli di rete e tutti i dispositivi che permettono il funzionamento e l’integrazione delle
reti, dalle reti locali fino a Internet.
Il livello uno (fisico) si occupa delle regole per codificare e trasmettere i dati come segnali sul mezzo trasmissivo a disposizione.
A questo livello la rete è solo un segmento con la stessa tecnologia in comune a tutti i dispositivi.
Il livello due (MAC/LLC) affronta la definizione delle regole per determinare gli indirizzi dei dispositivi ai quali i dati sono
destinati, le regole per accedere al mezzo trasmissivo ad accesso multiplo (condiviso) evitando errori di trasmissione, e le
regole per recuperare eventuali errori delle trasmissioni.
A questo livello la rete può integrare diversi mezzi trasmissivi e diverse tecnologie (segmenti diversi), e assume i connotati di
una rete locale (LAN).
Il livello tre (rete) affronta il problema dell’integrazione generalizzata di reti, fino a formare reti di reti, organizzate secondo una
visione gerarchica (reti di reti e sottoreti). Le regole riguardano la definizione di nuovi indirizzi di rete, che nascondano i dettagli
di gestione delle reti locali e delle sottoreti all’esterno. Nuovi dispositivi, detti instradatori (router), sono creati per la gestione
dell’instradamento dei pacchetti dati tra una rete e l’altra. I router agiscono da smistatori dei pacchetti tra le reti, riducendo la
complessità dell’integrazione delle reti di reti.
A questo livello esiste una rete di reti, ma il servizio di consegna dei pacchetti è di tipo connectionless e i pacchetti di dati
possono essere perduti o arrivare disordinati.
Il livello quattro (trasporto) prevede la gestione delle regole che permettano di ripristinare un servizio orientato alla connessione,
per il quale i pacchetti spediti siano consegnati tutti e nell’ordine corretto. Si definiscono inoltre le regole per controllare il rischio
di congestione della rete.
A questo livello esiste una rete di reti affidabile di tipo orientato alla connessione. Internet è una rete di questo tipo, basata su
due protocolli in particolare, che vedremo in seguito (TCP e IP).
Il livello sette (applicazione) mette semplicemente a disposizione il servizio di comunicazione della rete di reti alle applicazioni
dell’utente.
esempio di canali digitali: canale B giallo ha capacità di trasmissione doppia del canale A rosso
La figura mostra l’astrazione di due canali digitali con evidenziata la caratteristica di una diversa capacità di
trasmissione dei bit. La velocità di propagazione fisica dei bit è la stessa, ma il canale B giallo impiega
I valori possibili per i dati digitali (bit) del calcolatore sono solo due: i valori 0 e 1. Tali valori devono essere trasmessi o ricevuti
sui mezzi di trasmissione delle reti, sotto forma di variazioni di segnali analogici (elettrici, ottici o radio), uno di seguito all’altro.
Per questo scopo, i dati digitali devono essere opportunamente codificati o decodificati, in sequenza, da parte della scheda di
rete.
L’attività di codifica, effettuata in fase di trasmissione, equivale a tradurre i valori dei bit in segnali analogici.
L’attività di decodifica, effettuata in fase di ricezione, equivale a tradurre i segnali analogici ricevuti nei valori dei bit.
Le tecniche di codifica digitali permettono di ridurre, ma non di escludere completamente, la possibilità di errori di trasmissione
sulla rete.
Una nota importante riguarda l’ambiguità di fondo sul concetto di velocità della trasmissione dei segnali in rete.
Dal punto di vista fisico, tutti i segnali analogici, elettrici, ottici o radio, si propagano praticamente alla stessa velocità, cioè alla
velocità della luce, pari a circa 300.000 Km/sec. Non ha quindi senso parlare di bit, oppure di segnali, più veloci di altri.
Tuttavia, nell’esempio in figura, un canale A di comunicazione sul quale siano codificati dieci bit al secondo ha una densità di
trasmissione dei bit (detta anche capacità del canale) pari alla metà della capacità ottenuta da un canale B, sul quale possano
essere codificati venti bit al secondo. I canali a capacità più elevata, ovvero in grado di trasmettere più bit al secondo, devono
tali prestazioni al fatto di usare meno tempo per codificare, ovvero rappresentare il valore del bit sul mezzo trasmissivo, rispetto
a canali più “lenti”.
Le migliori tecnologie di rete sono quelle che permettono di codificare i bit nel minor tempo possibile, ottenendo quindi alte
capacità dei canali (ad esempio, miliardi di bit trasmessi al secondo).
Analizziamo ora l’esempio più semplice per la definizione di una rete di calcolatori a commutazione di pacchetto: un segmento
di rete locale. Un segmento di rete locale è definito come un mezzo di trasmissione condiviso sul quale sia definito un canale ad
accesso multiplo.
Ogni calcolatore si assume dotato della scheda di rete opportuna per il mezzo trasmissivo e i protocolli di codifica utilizzati al
livello uno (fisico). Ogni scheda di rete è dotata di un identificativo (indirizzo) di livello MAC unico al mondo (assegnato dal
costruttore). Ogni trasmissione di un pacchetto di dati (detto frame a questo livello) sul canale ad accesso multiplo è ricevuta da
tutti i calcolatori la cui scheda di rete sia connessa al canale stesso.
Immaginiamo che il dispositivo con indirizzo MAC1 voglia spedire un frame di dati al dispositivo con indirizzo MAC5, e allo
stesso tempo il dispositivo di indirizzo MAC4 voglia spedire un frame di dati al dispositivo di indirizzo MAC2.
Nel contesto del canale condiviso, la conoscenza degli indirizzi MAC dei dispositivi mittente e destinatario basta ad effettuare la
trasmissione, sul canale comune. Semplificando molto il problema, per ragioni di presentazione, è sufficiente aggiungere le
informazioni sull’indirizzo MAC del destinatario e del mittente sulla busta di ogni frame, prima di trasmetterlo.
Ogni frame trasmesso sul canale da parte di ogni dispositivo risulta quindi rilevato da tutti gli altri dispositivi, ma viene ricevuto
(cioè copiato e passato ai livelli superiori) solo se l’indirizzo MAC del destinatario specificato nel frame coincide con l’indirizzo
MAC del dispositivo ricevente.
Il compito principale dei protocolli di livello 2 (MAC/LLC), oltre all’indirizzamento dei frame trasmessi sul canale condiviso del
segmento di rete locale, è dato dall’arbitraggio degli accessi al canale. Ciò equivale a determinare quali nodi possano
trasmettere, quando, e in che ordine, in modo da evitare le collisioni tra due o più trasmissioni contemporanee. Le collisioni
equivalgono a uno spreco del tentativo di trasmissione. Nell’esempio in figura, se l’arbitraggio funzionasse male, le trasmissioni
dei dispositivi MAC1 e MAC4 si scontrerebbero originando una collisione distruttiva dei segnali.
Scopo dei protocolli del livello 2 (MAC/LLC) è nascondere ai livelli superiori i dettagli del mezzo fisico, e mostrare il canale
condiviso sul segmento di rete locale come se si trattasse di un canale affidabile, senza alcun errore di trasmissione. A tal fine il
frame di dati viene delimitato mediante particolari etichette di bit, poste all’inizio e alla fine del frame, e viene arricchito con altri
campi di dati utili al protocollo.
La trasmissione di un frame procede per tentativi, fino alla ricezione di una conferma (un frame di conferma) da parte del
destinatario. Quello qui illustrato è solo un meccanismo semplice per realizzare trasmissione affidabile, tra quelli possibili.
La figura mostra la sequenza temporale di eventi gestiti dal livello 2 (MAC/LLC) per la trasmissione affidabile di un frame di dati
tra due dispositivi sulla stessa rete locale. Il frame di dati viene spedito dal dispositivo con indirizzo MAC1 al dispositivo con
indirizzo MAC2 sul mezzo trasmissivo. Il mittente fa partire un timer dopo la trasmissione. Il ricevente MAC2 si accorge che il
frame è destinato a lui, ma rileva errori sui bit ricevuti, per cui non fa nulla (non passa il frame ai livelli superiori) e non invia la
conferma a MAC1. Allo scadere del timer, MAC1 verifica che non ha ricevuto conferma, per cui ripete da capo la trasmissione,
e fa ripartire il timer. Questa volta MAC2 riceve correttamente il frame e spedisce a MAC1 un frame di conferma. MAC1 riceve il
frame di conferma e solo ora considera terminata con successo la trasmissione del frame.
Ai livelli dei protocolli superiori al livello due tutto ciò viene nascosto, e appare solamente la trasmissione corretta del frame sul
segmento di rete.
o
Vengono brevemente forniti tre esempi molto famosi di protocolli Standard di livello due (MAC), che possono essere adottati in
alternativa, a seconda del tipo di mezzo fisico, del tipo di topologia, nella realizzazione di segmenti di rete locale.
La scelta di una tecnologia indica il tipo di schede di rete dovranno essere utilizzate per la connessione al segmento di rete.
Il più famoso è il protocollo Ethernet che da il nome a una vasta serie di schede di rete che implementano la sua definizione,
per l’utilizzo in reti locali basate su mezzo fisico cablato.
L’idea di base di Ethernet, per ridurre le collisioni dei segnali, è di adottare il principio dell’ascolto del canale, prima di ogni
trasmissione. Se nessuno sta già trasmettendo, allora la trasmissione può essere iniziata senza collisione con le trasmissioni in
atto. Siccome può accadere che due schede di rete possano iniziare allo stesso istante le rispettive trasmissioni, occorre
trovare una soluzione all’insorgere di possibili collisioni. La scheda di rete trasmittente è in grado di rilevare le collisioni in atto
durante la trasmissione, e in tal caso interrompe immediatamente il tentativo di trasmissione.
Il tentativo verrà tentato da capo, dopo un attesa di tempo casuale, variabile da scheda a scheda.
Una tecnica simile a Ethernet viene adottata nelle reti senza fili (wireless), ad esempio in reti Wi-Fi conformi allo Standard IEEE
802.11. Il problema principale in reti senza fili è dato dall’impossibilità pratica di realizzare la rilevazione di collisioni in atto
durante la fase di trasmissione. La tecnica si basa sulla prevenzione delle collisioni, dilazionando nel tempo i tentativi di
accesso.
Il protocollo Token Ring è un protocollo MAC concepito per reti locali con topologia ad anello.
L’accesso è regolato per mezzo di un frame speciale, detto Token, che viene passato (trasmesso), come se fosse un
“testimone”, ciclicamente tra tutti i dispositivi in rete. Solo chi detiene il token ha diritto di trasmettere sul canale, evitando il
rischio di collisione, dopodiché deve trasmettere il token alla stazione successiva nell’anello.
o
A questo punto esistono i presupposti per introdurre alcuni dispositivi che possono essere usati per comporre ed estendere una
rete locale di calcolatori, unendo segmenti di rete altrimenti separati.
Il primo dispositivo è il ripetitore (repeater). Siccome i segnali emessi su qualsiasi mezzo fisico si degradano al crescere della
distanza percorsa, esiste un limite massimo per la lunghezza di un segmento di rete. Ad esempio, un segmento Ethernet, può
variare dai 100 ai 200 metri. Un repeater è un dispositivo che agendo solo a livello fisico, amplifica e rigenera il segnale ricevuto
verso un prolungamento del segmento di rete. Mediante un repeater è possibile collegare due segmenti di rete aventi la stessa
tecnologia a livello MAC, ed estendere la lunghezza dei segmenti di rete locale.
Un Hub (che significa perno di una ruota a raggi) è un altro dispositivo che agisce solo a livello fisico. Esso realizza il punto
centrale di connessione, detto concentratore, dei segmenti di una rete locale con topologia a stella. In pratica si tratta di un
ripetitore (repeater) con tante connessioni entranti e uscenti.
Un Bridge (ponte) è invece un dispositivo che agisce anche da traduttore a livello due (MAC/LLC). Un bridge permette di
connettere segmenti di una stessa rete locale ma con tecnologie e MAC diversi tra loro (ad esempio un segmento Ethernet con
uno Token Ring). I bridge fanno quindi da traduttori dei frame nei formati richiesti dal livello MAC di ogni segmento connesso al
bridge, e provvedono alla trasmissione su segmenti diversi adottando il protocollo MAC opportuno.
Uno Switch (commutatore) è un dispositivo di livello due (MAC/LLC) analogo al bridge. Al contrario del bridge, esso permette di
connettere un numero maggiore di segmenti diversi (fino a 10 o 12). I Bridge sono dotati della capacità di filtrare e instradare
opportunamente i frame di dati sul segmento opportuno, osservando sui frame le informazioni di indirizzo MAC del dispositivo
destinatario.
La figura mostra un esempio di rete locale composta da diversi segmenti: un segmento con topologia ad anello e protocollo
MAC di tipo token ring colorato in rosso e da vari segmenti ethernet, con topologia a stella e a bus, colorati in blu. A sinistra, un
calcolatore dotato di dispositivo di rete token ring con indirizzo MAC A è connesso a un anello di rete token ring insieme ad altri
3 calcolatori e insieme a un bridge (oppure uno switch) identificato dal colore giallo (per indicare che agisce a livello MAC/LLC)
e dalla lettera B sullo schermo. Il bridge B agisce da collegamento e traduttore dei frame tra il segmento token ring (rosso) ed il
successivo segmento ethernet (blu). Il bridge B ha quindi due connettori di rete: uno token ring e uno ethernet. Il segmento
ethernet del bridge B è connesso a un Hub (H) dal quale partono sei segmenti ethernet, di tipo punto a punto, verso altrettanti
calcolatori. Uno di questi calcolatori, identificato dalla lettera R è un repeater, che propaga e amplifica i segnali verso un
successivo segmento ethernet con topologia a bus, sul quale esistono quattro calcolatori. Al termine del bus esiste un nuovo
repeater R, che propaga e amplifica i segnali verso un ultimo segmento ethernet con topologia a bus, al quale è collegato un
calcolatore dotato di scheda ethernet con indirizzo MAC B.
Al di sopra dei dispositivi citati viene rappresentato il cammino logico di un frame trasmesso dal calcolatore con MAC A al
calcolatore con MAC B, passando per i segmenti, i connettori di rete, e i livelli dei protocolli opportuni. In particolare, il bridge B
è l’unico elemento nel quale il frame trasmesso sul segmento token ring sale fino al livello 2, per essere tradotto e ritrasmesso
sul segmento uscente adottando il nuovo protocollo MAC ethernet. Nei rimanenti dispositivi hub e repeater, i frame sono
semplicemente ricevuti e ri-trasmessi sui segmenti uscenti. Se il bridge avesse dovuto connettere più di due segmenti diversi,
allora si sarebbe utilizzato uno switch, che svolge l’attività del bridge gestendo più interfacce di rete e protocolli.
Dovrebbe essere chiaro a questo punto come sia possibile connettere diversi segmenti di rete locale, e gestire la trasmissione
di frame di dati tra due dispositivi qualsiasi di una rete locale, semplicemente identificando i dispositivi attraverso il loro indirizzo
MAC.