Questi appunti sono basati sul libro "Computer
Networks" di A. Tanenbaum, terza edizione, ed. Prentice-Hall,
adottato quale libro di testo del corso.
Essi rispecchiano piuttosto fedelmente il livello di dettaglio
che viene seguito durante le lezioni, e costituiscono un ausilio
didattico allo studio.
Tuttavia, è importante chiarire che gli appunti non vanno
intesi come sostitutivi né del libro di testo né
della frequenza alle lezioni, che rimangono fattori importanti
per una buona preparazione dell'esame.
La realizzazione di questi appunti è stata resa possibile
dalla collaborazione dello studente Federico Neri, che ha avuto
la pazienza di convertire in forma elettronica il contenuto testuale
dei manoscritti da me preparati per il corso. La realizzazione
delle figure, la formattazione e la rifinitura del testo sono
opera mia.
Gli ultimi tre secoli sono stati dominati
ciascuno da una diversa tecnologia che lo ha caratterizzato ed
ha avuto profonde influenze sulla vita dell'uomo:
- 18º secolo: sistemi meccanici, rivoluzione industriale;
- 19º secolo: motori a vapore;
- 20º secolo: tecnologie dell'informazione:
- raccolta e memorizzazione;
- elaborazione;
- distribuzione.
Nel nostro secolo si sono via via diffusi:
- il sistema telefonico, a livello mondiale;
- la radio e la televisione;
- i computer;
- i satelliti per telecomunicazioni.
Queste tecnologie stanno rapidamente convergendo. In particolare,
la combinazione di elaboratori e sistemi di telecomunicazione
ha avuto una profonda influenza sull'organizzazione dei sistemi
di calcolo.
Si è passati dal vecchio modello mainframe
- terminali , in cui la potenza di calcolo
è concentrata in un unico grande elaboratore a cui si accede
per mezzo di un certo numero di terminali, a quello attuale in
cui vi è un grande numero di elaboratori autonomi,
interconnessi fra loro:
- autonomi: significa che non deve esserci fra loro una relazione
tipo master/slave (ad es., l'uno non può forzare lo spegnimento
dell'altro);
- interconnessi: significa che devono essere capaci di scambiare
informazioni (sfruttando un opportuno mezzo fisico).
Un sistema di calcolo siffatto è detto rete
di elaboratori (computer
network).
Si noti che rete di elaboratori non è sinonimo di sistema
distribuito. Infatti:
- in un sistema distribuito l'esistenza di più elaboratori
è invisibile all'utente, che ha l'impressione di avere
a che fare con un unico sistema di calcolo;
- in una rete di elaboratori, l'utente è conscio dell'esistenza
di molteplici elaboratori, che devono essere esplicitamente riferiti.
In effetti, si può dire che:
Rete di Elaboratori + Sistema software di gestione
= Sistema distribuito
dove il sistema software di gestione altro non è che un
particolare tipo di sistema operativo, ossia un sistema
operativo distribuito.
1.1) Usi delle reti di elaboratori
|
Moltissimi sono gli usi delle reti di elaboratori,
sia per le organizzazioni che per i singoli individui.
- Per le organizzazioni:
- condivisione risorse: si possono rendere disponibili a chiunque
programmi e informazioni anche distanti migliaia di km;
- affidabilità: si ottiene mettendo in rete sorgenti
alternative delle risorse (ad es. duplicando le applicazioni e
i dati su più computer). E' importante in sistemi che devono
funzionare a tutti i costi (traffico aereo, centrali nucleari,
sistemi militari, ecc.);
- diminuzione dei costi: una rete di personal computer costa
molto meno di un mainframe. A volte alcuni elaboratori sono più
potenti ed offrono agli altri dei servizi (modello
client-server, vedi figura sottostante);
- scalabilità: si possono aumentare le prestazioni del
sistema aumentando il numero di elaboratori (entro certi limiti);
- comunicazione fra persone: è possibile inviarsi messaggi,
scambiarsi file, ecc.
Figura 1-1: Il modello client-server
- Per i singoli individui: (di solito da casa propria tramite
"fornitori di accesso"):
- accesso ad informazioni remote, ad es.:
- accesso a servizi bancari;
- acquisti da casa;
- navigazione sul World Wide Web;
- comunicazioni fra persone:
- posta elettronica;
- videoconferenza;
- gruppi di discussione;
- divertimento:
- video on demand (selezione e ricezione via rete di un qualunque
spettacolo tratto da un catalogo);
- giochi interattivi (contro macchine o avversari umani).
Due parametri sono utili per definire le caratteristiche
di una rete, anche se non esiste una tassonomia universalmente
accettata:
- tecnologia trasmissiva;
- scala dimensionale.
Ci sono due tipologie per quanto riguarda
la tecnologia trasmissiva:
- reti broadcast;
- reti punto a punto.
Le reti broadcast
sono dotate di un unico "canale" di comunicazione
che è condiviso da tutti gli elaboratori. Brevi messaggi
(spesso chiamati pacchetti)
inviati da un elaboratore sono ricevuti da tutti gli altri elaboratori.
Un indirizzo all'interno del pacchetto specifica il destinatario.
Figura 1-2: una rete broadcast
Quando un elaboratore riceve un pacchetto, esamina l'indirizzo
di destinazione; se questo coincide col proprio indirizzo il pacchetto
viene elaborato, altrimenti viene ignorato.
Le reti broadcast, in genere, consentono anche di inviare un pacchetto
a tutti gli altri elaboratori, usando un opportuno indirizzo (broadcasting).
In tal caso tutti prendono in considerazione il pacchetto.
Un' altra possibilità è inviare il pacchetto ad
un sottoinsieme degli elaboratori (multicasting).
In tal caso solo gli elaboratori di tale sottoinsieme lo prendono
in considerazione, gli altri lo ignorano. In questo caso, un bit
dell'indirizzo indica che si tratta di una trasmissione in multicasting.
I rimanenti (n-1) bit dell' indirizzo rappresentano l'indirizzo
del gruppo destinatario.
Le reti punto a punto
consistono invece di un insieme di connessioni fra coppie di elaboratori.
Figura 1-3: una rete punto a punto
Per arrivare dalla sorgente alla destinazione, un pacchetto può
dover attraversare uno o più elaboratori intermedi. Spesso
esistono più cammini alternativi, per cui gli algoritmi
di instradamento (routing)
hanno un ruolo molto importante.
In generale (ma con molte eccezioni):
- le reti geograficamente localizzate tendono ad essere broadcast;
- le reti geograficamente molto estese tendono ad essere punto
a punto.
Alcune eccezioni:
- rete geografica realizzata via satellite (e quindi broadcast);
- rete locale basata su ATM (e quindi punto a punto).
1.2.2) Scala dimensionale
|
Un criterio alternativo di classificazione
è la scala dimensionale delle reti. In questo contesto
si distingue fra reti locali,
reti metropolitane e
reti geografiche.
Distanza fra processori
| Ambito | Tipo di rete
|
| | |
10 m. | Stanza
| Rete locale |
100 m. | Edificio
| Rete locale |
1 km. | Campus
| Rete locale |
10 km. | Città
| Rete metropolitana |
100 km. | Nazione
| Rete geografica |
1000 km. | Continente
| Rete geografica |
10.000 km. | Pianeta
| Internet
(Rete geografica)
|
La distanza è un fattore molto importante, poiché
a differenti scale dimensionali si usano differenti tecniche.
Le reti
locali (Local Area Network, LAN),
in genere:
- sono possedute da una organizzazione (reti private);
- hanno un'estensione che arriva fino a qualche km;
- si distendono nell'ambito di un singolo edificio o campus
(non si possono, di norma, posare cavi sul suolo pubblico);
- sono usatissime per connettere PC o workstation.
Esse si distinguono dagli altri tipi di rete per tre caratteristiche:
- dimensione: la dimensione
non può andare oltre un certo limite, per cui è
noto a priori il tempo di trasmissione nel caso peggiore. Questa
conoscenza permette di utilizzare delle tecniche particolari per
la gestione del canale di comunicazione;
- tecnologia trasmissiva:
come già accennato, le LAN sono in generale reti broadcast.
Velocità di trasmissione tipiche sono da 10 a 100 Mbps
(megabit al secondo, cioé milioni di bit al secondo), con
basso ritardo di propagazione del segnale da un capo all'altro
del canale (qualche decina di microsecondi) e basso tasso di errore;
- topologia: sono possibili
diverse topologie, le più diffuse sono il bus
ed il ring;
- topologia bus:
- in ogni istante solo un elaboratore può trasmettere,
gli altri devono astenersi;
- è necessario un meccanismo di arbitraggio
per risolvere i conflitti quando due o più elaboratori
vogliono trasmettere contemporaneamente;
- l'arbitraggio può essere centralizzato o distribuito;
- lo standard IEEE 802.3
(chiamato impropriamente Ethernet)
è per una rete broadcast, basata su un bus, con arbitraggio
distribuito, operante a 10 oppure 100 Mbps;
- gli elaboratori trasmettono quando vogliono; se c'è
una collisione aspettano un tempo casuale e riprovano;
- topologia ring:
- in un ring ogni bit circumnaviga l'anello in un tempo tipicamente
inferiore a quello di trasmissione di un pacchetto;
- anche qui è necessario un meccanismo di arbitraggio
(spesso basato sul possesso si un gettone
(token) che abilita alla
trasmissione);
- lo standard IEEE 802.5
(derivante dalla rete IBM Token Ring)
è una rete broadcast basata su ring, con arbitraggio distribuito,
operante a 4 o 16 Mbps.
Figura 1-4: topologie bus e ring
Infine le reti broadcast possono essere classificate a seconda
del meccanismo scelto per l'arbitraggio:
- Allocazione statica:
le regole per decidere chi sarà il prossimo a trasmettere
sono fissate a priori, ad esempio assegnando un time slot ad ogni
elaboratore con un algoritmo round-robin. Lo svantaggio è
rappresentato dallo spreco dei time slot assegnati a stazioni
che non devono trasmettere.
- Allocazione dinamica:
si decide di volta in volta chi sarà il prossimo a trasmettere;
è necessario un meccanismo di arbitraggio delle contese,
che può essere:
- arbitraggio centralizzato:
un apposita apparecchiatura, ad esempio, una bus arbitration unit,
accetta richieste di trasmissione e decide chi abilitare;
- arbitraggio distribuito:
ognuno decide per conto proprio (come in 802.3); vedremo come
si può evitare un prevedibile caos.
Le reti metropolitane (Metropolitan
Area Network, MAN)hanno un'estensione tipicamente
urbana (quindi anche molto superiore a quella di una LAN) e sono
generalmente pubbliche (cioé un'azienda, ad es. Telecom
Italia, mette la rete a disposizione di chiunque desideri, previo
pagamento di una opportuna tariffa).
Fino a qualche anno fa erano basate essenzialmente sulle tecnologie
delle reti geografiche, utilizzate su scala urbana. Recentemente
pero' e' stato definito un apposito standard, lo IEEE
802.6 o DQDB
(Distributed Queue Dual Bus),
che e' effettivamente utilizzato in varie realizzazioni, molto
piu' vicino alla tecnologia LAN che WAN.
Esiste un mezzo trasmissivo di tipo broadcast (due bus in 802.6)
a cui tutti i computer sono attaccati.
Figura 1-5: Distributed Queue Dual Bus
Ogni bus (cavo coassiale o fibra ottica) e' unidirezionale, ed
ha una head-end che cadenza
l'attivita' di trasmissione.
Le reti geografiche (Wide
Area Network, WAN) si estendono a livello di una
nazione, di un continente o dell'intero pianeta. Una WAN è
tipicamente costituita di due componenti distinte:
- un insieme di elaboratori (host
oppure end system) sui
quali girano i programmi usati dagli utenti;
- una comunication subnet (o
subnet), che connette gli end system fra loro.
Il suo compito è trasportare messaggi da un end system
all'altro, così come il sistema telefonico trasporta parole
da chi parla a chi ascolta.
Di norma la subnet consiste, a sua volta, di due componenti:
- linee di trasmissione
(dette anche circuiti, canali,
trunk):
- elementi di commutazione
(switching element):
gli elementi di commutazione sono elaboratori specializzati utilizzati
per connettere fra loro due o più linee di trasmissione.
Quando arrivano dati su una linea, l'elemento di commutazione
deve scegliere una linea in uscita sul quale instradarli. Non
esiste una terminologia standard per identificare gli elementi
di commutazione. Termini usati sono:
- sistemi intermedi;
- nodi di commutazione pacchetti;
- router (quello che
utilizzeremo noi).
Una tipica WAN è utilizzata per connettere più LAN
fra loro:
Figura 1-6: struttura tipica di una WAN
In generale una WAN contiene numerose linee (spesso telefoniche)
che congiungono coppie di router.
Ogni router, in generale, deve:
- ricevere un pacchetto da una linea in ingresso;
- memorizzarlo per intero in un buffer interno;
- appena la necessaria linea in uscita è libera, instradare
il pacchetto su essa.
Una subnet basata su questo principio si chiama:
- punto a punto;
- store and forward;
- a commutazione di pacchetto (packet
switched).
Molte topologie di interconnessione possono essere impiegate fra
i router:
- a stella (ridondanza
zero);
- ad anello (ridondanza
zero);
- ad albero (ridondanza
zero);
- magliata (ridondanza
media);
- completamente connessa
(ridondanza massima).
Figura 1-7: topologie di interconnessione
Un'altra possibilità è una WAN basata su satellite
oppure radio al suolo.
- Satellite: ogni router
sente l'output del satellite e si fa sentire dal satellite. Dunque,
in generale si ha:
- broadcast downlink (cioé dal satellite a terra);
- broadcast uplink (cioé da terra al satellite) se i
router possono "sentire" quelli vicini, point to point
altrimenti.
Figura 1-8: interconnessione di router via satellite
- Radio al suolo: ogni
router sente l'output dei propri vicini (entro una certa distanza
massima):
- anche qui siamo in presenza di una rete broadcast.
Figura 1-9: interconnessione di router via radio
al suolo
Una WAN può essere anche realizzata in maniera mista: in
parte cablata, in parte basata su radio o satellite.
Una internetwork
è formata quando reti diverse (sia LAN che MAN o WAN) sono
collegate fra loro.
A prima vista, almeno in alcuni casi, la cosa è apparentemente
uguale alla definizione di WAN vista precedentemente (se al posto
di subnet si scrive WAN, abbiamo una internetwork costituita da
una WAN e quattro LAN).
Alcuni problemi però sorgono quando si vogliono connettere
fra di loro reti progettualmente diverse (spesso incompatibili
fra loro). In questo caso si deve ricorrere a speciali attrezzature,
dette gateway (o router
multiprotocollo), che oltre ad instradare i pacchetti
da una rete all'altra, effettuano le operazioni necessarie per
rendere possibili tali trasferimenti.
Figura 1-10: interconnessione di reti
Nel contesto del corso utilizzeremo:
- internet come sinonimo
di internetwork, cioé la interconnessione di più
reti generiche;
- Internet (con la
I maiuscola) per riferirci alla specifica internetwork, basata
su TCP/IP, che ormai tutti conoscono.
C'è molta confusione sui termini:
- sottorete (subnet),
che nel contesto di una WAN è l'insieme dei router e delle
linee di trasmissione;
- rete (network), che
altro non è che una subnet più tutti gli host collegati;
- internetwork, che
è una collezione di più network, anche non omogenee,
collegate per mezzo di gateway.
Figura 1-11: relazioni fra subnet, network e internetwork
Torna al sommario | Vai avanti