RETI1 Cap4
RETI1 Cap4
1
4) Il sottolivello MAC (Medium Access Control)
Come già chiarito, le reti sono divise in due categorie: punto a punto e broadcast.
Nelle reti broadcast il problema principale è decidere quale elaboratore (detto anche stazione)
ha diritto di usare il mezzo trasmissivo quando c'è competizione (qui non si può alzare la
mano per chiedere la parola!). Si deve evitare che molte stazioni trasmettano
contemporaneamente, perché i relativi segnali si disturberebbero a vicenda.
I protocolli per decidere chi è il prossimo a trasmettere su un canale broadcast (detto anche
multiaccess channel o random access channel) appartengono ad un sottolivello del livello
data link, detto sottolivello MAC.
Essi sono usati sopratutto nelle LAN, ma anche nelle parti di WAN basate su satelliti.
Il problema principale è come allocare il canale ai vari utenti in competizione. Ci sono due
meccanismi fondamentali:
• allocazione statica, che viene decisa in anticipo;
• allocazione dinamica, che si adatta alle esigenze di ogni momento.
L'allocazione statica prevede la suddivisione del canale fra gli N utenti, ciascuno dei quali
riceve di conseguenza una frazione della banda totale. Si può fare, ad esempio, con tecniche
quali FDM, allocando a ciascun utente una banda di frequenze distinta da quella degli altri
utenti. Ciò va bene se il numero di utenti non varia rapidamente e se tutti trasmettono con un
data rate più o meno costante, però in genere comporta vari problemi:
• si verifica uno spreco di banda quando uno o più utenti non trasmettono;
• poiché il traffico è in generale molto bursty, i picchi che si verificano non possono essere
gestiti solamente con la sottobanda allocata.
2
3. collisioni: se due frame vengono trasmessi contemporaneamente, si sovrappongono ed il
segnale risultante è rovinato (si verifica collisione):
• tutte le stazioni possono rilevare la collisione;
• i frame devono essere ritrasmessi;
• non ci sono altri tipi di errori;
4. tempo: può essere gestito in due modi:
• continuous time: la trasmissione di un frame può iniziare in un qualunque istante;
• slotted time: il tempo è diviso in intervalli discreti (slot). Uno slot può contenere 0, 1
oppure più di un frame. Ciò corrisponde ad uno slot vuoto, ad uno slot con un
frame e ad uno slot in cui si verifica una collisione. La trasmissione può iniziare solo
all'inizio di uno slot;
5. ascolto del canale: ci sono due possibilità,
• carrier sense (tipico delle LAN): le stazioni, prima di trasmettere, ascoltano il canale;
se è occupato non cercano di trasmettere;
• no carrier sense (tipico dei canali via satellite, nei quali vi è un elevato round trip
time): le stazioni non ascoltano, trasmettono senz'altro; si preoccuperanno dopo di
vedere se c'è stata una collisione.
Nacque negli anni '70 per collegare tra loro, tramite radio al suolo, gli elaboratori sparsi nelle
isole Hawaii.
Nel Pure Aloha le stazioni trasmettono quando vogliono, però durante la trasmissione
ascoltano il canale e confrontano ciò che ricevono con ciò che hanno spedito.
Dunque, se si verifica una collisione se ne accorgono, e in tal caso, dopo aver lasciato passare
una quantità di tempo casuale, ritrasmettono il frame. La scelta di attendere per una quantità
di tempo casuale discende dal fatto che altrimenti una collisione ne ricrea infinite altre.
Definiamo come frame time il tempo necessario alla trasmissione di un frame, che ha
lunghezza fissa. Supponiamo che vengano complessivamente generati dei frame con una
distribuzione di Poisson avente media di S frame per frame time.
3
Supponiamo che la distribuzione di tutti i frame (vecchi e nuovi) sia anch'essa di Poisson, con
valor medio pari a G frame per frame time.
A basso carico ci aspettiamo poche collisioni, quindi G è circa uguale ad S. Ad alto carico
invece avremo più collisioni, per cui G sarà maggiore di S.
In ogni caso, sotto qualunque condizione di carico il throughput (cioé la quantità di pacchetti
che arrivano a destinazione) è uguale al carico offerto moltiplicato per la probabilità che la
trasmissione abbia successo, ossia:
Throughput = G*P(0)
Per calcolare il throughput effettivo, e quindi l'efficienza, ottenibile col protocollo Pure Aloha,
si devono fare due considerazioni.
P(0) = e-G.
4
Frame Frame
Frame
Collide con Collide con
l'inizio del la fine del
frame grigio frame grigio
t
t0 t0 + t t 0 + 2t t 0 + 3t
Periodo di
vulnerabilità
P(0) = e-2G
Utilizzando tale probabilità nella relazione vista sopra per il throughput, otteniamo la stima
del throughput ragggiungibile col protocollo Pure Aloha, che è
Throughput = Ge-2G
5
ed ha la seguente forma:
Il massimo throughput è 0,184, cioé meno del 20% (due frame su 10 slot) in corrispondenza di
un carico G pari a 0,5 frame per frame time.
Un modo per aumentare l'efficienza di Aloha (Roberts, 1972) consiste nel dividere il tempo in
intervalli discreti, ciascuno corrispondente ad un frame time. Ovviamente gli utenti devono
essere d'accordo nel confine fra gli intervalli, e ciò può essere fatto facendo emettere da una
attrezzatura speciale un breve segnale all'inizio di ogni intervallo.
In tale periodo vengono generati mediamente G frame, per cui la probabilità che non si
generino nuovi frame per tutto il periodo di vulnerabilità di un frame è:
P(0) = e-G
Throughput = Ge-G
6
ed ha la seguente forma:
Anche Slotted Aloha ha una bassa efficienza, il che d'altronde è comprensibile visto che le
stazioni trasmettono senza preoccuparsi se il canale è libero.
Nelle reti locali invece le stazioni possono ascoltare il canale e regolarsi di conseguenza,
ottenendo un'efficienza molto più alta. I protocolli nei quali le stazioni ascoltano il canale
prima di iniziare a trasmettere si dicono carrier sense.
7
• Se avviene una collisione, la stazione aspetta un tempo random e riprova tutto da
capo.
• Problemi:
• una stazione A trasmette, e prima che il suo segnale arrivi a B anche B inizia a
trasmette, dunque si verifica una collisione. Più alto è il tempo di
propagazione fra A e B e più grave è il fenomeno;
• A e B ascoltano contemporaneamente durante la trasmissione di C, e non
appena quest'ultima termina iniziano entrambe a trasmettere: anche in questo
caso si verifica una collisione.
• Nonpersistent
• Quando una stazione deve trasmettere, ascolta il canale:
• se è occupato, invece di trasmettere non appena si libera come in 1-persistent
la stazione aspetta comunque un tempo random e ripete tutto il
procedimento da capo;
• se è libero, si comporta come in 1-persistent.
• Intuitivamente, ci si aspettano maggiori ritardi prima di riuscire a trasmettere un
frame e meno collisioni rispetto a 1-persistent.
• P-persistent (si applica a canali slotted)
• Quando una stazione deve trasmettere, ascolta il canale:
• se è occupato, aspetta il prossimo slot e ricomincia da capo;
• se è libero:
• con probabilità p trasmette subito;
• con probabilità 1 - p aspetta il prossimo slot; se anch'esso è libero,
riapplica tale procedimento;
• Il processo si ripete finché:
• il frame è trasmesso, oppure
• qualcun altro ha iniziato a trasmettere. In questo caso la stazione si comporta
come in una collisione: aspetta un tempo random e ricomincia da capo.
• Intuitivamente, al diminuire di p ci si aspettano crescenti ritardi prima di riuscire a
trasmettere un frame ed una progressiva diminuzione delle collisioni.
8
Quando si verifica una collisione, la stazione aspetta una quantità casuale di tempo e riprova
a trasmettere.
Posto uguale a T il tempo di propagazione del segnale da un capo all'altro della rete, è
necessario che trascorra un tempo pari a 2T perché una stazione possa essere sicura di
rilevare una collisione.
Infatti, se una stazione A posta ad una estremità della rete inizia a trasmettere al tempo t0, il
suo segnale arriva a B (posta all'altra estremità della rete) dopo al tempo t0 + T; se un attimo
prima di tale istante anche B inizia a trasmettere, la collisione conseguente viene rilevata da B
quasi immediatamente, ma impiega una ulteriore quantità T di tempo per giungere ad A, che
la può quindi rilevare solo un attimo prima dell'istante t0 + 2T.
A B
Collisione
T
Collisione Collisione
Non c'è collisione Non c'è collisione Non c'è collisione
9
4.4) Le reti ad anello
Una rete ad anello consiste di una collezione di interfacce di rete, collegate a coppie da linee
punto a punto:
Stazione
Linea
punto a punto
unidirezionale
Interfaccia
Interfaccia
Interfaccia
Stazione
Stazione
Interfaccia
Stazione
Ogni bit che arriva all'interfaccia è copiato in un buffer interno, poi rigenerato e ritrasmesso
sul ring. Può essere modificato prima di essere ritrasmesso.
10
L'interfaccia di rete può operare in due diverse modalità, listen mode e transmit mode:
In listen mode i bit in ingresso vengono copiati nel buffer interno (dove possono essere anche
modificati) e quindi ritrasmessi con un ritardo di un bit (1-bit delay).
In transmit mode l'anello è aperto, e i bit in arrivo vengono rimossi; nuovi bit vengono
trasmessi sull'anello.
Una speciale configurazione binaria, detta token (gettone) circola in continuazione se nessuno
vuole trasmettere.
Poiché c'è un solo token, questo meccanismo risolve senza conflitti il problema dell'accesso al
mezzo.
11
• quando tutte le stazioni hanno qualcosa da trasmettere, l'efficienza si avvicina al 100%;
• viceversa, quando non c'è traffico, una stazione deve attendere un pò più che in
CSMA/CD per trasmettere (mediamente dovrà attendere un tempo pari a quello di
attraversamento di mezzo anello, per ricevere il token).
La velocità di propagazione del segnale nel rame è circa 200 metri per microsecondo. Con un
data rate (ad esempio) di 1 Mbps, si genera un bit al microsecondo. Dunque, un bit è lungo in
tal caso circa 200 metri, per cui per contenere 10 bit un anello dovrebbe essere lungo almeno 2
km.
In definitiva, è necessario che x + y sia maggiore del numero di bit del token. Ciò significa
che, a seconda delle caratteristiche dimensionali della rete in questione, può essere necessario
ricavare un ritardo addizionale, sotto forma di buffer aggiuntivi, in una stazione (che ha un
ruolo particolare, quello di monitor dell'anello).
Al crescere della diffusione di apparecchiature di calcolo mobili (ad es. elaboratori portatili)
è aumentata anche la richiesta di collegare tali dispositivi al mondo esterno, senza però fare
uso di cavi che ne impedirebbero di fatto la mobilità. La risposta a tale esigenza viene dalla
comunicazione senza fili, basata sull’uso di onde elettromagnetiche.
Un sistema di stazioni mobili capaci di comunicare via radio costituisce una LAN senza fili
(wireless LAN o WLAN).
Una LAN senza fili può essere costituita in due modi diversi, a seconda che sia disponibile
oppure no una (o più di una) apparecchiatura detta stazione base (base station).
12
Cella Cella
Rete fissa
Nel caso in cui non sia disponibile una stazione base, le stazioni mobili comunicano
esclusivamente fra di loro, senza collegamenti con una rete esterna. In questo caso si parla di
rete ad-hoc (ad-hoc network).
Indipendentemente dal fatto che una WLAN sia dotata o meno di stazioni base, esistono
numerosi problemi da risolvere, legati all’utilizzo della trasmissione senza fili:
• collisioni: devono essere predisposti appositi protocolli per gestirle;
13
• interferenze e riflessioni: vengono usate tecniche trasmissive a spettro distribuito, che ne
minimizzano gli effetti;
• privacy: chiunque può intercettare una trasmissione radio, per cui vanno previsti
meccanismi basati sulla crittografia per la protezione dei dati;
• mobilità degli utenti: una stazione mobile può spostarsi da una cella ad un'altra, per cui
sono necessari meccanismi per gestire tale situazione (detta handover).
Si consideri la figura seguente, nella quale sono mostrate 4 stazioni con le relative portate.
A B C D
Supponiamo ora che la stazione A voglia trasmettere a B. Come può decidere se trasmettere o
no? Se A si basa sull’ascolto del canale, e trovandolo libero trasmette, non ha alcuna garanzia
di successo, perché potrebbe essere in atto una trasmissione da parte di C. Il che porterebbe
ad una collisione in B, raggiunta contemporaneamente dalle trasmissioni di A e C. Questo è il
problema della stazione nascosta.
14
di B) e quindi non inizierà a trasmettere. Invece potrebbe farlo, perché la trasmissione di B
non raggiunge D e quindi non provoca una collisione. Questo è il problema della stazione
esposta.
I due problemi sopra esposti derivano essenzialmente dal fatto che la stazione trasmittente
non ha modo di sapere quale sia la situazione del canale nei pressi della stazione ricevente, e
quindi protocolli CSMA/CD (adatti al caso in cui una trasmissione raggiunge tutte le
stazioni) in questo ambito non funzionano.
Una prima soluzione è rappresentata dal protocollo MACA (Multiple Access with Collision
Avoidance), nel quale non vi è ascolto del canale (infatti manca CS nella sigla) e si cerca di
evitare le collisioni anziché rilevarle.
Non si impiega l’ascolto del canale sulla base delle seguenti considerazioni:
• il canale libero per il trasmettitore non significa che lo sia anche per il ricevitore (e quindi
non è detto che la trasmissione abbia successo: problema della stazione nascosta);
• il canale occupato per il trasmettitore non significa che lo sia anche per il ricevitore (e
quindi non è detto che la trasmissione non sia possibile: problema della stazione esposta);
• nell’ambito delle trasmissioni radio apparecchiature full duplex, in grado di ricevere e
trasmettere contemporaneamente, sono molto costose da realizzare.
Il funzionamento è il seguente:
• A invia a B un piccolo frame (30 byte) chiamato RTS (Request To Send), contenente la
lunghezza del frame dati vero e proprio che dovrà essere trasmesso;
• B, se non è impegnato nella ricezione di altri dati, risponde ad A con un altro piccolo
frame, chiamato CTS (Clear to Send) che lo autorizza a trasmettere. Anche il frame CTS
riporta la lunghezza del frame dati che verrà trasmesso da A, ricopiata dal frame RTS.
15
• Tutte le stazioni che ricevono solo il frame CTS (situate dunque entro la portata di B ma
non entro quella di A) devono rimanere in silenzio per il tempo necessario alla
trasmissione del frame dati (la cui lunghezza trovano nel frame CTS);
• Le stazioni che ricevono sia il frame RTS che il CTS (situate entro la portata sia di A che di
B) applicano ambedue le regole sopra viste.
C A B D
RTS
CTS
Divieto
Tempo
RTS
Dati
Divieto
Si noti quanto segue: le stazioni fuori dalla portata del ricevitore non ricevono il suo CTS e
dunque non sanno se la trasmissione del frame avrà luogo o no; di conseguenza potrebbero
inviare ad A degli RTS durante la sua trasmissione (RTS color arancio in figura). Tali RTS non
causano collisioni (A è in trasmissione e non in ricezione), ma rimangono senza risposta e
quindi fanno crescere il numero di insuccessi e di conseguenza l’intervallo di tempo da
attendere prima di riprovare.
16
D A C B E
RTS RTS
RTS
RTS CTS
Collisione
Chi ha trasmesso un RTS si accorge se esso provoca una collisione perché non riceve il
corrispondente CTS. In tal caso il trasmettitore attende un tempo casuale, che aumenta al
crescere del numero di collisioni, e riprova.
Va comunque notato che le collisioni relative ai soli frame RTS e CTS, che sono molto più
piccoli dei frame dati, rappresentano un fenomeno meno grave delle collisioni che
coinvolgono gli interi frame dati. In MACA queste ultime non possono avvenire.
Una successiva versione del protocollo, chiamata MACAW (MACA per Wireless), introduce
alcune ulteriori migliorie, fra le quali:
• Invio di un breve frame ACK dal ricevitore al trasmettitore previa ricezione corretta del
frame dati; questo permette di velocizzare la ritrasmissione (altrimenti sarebbero i livelli
superiori a doversene occupare) del frame in caso di errori trasmissivi, non infrequenti nel
caso dei mezzi wireless;
• Invio da parte del trasmettitore A, dopo la ricezione del CTS, di un breve frame DS (Data
Send) contenente la dimensione del frame dati che sarà trasmesso, subito prima di iniziare
a trasmettere il frame dati stesso. Questo permette alle stazioni fuori dalla portata del
ricevitore di evitare di inviare ad A degli RTS prima che A abbia terminato la
trasmissione.
17
• Accorta gestione distribuita degli algoritmi di aumento del tempo d’attesa dopo un
insuccesso, in modo da garantire equità a tutte le stazioni.
C A B D
RTS
CTS
Divieto
DS
Divieto di Dati
inviare Divieto
RTS ad A
ACK
Divieto
Come abbiamo già detto, i protocolli MACA e MACAW non ascoltano il canale per decidere
in merito alla trasmissione, ma si basano esclusivamente sullo scambio di messaggi di
controllo. Tuttavia esiste un ulteriore protocollo, chiamato CSMA/CA (Carrier Sense Multiple
Access with Collision Avoidance), utilizzato nello standard IEEE 802.11, che vedremo fra
breve e che utilizza, a fianco di tecniche simili a quelle di MACAW, anche l’ascolto del canale
prima di trasmettere.
18
4.6) Lo standard IEEE 802
IEEE ha prodotto diversi standard per le LAN, collettivamente noti come IEEE 802. Essi
includono gli standard per:
• Specifiche generali del progetto (802.1);
• Logical link control, LLC (802.2)
• CSMA/CD (802.3);
• token bus (802.4, destinato a LAN per automazione industriale);
• token ring (802.5);
• DQDB (802.6, destinato alle MAN);
• WLAN (802.11).
I vari standard differiscono a livello fisico e nel sottolivello MAC, ma sono compatibili a
livello data link. Ciò è ottenuto separando dal resto, attraverso l'apposito standard LLC, la
parte superiore del livello data link, che viene usata da tutti i protocolli standard del gruppo.
802.2
Logical Link Control
Livello
data link
Sottolivello 802.3 802.5
CSMA/CD Token 802.11
MAC … … WLAN
(Ethernet) ring
19
4.6.1) IEEE 802.3
[Link]) Cablaggio
20
• L'allaccio di una stazione alla rete avviene con una giunzione a T, alla quale sono
collegati il cavo che porta alla stazione e due cavi thin che costituiscono una
porzione del segmento. Le varie stazioni sono collegate in cascata (daisy-chain) sul
segmento.
• Doppino telefonico:
• Lo standard 10BaseT (twisted) prevede il collegamento fra una sola coppia di
stazioni.
• La lunghezza massima è 100 metri (150 se il doppino è di classe 5).
• Per connettere più di due stazioni serve un ripetitore multiporta (detto HUB).
Cavo Thick
(non interrotto)
Transceiver
drop cable
Interfaccia
di rete
Transceiver,
fissato con
un vampiro
Stazione
21
Interfaccia
Cavi Thin +
transceiver
Giunzione
passiva
aT
Stazione
Doppino
HUB
22
Un ripetitore è un dispositivo che opera a livello uno (fisico): riceve il segnale da un
segmento, lo amplifica e lo ritrasmette su tutti gli altri segmenti. I ripetitori possono essere
usati anche per aumentare la lunghezza complessiva della rete.
In 802.3 non si usa una codifica diretta dei dati (ad esempio, zero volt per lo zero e cinque
volt per l'uno), perché sarebbe difficile rilevare le collisioni. Inoltre, si vuole delimitare con
facilità l'inizio e la fine di ogni singolo bit.
Si usa una codifica, detta Manchester, che prevede una transizione del valore del segnale nel
mezzo di ogni bit, zero o uno che sia.
Codifica Codifica
di Zero di Uno
+ 0,85 V
0V
- 0,85 V
Durata Durata
del bit del bit
23
componenti in corrente continua, molto dannose perché ostacolano la trasmissione dei
segnali;
• è facile rilevare le collisioni.
Si noti però che tale codifica richiede, a parità di velocità di trasmissione, una banda doppia
rispetto alla codifica diretta (ogni bit richiede la trasmissione di due valori distinti).
Nessun livello MAC garantisce un servizio affidabile. Ciò è dettato dal fatto che, visto il
bassissimo tasso d'errore delle LAN, si preferisce un protocollo datagram ad alte prestazioni.
24
Vediamo ora perché esiste un limite minimo di 64 byte per la lunghezza di un frame.
Abbiamo già visto che, perché una collisione possa essere certamente rilevata da chi
trasmette, deve passare un tempo non inferiore a due volte il tempo di attraversamento
dell'intera rete.
Nel caso di IEEE 802.3, che prevede 2,5 km di lunghezza massima totale e l'interposizione di
un massimo di quattro ripetitori, si ha che il tempo massimo di attraversamento dell'intera
rete moltiplicato per due è pari a 57,6 microsecondi.
Ora, è essenziale che la collisione venga rilevata durante la trasmissione e non dopo,
altrimenti il mittente dedurrà erroneamente che la sua trasmissione è andata a buon fine.
Dunque, la trasmissione di un frame non deve durare meno di 57,6 microsecondi, che sono il
tempo necessario per trasmettere (a 10 Mbps) proprio 72 byte (e cioé 576 bit, ciascuno dei
quali viene trasmesso in un decimo di microsecondo). Dunque, il frame non può essere
costituito da meno di 72 byte, 8 dei quali sono costituiti dal preambolo e dal delimitatore, e 64
dal resto del frame.
Si noti che se si vuole aumentare la velocità di un certo fattore, diciamo 10, si deve diminuire
di 10 volte la lunghezza massima ammessa per la rete o aumentare di 10 volte la lunghezza
minima del frame. Vedremo nel seguito come viene risolto il problema per il protocollo Fast
Ethernet (100 Mbps).
25
• il tempo di attesa prima della prossima ritrasmissione è un multiplo intero dello slot time,
e viene scelto a caso in un intervallo i cui estremi dipendono da quante collisioni sono
avvenute;
• dopo n collisioni, il numero r di slot time da lasciar passare è scelto a caso nell'intervallo 0
<= r <= 2k-1, con k = min (n, 10);
• dopo 16 collisioni si rinuncia (inviando un messaggio di errore al livello superiore).
[Link]) Prestazioni
Le prestazioni osservate sono molto buone, migliori di quelle stimabili in via teorica.
Peraltro, queste ultime sono fortemente influenzate dal modello di traffico che si assume. Di
solito lo si assume poissoniano, ma in realtà è bursty e per di più self similar, ossia il suo
andamento su un lungo periodo è simile a quello su un breve periodo, ricordando in questo
le caratteristiche dei frattali.
Questo standard (803.2u), approvato nel 1995, prevede l'aumento di velocità di un fattore 10,
da 10 Mbps a 100 Mbps.
Come si risolve il problema del minimo tempo di trasmissione e/o della massima lunghezza
della rete? In modo diverso a seconda del supporto fisico utilizzato:
• Doppino classe 3 (100BaseT4)
• si usano quattro doppini fra l'hub ed ogni stazione:
• uno viene usato sempre per il traffico dall'hub alla stazione;
26
• uno viene usato sempre per il traffico dalla stazione all'hub;
• 2 vengono usati di volta in volta nella direzione della trasmissione in corso;
• la codifica è 8B6T, cioé 8 bit vengono codificati con 6 trit ( che hanno valore 0, 1 o 2);
• la velocità di segnalazione è 25 Mhz (solo 25% in più di quella dello standard 802.3,
che è di 20 Mhz);
• si inviano 3 trit sui 3 doppini contemporaneamente a 25 Mhz, ossia 6 trit alla
frequenza di 12,5 Mhz. Poiché 6 trit convogliano 8 bit, di fatto si inviano 8 bit a 12,5
Mhz, ottenendo così i 100 Mbps.
• Doppino classe 5 (100BaseT)
• velocità di segnalazione 124 Mhz;
• codifica 4B5B (4 bit codificati con 5 bit, introducendo ridondanza);
• a seconda del tipo di hub:
• hub tradizionale: la lunghezza massima di un ramo è 100 metri, quindi il
diametro della rete è 200 metri (contro i 2,5 km di 802.3).
• switched hub: ogni ramo è un dominio di collisione separato, e quindi (poiché
su esso vi è una sola stazione) non esiste più il problema delle collisioni, ma
rimane il limite di 100 metri per i limiti di banda passante del doppino.
• Fibra ottica (100BaseFX)
• velocità di segnalazione 125 Mhz;
• codifica 4B5B;
• obbligatorio switched hub;
• lunghezza rami fino a 2 km (con uno switched hub non c'è il problema delle
collisioni, ed inoltre come sappiamo la fibra regge velocità dell'ordine dei Gbps a
distanze anche superiori).
Nel 1972 IBM scelse l'anello per la sua architettura di LAN, a cui diede il nome di Token
Ring. Successivamente, IEEE ha definito lo standard IEEE 802.5 sulla base di tale architettura.
Le differenze principali sono che la rete IBM prevede velocità di 4 Mbps e 16 Mbps, mentre
802.5 prevede oltre ad esse anche la velocità di 1 Mbps.
[Link]) Cablaggio
27
• categoria 3, 4 o 5 per 4 Mbps;
• categoria 4 o 5 per 16 Mbps.
Stazione
Lobo
Relais
Wire center
I lobi hanno una lunghezza massima variabile, a seconda del cablaggio utilizzato:
• UTP cat. 4: 150 metri;
• UTP cat. 5: 195 metri;
• STP: 340 metri.
28
[Link]) Codifica dei dati
1 0 0 1 1
da 3 a 4,5 V
ecc.
da -3 a -4,5 V
SD AC ED Token Frame
Da 0 Da 0
Byte: 1 1 1 2 opp. 6 2 opp. 6 a 30 a 17.747 4 1 1
SD AC FC Indirizzo Indirizzo RI Dati Checksum ED FS
destinaz. sorgente
29
I campi del frame hanno le seguenti funzioni:
PPPTMRRR
Quando il token circola e una stazione vuole trasmettere, essa, che è in listen mode, opera
come segue:
• aspetta che arrivi il token;
• quando il token arriva:
• lascia passare SD;
30
• lascia passare i bit PPP di AC;
• quando ha nel buffer il token bit T:
• lo cambia in uno, trasformando il token in un frame;
• invia il bit T modificato sul ring;
• si mette immediatamente in transmit mode;
• invia il resto del frame;
• quando il frame è trasmesso:
• se non ha esaurito il THT (Token holding time) può trasmettere un altro frame;
• altrimenti rigenera un nuovo token e lo trasmette;
• appena trasmesso l'ultimo bit del token si rimette immediatamente in listen mode.
Ogni ring ha una stazione con un ruolo speciale, il monitor (ogni stazione è in grado di
diventare il monitor). Il monitor viene designato all'avvio dell'anello. I suoi compiti principali
sono:
• rigenerare il token se esso si perde;
• ripulire il ring dai resti di frame danneggiati;
• ripulire il ring dai frame orfani.
Vantaggi di 802.3:
• ha un'enorme diffusione;
• esibisce un buon funzionamento a dispetto della teoria.
Svantaggi di 802.3
• ha sostanziose componenti analogiche (per il rilevamento delle collisioni);
• il funzionamento peggiora con forte carico.
Vantaggi di 802.5:
• è totalmente digitale;
• va molto bene sotto forte carico.
Svantaggi di 802.5
• c'è ritardo anche senza carico (per avere il token);
• ha bisogno di un monitor (e se è "malato", cioé malfunzionante, e nessuno se ne accorge?).
31
4.6.4) IEEE 802.11
Durante gli anni ’90 l’IEEE avviò l’attività di standardizzazione delle reti LAN senza fili
all’interno dello standard 802. I risultati si concretizzarono in una serie di standard definiti fra
il 1997 ed il 2003, collettivamente contraddistinti dalla sigla 802.11, che differiscono fra loro
per le bande trasmissive utilizzate, per le tecniche di codifica utilizzate e per le velocità
trasmissive raggiungibili.
Ciascuno degli standard 802.11 è suddiviso in due parti, analogamente a quanto visto per
802.3 ed 802.5:
• sottolivello MAC, essenzialmente comune a tutti gli standard. In particolare il formato dei
frame, i servizi offerti ed i meccanismi di accesso al canale sono gli stessi per tutti;
• livello fisico, che ovviamente differisce anche sensibilmente da uno standard all’altro.
Tutti gli standard elencati supportano reti con e senza stazione base (AP, Access Point nella
terminologia 802.11).
Il blocco principale dell’architettura 802.11 è la cella, detta BSS (Base Service Unit). Uno o più
AP collegati alla rete fissa (Ethernet ad esempio) formano un DS (Distribution System).
Vedremo ora più in dettaglio lo standard 802.11b, che appare destinato ad una sempre più
ampia diffusione.
32
[Link])Codifica dei dati
Con le tecniche di codifica adottate da 802.11b una singola trasmissione impegna una banda
di frequenza di circa 22 MHz, per cui due trasmissioni indipendenti e contemporanee, per
non interferire a vicenda, devono essere spaziate di almeno 5 canali (ossia di almeno 25
MHz). Dunque, celle adiacenti ed a portata una dell’altra devono essere spaziate di almeno 5
canali.
Trasmissione a 1 e 2 Mbps
Si usa DSSS. Ogni bit è codificato mediante una particolare sequenza di 11 chip, chiamata
Sequenza di Barker e caratterizzata da una elevata autocorrelazione.
Bit da trasmettere
0 1
Sequenza di Barker
1 0 1 1 0 1 1 1 0 0 01 0 1 1 0 1 1 1 0 0 0
Chip trasmessi
1 0 1 1 0 1 1 1 0 0 0 0 1 0 0 1 0 0 0 1 1 1
33
I singoli chip della sequenza vengono trasmessi modulando in fase la portante, alla velocità di
segnalazione di 11 Mbaud:
• per la trasmissione a 1 Mbps si usano due soli valori di modulazione. Di conseguenza ogni
variazione del valore di fase convoglia un chip, per cui si hanno 11 Mchip/sec che
corrispondono a 1 Mbps;
• per la trasmissione a 2 Mbps si usano invece quattro valori diversi di modulazione. Di
conseguenza ogni variazione del valore di fase convoglia due chip, per cui si hanno 22
Mchip/sec che corrispondono a 2 Mbps;
La codifica CCK di 802.11b utilizza proprio tali 64 parole ortogonali per codificare i bit da
trasmettere in sequenze di chip. Come per le velocità di 1 e 2 Mbps, i chip vengono poi
trasmessi modulando in fase la portante centrata nel canale prescelto a 11 Mbaud. Ogni
valore di modulazione è sempre scelto fra un insieme di 4 possibili, sia per 5,5 che per 11
Mbps.
34
Per la trasmissione a 5,5 Mbps si opera come segue:
• i bit vengono codificati a gruppi di 4;
• 2 bit del gruppo determinano la parola di codice da trasmettere, che in questo caso è scelta
fra le 4 parole (22 = 4) “più ortogonali” entro le 64 parole ortogonali: gli 8 valori quaternari
della parola scelta determinano una successione di 8 valori di modulazione di fase;
• i rimanenti 2 bit del gruppo vengono usati dal trasmettitore per “ruotare” di fase l’intera
parola di codice, ossia la intera successione di 8 valori di modulazione da applicare
durante la trasmissione;
• dato che con questa tecnica 4 bit sono codificati con 8 chip, trasmettendo a 11 Mchip/sec si
ottengono 5,5 Mbps.
35
[Link]) Protocollo MAC 802.11
Byte 2 2 6 6 6 6 2 0 - 2312 4
Frame Indirizzo Indirizzo Indirizzo Indirizzo
Durata Sequenza Dati Checksum
Control 1 2 3 4
Bit 2 2 4 1 1 1 1 1 1 1 1
To From
Versione Tipo Sottotipo MF Retry Pwr More W O
DS DS
36
W WEP (Wired Equivalent Privacy): 1 indica che il payload è cifrato.
O Ordered: 1 indica che il payload va consegnato in ordine rispetto
agli altri frame con lo stesso valore di questo campo.
Durata Indica (in millisecondi) per quanto tempo il frame più il relativo ack
occuperanno il canale.
Indirizzo 1 Indirizzi a 48 bit identici a 802.3 ed 802.5; due sono gli indirizzi di
Indirizzo 2 mittente e destinatario, altri due gli indirizzi di AP sorgente ed AP
Indirizzo 3 destinatario (nel caso di traffico fra celle diverse).
Indirizzo 4
Le due modalità, come vedremo, possono coesistere all’interno di una stessa cella.
Modalità DCF
Oltre ad ascoltare il canale fisico (rilevando la eventuale presenza di una portante) ogni
stazione prende in considerazione anche un canale virtuale tramite il cosiddetto NAV
(Network Allocation Vector). Il NAV, gestito individualmente da ciascuna stazione, fornisce
l’indicazione della quantità di tempo durante la quale il mezzo trasmissivo rimarrà occupato
37
dalle trasmissioni già iniziate. Ogni stazione determina il valore del NAV sulla base dei frame
RTS e CTS che riceve.
Una stazione considera libero il canale solo quando sia il canale fisico che quello virtuale
(NAV) sono liberi.
Se all’inizio della procedura la stazione A trova il canale occupato, essa attende un tempo
casuale (determinato con un binary backoff exponential algorithm analogo a quello di 802.3) e
ricomincia daccapo. Uguale comportamento viene adottato se A non riceve il frame CTS dopo
aver inviato il frame RTS, o se non riceve il frame di ACK dopo aver inviato il frame dati.
DIFS SIFS
A RTS dati
SIFS SIFS
B CTS ACK
38
Il protocollo possiede come visto meccanismi per la frammentazione dei frame, in
considerazione dell’elevato tasso d’errore dei mezzi wireless. I frammenti sono confermati
individualmente per permettere la ritrasmissione selettiva dei soli frame rovinati. Inoltre, per
dare la priorità alla trasmissione dei frammenti di uno stesso frame rispetto alla trasmissione
di un frame interamente nuovo:
• per la trasmissione del prossimo segmento si attende un tempo SIFS e non DIFS;
• ogni segmento (tranne l’ultimo) si comporta come un RTS virtuale per il frammento
successivo ed ogni ACK (tranne l’ultimo) si comporta come un CTS virtuale per il
frammento successivo.
NAV (RTS)
Stazioni nella NAV (Fr. 0)
Portata di A
NAV (CTS)
Stazioni nella NAV (ACK(0))
Portata di B
Figura 4-28: Trasmissione di un frame frammentato
Una stazione può adottare una versione semplificata del protocollo quando:
• deve trasmettere frame dati molto brevi (al di sotto di una soglia, impostabile su ogni
singola stazione);
• non esiste il problema della stazione nascosta (ad esempio in una WLAN confinata
all’interno di una stanza).
In tal caso non vengono inviati i frame RTS e CTS, ma solo il frame dati ed il corrispondente
frame di ACK.
39
DIFS
A dati
SIFS
B ACK
Le altre stazioni si astengono dal trasmettere per la durata della trasmissione del frame e del
relativo ACK.
Modalità PCF
Le stazioni che desiderano servirsene devono “registrarsi” presso l’AP per poterne usufruire.
L’AP successivamente interroga a turno tutte le stazioni registrate ed assegna loro il mezzo
trasmissivo a turno. Nessuna stazione può trasmettere con questa modalità se non è
autorizzata esplicitamente dall’AP.
PCF può essere utile nel caso di applicazioni che abbiano bisogno di una banda minima
garantita (ad esempio trasmissione di audio e video), che possono richiedere all’atto della
registrazione presso l’AP.
PCF può convivere dentro una stassa cella col DCF grazie al fatto che è definito un ulteriore
intervallo di tempo, detto PIFS (PCF Inter Frame Spacing), maggiore di SIFS e minore di
DIFS, che governa l’accesso al mezzo per trasmissioni PCF.
Di conseguenza se nessuno impegna il mezzo trasmissivo dopo un tempo SIFS (il che
significa che una trasmissione DCF è terminata), l’AP può impossessarsi del canale dopo un
tempo PIFS, al fine di gestire trasmissioni PCF, prima che qualunque altra stazione, che deve
attendere il più elevato tempo DIFS per trasmettere in DCF, possa farlo.
40
Servizi
Lo standard definisce vari sevizi che ogni DS ed ogni cella conformi allo standard devono
fornire (quindi tali servizi presuppongono l’esistenza di uno o più AP).
Questo standard, chiamato Logical Link Control (LLC),definisce la parte superiore del
livello data link in modo indipendente dai vari sottolivelli MAC.
41
• fornire, se è richiesto dal livello superiore, un servizio più sofisticato di quello offerto dai
vari sottolivelli MAC (che, ricordiamo, offrono solo servizi datagram). Esso infatti offre:
• servizi datagram;
• servizi datagram confermati;
• servizi affidabili orientati alla connessione.
Il frame LLC è modellato ispirandosi a HDLC, con indirizzi di mittente e destinatario, numeri
di sequenze, numeri di ack (questi ultimi due omessi per i servizi datagram), ecc.
Gli indirizzi LLC sono lunghi un byte e servono sostanzialmente ad indicare quale protocollo
di livello superiore deve ricevere il pacchetto di livello tre; in questo modo LLC offre un
supporto multiprotocollo al livello superiore.
Packet Pacchetto
Liv. network
di liv. network
LLC Packet
Liv. LLC header Frame LLC
Liv. fisico
42
4.7) Il bridge
Molto spesso c'è la necessità di connettere fra di loro LAN distinte, per molte ragioni:
• due LAN di tipo differente (ad esempio una Ethernet ed una Token ring), che non si
possono semplicemente collegare l'una con l'altra, contengono host che vogliono dialogare
fra loro;
• si vuole una LAN la cui lunghezza superi i limiti massimi consentiti (ad esempio, 2,5 km
per Ethernet);
• si desidera, nel caso di una LAN contenente molti host, suddividerla in molteplici LAN
interconnesse. Questo per tenere separato il traffico generato nelle sue parti, in modo da
avere un traffico totale molto superiore a quello possibile su una singola LAN.
Due o più LAN possono essere interconnesse con dispositivi detti bridge, che operano a
livello data link.
Ciò significa che la loro operatività è basata esclusivamente sulle informazioni contenute nelle
buste di livello due, mentre non vengono prese affatto in considerazione quelle di livello tre.
Questa è la caratteristica fondamentale che li differenzia dai router, che invece agiscono a
livello tre.
Traffico
inter - LAN
Bridge
Host
Host Host
Traffico
intra - LAN
43
In questo esempio il traffico totale (se è tutto confinato entro le singole LAN) può arrivare a
tre volte quello di una singola LAN. Solo il traffico fra host di LAN diverse attraversa il
bridge.
I bridge si occupano di instradare il traffico da una LAN all'altra. E' importante sottolineare
che, anche se l'instradamento di per se è una funzione tipica del livello tre, qui avviene sulla
base dei soli indirizzi di livello due, quindi il bridge appartiene in tutto e per tutto al livello
data link.
Il funzionamento di un bridge, che ha tante interfacce di rete quante sono le LAN alle quali è
fisicamente collegato, è il seguente:
• quando una delle interfacce di rete del bridge riceve un frame MAC, lo passa al relativo
software di livello MAC che toglie la busta MAC;
• il resto viene passato dal livello MAC al software di livello LLC del bridge, nel quale, sulla
base dell'indirizzo di destinazione, si decide a quale LAN inviarlo:
• se la destinazione si trova sulla LAN di provenienza il frame viene scartato;
• altrimenti, il frame LLC viene passato al livello MAC competente per la LAN di
destinazione, che lo imbusta in un frame MAC e provvede ad inviarlo su tale LAN,
secondo le regole di quest'ultima.
Si noti che un bridge è ben diverso da un ripetitore, che copia pedissequamente tutto ciò che
riceve da una linea su tutte le altre. Il bridge infatti acquisisce un frame, lo analizza, lo
ricostruisce e lo instrada, quindi può anche essere configurato in modo da filtrare (cioé non
far passare) alcuni tipi di traffico. Ciò tipicamente avviene in funzione dell'indirizzo LLC, che
identifica il protocollo di livello superiore, o sulla base dell'indirizzo MAC del mittente o del
destinatario.
I bridge progettati per interconnettere LAN di tipo diverso devono risolvere vari problemi
legati alle diverse regole in vigore su tali LAN, tra cui:
• formati dei frame differenti;
• data rate differenti;
• massima lunghezza di frame differente: è fuori questione spezzare un frame in questo
livello, dato che tutti i protocolli si aspettano che il frame o arrivi per intero o non arrivi
affatto; ad esempio, nello standard 802 i frame troppo grandi devono essere scartati;
• funzioni previste da un tipo di LAN ma non dall'altra: ad esempio, il concetto di priorità
ed i bit A e C presenti in 802.5 non hanno un equivalente in 802.3.
44
4.7.1) Standard IEEE per i bridge
Il transparent bridge (IEEE 802.1 part D) può essere installato e diventare operativo in modo
totalmente trasparente, senza richiedere niente altro che la connessione fisica e l'accensione.
Incredibile a dirsi, la cosa funziona!
Il mecccanismo è il seguente:
• Dal momento in cui il bridge viene attivato, esamina tutti i frame che gli arrivano dalle
varie LAN, e sulla base di questi costruisce progressivamente le sue tabelle di
instradamento. Infatti, ogni frame ricevuto consente al bridge di sapere su quale LAN si
trova la stazione che lo ha inviato.
• Ogni frame che arriva al bridge viene ritrasmesso:
• se il bridge ha nelle sue tabelle di instradamento l'indirizzo del destinatario, invia il
frame sulla corrispondente LAN;
• altrimenti il frame viene inviato a tutte le LAN tranne quella di provenienza, con
una tecnica detta flooding (che vedremo meglio più avanti);
• man mano che il bridge aumenta la sua conoscenza degli indirizzi delle varie
macchine, la ritrasmissione diventa sempre più selettiva (e quindi più efficiente).
• Le tabelle vengono aggiornate ogni qualche minuto, rimuovendo gli indirizzi che non si
sono fatti vivi nell'ultimo periodo (così, se una macchina si sposta, entro pochi minuti
viene di nuovo indirizzata correttamente) Questa tecnica si chiama backward learning.
• Se ci sono maglie nella topologia di connessione delle LAN, i bridge si costruiscono di essa
uno spanning tree, che poi utilizzano per l'instradamento, al fine di evitare la generazione
di un infinito numero di duplicati durante il flooding.
Il source-routing bridge (nato per le reti 802.5) è progettato invece per ottenere
l'instradamento più efficiente possibile, anche a scapito della trasparenza.
L'idea di base è che il mittente indichi esplicitamente il cammino (espresso come sequenza di
bridge e reti) che il frame deve percorrere. L'amministratore di sistema deve assegnare
numeri di identificazione distinti ad ogni rete e ad ogni bridge, operazione che deve essere
fatta manualmente.
Tali informazioni sono incluse in un apposito campo RI (Routing Information) del frame
802.5, e la loro eventuale presenza è indicata dal valore 1 del bit più significativo
dell'indirizzo sorgente (che, essendo sempre relativo a un indirizzo singolo e mai di gruppo o
45
broadcast, originariamente è sempre zero). Il bridge esamina solo i frame che hanno tale bit a
uno.
E' ovvio che ogni host deve avere il quadro della topologia delle connessioni, memorizzato in
un'apposita struttura dati. Per costruirla e mantenerla, il meccanismo usato è il seguente:
• quando un host deve spedire un frame ma non conosce il cammino da seguire per
raggiungere la destinazione, invia un discovery frame, chiedendo tale informazione;
• il discovery frame viene inviato in flooding da ogni bridge a tutti gli altri, e quindi
raggiunge tutti gli host. In questa fase, ogni bridge scrive nel discovery frame il suo ID, che
si aggiunge a quello dei bridge precedentemente incontrati. Quando un discovery frame
arriva alla destinazione, contiene tutto il cammino percorso;
• quando l'host di destinazione riceve un discovery frame, lo invia indietro al mittente;
• il mittente, sulla base del primo discovery frame che ritorna (considerando il relativo
cammino quello più conveniente) aggiorna le sue tabelle e può mandare il frame che
voleva spedire originariamente.
Dopo un periodo in cui entrambi gli standard sopra descritti erano abbastanza diffusi, oggi
praticamente tutti i bridge costruiti sono di tipo transparent, ed al più offrono la funzionalità
source-routing come un'opzione supplementare.
46